<?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>3249</bug_id>
          
          <creation_ts>2005-06-01 16:21:26 -0700</creation_ts>
          <short_desc>Investigate merging the WebCore DOM and KDOM</short_desc>
          <delta_ts>2005-11-23 04:23:47 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>412</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>5572</dependson>
    
    <dependson>5583</dependson>
    
    <dependson>5584</dependson>
    
    <dependson>5585</dependson>
    
    <dependson>5671</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>eric</cc>
    
    <cc>kimmo.t.kinnunen</cc>
    
    <cc>rwlbuis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>10451</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2005-06-01 16:21:26 -0700</bug_when>
    <thetext>This is tracking bug for the discussion of merging the DOM used by WebCore with KDOM in such a way 
that KSVG can be ported to WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>17794</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-08-28 02:48:40 -0700</bug_when>
    <thetext>This one is on my plate... I just haven&apos;t found cycles for it yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23432</commentid>
    <comment_count>2</comment_count>
      <attachid>4549</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-11-01 03:15:24 -0800</bug_when>
    <thetext>Created attachment 4549
First stab at the merger</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23433</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-11-01 03:18:08 -0800</bug_when>
    <thetext>So I went ahead and took my first stab at this merger this weekend.  I have attached below a list of 
(most of) the issues I encountered and solved, as well as some which I have encountered, but have yet 
to solve.

Integration issues:

- Headers (temporarily every kdom header maps to all webcore headers)
- Namespace mapping (KDOM -&gt; DOM, khtml)
- Various KDOM stub classes (temporary)
- Various DOMStringImpl -&gt; DOMString changes
- DOMString::string() -&gt; DOMString::qstring()
- DOMString::handle() -&gt; DOMString::impl()
- DocumentImpl, DocumentType  ::impl() -&gt; ::implentation()
- Moving NodeImpl::Id to QualifiedString/AtomicString
- SVGNames.*, SVGElementFactory.* (and perl script to generate them)
- EventImpl::id() -&gt; type() with AtomicString, removal of SVGEventImpl
- Adding svg document and event creation in xml_docimpl.h
- Cleanup event dispatch, in SVGDocumentImpl, using SharedPtr
- exceptioncode additions, for appendNode, createEvent, dispatchEvent, etc.
- Mapped KSVGPart, KDOMPart, KSVGView, KDOMView to KHTMLPart, KHTMLView
- Removed all throw calls, replacing with exceptioncode parameters
- SVGElement derives from StyledElementImpl for now.


Outstanding:
- DocumentBuilder vs. Tokenizer
- Merger of the Ecma systems
- CSS Parsing systems
- Event dispatch/Listening issues
- Merge KSVGView properties into KHTMLView
- requestDocument &amp; CachedDocument vs. requestFrame and CachedObject...
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23447</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-11-01 11:57:41 -0800</bug_when>
    <thetext>More recent patch posted:
http://www.eseidel.com/quick.patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24094</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-11-15 02:20:35 -0800</bug_when>
    <thetext>Additional things I&apos;ve done:
- Corrected attribute casing (viewBoxAttr vs. viewboxAttr)
- Moved TimeScheduler from Doc -&gt; SVGSVGElement (temporary, wrong, solution)
- Moved off of DocPtr onto DocumentImpl * directly
- Made SVGRenderStyle a member of khtml::RenderStyle
- Worked KSVGCSSParser into CSSParser
- Worked SVGCSSStyleSelector into CSSStyleSelector
- Changed parseAttribute -&gt; parseMappedAttribute
- Moved KCanvasContainer onto RenderContainer
- Renamed KCanvasItem, RenderPath, moved onto RenderObject
- Added bbox(), isRenderPath(), isKCanvasContainer() to RenderObject
- Moved KCanvasContainer and RenderPath from draw() -&gt; paint()
- Removed RenderSVGBox
- Gutted KCanvasItem (now RenderPath) and KCanvasContainer
- Merged KCanvasTreeDebug into KWQRenderTreeDebug
- Made SVGNames.* SVGElementFactory.* generation automatic (build phase)

Most recent patch (not including previous changes): http://www.eseidel.com/quick3.patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24180</commentid>
    <comment_count>6</comment_count>
      <attachid>4706</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-11-16 17:33:06 -0800</bug_when>
    <thetext>Created attachment 4706
khtml &amp; kwq side of the merger</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24181</commentid>
    <comment_count>7</comment_count>
      <attachid>4706</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-11-16 17:34:53 -0800</bug_when>
    <thetext>Comment on attachment 4706
khtml &amp; kwq side of the merger

I would like to have at least Dave, and possible Maciej look at this before I
land.  Note that *NONE* of this is code will be enabled by default, yet. 
SVG_SUPPORT is still turned off in the main WebCore target.  Once this is
approved I can land the entire KDOM-DOM merger.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24190</commentid>
    <comment_count>8</comment_count>
      <attachid>4706</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2005-11-17 11:38:10 -0800</bug_when>
    <thetext>Comment on attachment 4706
khtml &amp; kwq side of the merger

(1) You need to add the SVG MIME type to khtml/ecma/xmlhttprequest.cpp.

(2) I don&apos;t like the name KRenderingDeviceQuartz used directly in RenderCanvas.
 I have several problems with this name.  First of all, the convention for
RenderTheme was to use RenderThemeMac (not Quartz).  I think it&apos;s better to
name the platform rather than the graphics library for platform-specific code. 
Second is this object really even platform-specific?  If it is, then
RenderCanvas should not contain direct references to platform-specific objects.
 If it isn&apos;t, then the file is misnamed.

(3) I think you should rename your KCanvasContainers to SVGRenderContainers and
the KCanvasRegistry to something like the SVGRenderingRegistry.

(4) You make an SVGRenderStyle for every style object.	These should either be
lazily allocated or the SVG styles should use DataRef structs like the other
CSS structs for efficient sharing.

(5) The SVG &lt;style&gt; tag support has a funny code style that doesn&apos;t match
guidelines.  No spaces after the ifs, braces on the wrong lines, etc.

(6) Typo in rendererIsNeeded:

&quot;+    // SVG ignores arbitrary xml elements in its render tree in contrary to
the normal CSS/XML behavior.
&quot;

Change &quot;in contrary&quot; to just be &quot;contrary&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24191</commentid>
    <comment_count>9</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2005-11-17 11:39:57 -0800</bug_when>
    <thetext>Patch is awesome btw.  :)
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24193</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-11-17 12:49:59 -0800</bug_when>
    <thetext>Hyatt:   Thanks for the response.  I&apos;ve answered your comments inline:

(In reply to comment #8)
&gt; (From update of attachment 4706 [edit])
&gt; (1) You need to add the SVG MIME type to khtml/ecma/xmlhttprequest.cpp.
done.  I also added DOMImplementationImpl::isXMLMIMEType so as to have a single override point.

&gt; (2) I don&apos;t like the name KRenderingDeviceQuartz used directly in RenderCanvas.
&gt;  I have several problems with this name.  First of all, the convention for
&gt; RenderTheme was to use RenderThemeMac (not Quartz).  I think it&apos;s better to
&gt; name the platform rather than the graphics library for platform-specific code. 
&gt; Second is this object really even platform-specific?  If it is, then
&gt; RenderCanvas should not contain direct references to platform-specific objects.
&gt;  If it isn&apos;t, then the file is misnamed.

Agreed.  I&apos;m not planning on making any more renames in this patch, however I&apos;m happy to abstract the 
direct reference via the use of QPainter (which is already abstracted via KWQ.  Would that suffice?  All of 
KCanvas will be renamed shortly to use Render* names.  But not in this patch.

&gt; (3) I think you should rename your KCanvasContainers to SVGRenderContainers and
&gt; the KCanvasRegistry to something like the SVGRenderingRegistry.

Same as above.  These are historical names, which I do not plan to correct in this patch.  
KCanvasRegistry will be removed soon anyway.

&gt; (4) You make an SVGRenderStyle for every style object.	These should either be
&gt; lazily allocated or the SVG styles should use DataRef structs like the other
&gt; CSS structs for efficient sharing.

You&apos;ll have to explain this in person.  I think I could make a lazily allocated version, I had not planned 
to do so for this patch. All of these blocks of code are of course in SVG_SUPPORT which is off in the 
normal WebCore target.  I will obviously have to correct some of these glaring performance issues 
before turning SVG on for the main target.

&gt; (5) The SVG &lt;style&gt; tag support has a funny code style that doesn&apos;t match
&gt; guidelines.  No spaces after the ifs, braces on the wrong lines, etc.

I can correct that.  This was copied from KSVG2 which has (inconsistant but) different style than 
WebCore.  I am slowly cleaning up part of KSVG2, but also trying not to make needless style changes in 
an effort to maintain source compatitibility with kde.

&gt; (6) Typo in rendererIsNeeded:
&gt; 
&gt; &quot;+    // SVG ignores arbitrary xml elements in its render tree in contrary to
&gt; the normal CSS/XML behavior.&quot;
&gt;
&gt; Change &quot;in contrary&quot; to just be &quot;contrary&quot;

fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24195</commentid>
    <comment_count>11</comment_count>
      <attachid>4713</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-11-17 12:57:05 -0800</bug_when>
    <thetext>Created attachment 4713
A revised patch with Hyatt&apos;s suggested changes.

This revision does not include making SVGRenderStyle lazily created.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24197</commentid>
    <comment_count>12</comment_count>
      <attachid>4713</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2005-11-17 13:26:22 -0800</bug_when>
    <thetext>Comment on attachment 4713
A revised patch with Hyatt&apos;s suggested changes.

Ok, I made sure to mention these issues just so they can be tracked.  They
don&apos;t have to hold up the landing.

Looks like domparser.cpp needs to use the xmlmimetype function you made.  It
also doesn&apos;t handle SVG.

Fix that and r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24201</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-11-17 14:21:19 -0800</bug_when>
    <thetext>Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24319</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-11-20 22:34:55 -0800</bug_when>
    <thetext>*** Bug 3914 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4549</attachid>
            <date>2005-11-01 03:15:24 -0800</date>
            <delta_ts>2005-11-16 17:33:06 -0800</delta_ts>
            <desc>First stab at the merger</desc>
            <filename>quick.patch</filename>
            <type>text/plain</type>
            <size>1001199</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmVQcmVmaXguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2Vi
Q29yZS9XZWJDb3JlUHJlZml4LmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTYKZGlmZiAtcCAt
dSAtcjEuMTYgV2ViQ29yZVByZWZpeC5oCi0tLSBXZWJDb3JlUHJlZml4LmgJMyBPY3QgMjAwNSAy
MToxMjowMCAtMDAwMAkxLjE2CisrKyBXZWJDb3JlUHJlZml4LmgJMSBOb3YgMjAwNSAxMToxMjoz
NCAtMDAwMApAQCAtNzIsMyArNzIsOSBAQAogI2RlZmluZSBuZXcgKCJpZiB5b3UgdXNlIG5ldy9k
ZWxldGUgbWFrZSBzdXJlIHRvIGluY2x1ZGUgY29uZmlnLmggYXQgdGhlIHRvcCBvZiB0aGUgZmls
ZSIoKSkgCiAjZGVmaW5lIGRlbGV0ZSAoImlmIHlvdSB1c2UgbmV3L2RlbGV0ZSBtYWtlIHN1cmUg
dG8gaW5jbHVkZSBjb25maWcuaCBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlIigpKSAKICNlbmRpZgor
CisjZGVmaW5lIEtET00gRE9NCisjZGVmaW5lIEtTVkdWaWV3IEtIVE1MVmlldworI2RlZmluZSBL
RE9NVmlldyBLSFRNTFZpZXcKKyNkZWZpbmUgS0RPTVBhcnQgS0hUTUxQYXJ0CisKSW5kZXg6IEZv
cndhcmRpbmdIZWFkZXJzL2tkb21jc3Nwcm9wZXJ0aWVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
Rm9yd2FyZGluZ0hlYWRlcnMva2RvbWNzc3Byb3BlcnRpZXMuaApkaWZmIC1OIEZvcndhcmRpbmdI
ZWFkZXJzL2tkb21jc3Nwcm9wZXJ0aWVzLmgKLS0tIEZvcndhcmRpbmdIZWFkZXJzL2tkb21jc3Nw
cm9wZXJ0aWVzLmgJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMAorKysgRm9yd2FyZGluZ0hlYWRl
cnMva2RvbWNzc3Byb3BlcnRpZXMuaAkxIE5vdiAyMDA1IDExOjEyOjM0IC0wMDAwCkBAIC0wLDAg
KzEgQEAKKyNpbmNsdWRlICJLRE9NSGVhZGVycy5oIgpJbmRleDogRm9yd2FyZGluZ0hlYWRlcnMv
a2RvbWNzc3ZhbHVlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IEZvcndhcmRpbmdIZWFkZXJzL2tk
b21jc3N2YWx1ZXMuaApkaWZmIC1OIEZvcndhcmRpbmdIZWFkZXJzL2tkb21jc3N2YWx1ZXMuaAot
LS0gRm9yd2FyZGluZ0hlYWRlcnMva2RvbWNzc3ZhbHVlcy5oCTEgSmFuIDE5NzAgMDA6MDA6MDAg
LTAwMDAKKysrIEZvcndhcmRpbmdIZWFkZXJzL2tkb21jc3N2YWx1ZXMuaAkxIE5vdiAyMDA1IDEx
OjEyOjM0IC0wMDAwCkBAIC0wLDAgKzEgQEAKKyNpbmNsdWRlICJLRE9NSGVhZGVycy5oIgpJbmRl
eDogRm9yd2FyZGluZ0hlYWRlcnMva2RvbS9ET01TdHJpbmcuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL0RPTVN0cmluZy5oCmRpZmYgLU4gRm9yd2FyZGluZ0hl
YWRlcnMva2RvbS9ET01TdHJpbmcuaAotLS0gRm9yd2FyZGluZ0hlYWRlcnMva2RvbS9ET01TdHJp
bmcuaAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyBGb3J3YXJkaW5nSGVhZGVycy9rZG9t
L0RPTVN0cmluZy5oCTEgTm92IDIwMDUgMTE6MTI6MzQgLTAwMDAKQEAgLTAsMCArMSBAQAorI2lu
Y2x1ZGUgIktET01IZWFkZXJzLmgiCkluZGV4OiBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL0hlbHBl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KUkNTIGZpbGU6IEZvcndhcmRpbmdIZWFkZXJzL2tkb20vSGVscGVyLmgK
ZGlmZiAtTiBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL0hlbHBlci5oCi0tLSBGb3J3YXJkaW5nSGVh
ZGVycy9rZG9tL0hlbHBlci5oCTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysrIEZvcndhcmRp
bmdIZWFkZXJzL2tkb20vSGVscGVyLmgJMSBOb3YgMjAwNSAxMToxMjozNCAtMDAwMApAQCAtMCww
ICsxIEBACisjaW5jbHVkZSAiS0RPTUhlYWRlcnMuaCIKSW5kZXg6IEZvcndhcmRpbmdIZWFkZXJz
L2tkb20vS0RPTVBhcnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBGb3J3YXJkaW5nSGVhZGVycy9r
ZG9tL0tET01QYXJ0LmgKZGlmZiAtTiBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL0tET01QYXJ0LmgK
LS0tIEZvcndhcmRpbmdIZWFkZXJzL2tkb20vS0RPTVBhcnQuaAkxIEphbiAxOTcwIDAwOjAwOjAw
IC0wMDAwCisrKyBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL0tET01QYXJ0LmgJMSBOb3YgMjAwNSAx
MToxMjozNCAtMDAwMApAQCAtMCwwICsxIEBACisjaW5jbHVkZSAiS0RPTUhlYWRlcnMuaCIKSW5k
ZXg6IEZvcndhcmRpbmdIZWFkZXJzL2tkb20vS0RPTVNldHRpbmdzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg
ZmlsZTogRm9yd2FyZGluZ0hlYWRlcnMva2RvbS9LRE9NU2V0dGluZ3MuaApkaWZmIC1OIEZvcndh
cmRpbmdIZWFkZXJzL2tkb20vS0RPTVNldHRpbmdzLmgKLS0tIEZvcndhcmRpbmdIZWFkZXJzL2tk
b20vS0RPTVNldHRpbmdzLmgJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMAorKysgRm9yd2FyZGlu
Z0hlYWRlcnMva2RvbS9LRE9NU2V0dGluZ3MuaAkxIE5vdiAyMDA1IDExOjEyOjM0IC0wMDAwCkBA
IC0wLDAgKzEgQEAKKyNpbmNsdWRlICJLRE9NSGVhZGVycy5oIgpJbmRleDogRm9yd2FyZGluZ0hl
YWRlcnMva2RvbS9LRE9NVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IEZvcndhcmRpbmdIZWFk
ZXJzL2tkb20vS0RPTVZpZXcuaApkaWZmIC1OIEZvcndhcmRpbmdIZWFkZXJzL2tkb20vS0RPTVZp
ZXcuaAotLS0gRm9yd2FyZGluZ0hlYWRlcnMva2RvbS9LRE9NVmlldy5oCTEgSmFuIDE5NzAgMDA6
MDA6MDAgLTAwMDAKKysrIEZvcndhcmRpbmdIZWFkZXJzL2tkb20vS0RPTVZpZXcuaAkxIE5vdiAy
MDA1IDExOjEyOjM0IC0wMDAwCkBAIC0wLDAgKzEgQEAKKyNpbmNsdWRlICJXZWJDb3JlK1NWRy9L
RE9NVmlldy5oIgpJbmRleDogRm9yd2FyZGluZ0hlYWRlcnMva2RvbS9OYW1lc3BhY2UuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL05hbWVzcGFjZS5oCmRpZmYg
LU4gRm9yd2FyZGluZ0hlYWRlcnMva2RvbS9OYW1lc3BhY2UuaAotLS0gRm9yd2FyZGluZ0hlYWRl
cnMva2RvbS9OYW1lc3BhY2UuaAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyBGb3J3YXJk
aW5nSGVhZGVycy9rZG9tL05hbWVzcGFjZS5oCTEgTm92IDIwMDUgMTE6MTI6MzQgLTAwMDAKQEAg
LTAsMCArMSBAQAorI2luY2x1ZGUgIktET01IZWFkZXJzLmgiCkluZGV4OiBGb3J3YXJkaW5nSGVh
ZGVycy9rZG9tL1NoYXJlZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IEZvcndhcmRpbmdIZWFkZXJz
L2tkb20vU2hhcmVkLmgKZGlmZiAtTiBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL1NoYXJlZC5oCi0t
LSBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL1NoYXJlZC5oCTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAw
MDAKKysrIEZvcndhcmRpbmdIZWFkZXJzL2tkb20vU2hhcmVkLmgJMSBOb3YgMjAwNSAxMToxMjoz
NCAtMDAwMApAQCAtMCwwICsxIEBACisjaW5jbHVkZSAiS0RPTUhlYWRlcnMuaCIKSW5kZXg6IEZv
cndhcmRpbmdIZWFkZXJzL2tkb20va2RvbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IEZvcndhcmRp
bmdIZWFkZXJzL2tkb20va2RvbS5oCmRpZmYgLU4gRm9yd2FyZGluZ0hlYWRlcnMva2RvbS9rZG9t
LmgKLS0tIEZvcndhcmRpbmdIZWFkZXJzL2tkb20va2RvbS5oCTEgSmFuIDE5NzAgMDA6MDA6MDAg
LTAwMDAKKysrIEZvcndhcmRpbmdIZWFkZXJzL2tkb20va2RvbS5oCTEgTm92IDIwMDUgMTE6MTI6
MzQgLTAwMDAKQEAgLTAsMCArMSBAQAorI2luY2x1ZGUgIktET01IZWFkZXJzLmgiCkluZGV4OiBG
b3J3YXJkaW5nSGVhZGVycy9rZG9tL2Nzcy9DU1NNZWRpYVJ1bGVJbXBsLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogRm9yd2FyZGluZ0hlYWRlcnMva2RvbS9jc3MvQ1NTTWVkaWFSdWxlSW1wbC5oCmRp
ZmYgLU4gRm9yd2FyZGluZ0hlYWRlcnMva2RvbS9jc3MvQ1NTTWVkaWFSdWxlSW1wbC5oCi0tLSBG
b3J3YXJkaW5nSGVhZGVycy9rZG9tL2Nzcy9DU1NNZWRpYVJ1bGVJbXBsLmgJMSBKYW4gMTk3MCAw
MDowMDowMCAtMDAwMAorKysgRm9yd2FyZGluZ0hlYWRlcnMva2RvbS9jc3MvQ1NTTWVkaWFSdWxl
SW1wbC5oCTEgTm92IDIwMDUgMTE6MTI6MzQgLTAwMDAKQEAgLTAsMCArMSBAQAorI2luY2x1ZGUg
IktET01IZWFkZXJzLmgiCkluZGV4OiBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL2Nzcy9DU1NQcmlt
aXRpdmVWYWx1ZUltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBGb3J3YXJkaW5nSGVhZGVycy9r
ZG9tL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZUltcGwuaApkaWZmIC1OIEZvcndhcmRpbmdIZWFkZXJz
L2tkb20vY3NzL0NTU1ByaW1pdGl2ZVZhbHVlSW1wbC5oCi0tLSBGb3J3YXJkaW5nSGVhZGVycy9r
ZG9tL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZUltcGwuaAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAw
CisrKyBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZUltcGwuaAkx
IE5vdiAyMDA1IDExOjEyOjM0IC0wMDAwCkBAIC0wLDAgKzEgQEAKKyNpbmNsdWRlICJLRE9NSGVh
ZGVycy5oIgpJbmRleDogRm9yd2FyZGluZ0hlYWRlcnMva2RvbS9jc3MvQ1NTUnVsZUltcGwuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL2Nzcy9DU1NSdWxlSW1w
bC5oCmRpZmYgLU4gRm9yd2FyZGluZ0hlYWRlcnMva2RvbS9jc3MvQ1NTUnVsZUltcGwuaAotLS0g
Rm9yd2FyZGluZ0hlYWRlcnMva2RvbS9jc3MvQ1NTUnVsZUltcGwuaAkxIEphbiAxOTcwIDAwOjAw
OjAwIC0wMDAwCisrKyBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL2Nzcy9DU1NSdWxlSW1wbC5oCTEg
Tm92IDIwMDUgMTE6MTI6MzQgLTAwMDAKQEAgLTAsMCArMSBAQAorI2luY2x1ZGUgIktET01IZWFk
ZXJzLmgiCkluZGV4OiBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL2Nzcy9DU1NSdWxlTGlzdEltcGwu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL2Nzcy9DU1NSdWxl
TGlzdEltcGwuaApkaWZmIC1OIEZvcndhcmRpbmdIZWFkZXJzL2tkb20vY3NzL0NTU1J1bGVMaXN0
SW1wbC5oCi0tLSBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL2Nzcy9DU1NSdWxlTGlzdEltcGwuaAkx
IEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL2Nzcy9D
U1NSdWxlTGlzdEltcGwuaAkxIE5vdiAyMDA1IDExOjEyOjM0IC0wMDAwCkBAIC0wLDAgKzEgQEAK
KyNpbmNsdWRlICJLRE9NSGVhZGVycy5oIgpJbmRleDogRm9yd2FyZGluZ0hlYWRlcnMva2RvbS9j
c3MvQ1NTU3R5bGVEZWNsYXJhdGlvbkltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBGb3J3YXJk
aW5nSGVhZGVycy9rZG9tL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uSW1wbC5oCmRpZmYgLU4gRm9y
d2FyZGluZ0hlYWRlcnMva2RvbS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbkltcGwuaAotLS0gRm9y
d2FyZGluZ0hlYWRlcnMva2RvbS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbkltcGwuaAkxIEphbiAx
OTcwIDAwOjAwOjAwIC0wMDAwCisrKyBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL2Nzcy9DU1NTdHls
ZURlY2xhcmF0aW9uSW1wbC5oCTEgTm92IDIwMDUgMTE6MTI6MzQgLTAwMDAKQEAgLTAsMCArMSBA
QAorI2luY2x1ZGUgIktET01IZWFkZXJzLmgiCkluZGV4OiBGb3J3YXJkaW5nSGVhZGVycy9rZG9t
L2Nzcy9DU1NTdHlsZVJ1bGVJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogRm9yd2FyZGluZ0hl
YWRlcnMva2RvbS9jc3MvQ1NTU3R5bGVSdWxlSW1wbC5oCmRpZmYgLU4gRm9yd2FyZGluZ0hlYWRl
cnMva2RvbS9jc3MvQ1NTU3R5bGVSdWxlSW1wbC5oCi0tLSBGb3J3YXJkaW5nSGVhZGVycy9rZG9t
L2Nzcy9DU1NTdHlsZVJ1bGVJbXBsLmgJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMAorKysgRm9y
d2FyZGluZ0hlYWRlcnMva2RvbS9jc3MvQ1NTU3R5bGVSdWxlSW1wbC5oCTEgTm92IDIwMDUgMTE6
MTI6MzQgLTAwMDAKQEAgLTAsMCArMSBAQAorI2luY2x1ZGUgIktET01IZWFkZXJzLmgiCkluZGV4
OiBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogRm9yd2FyZGluZ0hlYWRlcnMva2RvbS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5o
CmRpZmYgLU4gRm9yd2FyZGluZ0hlYWRlcnMva2RvbS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5oCi0t
LSBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmgJMSBKYW4gMTk3
MCAwMDowMDowMCAtMDAwMAorKysgRm9yd2FyZGluZ0hlYWRlcnMva2RvbS9jc3MvQ1NTU3R5bGVT
ZWxlY3Rvci5oCTEgTm92IDIwMDUgMTE6MTI6MzQgLTAwMDAKQEAgLTAsMCArMSBAQAorI2luY2x1
ZGUgIktET01IZWFkZXJzLmgiCkluZGV4OiBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL2Nzcy9DU1NT
dHlsZVNoZWV0SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IEZvcndhcmRpbmdIZWFkZXJzL2tk
b20vY3NzL0NTU1N0eWxlU2hlZXRJbXBsLmgKZGlmZiAtTiBGb3J3YXJkaW5nSGVhZGVycy9rZG9t
L2Nzcy9DU1NTdHlsZVNoZWV0SW1wbC5oCi0tLSBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL2Nzcy9D
U1NTdHlsZVNoZWV0SW1wbC5oCTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysrIEZvcndhcmRp
bmdIZWFkZXJzL2tkb20vY3NzL0NTU1N0eWxlU2hlZXRJbXBsLmgJMSBOb3YgMjAwNSAxMToxMjoz
NCAtMDAwMApAQCAtMCwwICsxIEBACisjaW5jbHVkZSAiS0RPTUhlYWRlcnMuaCIKSW5kZXg6IEZv
cndhcmRpbmdIZWFkZXJzL2tkb20vY3NzL0NTU1ZhbHVlSW1wbC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IEZvcndhcmRpbmdIZWFkZXJzL2tkb20vY3NzL0NTU1ZhbHVlSW1wbC5oCmRpZmYgLU4gRm9y
d2FyZGluZ0hlYWRlcnMva2RvbS9jc3MvQ1NTVmFsdWVJbXBsLmgKLS0tIEZvcndhcmRpbmdIZWFk
ZXJzL2tkb20vY3NzL0NTU1ZhbHVlSW1wbC5oCTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysr
IEZvcndhcmRpbmdIZWFkZXJzL2tkb20vY3NzL0NTU1ZhbHVlSW1wbC5oCTEgTm92IDIwMDUgMTE6
MTI6MzQgLTAwMDAKQEAgLTAsMCArMSBAQAorI2luY2x1ZGUgIktET01IZWFkZXJzLmgiCkluZGV4
OiBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL2Nzcy9DU1NWYWx1ZUxpc3RJbXBsLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogRm9yd2FyZGluZ0hlYWRlcnMva2RvbS9jc3MvQ1NTVmFsdWVMaXN0SW1wbC5o
CmRpZmYgLU4gRm9yd2FyZGluZ0hlYWRlcnMva2RvbS9jc3MvQ1NTVmFsdWVMaXN0SW1wbC5oCi0t
LSBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL2Nzcy9DU1NWYWx1ZUxpc3RJbXBsLmgJMSBKYW4gMTk3
MCAwMDowMDowMCAtMDAwMAorKysgRm9yd2FyZGluZ0hlYWRlcnMva2RvbS9jc3MvQ1NTVmFsdWVM
aXN0SW1wbC5oCTEgTm92IDIwMDUgMTE6MTI6MzQgLTAwMDAKQEAgLTAsMCArMSBAQAorI2luY2x1
ZGUgIktET01IZWFkZXJzLmgiCkluZGV4OiBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL2Nzcy9LRE9N
Q1NTUGFyc2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogRm9yd2FyZGluZ0hlYWRlcnMva2RvbS9j
c3MvS0RPTUNTU1BhcnNlci5oCmRpZmYgLU4gRm9yd2FyZGluZ0hlYWRlcnMva2RvbS9jc3MvS0RP
TUNTU1BhcnNlci5oCi0tLSBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL2Nzcy9LRE9NQ1NTUGFyc2Vy
LmgJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMAorKysgRm9yd2FyZGluZ0hlYWRlcnMva2RvbS9j
c3MvS0RPTUNTU1BhcnNlci5oCTEgTm92IDIwMDUgMTE6MTI6MzQgLTAwMDAKQEAgLTAsMCArMSBA
QAorI2luY2x1ZGUgIktET01IZWFkZXJzLmgiCkluZGV4OiBGb3J3YXJkaW5nSGVhZGVycy9rZG9t
L2Nzcy9NZWRpYUxpc3RJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogRm9yd2FyZGluZ0hlYWRl
cnMva2RvbS9jc3MvTWVkaWFMaXN0SW1wbC5oCmRpZmYgLU4gRm9yd2FyZGluZ0hlYWRlcnMva2Rv
bS9jc3MvTWVkaWFMaXN0SW1wbC5oCi0tLSBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL2Nzcy9NZWRp
YUxpc3RJbXBsLmgJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMAorKysgRm9yd2FyZGluZ0hlYWRl
cnMva2RvbS9jc3MvTWVkaWFMaXN0SW1wbC5oCTEgTm92IDIwMDUgMTE6MTI6MzQgLTAwMDAKQEAg
LTAsMCArMSBAQAorI2luY2x1ZGUgIktET01IZWFkZXJzLmgiCkluZGV4OiBGb3J3YXJkaW5nSGVh
ZGVycy9rZG9tL2Nzcy9SR0JDb2xvckltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBGb3J3YXJk
aW5nSGVhZGVycy9rZG9tL2Nzcy9SR0JDb2xvckltcGwuaApkaWZmIC1OIEZvcndhcmRpbmdIZWFk
ZXJzL2tkb20vY3NzL1JHQkNvbG9ySW1wbC5oCi0tLSBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL2Nz
cy9SR0JDb2xvckltcGwuaAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyBGb3J3YXJkaW5n
SGVhZGVycy9rZG9tL2Nzcy9SR0JDb2xvckltcGwuaAkxIE5vdiAyMDA1IDExOjEyOjM0IC0wMDAw
CkBAIC0wLDAgKzEgQEAKKyNpbmNsdWRlICJLRE9NSGVhZGVycy5oIgpJbmRleDogRm9yd2FyZGlu
Z0hlYWRlcnMva2RvbS9jc3MvUmVuZGVyU3R5bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBGb3J3
YXJkaW5nSGVhZGVycy9rZG9tL2Nzcy9SZW5kZXJTdHlsZS5oCmRpZmYgLU4gRm9yd2FyZGluZ0hl
YWRlcnMva2RvbS9jc3MvUmVuZGVyU3R5bGUuaAotLS0gRm9yd2FyZGluZ0hlYWRlcnMva2RvbS9j
c3MvUmVuZGVyU3R5bGUuaAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyBGb3J3YXJkaW5n
SGVhZGVycy9rZG9tL2Nzcy9SZW5kZXJTdHlsZS5oCTEgTm92IDIwMDUgMTE6MTI6MzQgLTAwMDAK
QEAgLTAsMCArMSBAQAorI2luY2x1ZGUgIktET01IZWFkZXJzLmgiCkluZGV4OiBGb3J3YXJkaW5n
SGVhZGVycy9rZG9tL2Nzcy9TdHlsZVNoZWV0TGlzdEltcGwuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL2Nzcy9TdHlsZVNoZWV0TGlzdEltcGwuaApkaWZmIC1O
IEZvcndhcmRpbmdIZWFkZXJzL2tkb20vY3NzL1N0eWxlU2hlZXRMaXN0SW1wbC5oCi0tLSBGb3J3
YXJkaW5nSGVhZGVycy9rZG9tL2Nzcy9TdHlsZVNoZWV0TGlzdEltcGwuaAkxIEphbiAxOTcwIDAw
OjAwOjAwIC0wMDAwCisrKyBGb3J3YXJkaW5nSGVhZGVycy9rZG9tL2Nzcy9TdHlsZVNoZWV0TGlz
dEltcGwuaAkxIE5vdiAyMDA1IDExOjEyOjM0IC0wMDAwCkBAIC0wLDAgKzEgQEAKKyNpbmNsdWRl
ICJLRE9NSGVhZGVycy5oIgpJbmRleDogRm9yd2FyZGluZ0hlYWRlcnMva3N2ZzIvS1NWR1BhcnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVy
cy9rc3ZnMi9LU1ZHUGFydC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEKZGlmZiAtcCAtdSAt
cjEuMSBGb3J3YXJkaW5nSGVhZGVycy9rc3ZnMi9LU1ZHUGFydC5oCi0tLSBGb3J3YXJkaW5nSGVh
ZGVycy9rc3ZnMi9LU1ZHUGFydC5oCTkgSnVsIDIwMDUgMDY6NTM6MTAgLTAwMDAJMS4xCisrKyBG
b3J3YXJkaW5nSGVhZGVycy9rc3ZnMi9LU1ZHUGFydC5oCTEgTm92IDIwMDUgMTE6MTI6MzQgLTAw
MDAKQEAgLTEgKzEgQEAKLSNpbmNsdWRlIDxLV1FLU1ZHUGFydC5oPgorI2luY2x1ZGUgIktET01I
ZWFkZXJzLmgiCkluZGV4OiBGb3J3YXJkaW5nSGVhZGVycy9rc3ZnMi9LU1ZHVmlldy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2tzdmcy
L0tTVkdWaWV3LmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMQpkaWZmIC1wIC11IC1yMS4xIEZv
cndhcmRpbmdIZWFkZXJzL2tzdmcyL0tTVkdWaWV3LmgKLS0tIEZvcndhcmRpbmdIZWFkZXJzL2tz
dmcyL0tTVkdWaWV3LmgJOSBKdWwgMjAwNSAwNjo1MzoxMCAtMDAwMAkxLjEKKysrIEZvcndhcmRp
bmdIZWFkZXJzL2tzdmcyL0tTVkdWaWV3LmgJMSBOb3YgMjAwNSAxMToxMjozNCAtMDAwMApAQCAt
MSArMSBAQAotI2luY2x1ZGUgPEtXUUtTVkdWaWV3Lmg+CisjaW5jbHVkZSAiS0RPTUhlYWRlcnMu
aCIKSW5kZXg6IFdlYkNvcmUrU1ZHL0RPTUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBXZWJD
b3JlK1NWRy9ET01MaXN0LmgKZGlmZiAtTiBXZWJDb3JlK1NWRy9ET01MaXN0LmgKLS0tIFdlYkNv
cmUrU1ZHL0RPTUxpc3QuaAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyBXZWJDb3JlK1NW
Ry9ET01MaXN0LmgJMSBOb3YgMjAwNSAxMToxMjozNSAtMDAwMApAQCAtMCwwICsxLDEyNSBAQAor
LyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxk
Zm94QGtkZS5vcmc+CisgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlz
QGtkZS5vcmc+CisKKyAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKKwor
ICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAg
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFj
ZSAtIFN1aXRlIDMzMCwKKyAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyovCisKKyNp
Zm5kZWYgS0RPTV9ET01MaXN0X0gKKyNkZWZpbmUgS0RPTV9ET01MaXN0X0gKKworI2luY2x1ZGUg
PHEzcHRybGlzdC5oPgorI2luY2x1ZGUgPGtkb20vU2hhcmVkLmg+CisKK25hbWVzcGFjZSBET00K
K3sKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPgorICAgIGNsYXNzIERPTUxpc3QgOiBwdWJsaWMgU2hh
cmVkPERPTUxpc3Q8VD4gPgorICAgIHsKKyAgICBwdWJsaWM6CisgICAgICAgIERPTUxpc3QoKSA6
IFNoYXJlZDxET01MaXN0PFQ+ID4oKSB7IG1faW1wbC5zZXRBdXRvRGVsZXRlKGZhbHNlKTsgfQor
ICAgICAgICBET01MaXN0KGNvbnN0IERPTUxpc3QgJm90aGVyKSB7ICp0aGlzID0gb3RoZXI7IH0K
KyAgICAgICAgdmlydHVhbCB+RE9NTGlzdCgpIHsgY2xlYXIoKTsgfQorCisvLyAgICAgICAgRE9N
TGlzdDxUPiAmb3BlcmF0b3I9KGNvbnN0IERPTUxpc3Q8VD4gJm90aGVyKQorLy8gICAgICAgIHsK
Ky8vICAgICAgICAgICAgLy8gQ2xlYXIgb3duIGxpc3QKKy8vICAgICAgICAgICAgY2xlYXIoKTsK
Ky8vCisvLyAgICAgICAgICAgIC8vIENsb25lIG90aGVyJ3MgZWxlbWVudHMgYW5kIGFwcGVuZCB0
aGVtCisvLyAgICAgICAgICAgIERPTUxpc3Q8VD4gJmdldCA9IGNvbnN0X2Nhc3Q8RE9NTGlzdDxU
PiAmPihvdGhlcik7CisvLyAgICAgICAgICAgIHVuc2lnbmVkIGludCBuciA9IG90aGVyLm51bWJl
ck9mSXRlbXMoKTsKKy8vICAgICAgICAgICAgZm9yKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IG5y
OyBpKyspCisvLyAgICAgICAgICAgIHsKKy8vICAgICAgICAgICAgICAgIFQgKm9iaiA9IG5ldyBU
KCpnZXQuZ2V0SXRlbShpKSk7CisvLyAgICAgICAgICAgICAgICBvYmotPnJlZigpOworLy8KKy8v
ICAgICAgICAgICAgICAgIGFwcGVuZEl0ZW0ob2JqKTsKKy8vICAgICAgICAgICAgfQorLy8KKy8v
ICAgICAgICAgICAgcmV0dXJuICp0aGlzOworLy8gICAgICAgIH0KKworICAgICAgICB1bnNpZ25l
ZCBpbnQgbnVtYmVyT2ZJdGVtcygpIGNvbnN0IHsgcmV0dXJuIG1faW1wbC5jb3VudCgpOyB9CisK
KyAgICAgICAgdmlydHVhbCB2b2lkIGNsZWFyKCkKKyAgICAgICAgeworICAgICAgICAgICAgZm9y
KHVuc2lnbmVkIGludCBpID0gMDsgaSA8IG51bWJlck9mSXRlbXMoKTsgaSsrKQorICAgICAgICAg
ICAgICAgIGdldEl0ZW0oaSktPmRlcmVmKCk7CisKKyAgICAgICAgICAgIG1faW1wbC5jbGVhcigp
OworICAgICAgICB9CisKKyAgICAgICAgVCAqaW5pdGlhbGl6ZShUICpuZXdJdGVtKQorICAgICAg
ICB7CisgICAgICAgICAgICBjbGVhcigpOworICAgICAgICAgICAgcmV0dXJuIGFwcGVuZEl0ZW0o
bmV3SXRlbSk7CisgICAgICAgIH0KKworICAgICAgICBUICpnZXRGaXJzdCgpIGNvbnN0IHsgcmV0
dXJuIG1faW1wbC5nZXRGaXJzdCgpOyB9CisKKyAgICAgICAgVCAqZ2V0TGFzdCgpIGNvbnN0IHsg
cmV0dXJuIG1faW1wbC5nZXRMYXN0KCk7IH0KKworICAgICAgICBUICpnZXRJdGVtKHVuc2lnbmVk
IGludCBpbmRleCkgeyByZXR1cm4gbV9pbXBsLmF0KGluZGV4KTsgfQorICAgICAgICBjb25zdCBU
ICpnZXRJdGVtKHVuc2lnbmVkIGludCBpbmRleCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxE
T01MaXN0PFQ+ICo+KHRoaXMpLT5tX2ltcGwuYXQoaW5kZXgpOyB9CisKKyAgICAgICAgdmlydHVh
bCBUICppbnNlcnRJdGVtQmVmb3JlKFQgKm5ld0l0ZW0sIHVuc2lnbmVkIGludCBpbmRleCkKKyAg
ICAgICAgeworICAgICAgICAgICAgbV9pbXBsLmluc2VydChpbmRleCwgbmV3SXRlbSk7CisgICAg
ICAgICAgICByZXR1cm4gbmV3SXRlbTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgVCAq
cmVwbGFjZUl0ZW0oVCAqbmV3SXRlbSwgdW5zaWduZWQgaW50IGluZGV4KQorICAgICAgICB7Cisg
ICAgICAgICAgICBtX2ltcGwudGFrZShpbmRleCk7CisgICAgICAgICAgICBtX2ltcGwuaW5zZXJ0
KGluZGV4LCBuZXdJdGVtKTsKKyAgICAgICAgICAgIHJldHVybiBuZXdJdGVtOworICAgICAgICB9
CisKKyAgICAgICAgdmlydHVhbCBUICpyZW1vdmVJdGVtKHVuc2lnbmVkIGludCBpbmRleCkKKyAg
ICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1faW1wbC50YWtlKGluZGV4KTsKKyAgICAgICAg
fQorCisgICAgICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJdGVtKGNvbnN0IFQgKml0ZW0pCisgICAg
ICAgIHsKKyAgICAgICAgICAgIG1faW1wbC5yZW1vdmUoaXRlbSk7CisgICAgICAgIH0KKworICAg
ICAgICB2aXJ0dWFsIFQgKmFwcGVuZEl0ZW0oVCAqbmV3SXRlbSkKKyAgICAgICAgeworICAgICAg
ICAgICAgbV9pbXBsLmFwcGVuZChuZXdJdGVtKTsKKyAgICAgICAgICAgIHJldHVybiBuZXdJdGVt
OworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCBib29sIGNvbnRhaW5zKGNvbnN0IFQgKml0
ZW0pCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmKG1faW1wbC5maW5kUmVmKGl0ZW0pICE9IC0x
KQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIFEzUHRyTGlzdDxUPiBtX2lt
cGw7CisgICAgfTsKK307CisKKyNlbmRpZgorCisvLyB2aW06dHM9NDpub2V0CkluZGV4OiBXZWJD
b3JlK1NWRy9EcmF3Q2FudmFzSXRlbS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3Qv
U1ZHU3VwcG9ydC9XZWJDb3JlK1NWRy9EcmF3Q2FudmFzSXRlbS5tbSx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS42CmRpZmYgLXAgLXUgLXIxLjYgV2ViQ29yZStTVkcvRHJhd0NhbnZhc0l0ZW0ubW0K
LS0tIFdlYkNvcmUrU1ZHL0RyYXdDYW52YXNJdGVtLm1tCTExIE9jdCAyMDA1IDA5OjExOjQ4IC0w
MDAwCTEuNgorKysgV2ViQ29yZStTVkcvRHJhd0NhbnZhc0l0ZW0ubW0JMSBOb3YgMjAwNSAxMTox
MjozNSAtMDAwMApAQCAtMzEsOCArMzEsNiBAQAogCiAjaW1wb3J0IDxxYXBwbGljYXRpb24uaD4K
IAotI2RlZmluZSBpZCBJRF9IQUNLCi0KICNpbXBvcnQgPGtkb20vTmFtZXNwYWNlLmg+CiAjaW1w
b3J0IDxrZG9tL0hlbHBlci5oPgogI2ltcG9ydCA8a2RvbS9ET01TdHJpbmcuaD4KQEAgLTQyLDEx
ICs0MCwxMCBAQAogI2ltcG9ydCA8a3N2ZzIvc3ZnL1NWR1JlY3RFbGVtZW50SW1wbC5oPgogI2lt
cG9ydCA8a3N2ZzIvc3ZnL1NWR1BhdGhFbGVtZW50SW1wbC5oPgogCi0jdW5kZWYgaWQKLQogI2lt
cG9ydCAiS1dRVGV4dFN0cmVhbS5oIgogCi11c2luZyBuYW1lc3BhY2UgS0RPTTsKK3VzaW5nIG5h
bWVzcGFjZSBET007Cit1c2luZyBuYW1lc3BhY2UgS1NWRzsKIAogQGludGVyZmFjZSBEcmF3Q2Fu
dmFzSXRlbVByaXZhdGUgOiBOU09iamVjdCB7CiAgICAgQHB1YmxpYwpAQCAtMTA4LDE5ICsxMDUs
MTggQEAgdXNpbmcgbmFtZXNwYWNlIEtET007CiAvLyBzZWUgbm90ZSBpbiBoZWFkZXIuCiAtIChO
U1BvaW50KWRyYWdBbmNob3JQb2ludEZvckNvbnRyb2xQb2ludEluZGV4OihpbnQpY29udHJvbFBv
aW50SW5kZXgKIHsKLSAgICBLRE9NOjpOb2RlSW1wbCAqbm9kZSA9IChLRE9NOjpOb2RlSW1wbCAq
KV9wcml2YXRlLT5pdGVtLT51c2VyRGF0YSgpOwotICAgIGludCBsb2NhbElkID0gbm9kZS0+bG9j
YWxJZCgpOworICAgIC8vS0RPTTo6Tm9kZUltcGwgKm5vZGUgPSAoS0RPTTo6Tm9kZUltcGwgKilf
cHJpdmF0ZS0+aXRlbS0+dXNlckRhdGEoKTsKICAgICBOU1BvaW50IGRyYWdBbmNob3JQb2ludDsK
ICAgICAKLSAgICBzd2l0Y2ggKGxvY2FsSWQpIHsKLQljYXNlIElEX1BBVEg6Ci0gICAgICAgICAg
ICAvL0tTVkc6OlNWR1BhdGhFbGVtZW50SW1wbCAqcGF0aCA9IChLU1ZHOjpTVkdQYXRoRWxlbWVu
dEltcGwgKilub2RlOwotCWRlZmF1bHQ6CisvLyAgICBzd2l0Y2ggKGxvY2FsSWQpIHsKKy8vCWNh
c2UgSURfUEFUSDoKKy8vICAgICAgICAgICAgLy9LU1ZHOjpTVkdQYXRoRWxlbWVudEltcGwgKnBh
dGggPSAoS1NWRzo6U1ZHUGF0aEVsZW1lbnRJbXBsICopbm9kZTsKKy8vCWRlZmF1bHQ6CiAgICAg
ICAgICAgICAvLyBpZiB3ZSBoYXZlIG5vIHNwZWNpYWwga25vYiBsaXN0LCBncmFiIHRoZSBkZWZh
dWx0CiAgICAgICAgICAgICBkcmFnQW5jaG9yUG9pbnQgPSBbRHJhd0NhbnZhc0l0ZW0gZHJhZ0Fu
Y2hvclBvaW50Rm9yQ29udHJvbFBvaW50SW5kZXg6Y29udHJvbFBvaW50SW5kZXgKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21S
ZWN0Q29udHJvbFBvaW50czpbc2VsZiBjb250cm9sUG9pbnRzXV07CiAgICAgICAgICAgICAKLSAg
ICB9CisgICAgLy99CiAgICAgcmV0dXJuIGRyYWdBbmNob3JQb2ludDsKIH0KIApAQCAtMTM4LDE3
ICsxMzQsMTYgQEAgdXNpbmcgbmFtZXNwYWNlIEtET007CiAvLyBzZWUgbm90ZSBpbiBoZWFkZXIu
CiAtIChOU0FycmF5ICopY29udHJvbFBvaW50cwogewkKLSAgICBLRE9NOjpOb2RlSW1wbCAqbm9k
ZSA9IChLRE9NOjpOb2RlSW1wbCAqKV9wcml2YXRlLT5pdGVtLT51c2VyRGF0YSgpOwotICAgIGlu
dCBsb2NhbElkID0gbm9kZS0+bG9jYWxJZCgpOworICAgIC8vS0RPTTo6Tm9kZUltcGwgKm5vZGUg
PSAoS0RPTTo6Tm9kZUltcGwgKilfcHJpdmF0ZS0+aXRlbS0+dXNlckRhdGEoKTsKICAgICBOU0Fy
cmF5ICpjb250cm9sUG9pbnRzID0gbmlsOwogICAgIAotICAgIHN3aXRjaCAobG9jYWxJZCkgewot
ICAgICAgICBjYXNlIElEX1BBVEg6Ci0gICAgICAgICAgICAvL0tTVkc6OlNWR1BhdGhFbGVtZW50
SW1wbCAqcGF0aCA9IChLU1ZHOjpTVkdQYXRoRWxlbWVudEltcGwgKilub2RlOwotICAgICAgICBk
ZWZhdWx0OgorLy8gICAgc3dpdGNoIChsb2NhbElkKSB7CisvLyAgICAgICAgY2FzZSBJRF9QQVRI
OgorLy8gICAgICAgICAgICAvL0tTVkc6OlNWR1BhdGhFbGVtZW50SW1wbCAqcGF0aCA9IChLU1ZH
OjpTVkdQYXRoRWxlbWVudEltcGwgKilub2RlOworLy8gICAgICAgIGRlZmF1bHQ6CiAgICAgICAg
ICAgICAvLyBpZiB3ZSBoYXZlIG5vIHNwZWNpYWwga25vYiBsaXN0LCBncmFiIHRoZSBkZWZhdWx0
CiAgICAgICAgICAgICBjb250cm9sUG9pbnRzID0gW0RyYXdDYW52YXNJdGVtIGNvbnRyb2xQb2lu
dHNGb3JSZWN0OltzZWxmIGJvdW5kaW5nQm94XV07Ci0gICAgfQorICAgIC8vfQogICAgIHJldHVy
biBjb250cm9sUG9pbnRzOwogfQogCkBAIC0xNTksMzAgKzE1NCwyMiBAQCB1c2luZyBuYW1lc3Bh
Y2UgS0RPTTsKICAgICAvL05TTG9nKEAiRml0dGluZyBjYW52YXNJdGVtOiAlcCBmcm9tOiAlQCBp
bnRvIG5ldyBiYm94OiAlQCIsCiAgICAgLy8Jc2VsZiwgTlNTdHJpbmdGcm9tUmVjdChbc2VsZiBi
b3VuZGluZ0JveF0pLCBOU1N0cmluZ0Zyb21SZWN0KG5ld1JlY3QpKTsKICAgICBLRE9NOjpOb2Rl
SW1wbCAqbm9kZSA9IChLRE9NOjpOb2RlSW1wbCAqKV9wcml2YXRlLT5pdGVtLT51c2VyRGF0YSgp
OwotICAgIGludCBsb2NhbElkID0gbm9kZS0+bG9jYWxJZCgpOwotICAgIEtET006OkRPTVN0cmlu
Z0ltcGwgKnN2Z05hbWVzcGFjZSA9IEtET006Ok5TX1NWRy5oYW5kbGUoKTsKLSAgICBzd2l0Y2gg
KGxvY2FsSWQpIHsKLQljYXNlIElEX0VMTElQU0U6Ci0JewotICAgICAgICAgICAgS1NWRzo6U1ZH
RWxsaXBzZUVsZW1lbnRJbXBsICplbGxpcHNlID0gKEtTVkc6OlNWR0VsbGlwc2VFbGVtZW50SW1w
bCAqKW5vZGU7Ci0gICAgICAgICAgICBlbGxpcHNlLT5zZXRBdHRyaWJ1dGVOUyhzdmdOYW1lc3Bh
Y2UsIERPTVN0cmluZygiY3giKS5oYW5kbGUoKSwgRE9NU3RyaW5nKFFTdHJpbmc6Om51bWJlcihu
ZXdSZWN0Lm9yaWdpbi54ICsgbmV3UmVjdC5zaXplLndpZHRoLzIuZikpLmhhbmRsZSgpKTsKLSAg
ICAgICAgICAgIGVsbGlwc2UtPnNldEF0dHJpYnV0ZU5TKHN2Z05hbWVzcGFjZSwgRE9NU3RyaW5n
KCJjeSIpLmhhbmRsZSgpLCBET01TdHJpbmcoUVN0cmluZzo6bnVtYmVyKG5ld1JlY3Qub3JpZ2lu
LnkgKyBuZXdSZWN0LnNpemUuaGVpZ2h0LzIuZikpLmhhbmRsZSgpKTsKLSAgICAgICAgICAgIGVs
bGlwc2UtPnNldEF0dHJpYnV0ZU5TKHN2Z05hbWVzcGFjZSwgRE9NU3RyaW5nKCJyeCIpLmhhbmRs
ZSgpLCBET01TdHJpbmcoUVN0cmluZzo6bnVtYmVyKG5ld1JlY3Quc2l6ZS53aWR0aC8yLmYpKS5o
YW5kbGUoKSk7Ci0gICAgICAgICAgICBlbGxpcHNlLT5zZXRBdHRyaWJ1dGVOUyhzdmdOYW1lc3Bh
Y2UsIERPTVN0cmluZygicnkiKS5oYW5kbGUoKSwgRE9NU3RyaW5nKFFTdHJpbmc6Om51bWJlcihu
ZXdSZWN0LnNpemUuaGVpZ2h0LzIuZikpLmhhbmRsZSgpKTsKLSAgICAgICAgICAgIGJyZWFrOwot
CX0KLQljYXNlIElEX1JFQ1Q6Ci0JewotICAgICAgICAgICAgS1NWRzo6U1ZHUmVjdEVsZW1lbnRJ
bXBsICpyZWN0ID0gKEtTVkc6OlNWR1JlY3RFbGVtZW50SW1wbCAqKW5vZGU7Ci0gICAgICAgICAg
ICByZWN0LT5zZXRBdHRyaWJ1dGVOUyhzdmdOYW1lc3BhY2UsIERPTVN0cmluZygieCIpLmhhbmRs
ZSgpLCBET01TdHJpbmcoUVN0cmluZzo6bnVtYmVyKG5ld1JlY3Qub3JpZ2luLngpKS5oYW5kbGUo
KSk7Ci0gICAgICAgICAgICByZWN0LT5zZXRBdHRyaWJ1dGVOUyhzdmdOYW1lc3BhY2UsIERPTVN0
cmluZygieSIpLmhhbmRsZSgpLCBET01TdHJpbmcoUVN0cmluZzo6bnVtYmVyKG5ld1JlY3Qub3Jp
Z2luLnkpKS5oYW5kbGUoKSk7Ci0gICAgICAgICAgICByZWN0LT5zZXRBdHRyaWJ1dGVOUyhzdmdO
YW1lc3BhY2UsIERPTVN0cmluZygid2lkdGgiKS5oYW5kbGUoKSwgRE9NU3RyaW5nKFFTdHJpbmc6
Om51bWJlcihuZXdSZWN0LnNpemUud2lkdGggLSAxKSkuaGFuZGxlKCkpOwotICAgICAgICAgICAg
cmVjdC0+c2V0QXR0cmlidXRlTlMoc3ZnTmFtZXNwYWNlLCBET01TdHJpbmcoImhlaWdodCIpLmhh
bmRsZSgpLCBET01TdHJpbmcoUVN0cmluZzo6bnVtYmVyKG5ld1JlY3Quc2l6ZS5oZWlnaHQgLSAx
KSkuaGFuZGxlKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0JfQotCWRlZmF1bHQ6Ci0gICAgICAg
ICAgICBOU0xvZyhAIklkIG5vdCBoYW5kbGVkOiAlaSIsIGxvY2FsSWQpOworICAgIAorICAgIGlu
dCBleGNlcHRpb25Db2RlOworICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjplbGxp
cHNlVGFnKSkgeworICAgICAgICBLU1ZHOjpTVkdFbGxpcHNlRWxlbWVudEltcGwgKmVsbGlwc2Ug
PSAoS1NWRzo6U1ZHRWxsaXBzZUVsZW1lbnRJbXBsICopbm9kZTsKKyAgICAgICAgZWxsaXBzZS0+
c2V0QXR0cmlidXRlTlMoS0RPTTo6TlNfU1ZHLCBET01TdHJpbmcoImN4IiksIERPTVN0cmluZyhR
U3RyaW5nOjpudW1iZXIobmV3UmVjdC5vcmlnaW4ueCArIG5ld1JlY3Quc2l6ZS53aWR0aC8yLmYp
KSwgZXhjZXB0aW9uQ29kZSk7CisgICAgICAgIGVsbGlwc2UtPnNldEF0dHJpYnV0ZU5TKEtET006
Ok5TX1NWRywgRE9NU3RyaW5nKCJjeSIpLCBET01TdHJpbmcoUVN0cmluZzo6bnVtYmVyKG5ld1Jl
Y3Qub3JpZ2luLnkgKyBuZXdSZWN0LnNpemUuaGVpZ2h0LzIuZikpLCBleGNlcHRpb25Db2RlKTsK
KyAgICAgICAgZWxsaXBzZS0+c2V0QXR0cmlidXRlTlMoS0RPTTo6TlNfU1ZHLCBET01TdHJpbmco
InJ4IiksIERPTVN0cmluZyhRU3RyaW5nOjpudW1iZXIobmV3UmVjdC5zaXplLndpZHRoLzIuZikp
LCBleGNlcHRpb25Db2RlKTsKKyAgICAgICAgZWxsaXBzZS0+c2V0QXR0cmlidXRlTlMoS0RPTTo6
TlNfU1ZHLCBET01TdHJpbmcoInJ5IiksIERPTVN0cmluZyhRU3RyaW5nOjpudW1iZXIobmV3UmVj
dC5zaXplLmhlaWdodC8yLmYpKSwgZXhjZXB0aW9uQ29kZSk7CisgICB9IGVsc2UgaWYgKG5vZGUt
Pmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnJlY3RUYWcpKSB7CisgICAgICAgIEtTVkc6OlNWR1JlY3RF
bGVtZW50SW1wbCAqcmVjdCA9IChLU1ZHOjpTVkdSZWN0RWxlbWVudEltcGwgKilub2RlOworICAg
ICAgICByZWN0LT5zZXRBdHRyaWJ1dGVOUyhLRE9NOjpOU19TVkcsIERPTVN0cmluZygieCIpLCBE
T01TdHJpbmcoUVN0cmluZzo6bnVtYmVyKG5ld1JlY3Qub3JpZ2luLngpKSwgZXhjZXB0aW9uQ29k
ZSk7CisgICAgICAgIHJlY3QtPnNldEF0dHJpYnV0ZU5TKEtET006Ok5TX1NWRywgRE9NU3RyaW5n
KCJ5IiksIERPTVN0cmluZyhRU3RyaW5nOjpudW1iZXIobmV3UmVjdC5vcmlnaW4ueSkpLCBleGNl
cHRpb25Db2RlKTsKKyAgICAgICAgcmVjdC0+c2V0QXR0cmlidXRlTlMoS0RPTTo6TlNfU1ZHLCBE
T01TdHJpbmcoIndpZHRoIiksIERPTVN0cmluZyhRU3RyaW5nOjpudW1iZXIobmV3UmVjdC5zaXpl
LndpZHRoIC0gMSkpLCBleGNlcHRpb25Db2RlKTsKKyAgICAgICAgcmVjdC0+c2V0QXR0cmlidXRl
TlMoS0RPTTo6TlNfU1ZHLCBET01TdHJpbmcoImhlaWdodCIpLCBET01TdHJpbmcoUVN0cmluZzo6
bnVtYmVyKG5ld1JlY3Quc2l6ZS5oZWlnaHQgLSAxKSksIGV4Y2VwdGlvbkNvZGUpOwogICAgIH0K
KyAgICAKICAgICBbc2VsZiBkaWRDaGFuZ2VWYWx1ZUZvcktleTpAImJvdW5kaW5nQm94Il07CiAg
ICAgW3NlbGYgZGlkQ2hhbmdlVmFsdWVGb3JLZXk6QCJhdHRyaWJ1dGVkWE1MU3RyaW5nIl07CiB9
CkBAIC0yMTEsMTkgKzE5OCwxOCBAQCB1c2luZyBuYW1lc3BhY2UgS0RPTTsKICAgICBLU1ZHOjpT
VkdTdHlsZWRFbGVtZW50SW1wbCAqZWxlbWVudCA9IChLU1ZHOjpTVkdTdHlsZWRFbGVtZW50SW1w
bCAqKV9wcml2YXRlLT5pdGVtLT51c2VyRGF0YSgpOwogICAgIGlkIHRoZVZhbHVlID0gbmlsOwog
ICAgIAotICAgIEtET006OkRPTVN0cmluZ0ltcGwgKnN2Z05hbWVzcGFjZSA9IEtET006Ok5TX1NW
Ry5oYW5kbGUoKTsKICAgICBpZiAoW2tleSBpc0VxdWFsVG9TdHJpbmc6QCJpc0ZpbGxlZCJdKSB7
Ci0gICAgICAgIEtET006OkRPTVN0cmluZ0ltcGwgKnZhbHVlID0gZWxlbWVudC0+Z2V0QXR0cmli
dXRlTlMoc3ZnTmFtZXNwYWNlLCBET01TdHJpbmcoImZpbGwiKS5oYW5kbGUoKSk7Ci0gICAgICAg
IHRoZVZhbHVlID0gW05TTnVtYmVyIG51bWJlcldpdGhCb29sOih2YWx1ZS0+c3RyaW5nKCkuYXNj
aWkoKSAhPSAibm9uZSIpXTsKKyAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSA9IGVs
ZW1lbnQtPmdldEF0dHJpYnV0ZU5TKEtET006Ok5TX1NWRywgRE9NU3RyaW5nKCJmaWxsIikpOwor
ICAgICAgICB0aGVWYWx1ZSA9IFtOU051bWJlciBudW1iZXJXaXRoQm9vbDoodmFsdWUgIT0gIm5v
bmUiKV07CiAgICAgfSBlbHNlIGlmIChba2V5IGlzRXF1YWxUb1N0cmluZzpAImlzU3Ryb2tlZCJd
KSB7Ci0gICAgICAgIEtET006OkRPTVN0cmluZ0ltcGwgKnZhbHVlID0gZWxlbWVudC0+Z2V0QXR0
cmlidXRlTlMoc3ZnTmFtZXNwYWNlLCBET01TdHJpbmcoInN0cm9rZSIpLmhhbmRsZSgpKTsKLSAg
ICAgICAgdGhlVmFsdWUgPSBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6KHZhbHVlLT5zdHJpbmco
KS5hc2NpaSgpICE9ICJub25lIildOworICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVl
ID0gZWxlbWVudC0+Z2V0QXR0cmlidXRlTlMoS0RPTTo6TlNfU1ZHLCBET01TdHJpbmcoInN0cm9r
ZSIpKTsKKyAgICAgICAgdGhlVmFsdWUgPSBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6KHZhbHVl
ICE9ICJub25lIildOwogICAgIH0gZWxzZSBpZiAoW2tleSBpc0VxdWFsVG9TdHJpbmc6QCJmaWxs
Q29sb3IiXSkgewotICAgICAgICBLRE9NOjpET01TdHJpbmdJbXBsICp2YWx1ZSA9IGVsZW1lbnQt
PmdldEF0dHJpYnV0ZU5TKHN2Z05hbWVzcGFjZSwgRE9NU3RyaW5nKCJmaWxsIikuaGFuZGxlKCkp
OwotICAgICAgICB0aGVWYWx1ZSA9IG5zQ29sb3IoUUNvbG9yKHZhbHVlLT5zdHJpbmcoKSkpOwor
ICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlID0gZWxlbWVudC0+Z2V0QXR0cmlidXRl
TlMoS0RPTTo6TlNfU1ZHLCBET01TdHJpbmcoImZpbGwiKSk7CisgICAgICAgIHRoZVZhbHVlID0g
bnNDb2xvcihRQ29sb3IodmFsdWUucXN0cmluZygpKSk7CiAgICAgfSBlbHNlIGlmIChba2V5IGlz
RXF1YWxUb1N0cmluZzpAInN0cm9rZUNvbG9yIl0pIHsKLSAgICAgICAgS0RPTTo6RE9NU3RyaW5n
SW1wbCAqdmFsdWUgPSBlbGVtZW50LT5nZXRBdHRyaWJ1dGVOUyhzdmdOYW1lc3BhY2UsIERPTVN0
cmluZygic3Ryb2tlIikuaGFuZGxlKCkpOwotICAgICAgICB0aGVWYWx1ZSA9IG5zQ29sb3IoUUNv
bG9yKHZhbHVlLT5zdHJpbmcoKSkpOworICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVl
ID0gZWxlbWVudC0+Z2V0QXR0cmlidXRlTlMoS0RPTTo6TlNfU1ZHLCBET01TdHJpbmcoInN0cm9r
ZSIpKTsKKyAgICAgICAgdGhlVmFsdWUgPSBuc0NvbG9yKFFDb2xvcih2YWx1ZS5xc3RyaW5nKCkp
KTsKICAgICB9CiAgICAgCiAgICAgaWYgKHRoZVZhbHVlKQpAQCAtMjM0LDExICsyMjAsOCBAQCB1
c2luZyBuYW1lc3BhY2UgS0RPTTsKIAogLSAoTlNBdHRyaWJ1dGVkU3RyaW5nICopYXR0cmlidXRl
ZFhNTFN0cmluZwogewotICAgIFFTdHJpbmcgKm5vZGVUZXh0ID0gbmV3IFFTdHJpbmcoKTsKLSAg
ICBRVGV4dFN0cmVhbSBub2RlVGV4dFN0cmVhbShub2RlVGV4dCwgSU9fV3JpdGVPbmx5KTsKLSAg
ICBLRE9NOjpIZWxwZXI6OlByaW50Tm9kZShub2RlVGV4dFN0cmVhbSwgKEtET006Ok5vZGVJbXBs
ICopX3ByaXZhdGUtPml0ZW0tPnVzZXJEYXRhKCkpOwotICAgIE5TU3RyaW5nICpub2RlU3RyaW5n
ID0gbm9kZVRleHQtPmdldE5TU3RyaW5nKCk7Ci0gICAgZGVsZXRlIG5vZGVUZXh0OworICAgIFFT
dHJpbmcgbm9kZVRleHQgPSBjcmVhdGVNYXJrdXAoKEtET006Ok5vZGVJbXBsICopX3ByaXZhdGUt
Pml0ZW0tPnVzZXJEYXRhKCkpOworICAgIE5TU3RyaW5nICpub2RlU3RyaW5nID0gbm9kZVRleHQu
Z2V0TlNTdHJpbmcoKTsKICAgICAKICAgICBpZiAobm9kZVN0cmluZykKICAgICAgICAgcmV0dXJu
IFtbTlNBdHRyaWJ1dGVkU3RyaW5nIGFsbG9jXSBpbml0V2l0aFN0cmluZzpub2RlU3RyaW5nXTsK
SW5kZXg6IFdlYkNvcmUrU1ZHL0RyYXdEb2N1bWVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv
Y3ZzL3Jvb3QvU1ZHU3VwcG9ydC9XZWJDb3JlK1NWRy9EcmF3RG9jdW1lbnQubW0sdgpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuNwpkaWZmIC1wIC11IC1yMS43IFdlYkNvcmUrU1ZHL0RyYXdEb2N1bWVu
dC5tbQotLS0gV2ViQ29yZStTVkcvRHJhd0RvY3VtZW50Lm1tCTUgT2N0IDIwMDUgMDU6MzY6NTQg
LTAwMDAJMS43CisrKyBXZWJDb3JlK1NWRy9EcmF3RG9jdW1lbnQubW0JMSBOb3YgMjAwNSAxMTox
MjozNSAtMDAwMApAQCAtNDAsMTIgKzQwLDggQEAKICNpbXBvcnQgPGtjYW52YXMvZGV2aWNlL3F1
YXJ0ei9LQ2FudmFzVmlld1F1YXJ0ei5oPgogI2ltcG9ydCA8a2NhbnZhcy9kZXZpY2UvcXVhcnR6
L0tSZW5kZXJpbmdEZXZpY2VRdWFydHouaD4KIAotI2RlZmluZSBpZCBJRF9IQUNLCi0KICNpbXBv
cnQgPGtkb20vTmFtZXNwYWNlLmg+CiAjaW1wb3J0IDxrZG9tL0hlbHBlci5oPgotI2ltcG9ydCA8
a2RvbS9wYXJzZXIvS0RPTVBhcnNlci5oPgotI2ltcG9ydCA8a2RvbS9iYWNrZW5kcy9saWJ4bWwv
TGliWE1MUGFyc2VyLmg+CiAjaW1wb3J0IDxrZG9tL2NvcmUvTm9kZUltcGwuaD4KICNpbXBvcnQg
PGtkb20vY29yZS9Ob2RlTGlzdEltcGwuaD4KICNpbXBvcnQgPGtkb20vY29yZS9ET01Db25maWd1
cmF0aW9uSW1wbC5oPgpAQCAtNTcsNyArNTMsNiBAQAogCiAjaW1wb3J0IDxrc3ZnMi9LU1ZHUGFy
dC5oPgogI2ltcG9ydCA8a3N2ZzIvS1NWR1ZpZXcuaD4KLSNpbXBvcnQgPGtzdmcyL21pc2MvS1NW
R0RvY3VtZW50QnVpbGRlci5oPgogI2ltcG9ydCA8a3N2ZzIvc3ZnL1NWR0RvY3VtZW50SW1wbC5o
PgogI2ltcG9ydCA8a3N2ZzIvc3ZnL1NWR1NWR0VsZW1lbnRJbXBsLmg+CiAjaW1wb3J0IDxrc3Zn
Mi9zdmcvU1ZHRGVzY0VsZW1lbnRJbXBsLmg+CkBAIC02NSw4ICs2MCw2IEBACiAjaW1wb3J0IDxr
c3ZnMi9zdmcvU1ZHRWxsaXBzZUVsZW1lbnRJbXBsLmg+CiAjaW1wb3J0IDxrc3ZnMi9zdmcvU1ZH
UmVjdEVsZW1lbnRJbXBsLmg+CiAKLSN1bmRlZiBpZAotCiB1c2luZyBuYW1lc3BhY2UgS0RPTTsK
IHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCkBAIC0xODksOCArMTgyLDggQEAgdXNpbmcgbmFtZXNw
YWNlIEtTVkc7CiAgICAgcGFyc2VyLT5zZXREb2N1bWVudEJ1aWxkZXIoYnVpbGRlcik7CiAgICAg
CiAgICAgLy8gbm8gZW50aXR5IHJlZnMKLSAgICBwYXJzZXItPmRvbUNvbmZpZygpLT5zZXRQYXJh
bWV0ZXIoS0RPTTo6RU5USVRJRVMuaGFuZGxlKCksIGZhbHNlKTsKLSAgICBwYXJzZXItPmRvbUNv
bmZpZygpLT5zZXRQYXJhbWV0ZXIoS0RPTTo6RUxFTUVOVF9DT05URU5UX1dISVRFU1BBQ0UuaGFu
ZGxlKCksIGZhbHNlKTsKKyAgICBwYXJzZXItPmRvbUNvbmZpZygpLT5zZXRQYXJhbWV0ZXIoS0RP
TTo6RU5USVRJRVMsIGZhbHNlKTsKKyAgICBwYXJzZXItPmRvbUNvbmZpZygpLT5zZXRQYXJhbWV0
ZXIoS0RPTTo6RUxFTUVOVF9DT05URU5UX1dISVRFU1BBQ0UsIGZhbHNlKTsKICAgICAKICAgICAv
LyBGZWVkIHRoZSBwYXJzZXIgdGhlIHdob2xlIGRvY3VtZW50IChhIHRvdGFsIGhhY2spCiAgICAg
cGFyc2VyLT5kb09uZVNob3RQYXJzZSgoY29uc3QgY2hhciAqKVtkYXRhIGJ5dGVzXSwgW2RhdGEg
bGVuZ3RoXSk7CkBAIC0yODIsMTMgKzI3NSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCiAt
IChOU1N0cmluZyAqKXN2Z1RleHQKIHsKLSAgICBRU3RyaW5nICpkdW1wVGV4dCA9IG5ldyBRU3Ry
aW5nKCk7Ci0gICAgUVRleHRTdHJlYW0gZHVtcFN0cmVhbShkdW1wVGV4dCwgSU9fV3JpdGVPbmx5
KTsKLSAgICBLRE9NOjpIZWxwZXI6OlByaW50Tm9kZShkdW1wU3RyZWFtLCBfcHJpdmF0ZS0+c3Zn
RG9jdW1lbnQpOwotICAgIE5TU3RyaW5nICpzdmdUZXh0ID0gZHVtcFRleHQtPmdldE5TU3RyaW5n
KCk7Ci0gICAgZGVsZXRlIGR1bXBUZXh0OwotICAgIAotICAgIHJldHVybiBzdmdUZXh0OworICAg
IHJldHVybiBjcmVhdGVNYXJrdXAoX3ByaXZhdGUtPnN2Z0RvY3VtZW50KS5nZXROU1N0cmluZygp
OzsKIH0KIAogQGVuZApAQCAtMjk3LDI5ICsyODQsMzIgQEAgdXNpbmcgbmFtZXNwYWNlIEtTVkc7
CiAKIC0gKEJPT0wpZG9jdW1lbnRMaXN0ZW5zRm9yTW91c2VNb3ZlZEV2ZW50cwogewotICAgIFNW
R0RvY3VtZW50SW1wbCAqZG9jdW1lbnQgPSBfcHJpdmF0ZS0+c3ZnRG9jdW1lbnQ7Ci0gICAgCi0g
ICAgcmV0dXJuIChkb2N1bWVudCAmJgkKLSAgICAgICAgICAgIChkb2N1bWVudC0+aGFzTGlzdGVu
ZXJUeXBlKEtET006OkRPTUZPQ1VTT1VUX0VWRU5UKSB8fAotICAgICAgICAgICAgIGRvY3VtZW50
LT5oYXNMaXN0ZW5lclR5cGUoS0RPTTo6TU9VU0VPVkVSX0VWRU5UKSB8fAotICAgICAgICAgICAg
IGRvY3VtZW50LT5oYXNMaXN0ZW5lclR5cGUoS0RPTTo6TU9VU0VNT1ZFX0VWRU5UKSB8fAotICAg
ICAgICAgICAgIGRvY3VtZW50LT5oYXNMaXN0ZW5lclR5cGUoS0RPTTo6TU9VU0VPVVRfRVZFTlQp
KSk7CisvLyAgICBTVkdEb2N1bWVudEltcGwgKmRvY3VtZW50ID0gX3ByaXZhdGUtPnN2Z0RvY3Vt
ZW50OworLy8gICAgCisvLyAgICByZXR1cm4gKGRvY3VtZW50ICYmCQorLy8gICAgICAgICAgICAo
ZG9jdW1lbnQtPmhhc0xpc3RlbmVyVHlwZShLRE9NOjpET01GT0NVU09VVF9FVkVOVCkgfHwKKy8v
ICAgICAgICAgICAgIGRvY3VtZW50LT5oYXNMaXN0ZW5lclR5cGUoS0RPTTo6TU9VU0VPVkVSX0VW
RU5UKSB8fAorLy8gICAgICAgICAgICAgZG9jdW1lbnQtPmhhc0xpc3RlbmVyVHlwZShLRE9NOjpN
T1VTRU1PVkVfRVZFTlQpIHx8CisvLyAgICAgICAgICAgICBkb2N1bWVudC0+aGFzTGlzdGVuZXJU
eXBlKEtET006Ok1PVVNFT1VUX0VWRU5UKSkpOworICAgIHJldHVybiBZRVM7CiB9CiAKIC0gKEJP
T0wpZG9jdW1lbnRMaXN0ZW5zRm9yTW91c2VEb3duRXZlbnRzCiB7Ci0gICAgcmV0dXJuIChfcHJp
dmF0ZS0+c3ZnRG9jdW1lbnQgJiYgX3ByaXZhdGUtPnN2Z0RvY3VtZW50LT5oYXNMaXN0ZW5lclR5
cGUoS0RPTTo6TU9VU0VET1dOX0VWRU5UKSk7CisgICAgLy9yZXR1cm4gKF9wcml2YXRlLT5zdmdE
b2N1bWVudCAmJiBfcHJpdmF0ZS0+c3ZnRG9jdW1lbnQtPmhhc0xpc3RlbmVyVHlwZShLRE9NOjpN
T1VTRURPV05fRVZFTlQpKTsKKyAgICByZXR1cm4gWUVTOwogfQogCiAtIChCT09MKWRvY3VtZW50
TGlzdGVuc0Zvck1vdXNlVXBFdmVudHMKIHsKLSAgICBTVkdEb2N1bWVudEltcGwgKmRvY3VtZW50
ID0gX3ByaXZhdGUtPnN2Z0RvY3VtZW50OwotICAgIAotICAgIHJldHVybiAoZG9jdW1lbnQgJiYK
LSAgICAgICAgICAgIChkb2N1bWVudC0+aGFzTGlzdGVuZXJUeXBlKEtET006OkRPTUZPQ1VTSU5f
RVZFTlQpIHx8Ci0gICAgICAgICAgICAgZG9jdW1lbnQtPmhhc0xpc3RlbmVyVHlwZShLRE9NOjpE
T01BQ1RJVkFURV9FVkVOVCkgfHwKLSAgICAgICAgICAgICBkb2N1bWVudC0+aGFzTGlzdGVuZXJU
eXBlKEtET006OkNMSUNLX0VWRU5UKSB8fAotICAgICAgICAgICAgIGRvY3VtZW50LT5oYXNMaXN0
ZW5lclR5cGUoS0RPTTo6TU9VU0VVUF9FVkVOVCkpKTsKKy8vICAgIFNWR0RvY3VtZW50SW1wbCAq
ZG9jdW1lbnQgPSBfcHJpdmF0ZS0+c3ZnRG9jdW1lbnQ7CisvLyAgICAKKy8vICAgIHJldHVybiAo
ZG9jdW1lbnQgJiYKKy8vICAgICAgICAgICAgKGRvY3VtZW50LT5oYXNMaXN0ZW5lclR5cGUoS0RP
TTo6RE9NRk9DVVNJTl9FVkVOVCkgfHwKKy8vICAgICAgICAgICAgIGRvY3VtZW50LT5oYXNMaXN0
ZW5lclR5cGUoS0RPTTo6RE9NQUNUSVZBVEVfRVZFTlQpIHx8CisvLyAgICAgICAgICAgICBkb2N1
bWVudC0+aGFzTGlzdGVuZXJUeXBlKEtET006OkNMSUNLX0VWRU5UKSB8fAorLy8gICAgICAgICAg
ICAgZG9jdW1lbnQtPmhhc0xpc3RlbmVyVHlwZShLRE9NOjpNT1VTRVVQX0VWRU5UKSkpOworICAg
IHJldHVybiBZRVM7CiB9CiAKIC0gKEtET006Ok1vdXNlRXZlbnRJbXBsICopbmV3TW91c2VFdmVu
dFdpdGhFdmVudElkOihLRE9NOjpFdmVudElkKWV2ZW50SWQgcU1vdXNlRXZlbnQ6KFFNb3VzZUV2
ZW50ICopcWV2ZW50CkBAIC0zMzMsNjEgKzMyMyw2NCBAQCB1c2luZyBuYW1lc3BhY2UgS1NWRzsK
ICAgICBmbG9hdCBzY2FsZSA9IChyb290ID8gcm9vdC0+Y3VycmVudFNjYWxlKCkgOiAxLjApOwog
ICAgIAogICAgIC8vIFNldHVwIGtkb20gJ01vdXNlRXZlbnQnLi4uCi0gICAgS0RPTTo6TW91c2VF
dmVudEltcGwgKmV2ZW50ID0gc3RhdGljX2Nhc3Q8S0RPTTo6TW91c2VFdmVudEltcGwgKj4oX3By
aXZhdGUtPnN2Z0RvY3VtZW50LT5jcmVhdGVFdmVudChET01TdHJpbmcoIk1vdXNlRXZlbnRzIiku
aGFuZGxlKCkpKTsKKyAgICBpbnQgZXhjZXB0aW9uQ29kZTsKKyAgICBLRE9NOjpNb3VzZUV2ZW50
SW1wbCAqZXZlbnQgPSBzdGF0aWNfY2FzdDxLRE9NOjpNb3VzZUV2ZW50SW1wbCAqPihfcHJpdmF0
ZS0+c3ZnRG9jdW1lbnQtPmNyZWF0ZUV2ZW50KERPTVN0cmluZygiTW91c2VFdmVudHMiKSwgZXhj
ZXB0aW9uQ29kZSkpOwogICAgIGV2ZW50LT5yZWYoKTsKICAgICAKICAgICBldmVudC0+aW5pdE1v
dXNlRXZlbnQoZXZlbnRTdHJpbmcsIHFldmVudCwgc2NhbGUpOwogICAgIHJldHVybiBldmVudDsK
IH0KIAotTlNDdXJzb3IgKmN1cnNvckZvclN0eWxlKEtET006OlJlbmRlclN0eWxlICpzdHlsZSkK
K05TQ3Vyc29yICpjdXJzb3JGb3JTdHlsZShraHRtbDo6UmVuZGVyU3R5bGUgKnN0eWxlKQogewog
ICAgIGlmKCFzdHlsZSkgcmV0dXJuIG5pbDsKICAgICBOU0N1cnNvciAqbmV3Q3Vyc29yID0gbmls
OwogICAgIHN3aXRjaChzdHlsZS0+Y3Vyc29yKCkpCiAgICAgeworI2lmIDAKICAgICAgICAgY2Fz
ZSBLRE9NOjpDU19BVVRPOgogICAgICAgICBjYXNlIEtET006OkNTX0RFRkFVTFQ6Ci0gICAgICAg
ICAgICBuZXdDdXJzb3IgPSBLQ3Vyc29yOjphcnJvd0N1cnNvcigpLmhhbmRsZSgpOworICAgICAg
ICAgICAgbmV3Q3Vyc29yID0gS0N1cnNvcjo6YXJyb3dDdXJzb3IoKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIEtET006OkNTX0NST1NTOgogICAgICAgICBjYXNlIEtET006OkNT
X1BST0dSRVNTOgotICAgICAgICAgICAgbmV3Q3Vyc29yID0gS0N1cnNvcjo6Y3Jvc3NDdXJzb3Io
KS5oYW5kbGUoKTsKKyAgICAgICAgICAgIG5ld0N1cnNvciA9IEtDdXJzb3I6OmNyb3NzQ3Vyc29y
KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBLRE9NOjpDU19QT0lOVEVSOgot
ICAgICAgICAgICAgbmV3Q3Vyc29yID0gS0N1cnNvcjo6aGFuZEN1cnNvcigpLmhhbmRsZSgpOwor
ICAgICAgICAgICAgbmV3Q3Vyc29yID0gS0N1cnNvcjo6aGFuZEN1cnNvcigpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgS0RPTTo6Q1NfTU9WRToKLSAgICAgICAgICAgIG5ld0N1
cnNvciA9IEtDdXJzb3I6OnNpemVBbGxDdXJzb3IoKS5oYW5kbGUoKTsKKyAgICAgICAgICAgIG5l
d0N1cnNvciA9IEtDdXJzb3I6OnNpemVBbGxDdXJzb3IoKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIEtET006OkNTX0VfUkVTSVpFOgogICAgICAgICBjYXNlIEtET006OkNTX1df
UkVTSVpFOgotICAgICAgICAgICAgbmV3Q3Vyc29yID0gS0N1cnNvcjo6c2l6ZUhvckN1cnNvcigp
LmhhbmRsZSgpOworICAgICAgICAgICAgbmV3Q3Vyc29yID0gS0N1cnNvcjo6c2l6ZUhvckN1cnNv
cigpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgS0RPTTo6Q1NfTkVfUkVTSVpF
OgogICAgICAgICBjYXNlIEtET006OkNTX1NXX1JFU0laRToKLSAgICAgICAgICAgIG5ld0N1cnNv
ciA9IEtDdXJzb3I6OnNpemVCRGlhZ0N1cnNvcigpLmhhbmRsZSgpOworICAgICAgICAgICAgbmV3
Q3Vyc29yID0gS0N1cnNvcjo6c2l6ZUJEaWFnQ3Vyc29yKCk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBLRE9NOjpDU19OV19SRVNJWkU6CiAgICAgICAgIGNhc2UgS0RPTTo6Q1Nf
U0VfUkVTSVpFOgotICAgICAgICAgICAgbmV3Q3Vyc29yID0gS0N1cnNvcjo6c2l6ZUZEaWFnQ3Vy
c29yKCkuaGFuZGxlKCk7CisgICAgICAgICAgICBuZXdDdXJzb3IgPSBLQ3Vyc29yOjpzaXplRkRp
YWdDdXJzb3IoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEtET006OkNTX05f
UkVTSVpFOgogICAgICAgICBjYXNlIEtET006OkNTX1NfUkVTSVpFOgotICAgICAgICAgICAgbmV3
Q3Vyc29yID0gS0N1cnNvcjo6c2l6ZVZlckN1cnNvcigpLmhhbmRsZSgpOworICAgICAgICAgICAg
bmV3Q3Vyc29yID0gS0N1cnNvcjo6c2l6ZVZlckN1cnNvcigpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgS0RPTTo6Q1NfVEVYVDoKLSAgICAgICAgICAgIG5ld0N1cnNvciA9IEtD
dXJzb3I6OmliZWFtQ3Vyc29yKCkuaGFuZGxlKCk7CisgICAgICAgICAgICBuZXdDdXJzb3IgPSBL
Q3Vyc29yOjppYmVhbUN1cnNvcigpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
S0RPTTo6Q1NfV0FJVDoKLSAgICAgICAgICAgIG5ld0N1cnNvciA9IEtDdXJzb3I6OndhaXRDdXJz
b3IoKS5oYW5kbGUoKTsKKyAgICAgICAgICAgIG5ld0N1cnNvciA9IEtDdXJzb3I6OndhaXRDdXJz
b3IoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEtET006OkNTX0hFTFA6Ci0g
ICAgICAgICAgICBuZXdDdXJzb3IgPSBLQ3Vyc29yOjp3aGF0c1RoaXNDdXJzb3IoKS5oYW5kbGUo
KTsKKyAgICAgICAgICAgIG5ld0N1cnNvciA9IEtDdXJzb3I6OndoYXRzVGhpc0N1cnNvcigpOwog
ICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgTlNM
b2coQCJzZXR0aW5nIGRlZmF1bHQgbW91c2UgY3Vyc29yIik7Ci0gICAgICAgICAgICBuZXdDdXJz
b3IgPSBLQ3Vyc29yOjphcnJvd0N1cnNvcigpLmhhbmRsZSgpOworICAgICAgICAgICAgbmV3Q3Vy
c29yID0gS0N1cnNvcjo6YXJyb3dDdXJzb3IoKTsKICAgICB9CiAgICAgcmV0dXJuIG5ld0N1cnNv
cjsKIH0KQEAgLTQwOCw3ICs0MDEsNyBAQCBOU0N1cnNvciAqY3Vyc29yRm9yU3R5bGUoS0RPTTo6
UmVuZGVyU3R5CiAgICAgICAgIEtET006OkVsZW1lbnRJbXBsICp0YXJnZXQgPSBzdGF0aWNfY2Fz
dDxLRE9NOjpFbGVtZW50SW1wbCAqPihtZXYtPnJlbGF0ZWRUYXJnZXQoKSk7CiAgICAgICAgIGlm
KHRhcmdldCkKICAgICAgICAgewotICAgICAgICAgICAgS0RPTTo6UmVuZGVyU3R5bGUgKnN0eWxl
ID0gdGFyZ2V0LT5yZW5kZXJTdHlsZSgpOworICAgICAgICAgICAga2h0bWw6OlJlbmRlclN0eWxl
ICpzdHlsZSA9IHRhcmdldC0+cmVuZGVyU3R5bGUoKTsKICAgICAgICAgICAgIG5ld0N1cnNvciA9
IGN1cnNvckZvclN0eWxlKHN0eWxlKTsKICAgICAgICAgfQogICAgICAgICBtZXYtPmRlcmVmKCk7
CkBAIC01MDksNyArNTAyLDggQEAgTlNDdXJzb3IgKmN1cnNvckZvclN0eWxlKEtET006OlJlbmRl
clN0eQogICAgICAgICBLQ2FudmFzSXRlbSAqY0l0ZW0gPSBbY2FudmFzSXRlbSBpdGVtXTsKICAg
ICAgICAgS0RPTTo6Tm9kZUltcGwgKm5vZGUgPSAoS0RPTTo6Tm9kZUltcGwgKiljSXRlbS0+dXNl
ckRhdGEoKTsKICAgICAgICAgS0RPTTo6Tm9kZUltcGwgKnBhcmVudCA9IG5vZGUtPnBhcmVudE5v
ZGUoKTsKLSAgICAgICAgcGFyZW50LT5yZW1vdmVDaGlsZChub2RlKTsKKyAgICAgICAgaW50IGV4
Y2VwdGlvbmNvZGU7CisgICAgICAgIHBhcmVudC0+cmVtb3ZlQ2hpbGQobm9kZSwgZXhjZXB0aW9u
Y29kZSk7CiAgICAgfQogfQogCkBAIC01MjAsMjEgKzUxNCwyMiBAQCBOU0N1cnNvciAqY3Vyc29y
Rm9yU3R5bGUoS0RPTTo6UmVuZGVyU3R5CiAgICAgRE9NU3RyaW5nIG1vdXNlWChRU3RyaW5nOjpu
dW1iZXIobW91c2VQb2ludC54KSk7CiAgICAgRE9NU3RyaW5nIG1vdXNlWShRU3RyaW5nOjpudW1i
ZXIobW91c2VQb2ludC54KSk7CiAgICAgCisgICAgaW50IGV4Y2VwdGlvbkNvZGU7CiAgICAgc3dp
dGNoICh0b29sKSB7CiAJY2FzZSBEcmF3Vmlld1Rvb2xFbGlwc2U6CiAJewotICAgICAgICAgICAg
bmV3RWxlbWVudCA9IF9wcml2YXRlLT5zdmdEb2N1bWVudC0+Y3JlYXRlRWxlbWVudChET01TdHJp
bmcoImVsbGlwc2UiKS5oYW5kbGUoKSk7Ci0gICAgICAgICAgICBuZXdFbGVtZW50LT5zZXRBdHRy
aWJ1dGVOUyhLRE9NOjpOU19TVkcuaGFuZGxlKCksIERPTVN0cmluZygiY3giKS5oYW5kbGUoKSwg
bW91c2VYLmhhbmRsZSgpKTsKLSAgICAgICAgICAgIG5ld0VsZW1lbnQtPnNldEF0dHJpYnV0ZU5T
KEtET006Ok5TX1NWRy5oYW5kbGUoKSwgRE9NU3RyaW5nKCJjeSIpLmhhbmRsZSgpLCBtb3VzZVku
aGFuZGxlKCkpOworICAgICAgICAgICAgbmV3RWxlbWVudCA9IF9wcml2YXRlLT5zdmdEb2N1bWVu
dC0+Y3JlYXRlRWxlbWVudE5TKEtET006Ok5TX1NWRywgRE9NU3RyaW5nKCJlbGxpcHNlIiksIGV4
Y2VwdGlvbkNvZGUpOworICAgICAgICAgICAgbmV3RWxlbWVudC0+c2V0QXR0cmlidXRlTlMoS0RP
TTo6TlNfU1ZHLCBET01TdHJpbmcoImN4IiksIG1vdXNlWCwgZXhjZXB0aW9uQ29kZSk7CisgICAg
ICAgICAgICBuZXdFbGVtZW50LT5zZXRBdHRyaWJ1dGVOUyhLRE9NOjpOU19TVkcsIERPTVN0cmlu
ZygiY3kiKSwgbW91c2VZLCBleGNlcHRpb25Db2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogCX0K
IAljYXNlIERyYXdWaWV3VG9vbFRyaWFuZ2xlOgogICAgICAgICAgICAgYnJlYWs7CiAJY2FzZSBE
cmF3Vmlld1Rvb2xSZWN0YW5nbGU6CiAJewotICAgICAgICAgICAgbmV3RWxlbWVudCA9IF9wcml2
YXRlLT5zdmdEb2N1bWVudC0+Y3JlYXRlRWxlbWVudChET01TdHJpbmcoInJlY3QiKS5oYW5kbGUo
KSk7Ci0gICAgICAgICAgICBuZXdFbGVtZW50LT5zZXRBdHRyaWJ1dGVOUyhLRE9NOjpOU19TVkcu
aGFuZGxlKCksIERPTVN0cmluZygieCIpLmhhbmRsZSgpLCBtb3VzZVguaGFuZGxlKCkpOwotICAg
ICAgICAgICAgbmV3RWxlbWVudC0+c2V0QXR0cmlidXRlTlMoS0RPTTo6TlNfU1ZHLmhhbmRsZSgp
LCBET01TdHJpbmcoInkiKS5oYW5kbGUoKSwgbW91c2VZLmhhbmRsZSgpKTsKKyAgICAgICAgICAg
IG5ld0VsZW1lbnQgPSBfcHJpdmF0ZS0+c3ZnRG9jdW1lbnQtPmNyZWF0ZUVsZW1lbnROUyhLRE9N
OjpOU19TVkcsIERPTVN0cmluZygicmVjdCIpLCBleGNlcHRpb25Db2RlKTsKKyAgICAgICAgICAg
IG5ld0VsZW1lbnQtPnNldEF0dHJpYnV0ZU5TKEtET006Ok5TX1NWRywgRE9NU3RyaW5nKCJ4Iiks
IG1vdXNlWCwgZXhjZXB0aW9uQ29kZSk7CisgICAgICAgICAgICBuZXdFbGVtZW50LT5zZXRBdHRy
aWJ1dGVOUyhLRE9NOjpOU19TVkcsIERPTVN0cmluZygieSIpLCBtb3VzZVksIGV4Y2VwdGlvbkNv
ZGUpOwogICAgICAgICAgICAgYnJlYWs7CiAJfQogCWNhc2UgRHJhd1ZpZXdUb29sTGluZToKQEAg
LTU0NSw5ICs1NDAsOSBAQCBOU0N1cnNvciAqY3Vyc29yRm9yU3R5bGUoS0RPTTo6UmVuZGVyU3R5
CiAgICAgICAgICAgICBOU0xvZyhAIkNhbid0IGNyZWF0ZSBpdGVtIGZvciB1bnN1cHBvcnRlZCB0
b29sLiIpOwogICAgIH0KICAgICBpZiAobmV3RWxlbWVudCkgewotICAgICAgICBuZXdFbGVtZW50
LT5zZXRBdHRyaWJ1dGVOUyhLRE9NOjpOU19TVkcuaGFuZGxlKCksIERPTVN0cmluZygiZmlsbCIp
LmhhbmRsZSgpLCBET01TdHJpbmcoIm5hdnkiKS5oYW5kbGUoKSk7CisgICAgICAgIG5ld0VsZW1l
bnQtPnNldEF0dHJpYnV0ZU5TKEtET006Ok5TX1NWRywgRE9NU3RyaW5nKCJmaWxsIiksIERPTVN0
cmluZygibmF2eSIpLCBleGNlcHRpb25Db2RlKTsKICAgICAgICAgU1ZHU1ZHRWxlbWVudEltcGwg
KnJvb3ROb2RlID0gX3ByaXZhdGUtPnN2Z0RvY3VtZW50LT5yb290RWxlbWVudCgpOwotICAgICAg
ICByb290Tm9kZS0+YXBwZW5kQ2hpbGQobmV3RWxlbWVudCk7CisgICAgICAgIHJvb3ROb2RlLT5h
cHBlbmRDaGlsZChuZXdFbGVtZW50LCBleGNlcHRpb25Db2RlKTsKICAgICAgICAgbmV3RWxlbWVu
dC0+cmVmKCk7IC8vIGRvbid0IGtub3cgd2h5IHRoaXMgaXMgbmVjZXNzYXJ5Li4uCiAgICAgICAg
IG5ld0VsZW1lbnQtPmF0dGFjaCgpOyAvLyBhdHRhY2ggaXQgdG8gdGhlIGNhbnZhcy4KICAgICAg
ICAgbmV3Q2FudmFzSXRlbSA9IHN0YXRpY19jYXN0PFNWR1N0eWxlZEVsZW1lbnRJbXBsICo+KG5l
d0VsZW1lbnQpLT5jYW52YXNJdGVtKCk7CkluZGV4OiBXZWJDb3JlK1NWRy9LRE9NSGVhZGVycy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KUkNTIGZpbGU6IFdlYkNvcmUrU1ZHL0tET01IZWFkZXJzLmgKZGlmZiAtTiBX
ZWJDb3JlK1NWRy9LRE9NSGVhZGVycy5oCi0tLSBXZWJDb3JlK1NWRy9LRE9NSGVhZGVycy5oCTEg
SmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysrIFdlYkNvcmUrU1ZHL0tET01IZWFkZXJzLmgJMSBO
b3YgMjAwNSAxMToxMjozNSAtMDAwMApAQCAtMCwwICsxLDEzMSBAQAorI2luY2x1ZGUgImtodG1s
L2RvbS9kb21fbm9kZS5oIgorI2luY2x1ZGUgImtodG1sL2RvbS9kb21fc3RyaW5nLmgiCisKK2Ns
YXNzIEtIVE1MUGFydDsKK2NsYXNzIEtIVE1MVmlldzsKKworbmFtZXNwYWNlIEtET00geworICAg
IHVzaW5nIG5hbWVzcGFjZSBET007CisgICAgdXNpbmcgbmFtZXNwYWNlIGtodG1sOworICAgIHVz
aW5nIDo6S0hUTUxQYXJ0OworICAgIHVzaW5nIDo6S0hUTUxWaWV3OworfQorCituYW1lc3BhY2Ug
S1NWRyB7CisgICAgdXNpbmcgOjpLSFRNTFBhcnQ7Cit9CisKKy8vCisvL25hbWVzcGFjZSBLRE9N
ID0gRE9NOworCisjaW5jbHVkZSAiS0RPTVN0dWJDbGFzc2VzLmgiCisKKyNpbmNsdWRlICJraHRt
bC9raHRtbF9wYXJ0LmgiCisKKyNpbmNsdWRlICJraHRtbC9jb25maWcuaCIKKyNpbmNsdWRlICJr
aHRtbC9jc3MvY3NzX2Jhc2UuaCIKKyNpbmNsdWRlICJraHRtbC9jc3MvY3NzX2NvbXB1dGVkc3R5
bGUuaCIKKyNpbmNsdWRlICJraHRtbC9jc3MvY3NzX3J1bGVpbXBsLmgiCisjaW5jbHVkZSAia2h0
bWwvY3NzL2Nzc19zdHlsZXNoZWV0aW1wbC5oIgorI2luY2x1ZGUgImtodG1sL2Nzcy9jc3NfdmFs
dWVpbXBsLmgiCisjaW5jbHVkZSAia2h0bWwvY3NzL2Nzc2hlbHBlci5oIgorI2luY2x1ZGUgImto
dG1sL2Nzcy9jc3NwYXJzZXIuaCIKKyNpbmNsdWRlICJraHRtbC9jc3MvY3Nzc3R5bGVzZWxlY3Rv
ci5oIgorI2luY2x1ZGUgImtodG1sL2RvbS9jc3NfcnVsZS5oIgorI2luY2x1ZGUgImtodG1sL2Rv
bS9jc3Nfc3R5bGVzaGVldC5oIgorI2luY2x1ZGUgImtodG1sL2RvbS9jc3NfdmFsdWUuaCIKKyNp
bmNsdWRlICJraHRtbC9kb20vZG9tMl9ldmVudHMuaCIKKyNpbmNsdWRlICJraHRtbC9kb20vZG9t
Ml9yYW5nZS5oIgorI2luY2x1ZGUgImtodG1sL2RvbS9kb20yX3RyYXZlcnNhbC5oIgorI2luY2x1
ZGUgImtodG1sL2RvbS9kb21fZXhjZXB0aW9uLmgiCisjaW5jbHVkZSAia2h0bWwvZG9tL2RvbV9t
aXNjLmgiCisjaW5jbHVkZSAia2h0bWwvZWRpdGluZy9hcHBlbmRfbm9kZV9jb21tYW5kLmgiCisj
aW5jbHVkZSAia2h0bWwvZWRpdGluZy9hcHBseV9zdHlsZV9jb21tYW5kLmgiCisjaW5jbHVkZSAi
a2h0bWwvZWRpdGluZy9icmVha19ibG9ja3F1b3RlX2NvbW1hbmQuaCIKKyNpbmNsdWRlICJraHRt
bC9lZGl0aW5nL2NvbXBvc2l0ZV9lZGl0X2NvbW1hbmQuaCIKKyNpbmNsdWRlICJraHRtbC9lZGl0
aW5nL2RlbGV0ZV9mcm9tX3RleHRfbm9kZV9jb21tYW5kLmgiCisjaW5jbHVkZSAia2h0bWwvZWRp
dGluZy9kZWxldGVfc2VsZWN0aW9uX2NvbW1hbmQuaCIKKyNpbmNsdWRlICJraHRtbC9lZGl0aW5n
L2VkaXRfYWN0aW9ucy5oIgorI2luY2x1ZGUgImtodG1sL2VkaXRpbmcvZWRpdF9jb21tYW5kLmgi
CisjaW5jbHVkZSAia2h0bWwvZWRpdGluZy9odG1sX2ludGVyY2hhbmdlLmgiCisjaW5jbHVkZSAi
a2h0bWwvZWRpdGluZy9odG1sZWRpdGluZy5oIgorI2luY2x1ZGUgImtodG1sL2VkaXRpbmcvaW5z
ZXJ0X2ludG9fdGV4dF9ub2RlX2NvbW1hbmQuaCIKKyNpbmNsdWRlICJraHRtbC9lZGl0aW5nL2lu
c2VydF9saW5lX2JyZWFrX2NvbW1hbmQuaCIKKyNpbmNsdWRlICJraHRtbC9lZGl0aW5nL2luc2Vy
dF9ub2RlX2JlZm9yZV9jb21tYW5kLmgiCisjaW5jbHVkZSAia2h0bWwvZWRpdGluZy9pbnNlcnRf
cGFyYWdyYXBoX3NlcGFyYXRvcl9jb21tYW5kLmgiCisjaW5jbHVkZSAia2h0bWwvZWRpdGluZy9p
bnNlcnRfdGV4dF9jb21tYW5kLmgiCisjaW5jbHVkZSAia2h0bWwvZWRpdGluZy9qb2luX3RleHRf
bm9kZXNfY29tbWFuZC5oIgorI2luY2x1ZGUgImtodG1sL2VkaXRpbmcvanNlZGl0aW5nLmgiCisj
aW5jbHVkZSAia2h0bWwvZWRpdGluZy9tYXJrdXAuaCIKKyNpbmNsdWRlICJraHRtbC9lZGl0aW5n
L21lcmdlX2lkZW50aWNhbF9lbGVtZW50c19jb21tYW5kLmgiCisjaW5jbHVkZSAia2h0bWwvZWRp
dGluZy9tb3ZlX3NlbGVjdGlvbl9jb21tYW5kLmgiCisjaW5jbHVkZSAia2h0bWwvZWRpdGluZy9y
ZWJhbGFuY2Vfd2hpdGVzcGFjZV9jb21tYW5kLmgiCisjaW5jbHVkZSAia2h0bWwvZWRpdGluZy9y
ZW1vdmVfY3NzX3Byb3BlcnR5X2NvbW1hbmQuaCIKKyNpbmNsdWRlICJraHRtbC9lZGl0aW5nL3Jl
bW92ZV9ub2RlX2F0dHJpYnV0ZV9jb21tYW5kLmgiCisjaW5jbHVkZSAia2h0bWwvZWRpdGluZy9y
ZW1vdmVfbm9kZV9jb21tYW5kLmgiCisjaW5jbHVkZSAia2h0bWwvZWRpdGluZy9yZW1vdmVfbm9k
ZV9wcmVzZXJ2aW5nX2NoaWxkcmVuX2NvbW1hbmQuaCIKKyNpbmNsdWRlICJraHRtbC9lZGl0aW5n
L3JlcGxhY2Vfc2VsZWN0aW9uX2NvbW1hbmQuaCIKKyNpbmNsdWRlICJraHRtbC9lZGl0aW5nL1Nl
bGVjdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJraHRtbC9lZGl0aW5nL3NldF9ub2RlX2F0
dHJpYnV0ZV9jb21tYW5kLmgiCisjaW5jbHVkZSAia2h0bWwvZWRpdGluZy9zcGxpdF9lbGVtZW50
X2NvbW1hbmQuaCIKKyNpbmNsdWRlICJraHRtbC9lZGl0aW5nL3NwbGl0X3RleHRfbm9kZV9jb21t
YW5kLmgiCisjaW5jbHVkZSAia2h0bWwvZWRpdGluZy9zcGxpdF90ZXh0X25vZGVfY29udGFpbmlu
Z19lbGVtZW50X2NvbW1hbmQuaCIKKyNpbmNsdWRlICJraHRtbC9lZGl0aW5nL3RleHRfYWZmaW5p
dHkuaCIKKyNpbmNsdWRlICJraHRtbC9lZGl0aW5nL3RleHRfZ3JhbnVsYXJpdHkuaCIKKyNpbmNs
dWRlICJraHRtbC9lZGl0aW5nL3R5cGluZ19jb21tYW5kLmgiCisjaW5jbHVkZSAia2h0bWwvZWRp
dGluZy92aXNpYmxlX3Bvc2l0aW9uLmgiCisjaW5jbHVkZSAia2h0bWwvZWRpdGluZy92aXNpYmxl
X3JhbmdlLmgiCisjaW5jbHVkZSAia2h0bWwvZWRpdGluZy92aXNpYmxlX3RleHQuaCIKKyNpbmNs
dWRlICJraHRtbC9lZGl0aW5nL3Zpc2libGVfdW5pdHMuaCIKKyNpbmNsdWRlICJraHRtbC9lZGl0
aW5nL3dyYXBfY29udGVudHNfaW5fZHVtbXlfc3Bhbl9jb21tYW5kLmgiCisjaW5jbHVkZSAia2h0
bWwva2h0bWxfZXZlbnRzLmgiCisjaW5jbHVkZSAia2h0bWwva2h0bWxwYXJ0X3AuaCIKKyNpbmNs
dWRlICJraHRtbC9raHRtbHZpZXcuaCIKKyNpbmNsdWRlICJraHRtbC9taXNjL2FyZW5hLmgiCisj
aW5jbHVkZSAia2h0bWwvbWlzYy9kZWNvZGVyLmgiCisjaW5jbHVkZSAia2h0bWwvbWlzYy9mb3Jt
ZGF0YS5oIgorI2luY2x1ZGUgImtodG1sL21pc2MvaGFzaGZ1bmN0aW9ucy5oIgorI2luY2x1ZGUg
ImtodG1sL21pc2MvaGVscGVyLmgiCisjaW5jbHVkZSAia2h0bWwvbWlzYy9raHRtbGRhdGEuaCIK
KyNpbmNsdWRlICJraHRtbC9taXNjL2todG1sbGF5b3V0LmgiCisjaW5jbHVkZSAia2h0bWwvbWlz
Yy9sb2FkZXIuaCIKKyNpbmNsdWRlICJraHRtbC9taXNjL2xvYWRlcl9jbGllbnQuaCIKKyNpbmNs
dWRlICJraHRtbC9taXNjL3NoYXJlZC5oIgorI2luY2x1ZGUgImtodG1sL21pc2Mvc3RyaW5naXQu
aCIKKyNpbmNsdWRlICJraHRtbC9yZW5kZXJpbmcvYmlkaS5oIgorI2luY2x1ZGUgImtodG1sL3Jl
bmRlcmluZy9mb250LmgiCisjaW5jbHVkZSAia2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9vYmplY3Qu
aCIKKyNpbmNsdWRlICJraHRtbC9yZW5kZXJpbmcvcmVuZGVyX3JlcGxhY2VkLmgiCisjaW5jbHVk
ZSAia2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9zdHlsZS5oIgorI2luY2x1ZGUgImtodG1sL3JlbmRl
cmluZy90YWJsZV9sYXlvdXQuaCIKKyNpbmNsdWRlICJraHRtbC94bWwvZG9tMl9ldmVudHNpbXBs
LmgiCisjaW5jbHVkZSAia2h0bWwveG1sL2RvbTJfcmFuZ2VpbXBsLmgiCisjaW5jbHVkZSAia2h0
bWwveG1sL2RvbTJfdHJhdmVyc2FsaW1wbC5oIgorI2luY2x1ZGUgImtodG1sL3htbC9kb20yX3Zp
ZXdzaW1wbC5oIgorI2luY2x1ZGUgImtodG1sL3htbC9kb21fYXRvbWljc3RyaW5nLmgiCisjaW5j
bHVkZSAia2h0bWwveG1sL2RvbV9hdG9taWNzdHJpbmdsaXN0LmgiCisjaW5jbHVkZSAia2h0bWwv
eG1sL2RvbV9kb2NpbXBsLmgiCisjaW5jbHVkZSAia2h0bWwveG1sL2RvbV9lbGVtZW50aW1wbC5o
IgorI2luY2x1ZGUgImtodG1sL3htbC9kb21fbm9kZWltcGwuaCIKKyNpbmNsdWRlICJraHRtbC94
bWwvZG9tX3Bvc2l0aW9uLmgiCisjaW5jbHVkZSAia2h0bWwveG1sL2RvbV9xbmFtZS5oIgorI2lu
Y2x1ZGUgImtodG1sL3htbC9kb21fc3RyaW5naW1wbC5oIgorI2luY2x1ZGUgImtodG1sL3htbC9k
b21fdGV4dGltcGwuaCIKKyNpbmNsdWRlICJraHRtbC94bWwvZG9tX3htbGltcGwuaCIKKyNpbmNs
dWRlICJraHRtbC94bWwvRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgImtodG1sL3htbC94bWxfdG9r
ZW5pemVyLmgiCisjaW5jbHVkZSAia2h0bWwveHNsL3hzbF9zdHlsZXNoZWV0aW1wbC5oIgorI2lu
Y2x1ZGUgImtodG1sL3hzbC94c2x0X3Byb2Nlc3NvcmltcGwuaCIKKworLy8gQWxsIHRlbXBvcmFy
eToKKyNpbmNsdWRlICJXZWJDb3JlK1NWRy9rZG9tLmgiCisjaW5jbHVkZSAiV2ViQ29yZStTVkcv
a2RvbWV2ZW50cy5oIgorI2luY2x1ZGUgIldlYkNvcmUrU1ZHL2tkb21jc3MuaCIKKyNpbmNsdWRl
ICJXZWJDb3JlK1NWRy9rZG9tcmFuZ2UuaCIKKyNpbmNsdWRlICJXZWJDb3JlK1NWRy9rZG9tdHJh
dmVyc2FsLmgiCisjaW5jbHVkZSAiV2ViQ29yZStTVkcva2RvbWxzLmgiCisjaW5jbHVkZSAiV2Vi
Q29yZStTVkcvTmFtZXNwYWNlLmgiCisjaW5jbHVkZSAia3N2ZzIvc3ZnL1NWR05hbWVzLmgiCisj
aW5jbHVkZSAiV2ViQ29yZStTVkcvUkdCQ29sb3JJbXBsLmgiCisjaW5jbHVkZSAiV2ViQ29yZStT
VkcvS0RPTVNldHRpbmdzLmgiCisKSW5kZXg6IFdlYkNvcmUrU1ZHL0tET01TdHViQ2xhc3Nlcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KUkNTIGZpbGU6IFdlYkNvcmUrU1ZHL0tET01TdHViQ2xhc3Nlcy5oCmRpZmYg
LU4gV2ViQ29yZStTVkcvS0RPTVN0dWJDbGFzc2VzLmgKLS0tIFdlYkNvcmUrU1ZHL0tET01TdHVi
Q2xhc3Nlcy5oCTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysrIFdlYkNvcmUrU1ZHL0tET01T
dHViQ2xhc3Nlcy5oCTEgTm92IDIwMDUgMTE6MTI6MzUgLTAwMDAKQEAgLTAsMCArMSw2NSBAQAor
LyoKKyAqICBLRE9NU3R1YkNsYXNzZXMuaAorICogIFdlYkNvcmUKKyAqCisgKiAgQ3JlYXRlZCBi
eSBFcmljIFNlaWRlbCBvbiAxMC8yOS8wNS4KKyAqICBDb3B5cmlnaHQgMjAwNSBBcHBsZSBDb21w
dXRlciwgSW5jLi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKi8KKworI2lmbmRlZiBLRE9N
U3R1YkNsYXNzZXNfaAorI2RlZmluZSBLRE9NU3R1YkNsYXNzZXNfaAorCisjZGVmaW5lIFhNTEVs
ZW1lbnRJbXBsIFN0eWxlZEVsZW1lbnRJbXBsCisKKyNpbmNsdWRlICJkb21fZWxlbWVudGltcGwu
aCIKKyNpbmNsdWRlICJLV1FLUGFydHNQYXJ0LmgiCisKK25hbWVzcGFjZSBLRE9NCit7CisgICAg
dHlwZWRlZiBOb2RlSW1wbCBFdmVudFRhcmdldEltcGw7CisgICAgCisgICAgLy8gRklYTUU6IHNo
b3VsZCBiZSByZXBsYWNlZCBieSBTaGFyZWRQdHIgdXNlLgorICAgIHRlbXBsYXRlPGNsYXNzIFQ+
CisgICAgaW5saW5lIHZvaWQgS0RPTV9TQUZFX1NFVChUIComYSwgVCAqYikKKyAgICB7CisgICAg
ICAgIGlmIChiKSBiLT5yZWYoKTsKKyAgICAgICAgaWYgKGEpIGEtPmRlcmVmKCk7CisgICAgICAg
IGEgPSBiOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgQ0RGSW50ZXJmYWNlIGNs
YXNzIGhhcyB0byBiZSBpbXBsZW1lbnRlZCBieSAnbGF5ZXJzIG9uIHRvcCcKKyAgICAgKiBvZiBr
ZG9tIChpZS4ga3N2ZzIva2h0bWwyKS4gVGhpcyBjbGFzcyBjb25uZWN0cyBrZG9tIHdpdGggdGhl
CisgICAgICogbGF5ZXIgb24gdG9wIGluIGZvbGxvd2luZyB3YXlzOgorICAgICAqCisgICAgICog
LSBDU1MgdmFsdWVzL3Byb3BlcnRpZXMgYWNjZXNzIC8gcmVuZGVyLXN0eWxlCisgICAgICogLSBF
Y21hU2NyaXB0IGdsb2JhbCBvYmplY3QgLyBFY21hSW50ZXJmYWNlIG9iamVjdAorICAgICAqCisg
ICAgICoqLworICAgIGNsYXNzIEdsb2JhbE9iamVjdDsKKyAgICBjbGFzcyBFY21hSW50ZXJmYWNl
OworICAgIGNsYXNzIENERkludGVyZmFjZQorICAgIHsKKyAgICBwdWJsaWM6CisgICAgICAgIENE
RkludGVyZmFjZSgpOworICAgICAgICB2aXJ0dWFsIH5DREZJbnRlcmZhY2UoKTsKKworICAgICAg
ICAvLyBDU1MgdmFsdWVzL3Byb3BlcnRpZXMKKyAgICAgICAgdmlydHVhbCBjb25zdCBjaGFyICpn
ZXRWYWx1ZU5hbWUodW5zaWduZWQgc2hvcnQpIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBj
b25zdCBjaGFyICpnZXRQcm9wZXJ0eU5hbWUodW5zaWduZWQgc2hvcnQpIGNvbnN0ID0gMDsKKyAg
ICAgICAgCisgICAgICAgIHZpcnR1YWwgaW50IGdldFZhbHVlSUQoY29uc3QgY2hhciAqdmFsU3Ry
LCBpbnQgbGVuKSBjb25zdCA9IDA7CisgICAgICAgIHZpcnR1YWwgaW50IGdldFByb3BlcnR5SUQo
Y29uc3QgY2hhciAqcHJvcFN0ciwgaW50IGxlbikgY29uc3QgPSAwOworCisgICAgICAgIHZpcnR1
YWwgUmVuZGVyU3R5bGUgKnJlbmRlclN0eWxlKCkgY29uc3QgPSAwOworICAgICAgICB2aXJ0dWFs
IGJvb2wgY3NzUHJvcGVydHlBcHBseUZpcnN0KGludCkgY29uc3QgPSAwOworCisgICAgICAgIC8v
IEVjbWFTY3JpcHQgaW50ZXJmYWNlCisgICAgICAgIHZpcnR1YWwgRWNtYUludGVyZmFjZSAqZWNt
YUludGVyZmFjZSgpIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBHbG9iYWxPYmplY3QgKmds
b2JhbE9iamVjdChEb2N1bWVudEltcGwgKmRvYykgY29uc3QgPSAwOworICAgIH07CisKK307CisK
KyNlbmRpZiAvLyBLRE9NU3R1YkNsYXNzZXNfaApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
SW5kZXg6IFdlYkNvcmUrU1ZHL05hbWVzcGFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IFdlYkNv
cmUrU1ZHL05hbWVzcGFjZS5oCmRpZmYgLU4gV2ViQ29yZStTVkcvTmFtZXNwYWNlLmgKLS0tIFdl
YkNvcmUrU1ZHL05hbWVzcGFjZS5oCTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysrIFdlYkNv
cmUrU1ZHL05hbWVzcGFjZS5oCTEgTm92IDIwMDUgMTE6MTI6MzUgLTAwMDAKQEAgLTAsMCArMSwx
OTEgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDA1IEZyYW5zIEVuZ2xpY2ggPGZyYW5zLmVu
Z2xpY2hAdGVsaWEuY29tPgorCisgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9q
ZWN0CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1w
bGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisgICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisq
LworCisjaWZuZGVmIEtET01fTmFtZXNwYWNlX2gKKyNkZWZpbmUgS0RPTV9OYW1lc3BhY2VfaAor
CisvKioKKyAqIEBmaWxlIE5hbWVzcGFjZS5oCisgKiBAc2hvcnQgQSBjb2xsZWN0aW9uIG9mIGNv
bW1vbiBuYW1lc3BhY2VzLgorICovCisKKy8qIE1pY3JvIHN0eWxlZ3VpZGUgZm9yIHRoZSBOYW1l
c3BhY2UgY2xhc3M6CisgKgorICogLSBOYW1lcyBhcmUgY2FwaXRhbGl6ZWQgYWxhIHRoZSBET00g
c3R5bGU6IGFsbCBjYXBzLgorICoKKyAqIC0gRG9uJ3Qgb3ZlcmZsb3cgd2l0aCB0b25zIG9mIG5h
bWVzcGFjZXMganVzdCBmb3IgdGhlIHNha2Ugb2YgaXQgb3IgCisgKiAgY29tcGxldGVuZXNzLCB3
ZSBkb24ndCB3YW50IG92ZXJlbmdpbmVlcmluZyBvciBibG9hdC4gQWRkIGEgbmFtZXNwYWNlIHdo
ZW4gCisgKiAgaXQgaXMgYWN0dWFsbHkgdXNlZCwgb3IgaXQgd2l0aCBjb25maWRlbmNlIHdpbGwg
YmUuCisgKi8KKworI2luY2x1ZGUgPGtkb20vRE9NU3RyaW5nLmg+CisKK25hbWVzcGFjZSBLRE9N
Cit7CisgICAgLyoqCisgICAgICogTmFtZXNwYWNlIGZvciBYTUwgSW5jbHVzaW9ucyhYSW5jbHVk
ZSkuCisgICAgICoKKyAgICAgKiBTcGVjaWZpY2F0aW9uOiBodHRwOi8vd3d3LnczLm9yZy9UUi94
aW5jbHVkZS8KKyAgICAgKi8KKyAgICBjb25zdCBET01TdHJpbmcgTlNfWElOQ0xVREUgPSAiaHR0
cDovL3d3dy53My5vcmcvMjAwMS9YSW5jbHVkZSI7CisKKyAgICAvKioKKyAgICAgKiBOYW1lc3Bh
Y2UgZm9yIHRoZSBzcGVjaWFsIFhNTCBuYW1lc3BhY2UuIEl0IGlzIGJ5IGRlZmluaXRpb24KKyAg
ICAgKiBib3VuZCB0byB0aGUgInhtbCIgcHJlZml4LCBhbmQgc2hvdWxkIGhhdmUgbm8gdXNhZ2Ug
aW4gCisgICAgICogb3JkaW5hcnkgY29kZS4KKyAgICAgKgorICAgICAqIFNwZWNpZmljYXRpb246
IGh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwtbmFtZXMvCisgICAgICovCisgICAgY29uc3Qg
RE9NU3RyaW5nIE5TX1hNTCA9ICJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2Ui
OworCisgICAgLyoqCisgICAgICogVGhlIG5hbWVzcGFjZSBmb3IgdGhlIHhtbG5zIHByZWZpeC4g
VGhlIE5hbWVzcGFjZXMgaW4gWE1MIHJlY29tbWVuZGF0aW9uIAorICAgICAqIGV4cGxpY2l0bHkg
c3RhdGVzIHRoYXQgeG1sbnMgc2hvdWxkIG5vdCBoYXZlIGEgbmFtZXNwYWNlLCBidXQgaGFzIHNp
bmNlIAorICAgICAqIGJlZW4gY2hhbmdlZC4gU2VlOgorICAgICAqCisgICAgICogaHR0cDovL3d3
dy53My5vcmcvMjAwMC94bWxucy8KKyAgICAgKi8KKyAgICBjb25zdCBET01TdHJpbmcgTlNfWE1M
TlMgPSAiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8iOworCisgICAgLyoqCisgICAgICog
TmFtZXNwYWNlIGZvciBYTUwgSHlwZXJ0ZXh0IE1hcmt1cCBMYW5ndWFnZShYSFRNTCkuCisgICAg
ICoKKyAgICAgKiBTcGVjaWZpY2F0aW9uOiBodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvCisg
ICAgICovCisgICAgY29uc3QgRE9NU3RyaW5nIE5TX1hIVE1MID0gImh0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwiOworCisgICAgLyoqCisgICAgICogTmFtZXNwYWNlIGZvciBTY2FsYWJsZSBW
ZWN0b3IgR3JhcGhpY3MoU1ZHKS4KKyAgICAgKgorICAgICAqIFNwZWNpZmljYXRpb246IGh0dHA6
Ly93d3cudzMub3JnL1RSL1NWRzExLworICAgICAqLworICAgIGNvbnN0IERPTVN0cmluZyBOU19T
VkcgPSAiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciOworCisgICAgLyoqCisgICAgICogTmFt
ZXNwYWNlIGZvciBPQVNJUyBYTUwgQ2F0YWxvZ3MuCisgICAgICoKKyAgICAgKiBTcGVjaWZpY2F0
aW9uOiBodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2NvbW1pdHRlZXMvZW50aXR5L3NwZWMuaHRt
bAorICAgICAqLworICAgIGNvbnN0IERPTVN0cmluZyBOU19DQVRBTE9HID0gInVybjpvYXNpczpu
YW1lczp0YzplbnRpdHk6eG1sbnM6eG1sOmNhdGFsb2ciOworCisgICAgLyoqCisgICAgICogTm90
IGEgbmFtZXNwYWNlIHRvIGJlIHByZWNpc2UsIGJ1dCBpcyBhIFVSSSAKKyAgICAgKiB3aGljaCBp
ZGVudGlmaWVzIGEgc2NoZW1hIG9mIHR5cGUgRFRELgorICAgICAqCisgICAgICogU3BlY2lmaWNh
dGlvbjogaHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTMtTFMvCisgICAgICovCisgICAg
Y29uc3QgRE9NU3RyaW5nIE5TX1NDSEVNQVRZUEVfRFREID0gImh0dHA6Ly93d3cudzMub3JnL1RS
L1JFQy14bWwiOworCisgICAgLyoqCisgICAgICogTm90IGEgbmFtZXNwYWNlIHRvIGJlIHByZWNp
c2UsIGJ1dCBpcyBhIFVSSSAKKyAgICAgKiB3aGljaCBpZGVudGlmaWVzIGEgc2NoZW1hIG9mIHR5
cGUgVzNDIFhNTCBTY2hlbWEoV1hTKS4KKyAgICAgKgorICAgICAqIFNwZWNpZmljYXRpb246IGh0
dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUxTLworICAgICAqLworICAgIGNvbnN0IERP
TVN0cmluZyBOU19TQ0hFTUFUWVBFX1dYUyA9ICJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNj
aGVtYSI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbmFtZXNwYWNlIGZvciBvbmUgb2YgdGhlIHR3
byBwYXJ0cyBpbiBYU0w6IFhTTC1ULiBUaGlzIG5hbWVzcGFjZQorICAgICAqIGlzIHVzZWQgZm9y
IFhTTC1UIDEuMCBhbmQgMi4wLgorICAgICAqCisgICAgICogTWljcm9zb2Z0J3MgWFNMLVQgZW5n
aW5lIGluIE1TWE1MLCB1c2VkIGluIEludGVybmV0IEV4cGxvcmVyLCAKKyAgICAgKiBkb2VzIGlu
IHNvbWUgY2lyY3Vtc3RhbmNlcyB1c2UgYSBwcm9wcmlldGFyeSBuYW1lc3BhY2UKKyAgICAgKiB3
aGljaCBzb21ldGltZXMgY2F1c2VzIGNvbmZ1c2lvbi4KKyAgICAgKgorICAgICAqIEZvciBYU0wt
VCAxLjAsIHNlZTogaHR0cDovL3d3dy53My5vcmcvVFIveHNsdDsgZm9yIFhTTC1UIDIuMCBzZWU6
IAorICAgICAqIGh0dHA6Ly93d3cudzMub3JnL1RSL3hzbHQyMC8KKyAgICAgKi8KKyAgICBjb25z
dCBET01TdHJpbmcgTlNfWFNMVCA9ICJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zv
cm0iOworCisgICAgLyoqCisgICAgICogVGhlIG5hbWVzcGFjZSBmb3IgVzNDIFhNTCBTY2hlbWEu
IFRoaXMgaXMgdXNlZCBmb3IgdGhlIFhNTCBsYW5ndWFnZSBpdAorICAgICAqIGlzLCBhcyB3ZWxs
IGFzIGl0cyBidWlsdC1pbiBkYXRhIHR5cGVzLgorICAgICAqCisgICAgICogU3BlY2lmaWNhdGlv
bjogaHR0cDovL3d3dy53My5vcmcvVFIveG1sc2NoZW1hLTIvCisgICAgICogQHNlZSA8YSBocmVm
PSJodHRwOi8vd3d3LnczLm9yZy9UUi94bWxzY2hlbWEtMi9kYXRhdHlwZXMuaHRtbCNuYW1lc3Bh
Y2VzIj5YTUwgU2NoZW1hIAorICAgICAqIFBhcnQgMjogRGF0YXR5cGVzIFNlY29uZCBFZGl0aW9u
LCAzLjEgTmFtZXNwYWNlIGNvbnNpZGVyYXRpb25zPC9hPgorICAgICAqLworICAgIGNvbnN0IERP
TVN0cmluZyBOU19XWFMgPSAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiOworCisg
ICAgLyoqCisgICAgICogVGhlIG5hbWVzcGFjZSBmb3IgVzNDIFhNTCBTY2hlbWEgYXR0cmlidXRl
cyB1c2VkIGluIHNjaGVtYSBpbnN0YW5jZXMuCisgICAgICoKKyAgICAgKiBTcGVjaWZpY2F0aW9u
OiBodHRwOi8vd3d3LnczLm9yZy9UUi94bWxzY2hlbWEtMi8KKyAgICAgKgorICAgICAqIEBzZWUg
PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIveG1sc2NoZW1hLTEvc3RydWN0dXJlcy5odG1s
I0luc3RhbmNlX0RvY3VtZW50X0NvbnN0cnVjdGlvbnMiPlhNTCAKKyAgICAgKiBTY2hlbWEgUGFy
dCAxOiBTdHJ1Y3R1cmVzIFNlY29uZCBFZGl0aW9uLCAyLjYgU2NoZW1hLVJlbGF0ZWQgTWFya3Vw
ICogaW4gRG9jdW1lbnRzIEJlaW5nIFZhbGlkYXRlZDwvYT4KKyAgICAgKi8KKyAgICBjb25zdCBE
T01TdHJpbmcgTlNfWFNJID0gImh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3Rh
bmNlIjsKKworICAgIC8qKgorICAgICAqIFRoZSBuYW1lc3BhY2UgZm9yIGJ1aWx0LWluIFhQYXRo
IGZ1bmN0aW9ucywgYXMgZGVmaW5lZCBpbiBmb3IgZXhhbXBsZQorICAgICAqIFhRdWVyeSAxLjAg
YW5kIFhQYXRoIDIuMCBGdW5jdGlvbnMgYW5kIE9wZXJhdG9ycyBhbmQgWFNMVC4KKyAgICAgKgor
ICAgICAqIFNwZWNpZmljYXRpb246IGh0dHA6Ly93d3cudzMub3JnL1RSL3hxdWVyeS1vcGVyYXRv
cnMvCisgICAgICovCisgICAgY29uc3QgRE9NU3RyaW5nIE5TX1hGTiA9ICJodHRwOi8vd3d3Lncz
Lm9yZy8yMDA1LzA0L3hwYXRoLWZ1bmN0aW9ucyI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbmFt
ZXNwYWNlIGZvciBYUGF0aCBEYXRhIE1vZGVsIFR5cGVzLiBUaGVzZSBhcmUgYnVpbHRpbiBkYXRh
IHR5cGVzIAorICAgICAqIGRlZmluZWQgYnkgdGhlIFhQYXRoIERhdGEgTW9kZWwgd2hpY2ggYXJl
IHVzZWQgaW4gYWRkaXRpb24gdG8gVzNDIAorICAgICAqIFhNTCBTY2hlbWEncyBidWlsdC1pbnMu
CisgICAgICogCisgICAgICogU3BlY2lmaWNhdGlvbjogaHR0cDovL3d3dy53My5vcmcvVFIveHBh
dGgtZGF0YW1vZGVsLworICAgICAqLworICAgIGNvbnN0IERPTVN0cmluZyBOU19YRFQgPSAiaHR0
cDovL3d3dy53My5vcmcvMjAwNS8wNC94cGF0aC1kYXRhdHlwZXMiOworCisgICAgLyoqCisgICAg
ICogVGhlIG5hbWVzcGFjZSBmb3IgaWRlbnRpZnlpbmcgZXJyb3JzIGluIFhQYXRoLgorICAgICAq
CisgICAgICogQHNlZSA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi94cGF0aDIwLyNpZC1p
ZGVudGlmeWluZy1lcnJvcnMiPlhNTCBQYXRoIExhbmd1YWdlIChYUGF0aCkgCisgICAgICogMi4w
LCAyLjMuMiBJZGVudGlmeWluZyBhbmQgUmVwb3J0aW5nIEVycm9yczwvYT4KKyAgICAgKi8KKyAg
ICBjb25zdCBET01TdHJpbmcgTlNfWFBFUlIgPSAiaHR0cDovL3d3dy53My5vcmcvMjAwNC8wNy94
cXQtZXJyb3JzIjsKKworICAgIC8qKgorICAgICAqIFRoZSBYUGF0aCAyLjAgVW5pY29kZSBjb2Rl
cG9pbnQgY29sbGF0aW9uIFVSSSBpZGVudGlmaWVyLiBDb2xsYXRpb25zCisgICAgICogc3BlY2lm
aWVzIGhvdyBzdHJpbmdzIGFyZSBjb21wYXJlZCBhbmQgb3JkZXJlZC4KKyAgICAgKi8KKyAgICBj
b25zdCBET01TdHJpbmcgTlNfVU5JQ09ERV9DT0xMQVRJT04gPSAiaHR0cDovL3d3dy53My5vcmcv
MjAwNS8wNC94cGF0aC1mdW5jdGlvbnMvY29sbGF0aW9uL2NvZGVwb2ludCI7CisKKyAgICAvKioK
KyAgICAgKiBOYW1lc3BhY2UgZm9yIGlkZW50aWZ5aW5nIGVycm9yIGNvbmRpdGlvbnMgZGVmaW5l
ZCBieSB0aGUgS1hQQVRIIGltcGxlbWVudGF0aW9uLiBUaGF0IGlzLAorICAgICAqIGVycm9yIGNv
bmRpdGlvbnMgdGhhdCBhcmUgbm90IGRlZmluZWQgaW4gZm9yIGV4YW1wbGUgPGEgaHJlZj0iaHR0
cDovL3d3dy53My5vcmcvVFIveHBhdGgyMC8iPlhNTCAKKyAgICAgKiBQYXRoIExhbmd1YWdlIChY
UGF0aCkgMi4wPC9hPi4KKyAgICAgKgorICAgICAqIEBzZWUgPGEgaHJlZj0iaHR0cDovL3d3dy53
My5vcmcvVFIveHBhdGgyMC8jaWQtaWRlbnRpZnlpbmctZXJyb3JzIj5YTUwgUGF0aCBMYW5ndWFn
ZSAoWFBhdGgpIAorICAgICAqIDIuMCwgMi4zLjIgSWRlbnRpZnlpbmcgYW5kIFJlcG9ydGluZyBF
cnJvcnM8L2E+CisgICAgICogQHNlZSBOU19YUEVSUgorICAgICAqLworICAgIGNvbnN0IERPTVN0
cmluZyBOU19LWFBBVEhfRVJSID0gImh0dHA6Ly93d3cuZXhhbXBsZS5vcmcvS1hQQVRIL0Vycm9y
TmFtZXNwYWNlL1RPRE8iOworCisgICAgLyoqCisgICAgICogVGhpcyBuYW1lc3BhY2UgaXMgc2lt
aWxhciB0byB0aGUgVzNDIFhNTCBTY2hlbWEgbmFtZXNwYWNlLCB3aXRoIHRoZSBkaWZmZXJlbmNl
IHRoYXQKKyAgICAgKiBpdCBpZGVudGlmaWVzIGFydGlmaWNpYWwgZGF0YSB0eXBlcywgdXNlZCBp
bnRlcm5hbGx5IGZvciBpbXBsZW1lbnRhdGlvbiBwdXJwb3Nlcy4gVXNpbmcKKyAgICAgKiB0aGlz
IG5hbWVzcGFjZSBpbiB1c2VyIGNvZGUsIG1vc3QgbGlrZWx5IGxlYWRzIHRvIHNldmVyZSwgdW5k
ZWZpbmVkIGVycm9ycy4KKyAgICAgKi8KKyAgICBjb25zdCBET01TdHJpbmcgTlNfS0RUID0gImh0
dHA6Ly93d3cuZXhhbXBsZS5vcmcvS1hQQVRIL0RhdGFUeXBlTmFtZXNwYWNlL1RPRE8iOworCit9
OworCisjZW5kaWYgLy8gS0RPTV9OYW1lc3BhY2VfaAorCisvLyB2aW06dHM9NDpub2V0CkluZGV4
OiBXZWJDb3JlK1NWRy9TVkdOYW1lcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogV2ViQ29yZStT
VkcvU1ZHTmFtZXMuY3BwCmRpZmYgLU4gV2ViQ29yZStTVkcvU1ZHTmFtZXMuY3BwCi0tLSBXZWJD
b3JlK1NWRy9TVkdOYW1lcy5jcHAJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMAorKysgV2ViQ29y
ZStTVkcvU1ZHTmFtZXMuY3BwCTEgTm92IDIwMDUgMTE6MTI6MzYgLTAwMDAKQEAgLTAsMCArMSwx
NTAgQEAKKy8qCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgU1ZHIERPTSBpbXBsZW1lbnRh
dGlvbiBmb3IgS0RFLgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNSBBcHBsZSBDb21wdXRlciwg
SW5jLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQ
bGFjZSAtIFN1aXRlIDMzMCwKKyAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorICoKKyAq
LworICNkZWZpbmUgRE9NX1NWR05BTUVTX0hJREVfR0xPQkFMUyAxCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgorCituYW1lc3BhY2UgRE9NIHsgbmFtZXNwYWNl
IFNWR05hbWVzIHsKKworLy8gRGVmaW5lIGEgcHJvcGVybHktc2l6ZWQgYXJyYXkgb2YgcG9pbnRl
cnMgdG8gYXZvaWQgc3RhdGljIGluaXRpYWxpemF0aW9uLgorLy8gVXNlIGFuIGFycmF5IG9mIHBv
aW50ZXJzIGluc3RlYWQgb2YgYW4gYXJyYXkgb2YgY2hhciBpbiBjYXNlIHRoZXJlIGlzIHNvbWUg
YWxpZ25tZW50IGlzc3VlLgorCisjZGVmaW5lIERFRklORV9VTklOSVRJQUxJWkVEX0dMT0JBTCh0
eXBlLCBuYW1lKSB2b2lkICpuYW1lWyhzaXplb2YodHlwZSkgKyBzaXplb2Yodm9pZCAqKSAtIDEp
IC8gc2l6ZW9mKHZvaWQgKildOworCitERUZJTkVfVU5JTklUSUFMSVpFRF9HTE9CQUwoQXRvbWlj
U3RyaW5nLCBzdmdOYW1lc3BhY2VVUkkpCisKKyNkZWZpbmUgREVGSU5FX1RBR19HTE9CQUwobmFt
ZSkgREVGSU5FX1VOSU5JVElBTElaRURfR0xPQkFMKFF1YWxpZmllZE5hbWUsIG5hbWUjI1RhZykK
K0RPTV9TVkdOQU1FU19GT1JfRUFDSF9UQUcoREVGSU5FX1RBR19HTE9CQUwpCisKKyNkZWZpbmUg
REVGSU5FX0FUVFJfR0xPQkFMKG5hbWUpIERFRklORV9VTklOSVRJQUxJWkVEX0dMT0JBTChRdWFs
aWZpZWROYW1lLCBuYW1lIyNBdHRyKQorRE9NX1NWR05BTUVTX0ZPUl9FQUNIX0FUVFIoREVGSU5F
X0FUVFJfR0xPQkFMKQorCit2b2lkIGluaXQoKQoreworICAgIHN0YXRpYyBib29sIGluaXRpYWxp
emVkID0gZmFsc2U7CisgICAgaWYgKGluaXRpYWxpemVkKQorICAgICAgICByZXR1cm47CisgICAg
aW5pdGlhbGl6ZWQgPSB0cnVlOworICAgIAorICAgIC8vIFVzZSBwbGFjZW1lbnQgbmV3IHRvIGlu
aXRpYWxpemUgdGhlIGdsb2JhbHMuCisKKyAgICBBdG9taWNTdHJpbmcgc3ZnTlMoImh0dHA6Ly93
d3cudzMub3JnLzIwMDAvc3ZnIik7CisKKyAgICAvLyBOYW1lc3BhY2UKKyAgICBuZXcgKCZzdmdO
YW1lc3BhY2VVUkkpIEF0b21pY1N0cmluZyhzdmdOUyk7CisgICAgLy8gVGFncyAgICAjZGVmaW5l
IERFRklORV9UQUdfU1RSSU5HKG5hbWUpIGNvbnN0IGNoYXIgKm5hbWUjI1RhZ1N0cmluZyA9ICNu
YW1lOworICAgIERPTV9TVkdOQU1FU19GT1JfRUFDSF9UQUcoREVGSU5FX1RBR19TVFJJTkcpCisK
KyAgICBjb2xvcl9wcm9maWxlVGFnU3RyaW5nID0gImNvbG9yLXByb2ZpbGUiOworICAgIGRlZmlu
aXRpb25fc3JjVGFnU3RyaW5nID0gImRlZmluaXRpb24tc3JjIjsKKyAgICBmb250X2ZhY2VUYWdT
dHJpbmcgPSAiZm9udC1mYWNlIjsKKyAgICBmb250X2ZhY2VfZm9ybWF0VGFnU3RyaW5nID0gImZv
bnQtZmFjZV9mb3JtYXQiOworICAgIGZvbnRfZmFjZV9uYW1lVGFnU3RyaW5nID0gImZvbnQtZmFj
ZV9uYW1lIjsKKyAgICBmb250X2ZhY2Vfc3JjVGFnU3RyaW5nID0gImZvbnQtZmFjZV9zcmMiOwor
ICAgIGZvbnRfZmFjZV91cmlUYWdTdHJpbmcgPSAiZm9udC1mYWNlX3VyaSI7CisgICAgbWlzc2lu
Z19nbHlwaFRhZ1N0cmluZyA9ICJtaXNzaW5nLWdseXBoIjsKKworICAgICNkZWZpbmUgSU5JVElB
TElaRV9UQUdfR0xPQkFMKG5hbWUpIG5ldyAoJm5hbWUjI1RhZykgUXVhbGlmaWVkTmFtZShudWxs
QXRvbSwgbmFtZSMjVGFnU3RyaW5nLCBzdmdOUyk7CisgICAgRE9NX1NWR05BTUVTX0ZPUl9FQUNI
X1RBRyhJTklUSUFMSVpFX1RBR19HTE9CQUwpCisKKyAgICAvLyBBdHRyaWJ1dGVzICAgICNkZWZp
bmUgREVGSU5FX0FUVFJfU1RSSU5HKG5hbWUpIGNvbnN0IGNoYXIgKm5hbWUjI0F0dHJTdHJpbmcg
PSAjbmFtZTsKKyAgICBET01fU1ZHTkFNRVNfRk9SX0VBQ0hfQVRUUihERUZJTkVfQVRUUl9TVFJJ
TkcpCisKKyAgICBhY2NlbnRfaGVpZ2h0QXR0clN0cmluZyA9ICJhY2NlbnQtaGVpZ2h0IjsKKyAg
ICBhbGlnbm1lbnRfYmFzZWxpbmVBdHRyU3RyaW5nID0gImFsaWdubWVudC1iYXNlbGluZSI7Cisg
ICAgYXJhYmljX2Zvcm1BdHRyU3RyaW5nID0gImFyYWJpYy1mb3JtIjsKKyAgICBiYXNlbGluZV9z
aGlmdEF0dHJTdHJpbmcgPSAiYmFzZWxpbmUtc2hpZnQiOworICAgIGNhcF9oZWlnaHRBdHRyU3Ry
aW5nID0gImNhcC1oZWlnaHQiOworICAgIGNsaXBfcGF0aEF0dHJTdHJpbmcgPSAiY2xpcC1wYXRo
IjsKKyAgICBjbGlwX3J1bGVBdHRyU3RyaW5nID0gImNsaXAtcnVsZSI7CisgICAgY29sb3JfaW50
ZXJwb2xhdGlvbkF0dHJTdHJpbmcgPSAiY29sb3ItaW50ZXJwb2xhdGlvbiI7CisgICAgY29sb3Jf
aW50ZXJwb2xhdGlvbl9maWx0ZXJzQXR0clN0cmluZyA9ICJjb2xvci1pbnRlcnBvbGF0aW9uX2Zp
bHRlcnMiOworICAgIGNvbG9yX3Byb2ZpbGVBdHRyU3RyaW5nID0gImNvbG9yLXByb2ZpbGUiOwor
ICAgIGNvbG9yX3JlbmRlcmluZ0F0dHJTdHJpbmcgPSAiY29sb3ItcmVuZGVyaW5nIjsKKyAgICBk
b21pbmFudF9iYXNlbGluZUF0dHJTdHJpbmcgPSAiZG9taW5hbnQtYmFzZWxpbmUiOworICAgIGVu
YWJsZV9iYWNrZ3JvdW5kQXR0clN0cmluZyA9ICJlbmFibGUtYmFja2dyb3VuZCI7CisgICAgZmls
bF9vcGFjaXR5QXR0clN0cmluZyA9ICJmaWxsLW9wYWNpdHkiOworICAgIGZpbGxfcnVsZUF0dHJT
dHJpbmcgPSAiZmlsbC1ydWxlIjsKKyAgICBmbG9vZF9jb2xvckF0dHJTdHJpbmcgPSAiZmxvb2Qt
Y29sb3IiOworICAgIGZsb29kX29wYWNpdHlBdHRyU3RyaW5nID0gImZsb29kLW9wYWNpdHkiOwor
ICAgIGZvbnRfZmFtaWx5QXR0clN0cmluZyA9ICJmb250LWZhbWlseSI7CisgICAgZm9udF9zaXpl
QXR0clN0cmluZyA9ICJmb250LXNpemUiOworICAgIGZvbnRfc2l6ZV9hZGp1c3RBdHRyU3RyaW5n
ID0gImZvbnQtc2l6ZV9hZGp1c3QiOworICAgIGZvbnRfc3RyZXRjaEF0dHJTdHJpbmcgPSAiZm9u
dC1zdHJldGNoIjsKKyAgICBmb250X3N0eWxlQXR0clN0cmluZyA9ICJmb250LXN0eWxlIjsKKyAg
ICBmb250X3ZhcmlhbnRBdHRyU3RyaW5nID0gImZvbnQtdmFyaWFudCI7CisgICAgZm9udF93ZWln
aHRBdHRyU3RyaW5nID0gImZvbnQtd2VpZ2h0IjsKKyAgICBnbHlwaF9uYW1lQXR0clN0cmluZyA9
ICJnbHlwaC1uYW1lIjsKKyAgICBnbHlwaF9vcmllbnRhdGlvbl9ob3Jpem9udGFsQXR0clN0cmlu
ZyA9ICJnbHlwaC1vcmllbnRhdGlvbl9ob3Jpem9udGFsIjsKKyAgICBnbHlwaF9vcmllbnRhdGlv
bl92ZXJ0aWNhbEF0dHJTdHJpbmcgPSAiZ2x5cGgtb3JpZW50YXRpb25fdmVydGljYWwiOworICAg
IGhvcml6X2Fkdl94QXR0clN0cmluZyA9ICJob3Jpei1hZHZfeCI7CisgICAgaG9yaXpfb3JpZ2lu
X3hBdHRyU3RyaW5nID0gImhvcml6LW9yaWdpbl94IjsKKyAgICBob3Jpel9vcmlnaW5feUF0dHJT
dHJpbmcgPSAiaG9yaXotb3JpZ2luX3kiOworICAgIGltYWdlX3JlbmRlcmluZ0F0dHJTdHJpbmcg
PSAiaW1hZ2UtcmVuZGVyaW5nIjsKKyAgICBsZXR0ZXJfc3BhY2luZ0F0dHJTdHJpbmcgPSAibGV0
dGVyLXNwYWNpbmciOworICAgIGxpZ2h0aW5nX2NvbG9yQXR0clN0cmluZyA9ICJsaWdodGluZy1j
b2xvciI7CisgICAgbWFya2VyX2VuZEF0dHJTdHJpbmcgPSAibWFya2VyLWVuZCI7CisgICAgbWFy
a2VyX21pZEF0dHJTdHJpbmcgPSAibWFya2VyLW1pZCI7CisgICAgbWFya2VyX3N0YXJ0QXR0clN0
cmluZyA9ICJtYXJrZXItc3RhcnQiOworICAgIG92ZXJsaW5lX3Bvc2l0aW9uQXR0clN0cmluZyA9
ICJvdmVybGluZS1wb3NpdGlvbiI7CisgICAgb3ZlcmxpbmVfdGhpY2tuZXNzQXR0clN0cmluZyA9
ICJvdmVybGluZS10aGlja25lc3MiOworICAgIHBhbm9zZV8xQXR0clN0cmluZyA9ICJwYW5vc2Ut
MSI7CisgICAgcG9pbnRlcl9ldmVudHNBdHRyU3RyaW5nID0gInBvaW50ZXItZXZlbnRzIjsKKyAg
ICByZW5kZXJpbmdfaW50ZW50QXR0clN0cmluZyA9ICJyZW5kZXJpbmctaW50ZW50IjsKKyAgICBz
aGFwZV9yZW5kZXJpbmdBdHRyU3RyaW5nID0gInNoYXBlLXJlbmRlcmluZyI7CisgICAgc3RvcF9j
b2xvckF0dHJTdHJpbmcgPSAic3RvcC1jb2xvciI7CisgICAgc3RvcF9vcGFjaXR5QXR0clN0cmlu
ZyA9ICJzdG9wLW9wYWNpdHkiOworICAgIHN0cmlrZXRocm91Z2hfcG9zaXRpb25BdHRyU3RyaW5n
ID0gInN0cmlrZXRocm91Z2gtcG9zaXRpb24iOworICAgIHN0cmlrZXRocm91Z2hfdGhpY2tuZXNz
QXR0clN0cmluZyA9ICJzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcyI7CisgICAgc3Ryb2tlX2Rhc2hh
cnJheUF0dHJTdHJpbmcgPSAic3Ryb2tlLWRhc2hhcnJheSI7CisgICAgc3Ryb2tlX2Rhc2hvZmZz
ZXRBdHRyU3RyaW5nID0gInN0cm9rZS1kYXNob2Zmc2V0IjsKKyAgICBzdHJva2VfbGluZWNhcEF0
dHJTdHJpbmcgPSAic3Ryb2tlLWxpbmVjYXAiOworICAgIHN0cm9rZV9saW5lam9pbkF0dHJTdHJp
bmcgPSAic3Ryb2tlLWxpbmVqb2luIjsKKyAgICBzdHJva2VfbWl0ZXJsaW1pdEF0dHJTdHJpbmcg
PSAic3Ryb2tlLW1pdGVybGltaXQiOworICAgIHN0cm9rZV9vcGFjaXR5QXR0clN0cmluZyA9ICJz
dHJva2Utb3BhY2l0eSI7CisgICAgc3Ryb2tlX3dpZHRoQXR0clN0cmluZyA9ICJzdHJva2Utd2lk
dGgiOworICAgIHRleHRfYW5jaG9yQXR0clN0cmluZyA9ICJ0ZXh0LWFuY2hvciI7CisgICAgdGV4
dF9kZWNvcmF0aW9uQXR0clN0cmluZyA9ICJ0ZXh0LWRlY29yYXRpb24iOworICAgIHRleHRfcmVu
ZGVyaW5nQXR0clN0cmluZyA9ICJ0ZXh0LXJlbmRlcmluZyI7CisgICAgdW5kZXJsaW5lX3Bvc2l0
aW9uQXR0clN0cmluZyA9ICJ1bmRlcmxpbmUtcG9zaXRpb24iOworICAgIHVuZGVybGluZV90aGlj
a25lc3NBdHRyU3RyaW5nID0gInVuZGVybGluZS10aGlja25lc3MiOworICAgIHVuaWNvZGVfYmlk
aUF0dHJTdHJpbmcgPSAidW5pY29kZS1iaWRpIjsKKyAgICB1bmljb2RlX3JhbmdlQXR0clN0cmlu
ZyA9ICJ1bmljb2RlLXJhbmdlIjsKKyAgICB1bml0c19wZXJfZW1BdHRyU3RyaW5nID0gInVuaXRz
LXBlcl9lbSI7CisgICAgdl9hbHBoYWJldGljQXR0clN0cmluZyA9ICJ2LWFscGhhYmV0aWMiOwor
ICAgIHZfaGFuZ2luZ0F0dHJTdHJpbmcgPSAidi1oYW5naW5nIjsKKyAgICB2X2lkZW9ncmFwaGlj
QXR0clN0cmluZyA9ICJ2LWlkZW9ncmFwaGljIjsKKyAgICB2X21hdGhlbWF0aWNhbEF0dHJTdHJp
bmcgPSAidi1tYXRoZW1hdGljYWwiOworICAgIHZlcnRfYWR2X3lBdHRyU3RyaW5nID0gInZlcnQt
YWR2X3kiOworICAgIHZlcnRfb3JpZ2luX3hBdHRyU3RyaW5nID0gInZlcnQtb3JpZ2luX3giOwor
ICAgIHZlcnRfb3JpZ2luX3lBdHRyU3RyaW5nID0gInZlcnQtb3JpZ2luX3kiOworICAgIHdvcmRf
c3BhY2luZ0F0dHJTdHJpbmcgPSAid29yZC1zcGFjaW5nIjsKKyAgICB3cml0aW5nX21vZGVBdHRy
U3RyaW5nID0gIndyaXRpbmctbW9kZSI7CisgICAgeF9oZWlnaHRBdHRyU3RyaW5nID0gIngtaGVp
Z2h0IjsKKworICAgICNkZWZpbmUgSU5JVElBTElaRV9BVFRSX0dMT0JBTChuYW1lKSBuZXcgKCZu
YW1lIyNBdHRyKSBRdWFsaWZpZWROYW1lKG51bGxBdG9tLCBuYW1lIyNBdHRyU3RyaW5nLCBudWxs
QXRvbSk7CisgICAgRE9NX1NWR05BTUVTX0ZPUl9FQUNIX0FUVFIoSU5JVElBTElaRV9BVFRSX0dM
T0JBTCkKKworfQorCit9IH0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBXZWJD
b3JlK1NWRy9TVkdOYW1lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IFdlYkNvcmUrU1ZHL1NWR05h
bWVzLmgKZGlmZiAtTiBXZWJDb3JlK1NWRy9TVkdOYW1lcy5oCi0tLSBXZWJDb3JlK1NWRy9TVkdO
YW1lcy5oCTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysrIFdlYkNvcmUrU1ZHL1NWR05hbWVz
LmgJMSBOb3YgMjAwNSAxMToxMjozNiAtMDAwMApAQCAtMCwwICsxLDM3OSBAQAorLyoKKyAqIFRo
aXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBTVkcgRE9NIGltcGxlbWVudGF0aW9uIGZvciBLREUuCisg
KgorICogQ29weXJpZ2h0IChDKSAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMw
LAorICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisgKgorICovCisgI2lmbmRlZiBET01f
U1ZHTkFNRVNfSAorI2RlZmluZSBET01fU1ZHTkFNRVNfSAorCisjaW5jbHVkZSAiZG9tX3FuYW1l
LmgiCituYW1lc3BhY2UgRE9NIHsgbmFtZXNwYWNlIFNWR05hbWVzIHsKKyNkZWZpbmUgRE9NX1NW
R05BTUVTX0ZPUl9FQUNIX1RBRyhtYWNybykgXAorICAgIG1hY3JvKGEpIFwKKyAgICBtYWNybyhh
bHRnbHlwaCkgXAorICAgIG1hY3JvKGFsdGdseXBoZGVmKSBcCisgICAgbWFjcm8oYWx0Z2x5cGhp
dGVtKSBcCisgICAgbWFjcm8oYW5pbWF0ZSkgXAorICAgIG1hY3JvKGFuaW1hdGVjb2xvcikgXAor
ICAgIG1hY3JvKGFuaW1hdGVtb3Rpb24pIFwKKyAgICBtYWNybyhhbmltYXRldHJhbnNmb3JtKSBc
CisgICAgbWFjcm8oY2lyY2xlKSBcCisgICAgbWFjcm8oY2xpcHBhdGgpIFwKKyAgICBtYWNybyhj
b2xvcl9wcm9maWxlKSBcCisgICAgbWFjcm8oY3Vyc29yKSBcCisgICAgbWFjcm8oZGVmaW5pdGlv
bl9zcmMpIFwKKyAgICBtYWNybyhkZWZzKSBcCisgICAgbWFjcm8oZGVzYykgXAorICAgIG1hY3Jv
KGVsbGlwc2UpIFwKKyAgICBtYWNybyhmZWJsZW5kKSBcCisgICAgbWFjcm8oZmVjb2xvcm1hdHJp
eCkgXAorICAgIG1hY3JvKGZlY29tcG9uZW50dHJhbnNmZXIpIFwKKyAgICBtYWNybyhmZWNvbXBv
c2l0ZSkgXAorICAgIG1hY3JvKGZlY29udm9sdmVtYXRyaXgpIFwKKyAgICBtYWNybyhmZWRpZmZ1
c2VsaWdodGluZykgXAorICAgIG1hY3JvKGZlZGlzcGxhY2VtZW50bWFwKSBcCisgICAgbWFjcm8o
ZmVkaXN0YW50bGlnaHQpIFwKKyAgICBtYWNybyhmZWZsb29kKSBcCisgICAgbWFjcm8oZmVmdW5j
YSkgXAorICAgIG1hY3JvKGZlZnVuY2IpIFwKKyAgICBtYWNybyhmZWZ1bmNnKSBcCisgICAgbWFj
cm8oZmVmdW5jcikgXAorICAgIG1hY3JvKGZlZ2F1c3NpYW5ibHVyKSBcCisgICAgbWFjcm8oZmVp
bWFnZSkgXAorICAgIG1hY3JvKGZlbWVyZ2UpIFwKKyAgICBtYWNybyhmZW1lcmdlbm9kZSkgXAor
ICAgIG1hY3JvKGZlbW9ycGhvbG9neSkgXAorICAgIG1hY3JvKGZlb2Zmc2V0KSBcCisgICAgbWFj
cm8oZmVwb2ludGxpZ2h0KSBcCisgICAgbWFjcm8oZmVzcGVjdWxhcmxpZ2h0aW5nKSBcCisgICAg
bWFjcm8oZmVzcG90bGlnaHQpIFwKKyAgICBtYWNybyhmZXRpbGUpIFwKKyAgICBtYWNybyhmZXR1
cmJ1bGVuY2UpIFwKKyAgICBtYWNybyhmaWx0ZXIpIFwKKyAgICBtYWNybyhmb250KSBcCisgICAg
bWFjcm8oZm9udF9mYWNlKSBcCisgICAgbWFjcm8oZm9udF9mYWNlX2Zvcm1hdCkgXAorICAgIG1h
Y3JvKGZvbnRfZmFjZV9uYW1lKSBcCisgICAgbWFjcm8oZm9udF9mYWNlX3NyYykgXAorICAgIG1h
Y3JvKGZvbnRfZmFjZV91cmkpIFwKKyAgICBtYWNybyhmb3JlaWdub2JqZWN0KSBcCisgICAgbWFj
cm8oZykgXAorICAgIG1hY3JvKGdseXBoKSBcCisgICAgbWFjcm8oZ2x5cGhyZWYpIFwKKyAgICBt
YWNybyhoa2VybikgXAorICAgIG1hY3JvKGltYWdlKSBcCisgICAgbWFjcm8obGluZSkgXAorICAg
IG1hY3JvKGxpbmVhcmdyYWRpZW50KSBcCisgICAgbWFjcm8obWFya2VyKSBcCisgICAgbWFjcm8o
bWFzaykgXAorICAgIG1hY3JvKG1ldGFkYXRhKSBcCisgICAgbWFjcm8obWlzc2luZ19nbHlwaCkg
XAorICAgIG1hY3JvKG1wYXRoKSBcCisgICAgbWFjcm8ocGF0aCkgXAorICAgIG1hY3JvKHBhdHRl
cm4pIFwKKyAgICBtYWNybyhwb2x5Z29uKSBcCisgICAgbWFjcm8ocG9seWxpbmUpIFwKKyAgICBt
YWNybyhyYWRpYWxncmFkaWVudCkgXAorICAgIG1hY3JvKHJlY3QpIFwKKyAgICBtYWNybyhzY3Jp
cHQpIFwKKyAgICBtYWNybyhzZXQpIFwKKyAgICBtYWNybyhzdG9wKSBcCisgICAgbWFjcm8oc3R5
bGUpIFwKKyAgICBtYWNybyhzdmcpIFwKKyAgICBtYWNybyhzd2l0Y2gpIFwKKyAgICBtYWNybyhz
eW1ib2wpIFwKKyAgICBtYWNybyh0ZXh0KSBcCisgICAgbWFjcm8odGV4dHBhdGgpIFwKKyAgICBt
YWNybyh0aXRsZSkgXAorICAgIG1hY3JvKHRyZWYpIFwKKyAgICBtYWNybyh0c3BhbikgXAorICAg
IG1hY3JvKHVzZSkgXAorICAgIG1hY3JvKHZpZXcpIFwKKyAgICBtYWNybyh2a2VybikgXAorLy8g
ZW5kIG9mIG1hY3JvCisKKyNkZWZpbmUgRE9NX1NWR05BTUVTX0ZPUl9FQUNIX0FUVFIobWFjcm8p
IFwKKyAgICBtYWNybyhhY2NlbnRfaGVpZ2h0KSBcCisgICAgbWFjcm8oYWNjdW11bGF0ZSkgXAor
ICAgIG1hY3JvKGFkZGl0aXZlKSBcCisgICAgbWFjcm8oYWxpZ25tZW50X2Jhc2VsaW5lKSBcCisg
ICAgbWFjcm8oYWxwaGFiZXRpYykgXAorICAgIG1hY3JvKGFtcGxpdHVkZSkgXAorICAgIG1hY3Jv
KGFuaW1hdGUpIFwKKyAgICBtYWNybyhhcmFiaWNfZm9ybSkgXAorICAgIG1hY3JvKGFzY2VudCkg
XAorICAgIG1hY3JvKGF0dHJpYnV0ZW5hbWUpIFwKKyAgICBtYWNybyhhdHRyaWJ1dGV0eXBlKSBc
CisgICAgbWFjcm8oYXppbXV0aCkgXAorICAgIG1hY3JvKGJhc2VmcmVxdWVuY3kpIFwKKyAgICBt
YWNybyhiYXNlbGluZV9zaGlmdCkgXAorICAgIG1hY3JvKGJhc2Vwcm9maWxlKSBcCisgICAgbWFj
cm8oYmJveCkgXAorICAgIG1hY3JvKGJlZ2luKSBcCisgICAgbWFjcm8oYmlhcykgXAorICAgIG1h
Y3JvKGJ5KSBcCisgICAgbWFjcm8oY2FsY21vZGUpIFwKKyAgICBtYWNybyhjYXBfaGVpZ2h0KSBc
CisgICAgbWFjcm8oY2xpcCkgXAorICAgIG1hY3JvKGNsaXBfcGF0aCkgXAorICAgIG1hY3JvKGNs
aXBfcnVsZSkgXAorICAgIG1hY3JvKGNsaXBwYXRodW5pdHMpIFwKKyAgICBtYWNybyhjb2xvcikg
XAorICAgIG1hY3JvKGNvbG9yX2ludGVycG9sYXRpb24pIFwKKyAgICBtYWNybyhjb2xvcl9pbnRl
cnBvbGF0aW9uX2ZpbHRlcnMpIFwKKyAgICBtYWNybyhjb2xvcl9wcm9maWxlKSBcCisgICAgbWFj
cm8oY29sb3JfcmVuZGVyaW5nKSBcCisgICAgbWFjcm8oY29udGVudHNjcmlwdHR5cGUpIFwKKyAg
ICBtYWNybyhjb250ZW50c3R5bGV0eXBlKSBcCisgICAgbWFjcm8oY3Vyc29yKSBcCisgICAgbWFj
cm8oY3gpIFwKKyAgICBtYWNybyhjeSkgXAorICAgIG1hY3JvKGQpIFwKKyAgICBtYWNybyhkZXNj
ZW50KSBcCisgICAgbWFjcm8oZGlmZnVzZWNvbnN0YW50KSBcCisgICAgbWFjcm8oZGlyZWN0aW9u
KSBcCisgICAgbWFjcm8oZGlzcGxheSkgXAorICAgIG1hY3JvKGRpdmlzb3IpIFwKKyAgICBtYWNy
byhkb21pbmFudF9iYXNlbGluZSkgXAorICAgIG1hY3JvKGR1cikgXAorICAgIG1hY3JvKGR4KSBc
CisgICAgbWFjcm8oZHkpIFwKKyAgICBtYWNybyhlZGdlbW9kZSkgXAorICAgIG1hY3JvKGVsZXZh
dGlvbikgXAorICAgIG1hY3JvKGVuYWJsZV9iYWNrZ3JvdW5kKSBcCisgICAgbWFjcm8oZW5kKSBc
CisgICAgbWFjcm8oZXhwb25lbnQpIFwKKyAgICBtYWNybyhleHRlcm5hbHJlc291cmNlc3JlcXVp
cmVkKSBcCisgICAgbWFjcm8oZmVjb2xvcm1hdHJpeCkgXAorICAgIG1hY3JvKGZlY29tcG9zaXRl
KSBcCisgICAgbWFjcm8oZmVnYXVzc2lhbmJsdXIpIFwKKyAgICBtYWNybyhmZW1vcnBob2xvZ3kp
IFwKKyAgICBtYWNybyhmZXRpbGUpIFwKKyAgICBtYWNybyhmaWxsKSBcCisgICAgbWFjcm8oZmls
bF9vcGFjaXR5KSBcCisgICAgbWFjcm8oZmlsbF9ydWxlKSBcCisgICAgbWFjcm8oZmlsdGVyKSBc
CisgICAgbWFjcm8oZmlsdGVycmVzKSBcCisgICAgbWFjcm8oZmlsdGVydW5pdHMpIFwKKyAgICBt
YWNybyhmbG9vZF9jb2xvcikgXAorICAgIG1hY3JvKGZsb29kX29wYWNpdHkpIFwKKyAgICBtYWNy
byhmb250X2ZhbWlseSkgXAorICAgIG1hY3JvKGZvbnRfc2l6ZSkgXAorICAgIG1hY3JvKGZvbnRf
c2l6ZV9hZGp1c3QpIFwKKyAgICBtYWNybyhmb250X3N0cmV0Y2gpIFwKKyAgICBtYWNybyhmb250
X3N0eWxlKSBcCisgICAgbWFjcm8oZm9udF92YXJpYW50KSBcCisgICAgbWFjcm8oZm9udF93ZWln
aHQpIFwKKyAgICBtYWNybyhmb3JtYXQpIFwKKyAgICBtYWNybyhmcm9tKSBcCisgICAgbWFjcm8o
ZngpIFwKKyAgICBtYWNybyhmeSkgXAorICAgIG1hY3JvKGcxKSBcCisgICAgbWFjcm8oZzIpIFwK
KyAgICBtYWNybyhnbHlwaF9uYW1lKSBcCisgICAgbWFjcm8oZ2x5cGhfb3JpZW50YXRpb25faG9y
aXpvbnRhbCkgXAorICAgIG1hY3JvKGdseXBoX29yaWVudGF0aW9uX3ZlcnRpY2FsKSBcCisgICAg
bWFjcm8oZ2x5cGhyZWYpIFwKKyAgICBtYWNybyhncmFkaWVudHRyYW5zZm9ybSkgXAorICAgIG1h
Y3JvKGdyYWRpZW50dW5pdHMpIFwKKyAgICBtYWNybyhoYW5naW5nKSBcCisgICAgbWFjcm8oaGVp
Z2h0KSBcCisgICAgbWFjcm8oaG9yaXpfYWR2X3gpIFwKKyAgICBtYWNybyhob3Jpel9vcmlnaW5f
eCkgXAorICAgIG1hY3JvKGhvcml6X29yaWdpbl95KSBcCisgICAgbWFjcm8oaHJlZikgXAorICAg
IG1hY3JvKGlkZW9ncmFwaGljKSBcCisgICAgbWFjcm8oaW1hZ2VfcmVuZGVyaW5nKSBcCisgICAg
bWFjcm8oaW4pIFwKKyAgICBtYWNybyhpbjIpIFwKKyAgICBtYWNybyhpbnRlcmNlcHQpIFwKKyAg
ICBtYWNybyhrKSBcCisgICAgbWFjcm8oazEpIFwKKyAgICBtYWNybyhrMikgXAorICAgIG1hY3Jv
KGszKSBcCisgICAgbWFjcm8oazQpIFwKKyAgICBtYWNybyhrZXJuZWxtYXRyaXgpIFwKKyAgICBt
YWNybyhrZXJuZWx1bml0bGVuZ3RoKSBcCisgICAgbWFjcm8oa2VybmluZykgXAorICAgIG1hY3Jv
KGtleXBvaW50cykgXAorICAgIG1hY3JvKGtleXNwbGluZXMpIFwKKyAgICBtYWNybyhrZXl0aW1l
cykgXAorICAgIG1hY3JvKGxhbmcpIFwKKyAgICBtYWNybyhsZW5ndGhhZGp1c3QpIFwKKyAgICBt
YWNybyhsZXR0ZXJfc3BhY2luZykgXAorICAgIG1hY3JvKGxpZ2h0aW5nX2NvbG9yKSBcCisgICAg
bWFjcm8obGltaXRpbmdjb25lYW5nbGUpIFwKKyAgICBtYWNybyhsb2NhbCkgXAorICAgIG1hY3Jv
KG1hcmtlcl9lbmQpIFwKKyAgICBtYWNybyhtYXJrZXJfbWlkKSBcCisgICAgbWFjcm8obWFya2Vy
X3N0YXJ0KSBcCisgICAgbWFjcm8obWFya2VyaGVpZ2h0KSBcCisgICAgbWFjcm8obWFya2VydW5p
dHMpIFwKKyAgICBtYWNybyhtYXJrZXJ3aWR0aCkgXAorICAgIG1hY3JvKG1hc2spIFwKKyAgICBt
YWNybyhtYXNrY29udGVudHVuaXRzKSBcCisgICAgbWFjcm8obWFza3VuaXRzKSBcCisgICAgbWFj
cm8obWF0aGVtYXRpY2FsKSBcCisgICAgbWFjcm8obWF4KSBcCisgICAgbWFjcm8obWVkaWEpIFwK
KyAgICBtYWNybyhtZXRob2QpIFwKKyAgICBtYWNybyhtaW4pIFwKKyAgICBtYWNybyhtb2RlKSBc
CisgICAgbWFjcm8obmFtZSkgXAorICAgIG1hY3JvKG51bW9jdGF2ZXMpIFwKKyAgICBtYWNybyhv
ZmZzZXQpIFwKKyAgICBtYWNybyhvbmJlZ2luKSBcCisgICAgbWFjcm8ob25lbmQpIFwKKyAgICBt
YWNybyhvbnJlcGVhdCkgXAorICAgIG1hY3JvKG9uem9vbSkgXAorICAgIG1hY3JvKG9wYWNpdHkp
IFwKKyAgICBtYWNybyhvcGVyYXRvcikgXAorICAgIG1hY3JvKG9yZGVyKSBcCisgICAgbWFjcm8o
b3JpZW50KSBcCisgICAgbWFjcm8ob3JpZW50YXRpb24pIFwKKyAgICBtYWNybyhvcmlnaW4pIFwK
KyAgICBtYWNybyhvdmVyZmxvdykgXAorICAgIG1hY3JvKG92ZXJsaW5lX3Bvc2l0aW9uKSBcCisg
ICAgbWFjcm8ob3ZlcmxpbmVfdGhpY2tuZXNzKSBcCisgICAgbWFjcm8ocGFub3NlXzEpIFwKKyAg
ICBtYWNybyhwYXRoKSBcCisgICAgbWFjcm8ocGF0aGxlbmd0aCkgXAorICAgIG1hY3JvKHBhdHRl
cm5jb250ZW50dW5pdHMpIFwKKyAgICBtYWNybyhwYXR0ZXJudHJhbnNmb3JtKSBcCisgICAgbWFj
cm8ocGF0dGVybnVuaXRzKSBcCisgICAgbWFjcm8ocG9pbnRlcl9ldmVudHMpIFwKKyAgICBtYWNy
byhwb2ludHMpIFwKKyAgICBtYWNybyhwb2ludHNhdHgpIFwKKyAgICBtYWNybyhwb2ludHNhdHkp
IFwKKyAgICBtYWNybyhwb2ludHNhdHopIFwKKyAgICBtYWNybyhwcmVzZXJ2ZWFscGhhKSBcCisg
ICAgbWFjcm8ocHJlc2VydmVhc3BlY3RyYXRpbykgXAorICAgIG1hY3JvKHByaW1pdGl2ZXVuaXRz
KSBcCisgICAgbWFjcm8ocikgXAorICAgIG1hY3JvKHJhZGl1cykgXAorICAgIG1hY3JvKHJlZngp
IFwKKyAgICBtYWNybyhyZWZ5KSBcCisgICAgbWFjcm8ocmVuZGVyaW5nX2ludGVudCkgXAorICAg
IG1hY3JvKHJlcGVhdGNvdW50KSBcCisgICAgbWFjcm8ocmVwZWF0ZHVyKSBcCisgICAgbWFjcm8o
cmVxdWlyZWRleHRlbnNpb25zKSBcCisgICAgbWFjcm8ocmVxdWlyZWRmZWF0dXJlcykgXAorICAg
IG1hY3JvKHJlc3RhcnQpIFwKKyAgICBtYWNybyhyZXN1bHQpIFwKKyAgICBtYWNybyhyb3RhdGUp
IFwKKyAgICBtYWNybyhyeCkgXAorICAgIG1hY3JvKHJ5KSBcCisgICAgbWFjcm8oc2NhbGUpIFwK
KyAgICBtYWNybyhzZWVkKSBcCisgICAgbWFjcm8oc2hhcGVfcmVuZGVyaW5nKSBcCisgICAgbWFj
cm8oc2xvcGUpIFwKKyAgICBtYWNybyhzcGFjZSkgXAorICAgIG1hY3JvKHNwYWNpbmcpIFwKKyAg
ICBtYWNybyhzcGVjdWxhcmNvbnN0YW50KSBcCisgICAgbWFjcm8oc3BlY3VsYXJleHBvbmVudCkg
XAorICAgIG1hY3JvKHNwcmVhZG1ldGhvZCkgXAorICAgIG1hY3JvKHN0YXJ0b2Zmc2V0KSBcCisg
ICAgbWFjcm8oc3RkZGV2aWF0aW9uKSBcCisgICAgbWFjcm8oc3RlbWgpIFwKKyAgICBtYWNybyhz
dGVtdikgXAorICAgIG1hY3JvKHN0aXRjaHRpbGVzKSBcCisgICAgbWFjcm8oc3RvcF9jb2xvcikg
XAorICAgIG1hY3JvKHN0b3Bfb3BhY2l0eSkgXAorICAgIG1hY3JvKHN0cmlrZXRocm91Z2hfcG9z
aXRpb24pIFwKKyAgICBtYWNybyhzdHJpa2V0aHJvdWdoX3RoaWNrbmVzcykgXAorICAgIG1hY3Jv
KHN0cm9rZSkgXAorICAgIG1hY3JvKHN0cm9rZV9kYXNoYXJyYXkpIFwKKyAgICBtYWNybyhzdHJv
a2VfZGFzaG9mZnNldCkgXAorICAgIG1hY3JvKHN0cm9rZV9saW5lY2FwKSBcCisgICAgbWFjcm8o
c3Ryb2tlX2xpbmVqb2luKSBcCisgICAgbWFjcm8oc3Ryb2tlX21pdGVybGltaXQpIFwKKyAgICBt
YWNybyhzdHJva2Vfb3BhY2l0eSkgXAorICAgIG1hY3JvKHN0cm9rZV93aWR0aCkgXAorICAgIG1h
Y3JvKHN0eWxlKSBcCisgICAgbWFjcm8oc3VyZmFjZXNjYWxlKSBcCisgICAgbWFjcm8oc3lzdGVt
bGFuZ3VhZ2UpIFwKKyAgICBtYWNybyh0YWJsZXZhbHVlcykgXAorICAgIG1hY3JvKHRhcmdldCkg
XAorICAgIG1hY3JvKHRhcmdldHgpIFwKKyAgICBtYWNybyh0YXJnZXR5KSBcCisgICAgbWFjcm8o
dGV4dF9hbmNob3IpIFwKKyAgICBtYWNybyh0ZXh0X2RlY29yYXRpb24pIFwKKyAgICBtYWNybyh0
ZXh0X3JlbmRlcmluZykgXAorICAgIG1hY3JvKHRleHRsZW5ndGgpIFwKKyAgICBtYWNybyh0aXRs
ZSkgXAorICAgIG1hY3JvKHRvKSBcCisgICAgbWFjcm8odHJhbnNmb3JtKSBcCisgICAgbWFjcm8o
dHlwZSkgXAorICAgIG1hY3JvKHUxKSBcCisgICAgbWFjcm8odTIpIFwKKyAgICBtYWNybyh1bmRl
cmxpbmVfcG9zaXRpb24pIFwKKyAgICBtYWNybyh1bmRlcmxpbmVfdGhpY2tuZXNzKSBcCisgICAg
bWFjcm8odW5pY29kZSkgXAorICAgIG1hY3JvKHVuaWNvZGVfYmlkaSkgXAorICAgIG1hY3JvKHVu
aWNvZGVfcmFuZ2UpIFwKKyAgICBtYWNybyh1bml0c19wZXJfZW0pIFwKKyAgICBtYWNybyh2X2Fs
cGhhYmV0aWMpIFwKKyAgICBtYWNybyh2X2hhbmdpbmcpIFwKKyAgICBtYWNybyh2X2lkZW9ncmFw
aGljKSBcCisgICAgbWFjcm8odl9tYXRoZW1hdGljYWwpIFwKKyAgICBtYWNybyh2YWx1ZXMpIFwK
KyAgICBtYWNybyh2ZXJzaW9uKSBcCisgICAgbWFjcm8odmVydF9hZHZfeSkgXAorICAgIG1hY3Jv
KHZlcnRfb3JpZ2luX3gpIFwKKyAgICBtYWNybyh2ZXJ0X29yaWdpbl95KSBcCisgICAgbWFjcm8o
dmlld2JveCkgXAorICAgIG1hY3JvKHZpZXd0YXJnZXQpIFwKKyAgICBtYWNybyh2aXNpYmlsaXR5
KSBcCisgICAgbWFjcm8od2lkdGgpIFwKKyAgICBtYWNybyh3aWR0aHMpIFwKKyAgICBtYWNybyh3
b3JkX3NwYWNpbmcpIFwKKyAgICBtYWNybyh3cml0aW5nX21vZGUpIFwKKyAgICBtYWNybyh4KSBc
CisgICAgbWFjcm8oeF9oZWlnaHQpIFwKKyAgICBtYWNybyh4MSkgXAorICAgIG1hY3JvKHgyKSBc
CisgICAgbWFjcm8oeGNoYW5uZWxzZWxlY3RvcikgXAorICAgIG1hY3JvKHkpIFwKKyAgICBtYWNy
byh5MSkgXAorICAgIG1hY3JvKHkyKSBcCisgICAgbWFjcm8oeWNoYW5uZWxzZWxlY3RvcikgXAor
ICAgIG1hY3JvKHopIFwKKyAgICBtYWNybyh6b29tYW5kcGFuKSBcCisvLyBlbmQgb2YgbWFjcm8K
KworI2lmICFET01fU1ZHTkFNRVNfSElERV9HTE9CQUxTCisgICAgLy8gTmFtZXNwYWNlCisgICAg
ZXh0ZXJuIGNvbnN0IEF0b21pY1N0cmluZyBzdmdOYW1lc3BhY2VVUkk7CisKKyAgICAvLyBUYWdz
CisgICAgI2RlZmluZSBET01fTkFNRVNfREVGSU5FX1RBR19HTE9CQUwobmFtZSkgZXh0ZXJuIGNv
bnN0IFF1YWxpZmllZE5hbWUgbmFtZSMjVGFnOworICAgIERPTV9OQU1FU19GT1JfRUFDSF9UQUco
RE9NX05BTUVTX0RFRklORV9UQUdfR0xPQkFMKQorICAgICN1bmRlZiBET01fTkFNRVNfREVGSU5F
X1RBR19HTE9CQUwKKworICAgIC8vIEF0dHJpYnV0ZXMKKyAgICAjZGVmaW5lIERPTV9OQU1FU19E
RUZJTkVfQVRUUl9HTE9CQUwobmFtZSkgZXh0ZXJuIGNvbnN0IFF1YWxpZmllZE5hbWUgbmFtZSMj
QXR0cjsKKyAgICBET01fTkFNRVNfRk9SX0VBQ0hfQVRUUihET01fTkFNRVNfREVGSU5FX0FUVFJf
R0xPQkFMKQorICAgICN1bmRlZiBET01fTkFNRVNfREVGSU5FX0FUVFJfR0xPQkFMCisjZW5kaWYK
KworICAgIHZvaWQgaW5pdCgpOworfSB9CisKKyNlbmRpZgorCkluZGV4OiBXZWJDb3JlK1NWRy9r
ZG9tLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogV2ViQ29yZStTVkcva2RvbS5oCmRpZmYgLU4gV2Vi
Q29yZStTVkcva2RvbS5oCi0tLSBXZWJDb3JlK1NWRy9rZG9tLmgJMSBKYW4gMTk3MCAwMDowMDow
MCAtMDAwMAorKysgV2ViQ29yZStTVkcva2RvbS5oCTEgTm92IDIwMDUgMTE6MTI6MzYgLTAwMDAK
QEAgLTAsMCArMSwxMzggQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29s
YXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgorICAgICAgICAgICAgICAgICAgMjAwNCwg
MjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorCisgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2Yg
dGhlIEtERSBwcm9qZWN0CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisgICAgQm9zdG9uLCBNQSAwMjExMS0x
MzA3LCBVU0EuCisqLworCisjaWZuZGVmIEtET01fSAorI2RlZmluZSBLRE9NX0gKKworI2luY2x1
ZGUgPGtkZWJ1Zy5oPgorCisjaW5jbHVkZSA8cXN0cmluZy5oPgorCisjaW5jbHVkZSA8a2RvbS9E
T01TdHJpbmcuaD4KKworLyoqCisgKiBAc2hvcnQgR2VuZXJhbCBuYW1lc3BhY2Ugc3BlY2lmaWMg
ZGVmaW5pdGlvbnMuCisgKi8KK25hbWVzcGFjZSBLRE9NCit7CisgICAgLyoqCisgICAgICogQWxs
IERPTSBjb25zdGFudHMKKyAgICAgKi8KKyAgICBlbnVtIE5vZGVUeXBlCisgICAgeworICAgICAg
ICBFTEVNRU5UX05PREUgICAgICAgICAgICAgICAgPSAxLAorICAgICAgICBBVFRSSUJVVEVfTk9E
RSAgICAgICAgICAgICAgPSAyLAorICAgICAgICBURVhUX05PREUgICAgICAgICAgICAgICAgICAg
PSAzLAorICAgICAgICBDREFUQV9TRUNUSU9OX05PREUgICAgICAgICAgPSA0LAorICAgICAgICBF
TlRJVFlfUkVGRVJFTkNFX05PREUgICAgICAgPSA1LAorICAgICAgICBFTlRJVFlfTk9ERSAgICAg
ICAgICAgICAgICAgPSA2LAorICAgICAgICBQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREUgPSA3
LAorICAgICAgICBDT01NRU5UX05PREUgICAgICAgICAgICAgICAgPSA4LAorICAgICAgICBET0NV
TUVOVF9OT0RFICAgICAgICAgICAgICAgPSA5LAorICAgICAgICBET0NVTUVOVF9UWVBFX05PREUg
ICAgICAgICAgPSAxMCwKKyAgICAgICAgRE9DVU1FTlRfRlJBR01FTlRfTk9ERSAgICAgID0gMTEs
CisgICAgICAgIE5PVEFUSU9OX05PREUgICAgICAgICAgICAgICA9IDEyCisgICAgfTsKKworICAg
IGVudW0gRXhjZXB0aW9uQ29kZQorICAgIHsKKyAgICAgICAgSU5ERVhfU0laRV9FUlIgICAgICAg
ICAgICAgID0gMSwKKyAgICAgICAgRE9NU1RSSU5HX1NJWkVfRVJSICAgICAgICAgID0gMiwKKyAg
ICAgICAgSElFUkFSQ0hZX1JFUVVFU1RfRVJSICAgICAgID0gMywKKyAgICAgICAgV1JPTkdfRE9D
VU1FTlRfRVJSICAgICAgICAgID0gNCwKKyAgICAgICAgSU5WQUxJRF9DSEFSQUNURVJfRVJSICAg
ICAgID0gNSwKKyAgICAgICAgTk9fREFUQV9BTExPV0VEX0VSUiAgICAgICAgID0gNiwKKyAgICAg
ICAgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSID0gNywKKyAgICAgICAgTk9UX0ZPVU5EX0VS
UiAgICAgICAgICAgICAgID0gOCwKKyAgICAgICAgTk9UX1NVUFBPUlRFRF9FUlIgICAgICAgICAg
ID0gOSwKKyAgICAgICAgSU5VU0VfQVRUUklCVVRFX0VSUiAgICAgICAgID0gMTAsCisgICAgICAg
IElOVkFMSURfU1RBVEVfRVJSICAgICAgICAgICA9IDExLAorICAgICAgICBTWU5UQVhfRVJSICAg
ICAgICAgICAgICAgICAgPSAxMiwKKyAgICAgICAgSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSICAg
ID0gMTMsCisgICAgICAgIE5BTUVTUEFDRV9FUlIgICAgICAgICAgICAgICA9IDE0LAorICAgICAg
ICBJTlZBTElEX0FDQ0VTU19FUlIgICAgICAgICAgPSAxNSwKKyAgICAgICAgVkFMSURBVElPTl9F
UlIgICAgICAgICAgICAgID0gMTYsICAgLy8gRE9NMworICAgICAgICBUWVBFX01JU01BVENIX0VS
UiAgICAgICAgICAgPSAxNyAgICAvLyBET00zCisgICAgfTsKKworICAgIGVudW0gRG9jdW1lbnRQ
b3NpdGlvbgorICAgIHsKKyAgICAgICAgRE9DVU1FTlRfUE9TSVRJT05fRElTQ09OTkVDVEVEICAg
ICAgICAgICAgICA9IDB4MDEsCisgICAgICAgIERPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORyAg
ICAgICAgICAgICAgICAgPSAweDAyLAorICAgICAgICBET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJ
TkcgICAgICAgICAgICAgICAgID0gMHgwNCwKKyAgICAgICAgRE9DVU1FTlRfUE9TSVRJT05fQ09O
VEFJTlMgICAgICAgICAgICAgICAgICA9IDB4MDgsCisgICAgICAgIERPQ1VNRU5UX1BPU0lUSU9O
X0NPTlRBSU5FRF9CWSAgICAgICAgICAgICAgPSAweDEwLAorICAgICAgICBET0NVTUVOVF9QT1NJ
VElPTl9JTVBMRU1FTlRBVElPTl9TUEVDSUZJQyAgID0gMHgyMAorICAgIH07CisKKyAgICBlbnVt
IERlcml2YXRpb25NZXRob2RzCisgICAgeworICAgICAgICBERVJJVkFUSU9OX1JFU1RSSUNUSU9O
ICAgICAgICAgPSAweDAwMDAwMDAxLAorICAgICAgICBERVJJVkFUSU9OX0VYVEVOU0lPTiAgICAg
ICAgICAgPSAweDAwMDAwMDAyLAorICAgICAgICBERVJJVkFUSU9OX1VOSU9OICAgICAgICAgICAg
ICAgPSAweDAwMDAwMDA0LAorICAgICAgICBERVJJVkFUSU9OX0xJU1QgICAgICAgICAgICAgICAg
PSAweDAwMDAwMDA4CisgICAgfTsKKyAgICAKKyAgICBlbnVtCisgICAgeworICAgICAgICBGRUFU
VVJFX0NBTk9OSUNBTF9GT1JNICAgICAgICAgICAgICAgICAgPSAweDAwMDAwMSwKKyAgICAgICAg
RkVBVFVSRV9DREFUQV9TRUNUSU9OUyAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDIsCisgICAg
ICAgIEZFQVRVUkVfQ09NTUVOVFMgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMDA0LAor
ICAgICAgICBGRUFUVVJFX0RBVEFUWVBFX05PUk1BTElaQVRJT04gICAgICAgICAgPSAweDAwMDAw
OCwKKyAgICAgICAgRkVBVFVSRV9FTlRJVElFUyAgICAgICAgICAgICAgICAgICAgICAgID0gMHgw
MDAwMTAsCisgICAgICAgIEZFQVRVUkVfV0VMTF9GT1JNRUQgICAgICAgICAgICAgICAgICAgICA9
IDB4MDAwMDIwLAorICAgICAgICBGRUFUVVJFX05BTUVTUEFDRVMgICAgICAgICAgICAgICAgICAg
ICAgPSAweDAwMDA0MCwKKyAgICAgICAgRkVBVFVSRV9OQU1FU1BBQ0VfREVDTEFSQVRJT05TICAg
ICAgICAgID0gMHgwMDAwODAsCisgICAgICAgIEZFQVRVUkVfTk9STUFMSVpFX0NIQVJBQ1RFUlMg
ICAgICAgICAgICA9IDB4MDAwMTAwLAorICAgICAgICBGRUFUVVJFX1NQTElUX0NEQVRBX1NFQ1RJ
T05TICAgICAgICAgICAgPSAweDAwMDIwMCwKKyAgICAgICAgRkVBVFVSRV9WQUxJREFURSAgICAg
ICAgICAgICAgICAgICAgICAgID0gMHgwMDA0MDAsCisgICAgICAgIEZFQVRVUkVfVkFMSURBVEVf
SUZfU0NIRU1BICAgICAgICAgICAgICA9IDB4MDAwODAwLAorICAgICAgICBGRUFUVVJFX1dISVRF
U1BBQ0VfSU5fRUxFTUVOVF9DT05URU5UICAgPSAweDAwMTAwMCwKKyAgICAgICAgRkVBVFVSRV9D
SEVDS19DSEFSQUNURVJfTk9STUFMSVpBVElPTiAgID0gMHgwMDIwMDAsCisKKyAgICAgICAgLy8g
TFNQYXJzZXIgc3BlY2lmaWMKKyAgICAgICAgRkVBVFVSRV9DSEFSU0VUX09WRVJSSURFU19YTUxf
RU5DT0RJTkcgICA9IDB4MDA0MDAwLAorICAgICAgICBGRUFUVVJFX0RJU0FMTE9XX0RPQ1RZUEUg
ICAgICAgICAgICAgICAgID0gMHgwMDgwMDAsCisgICAgICAgIEZFQVRVUkVfSUdOT1JFX1VOS05P
V05fQ0QgICAgICAgICAgICAgICAgPSAweDAxMDAwMCwKKyAgICAgICAgRkVBVFVSRV9TVVBQT1JU
RURfTUVESUFfVFlQRV9PTkxZICAgICAgICA9IDB4MDIwMDAwLAorCisgICAgICAgIC8vIExTIFNl
cmlhbGl6ZXIgc3BlY2lmaWMKKyAgICAgICAgRkVBVFVSRV9ESVNDQVJEX0RFRkFVTFRfQ09OVEVO
VCAgICAgICAgICAgID0gMHgwNDAwMDAsCisgICAgICAgIEZFQVRVUkVfRk9STUFUX1BSRVRUWV9Q
UklOVCAgICAgICAgICAgICAgICA9IDB4MDgwMDAwLAorICAgICAgICBGRUFUVVJFX1hNTF9ERUNM
QVJBVElPTiAgICAgICAgICAgICAgICAgICAgPSAweDEwMDAwMAorICAgIH07CisKKyAgICAvKioK
KyAgICAgKiBBIFRpbWVTdGFtcCByZXByZXNlbnRzIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcwor
ICAgICAqLworICAgIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIERPTVRpbWVTdGFtcDsKKwor
ICAgIC8vIERlYnVnZ2luZyBoZWxwZXIKKyNpZm5kZWYgQVBQTEVfQ0hBTkdFUworICAgIGlubGlu
ZSBrbmRiZ3N0cmVhbSAmb3BlcmF0b3I8PChrbmRiZ3N0cmVhbSAmc3RyZWFtLCBjb25zdCBET01T
dHJpbmcgJnN0cmluZykgeyByZXR1cm4gKHN0cmVhbSA8PCBzdHJpbmcucXN0cmluZygpKTsgfQor
I2VuZGlmCisgICAgaW5saW5lIGtkYmdzdHJlYW0gICZvcGVyYXRvcjw8KGtkYmdzdHJlYW0gICZz
dHJlYW0sIGNvbnN0IERPTVN0cmluZyAmc3RyaW5nKSB7IHJldHVybiAoc3RyZWFtIDw8IHN0cmlu
Zy5xc3RyaW5nKCkpOyB9Cit9OworCisjZW5kaWYKKworLy8gdmltOnRzPTQ6bm9ldApJbmRleDog
V2ViQ29yZStTVkcva2RvbWNzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IFdlYkNvcmUrU1ZHL2tk
b21jc3MuaApkaWZmIC1OIFdlYkNvcmUrU1ZHL2tkb21jc3MuaAotLS0gV2ViQ29yZStTVkcva2Rv
bWNzcy5oCTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysrIFdlYkNvcmUrU1ZHL2tkb21jc3Mu
aAkxIE5vdiAyMDA1IDExOjEyOjM2IC0wMDAwCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgICAgQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3Jn
PgorICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgor
CisgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0CisKKyAgICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
ICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAg
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAz
MzAsCisgICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisqLworCisjaWZuZGVmIEtET01D
U1NfSAorI2RlZmluZSBLRE9NQ1NTX0gKKworLy8gR2VuZXJhbCBuYW1lc3BhY2Ugc3BlY2lmaWMg
ZGVmaW5pdGlvbnMKK25hbWVzcGFjZSBLRE9NCit7CisgICAgZW51bSBVbml0VHlwZXMKKyAgICB7
CisgICAgICAgIENTU19VTktOT1dOICAgICAgICAgICAgPSAwLAorICAgICAgICBDU1NfTlVNQkVS
ICAgICAgICAgICAgPSAxLAorICAgICAgICBDU1NfUEVSQ0VOVEFHRSAgICAgICAgPSAyLAorICAg
ICAgICBDU1NfRU1TICAgICAgICAgICAgICAgID0gMywKKyAgICAgICAgQ1NTX0VYUyAgICAgICAg
ICAgICAgICA9IDQsCisgICAgICAgIENTU19QWCAgICAgICAgICAgICAgICA9IDUsCisgICAgICAg
IENTU19DTSAgICAgICAgICAgICAgICA9IDYsCisgICAgICAgIENTU19NTSAgICAgICAgICAgICAg
ICA9IDcsCisgICAgICAgIENTU19JTiAgICAgICAgICAgICAgICA9IDgsCisgICAgICAgIENTU19Q
VCAgICAgICAgICAgICAgICA9IDksCisgICAgICAgIENTU19QQyAgICAgICAgICAgICAgICA9IDEw
LAorICAgICAgICBDU1NfREVHICAgICAgICAgICAgICAgID0gMTEsCisgICAgICAgIENTU19SQUQg
ICAgICAgICAgICAgICAgPSAxMiwKKyAgICAgICAgQ1NTX0dSQUQgICAgICAgICAgICA9IDEzLAor
ICAgICAgICBDU1NfTVMgICAgICAgICAgICAgICAgPSAxNCwKKyAgICAgICAgQ1NTX1MgICAgICAg
ICAgICAgICAgPSAxNSwKKyAgICAgICAgQ1NTX0haICAgICAgICAgICAgICAgID0gMTYsCisgICAg
ICAgIENTU19LSFogICAgICAgICAgICAgICAgPSAxNywKKyAgICAgICAgQ1NTX0RJTUVOU0lPTiAg
ICAgICAgPSAxOCwKKyAgICAgICAgQ1NTX1NUUklORyAgICAgICAgICAgID0gMTksCisgICAgICAg
IENTU19VUkkgICAgICAgICAgICAgICAgPSAyMCwKKyAgICAgICAgQ1NTX0lERU5UICAgICAgICAg
ICAgPSAyMSwKKyAgICAgICAgQ1NTX0FUVFIgICAgICAgICAgICA9IDIyLAorICAgICAgICBDU1Nf
Q09VTlRFUiAgICAgICAgICAgID0gMjMsCisgICAgICAgIENTU19SRUNUICAgICAgICAgICAgPSAy
NCwKKyAgICAgICAgQ1NTX1JHQkNPTE9SICAgICAgICA9IDI1LAorICAgICAgICBDU1NfSFRNTF9S
RUxBVElWRSAgICA9IDI1NSAvLyBxdWlyaworICAgIH07CisKKyAgICBlbnVtIFJ1bGVUeXBlCisg
ICAgeworICAgICAgICBVTktOT1dOX1JVTEUgICAgICAgID0gMCwKKyAgICAgICAgU1RZTEVfUlVM
RSAgICAgICAgICAgID0gMSwKKyAgICAgICAgQ0hBUlNFVF9SVUxFICAgICAgICA9IDIsCisgICAg
ICAgIElNUE9SVF9SVUxFICAgICAgICAgICAgPSAzLAorICAgICAgICBNRURJQV9SVUxFICAgICAg
ICAgICAgPSA0LAorICAgICAgICBGT05UX0ZBQ0VfUlVMRSAgICAgICAgPSA1LAorICAgICAgICBQ
QUdFX1JVTEUgICAgICAgICAgICA9IDYKKyAgICB9OworCisgICAgZW51bSBWYWx1ZVR5cGVzIC8q
IFdhcyBhbHNvIG5hbWVkIFVuaXRUeXBlcywgaW4gdGhlIGNzcy5pZGwhIE5hbWUgY2xhc2ghICov
CisgICAgeworICAgICAgICBDU1NfSU5IRVJJVCAgICAgICAgICAgID0gMCwKKyAgICAgICAgQ1NT
X1BSSU1JVElWRV9WQUxVRSAgICA9IDEsCisgICAgICAgIENTU19WQUxVRV9MSVNUICAgICAgICA9
IDIsCisgICAgICAgIENTU19DVVNUT00gICAgICAgICAgICA9IDMsCisgICAgICAgIENTU19JTklU
SUFMICAgICAgICAgICAgPSA0CisgICAgfTsKK307CisKKyNlbmRpZgorCisvLyB2aW06dHM9NDpu
b2V0CkluZGV4OiBXZWJDb3JlK1NWRy9rZG9tZXZlbnRzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
V2ViQ29yZStTVkcva2RvbWV2ZW50cy5oCmRpZmYgLU4gV2ViQ29yZStTVkcva2RvbWV2ZW50cy5o
Ci0tLSBXZWJDb3JlK1NWRy9rZG9tZXZlbnRzLmgJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMAor
KysgV2ViQ29yZStTVkcva2RvbWV2ZW50cy5oCTEgTm92IDIwMDUgMTE6MTI6MzYgLTAwMDAKQEAg
LTAsMCArMSwxMTcgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMg
WmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgorICAgICAgICAgICAgICAgICAgMjAwNCwgMjAw
NSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorCisgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl
IEtERSBwcm9qZWN0CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisK
KyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisgICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3
LCBVU0EuCisqLworCisjaWZuZGVmIEtET01FVkVOVFNfSAorI2RlZmluZSBLRE9NRVZFTlRTX0gK
KworLy8gR2VuZXJhbCBuYW1lc3BhY2Ugc3BlY2lmaWMgZGVmaW5pdGlvbnMKK25hbWVzcGFjZSBL
RE9NCit7CisgICAgZW51bSBQaGFzZVR5cGUKKyAgICB7CisgICAgICAgIENBUFRVUklOR19QSEFT
RSAgICA9IDEsCisgICAgICAgIEFUX1RBUkdFVCAgICAgICAgPSAyLAorICAgICAgICBCVUJCTElO
R19QSEFTRSAgICA9IDMKKyAgICB9OworCisgICAgLy8gS2V5TG9jYXRpb25Db2RlCisgICAgZW51
bSBLZXlMb2NhdGlvbkNvZGUKKyAgICB7CisgICAgICAgIERPTV9LRVlfTE9DQVRJT05fU1RBTkRB
UkQgICAgICA9IDB4MDAsCisgICAgICAgIERPTV9LRVlfTE9DQVRJT05fTEVGVCAgICAgICAgICA9
IDB4MDEsCisgICAgICAgIERPTV9LRVlfTE9DQVRJT05fUklHSFQgICAgICAgICA9IDB4MDIsCisg
ICAgICAgIERPTV9LRVlfTE9DQVRJT05fTlVNUEFEICAgICAgICA9IDB4MDMsCisgICAgICAgIERP
TV9LRVlfTE9DQVRJT05fVU5LTk9XTiAgICAgICA9IDB4MDQKKyAgICB9OworCisgICAgLy8gVmly
dHVhbEtleUNvZGUKKyAgICBlbnVtIEtleUNvZGVzCisgICAgeworICAgICAgICBET01fVktfVU5E
RUZJTkVEICAgICAgICAgPSAweDAsCisgICAgICAgIERPTV9WS19SSUdIVF9BTFQgICAgICAgICA9
IDB4MTIsCisgICAgICAgIERPTV9WS19MRUZUX0FMVCAgICAgICAgICAgICA9IDB4MTIsCisgICAg
ICAgIERPTV9WS19MRUZUX0NPTlRST0wgICAgICAgICA9IDB4MTEsCisgICAgICAgIERPTV9WS19S
SUdIVF9DT05UUk9MICAgICA9IDB4MTEsCisgICAgICAgIERPTV9WS19MRUZUX1NISUZUICAgICAg
ICAgPSAweDEwLAorICAgICAgICBET01fVktfUklHSFRfU0hJRlQgICAgICAgICA9IDB4MTAsCisg
ICAgICAgIERPTV9WS19NRVRBICAgICAgICAgICAgICAgICA9IDB4OUQsCisgICAgICAgIERPTV9W
S19CQUNLX1NQQUNFICAgICAgICAgPSAweDA4LAorICAgICAgICBET01fVktfQ0FQU19MT0NLICAg
ICAgICAgPSAweDE0LAorICAgICAgICBET01fVktfREVMRVRFICAgICAgICAgICAgID0gMHg3RiwK
KyAgICAgICAgRE9NX1ZLX0VORCAgICAgICAgICAgICAgICAgPSAweDIzLAorICAgICAgICBET01f
VktfRU5URVIgICAgICAgICAgICAgPSAweDBELAorICAgICAgICBET01fVktfRVNDQVBFICAgICAg
ICAgICAgID0gMHgxQiwKKyAgICAgICAgRE9NX1ZLX0hPTUUgICAgICAgICAgICAgICAgID0gMHgy
NCwKKyAgICAgICAgRE9NX1ZLX05VTV9MT0NLICAgICAgICAgICAgID0gMHg5MCwKKyAgICAgICAg
RE9NX1ZLX1BBVVNFICAgICAgICAgICAgID0gMHgxMywKKyAgICAgICAgRE9NX1ZLX1BSSU5UU0NS
RUVOICAgICAgICAgPSAweDlBLAorICAgICAgICBET01fVktfU0NST0xMX0xPQ0sgICAgICAgICA9
IDB4OTEsCisgICAgICAgIERPTV9WS19TUEFDRSAgICAgICAgICAgICA9IDB4MjAsCisgICAgICAg
IERPTV9WS19UQUIgICAgICAgICAgICAgICAgID0gMHgwOSwKKyAgICAgICAgRE9NX1ZLX0xFRlQg
ICAgICAgICAgICAgICAgID0gMHgyNSwKKyAgICAgICAgRE9NX1ZLX1JJR0hUICAgICAgICAgICAg
ID0gMHgyNywKKyAgICAgICAgRE9NX1ZLX1VQICAgICAgICAgICAgICAgICA9IDB4MjYsCisgICAg
ICAgIERPTV9WS19ET1dOICAgICAgICAgICAgICAgICA9IDB4MjgsCisgICAgICAgIERPTV9WS19Q
QUdFX0RPV04gICAgICAgICA9IDB4MjIsCisgICAgICAgIERPTV9WS19QQUdFX1VQICAgICAgICAg
ICAgID0gMHgyMSwKKyAgICAgICAgRE9NX1ZLX0YxICAgICAgICAgICAgICAgICA9IDB4NzAsCisg
ICAgICAgIERPTV9WS19GMiAgICAgICAgICAgICAgICAgPSAweDcxLAorICAgICAgICBET01fVktf
RjMgICAgICAgICAgICAgICAgID0gMHg3MiwKKyAgICAgICAgRE9NX1ZLX0Y0ICAgICAgICAgICAg
ICAgICA9IDB4NzMsCisgICAgICAgIERPTV9WS19GNSAgICAgICAgICAgICAgICAgPSAweDc0LAor
ICAgICAgICBET01fVktfRjYgICAgICAgICAgICAgICAgID0gMHg3NSwKKyAgICAgICAgRE9NX1ZL
X0Y3ICAgICAgICAgICAgICAgICA9IDB4NzYsCisgICAgICAgIERPTV9WS19GOCAgICAgICAgICAg
ICAgICAgPSAweDc3LAorICAgICAgICBET01fVktfRjkgICAgICAgICAgICAgICAgID0gMHg3OCwK
KyAgICAgICAgRE9NX1ZLX0YxMCAgICAgICAgICAgICAgICAgPSAweDc5LAorICAgICAgICBET01f
VktfRjExICAgICAgICAgICAgICAgICA9IDB4N0EsCisgICAgICAgIERPTV9WS19GMTIgICAgICAg
ICAgICAgICAgID0gMHg3QiwKKyAgICAgICAgRE9NX1ZLX0YxMyAgICAgICAgICAgICAgICAgPSAw
eEYwMDAsCisgICAgICAgIERPTV9WS19GMTQgICAgICAgICAgICAgICAgID0gMHhGMDAxLAorICAg
ICAgICBET01fVktfRjE1ICAgICAgICAgICAgICAgICA9IDB4RjAwMiwKKyAgICAgICAgRE9NX1ZL
X0YxNiAgICAgICAgICAgICAgICAgPSAweEYwMDMsCisgICAgICAgIERPTV9WS19GMTcgICAgICAg
ICAgICAgICAgID0gMHhGMDA0LAorICAgICAgICBET01fVktfRjE4ICAgICAgICAgICAgICAgICA9
IDB4RjAwNSwKKyAgICAgICAgRE9NX1ZLX0YxOSAgICAgICAgICAgICAgICAgPSAweEYwMDYsCisg
ICAgICAgIERPTV9WS19GMjAgICAgICAgICAgICAgICAgID0gMHhGMDA3LAorICAgICAgICBET01f
VktfRjIxICAgICAgICAgICAgICAgICA9IDB4RjAwOCwKKyAgICAgICAgRE9NX1ZLX0YyMiAgICAg
ICAgICAgICAgICAgPSAweEYwMDksCisgICAgICAgIERPTV9WS19GMjMgICAgICAgICAgICAgICAg
ID0gMHhGMDBBLAorICAgICAgICBET01fVktfRjI0ICAgICAgICAgICAgICAgICA9IDB4RjAwQgor
ICAgIH07CisKKyAgICBlbnVtIEF0dHJDaGFuZ2VUeXBlCisgICAgeworICAgICAgICBNT0RJRklD
QVRJT04gICAgPSAxLAorICAgICAgICBBRERJVElPTiAgICAgICAgPSAyLAorICAgICAgICBSRU1P
VkFMICAgICAgICAgICAgPSAzCisgICAgfTsKKworICAgIGVudW0gRXZlbnRFeGNlcHRpb25Db2Rl
CisgICAgeworICAgICAgICBVTlNQRUNJRklFRF9FVkVOVF9UWVBFX0VSUiA9IDAKKyAgICB9Owor
fTsKKworI2VuZGlmCisKKy8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUrU1ZHL2tkb21s
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KUkNTIGZpbGU6IFdlYkNvcmUrU1ZHL2tkb21scy5oCmRpZmYgLU4gV2Vi
Q29yZStTVkcva2RvbWxzLmgKLS0tIFdlYkNvcmUrU1ZHL2tkb21scy5oCTEgSmFuIDE5NzAgMDA6
MDA6MDAgLTAwMDAKKysrIFdlYkNvcmUrU1ZHL2tkb21scy5oCTEgTm92IDIwMDUgMTE6MTI6MzYg
LTAwMDAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUg
Tmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CisgICAgICAgICAgICAgICAgICAy
MDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisKKyAgICBUaGlzIGZpbGUgaXMgcGFy
dCBvZiB0aGUgS0RFIHByb2plY3QKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyAgICBCb3N0b24sIE1BIDAy
MTExLTEzMDcsIFVTQS4KKyovCisKKyNpZm5kZWYgS0RPTUxTX0gKKyNkZWZpbmUgS0RPTUxTX0gK
KworLy8gR2VuZXJhbCBuYW1lc3BhY2Ugc3BlY2lmaWMgZGVmaW5pdGlvbnMKK25hbWVzcGFjZSBL
RE9NCit7CisgICAgZW51bSBMU0V4Y2VwdGlvbkNvZGUKKyAgICB7CisgICAgICAgIFBBUlNFX0VS
UiAgICAgICAgPSA4MSwKKyAgICAgICAgU0VSSUFMSVpFX0VSUiAgICA9IDgyCisgICAgfTsKKwor
ICAgIC8vIEludGVnZXIgcGFyc2VyIG1vZGUgY29uc3RhbnRzLgorICAgIGVudW0gRE9NSW1wbGVt
ZW50YXRpb25MU01vZGUKKyAgICB7CisgICAgICAgIE1PREVfU1lOQ0hST05PVVMgICAgPSAxLAor
ICAgICAgICBNT0RFX0FTWU5DSFJPTk9VUyAgICA9IDIKKyAgICB9OworCisgICAgLy8gQSBzZXQg
b2YgcG9zc2libGUgYWN0aW9ucyBmb3IgdGhlIHBhcnNlV2l0aENvbnRleHQgbWV0aG9kLgorICAg
IGVudW0gQUNUSU9OX1RZUEVTCisgICAgeworICAgICAgICBBQ1RJT05fQVBQRU5EX0FTX0NISUxE
UkVOICAgID0gMSwKKyAgICAgICAgQUNUSU9OX1JFUExBQ0VfQ0hJTERSRU4gICAgICAgID0gMiwK
KyAgICAgICAgQUNUSU9OX0lOU0VSVF9CRUZPUkUgICAgICAgID0gMywKKyAgICAgICAgQUNUSU9O
X0lOU0VSVF9BRlRFUiAgICAgICAgICAgID0gNCwKKyAgICAgICAgQUNUSU9OX1JFUExBQ0UgICAg
ICAgICAgICAgICAgPSA1CisgICAgfTsKK307CisKKyNlbmRpZgorCisvLyB2aW06dHM9NDpub2V0
CkluZGV4OiBXZWJDb3JlK1NWRy9rZG9tcmFuZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBXZWJD
b3JlK1NWRy9rZG9tcmFuZ2UuaApkaWZmIC1OIFdlYkNvcmUrU1ZHL2tkb21yYW5nZS5oCi0tLSBX
ZWJDb3JlK1NWRy9rZG9tcmFuZ2UuaAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyBXZWJD
b3JlK1NWRy9rZG9tcmFuZ2UuaAkxIE5vdiAyMDA1IDExOjEyOjM2IC0wMDAwCkBAIC0wLDAgKzEs
NTAgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFu
biA8d2lsZGZveEBrZGUub3JnPgorICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVp
cyA8YnVpc0BrZGUub3JnPgorCisgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9q
ZWN0CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1w
bGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisgICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisq
LworCisjaWZuZGVmIEtET01SQU5HRV9ICisjZGVmaW5lIEtET01SQU5HRV9ICisKKy8vIEdlbmVy
YWwgbmFtZXNwYWNlIHNwZWNpZmljIGRlZmluaXRpb25zCituYW1lc3BhY2UgS0RPTQoreworICAg
IC8qKgorICAgICAqIEFuIGludGVnZXIgaW5kaWNhdGluZyB0aGUgdHlwZSBvZiBlcnJvciBnZW5l
cmF0ZWQuCisgICAgICovCisgICAgZW51bSBSYW5nZUV4Y2VwdGlvbkNvZGUKKyAgICB7CisgICAg
ICAgIEJBRF9CT1VOREFSWVBPSU5UU19FUlIgICAgICAgICA9IDEsCisgICAgICAgIElOVkFMSURf
Tk9ERV9UWVBFX0VSUiAgICAgICAgICA9IDIsCisgICAgfTsKKworICAgIGVudW0gQ29tcGFyZUhv
dworICAgIHsKKyAgICAgICAgU1RBUlRfVE9fU1RBUlQgPSAwLAorICAgICAgICBTVEFSVF9UT19F
TkQgPSAxLAorICAgICAgICBFTkRfVE9fRU5EID0gMiwKKyAgICAgICAgRU5EX1RPX1NUQVJUID0g
MworICAgIH07CisKK307CisKKyNlbmRpZgorCisvLyB2aW06dHM9NDpub2V0CkluZGV4OiBXZWJD
b3JlK1NWRy9rZG9tdHJhdmVyc2FsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogV2ViQ29yZStTVkcv
a2RvbXRyYXZlcnNhbC5oCmRpZmYgLU4gV2ViQ29yZStTVkcva2RvbXRyYXZlcnNhbC5oCi0tLSBX
ZWJDb3JlK1NWRy9rZG9tdHJhdmVyc2FsLmgJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMAorKysg
V2ViQ29yZStTVkcva2RvbXRyYXZlcnNhbC5oCTEgTm92IDIwMDUgMTE6MTI6MzYgLTAwMDAKQEAg
LTAsMCArMSw1OCBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBa
aW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CisgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1
IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisKKyAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUg
S0RFIHByb2plY3QKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKwor
ICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcs
IFVTQS4KKyovCisKKyNpZm5kZWYgS0RPTVRSQVZFUlNBTF9ICisjZGVmaW5lIEtET01UUkFWRVJT
QUxfSAorCisvLyBHZW5lcmFsIG5hbWVzcGFjZSBzcGVjaWZpYyBkZWZpbml0aW9ucworbmFtZXNw
YWNlIEtET00KK3sKKyAgICAvLyBDb25zdGFudHMgcmV0dXJuZWQgYnkgYWNjZXB0Tm9kZQorICAg
IGVudW0gQWNjZXB0Q29kZQorICAgIHsKKyAgICAgICAgRklMVEVSX0FDQ0VQVCAgICAgICAgICAg
ICAgICAgID0gMSwKKyAgICAgICAgRklMVEVSX1JFSkVDVCAgICAgICAgICAgICAgICAgID0gMiwK
KyAgICAgICAgRklMVEVSX1NLSVAgICAgICAgICAgICAgICAgICAgID0gMworICAgIH07CisKKyAg
ICAvLyBDb25zdGFudHMgZm9yIHdoYXRUb1Nob3cKKyAgICBlbnVtIFNob3dOb2RlCisgICAgewor
ICAgICAgICBTSE9XX0FMTCAgICAgICAgICAgICAgICAgICAgICAgPSAweEZGRkZGRkZGLAorICAg
ICAgICBTSE9XX0VMRU1FTlQgICAgICAgICAgICAgICAgICAgPSAweDAwMDAwMDAxLAorICAgICAg
ICBTSE9XX0FUVFJJQlVURSAgICAgICAgICAgICAgICAgPSAweDAwMDAwMDAyLAorICAgICAgICBT
SE9XX1RFWFQgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMDAwMDA0LAorICAgICAgICBTSE9X
X0NEQVRBX1NFQ1RJT04gICAgICAgICAgICAgPSAweDAwMDAwMDA4LAorICAgICAgICBTSE9XX0VO
VElUWV9SRUZFUkVOQ0UgICAgICAgICAgPSAweDAwMDAwMDEwLAorICAgICAgICBTSE9XX0VOVElU
WSAgICAgICAgICAgICAgICAgICAgPSAweDAwMDAwMDIwLAorICAgICAgICBTSE9XX1BST0NFU1NJ
TkdfSU5TVFJVQ1RJT04gICAgPSAweDAwMDAwMDQwLAorICAgICAgICBTSE9XX0NPTU1FTlQgICAg
ICAgICAgICAgICAgICAgPSAweDAwMDAwMDgwLAorICAgICAgICBTSE9XX0RPQ1VNRU5UICAgICAg
ICAgICAgICAgICAgPSAweDAwMDAwMTAwLAorICAgICAgICBTSE9XX0RPQ1VNRU5UX1RZUEUgICAg
ICAgICAgICAgPSAweDAwMDAwMjAwLAorICAgICAgICBTSE9XX0RPQ1VNRU5UX0ZSQUdNRU5UICAg
ICAgICAgPSAweDAwMDAwNDAwLAorICAgICAgICBTSE9XX05PVEFUSU9OICAgICAgICAgICAgICAg
ICAgPSAweDAwMDAwODAwCisgICAgfTsKK307CisKKyNlbmRpZgorCisvLyB2aW06dHM9NDpub2V0
CkluZGV4OiBXZWJDb3JlK1NWRy9rZG9teHBhdGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBXZWJD
b3JlK1NWRy9rZG9teHBhdGguaApkaWZmIC1OIFdlYkNvcmUrU1ZHL2tkb214cGF0aC5oCi0tLSBX
ZWJDb3JlK1NWRy9rZG9teHBhdGguaAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyBXZWJD
b3JlK1NWRy9rZG9teHBhdGguaAkxIE5vdiAyMDA1IDExOjEyOjM2IC0wMDAwCkBAIC0wLDAgKzEs
NTcgQEAKKy8qCisgKiBrZG9teHBhdGguaCAtIENvcHlyaWdodCAyMDA1IEZyZXJpY2ggUmFhYmUg
PHJhYWJlQGtkZS5vcmc+CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIAorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKKyAqIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMKKyAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCisgKiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCisgKiBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQKKyAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaWZuZGVmIEtET01Y
UEFUSF9ICisjZGVmaW5lIEtET01YUEFUSF9ICisKK25hbWVzcGFjZSBLRE9NCit7CisgICAgbmFt
ZXNwYWNlIFhQYXRoCisgICAgeworICAgICAgICBlbnVtIFhQYXRoRXhjZXB0aW9uQ29kZSB7Cisg
ICAgICAgICAgICBJTlZBTElEX0VYUFJFU1NJT05fRVJSID0gMSwKKyAgICAgICAgICAgIFRZUEVf
RVJSID0gMgorICAgICAgICB9OworCisgICAgICAgIGVudW0gWFBhdGhSZXN1bHRUeXBlIHsKKyAg
ICAgICAgICAgIEFOWV9UWVBFID0gMCwKKyAgICAgICAgICAgIE5VTUJFUl9UWVBFID0gMSwKKyAg
ICAgICAgICAgIFNUUklOR19UWVBFID0gMiwKKyAgICAgICAgICAgIEJPT0xFQU5fVFlQRSA9IDMs
CisgICAgICAgICAgICBVTk9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFID0gNCwKKyAgICAgICAg
ICAgIE9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFID0gNSwKKyAgICAgICAgICAgIFVOT1JERVJF
RF9OT0RFX1NOQVBTSE9UX1RZUEUgPSA2LAorICAgICAgICAgICAgT1JERVJFRF9OT0RFX1NOQVBT
SE9UX1RZUEUgPSA3LAorICAgICAgICAgICAgQU5ZX1VOT1JERVJFRF9OT0RFX1RZUEUgPSA4LAor
ICAgICAgICAgICAgRklSU1RfT1JERVJFRF9OT0RFX1RZUEUgPSA5CisgICAgICAgIH07CisKKyAg
ICAgICAgZW51bSBYUGF0aE5vZGVUeXBlIHsKKyAgICAgICAgICAgIFhQQVRIX05BTUVTUEFDRV9O
T0RFID0gMTMKKyAgICAgICAgfTsKKyAgICB9Cit9CisKKyNlbmRpZiAvLyBLRE9NWFBBVEhfSAor
CkluZGV4OiBXZWJDb3JlK1NWRy9rZG9teHBvaW50ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBX
ZWJDb3JlK1NWRy9rZG9teHBvaW50ZXIuaApkaWZmIC1OIFdlYkNvcmUrU1ZHL2tkb214cG9pbnRl
ci5oCi0tLSBXZWJDb3JlK1NWRy9rZG9teHBvaW50ZXIuaAkxIEphbiAxOTcwIDAwOjAwOjAwIC0w
MDAwCisrKyBXZWJDb3JlK1NWRy9rZG9teHBvaW50ZXIuaAkxIE5vdiAyMDA1IDExOjEyOjM2IC0w
MDAwCkBAIC0wLDAgKzEsMTIxIEBACisvKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtE
RSBsaWJyYXJpZXMKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRnJhbnMgRW5nbGljaCAgICAg
PGZyYW5zLmVuZ2xpY2hAdGVsaWEuY29tPgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisgKiBCb3N0b24sIE1BIDAyMTEx
LTEzMDcsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBLRE9NX2t4cG9pbnRlcl9ICisjZGVmaW5l
IEtET01fa3hwb2ludGVyX0gKKworbmFtZXNwYWNlIEtET00KK3sKKworLyoqCisgKiBAYnJpZWYg
QW4gaW1wbGVtZW50YXRpb24gb2YgWFBvaW50ZXIuCisgKgorICogXHNlY3Rpb24gY29uZm9ybWFu
Y2UgQ29uZm9ybWFuY2UKKyAqCisgKiBUaGUgZm9sbG93aW5nIGlzIHN1cHBvcnRlZDoKKyAqCisg
KiA8dWw+CisgKiAgICAgPGxpPlRoZSBYUG9pbnRlciBGcmFtZXdvcms8L2xpPgorICogICAgIDxs
aT5TaG9ydGhhbmQgcG9pbnRlcnM8L2xpPgorICogICAgIDxsaT5UaGUgeG1sbnMoKSBzY2hlbWU8
L2xpPgorICogICAgIDxsaT5UaGUgZWxlbWVudCgpIHNjaGVtZTwvbGk+CisgKiA8L3VsPgorICoK
KyAqIFRoZSBmb2xsb3dpbmcgaXMgbm90IHN1cHBvcnRlZDoKKyAqIDx1bD4KKyAqICAgICA8bGk+
VGhlIHhwb2ludGVyKCkgc2NoZW1lPC9saT4KKyAqICAgICA8bGk+QW55IDNyZCBwYXJ0eSBzY2hl
bWVzLjwvbGk+CisgKiA8L3VsPgorICoKKyAqIFxzZWN0aW9uIHVzYWdlIFVzYWdlCisgKgorICog
VXNpbmcgWFBvaW50ZXJzIGlzIGRvbmUgdmlhIHRoZSBET00gaW50ZXJmYWNlIERvY3VtZW50LCBp
bmhlcml0aW5nIGZyb20gWFBvaW50ZXJFdmFsdWF0b3IoKSwgd2hpY2gKKyAqIGNvbnRhaW5zIHRo
ZSBlbnRyeSBwb2ludHMgZm9yIFhQb2ludGVyIHVzZS4KKyAqCisgKiBAc2VlIFhQb2ludGVyRXZh
bHVhdG9yCisgKgorICogXHNlY3Rpb24gcmVhZGluZyBSZWxhdGVkIFJlYWRpbmc6CisgKgorICog
PHVsPgorICogPGxpPkFuIEVCTkYgZ3JhbW1hciBvZiB0aGUgeHBvaW50ZXIoKSBzY2hlbWU6Cisg
KiBodHRwOi8veHBvaW50ZXJsaWIubW96ZGV2Lm9yZy94cG9pbnRlckdyYW1tYXIuaHRtbDwvbGk+
CisgKgorICogPGxpPk1vemlsbGEncyBYUG9pbnRlciBMaWI6CisgKiBodHRwOi8veHBvaW50ZXJs
aWIubW96ZGV2Lm9yZy88L2xpPgorICoKKyAqIDxsaT5BbiBJREwgRm9yIE1vemlsbGEncyBYUG9p
bnRlciBpbnRlcmZhY2U6CisgKiBodHRwOi8vd3d3Lm1vemRldi5vcmcvc291cmNlL2Jyb3dzZS94
cG9pbnRlcmxpYi9zcmMvaWRsL25zSVhQb2ludGVyU2VydmljZS5pZGw/cmV2PTEuNiZjb250ZW50
LXR5cGU9dGV4dC94LWN2c3dlYi1tYXJrdXA8L2xpPgorICoKKyAqIDxsaT5MaXN0aW5ncyBvZiBz
b21lIDNyZHBhcnR5IHNjaGVtZXM6IGh0dHA6Ly9zaW1vbnN0bC5jb20vaWV0Zi8uPC9saT4KKyAq
IDwvdWw+CisgKgorICoKKyAqIEBhdXRob3IgRnJhbnMgRW5nbGljaCA8ZnJhbnMuZW5nbGljaEB0
ZWxpYS5jb20+CisgKi8KK25hbWVzcGFjZSBYUG9pbnRlcgoreworCisgICAgLyoqCisgICAgICog
QW4gaW50ZWdlciBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIGVycm9yIGdlbmVyYXRlZC4KKyAgICAg
Ki8KKyAgICBlbnVtIEV4Y2VwdGlvbkNvZGUKKyAgICB7CisgICAgICAgIC8qKgorICAgICAgICAg
KiBBbiBYUG9pbnRlciB3YXMgc3ludGFjdGljYWxseSBpbnZhbGlkLgorICAgICAgICAgKi8KKyAg
ICAgICAgSU5WQUxJRF9FWFBSRVNTSU9OX0VSUiA9IDEsCisKKyAgICAgICAgLyoqCisgICAgICAg
ICAqIFRocm93biBieSB0aGUgWFBvaW50ZXJSZXN1bHRJbXBsJ3MgZnVuY3Rpb25zIHdoZW4gcmVx
dWVzdGVkCisgICAgICAgICAqIHJlc3VsdCB0eXBlIGFuZCBjb250YWluZWQgcmVzdWx0IGRvZXNu
J3QgbWF0Yy4KKyAgICAgICAgICovCisgICAgICAgIFRZUEVfRVJSID0gMywKKworICAgICAgICAv
KioKKyAgICAgICAgICogVGhlIGNpcmN1bWZsZXgoXikgd2VyZSB1c2VkIGZvciBpbnZhbGlkIGVz
Y2FwaW5nLiBUaGlzIGlzIGEgc3Vic2V0IG9mCisgICAgICAgICAqIHN5bnRheCBlcnJvci4KKyAg
ICAgICAgICovCisgICAgICAgIElOVkFMSURfRU5DT0RJTkcgPSA0CisgICAgfTsKKworICAgIC8q
KgorICAgICAqIEFuIGludGVnZXIgaW5kaWNhdGluZyB3aGF0IHR5cGUgb2YgcmVzdWx0IHRoaXMg
aXMuCisgICAgICovCisgICAgZW51bSBSZXN1bHRUeXBlCisgICAgeworICAgICAgICAvKioKKyAg
ICAgICAgICogVGhlIHBvaW50ZXIgbWF0Y2hlZCBubyBub2Rlcy4KKyAgICAgICAgICovCisgICAg
ICAgIE5PX01BVENIID0gMSwKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIHBvaW50ZXIg
aWRlbnRpZmVkIGEgc2luZ2xlIG5vZGUuCisgICAgICAgICAqLworICAgICAgICBTSU5HTEVfTk9E
RSA9IDIKKyAgICB9OworCit9OworfTsKKworI2VuZGlmCisKKy8vIHZpbTp0cz00Om5vZXQKSW5k
ZXg6IFdlYkNvcmUrU1ZHL3htbF9rZG9tdG9rZW5pemVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9XZWJDb3JlK1NWRy94bWxfa2RvbXRva2VuaXplci5jcHAs
dgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNApkaWZmIC1wIC11IC1yMS40IFdlYkNvcmUrU1ZHL3ht
bF9rZG9tdG9rZW5pemVyLmNwcAotLS0gV2ViQ29yZStTVkcveG1sX2tkb210b2tlbml6ZXIuY3Bw
CTI3IE9jdCAyMDA1IDA4OjA3OjU4IC0wMDAwCTEuNAorKysgV2ViQ29yZStTVkcveG1sX2tkb210
b2tlbml6ZXIuY3BwCTEgTm92IDIwMDUgMTE6MTI6MzYgLTAwMDAKQEAgLTI1LDYgKzI1LDcgQEAK
IAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgPHFzdHJpbmcuaD4KKyNpbmNsdWRlIDx6
bGliLmg+CiAKICNpbmNsdWRlICJsb2FkZXJfY2xpZW50LmgiCiAjaW5jbHVkZSAia2h0bWx2aWV3
LmgiCkBAIC0zNywxMSArMzgsOCBAQAogI2luY2x1ZGUgInhtbF9rZG9tdG9rZW5pemVyLmgiCiAK
ICNpbmNsdWRlICJrZG9tL2NvcmUvRE9NQ29uZmlndXJhdGlvbkltcGwuaCIKLSNpbmNsdWRlICJr
ZG9tL2JhY2tlbmRzL2xpYnhtbC9MaWJYTUxQYXJzZXIuaCIKICNpbmNsdWRlICJrZG9tL2NvcmUv
RG9jdW1lbnRJbXBsLmgiCi0KICNpbmNsdWRlICJrc3ZnMi9zdmcvU1ZHRG9jdW1lbnRJbXBsLmgi
Ci0jaW5jbHVkZSAia3N2ZzIvbWlzYy9LU1ZHRG9jdW1lbnRCdWlsZGVyLmgiCiAKIAogbmFtZXNw
YWNlIERPTSB7CkluZGV4OiBXZWJDb3JlK1NWRy94bWxfa2RvbXRva2VuaXplci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IFdlYkNvcmUrU1ZHL3htbF9rZG9tdG9rZW5pemVyLmgKZGlmZiAtTiBXZWJD
b3JlK1NWRy94bWxfa2RvbXRva2VuaXplci5oCi0tLSBXZWJDb3JlK1NWRy94bWxfa2RvbXRva2Vu
aXplci5oCTIzIFNlcCAyMDA1IDAzOjI4OjI2IC0wMDAwCTEuMQorKysgV2ViQ29yZStTVkcveG1s
X2tkb210b2tlbml6ZXIuaAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCkBAIC0xLDQxICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgX1hNTF9LRE9NVG9rZW5pemVyX2hfCi0j
ZGVmaW5lIF9YTUxfS0RPTVRva2VuaXplcl9oXwotCi1jbGFzcyBLSFRNTFZpZXc7Ci0KLW5hbWVz
cGFjZSBET00gewotICAgIGNsYXNzIERvY3VtZW50UHRyOwotfQotCi1uYW1lc3BhY2Uga2h0bWwg
ewotICAgIGNsYXNzIFRva2VuaXplcjsKLSAgICAKLSAgICBUb2tlbml6ZXIgKm5ld0tET01Ub2tl
bml6ZXIoRE9NOjpEb2N1bWVudFB0ciAqLCBLSFRNTFZpZXcgKiA9IDApOwotfTsgLy8gbmFtZXNw
YWNlCi0KLSNlbmRpZgpJbmRleDogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaix2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40MApkaWZmIC1wIC11IC1yMS40
MCBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKLS0tIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkyOCBPY3QgMjAwNSAwMDo0OTo1MCAtMDAwMAkxLjQwCisrKyBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJMSBOb3YgMjAwNSAxMToxMjo1NCAtMDAwMApA
QCAtNjEwLDI2OSArNjEwLDg1IEBACiAJCTkzRjE5QjE2MDgyNDVFNTkwMDFFOUFCQyAvKiBKYXZh
U2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGODIxNjI5OTAyOUY0RkI1MDEwMDAxMzEgLyogSmF2YVNjcmlwdENvcmUu
ZnJhbWV3b3JrICovOyB9OwogCQk5M0YxOUIxNzA4MjQ1RTU5MDAxRTlBQkMgLyogbGliaWN1Y29y
ZS5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzRjFEMzFBMDU1OENDNUMwMDgyMUJDMCAvKiBsaWJpY3Vjb3JlLmR5bGliICovOyB9OwogCQk5
M0YxOUIxODA4MjQ1RTU5MDAxRTlBQkMgLyogbGlieHNsdC5keWxpYiBpbiBGcmFtZXdvcmtzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MDYzMzA3MDczMUE3NzIwMERCMUZE
MSAvKiBsaWJ4c2x0LmR5bGliICovOyB9OwotCQlBODAyNDM0RTA4QUM4NUVBMDAxQjI5REEgLyog
RG9jdW1lbnRDU1NJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBODAyNDM0QzA4QUM4NUVBMDAxQjI5REEgLyogRG9jdW1lbnRDU1NJbXBsLmggKi87
IH07Ci0JCUE4MDI0MzRGMDhBQzg1RUEwMDFCMjlEQSAvKiBEb2N1bWVudENTU0ltcGwuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwMjQzNEQwOEFD
ODVFQTAwMUIyOURBIC8qIERvY3VtZW50Q1NTSW1wbC5jcHAgKi87IH07Ci0JCUE4MDI0MzUyMDhB
Qzg2NTEwMDFCMjlEQSAvKiBET01PYmplY3RJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MDI0MzUwMDhBQzg2NTEwMDFCMjlEQSAvKiBET01P
YmplY3RJbXBsLmNwcCAqLzsgfTsKLQkJQTgwMjQzNTMwOEFDODY1MTAwMUIyOURBIC8qIERPTU9i
amVjdEltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4MDI0MzUxMDhBQzg2NTEwMDFCMjlEQSAvKiBET01PYmplY3RJbXBsLmggKi87IH07CiAJCUE4
MTBFMzk1MDhBNDE2MEYwMDMzM0Q5OCAvKiBLQ2FudmFzVHJlZURlYnVnLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEwRTM5MzA4QTQxNjBGMDAzMzNE
OTggLyogS0NhbnZhc1RyZWVEZWJ1Zy5oICovOyB9OwogCQlBODEwRTM5NjA4QTQxNjBGMDAzMzNE
OTggLyogS0NhbnZhc1RyZWVEZWJ1Zy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBODEwRTM5NDA4QTQxNjBGMDAzMzNEOTggLyogS0NhbnZhc1RyZWVE
ZWJ1Zy5jcHAgKi87IH07Ci0JCUE4MTIyRTcyMDhENTY0QjQwMDg0NEZBMyAvKiBHZXRTVkdEb2N1
bWVudFdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4MTIyQ0ZBMDhENTY0QjEwMDg0NEZBMyAvKiBHZXRTVkdEb2N1bWVudFdyYXBwZXIuaCAq
LzsgfTsKLQkJQTgxMjJFNzQwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0FFbGVtZW50V3JhcHBlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkNG
QzA4RDU2NEIxMDA4NDRGQTMgLyogU1ZHQUVsZW1lbnRXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQTgx
MjJFNzUwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0FFbGVtZW50V3JhcHBlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJDRkQwOEQ1NjRCMTAwODQ0
RkEzIC8qIFNWR0FFbGVtZW50V3JhcHBlci5oICovOyB9OwotCQlBODEyMkU3NjA4RDU2NEI0MDA4
NDRGQTMgLyogU1ZHQW5nbGVXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyQ0ZFMDhENTY0QjEwMDg0NEZBMyAvKiBTVkdBbmdsZVdy
YXBwZXIuY3BwICovOyB9OwotCQlBODEyMkU3NzA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHQW5nbGVX
cmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
ODEyMkNGRjA4RDU2NEIxMDA4NDRGQTMgLyogU1ZHQW5nbGVXcmFwcGVyLmggKi87IH07Ci0JCUE4
MTIyRTc4MDhENTY0QjQwMDg0NEZBMyAvKiBTVkdBbmltYXRlQ29sb3JFbGVtZW50V3JhcHBlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQw
MDA4RDU2NEIxMDA4NDRGQTMgLyogU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudFdyYXBwZXIuY3BwICov
OyB9OwotCQlBODEyMkU3OTA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHQW5pbWF0ZUNvbG9yRWxlbWVu
dFdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4MTIyRDAxMDhENTY0QjIwMDg0NEZBMyAvKiBTVkdBbmltYXRlQ29sb3JFbGVtZW50V3JhcHBl
ci5oICovOyB9OwotCQlBODEyMkU3QTA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHQW5pbWF0ZWRBbmds
ZVdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTgxMjJEMDIwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0FuaW1hdGVkQW5nbGVXcmFwcGVyLmNw
cCAqLzsgfTsKIAkJQTgxMjJFN0IwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0FuaW1hdGVkQW5nbGVX
cmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
ODEyMkQwMzA4RDU2NEIyMDA4NDRGQTMgLyogU1ZHQW5pbWF0ZWRBbmdsZVdyYXBwZXIuaCAqLzsg
fTsKLQkJQTgxMjJFN0MwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0FuaW1hdGVkQm9vbGVhbldyYXBw
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgx
MjJEMDQwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0FuaW1hdGVkQm9vbGVhbldyYXBwZXIuY3BwICov
OyB9OwogCQlBODEyMkU3RDA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHQW5pbWF0ZWRCb29sZWFuV3Jh
cHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgx
MjJEMDUwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0FuaW1hdGVkQm9vbGVhbldyYXBwZXIuaCAqLzsg
fTsKLQkJQTgxMjJFN0UwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0FuaW1hdGVkRW51bWVyYXRpb25X
cmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4MTIyRDA2MDhENTY0QjIwMDg0NEZBMyAvKiBTVkdBbmltYXRlZEVudW1lcmF0aW9uV3JhcHBl
ci5jcHAgKi87IH07Ci0JCUE4MTIyRTdGMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdBbmltYXRlZEVu
dW1lcmF0aW9uV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTgxMjJEMDcwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0FuaW1hdGVkRW51bWVyYXRp
b25XcmFwcGVyLmggKi87IH07Ci0JCUE4MTIyRTgwMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdBbmlt
YXRlZEludGVnZXJXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4MTIyRDA4MDhENTY0QjIwMDg0NEZBMyAvKiBTVkdBbmltYXRlZEludGVn
ZXJXcmFwcGVyLmNwcCAqLzsgfTsKIAkJQTgxMjJFODEwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0Fu
aW1hdGVkSW50ZWdlcldyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4MTIyRDA5MDhENTY0QjIwMDg0NEZBMyAvKiBTVkdBbmltYXRlZEludGVn
ZXJXcmFwcGVyLmggKi87IH07Ci0JCUE4MTIyRTgyMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdBbmlt
YXRlZExlbmd0aExpc3RXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4MTIyRDBBMDhENTY0QjIwMDg0NEZBMyAvKiBTVkdBbmltYXRlZExl
bmd0aExpc3RXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQTgxMjJFODMwOEQ1NjRCNDAwODQ0RkEzIC8q
IFNWR0FuaW1hdGVkTGVuZ3RoTGlzdFdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDBCMDhENTY0QjIwMDg0NEZBMyAvKiBTVkdBbmlt
YXRlZExlbmd0aExpc3RXcmFwcGVyLmggKi87IH07Ci0JCUE4MTIyRTg0MDhENTY0QjQwMDg0NEZB
MyAvKiBTVkdBbmltYXRlZExlbmd0aFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEMEMwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0Fu
aW1hdGVkTGVuZ3RoV3JhcHBlci5jcHAgKi87IH07Ci0JCUE4MTIyRTg1MDhENTY0QjQwMDg0NEZB
MyAvKiBTVkdBbmltYXRlZExlbmd0aFdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDBEMDhENTY0QjIwMDg0NEZBMyAvKiBTVkdBbmlt
YXRlZExlbmd0aFdyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJFODYwOEQ1NjRCNDAwODQ0RkEzIC8q
IFNWR0FuaW1hdGVkTnVtYmVyTGlzdFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEMEUwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0Fu
aW1hdGVkTnVtYmVyTGlzdFdyYXBwZXIuY3BwICovOyB9OwotCQlBODEyMkU4NzA4RDU2NEI0MDA4
NDRGQTMgLyogU1ZHQW5pbWF0ZWROdW1iZXJMaXN0V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEMEYwOEQ1NjRCMjAwODQ0RkEzIC8q
IFNWR0FuaW1hdGVkTnVtYmVyTGlzdFdyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJFODgwOEQ1NjRC
NDAwODQ0RkEzIC8qIFNWR0FuaW1hdGVkTnVtYmVyV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQxMDA4RDU2NEIyMDA4NDRGQTMg
LyogU1ZHQW5pbWF0ZWROdW1iZXJXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQTgxMjJFODkwOEQ1NjRC
NDAwODQ0RkEzIC8qIFNWR0FuaW1hdGVkTnVtYmVyV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEMTEwOEQ1NjRCMjAwODQ0RkEzIC8q
IFNWR0FuaW1hdGVkTnVtYmVyV3JhcHBlci5oICovOyB9OwotCQlBODEyMkU4QTA4RDU2NEI0MDA4
NDRGQTMgLyogU1ZHQW5pbWF0ZWRQYXRoRGF0YVdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEMTIwOEQ1NjRCMjAwODQ0RkEzIC8q
IFNWR0FuaW1hdGVkUGF0aERhdGFXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQTgxMjJFOEIwOEQ1NjRC
NDAwODQ0RkEzIC8qIFNWR0FuaW1hdGVkUGF0aERhdGFXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQxMzA4RDU2NEIyMDA4NDRGQTMg
LyogU1ZHQW5pbWF0ZWRQYXRoRGF0YVdyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJFOEMwOEQ1NjRC
NDAwODQ0RkEzIC8qIFNWR0FuaW1hdGVkUG9pbnRzV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQxNDA4RDU2NEIyMDA4NDRGQTMg
LyogU1ZHQW5pbWF0ZWRQb2ludHNXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQTgxMjJFOEQwOEQ1NjRC
NDAwODQ0RkEzIC8qIFNWR0FuaW1hdGVkUG9pbnRzV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEMTUwOEQ1NjRCMjAwODQ0RkEzIC8q
IFNWR0FuaW1hdGVkUG9pbnRzV3JhcHBlci5oICovOyB9OwotCQlBODEyMkU4RTA4RDU2NEI0MDA4
NDRGQTMgLyogU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvV3JhcHBlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQxNjA4RDU2NEIy
MDA4NDRGQTMgLyogU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvV3JhcHBlci5jcHAgKi87
IH07Ci0JCUE4MTIyRThGMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdBbmltYXRlZFByZXNlcnZlQXNw
ZWN0UmF0aW9XcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBODEyMkQxNzA4RDU2NEIyMDA4NDRGQTMgLyogU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFz
cGVjdFJhdGlvV3JhcHBlci5oICovOyB9OwotCQlBODEyMkU5MDA4RDU2NEI0MDA4NDRGQTMgLyog
U1ZHQW5pbWF0ZWRSZWN0V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQxODA4RDU2NEIyMDA4NDRGQTMgLyogU1ZHQW5pbWF0ZWRS
ZWN0V3JhcHBlci5jcHAgKi87IH07Ci0JCUE4MTIyRTkxMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdB
bmltYXRlZFJlY3RXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODEyMkQxOTA4RDU2NEIyMDA4NDRGQTMgLyogU1ZHQW5pbWF0ZWRSZWN0V3Jh
cHBlci5oICovOyB9OwotCQlBODEyMkU5MjA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHQW5pbWF0ZWRT
dHJpbmdXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4MTIyRDFBMDhENTY0QjIwMDg0NEZBMyAvKiBTVkdBbmltYXRlZFN0cmluZ1dyYXBw
ZXIuY3BwICovOyB9OwotCQlBODEyMkU5MzA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHQW5pbWF0ZWRT
dHJpbmdXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBODEyMkQxQjA4RDU2NEIyMDA4NDRGQTMgLyogU1ZHQW5pbWF0ZWRTdHJpbmdXcmFwcGVy
LmggKi87IH07Ci0JCUE4MTIyRTk0MDhENTY0QjQwMDg0NEZBMyAvKiBTVkdBbmltYXRlZFRyYW5z
Zm9ybUxpc3RXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4MTIyRDFDMDhENTY0QjIwMDg0NEZBMyAvKiBTVkdBbmltYXRlZFRyYW5zZm9y
bUxpc3RXcmFwcGVyLmNwcCAqLzsgfTsKIAkJQTgxMjJFOTUwOEQ1NjRCNDAwODQ0RkEzIC8qIFNW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdFdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDFEMDhENTY0QjIwMDg0NEZBMyAvKiBTVkdBbmlt
YXRlZFRyYW5zZm9ybUxpc3RXcmFwcGVyLmggKi87IH07Ci0JCUE4MTIyRTk2MDhENTY0QjQwMDg0
NEZBMyAvKiBTVkdBbmltYXRlRWxlbWVudFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEMUUwOEQ1NjRCMjAwODQ0RkEzIC8qIFNW
R0FuaW1hdGVFbGVtZW50V3JhcHBlci5jcHAgKi87IH07Ci0JCUE4MTIyRTk3MDhENTY0QjQwMDg0
NEZBMyAvKiBTVkdBbmltYXRlRWxlbWVudFdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDFGMDhENTY0QjIwMDg0NEZBMyAvKiBTVkdB
bmltYXRlRWxlbWVudFdyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJFOTgwOEQ1NjRCNDAwODQ0RkEz
IC8qIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQyMDA4RDU2NEIyMDA4NDRGQTMg
LyogU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnRXcmFwcGVyLmNwcCAqLzsgfTsKIAkJQTgxMjJF
OTkwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50V3JhcHBlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEMjEw
OEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50V3JhcHBlci5oICov
OyB9OwotCQlBODEyMkU5QTA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHQW5pbWF0aW9uRWxlbWVudFdy
YXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTgxMjJEMjIwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0FuaW1hdGlvbkVsZW1lbnRXcmFwcGVyLmNw
cCAqLzsgfTsKIAkJQTgxMjJFOUIwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0FuaW1hdGlvbkVsZW1l
bnRXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBODEyMkQyMzA4RDU2NEIyMDA4NDRGQTMgLyogU1ZHQW5pbWF0aW9uRWxlbWVudFdyYXBwZXIu
aCAqLzsgfTsKLQkJQTgxMjJFOUMwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0NpcmNsZUVsZW1lbnRX
cmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4MTIyRDI0MDhENTY0QjIwMDg0NEZBMyAvKiBTVkdDaXJjbGVFbGVtZW50V3JhcHBlci5jcHAg
Ki87IH07Ci0JCUE4MTIyRTlEMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdDaXJjbGVFbGVtZW50V3Jh
cHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgx
MjJEMjUwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0NpcmNsZUVsZW1lbnRXcmFwcGVyLmggKi87IH07
Ci0JCUE4MTIyRTlFMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdDbGlwUGF0aEVsZW1lbnRXcmFwcGVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIy
RDI2MDhENTY0QjIwMDg0NEZBMyAvKiBTVkdDbGlwUGF0aEVsZW1lbnRXcmFwcGVyLmNwcCAqLzsg
fTsKIAkJQTgxMjJFOUYwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0NsaXBQYXRoRWxlbWVudFdyYXBw
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIy
RDI3MDhENTY0QjIwMDg0NEZBMyAvKiBTVkdDbGlwUGF0aEVsZW1lbnRXcmFwcGVyLmggKi87IH07
Ci0JCUE4MTIyRUEwMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdDb2xvcldyYXBwZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEMjgwOEQ1NjRC
MjAwODQ0RkEzIC8qIFNWR0NvbG9yV3JhcHBlci5jcHAgKi87IH07Ci0JCUE4MTIyRUExMDhENTY0
QjQwMDg0NEZBMyAvKiBTVkdDb2xvcldyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDI5MDhENTY0QjIwMDg0NEZBMyAvKiBTVkdDb2xv
cldyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJFQTIwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0NvbXBv
bmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQyQTA4RDU2NEIyMDA4NDRGQTMgLyog
U1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnRXcmFwcGVyLmNwcCAqLzsgfTsKIAkJ
QTgxMjJFQTMwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25F
bGVtZW50V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTgxMjJEMkIwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVu
Y3Rpb25FbGVtZW50V3JhcHBlci5oICovOyB9OwotCQlBODEyMkVBNDA4RDU2NEI0MDA4NDRGQTMg
LyogU1ZHQ3Vyc29yRWxlbWVudFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEMkMwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0N1cnNv
ckVsZW1lbnRXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQTgxMjJFQTUwOEQ1NjRCNDAwODQ0RkEzIC8q
IFNWR0N1cnNvckVsZW1lbnRXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQyRDA4RDU2NEIyMDA4NDRGQTMgLyogU1ZHQ3Vyc29yRWxl
bWVudFdyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJFQTYwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0Rl
ZnNFbGVtZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODEyMkQyRTA4RDU2NEIyMDA4NDRGQTMgLyogU1ZHRGVmc0VsZW1lbnRXcmFw
cGVyLmNwcCAqLzsgfTsKIAkJQTgxMjJFQTcwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0RlZnNFbGVt
ZW50V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTgxMjJEMkYwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0RlZnNFbGVtZW50V3JhcHBlci5oICov
OyB9OwotCQlBODEyMkVBODA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHRGVzY0VsZW1lbnRXcmFwcGVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIy
RDMwMDhENTY0QjIwMDg0NEZBMyAvKiBTVkdEZXNjRWxlbWVudFdyYXBwZXIuY3BwICovOyB9Owog
CQlBODEyMkVBOTA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHRGVzY0VsZW1lbnRXcmFwcGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQzMTA4RDU2
NEIyMDA4NDRGQTMgLyogU1ZHRGVzY0VsZW1lbnRXcmFwcGVyLmggKi87IH07Ci0JCUE4MTIyRUFB
MDhENTY0QjQwMDg0NEZBMyAvKiBTVkdEb2N1bWVudFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEMzIwOEQ1NjRCMjAwODQ0RkEz
IC8qIFNWR0RvY3VtZW50V3JhcHBlci5jcHAgKi87IH07Ci0JCUE4MTIyRUFCMDhENTY0QjQwMDg0
NEZBMyAvKiBTVkdEb2N1bWVudFdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDMzMDhENTY0QjIwMDg0NEZBMyAvKiBTVkdEb2N1bWVu
dFdyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJFQUMwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0RPTUlt
cGxlbWVudGF0aW9uV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBODEyMkQzNDA4RDU2NEIyMDA4NDRGQTMgLyogU1ZHRE9NSW1wbGVtZW50
YXRpb25XcmFwcGVyLmNwcCAqLzsgfTsKLQkJQTgxMjJFQUQwOEQ1NjRCNDAwODQ0RkEzIC8qIFNW
R0RPTUltcGxlbWVudGF0aW9uV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEMzUwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0RPTUltcGxl
bWVudGF0aW9uV3JhcHBlci5oICovOyB9OwotCQlBODEyMkVBRTA4RDU2NEI0MDA4NDRGQTMgLyog
U1ZHRWxlbWVudEluc3RhbmNlTGlzdFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEMzYwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0Vs
ZW1lbnRJbnN0YW5jZUxpc3RXcmFwcGVyLmNwcCAqLzsgfTsKIAkJQTgxMjJFQUYwOEQ1NjRCNDAw
ODQ0RkEzIC8qIFNWR0VsZW1lbnRJbnN0YW5jZUxpc3RXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQzNzA4RDU2NEIyMDA4NDRGQTMg
LyogU1ZHRWxlbWVudEluc3RhbmNlTGlzdFdyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJFQjAwOEQ1
NjRCNDAwODQ0RkEzIC8qIFNWR0VsZW1lbnRJbnN0YW5jZVdyYXBwZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEMzgwOEQ1NjRCMjAwODQ0
RkEzIC8qIFNWR0VsZW1lbnRJbnN0YW5jZVdyYXBwZXIuY3BwICovOyB9OwotCQlBODEyMkVCMTA4
RDU2NEI0MDA4NDRGQTMgLyogU1ZHRWxlbWVudEluc3RhbmNlV3JhcHBlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEMzkwOEQ1NjRCMjAwODQ0
RkEzIC8qIFNWR0VsZW1lbnRJbnN0YW5jZVdyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJFQjIwOEQ1
NjRCNDAwODQ0RkEzIC8qIFNWR0VsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDNBMDhENTY0QjIwMDg0NEZBMyAvKiBT
VkdFbGVtZW50V3JhcHBlci5jcHAgKi87IH07Ci0JCUE4MTIyRUIzMDhENTY0QjQwMDg0NEZBMyAv
KiBTVkdFbGVtZW50V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTgxMjJEM0IwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0VsZW1lbnRXcmFwcGVy
LmggKi87IH07Ci0JCUE4MTIyRUI0MDhENTY0QjQwMDg0NEZBMyAvKiBTVkdFbGxpcHNlRWxlbWVu
dFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTgxMjJEM0MwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0VsbGlwc2VFbGVtZW50V3JhcHBlci5j
cHAgKi87IH07CiAJCUE4MTIyRUI1MDhENTY0QjQwMDg0NEZBMyAvKiBTVkdFbGxpcHNlRWxlbWVu
dFdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4MTIyRDNEMDhENTY0QjIwMDg0NEZBMyAvKiBTVkdFbGxpcHNlRWxlbWVudFdyYXBwZXIuaCAq
LzsgfTsKLQkJQTgxMjJFQjYwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0V2ZW50V3JhcHBlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQzRTA4
RDU2NEIyMDA4NDRGQTMgLyogU1ZHRXZlbnRXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQTgxMjJFQjcw
OEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0V2ZW50V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEM0YwOEQ1NjRCMjAwODQ0RkEzIC8qIFNW
R0V2ZW50V3JhcHBlci5oICovOyB9OwotCQlBODEyMkVCODA4RDU2NEI0MDA4NDRGQTMgLyogU1ZH
RXhjZXB0aW9uV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODEyMkQ0MDA4RDU2NEIyMDA4NDRGQTMgLyogU1ZHRXhjZXB0aW9uV3JhcHBl
ci5jcHAgKi87IH07Ci0JCUE4MTIyRUI5MDhENTY0QjQwMDg0NEZBMyAvKiBTVkdFeGNlcHRpb25X
cmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
ODEyMkQ0MTA4RDU2NEIyMDA4NDRGQTMgLyogU1ZHRXhjZXB0aW9uV3JhcHBlci5oICovOyB9Owot
CQlBODEyMkVCQTA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTgxMjJENDIwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWRXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQTgxMjJFQkIwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQ0MzA4RDU2NEIyMDA4NDRGQTMgLyogU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFdyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJFQkMwOEQ1NjRC
NDAwODQ0RkEzIC8qIFNWR0ZFQmxlbmRFbGVtZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQ0NDA4RDU2NEIyMDA4NDRGQTMg
LyogU1ZHRkVCbGVuZEVsZW1lbnRXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQTgxMjJFQkQwOEQ1NjRC
NDAwODQ0RkEzIC8qIFNWR0ZFQmxlbmRFbGVtZW50V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJENDUwOEQ1NjRCMjAwODQ0RkEzIC8q
IFNWR0ZFQmxlbmRFbGVtZW50V3JhcHBlci5oICovOyB9OwotCQlBODEyMkVCRTA4RDU2NEI0MDA4
NDRGQTMgLyogU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDQ2MDhENTY0QjIwMDg0NEZB
MyAvKiBTVkdGRUNvbG9yTWF0cml4RWxlbWVudFdyYXBwZXIuY3BwICovOyB9OwotCQlBODEyMkVC
RjA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnRXcmFwcGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQ0NzA4RDU2
NEIyMDA4NDRGQTMgLyogU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnRXcmFwcGVyLmggKi87IH07Ci0J
CUE4MTIyRUMwMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVu
dFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTgxMjJENDgwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVt
ZW50V3JhcHBlci5jcHAgKi87IH07Ci0JCUE4MTIyRUMxMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdG
RUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudFdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDQ5MDhENTY0QjIwMDg0NEZBMyAvKiBTVkdG
RUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudFdyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJFQzIwOEQ1
NjRCNDAwODQ0RkEzIC8qIFNWR0ZFQ29tcG9zaXRlRWxlbWVudFdyYXBwZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJENEEwOEQ1NjRCMjAw
ODQ0RkEzIC8qIFNWR0ZFQ29tcG9zaXRlRWxlbWVudFdyYXBwZXIuY3BwICovOyB9OwotCQlBODEy
MkVDMzA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHRkVDb21wb3NpdGVFbGVtZW50V3JhcHBlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJENEIwOEQ1
NjRCMjAwODQ0RkEzIC8qIFNWR0ZFQ29tcG9zaXRlRWxlbWVudFdyYXBwZXIuaCAqLzsgfTsKLQkJ
QTgxMjJFQzQwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0ZFRmxvb2RFbGVtZW50V3JhcHBlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQ0QzA4
RDU2NEIyMDA4NDRGQTMgLyogU1ZHRkVGbG9vZEVsZW1lbnRXcmFwcGVyLmNwcCAqLzsgfTsKLQkJ
QTgxMjJFQzUwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0ZFRmxvb2RFbGVtZW50V3JhcHBlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJENEQwOEQ1
NjRCMjAwODQ0RkEzIC8qIFNWR0ZFRmxvb2RFbGVtZW50V3JhcHBlci5oICovOyB9OwotCQlBODEy
MkVDNjA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHRkVGdW5jQUVsZW1lbnRXcmFwcGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDRFMDhENTY0
QjIwMDg0NEZBMyAvKiBTVkdGRUZ1bmNBRWxlbWVudFdyYXBwZXIuY3BwICovOyB9OwotCQlBODEy
MkVDNzA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHRkVGdW5jQUVsZW1lbnRXcmFwcGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQ0RjA4RDU2NEIy
MDA4NDRGQTMgLyogU1ZHRkVGdW5jQUVsZW1lbnRXcmFwcGVyLmggKi87IH07Ci0JCUE4MTIyRUM4
MDhENTY0QjQwMDg0NEZBMyAvKiBTVkdGRUZ1bmNCRWxlbWVudFdyYXBwZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJENTAwOEQ1NjRCMjAw
ODQ0RkEzIC8qIFNWR0ZFRnVuY0JFbGVtZW50V3JhcHBlci5jcHAgKi87IH07Ci0JCUE4MTIyRUM5
MDhENTY0QjQwMDg0NEZBMyAvKiBTVkdGRUZ1bmNCRWxlbWVudFdyYXBwZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDUxMDhENTY0QjIwMDg0
NEZBMyAvKiBTVkdGRUZ1bmNCRWxlbWVudFdyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJFQ0EwOEQ1
NjRCNDAwODQ0RkEzIC8qIFNWR0ZFRnVuY0dFbGVtZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQ1MjA4RDU2NEIyMDA4NDRG
QTMgLyogU1ZHRkVGdW5jR0VsZW1lbnRXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQTgxMjJFQ0IwOEQ1
NjRCNDAwODQ0RkEzIC8qIFNWR0ZFRnVuY0dFbGVtZW50V3JhcHBlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJENTMwOEQ1NjRCMjAwODQ0RkEz
IC8qIFNWR0ZFRnVuY0dFbGVtZW50V3JhcHBlci5oICovOyB9OwotCQlBODEyMkVDQzA4RDU2NEI0
MDA4NDRGQTMgLyogU1ZHRkVGdW5jUkVsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDU0MDhENTY0QjIwMDg0NEZBMyAv
KiBTVkdGRUZ1bmNSRWxlbWVudFdyYXBwZXIuY3BwICovOyB9OwotCQlBODEyMkVDRDA4RDU2NEI0
MDA4NDRGQTMgLyogU1ZHRkVGdW5jUkVsZW1lbnRXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQ1NTA4RDU2NEIyMDA4NDRGQTMgLyog
U1ZHRkVGdW5jUkVsZW1lbnRXcmFwcGVyLmggKi87IH07Ci0JCUE4MTIyRUNFMDhENTY0QjQwMDg0
NEZBMyAvKiBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDU2MDhENTY0QjIwMDg0NEZB
MyAvKiBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnRXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQTgxMjJF
Q0YwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudFdyYXBwZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDU3MDhE
NTY0QjIwMDg0NEZBMyAvKiBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnRXcmFwcGVyLmggKi87IH07
Ci0JCUE4MTIyRUQwMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdGRUltYWdlRWxlbWVudFdyYXBwZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJE
NTgwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0ZFSW1hZ2VFbGVtZW50V3JhcHBlci5jcHAgKi87IH07
Ci0JCUE4MTIyRUQxMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdGRUltYWdlRWxlbWVudFdyYXBwZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDU5
MDhENTY0QjIwMDg0NEZBMyAvKiBTVkdGRUltYWdlRWxlbWVudFdyYXBwZXIuaCAqLzsgfTsKLQkJ
QTgxMjJFRDIwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0ZFTWVyZ2VFbGVtZW50V3JhcHBlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQ1QTA4
RDU2NEIyMDA4NDRGQTMgLyogU1ZHRkVNZXJnZUVsZW1lbnRXcmFwcGVyLmNwcCAqLzsgfTsKLQkJ
QTgxMjJFRDMwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0ZFTWVyZ2VFbGVtZW50V3JhcHBlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJENUIwOEQ1
NjRCMjAwODQ0RkEzIC8qIFNWR0ZFTWVyZ2VFbGVtZW50V3JhcHBlci5oICovOyB9OwotCQlBODEy
MkVENDA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHRkVNZXJnZU5vZGVFbGVtZW50V3JhcHBlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQ1QzA4
RDU2NEIyMDA4NDRGQTMgLyogU1ZHRkVNZXJnZU5vZGVFbGVtZW50V3JhcHBlci5jcHAgKi87IH07
Ci0JCUE4MTIyRUQ1MDhENTY0QjQwMDg0NEZBMyAvKiBTVkdGRU1lcmdlTm9kZUVsZW1lbnRXcmFw
cGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEy
MkQ1RDA4RDU2NEIyMDA4NDRGQTMgLyogU1ZHRkVNZXJnZU5vZGVFbGVtZW50V3JhcHBlci5oICov
OyB9OwotCQlBODEyMkVENjA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHRkVPZmZzZXRFbGVtZW50V3Jh
cHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
ODEyMkQ1RTA4RDU2NEIyMDA4NDRGQTMgLyogU1ZHRkVPZmZzZXRFbGVtZW50V3JhcHBlci5jcHAg
Ki87IH07Ci0JCUE4MTIyRUQ3MDhENTY0QjQwMDg0NEZBMyAvKiBTVkdGRU9mZnNldEVsZW1lbnRX
cmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
ODEyMkQ1RjA4RDU2NEIyMDA4NDRGQTMgLyogU1ZHRkVPZmZzZXRFbGVtZW50V3JhcHBlci5oICov
OyB9OwotCQlBODEyMkVEODA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHRkVUaWxlRWxlbWVudFdyYXBw
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgx
MjJENjAwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0ZFVGlsZUVsZW1lbnRXcmFwcGVyLmNwcCAqLzsg
fTsKLQkJQTgxMjJFRDkwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0ZFVGlsZUVsZW1lbnRXcmFwcGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQ2
MTA4RDU2NEIyMDA4NDRGQTMgLyogU1ZHRkVUaWxlRWxlbWVudFdyYXBwZXIuaCAqLzsgfTsKLQkJ
QTgxMjJFREEwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnRXcmFwcGVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIy
RDYyMDhENTY0QjIwMDg0NEZBMyAvKiBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50V3JhcHBlci5jcHAg
Ki87IH07Ci0JCUE4MTIyRURCMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdGRVR1cmJ1bGVuY2VFbGVt
ZW50V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTgxMjJENjMwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnRXcmFw
cGVyLmggKi87IH07Ci0JCUE4MTIyRURDMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdGaWx0ZXJFbGVt
ZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBODEyMkQ2NDA4RDU2NEIyMDA4NDRGQTMgLyogU1ZHRmlsdGVyRWxlbWVudFdyYXBwZXIu
Y3BwICovOyB9OwotCQlBODEyMkVERDA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHRmlsdGVyRWxlbWVu
dFdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4MTIyRDY1MDhENTY0QjIwMDg0NEZBMyAvKiBTVkdGaWx0ZXJFbGVtZW50V3JhcHBlci5oICov
OyB9OwotCQlBODEyMkVERTA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHRmlsdGVyUHJpbWl0aXZlU3Rh
bmRhcmRBdHRyaWJ1dGVzV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQ2NjA4RDU2NEIyMDA4NDRGQTMgLyogU1ZHRmlsdGVyUHJp
bWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzV3JhcHBlci5jcHAgKi87IH07Ci0JCUE4MTIyRURGMDhE
NTY0QjQwMDg0NEZBMyAvKiBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXNXcmFw
cGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEy
MkQ2NzA4RDU2NEIyMDA4NDRGQTMgLyogU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzV3JhcHBlci5oICovOyB9OwotCQlBODEyMkVFMDA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHRml0
VG9WaWV3Qm94V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODEyMkQ2ODA4RDU2NEIyMDA4NDRGQTMgLyogU1ZHRml0VG9WaWV3Qm94V3Jh
cHBlci5jcHAgKi87IH07Ci0JCUE4MTIyRUUxMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdGaXRUb1Zp
ZXdCb3hXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBODEyMkQ2OTA4RDU2NEIyMDA4NDRGQTMgLyogU1ZHRml0VG9WaWV3Qm94V3JhcHBlci5o
ICovOyB9OwotCQlBODEyMkVFMjA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHR0VsZW1lbnRXcmFwcGVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIy
RDZBMDhENTY0QjIwMDg0NEZBMyAvKiBTVkdHRWxlbWVudFdyYXBwZXIuY3BwICovOyB9OwotCQlB
ODEyMkVFMzA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHR0VsZW1lbnRXcmFwcGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQ2QjA4RDU2NEIyMDA4
NDRGQTMgLyogU1ZHR0VsZW1lbnRXcmFwcGVyLmggKi87IH07Ci0JCUE4MTIyRUU0MDhENTY0QjQw
MDg0NEZBMyAvKiBTVkdHcmFkaWVudEVsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDZDMDhENTY0QjIwMDg0NEZBMyAv
KiBTVkdHcmFkaWVudEVsZW1lbnRXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQTgxMjJFRTUwOEQ1NjRC
NDAwODQ0RkEzIC8qIFNWR0dyYWRpZW50RWxlbWVudFdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDZEMDhENTY0QjIwMDg0NEZBMyAv
KiBTVkdHcmFkaWVudEVsZW1lbnRXcmFwcGVyLmggKi87IH07Ci0JCUE4MTIyRUU3MDhENTY0QjQw
MDg0NEZBMyAvKiBTVkdJQ0NDb2xvcldyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDZGMDhENTY0QjIwMDg0NEZBMyAvKiBTVkdJQ0ND
b2xvcldyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJFRTgwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0lt
YWdlRWxlbWVudFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTgxMjJENzAwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0ltYWdlRWxlbWVudFdy
YXBwZXIuY3BwICovOyB9OwotCQlBODEyMkVFOTA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHSW1hZ2VF
bGVtZW50V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTgxMjJENzEwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0ltYWdlRWxlbWVudFdyYXBwZXIu
aCAqLzsgfTsKLQkJQTgxMjJFRUEwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0xhbmdTcGFjZVdyYXBw
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgx
MjJENzIwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0xhbmdTcGFjZVdyYXBwZXIuY3BwICovOyB9Owot
CQlBODEyMkVFQjA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHTGFuZ1NwYWNlV3JhcHBlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJENzMwOEQ1NjRC
MjAwODQ0RkEzIC8qIFNWR0xhbmdTcGFjZVdyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJFRUMwOEQ1
NjRCNDAwODQ0RkEzIC8qIFNWR0xlbmd0aExpc3RXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDc0MDhENTY0QjIwMDg0NEZBMyAv
KiBTVkdMZW5ndGhMaXN0V3JhcHBlci5jcHAgKi87IH07Ci0JCUE4MTIyRUVEMDhENTY0QjQwMDg0
NEZBMyAvKiBTVkdMZW5ndGhMaXN0V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJENzUwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0xlbmd0
aExpc3RXcmFwcGVyLmggKi87IH07Ci0JCUE4MTIyRUVFMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdM
ZW5ndGhXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4MTIyRDc2MDhENTY0QjIwMDg0NEZBMyAvKiBTVkdMZW5ndGhXcmFwcGVyLmNwcCAq
LzsgfTsKLQkJQTgxMjJFRUYwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0xlbmd0aFdyYXBwZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDc3MDhE
NTY0QjIwMDg0NEZBMyAvKiBTVkdMZW5ndGhXcmFwcGVyLmggKi87IH07Ci0JCUE4MTIyRUYwMDhE
NTY0QjQwMDg0NEZBMyAvKiBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnRXcmFwcGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDc4MDhENTY0
QjIwMDg0NEZBMyAvKiBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnRXcmFwcGVyLmNwcCAqLzsgfTsK
LQkJQTgxMjJFRjEwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudFdy
YXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
MTIyRDc5MDhENTY0QjIwMDg0NEZBMyAvKiBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnRXcmFwcGVy
LmggKi87IH07Ci0JCUE4MTIyRUYyMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdMaW5lRWxlbWVudFdy
YXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTgxMjJEN0EwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR0xpbmVFbGVtZW50V3JhcHBlci5jcHAgKi87
IH07Ci0JCUE4MTIyRUYzMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdMaW5lRWxlbWVudFdyYXBwZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDdC
MDhENTY0QjIwMDg0NEZBMyAvKiBTVkdMaW5lRWxlbWVudFdyYXBwZXIuaCAqLzsgfTsKLQkJQTgx
MjJFRjQwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR0xvY2F0YWJsZVdyYXBwZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEN0MwOEQ1NjRCMjAw
ODQ0RkEzIC8qIFNWR0xvY2F0YWJsZVdyYXBwZXIuY3BwICovOyB9OwotCQlBODEyMkVGNTA4RDU2
NEI1MDA4NDRGQTMgLyogU1ZHTG9jYXRhYmxlV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEN0QwOEQ1NjRCMjAwODQ0RkEzIC8qIFNW
R0xvY2F0YWJsZVdyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJFRjYwOEQ1NjRCNTAwODQ0RkEzIC8q
IFNWR01hcmtlckVsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDdFMDhENTY0QjIwMDg0NEZBMyAvKiBTVkdNYXJrZXJF
bGVtZW50V3JhcHBlci5jcHAgKi87IH07Ci0JCUE4MTIyRUY3MDhENTY0QjUwMDg0NEZBMyAvKiBT
VkdNYXJrZXJFbGVtZW50V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTgxMjJEN0YwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR01hcmtlckVsZW1l
bnRXcmFwcGVyLmggKi87IH07Ci0JCUE4MTIyRUY4MDhENTY0QjUwMDg0NEZBMyAvKiBTVkdNYXRy
aXhXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4MTIyRDgwMDhENTY0QjIwMDg0NEZBMyAvKiBTVkdNYXRyaXhXcmFwcGVyLmNwcCAqLzsg
fTsKLQkJQTgxMjJFRjkwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR01hdHJpeFdyYXBwZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDgxMDhENTY0
QjIwMDg0NEZBMyAvKiBTVkdNYXRyaXhXcmFwcGVyLmggKi87IH07Ci0JCUE4MTIyRUZBMDhENTY0
QjUwMDg0NEZBMyAvKiBTVkdOdW1iZXJMaXN0V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQ4MjA4RDU2NEIyMDA4NDRGQTMgLyog
U1ZHTnVtYmVyTGlzdFdyYXBwZXIuY3BwICovOyB9OwotCQlBODEyMkVGQjA4RDU2NEI1MDA4NDRG
QTMgLyogU1ZHTnVtYmVyTGlzdFdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDgzMDhENTY0QjIwMDg0NEZBMyAvKiBTVkdOdW1iZXJM
aXN0V3JhcHBlci5oICovOyB9OwotCQlBODEyMkVGQzA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHTnVt
YmVyV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBODEyMkQ4NDA4RDU2NEIyMDA4NDRGQTMgLyogU1ZHTnVtYmVyV3JhcHBlci5jcHAgKi87
IH07Ci0JCUE4MTIyRUZEMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdOdW1iZXJXcmFwcGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQ4NTA4RDU2
NEIyMDA4NDRGQTMgLyogU1ZHTnVtYmVyV3JhcHBlci5oICovOyB9OwotCQlBODEyMkVGRTA4RDU2
NEI1MDA4NDRGQTMgLyogU1ZHUGFpbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDg2MDhENTY0QjIwMDg0NEZBMyAvKiBTVkdQ
YWludFdyYXBwZXIuY3BwICovOyB9OwotCQlBODEyMkVGRjA4RDU2NEI1MDA4NDRGQTMgLyogU1ZH
UGFpbnRXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBODEyMkQ4NzA4RDU2NEIyMDA4NDRGQTMgLyogU1ZHUGFpbnRXcmFwcGVyLmggKi87IH07
Ci0JCUE4MTIyRjAwMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdQYXRoRWxlbWVudFdyYXBwZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEODgw
OEQ1NjRCMjAwODQ0RkEzIC8qIFNWR1BhdGhFbGVtZW50V3JhcHBlci5jcHAgKi87IH07CiAJCUE4
MTIyRjAxMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdQYXRoRWxlbWVudFdyYXBwZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDg5MDhENTY0QjIw
MDg0NEZBMyAvKiBTVkdQYXRoRWxlbWVudFdyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJGMDIwOEQ1
NjRCNTAwODQ0RkEzIC8qIFNWR1BhdGhTZWdBcmNBYnNXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDhBMDhENTY0QjIwMDg0NEZB
MyAvKiBTVkdQYXRoU2VnQXJjQWJzV3JhcHBlci5jcHAgKi87IH07CiAJCUE4MTIyRjAzMDhENTY0
QjUwMDg0NEZBMyAvKiBTVkdQYXRoU2VnQXJjQWJzV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEOEIwOEQ1NjRCMjAwODQ0RkEzIC8q
IFNWR1BhdGhTZWdBcmNBYnNXcmFwcGVyLmggKi87IH07Ci0JCUE4MTIyRjA0MDhENTY0QjUwMDg0
NEZBMyAvKiBTVkdQYXRoU2VnQXJjUmVsV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQ4QzA4RDU2NEIyMDA4NDRGQTMgLyogU1ZH
UGF0aFNlZ0FyY1JlbFdyYXBwZXIuY3BwICovOyB9OwogCQlBODEyMkYwNTA4RDU2NEI1MDA4NDRG
QTMgLyogU1ZHUGF0aFNlZ0FyY1JlbFdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDhEMDhENTY0QjIwMDg0NEZBMyAvKiBTVkdQYXRo
U2VnQXJjUmVsV3JhcHBlci5oICovOyB9OwotCQlBODEyMkYwNjA4RDU2NEI1MDA4NDRGQTMgLyog
U1ZHUGF0aFNlZ0Nsb3NlUGF0aFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEOEUwOEQ1NjRCMjAwODQ0RkEzIC8qIFNWR1BhdGhT
ZWdDbG9zZVBhdGhXcmFwcGVyLmNwcCAqLzsgfTsKIAkJQTgxMjJGMDcwOEQ1NjRCNTAwODQ0RkEz
IC8qIFNWR1BhdGhTZWdDbG9zZVBhdGhXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQ4RjA4RDU2NEIyMDA4NDRGQTMgLyogU1ZHUGF0
aFNlZ0Nsb3NlUGF0aFdyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJGMDgwOEQ1NjRCNTAwODQ0RkEz
IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnNXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDkwMDhENTY0QjIwMDg0NEZBMyAv
KiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzV3JhcHBlci5jcHAgKi87IH07CiAJCUE4MTIyRjA5
MDhENTY0QjUwMDg0NEZBMyAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzV3JhcHBlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEOTEwOEQ1
NjRCMjAwODQ0RkEzIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnNXcmFwcGVyLmggKi87IH07
Ci0JCUE4MTIyRjBBMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVs
V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBODEyMkQ5MjA4RDU2NEIyMDA4NDRGQTMgLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbFdy
YXBwZXIuY3BwICovOyB9OwogCQlBODEyMkYwQjA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHUGF0aFNl
Z0N1cnZldG9DdWJpY1JlbFdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4MTIyRDkzMDhENTY0QjIwMDg0NEZBMyAvKiBTVkdQYXRoU2VnQ3Vy
dmV0b0N1YmljUmVsV3JhcHBlci5oICovOyB9OwotCQlBODEyMkYwQzA4RDU2NEI1MDA4NDRGQTMg
LyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFic1dyYXBwZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEOTQwOEQ1NjRCMjAwODQ0
RkEzIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnNXcmFwcGVyLmNwcCAqLzsgfTsK
IAkJQTgxMjJGMEQwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9v
dGhBYnNXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBODEyMkQ5NTA4RDU2NEIzMDA4NDRGQTMgLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Nt
b290aEFic1dyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJGMEUwOEQ1NjRCNTAwODQ0RkEzIC8qIFNW
R1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWxXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDk2MDhENTY0QjMwMDg0NEZBMyAv
KiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsV3JhcHBlci5jcHAgKi87IH07CiAJCUE4
MTIyRjBGMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVs
V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTgxMjJEOTcwOEQ1NjRCMzAwODQ0RkEzIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhS
ZWxXcmFwcGVyLmggKi87IH07Ci0JCUE4MTIyRjEwMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdQYXRo
U2VnQ3VydmV0b1F1YWRyYXRpY0Fic1dyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEOTgwOEQ1NjRCMzAwODQ0RkEzIC8qIFNWR1Bh
dGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzV3JhcHBlci5jcHAgKi87IH07CiAJCUE4MTIyRjExMDhE
NTY0QjUwMDg0NEZBMyAvKiBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Fic1dyYXBwZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDk5MDhE
NTY0QjMwMDg0NEZBMyAvKiBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Fic1dyYXBwZXIuaCAq
LzsgfTsKLQkJQTgxMjJGMTIwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVh
ZHJhdGljUmVsV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODEyMkQ5QTA4RDU2NEIzMDA4NDRGQTMgLyogU1ZHUGF0aFNlZ0N1cnZldG9R
dWFkcmF0aWNSZWxXcmFwcGVyLmNwcCAqLzsgfTsKIAkJQTgxMjJGMTMwOEQ1NjRCNTAwODQ0RkEz
IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsV3JhcHBlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEOUIwOEQ1NjRCMzAwODQ0RkEz
IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsV3JhcHBlci5oICovOyB9OwotCQlBODEy
MkYxNDA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhB
YnNXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4MTIyRDlDMDhENTY0QjMwMDg0NEZBMyAvKiBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRp
Y1Ntb290aEFic1dyYXBwZXIuY3BwICovOyB9OwogCQlBODEyMkYxNTA4RDU2NEI1MDA4NDRGQTMg
LyogU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnNXcmFwcGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkQ5RDA4RDU2NEIzMDA4
NDRGQTMgLyogU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnNXcmFwcGVyLmggKi87
IH07Ci0JCUE4MTIyRjE2MDhENTY0QjUwMDg0NEZBMyAvKiBTVkdQYXRoU2VnQ3VydmV0b1F1YWRy
YXRpY1Ntb290aFJlbFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTgxMjJEOUUwOEQ1NjRCMzAwODQ0RkEzIC8qIFNWR1BhdGhTZWdDdXJ2
ZXRvUXVhZHJhdGljU21vb3RoUmVsV3JhcHBlci5jcHAgKi87IH07CiAJCUE4MTIyRjE3MDhENTY0
QjUwMDg0NEZBMyAvKiBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbFdyYXBwZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRDlG
MDhENTY0QjMwMDg0NEZBMyAvKiBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbFdy
YXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJGMTgwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1BhdGhTZWdM
aW5ldG9BYnNXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4MTIyREEwMDhENTY0QjMwMDg0NEZBMyAvKiBTVkdQYXRoU2VnTGluZXRvQWJz
V3JhcHBlci5jcHAgKi87IH07CiAJCUE4MTIyRjE5MDhENTY0QjUwMDg0NEZBMyAvKiBTVkdQYXRo
U2VnTGluZXRvQWJzV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTgxMjJEQTEwOEQ1NjRCMzAwODQ0RkEzIC8qIFNWR1BhdGhTZWdMaW5ldG9B
YnNXcmFwcGVyLmggKi87IH07Ci0JCUE4MTIyRjFBMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdQYXRo
U2VnTGluZXRvSG9yaXpvbnRhbEFic1dyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEQTIwOEQ1NjRCMzAwODQ0RkEzIC8qIFNWR1Bh
dGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzV3JhcHBlci5jcHAgKi87IH07CiAJCUE4MTIyRjFCMDhE
NTY0QjUwMDg0NEZBMyAvKiBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFic1dyYXBwZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyREEzMDhE
NTY0QjMwMDg0NEZBMyAvKiBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFic1dyYXBwZXIuaCAq
LzsgfTsKLQkJQTgxMjJGMUMwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1BhdGhTZWdMaW5ldG9Ib3Jp
em9udGFsUmVsV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODEyMkRBNDA4RDU2NEIzMDA4NDRGQTMgLyogU1ZHUGF0aFNlZ0xpbmV0b0hv
cml6b250YWxSZWxXcmFwcGVyLmNwcCAqLzsgfTsKIAkJQTgxMjJGMUQwOEQ1NjRCNTAwODQ0RkEz
IC8qIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsV3JhcHBlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEQTUwOEQ1NjRCMzAwODQ0RkEz
IC8qIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsV3JhcHBlci5oICovOyB9OwotCQlBODEy
MkYxRTA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHUGF0aFNlZ0xpbmV0b1JlbFdyYXBwZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEQTYwOEQ1
NjRCMzAwODQ0RkEzIC8qIFNWR1BhdGhTZWdMaW5ldG9SZWxXcmFwcGVyLmNwcCAqLzsgfTsKIAkJ
QTgxMjJGMUYwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1BhdGhTZWdMaW5ldG9SZWxXcmFwcGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkRBNzA4
RDU2NEIzMDA4NDRGQTMgLyogU1ZHUGF0aFNlZ0xpbmV0b1JlbFdyYXBwZXIuaCAqLzsgfTsKLQkJ
QTgxMjJGMjAwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFic1dy
YXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTgxMjJEQTgwOEQ1NjRCMzAwODQ0RkEzIC8qIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFic1dy
YXBwZXIuY3BwICovOyB9OwogCQlBODEyMkYyMTA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHUGF0aFNl
Z0xpbmV0b1ZlcnRpY2FsQWJzV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEQTkwOEQ1NjRCMzAwODQ0RkEzIC8qIFNWR1BhdGhTZWdM
aW5ldG9WZXJ0aWNhbEFic1dyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJGMjIwOEQ1NjRCNTAwODQ0
RkEzIC8qIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbFdyYXBwZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEQUEwOEQ1NjRCMzAwODQ0
RkEzIC8qIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbFdyYXBwZXIuY3BwICovOyB9OwogCQlB
ODEyMkYyMzA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsV3Jh
cHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgx
MjJEQUIwOEQ1NjRCMzAwODQ0RkEzIC8qIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbFdyYXBw
ZXIuaCAqLzsgfTsKLQkJQTgxMjJGMjQwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1BhdGhTZWdMaXN0
V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBODEyMkRBQzA4RDU2NEIzMDA4NDRGQTMgLyogU1ZHUGF0aFNlZ0xpc3RXcmFwcGVyLmNwcCAq
LzsgfTsKIAkJQTgxMjJGMjUwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1BhdGhTZWdMaXN0V3JhcHBl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJE
QUQwOEQ1NjRCMzAwODQ0RkEzIC8qIFNWR1BhdGhTZWdMaXN0V3JhcHBlci5oICovOyB9OwotCQlB
ODEyMkYyNjA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHUGF0aFNlZ01vdmV0b0Fic1dyYXBwZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEQUUw
OEQ1NjRCMzAwODQ0RkEzIC8qIFNWR1BhdGhTZWdNb3ZldG9BYnNXcmFwcGVyLmNwcCAqLzsgfTsK
IAkJQTgxMjJGMjcwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1BhdGhTZWdNb3ZldG9BYnNXcmFwcGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkRB
RjA4RDU2NEIzMDA4NDRGQTMgLyogU1ZHUGF0aFNlZ01vdmV0b0Fic1dyYXBwZXIuaCAqLzsgfTsK
LQkJQTgxMjJGMjgwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1BhdGhTZWdNb3ZldG9SZWxXcmFwcGVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIy
REIwMDhENTY0QjMwMDg0NEZBMyAvKiBTVkdQYXRoU2VnTW92ZXRvUmVsV3JhcHBlci5jcHAgKi87
IH07CiAJCUE4MTIyRjI5MDhENTY0QjUwMDg0NEZBMyAvKiBTVkdQYXRoU2VnTW92ZXRvUmVsV3Jh
cHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgx
MjJEQjEwOEQ1NjRCMzAwODQ0RkEzIC8qIFNWR1BhdGhTZWdNb3ZldG9SZWxXcmFwcGVyLmggKi87
IH07Ci0JCUE4MTIyRjJBMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdQYXRoU2VnV3JhcHBlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkRCMjA4
RDU2NEIzMDA4NDRGQTMgLyogU1ZHUGF0aFNlZ1dyYXBwZXIuY3BwICovOyB9OwogCQlBODEyMkYy
QjA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHUGF0aFNlZ1dyYXBwZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyREIzMDhENTY0QjMwMDg0NEZBMyAv
KiBTVkdQYXRoU2VnV3JhcHBlci5oICovOyB9OwotCQlBODEyMkYyQzA4RDU2NEI1MDA4NDRGQTMg
LyogU1ZHUGF0dGVybkVsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyREI0MDhENTY0QjMwMDg0NEZBMyAvKiBTVkdQYXR0
ZXJuRWxlbWVudFdyYXBwZXIuY3BwICovOyB9OwogCQlBODEyMkYyRDA4RDU2NEI1MDA4NDRGQTMg
LyogU1ZHUGF0dGVybkVsZW1lbnRXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkRCNTA4RDU2NEIzMDA4NDRGQTMgLyogU1ZHUGF0dGVy
bkVsZW1lbnRXcmFwcGVyLmggKi87IH07Ci0JCUE4MTIyRjJFMDhENTY0QjUwMDg0NEZBMyAvKiBT
VkdQb2ludExpc3RXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4MTIyREI2MDhENTY0QjMwMDg0NEZBMyAvKiBTVkdQb2ludExpc3RXcmFw
cGVyLmNwcCAqLzsgfTsKIAkJQTgxMjJGMkYwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1BvaW50TGlz
dFdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4MTIyREI3MDhENTY0QjMwMDg0NEZBMyAvKiBTVkdQb2ludExpc3RXcmFwcGVyLmggKi87IH07
Ci0JCUE4MTIyRjMwMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdQb2ludFdyYXBwZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEQjgwOEQ1NjRC
MzAwODQ0RkEzIC8qIFNWR1BvaW50V3JhcHBlci5jcHAgKi87IH07CiAJCUE4MTIyRjMxMDhENTY0
QjUwMDg0NEZBMyAvKiBTVkdQb2ludFdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyREI5MDhENTY0QjMwMDg0NEZBMyAvKiBTVkdQb2lu
dFdyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJGMzIwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1BvbHln
b25FbGVtZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODEyMkRCQTA4RDU2NEIzMDA4NDRGQTMgLyogU1ZHUG9seWdvbkVsZW1lbnRX
cmFwcGVyLmNwcCAqLzsgfTsKIAkJQTgxMjJGMzMwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1BvbHln
b25FbGVtZW50V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTgxMjJEQkIwOEQ1NjRCMzAwODQ0RkEzIC8qIFNWR1BvbHlnb25FbGVtZW50V3Jh
cHBlci5oICovOyB9OwotCQlBODEyMkYzNDA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHUG9seWxpbmVF
bGVtZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBODEyMkRCQzA4RDU2NEIzMDA4NDRGQTMgLyogU1ZHUG9seWxpbmVFbGVtZW50V3Jh
cHBlci5jcHAgKi87IH07CiAJCUE4MTIyRjM1MDhENTY0QjUwMDg0NEZBMyAvKiBTVkdQb2x5bGlu
ZUVsZW1lbnRXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBODEyMkRCRDA4RDU2NEIzMDA4NDRGQTMgLyogU1ZHUG9seWxpbmVFbGVtZW50V3Jh
cHBlci5oICovOyB9OwotCQlBODEyMkYzNjA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHUHJlc2VydmVB
c3BlY3RSYXRpb1dyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTgxMjJEQkUwOEQ1NjRCMzAwODQ0RkEzIC8qIFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW9XcmFwcGVyLmNwcCAqLzsgfTsKIAkJQTgxMjJGMzcwOEQ1NjRCNTAwODQ0RkEzIC8qIFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW9XcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkRCRjA4RDU2NEIzMDA4NDRGQTMgLyogU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpb1dyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJGMzgwOEQ1NjRCNTAwODQ0RkEz
IC8qIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEQzAwOEQ1NjRCMzAwODQ0RkEzIC8q
IFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudFdyYXBwZXIuY3BwICovOyB9OwogCQlBODEyMkYzOTA4
RDU2NEI1MDA4NDRGQTMgLyogU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50V3JhcHBlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEQzEwOEQ1NjRC
MzAwODQ0RkEzIC8qIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudFdyYXBwZXIuaCAqLzsgfTsKLQkJ
QTgxMjJGM0EwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1JlY3RFbGVtZW50V3JhcHBlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkRDMjA4RDU2
NEIzMDA4NDRGQTMgLyogU1ZHUmVjdEVsZW1lbnRXcmFwcGVyLmNwcCAqLzsgfTsKIAkJQTgxMjJG
M0IwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1JlY3RFbGVtZW50V3JhcHBlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEQzMwOEQ1NjRCMzAwODQ0
RkEzIC8qIFNWR1JlY3RFbGVtZW50V3JhcHBlci5oICovOyB9OwotCQlBODEyMkYzQzA4RDU2NEI1
MDA4NDRGQTMgLyogU1ZHUmVjdFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEQzQwOEQ1NjRCMzAwODQ0RkEzIC8qIFNWR1JlY3RX
cmFwcGVyLmNwcCAqLzsgfTsKIAkJQTgxMjJGM0QwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1JlY3RX
cmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
ODEyMkRDNTA4RDU2NEIzMDA4NDRGQTMgLyogU1ZHUmVjdFdyYXBwZXIuaCAqLzsgfTsKIAkJQTgx
MjJGM0YwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1JlbmRlcmluZ0ludGVudFdyYXBwZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyREM3MDhENTY0
QjMwMDg0NEZBMyAvKiBTVkdSZW5kZXJpbmdJbnRlbnRXcmFwcGVyLmggKi87IH07Ci0JCUE4MTIy
RjQwMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdTY3JpcHRFbGVtZW50V3JhcHBlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkRDODA4RDU2NEIz
MDA4NDRGQTMgLyogU1ZHU2NyaXB0RWxlbWVudFdyYXBwZXIuY3BwICovOyB9OwogCQlBODEyMkY0
MTA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHU2NyaXB0RWxlbWVudFdyYXBwZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyREM5MDhENTY0QjMwMDg0
NEZBMyAvKiBTVkdTY3JpcHRFbGVtZW50V3JhcHBlci5oICovOyB9OwotCQlBODEyMkY0MjA4RDU2
NEI1MDA4NDRGQTMgLyogU1ZHU2V0RWxlbWVudFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEQ0EwOEQ1NjRCMzAwODQ0RkEzIC8q
IFNWR1NldEVsZW1lbnRXcmFwcGVyLmNwcCAqLzsgfTsKIAkJQTgxMjJGNDMwOEQ1NjRCNTAwODQ0
RkEzIC8qIFNWR1NldEVsZW1lbnRXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkRDQjA4RDU2NEIzMDA4NDRGQTMgLyogU1ZHU2V0RWxl
bWVudFdyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJGNDQwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1N0
b3BFbGVtZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODEyMkRDQzA4RDU2NEIzMDA4NDRGQTMgLyogU1ZHU3RvcEVsZW1lbnRXcmFw
cGVyLmNwcCAqLzsgfTsKIAkJQTgxMjJGNDUwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1N0b3BFbGVt
ZW50V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTgxMjJEQ0QwOEQ1NjRCMzAwODQ0RkEzIC8qIFNWR1N0b3BFbGVtZW50V3JhcHBlci5oICov
OyB9OwotCQlBODEyMkY0NjA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHU3RyaW5nTGlzdFdyYXBwZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJE
Q0UwOEQ1NjRCMzAwODQ0RkEzIC8qIFNWR1N0cmluZ0xpc3RXcmFwcGVyLmNwcCAqLzsgfTsKIAkJ
QTgxMjJGNDcwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1N0cmluZ0xpc3RXcmFwcGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkRDRjA4RDU2NEIz
MDA4NDRGQTMgLyogU1ZHU3RyaW5nTGlzdFdyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJGNDgwOEQ1
NjRCNTAwODQ0RkEzIC8qIFNWR1N0eWxhYmxlV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkREMDA4RDU2NEIzMDA4NDRGQTMgLyog
U1ZHU3R5bGFibGVXcmFwcGVyLmNwcCAqLzsgfTsKIAkJQTgxMjJGNDkwOEQ1NjRCNTAwODQ0RkEz
IC8qIFNWR1N0eWxhYmxlV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTgxMjJERDEwOEQ1NjRCMzAwODQ0RkEzIC8qIFNWR1N0eWxhYmxlV3Jh
cHBlci5oICovOyB9OwotCQlBODEyMkY0QTA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHU3R5bGVFbGVt
ZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBODEyMkREMjA4RDU2NEIzMDA4NDRGQTMgLyogU1ZHU3R5bGVFbGVtZW50V3JhcHBlci5j
cHAgKi87IH07CiAJCUE4MTIyRjRCMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdTdHlsZUVsZW1lbnRX
cmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
ODEyMkREMzA4RDU2NEIzMDA4NDRGQTMgLyogU1ZHU3R5bGVFbGVtZW50V3JhcHBlci5oICovOyB9
OwotCQlBODEyMkY0QzA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHU1ZHRWxlbWVudFdyYXBwZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJERDQw
OEQ1NjRCMzAwODQ0RkEzIC8qIFNWR1NWR0VsZW1lbnRXcmFwcGVyLmNwcCAqLzsgfTsKIAkJQTgx
MjJGNEQwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1NWR0VsZW1lbnRXcmFwcGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkRENTA4RDU2NEIzMDA4
NDRGQTMgLyogU1ZHU1ZHRWxlbWVudFdyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJGNEUwOEQ1NjRC
NTAwODQ0RkEzIC8qIFNWR1N3aXRjaEVsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyREQ2MDhENTY0QjMwMDg0NEZBMyAv
KiBTVkdTd2l0Y2hFbGVtZW50V3JhcHBlci5jcHAgKi87IH07CiAJCUE4MTIyRjRGMDhENTY0QjUw
MDg0NEZBMyAvKiBTVkdTd2l0Y2hFbGVtZW50V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJERDcwOEQ1NjRCMzAwODQ0RkEzIC8qIFNW
R1N3aXRjaEVsZW1lbnRXcmFwcGVyLmggKi87IH07Ci0JCUE4MTIyRjUwMDhENTY0QjUwMDg0NEZB
MyAvKiBTVkdTeW1ib2xFbGVtZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkREODA4RDU2NEIzMDA4NDRGQTMgLyogU1ZHU3lt
Ym9sRWxlbWVudFdyYXBwZXIuY3BwICovOyB9OwogCQlBODEyMkY1MTA4RDU2NEI1MDA4NDRGQTMg
LyogU1ZHU3ltYm9sRWxlbWVudFdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyREQ5MDhENTY0QjMwMDg0NEZBMyAvKiBTVkdTeW1ib2xF
bGVtZW50V3JhcHBlci5oICovOyB9OwotCQlBODEyMkY1MjA4RDU2NEI1MDA4NDRGQTMgLyogU1ZH
VGVzdHNXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4MTIyRERBMDhENTY0QjMwMDg0NEZBMyAvKiBTVkdUZXN0c1dyYXBwZXIuY3BwICov
OyB9OwogCQlBODEyMkY1MzA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHVGVzdHNXcmFwcGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkREQjA4RDU2
NEIzMDA4NDRGQTMgLyogU1ZHVGVzdHNXcmFwcGVyLmggKi87IH07Ci0JCUE4MTIyRjU0MDhENTY0
QjUwMDg0NEZBMyAvKiBTVkdUZXh0Q29udGVudEVsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRERDMDhENTY0QjMwMDg0
NEZBMyAvKiBTVkdUZXh0Q29udGVudEVsZW1lbnRXcmFwcGVyLmNwcCAqLzsgfTsKIAkJQTgxMjJG
NTUwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1RleHRDb250ZW50RWxlbWVudFdyYXBwZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyREREMDhENTY0
QjMwMDg0NEZBMyAvKiBTVkdUZXh0Q29udGVudEVsZW1lbnRXcmFwcGVyLmggKi87IH07Ci0JCUE4
MTIyRjU2MDhENTY0QjUwMDg0NEZBMyAvKiBTVkdUZXh0RWxlbWVudFdyYXBwZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJEREUwOEQ1NjRC
MzAwODQ0RkEzIC8qIFNWR1RleHRFbGVtZW50V3JhcHBlci5jcHAgKi87IH07CiAJCUE4MTIyRjU3
MDhENTY0QjUwMDg0NEZBMyAvKiBTVkdUZXh0RWxlbWVudFdyYXBwZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyRERGMDhENTY0QjMwMDg0NEZB
MyAvKiBTVkdUZXh0RWxlbWVudFdyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJGNTgwOEQ1NjRCNTAw
ODQ0RkEzIC8qIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyREUwMDhENTY0QjMwMDg0
NEZBMyAvKiBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50V3JhcHBlci5jcHAgKi87IH07CiAJCUE4
MTIyRjU5MDhENTY0QjUwMDg0NEZBMyAvKiBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50V3JhcHBl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJE
RTEwOEQ1NjRCMzAwODQ0RkEzIC8qIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnRXcmFwcGVyLmgg
Ki87IH07Ci0JCUE4MTIyRjVBMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdUaXRsZUVsZW1lbnRXcmFw
cGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
MTIyREUyMDhENTY0QjMwMDg0NEZBMyAvKiBTVkdUaXRsZUVsZW1lbnRXcmFwcGVyLmNwcCAqLzsg
fTsKIAkJQTgxMjJGNUIwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1RpdGxlRWxlbWVudFdyYXBwZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyREUz
MDhENTY0QjMwMDg0NEZBMyAvKiBTVkdUaXRsZUVsZW1lbnRXcmFwcGVyLmggKi87IH07Ci0JCUE4
MTIyRjVDMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdUcmFuc2Zvcm1hYmxlV3JhcHBlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkRFNDA4RDU2
NEIzMDA4NDRGQTMgLyogU1ZHVHJhbnNmb3JtYWJsZVdyYXBwZXIuY3BwICovOyB9OwogCQlBODEy
MkY1RDA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHVHJhbnNmb3JtYWJsZVdyYXBwZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyREU1MDhENTY0QjMw
MDg0NEZBMyAvKiBTVkdUcmFuc2Zvcm1hYmxlV3JhcHBlci5oICovOyB9OwotCQlBODEyMkY1RTA4
RDU2NEI1MDA4NDRGQTMgLyogU1ZHVHJhbnNmb3JtTGlzdFdyYXBwZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJERTYwOEQ1NjRCMzAwODQ0
RkEzIC8qIFNWR1RyYW5zZm9ybUxpc3RXcmFwcGVyLmNwcCAqLzsgfTsKIAkJQTgxMjJGNUYwOEQ1
NjRCNTAwODQ0RkEzIC8qIFNWR1RyYW5zZm9ybUxpc3RXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkRFNzA4RDU2NEIzMDA4NDRGQTMg
LyogU1ZHVHJhbnNmb3JtTGlzdFdyYXBwZXIuaCAqLzsgfTsKLQkJQTgxMjJGNjAwOEQ1NjRCNTAw
ODQ0RkEzIC8qIFNWR1RyYW5zZm9ybVdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMjJERTgwOEQ1NjRCMzAwODQ0RkEzIC8qIFNWR1Ry
YW5zZm9ybVdyYXBwZXIuY3BwICovOyB9OwogCQlBODEyMkY2MTA4RDU2NEI1MDA4NDRGQTMgLyog
U1ZHVHJhbnNmb3JtV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTgxMjJERTkwOEQ1NjRCMzAwODQ0RkEzIC8qIFNWR1RyYW5zZm9ybVdyYXBw
ZXIuaCAqLzsgfTsKLQkJQTgxMjJGNjIwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1RTcGFuRWxlbWVu
dFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTgxMjJERUEwOEQ1NjRCMzAwODQ0RkEzIC8qIFNWR1RTcGFuRWxlbWVudFdyYXBwZXIuY3Bw
ICovOyB9OwogCQlBODEyMkY2MzA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHVFNwYW5FbGVtZW50V3Jh
cHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgx
MjJERUIwOEQ1NjRCMzAwODQ0RkEzIC8qIFNWR1RTcGFuRWxlbWVudFdyYXBwZXIuaCAqLzsgfTsK
IAkJQTgxMjJGNjUwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1VuaXRUeXBlc1dyYXBwZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyREVEMDhENTY0
QjMwMDg0NEZBMyAvKiBTVkdVbml0VHlwZXNXcmFwcGVyLmggKi87IH07Ci0JCUE4MTIyRjY2MDhE
NTY0QjUwMDg0NEZBMyAvKiBTVkdVUklSZWZlcmVuY2VXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyREVFMDhENTY0QjMwMDg0NEZB
MyAvKiBTVkdVUklSZWZlcmVuY2VXcmFwcGVyLmNwcCAqLzsgfTsKIAkJQTgxMjJGNjcwOEQ1NjRC
NTAwODQ0RkEzIC8qIFNWR1VSSVJlZmVyZW5jZVdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyREVGMDhENTY0QjMwMDg0NEZBMyAvKiBT
VkdVUklSZWZlcmVuY2VXcmFwcGVyLmggKi87IH07Ci0JCUE4MTIyRjY4MDhENTY0QjUwMDg0NEZB
MyAvKiBTVkdVc2VFbGVtZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkRGMDA4RDU2NEIzMDA4NDRGQTMgLyogU1ZHVXNlRWxl
bWVudFdyYXBwZXIuY3BwICovOyB9OwogCQlBODEyMkY2OTA4RDU2NEI1MDA4NDRGQTMgLyogU1ZH
VXNlRWxlbWVudFdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4MTIyREYxMDhENTY0QjMwMDg0NEZBMyAvKiBTVkdVc2VFbGVtZW50V3JhcHBl
ci5oICovOyB9OwotCQlBODEyMkY2QTA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHVmlld0VsZW1lbnRX
cmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4MTIyREYyMDhENTY0QjMwMDg0NEZBMyAvKiBTVkdWaWV3RWxlbWVudFdyYXBwZXIuY3BwICov
OyB9OwogCQlBODEyMkY2QjA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHVmlld0VsZW1lbnRXcmFwcGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkRG
MzA4RDU2NEIzMDA4NDRGQTMgLyogU1ZHVmlld0VsZW1lbnRXcmFwcGVyLmggKi87IH07Ci0JCUE4
MTIyRjZDMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdab29tQW5kUGFuV3JhcHBlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkRGNDA4RDU2NEIz
MDA4NDRGQTMgLyogU1ZHWm9vbUFuZFBhbldyYXBwZXIuY3BwICovOyB9OwogCQlBODEyMkY2RDA4
RDU2NEI1MDA4NDRGQTMgLyogU1ZHWm9vbUFuZFBhbldyYXBwZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTIyREY1MDhENTY0QjMwMDg0NEZBMyAv
KiBTVkdab29tQW5kUGFuV3JhcHBlci5oICovOyB9OwotCQlBODEyMkY2RTA4RDU2NEI1MDA4NDRG
QTMgLyogU1ZHWm9vbUV2ZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBODEyMkRGNjA4RDU2NEIzMDA4NDRGQTMgLyogU1ZHWm9vbUV2
ZW50V3JhcHBlci5jcHAgKi87IH07CiAJCUE4MTIyRjZGMDhENTY0QjUwMDg0NEZBMyAvKiBTVkda
b29tRXZlbnRXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBODEyMkRGNzA4RDU2NEIzMDA4NDRGQTMgLyogU1ZHWm9vbUV2ZW50V3JhcHBlci5o
ICovOyB9OwotCQlBODFENTZBNDA4QUNBQzdFMDAxMzZBQzEgLyogWFBvaW50ZXJIZWxwZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MUQ1NkEyMDhB
Q0FDN0UwMDEzNkFDMSAvKiBYUG9pbnRlckhlbHBlci5oICovOyB9OwotCQlBODFENTZBNTA4QUNB
QzdFMDAxMzZBQzEgLyogWFBvaW50ZXJIZWxwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxRDU2QTMwOEFDQUM3RTAwMTM2QUMxIC8qIFhQb2lu
dGVySGVscGVyLmNwcCAqLzsgfTsKLQkJQTgxRDU3MTkwOEFENEE1NzAwMTM2QUMxIC8qIERyYXdE
b2N1bWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4QzBGNkUxMDg5NzAxRjEwMEJBNTExNCAvKiBEcmF3RG9jdW1lbnQubW0gKi87IH07Ci0JCUE4
MUQ1Nzg4MDhBRDVGMTIwMDEzNkFDMSAvKiBEcmF3Q2FudmFzSXRlbS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGNkRFMDg5NzAxRjEwMEJBNTEx
NCAvKiBEcmF3Q2FudmFzSXRlbS5tbSAqLzsgfTsKLQkJQTgxRDU3QkUwOEFENjM3NDAwMTM2QUMx
IC8qIFNjcmlwdEludGVycHJldGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4QzBGOUM2MDg5NzAxRjUwMEJBNTExNCAvKiBTY3JpcHRJbnRlcnBy
ZXRlci5jcHAgKi87IH07Ci0JCUE4MUQ1N0JGMDhBRDYzNzUwMDEzNkFDMSAvKiBHbG9iYWxPYmpl
Y3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThD
MEY5QzIwODk3MDFGNTAwQkE1MTE0IC8qIEdsb2JhbE9iamVjdC5jcHAgKi87IH07Ci0JCUE4MUQ1
N0MxMDhBRDYzN0EwMDEzNkFDMSAvKiBFY21hLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOUJGMDg5NzAxRjUwMEJBNTExNCAvKiBFY21hLmNw
cCAqLzsgfTsKKwkJQTgyMDkwNjcwOTEzNzlGMzAwMEJFNEY0IC8qIEtET01IZWFkZXJzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODIwOTA2NjA5MTM3
OUYzMDAwQkU0RjQgLyogS0RPTUhlYWRlcnMuaCAqLzsgfTsKKwkJQTgyMDkxMkYwOTEzODFGNTAw
MEJFNEY0IC8qIEtET01TdHViQ2xhc3Nlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTgyMDkxMkUwOTEzODFGNTAwMEJFNEY0IC8qIEtET01TdHViQ2xh
c3Nlcy5oICovOyB9OworCQlBODIwOTIxMDA5MTM5MEIzMDAwQkU0RjQgLyogRE9NTGlzdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgyMDkyMEYwOTEz
OTBCMzAwMEJFNEY0IC8qIERPTUxpc3QuaCAqLzsgfTsKKwkJQTgyMDk0Q0EwOTE0MEVBNTAwMEJF
NEY0IC8qIGtkb210cmF2ZXJzYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4MjA5NEM0MDkxNDBFQTUwMDBCRTRGNCAvKiBrZG9tdHJhdmVyc2FsLmgg
Ki87IH07CisJCUE4MjA5NENCMDkxNDBFQTUwMDBCRTRGNCAvKiBrZG9tZXZlbnRzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODIwOTRDNTA5MTQwRUE1
MDAwQkU0RjQgLyoga2RvbWV2ZW50cy5oICovOyB9OworCQlBODIwOTRDQzA5MTQwRUE1MDAwQkU0
RjQgLyoga2RvbWxzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBODIwOTRDNjA5MTQwRUE1MDAwQkU0RjQgLyoga2RvbWxzLmggKi87IH07CisJCUE4MjA5
NENEMDkxNDBFQTUwMDBCRTRGNCAvKiBrZG9tcmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MjA5NEM3MDkxNDBFQTUwMDBCRTRGNCAvKiBrZG9t
cmFuZ2UuaCAqLzsgfTsKKwkJQTgyMDk0Q0UwOTE0MEVBNTAwMEJFNEY0IC8qIGtkb21jc3MuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MjA5NEM4MDkx
NDBFQTUwMDBCRTRGNCAvKiBrZG9tY3NzLmggKi87IH07CisJCUE4MjA5NENGMDkxNDBFQTUwMDBC
RTRGNCAvKiBrZG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBODIwOTRDOTA5MTQwRUE1MDAwQkU0RjQgLyoga2RvbS5oICovOyB9OwogCQlBODIxMkE4
NzA4Nzk0QTIzMDA2NzczNTkgLyogY3NzX2Jhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOEY2MThCMDQwNTk0QkEwMEE4MDAwNCAvKiBjc3NfYmFz
ZS5oICovOyB9OwogCQlBODIxMkE4ODA4Nzk0QTIzMDA2NzczNTkgLyogY3NzX3J1bGVpbXBsLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTIzRDE2NTAy
REU0MkU2MDE4NjM1Q0EgLyogY3NzX3J1bGVpbXBsLmggKi87IH07CiAJCUE4MjEyQTg5MDg3OTRB
MjMwMDY3NzM1OSAvKiBjc3Nfc3R5bGVzaGVldGltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MjNEMTY3MDJERTQyRTYwMTg2MzVDQSAvKiBjc3Nf
c3R5bGVzaGVldGltcGwuaCAqLzsgfTsKQEAgLTE0NzQsMjI5ICsxMjkwLDI3IEBACiAJCUE4MjEy
RDA1MDg3OTRBMjMwMDY3NzM1OSAvKiBsaWJ4c2x0LmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQwNjMzMDcwNzMxQTc3MjAwREIxRkQxIC8q
IGxpYnhzbHQuZHlsaWIgKi87IH07CiAJCUE4MkZCQjY2MDhDNjI0MTMwMEVGRUUyMyAvKiBFdmVu
dE5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
Mzk4ODVDMjA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oICovOyB9OwogCQlBODJGQkI2
NzA4QzYyNDFFMDBFRkVFMjMgLyogRXZlbnROYW1lcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzk4ODVDMTA4QjdFM0QxMDBFNzA3QzQgLyogRXZl
bnROYW1lcy5jcHAgKi87IH07Ci0JCUE4MkZDMjc1MDhDOTI5MkUwMEVGRUUyMyAvKiBET01JbXBs
ZW1lbnRhdGlvbkxTSW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTgyRkMyNzMwOEM5MjkyRTAwRUZFRTIzIC8qIERPTUltcGxlbWVudGF0aW9uTFNJ
bXBsLmggKi87IH07Ci0JCUE4MkZDMjc2MDhDOTI5MkUwMEVGRUUyMyAvKiBET01JbXBsZW1lbnRh
dGlvbkxTSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBODJGQzI3NDA4QzkyOTJFMDBFRkVFMjMgLyogRE9NSW1wbGVtZW50YXRpb25MU0ltcGwu
Y3BwICovOyB9OwotCQlBODJGQzJGMjA4QzlBQUU0MDBFRkVFMjMgLyogTGlua1N0eWxlSW1wbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgyRkMyRjAw
OEM5QUFFNDAwRUZFRTIzIC8qIExpbmtTdHlsZUltcGwuaCAqLzsgfTsKLQkJQTgyRkMyRjMwOEM5
QUFFNDAwRUZFRTIzIC8qIExpbmtTdHlsZUltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgyRkMyRjEwOEM5QUFFNDAwRUZFRTIzIC8qIExpbmtT
dHlsZUltcGwuY3BwICovOyB9OwogCQlBODJGQzMzRDA4Q0JCMDdDMDBFRkVFMjMgLyogU1ZHQ3Vy
c29yRWxlbWVudEltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4MkZDMzNCMDhDQkIwN0MwMEVGRUUyMyAvKiBTVkdDdXJzb3JFbGVtZW50SW1wbC5o
ICovOyB9OwogCQlBODJGQzMzRTA4Q0JCMDdDMDBFRkVFMjMgLyogU1ZHQ3Vyc29yRWxlbWVudElt
cGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgy
RkMzM0MwOENCQjA3QzAwRUZFRTIzIC8qIFNWR0N1cnNvckVsZW1lbnRJbXBsLmNwcCAqLzsgfTsK
KwkJQTgzQTE4RDQwOTE0MjE0RjAwMEVDMzExIC8qIE5hbWVzcGFjZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzQTE4RDMwOTE0MjE0RjAwMEVDMzEx
IC8qIE5hbWVzcGFjZS5oICovOyB9OwogCQlBODNDODFBMTA5MTE4OUI5MDA5QkY0QTcgLyogWFNM
VFByb2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTgzQzgxOUYwOTExODlCOTAwOUJGNEE3IC8qIFhTTFRQcm9jZXNzb3IuaCAqLzsgfTsKIAkJ
QTgzQzgxQTIwOTExODlCOTAwOUJGNEE3IC8qIFhTTFRQcm9jZXNzb3IuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzQzgxQTAwOTExODlCOTAwOUJG
NEE3IC8qIFhTTFRQcm9jZXNzb3IuY3BwICovOyB9OwogCQlBODNDODFBMzA5MTE4OUI5MDA5QkY0
QTcgLyogWFNMVFByb2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTgzQzgxOUYwOTExODlCOTAwOUJGNEE3IC8qIFhTTFRQcm9jZXNzb3IuaCAq
LzsgfTsKIAkJQTgzQzgxQTQwOTExODlCOTAwOUJGNEE3IC8qIFhTTFRQcm9jZXNzb3IuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzQzgxQTAwOTEx
ODlCOTAwOUJGNEE3IC8qIFhTTFRQcm9jZXNzb3IuY3BwICovOyB9OwogCQlBODQxRUM3MjA4QzY2
MzY2MDBEREEyMUMgLyogS0NhbnZhc1BhdGguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDc1OEM0NDMwOEM1RjIxNzAwOUJBRjA1IC8qIEtDYW52YXNQ
YXRoLmNwcCAqLzsgfTsKLQkJQTg1NkU5QkMwOEI0NUIxRTAwNDJFMzAzIC8qIFhQYXRoUmVzdWx0
SW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgx
RDVBNTUwOEFERjZFQjAwMTM2QUMxIC8qIFhQYXRoUmVzdWx0SW1wbC5oICovOyB9OwotCQlBODU2
RTlCRDA4QjQ1QjFFMDA0MkUzMDMgLyogWFBhdGhSZXN1bHRJbXBsLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MUQ1QTU2MDhBREY2RUIwMDEzNkFD
MSAvKiBYUGF0aFJlc3VsdEltcGwuY3BwICovOyB9OwotCQlBODU2RTlCRTA4QjQ1QjFFMDA0MkUz
MDMgLyogWFBhdGhOU1Jlc29sdmVySW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTgxRDVBNTcwOEFERjZFQjAwMTM2QUMxIC8qIFhQYXRoTlNSZXNv
bHZlckltcGwuaCAqLzsgfTsKLQkJQTg1NkU5QkYwOEI0NUIxRTAwNDJFMzAzIC8qIFhQYXRoTlNS
ZXNvbHZlckltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTgxRDVBNTgwOEFERjZFQjAwMTM2QUMxIC8qIFhQYXRoTlNSZXNvbHZlckltcGwuY3Bw
ICovOyB9OwotCQlBODU2RTlDMDA4QjQ1QjFFMDA0MkUzMDMgLyogWFBhdGhOYW1lc3BhY2VJbXBs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODFENUE1
OTA4QURGNkVCMDAxMzZBQzEgLyogWFBhdGhOYW1lc3BhY2VJbXBsLmggKi87IH07Ci0JCUE4NTZF
OUMxMDhCNDVCMUUwMDQyRTMwMyAvKiBYUGF0aE5hbWVzcGFjZUltcGwuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxRDVBNUEwOEFERjZFQjAwMTM2
QUMxIC8qIFhQYXRoTmFtZXNwYWNlSW1wbC5jcHAgKi87IH07Ci0JCUE4NTZFOUMyMDhCNDVCMUUw
MDQyRTMwMyAvKiBYUGF0aEV4cHJlc3Npb25JbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODFENUE1QjA4QURGNkVCMDAxMzZBQzEgLyogWFBhdGhF
eHByZXNzaW9uSW1wbC5oICovOyB9OwotCQlBODU2RTlDMzA4QjQ1QjFFMDA0MkUzMDMgLyogWFBh
dGhFeHByZXNzaW9uSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODFENUE1QzA4QURGNkVCMDAxMzZBQzEgLyogWFBhdGhFeHByZXNzaW9uSW1w
bC5jcHAgKi87IH07Ci0JCUE4NTZFOUM0MDhCNDVCMUUwMDQyRTMwMyAvKiBYUGF0aEV4Y2VwdGlv
bkltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
MUQ1QTVEMDhBREY2RUIwMDEzNkFDMSAvKiBYUGF0aEV4Y2VwdGlvbkltcGwuaCAqLzsgfTsKLQkJ
QTg1NkU5QzUwOEI0NUIxRTAwNDJFMzAzIC8qIFhQYXRoRXhjZXB0aW9uSW1wbC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODFENUE1RTA4QURGNkVC
MDAxMzZBQzEgLyogWFBhdGhFeGNlcHRpb25JbXBsLmNwcCAqLzsgfTsKLQkJQTg1NkU5QzYwOEI0
NUIxRTAwNDJFMzAzIC8qIFhQYXRoRXZhbHVhdG9ySW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxRDVBNUYwOEFERjZFQjAwMTM2QUMxIC8qIFhQ
YXRoRXZhbHVhdG9ySW1wbC5oICovOyB9OwotCQlBODU2RTlDNzA4QjQ1QjFFMDA0MkUzMDMgLyog
WFBhdGhFdmFsdWF0b3JJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4MUQ1QTYwMDhBREY2RUIwMDEzNkFDMSAvKiBYUGF0aEV2YWx1YXRvcklt
cGwuY3BwICovOyB9OwotCQlBODU2RTlDODA4QjQ1QjFFMDA0MkUzMDMgLyogdmFyaWFibGVyZWZl
cmVuY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
Mzg1NDMxMDhCMEEwMEIwMDBBRjU4MCAvKiB2YXJpYWJsZXJlZmVyZW5jZS5oICovOyB9OwotCQlB
ODU2RTlDOTA4QjQ1QjFFMDA0MkUzMDMgLyogdmFyaWFibGVyZWZlcmVuY2UuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzODU0MzIwOEIwQTAwQjAw
MEFGNTgwIC8qIHZhcmlhYmxlcmVmZXJlbmNlLmNwcCAqLzsgfTsKLQkJQTg1NkU5Q0EwOEI0NUIx
RTAwNDJFMzAzIC8qIHV0aWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4MUQ1QTgyMDhBREY3MDQwMDEzNkFDMSAvKiB1dGlsLmggKi87IH07Ci0JCUE4
NTZFOUNCMDhCNDVCMUUwMDQyRTMwMyAvKiB1dGlsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MUQ1QTgxMDhBREY3MDQwMDEzNkFDMSAvKiB1dGls
LmNwcCAqLzsgfTsKLQkJQTg1NkU5Q0MwOEI0NUIxRTAwNDJFMzAzIC8qIHRva2VuaXplci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxRDVBN0YwOEFE
RjcwNDAwMTM2QUMxIC8qIHRva2VuaXplci5oICovOyB9OwotCQlBODU2RTlDRDA4QjQ1QjFFMDA0
MkUzMDMgLyogdG9rZW5pemVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4MUQ1QTdFMDhBREY3MDQwMDEzNkFDMSAvKiB0b2tlbml6ZXIuY3BwICov
OyB9OwotCQlBODU2RTlDRTA4QjQ1QjFFMDA0MkUzMDMgLyogc3RlcC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxRDVBN0QwOEFERjcwNDAwMTM2QUMx
IC8qIHN0ZXAuaCAqLzsgfTsKLQkJQTg1NkU5Q0YwOEI0NUIxRTAwNDJFMzAzIC8qIHN0ZXAuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxRDVBN0Mw
OEFERjcwNDAwMTM2QUMxIC8qIHN0ZXAuY3BwICovOyB9OwotCQlBODU2RTlEMDA4QjQ1QjFFMDA0
MkUzMDMgLyogcHJlZGljYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODFENUE3QjA4QURGNzA0MDAxMzZBQzEgLyogcHJlZGljYXRlLmggKi87IH07
Ci0JCUE4NTZFOUQxMDhCNDVCMUUwMDQyRTMwMyAvKiBwcmVkaWNhdGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxRDVBN0EwOEFERjcwNDAwMTM2
QUMxIC8qIHByZWRpY2F0ZS5jcHAgKi87IH07Ci0JCUE4NTZFOUQyMDhCNDVCMUUwMDQyRTMwMyAv
KiBwYXRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
ODFENUE3OTA4QURGNzA0MDAxMzZBQzEgLyogcGF0aC5oICovOyB9OwotCQlBODU2RTlEMzA4QjQ1
QjFFMDA0MkUzMDMgLyogcGF0aC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBODFENUE3ODA4QURGNzA0MDAxMzZBQzEgLyogcGF0aC5jcHAgKi87IH07
Ci0JCUE4NTZFOUQ0MDhCNDVCMUUwMDQyRTMwMyAvKiBwYXJzZWRzdGF0ZW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MUQ1QTc1MDhBREY3MDQw
MDEzNkFDMSAvKiBwYXJzZWRzdGF0ZW1lbnQuaCAqLzsgfTsKLQkJQTg1NkU5RDUwOEI0NUIxRTAw
NDJFMzAzIC8qIHBhcnNlZHN0YXRlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBODFENUE3NDA4QURGNzA0MDAxMzZBQzEgLyogcGFyc2Vkc3Rh
dGVtZW50LmNwcCAqLzsgfTsKLQkJQTg1NkU5RDYwOEI0NUIxRTAwNDJFMzAzIC8qIGtkb214cGF0
aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZC
MjEwODk3MDFGNzAwQkE1MTE0IC8qIGtkb214cGF0aC5oICovOyB9OwotCQlBODU2RTlENzA4QjQ1
QjFFMDA0MkUzMDMgLyogZnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBODFENUE3MjA4QURGNzA0MDAxMzZBQzEgLyogZnVuY3Rpb25zLmgg
Ki87IH07Ci0JCUE4NTZFOUQ4MDhCNDVCMUUwMDQyRTMwMyAvKiBmdW5jdGlvbnMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxRDVBNzEwOEFERjcw
NDAwMTM2QUMxIC8qIGZ1bmN0aW9ucy5jcHAgKi87IH07Ci0JCUE4NTZFOUQ5MDhCNDVCMUUwMDQy
RTMwMyAvKiBleHByZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODFENUE3MDA4QURGNzA0MDAxMzZBQzEgLyogZXhwcmVzc2lvbi5oICovOyB9
OwotCQlBODU2RTlEQTA4QjQ1QjFFMDA0MkUzMDMgLyogZXhwcmVzc2lvbi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODFENUE2RjA4QURGNzA0MDAx
MzZBQzEgLyogZXhwcmVzc2lvbi5jcHAgKi87IH07Ci0JCUE4NTZFOUY5MDhCNDYwOEYwMDQyRTMw
MyAvKiB4cGF0aC55IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTg1NkU5RjgwOEI0NjA4RjAwNDJFMzAzIC8qIHhwYXRoLnkgKi87IH07CisJCUE4NEI5RkMw
MDkxNzBEQTIwMEQ3MUREMCAvKiBSR0JDb2xvckltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg0QjlGQkMwOTE3MERBMjAwRDcxREQwIC8qIFJH
QkNvbG9ySW1wbC5jcHAgKi87IH07CisJCUE4NEI5RkMyMDkxNzBEQTMwMEQ3MUREMCAvKiBSR0JD
b2xvckltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4NEI5RkJFMDkxNzBEQTIwMEQ3MUREMCAvKiBSR0JDb2xvckltcGwuaCAqLzsgfTsKKwkJQTg0
QjlGQzMwOTE3MERBMzAwRDcxREQwIC8qIEtET01TZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg0QjlGQkYwOTE3MERBMjAwRDcxREQwIC8q
IEtET01TZXR0aW5ncy5oICovOyB9OwogCQlBODVEN0EzMDA4NzlFQkE5MDA2QTkxNzIgLyogUXVh
cnR6Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODVEN0EyRjA4NzlFQkE5MDA2QTkxNzIgLyogUXVhcnR6Q29yZS5mcmFtZXdv
cmsgKi87IH07CiAJCUE4NUQ3QThFMDg3OUVDNjQwMDZBOTE3MiAvKiBLV1FXTWF0cml4Lm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg1RDdBOEMwODc5
RUM2NDAwNkE5MTcyIC8qIEtXUVdNYXRyaXgubW0gKi87IH07CiAJCUE4NUQ3QThGMDg3OUVDNjQw
MDZBOTE3MiAvKiBLV1FXTWF0cml4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBODVEN0E4RDA4NzlFQzY0MDA2QTkxNzIgLyogS1dRV01hdHJpeC5oICov
OyB9OwotCQlBODYzMzEyRjA4RTNBQjI1MDA5Q0ZFRjQgLyogQ0RGSW50ZXJmYWNlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NjMzMTJFMDhFM0FC
MjQwMDlDRkVGNCAvKiBDREZJbnRlcmZhY2UuY3BwICovOyB9OwotCQlBODcwMEE0ODA4REQ3MzQz
MDBDQzVBODYgLyogQ0RGSW50ZXJmYWNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOUZFMDg5NzAxRjUwMEJBNTExNCAvKiBDREZJbnRlcmZh
Y2UuY3BwICovOyB9OworCQlBODYzMzEyRjA4RTNBQjI1MDA5Q0ZFRjQgLyogU1ZHQ0RGSW50ZXJm
YWNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
NjMzMTJFMDhFM0FCMjQwMDlDRkVGNCAvKiBTVkdDREZJbnRlcmZhY2UuY3BwICovOyB9OworCQlB
ODcyNTkzMjA4RjlCQUE3MDA2RjEwQTEgLyogbGliei5keWxpYiBpbiBGcmFtZXdvcmtzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzI1OTMxMDhGOUJBQTYwMDZGMTBBMSAv
KiBsaWJ6LmR5bGliICovOyB9OwogCQlBODk4RjE0NzA4ODEyMUU5MDA3NUVGQjIgLyogaHRtbGZh
Y3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
RUYzNDMzMDg3QjU2M0UwMEJCRjgzMyAvKiBodG1sZmFjdG9yeS5oICovOyB9OwogCQlBODk4RjE0
ODA4ODEyMUVEMDA3NUVGQjIgLyogaHRtbGZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFRjM0MzIwODdCNTYzRTAwQkJGODMzIC8qIGh0
bWxmYWN0b3J5LmNwcCAqLzsgfTsKIAkJQThCQTVDNzAwOTBDQjA3NzAwNEQxMTgwIC8qIHJlbmRl
cl9idXR0b24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkM0MjAzNUEwOEZDMzM0MTAwQjc4MkUwIC8qIHJlbmRlcl9idXR0b24uY3BwICovOyB9Owog
CQlBOEJBNUM3MTA5MENCMDdBMDA0RDExODAgLyogcmVuZGVyX2FyZW5hLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzI1NTdDMzA2MUUzMTcyMDA3Qjgw
NTQgLyogcmVuZGVyX2FyZW5hLmggKi87IH07CiAJCUE4QkE1QzcyMDkwQ0IwN0EwMDREMTE4MCAv
KiByZW5kZXJfYnV0dG9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzQyMDM1QjA4RkMzMzQxMDBCNzgyRTAgLyogcmVuZGVyX2J1dHRvbi5oICovOyB9
OwotCQlBOEJDMEM4NjA4RDE5RjFBMDAzNzk5MTggLyogQXR0cldyYXBwZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBCRTYwOEQxOUYxOTAw
Mzc5OTE4IC8qIEF0dHJXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQThCQzBDODcwOEQxOUYxQTAwMzc5
OTE4IC8qIEF0dHJXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBOEJDMEJFNzA4RDE5RjE5MDAzNzk5MTggLyogQXR0cldyYXBwZXIuaCAqLzsg
fTsKLQkJQThCQzBDODgwOEQxOUYxQTAwMzc5OTE4IC8qIENEQVRBU2VjdGlvbldyYXBwZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBCRTgw
OEQxOUYxOTAwMzc5OTE4IC8qIENEQVRBU2VjdGlvbldyYXBwZXIuY3BwICovOyB9OwotCQlBOEJD
MEM4OTA4RDE5RjFBMDAzNzk5MTggLyogQ0RBVEFTZWN0aW9uV3JhcHBlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBCRTkwOEQxOUYxOTAwMzc5
OTE4IC8qIENEQVRBU2VjdGlvbldyYXBwZXIuaCAqLzsgfTsKLQkJQThCQzBDOEEwOEQxOUYxQTAw
Mzc5OTE4IC8qIENoYXJhY3RlckRhdGFXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwQkVBMDhEMTlGMTkwMDM3OTkxOCAvKiBDaGFy
YWN0ZXJEYXRhV3JhcHBlci5jcHAgKi87IH07Ci0JCUE4QkMwQzhCMDhEMTlGMUEwMDM3OTkxOCAv
KiBDaGFyYWN0ZXJEYXRhV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQThCQzBCRUIwOEQxOUYxOTAwMzc5OTE4IC8qIENoYXJhY3RlckRhdGFX
cmFwcGVyLmggKi87IH07Ci0JCUE4QkMwQzhDMDhEMTlGMUEwMDM3OTkxOCAvKiBDb21tZW50V3Jh
cHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEJDMEJFQzA4RDE5RjE5MDAzNzk5MTggLyogQ29tbWVudFdyYXBwZXIuY3BwICovOyB9OwotCQlB
OEJDMEM4RDA4RDE5RjFBMDAzNzk5MTggLyogQ29tbWVudFdyYXBwZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwQkVEMDhEMTlGMTkwMDM3OTkx
OCAvKiBDb21tZW50V3JhcHBlci5oICovOyB9OwotCQlBOEJDMEM4RTA4RDE5RjFBMDAzNzk5MTgg
LyogRG9jdW1lbnRGcmFnbWVudFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBCRUUwOEQxOUYxOTAwMzc5OTE4IC8qIERvY3VtZW50
RnJhZ21lbnRXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQThCQzBDOEYwOEQxOUYxQTAwMzc5OTE4IC8q
IERvY3VtZW50RnJhZ21lbnRXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEJFRjA4RDE5RjE5MDAzNzk5MTggLyogRG9jdW1lbnRGcmFn
bWVudFdyYXBwZXIuaCAqLzsgfTsKLQkJQThCQzBDOTAwOEQxOUYxQTAwMzc5OTE4IC8qIERvY3Vt
ZW50VHlwZVdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQThCQzBCRjAwOEQxOUYxOTAwMzc5OTE4IC8qIERvY3VtZW50VHlwZVdyYXBwZXIu
Y3BwICovOyB9OwotCQlBOEJDMEM5MTA4RDE5RjFBMDAzNzk5MTggLyogRG9jdW1lbnRUeXBlV3Jh
cHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThC
QzBCRjEwOEQxOUYxOTAwMzc5OTE4IC8qIERvY3VtZW50VHlwZVdyYXBwZXIuaCAqLzsgfTsKLQkJ
QThCQzBDOTIwOEQxOUYxQTAwMzc5OTE4IC8qIERvY3VtZW50V3JhcHBlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEJGMjA4RDE5RjE5MDAz
Nzk5MTggLyogRG9jdW1lbnRXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQThCQzBDOTMwOEQxOUYxQTAw
Mzc5OTE4IC8qIERvY3VtZW50V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThCQzBCRjMwOEQxOUYxOTAwMzc5OTE4IC8qIERvY3VtZW50V3Jh
cHBlci5oICovOyB9OwotCQlBOEJDMEM5NDA4RDE5RjFBMDAzNzk5MTggLyogRE9NQ29uZmlndXJh
dGlvbldyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQThCQzBCRjQwOEQxOUYxOTAwMzc5OTE4IC8qIERPTUNvbmZpZ3VyYXRpb25XcmFwcGVy
LmNwcCAqLzsgfTsKLQkJQThCQzBDOTUwOEQxOUYxQTAwMzc5OTE4IC8qIERPTUNvbmZpZ3VyYXRp
b25XcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBOEJDMEJGNTA4RDE5RjE5MDAzNzk5MTggLyogRE9NQ29uZmlndXJhdGlvbldyYXBwZXIuaCAq
LzsgfTsKLQkJQThCQzBDOTYwOEQxOUYxQTAwMzc5OTE4IC8qIERPTUVycm9ySGFuZGxlcldyYXBw
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThC
QzBCRjYwOEQxOUYxOTAwMzc5OTE4IC8qIERPTUVycm9ySGFuZGxlcldyYXBwZXIuY3BwICovOyB9
OwotCQlBOEJDMEM5NzA4RDE5RjFBMDAzNzk5MTggLyogRE9NRXJyb3JIYW5kbGVyV3JhcHBlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBCRjcw
OEQxOUYxOTAwMzc5OTE4IC8qIERPTUVycm9ySGFuZGxlcldyYXBwZXIuaCAqLzsgfTsKLQkJQThC
QzBDOTgwOEQxOUYxQTAwMzc5OTE4IC8qIERPTUVycm9yV3JhcHBlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEJGODA4RDE5RjE5MDAzNzk5
MTggLyogRE9NRXJyb3JXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQThCQzBDOTkwOEQxOUYxQTAwMzc5
OTE4IC8qIERPTUVycm9yV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQThCQzBCRjkwOEQxOUYxOTAwMzc5OTE4IC8qIERPTUVycm9yV3JhcHBl
ci5oICovOyB9OwotCQlBOEJDMEM5QTA4RDE5RjFBMDAzNzk5MTggLyogRE9NRXhjZXB0aW9uV3Jh
cHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEJDMEJGQTA4RDE5RjE5MDAzNzk5MTggLyogRE9NRXhjZXB0aW9uV3JhcHBlci5jcHAgKi87IH07
Ci0JCUE4QkMwQzlCMDhEMTlGMUEwMDM3OTkxOCAvKiBET01FeGNlcHRpb25XcmFwcGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEJGQjA4RDE5
RjE5MDAzNzk5MTggLyogRE9NRXhjZXB0aW9uV3JhcHBlci5oICovOyB9OwotCQlBOEJDMEM5QzA4
RDE5RjFBMDAzNzk5MTggLyogRE9NSW1wbGVtZW50YXRpb25XcmFwcGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwQkZDMDhEMTlGMTkwMDM3
OTkxOCAvKiBET01JbXBsZW1lbnRhdGlvbldyYXBwZXIuY3BwICovOyB9OwotCQlBOEJDMEM5RDA4
RDE5RjFBMDAzNzk5MTggLyogRE9NSW1wbGVtZW50YXRpb25XcmFwcGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEJGRDA4RDE5RjE5MDAzNzk5
MTggLyogRE9NSW1wbGVtZW50YXRpb25XcmFwcGVyLmggKi87IH07Ci0JCUE4QkMwQzlFMDhEMTlG
MUEwMDM3OTkxOCAvKiBET01Mb2NhdG9yV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEJGRTA4RDE5RjE5MDAzNzk5MTggLyogRE9N
TG9jYXRvcldyYXBwZXIuY3BwICovOyB9OwotCQlBOEJDMEM5RjA4RDE5RjFBMDAzNzk5MTggLyog
RE9NTG9jYXRvcldyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4QkMwQkZGMDhEMTlGMTkwMDM3OTkxOCAvKiBET01Mb2NhdG9yV3JhcHBlci5o
ICovOyB9OwotCQlBOEJDMENBMDA4RDE5RjFBMDAzNzk5MTggLyogRE9NT2JqZWN0V3JhcHBlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEMw
MDA4RDE5RjE5MDAzNzk5MTggLyogRE9NT2JqZWN0V3JhcHBlci5jcHAgKi87IH07Ci0JCUE4QkMw
Q0ExMDhEMTlGMUEwMDM3OTkxOCAvKiBET01PYmplY3RXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEMwMTA4RDE5RjE5MDAzNzk5MTgg
LyogRE9NT2JqZWN0V3JhcHBlci5oICovOyB9OwotCQlBOEJDMENBMjA4RDE5RjFBMDAzNzk5MTgg
LyogRE9NU3RyaW5nTGlzdFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThCQzBDMDIwOEQxOUYxOTAwMzc5OTE4IC8qIERPTVN0cmluZ0xp
c3RXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQThCQzBDQTMwOEQxOUYxQTAwMzc5OTE4IC8qIERPTVN0
cmluZ0xpc3RXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOEJDMEMwMzA4RDE5RjE5MDAzNzk5MTggLyogRE9NU3RyaW5nTGlzdFdyYXBwZXIu
aCAqLzsgfTsKLQkJQThCQzBDQTQwOEQxOUYxQTAwMzc5OTE4IC8qIERPTVVzZXJEYXRhV3JhcHBl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJD
MEMwNDA4RDE5RjE5MDAzNzk5MTggLyogRE9NVXNlckRhdGFXcmFwcGVyLmNwcCAqLzsgfTsKLQkJ
QThCQzBDQTUwOEQxOUYxQTAwMzc5OTE4IC8qIERPTVVzZXJEYXRhV3JhcHBlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBDMDUwOEQxOUYxOTAw
Mzc5OTE4IC8qIERPTVVzZXJEYXRhV3JhcHBlci5oICovOyB9OwotCQlBOEJDMENBNjA4RDE5RjFB
MDAzNzk5MTggLyogRWxlbWVudFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBDMDYwOEQxOUYxOTAwMzc5OTE4IC8qIEVsZW1lbnRX
cmFwcGVyLmNwcCAqLzsgfTsKLQkJQThCQzBDQTcwOEQxOUYxQTAwMzc5OTE4IC8qIEVsZW1lbnRX
cmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEJDMEMwNzA4RDE5RjE5MDAzNzk5MTggLyogRWxlbWVudFdyYXBwZXIuaCAqLzsgfTsKLQkJQThC
QzBDQTgwOEQxOUYxQTAwMzc5OTE4IC8qIEVudGl0eVJlZmVyZW5jZVdyYXBwZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBDMDgwOEQxOUYx
OTAwMzc5OTE4IC8qIEVudGl0eVJlZmVyZW5jZVdyYXBwZXIuY3BwICovOyB9OwotCQlBOEJDMENB
OTA4RDE5RjFBMDAzNzk5MTggLyogRW50aXR5UmVmZXJlbmNlV3JhcHBlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBDMDkwOEQxOUYxOTAwMzc5
OTE4IC8qIEVudGl0eVJlZmVyZW5jZVdyYXBwZXIuaCAqLzsgfTsKLQkJQThCQzBDQUEwOEQxOUYx
QTAwMzc5OTE4IC8qIEVudGl0eVdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBDMEEwOEQxOUYxOTAwMzc5OTE4IC8qIEVudGl0eVdy
YXBwZXIuY3BwICovOyB9OwotCQlBOEJDMENBQjA4RDE5RjFBMDAzNzk5MTggLyogRW50aXR5V3Jh
cHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThC
QzBDMEIwOEQxOUYxOTAwMzc5OTE4IC8qIEVudGl0eVdyYXBwZXIuaCAqLzsgfTsKLQkJQThCQzBD
QUMwOEQxOUYxQTAwMzc5OTE4IC8qIE5hbWVkTm9kZU1hcFdyYXBwZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBDMEMwOEQxOUYxOTAwMzc5
OTE4IC8qIE5hbWVkTm9kZU1hcFdyYXBwZXIuY3BwICovOyB9OwotCQlBOEJDMENBRDA4RDE5RjFB
MDAzNzk5MTggLyogTmFtZWROb2RlTWFwV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBDMEQwOEQxOUYxOTAwMzc5OTE4IC8qIE5hbWVk
Tm9kZU1hcFdyYXBwZXIuaCAqLzsgfTsKLQkJQThCQzBDQUUwOEQxOUYxQTAwMzc5OTE4IC8qIE5v
ZGVMaXN0V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOEJDMEMwRTA4RDE5RjE5MDAzNzk5MTggLyogTm9kZUxpc3RXcmFwcGVyLmNwcCAq
LzsgfTsKLQkJQThCQzBDQUYwOEQxOUYxQTAwMzc5OTE4IC8qIE5vZGVMaXN0V3JhcHBlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBDMEYwOEQx
OUYxOTAwMzc5OTE4IC8qIE5vZGVMaXN0V3JhcHBlci5oICovOyB9OwotCQlBOEJDMENCMDA4RDE5
RjFBMDAzNzk5MTggLyogTm9kZVdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBDMTAwOEQxOUYxOTAwMzc5OTE4IC8qIE5vZGVXcmFw
cGVyLmNwcCAqLzsgfTsKLQkJQThCQzBDQjEwOEQxOUYxQTAwMzc5OTE4IC8qIE5vZGVXcmFwcGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEMx
MTA4RDE5RjE5MDAzNzk5MTggLyogTm9kZVdyYXBwZXIuaCAqLzsgfTsKLQkJQThCQzBDQjIwOEQx
OUYxQTAwMzc5OTE4IC8qIE5vdGF0aW9uV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEMxMjA4RDE5RjE5MDAzNzk5MTggLyogTm90
YXRpb25XcmFwcGVyLmNwcCAqLzsgfTsKLQkJQThCQzBDQjMwOEQxOUYxQTAwMzc5OTE4IC8qIE5v
dGF0aW9uV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQThCQzBDMTMwOEQxOUYxOTAwMzc5OTE4IC8qIE5vdGF0aW9uV3JhcHBlci5oICovOyB9
OwotCQlBOEJDMENCNDA4RDE5RjFBMDAzNzk5MTggLyogUHJvY2Vzc2luZ0luc3RydWN0aW9uV3Jh
cHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEJDMEMxNDA4RDE5RjE5MDAzNzk5MTggLyogUHJvY2Vzc2luZ0luc3RydWN0aW9uV3JhcHBlci5j
cHAgKi87IH07Ci0JCUE4QkMwQ0I1MDhEMTlGMUEwMDM3OTkxOCAvKiBQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb25XcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBOEJDMEMxNTA4RDE5RjE5MDAzNzk5MTggLyogUHJvY2Vzc2luZ0luc3RydWN0aW9uV3Jh
cHBlci5oICovOyB9OwotCQlBOEJDMENCNjA4RDE5RjFBMDAzNzk5MTggLyogVGV4dFdyYXBwZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBD
MTYwOEQxOUYxOTAwMzc5OTE4IC8qIFRleHRXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQThCQzBDQjcw
OEQxOUYxQTAwMzc5OTE4IC8qIFRleHRXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEMxNzA4RDE5RjE5MDAzNzk5MTggLyogVGV4dFdy
YXBwZXIuaCAqLzsgfTsKLQkJQThCQzBDQjgwOEQxOUYxQTAwMzc5OTE4IC8qIFR5cGVJbmZvV3Jh
cHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEJDMEMxODA4RDE5RjE5MDAzNzk5MTggLyogVHlwZUluZm9XcmFwcGVyLmNwcCAqLzsgfTsKLQkJ
QThCQzBDQjkwOEQxOUYxQTAwMzc5OTE4IC8qIFR5cGVJbmZvV3JhcHBlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBDMTkwOEQxOUYxOTAwMzc5
OTE4IC8qIFR5cGVJbmZvV3JhcHBlci5oICovOyB9OwotCQlBOEJDMENCQTA4RDE5RjFBMDAzNzk5
MTggLyogQ291bnRlcldyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQThCQzBDMUIwOEQxOUYxOTAwMzc5OTE4IC8qIENvdW50ZXJXcmFwcGVy
LmNwcCAqLzsgfTsKLQkJQThCQzBDQkIwOEQxOUYxQTAwMzc5OTE4IC8qIENvdW50ZXJXcmFwcGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEMx
QzA4RDE5RjE5MDAzNzk5MTggLyogQ291bnRlcldyYXBwZXIuaCAqLzsgfTsKLQkJQThCQzBDQkMw
OEQxOUYxQTAwMzc5OTE4IC8qIENTU0NoYXJzZXRSdWxlV3JhcHBlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEMxRDA4RDE5RjE5MDAzNzk5
MTggLyogQ1NTQ2hhcnNldFJ1bGVXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQThCQzBDQkQwOEQxOUYx
QTAwMzc5OTE4IC8qIENTU0NoYXJzZXRSdWxlV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBDMUUwOEQxOUYxOTAwMzc5OTE4IC8qIENT
U0NoYXJzZXRSdWxlV3JhcHBlci5oICovOyB9OwotCQlBOEJDMENCRTA4RDE5RjFBMDAzNzk5MTgg
LyogQ1NTRm9udEZhY2VSdWxlV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEMxRjA4RDE5RjE5MDAzNzk5MTggLyogQ1NTRm9udEZh
Y2VSdWxlV3JhcHBlci5jcHAgKi87IH07Ci0JCUE4QkMwQ0JGMDhEMTlGMUEwMDM3OTkxOCAvKiBD
U1NGb250RmFjZVJ1bGVXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBOEJDMEMyMDA4RDE5RjE5MDAzNzk5MTggLyogQ1NTRm9udEZhY2VSdWxl
V3JhcHBlci5oICovOyB9OwotCQlBOEJDMENDMDA4RDE5RjFBMDAzNzk5MTggLyogQ1NTSW1wb3J0
UnVsZVdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQThCQzBDMjEwOEQxOUYxOTAwMzc5OTE4IC8qIENTU0ltcG9ydFJ1bGVXcmFwcGVyLmNw
cCAqLzsgfTsKLQkJQThCQzBDQzEwOEQxOUYxQTAwMzc5OTE4IC8qIENTU0ltcG9ydFJ1bGVXcmFw
cGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJD
MEMyMjA4RDE5RjE5MDAzNzk5MTggLyogQ1NTSW1wb3J0UnVsZVdyYXBwZXIuaCAqLzsgfTsKLQkJ
QThCQzBDQzIwOEQxOUYxQTAwMzc5OTE4IC8qIENTU01lZGlhUnVsZVdyYXBwZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBDMjMwOEQxOUYx
OTAwMzc5OTE4IC8qIENTU01lZGlhUnVsZVdyYXBwZXIuY3BwICovOyB9OwotCQlBOEJDMENDMzA4
RDE5RjFBMDAzNzk5MTggLyogQ1NTTWVkaWFSdWxlV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBDMjQwOEQxOUYxOTAwMzc5OTE4IC8q
IENTU01lZGlhUnVsZVdyYXBwZXIuaCAqLzsgfTsKLQkJQThCQzBDQzQwOEQxOUYxQTAwMzc5OTE4
IC8qIENTU1BhZ2VSdWxlV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEMyNTA4RDE5RjE5MDAzNzk5MTggLyogQ1NTUGFnZVJ1bGVX
cmFwcGVyLmNwcCAqLzsgfTsKLQkJQThCQzBDQzUwOEQxOUYxQTAwMzc5OTE4IC8qIENTU1BhZ2VS
dWxlV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQThCQzBDMjYwOEQxOUYxOTAwMzc5OTE4IC8qIENTU1BhZ2VSdWxlV3JhcHBlci5oICovOyB9
OwotCQlBOEJDMENDNjA4RDE5RjFBMDAzNzk5MTggLyogQ1NTUHJpbWl0aXZlVmFsdWVXcmFwcGVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMw
QzI3MDhEMTlGMTkwMDM3OTkxOCAvKiBDU1NQcmltaXRpdmVWYWx1ZVdyYXBwZXIuY3BwICovOyB9
OwotCQlBOEJDMENDNzA4RDE5RjFBMDAzNzk5MTggLyogQ1NTUHJpbWl0aXZlVmFsdWVXcmFwcGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEMy
ODA4RDE5RjE5MDAzNzk5MTggLyogQ1NTUHJpbWl0aXZlVmFsdWVXcmFwcGVyLmggKi87IH07Ci0J
CUE4QkMwQ0M4MDhEMTlGMUEwMDM3OTkxOCAvKiBDU1NSdWxlTGlzdFdyYXBwZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBDMjkwOEQxOUYx
OTAwMzc5OTE4IC8qIENTU1J1bGVMaXN0V3JhcHBlci5jcHAgKi87IH07Ci0JCUE4QkMwQ0M5MDhE
MTlGMUEwMDM3OTkxOCAvKiBDU1NSdWxlTGlzdFdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwQzJBMDhEMTlGMTkwMDM3OTkxOCAvKiBD
U1NSdWxlTGlzdFdyYXBwZXIuaCAqLzsgfTsKLQkJQThCQzBDQ0EwOEQxOUYxQTAwMzc5OTE4IC8q
IENTU1J1bGVXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4QkMwQzJCMDhEMTlGMTkwMDM3OTkxOCAvKiBDU1NSdWxlV3JhcHBlci5jcHAg
Ki87IH07Ci0JCUE4QkMwQ0NCMDhEMTlGMUEwMDM3OTkxOCAvKiBDU1NSdWxlV3JhcHBlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBDMkMwOEQx
OUYxOTAwMzc5OTE4IC8qIENTU1J1bGVXcmFwcGVyLmggKi87IH07Ci0JCUE4QkMwQ0NDMDhEMTlG
MUEwMDM3OTkxOCAvKiBDU1NTdHlsZURlY2xhcmF0aW9uV3JhcHBlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEMyRDA4RDE5RjE5MDAzNzk5
MTggLyogQ1NTU3R5bGVEZWNsYXJhdGlvbldyYXBwZXIuY3BwICovOyB9OwotCQlBOEJDMENDRDA4
RDE5RjFBMDAzNzk5MTggLyogQ1NTU3R5bGVEZWNsYXJhdGlvbldyYXBwZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwQzJFMDhEMTlGMTkwMDM3
OTkxOCAvKiBDU1NTdHlsZURlY2xhcmF0aW9uV3JhcHBlci5oICovOyB9OwotCQlBOEJDMENDRTA4
RDE5RjFBMDAzNzk5MTggLyogQ1NTU3R5bGVSdWxlV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEMyRjA4RDE5RjE5MDAzNzk5MTgg
LyogQ1NTU3R5bGVSdWxlV3JhcHBlci5jcHAgKi87IH07Ci0JCUE4QkMwQ0NGMDhEMTlGMUEwMDM3
OTkxOCAvKiBDU1NTdHlsZVJ1bGVXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEMzMDA4RDE5RjE5MDAzNzk5MTggLyogQ1NTU3R5bGVS
dWxlV3JhcHBlci5oICovOyB9OwotCQlBOEJDMENEMDA4RDE5RjFBMDAzNzk5MTggLyogQ1NTU3R5
bGVTaGVldFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQThCQzBDMzEwOEQxOUYxOTAwMzc5OTE4IC8qIENTU1N0eWxlU2hlZXRXcmFwcGVy
LmNwcCAqLzsgfTsKLQkJQThCQzBDRDEwOEQxOUYxQTAwMzc5OTE4IC8qIENTU1N0eWxlU2hlZXRX
cmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEJDMEMzMjA4RDE5RjE5MDAzNzk5MTggLyogQ1NTU3R5bGVTaGVldFdyYXBwZXIuaCAqLzsgfTsK
LQkJQThCQzBDRDIwOEQxOUYxQTAwMzc5OTE4IC8qIENTU1Vua25vd25SdWxlV3JhcHBlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEMzMzA4
RDE5RjE5MDAzNzk5MTggLyogQ1NTVW5rbm93blJ1bGVXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQThC
QzBDRDMwOEQxOUYxQTAwMzc5OTE4IC8qIENTU1Vua25vd25SdWxlV3JhcHBlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBDMzQwOEQxOUYxOTAw
Mzc5OTE4IC8qIENTU1Vua25vd25SdWxlV3JhcHBlci5oICovOyB9OwotCQlBOEJDMENENDA4RDE5
RjFBMDAzNzk5MTggLyogQ1NTVmFsdWVMaXN0V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEMzNTA4RDE5RjE5MDAzNzk5MTggLyog
Q1NTVmFsdWVMaXN0V3JhcHBlci5jcHAgKi87IH07Ci0JCUE4QkMwQ0Q1MDhEMTlGMUEwMDM3OTkx
OCAvKiBDU1NWYWx1ZUxpc3RXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEMzNjA4RDE5RjE5MDAzNzk5MTggLyogQ1NTVmFsdWVMaXN0
V3JhcHBlci5oICovOyB9OwotCQlBOEJDMENENjA4RDE5RjFBMDAzNzk5MTggLyogQ1NTVmFsdWVX
cmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4QkMwQzM3MDhEMTlGMTkwMDM3OTkxOCAvKiBDU1NWYWx1ZVdyYXBwZXIuY3BwICovOyB9Owot
CQlBOEJDMENENzA4RDE5RjFBMDAzNzk5MTggLyogQ1NTVmFsdWVXcmFwcGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEMzODA4RDE5RjE5MDAz
Nzk5MTggLyogQ1NTVmFsdWVXcmFwcGVyLmggKi87IH07Ci0JCUE4QkMwQ0Q4MDhEMTlGMUEwMDM3
OTkxOCAvKiBEb2N1bWVudENTU1dyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBDMzkwOEQxOUYxOTAwMzc5OTE4IC8qIERvY3VtZW50
Q1NTV3JhcHBlci5jcHAgKi87IH07Ci0JCUE4QkMwQ0Q5MDhEMTlGMUEwMDM3OTkxOCAvKiBEb2N1
bWVudENTU1dyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4QkMwQzNBMDhEMTlGMTkwMDM3OTkxOCAvKiBEb2N1bWVudENTU1dyYXBwZXIuaCAq
LzsgfTsKLQkJQThCQzBDREEwOEQxOUYxQTAwMzc5OTE4IC8qIFJlY3RXcmFwcGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwQzNCMDhEMTlG
MTkwMDM3OTkxOCAvKiBSZWN0V3JhcHBlci5jcHAgKi87IH07Ci0JCUE4QkMwQ0RCMDhEMTlGMUEw
MDM3OTkxOCAvKiBSZWN0V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQThCQzBDM0MwOEQxOUYxOTAwMzc5OTE4IC8qIFJlY3RXcmFwcGVyLmgg
Ki87IH07Ci0JCUE4QkMwQ0RDMDhEMTlGMUEwMDM3OTkxOCAvKiBSR0JDb2xvcldyYXBwZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBDM0Qw
OEQxOUYxOTAwMzc5OTE4IC8qIFJHQkNvbG9yV3JhcHBlci5jcHAgKi87IH07Ci0JCUE4QkMwQ0RE
MDhEMTlGMUIwMDM3OTkxOCAvKiBSR0JDb2xvcldyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwQzNFMDhEMTlGMTkwMDM3OTkxOCAvKiBS
R0JDb2xvcldyYXBwZXIuaCAqLzsgfTsKLQkJQThCQzBDREUwOEQxOUYxQjAwMzc5OTE4IC8qIERv
Y3VtZW50RXZlbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4QkMwQzQwMDhEMTlGMTkwMDM3OTkxOCAvKiBEb2N1bWVudEV2ZW50V3Jh
cHBlci5jcHAgKi87IH07Ci0JCUE4QkMwQ0RGMDhEMTlGMUIwMDM3OTkxOCAvKiBEb2N1bWVudEV2
ZW50V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQThCQzBDNDEwOEQxOUYxOTAwMzc5OTE4IC8qIERvY3VtZW50RXZlbnRXcmFwcGVyLmggKi87
IH07Ci0JCUE4QkMwQ0UwMDhEMTlGMUIwMDM3OTkxOCAvKiBFdmVudEV4Y2VwdGlvbldyYXBwZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBD
NDIwOEQxOUYxOTAwMzc5OTE4IC8qIEV2ZW50RXhjZXB0aW9uV3JhcHBlci5jcHAgKi87IH07Ci0J
CUE4QkMwQ0UxMDhEMTlGMUIwMDM3OTkxOCAvKiBFdmVudEV4Y2VwdGlvbldyYXBwZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwQzQzMDhEMTlG
MTkwMDM3OTkxOCAvKiBFdmVudEV4Y2VwdGlvbldyYXBwZXIuaCAqLzsgfTsKLQkJQThCQzBDRTIw
OEQxOUYxQjAwMzc5OTE4IC8qIEV2ZW50TGlzdGVuZXJXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwQzQ0MDhEMTlGMTkwMDM3OTkx
OCAvKiBFdmVudExpc3RlbmVyV3JhcHBlci5jcHAgKi87IH07Ci0JCUE4QkMwQ0UzMDhEMTlGMUIw
MDM3OTkxOCAvKiBFdmVudExpc3RlbmVyV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBDNDUwOEQxOUYxOTAwMzc5OTE4IC8qIEV2ZW50
TGlzdGVuZXJXcmFwcGVyLmggKi87IH07Ci0JCUE4QkMwQ0U0MDhEMTlGMUIwMDM3OTkxOCAvKiBF
dmVudFRhcmdldFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThCQzBDNDYwOEQxOUYxOTAwMzc5OTE4IC8qIEV2ZW50VGFyZ2V0V3JhcHBl
ci5jcHAgKi87IH07Ci0JCUE4QkMwQ0U1MDhEMTlGMUIwMDM3OTkxOCAvKiBFdmVudFRhcmdldFdy
YXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
QkMwQzQ3MDhEMTlGMTkwMDM3OTkxOCAvKiBFdmVudFRhcmdldFdyYXBwZXIuaCAqLzsgfTsKLQkJ
QThCQzBDRTYwOEQxOUYxQjAwMzc5OTE4IC8qIEV2ZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEM0ODA4RDE5RjE5MDAzNzk5
MTggLyogRXZlbnRXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQThCQzBDRTcwOEQxOUYxQjAwMzc5OTE4
IC8qIEV2ZW50V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQThCQzBDNDkwOEQxOUYxOTAwMzc5OTE4IC8qIEV2ZW50V3JhcHBlci5oICovOyB9
OwotCQlBOEJDMENFODA4RDE5RjFCMDAzNzk5MTggLyogTW91c2VFdmVudFdyYXBwZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBDNEEwOEQx
OUYxOTAwMzc5OTE4IC8qIE1vdXNlRXZlbnRXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQThCQzBDRTkw
OEQxOUYxQjAwMzc5OTE4IC8qIE1vdXNlRXZlbnRXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEM0QjA4RDE5RjE5MDAzNzk5MTggLyog
TW91c2VFdmVudFdyYXBwZXIuaCAqLzsgfTsKLQkJQThCQzBDRUEwOEQxOUYxQjAwMzc5OTE4IC8q
IE11dGF0aW9uRXZlbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4QkMwQzRDMDhEMTlGMTkwMDM3OTkxOCAvKiBNdXRhdGlvbkV2ZW50
V3JhcHBlci5jcHAgKi87IH07Ci0JCUE4QkMwQ0VCMDhEMTlGMUIwMDM3OTkxOCAvKiBNdXRhdGlv
bkV2ZW50V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQThCQzBDNEQwOEQxOUYxOTAwMzc5OTE4IC8qIE11dGF0aW9uRXZlbnRXcmFwcGVyLmgg
Ki87IH07Ci0JCUE4QkMwQ0VDMDhEMTlGMUIwMDM3OTkxOCAvKiBVSUV2ZW50V3JhcHBlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEM0RTA4
RDE5RjE5MDAzNzk5MTggLyogVUlFdmVudFdyYXBwZXIuY3BwICovOyB9OwotCQlBOEJDMENFRDA4
RDE5RjFCMDAzNzk5MTggLyogVUlFdmVudFdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwQzRGMDhEMTlGMTkwMDM3OTkxOCAvKiBVSUV2
ZW50V3JhcHBlci5oICovOyB9OwotCQlBOEJDMENFRTA4RDE5RjFCMDAzNzk5MTggLyogRG9jdW1l
bnRSYW5nZVdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQThCQzBDNTEwOEQxOUYxOTAwMzc5OTE4IC8qIERvY3VtZW50UmFuZ2VXcmFwcGVy
LmNwcCAqLzsgfTsKLQkJQThCQzBDRUYwOEQxOUYxQjAwMzc5OTE4IC8qIERvY3VtZW50UmFuZ2VX
cmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEJDMEM1MjA4RDE5RjE5MDAzNzk5MTggLyogRG9jdW1lbnRSYW5nZVdyYXBwZXIuaCAqLzsgfTsK
LQkJQThCQzBDRjAwOEQxOUYxQjAwMzc5OTE4IC8qIFJhbmdlRXhjZXB0aW9uV3JhcHBlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEM1MzA4
RDE5RjE5MDAzNzk5MTggLyogUmFuZ2VFeGNlcHRpb25XcmFwcGVyLmNwcCAqLzsgfTsKLQkJQThC
QzBDRjEwOEQxOUYxQjAwMzc5OTE4IC8qIFJhbmdlRXhjZXB0aW9uV3JhcHBlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBDNTQwOEQxOUYxQTAw
Mzc5OTE4IC8qIFJhbmdlRXhjZXB0aW9uV3JhcHBlci5oICovOyB9OwotCQlBOEJDMENGMjA4RDE5
RjFCMDAzNzk5MTggLyogUmFuZ2VXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwQzU1MDhEMTlGMUEwMDM3OTkxOCAvKiBSYW5nZVdy
YXBwZXIuY3BwICovOyB9OwotCQlBOEJDMENGMzA4RDE5RjFCMDAzNzk5MTggLyogUmFuZ2VXcmFw
cGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJD
MEM1NjA4RDE5RjFBMDAzNzk5MTggLyogUmFuZ2VXcmFwcGVyLmggKi87IH07Ci0JCUE4QkMwQ0Y0
MDhEMTlGMUIwMDM3OTkxOCAvKiBEb2N1bWVudFN0eWxlV3JhcHBlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEM1ODA4RDE5RjFBMDAzNzk5
MTggLyogRG9jdW1lbnRTdHlsZVdyYXBwZXIuY3BwICovOyB9OwotCQlBOEJDMENGNTA4RDE5RjFC
MDAzNzk5MTggLyogRG9jdW1lbnRTdHlsZVdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwQzU5MDhEMTlGMUEwMDM3OTkxOCAvKiBEb2N1
bWVudFN0eWxlV3JhcHBlci5oICovOyB9OwotCQlBOEJDMENGNjA4RDE5RjFCMDAzNzk5MTggLyog
TGlua1N0eWxlV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBOEJDMEM1QTA4RDE5RjFBMDAzNzk5MTggLyogTGlua1N0eWxlV3JhcHBlci5j
cHAgKi87IH07Ci0JCUE4QkMwQ0Y3MDhEMTlGMUIwMDM3OTkxOCAvKiBMaW5rU3R5bGVXcmFwcGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEM1
QjA4RDE5RjFBMDAzNzk5MTggLyogTGlua1N0eWxlV3JhcHBlci5oICovOyB9OwotCQlBOEJDMENG
ODA4RDE5RjFCMDAzNzk5MTggLyogTWVkaWFMaXN0V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEM1QzA4RDE5RjFBMDAzNzk5MTgg
LyogTWVkaWFMaXN0V3JhcHBlci5jcHAgKi87IH07Ci0JCUE4QkMwQ0Y5MDhEMTlGMUIwMDM3OTkx
OCAvKiBNZWRpYUxpc3RXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBOEJDMEM1RDA4RDE5RjFBMDAzNzk5MTggLyogTWVkaWFMaXN0V3JhcHBl
ci5oICovOyB9OwotCQlBOEJDMENGQTA4RDE5RjFCMDAzNzk5MTggLyogU3R5bGVTaGVldExpc3RX
cmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4QkMwQzVFMDhEMTlGMUEwMDM3OTkxOCAvKiBTdHlsZVNoZWV0TGlzdFdyYXBwZXIuY3BwICov
OyB9OwotCQlBOEJDMENGQjA4RDE5RjFCMDAzNzk5MTggLyogU3R5bGVTaGVldExpc3RXcmFwcGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEM1
RjA4RDE5RjFBMDAzNzk5MTggLyogU3R5bGVTaGVldExpc3RXcmFwcGVyLmggKi87IH07Ci0JCUE4
QkMwQ0ZDMDhEMTlGMUIwMDM3OTkxOCAvKiBTdHlsZVNoZWV0V3JhcHBlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEM2MDA4RDE5RjFBMDAz
Nzk5MTggLyogU3R5bGVTaGVldFdyYXBwZXIuY3BwICovOyB9OwotCQlBOEJDMENGRDA4RDE5RjFC
MDAzNzk5MTggLyogU3R5bGVTaGVldFdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwQzYxMDhEMTlGMUEwMDM3OTkxOCAvKiBTdHlsZVNo
ZWV0V3JhcHBlci5oICovOyB9OwotCQlBOEJDMENGRTA4RDE5RjFCMDAzNzk5MTggLyogRG9jdW1l
bnRUcmF2ZXJzYWxXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4QkMwQzYzMDhEMTlGMUEwMDM3OTkxOCAvKiBEb2N1bWVudFRyYXZlcnNh
bFdyYXBwZXIuY3BwICovOyB9OwotCQlBOEJDMENGRjA4RDE5RjFCMDAzNzk5MTggLyogRG9jdW1l
bnRUcmF2ZXJzYWxXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBOEJDMEM2NDA4RDE5RjFBMDAzNzk5MTggLyogRG9jdW1lbnRUcmF2ZXJzYWxX
cmFwcGVyLmggKi87IH07Ci0JCUE4QkMwRDAwMDhEMTlGMUIwMDM3OTkxOCAvKiBOb2RlRmlsdGVy
V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBOEJDMEM2NTA4RDE5RjFBMDAzNzk5MTggLyogTm9kZUZpbHRlcldyYXBwZXIuY3BwICovOyB9
OwotCQlBOEJDMEQwMTA4RDE5RjFCMDAzNzk5MTggLyogTm9kZUZpbHRlcldyYXBwZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwQzY2MDhEMTlG
MUEwMDM3OTkxOCAvKiBOb2RlRmlsdGVyV3JhcHBlci5oICovOyB9OwotCQlBOEJDMEQwMjA4RDE5
RjFCMDAzNzk5MTggLyogTm9kZUl0ZXJhdG9yV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEM2NzA4RDE5RjFBMDAzNzk5MTggLyog
Tm9kZUl0ZXJhdG9yV3JhcHBlci5jcHAgKi87IH07Ci0JCUE4QkMwRDAzMDhEMTlGMUIwMDM3OTkx
OCAvKiBOb2RlSXRlcmF0b3JXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEM2ODA4RDE5RjFBMDAzNzk5MTggLyogTm9kZUl0ZXJhdG9y
V3JhcHBlci5oICovOyB9OwotCQlBOEJDMEQwNDA4RDE5RjFCMDAzNzk5MTggLyogVHJlZVdhbGtl
cldyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQThCQzBDNjkwOEQxOUYxQTAwMzc5OTE4IC8qIFRyZWVXYWxrZXJXcmFwcGVyLmNwcCAqLzsg
fTsKLQkJQThCQzBEMDUwOEQxOUYxQjAwMzc5OTE4IC8qIFRyZWVXYWxrZXJXcmFwcGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEM2QTA4RDE5
RjFBMDAzNzk5MTggLyogVHJlZVdhbGtlcldyYXBwZXIuaCAqLzsgfTsKLQkJQThCQzBEMDcwOEQx
OUYxQjAwMzc5OTE4IC8qIEFic3RyYWN0Vmlld1dyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwQzZEMDhEMTlGMUEwMDM3OTkxOCAvKiBB
YnN0cmFjdFZpZXdXcmFwcGVyLmggKi87IH07Ci0JCUE4QkMwRDBBMDhEMTlGMUIwMDM3OTkxOCAv
KiBYUGF0aEV2YWx1YXRvcldyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThCQzBDNzEwOEQxOUYxQTAwMzc5OTE4IC8qIFhQYXRoRXZhbHVh
dG9yV3JhcHBlci5jcHAgKi87IH07Ci0JCUE4QkMwRDBCMDhEMTlGMUIwMDM3OTkxOCAvKiBYUGF0
aEV2YWx1YXRvcldyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4QkMwQzcyMDhEMTlGMUEwMDM3OTkxOCAvKiBYUGF0aEV2YWx1YXRvcldyYXBw
ZXIuaCAqLzsgfTsKLQkJQThCQzBEMEMwOEQxOUYxQjAwMzc5OTE4IC8qIFhQYXRoRXhjZXB0aW9u
V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBOEJDMEM3MzA4RDE5RjFBMDAzNzk5MTggLyogWFBhdGhFeGNlcHRpb25XcmFwcGVyLmNwcCAq
LzsgfTsKLQkJQThCQzBEMEQwOEQxOUYxQjAwMzc5OTE4IC8qIFhQYXRoRXhjZXB0aW9uV3JhcHBl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBD
NzQwOEQxOUYxQTAwMzc5OTE4IC8qIFhQYXRoRXhjZXB0aW9uV3JhcHBlci5oICovOyB9OwotCQlB
OEJDMEQwRTA4RDE5RjFCMDAzNzk5MTggLyogWFBhdGhFeHByZXNzaW9uV3JhcHBlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEM3NTA4RDE5
RjFBMDAzNzk5MTggLyogWFBhdGhFeHByZXNzaW9uV3JhcHBlci5jcHAgKi87IH07Ci0JCUE4QkMw
RDBGMDhEMTlGMUIwMDM3OTkxOCAvKiBYUGF0aEV4cHJlc3Npb25XcmFwcGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEM3NjA4RDE5RjFBMDAz
Nzk5MTggLyogWFBhdGhFeHByZXNzaW9uV3JhcHBlci5oICovOyB9OwotCQlBOEJDMEQxMDA4RDE5
RjFCMDAzNzk5MTggLyogWFBhdGhOYW1lc3BhY2VXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwQzc3MDhEMTlGMUEwMDM3OTkxOCAv
KiBYUGF0aE5hbWVzcGFjZVdyYXBwZXIuY3BwICovOyB9OwotCQlBOEJDMEQxMTA4RDE5RjFCMDAz
Nzk5MTggLyogWFBhdGhOYW1lc3BhY2VXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEM3ODA4RDE5RjFBMDAzNzk5MTggLyogWFBhdGhO
YW1lc3BhY2VXcmFwcGVyLmggKi87IH07Ci0JCUE4QkMwRDEyMDhEMTlGMUIwMDM3OTkxOCAvKiBY
UGF0aE5TUmVzb2x2ZXJXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4QkMwQzc5MDhEMTlGMUEwMDM3OTkxOCAvKiBYUGF0aE5TUmVzb2x2
ZXJXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQThCQzBEMTMwOEQxOUYxQjAwMzc5OTE4IC8qIFhQYXRo
TlNSZXNvbHZlcldyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4QkMwQzdBMDhEMTlGMUEwMDM3OTkxOCAvKiBYUGF0aE5TUmVzb2x2ZXJXcmFw
cGVyLmggKi87IH07Ci0JCUE4QkMwRDE0MDhEMTlGMUIwMDM3OTkxOCAvKiBYUGF0aFJlc3VsdFdy
YXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThCQzBDN0IwOEQxOUYxQTAwMzc5OTE4IC8qIFhQYXRoUmVzdWx0V3JhcHBlci5jcHAgKi87IH07
Ci0JCUE4QkMwRDE1MDhEMTlGMUIwMDM3OTkxOCAvKiBYUGF0aFJlc3VsdFdyYXBwZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwQzdDMDhEMTlG
MUEwMDM3OTkxOCAvKiBYUGF0aFJlc3VsdFdyYXBwZXIuaCAqLzsgfTsKLQkJQThCQzBEMTYwOEQx
OUYxQjAwMzc5OTE4IC8qIFhQb2ludGVyRXZhbHVhdG9yV3JhcHBlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEM3RTA4RDE5RjFBMDAzNzk5
MTggLyogWFBvaW50ZXJFdmFsdWF0b3JXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQThCQzBEMTcwOEQx
OUYxQjAwMzc5OTE4IC8qIFhQb2ludGVyRXZhbHVhdG9yV3JhcHBlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBDN0YwOEQxOUYxQTAwMzc5OTE4
IC8qIFhQb2ludGVyRXZhbHVhdG9yV3JhcHBlci5oICovOyB9OwotCQlBOEJDMEQxODA4RDE5RjFC
MDAzNzk5MTggLyogWFBvaW50ZXJFeGNlcHRpb25XcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwQzgwMDhEMTlGMUEwMDM3OTkxOCAv
KiBYUG9pbnRlckV4Y2VwdGlvbldyYXBwZXIuY3BwICovOyB9OwotCQlBOEJDMEQxOTA4RDE5RjFC
MDAzNzk5MTggLyogWFBvaW50ZXJFeGNlcHRpb25XcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMEM4MTA4RDE5RjFBMDAzNzk5MTggLyog
WFBvaW50ZXJFeGNlcHRpb25XcmFwcGVyLmggKi87IH07Ci0JCUE4QkMwRDFBMDhEMTlGMUIwMDM3
OTkxOCAvKiBYUG9pbnRlckV4cHJlc3Npb25XcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwQzgyMDhEMTlGMUEwMDM3OTkxOCAvKiBY
UG9pbnRlckV4cHJlc3Npb25XcmFwcGVyLmNwcCAqLzsgfTsKLQkJQThCQzBEMUIwOEQxOUYxQjAw
Mzc5OTE4IC8qIFhQb2ludGVyRXhwcmVzc2lvbldyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwQzgzMDhEMTlGMUEwMDM3OTkxOCAvKiBY
UG9pbnRlckV4cHJlc3Npb25XcmFwcGVyLmggKi87IH07Ci0JCUE4QkMwRDFDMDhEMTlGMUIwMDM3
OTkxOCAvKiBYUG9pbnRlclJlc3VsdFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBDODQwOEQxOUYxQTAwMzc5OTE4IC8qIFhQb2lu
dGVyUmVzdWx0V3JhcHBlci5jcHAgKi87IH07Ci0JCUE4QkMwRDFEMDhEMTlGMUIwMDM3OTkxOCAv
KiBYUG9pbnRlclJlc3VsdFdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4QkMwQzg1MDhEMTlGMUEwMDM3OTkxOCAvKiBYUG9pbnRlclJlc3Vs
dFdyYXBwZXIuaCAqLzsgfTsKLQkJQThCQzBEQjYwOEQ0MjMzOTAwMzc5OTE4IC8qIERPTUltcGxl
bWVudGF0aW9uTFNXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4QkMwREE0MDhENDIzMzkwMDM3OTkxOCAvKiBET01JbXBsZW1lbnRhdGlv
bkxTV3JhcHBlci5jcHAgKi87IH07Ci0JCUE4QkMwREI3MDhENDIzMzkwMDM3OTkxOCAvKiBET01J
bXBsZW1lbnRhdGlvbkxTV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQThCQzBEQTUwOEQ0MjMzOTAwMzc5OTE4IC8qIERPTUltcGxlbWVudGF0
aW9uTFNXcmFwcGVyLmggKi87IH07Ci0JCUE4QkMwREI4MDhENDIzMzkwMDM3OTkxOCAvKiBMU0V4
Y2VwdGlvbldyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQThCQzBEQTYwOEQ0MjMzOTAwMzc5OTE4IC8qIExTRXhjZXB0aW9uV3JhcHBlci5j
cHAgKi87IH07Ci0JCUE4QkMwREI5MDhENDIzMzkwMDM3OTkxOCAvKiBMU0V4Y2VwdGlvbldyYXBw
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMw
REE3MDhENDIzMzkwMDM3OTkxOCAvKiBMU0V4Y2VwdGlvbldyYXBwZXIuaCAqLzsgfTsKLQkJQThC
QzBEQkEwOEQ0MjMzOTAwMzc5OTE4IC8qIExTSW5wdXRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwREE4MDhENDIzMzkwMDM3OTkx
OCAvKiBMU0lucHV0V3JhcHBlci5jcHAgKi87IH07Ci0JCUE4QkMwREJCMDhENDIzMzkwMDM3OTkx
OCAvKiBMU0lucHV0V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThCQzBEQTkwOEQ0MjMzOTAwMzc5OTE4IC8qIExTSW5wdXRXcmFwcGVyLmgg
Ki87IH07Ci0JCUE4QkMwREJDMDhENDIzMzkwMDM3OTkxOCAvKiBMU091dHB1dFdyYXBwZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBEQUEw
OEQ0MjMzOTAwMzc5OTE4IC8qIExTT3V0cHV0V3JhcHBlci5jcHAgKi87IH07Ci0JCUE4QkMwREJE
MDhENDIzMzkwMDM3OTkxOCAvKiBMU091dHB1dFdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwREFCMDhENDIzMzkwMDM3OTkxOCAvKiBM
U091dHB1dFdyYXBwZXIuaCAqLzsgfTsKLQkJQThCQzBEQkUwOEQ0MjMzOTAwMzc5OTE4IC8qIExT
UGFyc2VyRmlsdGVyV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBOEJDMERBQzA4RDQyMzM5MDAzNzk5MTggLyogTFNQYXJzZXJGaWx0ZXJX
cmFwcGVyLmNwcCAqLzsgfTsKLQkJQThCQzBEQkYwOEQ0MjMzOTAwMzc5OTE4IC8qIExTUGFyc2Vy
RmlsdGVyV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQThCQzBEQUQwOEQ0MjMzOTAwMzc5OTE4IC8qIExTUGFyc2VyRmlsdGVyV3JhcHBlci5o
ICovOyB9OwotCQlBOEJDMERDMDA4RDQyMzM5MDAzNzk5MTggLyogTFNQYXJzZXJXcmFwcGVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwREFF
MDhENDIzMzkwMDM3OTkxOCAvKiBMU1BhcnNlcldyYXBwZXIuY3BwICovOyB9OwotCQlBOEJDMERD
MTA4RDQyMzM5MDAzNzk5MTggLyogTFNQYXJzZXJXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJDMERBRjA4RDQyMzM5MDAzNzk5MTggLyog
TFNQYXJzZXJXcmFwcGVyLmggKi87IH07Ci0JCUE4QkMwREMyMDhENDIzMzkwMDM3OTkxOCAvKiBM
U1Jlc291cmNlUmVzb2x2ZXJXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwREIwMDhENDIzMzkwMDM3OTkxOCAvKiBMU1Jlc291cmNl
UmVzb2x2ZXJXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQThCQzBEQzMwOEQ0MjMzOTAwMzc5OTE4IC8q
IExTUmVzb3VyY2VSZXNvbHZlcldyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwREIxMDhENDIzMzkwMDM3OTkxOCAvKiBMU1Jlc291cmNl
UmVzb2x2ZXJXcmFwcGVyLmggKi87IH07Ci0JCUE4QkMwREM0MDhENDIzMzkwMDM3OTkxOCAvKiBM
U1NlcmlhbGl6ZXJGaWx0ZXJXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwREIyMDhENDIzMzkwMDM3OTkxOCAvKiBMU1NlcmlhbGl6
ZXJGaWx0ZXJXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQThCQzBEQzUwOEQ0MjMzOTAwMzc5OTE4IC8q
IExTU2VyaWFsaXplckZpbHRlcldyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwREIzMDhENDIzMzkwMDM3OTkxOCAvKiBMU1NlcmlhbGl6
ZXJGaWx0ZXJXcmFwcGVyLmggKi87IH07Ci0JCUE4QkMwREM2MDhENDIzMzkwMDM3OTkxOCAvKiBM
U1NlcmlhbGl6ZXJXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4QkMwREI0MDhENDIzMzkwMDM3OTkxOCAvKiBMU1NlcmlhbGl6ZXJXcmFw
cGVyLmNwcCAqLzsgfTsKLQkJQThCQzBEQzcwOEQ0MjMzOTAwMzc5OTE4IC8qIExTU2VyaWFsaXpl
cldyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4QkMwREI1MDhENDIzMzkwMDM3OTkxOCAvKiBMU1NlcmlhbGl6ZXJXcmFwcGVyLmggKi87IH07
Ci0JCUE4QkMwRENDMDhENDI3MEMwMDM3OTkxOCAvKiBBYnN0cmFjdFZpZXdXcmFwcGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwQzZDMDhE
MTlGMUEwMDM3OTkxOCAvKiBBYnN0cmFjdFZpZXdXcmFwcGVyLmNwcCAqLzsgfTsKLQkJQThCQzBE
Q0YwOEQ0MjcxNDAwMzc5OTE4IC8qIERvY3VtZW50Vmlld1dyYXBwZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBDNkUwOEQxOUYxQTAwMzc5
OTE4IC8qIERvY3VtZW50Vmlld1dyYXBwZXIuY3BwICovOyB9OwotCQlBOEJDMEREMDA4RDQyNzE1
MDAzNzk5MTggLyogRG9jdW1lbnRWaWV3V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCQzBDNkYwOEQxOUYxQTAwMzc5OTE4IC8qIERvY3Vt
ZW50Vmlld1dyYXBwZXIuaCAqLzsgfTsKIAkJQThDMDAwMDAwODk3MDFGQzAwQkE1MTE0IC8qIEtD
YW52YXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThDMEZCNzgwODk3MDFGODAwQkE1MTE0IC8qIEtDYW52YXMuY3BwICovOyB9OwogCQlBOEMwMDAw
MTA4OTcwMUZDMDBCQTUxMTQgLyogS0NhbnZhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZCNzkwODk3MDFGODAwQkE1MTE0IC8qIEtDYW52YXMu
aCAqLzsgfTsKIAkJQThDMDAwMDIwODk3MDFGQzAwQkE1MTE0IC8qIEtDYW52YXNDb250YWluZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZC
N0EwODk3MDFGODAwQkE1MTE0IC8qIEtDYW52YXNDb250YWluZXIuY3BwICovOyB9OwpAQCAtMTcy
MCwxOCArMTMzNCwxMCBAQAogCQlBOEMwMDAxNDA4OTcwMUZDMDBCQTUxMTQgLyogS0NhbnZhc1R5
cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMw
RkI4QzA4OTcwMUY4MDBCQTUxMTQgLyogS0NhbnZhc1R5cGVzLmggKi87IH07CiAJCUE4QzAwMDE1
MDg5NzAxRkMwMEJBNTExNCAvKiBLQ2FudmFzVmlldy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkI4RDA4OTcwMUY4MDBCQTUxMTQgLyogS0Nh
bnZhc1ZpZXcuY3BwICovOyB9OwogCQlBOEMwMDAxNjA4OTcwMUZDMDBCQTUxMTQgLyogS0NhbnZh
c1ZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
QzBGQjhFMDg5NzAxRjgwMEJBNTExNCAvKiBLQ2FudmFzVmlldy5oICovOyB9OwotCQlBOEMwMDVB
RjA4OTc0QzI3MDBCQTUxMTQgLyoga2RvbXBhcnNlcmNzcy55IGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY5NzQwODk3MDFGNTAwQkE1MTE0IC8qIGtk
b21wYXJzZXJjc3MueSAqLzsgfTsKIAkJQThDMDA1REYwODk3NEU5MDAwQkE1MTE0IC8qIHJlbmRl
cl90aGVtZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzE3OTg5MDA4OEQ5NzVGMDA2MDY4QTUgLyogcmVuZGVyX3RoZW1lLmNwcCAqLzsgfTsKIAkJ
QThDMDA1RTAwODk3NEU5MDAwQkE1MTE0IC8qIHJlbmRlcl90aGVtZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxNzk4OTEwODhEOTc1RjAwNjA2OEE1
IC8qIHJlbmRlcl90aGVtZS5oICovOyB9OwogCQlBOEMwMDVFMTA4OTc0RTkwMDBCQTUxMTQgLyog
cmVuZGVyX3RoZW1lX21hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkMxNzk4RDkwODhEQTRGODAwNjA2OEE1IC8qIHJlbmRlcl90aGVtZV9tYWMuaCAq
LzsgfTsKIAkJQThDMDA1RTIwODk3NEU5MDAwQkE1MTE0IC8qIHJlbmRlcl90aGVtZV9tYWMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzE3OTg4RjA4
OEQ5NzVGMDA2MDY4QTUgLyogcmVuZGVyX3RoZW1lX21hYy5tbSAqLzsgfTsKLQkJQThDMDA1RUEw
ODk3NEVBQzAwQkE1MTE0IC8qIEtET01DYWNoZWRPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOTEzMDg5NzAxRjQwMEJBNTExNCAvKiBL
RE9NQ2FjaGVkT2JqZWN0LmggKi87IH07Ci0JCUE4QzAwNUVCMDg5NzRFQjEwMEJBNTExNCAvKiBL
RE9NQ2FjaGVkT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4QzBGOTEyMDg5NzAxRjQwMEJBNTExNCAvKiBLRE9NQ2FjaGVkT2JqZWN0LmNw
cCAqLzsgfTsKLQkJQThDMDA1RUMwODk3NEVCNTAwQkE1MTE0IC8qIEtET01DYWNoZWRTY3JpcHQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOTE2
MDg5NzAxRjQwMEJBNTExNCAvKiBLRE9NQ2FjaGVkU2NyaXB0LmggKi87IH07Ci0JCUE4QzAwNUVE
MDg5NzRFQjUwMEJBNTExNCAvKiBLRE9NQ2FjaGVkU2NyaXB0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOTE1MDg5NzAxRjQwMEJBNTExNCAv
KiBLRE9NQ2FjaGVkU2NyaXB0LmNwcCAqLzsgfTsKLQkJQThDMDA1RjYwODk3NEVGNzAwQkE1MTE0
IC8qIEtET01DYWNoZWRTdHlsZVNoZWV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOTE3MDg5NzAxRjQwMEJBNTExNCAvKiBLRE9NQ2FjaGVk
U3R5bGVTaGVldC5jcHAgKi87IH07Ci0JCUE4QzAwNUY3MDg5NzRFRkMwMEJBNTExNCAvKiBLRE9N
Q2FjaGVkU3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQThDMEY5MTgwODk3MDFGNDAwQkE1MTE0IC8qIEtET01DYWNoZWRTdHlsZVNoZWV0
LmggKi87IH07Ci0JCUE4QzAwNUY4MDg5NzRGMDEwMEJBNTExNCAvKiBLRE9NQ2FjaGVkT2JqZWN0
Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEMwRjkxNDA4OTcwMUY0MDBCQTUxMTQgLyogS0RPTUNhY2hlZE9iamVjdENsaWVudC5oICovOyB9
OwogCQlBOEMwRkI5MDA4OTcwMUY5MDBCQTUxMTQgLyogRHJhd0NhbnZhc0l0ZW0uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGNkREMDg5NzAxRjEw
MEJBNTExNCAvKiBEcmF3Q2FudmFzSXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUE4QzBGQjkyMDg5NzAxRjkwMEJBNTExNCAvKiBEcmF3Q2Fu
dmFzSXRlbVByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4QzBGNkRGMDg5NzAxRjEwMEJBNTExNCAvKiBEcmF3Q2FudmFzSXRlbVByaXZhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBOEMw
RkI5MzA4OTcwMUY5MDBCQTUxMTQgLyogRHJhd0RvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjZFMDA4OTcwMUYxMDBCQTUxMTQgLyog
RHJhd0RvY3VtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTE3NDMsMTYgKzEzNDksMTIgQEAKIAkJQThDMEZCOUIwODk3MDFGOTAwQkE1MTE0
IC8qIE5TU1ZHSW1hZ2VSZXAubSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4QzBGNkU4MDg5NzAxRjEwMEJBNTExNCAvKiBOU1NWR0ltYWdlUmVwLm0gKi87
IH07CiAJCUE4QzBGQjlDMDg5NzAxRjkwMEJBNTExNCAvKiBLQ2FudmFzUmVuZGVyaW5nU3R5bGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY2
RUIwODk3MDFGMTAwQkE1MTE0IC8qIEtDYW52YXNSZW5kZXJpbmdTdHlsZS5jcHAgKi87IH07CiAJ
CUE4QzBGQjlEMDg5NzAxRjkwMEJBNTExNCAvKiBLQ2FudmFzUmVuZGVyaW5nU3R5bGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGNkVDMDg5NzAx
RjEwMEJBNTExNCAvKiBLQ2FudmFzUmVuZGVyaW5nU3R5bGUuaCAqLzsgfTsKLQkJQThDMEZCOUUw
ODk3MDFGOTAwQkE1MTE0IC8qIEtTVkdEb2N1bWVudEJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY2RUQwODk3MDFGMTAwQkE1MTE0
IC8qIEtTVkdEb2N1bWVudEJ1aWxkZXIuY3BwICovOyB9OwotCQlBOEMwRkI5RjA4OTcwMUY5MDBC
QTUxMTQgLyogS1NWR0RvY3VtZW50QnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY2RUUwODk3MDFGMTAwQkE1MTE0IC8qIEtTVkdEb2N1
bWVudEJ1aWxkZXIuaCAqLzsgfTsKIAkJQThDMEZCQTAwODk3MDFGOTAwQkE1MTE0IC8qIEtTVkdU
aW1lU2NoZWR1bGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4QzBGNkVGMDg5NzAxRjEwMEJBNTExNCAvKiBLU1ZHVGltZVNjaGVkdWxlci5jcHAg
Ki87IH07CiAJCUE4QzBGQkExMDg5NzAxRjkwMEJBNTExNCAvKiBLU1ZHVGltZVNjaGVkdWxlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY2RjAw
ODk3MDFGMTAwQkE1MTE0IC8qIEtTVkdUaW1lU2NoZWR1bGVyLmggKi87IH07Ci0JCUE4QzBGQkE1
MDg5NzAxRjkwMEJBNTExNCAvKiBLU1ZHQ1NTUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGNkY2MDg5NzAxRjEwMEJBNTExNCAvKiBL
U1ZHQ1NTUGFyc2VyLmNwcCAqLzsgfTsKIAkJQThDMEZCQTYwODk3MDFGOTAwQkE1MTE0IC8qIEtT
VkdDU1NQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4QzBGNkY3MDg5NzAxRjEwMEJBNTExNCAvKiBLU1ZHQ1NTUGFyc2VyLmggKi87IH07CiAJ
CUE4QzBGQkE3MDg5NzAxRjkwMEJBNTExNCAvKiBzdmcuY3NzIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjZGODA4OTcwMUYxMDBCQTUxMTQgLyog
c3ZnLmNzcyAqLzsgfTsKIAkJQThDMEZCQTgwODk3MDFGOTAwQkE1MTE0IC8qIFNWR0NTU1N0eWxl
RGVjbGFyYXRpb25JbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4QzBGNkY5MDg5NzAxRjEwMEJBNTExNCAvKiBTVkdDU1NTdHlsZURlY2xhcmF0
aW9uSW1wbC5jcHAgKi87IH07CiAJCUE4QzBGQkE5MDg5NzAxRjkwMEJBNTExNCAvKiBTVkdDU1NT
dHlsZURlY2xhcmF0aW9uSW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThDMEY2RkEwODk3MDFGMTAwQkE1MTE0IC8qIFNWR0NTU1N0eWxlRGVjbGFy
YXRpb25JbXBsLmggKi87IH07Ci0JCUE4QzBGQkFBMDg5NzAxRjkwMEJBNTExNCAvKiBTVkdDU1NT
dHlsZVNlbGVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4QzBGNkZCMDg5NzAxRjEwMEJBNTExNCAvKiBTVkdDU1NTdHlsZVNlbGVjdG9yLmNw
cCAqLzsgfTsKIAkJQThDMEZCQUIwODk3MDFGOTAwQkE1MTE0IC8qIFNWR0NTU1N0eWxlU2VsZWN0
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBG
NkZDMDg5NzAxRjEwMEJBNTExNCAvKiBTVkdDU1NTdHlsZVNlbGVjdG9yLmggKi87IH07CiAJCUE4
QzBGQkFDMDg5NzAxRjkwMEJBNTExNCAvKiBTVkdDU1NTdHlsZVNoZWV0SW1wbC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjZGRDA4OTcwMUYx
MDBCQTUxMTQgLyogU1ZHQ1NTU3R5bGVTaGVldEltcGwuY3BwICovOyB9OwogCQlBOEMwRkJBRDA4
OTcwMUY5MDBCQTUxMTQgLyogU1ZHQ1NTU3R5bGVTaGVldEltcGwuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGNkZFMDg5NzAxRjEwMEJBNTExNCAv
KiBTVkdDU1NTdHlsZVNoZWV0SW1wbC5oICovOyB9OwpAQCAtMTc2MCwxMSArMTM2Miw4IEBACiAJ
CUE4QzBGQkFGMDg5NzAxRjkwMEJBNTExNCAvKiBTVkdSZW5kZXJTdHlsZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY3MDAwODk3MDFGMTAwQkE1
MTE0IC8qIFNWR1JlbmRlclN0eWxlLmggKi87IH07CiAJCUE4QzBGQkIwMDg5NzAxRjkwMEJBNTEx
NCAvKiBTVkdSZW5kZXJTdHlsZURlZnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThDMEY3MDEwODk3MDFGMTAwQkE1MTE0IC8qIFNWR1JlbmRlclN0
eWxlRGVmcy5jcHAgKi87IH07CiAJCUE4QzBGQkIxMDg5NzAxRjkwMEJBNTExNCAvKiBTVkdSZW5k
ZXJTdHlsZURlZnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4QzBGNzAyMDg5NzAxRjEwMEJBNTExNCAvKiBTVkdSZW5kZXJTdHlsZURlZnMuaCAqLzsg
fTsKLQkJQThDMEZDOUQwODk3MDFGOTAwQkE1MTE0IC8qIFNWR0V2ZW50SW1wbC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjdGMzA4OTcwMUYz
MDBCQTUxMTQgLyogU1ZHRXZlbnRJbXBsLmNwcCAqLzsgfTsKLQkJQThDMEZDOUUwODk3MDFGOTAw
QkE1MTE0IC8qIFNWR0V2ZW50SW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQThDMEY3RjQwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0V2ZW50SW1wbC5o
ICovOyB9OwogCQlBOEMwRkM5RjA4OTcwMUY5MDBCQTUxMTQgLyogU1ZHWm9vbUV2ZW50SW1wbC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjdG
NTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHWm9vbUV2ZW50SW1wbC5jcHAgKi87IH07CiAJCUE4QzBG
Q0EwMDg5NzAxRjkwMEJBNTExNCAvKiBTVkdab29tRXZlbnRJbXBsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjdGNjA4OTcwMUYzMDBCQTUxMTQg
LyogU1ZHWm9vbUV2ZW50SW1wbC5oICovOyB9OwotCQlBOEMwRkNBMTA4OTcwMUY5MDBCQTUxMTQg
Lyoga3N2Z2V2ZW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQThDMEY3RjcwODk3MDFGMzAwQkE1MTE0IC8qIGtzdmdldmVudHMuaCAqLzsgfTsKIAkJ
QThDMEZDQTcwODk3MDFGOTAwQkE1MTE0IC8qIENERkludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY3RkUwODk3MDFGMzAwQkE1MTE0
IC8qIENERkludGVyZmFjZS5oICovOyB9OwogCQlBOEMwRkNBODA4OTcwMUY5MDBCQTUxMTQgLyog
U1ZHQUVsZW1lbnRJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4QzBGN0ZGMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBRWxlbWVudEltcGwuY3Bw
ICovOyB9OwogCQlBOEMwRkNBOTA4OTcwMUY5MDBCQTUxMTQgLyogU1ZHQUVsZW1lbnRJbXBsLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgwMDA4
OTcwMUYzMDBCQTUxMTQgLyogU1ZHQUVsZW1lbnRJbXBsLmggKi87IH07CkBAIC0xODA3LDcgKzE0
MDYsNiBAQAogCQlBOEMwRkNDRTA4OTcwMUY5MDBCQTUxMTQgLyogU1ZHQW5pbWF0ZVRyYW5zZm9y
bUVsZW1lbnRJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBOEMwRjgyNTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1l
bnRJbXBsLmggKi87IH07CiAJCUE4QzBGQ0NGMDg5NzAxRjkwMEJBNTExNCAvKiBTVkdBbmltYXRp
b25FbGVtZW50SW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOEMwRjgyNjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0aW9uRWxlbWVudElt
cGwuY3BwICovOyB9OwogCQlBOEMwRkNEMDA4OTcwMUY5MDBCQTUxMTQgLyogU1ZHQW5pbWF0aW9u
RWxlbWVudEltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4QzBGODI3MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRpb25FbGVtZW50SW1wbC5o
ICovOyB9OwotCQlBOEMwRkNEMjA4OTcwMUY5MDBCQTUxMTQgLyogc3ZnYXR0cnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGODI5MDg5NzAxRjMw
MEJBNTExNCAvKiBzdmdhdHRycy5oICovOyB9OwogCQlBOEMwRkNENDA4OTcwMUY5MDBCQTUxMTQg
LyogU1ZHQ2lyY2xlRWxlbWVudEltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThDMEY4MkIwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0NpcmNsZUVs
ZW1lbnRJbXBsLmNwcCAqLzsgfTsKIAkJQThDMEZDRDUwODk3MDFGOTAwQkE1MTE0IC8qIFNWR0Np
cmNsZUVsZW1lbnRJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOEMwRjgyQzA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQ2lyY2xlRWxlbWVudEltcGwu
aCAqLzsgfTsKIAkJQThDMEZDRDYwODk3MDFGOTAwQkE1MTE0IC8qIFNWR0NsaXBQYXRoRWxlbWVu
dEltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThDMEY4MkQwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0NsaXBQYXRoRWxlbWVudEltcGwuY3BwICov
OyB9OwpAQCAtMTgyNiwxNCArMTQyNCwxMCBAQAogCQlBOEMwRkNFMzA4OTcwMUY5MDBCQTUxMTQg
LyogU1ZHRE9NSW1wbGVtZW50YXRpb25JbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgzQTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRE9NSW1w
bGVtZW50YXRpb25JbXBsLmggKi87IH07CiAJCUE4QzBGQ0U0MDg5NzAxRjkwMEJBNTExNCAvKiBT
VkdFbGVtZW50SW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOEMwRjgzQjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRWxlbWVudEltcGwuY3BwICov
OyB9OwogCQlBOEMwRkNFNTA4OTcwMUY5MDBCQTUxMTQgLyogU1ZHRWxlbWVudEltcGwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGODNDMDg5NzAx
RjMwMEJBNTExNCAvKiBTVkdFbGVtZW50SW1wbC5oICovOyB9OwotCQlBOEMwRkNFNjA4OTcwMUY5
MDBCQTUxMTQgLyogU1ZHRWxlbWVudEluc3RhbmNlSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgzRDA4OTcwMUYzMDBCQTUxMTQgLyog
U1ZHRWxlbWVudEluc3RhbmNlSW1wbC5jcHAgKi87IH07CiAJCUE4QzBGQ0U3MDg5NzAxRjkwMEJB
NTExNCAvKiBTVkdFbGVtZW50SW5zdGFuY2VJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgzRTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRWxl
bWVudEluc3RhbmNlSW1wbC5oICovOyB9OwotCQlBOEMwRkNFODA4OTcwMUY5MDBCQTUxMTQgLyog
U1ZHRWxlbWVudEluc3RhbmNlTGlzdEltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4M0YwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0VsZW1l
bnRJbnN0YW5jZUxpc3RJbXBsLmNwcCAqLzsgfTsKIAkJQThDMEZDRTkwODk3MDFGOTAwQkE1MTE0
IC8qIFNWR0VsZW1lbnRJbnN0YW5jZUxpc3RJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjg0MDA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRWxl
bWVudEluc3RhbmNlTGlzdEltcGwuaCAqLzsgfTsKIAkJQThDMEZDRUEwODk3MDFGOTAwQkE1MTE0
IC8qIFNWR0VsbGlwc2VFbGVtZW50SW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjg0MTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRWxsaXBz
ZUVsZW1lbnRJbXBsLmNwcCAqLzsgfTsKIAkJQThDMEZDRUIwODk3MDFGOTAwQkE1MTE0IC8qIFNW
R0VsbGlwc2VFbGVtZW50SW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThDMEY4NDIwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0VsbGlwc2VFbGVtZW50
SW1wbC5oICovOyB9OwotCQlBOEMwRkNFQzA4OTcwMUY5MDBCQTUxMTQgLyogU1ZHRXhjZXB0aW9u
SW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEMwRjg0MzA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRXhjZXB0aW9uSW1wbC5jcHAgKi87IH07Ci0J
CUE4QzBGQ0VEMDg5NzAxRjkwMEJBNTExNCAvKiBTVkdFeGNlcHRpb25JbXBsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjg0NDA4OTcwMUYzMDBC
QTUxMTQgLyogU1ZHRXhjZXB0aW9uSW1wbC5oICovOyB9OwogCQlBOEMwRkNFRTA4OTcwMUY5MDBC
QTUxMTQgLyogU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4NDUwODk3MDFGMzAwQkE1
MTE0IC8qIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsLmNwcCAqLzsgfTsKIAkJQThD
MEZDRUYwODk3MDFGOTAwQkE1MTE0IC8qIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjg0
NjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwuaCAq
LzsgfTsKIAkJQThDMEZDRjAwODk3MDFGOTAwQkE1MTE0IC8qIFNWR0ZFQmxlbmRFbGVtZW50SW1w
bC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMw
Rjg0NzA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRkVCbGVuZEVsZW1lbnRJbXBsLmNwcCAqLzsgfTsK
QEAgLTE5NzMsNyArMTU2Nyw2IEBACiAJCUE4QzBGRDc2MDg5NzAxRkEwMEJBNTExNCAvKiBTVkdT
d2l0Y2hFbGVtZW50SW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQThDMEY4Q0QwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1N3aXRjaEVsZW1lbnRJbXBs
LmggKi87IH07CiAJCUE4QzBGRDc3MDg5NzAxRkEwMEJBNTExNCAvKiBTVkdTeW1ib2xFbGVtZW50
SW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEMwRjhDRTA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHU3ltYm9sRWxlbWVudEltcGwuY3BwICovOyB9
OwogCQlBOEMwRkQ3ODA4OTcwMUZBMDBCQTUxMTQgLyogU1ZHU3ltYm9sRWxlbWVudEltcGwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOENGMDg5
NzAxRjQwMEJBNTExNCAvKiBTVkdTeW1ib2xFbGVtZW50SW1wbC5oICovOyB9OwotCQlBOEMwRkQ3
QTA4OTcwMUZBMDBCQTUxMTQgLyogc3ZndGFncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4RDEwODk3MDFGNDAwQkE1MTE0IC8qIHN2Z3RhZ3Mu
aCAqLzsgfTsKIAkJQThDMEZEN0MwODk3MDFGQTAwQkE1MTE0IC8qIFNWR1Rlc3RzSW1wbC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjhEMzA4
OTcwMUY0MDBCQTUxMTQgLyogU1ZHVGVzdHNJbXBsLmNwcCAqLzsgfTsKIAkJQThDMEZEN0QwODk3
MDFGQTAwQkE1MTE0IC8qIFNWR1Rlc3RzSW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4RDQwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1Rlc3Rz
SW1wbC5oICovOyB9OwogCQlBOEMwRkQ3RTA4OTcwMUZBMDBCQTUxMTQgLyogU1ZHVGV4dENvbnRl
bnRFbGVtZW50SW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOEMwRjhENTA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHVGV4dENvbnRlbnRFbGVtZW50
SW1wbC5jcHAgKi87IH07CkBAIC0yMDAyLDI0MCArMTU5NSw2IEBACiAJCUE4QzBGRDk1MDg5NzAx
RkEwMEJBNTExNCAvKiBTVkdab29tQW5kUGFuSW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4RUMwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1pv
b21BbmRQYW5JbXBsLmggKi87IH07CiAJCUE4QzBGRDk2MDg5NzAxRkEwMEJBNTExNCAvKiBrc3Zn
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjhF
RDA4OTcwMUY0MDBCQTUxMTQgLyoga3N2Zy5oICovOyB9OwogCQlBOEMwRkQ5QTA4OTcwMUZBMDBC
QTUxMTQgLyogS1NWR1NldHRpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBOEMwRjhGMTA4OTcwMUY0MDBCQTUxMTQgLyogS1NWR1NldHRpbmdzLmgg
Ki87IH07Ci0JCUE4QzBGRDlDMDg5NzAxRkEwMEJBNTExNCAvKiBLV1FLU1ZHUGFydC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4RjMwODk3MDFG
NDAwQkE1MTE0IC8qIEtXUUtTVkdQYXJ0LmggKi87IH07Ci0JCUE4QzBGRDlEMDg5NzAxRkEwMEJB
NTExNCAvKiBLV1FLU1ZHUGFydC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4QzBGOEY0MDg5NzAxRjQwMEJBNTExNCAvKiBLV1FLU1ZHUGFydC5tbSAq
LzsgfTsKLQkJQThDMEZEOUUwODk3MDFGQTAwQkE1MTE0IC8qIEtXUUtTVkdWaWV3LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjhGNTA4OTcwMUY0
MDBCQTUxMTQgLyogS1dRS1NWR1ZpZXcuaCAqLzsgfTsKLQkJQThDMEZEOUYwODk3MDFGQTAwQkE1
MTE0IC8qIEtXUUtTVkdWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThDMEY4RjYwODk3MDFGNDAwQkE1MTE0IC8qIEtXUUtTVkdWaWV3Lm1tICov
OyB9OwotCQlBOEMwRkRBOTA4OTcwMUZBMDBCQTUxMTQgLyogTGliWE1MUGFyc2VyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOTA0MDg5NzAx
RjQwMEJBNTExNCAvKiBMaWJYTUxQYXJzZXIuY3BwICovOyB9OwotCQlBOEMwRkRBQTA4OTcwMUZB
MDBCQTUxMTQgLyogTGliWE1MUGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjkwNTA4OTcwMUY0MDBCQTUxMTQgLyogTGliWE1MUGFyc2Vy
LmggKi87IH07Ci0JCUE4QzBGREFGMDg5NzAxRkEwMEJBNTExNCAvKiBLRE9NQ2FjaGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY5MEIwODk3
MDFGNDAwQkE1MTE0IC8qIEtET01DYWNoZS5jcHAgKi87IH07Ci0JCUE4QzBGREIwMDg5NzAxRkEw
MEJBNTExNCAvKiBLRE9NQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4QzBGOTBDMDg5NzAxRjQwMEJBNTExNCAvKiBLRE9NQ2FjaGUuaCAqLzsg
fTsKLQkJQThDMEZEQjEwODk3MDFGQTAwQkE1MTE0IC8qIEtET01DYWNoZWREb2N1bWVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjkwRDA4
OTcwMUY0MDBCQTUxMTQgLyogS0RPTUNhY2hlZERvY3VtZW50LmNwcCAqLzsgfTsKLQkJQThDMEZE
QjIwODk3MDFGQTAwQkE1MTE0IC8qIEtET01DYWNoZWREb2N1bWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY5MEUwODk3MDFGNDAwQkE1MTE0
IC8qIEtET01DYWNoZWREb2N1bWVudC5oICovOyB9OwotCQlBOEMwRkRCRTA4OTcwMUZBMDBCQTUx
MTQgLyogS0RPTUxvYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBOEMwRjkxQTA4OTcwMUY0MDBCQTUxMTQgLyogS0RPTUxvYWRlci5jcHAgKi87
IH07Ci0JCUE4QzBGREJGMDg5NzAxRkEwMEJBNTExNCAvKiBLRE9NTG9hZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjkxQjA4OTcwMUY0MDBC
QTUxMTQgLyogS0RPTUxvYWRlci5oICovOyB9OwotCQlBOEMwRkRDRDA4OTcwMUZBMDBCQTUxMTQg
LyogQ1NTSGVscGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBOEMwRjkyQTA4OTcwMUY0MDBCQTUxMTQgLyogQ1NTSGVscGVyLmggKi87IH07Ci0JCUE4
QzBGREVDMDg5NzAxRkEwMEJBNTExNCAvKiBDb3VudGVySW1wbC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjk0QTA4OTcwMUY0MDBCQTUxMTQg
LyogQ291bnRlckltcGwuY3BwICovOyB9OwotCQlBOEMwRkRFRDA4OTcwMUZBMDBCQTUxMTQgLyog
Q291bnRlckltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4QzBGOTRCMDg5NzAxRjQwMEJBNTExNCAvKiBDb3VudGVySW1wbC5oICovOyB9OwotCQlB
OEMwRkRFRTA4OTcwMUZBMDBCQTUxMTQgLyogQ1NTQ2hhcnNldFJ1bGVJbXBsLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOTRDMDg5NzAxRjQw
MEJBNTExNCAvKiBDU1NDaGFyc2V0UnVsZUltcGwuY3BwICovOyB9OwotCQlBOEMwRkRFRjA4OTcw
MUZBMDBCQTUxMTQgLyogQ1NTQ2hhcnNldFJ1bGVJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjk0RDA4OTcwMUY0MDBCQTUxMTQgLyogQ1NT
Q2hhcnNldFJ1bGVJbXBsLmggKi87IH07Ci0JCUE4QzBGREYwMDg5NzAxRkEwMEJBNTExNCAvKiBD
U1NGb250RmFjZVJ1bGVJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4QzBGOTRFMDg5NzAxRjQwMEJBNTExNCAvKiBDU1NGb250RmFjZVJ1bGVJ
bXBsLmNwcCAqLzsgfTsKLQkJQThDMEZERjEwODk3MDFGQTAwQkE1MTE0IC8qIENTU0ZvbnRGYWNl
UnVsZUltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4QzBGOTRGMDg5NzAxRjQwMEJBNTExNCAvKiBDU1NGb250RmFjZVJ1bGVJbXBsLmggKi87IH07
Ci0JCUE4QzBGREYyMDg5NzAxRkEwMEJBNTExNCAvKiBDU1NJbWFnZVZhbHVlSW1wbC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjk1MDA4OTcw
MUY0MDBCQTUxMTQgLyogQ1NTSW1hZ2VWYWx1ZUltcGwuY3BwICovOyB9OwotCQlBOEMwRkRGMzA4
OTcwMUZBMDBCQTUxMTQgLyogQ1NTSW1hZ2VWYWx1ZUltcGwuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOTUxMDg5NzAxRjQwMEJBNTExNCAvKiBD
U1NJbWFnZVZhbHVlSW1wbC5oICovOyB9OwotCQlBOEMwRkRGNDA4OTcwMUZBMDBCQTUxMTQgLyog
Q1NTSW1wb3J0UnVsZUltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThDMEY5NTIwODk3MDFGNDAwQkE1MTE0IC8qIENTU0ltcG9ydFJ1bGVJbXBs
LmNwcCAqLzsgfTsKLQkJQThDMEZERjUwODk3MDFGQTAwQkE1MTE0IC8qIENTU0ltcG9ydFJ1bGVJ
bXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMw
Rjk1MzA4OTcwMUY0MDBCQTUxMTQgLyogQ1NTSW1wb3J0UnVsZUltcGwuaCAqLzsgfTsKLQkJQThD
MEZERjYwODk3MDFGQTAwQkE1MTE0IC8qIENTU01lZGlhUnVsZUltcGwuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY5NTQwODk3MDFGNDAwQkE1
MTE0IC8qIENTU01lZGlhUnVsZUltcGwuY3BwICovOyB9OwotCQlBOEMwRkRGNzA4OTcwMUZBMDBC
QTUxMTQgLyogQ1NTTWVkaWFSdWxlSW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThDMEY5NTUwODk3MDFGNDAwQkE1MTE0IC8qIENTU01lZGlhUnVs
ZUltcGwuaCAqLzsgfTsKLQkJQThDMEZERjgwODk3MDFGQTAwQkE1MTE0IC8qIENTU1BhZ2VSdWxl
SW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEMwRjk1NjA4OTcwMUY0MDBCQTUxMTQgLyogQ1NTUGFnZVJ1bGVJbXBsLmNwcCAqLzsgfTsKLQkJ
QThDMEZERjkwODk3MDFGQTAwQkE1MTE0IC8qIENTU1BhZ2VSdWxlSW1wbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY5NTcwODk3MDFGNDAwQkE1
MTE0IC8qIENTU1BhZ2VSdWxlSW1wbC5oICovOyB9OwotCQlBOEMwRkRGQTA4OTcwMUZBMDBCQTUx
MTQgLyogQ1NTUHJpbWl0aXZlVmFsdWVJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOTU4MDg5NzAxRjQwMEJBNTExNCAvKiBDU1NQcmlt
aXRpdmVWYWx1ZUltcGwuY3BwICovOyB9OwotCQlBOEMwRkRGQjA4OTcwMUZBMDBCQTUxMTQgLyog
Q1NTUHJpbWl0aXZlVmFsdWVJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBOEMwRjk1OTA4OTcwMUY0MDBCQTUxMTQgLyogQ1NTUHJpbWl0aXZlVmFs
dWVJbXBsLmggKi87IH07Ci0JCUE4QzBGREZEMDg5NzAxRkEwMEJBNTExNCAvKiBDU1NSdWxlSW1w
bC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMw
Rjk1QjA4OTcwMUY0MDBCQTUxMTQgLyogQ1NTUnVsZUltcGwuY3BwICovOyB9OwotCQlBOEMwRkRG
RTA4OTcwMUZBMDBCQTUxMTQgLyogQ1NTUnVsZUltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOTVDMDg5NzAxRjQwMEJBNTExNCAvKiBDU1NS
dWxlSW1wbC5oICovOyB9OwotCQlBOEMwRkRGRjA4OTcwMUZBMDBCQTUxMTQgLyogQ1NTUnVsZUxp
c3RJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4QzBGOTVEMDg5NzAxRjQwMEJBNTExNCAvKiBDU1NSdWxlTGlzdEltcGwuY3BwICovOyB9Owot
CQlBOEMwRkUwMDA4OTcwMUZBMDBCQTUxMTQgLyogQ1NTUnVsZUxpc3RJbXBsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjk1RTA4OTcwMUY0MDBC
QTUxMTQgLyogQ1NTUnVsZUxpc3RJbXBsLmggKi87IH07Ci0JCUE4QzBGRTAxMDg5NzAxRkEwMEJB
NTExNCAvKiBDU1NTdHlsZURlY2xhcmF0aW9uSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjk1RjA4OTcwMUY1MDBCQTUxMTQgLyogQ1NT
U3R5bGVEZWNsYXJhdGlvbkltcGwuY3BwICovOyB9OwotCQlBOEMwRkUwMjA4OTcwMUZBMDBCQTUx
MTQgLyogQ1NTU3R5bGVEZWNsYXJhdGlvbkltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOTYwMDg5NzAxRjUwMEJBNTExNCAvKiBDU1NTdHls
ZURlY2xhcmF0aW9uSW1wbC5oICovOyB9OwotCQlBOEMwRkUwMzA4OTcwMUZBMDBCQTUxMTQgLyog
Q1NTU3R5bGVSdWxlSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBOEMwRjk2MTA4OTcwMUY1MDBCQTUxMTQgLyogQ1NTU3R5bGVSdWxlSW1wbC5j
cHAgKi87IH07Ci0JCUE4QzBGRTA0MDg5NzAxRkEwMEJBNTExNCAvKiBDU1NTdHlsZVJ1bGVJbXBs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjk2
MjA4OTcwMUY1MDBCQTUxMTQgLyogQ1NTU3R5bGVSdWxlSW1wbC5oICovOyB9OwotCQlBOEMwRkUw
NTA4OTcwMUZBMDBCQTUxMTQgLyogQ1NTU3R5bGVTZWxlY3Rvci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjk2MzA4OTcwMUY1MDBCQTUxMTQg
LyogQ1NTU3R5bGVTZWxlY3Rvci5jcHAgKi87IH07Ci0JCUE4QzBGRTA2MDg5NzAxRkEwMEJBNTEx
NCAvKiBDU1NTdHlsZVNlbGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBOEMwRjk2NDA4OTcwMUY1MDBCQTUxMTQgLyogQ1NTU3R5bGVTZWxlY3Rv
ci5oICovOyB9OwotCQlBOEMwRkUwNzA4OTcwMUZBMDBCQTUxMTQgLyogQ1NTU3R5bGVTaGVldElt
cGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThD
MEY5NjUwODk3MDFGNTAwQkE1MTE0IC8qIENTU1N0eWxlU2hlZXRJbXBsLmNwcCAqLzsgfTsKLQkJ
QThDMEZFMDgwODk3MDFGQTAwQkE1MTE0IC8qIENTU1N0eWxlU2hlZXRJbXBsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjk2NjA4OTcwMUY1MDBC
QTUxMTQgLyogQ1NTU3R5bGVTaGVldEltcGwuaCAqLzsgfTsKLQkJQThDMEZFMDkwODk3MDFGQTAw
QkE1MTE0IC8qIENTU1Vua25vd25SdWxlSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjk2NzA4OTcwMUY1MDBCQTUxMTQgLyogQ1NTVW5r
bm93blJ1bGVJbXBsLmNwcCAqLzsgfTsKLQkJQThDMEZFMEEwODk3MDFGQTAwQkE1MTE0IC8qIENT
U1Vua25vd25SdWxlSW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQThDMEY5NjgwODk3MDFGNTAwQkE1MTE0IC8qIENTU1Vua25vd25SdWxlSW1wbC5o
ICovOyB9OwotCQlBOEMwRkUwQjA4OTcwMUZBMDBCQTUxMTQgLyogQ1NTVmFsdWVJbXBsLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOTY5MDg5
NzAxRjUwMEJBNTExNCAvKiBDU1NWYWx1ZUltcGwuY3BwICovOyB9OwotCQlBOEMwRkUwQzA4OTcw
MUZBMDBCQTUxMTQgLyogQ1NTVmFsdWVJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjk2QTA4OTcwMUY1MDBCQTUxMTQgLyogQ1NTVmFsdWVJ
bXBsLmggKi87IH07Ci0JCUE4QzBGRTBEMDg5NzAxRkEwMEJBNTExNCAvKiBDU1NWYWx1ZUxpc3RJ
bXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
QzBGOTZCMDg5NzAxRjUwMEJBNTExNCAvKiBDU1NWYWx1ZUxpc3RJbXBsLmNwcCAqLzsgfTsKLQkJ
QThDMEZFMEUwODk3MDFGQTAwQkE1MTE0IC8qIENTU1ZhbHVlTGlzdEltcGwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOTZDMDg5NzAxRjUwMEJB
NTExNCAvKiBDU1NWYWx1ZUxpc3RJbXBsLmggKi87IH07Ci0JCUE4QzBGRTEwMDg5NzAxRkEwMEJB
NTExNCAvKiBEb2N1bWVudFN0eWxlSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjk2RTA4OTcwMUY1MDBCQTUxMTQgLyogRG9jdW1lbnRT
dHlsZUltcGwuY3BwICovOyB9OwotCQlBOEMwRkUxMTA4OTcwMUZBMDBCQTUxMTQgLyogRG9jdW1l
bnRTdHlsZUltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4QzBGOTZGMDg5NzAxRjUwMEJBNTExNCAvKiBEb2N1bWVudFN0eWxlSW1wbC5oICovOyB9
OwotCQlBOEMwRkUxMjA4OTcwMUZBMDBCQTUxMTQgLyogRm9udC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjk3MDA4OTcwMUY1MDBCQTUxMTQg
LyogRm9udC5jcHAgKi87IH07Ci0JCUE4QzBGRTEzMDg5NzAxRkEwMEJBNTExNCAvKiBGb250Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjk3MTA4
OTcwMUY1MDBCQTUxMTQgLyogRm9udC5oICovOyB9OwotCQlBOEMwRkUxNDA4OTcwMUZBMDBCQTUx
MTQgLyogS0RPTUNTU1BhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBOEMwRjk3MjA4OTcwMUY1MDBCQTUxMTQgLyogS0RPTUNTU1BhcnNlci5j
cHAgKi87IH07Ci0JCUE4QzBGRTE1MDg5NzAxRkEwMEJBNTExNCAvKiBLRE9NQ1NTUGFyc2VyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjk3MzA4
OTcwMUY1MDBCQTUxMTQgLyogS0RPTUNTU1BhcnNlci5oICovOyB9OwotCQlBOEMwRkUxNzA4OTcw
MUZBMDBCQTUxMTQgLyogTWVkaWFMaXN0SW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjk3NTA4OTcwMUY1MDBCQTUxMTQgLyogTWVkaWFM
aXN0SW1wbC5jcHAgKi87IH07Ci0JCUE4QzBGRTE4MDg5NzAxRkEwMEJBNTExNCAvKiBNZWRpYUxp
c3RJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEMwRjk3NjA4OTcwMUY1MDBCQTUxMTQgLyogTWVkaWFMaXN0SW1wbC5oICovOyB9OwotCQlBOEMw
RkUxOTA4OTcwMUZBMDBCQTUxMTQgLyogUmVjdEltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY5NzcwODk3MDFGNTAwQkE1MTE0IC8qIFJl
Y3RJbXBsLmNwcCAqLzsgfTsKLQkJQThDMEZFMUEwODk3MDFGQTAwQkE1MTE0IC8qIFJlY3RJbXBs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjk3
ODA4OTcwMUY1MDBCQTUxMTQgLyogUmVjdEltcGwuaCAqLzsgfTsKLQkJQThDMEZFMUIwODk3MDFG
QTAwQkE1MTE0IC8qIFJlbmRlclN0eWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOTc5MDg5NzAxRjUwMEJBNTExNCAvKiBSZW5kZXJTdHls
ZS5jcHAgKi87IH07Ci0JCUE4QzBGRTFDMDg5NzAxRkEwMEJBNTExNCAvKiBSZW5kZXJTdHlsZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY5N0Ew
ODk3MDFGNTAwQkE1MTE0IC8qIFJlbmRlclN0eWxlLmggKi87IH07Ci0JCUE4QzBGRTFEMDg5NzAx
RkEwMEJBNTExNCAvKiBSZW5kZXJTdHlsZURlZnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY5N0IwODk3MDFGNTAwQkE1MTE0IC8qIFJlbmRl
clN0eWxlRGVmcy5jcHAgKi87IH07Ci0JCUE4QzBGRTFFMDg5NzAxRkEwMEJBNTExNCAvKiBSZW5k
ZXJTdHlsZURlZnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4QzBGOTdDMDg5NzAxRjUwMEJBNTExNCAvKiBSZW5kZXJTdHlsZURlZnMuaCAqLzsgfTsK
LQkJQThDMEZFMUYwODk3MDFGQTAwQkE1MTE0IC8qIFJHQkNvbG9ySW1wbC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjk3RDA4OTcwMUY1MDBC
QTUxMTQgLyogUkdCQ29sb3JJbXBsLmNwcCAqLzsgfTsKLQkJQThDMEZFMjAwODk3MDFGQTAwQkE1
MTE0IC8qIFJHQkNvbG9ySW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThDMEY5N0UwODk3MDFGNTAwQkE1MTE0IC8qIFJHQkNvbG9ySW1wbC5oICov
OyB9OwotCQlBOEMwRkUyMTA4OTcwMUZBMDBCQTUxMTQgLyogU3R5bGVCYXNlSW1wbC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjk3RjA4OTcw
MUY1MDBCQTUxMTQgLyogU3R5bGVCYXNlSW1wbC5jcHAgKi87IH07Ci0JCUE4QzBGRTIyMDg5NzAx
RkEwMEJBNTExNCAvKiBTdHlsZUJhc2VJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjk4MDA4OTcwMUY1MDBCQTUxMTQgLyogU3R5bGVCYXNl
SW1wbC5oICovOyB9OwotCQlBOEMwRkUyMzA4OTcwMUZBMDBCQTUxMTQgLyogU3R5bGVTaGVldElt
cGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThD
MEY5ODEwODk3MDFGNTAwQkE1MTE0IC8qIFN0eWxlU2hlZXRJbXBsLmNwcCAqLzsgfTsKLQkJQThD
MEZFMjQwODk3MDFGQTAwQkE1MTE0IC8qIFN0eWxlU2hlZXRJbXBsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjk4MjA4OTcwMUY1MDBCQTUxMTQg
LyogU3R5bGVTaGVldEltcGwuaCAqLzsgfTsKLQkJQThDMEZFMjUwODk3MDFGQTAwQkE1MTE0IC8q
IFN0eWxlU2hlZXRMaXN0SW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBOEMwRjk4MzA4OTcwMUY1MDBCQTUxMTQgLyogU3R5bGVTaGVldExpc3RJ
bXBsLmNwcCAqLzsgfTsKLQkJQThDMEZFMjYwODk3MDFGQTAwQkE1MTE0IC8qIFN0eWxlU2hlZXRM
aXN0SW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThDMEY5ODQwODk3MDFGNTAwQkE1MTE0IC8qIFN0eWxlU2hlZXRMaXN0SW1wbC5oICovOyB9Owot
CQlBOEMwRkUyODA4OTcwMUZBMDBCQTUxMTQgLyoga2RvbWNzcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY5ODYwODk3MDFGNTAwQkE1MTE0IC8q
IGtkb21jc3MuaCAqLzsgfTsKLQkJQThDMEZFNTUwODk3MDFGQjAwQkE1MTE0IC8qIERPTVN0cmlu
Zy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMw
RjlCNDA4OTcwMUY1MDBCQTUxMTQgLyogRE9NU3RyaW5nLmNwcCAqLzsgfTsKLQkJQThDMEZFNTYw
ODk3MDFGQjAwQkE1MTE0IC8qIERPTVN0cmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY5QjUwODk3MDFGNTAwQkE1MTE0IC8qIERPTVN0cmlu
Zy5oICovOyB9OwotCQlBOEMwRkU1RDA4OTcwMUZCMDBCQTUxMTQgLyogRE9NQnJpZGdlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjlCRDA4OTcw
MUY1MDBCQTUxMTQgLyogRE9NQnJpZGdlLmggKi87IH07Ci0JCUE4QzBGRTVFMDg5NzAxRkIwMEJB
NTExNCAvKiBET01Mb29rdXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4QzBGOUJFMDg5NzAxRjUwMEJBNTExNCAvKiBET01Mb29rdXAuaCAqLzsgfTsK
LQkJQThDMEZFNjAwODk3MDFGQjAwQkE1MTE0IC8qIEVjbWEuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOUMwMDg5NzAxRjUwMEJBNTExNCAvKiBF
Y21hLmggKi87IH07Ci0JCUE4QzBGRTYzMDg5NzAxRkIwMEJBNTExNCAvKiBHbG9iYWxPYmplY3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOUMz
MDg5NzAxRjUwMEJBNTExNCAvKiBHbG9iYWxPYmplY3QuaCAqLzsgfTsKLQkJQThDMEZFNjcwODk3
MDFGQjAwQkE1MTE0IC8qIFNjcmlwdEludGVycHJldGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjlDNzA4OTcwMUY1MDBCQTUxMTQgLyogU2Ny
aXB0SW50ZXJwcmV0ZXIuaCAqLzsgfTsKLQkJQThDMEZFNzgwODk3MDFGQjAwQkE1MTE0IC8qIERv
Y3VtZW50RXZlbnRJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4QzBGOURBMDg5NzAxRjUwMEJBNTExNCAvKiBEb2N1bWVudEV2ZW50SW1wbC5j
cHAgKi87IH07Ci0JCUE4QzBGRTc5MDg5NzAxRkIwMEJBNTExNCAvKiBEb2N1bWVudEV2ZW50SW1w
bC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY5
REIwODk3MDFGNTAwQkE1MTE0IC8qIERvY3VtZW50RXZlbnRJbXBsLmggKi87IH07Ci0JCUE4QzBG
RTdBMDg5NzAxRkIwMEJBNTExNCAvKiBFdmVudEV4Y2VwdGlvbkltcGwuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY5REMwODk3MDFGNTAwQkE1
MTE0IC8qIEV2ZW50RXhjZXB0aW9uSW1wbC5jcHAgKi87IH07Ci0JCUE4QzBGRTdCMDg5NzAxRkIw
MEJBNTExNCAvKiBFdmVudEV4Y2VwdGlvbkltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOUREMDg5NzAxRjUwMEJBNTExNCAvKiBFdmVudEV4
Y2VwdGlvbkltcGwuaCAqLzsgfTsKLQkJQThDMEZFN0MwODk3MDFGQjAwQkE1MTE0IC8qIEV2ZW50
SW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEMwRjlERTA4OTcwMUY1MDBCQTUxMTQgLyogRXZlbnRJbXBsLmNwcCAqLzsgfTsKLQkJQThDMEZF
N0QwODk3MDFGQjAwQkE1MTE0IC8qIEV2ZW50SW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY5REYwODk3MDFGNTAwQkE1MTE0IC8qIEV2ZW50
SW1wbC5oICovOyB9OwotCQlBOEMwRkU3RTA4OTcwMUZCMDBCQTUxMTQgLyogRXZlbnRMaXN0ZW5l
ckltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThDMEY5RTAwODk3MDFGNTAwQkE1MTE0IC8qIEV2ZW50TGlzdGVuZXJJbXBsLmNwcCAqLzsgfTsK
LQkJQThDMEZFN0YwODk3MDFGQjAwQkE1MTE0IC8qIEV2ZW50TGlzdGVuZXJJbXBsLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjlFMTA4OTcwMUY1
MDBCQTUxMTQgLyogRXZlbnRMaXN0ZW5lckltcGwuaCAqLzsgfTsKLQkJQThDMEZFODAwODk3MDFG
QjAwQkE1MTE0IC8qIEV2ZW50VGFyZ2V0SW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjlFMjA4OTcwMUY1MDBCQTUxMTQgLyogRXZlbnRU
YXJnZXRJbXBsLmNwcCAqLzsgfTsKLQkJQThDMEZFODEwODk3MDFGQjAwQkE1MTE0IC8qIEV2ZW50
VGFyZ2V0SW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQThDMEY5RTMwODk3MDFGNTAwQkE1MTE0IC8qIEV2ZW50VGFyZ2V0SW1wbC5oICovOyB9Owot
CQlBOEMwRkU4MjA4OTcwMUZCMDBCQTUxMTQgLyogS2V5Ym9hcmRFdmVudEltcGwuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY5RTQwODk3MDFG
NTAwQkE1MTE0IC8qIEtleWJvYXJkRXZlbnRJbXBsLmNwcCAqLzsgfTsKLQkJQThDMEZFODMwODk3
MDFGQjAwQkE1MTE0IC8qIEtleWJvYXJkRXZlbnRJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjlFNTA4OTcwMUY1MDBCQTUxMTQgLyogS2V5
Ym9hcmRFdmVudEltcGwuaCAqLzsgfTsKLQkJQThDMEZFODQwODk3MDFGQjAwQkE1MTE0IC8qIE1v
dXNlRXZlbnRJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4QzBGOUU2MDg5NzAxRjUwMEJBNTExNCAvKiBNb3VzZUV2ZW50SW1wbC5jcHAgKi87
IH07Ci0JCUE4QzBGRTg1MDg5NzAxRkIwMEJBNTExNCAvKiBNb3VzZUV2ZW50SW1wbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY5RTcwODk3MDFG
NTAwQkE1MTE0IC8qIE1vdXNlRXZlbnRJbXBsLmggKi87IH07Ci0JCUE4QzBGRTg2MDg5NzAxRkIw
MEJBNTExNCAvKiBNdXRhdGlvbkV2ZW50SW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjlFODA4OTcwMUY1MDBCQTUxMTQgLyogTXV0YXRp
b25FdmVudEltcGwuY3BwICovOyB9OwotCQlBOEMwRkU4NzA4OTcwMUZCMDBCQTUxMTQgLyogTXV0
YXRpb25FdmVudEltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4QzBGOUU5MDg5NzAxRjUwMEJBNTExNCAvKiBNdXRhdGlvbkV2ZW50SW1wbC5oICov
OyB9OwotCQlBOEMwRkU4ODA4OTcwMUZCMDBCQTUxMTQgLyogUmVnaXN0ZXJlZEV2ZW50TGlzdGVu
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThD
MEY5RUEwODk3MDFGNTAwQkE1MTE0IC8qIFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmNwcCAqLzsg
fTsKLQkJQThDMEZFODkwODk3MDFGQjAwQkE1MTE0IC8qIFJlZ2lzdGVyZWRFdmVudExpc3RlbmVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjlF
QjA4OTcwMUY1MDBCQTUxMTQgLyogUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuaCAqLzsgfTsKLQkJ
QThDMEZFOEEwODk3MDFGQjAwQkE1MTE0IC8qIFVJRXZlbnRJbXBsLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGOUVDMDg5NzAxRjUwMEJBNTEx
NCAvKiBVSUV2ZW50SW1wbC5jcHAgKi87IH07Ci0JCUE4QzBGRThCMDg5NzAxRkIwMEJBNTExNCAv
KiBVSUV2ZW50SW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQThDMEY5RUQwODk3MDFGNTAwQkE1MTE0IC8qIFVJRXZlbnRJbXBsLmggKi87IH07Ci0J
CUE4QzBGRThDMDg5NzAxRkIwMEJBNTExNCAvKiBrZG9tZXZlbnRzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjlFRTA4OTcwMUY1MDBCQTUxMTQg
Lyoga2RvbWV2ZW50cy5oICovOyB9OwotCQlBOEMwRkU5NTA4OTcwMUZCMDBCQTUxMTQgLyogSGVs
cGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
QzBGOUY3MDg5NzAxRjUwMEJBNTExNCAvKiBIZWxwZXIuY3BwICovOyB9OwotCQlBOEMwRkU5NjA4
OTcwMUZCMDBCQTUxMTQgLyogSGVscGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjlGODA4OTcwMUY1MDBCQTUxMTQgLyogSGVscGVyLmggKi87
IH07Ci0JCUE4QzBGRTk3MDg5NzAxRkIwMEJBNTExNCAvKiBBdHRySW1wbC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjlGQTA4OTcwMUY1MDBC
QTUxMTQgLyogQXR0ckltcGwuY3BwICovOyB9OwotCQlBOEMwRkU5ODA4OTcwMUZCMDBCQTUxMTQg
LyogQXR0ckltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4QzBGOUZCMDg5NzAxRjUwMEJBNTExNCAvKiBBdHRySW1wbC5oICovOyB9OwotCQlBOEMw
RkU5OTA4OTcwMUZCMDBCQTUxMTQgLyogQ0RBVEFTZWN0aW9uSW1wbC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjlGQzA4OTcwMUY1MDBCQTUx
MTQgLyogQ0RBVEFTZWN0aW9uSW1wbC5jcHAgKi87IH07Ci0JCUE4QzBGRTlBMDg5NzAxRkIwMEJB
NTExNCAvKiBDREFUQVNlY3Rpb25JbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjlGRDA4OTcwMUY1MDBCQTUxMTQgLyogQ0RBVEFTZWN0aW9u
SW1wbC5oICovOyB9OwotCQlBOEMwRkU5QzA4OTcwMUZCMDBCQTUxMTQgLyogQ0RGSW50ZXJmYWNl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjlG
RjA4OTcwMUY1MDBCQTUxMTQgLyogQ0RGSW50ZXJmYWNlLmggKi87IH07Ci0JCUE4QzBGRTlEMDg5
NzAxRkIwMEJBNTExNCAvKiBDaGFyYWN0ZXJEYXRhSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkEwMDA4OTcwMUY1MDBCQTUxMTQgLyog
Q2hhcmFjdGVyRGF0YUltcGwuY3BwICovOyB9OwotCQlBOEMwRkU5RTA4OTcwMUZCMDBCQTUxMTQg
LyogQ2hhcmFjdGVyRGF0YUltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4QzBGQTAxMDg5NzAxRjUwMEJBNTExNCAvKiBDaGFyYWN0ZXJEYXRhSW1w
bC5oICovOyB9OwotCQlBOEMwRkU5RjA4OTcwMUZCMDBCQTUxMTQgLyogQ29tbWVudEltcGwuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZBMDIw
ODk3MDFGNTAwQkE1MTE0IC8qIENvbW1lbnRJbXBsLmNwcCAqLzsgfTsKLQkJQThDMEZFQTAwODk3
MDFGQjAwQkE1MTE0IC8qIENvbW1lbnRJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkEwMzA4OTcwMUY1MDBCQTUxMTQgLyogQ29tbWVudElt
cGwuaCAqLzsgfTsKLQkJQThDMEZFQTEwODk3MDFGQjAwQkE1MTE0IC8qIERvY3VtZW50RnJhZ21l
bnRJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4QzBGQTA0MDg5NzAxRjUwMEJBNTExNCAvKiBEb2N1bWVudEZyYWdtZW50SW1wbC5jcHAgKi87
IH07Ci0JCUE4QzBGRUEyMDg5NzAxRkIwMEJBNTExNCAvKiBEb2N1bWVudEZyYWdtZW50SW1wbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZBMDUw
ODk3MDFGNTAwQkE1MTE0IC8qIERvY3VtZW50RnJhZ21lbnRJbXBsLmggKi87IH07Ci0JCUE4QzBG
RUEzMDg5NzAxRkIwMEJBNTExNCAvKiBEb2N1bWVudEltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZBMDYwODk3MDFGNTAwQkE1MTE0IC8q
IERvY3VtZW50SW1wbC5jcHAgKi87IH07Ci0JCUE4QzBGRUE0MDg5NzAxRkIwMEJBNTExNCAvKiBE
b2N1bWVudEltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4QzBGQTA3MDg5NzAxRjUwMEJBNTExNCAvKiBEb2N1bWVudEltcGwuaCAqLzsgfTsKLQkJ
QThDMEZFQTUwODk3MDFGQjAwQkE1MTE0IC8qIERvY3VtZW50VHlwZUltcGwuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZBMDgwODk3MDFGNTAw
QkE1MTE0IC8qIERvY3VtZW50VHlwZUltcGwuY3BwICovOyB9OwotCQlBOEMwRkVBNjA4OTcwMUZC
MDBCQTUxMTQgLyogRG9jdW1lbnRUeXBlSW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZBMDkwODk3MDFGNTAwQkE1MTE0IC8qIERvY3VtZW50
VHlwZUltcGwuaCAqLzsgfTsKLQkJQThDMEZFQTgwODk3MDFGQjAwQkE1MTE0IC8qIGRvbWF0dHJz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkEw
QjA4OTcwMUY1MDBCQTUxMTQgLyogZG9tYXR0cnMuaCAqLzsgfTsKLQkJQThDMEZFQUEwODk3MDFG
QjAwQkE1MTE0IC8qIERPTUNvbmZpZ3VyYXRpb25JbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQTBEMDg5NzAxRjUwMEJBNTExNCAvKiBE
T01Db25maWd1cmF0aW9uSW1wbC5jcHAgKi87IH07Ci0JCUE4QzBGRUFCMDg5NzAxRkIwMEJBNTEx
NCAvKiBET01Db25maWd1cmF0aW9uSW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThDMEZBMEUwODk3MDFGNTAwQkE1MTE0IC8qIERPTUNvbmZpZ3Vy
YXRpb25JbXBsLmggKi87IH07Ci0JCUE4QzBGRUFDMDg5NzAxRkIwMEJBNTExNCAvKiBET01FcnJv
ckhhbmRsZXJJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4QzBGQTBGMDg5NzAxRjUwMEJBNTExNCAvKiBET01FcnJvckhhbmRsZXJJbXBsLmNw
cCAqLzsgfTsKLQkJQThDMEZFQUQwODk3MDFGQjAwQkE1MTE0IC8qIERPTUVycm9ySGFuZGxlcklt
cGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBG
QTEwMDg5NzAxRjUwMEJBNTExNCAvKiBET01FcnJvckhhbmRsZXJJbXBsLmggKi87IH07Ci0JCUE4
QzBGRUFFMDg5NzAxRkIwMEJBNTExNCAvKiBET01FcnJvckltcGwuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZBMTEwODk3MDFGNTAwQkE1MTE0
IC8qIERPTUVycm9ySW1wbC5jcHAgKi87IH07Ci0JCUE4QzBGRUFGMDg5NzAxRkIwMEJBNTExNCAv
KiBET01FcnJvckltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4QzBGQTEyMDg5NzAxRjUwMEJBNTExNCAvKiBET01FcnJvckltcGwuaCAqLzsgfTsK
LQkJQThDMEZFQjAwODk3MDFGQjAwQkE1MTE0IC8qIERPTUV4Y2VwdGlvbkltcGwuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZBMTMwODk3MDFG
NTAwQkE1MTE0IC8qIERPTUV4Y2VwdGlvbkltcGwuY3BwICovOyB9OwotCQlBOEMwRkVCMTA4OTcw
MUZCMDBCQTUxMTQgLyogRE9NRXhjZXB0aW9uSW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZBMTQwODk3MDFGNTAwQkE1MTE0IC8qIERPTUV4
Y2VwdGlvbkltcGwuaCAqLzsgfTsKLQkJQThDMEZFQjIwODk3MDFGQjAwQkE1MTE0IC8qIERPTUlt
cGxlbWVudGF0aW9uSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBOEMwRkExNTA4OTcwMUY1MDBCQTUxMTQgLyogRE9NSW1wbGVtZW50YXRpb25J
bXBsLmNwcCAqLzsgfTsKLQkJQThDMEZFQjMwODk3MDFGQjAwQkE1MTE0IC8qIERPTUltcGxlbWVu
dGF0aW9uSW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQThDMEZBMTYwODk3MDFGNTAwQkE1MTE0IC8qIERPTUltcGxlbWVudGF0aW9uSW1wbC5oICov
OyB9OwotCQlBOEMwRkVCNDA4OTcwMUZCMDBCQTUxMTQgLyogRE9NTGlzdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZBMTcwODk3MDFGNTAwQkE1
MTE0IC8qIERPTUxpc3QuaCAqLzsgfTsKLQkJQThDMEZFQjUwODk3MDFGQjAwQkE1MTE0IC8qIERP
TUxvY2F0b3JJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4QzBGQTE4MDg5NzAxRjUwMEJBNTExNCAvKiBET01Mb2NhdG9ySW1wbC5jcHAgKi87
IH07Ci0JCUE4QzBGRUI2MDg5NzAxRkIwMEJBNTExNCAvKiBET01Mb2NhdG9ySW1wbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZBMTkwODk3MDFG
NTAwQkE1MTE0IC8qIERPTUxvY2F0b3JJbXBsLmggKi87IH07Ci0JCUE4QzBGRUI3MDg5NzAxRkIw
MEJBNTExNCAvKiBET01TdHJpbmdJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQTFBMDg5NzAxRjUwMEJBNTExNCAvKiBET01TdHJpbmdJ
bXBsLmNwcCAqLzsgfTsKLQkJQThDMEZFQjgwODk3MDFGQjAwQkE1MTE0IC8qIERPTVN0cmluZ0lt
cGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBG
QTFCMDg5NzAxRjUwMEJBNTExNCAvKiBET01TdHJpbmdJbXBsLmggKi87IH07Ci0JCUE4QzBGRUI5
MDg5NzAxRkIwMEJBNTExNCAvKiBET01TdHJpbmdMaXN0SW1wbC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkExQzA4OTcwMUY1MDBCQTUxMTQg
LyogRE9NU3RyaW5nTGlzdEltcGwuY3BwICovOyB9OwotCQlBOEMwRkVCQTA4OTcwMUZCMDBCQTUx
MTQgLyogRE9NU3RyaW5nTGlzdEltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4QzBGQTFEMDg5NzAxRjUwMEJBNTExNCAvKiBET01TdHJpbmdMaXN0
SW1wbC5oICovOyB9OwotCQlBOEMwRkVCQjA4OTcwMUZCMDBCQTUxMTQgLyogRE9NVXNlckRhdGFJ
bXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
QzBGQTFFMDg5NzAxRjYwMEJBNTExNCAvKiBET01Vc2VyRGF0YUltcGwuY3BwICovOyB9OwotCQlB
OEMwRkVCQzA4OTcwMUZCMDBCQTUxMTQgLyogRE9NVXNlckRhdGFJbXBsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkExRjA4OTcwMUY2MDBCQTUx
MTQgLyogRE9NVXNlckRhdGFJbXBsLmggKi87IH07Ci0JCUE4QzBGRUJEMDg5NzAxRkIwMEJBNTEx
NCAvKiBFbGVtZW50SW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBOEMwRkEyMDA4OTcwMUY2MDBCQTUxMTQgLyogRWxlbWVudEltcGwuY3BwICov
OyB9OwotCQlBOEMwRkVCRTA4OTcwMUZCMDBCQTUxMTQgLyogRWxlbWVudEltcGwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQTIxMDg5NzAxRjYw
MEJBNTExNCAvKiBFbGVtZW50SW1wbC5oICovOyB9OwotCQlBOEMwRkVCRjA4OTcwMUZCMDBCQTUx
MTQgLyogRW50aXR5SW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBOEMwRkEyMjA4OTcwMUY2MDBCQTUxMTQgLyogRW50aXR5SW1wbC5jcHAgKi87
IH07Ci0JCUE4QzBGRUMwMDg5NzAxRkIwMEJBNTExNCAvKiBFbnRpdHlJbXBsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkEyMzA4OTcwMUY2MDBC
QTUxMTQgLyogRW50aXR5SW1wbC5oICovOyB9OwotCQlBOEMwRkVDMTA4OTcwMUZCMDBCQTUxMTQg
LyogRW50aXR5UmVmZXJlbmNlSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkEyNDA4OTcwMUY2MDBCQTUxMTQgLyogRW50aXR5UmVmZXJl
bmNlSW1wbC5jcHAgKi87IH07Ci0JCUE4QzBGRUMyMDg5NzAxRkIwMEJBNTExNCAvKiBFbnRpdHlS
ZWZlcmVuY2VJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBOEMwRkEyNTA4OTcwMUY2MDBCQTUxMTQgLyogRW50aXR5UmVmZXJlbmNlSW1wbC5oICov
OyB9OwotCQlBOEMwRkVDMzA4OTcwMUZCMDBCQTUxMTQgLyogTmFtZWRBdHRyTWFwSW1wbC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkEyNjA4
OTcwMUY2MDBCQTUxMTQgLyogTmFtZWRBdHRyTWFwSW1wbC5jcHAgKi87IH07Ci0JCUE4QzBGRUM0
MDg5NzAxRkIwMEJBNTExNCAvKiBOYW1lZEF0dHJNYXBJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkEyNzA4OTcwMUY2MDBCQTUxMTQgLyog
TmFtZWRBdHRyTWFwSW1wbC5oICovOyB9OwotCQlBOEMwRkVDNTA4OTcwMUZCMDBCQTUxMTQgLyog
TmFtZWROb2RlTWFwSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBOEMwRkEyODA4OTcwMUY2MDBCQTUxMTQgLyogTmFtZWROb2RlTWFwSW1wbC5j
cHAgKi87IH07Ci0JCUE4QzBGRUM2MDg5NzAxRkIwMEJBNTExNCAvKiBOYW1lZE5vZGVNYXBJbXBs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkEy
OTA4OTcwMUY2MDBCQTUxMTQgLyogTmFtZWROb2RlTWFwSW1wbC5oICovOyB9OwotCQlBOEMwRkVD
NzA4OTcwMUZCMDBCQTUxMTQgLyogTm9kZUltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZBMkEwODk3MDFGNjAwQkE1MTE0IC8qIE5vZGVJ
bXBsLmNwcCAqLzsgfTsKLQkJQThDMEZFQzgwODk3MDFGQjAwQkE1MTE0IC8qIE5vZGVJbXBsLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkEyQjA4
OTcwMUY2MDBCQTUxMTQgLyogTm9kZUltcGwuaCAqLzsgfTsKLQkJQThDMEZFQzkwODk3MDFGQjAw
QkE1MTE0IC8qIE5vZGVMaXN0SW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkEyQzA4OTcwMUY2MDBCQTUxMTQgLyogTm9kZUxpc3RJbXBs
LmNwcCAqLzsgfTsKLQkJQThDMEZFQ0EwODk3MDFGQjAwQkE1MTE0IC8qIE5vZGVMaXN0SW1wbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZBMkQw
ODk3MDFGNjAwQkE1MTE0IC8qIE5vZGVMaXN0SW1wbC5oICovOyB9OwotCQlBOEMwRkVDQjA4OTcw
MUZCMDBCQTUxMTQgLyogTm90YXRpb25JbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQTJFMDg5NzAxRjYwMEJBNTExNCAvKiBOb3RhdGlv
bkltcGwuY3BwICovOyB9OwotCQlBOEMwRkVDQzA4OTcwMUZCMDBCQTUxMTQgLyogTm90YXRpb25J
bXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMw
RkEyRjA4OTcwMUY2MDBCQTUxMTQgLyogTm90YXRpb25JbXBsLmggKi87IH07Ci0JCUE4QzBGRUNE
MDg5NzAxRkIwMEJBNTExNCAvKiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBsLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQTMwMDg5NzAxRjYw
MEJBNTExNCAvKiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBsLmNwcCAqLzsgfTsKLQkJQThDMEZF
Q0UwODk3MDFGQjAwQkE1MTE0IC8qIFByb2Nlc3NpbmdJbnN0cnVjdGlvbkltcGwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQTMxMDg5NzAxRjYw
MEJBNTExNCAvKiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBsLmggKi87IH07Ci0JCUE4QzBGRUNG
MDg5NzAxRkIwMEJBNTExNCAvKiBUYWdOb2RlTGlzdEltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZBMzIwODk3MDFGNjAwQkE1MTE0IC8q
IFRhZ05vZGVMaXN0SW1wbC5jcHAgKi87IH07Ci0JCUE4QzBGRUQwMDg5NzAxRkIwMEJBNTExNCAv
KiBUYWdOb2RlTGlzdEltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4QzBGQTMzMDg5NzAxRjYwMEJBNTExNCAvKiBUYWdOb2RlTGlzdEltcGwuaCAq
LzsgfTsKLQkJQThDMEZFRDEwODk3MDFGQjAwQkE1MTE0IC8qIFRleHRJbXBsLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQTM0MDg5NzAxRjYw
MEJBNTExNCAvKiBUZXh0SW1wbC5jcHAgKi87IH07Ci0JCUE4QzBGRUQyMDg5NzAxRkIwMEJBNTEx
NCAvKiBUZXh0SW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQThDMEZBMzUwODk3MDFGNjAwQkE1MTE0IC8qIFRleHRJbXBsLmggKi87IH07Ci0JCUE4
QzBGRUQzMDg5NzAxRkIwMEJBNTExNCAvKiBUeXBlSW5mb0ltcGwuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZBMzYwODk3MDFGNjAwQkE1MTE0
IC8qIFR5cGVJbmZvSW1wbC5jcHAgKi87IH07Ci0JCUE4QzBGRUQ0MDg5NzAxRkIwMEJBNTExNCAv
KiBUeXBlSW5mb0ltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4QzBGQTM3MDg5NzAxRjYwMEJBNTExNCAvKiBUeXBlSW5mb0ltcGwuaCAqLzsgfTsK
LQkJQThDMEZFRDUwODk3MDFGQjAwQkE1MTE0IC8qIFhNTEVsZW1lbnRJbXBsLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQTM4MDg5NzAxRjYw
MEJBNTExNCAvKiBYTUxFbGVtZW50SW1wbC5jcHAgKi87IH07Ci0JCUE4QzBGRUQ2MDg5NzAxRkIw
MEJBNTExNCAvKiBYTUxFbGVtZW50SW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThDMEZBMzkwODk3MDFGNjAwQkE1MTE0IC8qIFhNTEVsZW1lbnRJ
bXBsLmggKi87IH07Ci0JCUE4QzBGRUQ3MDg5NzAxRkIwMEJBNTExNCAvKiBrZG9tLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkEzQTA4OTcwMUY2
MDBCQTUxMTQgLyoga2RvbS5oICovOyB9OwotCQlBOEMwRkVEODA4OTcwMUZCMDBCQTUxMTQgLyog
S0RPTVBhcnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQThDMEZBM0IwODk3MDFGNjAwQkE1MTE0IC8qIEtET01QYXJ0LmNwcCAqLzsgfTsKLQkJQThD
MEZFRDkwODk3MDFGQjAwQkE1MTE0IC8qIEtET01QYXJ0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkEzQzA4OTcwMUY2MDBCQTUxMTQgLyogS0RP
TVBhcnQuaCAqLzsgfTsKLQkJQThDMEZFREIwODk3MDFGQjAwQkE1MTE0IC8qIEtET01TZXR0aW5n
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZB
M0UwODk3MDFGNjAwQkE1MTE0IC8qIEtET01TZXR0aW5ncy5oICovOyB9OwotCQlBOEMwRkVEQzA4
OTcwMUZCMDBCQTUxMTQgLyogS0RPTVZpZXcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZBM0YwODk3MDFGNjAwQkE1MTE0IC8qIEtET01WaWV3
LmNwcCAqLzsgfTsKLQkJQThDMEZFREQwODk3MDFGQjAwQkE1MTE0IC8qIEtET01WaWV3LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkE0MDA4OTcw
MUY2MDBCQTUxMTQgLyogS0RPTVZpZXcuaCAqLzsgfTsKLQkJQThDMEZFRTAwODk3MDFGQjAwQkE1
MTE0IC8qIExTRXhjZXB0aW9uSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkE0NTA4OTcwMUY2MDBCQTUxMTQgLyogTFNFeGNlcHRpb25J
bXBsLmNwcCAqLzsgfTsKLQkJQThDMEZFRTEwODk3MDFGQjAwQkE1MTE0IC8qIExTRXhjZXB0aW9u
SW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThD
MEZBNDYwODk3MDFGNjAwQkE1MTE0IC8qIExTRXhjZXB0aW9uSW1wbC5oICovOyB9OwotCQlBOEMw
RkVFMjA4OTcwMUZCMDBCQTUxMTQgLyogTFNJbnB1dEltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZBNDcwODk3MDFGNjAwQkE1MTE0IC8q
IExTSW5wdXRJbXBsLmNwcCAqLzsgfTsKLQkJQThDMEZFRTMwODk3MDFGQjAwQkE1MTE0IC8qIExT
SW5wdXRJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBOEMwRkE0ODA4OTcwMUY2MDBCQTUxMTQgLyogTFNJbnB1dEltcGwuaCAqLzsgfTsKLQkJQThD
MEZFRTQwODk3MDFGQjAwQkE1MTE0IC8qIExTT3V0cHV0SW1wbC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkE0OTA4OTcwMUY2MDBCQTUxMTQg
LyogTFNPdXRwdXRJbXBsLmNwcCAqLzsgfTsKLQkJQThDMEZFRTUwODk3MDFGQjAwQkE1MTE0IC8q
IExTT3V0cHV0SW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQThDMEZBNEEwODk3MDFGNjAwQkE1MTE0IC8qIExTT3V0cHV0SW1wbC5oICovOyB9Owot
CQlBOEMwRkVFNjA4OTcwMUZCMDBCQTUxMTQgLyogTFNQYXJzZXJGaWx0ZXJJbXBsLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQTRCMDg5NzAx
RjYwMEJBNTExNCAvKiBMU1BhcnNlckZpbHRlckltcGwuY3BwICovOyB9OwotCQlBOEMwRkVFNzA4
OTcwMUZCMDBCQTUxMTQgLyogTFNQYXJzZXJGaWx0ZXJJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkE0QzA4OTcwMUY2MDBCQTUxMTQgLyog
TFNQYXJzZXJGaWx0ZXJJbXBsLmggKi87IH07Ci0JCUE4QzBGRUU4MDg5NzAxRkIwMEJBNTExNCAv
KiBMU1BhcnNlckltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQThDMEZBNEQwODk3MDFGNjAwQkE1MTE0IC8qIExTUGFyc2VySW1wbC5jcHAgKi87
IH07Ci0JCUE4QzBGRUU5MDg5NzAxRkIwMEJBNTExNCAvKiBMU1BhcnNlckltcGwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQTRFMDg5NzAxRjYw
MEJBNTExNCAvKiBMU1BhcnNlckltcGwuaCAqLzsgfTsKLQkJQThDMEZFRUEwODk3MDFGQjAwQkE1
MTE0IC8qIExTUmVzb3VyY2VSZXNvbHZlckltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZBNEYwODk3MDFGNjAwQkE1MTE0IC8qIExTUmVz
b3VyY2VSZXNvbHZlckltcGwuY3BwICovOyB9OwotCQlBOEMwRkVFQjA4OTcwMUZCMDBCQTUxMTQg
LyogTFNSZXNvdXJjZVJlc29sdmVySW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThDMEZBNTAwODk3MDFGNjAwQkE1MTE0IC8qIExTUmVzb3VyY2VS
ZXNvbHZlckltcGwuaCAqLzsgfTsKLQkJQThDMEZFRUMwODk3MDFGQjAwQkE1MTE0IC8qIExTU2Vy
aWFsaXplckZpbHRlckltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThDMEZBNTEwODk3MDFGNjAwQkE1MTE0IC8qIExTU2VyaWFsaXplckZpbHRl
ckltcGwuY3BwICovOyB9OwotCQlBOEMwRkVFRDA4OTcwMUZCMDBCQTUxMTQgLyogTFNTZXJpYWxp
emVyRmlsdGVySW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQThDMEZBNTIwODk3MDFGNjAwQkE1MTE0IC8qIExTU2VyaWFsaXplckZpbHRlckltcGwu
aCAqLzsgfTsKLQkJQThDMEZFRUUwODk3MDFGQjAwQkE1MTE0IC8qIExTU2VyaWFsaXplckltcGwu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZB
NTMwODk3MDFGNjAwQkE1MTE0IC8qIExTU2VyaWFsaXplckltcGwuY3BwICovOyB9OwotCQlBOEMw
RkVFRjA4OTcwMUZCMDBCQTUxMTQgLyogTFNTZXJpYWxpemVySW1wbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZBNTQwODk3MDFGNjAwQkE1MTE0
IC8qIExTU2VyaWFsaXplckltcGwuaCAqLzsgfTsKLQkJQThDMEZFRjAwODk3MDFGQjAwQkE1MTE0
IC8qIGtkb21scy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQThDMEZBNTUwODk3MDFGNjAwQkE1MTE0IC8qIGtkb21scy5oICovOyB9OwotCQlBOEMwRkYw
MzA4OTcwMUZCMDBCQTUxMTQgLyogTmFtZXNwYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkE2ODA4OTcwMUY2MDBCQTUxMTQgLyogTmFtZXNw
YWNlLmggKi87IH07Ci0JCUE4QzBGRjBDMDg5NzAxRkIwMEJBNTExNCAvKiBLRE9NRG9jdW1lbnRC
dWlsZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4QzBGQTcyMDg5NzAxRjYwMEJBNTExNCAvKiBLRE9NRG9jdW1lbnRCdWlsZGVyLmNwcCAqLzsg
fTsKLQkJQThDMEZGMEQwODk3MDFGQjAwQkE1MTE0IC8qIEtET01Eb2N1bWVudEJ1aWxkZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQTczMDg5
NzAxRjYwMEJBNTExNCAvKiBLRE9NRG9jdW1lbnRCdWlsZGVyLmggKi87IH07Ci0JCUE4QzBGRjBF
MDg5NzAxRkIwMEJBNTExNCAvKiBLRE9NUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQTc0MDg5NzAxRjYwMEJBNTExNCAvKiBLRE9N
UGFyc2VyLmNwcCAqLzsgfTsKLQkJQThDMEZGMEYwODk3MDFGQjAwQkE1MTE0IC8qIEtET01QYXJz
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBG
QTc1MDg5NzAxRjYwMEJBNTExNCAvKiBLRE9NUGFyc2VyLmggKi87IH07Ci0JCUE4QzBGRjE1MDg5
NzAxRkIwMEJBNTExNCAvKiBEb2N1bWVudFJhbmdlSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkE3RDA4OTcwMUY2MDBCQTUxMTQgLyog
RG9jdW1lbnRSYW5nZUltcGwuY3BwICovOyB9OwotCQlBOEMwRkYxNjA4OTcwMUZCMDBCQTUxMTQg
LyogRG9jdW1lbnRSYW5nZUltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4QzBGQTdFMDg5NzAxRjYwMEJBNTExNCAvKiBEb2N1bWVudFJhbmdlSW1w
bC5oICovOyB9OwotCQlBOEMwRkYxNzA4OTcwMUZCMDBCQTUxMTQgLyogUmFuZ2VFeGNlcHRpb25J
bXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
QzBGQTdGMDg5NzAxRjYwMEJBNTExNCAvKiBSYW5nZUV4Y2VwdGlvbkltcGwuY3BwICovOyB9Owot
CQlBOEMwRkYxODA4OTcwMUZCMDBCQTUxMTQgLyogUmFuZ2VFeGNlcHRpb25JbXBsLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkE4MDA4OTcwMUY2
MDBCQTUxMTQgLyogUmFuZ2VFeGNlcHRpb25JbXBsLmggKi87IH07Ci0JCUE4QzBGRjE5MDg5NzAx
RkIwMEJBNTExNCAvKiBSYW5nZUltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThDMEZBODEwODk3MDFGNjAwQkE1MTE0IC8qIFJhbmdlSW1wbC5j
cHAgKi87IH07Ci0JCUE4QzBGRjFBMDg5NzAxRkIwMEJBNTExNCAvKiBSYW5nZUltcGwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQTgyMDg5NzAx
RjYwMEJBNTExNCAvKiBSYW5nZUltcGwuaCAqLzsgfTsKLQkJQThDMEZGMUIwODk3MDFGQjAwQkE1
MTE0IC8qIGtkb21yYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQThDMEZBODMwODk3MDFGNjAwQkE1MTE0IC8qIGtkb21yYW5nZS5oICovOyB9Owot
CQlBOEMwRkYyRjA4OTcwMUZCMDBCQTUxMTQgLyogU2hhcmVkLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkE5ODA4OTcwMUY2MDBCQTUxMTQgLyog
U2hhcmVkLmggKi87IH07Ci0JCUE4QzBGRjM0MDg5NzAxRkIwMEJBNTExNCAvKiBEb2N1bWVudFRy
YXZlcnNhbEltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQThDMEZBOUYwODk3MDFGNjAwQkE1MTE0IC8qIERvY3VtZW50VHJhdmVyc2FsSW1wbC5j
cHAgKi87IH07Ci0JCUE4QzBGRjM1MDg5NzAxRkIwMEJBNTExNCAvKiBEb2N1bWVudFRyYXZlcnNh
bEltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
QzBGQUEwMDg5NzAxRjYwMEJBNTExNCAvKiBEb2N1bWVudFRyYXZlcnNhbEltcGwuaCAqLzsgfTsK
LQkJQThDMEZGMzYwODk3MDFGQjAwQkE1MTE0IC8qIE5vZGVGaWx0ZXJJbXBsLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQUExMDg5NzAxRjYw
MEJBNTExNCAvKiBOb2RlRmlsdGVySW1wbC5jcHAgKi87IH07Ci0JCUE4QzBGRjM3MDg5NzAxRkIw
MEJBNTExNCAvKiBOb2RlRmlsdGVySW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThDMEZBQTIwODk3MDFGNjAwQkE1MTE0IC8qIE5vZGVGaWx0ZXJJ
bXBsLmggKi87IH07Ci0JCUE4QzBGRjM4MDg5NzAxRkIwMEJBNTExNCAvKiBOb2RlSXRlcmF0b3JJ
bXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
QzBGQUEzMDg5NzAxRjYwMEJBNTExNCAvKiBOb2RlSXRlcmF0b3JJbXBsLmNwcCAqLzsgfTsKLQkJ
QThDMEZGMzkwODk3MDFGQjAwQkE1MTE0IC8qIE5vZGVJdGVyYXRvckltcGwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQUE0MDg5NzAxRjYwMEJB
NTExNCAvKiBOb2RlSXRlcmF0b3JJbXBsLmggKi87IH07Ci0JCUE4QzBGRjNBMDg5NzAxRkIwMEJB
NTExNCAvKiBUcmF2ZXJzYWxJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4QzBGQUE1MDg5NzAxRjYwMEJBNTExNCAvKiBUcmF2ZXJzYWxJbXBs
LmNwcCAqLzsgfTsKLQkJQThDMEZGM0IwODk3MDFGQjAwQkE1MTE0IC8qIFRyYXZlcnNhbEltcGwu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQUE2
MDg5NzAxRjYwMEJBNTExNCAvKiBUcmF2ZXJzYWxJbXBsLmggKi87IH07Ci0JCUE4QzBGRjNDMDg5
NzAxRkIwMEJBNTExNCAvKiBUcmVlV2Fsa2VySW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkFBNzA4OTcwMUY2MDBCQTUxMTQgLyogVHJl
ZVdhbGtlckltcGwuY3BwICovOyB9OwotCQlBOEMwRkYzRDA4OTcwMUZCMDBCQTUxMTQgLyogVHJl
ZVdhbGtlckltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4QzBGQUE4MDg5NzAxRjYwMEJBNTExNCAvKiBUcmVlV2Fsa2VySW1wbC5oICovOyB9Owot
CQlBOEMwRkYzRTA4OTcwMUZCMDBCQTUxMTQgLyoga2RvbXRyYXZlcnNhbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZBQTkwODk3MDFGNjAwQkE1
MTE0IC8qIGtkb210cmF2ZXJzYWwuaCAqLzsgfTsKLQkJQThDMEZGNDUwODk3MDFGQjAwQkE1MTE0
IC8qIFRyZWVTaGFyZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4QzBGQUIwMDg5NzAxRjYwMEJBNTExNCAvKiBUcmVlU2hhcmVkLmggKi87IH07Ci0J
CUE4QzBGRjRDMDg5NzAxRkIwMEJBNTExNCAvKiBBYnN0cmFjdFZpZXdJbXBsLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQUI5MDg5NzAxRjYw
MEJBNTExNCAvKiBBYnN0cmFjdFZpZXdJbXBsLmNwcCAqLzsgfTsKLQkJQThDMEZGNEQwODk3MDFG
QjAwQkE1MTE0IC8qIEFic3RyYWN0Vmlld0ltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQUJBMDg5NzAxRjYwMEJBNTExNCAvKiBBYnN0cmFj
dFZpZXdJbXBsLmggKi87IH07Ci0JCUE4QzBGRjRFMDg5NzAxRkIwMEJBNTExNCAvKiBEb2N1bWVu
dFZpZXdJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4QzBGQUJCMDg5NzAxRjYwMEJBNTExNCAvKiBEb2N1bWVudFZpZXdJbXBsLmNwcCAqLzsg
fTsKLQkJQThDMEZGNEYwODk3MDFGQjAwQkE1MTE0IC8qIERvY3VtZW50Vmlld0ltcGwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQUJDMDg5NzAx
RjYwMEJBNTExNCAvKiBEb2N1bWVudFZpZXdJbXBsLmggKi87IH07Ci0JCUE4QzBGRkJCMDg5NzAx
RkMwMEJBNTExNCAvKiBFbGVtZW50U2NoZW1lSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkIzMDA4OTcwMUY3MDBCQTUxMTQgLyogRWxl
bWVudFNjaGVtZUltcGwuY3BwICovOyB9OwotCQlBOEMwRkZCQzA4OTcwMUZDMDBCQTUxMTQgLyog
RWxlbWVudFNjaGVtZUltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4QzBGQjMxMDg5NzAxRjcwMEJBNTExNCAvKiBFbGVtZW50U2NoZW1lSW1wbC5o
ICovOyB9OwotCQlBOEMwRkZCRDA4OTcwMUZDMDBCQTUxMTQgLyogTkJDSW1wbC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkIzMjA4OTcwMUY3
MDBCQTUxMTQgLyogTkJDSW1wbC5jcHAgKi87IH07Ci0JCUE4QzBGRkJFMDg5NzAxRkMwMEJBNTEx
NCAvKiBOQkNJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBOEMwRkIzMzA4OTcwMUY3MDBCQTUxMTQgLyogTkJDSW1wbC5oICovOyB9OwotCQlBOEMw
RkZCRjA4OTcwMUZDMDBCQTUxMTQgLyogUG9pbnRlclBhcnRJbXBsLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQjM0MDg5NzAxRjcwMEJBNTEx
NCAvKiBQb2ludGVyUGFydEltcGwuY3BwICovOyB9OwotCQlBOEMwRkZDMDA4OTcwMUZDMDBCQTUx
MTQgLyogUG9pbnRlclBhcnRJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBOEMwRkIzNTA4OTcwMUY3MDBCQTUxMTQgLyogUG9pbnRlclBhcnRJbXBs
LmggKi87IH07Ci0JCUE4QzBGRkMxMDg5NzAxRkMwMEJBNTExNCAvKiBTaG9ydEhhbmRJbXBsLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQjM2
MDg5NzAxRjcwMEJBNTExNCAvKiBTaG9ydEhhbmRJbXBsLmNwcCAqLzsgfTsKLQkJQThDMEZGQzIw
ODk3MDFGQzAwQkE1MTE0IC8qIFNob3J0SGFuZEltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQjM3MDg5NzAxRjcwMEJBNTExNCAvKiBTaG9y
dEhhbmRJbXBsLmggKi87IH07Ci0JCUE4QzBGRkMzMDg5NzAxRkMwMEJBNTExNCAvKiBYTUxOU1Nj
aGVtZUltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQThDMEZCMzgwODk3MDFGNzAwQkE1MTE0IC8qIFhNTE5TU2NoZW1lSW1wbC5jcHAgKi87IH07
Ci0JCUE4QzBGRkM0MDg5NzAxRkMwMEJBNTExNCAvKiBYTUxOU1NjaGVtZUltcGwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQjM5MDg5NzAxRjcw
MEJBNTExNCAvKiBYTUxOU1NjaGVtZUltcGwuaCAqLzsgfTsKLQkJQThDMEZGQzcwODk3MDFGQzAw
QkE1MTE0IC8qIFhQb2ludGVyRXZhbHVhdG9ySW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkIzQzA4OTcwMUY3MDBCQTUxMTQgLyogWFBv
aW50ZXJFdmFsdWF0b3JJbXBsLmNwcCAqLzsgfTsKLQkJQThDMEZGQzgwODk3MDFGQzAwQkE1MTE0
IC8qIFhQb2ludGVyRXZhbHVhdG9ySW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThDMEZCM0QwODk3MDFGNzAwQkE1MTE0IC8qIFhQb2ludGVyRXZh
bHVhdG9ySW1wbC5oICovOyB9OwotCQlBOEMwRkZDOTA4OTcwMUZDMDBCQTUxMTQgLyogWFBvaW50
ZXJFeGNlcHRpb25JbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4QzBGQjNFMDg5NzAxRjcwMEJBNTExNCAvKiBYUG9pbnRlckV4Y2VwdGlvbklt
cGwuY3BwICovOyB9OwotCQlBOEMwRkZDQTA4OTcwMUZDMDBCQTUxMTQgLyogWFBvaW50ZXJFeGNl
cHRpb25JbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBOEMwRkIzRjA4OTcwMUY3MDBCQTUxMTQgLyogWFBvaW50ZXJFeGNlcHRpb25JbXBsLmggKi87
IH07Ci0JCUE4QzBGRkNCMDg5NzAxRkMwMEJBNTExNCAvKiBYUG9pbnRlckV4cHJlc3Npb25JbXBs
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBG
QjQwMDg5NzAxRjcwMEJBNTExNCAvKiBYUG9pbnRlckV4cHJlc3Npb25JbXBsLmNwcCAqLzsgfTsK
LQkJQThDMEZGQ0MwODk3MDFGQzAwQkE1MTE0IC8qIFhQb2ludGVyRXhwcmVzc2lvbkltcGwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQjQxMDg5
NzAxRjcwMEJBNTExNCAvKiBYUG9pbnRlckV4cHJlc3Npb25JbXBsLmggKi87IH07Ci0JCUE4QzBG
RkNEMDg5NzAxRkMwMEJBNTExNCAvKiBYUG9pbnRlclJlc3VsdEltcGwuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZCNDIwODk3MDFGNzAwQkE1
MTE0IC8qIFhQb2ludGVyUmVzdWx0SW1wbC5jcHAgKi87IH07Ci0JCUE4QzBGRkNFMDg5NzAxRkMw
MEJBNTExNCAvKiBYUG9pbnRlclJlc3VsdEltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQjQzMDg5NzAxRjcwMEJBNTExNCAvKiBYUG9pbnRl
clJlc3VsdEltcGwuaCAqLzsgfTsKLQkJQThDMEZGQ0YwODk3MDFGQzAwQkE1MTE0IC8qIFhQb2lu
dGVyU2NoZW1lSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOEMwRkI0NDA4OTcwMUY3MDBCQTUxMTQgLyogWFBvaW50ZXJTY2hlbWVJbXBsLmNw
cCAqLzsgfTsKLQkJQThDMEZGRDAwODk3MDFGQzAwQkE1MTE0IC8qIFhQb2ludGVyU2NoZW1lSW1w
bC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZC
NDUwODk3MDFGNzAwQkE1MTE0IC8qIFhQb2ludGVyU2NoZW1lSW1wbC5oICovOyB9OwotCQlBOEMw
RkZEMTA4OTcwMUZDMDBCQTUxMTQgLyoga2RvbXhwb2ludGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkI0NjA4OTcwMUY3MDBCQTUxMTQgLyog
a2RvbXhwb2ludGVyLmggKi87IH07CiAJCUE4QzBGRkREMDg5NzAxRkMwMEJBNTExNCAvKiBLUmVu
ZGVyaW5nRGV2aWNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4QzBGQjU0MDg5NzAxRjcwMEJBNTExNCAvKiBLUmVuZGVyaW5nRGV2aWNlLmNwcCAq
LzsgfTsKIAkJQThDMEZGREUwODk3MDFGQzAwQkE1MTE0IC8qIEtSZW5kZXJpbmdEZXZpY2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGQjU1MDg5
NzAxRjcwMEJBNTExNCAvKiBLUmVuZGVyaW5nRGV2aWNlLmggKi87IH07CiAJCUE4QzBGRkUyMDg5
NzAxRkMwMEJBNTExNCAvKiBLUmVuZGVyaW5nRmlsbFBhaW50ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZCNTkwODk3MDFGNzAwQkE1MTE0
IC8qIEtSZW5kZXJpbmdGaWxsUGFpbnRlci5jcHAgKi87IH07CkBAIC0yMjY4LDE2ICsxNjI3LDE0
IEBACiAJCUE4QzBGRkZEMDg5NzAxRkMwMEJBNTExNCAvKiBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJR
dWFydHoubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEMwRkI3NTA4OTcwMUY4MDBCQTUxMTQgLyogS1JlbmRlcmluZ1BhaW50U2VydmVyUXVhcnR6Lm1t
ICovOyB9OwogCQlBOEMwRkZGRTA4OTcwMUZDMDBCQTUxMTQgLyogUXVhcnR6U3VwcG9ydC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEZCNzYwODk3
MDFGODAwQkE1MTE0IC8qIFF1YXJ0elN1cHBvcnQuaCAqLzsgfTsKIAkJQThDMEZGRkYwODk3MDFG
QzAwQkE1MTE0IC8qIFF1YXJ0elN1cHBvcnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRkI3NzA4OTcwMUY4MDBCQTUxMTQgLyogUXVhcnR6U3Vw
cG9ydC5tbSAqLzsgfTsKLQkJQThEQzYzRTkwOEUwREQwQTAwNDUwN0Y3IC8qIEVjbWFJbnRlcmZh
Y2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThE
QzYzRTgwOEUwREQwQTAwNDUwN0Y3IC8qIEVjbWFJbnRlcmZhY2UuY3BwICovOyB9OworCQlBOEM4
MDE1NzA5MTQzNTc0MDA2QTVFNUIgLyogU1ZHRWxlbWVudEZhY3RvcnkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzgwMTU1MDkxNDM1NzQwMDZBNUU1
QiAvKiBTVkdFbGVtZW50RmFjdG9yeS5oICovOyB9OworCQlBOEM4MDE1ODA5MTQzNTc0MDA2QTVF
NUIgLyogU1ZHRWxlbWVudEZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThDODAxNTYwOTE0MzU3NDAwNkE1RTVCIC8qIFNWR0VsZW1lbnRG
YWN0b3J5LmNwcCAqLzsgfTsKKwkJQThDODAxQTcwOTE0M0UzQjAwNkE1RTVCIC8qIFNWR05hbWVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEM4MDFB
NTA5MTQzRTNCMDA2QTVFNUIgLyogU1ZHTmFtZXMuaCAqLzsgfTsKKwkJQThDODAxQTgwOTE0M0Uz
QjAwNkE1RTVCIC8qIFNWR05hbWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4QzgwMUE2MDkxNDNFM0IwMDZBNUU1QiAvKiBTVkdOYW1lcy5jcHAg
Ki87IH07CiAJCUE4REM2M0VDMDhFMEREMkEwMDQ1MDdGNyAvKiBFY21hSW50ZXJmYWNlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4REM2M0VCMDhF
MEREMkEwMDQ1MDdGNyAvKiBFY21hSW50ZXJmYWNlLmNwcCAqLzsgfTsKLQkJQThFQTQzNDUwOEUx
NEVBQzAwNEJDMzk2IC8qIHhtbF9rZG9tdG9rZW5pemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEVBNDMzRDA4RTE0RUFCMDA0QkMzOTYgLyogeG1s
X2tkb210b2tlbml6ZXIuaCAqLzsgfTsKLQkJQThFQTQzNDYwOEUxNEVBQzAwNEJDMzk2IC8qIHht
bF9rZG9tdG9rZW5pemVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4RUE0MzNFMDhFMTRFQUMwMDRCQzM5NiAvKiB4bWxfa2RvbXRva2VuaXplci5j
cHAgKi87IH07CiAJCUE4RUE0MzQ3MDhFMTRFQUMwMDRCQzM5NiAvKiByZW5kZXJfa2NhbnZhc3dy
YXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
RUE0MzNGMDhFMTRFQUMwMDRCQzM5NiAvKiByZW5kZXJfa2NhbnZhc3dyYXBwZXIuaCAqLzsgfTsK
LQkJQThFQTQzNDgwOEUxNEVBQzAwNEJDMzk2IC8qIHJlbmRlcl9rY2FudmFzd3JhcHBlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEVBNDM0MDA4
RTE0RUFDMDA0QkMzOTYgLyogcmVuZGVyX2tjYW52YXN3cmFwcGVyLmNwcCAqLzsgfTsKIAkJQThF
QTQzNDkwOEUxNEVBQzAwNEJDMzk2IC8qIGRvbV9rZG9tbm9kZXRyZWV3cmFwcGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEVBNDM0MTA4RTE0RUFD
MDA0QkMzOTYgLyogZG9tX2tkb21ub2RldHJlZXdyYXBwZXIuaCAqLzsgfTsKLQkJQThFQTQzNEEw
OEUxNEVBQzAwNEJDMzk2IC8qIGRvbV9rZG9tbm9kZXRyZWV3cmFwcGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RUE0MzQyMDhFMTRFQUMwMDRC
QzM5NiAvKiBkb21fa2RvbW5vZGV0cmVld3JhcHBlci5jcHAgKi87IH07CiAJCUE4RUE0MzRCMDhF
MTRFQUMwMDRCQzM5NiAvKiBkb21fa2RvbWRvY3VtZW50d3JhcHBlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThFQTQzNDMwOEUxNEVBQzAwNEJDMzk2
IC8qIGRvbV9rZG9tZG9jdW1lbnR3cmFwcGVyLmggKi87IH07Ci0JCUE4RUE0MzRDMDhFMTRFQUMw
MDRCQzM5NiAvKiBkb21fa2RvbWRvY3VtZW50d3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEVBNDM0NDA4RTE0RUFDMDA0QkMzOTYgLyog
ZG9tX2tkb21kb2N1bWVudHdyYXBwZXIuY3BwICovOyB9OwogCQlBOEZEOEI4NjA4N0NCNDRDMDBE
QzM3MDcgLyogS1dRV01hdHJpeC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4NUQ3QThDMDg3OUVDNjQwMDZBOTE3MiAvKiBLV1FXTWF0cml4Lm1tICov
OyB9OwogCQlBOEZEOEI4NzA4N0NCNDU3MDBEQzM3MDcgLyogS1dRV01hdHJpeC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg1RDdBOEQwODc5RUM2NDAw
NkE5MTcyIC8qIEtXUVdNYXRyaXguaCAqLzsgfTsKIAkJQkMxNzk4OTIwODhEOTc1RjAwNjA2OEE1
IC8qIHJlbmRlcl90aGVtZV9tYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzE3OTg4RjA4OEQ5NzVGMDA2MDY4QTUgLyogcmVuZGVyX3RoZW1lX21h
Yy5tbSAqLzsgfTsKQEAgLTI1MjAsMTAgKzE4NzcsNiBAQAogCQk5M0YxOUIxOTA4MjQ1RTU5MDAx
RTlBQkMgLyogSW5mby5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQueG1sOyBwYXRoID0gSW5mby5wbGlzdDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTNGMTlCMUEwODI0NUU1QTAwMUU5QUJDIC8qIFdlYkNvcmUuZnJhbWV3
b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB3cmFw
cGVyLmZyYW1ld29yazsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gV2ViQ29yZS5mcmFtZXdv
cms7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTkzRjFEMzFBMDU1OEND
NUMwMDgyMUJDMCAvKiBsaWJpY3Vjb3JlLmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IG5hbWUgPSBs
aWJpY3Vjb3JlLmR5bGliOyBwYXRoID0gL3Vzci9saWIvbGliaWN1Y29yZS5keWxpYjsgc291cmNl
VHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKLQkJQTgwMjQzNEMwOEFDODVFQTAwMUIyOURBIC8qIERv
Y3VtZW50Q1NTSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEb2N1bWVu
dENTU0ltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgwMjQzNEQwOEFDODVF
QTAwMUIyOURBIC8qIERvY3VtZW50Q1NTSW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBEb2N1bWVudENTU0ltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlBODAyNDM1MDA4QUM4NjUxMDAxQjI5REEgLyogRE9NT2JqZWN0SW1wbC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01PYmplY3RJbXBsLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgwMjQzNTEwOEFDODY1MTAwMUIyOURBIC8qIERP
TU9iamVjdEltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NT2JqZWN0
SW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODEwRTM5MzA4QTQxNjBGMDAz
MzNEOTggLyogS0NhbnZhc1RyZWVEZWJ1Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBLQ2FudmFzVHJlZURlYnVnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4
MTBFMzk0MDhBNDE2MEYwMDMzM0Q5OCAvKiBLQ2FudmFzVHJlZURlYnVnLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gS0NhbnZhc1RyZWVE
ZWJ1Zy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gNDsgdXNlc1RhYnMg
PSAwOyB9OwogCQlBODEyMkM3RTA4RDU2NEIwMDA4NDRGQTMgLyogR2V0U1ZHRG9jdW1lbnQuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEdldFNWR0RvY3VtZW50LmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTI4OTksMzA4ICsyMjUyLDMwIEBACiAJCUE4MTIyREY1MDhENTY0
QjMwMDg0NEZBMyAvKiBTVkdab29tQW5kUGFuV3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTVkdab29tQW5kUGFuV3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBODEyMkRGNjA4RDU2NEIzMDA4NDRGQTMgLyogU1ZHWm9vbUV2ZW50V3JhcHBl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdab29tRXZlbnRX
cmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgxMjJERjcwOEQ1NjRC
MzAwODQ0RkEzIC8qIFNWR1pvb21FdmVudFdyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU1ZHWm9vbUV2ZW50V3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlBODFENTZBMjA4QUNBQzdFMDAxMzZBQzEgLyogWFBvaW50ZXJIZWxwZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFBvaW50ZXJIZWxwZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDU2QTMwOEFDQUM3RTAwMTM2QUMxIC8qIFhQb2ludGVy
SGVscGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhQb2ludGVy
SGVscGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDU4MTYwOEFEREZG
NjAwMTM2QUMxIC8qIEF0dHIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEF0dHIuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODFENTgxNzA4QURERkY2MDAxMzZBQzEgLyog
Q0RBVEFTZWN0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDREFUQVNlY3Rpb24uaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODFENTgxODA4QURERkY2MDAxMzZBQzEg
LyogQ2hhcmFjdGVyRGF0YS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ2hhcmFjdGVyRGF0
YS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MUQ1ODE5MDhBRERGRjYwMDEz
NkFDMSAvKiBDb21tZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDb21tZW50LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDU4MUEwOEFEREZGNjAwMTM2QUMxIC8q
IGRvY3MtY29yZS54bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhtbDsgcGF0aCA9ICJkb2NzLWNvcmUueG1s
Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDU4MUIwOEFEREZGNzAwMTM2QUMx
IC8qIERvY3VtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEb2N1bWVudC5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MUQ1ODFDMDhBRERGRjcwMDEzNkFDMSAvKiBE
b2N1bWVudEZyYWdtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEb2N1bWVudEZyYWdt
ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDU4MUQwOEFEREZGNzAw
MTM2QUMxIC8qIERvY3VtZW50VHlwZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRG9jdW1l
bnRUeXBlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDU4MUUwOEFEREZG
NzAwMTM2QUMxIC8qIERPTUNvbmZpZ3VyYXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IERPTUNvbmZpZ3VyYXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODFE
NTgxRjA4QURERkY3MDAxMzZBQzEgLyogRE9NRXJyb3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IERPTUVycm9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDU4MjAw
OEFEREZGNzAwMTM2QUMxIC8qIERPTUVycm9ySGFuZGxlci5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gRE9NRXJyb3JIYW5kbGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QTgxRDU4MjEwOEFEREZGNzAwMTM2QUMxIC8qIERPTUV4Y2VwdGlvbi5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gRE9NRXhjZXB0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQTgxRDU4MjIwOEFEREZGNzAwMTM2QUMxIC8qIERPTUltcGxlbWVudGF0aW9uLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBET01JbXBsZW1lbnRhdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUE4MUQ1ODI1MDhBRERGRjcwMDEzNkFDMSAvKiBET01Mb2NhdG9yLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBET01Mb2NhdG9yLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQTgxRDU4MjYwOEFEREZGNzAwMTM2QUMxIC8qIERPTU9iamVjdC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRE9NT2JqZWN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQTgxRDU4MjgwOEFEREZGNzAwMTM2QUMxIC8qIERPTVN0cmluZ0xpc3QuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERPTVN0cmluZ0xpc3QuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlBODFENTgyOTA4QURERkY3MDAxMzZBQzEgLyogRE9NVXNlckRhdGEu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERPTVVzZXJEYXRhLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDU4MkEwOEFEREZGNzAwMTM2QUMxIC8qIEVsZW1lbnQuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlBODFENTgyQjA4QURERkY3MDAxMzZBQzEgLyogRW50aXR5LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBFbnRpdHkuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlBODFENTgyQzA4QURERkY3MDAxMzZBQzEgLyogRW50aXR5UmVmZXJlbmNlLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBFbnRpdHlSZWZlcmVuY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlBODFENTgyRTA4QURERkY3MDAxMzZBQzEgLyogTmFtZWROb2RlTWFwLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOYW1lZE5vZGVNYXAuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlBODFENTgzMDA4QURERkY3MDAxMzZBQzEgLyogTm9kZS5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gTm9kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUE4MUQ1ODMxMDhBRERGRjcwMDEzNkFDMSAvKiBOb2RlTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gTm9kZUxpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODFE
NTgzMjA4QURERkY3MDAxMzZBQzEgLyogTm90YXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IE5vdGF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDU4MzMw
OEFEREZGNzAwMTM2QUMxIC8qIFByb2Nlc3NpbmdJbnN0cnVjdGlvbi5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gUHJvY2Vzc2luZ0luc3RydWN0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQTgxRDU4MzQwOEFEREZGNzAwMTM2QUMxIC8qIFRleHQuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFRleHQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
ODFENTgzNTA4QURERkY3MDAxMzZBQzEgLyogVHlwZUluZm8uaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFR5cGVJbmZvLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDU4
MzgwOEFEREZGNzAwMTM2QUMxIC8qIENvdW50ZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IENvdW50ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODFENTgzQTA4QURE
RkY3MDAxMzZBQzEgLyogQ1NTQ2hhcnNldFJ1bGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IENTU0NoYXJzZXRSdWxlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDU4
M0IwOEFEREZGNzAwMTM2QUMxIC8qIENTU0ZvbnRGYWNlUnVsZS5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gQ1NTRm9udEZhY2VSdWxlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQTgxRDU4M0MwOEFEREZGNzAwMTM2QUMxIC8qIENTU0ltcG9ydFJ1bGUuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IENTU0ltcG9ydFJ1bGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlBODFENTgzRDA4QURERkY3MDAxMzZBQzEgLyogQ1NTTWVkaWFSdWxlLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBDU1NNZWRpYVJ1bGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlBODFENTgzRTA4QURERkY3MDAxMzZBQzEgLyogQ1NTUGFnZVJ1bGUuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IENTU1BhZ2VSdWxlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQTgxRDU4M0YwOEFEREZGNzAwMTM2QUMxIC8qIENTU1ByaW1pdGl2ZVZhbHVl
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NQcmltaXRpdmVWYWx1ZS5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MUQ1ODQwMDhBRERGRjcwMDEzNkFDMSAvKiBDU1NS
dWxlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NSdWxlLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDU4NDEwOEFEREZGNzAwMTM2QUMxIC8qIENTU1J1bGVMaXN0
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NSdWxlTGlzdC5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUE4MUQ1ODQyMDhBRERGRjcwMDEzNkFDMSAvKiBDU1NTdHlsZURl
Y2xhcmF0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NTdHlsZURlY2xhcmF0aW9u
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDU4NDMwOEFEREZGNzAwMTM2
QUMxIC8qIENTU1N0eWxlUnVsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ1NTU3R5bGVS
dWxlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDU4NDQwOEFEREZGNzAw
MTM2QUMxIC8qIENTU1N0eWxlU2hlZXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENTU1N0
eWxlU2hlZXQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODFENTg0NTA4QURE
RkY3MDAxMzZBQzEgLyogQ1NTVW5rbm93blJ1bGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IENTU1Vua25vd25SdWxlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDU4
NDYwOEFEREZGNzAwMTM2QUMxIC8qIENTU1ZhbHVlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBDU1NWYWx1ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MUQ1ODQ3MDhB
RERGRjcwMDEzNkFDMSAvKiBDU1NWYWx1ZUxpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IENTU1ZhbHVlTGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MUQ1ODQ4
MDhBRERGRjcwMDEzNkFDMSAvKiBEb2N1bWVudENTUy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gRG9jdW1lbnRDU1MuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODFENTg0
QjA4QURERkY3MDAxMzZBQzEgLyogUmVjdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVj
dC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MUQ1ODRDMDhBRERGRjcwMDEz
NkFDMSAvKiBSR0JDb2xvci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUkdCQ29sb3IuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODFENTg0RjA4QURERkY3MDAxMzZBQzEg
LyogRG9jdW1lbnRFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRG9jdW1lbnRFdmVu
dC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MUQ1ODUwMDhBRERGRjcwMDEz
NkFDMSAvKiBFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRXZlbnQuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODFENTg1MTA4QURERkY3MDAxMzZBQzEgLyogRXZl
bnRFeGNlcHRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEV2ZW50RXhjZXB0aW9uLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDU4NTIwOEFEREZGNzAwMTM2QUMx
IC8qIEV2ZW50TGlzdGVuZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEV2ZW50TGlzdGVu
ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODFENTg1MzA4QURERkY3MDAx
MzZBQzEgLyogRXZlbnRUYXJnZXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEV2ZW50VGFy
Z2V0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDU4NTUwOEFEREZGNzAw
MTM2QUMxIC8qIE1vdXNlRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1vdXNlRXZl
bnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODFENTg1NjA4QURERkY3MDAx
MzZBQzEgLyogTXV0YXRpb25FdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTXV0YXRp
b25FdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MUQ1ODU3MDhBRERG
RjcwMDEzNkFDMSAvKiBVSUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBVSUV2ZW50
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDU4NTkwOEFEREZGNzAwMTM2
QUMxIC8qIERvY3VtZW50UmFuZ2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERvY3VtZW50
UmFuZ2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODFENTg1QjA4QURERkY3
MDAxMzZBQzEgLyogUmFuZ2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJhbmdlLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDU4NUMwOEFEREZGNzAwMTM2QUMxIC8q
IFJhbmdlRXhjZXB0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSYW5nZUV4Y2VwdGlv
bi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MUQ1ODVFMDhBRERGRjcwMDEz
NkFDMSAvKiBEb2N1bWVudFN0eWxlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEb2N1bWVu
dFN0eWxlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDU4NjAwOEFEREZG
NzAwMTM2QUMxIC8qIExpbmtTdHlsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGlua1N0
eWxlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDU4NjEwOEFEREZGNzAw
MTM2QUMxIC8qIE1lZGlhTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFMaXN0
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDU4NjIwOEFEREZGNzAwMTM2
QUMxIC8qIFN0eWxlU2hlZXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFN0eWxlU2hlZXQu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODFENTg2MzA4QURERkY3MDAxMzZB
QzEgLyogU3R5bGVTaGVldExpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFN0eWxlU2hl
ZXRMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDU4NjUwOEFEREZG
NzAwMTM2QUMxIC8qIERvY3VtZW50VHJhdmVyc2FsLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBEb2N1bWVudFRyYXZlcnNhbC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4
MUQ1ODY3MDhBRERGRjgwMDEzNkFDMSAvKiBOb2RlRmlsdGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBOb2RlRmlsdGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgx
RDU4NjgwOEFEREZGODAwMTM2QUMxIC8qIE5vZGVJdGVyYXRvci5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gTm9kZUl0ZXJhdG9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QTgxRDU4NjkwOEFEREZGODAwMTM2QUMxIC8qIFRyZWVXYWxrZXIuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFRyZWVXYWxrZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
ODFENTg2QjA4QURERkY4MDAxMzZBQzEgLyogQWJzdHJhY3RWaWV3LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBBYnN0cmFjdFZpZXcuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlBODFENTg2QzA4QURERkY4MDAxMzZBQzEgLyogRG9jdW1lbnRWaWV3LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBEb2N1bWVudFZpZXcuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlBODFENTg3MDA4QURERkY4MDAxMzZBQzEgLyogWFBhdGhFdmFsdWF0b3IuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFhQYXRoRXZhbHVhdG9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQTgxRDU4NzEwOEFEREZGODAwMTM2QUMxIC8qIFhQYXRoRXhjZXB0aW9uLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUGF0aEV4Y2VwdGlvbi5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUE4MUQ1ODcyMDhBRERGRjgwMDEzNkFDMSAvKiBYUGF0aEV4cHJl
c3Npb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhQYXRoRXhwcmVzc2lvbi5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MUQ1ODczMDhBRERGRjgwMDEzNkFDMSAvKiBY
UGF0aE5hbWVzcGFjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFBhdGhOYW1lc3BhY2Uu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODFENTg3NDA4QURERkY4MDAxMzZB
QzEgLyogWFBhdGhOU1Jlc29sdmVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUGF0aE5T
UmVzb2x2ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODFENTg3NTA4QURE
RkY4MDAxMzZBQzEgLyogWFBhdGhSZXN1bHQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhQ
YXRoUmVzdWx0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDU4NzgwOEFE
REZGODAwMTM2QUMxIC8qIFhQb2ludGVyRXZhbHVhdG9yLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBYUG9pbnRlckV2YWx1YXRvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUE4MUQ1ODc5MDhBRERGRjgwMDEzNkFDMSAvKiBYUG9pbnRlckV4Y2VwdGlvbi5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gWFBvaW50ZXJFeGNlcHRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlBODFENTg3QTA4QURERkY4MDAxMzZBQzEgLyogWFBvaW50ZXJFeHByZXNz
aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUG9pbnRlckV4cHJlc3Npb24uaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODFENTg3QjA4QURERkY4MDAxMzZBQzEgLyog
WFBvaW50ZXJSZXN1bHQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhQb2ludGVyUmVzdWx0
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDVBNTUwOEFERjZFQjAwMTM2
QUMxIC8qIFhQYXRoUmVzdWx0SW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBYUGF0aFJlc3VsdEltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDVB
NTYwOEFERjZFQjAwMTM2QUMxIC8qIFhQYXRoUmVzdWx0SW1wbC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYUGF0aFJlc3VsdEltcGwuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlBODFENUE1NzA4QURGNkVCMDAxMzZBQzEgLyogWFBhdGhOU1Jlc29s
dmVySW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUGF0aE5TUmVzb2x2
ZXJJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MUQ1QTU4MDhBREY2RUIw
MDEzNkFDMSAvKiBYUGF0aE5TUmVzb2x2ZXJJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFhQYXRoTlNSZXNvbHZlckltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlBODFENUE1OTA4QURGNkVCMDAxMzZBQzEgLyogWFBhdGhOYW1lc3BhY2VJ
bXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhQYXRoTmFtZXNwYWNlSW1w
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODFENUE1QTA4QURGNkVCMDAxMzZB
QzEgLyogWFBhdGhOYW1lc3BhY2VJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFhQYXRoTmFtZXNwYWNlSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUE4MUQ1QTVCMDhBREY2RUIwMDEzNkFDMSAvKiBYUGF0aEV4cHJlc3Npb25JbXBsLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhQYXRoRXhwcmVzc2lvbkltcGwuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDVBNUMwOEFERjZFQjAwMTM2QUMxIC8q
IFhQYXRoRXhwcmVzc2lvbkltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gWFBhdGhFeHByZXNzaW9uSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUE4MUQ1QTVEMDhBREY2RUIwMDEzNkFDMSAvKiBYUGF0aEV4Y2VwdGlvbkltcGwuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFBhdGhFeGNlcHRpb25JbXBsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MUQ1QTVFMDhBREY2RUIwMDEzNkFDMSAvKiBYUGF0
aEV4Y2VwdGlvbkltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
WFBhdGhFeGNlcHRpb25JbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgx
RDVBNUYwOEFERjZFQjAwMTM2QUMxIC8qIFhQYXRoRXZhbHVhdG9ySW1wbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBYUGF0aEV2YWx1YXRvckltcGwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDVBNjAwOEFERjZFQjAwMTM2QUMxIC8qIFhQYXRoRXZhbHVh
dG9ySW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYUGF0aEV2
YWx1YXRvckltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODFENUE2RjA4
QURGNzA0MDAxMzZBQzEgLyogZXhwcmVzc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBleHByZXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQTgxRDVBNzAwOEFERjcwNDAwMTM2QUMxIC8qIGV4cHJlc3Npb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gZXhwcmVzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlBODFENUE3MTA4QURGNzA0MDAxMzZBQzEgLyogZnVuY3Rpb25zLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGZ1bmN0aW9ucy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUE4MUQ1QTcyMDhBREY3MDQwMDEzNkFDMSAvKiBmdW5jdGlvbnMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gZnVuY3Rpb25zLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MUQ1QTc0MDhBREY3MDQwMDEzNkFDMSAvKiBwYXJzZWRz
dGF0ZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gcGFyc2Vk
c3RhdGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgxRDVBNzUwOEFE
RjcwNDAwMTM2QUMxIC8qIHBhcnNlZHN0YXRlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBwYXJzZWRzdGF0ZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQTgxRDVBNzgwOEFERjcwNDAwMTM2QUMxIC8qIHBhdGguY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gcGF0aC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUE4MUQ1QTc5MDhBREY3MDQwMDEzNkFDMSAvKiBwYXRoLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IHBhdGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgx
RDVBN0EwOEFERjcwNDAwMTM2QUMxIC8qIHByZWRpY2F0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBwcmVkaWNhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlBODFENUE3QjA4QURGNzA0MDAxMzZBQzEgLyogcHJlZGljYXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHByZWRpY2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlBODFENUE3QzA4QURGNzA0MDAxMzZBQzEgLyogc3RlcC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBzdGVwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQTgxRDVBN0QwOEFERjcwNDAwMTM2QUMxIC8qIHN0ZXAuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gc3RlcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlBODFENUE3RTA4QURGNzA0MDAxMzZBQzEgLyogdG9rZW5pemVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IHRva2VuaXplci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUE4MUQ1QTdGMDhBREY3MDQwMDEzNkFDMSAvKiB0b2tlbml6ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gdG9rZW5pemVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUE4MUQ1QTgxMDhBREY3MDQwMDEzNkFDMSAvKiB1dGlsLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IHV0aWwuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlBODFENUE4MjA4QURGNzA0MDAxMzZBQzEgLyogdXRpbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSB1dGlsLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUE4MjA5MDY2MDkxMzc5RjMwMDBCRTRGNCAvKiBLRE9NSGVhZGVycy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLRE9NSGVhZGVycy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBODIwOTEyRTA5MTM4MUY1MDAwQkU0RjQgLyogS0RPTVN0dWJD
bGFzc2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtET01TdHViQ2xhc3Nl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODIwOTIwRjA5MTM5MEIzMDAwQkU0
RjQgLyogRE9NTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01MaXN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MjA5NEM0MDkxNDBFQTUwMDBCRTRG
NCAvKiBrZG9tdHJhdmVyc2FsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGtk
b210cmF2ZXJzYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgyMDk0QzUwOTE0
MEVBNTAwMEJFNEY0IC8qIGtkb21ldmVudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0ga2RvbWV2ZW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODIwOTRD
NjA5MTQwRUE1MDAwQkU0RjQgLyoga2RvbWxzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IGtkb21scy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODIwOTRDNzA5
MTQwRUE1MDAwQkU0RjQgLyoga2RvbXJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IGtkb21yYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODIwOTRD
ODA5MTQwRUE1MDAwQkU0RjQgLyoga2RvbWNzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBrZG9tY3NzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MjA5NEM5
MDkxNDBFQTUwMDBCRTRGNCAvKiBrZG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IGtkb20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgyMTJEMDcwODc5NEEy
MzAwNjc3MzU5IC8qIFdlYkNvcmUuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgaW5jbHVkZUluSW5kZXgg
PSAwOyBwYXRoID0gV2ViQ29yZS5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07Ci0JCUE4MkZDMjczMDhDOTI5MkUwMEVGRUUyMyAvKiBET01JbXBsZW1lbnRhdGlv
bkxTSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01JbXBsZW1lbnRh
dGlvbkxTSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODJGQzI3NDA4Qzky
OTJFMDBFRkVFMjMgLyogRE9NSW1wbGVtZW50YXRpb25MU0ltcGwuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NSW1wbGVtZW50YXRpb25MU0ltcGwuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODJGQzJGMDA4QzlBQUU0MDBFRkVFMjMgLyogTGlu
a1N0eWxlSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaW5rU3R5bGVJ
bXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MkZDMkYxMDhDOUFBRTQwMEVG
RUUyMyAvKiBMaW5rU3R5bGVJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IExpbmtTdHlsZUltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
ODJGQzMzQjA4Q0JCMDdDMDBFRkVFMjMgLyogU1ZHQ3Vyc29yRWxlbWVudEltcGwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQ3Vyc29yRWxlbWVudEltcGwuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgyRkMzM0MwOENCQjA3QzAwRUZFRTIzIC8qIFNWR0N1
cnNvckVsZW1lbnRJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNWR0N1cnNvckVsZW1lbnRJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QTgzODU0MzEwOEIwQTAwQjAwMEFGNTgwIC8qIHZhcmlhYmxlcmVmZXJlbmNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHZhcmlhYmxlcmVmZXJlbmNlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUE4Mzg1NDMyMDhCMEEwMEIwMDBBRjU4MCAvKiB2YXJpYWJsZXJl
ZmVyZW5jZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSB2YXJpYWJs
ZXJlZmVyZW5jZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4M0ExOEQzMDkx
NDIxNEYwMDBFQzMxMSAvKiBOYW1lc3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTmFtZXNwYWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4M0M4MTlG
MDkxMTg5QjkwMDlCRjRBNyAvKiBYU0xUUHJvY2Vzc29yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFhTTFRQcm9jZXNzb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTgzQzgxQTAwOTExODlCOTAwOUJGNEE3IC8qIFhTTFRQcm9jZXNzb3IuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWFNMVFByb2Nlc3Nvci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4NTZFOUY4MDhCNDYwOEYwMDQyRTMwMyAvKiB4cGF0aC55
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUueWFjYzsgcGF0aCA9IHhwYXRoLnk7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUE4NEI5RkJDMDkxNzBEQTIwMEQ3MUREMCAvKiBSR0JDb2xvcklt
cGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUkdCQ29sb3JJbXBs
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTg0QjlGQkQwOTE3MERBMjAwRDcx
REQwIC8qIEtET01TZXR0aW5ncy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBLRE9NU2V0dGluZ3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODRC
OUZCRTA5MTcwREEyMDBENzFERDAgLyogUkdCQ29sb3JJbXBsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJHQkNvbG9ySW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBODRCOUZCRjA5MTcwREEyMDBENzFERDAgLyogS0RPTVNldHRpbmdzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtET01TZXR0aW5ncy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBODVEN0EyRjA4NzlFQkE5MDA2QTkxNzIgLyogUXVhcnR6Q29yZS5mcmFt
ZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3
cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IFF1YXJ0ekNvcmUuZnJhbWV3b3JrOyBwYXRoID0gL1N5
c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvUXVhcnR6Q29yZS5mcmFtZXdvcms7IHNvdXJjZVRyZWUg
PSAiPGFic29sdXRlPiI7IH07CiAJCUE4NUQ3QThDMDg3OUVDNjQwMDZBOTE3MiAvKiBLV1FXTWF0
cml4Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEtXUVdNYXRy
aXgubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4NUQ3QThEMDg3OUVDNjQwMDZB
OTE3MiAvKiBLV1FXTWF0cml4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBL
V1FXTWF0cml4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4NjMzMTJFMDhFM0FC
MjQwMDlDRkVGNCAvKiBDREZJbnRlcmZhY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ0RGSW50ZXJmYWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQThCQzBCRTYwOEQxOUYxOTAwMzc5OTE4IC8qIEF0dHJXcmFwcGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF0dHJXcmFwcGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBCRTcwOEQxOUYxOTAwMzc5OTE4IC8qIEF0dHJXcmFwcGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF0dHJXcmFwcGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQkU4MDhEMTlGMTkwMDM3OTkxOCAvKiBDREFU
QVNlY3Rpb25XcmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IENEQVRBU2VjdGlvbldyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
OEJDMEJFOTA4RDE5RjE5MDAzNzk5MTggLyogQ0RBVEFTZWN0aW9uV3JhcHBlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDREFUQVNlY3Rpb25XcmFwcGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQkVBMDhEMTlGMTkwMDM3OTkxOCAvKiBDaGFyYWN0
ZXJEYXRhV3JhcHBlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
aGFyYWN0ZXJEYXRhV3JhcHBlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4
QkMwQkVCMDhEMTlGMTkwMDM3OTkxOCAvKiBDaGFyYWN0ZXJEYXRhV3JhcHBlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDaGFyYWN0ZXJEYXRhV3JhcHBlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEJFQzA4RDE5RjE5MDAzNzk5MTggLyogQ29tbWVu
dFdyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29tbWVu
dFdyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEJFRDA4RDE5
RjE5MDAzNzk5MTggLyogQ29tbWVudFdyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ29tbWVudFdyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QThCQzBCRUUwOEQxOUYxOTAwMzc5OTE4IC8qIERvY3VtZW50RnJhZ21lbnRXcmFwcGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50RnJhZ21lbnRXcmFw
cGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBCRUYwOEQxOUYxOTAw
Mzc5OTE4IC8qIERvY3VtZW50RnJhZ21lbnRXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERvY3VtZW50RnJhZ21lbnRXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUE4QkMwQkYwMDhEMTlGMTkwMDM3OTkxOCAvKiBEb2N1bWVudFR5cGVXcmFw
cGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50VHlw
ZVdyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEJGMTA4RDE5
RjE5MDAzNzk5MTggLyogRG9jdW1lbnRUeXBlV3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEb2N1bWVudFR5cGVXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUE4QkMwQkYyMDhEMTlGMTkwMDM3OTkxOCAvKiBEb2N1bWVudFdyYXBwZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRG9jdW1lbnRXcmFwcGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBCRjMwOEQxOUYxOTAwMzc5OTE4
IC8qIERvY3VtZW50V3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
b2N1bWVudFdyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBCRjQw
OEQxOUYxOTAwMzc5OTE4IC8qIERPTUNvbmZpZ3VyYXRpb25XcmFwcGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTUNvbmZpZ3VyYXRpb25XcmFwcGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBCRjUwOEQxOUYxOTAwMzc5OTE4IC8q
IERPTUNvbmZpZ3VyYXRpb25XcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTUNvbmZpZ3VyYXRpb25XcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUE4QkMwQkY2MDhEMTlGMTkwMDM3OTkxOCAvKiBET01FcnJvckhhbmRsZXJXcmFwcGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTUVycm9ySGFuZGxlcldy
YXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEJGNzA4RDE5RjE5
MDAzNzk5MTggLyogRE9NRXJyb3JIYW5kbGVyV3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBET01FcnJvckhhbmRsZXJXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUE4QkMwQkY4MDhEMTlGMTkwMDM3OTkxOCAvKiBET01FcnJvcldyYXBwZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NRXJyb3JXcmFwcGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBCRjkwOEQxOUYxOTAwMzc5
OTE4IC8qIERPTUVycm9yV3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBET01FcnJvcldyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBC
RkEwOEQxOUYxOTAwMzc5OTE4IC8qIERPTUV4Y2VwdGlvbldyYXBwZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NRXhjZXB0aW9uV3JhcHBlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQkZCMDhEMTlGMTkwMDM3OTkxOCAvKiBET01F
eGNlcHRpb25XcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUV4
Y2VwdGlvbldyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBCRkMw
OEQxOUYxOTAwMzc5OTE4IC8qIERPTUltcGxlbWVudGF0aW9uV3JhcHBlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01JbXBsZW1lbnRhdGlvbldyYXBwZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEJGRDA4RDE5RjE5MDAzNzk5MTgg
LyogRE9NSW1wbGVtZW50YXRpb25XcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTUltcGxlbWVudGF0aW9uV3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlBOEJDMEJGRTA4RDE5RjE5MDAzNzk5MTggLyogRE9NTG9jYXRvcldyYXBwZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NTG9jYXRvcldyYXBwZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEJGRjA4RDE5RjE5MDAzNzk5
MTggLyogRE9NTG9jYXRvcldyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRE9NTG9jYXRvcldyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThC
QzBDMDAwOEQxOUYxOTAwMzc5OTE4IC8qIERPTU9iamVjdFdyYXBwZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NT2JqZWN0V3JhcHBlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzAxMDhEMTlGMTkwMDM3OTkxOCAvKiBET01PYmpl
Y3RXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTU9iamVjdFdy
YXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDMDIwOEQxOUYxOTAw
Mzc5OTE4IC8qIERPTVN0cmluZ0xpc3RXcmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IERPTVN0cmluZ0xpc3RXcmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQThCQzBDMDMwOEQxOUYxOTAwMzc5OTE4IC8qIERPTVN0cmluZ0xpc3RX
cmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVN0cmluZ0xpc3RX
cmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzA0MDhEMTlGMTkw
MDM3OTkxOCAvKiBET01Vc2VyRGF0YVdyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRE9NVXNlckRhdGFXcmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQThCQzBDMDUwOEQxOUYxOTAwMzc5OTE4IC8qIERPTVVzZXJEYXRhV3JhcHBl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01Vc2VyRGF0YVdyYXBwZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDMDYwOEQxOUYxOTAwMzc5OTE4
IC8qIEVsZW1lbnRXcmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEVsZW1lbnRXcmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThC
QzBDMDcwOEQxOUYxOTAwMzc5OTE4IC8qIEVsZW1lbnRXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEVsZW1lbnRXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUE4QkMwQzA4MDhEMTlGMTkwMDM3OTkxOCAvKiBFbnRpdHlSZWZlcmVuY2VXcmFw
cGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVudGl0eVJlZmVy
ZW5jZVdyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEMwOTA4
RDE5RjE5MDAzNzk5MTggLyogRW50aXR5UmVmZXJlbmNlV3JhcHBlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBFbnRpdHlSZWZlcmVuY2VXcmFwcGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzBBMDhEMTlGMTkwMDM3OTkxOCAvKiBFbnRpdHlXcmFw
cGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVudGl0eVdyYXBw
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEMwQjA4RDE5RjE5MDAz
Nzk5MTggLyogRW50aXR5V3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBFbnRpdHlXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzBD
MDhEMTlGMTkwMDM3OTkxOCAvKiBOYW1lZE5vZGVNYXBXcmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5hbWVkTm9kZU1hcFdyYXBwZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEMwRDA4RDE5RjE5MDAzNzk5MTggLyogTmFtZWRO
b2RlTWFwV3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYW1lZE5v
ZGVNYXBXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzBFMDhE
MTlGMTkwMDM3OTkxOCAvKiBOb2RlTGlzdFdyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTm9kZUxpc3RXcmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQThCQzBDMEYwOEQxOUYxOTAwMzc5OTE4IC8qIE5vZGVMaXN0V3JhcHBlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOb2RlTGlzdFdyYXBwZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDMTAwOEQxOUYxOTAwMzc5OTE4IC8qIE5v
ZGVXcmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5vZGVX
cmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDMTEwOEQxOUYx
OTAwMzc5OTE4IC8qIE5vZGVXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE5vZGVXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzEy
MDhEMTlGMTkwMDM3OTkxOCAvKiBOb3RhdGlvbldyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTm90YXRpb25XcmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQThCQzBDMTMwOEQxOUYxOTAwMzc5OTE4IC8qIE5vdGF0aW9uV3JhcHBl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOb3RhdGlvbldyYXBwZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDMTQwOEQxOUYxOTAwMzc5OTE4IC8q
IFByb2Nlc3NpbmdJbnN0cnVjdGlvbldyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUHJvY2Vzc2luZ0luc3RydWN0aW9uV3JhcHBlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzE1MDhEMTlGMTkwMDM3OTkxOCAvKiBQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb25XcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFByb2Nlc3NpbmdJbnN0cnVjdGlvbldyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQThCQzBDMTYwOEQxOUYxOTAwMzc5OTE4IC8qIFRleHRXcmFwcGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRXcmFwcGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDMTcwOEQxOUYxOTAwMzc5OTE4IC8qIFRleHRXcmFw
cGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRXcmFwcGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzE4MDhEMTlGMTkwMDM3OTkxOCAvKiBU
eXBlSW5mb1dyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VHlwZUluZm9XcmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBD
MTkwOEQxOUYxOTAwMzc5OTE4IC8qIFR5cGVJbmZvV3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUeXBlSW5mb1dyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQThCQzBDMUIwOEQxOUYxOTAwMzc5OTE4IC8qIENvdW50ZXJXcmFwcGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvdW50ZXJXcmFwcGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDMUMwOEQxOUYxOTAwMzc5OTE4IC8q
IENvdW50ZXJXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvdW50
ZXJXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzFEMDhEMTlG
MTkwMDM3OTkxOCAvKiBDU1NDaGFyc2V0UnVsZVdyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTQ2hhcnNldFJ1bGVXcmFwcGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDMUUwOEQxOUYxOTAwMzc5OTE4IC8qIENTU0NoYXJz
ZXRSdWxlV3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NDaGFy
c2V0UnVsZVdyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDMUYw
OEQxOUYxOTAwMzc5OTE4IC8qIENTU0ZvbnRGYWNlUnVsZVdyYXBwZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTRm9udEZhY2VSdWxlV3JhcHBlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzIwMDhEMTlGMTkwMDM3OTkxOCAvKiBD
U1NGb250RmFjZVJ1bGVXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENTU0ZvbnRGYWNlUnVsZVdyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QThCQzBDMjEwOEQxOUYxOTAwMzc5OTE4IC8qIENTU0ltcG9ydFJ1bGVXcmFwcGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0ltcG9ydFJ1bGVXcmFwcGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDMjIwOEQxOUYxOTAwMzc5OTE4
IC8qIENTU0ltcG9ydFJ1bGVXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENTU0ltcG9ydFJ1bGVXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUE4QkMwQzIzMDhEMTlGMTkwMDM3OTkxOCAvKiBDU1NNZWRpYVJ1bGVXcmFwcGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU01lZGlhUnVsZVdyYXBwZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEMyNDA4RDE5RjE5MDAzNzk5MTgg
LyogQ1NTTWVkaWFSdWxlV3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDU1NNZWRpYVJ1bGVXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4
QkMwQzI1MDhEMTlGMTkwMDM3OTkxOCAvKiBDU1NQYWdlUnVsZVdyYXBwZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTUGFnZVJ1bGVXcmFwcGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDMjYwOEQxOUYxOTAwMzc5OTE4IC8qIENT
U1BhZ2VSdWxlV3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NQ
YWdlUnVsZVdyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDMjcw
OEQxOUYxOTAwMzc5OTE4IC8qIENTU1ByaW1pdGl2ZVZhbHVlV3JhcHBlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NQcmltaXRpdmVWYWx1ZVdyYXBwZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEMyODA4RDE5RjE5MDAzNzk5MTgg
LyogQ1NTUHJpbWl0aXZlVmFsdWVXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENTU1ByaW1pdGl2ZVZhbHVlV3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlBOEJDMEMyOTA4RDE5RjE5MDAzNzk5MTggLyogQ1NTUnVsZUxpc3RXcmFwcGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1J1bGVMaXN0V3JhcHBl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzJBMDhEMTlGMTkwMDM3
OTkxOCAvKiBDU1NSdWxlTGlzdFdyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ1NTUnVsZUxpc3RXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUE4QkMwQzJCMDhEMTlGMTkwMDM3OTkxOCAvKiBDU1NSdWxlV3JhcHBlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NSdWxlV3JhcHBlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzJDMDhEMTlGMTkwMDM3OTkxOCAvKiBDU1NSdWxl
V3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NSdWxlV3JhcHBl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEMyRDA4RDE5RjE5MDAzNzk5
MTggLyogQ1NTU3R5bGVEZWNsYXJhdGlvbldyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ1NTU3R5bGVEZWNsYXJhdGlvbldyYXBwZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEMyRTA4RDE5RjE5MDAzNzk5MTggLyogQ1NTU3R5
bGVEZWNsYXJhdGlvbldyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q1NTU3R5bGVEZWNsYXJhdGlvbldyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQThCQzBDMkYwOEQxOUYxOTAwMzc5OTE4IC8qIENTU1N0eWxlUnVsZVdyYXBwZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTU3R5bGVSdWxlV3JhcHBlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzMwMDhEMTlGMTkwMDM3OTkx
OCAvKiBDU1NTdHlsZVJ1bGVXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENTU1N0eWxlUnVsZVdyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QThCQzBDMzEwOEQxOUYxOTAwMzc5OTE4IC8qIENTU1N0eWxlU2hlZXRXcmFwcGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1N0eWxlU2hlZXRXcmFwcGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDMzIwOEQxOUYxOTAwMzc5OTE4
IC8qIENTU1N0eWxlU2hlZXRXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENTU1N0eWxlU2hlZXRXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUE4QkMwQzMzMDhEMTlGMTkwMDM3OTkxOCAvKiBDU1NVbmtub3duUnVsZVdyYXBwZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTVW5rbm93blJ1bGVXcmFwcGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDMzQwOEQxOUYxOTAwMzc5
OTE4IC8qIENTU1Vua25vd25SdWxlV3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDU1NVbmtub3duUnVsZVdyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQThCQzBDMzUwOEQxOUYxOTAwMzc5OTE4IC8qIENTU1ZhbHVlTGlzdFdyYXBwZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTVmFsdWVMaXN0V3JhcHBl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzM2MDhEMTlGMTkwMDM3
OTkxOCAvKiBDU1NWYWx1ZUxpc3RXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENTU1ZhbHVlTGlzdFdyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQThCQzBDMzcwOEQxOUYxOTAwMzc5OTE4IC8qIENTU1ZhbHVlV3JhcHBlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NWYWx1ZVdyYXBwZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEMzODA4RDE5RjE5MDAzNzk5MTggLyogQ1NT
VmFsdWVXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1ZhbHVl
V3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEMzOTA4RDE5RjE5
MDAzNzk5MTggLyogRG9jdW1lbnRDU1NXcmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IERvY3VtZW50Q1NTV3JhcHBlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUE4QkMwQzNBMDhEMTlGMTkwMDM3OTkxOCAvKiBEb2N1bWVudENTU1dyYXBw
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG9jdW1lbnRDU1NXcmFwcGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzNCMDhEMTlGMTkwMDM3OTkx
OCAvKiBSZWN0V3JhcHBlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZWN0V3JhcHBlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzND
MDhEMTlGMTkwMDM3OTkxOCAvKiBSZWN0V3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZWN0V3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
OEJDMEMzRDA4RDE5RjE5MDAzNzk5MTggLyogUkdCQ29sb3JXcmFwcGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJHQkNvbG9yV3JhcHBlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzNFMDhEMTlGMTkwMDM3OTkxOCAvKiBSR0JDb2xv
cldyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUkdCQ29sb3JXcmFw
cGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzQwMDhEMTlGMTkwMDM3
OTkxOCAvKiBEb2N1bWVudEV2ZW50V3JhcHBlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBEb2N1bWVudEV2ZW50V3JhcHBlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUE4QkMwQzQxMDhEMTlGMTkwMDM3OTkxOCAvKiBEb2N1bWVudEV2ZW50V3Jh
cHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEb2N1bWVudEV2ZW50V3Jh
cHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEM0MjA4RDE5RjE5MDAz
Nzk5MTggLyogRXZlbnRFeGNlcHRpb25XcmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEV2ZW50RXhjZXB0aW9uV3JhcHBlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUE4QkMwQzQzMDhEMTlGMTkwMDM3OTkxOCAvKiBFdmVudEV4Y2VwdGlv
bldyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRFeGNlcHRp
b25XcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzQ0MDhEMTlG
MTkwMDM3OTkxOCAvKiBFdmVudExpc3RlbmVyV3JhcHBlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBFdmVudExpc3RlbmVyV3JhcHBlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzQ1MDhEMTlGMTkwMDM3OTkxOCAvKiBFdmVudExpc3Rl
bmVyV3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudExpc3Rl
bmVyV3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEM0NjA4RDE5
RjE5MDAzNzk5MTggLyogRXZlbnRUYXJnZXRXcmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEV2ZW50VGFyZ2V0V3JhcHBlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUE4QkMwQzQ3MDhEMTlGMTkwMDM3OTkxOCAvKiBFdmVudFRhcmdldFdy
YXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRUYXJnZXRXcmFw
cGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzQ4MDhEMTlGMTkwMDM3
OTkxOCAvKiBFdmVudFdyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRXZlbnRXcmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThC
QzBDNDkwOEQxOUYxOTAwMzc5OTE4IC8qIEV2ZW50V3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFdmVudFdyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQThCQzBDNEEwOEQxOUYxOTAwMzc5OTE4IC8qIE1vdXNlRXZlbnRXcmFwcGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vdXNlRXZlbnRXcmFwcGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDNEIwOEQxOUYxOTAwMzc5OTE4
IC8qIE1vdXNlRXZlbnRXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1vdXNlRXZlbnRXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMw
QzRDMDhEMTlGMTkwMDM3OTkxOCAvKiBNdXRhdGlvbkV2ZW50V3JhcHBlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNdXRhdGlvbkV2ZW50V3JhcHBlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzREMDhEMTlGMTkwMDM3OTkxOCAvKiBN
dXRhdGlvbkV2ZW50V3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
dXRhdGlvbkV2ZW50V3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJD
MEM0RTA4RDE5RjE5MDAzNzk5MTggLyogVUlFdmVudFdyYXBwZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVUlFdmVudFdyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlBOEJDMEM0RjA4RDE5RjE5MDAzNzk5MTggLyogVUlFdmVudFdyYXBw
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVUlFdmVudFdyYXBwZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDNTEwOEQxOUYxOTAwMzc5OTE4IC8q
IERvY3VtZW50UmFuZ2VXcmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IERvY3VtZW50UmFuZ2VXcmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQThCQzBDNTIwOEQxOUYxOTAwMzc5OTE4IC8qIERvY3VtZW50UmFuZ2VXcmFwcGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvY3VtZW50UmFuZ2VXcmFwcGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzUzMDhEMTlGMTkwMDM3OTkxOCAv
KiBSYW5nZUV4Y2VwdGlvbldyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmFuZ2VFeGNlcHRpb25XcmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQThCQzBDNTQwOEQxOUYxQTAwMzc5OTE4IC8qIFJhbmdlRXhjZXB0aW9uV3JhcHBl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZUV4Y2VwdGlvbldyYXBw
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDNTUwOEQxOUYxQTAwMzc5
OTE4IC8qIFJhbmdlV3JhcHBlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSYW5nZVdyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJD
MEM1NjA4RDE5RjFBMDAzNzk5MTggLyogUmFuZ2VXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJhbmdlV3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlBOEJDMEM1ODA4RDE5RjFBMDAzNzk5MTggLyogRG9jdW1lbnRTdHlsZVdyYXBwZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRG9jdW1lbnRTdHlsZVdyYXBw
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEM1OTA4RDE5RjFBMDAz
Nzk5MTggLyogRG9jdW1lbnRTdHlsZVdyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRG9jdW1lbnRTdHlsZVdyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQThCQzBDNUEwOEQxOUYxQTAwMzc5OTE4IC8qIExpbmtTdHlsZVdyYXBwZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGlua1N0eWxlV3JhcHBlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzVCMDhEMTlGMUEwMDM3OTkxOCAv
KiBMaW5rU3R5bGVXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExp
bmtTdHlsZVdyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDNUMw
OEQxOUYxQTAwMzc5OTE4IC8qIE1lZGlhTGlzdFdyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFMaXN0V3JhcHBlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUE4QkMwQzVEMDhEMTlGMUEwMDM3OTkxOCAvKiBNZWRpYUxpc3RXcmFw
cGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhTGlzdFdyYXBwZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDNUUwOEQxOUYxQTAwMzc5OTE4
IC8qIFN0eWxlU2hlZXRMaXN0V3JhcHBlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTdHlsZVNoZWV0TGlzdFdyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlBOEJDMEM1RjA4RDE5RjFBMDAzNzk5MTggLyogU3R5bGVTaGVldExpc3RXcmFw
cGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxlU2hlZXRMaXN0V3Jh
cHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEM2MDA4RDE5RjFBMDAz
Nzk5MTggLyogU3R5bGVTaGVldFdyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU3R5bGVTaGVldFdyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlBOEJDMEM2MTA4RDE5RjFBMDAzNzk5MTggLyogU3R5bGVTaGVldFdyYXBwZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5bGVTaGVldFdyYXBwZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDNjMwOEQxOUYxQTAwMzc5OTE4IC8qIERv
Y3VtZW50VHJhdmVyc2FsV3JhcHBlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBEb2N1bWVudFRyYXZlcnNhbFdyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlBOEJDMEM2NDA4RDE5RjFBMDAzNzk5MTggLyogRG9jdW1lbnRUcmF2ZXJzYWxX
cmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvY3VtZW50VHJhdmVy
c2FsV3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEM2NTA4RDE5
RjFBMDAzNzk5MTggLyogTm9kZUZpbHRlcldyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTm9kZUZpbHRlcldyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlBOEJDMEM2NjA4RDE5RjFBMDAzNzk5MTggLyogTm9kZUZpbHRlcldyYXBw
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm9kZUZpbHRlcldyYXBwZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDNjcwOEQxOUYxQTAwMzc5OTE4
IC8qIE5vZGVJdGVyYXRvcldyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTm9kZUl0ZXJhdG9yV3JhcHBlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUE4QkMwQzY4MDhEMTlGMUEwMDM3OTkxOCAvKiBOb2RlSXRlcmF0b3JXcmFwcGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vZGVJdGVyYXRvcldyYXBwZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDNjkwOEQxOUYxQTAwMzc5OTE4IC8q
IFRyZWVXYWxrZXJXcmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFRyZWVXYWxrZXJXcmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QThCQzBDNkEwOEQxOUYxQTAwMzc5OTE4IC8qIFRyZWVXYWxrZXJXcmFwcGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRyZWVXYWxrZXJXcmFwcGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzZDMDhEMTlGMUEwMDM3OTkxOCAvKiBBYnN0cmFjdFZp
ZXdXcmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFic3Ry
YWN0Vmlld1dyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEM2
RDA4RDE5RjFBMDAzNzk5MTggLyogQWJzdHJhY3RWaWV3V3JhcHBlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBYnN0cmFjdFZpZXdXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUE4QkMwQzZFMDhEMTlGMUEwMDM3OTkxOCAvKiBEb2N1bWVudFZpZXdX
cmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50
Vmlld1dyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEM2RjA4
RDE5RjFBMDAzNzk5MTggLyogRG9jdW1lbnRWaWV3V3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEb2N1bWVudFZpZXdXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUE4QkMwQzcxMDhEMTlGMUEwMDM3OTkxOCAvKiBYUGF0aEV2YWx1YXRvcldy
YXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWFBhdGhFdmFs
dWF0b3JXcmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDNzIw
OEQxOUYxQTAwMzc5OTE4IC8qIFhQYXRoRXZhbHVhdG9yV3JhcHBlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBYUGF0aEV2YWx1YXRvcldyYXBwZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDNzMwOEQxOUYxQTAwMzc5OTE4IC8qIFhQYXRoRXhjZXB0
aW9uV3JhcHBlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYUGF0
aEV4Y2VwdGlvbldyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJD
MEM3NDA4RDE5RjFBMDAzNzk5MTggLyogWFBhdGhFeGNlcHRpb25XcmFwcGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhQYXRoRXhjZXB0aW9uV3JhcHBlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEM3NTA4RDE5RjFBMDAzNzk5MTggLyogWFBhdGhF
eHByZXNzaW9uV3JhcHBlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBYUGF0aEV4cHJlc3Npb25XcmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQThCQzBDNzYwOEQxOUYxQTAwMzc5OTE4IC8qIFhQYXRoRXhwcmVzc2lvbldyYXBwZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFBhdGhFeHByZXNzaW9uV3JhcHBlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEM3NzA4RDE5RjFBMDAzNzk5MTgg
LyogWFBhdGhOYW1lc3BhY2VXcmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFhQYXRoTmFtZXNwYWNlV3JhcHBlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUE4QkMwQzc4MDhEMTlGMUEwMDM3OTkxOCAvKiBYUGF0aE5hbWVzcGFjZVdyYXBw
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFBhdGhOYW1lc3BhY2VXcmFw
cGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzc5MDhEMTlGMUEwMDM3
OTkxOCAvKiBYUGF0aE5TUmVzb2x2ZXJXcmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFhQYXRoTlNSZXNvbHZlcldyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlBOEJDMEM3QTA4RDE5RjFBMDAzNzk5MTggLyogWFBhdGhOU1Jlc29s
dmVyV3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUGF0aE5TUmVz
b2x2ZXJXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzdCMDhE
MTlGMUEwMDM3OTkxOCAvKiBYUGF0aFJlc3VsdFdyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gWFBhdGhSZXN1bHRXcmFwcGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDN0MwOEQxOUYxQTAwMzc5OTE4IC8qIFhQYXRoUmVzdWx0
V3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUGF0aFJlc3VsdFdy
YXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBDN0UwOEQxOUYxQTAw
Mzc5OTE4IC8qIFhQb2ludGVyRXZhbHVhdG9yV3JhcHBlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBYUG9pbnRlckV2YWx1YXRvcldyYXBwZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEM3RjA4RDE5RjFBMDAzNzk5MTggLyogWFBvaW50
ZXJFdmFsdWF0b3JXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhQ
b2ludGVyRXZhbHVhdG9yV3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
OEJDMEM4MDA4RDE5RjFBMDAzNzk5MTggLyogWFBvaW50ZXJFeGNlcHRpb25XcmFwcGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhQb2ludGVyRXhjZXB0aW9uV3Jh
cHBlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzgxMDhEMTlGMUEw
MDM3OTkxOCAvKiBYUG9pbnRlckV4Y2VwdGlvbldyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gWFBvaW50ZXJFeGNlcHRpb25XcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUE4QkMwQzgyMDhEMTlGMUEwMDM3OTkxOCAvKiBYUG9pbnRlckV4cHJl
c3Npb25XcmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhQ
b2ludGVyRXhwcmVzc2lvbldyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlBOEJDMEM4MzA4RDE5RjFBMDAzNzk5MTggLyogWFBvaW50ZXJFeHByZXNzaW9uV3JhcHBlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUG9pbnRlckV4cHJlc3Npb25XcmFw
cGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwQzg0MDhEMTlGMUEwMDM3
OTkxOCAvKiBYUG9pbnRlclJlc3VsdFdyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gWFBvaW50ZXJSZXN1bHRXcmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQThCQzBDODUwOEQxOUYxQTAwMzc5OTE4IC8qIFhQb2ludGVyUmVzdWx0
V3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUG9pbnRlclJlc3Vs
dFdyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBENjAwOEQyQTI3
NjAwMzc5OTE4IC8qIERPTUltcGxlbWVudGF0aW9uTFMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IERPTUltcGxlbWVudGF0aW9uTFMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlBOEJDMEQ2MjA4RDJBMjc2MDAzNzk5MTggLyogTFNFeGNlcHRpb24uaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IExTRXhjZXB0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQThCQzBENjMwOEQyQTI3NjAwMzc5OTE4IC8qIExTSW5wdXQuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IExTSW5wdXQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJD
MEQ2NTA4RDJBMjc2MDAzNzk5MTggLyogTFNPdXRwdXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IExTT3V0cHV0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBENjYw
OEQyQTI3NjAwMzc5OTE4IC8qIExTUGFyc2VyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBM
U1BhcnNlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwRDY3MDhEMkEy
NzYwMDM3OTkxOCAvKiBMU1BhcnNlckZpbHRlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
TFNQYXJzZXJGaWx0ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMEQ2
OTA4RDJBMjc2MDAzNzk5MTggLyogTFNSZXNvdXJjZVJlc29sdmVyLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBMU1Jlc291cmNlUmVzb2x2ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlBOEJDMEQ2QTA4RDJBMjc2MDAzNzk5MTggLyogTFNTZXJpYWxpemVyLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBMU1NlcmlhbGl6ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlBOEJDMEQ2QjA4RDJBMjc2MDAzNzk5MTggLyogTFNTZXJpYWxpemVyRmlsdGVy
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMU1NlcmlhbGl6ZXJGaWx0ZXIuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMERBNDA4RDQyMzM5MDAzNzk5MTggLyogRE9N
SW1wbGVtZW50YXRpb25MU1dyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gRE9NSW1wbGVtZW50YXRpb25MU1dyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlBOEJDMERBNTA4RDQyMzM5MDAzNzk5MTggLyogRE9NSW1wbGVtZW50YXRp
b25MU1dyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSW1wbGVt
ZW50YXRpb25MU1dyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBE
QTYwOEQ0MjMzOTAwMzc5OTE4IC8qIExTRXhjZXB0aW9uV3JhcHBlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMU0V4Y2VwdGlvbldyYXBwZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMERBNzA4RDQyMzM5MDAzNzk5MTggLyogTFNFeGNl
cHRpb25XcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExTRXhjZXB0
aW9uV3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMERBODA4RDQy
MzM5MDAzNzk5MTggLyogTFNJbnB1dFdyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTFNJbnB1dFdyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlBOEJDMERBOTA4RDQyMzM5MDAzNzk5MTggLyogTFNJbnB1dFdyYXBwZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTFNJbnB1dFdyYXBwZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBEQUEwOEQ0MjMzOTAwMzc5OTE4IC8qIExTT3V0cHV0
V3JhcHBlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMU091dHB1
dFdyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEJDMERBQjA4RDQy
MzM5MDAzNzk5MTggLyogTFNPdXRwdXRXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IExTT3V0cHV0V3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlBOEJDMERBQzA4RDQyMzM5MDAzNzk5MTggLyogTFNQYXJzZXJGaWx0ZXJXcmFwcGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExTUGFyc2VyRmlsdGVyV3JhcHBl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwREFEMDhENDIzMzkwMDM3
OTkxOCAvKiBMU1BhcnNlckZpbHRlcldyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTFNQYXJzZXJGaWx0ZXJXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUE4QkMwREFFMDhENDIzMzkwMDM3OTkxOCAvKiBMU1BhcnNlcldyYXBwZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTFNQYXJzZXJXcmFwcGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBEQUYwOEQ0MjMzOTAwMzc5OTE4IC8q
IExTUGFyc2VyV3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMU1Bh
cnNlcldyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBEQjAwOEQ0
MjMzOTAwMzc5OTE4IC8qIExTUmVzb3VyY2VSZXNvbHZlcldyYXBwZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTFNSZXNvdXJjZVJlc29sdmVyV3JhcHBlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMwREIxMDhENDIzMzkwMDM3OTkxOCAv
KiBMU1Jlc291cmNlUmVzb2x2ZXJXcmFwcGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IExTUmVzb3VyY2VSZXNvbHZlcldyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQThCQzBEQjIwOEQ0MjMzOTAwMzc5OTE4IC8qIExTU2VyaWFsaXplckZpbHRlcldy
YXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTFNTZXJpYWxp
emVyRmlsdGVyV3JhcHBlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QkMw
REIzMDhENDIzMzkwMDM3OTkxOCAvKiBMU1NlcmlhbGl6ZXJGaWx0ZXJXcmFwcGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExTU2VyaWFsaXplckZpbHRlcldyYXBwZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThCQzBEQjQwOEQ0MjMzOTAwMzc5OTE4IC8q
IExTU2VyaWFsaXplcldyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTFNTZXJpYWxpemVyV3JhcHBlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUE4QkMwREI1MDhENDIzMzkwMDM3OTkxOCAvKiBMU1NlcmlhbGl6ZXJXcmFwcGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExTU2VyaWFsaXplcldyYXBwZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTg2MzMxMkUwOEUzQUIyNDAwOUNGRUY0IC8qIFNW
R0NERkludGVyZmFjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
VkdDREZJbnRlcmZhY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODcyNTkz
MTA4RjlCQUE2MDA2RjEwQTEgLyogbGliei5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBuYW1lID0g
bGliei5keWxpYjsgcGF0aCA9IC91c3IvbGliL2xpYnouZHlsaWI7IHNvdXJjZVRyZWUgPSAiPGFi
c29sdXRlPiI7IH07CiAJCUE4QzBGNkREMDg5NzAxRjEwMEJBNTExNCAvKiBEcmF3Q2FudmFzSXRl
bS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEcmF3Q2FudmFzSXRlbS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEMwRjZERTA4OTcwMUYxMDBCQTUxMTQgLyog
RHJhd0NhbnZhc0l0ZW0ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBEcmF3Q2FudmFzSXRlbS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThDMEY2
REYwODk3MDFGMTAwQkE1MTE0IC8qIERyYXdDYW52YXNJdGVtUHJpdmF0ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBEcmF3Q2FudmFzSXRlbVByaXZhdGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyMTQsOCArMjI4OSw2IEBACiAJCUE4QzBGNkU4MDg5NzAx
RjEwMEJBNTExNCAvKiBOU1NWR0ltYWdlUmVwLm0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2Jq
YzsgcGF0aCA9IE5TU1ZHSW1hZ2VSZXAubTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QThDMEY2RUIwODk3MDFGMTAwQkE1MTE0IC8qIEtDYW52YXNSZW5kZXJpbmdTdHlsZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLQ2FudmFzUmVuZGVyaW5nU3R5bGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEMwRjZFQzA4OTcwMUYxMDBCQTUx
MTQgLyogS0NhbnZhc1JlbmRlcmluZ1N0eWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEtDYW52YXNSZW5kZXJpbmdTdHlsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlBOEMwRjZFRDA4OTcwMUYxMDBCQTUxMTQgLyogS1NWR0RvY3VtZW50QnVpbGRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLU1ZHRG9jdW1lbnRCdWlsZGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY2RUUwODk3MDFGMTAwQkE1
MTE0IC8qIEtTVkdEb2N1bWVudEJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gS1NWR0RvY3VtZW50QnVpbGRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBOEMwRjZFRjA4OTcwMUYxMDBCQTUxMTQgLyogS1NWR1RpbWVTY2hlZHVsZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gS1NWR1RpbWVTY2hlZHVsZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEMwRjZGMDA4OTcwMUYxMDBCQTUxMTQgLyog
S1NWR1RpbWVTY2hlZHVsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gS1NW
R1RpbWVTY2hlZHVsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThDMEY2RjQw
ODk3MDFGMTAwQkE1MTE0IC8qIGNzc3Byb3BlcnRpZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gY3NzcHJvcGVydGllcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyMzgs
MTEgKzIzMTEsOCBAQAogCQlBOEMwRjdFRTA4OTcwMUYzMDBCQTUxMTQgLyogR2xvYmFsT2JqZWN0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdsb2JhbE9iamVjdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QzBGN0VGMDg5NzAxRjMwMEJBNTEx
NCAvKiBHbG9iYWxPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2xv
YmFsT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QzBGN0YwMDg5NzAx
RjMwMEJBNTExNCAvKiBTVkdMb29rdXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHTG9va3VwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGN0YzMDg5
NzAxRjMwMEJBNTExNCAvKiBTVkdFdmVudEltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU1ZHRXZlbnRJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQThDMEY3RjQwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0V2ZW50SW1wbC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdFdmVudEltcGwuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQThDMEY3RjUwODk3MDFGMzAwQkE1MTE0IC8qIFNWR1pvb21FdmVudElt
cGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHWm9vbUV2ZW50
SW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QzBGN0Y2MDg5NzAxRjMw
MEJBNTExNCAvKiBTVkdab29tRXZlbnRJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNWR1pvb21FdmVudEltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QThDMEY3RjcwODk3MDFGMzAwQkE1MTE0IC8qIGtzdmdldmVudHMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0ga3N2Z2V2ZW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBOEMwRjdGRTA4OTcwMUYzMDBCQTUxMTQgLyogQ0RGSW50ZXJmYWNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENERkludGVyZmFjZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBOEMwRjdGRjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQUVsZW1lbnRJbXBs
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FFbGVtZW50SW1w
bC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QzBGODAwMDg5NzAxRjMwMEJB
NTExNCAvKiBTVkdBRWxlbWVudEltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHQUVsZW1lbnRJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjg1
LDggKzIzNTUsNiBAQAogCQlBOEMwRjgyNTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0ZVRy
YW5zZm9ybUVsZW1lbnRJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNW
R0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50SW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBOEMwRjgyNjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0aW9uRWxlbWVudEltcGwu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0aW9uRWxl
bWVudEltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEMwRjgyNzA4OTcw
MUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0aW9uRWxlbWVudEltcGwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0aW9uRWxlbWVudEltcGwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY4MjgwODk3MDFGMzAwQkE1MTE0IC8qIHN2Z2F0dHJzLmMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHN2Z2F0dHJzLmM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGODI5MDg5NzAxRjMwMEJBNTExNCAvKiBzdmdhdHRycy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBzdmdhdHRycy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBOEMwRjgyQTA4OTcwMUYzMDBCQTUxMTQgLyogc3ZnYXR0cnMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gc3ZnYXR0cnMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE4QzBGODJCMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdDaXJjbGVFbGVtZW50
SW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdDaXJjbGVF
bGVtZW50SW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QzBGODJDMDg5
NzAxRjMwMEJBNTExNCAvKiBTVkdDaXJjbGVFbGVtZW50SW1wbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTVkdDaXJjbGVFbGVtZW50SW1wbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMzMxMiw4ICsyMzgwLDYgQEAKIAkJQThDMEY4NDAwODk3MDFGMzAwQkE1
MTE0IC8qIFNWR0VsZW1lbnRJbnN0YW5jZUxpc3RJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNWR0VsZW1lbnRJbnN0YW5jZUxpc3RJbXBsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE4QzBGODQxMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdFbGxpcHNlRWxl
bWVudEltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHRWxs
aXBzZUVsZW1lbnRJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThDMEY4
NDIwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0VsbGlwc2VFbGVtZW50SW1wbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdFbGxpcHNlRWxlbWVudEltcGwuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY4NDMwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0V4Y2Vw
dGlvbkltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHRXhj
ZXB0aW9uSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGODQ0MDg5
NzAxRjMwMEJBNTExNCAvKiBTVkdFeGNlcHRpb25JbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNWR0V4Y2VwdGlvbkltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQThDMEY4NDUwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWRJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQThDMEY4NDYwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWRJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWRJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4
QzBGODQ3MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdGRUJsZW5kRWxlbWVudEltcGwuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHRkVCbGVuZEVsZW1lbnRJbXBsLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM0NTMsOCArMjUxOSw2IEBACiAJCUE4
QzBGOENEMDg5NzAxRjQwMEJBNTExNCAvKiBTVkdTd2l0Y2hFbGVtZW50SW1wbC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdTd2l0Y2hFbGVtZW50SW1wbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBOEMwRjhDRTA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHU3lt
Ym9sRWxlbWVudEltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U1ZHU3ltYm9sRWxlbWVudEltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
OEMwRjhDRjA4OTcwMUY0MDBCQTUxMTQgLyogU1ZHU3ltYm9sRWxlbWVudEltcGwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHU3ltYm9sRWxlbWVudEltcGwuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY4RDAwODk3MDFGNDAwQkE1MTE0IC8qIHN2Z3Rh
Z3MuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gc3ZndGFncy5jOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjhEMTA4OTcwMUY0MDBCQTUxMTQgLyogc3ZndGFn
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBzdmd0YWdzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QzBGOEQyMDg5NzAxRjQwMEJBNTExNCAvKiBzdmd0YWdz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IHN2Z3RhZ3MuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE4QzBGOEQzMDg5NzAxRjQwMEJBNTExNCAvKiBTVkdUZXN0c0ltcGwuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHVGVzdHNJbXBsLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThDMEY4RDQwODk3MDFGNDAwQkE1MTE0IC8q
IFNWR1Rlc3RzSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdUZXN0
c0ltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM0ODcsMjY5ICsyNTUxLDYg
QEAKIAkJQThDMEY4RUYwODk3MDFGNDAwQkE1MTE0IC8qIEtTVkdGYWN0b3J5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtTVkdGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE4QzBGOEYwMDg5NzAxRjQwMEJBNTExNCAvKiBLU1ZHU2V0dGluZ3MuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gS1NWR1NldHRpbmdzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThDMEY4RjEwODk3MDFGNDAwQkE1MTE0IC8q
IEtTVkdTZXR0aW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLU1ZHU2V0
dGluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY4RjMwODk3MDFGNDAw
QkE1MTE0IC8qIEtXUUtTVkdQYXJ0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEtXUUtTVkdQYXJ0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGOEY0MDg5
NzAxRjQwMEJBNTExNCAvKiBLV1FLU1ZHUGFydC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IEtXUUtTVkdQYXJ0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlBOEMwRjhGNTA4OTcwMUY0MDBCQTUxMTQgLyogS1dRS1NWR1ZpZXcuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gS1dRS1NWR1ZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQThDMEY4RjYwODk3MDFGNDAwQkE1MTE0IC8qIEtXUUtTVkdWaWV3Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gS1dRS1NWR1ZpZXcubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGOTA0MDg5NzAxRjQwMEJBNTExNCAvKiBM
aWJYTUxQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGli
WE1MUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY5MDUwODk3
MDFGNDAwQkE1MTE0IC8qIExpYlhNTFBhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBMaWJYTUxQYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThD
MEY5MDgwODk3MDFGNDAwQkE1MTE0IC8qIEljb25EYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEljb25EYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4
QzBGOTA5MDg5NzAxRjQwMEJBNTExNCAvKiBJbWFnZVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUE4QzBGOTBBMDg5NzAxRjQwMEJBNTExNCAvKiBJbWFnZVNvdXJjZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVNvdXJjZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjkwQjA4OTcwMUY0MDBCQTUxMTQgLyogS0RPTUNhY2hl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEtET01DYWNoZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGOTBDMDg5NzAxRjQwMEJBNTExNCAv
KiBLRE9NQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gS0RPTUNhY2hl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGOTBEMDg5NzAxRjQwMEJBNTEx
NCAvKiBLRE9NQ2FjaGVkRG9jdW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gS0RPTUNhY2hlZERvY3VtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQThDMEY5MEUwODk3MDFGNDAwQkE1MTE0IC8qIEtET01DYWNoZWREb2N1bWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLRE9NQ2FjaGVkRG9jdW1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY5MEYwODk3MDFGNDAwQkE1MTE0IC8qIEtE
T01DYWNoZWRJbWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBL
RE9NQ2FjaGVkSW1hZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjkx
MDA4OTcwMUY0MDBCQTUxMTQgLyogS0RPTUNhY2hlZEltYWdlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEtET01DYWNoZWRJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlBOEMwRjkxMjA4OTcwMUY0MDBCQTUxMTQgLyogS0RPTUNhY2hlZE9iamVjdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLRE9NQ2FjaGVkT2JqZWN0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY5MTMwODk3MDFGNDAwQkE1MTE0
IC8qIEtET01DYWNoZWRPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
S0RPTUNhY2hlZE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjkx
NDA4OTcwMUY0MDBCQTUxMTQgLyogS0RPTUNhY2hlZE9iamVjdENsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBLRE9NQ2FjaGVkT2JqZWN0Q2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGOTE1MDg5NzAxRjQwMEJBNTExNCAvKiBLRE9NQ2Fj
aGVkU2NyaXB0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEtET01D
YWNoZWRTY3JpcHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjkxNjA4
OTcwMUY0MDBCQTUxMTQgLyogS0RPTUNhY2hlZFNjcmlwdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBLRE9NQ2FjaGVkU2NyaXB0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUE4QzBGOTE3MDg5NzAxRjQwMEJBNTExNCAvKiBLRE9NQ2FjaGVkU3R5bGVTaGVldC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLRE9NQ2FjaGVkU3R5bGVT
aGVldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGOTE4MDg5NzAxRjQw
MEJBNTExNCAvKiBLRE9NQ2FjaGVkU3R5bGVTaGVldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBLRE9NQ2FjaGVkU3R5bGVTaGVldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlBOEMwRjkxOTA4OTcwMUY0MDBCQTUxMTQgLyogS0RPTUNhY2hlSGVscGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtET01DYWNoZUhlbHBlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjkxQTA4OTcwMUY0MDBCQTUxMTQgLyogS0RPTUxv
YWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLRE9NTG9hZGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY5MUIwODk3MDFGNDAwQkE1
MTE0IC8qIEtET01Mb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gS0RP
TUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjkyQTA4OTcwMUY0
MDBCQTUxMTQgLyogQ1NTSGVscGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENTU0hlbHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjk0QTA4OTcw
MUY0MDBCQTUxMTQgLyogQ291bnRlckltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ291bnRlckltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlBOEMwRjk0QjA4OTcwMUY0MDBCQTUxMTQgLyogQ291bnRlckltcGwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ291bnRlckltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQThDMEY5NEMwODk3MDFGNDAwQkE1MTE0IC8qIENTU0NoYXJzZXRSdWxlSW1wbC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NDaGFyc2V0UnVsZUlt
cGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjk0RDA4OTcwMUY0MDBC
QTUxMTQgLyogQ1NTQ2hhcnNldFJ1bGVJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENTU0NoYXJzZXRSdWxlSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlBOEMwRjk0RTA4OTcwMUY0MDBCQTUxMTQgLyogQ1NTRm9udEZhY2VSdWxlSW1wbC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NGb250RmFjZVJ1bGVJbXBsLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY5NEYwODk3MDFGNDAwQkE1MTE0
IC8qIENTU0ZvbnRGYWNlUnVsZUltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ1NTRm9udEZhY2VSdWxlSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
OEMwRjk1MDA4OTcwMUY0MDBCQTUxMTQgLyogQ1NTSW1hZ2VWYWx1ZUltcGwuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTSW1hZ2VWYWx1ZUltcGwuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjk1MTA4OTcwMUY0MDBCQTUxMTQgLyogQ1NT
SW1hZ2VWYWx1ZUltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTSW1h
Z2VWYWx1ZUltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY5NTIwODk3
MDFGNDAwQkE1MTE0IC8qIENTU0ltcG9ydFJ1bGVJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENTU0ltcG9ydFJ1bGVJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQThDMEY5NTMwODk3MDFGNDAwQkE1MTE0IC8qIENTU0ltcG9ydFJ1bGVJ
bXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0ltcG9ydFJ1bGVJbXBs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGOTU0MDg5NzAxRjQwMEJBNTEx
NCAvKiBDU1NNZWRpYVJ1bGVJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IENTU01lZGlhUnVsZUltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlBOEMwRjk1NTA4OTcwMUY0MDBCQTUxMTQgLyogQ1NTTWVkaWFSdWxlSW1wbC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NNZWRpYVJ1bGVJbXBsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGOTU2MDg5NzAxRjQwMEJBNTExNCAvKiBDU1NQYWdlUnVs
ZUltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTUGFnZVJ1
bGVJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY5NTcwODk3MDFG
NDAwQkE1MTE0IC8qIENTU1BhZ2VSdWxlSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDU1NQYWdlUnVsZUltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QThDMEY5NTgwODk3MDFGNDAwQkE1MTE0IC8qIENTU1ByaW1pdGl2ZVZhbHVlSW1wbC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NQcmltaXRpdmVWYWx1ZUltcGwu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjk1OTA4OTcwMUY0MDBCQTUx
MTQgLyogQ1NTUHJpbWl0aXZlVmFsdWVJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENTU1ByaW1pdGl2ZVZhbHVlSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlBOEMwRjk1QTA4OTcwMUY0MDBCQTUxMTQgLyogY3NzcHJvcGVydGllcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBjc3Nwcm9wZXJ0aWVzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlBOEMwRjk1QjA4OTcwMUY0MDBCQTUxMTQgLyogQ1NTUnVsZUltcGwuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTUnVsZUltcGwuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjk1QzA4OTcwMUY0MDBCQTUxMTQgLyogQ1NTUnVs
ZUltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTUnVsZUltcGwuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY5NUQwODk3MDFGNDAwQkE1MTE0IC8q
IENTU1J1bGVMaXN0SW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDU1NSdWxlTGlzdEltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMw
Rjk1RTA4OTcwMUY0MDBCQTUxMTQgLyogQ1NTUnVsZUxpc3RJbXBsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENTU1J1bGVMaXN0SW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlBOEMwRjk1RjA4OTcwMUY1MDBCQTUxMTQgLyogQ1NTU3R5bGVEZWNsYXJhdGlv
bkltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTU3R5bGVE
ZWNsYXJhdGlvbkltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjk2
MDA4OTcwMUY1MDBCQTUxMTQgLyogQ1NTU3R5bGVEZWNsYXJhdGlvbkltcGwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTU3R5bGVEZWNsYXJhdGlvbkltcGwuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY5NjEwODk3MDFGNTAwQkE1MTE0IC8qIENTU1N0
eWxlUnVsZUltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NT
U3R5bGVSdWxlSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGOTYy
MDg5NzAxRjUwMEJBNTExNCAvKiBDU1NTdHlsZVJ1bGVJbXBsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENTU1N0eWxlUnVsZUltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQThDMEY5NjMwODk3MDFGNTAwQkE1MTE0IC8qIENTU1N0eWxlU2VsZWN0b3IuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTU3R5bGVTZWxlY3Rvci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGOTY0MDg5NzAxRjUwMEJBNTEx
NCAvKiBDU1NTdHlsZVNlbGVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENTU1N0eWxlU2VsZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY5
NjUwODk3MDFGNTAwQkE1MTE0IC8qIENTU1N0eWxlU2hlZXRJbXBsLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1N0eWxlU2hlZXRJbXBsLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY5NjYwODk3MDFGNTAwQkE1MTE0IC8qIENTU1N0eWxl
U2hlZXRJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1N0eWxlU2hl
ZXRJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGOTY3MDg5NzAxRjUw
MEJBNTExNCAvKiBDU1NVbmtub3duUnVsZUltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQ1NTVW5rbm93blJ1bGVJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQThDMEY5NjgwODk3MDFGNTAwQkE1MTE0IC8qIENTU1Vua25vd25SdWxlSW1w
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NVbmtub3duUnVsZUltcGwu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY5NjkwODk3MDFGNTAwQkE1MTE0
IC8qIENTU1ZhbHVlSW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDU1NWYWx1ZUltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjk2
QTA4OTcwMUY1MDBCQTUxMTQgLyogQ1NTVmFsdWVJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENTU1ZhbHVlSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlBOEMwRjk2QjA4OTcwMUY1MDBCQTUxMTQgLyogQ1NTVmFsdWVMaXN0SW1wbC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NWYWx1ZUxpc3RJbXBsLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY5NkMwODk3MDFGNTAwQkE1MTE0IC8qIENT
U1ZhbHVlTGlzdEltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTVmFs
dWVMaXN0SW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjk2RDA4OTcw
MUY1MDBCQTUxMTQgLyogY3NzdmFsdWVzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNzc3Zh
bHVlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY5NkUwODk3MDFGNTAw
QkE1MTE0IC8qIERvY3VtZW50U3R5bGVJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IERvY3VtZW50U3R5bGVJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQThDMEY5NkYwODk3MDFGNTAwQkE1MTE0IC8qIERvY3VtZW50U3R5bGVJbXBsLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvY3VtZW50U3R5bGVJbXBsLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGOTcwMDg5NzAxRjUwMEJBNTExNCAvKiBG
b250LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjk3MTA4OTcwMUY1MDBCQTUxMTQgLyog
Rm9udC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGOTcyMDg5NzAxRjUwMEJBNTExNCAvKiBLRE9NQ1NT
UGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEtET01DU1NQ
YXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjk3MzA4OTcwMUY1
MDBCQTUxMTQgLyogS0RPTUNTU1BhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBLRE9NQ1NTUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBG
OTc0MDg5NzAxRjUwMEJBNTExNCAvKiBrZG9tcGFyc2VyY3NzLnkgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLnlhY2M7IHBhdGggPSBrZG9tcGFyc2VyY3NzLnk7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUE4QzBGOTc1MDg5NzAxRjUwMEJBNTExNCAvKiBNZWRpYUxpc3RJbXBsLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhTGlzdEltcGwuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjk3NjA4OTcwMUY1MDBCQTUxMTQgLyogTWVk
aWFMaXN0SW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUxpc3RJ
bXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGOTc3MDg5NzAxRjUwMEJB
NTExNCAvKiBSZWN0SW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZWN0SW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGOTc4MDg5
NzAxRjUwMEJBNTExNCAvKiBSZWN0SW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZWN0SW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjk3OTA4
OTcwMUY1MDBCQTUxMTQgLyogUmVuZGVyU3R5bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVuZGVyU3R5bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlBOEMwRjk3QTA4OTcwMUY1MDBCQTUxMTQgLyogUmVuZGVyU3R5bGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU3R5bGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQThDMEY5N0IwODk3MDFGNTAwQkE1MTE0IC8qIFJlbmRlclN0eWxlRGVmcy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTdHlsZURlZnMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjk3QzA4OTcwMUY1MDBCQTUx
MTQgLyogUmVuZGVyU3R5bGVEZWZzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbmRlclN0eWxlRGVmcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjk3
RDA4OTcwMUY1MDBCQTUxMTQgLyogUkdCQ29sb3JJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJHQkNvbG9ySW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUE4QzBGOTdFMDg5NzAxRjUwMEJBNTExNCAvKiBSR0JDb2xvckltcGwuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUkdCQ29sb3JJbXBsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGOTdGMDg5NzAxRjUwMEJBNTExNCAvKiBTdHlsZUJhc2VJ
bXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlQmFzZUlt
cGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjk4MDA4OTcwMUY1MDBC
QTUxMTQgLyogU3R5bGVCYXNlSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTdHlsZUJhc2VJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGOTgx
MDg5NzAxRjUwMEJBNTExNCAvKiBTdHlsZVNoZWV0SW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZVNoZWV0SW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUE4QzBGOTgyMDg5NzAxRjUwMEJBNTExNCAvKiBTdHlsZVNoZWV0SW1wbC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHlsZVNoZWV0SW1wbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjk4MzA4OTcwMUY1MDBCQTUxMTQgLyogU3R5
bGVTaGVldExpc3RJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFN0eWxlU2hlZXRMaXN0SW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4
QzBGOTg0MDg5NzAxRjUwMEJBNTExNCAvKiBTdHlsZVNoZWV0TGlzdEltcGwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5bGVTaGVldExpc3RJbXBsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGOTg1MDg5NzAxRjUwMEJBNTExNCAvKiB0b2tlbml6ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gdG9rZW5pemVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY5ODYwODk3MDFGNTAwQkE1MTE0IC8q
IGtkb21jc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0ga2RvbWNzcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjlCNDA4OTcwMUY1MDBCQTUxMTQgLyog
RE9NU3RyaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVN0
cmluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGOUI1MDg5NzAxRjUw
MEJBNTExNCAvKiBET01TdHJpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RE9NU3RyaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGOUJEMDg5NzAx
RjUwMEJBNTExNCAvKiBET01CcmlkZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRE9NQnJpZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGOUJFMDg5
NzAxRjUwMEJBNTExNCAvKiBET01Mb29rdXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRE9NTG9va3VwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGOUJG
MDg5NzAxRjUwMEJBNTExNCAvKiBFY21hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEVjbWEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjlD
MDA4OTcwMUY1MDBCQTUxMTQgLyogRWNtYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBFY21hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGOUMyMDg5NzAx
RjUwMEJBNTExNCAvKiBHbG9iYWxPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gR2xvYmFsT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQThDMEY5QzMwODk3MDFGNTAwQkE1MTE0IC8qIEdsb2JhbE9iamVjdC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBHbG9iYWxPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQThDMEY5QzUwODk3MDFGNTAwQkE1MTE0IC8qIEhlbHBlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIZWxwZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlBOEMwRjlDNjA4OTcwMUY1MDBCQTUxMTQgLyogU2NyaXB0SW50ZXJw
cmV0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0SW50
ZXJwcmV0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjlDNzA4OTcw
MUY1MDBCQTUxMTQgLyogU2NyaXB0SW50ZXJwcmV0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU2NyaXB0SW50ZXJwcmV0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQThDMEY5REEwODk3MDFGNTAwQkE1MTE0IC8qIERvY3VtZW50RXZlbnRJbXBsLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50RXZlbnRJbXBsLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY5REIwODk3MDFGNTAwQkE1MTE0
IC8qIERvY3VtZW50RXZlbnRJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERvY3VtZW50RXZlbnRJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBG
OURDMDg5NzAxRjUwMEJBNTExNCAvKiBFdmVudEV4Y2VwdGlvbkltcGwuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXZlbnRFeGNlcHRpb25JbXBsLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY5REQwODk3MDFGNTAwQkE1MTE0IC8qIEV2ZW50
RXhjZXB0aW9uSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudEV4
Y2VwdGlvbkltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY5REUwODk3
MDFGNTAwQkE1MTE0IC8qIEV2ZW50SW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBFdmVudEltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
OEMwRjlERjA4OTcwMUY1MDBCQTUxMTQgLyogRXZlbnRJbXBsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEV2ZW50SW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlBOEMwRjlFMDA4OTcwMUY1MDBCQTUxMTQgLyogRXZlbnRMaXN0ZW5lckltcGwuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXZlbnRMaXN0ZW5lckltcGwuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjlFMTA4OTcwMUY1MDBCQTUxMTQgLyog
RXZlbnRMaXN0ZW5lckltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZl
bnRMaXN0ZW5lckltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY5RTIw
ODk3MDFGNTAwQkE1MTE0IC8qIEV2ZW50VGFyZ2V0SW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBFdmVudFRhcmdldEltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlBOEMwRjlFMzA4OTcwMUY1MDBCQTUxMTQgLyogRXZlbnRUYXJnZXRJbXBs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50VGFyZ2V0SW1wbC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjlFNDA4OTcwMUY1MDBCQTUxMTQgLyog
S2V5Ym9hcmRFdmVudEltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gS2V5Ym9hcmRFdmVudEltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
OEMwRjlFNTA4OTcwMUY1MDBCQTUxMTQgLyogS2V5Ym9hcmRFdmVudEltcGwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gS2V5Ym9hcmRFdmVudEltcGwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY5RTYwODk3MDFGNTAwQkE1MTE0IC8qIE1vdXNlRXZlbnRJ
bXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vdXNlRXZlbnRJ
bXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY5RTcwODk3MDFGNTAw
QkE1MTE0IC8qIE1vdXNlRXZlbnRJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1vdXNlRXZlbnRJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBG
OUU4MDg5NzAxRjUwMEJBNTExNCAvKiBNdXRhdGlvbkV2ZW50SW1wbC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNdXRhdGlvbkV2ZW50SW1wbC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGOUU5MDg5NzAxRjUwMEJBNTExNCAvKiBNdXRhdGlv
bkV2ZW50SW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNdXRhdGlvbkV2
ZW50SW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjlFQTA4OTcwMUY1
MDBCQTUxMTQgLyogUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjlFQjA4OTcwMUY1MDBCQTUxMTQgLyogUmVnaXN0
ZXJlZEV2ZW50TGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVn
aXN0ZXJlZEV2ZW50TGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThD
MEY5RUMwODk3MDFGNTAwQkE1MTE0IC8qIFVJRXZlbnRJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVJRXZlbnRJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQThDMEY5RUQwODk3MDFGNTAwQkE1MTE0IC8qIFVJRXZlbnRJbXBsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVJRXZlbnRJbXBsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGOUVFMDg5NzAxRjUwMEJBNTExNCAvKiBrZG9tZXZlbnRz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGtkb21ldmVudHMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY5RjcwODk3MDFGNTAwQkE1MTE0IC8qIEhlbHBl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIZWxwZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjlGODA4OTcwMUY1MDBCQTUxMTQgLyog
SGVscGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhlbHBlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjlGQTA4OTcwMUY1MDBCQTUxMTQgLyogQXR0
ckltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXR0ckltcGwu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjlGQjA4OTcwMUY1MDBCQTUx
MTQgLyogQXR0ckltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXR0cklt
cGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY5RkMwODk3MDFGNTAwQkE1
MTE0IC8qIENEQVRBU2VjdGlvbkltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ0RBVEFTZWN0aW9uSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUE4QzBGOUZEMDg5NzAxRjUwMEJBNTExNCAvKiBDREFUQVNlY3Rpb25JbXBsLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENEQVRBU2VjdGlvbkltcGwuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEY5RkUwODk3MDFGNTAwQkE1MTE0IC8qIENERkludGVy
ZmFjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDREZJbnRlcmZh
Y2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRjlGRjA4OTcwMUY1MDBC
QTUxMTQgLyogQ0RGSW50ZXJmYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENERkludGVyZmFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRkEwMDA4
OTcwMUY1MDBCQTUxMTQgLyogQ2hhcmFjdGVyRGF0YUltcGwuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ2hhcmFjdGVyRGF0YUltcGwuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlBOEMwRkEwMTA4OTcwMUY1MDBCQTUxMTQgLyogQ2hhcmFjdGVyRGF0
YUltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2hhcmFjdGVyRGF0YUlt
cGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEZBMDIwODk3MDFGNTAwQkE1
MTE0IC8qIENvbW1lbnRJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENvbW1lbnRJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEZB
MDMwODk3MDFGNTAwQkE1MTE0IC8qIENvbW1lbnRJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENvbW1lbnRJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUE4QzBGQTA0MDg5NzAxRjUwMEJBNTExNCAvKiBEb2N1bWVudEZyYWdtZW50SW1wbC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudEZyYWdtZW50SW1wbC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGQTA1MDg5NzAxRjUwMEJBNTEx
NCAvKiBEb2N1bWVudEZyYWdtZW50SW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEb2N1bWVudEZyYWdtZW50SW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlBOEMwRkEwNjA4OTcwMUY1MDBCQTUxMTQgLyogRG9jdW1lbnRJbXBsLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50SW1wbC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGQTA3MDg5NzAxRjUwMEJBNTExNCAvKiBEb2N1bWVudElt
cGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG9jdW1lbnRJbXBsLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGQTA4MDg5NzAxRjUwMEJBNTExNCAvKiBE
b2N1bWVudFR5cGVJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IERvY3VtZW50VHlwZUltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMw
RkEwOTA4OTcwMUY1MDBCQTUxMTQgLyogRG9jdW1lbnRUeXBlSW1wbC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEb2N1bWVudFR5cGVJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUE4QzBGQTBBMDg5NzAxRjUwMEJBNTExNCAvKiBkb21hdHRycy5jICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBkb21hdHRycy5jOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlBOEMwRkEwQjA4OTcwMUY1MDBCQTUxMTQgLyogZG9tYXR0cnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gZG9tYXR0cnMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQThDMEZBMEMwODk3MDFGNTAwQkE1MTE0IC8qIGRvbWF0dHJzLmluICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IGRvbWF0dHJzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlBOEMwRkEwRDA4OTcwMUY1MDBCQTUxMTQgLyogRE9NQ29uZmlndXJhdGlvbkltcGwu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NQ29uZmlndXJhdGlv
bkltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRkEwRTA4OTcwMUY1
MDBCQTUxMTQgLyogRE9NQ29uZmlndXJhdGlvbkltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRE9NQ29uZmlndXJhdGlvbkltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQThDMEZBMEYwODk3MDFGNTAwQkE1MTE0IC8qIERPTUVycm9ySGFuZGxlckltcGwu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NRXJyb3JIYW5kbGVy
SW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGQTEwMDg5NzAxRjUw
MEJBNTExNCAvKiBET01FcnJvckhhbmRsZXJJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERPTUVycm9ySGFuZGxlckltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQThDMEZBMTEwODk3MDFGNTAwQkE1MTE0IC8qIERPTUVycm9ySW1wbC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01FcnJvckltcGwuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRkExMjA4OTcwMUY1MDBCQTUxMTQgLyogRE9NRXJy
b3JJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUVycm9ySW1wbC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRkExMzA4OTcwMUY1MDBCQTUxMTQg
LyogRE9NRXhjZXB0aW9uSW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBET01FeGNlcHRpb25JbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QThDMEZBMTQwODk3MDFGNTAwQkE1MTE0IC8qIERPTUV4Y2VwdGlvbkltcGwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRXhjZXB0aW9uSW1wbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlBOEMwRkExNTA4OTcwMUY1MDBCQTUxMTQgLyogRE9NSW1wbGVtZW50
YXRpb25JbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTUlt
cGxlbWVudGF0aW9uSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBG
QTE2MDg5NzAxRjUwMEJBNTExNCAvKiBET01JbXBsZW1lbnRhdGlvbkltcGwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSW1wbGVtZW50YXRpb25JbXBsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGQTE3MDg5NzAxRjUwMEJBNTExNCAvKiBET01MaXN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUxpc3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEZBMTgwODk3MDFGNTAwQkE1MTE0IC8qIERPTUxvY2F0
b3JJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTUxvY2F0
b3JJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEZBMTkwODk3MDFG
NTAwQkE1MTE0IC8qIERPTUxvY2F0b3JJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTUxvY2F0b3JJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4
QzBGQTFBMDg5NzAxRjUwMEJBNTExNCAvKiBET01TdHJpbmdJbXBsLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVN0cmluZ0ltcGwuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlBOEMwRkExQjA4OTcwMUY1MDBCQTUxMTQgLyogRE9NU3RyaW5nSW1w
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01TdHJpbmdJbXBsLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGQTFDMDg5NzAxRjUwMEJBNTExNCAvKiBE
T01TdHJpbmdMaXN0SW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBET01TdHJpbmdMaXN0SW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4
QzBGQTFEMDg5NzAxRjUwMEJBNTExNCAvKiBET01TdHJpbmdMaXN0SW1wbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBET01TdHJpbmdMaXN0SW1wbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlBOEMwRkExRTA4OTcwMUY2MDBCQTUxMTQgLyogRE9NVXNlckRhdGFJ
bXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVVzZXJEYXRh
SW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGQTFGMDg5NzAxRjYw
MEJBNTExNCAvKiBET01Vc2VyRGF0YUltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRE9NVXNlckRhdGFJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4
QzBGQTIwMDg5NzAxRjYwMEJBNTExNCAvKiBFbGVtZW50SW1wbC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFbGVtZW50SW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUE4QzBGQTIxMDg5NzAxRjYwMEJBNTExNCAvKiBFbGVtZW50SW1wbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbGVtZW50SW1wbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlBOEMwRkEyMjA4OTcwMUY2MDBCQTUxMTQgLyogRW50aXR5SW1w
bC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFbnRpdHlJbXBsLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEZBMjMwODk3MDFGNjAwQkE1MTE0
IC8qIEVudGl0eUltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRW50aXR5
SW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRkEyNDA4OTcwMUY2MDBC
QTUxMTQgLyogRW50aXR5UmVmZXJlbmNlSW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBFbnRpdHlSZWZlcmVuY2VJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQThDMEZBMjUwODk3MDFGNjAwQkE1MTE0IC8qIEVudGl0eVJlZmVyZW5jZUlt
cGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRW50aXR5UmVmZXJlbmNlSW1w
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRkEyNjA4OTcwMUY2MDBCQTUx
MTQgLyogTmFtZWRBdHRyTWFwSW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBOYW1lZEF0dHJNYXBJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQThDMEZBMjcwODk3MDFGNjAwQkE1MTE0IC8qIE5hbWVkQXR0ck1hcEltcGwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmFtZWRBdHRyTWFwSW1wbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlBOEMwRkEyODA4OTcwMUY2MDBCQTUxMTQgLyogTmFtZWROb2Rl
TWFwSW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOYW1lZE5v
ZGVNYXBJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEZBMjkwODk3
MDFGNjAwQkE1MTE0IC8qIE5hbWVkTm9kZU1hcEltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTmFtZWROb2RlTWFwSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlBOEMwRkEyQTA4OTcwMUY2MDBCQTUxMTQgLyogTm9kZUltcGwuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTm9kZUltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlBOEMwRkEyQjA4OTcwMUY2MDBCQTUxMTQgLyogTm9kZUltcGwuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm9kZUltcGwuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQThDMEZBMkMwODk3MDFGNjAwQkE1MTE0IC8qIE5vZGVMaXN0SW1wbC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOb2RlTGlzdEltcGwuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRkEyRDA4OTcwMUY2MDBCQTUxMTQg
LyogTm9kZUxpc3RJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vZGVM
aXN0SW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRkEyRTA4OTcwMUY2
MDBCQTUxMTQgLyogTm90YXRpb25JbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE5vdGF0aW9uSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUE4QzBGQTJGMDg5NzAxRjYwMEJBNTExNCAvKiBOb3RhdGlvbkltcGwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTm90YXRpb25JbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUE4QzBGQTMwMDg5NzAxRjYwMEJBNTExNCAvKiBQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b25JbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb2Nlc3Np
bmdJbnN0cnVjdGlvbkltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMw
RkEzMTA4OTcwMUY2MDBCQTUxMTQgLyogUHJvY2Vzc2luZ0luc3RydWN0aW9uSW1wbC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGQTMyMDg5NzAxRjYwMEJBNTExNCAv
KiBUYWdOb2RlTGlzdEltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVGFnTm9kZUxpc3RJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThD
MEZBMzMwODk3MDFGNjAwQkE1MTE0IC8qIFRhZ05vZGVMaXN0SW1wbC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUYWdOb2RlTGlzdEltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQThDMEZBMzQwODk3MDFGNjAwQkE1MTE0IC8qIFRleHRJbXBsLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRJbXBsLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEZBMzUwODk3MDFGNjAwQkE1MTE0IC8qIFRleHRJbXBs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRJbXBsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGQTM2MDg5NzAxRjYwMEJBNTExNCAvKiBUeXBlSW5m
b0ltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwZUluZm9J
bXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEZBMzcwODk3MDFGNjAw
QkE1MTE0IC8qIFR5cGVJbmZvSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUeXBlSW5mb0ltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEZBMzgw
ODk3MDFGNjAwQkE1MTE0IC8qIFhNTEVsZW1lbnRJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFhNTEVsZW1lbnRJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQThDMEZBMzkwODk3MDFGNjAwQkE1MTE0IC8qIFhNTEVsZW1lbnRJbXBsLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhNTEVsZW1lbnRJbXBsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGQTNBMDg5NzAxRjYwMEJBNTExNCAvKiBrZG9t
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGtkb20uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEZBM0IwODk3MDFGNjAwQkE1MTE0IC8qIEtET01QYXJ0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEtET01QYXJ0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEZBM0MwODk3MDFGNjAwQkE1MTE0IC8qIEtE
T01QYXJ0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtET01QYXJ0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGQTNEMDg5NzAxRjYwMEJBNTExNCAvKiBL
RE9NU2V0dGluZ3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gS0RP
TVNldHRpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEZBM0UwODk3
MDFGNjAwQkE1MTE0IC8qIEtET01TZXR0aW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBLRE9NU2V0dGluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThD
MEZBM0YwODk3MDFGNjAwQkE1MTE0IC8qIEtET01WaWV3LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEtET01WaWV3LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQThDMEZBNDAwODk3MDFGNjAwQkE1MTE0IC8qIEtET01WaWV3LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtET01WaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUE4QzBGQTQ1MDg5NzAxRjYwMEJBNTExNCAvKiBMU0V4Y2VwdGlvbkltcGwuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTFNFeGNlcHRpb25JbXBsLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEZBNDYwODk3MDFGNjAwQkE1MTE0IC8q
IExTRXhjZXB0aW9uSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMU0V4
Y2VwdGlvbkltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEZBNDcwODk3
MDFGNjAwQkE1MTE0IC8qIExTSW5wdXRJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IExTSW5wdXRJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQThDMEZBNDgwODk3MDFGNjAwQkE1MTE0IC8qIExTSW5wdXRJbXBsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExTSW5wdXRJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUE4QzBGQTQ5MDg5NzAxRjYwMEJBNTExNCAvKiBMU091dHB1dEltcGwuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTFNPdXRwdXRJbXBsLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEZBNEEwODk3MDFGNjAwQkE1MTE0IC8qIExT
T3V0cHV0SW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMU091dHB1dElt
cGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEZBNEIwODk3MDFGNjAwQkE1
MTE0IC8qIExTUGFyc2VyRmlsdGVySW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBMU1BhcnNlckZpbHRlckltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlBOEMwRkE0QzA4OTcwMUY2MDBCQTUxMTQgLyogTFNQYXJzZXJGaWx0ZXJJbXBsLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExTUGFyc2VyRmlsdGVySW1wbC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRkE0RDA4OTcwMUY2MDBCQTUxMTQgLyog
TFNQYXJzZXJJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExT
UGFyc2VySW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGQTRFMDg5
NzAxRjYwMEJBNTExNCAvKiBMU1BhcnNlckltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTFNQYXJzZXJJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4
QzBGQTRGMDg5NzAxRjYwMEJBNTExNCAvKiBMU1Jlc291cmNlUmVzb2x2ZXJJbXBsLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExTUmVzb3VyY2VSZXNvbHZlckltcGwu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRkE1MDA4OTcwMUY2MDBCQTUx
MTQgLyogTFNSZXNvdXJjZVJlc29sdmVySW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBMU1Jlc291cmNlUmVzb2x2ZXJJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUE4QzBGQTUxMDg5NzAxRjYwMEJBNTExNCAvKiBMU1NlcmlhbGl6ZXJGaWx0ZXJJbXBs
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExTU2VyaWFsaXplckZp
bHRlckltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRkE1MjA4OTcw
MUY2MDBCQTUxMTQgLyogTFNTZXJpYWxpemVyRmlsdGVySW1wbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBMU1NlcmlhbGl6ZXJGaWx0ZXJJbXBsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUE4QzBGQTUzMDg5NzAxRjYwMEJBNTExNCAvKiBMU1NlcmlhbGl6ZXJJ
bXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExTU2VyaWFsaXpl
ckltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRkE1NDA4OTcwMUY2
MDBCQTUxMTQgLyogTFNTZXJpYWxpemVySW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBMU1NlcmlhbGl6ZXJJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUE4QzBGQTU1MDg5NzAxRjYwMEJBNTExNCAvKiBrZG9tbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0ga2RvbWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4
QzBGQTY4MDg5NzAxRjYwMEJBNTExNCAvKiBOYW1lc3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTmFtZXNwYWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUE4QzBGQTcyMDg5NzAxRjYwMEJBNTExNCAvKiBLRE9NRG9jdW1lbnRCdWlsZGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEtET01Eb2N1bWVudEJ1aWxkZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRkE3MzA4OTcwMUY2MDBCQTUxMTQg
LyogS0RPTURvY3VtZW50QnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBLRE9NRG9jdW1lbnRCdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4
QzBGQTc0MDg5NzAxRjYwMEJBNTExNCAvKiBLRE9NUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEtET01QYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlBOEMwRkE3NTA4OTcwMUY2MDBCQTUxMTQgLyogS0RPTVBhcnNlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLRE9NUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUE4QzBGQTdEMDg5NzAxRjYwMEJBNTExNCAvKiBEb2N1bWVudFJhbmdl
SW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudFJh
bmdlSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGQTdFMDg5NzAx
RjYwMEJBNTExNCAvKiBEb2N1bWVudFJhbmdlSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEb2N1bWVudFJhbmdlSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlBOEMwRkE3RjA4OTcwMUY2MDBCQTUxMTQgLyogUmFuZ2VFeGNlcHRpb25JbXBsLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJhbmdlRXhjZXB0aW9uSW1wbC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGQTgwMDg5NzAxRjYwMEJBNTEx
NCAvKiBSYW5nZUV4Y2VwdGlvbkltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmFuZ2VFeGNlcHRpb25JbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4
QzBGQTgxMDg5NzAxRjYwMEJBNTExNCAvKiBSYW5nZUltcGwuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmFuZ2VJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQThDMEZBODIwODk3MDFGNjAwQkE1MTE0IC8qIFJhbmdlSW1wbC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZUltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQThDMEZBODMwODk3MDFGNjAwQkE1MTE0IC8qIGtkb21yYW5nZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBrZG9tcmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQThDMEZBOTcwODk3MDFGNjAwQkE1MTE0IC8qIFNoYXJlZC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFyZWQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlBOEMwRkE5ODA4OTcwMUY2MDBCQTUxMTQgLyogU2hhcmVkLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJlZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlBOEMwRkE5RjA4OTcwMUY2MDBCQTUxMTQgLyogRG9jdW1lbnRUcmF2
ZXJzYWxJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3Vt
ZW50VHJhdmVyc2FsSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBG
QUEwMDg5NzAxRjYwMEJBNTExNCAvKiBEb2N1bWVudFRyYXZlcnNhbEltcGwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG9jdW1lbnRUcmF2ZXJzYWxJbXBsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGQUExMDg5NzAxRjYwMEJBNTExNCAvKiBOb2RlRmls
dGVySW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOb2RlRmls
dGVySW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGQUEyMDg5NzAx
RjYwMEJBNTExNCAvKiBOb2RlRmlsdGVySW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBOb2RlRmlsdGVySW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
OEMwRkFBMzA4OTcwMUY2MDBCQTUxMTQgLyogTm9kZUl0ZXJhdG9ySW1wbC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOb2RlSXRlcmF0b3JJbXBsLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEZBQTQwODk3MDFGNjAwQkE1MTE0IC8qIE5vZGVJ
dGVyYXRvckltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm9kZUl0ZXJh
dG9ySW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRkFBNTA4OTcwMUY2
MDBCQTUxMTQgLyogVHJhdmVyc2FsSW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBUcmF2ZXJzYWxJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQThDMEZBQTYwODk3MDFGNjAwQkE1MTE0IC8qIFRyYXZlcnNhbEltcGwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHJhdmVyc2FsSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlBOEMwRkFBNzA4OTcwMUY2MDBCQTUxMTQgLyogVHJlZVdhbGtlckltcGwu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHJlZVdhbGtlckltcGwu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRkFBODA4OTcwMUY2MDBCQTUx
MTQgLyogVHJlZVdhbGtlckltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VHJlZVdhbGtlckltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEZBQTkw
ODk3MDFGNjAwQkE1MTE0IC8qIGtkb210cmF2ZXJzYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0ga2RvbXRyYXZlcnNhbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlBOEMwRkFCMDA4OTcwMUY2MDBCQTUxMTQgLyogVHJlZVNoYXJlZC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUcmVlU2hhcmVkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUE4QzBGQUI5MDg5NzAxRjYwMEJBNTExNCAvKiBBYnN0cmFjdFZpZXdJbXBsLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFic3RyYWN0Vmlld0ltcGwuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRkFCQTA4OTcwMUY2MDBCQTUxMTQg
LyogQWJzdHJhY3RWaWV3SW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
YnN0cmFjdFZpZXdJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGQUJC
MDg5NzAxRjYwMEJBNTExNCAvKiBEb2N1bWVudFZpZXdJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50Vmlld0ltcGwuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlBOEMwRkFCQzA4OTcwMUY2MDBCQTUxMTQgLyogRG9jdW1lbnRWaWV3
SW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEb2N1bWVudFZpZXdJbXBs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGQjIxMDg5NzAxRjcwMEJBNTEx
NCAvKiBrZG9teHBhdGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0ga2RvbXhw
YXRoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGQjMwMDg5NzAxRjcwMEJB
NTExNCAvKiBFbGVtZW50U2NoZW1lSW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBFbGVtZW50U2NoZW1lSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUE4QzBGQjMxMDg5NzAxRjcwMEJBNTExNCAvKiBFbGVtZW50U2NoZW1lSW1wbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbGVtZW50U2NoZW1lSW1wbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRkIzMjA4OTcwMUY3MDBCQTUxMTQgLyogTkJD
SW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOQkNJbXBsLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEZCMzMwODk3MDFGNzAwQkE1MTE0
IC8qIE5CQ0ltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTkJDSW1wbC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRkIzNDA4OTcwMUY3MDBCQTUxMTQg
LyogUG9pbnRlclBhcnRJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFBvaW50ZXJQYXJ0SW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4
QzBGQjM1MDg5NzAxRjcwMEJBNTExNCAvKiBQb2ludGVyUGFydEltcGwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUG9pbnRlclBhcnRJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUE4QzBGQjM2MDg5NzAxRjcwMEJBNTExNCAvKiBTaG9ydEhhbmRJbXBsLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNob3J0SGFuZEltcGwuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRkIzNzA4OTcwMUY3MDBCQTUxMTQg
LyogU2hvcnRIYW5kSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaG9y
dEhhbmRJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGQjM4MDg5NzAx
RjcwMEJBNTExNCAvKiBYTUxOU1NjaGVtZUltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gWE1MTlNTY2hlbWVJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQThDMEZCMzkwODk3MDFGNzAwQkE1MTE0IC8qIFhNTE5TU2NoZW1lSW1wbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxOU1NjaGVtZUltcGwuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEZCM0EwODk3MDFGNzAwQkE1MTE0IC8qIFhQYXRo
MVNjaGVtZUltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWFBh
dGgxU2NoZW1lSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGQjNC
MDg5NzAxRjcwMEJBNTExNCAvKiBYUGF0aDFTY2hlbWVJbXBsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFhQYXRoMVNjaGVtZUltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQThDMEZCM0MwODk3MDFGNzAwQkE1MTE0IC8qIFhQb2ludGVyRXZhbHVhdG9ySW1w
bC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYUG9pbnRlckV2YWx1
YXRvckltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRkIzRDA4OTcw
MUY3MDBCQTUxMTQgLyogWFBvaW50ZXJFdmFsdWF0b3JJbXBsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFhQb2ludGVyRXZhbHVhdG9ySW1wbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlBOEMwRkIzRTA4OTcwMUY3MDBCQTUxMTQgLyogWFBvaW50ZXJFeGNlcHRp
b25JbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhQb2ludGVy
RXhjZXB0aW9uSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGQjNG
MDg5NzAxRjcwMEJBNTExNCAvKiBYUG9pbnRlckV4Y2VwdGlvbkltcGwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gWFBvaW50ZXJFeGNlcHRpb25JbXBsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGQjQwMDg5NzAxRjcwMEJBNTExNCAvKiBYUG9pbnRlckV4
cHJlc3Npb25JbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhQ
b2ludGVyRXhwcmVzc2lvbkltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
OEMwRkI0MTA4OTcwMUY3MDBCQTUxMTQgLyogWFBvaW50ZXJFeHByZXNzaW9uSW1wbC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUG9pbnRlckV4cHJlc3Npb25JbXBsLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QzBGQjQyMDg5NzAxRjcwMEJBNTExNCAvKiBY
UG9pbnRlclJlc3VsdEltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gWFBvaW50ZXJSZXN1bHRJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QThDMEZCNDMwODk3MDFGNzAwQkE1MTE0IC8qIFhQb2ludGVyUmVzdWx0SW1wbC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUG9pbnRlclJlc3VsdEltcGwuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThDMEZCNDQwODk3MDFGNzAwQkE1MTE0IC8qIFhQb2ludGVy
U2NoZW1lSW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYUG9p
bnRlclNjaGVtZUltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEMwRkI0
NTA4OTcwMUY3MDBCQTUxMTQgLyogWFBvaW50ZXJTY2hlbWVJbXBsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFhQb2ludGVyU2NoZW1lSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlBOEMwRkI0NjA4OTcwMUY3MDBCQTUxMTQgLyoga2RvbXhwb2ludGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGtkb214cG9pbnRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBOEMwRkI1NDA4OTcwMUY3MDBCQTUxMTQgLyogS1JlbmRl
cmluZ0RldmljZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLUmVu
ZGVyaW5nRGV2aWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThDMEZCNTUw
ODk3MDFGNzAwQkE1MTE0IC8qIEtSZW5kZXJpbmdEZXZpY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gS1JlbmRlcmluZ0RldmljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBOEMwRkI1NzA4OTcwMUY3MDBCQTUxMTQgLyogS1JlbmRlcmluZ0RldmljZUZhY3Rv
cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gS1JlbmRlcmluZ0Rl
dmljZUZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzgwNyw5ICsy
NjA4LDExIEBACiAJCUE4QzBGQjhDMDg5NzAxRjgwMEJBNTExNCAvKiBLQ2FudmFzVHlwZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gS0NhbnZhc1R5cGVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QzBGQjhEMDg5NzAxRjgwMEJBNTExNCAvKiBLQ2FudmFz
Vmlldy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLQ2FudmFzVmll
dy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QzBGQjhFMDg5NzAxRjgwMEJB
NTExNCAvKiBLQ2FudmFzVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBL
Q2FudmFzVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOERDNjNFODA4RTBE
RDBBMDA0NTA3RjcgLyogRWNtYUludGVyZmFjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBFY21hSW50ZXJmYWNlLmNwcDsgcGF0aCA9IGtkb20vZWNtYS9FY21hSW50
ZXJmYWNlLmNwcDsgc291cmNlVHJlZSA9IERFUklWRURfRklMRV9ESVI7IH07CisJCUE4QzgwMTU1
MDkxNDM1NzQwMDZBNUU1QiAvKiBTVkdFbGVtZW50RmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTVkdFbGVtZW50RmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBOEM4MDE1NjA5MTQzNTc0MDA2QTVFNUIgLyogU1ZHRWxlbWVudEZhY3Rvcnku
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHRWxlbWVudEZhY3Rv
cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBOEM4MDFBNTA5MTQzRTNCMDA2
QTVFNUIgLyogU1ZHTmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZH
TmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQThDODAxQTYwOTE0M0UzQjAw
NkE1RTVCIC8qIFNWR05hbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNWR05hbWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThEQzYzRUIw
OEUwREQyQTAwNDUwN0Y3IC8qIEVjbWFJbnRlcmZhY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gRWNtYUludGVyZmFjZS5jcHA7IHBhdGggPSBrc3ZnMi9lY21hL0Vj
bWFJbnRlcmZhY2UuY3BwOyBzb3VyY2VUcmVlID0gREVSSVZFRF9GSUxFX0RJUjsgfTsKLQkJQThF
QTQzM0QwOEUxNEVBQjAwNEJDMzk2IC8qIHhtbF9rZG9tdG9rZW5pemVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHhtbF9rZG9tdG9rZW5pemVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE4RUE0MzNFMDhFMTRFQUMwMDRCQzM5NiAvKiB4bWxfa2RvbXRva2Vu
aXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSB4bWxfa2RvbXRv
a2VuaXplci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4RUE0MzNGMDhFMTRF
QUMwMDRCQzM5NiAvKiByZW5kZXJfa2NhbnZhc3dyYXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gcmVuZGVyX2tjYW52YXN3cmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE4RUE0MzQwMDhFMTRFQUMwMDRCQzM5NiAvKiByZW5kZXJfa2NhbnZhc3dy
YXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gcmVuZGVyX2tj
YW52YXN3cmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQyODYsNyAr
MzA4OSw2IEBACiAJCUY2OTBDRkVBMDMxQzQ3RjQwMUNBMkFDNCAvKiByZW5kZXJfbGF5ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHJlbmRlcl9sYXllci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNjkwQ0ZFQjAzMUM0N0Y0MDFDQTJBQzQgLyogcmVuZGVy
X2xheWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSByZW5kZXJf
bGF5ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGODIxNjI5OTAyOUY0RkI1
MDEwMDAxMzEgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IHBhdGggPSBK
YXZhU2NyaXB0Q29yZS5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07Ci0JCUY5QTdBOTkyMDkwNDY3QkUwMEJENTlDOSAvKiBTaGFyZWRQdHIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJlZFB0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQ
QlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCkBAIC00MzE0LDYgKzMxMTYsNyBAQAog
CQkJCUE4MjEyRDAzMDg3OTRBMjMwMDY3NzM1OSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsg
aW4gRnJhbWV3b3JrcyAqLywKIAkJCQlBODIxMkQwNDA4Nzk0QTIzMDA2NzczNTkgLyogbGliaWN1
Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovLAogCQkJCUE4MjEyRDA1MDg3OTRBMjMwMDY3NzM1
OSAvKiBsaWJ4c2x0LmR5bGliIGluIEZyYW1ld29ya3MgKi8sCisJCQkJQTg3MjU5MzIwOEY5QkFB
NzAwNkYxMEExIC8qIGxpYnouZHlsaWIgaW4gRnJhbWV3b3JrcyAqLywKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTQzMzUsNyArMzEz
OCw2IEBACiAJCQkJRjUyM0QxNjMwMkRFNDJBRTAxODYzNUNBIC8qIGtodG1sICovLAogCQkJCUY1
ODc4NUU4MDJERTM3NzYwMUVBNDEyMiAvKiBrd3EgKi8sCiAJCQkJRjU4Nzg1RTkwMkRFMzc4QTAx
RUE0MTIyIC8qIFdlYkNvcmUgU1BJICovLAotCQkJCUE4QzBGOEZFMDg5NzAxRjQwMEJBNTExNCAv
KiBrZG9tICovLAogCQkJCUE4QzBGQjUxMDg5NzAxRjcwMEJBNTExNCAvKiBrY2FudmFzICovLAog
CQkJCUE4QzBGNkU5MDg5NzAxRjEwMEJBNTExNCAvKiBrc3ZnMiAqLywKIAkJCQlBOEMwRjZEQzA4
OTcwMUYxMDBCQTUxMTQgLyogV2ViQ29yZStTVkcgKi8sCkBAIC00MzU2LDYgKzMxNTgsNyBAQAog
CQkJCUY4MjE2Mjk5MDI5RjRGQjUwMTAwMDEzMSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsg
Ki8sCiAJCQkJOTNGMUQzMUEwNTU4Q0M1QzAwODIxQkMwIC8qIGxpYmljdWNvcmUuZHlsaWIgKi8s
CiAJCQkJODQwNjMzMDcwNzMxQTc3MjAwREIxRkQxIC8qIGxpYnhzbHQuZHlsaWIgKi8sCisJCQkJ
QTg3MjU5MzEwOEY5QkFBNjAwNkYxMEExIC8qIGxpYnouZHlsaWIgKi8sCiAJCQkpOwogCQkJbmFt
ZSA9IEZyYW1ld29ya3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNDgxNCw0Njkg
KzM2MTcsMjUgQEAKIAkJCXBhdGggPSBzdmc7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwog
CQl9OwotCQlBODFENTdGRDA4QURERkY1MDAxMzZBQzEgLyogYmluZGluZ3MgKi8gPSB7CisJCUE4
MjA5NEJDMDkxNDBFODMwMDBCRTRGNCAvKiBLRE9NIFN1cHBvcnQgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCUE4MUQ1ODE0MDhBRERGRjYwMDEzNkFDMSAv
KiBpZGwgKi8sCi0JCQkJQThCQzBCRTQwOEQxOUYxOTAwMzc5OTE4IC8qIGpzICovLAorCQkJCUE4
M0ExOEQzMDkxNDIxNEYwMDBFQzMxMSAvKiBOYW1lc3BhY2UuaCAqLywKKwkJCQlBODIwOTRDNDA5
MTQwRUE1MDAwQkU0RjQgLyoga2RvbXRyYXZlcnNhbC5oICovLAorCQkJCUE4MjA5NEM1MDkxNDBF
QTUwMDBCRTRGNCAvKiBrZG9tZXZlbnRzLmggKi8sCisJCQkJQTgyMDk0QzYwOTE0MEVBNTAwMEJF
NEY0IC8qIGtkb21scy5oICovLAorCQkJCUE4MjA5NEM3MDkxNDBFQTUwMDBCRTRGNCAvKiBrZG9t
cmFuZ2UuaCAqLywKKwkJCQlBODIwOTRDODA5MTQwRUE1MDAwQkU0RjQgLyoga2RvbWNzcy5oICov
LAorCQkJCUE4MjA5NEM5MDkxNDBFQTUwMDBCRTRGNCAvKiBrZG9tLmggKi8sCisJCQkJQTgyMDkw
NjYwOTEzNzlGMzAwMEJFNEY0IC8qIEtET01IZWFkZXJzLmggKi8sCisJCQkJQTgyMDkxMkUwOTEz
ODFGNTAwMEJFNEY0IC8qIEtET01TdHViQ2xhc3Nlcy5oICovLAorCQkJCUE4MjA5MjBGMDkxMzkw
QjMwMDBCRTRGNCAvKiBET01MaXN0LmggKi8sCisJCQkJQTg0QjlGQkUwOTE3MERBMjAwRDcxREQw
IC8qIFJHQkNvbG9ySW1wbC5oICovLAorCQkJCUE4NEI5RkJDMDkxNzBEQTIwMEQ3MUREMCAvKiBS
R0JDb2xvckltcGwuY3BwICovLAorCQkJCUE4NEI5RkJGMDkxNzBEQTIwMEQ3MUREMCAvKiBLRE9N
U2V0dGluZ3MuaCAqLywKKwkJCQlBODRCOUZCRDA5MTcwREEyMDBENzFERDAgLyogS0RPTVNldHRp
bmdzLmNwcCAqLywKIAkJCSk7Ci0JCQlwYXRoID0gYmluZGluZ3M7Ci0JCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwotCQl9OwotCQlBODFENTgxNDA4QURERkY2MDAxMzZBQzEgLyogaWRsICovID0g
ewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQlBODFENTgxNTA4QURE
RkY2MDAxMzZBQzEgLyogY29yZSAqLywKLQkJCQlBODFENTgzNzA4QURERkY3MDAxMzZBQzEgLyog
Y3NzICovLAotCQkJCUE4MUQ1ODRFMDhBRERGRjcwMDEzNkFDMSAvKiBldmVudHMgKi8sCi0JCQkJ
QThCQzBENUYwOEQyQTI3NjAwMzc5OTE4IC8qIGxzICovLAotCQkJCUE4MUQ1ODU4MDhBRERGRjcw
MDEzNkFDMSAvKiByYW5nZSAqLywKLQkJCQlBODFENTg1RDA4QURERkY3MDAxMzZBQzEgLyogc3R5
bGVzaGVldHMgKi8sCi0JCQkJQTgxRDU4NjQwOEFEREZGNzAwMTM2QUMxIC8qIHRyYXZlcnNhbCAq
LywKLQkJCQlBODFENTg2QTA4QURERkY4MDAxMzZBQzEgLyogdmlld3MgKi8sCi0JCQkJQTgxRDU4
NkUwOEFEREZGODAwMTM2QUMxIC8qIHhwYXRoICovLAotCQkJCUE4MUQ1ODc2MDhBRERGRjgwMDEz
NkFDMSAvKiB4cG9pbnRlciAqLywKLQkJCSk7Ci0JCQlwYXRoID0gaWRsOwotCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKLQkJfTsKLQkJQTgxRDU4MTUwOEFEREZGNjAwMTM2QUMxIC8qIGNvcmUg
Ki8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCUE4MUQ1ODE2
MDhBRERGRjYwMDEzNkFDMSAvKiBBdHRyLmlkbCAqLywKLQkJCQlBODFENTgxNzA4QURERkY2MDAx
MzZBQzEgLyogQ0RBVEFTZWN0aW9uLmlkbCAqLywKLQkJCQlBODFENTgxODA4QURERkY2MDAxMzZB
QzEgLyogQ2hhcmFjdGVyRGF0YS5pZGwgKi8sCi0JCQkJQTgxRDU4MTkwOEFEREZGNjAwMTM2QUMx
IC8qIENvbW1lbnQuaWRsICovLAotCQkJCUE4MUQ1ODFBMDhBRERGRjYwMDEzNkFDMSAvKiBkb2Nz
LWNvcmUueG1sICovLAotCQkJCUE4MUQ1ODFCMDhBRERGRjcwMDEzNkFDMSAvKiBEb2N1bWVudC5p
ZGwgKi8sCi0JCQkJQTgxRDU4MUMwOEFEREZGNzAwMTM2QUMxIC8qIERvY3VtZW50RnJhZ21lbnQu
aWRsICovLAotCQkJCUE4MUQ1ODFEMDhBRERGRjcwMDEzNkFDMSAvKiBEb2N1bWVudFR5cGUuaWRs
ICovLAotCQkJCUE4MUQ1ODFFMDhBRERGRjcwMDEzNkFDMSAvKiBET01Db25maWd1cmF0aW9uLmlk
bCAqLywKLQkJCQlBODFENTgxRjA4QURERkY3MDAxMzZBQzEgLyogRE9NRXJyb3IuaWRsICovLAot
CQkJCUE4MUQ1ODIwMDhBRERGRjcwMDEzNkFDMSAvKiBET01FcnJvckhhbmRsZXIuaWRsICovLAot
CQkJCUE4MUQ1ODIxMDhBRERGRjcwMDEzNkFDMSAvKiBET01FeGNlcHRpb24uaWRsICovLAotCQkJ
CUE4MUQ1ODIyMDhBRERGRjcwMDEzNkFDMSAvKiBET01JbXBsZW1lbnRhdGlvbi5pZGwgKi8sCi0J
CQkJQTgxRDU4MjUwOEFEREZGNzAwMTM2QUMxIC8qIERPTUxvY2F0b3IuaWRsICovLAotCQkJCUE4
MUQ1ODI2MDhBRERGRjcwMDEzNkFDMSAvKiBET01PYmplY3QuaWRsICovLAotCQkJCUE4MUQ1ODI4
MDhBRERGRjcwMDEzNkFDMSAvKiBET01TdHJpbmdMaXN0LmlkbCAqLywKLQkJCQlBODFENTgyOTA4
QURERkY3MDAxMzZBQzEgLyogRE9NVXNlckRhdGEuaWRsICovLAotCQkJCUE4MUQ1ODJBMDhBRERG
RjcwMDEzNkFDMSAvKiBFbGVtZW50LmlkbCAqLywKLQkJCQlBODFENTgyQjA4QURERkY3MDAxMzZB
QzEgLyogRW50aXR5LmlkbCAqLywKLQkJCQlBODFENTgyQzA4QURERkY3MDAxMzZBQzEgLyogRW50
aXR5UmVmZXJlbmNlLmlkbCAqLywKLQkJCQlBODFENTgyRTA4QURERkY3MDAxMzZBQzEgLyogTmFt
ZWROb2RlTWFwLmlkbCAqLywKLQkJCQlBODFENTgzMDA4QURERkY3MDAxMzZBQzEgLyogTm9kZS5p
ZGwgKi8sCi0JCQkJQTgxRDU4MzEwOEFEREZGNzAwMTM2QUMxIC8qIE5vZGVMaXN0LmlkbCAqLywK
LQkJCQlBODFENTgzMjA4QURERkY3MDAxMzZBQzEgLyogTm90YXRpb24uaWRsICovLAotCQkJCUE4
MUQ1ODMzMDhBRERGRjcwMDEzNkFDMSAvKiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaWRsICovLAot
CQkJCUE4MUQ1ODM0MDhBRERGRjcwMDEzNkFDMSAvKiBUZXh0LmlkbCAqLywKLQkJCQlBODFENTgz
NTA4QURERkY3MDAxMzZBQzEgLyogVHlwZUluZm8uaWRsICovLAotCQkJKTsKLQkJCXBhdGggPSBj
b3JlOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKLQkJQTgxRDU4MzcwOEFEREZG
NzAwMTM2QUMxIC8qIGNzcyAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4g
PSAoCi0JCQkJQTgxRDU4MzgwOEFEREZGNzAwMTM2QUMxIC8qIENvdW50ZXIuaWRsICovLAotCQkJ
CUE4MUQ1ODNBMDhBRERGRjcwMDEzNkFDMSAvKiBDU1NDaGFyc2V0UnVsZS5pZGwgKi8sCi0JCQkJ
QTgxRDU4M0IwOEFEREZGNzAwMTM2QUMxIC8qIENTU0ZvbnRGYWNlUnVsZS5pZGwgKi8sCi0JCQkJ
QTgxRDU4M0MwOEFEREZGNzAwMTM2QUMxIC8qIENTU0ltcG9ydFJ1bGUuaWRsICovLAotCQkJCUE4
MUQ1ODNEMDhBRERGRjcwMDEzNkFDMSAvKiBDU1NNZWRpYVJ1bGUuaWRsICovLAotCQkJCUE4MUQ1
ODNFMDhBRERGRjcwMDEzNkFDMSAvKiBDU1NQYWdlUnVsZS5pZGwgKi8sCi0JCQkJQTgxRDU4M0Yw
OEFEREZGNzAwMTM2QUMxIC8qIENTU1ByaW1pdGl2ZVZhbHVlLmlkbCAqLywKLQkJCQlBODFENTg0
MDA4QURERkY3MDAxMzZBQzEgLyogQ1NTUnVsZS5pZGwgKi8sCi0JCQkJQTgxRDU4NDEwOEFEREZG
NzAwMTM2QUMxIC8qIENTU1J1bGVMaXN0LmlkbCAqLywKLQkJCQlBODFENTg0MjA4QURERkY3MDAx
MzZBQzEgLyogQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwgKi8sCi0JCQkJQTgxRDU4NDMwOEFEREZG
NzAwMTM2QUMxIC8qIENTU1N0eWxlUnVsZS5pZGwgKi8sCi0JCQkJQTgxRDU4NDQwOEFEREZGNzAw
MTM2QUMxIC8qIENTU1N0eWxlU2hlZXQuaWRsICovLAotCQkJCUE4MUQ1ODQ1MDhBRERGRjcwMDEz
NkFDMSAvKiBDU1NVbmtub3duUnVsZS5pZGwgKi8sCi0JCQkJQTgxRDU4NDYwOEFEREZGNzAwMTM2
QUMxIC8qIENTU1ZhbHVlLmlkbCAqLywKLQkJCQlBODFENTg0NzA4QURERkY3MDAxMzZBQzEgLyog
Q1NTVmFsdWVMaXN0LmlkbCAqLywKLQkJCQlBODFENTg0ODA4QURERkY3MDAxMzZBQzEgLyogRG9j
dW1lbnRDU1MuaWRsICovLAotCQkJCUE4MUQ1ODRCMDhBRERGRjcwMDEzNkFDMSAvKiBSZWN0Lmlk
bCAqLywKLQkJCQlBODFENTg0QzA4QURERkY3MDAxMzZBQzEgLyogUkdCQ29sb3IuaWRsICovLAot
CQkJKTsKLQkJCXBhdGggPSBjc3M7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9Owot
CQlBODFENTg0RTA4QURERkY3MDAxMzZBQzEgLyogZXZlbnRzICovID0gewotCQkJaXNhID0gUEJY
R3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQlBODFENTg0RjA4QURERkY3MDAxMzZBQzEgLyog
RG9jdW1lbnRFdmVudC5pZGwgKi8sCi0JCQkJQTgxRDU4NTAwOEFEREZGNzAwMTM2QUMxIC8qIEV2
ZW50LmlkbCAqLywKLQkJCQlBODFENTg1MTA4QURERkY3MDAxMzZBQzEgLyogRXZlbnRFeGNlcHRp
b24uaWRsICovLAotCQkJCUE4MUQ1ODUyMDhBRERGRjcwMDEzNkFDMSAvKiBFdmVudExpc3RlbmVy
LmlkbCAqLywKLQkJCQlBODFENTg1MzA4QURERkY3MDAxMzZBQzEgLyogRXZlbnRUYXJnZXQuaWRs
ICovLAotCQkJCUE4MUQ1ODU1MDhBRERGRjcwMDEzNkFDMSAvKiBNb3VzZUV2ZW50LmlkbCAqLywK
LQkJCQlBODFENTg1NjA4QURERkY3MDAxMzZBQzEgLyogTXV0YXRpb25FdmVudC5pZGwgKi8sCi0J
CQkJQTgxRDU4NTcwOEFEREZGNzAwMTM2QUMxIC8qIFVJRXZlbnQuaWRsICovLAotCQkJKTsKLQkJ
CXBhdGggPSBldmVudHM7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwotCQlBODFE
NTg1ODA4QURERkY3MDAxMzZBQzEgLyogcmFuZ2UgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsK
LQkJCWNoaWxkcmVuID0gKAotCQkJCUE4MUQ1ODU5MDhBRERGRjcwMDEzNkFDMSAvKiBEb2N1bWVu
dFJhbmdlLmlkbCAqLywKLQkJCQlBODFENTg1QjA4QURERkY3MDAxMzZBQzEgLyogUmFuZ2UuaWRs
ICovLAotCQkJCUE4MUQ1ODVDMDhBRERGRjcwMDEzNkFDMSAvKiBSYW5nZUV4Y2VwdGlvbi5pZGwg
Ki8sCi0JCQkpOwotCQkJcGF0aCA9IHJhbmdlOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
LQkJfTsKLQkJQTgxRDU4NUQwOEFEREZGNzAwMTM2QUMxIC8qIHN0eWxlc2hlZXRzICovID0gewot
CQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQlBODFENTg1RTA4QURERkY3
MDAxMzZBQzEgLyogRG9jdW1lbnRTdHlsZS5pZGwgKi8sCi0JCQkJQTgxRDU4NjAwOEFEREZGNzAw
MTM2QUMxIC8qIExpbmtTdHlsZS5pZGwgKi8sCi0JCQkJQTgxRDU4NjEwOEFEREZGNzAwMTM2QUMx
IC8qIE1lZGlhTGlzdC5pZGwgKi8sCi0JCQkJQTgxRDU4NjIwOEFEREZGNzAwMTM2QUMxIC8qIFN0
eWxlU2hlZXQuaWRsICovLAotCQkJCUE4MUQ1ODYzMDhBRERGRjcwMDEzNkFDMSAvKiBTdHlsZVNo
ZWV0TGlzdC5pZGwgKi8sCi0JCQkpOwotCQkJcGF0aCA9IHN0eWxlc2hlZXRzOwotCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKLQkJQTgxRDU4NjQwOEFEREZGNzAwMTM2QUMxIC8qIHRy
YXZlcnNhbCAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJ
QTgxRDU4NjUwOEFEREZGNzAwMTM2QUMxIC8qIERvY3VtZW50VHJhdmVyc2FsLmlkbCAqLywKLQkJ
CQlBODFENTg2NzA4QURERkY4MDAxMzZBQzEgLyogTm9kZUZpbHRlci5pZGwgKi8sCi0JCQkJQTgx
RDU4NjgwOEFEREZGODAwMTM2QUMxIC8qIE5vZGVJdGVyYXRvci5pZGwgKi8sCi0JCQkJQTgxRDU4
NjkwOEFEREZGODAwMTM2QUMxIC8qIFRyZWVXYWxrZXIuaWRsICovLAotCQkJKTsKLQkJCXBhdGgg
PSB0cmF2ZXJzYWw7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwotCQlBODFENTg2
QTA4QURERkY4MDAxMzZBQzEgLyogdmlld3MgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJ
CWNoaWxkcmVuID0gKAotCQkJCUE4MUQ1ODZCMDhBRERGRjgwMDEzNkFDMSAvKiBBYnN0cmFjdFZp
ZXcuaWRsICovLAotCQkJCUE4MUQ1ODZDMDhBRERGRjgwMDEzNkFDMSAvKiBEb2N1bWVudFZpZXcu
aWRsICovLAotCQkJKTsKLQkJCXBhdGggPSB2aWV3czsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7Ci0JCX07Ci0JCUE4MUQ1ODZFMDhBRERGRjgwMDEzNkFDMSAvKiB4cGF0aCAqLyA9IHsKLQkJ
CWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJQTgxRDU4NzAwOEFEREZGODAw
MTM2QUMxIC8qIFhQYXRoRXZhbHVhdG9yLmlkbCAqLywKLQkJCQlBODFENTg3MTA4QURERkY4MDAx
MzZBQzEgLyogWFBhdGhFeGNlcHRpb24uaWRsICovLAotCQkJCUE4MUQ1ODcyMDhBRERGRjgwMDEz
NkFDMSAvKiBYUGF0aEV4cHJlc3Npb24uaWRsICovLAotCQkJCUE4MUQ1ODczMDhBRERGRjgwMDEz
NkFDMSAvKiBYUGF0aE5hbWVzcGFjZS5pZGwgKi8sCi0JCQkJQTgxRDU4NzQwOEFEREZGODAwMTM2
QUMxIC8qIFhQYXRoTlNSZXNvbHZlci5pZGwgKi8sCi0JCQkJQTgxRDU4NzUwOEFEREZGODAwMTM2
QUMxIC8qIFhQYXRoUmVzdWx0LmlkbCAqLywKLQkJCSk7Ci0JCQlwYXRoID0geHBhdGg7Ci0JCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwotCQlBODFENTg3NjA4QURERkY4MDAxMzZBQzEg
LyogeHBvaW50ZXIgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAot
CQkJCUE4MUQ1ODc4MDhBRERGRjgwMDEzNkFDMSAvKiBYUG9pbnRlckV2YWx1YXRvci5pZGwgKi8s
Ci0JCQkJQTgxRDU4NzkwOEFEREZGODAwMTM2QUMxIC8qIFhQb2ludGVyRXhjZXB0aW9uLmlkbCAq
LywKLQkJCQlBODFENTg3QTA4QURERkY4MDAxMzZBQzEgLyogWFBvaW50ZXJFeHByZXNzaW9uLmlk
bCAqLywKLQkJCQlBODFENTg3QjA4QURERkY4MDAxMzZBQzEgLyogWFBvaW50ZXJSZXN1bHQuaWRs
ICovLAotCQkJKTsKLQkJCXBhdGggPSB4cG9pbnRlcjsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7Ci0JCX07Ci0JCUE4MUQ1QTZEMDhBREY3MDQwMDEzNkFDMSAvKiBpbXBsICovID0gewotCQkJ
aXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQlBODFENUE2RjA4QURGNzA0MDAx
MzZBQzEgLyogZXhwcmVzc2lvbi5jcHAgKi8sCi0JCQkJQTgxRDVBNzAwOEFERjcwNDAwMTM2QUMx
IC8qIGV4cHJlc3Npb24uaCAqLywKLQkJCQlBODFENUE3MTA4QURGNzA0MDAxMzZBQzEgLyogZnVu
Y3Rpb25zLmNwcCAqLywKLQkJCQlBODFENUE3MjA4QURGNzA0MDAxMzZBQzEgLyogZnVuY3Rpb25z
LmggKi8sCi0JCQkJQTgxRDVBNzQwOEFERjcwNDAwMTM2QUMxIC8qIHBhcnNlZHN0YXRlbWVudC5j
cHAgKi8sCi0JCQkJQTgxRDVBNzUwOEFERjcwNDAwMTM2QUMxIC8qIHBhcnNlZHN0YXRlbWVudC5o
ICovLAotCQkJCUE4MUQ1QTc4MDhBREY3MDQwMDEzNkFDMSAvKiBwYXRoLmNwcCAqLywKLQkJCQlB
ODFENUE3OTA4QURGNzA0MDAxMzZBQzEgLyogcGF0aC5oICovLAotCQkJCUE4MUQ1QTdBMDhBREY3
MDQwMDEzNkFDMSAvKiBwcmVkaWNhdGUuY3BwICovLAotCQkJCUE4MUQ1QTdCMDhBREY3MDQwMDEz
NkFDMSAvKiBwcmVkaWNhdGUuaCAqLywKLQkJCQlBODFENUE3QzA4QURGNzA0MDAxMzZBQzEgLyog
c3RlcC5jcHAgKi8sCi0JCQkJQTgxRDVBN0QwOEFERjcwNDAwMTM2QUMxIC8qIHN0ZXAuaCAqLywK
LQkJCQlBODFENUE3RTA4QURGNzA0MDAxMzZBQzEgLyogdG9rZW5pemVyLmNwcCAqLywKLQkJCQlB
ODFENUE3RjA4QURGNzA0MDAxMzZBQzEgLyogdG9rZW5pemVyLmggKi8sCi0JCQkJQTgxRDVBODEw
OEFERjcwNDAwMTM2QUMxIC8qIHV0aWwuY3BwICovLAotCQkJCUE4MUQ1QTgyMDhBREY3MDQwMDEz
NkFDMSAvKiB1dGlsLmggKi8sCi0JCQkJQTgzODU0MzEwOEIwQTAwQjAwMEFGNTgwIC8qIHZhcmlh
YmxlcmVmZXJlbmNlLmggKi8sCi0JCQkJQTgzODU0MzIwOEIwQTAwQjAwMEFGNTgwIC8qIHZhcmlh
YmxlcmVmZXJlbmNlLmNwcCAqLywKLQkJCQlBODU2RTlGODA4QjQ2MDhGMDA0MkUzMDMgLyogeHBh
dGgueSAqLywKLQkJCSk7Ci0JCQlwYXRoID0gaW1wbDsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7Ci0JCX07Ci0JCUE4QkMwQkU0MDhEMTlGMTkwMDM3OTkxOCAvKiBqcyAqLyA9IHsKLQkJCWlz
YSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJQThCQzBCRTUwOEQxOUYxOTAwMzc5
OTE4IC8qIGNvcmUgKi8sCi0JCQkJQThCQzBDMUEwOEQxOUYxOTAwMzc5OTE4IC8qIGNzcyAqLywK
LQkJCQlBOEJDMEMzRjA4RDE5RjE5MDAzNzk5MTggLyogZXZlbnRzICovLAotCQkJCUE4QkMwREEz
MDhENDIzMzgwMDM3OTkxOCAvKiBscyAqLywKLQkJCQlBOEJDMEM1MDA4RDE5RjE5MDAzNzk5MTgg
LyogcmFuZ2UgKi8sCi0JCQkJQThCQzBDNTcwOEQxOUYxQTAwMzc5OTE4IC8qIHN0eWxlc2hlZXRz
ICovLAotCQkJCUE4QkMwQzYyMDhEMTlGMUEwMDM3OTkxOCAvKiB0cmF2ZXJzYWwgKi8sCi0JCQkJ
QThCQzBDNkIwOEQxOUYxQTAwMzc5OTE4IC8qIHZpZXdzICovLAotCQkJCUE4QkMwQzcwMDhEMTlG
MUEwMDM3OTkxOCAvKiB4cGF0aCAqLywKLQkJCQlBOEJDMEM3RDA4RDE5RjFBMDAzNzk5MTggLyog
eHBvaW50ZXIgKi8sCi0JCQkpOwotCQkJcGF0aCA9IGpzOwotCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKLQkJfTsKLQkJQThCQzBCRTUwOEQxOUYxOTAwMzc5OTE4IC8qIGNvcmUgKi8gPSB7Ci0J
CQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCUE4QkMwQkU2MDhEMTlGMTkw
MDM3OTkxOCAvKiBBdHRyV3JhcHBlci5jcHAgKi8sCi0JCQkJQThCQzBCRTcwOEQxOUYxOTAwMzc5
OTE4IC8qIEF0dHJXcmFwcGVyLmggKi8sCi0JCQkJQThCQzBCRTgwOEQxOUYxOTAwMzc5OTE4IC8q
IENEQVRBU2VjdGlvbldyYXBwZXIuY3BwICovLAotCQkJCUE4QkMwQkU5MDhEMTlGMTkwMDM3OTkx
OCAvKiBDREFUQVNlY3Rpb25XcmFwcGVyLmggKi8sCi0JCQkJQThCQzBCRUEwOEQxOUYxOTAwMzc5
OTE4IC8qIENoYXJhY3RlckRhdGFXcmFwcGVyLmNwcCAqLywKLQkJCQlBOEJDMEJFQjA4RDE5RjE5
MDAzNzk5MTggLyogQ2hhcmFjdGVyRGF0YVdyYXBwZXIuaCAqLywKLQkJCQlBOEJDMEJFQzA4RDE5
RjE5MDAzNzk5MTggLyogQ29tbWVudFdyYXBwZXIuY3BwICovLAotCQkJCUE4QkMwQkVEMDhEMTlG
MTkwMDM3OTkxOCAvKiBDb21tZW50V3JhcHBlci5oICovLAotCQkJCUE4QkMwQkVFMDhEMTlGMTkw
MDM3OTkxOCAvKiBEb2N1bWVudEZyYWdtZW50V3JhcHBlci5jcHAgKi8sCi0JCQkJQThCQzBCRUYw
OEQxOUYxOTAwMzc5OTE4IC8qIERvY3VtZW50RnJhZ21lbnRXcmFwcGVyLmggKi8sCi0JCQkJQThC
QzBCRjAwOEQxOUYxOTAwMzc5OTE4IC8qIERvY3VtZW50VHlwZVdyYXBwZXIuY3BwICovLAotCQkJ
CUE4QkMwQkYxMDhEMTlGMTkwMDM3OTkxOCAvKiBEb2N1bWVudFR5cGVXcmFwcGVyLmggKi8sCi0J
CQkJQThCQzBCRjIwOEQxOUYxOTAwMzc5OTE4IC8qIERvY3VtZW50V3JhcHBlci5jcHAgKi8sCi0J
CQkJQThCQzBCRjMwOEQxOUYxOTAwMzc5OTE4IC8qIERvY3VtZW50V3JhcHBlci5oICovLAotCQkJ
CUE4QkMwQkY0MDhEMTlGMTkwMDM3OTkxOCAvKiBET01Db25maWd1cmF0aW9uV3JhcHBlci5jcHAg
Ki8sCi0JCQkJQThCQzBCRjUwOEQxOUYxOTAwMzc5OTE4IC8qIERPTUNvbmZpZ3VyYXRpb25XcmFw
cGVyLmggKi8sCi0JCQkJQThCQzBCRjYwOEQxOUYxOTAwMzc5OTE4IC8qIERPTUVycm9ySGFuZGxl
cldyYXBwZXIuY3BwICovLAotCQkJCUE4QkMwQkY3MDhEMTlGMTkwMDM3OTkxOCAvKiBET01FcnJv
ckhhbmRsZXJXcmFwcGVyLmggKi8sCi0JCQkJQThCQzBCRjgwOEQxOUYxOTAwMzc5OTE4IC8qIERP
TUVycm9yV3JhcHBlci5jcHAgKi8sCi0JCQkJQThCQzBCRjkwOEQxOUYxOTAwMzc5OTE4IC8qIERP
TUVycm9yV3JhcHBlci5oICovLAotCQkJCUE4QkMwQkZBMDhEMTlGMTkwMDM3OTkxOCAvKiBET01F
eGNlcHRpb25XcmFwcGVyLmNwcCAqLywKLQkJCQlBOEJDMEJGQjA4RDE5RjE5MDAzNzk5MTggLyog
RE9NRXhjZXB0aW9uV3JhcHBlci5oICovLAotCQkJCUE4QkMwQkZDMDhEMTlGMTkwMDM3OTkxOCAv
KiBET01JbXBsZW1lbnRhdGlvbldyYXBwZXIuY3BwICovLAotCQkJCUE4QkMwQkZEMDhEMTlGMTkw
MDM3OTkxOCAvKiBET01JbXBsZW1lbnRhdGlvbldyYXBwZXIuaCAqLywKLQkJCQlBOEJDMEJGRTA4
RDE5RjE5MDAzNzk5MTggLyogRE9NTG9jYXRvcldyYXBwZXIuY3BwICovLAotCQkJCUE4QkMwQkZG
MDhEMTlGMTkwMDM3OTkxOCAvKiBET01Mb2NhdG9yV3JhcHBlci5oICovLAotCQkJCUE4QkMwQzAw
MDhEMTlGMTkwMDM3OTkxOCAvKiBET01PYmplY3RXcmFwcGVyLmNwcCAqLywKLQkJCQlBOEJDMEMw
MTA4RDE5RjE5MDAzNzk5MTggLyogRE9NT2JqZWN0V3JhcHBlci5oICovLAotCQkJCUE4QkMwQzAy
MDhEMTlGMTkwMDM3OTkxOCAvKiBET01TdHJpbmdMaXN0V3JhcHBlci5jcHAgKi8sCi0JCQkJQThC
QzBDMDMwOEQxOUYxOTAwMzc5OTE4IC8qIERPTVN0cmluZ0xpc3RXcmFwcGVyLmggKi8sCi0JCQkJ
QThCQzBDMDQwOEQxOUYxOTAwMzc5OTE4IC8qIERPTVVzZXJEYXRhV3JhcHBlci5jcHAgKi8sCi0J
CQkJQThCQzBDMDUwOEQxOUYxOTAwMzc5OTE4IC8qIERPTVVzZXJEYXRhV3JhcHBlci5oICovLAot
CQkJCUE4QkMwQzA2MDhEMTlGMTkwMDM3OTkxOCAvKiBFbGVtZW50V3JhcHBlci5jcHAgKi8sCi0J
CQkJQThCQzBDMDcwOEQxOUYxOTAwMzc5OTE4IC8qIEVsZW1lbnRXcmFwcGVyLmggKi8sCi0JCQkJ
QThCQzBDMDgwOEQxOUYxOTAwMzc5OTE4IC8qIEVudGl0eVJlZmVyZW5jZVdyYXBwZXIuY3BwICov
LAotCQkJCUE4QkMwQzA5MDhEMTlGMTkwMDM3OTkxOCAvKiBFbnRpdHlSZWZlcmVuY2VXcmFwcGVy
LmggKi8sCi0JCQkJQThCQzBDMEEwOEQxOUYxOTAwMzc5OTE4IC8qIEVudGl0eVdyYXBwZXIuY3Bw
ICovLAotCQkJCUE4QkMwQzBCMDhEMTlGMTkwMDM3OTkxOCAvKiBFbnRpdHlXcmFwcGVyLmggKi8s
Ci0JCQkJQThCQzBDMEMwOEQxOUYxOTAwMzc5OTE4IC8qIE5hbWVkTm9kZU1hcFdyYXBwZXIuY3Bw
ICovLAotCQkJCUE4QkMwQzBEMDhEMTlGMTkwMDM3OTkxOCAvKiBOYW1lZE5vZGVNYXBXcmFwcGVy
LmggKi8sCi0JCQkJQThCQzBDMEUwOEQxOUYxOTAwMzc5OTE4IC8qIE5vZGVMaXN0V3JhcHBlci5j
cHAgKi8sCi0JCQkJQThCQzBDMEYwOEQxOUYxOTAwMzc5OTE4IC8qIE5vZGVMaXN0V3JhcHBlci5o
ICovLAotCQkJCUE4QkMwQzEwMDhEMTlGMTkwMDM3OTkxOCAvKiBOb2RlV3JhcHBlci5jcHAgKi8s
Ci0JCQkJQThCQzBDMTEwOEQxOUYxOTAwMzc5OTE4IC8qIE5vZGVXcmFwcGVyLmggKi8sCi0JCQkJ
QThCQzBDMTIwOEQxOUYxOTAwMzc5OTE4IC8qIE5vdGF0aW9uV3JhcHBlci5jcHAgKi8sCi0JCQkJ
QThCQzBDMTMwOEQxOUYxOTAwMzc5OTE4IC8qIE5vdGF0aW9uV3JhcHBlci5oICovLAotCQkJCUE4
QkMwQzE0MDhEMTlGMTkwMDM3OTkxOCAvKiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25XcmFwcGVyLmNw
cCAqLywKLQkJCQlBOEJDMEMxNTA4RDE5RjE5MDAzNzk5MTggLyogUHJvY2Vzc2luZ0luc3RydWN0
aW9uV3JhcHBlci5oICovLAotCQkJCUE4QkMwQzE2MDhEMTlGMTkwMDM3OTkxOCAvKiBUZXh0V3Jh
cHBlci5jcHAgKi8sCi0JCQkJQThCQzBDMTcwOEQxOUYxOTAwMzc5OTE4IC8qIFRleHRXcmFwcGVy
LmggKi8sCi0JCQkJQThCQzBDMTgwOEQxOUYxOTAwMzc5OTE4IC8qIFR5cGVJbmZvV3JhcHBlci5j
cHAgKi8sCi0JCQkJQThCQzBDMTkwOEQxOUYxOTAwMzc5OTE4IC8qIFR5cGVJbmZvV3JhcHBlci5o
ICovLAotCQkJKTsKLQkJCXBhdGggPSBjb3JlOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
LQkJfTsKLQkJQThCQzBDMUEwOEQxOUYxOTAwMzc5OTE4IC8qIGNzcyAqLyA9IHsKLQkJCWlzYSA9
IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJQThCQzBDMUIwOEQxOUYxOTAwMzc5OTE4
IC8qIENvdW50ZXJXcmFwcGVyLmNwcCAqLywKLQkJCQlBOEJDMEMxQzA4RDE5RjE5MDAzNzk5MTgg
LyogQ291bnRlcldyYXBwZXIuaCAqLywKLQkJCQlBOEJDMEMxRDA4RDE5RjE5MDAzNzk5MTggLyog
Q1NTQ2hhcnNldFJ1bGVXcmFwcGVyLmNwcCAqLywKLQkJCQlBOEJDMEMxRTA4RDE5RjE5MDAzNzk5
MTggLyogQ1NTQ2hhcnNldFJ1bGVXcmFwcGVyLmggKi8sCi0JCQkJQThCQzBDMUYwOEQxOUYxOTAw
Mzc5OTE4IC8qIENTU0ZvbnRGYWNlUnVsZVdyYXBwZXIuY3BwICovLAotCQkJCUE4QkMwQzIwMDhE
MTlGMTkwMDM3OTkxOCAvKiBDU1NGb250RmFjZVJ1bGVXcmFwcGVyLmggKi8sCi0JCQkJQThCQzBD
MjEwOEQxOUYxOTAwMzc5OTE4IC8qIENTU0ltcG9ydFJ1bGVXcmFwcGVyLmNwcCAqLywKLQkJCQlB
OEJDMEMyMjA4RDE5RjE5MDAzNzk5MTggLyogQ1NTSW1wb3J0UnVsZVdyYXBwZXIuaCAqLywKLQkJ
CQlBOEJDMEMyMzA4RDE5RjE5MDAzNzk5MTggLyogQ1NTTWVkaWFSdWxlV3JhcHBlci5jcHAgKi8s
Ci0JCQkJQThCQzBDMjQwOEQxOUYxOTAwMzc5OTE4IC8qIENTU01lZGlhUnVsZVdyYXBwZXIuaCAq
LywKLQkJCQlBOEJDMEMyNTA4RDE5RjE5MDAzNzk5MTggLyogQ1NTUGFnZVJ1bGVXcmFwcGVyLmNw
cCAqLywKLQkJCQlBOEJDMEMyNjA4RDE5RjE5MDAzNzk5MTggLyogQ1NTUGFnZVJ1bGVXcmFwcGVy
LmggKi8sCi0JCQkJQThCQzBDMjcwOEQxOUYxOTAwMzc5OTE4IC8qIENTU1ByaW1pdGl2ZVZhbHVl
V3JhcHBlci5jcHAgKi8sCi0JCQkJQThCQzBDMjgwOEQxOUYxOTAwMzc5OTE4IC8qIENTU1ByaW1p
dGl2ZVZhbHVlV3JhcHBlci5oICovLAotCQkJCUE4QkMwQzI5MDhEMTlGMTkwMDM3OTkxOCAvKiBD
U1NSdWxlTGlzdFdyYXBwZXIuY3BwICovLAotCQkJCUE4QkMwQzJBMDhEMTlGMTkwMDM3OTkxOCAv
KiBDU1NSdWxlTGlzdFdyYXBwZXIuaCAqLywKLQkJCQlBOEJDMEMyQjA4RDE5RjE5MDAzNzk5MTgg
LyogQ1NTUnVsZVdyYXBwZXIuY3BwICovLAotCQkJCUE4QkMwQzJDMDhEMTlGMTkwMDM3OTkxOCAv
KiBDU1NSdWxlV3JhcHBlci5oICovLAotCQkJCUE4QkMwQzJEMDhEMTlGMTkwMDM3OTkxOCAvKiBD
U1NTdHlsZURlY2xhcmF0aW9uV3JhcHBlci5jcHAgKi8sCi0JCQkJQThCQzBDMkUwOEQxOUYxOTAw
Mzc5OTE4IC8qIENTU1N0eWxlRGVjbGFyYXRpb25XcmFwcGVyLmggKi8sCi0JCQkJQThCQzBDMkYw
OEQxOUYxOTAwMzc5OTE4IC8qIENTU1N0eWxlUnVsZVdyYXBwZXIuY3BwICovLAotCQkJCUE4QkMw
QzMwMDhEMTlGMTkwMDM3OTkxOCAvKiBDU1NTdHlsZVJ1bGVXcmFwcGVyLmggKi8sCi0JCQkJQThC
QzBDMzEwOEQxOUYxOTAwMzc5OTE4IC8qIENTU1N0eWxlU2hlZXRXcmFwcGVyLmNwcCAqLywKLQkJ
CQlBOEJDMEMzMjA4RDE5RjE5MDAzNzk5MTggLyogQ1NTU3R5bGVTaGVldFdyYXBwZXIuaCAqLywK
LQkJCQlBOEJDMEMzMzA4RDE5RjE5MDAzNzk5MTggLyogQ1NTVW5rbm93blJ1bGVXcmFwcGVyLmNw
cCAqLywKLQkJCQlBOEJDMEMzNDA4RDE5RjE5MDAzNzk5MTggLyogQ1NTVW5rbm93blJ1bGVXcmFw
cGVyLmggKi8sCi0JCQkJQThCQzBDMzUwOEQxOUYxOTAwMzc5OTE4IC8qIENTU1ZhbHVlTGlzdFdy
YXBwZXIuY3BwICovLAotCQkJCUE4QkMwQzM2MDhEMTlGMTkwMDM3OTkxOCAvKiBDU1NWYWx1ZUxp
c3RXcmFwcGVyLmggKi8sCi0JCQkJQThCQzBDMzcwOEQxOUYxOTAwMzc5OTE4IC8qIENTU1ZhbHVl
V3JhcHBlci5jcHAgKi8sCi0JCQkJQThCQzBDMzgwOEQxOUYxOTAwMzc5OTE4IC8qIENTU1ZhbHVl
V3JhcHBlci5oICovLAotCQkJCUE4QkMwQzM5MDhEMTlGMTkwMDM3OTkxOCAvKiBEb2N1bWVudENT
U1dyYXBwZXIuY3BwICovLAotCQkJCUE4QkMwQzNBMDhEMTlGMTkwMDM3OTkxOCAvKiBEb2N1bWVu
dENTU1dyYXBwZXIuaCAqLywKLQkJCQlBOEJDMEMzQjA4RDE5RjE5MDAzNzk5MTggLyogUmVjdFdy
YXBwZXIuY3BwICovLAotCQkJCUE4QkMwQzNDMDhEMTlGMTkwMDM3OTkxOCAvKiBSZWN0V3JhcHBl
ci5oICovLAotCQkJCUE4QkMwQzNEMDhEMTlGMTkwMDM3OTkxOCAvKiBSR0JDb2xvcldyYXBwZXIu
Y3BwICovLAotCQkJCUE4QkMwQzNFMDhEMTlGMTkwMDM3OTkxOCAvKiBSR0JDb2xvcldyYXBwZXIu
aCAqLywKLQkJCSk7Ci0JCQlwYXRoID0gY3NzOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
LQkJfTsKLQkJQThCQzBDM0YwOEQxOUYxOTAwMzc5OTE4IC8qIGV2ZW50cyAqLyA9IHsKLQkJCWlz
YSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJQThCQzBDNDAwOEQxOUYxOTAwMzc5
OTE4IC8qIERvY3VtZW50RXZlbnRXcmFwcGVyLmNwcCAqLywKLQkJCQlBOEJDMEM0MTA4RDE5RjE5
MDAzNzk5MTggLyogRG9jdW1lbnRFdmVudFdyYXBwZXIuaCAqLywKLQkJCQlBOEJDMEM0MjA4RDE5
RjE5MDAzNzk5MTggLyogRXZlbnRFeGNlcHRpb25XcmFwcGVyLmNwcCAqLywKLQkJCQlBOEJDMEM0
MzA4RDE5RjE5MDAzNzk5MTggLyogRXZlbnRFeGNlcHRpb25XcmFwcGVyLmggKi8sCi0JCQkJQThC
QzBDNDQwOEQxOUYxOTAwMzc5OTE4IC8qIEV2ZW50TGlzdGVuZXJXcmFwcGVyLmNwcCAqLywKLQkJ
CQlBOEJDMEM0NTA4RDE5RjE5MDAzNzk5MTggLyogRXZlbnRMaXN0ZW5lcldyYXBwZXIuaCAqLywK
LQkJCQlBOEJDMEM0NjA4RDE5RjE5MDAzNzk5MTggLyogRXZlbnRUYXJnZXRXcmFwcGVyLmNwcCAq
LywKLQkJCQlBOEJDMEM0NzA4RDE5RjE5MDAzNzk5MTggLyogRXZlbnRUYXJnZXRXcmFwcGVyLmgg
Ki8sCi0JCQkJQThCQzBDNDgwOEQxOUYxOTAwMzc5OTE4IC8qIEV2ZW50V3JhcHBlci5jcHAgKi8s
Ci0JCQkJQThCQzBDNDkwOEQxOUYxOTAwMzc5OTE4IC8qIEV2ZW50V3JhcHBlci5oICovLAotCQkJ
CUE4QkMwQzRBMDhEMTlGMTkwMDM3OTkxOCAvKiBNb3VzZUV2ZW50V3JhcHBlci5jcHAgKi8sCi0J
CQkJQThCQzBDNEIwOEQxOUYxOTAwMzc5OTE4IC8qIE1vdXNlRXZlbnRXcmFwcGVyLmggKi8sCi0J
CQkJQThCQzBDNEMwOEQxOUYxOTAwMzc5OTE4IC8qIE11dGF0aW9uRXZlbnRXcmFwcGVyLmNwcCAq
LywKLQkJCQlBOEJDMEM0RDA4RDE5RjE5MDAzNzk5MTggLyogTXV0YXRpb25FdmVudFdyYXBwZXIu
aCAqLywKLQkJCQlBOEJDMEM0RTA4RDE5RjE5MDAzNzk5MTggLyogVUlFdmVudFdyYXBwZXIuY3Bw
ICovLAotCQkJCUE4QkMwQzRGMDhEMTlGMTkwMDM3OTkxOCAvKiBVSUV2ZW50V3JhcHBlci5oICov
LAotCQkJKTsKLQkJCXBhdGggPSBldmVudHM7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwot
CQl9OwotCQlBOEJDMEM1MDA4RDE5RjE5MDAzNzk5MTggLyogcmFuZ2UgKi8gPSB7Ci0JCQlpc2Eg
PSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCUE4QkMwQzUxMDhEMTlGMTkwMDM3OTkx
OCAvKiBEb2N1bWVudFJhbmdlV3JhcHBlci5jcHAgKi8sCi0JCQkJQThCQzBDNTIwOEQxOUYxOTAw
Mzc5OTE4IC8qIERvY3VtZW50UmFuZ2VXcmFwcGVyLmggKi8sCi0JCQkJQThCQzBDNTMwOEQxOUYx
OTAwMzc5OTE4IC8qIFJhbmdlRXhjZXB0aW9uV3JhcHBlci5jcHAgKi8sCi0JCQkJQThCQzBDNTQw
OEQxOUYxQTAwMzc5OTE4IC8qIFJhbmdlRXhjZXB0aW9uV3JhcHBlci5oICovLAotCQkJCUE4QkMw
QzU1MDhEMTlGMUEwMDM3OTkxOCAvKiBSYW5nZVdyYXBwZXIuY3BwICovLAotCQkJCUE4QkMwQzU2
MDhEMTlGMUEwMDM3OTkxOCAvKiBSYW5nZVdyYXBwZXIuaCAqLywKLQkJCSk7Ci0JCQlwYXRoID0g
cmFuZ2U7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwotCQlBOEJDMEM1NzA4RDE5
RjFBMDAzNzk5MTggLyogc3R5bGVzaGVldHMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJ
CWNoaWxkcmVuID0gKAotCQkJCUE4QkMwQzU4MDhEMTlGMUEwMDM3OTkxOCAvKiBEb2N1bWVudFN0
eWxlV3JhcHBlci5jcHAgKi8sCi0JCQkJQThCQzBDNTkwOEQxOUYxQTAwMzc5OTE4IC8qIERvY3Vt
ZW50U3R5bGVXcmFwcGVyLmggKi8sCi0JCQkJQThCQzBDNUEwOEQxOUYxQTAwMzc5OTE4IC8qIExp
bmtTdHlsZVdyYXBwZXIuY3BwICovLAotCQkJCUE4QkMwQzVCMDhEMTlGMUEwMDM3OTkxOCAvKiBM
aW5rU3R5bGVXcmFwcGVyLmggKi8sCi0JCQkJQThCQzBDNUMwOEQxOUYxQTAwMzc5OTE4IC8qIE1l
ZGlhTGlzdFdyYXBwZXIuY3BwICovLAotCQkJCUE4QkMwQzVEMDhEMTlGMUEwMDM3OTkxOCAvKiBN
ZWRpYUxpc3RXcmFwcGVyLmggKi8sCi0JCQkJQThCQzBDNUUwOEQxOUYxQTAwMzc5OTE4IC8qIFN0
eWxlU2hlZXRMaXN0V3JhcHBlci5jcHAgKi8sCi0JCQkJQThCQzBDNUYwOEQxOUYxQTAwMzc5OTE4
IC8qIFN0eWxlU2hlZXRMaXN0V3JhcHBlci5oICovLAotCQkJCUE4QkMwQzYwMDhEMTlGMUEwMDM3
OTkxOCAvKiBTdHlsZVNoZWV0V3JhcHBlci5jcHAgKi8sCi0JCQkJQThCQzBDNjEwOEQxOUYxQTAw
Mzc5OTE4IC8qIFN0eWxlU2hlZXRXcmFwcGVyLmggKi8sCi0JCQkpOwotCQkJcGF0aCA9IHN0eWxl
c2hlZXRzOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKLQkJQThCQzBDNjIwOEQx
OUYxQTAwMzc5OTE4IC8qIHRyYXZlcnNhbCAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJ
Y2hpbGRyZW4gPSAoCi0JCQkJQThCQzBDNjMwOEQxOUYxQTAwMzc5OTE4IC8qIERvY3VtZW50VHJh
dmVyc2FsV3JhcHBlci5jcHAgKi8sCi0JCQkJQThCQzBDNjQwOEQxOUYxQTAwMzc5OTE4IC8qIERv
Y3VtZW50VHJhdmVyc2FsV3JhcHBlci5oICovLAotCQkJCUE4QkMwQzY1MDhEMTlGMUEwMDM3OTkx
OCAvKiBOb2RlRmlsdGVyV3JhcHBlci5jcHAgKi8sCi0JCQkJQThCQzBDNjYwOEQxOUYxQTAwMzc5
OTE4IC8qIE5vZGVGaWx0ZXJXcmFwcGVyLmggKi8sCi0JCQkJQThCQzBDNjcwOEQxOUYxQTAwMzc5
OTE4IC8qIE5vZGVJdGVyYXRvcldyYXBwZXIuY3BwICovLAotCQkJCUE4QkMwQzY4MDhEMTlGMUEw
MDM3OTkxOCAvKiBOb2RlSXRlcmF0b3JXcmFwcGVyLmggKi8sCi0JCQkJQThCQzBDNjkwOEQxOUYx
QTAwMzc5OTE4IC8qIFRyZWVXYWxrZXJXcmFwcGVyLmNwcCAqLywKLQkJCQlBOEJDMEM2QTA4RDE5
RjFBMDAzNzk5MTggLyogVHJlZVdhbGtlcldyYXBwZXIuaCAqLywKLQkJCSk7Ci0JCQlwYXRoID0g
dHJhdmVyc2FsOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKLQkJQThCQzBDNkIw
OEQxOUYxQTAwMzc5OTE4IC8qIHZpZXdzICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQlj
aGlsZHJlbiA9ICgKLQkJCQlBOEJDMEM2QzA4RDE5RjFBMDAzNzk5MTggLyogQWJzdHJhY3RWaWV3
V3JhcHBlci5jcHAgKi8sCi0JCQkJQThCQzBDNkQwOEQxOUYxQTAwMzc5OTE4IC8qIEFic3RyYWN0
Vmlld1dyYXBwZXIuaCAqLywKLQkJCQlBOEJDMEM2RTA4RDE5RjFBMDAzNzk5MTggLyogRG9jdW1l
bnRWaWV3V3JhcHBlci5jcHAgKi8sCi0JCQkJQThCQzBDNkYwOEQxOUYxQTAwMzc5OTE4IC8qIERv
Y3VtZW50Vmlld1dyYXBwZXIuaCAqLywKLQkJCSk7Ci0JCQlwYXRoID0gdmlld3M7Ci0JCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOwotCQl9OwotCQlBOEJDMEM3MDA4RDE5RjFBMDAzNzk5MTggLyog
eHBhdGggKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCUE4
QkMwQzcxMDhEMTlGMUEwMDM3OTkxOCAvKiBYUGF0aEV2YWx1YXRvcldyYXBwZXIuY3BwICovLAot
CQkJCUE4QkMwQzcyMDhEMTlGMUEwMDM3OTkxOCAvKiBYUGF0aEV2YWx1YXRvcldyYXBwZXIuaCAq
LywKLQkJCQlBOEJDMEM3MzA4RDE5RjFBMDAzNzk5MTggLyogWFBhdGhFeGNlcHRpb25XcmFwcGVy
LmNwcCAqLywKLQkJCQlBOEJDMEM3NDA4RDE5RjFBMDAzNzk5MTggLyogWFBhdGhFeGNlcHRpb25X
cmFwcGVyLmggKi8sCi0JCQkJQThCQzBDNzUwOEQxOUYxQTAwMzc5OTE4IC8qIFhQYXRoRXhwcmVz
c2lvbldyYXBwZXIuY3BwICovLAotCQkJCUE4QkMwQzc2MDhEMTlGMUEwMDM3OTkxOCAvKiBYUGF0
aEV4cHJlc3Npb25XcmFwcGVyLmggKi8sCi0JCQkJQThCQzBDNzcwOEQxOUYxQTAwMzc5OTE4IC8q
IFhQYXRoTmFtZXNwYWNlV3JhcHBlci5jcHAgKi8sCi0JCQkJQThCQzBDNzgwOEQxOUYxQTAwMzc5
OTE4IC8qIFhQYXRoTmFtZXNwYWNlV3JhcHBlci5oICovLAotCQkJCUE4QkMwQzc5MDhEMTlGMUEw
MDM3OTkxOCAvKiBYUGF0aE5TUmVzb2x2ZXJXcmFwcGVyLmNwcCAqLywKLQkJCQlBOEJDMEM3QTA4
RDE5RjFBMDAzNzk5MTggLyogWFBhdGhOU1Jlc29sdmVyV3JhcHBlci5oICovLAotCQkJCUE4QkMw
QzdCMDhEMTlGMUEwMDM3OTkxOCAvKiBYUGF0aFJlc3VsdFdyYXBwZXIuY3BwICovLAotCQkJCUE4
QkMwQzdDMDhEMTlGMUEwMDM3OTkxOCAvKiBYUGF0aFJlc3VsdFdyYXBwZXIuaCAqLywKLQkJCSk7
Ci0JCQlwYXRoID0geHBhdGg7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwotCQlB
OEJDMEM3RDA4RDE5RjFBMDAzNzk5MTggLyogeHBvaW50ZXIgKi8gPSB7Ci0JCQlpc2EgPSBQQlhH
cm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCUE4QkMwQzdFMDhEMTlGMUEwMDM3OTkxOCAvKiBY
UG9pbnRlckV2YWx1YXRvcldyYXBwZXIuY3BwICovLAotCQkJCUE4QkMwQzdGMDhEMTlGMUEwMDM3
OTkxOCAvKiBYUG9pbnRlckV2YWx1YXRvcldyYXBwZXIuaCAqLywKLQkJCQlBOEJDMEM4MDA4RDE5
RjFBMDAzNzk5MTggLyogWFBvaW50ZXJFeGNlcHRpb25XcmFwcGVyLmNwcCAqLywKLQkJCQlBOEJD
MEM4MTA4RDE5RjFBMDAzNzk5MTggLyogWFBvaW50ZXJFeGNlcHRpb25XcmFwcGVyLmggKi8sCi0J
CQkJQThCQzBDODIwOEQxOUYxQTAwMzc5OTE4IC8qIFhQb2ludGVyRXhwcmVzc2lvbldyYXBwZXIu
Y3BwICovLAotCQkJCUE4QkMwQzgzMDhEMTlGMUEwMDM3OTkxOCAvKiBYUG9pbnRlckV4cHJlc3Np
b25XcmFwcGVyLmggKi8sCi0JCQkJQThCQzBDODQwOEQxOUYxQTAwMzc5OTE4IC8qIFhQb2ludGVy
UmVzdWx0V3JhcHBlci5jcHAgKi8sCi0JCQkJQThCQzBDODUwOEQxOUYxQTAwMzc5OTE4IC8qIFhQ
b2ludGVyUmVzdWx0V3JhcHBlci5oICovLAotCQkJKTsKLQkJCXBhdGggPSB4cG9pbnRlcjsKLQkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0JCUE4QkMwRDVGMDhEMkEyNzYwMDM3OTkx
OCAvKiBscyAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJ
QThCQzBENjAwOEQyQTI3NjAwMzc5OTE4IC8qIERPTUltcGxlbWVudGF0aW9uTFMuaWRsICovLAot
CQkJCUE4QkMwRDYyMDhEMkEyNzYwMDM3OTkxOCAvKiBMU0V4Y2VwdGlvbi5pZGwgKi8sCi0JCQkJ
QThCQzBENjMwOEQyQTI3NjAwMzc5OTE4IC8qIExTSW5wdXQuaWRsICovLAotCQkJCUE4QkMwRDY1
MDhEMkEyNzYwMDM3OTkxOCAvKiBMU091dHB1dC5pZGwgKi8sCi0JCQkJQThCQzBENjYwOEQyQTI3
NjAwMzc5OTE4IC8qIExTUGFyc2VyLmlkbCAqLywKLQkJCQlBOEJDMEQ2NzA4RDJBMjc2MDAzNzk5
MTggLyogTFNQYXJzZXJGaWx0ZXIuaWRsICovLAotCQkJCUE4QkMwRDY5MDhEMkEyNzYwMDM3OTkx
OCAvKiBMU1Jlc291cmNlUmVzb2x2ZXIuaWRsICovLAotCQkJCUE4QkMwRDZBMDhEMkEyNzYwMDM3
OTkxOCAvKiBMU1NlcmlhbGl6ZXIuaWRsICovLAotCQkJCUE4QkMwRDZCMDhEMkEyNzYwMDM3OTkx
OCAvKiBMU1NlcmlhbGl6ZXJGaWx0ZXIuaWRsICovLAotCQkJKTsKLQkJCXBhdGggPSBsczsKLQkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0JCUE4QkMwREEzMDhENDIzMzgwMDM3OTkx
OCAvKiBscyAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJ
QThCQzBEQTQwOEQ0MjMzOTAwMzc5OTE4IC8qIERPTUltcGxlbWVudGF0aW9uTFNXcmFwcGVyLmNw
cCAqLywKLQkJCQlBOEJDMERBNTA4RDQyMzM5MDAzNzk5MTggLyogRE9NSW1wbGVtZW50YXRpb25M
U1dyYXBwZXIuaCAqLywKLQkJCQlBOEJDMERBNjA4RDQyMzM5MDAzNzk5MTggLyogTFNFeGNlcHRp
b25XcmFwcGVyLmNwcCAqLywKLQkJCQlBOEJDMERBNzA4RDQyMzM5MDAzNzk5MTggLyogTFNFeGNl
cHRpb25XcmFwcGVyLmggKi8sCi0JCQkJQThCQzBEQTgwOEQ0MjMzOTAwMzc5OTE4IC8qIExTSW5w
dXRXcmFwcGVyLmNwcCAqLywKLQkJCQlBOEJDMERBOTA4RDQyMzM5MDAzNzk5MTggLyogTFNJbnB1
dFdyYXBwZXIuaCAqLywKLQkJCQlBOEJDMERBQTA4RDQyMzM5MDAzNzk5MTggLyogTFNPdXRwdXRX
cmFwcGVyLmNwcCAqLywKLQkJCQlBOEJDMERBQjA4RDQyMzM5MDAzNzk5MTggLyogTFNPdXRwdXRX
cmFwcGVyLmggKi8sCi0JCQkJQThCQzBEQUMwOEQ0MjMzOTAwMzc5OTE4IC8qIExTUGFyc2VyRmls
dGVyV3JhcHBlci5jcHAgKi8sCi0JCQkJQThCQzBEQUQwOEQ0MjMzOTAwMzc5OTE4IC8qIExTUGFy
c2VyRmlsdGVyV3JhcHBlci5oICovLAotCQkJCUE4QkMwREFFMDhENDIzMzkwMDM3OTkxOCAvKiBM
U1BhcnNlcldyYXBwZXIuY3BwICovLAotCQkJCUE4QkMwREFGMDhENDIzMzkwMDM3OTkxOCAvKiBM
U1BhcnNlcldyYXBwZXIuaCAqLywKLQkJCQlBOEJDMERCMDA4RDQyMzM5MDAzNzk5MTggLyogTFNS
ZXNvdXJjZVJlc29sdmVyV3JhcHBlci5jcHAgKi8sCi0JCQkJQThCQzBEQjEwOEQ0MjMzOTAwMzc5
OTE4IC8qIExTUmVzb3VyY2VSZXNvbHZlcldyYXBwZXIuaCAqLywKLQkJCQlBOEJDMERCMjA4RDQy
MzM5MDAzNzk5MTggLyogTFNTZXJpYWxpemVyRmlsdGVyV3JhcHBlci5jcHAgKi8sCi0JCQkJQThC
QzBEQjMwOEQ0MjMzOTAwMzc5OTE4IC8qIExTU2VyaWFsaXplckZpbHRlcldyYXBwZXIuaCAqLywK
LQkJCQlBOEJDMERCNDA4RDQyMzM5MDAzNzk5MTggLyogTFNTZXJpYWxpemVyV3JhcHBlci5jcHAg
Ki8sCi0JCQkJQThCQzBEQjUwOEQ0MjMzOTAwMzc5OTE4IC8qIExTU2VyaWFsaXplcldyYXBwZXIu
aCAqLywKLQkJCSk7Ci0JCQlwYXRoID0gbHM7CisJCQluYW1lID0gIktET00gU3VwcG9ydCI7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OwogCQlBOEMwRjZEQzA4OTcwMUYxMDBCQTUx
MTQgLyogV2ViQ29yZStTVkcgKi8gPSB7CkBAIC01MjkzLDcgKzM2NTIsNiBAQAogCQkJCUE4QzBG
NkU2MDg5NzAxRjEwMEJBNTExNCAvKiBEcmF3Vmlld1ByaXZhdGUuaCAqLywKIAkJCQlBOEMwRjZF
NzA4OTcwMUYxMDBCQTUxMTQgLyogTlNTVkdJbWFnZVJlcC5oICovLAogCQkJCUE4QzBGNkU4MDg5
NzAxRjEwMEJBNTExNCAvKiBOU1NWR0ltYWdlUmVwLm0gKi8sCi0JCQkJQThFQTQzM0QwOEUxNEVB
QjAwNEJDMzk2IC8qIHhtbF9rZG9tdG9rZW5pemVyLmggKi8sCiAJCQkJQThFQTQzM0UwOEUxNEVB
QzAwNEJDMzk2IC8qIHhtbF9rZG9tdG9rZW5pemVyLmNwcCAqLywKIAkJCQlBOEVBNDMzRjA4RTE0
RUFDMDA0QkMzOTYgLyogcmVuZGVyX2tjYW52YXN3cmFwcGVyLmggKi8sCiAJCQkJQThFQTQzNDAw
OEUxNEVBQzAwNEJDMzk2IC8qIHJlbmRlcl9rY2FudmFzd3JhcHBlci5jcHAgKi8sCkBAIC01MzAx
LDYgKzM2NTksNyBAQAogCQkJCUE4RUE0MzQyMDhFMTRFQUMwMDRCQzM5NiAvKiBkb21fa2RvbW5v
ZGV0cmVld3JhcHBlci5jcHAgKi8sCiAJCQkJQThFQTQzNDMwOEUxNEVBQzAwNEJDMzk2IC8qIGRv
bV9rZG9tZG9jdW1lbnR3cmFwcGVyLmggKi8sCiAJCQkJQThFQTQzNDQwOEUxNEVBQzAwNEJDMzk2
IC8qIGRvbV9rZG9tZG9jdW1lbnR3cmFwcGVyLmNwcCAqLywKKwkJCQlBODIwOTRCQzA5MTQwRTgz
MDAwQkU0RjQgLyogS0RPTSBTdXBwb3J0ICovLAogCQkJKTsKIAkJCW5hbWUgPSAiV2ViQ29yZStT
VkciOwogCQkJcGF0aCA9ICIuLi9TVkdTdXBwb3J0L1dlYkNvcmUrU1ZHIjsKQEAgLTUzMjAsMTAg
KzM2NzksNiBAQAogCQkJCUE4QzBGOEVGMDg5NzAxRjQwMEJBNTExNCAvKiBLU1ZHRmFjdG9yeS5o
ICovLAogCQkJCUE4QzBGOEYwMDg5NzAxRjQwMEJBNTExNCAvKiBLU1ZHU2V0dGluZ3MuY3BwICov
LAogCQkJCUE4QzBGOEYxMDg5NzAxRjQwMEJBNTExNCAvKiBLU1ZHU2V0dGluZ3MuaCAqLywKLQkJ
CQlBOEMwRjhGMzA4OTcwMUY0MDBCQTUxMTQgLyogS1dRS1NWR1BhcnQuaCAqLywKLQkJCQlBOEMw
RjhGNDA4OTcwMUY0MDBCQTUxMTQgLyogS1dRS1NWR1BhcnQubW0gKi8sCi0JCQkJQThDMEY4RjUw
ODk3MDFGNDAwQkE1MTE0IC8qIEtXUUtTVkdWaWV3LmggKi8sCi0JCQkJQThDMEY4RjYwODk3MDFG
NDAwQkE1MTE0IC8qIEtXUUtTVkdWaWV3Lm1tICovLAogCQkJKTsKIAkJCW5hbWUgPSBrc3ZnMjsK
IAkJCXBhdGggPSAuLi9TVkdTdXBwb3J0L2tzdmcyOwpAQCAtNTMzNCw4ICszNjg5LDYgQEAKIAkJ
CWNoaWxkcmVuID0gKAogCQkJCUE4QzBGNkVCMDg5NzAxRjEwMEJBNTExNCAvKiBLQ2FudmFzUmVu
ZGVyaW5nU3R5bGUuY3BwICovLAogCQkJCUE4QzBGNkVDMDg5NzAxRjEwMEJBNTExNCAvKiBLQ2Fu
dmFzUmVuZGVyaW5nU3R5bGUuaCAqLywKLQkJCQlBOEMwRjZFRDA4OTcwMUYxMDBCQTUxMTQgLyog
S1NWR0RvY3VtZW50QnVpbGRlci5jcHAgKi8sCi0JCQkJQThDMEY2RUUwODk3MDFGMTAwQkE1MTE0
IC8qIEtTVkdEb2N1bWVudEJ1aWxkZXIuaCAqLywKIAkJCQlBOEMwRjZFRjA4OTcwMUYxMDBCQTUx
MTQgLyogS1NWR1RpbWVTY2hlZHVsZXIuY3BwICovLAogCQkJCUE4QzBGNkYwMDg5NzAxRjEwMEJB
NTExNCAvKiBLU1ZHVGltZVNjaGVkdWxlci5oICovLAogCQkJKTsKQEAgLTUzODAsOSArMzczMyw2
IEBACiAJCUE4QzBGN0YxMDg5NzAxRjMwMEJBNTExNCAvKiBldmVudHMgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCUE4QzBGN0Y3MDg5NzAxRjMwMEJBNTEx
NCAvKiBrc3ZnZXZlbnRzLmggKi8sCi0JCQkJQThDMEY3RjMwODk3MDFGMzAwQkE1MTE0IC8qIFNW
R0V2ZW50SW1wbC5jcHAgKi8sCi0JCQkJQThDMEY3RjQwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0V2
ZW50SW1wbC5oICovLAogCQkJCUE4QzBGN0Y1MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdab29tRXZl
bnRJbXBsLmNwcCAqLywKIAkJCQlBOEMwRjdGNjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHWm9vbUV2
ZW50SW1wbC5oICovLAogCQkJKTsKQEAgLTUzOTMsNyArMzc0Myw3IEBACiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUE4QzBGN0ZFMDg5NzAxRjMwMEJBNTExNCAvKiBD
REZJbnRlcmZhY2UuaCAqLywKLQkJCQlBODYzMzEyRTA4RTNBQjI0MDA5Q0ZFRjQgLyogQ0RGSW50
ZXJmYWNlLmNwcCAqLywKKwkJCQlBODYzMzEyRTA4RTNBQjI0MDA5Q0ZFRjQgLyogU1ZHQ0RGSW50
ZXJmYWNlLmNwcCAqLywKIAkJCQlBOEMwRjdGRjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQUVsZW1l
bnRJbXBsLmNwcCAqLywKIAkJCQlBOEMwRjgwMDA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQUVsZW1l
bnRJbXBsLmggKi8sCiAJCQkJQThDMEY4MDEwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0FuZ2xlSW1w
bC5jcHAgKi8sCkBAIC01NDM1LDggKzM3ODUsNiBAQAogCQkJCUE4QzBGODI1MDg5NzAxRjMwMEJB
NTExNCAvKiBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGwuaCAqLywKIAkJCQlBOEMwRjgy
NjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHQW5pbWF0aW9uRWxlbWVudEltcGwuY3BwICovLAogCQkJ
CUE4QzBGODI3MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdBbmltYXRpb25FbGVtZW50SW1wbC5oICov
LAotCQkJCUE4QzBGODI4MDg5NzAxRjMwMEJBNTExNCAvKiBzdmdhdHRycy5jICovLAotCQkJCUE4
QzBGODI5MDg5NzAxRjMwMEJBNTExNCAvKiBzdmdhdHRycy5oICovLAogCQkJCUE4QzBGODJBMDg5
NzAxRjMwMEJBNTExNCAvKiBzdmdhdHRycy5pbiAqLywKIAkJCQlBOEMwRjgyQjA4OTcwMUYzMDBC
QTUxMTQgLyogU1ZHQ2lyY2xlRWxlbWVudEltcGwuY3BwICovLAogCQkJCUE4QzBGODJDMDg5NzAx
RjMwMEJBNTExNCAvKiBTVkdDaXJjbGVFbGVtZW50SW1wbC5oICovLApAQCAtNTQ2NCw4ICszODEy
LDYgQEAKIAkJCQlBOEMwRjg0MDA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRWxlbWVudEluc3RhbmNl
TGlzdEltcGwuaCAqLywKIAkJCQlBOEMwRjg0MTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRWxsaXBz
ZUVsZW1lbnRJbXBsLmNwcCAqLywKIAkJCQlBOEMwRjg0MjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZH
RWxsaXBzZUVsZW1lbnRJbXBsLmggKi8sCi0JCQkJQThDMEY4NDMwODk3MDFGMzAwQkE1MTE0IC8q
IFNWR0V4Y2VwdGlvbkltcGwuY3BwICovLAotCQkJCUE4QzBGODQ0MDg5NzAxRjMwMEJBNTExNCAv
KiBTVkdFeGNlcHRpb25JbXBsLmggKi8sCiAJCQkJQThDMEY4NDUwODk3MDFGMzAwQkE1MTE0IC8q
IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsLmNwcCAqLywKIAkJCQlBOEMwRjg0NjA4
OTcwMUYzMDBCQTUxMTQgLyogU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwuaCAqLywK
IAkJCQlBOEMwRjg0NzA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRkVCbGVuZEVsZW1lbnRJbXBsLmNw
cCAqLywKQEAgLTU2MDUsOCArMzk1MSw2IEBACiAJCQkJQThDMEY4Q0QwODk3MDFGNDAwQkE1MTE0
IC8qIFNWR1N3aXRjaEVsZW1lbnRJbXBsLmggKi8sCiAJCQkJQThDMEY4Q0UwODk3MDFGNDAwQkE1
MTE0IC8qIFNWR1N5bWJvbEVsZW1lbnRJbXBsLmNwcCAqLywKIAkJCQlBOEMwRjhDRjA4OTcwMUY0
MDBCQTUxMTQgLyogU1ZHU3ltYm9sRWxlbWVudEltcGwuaCAqLywKLQkJCQlBOEMwRjhEMDA4OTcw
MUY0MDBCQTUxMTQgLyogc3ZndGFncy5jICovLAotCQkJCUE4QzBGOEQxMDg5NzAxRjQwMEJBNTEx
NCAvKiBzdmd0YWdzLmggKi8sCiAJCQkJQThDMEY4RDIwODk3MDFGNDAwQkE1MTE0IC8qIHN2Z3Rh
Z3MuaW4gKi8sCiAJCQkJQThDMEY4RDMwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1Rlc3RzSW1wbC5j
cHAgKi8sCiAJCQkJQThDMEY4RDQwODk3MDFGNDAwQkE1MTE0IC8qIFNWR1Rlc3RzSW1wbC5oICov
LApAQCAtNTYzNCw0MTUgKzM5NzgsMTQgQEAKIAkJCQlBOEMwRjhFQTA4OTcwMUY0MDBCQTUxMTQg
LyogU1ZHVmlld0VsZW1lbnRJbXBsLmggKi8sCiAJCQkJQThDMEY4RUIwODk3MDFGNDAwQkE1MTE0
IC8qIFNWR1pvb21BbmRQYW5JbXBsLmNwcCAqLywKIAkJCQlBOEMwRjhFQzA4OTcwMUY0MDBCQTUx
MTQgLyogU1ZHWm9vbUFuZFBhbkltcGwuaCAqLywKKwkJCQlBOEM4MDE1NTA5MTQzNTc0MDA2QTVF
NUIgLyogU1ZHRWxlbWVudEZhY3RvcnkuaCAqLywKKwkJCQlBOEM4MDE1NjA5MTQzNTc0MDA2QTVF
NUIgLyogU1ZHRWxlbWVudEZhY3RvcnkuY3BwICovLAorCQkJCUE4QzgwMUE1MDkxNDNFM0IwMDZB
NUU1QiAvKiBTVkdOYW1lcy5oICovLAorCQkJCUE4QzgwMUE2MDkxNDNFM0IwMDZBNUU1QiAvKiBT
VkdOYW1lcy5jcHAgKi8sCiAJCQkpOwogCQkJcGF0aCA9IHN2ZzsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CiAJCX07Ci0JCUE4QzBGOEZFMDg5NzAxRjQwMEJBNTExNCAvKiBrZG9tICovID0g
ewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQlGOUE3QTk5MjA5MDQ2
N0JFMDBCRDU5QzkgLyogU2hhcmVkUHRyLmggKi8sCi0JCQkJQThDMEY5MDIwODk3MDFGNDAwQkE1
MTE0IC8qIGJhY2tlbmRzICovLAotCQkJCUE4MUQ1N0ZEMDhBRERGRjUwMDEzNkFDMSAvKiBiaW5k
aW5ncyAqLywKLQkJCQlBOEMwRjkwNzA4OTcwMUY0MDBCQTUxMTQgLyogY2FjaGUgKi8sCi0JCQkJ
QThDMEY5MjMwODk3MDFGNDAwQkE1MTE0IC8qIGNzcyAqLywKLQkJCQlBOEMwRjlCNDA4OTcwMUY1
MDBCQTUxMTQgLyogRE9NU3RyaW5nLmNwcCAqLywKLQkJCQlBOEMwRjlCNTA4OTcwMUY1MDBCQTUx
MTQgLyogRE9NU3RyaW5nLmggKi8sCi0JCQkJQThDMEY5QkEwODk3MDFGNTAwQkE1MTE0IC8qIGVj
bWEgKi8sCi0JCQkJQThDMEY5Q0UwODk3MDFGNTAwQkE1MTE0IC8qIGV2ZW50cyAqLywKLQkJCQlB
OEMwRjlGNzA4OTcwMUY1MDBCQTUxMTQgLyogSGVscGVyLmNwcCAqLywKLQkJCQlBOEMwRjlGODA4
OTcwMUY1MDBCQTUxMTQgLyogSGVscGVyLmggKi8sCi0JCQkJQThDMEY5RjkwODk3MDFGNTAwQkE1
MTE0IC8qIGNvcmUgKi8sCi0JCQkJQThDMEZBM0EwODk3MDFGNjAwQkE1MTE0IC8qIGtkb20uaCAq
LywKLQkJCQlBOEMwRkEzQjA4OTcwMUY2MDBCQTUxMTQgLyogS0RPTVBhcnQuY3BwICovLAotCQkJ
CUE4QzBGQTNDMDg5NzAxRjYwMEJBNTExNCAvKiBLRE9NUGFydC5oICovLAotCQkJCUE4QzBGQTNE
MDg5NzAxRjYwMEJBNTExNCAvKiBLRE9NU2V0dGluZ3MuY3BwICovLAotCQkJCUE4QzBGQTNFMDg5
NzAxRjYwMEJBNTExNCAvKiBLRE9NU2V0dGluZ3MuaCAqLywKLQkJCQlBOEMwRkEzRjA4OTcwMUY2
MDBCQTUxMTQgLyogS0RPTVZpZXcuY3BwICovLAotCQkJCUE4QzBGQTQwMDg5NzAxRjYwMEJBNTEx
NCAvKiBLRE9NVmlldy5oICovLAotCQkJCUE4QzBGQTQxMDg5NzAxRjYwMEJBNTExNCAvKiBscyAq
LywKLQkJCQlBOEMwRkE2ODA4OTcwMUY2MDBCQTUxMTQgLyogTmFtZXNwYWNlLmggKi8sCi0JCQkJ
QThDMEZBNzAwODk3MDFGNjAwQkE1MTE0IC8qIHBhcnNlciAqLywKLQkJCQlBOEMwRkE3OTA4OTcw
MUY2MDBCQTUxMTQgLyogcmFuZ2UgKi8sCi0JCQkJQThDMEZBOTcwODk3MDFGNjAwQkE1MTE0IC8q
IFNoYXJlZC5jcHAgKi8sCi0JCQkJQThDMEZBOTgwODk3MDFGNjAwQkE1MTE0IC8qIFNoYXJlZC5o
ICovLAotCQkJCUE4QzBGQTlCMDg5NzAxRjYwMEJBNTExNCAvKiB0cmF2ZXJzYWwgKi8sCi0JCQkJ
QThDMEZBQjAwODk3MDFGNjAwQkE1MTE0IC8qIFRyZWVTaGFyZWQuaCAqLywKLQkJCQlBOEMwRkFC
MzA4OTcwMUY2MDBCQTUxMTQgLyogdmlld3MgKi8sCi0JCQkJQThDMEZBQkQwODk3MDFGNjAwQkE1
MTE0IC8qIHhwYXRoICovLAotCQkJCUE4QzBGQjJFMDg5NzAxRjcwMEJBNTExNCAvKiB4cG9pbnRl
ciAqLywKLQkJCSk7Ci0JCQluYW1lID0ga2RvbTsKLQkJCXBhdGggPSAuLi9TVkdTdXBwb3J0L2tk
b207Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwotCQlBOEMwRjkwMjA4OTcwMUY0
MDBCQTUxMTQgLyogYmFja2VuZHMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxk
cmVuID0gKAotCQkJCUE4QzBGOTAzMDg5NzAxRjQwMEJBNTExNCAvKiBsaWJ4bWwgKi8sCi0JCQkp
OwotCQkJcGF0aCA9IGJhY2tlbmRzOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsK
LQkJQThDMEY5MDMwODk3MDFGNDAwQkE1MTE0IC8qIGxpYnhtbCAqLyA9IHsKLQkJCWlzYSA9IFBC
WEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJQThDMEY5MDQwODk3MDFGNDAwQkE1MTE0IC8q
IExpYlhNTFBhcnNlci5jcHAgKi8sCi0JCQkJQThDMEY5MDUwODk3MDFGNDAwQkE1MTE0IC8qIExp
YlhNTFBhcnNlci5oICovLAotCQkJKTsKLQkJCXBhdGggPSBsaWJ4bWw7Ci0JCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwotCQl9OwotCQlBOEMwRjkwNzA4OTcwMUY0MDBCQTUxMTQgLyogY2FjaGUg
Ki8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCUE4QzBGOTA4
MDg5NzAxRjQwMEJBNTExNCAvKiBJY29uRGF0YS5oICovLAotCQkJCUE4QzBGOTA5MDg5NzAxRjQw
MEJBNTExNCAvKiBJbWFnZVNvdXJjZS5jcHAgKi8sCi0JCQkJQThDMEY5MEEwODk3MDFGNDAwQkE1
MTE0IC8qIEltYWdlU291cmNlLmggKi8sCi0JCQkJQThDMEY5MEIwODk3MDFGNDAwQkE1MTE0IC8q
IEtET01DYWNoZS5jcHAgKi8sCi0JCQkJQThDMEY5MEMwODk3MDFGNDAwQkE1MTE0IC8qIEtET01D
YWNoZS5oICovLAotCQkJCUE4QzBGOTBEMDg5NzAxRjQwMEJBNTExNCAvKiBLRE9NQ2FjaGVkRG9j
dW1lbnQuY3BwICovLAotCQkJCUE4QzBGOTBFMDg5NzAxRjQwMEJBNTExNCAvKiBLRE9NQ2FjaGVk
RG9jdW1lbnQuaCAqLywKLQkJCQlBOEMwRjkwRjA4OTcwMUY0MDBCQTUxMTQgLyogS0RPTUNhY2hl
ZEltYWdlLmNwcCAqLywKLQkJCQlBOEMwRjkxMDA4OTcwMUY0MDBCQTUxMTQgLyogS0RPTUNhY2hl
ZEltYWdlLmggKi8sCi0JCQkJQThDMEY5MTIwODk3MDFGNDAwQkE1MTE0IC8qIEtET01DYWNoZWRP
YmplY3QuY3BwICovLAotCQkJCUE4QzBGOTEzMDg5NzAxRjQwMEJBNTExNCAvKiBLRE9NQ2FjaGVk
T2JqZWN0LmggKi8sCi0JCQkJQThDMEY5MTQwODk3MDFGNDAwQkE1MTE0IC8qIEtET01DYWNoZWRP
YmplY3RDbGllbnQuaCAqLywKLQkJCQlBOEMwRjkxNTA4OTcwMUY0MDBCQTUxMTQgLyogS0RPTUNh
Y2hlZFNjcmlwdC5jcHAgKi8sCi0JCQkJQThDMEY5MTYwODk3MDFGNDAwQkE1MTE0IC8qIEtET01D
YWNoZWRTY3JpcHQuaCAqLywKLQkJCQlBOEMwRjkxNzA4OTcwMUY0MDBCQTUxMTQgLyogS0RPTUNh
Y2hlZFN0eWxlU2hlZXQuY3BwICovLAotCQkJCUE4QzBGOTE4MDg5NzAxRjQwMEJBNTExNCAvKiBL
RE9NQ2FjaGVkU3R5bGVTaGVldC5oICovLAotCQkJCUE4QzBGOTE5MDg5NzAxRjQwMEJBNTExNCAv
KiBLRE9NQ2FjaGVIZWxwZXIuaCAqLywKLQkJCQlBOEMwRjkxQTA4OTcwMUY0MDBCQTUxMTQgLyog
S0RPTUxvYWRlci5jcHAgKi8sCi0JCQkJQThDMEY5MUIwODk3MDFGNDAwQkE1MTE0IC8qIEtET01M
b2FkZXIuaCAqLywKLQkJCSk7Ci0JCQlwYXRoID0gY2FjaGU7Ci0JCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwotCQl9OwotCQlBOEMwRjkyMzA4OTcwMUY0MDBCQTUxMTQgLyogY3NzICovID0gewot
CQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQlBOEMwRjkyQTA4OTcwMUY0
MDBCQTUxMTQgLyogQ1NTSGVscGVyLmggKi8sCi0JCQkJQThDMEY5NEEwODk3MDFGNDAwQkE1MTE0
IC8qIENvdW50ZXJJbXBsLmNwcCAqLywKLQkJCQlBOEMwRjk0QjA4OTcwMUY0MDBCQTUxMTQgLyog
Q291bnRlckltcGwuaCAqLywKLQkJCQlBOEMwRjk0QzA4OTcwMUY0MDBCQTUxMTQgLyogQ1NTQ2hh
cnNldFJ1bGVJbXBsLmNwcCAqLywKLQkJCQlBOEMwRjk0RDA4OTcwMUY0MDBCQTUxMTQgLyogQ1NT
Q2hhcnNldFJ1bGVJbXBsLmggKi8sCi0JCQkJQThDMEY5NEUwODk3MDFGNDAwQkE1MTE0IC8qIENT
U0ZvbnRGYWNlUnVsZUltcGwuY3BwICovLAotCQkJCUE4QzBGOTRGMDg5NzAxRjQwMEJBNTExNCAv
KiBDU1NGb250RmFjZVJ1bGVJbXBsLmggKi8sCi0JCQkJQThDMEY5NTAwODk3MDFGNDAwQkE1MTE0
IC8qIENTU0ltYWdlVmFsdWVJbXBsLmNwcCAqLywKLQkJCQlBOEMwRjk1MTA4OTcwMUY0MDBCQTUx
MTQgLyogQ1NTSW1hZ2VWYWx1ZUltcGwuaCAqLywKLQkJCQlBOEMwRjk1MjA4OTcwMUY0MDBCQTUx
MTQgLyogQ1NTSW1wb3J0UnVsZUltcGwuY3BwICovLAotCQkJCUE4QzBGOTUzMDg5NzAxRjQwMEJB
NTExNCAvKiBDU1NJbXBvcnRSdWxlSW1wbC5oICovLAotCQkJCUE4QzBGOTU0MDg5NzAxRjQwMEJB
NTExNCAvKiBDU1NNZWRpYVJ1bGVJbXBsLmNwcCAqLywKLQkJCQlBOEMwRjk1NTA4OTcwMUY0MDBC
QTUxMTQgLyogQ1NTTWVkaWFSdWxlSW1wbC5oICovLAotCQkJCUE4QzBGOTU2MDg5NzAxRjQwMEJB
NTExNCAvKiBDU1NQYWdlUnVsZUltcGwuY3BwICovLAotCQkJCUE4QzBGOTU3MDg5NzAxRjQwMEJB
NTExNCAvKiBDU1NQYWdlUnVsZUltcGwuaCAqLywKLQkJCQlBOEMwRjk1ODA4OTcwMUY0MDBCQTUx
MTQgLyogQ1NTUHJpbWl0aXZlVmFsdWVJbXBsLmNwcCAqLywKLQkJCQlBOEMwRjk1OTA4OTcwMUY0
MDBCQTUxMTQgLyogQ1NTUHJpbWl0aXZlVmFsdWVJbXBsLmggKi8sCi0JCQkJQThDMEY5NUEwODk3
MDFGNDAwQkE1MTE0IC8qIGNzc3Byb3BlcnRpZXMuaW4gKi8sCi0JCQkJQThDMEY5NUIwODk3MDFG
NDAwQkE1MTE0IC8qIENTU1J1bGVJbXBsLmNwcCAqLywKLQkJCQlBOEMwRjk1QzA4OTcwMUY0MDBC
QTUxMTQgLyogQ1NTUnVsZUltcGwuaCAqLywKLQkJCQlBOEMwRjk1RDA4OTcwMUY0MDBCQTUxMTQg
LyogQ1NTUnVsZUxpc3RJbXBsLmNwcCAqLywKLQkJCQlBOEMwRjk1RTA4OTcwMUY0MDBCQTUxMTQg
LyogQ1NTUnVsZUxpc3RJbXBsLmggKi8sCi0JCQkJQThDMEY5NUYwODk3MDFGNTAwQkE1MTE0IC8q
IENTU1N0eWxlRGVjbGFyYXRpb25JbXBsLmNwcCAqLywKLQkJCQlBOEMwRjk2MDA4OTcwMUY1MDBC
QTUxMTQgLyogQ1NTU3R5bGVEZWNsYXJhdGlvbkltcGwuaCAqLywKLQkJCQlBOEMwRjk2MTA4OTcw
MUY1MDBCQTUxMTQgLyogQ1NTU3R5bGVSdWxlSW1wbC5jcHAgKi8sCi0JCQkJQThDMEY5NjIwODk3
MDFGNTAwQkE1MTE0IC8qIENTU1N0eWxlUnVsZUltcGwuaCAqLywKLQkJCQlBOEMwRjk2MzA4OTcw
MUY1MDBCQTUxMTQgLyogQ1NTU3R5bGVTZWxlY3Rvci5jcHAgKi8sCi0JCQkJQThDMEY5NjQwODk3
MDFGNTAwQkE1MTE0IC8qIENTU1N0eWxlU2VsZWN0b3IuaCAqLywKLQkJCQlBOEMwRjk2NTA4OTcw
MUY1MDBCQTUxMTQgLyogQ1NTU3R5bGVTaGVldEltcGwuY3BwICovLAotCQkJCUE4QzBGOTY2MDg5
NzAxRjUwMEJBNTExNCAvKiBDU1NTdHlsZVNoZWV0SW1wbC5oICovLAotCQkJCUE4QzBGOTY3MDg5
NzAxRjUwMEJBNTExNCAvKiBDU1NVbmtub3duUnVsZUltcGwuY3BwICovLAotCQkJCUE4QzBGOTY4
MDg5NzAxRjUwMEJBNTExNCAvKiBDU1NVbmtub3duUnVsZUltcGwuaCAqLywKLQkJCQlBOEMwRjk2
OTA4OTcwMUY1MDBCQTUxMTQgLyogQ1NTVmFsdWVJbXBsLmNwcCAqLywKLQkJCQlBOEMwRjk2QTA4
OTcwMUY1MDBCQTUxMTQgLyogQ1NTVmFsdWVJbXBsLmggKi8sCi0JCQkJQThDMEY5NkIwODk3MDFG
NTAwQkE1MTE0IC8qIENTU1ZhbHVlTGlzdEltcGwuY3BwICovLAotCQkJCUE4QzBGOTZDMDg5NzAx
RjUwMEJBNTExNCAvKiBDU1NWYWx1ZUxpc3RJbXBsLmggKi8sCi0JCQkJQThDMEY5NkQwODk3MDFG
NTAwQkE1MTE0IC8qIGNzc3ZhbHVlcy5pbiAqLywKLQkJCQlBODAyNDM0RDA4QUM4NUVBMDAxQjI5
REEgLyogRG9jdW1lbnRDU1NJbXBsLmNwcCAqLywKLQkJCQlBODAyNDM0QzA4QUM4NUVBMDAxQjI5
REEgLyogRG9jdW1lbnRDU1NJbXBsLmggKi8sCi0JCQkJQThDMEY5NkUwODk3MDFGNTAwQkE1MTE0
IC8qIERvY3VtZW50U3R5bGVJbXBsLmNwcCAqLywKLQkJCQlBOEMwRjk2RjA4OTcwMUY1MDBCQTUx
MTQgLyogRG9jdW1lbnRTdHlsZUltcGwuaCAqLywKLQkJCQlBOEMwRjk3MDA4OTcwMUY1MDBCQTUx
MTQgLyogRm9udC5jcHAgKi8sCi0JCQkJQThDMEY5NzEwODk3MDFGNTAwQkE1MTE0IC8qIEZvbnQu
aCAqLywKLQkJCQlBOEMwRjk3MjA4OTcwMUY1MDBCQTUxMTQgLyogS0RPTUNTU1BhcnNlci5jcHAg
Ki8sCi0JCQkJQThDMEY5NzMwODk3MDFGNTAwQkE1MTE0IC8qIEtET01DU1NQYXJzZXIuaCAqLywK
LQkJCQlBOEMwRjk3NDA4OTcwMUY1MDBCQTUxMTQgLyoga2RvbXBhcnNlcmNzcy55ICovLAotCQkJ
CUE4MkZDMkYwMDhDOUFBRTQwMEVGRUUyMyAvKiBMaW5rU3R5bGVJbXBsLmggKi8sCi0JCQkJQTgy
RkMyRjEwOEM5QUFFNDAwRUZFRTIzIC8qIExpbmtTdHlsZUltcGwuY3BwICovLAotCQkJCUE4QzBG
OTc1MDg5NzAxRjUwMEJBNTExNCAvKiBNZWRpYUxpc3RJbXBsLmNwcCAqLywKLQkJCQlBOEMwRjk3
NjA4OTcwMUY1MDBCQTUxMTQgLyogTWVkaWFMaXN0SW1wbC5oICovLAotCQkJCUE4QzBGOTc3MDg5
NzAxRjUwMEJBNTExNCAvKiBSZWN0SW1wbC5jcHAgKi8sCi0JCQkJQThDMEY5NzgwODk3MDFGNTAw
QkE1MTE0IC8qIFJlY3RJbXBsLmggKi8sCi0JCQkJQThDMEY5NzkwODk3MDFGNTAwQkE1MTE0IC8q
IFJlbmRlclN0eWxlLmNwcCAqLywKLQkJCQlBOEMwRjk3QTA4OTcwMUY1MDBCQTUxMTQgLyogUmVu
ZGVyU3R5bGUuaCAqLywKLQkJCQlBOEMwRjk3QjA4OTcwMUY1MDBCQTUxMTQgLyogUmVuZGVyU3R5
bGVEZWZzLmNwcCAqLywKLQkJCQlBOEMwRjk3QzA4OTcwMUY1MDBCQTUxMTQgLyogUmVuZGVyU3R5
bGVEZWZzLmggKi8sCi0JCQkJQThDMEY5N0QwODk3MDFGNTAwQkE1MTE0IC8qIFJHQkNvbG9ySW1w
bC5jcHAgKi8sCi0JCQkJQThDMEY5N0UwODk3MDFGNTAwQkE1MTE0IC8qIFJHQkNvbG9ySW1wbC5o
ICovLAotCQkJCUE4QzBGOTdGMDg5NzAxRjUwMEJBNTExNCAvKiBTdHlsZUJhc2VJbXBsLmNwcCAq
LywKLQkJCQlBOEMwRjk4MDA4OTcwMUY1MDBCQTUxMTQgLyogU3R5bGVCYXNlSW1wbC5oICovLAot
CQkJCUE4QzBGOTgxMDg5NzAxRjUwMEJBNTExNCAvKiBTdHlsZVNoZWV0SW1wbC5jcHAgKi8sCi0J
CQkJQThDMEY5ODIwODk3MDFGNTAwQkE1MTE0IC8qIFN0eWxlU2hlZXRJbXBsLmggKi8sCi0JCQkJ
QThDMEY5ODMwODk3MDFGNTAwQkE1MTE0IC8qIFN0eWxlU2hlZXRMaXN0SW1wbC5jcHAgKi8sCi0J
CQkJQThDMEY5ODQwODk3MDFGNTAwQkE1MTE0IC8qIFN0eWxlU2hlZXRMaXN0SW1wbC5oICovLAot
CQkJCUE4QzBGOTg1MDg5NzAxRjUwMEJBNTExNCAvKiB0b2tlbml6ZXIuY3BwICovLAotCQkJCUE4
QzBGOTg2MDg5NzAxRjUwMEJBNTExNCAvKiBrZG9tY3NzLmggKi8sCi0JCQkpOwotCQkJcGF0aCA9
IGNzczsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0JCUE4QzBGOUJBMDg5NzAx
RjUwMEJBNTExNCAvKiBlY21hICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJl
biA9ICgKLQkJCQlBOEMwRjlCRDA4OTcwMUY1MDBCQTUxMTQgLyogRE9NQnJpZGdlLmggKi8sCi0J
CQkJQThDMEY5QkUwODk3MDFGNTAwQkE1MTE0IC8qIERPTUxvb2t1cC5oICovLAotCQkJCUE4REM2
M0U4MDhFMEREMEEwMDQ1MDdGNyAvKiBFY21hSW50ZXJmYWNlLmNwcCAqLywKLQkJCQlBOEMwRjlC
RjA4OTcwMUY1MDBCQTUxMTQgLyogRWNtYS5jcHAgKi8sCi0JCQkJQThDMEY5QzAwODk3MDFGNTAw
QkE1MTE0IC8qIEVjbWEuaCAqLywKLQkJCQlBOEMwRjlDMjA4OTcwMUY1MDBCQTUxMTQgLyogR2xv
YmFsT2JqZWN0LmNwcCAqLywKLQkJCQlBOEMwRjlDMzA4OTcwMUY1MDBCQTUxMTQgLyogR2xvYmFs
T2JqZWN0LmggKi8sCi0JCQkJQThDMEY5QzUwODk3MDFGNTAwQkE1MTE0IC8qIEhlbHBlci5jcHAg
Ki8sCi0JCQkJQThDMEY5QzYwODk3MDFGNTAwQkE1MTE0IC8qIFNjcmlwdEludGVycHJldGVyLmNw
cCAqLywKLQkJCQlBOEMwRjlDNzA4OTcwMUY1MDBCQTUxMTQgLyogU2NyaXB0SW50ZXJwcmV0ZXIu
aCAqLywKLQkJCSk7Ci0JCQlwYXRoID0gZWNtYTsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
Ci0JCX07Ci0JCUE4QzBGOUNFMDg5NzAxRjUwMEJBNTExNCAvKiBldmVudHMgKi8gPSB7Ci0JCQlp
c2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCUE4QzBGOUVFMDg5NzAxRjUwMEJB
NTExNCAvKiBrZG9tZXZlbnRzLmggKi8sCi0JCQkJQThDMEY5REEwODk3MDFGNTAwQkE1MTE0IC8q
IERvY3VtZW50RXZlbnRJbXBsLmNwcCAqLywKLQkJCQlBOEMwRjlEQjA4OTcwMUY1MDBCQTUxMTQg
LyogRG9jdW1lbnRFdmVudEltcGwuaCAqLywKLQkJCQlBOEMwRjlEQzA4OTcwMUY1MDBCQTUxMTQg
LyogRXZlbnRFeGNlcHRpb25JbXBsLmNwcCAqLywKLQkJCQlBOEMwRjlERDA4OTcwMUY1MDBCQTUx
MTQgLyogRXZlbnRFeGNlcHRpb25JbXBsLmggKi8sCi0JCQkJQThDMEY5REUwODk3MDFGNTAwQkE1
MTE0IC8qIEV2ZW50SW1wbC5jcHAgKi8sCi0JCQkJQThDMEY5REYwODk3MDFGNTAwQkE1MTE0IC8q
IEV2ZW50SW1wbC5oICovLAotCQkJCUE4QzBGOUUwMDg5NzAxRjUwMEJBNTExNCAvKiBFdmVudExp
c3RlbmVySW1wbC5jcHAgKi8sCi0JCQkJQThDMEY5RTEwODk3MDFGNTAwQkE1MTE0IC8qIEV2ZW50
TGlzdGVuZXJJbXBsLmggKi8sCi0JCQkJQThDMEY5RTIwODk3MDFGNTAwQkE1MTE0IC8qIEV2ZW50
VGFyZ2V0SW1wbC5jcHAgKi8sCi0JCQkJQThDMEY5RTMwODk3MDFGNTAwQkE1MTE0IC8qIEV2ZW50
VGFyZ2V0SW1wbC5oICovLAotCQkJCUE4QzBGOUU0MDg5NzAxRjUwMEJBNTExNCAvKiBLZXlib2Fy
ZEV2ZW50SW1wbC5jcHAgKi8sCi0JCQkJQThDMEY5RTUwODk3MDFGNTAwQkE1MTE0IC8qIEtleWJv
YXJkRXZlbnRJbXBsLmggKi8sCi0JCQkJQThDMEY5RTYwODk3MDFGNTAwQkE1MTE0IC8qIE1vdXNl
RXZlbnRJbXBsLmNwcCAqLywKLQkJCQlBOEMwRjlFNzA4OTcwMUY1MDBCQTUxMTQgLyogTW91c2VF
dmVudEltcGwuaCAqLywKLQkJCQlBOEMwRjlFODA4OTcwMUY1MDBCQTUxMTQgLyogTXV0YXRpb25F
dmVudEltcGwuY3BwICovLAotCQkJCUE4QzBGOUU5MDg5NzAxRjUwMEJBNTExNCAvKiBNdXRhdGlv
bkV2ZW50SW1wbC5oICovLAotCQkJCUE4QzBGOUVBMDg5NzAxRjUwMEJBNTExNCAvKiBSZWdpc3Rl
cmVkRXZlbnRMaXN0ZW5lci5jcHAgKi8sCi0JCQkJQThDMEY5RUIwODk3MDFGNTAwQkE1MTE0IC8q
IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmggKi8sCi0JCQkJQThDMEY5RUMwODk3MDFGNTAwQkE1
MTE0IC8qIFVJRXZlbnRJbXBsLmNwcCAqLywKLQkJCQlBOEMwRjlFRDA4OTcwMUY1MDBCQTUxMTQg
LyogVUlFdmVudEltcGwuaCAqLywKLQkJCSk7Ci0JCQlwYXRoID0gZXZlbnRzOwotCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKLQkJQThDMEY5RjkwODk3MDFGNTAwQkE1MTE0IC8qIGNv
cmUgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCUE4QzBG
OUZBMDg5NzAxRjUwMEJBNTExNCAvKiBBdHRySW1wbC5jcHAgKi8sCi0JCQkJQThDMEY5RkIwODk3
MDFGNTAwQkE1MTE0IC8qIEF0dHJJbXBsLmggKi8sCi0JCQkJQThDMEY5RkMwODk3MDFGNTAwQkE1
MTE0IC8qIENEQVRBU2VjdGlvbkltcGwuY3BwICovLAotCQkJCUE4QzBGOUZEMDg5NzAxRjUwMEJB
NTExNCAvKiBDREFUQVNlY3Rpb25JbXBsLmggKi8sCi0JCQkJQThDMEY5RkUwODk3MDFGNTAwQkE1
MTE0IC8qIENERkludGVyZmFjZS5jcHAgKi8sCi0JCQkJQThDMEY5RkYwODk3MDFGNTAwQkE1MTE0
IC8qIENERkludGVyZmFjZS5oICovLAotCQkJCUE4QzBGQTAwMDg5NzAxRjUwMEJBNTExNCAvKiBD
aGFyYWN0ZXJEYXRhSW1wbC5jcHAgKi8sCi0JCQkJQThDMEZBMDEwODk3MDFGNTAwQkE1MTE0IC8q
IENoYXJhY3RlckRhdGFJbXBsLmggKi8sCi0JCQkJQThDMEZBMDIwODk3MDFGNTAwQkE1MTE0IC8q
IENvbW1lbnRJbXBsLmNwcCAqLywKLQkJCQlBOEMwRkEwMzA4OTcwMUY1MDBCQTUxMTQgLyogQ29t
bWVudEltcGwuaCAqLywKLQkJCQlBOEMwRkEwNDA4OTcwMUY1MDBCQTUxMTQgLyogRG9jdW1lbnRG
cmFnbWVudEltcGwuY3BwICovLAotCQkJCUE4QzBGQTA1MDg5NzAxRjUwMEJBNTExNCAvKiBEb2N1
bWVudEZyYWdtZW50SW1wbC5oICovLAotCQkJCUE4QzBGQTA2MDg5NzAxRjUwMEJBNTExNCAvKiBE
b2N1bWVudEltcGwuY3BwICovLAotCQkJCUE4QzBGQTA3MDg5NzAxRjUwMEJBNTExNCAvKiBEb2N1
bWVudEltcGwuaCAqLywKLQkJCQlBOEMwRkEwODA4OTcwMUY1MDBCQTUxMTQgLyogRG9jdW1lbnRU
eXBlSW1wbC5jcHAgKi8sCi0JCQkJQThDMEZBMDkwODk3MDFGNTAwQkE1MTE0IC8qIERvY3VtZW50
VHlwZUltcGwuaCAqLywKLQkJCQlBOEMwRkEwQTA4OTcwMUY1MDBCQTUxMTQgLyogZG9tYXR0cnMu
YyAqLywKLQkJCQlBOEMwRkEwQjA4OTcwMUY1MDBCQTUxMTQgLyogZG9tYXR0cnMuaCAqLywKLQkJ
CQlBOEMwRkEwQzA4OTcwMUY1MDBCQTUxMTQgLyogZG9tYXR0cnMuaW4gKi8sCi0JCQkJQThDMEZB
MEQwODk3MDFGNTAwQkE1MTE0IC8qIERPTUNvbmZpZ3VyYXRpb25JbXBsLmNwcCAqLywKLQkJCQlB
OEMwRkEwRTA4OTcwMUY1MDBCQTUxMTQgLyogRE9NQ29uZmlndXJhdGlvbkltcGwuaCAqLywKLQkJ
CQlBOEMwRkEwRjA4OTcwMUY1MDBCQTUxMTQgLyogRE9NRXJyb3JIYW5kbGVySW1wbC5jcHAgKi8s
Ci0JCQkJQThDMEZBMTAwODk3MDFGNTAwQkE1MTE0IC8qIERPTUVycm9ySGFuZGxlckltcGwuaCAq
LywKLQkJCQlBOEMwRkExMTA4OTcwMUY1MDBCQTUxMTQgLyogRE9NRXJyb3JJbXBsLmNwcCAqLywK
LQkJCQlBOEMwRkExMjA4OTcwMUY1MDBCQTUxMTQgLyogRE9NRXJyb3JJbXBsLmggKi8sCi0JCQkJ
QThDMEZBMTMwODk3MDFGNTAwQkE1MTE0IC8qIERPTUV4Y2VwdGlvbkltcGwuY3BwICovLAotCQkJ
CUE4QzBGQTE0MDg5NzAxRjUwMEJBNTExNCAvKiBET01FeGNlcHRpb25JbXBsLmggKi8sCi0JCQkJ
QThDMEZBMTUwODk3MDFGNTAwQkE1MTE0IC8qIERPTUltcGxlbWVudGF0aW9uSW1wbC5jcHAgKi8s
Ci0JCQkJQThDMEZBMTYwODk3MDFGNTAwQkE1MTE0IC8qIERPTUltcGxlbWVudGF0aW9uSW1wbC5o
ICovLAotCQkJCUE4QzBGQTE3MDg5NzAxRjUwMEJBNTExNCAvKiBET01MaXN0LmggKi8sCi0JCQkJ
QThDMEZBMTgwODk3MDFGNTAwQkE1MTE0IC8qIERPTUxvY2F0b3JJbXBsLmNwcCAqLywKLQkJCQlB
OEMwRkExOTA4OTcwMUY1MDBCQTUxMTQgLyogRE9NTG9jYXRvckltcGwuaCAqLywKLQkJCQlBODAy
NDM1MDA4QUM4NjUxMDAxQjI5REEgLyogRE9NT2JqZWN0SW1wbC5jcHAgKi8sCi0JCQkJQTgwMjQz
NTEwOEFDODY1MTAwMUIyOURBIC8qIERPTU9iamVjdEltcGwuaCAqLywKLQkJCQlBOEMwRkExQTA4
OTcwMUY1MDBCQTUxMTQgLyogRE9NU3RyaW5nSW1wbC5jcHAgKi8sCi0JCQkJQThDMEZBMUIwODk3
MDFGNTAwQkE1MTE0IC8qIERPTVN0cmluZ0ltcGwuaCAqLywKLQkJCQlBOEMwRkExQzA4OTcwMUY1
MDBCQTUxMTQgLyogRE9NU3RyaW5nTGlzdEltcGwuY3BwICovLAotCQkJCUE4QzBGQTFEMDg5NzAx
RjUwMEJBNTExNCAvKiBET01TdHJpbmdMaXN0SW1wbC5oICovLAotCQkJCUE4QzBGQTFFMDg5NzAx
RjYwMEJBNTExNCAvKiBET01Vc2VyRGF0YUltcGwuY3BwICovLAotCQkJCUE4QzBGQTFGMDg5NzAx
RjYwMEJBNTExNCAvKiBET01Vc2VyRGF0YUltcGwuaCAqLywKLQkJCQlBOEMwRkEyMDA4OTcwMUY2
MDBCQTUxMTQgLyogRWxlbWVudEltcGwuY3BwICovLAotCQkJCUE4QzBGQTIxMDg5NzAxRjYwMEJB
NTExNCAvKiBFbGVtZW50SW1wbC5oICovLAotCQkJCUE4QzBGQTIyMDg5NzAxRjYwMEJBNTExNCAv
KiBFbnRpdHlJbXBsLmNwcCAqLywKLQkJCQlBOEMwRkEyMzA4OTcwMUY2MDBCQTUxMTQgLyogRW50
aXR5SW1wbC5oICovLAotCQkJCUE4QzBGQTI0MDg5NzAxRjYwMEJBNTExNCAvKiBFbnRpdHlSZWZl
cmVuY2VJbXBsLmNwcCAqLywKLQkJCQlBOEMwRkEyNTA4OTcwMUY2MDBCQTUxMTQgLyogRW50aXR5
UmVmZXJlbmNlSW1wbC5oICovLAotCQkJCUE4QzBGQTI2MDg5NzAxRjYwMEJBNTExNCAvKiBOYW1l
ZEF0dHJNYXBJbXBsLmNwcCAqLywKLQkJCQlBOEMwRkEyNzA4OTcwMUY2MDBCQTUxMTQgLyogTmFt
ZWRBdHRyTWFwSW1wbC5oICovLAotCQkJCUE4QzBGQTI4MDg5NzAxRjYwMEJBNTExNCAvKiBOYW1l
ZE5vZGVNYXBJbXBsLmNwcCAqLywKLQkJCQlBOEMwRkEyOTA4OTcwMUY2MDBCQTUxMTQgLyogTmFt
ZWROb2RlTWFwSW1wbC5oICovLAotCQkJCUE4QzBGQTJBMDg5NzAxRjYwMEJBNTExNCAvKiBOb2Rl
SW1wbC5jcHAgKi8sCi0JCQkJQThDMEZBMkIwODk3MDFGNjAwQkE1MTE0IC8qIE5vZGVJbXBsLmgg
Ki8sCi0JCQkJQThDMEZBMkMwODk3MDFGNjAwQkE1MTE0IC8qIE5vZGVMaXN0SW1wbC5jcHAgKi8s
Ci0JCQkJQThDMEZBMkQwODk3MDFGNjAwQkE1MTE0IC8qIE5vZGVMaXN0SW1wbC5oICovLAotCQkJ
CUE4QzBGQTJFMDg5NzAxRjYwMEJBNTExNCAvKiBOb3RhdGlvbkltcGwuY3BwICovLAotCQkJCUE4
QzBGQTJGMDg5NzAxRjYwMEJBNTExNCAvKiBOb3RhdGlvbkltcGwuaCAqLywKLQkJCQlBOEMwRkEz
MDA4OTcwMUY2MDBCQTUxMTQgLyogUHJvY2Vzc2luZ0luc3RydWN0aW9uSW1wbC5jcHAgKi8sCi0J
CQkJQThDMEZBMzEwODk3MDFGNjAwQkE1MTE0IC8qIFByb2Nlc3NpbmdJbnN0cnVjdGlvbkltcGwu
aCAqLywKLQkJCQlBOEMwRkEzMjA4OTcwMUY2MDBCQTUxMTQgLyogVGFnTm9kZUxpc3RJbXBsLmNw
cCAqLywKLQkJCQlBOEMwRkEzMzA4OTcwMUY2MDBCQTUxMTQgLyogVGFnTm9kZUxpc3RJbXBsLmgg
Ki8sCi0JCQkJQThDMEZBMzQwODk3MDFGNjAwQkE1MTE0IC8qIFRleHRJbXBsLmNwcCAqLywKLQkJ
CQlBOEMwRkEzNTA4OTcwMUY2MDBCQTUxMTQgLyogVGV4dEltcGwuaCAqLywKLQkJCQlBOEMwRkEz
NjA4OTcwMUY2MDBCQTUxMTQgLyogVHlwZUluZm9JbXBsLmNwcCAqLywKLQkJCQlBOEMwRkEzNzA4
OTcwMUY2MDBCQTUxMTQgLyogVHlwZUluZm9JbXBsLmggKi8sCi0JCQkJQThDMEZBMzgwODk3MDFG
NjAwQkE1MTE0IC8qIFhNTEVsZW1lbnRJbXBsLmNwcCAqLywKLQkJCQlBOEMwRkEzOTA4OTcwMUY2
MDBCQTUxMTQgLyogWE1MRWxlbWVudEltcGwuaCAqLywKLQkJCSk7Ci0JCQlwYXRoID0gY29yZTsK
LQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0JCUE4QzBGQTQxMDg5NzAxRjYwMEJB
NTExNCAvKiBscyAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0J
CQkJQTgyRkMyNzMwOEM5MjkyRTAwRUZFRTIzIC8qIERPTUltcGxlbWVudGF0aW9uTFNJbXBsLmgg
Ki8sCi0JCQkJQTgyRkMyNzQwOEM5MjkyRTAwRUZFRTIzIC8qIERPTUltcGxlbWVudGF0aW9uTFNJ
bXBsLmNwcCAqLywKLQkJCQlBOEMwRkE1NTA4OTcwMUY2MDBCQTUxMTQgLyoga2RvbWxzLmggKi8s
Ci0JCQkJQThDMEZBNDUwODk3MDFGNjAwQkE1MTE0IC8qIExTRXhjZXB0aW9uSW1wbC5jcHAgKi8s
Ci0JCQkJQThDMEZBNDYwODk3MDFGNjAwQkE1MTE0IC8qIExTRXhjZXB0aW9uSW1wbC5oICovLAot
CQkJCUE4QzBGQTQ3MDg5NzAxRjYwMEJBNTExNCAvKiBMU0lucHV0SW1wbC5jcHAgKi8sCi0JCQkJ
QThDMEZBNDgwODk3MDFGNjAwQkE1MTE0IC8qIExTSW5wdXRJbXBsLmggKi8sCi0JCQkJQThDMEZB
NDkwODk3MDFGNjAwQkE1MTE0IC8qIExTT3V0cHV0SW1wbC5jcHAgKi8sCi0JCQkJQThDMEZBNEEw
ODk3MDFGNjAwQkE1MTE0IC8qIExTT3V0cHV0SW1wbC5oICovLAotCQkJCUE4QzBGQTRCMDg5NzAx
RjYwMEJBNTExNCAvKiBMU1BhcnNlckZpbHRlckltcGwuY3BwICovLAotCQkJCUE4QzBGQTRDMDg5
NzAxRjYwMEJBNTExNCAvKiBMU1BhcnNlckZpbHRlckltcGwuaCAqLywKLQkJCQlBOEMwRkE0RDA4
OTcwMUY2MDBCQTUxMTQgLyogTFNQYXJzZXJJbXBsLmNwcCAqLywKLQkJCQlBOEMwRkE0RTA4OTcw
MUY2MDBCQTUxMTQgLyogTFNQYXJzZXJJbXBsLmggKi8sCi0JCQkJQThDMEZBNEYwODk3MDFGNjAw
QkE1MTE0IC8qIExTUmVzb3VyY2VSZXNvbHZlckltcGwuY3BwICovLAotCQkJCUE4QzBGQTUwMDg5
NzAxRjYwMEJBNTExNCAvKiBMU1Jlc291cmNlUmVzb2x2ZXJJbXBsLmggKi8sCi0JCQkJQThDMEZB
NTEwODk3MDFGNjAwQkE1MTE0IC8qIExTU2VyaWFsaXplckZpbHRlckltcGwuY3BwICovLAotCQkJ
CUE4QzBGQTUyMDg5NzAxRjYwMEJBNTExNCAvKiBMU1NlcmlhbGl6ZXJGaWx0ZXJJbXBsLmggKi8s
Ci0JCQkJQThDMEZBNTMwODk3MDFGNjAwQkE1MTE0IC8qIExTU2VyaWFsaXplckltcGwuY3BwICov
LAotCQkJCUE4QzBGQTU0MDg5NzAxRjYwMEJBNTExNCAvKiBMU1NlcmlhbGl6ZXJJbXBsLmggKi8s
Ci0JCQkpOwotCQkJcGF0aCA9IGxzOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsK
LQkJQThDMEZBNzAwODk3MDFGNjAwQkE1MTE0IC8qIHBhcnNlciAqLyA9IHsKLQkJCWlzYSA9IFBC
WEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJQThDMEZBNzIwODk3MDFGNjAwQkE1MTE0IC8q
IEtET01Eb2N1bWVudEJ1aWxkZXIuY3BwICovLAotCQkJCUE4QzBGQTczMDg5NzAxRjYwMEJBNTEx
NCAvKiBLRE9NRG9jdW1lbnRCdWlsZGVyLmggKi8sCi0JCQkJQThDMEZBNzQwODk3MDFGNjAwQkE1
MTE0IC8qIEtET01QYXJzZXIuY3BwICovLAotCQkJCUE4QzBGQTc1MDg5NzAxRjYwMEJBNTExNCAv
KiBLRE9NUGFyc2VyLmggKi8sCi0JCQkpOwotCQkJcGF0aCA9IHBhcnNlcjsKLQkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0JCUE4QzBGQTc5MDg5NzAxRjYwMEJBNTExNCAvKiByYW5n
ZSAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJQThDMEZB
ODMwODk3MDFGNjAwQkE1MTE0IC8qIGtkb21yYW5nZS5oICovLAotCQkJCUE4QzBGQTdEMDg5NzAx
RjYwMEJBNTExNCAvKiBEb2N1bWVudFJhbmdlSW1wbC5jcHAgKi8sCi0JCQkJQThDMEZBN0UwODk3
MDFGNjAwQkE1MTE0IC8qIERvY3VtZW50UmFuZ2VJbXBsLmggKi8sCi0JCQkJQThDMEZBN0YwODk3
MDFGNjAwQkE1MTE0IC8qIFJhbmdlRXhjZXB0aW9uSW1wbC5jcHAgKi8sCi0JCQkJQThDMEZBODAw
ODk3MDFGNjAwQkE1MTE0IC8qIFJhbmdlRXhjZXB0aW9uSW1wbC5oICovLAotCQkJCUE4QzBGQTgx
MDg5NzAxRjYwMEJBNTExNCAvKiBSYW5nZUltcGwuY3BwICovLAotCQkJCUE4QzBGQTgyMDg5NzAx
RjYwMEJBNTExNCAvKiBSYW5nZUltcGwuaCAqLywKLQkJCSk7Ci0JCQlwYXRoID0gcmFuZ2U7Ci0J
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwotCQlBOEMwRkE5QjA4OTcwMUY2MDBCQTUx
MTQgLyogdHJhdmVyc2FsICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9
ICgKLQkJCQlBOEMwRkFBOTA4OTcwMUY2MDBCQTUxMTQgLyoga2RvbXRyYXZlcnNhbC5oICovLAot
CQkJCUE4QzBGQTlGMDg5NzAxRjYwMEJBNTExNCAvKiBEb2N1bWVudFRyYXZlcnNhbEltcGwuY3Bw
ICovLAotCQkJCUE4QzBGQUEwMDg5NzAxRjYwMEJBNTExNCAvKiBEb2N1bWVudFRyYXZlcnNhbElt
cGwuaCAqLywKLQkJCQlBOEMwRkFBMTA4OTcwMUY2MDBCQTUxMTQgLyogTm9kZUZpbHRlckltcGwu
Y3BwICovLAotCQkJCUE4QzBGQUEyMDg5NzAxRjYwMEJBNTExNCAvKiBOb2RlRmlsdGVySW1wbC5o
ICovLAotCQkJCUE4QzBGQUEzMDg5NzAxRjYwMEJBNTExNCAvKiBOb2RlSXRlcmF0b3JJbXBsLmNw
cCAqLywKLQkJCQlBOEMwRkFBNDA4OTcwMUY2MDBCQTUxMTQgLyogTm9kZUl0ZXJhdG9ySW1wbC5o
ICovLAotCQkJCUE4QzBGQUE1MDg5NzAxRjYwMEJBNTExNCAvKiBUcmF2ZXJzYWxJbXBsLmNwcCAq
LywKLQkJCQlBOEMwRkFBNjA4OTcwMUY2MDBCQTUxMTQgLyogVHJhdmVyc2FsSW1wbC5oICovLAot
CQkJCUE4QzBGQUE3MDg5NzAxRjYwMEJBNTExNCAvKiBUcmVlV2Fsa2VySW1wbC5jcHAgKi8sCi0J
CQkJQThDMEZBQTgwODk3MDFGNjAwQkE1MTE0IC8qIFRyZWVXYWxrZXJJbXBsLmggKi8sCi0JCQkp
OwotCQkJcGF0aCA9IHRyYXZlcnNhbDsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07
Ci0JCUE4QzBGQUIzMDg5NzAxRjYwMEJBNTExNCAvKiB2aWV3cyAqLyA9IHsKLQkJCWlzYSA9IFBC
WEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJQThDMEZBQjkwODk3MDFGNjAwQkE1MTE0IC8q
IEFic3RyYWN0Vmlld0ltcGwuY3BwICovLAotCQkJCUE4QzBGQUJBMDg5NzAxRjYwMEJBNTExNCAv
KiBBYnN0cmFjdFZpZXdJbXBsLmggKi8sCi0JCQkJQThDMEZBQkIwODk3MDFGNjAwQkE1MTE0IC8q
IERvY3VtZW50Vmlld0ltcGwuY3BwICovLAotCQkJCUE4QzBGQUJDMDg5NzAxRjYwMEJBNTExNCAv
KiBEb2N1bWVudFZpZXdJbXBsLmggKi8sCi0JCQkpOwotCQkJcGF0aCA9IHZpZXdzOwotCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKLQkJQThDMEZBQkQwODk3MDFGNjAwQkE1MTE0IC8q
IHhwYXRoICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQlB
ODFENUE2RDA4QURGNzA0MDAxMzZBQzEgLyogaW1wbCAqLywKLQkJCQlBOEMwRkIyMTA4OTcwMUY3
MDBCQTUxMTQgLyoga2RvbXhwYXRoLmggKi8sCi0JCQkJQTgxRDVBNTUwOEFERjZFQjAwMTM2QUMx
IC8qIFhQYXRoUmVzdWx0SW1wbC5oICovLAotCQkJCUE4MUQ1QTU2MDhBREY2RUIwMDEzNkFDMSAv
KiBYUGF0aFJlc3VsdEltcGwuY3BwICovLAotCQkJCUE4MUQ1QTU3MDhBREY2RUIwMDEzNkFDMSAv
KiBYUGF0aE5TUmVzb2x2ZXJJbXBsLmggKi8sCi0JCQkJQTgxRDVBNTgwOEFERjZFQjAwMTM2QUMx
IC8qIFhQYXRoTlNSZXNvbHZlckltcGwuY3BwICovLAotCQkJCUE4MUQ1QTU5MDhBREY2RUIwMDEz
NkFDMSAvKiBYUGF0aE5hbWVzcGFjZUltcGwuaCAqLywKLQkJCQlBODFENUE1QTA4QURGNkVCMDAx
MzZBQzEgLyogWFBhdGhOYW1lc3BhY2VJbXBsLmNwcCAqLywKLQkJCQlBODFENUE1QjA4QURGNkVC
MDAxMzZBQzEgLyogWFBhdGhFeHByZXNzaW9uSW1wbC5oICovLAotCQkJCUE4MUQ1QTVDMDhBREY2
RUIwMDEzNkFDMSAvKiBYUGF0aEV4cHJlc3Npb25JbXBsLmNwcCAqLywKLQkJCQlBODFENUE1RDA4
QURGNkVCMDAxMzZBQzEgLyogWFBhdGhFeGNlcHRpb25JbXBsLmggKi8sCi0JCQkJQTgxRDVBNUUw
OEFERjZFQjAwMTM2QUMxIC8qIFhQYXRoRXhjZXB0aW9uSW1wbC5jcHAgKi8sCi0JCQkJQTgxRDVB
NUYwOEFERjZFQjAwMTM2QUMxIC8qIFhQYXRoRXZhbHVhdG9ySW1wbC5oICovLAotCQkJCUE4MUQ1
QTYwMDhBREY2RUIwMDEzNkFDMSAvKiBYUGF0aEV2YWx1YXRvckltcGwuY3BwICovLAotCQkJKTsK
LQkJCXBhdGggPSB4cGF0aDsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0JCUE4
QzBGQjJFMDg5NzAxRjcwMEJBNTExNCAvKiB4cG9pbnRlciAqLyA9IHsKLQkJCWlzYSA9IFBCWEdy
b3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJQThDMEZCNDYwODk3MDFGNzAwQkE1MTE0IC8qIGtk
b214cG9pbnRlci5oICovLAotCQkJCUE4QzBGQjMwMDg5NzAxRjcwMEJBNTExNCAvKiBFbGVtZW50
U2NoZW1lSW1wbC5jcHAgKi8sCi0JCQkJQThDMEZCMzEwODk3MDFGNzAwQkE1MTE0IC8qIEVsZW1l
bnRTY2hlbWVJbXBsLmggKi8sCi0JCQkJQThDMEZCMzIwODk3MDFGNzAwQkE1MTE0IC8qIE5CQ0lt
cGwuY3BwICovLAotCQkJCUE4QzBGQjMzMDg5NzAxRjcwMEJBNTExNCAvKiBOQkNJbXBsLmggKi8s
Ci0JCQkJQThDMEZCMzQwODk3MDFGNzAwQkE1MTE0IC8qIFBvaW50ZXJQYXJ0SW1wbC5jcHAgKi8s
Ci0JCQkJQThDMEZCMzUwODk3MDFGNzAwQkE1MTE0IC8qIFBvaW50ZXJQYXJ0SW1wbC5oICovLAot
CQkJCUE4QzBGQjM2MDg5NzAxRjcwMEJBNTExNCAvKiBTaG9ydEhhbmRJbXBsLmNwcCAqLywKLQkJ
CQlBOEMwRkIzNzA4OTcwMUY3MDBCQTUxMTQgLyogU2hvcnRIYW5kSW1wbC5oICovLAotCQkJCUE4
QzBGQjM4MDg5NzAxRjcwMEJBNTExNCAvKiBYTUxOU1NjaGVtZUltcGwuY3BwICovLAotCQkJCUE4
QzBGQjM5MDg5NzAxRjcwMEJBNTExNCAvKiBYTUxOU1NjaGVtZUltcGwuaCAqLywKLQkJCQlBOEMw
RkIzQTA4OTcwMUY3MDBCQTUxMTQgLyogWFBhdGgxU2NoZW1lSW1wbC5jcHAgKi8sCi0JCQkJQThD
MEZCM0IwODk3MDFGNzAwQkE1MTE0IC8qIFhQYXRoMVNjaGVtZUltcGwuaCAqLywKLQkJCQlBOEMw
RkIzQzA4OTcwMUY3MDBCQTUxMTQgLyogWFBvaW50ZXJFdmFsdWF0b3JJbXBsLmNwcCAqLywKLQkJ
CQlBOEMwRkIzRDA4OTcwMUY3MDBCQTUxMTQgLyogWFBvaW50ZXJFdmFsdWF0b3JJbXBsLmggKi8s
Ci0JCQkJQThDMEZCM0UwODk3MDFGNzAwQkE1MTE0IC8qIFhQb2ludGVyRXhjZXB0aW9uSW1wbC5j
cHAgKi8sCi0JCQkJQThDMEZCM0YwODk3MDFGNzAwQkE1MTE0IC8qIFhQb2ludGVyRXhjZXB0aW9u
SW1wbC5oICovLAotCQkJCUE4QzBGQjQwMDg5NzAxRjcwMEJBNTExNCAvKiBYUG9pbnRlckV4cHJl
c3Npb25JbXBsLmNwcCAqLywKLQkJCQlBOEMwRkI0MTA4OTcwMUY3MDBCQTUxMTQgLyogWFBvaW50
ZXJFeHByZXNzaW9uSW1wbC5oICovLAotCQkJCUE4MUQ1NkEyMDhBQ0FDN0UwMDEzNkFDMSAvKiBY
UG9pbnRlckhlbHBlci5oICovLAotCQkJCUE4MUQ1NkEzMDhBQ0FDN0UwMDEzNkFDMSAvKiBYUG9p
bnRlckhlbHBlci5jcHAgKi8sCi0JCQkJQThDMEZCNDIwODk3MDFGNzAwQkE1MTE0IC8qIFhQb2lu
dGVyUmVzdWx0SW1wbC5jcHAgKi8sCi0JCQkJQThDMEZCNDMwODk3MDFGNzAwQkE1MTE0IC8qIFhQ
b2ludGVyUmVzdWx0SW1wbC5oICovLAotCQkJCUE4QzBGQjQ0MDg5NzAxRjcwMEJBNTExNCAvKiBY
UG9pbnRlclNjaGVtZUltcGwuY3BwICovLAotCQkJCUE4QzBGQjQ1MDg5NzAxRjcwMEJBNTExNCAv
KiBYUG9pbnRlclNjaGVtZUltcGwuaCAqLywKLQkJCSk7Ci0JCQlwYXRoID0geHBvaW50ZXI7Ci0J
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwogCQlBOEMwRkI1MTA4OTcwMUY3MDBCQTUx
MTQgLyoga2NhbnZhcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CkBAIC03NTkwLDcgKzU1MzMsNiBAQAogCQkJCUE4QzBGQjk5MDg5NzAxRjkwMEJBNTExNCAvKiBE
cmF3Vmlld1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QzBGQjlBMDg5NzAxRjkwMEJB
NTExNCAvKiBOU1NWR0ltYWdlUmVwLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEMwRkI5RDA4OTcw
MUY5MDBCQTUxMTQgLyogS0NhbnZhc1JlbmRlcmluZ1N0eWxlLmggaW4gSGVhZGVycyAqLywKLQkJ
CQlBOEMwRkI5RjA4OTcwMUY5MDBCQTUxMTQgLyogS1NWR0RvY3VtZW50QnVpbGRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQThDMEZCQTEwODk3MDFGOTAwQkE1MTE0IC8qIEtTVkdUaW1lU2NoZWR1
bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEMwRkJBNjA4OTcwMUY5MDBCQTUxMTQgLyogS1NW
R0NTU1BhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDMEZCQTkwODk3MDFGOTAwQkE1MTE0
IC8qIFNWR0NTU1N0eWxlRGVjbGFyYXRpb25JbXBsLmggaW4gSGVhZGVycyAqLywKQEAgLTc1OTgs
OSArNTU0MCw3IEBACiAJCQkJQThDMEZCQUQwODk3MDFGOTAwQkE1MTE0IC8qIFNWR0NTU1N0eWxl
U2hlZXRJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEMwRkJBRjA4OTcwMUY5MDBCQTUxMTQg
LyogU1ZHUmVuZGVyU3R5bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QzBGQkIxMDg5NzAxRjkw
MEJBNTExNCAvKiBTVkdSZW5kZXJTdHlsZURlZnMuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBG
QzlFMDg5NzAxRjkwMEJBNTExNCAvKiBTVkdFdmVudEltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4QzBGQ0EwMDg5NzAxRjkwMEJBNTExNCAvKiBTVkdab29tRXZlbnRJbXBsLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlBOEMwRkNBMTA4OTcwMUY5MDBCQTUxMTQgLyoga3N2Z2V2ZW50cy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQThDMEZDQTcwODk3MDFGOTAwQkE1MTE0IC8qIENERkludGVyZmFjZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQThDMEZDQTkwODk3MDFGOTAwQkE1MTE0IC8qIFNWR0FFbGVt
ZW50SW1wbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDMEZDQUIwODk3MDFGOTAwQkE1MTE0IC8q
IFNWR0FuZ2xlSW1wbC5oIGluIEhlYWRlcnMgKi8sCkBAIC03NjIzLDcgKzU1NjMsNiBAQAogCQkJ
CUE4QzBGQ0NDMDg5NzAxRjkwMEJBNTExNCAvKiBTVkdBbmltYXRlRWxlbWVudEltcGwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4QzBGQ0NFMDg5NzAxRjkwMEJBNTExNCAvKiBTVkdBbmltYXRlVHJh
bnNmb3JtRWxlbWVudEltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QzBGQ0QwMDg5NzAxRjkw
MEJBNTExNCAvKiBTVkdBbmltYXRpb25FbGVtZW50SW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
QThDMEZDRDIwODk3MDFGOTAwQkE1MTE0IC8qIHN2Z2F0dHJzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOEMwRkNENTA4OTcwMUY5MDBCQTUxMTQgLyogU1ZHQ2lyY2xlRWxlbWVudEltcGwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4QzBGQ0Q3MDg5NzAxRjkwMEJBNTExNCAvKiBTVkdDbGlwUGF0aEVs
ZW1lbnRJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEMwRkNEOTA4OTcwMUY5MDBCQTUxMTQg
LyogU1ZHQ29sb3JJbXBsLmggaW4gSGVhZGVycyAqLywKQEAgLTc2MzYsNyArNTU3NSw2IEBACiAJ
CQkJQThDMEZDRTcwODk3MDFGOTAwQkE1MTE0IC8qIFNWR0VsZW1lbnRJbnN0YW5jZUltcGwuaCBp
biBIZWFkZXJzICovLAogCQkJCUE4QzBGQ0U5MDg5NzAxRjkwMEJBNTExNCAvKiBTVkdFbGVtZW50
SW5zdGFuY2VMaXN0SW1wbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDMEZDRUIwODk3MDFGOTAw
QkE1MTE0IC8qIFNWR0VsbGlwc2VFbGVtZW50SW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThD
MEZDRUQwODk3MDFGOTAwQkE1MTE0IC8qIFNWR0V4Y2VwdGlvbkltcGwuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4QzBGQ0VGMDg5NzAxRjkwMEJBNTExNCAvKiBTVkdFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkSW1wbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDMEZDRjEwODk3MDFGOTAwQkE1MTE0
IC8qIFNWR0ZFQmxlbmRFbGVtZW50SW1wbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDMEZDRjMw
ODk3MDFGOTAwQkE1MTE0IC8qIFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50SW1wbC5oIGluIEhlYWRl
cnMgKi8sCkBAIC03NzA3LDcgKzU2NDUsNiBAQAogCQkJCUE4QzBGRDc0MDg5NzAxRkEwMEJBNTEx
NCAvKiBTVkdTVkdFbGVtZW50SW1wbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDMEZENzYwODk3
MDFGQTAwQkE1MTE0IC8qIFNWR1N3aXRjaEVsZW1lbnRJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOEMwRkQ3ODA4OTcwMUZBMDBCQTUxMTQgLyogU1ZHU3ltYm9sRWxlbWVudEltcGwuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUE4QzBGRDdBMDg5NzAxRkEwMEJBNTExNCAvKiBzdmd0YWdzLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOEMwRkQ3RDA4OTcwMUZBMDBCQTUxMTQgLyogU1ZHVGVzdHNJbXBs
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEMwRkQ3RjA4OTcwMUZBMDBCQTUxMTQgLyogU1ZHVGV4
dENvbnRlbnRFbGVtZW50SW1wbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDMEZEODEwODk3MDFG
QTAwQkE1MTE0IC8qIFNWR1RleHRFbGVtZW50SW1wbC5oIGluIEhlYWRlcnMgKi8sCkBAIC03NzIz
LDEzMyArNTY2MCw2IEBACiAJCQkJQThDMEZEOTUwODk3MDFGQTAwQkE1MTE0IC8qIFNWR1pvb21B
bmRQYW5JbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEMwRkQ5NjA4OTcwMUZBMDBCQTUxMTQg
Lyoga3N2Zy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDMEZEOUEwODk3MDFGQTAwQkE1MTE0IC8q
IEtTVkdTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZEOUMwODk3MDFGQTAwQkE1
MTE0IC8qIEtXUUtTVkdQYXJ0LmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkQ5RTA4OTcwMUZB
MDBCQTUxMTQgLyogS1dRS1NWR1ZpZXcuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBGREFBMDg5
NzAxRkEwMEJBNTExNCAvKiBMaWJYTUxQYXJzZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBG
REIwMDg5NzAxRkEwMEJBNTExNCAvKiBLRE9NQ2FjaGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4
QzBGREIyMDg5NzAxRkEwMEJBNTExNCAvKiBLRE9NQ2FjaGVkRG9jdW1lbnQuaCBpbiBIZWFkZXJz
ICovLAotCQkJCUE4QzBGREJGMDg5NzAxRkEwMEJBNTExNCAvKiBLRE9NTG9hZGVyLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlBOEMwRkRDRDA4OTcwMUZBMDBCQTUxMTQgLyogQ1NTSGVscGVyLmggaW4g
SGVhZGVycyAqLywKLQkJCQlBOEMwRkRFRDA4OTcwMUZBMDBCQTUxMTQgLyogQ291bnRlckltcGwu
aCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBGREVGMDg5NzAxRkEwMEJBNTExNCAvKiBDU1NDaGFy
c2V0UnVsZUltcGwuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBGREYxMDg5NzAxRkEwMEJBNTEx
NCAvKiBDU1NGb250RmFjZVJ1bGVJbXBsLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkRGMzA4
OTcwMUZBMDBCQTUxMTQgLyogQ1NTSW1hZ2VWYWx1ZUltcGwuaCBpbiBIZWFkZXJzICovLAotCQkJ
CUE4QzBGREY1MDg5NzAxRkEwMEJBNTExNCAvKiBDU1NJbXBvcnRSdWxlSW1wbC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJQThDMEZERjcwODk3MDFGQTAwQkE1MTE0IC8qIENTU01lZGlhUnVsZUltcGwu
aCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBGREY5MDg5NzAxRkEwMEJBNTExNCAvKiBDU1NQYWdl
UnVsZUltcGwuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBGREZCMDg5NzAxRkEwMEJBNTExNCAv
KiBDU1NQcmltaXRpdmVWYWx1ZUltcGwuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBGREZFMDg5
NzAxRkEwMEJBNTExNCAvKiBDU1NSdWxlSW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZF
MDAwODk3MDFGQTAwQkE1MTE0IC8qIENTU1J1bGVMaXN0SW1wbC5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJQThDMEZFMDIwODk3MDFGQTAwQkE1MTE0IC8qIENTU1N0eWxlRGVjbGFyYXRpb25JbXBsLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkUwNDA4OTcwMUZBMDBCQTUxMTQgLyogQ1NTU3R5bGVS
dWxlSW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZFMDYwODk3MDFGQTAwQkE1MTE0IC8q
IENTU1N0eWxlU2VsZWN0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBGRTA4MDg5NzAxRkEw
MEJBNTExNCAvKiBDU1NTdHlsZVNoZWV0SW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZF
MEEwODk3MDFGQTAwQkE1MTE0IC8qIENTU1Vua25vd25SdWxlSW1wbC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJQThDMEZFMEMwODk3MDFGQTAwQkE1MTE0IC8qIENTU1ZhbHVlSW1wbC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJQThDMEZFMEUwODk3MDFGQTAwQkE1MTE0IC8qIENTU1ZhbHVlTGlzdEltcGwu
aCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBGRTExMDg5NzAxRkEwMEJBNTExNCAvKiBEb2N1bWVu
dFN0eWxlSW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZFMTMwODk3MDFGQTAwQkE1MTE0
IC8qIEZvbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBGRTE1MDg5NzAxRkEwMEJBNTExNCAv
KiBLRE9NQ1NTUGFyc2VyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkUxODA4OTcwMUZBMDBC
QTUxMTQgLyogTWVkaWFMaXN0SW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZFMUEwODk3
MDFGQTAwQkE1MTE0IC8qIFJlY3RJbXBsLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkUxQzA4
OTcwMUZBMDBCQTUxMTQgLyogUmVuZGVyU3R5bGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBG
RTFFMDg5NzAxRkEwMEJBNTExNCAvKiBSZW5kZXJTdHlsZURlZnMuaCBpbiBIZWFkZXJzICovLAot
CQkJCUE4QzBGRTIwMDg5NzAxRkEwMEJBNTExNCAvKiBSR0JDb2xvckltcGwuaCBpbiBIZWFkZXJz
ICovLAotCQkJCUE4QzBGRTIyMDg5NzAxRkEwMEJBNTExNCAvKiBTdHlsZUJhc2VJbXBsLmggaW4g
SGVhZGVycyAqLywKLQkJCQlBOEMwRkUyNDA4OTcwMUZBMDBCQTUxMTQgLyogU3R5bGVTaGVldElt
cGwuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBGRTI2MDg5NzAxRkEwMEJBNTExNCAvKiBTdHls
ZVNoZWV0TGlzdEltcGwuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBGRTI4MDg5NzAxRkEwMEJB
NTExNCAvKiBrZG9tY3NzLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkU1NjA4OTcwMUZCMDBC
QTUxMTQgLyogRE9NU3RyaW5nLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkU1RDA4OTcwMUZC
MDBCQTUxMTQgLyogRE9NQnJpZGdlLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkU1RTA4OTcw
MUZCMDBCQTUxMTQgLyogRE9NTG9va3VwLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkU2MDA4
OTcwMUZCMDBCQTUxMTQgLyogRWNtYS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZFNjMwODk3
MDFGQjAwQkE1MTE0IC8qIEdsb2JhbE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZF
NjcwODk3MDFGQjAwQkE1MTE0IC8qIFNjcmlwdEludGVycHJldGVyLmggaW4gSGVhZGVycyAqLywK
LQkJCQlBOEMwRkU3OTA4OTcwMUZCMDBCQTUxMTQgLyogRG9jdW1lbnRFdmVudEltcGwuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUE4QzBGRTdCMDg5NzAxRkIwMEJBNTExNCAvKiBFdmVudEV4Y2VwdGlv
bkltcGwuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBGRTdEMDg5NzAxRkIwMEJBNTExNCAvKiBF
dmVudEltcGwuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBGRTdGMDg5NzAxRkIwMEJBNTExNCAv
KiBFdmVudExpc3RlbmVySW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZFODEwODk3MDFG
QjAwQkE1MTE0IC8qIEV2ZW50VGFyZ2V0SW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZF
ODMwODk3MDFGQjAwQkE1MTE0IC8qIEtleWJvYXJkRXZlbnRJbXBsLmggaW4gSGVhZGVycyAqLywK
LQkJCQlBOEMwRkU4NTA4OTcwMUZCMDBCQTUxMTQgLyogTW91c2VFdmVudEltcGwuaCBpbiBIZWFk
ZXJzICovLAotCQkJCUE4QzBGRTg3MDg5NzAxRkIwMEJBNTExNCAvKiBNdXRhdGlvbkV2ZW50SW1w
bC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZFODkwODk3MDFGQjAwQkE1MTE0IC8qIFJlZ2lz
dGVyZWRFdmVudExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkU4QjA4OTcwMUZC
MDBCQTUxMTQgLyogVUlFdmVudEltcGwuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBGRThDMDg5
NzAxRkIwMEJBNTExNCAvKiBrZG9tZXZlbnRzLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkU5
NjA4OTcwMUZCMDBCQTUxMTQgLyogSGVscGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkU5
ODA4OTcwMUZCMDBCQTUxMTQgLyogQXR0ckltcGwuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBG
RTlBMDg5NzAxRkIwMEJBNTExNCAvKiBDREFUQVNlY3Rpb25JbXBsLmggaW4gSGVhZGVycyAqLywK
LQkJCQlBOEMwRkU5QzA4OTcwMUZCMDBCQTUxMTQgLyogQ0RGSW50ZXJmYWNlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlBOEMwRkU5RTA4OTcwMUZCMDBCQTUxMTQgLyogQ2hhcmFjdGVyRGF0YUltcGwu
aCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBGRUEwMDg5NzAxRkIwMEJBNTExNCAvKiBDb21tZW50
SW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZFQTIwODk3MDFGQjAwQkE1MTE0IC8qIERv
Y3VtZW50RnJhZ21lbnRJbXBsLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkVBNDA4OTcwMUZC
MDBCQTUxMTQgLyogRG9jdW1lbnRJbXBsLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkVBNjA4
OTcwMUZCMDBCQTUxMTQgLyogRG9jdW1lbnRUeXBlSW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
QThDMEZFQTgwODk3MDFGQjAwQkE1MTE0IC8qIGRvbWF0dHJzLmggaW4gSGVhZGVycyAqLywKLQkJ
CQlBOEMwRkVBQjA4OTcwMUZCMDBCQTUxMTQgLyogRE9NQ29uZmlndXJhdGlvbkltcGwuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUE4QzBGRUFEMDg5NzAxRkIwMEJBNTExNCAvKiBET01FcnJvckhhbmRs
ZXJJbXBsLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkVBRjA4OTcwMUZCMDBCQTUxMTQgLyog
RE9NRXJyb3JJbXBsLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkVCMTA4OTcwMUZCMDBCQTUx
MTQgLyogRE9NRXhjZXB0aW9uSW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZFQjMwODk3
MDFGQjAwQkE1MTE0IC8qIERPTUltcGxlbWVudGF0aW9uSW1wbC5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJQThDMEZFQjQwODk3MDFGQjAwQkE1MTE0IC8qIERPTUxpc3QuaCBpbiBIZWFkZXJzICovLAot
CQkJCUE4QzBGRUI2MDg5NzAxRkIwMEJBNTExNCAvKiBET01Mb2NhdG9ySW1wbC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJQThDMEZFQjgwODk3MDFGQjAwQkE1MTE0IC8qIERPTVN0cmluZ0ltcGwuaCBp
biBIZWFkZXJzICovLAotCQkJCUE4QzBGRUJBMDg5NzAxRkIwMEJBNTExNCAvKiBET01TdHJpbmdM
aXN0SW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZFQkMwODk3MDFGQjAwQkE1MTE0IC8q
IERPTVVzZXJEYXRhSW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZFQkUwODk3MDFGQjAw
QkE1MTE0IC8qIEVsZW1lbnRJbXBsLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkVDMDA4OTcw
MUZCMDBCQTUxMTQgLyogRW50aXR5SW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZFQzIw
ODk3MDFGQjAwQkE1MTE0IC8qIEVudGl0eVJlZmVyZW5jZUltcGwuaCBpbiBIZWFkZXJzICovLAot
CQkJCUE4QzBGRUM0MDg5NzAxRkIwMEJBNTExNCAvKiBOYW1lZEF0dHJNYXBJbXBsLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlBOEMwRkVDNjA4OTcwMUZCMDBCQTUxMTQgLyogTmFtZWROb2RlTWFwSW1w
bC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZFQzgwODk3MDFGQjAwQkE1MTE0IC8qIE5vZGVJ
bXBsLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkVDQTA4OTcwMUZCMDBCQTUxMTQgLyogTm9k
ZUxpc3RJbXBsLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkVDQzA4OTcwMUZCMDBCQTUxMTQg
LyogTm90YXRpb25JbXBsLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkVDRTA4OTcwMUZCMDBC
QTUxMTQgLyogUHJvY2Vzc2luZ0luc3RydWN0aW9uSW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
QThDMEZFRDAwODk3MDFGQjAwQkE1MTE0IC8qIFRhZ05vZGVMaXN0SW1wbC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJQThDMEZFRDIwODk3MDFGQjAwQkE1MTE0IC8qIFRleHRJbXBsLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlBOEMwRkVENDA4OTcwMUZCMDBCQTUxMTQgLyogVHlwZUluZm9JbXBsLmggaW4g
SGVhZGVycyAqLywKLQkJCQlBOEMwRkVENjA4OTcwMUZCMDBCQTUxMTQgLyogWE1MRWxlbWVudElt
cGwuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBGRUQ3MDg5NzAxRkIwMEJBNTExNCAvKiBrZG9t
LmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkVEOTA4OTcwMUZCMDBCQTUxMTQgLyogS0RPTVBh
cnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBGRURCMDg5NzAxRkIwMEJBNTExNCAvKiBLRE9N
U2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBGRUREMDg5NzAxRkIwMEJBNTExNCAv
KiBLRE9NVmlldy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZFRTEwODk3MDFGQjAwQkE1MTE0
IC8qIExTRXhjZXB0aW9uSW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZFRTMwODk3MDFG
QjAwQkE1MTE0IC8qIExTSW5wdXRJbXBsLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkVFNTA4
OTcwMUZCMDBCQTUxMTQgLyogTFNPdXRwdXRJbXBsLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMw
RkVFNzA4OTcwMUZCMDBCQTUxMTQgLyogTFNQYXJzZXJGaWx0ZXJJbXBsLmggaW4gSGVhZGVycyAq
LywKLQkJCQlBOEMwRkVFOTA4OTcwMUZCMDBCQTUxMTQgLyogTFNQYXJzZXJJbXBsLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlBOEMwRkVFQjA4OTcwMUZCMDBCQTUxMTQgLyogTFNSZXNvdXJjZVJlc29s
dmVySW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZFRUQwODk3MDFGQjAwQkE1MTE0IC8q
IExTU2VyaWFsaXplckZpbHRlckltcGwuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBGRUVGMDg5
NzAxRkIwMEJBNTExNCAvKiBMU1NlcmlhbGl6ZXJJbXBsLmggaW4gSGVhZGVycyAqLywKLQkJCQlB
OEMwRkVGMDA4OTcwMUZCMDBCQTUxMTQgLyoga2RvbWxzLmggaW4gSGVhZGVycyAqLywKLQkJCQlB
OEMwRkYwMzA4OTcwMUZCMDBCQTUxMTQgLyogTmFtZXNwYWNlLmggaW4gSGVhZGVycyAqLywKLQkJ
CQlBOEMwRkYwRDA4OTcwMUZCMDBCQTUxMTQgLyogS0RPTURvY3VtZW50QnVpbGRlci5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJQThDMEZGMEYwODk3MDFGQjAwQkE1MTE0IC8qIEtET01QYXJzZXIuaCBp
biBIZWFkZXJzICovLAotCQkJCUE4QzBGRjE2MDg5NzAxRkIwMEJBNTExNCAvKiBEb2N1bWVudFJh
bmdlSW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZGMTgwODk3MDFGQjAwQkE1MTE0IC8q
IFJhbmdlRXhjZXB0aW9uSW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZGMUEwODk3MDFG
QjAwQkE1MTE0IC8qIFJhbmdlSW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZGMUIwODk3
MDFGQjAwQkE1MTE0IC8qIGtkb21yYW5nZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZGMkYw
ODk3MDFGQjAwQkE1MTE0IC8qIFNoYXJlZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZGMzUw
ODk3MDFGQjAwQkE1MTE0IC8qIERvY3VtZW50VHJhdmVyc2FsSW1wbC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJQThDMEZGMzcwODk3MDFGQjAwQkE1MTE0IC8qIE5vZGVGaWx0ZXJJbXBsLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlBOEMwRkYzOTA4OTcwMUZCMDBCQTUxMTQgLyogTm9kZUl0ZXJhdG9ySW1w
bC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZGM0IwODk3MDFGQjAwQkE1MTE0IC8qIFRyYXZl
cnNhbEltcGwuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBGRjNEMDg5NzAxRkIwMEJBNTExNCAv
KiBUcmVlV2Fsa2VySW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZGM0UwODk3MDFGQjAw
QkE1MTE0IC8qIGtkb210cmF2ZXJzYWwuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBGRjQ1MDg5
NzAxRkIwMEJBNTExNCAvKiBUcmVlU2hhcmVkLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkY0
RDA4OTcwMUZCMDBCQTUxMTQgLyogQWJzdHJhY3RWaWV3SW1wbC5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJQThDMEZGNEYwODk3MDFGQjAwQkE1MTE0IC8qIERvY3VtZW50Vmlld0ltcGwuaCBpbiBIZWFk
ZXJzICovLAotCQkJCUE4QzBGRkJDMDg5NzAxRkMwMEJBNTExNCAvKiBFbGVtZW50U2NoZW1lSW1w
bC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZGQkUwODk3MDFGQzAwQkE1MTE0IC8qIE5CQ0lt
cGwuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBGRkMwMDg5NzAxRkMwMEJBNTExNCAvKiBQb2lu
dGVyUGFydEltcGwuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QzBGRkMyMDg5NzAxRkMwMEJBNTEx
NCAvKiBTaG9ydEhhbmRJbXBsLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkZDNDA4OTcwMUZD
MDBCQTUxMTQgLyogWE1MTlNTY2hlbWVJbXBsLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkZD
ODA4OTcwMUZDMDBCQTUxMTQgLyogWFBvaW50ZXJFdmFsdWF0b3JJbXBsLmggaW4gSGVhZGVycyAq
LywKLQkJCQlBOEMwRkZDQTA4OTcwMUZDMDBCQTUxMTQgLyogWFBvaW50ZXJFeGNlcHRpb25JbXBs
LmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwRkZDQzA4OTcwMUZDMDBCQTUxMTQgLyogWFBvaW50
ZXJFeHByZXNzaW9uSW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZGQ0UwODk3MDFGQzAw
QkE1MTE0IC8qIFhQb2ludGVyUmVzdWx0SW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMEZG
RDAwODk3MDFGQzAwQkE1MTE0IC8qIFhQb2ludGVyU2NoZW1lSW1wbC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJQThDMEZGRDEwODk3MDFGQzAwQkE1MTE0IC8qIGtkb214cG9pbnRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQThDMEZGREUwODk3MDFGQzAwQkE1MTE0IC8qIEtSZW5kZXJpbmdEZXZpY2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4QzBGRkUzMDg5NzAxRkMwMEJBNTExNCAvKiBLUmVuZGVy
aW5nRmlsbFBhaW50ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QzBGRkU0MDg5NzAxRkMwMEJB
NTExNCAvKiBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtNzg4MSwx
OTEgKzU2OTEsMjIgQEAKIAkJCQlBOEMwMDAxNjA4OTcwMUZDMDBCQTUxMTQgLyogS0NhbnZhc1Zp
ZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QzAwNUUwMDg5NzRFOTAwMEJBNTExNCAvKiByZW5k
ZXJfdGhlbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QzAwNUUxMDg5NzRFOTAwMEJBNTExNCAv
KiByZW5kZXJfdGhlbWVfbWFjLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEMwMDVFQTA4OTc0RUFD
MDBCQTUxMTQgLyogS0RPTUNhY2hlZE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThDMDA1
RUMwODk3NEVCNTAwQkE1MTE0IC8qIEtET01DYWNoZWRTY3JpcHQuaCBpbiBIZWFkZXJzICovLAot
CQkJCUE4QzAwNUY3MDg5NzRFRkMwMEJBNTExNCAvKiBLRE9NQ2FjaGVkU3R5bGVTaGVldC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJQThDMDA1RjgwODk3NEYwMTAwQkE1MTE0IC8qIEtET01DYWNoZWRP
YmplY3RDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdFNkZFRURBMDg5ODU4MjMwMEM0NEMz
RiAvKiBXZWJDb3JlU2NyaXB0RGVidWdnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTBFMzk1
MDhBNDE2MEYwMDMzM0Q5OCAvKiBLQ2FudmFzVHJlZURlYnVnLmggaW4gSGVhZGVycyAqLywKLQkJ
CQlBODAyNDM0RTA4QUM4NUVBMDAxQjI5REEgLyogRG9jdW1lbnRDU1NJbXBsLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlBODAyNDM1MzA4QUM4NjUxMDAxQjI5REEgLyogRE9NT2JqZWN0SW1wbC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJQTgxRDU2QTQwOEFDQUM3RTAwMTM2QUMxIC8qIFhQb2ludGVySGVs
cGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBODU2RTlCQzA4QjQ1QjFFMDA0MkUzMDMgLyogWFBh
dGhSZXN1bHRJbXBsLmggaW4gSGVhZGVycyAqLywKLQkJCQlBODU2RTlCRTA4QjQ1QjFFMDA0MkUz
MDMgLyogWFBhdGhOU1Jlc29sdmVySW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTg1NkU5QzAw
OEI0NUIxRTAwNDJFMzAzIC8qIFhQYXRoTmFtZXNwYWNlSW1wbC5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJQTg1NkU5QzIwOEI0NUIxRTAwNDJFMzAzIC8qIFhQYXRoRXhwcmVzc2lvbkltcGwuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUE4NTZFOUM0MDhCNDVCMUUwMDQyRTMwMyAvKiBYUGF0aEV4Y2VwdGlv
bkltcGwuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4NTZFOUM2MDhCNDVCMUUwMDQyRTMwMyAvKiBY
UGF0aEV2YWx1YXRvckltcGwuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4NTZFOUM4MDhCNDVCMUUw
MDQyRTMwMyAvKiB2YXJpYWJsZXJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTg1NkU5
Q0EwOEI0NUIxRTAwNDJFMzAzIC8qIHV0aWwuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4NTZFOUND
MDhCNDVCMUUwMDQyRTMwMyAvKiB0b2tlbml6ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4NTZF
OUNFMDhCNDVCMUUwMDQyRTMwMyAvKiBzdGVwLmggaW4gSGVhZGVycyAqLywKLQkJCQlBODU2RTlE
MDA4QjQ1QjFFMDA0MkUzMDMgLyogcHJlZGljYXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQlBODU2
RTlEMjA4QjQ1QjFFMDA0MkUzMDMgLyogcGF0aC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTg1NkU5
RDQwOEI0NUIxRTAwNDJFMzAzIC8qIHBhcnNlZHN0YXRlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJQTg1NkU5RDYwOEI0NUIxRTAwNDJFMzAzIC8qIGtkb214cGF0aC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJQTg1NkU5RDcwOEI0NUIxRTAwNDJFMzAzIC8qIGZ1bmN0aW9ucy5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJQTg1NkU5RDkwOEI0NUIxRTAwNDJFMzAzIC8qIGV4cHJlc3Npb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4MkZCQjY2MDhDNjI0MTMwMEVGRUUyMyAvKiBFdmVudE5hbWVzLmggaW4g
SGVhZGVycyAqLywKLQkJCQlBODJGQzI3NTA4QzkyOTJFMDBFRkVFMjMgLyogRE9NSW1wbGVtZW50
YXRpb25MU0ltcGwuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4MkZDMkYyMDhDOUFBRTQwMEVGRUUy
MyAvKiBMaW5rU3R5bGVJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODJGQzMzRDA4Q0JCMDdD
MDBFRkVFMjMgLyogU1ZHQ3Vyc29yRWxlbWVudEltcGwuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4
QkMwQzg3MDhEMTlGMUEwMDM3OTkxOCAvKiBBdHRyV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJQThCQzBDODkwOEQxOUYxQTAwMzc5OTE4IC8qIENEQVRBU2VjdGlvbldyYXBwZXIuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUE4QkMwQzhCMDhEMTlGMUEwMDM3OTkxOCAvKiBDaGFyYWN0ZXJEYXRh
V3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThCQzBDOEQwOEQxOUYxQTAwMzc5OTE4IC8q
IENvbW1lbnRXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEJDMEM4RjA4RDE5RjFBMDAz
Nzk5MTggLyogRG9jdW1lbnRGcmFnbWVudFdyYXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4
QkMwQzkxMDhEMTlGMUEwMDM3OTkxOCAvKiBEb2N1bWVudFR5cGVXcmFwcGVyLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlBOEJDMEM5MzA4RDE5RjFBMDAzNzk5MTggLyogRG9jdW1lbnRXcmFwcGVyLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlBOEJDMEM5NTA4RDE5RjFBMDAzNzk5MTggLyogRE9NQ29uZmln
dXJhdGlvbldyYXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QkMwQzk3MDhEMTlGMUEwMDM3
OTkxOCAvKiBET01FcnJvckhhbmRsZXJXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEJD
MEM5OTA4RDE5RjFBMDAzNzk5MTggLyogRE9NRXJyb3JXcmFwcGVyLmggaW4gSGVhZGVycyAqLywK
LQkJCQlBOEJDMEM5QjA4RDE5RjFBMDAzNzk5MTggLyogRE9NRXhjZXB0aW9uV3JhcHBlci5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJQThCQzBDOUQwOEQxOUYxQTAwMzc5OTE4IC8qIERPTUltcGxlbWVu
dGF0aW9uV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThCQzBDOUYwOEQxOUYxQTAwMzc5
OTE4IC8qIERPTUxvY2F0b3JXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEJDMENBMTA4
RDE5RjFBMDAzNzk5MTggLyogRE9NT2JqZWN0V3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
QThCQzBDQTMwOEQxOUYxQTAwMzc5OTE4IC8qIERPTVN0cmluZ0xpc3RXcmFwcGVyLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlBOEJDMENBNTA4RDE5RjFBMDAzNzk5MTggLyogRE9NVXNlckRhdGFXcmFw
cGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEJDMENBNzA4RDE5RjFBMDAzNzk5MTggLyogRWxl
bWVudFdyYXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QkMwQ0E5MDhEMTlGMUEwMDM3OTkx
OCAvKiBFbnRpdHlSZWZlcmVuY2VXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEJDMENB
QjA4RDE5RjFBMDAzNzk5MTggLyogRW50aXR5V3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
QThCQzBDQUQwOEQxOUYxQTAwMzc5OTE4IC8qIE5hbWVkTm9kZU1hcFdyYXBwZXIuaCBpbiBIZWFk
ZXJzICovLAotCQkJCUE4QkMwQ0FGMDhEMTlGMUEwMDM3OTkxOCAvKiBOb2RlTGlzdFdyYXBwZXIu
aCBpbiBIZWFkZXJzICovLAotCQkJCUE4QkMwQ0IxMDhEMTlGMUEwMDM3OTkxOCAvKiBOb2RlV3Jh
cHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThCQzBDQjMwOEQxOUYxQTAwMzc5OTE4IC8qIE5v
dGF0aW9uV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThCQzBDQjUwOEQxOUYxQTAwMzc5
OTE4IC8qIFByb2Nlc3NpbmdJbnN0cnVjdGlvbldyYXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJ
CUE4QkMwQ0I3MDhEMTlGMUEwMDM3OTkxOCAvKiBUZXh0V3JhcHBlci5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJQThCQzBDQjkwOEQxOUYxQTAwMzc5OTE4IC8qIFR5cGVJbmZvV3JhcHBlci5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJQThCQzBDQkIwOEQxOUYxQTAwMzc5OTE4IC8qIENvdW50ZXJXcmFwcGVy
LmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEJDMENCRDA4RDE5RjFBMDAzNzk5MTggLyogQ1NTQ2hh
cnNldFJ1bGVXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEJDMENCRjA4RDE5RjFBMDAz
Nzk5MTggLyogQ1NTRm9udEZhY2VSdWxlV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThC
QzBDQzEwOEQxOUYxQTAwMzc5OTE4IC8qIENTU0ltcG9ydFJ1bGVXcmFwcGVyLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlBOEJDMENDMzA4RDE5RjFBMDAzNzk5MTggLyogQ1NTTWVkaWFSdWxlV3JhcHBl
ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThCQzBDQzUwOEQxOUYxQTAwMzc5OTE4IC8qIENTU1Bh
Z2VSdWxlV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThCQzBDQzcwOEQxOUYxQTAwMzc5
OTE4IC8qIENTU1ByaW1pdGl2ZVZhbHVlV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThC
QzBDQzkwOEQxOUYxQTAwMzc5OTE4IC8qIENTU1J1bGVMaXN0V3JhcHBlci5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJQThCQzBDQ0IwOEQxOUYxQTAwMzc5OTE4IC8qIENTU1J1bGVXcmFwcGVyLmggaW4g
SGVhZGVycyAqLywKLQkJCQlBOEJDMENDRDA4RDE5RjFBMDAzNzk5MTggLyogQ1NTU3R5bGVEZWNs
YXJhdGlvbldyYXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QkMwQ0NGMDhEMTlGMUEwMDM3
OTkxOCAvKiBDU1NTdHlsZVJ1bGVXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEJDMENE
MTA4RDE5RjFBMDAzNzk5MTggLyogQ1NTU3R5bGVTaGVldFdyYXBwZXIuaCBpbiBIZWFkZXJzICov
LAotCQkJCUE4QkMwQ0QzMDhEMTlGMUEwMDM3OTkxOCAvKiBDU1NVbmtub3duUnVsZVdyYXBwZXIu
aCBpbiBIZWFkZXJzICovLAotCQkJCUE4QkMwQ0Q1MDhEMTlGMUEwMDM3OTkxOCAvKiBDU1NWYWx1
ZUxpc3RXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEJDMENENzA4RDE5RjFBMDAzNzk5
MTggLyogQ1NTVmFsdWVXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEJDMENEOTA4RDE5
RjFBMDAzNzk5MTggLyogRG9jdW1lbnRDU1NXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlB
OEJDMENEQjA4RDE5RjFBMDAzNzk5MTggLyogUmVjdFdyYXBwZXIuaCBpbiBIZWFkZXJzICovLAot
CQkJCUE4QkMwQ0REMDhEMTlGMUIwMDM3OTkxOCAvKiBSR0JDb2xvcldyYXBwZXIuaCBpbiBIZWFk
ZXJzICovLAotCQkJCUE4QkMwQ0RGMDhEMTlGMUIwMDM3OTkxOCAvKiBEb2N1bWVudEV2ZW50V3Jh
cHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThCQzBDRTEwOEQxOUYxQjAwMzc5OTE4IC8qIEV2
ZW50RXhjZXB0aW9uV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThCQzBDRTMwOEQxOUYx
QjAwMzc5OTE4IC8qIEV2ZW50TGlzdGVuZXJXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlB
OEJDMENFNTA4RDE5RjFCMDAzNzk5MTggLyogRXZlbnRUYXJnZXRXcmFwcGVyLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlBOEJDMENFNzA4RDE5RjFCMDAzNzk5MTggLyogRXZlbnRXcmFwcGVyLmggaW4g
SGVhZGVycyAqLywKLQkJCQlBOEJDMENFOTA4RDE5RjFCMDAzNzk5MTggLyogTW91c2VFdmVudFdy
YXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QkMwQ0VCMDhEMTlGMUIwMDM3OTkxOCAvKiBN
dXRhdGlvbkV2ZW50V3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThCQzBDRUQwOEQxOUYx
QjAwMzc5OTE4IC8qIFVJRXZlbnRXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEJDMENF
RjA4RDE5RjFCMDAzNzk5MTggLyogRG9jdW1lbnRSYW5nZVdyYXBwZXIuaCBpbiBIZWFkZXJzICov
LAotCQkJCUE4QkMwQ0YxMDhEMTlGMUIwMDM3OTkxOCAvKiBSYW5nZUV4Y2VwdGlvbldyYXBwZXIu
aCBpbiBIZWFkZXJzICovLAotCQkJCUE4QkMwQ0YzMDhEMTlGMUIwMDM3OTkxOCAvKiBSYW5nZVdy
YXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QkMwQ0Y1MDhEMTlGMUIwMDM3OTkxOCAvKiBE
b2N1bWVudFN0eWxlV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThCQzBDRjcwOEQxOUYx
QjAwMzc5OTE4IC8qIExpbmtTdHlsZVdyYXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QkMw
Q0Y5MDhEMTlGMUIwMDM3OTkxOCAvKiBNZWRpYUxpc3RXcmFwcGVyLmggaW4gSGVhZGVycyAqLywK
LQkJCQlBOEJDMENGQjA4RDE5RjFCMDAzNzk5MTggLyogU3R5bGVTaGVldExpc3RXcmFwcGVyLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlBOEJDMENGRDA4RDE5RjFCMDAzNzk5MTggLyogU3R5bGVTaGVl
dFdyYXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QkMwQ0ZGMDhEMTlGMUIwMDM3OTkxOCAv
KiBEb2N1bWVudFRyYXZlcnNhbFdyYXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QkMwRDAx
MDhEMTlGMUIwMDM3OTkxOCAvKiBOb2RlRmlsdGVyV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJQThCQzBEMDMwOEQxOUYxQjAwMzc5OTE4IC8qIE5vZGVJdGVyYXRvcldyYXBwZXIuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUE4QkMwRDA1MDhEMTlGMUIwMDM3OTkxOCAvKiBUcmVlV2Fsa2VyV3Jh
cHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThCQzBEMDcwOEQxOUYxQjAwMzc5OTE4IC8qIEFi
c3RyYWN0Vmlld1dyYXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QkMwRDBCMDhEMTlGMUIw
MDM3OTkxOCAvKiBYUGF0aEV2YWx1YXRvcldyYXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4
QkMwRDBEMDhEMTlGMUIwMDM3OTkxOCAvKiBYUGF0aEV4Y2VwdGlvbldyYXBwZXIuaCBpbiBIZWFk
ZXJzICovLAotCQkJCUE4QkMwRDBGMDhEMTlGMUIwMDM3OTkxOCAvKiBYUGF0aEV4cHJlc3Npb25X
cmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEJDMEQxMTA4RDE5RjFCMDAzNzk5MTggLyog
WFBhdGhOYW1lc3BhY2VXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEJDMEQxMzA4RDE5
RjFCMDAzNzk5MTggLyogWFBhdGhOU1Jlc29sdmVyV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJQThCQzBEMTUwOEQxOUYxQjAwMzc5OTE4IC8qIFhQYXRoUmVzdWx0V3JhcHBlci5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJQThCQzBEMTcwOEQxOUYxQjAwMzc5OTE4IC8qIFhQb2ludGVyRXZhbHVh
dG9yV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThCQzBEMTkwOEQxOUYxQjAwMzc5OTE4
IC8qIFhQb2ludGVyRXhjZXB0aW9uV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThCQzBE
MUIwOEQxOUYxQjAwMzc5OTE4IC8qIFhQb2ludGVyRXhwcmVzc2lvbldyYXBwZXIuaCBpbiBIZWFk
ZXJzICovLAotCQkJCUE4QkMwRDFEMDhEMTlGMUIwMDM3OTkxOCAvKiBYUG9pbnRlclJlc3VsdFdy
YXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QkMwREI3MDhENDIzMzkwMDM3OTkxOCAvKiBE
T01JbXBsZW1lbnRhdGlvbkxTV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThCQzBEQjkw
OEQ0MjMzOTAwMzc5OTE4IC8qIExTRXhjZXB0aW9uV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJQThCQzBEQkIwOEQ0MjMzOTAwMzc5OTE4IC8qIExTSW5wdXRXcmFwcGVyLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlBOEJDMERCRDA4RDQyMzM5MDAzNzk5MTggLyogTFNPdXRwdXRXcmFwcGVyLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlBOEJDMERCRjA4RDQyMzM5MDAzNzk5MTggLyogTFNQYXJzZXJG
aWx0ZXJXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEJDMERDMTA4RDQyMzM5MDAzNzk5
MTggLyogTFNQYXJzZXJXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEJDMERDMzA4RDQy
MzM5MDAzNzk5MTggLyogTFNSZXNvdXJjZVJlc29sdmVyV3JhcHBlci5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJQThCQzBEQzUwOEQ0MjMzOTAwMzc5OTE4IC8qIExTU2VyaWFsaXplckZpbHRlcldyYXBw
ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QkMwREM3MDhENDIzMzkwMDM3OTkxOCAvKiBMU1Nl
cmlhbGl6ZXJXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEJDMEREMDA4RDQyNzE1MDAz
Nzk5MTggLyogRG9jdW1lbnRWaWV3V3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTgxMjJF
NzIwOEQ1NjRCNDAwODQ0RkEzIC8qIEdldFNWR0RvY3VtZW50V3JhcHBlci5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJQTgxMjJFNzUwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0FFbGVtZW50V3JhcHBlci5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJQTgxMjJFNzcwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0FuZ2xl
V3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTgxMjJFNzkwOEQ1NjRCNDAwODQ0RkEzIC8q
IFNWR0FuaW1hdGVDb2xvckVsZW1lbnRXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEy
MkU3QjA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHQW5pbWF0ZWRBbmdsZVdyYXBwZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4MTIyRTdEMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdBbmltYXRlZEJvb2xl
YW5XcmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBODEyMkU3RjA4RDU2NEI0MDA4NDRGQTMg
LyogU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbldyYXBwZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
MTIyRTgxMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdBbmltYXRlZEludGVnZXJXcmFwcGVyLmggaW4g
SGVhZGVycyAqLywKLQkJCQlBODEyMkU4MzA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHQW5pbWF0ZWRM
ZW5ndGhMaXN0V3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTgxMjJFODUwOEQ1NjRCNDAw
ODQ0RkEzIC8qIFNWR0FuaW1hdGVkTGVuZ3RoV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
QTgxMjJFODcwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0FuaW1hdGVkTnVtYmVyTGlzdFdyYXBwZXIu
aCBpbiBIZWFkZXJzICovLAotCQkJCUE4MTIyRTg5MDhENTY0QjQwMDg0NEZBMyAvKiBTVkdBbmlt
YXRlZE51bWJlcldyYXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4MTIyRThCMDhENTY0QjQw
MDg0NEZBMyAvKiBTVkdBbmltYXRlZFBhdGhEYXRhV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJQTgxMjJFOEQwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0FuaW1hdGVkUG9pbnRzV3JhcHBlci5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJQTgxMjJFOEYwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0FuaW1h
dGVkUHJlc2VydmVBc3BlY3RSYXRpb1dyYXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4MTIy
RTkxMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdBbmltYXRlZFJlY3RXcmFwcGVyLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlBODEyMkU5MzA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHQW5pbWF0ZWRTdHJpbmdX
cmFwcGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEyMkU5NTA4RDU2NEI0MDA4NDRGQTMgLyog
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0V3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTgx
MjJFOTcwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0FuaW1hdGVFbGVtZW50V3JhcHBlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTgxMjJFOTkwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0FuaW1hdGVUcmFu
c2Zvcm1FbGVtZW50V3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxMjJFOUIwOEQ1NjRC
NDAwODQ0RkEzIC8qIFNWR0FuaW1hdGlvbkVsZW1lbnRXcmFwcGVyLmggaW4gSGVhZGVycyAqLywK
LQkJCQlBODEyMkU5RDA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHQ2lyY2xlRWxlbWVudFdyYXBwZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTIyRTlGMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdDbGlw
UGF0aEVsZW1lbnRXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBODEyMkVBMTA4RDU2NEI0
MDA4NDRGQTMgLyogU1ZHQ29sb3JXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEyMkVB
MzA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnRX
cmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBODEyMkVBNTA4RDU2NEI0MDA4NDRGQTMgLyog
U1ZHQ3Vyc29yRWxlbWVudFdyYXBwZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTIyRUE3MDhE
NTY0QjQwMDg0NEZBMyAvKiBTVkdEZWZzRWxlbWVudFdyYXBwZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE4MTIyRUE5MDhENTY0QjQwMDg0NEZBMyAvKiBTVkdEZXNjRWxlbWVudFdyYXBwZXIuaCBp
biBIZWFkZXJzICovLAotCQkJCUE4MTIyRUFCMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdEb2N1bWVu
dFdyYXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4MTIyRUFEMDhENTY0QjQwMDg0NEZBMyAv
KiBTVkdET01JbXBsZW1lbnRhdGlvbldyYXBwZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTIy
RUFGMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdFbGVtZW50SW5zdGFuY2VMaXN0V3JhcHBlci5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJQTgxMjJFQjEwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0VsZW1lbnRJ
bnN0YW5jZVdyYXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4MTIyRUIzMDhENTY0QjQwMDg0
NEZBMyAvKiBTVkdFbGVtZW50V3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxMjJFQjUw
OEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0VsbGlwc2VFbGVtZW50V3JhcHBlci5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJQTgxMjJFQjcwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0V2ZW50V3JhcHBlci5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJQTgxMjJFQjkwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0V4Y2VwdGlv
bldyYXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4MTIyRUJCMDhENTY0QjQwMDg0NEZBMyAv
KiBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJQTgxMjJFQkQwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0ZFQmxlbmRFbGVtZW50V3JhcHBlci5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJQTgxMjJFQkYwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0ZFQ29s
b3JNYXRyaXhFbGVtZW50V3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTgxMjJFQzEwOEQ1
NjRCNDAwODQ0RkEzIC8qIFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50V3JhcHBlci5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJQTgxMjJFQzMwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0ZFQ29tcG9z
aXRlRWxlbWVudFdyYXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4MTIyRUM1MDhENTY0QjQw
MDg0NEZBMyAvKiBTVkdGRUZsb29kRWxlbWVudFdyYXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJ
CUE4MTIyRUM3MDhENTY0QjQwMDg0NEZBMyAvKiBTVkdGRUZ1bmNBRWxlbWVudFdyYXBwZXIuaCBp
biBIZWFkZXJzICovLAotCQkJCUE4MTIyRUM5MDhENTY0QjQwMDg0NEZBMyAvKiBTVkdGRUZ1bmNC
RWxlbWVudFdyYXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4MTIyRUNCMDhENTY0QjQwMDg0
NEZBMyAvKiBTVkdGRUZ1bmNHRWxlbWVudFdyYXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4
MTIyRUNEMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdGRUZ1bmNSRWxlbWVudFdyYXBwZXIuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUE4MTIyRUNGMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdGRUdhdXNzaWFu
Qmx1ckVsZW1lbnRXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBODEyMkVEMTA4RDU2NEI0
MDA4NDRGQTMgLyogU1ZHRkVJbWFnZUVsZW1lbnRXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJ
CQlBODEyMkVEMzA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHRkVNZXJnZUVsZW1lbnRXcmFwcGVyLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlBODEyMkVENTA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHRkVNZXJn
ZU5vZGVFbGVtZW50V3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTgxMjJFRDcwOEQ1NjRC
NDAwODQ0RkEzIC8qIFNWR0ZFT2Zmc2V0RWxlbWVudFdyYXBwZXIuaCBpbiBIZWFkZXJzICovLAot
CQkJCUE4MTIyRUQ5MDhENTY0QjQwMDg0NEZBMyAvKiBTVkdGRVRpbGVFbGVtZW50V3JhcHBlci5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJQTgxMjJFREIwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0ZFVHVy
YnVsZW5jZUVsZW1lbnRXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBODEyMkVERDA4RDU2
NEI0MDA4NDRGQTMgLyogU1ZHRmlsdGVyRWxlbWVudFdyYXBwZXIuaCBpbiBIZWFkZXJzICovLAot
CQkJCUE4MTIyRURGMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFy
ZEF0dHJpYnV0ZXNXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBODEyMkVFMTA4RDU2NEI0
MDA4NDRGQTMgLyogU1ZHRml0VG9WaWV3Qm94V3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
QTgxMjJFRTMwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0dFbGVtZW50V3JhcHBlci5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJQTgxMjJFRTUwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0dyYWRpZW50RWxlbWVu
dFdyYXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4MTIyRUU3MDhENTY0QjQwMDg0NEZBMyAv
KiBTVkdJQ0NDb2xvcldyYXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4MTIyRUU5MDhENTY0
QjQwMDg0NEZBMyAvKiBTVkdJbWFnZUVsZW1lbnRXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJ
CQlBODEyMkVFQjA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHTGFuZ1NwYWNlV3JhcHBlci5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJQTgxMjJFRUQwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0xlbmd0aExpc3RX
cmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBODEyMkVFRjA4RDU2NEI0MDA4NDRGQTMgLyog
U1ZHTGVuZ3RoV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTgxMjJFRjEwOEQ1NjRCNTAw
ODQ0RkEzIC8qIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudFdyYXBwZXIuaCBpbiBIZWFkZXJzICov
LAotCQkJCUE4MTIyRUYzMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdMaW5lRWxlbWVudFdyYXBwZXIu
aCBpbiBIZWFkZXJzICovLAotCQkJCUE4MTIyRUY1MDhENTY0QjUwMDg0NEZBMyAvKiBTVkdMb2Nh
dGFibGVXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBODEyMkVGNzA4RDU2NEI1MDA4NDRG
QTMgLyogU1ZHTWFya2VyRWxlbWVudFdyYXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4MTIy
RUY5MDhENTY0QjUwMDg0NEZBMyAvKiBTVkdNYXRyaXhXcmFwcGVyLmggaW4gSGVhZGVycyAqLywK
LQkJCQlBODEyMkVGQjA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHTnVtYmVyTGlzdFdyYXBwZXIuaCBp
biBIZWFkZXJzICovLAotCQkJCUE4MTIyRUZEMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdOdW1iZXJX
cmFwcGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBODEyMkVGRjA4RDU2NEI1MDA4NDRGQTMgLyog
U1ZHUGFpbnRXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEyMkYwMTA4RDU2NEI1MDA4
NDRGQTMgLyogU1ZHUGF0aEVsZW1lbnRXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEy
MkYwMzA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHUGF0aFNlZ0FyY0Fic1dyYXBwZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4MTIyRjA1MDhENTY0QjUwMDg0NEZBMyAvKiBTVkdQYXRoU2VnQXJjUmVs
V3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCkBAIC04MTIyLDcgKzU3NjMsNiBAQAogCQkJCUE4MTIy
RjZCMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdWaWV3RWxlbWVudFdyYXBwZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4MTIyRjZEMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdab29tQW5kUGFuV3JhcHBl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxMjJGNkYwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1pv
b21FdmVudFdyYXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4RUE0MzQ1MDhFMTRFQUMwMDRC
QzM5NiAvKiB4bWxfa2RvbXRva2VuaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTQzNDcw
OEUxNEVBQzAwNEJDMzk2IC8qIHJlbmRlcl9rY2FudmFzd3JhcHBlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQThFQTQzNDkwOEUxNEVBQzAwNEJDMzk2IC8qIGRvbV9rZG9tbm9kZXRyZWV3cmFwcGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBNDM0QjA4RTE0RUFDMDA0QkMzOTYgLyogZG9tX2tk
b21kb2N1bWVudHdyYXBwZXIuaCBpbiBIZWFkZXJzICovLApAQCAtODEzMCw3ICs1NzcwLDIxIEBA
CiAJCQkJRTFFRTc3MzkwOEYxMDg2QzAwMTY2ODcwIC8qIFdlYkNvcmVUZXh0RGVjb2Rlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQThCQTVDNzEwOTBDQjA3QTAwNEQxMTgwIC8qIHJlbmRlcl9hcmVu
YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThCQTVDNzIwOTBDQjA3QTAwNEQxMTgwIC8qIHJlbmRl
cl9idXR0b24uaCBpbiBIZWFkZXJzICovLAorCQkJCUE4MjA5MDY3MDkxMzc5RjMwMDBCRTRGNCAv
KiBLRE9NSGVhZGVycy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTgyMDkxMkYwOTEzODFGNTAwMEJF
NEY0IC8qIEtET01TdHViQ2xhc3Nlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgzQzgxQTEwOTEx
ODlCOTAwOUJGNEE3IC8qIFhTTFRQcm9jZXNzb3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4MjA5
MjEwMDkxMzkwQjMwMDBCRTRGNCAvKiBET01MaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlBODIw
OTRDQTA5MTQwRUE1MDAwQkU0RjQgLyoga2RvbXRyYXZlcnNhbC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQTgyMDk0Q0IwOTE0MEVBNTAwMEJFNEY0IC8qIGtkb21ldmVudHMuaCBpbiBIZWFkZXJzICov
LAorCQkJCUE4MjA5NENDMDkxNDBFQTUwMDBCRTRGNCAvKiBrZG9tbHMuaCBpbiBIZWFkZXJzICov
LAorCQkJCUE4MjA5NENEMDkxNDBFQTUwMDBCRTRGNCAvKiBrZG9tcmFuZ2UuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUE4MjA5NENFMDkxNDBFQTUwMDBCRTRGNCAvKiBrZG9tY3NzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlBODIwOTRDRjA5MTQwRUE1MDAwQkU0RjQgLyoga2RvbS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQTgzQTE4RDQwOTE0MjE0RjAwMEVDMzExIC8qIE5hbWVzcGFjZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQThDODAxNTcwOTE0MzU3NDAwNkE1RTVCIC8qIFNWR0VsZW1lbnRGYWN0b3J5
LmggaW4gSGVhZGVycyAqLywKKwkJCQlBOEM4MDFBNzA5MTQzRTNCMDA2QTVFNUIgLyogU1ZHTmFt
ZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4NEI5RkMyMDkxNzBEQTMwMEQ3MUREMCAvKiBSR0JD
b2xvckltcGwuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4NEI5RkMzMDkxNzBEQTMwMEQ3MUREMCAv
KiBLRE9NU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtODE1NCw2ICs1ODA4LDcgQEAKIAkJ
CQk5MzJGQzE2QjA4MjRBOTAxMDA1QjNDNzUgLyoga2pzX3RyYXZlcnNhbC5sdXQuaCAqLywKIAkJ
CQk5MzJGQzE2RDA4MjRBOTA2MDA1QjNDNzUgLyoga2pzX3ZpZXdzLmx1dC5oICovLAogCQkJCTkz
MkZDMTZGMDgyNEE5MEQwMDVCM0M3NSAvKiBranNfd2luZG93Lmx1dC5oICovLAorCQkJCUE4OTgx
Qjg4MDhGQjVFM0IwMEZGMkY0NiAvKiBYU0xUUHJvY2Vzc29yLmx1dC5oICovLAogCQkJCTkzMkZD
MEQyMDgyNEEyQzQwMDVCM0M3NSAvKiBLV1FDaGFyc2V0RGF0YS5jICovLAogCQkJCTkzMkZDMERB
MDgyNEEzMzcwMDVCM0M3NSAvKiBLV1FDb2xvckRhdGEuYyAqLywKIAkJCQk5M0VBNjg0NDA4MjQ5
NzkwMDA2ODdGNTYgLyogbGlieG1sMi1XZWJDb3JlICovLApAQCAtODI1Miw2ICs1OTA3LDcgQEAK
IAkJCQlBODIxMkE3QjA4Nzk0QTIzMDA2NzczNTkgLyoga2pzX3RyYXZlcnNhbC5sdXQuaCAqLywK
IAkJCQlBODIxMkE3QzA4Nzk0QTIzMDA2NzczNTkgLyoga2pzX3ZpZXdzLmx1dC5oICovLAogCQkJ
CUE4MjEyQTdEMDg3OTRBMjMwMDY3NzM1OSAvKiBranNfd2luZG93Lmx1dC5oICovLAorCQkJCUE4
OTgxRDFEMDhGQkJCMjAwMEZGMkY0NiAvKiBYU0xUUHJvY2Vzc29yLmx1dC5oICovLAogCQkJCUE4
MjEyQTdFMDg3OTRBMjMwMDY3NzM1OSAvKiBLV1FDaGFyc2V0RGF0YS5jICovLAogCQkJCUE4MjEy
QTdGMDg3OTRBMjMwMDY3NzM1OSAvKiBLV1FDb2xvckRhdGEuYyAqLywKIAkJCQlBODIxMkE4MDA4
Nzk0QTIzMDA2NzczNTkgLyogbGlieG1sMi1XZWJDb3JlICovLApAQCAtODI2MSwxMyArNTkxNywx
MCBAQAogCQkJCUE4MjEyQTg0MDg3OTRBMjMwMDY3NzM1OSAvKiB4bWxzZXJpYWxpemVyLmx1dC5o
ICovLAogCQkJCUE4M0M4Njg1MDkxMUFBOUQwMDlCRjRBNyAvKiBYU0xUUHJvY2Vzc29yLmx1dC5o
ICovLAogCQkJCUE4MjEyQTg1MDg3OTRBMjMwMDY3NzM1OSAvKiBkb21wYXJzZXIubHV0LmggKi8s
Ci0JCQkJQTgxRDVBQUIwOEFERkFBMjAwMTM2QUMxIC8qIEdsb2JhbE9iamVjdC5sdXQuaCAqLywK
IAkJCQlBODU2RTk2NzA4QjQ1MDMzMDA0MkUzMDMgLyoga2RvbWNzc3Byb3BlcnRpZXMuYy9oICov
LAogCQkJCUE4MzdBRUVFMDhCNjk4RkMwMEVCRkZEQyAvKiBrZG9tY3NzdmFsdWVzLmMvaCAqLywK
IAkJCQlBODM3QUVGMTA4QjY5OTExMDBFQkZGREMgLyoga3N2Z2Nzc3Byb3BlcnRpZXMuYy9oICov
LAogCQkJCUE4MzdBRUYzMDhCNjk5MkMwMEVCRkZEQyAvKiBrc3ZnY3NzdmFsdWVzLmMvaCAqLywK
LQkJCQlBOEJDMEE5RTA4RDE4RTg1MDAzNzk5MTggLyogS0RPTSBFY21hSW50ZXJmYWNlLmNwcC9o
ICovLAotCQkJCUE4MTIyQzcwMDhENTVGMkEwMDg0NEZBMyAvKiBHZW5lcmF0ZSBLRE9NIEpTIEJp
bmRpbmdzICovLAogCQkJCUE4QkMwQjAxMDhEMTk1NDUwMDM3OTkxOCAvKiBLU1ZHIEVjbWFJbnRl
cmZhY2UuY3BwL2ggKi8sCiAJCQkJQTgxMjJDNzIwOEQ1NUYzQzAwODQ0RkEzIC8qIEdlbmVyYXRl
IEtTVkcgSlMgQmluZGluZ3MgKi8sCiAJCQkJQTgyMTJBODYwODc5NEEyMzAwNjc3MzU5IC8qIEhl
YWRlcnMgKi8sCkBAIC04NzY2LDIzICs2NDE5LDYgQEAKIAkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7
CiAJCQlzaGVsbFNjcmlwdCA9ICJncGVyZiAtYSAtTCBBTlNJLUMgLUMgLUcgLWMgLW8gLXQgLWsg
JyonIC1OZmluZEVudGl0eSAtRCAtcyAyIGtodG1sL2h0bWwva2VudGl0aWVzLmdwZXJmID4gXCIk
REVSSVZFRF9GSUxFX0RJUi9rZW50aXRpZXMuY1wiIjsKIAkJfTsKLQkJQTgxMjJDNzAwOEQ1NUYy
QTAwODQ0RkEzIC8qIEdlbmVyYXRlIEtET00gSlMgQmluZGluZ3MgKi8gPSB7Ci0JCQlpc2EgPSBQ
QlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7Ci0JCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3
OwotCQkJZmlsZXMgPSAoCi0JCQkpOwotCQkJaW5wdXRQYXRocyA9ICgKLQkJCQlrZG9tL2JpbmRp
bmdzL2tkb21pZGwucGwsCi0JCQkJa2RvbS9iaW5kaW5ncy9JRExDb2RlR2VuZXJhdG9ySnMucG0s
Ci0JCQkpOwotCQkJbmFtZSA9ICJHZW5lcmF0ZSBLRE9NIEpTIEJpbmRpbmdzIjsKLQkJCW91dHB1
dFBhdGhzID0gKAotCQkJCWtkb20vYmluZGluZ3MvanMvY29yZS9BdHRyV3JhcHBlci5oLAotCQkJ
KTsKLQkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwotCQkJc2hlbGxQ
YXRoID0gL2Jpbi9zaDsKLQkJCXNoZWxsU2NyaXB0ID0gIiMgVGhpcyBpcyBhIHRlbXBvcmFyeSBo
YWNrIHVudGlsIHRoZXNlIGlzc3VlcyBhcmUgcmVzb2x2ZWQ6XG4jIDxyZGFyOi8vcHJvYmxlbS80
MjUxNzgxPiBPcmRlciBub3QgcmVzcGVjdGVkIGluIFwiY29tcGlsZSBzb3VyY2VzXCIgYnVpbGQg
cGhhc2UgKGN1c3RvbSBidWlsZCBydWxlIGZpbGVzIHJ1biBsYXN0KVxuIyA8cmRhcjovL3Byb2Js
ZW0vNDI1MTc4NT4gR2VuZXJhdGVkIHNvdXJjZSBmaWxlcyBzaG91bGQgYmUgZmVkIGJhY2sgaW50
byBkZXBlbmRlbmN5IHN5c3RlbSBiZWZvcmUgZnVydGhlciBwcm9jZXNzaW5nXG5cbi4uL1NWR1N1
cHBvcnQvZ2VuZXJhdGVKU0JpbmRpbmdzLnBsIjsKLQkJfTsKIAkJQTgxMjJDNzIwOEQ1NUYzQzAw
ODQ0RkEzIC8qIEdlbmVyYXRlIEtTVkcgSlMgQmluZGluZ3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhT
aGVsbFNjcmlwdEJ1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpA
QCAtODgwMCwyMyArNjQzNiw2IEBACiAJCQlzaGVsbFBhdGggPSAvYmluL3NoOwogCQkJc2hlbGxT
Y3JpcHQgPSAiIyBUaGlzIGlzIGEgdGVtcG9yYXJ5IGhhY2sgdW50aWwgdGhlc2UgaXNzdWVzIGFy
ZSByZXNvbHZlZDpcbiMgPHJkYXI6Ly9wcm9ibGVtLzQyNTE3ODE+IE9yZGVyIG5vdCByZXNwZWN0
ZWQgaW4gXCJjb21waWxlIHNvdXJjZXNcIiBidWlsZCBwaGFzZSAoY3VzdG9tIGJ1aWxkIHJ1bGUg
ZmlsZXMgcnVuIGxhc3QpXG4jIDxyZGFyOi8vcHJvYmxlbS80MjUxNzg1PiBHZW5lcmF0ZWQgc291
cmNlIGZpbGVzIHNob3VsZCBiZSBmZWQgYmFjayBpbnRvIGRlcGVuZGVuY3kgc3lzdGVtIGJlZm9y
ZSBmdXJ0aGVyIHByb2Nlc3NpbmdcblxuLi4vU1ZHU3VwcG9ydC9nZW5lcmF0ZUpTQmluZGluZ3Mu
cGwgLS1uYW1lc3BhY2Uga3N2ZzIiOwogCQl9OwotCQlBODFENUFBQjA4QURGQUEyMDAxMzZBQzEg
LyogR2xvYmFsT2JqZWN0Lmx1dC5oICovID0gewotCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWls
ZFBoYXNlOwotCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKLQkJCWZpbGVzID0gKAot
CQkJKTsKLQkJCWlucHV0UGF0aHMgPSAoCi0JCQkJIiQoQ1JFQVRFX0hBU0hfVEFCTEUpIiwKLQkJ
CQlrZG9tL2VjbWEvR2xvYmFsT2JqZWN0LmNwcCwKLQkJCSk7Ci0JCQluYW1lID0gR2xvYmFsT2Jq
ZWN0Lmx1dC5oOwotCQkJb3V0cHV0UGF0aHMgPSAoCi0JCQkJJERFUklWRURfRklMRV9ESVIvR2xv
YmFsT2JqZWN0Lmx1dC5oLAotCQkJKTsKLQkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwotCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKLQkJCXNoZWxsU2NyaXB0ID0gIlwi
JENSRUFURV9IQVNIX1RBQkxFXCIga2RvbS9lY21hL0dsb2JhbE9iamVjdC5jcHAgLW4gS0RPTSA+
IFwiJERFUklWRURfRklMRV9ESVIvR2xvYmFsT2JqZWN0Lmx1dC5oXCIiOwotCQl9OwogCQlBODIx
MkE2RjA4Nzk0QTIzMDA2NzczNTkgLyogY3NzcHJvcGVydGllcy5jL2ggKi8gPSB7CiAJCQlpc2Eg
PSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgz
NjQ3OwpAQCAtOTI2Miw0MiArNjg4MSw1NiBAQAogCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKIAkJ
CXNoZWxsU2NyaXB0ID0gImNhdCBrZG9tL2Nzcy9jc3Nwcm9wZXJ0aWVzLmluID4gXCIkREVSSVZF
RF9GSUxFX0RJUi9rZG9tY3NzcHJvcGVydGllcy5pblwiXG5jZCBcIiRERVJJVkVEX0ZJTEVfRElS
XCJcblwiJFNSQ1JPT1Qva2RvbS9zY3JpcHRzL2Nzc21ha2Vwcm9wc1wiIC1uIEtET00gLWYga2Rv
bWNzc3Byb3BlcnRpZXMuaW4iOwogCQl9OwotCQlBOEFBNjE5QjA4OUNEQUJGMDA2NjY4MjUgLyog
V2ViQ29yZStTVkcuZXhwICovID0geworCQlBODk4MUI4ODA4RkI1RTNCMDBGRjJGNDYgLyogWFNM
VFByb2Nlc3Nvci5sdXQuaCAqLyA9IHsKIAkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFz
ZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCSk7
CiAJCQlpbnB1dFBhdGhzID0gKAotCQkJCVdlYkNvcmUuZXhwLAotCQkJCSJXZWJDb3JlLXN2Zy5l
eHAiLAorCQkJCSIkKENSRUFURV9IQVNIX1RBQkxFKSIsCisJCQkJa2h0bWwvZWNtYS9YU0xUUHJv
Y2Vzc29yLmNwcCwKIAkJCSk7Ci0JCQluYW1lID0gIldlYkNvcmUrU1ZHLmV4cCI7CisJCQluYW1l
ID0gWFNMVFByb2Nlc3Nvci5sdXQuaDsKIAkJCW91dHB1dFBhdGhzID0gKAotCQkJCSIkKERFUklW
RURfRklMRV9ESVIpL1dlYkNvcmUrU1ZHLmV4cCIsCisJCQkJIiQoREVSSVZFRF9GSUxFX0RJUikv
WFNMVFByb2Nlc3Nvci5sdXQuaCIsCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCQlzaGVsbFBhdGggPSAvYmluL3NoOwotCQkJc2hlbGxTY3JpcHQg
PSAiaWYgZ2NjIC1kdW1wdmVyc2lvbiB8IGdyZXAgLXEgJ14zXFwuJ1xudGhlblxuICAgIGNhdCBX
ZWJDb3JlLmV4cCBXZWJDb3JlLXN2Zy5leHAgfCBncmVwIC12ICdeX19aVEknID4gXCIkREVSSVZF
RF9GSUxFX0RJUi9XZWJDb3JlK1NWRy5leHBcIlxuZWxzZVxuICAgIGNhdCBXZWJDb3JlLmV4cCBX
ZWJDb3JlLXN2Zy5leHAgPiBcIiRERVJJVkVEX0ZJTEVfRElSL1dlYkNvcmUrU1ZHLmV4cFwiXG5m
aSI7CisJCQlzaGVsbFNjcmlwdCA9ICJcIiRDUkVBVEVfSEFTSF9UQUJMRVwiIGtodG1sL2VjbWEv
WFNMVFByb2Nlc3Nvci5jcHAgPiBcIiRERVJJVkVEX0ZJTEVfRElSL1hTTFRQcm9jZXNzb3IubHV0
LmhcIiI7CiAJCX07Ci0JCUE4QkMwQTlFMDhEMThFODUwMDM3OTkxOCAvKiBLRE9NIEVjbWFJbnRl
cmZhY2UuY3BwL2ggKi8gPSB7CisJCUE4OTgxRDFEMDhGQkJCMjAwMEZGMkY0NiAvKiBYU0xUUHJv
Y2Vzc29yLmx1dC5oICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwog
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJKTsKIAkJ
CWlucHV0UGF0aHMgPSAoCi0JCQkJa2RvbS9iaW5kaW5ncy9pZGwvY29yZS9Ob2RlLmlkbCwKLQkJ
CQlrZG9tL2JpbmRpbmdzL0lETENvZGVHZW5lcmF0b3JFY21hSW50ZXJmYWNlLnBtLAotCQkJCWtk
b20vYmluZGluZ3Mva2RvbWlkbC5wbCwKLQkJCQlrZG9tL2JpbmRpbmdzL0lETENvZGVHZW5lcmF0
b3JKcy5wbSwKKwkJCQkiJChDUkVBVEVfSEFTSF9UQUJMRSkiLAorCQkJCWtodG1sL2VjbWEvWFNM
VFByb2Nlc3Nvci5jcHAsCisJCQkpOworCQkJbmFtZSA9IFhTTFRQcm9jZXNzb3IubHV0Lmg7CisJ
CQlvdXRwdXRQYXRocyA9ICgKKwkJCQkiJChERVJJVkVEX0ZJTEVfRElSKS9YU0xUUHJvY2Vzc29y
Lmx1dC5oIiwKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKKwkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9ICJcIiRDUkVBVEVf
SEFTSF9UQUJMRVwiIGtodG1sL2VjbWEvWFNMVFByb2Nlc3Nvci5jcHAgPiBcIiRERVJJVkVEX0ZJ
TEVfRElSL1hTTFRQcm9jZXNzb3IubHV0LmhcIiI7CisJCX07CisJCUE4QUE2MTlCMDg5Q0RBQkYw
MDY2NjgyNSAvKiBXZWJDb3JlK1NWRy5leHAgKi8gPSB7CisJCQlpc2EgPSBQQlhTaGVsbFNjcmlw
dEJ1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMg
PSAoCisJCQkpOworCQkJaW5wdXRQYXRocyA9ICgKKwkJCQlXZWJDb3JlLmV4cCwKKwkJCQkiV2Vi
Q29yZS1zdmcuZXhwIiwKIAkJCSk7Ci0JCQluYW1lID0gIktET00gRWNtYUludGVyZmFjZS5jcHAv
aCI7CisJCQluYW1lID0gIldlYkNvcmUrU1ZHLmV4cCI7CiAJCQlvdXRwdXRQYXRocyA9ICgKLQkJ
CQlrZG9tL2VjbWEvRWNtYUludGVyZmFjZS5jcHAsCi0JCQkJJERFUklWRURfRklMRV9ESVIva2Rv
bS9lY21hL0VjbWFJbnRlcmZhY2UuaCwKKwkJCQkiJChERVJJVkVEX0ZJTEVfRElSKS9XZWJDb3Jl
K1NWRy5leHAiLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKLQkJCXNoZWxsU2NyaXB0ID0gIkVDTUFfT1VU
UFVUX0RJUj1cIiR7REVSSVZFRF9GSUxFX0RJUn0va2RvbS9lY21hXCJcbm1rZGlyIC1wIFwiJHtF
Q01BX09VVFBVVF9ESVJ9XCJcblxuL3Vzci9iaW4vcGVybCAtSWtkb20vYmluZGluZ3Mga2RvbS9i
aW5kaW5ncy9rZG9taWRsLnBsIFxcXG5cdC0tZ2VuZXJhdG9yIGVjbWFJbnRlcmZhY2UgXFxcblx0
LS1vdXRwdXRkaXIgXCIke0VDTUFfT1VUUFVUX0RJUn1cIiBcXFxuXHQtLWluY2x1ZGVkaXIga2Rv
bS9iaW5kaW5ncy9pZGwgXFxcblx0LS1pbnB1dCBrZG9tL2JpbmRpbmdzL2lkbC9jb3JlL05vZGUu
aWRsIFxcXG5cdC0tZG9jdW1lbnRhdGlvbiBlbXB0eSA7XG5cbiMgSGFjayB1bnRpbCA8cmRhcjov
L3Byb2JsZW0vNDI1MTc4ND4gXCJEZXJpdmVkU291cmNlcyAoYnVpbGQgaW50ZXJtZWRpYXRlcykg
cmVsYXRpdmUgZmlsZXBhdGhzIHNob3VsZCBiZSBwb3NzaWJsZVwiIGlzIGZpeGVkLlxubG4gLXNm
IFwiJEVDTUFfT1VUUFVUX0RJUi9FY21hSW50ZXJmYWNlLmNwcFwiIGtkb20vZWNtYS9FY21hSW50
ZXJmYWNlLmNwcCI7CisJCQlzaGVsbFNjcmlwdCA9ICJpZiBnY2MgLWR1bXB2ZXJzaW9uIHwgZ3Jl
cCAtcSAnXjNcXC4nXG50aGVuXG4gICAgY2F0IFdlYkNvcmUuZXhwIFdlYkNvcmUtc3ZnLmV4cCB8
IGdyZXAgLXYgJ15fX1pUSScgPiBcIiRERVJJVkVEX0ZJTEVfRElSL1dlYkNvcmUrU1ZHLmV4cFwi
XG5lbHNlXG4gICAgY2F0IFdlYkNvcmUuZXhwIFdlYkNvcmUtc3ZnLmV4cCA+IFwiJERFUklWRURf
RklMRV9ESVIvV2ViQ29yZStTVkcuZXhwXCJcbmZpIjsKIAkJfTsKIAkJQThCQzBCMDEwOEQxOTU0
NTAwMzc5OTE4IC8qIEtTVkcgRWNtYUludGVyZmFjZS5jcHAvaCAqLyA9IHsKIAkJCWlzYSA9IFBC
WFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKQEAgLTk4NTcsMTUgKzc0OTAsMTEgQEAKIAkJCQlBOEMw
RkI5NzA4OTcwMUY5MDBCQTUxMTQgLyogRHJhd1ZpZXcubW0gaW4gU291cmNlcyAqLywKIAkJCQlB
OEMwRkI5QjA4OTcwMUY5MDBCQTUxMTQgLyogTlNTVkdJbWFnZVJlcC5tIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThDMEZCOUMwODk3MDFGOTAwQkE1MTE0IC8qIEtDYW52YXNSZW5kZXJpbmdTdHlsZS5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEMwRkI5RTA4OTcwMUY5MDBCQTUxMTQgLyogS1NWR0Rv
Y3VtZW50QnVpbGRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEMwRkJBMDA4OTcwMUY5MDBC
QTUxMTQgLyogS1NWR1RpbWVTY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThDMEZC
QTUwODk3MDFGOTAwQkE1MTE0IC8qIEtTVkdDU1NQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQThDMEZCQTgwODk3MDFGOTAwQkE1MTE0IC8qIFNWR0NTU1N0eWxlRGVjbGFyYXRpb25JbXBs
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzBGQkFBMDg5NzAxRjkwMEJBNTExNCAvKiBTVkdD
U1NTdHlsZVNlbGVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QzBGQkFDMDg5NzAxRjkw
MEJBNTExNCAvKiBTVkdDU1NTdHlsZVNoZWV0SW1wbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
OEMwRkJBRTA4OTcwMUY5MDBCQTUxMTQgLyogU1ZHUmVuZGVyU3R5bGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQThDMEZCQjAwODk3MDFGOTAwQkE1MTE0IC8qIFNWR1JlbmRlclN0eWxlRGVmcy5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEMwRkM5RDA4OTcwMUY5MDBCQTUxMTQgLyogU1ZHRXZl
bnRJbXBsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QzBGQzlGMDg5NzAxRjkwMEJBNTExNCAv
KiBTVkdab29tRXZlbnRJbXBsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QzBGQ0E4MDg5NzAx
RjkwMEJBNTExNCAvKiBTVkdBRWxlbWVudEltcGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThD
MEZDQUEwODk3MDFGOTAwQkE1MTE0IC8qIFNWR0FuZ2xlSW1wbC5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTk4OTYsMTAgKzc1MjUsNyBAQAogCQkJCUE4QzBGQ0UwMDg5NzAxRjkwMEJBNTExNCAvKiBT
VkdEb2N1bWVudEltcGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThDMEZDRTIwODk3MDFGOTAw
QkE1MTE0IC8qIFNWR0RPTUltcGxlbWVudGF0aW9uSW1wbC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBOEMwRkNFNDA4OTcwMUY5MDBCQTUxMTQgLyogU1ZHRWxlbWVudEltcGwuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJQThDMEZDRTYwODk3MDFGOTAwQkE1MTE0IC8qIFNWR0VsZW1lbnRJbnN0YW5j
ZUltcGwuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThDMEZDRTgwODk3MDFGOTAwQkE1MTE0IC8q
IFNWR0VsZW1lbnRJbnN0YW5jZUxpc3RJbXBsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QzBG
Q0VBMDg5NzAxRjkwMEJBNTExNCAvKiBTVkdFbGxpcHNlRWxlbWVudEltcGwuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJQThDMEZDRUMwODk3MDFGOTAwQkE1MTE0IC8qIFNWR0V4Y2VwdGlvbkltcGwu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThDMEZDRUUwODk3MDFGOTAwQkE1MTE0IC8qIFNWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QzBG
Q0YwMDg5NzAxRjkwMEJBNTExNCAvKiBTVkdGRUJsZW5kRWxlbWVudEltcGwuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQThDMEZDRjIwODk3MDFGOTAwQkE1MTE0IC8qIFNWR0ZFQ29sb3JNYXRyaXhF
bGVtZW50SW1wbC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTk5ODIsMTEzICs3NjA4LDYgQEAKIAkJ
CQlBOEMwRkQ5MDA4OTcwMUZBMDBCQTUxMTQgLyogU1ZHVXNlRWxlbWVudEltcGwuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQThDMEZEOTIwODk3MDFGQTAwQkE1MTE0IC8qIFNWR1ZpZXdFbGVtZW50
SW1wbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEMwRkQ5NDA4OTcwMUZBMDBCQTUxMTQgLyog
U1ZHWm9vbUFuZFBhbkltcGwuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThDMEZEOUQwODk3MDFG
QTAwQkE1MTE0IC8qIEtXUUtTVkdQYXJ0Lm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQThDMEZEOUYw
ODk3MDFGQTAwQkE1MTE0IC8qIEtXUUtTVkdWaWV3Lm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQThD
MEZEQTkwODk3MDFGQTAwQkE1MTE0IC8qIExpYlhNTFBhcnNlci5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQlBOEMwRkRBRjA4OTcwMUZBMDBCQTUxMTQgLyogS0RPTUNhY2hlLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCUE4QzBGREIxMDg5NzAxRkEwMEJBNTExNCAvKiBLRE9NQ2FjaGVkRG9jdW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThDMEZEQkUwODk3MDFGQTAwQkE1MTE0IC8qIEtET01M
b2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThDMEZERUMwODk3MDFGQTAwQkE1MTE0IC8q
IENvdW50ZXJJbXBsLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzBGREVFMDg5NzAxRkEwMEJB
NTExNCAvKiBDU1NDaGFyc2V0UnVsZUltcGwuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThDMEZE
RjAwODk3MDFGQTAwQkE1MTE0IC8qIENTU0ZvbnRGYWNlUnVsZUltcGwuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJQThDMEZERjIwODk3MDFGQTAwQkE1MTE0IC8qIENTU0ltYWdlVmFsdWVJbXBsLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzBGREY0MDg5NzAxRkEwMEJBNTExNCAvKiBDU1NJbXBv
cnRSdWxlSW1wbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEMwRkRGNjA4OTcwMUZBMDBCQTUx
MTQgLyogQ1NTTWVkaWFSdWxlSW1wbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEMwRkRGODA4
OTcwMUZBMDBCQTUxMTQgLyogQ1NTUGFnZVJ1bGVJbXBsLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CUE4QzBGREZBMDg5NzAxRkEwMEJBNTExNCAvKiBDU1NQcmltaXRpdmVWYWx1ZUltcGwuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJQThDMEZERkQwODk3MDFGQTAwQkE1MTE0IC8qIENTU1J1bGVJbXBs
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzBGREZGMDg5NzAxRkEwMEJBNTExNCAvKiBDU1NS
dWxlTGlzdEltcGwuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThDMEZFMDEwODk3MDFGQTAwQkE1
MTE0IC8qIENTU1N0eWxlRGVjbGFyYXRpb25JbXBsLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4
QzBGRTAzMDg5NzAxRkEwMEJBNTExNCAvKiBDU1NTdHlsZVJ1bGVJbXBsLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCUE4QzBGRTA1MDg5NzAxRkEwMEJBNTExNCAvKiBDU1NTdHlsZVNlbGVjdG9yLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzBGRTA3MDg5NzAxRkEwMEJBNTExNCAvKiBDU1NTdHls
ZVNoZWV0SW1wbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEMwRkUwOTA4OTcwMUZBMDBCQTUx
MTQgLyogQ1NTVW5rbm93blJ1bGVJbXBsLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzBGRTBC
MDg5NzAxRkEwMEJBNTExNCAvKiBDU1NWYWx1ZUltcGwuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
QThDMEZFMEQwODk3MDFGQTAwQkE1MTE0IC8qIENTU1ZhbHVlTGlzdEltcGwuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJQThDMEZFMTAwODk3MDFGQTAwQkE1MTE0IC8qIERvY3VtZW50U3R5bGVJbXBs
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzBGRTEyMDg5NzAxRkEwMEJBNTExNCAvKiBGb250
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzBGRTE0MDg5NzAxRkEwMEJBNTExNCAvKiBLRE9N
Q1NTUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzBGRTE3MDg5NzAxRkEwMEJBNTEx
NCAvKiBNZWRpYUxpc3RJbXBsLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzBGRTE5MDg5NzAx
RkEwMEJBNTExNCAvKiBSZWN0SW1wbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEMwRkUxQjA4
OTcwMUZBMDBCQTUxMTQgLyogUmVuZGVyU3R5bGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThD
MEZFMUQwODk3MDFGQTAwQkE1MTE0IC8qIFJlbmRlclN0eWxlRGVmcy5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQlBOEMwRkUxRjA4OTcwMUZBMDBCQTUxMTQgLyogUkdCQ29sb3JJbXBsLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCUE4QzBGRTIxMDg5NzAxRkEwMEJBNTExNCAvKiBTdHlsZUJhc2VJbXBs
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzBGRTIzMDg5NzAxRkEwMEJBNTExNCAvKiBTdHls
ZVNoZWV0SW1wbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEMwRkUyNTA4OTcwMUZBMDBCQTUx
MTQgLyogU3R5bGVTaGVldExpc3RJbXBsLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzBGRTU1
MDg5NzAxRkIwMEJBNTExNCAvKiBET01TdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThD
MEZFNzgwODk3MDFGQjAwQkE1MTE0IC8qIERvY3VtZW50RXZlbnRJbXBsLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCUE4QzBGRTdBMDg5NzAxRkIwMEJBNTExNCAvKiBFdmVudEV4Y2VwdGlvbkltcGwu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThDMEZFN0MwODk3MDFGQjAwQkE1MTE0IC8qIEV2ZW50
SW1wbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEMwRkU3RTA4OTcwMUZCMDBCQTUxMTQgLyog
RXZlbnRMaXN0ZW5lckltcGwuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThDMEZFODAwODk3MDFG
QjAwQkE1MTE0IC8qIEV2ZW50VGFyZ2V0SW1wbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEMw
RkU4MjA4OTcwMUZCMDBCQTUxMTQgLyogS2V5Ym9hcmRFdmVudEltcGwuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJQThDMEZFODQwODk3MDFGQjAwQkE1MTE0IC8qIE1vdXNlRXZlbnRJbXBsLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCUE4QzBGRTg2MDg5NzAxRkIwMEJBNTExNCAvKiBNdXRhdGlvbkV2
ZW50SW1wbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEMwRkU4ODA4OTcwMUZCMDBCQTUxMTQg
LyogUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThDMEZF
OEEwODk3MDFGQjAwQkE1MTE0IC8qIFVJRXZlbnRJbXBsLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CUE4QzBGRTk1MDg5NzAxRkIwMEJBNTExNCAvKiBIZWxwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJQThDMEZFOTcwODk3MDFGQjAwQkE1MTE0IC8qIEF0dHJJbXBsLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCUE4QzBGRTk5MDg5NzAxRkIwMEJBNTExNCAvKiBDREFUQVNlY3Rpb25JbXBsLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCUE4QzBGRTlEMDg5NzAxRkIwMEJBNTExNCAvKiBDaGFyYWN0ZXJE
YXRhSW1wbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEMwRkU5RjA4OTcwMUZCMDBCQTUxMTQg
LyogQ29tbWVudEltcGwuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThDMEZFQTEwODk3MDFGQjAw
QkE1MTE0IC8qIERvY3VtZW50RnJhZ21lbnRJbXBsLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4
QzBGRUEzMDg5NzAxRkIwMEJBNTExNCAvKiBEb2N1bWVudEltcGwuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJQThDMEZFQTUwODk3MDFGQjAwQkE1MTE0IC8qIERvY3VtZW50VHlwZUltcGwuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJQThDMEZFQUEwODk3MDFGQjAwQkE1MTE0IC8qIERPTUNvbmZpZ3Vy
YXRpb25JbXBsLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzBGRUFDMDg5NzAxRkIwMEJBNTEx
NCAvKiBET01FcnJvckhhbmRsZXJJbXBsLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzBGRUFF
MDg5NzAxRkIwMEJBNTExNCAvKiBET01FcnJvckltcGwuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
QThDMEZFQjAwODk3MDFGQjAwQkE1MTE0IC8qIERPTUV4Y2VwdGlvbkltcGwuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJQThDMEZFQjIwODk3MDFGQjAwQkE1MTE0IC8qIERPTUltcGxlbWVudGF0aW9u
SW1wbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEMwRkVCNTA4OTcwMUZCMDBCQTUxMTQgLyog
RE9NTG9jYXRvckltcGwuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThDMEZFQjcwODk3MDFGQjAw
QkE1MTE0IC8qIERPTVN0cmluZ0ltcGwuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThDMEZFQjkw
ODk3MDFGQjAwQkE1MTE0IC8qIERPTVN0cmluZ0xpc3RJbXBsLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCUE4QzBGRUJCMDg5NzAxRkIwMEJBNTExNCAvKiBET01Vc2VyRGF0YUltcGwuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJQThDMEZFQkQwODk3MDFGQjAwQkE1MTE0IC8qIEVsZW1lbnRJbXBsLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzBGRUJGMDg5NzAxRkIwMEJBNTExNCAvKiBFbnRpdHlJ
bXBsLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzBGRUMxMDg5NzAxRkIwMEJBNTExNCAvKiBF
bnRpdHlSZWZlcmVuY2VJbXBsLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzBGRUMzMDg5NzAx
RkIwMEJBNTExNCAvKiBOYW1lZEF0dHJNYXBJbXBsLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4
QzBGRUM1MDg5NzAxRkIwMEJBNTExNCAvKiBOYW1lZE5vZGVNYXBJbXBsLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCUE4QzBGRUM3MDg5NzAxRkIwMEJBNTExNCAvKiBOb2RlSW1wbC5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQlBOEMwRkVDOTA4OTcwMUZCMDBCQTUxMTQgLyogTm9kZUxpc3RJbXBsLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzBGRUNCMDg5NzAxRkIwMEJBNTExNCAvKiBOb3RhdGlv
bkltcGwuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThDMEZFQ0QwODk3MDFGQjAwQkE1MTE0IC8q
IFByb2Nlc3NpbmdJbnN0cnVjdGlvbkltcGwuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThDMEZF
Q0YwODk3MDFGQjAwQkE1MTE0IC8qIFRhZ05vZGVMaXN0SW1wbC5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQlBOEMwRkVEMTA4OTcwMUZCMDBCQTUxMTQgLyogVGV4dEltcGwuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJQThDMEZFRDMwODk3MDFGQjAwQkE1MTE0IC8qIFR5cGVJbmZvSW1wbC5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQlBOEMwRkVENTA4OTcwMUZCMDBCQTUxMTQgLyogWE1MRWxlbWVudElt
cGwuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThDMEZFRDgwODk3MDFGQjAwQkE1MTE0IC8qIEtE
T01QYXJ0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzBGRURDMDg5NzAxRkIwMEJBNTExNCAv
KiBLRE9NVmlldy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEMwRkVFMDA4OTcwMUZCMDBCQTUx
MTQgLyogTFNFeGNlcHRpb25JbXBsLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzBGRUUyMDg5
NzAxRkIwMEJBNTExNCAvKiBMU0lucHV0SW1wbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEMw
RkVFNDA4OTcwMUZCMDBCQTUxMTQgLyogTFNPdXRwdXRJbXBsLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCUE4QzBGRUU2MDg5NzAxRkIwMEJBNTExNCAvKiBMU1BhcnNlckZpbHRlckltcGwuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJQThDMEZFRTgwODk3MDFGQjAwQkE1MTE0IC8qIExTUGFyc2VySW1w
bC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEMwRkVFQTA4OTcwMUZCMDBCQTUxMTQgLyogTFNS
ZXNvdXJjZVJlc29sdmVySW1wbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEMwRkVFQzA4OTcw
MUZCMDBCQTUxMTQgLyogTFNTZXJpYWxpemVyRmlsdGVySW1wbC5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQlBOEMwRkVFRTA4OTcwMUZCMDBCQTUxMTQgLyogTFNTZXJpYWxpemVySW1wbC5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQlBOEMwRkYwQzA4OTcwMUZCMDBCQTUxMTQgLyogS0RPTURvY3VtZW50
QnVpbGRlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEMwRkYwRTA4OTcwMUZCMDBCQTUxMTQg
LyogS0RPTVBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEMwRkYxNTA4OTcwMUZCMDBC
QTUxMTQgLyogRG9jdW1lbnRSYW5nZUltcGwuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThDMEZG
MTcwODk3MDFGQjAwQkE1MTE0IC8qIFJhbmdlRXhjZXB0aW9uSW1wbC5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQlBOEMwRkYxOTA4OTcwMUZCMDBCQTUxMTQgLyogUmFuZ2VJbXBsLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCUE4QzBGRjM0MDg5NzAxRkIwMEJBNTExNCAvKiBEb2N1bWVudFRyYXZlcnNh
bEltcGwuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThDMEZGMzYwODk3MDFGQjAwQkE1MTE0IC8q
IE5vZGVGaWx0ZXJJbXBsLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzBGRjM4MDg5NzAxRkIw
MEJBNTExNCAvKiBOb2RlSXRlcmF0b3JJbXBsLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzBG
RjNBMDg5NzAxRkIwMEJBNTExNCAvKiBUcmF2ZXJzYWxJbXBsLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCUE4QzBGRjNDMDg5NzAxRkIwMEJBNTExNCAvKiBUcmVlV2Fsa2VySW1wbC5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQlBOEMwRkY0QzA4OTcwMUZCMDBCQTUxMTQgLyogQWJzdHJhY3RWaWV3SW1w
bC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEMwRkY0RTA4OTcwMUZCMDBCQTUxMTQgLyogRG9j
dW1lbnRWaWV3SW1wbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEMwRkZCQjA4OTcwMUZDMDBC
QTUxMTQgLyogRWxlbWVudFNjaGVtZUltcGwuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThDMEZG
QkQwODk3MDFGQzAwQkE1MTE0IC8qIE5CQ0ltcGwuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThD
MEZGQkYwODk3MDFGQzAwQkE1MTE0IC8qIFBvaW50ZXJQYXJ0SW1wbC5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQlBOEMwRkZDMTA4OTcwMUZDMDBCQTUxMTQgLyogU2hvcnRIYW5kSW1wbC5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQlBOEMwRkZDMzA4OTcwMUZDMDBCQTUxMTQgLyogWE1MTlNTY2hlbWVJ
bXBsLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzBGRkM3MDg5NzAxRkMwMEJBNTExNCAvKiBY
UG9pbnRlckV2YWx1YXRvckltcGwuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThDMEZGQzkwODk3
MDFGQzAwQkE1MTE0IC8qIFhQb2ludGVyRXhjZXB0aW9uSW1wbC5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQlBOEMwRkZDQjA4OTcwMUZDMDBCQTUxMTQgLyogWFBvaW50ZXJFeHByZXNzaW9uSW1wbC5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEMwRkZDRDA4OTcwMUZDMDBCQTUxMTQgLyogWFBvaW50
ZXJSZXN1bHRJbXBsLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzBGRkNGMDg5NzAxRkMwMEJB
NTExNCAvKiBYUG9pbnRlclNjaGVtZUltcGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThDMEZG
REQwODk3MDFGQzAwQkE1MTE0IC8qIEtSZW5kZXJpbmdEZXZpY2UuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThDMEZGRTIwODk3MDFGQzAwQkE1MTE0IC8qIEtSZW5kZXJpbmdGaWxsUGFpbnRlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEMwRkZFNTA4OTcwMUZDMDBCQTUxMTQgLyogS1JlbmRl
cmluZ1BhaW50U2VydmVyR3JhZGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xMDExNSwyNjIg
Kzc2MzQsMjEgQEAKIAkJCQlBOEMwMDAwRjA4OTcwMUZDMDBCQTUxMTQgLyogS0NhbnZhc1JlZ2lz
dHJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QzAwMDEyMDg5NzAxRkMwMEJBNTExNCAvKiBL
Q2FudmFzUmVzb3VyY2VzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QzAwMDE1MDg5NzAxRkMw
MEJBNTExNCAvKiBLQ2FudmFzVmlldy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEMwMDVBRjA4
OTc0QzI3MDBCQTUxMTQgLyoga2RvbXBhcnNlcmNzcy55IGluIFNvdXJjZXMgKi8sCiAJCQkJQThD
MDA1REYwODk3NEU5MDAwQkE1MTE0IC8qIHJlbmRlcl90aGVtZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBOEMwMDVFMjA4OTc0RTkwMDBCQTUxMTQgLyogcmVuZGVyX3RoZW1lX21hYy5tbSBpbiBT
b3VyY2VzICovLAotCQkJCUE4QzAwNUVCMDg5NzRFQjEwMEJBNTExNCAvKiBLRE9NQ2FjaGVkT2Jq
ZWN0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzAwNUVEMDg5NzRFQjUwMEJBNTExNCAvKiBL
RE9NQ2FjaGVkU2NyaXB0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QzAwNUY2MDg5NzRFRjcw
MEJBNTExNCAvKiBLRE9NQ2FjaGVkU3R5bGVTaGVldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3
RTZGRUVEQjA4OTg1ODIzMDBDNDRDM0YgLyogV2ViQ29yZVNjcmlwdERlYnVnZ2VyLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTgxMEUzOTYwOEE0MTYwRjAwMzMzRDk4IC8qIEtDYW52YXNUcmVlRGVi
dWcuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTgwMjQzNEYwOEFDODVFQTAwMUIyOURBIC8qIERv
Y3VtZW50Q1NTSW1wbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODAyNDM1MjA4QUM4NjUxMDAx
QjI5REEgLyogRE9NT2JqZWN0SW1wbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODFENTZBNTA4
QUNBQzdFMDAxMzZBQzEgLyogWFBvaW50ZXJIZWxwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
QTgxRDU3MTkwOEFENEE1NzAwMTM2QUMxIC8qIERyYXdEb2N1bWVudC5tbSBpbiBTb3VyY2VzICov
LAotCQkJCUE4MUQ1Nzg4MDhBRDVGMTIwMDEzNkFDMSAvKiBEcmF3Q2FudmFzSXRlbS5tbSBpbiBT
b3VyY2VzICovLAotCQkJCUE4MUQ1N0JFMDhBRDYzNzQwMDEzNkFDMSAvKiBTY3JpcHRJbnRlcnBy
ZXRlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODFENTdCRjA4QUQ2Mzc1MDAxMzZBQzEgLyog
R2xvYmFsT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MUQ1N0MxMDhBRDYzN0EwMDEz
NkFDMSAvKiBFY21hLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4NTZFOUJEMDhCNDVCMUUwMDQy
RTMwMyAvKiBYUGF0aFJlc3VsdEltcGwuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTg1NkU5QkYw
OEI0NUIxRTAwNDJFMzAzIC8qIFhQYXRoTlNSZXNvbHZlckltcGwuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJQTg1NkU5QzEwOEI0NUIxRTAwNDJFMzAzIC8qIFhQYXRoTmFtZXNwYWNlSW1wbC5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQlBODU2RTlDMzA4QjQ1QjFFMDA0MkUzMDMgLyogWFBhdGhFeHBy
ZXNzaW9uSW1wbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODU2RTlDNTA4QjQ1QjFFMDA0MkUz
MDMgLyogWFBhdGhFeGNlcHRpb25JbXBsLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4NTZFOUM3
MDhCNDVCMUUwMDQyRTMwMyAvKiBYUGF0aEV2YWx1YXRvckltcGwuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJQTg1NkU5QzkwOEI0NUIxRTAwNDJFMzAzIC8qIHZhcmlhYmxlcmVmZXJlbmNlLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCUE4NTZFOUNCMDhCNDVCMUUwMDQyRTMwMyAvKiB1dGlsLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCUE4NTZFOUNEMDhCNDVCMUUwMDQyRTMwMyAvKiB0b2tlbml6ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTg1NkU5Q0YwOEI0NUIxRTAwNDJFMzAzIC8qIHN0ZXAu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTg1NkU5RDEwOEI0NUIxRTAwNDJFMzAzIC8qIHByZWRp
Y2F0ZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODU2RTlEMzA4QjQ1QjFFMDA0MkUzMDMgLyog
cGF0aC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODU2RTlENTA4QjQ1QjFFMDA0MkUzMDMgLyog
cGFyc2Vkc3RhdGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4NTZFOUQ4MDhCNDVCMUUw
MDQyRTMwMyAvKiBmdW5jdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTg1NkU5REEwOEI0
NUIxRTAwNDJFMzAzIC8qIGV4cHJlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTg1NkU5
RjkwOEI0NjA4RjAwNDJFMzAzIC8qIHhwYXRoLnkgaW4gU291cmNlcyAqLywKIAkJCQlBODJGQkI2
NzA4QzYyNDFFMDBFRkVFMjMgLyogRXZlbnROYW1lcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
ODQxRUM3MjA4QzY2MzY2MDBEREEyMUMgLyogS0NhbnZhc1BhdGguY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJQTgyRkMyNzYwOEM5MjkyRTAwRUZFRTIzIC8qIERPTUltcGxlbWVudGF0aW9uTFNJbXBs
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MkZDMkYzMDhDOUFBRTQwMEVGRUUyMyAvKiBMaW5r
U3R5bGVJbXBsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MkZDMzNFMDhDQkIwN0MwMEVGRUUy
MyAvKiBTVkdDdXJzb3JFbGVtZW50SW1wbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEJDMEM4
NjA4RDE5RjFBMDAzNzk5MTggLyogQXR0cldyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
QThCQzBDODgwOEQxOUYxQTAwMzc5OTE4IC8qIENEQVRBU2VjdGlvbldyYXBwZXIuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJQThCQzBDOEEwOEQxOUYxQTAwMzc5OTE4IC8qIENoYXJhY3RlckRhdGFX
cmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QkMwQzhDMDhEMTlGMUEwMDM3OTkxOCAv
KiBDb21tZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEJDMEM4RTA4RDE5RjFB
MDAzNzk5MTggLyogRG9jdW1lbnRGcmFnbWVudFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJQThCQzBDOTAwOEQxOUYxQTAwMzc5OTE4IC8qIERvY3VtZW50VHlwZVdyYXBwZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJQThCQzBDOTIwOEQxOUYxQTAwMzc5OTE4IC8qIERvY3VtZW50V3Jh
cHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEJDMEM5NDA4RDE5RjFBMDAzNzk5MTggLyog
RE9NQ29uZmlndXJhdGlvbldyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThCQzBDOTYw
OEQxOUYxQTAwMzc5OTE4IC8qIERPTUVycm9ySGFuZGxlcldyYXBwZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJQThCQzBDOTgwOEQxOUYxQTAwMzc5OTE4IC8qIERPTUVycm9yV3JhcHBlci5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQlBOEJDMEM5QTA4RDE5RjFBMDAzNzk5MTggLyogRE9NRXhjZXB0
aW9uV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEJDMEM5QzA4RDE5RjFBMDAzNzk5
MTggLyogRE9NSW1wbGVtZW50YXRpb25XcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4
QkMwQzlFMDhEMTlGMUEwMDM3OTkxOCAvKiBET01Mb2NhdG9yV3JhcHBlci5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQlBOEJDMENBMDA4RDE5RjFBMDAzNzk5MTggLyogRE9NT2JqZWN0V3JhcHBlci5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEJDMENBMjA4RDE5RjFBMDAzNzk5MTggLyogRE9NU3Ry
aW5nTGlzdFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThCQzBDQTQwOEQxOUYxQTAw
Mzc5OTE4IC8qIERPTVVzZXJEYXRhV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEJD
MENBNjA4RDE5RjFBMDAzNzk5MTggLyogRWxlbWVudFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJQThCQzBDQTgwOEQxOUYxQTAwMzc5OTE4IC8qIEVudGl0eVJlZmVyZW5jZVdyYXBwZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThCQzBDQUEwOEQxOUYxQTAwMzc5OTE4IC8qIEVudGl0
eVdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThCQzBDQUMwOEQxOUYxQTAwMzc5OTE4
IC8qIE5hbWVkTm9kZU1hcFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThCQzBDQUUw
OEQxOUYxQTAwMzc5OTE4IC8qIE5vZGVMaXN0V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlBOEJDMENCMDA4RDE5RjFBMDAzNzk5MTggLyogTm9kZVdyYXBwZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJQThCQzBDQjIwOEQxOUYxQTAwMzc5OTE4IC8qIE5vdGF0aW9uV3JhcHBlci5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQlBOEJDMENCNDA4RDE5RjFBMDAzNzk5MTggLyogUHJvY2Vzc2lu
Z0luc3RydWN0aW9uV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEJDMENCNjA4RDE5
RjFBMDAzNzk5MTggLyogVGV4dFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThCQzBD
QjgwOEQxOUYxQTAwMzc5OTE4IC8qIFR5cGVJbmZvV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQlBOEJDMENCQTA4RDE5RjFBMDAzNzk5MTggLyogQ291bnRlcldyYXBwZXIuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJQThCQzBDQkMwOEQxOUYxQTAwMzc5OTE4IC8qIENTU0NoYXJzZXRSdWxl
V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEJDMENCRTA4RDE5RjFBMDAzNzk5MTgg
LyogQ1NTRm9udEZhY2VSdWxlV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEJDMEND
MDA4RDE5RjFBMDAzNzk5MTggLyogQ1NTSW1wb3J0UnVsZVdyYXBwZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJQThCQzBDQzIwOEQxOUYxQTAwMzc5OTE4IC8qIENTU01lZGlhUnVsZVdyYXBwZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThCQzBDQzQwOEQxOUYxQTAwMzc5OTE4IC8qIENTU1Bh
Z2VSdWxlV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEJDMENDNjA4RDE5RjFBMDAz
Nzk5MTggLyogQ1NTUHJpbWl0aXZlVmFsdWVXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CUE4QkMwQ0M4MDhEMTlGMUEwMDM3OTkxOCAvKiBDU1NSdWxlTGlzdFdyYXBwZXIuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJQThCQzBDQ0EwOEQxOUYxQTAwMzc5OTE4IC8qIENTU1J1bGVXcmFwcGVy
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QkMwQ0NDMDhEMTlGMUEwMDM3OTkxOCAvKiBDU1NT
dHlsZURlY2xhcmF0aW9uV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEJDMENDRTA4
RDE5RjFBMDAzNzk5MTggLyogQ1NTU3R5bGVSdWxlV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQlBOEJDMENEMDA4RDE5RjFBMDAzNzk5MTggLyogQ1NTU3R5bGVTaGVldFdyYXBwZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJQThCQzBDRDIwOEQxOUYxQTAwMzc5OTE4IC8qIENTU1Vua25v
d25SdWxlV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEJDMENENDA4RDE5RjFBMDAz
Nzk5MTggLyogQ1NTVmFsdWVMaXN0V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEJD
MENENjA4RDE5RjFBMDAzNzk5MTggLyogQ1NTVmFsdWVXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCUE4QkMwQ0Q4MDhEMTlGMUEwMDM3OTkxOCAvKiBEb2N1bWVudENTU1dyYXBwZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJQThCQzBDREEwOEQxOUYxQTAwMzc5OTE4IC8qIFJlY3RXcmFw
cGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QkMwQ0RDMDhEMTlGMUEwMDM3OTkxOCAvKiBS
R0JDb2xvcldyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThCQzBDREUwOEQxOUYxQjAw
Mzc5OTE4IC8qIERvY3VtZW50RXZlbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4
QkMwQ0UwMDhEMTlGMUIwMDM3OTkxOCAvKiBFdmVudEV4Y2VwdGlvbldyYXBwZXIuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJQThCQzBDRTIwOEQxOUYxQjAwMzc5OTE4IC8qIEV2ZW50TGlzdGVuZXJX
cmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QkMwQ0U0MDhEMTlGMUIwMDM3OTkxOCAv
KiBFdmVudFRhcmdldFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThCQzBDRTYwOEQx
OUYxQjAwMzc5OTE4IC8qIEV2ZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEJD
MENFODA4RDE5RjFCMDAzNzk5MTggLyogTW91c2VFdmVudFdyYXBwZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJQThCQzBDRUEwOEQxOUYxQjAwMzc5OTE4IC8qIE11dGF0aW9uRXZlbnRXcmFwcGVy
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QkMwQ0VDMDhEMTlGMUIwMDM3OTkxOCAvKiBVSUV2
ZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEJDMENFRTA4RDE5RjFCMDAzNzk5
MTggLyogRG9jdW1lbnRSYW5nZVdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThCQzBD
RjAwOEQxOUYxQjAwMzc5OTE4IC8qIFJhbmdlRXhjZXB0aW9uV3JhcHBlci5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQlBOEJDMENGMjA4RDE5RjFCMDAzNzk5MTggLyogUmFuZ2VXcmFwcGVyLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCUE4QkMwQ0Y0MDhEMTlGMUIwMDM3OTkxOCAvKiBEb2N1bWVudFN0
eWxlV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEJDMENGNjA4RDE5RjFCMDAzNzk5
MTggLyogTGlua1N0eWxlV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEJDMENGODA4
RDE5RjFCMDAzNzk5MTggLyogTWVkaWFMaXN0V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlBOEJDMENGQTA4RDE5RjFCMDAzNzk5MTggLyogU3R5bGVTaGVldExpc3RXcmFwcGVyLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCUE4QkMwQ0ZDMDhEMTlGMUIwMDM3OTkxOCAvKiBTdHlsZVNoZWV0
V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEJDMENGRTA4RDE5RjFCMDAzNzk5MTgg
LyogRG9jdW1lbnRUcmF2ZXJzYWxXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QkMw
RDAwMDhEMTlGMUIwMDM3OTkxOCAvKiBOb2RlRmlsdGVyV3JhcHBlci5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQlBOEJDMEQwMjA4RDE5RjFCMDAzNzk5MTggLyogTm9kZUl0ZXJhdG9yV3JhcHBlci5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEJDMEQwNDA4RDE5RjFCMDAzNzk5MTggLyogVHJlZVdh
bGtlcldyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThCQzBEMEEwOEQxOUYxQjAwMzc5
OTE4IC8qIFhQYXRoRXZhbHVhdG9yV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEJD
MEQwQzA4RDE5RjFCMDAzNzk5MTggLyogWFBhdGhFeGNlcHRpb25XcmFwcGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCUE4QkMwRDBFMDhEMTlGMUIwMDM3OTkxOCAvKiBYUGF0aEV4cHJlc3Npb25X
cmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QkMwRDEwMDhEMTlGMUIwMDM3OTkxOCAv
KiBYUGF0aE5hbWVzcGFjZVdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThCQzBEMTIw
OEQxOUYxQjAwMzc5OTE4IC8qIFhQYXRoTlNSZXNvbHZlcldyYXBwZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJQThCQzBEMTQwOEQxOUYxQjAwMzc5OTE4IC8qIFhQYXRoUmVzdWx0V3JhcHBlci5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEJDMEQxNjA4RDE5RjFCMDAzNzk5MTggLyogWFBvaW50
ZXJFdmFsdWF0b3JXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4QkMwRDE4MDhEMTlG
MUIwMDM3OTkxOCAvKiBYUG9pbnRlckV4Y2VwdGlvbldyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJQThCQzBEMUEwOEQxOUYxQjAwMzc5OTE4IC8qIFhQb2ludGVyRXhwcmVzc2lvbldyYXBw
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThCQzBEMUMwOEQxOUYxQjAwMzc5OTE4IC8qIFhQ
b2ludGVyUmVzdWx0V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEJDMERCNjA4RDQy
MzM5MDAzNzk5MTggLyogRE9NSW1wbGVtZW50YXRpb25MU1dyYXBwZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJQThCQzBEQjgwOEQ0MjMzOTAwMzc5OTE4IC8qIExTRXhjZXB0aW9uV3JhcHBlci5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEJDMERCQTA4RDQyMzM5MDAzNzk5MTggLyogTFNJbnB1
dFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThCQzBEQkMwOEQ0MjMzOTAwMzc5OTE4
IC8qIExTT3V0cHV0V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEJDMERCRTA4RDQy
MzM5MDAzNzk5MTggLyogTFNQYXJzZXJGaWx0ZXJXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCUE4QkMwREMwMDhENDIzMzkwMDM3OTkxOCAvKiBMU1BhcnNlcldyYXBwZXIuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJQThCQzBEQzIwOEQ0MjMzOTAwMzc5OTE4IC8qIExTUmVzb3VyY2VSZXNv
bHZlcldyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThCQzBEQzQwOEQ0MjMzOTAwMzc5
OTE4IC8qIExTU2VyaWFsaXplckZpbHRlcldyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
QThCQzBEQzYwOEQ0MjMzOTAwMzc5OTE4IC8qIExTU2VyaWFsaXplcldyYXBwZXIuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJQThCQzBEQ0MwOEQ0MjcwQzAwMzc5OTE4IC8qIEFic3RyYWN0Vmlld1dy
YXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThCQzBEQ0YwOEQ0MjcxNDAwMzc5OTE4IC8q
IERvY3VtZW50Vmlld1dyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTgxMjJFNzQwOEQ1
NjRCNDAwODQ0RkEzIC8qIFNWR0FFbGVtZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlBODEyMkU3NjA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHQW5nbGVXcmFwcGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCUE4MTIyRTc4MDhENTY0QjQwMDg0NEZBMyAvKiBTVkdBbmltYXRlQ29sb3JF
bGVtZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODEyMkU3QTA4RDU2NEI0MDA4
NDRGQTMgLyogU1ZHQW5pbWF0ZWRBbmdsZVdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
QTgxMjJFN0MwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0FuaW1hdGVkQm9vbGVhbldyYXBwZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJQTgxMjJFN0UwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0FuaW1h
dGVkRW51bWVyYXRpb25XcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIyRTgwMDhE
NTY0QjQwMDg0NEZBMyAvKiBTVkdBbmltYXRlZEludGVnZXJXcmFwcGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCUE4MTIyRTgyMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdBbmltYXRlZExlbmd0aExp
c3RXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIyRTg0MDhENTY0QjQwMDg0NEZB
MyAvKiBTVkdBbmltYXRlZExlbmd0aFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTgx
MjJFODYwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0FuaW1hdGVkTnVtYmVyTGlzdFdyYXBwZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJQTgxMjJFODgwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0FuaW1h
dGVkTnVtYmVyV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODEyMkU4QTA4RDU2NEI0
MDA4NDRGQTMgLyogU1ZHQW5pbWF0ZWRQYXRoRGF0YVdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJQTgxMjJFOEMwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0FuaW1hdGVkUG9pbnRzV3JhcHBl
ci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODEyMkU4RTA4RDU2NEI0MDA4NDRGQTMgLyogU1ZH
QW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlBODEyMkU5MDA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHQW5pbWF0ZWRSZWN0V3JhcHBlci5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQlBODEyMkU5MjA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHQW5pbWF0
ZWRTdHJpbmdXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIyRTk0MDhENTY0QjQw
MDg0NEZBMyAvKiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RXcmFwcGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCUE4MTIyRTk2MDhENTY0QjQwMDg0NEZBMyAvKiBTVkdBbmltYXRlRWxlbWVudFdy
YXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTgxMjJFOTgwOEQ1NjRCNDAwODQ0RkEzIC8q
IFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlBODEyMkU5QTA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHQW5pbWF0aW9uRWxlbWVudFdyYXBwZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTgxMjJFOUMwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0Np
cmNsZUVsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIyRTlFMDhENTY0
QjQwMDg0NEZBMyAvKiBTVkdDbGlwUGF0aEVsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCUE4MTIyRUEwMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdDb2xvcldyYXBwZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJQTgxMjJFQTIwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0NvbXBvbmVu
dFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlB
ODEyMkVBNDA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHQ3Vyc29yRWxlbWVudFdyYXBwZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJQTgxMjJFQTYwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0RlZnNFbGVt
ZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODEyMkVBODA4RDU2NEI0MDA4NDRG
QTMgLyogU1ZHRGVzY0VsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIy
RUFBMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdEb2N1bWVudFdyYXBwZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJQTgxMjJFQUMwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0RPTUltcGxlbWVudGF0aW9u
V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODEyMkVBRTA4RDU2NEI0MDA4NDRGQTMg
LyogU1ZHRWxlbWVudEluc3RhbmNlTGlzdFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
QTgxMjJFQjAwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0VsZW1lbnRJbnN0YW5jZVdyYXBwZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJQTgxMjJFQjIwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0VsZW1l
bnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIyRUI0MDhENTY0QjQwMDg0NEZB
MyAvKiBTVkdFbGxpcHNlRWxlbWVudFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTgx
MjJFQjYwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0V2ZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQlBODEyMkVCODA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHRXhjZXB0aW9uV3JhcHBlci5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQlBODEyMkVCQTA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTgx
MjJFQkMwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0ZFQmxlbmRFbGVtZW50V3JhcHBlci5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQlBODEyMkVCRTA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHRkVDb2xvck1h
dHJpeEVsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIyRUMwMDhENTY0
QjQwMDg0NEZBMyAvKiBTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudFdyYXBwZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJQTgxMjJFQzIwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0ZFQ29tcG9z
aXRlRWxlbWVudFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTgxMjJFQzQwOEQ1NjRC
NDAwODQ0RkEzIC8qIFNWR0ZFRmxvb2RFbGVtZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQlBODEyMkVDNjA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHRkVGdW5jQUVsZW1lbnRXcmFwcGVy
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIyRUM4MDhENTY0QjQwMDg0NEZBMyAvKiBTVkdG
RUZ1bmNCRWxlbWVudFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTgxMjJFQ0EwOEQ1
NjRCNDAwODQ0RkEzIC8qIFNWR0ZFRnVuY0dFbGVtZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQlBODEyMkVDQzA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHRkVGdW5jUkVsZW1lbnRXcmFw
cGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIyRUNFMDhENTY0QjQwMDg0NEZBMyAvKiBT
VkdGRUdhdXNzaWFuQmx1ckVsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4
MTIyRUQwMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdGRUltYWdlRWxlbWVudFdyYXBwZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJQTgxMjJFRDIwOEQ1NjRCNDAwODQ0RkEzIC8qIFNWR0ZFTWVyZ2VF
bGVtZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODEyMkVENDA4RDU2NEI0MDA4
NDRGQTMgLyogU1ZHRkVNZXJnZU5vZGVFbGVtZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQlBODEyMkVENjA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHRkVPZmZzZXRFbGVtZW50V3JhcHBl
ci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODEyMkVEODA4RDU2NEI0MDA4NDRGQTMgLyogU1ZH
RkVUaWxlRWxlbWVudFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTgxMjJFREEwOEQ1
NjRCNDAwODQ0RkEzIC8qIFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCUE4MTIyRURDMDhENTY0QjQwMDg0NEZBMyAvKiBTVkdGaWx0ZXJFbGVtZW50
V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODEyMkVERTA4RDU2NEI0MDA4NDRGQTMg
LyogU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzV3JhcHBlci5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQlBODEyMkVFMDA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHRml0VG9WaWV3Qm94
V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODEyMkVFMjA4RDU2NEI0MDA4NDRGQTMg
LyogU1ZHR0VsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIyRUU0MDhE
NTY0QjQwMDg0NEZBMyAvKiBTVkdHcmFkaWVudEVsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCUE4MTIyRUU4MDhENTY0QjQwMDg0NEZBMyAvKiBTVkdJbWFnZUVsZW1lbnRXcmFw
cGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIyRUVBMDhENTY0QjQwMDg0NEZBMyAvKiBT
VkdMYW5nU3BhY2VXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIyRUVDMDhENTY0
QjQwMDg0NEZBMyAvKiBTVkdMZW5ndGhMaXN0V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlBODEyMkVFRTA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHTGVuZ3RoV3JhcHBlci5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQlBODEyMkVGMDA4RDU2NEI0MDA4NDRGQTMgLyogU1ZHTGluZWFyR3JhZGll
bnRFbGVtZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODEyMkVGMjA4RDU2NEI1
MDA4NDRGQTMgLyogU1ZHTGluZUVsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CUE4MTIyRUY0MDhENTY0QjUwMDg0NEZBMyAvKiBTVkdMb2NhdGFibGVXcmFwcGVyLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCUE4MTIyRUY2MDhENTY0QjUwMDg0NEZBMyAvKiBTVkdNYXJrZXJFbGVt
ZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODEyMkVGODA4RDU2NEI1MDA4NDRG
QTMgLyogU1ZHTWF0cml4V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODEyMkVGQTA4
RDU2NEI1MDA4NDRGQTMgLyogU1ZHTnVtYmVyTGlzdFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJQTgxMjJFRkMwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR051bWJlcldyYXBwZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJQTgxMjJFRkUwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1BhaW50V3Jh
cHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODEyMkYwMDA4RDU2NEI1MDA4NDRGQTMgLyog
U1ZHUGF0aEVsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIyRjAyMDhE
NTY0QjUwMDg0NEZBMyAvKiBTVkdQYXRoU2VnQXJjQWJzV3JhcHBlci5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQlBODEyMkYwNDA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHUGF0aFNlZ0FyY1JlbFdyYXBw
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTgxMjJGMDYwOEQ1NjRCNTAwODQ0RkEzIC8qIFNW
R1BhdGhTZWdDbG9zZVBhdGhXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIyRjA4
MDhENTY0QjUwMDg0NEZBMyAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzV3JhcHBlci5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQlBODEyMkYwQTA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHUGF0aFNl
Z0N1cnZldG9DdWJpY1JlbFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTgxMjJGMEMw
OEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnNXcmFwcGVy
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIyRjBFMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdQ
YXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlBODEyMkYxMDA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNB
YnNXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIyRjEyMDhENTY0QjUwMDg0NEZB
MyAvKiBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbFdyYXBwZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJQTgxMjJGMTQwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVh
ZHJhdGljU21vb3RoQWJzV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODEyMkYxNjA4
RDU2NEI1MDA4NDRGQTMgLyogU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWxXcmFw
cGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIyRjE4MDhENTY0QjUwMDg0NEZBMyAvKiBT
VkdQYXRoU2VnTGluZXRvQWJzV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODEyMkYx
QTA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnNXcmFwcGVy
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIyRjFDMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdQ
YXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
QTgxMjJGMUUwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1BhdGhTZWdMaW5ldG9SZWxXcmFwcGVyLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIyRjIwMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdQYXRo
U2VnTGluZXRvVmVydGljYWxBYnNXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIy
RjIyMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWxXcmFwcGVy
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIyRjI0MDhENTY0QjUwMDg0NEZBMyAvKiBTVkdQ
YXRoU2VnTGlzdFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTgxMjJGMjYwOEQ1NjRC
NTAwODQ0RkEzIC8qIFNWR1BhdGhTZWdNb3ZldG9BYnNXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCUE4MTIyRjI4MDhENTY0QjUwMDg0NEZBMyAvKiBTVkdQYXRoU2VnTW92ZXRvUmVsV3Jh
cHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODEyMkYyQTA4RDU2NEI1MDA4NDRGQTMgLyog
U1ZHUGF0aFNlZ1dyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTgxMjJGMkMwOEQ1NjRC
NTAwODQ0RkEzIC8qIFNWR1BhdHRlcm5FbGVtZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQlBODEyMkYyRTA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHUG9pbnRMaXN0V3JhcHBlci5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQlBODEyMkYzMDA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHUG9pbnRX
cmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIyRjMyMDhENTY0QjUwMDg0NEZBMyAv
KiBTVkdQb2x5Z29uRWxlbWVudFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTgxMjJG
MzQwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1BvbHlsaW5lRWxlbWVudFdyYXBwZXIuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJQTgxMjJGMzYwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW9XcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIyRjM4MDhENTY0QjUw
MDg0NEZBMyAvKiBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCUE4MTIyRjNBMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdSZWN0RWxlbWVudFdyYXBw
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTgxMjJGM0MwOEQ1NjRCNTAwODQ0RkEzIC8qIFNW
R1JlY3RXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIyRjQwMDhENTY0QjUwMDg0
NEZBMyAvKiBTVkdTY3JpcHRFbGVtZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlB
ODEyMkY0MjA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHU2V0RWxlbWVudFdyYXBwZXIuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJQTgxMjJGNDQwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1N0b3BFbGVtZW50
V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBODEyMkY0NjA4RDU2NEI1MDA4NDRGQTMg
LyogU1ZHU3RyaW5nTGlzdFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTgxMjJGNDgw
OEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1N0eWxhYmxlV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQlBODEyMkY0QTA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHU3R5bGVFbGVtZW50V3JhcHBlci5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQlBODEyMkY0QzA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHU1ZH
RWxlbWVudFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTgxMjJGNEUwOEQ1NjRCNTAw
ODQ0RkEzIC8qIFNWR1N3aXRjaEVsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CUE4MTIyRjUwMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdTeW1ib2xFbGVtZW50V3JhcHBlci5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQlBODEyMkY1MjA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHVGVzdHNX
cmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIyRjU0MDhENTY0QjUwMDg0NEZBMyAv
KiBTVkdUZXh0Q29udGVudEVsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4
MTIyRjU2MDhENTY0QjUwMDg0NEZBMyAvKiBTVkdUZXh0RWxlbWVudFdyYXBwZXIuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJQTgxMjJGNTgwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1RleHRQb3NpdGlv
bmluZ0VsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIyRjVBMDhENTY0
QjUwMDg0NEZBMyAvKiBTVkdUaXRsZUVsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCUE4MTIyRjVDMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdUcmFuc2Zvcm1hYmxlV3JhcHBlci5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQlBODEyMkY1RTA4RDU2NEI1MDA4NDRGQTMgLyogU1ZHVHJh
bnNmb3JtTGlzdFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTgxMjJGNjAwOEQ1NjRC
NTAwODQ0RkEzIC8qIFNWR1RyYW5zZm9ybVdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
QTgxMjJGNjIwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1RTcGFuRWxlbWVudFdyYXBwZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJQTgxMjJGNjYwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1VSSVJlZmVy
ZW5jZVdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTgxMjJGNjgwOEQ1NjRCNTAwODQ0
RkEzIC8qIFNWR1VzZUVsZW1lbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIy
RjZBMDhENTY0QjUwMDg0NEZBMyAvKiBTVkdWaWV3RWxlbWVudFdyYXBwZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJQTgxMjJGNkMwOEQ1NjRCNTAwODQ0RkEzIC8qIFNWR1pvb21BbmRQYW5XcmFw
cGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4MTIyRjZFMDhENTY0QjUwMDg0NEZBMyAvKiBT
Vkdab29tRXZlbnRXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4NzAwQTQ4MDhERDcz
NDMwMENDNUE4NiAvKiBDREZJbnRlcmZhY2UuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThEQzYz
RTkwOEUwREQwQTAwNDUwN0Y3IC8qIEVjbWFJbnRlcmZhY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQThEQzYzRUMwOEUwREQyQTAwNDUwN0Y3IC8qIEVjbWFJbnRlcmZhY2UuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJQThFQTQzNDYwOEUxNEVBQzAwNEJDMzk2IC8qIHhtbF9rZG9tdG9rZW5pemVy
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4RUE0MzQ4MDhFMTRFQUMwMDRCQzM5NiAvKiByZW5k
ZXJfa2NhbnZhc3dyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThFQTQzNEEwOEUxNEVB
QzAwNEJDMzk2IC8qIGRvbV9rZG9tbm9kZXRyZWV3cmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCUE4RUE0MzRDMDhFMTRFQUMwMDRCQzM5NiAvKiBkb21fa2RvbWRvY3VtZW50d3JhcHBlci5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQlBODYzMzEyRjA4RTNBQjI1MDA5Q0ZFRjQgLyogQ0RGSW50
ZXJmYWNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE4NjMzMTJGMDhFM0FCMjUwMDlDRkVGNCAv
KiBTVkdDREZJbnRlcmZhY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFFRTc3M0EwOEYxMDg2
QzAwMTY2ODcwIC8qIFdlYkNvcmVUZXh0RGVjb2Rlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE4
QkE1QzcwMDkwQ0IwNzcwMDREMTE4MCAvKiByZW5kZXJfYnV0dG9uLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4M0M4MUEyMDkxMTg5QjkwMDlCRjRBNyAvKiBYU0xUUHJvY2Vzc29yLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUE4QzgwMTU4MDkxNDM1NzQwMDZBNUU1QiAvKiBTVkdFbGVtZW50RmFj
dG9yeS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBOEM4MDFBODA5MTQzRTNCMDA2QTVFNUIgLyog
U1ZHTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTg0QjlGQzAwOTE3MERBMjAwRDcxREQw
IC8qIFJHQkNvbG9ySW1wbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IGtjYW52YXMvS0NhbnZh
c1RyZWVEZWJ1Zy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQv
a2NhbnZhcy9LQ2FudmFzVHJlZURlYnVnLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS43CmRp
ZmYgLXAgLXUgLXIxLjcga2NhbnZhcy9LQ2FudmFzVHJlZURlYnVnLmNwcAotLS0ga2NhbnZhcy9L
Q2FudmFzVHJlZURlYnVnLmNwcAk1IE9jdCAyMDA1IDA1OjM2OjQ1IC0wMDAwCTEuNworKysga2Nh
bnZhcy9LQ2FudmFzVHJlZURlYnVnLmNwcAkxIE5vdiAyMDA1IDExOjEyOjU0IC0wMDAwCkBAIC0y
NzcsNyArMjc3LDcgQEAgc3RhdGljIFFTdHJpbmcgZ2V0VGFnTmFtZSh2b2lkICpub2RlKQogewog
ICAgIEtTVkc6OlNWR1N0eWxlZEVsZW1lbnRJbXBsICplbGVtID0gc3RhdGljX2Nhc3Q8S1NWRzo6
U1ZHU3R5bGVkRWxlbWVudEltcGwgKj4obm9kZSk7CiAgICAgaWYgKGVsZW0pCi0gICAgICAgIHJl
dHVybiBLRE9NOjpET01TdHJpbmcoZWxlbS0+bm9kZU5hbWUoKSkuc3RyaW5nKCk7CisgICAgICAg
IHJldHVybiBLRE9NOjpET01TdHJpbmcoZWxlbS0+bm9kZU5hbWUoKSkucXN0cmluZygpOwogICAg
IHJldHVybiBRU3RyaW5nKCk7CiB9CiAKSW5kZXg6IGtodG1sL2todG1sX3BhcnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9raHRtbF9wYXJ0LmgsdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuMTM4CmRpZmYgLXAgLXUgLXIxLjEzOCBraHRtbC9raHRtbF9wYXJ0
LmgKLS0tIGtodG1sL2todG1sX3BhcnQuaAkyNCBTZXAgMjAwNSAwMToxODo1MiAtMDAwMAkxLjEz
OAorKysga2h0bWwva2h0bWxfcGFydC5oCTEgTm92IDIwMDUgMTE6MTI6NTUgLTAwMDAKQEAgLTg5
LDYgKzg5LDEyIEBAIG5hbWVzcGFjZSBraHRtbAogICBjbGFzcyBYTUxUb2tlbml6ZXI7CiB9CiAK
KyNpZmRlZiBTVkdfU1VQUE9SVAorbmFtZXNwYWNlIEtTVkcgeworICAgIGNsYXNzIFNWR0FFbGVt
ZW50SW1wbDsKK30KKyNlbmRpZgorCiBuYW1lc3BhY2UgS0pTIHsKICAgICBjbGFzcyBET01Eb2N1
bWVudDsKICAgICBjbGFzcyBTZWxlY3Rpb247CkBAIC0xNzEsNiArMTc3LDkgQEAgY2xhc3MgS0hU
TUxQYXJ0IDogcHVibGljIEtQYXJ0czo6UmVhZE9ubAogICBmcmllbmQgY2xhc3Mga2h0bWw6OlJl
bmRlcldpZGdldDsKICAgZnJpZW5kIGNsYXNzIGtodG1sOjpDU1NTdHlsZVNlbGVjdG9yOwogICBm
cmllbmQgY2xhc3MgS0hUTUxQYXJ0SWZhY2U7CisjaWZkZWYgU1ZHX1NVUFBPUlQKKyAgICBmcmll
bmQgY2xhc3MgS1NWRzo6U1ZHQUVsZW1lbnRJbXBsOworI2VuZGlmCiAKICAgUV9QUk9QRVJUWSgg
Ym9vbCBqYXZhU2NyaXB0RW5hYmxlZCBSRUFEIGpTY3JpcHRFbmFibGVkIFdSSVRFIHNldEpTY3Jp
cHRFbmFibGVkICkKICAgUV9QUk9QRVJUWSggYm9vbCBqYXZhRW5hYmxlZCBSRUFEIGphdmFFbmFi
bGVkIFdSSVRFIHNldEphdmFFbmFibGVkICkKSW5kZXg6IGtodG1sL2Nzcy9jc3NfdmFsdWVpbXBs
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvY3NzL2Nzc192
YWx1ZWltcGwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41MQpkaWZmIC1wIC11IC1yMS41MSBr
aHRtbC9jc3MvY3NzX3ZhbHVlaW1wbC5oCi0tLSBraHRtbC9jc3MvY3NzX3ZhbHVlaW1wbC5oCTMg
T2N0IDIwMDUgMjE6MTI6MDcgLTAwMDAJMS41MQorKysga2h0bWwvY3NzL2Nzc192YWx1ZWltcGwu
aAkxIE5vdiAyMDA1IDExOjEyOjU1IC0wMDAwCkBAIC05MSw3ICs5MSw3IEBAIHByaXZhdGU6CiBj
bGFzcyBDU1NWYWx1ZUltcGwgOiBwdWJsaWMgU3R5bGVCYXNlSW1wbAogewogcHVibGljOgotICAg
IHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgY3NzVmFsdWVUeXBlKCkgY29uc3QgPSAwOworICAgIHZp
cnR1YWwgdW5zaWduZWQgc2hvcnQgY3NzVmFsdWVUeXBlKCkgY29uc3QgeyByZXR1cm4gQ1NTVmFs
dWU6OkNTU19DVVNUT007IH0KICAgICB2aXJ0dWFsIERPTVN0cmluZyBjc3NUZXh0KCkgY29uc3Qg
PSAwOwogICAgIHZvaWQgc2V0Q3NzVGV4dChjb25zdCBET01TdHJpbmcgJikgeyB9IC8vIEZJWE1F
OiBOb3QgaW1wbGVtZW50ZWQuCiAKQEAgLTM0MCw3ICszNDAsNiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB+Q1NTQm9yZGVySW1hZ2VWYWx1ZUltcGwoKTsKIAogICAgIHZpcnR1YWwgRE9NU3RyaW5n
IGNzc1RleHQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNzc1ZhbHVlVHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIENTU1ZhbHVlOjpDU1NfQ1VTVE9NOyB9CiAKIHB1YmxpYzoKICAg
ICAvLyBUaGUgYm9yZGVyIGltYWdlLgpAQCAtMzc0LDkgKzM3Myw3IEBAIGNsYXNzIEZvbnRWYWx1
ZUltcGwgOiBwdWJsaWMgQ1NTVmFsdWVJbXAKIHB1YmxpYzoKICAgICBGb250VmFsdWVJbXBsKCk7
CiAgICAgdmlydHVhbCB+Rm9udFZhbHVlSW1wbCgpOwotCi0gICAgdmlydHVhbCB1bnNpZ25lZCBz
aG9ydCBjc3NWYWx1ZVR5cGUoKSBjb25zdCB7IHJldHVybiBDU1NWYWx1ZTo6Q1NTX0NVU1RPTTsg
fQotICAgIAorICAgICAgICAKICAgICB2aXJ0dWFsIERPTVN0cmluZyBjc3NUZXh0KCkgY29uc3Q7
CiAgICAgCiAgICAgdmlydHVhbCBib29sIGlzRm9udFZhbHVlKCkgeyByZXR1cm4gdHJ1ZTsgfQpA
QCAtMzk2LDkgKzM5Myw3IEBAIHB1YmxpYzoKICAgICBTaGFkb3dWYWx1ZUltcGwoQ1NTUHJpbWl0
aXZlVmFsdWVJbXBsKiBfeCwgQ1NTUHJpbWl0aXZlVmFsdWVJbXBsKiBfeSwKICAgICAgICAgICAg
ICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWVJbXBsKiBfYmx1ciwgQ1NTUHJpbWl0aXZlVmFsdWVJ
bXBsKiBfY29sb3IpOwogICAgIHZpcnR1YWwgflNoYWRvd1ZhbHVlSW1wbCgpOwotCi0gICAgdmly
dHVhbCB1bnNpZ25lZCBzaG9ydCBjc3NWYWx1ZVR5cGUoKSBjb25zdCB7IHJldHVybiBDU1NWYWx1
ZTo6Q1NTX0NVU1RPTTsgfQotCisgICAgCiAgICAgdmlydHVhbCBET01TdHJpbmcgY3NzVGV4dCgp
IGNvbnN0OwogCiAgICAgQ1NTUHJpbWl0aXZlVmFsdWVJbXBsKiB4OwpJbmRleDoga2h0bWwvZWNt
YS9kb21wYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2to
dG1sL2VjbWEvZG9tcGFyc2VyLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS43CmRpZmYgLXAg
LXUgLXIxLjcga2h0bWwvZWNtYS9kb21wYXJzZXIuY3BwCi0tLSBraHRtbC9lY21hL2RvbXBhcnNl
ci5jcHAJMyBPY3QgMjAwNSAyMToxMjoxMiAtMDAwMAkxLjcKKysrIGtodG1sL2VjbWEvZG9tcGFy
c2VyLmNwcAkxIE5vdiAyMDA1IDExOjEyOjU1IC0wMDAwCkBAIC03OCwxNSArNzgsMTQgQEAgVmFs
dWVJbXAgKkRPTVBhcnNlclByb3RvRnVuYzo6Y2FsbEFzRnVuYwogICBzd2l0Y2ggKGlkKSB7CiAg
IGNhc2UgRE9NUGFyc2VyOjpQYXJzZUZyb21TdHJpbmc6CiAgICAgewotICAgICAgaWYgKGFyZ3Mu
c2l6ZSgpICE9IDIpIHsKLQkJCQlyZXR1cm4gVW5kZWZpbmVkKCk7Ci0gICAgICB9CisgICAgICAg
IGlmIChhcmdzLnNpemUoKSAhPSAyKQorICAgICAgICAgICAgcmV0dXJuIFVuZGVmaW5lZCgpOwog
CiAgICAgICBRU3RyaW5nIHN0ciA9IGFyZ3NbMF0tPnRvU3RyaW5nKGV4ZWMpLnFzdHJpbmcoKTsK
ICAgICAgIFFTdHJpbmcgY29udGVudFR5cGUgPSBhcmdzWzFdLT50b1N0cmluZyhleGVjKS5xc3Ry
aW5nKCkuc3RyaXBXaGl0ZVNwYWNlKCk7CiAKICAgICAgIGlmIChjb250ZW50VHlwZSA9PSAidGV4
dC94bWwiIHx8IGNvbnRlbnRUeXBlID09ICJhcHBsaWNhdGlvbi94bWwiIHx8IGNvbnRlbnRUeXBl
ID09ICJhcHBsaWNhdGlvbi94aHRtbCt4bWwiKSB7Ci0gICAgICAgIERvY3VtZW50SW1wbCAqZG9j
SW1wbCA9IHBhcnNlci0+ZG9jLT5pbXBsKCktPmNyZWF0ZURvY3VtZW50KCk7CisgICAgICAgIERv
Y3VtZW50SW1wbCAqZG9jSW1wbCA9IHBhcnNlci0+ZG9jLT5pbXBsZW1lbnRhdGlvbigpLT5jcmVh
dGVEb2N1bWVudCgpOwogCiAgICAgICAgIGRvY0ltcGwtPm9wZW4oKTsKICAgICAgICAgZG9jSW1w
bC0+d3JpdGUoc3RyKTsKSW5kZXg6IGtodG1sL2VjbWEva2pzX2RvbS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWNtYS9ranNfZG9tLmNwcCx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS4xMDQKZGlmZiAtcCAtdSAtcjEuMTA0IGtodG1sL2VjbWEva2pzX2Rv
bS5jcHAKLS0tIGtodG1sL2VjbWEva2pzX2RvbS5jcHAJMjYgT2N0IDIwMDUgMjA6NDQ6MTAgLTAw
MDAJMS4xMDQKKysrIGtodG1sL2VjbWEva2pzX2RvbS5jcHAJMSBOb3YgMjAwNSAxMToxMjo1NyAt
MDAwMApAQCAtOTQ0LDcgKzk0NCw3IEBAIFZhbHVlSW1wICpET01Eb2N1bWVudDo6Z2V0VmFsdWVQ
cm9wZXJ0eSgKICAgY2FzZSBEb2NUeXBlOgogICAgIHJldHVybiBnZXRET01Ob2RlKGV4ZWMsZG9j
LmRvY3R5cGUoKSk7CiAgIGNhc2UgSW1wbGVtZW50YXRpb246Ci0gICAgcmV0dXJuIGdldERPTURP
TUltcGxlbWVudGF0aW9uKGV4ZWMsZG9jLmltcGwoKSk7CisgICAgcmV0dXJuIGdldERPTURPTUlt
cGxlbWVudGF0aW9uKGV4ZWMsIGRvYy5pbXBsZW1lbnRhdGlvbigpKTsKICAgY2FzZSBEb2N1bWVu
dEVsZW1lbnQ6CiAgICAgcmV0dXJuIGdldERPTU5vZGUoZXhlYyxkb2MuZG9jdW1lbnRFbGVtZW50
KCkpOwogICBjYXNlIFN0eWxlU2hlZXRzOgpJbmRleDoga2h0bWwvZWNtYS94bWxodHRwcmVxdWVz
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWNtYS94
bWxodHRwcmVxdWVzdC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDQKZGlmZiAtcCAtdSAt
cjEuNDQga2h0bWwvZWNtYS94bWxodHRwcmVxdWVzdC5jcHAKLS0tIGtodG1sL2VjbWEveG1saHR0
cHJlcXVlc3QuY3BwCTI3IE9jdCAyMDA1IDIzOjE1OjAwIC0wMDAwCTEuNDQKKysrIGtodG1sL2Vj
bWEveG1saHR0cHJlcXVlc3QuY3BwCTEgTm92IDIwMDUgMTE6MTI6NTcgLTAwMDAKQEAgLTE2MSw3
ICsxNjEsNyBAQCBWYWx1ZUltcCAqWE1MSHR0cFJlcXVlc3Q6OmdldFZhbHVlUHJvcGVyCiAgICAg
ICAKICAgICAgIGlmIChtaW1lVHlwZSA9PSAidGV4dC94bWwiIHx8IG1pbWVUeXBlID09ICJhcHBs
aWNhdGlvbi94bWwiIHx8IG1pbWVUeXBlID09ICJhcHBsaWNhdGlvbi94aHRtbCt4bWwiIHx8CiAg
ICAgICAgICAgbWltZVR5cGUgPT0gInRleHQveHNsIiB8fCBtaW1lVHlwZSA9PSAiYXBwbGljYXRp
b24vcnNzK3htbCIgfHwgbWltZVR5cGUgPT0gImFwcGxpY2F0aW9uL2F0b20reG1sIikgewotCXJl
c3BvbnNlWE1MLnJlc2V0KGRvYy0+aW1wbCgpLT5jcmVhdGVEb2N1bWVudCgpKTsKKwlyZXNwb25z
ZVhNTC5yZXNldChkb2MtPmltcGxlbWVudGF0aW9uKCktPmNyZWF0ZURvY3VtZW50KCkpOwogCiAJ
RG9jdW1lbnRJbXBsICpkb2NJbXBsID0gcmVzcG9uc2VYTUwuZ2V0KCk7CiAJCkluZGV4OiBraHRt
bC9odG1sL2h0bWxfZG9jdW1lbnRpbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jv
b3QvV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfZG9jdW1lbnRpbXBsLmNwcCx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS43MwpkaWZmIC1wIC11IC1yMS43MyBraHRtbC9odG1sL2h0bWxfZG9jdW1lbnRp
bXBsLmNwcAotLS0ga2h0bWwvaHRtbC9odG1sX2RvY3VtZW50aW1wbC5jcHAJMjYgT2N0IDIwMDUg
MDY6MTA6MDkgLTAwMDAJMS43MworKysga2h0bWwvaHRtbC9odG1sX2RvY3VtZW50aW1wbC5jcHAJ
MSBOb3YgMjAwNSAxMToxMjo1OCAtMDAwMApAQCAtMTM0LDE5ICsxMzQsNiBAQCBFbGVtZW50SW1w
bCogSFRNTERvY3VtZW50SW1wbDo6ZG9jdW1lbnRFCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVs
ZW1lbnRJbXBsKj4oX2ZpcnN0KTsKIH0KIAotRE9NU3RyaW5nIEhUTUxEb2N1bWVudEltcGw6OnJl
ZmVycmVyKCkgY29uc3QKLXsKLSAgICBpZiAoIHBhcnQoKSApCi0jaWYgQVBQTEVfQ0hBTkdFUwot
ICAgICAgICByZXR1cm4gS1dRKHBhcnQoKSktPmluY29taW5nUmVmZXJyZXIoKTsKLSNlbHNlCi0g
ICAgICAgIC8vIFRoaXMgaXMgYnJva2VuOyByZXR1cm5zIHRoZSByZWZlcnJlciB1c2VkIGZvciBs
aW5rcyB3aXRoaW4gdGhpcyBwYWdlIChiYXNpY2FsbHkKLSAgICAgICAgLy8gdGhlIHNhbWUgYXMg
dGhlIFVSTCksIG5vdCB0aGUgcmVmZXJyZXIgdXNlZCBmb3IgbG9hZGluZyB0aGlzIHBhZ2UgaXRz
ZWxmLgotICAgICAgICByZXR1cm4gcGFydCgpLT5yZWZlcnJlcigpOwotI2VuZGlmCi0gICAgcmV0
dXJuIERPTVN0cmluZygpOwotfQotCiBET01TdHJpbmcgSFRNTERvY3VtZW50SW1wbDo6bGFzdE1v
ZGlmaWVkKCkgY29uc3QKIHsKICAgICBpZiAoIHBhcnQoKSApCkluZGV4OiBraHRtbC9odG1sL2h0
bWxfZG9jdW1lbnRpbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUv
a2h0bWwvaHRtbC9odG1sX2RvY3VtZW50aW1wbC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjMz
CmRpZmYgLXAgLXUgLXIxLjMzIGtodG1sL2h0bWwvaHRtbF9kb2N1bWVudGltcGwuaAotLS0ga2h0
bWwvaHRtbC9odG1sX2RvY3VtZW50aW1wbC5oCTI4IFNlcCAyMDA1IDIyOjAxOjMyIC0wMDAwCTEu
MzMKKysrIGtodG1sL2h0bWwvaHRtbF9kb2N1bWVudGltcGwuaAkxIE5vdiAyMDA1IDExOjEyOjU4
IC0wMDAwCkBAIC00Nyw3ICs0Nyw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNIVE1M
RG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBFbGVtZW50SW1w
bCAqZG9jdW1lbnRFbGVtZW50KCkgY29uc3Q7CiAKLSAgICBET01TdHJpbmcgcmVmZXJyZXIoKSBj
b25zdDsKICAgICBET01TdHJpbmcgbGFzdE1vZGlmaWVkKCkgY29uc3Q7CiAgICAgRE9NU3RyaW5n
IGNvb2tpZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0Q29va2llKCBjb25zdCBET01TdHJpbmcgJik7
CkluZGV4OiBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX3N0eWxlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX3N0eWxlLmNwcCx2
CnJldHJpZXZpbmcgcmV2aXNpb24gMS43MwpkaWZmIC1wIC11IC1yMS43MyBraHRtbC9yZW5kZXJp
bmcvcmVuZGVyX3N0eWxlLmNwcAotLS0ga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9zdHlsZS5jcHAJ
NiBPY3QgMjAwNSAwMDo1Mzo1OSAtMDAwMAkxLjczCisrKyBraHRtbC9yZW5kZXJpbmcvcmVuZGVy
X3N0eWxlLmNwcAkxIE5vdiAyMDA1IDExOjEyOjU5IC0wMDAwCkBAIC05MDIsNyArOTAyLDcgQEAg
dm9pZCBSZW5kZXJTdHlsZTo6c2V0Q2xpcCggTGVuZ3RoIHRvcCwgTAogICAgIGRhdGEtPmNsaXAu
bGVmdCA9IGxlZnQ7CiB9CiAKLWJvb2wgUmVuZGVyU3R5bGU6OmNvbnRlbnREYXRhRXF1aXZhbGVu
dChSZW5kZXJTdHlsZSogb3RoZXJTdHlsZSkKK2Jvb2wgUmVuZGVyU3R5bGU6OmNvbnRlbnREYXRh
RXF1aXZhbGVudChjb25zdCBSZW5kZXJTdHlsZSogb3RoZXJTdHlsZSkgY29uc3QKIHsKICAgICBD
b250ZW50RGF0YSogYzEgPSBjb250ZW50OwogICAgIENvbnRlbnREYXRhKiBjMiA9IG90aGVyU3R5
bGUtPmNvbnRlbnQ7CkluZGV4OiBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX3N0eWxlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9z
dHlsZS5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjk2CmRpZmYgLXAgLXUgLXIxLjk2IGtodG1s
L3JlbmRlcmluZy9yZW5kZXJfc3R5bGUuaAotLS0ga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9zdHls
ZS5oCTI4IE9jdCAyMDA1IDA3OjAzOjI2IC0wMDAwCTEuOTYKKysrIGtodG1sL3JlbmRlcmluZy9y
ZW5kZXJfc3R5bGUuaAkxIE5vdiAyMDA1IDExOjEzOjAxIC0wMDAwCkBAIC0xNjA2LDcgKzE2MDYs
NyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIENvbnRlbnREYXRhKiBjb250ZW50RGF0YSgpIHsg
cmV0dXJuIGNvbnRlbnQ7IH0KLSAgICBib29sIGNvbnRlbnREYXRhRXF1aXZhbGVudChSZW5kZXJT
dHlsZSogb3RoZXJTdHlsZSk7CisgICAgYm9vbCBjb250ZW50RGF0YUVxdWl2YWxlbnQoY29uc3Qg
UmVuZGVyU3R5bGUgKm90aGVyU3R5bGUpIGNvbnN0OwogICAgIHZvaWQgc2V0Q29udGVudChET006
OkRPTVN0cmluZ0ltcGwqIHMsIGJvb2wgYWRkID0gZmFsc2UpOwogICAgIHZvaWQgc2V0Q29udGVu
dChDYWNoZWRPYmplY3QqIG8sIGJvb2wgYWRkID0gZmFsc2UpOwogCkluZGV4OiBraHRtbC94bWwv
RXZlbnROYW1lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1s
L3htbC9FdmVudE5hbWVzLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMgpkaWZmIC1wIC11IC1y
MS4yIGtodG1sL3htbC9FdmVudE5hbWVzLmgKLS0tIGtodG1sL3htbC9FdmVudE5hbWVzLmgJMyBT
ZXAgMjAwNSAyMzoxMDowMSAtMDAwMAkxLjIKKysrIGtodG1sL3htbC9FdmVudE5hbWVzLmgJMSBO
b3YgMjAwNSAxMToxMzowMSAtMDAwMApAQCAtNzAsNiArNzAsNyBAQCBuYW1lc3BhY2UgRE9NIHsg
bmFtZXNwYWNlIEV2ZW50TmFtZXMgewogICAgIG1hY3JvKHN1Ym1pdCkgXAogICAgIG1hY3JvKHRl
eHRJbnB1dCkgXAogICAgIG1hY3JvKHVubG9hZCkgXAorICAgIG1hY3JvKHpvb20pIFwKICAgICBc
CiAgICAgbWFjcm8oRE9NQWN0aXZhdGUpIFwKICAgICBtYWNybyhET01BdHRyTW9kaWZpZWQpIFwK
SW5kZXg6IGtodG1sL3htbC9kb21fZG9jaW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2
cy9yb290L1dlYkNvcmUva2h0bWwveG1sL2RvbV9kb2NpbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS4yNjYKZGlmZiAtcCAtdSAtcjEuMjY2IGtodG1sL3htbC9kb21fZG9jaW1wbC5jcHAK
LS0tIGtodG1sL3htbC9kb21fZG9jaW1wbC5jcHAJMSBOb3YgMjAwNSAwNzoxNjowOCAtMDAwMAkx
LjI2NgorKysga2h0bWwveG1sL2RvbV9kb2NpbXBsLmNwcAkxIE5vdiAyMDA1IDExOjEzOjAzIC0w
MDAwCkBAIC05NSw2ICs5NSwxMSBAQCB1c2luZyBYQkw6OlhCTEJpbmRpbmdNYW5hZ2VyOwogCiAj
aWYgU1ZHX1NVUFBPUlQKICNpbmNsdWRlICJkb21fa2RvbWRvY3VtZW50d3JhcHBlci5oIgorI2lu
Y2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSAiU1ZHRWxlbWVudEZhY3RvcnkuaCIKKyNpbmNs
dWRlICJTVkdFbGVtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR1pvb21FdmVudEltcGwuaCIKKyNp
bmNsdWRlICJTVkdTdHlsZUVsZW1lbnRJbXBsLmgiCiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNl
IERPTTsKQEAgLTIwMiw3ICsyMDcsNyBAQCBET01JbXBsZW1lbnRhdGlvbkltcGw6On5ET01JbXBs
ZW1lbnRhdGlvCiB7CiB9CiAKLWJvb2wgRE9NSW1wbGVtZW50YXRpb25JbXBsOjpoYXNGZWF0dXJl
ICggY29uc3QgRE9NU3RyaW5nICZmZWF0dXJlLCBjb25zdCBET01TdHJpbmcgJnZlcnNpb24gKQor
Ym9vbCBET01JbXBsZW1lbnRhdGlvbkltcGw6Omhhc0ZlYXR1cmUgKGNvbnN0IERPTVN0cmluZyYg
ZmVhdHVyZSwgY29uc3QgRE9NU3RyaW5nJiB2ZXJzaW9uKSBjb25zdAogewogICAgIFFTdHJpbmcg
bG93ZXIgPSBmZWF0dXJlLnFzdHJpbmcoKS5sb3dlcigpOwogICAgIGlmIChsb3dlciA9PSAiY29y
ZSIgfHwgbG93ZXIgPT0gImh0bWwiIHx8IGxvd2VyID09ICJ4bWwiIHx8IGxvd2VyID09ICJ4aHRt
bCIpCkBAIC0yOTUsNyArMzAwLDcgQEAgRG9jdW1lbnRJbXBsICpET01JbXBsZW1lbnRhdGlvbklt
cGw6OmNyZQogCiAgICAgLy8gV1JPTkdfRE9DVU1FTlRfRVJSOiBSYWlzZWQgaWYgZG9jdHlwZSBo
YXMgYWxyZWFkeSBiZWVuIHVzZWQgd2l0aCBhIGRpZmZlcmVudCBkb2N1bWVudCBvciB3YXMKICAg
ICAvLyBjcmVhdGVkIGZyb20gYSBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb24uCi0gICAgaWYgKGRv
Y3R5cGUgJiYgKGRvY3R5cGUtPmdldERvY3VtZW50KCkgfHwgZG9jdHlwZS0+aW1wbCgpICE9IHRo
aXMpKSB7CisgICAgaWYgKGRvY3R5cGUgJiYgKGRvY3R5cGUtPmdldERvY3VtZW50KCkgfHwgZG9j
dHlwZS0+aW1wbGVtZW50YXRpb24oKSAhPSB0aGlzKSkgewogICAgICAgICBleGNlcHRpb25jb2Rl
ID0gRE9NRXhjZXB0aW9uOjpXUk9OR19ET0NVTUVOVF9FUlI7CiAgICAgICAgIHJldHVybiAwOwog
ICAgIH0KQEAgLTU2Miw3ICs1NjcsNyBAQCBEb2N1bWVudFR5cGVJbXBsICpEb2N1bWVudEltcGw6
OmRvY3R5cGUoCiAgICAgcmV0dXJuIG1fZG9jVHlwZS5nZXQoKTsKIH0KIAotRE9NSW1wbGVtZW50
YXRpb25JbXBsICpEb2N1bWVudEltcGw6OmltcGwoKSBjb25zdAorRE9NSW1wbGVtZW50YXRpb25J
bXBsICpEb2N1bWVudEltcGw6OmltcGxlbWVudGF0aW9uKCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV9pbXBsZW1lbnRhdGlvbjsKIH0KQEAgLTcxNCwyMCArNzE5LDMxIEBAIEVsZW1lbnRJbXBsICpE
b2N1bWVudEltcGw6OmNyZWF0ZUVsZW1lbnQKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCisg
ICAgUXVhbGlmaWVkTmFtZSBxTmFtZSA9IFF1YWxpZmllZE5hbWUoQXRvbWljU3RyaW5nKHByZWZp
eCksIEF0b21pY1N0cmluZyhsb2NhbE5hbWUpLCBBdG9taWNTdHJpbmcoX25hbWVzcGFjZVVSSSkp
OwogICAgIEVsZW1lbnRJbXBsICplID0gMDsKICAgICAKICAgICAvLyBGSVhNRTogVXNlIHJlZ2lz
dGVyZWQgbmFtZXNwYWNlcyBhbmQgbG9vayB1cCBpbiBhIGhhc2ggdG8gZmluZCB0aGUgcmlnaHQg
ZmFjdG9yeS4KICAgICBpZiAoX25hbWVzcGFjZVVSSSA9PSB4aHRtbE5hbWVzcGFjZVVSSSkgewot
ICAgICAgICBlID0gSFRNTEVsZW1lbnRGYWN0b3J5OjpjcmVhdGVIVE1MRWxlbWVudChBdG9taWNT
dHJpbmcobG9jYWxOYW1lKSwgdGhpcywgMCwgZmFsc2UpOworICAgICAgICBlID0gSFRNTEVsZW1l
bnRGYWN0b3J5OjpjcmVhdGVIVE1MRWxlbWVudChxTmFtZS5sb2NhbE5hbWUoKSwgdGhpcywgMCwg
ZmFsc2UpOwogICAgICAgICBpZiAoZSAmJiAhcHJlZml4LmlzTnVsbCgpKSB7Ci0gICAgICAgICAg
ICBlLT5zZXRQcmVmaXgoQXRvbWljU3RyaW5nKHByZWZpeCksIGV4Y2VwdGlvbmNvZGUpOworICAg
ICAgICAgICAgZS0+c2V0UHJlZml4KHFOYW1lLnByZWZpeCgpLCBleGNlcHRpb25jb2RlKTsKICAg
ICAgICAgICAgIGlmIChleGNlcHRpb25jb2RlKQogICAgICAgICAgICAgICAgIHJldHVybiAwOwog
ICAgICAgICB9CiAgICAgfQorI2lmZGVmIFNWR19TVVBQT1JUCisgICAgZWxzZSBpZiAoX25hbWVz
cGFjZVVSSSA9PSBLU1ZHOjpTVkdOYW1lczo6c3ZnTmFtZXNwYWNlVVJJKSB7CisgICAgICAgIGUg
PSBLU1ZHOjpTVkdFbGVtZW50RmFjdG9yeTo6Y3JlYXRlU1ZHRWxlbWVudChxTmFtZSwgdGhpcywg
ZmFsc2UpOworICAgICAgICBpZiAoZSAmJiAhcHJlZml4LmlzTnVsbCgpKSB7CisgICAgICAgICAg
ICBlLT5zZXRQcmVmaXgocU5hbWUucHJlZml4KCksIGV4Y2VwdGlvbmNvZGUpOworICAgICAgICAg
ICAgaWYgKGV4Y2VwdGlvbmNvZGUpCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
IH0KKyAgICB9CisjZW5kaWYKICAgICAKICAgICBpZiAoIWUpCi0gICAgICAgIGUgPSBuZXcgRWxl
bWVudEltcGwoUXVhbGlmaWVkTmFtZShBdG9taWNTdHJpbmcocHJlZml4KSwgQXRvbWljU3RyaW5n
KGxvY2FsTmFtZSksIEF0b21pY1N0cmluZyhfbmFtZXNwYWNlVVJJKSksIGRvY3VtZW50KTsKKyAg
ICAgICAgZSA9IG5ldyBFbGVtZW50SW1wbChxTmFtZSwgZG9jdW1lbnQpOwogICAgIAogICAgIHJl
dHVybiBlOwogfQpAQCAtMjE0MSw2ICsyMTU3LDM0IEBAIHZvaWQgRG9jdW1lbnRJbXBsOjpyZWNh
bGNTdHlsZVNlbGVjdG9yKCkKICAgICAgICAgICAgICAgICBpZiAodGl0bGUgIT0gbV9wcmVmZXJy
ZWRTdHlsZXNoZWV0U2V0KQogICAgICAgICAgICAgICAgICAgICBzaGVldCA9IDA7CiAgICAgICAg
ICAgICB9CisjaWYgU1ZHX1NVUFBPUlQKKyAgICAgICAgICAgIGVsc2UgaWYgKG4tPmlzU1ZHRWxl
bWVudCgpICYmIG4tPmhhc1RhZ05hbWUoS1NWRzo6U1ZHTmFtZXM6OnN0eWxlVGFnKSkKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICBRU3RyaW5nIHRpdGxlOworICAgICAgICAgICAgICAg
IC8vIDxTVFlMRT4gZWxlbWVudAorICAgICAgICAgICAgICAgIEtTVkc6OlNWR1N0eWxlRWxlbWVu
dEltcGwgKnMgPSBzdGF0aWNfY2FzdDxLU1ZHOjpTVkdTdHlsZUVsZW1lbnRJbXBsKj4obik7Cisg
ICAgICAgICAgICAgICAgaWYoIXMtPmlzTG9hZGluZygpKQorICAgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgc2hlZXQgPSBzLT5zaGVldCgpOworICAgICAgICAgICAgICAgICAg
ICBpZihzaGVldCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlID0gRE9NOjpET01TdHJp
bmcocy0+Z2V0QXR0cmlidXRlKEtTVkc6OlNWR05hbWVzOjp0aXRsZUF0dHIpKS5xc3RyaW5nKCk7
CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYoIXRpdGxlLmlzRW1wdHko
KSAmJiBtX3ByZWZlcnJlZFN0eWxlc2hlZXRTZXQuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAg
ICAgICBtX3ByZWZlcnJlZFN0eWxlc2hlZXRTZXQgPSB2aWV3KCktPnBhcnQoKS0+ZC0+bV9zaGVl
dFVzZWQgPSB0aXRsZTsKKworICAgICAgICAgICAgICAgIGlmKCF0aXRsZS5pc0VtcHR5KCkpCisg
ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpZih0aXRsZSAhPSBtX3ByZWZl
cnJlZFN0eWxlc2hlZXRTZXQpCisgICAgICAgICAgICAgICAgICAgICAgICBzaGVldCA9IDA7IC8v
IGRvbid0IHVzZSBpdAorCisgICAgICAgICAgICAgICAgICAgIHRpdGxlID0gdGl0bGUucmVwbGFj
ZSgnJicsIFFTdHJpbmc6OmZyb21MYXRpbjEoIiYmIikpOworCisgICAgICAgICAgICAgICAgICAg
IGlmKCFtX2F2YWlsYWJsZVNoZWV0cy5jb250YWlucyh0aXRsZSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICBtX2F2YWlsYWJsZVNoZWV0cy5hcHBlbmQodGl0bGUpOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0KKyNlbmRpZgogICAgICAgICB9CiAKICAgICAgICAgaWYgKHNoZWV0
KSB7CkBAIC0yNDE5LDYgKzI0NjMsMTIgQEAgRXZlbnRJbXBsICpEb2N1bWVudEltcGw6OmNyZWF0
ZUV2ZW50KGNvbgogICAgICAgICByZXR1cm4gbmV3IEtleWJvYXJkRXZlbnRJbXBsKCk7CiAgICAg
ZWxzZSBpZiAoZXZlbnRUeXBlID09ICJIVE1MRXZlbnRzIiB8fCBldmVudFR5cGUgPT0gIkV2ZW50
IiB8fCBldmVudFR5cGUgPT0gIkV2ZW50cyIpCiAgICAgICAgIHJldHVybiBuZXcgRXZlbnRJbXBs
KCk7CisjaWZkZWYgU1ZHX1NVUFBPUlQKKyAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gIlNWR0V2
ZW50cyIpCisgICAgICAgIHJldHVybiBuZXcgRXZlbnRJbXBsKCk7CisgICAgZWxzZSBpZihldmVu
dFR5cGUgPT0gIlNWR1pvb21FdmVudHMiKQorICAgICAgICByZXR1cm4gbmV3IEtTVkc6OlNWR1pv
b21FdmVudEltcGwoKTsKKyNlbmRpZgogICAgIGVsc2UgewogICAgICAgICBleGNlcHRpb25jb2Rl
ID0gRE9NRXhjZXB0aW9uOjpOT1RfU1VQUE9SVEVEX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CkBA
IC0yNjAyLDYgKzI2NTIsMTkgQEAgRWxlbWVudEltcGwgKkRvY3VtZW50SW1wbDo6b3duZXJFbGVt
ZW50KAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxFbGVtZW50SW1wbCAqPihyZW5kZXJQYXJ0LT5l
bGVtZW50KCkpOwogfQogCitET01TdHJpbmcgRG9jdW1lbnRJbXBsOjpyZWZlcnJlcigpIGNvbnN0
Cit7CisgICAgaWYgKCBwYXJ0KCkgKQorI2lmIEFQUExFX0NIQU5HRVMKKyAgICAgICAgcmV0dXJu
IEtXUShwYXJ0KCkpLT5pbmNvbWluZ1JlZmVycmVyKCk7CisjZWxzZQorICAgICAgICAvLyBUaGlz
IGlzIGJyb2tlbjsgcmV0dXJucyB0aGUgcmVmZXJyZXIgdXNlZCBmb3IgbGlua3Mgd2l0aGluIHRo
aXMgcGFnZSAoYmFzaWNhbGx5CisgICAgICAgIC8vIHRoZSBzYW1lIGFzIHRoZSBVUkwpLCBub3Qg
dGhlIHJlZmVycmVyIHVzZWQgZm9yIGxvYWRpbmcgdGhpcyBwYWdlIGl0c2VsZi4KKyAgICAgICAg
cmV0dXJuIHBhcnQoKS0+cmVmZXJyZXIoKTsKKyNlbmRpZgorICAgIHJldHVybiBET01TdHJpbmco
KTsKK30KKwogRE9NU3RyaW5nIERvY3VtZW50SW1wbDo6ZG9tYWluKCkgY29uc3QKIHsKICAgICBp
ZiAoIG1fZG9tYWluLmlzRW1wdHkoKSApIC8vIG5vdCBzZXQgeWV0ICh3ZSBzZXQgaXQgb24gZGVt
YW5kIHRvIHNhdmUgdGltZSBhbmQgc3BhY2UpCkluZGV4OiBraHRtbC94bWwvZG9tX2RvY2ltcGwu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC94bWwvZG9tX2Rv
Y2ltcGwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMzQKZGlmZiAtcCAtdSAtcjEuMTM0IGto
dG1sL3htbC9kb21fZG9jaW1wbC5oCi0tLSBraHRtbC94bWwvZG9tX2RvY2ltcGwuaAkyNyBPY3Qg
MjAwNSAyMzoxNTowMyAtMDAwMAkxLjEzNAorKysga2h0bWwveG1sL2RvbV9kb2NpbXBsLmgJMSBO
b3YgMjAwNSAxMToxMzowNCAtMDAwMApAQCAtMTMyLDcgKzEzMiw3IEBAIHB1YmxpYzoKICAgICB+
RE9NSW1wbGVtZW50YXRpb25JbXBsKCk7CiAKICAgICAvLyBET00gbWV0aG9kcyAmIGF0dHJpYnV0
ZXMgZm9yIERPTUltcGxlbWVudGF0aW9uCi0gICAgYm9vbCBoYXNGZWF0dXJlICggY29uc3QgRE9N
U3RyaW5nICZmZWF0dXJlLCBjb25zdCBET01TdHJpbmcgJnZlcnNpb24gKTsKKyAgICBib29sIGhh
c0ZlYXR1cmUoY29uc3QgRE9NU3RyaW5nJiBmZWF0dXJlLCBjb25zdCBET01TdHJpbmcmIHZlcnNp
b24pIGNvbnN0OwogICAgIERvY3VtZW50VHlwZUltcGwgKmNyZWF0ZURvY3VtZW50VHlwZSggY29u
c3QgRE9NU3RyaW5nICZxdWFsaWZpZWROYW1lLCBjb25zdCBET01TdHJpbmcgJnB1YmxpY0lkLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRE9NU3RyaW5n
ICZzeXN0ZW1JZCwgaW50ICZleGNlcHRpb25jb2RlICk7CiAgICAgRG9jdW1lbnRJbXBsICpjcmVh
dGVEb2N1bWVudCggY29uc3QgRE9NU3RyaW5nICZuYW1lc3BhY2VVUkksIGNvbnN0IERPTVN0cmlu
ZyAmcXVhbGlmaWVkTmFtZSwKQEAgLTE3Nyw3ICsxNzcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBEb2N1bWVudFR5cGVJbXBsICpkb2N0eXBlKCkgY29uc3Q7IC8vIHJldHVybnMgMCBmb3IgSFRN
TCBkb2N1bWVudHMKICAgICBEb2N1bWVudFR5cGVJbXBsICpyZWFsRG9jVHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZG9jVHlwZS5nZXQoKTsgfQogCi0gICAgRE9NSW1wbGVtZW50YXRpb25JbXBsICpp
bXBsKCkgY29uc3Q7CisgICAgRE9NSW1wbGVtZW50YXRpb25JbXBsICppbXBsZW1lbnRhdGlvbigp
IGNvbnN0OwogICAgIHZpcnR1YWwgRWxlbWVudEltcGwgKmRvY3VtZW50RWxlbWVudCgpIGNvbnN0
OwogICAgIHZpcnR1YWwgRWxlbWVudEltcGwgKmNyZWF0ZUVsZW1lbnQoY29uc3QgRE9NU3RyaW5n
ICZ0YWdOYW1lLCBpbnQgJmV4Y2VwdGlvbmNvZGUpOwogICAgIERvY3VtZW50RnJhZ21lbnRJbXBs
ICpjcmVhdGVEb2N1bWVudEZyYWdtZW50ICgpOwpAQCAtNTA4LDcgKzUwOCw4IEBAIHB1YmxpYzoK
ICAgICAvLyBSZXR1cm5zIHRoZSBvd25pbmcgZWxlbWVudCBpbiB0aGUgcGFyZW50IGRvY3VtZW50
LgogICAgIC8vIFJldHVybnMgMCBpZiB0aGlzIGlzIHRoZSB0b3AgbGV2ZWwgZG9jdW1lbnQuCiAg
ICAgRWxlbWVudEltcGwgKm93bmVyRWxlbWVudCgpOwotCisgICAgCisgICAgRE9NU3RyaW5nIHJl
ZmVycmVyKCkgY29uc3Q7CiAgICAgRE9NU3RyaW5nIGRvbWFpbigpIGNvbnN0OwogICAgIHZvaWQg
c2V0RG9tYWluKCBjb25zdCBET01TdHJpbmcgJm5ld0RvbWFpbiwgYm9vbCBmb3JjZSA9IGZhbHNl
ICk7IC8vIG5vdCBwYXJ0IG9mIHRoZSBET00KIApAQCAtODIyLDcgKzgyMyw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIE5vZGVJbXBsICpjbG9uZU5vZGUoYm9vbCBkZWVwKTsKIAogICAgIC8vIE90
aGVyIG1ldGhvZHMgKG5vdCBwYXJ0IG9mIERPTSkKLSAgICBET01JbXBsZW1lbnRhdGlvbkltcGwg
KmltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGxlbWVudGF0aW9uLmdldCgpOyB9CisgICAgRE9N
SW1wbGVtZW50YXRpb25JbXBsICppbXBsZW1lbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1faW1w
bGVtZW50YXRpb24uZ2V0KCk7IH0KICAgICB2aXJ0dWFsIERPTVN0cmluZyB0b1N0cmluZygpIGNv
bnN0OwogCiBwcml2YXRlOgpJbmRleDoga2h0bWwveG1sL2RvbV9lbGVtZW50aW1wbC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveG1sL2RvbV9lbGVtZW50
aW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuODgKZGlmZiAtcCAtdSAtcjEuODgga2h0
bWwveG1sL2RvbV9lbGVtZW50aW1wbC5jcHAKLS0tIGtodG1sL3htbC9kb21fZWxlbWVudGltcGwu
Y3BwCTI2IE9jdCAyMDA1IDIwOjQ0OjExIC0wMDAwCTEuODgKKysrIGtodG1sL3htbC9kb21fZWxl
bWVudGltcGwuY3BwCTEgTm92IDIwMDUgMTE6MTM6MDUgLTAwMDAKQEAgLTMzNyw2ICszMzcsMTEg
QEAgY29uc3QgQXRvbWljU3RyaW5nJiBFbGVtZW50SW1wbDo6Z2V0SURBdAogICAgIHJldHVybiBu
YW1lZEF0dHJNYXAgPyBuYW1lZEF0dHJNYXAtPmlkKCkgOiBudWxsQXRvbTsKIH0KIAorYm9vbCBF
bGVtZW50SW1wbDo6aGFzQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0
Cit7CisgICAgcmV0dXJuIGhhc0F0dHJpYnV0ZU5TKG5hbWUubmFtZXNwYWNlVVJJKCksIG5hbWUu
bG9jYWxOYW1lKCkpOworfQorCiBjb25zdCBBdG9taWNTdHJpbmcmIEVsZW1lbnRJbXBsOjpnZXRB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKIHsKICAgICBpZiAobmFt
ZSA9PSBzdHlsZUF0dHIpCkluZGV4OiBraHRtbC94bWwvZG9tX2VsZW1lbnRpbXBsLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveG1sL2RvbV9lbGVtZW50aW1w
bC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjU3CmRpZmYgLXAgLXUgLXIxLjU3IGtodG1sL3ht
bC9kb21fZWxlbWVudGltcGwuaAotLS0ga2h0bWwveG1sL2RvbV9lbGVtZW50aW1wbC5oCTI2IE9j
dCAyMDA1IDIwOjQ0OjEyIC0wMDAwCTEuNTcKKysrIGtodG1sL3htbC9kb21fZWxlbWVudGltcGwu
aAkxIE5vdiAyMDA1IDExOjEzOjA1IC0wMDAwCkBAIC0xNzEsNiArMTcxLDcgQEAgcHVibGljOgog
ICAgIC8vIFVzZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgd2hldGhlciBvciBub3QgYW4gZWxlbWVu
dCBoYXMgYSBnaXZlbiBDU1MgY2xhc3MuCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmdM
aXN0KiBnZXRDbGFzc0xpc3QoKSBjb25zdDsKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGdldElE
QXR0cmlidXRlKCkgY29uc3Q7CisgICAgYm9vbCBoYXNBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSkgY29uc3Q7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBnZXRBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3Q7CiAgICAgdm9pZCBzZXRBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgRE9NU3RyaW5nSW1wbCogdmFsdWUsIGludCAmZXhj
ZXB0aW9uY29kZSk7CiAgICAgdm9pZCByZW1vdmVBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgaW50ICZleGNlcHRpb25jb2RlKTsKSW5kZXg6IGtodG1sL3htbC9kb21fbm9kZWlt
cGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC94bWwvZG9t
X25vZGVpbXBsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTExCmRpZmYgLXAgLXUgLXIxLjEx
MSBraHRtbC94bWwvZG9tX25vZGVpbXBsLmgKLS0tIGtodG1sL3htbC9kb21fbm9kZWltcGwuaAky
NyBPY3QgMjAwNSAyMzoxNTowNCAtMDAwMAkxLjExMQorKysga2h0bWwveG1sL2RvbV9ub2RlaW1w
bC5oCTEgTm92IDIwMDUgMTE6MTM6MDYgLTAwMDAKQEAgLTExOSw2ICsxMTksOSBAQCBwdWJsaWM6
CiAgICAgLy8gT3RoZXIgbWV0aG9kcyAobm90IHBhcnQgb2YgRE9NKQogICAgIHZpcnR1YWwgYm9v
bCBpc0VsZW1lbnROb2RlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNIVE1MRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjaWYgU1ZHX1NVUFBP
UlQKKyAgICB2aXJ0dWFsIGJvb2wgaXNTVkdFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyNlbmRpZgogICAgIHZpcnR1YWwgYm9vbCBpc1N0eWxlZEVsZW1lbnQoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0F0dHJpYnV0ZU5vZGUoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1RleHROb2RlKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KSW5kZXg6IGtodG1sL3htbC9kb21fc3RyaW5naW1wbC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveG1sL2RvbV9zdHJpbmdpbXBs
LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zMgpkaWZmIC1wIC11IC1yMS4zMiBraHRtbC94
bWwvZG9tX3N0cmluZ2ltcGwuY3BwCi0tLSBraHRtbC94bWwvZG9tX3N0cmluZ2ltcGwuY3BwCTMg
T2N0IDIwMDUgMjE6MTI6NTMgLTAwMDAJMS4zMgorKysga2h0bWwveG1sL2RvbV9zdHJpbmdpbXBs
LmNwcAkxIE5vdiAyMDA1IDExOjEzOjA2IC0wMDAwCkBAIC02MCw2ICs2MCwyNCBAQCBET01TdHJp
bmdJbXBsOjpET01TdHJpbmdJbXBsKGNvbnN0IFFDaGFyCiAgICAgfQogfQogCitET01TdHJpbmdJ
bXBsOjpET01TdHJpbmdJbXBsKGNvbnN0IFFTdHJpbmcgJnN0cmluZykKK3sKKyAgICBjb25zdCBR
Q2hhciAqc3RyID0gc3RyaW5nLnVuaWNvZGUoKTsKKyAgICB1bnNpZ25lZCBsZW4gPSBzdHJpbmcu
bGVuZ3RoKCk7CisgICAgX2hhc2ggPSAwOworICAgIF9pblRhYmxlID0gZmFsc2U7CisgICAgYm9v
bCBoYXZlc3RyID0gc3RyICYmIGxlbjsKKyAgICBzID0gUVRfQUxMT0NfUUNIQVJfVkVDKGhhdmVz
dHIgPyBsZW4gOiAxKTsKKyAgICBpZiAoaGF2ZXN0cikgeworICAgICAgICBtZW1jcHkoIHMsIHN0
ciwgbGVuICogc2l6ZW9mKFFDaGFyKSApOworICAgICAgICBsID0gbGVuOworICAgIH0gZWxzZSB7
CisgICAgICAgIC8vIGNyYXNoIHByb3RlY3Rpb24KKyAgICAgICAgc1swXSA9IDB4MDsKKyAgICAg
ICAgbCA9IDA7CisgICAgfQorfQorCiBET01TdHJpbmdJbXBsOjpET01TdHJpbmdJbXBsKGNvbnN0
IGNoYXIgKnN0cikKIHsKICAgICBfaGFzaCA9IDA7CkluZGV4OiBraHRtbC94bWwvZG9tX3N0cmlu
Z2ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC94bWwv
ZG9tX3N0cmluZ2ltcGwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNwpkaWZmIC1wIC11IC1y
MS4xNyBraHRtbC94bWwvZG9tX3N0cmluZ2ltcGwuaAotLS0ga2h0bWwveG1sL2RvbV9zdHJpbmdp
bXBsLmgJMyBPY3QgMjAwNSAyMToxMjo1MyAtMDAwMAkxLjE3CisrKyBraHRtbC94bWwvZG9tX3N0
cmluZ2ltcGwuaAkxIE5vdiAyMDA1IDExOjEzOjA2IC0wMDAwCkBAIC00NSw2ICs0NSw3IEBAIHB1
YmxpYzoKICAgICBET01TdHJpbmdJbXBsKGNvbnN0IGNoYXIgKnN0cik7CiAgICAgRE9NU3RyaW5n
SW1wbChjb25zdCBjaGFyICpzdHIsIHVuc2lnbmVkIGludCBsZW4pOwogICAgIERPTVN0cmluZ0lt
cGwoY29uc3QgUUNoYXIgJmNoKTsKKyAgICBET01TdHJpbmdJbXBsKGNvbnN0IFFTdHJpbmcgJnN0
cik7CiAgICAgfkRPTVN0cmluZ0ltcGwoKTsKICAgICAKICAgICB1bnNpZ25lZCBoYXNoKCkgY29u
c3QgeyBpZiAoX2hhc2ggPT0gMCkgX2hhc2ggPSBjb21wdXRlSGFzaChzLCBsKTsgcmV0dXJuIF9o
YXNoOyB9CkluZGV4OiBraHRtbC94c2wveHNsdF9wcm9jZXNzb3JpbXBsLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC94c2wveHNsdF9wcm9jZXNzb3JpbXBs
LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNApkaWZmIC1wIC11IC1yMS4xNCBraHRtbC94
c2wveHNsdF9wcm9jZXNzb3JpbXBsLmNwcAotLS0ga2h0bWwveHNsL3hzbHRfcHJvY2Vzc29yaW1w
bC5jcHAJMjcgT2N0IDIwMDUgMjI6MzQ6NTIgLTAwMDAJMS4xNAorKysga2h0bWwveHNsL3hzbHRf
cHJvY2Vzc29yaW1wbC5jcHAJMSBOb3YgMjAwNSAxMToxMzowNyAtMDAwMApAQCAtMTg1LDkgKzE4
NSw5IEBAIFNoYXJlZFB0cjxEb2N1bWVudEltcGw+IFhTTFRQcm9jZXNzb3JJbXAKIAogICAgIFNo
YXJlZFB0cjxEb2N1bWVudEltcGw+IHJlc3VsdDsKICAgICBpZiAoc291cmNlTUlNRVR5cGUgPT0g
InRleHQvaHRtbCIpCi0gICAgICAgIHJlc3VsdCA9IG93bmVyRG9jdW1lbnQtPmltcGwoKS0+Y3Jl
YXRlSFRNTERvY3VtZW50KHZpZXcpOworICAgICAgICByZXN1bHQgPSBvd25lckRvY3VtZW50LT5p
bXBsZW1lbnRhdGlvbigpLT5jcmVhdGVIVE1MRG9jdW1lbnQodmlldyk7CiAgICAgZWxzZSB7Ci0g
ICAgICAgIHJlc3VsdCA9IG93bmVyRG9jdW1lbnQtPmltcGwoKS0+Y3JlYXRlRG9jdW1lbnQodmll
dyk7CisgICAgICAgIHJlc3VsdCA9IG93bmVyRG9jdW1lbnQtPmltcGxlbWVudGF0aW9uKCktPmNy
ZWF0ZURvY3VtZW50KHZpZXcpOwogICAgICAgICBpZiAoc291cmNlTUlNRVR5cGUgPT0gInRleHQv
cGxhaW4iKQogICAgICAgICAgICAgdHJhbnNmb3JtVGV4dFN0cmluZ1RvWEhUTUxEb2N1bWVudFN0
cmluZyhkb2N1bWVudFNvdXJjZSk7CiAgICAgfQpJbmRleDoga3N2ZzIvS1dRS1NWR1BhcnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiBrc3ZnMi9LV1FLU1ZHUGFydC5oCmRpZmYgLU4ga3N2ZzIvS1dR
S1NWR1BhcnQuaAotLS0ga3N2ZzIvS1dRS1NWR1BhcnQuaAkxMSBBdWcgMjAwNSAxMTozNDoyOSAt
MDAwMAkxLjIKKysrIGtzdmcyL0tXUUtTVkdQYXJ0LmgJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAw
MApAQCAtMSw0NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA1IEFwcGxlIENvbXB1
dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIEtTVkdfS1NW
R1BhcnRfSAotI2RlZmluZSBLU1ZHX0tTVkdQYXJ0X0gKLQotI2luY2x1ZGUgPGtkb20vS0RPTVBh
cnQuaD4KLQotbmFtZXNwYWNlIEtTVkcKLXsKLSAgICBjbGFzcyBLU1ZHUGFydCA6IHB1YmxpYyBL
RE9NOjpLRE9NUGFydAotICAgIHsKLSAgICAgICAgUV9PQkpFQ1QKLSAgICBwdWJsaWM6Ci0gICAg
ICAgIEtTVkdQYXJ0KCk7Ci0gICAgICAgIHZpcnR1YWwgfktTVkdQYXJ0KCk7Ci0gICAgCi0gICAg
ICAgIHZpcnR1YWwgYm9vbCBvcGVuRmlsZSgpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIHZp
cnR1YWwgYm9vbCBvcGVuVVJMKGNvbnN0IEtVUkwgJnVybCkgeyByZXR1cm4gdHJ1ZTsgfQotICAg
ICAgICB2aXJ0dWFsIGJvb2wgY2xvc2VVUkwoKSB7IHJldHVybiB0cnVlOyB9Ci0gICAgfTsKLX0K
LQotI2VuZGlmCkluZGV4OiBrc3ZnMi9LV1FLU1ZHUGFydC5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiBrc3ZnMi9LV1FLU1ZHUGFydC5tbQpkaWZmIC1OIGtzdmcyL0tXUUtTVkdQYXJ0Lm1tCi0tLSBr
c3ZnMi9LV1FLU1ZHUGFydC5tbQk1IE9jdCAyMDA1IDA1OjM1OjA4IC0wMDAwCTEuMgorKysga3N2
ZzIvS1dRS1NWR1BhcnQubW0JMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMApAQCAtMSw0MiArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
Ci0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW1wb3J0ICJL
V1FLU1ZHUGFydC5oIgotCi0jaW1wb3J0ICJLV1FLU1ZHVmlldy5oIgotCi11c2luZyBuYW1lc3Bh
Y2UgS1NWRzsKLQotS1NWR1BhcnQ6OktTVkdQYXJ0KCkgOiBLRE9NOjpLRE9NUGFydChOVUxMKQot
ewotICAgIEtTVkdWaWV3ICp2aWV3ID0gbmV3IEtTVkdWaWV3KHRoaXMpOwotICAgIHNldFZpZXco
dmlldyk7IC8vIGZvciBrZG9tLgotfQotCi1LU1ZHUGFydDo6fktTVkdQYXJ0KCkKLXsKLQotfQpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IGtzdmcyL0tXUUtTVkdWaWV3LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpSQ1MgZmlsZToga3N2ZzIvS1dRS1NWR1ZpZXcuaApkaWZmIC1OIGtzdmcyL0tXUUtT
VkdWaWV3LmgKLS0tIGtzdmcyL0tXUUtTVkdWaWV3LmgJMSBTZXAgMjAwNSAwNzozNDoxNCAtMDAw
MAkxLjMKKysrIGtzdmcyL0tXUUtTVkdWaWV3LmgJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMApA
QCAtMSw1MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA1IEFwcGxlIENvbXB1dGVy
LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIEtTVkdfS1NWR1Zp
ZXdfSAotI2RlZmluZSBLU1ZHX0tTVkdWaWV3X0gKLQotI2luY2x1ZGUgPGtkb20vS0RPTVZpZXcu
aD4KLSNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNWaWV3Lmg+Ci0KLW5hbWVzcGFjZSBLU1ZHCi17
Ci0gICAgY2xhc3MgS1NWR1BhcnQ7Ci0KLSAgICBjbGFzcyBLU1ZHVmlldyA6IHB1YmxpYyBRUGFp
bnREZXZpY2UsIAotICAgICAgICBwdWJsaWMgS0RPTTo6S0RPTVZpZXcgewotICAgICAgICBRX09C
SkVDVAotICAgIHB1YmxpYzoKLSAgICAgICAgS1NWR1ZpZXcoS1NWR1BhcnQgKnBhcnQpOwotICAg
ICAgICB2aXJ0dWFsIH5LU1ZHVmlldygpOwotICAgICAgICAKLSAgICAgICAgS0NhbnZhc1ZpZXcg
KmNhbnZhc1ZpZXcoKSBjb25zdCB7IHJldHVybiBtX3ZpZXc7IH0KLSAgICAgICAgCi0gICAgcHJp
dmF0ZToKLSAgICAgICAgS0NhbnZhc1ZpZXcgKm1fdmlldzsKLSAgICB9OwotfQotCi0jZW5kaWYK
SW5kZXg6IGtzdmcyL0tXUUtTVkdWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IGtzdmcyL0tX
UUtTVkdWaWV3Lm1tCmRpZmYgLU4ga3N2ZzIvS1dRS1NWR1ZpZXcubW0KLS0tIGtzdmcyL0tXUUtT
VkdWaWV3Lm1tCTUgT2N0IDIwMDUgMDU6MzU6MDkgLTAwMDAJMS4yCisrKyBrc3ZnMi9LV1FLU1ZH
Vmlldy5tbQkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCkBAIC0xLDQyICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbXBvcnQgIktXUUtTVkdWaWV3
LmgiCi0KLSNpbXBvcnQgIktXUUtTVkdQYXJ0LmgiCi0jaW1wb3J0ICJrY2FudmFzL2RldmljZS9x
dWFydHovS0NhbnZhc1ZpZXdRdWFydHouaCIKLQotdXNpbmcgbmFtZXNwYWNlIEtTVkc7Ci0KLUtT
VkdWaWV3OjpLU1ZHVmlldyhLU1ZHUGFydCAqcGFydCkgOiBLRE9NOjpLRE9NVmlldyhwYXJ0KQot
ewotICAgIG1fdmlldyA9IG5ldyBLQ2FudmFzVmlld1F1YXJ0eigpOwotfQotCi1LU1ZHVmlldzo6
fktTVkdWaWV3KCkKLXsKLSAgICBkZWxldGUgbV92aWV3OwotfQpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKSW5kZXg6IGtzdmcyL2Nzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9jc3MvU1ZHQ1NTU3R5bGVT
ZWxlY3Rvci5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOApkaWZmIC1wIC11IC1yMS44IGtz
dmcyL2Nzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcAotLS0ga3N2ZzIvY3NzL1NWR0NTU1N0eWxl
U2VsZWN0b3IuY3BwCTUgT2N0IDIwMDUgMDU6MzU6MTAgLTAwMDAJMS44CisrKyBrc3ZnMi9jc3Mv
U1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAJMSBOb3YgMjAwNSAxMToxMzowNyAtMDAwMApAQCAtNTIs
NyArNTIsNyBAQAogI2luY2x1ZGUgPGtkb20vY3NzL0NTU1N0eWxlRGVjbGFyYXRpb25JbXBsLmg+
CiAKICNpbmNsdWRlICJrc3ZnLmgiCi0jaW5jbHVkZSAic3ZndGFncy5oIgorI2luY2x1ZGUgIlNW
R05hbWVzLmgiCiAjaW5jbHVkZSA8a3N2ZzIvY3NzL2Nzc3ZhbHVlcy5oPgogI2luY2x1ZGUgIlNW
R0NvbG9ySW1wbC5oIgogI2luY2x1ZGUgIlNWR1BhaW50SW1wbC5oIgpAQCAtMTUzLDE0ICsxNTMs
MTQgQEAgdm9pZCBTVkdDU1NTdHlsZVNlbGVjdG9yOjpsb2FkRGVmYXVsdFN0eQogICAgIEtET006
OkRPTVN0cmluZyBzdHIoc3R5bGUpOwogCiAgICAgc19kZWZhdWx0U2hlZXQgPSBuZXcgU1ZHQ1NT
U3R5bGVTaGVldEltcGwoZG9jKTsKLSAgICBzX2RlZmF1bHRTaGVldC0+cGFyc2VTdHJpbmcoc3Ry
LmhhbmRsZSgpKTsKKyAgICBzX2RlZmF1bHRTaGVldC0+cGFyc2VTdHJpbmcoc3RyLmltcGwoKSk7
CiAKICAgICAvLyBDb2xsZWN0IG9ubHkgc3RyaWN0LW1vZGUgcnVsZXMuCiAgICAgc19kZWZhdWx0
U3R5bGUgPSBuZXcgS0RPTTo6Q1NTU3R5bGVTZWxlY3Rvckxpc3QoKTsKLSAgICBzX2RlZmF1bHRT
dHlsZS0+YXBwZW5kKHNfZGVmYXVsdFNoZWV0LCBLRE9NOjpET01TdHJpbmcoInNjcmVlbiIpLmhh
bmRsZSgpKTsKKyAgICBzX2RlZmF1bHRTdHlsZS0+YXBwZW5kKHNfZGVmYXVsdFNoZWV0LCBLRE9N
OjpET01TdHJpbmcoInNjcmVlbiIpLmltcGwoKSk7CiAKICAgICBzX2RlZmF1bHRQcmludFN0eWxl
ID0gbmV3IEtET006OkNTU1N0eWxlU2VsZWN0b3JMaXN0KCk7Ci0gICAgc19kZWZhdWx0UHJpbnRT
dHlsZS0+YXBwZW5kKHNfZGVmYXVsdFNoZWV0LCBLRE9NOjpET01TdHJpbmcoInByaW50IikuaGFu
ZGxlKCkpOworICAgIHNfZGVmYXVsdFByaW50U3R5bGUtPmFwcGVuZChzX2RlZmF1bHRTaGVldCwg
S0RPTTo6RE9NU3RyaW5nKCJwcmludCIpLmltcGwoKSk7CiB9CiAKIHVuc2lnbmVkIGludCBTVkdD
U1NTdHlsZVNlbGVjdG9yOjphZGRFeHRyYURlY2xhcmF0aW9ucyhLRE9NOjpFbGVtZW50SW1wbCAq
ZSwgdW5zaWduZWQgaW50IG51bVByb3BzKQpAQCAtNjM0LDcgKzYzNCw3IEBAIHZvaWQgU1ZHQ1NT
U3R5bGVTZWxlY3Rvcjo6YXBwbHlSdWxlKGludCAKICAgICAgICAgICAgIFFTdHJpbmcgczsKICAg
ICAgICAgICAgIGludCB0eXBlID0gcHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUoKTsKICAg
ICAgICAgICAgIGlmKHR5cGUgPT0gS0RPTTo6Q1NTX1VSSSkKLSAgICAgICAgICAgICAgICBzID0g
S0RPTTo6RE9NU3RyaW5nKHByaW1pdGl2ZVZhbHVlLT5nZXRET01TdHJpbmdWYWx1ZSgpKS5zdHJp
bmcoKTsKKyAgICAgICAgICAgICAgICBzID0gS0RPTTo6RE9NU3RyaW5nKHByaW1pdGl2ZVZhbHVl
LT5nZXRET01TdHJpbmdWYWx1ZSgpKS5xc3RyaW5nKCk7CiAgICAgICAgICAgICBlbHNlCiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogCkBAIC02NTAsNyArNjUwLDcgQEAgdm9pZCBTVkdDU1NTdHls
ZVNlbGVjdG9yOjphcHBseVJ1bGUoaW50IAogICAgICAgICAgICAgUVN0cmluZyBzOwogICAgICAg
ICAgICAgaW50IHR5cGUgPSBwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpOwogICAgICAg
ICAgICAgaWYodHlwZSA9PSBLRE9NOjpDU1NfVVJJKQotICAgICAgICAgICAgICAgIHMgPSBLRE9N
OjpET01TdHJpbmcocHJpbWl0aXZlVmFsdWUtPmdldERPTVN0cmluZ1ZhbHVlKCkpLnN0cmluZygp
OworICAgICAgICAgICAgICAgIHMgPSBLRE9NOjpET01TdHJpbmcocHJpbWl0aXZlVmFsdWUtPmdl
dERPTVN0cmluZ1ZhbHVlKCkpLnFzdHJpbmcoKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICByZXR1cm47CiAKQEAgLTY2Niw3ICs2NjYsNyBAQCB2b2lkIFNWR0NTU1N0eWxlU2Vs
ZWN0b3I6OmFwcGx5UnVsZShpbnQgCiAgICAgICAgICAgICBRU3RyaW5nIHM7CiAgICAgICAgICAg
ICBpbnQgdHlwZSA9IHByaW1pdGl2ZVZhbHVlLT5wcmltaXRpdmVUeXBlKCk7CiAgICAgICAgICAg
ICBpZih0eXBlID09IEtET006OkNTU19VUkkpCi0gICAgICAgICAgICAgICAgcyA9IEtET006OkRP
TVN0cmluZyhwcmltaXRpdmVWYWx1ZS0+Z2V0RE9NU3RyaW5nVmFsdWUoKSkuc3RyaW5nKCk7Cisg
ICAgICAgICAgICAgICAgcyA9IEtET006OkRPTVN0cmluZyhwcmltaXRpdmVWYWx1ZS0+Z2V0RE9N
U3RyaW5nVmFsdWUoKSkucXN0cmluZygpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgIHJldHVybjsKIApAQCAtNzA2LDcgKzcwNiw3IEBAIHZvaWQgU1ZHQ1NTU3R5bGVTZWxlY3Rv
cjo6YXBwbHlSdWxlKGludCAKICAgICAgICAgICAgIFFTdHJpbmcgczsKICAgICAgICAgICAgIGlu
dCB0eXBlID0gcHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUoKTsKICAgICAgICAgICAgIGlm
KHR5cGUgPT0gS0RPTTo6Q1NTX1VSSSkKLSAgICAgICAgICAgICAgICBzID0gS0RPTTo6RE9NU3Ry
aW5nKHByaW1pdGl2ZVZhbHVlLT5nZXRET01TdHJpbmdWYWx1ZSgpKS5zdHJpbmcoKTsKKyAgICAg
ICAgICAgICAgICBzID0gS0RPTTo6RE9NU3RyaW5nKHByaW1pdGl2ZVZhbHVlLT5nZXRET01TdHJp
bmdWYWx1ZSgpKS5xc3RyaW5nKCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgc3Znc3R5bGUtPnNldEZpbHRlcihzKTsKQEAgLTcyMSw3ICs3
MjEsNyBAQCB2b2lkIFNWR0NTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UnVsZShpbnQgCiAgICAgICAg
ICAgICBRU3RyaW5nIHM7CiAgICAgICAgICAgICBpbnQgdHlwZSA9IHByaW1pdGl2ZVZhbHVlLT5w
cmltaXRpdmVUeXBlKCk7CiAgICAgICAgICAgICBpZih0eXBlID09IEtET006OkNTU19VUkkpCi0g
ICAgICAgICAgICAgICAgcyA9IEtET006OkRPTVN0cmluZyhwcmltaXRpdmVWYWx1ZS0+Z2V0RE9N
U3RyaW5nVmFsdWUoKSkuc3RyaW5nKCk7CisgICAgICAgICAgICAgICAgcyA9IEtET006OkRPTVN0
cmluZyhwcmltaXRpdmVWYWx1ZS0+Z2V0RE9NU3RyaW5nVmFsdWUoKSkucXN0cmluZygpOwogICAg
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHJldHVybjsKIApJbmRleDoga3N2ZzIvY3Nz
L1NWR1JlbmRlclN0eWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3Vw
cG9ydC9rc3ZnMi9jc3MvU1ZHUmVuZGVyU3R5bGUuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAx
LjQKZGlmZiAtcCAtdSAtcjEuNCBrc3ZnMi9jc3MvU1ZHUmVuZGVyU3R5bGUuY3BwCi0tLSBrc3Zn
Mi9jc3MvU1ZHUmVuZGVyU3R5bGUuY3BwCTUgT2N0IDIwMDUgMDU6MzU6MTAgLTAwMDAJMS40Cisr
KyBrc3ZnMi9jc3MvU1ZHUmVuZGVyU3R5bGUuY3BwCTEgTm92IDIwMDUgMTE6MTM6MDcgLTAwMDAK
QEAgLTMzLDcgKzMzLDcgQEAgdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKIFNWR1JlbmRlclN0eWxl
ICpTVkdSZW5kZXJTdHlsZTo6c19kZWZhdWx0U3R5bGUgPSAwOwogCi1TVkdSZW5kZXJTdHlsZTo6
U1ZHUmVuZGVyU3R5bGUoKSA6IEtET006OlJlbmRlclN0eWxlKCkKK1NWR1JlbmRlclN0eWxlOjpT
VkdSZW5kZXJTdHlsZSgpIDoga2h0bWw6OlJlbmRlclN0eWxlKCkKIHsKICAgICBpZighc19kZWZh
dWx0U3R5bGUpICAgIAogICAgICAgICBzX2RlZmF1bHRTdHlsZSA9IG5ldyBTVkdSZW5kZXJTdHls
ZSh0cnVlKTsKQEAgLTQ4LDcgKzQ4LDcgQEAgU1ZHUmVuZGVyU3R5bGU6OlNWR1JlbmRlclN0eWxl
KCkgOiBLRE9NOgogICAgIHNldEJpdERlZmF1bHRzKCk7CiB9CiAKLVNWR1JlbmRlclN0eWxlOjpT
VkdSZW5kZXJTdHlsZShib29sKSA6IEtET006OlJlbmRlclN0eWxlKHRydWUpCitTVkdSZW5kZXJT
dHlsZTo6U1ZHUmVuZGVyU3R5bGUoYm9vbCkgOiBraHRtbDo6UmVuZGVyU3R5bGUodHJ1ZSkKIHsK
ICAgICBzZXRCaXREZWZhdWx0cygpOwogCkBAIC02MCw3ICs2MCw3IEBAIFNWR1JlbmRlclN0eWxl
OjpTVkdSZW5kZXJTdHlsZShib29sKSA6IEsKICAgICBtYXJrZXJzLmluaXQoKTsKIH0KIAotU1ZH
UmVuZGVyU3R5bGU6OlNWR1JlbmRlclN0eWxlKGNvbnN0IFNWR1JlbmRlclN0eWxlICZvdGhlcikg
OiBLRE9NOjpSZW5kZXJTdHlsZShvdGhlcikKK1NWR1JlbmRlclN0eWxlOjpTVkdSZW5kZXJTdHls
ZShjb25zdCBTVkdSZW5kZXJTdHlsZSAmb3RoZXIpIDoga2h0bWw6OlJlbmRlclN0eWxlKG90aGVy
KQogewogICAgIGZpbGwgPSBvdGhlci5maWxsOwogICAgIHN0cm9rZSA9IG90aGVyLnN0cm9rZTsK
QEAgLTgzLDcgKzgzLDcgQEAgdm9pZCBTVkdSZW5kZXJTdHlsZTo6Y2xlYW51cCgpCiAgICAgc19k
ZWZhdWx0U3R5bGUgPSAwOwogfQogCi1ib29sIFNWR1JlbmRlclN0eWxlOjplcXVhbHMoS0RPTTo6
UmVuZGVyU3R5bGUgKm90aGVyKSBjb25zdAorYm9vbCBTVkdSZW5kZXJTdHlsZTo6ZXF1YWxzKGto
dG1sOjpSZW5kZXJTdHlsZSAqb3RoZXIpIGNvbnN0CiB7CiAgICAgU1ZHUmVuZGVyU3R5bGUgKnN2
Z090aGVyID0gZHluYW1pY19jYXN0PFNWR1JlbmRlclN0eWxlICo+KG90aGVyKTsKICAgICBpZigh
c3ZnT3RoZXIpCkBAIC05Miw3ICs5Miw3IEBAIGJvb2wgU1ZHUmVuZGVyU3R5bGU6OmVxdWFscyhL
RE9NOjpSZW5kZXIKICAgICByZXR1cm4gKGZpbGwgPT0gc3ZnT3RoZXItPmZpbGwgJiYgc3Ryb2tl
ID09IHN2Z090aGVyLT5zdHJva2UgJiYKICAgICAgICAgc3RvcHMgPT0gc3ZnT3RoZXItPnN0b3Bz
ICYmIGNsaXAgPT0gc3ZnT3RoZXItPmNsaXAgJiYKICAgICAgICAgbWlzYyA9PSBzdmdPdGhlci0+
bWlzYyAmJiBtYXJrZXJzID09IHN2Z090aGVyLT5tYXJrZXJzICYmCi0gICAgICAgIEtET006OlJl
bmRlclN0eWxlOjplcXVhbHMob3RoZXIpKTsKKyAgICAgICAga2h0bWw6OlJlbmRlclN0eWxlOjpj
b250ZW50RGF0YUVxdWl2YWxlbnQob3RoZXIpKTsKIH0KIAogdm9pZCBTVkdSZW5kZXJTdHlsZTo6
aW5oZXJpdEZyb20oY29uc3QgUmVuZGVyU3R5bGUgKmluaGVyaXRQYXJlbnQpCkBAIC0xMDEsNyAr
MTAxLDcgQEAgdm9pZCBTVkdSZW5kZXJTdHlsZTo6aW5oZXJpdEZyb20oY29uc3QgUgogICAgIGlm
KCFzdmdJbmhlcml0UGFyZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBLRE9NOjpSZW5kZXJT
dHlsZTo6aW5oZXJpdEZyb20oaW5oZXJpdFBhcmVudCk7CisgICAga2h0bWw6OlJlbmRlclN0eWxl
Ojppbmhlcml0RnJvbShpbmhlcml0UGFyZW50KTsKIAogICAgIGZpbGwgPSBzdmdJbmhlcml0UGFy
ZW50LT5maWxsOwogICAgIHN0cm9rZSA9IHN2Z0luaGVyaXRQYXJlbnQtPnN0cm9rZTsKSW5kZXg6
IGtzdmcyL2Nzcy9TVkdSZW5kZXJTdHlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9TVkdTdXBwb3J0L2tzdmcyL2Nzcy9TVkdSZW5kZXJTdHlsZS5oLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjQKZGlmZiAtcCAtdSAtcjEuNCBrc3ZnMi9jc3MvU1ZHUmVuZGVyU3R5bGUuaAotLS0g
a3N2ZzIvY3NzL1NWR1JlbmRlclN0eWxlLmgJMSBTZXAgMjAwNSAwOTozOToxMiAtMDAwMAkxLjQK
KysrIGtzdmcyL2Nzcy9TVkdSZW5kZXJTdHlsZS5oCTEgTm92IDIwMDUgMTE6MTM6MDggLTAwMDAK
QEAgLTI5LDkgKzI5LDMyIEBACiAjaW5jbHVkZSA8a2RvbS9jc3MvUmVuZGVyU3R5bGUuaD4KICNp
bmNsdWRlIDxrc3ZnMi9jc3MvU1ZHUmVuZGVyU3R5bGVEZWZzLmg+CiAKKy8vIEhlbHBlciBtYWNy
b3MgZm9yICdSZW5kZXJTdHlsZScKKyNkZWZpbmUgUlNfREVGSU5FX0FUVFJJQlVURShEYXRhLCBU
eXBlLCBOYW1lLCBJbml0aWFsKSBcCisgICAgdm9pZCBzZXQjI1R5cGUoRGF0YSB2YWwpIHsgbm9u
aW5oZXJpdGVkX2ZsYWdzLmYuXyMjTmFtZSA9IHZhbDsgfSBcCisgICAgRGF0YSBOYW1lKCkgY29u
c3QgeyByZXR1cm4gKERhdGEpIG5vbmluaGVyaXRlZF9mbGFncy5mLl8jI05hbWU7IH0gXAorICAg
IHN0YXRpYyBEYXRhIGluaXRpYWwjI1R5cGUoKSB7IHJldHVybiBJbml0aWFsOyB9CisKKyNkZWZp
bmUgUlNfREVGSU5FX0FUVFJJQlVURV9JTkhFUklURUQoRGF0YSwgVHlwZSwgTmFtZSwgSW5pdGlh
bCkgXAorICAgIHZvaWQgc2V0IyNUeXBlKERhdGEgdmFsKSB7IGluaGVyaXRlZF9mbGFncy5mLl8j
I05hbWUgPSB2YWw7IH0gXAorICAgIERhdGEgTmFtZSgpIGNvbnN0IHsgcmV0dXJuIChEYXRhKSBp
bmhlcml0ZWRfZmxhZ3MuZi5fIyNOYW1lOyB9IFwKKyAgICBzdGF0aWMgRGF0YSBpbml0aWFsIyNU
eXBlKCkgeyByZXR1cm4gSW5pdGlhbDsgfQorCisjZGVmaW5lIFJTX0RFRklORV9BVFRSSUJVVEVf
REFUQVJFRihEYXRhLCBHcm91cCwgVmFyaWFibGUsIFR5cGUsIE5hbWUpIFwKKyAgICBEYXRhIE5h
bWUoKSBjb25zdCB7IHJldHVybiBHcm91cC0+VmFyaWFibGU7IH0gXAorICAgIHZvaWQgc2V0IyNU
eXBlKERhdGEgb2JqKSB7IFJTX1NFVF9WQVJJQUJMRShHcm91cCwgVmFyaWFibGUsIG9iaikgfQor
CisjZGVmaW5lIFJTX0RFRklORV9BVFRSSUJVVEVfREFUQVJFRl9XSVRIX0lOSVRJQUwoRGF0YSwg
R3JvdXAsIFZhcmlhYmxlLCBUeXBlLCBOYW1lLCBJbml0aWFsKSBcCisgICAgUlNfREVGSU5FX0FU
VFJJQlVURV9EQVRBUkVGKERhdGEsIEdyb3VwLCBWYXJpYWJsZSwgVHlwZSwgTmFtZSkgXAorICAg
IHN0YXRpYyBEYXRhIGluaXRpYWwjI1R5cGUoKSB7IHJldHVybiBJbml0aWFsOyB9CisKKyNkZWZp
bmUgUlNfU0VUX1ZBUklBQkxFKEdyb3VwLCBWYXJpYWJsZSwgVmFsdWUpIFwKKyAgICBpZighKEdy
b3VwLT5WYXJpYWJsZSA9PSBWYWx1ZSkpIFwKKyAgICAgICAgR3JvdXAuYWNjZXNzKCktPlZhcmlh
YmxlID0gVmFsdWU7CisKIG5hbWVzcGFjZSBLU1ZHCiB7Ci0gICAgY2xhc3MgU1ZHUmVuZGVyU3R5
bGUgOiBwdWJsaWMgS0RPTTo6UmVuZGVyU3R5bGUKKyAgICBjbGFzcyBTVkdSZW5kZXJTdHlsZSA6
IHB1YmxpYyBraHRtbDo6UmVuZGVyU3R5bGUKICAgICB7ICAgIAogICAgIHB1YmxpYzoKICAgICAg
ICAgU1ZHUmVuZGVyU3R5bGUoKTsKQEAgLTM5LDcgKzYyLDcgQEAgbmFtZXNwYWNlIEtTVkcKICAg
ICAgICAgU1ZHUmVuZGVyU3R5bGUoY29uc3QgU1ZHUmVuZGVyU3R5bGUgJm90aGVyKTsKICAgICAg
ICAgdmlydHVhbCB+U1ZHUmVuZGVyU3R5bGUoKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZXF1
YWxzKEtET006OlJlbmRlclN0eWxlICpvdGhlcikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgYm9v
bCBlcXVhbHMoUmVuZGVyU3R5bGUgKm90aGVyKSBjb25zdDsKIAogICAgICAgICBzdGF0aWMgdm9p
ZCBjbGVhbnVwKCk7CiAKQEAgLTE1NCw3ICsxNzcsNyBAQCBuYW1lc3BhY2UgS1NWRwogICAgICAg
ICBzdGF0aWMgU1ZHUmVuZGVyU3R5bGUgKnNfZGVmYXVsdFN0eWxlOwogCiAgICAgcHJpdmF0ZToK
LSAgICAgICAgU1ZHUmVuZGVyU3R5bGUoY29uc3QgU1ZHUmVuZGVyU3R5bGUgKikgOiBLRE9NOjpS
ZW5kZXJTdHlsZSgpIHsgfQorICAgICAgICBTVkdSZW5kZXJTdHlsZShjb25zdCBTVkdSZW5kZXJT
dHlsZSAqKSA6IGtodG1sOjpSZW5kZXJTdHlsZSgpIHsgfQogCiAgICAgICAgIHZvaWQgc2V0Qml0
RGVmYXVsdHMoKQogICAgICAgICB7CkluZGV4OiBrc3ZnMi9lY21hL0VjbWEuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL2VjbWEvRWNtYS5jcHAsdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuNwpkaWZmIC1wIC11IC1yMS43IGtzdmcyL2VjbWEvRWNtYS5j
cHAKLS0tIGtzdmcyL2VjbWEvRWNtYS5jcHAJNSBPY3QgMjAwNSAwNTozNToxMSAtMDAwMAkxLjcK
KysrIGtzdmcyL2VjbWEvRWNtYS5jcHAJMSBOb3YgMjAwNSAxMToxMzowOCAtMDAwMApAQCAtMzks
NyArMzksNiBAQAogI2luY2x1ZGUgIlNWR1BhaW50SW1wbC5oIgogI2luY2x1ZGUgIkdsb2JhbE9i
amVjdC5oIgogI2luY2x1ZGUgIlNWR0NvbG9ySW1wbC5oIgotI2luY2x1ZGUgIlNWR0V2ZW50SW1w
bC5oIgogI2luY2x1ZGUgIlNWR1pvb21FdmVudC5oIgogI2luY2x1ZGUgIlNWR1VzZUVsZW1lbnQu
aCIKICNpbmNsdWRlICJTVkdTVkdFbGVtZW50LmgiCkluZGV4OiBrc3ZnMi9ldmVudHMvU1ZHRXZl
bnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBrc3ZnMi9ldmVudHMvU1ZHRXZlbnRJbXBs
LmNwcApkaWZmIC1OIGtzdmcyL2V2ZW50cy9TVkdFdmVudEltcGwuY3BwCi0tLSBrc3ZnMi9ldmVu
dHMvU1ZHRXZlbnRJbXBsLmNwcAk1IE9jdCAyMDA1IDA1OjM1OjEyIC0wMDAwCTEuNgorKysga3N2
ZzIvZXZlbnRzL1NWR0V2ZW50SW1wbC5jcHAJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMApAQCAt
MSw0OSArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFpp
bW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUg
Um9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIAotICAgIFRoaXMgZmls
ZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
Ci0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAg
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJvc3Rv
biwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgPGtkb20vY29yZS9ET01TdHJpbmdJbXBsLmg+Ci0KLSNpbmNsdWRlICJTVkdFdmVudEltcGwu
aCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbkltcGwuaCIKLQotdXNpbmcgbmFtZXNw
YWNlIEtTVkc7Ci0KLVNWR0V2ZW50SW1wbDo6U1ZHRXZlbnRJbXBsKCkgOiBLRE9NOjpFdmVudElt
cGwoKEtET006OkV2ZW50SW1wbFR5cGUpIFR5cGVTVkdFdmVudCkKLXsKLX0KLQotU1ZHRXZlbnRJ
bXBsOjp+U1ZHRXZlbnRJbXBsKCkKLXsKLX0KLQotdm9pZCBTVkdFdmVudEltcGw6OmluaXRFdmVu
dChLRE9NOjpET01TdHJpbmdJbXBsICpldmVudFR5cGVBcmcsIGJvb2wgY2FuQnViYmxlQXJnLCBi
b29sIGNhbmNlbGFibGVBcmcpCi17Ci0gICAgbV9pZCA9IFNWR0RPTUltcGxlbWVudGF0aW9uSW1w
bDo6c2VsZigpLT50eXBlVG9JZChldmVudFR5cGVBcmcpOwotCi0gICAgbV9idWJibGVzID0gY2Fu
QnViYmxlQXJnOwotICAgIG1fY2FuY2VsYWJsZSA9IGNhbmNlbGFibGVBcmc7Ci0KLSAgICBLRE9N
X1NBRkVfU0VUKG1fdHlwZSwgZXZlbnRUeXBlQXJnKTsKLX0KLQotLy8gdmltOnRzPTQ6bm9ldApJ
bmRleDoga3N2ZzIvZXZlbnRzL1NWR0V2ZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IGtz
dmcyL2V2ZW50cy9TVkdFdmVudEltcGwuaApkaWZmIC1OIGtzdmcyL2V2ZW50cy9TVkdFdmVudElt
cGwuaAotLS0ga3N2ZzIvZXZlbnRzL1NWR0V2ZW50SW1wbC5oCTggU2VwIDIwMDUgMDg6MDM6MzMg
LTAwMDAJMS42CisrKyBrc3ZnMi9ldmVudHMvU1ZHRXZlbnRJbXBsLmgJMSBKYW4gMTk3MCAwMDow
MDowMCAtMDAwMApAQCAtMSw0OSArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwg
MjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAg
ICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAg
IAotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgot
ICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAg
ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUg
MzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2lmbmRlZiBLU1ZH
X1NWR0V2ZW50SW1wbF9ICi0jZGVmaW5lIEtTVkdfU1ZHRXZlbnRJbXBsX0gKLQotI2luY2x1ZGUg
PGtzdmcyL2V2ZW50cy9rc3ZnZXZlbnRzLmg+Ci0jaW5jbHVkZSA8a2RvbS9ldmVudHMvRXZlbnRJ
bXBsLmg+Ci0KLW5hbWVzcGFjZSBLU1ZHCi17Ci0gICAgdHlwZWRlZiBlbnVtCi0gICAgewotICAg
ICAgICBUeXBlU1ZHRXZlbnQgPSBLRE9NOjpUeXBlTGFzdEV2ZW50ICsgMSwKLSAgICAgICAgVHlw
ZVNWR1pvb21FdmVudCA9IEtET006OlR5cGVMYXN0RXZlbnQgKyAyCi0gICAgfSBTVkdFdmVudElt
cGxUeXBlOwotCi0gICAgY2xhc3MgU1ZHRXZlbnRJbXBsIDogcHVibGljIEtET006OkV2ZW50SW1w
bAotICAgIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0V2ZW50SW1wbCgpOwotICAgICAgICB2
aXJ0dWFsIH5TVkdFdmVudEltcGwoKTsKLQotICAgICAgICB2aXJ0dWFsIHZvaWQgaW5pdEV2ZW50
KEtET006OkRPTVN0cmluZ0ltcGwgKmV2ZW50VHlwZUFyZywgYm9vbCBjYW5CdWJibGVBcmcsIGJv
b2wgY2FuY2VsYWJsZUFyZyk7Ci0gICAgfTsKLX07Ci0KLSNlbmRpZgotCi0vLyB2aW06dHM9NDpu
b2V0CkluZGV4OiBrc3ZnMi9ldmVudHMvU1ZHWm9vbUV2ZW50SW1wbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvZXZlbnRzL1NWR1pvb21FdmVudElt
cGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjUKZGlmZiAtcCAtdSAtcjEuNSBrc3ZnMi9l
dmVudHMvU1ZHWm9vbUV2ZW50SW1wbC5jcHAKLS0tIGtzdmcyL2V2ZW50cy9TVkdab29tRXZlbnRJ
bXBsLmNwcAk1IE9jdCAyMDA1IDA1OjM1OjEyIC0wMDAwCTEuNQorKysga3N2ZzIvZXZlbnRzL1NW
R1pvb21FdmVudEltcGwuY3BwCTEgTm92IDIwMDUgMTE6MTM6MDggLTAwMDAKQEAgLTIzLDEyICsy
MywxMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNWR1JlY3RJbXBsLmgiCiAj
aW5jbHVkZSAiU1ZHUG9pbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHRXZlbnRJbXBsLmgiCiAjaW5j
bHVkZSAiU1ZHWm9vbUV2ZW50SW1wbC5oIgogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIAotU1ZH
Wm9vbUV2ZW50SW1wbDo6U1ZHWm9vbUV2ZW50SW1wbCgpIDogS0RPTTo6VUlFdmVudEltcGwoKEtE
T006OkV2ZW50SW1wbFR5cGUpIFR5cGVTVkdab29tRXZlbnQpCitTVkdab29tRXZlbnRJbXBsOjpT
Vkdab29tRXZlbnRJbXBsKCkKIHsKICAgICBtX25ld1NjYWxlID0gMC4wOwogICAgIG1fcHJldmlv
dXNTY2FsZSA9IDAuMDsKSW5kZXg6IGtzdmcyL2V2ZW50cy9TVkdab29tRXZlbnRJbXBsLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvZXZlbnRzL1NWR1pv
b21FdmVudEltcGwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40CmRpZmYgLXAgLXUgLXIxLjQg
a3N2ZzIvZXZlbnRzL1NWR1pvb21FdmVudEltcGwuaAotLS0ga3N2ZzIvZXZlbnRzL1NWR1pvb21F
dmVudEltcGwuaAkxIFNlcCAyMDA1IDA5OjM5OjEzIC0wMDAwCTEuNAorKysga3N2ZzIvZXZlbnRz
L1NWR1pvb21FdmVudEltcGwuaAkxIE5vdiAyMDA1IDExOjEzOjA4IC0wMDAwCkBAIC0yNSw4ICsy
NSw2IEBACiAKICNpbmNsdWRlIDxrZG9tL2V2ZW50cy9VSUV2ZW50SW1wbC5oPgogCi0jaW5jbHVk
ZSA8a3N2ZzIvZXZlbnRzL2tzdmdldmVudHMuaD4KLQogbmFtZXNwYWNlIEtTVkcKIHsKICAgICBj
bGFzcyBTVkdSZWN0SW1wbDsKSW5kZXg6IGtzdmcyL2V2ZW50cy9rc3ZnZXZlbnRzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZToga3N2ZzIvZXZlbnRzL2tzdmdldmVudHMuaApkaWZmIC1OIGtzdmcyL2V2
ZW50cy9rc3ZnZXZlbnRzLmgKLS0tIGtzdmcyL2V2ZW50cy9rc3ZnZXZlbnRzLmgJMSBTZXAgMjAw
NSAwNzozNToyOSAtMDAwMAkxLjMKKysrIGtzdmcyL2V2ZW50cy9rc3ZnZXZlbnRzLmgJMSBKYW4g
MTk3MCAwMDowMDowMCAtMDAwMApAQCAtMSw0MSArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAg
ICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLSAgICAgICAg
ICAgICAgICAgIAotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0g
ICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
Ci0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNl
IC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2lm
bmRlZiBLU1ZHRVZFTlRTX0gKLSNkZWZpbmUgS1NWR0VWRU5UU19ICi0KLSNpbmNsdWRlIDxrZG9t
L2V2ZW50cy9rZG9tZXZlbnRzLmg+Ci0KLS8vIEdlbmVyYWwgbmFtZXNwYWNlIHNwZWNpZmljIGRl
ZmluaXRpb25zCi1uYW1lc3BhY2UgS1NWRwotewotICAgIGVudW0gRXZlbnRJZAotICAgIHsKLSAg
ICAgICAgLy8gU1ZHIGV2ZW50cwotICAgICAgICBaT09NX0VWRU5UID0gS0RPTTo6TEFTVF9FVkVO
VCArIDEKLSAgICB9OwotICAgIAotfTsKLQotI2VuZGlmCi0KLS8vIHZpbTp0cz00Om5vZXQKSW5k
ZXg6IGtzdmcyL21pc2MvS0NhbnZhc1JlbmRlcmluZ1N0eWxlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9taXNjL0tDYW52YXNSZW5kZXJpbmdTdHls
ZS5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOQpkaWZmIC1wIC11IC1yMS45IGtzdmcyL21p
c2MvS0NhbnZhc1JlbmRlcmluZ1N0eWxlLmNwcAotLS0ga3N2ZzIvbWlzYy9LQ2FudmFzUmVuZGVy
aW5nU3R5bGUuY3BwCTUgT2N0IDIwMDUgMDU6MzU6MTIgLTAwMDAJMS45CisrKyBrc3ZnMi9taXNj
L0tDYW52YXNSZW5kZXJpbmdTdHlsZS5jcHAJMSBOb3YgMjAwNSAxMToxMzowOCAtMDAwMApAQCAt
MzUsNiArMzUsNyBAQAogI2luY2x1ZGUgPGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdQYWludFNl
cnZlckdyYWRpZW50Lmg+CiAKICNpbmNsdWRlIDxrZG9tL2NvcmUvRG9jdW1lbnRJbXBsLmg+Cisj
aW5jbHVkZSA8a2RvbS9ET01TdHJpbmcuaD4KICNpbmNsdWRlIDxrZG9tL2Nzcy9SZW5kZXJTdHls
ZS5oPgogI2luY2x1ZGUgPGtkb20vY3NzL0NTU1ZhbHVlTGlzdEltcGwuaD4KICNpbmNsdWRlIDxr
ZG9tL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZUltcGwuaD4KQEAgLTgzLDcgKzg0LDcgQEAgdm9pZCBL
Q2FudmFzUmVuZGVyaW5nU3R5bGU6OnVwZGF0ZUZpbGwoSwogICAgIHsKICAgICAgICAgS0RPTTo6
RE9NU3RyaW5nIGlkKGZpbGwtPnVyaSgpKTsKIAotICAgICAgICBLUmVuZGVyaW5nUGFpbnRTZXJ2
ZXIgKmZpbGxQYWludFNlcnZlciA9IG1fY2FudmFzLT5yZWdpc3RyeSgpLT5nZXRQYWludFNlcnZl
ckJ5SWQoaWQuc3RyaW5nKCkubWlkKDEpKTsKKyAgICAgICAgS1JlbmRlcmluZ1BhaW50U2VydmVy
ICpmaWxsUGFpbnRTZXJ2ZXIgPSBtX2NhbnZhcy0+cmVnaXN0cnkoKS0+Z2V0UGFpbnRTZXJ2ZXJC
eUlkKGlkLnFzdHJpbmcoKS5taWQoMSkpOwogICAgICAgICBpZihpdGVtICYmIGZpbGxQYWludFNl
cnZlcikKICAgICAgICAgICAgIGZpbGxQYWludFNlcnZlci0+YWRkQ2xpZW50KGl0ZW0pOwogCkBA
IC0xMjAsNyArMTIxLDcgQEAgdm9pZCBLQ2FudmFzUmVuZGVyaW5nU3R5bGU6OnVwZGF0ZVN0cm9r
ZQogICAgIHsKICAgICAgICAgS0RPTTo6RE9NU3RyaW5nIGlkKHN0cm9rZS0+dXJpKCkpOwogCi0g
ICAgICAgIEtSZW5kZXJpbmdQYWludFNlcnZlciAqc3Ryb2tlUGFpbnRTZXJ2ZXIgPSBtX2NhbnZh
cy0+cmVnaXN0cnkoKS0+Z2V0UGFpbnRTZXJ2ZXJCeUlkKGlkLnN0cmluZygpLm1pZCgxKSk7Cisg
ICAgICAgIEtSZW5kZXJpbmdQYWludFNlcnZlciAqc3Ryb2tlUGFpbnRTZXJ2ZXIgPSBtX2NhbnZh
cy0+cmVnaXN0cnkoKS0+Z2V0UGFpbnRTZXJ2ZXJCeUlkKGlkLnFzdHJpbmcoKS5taWQoMSkpOwog
ICAgICAgICBpZihpdGVtICYmIHN0cm9rZVBhaW50U2VydmVyKQogICAgICAgICAgICAgc3Ryb2tl
UGFpbnRTZXJ2ZXItPmFkZENsaWVudChpdGVtKTsKIApAQCAtMjY4LDggKzI2OSw4IEBAIEtSZW5k
ZXJpbmdGaWxsUGFpbnRlciAqS0NhbnZhc1JlbmRlcmluZ1MKIC8vIERpc3BsYXkgc3RhdGVzCiBi
b29sIEtDYW52YXNSZW5kZXJpbmdTdHlsZTo6dmlzaWJsZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IChtX3N0eWxlLT5kaXNwbGF5KCkgIT0gS0RPTTo6RFNfTk9ORSkgJiYKLSAgICAgICAgICAgKG1f
c3R5bGUtPnZpc2liaWxpdHkoKSA9PSBLRE9NOjpWU19WSVNJQkxFKTsKKyAgICByZXR1cm4gKG1f
c3R5bGUtPmRpc3BsYXkoKSAhPSBLRE9NOjpOT05FKSAmJgorICAgICAgICAgICAobV9zdHlsZS0+
dmlzaWJpbGl0eSgpID09IEtET006OlZJU0lCTEUpOwogfQogCiB2b2lkIEtDYW52YXNSZW5kZXJp
bmdTdHlsZTo6c2V0VmlzaWJsZShib29sKQpJbmRleDoga3N2ZzIvbWlzYy9LU1ZHRG9jdW1lbnRC
dWlsZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBrc3ZnMi9taXNjL0tTVkdEb2N1bWVudEJ1
aWxkZXIuY3BwCmRpZmYgLU4ga3N2ZzIvbWlzYy9LU1ZHRG9jdW1lbnRCdWlsZGVyLmNwcAotLS0g
a3N2ZzIvbWlzYy9LU1ZHRG9jdW1lbnRCdWlsZGVyLmNwcAk1IE9jdCAyMDA1IDA1OjM1OjEzIC0w
MDAwCTEuNQorKysga3N2ZzIvbWlzYy9LU1ZHRG9jdW1lbnRCdWlsZGVyLmNwcAkxIEphbiAxOTcw
IDAwOjAwOjAwIC0wMDAwCkBAIC0xLDEwMSArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLSAgICAgICAg
ICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLQotICAgIFRoaXMg
ZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQot
ICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0g
ICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICAgIEJv
c3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgPGt1cmwuaD4KLSNpbmNsdWRlIDxrZGVidWcuaD4KLQotI2luY2x1ZGUgPGtkb20vSGVs
cGVyLmg+Ci0jaW5jbHVkZSA8a2RvbS9OYW1lc3BhY2UuaD4KLQotI2luY2x1ZGUgPGtjYW52YXMv
S0NhbnZhc1ZpZXcuaD4KLQotI2luY2x1ZGUgImtzdmcuaCIKLSNpbmNsdWRlICJzdmd0YWdzLmgi
Ci0jaW5jbHVkZSA8a3N2ZzIvS1NWR1ZpZXcuaD4KLSNpbmNsdWRlICJTVkdEb2N1bWVudEltcGwu
aCIKLSNpbmNsdWRlICJTVkdTVkdFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIktTVkdEb2N1bWVu
dEJ1aWxkZXIuaCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbkltcGwuaCIKLQotdXNp
bmcgbmFtZXNwYWNlIEtTVkc7Ci0KLURvY3VtZW50QnVpbGRlcjo6RG9jdW1lbnRCdWlsZGVyKEtT
VkdWaWV3ICp2aWV3KSA6IEtET006OkRvY3VtZW50QnVpbGRlcigpCi17Ci0gICAgbV92aWV3ID0g
dmlldzsKLX0KLQotRG9jdW1lbnRCdWlsZGVyOjp+RG9jdW1lbnRCdWlsZGVyKCkKLXsKLX0KLQot
Ym9vbCBEb2N1bWVudEJ1aWxkZXI6OnN0YXJ0RG9jdW1lbnQoY29uc3QgS1VSTCAmdXJpKQotewot
ICAgIGtkRGVidWcoMjYwMDEpIDw8ICJLU1ZHOjpEb2N1bWVudEJ1aWxkZXI6OnN0YXJ0RG9jdW1l
bnQsIHVyaSA9ICIgPDwgdXJpLnByZXR0eVVSTCgpIDw8IGVuZGw7Ci0KLSAgICBTVkdET01JbXBs
ZW1lbnRhdGlvbkltcGwgKmZhY3RvcnkgPSBTVkdET01JbXBsZW1lbnRhdGlvbkltcGw6OnNlbGYo
KTsKLSAgICBTVkdEb2N1bWVudEltcGwgKmRvY0ltcGwgPSBzdGF0aWNfY2FzdDxTVkdEb2N1bWVu
dEltcGwgKj4oZmFjdG9yeS0+Y3JlYXRlRG9jdW1lbnQoS0RPTTo6TlNfU1ZHLmhhbmRsZSgpLCBL
RE9NOjpET01TdHJpbmcoInN2ZzpzdmciKS5oYW5kbGUoKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFjdG9yeS0+ZGVmYXVs
dERvY3VtZW50VHlwZSgpLCBmYWxzZSwgbV92aWV3KSk7Ci0KLSAgICBpZighZG9jSW1wbCkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgRG9jdW1lbnRCdWlsZGVyOjpsaW5rRG9jdW1lbnRU
b0NhbnZhcyhkb2NJbXBsLCBtX3ZpZXcpOwotCi0gICAgc2V0RG9jdW1lbnQoZG9jSW1wbCk7IC8v
IFJlZ2lzdGVyIGluIGtkb20uLi4KLSAgICByZXR1cm4gS0RPTTo6RG9jdW1lbnRCdWlsZGVyOjpz
dGFydERvY3VtZW50KHVyaSk7Ci19Ci0jaWYgMAotdm9pZCBEb2N1bWVudEJ1aWxkZXI6OmxpbmtE
b2N1bWVudFRvQ2FudmFzKGNvbnN0IFNWR0RvY3VtZW50ICZkb2MsIEtTVkdWaWV3ICp2aWV3KQot
ewotICAgIFNWR0RvY3VtZW50SW1wbCAqZG9jSW1wbCA9IHN0YXRpY19jYXN0PFNWR0RvY3VtZW50
SW1wbCAqPihkb2MuaGFuZGxlKCkpOwotICAgIGlmKCFkb2NJbXBsKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBEb2N1bWVudEJ1aWxkZXI6OmxpbmtEb2N1bWVudFRvQ2FudmFzKGRvY0ltcGwsIHZp
ZXcpOwotfQotI2VuZGlmCi12b2lkIERvY3VtZW50QnVpbGRlcjo6bGlua0RvY3VtZW50VG9DYW52
YXMoU1ZHRG9jdW1lbnRJbXBsICpkb2NJbXBsLCBLU1ZHVmlldyAqdmlldykKLXsKLSAgICBkb2NJ
bXBsLT5yZWYoKTsKLQotICAgIGRvY0ltcGwtPnNldENhbnZhc1ZpZXcoKHZpZXcgPyB2aWV3LT5j
YW52YXNWaWV3KCkgOiAwKSk7Ci0gICAgZG9jSW1wbC0+YXR0YWNoKCk7Ci19Ci0KLXZvaWQgRG9j
dW1lbnRCdWlsZGVyOjpmaW5pc2hlZERvY3VtZW50KFNWR0RvY3VtZW50SW1wbCAqZG9jSW1wbCkK
LXsKLSAgICBpZihkb2NJbXBsKQotICAgICAgICBkb2NJbXBsLT5maW5pc2hlZFBhcnNpbmcoKTsK
LX0KLQotYm9vbCBEb2N1bWVudEJ1aWxkZXI6OmVuZERvY3VtZW50KCkKLXsKLSAgICBrZERlYnVn
KDI2MDAxKSA8PCAiS1NWRzo6RG9jdW1lbnRCdWlsZGVyOjplbmREb2N1bWVudCIgPDwgZW5kbDsK
LQotICAgIEtET006OkRvY3VtZW50QnVpbGRlcjo6ZW5kRG9jdW1lbnQoKTsKLSAgICBEb2N1bWVu
dEJ1aWxkZXI6OmZpbmlzaGVkRG9jdW1lbnQoc3RhdGljX2Nhc3Q8U1ZHRG9jdW1lbnRJbXBsICo+
KGRvY3VtZW50KCkpKTsKLQotICAgIHJldHVybiB0cnVlOwotfQotCi0vLyB2aW06dHM9NDpub2V0
CkluZGV4OiBrc3ZnMi9taXNjL0tTVkdEb2N1bWVudEJ1aWxkZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiBrc3ZnMi9taXNjL0tTVkdEb2N1bWVudEJ1aWxkZXIuaApkaWZmIC1OIGtzdmcyL21pc2Mv
S1NWR0RvY3VtZW50QnVpbGRlci5oCi0tLSBrc3ZnMi9taXNjL0tTVkdEb2N1bWVudEJ1aWxkZXIu
aAkxIFNlcCAyMDA1IDA3OjM0OjE1IC0wMDAwCTEuNAorKysga3N2ZzIvbWlzYy9LU1ZHRG9jdW1l
bnRCdWlsZGVyLmgJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMApAQCAtMSw2NCArMCwwIEBACi0v
KgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRm
b3hAa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNA
a2RlLm9yZz4KLQotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0g
ICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
Ci0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNl
IC0gU3VpdGUgMzMwLAotICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2lm
bmRlZiBLU1ZHX0RvY3VtZW50QnVpbGRlcl9ICi0jZGVmaW5lIEtTVkdfRG9jdW1lbnRCdWlsZGVy
X0gKLQotI2luY2x1ZGUgPGtzdmcyL0tTVkdWaWV3Lmg+Ci0KLSNpbmNsdWRlIDxrZG9tL3BhcnNl
ci9LRE9NRG9jdW1lbnRCdWlsZGVyLmg+Ci0KLWNsYXNzIEtVUkw7Ci0KLW5hbWVzcGFjZSBLU1ZH
Ci17Ci0gICAgLy9jbGFzcyBTVkdEb2N1bWVudDsKLSAgICBjbGFzcyBTVkdEb2N1bWVudEltcGw7
Ci0KLSAgICAvLyBLU1ZHIERvY3VtZW50IGJ1aWxkZXIgCi0gICAgY2xhc3MgRG9jdW1lbnRCdWls
ZGVyIDogcHVibGljIEtET006OkRvY3VtZW50QnVpbGRlcgotICAgIHsKLSAgICBwdWJsaWM6Ci0g
ICAgICAgIERvY3VtZW50QnVpbGRlcihLU1ZHVmlldyAqdmlldyk7Ci0gICAgICAgIHZpcnR1YWwg
fkRvY3VtZW50QnVpbGRlcigpOwotCi0gICAgICAgIC8vIEhlbHBlciBmdW5jdGlvbiBmb3IgaW4t
bWVtb3J5IGNyZWF0ZWQgZG9jdW1lbnRzLgotICAgICAgICAvLyBVc2UgdGhpcyBmdW5jdGlvbiB0
byBsaW5rIGEgbmV3bHkgY3JlYXRlZCAnS0RPTTo6RG9jdW1lbnQnCi0gICAgICAgIC8vIHdpdGgg
dGhlIHBhc3NlZCAnS0NhbnZhcycsIGFuZCB0aGUgb3RoZXIgZm9yIGluZGljYXRlIHRoYXQKLSAg
ICAgICAgLy8geW91IGFyZSBkb25lIGNyZWF0aW5nIHlvdXIgdHJlZSAoaW52b2tlcyByZW5kZXJp
bmcgaW4gbm9uLXByb2dyLiBtb2RlKQotLy8gICAgICAgIHN0YXRpYyB2b2lkIGxpbmtEb2N1bWVu
dFRvQ2FudmFzKGNvbnN0IFNWR0RvY3VtZW50ICZkb2MsIEtTVkdWaWV3ICp2aWV3KTsKLSAgICAg
ICAgc3RhdGljIHZvaWQgbGlua0RvY3VtZW50VG9DYW52YXMoU1ZHRG9jdW1lbnRJbXBsICpkb2NJ
bXBsLCBLU1ZHVmlldyAqdmlldyk7Ci0KLSAgICAgICAgc3RhdGljIHZvaWQgZmluaXNoZWREb2N1
bWVudChTVkdEb2N1bWVudEltcGwgKmRvYyk7Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHZp
cnR1YWwgYm9vbCBzdGFydERvY3VtZW50KGNvbnN0IEtVUkwgJnVyaSk7Ci0gICAgICAgIHZpcnR1
YWwgYm9vbCBlbmREb2N1bWVudCgpOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgS1NWR1ZpZXcg
Km1fdmlldzsKLSAgICB9OwotfTsKLQotI2VuZGlmCi0KLS8vIHZpbTp0cz00Om5vZXQKSW5kZXg6
IGtzdmcyL21pc2MvS1NWR1RpbWVTY2hlZHVsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9j
dnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL21pc2MvS1NWR1RpbWVTY2hlZHVsZXIuY3BwLHYKcmV0
cmlldmluZyByZXZpc2lvbiAxLjgKZGlmZiAtcCAtdSAtcjEuOCBrc3ZnMi9taXNjL0tTVkdUaW1l
U2NoZWR1bGVyLmNwcAotLS0ga3N2ZzIvbWlzYy9LU1ZHVGltZVNjaGVkdWxlci5jcHAJNSBPY3Qg
MjAwNSAwNTozNToxMyAtMDAwMAkxLjgKKysrIGtzdmcyL21pc2MvS1NWR1RpbWVTY2hlZHVsZXIu
Y3BwCTEgTm92IDIwMDUgMTE6MTM6MDkgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXMuaD4KIAorI2luY2x1ZGUgImtz
dmcyL3N2Zy9TVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR01hdHJpeEltcGwuaCIKICNpbmNsdWRl
ICJTVkdEb2N1bWVudEltcGwuaCIKICNpbmNsdWRlICJLU1ZHVGltZVNjaGVkdWxlci5tb2MiCkBA
IC0zMyw3ICszNCw3IEBACiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0SW1wbC5o
IgogI2luY2x1ZGUgIlNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50SW1wbC5oIgogCi11c2luZyBu
YW1lc3BhY2UgS1NWRzsKK25hbWVzcGFjZSBLU1ZHIHsKIAogU1ZHVGltZXI6OlNWR1RpbWVyKFRp
bWVTY2hlZHVsZXIgKnNjaGVkdWxlciwgdW5zaWduZWQgaW50IG1zLCBib29sIHNpbmdsZVNob3Qp
CiB7CkBAIC0yMDEsNyArMjAyLDcgQEAgdm9pZCBTVkdUaW1lcjo6bm90aWZ5QWxsKCkKICAgICAg
ICAgICAgICAgICBhbmltYXRpb24tPmhhbmRsZVRpbWVyRXZlbnQocGVyY2VudGFnZSk7CiAKICAg
ICAgICAgICAgIC8vIFNwZWNpYWwgY2FzZXMgZm9yIGFuaW1hdGUqIG9iamVjdHMgZGVwZW5kaW5n
IG9uICdhZGRpdGl2ZScgYXR0cmlidXRlCi0gICAgICAgICAgICBpZihhbmltYXRpb24tPmlkKCkg
PT0gSURfQU5JTUFURVRSQU5TRk9STSkKKyAgICAgICAgICAgIGlmKGFuaW1hdGlvbi0+aGFzVGFn
TmFtZShTVkdOYW1lczo6YW5pbWF0ZXRyYW5zZm9ybVRhZykpCiAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnRJbXBsICphbmltVHJhbnNmb3Jt
ID0gc3RhdGljX2Nhc3Q8U1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnRJbXBsICo+KGFuaW1hdGlv
bik7CiAgICAgICAgICAgICAgICAgaWYoIWFuaW1UcmFuc2Zvcm0pCkBAIC0yNTYsNyArMjU3LDcg
QEAgdm9pZCBTVkdUaW1lcjo6bm90aWZ5QWxsKCkKIAogICAgICAgICAgICAgICAgIHRyYW5zZm9y
bU1hdHJpeC0+ZGVyZWYoKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgaWYoYW5p
bWF0aW9uLT5pZCgpID09IElEX0FOSU1BVEVDT0xPUikKKyAgICAgICAgICAgIGVsc2UgaWYoYW5p
bWF0aW9uLT5oYXNUYWdOYW1lKFNWR05hbWVzOjphbmltYXRlY29sb3JUYWcpKQogICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgIFNWR0FuaW1hdGVDb2xvckVsZW1lbnRJbXBsICphbmltQ29s
b3IgPSBzdGF0aWNfY2FzdDxTVkdBbmltYXRlQ29sb3JFbGVtZW50SW1wbCAqPihhbmltYXRpb24p
OwogICAgICAgICAgICAgICAgIGlmKCFhbmltQ29sb3IpCkBAIC0zMjQsOCArMzI1LDggQEAgdm9p
ZCBTVkdUaW1lcjo6bm90aWZ5QWxsKCkKICAgICAgICAgICAgIGlmKGNpdC5kYXRhKCkuaXNWYWxp
ZCgpKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIFNWR0FuaW1hdGlvbkVsZW1lbnRJ
bXBsOjpzZXRUYXJnZXRBdHRyaWJ1dGUodGl0LmtleSgpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS0RPTTo6RE9NU3RyaW5nKGNp
dC5rZXkoKSkuaGFuZGxlKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBLRE9NOjpET01TdHJpbmcoY2l0LmRhdGEoKS5uYW1lKCkp
LmhhbmRsZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEtET006OkRPTVN0cmluZyhjaXQua2V5KCkpLmltcGwoKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtE
T006OkRPTVN0cmluZyhjaXQuZGF0YSgpLm5hbWUoKSkuaW1wbCgpKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogICAgIH0KQEAgLTUxMSw0ICs1MTIsNiBAQCBmbG9hdCBUaW1lU2NoZWR1bGVy
OjplbGFwc2VkKCkgY29uc3QKICAgICByZXR1cm4gZmxvYXQobV9jcmVhdGlvblRpbWUuZWxhcHNl
ZCgpKSAvIDEwMDAuMDsKIH0KIAorfSAvLyBuYW1lc3BhY2U7CisKIC8vIHZpbTp0cz00Om5vZXQK
SW5kZXg6IGtzdmcyL3N2Zy9DREZJbnRlcmZhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvQ0RGSW50ZXJmYWNlLmgsdgpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuNApkaWZmIC1wIC11IC1yMS40IGtzdmcyL3N2Zy9DREZJbnRlcmZhY2UuaAotLS0g
a3N2ZzIvc3ZnL0NERkludGVyZmFjZS5oCTEgU2VwIDIwMDUgMDk6Mzk6MTQgLTAwMDAJMS40Cisr
KyBrc3ZnMi9zdmcvQ0RGSW50ZXJmYWNlLmgJMSBOb3YgMjAwNSAxMToxMzowOSAtMDAwMApAQCAt
MzQsMjEgKzM0LDE0IEBAIG5hbWVzcGFjZSBLU1ZHCiAgICAgICAgIHZpcnR1YWwgfkNERkludGVy
ZmFjZSgpOwogCiAgICAgICAgIC8vIENTUyB2YWx1ZXMvcHJvcGVydGllcwotICAgICAgICB2aXJ0
dWFsIGNvbnN0IGNoYXIgKmdldFZhbHVlTmFtZShLRE9NOjpOb2RlSW1wbDo6SWQgaWQpIGNvbnN0
OwotICAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKmdldFByb3BlcnR5TmFtZShLRE9NOjpOb2Rl
SW1wbDo6SWQgaWQpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKmdldFZhbHVl
TmFtZSh1bnNpZ25lZCBzaG9ydCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAq
Z2V0UHJvcGVydHlOYW1lKHVuc2lnbmVkIHNob3J0KSBjb25zdDsKICAgICAgICAgCiAgICAgICAg
IHZpcnR1YWwgaW50IGdldFZhbHVlSUQoY29uc3QgY2hhciAqdmFsU3RyLCBpbnQgbGVuKSBjb25z
dDsKICAgICAgICAgdmlydHVhbCBpbnQgZ2V0UHJvcGVydHlJRChjb25zdCBjaGFyICpwcm9wU3Ry
LCBpbnQgbGVuKSBjb25zdDsKIAogICAgICAgICB2aXJ0dWFsIEtET006OlJlbmRlclN0eWxlICpy
ZW5kZXJTdHlsZSgpIGNvbnN0OwogCi0gICAgICAgIC8vIFhNTCB0YWdzL2F0dHJpYnV0ZXMgCi0g
ICAgICAgIHZpcnR1YWwgY29uc3QgY2hhciAqZ2V0VGFnTmFtZShLRE9NOjpOb2RlSW1wbDo6SWQg
aWQpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIgKmdldEF0dHJOYW1lKEtET006
Ok5vZGVJbXBsOjpJZCBpZCkgY29uc3Q7Ci0gICAgICAgIAotICAgICAgICB2aXJ0dWFsIGludCBn
ZXRUYWdJRChjb25zdCBjaGFyICp0YWdTdHIsIGludCBsZW4pIGNvbnN0OwotICAgICAgICB2aXJ0
dWFsIGludCBnZXRBdHRySUQoY29uc3QgY2hhciAqYXR0clN0ciwgaW50IGxlbikgY29uc3Q7Ci0K
ICAgICAgICAgLy8gRWNtYVNjcmlwdCBpbnRlcmZhY2UKICAgICAgICAgLy92aXJ0dWFsIEtET006
Okdsb2JhbE9iamVjdCAqZ2xvYmFsT2JqZWN0KEtET006OkRvY3VtZW50SW1wbCAqZG9jKSBjb25z
dDsKICAgICB9OwpJbmRleDoga3N2ZzIvc3ZnL1NWR0FFbGVtZW50SW1wbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvc3ZnL1NWR0FFbGVtZW50SW1w
bC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNgpkaWZmIC1wIC11IC1yMS42IGtzdmcyL3N2
Zy9TVkdBRWxlbWVudEltcGwuY3BwCi0tLSBrc3ZnMi9zdmcvU1ZHQUVsZW1lbnRJbXBsLmNwcAk1
IE9jdCAyMDA1IDA1OjM1OjE0IC0wMDAwCTEuNgorKysga3N2ZzIvc3ZnL1NWR0FFbGVtZW50SW1w
bC5jcHAJMSBOb3YgMjAwNSAxMToxMzowOSAtMDAwMApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1
ZGUgPGtjYW52YXMvS0NhbnZhc0NvbnRhaW5lci5oPgogI2luY2x1ZGUgPGtjYW52YXMvZGV2aWNl
L0tSZW5kZXJpbmdEZXZpY2UuaD4KIAotI2luY2x1ZGUgInN2Z2F0dHJzLmgiCisjaW5jbHVkZSAi
U1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdIZWxwZXIuaCIKICNpbmNsdWRlIDxrc3ZnMi9LU1ZH
UGFydC5oPgogI2luY2x1ZGUgIlNWR0RvY3VtZW50SW1wbC5oIgpAQCAtMzksOCArMzksOCBAQAog
CiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIAotU1ZHQUVsZW1lbnRJbXBsOjpTVkdBRWxlbWVudElt
cGwoS0RPTTo6RG9jdW1lbnRQdHIgKmRvYywgS0RPTTo6Tm9kZUltcGw6OklkIGlkLCBLRE9NOjpE
T01TdHJpbmdJbXBsICpwcmVmaXgpCi06IFNWR1N0eWxlZEVsZW1lbnRJbXBsKGRvYywgaWQsIHBy
ZWZpeCksIFNWR1VSSVJlZmVyZW5jZUltcGwoKSwgU1ZHVGVzdHNJbXBsKCksIFNWR0xhbmdTcGFj
ZUltcGwoKSwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwoKSwgU1ZHVHJhbnNmb3Jt
YWJsZUltcGwoKQorU1ZHQUVsZW1lbnRJbXBsOjpTVkdBRWxlbWVudEltcGwoY29uc3QgS0RPTTo6
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRvYykKKzogU1ZHU3R5
bGVkRWxlbWVudEltcGwodGFnTmFtZSwgZG9jKSwgU1ZHVVJJUmVmZXJlbmNlSW1wbCgpLCBTVkdU
ZXN0c0ltcGwoKSwgU1ZHTGFuZ1NwYWNlSW1wbCgpLCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkSW1wbCgpLCBTVkdUcmFuc2Zvcm1hYmxlSW1wbCgpCiB7CiAgICAgbV90YXJnZXQgPSAwOwog
fQpAQCAtNTgsMzAgKzU4LDIyIEBAIFNWR0FuaW1hdGVkU3RyaW5nSW1wbCAqU1ZHQUVsZW1lbnRJ
bXBsOjoKIAogdm9pZCBTVkdBRWxlbWVudEltcGw6OnBhcnNlQXR0cmlidXRlKEtET006OkF0dHJp
YnV0ZUltcGwgKmF0dHIpCiB7Ci0gICAgaW50IGlkID0gKGF0dHItPmlkKCkgJiBOb2RlSW1wbF9J
ZExvY2FsTWFzayk7CiAgICAgS0RPTTo6RE9NU3RyaW5nIHZhbHVlKGF0dHItPnZhbHVlKCkpOwot
ICAgIHN3aXRjaChpZCkKLSAgICB7Ci0gICAgICAgIGNhc2UgQVRUUl9UQVJHRVQ6Ci0gICAgICAg
IHsKLSAgICAgICAgICAgIHRhcmdldCgpLT5zZXRCYXNlVmFsKHZhbHVlLmhhbmRsZSgpKTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGRlZmF1bHQ6CisgICAgaWYgKGF0
dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6dGFyZ2V0QXR0cikgeworICAgICAgICB0YXJnZXQoKS0+
c2V0QmFzZVZhbCh2YWx1ZS5pbXBsKCkpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmKFNWR1VS
SVJlZmVyZW5jZUltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKQogICAgICAgICB7Ci0gICAgICAg
ICAgICBpZihTVkdVUklSZWZlcmVuY2VJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBtX2hhc0FuY2hvciA9IGF0dHItPnZhbHVlKCkgIT0g
MDsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBp
ZihTVkdUZXN0c0ltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47Ci0gICAgICAgICAg
ICBpZihTVkdMYW5nU3BhY2VJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOwotICAg
ICAgICAgICAgaWYoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGw6OnBhcnNlQXR0cmli
dXRlKGF0dHIpKSByZXR1cm47Ci0gICAgICAgICAgICBpZihTVkdUcmFuc2Zvcm1hYmxlSW1wbDo6
cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsKLSAgICAgICAgICAgIAotICAgICAgICAgICAg
U1ZHU3R5bGVkRWxlbWVudEltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpOworICAgICAgICAgICAg
bV9pc0xpbmsgPSBhdHRyLT52YWx1ZSgpICE9IDA7CisgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KLSAgICB9OworICAgICAgICBpZihTVkdUZXN0c0ltcGw6OnBhcnNlQXR0cmlidXRlKGF0
dHIpKSByZXR1cm47CisgICAgICAgIGlmKFNWR0xhbmdTcGFjZUltcGw6OnBhcnNlQXR0cmlidXRl
KGF0dHIpKSByZXR1cm47CisgICAgICAgIGlmKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJ
bXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOworICAgICAgICBpZihTVkdUcmFuc2Zv
cm1hYmxlSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsKKyAgICAgICAgCisgICAg
ICAgIFNWR1N0eWxlZEVsZW1lbnRJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKTsKKyAgICB9CiB9
CiAKIEtDYW52YXNJdGVtICpTVkdBRWxlbWVudEltcGw6OmNyZWF0ZUNhbnZhc0l0ZW0oS0NhbnZh
cyAqY2FudmFzLCBLUmVuZGVyaW5nU3R5bGUgKnN0eWxlKSBjb25zdApAQCAtOTMsMTEgKzg1LDkg
QEAgdm9pZCBTVkdBRWxlbWVudEltcGw6OmRlZmF1bHRFdmVudEhhbmRsZQogewogICAgIC8vIFRP
RE8gOiBzaG91bGQgdXNlIENMSUNLIGluc3RlYWQKICAgICBrZERlYnVnKCkgPDwga19mdW5jaW5m
byA8PCBlbmRsOwotICAgIGlmKChldnQtPmlkKCkgPT0gS0RPTTo6TU9VU0VVUF9FVkVOVCAmJiBt
X2hhc0FuY2hvcikpCisgICAgaWYoKGV2dC0+dHlwZSgpID09IEtET006OkV2ZW50TmFtZXM6Om1v
dXNldXBFdmVudCAmJiBtX2lzTGluaykpCiAgICAgewotICAgICAgICBLRE9NOjpNb3VzZUV2ZW50
SW1wbCAqZSA9IDA7Ci0gICAgICAgIGlmKGV2dC0+aWQoKSA9PSBLRE9NOjpNT1VTRVVQX0VWRU5U
KQotICAgICAgICAgICAgZSA9IHN0YXRpY19jYXN0PEtET006Ok1vdXNlRXZlbnRJbXBsKj4oZXZ0
KTsKKyAgICAgICAgS0RPTTo6TW91c2VFdmVudEltcGwgKmUgPSBzdGF0aWNfY2FzdDxLRE9NOjpN
b3VzZUV2ZW50SW1wbCo+KGV2dCk7CiAKICAgICAgICAgUVN0cmluZyB1cmw7CiAgICAgICAgIFFT
dHJpbmcgdXRhcmdldDsKQEAgLTEwNiwxMCArOTYsMTMgQEAgdm9pZCBTVkdBRWxlbWVudEltcGw6
OmRlZmF1bHRFdmVudEhhbmRsZQogICAgICAgICAgICAgS0RPTTo6RXZlbnRUYXJnZXRJbXBsOjpk
ZWZhdWx0RXZlbnRIYW5kbGVyKGV2dCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
LQotICAgICAgICB1cmwgPSBLRE9NOjpET01TdHJpbmcoS0RPTTo6SGVscGVyOjpwYXJzZVVSTCho
cmVmKCktPmJhc2VWYWwoKSkpLnN0cmluZygpOworI2lmIEFQUExFX0NIQU5HRVMKKyAgICAgICAg
dXJsID0gS0RPTTo6cGFyc2VVUkwoaHJlZigpLT5iYXNlVmFsKCkpLnFzdHJpbmcoKTsKKyNlbHNl
CisgICAgICAgIHVybCA9IEtET006OkRPTVN0cmluZyhLRE9NOjpIZWxwZXI6OnBhcnNlVVJMKGhy
ZWYoKS0+YmFzZVZhbCgpKSkucXN0cmluZygpOworI2VuZGlmCiAgICAgICAgIGtkRGVidWcoKSA8
PCAidXJsIDogIiA8PCB1cmwgPDwgZW5kbDsKLSAgICAgICAgdXRhcmdldCA9IEtET006OkRPTVN0
cmluZyhnZXRBdHRyaWJ1dGUoQVRUUl9UQVJHRVQpKS5zdHJpbmcoKTsKKyAgICAgICAgdXRhcmdl
dCA9IEtET006OkRPTVN0cmluZyhnZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OnRhcmdldEF0dHIpKS5x
c3RyaW5nKCk7CiAgICAgICAgIGtkRGVidWcoKSA8PCAidXRhcmdldCA6ICIgPDwgdXRhcmdldCA8
PCBlbmRsOwogCiAgICAgICAgIGlmKGUgJiYgZS0+YnV0dG9uKCkgPT0gMSkKSW5kZXg6IGtzdmcy
L3N2Zy9TVkdBRWxlbWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZH
U3VwcG9ydC9rc3ZnMi9zdmcvU1ZHQUVsZW1lbnRJbXBsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuNApkaWZmIC1wIC11IC1yMS40IGtzdmcyL3N2Zy9TVkdBRWxlbWVudEltcGwuaAotLS0ga3N2
ZzIvc3ZnL1NWR0FFbGVtZW50SW1wbC5oCTEgU2VwIDIwMDUgMDc6MzU6MzEgLTAwMDAJMS40Cisr
KyBrc3ZnMi9zdmcvU1ZHQUVsZW1lbnRJbXBsLmgJMSBOb3YgMjAwNSAxMToxMzowOSAtMDAwMApA
QCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgS1NWRwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHB1YmxpYyBTVkdUcmFuc2Zvcm1hYmxlSW1wbAogICAgIHsKICAgICBwdWJsaWM6Ci0gICAg
ICAgIFNWR0FFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1w
bDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZpeCk7CisgICAgICAgIFNWR0FFbGVt
ZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVu
dFB0ciAqZG9jKTsKICAgICAgICAgdmlydHVhbCB+U1ZHQUVsZW1lbnRJbXBsKCk7CiAKICAgICAg
ICAgLy8gJ1NWR0FFbGVtZW50JyBmdW5jdGlvbnMKSW5kZXg6IGtzdmcyL3N2Zy9TVkdBbmdsZUlt
cGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2
Zy9TVkdBbmdsZUltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjcKZGlmZiAtcCAtdSAt
cjEuNyBrc3ZnMi9zdmcvU1ZHQW5nbGVJbXBsLmNwcAotLS0ga3N2ZzIvc3ZnL1NWR0FuZ2xlSW1w
bC5jcHAJMjQgT2N0IDIwMDUgMDY6MzE6NTEgLTAwMDAJMS43CisrKyBrc3ZnMi9zdmcvU1ZHQW5n
bGVJbXBsLmNwcAkxIE5vdiAyMDA1IDExOjEzOjA5IC0wMDAwCkBAIC04OSw3ICs4OSw3IEBAIHZv
aWQgU1ZHQW5nbGVJbXBsOjpzZXRWYWx1ZUFzU3RyaW5nKEtET00KIHsKICAgICBtX3ZhbHVlQXNT
dHJpbmcgPSBLRE9NOjpET01TdHJpbmcodmFsdWVBc1N0cmluZyk7CiAKLSAgICBRU3RyaW5nIHMg
PSBtX3ZhbHVlQXNTdHJpbmcuc3RyaW5nKCk7CisgICAgUVN0cmluZyBzID0gbV92YWx1ZUFzU3Ry
aW5nLnFzdHJpbmcoKTsKIAogICAgIGJvb2wgYk9LOwogICAgIG1fdmFsdWVJblNwZWNpZmllZFVu
aXRzID0gcy50b0RvdWJsZSgmYk9LKTsKQEAgLTExMCwyMyArMTEwLDIzIEBAIHZvaWQgU1ZHQW5n
bGVJbXBsOjpzZXRWYWx1ZUFzU3RyaW5nKEtET00KIAogS0RPTTo6RE9NU3RyaW5nSW1wbCAqU1ZH
QW5nbGVJbXBsOjp2YWx1ZUFzU3RyaW5nKCkgY29uc3QKIHsKLSAgICBtX3ZhbHVlQXNTdHJpbmcu
c3RyaW5nKCkuc2V0TnVtKG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKTsKKyAgICBtX3ZhbHVlQXNT
dHJpbmcucXN0cmluZygpLnNldE51bShtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cyk7CiAKICAgICBz
d2l0Y2gobV91bml0VHlwZSkKICAgICB7CiAgICAgICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9VTlNQ
RUNJRklFRDoKICAgICAgICAgY2FzZSBTVkdfQU5HTEVUWVBFX0RFRzoKLSAgICAgICAgICAgIG1f
dmFsdWVBc1N0cmluZy5zdHJpbmcoKSArPSBRU3RyaW5nOjpmcm9tTGF0aW4xKCJkZWciKTsKKyAg
ICAgICAgICAgIG1fdmFsdWVBc1N0cmluZy5xc3RyaW5nKCkgKz0gUVN0cmluZzo6ZnJvbUxhdGlu
MSgiZGVnIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBTVkdfQU5HTEVUWVBF
X1JBRDoKLSAgICAgICAgICAgIG1fdmFsdWVBc1N0cmluZy5zdHJpbmcoKSArPSBRU3RyaW5nOjpm
cm9tTGF0aW4xKCJyYWQiKTsKKyAgICAgICAgICAgIG1fdmFsdWVBc1N0cmluZy5xc3RyaW5nKCkg
Kz0gUVN0cmluZzo6ZnJvbUxhdGluMSgicmFkIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBTVkdfQU5HTEVUWVBFX0dSQUQ6Ci0gICAgICAgICAgICBtX3ZhbHVlQXNTdHJpbmcu
c3RyaW5nKCkgKz0gUVN0cmluZzo6ZnJvbUxhdGluMSgiZ3JhZCIpOworICAgICAgICAgICAgbV92
YWx1ZUFzU3RyaW5nLnFzdHJpbmcoKSArPSBRU3RyaW5nOjpmcm9tTGF0aW4xKCJncmFkIik7CiAg
ICAgICAgICAgICBicmVhazsKICAgICB9CiAgICAgCi0gICAgcmV0dXJuIG1fdmFsdWVBc1N0cmlu
Zy5oYW5kbGUoKTsKKyAgICByZXR1cm4gbV92YWx1ZUFzU3RyaW5nLmltcGwoKTsKIH0KIAogdm9p
ZCBTVkdBbmdsZUltcGw6Om5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModW5zaWduZWQgc2hvcnQgdW5p
dFR5cGUsIGZsb2F0IHZhbHVlSW5TcGVjaWZpZWRVbml0cykKSW5kZXg6IGtzdmcyL3N2Zy9TVkdB
bmltYXRlQ29sb3JFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290
L1NWR1N1cHBvcnQva3N2ZzIvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnRJbXBsLmNwcCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS42CmRpZmYgLXAgLXUgLXIxLjYga3N2ZzIvc3ZnL1NWR0FuaW1h
dGVDb2xvckVsZW1lbnRJbXBsLmNwcAotLS0ga3N2ZzIvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1l
bnRJbXBsLmNwcAk1IE9jdCAyMDA1IDA1OjM1OjE0IC0wMDAwCTEuNgorKysga3N2ZzIvc3ZnL1NW
R0FuaW1hdGVDb2xvckVsZW1lbnRJbXBsLmNwcAkxIE5vdiAyMDA1IDExOjEzOjA5IC0wMDAwCkBA
IC0yMywxMyArMjMsMTQgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTVkdBbmlt
YXRlQ29sb3JFbGVtZW50SW1wbC5oIgogI2luY2x1ZGUgIlNWR0RvY3VtZW50SW1wbC5oIgorI2lu
Y2x1ZGUgImtkb20vRE9NU3RyaW5nLmgiCiAKICNpbmNsdWRlIDxrZGVidWcuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIEtTVkc7CiAKLVNWR0FuaW1hdGVDb2xvckVsZW1lbnRJbXBsOjpTVkdBbmltYXRl
Q29sb3JFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6
SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZpeCkKLTogU1ZHQW5pbWF0aW9uRWxlbWVu
dEltcGwoZG9jLCBpZCwgcHJlZml4KQorU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudEltcGw6OlNWR0Fu
aW1hdGVDb2xvckVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IEtET006OkRvY3VtZW50UHRyICpkb2MpCis6IFNWR0FuaW1hdGlvbkVsZW1lbnRJbXBsKHRhZ05h
bWUsIGRvYykKIHsKICAgICBtX3RvQ29sb3IgPSBuZXcgU1ZHQ29sb3JJbXBsKCk7CiAgICAgbV90
b0NvbG9yLT5yZWYoKTsKQEAgLTYxLDcgKzYyLDcgQEAgdm9pZCBTVkdBbmltYXRlQ29sb3JFbGVt
ZW50SW1wbDo6aGFuZGxlVAogICAgICAgICBTVkdDb2xvckltcGwgKnRlbXAgPSBuZXcgU1ZHQ29s
b3JJbXBsKCk7CiAgICAgICAgIHRlbXAtPnJlZigpOwogICAgICAgICAgICAgCi0gICAgICAgIHRl
bXAtPnNldFJHQkNvbG9yKHRhcmdldEF0dHJpYnV0ZSgpKTsKKyAgICAgICAgdGVtcC0+c2V0UkdC
Q29sb3IodGFyZ2V0QXR0cmlidXRlKCkuaW1wbCgpKTsKIAogICAgICAgICBtX2luaXRpYWxDb2xv
ciA9IHRlbXAtPmNvbG9yKCk7CiAgICAgICAgIApAQCAtNzQsNyArNzUsNyBAQCB2b2lkIFNWR0Fu
aW1hdGVDb2xvckVsZW1lbnRJbXBsOjpoYW5kbGVUCiAgICAgICAgICAgICBjYXNlIEZST01fVE9f
QU5JTUFUSU9OOgogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIEtET006OkRPTVN0cmlu
ZyB0b0NvbG9yU3RyaW5nKG1fdG8pOwotICAgICAgICAgICAgICAgIG1fdG9Db2xvci0+c2V0UkdC
Q29sb3IodG9Db2xvclN0cmluZy5oYW5kbGUoKSk7CisgICAgICAgICAgICAgICAgbV90b0NvbG9y
LT5zZXRSR0JDb2xvcih0b0NvbG9yU3RyaW5nLmltcGwoKSk7CiAgICAgCiAgICAgICAgICAgICAg
ICAgS0RPTTo6RE9NU3RyaW5nIGZyb21Db2xvclN0cmluZzsKICAgICAgICAgICAgICAgICBpZigh
bV9mcm9tLmlzRW1wdHkoKSkgLy8gZnJvbS10byBhbmltYXRpb24KQEAgLTgyLDcgKzgzLDcgQEAg
dm9pZCBTVkdBbmltYXRlQ29sb3JFbGVtZW50SW1wbDo6aGFuZGxlVAogICAgICAgICAgICAgICAg
IGVsc2UgLy8gdG8gYW5pbWF0aW9uCiAgICAgICAgICAgICAgICAgICAgIGZyb21Db2xvclN0cmlu
ZyA9IG1faW5pdGlhbENvbG9yLm5hbWUoKTsKICAgICAKLSAgICAgICAgICAgICAgICBtX2Zyb21D
b2xvci0+c2V0UkdCQ29sb3IoZnJvbUNvbG9yU3RyaW5nLmhhbmRsZSgpKTsgICAgCisgICAgICAg
ICAgICAgICAgbV9mcm9tQ29sb3ItPnNldFJHQkNvbG9yKGZyb21Db2xvclN0cmluZy5pbXBsKCkp
OyAgICAKIAogICAgICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBjb2xvciBkaWZmZXJlbmNlcywg
b25jZS4KICAgICAgICAgICAgICAgICBRQ29sb3IgcVRvID0gbV90b0NvbG9yLT5jb2xvcigpOwpA
QCAtOTgsNyArOTksNyBAQCB2b2lkIFNWR0FuaW1hdGVDb2xvckVsZW1lbnRJbXBsOjpoYW5kbGVU
CiAgICAgICAgICAgICBjYXNlIEZST01fQllfQU5JTUFUSU9OOgogICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgIEtET006OkRPTVN0cmluZyBieUNvbG9yU3RyaW5nKG1fYnkpOwotICAgICAg
ICAgICAgICAgIG1fdG9Db2xvci0+c2V0UkdCQ29sb3IoYnlDb2xvclN0cmluZy5oYW5kbGUoKSk7
CisgICAgICAgICAgICAgICAgbV90b0NvbG9yLT5zZXRSR0JDb2xvcihieUNvbG9yU3RyaW5nLmlt
cGwoKSk7CiAKICAgICAgICAgICAgICAgICBLRE9NOjpET01TdHJpbmcgZnJvbUNvbG9yU3RyaW5n
OwogICAgICAgICAgICAgCkBAIC0xMDcsNyArMTA4LDcgQEAgdm9pZCBTVkdBbmltYXRlQ29sb3JF
bGVtZW50SW1wbDo6aGFuZGxlVAogICAgICAgICAgICAgICAgIGVsc2UgLy8gYnkgYW5pbWF0aW9u
CiAgICAgICAgICAgICAgICAgICAgIGZyb21Db2xvclN0cmluZyA9IG1faW5pdGlhbENvbG9yLm5h
bWUoKTsKIAotICAgICAgICAgICAgICAgIG1fZnJvbUNvbG9yLT5zZXRSR0JDb2xvcihmcm9tQ29s
b3JTdHJpbmcuaGFuZGxlKCkpOworICAgICAgICAgICAgICAgIG1fZnJvbUNvbG9yLT5zZXRSR0JD
b2xvcihmcm9tQ29sb3JTdHJpbmcuaW1wbCgpKTsKIAogICAgICAgICAgICAgICAgIFFDb2xvciBx
QnkgPSBtX3RvQ29sb3ItPmNvbG9yKCk7CiAgICAgICAgICAgICAgICAgUUNvbG9yIHFGcm9tID0g
bV9mcm9tQ29sb3ItPmNvbG9yKCk7CkBAIC0xMjAsNyArMTIxLDcgQEAgdm9pZCBTVkdBbmltYXRl
Q29sb3JFbGVtZW50SW1wbDo6aGFuZGxlVAogICAgICAgICAgICAgICAgIFFDb2xvciBxVG8gPSBj
bGFtcENvbG9yKHIsIGcsIGIpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgS0RPTTo6
RE9NU3RyaW5nIHRvQ29sb3JTdHJpbmcocVRvLm5hbWUoKSk7Ci0gICAgICAgICAgICAgICAgbV90
b0NvbG9yLT5zZXRSR0JDb2xvcih0b0NvbG9yU3RyaW5nLmhhbmRsZSgpKTsKKyAgICAgICAgICAg
ICAgICBtX3RvQ29sb3ItPnNldFJHQkNvbG9yKHRvQ29sb3JTdHJpbmcuaW1wbCgpKTsKICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgIG1fcmVkRGlmZiA9IHFUby5yZWQoKSAtIHFGcm9tLnJl
ZCgpOwogICAgICAgICAgICAgICAgIG1fZ3JlZW5EaWZmID0gcVRvLmdyZWVuKCkgLSBxRnJvbS5n
cmVlbigpOwpAQCAtMTgxLDEwICsxODIsMTAgQEAgdm9pZCBTVkdBbmltYXRlQ29sb3JFbGVtZW50
SW1wbDo6aGFuZGxlVAogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIEtET006
OkRPTVN0cmluZyB0b0NvbG9yU3RyaW5nKHZhbHVlMik7Ci0gICAgICAgICAgICAgICAgbV90b0Nv
bG9yLT5zZXRSR0JDb2xvcih0b0NvbG9yU3RyaW5nLmhhbmRsZSgpKTsKKyAgICAgICAgICAgICAg
ICBtX3RvQ29sb3ItPnNldFJHQkNvbG9yKHRvQ29sb3JTdHJpbmcuaW1wbCgpKTsKICAgICAKICAg
ICAgICAgICAgICAgICBLRE9NOjpET01TdHJpbmcgZnJvbUNvbG9yU3RyaW5nKHZhbHVlMSk7Ci0g
ICAgICAgICAgICAgICAgbV9mcm9tQ29sb3ItPnNldFJHQkNvbG9yKGZyb21Db2xvclN0cmluZy5o
YW5kbGUoKSk7ICAgIAorICAgICAgICAgICAgICAgIG1fZnJvbUNvbG9yLT5zZXRSR0JDb2xvcihm
cm9tQ29sb3JTdHJpbmcuaW1wbCgpKTsgICAgCiAKICAgICAgICAgICAgICAgICBRQ29sb3IgcVRv
ID0gbV90b0NvbG9yLT5jb2xvcigpOwogICAgICAgICAgICAgICAgIFFDb2xvciBxRnJvbSA9IG1f
ZnJvbUNvbG9yLT5jb2xvcigpOwpJbmRleDoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1l
bnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIv
c3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnRJbXBsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
NApkaWZmIC1wIC11IC1yMS40IGtzdmcyL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50SW1wbC5o
Ci0tLSBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudEltcGwuaAkxIFNlcCAyMDA1IDA3
OjM1OjMxIC0wMDAwCTEuNAorKysga3N2ZzIvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnRJbXBs
LmgJMSBOb3YgMjAwNSAxMToxMzowOSAtMDAwMApAQCAtMzEsNyArMzEsNyBAQCBuYW1lc3BhY2Ug
S1NWRwogICAgIGNsYXNzIFNWR0FuaW1hdGVDb2xvckVsZW1lbnRJbXBsIDogcHVibGljIFNWR0Fu
aW1hdGlvbkVsZW1lbnRJbXBsCiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHQW5pbWF0
ZUNvbG9yRWxlbWVudEltcGwoS0RPTTo6RG9jdW1lbnRQdHIgKmRvYywgS0RPTTo6Tm9kZUltcGw6
OklkIGlkLCBLRE9NOjpET01TdHJpbmdJbXBsICpwcmVmaXgpOworICAgICAgICBTVkdBbmltYXRl
Q29sb3JFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9N
OjpEb2N1bWVudFB0ciAqZG9jKTsKICAgICAgICAgdmlydHVhbCB+U1ZHQW5pbWF0ZUNvbG9yRWxl
bWVudEltcGwoKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlVGltZXJFdmVudChkb3Vi
bGUgdGltZVBlcmNlbnRhZ2UpOwpJbmRleDoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVFbGVtZW50SW1w
bC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvc3Zn
L1NWR0FuaW1hdGVFbGVtZW50SW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNgpkaWZm
IC1wIC11IC1yMS42IGtzdmcyL3N2Zy9TVkdBbmltYXRlRWxlbWVudEltcGwuY3BwCi0tLSBrc3Zn
Mi9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnRJbXBsLmNwcAk1IE9jdCAyMDA1IDA1OjM1OjE0IC0wMDAw
CTEuNgorKysga3N2ZzIvc3ZnL1NWR0FuaW1hdGVFbGVtZW50SW1wbC5jcHAJMSBOb3YgMjAwNSAx
MToxMzoxMCAtMDAwMApAQCAtMjgsOCArMjgsOCBAQAogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsK
IAotU1ZHQW5pbWF0ZUVsZW1lbnRJbXBsOjpTVkdBbmltYXRlRWxlbWVudEltcGwoS0RPTTo6RG9j
dW1lbnRQdHIgKmRvYywgS0RPTTo6Tm9kZUltcGw6OklkIGlkLCBLRE9NOjpET01TdHJpbmdJbXBs
ICpwcmVmaXgpCi06IFNWR0FuaW1hdGlvbkVsZW1lbnRJbXBsKGRvYywgaWQsIHByZWZpeCkKK1NW
R0FuaW1hdGVFbGVtZW50SW1wbDo6U1ZHQW5pbWF0ZUVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50UHRyICpkb2MpCis6IFNWR0FuaW1h
dGlvbkVsZW1lbnRJbXBsKHRhZ05hbWUsIGRvYykKIHsKICAgICBtX2N1cnJlbnRJdGVtID0gLTE7
CiB9CkBAIC00NCw4ICs0NCw4IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnRJbXBsOjpoYW5kbGVU
aW1lckUKICAgICBpZighbV9jb25uZWN0ZWQpCiAgICAgewogICAgICAgICAvLyBTYXZlIGluaXRp
YWwgYXR0cmlidXRlIHZhbHVlLi4uCi0gICAgICAgIEtET006OkRPTVN0cmluZ0ltcGwgKmF0dHIg
PSB0YXJnZXRBdHRyaWJ1dGUoKTsKLSAgICAgICAgbV9zYXZlZFRvID0gKGF0dHIgPyBhdHRyLT5z
dHJpbmcoKSA6IFFTdHJpbmc6Om51bGwpOworICAgICAgICBLRE9NOjpET01TdHJpbmcgYXR0cih0
YXJnZXRBdHRyaWJ1dGUoKSk7CisgICAgICAgIG1fc2F2ZWRUbyA9IGF0dHIucXN0cmluZygpOwog
CiAgICAgICAgIC8vIEFuaW1hdGlvbiBtb2RlIGhhbmRsaW5nCiAgICAgICAgIHN3aXRjaChkZXRl
Y3RBbmltYXRpb25Nb2RlKCkpCkBAIC01NCw3ICs1NCw3IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1l
bnRJbXBsOjpoYW5kbGVUaW1lckUKICAgICAgICAgICAgIGNhc2UgRlJPTV9UT19BTklNQVRJT046
CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgS0RPTTo6RE9NU3RyaW5nIHRvQ29sb3JT
dHJpbmcobV90byk7Ci0gICAgICAgICAgICAgICAgbV90b0NvbG9yLT5zZXRSR0JDb2xvcih0b0Nv
bG9yU3RyaW5nLmhhbmRsZSgpKTsKKyAgICAgICAgICAgICAgICBtX3RvQ29sb3ItPnNldFJHQkNv
bG9yKHRvQ29sb3JTdHJpbmcuaW1wbCgpKTsKICAgICAKICAgICAgICAgICAgICAgICBLRE9NOjpE
T01TdHJpbmcgZnJvbUNvbG9yU3RyaW5nOwogICAgICAgICAgICAgICAgIGlmKCFtX2Zyb20uaXNF
bXB0eSgpKSAvLyBmcm9tLXRvIGFuaW1hdGlvbgpAQCAtNjIsNyArNjIsNyBAQCB2b2lkIFNWR0Fu
aW1hdGVFbGVtZW50SW1wbDo6aGFuZGxlVGltZXJFCiAgICAgICAgICAgICAgICAgZWxzZSAvLyB0
byBhbmltYXRpb24KICAgICAgICAgICAgICAgICAgICAgZnJvbUNvbG9yU3RyaW5nID0gbV9pbml0
aWFsQ29sb3IubmFtZSgpOwogICAgIAotICAgICAgICAgICAgICAgIG1fZnJvbUNvbG9yLT5zZXRS
R0JDb2xvcihmcm9tQ29sb3JTdHJpbmcuaGFuZGxlKCkpOyAgICAKKyAgICAgICAgICAgICAgICBt
X2Zyb21Db2xvci0+c2V0UkdCQ29sb3IoZnJvbUNvbG9yU3RyaW5nLmltcGwoKSk7ICAgIAogCiAg
ICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIGNvbG9yIGRpZmZlcmVuY2VzLCBvbmNlLgogICAg
ICAgICAgICAgICAgIFFDb2xvciBxVG8gPSBtX3RvQ29sb3ItPmNvbG9yKCk7CkBAIC03OCw3ICs3
OCw3IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnRJbXBsOjpoYW5kbGVUaW1lckUKICAgICAgICAg
ICAgIGNhc2UgRlJPTV9CWV9BTklNQVRJT046CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgS0RPTTo6RE9NU3RyaW5nIGJ5Q29sb3JTdHJpbmcobV9ieSk7Ci0gICAgICAgICAgICAgICAg
bV90b0NvbG9yLT5zZXRSR0JDb2xvcihieUNvbG9yU3RyaW5nLmhhbmRsZSgpKTsKKyAgICAgICAg
ICAgICAgICBtX3RvQ29sb3ItPnNldFJHQkNvbG9yKGJ5Q29sb3JTdHJpbmcuaW1wbCgpKTsKIAog
ICAgICAgICAgICAgICAgIEtET006OkRPTVN0cmluZyBmcm9tQ29sb3JTdHJpbmc7CiAgICAgICAg
ICAgICAKQEAgLTg3LDcgKzg3LDcgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudEltcGw6OmhhbmRs
ZVRpbWVyRQogICAgICAgICAgICAgICAgIGVsc2UgLy8gYnkgYW5pbWF0aW9uCiAgICAgICAgICAg
ICAgICAgICAgIGZyb21Db2xvclN0cmluZyA9IG1faW5pdGlhbENvbG9yLm5hbWUoKTsKIAotICAg
ICAgICAgICAgICAgIG1fZnJvbUNvbG9yLT5zZXRSR0JDb2xvcihmcm9tQ29sb3JTdHJpbmcuaGFu
ZGxlKCkpOworICAgICAgICAgICAgICAgIG1fZnJvbUNvbG9yLT5zZXRSR0JDb2xvcihmcm9tQ29s
b3JTdHJpbmcuaW1wbCgpKTsKIAogICAgICAgICAgICAgICAgIFFDb2xvciBxQnkgPSBtX3RvQ29s
b3ItPmNvbG9yKCk7CiAgICAgICAgICAgICAgICAgUUNvbG9yIHFGcm9tID0gbV9mcm9tQ29sb3It
PmNvbG9yKCk7CkBAIC0xMDAsNyArMTAwLDcgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudEltcGw6
OmhhbmRsZVRpbWVyRQogICAgICAgICAgICAgICAgIFFDb2xvciBxVG8gPSBjbGFtcENvbG9yKHIs
IGcsIGIpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgS0RPTTo6RE9NU3RyaW5nIHRv
Q29sb3JTdHJpbmcocVRvLm5hbWUoKSk7Ci0gICAgICAgICAgICAgICAgbV90b0NvbG9yLT5zZXRS
R0JDb2xvcih0b0NvbG9yU3RyaW5nLmhhbmRsZSgpKTsKKyAgICAgICAgICAgICAgICBtX3RvQ29s
b3ItPnNldFJHQkNvbG9yKHRvQ29sb3JTdHJpbmcuaW1wbCgpKTsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgIG1fcmVkRGlmZiA9IHFUby5yZWQoKSAtIHFGcm9tLnJlZCgpOwogICAgICAg
ICAgICAgICAgIG1fZ3JlZW5EaWZmID0gcVRvLmdyZWVuKCkgLSBxRnJvbS5ncmVlbigpOwpAQCAt
MTYxLDEwICsxNjEsMTAgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudEltcGw6OmhhbmRsZVRpbWVy
RQogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIEtET006OkRPTVN0cmluZyB0
b0NvbG9yU3RyaW5nKHZhbHVlMik7Ci0gICAgICAgICAgICAgICAgbV90b0NvbG9yLT5zZXRSR0JD
b2xvcih0b0NvbG9yU3RyaW5nLmhhbmRsZSgpKTsKKyAgICAgICAgICAgICAgICBtX3RvQ29sb3It
PnNldFJHQkNvbG9yKHRvQ29sb3JTdHJpbmcuaW1wbCgpKTsKICAgICAKICAgICAgICAgICAgICAg
ICBLRE9NOjpET01TdHJpbmcgZnJvbUNvbG9yU3RyaW5nKHZhbHVlMSk7Ci0gICAgICAgICAgICAg
ICAgbV9mcm9tQ29sb3ItPnNldFJHQkNvbG9yKGZyb21Db2xvclN0cmluZy5oYW5kbGUoKSk7ICAg
IAorICAgICAgICAgICAgICAgIG1fZnJvbUNvbG9yLT5zZXRSR0JDb2xvcihmcm9tQ29sb3JTdHJp
bmcuaW1wbCgpKTsgICAgCiAKICAgICAgICAgICAgICAgICBRQ29sb3IgcVRvID0gbV90b0NvbG9y
LT5jb2xvcigpOwogICAgICAgICAgICAgICAgIFFDb2xvciBxRnJvbSA9IG1fZnJvbUNvbG9yLT5j
b2xvcigpOwpJbmRleDoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVFbGVtZW50SW1wbC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdBbmltYXRlRWxl
bWVudEltcGwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40CmRpZmYgLXAgLXUgLXIxLjQga3N2
ZzIvc3ZnL1NWR0FuaW1hdGVFbGVtZW50SW1wbC5oCi0tLSBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZUVs
ZW1lbnRJbXBsLmgJMSBTZXAgMjAwNSAwNzozNTozMiAtMDAwMAkxLjQKKysrIGtzdmcyL3N2Zy9T
VkdBbmltYXRlRWxlbWVudEltcGwuaAkxIE5vdiAyMDA1IDExOjEzOjEwIC0wMDAwCkBAIC0zMCw3
ICszMCw3IEBAIG5hbWVzcGFjZSBLU1ZHCiAgICAgY2xhc3MgU1ZHQW5pbWF0ZUVsZW1lbnRJbXBs
IDogcHVibGljIFNWR0FuaW1hdGlvbkVsZW1lbnRJbXBsCiAgICAgewogICAgIHB1YmxpYzoKLSAg
ICAgICAgU1ZHQW5pbWF0ZUVsZW1lbnRJbXBsKEtET006OkRvY3VtZW50UHRyICpkb2MsIEtET006
Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHJlZml4KTsKKyAgICAgICAg
U1ZHQW5pbWF0ZUVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IEtET006OkRvY3VtZW50UHRyICpkb2MpOwogICAgICAgICB2aXJ0dWFsIH5TVkdBbmltYXRlRWxl
bWVudEltcGwoKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlVGltZXJFdmVudChkb3Vi
bGUgdGltZVBlcmNlbnRhZ2UpOwpJbmRleDoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1F
bGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQv
a3N2ZzIvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50SW1wbC5jcHAsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuNgpkaWZmIC1wIC11IC1yMS42IGtzdmcyL3N2Zy9TVkdBbmltYXRlVHJhbnNm
b3JtRWxlbWVudEltcGwuY3BwCi0tLSBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1l
bnRJbXBsLmNwcAk1IE9jdCAyMDA1IDA1OjM1OjE1IC0wMDAwCTEuNgorKysga3N2ZzIvc3ZnL1NW
R0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50SW1wbC5jcHAJMSBOb3YgMjAwNSAxMToxMzoxMCAtMDAw
MApAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc0l0ZW0uaD4KICNp
bmNsdWRlIDxrY2FudmFzL0tDYW52YXNNYXRyaXguaD4KIAotI2luY2x1ZGUgInN2Z2F0dHJzLmgi
CiAjaW5jbHVkZSAiU1ZHQW5nbGVJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHTWF0cml4SW1wbC5oIgog
I2luY2x1ZGUgIlNWR0RvY3VtZW50SW1wbC5oIgpAQCAtNDMsOCArNDIsOCBAQAogdXNpbmcgbmFt
ZXNwYWNlIEtTVkc7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCi1TVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudEltcGw6OlNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50SW1wbChLRE9NOjpEb2N1bWVu
dFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnBy
ZWZpeCkKLTogU1ZHQW5pbWF0aW9uRWxlbWVudEltcGwoZG9jLCBpZCwgcHJlZml4KQorU1ZHQW5p
bWF0ZVRyYW5zZm9ybUVsZW1lbnRJbXBsOjpTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGwo
Y29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRv
YykKKzogU1ZHQW5pbWF0aW9uRWxlbWVudEltcGwodGFnTmFtZSwgZG9jKQogewogICAgIG1fdHlw
ZSA9IFNWR19UUkFOU0ZPUk1fVU5LTk9XTjsKICAgICAKQEAgLTc5LDI4ICs3OCwyMSBAQCBTVkdB
bmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGw6On5TVkdBbmltCiAKIHZvaWQgU1ZHQW5pbWF0ZVRy
YW5zZm9ybUVsZW1lbnRJbXBsOjpwYXJzZUF0dHJpYnV0ZShLRE9NOjpBdHRyaWJ1dGVJbXBsICph
dHRyKQogewotICAgIGludCBpZCA9IChhdHRyLT5pZCgpICYgTm9kZUltcGxfSWRMb2NhbE1hc2sp
OwogICAgIEtET006OkRPTVN0cmluZyB2YWx1ZShhdHRyLT52YWx1ZSgpKTsKLSAgICBzd2l0Y2go
aWQpCi0gICAgewotICAgICAgICBjYXNlIEFUVFJfVFlQRToKLSAgICAgICAgewotICAgICAgICAg
ICAgaWYodmFsdWUgPT0gInRyYW5zbGF0ZSIpCi0gICAgICAgICAgICAgICAgbV90eXBlID0gU1ZH
X1RSQU5TRk9STV9UUkFOU0xBVEU7Ci0gICAgICAgICAgICBlbHNlIGlmKHZhbHVlID09ICJzY2Fs
ZSIpCi0gICAgICAgICAgICAgICAgbV90eXBlID0gU1ZHX1RSQU5TRk9STV9TQ0FMRTsKLSAgICAg
ICAgICAgIGVsc2UgaWYodmFsdWUgPT0gInJvdGF0ZSIpCi0gICAgICAgICAgICAgICAgbV90eXBl
ID0gU1ZHX1RSQU5TRk9STV9ST1RBVEU7Ci0gICAgICAgICAgICBlbHNlIGlmKHZhbHVlID09ICJz
a2V3WCIpCi0gICAgICAgICAgICAgICAgbV90eXBlID0gU1ZHX1RSQU5TRk9STV9TS0VXWDsKLSAg
ICAgICAgICAgIGVsc2UgaWYodmFsdWUgPT0gInNrZXdZIikKLSAgICAgICAgICAgICAgICBtX3R5
cGUgPSBTVkdfVFJBTlNGT1JNX1NLRVdZOwotCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
fSAgICAgICAgICAgICAgICAKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIFNWR0FuaW1h
dGlvbkVsZW1lbnRJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKTsKLSAgICB9OworICAgIGlmIChh
dHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnR5cGVBdHRyKSB7CisgICAgICAgIGlmKHZhbHVlID09
ICJ0cmFuc2xhdGUiKQorICAgICAgICAgICAgbV90eXBlID0gU1ZHX1RSQU5TRk9STV9UUkFOU0xB
VEU7CisgICAgICAgIGVsc2UgaWYodmFsdWUgPT0gInNjYWxlIikKKyAgICAgICAgICAgIG1fdHlw
ZSA9IFNWR19UUkFOU0ZPUk1fU0NBTEU7CisgICAgICAgIGVsc2UgaWYodmFsdWUgPT0gInJvdGF0
ZSIpCisgICAgICAgICAgICBtX3R5cGUgPSBTVkdfVFJBTlNGT1JNX1JPVEFURTsKKyAgICAgICAg
ZWxzZSBpZih2YWx1ZSA9PSAic2tld1giKQorICAgICAgICAgICAgbV90eXBlID0gU1ZHX1RSQU5T
Rk9STV9TS0VXWDsKKyAgICAgICAgZWxzZSBpZih2YWx1ZSA9PSAic2tld1kiKQorICAgICAgICAg
ICAgbV90eXBlID0gU1ZHX1RSQU5TRk9STV9TS0VXWTsKKyAgICB9IGVsc2UgeworICAgICAgICBT
VkdBbmltYXRpb25FbGVtZW50SW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cik7CisgICAgfQogfQog
CiB2b2lkIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50SW1wbDo6aGFuZGxlVGltZXJFdmVudChk
b3VibGUgdGltZVBlcmNlbnRhZ2UpCkBAIC0yNjQsMTMgKzI1NiwxMyBAQCB2b2lkIFNWR0FuaW1h
dGVUcmFuc2Zvcm1FbGVtZW50SW1wbDo6aGFuCiAgICAgICAgICAgICAgICAgaWYobV90b1RyYW5z
Zm9ybSkKICAgICAgICAgICAgICAgICAgICAgbV90b1RyYW5zZm9ybS0+ZGVyZWYoKTsKICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgbV90b1RyYW5zZm9ybSA9IHBhcnNlVHJhbnNmb3JtVmFsdWUo
dmFsdWUyLnN0cmluZygpKTsKKyAgICAgICAgICAgICAgICBtX3RvVHJhbnNmb3JtID0gcGFyc2VU
cmFuc2Zvcm1WYWx1ZSh2YWx1ZTIucXN0cmluZygpKTsKICAgICAgICAgICAgICAgICBtX3RvUm90
YXRlU3BlY2lhbENhc2UgPSBtX3JvdGF0ZVNwZWNpYWxDYXNlOwogCiAgICAgICAgICAgICAgICAg
aWYobV9mcm9tVHJhbnNmb3JtKQogICAgICAgICAgICAgICAgICAgICBtX2Zyb21UcmFuc2Zvcm0t
PmRlcmVmKCk7CiAgICAgCi0gICAgICAgICAgICAgICAgbV9mcm9tVHJhbnNmb3JtID0gcGFyc2VU
cmFuc2Zvcm1WYWx1ZSh2YWx1ZTEuc3RyaW5nKCkpOworICAgICAgICAgICAgICAgIG1fZnJvbVRy
YW5zZm9ybSA9IHBhcnNlVHJhbnNmb3JtVmFsdWUodmFsdWUxLnFzdHJpbmcoKSk7CiAgICAgICAg
ICAgICAgICAgbV9mcm9tUm90YXRlU3BlY2lhbENhc2UgPSBtX3JvdGF0ZVNwZWNpYWxDYXNlOwog
CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50SXRlbSA9IGl0ZW1CeVBlcmNlbnRhZ2U7CkluZGV4
OiBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnRJbXBsLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zv
cm1FbGVtZW50SW1wbC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQKZGlmZiAtcCAtdSAtcjEu
NCBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnRJbXBsLmgKLS0tIGtzdmcyL3N2
Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGwuaAkxIFNlcCAyMDA1IDA3OjM1OjMyIC0w
MDAwCTEuNAorKysga3N2ZzIvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50SW1wbC5oCTEg
Tm92IDIwMDUgMTE6MTM6MTAgLTAwMDAKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIEtTVkcK
ICAgICBjbGFzcyBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGwgOiBwdWJsaWMgU1ZHQW5p
bWF0aW9uRWxlbWVudEltcGwKICAgICB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdBbmltYXRl
VHJhbnNmb3JtRWxlbWVudEltcGwoS0RPTTo6RG9jdW1lbnRQdHIgKmRvYywgS0RPTTo6Tm9kZUlt
cGw6OklkIGlkLCBLRE9NOjpET01TdHJpbmdJbXBsICpwcmVmaXgpOworICAgICAgICBTVkdBbmlt
YXRlVHJhbnNmb3JtRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRvYyk7CiAgICAgICAgIHZpcnR1YWwgflNWR0FuaW1hdGVU
cmFuc2Zvcm1FbGVtZW50SW1wbCgpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJp
YnV0ZShLRE9NOjpBdHRyaWJ1dGVJbXBsICphdHRyKTsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdBbmlt
YXRlZExlbmd0aExpc3RJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZH
U3VwcG9ydC9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0SW1wbC5jcHAsdgpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuNApkaWZmIC1wIC11IC1yMS40IGtzdmcyL3N2Zy9TVkdBbmltYXRlZExl
bmd0aExpc3RJbXBsLmNwcAotLS0ga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdEltcGwu
Y3BwCTUgT2N0IDIwMDUgMDU6MzU6MTYgLTAwMDAJMS40CisrKyBrc3ZnMi9zdmcvU1ZHQW5pbWF0
ZWRMZW5ndGhMaXN0SW1wbC5jcHAJMSBOb3YgMjAwNSAxMToxMzoxMCAtMDAwMApAQCAtMzksMTMg
KzM5LDEzIEBAIFNWR0xlbmd0aExpc3RJbXBsICpTVkdBbmltYXRlZExlbmd0aExpc3QKICAgICBy
ZXR1cm4gbmV3IFNWR0xlbmd0aExpc3RJbXBsKG1fY29udGV4dCk7CiB9CiAKLXZvaWQgU1ZHQW5p
bWF0ZWRMZW5ndGhMaXN0SW1wbDo6YXNzaWduKFNWR0xlbmd0aExpc3RJbXBsICpzcmMsIFNWR0xl
bmd0aExpc3RJbXBsICpkc3QpIGNvbnN0Ci17Ci0gICAgaWYoIXNyYyB8fCAhZHN0KQotICAgICAg
ICByZXR1cm47Ci0KLSAgICAvLyBVc2UgU1ZHTGlzdDxTVkdMZW5ndGhJbXBsPjo6b3BlcmF0b3I9
Ci0gICAgKmRzdCA9ICpzcmM7Ci19CisvL3ZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0SW1wbDo6
YXNzaWduKFNWR0xlbmd0aExpc3RJbXBsICpzcmMsIFNWR0xlbmd0aExpc3RJbXBsICpkc3QpIGNv
bnN0CisvL3sKKy8vICAgIGlmKCFzcmMgfHwgIWRzdCkKKy8vICAgICAgICByZXR1cm47CisvLwor
Ly8gICAgLy8gVXNlIFNWR0xpc3Q8U1ZHTGVuZ3RoSW1wbD46Om9wZXJhdG9yPQorLy8gICAgKmRz
dCA9ICpzcmM7CisvL30KIAogLy8gdmltOnRzPTQ6bm9ldApJbmRleDoga3N2ZzIvc3ZnL1NWR0Fu
aW1hdGVkTGVuZ3RoTGlzdEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZH
U3VwcG9ydC9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0SW1wbC5oLHYKcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjMKZGlmZiAtcCAtdSAtcjEuMyBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRMZW5n
dGhMaXN0SW1wbC5oCi0tLSBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0SW1wbC5oCTEg
U2VwIDIwMDUgMDc6MzU6MzMgLTAwMDAJMS4zCisrKyBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRMZW5n
dGhMaXN0SW1wbC5oCTEgTm92IDIwMDUgMTE6MTM6MTAgLTAwMDAKQEAgLTM4LDcgKzM4LDcgQEAg
bmFtZXNwYWNlIEtTVkcKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgdmlydHVhbCBTVkdMZW5n
dGhMaXN0SW1wbCAqY3JlYXRlKCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBhc3NpZ24o
U1ZHTGVuZ3RoTGlzdEltcGwgKnNyYywgU1ZHTGVuZ3RoTGlzdEltcGwgKmRzdCkgY29uc3Q7Cisg
ICAgICAgIC8vdmlydHVhbCB2b2lkIGFzc2lnbihTVkdMZW5ndGhMaXN0SW1wbCAqc3JjLCBTVkdM
ZW5ndGhMaXN0SW1wbCAqZHN0KSBjb25zdDsKICAgICB9OwogfTsKIApJbmRleDoga3N2ZzIvc3Zn
L1NWR0FuaW1hdGVkTnVtYmVyTGlzdEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMv
cm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3RJbXBsLmNwcCx2
CnJldHJpZXZpbmcgcmV2aXNpb24gMS40CmRpZmYgLXAgLXUgLXIxLjQga3N2ZzIvc3ZnL1NWR0Fu
aW1hdGVkTnVtYmVyTGlzdEltcGwuY3BwCi0tLSBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJM
aXN0SW1wbC5jcHAJNSBPY3QgMjAwNSAwNTozNToxNiAtMDAwMAkxLjQKKysrIGtzdmcyL3N2Zy9T
VkdBbmltYXRlZE51bWJlckxpc3RJbXBsLmNwcAkxIE5vdiAyMDA1IDExOjEzOjEwIC0wMDAwCkBA
IC0zOSwxMyArMzksMTMgQEAgU1ZHTnVtYmVyTGlzdEltcGwgKlNWR0FuaW1hdGVkTnVtYmVyTGlz
dAogICAgIHJldHVybiBuZXcgU1ZHTnVtYmVyTGlzdEltcGwobV9jb250ZXh0KTsKIH0KIAotdm9p
ZCBTVkdBbmltYXRlZE51bWJlckxpc3RJbXBsOjphc3NpZ24oU1ZHTnVtYmVyTGlzdEltcGwgKnNy
YywgU1ZHTnVtYmVyTGlzdEltcGwgKmRzdCkgY29uc3QKLXsKLSAgICBpZighc3JjIHx8ICFkc3Qp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIC8vIFVzZSBTVkdMaXN0PFNWR051bWJlckltcGw+Ojpv
cGVyYXRvcj0KLSAgICAqZHN0ID0gKnNyYzsKLX0KKy8vdm9pZCBTVkdBbmltYXRlZE51bWJlckxp
c3RJbXBsOjphc3NpZ24oU1ZHTnVtYmVyTGlzdEltcGwgKnNyYywgU1ZHTnVtYmVyTGlzdEltcGwg
KmRzdCkgY29uc3QKKy8veworLy8gICAgaWYoIXNyYyB8fCAhZHN0KQorLy8gICAgICAgIHJldHVy
bjsKKy8vCisvLyAgICAvLyBVc2UgU1ZHTGlzdDxTVkdOdW1iZXJJbXBsPjo6b3BlcmF0b3I9Cisv
LyAgICAqZHN0ID0gKnNyYzsKKy8vfQogCiAvLyB2aW06dHM9NDpub2V0CkluZGV4OiBrc3ZnMi9z
dmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMv
cm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3RJbXBsLmgsdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuMwpkaWZmIC1wIC11IC1yMS4zIGtzdmcyL3N2Zy9TVkdBbmlt
YXRlZE51bWJlckxpc3RJbXBsLmgKLS0tIGtzdmcyL3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3RJ
bXBsLmgJMSBTZXAgMjAwNSAwNzozNTozNCAtMDAwMAkxLjMKKysrIGtzdmcyL3N2Zy9TVkdBbmlt
YXRlZE51bWJlckxpc3RJbXBsLmgJMSBOb3YgMjAwNSAxMToxMzoxMCAtMDAwMApAQCAtMzgsNyAr
MzgsNyBAQCBuYW1lc3BhY2UgS1NWRwogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2aXJ0dWFs
IFNWR051bWJlckxpc3RJbXBsICpjcmVhdGUoKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCB2b2lk
IGFzc2lnbihTVkdOdW1iZXJMaXN0SW1wbCAqc3JjLCBTVkdOdW1iZXJMaXN0SW1wbCAqZHN0KSBj
b25zdDsKKyAgICAgICAgLy92aXJ0dWFsIHZvaWQgYXNzaWduKFNWR051bWJlckxpc3RJbXBsICpz
cmMsIFNWR051bWJlckxpc3RJbXBsICpkc3QpIGNvbnN0OwogICAgIH07CiB9OwogCkluZGV4OiBr
c3ZnMi9zdmcvU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv
Y3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsLmNwcCx2
CnJldHJpZXZpbmcgcmV2aXNpb24gMS40CmRpZmYgLXAgLXUgLXIxLjQga3N2ZzIvc3ZnL1NWR0Fu
aW1hdGVkU3RyaW5nSW1wbC5jcHAKLS0tIGtzdmcyL3N2Zy9TVkdBbmltYXRlZFN0cmluZ0ltcGwu
Y3BwCTUgT2N0IDIwMDUgMDU6MzU6MTYgLTAwMDAJMS40CisrKyBrc3ZnMi9zdmcvU1ZHQW5pbWF0
ZWRTdHJpbmdJbXBsLmNwcAkxIE5vdiAyMDA1IDExOjEzOjEwIC0wMDAwCkBAIC0zNiw3ICszNiw3
IEBAIFNWR0FuaW1hdGVkU3RyaW5nSW1wbDo6flNWR0FuaW1hdGVkU3RyaW4KIEtET006OkRPTVN0
cmluZ0ltcGwgKlNWR0FuaW1hdGVkU3RyaW5nSW1wbDo6Y3JlYXRlKCkgY29uc3QKIHsKICAgICAv
LyBUT0RPOiBEbyB3ZSBuZWVkIG5vdGlmaWNhdGlvbnMgb24gc3RyaW5nIG1hbmlwdWxhdGlvbnM/
IGllLiBhcHBlbmREYXRhKCk/Ci0gICAgcmV0dXJuIG5ldyBLRE9NOjpET01TdHJpbmdJbXBsKCk7
CisgICAgcmV0dXJuIG5ldyBLRE9NOjpET01TdHJpbmdJbXBsKCIiKTsKIH0KIAogdm9pZCBTVkdB
bmltYXRlZFN0cmluZ0ltcGw6OmFzc2lnbihLRE9NOjpET01TdHJpbmdJbXBsICpzcmMsIEtET006
OkRPTVN0cmluZ0ltcGwgKmRzdCkgY29uc3QKSW5kZXg6IGtzdmcyL3N2Zy9TVkdBbmltYXRlZFN0
cmluZ0ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3Zn
Mi9zdmcvU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMwpk
aWZmIC1wIC11IC1yMS4zIGtzdmcyL3N2Zy9TVkdBbmltYXRlZFN0cmluZ0ltcGwuaAotLS0ga3N2
ZzIvc3ZnL1NWR0FuaW1hdGVkU3RyaW5nSW1wbC5oCTEgU2VwIDIwMDUgMDc6MzU6MzQgLTAwMDAJ
MS4zCisrKyBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsLmgJMSBOb3YgMjAwNSAxMTox
MzoxMCAtMDAwMApAQCAtMjMsNyArMjMsNyBAQAogI2lmbmRlZiBLU1ZHX1NWR0FuaW1hdGVkU3Ry
aW5nSW1wbF9ICiAjZGVmaW5lIEtTVkdfU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsX0gKIAotI2luY2x1
ZGUgIkRPTVN0cmluZ0ltcGwuaCIKKyNpbmNsdWRlICJrZG9tL2NvcmUvRE9NU3RyaW5nSW1wbC5o
IgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkVGVtcGxhdGUuaCIKIAogbmFtZXNwYWNlIEtTVkcKSW5k
ZXg6IGtzdmcyL3N2Zy9TVkdBbmltYXRlZFRlbXBsYXRlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkVGVtcGxhdGUuaCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS41CmRpZmYgLXAgLXUgLXIxLjUga3N2ZzIvc3ZnL1NWR0FuaW1h
dGVkVGVtcGxhdGUuaAotLS0ga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkVGVtcGxhdGUuaAkyNCBPY3Qg
MjAwNSAwNjozMTo1MiAtMDAwMAkxLjUKKysrIGtzdmcyL3N2Zy9TVkdBbmltYXRlZFRlbXBsYXRl
LmgJMSBOb3YgMjAwNSAxMToxMzoxMCAtMDAwMApAQCAtNTgsNyArNTgsNyBAQCBuYW1lc3BhY2Ug
S1NWRwogCiAgICAgICAgIHZvaWQgc2V0QmFzZVZhbChUICpiYXNlVmFsKSBjb25zdAogICAgICAg
ICB7Ci0gICAgICAgICAgICBLRE9NX1NBRkVfU0VUKG1fYmFzZVZhbCwgYmFzZVZhbCk7CisgICAg
ICAgICAgICBLRE9NOjpLRE9NX1NBRkVfU0VUKG1fYmFzZVZhbCwgYmFzZVZhbCk7CiAKICAgICAg
ICAgICAgIGlmKG1fY29udGV4dCkKICAgICAgICAgICAgICAgICBtX2NvbnRleHQtPm5vdGlmeUF0
dHJpYnV0ZUNoYW5nZSgpOwpAQCAtNzksNyArNzksNyBAQCBuYW1lc3BhY2UgS1NWRwogCiAgICAg
ICAgIHZvaWQgc2V0QW5pbVZhbChUICphbmltVmFsKSBjb25zdAogICAgICAgICB7Ci0gICAgICAg
ICAgICBLRE9NX1NBRkVfU0VUKG1fYW5pbVZhbCwgYW5pbVZhbCk7CisgICAgICAgICAgICBLRE9N
OjpLRE9NX1NBRkVfU0VUKG1fYW5pbVZhbCwgYW5pbVZhbCk7CiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIC8vIEkgdGhpbmsgdGhpcyBpcyBzdXBlcmZsdW91cy4uLiAtLSBFQ1MgNC8yNS8wNQog
ICAgICAgICAgICAgaWYobV9jb250ZXh0KQpAQCAtOTYsNyArOTYsNyBAQCBuYW1lc3BhY2UgS1NW
RwogCiAgICAgICAgIC8vIFRoaXMgbWV0aG9kcyBuZWVkIHRvIGJlIHJlaW1wbGVtZW50ZWQuICAg
ICAgICAKICAgICAgICAgdmlydHVhbCBUICpjcmVhdGUoKSBjb25zdCA9IDA7Ci0gICAgICAgIHZp
cnR1YWwgdm9pZCBhc3NpZ24oVCAqc3JjLCBUICpkc3QpIGNvbnN0ID0gMDsKKyAgICAgICAgLy92
aXJ0dWFsIHZvaWQgYXNzaWduKFQgKnNyYywgVCAqZHN0KSBjb25zdCA9IDA7CiAKICAgICAgICAg
Ly8gQXR0cmlidXRlIG5vdGlmaWNhdGlvbiBjb250ZXh0CiAgICAgICAgIGNvbnN0IFNWR1N0eWxl
ZEVsZW1lbnRJbXBsICptX2NvbnRleHQ7CkluZGV4OiBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBv
cnQva3N2ZzIvc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGwuY3BwLHYKcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjQKZGlmZiAtcCAtdSAtcjEuNCBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0SW1wbC5jcHAKLS0tIGtzdmcyL3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJ
bXBsLmNwcAk1IE9jdCAyMDA1IDA1OjM1OjE3IC0wMDAwCTEuNAorKysga3N2ZzIvc3ZnL1NWR0Fu
aW1hdGVkVHJhbnNmb3JtTGlzdEltcGwuY3BwCTEgTm92IDIwMDUgMTE6MTM6MTAgLTAwMDAKQEAg
LTM5LDEzICszOSwxMyBAQCBTVkdUcmFuc2Zvcm1MaXN0SW1wbCAqU1ZHQW5pbWF0ZWRUcmFuc2Zv
CiAgICAgcmV0dXJuIG5ldyBTVkdUcmFuc2Zvcm1MaXN0SW1wbChtX2NvbnRleHQpOwogfQogCi12
b2lkIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEltcGw6OmFzc2lnbihTVkdUcmFuc2Zvcm1MaXN0
SW1wbCAqc3JjLCBTVkdUcmFuc2Zvcm1MaXN0SW1wbCAqZHN0KSBjb25zdAotewotICAgIGlmKCFz
cmMgfHwgIWRzdCkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIC8vIFVzZSBTVkdMaXN0PFNW
R1RyYW5zZm9ybUltcGw+OjpvcGVyYXRvcj0KLSAgICAqZHN0ID0gKnNyYzsKLX0KKy8vdm9pZCBT
VkdBbmltYXRlZFRyYW5zZm9ybUxpc3RJbXBsOjphc3NpZ24oU1ZHVHJhbnNmb3JtTGlzdEltcGwg
KnNyYywgU1ZHVHJhbnNmb3JtTGlzdEltcGwgKmRzdCkgY29uc3QKKy8veworLy8gICAgaWYoIXNy
YyB8fCAhZHN0KQorLy8gICAgICAgIHJldHVybjsKKy8vICAgIAorLy8gICAgLy8gVXNlIFNWR0xp
c3Q8U1ZHVHJhbnNmb3JtSW1wbD46Om9wZXJhdG9yPQorLy8gICAgKmRzdCA9ICpzcmM7CisvL30K
IAogLy8gdmltOnRzPTQ6bm9ldApJbmRleDoga3N2ZzIvc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3Jt
TGlzdEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3Zn
Mi9zdmcvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0SW1wbC5oLHYKcmV0cmlldmluZyByZXZpc2lv
biAxLjMKZGlmZiAtcCAtdSAtcjEuMyBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0
SW1wbC5oCi0tLSBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0SW1wbC5oCTEgU2Vw
IDIwMDUgMDc6MzU6MzQgLTAwMDAJMS4zCisrKyBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRUcmFuc2Zv
cm1MaXN0SW1wbC5oCTEgTm92IDIwMDUgMTE6MTM6MTAgLTAwMDAKQEAgLTM4LDcgKzM4LDcgQEAg
bmFtZXNwYWNlIEtTVkcKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgdmlydHVhbCBTVkdUcmFu
c2Zvcm1MaXN0SW1wbCAqY3JlYXRlKCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBhc3Np
Z24oU1ZHVHJhbnNmb3JtTGlzdEltcGwgKnNyYywgU1ZHVHJhbnNmb3JtTGlzdEltcGwgKmRzdCkg
Y29uc3Q7CisgICAgICAgIC8vdmlydHVhbCB2b2lkIGFzc2lnbihTVkdUcmFuc2Zvcm1MaXN0SW1w
bCAqc3JjLCBTVkdUcmFuc2Zvcm1MaXN0SW1wbCAqZHN0KSBjb25zdDsKICAgICB9OwogfTsKIApJ
bmRleDoga3N2ZzIvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVu
dEltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjkKZGlmZiAtcCAtdSAtcjEuOSBrc3Zn
Mi9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudEltcGwuY3BwCi0tLSBrc3ZnMi9zdmcvU1ZHQW5pbWF0
aW9uRWxlbWVudEltcGwuY3BwCTE0IE9jdCAyMDA1IDIwOjIwOjU0IC0wMDAwCTEuOQorKysga3N2
ZzIvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnRJbXBsLmNwcAkxIE5vdiAyMDA1IDExOjEzOjExIC0w
MDAwCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSA8a2RvbS9jc3MvQ1NTU3R5bGVEZWNsYXJh
dGlvbkltcGwuaD4KICNpbmNsdWRlIDxrZG9tL0RPTVN0cmluZy5oPgogCi0jaW5jbHVkZSAic3Zn
YXR0cnMuaCIKICNpbmNsdWRlICJTVkdIZWxwZXIuaCIKICNpbmNsdWRlICJTVkdEb2N1bWVudElt
cGwuaCIKICNpbmNsdWRlICJTVkdVUklSZWZlcmVuY2VJbXBsLmgiCkBAIC00Miw4ICs0MSw4IEBA
CiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKLVNWR0FuaW1h
dGlvbkVsZW1lbnRJbXBsOjpTVkdBbmltYXRpb25FbGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0
ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZp
eCkKLTogU1ZHRWxlbWVudEltcGwoZG9jLCBpZCwgcHJlZml4KSwgU1ZHVGVzdHNJbXBsKCksIFNW
R0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsKCkKK1NWR0FuaW1hdGlvbkVsZW1lbnRJbXBs
OjpTVkdBbmltYXRpb25FbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBLRE9NOjpEb2N1bWVudFB0ciAqZG9jKQorOiBTVkdFbGVtZW50SW1wbCh0YWdOYW1lLCBk
b2MpLCBTVkdUZXN0c0ltcGwoKSwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwoKQog
ewogICAgIG1fY29ubmVjdGVkID0gZmFsc2U7CiAKQEAgLTkwLDcgKzg5LDcgQEAgU1ZHRWxlbWVu
dEltcGwgKlNWR0FuaW1hdGlvbkVsZW1lbnRJbXBsOgogICAgICAgICBpZighbV9ocmVmLmlzRW1w
dHkoKSkKICAgICAgICAgewogICAgICAgICAgICAgS0RPTTo6RE9NU3RyaW5nIHRhcmdldElkID0g
U1ZHVVJJUmVmZXJlbmNlSW1wbDo6Z2V0VGFyZ2V0KG1faHJlZik7Ci0gICAgICAgICAgICBLRE9N
OjpFbGVtZW50SW1wbCAqZWxlbWVudCA9IG93bmVyRG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQo
dGFyZ2V0SWQuaGFuZGxlKCkpOworICAgICAgICAgICAgS0RPTTo6RWxlbWVudEltcGwgKmVsZW1l
bnQgPSBvd25lckRvY3VtZW50KCktPmdldEVsZW1lbnRCeUlkKHRhcmdldElkLmltcGwoKSk7CiAg
ICAgICAgICAgICBtX3RhcmdldEVsZW1lbnQgPSBzdmdfZHluYW1pY19jYXN0KGVsZW1lbnQpOwog
ICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYocGFyZW50Tm9kZSgpKQpAQCAtMTMyLDI1NyArMTMx
LDIxMCBAQCBkb3VibGUgU1ZHQW5pbWF0aW9uRWxlbWVudEltcGw6OmdldFNpbXBsCiAKIHZvaWQg
U1ZHQW5pbWF0aW9uRWxlbWVudEltcGw6OnBhcnNlQXR0cmlidXRlKEtET006OkF0dHJpYnV0ZUlt
cGwgKmF0dHIpCiB7Ci0gICAgaW50IGlkID0gKGF0dHItPmlkKCkgJiBOb2RlSW1wbF9JZExvY2Fs
TWFzayk7CiAgICAgS0RPTTo6RE9NU3RyaW5nIHZhbHVlKGF0dHItPnZhbHVlKCkpOwotICAgIHN3
aXRjaChpZCkKLSAgICB7Ci0gICAgICAgIGNhc2UgQVRUUl9IUkVGOgotICAgICAgICB7Ci0gICAg
ICAgICAgICBtX2hyZWYgPSB2YWx1ZS5zdHJpbmcoKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICB9Ci0gICAgICAgIGNhc2UgQVRUUl9BVFRSSUJVVEVOQU1FOgotICAgICAgICB7Ci0gICAg
ICAgICAgICBtX2F0dHJpYnV0ZU5hbWUgPSB2YWx1ZS5zdHJpbmcoKTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgQVRUUl9BVFRSSUJVVEVUWVBFOgorICAgIGlm
IChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OmhyZWZBdHRyKQorICAgICAgICAgICAgbV9ocmVm
ID0gdmFsdWUucXN0cmluZygpOworICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1l
czo6YXR0cmlidXRlbmFtZUF0dHIpCisgICAgICAgICAgICBtX2F0dHJpYnV0ZU5hbWUgPSB2YWx1
ZS5xc3RyaW5nKCk7CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjphdHRy
aWJ1dGV0eXBlQXR0cikKKyAgICB7CisgICAgICAgIGlmKHZhbHVlID09ICJDU1MiKQorICAgICAg
ICAgICAgbV9hdHRyaWJ1dGVUeXBlID0gQVRUUklCVVRFVFlQRV9DU1M7CisgICAgICAgIGVsc2Ug
aWYodmFsdWUgPT0gIlhNTCIpCisgICAgICAgICAgICBtX2F0dHJpYnV0ZVR5cGUgPSBBVFRSSUJV
VEVUWVBFX1hNTDsKKyAgICAgICAgZWxzZSBpZih2YWx1ZSA9PSAiYXV0byIpCisgICAgICAgICAg
ICBtX2F0dHJpYnV0ZVR5cGUgPSBBVFRSSUJVVEVUWVBFX0FVVE87CisgICAgfQorICAgIGVsc2Ug
aWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6YmVnaW5BdHRyIHx8IGF0dHItPm5hbWUoKSA9
PSBTVkdOYW1lczo6ZW5kQXR0cikKKyAgICB7CisgICAgICAgIC8vIENyZWF0ZSBsaXN0CisgICAg
ICAgIFNWR1N0cmluZ0xpc3RJbXBsICp0ZW1wID0gbmV3IFNWR1N0cmluZ0xpc3RJbXBsKCk7Cisg
ICAgICAgIHRlbXAtPnJlZigpOworCisgICAgICAgIC8vIEZlZWQgZGF0YSBpbnRvIGxpc3QKKyAg
ICAgICAgU1ZHSGVscGVyOjpQYXJzZVNlcGVyYXRlZExpc3QodGVtcCwgdmFsdWUucXN0cmluZygp
LCAnOycpOworCisgICAgICAgIC8vIFBhcnNlIGRhdGEKKyAgICAgICAgZm9yKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHRlbXAtPm51bWJlck9mSXRlbXMoKTsgaSsrKQogICAgICAgICB7Ci0gICAg
ICAgICAgICBpZih2YWx1ZSA9PSAiQ1NTIikKLSAgICAgICAgICAgICAgICBtX2F0dHJpYnV0ZVR5
cGUgPSBBVFRSSUJVVEVUWVBFX0NTUzsKLSAgICAgICAgICAgIGVsc2UgaWYodmFsdWUgPT0gIlhN
TCIpCi0gICAgICAgICAgICAgICAgbV9hdHRyaWJ1dGVUeXBlID0gQVRUUklCVVRFVFlQRV9YTUw7
Ci0gICAgICAgICAgICBlbHNlIGlmKHZhbHVlID09ICJhdXRvIikKLSAgICAgICAgICAgICAgICBt
X2F0dHJpYnV0ZVR5cGUgPSBBVFRSSUJVVEVUWVBFX0FVVE87CisgICAgICAgICAgICBRU3RyaW5n
IGN1cnJlbnQgPSBLRE9NOjpET01TdHJpbmcodGVtcC0+Z2V0SXRlbShpKSkucXN0cmluZygpOwog
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfSAgICAgICAgICAgICAgICAKLSAgICAgICAg
Y2FzZSBBVFRSX0JFR0lOOgotICAgICAgICBjYXNlIEFUVFJfRU5EOgotICAgICAgICB7Ci0gICAg
ICAgICAgICAvLyBDcmVhdGUgbGlzdAotICAgICAgICAgICAgU1ZHU3RyaW5nTGlzdEltcGwgKnRl
bXAgPSBuZXcgU1ZHU3RyaW5nTGlzdEltcGwoKTsKLSAgICAgICAgICAgIHRlbXAtPnJlZigpOwor
ICAgICAgICAgICAgaWYoY3VycmVudC5zdGFydHNXaXRoKFFTdHJpbmc6OmZyb21MYXRpbjEoImFj
Y2Vzc0tleSIpKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBSZWdpc3RlciBr
ZXlEb3duRXZlbnRMaXN0ZW5lciBmb3IgdGhlIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgIFFT
dHJpbmcgY2hhcmFjdGVyID0gY3VycmVudC5taWQoY3VycmVudC5sZW5ndGgoKSAtIDIsIDEpOwog
Ci0gICAgICAgICAgICAvLyBGZWVkIGRhdGEgaW50byBsaXN0Ci0gICAgICAgICAgICBTVkdIZWxw
ZXI6OlBhcnNlU2VwZXJhdGVkTGlzdCh0ZW1wLCB2YWx1ZS5zdHJpbmcoKSwgJzsnKTsKKyAgICAg
ICAgICAgICAgICBrZERlYnVnKCkgPDwga19mdW5jaW5mbyA8PCAiIFN1cHBvc2VkIHRvIHJlZ2lz
dGVyIGFjY2Vzc0tleSBDaGFyYWN0ZXI6ICIgPDwgY2hhcmFjdGVyIDw8ICIgVU5TVVBQT1JURUQh
IiA8PCBlbmRsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZihjdXJyZW50LnN0
YXJ0c1dpdGgoUVN0cmluZzo6ZnJvbUxhdGluMSgid2FsbGNsb2NrIikpKQorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIGludCBmaXJzdEJyYWNlID0gY3VycmVudC5maW5kKCcoJyk7Cisg
ICAgICAgICAgICAgICAgaW50IHNlY29uZEJyYWNlID0gY3VycmVudC5maW5kKCcpJyk7CiAKLSAg
ICAgICAgICAgIC8vIFBhcnNlIGRhdGEKLSAgICAgICAgICAgIGZvcih1bnNpZ25lZCBpbnQgaSA9
IDA7IGkgPCB0ZW1wLT5udW1iZXJPZkl0ZW1zKCk7IGkrKykKKyAgICAgICAgICAgICAgICBRU3Ry
aW5nIHdhbGxjbG9ja1ZhbHVlID0gY3VycmVudC5taWQoZmlyc3RCcmFjZSArIDEsIHNlY29uZEJy
YWNlIC0gZmlyc3RCcmFjZSAtIDIpOworICAgICAgICAgICAgICAgIGtkRGVidWcoKSA8PCBrX2Z1
bmNpbmZvIDw8ICIgU3VwcG9zZWQgdG8gdXNlIHdhbGxDbG9jayB2YWx1ZTogIiA8PCB3YWxsY2xv
Y2tWYWx1ZSA8PCAiIFVOU1VQUE9SVEVEISIgPDwgZW5kbDsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGVsc2UgaWYoY3VycmVudC5jb250YWlucygnLicpKQogICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIFFTdHJpbmcgY3VycmVudCA9IEtET006OkRPTVN0cmluZyh0ZW1wLT5nZXRJ
dGVtKGkpKS5zdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBpbnQgZG90UG9zaXRpb24gPSBjdXJy
ZW50LmZpbmQoJy4nKTsKIAotICAgICAgICAgICAgICAgIGlmKGN1cnJlbnQuc3RhcnRzV2l0aChR
U3RyaW5nOjpmcm9tTGF0aW4xKCJhY2Nlc3NLZXkiKSkpCisgICAgICAgICAgICAgICAgUVN0cmlu
ZyBlbGVtZW50ID0gY3VycmVudC5taWQoMCwgZG90UG9zaXRpb24pOworICAgICAgICAgICAgICAg
IFFTdHJpbmcgY2xvY2tWYWx1ZTsKKyAgICAgICAgICAgICAgICBpZihjdXJyZW50LmNvbnRhaW5z
KFFTdHJpbmc6OmZyb21MYXRpbjEoImJlZ2luIikpKQorICAgICAgICAgICAgICAgICAgICBjbG9j
a1ZhbHVlID0gY3VycmVudC5taWQoZG90UG9zaXRpb24gKyA2KTsKKyAgICAgICAgICAgICAgICBl
bHNlIGlmKGN1cnJlbnQuY29udGFpbnMoUVN0cmluZzo6ZnJvbUxhdGluMSgiZW5kIikpKQorICAg
ICAgICAgICAgICAgICAgICBjbG9ja1ZhbHVlID0gY3VycmVudC5taWQoZG90UG9zaXRpb24gKyA0
KTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmKGN1cnJlbnQuY29udGFpbnMoUVN0cmluZzo6ZnJv
bUxhdGluMSgicmVwZWF0IikpKQorICAgICAgICAgICAgICAgICAgICBjbG9ja1ZhbHVlID0gY3Vy
cmVudC5taWQoZG90UG9zaXRpb24gKyA3KTsKKyAgICAgICAgICAgICAgICBlbHNlIC8vIERPTTIg
RXZlbnQgUmVmZXJlbmNlCiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAv
LyBSZWdpc3RlciBrZXlEb3duRXZlbnRMaXN0ZW5lciBmb3IgdGhlIGNoYXJhY3RlcgotICAgICAg
ICAgICAgICAgICAgICBRU3RyaW5nIGNoYXJhY3RlciA9IGN1cnJlbnQubWlkKGN1cnJlbnQubGVu
Z3RoKCkgLSAyLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgaW50IHBsdXNNaW51c1Bvc2l0aW9u
ID0gLTE7CiAKLSAgICAgICAgICAgICAgICAgICAga2REZWJ1ZygpIDw8IGtfZnVuY2luZm8gPDwg
IiBTdXBwb3NlZCB0byByZWdpc3RlciBhY2Nlc3NLZXkgQ2hhcmFjdGVyOiAiIDw8IGNoYXJhY3Rl
ciA8PCAiIFVOU1VQUE9SVEVEISIgPDwgZW5kbDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgZWxzZSBpZihjdXJyZW50LnN0YXJ0c1dpdGgoUVN0cmluZzo6ZnJvbUxhdGluMSgi
d2FsbGNsb2NrIikpKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgaW50
IGZpcnN0QnJhY2UgPSBjdXJyZW50LmZpbmQoJygnKTsKLSAgICAgICAgICAgICAgICAgICAgaW50
IHNlY29uZEJyYWNlID0gY3VycmVudC5maW5kKCcpJyk7CisgICAgICAgICAgICAgICAgICAgIGlm
KGN1cnJlbnQuY29udGFpbnMoJysnKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHBsdXNNaW51
c1Bvc2l0aW9uID0gY3VycmVudC5maW5kKCcrJyk7CisgICAgICAgICAgICAgICAgICAgIGVsc2Ug
aWYoY3VycmVudC5jb250YWlucygnLScpKQorICAgICAgICAgICAgICAgICAgICAgICAgcGx1c01p
bnVzUG9zaXRpb24gPSBjdXJyZW50LmZpbmQoJy0nKTsKKworICAgICAgICAgICAgICAgICAgICBR
U3RyaW5nIGV2ZW50ID0gY3VycmVudC5taWQoZG90UG9zaXRpb24gKyAxLCBwbHVzTWludXNQb3Np
dGlvbiAtIGRvdFBvc2l0aW9uIC0gMSk7CisgICAgICAgICAgICAgICAgICAgIGNsb2NrVmFsdWUg
PSBjdXJyZW50Lm1pZChkb3RQb3NpdGlvbiArIGV2ZW50Lmxlbmd0aCgpICsgMSk7CiAKLSAgICAg
ICAgICAgICAgICAgICAgUVN0cmluZyB3YWxsY2xvY2tWYWx1ZSA9IGN1cnJlbnQubWlkKGZpcnN0
QnJhY2UgKyAxLCBzZWNvbmRCcmFjZSAtIGZpcnN0QnJhY2UgLSAyKTsKLSAgICAgICAgICAgICAg
ICAgICAga2REZWJ1ZygpIDw8IGtfZnVuY2luZm8gPDwgIiBTdXBwb3NlZCB0byB1c2Ugd2FsbENs
b2NrIHZhbHVlOiAiIDw8IHdhbGxjbG9ja1ZhbHVlIDw8ICIgVU5TVVBQT1JURUQhIiA8PCBlbmRs
OworICAgICAgICAgICAgICAgICAgICBrZERlYnVnKCkgPDwga19mdW5jaW5mbyA8PCAiIFN1cHBv
c2VkIHRvIHVzZSBET00gRXZlbnQ6ICIgPDwgZXZlbnQgPDwgIiBVTlNVUFBPUlRFRCEiIDw8IGVu
ZGw7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGVsc2UgaWYoY3VycmVudC5j
b250YWlucygnLicpKQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIGlmKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6YmVnaW5B
dHRyKQogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgaW50IGRvdFBvc2l0
aW9uID0gY3VycmVudC5maW5kKCcuJyk7CisgICAgICAgICAgICAgICAgICAgIG1fYmVnaW4gPSBw
YXJzZUNsb2NrVmFsdWUoY3VycmVudCk7CisgICAgICAgICAgICAgICAgICAgIGlmKCFpc0luZGVm
aW5pdGUobV9iZWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICBtX2JlZ2luICo9IDEwMDAu
MDsKIAotICAgICAgICAgICAgICAgICAgICBRU3RyaW5nIGVsZW1lbnQgPSBjdXJyZW50Lm1pZCgw
LCBkb3RQb3NpdGlvbik7Ci0gICAgICAgICAgICAgICAgICAgIFFTdHJpbmcgY2xvY2tWYWx1ZTsK
LSAgICAgICAgICAgICAgICAgICAgaWYoY3VycmVudC5jb250YWlucyhRU3RyaW5nOjpmcm9tTGF0
aW4xKCJiZWdpbiIpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGNsb2NrVmFsdWUgPSBjdXJy
ZW50Lm1pZChkb3RQb3NpdGlvbiArIDYpOwotICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKGN1
cnJlbnQuY29udGFpbnMoUVN0cmluZzo6ZnJvbUxhdGluMSgiZW5kIikpKQotICAgICAgICAgICAg
ICAgICAgICAgICAgY2xvY2tWYWx1ZSA9IGN1cnJlbnQubWlkKGRvdFBvc2l0aW9uICsgNCk7Ci0g
ICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoY3VycmVudC5jb250YWlucyhRU3RyaW5nOjpmcm9t
TGF0aW4xKCJyZXBlYXQiKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICBjbG9ja1ZhbHVlID0g
Y3VycmVudC5taWQoZG90UG9zaXRpb24gKyA3KTsKLSAgICAgICAgICAgICAgICAgICAgZWxzZSAv
LyBET00yIEV2ZW50IFJlZmVyZW5jZQotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBpbnQgcGx1c01pbnVzUG9zaXRpb24gPSAtMTsKLQotICAgICAgICAgICAg
ICAgICAgICAgICAgaWYoY3VycmVudC5jb250YWlucygnKycpKQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBsdXNNaW51c1Bvc2l0aW9uID0gY3VycmVudC5maW5kKCcrJyk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBlbHNlIGlmKGN1cnJlbnQuY29udGFpbnMoJy0nKSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwbHVzTWludXNQb3NpdGlvbiA9IGN1cnJlbnQuZmluZCgnLScp
OwotCi0gICAgICAgICAgICAgICAgICAgICAgICBRU3RyaW5nIGV2ZW50ID0gY3VycmVudC5taWQo
ZG90UG9zaXRpb24gKyAxLCBwbHVzTWludXNQb3NpdGlvbiAtIGRvdFBvc2l0aW9uIC0gMSk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBjbG9ja1ZhbHVlID0gY3VycmVudC5taWQoZG90UG9zaXRp
b24gKyBldmVudC5sZW5ndGgoKSArIDEpOwotCi0gICAgICAgICAgICAgICAgICAgICAgICBrZERl
YnVnKCkgPDwga19mdW5jaW5mbyA8PCAiIFN1cHBvc2VkIHRvIHVzZSBET00gRXZlbnQ6ICIgPDwg
ZXZlbnQgPDwgIiBVTlNVUFBPUlRFRCEiIDw8IGVuZGw7Ci0gICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAga2REZWJ1ZygpIDw8IGtfZnVuY2luZm8gPDwgIiBTZXR0aW5n
IGJlZ2luIHRpbWUgdG8gIiA8PCBtX2JlZ2luIDw8ICIgbXMhIiA8PCBlbmRsOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICBpZihpZCA9PSBBVFRSX0JFR0lOKQotICAgICAgICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBtX2JlZ2luID0gcGFyc2VDbG9ja1ZhbHVlKGN1cnJl
bnQpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYoIWlzSW5kZWZpbml0ZShtX2JlZ2luKSkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2JlZ2luICo9IDEwMDAuMDsKLQotICAgICAg
ICAgICAgICAgICAgICAgICAga2REZWJ1ZygpIDw8IGtfZnVuY2luZm8gPDwgIiBTZXR0aW5nIGJl
Z2luIHRpbWUgdG8gIiA8PCBtX2JlZ2luIDw8ICIgbXMhIiA8PCBlbmRsOwotICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICAgICAgbV9lbmQgPSBwYXJzZUNsb2NrVmFsdWUoY3VycmVu
dCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZighaXNJbmRlZmluaXRlKG1fZW5kKSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX2VuZCAqPSAxMDAwLjA7CisgICAgICAgICAgICAg
ICAgICAgIG1fZW5kID0gcGFyc2VDbG9ja1ZhbHVlKGN1cnJlbnQpOworICAgICAgICAgICAgICAg
ICAgICBpZighaXNJbmRlZmluaXRlKG1fZW5kKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1f
ZW5kICo9IDEwMDAuMDsKIAotICAgICAgICAgICAgICAgICAgICAgICAga2REZWJ1ZygpIDw8IGtf
ZnVuY2luZm8gPDwgIiBTZXR0aW5nIGVuZCB0aW1lIHRvICIgPDwgbV9lbmQgPDwgIiBtcyEiIDw8
IGVuZGw7Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAga2REZWJ1
ZygpIDw8IGtfZnVuY2luZm8gPDwgIiBTZXR0aW5nIGVuZCB0aW1lIHRvICIgPDwgbV9lbmQgPDwg
IiBtcyEiIDw8IGVuZGw7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICB0ZW1wLT5kZXJlZigpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAg
ICAgICAgY2FzZSBBVFRSX0RVUjoKLSAgICAgICAgewotICAgICAgICAgICAgbV9zaW1wbGVEdXJh
dGlvbiA9IHBhcnNlQ2xvY2tWYWx1ZSh2YWx1ZS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICBpZigh
aXNJbmRlZmluaXRlKG1fc2ltcGxlRHVyYXRpb24pKQotICAgICAgICAgICAgICAgIG1fc2ltcGxl
RHVyYXRpb24gKj0gMTAwMC4wOwotCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAg
ICAgICBjYXNlIEFUVFJfTUlOOgotICAgICAgICB7Ci0gICAgICAgICAgICBtX21pbiA9IHBhcnNl
Q2xvY2tWYWx1ZSh2YWx1ZS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICBpZighaXNJbmRlZmluaXRl
KG1fbWluKSkKLSAgICAgICAgICAgICAgICBtX21pbiAqPSAxMDAwLjA7Ci0KLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgQVRUUl9NQVg6Ci0gICAgICAgIHsKLSAg
ICAgICAgICAgIG1fbWF4ID0gcGFyc2VDbG9ja1ZhbHVlKHZhbHVlLnN0cmluZygpKTsKLSAgICAg
ICAgICAgIGlmKCFpc0luZGVmaW5pdGUobV9tYXgpKQotICAgICAgICAgICAgICAgIG1fbWF4ICo9
IDEwMDAuMDsKLQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBB
VFRSX1JFU1RBUlQ6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlmKHZhbHVlID09ICJ3aGVuTm90
QWN0aXZlIikKLSAgICAgICAgICAgICAgICBtX3Jlc3RhcnQgPSBSRVNUQVJUX1dIRU5OT1RBQ1RJ
VkU7Ci0gICAgICAgICAgICBlbHNlIGlmKHZhbHVlID09ICJuZXZlciIpCi0gICAgICAgICAgICAg
ICAgbV9yZXN0YXJ0ID0gUkVTVEFSVF9ORVZFUjsKLSAgICAgICAgICAgIGVsc2UgaWYodmFsdWUg
PT0gImFsd2F5cyIpCi0gICAgICAgICAgICAgICAgbV9yZXN0YXJ0ID0gUkVTVEFSVF9BTFdBWVM7
Ci0KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgQVRUUl9SRVBF
QVRDT1VOVDoKLSAgICAgICAgewotICAgICAgICAgICAgaWYodmFsdWUgPT0gImluZGVmaW5pdGUi
KQotICAgICAgICAgICAgICAgIG1fcmVwZWF0Q291bnQgPSBEQkxfTUFYOwotICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgIG1fcmVwZWF0Q291bnQgPSB2YWx1ZS5zdHJpbmcoKS50b0Rv
dWJsZSgpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0K
LSAgICAgICAgY2FzZSBBVFRSX1JFUEVBVERVUjoKLSAgICAgICAgewotICAgICAgICAgICAgbV9y
ZXBlYXREdXIgPSB2YWx1ZS5zdHJpbmcoKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9
Ci0gICAgICAgIGNhc2UgQVRUUl9GSUxMOgotICAgICAgICB7Ci0gICAgICAgICAgICBpZih2YWx1
ZSA9PSAiZnJlZXplIikKLSAgICAgICAgICAgICAgICBtX2ZpbGwgPSBGSUxMX0ZSRUVaRTsKLSAg
ICAgICAgICAgIGVsc2UgaWYodmFsdWUgPT0gInJlbW92ZSIpCi0gICAgICAgICAgICAgICAgbV9m
aWxsID0gRklMTF9SRU1PVkU7Ci0KLSAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAg
ICAgIGNhc2UgQVRUUl9DQUxDTU9ERToKLSAgICAgICAgewotICAgICAgICAgICAgaWYodmFsdWUg
PT0gImRpc2NyZXRlIikKLSAgICAgICAgICAgICAgICBtX2NhbGNNb2RlID0gQ0FMQ01PREVfRElT
Q1JFVEU7Ci0gICAgICAgICAgICBlbHNlIGlmKHZhbHVlID09ICJsaW5lYXIiKQotICAgICAgICAg
ICAgICAgIG1fY2FsY01vZGUgPSBDQUxDTU9ERV9MSU5FQVI7Ci0gICAgICAgICAgICBlbHNlIGlm
KHZhbHVlID09ICJzcGxpbmUiKQotICAgICAgICAgICAgICAgIG1fY2FsY01vZGUgPSBDQUxDTU9E
RV9TUExJTkU7Ci0gICAgICAgICAgICBlbHNlIGlmKHZhbHVlID09ICJwYWNlZCIpCi0gICAgICAg
ICAgICAgICAgbV9jYWxjTW9kZSA9IENBTENNT0RFX1BBQ0VEOwotICAgICAgICAgICAgCi0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIEFUVFJfVkFMVUVTOgotICAg
ICAgICB7Ci0gICAgICAgICAgICBpZihtX3ZhbHVlcykKLSAgICAgICAgICAgICAgICBtX3ZhbHVl
cy0+ZGVyZWYoKTsKIAotICAgICAgICAgICAgbV92YWx1ZXMgPSBuZXcgU1ZHU3RyaW5nTGlzdElt
cGwoKTsKLSAgICAgICAgICAgIG1fdmFsdWVzLT5yZWYoKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgU1ZHSGVscGVyOjpQYXJzZVNlcGVyYXRlZExpc3QobV92YWx1ZXMs
IHZhbHVlLnN0cmluZygpLCAnOycpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAg
ICAgICAgY2FzZSBBVFRSX0tFWVRJTUVTOgotICAgICAgICB7Ci0gICAgICAgICAgICBpZihtX2tl
eVRpbWVzKQotICAgICAgICAgICAgICAgIG1fa2V5VGltZXMtPmRlcmVmKCk7Ci0KLSAgICAgICAg
ICAgIG1fa2V5VGltZXMgPSBuZXcgU1ZHU3RyaW5nTGlzdEltcGwoKTsKLSAgICAgICAgICAgIG1f
a2V5VGltZXMtPnJlZigpOwotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBT
VkdIZWxwZXI6OlBhcnNlU2VwZXJhdGVkTGlzdChtX2tleVRpbWVzLCB2YWx1ZS5zdHJpbmcoKSwg
JzsnKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgQVRUUl9L
RVlTUExJTkVTOgotICAgICAgICB7Ci0gICAgICAgICAgICBpZihtX2tleVNwbGluZXMpCi0gICAg
ICAgICAgICAgICAgbV9rZXlTcGxpbmVzLT5kZXJlZigpOwotCi0gICAgICAgICAgICBtX2tleVNw
bGluZXMgPSBuZXcgU1ZHU3RyaW5nTGlzdEltcGwoKTsKLSAgICAgICAgICAgIG1fa2V5U3BsaW5l
cy0+cmVmKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIFNWR0hlbHBl
cjo6UGFyc2VTZXBlcmF0ZWRMaXN0KG1fa2V5U3BsaW5lcywgdmFsdWUuc3RyaW5nKCksICc7Jyk7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIEFUVFJfRlJPTToK
LSAgICAgICAgewotICAgICAgICAgICAgbV9mcm9tID0gdmFsdWUuc3RyaW5nKCk7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIEFUVFJfVE86Ci0gICAgICAgIHsK
LSAgICAgICAgICAgIG1fdG8gPSB2YWx1ZS5zdHJpbmcoKTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICB9Ci0gICAgICAgIGNhc2UgQVRUUl9CWToKLSAgICAgICAgewotICAgICAgICAgICAg
bV9ieSA9IHZhbHVlLnN0cmluZygpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAg
ICAgICAgY2FzZSBBVFRSX0FERElUSVZFOgotICAgICAgICB7Ci0gICAgICAgICAgICBpZih2YWx1
ZSA9PSAic3VtIikKLSAgICAgICAgICAgICAgICBtX2FkZGl0aXZlID0gQURESVRJVkVfU1VNOwot
ICAgICAgICAgICAgZWxzZSBpZih2YWx1ZSA9PSAicmVwbGFjZSIpCi0gICAgICAgICAgICAgICAg
bV9hZGRpdGl2ZSA9IEFERElUSVZFX1JFUExBQ0U7Ci0gICAgICAgICAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgQVRUUl9BQ0NVTVVM
QVRFOgotICAgICAgICB7Ci0gICAgICAgICAgICBpZih2YWx1ZSA9PSAic3VtIikKLSAgICAgICAg
ICAgICAgICBtX2FjY3VtdWxhdGUgPSBBQ0NVTVVMQVRFX1NVTTsKLSAgICAgICAgICAgIGVsc2Ug
aWYodmFsdWUgPT0gIm5vbmUiKQotICAgICAgICAgICAgICAgIG1fYWNjdW11bGF0ZSA9IEFDQ1VN
VUxBVEVfTk9ORTsKLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgewotICAgICAgICAgICAgaWYo
U1ZHVGVzdHNJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOwotICAgICAgICAgICAg
aWYoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIp
KSByZXR1cm47Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIFNWR0VsZW1lbnRJbXBsOjpwYXJz
ZUF0dHJpYnV0ZShhdHRyKTsKLSAgICAgICAgfQotICAgIH07CisgICAgICAgIHRlbXAtPmRlcmVm
KCk7CisgICAgfQorICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6ZHVyQXR0
cikKKyAgICB7CisgICAgICAgIG1fc2ltcGxlRHVyYXRpb24gPSBwYXJzZUNsb2NrVmFsdWUodmFs
dWUucXN0cmluZygpKTsKKyAgICAgICAgaWYoIWlzSW5kZWZpbml0ZShtX3NpbXBsZUR1cmF0aW9u
KSkKKyAgICAgICAgICAgIG1fc2ltcGxlRHVyYXRpb24gKj0gMTAwMC4wOworICAgIH0KKyAgICBl
bHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6Om1pbkF0dHIpCisgICAgeworICAgICAg
ICBtX21pbiA9IHBhcnNlQ2xvY2tWYWx1ZSh2YWx1ZS5xc3RyaW5nKCkpOworICAgICAgICBpZigh
aXNJbmRlZmluaXRlKG1fbWluKSkKKyAgICAgICAgICAgIG1fbWluICo9IDEwMDAuMDsKKyAgICB9
CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjptYXhBdHRyKQorICAgIHsK
KyAgICAgICAgbV9tYXggPSBwYXJzZUNsb2NrVmFsdWUodmFsdWUucXN0cmluZygpKTsKKyAgICAg
ICAgaWYoIWlzSW5kZWZpbml0ZShtX21heCkpCisgICAgICAgICAgICBtX21heCAqPSAxMDAwLjA7
CisgICAgfQorICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6cmVzdGFydEF0
dHIpCisgICAgeworICAgICAgICBpZih2YWx1ZSA9PSAid2hlbk5vdEFjdGl2ZSIpCisgICAgICAg
ICAgICBtX3Jlc3RhcnQgPSBSRVNUQVJUX1dIRU5OT1RBQ1RJVkU7CisgICAgICAgIGVsc2UgaWYo
dmFsdWUgPT0gIm5ldmVyIikKKyAgICAgICAgICAgIG1fcmVzdGFydCA9IFJFU1RBUlRfTkVWRVI7
CisgICAgICAgIGVsc2UgaWYodmFsdWUgPT0gImFsd2F5cyIpCisgICAgICAgICAgICBtX3Jlc3Rh
cnQgPSBSRVNUQVJUX0FMV0FZUzsKKyAgICB9CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09
IFNWR05hbWVzOjpyZXBlYXRjb3VudEF0dHIpCisgICAgeworICAgICAgICBpZih2YWx1ZSA9PSAi
aW5kZWZpbml0ZSIpCisgICAgICAgICAgICBtX3JlcGVhdENvdW50ID0gREJMX01BWDsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgbV9yZXBlYXRDb3VudCA9IHZhbHVlLnFzdHJpbmcoKS50b0Rv
dWJsZSgpOworICAgIH0KKyAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnJl
cGVhdGR1ckF0dHIpCisgICAgICAgIG1fcmVwZWF0RHVyID0gdmFsdWUucXN0cmluZygpOworICAg
IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6ZmlsbEF0dHIpCisgICAgeworICAg
ICAgICBpZih2YWx1ZSA9PSAiZnJlZXplIikKKyAgICAgICAgICAgIG1fZmlsbCA9IEZJTExfRlJF
RVpFOworICAgICAgICBlbHNlIGlmKHZhbHVlID09ICJyZW1vdmUiKQorICAgICAgICAgICAgbV9m
aWxsID0gRklMTF9SRU1PVkU7CisgICAgfQorICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBT
VkdOYW1lczo6Y2FsY21vZGVBdHRyKQorICAgIHsKKyAgICAgICAgaWYodmFsdWUgPT0gImRpc2Ny
ZXRlIikKKyAgICAgICAgICAgIG1fY2FsY01vZGUgPSBDQUxDTU9ERV9ESVNDUkVURTsKKyAgICAg
ICAgZWxzZSBpZih2YWx1ZSA9PSAibGluZWFyIikKKyAgICAgICAgICAgIG1fY2FsY01vZGUgPSBD
QUxDTU9ERV9MSU5FQVI7CisgICAgICAgIGVsc2UgaWYodmFsdWUgPT0gInNwbGluZSIpCisgICAg
ICAgICAgICBtX2NhbGNNb2RlID0gQ0FMQ01PREVfU1BMSU5FOworICAgICAgICBlbHNlIGlmKHZh
bHVlID09ICJwYWNlZCIpCisgICAgICAgICAgICBtX2NhbGNNb2RlID0gQ0FMQ01PREVfUEFDRUQ7
CisgICAgfQorICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6dmFsdWVzQXR0
cikKKyAgICB7CisgICAgICAgIGlmKG1fdmFsdWVzKQorICAgICAgICAgICAgbV92YWx1ZXMtPmRl
cmVmKCk7CisKKyAgICAgICAgbV92YWx1ZXMgPSBuZXcgU1ZHU3RyaW5nTGlzdEltcGwoKTsKKyAg
ICAgICAgbV92YWx1ZXMtPnJlZigpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgU1ZH
SGVscGVyOjpQYXJzZVNlcGVyYXRlZExpc3QobV92YWx1ZXMsIHZhbHVlLnFzdHJpbmcoKSwgJzsn
KTsKKyAgICB9CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjprZXl0aW1l
c0F0dHIpCisgICAgeworICAgICAgICBpZihtX2tleVRpbWVzKQorICAgICAgICAgICAgbV9rZXlU
aW1lcy0+ZGVyZWYoKTsKKworICAgICAgICBtX2tleVRpbWVzID0gbmV3IFNWR1N0cmluZ0xpc3RJ
bXBsKCk7CisgICAgICAgIG1fa2V5VGltZXMtPnJlZigpOworICAgICAgICAgICAgICAgICAgICAK
KyAgICAgICAgU1ZHSGVscGVyOjpQYXJzZVNlcGVyYXRlZExpc3QobV9rZXlUaW1lcywgdmFsdWUu
cXN0cmluZygpLCAnOycpOworICAgIH0KKyAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZH
TmFtZXM6OmtleXNwbGluZXNBdHRyKQorICAgIHsKKyAgICAgICAgaWYobV9rZXlTcGxpbmVzKQor
ICAgICAgICAgICAgbV9rZXlTcGxpbmVzLT5kZXJlZigpOworCisgICAgICAgIG1fa2V5U3BsaW5l
cyA9IG5ldyBTVkdTdHJpbmdMaXN0SW1wbCgpOworICAgICAgICBtX2tleVNwbGluZXMtPnJlZigp
OworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgU1ZHSGVscGVyOjpQYXJzZVNlcGVyYXRl
ZExpc3QobV9rZXlTcGxpbmVzLCB2YWx1ZS5xc3RyaW5nKCksICc7Jyk7CisgICAgfQorICAgIGVs
c2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6ZnJvbUF0dHIpCisgICAgICAgIG1fZnJv
bSA9IHZhbHVlLnFzdHJpbmcoKTsKKyAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFt
ZXM6OnRvQXR0cikKKyAgICAgICAgbV90byA9IHZhbHVlLnFzdHJpbmcoKTsKKyAgICBlbHNlIGlm
IChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OmJ5QXR0cikKKyAgICAgICAgbV9ieSA9IHZhbHVl
LnFzdHJpbmcoKTsKKyAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OmFkZGl0
aXZlQXR0cikKKyAgICB7CisgICAgICAgIGlmKHZhbHVlID09ICJzdW0iKQorICAgICAgICAgICAg
bV9hZGRpdGl2ZSA9IEFERElUSVZFX1NVTTsKKyAgICAgICAgZWxzZSBpZih2YWx1ZSA9PSAicmVw
bGFjZSIpCisgICAgICAgICAgICBtX2FkZGl0aXZlID0gQURESVRJVkVfUkVQTEFDRTsKKyAgICB9
CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjphY2N1bXVsYXRlQXR0cikK
KyAgICB7CisgICAgICAgIGlmKHZhbHVlID09ICJzdW0iKQorICAgICAgICAgICAgbV9hY2N1bXVs
YXRlID0gQUNDVU1VTEFURV9TVU07CisgICAgICAgIGVsc2UgaWYodmFsdWUgPT0gIm5vbmUiKQor
ICAgICAgICAgICAgbV9hY2N1bXVsYXRlID0gQUNDVU1VTEFURV9OT05FOworICAgIH0KKyAgICBl
bHNlCisgICAgeworICAgICAgICBpZihTVkdUZXN0c0ltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIp
KSByZXR1cm47CisgICAgICAgIGlmKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsOjpw
YXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgU1ZHRWxlbWVu
dEltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpOworICAgIH0KIH0KIAogZG91YmxlIFNWR0FuaW1h
dGlvbkVsZW1lbnRJbXBsOjpwYXJzZUNsb2NrVmFsdWUoY29uc3QgUVN0cmluZyAmZGF0YSkgY29u
c3QKQEAgLTQ4Myw3ICs0MzUsNyBAQCBkb3VibGUgU1ZHQW5pbWF0aW9uRWxlbWVudEltcGw6OnBh
cnNlQ2xvCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBTVkdBbmltYXRpb25FbGVtZW50
SW1wbDo6Y2xvc2UoKQordm9pZCBTVkdBbmltYXRpb25FbGVtZW50SW1wbDo6Y2xvc2VSZW5kZXJl
cigpCiB7CiAgICAga2REZWJ1ZygpIDw8ICIgLS0+IEFERElORyAiIDw8IEtET006OkRPTVN0cmlu
Zyhsb2NhbE5hbWUoKSkgPDwgIiBhbmltYXRpb24gKHN0YXJ0VGltZSA9ICIgPDwgZ2V0U3RhcnRU
aW1lKCkgPDwgIiBtcykgdG8gc2NoZWR1bGVyISIgPDwgZW5kbDsKICAgICBTVkdEb2N1bWVudElt
cGwgKmRvY3VtZW50ID0gc3RhdGljX2Nhc3Q8U1ZHRG9jdW1lbnRJbXBsICo+KG93bmVyRG9jdW1l
bnQoKSk7CkBAIC00OTMsMTAgKzQ0NSwxMCBAQCB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnRJbXBs
OjpjbG9zZSgpCiAgICAgZG9jdW1lbnQtPnRpbWVTY2hlZHVsZXIoKS0+YWRkVGltZXIodGhpcywg
cVJvdW5kKGdldFN0YXJ0VGltZSgpKSk7CiB9CiAKLUtET006OkRPTVN0cmluZ0ltcGwgKlNWR0Fu
aW1hdGlvbkVsZW1lbnRJbXBsOjp0YXJnZXRBdHRyaWJ1dGUoKSBjb25zdAorS0RPTTo6RE9NU3Ry
aW5nIFNWR0FuaW1hdGlvbkVsZW1lbnRJbXBsOjp0YXJnZXRBdHRyaWJ1dGUoKSBjb25zdAogewog
ICAgIGlmKCF0YXJnZXRFbGVtZW50KCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1
cm4gS0RPTTo6RE9NU3RyaW5nKCk7CiAgICAgCiAgICAgU1ZHRWxlbWVudEltcGwgKnRhcmdldCA9
IHRhcmdldEVsZW1lbnQoKTsKICAgICBTVkdTdHlsZWRFbGVtZW50SW1wbCAqc3R5bGVkID0gTlVM
TDsKQEAgLTUwNCw3ICs0NTYsNyBAQCBLRE9NOjpET01TdHJpbmdJbXBsICpTVkdBbmltYXRpb25F
bGVtZW50CiAgICAgICAgIHN0eWxlZCA9IHN0YXRpY19jYXN0PFNWR1N0eWxlZEVsZW1lbnRJbXBs
ICo+KHRhcmdldCk7CiAgICAgS0RPTTo6Q0RGSW50ZXJmYWNlICppbnRlcmZhY2UgPSAoc3R5bGVk
ID8gc3R5bGVkLT5vd25lckRvY3VtZW50KCktPmltcGxlbWVudGF0aW9uKCktPmNkZkludGVyZmFj
ZSgpIDogMCk7CiAgICAgCi0gICAgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcmV0ID0gMDsKKyAgICBL
RE9NOjpET01TdHJpbmcgcmV0OwogCiAgICAgRUF0dHJpYnV0ZVR5cGUgYXR0cmlidXRlVHlwZSA9
IG1fYXR0cmlidXRlVHlwZTsKICAgICBpZihhdHRyaWJ1dGVUeXBlID09IEFUVFJJQlVURVRZUEVf
QVVUTykKQEAgLTUzMiwyMSArNDg0LDIyIEBAIEtET006OkRPTVN0cmluZ0ltcGwgKlNWR0FuaW1h
dGlvbkVsZW1lbnQKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmKGF0dHJpYnV0ZVR5cGUgPT0g
QVRUUklCVVRFVFlQRV9YTUwgfHwgKCFyZXQgfHwgKHJldCAmJiByZXQtPmlzRW1wdHkoKSkpKQot
ICAgICAgICByZXQgPSB0YXJnZXRFbGVtZW50KCktPmdldEF0dHJpYnV0ZShLRE9NOjpET01TdHJp
bmcobV9hdHRyaWJ1dGVOYW1lKS5oYW5kbGUoKSk7CisgICAgaWYoYXR0cmlidXRlVHlwZSA9PSBB
VFRSSUJVVEVUWVBFX1hNTCB8fCByZXQuaXNFbXB0eSgpKQorICAgICAgICByZXQgPSB0YXJnZXRF
bGVtZW50KCktPmdldEF0dHJpYnV0ZShLRE9NOjpET01TdHJpbmcobV9hdHRyaWJ1dGVOYW1lKS5p
bXBsKCkpOwogCiAgICAgcmV0dXJuIHJldDsKIH0KIAogdm9pZCBTVkdBbmltYXRpb25FbGVtZW50
SW1wbDo6c2V0VGFyZ2V0QXR0cmlidXRlKEtET006OkRPTVN0cmluZ0ltcGwgKnZhbHVlKQogewot
ICAgIFNWR0FuaW1hdGlvbkVsZW1lbnRJbXBsOjpzZXRUYXJnZXRBdHRyaWJ1dGUodGFyZ2V0RWxl
bWVudCgpLCBLRE9NOjpET01TdHJpbmcobV9hdHRyaWJ1dGVOYW1lKS5oYW5kbGUoKSwgdmFsdWUs
IG1fYXR0cmlidXRlVHlwZSk7CisgICAgU1ZHQW5pbWF0aW9uRWxlbWVudEltcGw6OnNldFRhcmdl
dEF0dHJpYnV0ZSh0YXJnZXRFbGVtZW50KCksIEtET006OkRPTVN0cmluZyhtX2F0dHJpYnV0ZU5h
bWUpLmltcGwoKSwgdmFsdWUsIG1fYXR0cmlidXRlVHlwZSk7CiB9CiAKLXZvaWQgU1ZHQW5pbWF0
aW9uRWxlbWVudEltcGw6OnNldFRhcmdldEF0dHJpYnV0ZShTVkdFbGVtZW50SW1wbCAqdGFyZ2V0
LCBLRE9NOjpET01TdHJpbmdJbXBsICpuYW1lLCBLRE9NOjpET01TdHJpbmdJbXBsICp2YWx1ZSwg
RUF0dHJpYnV0ZVR5cGUgdHlwZSkKK3ZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudEltcGw6OnNldFRh
cmdldEF0dHJpYnV0ZShTVkdFbGVtZW50SW1wbCAqdGFyZ2V0LCBLRE9NOjpET01TdHJpbmdJbXBs
ICpuYW1lSW1wbCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqdmFsdWUsIEVBdHRyaWJ1dGVUeXBlIHR5
cGUpCiB7Ci0gICAgaWYoIXRhcmdldCB8fCAhbmFtZSB8fCAhdmFsdWUpCisgICAgaWYoIXRhcmdl
dCB8fCAhbmFtZUltcGwgfHwgIXZhbHVlKQogICAgICAgICByZXR1cm47CisgICAgS0RPTTo6RE9N
U3RyaW5nIG5hbWUobmFtZUltcGwpOwogICAgIAogICAgIFNWR1N0eWxlZEVsZW1lbnRJbXBsICpz
dHlsZWQgPSBOVUxMOwogICAgIGlmICh0YXJnZXQgJiYgdGFyZ2V0LT5pc1N0eWxlZCgpKQpAQCAt
NTY0LDE5ICs1MTcsMjEgQEAgdm9pZCBTVkdBbmltYXRpb25FbGVtZW50SW1wbDo6c2V0VGFyZ2V0
QQogICAgICAgICAvLyBzZWFyY2ggdGhlIGRlZmF1bHQgWE1MIG5hbWVzcGFjZSBmb3IgdGhlIGVs
ZW1lbnQuCiAgICAgICAgIGlmKHN0eWxlZCAmJiBzdHlsZWQtPnN0eWxlKCkpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIGludCBpZCA9IGludGVyZmFjZS0+Z2V0UHJvcGVydHlJRChuYW1lLT5zdHJp
bmcoKS5hc2NpaSgpLCBuYW1lLT5zdHJpbmcoKS5sZW5ndGgoKSk7CisgICAgICAgICAgICBRU3Ry
aW5nIGF0dHJOYW1lID0gbmFtZS5xc3RyaW5nKCk7CisgICAgICAgICAgICBpbnQgaWQgPSBpbnRl
cmZhY2UtPmdldFByb3BlcnR5SUQoYXR0ck5hbWUuYXNjaWkoKSwgYXR0ck5hbWUubGVuZ3RoKCkp
OwogICAgICAgICAgICAgaWYoc3R5bGVkLT5zdHlsZSgpLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGlk
KSkKICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVUeXBlID0gQVRUUklCVVRFVFlQRV9DU1M7CiAg
ICAgICAgIH0KICAgICB9Ci0gICAgCisgICAgaW50IGV4Y2VwdGlvbmNvZGU7CiAgICAgaWYoYXR0
cmlidXRlVHlwZSA9PSBBVFRSSUJVVEVUWVBFX0NTUyAmJiBzdHlsZWQgJiYgc3R5bGVkLT5zdHls
ZSgpKQogICAgIHsKLSAgICAgICAgaW50IGlkID0gaW50ZXJmYWNlLT5nZXRQcm9wZXJ0eUlEKG5h
bWUtPnN0cmluZygpLmFzY2lpKCksIG5hbWUtPnN0cmluZygpLmxlbmd0aCgpKTsKLSAgICAgICAg
c3R5bGVkLT5zdHlsZSgpLT5zZXRQcm9wZXJ0eShpZCwgdmFsdWUpOworICAgICAgICBRU3RyaW5n
IGF0dHJOYW1lID0gbmFtZS5xc3RyaW5nKCk7CisgICAgICAgIGludCBpZCA9IGludGVyZmFjZS0+
Z2V0UHJvcGVydHlJRChhdHRyTmFtZS5hc2NpaSgpLCBhdHRyTmFtZS5sZW5ndGgoKSk7CisgICAg
ICAgIHN0eWxlZC0+c3R5bGUoKS0+c2V0UHJvcGVydHkoaWQsIHZhbHVlLCBleGNlcHRpb25jb2Rl
KTsKICAgICB9CiAgICAgZWxzZSBpZihhdHRyaWJ1dGVUeXBlID09IEFUVFJJQlVURVRZUEVfWE1M
KQotICAgICAgICB0YXJnZXQtPnNldEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIHRh
cmdldC0+c2V0QXR0cmlidXRlKG5hbWVJbXBsLCB2YWx1ZSwgZXhjZXB0aW9uY29kZSk7CiB9CiAK
IFFTdHJpbmcgU1ZHQW5pbWF0aW9uRWxlbWVudEltcGw6OmF0dHJpYnV0ZU5hbWUoKSBjb25zdApJ
bmRleDoga3N2ZzIvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnRJbXBsLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg
ZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnRJ
bXBsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNQpkaWZmIC1wIC11IC1yMS41IGtzdmcyL3N2
Zy9TVkdBbmltYXRpb25FbGVtZW50SW1wbC5oCi0tLSBrc3ZnMi9zdmcvU1ZHQW5pbWF0aW9uRWxl
bWVudEltcGwuaAk4IFNlcCAyMDA1IDA4OjAzOjM0IC0wMDAwCTEuNQorKysga3N2ZzIvc3ZnL1NW
R0FuaW1hdGlvbkVsZW1lbnRJbXBsLmgJMSBOb3YgMjAwNSAxMToxMzoxMSAtMDAwMApAQCAtODUs
NyArODUsNyBAQCBuYW1lc3BhY2UgS1NWRwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsCiAgICAgewogICAg
IHB1YmxpYzoKLSAgICAgICAgU1ZHQW5pbWF0aW9uRWxlbWVudEltcGwoS0RPTTo6RG9jdW1lbnRQ
dHIgKmRvYywgS0RPTTo6Tm9kZUltcGw6OklkIGlkLCBLRE9NOjpET01TdHJpbmdJbXBsICpwcmVm
aXgpOworICAgICAgICBTVkdBbmltYXRpb25FbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudFB0ciAqZG9jKTsKICAgICAgICAgdmlydHVh
bCB+U1ZHQW5pbWF0aW9uRWxlbWVudEltcGwoKTsKIAogICAgICAgICAvLyAnU1ZHQW5pbWF0aW9u
RWxlbWVudCcgZnVuY3Rpb25zCkBAIC05OSwxNCArOTksMTQgQEAgbmFtZXNwYWNlIEtTVkcKICAg
ICAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKEtET006OkF0dHJpYnV0ZUltcGwgKmF0
dHIpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaW1wbGVtZW50c0NhbnZhc0l0ZW0oKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgY2xvc2VSZW5kZXJlcigpOwogCiAgICAgICAgIC8vIEhlbHBlcnMKICAg
ICAgICAgdmlydHVhbCB2b2lkIGhhbmRsZVRpbWVyRXZlbnQoZG91YmxlIHRpbWVQZXJjZW50YWdl
KSA9IDA7CiAKICAgICAgICAgZG91YmxlIHBhcnNlQ2xvY2tWYWx1ZShjb25zdCBRU3RyaW5nICZk
YXRhKSBjb25zdDsKIAotICAgICAgICBLRE9NOjpET01TdHJpbmdJbXBsICp0YXJnZXRBdHRyaWJ1
dGUoKSBjb25zdDsKKyAgICAgICAgS0RPTTo6RE9NU3RyaW5nIHRhcmdldEF0dHJpYnV0ZSgpIGNv
bnN0OwogICAgICAgICB2b2lkIHNldFRhcmdldEF0dHJpYnV0ZShLRE9NOjpET01TdHJpbmdJbXBs
ICp2YWx1ZSk7CiAKICAgICAgICAgc3RhdGljIHZvaWQgc2V0VGFyZ2V0QXR0cmlidXRlKFNWR0Vs
ZW1lbnRJbXBsICp0YXJnZXQsCkluZGV4OiBrc3ZnMi9zdmcvU1ZHQ0RGSW50ZXJmYWNlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiBrc3ZnMi9zdmcvU1ZHQ0RGSW50ZXJmYWNlLmNwcApkaWZmIC1O
IGtzdmcyL3N2Zy9TVkdDREZJbnRlcmZhY2UuY3BwCi0tLSBrc3ZnMi9zdmcvU1ZHQ0RGSW50ZXJm
YWNlLmNwcAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyBrc3ZnMi9zdmcvU1ZHQ0RGSW50
ZXJmYWNlLmNwcAkxIE5vdiAyMDA1IDExOjEzOjExIC0wMDAwCkBAIC0wLDAgKzEsOTMgQEAKKy8q
CisgICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94
QGtkZS5vcmc+CisgICAgICAgICAgICAgICAgICAyMDA0LTIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2Rl
Lm9yZz4KKworICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAorCisgICAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
ICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0g
U3VpdGUgMzMwLAorICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgPGtzdmcyL2VjbWEvR2xvYmFsT2JqZWN0Lmg+CisjaW5j
bHVkZSAiQ0RGSW50ZXJmYWNlLmgiCisjaW5jbHVkZSA8a3N2ZzIvZWNtYS9FY21hSW50ZXJmYWNl
Lmg+CisjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIKKworI2luY2x1ZGUgPGtkb20vY29yZS9k
b21hdHRycy5oPgorI2luY2x1ZGUgPGtkb20vY3NzL2Nzc3ZhbHVlcy5oPgorI2luY2x1ZGUgPGtk
b20vY3NzL2Nzc3Byb3BlcnRpZXMuaD4KKworLy8gVGhlIGF1dG8tZ2VuZXJhdGVkIHBhcnRzCisj
aW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlIDxrc3ZnMi9jc3MvY3NzdmFsdWVzLmg+Cisj
aW5jbHVkZSA8a3N2ZzIvY3NzL2Nzc3Byb3BlcnRpZXMuaD4KKwordXNpbmcgbmFtZXNwYWNlIEtT
Vkc7CisKK0NERkludGVyZmFjZTo6Q0RGSW50ZXJmYWNlKCkKK3sKK30KKworQ0RGSW50ZXJmYWNl
Ojp+Q0RGSW50ZXJmYWNlKCkKK3sKK30KKworY29uc3QgY2hhciAqQ0RGSW50ZXJmYWNlOjpnZXRW
YWx1ZU5hbWUodW5zaWduZWQgc2hvcnQgaWQpIGNvbnN0Cit7CisgICAgaWYoaWQgPiBDU1NfVkFM
X01BWCAmJiBpZCA8PSBTVkdDU1NfVkFMX01BWCkKKyAgICAgICAgcmV0dXJuIEtTVkc6OmdldFZh
bHVlTmFtZShpZCAtIENTU19WQUxfTUFYKTsKKyAgICAKKyAgICByZXR1cm4gS0RPTTo6Q0RGSW50
ZXJmYWNlOjpnZXRWYWx1ZU5hbWUoaWQpOworfQorCitjb25zdCBjaGFyICpDREZJbnRlcmZhY2U6
OmdldFByb3BlcnR5TmFtZSh1bnNpZ25lZCBzaG9ydCBpZCkgY29uc3QKK3sKKyAgICBpZihpZCA+
IENTU19QUk9QX01BWCAmJiBpZCA8PSBTVkdDU1NfUFJPUF9NQVgpCisgICAgICAgIHJldHVybiBL
U1ZHOjpnZXRQcm9wZXJ0eU5hbWUoaWQgLSBDU1NfUFJPUF9NQVgpOworCisgICAgcmV0dXJuIEtE
T006OkNERkludGVyZmFjZTo6Z2V0UHJvcGVydHlOYW1lKGlkKTsKK30KKyAgICAgICAgCitpbnQg
Q0RGSW50ZXJmYWNlOjpnZXRWYWx1ZUlEKGNvbnN0IGNoYXIgKnZhbFN0ciwgaW50IGxlbikgY29u
c3QKK3sKKyAgICBpbnQgcmV0ID0gS1NWRzo6Z2V0VmFsdWVJRCh2YWxTdHIsIGxlbik7CisgICAg
aWYocmV0KQorICAgICAgICByZXR1cm4gcmV0OworCisgICAgcmV0dXJuIEtET006OkNERkludGVy
ZmFjZTo6Z2V0VmFsdWVJRCh2YWxTdHIsIGxlbik7Cit9CisKK2ludCBDREZJbnRlcmZhY2U6Omdl
dFByb3BlcnR5SUQoY29uc3QgY2hhciAqcHJvcFN0ciwgaW50IGxlbikgY29uc3QKK3sKKyAgICBp
bnQgcmV0ID0gS1NWRzo6Z2V0UHJvcGVydHlJRChwcm9wU3RyLCBsZW4pOworICAgIGlmKHJldCkK
KyAgICAgICAgcmV0dXJuIHJldDsKKworICAgIHJldHVybiBLRE9NOjpDREZJbnRlcmZhY2U6Omdl
dFByb3BlcnR5SUQocHJvcFN0ciwgbGVuKTsKK30KKworS0RPTTo6UmVuZGVyU3R5bGUgKkNERklu
dGVyZmFjZTo6cmVuZGVyU3R5bGUoKSBjb25zdAoreworICAgIHJldHVybiBuZXcgS1NWRzo6U1ZH
UmVuZGVyU3R5bGUoKTsKK30KKworI2lmIDAKK0tET006Okdsb2JhbE9iamVjdCAqQ0RGSW50ZXJm
YWNlOjpnbG9iYWxPYmplY3QoS0RPTTo6RG9jdW1lbnRJbXBsICpkb2MpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG5ldyBLU1ZHOjpHbG9iYWxPYmplY3QoZG9jKTsKK30KKyNlbmRpZgorLy8gdmltOnRz
PTQ6bm9ldApJbmRleDoga3N2ZzIvc3ZnL1NWR0NpcmNsZUVsZW1lbnRJbXBsLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHQ2lyY2xlRWxl
bWVudEltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjYKZGlmZiAtcCAtdSAtcjEuNiBr
c3ZnMi9zdmcvU1ZHQ2lyY2xlRWxlbWVudEltcGwuY3BwCi0tLSBrc3ZnMi9zdmcvU1ZHQ2lyY2xl
RWxlbWVudEltcGwuY3BwCTUgT2N0IDIwMDUgMDU6MzU6MTcgLTAwMDAJMS42CisrKyBrc3ZnMi9z
dmcvU1ZHQ2lyY2xlRWxlbWVudEltcGwuY3BwCTEgTm92IDIwMDUgMTE6MTM6MTEgLTAwMDAKQEAg
LTIzLDcgKzIzLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlIDxrZG9tL2NvcmUv
QXR0ckltcGwuaD4KIAotI2luY2x1ZGUgInN2Z2F0dHJzLmgiCisjaW5jbHVkZSAiU1ZHTmFtZXMu
aCIKICNpbmNsdWRlICJTVkdIZWxwZXIuaCIKICNpbmNsdWRlICJTVkdDaXJjbGVFbGVtZW50SW1w
bC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoSW1wbC5oIgpAQCAtMzMsOCArMzMsOCBA
QAogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIAotU1ZHQ2lyY2xlRWxlbWVudEltcGw6OlNWR0Np
cmNsZUVsZW1lbnRJbXBsKEtET006OkRvY3VtZW50UHRyICpkb2MsIEtET006Ok5vZGVJbXBsOjpJ
ZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHJlZml4KQotOiBTVkdTdHlsZWRFbGVtZW50SW1w
bChkb2MsIGlkLCBwcmVmaXgpLCBTVkdUZXN0c0ltcGwoKSwgU1ZHTGFuZ1NwYWNlSW1wbCgpLCBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1wbCgpLCBTVkdUcmFuc2Zvcm1hYmxlSW1wbCgp
CitTVkdDaXJjbGVFbGVtZW50SW1wbDo6U1ZHQ2lyY2xlRWxlbWVudEltcGwoY29uc3QgS0RPTTo6
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRvYykKKzogU1ZHU3R5
bGVkRWxlbWVudEltcGwodGFnTmFtZSwgZG9jKSwgU1ZHVGVzdHNJbXBsKCksIFNWR0xhbmdTcGFj
ZUltcGwoKSwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwoKSwgU1ZHVHJhbnNmb3Jt
YWJsZUltcGwoKQogewogICAgIG1fY3ggPSBtX2N5ID0gbV9yID0gMDsKIH0KQEAgLTY2LDM1ICs2
NiwyMiBAQCBTVkdBbmltYXRlZExlbmd0aEltcGwgKlNWR0NpcmNsZUVsZW1lbnRJCiAKIHZvaWQg
U1ZHQ2lyY2xlRWxlbWVudEltcGw6OnBhcnNlQXR0cmlidXRlKEtET006OkF0dHJpYnV0ZUltcGwg
KmF0dHIpCiB7Ci0gICAgaW50IGlkID0gKGF0dHItPmlkKCkgJiBOb2RlSW1wbF9JZExvY2FsTWFz
ayk7Ci0gICAgS0RPTTo6RE9NU3RyaW5nSW1wbCAqdmFsdWUgPSBhdHRyLT52YWx1ZSgpOwotICAg
IHN3aXRjaChpZCkKKyAgICBjb25zdCBLRE9NOjpBdG9taWNTdHJpbmcmIHZhbHVlID0gYXR0ci0+
dmFsdWUoKTsKKyAgICBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjpjeEF0dHIpCisgICAg
ICAgIGN4KCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZS5pbXBsKCkpOworICAg
IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6Y3lBdHRyKQorICAgICAgICBjeSgp
LT5iYXNlVmFsKCktPnNldFZhbHVlQXNTdHJpbmcodmFsdWUuaW1wbCgpKTsKKyAgICBlbHNlIGlm
IChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnJBdHRyKQorICAgICAgICByKCktPmJhc2VWYWwo
KS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZS5pbXBsKCkpOworICAgIGVsc2UKICAgICB7Ci0gICAg
ICAgIGNhc2UgQVRUUl9DWDoKLSAgICAgICAgewotICAgICAgICAgICAgY3goKS0+YmFzZVZhbCgp
LT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9
Ci0gICAgICAgIGNhc2UgQVRUUl9DWToKLSAgICAgICAgewotICAgICAgICAgICAgY3koKS0+YmFz
ZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICB9Ci0gICAgICAgIGNhc2UgQVRUUl9SOgotICAgICAgICB7Ci0gICAgICAgICAgICByKCkt
PmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgfQotICAgICAgICBkZWZhdWx0OgotICAgICAgICB7Ci0gICAgICAgICAgICBpZihT
VkdUZXN0c0ltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47Ci0gICAgICAgICAgICBp
ZihTVkdMYW5nU3BhY2VJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOwotICAgICAg
ICAgICAgaWYoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGw6OnBhcnNlQXR0cmlidXRl
KGF0dHIpKSByZXR1cm47Ci0gICAgICAgICAgICBpZihTVkdUcmFuc2Zvcm1hYmxlSW1wbDo6cGFy
c2VBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgU1ZH
U3R5bGVkRWxlbWVudEltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpOwotICAgICAgICB9Ci0gICAg
fTsKKyAgICAgICAgaWYoU1ZHVGVzdHNJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJu
OworICAgICAgICBpZihTVkdMYW5nU3BhY2VJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0
dXJuOworICAgICAgICBpZihTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1wbDo6cGFyc2VB
dHRyaWJ1dGUoYXR0cikpIHJldHVybjsKKyAgICAgICAgaWYoU1ZHVHJhbnNmb3JtYWJsZUltcGw6
OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47CisgICAgICAgIAorICAgICAgICBTVkdTdHls
ZWRFbGVtZW50SW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cik7CisgICAgfQogfQogCiBLQ1BhdGhE
YXRhTGlzdCBTVkdDaXJjbGVFbGVtZW50SW1wbDo6dG9QYXRoRGF0YSgpIGNvbnN0CkluZGV4OiBr
c3ZnMi9zdmcvU1ZHQ2lyY2xlRWxlbWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHQ2lyY2xlRWxlbWVudEltcGwuaCx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS40CmRpZmYgLXAgLXUgLXIxLjQga3N2ZzIvc3ZnL1NWR0NpcmNsZUVs
ZW1lbnRJbXBsLmgKLS0tIGtzdmcyL3N2Zy9TVkdDaXJjbGVFbGVtZW50SW1wbC5oCTEgU2VwIDIw
MDUgMDc6MzU6MzUgLTAwMDAJMS40CisrKyBrc3ZnMi9zdmcvU1ZHQ2lyY2xlRWxlbWVudEltcGwu
aAkxIE5vdiAyMDA1IDExOjEzOjExIC0wMDAwCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBL
U1ZHCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHVHJhbnNmb3Jt
YWJsZUltcGwKICAgICB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdDaXJjbGVFbGVtZW50SW1w
bChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRP
TVN0cmluZ0ltcGwgKnByZWZpeCk7CisgICAgICAgIFNWR0NpcmNsZUVsZW1lbnRJbXBsKGNvbnN0
IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50UHRyICpkb2MpOwog
ICAgICAgICB2aXJ0dWFsIH5TVkdDaXJjbGVFbGVtZW50SW1wbCgpOwogCiAgICAgICAgIC8vICdT
VkdDaXJjbGVFbGVtZW50JyBmdW5jdGlvbnMKSW5kZXg6IGtzdmcyL3N2Zy9TVkdDbGlwUGF0aEVs
ZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9r
c3ZnMi9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50SW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuNgpkaWZmIC1wIC11IC1yMS42IGtzdmcyL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnRJbXBsLmNw
cAotLS0ga3N2ZzIvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudEltcGwuY3BwCTUgT2N0IDIwMDUgMDU6
MzU6MTcgLTAwMDAJMS42CisrKyBrc3ZnMi9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50SW1wbC5jcHAJ
MSBOb3YgMjAwNSAxMToxMzoxMSAtMDAwMApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPGtj
YW52YXMvZGV2aWNlL0tSZW5kZXJpbmdEZXZpY2UuaD4KIAogI2luY2x1ZGUgImtzdmcuaCIKLSNp
bmNsdWRlICJzdmdhdHRycy5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZH
SGVscGVyLmgiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJTVkdEb2N1
bWVudEltcGwuaCIKQEAgLTM4LDggKzM4LDggQEAKIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAK
LVNWR0NsaXBQYXRoRWxlbWVudEltcGw6OlNWR0NsaXBQYXRoRWxlbWVudEltcGwoS0RPTTo6RG9j
dW1lbnRQdHIgKmRvYywgS0RPTTo6Tm9kZUltcGw6OklkIGlkLCBLRE9NOjpET01TdHJpbmdJbXBs
ICpwcmVmaXgpCi06IFNWR1N0eWxlZEVsZW1lbnRJbXBsKGRvYywgaWQsIHByZWZpeCksIFNWR1Rl
c3RzSW1wbCgpLCBTVkdMYW5nU3BhY2VJbXBsKCksIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWRJbXBsKCksIFNWR1RyYW5zZm9ybWFibGVJbXBsKCkKK1NWR0NsaXBQYXRoRWxlbWVudEltcGw6
OlNWR0NsaXBQYXRoRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRvYykKKzogU1ZHU3R5bGVkRWxlbWVudEltcGwodGFnTmFt
ZSwgZG9jKSwgU1ZHVGVzdHNJbXBsKCksIFNWR0xhbmdTcGFjZUltcGwoKSwgU1ZHRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZEltcGwoKSwgU1ZHVHJhbnNmb3JtYWJsZUltcGwoKQogewogICAgIG1f
Y2xpcFBhdGhVbml0cyA9IDA7CiAgICAgbV9jbGlwcGVyID0gMDsKQEAgLTY0LDMxICs2NCwyNiBA
QCBTVkdBbmltYXRlZEVudW1lcmF0aW9uSW1wbCAqU1ZHQ2xpcFBhdGhFCiAKIHZvaWQgU1ZHQ2xp
cFBhdGhFbGVtZW50SW1wbDo6cGFyc2VBdHRyaWJ1dGUoS0RPTTo6QXR0cmlidXRlSW1wbCAqYXR0
cikKIHsKLSAgICBpbnQgaWQgPSAoYXR0ci0+aWQoKSAmIE5vZGVJbXBsX0lkTG9jYWxNYXNrKTsK
ICAgICBLRE9NOjpET01TdHJpbmcgdmFsdWUoYXR0ci0+dmFsdWUoKSk7Ci0gICAgc3dpdGNoKGlk
KQorICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OmNsaXBwYXRodW5pdHNBdHRyKQog
ICAgIHsKLSAgICAgICAgY2FzZSBBVFRSX0NMSVBQQVRIVU5JVFM6Ci0gICAgICAgIHsKLSAgICAg
ICAgICAgIGlmKHZhbHVlID09ICJ1c2VyU3BhY2VPblVzZSIpCi0gICAgICAgICAgICAgICAgY2xp
cFBhdGhVbml0cygpLT5zZXRCYXNlVmFsKFNWR19VTklUX1RZUEVfVVNFUlNQQUNFT05VU0UpOwot
ICAgICAgICAgICAgZWxzZSBpZih2YWx1ZSA9PSAib2JqZWN0Qm91bmRpbmdCb3giKQotICAgICAg
ICAgICAgICAgIGNsaXBQYXRoVW5pdHMoKS0+c2V0QmFzZVZhbChTVkdfVU5JVF9UWVBFX09CSkVD
VEJPVU5ESU5HQk9YKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGRl
ZmF1bHQ6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlmKFNWR1Rlc3RzSW1wbDo6cGFyc2VBdHRy
aWJ1dGUoYXR0cikpIHJldHVybjsKLSAgICAgICAgICAgIGlmKFNWR0xhbmdTcGFjZUltcGw6OnBh
cnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47Ci0gICAgICAgICAgICBpZihTVkdFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsKLSAgICAg
ICAgICAgIGlmKFNWR1RyYW5zZm9ybWFibGVJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0
dXJuOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBTVkdTdHlsZWRFbGVtZW50SW1wbDo6cGFy
c2VBdHRyaWJ1dGUoYXR0cik7Ci0gICAgICAgIH0KLSAgICB9OworICAgICAgICBpZih2YWx1ZSA9
PSAidXNlclNwYWNlT25Vc2UiKQorICAgICAgICAgICAgY2xpcFBhdGhVbml0cygpLT5zZXRCYXNl
VmFsKFNWR19VTklUX1RZUEVfVVNFUlNQQUNFT05VU0UpOworICAgICAgICBlbHNlIGlmKHZhbHVl
ID09ICJvYmplY3RCb3VuZGluZ0JveCIpCisgICAgICAgICAgICBjbGlwUGF0aFVuaXRzKCktPnNl
dEJhc2VWYWwoU1ZHX1VOSVRfVFlQRV9PQkpFQ1RCT1VORElOR0JPWCk7CisgICAgfQorICAgZWxz
ZQorICAgIHsKKyAgICAgICAgaWYoU1ZHVGVzdHNJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkg
cmV0dXJuOworICAgICAgICBpZihTVkdMYW5nU3BhY2VJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRy
KSkgcmV0dXJuOworICAgICAgICBpZihTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1wbDo6
cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsKKyAgICAgICAgaWYoU1ZHVHJhbnNmb3JtYWJs
ZUltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47CisgICAgICAgIAorICAgICAgICBT
VkdTdHlsZWRFbGVtZW50SW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cik7CisgICAgfQogfQogCi12
b2lkIFNWR0NsaXBQYXRoRWxlbWVudEltcGw6OmNsb3NlKCkKK3ZvaWQgU1ZHQ2xpcFBhdGhFbGVt
ZW50SW1wbDo6Y2xvc2VSZW5kZXJlcigpCiB7CiAgICAgaWYoIW1fY2xpcHBlcikKICAgICB7CkBA
IC05OCw3ICs5Myw3IEBAIHZvaWQgU1ZHQ2xpcFBhdGhFbGVtZW50SW1wbDo6Y2xvc2UoKQogICAg
ICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIG1fY2xpcHBlciA9IHN0YXRpY19jYXN0PEtDYW52
YXNDbGlwcGVyICo+KGNhbnZhcy0+cmVuZGVyaW5nRGV2aWNlKCktPmNyZWF0ZVJlc291cmNlKFJT
X0NMSVBQRVIpKTsKLSAgICAgICAgY2FudmFzLT5yZWdpc3RyeSgpLT5hZGRSZXNvdXJjZUJ5SWQo
S0RPTTo6RE9NU3RyaW5nKGdldElkKCkpLnN0cmluZygpLCBtX2NsaXBwZXIpOworICAgICAgICBj
YW52YXMtPnJlZ2lzdHJ5KCktPmFkZFJlc291cmNlQnlJZChnZXRBdHRyaWJ1dGUoImlkIikucXN0
cmluZygpLCBtX2NsaXBwZXIpOwogICAgIH0KICAgICBlbHNlCiAgICAgICAgIG1fY2xpcHBlci0+
cmVzZXRDbGlwRGF0YSgpOwpJbmRleDoga3N2ZzIvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudEltcGwu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZH
Q2xpcFBhdGhFbGVtZW50SW1wbC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQKZGlmZiAtcCAt
dSAtcjEuNCBrc3ZnMi9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50SW1wbC5oCi0tLSBrc3ZnMi9zdmcv
U1ZHQ2xpcFBhdGhFbGVtZW50SW1wbC5oCTEgU2VwIDIwMDUgMDc6MzU6MzUgLTAwMDAJMS40Cisr
KyBrc3ZnMi9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50SW1wbC5oCTEgTm92IDIwMDUgMTE6MTM6MTEg
LTAwMDAKQEAgLTQxLDExICs0MSwxMSBAQCBuYW1lc3BhY2UgS1NWRwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHVHJhbnNmb3JtYWJsZUltcGwKICAgICB7CiAg
ICAgcHVibGljOgotICAgICAgICBTVkdDbGlwUGF0aEVsZW1lbnRJbXBsKEtET006OkRvY3VtZW50
UHRyICpkb2MsIEtET006Ok5vZGVJbXBsOjpJZCBpZCwgIEtET006OkRPTVN0cmluZ0ltcGwgKnBy
ZWZpeCk7CisgICAgICAgIFNWR0NsaXBQYXRoRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRvYyk7CiAgICAgICAgIHZpcnR1
YWwgflNWR0NsaXBQYXRoRWxlbWVudEltcGwoKTsKIAogICAgICAgICAvLyBEZXJpdmVkIGZyb206
ICdFbGVtZW50SW1wbCcKLSAgICAgICAgdmlydHVhbCB2b2lkIGNsb3NlKCk7CisgICAgICAgIHZp
cnR1YWwgdm9pZCBjbG9zZVJlbmRlcmVyKCk7CiAKICAgICAgICAgLy8gJ1NWR0NsaXBQYXRoRWxl
bWVudCcgZnVuY3Rpb25zCiAgICAgICAgIFNWR0FuaW1hdGVkRW51bWVyYXRpb25JbXBsICpjbGlw
UGF0aFVuaXRzKCkgY29uc3Q7CkluZGV4OiBrc3ZnMi9zdmcvU1ZHQ29sb3JJbXBsLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHQ29sb3JJ
bXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS42CmRpZmYgLXAgLXUgLXIxLjYga3N2ZzIv
c3ZnL1NWR0NvbG9ySW1wbC5jcHAKLS0tIGtzdmcyL3N2Zy9TVkdDb2xvckltcGwuY3BwCTUgT2N0
IDIwMDUgMDU6MzU6MTggLTAwMDAJMS42CisrKyBrc3ZnMi9zdmcvU1ZHQ29sb3JJbXBsLmNwcAkx
IE5vdiAyMDA1IDExOjEzOjEyIC0wMDAwCkBAIC0yMjMsNyArMjIzLDcgQEAgdm9pZCBTVkdDb2xv
ckltcGw6OnNldFJHQkNvbG9yKEtET006OkRPTQogICAgIGlmKCFtX3JnYkNvbG9yKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBRU3RyaW5nIHBhcnNlID0gS0RPTTo6RE9NU3RyaW5nKG1fcmdiQ29s
b3IpLnN0cmluZygpLnN0cmlwV2hpdGVTcGFjZSgpOworICAgIFFTdHJpbmcgcGFyc2UgPSBLRE9N
OjpET01TdHJpbmcobV9yZ2JDb2xvcikucXN0cmluZygpLnN0cmlwV2hpdGVTcGFjZSgpOwogICAg
IGlmKHBhcnNlLnN0YXJ0c1dpdGgoUVN0cmluZzo6ZnJvbUxhdGluMSgicmdiKCIpKSkKICAgICB7
CiAgICAgICAgIFFTdHJpbmdMaXN0IGNvbG9ycyA9IFFTdHJpbmdMaXN0OjpzcGxpdCgnLCcsIHBh
cnNlKTsKQEAgLTI1Myw4ICsyNTMsOCBAQCB2b2lkIFNWR0NvbG9ySW1wbDo6c2V0UkdCQ29sb3Io
S0RPTTo6RE9NCiAgICAgfQogICAgIGVsc2UKICAgICB7Ci0gICAgICAgIFFTdHJpbmcgbmFtZSht
X3JnYkNvbG9yLT51bmljb2RlKCksIG1fcmdiQ29sb3ItPmxlbmd0aCgpKTsKLSAgICAgICAgbmFt
ZSA9IG5hbWUubG93ZXIoKTsKKyAgICAgICAgS0RPTTo6RE9NU3RyaW5nIGNvbG9yTmFtZSA9IG1f
cmdiQ29sb3ItPmxvd2VyKCk7CisgICAgICAgIFFTdHJpbmcgbmFtZSA9IGNvbG9yTmFtZS5xc3Ry
aW5nKCk7CiAgICAgICAgIGludCBjb2wgPSBLU1ZHOjpnZXRWYWx1ZUlEKG5hbWUuYXNjaWkoKSwg
bmFtZS5sZW5ndGgoKSk7CiAgICAgICAgIGlmKGNvbCA9PSAwKQogICAgICAgICAgICAgbV9xQ29s
b3IgPSBRQ29sb3IobmFtZSk7CkBAIC0yNzQsMTIgKzI3NCwxMiBAQCB2b2lkIFNWR0NvbG9ySW1w
bDo6c2V0Q29sb3IodW5zaWduZWQgc2hvCiAgICAgbV9jb2xvclR5cGUgPSBjb2xvclR5cGU7CiB9
CiAKLUtET006OkRPTVN0cmluZ0ltcGwgKlNWR0NvbG9ySW1wbDo6Y3NzVGV4dCgpIGNvbnN0CitL
RE9NOjpET01TdHJpbmcgU1ZHQ29sb3JJbXBsOjpjc3NUZXh0KCkgY29uc3QKIHsKICAgICBpZiht
X2NvbG9yVHlwZSA9PSBTVkdfQ09MT1JUWVBFX1JHQkNPTE9SKQogICAgICAgICByZXR1cm4gbV9y
Z2JDb2xvcjsKIAotICAgIHJldHVybiAwOworICAgIHJldHVybiBLRE9NOjpET01TdHJpbmcoKTsK
IH0KIAogY29uc3QgUUNvbG9yICZTVkdDb2xvckltcGw6OmNvbG9yKCkgY29uc3QKSW5kZXg6IGtz
dmcyL3N2Zy9TVkdDb2xvckltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZH
U3VwcG9ydC9rc3ZnMi9zdmcvU1ZHQ29sb3JJbXBsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
NQpkaWZmIC1wIC11IC1yMS41IGtzdmcyL3N2Zy9TVkdDb2xvckltcGwuaAotLS0ga3N2ZzIvc3Zn
L1NWR0NvbG9ySW1wbC5oCTEgU2VwIDIwMDUgMDk6Mzk6MTQgLTAwMDAJMS41CisrKyBrc3ZnMi9z
dmcvU1ZHQ29sb3JJbXBsLmgJMSBOb3YgMjAwNSAxMToxMzoxMiAtMDAwMApAQCAtNTIsNyArNTIs
NyBAQCBuYW1lc3BhY2UgS1NWRwogICAgICAgICB2b2lkIHNldFJHQkNvbG9ySUNDQ29sb3IoS0RP
TTo6RE9NU3RyaW5nSW1wbCAqcmdiQ29sb3IsIEtET006OkRPTVN0cmluZ0ltcGwgKmljY0NvbG9y
KTsKICAgICAgICAgdm9pZCBzZXRDb2xvcih1bnNpZ25lZCBzaG9ydCBjb2xvclR5cGUsIEtET006
OkRPTVN0cmluZ0ltcGwgKnJnYkNvbG9yLCBLRE9NOjpET01TdHJpbmdJbXBsICppY2NDb2xvcik7
CiAKLSAgICAgICAgdmlydHVhbCBLRE9NOjpET01TdHJpbmdJbXBsICpjc3NUZXh0KCkgY29uc3Q7
CisgICAgICAgIHZpcnR1YWwgS0RPTTo6RE9NU3RyaW5nIGNzc1RleHQoKSBjb25zdDsKIAogICAg
ICAgICAvLyBIZWxwZXJzCiAgICAgICAgIGNvbnN0IFFDb2xvciAmY29sb3IoKSBjb25zdDsKSW5k
ZXg6IGtzdmcyL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudEltcGwuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdD
b21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudEltcGwuY3BwLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjcKZGlmZiAtcCAtdSAtcjEuNyBrc3ZnMi9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJG
dW5jdGlvbkVsZW1lbnRJbXBsLmNwcAotLS0ga3N2ZzIvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVy
RnVuY3Rpb25FbGVtZW50SW1wbC5jcHAJNSBPY3QgMjAwNSAwNTozNToxOCAtMDAwMAkxLjcKKysr
IGtzdmcyL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudEltcGwuY3BwCTEg
Tm92IDIwMDUgMTE6MTM6MTIgLTAwMDAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlIDxrZG9t
L2NvcmUvQXR0ckltcGwuaD4KIAogI2luY2x1ZGUgImtzdmcuaCIKLSNpbmNsdWRlICJzdmdhdHRy
cy5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHSGVscGVyLmgiCiAjaW5j
bHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJTVkdDb21wb25lbnRUcmFuc2ZlckZ1
bmN0aW9uRWxlbWVudEltcGwuaCIKQEAgLTM3LDggKzM3LDggQEAKIAogdXNpbmcgbmFtZXNwYWNl
IEtTVkc7CiAKLVNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50SW1wbDo6U1ZHQ29t
cG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnRJbXBsKEtET006OkRvY3VtZW50UHRyICpkb2Ms
IEtET006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHJlZml4KSA6IAot
U1ZHRWxlbWVudEltcGwoZG9jLCBpZCwgcHJlZml4KQorU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5j
dGlvbkVsZW1lbnRJbXBsOjpTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudEltcGwo
Y29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRv
YykgOiAKK1NWR0VsZW1lbnRJbXBsKHRhZ05hbWUsIGRvYykKIHsKICAgICBtX3R5cGUgPSAwOwog
ICAgIG1fdGFibGVWYWx1ZXMgPSAwOwpAQCAtMTExLDU5ICsxMTEsMzQgQEAgU1ZHQW5pbWF0ZWRO
dW1iZXJJbXBsICpTVkdDb21wb25lbnRUcmFucwogCiB2b2lkIFNWR0NvbXBvbmVudFRyYW5zZmVy
RnVuY3Rpb25FbGVtZW50SW1wbDo6cGFyc2VBdHRyaWJ1dGUoS0RPTTo6QXR0cmlidXRlSW1wbCAq
YXR0cikKIHsKLSAgICBpbnQgaWQgPSAoYXR0ci0+aWQoKSAmIE5vZGVJbXBsX0lkTG9jYWxNYXNr
KTsKICAgICBLRE9NOjpET01TdHJpbmcgdmFsdWUoYXR0ci0+dmFsdWUoKSk7Ci0gICAgc3dpdGNo
KGlkKQorICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnR5cGVBdHRyKQogICAgIHsK
LSAgICAgICAgY2FzZSBBVFRSX1RZUEU6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlmKHZhbHVl
ID09ICJpZGVudGl0eSIpCi0gICAgICAgICAgICAgICAgdHlwZSgpLT5zZXRCYXNlVmFsKFNWR19G
RUNPTVBPTkVOVFRSQU5TRkVSX1RZUEVfSURFTlRJVFkpOwotICAgICAgICAgICAgZWxzZSBpZih2
YWx1ZSA9PSAidGFibGUiKQotICAgICAgICAgICAgICAgIHR5cGUoKS0+c2V0QmFzZVZhbChTVkdf
RkVDT01QT05FTlRUUkFOU0ZFUl9UWVBFX1RBQkxFKTsKLSAgICAgICAgICAgIGVsc2UgaWYodmFs
dWUgPT0gImRpc2NyZXRlIikKLSAgICAgICAgICAgICAgICB0eXBlKCktPnNldEJhc2VWYWwoU1ZH
X0ZFQ09NUE9ORU5UVFJBTlNGRVJfVFlQRV9ESVNDUkVURSk7Ci0gICAgICAgICAgICBlbHNlIGlm
KHZhbHVlID09ICJsaW5lYXIiKQotICAgICAgICAgICAgICAgIHR5cGUoKS0+c2V0QmFzZVZhbChT
VkdfRkVDT01QT05FTlRUUkFOU0ZFUl9UWVBFX0xJTkVBUik7Ci0gICAgICAgICAgICBlbHNlIGlm
KHZhbHVlID09ICJnYW1tYSIpCi0gICAgICAgICAgICAgICAgdHlwZSgpLT5zZXRCYXNlVmFsKFNW
R19GRUNPTVBPTkVOVFRSQU5TRkVSX1RZUEVfR0FNTUEpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIH0KLSAgICAgICAgY2FzZSBBVFRSX1ZBTFVFUzoKLSAgICAgICAgewotICAgICAgICAg
ICAgdGFibGVWYWx1ZXMoKS0+YmFzZVZhbCgpLT5wYXJzZSh2YWx1ZS5zdHJpbmcoKSk7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIEFUVFJfU0xPUEU6Ci0gICAg
ICAgIHsKLSAgICAgICAgICAgIHNsb3BlKCktPnNldEJhc2VWYWwodmFsdWUuc3RyaW5nKCkudG9E
b3VibGUoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIEFU
VFJfSU5URVJDRVBUOgotICAgICAgICB7Ci0gICAgICAgICAgICBpbnRlcmNlcHQoKS0+c2V0QmFz
ZVZhbCh2YWx1ZS5zdHJpbmcoKS50b0RvdWJsZSgpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICB9Ci0gICAgICAgIGNhc2UgQVRUUl9BTVBMSVRVREU6Ci0gICAgICAgIHsKLSAgICAgICAg
ICAgIGFtcGxpdHVkZSgpLT5zZXRCYXNlVmFsKHZhbHVlLnN0cmluZygpLnRvRG91YmxlKCkpOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBBVFRSX0VYUE9ORU5U
OgotICAgICAgICB7Ci0gICAgICAgICAgICBleHBvbmVudCgpLT5zZXRCYXNlVmFsKHZhbHVlLnN0
cmluZygpLnRvRG91YmxlKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAg
ICAgY2FzZSBBVFRSX09GRlNFVDoKLSAgICAgICAgewotICAgICAgICAgICAgb2Zmc2V0KCktPnNl
dEJhc2VWYWwodmFsdWUuc3RyaW5nKCkudG9Eb3VibGUoKSk7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgfQotICAgICAgICBkZWZhdWx0OgotICAgICAgICB7Ci0gICAgICAgICAgICBTVkdF
bGVtZW50SW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cik7Ci0gICAgICAgIH0KLSAgICB9OworICAg
ICAgICBpZih2YWx1ZSA9PSAiaWRlbnRpdHkiKQorICAgICAgICAgICAgdHlwZSgpLT5zZXRCYXNl
VmFsKFNWR19GRUNPTVBPTkVOVFRSQU5TRkVSX1RZUEVfSURFTlRJVFkpOworICAgICAgICBlbHNl
IGlmKHZhbHVlID09ICJ0YWJsZSIpCisgICAgICAgICAgICB0eXBlKCktPnNldEJhc2VWYWwoU1ZH
X0ZFQ09NUE9ORU5UVFJBTlNGRVJfVFlQRV9UQUJMRSk7CisgICAgICAgIGVsc2UgaWYodmFsdWUg
PT0gImRpc2NyZXRlIikKKyAgICAgICAgICAgIHR5cGUoKS0+c2V0QmFzZVZhbChTVkdfRkVDT01Q
T05FTlRUUkFOU0ZFUl9UWVBFX0RJU0NSRVRFKTsKKyAgICAgICAgZWxzZSBpZih2YWx1ZSA9PSAi
bGluZWFyIikKKyAgICAgICAgICAgIHR5cGUoKS0+c2V0QmFzZVZhbChTVkdfRkVDT01QT05FTlRU
UkFOU0ZFUl9UWVBFX0xJTkVBUik7CisgICAgICAgIGVsc2UgaWYodmFsdWUgPT0gImdhbW1hIikK
KyAgICAgICAgICAgIHR5cGUoKS0+c2V0QmFzZVZhbChTVkdfRkVDT01QT05FTlRUUkFOU0ZFUl9U
WVBFX0dBTU1BKTsKKyAgICB9CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVz
Ojp2YWx1ZXNBdHRyKQorICAgICAgICB0YWJsZVZhbHVlcygpLT5iYXNlVmFsKCktPnBhcnNlKHZh
bHVlLnFzdHJpbmcoKSk7CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjpz
bG9wZUF0dHIpCisgICAgICAgIHNsb3BlKCktPnNldEJhc2VWYWwodmFsdWUucXN0cmluZygpLnRv
RG91YmxlKCkpOworICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6aW50ZXJj
ZXB0QXR0cikKKyAgICAgICAgaW50ZXJjZXB0KCktPnNldEJhc2VWYWwodmFsdWUucXN0cmluZygp
LnRvRG91YmxlKCkpOworICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6YW1w
bGl0dWRlQXR0cikKKyAgICAgICAgYW1wbGl0dWRlKCktPnNldEJhc2VWYWwodmFsdWUucXN0cmlu
ZygpLnRvRG91YmxlKCkpOworICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6
ZXhwb25lbnRBdHRyKQorICAgICAgICBleHBvbmVudCgpLT5zZXRCYXNlVmFsKHZhbHVlLnFzdHJp
bmcoKS50b0RvdWJsZSgpKTsKKyAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6
Om9mZnNldEF0dHIpCisgICAgICAgIG9mZnNldCgpLT5zZXRCYXNlVmFsKHZhbHVlLnFzdHJpbmco
KS50b0RvdWJsZSgpKTsKKyAgICBlbHNlCisgICAgICAgIFNWR0VsZW1lbnRJbXBsOjpwYXJzZUF0
dHJpYnV0ZShhdHRyKTsKIH0KIAogLy8gdmltOnRzPTQ6bm9ldApJbmRleDoga3N2ZzIvc3ZnL1NW
R0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50SW1wbC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1
bmN0aW9uRWxlbWVudEltcGwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40CmRpZmYgLXAgLXUg
LXIxLjQga3N2ZzIvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50SW1wbC5o
Ci0tLSBrc3ZnMi9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnRJbXBsLmgJ
MSBTZXAgMjAwNSAwNzozNTozNiAtMDAwMAkxLjQKKysrIGtzdmcyL3N2Zy9TVkdDb21wb25lbnRU
cmFuc2ZlckZ1bmN0aW9uRWxlbWVudEltcGwuaAkxIE5vdiAyMDA1IDExOjEzOjEyIC0wMDAwCkBA
IC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBLU1ZHCiAgICAgY2xhc3MgU1ZHQ29tcG9uZW50VHJh
bnNmZXJGdW5jdGlvbkVsZW1lbnRJbXBsIDogcHVibGljIFNWR0VsZW1lbnRJbXBsCiAgICAgewog
ICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnRJ
bXBsKEtET006OkRvY3VtZW50UHRyICpkb2MsIEtET006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6
RE9NU3RyaW5nSW1wbCAqcHJlZml4KTsKKyAgICAgICAgU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5j
dGlvbkVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006
OkRvY3VtZW50UHRyICpkb2MpOwogICAgICAgICB2aXJ0dWFsIH5TVkdDb21wb25lbnRUcmFuc2Zl
ckZ1bmN0aW9uRWxlbWVudEltcGwoKTsKIAogICAgICAgICAvLyAnU1ZHQ29tcG9uZW50VHJhbnNm
ZXJGdW5jdGlvbkVsZW1lbnQnIGZ1bmN0aW9ucwpJbmRleDoga3N2ZzIvc3ZnL1NWR0N1cnNvckVs
ZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9r
c3ZnMi9zdmcvU1ZHQ3Vyc29yRWxlbWVudEltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAx
LjIKZGlmZiAtcCAtdSAtcjEuMiBrc3ZnMi9zdmcvU1ZHQ3Vyc29yRWxlbWVudEltcGwuY3BwCi0t
LSBrc3ZnMi9zdmcvU1ZHQ3Vyc29yRWxlbWVudEltcGwuY3BwCTUgT2N0IDIwMDUgMDU6MzU6MTgg
LTAwMDAJMS4yCisrKyBrc3ZnMi9zdmcvU1ZHQ3Vyc29yRWxlbWVudEltcGwuY3BwCTEgTm92IDIw
MDUgMTE6MTM6MTIgLTAwMDAKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRlIDxrZG9tL2NvcmUv
QXR0ckltcGwuaD4KICNpbmNsdWRlIDxrZGVidWcuaD4KIAotI2luY2x1ZGUgInN2Z2F0dHJzLmgi
CisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdIZWxwZXIuaCIKICNpbmNsdWRl
ICJOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJTVkdEb2N1bWVudEltcGwuaCIKQEAgLTQxLDggKzQx
LDggQEAgdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiB1c2luZyBuYW1lc3BhY2Uga2h0bWxJbUxvYWQ7
CiAjZW5kaWYKIAotU1ZHQ3Vyc29yRWxlbWVudEltcGw6OlNWR0N1cnNvckVsZW1lbnRJbXBsKEtE
T006OkRvY3VtZW50UHRyICpkb2MsIEtET006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3Ry
aW5nSW1wbCAqcHJlZml4KQotOiBTVkdFbGVtZW50SW1wbChkb2MsIGlkLCBwcmVmaXgpLCBTVkdU
ZXN0c0ltcGwoKSwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwoKSwgU1ZHVVJJUmVm
ZXJlbmNlSW1wbCgpLCBLRE9NOjpDYWNoZWRPYmplY3RDbGllbnQoKQorU1ZHQ3Vyc29yRWxlbWVu
dEltcGw6OlNWR0N1cnNvckVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIEtET006OkRvY3VtZW50UHRyICpkb2MpCis6IFNWR0VsZW1lbnRJbXBsKHRhZ05hbWUs
IGRvYyksIFNWR1Rlc3RzSW1wbCgpLCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1wbCgp
LCBTVkdVUklSZWZlcmVuY2VJbXBsKCksIEtET006OkNhY2hlZE9iamVjdENsaWVudCgpCiB7CiAg
ICAgbV94ID0gbV95ID0gMDsKICAgICBtX2NhY2hlZEltYWdlID0gMDsKQEAgLTY4LDM5ICs2OCwy
NiBAQCBTVkdBbmltYXRlZExlbmd0aEltcGwgKlNWR0N1cnNvckVsZW1lbnRJCiAKIHZvaWQgU1ZH
Q3Vyc29yRWxlbWVudEltcGw6OnBhcnNlQXR0cmlidXRlKEtET006OkF0dHJpYnV0ZUltcGwgKmF0
dHIpCiB7Ci0gICAgaW50IGlkID0gKGF0dHItPmlkKCkgJiBOb2RlSW1wbF9JZExvY2FsTWFzayk7
Ci0gICAgS0RPTTo6RE9NU3RyaW5nSW1wbCAqdmFsdWUgPSBhdHRyLT52YWx1ZSgpOwotICAgIHN3
aXRjaChpZCkKKyAgICAgY29uc3QgS0RPTTo6QXRvbWljU3RyaW5nJiB2YWx1ZSA9IGF0dHItPnZh
bHVlKCk7CisgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6eEF0dHIpCisgICAgICAg
IHgoKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlLmltcGwoKSk7CisgICAgZWxz
ZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjp5QXR0cikKKyAgICAgICAgeSgpLT5iYXNl
VmFsKCktPnNldFZhbHVlQXNTdHJpbmcodmFsdWUuaW1wbCgpKTsKKyAgICBlbHNlCiAgICAgewot
ICAgICAgICBjYXNlIEFUVFJfWDoKKyAgICAgICAgaWYoU1ZHVGVzdHNJbXBsOjpwYXJzZUF0dHJp
YnV0ZShhdHRyKSkgcmV0dXJuOworICAgICAgICBpZihTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsKKyAgICAgICAgaWYoU1ZHVVJJ
UmVmZXJlbmNlSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIHgoKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgQVRUUl9ZOgotICAgICAgICB7Ci0gICAg
ICAgICAgICB5KCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBkZWZhdWx0OgotICAgICAgICB7Ci0gICAg
ICAgICAgICBpZihTVkdUZXN0c0ltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47Ci0g
ICAgICAgICAgICBpZihTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1wbDo6cGFyc2VBdHRy
aWJ1dGUoYXR0cikpIHJldHVybjsKLSAgICAgICAgICAgIGlmKFNWR1VSSVJlZmVyZW5jZUltcGw6
OnBhcnNlQXR0cmlidXRlKGF0dHIpKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIFFT
dHJpbmcgZm5hbWUgPSBLRE9NOjpET01TdHJpbmcoaHJlZigpLT5iYXNlVmFsKCkpLnN0cmluZygp
OwotICAgICAgICAgICAgICAgIEtVUkwgZnVsbFVybChvd25lckRvY3VtZW50KCktPmRvY3VtZW50
S1VSSSgpLCBmbmFtZSk7Ci0gICAgICAgICAgICAgICAgLy9rZERlYnVnKCkgPDwgIkxvYWRpbmcg
OiAiIDw8IGZ1bGxVcmwgPDwgZW5kbDsKLSAgICAgICAgICAgICAgICBtX2NhY2hlZEltYWdlID0g
b3duZXJEb2N1bWVudCgpLT5kb2NMb2FkZXIoKS0+cmVxdWVzdEltYWdlKGZ1bGxVcmwpOwotCi0g
ICAgICAgICAgICAgICAgaWYobV9jYWNoZWRJbWFnZSkKLSAgICAgICAgICAgICAgICAgICAgbV9j
YWNoZWRJbWFnZS0+cmVmKHRoaXMpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIG1fY2FjaGVkSW1hZ2UgPSBvd25lckRvY3VtZW50KCktPmRvY0xv
YWRlcigpLT5yZXF1ZXN0SW1hZ2UoaHJlZigpLT5iYXNlVmFsKCkpOwogCi0gICAgICAgICAgICBT
VkdFbGVtZW50SW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cik7CisgICAgICAgICAgICBpZihtX2Nh
Y2hlZEltYWdlKQorICAgICAgICAgICAgICAgIG1fY2FjaGVkSW1hZ2UtPnJlZih0aGlzKTsKKyAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgIH07CisKKyAgICAgICAgU1ZHRWxlbWVu
dEltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpOworICAgIH0KIH0KIAogdm9pZCBTVkdDdXJzb3JF
bGVtZW50SW1wbDo6bm90aWZ5RmluaXNoZWQoS0RPTTo6Q2FjaGVkT2JqZWN0ICpmaW5pc2hlZE9i
aikKSW5kZXg6IGtzdmcyL3N2Zy9TVkdDdXJzb3JFbGVtZW50SW1wbC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdDdXJzb3JFbGVtZW50SW1w
bC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEKZGlmZiAtcCAtdSAtcjEuMSBrc3ZnMi9zdmcv
U1ZHQ3Vyc29yRWxlbWVudEltcGwuaAotLS0ga3N2ZzIvc3ZnL1NWR0N1cnNvckVsZW1lbnRJbXBs
LmgJOCBTZXAgMjAwNSAwODowMzozNCAtMDAwMAkxLjEKKysrIGtzdmcyL3N2Zy9TVkdDdXJzb3JF
bGVtZW50SW1wbC5oCTEgTm92IDIwMDUgMTE6MTM6MTIgLTAwMDAKQEAgLTQzLDcgKzQzLDcgQEAg
bmFtZXNwYWNlIEtTVkcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBL
RE9NOjpDYWNoZWRPYmplY3RDbGllbnQKICAgICB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdD
dXJzb3JFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6
SWQgaWQsICBLRE9NOjpET01TdHJpbmdJbXBsICpwcmVmaXgpOworICAgICAgICBTVkdDdXJzb3JF
bGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1
bWVudFB0ciAqZG9jKTsKICAgICAgICAgdmlydHVhbCB+U1ZHQ3Vyc29yRWxlbWVudEltcGwoKTsK
IAogICAgICAgICAvLyAnU1ZHQ3Vyc29yRWxlbWVudCcgZnVuY3Rpb25zCkluZGV4OiBrc3ZnMi9z
dmcvU1ZHRE9NSW1wbGVtZW50YXRpb25JbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHRE9NSW1wbGVtZW50YXRpb25JbXBsLmNwcCx2
CnJldHJpZXZpbmcgcmV2aXNpb24gMS43CmRpZmYgLXAgLXUgLXIxLjcga3N2ZzIvc3ZnL1NWR0RP
TUltcGxlbWVudGF0aW9uSW1wbC5jcHAKLS0tIGtzdmcyL3N2Zy9TVkdET01JbXBsZW1lbnRhdGlv
bkltcGwuY3BwCTUgT2N0IDIwMDUgMDU6MzU6MTggLTAwMDAJMS43CisrKyBrc3ZnMi9zdmcvU1ZH
RE9NSW1wbGVtZW50YXRpb25JbXBsLmNwcAkxIE5vdiAyMDA1IDExOjEzOjEyIC0wMDAwCkBAIC0z
NCw3ICszNCw2IEBACiAjaW5jbHVkZSA8a2RvbS9jc3MvTWVkaWFMaXN0SW1wbC5oPgogCiAjaW5j
bHVkZSAia3N2Zy5oIgotI2luY2x1ZGUgImtzdmdldmVudHMuaCIKICNpbmNsdWRlICJDREZJbnRl
cmZhY2UuaCIKICNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlNWR0RvY3Vt
ZW50SW1wbC5oIgpAQCAtMTE3LDE3ICsxMTYsMTcgQEAgU1ZHRE9NSW1wbGVtZW50YXRpb25JbXBs
ICpTVkdET01JbXBsZW1lbgogCiBib29sIFNWR0RPTUltcGxlbWVudGF0aW9uSW1wbDo6aGFzRmVh
dHVyZShLRE9NOjpET01TdHJpbmdJbXBsICpmZWF0dXJlSW1wbCwgS0RPTTo6RE9NU3RyaW5nSW1w
bCAqdmVyc2lvbkltcGwpIGNvbnN0CiB7Ci0gICAgUVN0cmluZyBmZWF0dXJlID0gKGZlYXR1cmVJ
bXBsID8gS0RPTTo6RE9NU3RyaW5nKGZlYXR1cmVJbXBsKS51cHBlcigpLnN0cmluZygpIDogUVN0
cmluZzo6bnVsbCk7Ci0gICAgUVN0cmluZyB2ZXJzaW9uID0gKHZlcnNpb25JbXBsID8gdmVyc2lv
bkltcGwtPnN0cmluZygpIDogUVN0cmluZzo6bnVsbCk7CisgICAgUVN0cmluZyBmZWF0dXJlID0g
KGZlYXR1cmVJbXBsID8gS0RPTTo6RE9NU3RyaW5nKGZlYXR1cmVJbXBsKS51cHBlcigpLnFzdHJp
bmcoKSA6IFFTdHJpbmc6Om51bGwpOworICAgIEtET006OkRPTVN0cmluZyB2ZXJzaW9uKHZlcnNp
b25JbXBsKTsKIAotICAgIGlmKCh2ZXJzaW9uLmlzRW1wdHkoKSB8fCB2ZXJzaW9uID09IFFTdHJp
bmc6OmZyb21MYXRpbjEoIjEuMSIpKSAmJgorICAgIGlmKCh2ZXJzaW9uLmlzRW1wdHkoKSB8fCB2
ZXJzaW9uID09ICIxLjEiKSAmJgogICAgICAgIGZlYXR1cmUuc3RhcnRzV2l0aChRU3RyaW5nOjpm
cm9tTGF0aW4xKCJIVFRQOi8vV1dXLlczLk9SRy9UUi9TVkcxMS9GRUFUVVJFIyIpKSkKICAgICB7
CiAgICAgICAgIGlmKHNfZmVhdHVyZXMuY29udGFpbnMoZmVhdHVyZS5yaWdodChmZWF0dXJlLmxl
bmd0aCgpIC0gMzUpKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIGlm
KCh2ZXJzaW9uLmlzRW1wdHkoKSB8fCB2ZXJzaW9uID09IFFTdHJpbmc6OmZyb21MYXRpbjEoIjEu
MCIpKSAmJgorICAgIGlmKCh2ZXJzaW9uLmlzRW1wdHkoKSB8fCB2ZXJzaW9uID09ICIxLjAiKSAm
JgogICAgICAgIGZlYXR1cmUuc3RhcnRzV2l0aChRU3RyaW5nOjpmcm9tTGF0aW4xKCJPUkcuVzND
LiIpKSkKICAgICB7CiAgICAgICAgIGlmKHNfZmVhdHVyZXMuY29udGFpbnMoZmVhdHVyZS5yaWdo
dChmZWF0dXJlLmxlbmd0aCgpIC0gOCkpKQpAQCAtMTM3LDQ1ICsxMzYsNDggQEAgYm9vbCBTVkdE
T01JbXBsZW1lbnRhdGlvbkltcGw6Omhhc0ZlYXR1cgogICAgIHJldHVybiBLRE9NOjpET01JbXBs
ZW1lbnRhdGlvbkltcGw6Omhhc0ZlYXR1cmUoZmVhdHVyZUltcGwsIHZlcnNpb25JbXBsKTsKIH0K
IAotS0RPTTo6RG9jdW1lbnRUeXBlSW1wbCAqU1ZHRE9NSW1wbGVtZW50YXRpb25JbXBsOjpjcmVh
dGVEb2N1bWVudFR5cGUoS0RPTTo6RE9NU3RyaW5nSW1wbCAqcXVhbGlmaWVkTmFtZSwgS0RPTTo6
RE9NU3RyaW5nSW1wbCAqcHVibGljSWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnN5c3RlbUlkKSBj
b25zdAorS0RPTTo6RG9jdW1lbnRUeXBlSW1wbCAqU1ZHRE9NSW1wbGVtZW50YXRpb25JbXBsOjpj
cmVhdGVEb2N1bWVudFR5cGUoS0RPTTo6RE9NU3RyaW5nSW1wbCAqcXVhbGlmaWVkTmFtZUltcGws
IEtET006OkRPTVN0cmluZ0ltcGwgKnB1YmxpY0lkLCBLRE9NOjpET01TdHJpbmdJbXBsICpzeXN0
ZW1JZCwgaW50JiBleGNlcHRpb25jb2RlKSBjb25zdAogeworICAgIEtET006OkRPTVN0cmluZyBx
dWFsaWZpZWROYW1lKHF1YWxpZmllZE5hbWVJbXBsKTsKICAgICAvLyBJTlZBTElEX0NIQVJBQ1RF
Ul9FUlI6IFJhaXNlZCBpZiB0aGUgc3BlY2lmaWVkIHF1YWxpZmllZCBuYW1lIGNvbnRhaW5zIGFu
IGlsbGVnYWwgY2hhcmFjdGVyLgotICAgIGlmKCghcXVhbGlmaWVkTmFtZSB8fCBxdWFsaWZpZWRO
YW1lLT5pc0VtcHR5KCkpIHx8ICFLRE9NOjpIZWxwZXI6OlZhbGlkYXRlQXR0cmlidXRlTmFtZShx
dWFsaWZpZWROYW1lKSkKLSAgICAgICAgdGhyb3cgbmV3IEtET006OkRPTUV4Y2VwdGlvbkltcGwo
S0RPTTo6SU5WQUxJRF9DSEFSQUNURVJfRVJSKTsKKyAgICBpZighcXVhbGlmaWVkTmFtZS5pc0Vt
cHR5KCkgJiYgIUtET006OkhlbHBlcjo6VmFsaWRhdGVBdHRyaWJ1dGVOYW1lKHF1YWxpZmllZE5h
bWVJbXBsKSkgeworICAgICAgICBleGNlcHRpb25jb2RlID0gS0RPTTo6SU5WQUxJRF9DSEFSQUNU
RVJfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CiAKICAgICAvLyBOQU1FU1BBQ0VfRVJS
OiBSYWlzZWQgaWYgbm8gcXVhbGlmaWVkTmFtZSBzdXBwbGllZCAobm90IG1lbnRpb25lZCBpbiB0
aGUgc3BlYyEpCi0gICAgaWYoIXF1YWxpZmllZE5hbWUgfHwgcXVhbGlmaWVkTmFtZS0+aXNFbXB0
eSgpKQotICAgICAgICB0aHJvdyBuZXcgS0RPTTo6RE9NRXhjZXB0aW9uSW1wbChLRE9NOjpOQU1F
U1BBQ0VfRVJSKTsKKyAgICBpZihxdWFsaWZpZWROYW1lLmlzRW1wdHkoKSkgeworICAgICAgICBl
eGNlcHRpb25jb2RlID0gS0RPTTo6TkFNRVNQQUNFX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7Cisg
ICAgfQogCiAgICAgLy8gTkFNRVNQQUNFX0VSUjogUmFpc2VkIGlmIHRoZSBxdWFsaWZpZWROYW1l
IGlzIG1hbGZvcm1lZC4KLSAgICBLRE9NOjpIZWxwZXI6OkNoZWNrTWFsZm9ybWVkUXVhbGlmaWVk
TmFtZShxdWFsaWZpZWROYW1lKTsKKyAgICBLRE9NOjpIZWxwZXI6OkNoZWNrTWFsZm9ybWVkUXVh
bGlmaWVkTmFtZShxdWFsaWZpZWROYW1lSW1wbCk7CiAKICAgICByZXR1cm4gbmV3IEtET006OkRv
Y3VtZW50VHlwZUltcGwobmV3IEtET006OkRvY3VtZW50UHRyKCksIHF1YWxpZmllZE5hbWUsIHB1
YmxpY0lkLCBzeXN0ZW1JZCk7CiB9CiAKLUtET006OkRvY3VtZW50SW1wbCAqU1ZHRE9NSW1wbGVt
ZW50YXRpb25JbXBsOjpjcmVhdGVEb2N1bWVudChLRE9NOjpET01TdHJpbmdJbXBsICpuYW1lc3Bh
Y2VVUkksIEtET006OkRPTVN0cmluZ0ltcGwgKnF1YWxpZmllZE5hbWVJbXBsLCBLRE9NOjpEb2N1
bWVudFR5cGVJbXBsICpkb2N0eXBlKSBjb25zdAorS0RPTTo6RG9jdW1lbnRJbXBsICpTVkdET01J
bXBsZW1lbnRhdGlvbkltcGw6OmNyZWF0ZURvY3VtZW50KEtET006OkRPTVN0cmluZ0ltcGwgKm5h
bWVzcGFjZVVSSSwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcXVhbGlmaWVkTmFtZUltcGwsIEtET006
OkRvY3VtZW50VHlwZUltcGwgKmRvY3R5cGUsIGludCYgZXhjZXB0aW9uY29kZSkgY29uc3QKIHsK
LSAgICByZXR1cm4gY3JlYXRlRG9jdW1lbnQobmFtZXNwYWNlVVJJLCBxdWFsaWZpZWROYW1lSW1w
bCwgZG9jdHlwZSwgdHJ1ZSwgMCk7CisgICAgcmV0dXJuIGNyZWF0ZURvY3VtZW50KG5hbWVzcGFj
ZVVSSSwgcXVhbGlmaWVkTmFtZUltcGwsIGRvY3R5cGUsIHRydWUsIDAsIGV4Y2VwdGlvbmNvZGUp
OwogfQogCi1LRE9NOjpEb2N1bWVudEltcGwgKlNWR0RPTUltcGxlbWVudGF0aW9uSW1wbDo6Y3Jl
YXRlRG9jdW1lbnQoS0RPTTo6RE9NU3RyaW5nSW1wbCAqbmFtZXNwYWNlVVJJSW1wbCwgS0RPTTo6
RE9NU3RyaW5nSW1wbCAqcXVhbGlmaWVkTmFtZUltcGwsIEtET006OkRvY3VtZW50VHlwZUltcGwg
KmRvY3R5cGUsIGJvb2wgY3JlYXRlRG9jRWxlbWVudCwgS0RPTTo6S0RPTVZpZXcgKnZpZXcpIGNv
bnN0CitLRE9NOjpEb2N1bWVudEltcGwgKlNWR0RPTUltcGxlbWVudGF0aW9uSW1wbDo6Y3JlYXRl
RG9jdW1lbnQoS0RPTTo6RE9NU3RyaW5nSW1wbCAqbmFtZXNwYWNlVVJJSW1wbCwgS0RPTTo6RE9N
U3RyaW5nSW1wbCAqcXVhbGlmaWVkTmFtZUltcGwsIEtET006OkRvY3VtZW50VHlwZUltcGwgKmRv
Y3R5cGUsIGJvb2wgY3JlYXRlRG9jRWxlbWVudCwgS0RPTTo6S0RPTVZpZXcgKnZpZXcsIGludCYg
ZXhjZXB0aW9uY29kZSkgY29uc3QKIHsKLSAgICBpZihuYW1lc3BhY2VVUklJbXBsKQotICAgICAg
ICBuYW1lc3BhY2VVUklJbXBsLT5yZWYoKTsKLSAgICBpZihxdWFsaWZpZWROYW1lSW1wbCkKLSAg
ICAgICAgcXVhbGlmaWVkTmFtZUltcGwtPnJlZigpOwogICAgIEtET006OkRPTVN0cmluZyBuYW1l
c3BhY2VVUkkobmFtZXNwYWNlVVJJSW1wbCk7CiAgICAgS0RPTTo6RE9NU3RyaW5nIHF1YWxpZmll
ZE5hbWUocXVhbGlmaWVkTmFtZUltcGwpOwogICAgIGlmKChuYW1lc3BhY2VVUkkgIT0gS0RPTTo6
TlNfU1ZHKSB8fCAocXVhbGlmaWVkTmFtZSAhPSAic3ZnIiAmJiBxdWFsaWZpZWROYW1lICE9ICJz
dmc6c3ZnIikpCi0gICAgICAgIHJldHVybiBLRE9NOjpET01JbXBsZW1lbnRhdGlvbkltcGw6OmNy
ZWF0ZURvY3VtZW50KG5hbWVzcGFjZVVSSUltcGwsIHF1YWxpZmllZE5hbWVJbXBsLCBkb2N0eXBl
LCBjcmVhdGVEb2NFbGVtZW50LCB2aWV3KTsKKyAgICAgICAgcmV0dXJuIEtET006OkRPTUltcGxl
bWVudGF0aW9uSW1wbDo6Y3JlYXRlRG9jdW1lbnQobmFtZXNwYWNlVVJJSW1wbCwgcXVhbGlmaWVk
TmFtZUltcGwsIGRvY3R5cGUsIGNyZWF0ZURvY0VsZW1lbnQsIHZpZXcsIGV4Y2VwdGlvbmNvZGUp
OwogCiAgICAgaW50IGR1bW15OwogICAgIEtET006OkhlbHBlcjo6Q2hlY2tRdWFsaWZpZWROYW1l
KHF1YWxpZmllZE5hbWVJbXBsLCBuYW1lc3BhY2VVUklJbXBsLCBkdW1teSwgdHJ1ZSAvKm5hbWVD
YW5CZU51bGwqLywgdHJ1ZSAvKm5hbWVDYW5CZUVtcHR5LCBzZWUgIzYxNjUwKi8pOwogCiAgICAg
Ly8gV1JPTkdfRE9DVU1FTlRfRVJSOiBSYWlzZWQgaWYgZG9jVHlwZSBoYXMgYWxyZWFkeSBiZWVu
IHVzZWQgd2l0aCBhIGRpZmZlcmVudAogICAgIC8vICAgICAgICAgICAgICAgICAgICAgZG9jdW1l
bnQgb3Igd2FzIGNyZWF0ZWQgZnJvbSBhIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbi4KLSAgICBp
Zihkb2N0eXBlICE9IDAgJiYgZG9jdHlwZS0+b3duZXJEb2N1bWVudCgpICE9IDApCi0gICAgICAg
ICAgICB0aHJvdyBuZXcgS0RPTTo6RE9NRXhjZXB0aW9uSW1wbChLRE9NOjpXUk9OR19ET0NVTUVO
VF9FUlIpOworICAgIGlmKGRvY3R5cGUgIT0gMCAmJiBkb2N0eXBlLT5vd25lckRvY3VtZW50KCkg
IT0gMCkgeworICAgICAgICBleGNlcHRpb25jb2RlID0gS0RPTTo6V1JPTkdfRE9DVU1FTlRfRVJS
OworICAgICAgICByZXR1cm4gMDsKKyAgICB9CiAKICAgICBTVkdEb2N1bWVudEltcGwgKmRvYyA9
IG5ldyBTVkdEb2N1bWVudEltcGwoY29uc3RfY2FzdDxTVkdET01JbXBsZW1lbnRhdGlvbkltcGwg
Kj4odGhpcyksIHZpZXcpOwogCkBAIC0xODYsMTUgKzE4OCwxMCBAQCBLRE9NOjpEb2N1bWVudElt
cGwgKlNWR0RPTUltcGxlbWVudGF0aW9uCiAgICAgLy8gQWRkIHJvb3QgZWxlbWVudC4uLgogICAg
IGlmKGNyZWF0ZURvY0VsZW1lbnQpCiAgICAgewotICAgICAgICBLRE9NOjpFbGVtZW50SW1wbCAq
c3ZnID0gZG9jLT5jcmVhdGVFbGVtZW50TlMobmFtZXNwYWNlVVJJSW1wbCwgcXVhbGlmaWVkTmFt
ZUltcGwpOwotICAgICAgICBkb2MtPmFwcGVuZENoaWxkKHN2Zyk7CisgICAgICAgIEtET006OkVs
ZW1lbnRJbXBsICpzdmcgPSBkb2MtPmNyZWF0ZUVsZW1lbnROUyhuYW1lc3BhY2VVUkksIHF1YWxp
ZmllZE5hbWUsIGV4Y2VwdGlvbmNvZGUpOworICAgICAgICBkb2MtPmFwcGVuZENoaWxkKHN2Zywg
ZXhjZXB0aW9uY29kZSk7CiAgICAgfQogCi0gICAgaWYobmFtZXNwYWNlVVJJSW1wbCkKLSAgICAg
ICAgbmFtZXNwYWNlVVJJSW1wbC0+ZGVyZWYoKTsKLSAgICBpZihxdWFsaWZpZWROYW1lSW1wbCkK
LSAgICAgICAgcXVhbGlmaWVkTmFtZUltcGwtPmRlcmVmKCk7Ci0KICAgICByZXR1cm4gZG9jOwog
fQogCkBAIC0yMTcsNDIgKzIxNCw2IEBAIEtET006OkRvY3VtZW50VHlwZUltcGwgKlNWR0RPTUlt
cGxlbWVudGEKICAgICAqLwogfQogCi1pbnQgU1ZHRE9NSW1wbGVtZW50YXRpb25JbXBsOjp0eXBl
VG9JZChLRE9NOjpET01TdHJpbmdJbXBsICp0eXBlSW1wbCkKLXsKLSAgICBpZighdHlwZUltcGwp
Ci0gICAgICAgIHJldHVybiAtMTsKLQotICAgIFFTdHJpbmcgdHlwZSA9IHR5cGVJbXBsLT5zdHJp
bmcoKTsKLQotICAgIGlmKHR5cGUgPT0gUVN0cmluZzo6ZnJvbUxhdGluMSgibG9hZCIpKSByZXR1
cm4gS0RPTTo6TE9BRF9FVkVOVDsKLSAgICBlbHNlIGlmKHR5cGUgPT0gUVN0cmluZzo6ZnJvbUxh
dGluMSgidW5sb2FkIikpIHJldHVybiBLRE9NOjpVTkxPQURfRVZFTlQ7Ci0gICAgZWxzZSBpZih0
eXBlID09IFFTdHJpbmc6OmZyb21MYXRpbjEoImFib3J0IikpIHJldHVybiBLRE9NOjpBQk9SVF9F
VkVOVDsKLSAgICBlbHNlIGlmKHR5cGUgPT0gUVN0cmluZzo6ZnJvbUxhdGluMSgiZXJyb3IiKSkg
cmV0dXJuIEtET006OkVSUk9SX0VWRU5UOwotICAgIGVsc2UgaWYodHlwZSA9PSBRU3RyaW5nOjpm
cm9tTGF0aW4xKCJyZXNpemUiKSkgcmV0dXJuIEtET006OlJFU0laRV9FVkVOVDsKLSAgICBlbHNl
IGlmKHR5cGUgPT0gUVN0cmluZzo6ZnJvbUxhdGluMSgic2Nyb2xsIikpIHJldHVybiBLRE9NOjpT
Q1JPTExfRVZFTlQ7Ci0gICAgZWxzZSBpZih0eXBlID09IFFTdHJpbmc6OmZyb21MYXRpbjEoInpv
b20iKSkgcmV0dXJuIFpPT01fRVZFTlQ7Ci0KLSAgICByZXR1cm4gS0RPTTo6RE9NSW1wbGVtZW50
YXRpb25JbXBsOjp0eXBlVG9JZCh0eXBlSW1wbCk7Ci19Ci0KLUtET006OkRPTVN0cmluZ0ltcGwg
KlNWR0RPTUltcGxlbWVudGF0aW9uSW1wbDo6aWRUb1R5cGUoaW50IGV2ZW50SWQpCi17Ci0gICAg
UVN0cmluZyByZXQ7Ci0gICAgc3dpdGNoKGV2ZW50SWQpCi0gICAgewotICAgICAgICBjYXNlIEtE
T006OkxPQURfRVZFTlQ6IHJldCA9IFFTdHJpbmc6OmZyb21MYXRpbjEoImxvYWQiKTsgYnJlYWs7
Ci0gICAgICAgIGNhc2UgS0RPTTo6VU5MT0FEX0VWRU5UOiByZXQgPSBRU3RyaW5nOjpmcm9tTGF0
aW4xKCJ1bmxvYWQiKTsgYnJlYWs7Ci0gICAgICAgIGNhc2UgS0RPTTo6QUJPUlRfRVZFTlQ6IHJl
dCA9IFFTdHJpbmc6OmZyb21MYXRpbjEoImFib3J0Iik7IGJyZWFrOwotICAgICAgICBjYXNlIEtE
T006OkVSUk9SX0VWRU5UOiByZXQgPSBRU3RyaW5nOjpmcm9tTGF0aW4xKCJlcnJvciIpOyBicmVh
azsKLSAgICAgICAgY2FzZSBLRE9NOjpSRVNJWkVfRVZFTlQ6IHJldCA9IFFTdHJpbmc6OmZyb21M
YXRpbjEoInJlc2l6ZSIpOyBicmVhazsKLSAgICAgICAgY2FzZSBLRE9NOjpTQ1JPTExfRVZFTlQ6
IHJldCA9IFFTdHJpbmc6OmZyb21MYXRpbjEoInNjcm9sbCIpOyBicmVhazsKLSAgICAgICAgY2Fz
ZSBaT09NX0VWRU5UOiByZXQgPSBRU3RyaW5nOjpmcm9tTGF0aW4xKCJ6b29tIik7IGJyZWFrOwot
ICAgICAgICBkZWZhdWx0OiByZXR1cm4gS0RPTTo6RE9NSW1wbGVtZW50YXRpb25JbXBsOjppZFRv
VHlwZShldmVudElkKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gbmV3IEtET006OkRPTVN0cmluZ0lt
cGwocmV0KTsKLX0KLQogYm9vbCBTVkdET01JbXBsZW1lbnRhdGlvbkltcGw6OmluQW5pbWF0aW9u
Q29udGV4dCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fYW5pbWF0aW9uQ29udGV4dDsKSW5kZXg6
IGtzdmcyL3N2Zy9TVkdET01JbXBsZW1lbnRhdGlvbkltcGwuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHRE9NSW1wbGVtZW50YXRpb25JbXBs
LmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNQpkaWZmIC1wIC11IC1yMS41IGtzdmcyL3N2Zy9T
VkdET01JbXBsZW1lbnRhdGlvbkltcGwuaAotLS0ga3N2ZzIvc3ZnL1NWR0RPTUltcGxlbWVudGF0
aW9uSW1wbC5oCTEgU2VwIDIwMDUgMDk6Mzk6MTUgLTAwMDAJMS41CisrKyBrc3ZnMi9zdmcvU1ZH
RE9NSW1wbGVtZW50YXRpb25JbXBsLmgJMSBOb3YgMjAwNSAxMToxMzoxMiAtMDAwMApAQCAtNDYs
MTYgKzQ2LDEyIEBAIG5hbWVzcGFjZSBLU1ZHCiAKICAgICAgICAgLy8gJ1NWR0RPTUltcGxlbWVu
dGF0aW9uSW1wbCcgZnVuY3Rpb25zCiAgICAgICAgIGJvb2wgaGFzRmVhdHVyZShLRE9NOjpET01T
dHJpbmdJbXBsICpmZWF0dXJlLCBLRE9NOjpET01TdHJpbmdJbXBsICp2ZXJzaW9uKSBjb25zdDsK
LSAgICAgICAgS0RPTTo6RG9jdW1lbnRUeXBlSW1wbCAqY3JlYXRlRG9jdW1lbnRUeXBlKEtET006
OkRPTVN0cmluZ0ltcGwgKnF1YWxpZmllZE5hbWUsIEtET006OkRPTVN0cmluZ0ltcGwgKnB1Ymxp
Y0lkLCBLRE9NOjpET01TdHJpbmdJbXBsICpzeXN0ZW1JZCkgY29uc3Q7Ci0gICAgICAgIEtET006
OkRvY3VtZW50SW1wbCAqY3JlYXRlRG9jdW1lbnQoS0RPTTo6RE9NU3RyaW5nSW1wbCAqbmFtZXNw
YWNlVVJJLCBLRE9NOjpET01TdHJpbmdJbXBsICpxdWFsaWZpZWROYW1lLCBLRE9NOjpEb2N1bWVu
dFR5cGVJbXBsICpkb2N0eXBlKSBjb25zdDsKLSAgICAgICAgS0RPTTo6RG9jdW1lbnRJbXBsICpj
cmVhdGVEb2N1bWVudChLRE9NOjpET01TdHJpbmdJbXBsICpuYW1lc3BhY2VVUkksIEtET006OkRP
TVN0cmluZ0ltcGwgKnF1YWxpZmllZE5hbWUsIEtET006OkRvY3VtZW50VHlwZUltcGwgKmRvY3R5
cGUsIGJvb2wgY3JlYXRlRG9jRWxlbWVudCwgS0RPTTo6S0RPTVZpZXcgKnZpZXcpIGNvbnN0Owor
ICAgICAgICBLRE9NOjpEb2N1bWVudFR5cGVJbXBsICpjcmVhdGVEb2N1bWVudFR5cGUoS0RPTTo6
RE9NU3RyaW5nSW1wbCAqcXVhbGlmaWVkTmFtZSwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHVibGlj
SWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnN5c3RlbUlkLCBpbnQmIGV4Y2VwdGlvbmNvZGUpIGNv
bnN0OworICAgICAgICBLRE9NOjpEb2N1bWVudEltcGwgKmNyZWF0ZURvY3VtZW50KEtET006OkRP
TVN0cmluZ0ltcGwgKm5hbWVzcGFjZVVSSSwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcXVhbGlmaWVk
TmFtZSwgS0RPTTo6RG9jdW1lbnRUeXBlSW1wbCAqZG9jdHlwZSwgaW50JiBleGNlcHRpb25jb2Rl
KSBjb25zdDsKKyAgICAgICAgS0RPTTo6RG9jdW1lbnRJbXBsICpjcmVhdGVEb2N1bWVudChLRE9N
OjpET01TdHJpbmdJbXBsICpuYW1lc3BhY2VVUkksIEtET006OkRPTVN0cmluZ0ltcGwgKnF1YWxp
ZmllZE5hbWUsIEtET006OkRvY3VtZW50VHlwZUltcGwgKmRvY3R5cGUsIGJvb2wgY3JlYXRlRG9j
RWxlbWVudCwgS0RPTTo6S0RPTVZpZXcgKnZpZXcsIGludCYgZXhjZXB0aW9uY29kZSkgY29uc3Q7
CiAKICAgICAgICAgdmlydHVhbCBLRE9NOjpDU1NTdHlsZVNoZWV0SW1wbCAqY3JlYXRlQ1NTU3R5
bGVTaGVldChLRE9NOjpET01TdHJpbmdJbXBsICp0aXRsZSwgS0RPTTo6RE9NU3RyaW5nSW1wbCAq
bWVkaWEpIGNvbnN0OwogCi0gICAgICAgIC8vIEludGVybmFsCi0gICAgICAgIHZpcnR1YWwgaW50
IHR5cGVUb0lkKEtET006OkRPTVN0cmluZ0ltcGwgKnR5cGUpOwotICAgICAgICB2aXJ0dWFsIEtE
T006OkRPTVN0cmluZ0ltcGwgKmlkVG9UeXBlKGludCBldmVudElkKTsKLQogICAgICAgICB2aXJ0
dWFsIEtET006OkRvY3VtZW50VHlwZUltcGwgKmRlZmF1bHREb2N1bWVudFR5cGUoKSBjb25zdDsK
IAogICAgICAgICBib29sIGluQW5pbWF0aW9uQ29udGV4dCgpIGNvbnN0OwpJbmRleDoga3N2ZzIv
c3ZnL1NWR0RlZnNFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290
L1NWR1N1cHBvcnQva3N2ZzIvc3ZnL1NWR0RlZnNFbGVtZW50SW1wbC5jcHAsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuNQpkaWZmIC1wIC11IC1yMS41IGtzdmcyL3N2Zy9TVkdEZWZzRWxlbWVudElt
cGwuY3BwCi0tLSBrc3ZnMi9zdmcvU1ZHRGVmc0VsZW1lbnRJbXBsLmNwcAk1IE9jdCAyMDA1IDA1
OjM1OjE4IC0wMDAwCTEuNQorKysga3N2ZzIvc3ZnL1NWR0RlZnNFbGVtZW50SW1wbC5jcHAJMSBO
b3YgMjAwNSAxMToxMzoxMiAtMDAwMApAQCAtMjUsNyArMjUsNyBAQAogCiB1c2luZyBuYW1lc3Bh
Y2UgS1NWRzsKIAotU1ZHRGVmc0VsZW1lbnRJbXBsOjpTVkdEZWZzRWxlbWVudEltcGwoS0RPTTo6
RG9jdW1lbnRQdHIgKmRvYywgS0RPTTo6Tm9kZUltcGw6OklkIGlkLCBLRE9NOjpET01TdHJpbmdJ
bXBsICpwcmVmaXgpIDogU1ZHU3R5bGVkRWxlbWVudEltcGwoZG9jLCBpZCwgcHJlZml4KSwgU1ZH
VGVzdHNJbXBsKCksIFNWR0xhbmdTcGFjZUltcGwoKSwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZEltcGwoKSwgU1ZHVHJhbnNmb3JtYWJsZUltcGwoKQorU1ZHRGVmc0VsZW1lbnRJbXBsOjpT
VkdEZWZzRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RP
TTo6RG9jdW1lbnRQdHIgKmRvYykgOiBTVkdTdHlsZWRFbGVtZW50SW1wbCh0YWdOYW1lLCBkb2Mp
LCBTVkdUZXN0c0ltcGwoKSwgU1ZHTGFuZ1NwYWNlSW1wbCgpLCBTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkSW1wbCgpLCBTVkdUcmFuc2Zvcm1hYmxlSW1wbCgpCiB7CiB9CiAKSW5kZXg6IGtz
dmcyL3N2Zy9TVkdEZWZzRWxlbWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jv
b3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHRGVmc0VsZW1lbnRJbXBsLmgsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuNApkaWZmIC1wIC11IC1yMS40IGtzdmcyL3N2Zy9TVkdEZWZzRWxlbWVudElt
cGwuaAotLS0ga3N2ZzIvc3ZnL1NWR0RlZnNFbGVtZW50SW1wbC5oCTEgU2VwIDIwMDUgMDc6MzU6
MzYgLTAwMDAJMS40CisrKyBrc3ZnMi9zdmcvU1ZHRGVmc0VsZW1lbnRJbXBsLmgJMSBOb3YgMjAw
NSAxMToxMzoxMiAtMDAwMApAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgS1NWRwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdUcmFuc2Zvcm1hYmxlSW1wbAogICAg
IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0RlZnNFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVu
dFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnBy
ZWZpeCk7CisgICAgICAgIFNWR0RlZnNFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudFB0ciAqZG9jKTsKICAgICAgICAgdmlydHVhbCB+
U1ZHRGVmc0VsZW1lbnRJbXBsKCk7CiAKICAgICAgICAgLy8gRGVyaXZlZCBmcm9tOiAnU1ZHU3R5
bGVkRWxlbWVudEltcGwnCkluZGV4OiBrc3ZnMi9zdmcvU1ZHRGVzY0VsZW1lbnRJbXBsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHRGVz
Y0VsZW1lbnRJbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41CmRpZmYgLXAgLXUgLXIx
LjUga3N2ZzIvc3ZnL1NWR0Rlc2NFbGVtZW50SW1wbC5jcHAKLS0tIGtzdmcyL3N2Zy9TVkdEZXNj
RWxlbWVudEltcGwuY3BwCTUgT2N0IDIwMDUgMDU6MzU6MTggLTAwMDAJMS41CisrKyBrc3ZnMi9z
dmcvU1ZHRGVzY0VsZW1lbnRJbXBsLmNwcAkxIE5vdiAyMDA1IDExOjEzOjEyIC0wMDAwCkBAIC0y
NSw3ICsyNSw3IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCi1TVkdEZXNjRWxlbWVudElt
cGw6OlNWR0Rlc2NFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2Rl
SW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZpeCkgOiBTVkdTdHlsZWRFbGVt
ZW50SW1wbChkb2MsIGlkLCBwcmVmaXgpLCBTVkdMYW5nU3BhY2VJbXBsKCkKK1NWR0Rlc2NFbGVt
ZW50SW1wbDo6U1ZHRGVzY0VsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIEtET006OkRvY3VtZW50UHRyICpkb2MpIDogU1ZHU3R5bGVkRWxlbWVudEltcGwodGFn
TmFtZSwgZG9jKSwgU1ZHTGFuZ1NwYWNlSW1wbCgpCiB7CiB9CiAKQEAgLTM1LDcgKzM1LDcgQEAg
U1ZHRGVzY0VsZW1lbnRJbXBsOjp+U1ZHRGVzY0VsZW1lbnRJbXBsKAogCiBLRE9NOjpET01TdHJp
bmdJbXBsICpTVkdEZXNjRWxlbWVudEltcGw6OmRlc2NyaXB0aW9uKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gbmV3IEtET006OkRPTVN0cmluZ0ltcGwoS0RPTTo6RE9NU3RyaW5nKHRleHRDb250ZW50
KCkpLnN0cmluZygpLnNpbXBsaWZ5V2hpdGVTcGFjZSgpKTsKKyAgICByZXR1cm4gbmV3IEtET006
OkRPTVN0cmluZ0ltcGwoS0RPTTo6RE9NU3RyaW5nKHRleHRDb250ZW50KCkpLnFzdHJpbmcoKS5z
aW1wbGlmeVdoaXRlU3BhY2UoKSk7CiB9CiAKIC8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IGtzdmcy
L3N2Zy9TVkdEZXNjRWxlbWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3Qv
U1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHRGVzY0VsZW1lbnRJbXBsLmgsdgpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuNApkaWZmIC1wIC11IC1yMS40IGtzdmcyL3N2Zy9TVkdEZXNjRWxlbWVudEltcGwu
aAotLS0ga3N2ZzIvc3ZnL1NWR0Rlc2NFbGVtZW50SW1wbC5oCTEgU2VwIDIwMDUgMDc6MzU6MzYg
LTAwMDAJMS40CisrKyBrc3ZnMi9zdmcvU1ZHRGVzY0VsZW1lbnRJbXBsLmgJMSBOb3YgMjAwNSAx
MToxMzoxMiAtMDAwMApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgS1NWRwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdMYW5nU3BhY2VJbXBsCiAgICAgewogICAg
IHB1YmxpYzoKLSAgICAgICAgU1ZHRGVzY0VsZW1lbnRJbXBsKEtET006OkRvY3VtZW50UHRyICpk
b2MsIEtET006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHJlZml4KTsK
KyAgICAgICAgU1ZHRGVzY0VsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIEtET006OkRvY3VtZW50UHRyICpkb2MpOwogICAgICAgICB2aXJ0dWFsIH5TVkdEZXNj
RWxlbWVudEltcGwoKTsKIAogICAgICAgICBLRE9NOjpET01TdHJpbmdJbXBsICpkZXNjcmlwdGlv
bigpIGNvbnN0OwpJbmRleDoga3N2ZzIvc3ZnL1NWR0RvY3VtZW50SW1wbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvc3ZnL1NWR0RvY3VtZW50SW1w
bC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTEKZGlmZiAtcCAtdSAtcjEuMTEga3N2ZzIv
c3ZnL1NWR0RvY3VtZW50SW1wbC5jcHAKLS0tIGtzdmcyL3N2Zy9TVkdEb2N1bWVudEltcGwuY3Bw
CTggT2N0IDIwMDUgMDk6MTg6MTUgLTAwMDAJMS4xMQorKysga3N2ZzIvc3ZnL1NWR0RvY3VtZW50
SW1wbC5jcHAJMSBOb3YgMjAwNSAxMToxMzoxMyAtMDAwMApAQCAtNDgsNyArNDgsNiBAQAogI2lu
Y2x1ZGUgImtzdmcuaCIKIC8vI2luY2x1ZGUgIkVjbWEuaCIKICNpbmNsdWRlIDxrc3ZnMi9LU1ZH
Vmlldy5oPgotI2luY2x1ZGUgIlNWR0V2ZW50SW1wbC5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnRJ
bXBsLmgiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJTVkdEb2N1bWVu
dEltcGwuaCIKQEAgLTU5LDcxICs1OCwxNiBAQAogI2luY2x1ZGUgIlNWR0NTU1N0eWxlU2hlZXRJ
bXBsLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsLmgiCiAjaW5jbHVkZSAiU1ZH
RE9NSW1wbGVtZW50YXRpb25JbXBsLmgiCi0jaW5jbHVkZSAiU1ZHQUVsZW1lbnRJbXBsLmgiCi0j
aW5jbHVkZSAiU1ZHR0VsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHVXNlRWxlbWVudEltcGwu
aCIKLSNpbmNsdWRlICJTVkdTVkdFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR1NldEVsZW1l
bnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHRGVzY0VsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZH
UmVjdEVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHRGVmc0VsZW1lbnRJbXBsLmgiCi0jaW5j
bHVkZSAiU1ZHU3RvcEVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHUGF0aEVsZW1lbnRJbXBs
LmgiCi0jaW5jbHVkZSAiU1ZHTGluZUVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHVmlld0Vs
ZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHVGV4dEVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAi
U1ZHVFNwYW5FbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR0ltYWdlRWxlbWVudEltcGwuaCIK
LSNpbmNsdWRlICJTVkdUaXRsZUVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHQ3Vyc29yRWxl
bWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdGaWx0ZXJFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUg
IlNWR0ZFSW1hZ2VFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR0ZFQmxlbmRFbGVtZW50SW1w
bC5oIgotI2luY2x1ZGUgIlNWR0ZFRmxvb2RFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR0ZF
T2Zmc2V0RWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdGRU1lcmdlRWxlbWVudEltcGwuaCIK
LSNpbmNsdWRlICJTVkdGRU1lcmdlTm9kZUVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHRkVU
dXJidWxlbmNlRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdGRUZ1bmNSRWxlbWVudEltcGwu
aCIKLSNpbmNsdWRlICJTVkdGRUZ1bmNHRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdGRUZ1
bmNCRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJTVkdGRUZ1bmNBRWxlbWVudEltcGwuaCIKLSNp
bmNsdWRlICJTVkdTdHlsZUVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHU3dpdGNoRWxlbWVu
dEltcGwuaCIKICNpbmNsdWRlICJTVkdTY3JpcHRFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNW
R0NpcmNsZUVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHU3ltYm9sRWxlbWVudEltcGwuaCIK
LSNpbmNsdWRlICJTVkdNYXJrZXJFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR0VsbGlwc2VF
bGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50SW1wbC5oIgotI2luY2x1
ZGUgIlNWR1BvbHlnb25FbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR1BhdHRlcm5FbGVtZW50
SW1wbC5oIgotI2luY2x1ZGUgIlNWR1BvbHlsaW5lRWxlbWVudEltcGwuaCIKLSNpbmNsdWRlICJT
VkdDbGlwUGF0aEVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZUNvbG9yRWxlbWVu
dEltcGwuaCIKLSNpbmNsdWRlICJTVkdGRUNvbXBvc2l0ZUVsZW1lbnRJbXBsLmgiCi0jaW5jbHVk
ZSAiU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHRkVHYXVzc2lh
bkJsdXJFbGVtZW50SW1wbC5oIgotI2luY2x1ZGUgIlNWR0xpbmVhckdyYWRpZW50RWxlbWVudElt
cGwuaCIKLSNpbmNsdWRlICJTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnRJbXBsLmgiCi0jaW5jbHVk
ZSAiU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnRJbXBsLmgiCi0jaW5jbHVkZSAiU1ZHRkVDb21w
b25lbnRUcmFuc2ZlckVsZW1lbnRJbXBsLmgiCi0KLSNpbmNsdWRlICJzdmd0YWdzLmMiCi0jaW5j
bHVkZSAic3ZndGFncy5oIgotI2luY2x1ZGUgInN2Z2F0dHJzLmMiCi0jaW5jbHVkZSAic3ZnYXR0
cnMuaCIKKyNpbmNsdWRlICJTVkdFbGVtZW50RmFjdG9yeS5oIgorI2luY2x1ZGUgIlNWR1N0eWxl
RWxlbWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdUaXRsZUVsZW1lbnRJbXBsLmgiCiAKIHVzaW5n
IG5hbWVzcGFjZSBLU1ZHOwogCi1TVkdEb2N1bWVudEltcGw6OlNWR0RvY3VtZW50SW1wbChTVkdE
T01JbXBsZW1lbnRhdGlvbkltcGwgKmksIEtET006OktET01WaWV3ICp2aWV3KSA6IEtET006OkRv
Y3VtZW50SW1wbChpLCB2aWV3LCBJRF9MQVNUX1NWR1RBRyArIDEsIEFUVFJfTEFTVF9TVkdBVFRS
ICsgMSksIEtET006OkNhY2hlZE9iamVjdENsaWVudCgpCitTVkdEb2N1bWVudEltcGw6OlNWR0Rv
Y3VtZW50SW1wbChTVkdET01JbXBsZW1lbnRhdGlvbkltcGwgKmksIEtET006OktET01WaWV3ICp2
aWV3KSA6IEtET006OkRvY3VtZW50SW1wbChpLCB2aWV3KSwgS0RPTTo6Q2FjaGVkT2JqZWN0Q2xp
ZW50KCkKIHsKICAgICBzZXRQYWludERldmljZShzdmdWaWV3KCkpOyAvLyBBc3NpZ24gb3VyIEtT
VkdWaWV3IGFzIGRvY3VtZW50IHBhaW50IGRldmljZQotICAgIAotICAgIEtET006OkRPTVN0cmlu
Z0ltcGwgKnN2Z05hbWVzcGFjZSA9IEtET006Ok5TX1NWRy5oYW5kbGUoKTsKLSAgICBzdmdOYW1l
c3BhY2UtPnJlZigpOwotICAgIG1fbmFtZXNwYWNlTWFwLT5uYW1lcy5pbnNlcnQoMCwgc3ZnTmFt
ZXNwYWNlKTsKLSAgICBtX25hbWVzcGFjZU1hcC0+Y291bnQrKzsKIAogICAgIG1fY2FudmFzVmll
dyA9IDA7CiAgICAgbV9sYXN0VGFyZ2V0ID0gMDsKQEAgLTEzNywxNSArODEsMTIgQEAgU1ZHRG9j
dW1lbnRJbXBsOjpTVkdEb2N1bWVudEltcGwoU1ZHRE9NSQogU1ZHRG9jdW1lbnRJbXBsOjp+U1ZH
RG9jdW1lbnRJbXBsKCkKIHsKICAgICAvLyBGaXJlIFVOTE9BRF9FVkVOVCB1cG9uIGRlc3RydWN0
aW9uLi4uCi0gICAgaWYoS0RPTTo6RG9jdW1lbnRJbXBsOjpoYXNMaXN0ZW5lclR5cGUoS0RPTTo6
VU5MT0FEX0VWRU5UKSkKKyAgICAvL2lmKEtET006OkRvY3VtZW50SW1wbDo6aGFzTGlzdGVuZXJU
eXBlKEtET006OlVOTE9BRF9FVkVOVCkpCiAgICAgewotICAgICAgICBTVkdFdmVudEltcGwgKmV2
ZW50ID0gc3RhdGljX2Nhc3Q8U1ZHRXZlbnRJbXBsICo+KGNyZWF0ZUV2ZW50KEtET006OkRPTVN0
cmluZygiU1ZHRXZlbnRzIikuaGFuZGxlKCkpKTsKLSAgICAgICAgZXZlbnQtPnJlZigpOwotCi0g
ICAgICAgIGV2ZW50LT5pbml0RXZlbnQoS0RPTTo6RE9NU3RyaW5nKCJ1bmxvYWQiKS5oYW5kbGUo
KSwgZmFsc2UsIGZhbHNlKTsKLSAgICAgICAgZGlzcGF0Y2hSZWN1cnNpdmVFdmVudChldmVudCwg
bGFzdENoaWxkKCkpOwotCi0gICAgICAgIGV2ZW50LT5kZXJlZigpOworICAgICAgICBpbnQgZXhj
ZXB0aW9uY29kZTsKKyAgICAgICAgU2hhcmVkUHRyPEtET006OkV2ZW50SW1wbD4gZXZlbnQgPSBj
cmVhdGVFdmVudCgiU1ZHRXZlbnRzIiwgZXhjZXB0aW9uY29kZSk7CisgICAgICAgIGV2ZW50LT5p
bml0RXZlbnQoS0RPTTo6RXZlbnROYW1lczo6dW5sb2FkRXZlbnQsIGZhbHNlLCBmYWxzZSk7Cisg
ICAgICAgIGRpc3BhdGNoUmVjdXJzaXZlRXZlbnQoZXZlbnQuZ2V0KCksIGxhc3RDaGlsZCgpKTsK
ICAgICB9CiAKICAgICBkZWxldGUgbV9zY3JpcHRzSXQ7CkBAIC0xNTgsMzQyICs5OSwxOSBAQCBL
RE9NOjpET01TdHJpbmdJbXBsICpTVkdEb2N1bWVudEltcGw6OnRpCiAgICAgaWYocm9vdEVsZW1l
bnQoKSkKICAgICB7CiAgICAgICAgIGZvcihOb2RlSW1wbCAqY2hpbGQgPSByb290RWxlbWVudCgp
LT5maXJzdENoaWxkKCk7IGNoaWxkICE9IDA7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkp
Ci0gICAgICAgICAgICBpZihjaGlsZC0+aWQoKSA9PSBJRF9USVRMRSkKKyAgICAgICAgICAgIGlm
KGNoaWxkLT5oYXNUYWdOYW1lKFNWR05hbWVzOjp0aXRsZVRhZykpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PFNWR1RpdGxlRWxlbWVudEltcGwgKj4oY2hpbGQpLT50aXRsZSgp
OwogICAgIH0KIAogICAgIHJldHVybiAwOwogfQogCi1LRE9NOjpET01TdHJpbmdJbXBsICpTVkdE
b2N1bWVudEltcGw6OnJlZmVycmVyKCkgY29uc3QKLXsKLSAgICAvLyBUT0RPCi0gICAgcmV0dXJu
IDA7Ci19Ci0KLUtET006OkRPTVN0cmluZ0ltcGwgKlNWR0RvY3VtZW50SW1wbDo6ZG9tYWluKCkg
Y29uc3QKK0tET006OkVsZW1lbnRJbXBsICpTVkdEb2N1bWVudEltcGw6OmNyZWF0ZUVsZW1lbnQo
Y29uc3QgS0RPTTo6RE9NU3RyaW5nJiB0YWdOYW1lLCBpbnQmIGV4Y2VwdGlvbkNvZGUpCiB7Ci0g
ICAgLy8gVE9ETwotICAgIHJldHVybiAwOwotfQotCi1LRE9NOjpET01TdHJpbmdJbXBsICpTVkdE
b2N1bWVudEltcGw6OlVSTCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG5ldyBLRE9NOjpET01TdHJp
bmdJbXBsKG1fdXJsLnByZXR0eVVSTCgpKTsKLX0KLQotU1ZHRWxlbWVudEltcGwgKlNWR0RvY3Vt
ZW50SW1wbDo6Y3JlYXRlU1ZHRWxlbWVudChLRE9NOjpET01TdHJpbmdJbXBsICpwcmVmaXgsIEtE
T006OkRPTVN0cmluZ0ltcGwgKmxvY2FsTmFtZSkKLXsKLSAgICBTVkdFbGVtZW50SW1wbCAqZWxl
bWVudCA9IDA7Ci0KLSAgICBRU3RyaW5nIGxvY2FsID0gKGxvY2FsTmFtZSA/IGxvY2FsTmFtZS0+
c3RyaW5nKCkgOiBRU3RyaW5nOjpudWxsKTsKLSAgICBLRE9NOjpOb2RlSW1wbDo6SWQgaWQgPSBp
bXBsZW1lbnRhdGlvbigpLT5jZGZJbnRlcmZhY2UoKS0+Z2V0VGFnSUQobG9jYWwuYXNjaWkoKSwg
bG9jYWwubGVuZ3RoKCkpOwotICAgIHN3aXRjaChpZCkKLSAgICB7Ci0gICAgICAgIGNhc2UgSURf
U1ZHOgotICAgICAgICB7Ci0gICAgICAgICAgICBlbGVtZW50ID0gbmV3IFNWR1NWR0VsZW1lbnRJ
bXBsKGRvY1B0cigpLCBpZCwgcHJlZml4KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9
Ci0gICAgICAgIGNhc2UgSURfU1RZTEU6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGVsZW1lbnQg
PSBuZXcgU1ZHU3R5bGVFbGVtZW50SW1wbChkb2NQdHIoKSwgaWQsIHByZWZpeCk7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIElEX1NDUklQVDoKLSAgICAgICAg
ewotICAgICAgICAgICAgZWxlbWVudCA9IG5ldyBTVkdTY3JpcHRFbGVtZW50SW1wbChkb2NQdHIo
KSwgaWQsIHByZWZpeCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBj
YXNlIElEX1JFQ1Q6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGVsZW1lbnQgPSBuZXcgU1ZHUmVj
dEVsZW1lbnRJbXBsKGRvY1B0cigpLCBpZCwgcHJlZml4KTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICB9Ci0gICAgICAgIGNhc2UgSURfQ0lSQ0xFOgotICAgICAgICB7Ci0gICAgICAgICAg
ICBlbGVtZW50ID0gbmV3IFNWR0NpcmNsZUVsZW1lbnRJbXBsKGRvY1B0cigpLCBpZCwgcHJlZml4
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgSURfRUxMSVBT
RToKLSAgICAgICAgewotICAgICAgICAgICAgZWxlbWVudCA9IG5ldyBTVkdFbGxpcHNlRWxlbWVu
dEltcGwoZG9jUHRyKCksIGlkLCBwcmVmaXgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IH0KLSAgICAgICAgY2FzZSBJRF9QT0xZTElORToKLSAgICAgICAgewotICAgICAgICAgICAgZWxl
bWVudCA9IG5ldyBTVkdQb2x5bGluZUVsZW1lbnRJbXBsKGRvY1B0cigpLCBpZCwgcHJlZml4KTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgSURfUE9MWUdPTjoK
LSAgICAgICAgewotICAgICAgICAgICAgZWxlbWVudCA9IG5ldyBTVkdQb2x5Z29uRWxlbWVudElt
cGwoZG9jUHRyKCksIGlkLCBwcmVmaXgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0K
LSAgICAgICAgY2FzZSBJRF9HOgotICAgICAgICB7Ci0gICAgICAgICAgICBlbGVtZW50ID0gbmV3
IFNWR0dFbGVtZW50SW1wbChkb2NQdHIoKSwgaWQsIHByZWZpeCk7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgfQotICAgICAgICBjYXNlIElEX1NXSVRDSDoKLSAgICAgICAgewotICAgICAg
ICAgICAgZWxlbWVudCA9IG5ldyBTVkdTd2l0Y2hFbGVtZW50SW1wbChkb2NQdHIoKSwgaWQsIHBy
ZWZpeCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIElEX0RF
RlM6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGVsZW1lbnQgPSBuZXcgU1ZHRGVmc0VsZW1lbnRJ
bXBsKGRvY1B0cigpLCBpZCwgcHJlZml4KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9
Ci0gICAgICAgIGNhc2UgSURfU1RPUDoKLSAgICAgICAgewotICAgICAgICAgICAgZWxlbWVudCA9
IG5ldyBTVkdTdG9wRWxlbWVudEltcGwoZG9jUHRyKCksIGlkLCBwcmVmaXgpOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBJRF9QQVRIOgotICAgICAgICB7Ci0g
ICAgICAgICAgICBlbGVtZW50ID0gbmV3IFNWR1BhdGhFbGVtZW50SW1wbChkb2NQdHIoKSwgaWQs
IHByZWZpeCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIElE
X0lNQUdFOgotICAgICAgICB7Ci0gICAgICAgICAgICBlbGVtZW50ID0gbmV3IFNWR0ltYWdlRWxl
bWVudEltcGwoZG9jUHRyKCksIGlkLCBwcmVmaXgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIH0KLSAgICAgICAgY2FzZSBJRF9DTElQUEFUSDoKLSAgICAgICAgewotICAgICAgICAgICAg
ZWxlbWVudCA9IG5ldyBTVkdDbGlwUGF0aEVsZW1lbnRJbXBsKGRvY1B0cigpLCBpZCwgcHJlZml4
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgSURfQToKLSAg
ICAgICAgewotICAgICAgICAgICAgZWxlbWVudCA9IG5ldyBTVkdBRWxlbWVudEltcGwoZG9jUHRy
KCksIGlkLCBwcmVmaXgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAg
Y2FzZSBJRF9MSU5FOgotICAgICAgICB7Ci0gICAgICAgICAgICBlbGVtZW50ID0gbmV3IFNWR0xp
bmVFbGVtZW50SW1wbChkb2NQdHIoKSwgaWQsIHByZWZpeCk7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgfQotICAgICAgICBjYXNlIElEX0xJTkVBUkdSQURJRU5UOgotICAgICAgICB7Ci0g
ICAgICAgICAgICBlbGVtZW50ID0gbmV3IFNWR0xpbmVhckdyYWRpZW50RWxlbWVudEltcGwoZG9j
UHRyKCksIGlkLCBwcmVmaXgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAg
ICAgY2FzZSBJRF9SQURJQUxHUkFESUVOVDoKLSAgICAgICAgewotICAgICAgICAgICAgZWxlbWVu
dCA9IG5ldyBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnRJbXBsKGRvY1B0cigpLCBpZCwgcHJlZml4
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgSURfVElUTEU6
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGVsZW1lbnQgPSBuZXcgU1ZHVGl0bGVFbGVtZW50SW1w
bChkb2NQdHIoKSwgaWQsIHByZWZpeCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQot
ICAgICAgICBjYXNlIElEX0RFU0M6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGVsZW1lbnQgPSBu
ZXcgU1ZHRGVzY0VsZW1lbnRJbXBsKGRvY1B0cigpLCBpZCwgcHJlZml4KTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgSURfU1lNQk9MOgotICAgICAgICB7Ci0g
ICAgICAgICAgICBlbGVtZW50ID0gbmV3IFNWR1N5bWJvbEVsZW1lbnRJbXBsKGRvY1B0cigpLCBp
ZCwgcHJlZml4KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2Ug
SURfVVNFOgotICAgICAgICB7Ci0gICAgICAgICAgICBlbGVtZW50ID0gbmV3IFNWR1VzZUVsZW1l
bnRJbXBsKGRvY1B0cigpLCBpZCwgcHJlZml4KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICB9Ci0gICAgICAgIGNhc2UgSURfUEFUVEVSTjoKLSAgICAgICAgewotICAgICAgICAgICAgZWxl
bWVudCA9IG5ldyBTVkdQYXR0ZXJuRWxlbWVudEltcGwoZG9jUHRyKCksIGlkLCBwcmVmaXgpOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBJRF9BTklNQVRFQ09M
T1I6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGVsZW1lbnQgPSBuZXcgU1ZHQW5pbWF0ZUNvbG9y
RWxlbWVudEltcGwoZG9jUHRyKCksIGlkLCBwcmVmaXgpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIH0KLSAgICAgICAgY2FzZSBJRF9BTklNQVRFVFJBTlNGT1JNOgotICAgICAgICB7Ci0g
ICAgICAgICAgICBlbGVtZW50ID0gbmV3IFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50SW1wbChk
b2NQdHIoKSwgaWQsIHByZWZpeCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAg
ICAgICBjYXNlIElEX1NFVDoKLSAgICAgICAgewotICAgICAgICAgICAgZWxlbWVudCA9IG5ldyBT
VkdTZXRFbGVtZW50SW1wbChkb2NQdHIoKSwgaWQsIHByZWZpeCk7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgfQotICAgICAgICBjYXNlIElEX0FOSU1BVEU6Ci0gICAgICAgIHsKLSAgICAg
ICAgICAgIGVsZW1lbnQgPSBuZXcgU1ZHQW5pbWF0ZUVsZW1lbnRJbXBsKGRvY1B0cigpLCBpZCwg
cHJlZml4KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgSURf
TUFSS0VSOgotICAgICAgICB7Ci0gICAgICAgICAgICBlbGVtZW50ID0gbmV3IFNWR01hcmtlckVs
ZW1lbnRJbXBsKGRvY1B0cigpLCBpZCwgcHJlZml4KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICB9Ci0gICAgICAgIGNhc2UgSURfVklFVzoKLSAgICAgICAgewotICAgICAgICAgICAgZWxl
bWVudCA9IG5ldyBTVkdWaWV3RWxlbWVudEltcGwoZG9jUHRyKCksIGlkLCBwcmVmaXgpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBJRF9GSUxURVI6Ci0gICAg
ICAgIHsKLSAgICAgICAgICAgIGVsZW1lbnQgPSBuZXcgU1ZHRmlsdGVyRWxlbWVudEltcGwoZG9j
UHRyKCksIGlkLCBwcmVmaXgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAg
ICAgY2FzZSBJRF9GRUdBVVNTSUFOQkxVUjoKLSAgICAgICAgewotICAgICAgICAgICAgZWxlbWVu
dCA9IG5ldyBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnRJbXBsKGRvY1B0cigpLCBpZCwgcHJlZml4
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgSURfRkVGTE9P
RDoKLSAgICAgICAgewotICAgICAgICAgICAgZWxlbWVudCA9IG5ldyBTVkdGRUZsb29kRWxlbWVu
dEltcGwoZG9jUHRyKCksIGlkLCBwcmVmaXgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IH0KLSAgICAgICAgY2FzZSBJRF9GRUJMRU5EOgotICAgICAgICB7Ci0gICAgICAgICAgICBlbGVt
ZW50ID0gbmV3IFNWR0ZFQmxlbmRFbGVtZW50SW1wbChkb2NQdHIoKSwgaWQsIHByZWZpeCk7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIElEX0ZFT0ZGU0VUOgot
ICAgICAgICB7Ci0gICAgICAgICAgICBlbGVtZW50ID0gbmV3IFNWR0ZFT2Zmc2V0RWxlbWVudElt
cGwoZG9jUHRyKCksIGlkLCBwcmVmaXgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0K
LSAgICAgICAgY2FzZSBJRF9GRUNPTVBPU0lURToKLSAgICAgICAgewotICAgICAgICAgICAgZWxl
bWVudCA9IG5ldyBTVkdGRUNvbXBvc2l0ZUVsZW1lbnRJbXBsKGRvY1B0cigpLCBpZCwgcHJlZml4
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgSURfRkVDT0xP
Uk1BVFJJWDoKLSAgICAgICAgewotICAgICAgICAgICAgZWxlbWVudCA9IG5ldyBTVkdGRUNvbG9y
TWF0cml4RWxlbWVudEltcGwoZG9jUHRyKCksIGlkLCBwcmVmaXgpOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBJRF9GRUlNQUdFOgotICAgICAgICB7Ci0gICAg
ICAgICAgICBlbGVtZW50ID0gbmV3IFNWR0ZFSW1hZ2VFbGVtZW50SW1wbChkb2NQdHIoKSwgaWQs
IHByZWZpeCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIElE
X0ZFTUVSR0U6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGVsZW1lbnQgPSBuZXcgU1ZHRkVNZXJn
ZUVsZW1lbnRJbXBsKGRvY1B0cigpLCBpZCwgcHJlZml4KTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICB9Ci0gICAgICAgIGNhc2UgSURfRkVNRVJHRU5PREU6Ci0gICAgICAgIHsKLSAgICAg
ICAgICAgIGVsZW1lbnQgPSBuZXcgU1ZHRkVNZXJnZU5vZGVFbGVtZW50SW1wbChkb2NQdHIoKSwg
aWQsIHByZWZpeCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNl
IElEX0ZFQ09NUE9ORU5UVFJBTlNGRVI6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGVsZW1lbnQg
PSBuZXcgU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnRJbXBsKGRvY1B0cigpLCBpZCwgcHJl
Zml4KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgSURfRkVG
VU5DUjoKLSAgICAgICAgewotICAgICAgICAgICAgZWxlbWVudCA9IG5ldyBTVkdGRUZ1bmNSRWxl
bWVudEltcGwoZG9jUHRyKCksIGlkLCBwcmVmaXgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIH0KLSAgICAgICAgY2FzZSBJRF9GRUZVTkNHOgotICAgICAgICB7Ci0gICAgICAgICAgICBl
bGVtZW50ID0gbmV3IFNWR0ZFRnVuY0dFbGVtZW50SW1wbChkb2NQdHIoKSwgaWQsIHByZWZpeCk7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIElEX0ZFRlVOQ0I6
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGVsZW1lbnQgPSBuZXcgU1ZHRkVGdW5jUkVsZW1lbnRJ
bXBsKGRvY1B0cigpLCBpZCwgcHJlZml4KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9
Ci0gICAgICAgIGNhc2UgSURfRkVGVU5DQToKLSAgICAgICAgewotICAgICAgICAgICAgZWxlbWVu
dCA9IG5ldyBTVkdGRUZ1bmNBRWxlbWVudEltcGwoZG9jUHRyKCksIGlkLCBwcmVmaXgpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBJRF9GRVRVUkJVTEVOQ0U6
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGVsZW1lbnQgPSBuZXcgU1ZHRkVUdXJidWxlbmNlRWxl
bWVudEltcGwoZG9jUHRyKCksIGlkLCBwcmVmaXgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIH0KLSAgICAgICAgY2FzZSBJRF9URVhUOgotICAgICAgICB7Ci0gICAgICAgICAgICBlbGVt
ZW50ID0gbmV3IFNWR1RleHRFbGVtZW50SW1wbChkb2NQdHIoKSwgaWQsIHByZWZpeCk7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIElEX1RTUEFOOgotICAgICAg
ICB7Ci0gICAgICAgICAgICBlbGVtZW50ID0gbmV3IFNWR1RTcGFuRWxlbWVudEltcGwoZG9jUHRy
KCksIGlkLCBwcmVmaXgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAg
Y2FzZSBJRF9DVVJTT1I6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGVsZW1lbnQgPSBuZXcgU1ZH
Q3Vyc29yRWxlbWVudEltcGwoZG9jUHRyKCksIGlkLCBwcmVmaXgpOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGVsZW1lbnQgPSAw
OwotICAgIH07Ci0KLSAgICByZXR1cm4gZWxlbWVudDsKLX0KLQotS0RPTTo6RWxlbWVudEltcGwg
KlNWR0RvY3VtZW50SW1wbDo6Y3JlYXRlRWxlbWVudChLRE9NOjpET01TdHJpbmdJbXBsICp0YWdO
YW1lKQotewotICAgIGlmKHRhZ05hbWUpCi0gICAgICAgIHRhZ05hbWUtPnJlZigpOwotCi0gICAg
U1ZHRWxlbWVudEltcGwgKmVsZW0gPSBjcmVhdGVTVkdFbGVtZW50KDAsIHRhZ05hbWUpOworICAg
IEtET006OlF1YWxpZmllZE5hbWUgcW5hbWUoS0RPTTo6bnVsbEF0b20sIHRhZ05hbWUuaW1wbCgp
LCBTVkdOYW1lczo6c3ZnTmFtZXNwYWNlVVJJKTsKKyAgICBTVkdFbGVtZW50SW1wbCAqZWxlbSA9
IFNWR0VsZW1lbnRGYWN0b3J5OjpjcmVhdGVTVkdFbGVtZW50KHFuYW1lLCB0aGlzLCBmYWxzZSk7
CiAgICAgaWYoIWVsZW0pCi0gICAgICAgIHJldHVybiBLRE9NOjpEb2N1bWVudEltcGw6OmNyZWF0
ZUVsZW1lbnQodGFnTmFtZSk7Ci0KLSAgICBpZih0YWdOYW1lKQotICAgICAgICB0YWdOYW1lLT5k
ZXJlZigpOwotCi0gICAgcmV0dXJuIGVsZW07Ci19Ci0KLUtET006OkVsZW1lbnRJbXBsICpTVkdE
b2N1bWVudEltcGw6OmNyZWF0ZUVsZW1lbnROUyhLRE9NOjpET01TdHJpbmdJbXBsICpuYW1lc3Bh
Y2VVUklJbXBsLCBLRE9NOjpET01TdHJpbmdJbXBsICpxdWFsaWZpZWROYW1lKQotewotICAgIEtE
T006OkVsZW1lbnRJbXBsICplbGVtID0gTlVMTDsKLSAgICBpZihuYW1lc3BhY2VVUklJbXBsKQot
ICAgICAgICBuYW1lc3BhY2VVUklJbXBsLT5yZWYoKTsKLSAgICBpZihxdWFsaWZpZWROYW1lKQot
ICAgICAgICBxdWFsaWZpZWROYW1lLT5yZWYoKTsKLQotICAgIEtET006OkRPTVN0cmluZ0ltcGwg
KnByZWZpeCA9IDAsICpsb2NhbE5hbWUgPSAwOwotICAgIEtET006OkhlbHBlcjo6U3BsaXRQcmVm
aXhMb2NhbE5hbWUocXVhbGlmaWVkTmFtZSwgcHJlZml4LCBsb2NhbE5hbWUpOwotCi0gICAgaWYo
cHJlZml4KQotICAgICAgICBwcmVmaXgtPnJlZigpOwotICAgIGlmKGxvY2FsTmFtZSkKLSAgICAg
ICAgbG9jYWxOYW1lLT5yZWYoKTsKLQotICAgIEtET006OkRPTVN0cmluZyBuYW1lc3BhY2VVUkko
bmFtZXNwYWNlVVJJSW1wbCk7Ci0gICAgaWYoISgoIXByZWZpeCB8fCBwcmVmaXgtPmxlbmd0aCgp
ID09IDApIHx8IEtET006OkRPTVN0cmluZyhwcmVmaXgpID09ICJzdmciKSAmJgotICAgICAgICAo
bmFtZXNwYWNlVVJJID09IEtET006Ok5TX1NWRyB8fCBuYW1lc3BhY2VVUkkuaXNFbXB0eSgpKSkK
LSAgICAgICAgZWxlbSA9IEtET006OkRvY3VtZW50SW1wbDo6Y3JlYXRlRWxlbWVudE5TKG5hbWVz
cGFjZVVSSUltcGwsIHF1YWxpZmllZE5hbWUpOwotICAgIGVsc2UgewotICAgICAgICBpbnQgZHVt
bXk7Ci0gICAgICAgIEtET006OkhlbHBlcjo6Q2hlY2tRdWFsaWZpZWROYW1lKHF1YWxpZmllZE5h
bWUsIG5hbWVzcGFjZVVSSUltcGwsIGR1bW15LCBmYWxzZSwgZmFsc2UpOwotCi0gICAgICAgIGVs
ZW0gPSBjcmVhdGVTVkdFbGVtZW50KHByZWZpeCwgbG9jYWxOYW1lKTsKLSAgICAgICAgaWYoIWVs
ZW0pCi0gICAgICAgICAgICBlbGVtID0gS0RPTTo6RG9jdW1lbnRJbXBsOjpjcmVhdGVFbGVtZW50
TlMobmFtZXNwYWNlVVJJSW1wbCwgcXVhbGlmaWVkTmFtZSk7Ci0gICAgfQotCi0gICAgaWYocHJl
Zml4KQotICAgICAgICBwcmVmaXgtPmRlcmVmKCk7Ci0gICAgaWYobG9jYWxOYW1lKQotICAgICAg
ICBsb2NhbE5hbWUtPmRlcmVmKCk7Ci0gICAgaWYobmFtZXNwYWNlVVJJSW1wbCkKLSAgICAgICAg
bmFtZXNwYWNlVVJJSW1wbC0+ZGVyZWYoKTsKLSAgICBpZihxdWFsaWZpZWROYW1lKQotICAgICAg
ICBxdWFsaWZpZWROYW1lLT5kZXJlZigpOworICAgICAgICByZXR1cm4gS0RPTTo6RG9jdW1lbnRJ
bXBsOjpjcmVhdGVFbGVtZW50KHRhZ05hbWUsIGV4Y2VwdGlvbkNvZGUpOwogCiAgICAgcmV0dXJu
IGVsZW07CiB9CkBAIC01MDEsMjMgKzExOSwxMiBAQCBLRE9NOjpFbGVtZW50SW1wbCAqU1ZHRG9j
dW1lbnRJbXBsOjpjcmVhCiBTVkdTVkdFbGVtZW50SW1wbCAqU1ZHRG9jdW1lbnRJbXBsOjpyb290
RWxlbWVudCgpIGNvbnN0CiB7CiAgICAgS0RPTTo6RWxlbWVudEltcGwgKmVsZW0gPSBkb2N1bWVu
dEVsZW1lbnQoKTsKLSAgICBpZihlbGVtICYmIGVsZW0tPmlkKCkgPT0gSURfU1ZHKQorICAgIGlm
KGVsZW0gJiYgZWxlbS0+aGFzVGFnTmFtZShTVkdOYW1lczo6c3ZnVGFnKSkKICAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFNWR1NWR0VsZW1lbnRJbXBsICo+KGVsZW0pOwogCiAgICAgcmV0dXJu
IDA7CiB9CiAKLUtET006OkV2ZW50SW1wbCAqU1ZHRG9jdW1lbnRJbXBsOjpjcmVhdGVFdmVudChL
RE9NOjpET01TdHJpbmdJbXBsICpldmVudFR5cGVJbXBsKQotewotICAgIFFTdHJpbmcgZXZlbnRU
eXBlID0gKGV2ZW50VHlwZUltcGwgPyBldmVudFR5cGVJbXBsLT5zdHJpbmcoKSA6IFFTdHJpbmc6
Om51bGwpOwotICAgIGlmKGV2ZW50VHlwZSA9PSBRU3RyaW5nOjpmcm9tTGF0aW4xKCJTVkdFdmVu
dHMiKSkKLSAgICAgICAgcmV0dXJuIG5ldyBTVkdFdmVudEltcGwoKTsKLSAgICBlbHNlIGlmKGV2
ZW50VHlwZSA9PSBRU3RyaW5nOjpmcm9tTGF0aW4xKCJTVkdab29tRXZlbnRzIikpCi0gICAgICAg
IHJldHVybiBuZXcgU1ZHWm9vbUV2ZW50SW1wbCgpOwotCi0gICAgcmV0dXJuIERvY3VtZW50RXZl
bnRJbXBsOjpjcmVhdGVFdmVudChldmVudFR5cGVJbXBsKTsKLX0KLQogdm9pZCBTVkdEb2N1bWVu
dEltcGw6Om5vdGlmeUZpbmlzaGVkKEtET006OkNhY2hlZE9iamVjdCAqZmluaXNoZWRPYmopCiB7
CiAgICAgLy8gVGhpcyBpcyBjYWxsZWQgd2hlbiBhIHNjcmlwdCBoYXMgZmluaXNoZWQgbG9hZGlu
ZyB0aGF0IHdhcyByZXF1ZXN0ZWQgZnJvbQpAQCAtNTMwLDcgKzEzNyw3IEBAIHZvaWQgU1ZHRG9j
dW1lbnRJbXBsOjpub3RpZnlGaW5pc2hlZChLRE8KICAgICAgICAgbV9jYWNoZWRTY3JpcHQtPmRl
cmVmKHRoaXMpOwogICAgICAgICBtX2NhY2hlZFNjcmlwdCA9IDA7CiAgICAgICAgIAotICAgICAg
ICBTVkdTY3JpcHRFbGVtZW50SW1wbDo6ZXhlY3V0ZVNjcmlwdCh0aGlzLCBLRE9NOjpET01TdHJp
bmcoc2NyaXB0U291cmNlLnN0cmluZygpKS5oYW5kbGUoKSk7CisgICAgICAgIFNWR1NjcmlwdEVs
ZW1lbnRJbXBsOjpleGVjdXRlU2NyaXB0KHRoaXMsIEtET006OkRPTVN0cmluZyhzY3JpcHRTb3Vy
Y2UucXN0cmluZygpKS5pbXBsKCkpOwogICAgICAgICBleGVjdXRlU2NyaXB0cyh0cnVlKTsKICAg
ICB9CiB9CkBAIC01NjYsMTczICsxNzMsNTQgQEAgdm9pZCBTVkdEb2N1bWVudEltcGw6OmRpc3Bh
dGNoUmVjdXJzaXZlRQogICAgIC8vIEl0ZXJhdGUgdGhlIHRyZWUsIGJhY2t3YXJkcywgYW5kIGRp
c3BhdGNoIHRoZSBldmVudCB0byBldmVyeSBjaGlsZAogICAgIGZvcihLRE9NOjpOb2RlSW1wbCAq
biA9IG9iajsgbiAhPSAwOyBuID0gbi0+cHJldmlvdXNTaWJsaW5nKCkpCiAgICAgeworICAgICAg
ICBpbnQgZXhjZXB0aW9uY29kZTsKICAgICAgICAgaWYobi0+aGFzQ2hpbGROb2RlcygpKQogICAg
ICAgICB7CiAgICAgICAgICAgICAvLyBEaXNwYXRjaCB0byBhbGwgY2hpbGRyZW4KICAgICAgICAg
ICAgIGRpc3BhdGNoUmVjdXJzaXZlRXZlbnQoZXZlbnQsIG4tPmxhc3RDaGlsZCgpKTsKIAogICAg
ICAgICAgICAgLy8gRGlzcGF0Y2gsIGxvY2FsbHkKLSAgICAgICAgICAgIG4tPmRpc3BhdGNoRXZl
bnQoZXZlbnQpOworICAgICAgICAgICAgbi0+ZGlzcGF0Y2hFdmVudChldmVudCwgZXhjZXB0aW9u
Y29kZSk7CiAgICAgICAgIH0KICAgICAgICAgZWxzZQotICAgICAgICAgICAgbi0+ZGlzcGF0Y2hF
dmVudChldmVudCk7CisgICAgICAgICAgICBuLT5kaXNwYXRjaEV2ZW50KGV2ZW50LCBleGNlcHRp
b25jb2RlKTsKICAgICB9CiB9CiAKIHZvaWQgU1ZHRG9jdW1lbnRJbXBsOjpkaXNwYXRjaFpvb21F
dmVudChmbG9hdCBwcmV2U2NhbGUsIGZsb2F0IG5ld1NjYWxlKQogewogICAgIC8vIGRpc3BhdGNo
IHpvb20gZXZlbnQKLSAgICBTVkdab29tRXZlbnRJbXBsICpldmVudCA9IHN0YXRpY19jYXN0PFNW
R1pvb21FdmVudEltcGwgKj4oY3JlYXRlRXZlbnQoS0RPTTo6RE9NU3RyaW5nKCJTVkdab29tRXZl
bnRzIikuaGFuZGxlKCkpKTsKLSAgICBldmVudC0+cmVmKCk7Ci0KLSAgICBldmVudC0+aW5pdEV2
ZW50KEtET006OkRPTVN0cmluZygiem9vbSIpLmhhbmRsZSgpLCB0cnVlLCBmYWxzZSk7CisgICAg
aW50IGV4Y2VwdGlvbmNvZGU7CisgICAgU2hhcmVkUHRyPFNWR1pvb21FdmVudEltcGw+IGV2ZW50
ID0gc3RhdGljX2Nhc3Q8U1ZHWm9vbUV2ZW50SW1wbCAqPihjcmVhdGVFdmVudCgiU1ZHWm9vbUV2
ZW50cyIsIGV4Y2VwdGlvbmNvZGUpKTsKKyAgICBldmVudC0+aW5pdEV2ZW50KEtET006OkV2ZW50
TmFtZXM6Onpvb21FdmVudCwgdHJ1ZSwgZmFsc2UpOwogICAgIGV2ZW50LT5zZXRQcmV2aW91c1Nj
YWxlKHByZXZTY2FsZSk7CiAgICAgZXZlbnQtPnNldE5ld1NjYWxlKG5ld1NjYWxlKTsKLSAgICBy
b290RWxlbWVudCgpLT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKLQotICAgIGV2ZW50LT5kZXJlZigp
OworICAgIHJvb3RFbGVtZW50KCktPmRpc3BhdGNoRXZlbnQoZXZlbnQuZ2V0KCksIGV4Y2VwdGlv
bmNvZGUpOwogfQogCiB2b2lkIFNWR0RvY3VtZW50SW1wbDo6ZGlzcGF0Y2hTY3JvbGxFdmVudCgp
CiB7CiAgICAgLy8gZGlzcGF0Y2ggem9vbSBldmVudAotICAgIFNWR0V2ZW50SW1wbCAqZXZlbnQg
PSBzdGF0aWNfY2FzdDxTVkdFdmVudEltcGwgKj4oY3JlYXRlRXZlbnQoS0RPTTo6RE9NU3RyaW5n
KCJTVkdFdmVudHMiKS5oYW5kbGUoKSkpOwotICAgIGV2ZW50LT5yZWYoKTsKLQotICAgIGV2ZW50
LT5pbml0RXZlbnQoS0RPTTo6RE9NU3RyaW5nKCJzY3JvbGwiKS5oYW5kbGUoKSwgdHJ1ZSwgZmFs
c2UpOwotICAgIHJvb3RFbGVtZW50KCktPmRpc3BhdGNoRXZlbnQoZXZlbnQpOwotCi0gICAgZXZl
bnQtPmRlcmVmKCk7CisgICAgaW50IGV4Y2VwdGlvbmNvZGU7CisgICAgU2hhcmVkUHRyPEtET006
OkV2ZW50SW1wbD4gZXZlbnQgPSBjcmVhdGVFdmVudCgiU1ZHRXZlbnRzIiwgZXhjZXB0aW9uY29k
ZSk7CisgICAgZXZlbnQtPmluaXRFdmVudChLRE9NOjpFdmVudE5hbWVzOjpzY3JvbGxFdmVudCwg
dHJ1ZSwgZmFsc2UpOworICAgIHJvb3RFbGVtZW50KCktPmRpc3BhdGNoRXZlbnQoZXZlbnQuZ2V0
KCksIGV4Y2VwdGlvbmNvZGUpOwogfQogCiBib29sIFNWR0RvY3VtZW50SW1wbDo6ZGlzcGF0Y2hL
ZXlFdmVudChLRE9NOjpFdmVudFRhcmdldEltcGwgKnRhcmdldCwgUUtleUV2ZW50ICprZXksIGJv
b2wga2V5cHJlc3MpCiB7CiAgICAgLy8gZGlzcGF0Y2gga2V5IGV2ZW50Ci0gICAgS0RPTTo6S2V5
Ym9hcmRFdmVudEltcGwgKmtleUV2ZW50SW1wbCA9IHN0YXRpY19jYXN0PEtET006OktleWJvYXJk
RXZlbnRJbXBsICo+KGNyZWF0ZUV2ZW50KEtET006OkRPTVN0cmluZygiS2V5Ym9hcmRFdmVudHMi
KS5oYW5kbGUoKSkpOwotICAgIGtleUV2ZW50SW1wbC0+cmVmKCk7Ci0KKyAgICBpbnQgZXhjZXB0
aW9uY29kZTsKKyAgICBTaGFyZWRQdHI8S0RPTTo6S2V5Ym9hcmRFdmVudEltcGw+IGtleUV2ZW50
SW1wbCA9IHN0YXRpY19jYXN0PEtET006OktleWJvYXJkRXZlbnRJbXBsICo+KGNyZWF0ZUV2ZW50
KCJLZXlib2FyZEV2ZW50cyIsIGV4Y2VwdGlvbmNvZGUpKTsKICAgICBrZXlFdmVudEltcGwtPmlu
aXRLZXlib2FyZEV2ZW50KGtleSk7Ci0gICAgdGFyZ2V0LT5kaXNwYXRjaEV2ZW50KGtleUV2ZW50
SW1wbCk7CisgICAgdGFyZ2V0LT5kaXNwYXRjaEV2ZW50KGtleUV2ZW50SW1wbC5nZXQoKSwgZXhj
ZXB0aW9uY29kZSk7CiAKLSAgICBib29sIHIgPSAvKmtleUV2ZW50SW1wbC0+ZGVmYXVsdEhhbmRs
ZWQoKSB8fCovIGtleUV2ZW50SW1wbC0+ZGVmYXVsdFByZXZlbnRlZCgpOwotICAgIGtleUV2ZW50
SW1wbC0+ZGVyZWYoKTsKLSAgICByZXR1cm4gcjsKKyAgICByZXR1cm4gLyprZXlFdmVudEltcGwt
PmRlZmF1bHRIYW5kbGVkKCkgfHwqLyBrZXlFdmVudEltcGwtPmRlZmF1bHRQcmV2ZW50ZWQoKTsK
IH0KIAogS0RPTTo6RE9NU3RyaW5nSW1wbCAqU1ZHRG9jdW1lbnRJbXBsOjpkZWZhdWx0TlMoKSBj
b25zdAogewotICAgIHJldHVybiBLRE9NOjpOU19TVkcuaGFuZGxlKCk7Ci19Ci0KLXZvaWQgU1ZH
RG9jdW1lbnRJbXBsOjpyZWNhbGNTdHlsZVNlbGVjdG9yKCkKLXsKLSAgICBpZighYXR0YWNoZWQo
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXNzZXJ0KG1fcGVuZGluZ1N0eWxlc2hlZXRzID09
IDApOwotCi0gICAgUVN0cmluZyBzaGVldFVzZWQ7IC8vIEVtcHR5IHNoZWV0Ci0KLSAgICBRM1B0
ckxpc3Q8S0RPTTo6U3R5bGVTaGVldEltcGw+IG9sZFN0eWxlU2hlZXRzID0gbV9zdHlsZVNoZWV0
cy0+c3R5bGVTaGVldHM7Ci0gICAgbV9zdHlsZVNoZWV0cy0+c3R5bGVTaGVldHMuY2xlYXIoKTsK
LQotICAgIGZvcihpbnQgaSA9IDA7IGkgPCAyOyBpKyspCi0gICAgewotICAgICAgICBtX2F2YWls
YWJsZVNoZWV0cy5jbGVhcigpOwotI2lmbmRlZiBBUFBMRV9DT01QSUxFX0hBQ0sKLSAgICAgICAg
bV9hdmFpbGFibGVTaGVldHMgPDwgaTE4bigiQmFzaWMgUGFnZSBTdHlsZSIpOwotI2VuZGlmCi0K
LSAgICAgICAgZm9yKEtET006Ok5vZGVJbXBsICpuID0gdGhpczsgbiAhPSAwOyBuID0gbi0+dHJh
dmVyc2VOZXh0Tm9kZSgpKQotICAgICAgICB7Ci0gICAgICAgICAgICBLRE9NOjpTdHlsZVNoZWV0
SW1wbCAqc2hlZXQgPSAwOwotCi0gICAgICAgICAgICBpZihuLT5ub2RlVHlwZSgpID09IEtET006
OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAvLyBQcm9jZXNzaW5nIGluc3RydWN0aW9uIChYTUwgZG9jdW1lbnRzIG9ubHkpCi0gICAg
ICAgICAgICAgICAgS0RPTTo6UHJvY2Vzc2luZ0luc3RydWN0aW9uSW1wbCAqcGkgPSBzdGF0aWNf
Y2FzdDxLRE9NOjpQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBsICo+KG4pOwotICAgICAgICAgICAg
ICAgIHNoZWV0ID0gcGktPnNoZWV0KCk7Ci0gICAgICAgICAgICAgICAgaWYoIXNoZWV0ICYmIHBp
LT5sb2NhbEhyZWYoKSAmJiAhcGktPmxvY2FsSHJlZigpLT5pc0VtcHR5KCkpCi0gICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICAvLyBQcm9jZXNzaW5nIGluc3RydWN0aW9uIHdp
dGggcmVmZXJlbmNlIHRvIGFuIGVsZW1lbnQgaW4gdGhpcyBkb2N1bWVudAotICAgICAgICAgICAg
ICAgICAgICAvLyAtIGUuZy4gPD94bWwtc3R5bGVzaGVldCBocmVmPSIjbXlzdHlsZSI+LCB3aXRo
IHRoZSBlbGVtZW50Ci0gICAgICAgICAgICAgICAgICAgIC8vIDxmb28gaWQ9Im15c3R5bGUiPmhl
YWRpbmcgeyBjb2xvcjogcmVkOyB9PC9mb28+IGF0IHNvbWUgbG9jYXRpb24gaW4gdGhlIGRvY3Vt
ZW50Ci0gICAgICAgICAgICAgICAgICAgIEtET006OkVsZW1lbnRJbXBsICplbGVtID0gZ2V0RWxl
bWVudEJ5SWQocGktPmxvY2FsSHJlZigpKTsKLSAgICAgICAgICAgICAgICAgICAgaWYoZWxlbSkK
LSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgS0RPTTo6RE9N
U3RyaW5nIHNoZWV0VGV4dCgiIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmb3IoS0RPTTo6
Tm9kZUltcGwgKmMgPSBlbGVtLT5maXJzdENoaWxkKCk7IGMgIT0gMDsgYyA9IGMtPm5leHRTaWJs
aW5nKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYoYy0+bm9kZVR5cGUoKSA9PSBLRE9NOjpURVhUX05PREUgfHwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjLT5ub2RlVHlwZSgpID09IEtET006OkNEQVRBX1NFQ1RJT05f
Tk9ERSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNoZWV0VGV4dCArPSBLRE9NOjpET01TdHJpbmcoYy0+bm9kZVZhbHVlKCkp
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgICAgICAgICAgICAgS0RPTTo6Q1NTU3R5bGVTaGVldEltcGwgKmNz
c1NoZWV0ID0gY3JlYXRlQ1NTU3R5bGVTaGVldCh0aGlzLCAwKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGNzc1NoZWV0LT5wYXJzZVN0cmluZyhzaGVldFRleHQuaGFuZGxlKCkpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgcGktPnNldFN0eWxlU2hlZXQoY3NzU2hlZXQpOwotCi0gICAgICAg
ICAgICAgICAgICAgICAgICBzaGVldCA9IGNzc1NoZWV0OwotICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIFFTdHJpbmcgdGl0bGU7Ci0KLSAgICAgICAgICAg
ICAgICBpZihuICYmIG4tPmlkKCkgPT0gSURfU1RZTEUpCi0gICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAvLyA8U1RZTEU+IGVsZW1lbnQKLSAgICAgICAgICAgICAgICAgICAg
U1ZHU3R5bGVFbGVtZW50SW1wbCAqcyA9IHN0YXRpY19jYXN0PFNWR1N0eWxlRWxlbWVudEltcGwq
PihuKTsKLSAgICAgICAgICAgICAgICAgICAgaWYoIXMtPmlzTG9hZGluZygpKQotICAgICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzaGVldCA9IHMtPnNoZWV0KCk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZihzaGVldCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aXRsZSA9IEtET006OkRPTVN0cmluZyhzLT5nZXRBdHRyaWJ1dGUoQVRUUl9USVRM
RSkpLnN0cmluZygpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICAgICAgaWYoIXRpdGxlLmlzRW1wdHkoKSAmJiBzaGVldFVzZWQuaXNFbXB0
eSgpKQotICAgICAgICAgICAgICAgICAgICBzaGVldFVzZWQgPSB0aXRsZTsKLQotICAgICAgICAg
ICAgICAgIGlmKCF0aXRsZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICBpZih0aXRsZSAhPSBzaGVldFVzZWQpCi0gICAgICAgICAgICAgICAgICAgICAg
ICBzaGVldCA9IDA7IC8vIGRvbid0IHVzZSBpdAotCi0gICAgICAgICAgICAgICAgICAgIHRpdGxl
ID0gdGl0bGUucmVwbGFjZSgnJicsIFFTdHJpbmc6OmZyb21MYXRpbjEoIiYmIikpOwotCi0gICAg
ICAgICAgICAgICAgICAgIGlmKCFtX2F2YWlsYWJsZVNoZWV0cy5jb250YWlucyh0aXRsZSkpCi0g
ICAgICAgICAgICAgICAgICAgICAgICBtX2F2YWlsYWJsZVNoZWV0cy5hcHBlbmQodGl0bGUpOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYoc2hlZXQp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgc2hlZXQtPnJlZigpOwotICAgICAgICAg
ICAgICAgIG1fc3R5bGVTaGVldHMtPnN0eWxlU2hlZXRzLmFwcGVuZChzaGVldCk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICAvLyB3ZSdyZSBkb25lIGlmIHdlIGRvbid0IHNl
bGVjdCBhbiBhbHRlcm5hdGl2ZSBzaGVldCBvciB3ZSBmb3VuZCB0aGUgc2hlZXQgd2Ugc2VsZWN0
ZWQKLSAgICAgICAgaWYoc2hlZXRVc2VkLmlzRW1wdHkoKSB8fCBtX2F2YWlsYWJsZVNoZWV0cy5j
b250YWlucyhzaGVldFVzZWQpKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgLy8g
RGUtcmVmZXJlbmNlIGFsbCB0aGUgc3R5bGVzaGVldHMgaW4gdGhlIG9sZCBsaXN0Ci0gICAgUTNQ
dHJMaXN0SXRlcmF0b3I8S0RPTTo6U3R5bGVTaGVldEltcGw+IGl0KG9sZFN0eWxlU2hlZXRzKTsK
LSAgICBmb3IoO2l0LmN1cnJlbnQoKTsgKytpdCkKLSAgICAgICAgaXQuY3VycmVudCgpLT5kZXJl
ZigpOwotCi0gICAgUVN0cmluZyB1c2VyU2hlZXQgPSBtX3VzZXJTaGVldDsKLSAgICBpZihtX3Zp
ZXcgJiYgbV92aWV3LT5tZWRpYVR5cGUoKSA9PSBRU3RyaW5nOjpmcm9tTGF0aW4xKCJwcmludCIp
KQotICAgICAgICB1c2VyU2hlZXQgKz0gbV9wcmludFNoZWV0OwotCi0gICAgLy8gQ3JlYXRlIGEg
bmV3IHN0eWxlIHNlbGVjdG9yCi0gICAgZGVsZXRlIG1fc3R5bGVTZWxlY3RvcjsKLSAgICBtX3N0
eWxlU2VsZWN0b3IgPSBjcmVhdGVTdHlsZVNlbGVjdG9yKHVzZXJTaGVldCk7CisgICAgcmV0dXJu
IEtET006Ok5TX1NWRy5pbXBsKCk7CiB9CiAKIEtET006OkNTU1N0eWxlU2VsZWN0b3IgKlNWR0Rv
Y3VtZW50SW1wbDo6Y3JlYXRlU3R5bGVTZWxlY3Rvcihjb25zdCBRU3RyaW5nICZ1c2Vyc2hlZXQp
CkBAIC03NTMsNyArMjQxLDExIEBAIHZvaWQgU1ZHRG9jdW1lbnRJbXBsOjphdHRhY2goKQogICAg
IGFzc2VydCghbV9zdHlsZVNlbGVjdG9yKTsKICAgICBtX3N0eWxlU2VsZWN0b3IgPSBjcmVhdGVT
dHlsZVNlbGVjdG9yKG1fdXNlclNoZWV0KTsKIAorI2lmZGVmIEFQUExFX0NIQU5HRVMKKyAgICBE
b2N1bWVudEltcGw6OmF0dGFjaCgpOworI2Vsc2UKICAgICBOb2RlQmFzZUltcGw6OmF0dGFjaCgp
OworI2VuZGlmCiB9CiAKIHZvaWQgU1ZHRG9jdW1lbnRJbXBsOjphZGRTY3JpcHRzKEtET006Ok5v
ZGVJbXBsICpuKQpAQCAtNzYxLDkgKzI1Myw5IEBAIHZvaWQgU1ZHRG9jdW1lbnRJbXBsOjphZGRT
Y3JpcHRzKEtET006Ok4KICAgICBpZighbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gUmVj
dXJzaXZlbHkgZ28gdGhyb3VnaCB0aGUgZW50aXJlIGRvY3VtZW50IHRyZWUsIGxvb2tpbmcgZm9y
IGh0bWwgPHNjcmlwdD4gdGFncy4KKyAgICAvLyBSZWN1cnNpdmVseSBnbyB0aHJvdWdoIHRoZSBl
bnRpcmUgZG9jdW1lbnQgdHJlZSwgbG9va2luZyBmb3Igc3ZnIDxzY3JpcHQ+IHRhZ3MuCiAgICAg
Ly8gRm9yIGVhY2ggb2YgdGhlc2UgdGhhdCBpcyBmb3VuZCwgYWRkIGl0IHRvIHRoZSBtX3Njcmlw
dHMgbGlzdCBmcm9tIHdoaWNoIHRoZXkgd2lsbCBiZSBleGVjdXRlZAotICAgIGlmKG4tPmxvY2Fs
SWQoKSA9PSBJRF9TQ1JJUFQpCisgICAgaWYgKG4tPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnNjcmlw
dFRhZykpCiAgICAgICAgIG1fc2NyaXB0cy5hcHBlbmQoc3RhdGljX2Nhc3Q8U1ZHU2NyaXB0RWxl
bWVudEltcGwgKj4obikpOwogCiAgICAgTm9kZUltcGwgKmNoaWxkOwpAQCAtNzgwLDEzICsyNzIs
MTIgQEAgdm9pZCBTVkdEb2N1bWVudEltcGw6OmV4ZWN1dGVTY3JpcHRzKGJvbwogICAgIHdoaWxl
KChzY3JpcHQgPSBtX3NjcmlwdHNJdC0+Y3VycmVudCgpKSkKICAgICB7CiAgICAgICAgIEtET006
OkRPTVN0cmluZyBocmVmQXR0cihzY3JpcHQtPmhyZWYoKS0+YmFzZVZhbCgpKTsKLSAgICAgICAg
UVN0cmluZyBjaGFyc2V0OyAvLyBUT0RPIG1fc2NyaXB0c0l0LT5jdXJyZW50KCktPmdldEF0dHJp
YnV0ZShBVFRSX0NIQVJTRVQpLnN0cmluZygpOworICAgICAgICBRU3RyaW5nIGNoYXJzZXQ7IC8v
IFRPRE8gbV9zY3JpcHRzSXQtPmN1cnJlbnQoKS0+Z2V0QXR0cmlidXRlKFNWR05hbWVzOjpjaGFy
c2V0QXR0cikucXN0cmluZygpOwogCiAgICAgICAgIGlmKCFocmVmQXR0ci5pc0VtcHR5KCkpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIC8vIHdlIGhhdmUgYSBzcmMgYXR0cmlidXRlCi0gICAgICAg
ICAgICBLVVJMIGZ1bGxVcmwoZG9jdW1lbnRLVVJJKCksIGhyZWZBdHRyLnN0cmluZygpKTsKLSAg
ICAgICAgICAgIG1fY2FjaGVkU2NyaXB0ID0gZG9jTG9hZGVyKCktPnJlcXVlc3RTY3JpcHQoZnVs
bFVybCwgY2hhcnNldCk7CisgICAgICAgICAgICBtX2NhY2hlZFNjcmlwdCA9IGRvY0xvYWRlcigp
LT5yZXF1ZXN0U2NyaXB0KGhyZWZBdHRyLCBjaGFyc2V0KTsKICAgICAgICAgICAgICsrKCptX3Nj
cmlwdHNJdCk7CiAgICAgICAgICAgICBtX2NhY2hlZFNjcmlwdC0+cmVmKHRoaXMpOyAvLyB3aWxs
IGNhbGwgZXhlY3V0ZVNjcmlwdHMoKSBhZ2FpbiBpZiBhbHJlYWR5IGNhY2hlZAogICAgICAgICAg
ICAgcmV0dXJuOwpAQCAtODAyLDE1ICsyOTMsMTIgQEAgdm9pZCBTVkdEb2N1bWVudEltcGw6OmV4
ZWN1dGVTY3JpcHRzKGJvbwogICAgIH0KIAogICAgIC8vIEZpcmUgTE9BRF9FVkVOVCBhZnRlciBh
bGwgc2NyaXB0cyBhcmUgZXZhbHVhdGVkCi0gICAgaWYoS0RPTTo6RG9jdW1lbnRJbXBsOjpoYXNM
aXN0ZW5lclR5cGUoS0RPTTo6TE9BRF9FVkVOVCkgJiYgIW1fc2NyaXB0c0l0LT5jdXJyZW50KCkp
CisgICAgaWYoIW1fc2NyaXB0c0l0LT5jdXJyZW50KCkpCiAgICAgewotICAgICAgICBTVkdFdmVu
dEltcGwgKmV2ZW50ID0gc3RhdGljX2Nhc3Q8U1ZHRXZlbnRJbXBsICo+KGNyZWF0ZUV2ZW50KEtE
T006OkRPTVN0cmluZygiU1ZHRXZlbnRzIikuaGFuZGxlKCkpKTsKLSAgICAgICAgZXZlbnQtPnJl
ZigpOwotCi0gICAgICAgIGV2ZW50LT5pbml0RXZlbnQoS0RPTTo6RE9NU3RyaW5nKCJsb2FkIiku
aGFuZGxlKCksIGZhbHNlLCBmYWxzZSk7Ci0gICAgICAgIGRpc3BhdGNoUmVjdXJzaXZlRXZlbnQo
ZXZlbnQsIGxhc3RDaGlsZCgpKTsKLQotICAgICAgICBldmVudC0+ZGVyZWYoKTsKKyAgICAgICAg
aW50IGV4Y2VwdGlvbmNvZGU7CisgICAgICAgIFNoYXJlZFB0cjxLRE9NOjpFdmVudEltcGw+IGV2
ZW50ID0gY3JlYXRlRXZlbnQoIlNWR0V2ZW50cyIsIGV4Y2VwdGlvbmNvZGUpOworICAgICAgICBl
dmVudC0+aW5pdEV2ZW50KEtET006OkV2ZW50TmFtZXM6OmxvYWRFdmVudCwgZmFsc2UsIGZhbHNl
KTsKKyAgICAgICAgZGlzcGF0Y2hSZWN1cnNpdmVFdmVudChldmVudC5nZXQoKSwgbGFzdENoaWxk
KCkpOwogICAgIH0KIAogICAgIC8vIEFsbCBzY3JpcHRzIGhhdmUgZmluaXNoZWQgZXhlY3V0aW5n
LCBzbyBjYWxjdWxhdGUgdGhlCkBAIC04MjIsOCArMzEwLDggQEAgdm9pZCBTVkdEb2N1bWVudElt
cGw6OmV4ZWN1dGVTY3JpcHRzKGJvbwogICAgIFEzUHRyTGlzdEl0ZXJhdG9yPFNWR0VsZW1lbnRJ
bXBsPiBpdChtX2ZvcndhcmRSZWZlcmVuY2VzKTsKICAgICBmb3IoO2l0LmN1cnJlbnQoKTsgKytp
dCkKICAgICB7Ci0gICAgICAgIGlmKCFpdC5jdXJyZW50KCktPmNsb3NlZCgpKQotICAgICAgICAg
ICAgaXQuY3VycmVudCgpLT5jbG9zZSgpOworICAgICAgICBpZighaXQuY3VycmVudCgpLT5pc0Ns
b3NlZCgpKQorICAgICAgICAgICAgaXQuY3VycmVudCgpLT5jbG9zZVJlbmRlcmVyKCk7CiAgICAg
fQogICAgIG1fZm9yd2FyZFJlZmVyZW5jZXMuY2xlYXIoKTsKIApAQCAtODY5LDE1ICszNTcsMTUg
QEAgYm9vbCBTVkdEb2N1bWVudEltcGw6OnByZXBhcmVNb3VzZUV2ZW50KAogICAgIEtDYW52YXNJ
dGVtTGlzdDo6Q29uc3RJdGVyYXRvciBlbmQgPSBoaXRzLmVuZCgpOwogCiAgICAgLy8gQ2hlY2sg
Zm9yIG1vdXNlb3V0L2ZvY3Vzb3V0IGV2ZW50cyBmaXJzdC4uCi0gICAgaWYoZXZlbnQtPmlkKCkg
PT0gS0RPTTo6TU9VU0VNT1ZFX0VWRU5UICYmIGhpdHMuaXNFbXB0eSgpKQorICAgIGlmKGV2ZW50
LT50eXBlKCkgPT0gS0RPTTo6RXZlbnROYW1lczo6bW91c2Vtb3ZlRXZlbnQgJiYgaGl0cy5pc0Vt
cHR5KCkpCiAgICAgewogICAgICAgICBpZihtX2xhc3RUYXJnZXQgJiYgbV9sYXN0VGFyZ2V0ICE9
IGN1cnJlbnQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmKG1fbGFzdFRhcmdldC0+aGFzTGlz
dGVuZXJUeXBlKEtET006OkRPTUZPQ1VTT1VUX0VWRU5UKSkKLSAgICAgICAgICAgICAgICBkaXNw
YXRjaFVJRXZlbnQobV9sYXN0VGFyZ2V0LCBLRE9NOjpET01TdHJpbmcoIkRPTUZvY3VzT3V0Iiku
aGFuZGxlKCkpOworICAgICAgICAgICAgLy9pZihtX2xhc3RUYXJnZXQtPmhhc0xpc3RlbmVyVHlw
ZShLRE9NOjpET01GT0NVU09VVF9FVkVOVCkpCisgICAgICAgICAgICAgICAgZGlzcGF0Y2hVSUV2
ZW50KG1fbGFzdFRhcmdldCwgS0RPTTo6RE9NU3RyaW5nKCJET01Gb2N1c091dCIpLmltcGwoKSk7
CiAKLSAgICAgICAgICAgIGlmKG1fbGFzdFRhcmdldC0+aGFzTGlzdGVuZXJUeXBlKEtET006Ok1P
VVNFT1VUX0VWRU5UKSkKLSAgICAgICAgICAgICAgICBkaXNwYXRjaE1vdXNlRXZlbnQobV9sYXN0
VGFyZ2V0LCBLRE9NOjpET01TdHJpbmcoIm1vdXNlb3V0IikuaGFuZGxlKCkpOworICAgICAgICAg
ICAgLy9pZihtX2xhc3RUYXJnZXQtPmhhc0xpc3RlbmVyVHlwZShLRE9NOjpNT1VTRU9VVF9FVkVO
VCkpCisgICAgICAgICAgICAgICAgZGlzcGF0Y2hNb3VzZUV2ZW50KG1fbGFzdFRhcmdldCwgS0RP
TTo6RE9NU3RyaW5nKCJtb3VzZW91dCIpLmltcGwoKSk7CiAKICAgICAgICAgICAgIG1fbGFzdFRh
cmdldCA9IDA7CiAgICAgICAgIH0KQEAgLTg5NCw3ICszODIsNyBAQCBib29sIFNWR0RvY3VtZW50
SW1wbDo6cHJlcGFyZU1vdXNlRXZlbnQoCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgICAgICAgICBib29sIGlzU3Ryb2tlZCA9IChzdHlsZS0+c3Ryb2tlUGFpbnQoKSAhPSAw
KTsKLSAgICAgICAgICAgIGJvb2wgaXNWaXNpYmxlID0gKHN0eWxlLT52aXNpYmlsaXR5KCkgPT0g
S0RPTTo6VlNfVklTSUJMRSk7CisgICAgICAgICAgICBib29sIGlzVmlzaWJsZSA9IChzdHlsZS0+
dmlzaWJpbGl0eSgpID09IEtET006OlZJU0lCTEUpOwogCiAgICAgICAgICAgICBLQ2FudmFzSXRl
bSAqY2FudmFzSXRlbSA9IGN1cnJlbnQtPmNhbnZhc0l0ZW0oKTsKIApAQCAtOTQ1LDM1ICs0MzMs
MzMgQEAgYm9vbCBTVkdEb2N1bWVudEltcGw6OnByZXBhcmVNb3VzZUV2ZW50KAogICAgICAgICAg
ICAgICAgIGlmKCh0ZXN0RmlsbCAmJiBjYW52YXNJdGVtLT5maWxsQ29udGFpbnMoY29vcmRpbmF0
ZSkpIHx8CiAgICAgICAgICAgICAgICAgICAgKHRlc3RTdHJva2UgJiYgY2FudmFzSXRlbS0+c3Ry
b2tlQ29udGFpbnMoY29vcmRpbmF0ZSkpKQogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgaWYoZXZlbnQtPmlkKCkgPT0gS0RPTTo6TU9VU0VVUF9FVkVOVCkKKyAgICAgICAg
ICAgICAgICAgICAgaWYoZXZlbnQtPnR5cGUoKSA9PSBLRE9NOjpFdmVudE5hbWVzOjptb3VzZXVw
RXZlbnQpCiAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlm
KGN1cnJlbnQtPmhhc0xpc3RlbmVyVHlwZShLRE9NOjpDTElDS19FVkVOVCkpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hNb3VzZUV2ZW50KGN1cnJlbnQsIEtET006OkRPTVN0
cmluZygiY2xpY2siKS5oYW5kbGUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAvL2lmKGN1
cnJlbnQtPmhhc0xpc3RlbmVyVHlwZShLRE9NOjpDTElDS19FVkVOVCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGlzcGF0Y2hNb3VzZUV2ZW50KGN1cnJlbnQsICJjbGljayIpOwogCi0g
ICAgICAgICAgICAgICAgICAgICAgICBpZihjdXJyZW50LT5oYXNMaXN0ZW5lclR5cGUoS0RPTTo6
RE9NQUNUSVZBVEVfRVZFTlQpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNo
VUlFdmVudChjdXJyZW50LCBLRE9NOjpET01TdHJpbmcoIkRPTUFjdGl2YXRlIikuaGFuZGxlKCkp
OworICAgICAgICAgICAgICAgICAgICAgICAgLy9pZihjdXJyZW50LT5oYXNMaXN0ZW5lclR5cGUo
S0RPTTo6RE9NQUNUSVZBVEVfRVZFTlQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRp
c3BhdGNoVUlFdmVudChjdXJyZW50LCAiRE9NQWN0aXZhdGUiKTsKIAotICAgICAgICAgICAgICAg
ICAgICAgICAgaWYoY3VycmVudC0+aGFzTGlzdGVuZXJUeXBlKEtET006OkRPTUZPQ1VTSU5fRVZF
TlQpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoVUlFdmVudChjdXJyZW50
LCBLRE9NOjpET01TdHJpbmcoIkRPTUZvY3VzSW4iKS5oYW5kbGUoKSk7ICAgIAorICAgICAgICAg
ICAgICAgICAgICAgICAgLy9pZihjdXJyZW50LT5oYXNMaXN0ZW5lclR5cGUoS0RPTTo6RE9NRk9D
VVNJTl9FVkVOVCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hVSUV2ZW50
KGN1cnJlbnQsICJET01Gb2N1c0luIik7ICAgIAogICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgIGVsc2UgaWYoZXZlbnQtPmlkKCkgPT0gS0RPTTo6TU9VU0VNT1ZFX0VW
RU5UKQorICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKGV2ZW50LT50eXBlKCkgPT0gS0RPTTo6
RXZlbnROYW1lczo6bW91c2Vtb3ZlRXZlbnQpCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmKG1fbGFzdFRhcmdldCAmJiBtX2xhc3RUYXJnZXQgIT0gY3Vy
cmVudCkKICAgICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZihtX2xhc3RUYXJnZXQtPmhhc0xpc3RlbmVyVHlwZShLRE9NOjpET01GT0NVU09VVF9F
VkVOVCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoVUlFdmVudCht
X2xhc3RUYXJnZXQsIEtET006OkRPTVN0cmluZygiRE9NRm9jdXNPdXQiKS5oYW5kbGUoKSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9pZihtX2xhc3RUYXJnZXQtPmhhc0xpc3RlbmVy
VHlwZShLRE9NOjpET01GT0NVU09VVF9FVkVOVCkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRpc3BhdGNoVUlFdmVudChtX2xhc3RUYXJnZXQsICJET01Gb2N1c091dCIpOwogCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobV9sYXN0VGFyZ2V0LT5oYXNMaXN0ZW5lclR5
cGUoS0RPTTo6TU9VU0VPVVRfRVZFTlQpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkaXNwYXRjaE1vdXNlRXZlbnQobV9sYXN0VGFyZ2V0LCBLRE9NOjpET01TdHJpbmcoIm1vdXNl
b3V0IikuaGFuZGxlKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vaWYobV9sYXN0
VGFyZ2V0LT5oYXNMaXN0ZW5lclR5cGUoS0RPTTo6TU9VU0VPVVRfRVZFTlQpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaE1vdXNlRXZlbnQobV9sYXN0VGFyZ2V0LCAi
bW91c2VvdXQiKTsKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbGFzdFRhcmdldCA9
IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgICAgICAgICAgICAgIGlmKGN1cnJlbnQtPmhhc0xpc3RlbmVyVHlwZShLRE9N
OjpNT1VTRU9WRVJfRVZFTlQpKQotICAgICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmKG1fbGFzdFRhcmdldCAhPSBjdXJyZW50KQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaE1vdXNlRXZlbnQoY3VycmVudCwgS0RPTTo6
RE9NU3RyaW5nKCJtb3VzZW92ZXIiKS5oYW5kbGUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvL2lmKGN1cnJlbnQtPmhhc0xpc3RlbmVyVHlw
ZShLRE9NOjpNT1VTRU9WRVJfRVZFTlQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
aWYobV9sYXN0VGFyZ2V0ICE9IGN1cnJlbnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRpc3BhdGNoTW91c2VFdmVudChjdXJyZW50LCAibW91c2VvdmVyIik7CiAgICAgICAgICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgICAgICBtX2xhc3RUYXJnZXQgPSBjdXJyZW50
OwpAQCAtOTg1LDggKzQ3MSw5IEBAIGJvb2wgU1ZHRG9jdW1lbnRJbXBsOjpwcmVwYXJlTW91c2VF
dmVudCgKICAgICAgICAgICAgICAgICAgICAgLy8gdG8gdGFrZSBwbGFjZSB3aGVuIHRoZXJlIGFy
ZSBubwogICAgICAgICAgICAgICAgICAgICAvLyBsaXN0ZW5lcnMsIHNvIGRpc3BhdGNoRXZlbnQg
aGFzIHRvIGJlCiAgICAgICAgICAgICAgICAgICAgIC8vIGNhbGxlZCwgdGhhdCBpcyB0aGUgcHJv
YmxlbSBoZXJlLi4uCisgICAgICAgICAgICAgICAgICAgIGludCBleGNlcHRpb25jb2RlOwogICAg
ICAgICAgICAgICAgICAgICAvL2lmKGN1cnJlbnQtPmhhc0xpc3RlbmVyVHlwZShldmVudC0+aWQo
KSkpCi0gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50LT5kaXNwYXRjaEV2ZW50KGV2ZW50
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQtPmRpc3BhdGNoRXZlbnQoZXZlbnQs
IGV4Y2VwdGlvbmNvZGUpOwogCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICAgICAgICAgIH0KQEAgLTEwMDIsMzYgKzQ4OSwyMiBAQCBUaW1lU2NoZWR1bGVyICpTVkdE
b2N1bWVudEltcGw6OnRpbWVTY2hlCiAgICAgcmV0dXJuIG1fdGltZVNjaGVkdWxlcjsKIH0KIAot
dm9pZCBTVkdEb2N1bWVudEltcGw6OmRpc3BhdGNoVUlFdmVudChLRE9NOjpFdmVudFRhcmdldElt
cGwgKnRhcmdldCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqdHlwZSkKK3ZvaWQgU1ZHRG9jdW1lbnRJ
bXBsOjpkaXNwYXRjaFVJRXZlbnQoS0RPTTo6RXZlbnRUYXJnZXRJbXBsICp0YXJnZXQsIGNvbnN0
IEtET006OkF0b21pY1N0cmluZyAmdHlwZSkKIHsKICAgICAvLyBTZXR1cCBrZG9tICdVSUV2ZW50
Jy4uLgotICAgIEtET006OkRPTVN0cmluZ0ltcGwgKmV2ZW50VHlwZSA9IG5ldyBLRE9NOjpET01T
dHJpbmdJbXBsKCJVSUV2ZW50cyIpOwotICAgIGV2ZW50VHlwZS0+cmVmKCk7Ci0KLSAgICBLRE9N
OjpVSUV2ZW50SW1wbCAqZXZlbnQgPSBzdGF0aWNfY2FzdDxLRE9NOjpVSUV2ZW50SW1wbCAqPihj
cmVhdGVFdmVudChldmVudFR5cGUpKTsKLSAgICBldmVudC0+cmVmKCk7Ci0KKyAgICBpbnQgZXhj
ZXB0aW9uY29kZTsKKyAgICBTaGFyZWRQdHI8S0RPTTo6VUlFdmVudEltcGw+IGV2ZW50ID0gc3Rh
dGljX2Nhc3Q8S0RPTTo6VUlFdmVudEltcGwgKj4oY3JlYXRlRXZlbnQoIlVJRXZlbnRzIiwgZXhj
ZXB0aW9uY29kZSkpOwogICAgIGV2ZW50LT5pbml0VUlFdmVudCh0eXBlLCB0cnVlLCB0cnVlLCAw
LCAwKTsKLSAgICB0YXJnZXQtPmRpc3BhdGNoRXZlbnQoZXZlbnQpOwotCi0gICAgZXZlbnQtPmRl
cmVmKCk7Ci0gICAgZXZlbnRUeXBlLT5kZXJlZigpOworICAgIHRhcmdldC0+ZGlzcGF0Y2hFdmVu
dChldmVudC5nZXQoKSwgZXhjZXB0aW9uY29kZSk7CiB9CiAKLXZvaWQgU1ZHRG9jdW1lbnRJbXBs
OjpkaXNwYXRjaE1vdXNlRXZlbnQoS0RPTTo6RXZlbnRUYXJnZXRJbXBsICp0YXJnZXQsIEtET006
OkRPTVN0cmluZ0ltcGwgKnR5cGUpCit2b2lkIFNWR0RvY3VtZW50SW1wbDo6ZGlzcGF0Y2hNb3Vz
ZUV2ZW50KEtET006OkV2ZW50VGFyZ2V0SW1wbCAqdGFyZ2V0LCBjb25zdCBLRE9NOjpBdG9taWNT
dHJpbmcgJnR5cGUpCiB7CiAgICAgLy8gU2V0dXAga2RvbSAnTW91c2VFdmVudCcuLi4KLSAgICBL
RE9NOjpET01TdHJpbmdJbXBsICpldmVudFR5cGUgPSBuZXcgS0RPTTo6RE9NU3RyaW5nSW1wbCgi
TW91c2VFdmVudHMiKTsKLSAgICBldmVudFR5cGUtPnJlZigpOwotCi0gICAgS0RPTTo6TW91c2VF
dmVudEltcGwgKmV2ZW50ID0gc3RhdGljX2Nhc3Q8S0RPTTo6TW91c2VFdmVudEltcGwgKj4oY3Jl
YXRlRXZlbnQoZXZlbnRUeXBlKSk7Ci0gICAgZXZlbnQtPnJlZigpOwotCisgICAgaW50IGV4Y2Vw
dGlvbmNvZGU7CisgICAgU2hhcmVkUHRyPEtET006Ok1vdXNlRXZlbnRJbXBsPiBldmVudCA9IHN0
YXRpY19jYXN0PEtET006Ok1vdXNlRXZlbnRJbXBsICo+KGNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50
cyIsIGV4Y2VwdGlvbmNvZGUpKTsKICAgICBldmVudC0+aW5pdEV2ZW50KHR5cGUsIHRydWUsIHRy
dWUpOwotICAgIHRhcmdldC0+ZGlzcGF0Y2hFdmVudChldmVudCk7Ci0KLSAgICBldmVudC0+ZGVy
ZWYoKTsKLSAgICBldmVudFR5cGUtPmRlcmVmKCk7CisgICAgdGFyZ2V0LT5kaXNwYXRjaEV2ZW50
KGV2ZW50LmdldCgpLCBleGNlcHRpb25jb2RlKTsKIH0KIAogdm9pZCBTVkdEb2N1bWVudEltcGw6
OmFkZEZvcndhcmRSZWZlcmVuY2UoY29uc3QgU1ZHRWxlbWVudEltcGwgKmVsZW1lbnQpCkluZGV4
OiBrc3ZnMi9zdmcvU1ZHRG9jdW1lbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9y
b290L1NWR1N1cHBvcnQva3N2ZzIvc3ZnL1NWR0RvY3VtZW50SW1wbC5oLHYKcmV0cmlldmluZyBy
ZXZpc2lvbiAxLjgKZGlmZiAtcCAtdSAtcjEuOCBrc3ZnMi9zdmcvU1ZHRG9jdW1lbnRJbXBsLmgK
LS0tIGtzdmcyL3N2Zy9TVkdEb2N1bWVudEltcGwuaAk4IE9jdCAyMDA1IDA5OjE4OjE1IC0wMDAw
CTEuOAorKysga3N2ZzIvc3ZnL1NWR0RvY3VtZW50SW1wbC5oCTEgTm92IDIwMDUgMTE6MTM6MTMg
LTAwMDAKQEAgLTM0LDYgKzM0LDEwIEBACiBjbGFzcyBLQ2FudmFzOwogY2xhc3MgS0NhbnZhc1Zp
ZXc7CiAKKyNpZmRlZiBBUFBMRV9DSEFOR0VTCitjbGFzcyBLSFRNTFZpZXc7CisjZW5kaWYKKwog
bmFtZXNwYWNlIEtTVkcKIHsKICAgICBjbGFzcyBLU1ZHVmlldzsKQEAgLTQ5LDE5ICs1Myw5IEBA
IG5hbWVzcGFjZSBLU1ZHCiAgICAgICAgIFNWR0RvY3VtZW50SW1wbChTVkdET01JbXBsZW1lbnRh
dGlvbkltcGwgKmksIEtET006OktET01WaWV3ICp2aWV3KTsKICAgICAgICAgdmlydHVhbCB+U1ZH
RG9jdW1lbnRJbXBsKCk7CiAKLSAgICAgICAgLy8gJ1NWR0RvY3VtZW50SW1wbCcgZnVuY3Rpb25z
Ci0gICAgICAgIEtET006OkRPTVN0cmluZ0ltcGwgKnRpdGxlKCkgY29uc3Q7Ci0gICAgICAgIEtE
T006OkRPTVN0cmluZ0ltcGwgKnJlZmVycmVyKCkgY29uc3Q7Ci0gICAgICAgIEtET006OkRPTVN0
cmluZ0ltcGwgKmRvbWFpbigpIGNvbnN0OwotICAgICAgICBLRE9NOjpET01TdHJpbmdJbXBsICpV
UkwoKSBjb25zdDsKLQogICAgICAgICBTVkdTVkdFbGVtZW50SW1wbCAqcm9vdEVsZW1lbnQoKSBj
b25zdDsKLQotICAgICAgICB2aXJ0dWFsIEtET006OkVsZW1lbnRJbXBsICpjcmVhdGVFbGVtZW50
KEtET006OkRPTVN0cmluZ0ltcGwgKnRhZ05hbWUpOwotICAgICAgICB2aXJ0dWFsIEtET006OkVs
ZW1lbnRJbXBsICpjcmVhdGVFbGVtZW50TlMoS0RPTTo6RE9NU3RyaW5nSW1wbCAqbmFtZXNwYWNl
VVJJLCBLRE9NOjpET01TdHJpbmdJbXBsICpxdWFsaWZpZWROYW1lKTsKLQotICAgICAgICAvLyAn
RG9jdW1lbnRFdmVudCcgZnVuY3Rpb25zCi0gICAgICAgIHZpcnR1YWwgS0RPTTo6RXZlbnRJbXBs
ICpjcmVhdGVFdmVudChLRE9NOjpET01TdHJpbmdJbXBsICpldmVudFR5cGUpOworICAgICAgICAK
KyAgICAgICAgdmlydHVhbCBLRE9NOjpFbGVtZW50SW1wbCAqY3JlYXRlRWxlbWVudChjb25zdCBL
RE9NOjpET01TdHJpbmcmIHRhZ05hbWUsIGludCYgZXhjZXB0aW9uQ29kZSk7CiAKICAgICAgICAg
Ly8gRGVyaXZlZCBmcm9tOiAnQ2FjaGVkT2JqZWN0Q2xpZW50JwogICAgICAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5RmluaXNoZWQoS0RPTTo6Q2FjaGVkT2JqZWN0ICpmaW5pc2hlZE9iaik7CkBAIC0x
MDMsMTAgKzk3LDggQEAgbmFtZXNwYWNlIEtTVkcKICAgICAgICAgdmlydHVhbCBLRE9NOjpDU1NT
dHlsZVNlbGVjdG9yICpjcmVhdGVTdHlsZVNlbGVjdG9yKGNvbnN0IFFTdHJpbmcgJik7CiAKICAg
ICBwcml2YXRlOgotICAgICAgICB2b2lkIGRpc3BhdGNoVUlFdmVudChLRE9NOjpFdmVudFRhcmdl
dEltcGwgKnRhcmdldCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqdHlwZSk7Ci0gICAgICAgIHZvaWQg
ZGlzcGF0Y2hNb3VzZUV2ZW50KEtET006OkV2ZW50VGFyZ2V0SW1wbCAqdGFyZ2V0LCBLRE9NOjpE
T01TdHJpbmdJbXBsICp0eXBlKTsKLQotICAgICAgICBTVkdFbGVtZW50SW1wbCAqY3JlYXRlU1ZH
RWxlbWVudChLRE9NOjpET01TdHJpbmdJbXBsICpwcmVmaXgsIEtET006OkRPTVN0cmluZ0ltcGwg
KmxvY2FsTmFtZSk7CisgICAgICAgIHZvaWQgZGlzcGF0Y2hVSUV2ZW50KEtET006OkV2ZW50VGFy
Z2V0SW1wbCAqdGFyZ2V0LCBjb25zdCBLRE9NOjpBdG9taWNTdHJpbmcgJnR5cGUpOworICAgICAg
ICB2b2lkIGRpc3BhdGNoTW91c2VFdmVudChLRE9NOjpFdmVudFRhcmdldEltcGwgKnRhcmdldCwg
Y29uc3QgS0RPTTo6QXRvbWljU3RyaW5nICZ0eXBlKTsKIAogICAgICAgICBLQ2FudmFzVmlldyAq
bV9jYW52YXNWaWV3OwogICAgICAgICBLRE9NOjpFdmVudFRhcmdldEltcGwgKm1fbGFzdFRhcmdl
dDsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdFbGVtZW50RmFjdG9yeS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg
ZmlsZToga3N2ZzIvc3ZnL1NWR0VsZW1lbnRGYWN0b3J5LmNwcApkaWZmIC1OIGtzdmcyL3N2Zy9T
VkdFbGVtZW50RmFjdG9yeS5jcHAKLS0tIGtzdmcyL3N2Zy9TVkdFbGVtZW50RmFjdG9yeS5jcHAJ
MSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMAorKysga3N2ZzIvc3ZnL1NWR0VsZW1lbnRGYWN0b3J5
LmNwcAkxIE5vdiAyMDA1IDExOjEzOjEzIC0wMDAwCkBAIC0wLDAgKzEsNDEzIEBACisvKgorICog
VGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFNWRyBET00gaW1wbGVtZW50YXRpb24gZm9yIEtERS4K
KyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAz
MzAsCisgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaW5jbHVkZSAiU1ZHRWxlbWVudEZhY3RvcnkuaCIKKworI2luY2x1ZGUg
IlNWR0FFbGVtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50SW1wbC5oIgor
I2luY2x1ZGUgIlNWR0FuaW1hdGVDb2xvckVsZW1lbnRJbXBsLmgiCisjaW5jbHVkZSAiU1ZHQW5p
bWF0ZVRyYW5zZm9ybUVsZW1lbnRJbXBsLmgiCisjaW5jbHVkZSAiU1ZHQ2lyY2xlRWxlbWVudElt
cGwuaCIKKyNpbmNsdWRlICJTVkdDbGlwUGF0aEVsZW1lbnRJbXBsLmgiCisjaW5jbHVkZSAiU1ZH
Q3Vyc29yRWxlbWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdEZWZzRWxlbWVudEltcGwuaCIKKyNp
bmNsdWRlICJTVkdEZXNjRWxlbWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdFbGxpcHNlRWxlbWVu
dEltcGwuaCIKKyNpbmNsdWRlICJTVkdGRUJsZW5kRWxlbWVudEltcGwuaCIKKyNpbmNsdWRlICJT
VkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdGRUNvbXBv
c2l0ZUVsZW1lbnRJbXBsLmgiCisjaW5jbHVkZSAiU1ZHRkVGbG9vZEVsZW1lbnRJbXBsLmgiCisj
aW5jbHVkZSAiU1ZHRkVGdW5jQUVsZW1lbnRJbXBsLmgiCisjaW5jbHVkZSAiU1ZHRkVGdW5jQkVs
ZW1lbnRJbXBsLmgiCisjaW5jbHVkZSAiU1ZHRkVGdW5jR0VsZW1lbnRJbXBsLmgiCisjaW5jbHVk
ZSAiU1ZHRkVGdW5jUkVsZW1lbnRJbXBsLmgiCisjaW5jbHVkZSAiU1ZHRkVHYXVzc2lhbkJsdXJF
bGVtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR0ZFSW1hZ2VFbGVtZW50SW1wbC5oIgorI2luY2x1
ZGUgIlNWR0ZFTWVyZ2VFbGVtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR0ZFTWVyZ2VOb2RlRWxl
bWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdGRU9mZnNldEVsZW1lbnRJbXBsLmgiCisjaW5jbHVk
ZSAiU1ZHRkVUaWxlRWxlbWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdGRVR1cmJ1bGVuY2VFbGVt
ZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR0ZpbHRlckVsZW1lbnRJbXBsLmgiCisjaW5jbHVkZSAi
U1ZHR0VsZW1lbnRJbXBsLmgiCisjaW5jbHVkZSAiU1ZHSW1hZ2VFbGVtZW50SW1wbC5oIgorI2lu
Y2x1ZGUgIlNWR0xpbmVFbGVtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR0xpbmVhckdyYWRpZW50
RWxlbWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdNYXJrZXJFbGVtZW50SW1wbC5oIgorI2luY2x1
ZGUgIlNWR1BhdGhFbGVtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR1BhdHRlcm5FbGVtZW50SW1w
bC5oIgorI2luY2x1ZGUgIlNWR1BvbHlnb25FbGVtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR1Bv
bHlsaW5lRWxlbWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnRJ
bXBsLmgiCisjaW5jbHVkZSAiU1ZHUmVjdEVsZW1lbnRJbXBsLmgiCisjaW5jbHVkZSAiU1ZHU2Ny
aXB0RWxlbWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdTZXRFbGVtZW50SW1wbC5oIgorI2luY2x1
ZGUgIlNWR1N0b3BFbGVtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR1N0eWxlRWxlbWVudEltcGwu
aCIKKyNpbmNsdWRlICJTVkdTVkdFbGVtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR1N3aXRjaEVs
ZW1lbnRJbXBsLmgiCisjaW5jbHVkZSAiU1ZHU3ltYm9sRWxlbWVudEltcGwuaCIKKyNpbmNsdWRl
ICJTVkdUZXh0RWxlbWVudEltcGwuaCIKKyNpbmNsdWRlICJTVkdUaXRsZUVsZW1lbnRJbXBsLmgi
CisjaW5jbHVkZSAiU1ZHVFNwYW5FbGVtZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR1VzZUVsZW1l
bnRJbXBsLmgiCisjaW5jbHVkZSAiU1ZHVmlld0VsZW1lbnRJbXBsLmgiCisKKworI2luY2x1ZGUg
PGt4bWxjb3JlL0hhc2hNYXAuaD4KKwordXNpbmcgbmFtZXNwYWNlIEtET007Cit1c2luZyBuYW1l
c3BhY2UgS1NWRzo6U1ZHTmFtZXM7CisKK3R5cGVkZWYgS1hNTENvcmU6Okhhc2hNYXA8RE9NU3Ry
aW5nSW1wbCAqLCB2b2lkICosIEtYTUxDb3JlOjpQb2ludGVySGFzaDxET01TdHJpbmdJbXBsICo+
ID4gRnVuY3Rpb25NYXA7CitzdGF0aWMgRnVuY3Rpb25NYXAgKmdGdW5jdGlvbk1hcCA9IDA7CisK
K25hbWVzcGFjZSBLU1ZHCit7CisKK3R5cGVkZWYgU1ZHRWxlbWVudEltcGwgKigqQ29uc3RydWN0
b3JGdW5jKShEb2N1bWVudFB0ciAqZG9jUHRyLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CisKK1NW
R0VsZW1lbnRJbXBsICphQ29uc3RydWN0b3IoRG9jdW1lbnRQdHIgKmRvY1B0ciwgYm9vbCBjcmVh
dGVkQnlQYXJzZXIpCit7CisgICAgcmV0dXJuIG5ldyBTVkdBRWxlbWVudEltcGwoYVRhZywgZG9j
UHRyKTsKK30KKworU1ZHRWxlbWVudEltcGwgKmFuaW1hdGVDb25zdHJ1Y3RvcihEb2N1bWVudFB0
ciAqZG9jUHRyLCBib29sIGNyZWF0ZWRCeVBhcnNlcikKK3sKKyAgICByZXR1cm4gbmV3IFNWR0Fu
aW1hdGVFbGVtZW50SW1wbChhbmltYXRlVGFnLCBkb2NQdHIpOworfQorCitTVkdFbGVtZW50SW1w
bCAqYW5pbWF0ZWNvbG9yQ29uc3RydWN0b3IoRG9jdW1lbnRQdHIgKmRvY1B0ciwgYm9vbCBjcmVh
dGVkQnlQYXJzZXIpCit7CisgICAgcmV0dXJuIG5ldyBTVkdBbmltYXRlQ29sb3JFbGVtZW50SW1w
bChhbmltYXRlY29sb3JUYWcsIGRvY1B0cik7Cit9CisKK1NWR0VsZW1lbnRJbXBsICphbmltYXRl
dHJhbnNmb3JtQ29uc3RydWN0b3IoRG9jdW1lbnRQdHIgKmRvY1B0ciwgYm9vbCBjcmVhdGVkQnlQ
YXJzZXIpCit7CisgICAgcmV0dXJuIG5ldyBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudEltcGwo
YW5pbWF0ZXRyYW5zZm9ybVRhZywgZG9jUHRyKTsKK30KKworU1ZHRWxlbWVudEltcGwgKmNpcmNs
ZUNvbnN0cnVjdG9yKERvY3VtZW50UHRyICpkb2NQdHIsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQor
eworICAgIHJldHVybiBuZXcgU1ZHQ2lyY2xlRWxlbWVudEltcGwoY2lyY2xlVGFnLCBkb2NQdHIp
OworfQorCitTVkdFbGVtZW50SW1wbCAqY2xpcHBhdGhDb25zdHJ1Y3RvcihEb2N1bWVudFB0ciAq
ZG9jUHRyLCBib29sIGNyZWF0ZWRCeVBhcnNlcikKK3sKKyAgICByZXR1cm4gbmV3IFNWR0NsaXBQ
YXRoRWxlbWVudEltcGwoY2xpcHBhdGhUYWcsIGRvY1B0cik7Cit9CisKK1NWR0VsZW1lbnRJbXBs
ICpjdXJzb3JDb25zdHJ1Y3RvcihEb2N1bWVudFB0ciAqZG9jUHRyLCBib29sIGNyZWF0ZWRCeVBh
cnNlcikKK3sKKyAgICByZXR1cm4gbmV3IFNWR0N1cnNvckVsZW1lbnRJbXBsKGN1cnNvclRhZywg
ZG9jUHRyKTsKK30KKworU1ZHRWxlbWVudEltcGwgKmRlZnNDb25zdHJ1Y3RvcihEb2N1bWVudFB0
ciAqZG9jUHRyLCBib29sIGNyZWF0ZWRCeVBhcnNlcikKK3sKKyAgICByZXR1cm4gbmV3IFNWR0Rl
ZnNFbGVtZW50SW1wbChkZWZzVGFnLCBkb2NQdHIpOworfQorCitTVkdFbGVtZW50SW1wbCAqZGVz
Y0NvbnN0cnVjdG9yKERvY3VtZW50UHRyICpkb2NQdHIsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQor
eworICAgIHJldHVybiBuZXcgU1ZHRGVzY0VsZW1lbnRJbXBsKGRlc2NUYWcsIGRvY1B0cik7Cit9
CisKK1NWR0VsZW1lbnRJbXBsICplbGxpcHNlQ29uc3RydWN0b3IoRG9jdW1lbnRQdHIgKmRvY1B0
ciwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCit7CisgICAgcmV0dXJuIG5ldyBTVkdFbGxpcHNlRWxl
bWVudEltcGwoZWxsaXBzZVRhZywgZG9jUHRyKTsKK30KKworU1ZHRWxlbWVudEltcGwgKmZlYmxl
bmRDb25zdHJ1Y3RvcihEb2N1bWVudFB0ciAqZG9jUHRyLCBib29sIGNyZWF0ZWRCeVBhcnNlcikK
K3sKKyAgICByZXR1cm4gbmV3IFNWR0ZFQmxlbmRFbGVtZW50SW1wbChmZWJsZW5kVGFnLCBkb2NQ
dHIpOworfQorCitTVkdFbGVtZW50SW1wbCAqZmVjb21wb25lbnR0cmFuc2ZlckNvbnN0cnVjdG9y
KERvY3VtZW50UHRyICpkb2NQdHIsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQoreworICAgIHJldHVy
biBuZXcgU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnRJbXBsKGZlY29tcG9uZW50dHJhbnNm
ZXJUYWcsIGRvY1B0cik7Cit9CisKK1NWR0VsZW1lbnRJbXBsICpmZWNvbXBvc2l0ZUNvbnN0cnVj
dG9yKERvY3VtZW50UHRyICpkb2NQdHIsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQoreworICAgIHJl
dHVybiBuZXcgU1ZHRkVDb21wb3NpdGVFbGVtZW50SW1wbChmZWNvbXBvc2l0ZVRhZywgZG9jUHRy
KTsKK30KKworU1ZHRWxlbWVudEltcGwgKmZlZmxvb2RDb25zdHJ1Y3RvcihEb2N1bWVudFB0ciAq
ZG9jUHRyLCBib29sIGNyZWF0ZWRCeVBhcnNlcikKK3sKKyAgICByZXR1cm4gbmV3IFNWR0ZFRmxv
b2RFbGVtZW50SW1wbChmZWZsb29kVGFnLCBkb2NQdHIpOworfQorCitTVkdFbGVtZW50SW1wbCAq
ZmVmdW5jYUNvbnN0cnVjdG9yKERvY3VtZW50UHRyICpkb2NQdHIsIGJvb2wgY3JlYXRlZEJ5UGFy
c2VyKQoreworICAgIHJldHVybiBuZXcgU1ZHRkVGdW5jQUVsZW1lbnRJbXBsKGZlZnVuY2FUYWcs
IGRvY1B0cik7Cit9CisKK1NWR0VsZW1lbnRJbXBsICpmZWZ1bmNiQ29uc3RydWN0b3IoRG9jdW1l
bnRQdHIgKmRvY1B0ciwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCit7CisgICAgcmV0dXJuIG5ldyBT
VkdGRUZ1bmNCRWxlbWVudEltcGwoZmVmdW5jYlRhZywgZG9jUHRyKTsKK30KKworU1ZHRWxlbWVu
dEltcGwgKmZlZnVuY2dDb25zdHJ1Y3RvcihEb2N1bWVudFB0ciAqZG9jUHRyLCBib29sIGNyZWF0
ZWRCeVBhcnNlcikKK3sKKyAgICByZXR1cm4gbmV3IFNWR0ZFRnVuY0dFbGVtZW50SW1wbChmZWZ1
bmNnVGFnLCBkb2NQdHIpOworfQorCitTVkdFbGVtZW50SW1wbCAqZmVmdW5jckNvbnN0cnVjdG9y
KERvY3VtZW50UHRyICpkb2NQdHIsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQoreworICAgIHJldHVy
biBuZXcgU1ZHRkVGdW5jUkVsZW1lbnRJbXBsKGZlZnVuY3JUYWcsIGRvY1B0cik7Cit9CisKK1NW
R0VsZW1lbnRJbXBsICpmZWdhdXNzaWFuYmx1ckNvbnN0cnVjdG9yKERvY3VtZW50UHRyICpkb2NQ
dHIsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQoreworICAgIHJldHVybiBuZXcgU1ZHRkVHYXVzc2lh
bkJsdXJFbGVtZW50SW1wbChmZWdhdXNzaWFuYmx1clRhZywgZG9jUHRyKTsKK30KKworU1ZHRWxl
bWVudEltcGwgKmZlaW1hZ2VDb25zdHJ1Y3RvcihEb2N1bWVudFB0ciAqZG9jUHRyLCBib29sIGNy
ZWF0ZWRCeVBhcnNlcikKK3sKKyAgICByZXR1cm4gbmV3IFNWR0ZFSW1hZ2VFbGVtZW50SW1wbChm
ZWltYWdlVGFnLCBkb2NQdHIpOworfQorCitTVkdFbGVtZW50SW1wbCAqZmVtZXJnZUNvbnN0cnVj
dG9yKERvY3VtZW50UHRyICpkb2NQdHIsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQoreworICAgIHJl
dHVybiBuZXcgU1ZHRkVNZXJnZUVsZW1lbnRJbXBsKGZlbWVyZ2VUYWcsIGRvY1B0cik7Cit9CisK
K1NWR0VsZW1lbnRJbXBsICpmZW1lcmdlbm9kZUNvbnN0cnVjdG9yKERvY3VtZW50UHRyICpkb2NQ
dHIsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQoreworICAgIHJldHVybiBuZXcgU1ZHRkVNZXJnZU5v
ZGVFbGVtZW50SW1wbChmZW1lcmdlbm9kZVRhZywgZG9jUHRyKTsKK30KKworU1ZHRWxlbWVudElt
cGwgKmZlb2Zmc2V0Q29uc3RydWN0b3IoRG9jdW1lbnRQdHIgKmRvY1B0ciwgYm9vbCBjcmVhdGVk
QnlQYXJzZXIpCit7CisgICAgcmV0dXJuIG5ldyBTVkdGRU9mZnNldEVsZW1lbnRJbXBsKGZlb2Zm
c2V0VGFnLCBkb2NQdHIpOworfQorCitTVkdFbGVtZW50SW1wbCAqZmV0aWxlQ29uc3RydWN0b3Io
RG9jdW1lbnRQdHIgKmRvY1B0ciwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCit7CisgICAgcmV0dXJu
IG5ldyBTVkdGRVRpbGVFbGVtZW50SW1wbChmZXRpbGVUYWcsIGRvY1B0cik7Cit9CisKK1NWR0Vs
ZW1lbnRJbXBsICpmZXR1cmJ1bGVuY2VDb25zdHJ1Y3RvcihEb2N1bWVudFB0ciAqZG9jUHRyLCBi
b29sIGNyZWF0ZWRCeVBhcnNlcikKK3sKKyAgICByZXR1cm4gbmV3IFNWR0ZFVHVyYnVsZW5jZUVs
ZW1lbnRJbXBsKGZldHVyYnVsZW5jZVRhZywgZG9jUHRyKTsKK30KKworU1ZHRWxlbWVudEltcGwg
KmZpbHRlckNvbnN0cnVjdG9yKERvY3VtZW50UHRyICpkb2NQdHIsIGJvb2wgY3JlYXRlZEJ5UGFy
c2VyKQoreworICAgIHJldHVybiBuZXcgU1ZHRmlsdGVyRWxlbWVudEltcGwoZmlsdGVyVGFnLCBk
b2NQdHIpOworfQorCitTVkdFbGVtZW50SW1wbCAqZ0NvbnN0cnVjdG9yKERvY3VtZW50UHRyICpk
b2NQdHIsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQoreworICAgIHJldHVybiBuZXcgU1ZHR0VsZW1l
bnRJbXBsKGdUYWcsIGRvY1B0cik7Cit9CisKK1NWR0VsZW1lbnRJbXBsICppbWFnZUNvbnN0cnVj
dG9yKERvY3VtZW50UHRyICpkb2NQdHIsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQoreworICAgIHJl
dHVybiBuZXcgU1ZHSW1hZ2VFbGVtZW50SW1wbChpbWFnZVRhZywgZG9jUHRyKTsKK30KKworU1ZH
RWxlbWVudEltcGwgKmxpbmVDb25zdHJ1Y3RvcihEb2N1bWVudFB0ciAqZG9jUHRyLCBib29sIGNy
ZWF0ZWRCeVBhcnNlcikKK3sKKyAgICByZXR1cm4gbmV3IFNWR0xpbmVFbGVtZW50SW1wbChsaW5l
VGFnLCBkb2NQdHIpOworfQorCitTVkdFbGVtZW50SW1wbCAqbGluZWFyZ3JhZGllbnRDb25zdHJ1
Y3RvcihEb2N1bWVudFB0ciAqZG9jUHRyLCBib29sIGNyZWF0ZWRCeVBhcnNlcikKK3sKKyAgICBy
ZXR1cm4gbmV3IFNWR0xpbmVhckdyYWRpZW50RWxlbWVudEltcGwobGluZWFyZ3JhZGllbnRUYWcs
IGRvY1B0cik7Cit9CisKK1NWR0VsZW1lbnRJbXBsICptYXJrZXJDb25zdHJ1Y3RvcihEb2N1bWVu
dFB0ciAqZG9jUHRyLCBib29sIGNyZWF0ZWRCeVBhcnNlcikKK3sKKyAgICByZXR1cm4gbmV3IFNW
R01hcmtlckVsZW1lbnRJbXBsKG1hcmtlclRhZywgZG9jUHRyKTsKK30KKworU1ZHRWxlbWVudElt
cGwgKnBhdGhDb25zdHJ1Y3RvcihEb2N1bWVudFB0ciAqZG9jUHRyLCBib29sIGNyZWF0ZWRCeVBh
cnNlcikKK3sKKyAgICByZXR1cm4gbmV3IFNWR1BhdGhFbGVtZW50SW1wbChwYXRoVGFnLCBkb2NQ
dHIpOworfQorCitTVkdFbGVtZW50SW1wbCAqcGF0dGVybkNvbnN0cnVjdG9yKERvY3VtZW50UHRy
ICpkb2NQdHIsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQoreworICAgIHJldHVybiBuZXcgU1ZHUGF0
dGVybkVsZW1lbnRJbXBsKHBhdHRlcm5UYWcsIGRvY1B0cik7Cit9CisKK1NWR0VsZW1lbnRJbXBs
ICpwb2x5Z29uQ29uc3RydWN0b3IoRG9jdW1lbnRQdHIgKmRvY1B0ciwgYm9vbCBjcmVhdGVkQnlQ
YXJzZXIpCit7CisgICAgcmV0dXJuIG5ldyBTVkdQb2x5Z29uRWxlbWVudEltcGwocG9seWdvblRh
ZywgZG9jUHRyKTsKK30KKworU1ZHRWxlbWVudEltcGwgKnBvbHlsaW5lQ29uc3RydWN0b3IoRG9j
dW1lbnRQdHIgKmRvY1B0ciwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCit7CisgICAgcmV0dXJuIG5l
dyBTVkdQb2x5bGluZUVsZW1lbnRJbXBsKHBvbHlsaW5lVGFnLCBkb2NQdHIpOworfQorCitTVkdF
bGVtZW50SW1wbCAqcmFkaWFsZ3JhZGllbnRDb25zdHJ1Y3RvcihEb2N1bWVudFB0ciAqZG9jUHRy
LCBib29sIGNyZWF0ZWRCeVBhcnNlcikKK3sKKyAgICByZXR1cm4gbmV3IFNWR1JhZGlhbEdyYWRp
ZW50RWxlbWVudEltcGwocmFkaWFsZ3JhZGllbnRUYWcsIGRvY1B0cik7Cit9CisKK1NWR0VsZW1l
bnRJbXBsICpyZWN0Q29uc3RydWN0b3IoRG9jdW1lbnRQdHIgKmRvY1B0ciwgYm9vbCBjcmVhdGVk
QnlQYXJzZXIpCit7CisgICAgcmV0dXJuIG5ldyBTVkdSZWN0RWxlbWVudEltcGwocmVjdFRhZywg
ZG9jUHRyKTsKK30KKworU1ZHRWxlbWVudEltcGwgKnNjcmlwdENvbnN0cnVjdG9yKERvY3VtZW50
UHRyICpkb2NQdHIsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQoreworICAgIHJldHVybiBuZXcgU1ZH
U2NyaXB0RWxlbWVudEltcGwoc2NyaXB0VGFnLCBkb2NQdHIpOworfQorCitTVkdFbGVtZW50SW1w
bCAqc2V0Q29uc3RydWN0b3IoRG9jdW1lbnRQdHIgKmRvY1B0ciwgYm9vbCBjcmVhdGVkQnlQYXJz
ZXIpCit7CisgICAgcmV0dXJuIG5ldyBTVkdTZXRFbGVtZW50SW1wbChzZXRUYWcsIGRvY1B0cik7
Cit9CisKK1NWR0VsZW1lbnRJbXBsICpzdG9wQ29uc3RydWN0b3IoRG9jdW1lbnRQdHIgKmRvY1B0
ciwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCit7CisgICAgcmV0dXJuIG5ldyBTVkdTdG9wRWxlbWVu
dEltcGwoc3RvcFRhZywgZG9jUHRyKTsKK30KKworU1ZHRWxlbWVudEltcGwgKnN0eWxlQ29uc3Ry
dWN0b3IoRG9jdW1lbnRQdHIgKmRvY1B0ciwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCit7CisgICAg
cmV0dXJuIG5ldyBTVkdTdHlsZUVsZW1lbnRJbXBsKHN0eWxlVGFnLCBkb2NQdHIpOworfQorCitT
VkdFbGVtZW50SW1wbCAqc3ZnQ29uc3RydWN0b3IoRG9jdW1lbnRQdHIgKmRvY1B0ciwgYm9vbCBj
cmVhdGVkQnlQYXJzZXIpCit7CisgICAgcmV0dXJuIG5ldyBTVkdTVkdFbGVtZW50SW1wbChzdmdU
YWcsIGRvY1B0cik7Cit9CisKK1NWR0VsZW1lbnRJbXBsICpzd2l0Y2hDb25zdHJ1Y3RvcihEb2N1
bWVudFB0ciAqZG9jUHRyLCBib29sIGNyZWF0ZWRCeVBhcnNlcikKK3sKKyAgICByZXR1cm4gbmV3
IFNWR1N3aXRjaEVsZW1lbnRJbXBsKHN3aXRjaFRhZywgZG9jUHRyKTsKK30KKworU1ZHRWxlbWVu
dEltcGwgKnN5bWJvbENvbnN0cnVjdG9yKERvY3VtZW50UHRyICpkb2NQdHIsIGJvb2wgY3JlYXRl
ZEJ5UGFyc2VyKQoreworICAgIHJldHVybiBuZXcgU1ZHU3ltYm9sRWxlbWVudEltcGwoc3ltYm9s
VGFnLCBkb2NQdHIpOworfQorCitTVkdFbGVtZW50SW1wbCAqdGV4dENvbnN0cnVjdG9yKERvY3Vt
ZW50UHRyICpkb2NQdHIsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQoreworICAgIHJldHVybiBuZXcg
U1ZHVGV4dEVsZW1lbnRJbXBsKHRleHRUYWcsIGRvY1B0cik7Cit9CisKK1NWR0VsZW1lbnRJbXBs
ICp0aXRsZUNvbnN0cnVjdG9yKERvY3VtZW50UHRyICpkb2NQdHIsIGJvb2wgY3JlYXRlZEJ5UGFy
c2VyKQoreworICAgIHJldHVybiBuZXcgU1ZHVGl0bGVFbGVtZW50SW1wbCh0aXRsZVRhZywgZG9j
UHRyKTsKK30KKworU1ZHRWxlbWVudEltcGwgKnRzcGFuQ29uc3RydWN0b3IoRG9jdW1lbnRQdHIg
KmRvY1B0ciwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCit7CisgICAgcmV0dXJuIG5ldyBTVkdUU3Bh
bkVsZW1lbnRJbXBsKHRzcGFuVGFnLCBkb2NQdHIpOworfQorCitTVkdFbGVtZW50SW1wbCAqdXNl
Q29uc3RydWN0b3IoRG9jdW1lbnRQdHIgKmRvY1B0ciwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCit7
CisgICAgcmV0dXJuIG5ldyBTVkdVc2VFbGVtZW50SW1wbCh1c2VUYWcsIGRvY1B0cik7Cit9CisK
K1NWR0VsZW1lbnRJbXBsICp2aWV3Q29uc3RydWN0b3IoRG9jdW1lbnRQdHIgKmRvY1B0ciwgYm9v
bCBjcmVhdGVkQnlQYXJzZXIpCit7CisgICAgcmV0dXJuIG5ldyBTVkdWaWV3RWxlbWVudEltcGwo
dmlld1RhZywgZG9jUHRyKTsKK30KKworCitzdGF0aWMgaW5saW5lIHZvaWQgY3JlYXRlRnVuY3Rp
b25NYXBJZk5lY2Vzc2FyeSgpCit7CisgICAgaWYgKGdGdW5jdGlvbk1hcCkKKyAgICAgICAgcmV0
dXJuOworICAgIC8vIENyZWF0ZSB0aGUgdGFibGUuCisgICAgZ0Z1bmN0aW9uTWFwID0gbmV3IEZ1
bmN0aW9uTWFwOworICAgIAorICAgIC8vIFBvcHVsYXRlIGl0IHdpdGggY29uc3RydWN0b3IgZnVu
Y3Rpb25zLgorICAgIGdGdW5jdGlvbk1hcC0+c2V0KGFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAo
dm9pZCopJmFDb25zdHJ1Y3Rvcik7CisgICAgZ0Z1bmN0aW9uTWFwLT5zZXQoYW5pbWF0ZVRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksICh2b2lkKikmYW5pbWF0ZUNvbnN0cnVjdG9yKTsKKyAgICBnRnVu
Y3Rpb25NYXAtPnNldChhbmltYXRlY29sb3JUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAodm9pZCop
JmFuaW1hdGVjb2xvckNvbnN0cnVjdG9yKTsKKyAgICBnRnVuY3Rpb25NYXAtPnNldChhbmltYXRl
dHJhbnNmb3JtVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgKHZvaWQqKSZhbmltYXRldHJhbnNmb3Jt
Q29uc3RydWN0b3IpOworICAgIGdGdW5jdGlvbk1hcC0+c2V0KGNpcmNsZVRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksICh2b2lkKikmY2lyY2xlQ29uc3RydWN0b3IpOworICAgIGdGdW5jdGlvbk1hcC0+
c2V0KGNsaXBwYXRoVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgKHZvaWQqKSZjbGlwcGF0aENvbnN0
cnVjdG9yKTsKKyAgICBnRnVuY3Rpb25NYXAtPnNldChjdXJzb3JUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCAodm9pZCopJmN1cnNvckNvbnN0cnVjdG9yKTsKKyAgICBnRnVuY3Rpb25NYXAtPnNldChk
ZWZzVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgKHZvaWQqKSZkZWZzQ29uc3RydWN0b3IpOworICAg
IGdGdW5jdGlvbk1hcC0+c2V0KGRlc2NUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAodm9pZCopJmRl
c2NDb25zdHJ1Y3Rvcik7CisgICAgZ0Z1bmN0aW9uTWFwLT5zZXQoZWxsaXBzZVRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksICh2b2lkKikmZWxsaXBzZUNvbnN0cnVjdG9yKTsKKyAgICBnRnVuY3Rpb25N
YXAtPnNldChmZWJsZW5kVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgKHZvaWQqKSZmZWJsZW5kQ29u
c3RydWN0b3IpOworICAgIGdGdW5jdGlvbk1hcC0+c2V0KGZlY29tcG9uZW50dHJhbnNmZXJUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCAodm9pZCopJmZlY29tcG9uZW50dHJhbnNmZXJDb25zdHJ1Y3Rv
cik7CisgICAgZ0Z1bmN0aW9uTWFwLT5zZXQoZmVjb21wb3NpdGVUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCAodm9pZCopJmZlY29tcG9zaXRlQ29uc3RydWN0b3IpOworICAgIGdGdW5jdGlvbk1hcC0+
c2V0KGZlZmxvb2RUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAodm9pZCopJmZlZmxvb2RDb25zdHJ1
Y3Rvcik7CisgICAgZ0Z1bmN0aW9uTWFwLT5zZXQoZmVmdW5jYVRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksICh2b2lkKikmZmVmdW5jYUNvbnN0cnVjdG9yKTsKKyAgICBnRnVuY3Rpb25NYXAtPnNldChm
ZWZ1bmNiVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgKHZvaWQqKSZmZWZ1bmNiQ29uc3RydWN0b3Ip
OworICAgIGdGdW5jdGlvbk1hcC0+c2V0KGZlZnVuY2dUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAo
dm9pZCopJmZlZnVuY2dDb25zdHJ1Y3Rvcik7CisgICAgZ0Z1bmN0aW9uTWFwLT5zZXQoZmVmdW5j
clRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICh2b2lkKikmZmVmdW5jckNvbnN0cnVjdG9yKTsKKyAg
ICBnRnVuY3Rpb25NYXAtPnNldChmZWdhdXNzaWFuYmx1clRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
ICh2b2lkKikmZmVnYXVzc2lhbmJsdXJDb25zdHJ1Y3Rvcik7CisgICAgZ0Z1bmN0aW9uTWFwLT5z
ZXQoZmVpbWFnZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICh2b2lkKikmZmVpbWFnZUNvbnN0cnVj
dG9yKTsKKyAgICBnRnVuY3Rpb25NYXAtPnNldChmZW1lcmdlVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgKHZvaWQqKSZmZW1lcmdlQ29uc3RydWN0b3IpOworICAgIGdGdW5jdGlvbk1hcC0+c2V0KGZl
bWVyZ2Vub2RlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgKHZvaWQqKSZmZW1lcmdlbm9kZUNvbnN0
cnVjdG9yKTsKKyAgICBnRnVuY3Rpb25NYXAtPnNldChmZW9mZnNldFRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksICh2b2lkKikmZmVvZmZzZXRDb25zdHJ1Y3Rvcik7CisgICAgZ0Z1bmN0aW9uTWFwLT5z
ZXQoZmV0aWxlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgKHZvaWQqKSZmZXRpbGVDb25zdHJ1Y3Rv
cik7CisgICAgZ0Z1bmN0aW9uTWFwLT5zZXQoZmV0dXJidWxlbmNlVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgKHZvaWQqKSZmZXR1cmJ1bGVuY2VDb25zdHJ1Y3Rvcik7CisgICAgZ0Z1bmN0aW9uTWFw
LT5zZXQoZmlsdGVyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgKHZvaWQqKSZmaWx0ZXJDb25zdHJ1
Y3Rvcik7CisgICAgZ0Z1bmN0aW9uTWFwLT5zZXQoZ1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksICh2
b2lkKikmZ0NvbnN0cnVjdG9yKTsKKyAgICBnRnVuY3Rpb25NYXAtPnNldChpbWFnZVRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksICh2b2lkKikmaW1hZ2VDb25zdHJ1Y3Rvcik7CisgICAgZ0Z1bmN0aW9u
TWFwLT5zZXQobGluZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICh2b2lkKikmbGluZUNvbnN0cnVj
dG9yKTsKKyAgICBnRnVuY3Rpb25NYXAtPnNldChsaW5lYXJncmFkaWVudFRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksICh2b2lkKikmbGluZWFyZ3JhZGllbnRDb25zdHJ1Y3Rvcik7CisgICAgZ0Z1bmN0
aW9uTWFwLT5zZXQobWFya2VyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgKHZvaWQqKSZtYXJrZXJD
b25zdHJ1Y3Rvcik7CisgICAgZ0Z1bmN0aW9uTWFwLT5zZXQocGF0aFRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksICh2b2lkKikmcGF0aENvbnN0cnVjdG9yKTsKKyAgICBnRnVuY3Rpb25NYXAtPnNldChw
YXR0ZXJuVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgKHZvaWQqKSZwYXR0ZXJuQ29uc3RydWN0b3Ip
OworICAgIGdGdW5jdGlvbk1hcC0+c2V0KHBvbHlnb25UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAo
dm9pZCopJnBvbHlnb25Db25zdHJ1Y3Rvcik7CisgICAgZ0Z1bmN0aW9uTWFwLT5zZXQocG9seWxp
bmVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAodm9pZCopJnBvbHlsaW5lQ29uc3RydWN0b3IpOwor
ICAgIGdGdW5jdGlvbk1hcC0+c2V0KHJhZGlhbGdyYWRpZW50VGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgKHZvaWQqKSZyYWRpYWxncmFkaWVudENvbnN0cnVjdG9yKTsKKyAgICBnRnVuY3Rpb25NYXAt
PnNldChyZWN0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgKHZvaWQqKSZyZWN0Q29uc3RydWN0b3Ip
OworICAgIGdGdW5jdGlvbk1hcC0+c2V0KHNjcmlwdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICh2
b2lkKikmc2NyaXB0Q29uc3RydWN0b3IpOworICAgIGdGdW5jdGlvbk1hcC0+c2V0KHNldFRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksICh2b2lkKikmc2V0Q29uc3RydWN0b3IpOworICAgIGdGdW5jdGlv
bk1hcC0+c2V0KHN0b3BUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAodm9pZCopJnN0b3BDb25zdHJ1
Y3Rvcik7CisgICAgZ0Z1bmN0aW9uTWFwLT5zZXQoc3R5bGVUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCAodm9pZCopJnN0eWxlQ29uc3RydWN0b3IpOworICAgIGdGdW5jdGlvbk1hcC0+c2V0KHN2Z1Rh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksICh2b2lkKikmc3ZnQ29uc3RydWN0b3IpOworICAgIGdGdW5j
dGlvbk1hcC0+c2V0KHN3aXRjaFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICh2b2lkKikmc3dpdGNo
Q29uc3RydWN0b3IpOworICAgIGdGdW5jdGlvbk1hcC0+c2V0KHN5bWJvbFRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksICh2b2lkKikmc3ltYm9sQ29uc3RydWN0b3IpOworICAgIGdGdW5jdGlvbk1hcC0+
c2V0KHRleHRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAodm9pZCopJnRleHRDb25zdHJ1Y3Rvcik7
CisgICAgZ0Z1bmN0aW9uTWFwLT5zZXQodGl0bGVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAodm9p
ZCopJnRpdGxlQ29uc3RydWN0b3IpOworICAgIGdGdW5jdGlvbk1hcC0+c2V0KHRzcGFuVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgKHZvaWQqKSZ0c3BhbkNvbnN0cnVjdG9yKTsKKyAgICBnRnVuY3Rp
b25NYXAtPnNldCh1c2VUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAodm9pZCopJnVzZUNvbnN0cnVj
dG9yKTsKKyAgICBnRnVuY3Rpb25NYXAtPnNldCh2aWV3VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
KHZvaWQqKSZ2aWV3Q29uc3RydWN0b3IpOworfQorCitTVkdFbGVtZW50SW1wbCAqU1ZHRWxlbWVu
dEZhY3Rvcnk6OmNyZWF0ZVNWR0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgcU5hbWUsIERv
Y3VtZW50SW1wbCogZG9jLCBib29sIGNyZWF0ZWRCeVBhcnNlcikKK3sKKyAgICBpZiAoIWRvYykK
KyAgICAgICAgcmV0dXJuIDA7IC8vIERvbid0IGFsbG93IGVsZW1lbnRzIHRvIGV2ZXIgYmUgbWFk
ZSB3aXRob3V0IGhhdmluZyBhIGRvYy4KKworICAgIERvY3VtZW50UHRyICpkb2NQdHIgPSBkb2Mt
PmRvY1B0cigpOworICAgIGNyZWF0ZUZ1bmN0aW9uTWFwSWZOZWNlc3NhcnkoKTsKKyAgICB2b2lk
KiByZXN1bHQgPSBnRnVuY3Rpb25NYXAtPmdldChxTmFtZS5sb2NhbE5hbWUoKS5pbXBsKCkpOwor
ICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgQ29uc3RydWN0b3JGdW5jIGZ1bmMgPSAoQ29uc3Ry
dWN0b3JGdW5jKXJlc3VsdDsKKyAgICAgICAgcmV0dXJuIChmdW5jKShkb2NQdHIsIGNyZWF0ZWRC
eVBhcnNlcik7CisgICAgfQorICAgIAorICAgIHJldHVybiAwOworfQorCit9OyAvLyBuYW1lc3Bh
Y2UKKwpJbmRleDoga3N2ZzIvc3ZnL1NWR0VsZW1lbnRGYWN0b3J5LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg
ZmlsZToga3N2ZzIvc3ZnL1NWR0VsZW1lbnRGYWN0b3J5LmgKZGlmZiAtTiBrc3ZnMi9zdmcvU1ZH
RWxlbWVudEZhY3RvcnkuaAotLS0ga3N2ZzIvc3ZnL1NWR0VsZW1lbnRGYWN0b3J5LmgJMSBKYW4g
MTk3MCAwMDowMDowMCAtMDAwMAorKysga3N2ZzIvc3ZnL1NWR0VsZW1lbnRGYWN0b3J5LmgJMSBO
b3YgMjAwNSAxMToxMzoxMyAtMDAwMApAQCAtMCwwICsxLDQ5IEBACisvKgorICogVGhpcyBmaWxl
IGlzIHBhcnQgb2YgdGhlIFNWRyBET00gaW1wbGVtZW50YXRpb24gZm9yIEtERS4KKyAqCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisgKiBC
b3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBTVkdFTEVNRU5U
RkFDVE9SWV9ICisjZGVmaW5lIFNWR0VMRU1FTlRGQUNUT1JZX0gKKworCituYW1lc3BhY2UgS0RP
TSB7CisJY2xhc3MgRWxlbWVudEltcGw7CisJY2xhc3MgRG9jdW1lbnRJbXBsOworCWNsYXNzIFF1
YWxpZmllZE5hbWU7CisJY2xhc3MgQXRvbWljU3RyaW5nOworfQorCituYW1lc3BhY2UgS1NWRwor
eworCWNsYXNzIFNWR0VsZW1lbnRJbXBsOworCQorCS8vIFRoZSBpZGVhIGJlaGluZCB0aGlzIGNs
YXNzIGlzIHRoYXQgdGhlcmUgd2lsbCBldmVudHVhbGx5IGJlIGEgbWFwcGluZyBmcm9tIG5hbWVz
cGFjZSBVUklzIHRvIEVsZW1lbnRGYWN0b3JpZXMgdGhhdCBjYW4gZGlzcGVuc2UKKwkvLyBlbGVt
ZW50cy4gIEluIGEgY29tcG91bmQgZG9jdW1lbnQgd29ybGQsIHRoZSBnZW5lcmljIGNyZWF0ZUVs
ZW1lbnQgZnVuY3Rpb24gKHdpbGwgZW5kIHVwIGJlaW5nIHZpcnR1YWwpIHdpbGwgYmUgY2FsbGVk
LgorCWNsYXNzIFNWR0VsZW1lbnRGYWN0b3J5CisJeworCXB1YmxpYzoKKwkJS0RPTTo6RWxlbWVu
dEltcGwgKmNyZWF0ZUVsZW1lbnQoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgcU5hbWUsIEtE
T006OkRvY3VtZW50SW1wbCAqZG9jLCBib29sIGNyZWF0ZWRCeVBhcnNlciA9IHRydWUpOworCQlz
dGF0aWMgU1ZHRWxlbWVudEltcGwgKmNyZWF0ZVNWR0VsZW1lbnQoY29uc3QgS0RPTTo6UXVhbGlm
aWVkTmFtZSYgcU5hbWUsIEtET006OkRvY3VtZW50SW1wbCAqZG9jLCBib29sIGNyZWF0ZWRCeVBh
cnNlciA9IHRydWUpOworCX07Cit9CisKKyNlbmRpZgorCkluZGV4OiBrc3ZnMi9zdmcvU1ZHRWxl
bWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tz
dmcyL3N2Zy9TVkdFbGVtZW50SW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNwpkaWZm
IC1wIC11IC1yMS43IGtzdmcyL3N2Zy9TVkdFbGVtZW50SW1wbC5jcHAKLS0tIGtzdmcyL3N2Zy9T
VkdFbGVtZW50SW1wbC5jcHAJNSBPY3QgMjAwNSAwNTozNToxOSAtMDAwMAkxLjcKKysrIGtzdmcy
L3N2Zy9TVkdFbGVtZW50SW1wbC5jcHAJMSBOb3YgMjAwNSAxMToxMzoxMyAtMDAwMApAQCAtMzAs
NyArMzAsNyBAQAogI2luY2x1ZGUgPGtkb20vZXZlbnRzL0V2ZW50TGlzdGVuZXJJbXBsLmg+CiAK
ICNpbmNsdWRlICJrc3ZnLmgiCi0jaW5jbHVkZSAic3ZnYXR0cnMuaCIKKyNpbmNsdWRlICJTVkdO
YW1lcy5oIgogLy8jaW5jbHVkZSAiU1ZHRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVu
dEltcGwuaCIKICNpbmNsdWRlICJTVkdEb2N1bWVudEltcGwuaCIKQEAgLTQwLDcgKzQwLDcgQEAK
IAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKLVNWR0VsZW1lbnRJbXBsOjpTVkdFbGVtZW50SW1w
bChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRP
TVN0cmluZ0ltcGwgKnByZWZpeCkgOiBLRE9NOjpYTUxFbGVtZW50SW1wbChkb2MsIGlkLCBwcmVm
aXgpCitTVkdFbGVtZW50SW1wbDo6U1ZHRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRvYykgOiBLRE9NOjpYTUxFbGVtZW50
SW1wbCh0YWdOYW1lLCBkb2MpLCBtX2Nsb3NlZChmYWxzZSkKIHsKIH0KIApAQCAtNTAsMzEgKzUw
LDEwIEBAIFNWR0VsZW1lbnRJbXBsOjp+U1ZHRWxlbWVudEltcGwoKQogCiBib29sIFNWR0VsZW1l
bnRJbXBsOjppc1N1cHBvcnRlZChLRE9NOjpET01TdHJpbmdJbXBsICpmZWF0dXJlLCBLRE9NOjpE
T01TdHJpbmdJbXBsICp2ZXJzaW9uKSBjb25zdAogewotICAgIGlmKFNWR0RPTUltcGxlbWVudGF0
aW9uSW1wbDo6c2VsZigpLT5oYXNGZWF0dXJlKGZlYXR1cmUsIHZlcnNpb24pKQorICAgIGlmKFNW
R0RPTUltcGxlbWVudGF0aW9uSW1wbDo6aW5zdGFuY2UoKS0+aGFzRmVhdHVyZShmZWF0dXJlLCB2
ZXJzaW9uKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICByZXR1cm4gS0RPTTo6RE9NSW1w
bGVtZW50YXRpb25JbXBsOjpzZWxmKCktPmhhc0ZlYXR1cmUoZmVhdHVyZSwgdmVyc2lvbik7Ci19
Ci0KLUtET006OkRPTVN0cmluZ0ltcGwgKlNWR0VsZW1lbnRJbXBsOjpnZXRJZCgpIGNvbnN0Ci17
Ci0gICAgS0RPTTo6RE9NU3RyaW5nIGlkKCJpZCIpOwotICAgIHJldHVybiB0cnlHZXRBdHRyaWJ1
dGUoaWQuaGFuZGxlKCkpOwotfQotCi12b2lkIFNWR0VsZW1lbnRJbXBsOjpzZXRHZXRJZChLRE9N
OjpET01TdHJpbmdJbXBsICopCi17Ci0gICAgdGhyb3cgbmV3IEtET006OkRPTUV4Y2VwdGlvbklt
cGwoS0RPTTo6Tk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSKTsKLX0KLQotS0RPTTo6RE9NU3Ry
aW5nSW1wbCAqU1ZHRWxlbWVudEltcGw6OnhtbGJhc2UoKSBjb25zdAotewotICAgIHJldHVybiB0
cnlHZXRBdHRyaWJ1dGUoS0RPTTo6RE9NU3RyaW5nKCJ4bWw6YmFzZSIpLmhhbmRsZSgpKTsKLX0K
LQotdm9pZCBTVkdFbGVtZW50SW1wbDo6c2V0WG1sYmFzZShLRE9NOjpET01TdHJpbmdJbXBsICop
Ci17Ci0gICAgdGhyb3cgbmV3IEtET006OkRPTUV4Y2VwdGlvbkltcGwoS0RPTTo6Tk9fTU9ESUZJ
Q0FUSU9OX0FMTE9XRURfRVJSKTsKKyAgICByZXR1cm4gS0RPTTo6RE9NSW1wbGVtZW50YXRpb25J
bXBsOjppbnN0YW5jZSgpLT5oYXNGZWF0dXJlKGZlYXR1cmUsIHZlcnNpb24pOwogfQogCiBTVkdT
VkdFbGVtZW50SW1wbCAqU1ZHRWxlbWVudEltcGw6Om93bmVyU1ZHRWxlbWVudCgpIGNvbnN0CkBA
IC04Miw3ICs2MSw3IEBAIFNWR1NWR0VsZW1lbnRJbXBsICpTVkdFbGVtZW50SW1wbDo6b3duZXIK
ICAgICBOb2RlSW1wbCAqbiA9IHBhcmVudE5vZGUoKTsKICAgICB3aGlsZShuKQogICAgIHsKLSAg
ICAgICAgaWYobi0+bm9kZVR5cGUoKSA9PSBLRE9NOjpFTEVNRU5UX05PREUgJiYgbi0+aWQoKSA9
PSBJRF9TVkcpCisgICAgICAgIGlmKG4tPm5vZGVUeXBlKCkgPT0gS0RPTTo6RUxFTUVOVF9OT0RF
ICYmIG4tPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnN2Z1RhZykpCiAgICAgICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8U1ZHU1ZHRWxlbWVudEltcGwgKj4obik7CiAKICAgICAgICAgbiA9IG4tPnBh
cmVudE5vZGUoKTsKQEAgLTk3LDcgKzc2LDcgQEAgU1ZHRWxlbWVudEltcGwgKlNWR0VsZW1lbnRJ
bXBsOjp2aWV3cG9ydAogICAgIHdoaWxlKG4pCiAgICAgewogICAgICAgICBpZihuLT5ub2RlVHlw
ZSgpID09IEtET006OkVMRU1FTlRfTk9ERSAmJgotICAgICAgICAgICAgKG4tPmlkKCkgPT0gSURf
U1ZHIHx8IG4tPmlkKCkgPT0gSURfSU1BR0UgfHwgbi0+aWQoKSA9PSBJRF9TWU1CT0wpKQorICAg
ICAgICAgICAgKG4tPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnN2Z1RhZykgfHwgbi0+aGFzVGFnTmFt
ZShTVkdOYW1lczo6aW1hZ2VUYWcpIHx8IG4tPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnN5bWJvbFRh
ZykpKQogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNWR0VsZW1lbnRJbXBsICo+KG4p
OwogCiAgICAgICAgIG4gPSBuLT5wYXJlbnROb2RlKCk7CkBAIC0xMDYsMjAgKzg1LDIwIEBAIFNW
R0VsZW1lbnRJbXBsICpTVkdFbGVtZW50SW1wbDo6dmlld3BvcnQKICAgICByZXR1cm4gMDsKIH0K
IAotS0RPTTo6RE9NU3RyaW5nSW1wbCAqU1ZHRWxlbWVudEltcGw6OnRyeUdldEF0dHJpYnV0ZShL
RE9NOjpET01TdHJpbmdJbXBsICpuYW1lLCBLRE9NOjpET01TdHJpbmdJbXBsICpkZWZhdWx0VmFs
KSBjb25zdAorY29uc3QgS0RPTTo6QXRvbWljU3RyaW5nJiBTVkdFbGVtZW50SW1wbDo6dHJ5R2V0
QXR0cmlidXRlKGNvbnN0IEtET006OkRPTVN0cmluZyYgbmFtZSwgY29uc3QgS0RPTTo6QXRvbWlj
U3RyaW5nJiBkZWZhdWx0VmFsKSBjb25zdAogewogICAgIGlmKGhhc0F0dHJpYnV0ZShuYW1lKSkK
ICAgICAgICAgcmV0dXJuIGdldEF0dHJpYnV0ZShuYW1lKTsKIAotICAgIHJldHVybiBkZWZhdWx0
VmFsLT5jb3B5KCk7CisgICAgcmV0dXJuIGRlZmF1bHRWYWw7CiB9CiAKLUtET006OkRPTVN0cmlu
Z0ltcGwgKlNWR0VsZW1lbnRJbXBsOjp0cnlHZXRBdHRyaWJ1dGVOUyhLRE9NOjpET01TdHJpbmdJ
bXBsICpuYW1lc3BhY2VVUkksIEtET006OkRPTVN0cmluZ0ltcGwgKmxvY2FsTmFtZSwgS0RPTTo6
RE9NU3RyaW5nSW1wbCAqZGVmYXVsdFZhbCkgY29uc3QKK2NvbnN0IEtET006OkF0b21pY1N0cmlu
ZyYgIFNWR0VsZW1lbnRJbXBsOjp0cnlHZXRBdHRyaWJ1dGVOUyhjb25zdCBLRE9NOjpET01TdHJp
bmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgS0RPTTo6RE9NU3RyaW5nJiBsb2NhbE5hbWUsIGNvbnN0
IEtET006OkF0b21pY1N0cmluZyYgZGVmYXVsdFZhbCkgY29uc3QKIHsKICAgICBpZihoYXNBdHRy
aWJ1dGVOUyhuYW1lc3BhY2VVUkksIGxvY2FsTmFtZSkpCiAgICAgICAgIHJldHVybiBnZXRBdHRy
aWJ1dGVOUyhuYW1lc3BhY2VVUkksIGxvY2FsTmFtZSk7CiAKLSAgICByZXR1cm4gZGVmYXVsdFZh
bC0+Y29weSgpOworICAgIHJldHVybiBkZWZhdWx0VmFsOwogfQogCiB2b2lkIFNWR0VsZW1lbnRJ
bXBsOjpwYXJzZUF0dHJpYnV0ZShLRE9NOjpBdHRyaWJ1dGVJbXBsICphdHRyKQpAQCAtMTI4LDU4
ICsxMDcsMzMgQEAgdm9pZCBTVkdFbGVtZW50SW1wbDo6cGFyc2VBdHRyaWJ1dGUoS0RPTQogICAg
IGlmKCFkb2MpCiAgICAgICAgIHJldHVybjsKIAotICAgIGludCBpZCA9IChhdHRyLT5pZCgpICYg
Tm9kZUltcGxfSWRMb2NhbE1hc2spOwotICAgIHN3aXRjaChpZCkKLSAgICB7Ci0gICAgICAgIGNh
c2UgQVRUUl9PTkxPQUQ6Ci0gICAgICAgIHsKKy8vICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZH
TmFtZXM6Om9ubG9hZEF0dHIpCiAvLyAgICAgICAgICAgIGFkZFNWR0V2ZW50TGlzdGVuZXIoZG9j
LT5lY21hRW5naW5lKCksIEtET006OkRPTVN0cmluZygibG9hZCIpLCB2YWx1ZSk7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIEFUVFJfT05VTkxPQUQ6Ci0gICAg
ICAgIHsKKy8vICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6b251bmxvYWRB
dHRyKQogLy8gICAgICAgICAgICBhZGRTVkdFdmVudExpc3RlbmVyKGRvYy0+ZWNtYUVuZ2luZSgp
LCBLRE9NOjpET01TdHJpbmcoInVubG9hZCIpLCB2YWx1ZSk7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgfQotICAgICAgICBjYXNlIEFUVFJfT05BQk9SVDoKLSAgICAgICAgeworLy8gICAg
ZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjpvbmFib3J0QXR0cikKIC8vICAgICAg
ICAgICAgYWRkU1ZHRXZlbnRMaXN0ZW5lcihkb2MtPmVjbWFFbmdpbmUoKSwgS0RPTTo6RE9NU3Ry
aW5nKCJhYm9ydCIpLCB2YWx1ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAg
ICAgICBjYXNlIEFUVFJfT05FUlJPUjoKLSAgICAgICAgeworLy8gICAgZWxzZSBpZiAoYXR0ci0+
bmFtZSgpID09IFNWR05hbWVzOjpvbmVycm9yQXR0cikKIC8vICAgICAgICAgICAgYWRkU1ZHRXZl
bnRMaXN0ZW5lcihkb2MtPmVjbWFFbmdpbmUoKSwgS0RPTTo6RE9NU3RyaW5nKCJlcnJvciIpLCB2
YWx1ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIEFUVFJf
T05SRVNJWkU6Ci0gICAgICAgIHsKKy8vICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdO
YW1lczo6b25yZXNpemVBdHRyKQogLy8gICAgICAgICAgICBhZGRTVkdFdmVudExpc3RlbmVyKGRv
Yy0+ZWNtYUVuZ2luZSgpLCBLRE9NOjpET01TdHJpbmcoInJlc2l6ZSIpLCB2YWx1ZSk7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIEFUVFJfT05TQ1JPTEw6Ci0g
ICAgICAgIHsKKy8vICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6b25zY3Jv
bGxBdHRyKQogLy8gICAgICAgICAgICBhZGRTVkdFdmVudExpc3RlbmVyKGRvYy0+ZWNtYUVuZ2lu
ZSgpLCBLRE9NOjpET01TdHJpbmcoInNjcm9sbCIpLCB2YWx1ZSk7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgfQotICAgICAgICBjYXNlIEFUVFJfT05aT09NOgotICAgICAgICB7CisvLyAg
ICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6Om9uem9vbUF0dHIpCiAvLyAgICAg
ICAgICAgIGFkZFNWR0V2ZW50TGlzdGVuZXIoZG9jLT5lY21hRW5naW5lKCksIEtET006OkRPTVN0
cmluZygiem9vbSIpLCB2YWx1ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAg
ICAgICBjYXNlIEFUVFJfSUQ6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIEtET006OkRPTVN0cmlu
ZyBzdmcoS0RPTTo6TlNfU1ZHKTsKLSAgICAgICAgICAgIEtET006OkRPTVN0cmluZyBpZCgiaWQi
KTsKLQotICAgICAgICAgICAgS0RPTTo6QXR0ckltcGwgKmF0dHIgPSBnZXRBdHRyaWJ1dGVOb2Rl
TlMoc3ZnLmhhbmRsZSgpLCBpZC5oYW5kbGUoKSk7Ci0gICAgICAgICAgICBpZihhdHRyKQotICAg
ICAgICAgICAgICAgIGF0dHItPnNldElzSWQodHJ1ZSk7Ci0KLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICB9Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBLRE9NOjpFbGVtZW50SW1w
bDo6cGFyc2VBdHRyaWJ1dGUoYXR0cik7Ci0gICAgfTsKKy8vICAgIGVsc2UKKyNpZm5kZWYgQVBQ
TEVfQ09NUElMRV9IQUNLCisgICAgLy8gV2UgZG9uJ3QgeWV0IGtub3cgaG93IHRvIHN1cHBvcnQg
c2V0SXNJZC9pc0lkCisgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6aWRBdHRyKQor
ICAgIHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgc2VlbXMgYm9ndXMuICBpZCBzaG91bGQgYmUg
aW4gdGhlIG51bGwgb3IgeG1sIG5hbWVzcGFjZSwgcmlnaHQ/IC0tIGVjcyAxMC8zMS8wNQorICAg
ICAgICBLRE9NOjpBdHRySW1wbCAqYXR0ciA9IGdldEF0dHJpYnV0ZU5vZGVOUyhLRE9NOjpOU19T
VkcsICJpZCIpOworICAgICAgICBpZihhdHRyKQorICAgICAgICAgICAgYXR0ci0+c2V0SXNJZCh0
cnVlKTsKKyAgICB9CisgICAgZWxzZQorI2VuZGlmCisgICAgICAgIEtET006OkVsZW1lbnRJbXBs
OjpwYXJzZUF0dHJpYnV0ZShhdHRyKTsKIH0KICNpZiAwCiB2b2lkIFNWR0VsZW1lbnRJbXBsOjph
ZGRTVkdFdmVudExpc3RlbmVyKEtET006OkVjbWEgKmVjbWFFbmdpbmUsIEtET006OkRPTVN0cmlu
Z0ltcGwgKnR5cGUsIEtET006OkRPTVN0cmluZ0ltcGwgKnZhbHVlKQpJbmRleDoga3N2ZzIvc3Zn
L1NWR0VsZW1lbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBv
cnQva3N2ZzIvc3ZnL1NWR0VsZW1lbnRJbXBsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNwpk
aWZmIC1wIC11IC1yMS43IGtzdmcyL3N2Zy9TVkdFbGVtZW50SW1wbC5oCi0tLSBrc3ZnMi9zdmcv
U1ZHRWxlbWVudEltcGwuaAkyOCBTZXAgMjAwNSAwNTowNjowNyAtMDAwMAkxLjcKKysrIGtzdmcy
L3N2Zy9TVkdFbGVtZW50SW1wbC5oCTEgTm92IDIwMDUgMTE6MTM6MTMgLTAwMDAKQEAgLTIzLDcg
KzIzLDcgQEAKICNpZm5kZWYgS1NWR19TVkdFbGVtZW50SW1wbF9ICiAjZGVmaW5lIEtTVkdfU1ZH
RWxlbWVudEltcGxfSAogCi0jaW5jbHVkZSA8a3N2ZzIvc3ZnL3N2Z3RhZ3MuaD4KKyNpbmNsdWRl
ICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgPGtkb20vY29yZS9YTUxFbGVtZW50SW1wbC5oPgogCiBu
YW1lc3BhY2UgS0RPTQpAQCAtNDIsMjYgKzQyLDIwIEBAIG5hbWVzcGFjZSBLU1ZHCiAgICAgY2xh
c3MgU1ZHRWxlbWVudEltcGwgOiBwdWJsaWMgS0RPTTo6WE1MRWxlbWVudEltcGwKICAgICB7CiAg
ICAgcHVibGljOgotICAgICAgICBTVkdFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0ciAqZG9j
LCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZpeCk7Cisg
ICAgICAgIFNWR0VsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IEtET006OkRvY3VtZW50UHRyICpkb2MpOwogICAgICAgICB2aXJ0dWFsIH5TVkdFbGVtZW50SW1w
bCgpOwogI2lmIEFQUExFX0NIQU5HRVMKICAgICAgICAgdmlydHVhbCBib29sIGlzU1ZHRWxlbWVu
dCgpIHsgcmV0dXJuIHRydWU7IH0KICNlbmRpZgogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTdXBw
b3J0ZWQoS0RPTTo6RE9NU3RyaW5nSW1wbCAqZmVhdHVyZSwgS0RPTTo6RE9NU3RyaW5nSW1wbCAq
dmVyc2lvbikgY29uc3Q7CiAKLSAgICAgICAgLy8gJ1NWR0VsZW1lbnQnIGZ1bmN0aW9ucwotICAg
ICAgICBLRE9NOjpET01TdHJpbmdJbXBsICpnZXRJZCgpIGNvbnN0OwotICAgICAgICB2b2lkIHNl
dEdldElkKEtET006OkRPTVN0cmluZ0ltcGwgKik7Ci0gICAgICAgIEtET006OkRPTVN0cmluZ0lt
cGwgKnhtbGJhc2UoKSBjb25zdDsKLSAgICAgICAgdm9pZCBzZXRYbWxiYXNlKEtET006OkRPTVN0
cmluZ0ltcGwgKik7Ci0KICAgICAgICAgU1ZHU1ZHRWxlbWVudEltcGwgKm93bmVyU1ZHRWxlbWVu
dCgpIGNvbnN0OwogICAgICAgICBTVkdFbGVtZW50SW1wbCAqdmlld3BvcnRFbGVtZW50KCkgY29u
c3Q7CiAKICAgICAgICAgLy8gSGVscGVyIG1ldGhvZHMgdGhhdCByZXR1cm5zIHRoZSBhdHRyIHZh
bHVlIGlmIGF0dHIgaXMgc2V0LCBvdGhlcndpc2UgdGhlIGRlZmF1bHQgdmFsdWUuCiAgICAgICAg
IC8vIEl0IHRocm93cyBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgaWYgdGhlIGVsZW1lbnQg
aXMgcmVhZC1vbmx5LgotICAgICAgICBLRE9NOjpET01TdHJpbmdJbXBsICp0cnlHZXRBdHRyaWJ1
dGUoS0RPTTo6RE9NU3RyaW5nSW1wbCAqbmFtZSwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqZGVmYXVs
dFZhbCA9IDApIGNvbnN0OwotICAgICAgICBLRE9NOjpET01TdHJpbmdJbXBsICp0cnlHZXRBdHRy
aWJ1dGVOUyhLRE9NOjpET01TdHJpbmdJbXBsICpuYW1lc3BhY2VVUkksIEtET006OkRPTVN0cmlu
Z0ltcGwgKmxvY2FsTmFtZSwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqZGVmYXVsdFZhbCA9IDApIGNv
bnN0OworICAgICAgICBjb25zdCBLRE9NOjpBdG9taWNTdHJpbmcmIHRyeUdldEF0dHJpYnV0ZShj
b25zdCBLRE9NOjpET01TdHJpbmcmIG5hbWUsIGNvbnN0IEtET006OkF0b21pY1N0cmluZyYgZGVm
YXVsdFZhbHVlID0gS0RPTTo6QXRvbWljU3RyaW5nKCkpIGNvbnN0OworICAgICAgICBjb25zdCBL
RE9NOjpBdG9taWNTdHJpbmcmIHRyeUdldEF0dHJpYnV0ZU5TKGNvbnN0IEtET006OkRPTVN0cmlu
ZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBLRE9NOjpET01TdHJpbmcmIGxvY2FsTmFtZSwgY29uc3Qg
S0RPTTo6QXRvbWljU3RyaW5nJiBkZWZhdWx0VmFsdWUgPSBLRE9NOjpBdG9taWNTdHJpbmcoKSkg
Y29uc3Q7CiAKICAgICAgICAgLy8gSW50ZXJuYWwKICAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNl
QXR0cmlidXRlKEtET006OkF0dHJpYnV0ZUltcGwgKmF0dHIpOwpAQCAtNzUsOCArNjksMTQgQEAg
bmFtZXNwYWNlIEtTVkcKICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1N0eWxlZCgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1NWRygpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgICAgIAorICAgICAgICB2aXJ0dWFsIHZvaWQgY2xv
c2VSZW5kZXJlcigpIHsgbV9jbG9zZWQgPSB0cnVlOyB9CisgICAgICAgIAorICAgICAgICAvLyBo
ZWxwZXI6CisgICAgICAgIGJvb2wgaXNDbG9zZWQoKSB7IHJldHVybiBtX2Nsb3NlZDsgfQogCiAg
ICAgcHJpdmF0ZToKKyAgICAgICAgYm9vbCBtX2Nsb3NlZDsKICNpZiAwCiAgICAgICAgIHZvaWQg
YWRkU1ZHRXZlbnRMaXN0ZW5lcihLRE9NOjpFY21hICplY21hRW5naW5lLCBjb25zdCBLRE9NOjpE
T01TdHJpbmcgJnR5cGUsIGNvbnN0IEtET006OkRPTVN0cmluZyAmdmFsdWUpOwogI2VuZGlmCklu
ZGV4OiBrc3ZnMi9zdmcvU1ZHRWxsaXBzZUVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHRWxsaXBzZUVsZW1lbnRJbXBs
LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS42CmRpZmYgLXAgLXUgLXIxLjYga3N2ZzIvc3Zn
L1NWR0VsbGlwc2VFbGVtZW50SW1wbC5jcHAKLS0tIGtzdmcyL3N2Zy9TVkdFbGxpcHNlRWxlbWVu
dEltcGwuY3BwCTUgT2N0IDIwMDUgMDU6MzU6MTkgLTAwMDAJMS42CisrKyBrc3ZnMi9zdmcvU1ZH
RWxsaXBzZUVsZW1lbnRJbXBsLmNwcAkxIE5vdiAyMDA1IDExOjEzOjE0IC0wMDAwCkBAIC0yMyw3
ICsyMyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJ
bXBsLmg+CiAKLSNpbmNsdWRlICJzdmdhdHRycy5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAj
aW5jbHVkZSAiU1ZHSGVscGVyLmgiCiAjaW5jbHVkZSAiU1ZHRWxsaXBzZUVsZW1lbnRJbXBsLmgi
CiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsLmgiCkBAIC0zMSwxMCArMzEsMTAgQEAK
ICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXMuaD4KICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXND
cmVhdG9yLmg+CiAKLXVzaW5nIG5hbWVzcGFjZSBLU1ZHOworbmFtZXNwYWNlIEtTVkcgewogCi1T
VkdFbGxpcHNlRWxlbWVudEltcGw6OlNWR0VsbGlwc2VFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVu
dFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnBy
ZWZpeCkKLTogU1ZHU3R5bGVkRWxlbWVudEltcGwoZG9jLCBpZCwgcHJlZml4KSwgU1ZHVGVzdHNJ
bXBsKCksIFNWR0xhbmdTcGFjZUltcGwoKSwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElt
cGwoKSwgU1ZHVHJhbnNmb3JtYWJsZUltcGwoKQorU1ZHRWxsaXBzZUVsZW1lbnRJbXBsOjpTVkdF
bGxpcHNlRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RP
TTo6RG9jdW1lbnRQdHIgKmRvYykKKzogU1ZHU3R5bGVkRWxlbWVudEltcGwodGFnTmFtZSwgZG9j
KSwgU1ZHVGVzdHNJbXBsKCksIFNWR0xhbmdTcGFjZUltcGwoKSwgU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZEltcGwoKSwgU1ZHVHJhbnNmb3JtYWJsZUltcGwoKQogewogICAgIG1fY3ggPSBt
X2N5ID0gbV9yeCA9IG1fcnkgPSAwOwogfQpAQCAtNzMsNDAgKzczLDI0IEBAIFNWR0FuaW1hdGVk
TGVuZ3RoSW1wbCAqU1ZHRWxsaXBzZUVsZW1lbnQKIAogdm9pZCBTVkdFbGxpcHNlRWxlbWVudElt
cGw6OnBhcnNlQXR0cmlidXRlKEtET006OkF0dHJpYnV0ZUltcGwgKmF0dHIpCiB7Ci0gICAgaW50
IGlkID0gKGF0dHItPmlkKCkgJiBOb2RlSW1wbF9JZExvY2FsTWFzayk7Ci0gICAgS0RPTTo6RE9N
U3RyaW5nSW1wbCAqdmFsdWUgPSBhdHRyLT52YWx1ZSgpOwotICAgIHN3aXRjaChpZCkKKyAgICBj
b25zdCBLRE9NOjpBdG9taWNTdHJpbmcmIHZhbHVlID0gYXR0ci0+dmFsdWUoKTsKKyAgICBpZiAo
YXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjpjeEF0dHIpCisgICAgICAgIGN4KCktPmJhc2VWYWwo
KS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZS5pbXBsKCkpOworICAgIGlmIChhdHRyLT5uYW1lKCkg
PT0gU1ZHTmFtZXM6OmN5QXR0cikKKyAgICAgICAgY3koKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFz
U3RyaW5nKHZhbHVlLmltcGwoKSk7CisgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6
cnhBdHRyKQorICAgICAgICByeCgpLT5iYXNlVmFsKCktPnNldFZhbHVlQXNTdHJpbmcodmFsdWUu
aW1wbCgpKTsKKyAgICBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjpyeUF0dHIpCisgICAg
ICAgIHJ5KCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZS5pbXBsKCkpOworICAg
IGVsc2UKICAgICB7Ci0gICAgICAgIGNhc2UgQVRUUl9DWDoKLSAgICAgICAgewotICAgICAgICAg
ICAgY3goKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgQVRUUl9DWToKLSAgICAgICAgewotICAg
ICAgICAgICAgY3koKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgQVRUUl9SWDoKLSAgICAgICAg
ewotICAgICAgICAgICAgcngoKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgQVRUUl9SWToKLSAg
ICAgICAgewotICAgICAgICAgICAgcnkoKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZh
bHVlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGRlZmF1bHQ6Ci0g
ICAgICAgIHsKLSAgICAgICAgICAgIGlmKFNWR1Rlc3RzSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0
cikpIHJldHVybjsKLSAgICAgICAgICAgIGlmKFNWR0xhbmdTcGFjZUltcGw6OnBhcnNlQXR0cmli
dXRlKGF0dHIpKSByZXR1cm47Ci0gICAgICAgICAgICBpZihTVkdFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsKLSAgICAgICAgICAgIGlm
KFNWR1RyYW5zZm9ybWFibGVJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOwotICAg
ICAgICAgICAgCi0gICAgICAgICAgICBTVkdTdHlsZWRFbGVtZW50SW1wbDo6cGFyc2VBdHRyaWJ1
dGUoYXR0cik7Ci0gICAgICAgIH0KLSAgICB9OworICAgICAgICBpZihTVkdUZXN0c0ltcGw6OnBh
cnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47CisgICAgICAgIGlmKFNWR0xhbmdTcGFjZUltcGw6
OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47CisgICAgICAgIGlmKFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWRJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOworICAgICAg
ICBpZihTVkdUcmFuc2Zvcm1hYmxlSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsK
KyAgICAgICAgCisgICAgICAgIFNWR1N0eWxlZEVsZW1lbnRJbXBsOjpwYXJzZUF0dHJpYnV0ZShh
dHRyKTsKKyAgICB9CiB9CiAKIEtDUGF0aERhdGFMaXN0IFNWR0VsbGlwc2VFbGVtZW50SW1wbDo6
dG9QYXRoRGF0YSgpIGNvbnN0CkBAIC0xMzEsNCArMTE1LDYgQEAgY29uc3QgU1ZHU3R5bGVkRWxl
bWVudEltcGwgKlNWR0VsbGlwc2VFbAogICAgIHJldHVybiByZXN0b3JlOwogfQogCit9CisKIC8v
IHZpbTp0cz00Om5vZXQKSW5kZXg6IGtzdmcyL3N2Zy9TVkdFbGxpcHNlRWxlbWVudEltcGwuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHRWxs
aXBzZUVsZW1lbnRJbXBsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNApkaWZmIC1wIC11IC1y
MS40IGtzdmcyL3N2Zy9TVkdFbGxpcHNlRWxlbWVudEltcGwuaAotLS0ga3N2ZzIvc3ZnL1NWR0Vs
bGlwc2VFbGVtZW50SW1wbC5oCTEgU2VwIDIwMDUgMDc6MzU6MzcgLTAwMDAJMS40CisrKyBrc3Zn
Mi9zdmcvU1ZHRWxsaXBzZUVsZW1lbnRJbXBsLmgJMSBOb3YgMjAwNSAxMToxMzoxNCAtMDAwMApA
QCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgS1NWRwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHB1YmxpYyBTVkdUcmFuc2Zvcm1hYmxlSW1wbAogICAgIHsKICAgICBwdWJsaWM6
Ci0gICAgICAgIFNWR0VsbGlwc2VFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBL
RE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZpeCk7CisgICAg
ICAgIFNWR0VsbGlwc2VFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBLRE9NOjpEb2N1bWVudFB0ciAqZG9jKTsKICAgICAgICAgdmlydHVhbCB+U1ZHRWxsaXBz
ZUVsZW1lbnRJbXBsKCk7CiAKICAgICAgICAgLy8gJ1NWR0VsbGlwc2VFbGVtZW50JyBmdW5jdGlv
bnMKSW5kZXg6IGtzdmcyL3N2Zy9TVkdFeGNlcHRpb25JbXBsLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiBrc3ZnMi9zdmcvU1ZHRXhjZXB0aW9uSW1wbC5jcHAKZGlmZiAtTiBrc3ZnMi9zdmcvU1ZH
RXhjZXB0aW9uSW1wbC5jcHAKLS0tIGtzdmcyL3N2Zy9TVkdFeGNlcHRpb25JbXBsLmNwcAkyNCBP
Y3QgMjAwNSAwNjozMTo1MiAtMDAwMAkxLjYKKysrIGtzdmcyL3N2Zy9TVkdFeGNlcHRpb25JbXBs
LmNwcAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCkBAIC0xLDQ1ICswLDAgQEAKLS8qCi0gICAg
Q29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUu
b3JnPgotICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3Jn
PgotCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0Ci0KLSAgICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
Ci0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgot
ICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0
ZSAzMzAsCi0gICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0qLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiU1ZHRXhjZXB0aW9uSW1wbC5oIgotCi11c2luZyBuYW1lc3Bh
Y2UgS1NWRzsKLQotU1ZHRXhjZXB0aW9uSW1wbDo6U1ZHRXhjZXB0aW9uSW1wbCh1bnNpZ25lZCBz
aG9ydCBjb2RlKSA6IEtET006OlNoYXJlZDxTVkdFeGNlcHRpb25JbXBsPigpCi17Ci0gICAgcmVm
KCk7IC8vIEV4Y2VwdGlvbkltcGwgY2xhc3NlcyBuZWVkIHRvIHJlZiB0aGVtc2VsdmVzKCkgYXMg
aXQncyBqdXN0Ci0gICAgICAgICAgIC8vIHZlcnkgY29udmllbmllbnQgdG8ganVzdCB1c2UgJ3Ro
cm93IG5ldyBFeGNlcHRpb25JbXBsJyAuLi4KLSAgICAKLSAgICBtX2NvZGUgPSBjb2RlOwotfQot
Ci1TVkdFeGNlcHRpb25JbXBsOjp+U1ZHRXhjZXB0aW9uSW1wbCgpCi17Ci19Ci0KLXVuc2lnbmVk
IHNob3J0IFNWR0V4Y2VwdGlvbkltcGw6OmNvZGUoKSBjb25zdAotewotICAgIHJldHVybiBtX2Nv
ZGU7Ci19Ci0KLS8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IGtzdmcyL3N2Zy9TVkdFeGNlcHRpb25J
bXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZToga3N2ZzIvc3ZnL1NWR0V4Y2VwdGlvbkltcGwuaApk
aWZmIC1OIGtzdmcyL3N2Zy9TVkdFeGNlcHRpb25JbXBsLmgKLS0tIGtzdmcyL3N2Zy9TVkdFeGNl
cHRpb25JbXBsLmgJMjQgT2N0IDIwMDUgMDY6MzE6NTMgLTAwMDAJMS40CisrKyBrc3ZnMi9zdmcv
U1ZHRXhjZXB0aW9uSW1wbC5oCTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKQEAgLTEsNDYgKzAs
MCBAQAotLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5u
IDx3aWxkZm94QGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlz
IDxidWlzQGtkZS5vcmc+Ci0KLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2pl
Y3QKLQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBs
ZSBQbGFjZSAtIFN1aXRlIDMzMCwKLSAgICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSov
Ci0KLSNpZm5kZWYgS1NWR19TVkdFeGNlcHRpb25JbXBsX0gKLSNkZWZpbmUgS1NWR19TVkdFeGNl
cHRpb25JbXBsX0gKLQotI2luY2x1ZGUgPGtkb20vU2hhcmVkLmg+Ci0KLW5hbWVzcGFjZSBLU1ZH
Ci17Ci0gICAgY2xhc3MgU1ZHRXhjZXB0aW9uSW1wbCA6IHB1YmxpYyBLRE9NOjpTaGFyZWQ8U1ZH
RXhjZXB0aW9uSW1wbD4KLSAgICB7Ci0gICAgcHVibGljOgotICAgICAgICBTVkdFeGNlcHRpb25J
bXBsKHVuc2lnbmVkIHNob3J0IGNvZGUpOwotICAgICAgICB2aXJ0dWFsIH5TVkdFeGNlcHRpb25J
bXBsKCk7Ci0KLSAgICAgICAgLy8gJ1NWR0V4Y2VwdGlvbkltcGwnIGZ1bmN0aW9ucwotICAgICAg
ICB1bnNpZ25lZCBzaG9ydCBjb2RlKCkgY29uc3Q7Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAg
IHVuc2lnbmVkIHNob3J0IG1fY29kZTsKLSAgICB9OwotfTsKLQotI2VuZGlmCi0KLS8vIHZpbTp0
cz00Om5vZXQKSW5kZXg6IGtzdmcyL3N2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1w
bC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvc3Zn
L1NWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNp
b24gMS41CmRpZmYgLXAgLXUgLXIxLjUga3N2ZzIvc3ZnL1NWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWRJbXBsLmNwcAotLS0ga3N2ZzIvc3ZnL1NWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJ
bXBsLmNwcAk1IE9jdCAyMDA1IDA1OjM1OjIwIC0wMDAwCTEuNQorKysga3N2ZzIvc3ZnL1NWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsLmNwcAkxIE5vdiAyMDA1IDExOjEzOjE0IC0wMDAw
CkBAIC0yMyw3ICsyMyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSA8a2RvbS9j
b3JlL0F0dHJJbXBsLmg+CiAKLSNpbmNsdWRlICJzdmdhdHRycy5oIgorI2luY2x1ZGUgIlNWR05h
bWVzLmgiCiAjaW5jbHVkZSAiU1ZHSGVscGVyLmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudEltcGwu
aCIKICNpbmNsdWRlICJTVkdBbmltYXRlZEJvb2xlYW5JbXBsLmgiCkBAIC00OSwxMCArNDksOCBA
QCBTVkdBbmltYXRlZEJvb2xlYW5JbXBsICpTVkdFeHRlcm5hbFJlc291CiAKIGJvb2wgU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGw6OnBhcnNlQXR0cmlidXRlKEtET006OkF0dHJpYnV0
ZUltcGwgKmF0dHIpCiB7Ci0gICAgaW50IGlkID0gKGF0dHItPmlkKCkgJiBOb2RlSW1wbF9JZExv
Y2FsTWFzayk7CiAgICAgS0RPTTo6RE9NU3RyaW5nIHZhbHVlKGF0dHItPnZhbHVlKCkpOwotICAg
IGlmKGlkID09IEFUVFJfRVhURVJOQUxSRVNPVVJDRVNSRVFVSVJFRCkKLSAgICB7CisgICAgaWYg
KGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6ZXh0ZXJuYWxyZXNvdXJjZXNyZXF1aXJlZEF0dHIp
IHsKICAgICAgICAgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCgpLT5zZXRCYXNlVmFsKHZhbHVl
ID09ICJ0cnVlIik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KSW5kZXg6IGtzdmcyL3N2
Zy9TVkdGRUJsZW5kRWxlbWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdGRUJsZW5kRWxlbWVudEltcGwuY3BwLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjYKZGlmZiAtcCAtdSAtcjEuNiBrc3ZnMi9zdmcvU1ZHRkVCbGVuZEVs
ZW1lbnRJbXBsLmNwcAotLS0ga3N2ZzIvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50SW1wbC5jcHAJNSBP
Y3QgMjAwNSAwNTozNToyMCAtMDAwMAkxLjYKKysrIGtzdmcyL3N2Zy9TVkdGRUJsZW5kRWxlbWVu
dEltcGwuY3BwCTEgTm92IDIwMDUgMTE6MTM6MTQgLTAwMDAKQEAgLTMxLDcgKzMxLDYgQEAKICNp
bmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nRGV2aWNlLmg+CiAKICNpbmNsdWRlICJr
c3ZnLmgiCi0jaW5jbHVkZSAic3ZnYXR0cnMuaCIKICNpbmNsdWRlICJTVkdIZWxwZXIuaCIKICNp
bmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlNWR0ZFQmxlbmRFbGVtZW50SW1w
bC5oIgpAQCAtNDEsOCArNDAsOCBAQAogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIAotU1ZHRkVC
bGVuZEVsZW1lbnRJbXBsOjpTVkdGRUJsZW5kRWxlbWVudEltcGwoS0RPTTo6RG9jdW1lbnRQdHIg
KmRvYywgS0RPTTo6Tm9kZUltcGw6OklkIGlkLCBLRE9NOjpET01TdHJpbmdJbXBsICpwcmVmaXgp
IDogCi1TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXNJbXBsKGRvYywgaWQsIHBy
ZWZpeCkKK1NWR0ZFQmxlbmRFbGVtZW50SW1wbDo6U1ZHRkVCbGVuZEVsZW1lbnRJbXBsKGNvbnN0
IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50UHRyICpkb2MpIDog
CitTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXNJbXBsKHRhZ05hbWUsIGRvYykK
IHsKICAgICBtX2luMSA9IG1faW4yID0gMDsKICAgICBtX21vZGUgPSAwOwpAQCAtNzksNDcgKzc4
LDM0IEBAIFNWR0FuaW1hdGVkRW51bWVyYXRpb25JbXBsICpTVkdGRUJsZW5kRWwKIAogdm9pZCBT
VkdGRUJsZW5kRWxlbWVudEltcGw6OnBhcnNlQXR0cmlidXRlKEtET006OkF0dHJpYnV0ZUltcGwg
KmF0dHIpCiB7Ci0gICAgaW50IGlkID0gKGF0dHItPmlkKCkgJiBOb2RlSW1wbF9JZExvY2FsTWFz
ayk7CiAgICAgS0RPTTo6RE9NU3RyaW5nIHZhbHVlKGF0dHItPnZhbHVlKCkpOwotICAgIHN3aXRj
aChpZCkKKyAgICBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjptb2RlQXR0cikKICAgICB7
Ci0gICAgICAgIGNhc2UgQVRUUl9NT0RFOgotICAgICAgICB7Ci0gICAgICAgICAgICBpZih2YWx1
ZSA9PSAibm9ybWFsIikKLSAgICAgICAgICAgICAgICBtb2RlKCktPnNldEJhc2VWYWwoU1ZHX0ZF
QkxFTkRfTU9ERV9OT1JNQUwpOwotICAgICAgICAgICAgZWxzZSBpZih2YWx1ZSA9PSAibXVsdGlw
bHkiKQotICAgICAgICAgICAgICAgIG1vZGUoKS0+c2V0QmFzZVZhbChTVkdfRkVCTEVORF9NT0RF
X01VTFRJUExZKTsKLSAgICAgICAgICAgIGVsc2UgaWYodmFsdWUgPT0gInNjcmVlbiIpCi0gICAg
ICAgICAgICAgICAgbW9kZSgpLT5zZXRCYXNlVmFsKFNWR19GRUJMRU5EX01PREVfU0NSRUVOKTsK
LSAgICAgICAgICAgIGVsc2UgaWYodmFsdWUgPT0gImRhcmtlbiIpCi0gICAgICAgICAgICAgICAg
bW9kZSgpLT5zZXRCYXNlVmFsKFNWR19GRUJMRU5EX01PREVfREFSS0VOKTsKLSAgICAgICAgICAg
IGVsc2UgaWYodmFsdWUgPT0gImxpZ2h0ZW4iKQotICAgICAgICAgICAgICAgIG1vZGUoKS0+c2V0
QmFzZVZhbChTVkdfRkVCTEVORF9NT0RFX0xJR0hURU4pOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIH0KLSAgICAgICAgY2FzZSBBVFRSX0lOOgotICAgICAgICB7Ci0gICAgICAgICAgICBp
bjEoKS0+c2V0QmFzZVZhbCh2YWx1ZS5oYW5kbGUoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgfQotICAgICAgICBjYXNlIEFUVFJfSU4yOgotICAgICAgICB7Ci0gICAgICAgICAgICBp
bjIoKS0+c2V0QmFzZVZhbCh2YWx1ZS5oYW5kbGUoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgfQotICAgICAgICBkZWZhdWx0OgotICAgICAgICB7Ci0gICAgICAgICAgICBTVkdGaWx0
ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXNJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKTsK
LSAgICAgICAgfQotICAgIH07CisgICAgICAgIGlmKHZhbHVlID09ICJub3JtYWwiKQorICAgICAg
ICAgICAgbW9kZSgpLT5zZXRCYXNlVmFsKFNWR19GRUJMRU5EX01PREVfTk9STUFMKTsKKyAgICAg
ICAgZWxzZSBpZih2YWx1ZSA9PSAibXVsdGlwbHkiKQorICAgICAgICAgICAgbW9kZSgpLT5zZXRC
YXNlVmFsKFNWR19GRUJMRU5EX01PREVfTVVMVElQTFkpOworICAgICAgICBlbHNlIGlmKHZhbHVl
ID09ICJzY3JlZW4iKQorICAgICAgICAgICAgbW9kZSgpLT5zZXRCYXNlVmFsKFNWR19GRUJMRU5E
X01PREVfU0NSRUVOKTsKKyAgICAgICAgZWxzZSBpZih2YWx1ZSA9PSAiZGFya2VuIikKKyAgICAg
ICAgICAgIG1vZGUoKS0+c2V0QmFzZVZhbChTVkdfRkVCTEVORF9NT0RFX0RBUktFTik7CisgICAg
ICAgIGVsc2UgaWYodmFsdWUgPT0gImxpZ2h0ZW4iKQorICAgICAgICAgICAgbW9kZSgpLT5zZXRC
YXNlVmFsKFNWR19GRUJMRU5EX01PREVfTElHSFRFTik7CisgICAgfQorICAgIGVsc2UgaWYgKGF0
dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6aW5BdHRyKQorICAgICAgICBpbjEoKS0+c2V0QmFzZVZh
bCh2YWx1ZS5pbXBsKCkpOworICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6
aW4yQXR0cikKKyAgICAgICAgaW4yKCktPnNldEJhc2VWYWwodmFsdWUuaW1wbCgpKTsKKyAgICBl
bHNlCisgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlc0ltcGw6OnBh
cnNlQXR0cmlidXRlKGF0dHIpOwogfQogCiBLQ2FudmFzSXRlbSAqU1ZHRkVCbGVuZEVsZW1lbnRJ
bXBsOjpjcmVhdGVDYW52YXNJdGVtKEtDYW52YXMgKmNhbnZhcywgS1JlbmRlcmluZ1N0eWxlICpz
dHlsZSkgY29uc3QKIHsKICAgICBtX2ZpbHRlckVmZmVjdCA9IHN0YXRpY19jYXN0PEtDYW52YXNG
RUJsZW5kICo+KGNhbnZhcy0+cmVuZGVyaW5nRGV2aWNlKCktPmNyZWF0ZUZpbHRlckVmZmVjdChG
RV9CTEVORCkpOwogICAgIG1fZmlsdGVyRWZmZWN0LT5zZXRCbGVuZE1vZGUoKEtDQmxlbmRNb2Rl
VHlwZSkobW9kZSgpLT5iYXNlVmFsKCktMSkpOwotICAgIG1fZmlsdGVyRWZmZWN0LT5zZXRJbihL
RE9NOjpET01TdHJpbmcoaW4xKCktPmJhc2VWYWwoKSkuc3RyaW5nKCkpOwotICAgIG1fZmlsdGVy
RWZmZWN0LT5zZXRJbjIoS0RPTTo6RE9NU3RyaW5nKGluMigpLT5iYXNlVmFsKCkpLnN0cmluZygp
KTsKKyAgICBtX2ZpbHRlckVmZmVjdC0+c2V0SW4oS0RPTTo6RE9NU3RyaW5nKGluMSgpLT5iYXNl
VmFsKCkpLnFzdHJpbmcoKSk7CisgICAgbV9maWx0ZXJFZmZlY3QtPnNldEluMihLRE9NOjpET01T
dHJpbmcoaW4yKCktPmJhc2VWYWwoKSkucXN0cmluZygpKTsKICAgICBzZXRTdGFuZGFyZEF0dHJp
YnV0ZXMobV9maWx0ZXJFZmZlY3QpOwogICAgIHJldHVybiAwOwogfQpJbmRleDoga3N2ZzIvc3Zn
L1NWR0ZFQmxlbmRFbGVtZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9T
VkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdGRUJsZW5kRWxlbWVudEltcGwuaCx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS41CmRpZmYgLXAgLXUgLXIxLjUga3N2ZzIvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50
SW1wbC5oCi0tLSBrc3ZnMi9zdmcvU1ZHRkVCbGVuZEVsZW1lbnRJbXBsLmgJNCBTZXAgMjAwNSAw
OToxMDo1NCAtMDAwMAkxLjUKKysrIGtzdmcyL3N2Zy9TVkdGRUJsZW5kRWxlbWVudEltcGwuaAkx
IE5vdiAyMDA1IDExOjEzOjE0IC0wMDAwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBLU1ZH
CiAgICAgY2xhc3MgU1ZHRkVCbGVuZEVsZW1lbnRJbXBsIDogcHVibGljIFNWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlc0ltcGwKICAgICB7CiAgICAgcHVibGljOgotICAgICAgICBT
VkdGRUJsZW5kRWxlbWVudEltcGwoS0RPTTo6RG9jdW1lbnRQdHIgKmRvYywgS0RPTTo6Tm9kZUlt
cGw6OklkIGlkLCBLRE9NOjpET01TdHJpbmdJbXBsICpwcmVmaXgpOworICAgICAgICBTVkdGRUJs
ZW5kRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6
RG9jdW1lbnRQdHIgKmRvYyk7CiAgICAgICAgIHZpcnR1YWwgflNWR0ZFQmxlbmRFbGVtZW50SW1w
bCgpOwogCiAgICAgICAgIC8vICdTVkdGRUJsZW5kRWxlbWVudCcgZnVuY3Rpb25zCkluZGV4OiBr
c3ZnMi9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1l
bnRJbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS43CmRpZmYgLXAgLXUgLXIxLjcga3N2
ZzIvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50SW1wbC5jcHAKLS0tIGtzdmcyL3N2Zy9TVkdG
RUNvbG9yTWF0cml4RWxlbWVudEltcGwuY3BwCTUgT2N0IDIwMDUgMDU6MzU6MjAgLTAwMDAJMS43
CisrKyBrc3ZnMi9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnRJbXBsLmNwcAkxIE5vdiAyMDA1
IDExOjEzOjE0IC0wMDAwCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSA8a2NhbnZhcy9kZXZp
Y2UvS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQuaD4KIAogI2luY2x1ZGUgImtzdmcuaCIK
LSNpbmNsdWRlICJzdmdhdHRycy5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAi
U1ZHSGVscGVyLmgiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJTVkdG
RUNvbG9yTWF0cml4RWxlbWVudEltcGwuaCIKQEAgLTQ0LDggKzQ0LDggQEAKIAogdXNpbmcgbmFt
ZXNwYWNlIEtTVkc7CiAKLVNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50SW1wbDo6U1ZHRkVDb2xvck1h
dHJpeEVsZW1lbnRJbXBsKEtET006OkRvY3VtZW50UHRyICpkb2MsIEtET006Ok5vZGVJbXBsOjpJ
ZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHJlZml4KSA6IAotU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzSW1wbChkb2MsIGlkLCBwcmVmaXgpCitTVkdGRUNvbG9yTWF0cml4
RWxlbWVudEltcGw6OlNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudFB0ciAqZG9jKSA6IAorU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzSW1wbCh0YWdOYW1lLCBkb2MpCiB7CiAgICAgbV9p
bjEgPSAwOwogICAgIG1fdHlwZSA9IDA7CkBAIC04Myw0MyArODMsMzAgQEAgU1ZHQW5pbWF0ZWRO
dW1iZXJMaXN0SW1wbCAqU1ZHRkVDb2xvck1hdAogCiB2b2lkIFNWR0ZFQ29sb3JNYXRyaXhFbGVt
ZW50SW1wbDo6cGFyc2VBdHRyaWJ1dGUoS0RPTTo6QXR0cmlidXRlSW1wbCAqYXR0cikKIHsKLSAg
ICBpbnQgaWQgPSAoYXR0ci0+aWQoKSAmIE5vZGVJbXBsX0lkTG9jYWxNYXNrKTsKICAgICBLRE9N
OjpET01TdHJpbmcgdmFsdWUoYXR0ci0+dmFsdWUoKSk7Ci0gICAgc3dpdGNoKGlkKQorICAgIGlm
IChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnR5cGVBdHRyKQogICAgIHsKLSAgICAgICAgY2Fz
ZSBBVFRSX1RZUEU6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlmKHZhbHVlID09ICJtYXRyaXgi
KQotICAgICAgICAgICAgICAgIHR5cGUoKS0+c2V0QmFzZVZhbChTVkdfRkVDT0xPUk1BVFJJWF9U
WVBFX01BVFJJWCk7Ci0gICAgICAgICAgICBlbHNlIGlmKHZhbHVlID09ICJzYXR1cmF0ZSIpCi0g
ICAgICAgICAgICAgICAgdHlwZSgpLT5zZXRCYXNlVmFsKFNWR19GRUNPTE9STUFUUklYX1RZUEVf
U0FUVVJBVEUpOwotICAgICAgICAgICAgZWxzZSBpZih2YWx1ZSA9PSAiaHVlUm90YXRlIikKLSAg
ICAgICAgICAgICAgICB0eXBlKCktPnNldEJhc2VWYWwoU1ZHX0ZFQ09MT1JNQVRSSVhfVFlQRV9I
VUVST1RBVEUpOwotICAgICAgICAgICAgZWxzZSBpZih2YWx1ZSA9PSAibHVtaW5hbmNlVG9BbHBo
YSIpCi0gICAgICAgICAgICAgICAgdHlwZSgpLT5zZXRCYXNlVmFsKFNWR19GRUNPTE9STUFUUklY
X1RZUEVfTFVNSU5BTkNFVE9BTFBIQSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQot
ICAgICAgICBjYXNlIEFUVFJfSU46Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGluMSgpLT5zZXRC
YXNlVmFsKHZhbHVlLmhhbmRsZSgpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0g
ICAgICAgIGNhc2UgQVRUUl9WQUxVRVM6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHZhbHVlcygp
LT5iYXNlVmFsKCktPnBhcnNlKHZhbHVlLnN0cmluZygpLCB0aGlzKTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICB9Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgIHsKLSAgICAgICAgICAg
IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlc0ltcGw6OnBhcnNlQXR0cmlidXRl
KGF0dHIpOwotICAgICAgICB9Ci0gICAgfTsKKyAgICAgICAgaWYodmFsdWUgPT0gIm1hdHJpeCIp
CisgICAgICAgICAgICB0eXBlKCktPnNldEJhc2VWYWwoU1ZHX0ZFQ09MT1JNQVRSSVhfVFlQRV9N
QVRSSVgpOworICAgICAgICBlbHNlIGlmKHZhbHVlID09ICJzYXR1cmF0ZSIpCisgICAgICAgICAg
ICB0eXBlKCktPnNldEJhc2VWYWwoU1ZHX0ZFQ09MT1JNQVRSSVhfVFlQRV9TQVRVUkFURSk7Cisg
ICAgICAgIGVsc2UgaWYodmFsdWUgPT0gImh1ZVJvdGF0ZSIpCisgICAgICAgICAgICB0eXBlKCkt
PnNldEJhc2VWYWwoU1ZHX0ZFQ09MT1JNQVRSSVhfVFlQRV9IVUVST1RBVEUpOworICAgICAgICBl
bHNlIGlmKHZhbHVlID09ICJsdW1pbmFuY2VUb0FscGhhIikKKyAgICAgICAgICAgIHR5cGUoKS0+
c2V0QmFzZVZhbChTVkdfRkVDT0xPUk1BVFJJWF9UWVBFX0xVTUlOQU5DRVRPQUxQSEEpOworICAg
IH0KKyAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OmluQXR0cikKKyAgICAg
ICAgaW4xKCktPnNldEJhc2VWYWwodmFsdWUuaW1wbCgpKTsKKyAgICBlbHNlIGlmIChhdHRyLT5u
YW1lKCkgPT0gU1ZHTmFtZXM6OnZhbHVlc0F0dHIpCisgICAgICAgIHZhbHVlcygpLT5iYXNlVmFs
KCktPnBhcnNlKHZhbHVlLnFzdHJpbmcoKSwgdGhpcyk7CisgICAgZWxzZQorICAgICAgICBTVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXNJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRy
KTsKIH0KIAogS0NhbnZhc0l0ZW0gKlNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50SW1wbDo6Y3JlYXRl
Q2FudmFzSXRlbShLQ2FudmFzICpjYW52YXMsIEtSZW5kZXJpbmdTdHlsZSAqKSBjb25zdAogewog
ICAgIG1fZmlsdGVyRWZmZWN0ID0gc3RhdGljX2Nhc3Q8S0NhbnZhc0ZFQ29sb3JNYXRyaXggKj4o
Y2FudmFzLT5yZW5kZXJpbmdEZXZpY2UoKS0+Y3JlYXRlRmlsdGVyRWZmZWN0KEZFX0NPTE9SX01B
VFJJWCkpOwotICAgIG1fZmlsdGVyRWZmZWN0LT5zZXRJbihLRE9NOjpET01TdHJpbmcoaW4xKCkt
PmJhc2VWYWwoKSkuc3RyaW5nKCkpOworICAgIG1fZmlsdGVyRWZmZWN0LT5zZXRJbihLRE9NOjpE
T01TdHJpbmcoaW4xKCktPmJhc2VWYWwoKSkucXN0cmluZygpKTsKICAgICBzZXRTdGFuZGFyZEF0
dHJpYnV0ZXMobV9maWx0ZXJFZmZlY3QpOwogICAgIFEzVmFsdWVMaXN0PGZsb2F0PiBfdmFsdWVz
OwogICAgIFNWR051bWJlckxpc3RJbXBsICpudW1iZXJzID0gdmFsdWVzKCktPmJhc2VWYWwoKTsK
SW5kZXg6IGtzdmcyL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudEltcGwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHRkVDb2xvck1hdHJp
eEVsZW1lbnRJbXBsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNApkaWZmIC1wIC11IC1yMS40
IGtzdmcyL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudEltcGwuaAotLS0ga3N2ZzIvc3ZnL1NW
R0ZFQ29sb3JNYXRyaXhFbGVtZW50SW1wbC5oCTEgU2VwIDIwMDUgMDc6MzU6MzggLTAwMDAJMS40
CisrKyBrc3ZnMi9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnRJbXBsLmgJMSBOb3YgMjAwNSAx
MToxMzoxNCAtMDAwMApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgS1NWRwogICAgIGNsYXNz
IFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50SW1wbCA6IHB1YmxpYyBTVkdGaWx0ZXJQcmltaXRpdmVT
dGFuZGFyZEF0dHJpYnV0ZXNJbXBsCiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHRkVD
b2xvck1hdHJpeEVsZW1lbnRJbXBsKEtET006OkRvY3VtZW50UHRyICpkb2MsIEtET006Ok5vZGVJ
bXBsOjpJZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHJlZml4KTsKKyAgICAgICAgU1ZHRkVD
b2xvck1hdHJpeEVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IEtET006OkRvY3VtZW50UHRyICpkb2MpOwogICAgICAgICB2aXJ0dWFsIH5TVkdGRUNvbG9yTWF0
cml4RWxlbWVudEltcGwoKTsKIAogICAgICAgICAvLyAnU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQn
IGZ1bmN0aW9ucwpJbmRleDoga3N2ZzIvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50
SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIv
c3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50SW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuNwpkaWZmIC1wIC11IC1yMS43IGtzdmcyL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5z
ZmVyRWxlbWVudEltcGwuY3BwCi0tLSBrc3ZnMi9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVs
ZW1lbnRJbXBsLmNwcAk1IE9jdCAyMDA1IDA1OjM1OjIwIC0wMDAwCTEuNworKysga3N2ZzIvc3Zn
L1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50SW1wbC5jcHAJMSBOb3YgMjAwNSAxMToxMzox
NCAtMDAwMApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc0ZpbHRl
cnMuaD4KICNpbmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nRGV2aWNlLmg+CiAKLSNp
bmNsdWRlICJzdmdhdHRycy5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZH
SGVscGVyLmgiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJTVkdGRUNv
bXBvbmVudFRyYW5zZmVyRWxlbWVudEltcGwuaCIKQEAgLTQ2LDggKzQ2LDggQEAKIAogdXNpbmcg
bmFtZXNwYWNlIEtTVkc7CiAKLVNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50SW1wbDo6U1ZH
RkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnRJbXBsKEtET006OkRvY3VtZW50UHRyICpkb2MsIEtE
T006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHJlZml4KSA6IAotU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzSW1wbChkb2MsIGlkLCBwcmVmaXgpCitT
VkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudEltcGw6OlNWR0ZFQ29tcG9uZW50VHJhbnNmZXJF
bGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1
bWVudFB0ciAqZG9jKSA6IAorU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzSW1w
bCh0YWdOYW1lLCBkb2MpCiB7CiAgICAgbV9pbjEgPSAwOwogICAgIG1fZmlsdGVyRWZmZWN0ID0g
MDsKQEAgLTY3LDIwICs2NywxMSBAQCBTVkdBbmltYXRlZFN0cmluZ0ltcGwgKlNWR0ZFQ29tcG9u
ZW50VHJhCiAKIHZvaWQgU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnRJbXBsOjpwYXJzZUF0
dHJpYnV0ZShLRE9NOjpBdHRyaWJ1dGVJbXBsICphdHRyKQogewotICAgIGludCBpZCA9IChhdHRy
LT5pZCgpICYgTm9kZUltcGxfSWRMb2NhbE1hc2spOwogICAgIEtET006OkRPTVN0cmluZyB2YWx1
ZShhdHRyLT52YWx1ZSgpKTsKLSAgICBzd2l0Y2goaWQpCi0gICAgewotICAgICAgICBjYXNlIEFU
VFJfSU46Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGluMSgpLT5zZXRCYXNlVmFsKHZhbHVlLmhh
bmRsZSgpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlc0ltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpOwotICAgICAgICB9Ci0gICAgfTsKKyAgICBp
ZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjppbkF0dHIpCisgICAgICAgIGluMSgpLT5zZXRC
YXNlVmFsKHZhbHVlLmltcGwoKSk7CisgICAgZWxzZQorICAgICAgICBTVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXNJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKTsKIH0KIAogS0Nh
bnZhc0l0ZW0gKlNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50SW1wbDo6Y3JlYXRlQ2FudmFz
SXRlbShLQ2FudmFzICpjYW52YXMsIEtSZW5kZXJpbmdTdHlsZSAqc3R5bGUpIGNvbnN0CkBAIC04
OSw3ICs4MCw3IEBAIEtDYW52YXNJdGVtICpTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWUKICAg
ICBpZiAoIW1fZmlsdGVyRWZmZWN0KQogICAgICAgICByZXR1cm4gMDsKIAotICAgIG1fZmlsdGVy
RWZmZWN0LT5zZXRJbihLRE9NOjpET01TdHJpbmcoaW4xKCktPmJhc2VWYWwoKSkuc3RyaW5nKCkp
OworICAgIG1fZmlsdGVyRWZmZWN0LT5zZXRJbihLRE9NOjpET01TdHJpbmcoaW4xKCktPmJhc2VW
YWwoKSkucXN0cmluZygpKTsKICAgICBzZXRTdGFuZGFyZEF0dHJpYnV0ZXMobV9maWx0ZXJFZmZl
Y3QpOwogICAgIHJldHVybiAwOwogfQpAQCAtOTksNyArOTAsNyBAQCBLQ2FudmFzRmlsdGVyRWZm
ZWN0ICpTVkdGRUNvbXBvbmVudFRyYW5zCiAgICAgcmV0dXJuIG1fZmlsdGVyRWZmZWN0OwogfQog
Ci12b2lkIFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50SW1wbDo6Y2xvc2UoKQordm9pZCBT
VkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudEltcGw6OmNsb3NlUmVuZGVyZXIoKQogewogICAg
IGlmICghbV9maWx0ZXJFZmZlY3QpCiAgICAgICAgIHJldHVybjsKQEAgLTEwNyw3ICs5OCw3IEBA
IHZvaWQgU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnRJbXBsOjoKICAgICBmb3IoS0RPTTo6
Tm9kZUltcGwgKm4gPSBmaXJzdENoaWxkKCk7IG4gIT0gMDsgbiA9IG4tPm5leHRTaWJsaW5nKCkp
CiAgICAgewogICAgICAgICBLQ0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24gZnVuYzsKLSAgICAg
ICAgaWYobi0+aWQoKSA9PSBJRF9GRUZVTkNSKQorICAgICAgICBpZihuLT5oYXNUYWdOYW1lKFNW
R05hbWVzOjpmZWZ1bmNyVGFnKSkKICAgICAgICAgewogICAgICAgICAgICAgU1ZHRkVGdW5jUkVs
ZW1lbnRJbXBsICpmdW5jUiA9IHN0YXRpY19jYXN0PFNWR0ZFRnVuY1JFbGVtZW50SW1wbCAqPihu
KTsKICAgICAgICAgICAgIGZ1bmMudHlwZSA9IChLQ0NvbXBvbmVudFRyYW5zZmVyVHlwZSkoZnVu
Y1ItPnR5cGUoKS0+YmFzZVZhbCgpIC0gMSk7CkBAIC0xMTgsNyArMTA5LDcgQEAgdm9pZCBTVkdG
RUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudEltcGw6OgogICAgICAgICAgICAgZnVuYy5vZmZzZXQg
PSBmdW5jUi0+b2Zmc2V0KCktPmJhc2VWYWwoKTsKICAgICAgICAgICAgIG1fZmlsdGVyRWZmZWN0
LT5zZXRSZWRGdW5jdGlvbihmdW5jKTsKICAgICAgICAgfQotICAgICAgICBlbHNlIGlmKG4tPmlk
KCkgPT0gSURfRkVGVU5DRykKKyAgICAgICAgZWxzZSBpZihuLT5oYXNUYWdOYW1lKFNWR05hbWVz
OjpmZWZ1bmNnVGFnKSkKICAgICAgICAgewogICAgICAgICAgICAgU1ZHRkVGdW5jR0VsZW1lbnRJ
bXBsICpmdW5jRyA9IHN0YXRpY19jYXN0PFNWR0ZFRnVuY0dFbGVtZW50SW1wbCAqPihuKTsKICAg
ICAgICAgICAgIGZ1bmMudHlwZSA9IChLQ0NvbXBvbmVudFRyYW5zZmVyVHlwZSkoZnVuY0ctPnR5
cGUoKS0+YmFzZVZhbCgpIC0gMSk7CkBAIC0xMjksNyArMTIwLDcgQEAgdm9pZCBTVkdGRUNvbXBv
bmVudFRyYW5zZmVyRWxlbWVudEltcGw6OgogICAgICAgICAgICAgZnVuYy5vZmZzZXQgPSBmdW5j
Ry0+b2Zmc2V0KCktPmJhc2VWYWwoKTsKICAgICAgICAgICAgIG1fZmlsdGVyRWZmZWN0LT5zZXRH
cmVlbkZ1bmN0aW9uKGZ1bmMpOwogICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYobi0+aWQoKSA9
PSBJRF9GRUZVTkNCKQorICAgICAgICBlbHNlIGlmKG4tPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZl
ZnVuY2JUYWcpKQogICAgICAgICB7CiAgICAgICAgICAgICBTVkdGRUZ1bmNCRWxlbWVudEltcGwg
KmZ1bmNCID0gc3RhdGljX2Nhc3Q8U1ZHRkVGdW5jQkVsZW1lbnRJbXBsICo+KG4pOwogICAgICAg
ICAgICAgZnVuYy50eXBlID0gKEtDQ29tcG9uZW50VHJhbnNmZXJUeXBlKShmdW5jQi0+dHlwZSgp
LT5iYXNlVmFsKCkgLSAxKTsKQEAgLTE0MCw3ICsxMzEsNyBAQCB2b2lkIFNWR0ZFQ29tcG9uZW50
VHJhbnNmZXJFbGVtZW50SW1wbDo6CiAgICAgICAgICAgICBmdW5jLm9mZnNldCA9IGZ1bmNCLT5v
ZmZzZXQoKS0+YmFzZVZhbCgpOwogICAgICAgICAgICAgbV9maWx0ZXJFZmZlY3QtPnNldEJsdWVG
dW5jdGlvbihmdW5jKTsKICAgICAgICAgfQotICAgICAgICBlbHNlIGlmKG4tPmlkKCkgPT0gSURf
RkVGVU5DQSkKKyAgICAgICAgZWxzZSBpZihuLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmZWZ1bmNh
VGFnKSkKICAgICAgICAgewogICAgICAgICAgICAgU1ZHRkVGdW5jQUVsZW1lbnRJbXBsICpmdW5j
QSA9IHN0YXRpY19jYXN0PFNWR0ZFRnVuY0FFbGVtZW50SW1wbCAqPihuKTsKICAgICAgICAgICAg
IGZ1bmMudHlwZSA9IChLQ0NvbXBvbmVudFRyYW5zZmVyVHlwZSkoZnVuY0EtPnR5cGUoKS0+YmFz
ZVZhbCgpIC0gMSk7CkluZGV4OiBrc3ZnMi9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1l
bnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIv
c3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50SW1wbC5oLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjQKZGlmZiAtcCAtdSAtcjEuNCBrc3ZnMi9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2Zl
ckVsZW1lbnRJbXBsLmgKLS0tIGtzdmcyL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVu
dEltcGwuaAkxIFNlcCAyMDA1IDA3OjM1OjM4IC0wMDAwCTEuNAorKysga3N2ZzIvc3ZnL1NWR0ZF
Q29tcG9uZW50VHJhbnNmZXJFbGVtZW50SW1wbC5oCTEgTm92IDIwMDUgMTE6MTM6MTQgLTAwMDAK
QEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEtTVkcKICAgICBjbGFzcyBTVkdGRUNvbXBvbmVu
dFRyYW5zZmVyRWxlbWVudEltcGwgOiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRB
dHRyaWJ1dGVzSW1wbAogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0ZFQ29tcG9uZW50
VHJhbnNmZXJFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1w
bDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZpeCk7CisgICAgICAgIFNWR0ZFQ29t
cG9uZW50VHJhbnNmZXJFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBLRE9NOjpEb2N1bWVudFB0ciAqZG9jKTsKICAgICAgICAgdmlydHVhbCB+U1ZHRkVDb21w
b25lbnRUcmFuc2ZlckVsZW1lbnRJbXBsKCk7CiAKICAgICAgICAgLy8gJ1NWR0ZFQ29tcG9uZW50
VHJhbnNmZXJFbGVtZW50JyBmdW5jdGlvbnMKQEAgLTUwLDcgKzUwLDcgQEAgbmFtZXNwYWNlIEtT
VkcKIAogICAgICAgICB2aXJ0dWFsIEtDYW52YXNGaWx0ZXJFZmZlY3QgKmZpbHRlckVmZmVjdCgp
IGNvbnN0OwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpOworICAgICAgICB2aXJ0dWFs
IHZvaWQgY2xvc2VSZW5kZXJlcigpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgbXV0YWJsZSBT
VkdBbmltYXRlZFN0cmluZ0ltcGwgKm1faW4xOwpJbmRleDoga3N2ZzIvc3ZnL1NWR0ZFQ29tcG9z
aXRlRWxlbWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBw
b3J0L2tzdmcyL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnRJbXBsLmNwcCx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS42CmRpZmYgLXAgLXUgLXIxLjYga3N2ZzIvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxl
bWVudEltcGwuY3BwCi0tLSBrc3ZnMi9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50SW1wbC5jcHAJ
NSBPY3QgMjAwNSAwNTozNToyMCAtMDAwMAkxLjYKKysrIGtzdmcyL3N2Zy9TVkdGRUNvbXBvc2l0
ZUVsZW1lbnRJbXBsLmNwcAkxIE5vdiAyMDA1IDExOjEzOjE0IC0wMDAwCkBAIC0zMyw3ICszMyw3
IEBACiAjaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGll
bnQuaD4KIAogI2luY2x1ZGUgImtzdmcuaCIKLSNpbmNsdWRlICJzdmdhdHRycy5oIgorI2luY2x1
ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHSGVscGVyLmgiCiAjaW5jbHVkZSAiU1ZHUmVu
ZGVyU3R5bGUuaCIKICNpbmNsdWRlICJTVkdGRUNvbXBvc2l0ZUVsZW1lbnRJbXBsLmgiCkBAIC00
NCw4ICs0NCw4IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCi1TVkdGRUNvbXBvc2l0ZUVs
ZW1lbnRJbXBsOjpTVkdGRUNvbXBvc2l0ZUVsZW1lbnRJbXBsKEtET006OkRvY3VtZW50UHRyICpk
b2MsIEtET006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHJlZml4KSA6
IAotU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzSW1wbChkb2MsIGlkLCBwcmVm
aXgpCitTVkdGRUNvbXBvc2l0ZUVsZW1lbnRJbXBsOjpTVkdGRUNvbXBvc2l0ZUVsZW1lbnRJbXBs
KGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50UHRyICpk
b2MpIDogCitTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXNJbXBsKHRhZ05hbWUs
IGRvYykKIHsKICAgICBtX2luMSA9IG1faW4yID0gMDsKICAgICBtX2sxID0gbV9rMiA9IG1fazMg
PSBtX2s0ID0gMDsKQEAgLTExNSw0OSArMTE1LDM2IEBAIFNWR0FuaW1hdGVkTnVtYmVySW1wbCAq
U1ZHRkVDb21wb3NpdGVFbGUKIAogdm9pZCBTVkdGRUNvbXBvc2l0ZUVsZW1lbnRJbXBsOjpwYXJz
ZUF0dHJpYnV0ZShLRE9NOjpBdHRyaWJ1dGVJbXBsICphdHRyKQogewotICAgIGludCBpZCA9IChh
dHRyLT5pZCgpICYgTm9kZUltcGxfSWRMb2NhbE1hc2spOwogICAgIEtET006OkRPTVN0cmluZyB2
YWx1ZShhdHRyLT52YWx1ZSgpKTsKLSAgICBzd2l0Y2goaWQpCisgICAgaWYgKGF0dHItPm5hbWUo
KSA9PSBTVkdOYW1lczo6b3BlcmF0b3JBdHRyKQogICAgIHsKLSAgICAgICAgY2FzZSBBVFRSX09Q
RVJBVE9SOgotICAgICAgICB7Ci0gICAgICAgICAgICBpZih2YWx1ZSA9PSAib3ZlciIpCi0gICAg
ICAgICAgICAgICAgX29wZXJhdG9yKCktPnNldEJhc2VWYWwoU1ZHX0ZFQ09NUE9TSVRFX09QRVJB
VE9SX09WRVIpOwotICAgICAgICAgICAgZWxzZSBpZih2YWx1ZSA9PSAiaW4iKQotICAgICAgICAg
ICAgICAgIF9vcGVyYXRvcigpLT5zZXRCYXNlVmFsKFNWR19GRUNPTVBPU0lURV9PUEVSQVRPUl9J
Tik7Ci0gICAgICAgICAgICBlbHNlIGlmKHZhbHVlID09ICJvdXQiKQotICAgICAgICAgICAgICAg
IF9vcGVyYXRvcigpLT5zZXRCYXNlVmFsKFNWR19GRUNPTVBPU0lURV9PUEVSQVRPUl9PVVQpOwot
ICAgICAgICAgICAgZWxzZSBpZih2YWx1ZSA9PSAiYXRvcCIpCi0gICAgICAgICAgICAgICAgX29w
ZXJhdG9yKCktPnNldEJhc2VWYWwoU1ZHX0ZFQ09NUE9TSVRFX09QRVJBVE9SX0FUT1ApOwotICAg
ICAgICAgICAgZWxzZSBpZih2YWx1ZSA9PSAieG9yIikKLSAgICAgICAgICAgICAgICBfb3BlcmF0
b3IoKS0+c2V0QmFzZVZhbChTVkdfRkVDT01QT1NJVEVfT1BFUkFUT1JfWE9SKTsKLSAgICAgICAg
ICAgIGVsc2UgaWYodmFsdWUgPT0gImFyaXRobWF0aWMiKQotICAgICAgICAgICAgICAgIF9vcGVy
YXRvcigpLT5zZXRCYXNlVmFsKFNWR19GRUNPTVBPU0lURV9PUEVSQVRPUl9BUklUSE1FVElDKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgQVRUUl9JTjoKLSAg
ICAgICAgewotICAgICAgICAgICAgaW4xKCktPnNldEJhc2VWYWwodmFsdWUuaGFuZGxlKCkpOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBBVFRSX0lOMjoKLSAg
ICAgICAgewotICAgICAgICAgICAgaW4yKCktPnNldEJhc2VWYWwodmFsdWUuaGFuZGxlKCkpOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ewotICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzSW1wbDo6
cGFyc2VBdHRyaWJ1dGUoYXR0cik7Ci0gICAgICAgIH0KLSAgICB9OworICAgICAgICBpZih2YWx1
ZSA9PSAib3ZlciIpCisgICAgICAgICAgICBfb3BlcmF0b3IoKS0+c2V0QmFzZVZhbChTVkdfRkVD
T01QT1NJVEVfT1BFUkFUT1JfT1ZFUik7CisgICAgICAgIGVsc2UgaWYodmFsdWUgPT0gImluIikK
KyAgICAgICAgICAgIF9vcGVyYXRvcigpLT5zZXRCYXNlVmFsKFNWR19GRUNPTVBPU0lURV9PUEVS
QVRPUl9JTik7CisgICAgICAgIGVsc2UgaWYodmFsdWUgPT0gIm91dCIpCisgICAgICAgICAgICBf
b3BlcmF0b3IoKS0+c2V0QmFzZVZhbChTVkdfRkVDT01QT1NJVEVfT1BFUkFUT1JfT1VUKTsKKyAg
ICAgICAgZWxzZSBpZih2YWx1ZSA9PSAiYXRvcCIpCisgICAgICAgICAgICBfb3BlcmF0b3IoKS0+
c2V0QmFzZVZhbChTVkdfRkVDT01QT1NJVEVfT1BFUkFUT1JfQVRPUCk7CisgICAgICAgIGVsc2Ug
aWYodmFsdWUgPT0gInhvciIpCisgICAgICAgICAgICBfb3BlcmF0b3IoKS0+c2V0QmFzZVZhbChT
VkdfRkVDT01QT1NJVEVfT1BFUkFUT1JfWE9SKTsKKyAgICAgICAgZWxzZSBpZih2YWx1ZSA9PSAi
YXJpdGhtYXRpYyIpCisgICAgICAgICAgICBfb3BlcmF0b3IoKS0+c2V0QmFzZVZhbChTVkdfRkVD
T01QT1NJVEVfT1BFUkFUT1JfQVJJVEhNRVRJQyk7CisgICAgfQorICAgIGVsc2UgaWYgKGF0dHIt
Pm5hbWUoKSA9PSBTVkdOYW1lczo6aW5BdHRyKQorICAgICAgICBpbjEoKS0+c2V0QmFzZVZhbCh2
YWx1ZS5pbXBsKCkpOworICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6aW4y
QXR0cikKKyAgICAgICAgaW4yKCktPnNldEJhc2VWYWwodmFsdWUuaW1wbCgpKTsKKyAgICBlbHNl
CisgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlc0ltcGw6OnBhcnNl
QXR0cmlidXRlKGF0dHIpOwogfQogCiBLQ2FudmFzSXRlbSAqU1ZHRkVDb21wb3NpdGVFbGVtZW50
SW1wbDo6Y3JlYXRlQ2FudmFzSXRlbShLQ2FudmFzICpjYW52YXMsIEtSZW5kZXJpbmdTdHlsZSAq
c3R5bGUpIGNvbnN0CiB7CiAgICAgbV9maWx0ZXJFZmZlY3QgPSBzdGF0aWNfY2FzdDxLQ2FudmFz
RkVDb21wb3NpdGUgKj4oY2FudmFzLT5yZW5kZXJpbmdEZXZpY2UoKS0+Y3JlYXRlRmlsdGVyRWZm
ZWN0KEZFX0NPTVBPU0lURSkpOwogICAgIG1fZmlsdGVyRWZmZWN0LT5zZXRPcGVyYXRpb24oKEtD
Q29tcG9zaXRlT3BlcmF0aW9uVHlwZSkoX29wZXJhdG9yKCktPmJhc2VWYWwoKSAtIDEpKTsKLSAg
ICBtX2ZpbHRlckVmZmVjdC0+c2V0SW4oS0RPTTo6RE9NU3RyaW5nKGluMSgpLT5iYXNlVmFsKCkp
LnN0cmluZygpKTsKLSAgICBtX2ZpbHRlckVmZmVjdC0+c2V0SW4yKEtET006OkRPTVN0cmluZyhp
bjIoKS0+YmFzZVZhbCgpKS5zdHJpbmcoKSk7CisgICAgbV9maWx0ZXJFZmZlY3QtPnNldEluKEtE
T006OkRPTVN0cmluZyhpbjEoKS0+YmFzZVZhbCgpKS5xc3RyaW5nKCkpOworICAgIG1fZmlsdGVy
RWZmZWN0LT5zZXRJbjIoS0RPTTo6RE9NU3RyaW5nKGluMigpLT5iYXNlVmFsKCkpLnFzdHJpbmco
KSk7CiAgICAgc2V0U3RhbmRhcmRBdHRyaWJ1dGVzKG1fZmlsdGVyRWZmZWN0KTsKICAgICBtX2Zp
bHRlckVmZmVjdC0+c2V0SzEoazEoKS0+YmFzZVZhbCgpKTsKICAgICBtX2ZpbHRlckVmZmVjdC0+
c2V0SzIoazIoKS0+YmFzZVZhbCgpKTsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdGRUNvbXBvc2l0ZUVs
ZW1lbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2
ZzIvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudEltcGwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24g
MS40CmRpZmYgLXAgLXUgLXIxLjQga3N2ZzIvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudEltcGwu
aAotLS0ga3N2ZzIvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudEltcGwuaAkxIFNlcCAyMDA1IDA3
OjM1OjM4IC0wMDAwCTEuNAorKysga3N2ZzIvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudEltcGwu
aAkxIE5vdiAyMDA1IDExOjEzOjE0IC0wMDAwCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBL
U1ZHCiAgICAgY2xhc3MgU1ZHRkVDb21wb3NpdGVFbGVtZW50SW1wbCA6IHB1YmxpYyBTVkdGaWx0
ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXNJbXBsCiAgICAgewogICAgIHB1YmxpYzoKLSAg
ICAgICAgU1ZHRkVDb21wb3NpdGVFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBL
RE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZpeCk7CisgICAg
ICAgIFNWR0ZFQ29tcG9zaXRlRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRvYyk7CiAgICAgICAgIHZpcnR1YWwgflNWR0ZF
Q29tcG9zaXRlRWxlbWVudEltcGwoKTsKIAogICAgICAgICAvLyAnU1ZHRkVDb21wb3NpdGVFbGVt
ZW50JyBmdW5jdGlvbnMKSW5kZXg6IGtzdmcyL3N2Zy9TVkdGRUZsb29kRWxlbWVudEltcGwuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdG
RUZsb29kRWxlbWVudEltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjYKZGlmZiAtcCAt
dSAtcjEuNiBrc3ZnMi9zdmcvU1ZHRkVGbG9vZEVsZW1lbnRJbXBsLmNwcAotLS0ga3N2ZzIvc3Zn
L1NWR0ZFRmxvb2RFbGVtZW50SW1wbC5jcHAJNSBPY3QgMjAwNSAwNTozNToyMCAtMDAwMAkxLjYK
KysrIGtzdmcyL3N2Zy9TVkdGRUZsb29kRWxlbWVudEltcGwuY3BwCTEgTm92IDIwMDUgMTE6MTM6
MTQgLTAwMDAKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNGaWx0
ZXJzLmg+CiAjaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ0RldmljZS5oPgogCi0j
aW5jbHVkZSAic3ZnYXR0cnMuaCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNW
R0hlbHBlci5oIgogI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU1ZHRkVG
bG9vZEVsZW1lbnRJbXBsLmgiCkBAIC0zOSw4ICszOSw4IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBL
U1ZHOwogCi1TVkdGRUZsb29kRWxlbWVudEltcGw6OlNWR0ZFRmxvb2RFbGVtZW50SW1wbChLRE9N
OjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmlu
Z0ltcGwgKnByZWZpeCkgOiAKLVNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlc0lt
cGwoZG9jLCBpZCwgcHJlZml4KQorU1ZHRkVGbG9vZEVsZW1lbnRJbXBsOjpTVkdGRUZsb29kRWxl
bWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1l
bnRQdHIgKmRvYykgOiAKK1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlc0ltcGwo
dGFnTmFtZSwgZG9jKQogewogICAgIG1faW4xID0gMDsKICAgICBtX2ZpbHRlckVmZmVjdCA9IDA7
CkBAIC02MCwyNiArNjAsMTcgQEAgU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsICpTVkdGRUZsb29kRWxl
bWVudAogCiB2b2lkIFNWR0ZFRmxvb2RFbGVtZW50SW1wbDo6cGFyc2VBdHRyaWJ1dGUoS0RPTTo6
QXR0cmlidXRlSW1wbCAqYXR0cikKIHsKLSAgICBpbnQgaWQgPSAoYXR0ci0+aWQoKSAmIE5vZGVJ
bXBsX0lkTG9jYWxNYXNrKTsKICAgICBLRE9NOjpET01TdHJpbmcgdmFsdWUoYXR0ci0+dmFsdWUo
KSk7Ci0gICAgc3dpdGNoKGlkKQotICAgIHsKLSAgICAgICAgY2FzZSBBVFRSX0lOOgotICAgICAg
ICB7Ci0gICAgICAgICAgICBpbjEoKS0+c2V0QmFzZVZhbCh2YWx1ZS5oYW5kbGUoKSk7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBkZWZhdWx0OgotICAgICAgICB7Ci0g
ICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXNJbXBsOjpwYXJz
ZUF0dHJpYnV0ZShhdHRyKTsKLSAgICAgICAgfQotICAgIH07CisgICAgaWYgKGF0dHItPm5hbWUo
KSA9PSBTVkdOYW1lczo6aW5BdHRyKQorICAgICAgICBpbjEoKS0+c2V0QmFzZVZhbCh2YWx1ZS5p
bXBsKCkpOworICAgIGVsc2UKKyAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cik7CiB9CiAKIEtDYW52YXNJdGVtICpTVkdG
RUZsb29kRWxlbWVudEltcGw6OmNyZWF0ZUNhbnZhc0l0ZW0oS0NhbnZhcyAqY2FudmFzLCBLUmVu
ZGVyaW5nU3R5bGUgKnN0eWxlKSBjb25zdAogewogICAgIG1fZmlsdGVyRWZmZWN0ID0gc3RhdGlj
X2Nhc3Q8S0NhbnZhc0ZFRmxvb2QgKj4oY2FudmFzLT5yZW5kZXJpbmdEZXZpY2UoKS0+Y3JlYXRl
RmlsdGVyRWZmZWN0KEZFX0ZMT09EKSk7Ci0gICAgbV9maWx0ZXJFZmZlY3QtPnNldEluKEtET006
OkRPTVN0cmluZyhpbjEoKS0+YmFzZVZhbCgpKS5zdHJpbmcoKSk7CisgICAgbV9maWx0ZXJFZmZl
Y3QtPnNldEluKEtET006OkRPTVN0cmluZyhpbjEoKS0+YmFzZVZhbCgpKS5xc3RyaW5nKCkpOwog
ICAgIHNldFN0YW5kYXJkQXR0cmlidXRlcyhtX2ZpbHRlckVmZmVjdCk7CiAgICAgbV9maWx0ZXJF
ZmZlY3QtPnNldEZsb29kQ29sb3Ioc3RhdGljX2Nhc3Q8U1ZHUmVuZGVyU3R5bGUgKj4ocmVuZGVy
U3R5bGUoKSktPmZsb29kQ29sb3IoKSk7CiAgICAgbV9maWx0ZXJFZmZlY3QtPnNldEZsb29kT3Bh
Y2l0eShzdGF0aWNfY2FzdDxTVkdSZW5kZXJTdHlsZSAqPihyZW5kZXJTdHlsZSgpKS0+Zmxvb2RP
cGFjaXR5KCkpOwpJbmRleDoga3N2ZzIvc3ZnL1NWR0ZFRmxvb2RFbGVtZW50SW1wbC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdGRUZsb29k
RWxlbWVudEltcGwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41CmRpZmYgLXAgLXUgLXIxLjUg
a3N2ZzIvc3ZnL1NWR0ZFRmxvb2RFbGVtZW50SW1wbC5oCi0tLSBrc3ZnMi9zdmcvU1ZHRkVGbG9v
ZEVsZW1lbnRJbXBsLmgJNCBTZXAgMjAwNSAwOToxMDo1NCAtMDAwMAkxLjUKKysrIGtzdmcyL3N2
Zy9TVkdGRUZsb29kRWxlbWVudEltcGwuaAkxIE5vdiAyMDA1IDExOjEzOjE0IC0wMDAwCkBAIC0z
NSw3ICszNSw3IEBAIG5hbWVzcGFjZSBLU1ZHCiAgICAgY2xhc3MgU1ZHRkVGbG9vZEVsZW1lbnRJ
bXBsIDogcHVibGljIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlc0ltcGwKICAg
ICB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdGRUZsb29kRWxlbWVudEltcGwoS0RPTTo6RG9j
dW1lbnRQdHIgKmRvYywgS0RPTTo6Tm9kZUltcGw6OklkIGlkLCBLRE9NOjpET01TdHJpbmdJbXBs
ICpwcmVmaXgpOworICAgICAgICBTVkdGRUZsb29kRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRvYyk7CiAgICAgICAgIHZp
cnR1YWwgflNWR0ZFRmxvb2RFbGVtZW50SW1wbCgpOwogCiAgICAgICAgIC8vICdTVkdGRUZsb29k
RWxlbWVudCcgZnVuY3Rpb25zCkluZGV4OiBrc3ZnMi9zdmcvU1ZHRkVGdW5jQUVsZW1lbnRJbXBs
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcv
U1ZHRkVGdW5jQUVsZW1lbnRJbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41CmRpZmYg
LXAgLXUgLXIxLjUga3N2ZzIvc3ZnL1NWR0ZFRnVuY0FFbGVtZW50SW1wbC5jcHAKLS0tIGtzdmcy
L3N2Zy9TVkdGRUZ1bmNBRWxlbWVudEltcGwuY3BwCTUgT2N0IDIwMDUgMDU6MzU6MjAgLTAwMDAJ
MS41CisrKyBrc3ZnMi9zdmcvU1ZHRkVGdW5jQUVsZW1lbnRJbXBsLmNwcAkxIE5vdiAyMDA1IDEx
OjEzOjE0IC0wMDAwCkBAIC0yNSw4ICsyNSw4IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwog
Ci1TVkdGRUZ1bmNBRWxlbWVudEltcGw6OlNWR0ZFRnVuY0FFbGVtZW50SW1wbChLRE9NOjpEb2N1
bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwg
KnByZWZpeCkgOiAKLVNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50SW1wbChkb2Ms
IGlkLCBwcmVmaXgpCitTVkdGRUZ1bmNBRWxlbWVudEltcGw6OlNWR0ZFRnVuY0FFbGVtZW50SW1w
bChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudFB0ciAq
ZG9jKSA6IAorU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnRJbXBsKHRhZ05hbWUs
IGRvYykKIHsKIH0KIApJbmRleDoga3N2ZzIvc3ZnL1NWR0ZFRnVuY0FFbGVtZW50SW1wbC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdGRUZ1
bmNBRWxlbWVudEltcGwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40CmRpZmYgLXAgLXUgLXIx
LjQga3N2ZzIvc3ZnL1NWR0ZFRnVuY0FFbGVtZW50SW1wbC5oCi0tLSBrc3ZnMi9zdmcvU1ZHRkVG
dW5jQUVsZW1lbnRJbXBsLmgJMSBTZXAgMjAwNSAwNzozNTozOSAtMDAwMAkxLjQKKysrIGtzdmcy
L3N2Zy9TVkdGRUZ1bmNBRWxlbWVudEltcGwuaAkxIE5vdiAyMDA1IDExOjEzOjE0IC0wMDAwCkBA
IC0zMCw3ICszMCw3IEBAIG5hbWVzcGFjZSBLU1ZHCiAgICAgY2xhc3MgU1ZHRkVGdW5jQUVsZW1l
bnRJbXBsIDogcHVibGljIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50SW1wbAog
ICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0ZFRnVuY0FFbGVtZW50SW1wbChLRE9NOjpE
b2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0lt
cGwgKnByZWZpeCk7CisgICAgICAgIFNWR0ZFRnVuY0FFbGVtZW50SW1wbChjb25zdCBLRE9NOjpR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudFB0ciAqZG9jKTsKICAgICAgICAg
dmlydHVhbCB+U1ZHRkVGdW5jQUVsZW1lbnRJbXBsKCk7CiAgICAgfTsKIH07CkluZGV4OiBrc3Zn
Mi9zdmcvU1ZHRkVGdW5jQkVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHRkVGdW5jQkVsZW1lbnRJbXBsLmNwcCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS41CmRpZmYgLXAgLXUgLXIxLjUga3N2ZzIvc3ZnL1NWR0ZFRnVu
Y0JFbGVtZW50SW1wbC5jcHAKLS0tIGtzdmcyL3N2Zy9TVkdGRUZ1bmNCRWxlbWVudEltcGwuY3Bw
CTUgT2N0IDIwMDUgMDU6MzU6MjEgLTAwMDAJMS41CisrKyBrc3ZnMi9zdmcvU1ZHRkVGdW5jQkVs
ZW1lbnRJbXBsLmNwcAkxIE5vdiAyMDA1IDExOjEzOjE0IC0wMDAwCkBAIC0yNSw4ICsyNSw4IEBA
CiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCi1TVkdGRUZ1bmNCRWxlbWVudEltcGw6OlNWR0ZF
RnVuY0JFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6
SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZpeCkgOiAKLVNWR0NvbXBvbmVudFRyYW5z
ZmVyRnVuY3Rpb25FbGVtZW50SW1wbChkb2MsIGlkLCBwcmVmaXgpCitTVkdGRUZ1bmNCRWxlbWVu
dEltcGw6OlNWR0ZFRnVuY0JFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBLRE9NOjpEb2N1bWVudFB0ciAqZG9jKSA6IAorU1ZHQ29tcG9uZW50VHJhbnNmZXJG
dW5jdGlvbkVsZW1lbnRJbXBsKHRhZ05hbWUsIGRvYykKIHsKIH0KIApJbmRleDoga3N2ZzIvc3Zn
L1NWR0ZFRnVuY0JFbGVtZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9T
VkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdGRUZ1bmNCRWxlbWVudEltcGwuaCx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS40CmRpZmYgLXAgLXUgLXIxLjQga3N2ZzIvc3ZnL1NWR0ZFRnVuY0JFbGVtZW50
SW1wbC5oCi0tLSBrc3ZnMi9zdmcvU1ZHRkVGdW5jQkVsZW1lbnRJbXBsLmgJMSBTZXAgMjAwNSAw
NzozNTozOSAtMDAwMAkxLjQKKysrIGtzdmcyL3N2Zy9TVkdGRUZ1bmNCRWxlbWVudEltcGwuaAkx
IE5vdiAyMDA1IDExOjEzOjE0IC0wMDAwCkBAIC0zMCw3ICszMCw3IEBAIG5hbWVzcGFjZSBLU1ZH
CiAgICAgY2xhc3MgU1ZHRkVGdW5jQkVsZW1lbnRJbXBsIDogcHVibGljIFNWR0NvbXBvbmVudFRy
YW5zZmVyRnVuY3Rpb25FbGVtZW50SW1wbAogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNW
R0ZFRnVuY0JFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1w
bDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZpeCk7CisgICAgICAgIFNWR0ZFRnVu
Y0JFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpE
b2N1bWVudFB0ciAqZG9jKTsKICAgICAgICAgdmlydHVhbCB+U1ZHRkVGdW5jQkVsZW1lbnRJbXBs
KCk7CiAgICAgfTsKIH07CkluZGV4OiBrc3ZnMi9zdmcvU1ZHRkVGdW5jR0VsZW1lbnRJbXBsLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZH
RkVGdW5jR0VsZW1lbnRJbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41CmRpZmYgLXAg
LXUgLXIxLjUga3N2ZzIvc3ZnL1NWR0ZFRnVuY0dFbGVtZW50SW1wbC5jcHAKLS0tIGtzdmcyL3N2
Zy9TVkdGRUZ1bmNHRWxlbWVudEltcGwuY3BwCTUgT2N0IDIwMDUgMDU6MzU6MjEgLTAwMDAJMS41
CisrKyBrc3ZnMi9zdmcvU1ZHRkVGdW5jR0VsZW1lbnRJbXBsLmNwcAkxIE5vdiAyMDA1IDExOjEz
OjE1IC0wMDAwCkBAIC0yNSw4ICsyNSw4IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCi1T
VkdGRUZ1bmNHRWxlbWVudEltcGw6OlNWR0ZFRnVuY0dFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVu
dFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnBy
ZWZpeCkgOiAKLVNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50SW1wbChkb2MsIGlk
LCBwcmVmaXgpCitTVkdGRUZ1bmNHRWxlbWVudEltcGw6OlNWR0ZFRnVuY0dFbGVtZW50SW1wbChj
b25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudFB0ciAqZG9j
KSA6IAorU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnRJbXBsKHRhZ05hbWUsIGRv
YykKIHsKIH0KIApJbmRleDoga3N2ZzIvc3ZnL1NWR0ZFRnVuY0dFbGVtZW50SW1wbC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdGRUZ1bmNH
RWxlbWVudEltcGwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40CmRpZmYgLXAgLXUgLXIxLjQg
a3N2ZzIvc3ZnL1NWR0ZFRnVuY0dFbGVtZW50SW1wbC5oCi0tLSBrc3ZnMi9zdmcvU1ZHRkVGdW5j
R0VsZW1lbnRJbXBsLmgJMSBTZXAgMjAwNSAwNzozNTozOSAtMDAwMAkxLjQKKysrIGtzdmcyL3N2
Zy9TVkdGRUZ1bmNHRWxlbWVudEltcGwuaAkxIE5vdiAyMDA1IDExOjEzOjE1IC0wMDAwCkBAIC0z
MCw3ICszMCw3IEBAIG5hbWVzcGFjZSBLU1ZHCiAgICAgY2xhc3MgU1ZHRkVGdW5jR0VsZW1lbnRJ
bXBsIDogcHVibGljIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50SW1wbAogICAg
IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0ZFRnVuY0dFbGVtZW50SW1wbChLRE9NOjpEb2N1
bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwg
KnByZWZpeCk7CisgICAgICAgIFNWR0ZFRnVuY0dFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudFB0ciAqZG9jKTsKICAgICAgICAgdmly
dHVhbCB+U1ZHRkVGdW5jR0VsZW1lbnRJbXBsKCk7CiAgICAgfTsKIH07CkluZGV4OiBrc3ZnMi9z
dmcvU1ZHRkVGdW5jUkVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jv
b3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHRkVGdW5jUkVsZW1lbnRJbXBsLmNwcCx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS41CmRpZmYgLXAgLXUgLXIxLjUga3N2ZzIvc3ZnL1NWR0ZFRnVuY1JF
bGVtZW50SW1wbC5jcHAKLS0tIGtzdmcyL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudEltcGwuY3BwCTUg
T2N0IDIwMDUgMDU6MzU6MjEgLTAwMDAJMS41CisrKyBrc3ZnMi9zdmcvU1ZHRkVGdW5jUkVsZW1l
bnRJbXBsLmNwcAkxIE5vdiAyMDA1IDExOjEzOjE1IC0wMDAwCkBAIC0yNSw4ICsyNSw4IEBACiAK
IHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCi1TVkdGRUZ1bmNSRWxlbWVudEltcGw6OlNWR0ZFRnVu
Y1JFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQg
aWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZpeCkgOiAKLVNWR0NvbXBvbmVudFRyYW5zZmVy
RnVuY3Rpb25FbGVtZW50SW1wbChkb2MsIGlkLCBwcmVmaXgpCitTVkdGRUZ1bmNSRWxlbWVudElt
cGw6OlNWR0ZFRnVuY1JFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBLRE9NOjpEb2N1bWVudFB0ciAqZG9jKSA6IAorU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5j
dGlvbkVsZW1lbnRJbXBsKHRhZ05hbWUsIGRvYykKIHsKIH0KIApJbmRleDoga3N2ZzIvc3ZnL1NW
R0ZFRnVuY1JFbGVtZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdT
dXBwb3J0L2tzdmcyL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudEltcGwuaCx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS40CmRpZmYgLXAgLXUgLXIxLjQga3N2ZzIvc3ZnL1NWR0ZFRnVuY1JFbGVtZW50SW1w
bC5oCi0tLSBrc3ZnMi9zdmcvU1ZHRkVGdW5jUkVsZW1lbnRJbXBsLmgJMSBTZXAgMjAwNSAwNzoz
NTozOSAtMDAwMAkxLjQKKysrIGtzdmcyL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudEltcGwuaAkxIE5v
diAyMDA1IDExOjEzOjE1IC0wMDAwCkBAIC0zMCw3ICszMCw3IEBAIG5hbWVzcGFjZSBLU1ZHCiAg
ICAgY2xhc3MgU1ZHRkVGdW5jUkVsZW1lbnRJbXBsIDogcHVibGljIFNWR0NvbXBvbmVudFRyYW5z
ZmVyRnVuY3Rpb25FbGVtZW50SW1wbAogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0ZF
RnVuY1JFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6
SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZpeCk7CisgICAgICAgIFNWR0ZFRnVuY1JF
bGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1
bWVudFB0ciAqZG9jKTsKICAgICAgICAgdmlydHVhbCB+U1ZHRkVGdW5jUkVsZW1lbnRJbXBsKCk7
CiAgICAgfTsKIH07CkluZGV4OiBrc3ZnMi9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50SW1w
bC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvc3Zn
L1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudEltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAx
LjcKZGlmZiAtcCAtdSAtcjEuNyBrc3ZnMi9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50SW1w
bC5jcHAKLS0tIGtzdmcyL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnRJbXBsLmNwcAk1IE9j
dCAyMDA1IDA1OjM1OjIxIC0wMDAwCTEuNworKysga3N2ZzIvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVy
RWxlbWVudEltcGwuY3BwCTEgTm92IDIwMDUgMTE6MTM6MTUgLTAwMDAKQEAgLTMyLDcgKzMyLDcg
QEAKICNpbmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nRGV2aWNlLmg+CiAjaW5jbHVk
ZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQuaD4KIAotI2lu
Y2x1ZGUgInN2Z2F0dHJzLmgiCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdI
ZWxwZXIuaCIKICNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlNWR0ZFR2F1
c3NpYW5CbHVyRWxlbWVudEltcGwuaCIKQEAgLTQyLDggKzQyLDggQEAKIAogdXNpbmcgbmFtZXNw
YWNlIEtTVkc7CiAKLVNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudEltcGw6OlNWR0ZFR2F1c3NpYW5C
bHVyRWxlbWVudEltcGwoS0RPTTo6RG9jdW1lbnRQdHIgKmRvYywgS0RPTTo6Tm9kZUltcGw6Oklk
IGlkLCBLRE9NOjpET01TdHJpbmdJbXBsICpwcmVmaXgpIDogCi1TVkdGaWx0ZXJQcmltaXRpdmVT
dGFuZGFyZEF0dHJpYnV0ZXNJbXBsKGRvYywgaWQsIHByZWZpeCkKK1NWR0ZFR2F1c3NpYW5CbHVy
RWxlbWVudEltcGw6OlNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRvYykgOiAKK1NWR0ZpbHRl
clByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlc0ltcGwodGFnTmFtZSwgZG9jKQogewogICAgIG1f
aW4xID0gMDsKICAgICBtX3N0ZERldmlhdGlvblggPSAwOwpAQCAtODUsMzcgKzg1LDI1IEBAIHZv
aWQgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50SW1wbDo6c2V0U3QKIAogdm9pZCBTVkdGRUdhdXNz
aWFuQmx1ckVsZW1lbnRJbXBsOjpwYXJzZUF0dHJpYnV0ZShLRE9NOjpBdHRyaWJ1dGVJbXBsICph
dHRyKQogewotICAgIGludCBpZCA9IChhdHRyLT5pZCgpICYgTm9kZUltcGxfSWRMb2NhbE1hc2sp
OwogICAgIEtET006OkRPTVN0cmluZyB2YWx1ZShhdHRyLT52YWx1ZSgpKTsKLSAgICBzd2l0Y2go
aWQpCi0gICAgewotICAgICAgICBjYXNlIEFUVFJfU1REREVWSUFUSU9OOgotICAgICAgICB7Ci0g
ICAgICAgICAgICBRU3RyaW5nTGlzdCBudW1iZXJzID0gUVN0cmluZ0xpc3Q6OnNwbGl0KCcgJywg
dmFsdWUuc3RyaW5nKCkpOwotICAgICAgICAgICAgc3RkRGV2aWF0aW9uWCgpLT5zZXRCYXNlVmFs
KG51bWJlcnNbMF0udG9Eb3VibGUoKSk7Ci0gICAgICAgICAgICBpZihudW1iZXJzLmNvdW50KCkg
PT0gMSkKLSAgICAgICAgICAgICAgICBzdGREZXZpYXRpb25ZKCktPnNldEJhc2VWYWwobnVtYmVy
c1swXS50b0RvdWJsZSgpKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBzdGRE
ZXZpYXRpb25ZKCktPnNldEJhc2VWYWwobnVtYmVyc1sxXS50b0RvdWJsZSgpKTsKLQotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBBVFRSX0lOOgotICAgICAgICB7
Ci0gICAgICAgICAgICBpbjEoKS0+c2V0QmFzZVZhbCh2YWx1ZS5oYW5kbGUoKSk7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBkZWZhdWx0OgotICAgICAgICB7Ci0gICAg
ICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXNJbXBsOjpwYXJzZUF0
dHJpYnV0ZShhdHRyKTsKLSAgICAgICAgfQotICAgIH07CisgICAgaWYgKGF0dHItPm5hbWUoKSA9
PSBTVkdOYW1lczo6c3RkZGV2aWF0aW9uQXR0cikgeworICAgICAgICBRU3RyaW5nTGlzdCBudW1i
ZXJzID0gUVN0cmluZ0xpc3Q6OnNwbGl0KCcgJywgdmFsdWUucXN0cmluZygpKTsKKyAgICAgICAg
c3RkRGV2aWF0aW9uWCgpLT5zZXRCYXNlVmFsKG51bWJlcnNbMF0udG9Eb3VibGUoKSk7CisgICAg
ICAgIGlmKG51bWJlcnMuY291bnQoKSA9PSAxKQorICAgICAgICAgICAgc3RkRGV2aWF0aW9uWSgp
LT5zZXRCYXNlVmFsKG51bWJlcnNbMF0udG9Eb3VibGUoKSk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHN0ZERldmlhdGlvblkoKS0+c2V0QmFzZVZhbChudW1iZXJzWzFdLnRvRG91YmxlKCkp
OworICAgIH0KKyAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OmluQXR0cikK
KyAgICAgICAgaW4xKCktPnNldEJhc2VWYWwodmFsdWUuaW1wbCgpKTsKKyAgICBlbHNlCisgICAg
ICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlc0ltcGw6OnBhcnNlQXR0cmli
dXRlKGF0dHIpOwogfQogCiBLQ2FudmFzSXRlbSAqU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50SW1w
bDo6Y3JlYXRlQ2FudmFzSXRlbShLQ2FudmFzICpjYW52YXMsIEtSZW5kZXJpbmdTdHlsZSAqc3R5
bGUpIGNvbnN0CiB7CiAgICAgbV9maWx0ZXJFZmZlY3QgPSBzdGF0aWNfY2FzdDxLQ2FudmFzRkVH
YXVzc2lhbkJsdXIgKj4oY2FudmFzLT5yZW5kZXJpbmdEZXZpY2UoKS0+Y3JlYXRlRmlsdGVyRWZm
ZWN0KEZFX0dBVVNTSUFOX0JMVVIpKTsKLSAgICBtX2ZpbHRlckVmZmVjdC0+c2V0SW4oS0RPTTo6
RE9NU3RyaW5nKGluMSgpLT5iYXNlVmFsKCkpLnN0cmluZygpKTsKKyAgICBtX2ZpbHRlckVmZmVj
dC0+c2V0SW4oS0RPTTo6RE9NU3RyaW5nKGluMSgpLT5iYXNlVmFsKCkpLnFzdHJpbmcoKSk7CiAg
ICAgc2V0U3RhbmRhcmRBdHRyaWJ1dGVzKG1fZmlsdGVyRWZmZWN0KTsKICAgICBtX2ZpbHRlckVm
ZmVjdC0+c2V0U3RkRGV2aWF0aW9uWChzdGREZXZpYXRpb25YKCktPmJhc2VWYWwoKSk7CiAgICAg
bV9maWx0ZXJFZmZlY3QtPnNldFN0ZERldmlhdGlvblkoc3RkRGV2aWF0aW9uWSgpLT5iYXNlVmFs
KCkpOwpJbmRleDoga3N2ZzIvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudEltcGwuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHRkVHYXVz
c2lhbkJsdXJFbGVtZW50SW1wbC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQKZGlmZiAtcCAt
dSAtcjEuNCBrc3ZnMi9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50SW1wbC5oCi0tLSBrc3Zn
Mi9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50SW1wbC5oCTEgU2VwIDIwMDUgMDc6MzU6Mzkg
LTAwMDAJMS40CisrKyBrc3ZnMi9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50SW1wbC5oCTEg
Tm92IDIwMDUgMTE6MTM6MTUgLTAwMDAKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIEtTVkcK
ICAgICBjbGFzcyBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnRJbXBsIDogcHVibGljIFNWR0ZpbHRl
clByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlc0ltcGwKICAgICB7CiAgICAgcHVibGljOgotICAg
ICAgICBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnRJbXBsKEtET006OkRvY3VtZW50UHRyICpkb2Ms
IEtET006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHJlZml4KTsKKyAg
ICAgICAgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudFB0ciAqZG9jKTsKICAgICAgICAgdmlydHVhbCB+
U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50SW1wbCgpOwogCiAgICAgICAgIC8vICdTVkdGRUdhdXNz
aWFuQmx1ckVsZW1lbnQnIGZ1bmN0aW9ucwpJbmRleDoga3N2ZzIvc3ZnL1NWR0ZFSW1hZ2VFbGVt
ZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2
ZzIvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50SW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
NgpkaWZmIC1wIC11IC1yMS42IGtzdmcyL3N2Zy9TVkdGRUltYWdlRWxlbWVudEltcGwuY3BwCi0t
LSBrc3ZnMi9zdmcvU1ZHRkVJbWFnZUVsZW1lbnRJbXBsLmNwcAk1IE9jdCAyMDA1IDA1OjM1OjIx
IC0wMDAwCTEuNgorKysga3N2ZzIvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50SW1wbC5jcHAJMSBOb3Yg
MjAwNSAxMToxMzoxNSAtMDAwMApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgPGtkb20vY2Fj
aGUvS0RPTUxvYWRlci5oPgogI2luY2x1ZGUgPGtkb20vY2FjaGUvS0RPTUNhY2hlZE9iamVjdC5o
PgogCi0jaW5jbHVkZSAic3ZnYXR0cnMuaCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1
ZGUgIlNWR0hlbHBlci5oIgogI2luY2x1ZGUgIlNWR0RvY3VtZW50SW1wbC5oIgogI2luY2x1ZGUg
IlNWR0ZFSW1hZ2VFbGVtZW50SW1wbC5oIgpAQCAtNDYsOCArNDYsOCBAQAogCiB1c2luZyBuYW1l
c3BhY2UgS1NWRzsKIAotU1ZHRkVJbWFnZUVsZW1lbnRJbXBsOjpTVkdGRUltYWdlRWxlbWVudElt
cGwoS0RPTTo6RG9jdW1lbnRQdHIgKmRvYywgS0RPTTo6Tm9kZUltcGw6OklkIGlkLCBLRE9NOjpE
T01TdHJpbmdJbXBsICpwcmVmaXgpCi06IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlc0ltcGwoZG9jLCBpZCwgcHJlZml4KSwgU1ZHVVJJUmVmZXJlbmNlSW1wbCgpLCBTVkdMYW5n
U3BhY2VJbXBsKCksIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsKCkKK1NWR0ZFSW1h
Z2VFbGVtZW50SW1wbDo6U1ZHRkVJbWFnZUVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50UHRyICpkb2MpCis6IFNWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlc0ltcGwodGFnTmFtZSwgZG9jKSwgU1ZHVVJJUmVmZXJlbmNl
SW1wbCgpLCBTVkdMYW5nU3BhY2VJbXBsKCksIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJ
bXBsKCkKIHsKICAgICBtX3ByZXNlcnZlQXNwZWN0UmF0aW8gPSAwOwogICAgIG1fY2FjaGVkSW1h
Z2UgPSAwOwpAQCAtNjYsMjQgKzY2LDE3IEBAIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRp
b0ltcGwgKlNWR0YKIAogdm9pZCBTVkdGRUltYWdlRWxlbWVudEltcGw6OnBhcnNlQXR0cmlidXRl
KEtET006OkF0dHJpYnV0ZUltcGwgKmF0dHIpCiB7Ci0gICAgaW50IGlkID0gKGF0dHItPmlkKCkg
JiBOb2RlSW1wbF9JZExvY2FsTWFzayk7CiAgICAgS0RPTTo6RE9NU3RyaW5nIHZhbHVlKGF0dHIt
PnZhbHVlKCkpOwotICAgIHN3aXRjaChpZCkKKyAgICBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05h
bWVzOjpwcmVzZXJ2ZWFzcGVjdHJhdGlvQXR0cikKKyAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRp
bygpLT5iYXNlVmFsKCktPnBhcnNlUHJlc2VydmVBc3BlY3RSYXRpbyh2YWx1ZS5pbXBsKCkpOwor
ICAgIGVsc2UKICAgICB7Ci0gICAgICAgIGNhc2UgQVRUUl9QUkVTRVJWRUFTUEVDVFJBVElPOgot
ICAgICAgICB7Ci0gICAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvKCktPmJhc2VWYWwoKS0+
cGFyc2VQcmVzZXJ2ZUFzcGVjdFJhdGlvKHZhbHVlLmhhbmRsZSgpKTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICB9Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgIHsKLSAgICAgICAgICAg
IGlmKFNWR1VSSVJlZmVyZW5jZUltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47Ci0g
ICAgICAgICAgICBpZihTVkdMYW5nU3BhY2VJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0
dXJuOwotICAgICAgICAgICAgaWYoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGw6OnBh
cnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47Ci0KLSAgICAgICAgICAgIFNWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlc0ltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpOwotICAgICAg
ICB9Ci0gICAgfTsKKyAgICAgICAgaWYoU1ZHVVJJUmVmZXJlbmNlSW1wbDo6cGFyc2VBdHRyaWJ1
dGUoYXR0cikpIHJldHVybjsKKyAgICAgICAgaWYoU1ZHTGFuZ1NwYWNlSW1wbDo6cGFyc2VBdHRy
aWJ1dGUoYXR0cikpIHJldHVybjsKKyAgICAgICAgaWYoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZEltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47CisKKyAgICAgICAgU1ZHRmls
dGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cik7
CisgICAgfQogfQogCiB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50SW1wbDo6bm90aWZ5RmluaXNoZWQo
S0RPTTo6Q2FjaGVkT2JqZWN0ICpmaW5pc2hlZE9iaikKQEAgLTEwMywxMCArOTYsMTIgQEAgdm9p
ZCBTVkdGRUltYWdlRWxlbWVudEltcGw6Om5vdGlmeUZpbmlzaAogCiB2b2lkIFNWR0ZFSW1hZ2VF
bGVtZW50SW1wbDo6ZmluYWxpemVTdHlsZShLQ2FudmFzUmVuZGVyaW5nU3R5bGUgKnN0eWxlLCBi
b29sIC8qIG5lZWRGaWxsU3Ryb2tlVXBkYXRlICovKQogewotICAgIEtVUkwgZnVsbFVybChvd25l
ckRvY3VtZW50KCktPmRvY3VtZW50S1VSSSgpLCBLRE9NOjpET01TdHJpbmcoaHJlZigpLT5iYXNl
VmFsKCkpLnN0cmluZygpKTsKKyNpZm5kZWYgQVBQTEVfQ0hBTkdFUworICAgIEtVUkwgZnVsbFVy
bChvd25lckRvY3VtZW50KCktPmRvY3VtZW50S1VSSSgpLCBLRE9NOjpET01TdHJpbmcoaHJlZigp
LT5iYXNlVmFsKCkpLnFzdHJpbmcoKSk7CiAgICAga2REZWJ1ZygpIDw8ICJSRVFVRVNUSU5HIExP
QUQgT0YgIiA8PCBmdWxsVXJsLnByZXR0eVVSTCgpIDw8IGVuZGw7CisjZW5kaWYKIAotICAgIG1f
Y2FjaGVkSW1hZ2UgPSBvd25lckRvY3VtZW50KCktPmRvY0xvYWRlcigpLT5yZXF1ZXN0SW1hZ2Uo
ZnVsbFVybCk7CisgICAgbV9jYWNoZWRJbWFnZSA9IG93bmVyRG9jdW1lbnQoKS0+ZG9jTG9hZGVy
KCktPnJlcXVlc3RJbWFnZShocmVmKCktPmJhc2VWYWwoKSk7CiAgICAgaWYobV9jYWNoZWRJbWFn
ZSkKICAgICAgICAgbV9jYWNoZWRJbWFnZS0+cmVmKHRoaXMpOwogfQpJbmRleDoga3N2ZzIvc3Zn
L1NWR0ZFSW1hZ2VFbGVtZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9T
VkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdGRUltYWdlRWxlbWVudEltcGwuaCx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS40CmRpZmYgLXAgLXUgLXIxLjQga3N2ZzIvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50
SW1wbC5oCi0tLSBrc3ZnMi9zdmcvU1ZHRkVJbWFnZUVsZW1lbnRJbXBsLmgJMSBTZXAgMjAwNSAw
NzozNTo0MCAtMDAwMAkxLjQKKysrIGtzdmcyL3N2Zy9TVkdGRUltYWdlRWxlbWVudEltcGwuaAkx
IE5vdiAyMDA1IDExOjEzOjE1IC0wMDAwCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBLU1ZH
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIEtET006OkNhY2hlZE9i
amVjdENsaWVudAogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0ZFSW1hZ2VFbGVtZW50
SW1wbChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsICBLRE9N
OjpET01TdHJpbmdJbXBsICpwcmVmaXgpOworICAgICAgICBTVkdGRUltYWdlRWxlbWVudEltcGwo
Y29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRv
Yyk7CiAgICAgICAgIHZpcnR1YWwgflNWR0ZFSW1hZ2VFbGVtZW50SW1wbCgpOwogCiAgICAgICAg
IC8vICdTVkdGRUltYWdlRWxlbWVudCcgZnVuY3Rpb25zCkluZGV4OiBrc3ZnMi9zdmcvU1ZHRkVN
ZXJnZUVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3Vw
cG9ydC9rc3ZnMi9zdmcvU1ZHRkVNZXJnZUVsZW1lbnRJbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS42CmRpZmYgLXAgLXUgLXIxLjYga3N2ZzIvc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50SW1w
bC5jcHAKLS0tIGtzdmcyL3N2Zy9TVkdGRU1lcmdlRWxlbWVudEltcGwuY3BwCTUgT2N0IDIwMDUg
MDU6MzU6MjEgLTAwMDAJMS42CisrKyBrc3ZnMi9zdmcvU1ZHRkVNZXJnZUVsZW1lbnRJbXBsLmNw
cAkxIE5vdiAyMDA1IDExOjEzOjE1IC0wMDAwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSA8
a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ0RldmljZS5oPgogCiAjaW5jbHVkZSAia3N2Zy5oIgot
I2luY2x1ZGUgInN2Z2F0dHJzLmgiCiAjaW5jbHVkZSAiU1ZHSGVscGVyLmgiCiAjaW5jbHVkZSAi
U1ZHUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJTVkdGRU1lcmdlRWxlbWVudEltcGwuaCIKQEAg
LTQyLDggKzQxLDggQEAKIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKLVNWR0ZFTWVyZ2VFbGVt
ZW50SW1wbDo6U1ZHRkVNZXJnZUVsZW1lbnRJbXBsKEtET006OkRvY3VtZW50UHRyICpkb2MsIEtE
T006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHJlZml4KSA6IAotU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzSW1wbChkb2MsIGlkLCBwcmVmaXgpCitT
VkdGRU1lcmdlRWxlbWVudEltcGw6OlNWR0ZFTWVyZ2VFbGVtZW50SW1wbChjb25zdCBLRE9NOjpR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudFB0ciAqZG9jKSA6IAorU1ZHRmls
dGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzSW1wbCh0YWdOYW1lLCBkb2MpCiB7CiAgICAg
bV9maWx0ZXJFZmZlY3QgPSAwOwogfQpAQCAtNjQsMTUgKzYzLDE1IEBAIEtDYW52YXNGaWx0ZXJF
ZmZlY3QgKlNWR0ZFTWVyZ2VFbGVtZW50SW0KICAgICByZXR1cm4gbV9maWx0ZXJFZmZlY3Q7CiB9
CiAKLXZvaWQgU1ZHRkVNZXJnZUVsZW1lbnRJbXBsOjpjbG9zZSgpCit2b2lkIFNWR0ZFTWVyZ2VF
bGVtZW50SW1wbDo6Y2xvc2VSZW5kZXJlcigpCiB7CiAgICAgUVN0cmluZ0xpc3QgbWVyZ2VJbnB1
dHM7CiAgICAgZm9yKEtET006Ok5vZGVJbXBsICpuID0gZmlyc3RDaGlsZCgpOyBuICE9IDA7IG4g
PSBuLT5uZXh0U2libGluZygpKQogICAgIHsKLSAgICAgICAgaWYobi0+aWQoKSA9PSBJRF9GRU1F
UkdFTk9ERSkKKyAgICAgICAgaWYobi0+aGFzVGFnTmFtZShTVkdOYW1lczo6ZmVtZXJnZW5vZGVU
YWcpKQogICAgICAgICB7CiAgICAgICAgICAgICBTVkdGRU1lcmdlTm9kZUVsZW1lbnRJbXBsICpt
ZXJnZU5vZGUgPSBzdGF0aWNfY2FzdDxTVkdGRU1lcmdlTm9kZUVsZW1lbnRJbXBsICo+KG4pOwot
ICAgICAgICAgICAgbWVyZ2VJbnB1dHMuYXBwZW5kKEtET006OkRPTVN0cmluZyhtZXJnZU5vZGUt
PmluMSgpLT5iYXNlVmFsKCkpLnN0cmluZygpKTsKKyAgICAgICAgICAgIG1lcmdlSW5wdXRzLmFw
cGVuZChLRE9NOjpET01TdHJpbmcobWVyZ2VOb2RlLT5pbjEoKS0+YmFzZVZhbCgpKS5xc3RyaW5n
KCkpOwogICAgICAgICB9CiAgICAgfQogCkluZGV4OiBrc3ZnMi9zdmcvU1ZHRkVNZXJnZUVsZW1l
bnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIv
c3ZnL1NWR0ZFTWVyZ2VFbGVtZW50SW1wbC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQKZGlm
ZiAtcCAtdSAtcjEuNCBrc3ZnMi9zdmcvU1ZHRkVNZXJnZUVsZW1lbnRJbXBsLmgKLS0tIGtzdmcy
L3N2Zy9TVkdGRU1lcmdlRWxlbWVudEltcGwuaAkxIFNlcCAyMDA1IDA3OjM1OjQwIC0wMDAwCTEu
NAorKysga3N2ZzIvc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50SW1wbC5oCTEgTm92IDIwMDUgMTE6MTM6
MTUgLTAwMDAKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIEtTVkcKICAgICBjbGFzcyBTVkdG
RU1lcmdlRWxlbWVudEltcGwgOiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzSW1wbAogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0ZFTWVyZ2VFbGVtZW50
SW1wbChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006
OkRPTVN0cmluZ0ltcGwgKnByZWZpeCk7CisgICAgICAgIFNWR0ZFTWVyZ2VFbGVtZW50SW1wbChj
b25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudFB0ciAqZG9j
KTsKICAgICAgICAgdmlydHVhbCB+U1ZHRkVNZXJnZUVsZW1lbnRJbXBsKCk7CiAKICAgICAgICAg
dmlydHVhbCBLQ2FudmFzSXRlbSAqY3JlYXRlQ2FudmFzSXRlbShLQ2FudmFzICpjYW52YXMsIEtS
ZW5kZXJpbmdTdHlsZSAqc3R5bGUpIGNvbnN0OwpAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2Ug
S1NWRwogCiAgICAgICAgIHZpcnR1YWwgS0NhbnZhc0ZpbHRlckVmZmVjdCAqZmlsdGVyRWZmZWN0
KCkgY29uc3Q7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIGNsb3NlKCk7CisgICAgICAgIHZpcnR1
YWwgdm9pZCBjbG9zZVJlbmRlcmVyKCk7CiAKICAgICBwcml2YXRlOgogICAgICAgICBtdXRhYmxl
IEtDYW52YXNGRU1lcmdlICptX2ZpbHRlckVmZmVjdDsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdGRU1l
cmdlTm9kZUVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZH
U3VwcG9ydC9rc3ZnMi9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50SW1wbC5jcHAsdgpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuNgpkaWZmIC1wIC11IC1yMS42IGtzdmcyL3N2Zy9TVkdGRU1lcmdlTm9k
ZUVsZW1lbnRJbXBsLmNwcAotLS0ga3N2ZzIvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudEltcGwu
Y3BwCTUgT2N0IDIwMDUgMDU6MzU6MjIgLTAwMDAJMS42CisrKyBrc3ZnMi9zdmcvU1ZHRkVNZXJn
ZU5vZGVFbGVtZW50SW1wbC5jcHAJMSBOb3YgMjAwNSAxMToxMzoxNSAtMDAwMApAQCAtMjMsNyAr
MjMsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1w
bC5oPgogCi0jaW5jbHVkZSAic3ZnYXR0cnMuaCIKICNpbmNsdWRlICJTVkdIZWxwZXIuaCIKICNp
bmNsdWRlICJTVkdEb2N1bWVudEltcGwuaCIKICNpbmNsdWRlICJTVkdGRU1lcmdlTm9kZUVsZW1l
bnRJbXBsLmgiCkBAIC0zMSw3ICszMCw3IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCi1T
VkdGRU1lcmdlTm9kZUVsZW1lbnRJbXBsOjpTVkdGRU1lcmdlTm9kZUVsZW1lbnRJbXBsKEtET006
OkRvY3VtZW50UHRyICpkb2MsIEtET006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3RyaW5n
SW1wbCAqcHJlZml4KSA6IFNWR0VsZW1lbnRJbXBsKGRvYywgaWQsIHByZWZpeCkKK1NWR0ZFTWVy
Z2VOb2RlRWxlbWVudEltcGw6OlNWR0ZFTWVyZ2VOb2RlRWxlbWVudEltcGwoY29uc3QgS0RPTTo6
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRvYykgOiBTVkdFbGVt
ZW50SW1wbCh0YWdOYW1lLCBkb2MpCiB7CiAgICAgbV9pbjEgPSAwOwogfQpAQCAtNTAsMjAgKzQ5
LDExIEBAIFNWR0FuaW1hdGVkU3RyaW5nSW1wbCAqU1ZHRkVNZXJnZU5vZGVFbGUKIAogdm9pZCBT
VkdGRU1lcmdlTm9kZUVsZW1lbnRJbXBsOjpwYXJzZUF0dHJpYnV0ZShLRE9NOjpBdHRyaWJ1dGVJ
bXBsICphdHRyKQogewotICAgIGludCBpZCA9IChhdHRyLT5pZCgpICYgTm9kZUltcGxfSWRMb2Nh
bE1hc2spOwogICAgIEtET006OkRPTVN0cmluZyB2YWx1ZShhdHRyLT52YWx1ZSgpKTsKLSAgICBz
d2l0Y2goaWQpCi0gICAgewotICAgICAgICBjYXNlIEFUVFJfSU46Ci0gICAgICAgIHsKLSAgICAg
ICAgICAgIGluMSgpLT5zZXRCYXNlVmFsKHZhbHVlLmhhbmRsZSgpKTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICB9Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgIHsKLSAgICAgICAgICAg
IFNWR0VsZW1lbnRJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKTsKLSAgICAgICAgfQotICAgIH07
CisgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6aW5BdHRyKQorICAgICAgICBpbjEo
KS0+c2V0QmFzZVZhbCh2YWx1ZS5pbXBsKCkpOworICAgIGVsc2UKKyAgICAgICAgU1ZHRWxlbWVu
dEltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpOwogfQogCiAKSW5kZXg6IGtzdmcyL3N2Zy9TVkdG
RU1lcmdlTm9kZUVsZW1lbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NW
R1N1cHBvcnQva3N2ZzIvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudEltcGwuaCx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS40CmRpZmYgLXAgLXUgLXIxLjQga3N2ZzIvc3ZnL1NWR0ZFTWVyZ2VOb2Rl
RWxlbWVudEltcGwuaAotLS0ga3N2ZzIvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudEltcGwuaAkx
IFNlcCAyMDA1IDA3OjM1OjQwIC0wMDAwCTEuNAorKysga3N2ZzIvc3ZnL1NWR0ZFTWVyZ2VOb2Rl
RWxlbWVudEltcGwuaAkxIE5vdiAyMDA1IDExOjEzOjE1IC0wMDAwCkBAIC0zMSw3ICszMSw3IEBA
IG5hbWVzcGFjZSBLU1ZHCiAgICAgY2xhc3MgU1ZHRkVNZXJnZU5vZGVFbGVtZW50SW1wbCA6IHB1
YmxpYyBTVkdFbGVtZW50SW1wbAogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0ZFTWVy
Z2VOb2RlRWxlbWVudEltcGwoS0RPTTo6RG9jdW1lbnRQdHIgKmRvYywgS0RPTTo6Tm9kZUltcGw6
OklkIGlkLCBLRE9NOjpET01TdHJpbmdJbXBsICpwcmVmaXgpOworICAgICAgICBTVkdGRU1lcmdl
Tm9kZUVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006
OkRvY3VtZW50UHRyICpkb2MpOwogICAgICAgICB2aXJ0dWFsIH5TVkdGRU1lcmdlTm9kZUVsZW1l
bnRJbXBsKCk7CiAKICAgICAgICAgLy8gRGVyaXZlZCBmcm9tOiAnRWxlbWVudEltcGwnCkluZGV4
OiBrc3ZnMi9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudEltcGwu
Y3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjcKZGlmZiAtcCAtdSAtcjEuNyBrc3ZnMi9zdmcv
U1ZHRkVPZmZzZXRFbGVtZW50SW1wbC5jcHAKLS0tIGtzdmcyL3N2Zy9TVkdGRU9mZnNldEVsZW1l
bnRJbXBsLmNwcAk1IE9jdCAyMDA1IDA1OjM1OjIyIC0wMDAwCTEuNworKysga3N2ZzIvc3ZnL1NW
R0ZFT2Zmc2V0RWxlbWVudEltcGwuY3BwCTEgTm92IDIwMDUgMTE6MTM6MTUgLTAwMDAKQEAgLTMy
LDcgKzMyLDYgQEAKICNpbmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nRGV2aWNlLmg+
CiAjaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQu
aD4KIAotI2luY2x1ZGUgInN2Z2F0dHJzLmgiCiAjaW5jbHVkZSAiU1ZHSGVscGVyLmgiCiAjaW5j
bHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJTVkdGRU9mZnNldEVsZW1lbnRJbXBs
LmgiCkBAIC00Miw4ICs0MSw4IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCi1TVkdGRU9m
ZnNldEVsZW1lbnRJbXBsOjpTVkdGRU9mZnNldEVsZW1lbnRJbXBsKEtET006OkRvY3VtZW50UHRy
ICpkb2MsIEtET006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHJlZml4
KSA6IAotU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzSW1wbChkb2MsIGlkLCBw
cmVmaXgpCitTVkdGRU9mZnNldEVsZW1lbnRJbXBsOjpTVkdGRU9mZnNldEVsZW1lbnRJbXBsKGNv
bnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50UHRyICpkb2Mp
IDogCitTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXNJbXBsKHRhZ05hbWUsIGRv
YykKIHsKICAgICBtX2luMSA9IDA7CiAgICAgbV9keCA9IDA7CkBAIC04MSwzNiArODAsMjEgQEAg
U1ZHQW5pbWF0ZWROdW1iZXJJbXBsICpTVkdGRU9mZnNldEVsZW1lbgogCiB2b2lkIFNWR0ZFT2Zm
c2V0RWxlbWVudEltcGw6OnBhcnNlQXR0cmlidXRlKEtET006OkF0dHJpYnV0ZUltcGwgKmF0dHIp
CiB7Ci0gICAgaW50IGlkID0gKGF0dHItPmlkKCkgJiBOb2RlSW1wbF9JZExvY2FsTWFzayk7CiAg
ICAgS0RPTTo6RE9NU3RyaW5nIHZhbHVlKGF0dHItPnZhbHVlKCkpOwotICAgIHN3aXRjaChpZCkK
LSAgICB7Ci0gICAgICAgIGNhc2UgQVRUUl9EWDoKLSAgICAgICAgewotICAgICAgICAgICAgZHgo
KS0+c2V0QmFzZVZhbCh2YWx1ZS5zdHJpbmcoKS50b0RvdWJsZSgpKTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgQVRUUl9EWToKLSAgICAgICAgewotICAgICAg
ICAgICAgZHkoKS0+c2V0QmFzZVZhbCh2YWx1ZS5zdHJpbmcoKS50b0RvdWJsZSgpKTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgQVRUUl9JTjoKLSAgICAgICAg
ewotICAgICAgICAgICAgaW4xKCktPnNldEJhc2VWYWwodmFsdWUuaGFuZGxlKCkpOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgewotICAg
ICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzSW1wbDo6cGFyc2VB
dHRyaWJ1dGUoYXR0cik7Ci0gICAgICAgIH0KLSAgICB9OworICAgIGlmIChhdHRyLT5uYW1lKCkg
PT0gU1ZHTmFtZXM6OmR4QXR0cikKKyAgICAgICAgZHgoKS0+c2V0QmFzZVZhbCh2YWx1ZS5xc3Ry
aW5nKCkudG9Eb3VibGUoKSk7CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVz
OjpkeUF0dHIpCisgICAgICAgIGR5KCktPnNldEJhc2VWYWwodmFsdWUucXN0cmluZygpLnRvRG91
YmxlKCkpOworICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6aW5BdHRyKQor
ICAgICAgICBpbjEoKS0+c2V0QmFzZVZhbCh2YWx1ZS5pbXBsKCkpOworICAgIGVsc2UKKyAgICAg
ICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzSW1wbDo6cGFyc2VBdHRyaWJ1
dGUoYXR0cik7CiB9CiAKIEtDYW52YXNJdGVtICpTVkdGRU9mZnNldEVsZW1lbnRJbXBsOjpjcmVh
dGVDYW52YXNJdGVtKEtDYW52YXMgKmNhbnZhcywgS1JlbmRlcmluZ1N0eWxlICpzdHlsZSkgY29u
c3QKIHsKICAgICBtX2ZpbHRlckVmZmVjdCA9IHN0YXRpY19jYXN0PEtDYW52YXNGRU9mZnNldCAq
PihjYW52YXMtPnJlbmRlcmluZ0RldmljZSgpLT5jcmVhdGVGaWx0ZXJFZmZlY3QoRkVfT0ZGU0VU
KSk7Ci0gICAgbV9maWx0ZXJFZmZlY3QtPnNldEluKEtET006OkRPTVN0cmluZyhpbjEoKS0+YmFz
ZVZhbCgpKS5zdHJpbmcoKSk7CisgICAgbV9maWx0ZXJFZmZlY3QtPnNldEluKEtET006OkRPTVN0
cmluZyhpbjEoKS0+YmFzZVZhbCgpKS5xc3RyaW5nKCkpOwogICAgIHNldFN0YW5kYXJkQXR0cmli
dXRlcyhtX2ZpbHRlckVmZmVjdCk7CiAgICAgbV9maWx0ZXJFZmZlY3QtPnNldER4KGR4KCktPmJh
c2VWYWwoKSk7CiAgICAgbV9maWx0ZXJFZmZlY3QtPnNldER5KGR5KCktPmJhc2VWYWwoKSk7Cklu
ZGV4OiBrc3ZnMi9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50SW1wbC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnRJbXBs
LmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNApkaWZmIC1wIC11IC1yMS40IGtzdmcyL3N2Zy9T
VkdGRU9mZnNldEVsZW1lbnRJbXBsLmgKLS0tIGtzdmcyL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnRJ
bXBsLmgJMSBTZXAgMjAwNSAwNzozNTo0MSAtMDAwMAkxLjQKKysrIGtzdmcyL3N2Zy9TVkdGRU9m
ZnNldEVsZW1lbnRJbXBsLmgJMSBOb3YgMjAwNSAxMToxMzoxNSAtMDAwMApAQCAtMzYsNyArMzYs
NyBAQCBuYW1lc3BhY2UgS1NWRwogICAgIGNsYXNzIFNWR0ZFT2Zmc2V0RWxlbWVudEltcGwgOiBw
dWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzSW1wbAogICAgIHsKICAg
ICBwdWJsaWM6Ci0gICAgICAgIFNWR0ZFT2Zmc2V0RWxlbWVudEltcGwoS0RPTTo6RG9jdW1lbnRQ
dHIgKmRvYywgS0RPTTo6Tm9kZUltcGw6OklkIGlkLCBLRE9NOjpET01TdHJpbmdJbXBsICpwcmVm
aXgpOworICAgICAgICBTVkdGRU9mZnNldEVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50UHRyICpkb2MpOwogICAgICAgICB2aXJ0dWFs
IH5TVkdGRU9mZnNldEVsZW1lbnRJbXBsKCk7CiAKICAgICAgICAgLy8gJ1NWR0ZFT2Zmc2V0RWxl
bWVudCcgZnVuY3Rpb25zCkluZGV4OiBrc3ZnMi9zdmcvU1ZHRkVUaWxlRWxlbWVudEltcGwuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdG
RVRpbGVFbGVtZW50SW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNgpkaWZmIC1wIC11
IC1yMS42IGtzdmcyL3N2Zy9TVkdGRVRpbGVFbGVtZW50SW1wbC5jcHAKLS0tIGtzdmcyL3N2Zy9T
VkdGRVRpbGVFbGVtZW50SW1wbC5jcHAJNSBPY3QgMjAwNSAwNTozNToyMiAtMDAwMAkxLjYKKysr
IGtzdmcyL3N2Zy9TVkdGRVRpbGVFbGVtZW50SW1wbC5jcHAJMSBOb3YgMjAwNSAxMToxMzoxNSAt
MDAwMApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc0ZpbHRlcnMu
aD4KICNpbmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nRGV2aWNlLmg+CiAKLSNpbmNs
dWRlICJzdmdhdHRycy5oIgogI2luY2x1ZGUgIlNWR0hlbHBlci5oIgogI2luY2x1ZGUgIlNWR1Jl
bmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU1ZHRkVUaWxlRWxlbWVudEltcGwuaCIKQEAgLTM5LDgg
KzM4LDggQEAKIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKLVNWR0ZFVGlsZUVsZW1lbnRJbXBs
OjpTVkdGRVRpbGVFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2Rl
SW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZpeCkgOiAKLVNWR0ZpbHRlclBy
aW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlc0ltcGwoZG9jLCBpZCwgcHJlZml4KQorU1ZHRkVUaWxl
RWxlbWVudEltcGw6OlNWR0ZFVGlsZUVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50UHRyICpkb2MpIDogCitTVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXNJbXBsKHRhZ05hbWUsIGRvYykKIHsKICAgICBtX2luMSA9IDA7
CiAgICAgbV9maWx0ZXJFZmZlY3QgPSAwOwpAQCAtNjAsMjYgKzU5LDE3IEBAIFNWR0FuaW1hdGVk
U3RyaW5nSW1wbCAqU1ZHRkVUaWxlRWxlbWVudEkKIAogdm9pZCBTVkdGRVRpbGVFbGVtZW50SW1w
bDo6cGFyc2VBdHRyaWJ1dGUoS0RPTTo6QXR0cmlidXRlSW1wbCAqYXR0cikKIHsKLSAgICBpbnQg
aWQgPSAoYXR0ci0+aWQoKSAmIE5vZGVJbXBsX0lkTG9jYWxNYXNrKTsKICAgICBLRE9NOjpET01T
dHJpbmcgdmFsdWUoYXR0ci0+dmFsdWUoKSk7Ci0gICAgc3dpdGNoKGlkKQotICAgIHsKLSAgICAg
ICAgY2FzZSBBVFRSX0lOOgotICAgICAgICB7Ci0gICAgICAgICAgICBpbjEoKS0+c2V0QmFzZVZh
bCh2YWx1ZS5oYW5kbGUoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAg
ICBkZWZhdWx0OgotICAgICAgICB7Ci0gICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFu
ZGFyZEF0dHJpYnV0ZXNJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKTsKLSAgICAgICAgfQotICAg
IH07CisgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6aW5BdHRyKQorICAgICAgICBp
bjEoKS0+c2V0QmFzZVZhbCh2YWx1ZS5pbXBsKCkpOworICAgIGVsc2UKKyAgICAgICAgU1ZHRmls
dGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cik7
CiB9CiAKIEtDYW52YXNJdGVtICpTVkdGRVRpbGVFbGVtZW50SW1wbDo6Y3JlYXRlQ2FudmFzSXRl
bShLQ2FudmFzICpjYW52YXMsIEtSZW5kZXJpbmdTdHlsZSAqc3R5bGUpIGNvbnN0CiB7CiAgICAg
bV9maWx0ZXJFZmZlY3QgPSBzdGF0aWNfY2FzdDxLQ2FudmFzRkVUaWxlICo+KGNhbnZhcy0+cmVu
ZGVyaW5nRGV2aWNlKCktPmNyZWF0ZUZpbHRlckVmZmVjdChGRV9USUxFKSk7Ci0gICAgbV9maWx0
ZXJFZmZlY3QtPnNldEluKEtET006OkRPTVN0cmluZyhpbjEoKS0+YmFzZVZhbCgpKS5zdHJpbmco
KSk7CisgICAgbV9maWx0ZXJFZmZlY3QtPnNldEluKEtET006OkRPTVN0cmluZyhpbjEoKS0+YmFz
ZVZhbCgpKS5xc3RyaW5nKCkpOwogICAgIHNldFN0YW5kYXJkQXR0cmlidXRlcyhtX2ZpbHRlckVm
ZmVjdCk7CiAgICAgcmV0dXJuIDA7CiB9CkluZGV4OiBrc3ZnMi9zdmcvU1ZHRkVUaWxlRWxlbWVu
dEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9z
dmcvU1ZHRkVUaWxlRWxlbWVudEltcGwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40CmRpZmYg
LXAgLXUgLXIxLjQga3N2ZzIvc3ZnL1NWR0ZFVGlsZUVsZW1lbnRJbXBsLmgKLS0tIGtzdmcyL3N2
Zy9TVkdGRVRpbGVFbGVtZW50SW1wbC5oCTEgU2VwIDIwMDUgMDc6MzU6NDEgLTAwMDAJMS40Cisr
KyBrc3ZnMi9zdmcvU1ZHRkVUaWxlRWxlbWVudEltcGwuaAkxIE5vdiAyMDA1IDExOjEzOjE1IC0w
MDAwCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBLU1ZHCiAgICAgY2xhc3MgU1ZHRkVUaWxl
RWxlbWVudEltcGwgOiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVz
SW1wbAogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0ZFVGlsZUVsZW1lbnRJbXBsKEtE
T006OkRvY3VtZW50UHRyICpkb2MsIEtET006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3Ry
aW5nSW1wbCAqcHJlZml4KTsKKyAgICAgICAgU1ZHRkVUaWxlRWxlbWVudEltcGwoY29uc3QgS0RP
TTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRvYyk7CiAgICAg
ICAgIHZpcnR1YWwgflNWR0ZFVGlsZUVsZW1lbnRJbXBsKCk7CiAKICAgICAgICAgLy8gJ1NWR0ZF
VGlsZUVsZW1lbnQnIGZ1bmN0aW9ucwpJbmRleDoga3N2ZzIvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVs
ZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9r
c3ZnMi9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudEltcGwuY3BwLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjgKZGlmZiAtcCAtdSAtcjEuOCBrc3ZnMi9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVu
dEltcGwuY3BwCi0tLSBrc3ZnMi9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudEltcGwuY3BwCTUg
T2N0IDIwMDUgMDU6MzU6MjIgLTAwMDAJMS44CisrKyBrc3ZnMi9zdmcvU1ZHRkVUdXJidWxlbmNl
RWxlbWVudEltcGwuY3BwCTEgTm92IDIwMDUgMTE6MTM6MTUgLTAwMDAKQEAgLTMzLDcgKzMzLDYg
QEAKICNpbmNsdWRlIDxrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nUGFpbnRTZXJ2ZXJHcmFkaWVu
dC5oPgogCiAjaW5jbHVkZSAia3N2Zy5oIgotI2luY2x1ZGUgInN2Z2F0dHJzLmgiCiAjaW5jbHVk
ZSAiU1ZHSGVscGVyLmgiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJT
VkdGRVR1cmJ1bGVuY2VFbGVtZW50SW1wbC5oIgpAQCAtNDQsOCArNDMsOCBAQAogCiB1c2luZyBu
YW1lc3BhY2UgS1NWRzsKIAotU1ZHRkVUdXJidWxlbmNlRWxlbWVudEltcGw6OlNWR0ZFVHVyYnVs
ZW5jZUVsZW1lbnRJbXBsKEtET006OkRvY3VtZW50UHRyICpkb2MsIEtET006Ok5vZGVJbXBsOjpJ
ZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHJlZml4KSA6IAotU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzSW1wbChkb2MsIGlkLCBwcmVmaXgpCitTVkdGRVR1cmJ1bGVuY2VF
bGVtZW50SW1wbDo6U1ZHRkVUdXJidWxlbmNlRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRvYykgOiAKK1NWR0ZpbHRlclBy
aW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlc0ltcGwodGFnTmFtZSwgZG9jKQogewogICAgIG1fYmFz
ZUZyZXF1ZW5jeVggPSBtX2Jhc2VGcmVxdWVuY3lZID0gbV9zZWVkID0gMDsKICAgICBtX251bU9j
dGF2ZXMgPSAwOwpAQCAtMTA3LDUyICsxMDYsMzYgQEAgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbklt
cGwgKlNWR0ZFVHVyYnVsZQogCiB2b2lkIFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnRJbXBsOjpwYXJz
ZUF0dHJpYnV0ZShLRE9NOjpBdHRyaWJ1dGVJbXBsICphdHRyKQogewotICAgIGludCBpZCA9IChh
dHRyLT5pZCgpICYgTm9kZUltcGxfSWRMb2NhbE1hc2spOwogICAgIEtET006OkRPTVN0cmluZyB2
YWx1ZShhdHRyLT52YWx1ZSgpKTsKLSAgICBzd2l0Y2goaWQpCisgICAgaWYgKGF0dHItPm5hbWUo
KSA9PSBTVkdOYW1lczo6dHlwZUF0dHIpCiAgICAgewotICAgICAgICBjYXNlIEFUVFJfVFlQRToK
LSAgICAgICAgewotICAgICAgICAgICAgaWYodmFsdWUgPT0gImZyYWN0YWxOb2lzZSIpCi0gICAg
ICAgICAgICAgICAgdHlwZSgpLT5zZXRCYXNlVmFsKFNWR19UVVJCVUxFTkNFX1RZUEVfRlJBQ1RB
TE5PSVNFKTsKLSAgICAgICAgICAgIGVsc2UgaWYodmFsdWUgPT0gInR1cmJ1bGVuY2UiKQotICAg
ICAgICAgICAgICAgIHR5cGUoKS0+c2V0QmFzZVZhbChTVkdfVFVSQlVMRU5DRV9UWVBFX1RVUkJV
TEVOQ0UpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBBVFRS
X1NUSVRDSFRJTEVTOgotICAgICAgICB7Ci0gICAgICAgICAgICBpZih2YWx1ZSA9PSAic3RpdGNo
IikKLSAgICAgICAgICAgICAgICBzdGl0Y2hUaWxlcygpLT5zZXRCYXNlVmFsKFNWR19TVElUQ0hU
WVBFX1NUSVRDSCk7Ci0gICAgICAgICAgICBlbHNlIGlmKHZhbHVlID09ICJub3N0aXRjaCIpCi0g
ICAgICAgICAgICAgICAgc3RpdGNoVGlsZXMoKS0+c2V0QmFzZVZhbChTVkdfU1RJVENIVFlQRV9O
T1NUSVRDSCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIEFU
VFJfQkFTRUZSRVFVRU5DWToKLSAgICAgICAgewotICAgICAgICAgICAgUVN0cmluZ0xpc3QgbnVt
YmVycyA9IFFTdHJpbmdMaXN0OjpzcGxpdCgnICcsIHZhbHVlLnN0cmluZygpKTsKLSAgICAgICAg
ICAgIGJhc2VGcmVxdWVuY3lYKCktPnNldEJhc2VWYWwobnVtYmVyc1swXS50b0RvdWJsZSgpKTsK
LSAgICAgICAgICAgIGlmKG51bWJlcnMuY291bnQoKSA9PSAxKQotICAgICAgICAgICAgICAgIGJh
c2VGcmVxdWVuY3lZKCktPnNldEJhc2VWYWwobnVtYmVyc1swXS50b0RvdWJsZSgpKTsKLSAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBiYXNlRnJlcXVlbmN5WSgpLT5zZXRCYXNlVmFs
KG51bWJlcnNbMV0udG9Eb3VibGUoKSk7Ci0KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9
Ci0gICAgICAgIGNhc2UgQVRUUl9TRUVEOgotICAgICAgICB7Ci0gICAgICAgICAgICBzZWVkKCkt
PnNldEJhc2VWYWwodmFsdWUuc3RyaW5nKCkudG9Eb3VibGUoKSk7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgfQotICAgICAgICBjYXNlIEFUVFJfTlVNT0NUQVZFUzoKLSAgICAgICAgewot
ICAgICAgICAgICAgbnVtT2N0YXZlcygpLT5zZXRCYXNlVmFsKHZhbHVlLnN0cmluZygpLnRvVUlu
dCgpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGRlZmF1bHQ6Ci0g
ICAgICAgIHsKLSAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
c0ltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpOwotICAgICAgICB9Ci0gICAgfTsKKyAgICAgICAg
aWYodmFsdWUgPT0gImZyYWN0YWxOb2lzZSIpCisgICAgICAgICAgICB0eXBlKCktPnNldEJhc2VW
YWwoU1ZHX1RVUkJVTEVOQ0VfVFlQRV9GUkFDVEFMTk9JU0UpOworICAgICAgICBlbHNlIGlmKHZh
bHVlID09ICJ0dXJidWxlbmNlIikKKyAgICAgICAgICAgIHR5cGUoKS0+c2V0QmFzZVZhbChTVkdf
VFVSQlVMRU5DRV9UWVBFX1RVUkJVTEVOQ0UpOworICAgIH0KKyAgICBlbHNlIGlmIChhdHRyLT5u
YW1lKCkgPT0gU1ZHTmFtZXM6OnN0aXRjaHRpbGVzQXR0cikKKyAgICB7CisgICAgICAgIGlmKHZh
bHVlID09ICJzdGl0Y2giKQorICAgICAgICAgICAgc3RpdGNoVGlsZXMoKS0+c2V0QmFzZVZhbChT
VkdfU1RJVENIVFlQRV9TVElUQ0gpOworICAgICAgICBlbHNlIGlmKHZhbHVlID09ICJub3N0aXRj
aCIpCisgICAgICAgICAgICBzdGl0Y2hUaWxlcygpLT5zZXRCYXNlVmFsKFNWR19TVElUQ0hUWVBF
X05PU1RJVENIKTsKKyAgICB9CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVz
OjpiYXNlZnJlcXVlbmN5QXR0cikKKyAgICB7CisgICAgICAgIFFTdHJpbmdMaXN0IG51bWJlcnMg
PSBRU3RyaW5nTGlzdDo6c3BsaXQoJyAnLCB2YWx1ZS5xc3RyaW5nKCkpOworICAgICAgICBiYXNl
RnJlcXVlbmN5WCgpLT5zZXRCYXNlVmFsKG51bWJlcnNbMF0udG9Eb3VibGUoKSk7CisgICAgICAg
IGlmKG51bWJlcnMuY291bnQoKSA9PSAxKQorICAgICAgICAgICAgYmFzZUZyZXF1ZW5jeVkoKS0+
c2V0QmFzZVZhbChudW1iZXJzWzBdLnRvRG91YmxlKCkpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBiYXNlRnJlcXVlbmN5WSgpLT5zZXRCYXNlVmFsKG51bWJlcnNbMV0udG9Eb3VibGUoKSk7
CisgICAgfQorICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6c2VlZEF0dHIp
CisgICAgICAgIHNlZWQoKS0+c2V0QmFzZVZhbCh2YWx1ZS5xc3RyaW5nKCkudG9Eb3VibGUoKSk7
CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjpudW1vY3RhdmVzQXR0cikK
KyAgICAgICAgbnVtT2N0YXZlcygpLT5zZXRCYXNlVmFsKHZhbHVlLnFzdHJpbmcoKS50b1VJbnQo
KSk7CisgICAgZWxzZQorICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXNJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKTsKIH0KIAogS0NhbnZhc0l0ZW0gKlNWR0ZFVHVy
YnVsZW5jZUVsZW1lbnRJbXBsOjpjcmVhdGVDYW52YXNJdGVtKEtDYW52YXMgKmNhbnZhcywgS1Jl
bmRlcmluZ1N0eWxlICpzdHlsZSkgY29uc3QKSW5kZXg6IGtzdmcyL3N2Zy9TVkdGRVR1cmJ1bGVu
Y2VFbGVtZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0
L2tzdmcyL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50SW1wbC5oLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjQKZGlmZiAtcCAtdSAtcjEuNCBrc3ZnMi9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVu
dEltcGwuaAotLS0ga3N2ZzIvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnRJbXBsLmgJMSBTZXAg
MjAwNSAwNzozNTo0MSAtMDAwMAkxLjQKKysrIGtzdmcyL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVt
ZW50SW1wbC5oCTEgTm92IDIwMDUgMTE6MTM6MTYgLTAwMDAKQEAgLTM3LDcgKzM3LDcgQEAgbmFt
ZXNwYWNlIEtTVkcKICAgICBjbGFzcyBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50SW1wbCA6IHB1Ymxp
YyBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXNJbXBsCiAgICAgewogICAgIHB1
YmxpYzoKLSAgICAgICAgU1ZHRkVUdXJidWxlbmNlRWxlbWVudEltcGwoS0RPTTo6RG9jdW1lbnRQ
dHIgKmRvYywgS0RPTTo6Tm9kZUltcGw6OklkIGlkLCBLRE9NOjpET01TdHJpbmdJbXBsICpwcmVm
aXgpOworICAgICAgICBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudFB0ciAqZG9jKTsKICAgICAgICAgdmly
dHVhbCB+U1ZHRkVUdXJidWxlbmNlRWxlbWVudEltcGwoKTsKIAogICAgICAgICAvLyAnU1ZHRkVU
dXJidWxlbmNlRWxlbWVudCcgZnVuY3Rpb25zCkluZGV4OiBrc3ZnMi9zdmcvU1ZHRmlsdGVyRWxl
bWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tz
dmcyL3N2Zy9TVkdGaWx0ZXJFbGVtZW50SW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
NgpkaWZmIC1wIC11IC1yMS42IGtzdmcyL3N2Zy9TVkdGaWx0ZXJFbGVtZW50SW1wbC5jcHAKLS0t
IGtzdmcyL3N2Zy9TVkdGaWx0ZXJFbGVtZW50SW1wbC5jcHAJNSBPY3QgMjAwNSAwNTozNToyMiAt
MDAwMAkxLjYKKysrIGtzdmcyL3N2Zy9TVkdGaWx0ZXJFbGVtZW50SW1wbC5jcHAJMSBOb3YgMjAw
NSAxMToxMzoxNiAtMDAwMApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPGtjYW52YXMvZGV2
aWNlL0tSZW5kZXJpbmdEZXZpY2UuaD4KICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNGaWx0ZXJz
Lmg+CiAjaW5jbHVkZSAia3N2Zy5oIgotI2luY2x1ZGUgInN2Z2F0dHJzLmgiCisjaW5jbHVkZSAi
U1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdIZWxwZXIuaCIKICNpbmNsdWRlICJTVkdEb2N1bWVu
dEltcGwuaCIKICNpbmNsdWRlICJTVkdGaWx0ZXJFbGVtZW50SW1wbC5oIgpAQCAtNDEsOCArNDEs
OCBAQAogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIAotU1ZHRmlsdGVyRWxlbWVudEltcGw6OlNW
R0ZpbHRlckVsZW1lbnRJbXBsKEtET006OkRvY3VtZW50UHRyICpkb2MsIEtET006Ok5vZGVJbXBs
OjpJZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHJlZml4KQotOiBTVkdTdHlsZWRFbGVtZW50
SW1wbChkb2MsIGlkLCBwcmVmaXgpLCBTVkdVUklSZWZlcmVuY2VJbXBsKCksIFNWR0xhbmdTcGFj
ZUltcGwoKSwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwoKQorU1ZHRmlsdGVyRWxl
bWVudEltcGw6OlNWR0ZpbHRlckVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIEtET006OkRvY3VtZW50UHRyICpkb2MpCis6IFNWR1N0eWxlZEVsZW1lbnRJbXBs
KHRhZ05hbWUsIGRvYyksIFNWR1VSSVJlZmVyZW5jZUltcGwoKSwgU1ZHTGFuZ1NwYWNlSW1wbCgp
LCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1wbCgpCiB7CiAgICAgbV9maWx0ZXJVbml0
cyA9IG1fcHJpbWl0aXZlVW5pdHMgPSAwOwogICAgIG1feCA9IG1feSA9IG1fd2lkdGggPSBtX2hl
aWdodCA9IDA7CkBAIC05OCw3ICs5OCw3IEBAIFNWR0FuaW1hdGVkTGVuZ3RoSW1wbCAqU1ZHRmls
dGVyRWxlbWVudEkKICAgICBpZighbV94KQogICAgIHsKICAgICAgICAgIGxhenlfY3JlYXRlPFNW
R0FuaW1hdGVkTGVuZ3RoSW1wbD4obV94LCB0aGlzLCBMTV9XSURUSCwgdmlld3BvcnRFbGVtZW50
KCkpOwotICAgICAgICBtX3gtPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyhLRE9NOjpET01T
dHJpbmcoIi0xMCUiKS5oYW5kbGUoKSk7CisgICAgICAgIG1feC0+YmFzZVZhbCgpLT5zZXRWYWx1
ZUFzU3RyaW5nKEtET006OkRPTVN0cmluZygiLTEwJSIpLmltcGwoKSk7CiAgICAgICAgIHJldHVy
biBtX3g7CiAgICAgfQogCkBAIC0xMTEsNyArMTExLDcgQEAgU1ZHQW5pbWF0ZWRMZW5ndGhJbXBs
ICpTVkdGaWx0ZXJFbGVtZW50SQogICAgIGlmKCFtX3kpCiAgICAgewogICAgICAgICAgbGF6eV9j
cmVhdGU8U1ZHQW5pbWF0ZWRMZW5ndGhJbXBsPihtX3ksIHRoaXMsIExNX0hFSUdIVCwgdmlld3Bv
cnRFbGVtZW50KCkpOwotICAgICAgICBtX3ktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyhL
RE9NOjpET01TdHJpbmcoIi0xMCUiKS5oYW5kbGUoKSk7CisgICAgICAgIG1feS0+YmFzZVZhbCgp
LT5zZXRWYWx1ZUFzU3RyaW5nKEtET006OkRPTVN0cmluZygiLTEwJSIpLmltcGwoKSk7CiAgICAg
ICAgIHJldHVybiBtX3k7CiAgICAgfQogCkBAIC0xMjQsNyArMTI0LDcgQEAgU1ZHQW5pbWF0ZWRM
ZW5ndGhJbXBsICpTVkdGaWx0ZXJFbGVtZW50SQogICAgIGlmKCFtX3dpZHRoKQogICAgIHsKICAg
ICAgICAgIGxhenlfY3JlYXRlPFNWR0FuaW1hdGVkTGVuZ3RoSW1wbD4obV93aWR0aCwgdGhpcywg
TE1fV0lEVEgsIHZpZXdwb3J0RWxlbWVudCgpKTsKLSAgICAgICAgbV93aWR0aC0+YmFzZVZhbCgp
LT5zZXRWYWx1ZUFzU3RyaW5nKEtET006OkRPTVN0cmluZygiMTIwJSIpLmhhbmRsZSgpKTsKKyAg
ICAgICAgbV93aWR0aC0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKEtET006OkRPTVN0cmlu
ZygiMTIwJSIpLmltcGwoKSk7CiAgICAgICAgIHJldHVybiBtX3dpZHRoOwogICAgIH0KIApAQCAt
MTM3LDcgKzEzNyw3IEBAIFNWR0FuaW1hdGVkTGVuZ3RoSW1wbCAqU1ZHRmlsdGVyRWxlbWVudEkK
ICAgICBpZighbV9oZWlnaHQpCiAgICAgewogICAgICAgICAgbGF6eV9jcmVhdGU8U1ZHQW5pbWF0
ZWRMZW5ndGhJbXBsPihtX2hlaWdodCwgdGhpcywgTE1fSEVJR0hULCB2aWV3cG9ydEVsZW1lbnQo
KSk7Ci0gICAgICAgIG1faGVpZ2h0LT5iYXNlVmFsKCktPnNldFZhbHVlQXNTdHJpbmcoS0RPTTo6
RE9NU3RyaW5nKCIxMjAlIikuaGFuZGxlKCkpOworICAgICAgICBtX2hlaWdodC0+YmFzZVZhbCgp
LT5zZXRWYWx1ZUFzU3RyaW5nKEtET006OkRPTVN0cmluZygiMTIwJSIpLmltcGwoKSk7CiAgICAg
ICAgIHJldHVybiBtX2hlaWdodDsKICAgICB9CiAKQEAgLTE2MCw1OCArMTYwLDQwIEBAIHZvaWQg
U1ZHRmlsdGVyRWxlbWVudEltcGw6OnNldEZpbHRlclJlcygKIAogdm9pZCBTVkdGaWx0ZXJFbGVt
ZW50SW1wbDo6cGFyc2VBdHRyaWJ1dGUoS0RPTTo6QXR0cmlidXRlSW1wbCAqYXR0cikKIHsKLSAg
ICBpbnQgaWQgPSAoYXR0ci0+aWQoKSAmIE5vZGVJbXBsX0lkTG9jYWxNYXNrKTsKICAgICBLRE9N
OjpET01TdHJpbmcgdmFsdWUoYXR0ci0+dmFsdWUoKSk7Ci0gICAgc3dpdGNoKGlkKQorICAgIGlm
IChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OmZpbHRlcnVuaXRzQXR0cikKICAgICB7Ci0gICAg
ICAgIGNhc2UgQVRUUl9GSUxURVJVTklUUzoKLSAgICAgICAgewotICAgICAgICAgICAgaWYodmFs
dWUgPT0gInVzZXJTcGFjZU9uVXNlIikKLSAgICAgICAgICAgICAgICBmaWx0ZXJVbml0cygpLT5z
ZXRCYXNlVmFsKFNWR19VTklUX1RZUEVfVVNFUlNQQUNFT05VU0UpOwotICAgICAgICAgICAgZWxz
ZSBpZih2YWx1ZSA9PSAib2JqZWN0Qm91bmRpbmdCb3giKQotICAgICAgICAgICAgICAgIGZpbHRl
clVuaXRzKCktPnNldEJhc2VWYWwoU1ZHX1VOSVRfVFlQRV9PQkpFQ1RCT1VORElOR0JPWCk7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIEFUVFJfUFJJTUlUSVZF
VU5JVFM6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlmKHZhbHVlID09ICJ1c2VyU3BhY2VPblVz
ZSIpCi0gICAgICAgICAgICAgICAgcHJpbWl0aXZlVW5pdHMoKS0+c2V0QmFzZVZhbChTVkdfVU5J
VF9UWVBFX1VTRVJTUEFDRU9OVVNFKTsKLSAgICAgICAgICAgIGVsc2UgaWYodmFsdWUgPT0gIm9i
amVjdEJvdW5kaW5nQm94IikKLSAgICAgICAgICAgICAgICBwcmltaXRpdmVVbml0cygpLT5zZXRC
YXNlVmFsKFNWR19VTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1gpOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBBVFRSX1g6Ci0gICAgICAgIHsKLSAgICAgICAg
ICAgIHgoKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlLmhhbmRsZSgpKTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgQVRUUl9ZOgotICAgICAg
ICB7Ci0gICAgICAgICAgICB5KCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZS5o
YW5kbGUoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIEFU
VFJfV0lEVEg6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHdpZHRoKCktPmJhc2VWYWwoKS0+c2V0
VmFsdWVBc1N0cmluZyh2YWx1ZS5oYW5kbGUoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgfQotICAgICAgICBjYXNlIEFUVFJfSEVJR0hUOgotICAgICAgICB7Ci0gICAgICAgICAgICBo
ZWlnaHQoKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlLmhhbmRsZSgpKTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgIHsK
LSAgICAgICAgICAgIGlmKFNWR1VSSVJlZmVyZW5jZUltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIp
KSByZXR1cm47Ci0gICAgICAgICAgICBpZihTVkdMYW5nU3BhY2VJbXBsOjpwYXJzZUF0dHJpYnV0
ZShhdHRyKSkgcmV0dXJuOwotICAgICAgICAgICAgaWYoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZEltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47CisgICAgICAgIGlmKHZhbHVl
ID09ICJ1c2VyU3BhY2VPblVzZSIpCisgICAgICAgICAgICBmaWx0ZXJVbml0cygpLT5zZXRCYXNl
VmFsKFNWR19VTklUX1RZUEVfVVNFUlNQQUNFT05VU0UpOworICAgICAgICBlbHNlIGlmKHZhbHVl
ID09ICJvYmplY3RCb3VuZGluZ0JveCIpCisgICAgICAgICAgICBmaWx0ZXJVbml0cygpLT5zZXRC
YXNlVmFsKFNWR19VTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1gpOworICAgIH0KKyAgICBlbHNl
IGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnByaW1pdGl2ZXVuaXRzQXR0cikKKyAgICB7
CisgICAgICAgIGlmKHZhbHVlID09ICJ1c2VyU3BhY2VPblVzZSIpCisgICAgICAgICAgICBwcmlt
aXRpdmVVbml0cygpLT5zZXRCYXNlVmFsKFNWR19VTklUX1RZUEVfVVNFUlNQQUNFT05VU0UpOwor
ICAgICAgICBlbHNlIGlmKHZhbHVlID09ICJvYmplY3RCb3VuZGluZ0JveCIpCisgICAgICAgICAg
ICBwcmltaXRpdmVVbml0cygpLT5zZXRCYXNlVmFsKFNWR19VTklUX1RZUEVfT0JKRUNUQk9VTkRJ
TkdCT1gpOworICAgIH0KKyAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnhB
dHRyKQorICAgICAgICB4KCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZS5pbXBs
KCkpOworICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6eUF0dHIpCisgICAg
ICAgIHkoKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlLmltcGwoKSk7CisgICAg
ZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjp3aWR0aEF0dHIpCisgICAgICAgIHdp
ZHRoKCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZS5pbXBsKCkpOworICAgIGVs
c2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6aGVpZ2h0QXR0cikKKyAgICAgICAgaGVp
Z2h0KCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZS5pbXBsKCkpOworICAgIGVs
c2UKKyAgICB7CisgICAgICAgIGlmKFNWR1VSSVJlZmVyZW5jZUltcGw6OnBhcnNlQXR0cmlidXRl
KGF0dHIpKSByZXR1cm47CisgICAgICAgIGlmKFNWR0xhbmdTcGFjZUltcGw6OnBhcnNlQXR0cmli
dXRlKGF0dHIpKSByZXR1cm47CisgICAgICAgIGlmKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWRJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOwogCi0gICAgICAgICAgICBTVkdT
dHlsZWRFbGVtZW50SW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cik7Ci0gICAgICAgIH0KLSAgICB9
OworICAgICAgICBTVkdTdHlsZWRFbGVtZW50SW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cik7Cisg
ICAgfQogfQogCi12b2lkIFNWR0ZpbHRlckVsZW1lbnRJbXBsOjpjbG9zZSgpCit2b2lkIFNWR0Zp
bHRlckVsZW1lbnRJbXBsOjpjbG9zZVJlbmRlcmVyKCkKIHsKICAgICBpZighbV9maWx0ZXIpCiAg
ICAgewpAQCAtMjIwLDcgKzIwMiw3IEBAIHZvaWQgU1ZHRmlsdGVyRWxlbWVudEltcGw6OmNsb3Nl
KCkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBtX2ZpbHRlciA9IHN0YXRpY19jYXN0
PEtDYW52YXNGaWx0ZXIgKj4oX2NhbnZhcy0+cmVuZGVyaW5nRGV2aWNlKCktPmNyZWF0ZVJlc291
cmNlKFJTX0ZJTFRFUikpOwotICAgICAgICBfY2FudmFzLT5yZWdpc3RyeSgpLT5hZGRSZXNvdXJj
ZUJ5SWQoS0RPTTo6RE9NU3RyaW5nKGdldElkKCkpLnN0cmluZygpLCBtX2ZpbHRlcik7CisgICAg
ICAgIF9jYW52YXMtPnJlZ2lzdHJ5KCktPmFkZFJlc291cmNlQnlJZChnZXRBdHRyaWJ1dGUoImlk
IikucXN0cmluZygpLCBtX2ZpbHRlcik7CiAgICAgfQogCiAgICAgYm9vbCBmaWx0ZXJCQm94TW9k
ZSA9IGZpbHRlclVuaXRzKCktPmJhc2VWYWwoKSA9PSBTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5E
SU5HQk9YOwpJbmRleDoga3N2ZzIvc3ZnL1NWR0ZpbHRlckVsZW1lbnRJbXBsLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvc3ZnL1NWR0ZpbHRlckVsZW1l
bnRJbXBsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNApkaWZmIC1wIC11IC1yMS40IGtzdmcy
L3N2Zy9TVkdGaWx0ZXJFbGVtZW50SW1wbC5oCi0tLSBrc3ZnMi9zdmcvU1ZHRmlsdGVyRWxlbWVu
dEltcGwuaAkxIFNlcCAyMDA1IDA3OjM1OjQxIC0wMDAwCTEuNAorKysga3N2ZzIvc3ZnL1NWR0Zp
bHRlckVsZW1lbnRJbXBsLmgJMSBOb3YgMjAwNSAxMToxMzoxNiAtMDAwMApAQCAtNDIsMTEgKzQy
LDExIEBAIG5hbWVzcGFjZSBLU1ZHCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwKICAgICB7CiAgICAgcHVibGlj
OgotICAgICAgICBTVkdGaWx0ZXJFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBL
RE9NOjpOb2RlSW1wbDo6SWQgaWQsICBLRE9NOjpET01TdHJpbmdJbXBsICpwcmVmaXgpOworICAg
ICAgICBTVkdGaWx0ZXJFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBLRE9NOjpEb2N1bWVudFB0ciAqZG9jKTsKICAgICAgICAgdmlydHVhbCB+U1ZHRmlsdGVy
RWxlbWVudEltcGwoKTsKIAogICAgICAgICAvLyBEZXJpdmVkIGZyb206ICdFbGVtZW50SW1wbCcK
LSAgICAgICAgdmlydHVhbCB2b2lkIGNsb3NlKCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBjbG9z
ZVJlbmRlcmVyKCk7CiAKICAgICAgICAgLy8gJ1NWR0ZpbHRlckVsZW1lbnQnIGZ1bmN0aW9ucwog
ICAgICAgICBTVkdBbmltYXRlZEVudW1lcmF0aW9uSW1wbCAqZmlsdGVyVW5pdHMoKSBjb25zdDsK
SW5kZXg6IGtzdmcyL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXNJbXBs
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcv
U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzSW1wbC5jcHAsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuNwpkaWZmIC1wIC11IC1yMS43IGtzdmcyL3N2Zy9TVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXNJbXBsLmNwcAotLS0ga3N2ZzIvc3ZnL1NWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlc0ltcGwuY3BwCTUgT2N0IDIwMDUgMDU6MzU6MjIgLTAwMDAJ
MS43CisrKyBrc3ZnMi9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzSW1w
bC5jcHAJMSBOb3YgMjAwNSAxMToxMzoxNiAtMDAwMApAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1
ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgogCiAjaW5jbHVkZSAia3N2Zy5oIgotI2luY2x1ZGUg
InN2Z2F0dHJzLmgiCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdGaWx0ZXJQ
cmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXNJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvbkltcGwuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZ0ltcGwuaCIKQEAg
LTM2LDggKzM2LDggQEAKIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKLVNWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlc0ltcGw6OlNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlc0ltcGwoS0RPTTo6RG9jdW1lbnRQdHIgKmRvYywgS0RPTTo6Tm9kZUltcGw6OklkIGlk
LCBLRE9NOjpET01TdHJpbmdJbXBsICpwcmVmaXgpCi06IFNWR1N0eWxlZEVsZW1lbnRJbXBsKGRv
YywgaWQsIHByZWZpeCkKK1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlc0ltcGw6
OlNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlc0ltcGwoY29uc3QgS0RPTTo6UXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRvYykKKzogU1ZHU3R5bGVk
RWxlbWVudEltcGwodGFnTmFtZSwgZG9jKQogewogICAgIG1feCA9IG1feSA9IG1fd2lkdGggPSBt
X2hlaWdodCA9IDA7CiAgICAgbV9yZXN1bHQgPSAwOwpAQCAtNzUsNyArNzUsNyBAQCBTVkdBbmlt
YXRlZExlbmd0aEltcGwgKlNWR0ZpbHRlclByaW1pdGl2CiAgICAgaWYoIW1fd2lkdGgpCiAgICAg
ewogICAgICAgICBsYXp5X2NyZWF0ZTxTVkdBbmltYXRlZExlbmd0aEltcGw+KG1fd2lkdGgsIHRo
aXMsIExNX1dJRFRIKTsKLSAgICAgICAgbV93aWR0aC0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3Ry
aW5nKEtET006OkRPTVN0cmluZygiMTAwJSIpLmhhbmRsZSgpKTsKKyAgICAgICAgbV93aWR0aC0+
YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKEtET006OkRPTVN0cmluZygiMTAwJSIpLmltcGwo
KSk7CiAgICAgICAgIHJldHVybiBtX3dpZHRoOwogICAgIH0KIApAQCAtODgsNyArODgsNyBAQCBT
VkdBbmltYXRlZExlbmd0aEltcGwgKlNWR0ZpbHRlclByaW1pdGl2CiAgICAgaWYoIW1faGVpZ2h0
KQogICAgIHsKICAgICAgICAgbGF6eV9jcmVhdGU8U1ZHQW5pbWF0ZWRMZW5ndGhJbXBsPihtX2hl
aWdodCwgdGhpcywgTE1fSEVJR0hUKTsKLSAgICAgICAgbV9oZWlnaHQtPmJhc2VWYWwoKS0+c2V0
VmFsdWVBc1N0cmluZyhLRE9NOjpET01TdHJpbmcoIjEwMCUiKS5oYW5kbGUoKSk7CisgICAgICAg
IG1faGVpZ2h0LT5iYXNlVmFsKCktPnNldFZhbHVlQXNTdHJpbmcoS0RPTTo6RE9NU3RyaW5nKCIx
MDAlIikuaW1wbCgpKTsKICAgICAgICAgcmV0dXJuIG1faGVpZ2h0OwogICAgIH0KIApAQCAtMTAy
LDQ4ICsxMDIsMjYgQEAgU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsICpTVkdGaWx0ZXJQcmltaXRpdgog
CiB2b2lkIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlc0ltcGw6OnBhcnNlQXR0
cmlidXRlKEtET006OkF0dHJpYnV0ZUltcGwgKmF0dHIpCiB7Ci0gICAgaW50IGlkID0gKGF0dHIt
PmlkKCkgJiBOb2RlSW1wbF9JZExvY2FsTWFzayk7Ci0gICAgS0RPTTo6RE9NU3RyaW5nSW1wbCAq
dmFsdWUgPSBhdHRyLT52YWx1ZSgpOwotICAgIHN3aXRjaChpZCkKLSAgICB7Ci0gICAgICAgIGNh
c2UgQVRUUl9YOgotICAgICAgICB7Ci0gICAgICAgICAgICB4KCktPmJhc2VWYWwoKS0+c2V0VmFs
dWVBc1N0cmluZyh2YWx1ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAg
ICBjYXNlIEFUVFJfWToKLSAgICAgICAgewotICAgICAgICAgICAgeSgpLT5iYXNlVmFsKCktPnNl
dFZhbHVlQXNTdHJpbmcodmFsdWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAg
ICAgICAgY2FzZSBBVFRSX1dJRFRIOgotICAgICAgICB7Ci0gICAgICAgICAgICB3aWR0aCgpLT5i
YXNlVmFsKCktPnNldFZhbHVlQXNTdHJpbmcodmFsdWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIH0KLSAgICAgICAgY2FzZSBBVFRSX0hFSUdIVDoKLSAgICAgICAgewotICAgICAgICAg
ICAgaGVpZ2h0KCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIEFUVFJfUkVTVUxUOgotICAgICAg
ICB7Ci0gICAgICAgICAgICByZXN1bHQoKS0+c2V0QmFzZVZhbCh2YWx1ZSk7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBkZWZhdWx0OgotICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gU1ZHU3R5bGVkRWxlbWVudEltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpOwot
ICAgICAgICB9Ci0gICAgfTsKLQorICAgIGNvbnN0IEtET006OkF0b21pY1N0cmluZyYgdmFsdWUg
PSBhdHRyLT52YWx1ZSgpOworICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnhBdHRy
KQorICAgICAgICB4KCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZS5pbXBsKCkp
OworICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6eUF0dHIpCisgICAgICAg
IHkoKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlLmltcGwoKSk7CisgICAgZWxz
ZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjp3aWR0aEF0dHIpCisgICAgICAgIHdpZHRo
KCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZS5pbXBsKCkpOworICAgIGVsc2Ug
aWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6aGVpZ2h0QXR0cikKKyAgICAgICAgaGVpZ2h0
KCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZS5pbXBsKCkpOworICAgIGVsc2Ug
aWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6cmVzdWx0QXR0cikKKyAgICAgICAgcmVzdWx0
KCktPnNldEJhc2VWYWwodmFsdWUuaW1wbCgpKTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiBT
VkdTdHlsZWRFbGVtZW50SW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cik7CiB9CiAKIHZvaWQgU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzSW1wbDo6c2V0U3RhbmRhcmRBdHRyaWJ1
dGVzKEtDYW52YXNGaWx0ZXJFZmZlY3QgKmZpbHRlckVmZmVjdCkgY29uc3QKIHsKICAgICBpZiAo
IWZpbHRlckVmZmVjdCkgcmV0dXJuOwogICAgIGJvb2wgYmJveCA9IGZhbHNlOwotICAgIGlmKHBh
cmVudE5vZGUoKSAmJiBwYXJlbnROb2RlKCktPmlkKCkgPT0gSURfRklMVEVSKQorICAgIGlmKHBh
cmVudE5vZGUoKSAmJiBwYXJlbnROb2RlKCktPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZpbHRlclRh
ZykpCiAgICAgICAgIGJib3ggPSBzdGF0aWNfY2FzdDxTVkdGaWx0ZXJFbGVtZW50SW1wbCAqPihw
YXJlbnROb2RlKCkpLT5wcmltaXRpdmVVbml0cygpLT5iYXNlVmFsKCkgPT0gU1ZHX1VOSVRfVFlQ
RV9PQkpFQ1RCT1VORElOR0JPWDsKIAogICAgIHgoKS0+YmFzZVZhbCgpLT5zZXRCYm94UmVsYXRp
dmUoYmJveCk7CkBAIC0xNTcsNyArMTM1LDcgQEAgdm9pZCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFu
ZGFyZEF0dHJpYnV0ZQogICAgIGVsc2UKICAgICAgICAgZmlsdGVyRWZmZWN0LT5zZXRTdWJSZWdp
b24oUVJlY3QoaW50KF94KSwgaW50KF95KSwgaW50KF93aWR0aCksIGludChfaGVpZ2h0KSkpOwog
Ci0gICAgZmlsdGVyRWZmZWN0LT5zZXRSZXN1bHQoS0RPTTo6RE9NU3RyaW5nKHJlc3VsdCgpLT5i
YXNlVmFsKCkpLnN0cmluZygpKTsKKyAgICBmaWx0ZXJFZmZlY3QtPnNldFJlc3VsdChLRE9NOjpE
T01TdHJpbmcocmVzdWx0KCktPmJhc2VWYWwoKSkucXN0cmluZygpKTsKIH0KIAogLy8gdmltOnRz
PTQ6bm9ldApJbmRleDoga3N2ZzIvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlc0ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3Zn
Mi9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzSW1wbC5oLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjQKZGlmZiAtcCAtdSAtcjEuNCBrc3ZnMi9zdmcvU1ZHRmlsdGVyUHJp
bWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzSW1wbC5oCi0tLSBrc3ZnMi9zdmcvU1ZHRmlsdGVyUHJp
bWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzSW1wbC5oCTEgU2VwIDIwMDUgMDc6MzU6NDIgLTAwMDAJ
MS40CisrKyBrc3ZnMi9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzSW1w
bC5oCTEgTm92IDIwMDUgMTE6MTM6MTYgLTAwMDAKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNl
IEtTVkcKICAgICBjbGFzcyBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXNJbXBs
IDogcHVibGljIFNWR1N0eWxlZEVsZW1lbnRJbXBsCiAgICAgewogICAgIHB1YmxpYzoKLSAgICAg
ICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzSW1wbChLRE9NOjpEb2N1bWVu
dFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnBy
ZWZpeCk7CisgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlc0ltcGwo
Y29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRv
Yyk7CiAgICAgICAgIHZpcnR1YWwgflNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
c0ltcGwoKTsKIAogICAgICAgICAvLyAnU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzJyBmdW5jdGlvbnMKSW5kZXg6IGtzdmcyL3N2Zy9TVkdGaXRUb1ZpZXdCb3hJbXBsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHRml0
VG9WaWV3Qm94SW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNwpkaWZmIC1wIC11IC1y
MS43IGtzdmcyL3N2Zy9TVkdGaXRUb1ZpZXdCb3hJbXBsLmNwcAotLS0ga3N2ZzIvc3ZnL1NWR0Zp
dFRvVmlld0JveEltcGwuY3BwCTUgT2N0IDIwMDUgMDU6MzU6MjIgLTAwMDAJMS43CisrKyBrc3Zn
Mi9zdmcvU1ZHRml0VG9WaWV3Qm94SW1wbC5jcHAJMSBOb3YgMjAwNSAxMToxMzoxNiAtMDAwMApA
QCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgogI2luY2x1
ZGUgPGtkb20vY29yZS9ET01TdHJpbmdJbXBsLmg+CiAKLSNpbmNsdWRlICJzdmdhdHRycy5oIgor
I2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHUmVjdEltcGwuaCIKICNpbmNsdWRl
ICJTVkdTVkdFbGVtZW50SW1wbC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUmVjdEltcGwuaCIK
QEAgLTc3LDcgKzc3LDcgQEAgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvSW1wbCAqU1ZH
Rgogdm9pZCBTVkdGaXRUb1ZpZXdCb3hJbXBsOjpwYXJzZVZpZXdCb3goS0RPTTo6RE9NU3RyaW5n
SW1wbCAqc3RyKQogewogICAgIC8vIGFsbG93IGZvciB2aWV3Ym94IGRlZiB3aXRoICcsJyBvciB3
aGl0ZXNwYWNlCi0gICAgUVN0cmluZyB2aWV3Ym94KHN0ci0+dW5pY29kZSgpLCBzdHItPmxlbmd0
aCgpKTsKKyAgICBRU3RyaW5nIHZpZXdib3ggPSBLRE9NOjpET01TdHJpbmcoc3RyKS5xc3RyaW5n
KCk7CiAgICAgUVN0cmluZ0xpc3QgcG9pbnRzID0gUVN0cmluZ0xpc3Q6OnNwbGl0KCcgJywgdmll
d2JveC5yZXBsYWNlKCcsJywgJyAnKS5zaW1wbGlmeVdoaXRlU3BhY2UoKSk7CiAKICAgICBpZiAo
cG9pbnRzLmNvdW50KCkgPT0gNCkgewpAQCAtMTAzLDE5ICsxMDMsMTUgQEAgU1ZHTWF0cml4SW1w
bCAqU1ZHRml0VG9WaWV3Qm94SW1wbDo6dmlldwogCiBib29sIFNWR0ZpdFRvVmlld0JveEltcGw6
OnBhcnNlQXR0cmlidXRlKEtET006OkF0dHJpYnV0ZUltcGwgKmF0dHIpCiB7Ci0gICAgaW50IGlk
ID0gKGF0dHItPmlkKCkgJiBOb2RlSW1wbF9JZExvY2FsTWFzayk7Ci0gICAgc3dpdGNoKGlkKQor
ICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnZpZXdib3hBdHRyKQogICAgIHsKLSAg
ICAgICAgY2FzZSBBVFRSX1ZJRVdCT1g6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHBhcnNlVmll
d0JveChhdHRyLT52YWx1ZSgpKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9
Ci0gICAgICAgIGNhc2UgQVRUUl9QUkVTRVJWRUFTUEVDVFJBVElPOgotICAgICAgICB7Ci0gICAg
ICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvKCktPmJhc2VWYWwoKS0+cGFyc2VQcmVzZXJ2ZUFz
cGVjdFJhdGlvKGF0dHItPnZhbHVlKCkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
ICAgIH0KKyAgICAgICAgcGFyc2VWaWV3Qm94KGF0dHItPnZhbHVlKCkuaW1wbCgpKTsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdO
YW1lczo6cHJlc2VydmVhc3BlY3RyYXRpb0F0dHIpCisgICAgeworICAgICAgICBwcmVzZXJ2ZUFz
cGVjdFJhdGlvKCktPmJhc2VWYWwoKS0+cGFyc2VQcmVzZXJ2ZUFzcGVjdFJhdGlvKGF0dHItPnZh
bHVlKCkuaW1wbCgpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAgcmV0dXJu
IGZhbHNlOwpJbmRleDoga3N2ZzIvc3ZnL1NWR0dFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvc3ZnL1NWR0dFbGVtZW50SW1wbC5j
cHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNQpkaWZmIC1wIC11IC1yMS41IGtzdmcyL3N2Zy9T
VkdHRWxlbWVudEltcGwuY3BwCi0tLSBrc3ZnMi9zdmcvU1ZHR0VsZW1lbnRJbXBsLmNwcAk1IE9j
dCAyMDA1IDA1OjM1OjIzIC0wMDAwCTEuNQorKysga3N2ZzIvc3ZnL1NWR0dFbGVtZW50SW1wbC5j
cHAJMSBOb3YgMjAwNSAxMToxMzoxNiAtMDAwMApAQCAtMzAsNyArMzAsNyBAQAogCiB1c2luZyBu
YW1lc3BhY2UgS1NWRzsKIAotU1ZHR0VsZW1lbnRJbXBsOjpTVkdHRWxlbWVudEltcGwoS0RPTTo6
RG9jdW1lbnRQdHIgKmRvYywgS0RPTTo6Tm9kZUltcGw6OklkIGlkLCBLRE9NOjpET01TdHJpbmdJ
bXBsICpwcmVmaXgpIDogU1ZHU3R5bGVkRWxlbWVudEltcGwoZG9jLCBpZCwgcHJlZml4KSwgU1ZH
VGVzdHNJbXBsKCksIFNWR0xhbmdTcGFjZUltcGwoKSwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZEltcGwoKSwgU1ZHVHJhbnNmb3JtYWJsZUltcGwoKQorU1ZHR0VsZW1lbnRJbXBsOjpTVkdH
RWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9j
dW1lbnRQdHIgKmRvYykgOiBTVkdTdHlsZWRFbGVtZW50SW1wbCh0YWdOYW1lLCBkb2MpLCBTVkdU
ZXN0c0ltcGwoKSwgU1ZHTGFuZ1NwYWNlSW1wbCgpLCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkSW1wbCgpLCBTVkdUcmFuc2Zvcm1hYmxlSW1wbCgpCiB7CiB9CiAKQEAgLTYxLDcgKzYxLDcg
QEAgS0NhbnZhc0l0ZW0gKlNWR0dFbGVtZW50SW1wbDo6Y3JlYXRlQ2FudgogfQogCiAvLyBIZWxw
ZXIgY2xhc3MgZm9yIDx1c2U+IHN1cHBvcnQKLVNWR0R1bW15RWxlbWVudEltcGw6OlNWR0R1bW15
RWxlbWVudEltcGwoS0RPTTo6RG9jdW1lbnRQdHIgKmRvYywgS0RPTTo6Tm9kZUltcGw6OklkLCBL
RE9NOjpET01TdHJpbmdJbXBsICpwcmVmaXgpIDogU1ZHR0VsZW1lbnRJbXBsKGRvYywgMCwgcHJl
Zml4KQorU1ZHRHVtbXlFbGVtZW50SW1wbDo6U1ZHRHVtbXlFbGVtZW50SW1wbChjb25zdCBLRE9N
OjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudFB0ciAqZG9jKSA6IFNWR0dF
bGVtZW50SW1wbCh0YWdOYW1lLCBkb2MpLCAgbV9sb2NhbE5hbWUoImR1bW15IikKIHsKIH0KIApA
QCAtNjksOSArNjksOSBAQCBTVkdEdW1teUVsZW1lbnRJbXBsOjp+U1ZHRHVtbXlFbGVtZW50SW1w
CiB7CiB9CiAKLUtET006OkRPTVN0cmluZ0ltcGwgKlNWR0R1bW15RWxlbWVudEltcGw6OmxvY2Fs
TmFtZSgpIGNvbnN0Citjb25zdCBLRE9NOjpBdG9taWNTdHJpbmcmIFNWR0R1bW15RWxlbWVudElt
cGw6OmxvY2FsTmFtZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG5ldyBLRE9NOjpET01TdHJpbmdJ
bXBsKCJkdW1teSIpOworICAgIHJldHVybiBtX2xvY2FsTmFtZTsKIH0KIAogLy8gdmltOnRzPTQ6
bm9ldApJbmRleDoga3N2ZzIvc3ZnL1NWR0dFbGVtZW50SW1wbC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdHRWxlbWVudEltcGwuaCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS40CmRpZmYgLXAgLXUgLXIxLjQga3N2ZzIvc3ZnL1NWR0dFbGVt
ZW50SW1wbC5oCi0tLSBrc3ZnMi9zdmcvU1ZHR0VsZW1lbnRJbXBsLmgJMSBTZXAgMjAwNSAwNzoz
NTo0MiAtMDAwMAkxLjQKKysrIGtzdmcyL3N2Zy9TVkdHRWxlbWVudEltcGwuaAkxIE5vdiAyMDA1
IDExOjEzOjE2IC0wMDAwCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBLU1ZHCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1RyYW5zZm9ybWFibGVJbXBsCiAgICAgewog
ICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHR0VsZW1lbnRJbXBsKEtET006OkRvY3VtZW50UHRyICpk
b2MsIEtET006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHJlZml4KTsK
KyAgICAgICAgU1ZHR0VsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIEtET006OkRvY3VtZW50UHRyICpkb2MpOwogICAgICAgICB2aXJ0dWFsIH5TVkdHRWxlbWVu
dEltcGwoKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoS0RPTTo6QXR0
cmlidXRlSW1wbCAqYXR0cik7CkBAIC01MiwxMSArNTIsMTMgQEAgbmFtZXNwYWNlIEtTVkcKICAg
ICBjbGFzcyBTVkdEdW1teUVsZW1lbnRJbXBsIDogcHVibGljIFNWR0dFbGVtZW50SW1wbAogICAg
IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0R1bW15RWxlbWVudEltcGwoS0RPTTo6RG9jdW1l
bnRQdHIgKmRvYywgS0RPTTo6Tm9kZUltcGw6OklkIGlkLCBLRE9NOjpET01TdHJpbmdJbXBsICpw
cmVmaXgpOworICAgICAgICBTVkdEdW1teUVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50UHRyICpkb2MpOwogICAgICAgICB2aXJ0dWFs
IH5TVkdEdW1teUVsZW1lbnRJbXBsKCk7CiAKICAgICAgICAgLy8gRGVyaXZlZCBmcm9tOiAnRWxl
bWVudEltcGwnCi0gICAgICAgIHZpcnR1YWwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqbG9jYWxOYW1l
KCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgY29uc3QgS0RPTTo6QXRvbWljU3RyaW5nJiBsb2Nh
bE5hbWUoKSBjb25zdDsKKyAgICBwcml2YXRlOgorICAgICAgICBLRE9NOjpBdG9taWNTdHJpbmcg
bV9sb2NhbE5hbWU7CiAgICAgfTsKIH07CiAKSW5kZXg6IGtzdmcyL3N2Zy9TVkdHcmFkaWVudEVs
ZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9r
c3ZnMi9zdmcvU1ZHR3JhZGllbnRFbGVtZW50SW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuNwpkaWZmIC1wIC11IC1yMS43IGtzdmcyL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnRJbXBsLmNw
cAotLS0ga3N2ZzIvc3ZnL1NWR0dyYWRpZW50RWxlbWVudEltcGwuY3BwCTUgT2N0IDIwMDUgMDU6
MzU6MjMgLTAwMDAJMS43CisrKyBrc3ZnMi9zdmcvU1ZHR3JhZGllbnRFbGVtZW50SW1wbC5jcHAJ
MSBOb3YgMjAwNSAxMToxMzoxNiAtMDAwMApAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgPGtk
b20vY29yZS9BdHRySW1wbC5oPgogCiAjaW5jbHVkZSAia3N2Zy5oIgotI2luY2x1ZGUgInN2Z2F0
dHJzLmgiCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdIZWxwZXIuaCIKICNp
bmNsdWRlICJTVkdEb2N1bWVudEltcGwuaCIKICNpbmNsdWRlICJTVkdUcmFuc2Zvcm1hYmxlSW1w
bC5oIgpAQCAtNDAsNyArNDAsNyBAQAogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIAotU1ZHR3Jh
ZGllbnRFbGVtZW50SW1wbDo6U1ZHR3JhZGllbnRFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0
ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZp
eCkgOiBTVkdTdHlsZWRFbGVtZW50SW1wbChkb2MsIGlkLCBwcmVmaXgpLCBTVkdVUklSZWZlcmVu
Y2VJbXBsKCksIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsKCkKK1NWR0dyYWRpZW50
RWxlbWVudEltcGw6OlNWR0dyYWRpZW50RWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRvYykgOiBTVkdTdHlsZWRFbGVtZW50
SW1wbCh0YWdOYW1lLCBkb2MpLCBTVkdVUklSZWZlcmVuY2VJbXBsKCksIFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWRJbXBsKCkKIHsKICAgICBtX3NwcmVhZE1ldGhvZCA9IDA7CiAgICAgbV9n
cmFkaWVudFVuaXRzID0gMDsKQEAgLTgwLDQyICs4MCwzNSBAQCBTVkdBbmltYXRlZEVudW1lcmF0
aW9uSW1wbCAqU1ZHR3JhZGllbnRFCiAKIHZvaWQgU1ZHR3JhZGllbnRFbGVtZW50SW1wbDo6cGFy
c2VBdHRyaWJ1dGUoS0RPTTo6QXR0cmlidXRlSW1wbCAqYXR0cikKIHsKLSAgICBpbnQgaWQgPSAo
YXR0ci0+aWQoKSAmIE5vZGVJbXBsX0lkTG9jYWxNYXNrKTsKICAgICBLRE9NOjpET01TdHJpbmcg
dmFsdWUoYXR0ci0+dmFsdWUoKSk7Ci0gICAgc3dpdGNoKGlkKQorICAgIGlmIChhdHRyLT5uYW1l
KCkgPT0gU1ZHTmFtZXM6OmdyYWRpZW50dW5pdHNBdHRyKQogICAgIHsKLSAgICAgICAgY2FzZSBB
VFRSX0dSQURJRU5UVU5JVFM6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlmKHZhbHVlID09ICJ1
c2VyU3BhY2VPblVzZSIpCi0gICAgICAgICAgICAgICAgZ3JhZGllbnRVbml0cygpLT5zZXRCYXNl
VmFsKFNWR19VTklUX1RZUEVfVVNFUlNQQUNFT05VU0UpOwotICAgICAgICAgICAgZWxzZSBpZih2
YWx1ZSA9PSAib2JqZWN0Qm91bmRpbmdCb3giKQotICAgICAgICAgICAgICAgIGdyYWRpZW50VW5p
dHMoKS0+c2V0QmFzZVZhbChTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9YKTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgQVRUUl9HUkFESUVOVFRSQU5T
Rk9STToKLSAgICAgICAgewotICAgICAgICAgICAgU1ZHVHJhbnNmb3JtTGlzdEltcGwgKmdyYWRp
ZW50VHJhbnNmb3JtcyA9IGdyYWRpZW50VHJhbnNmb3JtKCktPmJhc2VWYWwoKTsKLSAgICAgICAg
ICAgIFNWR1RyYW5zZm9ybWFibGVJbXBsOjpwYXJzZVRyYW5zZm9ybUF0dHJpYnV0ZShncmFkaWVu
dFRyYW5zZm9ybXMsIGF0dHItPnZhbHVlKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IH0KLSAgICAgICAgY2FzZSBBVFRSX1NQUkVBRE1FVEhPRDoKLSAgICAgICAgewotICAgICAgICAg
ICAgaWYodmFsdWUgPT0gInJlZmxlY3QiKQotICAgICAgICAgICAgICAgIHNwcmVhZE1ldGhvZCgp
LT5zZXRCYXNlVmFsKFNWR19TUFJFQURNRVRIT0RfUkVGTEVDVCk7Ci0gICAgICAgICAgICBlbHNl
IGlmKHZhbHVlID09ICJyZXBlYXQiKQotICAgICAgICAgICAgICAgIHNwcmVhZE1ldGhvZCgpLT5z
ZXRCYXNlVmFsKFNWR19TUFJFQURNRVRIT0RfUkVQRUFUKTsKLSAgICAgICAgICAgIGVsc2UgaWYo
dmFsdWUgPT0gInBhZCIpCi0gICAgICAgICAgICAgICAgc3ByZWFkTWV0aG9kKCktPnNldEJhc2VW
YWwoU1ZHX1NQUkVBRE1FVEhPRF9QQUQpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0K
LSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgewotICAgICAgICAgICAgaWYoU1ZHVVJJUmVmZXJl
bmNlSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsKLSAgICAgICAgICAgIGlmKFNW
R0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0
dXJuOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBTVkdTdHlsZWRFbGVtZW50SW1wbDo6cGFy
c2VBdHRyaWJ1dGUoYXR0cik7Ci0gICAgICAgIH0KLSAgICB9OworICAgICAgICBpZih2YWx1ZSA9
PSAidXNlclNwYWNlT25Vc2UiKQorICAgICAgICAgICAgZ3JhZGllbnRVbml0cygpLT5zZXRCYXNl
VmFsKFNWR19VTklUX1RZUEVfVVNFUlNQQUNFT05VU0UpOworICAgICAgICBlbHNlIGlmKHZhbHVl
ID09ICJvYmplY3RCb3VuZGluZ0JveCIpCisgICAgICAgICAgICBncmFkaWVudFVuaXRzKCktPnNl
dEJhc2VWYWwoU1ZHX1VOSVRfVFlQRV9PQkpFQ1RCT1VORElOR0JPWCk7CisgICAgfQorICAgIGVs
c2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6Z3JhZGllbnR0cmFuc2Zvcm1BdHRyKQor
ICAgIHsKKyAgICAgICAgU1ZHVHJhbnNmb3JtTGlzdEltcGwgKmdyYWRpZW50VHJhbnNmb3JtcyA9
IGdyYWRpZW50VHJhbnNmb3JtKCktPmJhc2VWYWwoKTsKKyAgICAgICAgU1ZHVHJhbnNmb3JtYWJs
ZUltcGw6OnBhcnNlVHJhbnNmb3JtQXR0cmlidXRlKGdyYWRpZW50VHJhbnNmb3JtcywgYXR0ci0+
dmFsdWUoKS5pbXBsKCkpOworICAgIH0KKyAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZH
TmFtZXM6OnNwcmVhZG1ldGhvZEF0dHIpCisgICAgeworICAgICAgICBpZih2YWx1ZSA9PSAicmVm
bGVjdCIpCisgICAgICAgICAgICBzcHJlYWRNZXRob2QoKS0+c2V0QmFzZVZhbChTVkdfU1BSRUFE
TUVUSE9EX1JFRkxFQ1QpOworICAgICAgICBlbHNlIGlmKHZhbHVlID09ICJyZXBlYXQiKQorICAg
ICAgICAgICAgc3ByZWFkTWV0aG9kKCktPnNldEJhc2VWYWwoU1ZHX1NQUkVBRE1FVEhPRF9SRVBF
QVQpOworICAgICAgICBlbHNlIGlmKHZhbHVlID09ICJwYWQiKQorICAgICAgICAgICAgc3ByZWFk
TWV0aG9kKCktPnNldEJhc2VWYWwoU1ZHX1NQUkVBRE1FVEhPRF9QQUQpOworICAgIH0KKyAgICBl
bHNlCisgICAgeworICAgICAgICBpZihTVkdVUklSZWZlcmVuY2VJbXBsOjpwYXJzZUF0dHJpYnV0
ZShhdHRyKSkgcmV0dXJuOworICAgICAgICBpZihTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
SW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIFNW
R1N0eWxlZEVsZW1lbnRJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKTsKKyAgICB9CiB9CiAKIHZv
aWQgU1ZHR3JhZGllbnRFbGVtZW50SW1wbDo6bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCkgY29uc3QK
QEAgLTEyOCw3ICsxMjEsNyBAQCB2b2lkIFNWR0dyYWRpZW50RWxlbWVudEltcGw6Om5vdGlmeUF0
dHJpCiAgICAgS0NhbnZhcyAqY2FudmFzID0gKGRvY3VtZW50ID8gZG9jdW1lbnQtPmNhbnZhcygp
IDogMCk7CiAgICAgaWYoY2FudmFzKQogICAgIHsKLSAgICAgICAgS1JlbmRlcmluZ1BhaW50U2Vy
dmVyR3JhZGllbnQgKnBzZXJ2ZXIgPSBzdGF0aWNfY2FzdDxLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJH
cmFkaWVudCAqPihjYW52YXMtPnJlZ2lzdHJ5KCktPmdldFBhaW50U2VydmVyQnlJZChLRE9NOjpE
T01TdHJpbmcoZ2V0SWQoKSkuc3RyaW5nKCkpKTsKKyAgICAgICAgS1JlbmRlcmluZ1BhaW50U2Vy
dmVyR3JhZGllbnQgKnBzZXJ2ZXIgPSBzdGF0aWNfY2FzdDxLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJH
cmFkaWVudCAqPihjYW52YXMtPnJlZ2lzdHJ5KCktPmdldFBhaW50U2VydmVyQnlJZChnZXRBdHRy
aWJ1dGUoImlkIikucXN0cmluZygpKSk7CiAgICAgICAgIGlmKHBzZXJ2ZXIpCiAgICAgICAgIHsK
ICAgICAgICAgICAgIGJ1aWxkR3JhZGllbnQocHNlcnZlciwgY2FudmFzKTsKSW5kZXg6IGtzdmcy
L3N2Zy9TVkdHcmFkaWVudEVsZW1lbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9y
b290L1NWR1N1cHBvcnQva3N2ZzIvc3ZnL1NWR0dyYWRpZW50RWxlbWVudEltcGwuaCx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS40CmRpZmYgLXAgLXUgLXIxLjQga3N2ZzIvc3ZnL1NWR0dyYWRpZW50
RWxlbWVudEltcGwuaAotLS0ga3N2ZzIvc3ZnL1NWR0dyYWRpZW50RWxlbWVudEltcGwuaAkxIFNl
cCAyMDA1IDA3OjM1OjQyIC0wMDAwCTEuNAorKysga3N2ZzIvc3ZnL1NWR0dyYWRpZW50RWxlbWVu
dEltcGwuaAkxIE5vdiAyMDA1IDExOjEzOjE2IC0wMDAwCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVz
cGFjZSBLU1ZHCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBLQ2Fu
dmFzUmVzb3VyY2VMaXN0ZW5lcgogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0dyYWRp
ZW50RWxlbWVudEltcGwoS0RPTTo6RG9jdW1lbnRQdHIgKmRvYywgS0RPTTo6Tm9kZUltcGw6Oklk
IGlkLCBLRE9NOjpET01TdHJpbmdJbXBsICpwcmVmaXgpOworICAgICAgICBTVkdHcmFkaWVudEVs
ZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3Vt
ZW50UHRyICpkb2MpOwogICAgICAgICB2aXJ0dWFsIH5TVkdHcmFkaWVudEVsZW1lbnRJbXBsKCk7
CiAKICAgICAgICAgLy8gJ1NWR0dyYWRpZW50RWxlbWVudCcgZnVuY3Rpb25zCkluZGV4OiBrc3Zn
Mi9zdmcvU1ZHSGVscGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3Vw
cG9ydC9rc3ZnMi9zdmcvU1ZHSGVscGVyLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS43CmRp
ZmYgLXAgLXUgLXIxLjcga3N2ZzIvc3ZnL1NWR0hlbHBlci5jcHAKLS0tIGtzdmcyL3N2Zy9TVkdI
ZWxwZXIuY3BwCTUgT2N0IDIwMDUgMDU6MzU6MjMgLTAwMDAJMS43CisrKyBrc3ZnMi9zdmcvU1ZH
SGVscGVyLmNwcAkxIE5vdiAyMDA1IDExOjEzOjE2IC0wMDAwCkBAIC00Niw3ICs0Niw3IEBAIGZs
b2F0IFNWR0hlbHBlcjo6UGVyY2VudGFnZU9mVmlld3BvcnQoZmwKICAgICB7CiAgICAgICAgIGNv
bnN0IFNWR1NWR0VsZW1lbnRJbXBsICpzdmcgPSBzdGF0aWNfY2FzdDxjb25zdCBTVkdTVkdFbGVt
ZW50SW1wbCAqPih2aWV3cG9ydEVsZW1lbnQpOwogICAgICAgICBLRE9NOjpET01TdHJpbmcgdmll
d0JveCgidmlld0JveCIpOwotICAgICAgICBpZihzdmctPmhhc0F0dHJpYnV0ZSh2aWV3Qm94Lmhh
bmRsZSgpKSkKKyAgICAgICAgaWYoc3ZnLT5oYXNBdHRyaWJ1dGUodmlld0JveC5pbXBsKCkpKQog
ICAgICAgICB7CiAgICAgICAgICAgICB3aWR0aCA9IHN2Zy0+dmlld0JveCgpLT5iYXNlVmFsKCkt
PndpZHRoKCk7CiAgICAgICAgICAgICBoZWlnaHQgPSBzdmctPnZpZXdCb3goKS0+YmFzZVZhbCgp
LT5oZWlnaHQoKTsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdJbWFnZUVsZW1lbnRJbXBsLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHSW1hZ2VF
bGVtZW50SW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNwpkaWZmIC1wIC11IC1yMS43
IGtzdmcyL3N2Zy9TVkdJbWFnZUVsZW1lbnRJbXBsLmNwcAotLS0ga3N2ZzIvc3ZnL1NWR0ltYWdl
RWxlbWVudEltcGwuY3BwCTUgT2N0IDIwMDUgMDU6MzU6MjMgLTAwMDAJMS43CisrKyBrc3ZnMi9z
dmcvU1ZHSW1hZ2VFbGVtZW50SW1wbC5jcHAJMSBOb3YgMjAwNSAxMToxMzoxNyAtMDAwMApAQCAt
MzAsNyArMzAsNyBAQAogI2luY2x1ZGUgPGtkb20vY2FjaGUvS0RPTUxvYWRlci5oPgogI2luY2x1
ZGUgPGtkb20vY2FjaGUvS0RPTUNhY2hlZE9iamVjdC5oPgogCi0jaW5jbHVkZSAic3ZnYXR0cnMu
aCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR0hlbHBlci5oIgogI2luY2x1
ZGUgIk5hbWVzcGFjZS5oIgogI2luY2x1ZGUgIlNWR0RvY3VtZW50SW1wbC5oIgpAQCAtNDAsNyAr
NDAsOSBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nSW1wbC5oIgogI2luY2x1ZGUgIktD
YW52YXNSZW5kZXJpbmdTdHlsZS5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpb0ltcGwuaCIKKyNpZm5kZWYgQVBQTEVfQ0hBTkdFUwogI2luY2x1ZGUgIktTVkdEb2N1
bWVudEJ1aWxkZXIuaCIKKyNlbmRpZgogI2luY2x1ZGUgPGtzdmcyL0tTVkdWaWV3Lmg+CiAKICNp
bmNsdWRlIDxrY2FudmFzL0tDYW52YXMuaD4KQEAgLTYyLDggKzY0LDggQEAKIAogdXNpbmcgbmFt
ZXNwYWNlIEtTVkc7CiAKLVNWR0ltYWdlRWxlbWVudEltcGw6OlNWR0ltYWdlRWxlbWVudEltcGwo
S0RPTTo6RG9jdW1lbnRQdHIgKmRvYywgS0RPTTo6Tm9kZUltcGw6OklkIGlkLCBLRE9NOjpET01T
dHJpbmdJbXBsICpwcmVmaXgpCi06IFNWR1N0eWxlZEVsZW1lbnRJbXBsKGRvYywgaWQsIHByZWZp
eCksIFNWR1Rlc3RzSW1wbCgpLCBTVkdMYW5nU3BhY2VJbXBsKCksIFNWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWRJbXBsKCksIFNWR1RyYW5zZm9ybWFibGVJbXBsKCksIFNWR1VSSVJlZmVyZW5j
ZUltcGwoKSwgS0RPTTo6Q2FjaGVkT2JqZWN0Q2xpZW50KCkKK1NWR0ltYWdlRWxlbWVudEltcGw6
OlNWR0ltYWdlRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
S0RPTTo6RG9jdW1lbnRQdHIgKmRvYykKKzogU1ZHU3R5bGVkRWxlbWVudEltcGwodGFnTmFtZSwg
ZG9jKSwgU1ZHVGVzdHNJbXBsKCksIFNWR0xhbmdTcGFjZUltcGwoKSwgU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZEltcGwoKSwgU1ZHVHJhbnNmb3JtYWJsZUltcGwoKSwgU1ZHVVJJUmVmZXJl
bmNlSW1wbCgpLCBLRE9NOjpDYWNoZWRPYmplY3RDbGllbnQoKQogewogICAgIG1feCA9IG1feSA9
IG1fd2lkdGggPSBtX2hlaWdodCA9IDA7CiAgICAgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvID0gMDsK
QEAgLTExNSw1MSArMTE3LDMyIEBAIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0ltcGwg
KlNWR0kKIAogdm9pZCBTVkdJbWFnZUVsZW1lbnRJbXBsOjpwYXJzZUF0dHJpYnV0ZShLRE9NOjpB
dHRyaWJ1dGVJbXBsICphdHRyKQogewotICAgIGludCBpZCA9IChhdHRyLT5pZCgpICYgTm9kZUlt
cGxfSWRMb2NhbE1hc2spOwotICAgIEtET006OkRPTVN0cmluZ0ltcGwgKnZhbHVlID0gYXR0ci0+
dmFsdWUoKTsKLSAgICBzd2l0Y2goaWQpCisgICAgY29uc3QgS0RPTTo6QXRvbWljU3RyaW5nJiB2
YWx1ZSA9IGF0dHItPnZhbHVlKCk7CisgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6
eEF0dHIpCisgICAgICAgIHgoKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlLmlt
cGwoKSk7CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjp5QXR0cikKKyAg
ICAgICAgeSgpLT5iYXNlVmFsKCktPnNldFZhbHVlQXNTdHJpbmcodmFsdWUuaW1wbCgpKTsKKyAg
ICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnByZXNlcnZlYXNwZWN0cmF0aW9B
dHRyKQorICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvKCktPmJhc2VWYWwoKS0+cGFyc2VQcmVz
ZXJ2ZUFzcGVjdFJhdGlvKHZhbHVlLmltcGwoKSk7CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgp
ID09IFNWR05hbWVzOjp3aWR0aEF0dHIpCisgICAgICAgIHdpZHRoKCktPmJhc2VWYWwoKS0+c2V0
VmFsdWVBc1N0cmluZyh2YWx1ZS5pbXBsKCkpOworICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9
PSBTVkdOYW1lczo6aGVpZ2h0QXR0cikKKyAgICAgICAgaGVpZ2h0KCktPmJhc2VWYWwoKS0+c2V0
VmFsdWVBc1N0cmluZyh2YWx1ZS5pbXBsKCkpOworICAgIGVsc2UKICAgICB7Ci0gICAgICAgIGNh
c2UgQVRUUl9YOgotICAgICAgICB7Ci0gICAgICAgICAgICB4KCktPmJhc2VWYWwoKS0+c2V0VmFs
dWVBc1N0cmluZyh2YWx1ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAg
ICBjYXNlIEFUVFJfWToKLSAgICAgICAgewotICAgICAgICAgICAgeSgpLT5iYXNlVmFsKCktPnNl
dFZhbHVlQXNTdHJpbmcodmFsdWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAg
ICAgICAgY2FzZSBBVFRSX1BSRVNFUlZFQVNQRUNUUkFUSU86Ci0gICAgICAgIHsKLSAgICAgICAg
ICAgIHByZXNlcnZlQXNwZWN0UmF0aW8oKS0+YmFzZVZhbCgpLT5wYXJzZVByZXNlcnZlQXNwZWN0
UmF0aW8odmFsdWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2Fz
ZSBBVFRSX1dJRFRIOgotICAgICAgICB7Ci0gICAgICAgICAgICB3aWR0aCgpLT5iYXNlVmFsKCkt
PnNldFZhbHVlQXNTdHJpbmcodmFsdWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0K
LSAgICAgICAgY2FzZSBBVFRSX0hFSUdIVDoKLSAgICAgICAgewotICAgICAgICAgICAgaGVpZ2h0
KCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgfQotICAgICAgICBkZWZhdWx0OgotICAgICAgICB7Ci0gICAgICAgICAgICBp
ZihTVkdUZXN0c0ltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47Ci0gICAgICAgICAg
ICBpZihTVkdMYW5nU3BhY2VJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOwotICAg
ICAgICAgICAgaWYoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGw6OnBhcnNlQXR0cmli
dXRlKGF0dHIpKSByZXR1cm47Ci0gICAgICAgICAgICBpZihTVkdUcmFuc2Zvcm1hYmxlSW1wbDo6
cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsKLSAgICAgICAgICAgIGlmKFNWR1VSSVJlZmVy
ZW5jZUltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47Ci0gICAgICAgICAgICAKLSAg
ICAgICAgICAgIFNWR1N0eWxlZEVsZW1lbnRJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKTsKLSAg
ICAgICAgfQotICAgIH07CisgICAgICAgIGlmKFNWR1Rlc3RzSW1wbDo6cGFyc2VBdHRyaWJ1dGUo
YXR0cikpIHJldHVybjsKKyAgICAgICAgaWYoU1ZHTGFuZ1NwYWNlSW1wbDo6cGFyc2VBdHRyaWJ1
dGUoYXR0cikpIHJldHVybjsKKyAgICAgICAgaWYoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZEltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47CisgICAgICAgIGlmKFNWR1RyYW5z
Zm9ybWFibGVJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOworICAgICAgICBpZihT
VkdVUklSZWZlcmVuY2VJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOworICAgICAg
ICAKKyAgICAgICAgU1ZHU3R5bGVkRWxlbWVudEltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpOwor
ICAgIH0KIH0KIAogS0NhbnZhc0l0ZW0gKlNWR0ltYWdlRWxlbWVudEltcGw6OmNyZWF0ZUNhbnZh
c0l0ZW0oS0NhbnZhcyAqY2FudmFzLCBLUmVuZGVyaW5nU3R5bGUgKnN0eWxlKSBjb25zdAogewot
ICAgIFFTdHJpbmcgZm5hbWUgPSBLRE9NOjpET01TdHJpbmcoaHJlZigpLT5iYXNlVmFsKCkpLnN0
cmluZygpOworICAgIFFTdHJpbmcgZm5hbWUgPSBLRE9NOjpET01TdHJpbmcoaHJlZigpLT5iYXNl
VmFsKCkpLnFzdHJpbmcoKTsKICNpZm5kZWYgQVBQTEVfQ09NUElMRV9IQUNLCiAgICAgS1VSTCBm
dWxsVXJsKG93bmVyRG9jdW1lbnQoKS0+ZG9jdW1lbnRLVVJJKCksIGZuYW1lKTsKICAgICBLTWlt
ZVR5cGU6OlB0ciBtaW1lVHlwZSA9IEtNaW1lVHlwZTo6ZmluZEJ5VVJMKGZ1bGxVcmwpOwpAQCAt
MTkzLDggKzE3Niw4IEBAIHZvaWQgU1ZHSW1hZ2VFbGVtZW50SW1wbDo6bm90aWZ5RmluaXNoZWQK
ICNpZm5kZWYgQVBQTEVfQ09NUElMRV9IQUNLCiAgICAgICAgIEtTVkc6OkRvY3VtZW50QnVpbGRl
ciAqYnVpbGRlciA9IG5ldyBLU1ZHOjpEb2N1bWVudEJ1aWxkZXIoMCk7CiAgICAgICAgIEtET006
OlBhcnNlciAqcGFyc2VyID0gS0RPTTo6UGFyc2VyRmFjdG9yeTo6c2VsZigpLT5yZXF1ZXN0KEtV
UkwoKSwgYnVpbGRlcik7Ci0gICAgICAgIHBhcnNlci0+ZG9tQ29uZmlnKCktPnNldFBhcmFtZXRl
cihLRE9NOjpFTlRJVElFUy5oYW5kbGUoKSwgZmFsc2UpOwotICAgICAgICBwYXJzZXItPmRvbUNv
bmZpZygpLT5zZXRQYXJhbWV0ZXIoS0RPTTo6RUxFTUVOVF9DT05URU5UX1dISVRFU1BBQ0UuaGFu
ZGxlKCksIGZhbHNlKTsKKyAgICAgICAgcGFyc2VyLT5kb21Db25maWcoKS0+c2V0UGFyYW1ldGVy
KEtET006OkVOVElUSUVTLmltcGwoKSwgZmFsc2UpOworICAgICAgICBwYXJzZXItPmRvbUNvbmZp
ZygpLT5zZXRQYXJhbWV0ZXIoS0RPTTo6RUxFTUVOVF9DT05URU5UX1dISVRFU1BBQ0UuaW1wbCgp
LCBmYWxzZSk7CiAKICAgICAgICAgUUJ1ZmZlciAqdGVtcCA9IG5ldyBRQnVmZmVyKCZtX2NhY2hl
ZERvY3VtZW50LT5kb2N1bWVudEJ1ZmZlcigpLT5idWZmZXIoKSk7CiAgICAgICAgIG1fc3ZnRG9j
ID0gc3RhdGljX2Nhc3Q8U1ZHRG9jdW1lbnRJbXBsICo+KHBhcnNlci0+c3luY1BhcnNlKHRlbXAp
KTsKQEAgLTIwNCwxMCArMTg3LDEwIEBAIHZvaWQgU1ZHSW1hZ2VFbGVtZW50SW1wbDo6bm90aWZ5
RmluaXNoZWQKICAgICAgICAgICAgIEtET006OkRPTVN0cmluZ0ltcGwgKl94ID0geCgpLT5iYXNl
VmFsKCktPnZhbHVlQXNTdHJpbmcoKSwgKl95ID0geSgpLT5iYXNlVmFsKCktPnZhbHVlQXNTdHJp
bmcoKTsKICAgICAgICAgICAgIEtET006OkRPTVN0cmluZ0ltcGwgKl93aWR0aCA9IHdpZHRoKCkt
PmJhc2VWYWwoKS0+dmFsdWVBc1N0cmluZygpLCAqX2hlaWdodCA9IGhlaWdodCgpLT5iYXNlVmFs
KCktPnZhbHVlQXNTdHJpbmcoKTsKIAotICAgICAgICAgICAgcm9vdC0+c2V0QXR0cmlidXRlTlMo
S0RPTTo6TlNfU1ZHLmhhbmRsZSgpLCBLRE9NOjpET01TdHJpbmcoIngiKS5oYW5kbGUoKSwgX3gp
OwotICAgICAgICAgICAgcm9vdC0+c2V0QXR0cmlidXRlTlMoS0RPTTo6TlNfU1ZHLmhhbmRsZSgp
LCBLRE9NOjpET01TdHJpbmcoInkiKS5oYW5kbGUoKSwgX3kpOwotICAgICAgICAgICAgcm9vdC0+
c2V0QXR0cmlidXRlTlMoS0RPTTo6TlNfU1ZHLmhhbmRsZSgpLCBLRE9NOjpET01TdHJpbmcoIndp
ZHRoIikuaGFuZGxlKCksIF93aWR0aCk7Ci0gICAgICAgICAgICByb290LT5zZXRBdHRyaWJ1dGVO
UyhLRE9NOjpOU19TVkcuaGFuZGxlKCksIEtET006OkRPTVN0cmluZygiaGVpZ2h0IikuaGFuZGxl
KCksIF9oZWlnaHQpOworICAgICAgICAgICAgcm9vdC0+c2V0QXR0cmlidXRlTlMoS0RPTTo6TlNf
U1ZHLmltcGwoKSwgS0RPTTo6RE9NU3RyaW5nKCJ4IikuaW1wbCgpLCBfeCk7CisgICAgICAgICAg
ICByb290LT5zZXRBdHRyaWJ1dGVOUyhLRE9NOjpOU19TVkcuaW1wbCgpLCBLRE9NOjpET01TdHJp
bmcoInkiKS5pbXBsKCksIF95KTsKKyAgICAgICAgICAgIHJvb3QtPnNldEF0dHJpYnV0ZU5TKEtE
T006Ok5TX1NWRy5pbXBsKCksIEtET006OkRPTVN0cmluZygid2lkdGgiKS5pbXBsKCksIF93aWR0
aCk7CisgICAgICAgICAgICByb290LT5zZXRBdHRyaWJ1dGVOUyhLRE9NOjpOU19TVkcuaW1wbCgp
LCBLRE9NOjpET01TdHJpbmcoImhlaWdodCIpLmltcGwoKSwgX2hlaWdodCk7CiAKICAgICAgICAg
ICAgIC8vIFRPRE86IHZpZXdCb3ggaGFuZGxpbmc/IGFuaW1hdGlvbnM/IGVjbWFzY3JpcHQ/CiAK
QEAgLTI2NSw5ICsyNDgsNyBAQCB2b2lkIFNWR0ltYWdlRWxlbWVudEltcGw6OmZpbmFsaXplU3R5
bGUoCiAKICAgICBpZighbV9jYWNoZWREb2N1bWVudCkgLy8gYml0bWFwCiAgICAgewotICAgICAg
ICBRU3RyaW5nIGZuYW1lID0gS0RPTTo6RE9NU3RyaW5nKGhyZWYoKS0+YmFzZVZhbCgpKS5zdHJp
bmcoKTsKLSAgICAgICAgS1VSTCBmdWxsVXJsKG93bmVyRG9jdW1lbnQoKS0+ZG9jdW1lbnRLVVJJ
KCksIGZuYW1lKTsKLSAgICAgICAgbV9jYWNoZWRJbWFnZSA9IG93bmVyRG9jdW1lbnQoKS0+ZG9j
TG9hZGVyKCktPnJlcXVlc3RJbWFnZShmdWxsVXJsKTsKKyAgICAgICAgbV9jYWNoZWRJbWFnZSA9
IG93bmVyRG9jdW1lbnQoKS0+ZG9jTG9hZGVyKCktPnJlcXVlc3RJbWFnZShocmVmKCktPmJhc2VW
YWwoKSk7CiAKICAgICAgICAgaWYobV9jYWNoZWRJbWFnZSkKICAgICAgICAgICAgIG1fY2FjaGVk
SW1hZ2UtPnJlZih0aGlzKTsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdJbWFnZUVsZW1lbnRJbXBsLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvc3ZnL1NWR0lt
YWdlRWxlbWVudEltcGwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40CmRpZmYgLXAgLXUgLXIx
LjQga3N2ZzIvc3ZnL1NWR0ltYWdlRWxlbWVudEltcGwuaAotLS0ga3N2ZzIvc3ZnL1NWR0ltYWdl
RWxlbWVudEltcGwuaAkxIFNlcCAyMDA1IDA3OjM1OjQzIC0wMDAwCTEuNAorKysga3N2ZzIvc3Zn
L1NWR0ltYWdlRWxlbWVudEltcGwuaAkxIE5vdiAyMDA1IDExOjEzOjE3IC0wMDAwCkBAIC00OCw3
ICs0OCw3IEBAIG5hbWVzcGFjZSBLU1ZHCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB1YmxpYyBLRE9NOjpDYWNoZWRPYmplY3RDbGllbnQKICAgICB7CiAgICAgcHVibGljOgotICAg
ICAgICBTVkdJbWFnZUVsZW1lbnRJbXBsKEtET006OkRvY3VtZW50UHRyICpkb2MsIEtET006Ok5v
ZGVJbXBsOjpJZCBpZCwgIEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZpeCk7CisgICAgICAgIFNW
R0ltYWdlRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RP
TTo6RG9jdW1lbnRQdHIgKmRvYyk7CiAgICAgICAgIHZpcnR1YWwgflNWR0ltYWdlRWxlbWVudElt
cGwoKTsKIAogICAgICAgICAvLyAnU1ZHSW1hZ2VFbGVtZW50JyBmdW5jdGlvbnMKSW5kZXg6IGtz
dmcyL3N2Zy9TVkdMYW5nU3BhY2VJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jv
b3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHTGFuZ1NwYWNlSW1wbC5jcHAsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuNgpkaWZmIC1wIC11IC1yMS42IGtzdmcyL3N2Zy9TVkdMYW5nU3BhY2VJbXBs
LmNwcAotLS0ga3N2ZzIvc3ZnL1NWR0xhbmdTcGFjZUltcGwuY3BwCTUgT2N0IDIwMDUgMDU6MzU6
MjMgLTAwMDAJMS42CisrKyBrc3ZnMi9zdmcvU1ZHTGFuZ1NwYWNlSW1wbC5jcHAJMSBOb3YgMjAw
NSAxMToxMzoxNyAtMDAwMApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgPGtkb20vY29yZS9E
T01TdHJpbmdJbXBsLmg+CiAKICNpbmNsdWRlICJrc3ZnLmgiCi0jaW5jbHVkZSAic3ZnYXR0cnMu
aCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnRJbXBsLmgiCiAj
aW5jbHVkZSAiU1ZHTGFuZ1NwYWNlSW1wbC5oIgogCkBAIC0zNCw2MiArMzQsNDQgQEAgdXNpbmcg
bmFtZXNwYWNlIEtTVkc7CiAKIFNWR0xhbmdTcGFjZUltcGw6OlNWR0xhbmdTcGFjZUltcGwoKQog
ewotICAgIG1fbGFuZyA9IDA7Ci0gICAgbV9zcGFjZSA9IDA7CiB9CiAKIFNWR0xhbmdTcGFjZUlt
cGw6On5TVkdMYW5nU3BhY2VJbXBsKCkKIHsKLSAgICBpZihtX2xhbmcpCi0gICAgICAgIG1fbGFu
Zy0+ZGVyZWYoKTsKLSAgICBpZihtX3NwYWNlKQotICAgICAgICBtX3NwYWNlLT5kZXJlZigpOwog
fQogCi1LRE9NOjpET01TdHJpbmdJbXBsICpTVkdMYW5nU3BhY2VJbXBsOjp4bWxsYW5nKCkgY29u
c3QKK2NvbnN0IEtET006OkF0b21pY1N0cmluZyYgU1ZHTGFuZ1NwYWNlSW1wbDo6eG1sbGFuZygp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fbGFuZzsKIH0KIAotdm9pZCBTVkdMYW5nU3BhY2VJbXBs
OjpzZXRYbWxsYW5nKEtET006OkRPTVN0cmluZ0ltcGwgKnhtbExhbmcpCit2b2lkIFNWR0xhbmdT
cGFjZUltcGw6OnNldFhtbGxhbmcoY29uc3QgS0RPTTo6QXRvbWljU3RyaW5nJiB4bWxMYW5nKQog
ewotICAgIEtET01fU0FGRV9TRVQobV9sYW5nLCB4bWxMYW5nKTsKKyAgICBtX2xhbmcgPSB4bWxM
YW5nOwogfQogCi1LRE9NOjpET01TdHJpbmdJbXBsICpTVkdMYW5nU3BhY2VJbXBsOjp4bWxzcGFj
ZSgpIGNvbnN0Citjb25zdCBLRE9NOjpBdG9taWNTdHJpbmcmIFNWR0xhbmdTcGFjZUltcGw6Onht
bHNwYWNlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9zcGFjZTsKIH0KIAotdm9pZCBTVkdMYW5n
U3BhY2VJbXBsOjpzZXRYbWxzcGFjZShLRE9NOjpET01TdHJpbmdJbXBsICp4bWxTcGFjZSkKK3Zv
aWQgU1ZHTGFuZ1NwYWNlSW1wbDo6c2V0WG1sc3BhY2UoY29uc3QgS0RPTTo6QXRvbWljU3RyaW5n
JiB4bWxTcGFjZSkKIHsKLSAgICBLRE9NX1NBRkVfU0VUKG1fc3BhY2UsIHhtbFNwYWNlKTsKKyAg
ICBtX3NwYWNlID0geG1sU3BhY2U7CiB9CiAKIGJvb2wgU1ZHTGFuZ1NwYWNlSW1wbDo6cGFyc2VB
dHRyaWJ1dGUoS0RPTTo6QXR0cmlidXRlSW1wbCAqYXR0cikKIHsKLSAgICBpbnQgaWQgPSAoYXR0
ci0+aWQoKSAmIE5vZGVJbXBsX0lkTG9jYWxNYXNrKTsKLSAgICBzd2l0Y2goaWQpCisgICAgaWYg
KGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6bGFuZ0F0dHIpCiAgICAgewotICAgICAgICBjYXNl
IEFUVFJfTEFORzoKLSAgICAgICAgewotICAgICAgICAgICAgaWYoYXR0ci0+dmFsdWUoKSkKLSAg
ICAgICAgICAgICAgICBzZXRYbWxsYW5nKGF0dHItPnZhbHVlKCktPmNvcHkoKSk7Ci0gICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgc2V0WG1sbGFuZygwKTsKLQotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBBVFRSX1NQQUNFOgotICAgICAg
ICB7Ci0gICAgICAgICAgICBpZihhdHRyLT52YWx1ZSgpKQotICAgICAgICAgICAgICAgIHNldFht
bHNwYWNlKGF0dHItPnZhbHVlKCktPmNvcHkoKSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgc2V0WG1sc3BhY2UoMCk7Ci0KLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAg
ICAgICB9Ci0gICAgfTsKKyAgICAgICAgc2V0WG1sbGFuZyhhdHRyLT52YWx1ZSgpKTsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdO
YW1lczo6c3BhY2VBdHRyKQorICAgIHsKKyAgICAgICAgc2V0WG1sc3BhY2UoYXR0ci0+dmFsdWUo
KSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KIAogICAgIHJldHVybiBmYWxzZTsKIH0K
SW5kZXg6IGtzdmcyL3N2Zy9TVkdMYW5nU3BhY2VJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvc3ZnL1NWR0xhbmdTcGFjZUltcGwuaCx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS40CmRpZmYgLXAgLXUgLXIxLjQga3N2ZzIvc3ZnL1NWR0xhbmdTcGFj
ZUltcGwuaAotLS0ga3N2ZzIvc3ZnL1NWR0xhbmdTcGFjZUltcGwuaAkxIFNlcCAyMDA1IDA3OjM1
OjQzIC0wMDAwCTEuNAorKysga3N2ZzIvc3ZnL1NWR0xhbmdTcGFjZUltcGwuaAkxIE5vdiAyMDA1
IDExOjEzOjE3IC0wMDAwCkBAIC0yMyw2ICsyMyw4IEBACiAjaWZuZGVmIEtTVkdfU1ZHTGFuZ1Nw
YWNlSW1wbF9ICiAjZGVmaW5lIEtTVkdfU1ZHTGFuZ1NwYWNlSW1wbF9ICiAKKyNpbmNsdWRlICJk
b21fYXRvbWljc3RyaW5nLmgiCisKIG5hbWVzcGFjZSBLRE9NCiB7CiAgICAgY2xhc3MgRE9NU3Ry
aW5nSW1wbDsKQEAgLTQxLDE3ICs0MywxNyBAQCBuYW1lc3BhY2UgS1NWRwogICAgICAgICB2aXJ0
dWFsIH5TVkdMYW5nU3BhY2VJbXBsKCk7CiAKICAgICAgICAgLy8gJ1NWR0xhbmdTcGFjZScgZnVu
Y3Rpb25zCi0gICAgICAgIEtET006OkRPTVN0cmluZ0ltcGwgKnhtbGxhbmcoKSBjb25zdDsKLSAg
ICAgICAgdm9pZCBzZXRYbWxsYW5nKEtET006OkRPTVN0cmluZ0ltcGwgKnhtbExhbmcpOworICAg
ICAgICBjb25zdCBLRE9NOjpBdG9taWNTdHJpbmcmIHhtbGxhbmcoKSBjb25zdDsKKyAgICAgICAg
dm9pZCBzZXRYbWxsYW5nKGNvbnN0IEtET006OkF0b21pY1N0cmluZyYgeG1sTGFuZyk7CiAKLSAg
ICAgICAgS0RPTTo6RE9NU3RyaW5nSW1wbCAqeG1sc3BhY2UoKSBjb25zdDsKLSAgICAgICAgdm9p
ZCBzZXRYbWxzcGFjZShLRE9NOjpET01TdHJpbmdJbXBsICp4bWxTcGFjZSk7CisgICAgICAgIGNv
bnN0IEtET006OkF0b21pY1N0cmluZyYgeG1sc3BhY2UoKSBjb25zdDsKKyAgICAgICAgdm9pZCBz
ZXRYbWxzcGFjZShjb25zdCBLRE9NOjpBdG9taWNTdHJpbmcmIHhtbFNwYWNlKTsKIAogICAgICAg
ICBib29sIHBhcnNlQXR0cmlidXRlKEtET006OkF0dHJpYnV0ZUltcGwgKmF0dHIpOwogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgbXV0YWJsZSBLRE9NOjpET01TdHJpbmdJbXBsICptX2xhbmc7Ci0g
ICAgICAgIG11dGFibGUgS0RPTTo6RE9NU3RyaW5nSW1wbCAqbV9zcGFjZTsKKyAgICAgICAgS0RP
TTo6QXRvbWljU3RyaW5nIG1fbGFuZzsKKyAgICAgICAgS0RPTTo6QXRvbWljU3RyaW5nIG1fc3Bh
Y2U7CiAgICAgfTsKIH07CiAKSW5kZXg6IGtzdmcyL3N2Zy9TVkdMZW5ndGhJbXBsLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHTGVuZ3Ro
SW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNgpkaWZmIC1wIC11IC1yMS42IGtzdmcy
L3N2Zy9TVkdMZW5ndGhJbXBsLmNwcAotLS0ga3N2ZzIvc3ZnL1NWR0xlbmd0aEltcGwuY3BwCTI0
IE9jdCAyMDA1IDA2OjMxOjUzIC0wMDAwCTEuNgorKysga3N2ZzIvc3ZnL1NWR0xlbmd0aEltcGwu
Y3BwCTEgTm92IDIwMDUgMTE6MTM6MTcgLTAwMDAKQEAgLTEyNSwxMiArMTI1LDEzIEBAIGZsb2F0
IFNWR0xlbmd0aEltcGw6OnZhbHVlSW5TcGVjaWZpZWRVbmkKICAgICByZXR1cm4gbV92YWx1ZUlu
U3BlY2lmaWVkVW5pdHM7CiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAKLXZvaWQgU1ZHTGVuZ3RoSW1wbDo6c2V0VmFsdWVBc1N0cmluZyhLRE9NOjpE
T01TdHJpbmdJbXBsICp2YWx1ZUFzU3RyaW5nKQordm9pZCBTVkdMZW5ndGhJbXBsOjpzZXRWYWx1
ZUFzU3RyaW5nKEtET006OkRPTVN0cmluZ0ltcGwgKnZhbHVlQXNTdHJpbmdJbXBsKQogewotICAg
IGlmKCF2YWx1ZUFzU3RyaW5nIHx8IHZhbHVlQXNTdHJpbmctPmlzRW1wdHkoKSkKKyAgICBLRE9N
OjpET01TdHJpbmcgdmFsdWVBc1N0cmluZyh2YWx1ZUFzU3RyaW5nSW1wbCk7CisgICAgaWYodmFs
dWVBc1N0cmluZy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFFTdHJpbmcgdmFs
dWVBc1FTdHJpbmcgPSB2YWx1ZUFzU3RyaW5nLT5zdHJpbmcoKTsKKyAgICBRU3RyaW5nIHZhbHVl
QXNRU3RyaW5nID0gdmFsdWVBc1N0cmluZy5xc3RyaW5nKCk7CiAKICAgICBkb3VibGUgY29udmVy
dGVkTnVtYmVyID0gMDsKICAgICBjb25zdCBjaGFyICpzdGFydCA9IHZhbHVlQXNRU3RyaW5nLmxh
dGluMSgpOwpAQCAtMjUzLDkgKzI1NCw5IEBAIHZvaWQgU1ZHTGVuZ3RoSW1wbDo6dXBkYXRlVmFs
dWUoKQogICAgICAgICAgICAgICAgICAgICB1c2VTaXplID0gcGFyZW50U3R5bGUtPmdldEZvbnRT
aXplKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBpZihmYW1pbHlMb2NhbCkKLSAg
ICAgICAgICAgICAgICAgICAgdXNlRm9udCA9IHN0eWxlLT5nZXRGb250RmFtaWx5KCktPmdldEZp
cnN0KCktPnN0cmluZygpOworICAgICAgICAgICAgICAgICAgICB1c2VGb250ID0gc3R5bGUtPmdl
dEZvbnRGYW1pbHkoKS0+Z2V0Rmlyc3QoKS0+cXN0cmluZygpOwogICAgICAgICAgICAgICAgIGVs
c2UgaWYocGFyZW50U3R5bGUgJiYgcGFyZW50U3R5bGUtPmdldEZvbnRGYW1pbHkoKSAmJiBwYXJl
bnRTdHlsZS0+Z2V0Rm9udEZhbWlseSgpLT5nZXRGaXJzdCgpKQotICAgICAgICAgICAgICAgICAg
ICB1c2VGb250ID0gcGFyZW50U3R5bGUtPmdldEZvbnRGYW1pbHkoKS0+Z2V0Rmlyc3QoKS0+c3Ry
aW5nKCk7CisgICAgICAgICAgICAgICAgICAgIHVzZUZvbnQgPSBwYXJlbnRTdHlsZS0+Z2V0Rm9u
dEZhbWlseSgpLT5nZXRGaXJzdCgpLT5xc3RyaW5nKCk7CiAKICAgICAgICAgICAgICAgICBpZih1
bml0VHlwZSA9PSBTVkdfTEVOR1RIVFlQRV9FTVMpCiAgICAgICAgICAgICAgICAgICAgIHZhbHVl
ID0gdmFsdWVJblNwZWNpZmllZFVuaXRzICogdXNlU2l6ZTsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdM
ZW5ndGhMaXN0SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBv
cnQva3N2ZzIvc3ZnL1NWR0xlbmd0aExpc3RJbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24g
MS42CmRpZmYgLXAgLXUgLXIxLjYga3N2ZzIvc3ZnL1NWR0xlbmd0aExpc3RJbXBsLmNwcAotLS0g
a3N2ZzIvc3ZnL1NWR0xlbmd0aExpc3RJbXBsLmNwcAk1IE9jdCAyMDA1IDA1OjM1OjI0IC0wMDAw
CTEuNgorKysga3N2ZzIvc3ZnL1NWR0xlbmd0aExpc3RJbXBsLmNwcAkxIE5vdiAyMDA1IDExOjEz
OjE3IC0wMDAwCkBAIC00NSw3ICs0NSw3IEBAIHZvaWQgU1ZHTGVuZ3RoTGlzdEltcGw6OnBhcnNl
KGNvbnN0IFFTdHIKICAgICB7CiAgICAgICAgIFNWR0xlbmd0aEltcGwgKmxlbmd0aCA9IG5ldyBT
VkdMZW5ndGhJbXBsKGNvbnRleHQsIG1vZGUpOwogICAgICAgICBLRE9NOjpET01TdHJpbmcgc3Ry
KGxlbmd0aHNbaV0pOwotICAgICAgICBsZW5ndGgtPnNldFZhbHVlQXNTdHJpbmcoc3RyLmhhbmRs
ZSgpKTsKKyAgICAgICAgbGVuZ3RoLT5zZXRWYWx1ZUFzU3RyaW5nKHN0ci5pbXBsKCkpOwogICAg
ICAgICBhcHBlbmRJdGVtKGxlbmd0aCk7CiAgICAgfQogfQpJbmRleDoga3N2ZzIvc3ZnL1NWR0xp
bmVFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBv
cnQva3N2ZzIvc3ZnL1NWR0xpbmVFbGVtZW50SW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuNgpkaWZmIC1wIC11IC1yMS42IGtzdmcyL3N2Zy9TVkdMaW5lRWxlbWVudEltcGwuY3BwCi0t
LSBrc3ZnMi9zdmcvU1ZHTGluZUVsZW1lbnRJbXBsLmNwcAk1IE9jdCAyMDA1IDA1OjM1OjI0IC0w
MDAwCTEuNgorKysga3N2ZzIvc3ZnL1NWR0xpbmVFbGVtZW50SW1wbC5jcHAJMSBOb3YgMjAwNSAx
MToxMzoxNyAtMDAwMApAQCAtMjMsNyArMjMsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgogCi0jaW5jbHVkZSAic3ZnYXR0cnMuaCIKKyNp
bmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR0hlbHBlci5oIgogI2luY2x1ZGUgIlNW
R0xpbmVFbGVtZW50SW1wbC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoSW1wbC5oIgpA
QCAtMzMsOCArMzMsOCBAQAogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIAotU1ZHTGluZUVsZW1l
bnRJbXBsOjpTVkdMaW5lRWxlbWVudEltcGwoS0RPTTo6RG9jdW1lbnRQdHIgKmRvYywgS0RPTTo6
Tm9kZUltcGw6OklkIGlkLCBLRE9NOjpET01TdHJpbmdJbXBsICpwcmVmaXgpCi06IFNWR1N0eWxl
ZEVsZW1lbnRJbXBsKGRvYywgaWQsIHByZWZpeCksIFNWR1Rlc3RzSW1wbCgpLCBTVkdMYW5nU3Bh
Y2VJbXBsKCksIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsKCksIFNWR1RyYW5zZm9y
bWFibGVJbXBsKCkKK1NWR0xpbmVFbGVtZW50SW1wbDo6U1ZHTGluZUVsZW1lbnRJbXBsKGNvbnN0
IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50UHRyICpkb2MpCis6
IFNWR1N0eWxlZEVsZW1lbnRJbXBsKHRhZ05hbWUsIGRvYyksIFNWR1Rlc3RzSW1wbCgpLCBTVkdM
YW5nU3BhY2VJbXBsKCksIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsKCksIFNWR1Ry
YW5zZm9ybWFibGVJbXBsKCkKIHsKICAgICBtX3gxID0gbV95MSA9IG1feDIgPSBtX3kyID0gMDsK
IH0KQEAgLTczLDQwICs3MywyNCBAQCBTVkdBbmltYXRlZExlbmd0aEltcGwgKlNWR0xpbmVFbGVt
ZW50SW1wCiAKIHZvaWQgU1ZHTGluZUVsZW1lbnRJbXBsOjpwYXJzZUF0dHJpYnV0ZShLRE9NOjpB
dHRyaWJ1dGVJbXBsICphdHRyKQogewotICAgIGludCBpZCA9IChhdHRyLT5pZCgpICYgTm9kZUlt
cGxfSWRMb2NhbE1hc2spOwotICAgIEtET006OkRPTVN0cmluZ0ltcGwgKnZhbHVlID0gYXR0ci0+
dmFsdWUoKTsKLSAgICBzd2l0Y2goaWQpCisgICAgY29uc3QgS0RPTTo6QXRvbWljU3RyaW5nJiB2
YWx1ZSA9IGF0dHItPnZhbHVlKCk7CisgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6
eDFBdHRyKQorICAgICAgICB4MSgpLT5iYXNlVmFsKCktPnNldFZhbHVlQXNTdHJpbmcodmFsdWUu
aW1wbCgpKTsKKyAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnkxQXR0cikK
KyAgICAgICAgeTEoKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlLmltcGwoKSk7
CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjp4MkF0dHIpCisgICAgICAg
IHgyKCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZS5pbXBsKCkpOworICAgIGVs
c2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6eTJBdHRyKQorICAgICAgICB5MigpLT5i
YXNlVmFsKCktPnNldFZhbHVlQXNTdHJpbmcodmFsdWUuaW1wbCgpKTsKKyAgICBlbHNlCiAgICAg
ewotICAgICAgICBjYXNlIEFUVFJfWDE6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHgxKCktPmJh
c2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgfQotICAgICAgICBjYXNlIEFUVFJfWTE6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHkx
KCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgfQotICAgICAgICBjYXNlIEFUVFJfWDI6Ci0gICAgICAgIHsKLSAgICAgICAg
ICAgIHgyKCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIEFUVFJfWTI6Ci0gICAgICAgIHsKLSAg
ICAgICAgICAgIHkyKCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBkZWZhdWx0OgotICAgICAgICB7Ci0g
ICAgICAgICAgICBpZihTVkdUZXN0c0ltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47
Ci0gICAgICAgICAgICBpZihTVkdMYW5nU3BhY2VJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkg
cmV0dXJuOwotICAgICAgICAgICAgaWYoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGw6
OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47Ci0gICAgICAgICAgICBpZihTVkdUcmFuc2Zv
cm1hYmxlSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsKLSAgICAgICAgICAgIAot
ICAgICAgICAgICAgU1ZHU3R5bGVkRWxlbWVudEltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpOwot
ICAgICAgICB9Ci0gICAgfTsKKyAgICAgICAgaWYoU1ZHVGVzdHNJbXBsOjpwYXJzZUF0dHJpYnV0
ZShhdHRyKSkgcmV0dXJuOworICAgICAgICBpZihTVkdMYW5nU3BhY2VJbXBsOjpwYXJzZUF0dHJp
YnV0ZShhdHRyKSkgcmV0dXJuOworICAgICAgICBpZihTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsKKyAgICAgICAgaWYoU1ZHVHJh
bnNmb3JtYWJsZUltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47CisgICAgICAgIAor
ICAgICAgICBTVkdTdHlsZWRFbGVtZW50SW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cik7CisgICAg
fQogfQogCiBLQ1BhdGhEYXRhTGlzdCBTVkdMaW5lRWxlbWVudEltcGw6OnRvUGF0aERhdGEoKSBj
b25zdApJbmRleDoga3N2ZzIvc3ZnL1NWR0xpbmVFbGVtZW50SW1wbC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdMaW5lRWxlbWVudEltcGwu
aCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40CmRpZmYgLXAgLXUgLXIxLjQga3N2ZzIvc3ZnL1NW
R0xpbmVFbGVtZW50SW1wbC5oCi0tLSBrc3ZnMi9zdmcvU1ZHTGluZUVsZW1lbnRJbXBsLmgJMSBT
ZXAgMjAwNSAwNzozNTo0NCAtMDAwMAkxLjQKKysrIGtzdmcyL3N2Zy9TVkdMaW5lRWxlbWVudElt
cGwuaAkxIE5vdiAyMDA1IDExOjEzOjE3IC0wMDAwCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFj
ZSBLU1ZHCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1RyYW5zZm9y
bWFibGVJbXBsCiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHTGluZUVsZW1lbnRJbXBs
KEtET006OkRvY3VtZW50UHRyICpkb2MsIEtET006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9N
U3RyaW5nSW1wbCAqcHJlZml4KTsKKyAgICAgICAgU1ZHTGluZUVsZW1lbnRJbXBsKGNvbnN0IEtE
T006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50UHRyICpkb2MpOwogICAg
ICAgICB2aXJ0dWFsIH5TVkdMaW5lRWxlbWVudEltcGwoKTsKIAogICAgICAgICAvLyAnU1ZHTGlu
ZUVsZW1lbnQnIGZ1bmN0aW9ucwpJbmRleDoga3N2ZzIvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxl
bWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tz
dmcyL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnRJbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS43CmRpZmYgLXAgLXUgLXIxLjcga3N2ZzIvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxl
bWVudEltcGwuY3BwCi0tLSBrc3ZnMi9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50SW1wbC5j
cHAJNSBPY3QgMjAwNSAwNTozNToyNCAtMDAwMAkxLjcKKysrIGtzdmcyL3N2Zy9TVkdMaW5lYXJH
cmFkaWVudEVsZW1lbnRJbXBsLmNwcAkxIE5vdiAyMDA1IDExOjEzOjE3IC0wMDAwCkBAIC0yNCw3
ICsyNCw3IEBACiAjaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+CiAKICNpbmNsdWRlICJr
c3ZnLmgiCi0jaW5jbHVkZSAic3ZnYXR0cnMuaCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2lu
Y2x1ZGUgIlNWR0hlbHBlci5oIgogI2luY2x1ZGUgIlNWR01hdHJpeEltcGwuaCIKICNpbmNsdWRl
ICJTVkdEb2N1bWVudEltcGwuaCIKQEAgLTQ1LDcgKzQ1LDcgQEAKIAogdXNpbmcgbmFtZXNwYWNl
IEtTVkc7CiAKLVNWR0xpbmVhckdyYWRpZW50RWxlbWVudEltcGw6OlNWR0xpbmVhckdyYWRpZW50
RWxlbWVudEltcGwoS0RPTTo6RG9jdW1lbnRQdHIgKmRvYywgS0RPTTo6Tm9kZUltcGw6OklkIGlk
LCBLRE9NOjpET01TdHJpbmdJbXBsICpwcmVmaXgpIDogU1ZHR3JhZGllbnRFbGVtZW50SW1wbChk
b2MsIGlkLCBwcmVmaXgpCitTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnRJbXBsOjpTVkdMaW5lYXJH
cmFkaWVudEVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtE
T006OkRvY3VtZW50UHRyICpkb2MpIDogU1ZHR3JhZGllbnRFbGVtZW50SW1wbCh0YWdOYW1lLCBk
b2MpCiB7CiAgICAgbV94MSA9IG1feTEgPSBtX3gyID0gbV95MiA9IDA7CiB9CkBAIC05NSwzOCAr
OTUsMjIgQEAgU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsICpTVkdMaW5lYXJHcmFkaWVudAogCiB2b2lk
IFNWR0xpbmVhckdyYWRpZW50RWxlbWVudEltcGw6OnBhcnNlQXR0cmlidXRlKEtET006OkF0dHJp
YnV0ZUltcGwgKmF0dHIpCiB7Ci0gICAgaW50IGlkID0gKGF0dHItPmlkKCkgJiBOb2RlSW1wbF9J
ZExvY2FsTWFzayk7Ci0gICAgS0RPTTo6RE9NU3RyaW5nSW1wbCAqdmFsdWUgPSBhdHRyLT52YWx1
ZSgpOwotICAgIHN3aXRjaChpZCkKLSAgICB7Ci0gICAgICAgIGNhc2UgQVRUUl9YMToKLSAgICAg
ICAgewotICAgICAgICAgICAgeDEoKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVl
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgQVRUUl9ZMToK
LSAgICAgICAgewotICAgICAgICAgICAgeTEoKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5n
KHZhbHVlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgQVRU
Ul9YMjoKLSAgICAgICAgewotICAgICAgICAgICAgeDIoKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFz
U3RyaW5nKHZhbHVlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNh
c2UgQVRUUl9ZMjoKLSAgICAgICAgewotICAgICAgICAgICAgeTIoKS0+YmFzZVZhbCgpLT5zZXRW
YWx1ZUFzU3RyaW5nKHZhbHVlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAg
ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBTVkdHcmFkaWVudEVsZW1lbnRJbXBsOjpwYXJzZUF0
dHJpYnV0ZShhdHRyKTsKLSAgICB9OworICAgIGNvbnN0IEtET006OkF0b21pY1N0cmluZyYgdmFs
dWUgPSBhdHRyLT52YWx1ZSgpOworICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6Ongx
QXR0cikKKyAgICAgICAgeDEoKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlLmlt
cGwoKSk7CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjp5MUF0dHIpCisg
ICAgICAgIHkxKCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZS5pbXBsKCkpOwor
ICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6eDJBdHRyKQorICAgICAgICB4
MigpLT5iYXNlVmFsKCktPnNldFZhbHVlQXNTdHJpbmcodmFsdWUuaW1wbCgpKTsKKyAgICBlbHNl
IGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnkyQXR0cikKKyAgICAgICAgeTIoKS0+YmFz
ZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlLmltcGwoKSk7CisgICAgZWxzZQorICAgICAg
ICBTVkdHcmFkaWVudEVsZW1lbnRJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKTsKIH0KIAogdm9p
ZCBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnRJbXBsOjpidWlsZEdyYWRpZW50KEtSZW5kZXJpbmdQ
YWludFNlcnZlckdyYWRpZW50ICpfZ3JhZCwgS0NhbnZhcyAqY2FudmFzKSBjb25zdAogewotICAg
IFFTdHJpbmcgcmVmID0gS0RPTTo6RE9NU3RyaW5nKGhyZWYoKS0+YmFzZVZhbCgpKS5zdHJpbmco
KTsKKyAgICBRU3RyaW5nIHJlZiA9IEtET006OkRPTVN0cmluZyhocmVmKCktPmJhc2VWYWwoKSku
cXN0cmluZygpOwogICAgIGJvb2wgYmJveCA9IChncmFkaWVudFVuaXRzKCktPmJhc2VWYWwoKSA9
PSBTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9YKTsKICAgICAKICAgICB4MSgpLT5iYXNl
VmFsKCktPnNldEJib3hSZWxhdGl2ZShiYm94KTsKQEAgLTE1MSwyOCArMTM1LDI4IEBAIHZvaWQg
U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50SW1wbDo6YnVpbGQKICAgICAgICAgYm9vbCBpc0xpbmVh
ciA9IHBzZXJ2ZXItPnR5cGUoKSA9PSBQU19MSU5FQVJfR1JBRElFTlQ7CiAgICAgICAgIEtSZW5k
ZXJpbmdQYWludFNlcnZlckdyYWRpZW50ICpncmFkaWVudCA9IHN0YXRpY19jYXN0PEtSZW5kZXJp
bmdQYWludFNlcnZlckdyYWRpZW50ICo+KHBzZXJ2ZXIpOwogCi0gICAgICAgIGlmKCFoYXNBdHRy
aWJ1dGUoS0RPTTo6RE9NU3RyaW5nKCJncmFkaWVudFVuaXRzIikuaGFuZGxlKCkpKQorICAgICAg
ICBpZighaGFzQXR0cmlidXRlKEtET006OkRPTVN0cmluZygiZ3JhZGllbnRVbml0cyIpLmltcGwo
KSkpCiAgICAgICAgICAgICBiYm94ID0gZ3JhZGllbnQtPmJvdW5kaW5nQm94TW9kZSgpOwogICAg
ICAgICAgICAgCiAgICAgICAgIGlmKGlzTGluZWFyKQogICAgICAgICB7CiAgICAgICAgICAgICBL
UmVuZGVyaW5nUGFpbnRTZXJ2ZXJMaW5lYXJHcmFkaWVudCAqbGluZWFyID0gc3RhdGljX2Nhc3Q8
S1JlbmRlcmluZ1BhaW50U2VydmVyTGluZWFyR3JhZGllbnQgKj4ocHNlcnZlcik7Ci0gICAgICAg
ICAgICBpZighaGFzQXR0cmlidXRlKEtET006OkRPTVN0cmluZygieDEiKS5oYW5kbGUoKSkpCisg
ICAgICAgICAgICBpZighaGFzQXR0cmlidXRlKEtET006OkRPTVN0cmluZygieDEiKS5pbXBsKCkp
KQogICAgICAgICAgICAgICAgIF94MSA9IGxpbmVhci0+Z3JhZGllbnRTdGFydCgpLngoKTsKICAg
ICAgICAgICAgIGVsc2UgaWYoYmJveCkKICAgICAgICAgICAgICAgICBfeDEgKj0gMTAwLjsKIAot
ICAgICAgICAgICAgaWYoIWhhc0F0dHJpYnV0ZShLRE9NOjpET01TdHJpbmcoInkxIikuaGFuZGxl
KCkpKQorICAgICAgICAgICAgaWYoIWhhc0F0dHJpYnV0ZShLRE9NOjpET01TdHJpbmcoInkxIiku
aW1wbCgpKSkKICAgICAgICAgICAgICAgICBfeTEgPSBsaW5lYXItPmdyYWRpZW50U3RhcnQoKS55
KCk7CiAgICAgICAgICAgICBlbHNlIGlmKGJib3gpCiAgICAgICAgICAgICAgICAgX3kxICo9IDEw
MC47CiAKLSAgICAgICAgICAgIGlmKCFoYXNBdHRyaWJ1dGUoS0RPTTo6RE9NU3RyaW5nKCJ4MiIp
LmhhbmRsZSgpKSkKKyAgICAgICAgICAgIGlmKCFoYXNBdHRyaWJ1dGUoS0RPTTo6RE9NU3RyaW5n
KCJ4MiIpLmltcGwoKSkpCiAgICAgICAgICAgICAgICAgX3gyID0gbGluZWFyLT5ncmFkaWVudEVu
ZCgpLngoKTsKICAgICAgICAgICAgIGVsc2UgaWYoYmJveCkKICAgICAgICAgICAgICAgICBfeDIg
Kj0gMTAwLjsKIAotICAgICAgICAgICAgaWYoIWhhc0F0dHJpYnV0ZShLRE9NOjpET01TdHJpbmco
InkyIikuaGFuZGxlKCkpKQorICAgICAgICAgICAgaWYoIWhhc0F0dHJpYnV0ZShLRE9NOjpET01T
dHJpbmcoInkyIikuaW1wbCgpKSkKICAgICAgICAgICAgICAgICBfeTIgPSBsaW5lYXItPmdyYWRp
ZW50RW5kKCkueSgpOwogICAgICAgICAgICAgZWxzZSBpZihiYm94KQogICAgICAgICAgICAgICAg
IF95MiAqPSAxMDAuOwpAQCAtMTg1LDcgKzE2OSw3IEBAIHZvaWQgU1ZHTGluZWFyR3JhZGllbnRF
bGVtZW50SW1wbDo6YnVpbGQKICAgICAgICAgICAgIF95MiAqPSAxMDAuMDsKICAgICAgICAgfQog
Ci0gICAgICAgIGlmKCFoYXNBdHRyaWJ1dGUoS0RPTTo6RE9NU3RyaW5nKCJncmFkaWVudFRyYW5z
Zm9ybSIpLmhhbmRsZSgpKSkKKyAgICAgICAgaWYoIWhhc0F0dHJpYnV0ZShLRE9NOjpET01TdHJp
bmcoImdyYWRpZW50VHJhbnNmb3JtIikuaW1wbCgpKSkKICAgICAgICAgICAgIG1hdCA9IGdyYWRp
ZW50LT5ncmFkaWVudFRyYW5zZm9ybSgpOwogCiAgICAgICAgIC8vIEluaGVyaXQgY29sb3Igc3Rv
cHMgaWYgZW1wdHkKQEAgLTE5Niw3ICsxODAsNyBAQCB2b2lkIFNWR0xpbmVhckdyYWRpZW50RWxl
bWVudEltcGw6OmJ1aWxkCiAgICAgICAgICAgICAgICAgZ3JhZC0+Z3JhZGllbnRTdG9wcygpLmFk
ZFN0b3AoaXQuY3VycmVudCgpLT5vZmZzZXQsIGl0LmN1cnJlbnQoKS0+Y29sb3IpOwogICAgICAg
ICB9CiAKLSAgICAgICAgaWYoIWhhc0F0dHJpYnV0ZShLRE9NOjpET01TdHJpbmcoInNwcmVhZE1l
dGhvZCIpLmhhbmRsZSgpKSkKKyAgICAgICAgaWYoIWhhc0F0dHJpYnV0ZShLRE9NOjpET01TdHJp
bmcoInNwcmVhZE1ldGhvZCIpLmltcGwoKSkpCiAgICAgICAgICAgICBncmFkLT5zZXRHcmFkaWVu
dFNwcmVhZE1ldGhvZChncmFkaWVudC0+c3ByZWFkTWV0aG9kKCkpOwogICAgIH0KICAgICBlbHNl
CkBAIC0yMzAsMTQgKzIxNCwxNCBAQCBLQ2FudmFzSXRlbSAqU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50SW1wCiAKICAgICBwc2VydmVyLT5zZXRMaXN0ZW5lcihjb25zdF9jYXN0PFNWR0xpbmVhckdy
YWRpZW50RWxlbWVudEltcGwgKj4odGhpcykpOwogCi0gICAgY2FudmFzLT5yZWdpc3RyeSgpLT5h
ZGRQYWludFNlcnZlckJ5SWQoS0RPTTo6RE9NU3RyaW5nKGdldElkKCkpLnN0cmluZygpLCBwc2Vy
dmVyKTsKKyAgICBjYW52YXMtPnJlZ2lzdHJ5KCktPmFkZFBhaW50U2VydmVyQnlJZChnZXRBdHRy
aWJ1dGUoImlkIikucXN0cmluZygpLCBwc2VydmVyKTsKICAgICByZXR1cm4gMDsKIH0KIAogdm9p
ZCBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnRJbXBsOjpyZXNvdXJjZU5vdGlmaWNhdGlvbigpIGNv
bnN0CiB7CiAgICAgLy8gV2UncmUgcmVmZXJlbmNlZCBieSBhICJjbGllbnQiLCBidWlsZCB0aGUg
Z3JhZGllbnQgbm93Li4uCi0gICAgS1JlbmRlcmluZ1BhaW50U2VydmVyICpwc2VydmVyID0gY2Fu
dmFzKCktPnJlZ2lzdHJ5KCktPmdldFBhaW50U2VydmVyQnlJZChLRE9NOjpET01TdHJpbmcoZ2V0
SWQoKSkuc3RyaW5nKCkpOworICAgIEtSZW5kZXJpbmdQYWludFNlcnZlciAqcHNlcnZlciA9IGNh
bnZhcygpLT5yZWdpc3RyeSgpLT5nZXRQYWludFNlcnZlckJ5SWQoZ2V0QXR0cmlidXRlKCJpZCIp
LnFzdHJpbmcoKSk7CiAgICAgS1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQgKmdyYWRpZW50
ID0gc3RhdGljX2Nhc3Q8S1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQgKj4ocHNlcnZlcik7
CiAgICAgYnVpbGRHcmFkaWVudChncmFkaWVudCwgY2FudmFzKCkpOwogfQpJbmRleDoga3N2ZzIv
c3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv
Y3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50SW1w
bC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQKZGlmZiAtcCAtdSAtcjEuNCBrc3ZnMi9zdmcv
U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50SW1wbC5oCi0tLSBrc3ZnMi9zdmcvU1ZHTGluZWFyR3Jh
ZGllbnRFbGVtZW50SW1wbC5oCTEgU2VwIDIwMDUgMDc6MzU6NDQgLTAwMDAJMS40CisrKyBrc3Zn
Mi9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50SW1wbC5oCTEgTm92IDIwMDUgMTE6MTM6MTcg
LTAwMDAKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIEtTVkcKICAgICBjbGFzcyBTVkdMaW5l
YXJHcmFkaWVudEVsZW1lbnRJbXBsIDogcHVibGljIFNWR0dyYWRpZW50RWxlbWVudEltcGwKICAg
ICB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnRJbXBsKEtE
T006OkRvY3VtZW50UHRyICpkb2MsIEtET006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3Ry
aW5nSW1wbCAqcHJlZml4KTsKKyAgICAgICAgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50SW1wbChj
b25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudFB0ciAqZG9j
KTsKICAgICAgICAgdmlydHVhbCB+U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50SW1wbCgpOwogCiAg
ICAgICAgIC8vICdTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQnIGZ1bmN0aW9ucwpJbmRleDoga3N2
ZzIvc3ZnL1NWR0xvY2F0YWJsZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdMb2NhdGFibGVJbXBsLmNwcCx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS42CmRpZmYgLXAgLXUgLXIxLjYga3N2ZzIvc3ZnL1NWR0xvY2F0YWJsZUltcGwu
Y3BwCi0tLSBrc3ZnMi9zdmcvU1ZHTG9jYXRhYmxlSW1wbC5jcHAJNSBPY3QgMjAwNSAwNTozNToy
NCAtMDAwMAkxLjYKKysrIGtzdmcyL3N2Zy9TVkdMb2NhdGFibGVJbXBsLmNwcAkxIE5vdiAyMDA1
IDExOjEzOjE4IC0wMDAwCkBAIC00Nyw4ICs0Nyw4IEBAIFNWR0VsZW1lbnRJbXBsICpTVkdMb2Nh
dGFibGVJbXBsOjpuZWFyZXMKICAgICB3aGlsZShuICYmIG4tPm5vZGVUeXBlKCkgIT0gS0RPTTo6
RE9DVU1FTlRfTk9ERSkKICAgICB7CiAgICAgICAgIGlmKG4tPm5vZGVUeXBlKCkgPT0gS0RPTTo6
RUxFTUVOVF9OT0RFICYmCi0gICAgICAgICAgICAobi0+aWQoKSA9PSBJRF9TVkcgfHwgbi0+aWQo
KSA9PSBJRF9TWU1CT0wgfHwKLSAgICAgICAgICAgICBuLT5pZCgpID09IElEX0ZPUkVJR05PQkpF
Q1QgfHwgbi0+aWQoKSA9PSBJRF9JTUFHRSkpCisgICAgICAgICAgICAobi0+aGFzVGFnTmFtZShT
VkdOYW1lczo6c3ZnVGFnKSB8fCBuLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpzeW1ib2xUYWcpIHx8
CisgICAgICAgICAgICAgbi0+aGFzVGFnTmFtZShTVkdOYW1lczo6Zm9yZWlnbm9iamVjdFRhZykg
fHwgbi0+aGFzVGFnTmFtZShTVkdOYW1lczo6aW1hZ2VUYWcpKSkKICAgICAgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxTVkdFbGVtZW50SW1wbCAqPihuKTsKIAogICAgICAgICBuID0gbi0+cGFy
ZW50Tm9kZSgpOwpAQCAtNjksOCArNjksOCBAQCBTVkdFbGVtZW50SW1wbCAqU1ZHTG9jYXRhYmxl
SW1wbDo6ZmFydGhlCiAgICAgd2hpbGUobiAmJiBuLT5ub2RlVHlwZSgpICE9IEtET006OkRPQ1VN
RU5UX05PREUpCiAgICAgewogICAgICAgICBpZihuLT5ub2RlVHlwZSgpID09IEtET006OkVMRU1F
TlRfTk9ERSAmJgotICAgICAgICAgICAgKG4tPmlkKCkgPT0gSURfU1ZHIHx8IG4tPmlkKCkgPT0g
SURfU1lNQk9MIHx8Ci0gICAgICAgICAgICAgbi0+aWQoKSA9PSBJRF9GT1JFSUdOT0JKRUNUIHx8
IG4tPmlkKCkgPT0gSURfSU1BR0UpKQorICAgICAgICAgICAgKG4tPmhhc1RhZ05hbWUoU1ZHTmFt
ZXM6OnN2Z1RhZykgfHwgbi0+aGFzVGFnTmFtZShTVkdOYW1lczo6c3ltYm9sVGFnKSB8fAorICAg
ICAgICAgICAgIG4tPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZvcmVpZ25vYmplY3RUYWcpIHx8IG4t
Pmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmltYWdlVGFnKSkpCiAgICAgICAgICAgICBmYXJ0aGVzdCA9
IHN0YXRpY19jYXN0PFNWR0VsZW1lbnRJbXBsICo+KG4pOwogCiAgICAgICAgIG4gPSBuLT5wYXJl
bnROb2RlKCk7CkluZGV4OiBrc3ZnMi9zdmcvU1ZHTWFya2VyRWxlbWVudEltcGwuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdNYXJrZXJF
bGVtZW50SW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNgpkaWZmIC1wIC11IC1yMS42
IGtzdmcyL3N2Zy9TVkdNYXJrZXJFbGVtZW50SW1wbC5jcHAKLS0tIGtzdmcyL3N2Zy9TVkdNYXJr
ZXJFbGVtZW50SW1wbC5jcHAJNSBPY3QgMjAwNSAwNTozNToyNCAtMDAwMAkxLjYKKysrIGtzdmcy
L3N2Zy9TVkdNYXJrZXJFbGVtZW50SW1wbC5jcHAJMSBOb3YgMjAwNSAxMToxMzoxOCAtMDAwMApA
QCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUgPGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdEZXZp
Y2UuaD4KIAogI2luY2x1ZGUgImtzdmcuaCIKLSNpbmNsdWRlICJzdmdhdHRycy5oIgorI2luY2x1
ZGUgImtzdmcyL3N2Zy9TVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR0hlbHBlci5oIgogI2luY2x1
ZGUgIlNWR0FuZ2xlSW1wbC5oIgogI2luY2x1ZGUgIlNWR0xlbmd0aEltcGwuaCIKQEAgLTQ2LDgg
KzQ2LDggQEAKIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKLVNWR01hcmtlckVsZW1lbnRJbXBs
OjpTVkdNYXJrZXJFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2Rl
SW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZpeCkKLTogU1ZHU3R5bGVkRWxl
bWVudEltcGwoZG9jLCBpZCwgcHJlZml4KSwgU1ZHTGFuZ1NwYWNlSW1wbCgpLAorU1ZHTWFya2Vy
RWxlbWVudEltcGw6OlNWR01hcmtlckVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50UHRyICpkb2MpCis6IFNWR1N0eWxlZEVsZW1lbnRJ
bXBsKHRhZ05hbWUsIGRvYyksIFNWR0xhbmdTcGFjZUltcGwoKSwKICAgU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZEltcGwoKSwgU1ZHRml0VG9WaWV3Qm94SW1wbCgpCiB7CiAgICAgbV9yZWZY
ID0gbV9yZWZZID0gbV9tYXJrZXJXaWR0aCA9IG1fbWFya2VySGVpZ2h0ID0gMDsKQEAgLTc2LDUx
ICs3NiwzNCBAQCBTVkdNYXJrZXJFbGVtZW50SW1wbDo6flNWR01hcmtlckVsZW1lbnRJCiAKIHZv
aWQgU1ZHTWFya2VyRWxlbWVudEltcGw6OnBhcnNlQXR0cmlidXRlKEtET006OkF0dHJpYnV0ZUlt
cGwgKmF0dHIpCiB7Ci0gICAgaW50IGlkID0gKGF0dHItPmlkKCkgJiBOb2RlSW1wbF9JZExvY2Fs
TWFzayk7Ci0gICAgS0RPTTo6RE9NU3RyaW5nSW1wbCAqdmFsdWUgPSBhdHRyLT52YWx1ZSgpOwot
ICAgIHN3aXRjaChpZCkKKyAgICBjb25zdCBLRE9NOjpBdG9taWNTdHJpbmcmIHZhbHVlID0gYXR0
ci0+dmFsdWUoKTsKKyAgICBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjpyZWZ4QXR0cikK
KyAgICAgICAgcmVmWCgpLT5iYXNlVmFsKCktPnNldFZhbHVlQXNTdHJpbmcodmFsdWUuaW1wbCgp
KTsKKyAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnJlZnhBdHRyKQorICAg
ICAgICByZWZZKCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZS5pbXBsKCkpOwor
ICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6bWFya2Vyd2lkdGhBdHRyKQor
ICAgICAgICBtYXJrZXJXaWR0aCgpLT5iYXNlVmFsKCktPnNldFZhbHVlQXNTdHJpbmcodmFsdWUu
aW1wbCgpKTsKKyAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6Om1hcmtlcmhl
aWdodEF0dHIpCisgICAgICAgIG1hcmtlckhlaWdodCgpLT5iYXNlVmFsKCktPnNldFZhbHVlQXNT
dHJpbmcodmFsdWUuaW1wbCgpKTsKKyAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFt
ZXM6Om9yaWVudEF0dHIpCiAgICAgewotICAgICAgICBjYXNlIEFUVFJfUkVGWDoKLSAgICAgICAg
ewotICAgICAgICAgICAgcmVmWCgpLT5iYXNlVmFsKCktPnNldFZhbHVlQXNTdHJpbmcodmFsdWUp
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBBVFRSX1JFRlk6
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJlZlkoKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3Ry
aW5nKHZhbHVlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2Ug
QVRUUl9NQVJLRVJXSURUSDoKLSAgICAgICAgewotICAgICAgICAgICAgbWFya2VyV2lkdGgoKS0+
YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICB9Ci0gICAgICAgIGNhc2UgQVRUUl9NQVJLRVJIRUlHSFQ6Ci0gICAgICAgIHsKLSAg
ICAgICAgICAgIG1hcmtlckhlaWdodCgpLT5iYXNlVmFsKCktPnNldFZhbHVlQXNTdHJpbmcodmFs
dWUpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGlmKEtET006OkRPTVN0cmluZyh2YWx1
ZSkgPT0gImF1dG8iKQorICAgICAgICAgICAgc2V0T3JpZW50VG9BdXRvKCk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgeworICAgICAgICAgICAgU1ZHQW5nbGVJbXBsICphbmdsZSA9IFNWR1NWR0Vs
ZW1lbnRJbXBsOjpjcmVhdGVTVkdBbmdsZSgpOworICAgICAgICAgICAgYW5nbGUtPnNldFZhbHVl
QXNTdHJpbmcodmFsdWUuaW1wbCgpKTsKKyAgICAgICAgICAgIHNldE9yaWVudFRvQW5nbGUoYW5n
bGUpOwogICAgICAgICB9Ci0gICAgICAgIGNhc2UgQVRUUl9PUklFTlQ6Ci0gICAgICAgIHsKLSAg
ICAgICAgICAgIGlmKEtET006OkRPTVN0cmluZyh2YWx1ZSkgPT0gImF1dG8iKQotICAgICAgICAg
ICAgICAgIHNldE9yaWVudFRvQXV0bygpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgIFNWR0FuZ2xlSW1wbCAqYW5nbGUgPSBTVkdTVkdFbGVtZW50SW1w
bDo6Y3JlYXRlU1ZHQW5nbGUoKTsKLSAgICAgICAgICAgICAgICBhbmdsZS0+c2V0VmFsdWVBc1N0
cmluZyh2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgc2V0T3JpZW50VG9BbmdsZShhbmdsZSk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBkZWZh
dWx0OgotICAgICAgICB7Ci0gICAgICAgICAgICBpZihTVkdMYW5nU3BhY2VJbXBsOjpwYXJzZUF0
dHJpYnV0ZShhdHRyKSkgcmV0dXJuOwotICAgICAgICAgICAgaWYoU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZEltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47Ci0gICAgICAgICAg
ICBpZihTVkdGaXRUb1ZpZXdCb3hJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOwor
ICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICBpZihTVkdMYW5nU3BhY2VJbXBsOjpwYXJz
ZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOworICAgICAgICBpZihTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsKKyAgICAgICAgaWYo
U1ZHRml0VG9WaWV3Qm94SW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsKIAotICAg
ICAgICAgICAgU1ZHU3R5bGVkRWxlbWVudEltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpOwotICAg
ICAgICB9Ci0gICAgfTsKKyAgICAgICAgU1ZHU3R5bGVkRWxlbWVudEltcGw6OnBhcnNlQXR0cmli
dXRlKGF0dHIpOworICAgIH0KIH0KIAogU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsICpTVkdNYXJrZXJF
bGVtZW50SW1wbDo6cmVmWCgpIGNvbnN0CkBAIC0xNzUsMTIgKzE1OCwxMiBAQCB2b2lkIFNWR01h
cmtlckVsZW1lbnRJbXBsOjpzZXRPcmllbnRUb0FuCiAgICAgb3JpZW50QW5nbGUoKS0+c2V0QmFz
ZVZhbChhbmdsZSk7CiB9CiAKLXZvaWQgU1ZHTWFya2VyRWxlbWVudEltcGw6OmNsb3NlKCkKK3Zv
aWQgU1ZHTWFya2VyRWxlbWVudEltcGw6OmNsb3NlUmVuZGVyZXIoKQogewogICAgIGlmKCFtX21h
cmtlcikKICAgICB7CiAgICAgICAgIG1fbWFya2VyID0gc3RhdGljX2Nhc3Q8S0NhbnZhc01hcmtl
ciAqPihjYW52YXMoKS0+cmVuZGVyaW5nRGV2aWNlKCktPmNyZWF0ZVJlc291cmNlKFJTX01BUktF
UikpOwotICAgICAgICBjYW52YXMoKS0+cmVnaXN0cnkoKS0+YWRkUmVzb3VyY2VCeUlkKEtET006
OkRPTVN0cmluZyhnZXRJZCgpKS5zdHJpbmcoKSwgbV9tYXJrZXIpOworICAgICAgICBjYW52YXMo
KS0+cmVnaXN0cnkoKS0+YWRkUmVzb3VyY2VCeUlkKGdldEF0dHJpYnV0ZSgiaWQiKS5xc3RyaW5n
KCksIG1fbWFya2VyKTsKICAgICB9CiAgICAgCiAgICAgbV9tYXJrZXItPnNldE1hcmtlcihtX2Nh
bnZhc0l0ZW0pOwpAQCAtMTkwLDcgKzE3Myw3IEBAIHZvaWQgU1ZHTWFya2VyRWxlbWVudEltcGw6
OmNsb3NlKCkKICAgICBpZighbV9vcmllbnRUeXBlKQogICAgIHsKICAgICAgICAgU1ZHQW5nbGVJ
bXBsICphbmdsZSA9IFNWR1NWR0VsZW1lbnRJbXBsOjpjcmVhdGVTVkdBbmdsZSgpOwotICAgICAg
ICBhbmdsZS0+c2V0VmFsdWVBc1N0cmluZyhLRE9NOjpET01TdHJpbmcoIjAiKS5oYW5kbGUoKSk7
CisgICAgICAgIGFuZ2xlLT5zZXRWYWx1ZUFzU3RyaW5nKEtET006OkRPTVN0cmluZygiMCIpLmlt
cGwoKSk7CiAgICAgICAgIHNldE9yaWVudFRvQW5nbGUoYW5nbGUpOwogICAgIH0KICAgICAKSW5k
ZXg6IGtzdmcyL3N2Zy9TVkdNYXJrZXJFbGVtZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdNYXJrZXJFbGVtZW50SW1wbC5oLHYK
cmV0cmlldmluZyByZXZpc2lvbiAxLjQKZGlmZiAtcCAtdSAtcjEuNCBrc3ZnMi9zdmcvU1ZHTWFy
a2VyRWxlbWVudEltcGwuaAotLS0ga3N2ZzIvc3ZnL1NWR01hcmtlckVsZW1lbnRJbXBsLmgJMSBT
ZXAgMjAwNSAwNzozNTo0NSAtMDAwMAkxLjQKKysrIGtzdmcyL3N2Zy9TVkdNYXJrZXJFbGVtZW50
SW1wbC5oCTEgTm92IDIwMDUgMTE6MTM6MTggLTAwMDAKQEAgLTQ3LDExICs0NywxMSBAQCBuYW1l
c3BhY2UgS1NWRwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0Zp
dFRvVmlld0JveEltcGwKICAgICB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdNYXJrZXJFbGVt
ZW50SW1wbChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtE
T006OkRPTVN0cmluZ0ltcGwgKnByZWZpeCk7CisgICAgICAgIFNWR01hcmtlckVsZW1lbnRJbXBs
KGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50UHRyICpk
b2MpOwogICAgICAgICB2aXJ0dWFsIH5TVkdNYXJrZXJFbGVtZW50SW1wbCgpOwogCiAgICAgICAg
IC8vIERlcml2ZWQgZnJvbTogJ0VsZW1lbnRJbXBsJwotICAgICAgICB2aXJ0dWFsIHZvaWQgY2xv
c2UoKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGNsb3NlUmVuZGVyZXIoKTsKIAogICAgICAgICAv
LyAnU1ZHTWFya2VyRWxlbWVudCcgZnVuY3Rpb25zCiAgICAgICAgIFNWR0FuaW1hdGVkTGVuZ3Ro
SW1wbCAqcmVmWCgpIGNvbnN0OwpJbmRleDoga3N2ZzIvc3ZnL1NWR05hbWVzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ClJDUyBmaWxlOiBrc3ZnMi9zdmcvU1ZHTmFtZXMuY3BwCmRpZmYgLU4ga3N2ZzIvc3ZnL1NW
R05hbWVzLmNwcAotLS0ga3N2ZzIvc3ZnL1NWR05hbWVzLmNwcAkxIEphbiAxOTcwIDAwOjAwOjAw
IC0wMDAwCisrKyBrc3ZnMi9zdmcvU1ZHTmFtZXMuY3BwCTEgTm92IDIwMDUgMTE6MTM6MTggLTAw
MDAKQEAgLTAsMCArMSwxNTUgQEAKKy8qCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgU1ZH
IERPTSBpbXBsZW1lbnRhdGlvbiBmb3IgS0RFLgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNSBB
cHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyAqIEJvc3RvbiwgTUEgMDIxMTEtMTMw
NywgVVNBLgorICoKKyAqLworCisjZGVmaW5lIERPTV9TVkdOQU1FU19ISURFX0dMT0JBTFMgMQor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKworbmFtZXNwYWNl
IEtTVkcgeyBuYW1lc3BhY2UgU1ZHTmFtZXMgeworCit1c2luZyBuYW1lc3BhY2UgS0RPTTsKKwor
Ly8gRGVmaW5lIGEgcHJvcGVybHktc2l6ZWQgYXJyYXkgb2YgcG9pbnRlcnMgdG8gYXZvaWQgc3Rh
dGljIGluaXRpYWxpemF0aW9uLgorLy8gVXNlIGFuIGFycmF5IG9mIHBvaW50ZXJzIGluc3RlYWQg
b2YgYW4gYXJyYXkgb2YgY2hhciBpbiBjYXNlIHRoZXJlIGlzIHNvbWUgYWxpZ25tZW50IGlzc3Vl
LgorCisjZGVmaW5lIERFRklORV9VTklOSVRJQUxJWkVEX0dMT0JBTCh0eXBlLCBuYW1lKSB2b2lk
ICpuYW1lWyhzaXplb2YodHlwZSkgKyBzaXplb2Yodm9pZCAqKSAtIDEpIC8gc2l6ZW9mKHZvaWQg
KildOworCitERUZJTkVfVU5JTklUSUFMSVpFRF9HTE9CQUwoRE9NOjpBdG9taWNTdHJpbmcsIHN2
Z05hbWVzcGFjZVVSSSkKKworI2RlZmluZSBERUZJTkVfVEFHX0dMT0JBTChuYW1lKSBERUZJTkVf
VU5JTklUSUFMSVpFRF9HTE9CQUwoRE9NOjpRdWFsaWZpZWROYW1lLCBuYW1lIyNUYWcpCitET01f
U1ZHTkFNRVNfRk9SX0VBQ0hfVEFHKERFRklORV9UQUdfR0xPQkFMKQorCisjZGVmaW5lIERFRklO
RV9BVFRSX0dMT0JBTChuYW1lKSBERUZJTkVfVU5JTklUSUFMSVpFRF9HTE9CQUwoRE9NOjpRdWFs
aWZpZWROYW1lLCBuYW1lIyNBdHRyKQorRE9NX1NWR05BTUVTX0ZPUl9FQUNIX0FUVFIoREVGSU5F
X0FUVFJfR0xPQkFMKQorCit2b2lkIGluaXQoKQoreworICAgIHN0YXRpYyBib29sIGluaXRpYWxp
emVkID0gZmFsc2U7CisgICAgaWYgKGluaXRpYWxpemVkKQorICAgICAgICByZXR1cm47CisgICAg
aW5pdGlhbGl6ZWQgPSB0cnVlOworICAgIAorICAgIC8vIFVzZSBwbGFjZW1lbnQgbmV3IHRvIGlu
aXRpYWxpemUgdGhlIGdsb2JhbHMuCisKKyAgICBET006OkF0b21pY1N0cmluZyBzdmdOUygiaHR0
cDovL3d3dy53My5vcmcvMjAwMC9zdmciKTsKKworICAgIC8vIE5hbWVzcGFjZQorICAgIG5ldyAo
JnN2Z05hbWVzcGFjZVVSSSkgRE9NOjpBdG9taWNTdHJpbmcoc3ZnTlMpOworICAgIC8vIFRhZ3MK
KyAgICAjZGVmaW5lIERFRklORV9UQUdfU1RSSU5HKG5hbWUpIGNvbnN0IGNoYXIgKm5hbWUjI1Rh
Z1N0cmluZyA9ICNuYW1lOworICAgIERPTV9TVkdOQU1FU19GT1JfRUFDSF9UQUcoREVGSU5FX1RB
R19TVFJJTkcpCisKKyAgICBjb2xvcl9wcm9maWxlVGFnU3RyaW5nID0gImNvbG9yLXByb2ZpbGUi
OworICAgIGRlZmluaXRpb25fc3JjVGFnU3RyaW5nID0gImRlZmluaXRpb24tc3JjIjsKKyAgICBm
b250X2ZhY2VUYWdTdHJpbmcgPSAiZm9udC1mYWNlIjsKKyAgICBmb250X2ZhY2VfZm9ybWF0VGFn
U3RyaW5nID0gImZvbnQtZmFjZV9mb3JtYXQiOworICAgIGZvbnRfZmFjZV9uYW1lVGFnU3RyaW5n
ID0gImZvbnQtZmFjZV9uYW1lIjsKKyAgICBmb250X2ZhY2Vfc3JjVGFnU3RyaW5nID0gImZvbnQt
ZmFjZV9zcmMiOworICAgIGZvbnRfZmFjZV91cmlUYWdTdHJpbmcgPSAiZm9udC1mYWNlX3VyaSI7
CisgICAgbWlzc2luZ19nbHlwaFRhZ1N0cmluZyA9ICJtaXNzaW5nLWdseXBoIjsKKworICAgICNk
ZWZpbmUgSU5JVElBTElaRV9UQUdfR0xPQkFMKG5hbWUpIG5ldyAoJm5hbWUjI1RhZykgRE9NOjpR
dWFsaWZpZWROYW1lKG51bGxBdG9tLCBuYW1lIyNUYWdTdHJpbmcsIHN2Z05TKTsKKyAgICBET01f
U1ZHTkFNRVNfRk9SX0VBQ0hfVEFHKElOSVRJQUxJWkVfVEFHX0dMT0JBTCkKKworICAgIC8vIEF0
dHJpYnV0ZXMKKyAgICAjZGVmaW5lIERFRklORV9BVFRSX1NUUklORyhuYW1lKSBjb25zdCBjaGFy
ICpuYW1lIyNBdHRyU3RyaW5nID0gI25hbWU7CisgICAgRE9NX1NWR05BTUVTX0ZPUl9FQUNIX0FU
VFIoREVGSU5FX0FUVFJfU1RSSU5HKQorCisgICAgYWNjZW50X2hlaWdodEF0dHJTdHJpbmcgPSAi
YWNjZW50LWhlaWdodCI7CisgICAgYWxpZ25tZW50X2Jhc2VsaW5lQXR0clN0cmluZyA9ICJhbGln
bm1lbnQtYmFzZWxpbmUiOworICAgIGFyYWJpY19mb3JtQXR0clN0cmluZyA9ICJhcmFiaWMtZm9y
bSI7CisgICAgYmFzZWxpbmVfc2hpZnRBdHRyU3RyaW5nID0gImJhc2VsaW5lLXNoaWZ0IjsKKyAg
ICBjYXBfaGVpZ2h0QXR0clN0cmluZyA9ICJjYXAtaGVpZ2h0IjsKKyAgICBjbGlwX3BhdGhBdHRy
U3RyaW5nID0gImNsaXAtcGF0aCI7CisgICAgY2xpcF9ydWxlQXR0clN0cmluZyA9ICJjbGlwLXJ1
bGUiOworICAgIGNvbG9yX2ludGVycG9sYXRpb25BdHRyU3RyaW5nID0gImNvbG9yLWludGVycG9s
YXRpb24iOworICAgIGNvbG9yX2ludGVycG9sYXRpb25fZmlsdGVyc0F0dHJTdHJpbmcgPSAiY29s
b3ItaW50ZXJwb2xhdGlvbl9maWx0ZXJzIjsKKyAgICBjb2xvcl9wcm9maWxlQXR0clN0cmluZyA9
ICJjb2xvci1wcm9maWxlIjsKKyAgICBjb2xvcl9yZW5kZXJpbmdBdHRyU3RyaW5nID0gImNvbG9y
LXJlbmRlcmluZyI7CisgICAgZG9taW5hbnRfYmFzZWxpbmVBdHRyU3RyaW5nID0gImRvbWluYW50
LWJhc2VsaW5lIjsKKyAgICBlbmFibGVfYmFja2dyb3VuZEF0dHJTdHJpbmcgPSAiZW5hYmxlLWJh
Y2tncm91bmQiOworICAgIGZpbGxfb3BhY2l0eUF0dHJTdHJpbmcgPSAiZmlsbC1vcGFjaXR5IjsK
KyAgICBmaWxsX3J1bGVBdHRyU3RyaW5nID0gImZpbGwtcnVsZSI7CisgICAgZmxvb2RfY29sb3JB
dHRyU3RyaW5nID0gImZsb29kLWNvbG9yIjsKKyAgICBmbG9vZF9vcGFjaXR5QXR0clN0cmluZyA9
ICJmbG9vZC1vcGFjaXR5IjsKKyAgICBmb250X2ZhbWlseUF0dHJTdHJpbmcgPSAiZm9udC1mYW1p
bHkiOworICAgIGZvbnRfc2l6ZUF0dHJTdHJpbmcgPSAiZm9udC1zaXplIjsKKyAgICBmb250X3Np
emVfYWRqdXN0QXR0clN0cmluZyA9ICJmb250LXNpemVfYWRqdXN0IjsKKyAgICBmb250X3N0cmV0
Y2hBdHRyU3RyaW5nID0gImZvbnQtc3RyZXRjaCI7CisgICAgZm9udF9zdHlsZUF0dHJTdHJpbmcg
PSAiZm9udC1zdHlsZSI7CisgICAgZm9udF92YXJpYW50QXR0clN0cmluZyA9ICJmb250LXZhcmlh
bnQiOworICAgIGZvbnRfd2VpZ2h0QXR0clN0cmluZyA9ICJmb250LXdlaWdodCI7CisgICAgZ2x5
cGhfbmFtZUF0dHJTdHJpbmcgPSAiZ2x5cGgtbmFtZSI7CisgICAgZ2x5cGhfb3JpZW50YXRpb25f
aG9yaXpvbnRhbEF0dHJTdHJpbmcgPSAiZ2x5cGgtb3JpZW50YXRpb25faG9yaXpvbnRhbCI7Cisg
ICAgZ2x5cGhfb3JpZW50YXRpb25fdmVydGljYWxBdHRyU3RyaW5nID0gImdseXBoLW9yaWVudGF0
aW9uX3ZlcnRpY2FsIjsKKyAgICBob3Jpel9hZHZfeEF0dHJTdHJpbmcgPSAiaG9yaXotYWR2X3gi
OworICAgIGhvcml6X29yaWdpbl94QXR0clN0cmluZyA9ICJob3Jpei1vcmlnaW5feCI7CisgICAg
aG9yaXpfb3JpZ2luX3lBdHRyU3RyaW5nID0gImhvcml6LW9yaWdpbl95IjsKKyAgICBpbWFnZV9y
ZW5kZXJpbmdBdHRyU3RyaW5nID0gImltYWdlLXJlbmRlcmluZyI7CisgICAgbGV0dGVyX3NwYWNp
bmdBdHRyU3RyaW5nID0gImxldHRlci1zcGFjaW5nIjsKKyAgICBsaWdodGluZ19jb2xvckF0dHJT
dHJpbmcgPSAibGlnaHRpbmctY29sb3IiOworICAgIG1hcmtlcl9lbmRBdHRyU3RyaW5nID0gIm1h
cmtlci1lbmQiOworICAgIG1hcmtlcl9taWRBdHRyU3RyaW5nID0gIm1hcmtlci1taWQiOworICAg
IG1hcmtlcl9zdGFydEF0dHJTdHJpbmcgPSAibWFya2VyLXN0YXJ0IjsKKyAgICBvdmVybGluZV9w
b3NpdGlvbkF0dHJTdHJpbmcgPSAib3ZlcmxpbmUtcG9zaXRpb24iOworICAgIG92ZXJsaW5lX3Ro
aWNrbmVzc0F0dHJTdHJpbmcgPSAib3ZlcmxpbmUtdGhpY2tuZXNzIjsKKyAgICBwYW5vc2VfMUF0
dHJTdHJpbmcgPSAicGFub3NlLTEiOworICAgIHBvaW50ZXJfZXZlbnRzQXR0clN0cmluZyA9ICJw
b2ludGVyLWV2ZW50cyI7CisgICAgcmVuZGVyaW5nX2ludGVudEF0dHJTdHJpbmcgPSAicmVuZGVy
aW5nLWludGVudCI7CisgICAgc2hhcGVfcmVuZGVyaW5nQXR0clN0cmluZyA9ICJzaGFwZS1yZW5k
ZXJpbmciOworICAgIHN0b3BfY29sb3JBdHRyU3RyaW5nID0gInN0b3AtY29sb3IiOworICAgIHN0
b3Bfb3BhY2l0eUF0dHJTdHJpbmcgPSAic3RvcC1vcGFjaXR5IjsKKyAgICBzdHJpa2V0aHJvdWdo
X3Bvc2l0aW9uQXR0clN0cmluZyA9ICJzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIjsKKyAgICBzdHJp
a2V0aHJvdWdoX3RoaWNrbmVzc0F0dHJTdHJpbmcgPSAic3RyaWtldGhyb3VnaC10aGlja25lc3Mi
OworICAgIHN0cm9rZV9kYXNoYXJyYXlBdHRyU3RyaW5nID0gInN0cm9rZS1kYXNoYXJyYXkiOwor
ICAgIHN0cm9rZV9kYXNob2Zmc2V0QXR0clN0cmluZyA9ICJzdHJva2UtZGFzaG9mZnNldCI7Cisg
ICAgc3Ryb2tlX2xpbmVjYXBBdHRyU3RyaW5nID0gInN0cm9rZS1saW5lY2FwIjsKKyAgICBzdHJv
a2VfbGluZWpvaW5BdHRyU3RyaW5nID0gInN0cm9rZS1saW5lam9pbiI7CisgICAgc3Ryb2tlX21p
dGVybGltaXRBdHRyU3RyaW5nID0gInN0cm9rZS1taXRlcmxpbWl0IjsKKyAgICBzdHJva2Vfb3Bh
Y2l0eUF0dHJTdHJpbmcgPSAic3Ryb2tlLW9wYWNpdHkiOworICAgIHN0cm9rZV93aWR0aEF0dHJT
dHJpbmcgPSAic3Ryb2tlLXdpZHRoIjsKKyAgICB0ZXh0X2FuY2hvckF0dHJTdHJpbmcgPSAidGV4
dC1hbmNob3IiOworICAgIHRleHRfZGVjb3JhdGlvbkF0dHJTdHJpbmcgPSAidGV4dC1kZWNvcmF0
aW9uIjsKKyAgICB0ZXh0X3JlbmRlcmluZ0F0dHJTdHJpbmcgPSAidGV4dC1yZW5kZXJpbmciOwor
ICAgIHVuZGVybGluZV9wb3NpdGlvbkF0dHJTdHJpbmcgPSAidW5kZXJsaW5lLXBvc2l0aW9uIjsK
KyAgICB1bmRlcmxpbmVfdGhpY2tuZXNzQXR0clN0cmluZyA9ICJ1bmRlcmxpbmUtdGhpY2tuZXNz
IjsKKyAgICB1bmljb2RlX2JpZGlBdHRyU3RyaW5nID0gInVuaWNvZGUtYmlkaSI7CisgICAgdW5p
Y29kZV9yYW5nZUF0dHJTdHJpbmcgPSAidW5pY29kZS1yYW5nZSI7CisgICAgdW5pdHNfcGVyX2Vt
QXR0clN0cmluZyA9ICJ1bml0cy1wZXJfZW0iOworICAgIHZfYWxwaGFiZXRpY0F0dHJTdHJpbmcg
PSAidi1hbHBoYWJldGljIjsKKyAgICB2X2hhbmdpbmdBdHRyU3RyaW5nID0gInYtaGFuZ2luZyI7
CisgICAgdl9pZGVvZ3JhcGhpY0F0dHJTdHJpbmcgPSAidi1pZGVvZ3JhcGhpYyI7CisgICAgdl9t
YXRoZW1hdGljYWxBdHRyU3RyaW5nID0gInYtbWF0aGVtYXRpY2FsIjsKKyAgICB2ZXJ0X2Fkdl95
QXR0clN0cmluZyA9ICJ2ZXJ0LWFkdl95IjsKKyAgICB2ZXJ0X29yaWdpbl94QXR0clN0cmluZyA9
ICJ2ZXJ0LW9yaWdpbl94IjsKKyAgICB2ZXJ0X29yaWdpbl95QXR0clN0cmluZyA9ICJ2ZXJ0LW9y
aWdpbl95IjsKKyAgICB3b3JkX3NwYWNpbmdBdHRyU3RyaW5nID0gIndvcmQtc3BhY2luZyI7Cisg
ICAgd3JpdGluZ19tb2RlQXR0clN0cmluZyA9ICJ3cml0aW5nLW1vZGUiOworICAgIHhfaGVpZ2h0
QXR0clN0cmluZyA9ICJ4LWhlaWdodCI7CisKKyAgICAjZGVmaW5lIElOSVRJQUxJWkVfQVRUUl9H
TE9CQUwobmFtZSkgbmV3ICgmbmFtZSMjQXR0cikgRE9NOjpRdWFsaWZpZWROYW1lKG51bGxBdG9t
LCBuYW1lIyNBdHRyU3RyaW5nLCBudWxsQXRvbSk7CisgICAgRE9NX1NWR05BTUVTX0ZPUl9FQUNI
X0FUVFIoSU5JVElBTElaRV9BVFRSX0dMT0JBTCkKKworfQorCit9IH0KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCkluZGV4OiBrc3ZnMi9zdmcvU1ZHTmFtZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiBrc3ZnMi9zdmcvU1ZHTmFtZXMuaApkaWZmIC1OIGtzdmcyL3N2Zy9TVkdOYW1lcy5oCi0t
LSBrc3ZnMi9zdmcvU1ZHTmFtZXMuaAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyBrc3Zn
Mi9zdmcvU1ZHTmFtZXMuaAkxIE5vdiAyMDA1IDExOjEzOjE4IC0wMDAwCkBAIC0wLDAgKzEsMzgy
IEBACisvKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFNWRyBET00gaW1wbGVtZW50YXRp
b24gZm9yIEtERS4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxh
Y2UgLSBTdWl0ZSAzMzAsCisgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyAqCisgKi8K
KworI2lmbmRlZiBET01fU1ZHTkFNRVNfSAorI2RlZmluZSBET01fU1ZHTkFNRVNfSAorCisjaW5j
bHVkZSAiZG9tX3FuYW1lLmgiCisKK25hbWVzcGFjZSBLU1ZHIHsgbmFtZXNwYWNlIFNWR05hbWVz
IHsKKworI2RlZmluZSBET01fU1ZHTkFNRVNfRk9SX0VBQ0hfVEFHKG1hY3JvKSBcCisgICAgbWFj
cm8oYSkgXAorICAgIG1hY3JvKGFsdGdseXBoKSBcCisgICAgbWFjcm8oYWx0Z2x5cGhkZWYpIFwK
KyAgICBtYWNybyhhbHRnbHlwaGl0ZW0pIFwKKyAgICBtYWNybyhhbmltYXRlKSBcCisgICAgbWFj
cm8oYW5pbWF0ZWNvbG9yKSBcCisgICAgbWFjcm8oYW5pbWF0ZW1vdGlvbikgXAorICAgIG1hY3Jv
KGFuaW1hdGV0cmFuc2Zvcm0pIFwKKyAgICBtYWNybyhjaXJjbGUpIFwKKyAgICBtYWNybyhjbGlw
cGF0aCkgXAorICAgIG1hY3JvKGNvbG9yX3Byb2ZpbGUpIFwKKyAgICBtYWNybyhjdXJzb3IpIFwK
KyAgICBtYWNybyhkZWZpbml0aW9uX3NyYykgXAorICAgIG1hY3JvKGRlZnMpIFwKKyAgICBtYWNy
byhkZXNjKSBcCisgICAgbWFjcm8oZWxsaXBzZSkgXAorICAgIG1hY3JvKGZlYmxlbmQpIFwKKyAg
ICBtYWNybyhmZWNvbG9ybWF0cml4KSBcCisgICAgbWFjcm8oZmVjb21wb25lbnR0cmFuc2Zlcikg
XAorICAgIG1hY3JvKGZlY29tcG9zaXRlKSBcCisgICAgbWFjcm8oZmVjb252b2x2ZW1hdHJpeCkg
XAorICAgIG1hY3JvKGZlZGlmZnVzZWxpZ2h0aW5nKSBcCisgICAgbWFjcm8oZmVkaXNwbGFjZW1l
bnRtYXApIFwKKyAgICBtYWNybyhmZWRpc3RhbnRsaWdodCkgXAorICAgIG1hY3JvKGZlZmxvb2Qp
IFwKKyAgICBtYWNybyhmZWZ1bmNhKSBcCisgICAgbWFjcm8oZmVmdW5jYikgXAorICAgIG1hY3Jv
KGZlZnVuY2cpIFwKKyAgICBtYWNybyhmZWZ1bmNyKSBcCisgICAgbWFjcm8oZmVnYXVzc2lhbmJs
dXIpIFwKKyAgICBtYWNybyhmZWltYWdlKSBcCisgICAgbWFjcm8oZmVtZXJnZSkgXAorICAgIG1h
Y3JvKGZlbWVyZ2Vub2RlKSBcCisgICAgbWFjcm8oZmVtb3JwaG9sb2d5KSBcCisgICAgbWFjcm8o
ZmVvZmZzZXQpIFwKKyAgICBtYWNybyhmZXBvaW50bGlnaHQpIFwKKyAgICBtYWNybyhmZXNwZWN1
bGFybGlnaHRpbmcpIFwKKyAgICBtYWNybyhmZXNwb3RsaWdodCkgXAorICAgIG1hY3JvKGZldGls
ZSkgXAorICAgIG1hY3JvKGZldHVyYnVsZW5jZSkgXAorICAgIG1hY3JvKGZpbHRlcikgXAorICAg
IG1hY3JvKGZvbnQpIFwKKyAgICBtYWNybyhmb250X2ZhY2UpIFwKKyAgICBtYWNybyhmb250X2Zh
Y2VfZm9ybWF0KSBcCisgICAgbWFjcm8oZm9udF9mYWNlX25hbWUpIFwKKyAgICBtYWNybyhmb250
X2ZhY2Vfc3JjKSBcCisgICAgbWFjcm8oZm9udF9mYWNlX3VyaSkgXAorICAgIG1hY3JvKGZvcmVp
Z25vYmplY3QpIFwKKyAgICBtYWNybyhnKSBcCisgICAgbWFjcm8oZ2x5cGgpIFwKKyAgICBtYWNy
byhnbHlwaHJlZikgXAorICAgIG1hY3JvKGhrZXJuKSBcCisgICAgbWFjcm8oaW1hZ2UpIFwKKyAg
ICBtYWNybyhsaW5lKSBcCisgICAgbWFjcm8obGluZWFyZ3JhZGllbnQpIFwKKyAgICBtYWNybyht
YXJrZXIpIFwKKyAgICBtYWNybyhtYXNrKSBcCisgICAgbWFjcm8obWV0YWRhdGEpIFwKKyAgICBt
YWNybyhtaXNzaW5nX2dseXBoKSBcCisgICAgbWFjcm8obXBhdGgpIFwKKyAgICBtYWNybyhwYXRo
KSBcCisgICAgbWFjcm8ocGF0dGVybikgXAorICAgIG1hY3JvKHBvbHlnb24pIFwKKyAgICBtYWNy
byhwb2x5bGluZSkgXAorICAgIG1hY3JvKHJhZGlhbGdyYWRpZW50KSBcCisgICAgbWFjcm8ocmVj
dCkgXAorICAgIG1hY3JvKHNjcmlwdCkgXAorICAgIG1hY3JvKHNldCkgXAorICAgIG1hY3JvKHN0
b3ApIFwKKyAgICBtYWNybyhzdHlsZSkgXAorICAgIG1hY3JvKHN2ZykgXAorICAgIG1hY3JvKHN3
aXRjaCkgXAorICAgIG1hY3JvKHN5bWJvbCkgXAorICAgIG1hY3JvKHRleHQpIFwKKyAgICBtYWNy
byh0ZXh0cGF0aCkgXAorICAgIG1hY3JvKHRpdGxlKSBcCisgICAgbWFjcm8odHJlZikgXAorICAg
IG1hY3JvKHRzcGFuKSBcCisgICAgbWFjcm8odXNlKSBcCisgICAgbWFjcm8odmlldykgXAorICAg
IG1hY3JvKHZrZXJuKSBcCisvLyBlbmQgb2YgbWFjcm8KKworI2RlZmluZSBET01fU1ZHTkFNRVNf
Rk9SX0VBQ0hfQVRUUihtYWNybykgXAorICAgIG1hY3JvKGFjY2VudF9oZWlnaHQpIFwKKyAgICBt
YWNybyhhY2N1bXVsYXRlKSBcCisgICAgbWFjcm8oYWRkaXRpdmUpIFwKKyAgICBtYWNybyhhbGln
bm1lbnRfYmFzZWxpbmUpIFwKKyAgICBtYWNybyhhbHBoYWJldGljKSBcCisgICAgbWFjcm8oYW1w
bGl0dWRlKSBcCisgICAgbWFjcm8oYW5pbWF0ZSkgXAorICAgIG1hY3JvKGFyYWJpY19mb3JtKSBc
CisgICAgbWFjcm8oYXNjZW50KSBcCisgICAgbWFjcm8oYXR0cmlidXRlbmFtZSkgXAorICAgIG1h
Y3JvKGF0dHJpYnV0ZXR5cGUpIFwKKyAgICBtYWNybyhhemltdXRoKSBcCisgICAgbWFjcm8oYmFz
ZWZyZXF1ZW5jeSkgXAorICAgIG1hY3JvKGJhc2VsaW5lX3NoaWZ0KSBcCisgICAgbWFjcm8oYmFz
ZXByb2ZpbGUpIFwKKyAgICBtYWNybyhiYm94KSBcCisgICAgbWFjcm8oYmVnaW4pIFwKKyAgICBt
YWNybyhiaWFzKSBcCisgICAgbWFjcm8oYnkpIFwKKyAgICBtYWNybyhjYWxjbW9kZSkgXAorICAg
IG1hY3JvKGNhcF9oZWlnaHQpIFwKKyAgICBtYWNybyhjbGlwKSBcCisgICAgbWFjcm8oY2xpcF9w
YXRoKSBcCisgICAgbWFjcm8oY2xpcF9ydWxlKSBcCisgICAgbWFjcm8oY2xpcHBhdGh1bml0cykg
XAorICAgIG1hY3JvKGNvbG9yKSBcCisgICAgbWFjcm8oY29sb3JfaW50ZXJwb2xhdGlvbikgXAor
ICAgIG1hY3JvKGNvbG9yX2ludGVycG9sYXRpb25fZmlsdGVycykgXAorICAgIG1hY3JvKGNvbG9y
X3Byb2ZpbGUpIFwKKyAgICBtYWNybyhjb2xvcl9yZW5kZXJpbmcpIFwKKyAgICBtYWNybyhjb250
ZW50c2NyaXB0dHlwZSkgXAorICAgIG1hY3JvKGNvbnRlbnRzdHlsZXR5cGUpIFwKKyAgICBtYWNy
byhjdXJzb3IpIFwKKyAgICBtYWNybyhjeCkgXAorICAgIG1hY3JvKGN5KSBcCisgICAgbWFjcm8o
ZCkgXAorICAgIG1hY3JvKGRlc2NlbnQpIFwKKyAgICBtYWNybyhkaWZmdXNlY29uc3RhbnQpIFwK
KyAgICBtYWNybyhkaXJlY3Rpb24pIFwKKyAgICBtYWNybyhkaXNwbGF5KSBcCisgICAgbWFjcm8o
ZGl2aXNvcikgXAorICAgIG1hY3JvKGRvbWluYW50X2Jhc2VsaW5lKSBcCisgICAgbWFjcm8oZHVy
KSBcCisgICAgbWFjcm8oZHgpIFwKKyAgICBtYWNybyhkeSkgXAorICAgIG1hY3JvKGVkZ2Vtb2Rl
KSBcCisgICAgbWFjcm8oZWxldmF0aW9uKSBcCisgICAgbWFjcm8oZW5hYmxlX2JhY2tncm91bmQp
IFwKKyAgICBtYWNybyhlbmQpIFwKKyAgICBtYWNybyhleHBvbmVudCkgXAorICAgIG1hY3JvKGV4
dGVybmFscmVzb3VyY2VzcmVxdWlyZWQpIFwKKyAgICBtYWNybyhmZWNvbG9ybWF0cml4KSBcCisg
ICAgbWFjcm8oZmVjb21wb3NpdGUpIFwKKyAgICBtYWNybyhmZWdhdXNzaWFuYmx1cikgXAorICAg
IG1hY3JvKGZlbW9ycGhvbG9neSkgXAorICAgIG1hY3JvKGZldGlsZSkgXAorICAgIG1hY3JvKGZp
bGwpIFwKKyAgICBtYWNybyhmaWxsX29wYWNpdHkpIFwKKyAgICBtYWNybyhmaWxsX3J1bGUpIFwK
KyAgICBtYWNybyhmaWx0ZXIpIFwKKyAgICBtYWNybyhmaWx0ZXJyZXMpIFwKKyAgICBtYWNybyhm
aWx0ZXJ1bml0cykgXAorICAgIG1hY3JvKGZsb29kX2NvbG9yKSBcCisgICAgbWFjcm8oZmxvb2Rf
b3BhY2l0eSkgXAorICAgIG1hY3JvKGZvbnRfZmFtaWx5KSBcCisgICAgbWFjcm8oZm9udF9zaXpl
KSBcCisgICAgbWFjcm8oZm9udF9zaXplX2FkanVzdCkgXAorICAgIG1hY3JvKGZvbnRfc3RyZXRj
aCkgXAorICAgIG1hY3JvKGZvbnRfc3R5bGUpIFwKKyAgICBtYWNybyhmb250X3ZhcmlhbnQpIFwK
KyAgICBtYWNybyhmb250X3dlaWdodCkgXAorICAgIG1hY3JvKGZvcm1hdCkgXAorICAgIG1hY3Jv
KGZyb20pIFwKKyAgICBtYWNybyhmeCkgXAorICAgIG1hY3JvKGZ5KSBcCisgICAgbWFjcm8oZzEp
IFwKKyAgICBtYWNybyhnMikgXAorICAgIG1hY3JvKGdseXBoX25hbWUpIFwKKyAgICBtYWNybyhn
bHlwaF9vcmllbnRhdGlvbl9ob3Jpem9udGFsKSBcCisgICAgbWFjcm8oZ2x5cGhfb3JpZW50YXRp
b25fdmVydGljYWwpIFwKKyAgICBtYWNybyhnbHlwaHJlZikgXAorICAgIG1hY3JvKGdyYWRpZW50
dHJhbnNmb3JtKSBcCisgICAgbWFjcm8oZ3JhZGllbnR1bml0cykgXAorICAgIG1hY3JvKGhhbmdp
bmcpIFwKKyAgICBtYWNybyhoZWlnaHQpIFwKKyAgICBtYWNybyhob3Jpel9hZHZfeCkgXAorICAg
IG1hY3JvKGhvcml6X29yaWdpbl94KSBcCisgICAgbWFjcm8oaG9yaXpfb3JpZ2luX3kpIFwKKyAg
ICBtYWNybyhocmVmKSBcCisgICAgbWFjcm8oaWRlb2dyYXBoaWMpIFwKKyAgICBtYWNybyhpbWFn
ZV9yZW5kZXJpbmcpIFwKKyAgICBtYWNybyhpbikgXAorICAgIG1hY3JvKGluMikgXAorICAgIG1h
Y3JvKGludGVyY2VwdCkgXAorICAgIG1hY3JvKGspIFwKKyAgICBtYWNybyhrMSkgXAorICAgIG1h
Y3JvKGsyKSBcCisgICAgbWFjcm8oazMpIFwKKyAgICBtYWNybyhrNCkgXAorICAgIG1hY3JvKGtl
cm5lbG1hdHJpeCkgXAorICAgIG1hY3JvKGtlcm5lbHVuaXRsZW5ndGgpIFwKKyAgICBtYWNybyhr
ZXJuaW5nKSBcCisgICAgbWFjcm8oa2V5cG9pbnRzKSBcCisgICAgbWFjcm8oa2V5c3BsaW5lcykg
XAorICAgIG1hY3JvKGtleXRpbWVzKSBcCisgICAgbWFjcm8obGFuZykgXAorICAgIG1hY3JvKGxl
bmd0aGFkanVzdCkgXAorICAgIG1hY3JvKGxldHRlcl9zcGFjaW5nKSBcCisgICAgbWFjcm8obGln
aHRpbmdfY29sb3IpIFwKKyAgICBtYWNybyhsaW1pdGluZ2NvbmVhbmdsZSkgXAorICAgIG1hY3Jv
KGxvY2FsKSBcCisgICAgbWFjcm8obWFya2VyX2VuZCkgXAorICAgIG1hY3JvKG1hcmtlcl9taWQp
IFwKKyAgICBtYWNybyhtYXJrZXJfc3RhcnQpIFwKKyAgICBtYWNybyhtYXJrZXJoZWlnaHQpIFwK
KyAgICBtYWNybyhtYXJrZXJ1bml0cykgXAorICAgIG1hY3JvKG1hcmtlcndpZHRoKSBcCisgICAg
bWFjcm8obWFzaykgXAorICAgIG1hY3JvKG1hc2tjb250ZW50dW5pdHMpIFwKKyAgICBtYWNybyht
YXNrdW5pdHMpIFwKKyAgICBtYWNybyhtYXRoZW1hdGljYWwpIFwKKyAgICBtYWNybyhtYXgpIFwK
KyAgICBtYWNybyhtZWRpYSkgXAorICAgIG1hY3JvKG1ldGhvZCkgXAorICAgIG1hY3JvKG1pbikg
XAorICAgIG1hY3JvKG1vZGUpIFwKKyAgICBtYWNybyhuYW1lKSBcCisgICAgbWFjcm8obnVtb2N0
YXZlcykgXAorICAgIG1hY3JvKG9mZnNldCkgXAorICAgIG1hY3JvKG9uYmVnaW4pIFwKKyAgICBt
YWNybyhvbmVuZCkgXAorICAgIG1hY3JvKG9ucmVwZWF0KSBcCisgICAgbWFjcm8ob256b29tKSBc
CisgICAgbWFjcm8ob3BhY2l0eSkgXAorICAgIG1hY3JvKG9wZXJhdG9yKSBcCisgICAgbWFjcm8o
b3JkZXIpIFwKKyAgICBtYWNybyhvcmllbnQpIFwKKyAgICBtYWNybyhvcmllbnRhdGlvbikgXAor
ICAgIG1hY3JvKG9yaWdpbikgXAorICAgIG1hY3JvKG92ZXJmbG93KSBcCisgICAgbWFjcm8ob3Zl
cmxpbmVfcG9zaXRpb24pIFwKKyAgICBtYWNybyhvdmVybGluZV90aGlja25lc3MpIFwKKyAgICBt
YWNybyhwYW5vc2VfMSkgXAorICAgIG1hY3JvKHBhdGgpIFwKKyAgICBtYWNybyhwYXRobGVuZ3Ro
KSBcCisgICAgbWFjcm8ocGF0dGVybmNvbnRlbnR1bml0cykgXAorICAgIG1hY3JvKHBhdHRlcm50
cmFuc2Zvcm0pIFwKKyAgICBtYWNybyhwYXR0ZXJudW5pdHMpIFwKKyAgICBtYWNybyhwb2ludGVy
X2V2ZW50cykgXAorICAgIG1hY3JvKHBvaW50cykgXAorICAgIG1hY3JvKHBvaW50c2F0eCkgXAor
ICAgIG1hY3JvKHBvaW50c2F0eSkgXAorICAgIG1hY3JvKHBvaW50c2F0eikgXAorICAgIG1hY3Jv
KHByZXNlcnZlYWxwaGEpIFwKKyAgICBtYWNybyhwcmVzZXJ2ZWFzcGVjdHJhdGlvKSBcCisgICAg
bWFjcm8ocHJpbWl0aXZldW5pdHMpIFwKKyAgICBtYWNybyhyKSBcCisgICAgbWFjcm8ocmFkaXVz
KSBcCisgICAgbWFjcm8ocmVmeCkgXAorICAgIG1hY3JvKHJlZnkpIFwKKyAgICBtYWNybyhyZW5k
ZXJpbmdfaW50ZW50KSBcCisgICAgbWFjcm8ocmVwZWF0Y291bnQpIFwKKyAgICBtYWNybyhyZXBl
YXRkdXIpIFwKKyAgICBtYWNybyhyZXF1aXJlZGV4dGVuc2lvbnMpIFwKKyAgICBtYWNybyhyZXF1
aXJlZGZlYXR1cmVzKSBcCisgICAgbWFjcm8ocmVzdGFydCkgXAorICAgIG1hY3JvKHJlc3VsdCkg
XAorICAgIG1hY3JvKHJvdGF0ZSkgXAorICAgIG1hY3JvKHJ4KSBcCisgICAgbWFjcm8ocnkpIFwK
KyAgICBtYWNybyhzY2FsZSkgXAorICAgIG1hY3JvKHNlZWQpIFwKKyAgICBtYWNybyhzaGFwZV9y
ZW5kZXJpbmcpIFwKKyAgICBtYWNybyhzbG9wZSkgXAorICAgIG1hY3JvKHNwYWNlKSBcCisgICAg
bWFjcm8oc3BhY2luZykgXAorICAgIG1hY3JvKHNwZWN1bGFyY29uc3RhbnQpIFwKKyAgICBtYWNy
byhzcGVjdWxhcmV4cG9uZW50KSBcCisgICAgbWFjcm8oc3ByZWFkbWV0aG9kKSBcCisgICAgbWFj
cm8oc3RhcnRvZmZzZXQpIFwKKyAgICBtYWNybyhzdGRkZXZpYXRpb24pIFwKKyAgICBtYWNybyhz
dGVtaCkgXAorICAgIG1hY3JvKHN0ZW12KSBcCisgICAgbWFjcm8oc3RpdGNodGlsZXMpIFwKKyAg
ICBtYWNybyhzdG9wX2NvbG9yKSBcCisgICAgbWFjcm8oc3RvcF9vcGFjaXR5KSBcCisgICAgbWFj
cm8oc3RyaWtldGhyb3VnaF9wb3NpdGlvbikgXAorICAgIG1hY3JvKHN0cmlrZXRocm91Z2hfdGhp
Y2tuZXNzKSBcCisgICAgbWFjcm8oc3Ryb2tlKSBcCisgICAgbWFjcm8oc3Ryb2tlX2Rhc2hhcnJh
eSkgXAorICAgIG1hY3JvKHN0cm9rZV9kYXNob2Zmc2V0KSBcCisgICAgbWFjcm8oc3Ryb2tlX2xp
bmVjYXApIFwKKyAgICBtYWNybyhzdHJva2VfbGluZWpvaW4pIFwKKyAgICBtYWNybyhzdHJva2Vf
bWl0ZXJsaW1pdCkgXAorICAgIG1hY3JvKHN0cm9rZV9vcGFjaXR5KSBcCisgICAgbWFjcm8oc3Ry
b2tlX3dpZHRoKSBcCisgICAgbWFjcm8oc3R5bGUpIFwKKyAgICBtYWNybyhzdXJmYWNlc2NhbGUp
IFwKKyAgICBtYWNybyhzeXN0ZW1sYW5ndWFnZSkgXAorICAgIG1hY3JvKHRhYmxldmFsdWVzKSBc
CisgICAgbWFjcm8odGFyZ2V0KSBcCisgICAgbWFjcm8odGFyZ2V0eCkgXAorICAgIG1hY3JvKHRh
cmdldHkpIFwKKyAgICBtYWNybyh0ZXh0X2FuY2hvcikgXAorICAgIG1hY3JvKHRleHRfZGVjb3Jh
dGlvbikgXAorICAgIG1hY3JvKHRleHRfcmVuZGVyaW5nKSBcCisgICAgbWFjcm8odGV4dGxlbmd0
aCkgXAorICAgIG1hY3JvKHRpdGxlKSBcCisgICAgbWFjcm8odG8pIFwKKyAgICBtYWNybyh0cmFu
c2Zvcm0pIFwKKyAgICBtYWNybyh0eXBlKSBcCisgICAgbWFjcm8odTEpIFwKKyAgICBtYWNybyh1
MikgXAorICAgIG1hY3JvKHVuZGVybGluZV9wb3NpdGlvbikgXAorICAgIG1hY3JvKHVuZGVybGlu
ZV90aGlja25lc3MpIFwKKyAgICBtYWNybyh1bmljb2RlKSBcCisgICAgbWFjcm8odW5pY29kZV9i
aWRpKSBcCisgICAgbWFjcm8odW5pY29kZV9yYW5nZSkgXAorICAgIG1hY3JvKHVuaXRzX3Blcl9l
bSkgXAorICAgIG1hY3JvKHZfYWxwaGFiZXRpYykgXAorICAgIG1hY3JvKHZfaGFuZ2luZykgXAor
ICAgIG1hY3JvKHZfaWRlb2dyYXBoaWMpIFwKKyAgICBtYWNybyh2X21hdGhlbWF0aWNhbCkgXAor
ICAgIG1hY3JvKHZhbHVlcykgXAorICAgIG1hY3JvKHZlcnNpb24pIFwKKyAgICBtYWNybyh2ZXJ0
X2Fkdl95KSBcCisgICAgbWFjcm8odmVydF9vcmlnaW5feCkgXAorICAgIG1hY3JvKHZlcnRfb3Jp
Z2luX3kpIFwKKyAgICBtYWNybyh2aWV3Ym94KSBcCisgICAgbWFjcm8odmlld3RhcmdldCkgXAor
ICAgIG1hY3JvKHZpc2liaWxpdHkpIFwKKyAgICBtYWNybyh3aWR0aCkgXAorICAgIG1hY3JvKHdp
ZHRocykgXAorICAgIG1hY3JvKHdvcmRfc3BhY2luZykgXAorICAgIG1hY3JvKHdyaXRpbmdfbW9k
ZSkgXAorICAgIG1hY3JvKHgpIFwKKyAgICBtYWNybyh4X2hlaWdodCkgXAorICAgIG1hY3JvKHgx
KSBcCisgICAgbWFjcm8oeDIpIFwKKyAgICBtYWNybyh4Y2hhbm5lbHNlbGVjdG9yKSBcCisgICAg
bWFjcm8oeSkgXAorICAgIG1hY3JvKHkxKSBcCisgICAgbWFjcm8oeTIpIFwKKyAgICBtYWNybyh5
Y2hhbm5lbHNlbGVjdG9yKSBcCisgICAgbWFjcm8oeikgXAorICAgIG1hY3JvKHpvb21hbmRwYW4p
IFwKKy8vIGVuZCBvZiBtYWNybworCisjaWYgIURPTV9TVkdOQU1FU19ISURFX0dMT0JBTFMKKyAg
ICAvLyBOYW1lc3BhY2UKKyAgICBleHRlcm4gY29uc3QgRE9NOjpBdG9taWNTdHJpbmcgc3ZnTmFt
ZXNwYWNlVVJJOworCisgICAgLy8gVGFncworICAgICNkZWZpbmUgRE9NX05BTUVTX0RFRklORV9U
QUdfR0xPQkFMKG5hbWUpIGV4dGVybiBjb25zdCBET006OlF1YWxpZmllZE5hbWUgbmFtZSMjVGFn
OworICAgIERPTV9TVkdOQU1FU19GT1JfRUFDSF9UQUcoRE9NX05BTUVTX0RFRklORV9UQUdfR0xP
QkFMKQorICAgICN1bmRlZiBET01fTkFNRVNfREVGSU5FX1RBR19HTE9CQUwKKworICAgIC8vIEF0
dHJpYnV0ZXMKKyAgICAjZGVmaW5lIERPTV9OQU1FU19ERUZJTkVfQVRUUl9HTE9CQUwobmFtZSkg
ZXh0ZXJuIGNvbnN0IERPTTo6UXVhbGlmaWVkTmFtZSBuYW1lIyNBdHRyOworICAgIERPTV9TVkdO
QU1FU19GT1JfRUFDSF9BVFRSKERPTV9OQU1FU19ERUZJTkVfQVRUUl9HTE9CQUwpCisgICAgI3Vu
ZGVmIERPTV9OQU1FU19ERUZJTkVfQVRUUl9HTE9CQUwKKyNlbmRpZgorCisgICAgdm9pZCBpbml0
KCk7Cit9IH0KKworI2VuZGlmCisKSW5kZXg6IGtzdmcyL3N2Zy9TVkdQYWludEltcGwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdQYWlu
dEltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjUKZGlmZiAtcCAtdSAtcjEuNSBrc3Zn
Mi9zdmcvU1ZHUGFpbnRJbXBsLmNwcAotLS0ga3N2ZzIvc3ZnL1NWR1BhaW50SW1wbC5jcHAJNSBP
Y3QgMjAwNSAwNTozNToyNCAtMDAwMAkxLjUKKysrIGtzdmcyL3N2Zy9TVkdQYWludEltcGwuY3Bw
CTEgTm92IDIwMDUgMTE6MTM6MTggLTAwMDAKQEAgLTY2LDcgKzY2LDcgQEAgS0RPTTo6RE9NU3Ry
aW5nSW1wbCAqU1ZHUGFpbnRJbXBsOjp1cmkoKQogCiB2b2lkIFNWR1BhaW50SW1wbDo6c2V0VXJp
KEtET006OkRPTVN0cmluZ0ltcGwgKnVyaSkKIHsKLSAgICBLRE9NX1NBRkVfU0VUKG1fdXJpLCB1
cmkpOworICAgIEtET006OktET01fU0FGRV9TRVQobV91cmksIHVyaSk7CiB9CiAKIHZvaWQgU1ZH
UGFpbnRJbXBsOjpzZXRQYWludCh1bnNpZ25lZCBzaG9ydCBwYWludFR5cGUsIEtET006OkRPTVN0
cmluZ0ltcGwgKnVyaSwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcmdiUGFpbnQsIEtET006OkRPTVN0
cmluZ0ltcGwgKikKQEAgLTc5LDE0ICs3OSwxNCBAQCB2b2lkIFNWR1BhaW50SW1wbDo6c2V0UGFp
bnQodW5zaWduZWQgc2hvCiAgICAgICAgIHNldFJHQkNvbG9yKHJnYlBhaW50KTsKIH0KIAotS0RP
TTo6RE9NU3RyaW5nSW1wbCAqU1ZHUGFpbnRJbXBsOjpjc3NUZXh0KCkgY29uc3QKK0tET006OkRP
TVN0cmluZyBTVkdQYWludEltcGw6OmNzc1RleHQoKSBjb25zdAogewogICAgIGlmKG1fcGFpbnRU
eXBlID09IFNWR19QQUlOVFRZUEVfTk9ORSkKICAgICAgICAgcmV0dXJuIG5ldyBLRE9NOjpET01T
dHJpbmdJbXBsKCJub25lIik7CiAgICAgZWxzZSBpZihtX3BhaW50VHlwZSA9PSBTVkdfUEFJTlRU
WVBFX0NVUlJFTlRDT0xPUikKICAgICAgICAgcmV0dXJuIG5ldyBLRE9NOjpET01TdHJpbmdJbXBs
KCJjdXJyZW50Q29sb3IiKTsKICAgICBlbHNlIGlmKG1fcGFpbnRUeXBlID09IFNWR19QQUlOVFRZ
UEVfVVJJKQotICAgICAgICByZXR1cm4gbmV3IEtET006OkRPTVN0cmluZ0ltcGwoUVN0cmluZzo6
ZnJvbUxhdGluMSgidXJsKCIpICsgS0RPTTo6RE9NU3RyaW5nKG1fdXJpKS5zdHJpbmcoKSArIFFT
dHJpbmc6OmZyb21MYXRpbjEoIikiKSk7CisgICAgICAgIHJldHVybiBuZXcgS0RPTTo6RE9NU3Ry
aW5nSW1wbChRU3RyaW5nOjpmcm9tTGF0aW4xKCJ1cmwoIikgKyBLRE9NOjpET01TdHJpbmcobV91
cmkpLnFzdHJpbmcoKSArIFFTdHJpbmc6OmZyb21MYXRpbjEoIikiKSk7CiAKICAgICByZXR1cm4g
U1ZHQ29sb3JJbXBsOjpjc3NUZXh0KCk7CiB9CkluZGV4OiBrc3ZnMi9zdmcvU1ZHUGFpbnRJbXBs
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvc3ZnL1NW
R1BhaW50SW1wbC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQKZGlmZiAtcCAtdSAtcjEuNCBr
c3ZnMi9zdmcvU1ZHUGFpbnRJbXBsLmgKLS0tIGtzdmcyL3N2Zy9TVkdQYWludEltcGwuaAkxIFNl
cCAyMDA1IDA3OjM1OjQ1IC0wMDAwCTEuNAorKysga3N2ZzIvc3ZnL1NWR1BhaW50SW1wbC5oCTEg
Tm92IDIwMDUgMTE6MTM6MTggLTAwMDAKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIEtTVkcK
ICAgICAgICAgdm9pZCBzZXRVcmkoS0RPTTo6RE9NU3RyaW5nSW1wbCAqdXJpKTsKICAgICAgICAg
dm9pZCBzZXRQYWludCh1bnNpZ25lZCBzaG9ydCBwYWludFR5cGUsIEtET006OkRPTVN0cmluZ0lt
cGwgKnVyaSwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcmdiUGFpbnQsIEtET006OkRPTVN0cmluZ0lt
cGwgKmljY1BhaW50KTsKIAotICAgICAgICB2aXJ0dWFsIEtET006OkRPTVN0cmluZ0ltcGwgKmNz
c1RleHQoKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBLRE9NOjpET01TdHJpbmcgY3NzVGV4dCgp
IGNvbnN0OwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdW5zaWduZWQgc2hvcnQgbV9wYWludFR5
cGU7CkluZGV4OiBrc3ZnMi9zdmcvU1ZHUGF0aEVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHUGF0aEVsZW1lbnRJbXBs
LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS42CmRpZmYgLXAgLXUgLXIxLjYga3N2ZzIvc3Zn
L1NWR1BhdGhFbGVtZW50SW1wbC5jcHAKLS0tIGtzdmcyL3N2Zy9TVkdQYXRoRWxlbWVudEltcGwu
Y3BwCTUgT2N0IDIwMDUgMDU6MzU6MjUgLTAwMDAJMS42CisrKyBrc3ZnMi9zdmcvU1ZHUGF0aEVs
ZW1lbnRJbXBsLmNwcAkxIE5vdiAyMDA1IDExOjEzOjE5IC0wMDAwCkBAIC0yNCw3ICsyNCw3IEBA
CiAjaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+CiAKICNpbmNsdWRlICJrc3ZnLmgiCi0j
aW5jbHVkZSAic3ZnYXR0cnMuaCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNW
R0hlbHBlci5oIgogI2luY2x1ZGUgIlNWR1JlY3RJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHUG9pbnRJ
bXBsLmgiCkBAIC00NywxMCArNDcsMTAgQEAKICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXMuaD4K
ICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNDcmVhdG9yLmg+CiAKLXVzaW5nIG5hbWVzcGFjZSBL
U1ZHOworbmFtZXNwYWNlIEtTVkcgewogCi1TVkdQYXRoRWxlbWVudEltcGw6OlNWR1BhdGhFbGVt
ZW50SW1wbChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtE
T006OkRPTVN0cmluZ0ltcGwgKnByZWZpeCkKLTogU1ZHU3R5bGVkRWxlbWVudEltcGwoZG9jLCBp
ZCwgcHJlZml4KSwgU1ZHVGVzdHNJbXBsKCksIFNWR0xhbmdTcGFjZUltcGwoKSwgU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZEltcGwoKSwgU1ZHVHJhbnNmb3JtYWJsZUltcGwoKSwgU1ZHUGF0
aFBhcnNlcigpCitTVkdQYXRoRWxlbWVudEltcGw6OlNWR1BhdGhFbGVtZW50SW1wbChjb25zdCBL
RE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudFB0ciAqZG9jKQorOiBT
VkdTdHlsZWRFbGVtZW50SW1wbCh0YWdOYW1lLCBkb2MpLCBTVkdUZXN0c0ltcGwoKSwgU1ZHTGFu
Z1NwYWNlSW1wbCgpLCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1wbCgpLCBTVkdUcmFu
c2Zvcm1hYmxlSW1wbCgpLCBTVkdQYXRoUGFyc2VyKCkKIHsKICAgICBtX3BhdGhMZW5ndGggPSAw
OwogICAgIG1fcGF0aFNlZ0xpc3QgPSAwOwpAQCAtMzUyLDI0ICszNTIsMTcgQEAgdm9pZCBTVkdQ
YXRoRWxlbWVudEltcGw6OnN2Z0Nsb3NlUGF0aCgpCiAKIHZvaWQgU1ZHUGF0aEVsZW1lbnRJbXBs
OjpwYXJzZUF0dHJpYnV0ZShLRE9NOjpBdHRyaWJ1dGVJbXBsICphdHRyKQogewotICAgIGludCBp
ZCA9IChhdHRyLT5pZCgpICYgTm9kZUltcGxfSWRMb2NhbE1hc2spOwotICAgIHN3aXRjaChpZCkK
KyAgICBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjpkQXR0cikKKyAgICAgICAgcGFyc2VT
VkcoS0RPTTo6RE9NU3RyaW5nKGF0dHItPnZhbHVlKCkpLnFzdHJpbmcoKSwgdHJ1ZSk7CisgICAg
ZWxzZQogICAgIHsKLSAgICAgICAgY2FzZSBBVFRSX0Q6Ci0gICAgICAgIHsKLSAgICAgICAgICAg
IHBhcnNlU1ZHKEtET006OkRPTVN0cmluZyhhdHRyLT52YWx1ZSgpKS5zdHJpbmcoKSwgdHJ1ZSk7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBkZWZhdWx0OgotICAgICAg
ICB7Ci0gICAgICAgICAgICBpZihTVkdUZXN0c0ltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSBy
ZXR1cm47Ci0gICAgICAgICAgICBpZihTVkdMYW5nU3BhY2VJbXBsOjpwYXJzZUF0dHJpYnV0ZShh
dHRyKSkgcmV0dXJuOwotICAgICAgICAgICAgaWYoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZEltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47Ci0gICAgICAgICAgICBpZihTVkdU
cmFuc2Zvcm1hYmxlSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsKKyAgICAgICAg
aWYoU1ZHVGVzdHNJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOworICAgICAgICBp
ZihTVkdMYW5nU3BhY2VJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOworICAgICAg
ICBpZihTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0
cikpIHJldHVybjsKKyAgICAgICAgaWYoU1ZHVHJhbnNmb3JtYWJsZUltcGw6OnBhcnNlQXR0cmli
dXRlKGF0dHIpKSByZXR1cm47CiAKLSAgICAgICAgICAgIFNWR1N0eWxlZEVsZW1lbnRJbXBsOjpw
YXJzZUF0dHJpYnV0ZShhdHRyKTsKLSAgICAgICAgfQotICAgIH07CisgICAgICAgIFNWR1N0eWxl
ZEVsZW1lbnRJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKTsKKyAgICB9CiB9CiAKIFNWR1BhdGhT
ZWdMaXN0SW1wbCAqU1ZHUGF0aEVsZW1lbnRJbXBsOjpwYXRoU2VnTGlzdCgpIGNvbnN0CkBAIC00
MzgsNCArNDMxLDYgQEAgS0NQYXRoRGF0YUxpc3QgU1ZHUGF0aEVsZW1lbnRJbXBsOjp0b1BhdAog
ICAgIHJldHVybiBwYXRoRGF0YTsKIH0KIAorfQorCiAvLyB2aW06dHM9NDpub2V0CkluZGV4OiBr
c3ZnMi9zdmcvU1ZHUGF0aEVsZW1lbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9y
b290L1NWR1N1cHBvcnQva3N2ZzIvc3ZnL1NWR1BhdGhFbGVtZW50SW1wbC5oLHYKcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjQKZGlmZiAtcCAtdSAtcjEuNCBrc3ZnMi9zdmcvU1ZHUGF0aEVsZW1lbnRJ
bXBsLmgKLS0tIGtzdmcyL3N2Zy9TVkdQYXRoRWxlbWVudEltcGwuaAkxIFNlcCAyMDA1IDA3OjM1
OjQ2IC0wMDAwCTEuNAorKysga3N2ZzIvc3ZnL1NWR1BhdGhFbGVtZW50SW1wbC5oCTEgTm92IDIw
MDUgMTE6MTM6MTkgLTAwMDAKQEAgLTY0LDcgKzY0LDcgQEAgbmFtZXNwYWNlIEtTVkcKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHUGF0aFBhcnNlcgogICAgIHsKICAg
ICBwdWJsaWM6Ci0gICAgICAgIFNWR1BhdGhFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0ciAq
ZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZpeCk7
CisgICAgICAgIFNWR1BhdGhFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBLRE9NOjpEb2N1bWVudFB0ciAqZG9jKTsKICAgICAgICAgdmlydHVhbCB+U1ZHUGF0
aEVsZW1lbnRJbXBsKCk7CiAKICAgICAgICAgU1ZHQW5pbWF0ZWROdW1iZXJJbXBsICpwYXRoTGVu
Z3RoKCkgY29uc3Q7CkluZGV4OiBrc3ZnMi9zdmcvU1ZHUGF0dGVybkVsZW1lbnRJbXBsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHUGF0
dGVybkVsZW1lbnRJbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS44CmRpZmYgLXAgLXUg
LXIxLjgga3N2ZzIvc3ZnL1NWR1BhdHRlcm5FbGVtZW50SW1wbC5jcHAKLS0tIGtzdmcyL3N2Zy9T
VkdQYXR0ZXJuRWxlbWVudEltcGwuY3BwCTUgT2N0IDIwMDUgMDU6MzU6MjYgLTAwMDAJMS44Cisr
KyBrc3ZnMi9zdmcvU1ZHUGF0dGVybkVsZW1lbnRJbXBsLmNwcAkxIE5vdiAyMDA1IDExOjEzOjE5
IC0wMDAwCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRl
cmluZ1BhaW50U2VydmVyUGF0dGVybi5oPgogCiAjaW5jbHVkZSAia3N2Zy5oIgotI2luY2x1ZGUg
InN2Z2F0dHJzLmgiCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdIZWxwZXIu
aCIKICNpbmNsdWRlICJTVkdNYXRyaXhJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnRJbXBs
LmgiCkBAIC01MCw3ICs1MCw3IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCi1TVkdQYXR0
ZXJuRWxlbWVudEltcGw6OlNWR1BhdHRlcm5FbGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0ciAq
ZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZpeCkg
OiBTVkdTdHlsZWRFbGVtZW50SW1wbChkb2MsIGlkLCBwcmVmaXgpLCBTVkdVUklSZWZlcmVuY2VJ
bXBsKCksIFNWR1Rlc3RzSW1wbCgpLCBTVkdMYW5nU3BhY2VJbXBsKCksIFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWRJbXBsKCksIFNWR0ZpdFRvVmlld0JveEltcGwoKSwgS0NhbnZhc1Jlc291
cmNlTGlzdGVuZXIoKQorU1ZHUGF0dGVybkVsZW1lbnRJbXBsOjpTVkdQYXR0ZXJuRWxlbWVudElt
cGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIg
KmRvYykgOiBTVkdTdHlsZWRFbGVtZW50SW1wbCh0YWdOYW1lLCBkb2MpLCBTVkdVUklSZWZlcmVu
Y2VJbXBsKCksIFNWR1Rlc3RzSW1wbCgpLCBTVkdMYW5nU3BhY2VJbXBsKCksIFNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWRJbXBsKCksIFNWR0ZpdFRvVmlld0JveEltcGwoKSwgS0NhbnZhc1Jl
c291cmNlTGlzdGVuZXIoKQogewogICAgIG1fcGF0dGVyblVuaXRzID0gMDsKICAgICBtX3BhdHRl
cm5UcmFuc2Zvcm0gPSAwOwpAQCAtMTMxLDYzICsxMzEsNDQgQEAgU1ZHQW5pbWF0ZWRUcmFuc2Zv
cm1MaXN0SW1wbCAqU1ZHUGF0dGVybgogCiB2b2lkIFNWR1BhdHRlcm5FbGVtZW50SW1wbDo6cGFy
c2VBdHRyaWJ1dGUoS0RPTTo6QXR0cmlidXRlSW1wbCAqYXR0cikKIHsKLSAgICBpbnQgaWQgPSAo
YXR0ci0+aWQoKSAmIE5vZGVJbXBsX0lkTG9jYWxNYXNrKTsKICAgICBLRE9NOjpET01TdHJpbmcg
dmFsdWUoYXR0ci0+dmFsdWUoKSk7Ci0gICAgc3dpdGNoKGlkKQorICAgIGlmIChhdHRyLT5uYW1l
KCkgPT0gU1ZHTmFtZXM6OnBhdHRlcm51bml0c0F0dHIpCiAgICAgewotICAgICAgICBjYXNlIEFU
VFJfUEFUVEVSTlVOSVRTOgotICAgICAgICB7Ci0gICAgICAgICAgICBpZih2YWx1ZSA9PSAidXNl
clNwYWNlT25Vc2UiKQotICAgICAgICAgICAgICAgIHBhdHRlcm5Vbml0cygpLT5zZXRCYXNlVmFs
KFNWR19VTklUX1RZUEVfVVNFUlNQQUNFT05VU0UpOwotICAgICAgICAgICAgZWxzZSBpZih2YWx1
ZSA9PSAib2JqZWN0Qm91bmRpbmdCb3giKQotICAgICAgICAgICAgICAgIHBhdHRlcm5Vbml0cygp
LT5zZXRCYXNlVmFsKFNWR19VTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1gpOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBBVFRSX1BBVFRFUk5DT05URU5UVU5J
VFM6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlmKHZhbHVlID09ICJ1c2VyU3BhY2VPblVzZSIp
Ci0gICAgICAgICAgICAgICAgcGF0dGVybkNvbnRlbnRVbml0cygpLT5zZXRCYXNlVmFsKFNWR19V
TklUX1RZUEVfVVNFUlNQQUNFT05VU0UpOwotICAgICAgICAgICAgZWxzZSBpZih2YWx1ZSA9PSAi
b2JqZWN0Qm91bmRpbmdCb3giKQotICAgICAgICAgICAgICAgIHBhdHRlcm5Db250ZW50VW5pdHMo
KS0+c2V0QmFzZVZhbChTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9YKTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgQVRUUl9QQVRURVJOVFJBTlNGT1JN
OgotICAgICAgICB7Ci0gICAgICAgICAgICBTVkdUcmFuc2Zvcm1MaXN0SW1wbCAqcGF0dGVyblRy
YW5zZm9ybXMgPSBwYXR0ZXJuVHJhbnNmb3JtKCktPmJhc2VWYWwoKTsKLSAgICAgICAgICAgIFNW
R1RyYW5zZm9ybWFibGVJbXBsOjpwYXJzZVRyYW5zZm9ybUF0dHJpYnV0ZShwYXR0ZXJuVHJhbnNm
b3JtcywgYXR0ci0+dmFsdWUoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAg
ICAgICBjYXNlIEFUVFJfWDoKLSAgICAgICAgewotICAgICAgICAgICAgeCgpLT5iYXNlVmFsKCkt
PnNldFZhbHVlQXNTdHJpbmcodmFsdWUuaGFuZGxlKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIH0KLSAgICAgICAgY2FzZSBBVFRSX1k6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHko
KS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlLmhhbmRsZSgpKTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgQVRUUl9XSURUSDoKLSAgICAgICAg
ewotICAgICAgICAgICAgd2lkdGgoKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVl
LmhhbmRsZSgpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2Ug
QVRUUl9IRUlHSFQ6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGhlaWdodCgpLT5iYXNlVmFsKCkt
PnNldFZhbHVlQXNTdHJpbmcodmFsdWUuaGFuZGxlKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgewotICAgICAgICAgICAgaWYoU1ZH
VVJJUmVmZXJlbmNlSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsKLSAgICAgICAg
ICAgIGlmKFNWR1Rlc3RzSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsKLSAgICAg
ICAgICAgIGlmKFNWR0xhbmdTcGFjZUltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47
Ci0gICAgICAgICAgICBpZihTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1wbDo6cGFyc2VB
dHRyaWJ1dGUoYXR0cikpIHJldHVybjsKLSAgICAgICAgICAgIGlmKFNWR0ZpdFRvVmlld0JveElt
cGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47CisgICAgICAgIGlmKHZhbHVlID09ICJ1
c2VyU3BhY2VPblVzZSIpCisgICAgICAgICAgICBwYXR0ZXJuVW5pdHMoKS0+c2V0QmFzZVZhbChT
VkdfVU5JVF9UWVBFX1VTRVJTUEFDRU9OVVNFKTsKKyAgICAgICAgZWxzZSBpZih2YWx1ZSA9PSAi
b2JqZWN0Qm91bmRpbmdCb3giKQorICAgICAgICAgICAgcGF0dGVyblVuaXRzKCktPnNldEJhc2VW
YWwoU1ZHX1VOSVRfVFlQRV9PQkpFQ1RCT1VORElOR0JPWCk7CisgICAgfQorICAgIGVsc2UgaWYg
KGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6cGF0dGVybmNvbnRlbnR1bml0c0F0dHIpCisgICAg
eworICAgICAgICBpZih2YWx1ZSA9PSAidXNlclNwYWNlT25Vc2UiKQorICAgICAgICAgICAgcGF0
dGVybkNvbnRlbnRVbml0cygpLT5zZXRCYXNlVmFsKFNWR19VTklUX1RZUEVfVVNFUlNQQUNFT05V
U0UpOworICAgICAgICBlbHNlIGlmKHZhbHVlID09ICJvYmplY3RCb3VuZGluZ0JveCIpCisgICAg
ICAgICAgICBwYXR0ZXJuQ29udGVudFVuaXRzKCktPnNldEJhc2VWYWwoU1ZHX1VOSVRfVFlQRV9P
QkpFQ1RCT1VORElOR0JPWCk7CisgICAgfQorICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBT
VkdOYW1lczo6cGF0dGVybnRyYW5zZm9ybUF0dHIpCisgICAgeworICAgICAgICBTVkdUcmFuc2Zv
cm1MaXN0SW1wbCAqcGF0dGVyblRyYW5zZm9ybXMgPSBwYXR0ZXJuVHJhbnNmb3JtKCktPmJhc2VW
YWwoKTsKKyAgICAgICAgU1ZHVHJhbnNmb3JtYWJsZUltcGw6OnBhcnNlVHJhbnNmb3JtQXR0cmli
dXRlKHBhdHRlcm5UcmFuc2Zvcm1zLCB2YWx1ZS5pbXBsKCkpOworICAgIH0KKyAgICBlbHNlIGlm
IChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnhBdHRyKQorICAgICAgICB4KCktPmJhc2VWYWwo
KS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZS5pbXBsKCkpOworICAgIGVsc2UgaWYgKGF0dHItPm5h
bWUoKSA9PSBTVkdOYW1lczo6eUF0dHIpCisgICAgICAgIHkoKS0+YmFzZVZhbCgpLT5zZXRWYWx1
ZUFzU3RyaW5nKHZhbHVlLmltcGwoKSk7CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNW
R05hbWVzOjp3aWR0aEF0dHIpCisgICAgICAgIHdpZHRoKCktPmJhc2VWYWwoKS0+c2V0VmFsdWVB
c1N0cmluZyh2YWx1ZS5pbXBsKCkpOworICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdO
YW1lczo6aGVpZ2h0QXR0cikKKyAgICAgICAgaGVpZ2h0KCktPmJhc2VWYWwoKS0+c2V0VmFsdWVB
c1N0cmluZyh2YWx1ZS5pbXBsKCkpOworICAgIGVsc2UKKyAgICB7CisgICAgICAgIGlmKFNWR1VS
SVJlZmVyZW5jZUltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47CisgICAgICAgIGlm
KFNWR1Rlc3RzSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsKKyAgICAgICAgaWYo
U1ZHTGFuZ1NwYWNlSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsKKyAgICAgICAg
aWYoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIp
KSByZXR1cm47CisgICAgICAgIGlmKFNWR0ZpdFRvVmlld0JveEltcGw6OnBhcnNlQXR0cmlidXRl
KGF0dHIpKSByZXR1cm47CiAKLSAgICAgICAgICAgIFNWR1N0eWxlZEVsZW1lbnRJbXBsOjpwYXJz
ZUF0dHJpYnV0ZShhdHRyKTsKLSAgICAgICAgfQotICAgIH07CisgICAgICAgIFNWR1N0eWxlZEVs
ZW1lbnRJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKTsKKyAgICB9CiB9CiAKIGNvbnN0IFNWR1N0
eWxlZEVsZW1lbnRJbXBsICpTVkdQYXR0ZXJuRWxlbWVudEltcGw6OnB1c2hBdHRyaWJ1dGVDb250
ZXh0KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnRJbXBsICpjb250ZXh0KQpAQCAtMjMyLDkgKzIxMyw5
IEBAIHZvaWQgU1ZHUGF0dGVybkVsZW1lbnRJbXBsOjpub3RpZnlBdHRyaWIKICAgICBjb25zdCBL
RE9NOjpOb2RlSW1wbCAqdGVzdCA9IHRoaXM7CiAgICAgd2hpbGUodGVzdCAmJiAhdGVzdC0+aGFz
Q2hpbGROb2RlcygpKQogICAgIHsKLSAgICAgICAgUVN0cmluZyByZWYgPSBLRE9NOjpET01TdHJp
bmcoaHJlZigpLT5iYXNlVmFsKCkpLnN0cmluZygpOwotICAgICAgICB0ZXN0ID0gb3duZXJEb2N1
bWVudCgpLT5nZXRFbGVtZW50QnlJZChLRE9NOjpET01TdHJpbmcocmVmLm1pZCgxKSkuaGFuZGxl
KCkpOwotICAgICAgICBpZih0ZXN0ICYmIHRlc3QtPmlkKCkgPT0gSURfUEFUVEVSTikKKyAgICAg
ICAgUVN0cmluZyByZWYgPSBLRE9NOjpET01TdHJpbmcoaHJlZigpLT5iYXNlVmFsKCkpLnFzdHJp
bmcoKTsKKyAgICAgICAgdGVzdCA9IG93bmVyRG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoS0RP
TTo6RE9NU3RyaW5nKHJlZi5taWQoMSkpLmltcGwoKSk7CisgICAgICAgIGlmKHRlc3QgJiYgdGVz
dC0+aGFzVGFnTmFtZShTVkdOYW1lczo6cGF0dGVyblRhZykpCiAgICAgICAgICAgICB0YXJnZXQg
PSBzdGF0aWNfY2FzdDxjb25zdCBLRE9NOjpFbGVtZW50SW1wbCAqPih0ZXN0KTsKICAgICB9CiAK
QEAgLTI0Miw3ICsyMjMsNyBAQCB2b2lkIFNWR1BhdHRlcm5FbGVtZW50SW1wbDo6bm90aWZ5QXR0
cmliCiAgICAgdW5zaWduZWQgc2hvcnQgc2F2ZWRQYXR0ZXJuQ29udGVudFVuaXRzID0gcGF0dGVy
bkNvbnRlbnRVbml0cygpLT5iYXNlVmFsKCk7CiAKICAgICBLUmVuZGVyaW5nUGFpbnRTZXJ2ZXIg
KnJlZlNlcnZlciA9IDA7Ci0gICAgUVN0cmluZyByZWYgPSBLRE9NOjpET01TdHJpbmcoaHJlZigp
LT5iYXNlVmFsKCkpLnN0cmluZygpOworICAgIFFTdHJpbmcgcmVmID0gS0RPTTo6RE9NU3RyaW5n
KGhyZWYoKS0+YmFzZVZhbCgpKS5xc3RyaW5nKCk7CiAgICAgaWYoIXJlZi5pc0VtcHR5KCkpCiAg
ICAgewogICAgICAgICBTVkdEb2N1bWVudEltcGwgKmRvY3VtZW50ID0gc3RhdGljX2Nhc3Q8U1ZH
RG9jdW1lbnRJbXBsICo+KG93bmVyRG9jdW1lbnQoKSk7CkBAIC0yNjAsMjUgKzI0MSwyNSBAQCB2
b2lkIFNWR1BhdHRlcm5FbGVtZW50SW1wbDo6bm90aWZ5QXR0cmliCiAgICAgewogICAgICAgICBL
UmVuZGVyaW5nUGFpbnRTZXJ2ZXJQYXR0ZXJuICpyZWZQYXR0ZXJuID0gc3RhdGljX2Nhc3Q8S1Jl
bmRlcmluZ1BhaW50U2VydmVyUGF0dGVybiAqPihyZWZTZXJ2ZXIpOwogICAgICAgICAKLSAgICAg
ICAgaWYoIWhhc0F0dHJpYnV0ZShLRE9NOjpET01TdHJpbmcoInBhdHRlcm5Vbml0cyIpLmhhbmRs
ZSgpKSkKKyAgICAgICAgaWYoIWhhc0F0dHJpYnV0ZShLRE9NOjpET01TdHJpbmcoInBhdHRlcm5V
bml0cyIpLmltcGwoKSkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIEtET006OkRPTVN0cmluZyB2
YWx1ZSh0YXJnZXQtPmdldEF0dHJpYnV0ZShLRE9NOjpET01TdHJpbmcoInBhdHRlcm5Vbml0cyIp
LmhhbmRsZSgpKSk7CisgICAgICAgICAgICBLRE9NOjpET01TdHJpbmcgdmFsdWUodGFyZ2V0LT5n
ZXRBdHRyaWJ1dGUoS0RPTTo6RE9NU3RyaW5nKCJwYXR0ZXJuVW5pdHMiKS5pbXBsKCkpKTsKICAg
ICAgICAgICAgIGlmKHZhbHVlID09ICJ1c2VyU3BhY2VPblVzZSIpCiAgICAgICAgICAgICAgICAg
cGF0dGVyblVuaXRzKCktPnNldEJhc2VWYWwoU1ZHX1VOSVRfVFlQRV9VU0VSU1BBQ0VPTlVTRSk7
CiAgICAgICAgICAgICBlbHNlIGlmKHZhbHVlID09ICJvYmplY3RCb3VuZGluZ0JveCIpCiAgICAg
ICAgICAgICAgICAgcGF0dGVyblVuaXRzKCktPnNldEJhc2VWYWwoU1ZHX1VOSVRfVFlQRV9PQkpF
Q1RCT1VORElOR0JPWCk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGlmKCFoYXNBdHRy
aWJ1dGUoS0RPTTo6RE9NU3RyaW5nKCJwYXR0ZXJuQ29udGVudFVuaXRzIikuaGFuZGxlKCkpKQor
ICAgICAgICBpZighaGFzQXR0cmlidXRlKEtET006OkRPTVN0cmluZygicGF0dGVybkNvbnRlbnRV
bml0cyIpLmltcGwoKSkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIEtET006OkRPTVN0cmluZyB2
YWx1ZSh0YXJnZXQtPmdldEF0dHJpYnV0ZShLRE9NOjpET01TdHJpbmcoInBhdHRlcm5Db250ZW50
VW5pdHMiKS5oYW5kbGUoKSkpOworICAgICAgICAgICAgS0RPTTo6RE9NU3RyaW5nIHZhbHVlKHRh
cmdldC0+Z2V0QXR0cmlidXRlKEtET006OkRPTVN0cmluZygicGF0dGVybkNvbnRlbnRVbml0cyIp
LmltcGwoKSkpOwogICAgICAgICAgICAgaWYodmFsdWUgPT0gInVzZXJTcGFjZU9uVXNlIikKICAg
ICAgICAgICAgICAgICBwYXR0ZXJuQ29udGVudFVuaXRzKCktPnNldEJhc2VWYWwoU1ZHX1VOSVRf
VFlQRV9VU0VSU1BBQ0VPTlVTRSk7CiAgICAgICAgICAgICBlbHNlIGlmKHZhbHVlID09ICJvYmpl
Y3RCb3VuZGluZ0JveCIpCiAgICAgICAgICAgICAgICAgcGF0dGVybkNvbnRlbnRVbml0cygpLT5z
ZXRCYXNlVmFsKFNWR19VTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1gpOwogICAgICAgICB9CiAK
LSAgICAgICAgaWYoIWhhc0F0dHJpYnV0ZShLRE9NOjpET01TdHJpbmcoInBhdHRlcm5UcmFuc2Zv
cm0iKS5oYW5kbGUoKSkpCisgICAgICAgIGlmKCFoYXNBdHRyaWJ1dGUoS0RPTTo6RE9NU3RyaW5n
KCJwYXR0ZXJuVHJhbnNmb3JtIikuaW1wbCgpKSkKICAgICAgICAgICAgIHBhdHRlcm5UcmFuc2Zv
cm1NYXRyaXggPSByZWZQYXR0ZXJuLT5wYXR0ZXJuVHJhbnNmb3JtKCk7CiAgICAgfQogCkBAIC0z
MzEsNyArMzEyLDcgQEAgdm9pZCBTVkdQYXR0ZXJuRWxlbWVudEltcGw6Om5vdGlmeUF0dHJpYgog
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBUYWtlIGludG8gYWNjb3VudCB2aWV3cG9y
dEVsZW1lbnQncyB2aWV3Qm94LCBpZiBleGlzdGFudC4uLgotICAgICAgICAgICAgaWYodmlld3Bv
cnRFbGVtZW50KCkgJiYgdmlld3BvcnRFbGVtZW50KCktPmlkKCkgPT0gSURfU1ZHKQorICAgICAg
ICAgICAgaWYodmlld3BvcnRFbGVtZW50KCkgJiYgdmlld3BvcnRFbGVtZW50KCktPmhhc1RhZ05h
bWUoU1ZHTmFtZXM6OnN2Z1RhZykpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgU1ZH
U1ZHRWxlbWVudEltcGwgKnN2Z0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdTVkdFbGVtZW50SW1w
bCAqPih2aWV3cG9ydEVsZW1lbnQoKSk7CiAKQEAgLTM5OSw3ICszODAsNyBAQCBLQ2FudmFzSXRl
bSAqU1ZHUGF0dGVybkVsZW1lbnRJbXBsOjpjcmVhCiAKICAgICBwc2VydmVyLT5zZXRMaXN0ZW5l
cihjb25zdF9jYXN0PFNWR1BhdHRlcm5FbGVtZW50SW1wbCAqPih0aGlzKSk7CiAKLSAgICBjYW52
YXMtPnJlZ2lzdHJ5KCktPmFkZFBhaW50U2VydmVyQnlJZChLRE9NOjpET01TdHJpbmcoZ2V0SWQo
KSkuc3RyaW5nKCksIHBzZXJ2ZXIpOworICAgIGNhbnZhcy0+cmVnaXN0cnkoKS0+YWRkUGFpbnRT
ZXJ2ZXJCeUlkKGdldEF0dHJpYnV0ZSgiaWQiKS5xc3RyaW5nKCksIHBzZXJ2ZXIpOwogCiAgICAg
cmV0dXJuIDA7CiB9CkluZGV4OiBrc3ZnMi9zdmcvU1ZHUGF0dGVybkVsZW1lbnRJbXBsLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvc3ZnL1NWR1BhdHRl
cm5FbGVtZW50SW1wbC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQKZGlmZiAtcCAtdSAtcjEu
NCBrc3ZnMi9zdmcvU1ZHUGF0dGVybkVsZW1lbnRJbXBsLmgKLS0tIGtzdmcyL3N2Zy9TVkdQYXR0
ZXJuRWxlbWVudEltcGwuaAkxIFNlcCAyMDA1IDA3OjM1OjQ5IC0wMDAwCTEuNAorKysga3N2ZzIv
c3ZnL1NWR1BhdHRlcm5FbGVtZW50SW1wbC5oCTEgTm92IDIwMDUgMTE6MTM6MTkgLTAwMDAKQEAg
LTU1LDcgKzU1LDcgQEAgbmFtZXNwYWNlIEtTVkcKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwdWJsaWMgS0NhbnZhc1Jlc291cmNlTGlzdGVuZXIKICAgICB7CiAgICAgcHVibGlj
OgotICAgICAgICBTVkdQYXR0ZXJuRWxlbWVudEltcGwoS0RPTTo6RG9jdW1lbnRQdHIgKmRvYywg
S0RPTTo6Tm9kZUltcGw6OklkIGlkLCBLRE9NOjpET01TdHJpbmdJbXBsICpwcmVmaXgpOworICAg
ICAgICBTVkdQYXR0ZXJuRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRvYyk7CiAgICAgICAgIHZpcnR1YWwgflNWR1BhdHRl
cm5FbGVtZW50SW1wbCgpOwogCiAgICAgICAgIC8vICdTVkdQYXR0ZXJuRWxlbWVudCcgZnVuY3Rp
b25zCkluZGV4OiBrc3ZnMi9zdmcvU1ZHUG9seUVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHUG9seUVsZW1lbnRJbXBs
LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS42CmRpZmYgLXAgLXUgLXIxLjYga3N2ZzIvc3Zn
L1NWR1BvbHlFbGVtZW50SW1wbC5jcHAKLS0tIGtzdmcyL3N2Zy9TVkdQb2x5RWxlbWVudEltcGwu
Y3BwCTUgT2N0IDIwMDUgMDU6MzU6MjcgLTAwMDAJMS42CisrKyBrc3ZnMi9zdmcvU1ZHUG9seUVs
ZW1lbnRJbXBsLmNwcAkxIE5vdiAyMDA1IDExOjEzOjE5IC0wMDAwCkBAIC0yNCw3ICsyNCw3IEBA
CiAjaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+CiAjaW5jbHVkZSA8a2RvbS9OYW1lc3Bh
Y2UuaD4KIAotI2luY2x1ZGUgInN2Z2F0dHJzLmgiCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNp
bmNsdWRlICJTVkdIZWxwZXIuaCIKICNpbmNsdWRlICJTVkdQb2ludExpc3RJbXBsLmgiCiAjaW5j
bHVkZSAiU1ZHUG9seUVsZW1lbnRJbXBsLmgiCkBAIC0zMyw4ICszMyw4IEBACiAKIHVzaW5nIG5h
bWVzcGFjZSBLU1ZHOwogCi1TVkdQb2x5RWxlbWVudEltcGw6OlNWR1BvbHlFbGVtZW50SW1wbChL
RE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRPTVN0
cmluZ0ltcGwgKnByZWZpeCkKLTogU1ZHU3R5bGVkRWxlbWVudEltcGwoZG9jLCBpZCwgcHJlZml4
KSwgU1ZHVGVzdHNJbXBsKCksIFNWR0xhbmdTcGFjZUltcGwoKSwgU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZEltcGwoKSwgU1ZHVHJhbnNmb3JtYWJsZUltcGwoKSwgU1ZHQW5pbWF0ZWRQb2lu
dHNJbXBsKCksIFNWR1BvbHlQYXJzZXIoKQorU1ZHUG9seUVsZW1lbnRJbXBsOjpTVkdQb2x5RWxl
bWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1l
bnRQdHIgKmRvYykKKzogU1ZHU3R5bGVkRWxlbWVudEltcGwodGFnTmFtZSwgZG9jKSwgU1ZHVGVz
dHNJbXBsKCksIFNWR0xhbmdTcGFjZUltcGwoKSwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZEltcGwoKSwgU1ZHVHJhbnNmb3JtYWJsZUltcGwoKSwgU1ZHQW5pbWF0ZWRQb2ludHNJbXBsKCks
IFNWR1BvbHlQYXJzZXIoKQogewogICAgIG1fcG9pbnRzID0gMDsKIH0KQEAgLTU3LDI0ICs1Nywx
NyBAQCBTVkdQb2ludExpc3RJbXBsICpTVkdQb2x5RWxlbWVudEltcGw6OmFuCiAKIHZvaWQgU1ZH
UG9seUVsZW1lbnRJbXBsOjpwYXJzZUF0dHJpYnV0ZShLRE9NOjpBdHRyaWJ1dGVJbXBsICphdHRy
KQogewotICAgIGludCBpZCA9IChhdHRyLT5pZCgpICYgTm9kZUltcGxfSWRMb2NhbE1hc2spOwot
ICAgIHN3aXRjaChpZCkKKyAgICBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjp5MUF0dHIp
CisgICAgICAgIHBhcnNlUG9pbnRzKEtET006OkRPTVN0cmluZyhhdHRyLT52YWx1ZSgpKS5xc3Ry
aW5nKCkpOworICAgIGVsc2UKICAgICB7Ci0gICAgICAgIGNhc2UgQVRUUl9QT0lOVFM6Ci0gICAg
ICAgIHsKLSAgICAgICAgICAgIHBhcnNlUG9pbnRzKEtET006OkRPTVN0cmluZyhhdHRyLT52YWx1
ZSgpKS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBk
ZWZhdWx0OgotICAgICAgICB7Ci0gICAgICAgICAgICBpZihTVkdUZXN0c0ltcGw6OnBhcnNlQXR0
cmlidXRlKGF0dHIpKSByZXR1cm47Ci0gICAgICAgICAgICBpZihTVkdMYW5nU3BhY2VJbXBsOjpw
YXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOwotICAgICAgICAgICAgaWYoU1ZHRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZEltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47Ci0gICAg
ICAgICAgICBpZihTVkdUcmFuc2Zvcm1hYmxlSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJl
dHVybjsKLQotICAgICAgICAgICAgU1ZHU3R5bGVkRWxlbWVudEltcGw6OnBhcnNlQXR0cmlidXRl
KGF0dHIpOwotICAgICAgICB9Ci0gICAgfTsKKyAgICAgICAgaWYoU1ZHVGVzdHNJbXBsOjpwYXJz
ZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOworICAgICAgICBpZihTVkdMYW5nU3BhY2VJbXBsOjpw
YXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOworICAgICAgICBpZihTVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsKKyAgICAgICAg
aWYoU1ZHVHJhbnNmb3JtYWJsZUltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47CisK
KyAgICAgICAgU1ZHU3R5bGVkRWxlbWVudEltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpOworICAg
IH0KIH0KIAogdm9pZCBTVkdQb2x5RWxlbWVudEltcGw6OnN2Z1BvbHlUbyhkb3VibGUgeDEsIGRv
dWJsZSB5MSwgaW50KSBjb25zdApAQCAtODQsNyArNzcsOCBAQCB2b2lkIFNWR1BvbHlFbGVtZW50
SW1wbDo6c3ZnUG9seVRvKGRvdWJsCiAKIHZvaWQgU1ZHUG9seUVsZW1lbnRJbXBsOjpub3RpZnlB
dHRyaWJ1dGVDaGFuZ2UoKSBjb25zdAogewotICAgIGlmKG93bmVyRG9jdW1lbnQoKS0+cGFyc2lu
ZygpKQorICAgIHN0YXRpYyBib29sIGlnbm9yZU5vdGlmaWNhdGlvbnMgPSBmYWxzZTsKKyAgICBp
ZiAoaWdub3JlTm90aWZpY2F0aW9ucyB8fCBvd25lckRvY3VtZW50KCktPnBhcnNpbmcoKSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgU1ZHU3R5bGVkRWxlbWVudEltcGw6Om5vdGlmeUF0dHJpYnV0
ZUNoYW5nZSgpOwpAQCAtMTAxLDEyICs5NSwxMyBAQCB2b2lkIFNWR1BvbHlFbGVtZW50SW1wbDo6
bm90aWZ5QXR0cmlidXRlCiAgICAgfQogCiAgICAgS0RPTTo6RE9NU3RyaW5nIHAoInBvaW50cyIp
OwotICAgIEtET006OkF0dHJJbXBsICphdHRyID0gY29uc3RfY2FzdDxTVkdQb2x5RWxlbWVudElt
cGwgKj4odGhpcyktPmdldEF0dHJpYnV0ZU5vZGUocC5oYW5kbGUoKSk7CisgICAgS0RPTTo6QXR0
ckltcGwgKmF0dHIgPSBjb25zdF9jYXN0PFNWR1BvbHlFbGVtZW50SW1wbCAqPih0aGlzKS0+Z2V0
QXR0cmlidXRlTm9kZShwLmltcGwoKSk7CiAgICAgaWYoYXR0cikKICAgICB7Ci0gICAgICAgIGF0
dHItPnNldE93bmVyRWxlbWVudCgwKTsKLSAgICAgICAgYXR0ci0+c2V0VmFsdWUoX3BvaW50cy5o
YW5kbGUoKSk7Ci0gICAgICAgIGF0dHItPnNldE93bmVyRWxlbWVudChjb25zdF9jYXN0PFNWR1Bv
bHlFbGVtZW50SW1wbCAqPih0aGlzKSk7CisgICAgICAgIGludCBleGNlcHRpb25Db2RlOworICAg
ICAgICBpZ25vcmVOb3RpZmljYXRpb25zID0gdHJ1ZTsgLy8gcHJldmVudCByZWN1cnNpb24uCisg
ICAgICAgIGF0dHItPnNldFZhbHVlKF9wb2ludHMsIGV4Y2VwdGlvbkNvZGUpOworICAgICAgICBp
Z25vcmVOb3RpZmljYXRpb25zID0gZmFsc2U7CiAgICAgfQogfQogCkluZGV4OiBrc3ZnMi9zdmcv
U1ZHUG9seUVsZW1lbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1
cHBvcnQva3N2ZzIvc3ZnL1NWR1BvbHlFbGVtZW50SW1wbC5oLHYKcmV0cmlldmluZyByZXZpc2lv
biAxLjQKZGlmZiAtcCAtdSAtcjEuNCBrc3ZnMi9zdmcvU1ZHUG9seUVsZW1lbnRJbXBsLmgKLS0t
IGtzdmcyL3N2Zy9TVkdQb2x5RWxlbWVudEltcGwuaAkxIFNlcCAyMDA1IDA3OjM1OjQ5IC0wMDAw
CTEuNAorKysga3N2ZzIvc3ZnL1NWR1BvbHlFbGVtZW50SW1wbC5oCTEgTm92IDIwMDUgMTE6MTM6
MTkgLTAwMDAKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIEtTVkcKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1BvbHlQYXJzZXIKICAgICB7CiAgICAgcHVibGlj
OgotICAgICAgICBTVkdQb2x5RWxlbWVudEltcGwoS0RPTTo6RG9jdW1lbnRQdHIgKmRvYywgS0RP
TTo6Tm9kZUltcGw6OklkIGlkLCBLRE9NOjpET01TdHJpbmdJbXBsICpwcmVmaXgpOworICAgICAg
ICBTVkdQb2x5RWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
S0RPTTo6RG9jdW1lbnRQdHIgKmRvYyk7CiAgICAgICAgIHZpcnR1YWwgflNWR1BvbHlFbGVtZW50
SW1wbCgpOwogCiAgICAgICAgIC8vIERlcml2ZWQgZnJvbTogJ1NWR0FuaW1hdGVkUG9pbnRzJwpJ
bmRleDoga3N2ZzIvc3ZnL1NWR1BvbHlnb25FbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg
ZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvc3ZnL1NWR1BvbHlnb25FbGVtZW50SW1w
bC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNQpkaWZmIC1wIC11IC1yMS41IGtzdmcyL3N2
Zy9TVkdQb2x5Z29uRWxlbWVudEltcGwuY3BwCi0tLSBrc3ZnMi9zdmcvU1ZHUG9seWdvbkVsZW1l
bnRJbXBsLmNwcAk1IE9jdCAyMDA1IDA1OjM1OjI3IC0wMDAwCTEuNQorKysga3N2ZzIvc3ZnL1NW
R1BvbHlnb25FbGVtZW50SW1wbC5jcHAJMSBOb3YgMjAwNSAxMToxMzoxOSAtMDAwMApAQCAtMjks
OCArMjksOCBAQAogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIAotU1ZHUG9seWdvbkVsZW1lbnRJ
bXBsOjpTVkdQb2x5Z29uRWxlbWVudEltcGwoS0RPTTo6RG9jdW1lbnRQdHIgKmRvYywgS0RPTTo6
Tm9kZUltcGw6OklkIGlkLCBLRE9NOjpET01TdHJpbmdJbXBsICpwcmVmaXgpCi06IFNWR1BvbHlF
bGVtZW50SW1wbChkb2MsIGlkLCBwcmVmaXgpCitTVkdQb2x5Z29uRWxlbWVudEltcGw6OlNWR1Bv
bHlnb25FbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9N
OjpEb2N1bWVudFB0ciAqZG9jKQorOiBTVkdQb2x5RWxlbWVudEltcGwodGFnTmFtZSwgZG9jKQog
ewogfQogCkluZGV4OiBrc3ZnMi9zdmcvU1ZHUG9seWdvbkVsZW1lbnRJbXBsLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvc3ZnL1NWR1BvbHlnb25FbGVt
ZW50SW1wbC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQKZGlmZiAtcCAtdSAtcjEuNCBrc3Zn
Mi9zdmcvU1ZHUG9seWdvbkVsZW1lbnRJbXBsLmgKLS0tIGtzdmcyL3N2Zy9TVkdQb2x5Z29uRWxl
bWVudEltcGwuaAkxIFNlcCAyMDA1IDA3OjM1OjQ5IC0wMDAwCTEuNAorKysga3N2ZzIvc3ZnL1NW
R1BvbHlnb25FbGVtZW50SW1wbC5oCTEgTm92IDIwMDUgMTE6MTM6MTkgLTAwMDAKQEAgLTMwLDcg
KzMwLDcgQEAgbmFtZXNwYWNlIEtTVkcKICAgICBjbGFzcyBTVkdQb2x5Z29uRWxlbWVudEltcGwg
OiAgICBwdWJsaWMgU1ZHUG9seUVsZW1lbnRJbXBsCiAgICAgewogICAgIHB1YmxpYzoKLSAgICAg
ICAgU1ZHUG9seWdvbkVsZW1lbnRJbXBsKEtET006OkRvY3VtZW50UHRyICpkb2MsIEtET006Ok5v
ZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHJlZml4KTsKKyAgICAgICAgU1ZH
UG9seWdvbkVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtE
T006OkRvY3VtZW50UHRyICpkb2MpOwogICAgICAgICB2aXJ0dWFsIH5TVkdQb2x5Z29uRWxlbWVu
dEltcGwoKTsKIAogICAgICAgICB2aXJ0dWFsIEtDUGF0aERhdGFMaXN0IHRvUGF0aERhdGEoKSBj
b25zdDsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnRJbXBsLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHUG9seWxpbmVF
bGVtZW50SW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNQpkaWZmIC1wIC11IC1yMS41
IGtzdmcyL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnRJbXBsLmNwcAotLS0ga3N2ZzIvc3ZnL1NWR1Bv
bHlsaW5lRWxlbWVudEltcGwuY3BwCTUgT2N0IDIwMDUgMDU6MzU6MjcgLTAwMDAJMS41CisrKyBr
c3ZnMi9zdmcvU1ZHUG9seWxpbmVFbGVtZW50SW1wbC5jcHAJMSBOb3YgMjAwNSAxMToxMzoxOSAt
MDAwMApAQCAtMjksOCArMjksOCBAQAogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIAotU1ZHUG9s
eWxpbmVFbGVtZW50SW1wbDo6U1ZHUG9seWxpbmVFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0
ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZp
eCkKLTogU1ZHUG9seUVsZW1lbnRJbXBsKGRvYywgaWQsIHByZWZpeCkKK1NWR1BvbHlsaW5lRWxl
bWVudEltcGw6OlNWR1BvbHlsaW5lRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRvYykKKzogU1ZHUG9seUVsZW1lbnRJbXBs
KHRhZ05hbWUsIGRvYykKIHsKIH0KIApJbmRleDoga3N2ZzIvc3ZnL1NWR1BvbHlsaW5lRWxlbWVu
dEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9z
dmcvU1ZHUG9seWxpbmVFbGVtZW50SW1wbC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQKZGlm
ZiAtcCAtdSAtcjEuNCBrc3ZnMi9zdmcvU1ZHUG9seWxpbmVFbGVtZW50SW1wbC5oCi0tLSBrc3Zn
Mi9zdmcvU1ZHUG9seWxpbmVFbGVtZW50SW1wbC5oCTEgU2VwIDIwMDUgMDc6MzU6NDkgLTAwMDAJ
MS40CisrKyBrc3ZnMi9zdmcvU1ZHUG9seWxpbmVFbGVtZW50SW1wbC5oCTEgTm92IDIwMDUgMTE6
MTM6MTkgLTAwMDAKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIEtTVkcKICAgICBjbGFzcyBT
VkdQb2x5bGluZUVsZW1lbnRJbXBsIDogIHB1YmxpYyBTVkdQb2x5RWxlbWVudEltcGwKICAgICB7
CiAgICAgcHVibGljOgotICAgICAgICBTVkdQb2x5bGluZUVsZW1lbnRJbXBsKEtET006OkRvY3Vt
ZW50UHRyICpkb2MsIEtET006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAq
cHJlZml4KTsKKyAgICAgICAgU1ZHUG9seWxpbmVFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudFB0ciAqZG9jKTsKICAgICAgICAgdmly
dHVhbCB+U1ZHUG9seWxpbmVFbGVtZW50SW1wbCgpOwogCiAgICAgICAgIHZpcnR1YWwgS0NQYXRo
RGF0YUxpc3QgdG9QYXRoRGF0YSgpIGNvbnN0OwpJbmRleDoga3N2ZzIvc3ZnL1NWR1ByZXNlcnZl
QXNwZWN0UmF0aW9JbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3Vw
cG9ydC9rc3ZnMi9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb0ltcGwuY3BwLHYKcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjgKZGlmZiAtcCAtdSAtcjEuOCBrc3ZnMi9zdmcvU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpb0ltcGwuY3BwCi0tLSBrc3ZnMi9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb0ltcGwu
Y3BwCTI0IE9jdCAyMDA1IDA2OjMxOjU0IC0wMDAwCTEuOAorKysga3N2ZzIvc3ZnL1NWR1ByZXNl
cnZlQXNwZWN0UmF0aW9JbXBsLmNwcAkxIE5vdiAyMDA1IDExOjEzOjIwIC0wMDAwCkBAIC02NCwx
MyArNjQsMTQgQEAgdW5zaWduZWQgc2hvcnQgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb0ltcAogICAg
IHJldHVybiBtX21lZXRPclNsaWNlOwogfQogCi12b2lkIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9J
bXBsOjpwYXJzZVByZXNlcnZlQXNwZWN0UmF0aW8oS0RPTTo6RE9NU3RyaW5nSW1wbCAqcykKK3Zv
aWQgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb0ltcGw6OnBhcnNlUHJlc2VydmVBc3BlY3RSYXRpbyhL
RE9NOjpET01TdHJpbmdJbXBsICpzdHJJbXBsKQogewogICAgIC8vIFNwZWM6IHNldCB0aGUgZGVm
YXVsdHMKICAgICBzZXRBbGlnbihTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19OT05FKTsKICAgICBz
ZXRNZWV0T3JTbGljZShTVkdfTUVFVE9SU0xJQ0VfTUVFVCk7Ci0KLSAgICBRU3RyaW5nIHN0cihz
LT51bmljb2RlKCksIHMtPmxlbmd0aCgpKTsKKyAgICAKKyAgICBLRE9NOjpET01TdHJpbmcgcyhz
dHJJbXBsKTsKKyAgICBRU3RyaW5nIHN0ciA9IHMucXN0cmluZygpOwogICAgIFFTdHJpbmdMaXN0
IHBhcmFtcyA9IFFTdHJpbmdMaXN0OjpzcGxpdCgnICcsIHN0ci5zaW1wbGlmeVdoaXRlU3BhY2Uo
KSk7CiAKICAgICBpZihwYXJhbXNbMF0uY29tcGFyZShRU3RyaW5nOjpmcm9tTGF0aW4xKCJub25l
IikpID09IDApCkluZGV4OiBrc3ZnMi9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50SW1wbC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvc3ZnL1NW
R1JhZGlhbEdyYWRpZW50RWxlbWVudEltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjYK
ZGlmZiAtcCAtdSAtcjEuNiBrc3ZnMi9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50SW1wbC5j
cHAKLS0tIGtzdmcyL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnRJbXBsLmNwcAk1IE9jdCAy
MDA1IDA1OjM1OjI3IC0wMDAwCTEuNgorKysga3N2ZzIvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxl
bWVudEltcGwuY3BwCTEgTm92IDIwMDUgMTE6MTM6MjAgLTAwMDAKQEAgLTI0LDcgKzI0LDcgQEAK
ICNpbmNsdWRlIDxrZG9tL2NvcmUvQXR0ckltcGwuaD4KIAogI2luY2x1ZGUgImtzdmcuaCIKLSNp
bmNsdWRlICJzdmdhdHRycy5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZH
SGVscGVyLmgiCiAjaW5jbHVkZSAiU1ZHTWF0cml4SW1wbC5oIgogI2luY2x1ZGUgIlNWR0RvY3Vt
ZW50SW1wbC5oIgpAQCAtNDYsNyArNDYsNyBAQAogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIAot
U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50SW1wbDo6U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50SW1w
bChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRP
TVN0cmluZ0ltcGwgKnByZWZpeCkgOiBTVkdHcmFkaWVudEVsZW1lbnRJbXBsKGRvYywgaWQsIHBy
ZWZpeCkKK1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudEltcGw6OlNWR1JhZGlhbEdyYWRpZW50RWxl
bWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1l
bnRQdHIgKmRvYykgOiBTVkdHcmFkaWVudEVsZW1lbnRJbXBsKHRhZ05hbWUsIGRvYykKIHsKICAg
ICBtX2N4ID0gbV9jeSA9IG1fZnggPSBtX2Z5ID0gbV9yID0gMDsKIH0KQEAgLTExMyw0NyArMTEz
LDI4IEBAIFNWR0FuaW1hdGVkTGVuZ3RoSW1wbCAqU1ZHUmFkaWFsR3JhZGllbnQKIAogdm9pZCBT
VkdSYWRpYWxHcmFkaWVudEVsZW1lbnRJbXBsOjpwYXJzZUF0dHJpYnV0ZShLRE9NOjpBdHRyaWJ1
dGVJbXBsICphdHRyKQogewotICAgIGludCBpZCA9IChhdHRyLT5pZCgpICYgTm9kZUltcGxfSWRM
b2NhbE1hc2spOwotICAgIEtET006OkRPTVN0cmluZ0ltcGwgKnZhbHVlID0gYXR0ci0+dmFsdWUo
KTsKLSAgICBzd2l0Y2goaWQpCi0gICAgewotICAgICAgICBjYXNlIEFUVFJfQ1g6Ci0gICAgICAg
IHsKLSAgICAgICAgICAgIGN4KCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIEFUVFJfQ1k6Ci0g
ICAgICAgIHsKLSAgICAgICAgICAgIGN5KCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2
YWx1ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIEFUVFJf
UjoKLSAgICAgICAgewotICAgICAgICAgICAgcigpLT5iYXNlVmFsKCktPnNldFZhbHVlQXNTdHJp
bmcodmFsdWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBB
VFRSX0ZYOgotICAgICAgICB7Ci0gICAgICAgICAgICBmeCgpLT5iYXNlVmFsKCktPnNldFZhbHVl
QXNTdHJpbmcodmFsdWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAg
Y2FzZSBBVFRSX0ZZOgotICAgICAgICB7Ci0gICAgICAgICAgICBmeSgpLT5iYXNlVmFsKCktPnNl
dFZhbHVlQXNTdHJpbmcodmFsdWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIFNWR0dyYWRpZW50RWxlbWVudEltcGw6OnBhcnNl
QXR0cmlidXRlKGF0dHIpOwotICAgIH07CisgICAgY29uc3QgS0RPTTo6QXRvbWljU3RyaW5nJiB2
YWx1ZSA9IGF0dHItPnZhbHVlKCk7CisgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6
Y3hBdHRyKQorICAgICAgICBjeCgpLT5iYXNlVmFsKCktPnNldFZhbHVlQXNTdHJpbmcodmFsdWUu
aW1wbCgpKTsKKyAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OmN5QXR0cikK
KyAgICAgICAgY3koKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlLmltcGwoKSk7
CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjpyQXR0cikKKyAgICAgICAg
cigpLT5iYXNlVmFsKCktPnNldFZhbHVlQXNTdHJpbmcodmFsdWUuaW1wbCgpKTsKKyAgICBlbHNl
IGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OmZ4QXR0cikKKyAgICAgICAgZngoKS0+YmFz
ZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlLmltcGwoKSk7CisgICAgZWxzZSBpZiAoYXR0
ci0+bmFtZSgpID09IFNWR05hbWVzOjpmeUF0dHIpCisgICAgICAgIGZ5KCktPmJhc2VWYWwoKS0+
c2V0VmFsdWVBc1N0cmluZyh2YWx1ZS5pbXBsKCkpOworICAgIGVsc2UKKyAgICAgICAgU1ZHR3Jh
ZGllbnRFbGVtZW50SW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cik7CiB9CiAKIHZvaWQgU1ZHUmFk
aWFsR3JhZGllbnRFbGVtZW50SW1wbDo6YnVpbGRHcmFkaWVudChLUmVuZGVyaW5nUGFpbnRTZXJ2
ZXJHcmFkaWVudCAqX2dyYWQsIEtDYW52YXMgKmNhbnZhcykgY29uc3QKIHsKLSAgICBRU3RyaW5n
IHJlZiA9IEtET006OkRPTVN0cmluZyhocmVmKCktPmJhc2VWYWwoKSkuc3RyaW5nKCk7CisgICAg
UVN0cmluZyByZWYgPSBLRE9NOjpET01TdHJpbmcoaHJlZigpLT5iYXNlVmFsKCkpLnFzdHJpbmco
KTsKIAogICAgIGJvb2wgYmJveCA9IChncmFkaWVudFVuaXRzKCktPmJhc2VWYWwoKSA9PSBTVkdf
VU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9YKTsKLSAgICBib29sIGZ4U2V0ID0gaGFzQXR0cmli
dXRlKEtET006OkRPTVN0cmluZygiZngiKS5oYW5kbGUoKSk7Ci0gICAgYm9vbCBmeVNldCA9IGhh
c0F0dHJpYnV0ZShLRE9NOjpET01TdHJpbmcoImZ5IikuaGFuZGxlKCkpOworICAgIGJvb2wgZnhT
ZXQgPSBoYXNBdHRyaWJ1dGUoS0RPTTo6RE9NU3RyaW5nKCJmeCIpLmltcGwoKSk7CisgICAgYm9v
bCBmeVNldCA9IGhhc0F0dHJpYnV0ZShLRE9NOjpET01TdHJpbmcoImZ5IikuaW1wbCgpKTsKICAg
ICBjeCgpLT5iYXNlVmFsKCktPnNldEJib3hSZWxhdGl2ZShiYm94KTsKICAgICBjeSgpLT5iYXNl
VmFsKCktPnNldEJib3hSZWxhdGl2ZShiYm94KTsKICAgICByKCktPmJhc2VWYWwoKS0+c2V0QmJv
eFJlbGF0aXZlKGJib3gpOwpAQCAtMTc4LDMxICsxNTksMzEgQEAgdm9pZCBTVkdSYWRpYWxHcmFk
aWVudEVsZW1lbnRJbXBsOjpidWlsZAogICAgICAgICBib29sIGlzUmFkaWFsID0gcHNlcnZlci0+
dHlwZSgpID09IFBTX1JBRElBTF9HUkFESUVOVDsKICAgICAgICAgS1JlbmRlcmluZ1BhaW50U2Vy
dmVyR3JhZGllbnQgKmdyYWRpZW50ID0gc3RhdGljX2Nhc3Q8S1JlbmRlcmluZ1BhaW50U2VydmVy
R3JhZGllbnQgKj4ocHNlcnZlcik7CiAKLSAgICAgICAgaWYoIWhhc0F0dHJpYnV0ZShLRE9NOjpE
T01TdHJpbmcoImdyYWRpZW50VW5pdHMiKS5oYW5kbGUoKSkpCisgICAgICAgIGlmKCFoYXNBdHRy
aWJ1dGUoS0RPTTo6RE9NU3RyaW5nKCJncmFkaWVudFVuaXRzIikuaW1wbCgpKSkKICAgICAgICAg
ICAgIGJib3ggPSBncmFkaWVudC0+Ym91bmRpbmdCb3hNb2RlKCk7CiAKICAgICAgICAgaWYoaXNS
YWRpYWwpCiAgICAgICAgIHsKICAgICAgICAgICAgIEtSZW5kZXJpbmdQYWludFNlcnZlclJhZGlh
bEdyYWRpZW50ICpyYWRpYWwgPSBzdGF0aWNfY2FzdDxLUmVuZGVyaW5nUGFpbnRTZXJ2ZXJSYWRp
YWxHcmFkaWVudCAqPihwc2VydmVyKTsKLSAgICAgICAgICAgIGlmKCFoYXNBdHRyaWJ1dGUoS0RP
TTo6RE9NU3RyaW5nKCJjeCIpLmhhbmRsZSgpKSkKKyAgICAgICAgICAgIGlmKCFoYXNBdHRyaWJ1
dGUoS0RPTTo6RE9NU3RyaW5nKCJjeCIpLmltcGwoKSkpCiAgICAgICAgICAgICAgICAgX2N4ID0g
cmFkaWFsLT5ncmFkaWVudENlbnRlcigpLngoKTsKICAgICAgICAgICAgIGVsc2UgaWYoYmJveCkK
ICAgICAgICAgICAgICAgICBfY3ggKj0gMTAwLjsKLSAgICAgICAgICAgIGlmKCFoYXNBdHRyaWJ1
dGUoS0RPTTo6RE9NU3RyaW5nKCJjeSIpLmhhbmRsZSgpKSkKKyAgICAgICAgICAgIGlmKCFoYXNB
dHRyaWJ1dGUoS0RPTTo6RE9NU3RyaW5nKCJjeSIpLmltcGwoKSkpCiAgICAgICAgICAgICAgICAg
X2N5ID0gcmFkaWFsLT5ncmFkaWVudENlbnRlcigpLnkoKTsKICAgICAgICAgICAgIGVsc2UgaWYo
YmJveCkKICAgICAgICAgICAgICAgICBfY3kgKj0gMTAwLjsKIAotICAgICAgICAgICAgaWYoIWhh
c0F0dHJpYnV0ZShLRE9NOjpET01TdHJpbmcoImZ4IikuaGFuZGxlKCkpKQorICAgICAgICAgICAg
aWYoIWhhc0F0dHJpYnV0ZShLRE9NOjpET01TdHJpbmcoImZ4IikuaW1wbCgpKSkKICAgICAgICAg
ICAgICAgICBfZnggPSByYWRpYWwtPmdyYWRpZW50Rm9jYWwoKS54KCk7CiAgICAgICAgICAgICBl
bHNlIGlmKGJib3gpCiAgICAgICAgICAgICAgICAgX2Z4ICo9IDEwMC47Ci0gICAgICAgICAgICBp
ZighaGFzQXR0cmlidXRlKEtET006OkRPTVN0cmluZygiZnkiKS5oYW5kbGUoKSkpCisgICAgICAg
ICAgICBpZighaGFzQXR0cmlidXRlKEtET006OkRPTVN0cmluZygiZnkiKS5pbXBsKCkpKQogICAg
ICAgICAgICAgICAgIF9meSA9IHJhZGlhbC0+Z3JhZGllbnRGb2NhbCgpLnkoKTsKICAgICAgICAg
ICAgIGVsc2UgaWYoYmJveCkKICAgICAgICAgICAgICAgICBfZnkgKj0gMTAwLjsKIAotICAgICAg
ICAgICAgaWYoIWhhc0F0dHJpYnV0ZShLRE9NOjpET01TdHJpbmcoInIiKS5oYW5kbGUoKSkpCisg
ICAgICAgICAgICBpZighaGFzQXR0cmlidXRlKEtET006OkRPTVN0cmluZygiciIpLmltcGwoKSkp
CiAgICAgICAgICAgICAgICAgX3IgPSByYWRpYWwtPmdyYWRpZW50UmFkaXVzKCk7CiAgICAgICAg
ICAgICBlbHNlIGlmKGJib3gpCiAgICAgICAgICAgICAgICAgX3IgKj0gMTAwLjsKQEAgLTIxNiw3
ICsxOTcsNyBAQCB2b2lkIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudEltcGw6OmJ1aWxkCiAgICAg
ICAgICAgICBfciAqPSAxMDAuMDsKICAgICAgICAgfQogCi0gICAgICAgIGlmKCFoYXNBdHRyaWJ1
dGUoS0RPTTo6RE9NU3RyaW5nKCJncmFkaWVudFRyYW5zZm9ybSIpLmhhbmRsZSgpKSkKKyAgICAg
ICAgaWYoIWhhc0F0dHJpYnV0ZShLRE9NOjpET01TdHJpbmcoImdyYWRpZW50VHJhbnNmb3JtIiku
aW1wbCgpKSkKICAgICAgICAgICAgIG1hdCA9IGdyYWRpZW50LT5ncmFkaWVudFRyYW5zZm9ybSgp
OwogCiAgICAgICAgIC8vIEluaGVyaXQgY29sb3Igc3RvcHMgaWYgZW1wdHkKQEAgLTIyNyw3ICsy
MDgsNyBAQCB2b2lkIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudEltcGw6OmJ1aWxkCiAgICAgICAg
ICAgICAgICAgZ3JhZC0+Z3JhZGllbnRTdG9wcygpLmFkZFN0b3AoaXQuY3VycmVudCgpLT5vZmZz
ZXQsIGl0LmN1cnJlbnQoKS0+Y29sb3IpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYoIWhhc0F0
dHJpYnV0ZShLRE9NOjpET01TdHJpbmcoInNwcmVhZE1ldGhvZCIpLmhhbmRsZSgpKSkKKyAgICAg
ICAgaWYoIWhhc0F0dHJpYnV0ZShLRE9NOjpET01TdHJpbmcoInNwcmVhZE1ldGhvZCIpLmltcGwo
KSkpCiAgICAgICAgICAgICBncmFkLT5zZXRHcmFkaWVudFNwcmVhZE1ldGhvZChncmFkaWVudC0+
c3ByZWFkTWV0aG9kKCkpOwogICAgIH0KICAgICBlbHNlCkBAIC0yNjMsMTQgKzI0NCwxNCBAQCBL
Q2FudmFzSXRlbSAqU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50SW1wCiAKICAgICBwc2VydmVyLT5z
ZXRMaXN0ZW5lcihjb25zdF9jYXN0PFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudEltcGwgKj4odGhp
cykpOwogCi0gICAgY2FudmFzLT5yZWdpc3RyeSgpLT5hZGRQYWludFNlcnZlckJ5SWQoS0RPTTo6
RE9NU3RyaW5nKGdldElkKCkpLnN0cmluZygpLCBwc2VydmVyKTsKKyAgICBjYW52YXMtPnJlZ2lz
dHJ5KCktPmFkZFBhaW50U2VydmVyQnlJZChnZXRBdHRyaWJ1dGUoImlkIikucXN0cmluZygpLCBw
c2VydmVyKTsKICAgICByZXR1cm4gMDsKIH0KIAogdm9pZCBTVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnRJbXBsOjpyZXNvdXJjZU5vdGlmaWNhdGlvbigpIGNvbnN0CiB7CiAgICAgLy8gV2UncmUgcmVm
ZXJlbmNlZCBieSBhICJjbGllbnQiLCBidWlsZCB0aGUgZ3JhZGllbnQgbm93Li4uCi0gICAgS1Jl
bmRlcmluZ1BhaW50U2VydmVyICpwc2VydmVyID0gY2FudmFzKCktPnJlZ2lzdHJ5KCktPmdldFBh
aW50U2VydmVyQnlJZChLRE9NOjpET01TdHJpbmcoZ2V0SWQoKSkuc3RyaW5nKCkpOworICAgIEtS
ZW5kZXJpbmdQYWludFNlcnZlciAqcHNlcnZlciA9IGNhbnZhcygpLT5yZWdpc3RyeSgpLT5nZXRQ
YWludFNlcnZlckJ5SWQoZ2V0QXR0cmlidXRlKCJpZCIpLnFzdHJpbmcoKSk7CiAgICAgS1JlbmRl
cmluZ1BhaW50U2VydmVyR3JhZGllbnQgKmdyYWRpZW50ID0gc3RhdGljX2Nhc3Q8S1JlbmRlcmlu
Z1BhaW50U2VydmVyR3JhZGllbnQgKj4ocHNlcnZlcik7CiAgICAgYnVpbGRHcmFkaWVudChncmFk
aWVudCwgY2FudmFzKCkpOwogfQpJbmRleDoga3N2ZzIvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxl
bWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3Zn
Mi9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50SW1wbC5oLHYKcmV0cmlldmluZyByZXZpc2lv
biAxLjQKZGlmZiAtcCAtdSAtcjEuNCBrc3ZnMi9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50
SW1wbC5oCi0tLSBrc3ZnMi9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50SW1wbC5oCTEgU2Vw
IDIwMDUgMDc6MzU6NTAgLTAwMDAJMS40CisrKyBrc3ZnMi9zdmcvU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50SW1wbC5oCTEgTm92IDIwMDUgMTE6MTM6MjAgLTAwMDAKQEAgLTMxLDcgKzMxLDcgQEAg
bmFtZXNwYWNlIEtTVkcKICAgICBjbGFzcyBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnRJbXBsIDog
cHVibGljIFNWR0dyYWRpZW50RWxlbWVudEltcGwKICAgICB7CiAgICAgcHVibGljOgotICAgICAg
ICBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnRJbXBsKEtET006OkRvY3VtZW50UHRyICpkb2MsIEtE
T006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHJlZml4KTsKKyAgICAg
ICAgU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudFB0ciAqZG9jKTsKICAgICAgICAgdmlydHVhbCB+U1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50SW1wbCgpOwogCiAgICAgICAgIC8vICdTVkdSYWRpYWxHcmFk
aWVudEVsZW1lbnQnIGZ1bmN0aW9ucwpJbmRleDoga3N2ZzIvc3ZnL1NWR1JlY3RFbGVtZW50SW1w
bC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvc3Zn
L1NWR1JlY3RFbGVtZW50SW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNgpkaWZmIC1w
IC11IC1yMS42IGtzdmcyL3N2Zy9TVkdSZWN0RWxlbWVudEltcGwuY3BwCi0tLSBrc3ZnMi9zdmcv
U1ZHUmVjdEVsZW1lbnRJbXBsLmNwcAk1IE9jdCAyMDA1IDA1OjM1OjI3IC0wMDAwCTEuNgorKysg
a3N2ZzIvc3ZnL1NWR1JlY3RFbGVtZW50SW1wbC5jcHAJMSBOb3YgMjAwNSAxMToxMzoyMCAtMDAw
MApAQCAtMjMsNyArMjMsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgPGtkb20v
Y29yZS9BdHRySW1wbC5oPgogCi0jaW5jbHVkZSAic3ZnYXR0cnMuaCIKKyNpbmNsdWRlICJTVkdO
YW1lcy5oIgogI2luY2x1ZGUgIlNWR0hlbHBlci5oIgogI2luY2x1ZGUgIlNWR0RvY3VtZW50SW1w
bC5oIgogI2luY2x1ZGUgIlNWR1JlY3RFbGVtZW50SW1wbC5oIgpAQCAtMzgsOCArMzgsOCBAQAog
CiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIAotU1ZHUmVjdEVsZW1lbnRJbXBsOjpTVkdSZWN0RWxl
bWVudEltcGwoS0RPTTo6RG9jdW1lbnRQdHIgKmRvYywgS0RPTTo6Tm9kZUltcGw6OklkIGlkLCBL
RE9NOjpET01TdHJpbmdJbXBsICpwcmVmaXgpCi06IFNWR1N0eWxlZEVsZW1lbnRJbXBsKGRvYywg
aWQsIHByZWZpeCksIFNWR1Rlc3RzSW1wbCgpLCBTVkdMYW5nU3BhY2VJbXBsKCksIFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsKCksIFNWR1RyYW5zZm9ybWFibGVJbXBsKCkKK1NWR1Jl
Y3RFbGVtZW50SW1wbDo6U1ZHUmVjdEVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50UHRyICpkb2MpCis6IFNWR1N0eWxlZEVsZW1lbnRJ
bXBsKHRhZ05hbWUsIGRvYyksIFNWR1Rlc3RzSW1wbCgpLCBTVkdMYW5nU3BhY2VJbXBsKCksIFNW
R0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsKCksIFNWR1RyYW5zZm9ybWFibGVJbXBsKCkK
IHsKICAgICBtX3ggPSBtX3kgPSBtX3J4ID0gbV9yeSA9IG1fd2lkdGggPSBtX2hlaWdodCA9IDA7
CiB9CkBAIC05Miw1MCArOTIsMjggQEAgU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsICpTVkdSZWN0RWxl
bWVudEltcAogCiB2b2lkIFNWR1JlY3RFbGVtZW50SW1wbDo6cGFyc2VBdHRyaWJ1dGUoS0RPTTo6
QXR0cmlidXRlSW1wbCAqYXR0cikKIHsKLSAgICBpbnQgaWQgPSAoYXR0ci0+aWQoKSAmIE5vZGVJ
bXBsX0lkTG9jYWxNYXNrKTsKLSAgICBLRE9NOjpET01TdHJpbmdJbXBsICp2YWx1ZSA9IGF0dHIt
PnZhbHVlKCk7Ci0gICAgc3dpdGNoKGlkKQorICAgIGNvbnN0IEtET006OkF0b21pY1N0cmluZyYg
dmFsdWUgPSBhdHRyLT52YWx1ZSgpOworICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6
OnhBdHRyKQorICAgICAgICB4KCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZS5p
bXBsKCkpOworICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6eUF0dHIpCisg
ICAgICAgIHkoKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlLmltcGwoKSk7Cisg
ICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjpyeEF0dHIpCisgICAgICAgIHJ4
KCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZS5pbXBsKCkpOworICAgIGVsc2Ug
aWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6cnlBdHRyKQorICAgICAgICByeSgpLT5iYXNl
VmFsKCktPnNldFZhbHVlQXNTdHJpbmcodmFsdWUuaW1wbCgpKTsKKyAgICBlbHNlIGlmIChhdHRy
LT5uYW1lKCkgPT0gU1ZHTmFtZXM6OndpZHRoQXR0cikKKyAgICAgICAgd2lkdGgoKS0+YmFzZVZh
bCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlLmltcGwoKSk7CisgICAgZWxzZSBpZiAoYXR0ci0+
bmFtZSgpID09IFNWR05hbWVzOjpoZWlnaHRBdHRyKQorICAgICAgICBoZWlnaHQoKS0+YmFzZVZh
bCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlLmltcGwoKSk7CisgICAgZWxzZQogICAgIHsKLSAg
ICAgICAgY2FzZSBBVFRSX1g6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHgoKS0+YmFzZVZhbCgp
LT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9
Ci0gICAgICAgIGNhc2UgQVRUUl9ZOgotICAgICAgICB7Ci0gICAgICAgICAgICB5KCktPmJhc2VW
YWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgfQotICAgICAgICBjYXNlIEFUVFJfUlg6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJ4KCkt
PmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgfQotICAgICAgICBjYXNlIEFUVFJfUlk6Ci0gICAgICAgIHsKLSAgICAgICAgICAg
IHJ5KCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIEFUVFJfV0lEVEg6Ci0gICAgICAgIHsKLSAg
ICAgICAgICAgIHdpZHRoKCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIEFUVFJfSEVJR0hUOgot
ICAgICAgICB7Ci0gICAgICAgICAgICBoZWlnaHQoKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3Ry
aW5nKHZhbHVlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGRlZmF1
bHQ6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlmKFNWR1Rlc3RzSW1wbDo6cGFyc2VBdHRyaWJ1
dGUoYXR0cikpIHJldHVybjsKLSAgICAgICAgICAgIGlmKFNWR0xhbmdTcGFjZUltcGw6OnBhcnNl
QXR0cmlidXRlKGF0dHIpKSByZXR1cm47Ci0gICAgICAgICAgICBpZihTVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsKLSAgICAgICAg
ICAgIGlmKFNWR1RyYW5zZm9ybWFibGVJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJu
OwotICAgICAgICAgICAgCi0gICAgICAgICAgICBTVkdTdHlsZWRFbGVtZW50SW1wbDo6cGFyc2VB
dHRyaWJ1dGUoYXR0cik7Ci0gICAgICAgIH0KLSAgICB9OworICAgICAgICBpZihTVkdUZXN0c0lt
cGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47CisgICAgICAgIGlmKFNWR0xhbmdTcGFj
ZUltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47CisgICAgICAgIGlmKFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOwor
ICAgICAgICBpZihTVkdUcmFuc2Zvcm1hYmxlSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJl
dHVybjsKKyAgICAgICAgCisgICAgICAgIFNWR1N0eWxlZEVsZW1lbnRJbXBsOjpwYXJzZUF0dHJp
YnV0ZShhdHRyKTsKKyAgICB9CiB9CiAKIEtDUGF0aERhdGFMaXN0IFNWR1JlY3RFbGVtZW50SW1w
bDo6dG9QYXRoRGF0YSgpIGNvbnN0CkBAIC0xNDMsNyArMTIxLDcgQEAgS0NQYXRoRGF0YUxpc3Qg
U1ZHUmVjdEVsZW1lbnRJbXBsOjp0b1BhdAogICAgIGZsb2F0IF94ID0geCgpLT5iYXNlVmFsKCkt
PnZhbHVlKCksIF95ID0geSgpLT5iYXNlVmFsKCktPnZhbHVlKCk7CiAgICAgZmxvYXQgX3dpZHRo
ID0gd2lkdGgoKS0+YmFzZVZhbCgpLT52YWx1ZSgpLCBfaGVpZ2h0ID0gaGVpZ2h0KCktPmJhc2VW
YWwoKS0+dmFsdWUoKTsKIAotICAgIGlmKGhhc0F0dHJpYnV0ZShLRE9NOjpET01TdHJpbmcoInJ4
IikuaGFuZGxlKCkpIHx8IGhhc0F0dHJpYnV0ZShLRE9NOjpET01TdHJpbmcoInJ5IikuaGFuZGxl
KCkpKQorICAgIGlmKGhhc0F0dHJpYnV0ZShLRE9NOjpET01TdHJpbmcoInJ4IikuaW1wbCgpKSB8
fCBoYXNBdHRyaWJ1dGUoS0RPTTo6RE9NU3RyaW5nKCJyeSIpLmltcGwoKSkpCiAgICAgewogICAg
ICAgICBmbG9hdCBfcnggPSByeCgpLT5iYXNlVmFsKCktPnZhbHVlKCksIF9yeSA9IHJ4KCktPmJh
c2VWYWwoKS0+dmFsdWUoKTsKICAgICAgICAgcmV0dXJuIEtDYW52YXNDcmVhdG9yOjpzZWxmKCkt
PmNyZWF0ZVJvdW5kZWRSZWN0YW5nbGUoX3gsIF95LCBfd2lkdGgsIF9oZWlnaHQsIF9yeCwgX3J5
KTsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdSZWN0RWxlbWVudEltcGwuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHUmVjdEVsZW1lbnRJbXBsLmgs
dgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNApkaWZmIC1wIC11IC1yMS40IGtzdmcyL3N2Zy9TVkdS
ZWN0RWxlbWVudEltcGwuaAotLS0ga3N2ZzIvc3ZnL1NWR1JlY3RFbGVtZW50SW1wbC5oCTEgU2Vw
IDIwMDUgMDc6MzU6NTAgLTAwMDAJMS40CisrKyBrc3ZnMi9zdmcvU1ZHUmVjdEVsZW1lbnRJbXBs
LmgJMSBOb3YgMjAwNSAxMToxMzoyMCAtMDAwMApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2Ug
S1NWRwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdUcmFuc2Zvcm1h
YmxlSW1wbAogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR1JlY3RFbGVtZW50SW1wbChL
RE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsICBLRE9NOjpET01T
dHJpbmdJbXBsICpwcmVmaXgpOworICAgICAgICBTVkdSZWN0RWxlbWVudEltcGwoY29uc3QgS0RP
TTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRvYyk7CiAgICAg
ICAgIHZpcnR1YWwgflNWR1JlY3RFbGVtZW50SW1wbCgpOwogCiAgICAgICAgIC8vICdTVkdSZWN0
RWxlbWVudCcgZnVuY3Rpb25zCkluZGV4OiBrc3ZnMi9zdmcvU1ZHU1ZHRWxlbWVudEltcGwuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdT
VkdFbGVtZW50SW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOQpkaWZmIC1wIC11IC1y
MS45IGtzdmcyL3N2Zy9TVkdTVkdFbGVtZW50SW1wbC5jcHAKLS0tIGtzdmcyL3N2Zy9TVkdTVkdF
bGVtZW50SW1wbC5jcHAJMTMgT2N0IDIwMDUgMDg6Mjk6MjAgLTAwMDAJMS45CisrKyBrc3ZnMi9z
dmcvU1ZHU1ZHRWxlbWVudEltcGwuY3BwCTEgTm92IDIwMDUgMTE6MTM6MjAgLTAwMDAKQEAgLTM1
LDEyICszNSwxMSBAQAogI2luY2x1ZGUgPGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdEZXZpY2Uu
aD4KIAogI2luY2x1ZGUgImtzdmcuaCIKLSNpbmNsdWRlICJzdmdhdHRycy5oIgorI2luY2x1ZGUg
IlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHSGVscGVyLmgiCiAjaW5jbHVkZSAiU1ZHUmVjdElt
cGwuaCIKICNpbmNsdWRlICJTVkdBbmdsZUltcGwuaCIKICNpbmNsdWRlICJTVkdQb2ludEltcGwu
aCIKLSNpbmNsdWRlICJTVkdFdmVudEltcGwuaCIKICNpbmNsdWRlICJTVkdNYXRyaXhJbXBsLmgi
CiAjaW5jbHVkZSAiU1ZHTnVtYmVySW1wbC5oIgogI2luY2x1ZGUgIlNWR0xlbmd0aEltcGwuaCIK
QEAgLTYxLDEwICs2MCwxMCBAQAogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIAotU1ZHU1ZHRWxl
bWVudEltcGw6OlNWR1NWR0VsZW1lbnRJbXBsKEtET006OkRvY3VtZW50UHRyICpkb2MsIEtET006
Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHJlZml4KQotOiBTVkdTdHls
ZWRFbGVtZW50SW1wbChkb2MsIGlkLCBwcmVmaXgpLCBTVkdUZXN0c0ltcGwoKSwgU1ZHTGFuZ1Nw
YWNlSW1wbCgpLAorU1ZHU1ZHRWxlbWVudEltcGw6OlNWR1NWR0VsZW1lbnRJbXBsKGNvbnN0IEtE
T006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50UHRyICpkb2MpCis6IFNW
R1N0eWxlZEVsZW1lbnRJbXBsKHRhZ05hbWUsIGRvYyksIFNWR1Rlc3RzSW1wbCgpLCBTVkdMYW5n
U3BhY2VJbXBsKCksCiAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsKCksIFNWR0xv
Y2F0YWJsZUltcGwoKSwgU1ZHRml0VG9WaWV3Qm94SW1wbCgpLAotICBTVkdab29tQW5kUGFuSW1w
bCgpLCBLRE9NOjpEb2N1bWVudEV2ZW50SW1wbCgpCisgIFNWR1pvb21BbmRQYW5JbXBsKCkKIHsK
ICAgICBtX2NsaXBwZXIgPSAwOwogCkBAIC0xMDEsNyArMTAwLDcgQEAgU1ZHQW5pbWF0ZWRMZW5n
dGhJbXBsICpTVkdTVkdFbGVtZW50SW1wbAogICAgIHsKICAgICAgICAgS0RPTTo6RE9NU3RyaW5n
IHRlbXAoIjEwMCUiKTsKICAgICAgICAgbGF6eV9jcmVhdGU8U1ZHQW5pbWF0ZWRMZW5ndGhJbXBs
PihtX3dpZHRoLCBzdGF0aWNfY2FzdDxjb25zdCBTVkdTdHlsZWRFbGVtZW50SW1wbCAqPigwKSwg
TE1fV0lEVEgsIG93bmVyRG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkgPT0gc3RhdGljX2Nh
c3Q8Y29uc3QgS0RPTTo6RWxlbWVudEltcGwgKj4odGhpcykgPyB0aGlzIDogdmlld3BvcnRFbGVt
ZW50KCkpOwotICAgICAgICBtX3dpZHRoLT5iYXNlVmFsKCktPnNldFZhbHVlQXNTdHJpbmcodGVt
cC5oYW5kbGUoKSk7CisgICAgICAgIG1fd2lkdGgtPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmlu
Zyh0ZW1wLmltcGwoKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIG1fd2lkdGg7CkBAIC0xMTMsMzEg
KzExMiwzMCBAQCBTVkdBbmltYXRlZExlbmd0aEltcGwgKlNWR1NWR0VsZW1lbnRJbXBsCiAgICAg
ewogICAgICAgICBLRE9NOjpET01TdHJpbmcgdGVtcCgiMTAwJSIpOwogICAgICAgICBsYXp5X2Ny
ZWF0ZTxTVkdBbmltYXRlZExlbmd0aEltcGw+KG1faGVpZ2h0LCBzdGF0aWNfY2FzdDxjb25zdCBT
VkdTdHlsZWRFbGVtZW50SW1wbCAqPigwKSwgTE1fSEVJR0hULCBvd25lckRvY3VtZW50KCktPmRv
Y3VtZW50RWxlbWVudCgpID09IHN0YXRpY19jYXN0PGNvbnN0IEtET006OkVsZW1lbnRJbXBsICo+
KHRoaXMpID8gdGhpcyA6IHZpZXdwb3J0RWxlbWVudCgpKTsKLSAgICAgICAgbV9oZWlnaHQtPmJh
c2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh0ZW1wLmhhbmRsZSgpKTsKKyAgICAgICAgbV9oZWln
aHQtPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh0ZW1wLmltcGwoKSk7CiAgICAgfQogCiAg
ICAgcmV0dXJuIG1faGVpZ2h0OwogfQogCi1LRE9NOjpET01TdHJpbmdJbXBsICpTVkdTVkdFbGVt
ZW50SW1wbDo6Y29udGVudFNjcmlwdFR5cGUoKSBjb25zdAorY29uc3QgS0RPTTo6QXRvbWljU3Ry
aW5nJiBTVkdTVkdFbGVtZW50SW1wbDo6Y29udGVudFNjcmlwdFR5cGUoKSBjb25zdAogewotICAg
IHJldHVybiB0cnlHZXRBdHRyaWJ1dGUoS0RPTTo6RE9NU3RyaW5nKCJjb250ZW50U2NyaXB0VHlw
ZSIpLmhhbmRsZSgpLCBLRE9NOjpET01TdHJpbmcoInRleHQvZWNtYXNjcmlwdCIpLmhhbmRsZSgp
KTsKKyAgICByZXR1cm4gdHJ5R2V0QXR0cmlidXRlKCJjb250ZW50U2NyaXB0VHlwZSIsICJ0ZXh0
L2VjbWFzY3JpcHQiKTsKIH0KIAotdm9pZCBTVkdTVkdFbGVtZW50SW1wbDo6c2V0Q29udGVudFNj
cmlwdFR5cGUoS0RPTTo6RE9NU3RyaW5nSW1wbCAqdHlwZSkKK3ZvaWQgU1ZHU1ZHRWxlbWVudElt
cGw6OnNldENvbnRlbnRTY3JpcHRUeXBlKGNvbnN0IEtET006OkF0b21pY1N0cmluZyYgdHlwZSkK
IHsKLSAgICBLRE9NOjpET01TdHJpbmcgbmFtZSgiY29udGVudFNjcmlwdFR5cGUiKTsgICAgCi0g
ICAgc2V0QXR0cmlidXRlKG5hbWUuaGFuZGxlKCksIHR5cGUpOworICAgIHNldEF0dHJpYnV0ZShT
VkdOYW1lczo6Y29udGVudHNjcmlwdHR5cGVBdHRyLCB0eXBlKTsKIH0KIAotS0RPTTo6RE9NU3Ry
aW5nSW1wbCAqU1ZHU1ZHRWxlbWVudEltcGw6OmNvbnRlbnRTdHlsZVR5cGUoKSBjb25zdAorY29u
c3QgS0RPTTo6QXRvbWljU3RyaW5nJiBTVkdTVkdFbGVtZW50SW1wbDo6Y29udGVudFN0eWxlVHlw
ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHRyeUdldEF0dHJpYnV0ZShLRE9NOjpET01TdHJpbmco
ImNvbnRlbnRTdHlsZVR5cGUiKS5oYW5kbGUoKSwgS0RPTTo6RE9NU3RyaW5nKCJ0ZXh0L2NzcyIp
LmhhbmRsZSgpKTsKKyAgICByZXR1cm4gdHJ5R2V0QXR0cmlidXRlKCJjb250ZW50U3R5bGVUeXBl
IiwgInRleHQvY3NzIik7CiB9CiAKLXZvaWQgU1ZHU1ZHRWxlbWVudEltcGw6OnNldENvbnRlbnRT
dHlsZVR5cGUoS0RPTTo6RE9NU3RyaW5nSW1wbCAqdHlwZSkKK3ZvaWQgU1ZHU1ZHRWxlbWVudElt
cGw6OnNldENvbnRlbnRTdHlsZVR5cGUoY29uc3QgS0RPTTo6QXRvbWljU3RyaW5nJiB0eXBlKQog
ewotICAgIHNldEF0dHJpYnV0ZShLRE9NOjpET01TdHJpbmcoImNvbnRlbnRTdHlsZVR5cGUiKS5o
YW5kbGUoKSwgdHlwZSk7CisgICAgc2V0QXR0cmlidXRlKFNWR05hbWVzOjpjb250ZW50c3R5bGV0
eXBlQXR0ciwgdHlwZSk7CiB9CiAKIFNWR1JlY3RJbXBsICpTVkdTVkdFbGVtZW50SW1wbDo6dmll
d3BvcnQoKSBjb25zdApAQCAtMjM4LDYyICsyMzYsMzUgQEAgU1ZHUG9pbnRJbXBsICpTVkdTVkdF
bGVtZW50SW1wbDo6Y3VycmVudAogICAgIHJldHVybiBjcmVhdGVTVkdQb2ludChjYW52YXNWaWV3
KCktPnBhbigpKTsKIH0KIAotS0RPTTo6RXZlbnRJbXBsICpTVkdTVkdFbGVtZW50SW1wbDo6Y3Jl
YXRlRXZlbnQoS0RPTTo6RE9NU3RyaW5nSW1wbCAqZXZlbnRUeXBlSW1wbCkKLXsKLSAgICBRU3Ry
aW5nIGV2ZW50VHlwZSA9IChldmVudFR5cGVJbXBsID8gZXZlbnRUeXBlSW1wbC0+c3RyaW5nKCkg
OiBRU3RyaW5nOjpudWxsKTsKLQotICAgIGlmKGV2ZW50VHlwZSA9PSBRU3RyaW5nOjpmcm9tTGF0
aW4xKCJTVkdFdmVudHMiKSkKLSAgICAgICAgcmV0dXJuIG5ldyBTVkdFdmVudEltcGwoKTsKLSAg
ICBlbHNlIGlmKGV2ZW50VHlwZSA9PSBRU3RyaW5nOjpmcm9tTGF0aW4xKCJTVkdab29tRXZlbnRz
IikpCi0gICAgICAgIHJldHVybiBuZXcgU1ZHWm9vbUV2ZW50SW1wbCgpOwotCi0gICAgcmV0dXJu
IERvY3VtZW50RXZlbnRJbXBsOjpjcmVhdGVFdmVudChldmVudFR5cGVJbXBsKTsKLX0KLQogdm9p
ZCBTVkdTVkdFbGVtZW50SW1wbDo6cGFyc2VBdHRyaWJ1dGUoS0RPTTo6QXR0cmlidXRlSW1wbCAq
YXR0cikKIHsKLSAgICBpbnQgaWQgPSAoYXR0ci0+aWQoKSAmIE5vZGVJbXBsX0lkTG9jYWxNYXNr
KTsKLSAgICBLRE9NOjpET01TdHJpbmdJbXBsICp2YWx1ZSA9IGF0dHItPnZhbHVlKCk7Ci0gICAg
c3dpdGNoKGlkKQorICAgIGNvbnN0IEtET006OkF0b21pY1N0cmluZyYgdmFsdWUgPSBhdHRyLT52
YWx1ZSgpOworICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnhBdHRyKQorICAgICAg
ICB4KCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZS5pbXBsKCkpOworICAgIGVs
c2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6eUF0dHIpCisgICAgICAgIHkoKS0+YmFz
ZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlLmltcGwoKSk7CisgICAgZWxzZSBpZiAoYXR0
ci0+bmFtZSgpID09IFNWR05hbWVzOjp3aWR0aEF0dHIgfHwgYXR0ci0+bmFtZSgpID09IFNWR05h
bWVzOjpoZWlnaHRBdHRyKQogICAgIHsKLSAgICAgICAgY2FzZSBBVFRSX1g6Ci0gICAgICAgIHsK
LSAgICAgICAgICAgIHgoKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgQVRUUl9ZOgotICAgICAg
ICB7Ci0gICAgICAgICAgICB5KCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIEFUVFJfV0lEVEg6
Ci0gICAgICAgIGNhc2UgQVRUUl9IRUlHSFQ6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlmKGlk
ID09IEFUVFJfV0lEVEgpCi0gICAgICAgICAgICAgICAgd2lkdGgoKS0+YmFzZVZhbCgpLT5zZXRW
YWx1ZUFzU3RyaW5nKHZhbHVlKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBo
ZWlnaHQoKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsKLQotICAgICAgICAg
ICAgU1ZHRG9jdW1lbnRJbXBsICpkb2N1bWVudCA9IHN0YXRpY19jYXN0PFNWR0RvY3VtZW50SW1w
bCAqPihvd25lckRvY3VtZW50KCkpOwotICAgICAgICAgICAgaWYoZG9jdW1lbnQtPmNhbnZhcygp
ICYmIGNhbnZhc0l0ZW0oKSA9PSBkb2N1bWVudC0+Y2FudmFzKCktPnJvb3RDb250YWluZXIoKSkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC0+Y2FudmFzKCktPnNldENh
bnZhc1NpemUoUVNpemUocVJvdW5kKHdpZHRoKCktPmJhc2VWYWwoKS0+dmFsdWUoKSksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHFSb3Vu
ZChoZWlnaHQoKS0+YmFzZVZhbCgpLT52YWx1ZSgpKSkpOwotICAgICAgICAgICAgfQorICAgICAg
ICBpZihhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OndpZHRoQXR0cikKKyAgICAgICAgICAgIHdp
ZHRoKCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZS5pbXBsKCkpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBoZWlnaHQoKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5n
KHZhbHVlLmltcGwoKSk7CiAKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAg
IGRlZmF1bHQ6CisgICAgICAgIFNWR0RvY3VtZW50SW1wbCAqZG9jdW1lbnQgPSBzdGF0aWNfY2Fz
dDxTVkdEb2N1bWVudEltcGwgKj4ob3duZXJEb2N1bWVudCgpKTsKKyAgICAgICAgaWYoZG9jdW1l
bnQtPmNhbnZhcygpICYmIGNhbnZhc0l0ZW0oKSA9PSBkb2N1bWVudC0+Y2FudmFzKCktPnJvb3RD
b250YWluZXIoKSkKICAgICAgICAgewotICAgICAgICAgICAgaWYoU1ZHVGVzdHNJbXBsOjpwYXJz
ZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOwotICAgICAgICAgICAgaWYoU1ZHTGFuZ1NwYWNlSW1w
bDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsKLSAgICAgICAgICAgIGlmKFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOwot
ICAgICAgICAgICAgaWYoU1ZHRml0VG9WaWV3Qm94SW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikp
IHJldHVybjsKLSAgICAgICAgICAgIGlmKFNWR1pvb21BbmRQYW5JbXBsOjpwYXJzZUF0dHJpYnV0
ZShhdHRyKSkgcmV0dXJuOwotCi0gICAgICAgICAgICBTVkdTdHlsZWRFbGVtZW50SW1wbDo6cGFy
c2VBdHRyaWJ1dGUoYXR0cik7CisgICAgICAgICAgICBkb2N1bWVudC0+Y2FudmFzKCktPnNldENh
bnZhc1NpemUoUVNpemUocVJvdW5kKHdpZHRoKCktPmJhc2VWYWwoKS0+dmFsdWUoKSksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcVJvdW5kKGhl
aWdodCgpLT5iYXNlVmFsKCktPnZhbHVlKCkpKSk7CiAgICAgICAgIH0KLSAgICB9OworICAgIH0g
ZWxzZSB7CisgICAgICAgIGlmKFNWR1Rlc3RzSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJl
dHVybjsKKyAgICAgICAgaWYoU1ZHTGFuZ1NwYWNlSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikp
IHJldHVybjsKKyAgICAgICAgaWYoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGw6OnBh
cnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47CisgICAgICAgIGlmKFNWR0ZpdFRvVmlld0JveElt
cGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47CisgICAgICAgIGlmKFNWR1pvb21BbmRQ
YW5JbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOworCisgICAgICAgIFNWR1N0eWxl
ZEVsZW1lbnRJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKTsKKyAgICB9CiB9CiAKIHVuc2lnbmVk
IGxvbmcgU1ZHU1ZHRWxlbWVudEltcGw6OnN1c3BlbmRSZWRyYXcodW5zaWduZWQgbG9uZyAvKiBt
YXhfd2FpdF9taWxsaXNlY29uZHMgKi8pCkBAIC00NDksNyArNDIwLDcgQEAgU1ZHTWF0cml4SW1w
bCAqU1ZHU1ZHRWxlbWVudEltcGw6OmdldENUTQogICAgIHsKICAgICAgICAgbWF0LT50cmFuc2xh
dGUoeCgpLT5iYXNlVmFsKCktPnZhbHVlKCksIHkoKS0+YmFzZVZhbCgpLT52YWx1ZSgpKTsKIAot
ICAgICAgICBpZihhdHRyaWJ1dGVzKCktPmdldFZhbHVlKEFUVFJfVklFV0JPWCkpCisgICAgICAg
IGlmKGF0dHJpYnV0ZXMoKS0+Z2V0TmFtZWRJdGVtKFNWR05hbWVzOjp2aWV3Ym94QXR0cikpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIFNWR01hdHJpeEltcGwgKnZpZXdCb3ggPSB2aWV3Qm94VG9W
aWV3VHJhbnNmb3JtKHdpZHRoKCktPmJhc2VWYWwoKS0+dmFsdWUoKSwgaGVpZ2h0KCktPmJhc2VW
YWwoKS0+dmFsdWUoKSk7CiAgICAgICAgICAgICB2aWV3Qm94LT5yZWYoKTsKQEAgLTQ2OCw3ICs0
MzksNyBAQCBTVkdNYXRyaXhJbXBsICpTVkdTVkdFbGVtZW50SW1wbDo6Z2V0U2NyCiAgICAgewog
ICAgICAgICBtYXQtPnRyYW5zbGF0ZSh4KCktPmJhc2VWYWwoKS0+dmFsdWUoKSwgeSgpLT5iYXNl
VmFsKCktPnZhbHVlKCkpOwogCi0gICAgICAgIGlmKGF0dHJpYnV0ZXMoKS0+Z2V0VmFsdWUoQVRU
Ul9WSUVXQk9YKSkKKyAgICAgICAgaWYoYXR0cmlidXRlcygpLT5nZXROYW1lZEl0ZW0oU1ZHTmFt
ZXM6OnZpZXdib3hBdHRyKSkKICAgICAgICAgewogICAgICAgICAgICAgU1ZHTWF0cml4SW1wbCAq
dmlld0JveCA9IHZpZXdCb3hUb1ZpZXdUcmFuc2Zvcm0od2lkdGgoKS0+YmFzZVZhbCgpLT52YWx1
ZSgpLCBoZWlnaHQoKS0+YmFzZVZhbCgpLT52YWx1ZSgpKTsKICAgICAgICAgICAgIHZpZXdCb3gt
PnJlZigpOwpAQCAtNDg2LDcgKzQ1Nyw3IEBAIFFTdHJpbmcgU1ZHU1ZHRWxlbWVudEltcGw6OmFk
anVzdFZpZXdwb3IKICAgICBRVGV4dFN0cmVhbSBrZXlTdHJlYW0oJmtleSwgSU9fV3JpdGVPbmx5
KTsKICAgICBrZXlTdHJlYW0gPDwgKCh2b2lkICopIHRoaXMpOwogCi0gICAgaWYocmVuZGVyU3R5
bGUoKS0+b3ZlcmZsb3coKSA9PSBLRE9NOjpPRl9WSVNJQkxFKQorICAgIGlmKHJlbmRlclN0eWxl
KCktPm92ZXJmbG93KCkgPT0gS0RPTTo6T1ZJU0lCTEUpCiAgICAgICAgIHJldHVybiBRU3RyaW5n
KCk7CiAKICAgICBpZighbV9jbGlwcGVyKQpJbmRleDoga3N2ZzIvc3ZnL1NWR1NWR0VsZW1lbnRJ
bXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvc3Zn
L1NWR1NWR0VsZW1lbnRJbXBsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNwpkaWZmIC1wIC11
IC1yMS43IGtzdmcyL3N2Zy9TVkdTVkdFbGVtZW50SW1wbC5oCi0tLSBrc3ZnMi9zdmcvU1ZHU1ZH
RWxlbWVudEltcGwuaAkyOCBTZXAgMjAwNSAwNTowNjowOCAtMDAwMAkxLjcKKysrIGtzdmcyL3N2
Zy9TVkdTVkdFbGVtZW50SW1wbC5oCTEgTm92IDIwMDUgMTE6MTM6MjAgLTAwMDAKQEAgLTI1LDgg
KzI1LDYgQEAKIAogI2luY2x1ZGUgPHFwb2ludC5oPgogCi0jaW5jbHVkZSA8a2RvbS9ldmVudHMv
RG9jdW1lbnRFdmVudEltcGwuaD4KLQogI2luY2x1ZGUgIlNWR1Rlc3RzSW1wbC5oIgogI2luY2x1
ZGUgIlNWR0xhbmdTcGFjZUltcGwuaCIKICNpbmNsdWRlICJTVkdMb2NhdGFibGVJbXBsLmgiCkBA
IC01OCwxMSArNTYsMTAgQEAgbmFtZXNwYWNlIEtTVkcKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1wbCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdMb2NhdGFibGVJbXBsLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0ZpdFRvVmlld0JveEltcGwsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHWm9vbUFuZFBhbkltcGwsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgS0RPTTo6RG9jdW1lbnRFdmVudEltcGwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdab29tQW5kUGFuSW1wbAogICAg
IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR1NWR0VsZW1lbnRJbXBsKEtET006OkRvY3VtZW50
UHRyICpkb2MsIEtET006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHJl
Zml4KTsKKyAgICAgICAgU1ZHU1ZHRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRvYyk7CiAgICAgICAgIHZpcnR1YWwgflNW
R1NWR0VsZW1lbnRJbXBsKCk7CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTVkco
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CkBAIC03MywxMSArNzAsMTEgQEAgbmFtZXNwYWNlIEtT
VkcKICAgICAgICAgU1ZHQW5pbWF0ZWRMZW5ndGhJbXBsICp3aWR0aCgpIGNvbnN0OwogICAgICAg
ICBTVkdBbmltYXRlZExlbmd0aEltcGwgKmhlaWdodCgpIGNvbnN0OwogCi0gICAgICAgIEtET006
OkRPTVN0cmluZ0ltcGwgKmNvbnRlbnRTY3JpcHRUeXBlKCkgY29uc3Q7Ci0gICAgICAgIHZvaWQg
c2V0Q29udGVudFNjcmlwdFR5cGUoS0RPTTo6RE9NU3RyaW5nSW1wbCAqdHlwZSk7CisgICAgICAg
IGNvbnN0IEtET006OkF0b21pY1N0cmluZyYgY29udGVudFNjcmlwdFR5cGUoKSBjb25zdDsKKyAg
ICAgICAgdm9pZCBzZXRDb250ZW50U2NyaXB0VHlwZShjb25zdCBLRE9NOjpBdG9taWNTdHJpbmcm
IHR5cGUpOwogCi0gICAgICAgIEtET006OkRPTVN0cmluZ0ltcGwgKmNvbnRlbnRTdHlsZVR5cGUo
KSBjb25zdDsKLSAgICAgICAgdm9pZCBzZXRDb250ZW50U3R5bGVUeXBlKEtET006OkRPTVN0cmlu
Z0ltcGwgKnR5cGUpOworICAgICAgICBjb25zdCBLRE9NOjpBdG9taWNTdHJpbmcmIGNvbnRlbnRT
dHlsZVR5cGUoKSBjb25zdDsKKyAgICAgICAgdm9pZCBzZXRDb250ZW50U3R5bGVUeXBlKGNvbnN0
IEtET006OkF0b21pY1N0cmluZyYgdHlwZSk7CiAKICAgICAgICAgU1ZHUmVjdEltcGwgKnZpZXdw
b3J0KCkgY29uc3Q7CiAKQEAgLTEyMyw5ICsxMjAsNiBAQCBuYW1lc3BhY2UgS1NWRwogICAgICAg
ICBzdGF0aWMgU1ZHVHJhbnNmb3JtSW1wbCAqY3JlYXRlU1ZHVHJhbnNmb3JtKCk7CiAgICAgICAg
IHN0YXRpYyBTVkdUcmFuc2Zvcm1JbXBsICpjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KFNW
R01hdHJpeEltcGwgKm1hdHJpeCk7CiAKLSAgICAgICAgLy8gJ0RvY3VtZW50RXZlbnQnIGZ1bmN0
aW9ucwotICAgICAgICB2aXJ0dWFsIEtET006OkV2ZW50SW1wbCAqY3JlYXRlRXZlbnQoS0RPTTo6
RE9NU3RyaW5nSW1wbCAqZXZlbnRUeXBlKTsKLQogICAgICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VB
dHRyaWJ1dGUoS0RPTTo6QXR0cmlidXRlSW1wbCAqKTsKIAogICAgICAgICAvLyAndmlydHVhbCBT
VkdMb2NhdGFibGUnIGZ1bmN0aW9ucwpJbmRleDoga3N2ZzIvc3ZnL1NWR1NjcmlwdEVsZW1lbnRJ
bXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9z
dmcvU1ZHU2NyaXB0RWxlbWVudEltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjkKZGlm
ZiAtcCAtdSAtcjEuOSBrc3ZnMi9zdmcvU1ZHU2NyaXB0RWxlbWVudEltcGwuY3BwCi0tLSBrc3Zn
Mi9zdmcvU1ZHU2NyaXB0RWxlbWVudEltcGwuY3BwCTUgT2N0IDIwMDUgMDU6MzU6MjggLTAwMDAJ
MS45CisrKyBrc3ZnMi9zdmcvU1ZHU2NyaXB0RWxlbWVudEltcGwuY3BwCTEgTm92IDIwMDUgMTE6
MTM6MjEgLTAwMDAKQEAgLTI3LDE1ICsyNywxMyBAQAogI2luY2x1ZGUgPGtkb20vY29yZS9ET01T
dHJpbmdJbXBsLmg+CiAKICNpbmNsdWRlICJrc3ZnLmgiCi0jaW5jbHVkZSAic3ZnYXR0cnMuaCIK
LSNpbmNsdWRlICJrc3ZnZXZlbnRzLmgiCi0jaW5jbHVkZSAiU1ZHRXZlbnRJbXBsLmgiCisjaW5j
bHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdEb2N1bWVudEltcGwuaCIKICNpbmNsdWRl
ICJTVkdTY3JpcHRFbGVtZW50SW1wbC5oIgogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIAotU1ZH
U2NyaXB0RWxlbWVudEltcGw6OlNWR1NjcmlwdEVsZW1lbnRJbXBsKEtET006OkRvY3VtZW50UHRy
ICpkb2MsIEtET006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHJlZml4
KSA6IFNWR0VsZW1lbnRJbXBsKGRvYywgaWQsIHByZWZpeCksIFNWR1VSSVJlZmVyZW5jZUltcGwo
KSwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwoKQorU1ZHU2NyaXB0RWxlbWVudElt
cGw6OlNWR1NjcmlwdEVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIEtET006OkRvY3VtZW50UHRyICpkb2MpIDogU1ZHRWxlbWVudEltcGwodGFnTmFtZSwgZG9j
KSwgU1ZHVVJJUmVmZXJlbmNlSW1wbCgpLCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1w
bCgpCiB7CiAgICAgbV90eXBlID0gMDsKIH0KQEAgLTU4LDIyICs1NiwxNSBAQCB2b2lkIFNWR1Nj
cmlwdEVsZW1lbnRJbXBsOjpzZXRUeXBlKEtET006CiAKIHZvaWQgU1ZHU2NyaXB0RWxlbWVudElt
cGw6OnBhcnNlQXR0cmlidXRlKEtET006OkF0dHJpYnV0ZUltcGwgKmF0dHIpCiB7Ci0gICAgaW50
IGlkID0gKGF0dHItPmlkKCkgJiBOb2RlSW1wbF9JZExvY2FsTWFzayk7Ci0gICAgc3dpdGNoKGlk
KQorICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnR5cGVBdHRyKQorICAgICAgICAg
ICAgc2V0VHlwZShhdHRyLT52YWx1ZSgpLmltcGwoKSk7CisgICAgZWxzZQogICAgIHsKLSAgICAg
ICAgY2FzZSBBVFRSX1RZUEU6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHNldFR5cGUoYXR0ci0+
dmFsdWUoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBkZWZhdWx0
OgotICAgICAgICB7Ci0gICAgICAgICAgICBpZihTVkdVUklSZWZlcmVuY2VJbXBsOjpwYXJzZUF0
dHJpYnV0ZShhdHRyKSkgcmV0dXJuOwotICAgICAgICAgICAgaWYoU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZEltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47CisgICAgICAgIGlm
KFNWR1VSSVJlZmVyZW5jZUltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47CisgICAg
ICAgIGlmKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsOjpwYXJzZUF0dHJpYnV0ZShh
dHRyKSkgcmV0dXJuOwogCi0gICAgICAgICAgICBTVkdFbGVtZW50SW1wbDo6cGFyc2VBdHRyaWJ1
dGUoYXR0cik7Ci0gICAgICAgIH0KLSAgICB9OworICAgICAgICBTVkdFbGVtZW50SW1wbDo6cGFy
c2VBdHRyaWJ1dGUoYXR0cik7CisgICAgfQogfQogCiB2b2lkIFNWR1NjcmlwdEVsZW1lbnRJbXBs
OjpleGVjdXRlU2NyaXB0KEtET006OkRvY3VtZW50SW1wbCAqZG9jdW1lbnQsIEtET006OkRPTVN0
cmluZ0ltcGwgKmpzQ29kZSkKQEAgLTkwLDcgKzgxLDcgQEAgdm9pZCBTVkdTY3JpcHRFbGVtZW50
SW1wbDo6ZXhlY3V0ZVNjcmlwdAogI2VuZGlmCiAKICAgICAvLyBSdW4gc2NyaXB0Ci0gICAgS0pT
OjpDb21wbGV0aW9uIGNvbXAgPSBlY21hRW5naW5lLT5ldmFsdWF0ZShqc0NvZGUuc3RyaW5nKCks
IGVjbWFFbmdpbmUtPmdsb2JhbE9iamVjdCgpKTsKKyAgICBLSlM6OkNvbXBsZXRpb24gY29tcCA9
IGVjbWFFbmdpbmUtPmV2YWx1YXRlKGpzQ29kZS5xc3RyaW5nKCksIGVjbWFFbmdpbmUtPmdsb2Jh
bE9iamVjdCgpKTsKICAgICBpZihjb21wLmNvbXBsVHlwZSgpID09IEtKUzo6VGhyb3cpCiAgICAg
ewogICAgICAgICBLSlM6OkV4ZWNTdGF0ZSAqZXhlYyA9IGVjbWFFbmdpbmUtPmdsb2JhbEV4ZWMo
KTsKQEAgLTEwOCwxMyArOTksOSBAQCB2b2lkIFNWR1NjcmlwdEVsZW1lbnRJbXBsOjpleGVjdXRl
U2NyaXB0CiAgICAgICAgIFNWR0RvY3VtZW50SW1wbCAqc3ZnRG9jdW1lbnQgPSBzdGF0aWNfY2Fz
dDxTVkdEb2N1bWVudEltcGwgKj4oZG9jdW1lbnQpOwogICAgICAgICBpZihzdmdEb2N1bWVudCAm
JiBkb2N1bWVudC0+aGFzTGlzdGVuZXJUeXBlKEtET006OkVSUk9SX0VWRU5UKSkKICAgICAgICAg
ewotICAgICAgICAgICAgU1ZHRXZlbnRJbXBsICpldmVudCA9IHN0YXRpY19jYXN0PFNWR0V2ZW50
SW1wbCAqPihzdmdEb2N1bWVudC0+Y3JlYXRlRXZlbnQoS0RPTTo6RE9NU3RyaW5nKCJTVkdFdmVu
dHMiKS5oYW5kbGUoKSkpOwotICAgICAgICAgICAgZXZlbnQtPnJlZigpOwotCi0gICAgICAgICAg
ICBldmVudC0+aW5pdEV2ZW50KEtET006OkRPTVN0cmluZygiZXJyb3IiKS5oYW5kbGUoKSwgZmFs
c2UsIGZhbHNlKTsKLSAgICAgICAgICAgIHN2Z0RvY3VtZW50LT5kaXNwYXRjaFJlY3Vyc2l2ZUV2
ZW50KGV2ZW50LCBzdmdEb2N1bWVudC0+bGFzdENoaWxkKCkpOwotCi0gICAgICAgICAgICBldmVu
dC0+ZGVyZWYoKTsKKyAgICAgICAgICAgIFNoYXJlZFB0cjxLRE9NOjpFdmVudEltcGw+IGV2ZW50
ID0gc3ZnRG9jdW1lbnQtPmNyZWF0ZUV2ZW50KCJTVkdFdmVudHMiKTsKKyAgICAgICAgICAgIGV2
ZW50LT5pbml0RXZlbnQoS0RPTTo6RXZlbnROYW1lczo6ZXJyb3JFdmVudCwgZmFsc2UsIGZhbHNl
KTsKKyAgICAgICAgICAgIHN2Z0RvY3VtZW50LT5kaXNwYXRjaFJlY3Vyc2l2ZUV2ZW50KGV2ZW50
LmdldCgpLCBzdmdEb2N1bWVudC0+bGFzdENoaWxkKCkpOwogICAgICAgICB9CiAKICAgICAgICAg
a2REZWJ1ZygpIDw8ICJbU1ZHU2NyaXB0RWxlbWVudF0gRXZhbHVhdGlvbiBlcnJvciwgbGluZSAi
IDw8IChsaW5lbm8gIT0gLTEgPyBRU3RyaW5nOjpudW1iZXIobGluZW5vKSA6IFFTdHJpbmc6OmZy
b21MYXRpbjEoIk4vQSIpKSAgPDwgIiAiIDw8IGV4VmFsLT50b1N0cmluZyhleGVjKS5xc3RyaW5n
KCkgPDwgZW5kbDsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdTY3JpcHRFbGVtZW50SW1wbC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdTY3JpcHRF
bGVtZW50SW1wbC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjUKZGlmZiAtcCAtdSAtcjEuNSBr
c3ZnMi9zdmcvU1ZHU2NyaXB0RWxlbWVudEltcGwuaAotLS0ga3N2ZzIvc3ZnL1NWR1NjcmlwdEVs
ZW1lbnRJbXBsLmgJOCBTZXAgMjAwNSAwODowMzozNyAtMDAwMAkxLjUKKysrIGtzdmcyL3N2Zy9T
VkdTY3JpcHRFbGVtZW50SW1wbC5oCTEgTm92IDIwMDUgMTE6MTM6MjEgLTAwMDAKQEAgLTM0LDcg
KzM0LDcgQEAgbmFtZXNwYWNlIEtTVkcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1wbAogICAgIHsKICAgICBwdWJs
aWM6Ci0gICAgICAgIFNWR1NjcmlwdEVsZW1lbnRJbXBsKEtET006OkRvY3VtZW50UHRyICpkb2Ms
IEtET006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHJlZml4KTsKKyAg
ICAgICAgU1ZHU2NyaXB0RWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRvYyk7CiAgICAgICAgIHZpcnR1YWwgflNWR1Njcmlw
dEVsZW1lbnRJbXBsKCk7CiAKICAgICAgICAgLy8gJ1NWR1NjcmlwdEVsZW1lbnQnIGZ1bmN0aW9u
cwpJbmRleDoga3N2ZzIvc3ZnL1NWR1NldEVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHU2V0RWxlbWVudEltcGwuY3Bw
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjYKZGlmZiAtcCAtdSAtcjEuNiBrc3ZnMi9zdmcvU1ZH
U2V0RWxlbWVudEltcGwuY3BwCi0tLSBrc3ZnMi9zdmcvU1ZHU2V0RWxlbWVudEltcGwuY3BwCTUg
T2N0IDIwMDUgMDU6MzU6MjggLTAwMDAJMS42CisrKyBrc3ZnMi9zdmcvU1ZHU2V0RWxlbWVudElt
cGwuY3BwCTEgTm92IDIwMDUgMTE6MTM6MjEgLTAwMDAKQEAgLTI2LDggKzI2LDggQEAKIAogdXNp
bmcgbmFtZXNwYWNlIEtTVkc7CiAKLVNWR1NldEVsZW1lbnRJbXBsOjpTVkdTZXRFbGVtZW50SW1w
bChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRP
TVN0cmluZ0ltcGwgKnByZWZpeCkKLTogU1ZHQW5pbWF0aW9uRWxlbWVudEltcGwoZG9jLCBpZCwg
cHJlZml4KQorU1ZHU2V0RWxlbWVudEltcGw6OlNWR1NldEVsZW1lbnRJbXBsKGNvbnN0IEtET006
OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50UHRyICpkb2MpCis6IFNWR0Fu
aW1hdGlvbkVsZW1lbnRJbXBsKHRhZ05hbWUsIGRvYykKIHsKIH0KIApAQCAtNTcsOSArNTcsOSBA
QCB2b2lkIFNWR1NldEVsZW1lbnRJbXBsOjpoYW5kbGVUaW1lckV2ZW50CiAgICAgLy8gQ29tbWl0
IGNoYW5nZSBub3cuLi4KICAgICBpZihtX3NhdmVkVG8uaXNFbXB0eSgpKQogICAgIHsKLSAgICAg
ICAgS0RPTTo6RE9NU3RyaW5nSW1wbCAqYXR0ciA9IHRhcmdldEF0dHJpYnV0ZSgpOwotICAgICAg
ICBtX3NhdmVkVG8gPSAoYXR0ciA/IGF0dHItPnN0cmluZygpIDogUVN0cmluZzo6bnVsbCk7Ci0g
ICAgICAgIHNldFRhcmdldEF0dHJpYnV0ZShLRE9NOjpET01TdHJpbmcobV90bykuaGFuZGxlKCkp
OworICAgICAgICBLRE9NOjpET01TdHJpbmcgYXR0cih0YXJnZXRBdHRyaWJ1dGUoKSk7CisgICAg
ICAgIG1fc2F2ZWRUbyA9IGF0dHIucXN0cmluZygpOworICAgICAgICBzZXRUYXJnZXRBdHRyaWJ1
dGUoS0RPTTo6RE9NU3RyaW5nKG1fdG8pLmltcGwoKSk7CiAgICAgfQogCiAgICAgLy8gRW5kIGNv
bmRpdGlvbi4KQEAgLTczLDcgKzczLDcgQEAgdm9pZCBTVkdTZXRFbGVtZW50SW1wbDo6aGFuZGxl
VGltZXJFdmVudAogICAgICAgICB9CiAKICAgICAgICAgaWYoIWlzRnJvemVuKCkpCi0gICAgICAg
ICAgICBzZXRUYXJnZXRBdHRyaWJ1dGUoS0RPTTo6RE9NU3RyaW5nKG1fc2F2ZWRUbykuaGFuZGxl
KCkpOworICAgICAgICAgICAgc2V0VGFyZ2V0QXR0cmlidXRlKEtET006OkRPTVN0cmluZyhtX3Nh
dmVkVG8pLmltcGwoKSk7CiAKICAgICAgICAgbV9zYXZlZFRvID0gUVN0cmluZygpOwogICAgIH0K
SW5kZXg6IGtzdmcyL3N2Zy9TVkdTZXRFbGVtZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdTZXRFbGVtZW50SW1wbC5oLHYKcmV0
cmlldmluZyByZXZpc2lvbiAxLjQKZGlmZiAtcCAtdSAtcjEuNCBrc3ZnMi9zdmcvU1ZHU2V0RWxl
bWVudEltcGwuaAotLS0ga3N2ZzIvc3ZnL1NWR1NldEVsZW1lbnRJbXBsLmgJMSBTZXAgMjAwNSAw
NzozNTo1MSAtMDAwMAkxLjQKKysrIGtzdmcyL3N2Zy9TVkdTZXRFbGVtZW50SW1wbC5oCTEgTm92
IDIwMDUgMTE6MTM6MjEgLTAwMDAKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIEtTVkcKICAg
ICBjbGFzcyBTVkdTZXRFbGVtZW50SW1wbCA6IHB1YmxpYyBTVkdBbmltYXRpb25FbGVtZW50SW1w
bAogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR1NldEVsZW1lbnRJbXBsKEtET006OkRv
Y3VtZW50UHRyICpkb2MsIEtET006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1w
bCAqcHJlZml4KTsKKyAgICAgICAgU1ZHU2V0RWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRvYyk7CiAgICAgICAgIHZpcnR1
YWwgflNWR1NldEVsZW1lbnRJbXBsKCk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGhhbmRsZVRp
bWVyRXZlbnQoZG91YmxlIHRpbWVQZXJjZW50YWdlKTsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdTdG9w
RWxlbWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0
L2tzdmcyL3N2Zy9TVkdTdG9wRWxlbWVudEltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAx
LjcKZGlmZiAtcCAtdSAtcjEuNyBrc3ZnMi9zdmcvU1ZHU3RvcEVsZW1lbnRJbXBsLmNwcAotLS0g
a3N2ZzIvc3ZnL1NWR1N0b3BFbGVtZW50SW1wbC5jcHAJNSBPY3QgMjAwNSAwNTozNToyOCAtMDAw
MAkxLjcKKysrIGtzdmcyL3N2Zy9TVkdTdG9wRWxlbWVudEltcGwuY3BwCTEgTm92IDIwMDUgMTE6
MTM6MjEgLTAwMDAKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlIDxrY2FudmFzL0tDYW52YXNS
ZWdpc3RyeS5oPgogI2luY2x1ZGUgPGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdQYWludFNlcnZl
ckdyYWRpZW50Lmg+CiAKLSNpbmNsdWRlICJzdmdhdHRycy5oIgorI2luY2x1ZGUgIlNWR05hbWVz
LmgiCiAjaW5jbHVkZSAiU1ZHSGVscGVyLmgiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIK
ICNpbmNsdWRlICJTVkdEb2N1bWVudEltcGwuaCIKQEAgLTM3LDcgKzM3LDcgQEAKIAogdXNpbmcg
bmFtZXNwYWNlIEtTVkc7CiAKLVNWR1N0b3BFbGVtZW50SW1wbDo6U1ZHU3RvcEVsZW1lbnRJbXBs
KEtET006OkRvY3VtZW50UHRyICpkb2MsIEtET006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9N
U3RyaW5nSW1wbCAqcHJlZml4KSA6IFNWR1N0eWxlZEVsZW1lbnRJbXBsKGRvYywgaWQsIHByZWZp
eCkKK1NWR1N0b3BFbGVtZW50SW1wbDo6U1ZHU3RvcEVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50UHRyICpkb2MpIDogU1ZHU3R5bGVk
RWxlbWVudEltcGwodGFnTmFtZSwgZG9jKQogewogICAgIG1fb2Zmc2V0ID0gMDsKIH0KQEAgLTU1
LDIxICs1NSwxNCBAQCBTVkdBbmltYXRlZE51bWJlckltcGwgKlNWR1N0b3BFbGVtZW50SW1wCiAK
IHZvaWQgU1ZHU3RvcEVsZW1lbnRJbXBsOjpwYXJzZUF0dHJpYnV0ZShLRE9NOjpBdHRyaWJ1dGVJ
bXBsICphdHRyKQogewotICAgIGludCBpZCA9IChhdHRyLT5pZCgpICYgTm9kZUltcGxfSWRMb2Nh
bE1hc2spOwogICAgIEtET006OkRPTVN0cmluZyB2YWx1ZShhdHRyLT52YWx1ZSgpKTsKLSAgICBz
d2l0Y2goaWQpCi0gICAgewotICAgICAgICBjYXNlIEFUVFJfT0ZGU0VUOgotICAgICAgICB7Ci0g
ICAgICAgICAgICBpZih2YWx1ZS5zdHJpbmcoKS5lbmRzV2l0aChRU3RyaW5nOjpmcm9tTGF0aW4x
KCIlIikpKQotICAgICAgICAgICAgICAgIG9mZnNldCgpLT5zZXRCYXNlVmFsKHZhbHVlLnN0cmlu
ZygpLmxlZnQodmFsdWUubGVuZ3RoKCkgLSAxKS50b0RvdWJsZSgpIC8gMTAwLik7Ci0gICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb2Zmc2V0KCktPnNldEJhc2VWYWwodmFsdWUuc3Ry
aW5nKCkudG9Eb3VibGUoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAg
ICBkZWZhdWx0OgotICAgICAgICAgICAgU1ZHU3R5bGVkRWxlbWVudEltcGw6OnBhcnNlQXR0cmli
dXRlKGF0dHIpOwotICAgIH07CisgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6b2Zm
c2V0QXR0cikgeworICAgICAgICBpZih2YWx1ZS5xc3RyaW5nKCkuZW5kc1dpdGgoUVN0cmluZzo6
ZnJvbUxhdGluMSgiJSIpKSkKKyAgICAgICAgICAgIG9mZnNldCgpLT5zZXRCYXNlVmFsKHZhbHVl
LnFzdHJpbmcoKS5sZWZ0KHZhbHVlLmxlbmd0aCgpIC0gMSkudG9Eb3VibGUoKSAvIDEwMC4pOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBvZmZzZXQoKS0+c2V0QmFzZVZhbCh2YWx1ZS5xc3Ry
aW5nKCkudG9Eb3VibGUoKSk7CisgICAgfSBlbHNlCisgICAgICAgIFNWR1N0eWxlZEVsZW1lbnRJ
bXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKTsKIAogICAgIGlmKCFvd25lckRvY3VtZW50KCktPnBh
cnNpbmcoKSkKICAgICB7CkBAIC05MSw3ICs4NCw3IEBAIEtDYW52YXNJdGVtICpTVkdTdG9wRWxl
bWVudEltcGw6OmNyZWF0ZUMKIHsKICAgICBpZihyZW5kZXJTdHlsZSgpKQogICAgIHsKLSAgICAg
ICAgUVN0cmluZyBncmFkaWVudElkID0gS0RPTTo6RE9NU3RyaW5nKHN0YXRpY19jYXN0PFNWR0Vs
ZW1lbnRJbXBsICo+KHBhcmVudE5vZGUoKSktPmdldElkKCkpLnN0cmluZygpOworICAgICAgICBR
U3RyaW5nIGdyYWRpZW50SWQgPSBLRE9NOjpET01TdHJpbmcoc3RhdGljX2Nhc3Q8U1ZHRWxlbWVu
dEltcGwgKj4ocGFyZW50Tm9kZSgpKS0+Z2V0QXR0cmlidXRlKCJpZCIpKS5xc3RyaW5nKCk7CiAg
ICAgICAgIEtSZW5kZXJpbmdQYWludFNlcnZlciAqcGFpbnRTZXJ2ZXIgPSBjYW52YXMtPnJlZ2lz
dHJ5KCktPmdldFBhaW50U2VydmVyQnlJZChncmFkaWVudElkKTsKICAgICAgICAgS1JlbmRlcmlu
Z1BhaW50U2VydmVyR3JhZGllbnQgKnBhaW50U2VydmVyR3JhZGllbnQgID0gc3RhdGljX2Nhc3Q8
S1JlbmRlcmluZ1BhaW50U2VydmVyR3JhZGllbnQgKj4ocGFpbnRTZXJ2ZXIpOwogCkluZGV4OiBr
c3ZnMi9zdmcvU1ZHU3RvcEVsZW1lbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9y
b290L1NWR1N1cHBvcnQva3N2ZzIvc3ZnL1NWR1N0b3BFbGVtZW50SW1wbC5oLHYKcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjQKZGlmZiAtcCAtdSAtcjEuNCBrc3ZnMi9zdmcvU1ZHU3RvcEVsZW1lbnRJ
bXBsLmgKLS0tIGtzdmcyL3N2Zy9TVkdTdG9wRWxlbWVudEltcGwuaAkxIFNlcCAyMDA1IDA3OjM1
OjUxIC0wMDAwCTEuNAorKysga3N2ZzIvc3ZnL1NWR1N0b3BFbGVtZW50SW1wbC5oCTEgTm92IDIw
MDUgMTE6MTM6MjEgLTAwMDAKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIEtTVkcKICAgICBj
bGFzcyBTVkdTdG9wRWxlbWVudEltcGwgOiBwdWJsaWMgU1ZHU3R5bGVkRWxlbWVudEltcGwKICAg
ICB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdTdG9wRWxlbWVudEltcGwoS0RPTTo6RG9jdW1l
bnRQdHIgKmRvYywgS0RPTTo6Tm9kZUltcGw6OklkIGlkLCBLRE9NOjpET01TdHJpbmdJbXBsICpw
cmVmaXgpOworICAgICAgICBTVkdTdG9wRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRvYyk7CiAgICAgICAgIHZpcnR1YWwg
flNWR1N0b3BFbGVtZW50SW1wbCgpOwogCiAgICAgICAgIC8vICdTVkdTdG9wbGVtZW50JyBmdW5j
dGlvbnMKSW5kZXg6IGtzdmcyL3N2Zy9TVkdTdHlsYWJsZUltcGwuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHU3R5bGFibGVJbXBsLmgsdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuNApkaWZmIC1wIC11IC1yMS40IGtzdmcyL3N2Zy9TVkdTdHls
YWJsZUltcGwuaAotLS0ga3N2ZzIvc3ZnL1NWR1N0eWxhYmxlSW1wbC5oCTEgU2VwIDIwMDUgMDc6
MzU6NTIgLTAwMDAJMS40CisrKyBrc3ZnMi9zdmcvU1ZHU3R5bGFibGVJbXBsLmgJMSBOb3YgMjAw
NSAxMToxMzoyMSAtMDAwMApAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgS1NWRwogICAgICAg
ICAvLyAnU1ZHU3R5bGFibGUnIGZ1bmN0aW9ucwogICAgICAgICB2aXJ0dWFsIFNWR0FuaW1hdGVk
U3RyaW5nSW1wbCAqY2xhc3NOYW1lKCkgY29uc3QgPSAwOwogCi0gICAgICAgIHZpcnR1YWwgS0RP
TTo6Q1NTU3R5bGVEZWNsYXJhdGlvbkltcGwgKnN0eWxlKCkgPSAwOworICAgICAgICB2aXJ0dWFs
IERPTTo6Q1NTU3R5bGVEZWNsYXJhdGlvbkltcGwgKnN0eWxlKCkgPSAwOwogICAgICAgICB2aXJ0
dWFsIEtET006OkNTU1ZhbHVlSW1wbCAqZ2V0UHJlc2VudGF0aW9uQXR0cmlidXRlKEtET006OkRP
TVN0cmluZ0ltcGwgKm5hbWUpID0gMDsKICAgICB9OwogfTsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdT
dHlsZUVsZW1lbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3Vw
cG9ydC9rc3ZnMi9zdmcvU1ZHU3R5bGVFbGVtZW50SW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlz
aW9uIDEuNwpkaWZmIC1wIC11IC1yMS43IGtzdmcyL3N2Zy9TVkdTdHlsZUVsZW1lbnRJbXBsLmNw
cAotLS0ga3N2ZzIvc3ZnL1NWR1N0eWxlRWxlbWVudEltcGwuY3BwCTUgT2N0IDIwMDUgMDU6MzU6
MjggLTAwMDAJMS43CisrKyBrc3ZnMi9zdmcvU1ZHU3R5bGVFbGVtZW50SW1wbC5jcHAJMSBOb3Yg
MjAwNSAxMToxMzoyMSAtMDAwMApAQCAtMzMsNyArMzMsNyBAQAogCiB1c2luZyBuYW1lc3BhY2Ug
S1NWRzsKIAotU1ZHU3R5bGVFbGVtZW50SW1wbDo6U1ZHU3R5bGVFbGVtZW50SW1wbChLRE9NOjpE
b2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0lt
cGwgKnByZWZpeCkgOiBTVkdFbGVtZW50SW1wbChkb2MsIGlkLCBwcmVmaXgpCitTVkdTdHlsZUVs
ZW1lbnRJbXBsOjpTVkdTdHlsZUVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIEtET006OkRvY3VtZW50UHRyICpkb2MpIDogU1ZHRWxlbWVudEltcGwodGFnTmFt
ZSwgZG9jKQogewogICAgIG1fc2hlZXQgPSAwOwogICAgIG1fbG9hZGluZyA9IGZhbHNlOwpAQCAt
NDUsNDQgKzQ1LDQ0IEBAIFNWR1N0eWxlRWxlbWVudEltcGw6On5TVkdTdHlsZUVsZW1lbnRJbXAK
ICAgICAgICAgbV9zaGVldC0+ZGVyZWYoKTsKIH0KIAotS0RPTTo6RE9NU3RyaW5nSW1wbCAqU1ZH
U3R5bGVFbGVtZW50SW1wbDo6eG1sc3BhY2UoKSBjb25zdAorY29uc3QgS0RPTTo6QXRvbWljU3Ry
aW5nJiBTVkdTdHlsZUVsZW1lbnRJbXBsOjp4bWxzcGFjZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IHRyeUdldEF0dHJpYnV0ZShLRE9NOjpET01TdHJpbmcoInhtbDpzcGFjZSIpLmhhbmRsZSgpKTsK
KyAgICByZXR1cm4gdHJ5R2V0QXR0cmlidXRlKCJ4bWw6c3BhY2UiKTsKIH0KIAotdm9pZCBTVkdT
dHlsZUVsZW1lbnRJbXBsOjpzZXRYbWxzcGFjZShLRE9NOjpET01TdHJpbmdJbXBsICopCit2b2lk
IFNWR1N0eWxlRWxlbWVudEltcGw6OnNldFhtbHNwYWNlKGNvbnN0IEtET006OkF0b21pY1N0cmlu
ZyYsIGludCAmZXhjZXB0aW9uY29kZSkKIHsKLSAgICB0aHJvdyBuZXcgS0RPTTo6RE9NRXhjZXB0
aW9uSW1wbChLRE9NOjpOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIpOworICAgIGV4Y2VwdGlv
bmNvZGUgPSBLRE9NOjpOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7CiB9CiAKLUtET006OkRP
TVN0cmluZ0ltcGwgKlNWR1N0eWxlRWxlbWVudEltcGw6OnR5cGUoKSBjb25zdAorY29uc3QgS0RP
TTo6QXRvbWljU3RyaW5nJiBTVkdTdHlsZUVsZW1lbnRJbXBsOjp0eXBlKCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gdHJ5R2V0QXR0cmlidXRlKEtET006OkRPTVN0cmluZygidHlwZSIpLmhhbmRsZSgp
LCBLRE9NOjpET01TdHJpbmcoInRleHQvY3NzIikuaGFuZGxlKCkpOworICAgIHJldHVybiB0cnlH
ZXRBdHRyaWJ1dGUoInR5cGUiLCAidGV4dC9jc3MiKTsKIH0KIAotdm9pZCBTVkdTdHlsZUVsZW1l
bnRJbXBsOjpzZXRUeXBlKEtET006OkRPTVN0cmluZ0ltcGwgKikKK3ZvaWQgU1ZHU3R5bGVFbGVt
ZW50SW1wbDo6c2V0VHlwZShjb25zdCBLRE9NOjpBdG9taWNTdHJpbmcmLCBpbnQgJmV4Y2VwdGlv
bmNvZGUpCiB7Ci0gICAgdGhyb3cgbmV3IEtET006OkRPTUV4Y2VwdGlvbkltcGwoS0RPTTo6Tk9f
TU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSKTsKKyAgICBleGNlcHRpb25jb2RlID0gS0RPTTo6Tk9f
TU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwogfQogCi1LRE9NOjpET01TdHJpbmdJbXBsICpTVkdT
dHlsZUVsZW1lbnRJbXBsOjptZWRpYSgpIGNvbnN0Citjb25zdCBLRE9NOjpBdG9taWNTdHJpbmcm
IFNWR1N0eWxlRWxlbWVudEltcGw6Om1lZGlhKCkgY29uc3QKIHsKLSAgICByZXR1cm4gdHJ5R2V0
QXR0cmlidXRlKEtET006OkRPTVN0cmluZygibWVkaWEiKS5oYW5kbGUoKSwgS0RPTTo6RE9NU3Ry
aW5nKCJhbGwiKS5oYW5kbGUoKSk7CisgICAgcmV0dXJuIHRyeUdldEF0dHJpYnV0ZSgibWVkaWEi
LCAiYWxsIik7CiB9CiAKLXZvaWQgU1ZHU3R5bGVFbGVtZW50SW1wbDo6c2V0TWVkaWEoS0RPTTo6
RE9NU3RyaW5nSW1wbCAqKQordm9pZCBTVkdTdHlsZUVsZW1lbnRJbXBsOjpzZXRNZWRpYShjb25z
dCBLRE9NOjpBdG9taWNTdHJpbmcmLCBpbnQmIGV4Y2VwdGlvbmNvZGUpCiB7Ci0gICAgdGhyb3cg
bmV3IEtET006OkRPTUV4Y2VwdGlvbkltcGwoS0RPTTo6Tk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSKTsKKyAgICBleGNlcHRpb25jb2RlID0gS0RPTTo6Tk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSOwogfQogCi1LRE9NOjpET01TdHJpbmdJbXBsICpTVkdTdHlsZUVsZW1lbnRJbXBsOjp0aXRs
ZSgpIGNvbnN0Citjb25zdCBLRE9NOjpBdG9taWNTdHJpbmcmIFNWR1N0eWxlRWxlbWVudEltcGw6
OnRpdGxlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gdHJ5R2V0QXR0cmlidXRlKEtET006OkRPTVN0
cmluZygidGl0bGUiKS5oYW5kbGUoKSk7CisgICAgcmV0dXJuIHRyeUdldEF0dHJpYnV0ZSgidGl0
bGUiKTsKIH0KIAotdm9pZCBTVkdTdHlsZUVsZW1lbnRJbXBsOjpzZXRUaXRsZShLRE9NOjpET01T
dHJpbmdJbXBsICopCit2b2lkIFNWR1N0eWxlRWxlbWVudEltcGw6OnNldFRpdGxlKGNvbnN0IEtE
T006OkF0b21pY1N0cmluZyYsIGludCYgZXhjZXB0aW9uY29kZSkKIHsKLSAgICB0aHJvdyBuZXcg
S0RPTTo6RE9NRXhjZXB0aW9uSW1wbChLRE9NOjpOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIp
OworICAgIGV4Y2VwdGlvbmNvZGUgPSBLRE9NOjpOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7
CiB9CiAKIEtET006OkNTU1N0eWxlU2hlZXRJbXBsICpTVkdTdHlsZUVsZW1lbnRJbXBsOjpzaGVl
dCgpCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBTVkdTdHlsZUVsZW1lbnRJbXBsOjpjaGlsZHJl
bkNoYW5nZQogCiAgICAgbV9sb2FkaW5nID0gZmFsc2U7CiAgICAgS0RPTTo6RE9NU3RyaW5nIG1l
ZGlhRG9tU3RyaW5nKG1lZGlhKCkpOwotICAgIFFTdHJpbmcgX21lZGlhID0gbWVkaWFEb21TdHJp
bmcuc3RyaW5nKCk7CisgICAgUVN0cmluZyBfbWVkaWEgPSBtZWRpYURvbVN0cmluZy5xc3RyaW5n
KCk7CiAgICAgaWYoKEtET006OkRPTVN0cmluZyh0eXBlKCkpLmlzRW1wdHkoKSB8fCBLRE9NOjpE
T01TdHJpbmcodHlwZSgpKSA9PSAidGV4dC9jc3MiKSAmJiAoX21lZGlhLmlzTnVsbCgpIHx8CiAg
ICAgICAgIF9tZWRpYS5jb250YWlucyhRU3RyaW5nOjpmcm9tTGF0aW4xKCJzY3JlZW4iKSkgfHwK
ICAgICAgICAgX21lZGlhLmNvbnRhaW5zKFFTdHJpbmc6OmZyb21MYXRpbjEoImFsbCIpKSB8CkBA
IC0xMTYsOSArMTE2LDkgQEAgdm9pZCBTVkdTdHlsZUVsZW1lbnRJbXBsOjpjaGlsZHJlbkNoYW5n
ZQogIAogICAgICAgICBtX3NoZWV0ID0gbmV3IFNWR0NTU1N0eWxlU2hlZXRJbXBsKHRoaXMpOwog
ICAgICAgICBtX3NoZWV0LT5yZWYoKTsKLSAgICAgICAgbV9zaGVldC0+cGFyc2VTdHJpbmcodGV4
dC5oYW5kbGUoKSwgZmFsc2UpOy8vIWdldERvY3VtZW50KCktPmluQ29tcGF0TW9kZSgpKTsKKyAg
ICAgICAgbV9zaGVldC0+cGFyc2VTdHJpbmcodGV4dC5pbXBsKCksIGZhbHNlKTsvLyFnZXREb2N1
bWVudCgpLT5pbkNvbXBhdE1vZGUoKSk7CiAKLSAgICAgICAgS0RPTTo6TWVkaWFMaXN0SW1wbCAq
bWVkaWEgPSBuZXcgS0RPTTo6TWVkaWFMaXN0SW1wbChtX3NoZWV0LCBtZWRpYURvbVN0cmluZy5o
YW5kbGUoKSk7CisgICAgICAgIEtET006Ok1lZGlhTGlzdEltcGwgKm1lZGlhID0gbmV3IEtET006
Ok1lZGlhTGlzdEltcGwobV9zaGVldCwgbWVkaWFEb21TdHJpbmcuaW1wbCgpKTsKICAgICAgICAg
bV9zaGVldC0+c2V0TWVkaWEobWVkaWEpOwogICAgICAgICBtX2xvYWRpbmcgPSBmYWxzZTsKICAg
ICB9CkBAIC0xMjYsNyArMTI2LDcgQEAgdm9pZCBTVkdTdHlsZUVsZW1lbnRJbXBsOjpjaGlsZHJl
bkNoYW5nZQogICAgIGlmKCFpc0xvYWRpbmcoKSAmJiBtX3NoZWV0KQogICAgIHsKICAgICAgICAg
aWYoZ2V0RG9jdW1lbnQoKSkKLSAgICAgICAgICAgIGdldERvY3VtZW50KCktPnN0eWxlU2hlZXRM
b2FkZWQoKTsKKyAgICAgICAgICAgIGdldERvY3VtZW50KCktPnN0eWxlc2hlZXRMb2FkZWQoKTsK
ICAgICB9CiB9CiAKSW5kZXg6IGtzdmcyL3N2Zy9TVkdTdHlsZUVsZW1lbnRJbXBsLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvc3ZnL1NWR1N0eWxlRWxl
bWVudEltcGwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40CmRpZmYgLXAgLXUgLXIxLjQga3N2
ZzIvc3ZnL1NWR1N0eWxlRWxlbWVudEltcGwuaAotLS0ga3N2ZzIvc3ZnL1NWR1N0eWxlRWxlbWVu
dEltcGwuaAkxIFNlcCAyMDA1IDA3OjM1OjUyIC0wMDAwCTEuNAorKysga3N2ZzIvc3ZnL1NWR1N0
eWxlRWxlbWVudEltcGwuaAkxIE5vdiAyMDA1IDExOjEzOjIxIC0wMDAwCkBAIC0zNSwyNCArMzUs
MjQgQEAgbmFtZXNwYWNlIEtTVkcKICAgICBjbGFzcyBTVkdTdHlsZUVsZW1lbnRJbXBsIDogcHVi
bGljIFNWR0VsZW1lbnRJbXBsCiAgICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHU3R5bGVF
bGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQs
IEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZpeCk7CisgICAgICAgIFNWR1N0eWxlRWxlbWVudElt
cGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIg
KmRvYyk7CiAgICAgICAgIHZpcnR1YWwgflNWR1N0eWxlRWxlbWVudEltcGwoKTsKIAogICAgICAg
ICAvLyBEZXJpdmVkIGZyb206ICdFbGVtZW50SW1wbCcKICAgICAgICAgdmlydHVhbCB2b2lkIGNo
aWxkcmVuQ2hhbmdlZCgpOwogCiAgICAgICAgIC8vICdTVkdTdHlsZUVsZW1lbnQnIGZ1bmN0aW9u
cwotICAgICAgICBLRE9NOjpET01TdHJpbmdJbXBsICp4bWxzcGFjZSgpIGNvbnN0OwotICAgICAg
ICB2b2lkIHNldFhtbHNwYWNlKEtET006OkRPTVN0cmluZ0ltcGwgKik7CisgICAgICAgIGNvbnN0
IEtET006OkF0b21pY1N0cmluZyYgeG1sc3BhY2UoKSBjb25zdDsKKyAgICAgICAgdm9pZCBzZXRY
bWxzcGFjZShjb25zdCBLRE9NOjpBdG9taWNTdHJpbmcmLCBpbnQgJmV4Y2VwdGlvbmNvZGUpOwog
Ci0gICAgICAgIEtET006OkRPTVN0cmluZ0ltcGwgKnR5cGUoKSBjb25zdDsKLSAgICAgICAgdm9p
ZCBzZXRUeXBlKEtET006OkRPTVN0cmluZ0ltcGwgKik7CisgICAgICAgIGNvbnN0IEtET006OkF0
b21pY1N0cmluZyYgdHlwZSgpIGNvbnN0OworICAgICAgICB2b2lkIHNldFR5cGUoY29uc3QgS0RP
TTo6QXRvbWljU3RyaW5nJiwgaW50ICZleGNlcHRpb25jb2RlKTsKIAotICAgICAgICBLRE9NOjpE
T01TdHJpbmdJbXBsICptZWRpYSgpIGNvbnN0OwotICAgICAgICB2b2lkIHNldE1lZGlhKEtET006
OkRPTVN0cmluZ0ltcGwgKik7CisgICAgICAgIGNvbnN0IEtET006OkF0b21pY1N0cmluZyYgbWVk
aWEoKSBjb25zdDsKKyAgICAgICAgdm9pZCBzZXRNZWRpYShjb25zdCBLRE9NOjpBdG9taWNTdHJp
bmcmLCBpbnQgJmV4Y2VwdGlvbmNvZGUpOwogCi0gICAgICAgIEtET006OkRPTVN0cmluZ0ltcGwg
KnRpdGxlKCkgY29uc3Q7Ci0gICAgICAgIHZvaWQgc2V0VGl0bGUoS0RPTTo6RE9NU3RyaW5nSW1w
bCAqKTsKKyAgICAgICAgY29uc3QgS0RPTTo6QXRvbWljU3RyaW5nJiB0aXRsZSgpIGNvbnN0Owor
ICAgICAgICB2b2lkIHNldFRpdGxlKGNvbnN0IEtET006OkF0b21pY1N0cmluZyYsIGludCAmZXhj
ZXB0aW9uY29kZSk7CiAKICAgICAgICAgS0RPTTo6Q1NTU3R5bGVTaGVldEltcGwgKnNoZWV0KCk7
CiAKSW5kZXg6IGtzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvc3ZnL1NWR1N0eWxlZEVsZW1lbnRJ
bXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS45CmRpZmYgLXAgLXUgLXIxLjkga3N2ZzIv
c3ZnL1NWR1N0eWxlZEVsZW1lbnRJbXBsLmNwcAotLS0ga3N2ZzIvc3ZnL1NWR1N0eWxlZEVsZW1l
bnRJbXBsLmNwcAk1IE9jdCAyMDA1IDA1OjM1OjI5IC0wMDAwCTEuOQorKysga3N2ZzIvc3ZnL1NW
R1N0eWxlZEVsZW1lbnRJbXBsLmNwcAkxIE5vdiAyMDA1IDExOjEzOjIxIC0wMDAwCkBAIC00Nywx
MyArNDcsMTMgQEAKICNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbkltcGwuaCIKICNpbmNs
dWRlICJTVkdDU1NTdHlsZURlY2xhcmF0aW9uSW1wbC5oIgogCi0jaW5jbHVkZSAic3ZnYXR0cnMu
aCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgPGtzdmcyL2Nzcy9jc3Nwcm9wZXJ0
aWVzLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCi1TVkdTdHlsZWRFbGVtZW50SW1wbDo6
U1ZHU3R5bGVkRWxlbWVudEltcGwoS0RPTTo6RG9jdW1lbnRQdHIgKmRvYywgS0RPTTo6Tm9kZUlt
cGw6OklkIGlkLCBLRE9NOjpET01TdHJpbmdJbXBsICpwcmVmaXgpCi06IFNWR0VsZW1lbnRJbXBs
KGRvYywgaWQsIHByZWZpeCksIFNWR1N0eWxhYmxlSW1wbCgpLCBtX3BhKDApLCBtX2NsYXNzTmFt
ZSgwKQorU1ZHU3R5bGVkRWxlbWVudEltcGw6OlNWR1N0eWxlZEVsZW1lbnRJbXBsKGNvbnN0IEtE
T006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50UHRyICpkb2MpCis6IFNW
R0VsZW1lbnRJbXBsKHRhZ05hbWUsIGRvYyksIFNWR1N0eWxhYmxlSW1wbCgpLCBtX3BhKDApLCBt
X2NsYXNzTmFtZSgwKQogewogICAgIG1fY2FudmFzSXRlbSA9IDA7CiAgICAgbV9yZW5kZXJTdHls
ZSA9IDA7CkBAIC03MCw2ICs3MCwxMSBAQCBTVkdTdHlsZWRFbGVtZW50SW1wbDo6flNWR1N0eWxl
ZEVsZW1lbnRJCiAgICAgZGVsZXRlIG1fcmVuZGVyU3R5bGU7CiB9CiAKK0tET006OkNTU1N0eWxl
RGVjbGFyYXRpb25JbXBsICpTVkdTdHlsZWRFbGVtZW50SW1wbDo6c3R5bGUoKQoreworICAgIHJl
dHVybiBnZXRJbmxpbmVTdHlsZURlY2woKTsKK30KKwogU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsICpT
VkdTdHlsZWRFbGVtZW50SW1wbDo6Y2xhc3NOYW1lKCkgY29uc3QKIHsKICAgICBpZighbV9jbGFz
c05hbWUpCkBAIC04MSwxMSArODYsNiBAQCBTVkdBbmltYXRlZFN0cmluZ0ltcGwgKlNWR1N0eWxl
ZEVsZW1lbnRJCiAgICAgcmV0dXJuIG1fY2xhc3NOYW1lOwogfQogCi1LRE9NOjpDU1NTdHlsZURl
Y2xhcmF0aW9uSW1wbCAqU1ZHU3R5bGVkRWxlbWVudEltcGw6OnN0eWxlKCkKLXsKLSAgICByZXR1
cm4gc3R5bGVSdWxlcygpOwotfQotCiBLRE9NOjpDU1NTdHlsZURlY2xhcmF0aW9uSW1wbCAqU1ZH
U3R5bGVkRWxlbWVudEltcGw6OnBhKCkgY29uc3QKIHsKICAgICBpZighbV9wYSkKQEAgLTExOCw0
NyArMTE4LDM4IEBAIEtDYW52YXNJdGVtICpTVkdTdHlsZWRFbGVtZW50SW1wbDo6Y3JlYXQKIAog
dm9pZCBTVkdTdHlsZWRFbGVtZW50SW1wbDo6cGFyc2VBdHRyaWJ1dGUoS0RPTTo6QXR0cmlidXRl
SW1wbCAqYXR0cikKIHsKLSAgICBpbnQgaWQgPSAoYXR0ci0+aWQoKSAmIE5vZGVJbXBsX0lkTG9j
YWxNYXNrKTsKLSAgICBLRE9NOjpET01TdHJpbmdJbXBsICp2YWx1ZSA9IGF0dHItPnZhbHVlKCk7
Ci0gICAgc3dpdGNoKGlkKQorICAgIGNvbnN0IEtET006OkF0b21pY1N0cmluZyYgdmFsdWUgPSBh
dHRyLT52YWx1ZSgpOworICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OmNsYXNzQXR0
cikKKyAgICAgICAgY2xhc3NOYW1lKCktPnNldEJhc2VWYWwodmFsdWUpOworICAgIGVsc2UgaWYg
KGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6c3R5bGVBdHRyKQorICAgICAgICBzdHlsZSgpLT5z
ZXRQcm9wZXJ0eSh2YWx1ZSk7CisgICAgZWxzZQogICAgIHsKLSAgICAgICAgY2FzZSBBVFRSX0NM
QVNTOgorICAgICAgICBLRE9NOjpDREZJbnRlcmZhY2UgKmludGVyZmFjZSA9IChvd25lckRvY3Vt
ZW50KCkgPyBvd25lckRvY3VtZW50KCktPmltcGxlbWVudGF0aW9uKCktPmNkZkludGVyZmFjZSgp
IDogMCk7CisgICAgICAgIGlmKGludGVyZmFjZSkKICAgICAgICAgewotICAgICAgICAgICAgY2xh
c3NOYW1lKCktPnNldEJhc2VWYWwodmFsdWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IH0KLSAgICAgICAgY2FzZSBBVFRSX1NUWUxFOgotICAgICAgICB7Ci0gICAgICAgICAgICBzdHls
ZSgpLT5zZXRQcm9wZXJ0eSh2YWx1ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQot
ICAgICAgICBkZWZhdWx0OgotICAgICAgICB7Ci0gICAgICAgICAgICBLRE9NOjpDREZJbnRlcmZh
Y2UgKmludGVyZmFjZSA9IChvd25lckRvY3VtZW50KCkgPyBvd25lckRvY3VtZW50KCktPmltcGxl
bWVudGF0aW9uKCktPmNkZkludGVyZmFjZSgpIDogMCk7Ci0gICAgICAgICAgICBpZihpbnRlcmZh
Y2UpCisgICAgICAgICAgICBpbnQgZXhjZXB0aW9uY29kZTsKKyAgICAgICAgICAgIFFTdHJpbmcg
cVByb3AgPSBhdHRyLT5uYW1lKCkubG9jYWxOYW1lKCkucXN0cmluZygpOworICAgICAgICAgICAg
aW50IHN2Z1Byb3BJZCA9IGludGVyZmFjZS0+Z2V0UHJvcGVydHlJRChxUHJvcC5hc2NpaSgpLCBx
UHJvcC5sZW5ndGgoKSk7CisgICAgICAgICAgICBpZihzdmdQcm9wSWQgPiAwKQogICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIFFTdHJpbmcgcVByb3AgPSBRU3RyaW5nOjpmcm9tTGF0aW4x
KGludGVyZmFjZS0+Z2V0QXR0ck5hbWUoaWQpKTsKLSAgICAgICAgICAgICAgICBpbnQgc3ZnUHJv
cElkID0gaW50ZXJmYWNlLT5nZXRQcm9wZXJ0eUlEKHFQcm9wLmFzY2lpKCksIHFQcm9wLmxlbmd0
aCgpKTsKLSAgICAgICAgICAgICAgICBpZihzdmdQcm9wSWQgPiAwKQotICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgaWYodmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAg
ICBwYSgpLT5zZXRQcm9wZXJ0eShzdmdQcm9wSWQsIHZhbHVlKTsKLSAgICAgICAgICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgcGEoKS0+cmVtb3ZlUHJvcGVydHkoc3Zn
UHJvcElkKTsKKyAgICAgICAgICAgICAgICBpZighdmFsdWUuaXNOdWxsKCkpCisgICAgICAgICAg
ICAgICAgICAgIHBhKCktPnNldFByb3BlcnR5KHN2Z1Byb3BJZCwgdmFsdWUuZG9tU3RyaW5nKCks
IGV4Y2VwdGlvbmNvZGUpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgcGEoKS0+cmVtb3ZlUHJvcGVydHkoc3ZnUHJvcElkLCBleGNlcHRpb25jb2RlKTsKIAotICAg
ICAgICAgICAgICAgICAgICBpZighb3duZXJEb2N1bWVudCgpLT5wYXJzaW5nKCkpCi0gICAgICAg
ICAgICAgICAgICAgICAgICBzZXRDaGFuZ2VkKHRydWUpOworICAgICAgICAgICAgICAgIGlmKCFv
d25lckRvY3VtZW50KCktPnBhcnNpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgc2V0Q2hhbmdl
ZCh0cnVlKTsKIAotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
U1ZHRWxlbWVudEltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpOwogICAgICAgICB9Ci0gICAgfTsK
KworICAgICAgICBTVkdFbGVtZW50SW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cik7CisgICAgfQog
fQogCi1LRE9NOjpSZW5kZXJTdHlsZSAqU1ZHU3R5bGVkRWxlbWVudEltcGw6OnJlbmRlclN0eWxl
KCkgY29uc3QKK2todG1sOjpSZW5kZXJTdHlsZSAqU1ZHU3R5bGVkRWxlbWVudEltcGw6OnJlbmRl
clN0eWxlKCkgY29uc3QKIHsKICAgICBpZighbV9yZW5kZXJTdHlsZSkKICAgICB7CkBAIC0yMTAs
NyArMjAxLDcgQEAgdm9pZCBTVkdTdHlsZWRFbGVtZW50SW1wbDo6YXR0YWNoKCkKICAgICAgICAg
U1ZHUmVuZGVyU3R5bGUgKnN2Z1N0eWxlID0gc3RhdGljX2Nhc3Q8U1ZHUmVuZGVyU3R5bGUgKj4o
cmVuZGVyU3R5bGUoKSk7CiAgICAgICAgIEtDYW52YXNSZW5kZXJpbmdTdHlsZSAqcmVuZGVyaW5n
U3R5bGUgPSBuZXcgS0NhbnZhc1JlbmRlcmluZ1N0eWxlKGNhbnZhcywgc3ZnU3R5bGUpOwogICAg
ICAgICBpZiAobV9jYW52YXNJdGVtKQotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJET1VC
TEUgQVRUQUNIOiA8JXM+ICVwXG4iLCBLRE9NOjpET01TdHJpbmcobm9kZU5hbWUoKSkuc3RyaW5n
KCkuYXNjaWkoKSwgdGhpcyk7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkRPVUJMRSBB
VFRBQ0g6IDwlcz4gJXBcbiIsIEtET006OkRPTVN0cmluZyhub2RlTmFtZSgpKS5xc3RyaW5nKCku
YXNjaWkoKSwgdGhpcyk7CiAKICAgICAgICAgbV9jYW52YXNJdGVtID0gY3JlYXRlQ2FudmFzSXRl
bShjYW52YXMsIHJlbmRlcmluZ1N0eWxlKTsKICAgICAgICAgaWYobV9jYW52YXNJdGVtKQpAQCAt
MjMyLDExICsyMjMsMTEgQEAgdm9pZCBTVkdTdHlsZWRFbGVtZW50SW1wbDo6YXR0YWNoKCkKICAg
ICAgICAgICAgICAgICAgICAgc3R5bGVkUGFyZW50ID0gc3RhdGljX2Nhc3Q8U1ZHU3R5bGVkRWxl
bWVudEltcGwgKj4ocGFyZW50RWxlbWVudCk7CiAgICAgICAgICAgICBpZihzdHlsZWRQYXJlbnQg
JiYgc3R5bGVkUGFyZW50LT5jYW52YXNJdGVtKCkgJiYgc3R5bGVkUGFyZW50LT5hbGxvd0F0dGFj
aENoaWxkcmVuKHRoaXMpKQogICAgICAgICAgICAgICAgIHN0eWxlZFBhcmVudC0+Y2FudmFzSXRl
bSgpLT5hcHBlbmRJdGVtKG1fY2FudmFzSXRlbSk7Ci0gICAgICAgICAgICBlbHNlIGlmIChzdHls
ZWRQYXJlbnQgJiYgKHN0eWxlZFBhcmVudC0+aWQoKSAhPSBJRF9QQVRURVJOKSkgeworICAgICAg
ICAgICAgZWxzZSBpZiAoc3R5bGVkUGFyZW50ICYmICFzdHlsZWRQYXJlbnQtPmhhc1RhZ05hbWUo
U1ZHTmFtZXM6OnBhdHRlcm5UYWcpKSB7CiAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMg
ZXhpc3RzIHVudGlsIHdlIGNhbiBmaW5kIGEgYmV0dGVyIHdheSB0byBjcmVhdGUgcm9vdCAmJiBw
YXR0ZXJuIG5vZGVzLiAtLSBlY3MgOC83LzA1CiAgICAgICAgICAgICAgICAgZGVsZXRlIG1fY2Fu
dmFzSXRlbTsKICAgICAgICAgICAgICAgICBtX2NhbnZhc0l0ZW0gPSBOVUxMOwotICAgICAgICAg
ICAgICAgIC8vZnByaW50ZihzdGRlcnIsICJGQUlMRUQgQ0FOVkFTIElOU0VSVElPTjogPCVzPlxu
IiwgS0RPTTo6RE9NU3RyaW5nKG5vZGVOYW1lKCkpLnN0cmluZygpLmFzY2lpKCkpCisgICAgICAg
ICAgICAgICAgLy9mcHJpbnRmKHN0ZGVyciwgIkZBSUxFRCBDQU5WQVMgSU5TRVJUSU9OOiA8JXM+
XG4iLCBLRE9NOjpET01TdHJpbmcobm9kZU5hbWUoKSkucXN0cmluZygpLmFzY2lpKCkpCiAgICAg
ICAgICAgICB9CiAKICNpZm5kZWYgQVBQTEVfQ09NUElMRV9IQUNLCkBAIC0yNTYsNyArMjQ3LDkg
QEAgdm9pZCBTVkdTdHlsZWRFbGVtZW50SW1wbDo6YXR0YWNoKCkKICAgICBlbHNlCiAgICAgICAg
IGtkRGVidWcoMjYwMDIpIDw8ICJbU1ZHU3R5bGVkRWxlbWVudEltcGw6OmF0dGFjaF0gVW5hYmxl
IHRvIGF0dGFjaCBjYW52YXMgaXRlbS4gKG5vdCBuZWNlc3NhcmlseSB3cm9uZyEpIiA8PCBlbmRs
OwogCisjaWZuZGVmIEFQUExFX0NIQU5HRVMKICAgICBLRE9NOjpOb2RlQmFzZUltcGw6OmF0dGFj
aCgpOworI2VuZGlmCiB9CiAKIHZvaWQgU1ZHU3R5bGVkRWxlbWVudEltcGw6OmRldGFjaCgpCkBA
IC0yODAsNyArMjczLDkgQEAgdm9pZCBTVkdTdHlsZWRFbGVtZW50SW1wbDo6ZGV0YWNoKCkKICAg
ICBkZWxldGUgbV9yZW5kZXJTdHlsZTsKICAgICBtX3JlbmRlclN0eWxlID0gMDsKIAorI2lmbmRl
ZiBBUFBMRV9DSEFOR0VTCiAgICAgS0RPTTo6Tm9kZUJhc2VJbXBsOjpkZXRhY2goKTsKKyNlbmRp
ZgogfQogCiBLQ2FudmFzSXRlbSAqU1ZHU3R5bGVkRWxlbWVudEltcGw6OmNhbnZhc0l0ZW0oKSBj
b25zdApAQCAtMzMwLDE0ICszMjUsMTQgQEAgdm9pZCBTVkdTdHlsZWRFbGVtZW50SW1wbDo6dXBk
YXRlQ2FudmFzSQogCiB2b2lkIFNWR1N0eWxlZEVsZW1lbnRJbXBsOjpyZWNhbGNTdHlsZShTdHls
ZUNoYW5nZSBjaGFuZ2UpCiB7Ci0gICAgS0RPTTo6UmVuZGVyU3R5bGUgKl9zdHlsZSA9IG1fcmVu
ZGVyU3R5bGU7CisgICAga2h0bWw6OlJlbmRlclN0eWxlICpfc3R5bGUgPSBtX3JlbmRlclN0eWxl
OwogICAgIGJvb2wgaGFzUGFyZW50UmVuZGVyZXIgPSBwYXJlbnROb2RlKCkgPyBwYXJlbnROb2Rl
KCktPmF0dGFjaGVkKCkgOiBmYWxzZTsKIAogICAgIGlmKGhhc1BhcmVudFJlbmRlcmVyICYmIChj
aGFuZ2UgPj0gSW5oZXJpdCkgfHwgY2hhbmdlZCgpKQogICAgIHsKLSAgICAgICAgS0RPTTo6RURp
c3BsYXkgb2xkRGlzcGxheSA9IF9zdHlsZSA/IF9zdHlsZS0+ZGlzcGxheSgpIDogS0RPTTo6RFNf
Tk9ORTsKKyAgICAgICAgS0RPTTo6RURpc3BsYXkgb2xkRGlzcGxheSA9IF9zdHlsZSA/IF9zdHls
ZS0+ZGlzcGxheSgpIDogS0RPTTo6Tk9ORTsKIAotICAgICAgICBLRE9NOjpSZW5kZXJTdHlsZSAq
bmV3U3R5bGUgPSBvd25lckRvY3VtZW50KCktPnN0eWxlU2VsZWN0b3IoKS0+c3R5bGVGb3JFbGVt
ZW50KHRoaXMpOworICAgICAgICBraHRtbDo6UmVuZGVyU3R5bGUgKm5ld1N0eWxlID0gb3duZXJE
b2N1bWVudCgpLT5zdHlsZVNlbGVjdG9yKCktPnN0eWxlRm9yRWxlbWVudCh0aGlzKTsKICAgICAg
ICAgbmV3U3R5bGUtPnJlZigpOwogICAgICAgICAKICAgICAgICAgU3R5bGVDaGFuZ2UgY2ggPSBk
aWZmKF9zdHlsZSwgbmV3U3R5bGUpOwpAQCAtMzg4LDkgKzM4Myw5IEBAIGNvbnN0IFNWR1N0eWxl
ZEVsZW1lbnRJbXBsICpTVkdTdHlsZWRFbGUKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBTVkdT
dHlsZWRFbGVtZW50SW1wbDo6c2V0U3R5bGUoS0RPTTo6UmVuZGVyU3R5bGUgKm5ld1N0eWxlKQor
dm9pZCBTVkdTdHlsZWRFbGVtZW50SW1wbDo6c2V0U3R5bGUoa2h0bWw6OlJlbmRlclN0eWxlICpu
ZXdTdHlsZSkKIHsKLSAgICBLRE9NX1NBRkVfU0VUKG1fcmVuZGVyU3R5bGUsIG5ld1N0eWxlKTsK
KyAgICBLRE9NOjpLRE9NX1NBRkVfU0VUKG1fcmVuZGVyU3R5bGUsIG5ld1N0eWxlKTsKIAogICAg
IEtDYW52YXNSZW5kZXJpbmdTdHlsZSAqc3R5bGUgPSAobV9jYW52YXNJdGVtID8gc3RhdGljX2Nh
c3Q8S0NhbnZhc1JlbmRlcmluZ1N0eWxlICo+KG1fY2FudmFzSXRlbS0+c3R5bGUoKSkgOiAwKTsK
ICAgICBpZihzdHlsZSkKSW5kZXg6IGtzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50SW1wbC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdTdHls
ZWRFbGVtZW50SW1wbC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjYKZGlmZiAtcCAtdSAtcjEu
NiBrc3ZnMi9zdmcvU1ZHU3R5bGVkRWxlbWVudEltcGwuaAotLS0ga3N2ZzIvc3ZnL1NWR1N0eWxl
ZEVsZW1lbnRJbXBsLmgJMjggU2VwIDIwMDUgMDU6MDY6MDggLTAwMDAJMS42CisrKyBrc3ZnMi9z
dmcvU1ZHU3R5bGVkRWxlbWVudEltcGwuaAkxIE5vdiAyMDA1IDExOjEzOjIxIC0wMDAwCkBAIC00
NCwxNCArNDQsMTQgQEAgbmFtZXNwYWNlIEtTVkcKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHB1YmxpYyBTVkdTdHlsYWJsZUltcGwKICAgICB7CiAgICAgcHVibGljOgotICAgICAg
ICBTVkdTdHlsZWRFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2Rl
SW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZpeCk7CisgICAgICAgIFNWR1N0
eWxlZEVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006
OkRvY3VtZW50UHRyICpkb2MpOwogICAgICAgICB2aXJ0dWFsIH5TVkdTdHlsZWRFbGVtZW50SW1w
bCgpOwogICAgICAgICAKICAgICAgICAgdmlydHVhbCBib29sIGlzU3R5bGVkKCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQogCiAgICAgICAgIC8vICdTVkdTdHlsYWJsZScgZnVuY3Rpb25zCi0gICAg
ICAgIHZpcnR1YWwgU1ZHQW5pbWF0ZWRTdHJpbmdJbXBsICpjbGFzc05hbWUoKSBjb25zdDsKICAg
ICAgICAgdmlydHVhbCBLRE9NOjpDU1NTdHlsZURlY2xhcmF0aW9uSW1wbCAqc3R5bGUoKTsKKyAg
ICAgICAgdmlydHVhbCBTVkdBbmltYXRlZFN0cmluZ0ltcGwgKmNsYXNzTmFtZSgpIGNvbnN0Owog
ICAgICAgICB2aXJ0dWFsIEtET006OkNTU1N0eWxlRGVjbGFyYXRpb25JbXBsICpwYSgpIGNvbnN0
OwogICAgICAgICB2aXJ0dWFsIEtET006OkNTU1ZhbHVlSW1wbCAqZ2V0UHJlc2VudGF0aW9uQXR0
cmlidXRlKEtET006OkRPTVN0cmluZ0ltcGwgKm5hbWUpOwogCkBAIC04NiwxMCArODYsMTAgQEAg
bmFtZXNwYWNlIEtTVkcKICAgICAgICAgS0NhbnZhcyAqY2FudmFzKCkgY29uc3Q7CiAgICAgICAg
IEtDYW52YXNWaWV3ICpjYW52YXNWaWV3KCkgY29uc3Q7CiAKLSAgICAgICAgdmlydHVhbCBLRE9N
OjpSZW5kZXJTdHlsZSAqcmVuZGVyU3R5bGUoKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBraHRt
bDo6UmVuZGVyU3R5bGUgKnJlbmRlclN0eWxlKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBmaW5hbGl6ZVN0eWxlKEtDYW52YXNSZW5kZXJpbmdTdHlsZSAqc3R5bGUsIGJvb2wgbmVlZEZp
bGxTdHJva2VVcGRhdGUgPSB0cnVlKTsKIAotICAgICAgICB2b2lkIHNldFN0eWxlKEtET006OlJl
bmRlclN0eWxlICpuZXdTdHlsZSk7CisgICAgICAgIHZvaWQgc2V0U3R5bGUoa2h0bWw6OlJlbmRl
clN0eWxlICpuZXdTdHlsZSk7CiAgICAgICAgIHZvaWQgdXBkYXRlQ2FudmFzSXRlbSgpOyAvLyBI
YW5kbGVzICJwYXRoIGRhdGEiIG9iamVjdCBjaGFuZ2VzLi4uIChub3QgZm9yIHN0eWxlL3RyYW5z
Zm9ybSEpCiAKICAgICAgICAgS0NhbnZhc0l0ZW0gKm1fY2FudmFzSXRlbTsKQEAgLTk4LDcgKzk4
LDcgQEAgbmFtZXNwYWNlIEtTVkcKICAgICAgICAgbXV0YWJsZSBTVkdDU1NTdHlsZURlY2xhcmF0
aW9uSW1wbCAqbV9wYTsKICAgICAgICAgbXV0YWJsZSBTVkdBbmltYXRlZFN0cmluZ0ltcGwgKm1f
Y2xhc3NOYW1lOwogCi0gICAgICAgIG11dGFibGUgS0RPTTo6UmVuZGVyU3R5bGUgKm1fcmVuZGVy
U3R5bGU7CisgICAgICAgIG11dGFibGUga2h0bWw6OlJlbmRlclN0eWxlICptX3JlbmRlclN0eWxl
OwogCiAgICAgICAgIC8vIE9wdGltaXplZCB1cGRhdGluZyBsb2dpYwogICAgICAgICBib29sIG1f
dXBkYXRlVmVjdG9yaWFsIDogMTsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdTd2l0Y2hFbGVtZW50SW1w
bC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvc3Zn
L1NWR1N3aXRjaEVsZW1lbnRJbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS42CmRpZmYg
LXAgLXUgLXIxLjYga3N2ZzIvc3ZnL1NWR1N3aXRjaEVsZW1lbnRJbXBsLmNwcAotLS0ga3N2ZzIv
c3ZnL1NWR1N3aXRjaEVsZW1lbnRJbXBsLmNwcAk1IE9jdCAyMDA1IDA1OjM1OjI5IC0wMDAwCTEu
NgorKysga3N2ZzIvc3ZnL1NWR1N3aXRjaEVsZW1lbnRJbXBsLmNwcAkxIE5vdiAyMDA1IDExOjEz
OjIyIC0wMDAwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSA8a2NhbnZhcy9LQ2FudmFzQ29u
dGFpbmVyLmg+CiAjaW5jbHVkZSA8a2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ0RldmljZS5oPgog
Ci0jaW5jbHVkZSAic3ZnYXR0cnMuaCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUg
IlNWR0hlbHBlci5oIgogI2luY2x1ZGUgIlNWR1Rlc3RzSW1wbC5oIgogI2luY2x1ZGUgIlNWR0Rv
Y3VtZW50SW1wbC5oIgpAQCAtMzYsOCArMzYsOCBAQAogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsK
IAotU1ZHU3dpdGNoRWxlbWVudEltcGw6OlNWR1N3aXRjaEVsZW1lbnRJbXBsKEtET006OkRvY3Vt
ZW50UHRyICpkb2MsIEtET006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAq
cHJlZml4KQotOiBTVkdTdHlsZWRFbGVtZW50SW1wbChkb2MsIGlkLCBwcmVmaXgpLCBTVkdUZXN0
c0ltcGwoKSwgU1ZHTGFuZ1NwYWNlSW1wbCgpLCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
SW1wbCgpLCBTVkdUcmFuc2Zvcm1hYmxlSW1wbCgpCitTVkdTd2l0Y2hFbGVtZW50SW1wbDo6U1ZH
U3dpdGNoRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RP
TTo6RG9jdW1lbnRQdHIgKmRvYykKKzogU1ZHU3R5bGVkRWxlbWVudEltcGwodGFnTmFtZSwgZG9j
KSwgU1ZHVGVzdHNJbXBsKCksIFNWR0xhbmdTcGFjZUltcGwoKSwgU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZEltcGwoKSwgU1ZHVHJhbnNmb3JtYWJsZUltcGwoKQogewogfQogCkluZGV4OiBr
c3ZnMi9zdmcvU1ZHU3dpdGNoRWxlbWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHU3dpdGNoRWxlbWVudEltcGwuaCx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS40CmRpZmYgLXAgLXUgLXIxLjQga3N2ZzIvc3ZnL1NWR1N3aXRjaEVs
ZW1lbnRJbXBsLmgKLS0tIGtzdmcyL3N2Zy9TVkdTd2l0Y2hFbGVtZW50SW1wbC5oCTEgU2VwIDIw
MDUgMDc6MzU6NTMgLTAwMDAJMS40CisrKyBrc3ZnMi9zdmcvU1ZHU3dpdGNoRWxlbWVudEltcGwu
aAkxIE5vdiAyMDA1IDExOjEzOjIyIC0wMDAwCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBL
U1ZHCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHVHJhbnNmb3Jt
YWJsZUltcGwKICAgICB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdTd2l0Y2hFbGVtZW50SW1w
bChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsICBLRE9NOjpE
T01TdHJpbmdJbXBsICpwcmVmaXgpOworICAgICAgICBTVkdTd2l0Y2hFbGVtZW50SW1wbChjb25z
dCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudFB0ciAqZG9jKTsK
ICAgICAgICAgdmlydHVhbCB+U1ZHU3dpdGNoRWxlbWVudEltcGwoKTsKIAogICAgICAgICAvLyBE
ZXJpdmVkIGZyb206ICdTVkdTdHlsZWRFbGVtZW50SW1wbCcKSW5kZXg6IGtzdmcyL3N2Zy9TVkdT
eW1ib2xFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1
cHBvcnQva3N2ZzIvc3ZnL1NWR1N5bWJvbEVsZW1lbnRJbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS41CmRpZmYgLXAgLXUgLXIxLjUga3N2ZzIvc3ZnL1NWR1N5bWJvbEVsZW1lbnRJbXBs
LmNwcAotLS0ga3N2ZzIvc3ZnL1NWR1N5bWJvbEVsZW1lbnRJbXBsLmNwcAk1IE9jdCAyMDA1IDA1
OjM1OjI5IC0wMDAwCTEuNQorKysga3N2ZzIvc3ZnL1NWR1N5bWJvbEVsZW1lbnRJbXBsLmNwcAkx
IE5vdiAyMDA1IDExOjEzOjIyIC0wMDAwCkBAIC0zMCw4ICszMCw4IEBACiAKIHVzaW5nIG5hbWVz
cGFjZSBLU1ZHOwogCi1TVkdTeW1ib2xFbGVtZW50SW1wbDo6U1ZHU3ltYm9sRWxlbWVudEltcGwo
S0RPTTo6RG9jdW1lbnRQdHIgKmRvYywgS0RPTTo6Tm9kZUltcGw6OklkIGlkLCBLRE9NOjpET01T
dHJpbmdJbXBsICpwcmVmaXgpCi06IFNWR1N0eWxlZEVsZW1lbnRJbXBsKGRvYywgaWQsIHByZWZp
eCksIFNWR0xhbmdTcGFjZUltcGwoKSwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwo
KSwgU1ZHRml0VG9WaWV3Qm94SW1wbCgpCitTVkdTeW1ib2xFbGVtZW50SW1wbDo6U1ZHU3ltYm9s
RWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9j
dW1lbnRQdHIgKmRvYykKKzogU1ZHU3R5bGVkRWxlbWVudEltcGwodGFnTmFtZSwgZG9jKSwgU1ZH
TGFuZ1NwYWNlSW1wbCgpLCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1wbCgpLCBTVkdG
aXRUb1ZpZXdCb3hJbXBsKCkKIHsKIH0KIApJbmRleDoga3N2ZzIvc3ZnL1NWR1N5bWJvbEVsZW1l
bnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIv
c3ZnL1NWR1N5bWJvbEVsZW1lbnRJbXBsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNApkaWZm
IC1wIC11IC1yMS40IGtzdmcyL3N2Zy9TVkdTeW1ib2xFbGVtZW50SW1wbC5oCi0tLSBrc3ZnMi9z
dmcvU1ZHU3ltYm9sRWxlbWVudEltcGwuaAkxIFNlcCAyMDA1IDA3OjM1OjUzIC0wMDAwCTEuNAor
Kysga3N2ZzIvc3ZnL1NWR1N5bWJvbEVsZW1lbnRJbXBsLmgJMSBOb3YgMjAwNSAxMToxMzoyMiAt
MDAwMApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgS1NWRwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVibGljIFNWR0ZpdFRvVmlld0JveEltcGwKICAgICB7CiAgICAgcHVi
bGljOgotICAgICAgICBTVkdTeW1ib2xFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0ciAqZG9j
LCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZpeCk7Cisg
ICAgICAgIFNWR1N5bWJvbEVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIEtET006OkRvY3VtZW50UHRyICpkb2MpOwogICAgICAgICB2aXJ0dWFsIH5TVkdTeW1i
b2xFbGVtZW50SW1wbCgpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShL
RE9NOjpBdHRyaWJ1dGVJbXBsICopOwpJbmRleDoga3N2ZzIvc3ZnL1NWR1RTcGFuRWxlbWVudElt
cGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2
Zy9TVkdUU3BhbkVsZW1lbnRJbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41CmRpZmYg
LXAgLXUgLXIxLjUga3N2ZzIvc3ZnL1NWR1RTcGFuRWxlbWVudEltcGwuY3BwCi0tLSBrc3ZnMi9z
dmcvU1ZHVFNwYW5FbGVtZW50SW1wbC5jcHAJNSBPY3QgMjAwNSAwNTozNToyOSAtMDAwMAkxLjUK
KysrIGtzdmcyL3N2Zy9TVkdUU3BhbkVsZW1lbnRJbXBsLmNwcAkxIE5vdiAyMDA1IDExOjEzOjIy
IC0wMDAwCkBAIC0yNiw4ICsyNiw4IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCi1TVkdU
U3BhbkVsZW1lbnRJbXBsOjpTVkdUU3BhbkVsZW1lbnRJbXBsKEtET006OkRvY3VtZW50UHRyICpk
b2MsIEtET006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHJlZml4KQot
OiBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50SW1wbChkb2MsIGlkLCBwcmVmaXgpCitTVkdUU3Bh
bkVsZW1lbnRJbXBsOjpTVkdUU3BhbkVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50UHRyICpkb2MpCis6IFNWR1RleHRQb3NpdGlvbmlu
Z0VsZW1lbnRJbXBsKHRhZ05hbWUsIGRvYykKIHsKIH0KIApJbmRleDoga3N2ZzIvc3ZnL1NWR1RT
cGFuRWxlbWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9y
dC9rc3ZnMi9zdmcvU1ZHVFNwYW5FbGVtZW50SW1wbC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAx
LjQKZGlmZiAtcCAtdSAtcjEuNCBrc3ZnMi9zdmcvU1ZHVFNwYW5FbGVtZW50SW1wbC5oCi0tLSBr
c3ZnMi9zdmcvU1ZHVFNwYW5FbGVtZW50SW1wbC5oCTEgU2VwIDIwMDUgMDc6MzU6NTMgLTAwMDAJ
MS40CisrKyBrc3ZnMi9zdmcvU1ZHVFNwYW5FbGVtZW50SW1wbC5oCTEgTm92IDIwMDUgMTE6MTM6
MjIgLTAwMDAKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIEtTVkcKICAgICBjbGFzcyBTVkdU
U3BhbkVsZW1lbnRJbXBsIDogcHVibGljIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnRJbXBsCiAg
ICAgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHVFNwYW5FbGVtZW50SW1wbChLRE9NOjpEb2N1
bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsICBLRE9NOjpET01TdHJpbmdJbXBs
ICpwcmVmaXgpOworICAgICAgICBTVkdUU3BhbkVsZW1lbnRJbXBsKGNvbnN0IEtET006OlF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50UHRyICpkb2MpOwogICAgICAgICB2aXJ0
dWFsIH5TVkdUU3BhbkVsZW1lbnRJbXBsKCk7CiAKICAgICAgICAgLy8gJ1NWR1RTcGFuRWxlbWVu
dCcgZnVuY3Rpb25zCkluZGV4OiBrc3ZnMi9zdmcvU1ZHVGVzdHNJbXBsLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHVGVzdHNJbXBsLmNw
cCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS42CmRpZmYgLXAgLXUgLXIxLjYga3N2ZzIvc3ZnL1NW
R1Rlc3RzSW1wbC5jcHAKLS0tIGtzdmcyL3N2Zy9TVkdUZXN0c0ltcGwuY3BwCTUgT2N0IDIwMDUg
MDU6MzU6MjkgLTAwMDAJMS42CisrKyBrc3ZnMi9zdmcvU1ZHVGVzdHNJbXBsLmNwcAkxIE5vdiAy
MDA1IDExOjEzOjIyIC0wMDAwCkBAIC0yMSwxMSArMjEsMTIgQEAKICovCiAKICNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlIDxrZ2xvYmFsLmg+CiAjaW5jbHVkZSA8a2xvY2FsZS5oPgogCiAj
aW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+CiAKLSNpbmNsdWRlICJzdmdhdHRycy5oIgor
I2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHSGVscGVyLmgiCiAjaW5jbHVkZSAi
U1ZHVGVzdHNJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudEltcGwuaCIKQEAgLTc3LDcgKzc4
LDcgQEAgYm9vbCBTVkdUZXN0c0ltcGw6OmlzVmFsaWQoKQogICAgIGZvcih1bnNpZ25lZCBsb25n
IGkgPSAwO2kgPCBsaXN0LT5udW1iZXJPZkl0ZW1zKCk7aSsrKQogICAgIHsKICAgICAgICAgS0RP
TTo6RE9NU3RyaW5nIHZhbHVlID0gS0RPTTo6RE9NU3RyaW5nKGxpc3QtPmdldEl0ZW0oaSkpOwot
ICAgICAgICBpZih2YWx1ZS5pc0VtcHR5KCkgfHwgIVNWR0RPTUltcGxlbWVudGF0aW9uSW1wbDo6
c2VsZigpLT5oYXNGZWF0dXJlKHZhbHVlLmhhbmRsZSgpLCAwKSkKKyAgICAgICAgaWYodmFsdWUu
aXNFbXB0eSgpIHx8ICFTVkdET01JbXBsZW1lbnRhdGlvbkltcGw6OnNlbGYoKS0+aGFzRmVhdHVy
ZSh2YWx1ZS5pbXBsKCksIDApKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApA
QCAtODUsNyArODYsNyBAQCBib29sIFNWR1Rlc3RzSW1wbDo6aXNWYWxpZCgpCiAgICAgZm9yKHVu
c2lnbmVkIGxvbmcgaSA9IDA7aSA8IGxpc3QtPm51bWJlck9mSXRlbXMoKTtpKyspCiAgICAgewog
ICAgICAgICBLRE9NOjpET01TdHJpbmcgdmFsdWUgPSBLRE9NOjpET01TdHJpbmcobGlzdC0+Z2V0
SXRlbShpKSk7Ci0gICAgICAgIGlmKHZhbHVlLmlzRW1wdHkoKSB8fCB2YWx1ZS5zdHJpbmcoKSAh
PSAoS0dsb2JhbDo6bG9jYWxlKCktPmxhbmd1YWdlKCkpLmxlZnQoMikpCisgICAgICAgIGlmKHZh
bHVlLmlzRW1wdHkoKSB8fCB2YWx1ZS5xc3RyaW5nKCkgIT0gKEtHbG9iYWw6OmxvY2FsZSgpLT5s
YW5ndWFnZSgpKS5sZWZ0KDIpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApA
QCAtOTYsMzAgKzk3LDIxIEBAIGJvb2wgU1ZHVGVzdHNJbXBsOjppc1ZhbGlkKCkKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBTVkdUZXN0c0ltcGw6OnBhcnNlQXR0cmlidXRlKEtET006OkF0
dHJpYnV0ZUltcGwgKmF0dHIpCi17Ci0gICAgaW50IGlkID0gKGF0dHItPmlkKCkgJiBOb2RlSW1w
bF9JZExvY2FsTWFzayk7Ci0gICAgS0RPTTo6RE9NU3RyaW5nIHZhbHVlKGF0dHItPnZhbHVlKCkp
OwotICAgIHN3aXRjaChpZCkKLSAgICB7Ci0gICAgICAgIGNhc2UgQVRUUl9SRVFVSVJFREZFQVRV
UkVTOgotICAgICAgICB7Ci0gICAgICAgICAgICByZXF1aXJlZEZlYXR1cmVzKCktPnJlc2V0KHZh
bHVlLnN0cmluZygpKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAg
ICAgIGNhc2UgQVRUUl9SRVFVSVJFREVYVEVOU0lPTlM6Ci0gICAgICAgIHsKLSAgICAgICAgICAg
IHJlcXVpcmVkRXh0ZW5zaW9ucygpLT5yZXNldCh2YWx1ZS5zdHJpbmcoKSk7Ci0gICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBjYXNlIEFUVFJfU1lTVEVNTEFOR1VB
R0U6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHN5c3RlbUxhbmd1YWdlKCktPnJlc2V0KHZhbHVl
LnN0cmluZygpKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgfTsK
LQotICAgIHJldHVybiBmYWxzZTsKLX0KKy8vYm9vbCBTVkdUZXN0c0ltcGw6OnBhcnNlQXR0cmli
dXRlKEtET006OkF0dHJpYnV0ZUltcGwgKmF0dHIpCisvL3sKKy8vICAgIEtET006OkRPTVN0cmlu
ZyB2YWx1ZShhdHRyLT52YWx1ZSgpKTsKKy8vICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFt
ZXM6OnJlcXVpcmVkZmVhdHVyZXNBdHRyKSB7CisvLyAgICAgICAgcmVxdWlyZWRGZWF0dXJlcygp
LT5yZXNldCh2YWx1ZS5xc3RyaW5nKCkpOworLy8gICAgICAgIHJldHVybiB0cnVlOworLy8gICAg
fSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnJlcXVpcmVkZXh0ZW5zaW9uc0F0
dHIpIHsKKy8vICAgICAgICByZXF1aXJlZEV4dGVuc2lvbnMoKS0+cmVzZXQodmFsdWUucXN0cmlu
ZygpKTsKKy8vICAgICAgICByZXR1cm4gdHJ1ZTsKKy8vICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFt
ZSgpID09IFNWR05hbWVzOjpzeXN0ZW1sYW5ndWFnZUF0dHIpCisvLyAgICAgICAgc3lzdGVtTGFu
Z3VhZ2UoKS0+cmVzZXQodmFsdWUucXN0cmluZygpKTsKKy8vICAgICAgICByZXR1cm4gdHJ1ZTsK
Ky8vICAgIH0KKy8vICAgIAorLy8gICAgcmV0dXJuIGZhbHNlOworLy99CiAKIC8vIHZpbTp0cz00
Om5vZXQKSW5kZXg6IGtzdmcyL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnRJbXBsLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHVGV4dENv
bnRlbnRFbGVtZW50SW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNgpkaWZmIC1wIC11
IC1yMS42IGtzdmcyL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnRJbXBsLmNwcAotLS0ga3N2ZzIv
c3ZnL1NWR1RleHRDb250ZW50RWxlbWVudEltcGwuY3BwCTUgT2N0IDIwMDUgMDU6MzU6MjkgLTAw
MDAJMS42CisrKyBrc3ZnMi9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50SW1wbC5jcHAJMSBOb3Yg
MjAwNSAxMToxMzoyMiAtMDAwMApAQCAtMjMsNyArMjMsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgogCi0jaW5jbHVkZSAic3ZnYXR0cnMu
aCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR0hlbHBlci5oIgogLy8jaW5j
bHVkZSAiU1ZHRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTVkdUZXh0Q29udGVudEVsZW1lbnRJbXBs
LmgiCkBAIC0zMiw4ICszMiw4IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCi1TVkdUZXh0
Q29udGVudEVsZW1lbnRJbXBsOjpTVkdUZXh0Q29udGVudEVsZW1lbnRJbXBsKEtET006OkRvY3Vt
ZW50UHRyICpkb2MsIEtET006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAq
cHJlZml4KQotOiBTVkdTdHlsZWRFbGVtZW50SW1wbChkb2MsIGlkLCBwcmVmaXgpLCBTVkdUZXN0
c0ltcGwoKSwgU1ZHTGFuZ1NwYWNlSW1wbCgpLCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
SW1wbCgpCitTVkdUZXh0Q29udGVudEVsZW1lbnRJbXBsOjpTVkdUZXh0Q29udGVudEVsZW1lbnRJ
bXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50UHRy
ICpkb2MpCis6IFNWR1N0eWxlZEVsZW1lbnRJbXBsKHRhZ05hbWUsIGRvYyksIFNWR1Rlc3RzSW1w
bCgpLCBTVkdMYW5nU3BhY2VJbXBsKCksIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBs
KCkKIHsKICAgICBtX3RleHRMZW5ndGggPSAwOwogICAgIG1fbGVuZ3RoQWRqdXN0ID0gMDsKQEAg
LTEwMywyNCArMTAzLDE4IEBAIHZvaWQgU1ZHVGV4dENvbnRlbnRFbGVtZW50SW1wbDo6c2VsZWN0
U3UKIAogdm9pZCBTVkdUZXh0Q29udGVudEVsZW1lbnRJbXBsOjpwYXJzZUF0dHJpYnV0ZShLRE9N
OjpBdHRyaWJ1dGVJbXBsICphdHRyKQogewotICAgIGludCBpZCA9IChhdHRyLT5pZCgpICYgTm9k
ZUltcGxfSWRMb2NhbE1hc2spOwogICAgIEtET006OkRPTVN0cmluZyB2YWx1ZShhdHRyLT52YWx1
ZSgpKTsKLSAgICBzd2l0Y2goaWQpCisgICAgCisgICAgLy9pZiAoYXR0ci0+bmFtZSgpID09IFNW
R05hbWVzOjpsZW5ndGhBZGp1c3RBdHRyKQorICAgIC8vICAgIHgoKS0+YmFzZVZhbCgpLT5zZXRW
YWx1ZUFzU3RyaW5nKHZhbHVlLmltcGwoKSk7CisgICAgLy9lbHNlCiAgICAgewotICAgICAgICBj
YXNlIEFUVFJfTEVOR1RIQURKVVNUOgotICAgICAgICB7Ci0gICAgICAgICAgICAvL3goKS0+YmFz
ZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICB9Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlmKFNWR1Rl
c3RzSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsKLSAgICAgICAgICAgIGlmKFNW
R0xhbmdTcGFjZUltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47Ci0gICAgICAgICAg
ICBpZihTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0
cikpIHJldHVybjsKLQotICAgICAgICAgICAgU1ZHU3R5bGVkRWxlbWVudEltcGw6OnBhcnNlQXR0
cmlidXRlKGF0dHIpOwotICAgICAgICB9Ci0gICAgfTsKKyAgICAgICAgaWYoU1ZHVGVzdHNJbXBs
OjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOworICAgICAgICBpZihTVkdMYW5nU3BhY2VJ
bXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOworICAgICAgICBpZihTVkdFeHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHJldHVybjsKKwor
ICAgICAgICBTVkdTdHlsZWRFbGVtZW50SW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cik7CisgICAg
fQogfQogCiAvLyB2aW06dHM9NDpub2V0CkluZGV4OiBrc3ZnMi9zdmcvU1ZHVGV4dENvbnRlbnRF
bGVtZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tz
dmcyL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnRJbXBsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuNApkaWZmIC1wIC11IC1yMS40IGtzdmcyL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnRJbXBs
LmgKLS0tIGtzdmcyL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnRJbXBsLmgJMSBTZXAgMjAwNSAw
NzozNTo1NCAtMDAwMAkxLjQKKysrIGtzdmcyL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnRJbXBs
LmgJMSBOb3YgMjAwNSAxMToxMzoyMiAtMDAwMApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2Ug
S1NWRwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwKICAgICB7CiAgICAgcHVibGljOgotICAgICAgICBT
VkdUZXh0Q29udGVudEVsZW1lbnRJbXBsKEtET006OkRvY3VtZW50UHRyICpkb2MsIEtET006Ok5v
ZGVJbXBsOjpJZCBpZCwgIEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZpeCk7CisgICAgICAgIFNW
R1RleHRDb250ZW50RWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRvYyk7CiAgICAgICAgIHZpcnR1YWwgflNWR1RleHRDb250
ZW50RWxlbWVudEltcGwoKTsKIAogICAgICAgICAvLyAnU1ZHVGV4dENvbnRlbnRFbGVtZW50JyBm
dW5jdGlvbnMKSW5kZXg6IGtzdmcyL3N2Zy9TVkdUZXh0RWxlbWVudEltcGwuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdUZXh0RWxlbWVu
dEltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjUKZGlmZiAtcCAtdSAtcjEuNSBrc3Zn
Mi9zdmcvU1ZHVGV4dEVsZW1lbnRJbXBsLmNwcAotLS0ga3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50
SW1wbC5jcHAJNSBPY3QgMjAwNSAwNTozNToyOSAtMDAwMAkxLjUKKysrIGtzdmcyL3N2Zy9TVkdU
ZXh0RWxlbWVudEltcGwuY3BwCTEgTm92IDIwMDUgMTE6MTM6MjIgLTAwMDAKQEAgLTI2LDggKzI2
LDggQEAKIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKLVNWR1RleHRFbGVtZW50SW1wbDo6U1ZH
VGV4dEVsZW1lbnRJbXBsKEtET006OkRvY3VtZW50UHRyICpkb2MsIEtET006Ok5vZGVJbXBsOjpJ
ZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHJlZml4KQotOiBTVkdUZXh0UG9zaXRpb25pbmdF
bGVtZW50SW1wbChkb2MsIGlkLCBwcmVmaXgpLCBTVkdUcmFuc2Zvcm1hYmxlSW1wbCgpCitTVkdU
ZXh0RWxlbWVudEltcGw6OlNWR1RleHRFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudFB0ciAqZG9jKQorOiBTVkdUZXh0UG9zaXRpb25p
bmdFbGVtZW50SW1wbCh0YWdOYW1lLCBkb2MpLCBTVkdUcmFuc2Zvcm1hYmxlSW1wbCgpCiB7CiB9
CiAKSW5kZXg6IGtzdmcyL3N2Zy9TVkdUZXh0RWxlbWVudEltcGwuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHVGV4dEVsZW1lbnRJbXBsLmgs
dgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNApkaWZmIC1wIC11IC1yMS40IGtzdmcyL3N2Zy9TVkdU
ZXh0RWxlbWVudEltcGwuaAotLS0ga3N2ZzIvc3ZnL1NWR1RleHRFbGVtZW50SW1wbC5oCTEgU2Vw
IDIwMDUgMDc6MzU6NTQgLTAwMDAJMS40CisrKyBrc3ZnMi9zdmcvU1ZHVGV4dEVsZW1lbnRJbXBs
LmgJMSBOb3YgMjAwNSAxMToxMzoyMiAtMDAwMApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2Ug
S1NWRwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdUcmFuc2Zvcm1h
YmxlSW1wbAogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR1RleHRFbGVtZW50SW1wbChL
RE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsICBLRE9NOjpET01T
dHJpbmdJbXBsICpwcmVmaXgpOworICAgICAgICBTVkdUZXh0RWxlbWVudEltcGwoY29uc3QgS0RP
TTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRvYyk7CiAgICAg
ICAgIHZpcnR1YWwgflNWR1RleHRFbGVtZW50SW1wbCgpOwogCiAgICAgICAgIC8vICdTVkdUZXh0
RWxlbWVudCcgZnVuY3Rpb25zCkluZGV4OiBrc3ZnMi9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxl
bWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tz
dmcyL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50SW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuNgpkaWZmIC1wIC11IC1yMS42IGtzdmcyL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdF
bGVtZW50SW1wbC5jcHAKLS0tIGtzdmcyL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50SW1w
bC5jcHAJNSBPY3QgMjAwNSAwNTozNToyOSAtMDAwMAkxLjYKKysrIGtzdmcyL3N2Zy9TVkdUZXh0
UG9zaXRpb25pbmdFbGVtZW50SW1wbC5jcHAJMSBOb3YgMjAwNSAxMToxMzoyMiAtMDAwMApAQCAt
MjMsNyArMjMsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgPGtkb20vY29yZS9B
dHRySW1wbC5oPgogCi0jaW5jbHVkZSAic3ZnYXR0cnMuaCIKKyNpbmNsdWRlICJTVkdOYW1lcy5o
IgogI2luY2x1ZGUgIlNWR0hlbHBlci5oIgogLy8jaW5jbHVkZSAiU1ZHRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50SW1wbC5oIgpAQCAtMzIsOCArMzIsOCBA
QAogCiB1c2luZyBuYW1lc3BhY2UgS1NWRzsKIAotU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudElt
cGw6OlNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnRJbXBsKEtET006OkRvY3VtZW50UHRyICpkb2Ms
IEtET006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHJlZml4KQotOiBT
VkdUZXh0Q29udGVudEVsZW1lbnRJbXBsKGRvYywgaWQsIHByZWZpeCkKK1NWR1RleHRQb3NpdGlv
bmluZ0VsZW1lbnRJbXBsOjpTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50SW1wbChjb25zdCBLRE9N
OjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudFB0ciAqZG9jKQorOiBTVkdU
ZXh0Q29udGVudEVsZW1lbnRJbXBsKHRhZ05hbWUsIGRvYykKIHsKICAgICBtX3ggPSBtX3kgPSBt
X2R4ID0gbV9keSA9IDA7CiAgICAgbV9yb3RhdGUgPSAwOwpAQCAtODAsNDAgKzgwLDIwIEBAIFNW
R0FuaW1hdGVkTnVtYmVyTGlzdEltcGwgKlNWR1RleHRQb3NpdGkKIAogdm9pZCBTVkdUZXh0UG9z
aXRpb25pbmdFbGVtZW50SW1wbDo6cGFyc2VBdHRyaWJ1dGUoS0RPTTo6QXR0cmlidXRlSW1wbCAq
YXR0cikKIHsKLSAgICBpbnQgaWQgPSAoYXR0ci0+aWQoKSAmIE5vZGVJbXBsX0lkTG9jYWxNYXNr
KTsKICAgICBLRE9NOjpET01TdHJpbmcgdmFsdWUoYXR0ci0+dmFsdWUoKSk7Ci0gICAgc3dpdGNo
KGlkKQotICAgIHsKLSAgICAgICAgY2FzZSBBVFRSX1g6Ci0gICAgICAgIHsKLSAgICAgICAgICAg
IHgoKS0+YmFzZVZhbCgpLT5wYXJzZSh2YWx1ZS5zdHJpbmcoKSwgdGhpcywgTE1fV0lEVEgpOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBBVFRSX1k6Ci0gICAg
ICAgIHsKLSAgICAgICAgICAgIHkoKS0+YmFzZVZhbCgpLT5wYXJzZSh2YWx1ZS5zdHJpbmcoKSwg
dGhpcywgTE1fSEVJR0hUKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAg
IGNhc2UgQVRUUl9EWDoKLSAgICAgICAgewotICAgICAgICAgICAgZHgoKS0+YmFzZVZhbCgpLT5w
YXJzZSh2YWx1ZS5zdHJpbmcoKSwgdGhpcywgTE1fV0lEVEgpOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBBVFRSX0RZOgotICAgICAgICB7Ci0gICAgICAgICAg
ICBkeSgpLT5iYXNlVmFsKCktPnBhcnNlKHZhbHVlLnN0cmluZygpLCB0aGlzLCBMTV9IRUlHSFQp
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBBVFRSX1JPVEFU
RToKLSAgICAgICAgewotICAgICAgICAgICAgcm90YXRlKCktPmJhc2VWYWwoKS0+cGFyc2UodmFs
dWUuc3RyaW5nKCksIHRoaXMpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAg
ICAgZGVmYXVsdDoKLSAgICAgICAgewotICAgICAgICAgICAgU1ZHVGV4dENvbnRlbnRFbGVtZW50
SW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cik7Ci0gICAgICAgIH0KLSAgICB9OworICAgIAorICAg
IGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnhBdHRyKQorICAgICAgICB4KCktPmJhc2VW
YWwoKS0+cGFyc2UodmFsdWUucXN0cmluZygpLCB0aGlzLCBMTV9XSURUSCk7CisgICAgZWxzZSBp
ZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjp5QXR0cikKKyAgICAgICAgeSgpLT5iYXNlVmFs
KCktPnBhcnNlKHZhbHVlLnFzdHJpbmcoKSwgdGhpcywgTE1fSEVJR0hUKTsKKyAgICBlbHNlIGlm
IChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OmR4QXR0cikKKyAgICAgICAgZHgoKS0+YmFzZVZh
bCgpLT5wYXJzZSh2YWx1ZS5xc3RyaW5nKCksIHRoaXMsIExNX1dJRFRIKTsKKyAgICBlbHNlIGlm
IChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OmR5QXR0cikKKyAgICAgICAgZHkoKS0+YmFzZVZh
bCgpLT5wYXJzZSh2YWx1ZS5xc3RyaW5nKCksIHRoaXMsIExNX0hFSUdIVCk7CisgICAgZWxzZSBp
ZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjpyb3RhdGVBdHRyKQorICAgICAgICByb3RhdGUo
KS0+YmFzZVZhbCgpLT5wYXJzZSh2YWx1ZS5xc3RyaW5nKCksIHRoaXMpOworICAgIGVsc2UKKyAg
ICAgICAgU1ZHVGV4dENvbnRlbnRFbGVtZW50SW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cik7CiB9
CiAKIC8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IGtzdmcyL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdF
bGVtZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tz
dmcyL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50SW1wbC5oLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjQKZGlmZiAtcCAtdSAtcjEuNCBrc3ZnMi9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxl
bWVudEltcGwuaAotLS0ga3N2ZzIvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnRJbXBsLmgJ
MSBTZXAgMjAwNSAwNzozNTo1NCAtMDAwMAkxLjQKKysrIGtzdmcyL3N2Zy9TVkdUZXh0UG9zaXRp
b25pbmdFbGVtZW50SW1wbC5oCTEgTm92IDIwMDUgMTE6MTM6MjIgLTAwMDAKQEAgLTMzLDcgKzMz
LDcgQEAgbmFtZXNwYWNlIEtTVkcKICAgICBjbGFzcyBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50
SW1wbCA6IHB1YmxpYyBTVkdUZXh0Q29udGVudEVsZW1lbnRJbXBsCiAgICAgewogICAgIHB1Ymxp
YzoKLSAgICAgICAgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudEltcGwoS0RPTTo6RG9jdW1lbnRQ
dHIgKmRvYywgS0RPTTo6Tm9kZUltcGw6OklkIGlkLCAgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHJl
Zml4KTsKKyAgICAgICAgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudEltcGwoY29uc3QgS0RPTTo6
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRvYyk7CiAgICAgICAg
IHZpcnR1YWwgflNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnRJbXBsKCk7CiAKICAgICAgICAgLy8g
J1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQnIGZ1bmN0aW9ucwpJbmRleDoga3N2ZzIvc3ZnL1NW
R1RpdGxlRWxlbWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdT
dXBwb3J0L2tzdmcyL3N2Zy9TVkdUaXRsZUVsZW1lbnRJbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS41CmRpZmYgLXAgLXUgLXIxLjUga3N2ZzIvc3ZnL1NWR1RpdGxlRWxlbWVudEltcGwu
Y3BwCi0tLSBrc3ZnMi9zdmcvU1ZHVGl0bGVFbGVtZW50SW1wbC5jcHAJNSBPY3QgMjAwNSAwNToz
NTozMCAtMDAwMAkxLjUKKysrIGtzdmcyL3N2Zy9TVkdUaXRsZUVsZW1lbnRJbXBsLmNwcAkxIE5v
diAyMDA1IDExOjEzOjIyIC0wMDAwCkBAIC0yNSw3ICsyNSw3IEBACiAKIHVzaW5nIG5hbWVzcGFj
ZSBLU1ZHOwogCi1TVkdUaXRsZUVsZW1lbnRJbXBsOjpTVkdUaXRsZUVsZW1lbnRJbXBsKEtET006
OkRvY3VtZW50UHRyICpkb2MsIEtET006Ok5vZGVJbXBsOjpJZCBpZCwgS0RPTTo6RE9NU3RyaW5n
SW1wbCAqcHJlZml4KSA6IFNWR1N0eWxlZEVsZW1lbnRJbXBsKGRvYywgaWQsIHByZWZpeCksIFNW
R0xhbmdTcGFjZUltcGwoKQorU1ZHVGl0bGVFbGVtZW50SW1wbDo6U1ZHVGl0bGVFbGVtZW50SW1w
bChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpEb2N1bWVudFB0ciAq
ZG9jKSA6IFNWR1N0eWxlZEVsZW1lbnRJbXBsKHRhZ05hbWUsIGRvYyksIFNWR0xhbmdTcGFjZUlt
cGwoKQogewogfQogCkluZGV4OiBrc3ZnMi9zdmcvU1ZHVGl0bGVFbGVtZW50SW1wbC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdUaXRsZUVs
ZW1lbnRJbXBsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNApkaWZmIC1wIC11IC1yMS40IGtz
dmcyL3N2Zy9TVkdUaXRsZUVsZW1lbnRJbXBsLmgKLS0tIGtzdmcyL3N2Zy9TVkdUaXRsZUVsZW1l
bnRJbXBsLmgJMSBTZXAgMjAwNSAwNzozNTo1NCAtMDAwMAkxLjQKKysrIGtzdmcyL3N2Zy9TVkdU
aXRsZUVsZW1lbnRJbXBsLmgJMSBOb3YgMjAwNSAxMToxMzoyMiAtMDAwMApAQCAtMzIsNyArMzIs
NyBAQCBuYW1lc3BhY2UgS1NWRwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJs
aWMgU1ZHTGFuZ1NwYWNlSW1wbAogICAgIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR1RpdGxl
RWxlbWVudEltcGwoS0RPTTo6RG9jdW1lbnRQdHIgKmRvYywgS0RPTTo6Tm9kZUltcGw6OklkIGlk
LCBLRE9NOjpET01TdHJpbmdJbXBsICpwcmVmaXgpOworICAgICAgICBTVkdUaXRsZUVsZW1lbnRJ
bXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50UHRy
ICpkb2MpOwogICAgICAgICB2aXJ0dWFsIH5TVkdUaXRsZUVsZW1lbnRJbXBsKCk7CiAKICAgICAg
ICAgS0RPTTo6RE9NU3RyaW5nSW1wbCAqdGl0bGUoKSBjb25zdDsKSW5kZXg6IGtzdmcyL3N2Zy9T
VkdUcmFuc2Zvcm1JbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3Vw
cG9ydC9rc3ZnMi9zdmcvU1ZHVHJhbnNmb3JtSW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuNgpkaWZmIC1wIC11IC1yMS42IGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1JbXBsLmNwcAotLS0g
a3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUltcGwuY3BwCTI0IE9jdCAyMDA1IDA2OjMxOjU0IC0wMDAw
CTEuNgorKysga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybUltcGwuY3BwCTEgTm92IDIwMDUgMTE6MTM6
MjIgLTAwMDAKQEAgLTY1LDcgKzY1LDcgQEAgdm9pZCBTVkdUcmFuc2Zvcm1JbXBsOjpzZXRNYXRy
aXgoU1ZHTWF0cgogICAgIG1fdHlwZSA9IFNWR19UUkFOU0ZPUk1fTUFUUklYOwogICAgIG1fYW5n
bGUgPSAwOwogICAgIAotICAgIEtET01fU0FGRV9TRVQobV9tYXRyaXgsIG1hdHJpeCk7CisgICAg
S0RPTTo6S0RPTV9TQUZFX1NFVChtX21hdHJpeCwgbWF0cml4KTsKIH0KIAogdm9pZCBTVkdUcmFu
c2Zvcm1JbXBsOjpzZXRUcmFuc2xhdGUoZG91YmxlIHR4LCBkb3VibGUgdHkpCkluZGV4OiBrc3Zn
Mi9zdmcvU1ZHVHJhbnNmb3JtYWJsZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMv
cm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlSW1wbC5jcHAsdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuNwpkaWZmIC1wIC11IC1yMS43IGtzdmcyL3N2Zy9TVkdUcmFuc2Zv
cm1hYmxlSW1wbC5jcHAKLS0tIGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlSW1wbC5jcHAJNSBP
Y3QgMjAwNSAwNTozNTozMCAtMDAwMAkxLjcKKysrIGtzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1hYmxl
SW1wbC5jcHAJMSBOb3YgMjAwNSAxMToxMzoyMyAtMDAwMApAQCAtMjksNyArMjksNyBAQAogI2lu
Y2x1ZGUgPGtjYW52YXMvS0NhbnZhcy5oPgogI2luY2x1ZGUgPGtjYW52YXMvS0NhbnZhc0l0ZW0u
aD4KIAotI2luY2x1ZGUgInN2Z2F0dHJzLmgiCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNs
dWRlICJTVkdIZWxwZXIuaCIKICNpbmNsdWRlICJTVkdNYXRyaXhJbXBsLmgiCiAjaW5jbHVkZSAi
U1ZHRG9jdW1lbnRJbXBsLmgiCkBAIC05Myw3ICs5Myw3IEBAIHZvaWQgU1ZHVHJhbnNmb3JtYWJs
ZUltcGw6OnVwZGF0ZUxvY2FsVHIKICAgICB7CiAgICAgICAgIGxvY2FsVHJhbnNmb3JtLT5yZWYo
KTsKICAgICAgICAgCi0gICAgICAgIEtET01fU0FGRV9TRVQobV9sb2NhbE1hdHJpeCwgbG9jYWxU
cmFuc2Zvcm0tPm1hdHJpeCgpKTsKKyAgICAgICAgS0RPTTo6S0RPTV9TQUZFX1NFVChtX2xvY2Fs
TWF0cml4LCBsb2NhbFRyYW5zZm9ybS0+bWF0cml4KCkpOwogCiAgICAgICAgIGxvY2FsVHJhbnNm
b3JtLT5kZXJlZigpOwogICAgIH0KQEAgLTExMyw3ICsxMTMsNyBAQCB2b2lkIFNWR1RyYW5zZm9y
bWFibGVJbXBsOjp1cGRhdGVTdWJ0cmVlCiAgICAgICAgIFFNYXRyaXggdXNlTWF0cml4ID0gdHJh
bnNmb3JtLT5sb2NhbE1hdHJpeCgpLT5xbWF0cml4KCk7CiAgICAgCiAgICAgICAgIEtET006Ok5v
ZGVJbXBsICpwYXJlbnRFbGVtZW50ID0gbm9kZS0+cGFyZW50Tm9kZSgpOwotICAgICAgICBpZihw
YXJlbnRFbGVtZW50ICYmIHBhcmVudEVsZW1lbnQtPmlkKCkgPT0gSURfRykKKyAgICAgICAgaWYo
cGFyZW50RWxlbWVudCAmJiBwYXJlbnRFbGVtZW50LT5oYXNUYWdOYW1lKFNWR05hbWVzOjpnVGFn
KSkKICAgICAgICAgewogICAgICAgICAgICAgU1ZHTWF0cml4SW1wbCAqY3RtID0gdHJhbnNmb3Jt
LT5nZXRDVE0oKTsKICAgICAgICAgICAgIGN0bS0+cmVmKCk7CkBAIC0xMzMsMTMgKzEzMywxMiBA
QCB2b2lkIFNWR1RyYW5zZm9ybWFibGVJbXBsOjp1cGRhdGVTdWJ0cmVlCiAKIGJvb2wgU1ZHVHJh
bnNmb3JtYWJsZUltcGw6OnBhcnNlQXR0cmlidXRlKEtET006OkF0dHJpYnV0ZUltcGwgKmF0dHIp
CiB7Ci0gICAgaW50IGlkID0gKGF0dHItPmlkKCkgJiBOb2RlSW1wbF9JZExvY2FsTWFzayk7Ci0g
ICAgaWYoaWQgPT0gQVRUUl9UUkFOU0ZPUk0pCisgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdO
YW1lczo6dHJhbnNmb3JtQXR0cikKICAgICB7CiAgICAgICAgIFNWR1RyYW5zZm9ybUxpc3RJbXBs
ICpsb2NhbFRyYW5zZm9ybXMgPSB0cmFuc2Zvcm0oKS0+YmFzZVZhbCgpOwogICAgICAgICAKICAg
ICAgICAgbG9jYWxUcmFuc2Zvcm1zLT5jbGVhcigpOwotICAgICAgICBTVkdUcmFuc2Zvcm1hYmxl
SW1wbDo6cGFyc2VUcmFuc2Zvcm1BdHRyaWJ1dGUobG9jYWxUcmFuc2Zvcm1zLCBhdHRyLT52YWx1
ZSgpKTsKKyAgICAgICAgU1ZHVHJhbnNmb3JtYWJsZUltcGw6OnBhcnNlVHJhbnNmb3JtQXR0cmli
dXRlKGxvY2FsVHJhbnNmb3JtcywgYXR0ci0+dmFsdWUoKS5pbXBsKCkpOwogCiAgICAgICAgIC8v
IFVwZGF0ZSBjYWNoZWQgbG9jYWwgbWF0cml4CiAgICAgICAgIHVwZGF0ZUxvY2FsVHJhbnNmb3Jt
KGxvY2FsVHJhbnNmb3Jtcyk7CkBAIC0xNjEsNyArMTYwLDcgQEAgdm9pZCBTVkdUcmFuc2Zvcm1h
YmxlSW1wbDo6cGFyc2VUcmFuc2ZvcgogICAgICAgICByZXR1cm47CiAKICAgICAvLyBTcGxpdCBz
dHJpbmcgZm9yIGhhbmRsaW5nIDEgdHJhbnNmb3JtIHN0YXRlbWVudCBhdCBhIHRpbWUKLSAgICBR
U3RyaW5nTGlzdCBzdWJ0cmFuc2Zvcm1zID0gUVN0cmluZ0xpc3Q6OnNwbGl0KCcpJywgS0RPTTo6
RE9NU3RyaW5nKHRyYW5zZm9ybSkuc3RyaW5nKCkpOworICAgIFFTdHJpbmdMaXN0IHN1YnRyYW5z
Zm9ybXMgPSBRU3RyaW5nTGlzdDo6c3BsaXQoJyknLCBLRE9NOjpET01TdHJpbmcodHJhbnNmb3Jt
KS5xc3RyaW5nKCkpOwogICAgIFFTdHJpbmdMaXN0OjpDb25zdEl0ZXJhdG9yIGl0ID0gc3VidHJh
bnNmb3Jtcy5iZWdpbigpOwogICAgIFFTdHJpbmdMaXN0OjpDb25zdEl0ZXJhdG9yIGVuZCA9IHN1
YnRyYW5zZm9ybXMuZW5kKCk7CiAgICAgZm9yKDsgaXQgIT0gZW5kOyArK2l0KQpJbmRleDoga3N2
ZzIvc3ZnL1NWR1VSSVJlZmVyZW5jZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMv
cm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdVUklSZWZlcmVuY2VJbXBsLmNwcCx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS42CmRpZmYgLXAgLXUgLXIxLjYga3N2ZzIvc3ZnL1NWR1VSSVJlZmVy
ZW5jZUltcGwuY3BwCi0tLSBrc3ZnMi9zdmcvU1ZHVVJJUmVmZXJlbmNlSW1wbC5jcHAJNSBPY3Qg
MjAwNSAwNTozNTozMCAtMDAwMAkxLjYKKysrIGtzdmcyL3N2Zy9TVkdVUklSZWZlcmVuY2VJbXBs
LmNwcAkxIE5vdiAyMDA1IDExOjEzOjIzIC0wMDAwCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVk
ZSA8a2RvbS9jb3JlL05vZGVJbXBsLmg+CiAjaW5jbHVkZSA8a2RvbS9jb3JlL0F0dHJJbXBsLmg+
CiAKLSNpbmNsdWRlICJzdmdhdHRycy5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVk
ZSAiU1ZHSGVscGVyLmgiCiAjaW5jbHVkZSAiU1ZHVVJJUmVmZXJlbmNlSW1wbC5oIgogI2luY2x1
ZGUgIlNWR1N0eWxlZEVsZW1lbnRJbXBsLmgiCkBAIC01MSwxMSArNTEsOSBAQCBTVkdBbmltYXRl
ZFN0cmluZ0ltcGwgKlNWR1VSSVJlZmVyZW5jZUltCiAKIGJvb2wgU1ZHVVJJUmVmZXJlbmNlSW1w
bDo6cGFyc2VBdHRyaWJ1dGUoS0RPTTo6QXR0cmlidXRlSW1wbCAqYXR0cikKIHsKLSAgICBpbnQg
aWQgPSAoYXR0ci0+aWQoKSAmIE5vZGVJbXBsX0lkTG9jYWxNYXNrKTsKLSAgICBLRE9NOjpET01T
dHJpbmcgdmFsdWUoYXR0ci0+dmFsdWUoKSk7Ci0gICAgaWYoaWQgPT0gQVRUUl9IUkVGIHx8IEtE
T006OkRPTVN0cmluZyhhdHRyLT5uYW1lKCkpID09ICJ4bGluazpocmVmIikKKyAgICBpZiAoYXR0
ci0+bmFtZSgpID09IFNWR05hbWVzOjpocmVmQXR0ciB8fCBhdHRyLT5uYW1lKCkgPT0gWExpbmtO
YW1lczo6aHJlZkF0dHIpCiAgICAgewotICAgICAgICBocmVmKCktPnNldEJhc2VWYWwodmFsdWUu
aGFuZGxlKCkpOworICAgICAgICBocmVmKCktPnNldEJhc2VWYWwoYXR0ci0+dmFsdWUoKS5pbXBs
KCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKSW5kZXg6IGtzdmcyL3N2Zy9TVkdV
UklSZWZlcmVuY2VJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBv
cnQva3N2ZzIvc3ZnL1NWR1VSSVJlZmVyZW5jZUltcGwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24g
MS4zCmRpZmYgLXAgLXUgLXIxLjMga3N2ZzIvc3ZnL1NWR1VSSVJlZmVyZW5jZUltcGwuaAotLS0g
a3N2ZzIvc3ZnL1NWR1VSSVJlZmVyZW5jZUltcGwuaAkxIFNlcCAyMDA1IDA3OjM1OjU2IC0wMDAw
CTEuMworKysga3N2ZzIvc3ZnL1NWR1VSSVJlZmVyZW5jZUltcGwuaAkxIE5vdiAyMDA1IDExOjEz
OjIzIC0wMDAwCkBAIC0yMyw2ICsyMyw4IEBACiAjaWZuZGVmIEtTVkdfU1ZHVVJJUmVmZXJlbmNl
SW1wbF9ICiAjZGVmaW5lIEtTVkdfU1ZHVVJJUmVmZXJlbmNlSW1wbF9ICiAKKyNpbmNsdWRlIDxx
c3RyaW5nLmg+CisKIG5hbWVzcGFjZSBLRE9NCiB7CiAgICAgY2xhc3MgQXR0cmlidXRlSW1wbDsK
SW5kZXg6IGtzdmcyL3N2Zy9TVkdVc2VFbGVtZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvc3ZnL1NWR1VzZUVsZW1lbnRJbXBsLmNwcCx2
CnJldHJpZXZpbmcgcmV2aXNpb24gMS45CmRpZmYgLXAgLXUgLXIxLjkga3N2ZzIvc3ZnL1NWR1Vz
ZUVsZW1lbnRJbXBsLmNwcAotLS0ga3N2ZzIvc3ZnL1NWR1VzZUVsZW1lbnRJbXBsLmNwcAkxMSBP
Y3QgMjAwNSAwOToxOToyMyAtMDAwMAkxLjkKKysrIGtzdmcyL3N2Zy9TVkdVc2VFbGVtZW50SW1w
bC5jcHAJMSBOb3YgMjAwNSAxMToxMzoyMyAtMDAwMApAQCAtMjUsNyArMjUsNyBAQAogI2luY2x1
ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgogCiAjaW5jbHVkZSAia3N2Zy5oIgotI2luY2x1ZGUg
InN2Z2F0dHJzLmgiCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdIZWxwZXIu
aCIKICNpbmNsdWRlICJTVkdEb2N1bWVudEltcGwuaCIKICNpbmNsdWRlICJTVkdHRWxlbWVudElt
cGwuaCIKQEAgLTQ1LDggKzQ1LDggQEAKIAogdXNpbmcgbmFtZXNwYWNlIEtTVkc7CiAKLVNWR1Vz
ZUVsZW1lbnRJbXBsOjpTVkdVc2VFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBL
RE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZpeCkKLTogU1ZH
U3R5bGVkRWxlbWVudEltcGwoZG9jLCBpZCwgcHJlZml4KSwgU1ZHVGVzdHNJbXBsKCksIFNWR0xh
bmdTcGFjZUltcGwoKSwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGwoKSwgU1ZHVHJh
bnNmb3JtYWJsZUltcGwoKSwgU1ZHVVJJUmVmZXJlbmNlSW1wbCgpCitTVkdVc2VFbGVtZW50SW1w
bDo6U1ZHVXNlRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
S0RPTTo6RG9jdW1lbnRQdHIgKmRvYykKKzogU1ZHU3R5bGVkRWxlbWVudEltcGwodGFnTmFtZSwg
ZG9jKSwgU1ZHVGVzdHNJbXBsKCksIFNWR0xhbmdTcGFjZUltcGwoKSwgU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZEltcGwoKSwgU1ZHVHJhbnNmb3JtYWJsZUltcGwoKSwgU1ZHVVJJUmVmZXJl
bmNlSW1wbCgpCiB7CiAgICAgbV94ID0gbV95ID0gbV93aWR0aCA9IG1faGVpZ2h0ID0gMDsKIH0K
QEAgLTg1LDQ4ICs4NSwzMiBAQCBTVkdBbmltYXRlZExlbmd0aEltcGwgKlNWR1VzZUVsZW1lbnRJ
bXBsCiAKIHZvaWQgU1ZHVXNlRWxlbWVudEltcGw6OnBhcnNlQXR0cmlidXRlKEtET006OkF0dHJp
YnV0ZUltcGwgKmF0dHIpCiB7Ci0gICAgaW50IGlkID0gKGF0dHItPmlkKCkgJiBOb2RlSW1wbF9J
ZExvY2FsTWFzayk7Ci0gICAgS0RPTTo6RE9NU3RyaW5nSW1wbCAqdmFsdWUgPSBhdHRyLT52YWx1
ZSgpOwotICAgIHN3aXRjaChpZCkKLSAgICB7Ci0gICAgICAgIGNhc2UgQVRUUl9YOgotICAgICAg
ICB7Ci0gICAgICAgICAgICB4KCktPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIEFUVFJfWToKLSAg
ICAgICAgewotICAgICAgICAgICAgeSgpLT5iYXNlVmFsKCktPnNldFZhbHVlQXNTdHJpbmcodmFs
dWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBBVFRSX1dJ
RFRIOgotICAgICAgICB7Ci0gICAgICAgICAgICB3aWR0aCgpLT5iYXNlVmFsKCktPnNldFZhbHVl
QXNTdHJpbmcodmFsdWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAg
Y2FzZSBBVFRSX0hFSUdIVDoKLSAgICAgICAgewotICAgICAgICAgICAgaGVpZ2h0KCktPmJhc2VW
YWwoKS0+c2V0VmFsdWVBc1N0cmluZyh2YWx1ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgfQotICAgICAgICBkZWZhdWx0OgotICAgICAgICB7Ci0gICAgICAgICAgICBpZihTVkdUZXN0
c0ltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47Ci0gICAgICAgICAgICBpZihTVkdM
YW5nU3BhY2VJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOwotICAgICAgICAgICAg
aWYoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIp
KSByZXR1cm47Ci0gICAgICAgICAgICBpZihTVkdUcmFuc2Zvcm1hYmxlSW1wbDo6cGFyc2VBdHRy
aWJ1dGUoYXR0cikpIHJldHVybjsKLSAgICAgICAgICAgIGlmKFNWR1VSSVJlZmVyZW5jZUltcGw6
OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47CisgICAgY29uc3QgS0RPTTo6QXRvbWljU3Ry
aW5nJiB2YWx1ZSA9IGF0dHItPnZhbHVlKCk7CisgICAgCisgICAgaWYgKGF0dHItPm5hbWUoKSA9
PSBTVkdOYW1lczo6eEF0dHIpCisgICAgICAgIHgoKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3Ry
aW5nKHZhbHVlLmltcGwoKSk7CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVz
Ojp5QXR0cikKKyAgICAgICAgeSgpLT5iYXNlVmFsKCktPnNldFZhbHVlQXNTdHJpbmcodmFsdWUu
aW1wbCgpKTsKKyAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OndpZHRoQXR0
cikKKyAgICAgICAgd2lkdGgoKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlLmlt
cGwoKSk7CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjpoZWlnaHRBdHRy
KQorICAgICAgICBoZWlnaHQoKS0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHZhbHVlLmlt
cGwoKSk7CisgICAgZWxzZSB7CisgICAgICAgIGlmKFNWR1Rlc3RzSW1wbDo6cGFyc2VBdHRyaWJ1
dGUoYXR0cikpIHJldHVybjsKKyAgICAgICAgaWYoU1ZHTGFuZ1NwYWNlSW1wbDo6cGFyc2VBdHRy
aWJ1dGUoYXR0cikpIHJldHVybjsKKyAgICAgICAgaWYoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZEltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSByZXR1cm47CisgICAgICAgIGlmKFNWR1Ry
YW5zZm9ybWFibGVJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOworICAgICAgICBp
ZihTVkdVUklSZWZlcmVuY2VJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOwogCi0g
ICAgICAgICAgICBTVkdTdHlsZWRFbGVtZW50SW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cik7Ci0g
ICAgICAgIH0KLSAgICB9OworICAgICAgICBTVkdTdHlsZWRFbGVtZW50SW1wbDo6cGFyc2VBdHRy
aWJ1dGUoYXR0cik7CisgICAgfQogfQogCi12b2lkIFNWR1VzZUVsZW1lbnRJbXBsOjpjbG9zZSgp
Cit2b2lkIFNWR1VzZUVsZW1lbnRJbXBsOjpjbG9zZVJlbmRlcmVyKCkKIHsKLSAgICBRU3RyaW5n
IHJlZiA9IEtET006OkRPTVN0cmluZyhocmVmKCktPmJhc2VWYWwoKSkuc3RyaW5nKCk7CisgICAg
UVN0cmluZyByZWYgPSBLRE9NOjpET01TdHJpbmcoaHJlZigpLT5iYXNlVmFsKCkpLnFzdHJpbmco
KTsKICAgICBLRE9NOjpET01TdHJpbmcgdGFyZ2V0SWQgPSBTVkdVUklSZWZlcmVuY2VJbXBsOjpn
ZXRUYXJnZXQocmVmKTsKLSAgICBLRE9NOjpFbGVtZW50SW1wbCAqdGFyZ2V0RWxlbWVudCA9IG93
bmVyRG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQodGFyZ2V0SWQuaGFuZGxlKCkpOworICAgIEtE
T006OkVsZW1lbnRJbXBsICp0YXJnZXRFbGVtZW50ID0gb3duZXJEb2N1bWVudCgpLT5nZXRFbGVt
ZW50QnlJZCh0YXJnZXRJZC5pbXBsKCkpOwogICAgIFNWR0VsZW1lbnRJbXBsICp0YXJnZXQgPSBz
dmdfZHluYW1pY19jYXN0KHRhcmdldEVsZW1lbnQpOwogICAgIGlmICghdGFyZ2V0KQogICAgIHsK
QEAgLTEzNyw1NiArMTIxLDU5IEBAIHZvaWQgU1ZHVXNlRWxlbWVudEltcGw6OmNsb3NlKCkKICAg
ICBmbG9hdCBfeCA9IHgoKS0+YmFzZVZhbCgpLT52YWx1ZSgpLCBfeSA9IHkoKS0+YmFzZVZhbCgp
LT52YWx1ZSgpOwogICAgIGZsb2F0IF93ID0gd2lkdGgoKS0+YmFzZVZhbCgpLT52YWx1ZSgpLCBf
aCA9IGhlaWdodCgpLT5iYXNlVmFsKCktPnZhbHVlKCk7CiAgICAgCi0gICAgUVN0cmluZyB3ID0g
UVN0cmluZzo6bnVtYmVyKF93KTsKLSAgICBRU3RyaW5nIGggPSBRU3RyaW5nOjpudW1iZXIoX2gp
OworICAgIEtET006OkRPTVN0cmluZyB3U3RyaW5nID0gUVN0cmluZzo6bnVtYmVyKF93KTsKKyAg
ICBLRE9NOjpET01TdHJpbmcgaFN0cmluZyA9IFFTdHJpbmc6Om51bWJlcihfaCk7CiAgICAgCi0g
ICAgUVN0cmluZyB0cmFucyA9IFFTdHJpbmc6OmZyb21MYXRpbjEoInRyYW5zbGF0ZSglMSwgJTIp
IikuYXJnKF94KS5hcmcoX3kpOyAgICAKLSAgICBpZih0YXJnZXQtPmlkKCkgPT0gSURfU1lNQk9M
KQorICAgIGludCBleGNlcHRpb25jb2RlOworICAgIFFTdHJpbmcgdHJhbnMgPSBRU3RyaW5nOjpm
cm9tTGF0aW4xKCJ0cmFuc2xhdGUoJTEsICUyKSIpLmFyZyhfeCkuYXJnKF95KTsKKyAgICBpZih0
YXJnZXQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnN5bWJvbFRhZykpCiAgICAgewotICAgICAgICBT
VkdFbGVtZW50SW1wbCAqZHVtbXkgPSBuZXcgU1ZHU1ZHRWxlbWVudEltcGwoZG9jUHRyKCksIElE
X1NWRywgMCk7CisgICAgICAgIFNWR0VsZW1lbnRJbXBsICpkdW1teSA9IG5ldyBTVkdTVkdFbGVt
ZW50SW1wbChTVkdOYW1lczo6c3ZnVGFnLCBkb2NQdHIoKSk7CiAgICAgICAgIGlmKF93ID4gMCkK
LSAgICAgICAgICAgIGR1bW15LT5zZXRBdHRyaWJ1dGVOUyhLRE9NOjpOU19TVkcuaGFuZGxlKCks
IEtET006OkRPTVN0cmluZygid2lkdGgiKS5oYW5kbGUoKSwgS0RPTTo6RE9NU3RyaW5nKHcpLmhh
bmRsZSgpKTsKKyAgICAgICAgICAgIGR1bW15LT5zZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OndpZHRo
QXR0ciwgd1N0cmluZy5pbXBsKCkpOwogICAgICAgICBpZihfaCA+IDApCi0gICAgICAgICAgICBk
dW1teS0+c2V0QXR0cmlidXRlTlMoS0RPTTo6TlNfU1ZHLmhhbmRsZSgpLCBLRE9NOjpET01TdHJp
bmcoImhlaWdodCIpLmhhbmRsZSgpLCBLRE9NOjpET01TdHJpbmcoaCkuaGFuZGxlKCkpOworICAg
ICAgICAgICAgZHVtbXktPnNldEF0dHJpYnV0ZShTVkdOYW1lczo6aGVpZ2h0QXR0ciwgaFN0cmlu
Zy5pbXBsKCkpOwogICAgICAgICAKICAgICAgICAgU1ZHU3ltYm9sRWxlbWVudEltcGwgKnN5bWJv
bCA9IHN0YXRpY19jYXN0PFNWR1N5bWJvbEVsZW1lbnRJbXBsICo+KHRhcmdldCk7Ci0gICAgICAg
IGlmKHN5bWJvbC0+aGFzQXR0cmlidXRlKG5ldyBLRE9NOjpET01TdHJpbmdJbXBsKCJ2aWV3Qm94
IikpKQotICAgICAgICAgICAgZHVtbXktPnNldEF0dHJpYnV0ZU5TKEtET006Ok5TX1NWRy5oYW5k
bGUoKSwgS0RPTTo6RE9NU3RyaW5nKCJ2aWV3Qm94IikuaGFuZGxlKCksIHN5bWJvbC0+Z2V0QXR0
cmlidXRlTlMoS0RPTTo6TlNfU1ZHLmhhbmRsZSgpLCBLRE9NOjpET01TdHJpbmcoInZpZXdCb3gi
KS5oYW5kbGUoKSkpOwotICAgICAgICB0YXJnZXQtPmNsb25lQ2hpbGROb2RlcyhkdW1teSwgZG9j
UHRyKCkpOworICAgICAgICBpZiAoc3ltYm9sLT5oYXNBdHRyaWJ1dGUoU1ZHTmFtZXM6OnZpZXdi
b3hBdHRyKSkgeworICAgICAgICAgICAgY29uc3QgS0RPTTo6QXRvbWljU3RyaW5nJiBzeW1ib2xW
aWV3Qm94ID0gc3ltYm9sLT5nZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OnZpZXdib3hBdHRyKTsKKyAg
ICAgICAgICAgIGR1bW15LT5zZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OnZpZXdib3hBdHRyLCBzeW1i
b2xWaWV3Qm94KTsKKyAgICAgICAgfQorICAgICAgICB0YXJnZXQtPmNsb25lQ2hpbGROb2Rlcyhk
dW1teSk7CiAKLSAgICAgICAgU1ZHRWxlbWVudEltcGwgKmR1bW15MiA9IG5ldyBTVkdEdW1teUVs
ZW1lbnRJbXBsKGRvY1B0cigpLCBJRF9HLCAwKTsKLSAgICAgICAgZHVtbXkyLT5zZXRBdHRyaWJ1
dGVOUyhLRE9NOjpOU19TVkcuaGFuZGxlKCksIEtET006OkRPTVN0cmluZygidHJhbnNmb3JtIiku
aGFuZGxlKCksIEtET006OkRPTVN0cmluZyh0cmFucykuaGFuZGxlKCkpOworICAgICAgICBTVkdF
bGVtZW50SW1wbCAqZHVtbXkyID0gbmV3IFNWR0R1bW15RWxlbWVudEltcGwoU1ZHTmFtZXM6OmdU
YWcsIGRvY1B0cigpKTsKKyAgICAgICAgZHVtbXkyLT5zZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OnRy
YW5zZm9ybUF0dHIsIEtET006OkRPTVN0cmluZyh0cmFucykpOwogICAgICAgICAKLSAgICAgICAg
YXBwZW5kQ2hpbGQoZHVtbXkyKTsgICAgICAgIAotICAgICAgICBkdW1teTItPmFwcGVuZENoaWxk
KGR1bW15KTsKKyAgICAgICAgYXBwZW5kQ2hpbGQoZHVtbXkyLCBleGNlcHRpb25jb2RlKTsKKyAg
ICAgICAgZHVtbXkyLT5hcHBlbmRDaGlsZChkdW1teSwgZXhjZXB0aW9uY29kZSk7CiAgICAgfQot
ICAgIGVsc2UgaWYodGFyZ2V0LT5pZCgpID09IElEX1NWRykKKyAgICBlbHNlIGlmKHRhcmdldC0+
aGFzVGFnTmFtZShTVkdOYW1lczo6c3ZnVGFnKSkKICAgICB7Ci0gICAgICAgIFNWR0R1bW15RWxl
bWVudEltcGwgKmR1bW15ID0gbmV3IFNWR0R1bW15RWxlbWVudEltcGwoZG9jUHRyKCksIElEX0cs
IDApOwotICAgICAgICBkdW1teS0+c2V0QXR0cmlidXRlTlMoS0RPTTo6TlNfU1ZHLmhhbmRsZSgp
LCBLRE9NOjpET01TdHJpbmcoInRyYW5zZm9ybSIpLmhhbmRsZSgpLCBLRE9NOjpET01TdHJpbmco
dHJhbnMpLmhhbmRsZSgpKTsKKyAgICAgICAgU1ZHRHVtbXlFbGVtZW50SW1wbCAqZHVtbXkgPSBu
ZXcgU1ZHRHVtbXlFbGVtZW50SW1wbChTVkdOYW1lczo6Z1RhZywgZG9jUHRyKCkpOworICAgICAg
ICBkdW1teS0+c2V0QXR0cmlidXRlKFNWR05hbWVzOjp0cmFuc2Zvcm1BdHRyLCBLRE9NOjpET01T
dHJpbmcodHJhbnMpKTsKICAgICAgICAgCi0gICAgICAgIFNWR0VsZW1lbnRJbXBsICpyb290ID0g
c3RhdGljX2Nhc3Q8U1ZHRWxlbWVudEltcGwgKj4odGFyZ2V0LT5jbG9uZU5vZGUodHJ1ZSwgZG9j
UHRyKCkpKTsKLSAgICAgICAgaWYoaGFzQXR0cmlidXRlKEtET006OkRPTVN0cmluZygid2lkdGgi
KS5oYW5kbGUoKSkpCi0gICAgICAgICAgICByb290LT5zZXRBdHRyaWJ1dGVOUyhLRE9NOjpOU19T
VkcuaGFuZGxlKCksIEtET006OkRPTVN0cmluZygid2lkdGgiKS5oYW5kbGUoKSwgS0RPTTo6RE9N
U3RyaW5nKHcpLmhhbmRsZSgpKTsKKyAgICAgICAgU1ZHRWxlbWVudEltcGwgKnJvb3QgPSBzdGF0
aWNfY2FzdDxTVkdFbGVtZW50SW1wbCAqPih0YXJnZXQtPmNsb25lTm9kZSh0cnVlKSk7CisgICAg
ICAgIGlmKGhhc0F0dHJpYnV0ZShTVkdOYW1lczo6d2lkdGhBdHRyKSkKKyAgICAgICAgICAgIHJv
b3QtPnNldEF0dHJpYnV0ZShTVkdOYW1lczo6d2lkdGhBdHRyLCB3U3RyaW5nLmltcGwoKSk7CiAg
ICAgICAgICAgICAKLSAgICAgICAgaWYoaGFzQXR0cmlidXRlKEtET006OkRPTVN0cmluZygiaGVp
Z2h0IikuaGFuZGxlKCkpKQotICAgICAgICAgICAgcm9vdC0+c2V0QXR0cmlidXRlTlMoS0RPTTo6
TlNfU1ZHLmhhbmRsZSgpLCBLRE9NOjpET01TdHJpbmcoImhlaWdodCIpLmhhbmRsZSgpLCBLRE9N
OjpET01TdHJpbmcoaCkuaGFuZGxlKCkpOworICAgICAgICBpZihoYXNBdHRyaWJ1dGUoU1ZHTmFt
ZXM6OmhlaWdodEF0dHIpKQorICAgICAgICAgICAgcm9vdC0+c2V0QXR0cmlidXRlKFNWR05hbWVz
OjpoZWlnaHRBdHRyLCBoU3RyaW5nLmltcGwoKSk7CiAgICAgICAgICAgICAKLSAgICAgICAgYXBw
ZW5kQ2hpbGQoZHVtbXkpOwotICAgICAgICBkdW1teS0+YXBwZW5kQ2hpbGQocm9vdCk7CisgICAg
ICAgIGFwcGVuZENoaWxkKGR1bW15LCBleGNlcHRpb25jb2RlKTsKKyAgICAgICAgZHVtbXktPmFw
cGVuZENoaWxkKHJvb3QsIGV4Y2VwdGlvbmNvZGUpOwogICAgIH0KICAgICBlbHNlCiAgICAgewot
ICAgICAgICBTVkdEdW1teUVsZW1lbnRJbXBsICpkdW1teSA9IG5ldyBTVkdEdW1teUVsZW1lbnRJ
bXBsKGRvY1B0cigpLCBJRF9HLCAwKTsKLSAgICAgICAgZHVtbXktPnNldEF0dHJpYnV0ZU5TKEtE
T006Ok5TX1NWRy5oYW5kbGUoKSwgS0RPTTo6RE9NU3RyaW5nKCJ0cmFuc2Zvcm0iKS5oYW5kbGUo
KSwgS0RPTTo6RE9NU3RyaW5nKHRyYW5zKS5oYW5kbGUoKSk7CisgICAgICAgIFNWR0R1bW15RWxl
bWVudEltcGwgKmR1bW15ID0gbmV3IFNWR0R1bW15RWxlbWVudEltcGwoU1ZHTmFtZXM6OmdUYWcs
IGRvY1B0cigpKTsKKyAgICAgICAgZHVtbXktPnNldEF0dHJpYnV0ZShTVkdOYW1lczo6dHJhbnNm
b3JtQXR0ciwgdHJhbnMpOwogICAgICAgICAKLSAgICAgICAgS0RPTTo6Tm9kZUltcGwgKnJvb3Qg
PSB0YXJnZXQtPmNsb25lTm9kZSh0cnVlLCBkb2NQdHIoKSk7CisgICAgICAgIEtET006Ok5vZGVJ
bXBsICpyb290ID0gdGFyZ2V0LT5jbG9uZU5vZGUodHJ1ZSk7CiAgICAgICAgIAotICAgICAgICBh
cHBlbmRDaGlsZChkdW1teSk7Ci0gICAgICAgIGR1bW15LT5hcHBlbmRDaGlsZChyb290KTsKKyAg
ICAgICAgYXBwZW5kQ2hpbGQoZHVtbXksIGV4Y2VwdGlvbmNvZGUpOworICAgICAgICBkdW1teS0+
YXBwZW5kQ2hpbGQocm9vdCwgZXhjZXB0aW9uY29kZSk7CiAgICAgfQogCi0gICAgU1ZHRWxlbWVu
dEltcGw6OmNsb3NlKCk7CisgICAgU1ZHRWxlbWVudEltcGw6OmNsb3NlUmVuZGVyZXIoKTsKIH0K
IAogYm9vbCBTVkdVc2VFbGVtZW50SW1wbDo6aGFzQ2hpbGROb2RlcygpIGNvbnN0CkluZGV4OiBr
c3ZnMi9zdmcvU1ZHVXNlRWxlbWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jv
b3QvU1ZHU3VwcG9ydC9rc3ZnMi9zdmcvU1ZHVXNlRWxlbWVudEltcGwuaCx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS40CmRpZmYgLXAgLXUgLXIxLjQga3N2ZzIvc3ZnL1NWR1VzZUVsZW1lbnRJbXBs
LmgKLS0tIGtzdmcyL3N2Zy9TVkdVc2VFbGVtZW50SW1wbC5oCTEgU2VwIDIwMDUgMDc6MzU6NTYg
LTAwMDAJMS40CisrKyBrc3ZnMi9zdmcvU1ZHVXNlRWxlbWVudEltcGwuaAkxIE5vdiAyMDA1IDEx
OjEzOjIzIC0wMDAwCkBAIC00MiwxMyArNDIsMTMgQEAgbmFtZXNwYWNlIEtTVkcKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdVUklSZWZlcmVuY2VJbXBsCiAgICAgewog
ICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHVXNlRWxlbWVudEltcGwoS0RPTTo6RG9jdW1lbnRQdHIg
KmRvYywgS0RPTTo6Tm9kZUltcGw6OklkIGlkLCAgS0RPTTo6RE9NU3RyaW5nSW1wbCAqcHJlZml4
KTsKKyAgICAgICAgU1ZHVXNlRWxlbWVudEltcGwoY29uc3QgS0RPTTo6UXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgS0RPTTo6RG9jdW1lbnRQdHIgKmRvYyk7CiAgICAgICAgIHZpcnR1YWwgflNWR1Vz
ZUVsZW1lbnRJbXBsKCk7CiAKICAgICAgICAgLy8gRGVyaXZlZCBmcm9tOiAnRWxlbWVudEltcGwn
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBoYXNDaGlsZE5vZGVzKCkgY29uc3Q7CiAKLSAgICAgICAg
dmlydHVhbCB2b2lkIGNsb3NlKCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBjbG9zZVJlbmRlcmVy
KCk7CiAKICAgICAgICAgLy8gJ1NWR1VzZUVsZW1lbnQnIGZ1bmN0aW9ucwogICAgICAgICBTVkdB
bmltYXRlZExlbmd0aEltcGwgKngoKSBjb25zdDsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdWaWV3RWxl
bWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tz
dmcyL3N2Zy9TVkdWaWV3RWxlbWVudEltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjYK
ZGlmZiAtcCAtdSAtcjEuNiBrc3ZnMi9zdmcvU1ZHVmlld0VsZW1lbnRJbXBsLmNwcAotLS0ga3N2
ZzIvc3ZnL1NWR1ZpZXdFbGVtZW50SW1wbC5jcHAJNSBPY3QgMjAwNSAwNTozNTozMCAtMDAwMAkx
LjYKKysrIGtzdmcyL3N2Zy9TVkdWaWV3RWxlbWVudEltcGwuY3BwCTEgTm92IDIwMDUgMTE6MTM6
MjMgLTAwMDAKQEAgLTI1LDcgKzI1LDcgQEAKICNpbmNsdWRlIDxrZG9tL2NvcmUvQXR0ckltcGwu
aD4KICNpbmNsdWRlIDxrZG9tL2NvcmUvTmFtZWRBdHRyTWFwSW1wbC5oPgogCi0jaW5jbHVkZSAi
c3ZnYXR0cnMuaCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR0hlbHBlci5o
IgogI2luY2x1ZGUgIlNWR1N0cmluZ0xpc3RJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHVmlld0VsZW1l
bnRJbXBsLmgiCkBAIC0zNCw4ICszNCw4IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBLU1ZHOwogCi1T
VkdWaWV3RWxlbWVudEltcGw6OlNWR1ZpZXdFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0ciAq
ZG9jLCBLRE9NOjpOb2RlSW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZpeCkK
LTogU1ZHU3R5bGVkRWxlbWVudEltcGwoZG9jLCBpZCwgcHJlZml4KSwgU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZEltcGwoKSwKK1NWR1ZpZXdFbGVtZW50SW1wbDo6U1ZHVmlld0VsZW1lbnRJ
bXBsKGNvbnN0IEtET006OlF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEtET006OkRvY3VtZW50UHRy
ICpkb2MpCis6IFNWR1N0eWxlZEVsZW1lbnRJbXBsKHRhZ05hbWUsIGRvYyksIFNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWRJbXBsKCksCiBTVkdGaXRUb1ZpZXdCb3hJbXBsKCksIFNWR1pvb21B
bmRQYW5JbXBsKCkKIHsKICAgICBtX3ZpZXdUYXJnZXQgPSAwOwpAQCAtNTQsMjMgKzU0LDE2IEBA
IFNWR1N0cmluZ0xpc3RJbXBsICpTVkdWaWV3RWxlbWVudEltcGw6OnYKIAogdm9pZCBTVkdWaWV3
RWxlbWVudEltcGw6OnBhcnNlQXR0cmlidXRlKEtET006OkF0dHJpYnV0ZUltcGwgKmF0dHIpCiB7
Ci0gICAgaW50IGlkID0gKGF0dHItPmlkKCkgJiBOb2RlSW1wbF9JZExvY2FsTWFzayk7CiAgICAg
S0RPTTo6RE9NU3RyaW5nIHZhbHVlKGF0dHItPnZhbHVlKCkpOwotICAgIHN3aXRjaChpZCkKLSAg
ICB7Ci0gICAgICAgIGNhc2UgQVRUUl9WSUVXVEFSR0VUOgotICAgICAgICB7Ci0gICAgICAgICAg
ICB2aWV3VGFyZ2V0KCktPnJlc2V0KHZhbHVlLnN0cmluZygpKTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICB9Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlm
KFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJbXBsOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkg
cmV0dXJuOwotICAgICAgICAgICAgaWYoU1ZHRml0VG9WaWV3Qm94SW1wbDo6cGFyc2VBdHRyaWJ1
dGUoYXR0cikpIHJldHVybjsKLSAgICAgICAgICAgIGlmKFNWR1pvb21BbmRQYW5JbXBsOjpwYXJz
ZUF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOwotCi0gICAgICAgICAgICBTVkdTdHlsZWRFbGVtZW50
SW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cik7Ci0gICAgICAgIH0KLSAgICB9OworICAgIGlmIChh
dHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnZpZXd0YXJnZXRBdHRyKSB7CisgICAgICAgIHZpZXdU
YXJnZXQoKS0+cmVzZXQodmFsdWUucXN0cmluZygpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBp
ZihTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikK
KyAgICAgICAgICAgfHwgU1ZHRml0VG9WaWV3Qm94SW1wbDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikK
KyAgICAgICAgICAgfHwgU1ZHWm9vbUFuZFBhbkltcGw6OnBhcnNlQXR0cmlidXRlKGF0dHIpKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIFNWR1N0eWxlZEVsZW1lbnRJbXBsOjpwYXJz
ZUF0dHJpYnV0ZShhdHRyKTsKKyAgICB9CiB9CiAKSW5kZXg6IGtzdmcyL3N2Zy9TVkdWaWV3RWxl
bWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3Zn
Mi9zdmcvU1ZHVmlld0VsZW1lbnRJbXBsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNApkaWZm
IC1wIC11IC1yMS40IGtzdmcyL3N2Zy9TVkdWaWV3RWxlbWVudEltcGwuaAotLS0ga3N2ZzIvc3Zn
L1NWR1ZpZXdFbGVtZW50SW1wbC5oCTEgU2VwIDIwMDUgMDc6MzU6NTYgLTAwMDAJMS40CisrKyBr
c3ZnMi9zdmcvU1ZHVmlld0VsZW1lbnRJbXBsLmgJMSBOb3YgMjAwNSAxMToxMzoyMyAtMDAwMApA
QCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgS1NWRwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHB1YmxpYyBTVkdab29tQW5kUGFuSW1wbAogICAgIHsKICAgICBwdWJsaWM6Ci0gICAg
ICAgIFNWR1ZpZXdFbGVtZW50SW1wbChLRE9NOjpEb2N1bWVudFB0ciAqZG9jLCBLRE9NOjpOb2Rl
SW1wbDo6SWQgaWQsIEtET006OkRPTVN0cmluZ0ltcGwgKnByZWZpeCk7CisgICAgICAgIFNWR1Zp
ZXdFbGVtZW50SW1wbChjb25zdCBLRE9NOjpRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBLRE9NOjpE
b2N1bWVudFB0ciAqZG9jKTsKICAgICAgICAgdmlydHVhbCB+U1ZHVmlld0VsZW1lbnRJbXBsKCk7
CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKEtET006OkF0dHJpYnV0ZUlt
cGwgKik7CkluZGV4OiBrc3ZnMi9zdmcvU1ZHWm9vbUFuZFBhbkltcGwuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdab29tQW5kUGFuSW1w
bC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNQpkaWZmIC1wIC11IC1yMS41IGtzdmcyL3N2
Zy9TVkdab29tQW5kUGFuSW1wbC5jcHAKLS0tIGtzdmcyL3N2Zy9TVkdab29tQW5kUGFuSW1wbC5j
cHAJNSBPY3QgMjAwNSAwNTozNTozMCAtMDAwMAkxLjUKKysrIGtzdmcyL3N2Zy9TVkdab29tQW5k
UGFuSW1wbC5jcHAJMSBOb3YgMjAwNSAxMToxMzoyMyAtMDAwMApAQCAtMjQsNyArMjQsNyBAQAog
I2luY2x1ZGUgPGtkb20vY29yZS9BdHRySW1wbC5oPgogCiAjaW5jbHVkZSAia3N2Zy5oIgotI2lu
Y2x1ZGUgInN2Z2F0dHJzLmgiCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdI
ZWxwZXIuaCIKICNpbmNsdWRlICJTVkdab29tQW5kUGFuSW1wbC5oIgogCkBAIC01MSwxOCArNTEs
MTMgQEAgdm9pZCBTVkdab29tQW5kUGFuSW1wbDo6c2V0Wm9vbUFuZFBhbih1bgogCiBib29sIFNW
R1pvb21BbmRQYW5JbXBsOjpwYXJzZUF0dHJpYnV0ZShLRE9NOjpBdHRyaWJ1dGVJbXBsICphdHRy
KQogewotICAgIGludCBpZCA9IChhdHRyLT5pZCgpICYgTm9kZUltcGxfSWRMb2NhbE1hc2spOwog
ICAgIEtET006OkRPTVN0cmluZyB2YWx1ZShhdHRyLT52YWx1ZSgpKTsKLSAgICBzd2l0Y2goaWQp
Ci0gICAgewotICAgICAgICBjYXNlIEFUVFJfWk9PTUFORFBBTjoKLSAgICAgICAgewotICAgICAg
ICAgICAgaWYodmFsdWUgPT0gImRpc2FibGUiKQotICAgICAgICAgICAgICAgIHNldFpvb21BbmRQ
YW4oU1ZHX1pPT01BTkRQQU5fRElTQUJMRSk7Ci0gICAgICAgICAgICBlbHNlIGlmKHZhbHVlID09
ICJtYWduaWZ5IikKLSAgICAgICAgICAgICAgICBzZXRab29tQW5kUGFuKFNWR19aT09NQU5EUEFO
X01BR05JRlkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KKyAgICBpZiAo
YXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjp6b29tYW5kcGFuQXR0cikgeworICAgICAgICBpZih2
YWx1ZSA9PSAiZGlzYWJsZSIpCisgICAgICAgICAgICBzZXRab29tQW5kUGFuKFNWR19aT09NQU5E
UEFOX0RJU0FCTEUpOworICAgICAgICBlbHNlIGlmKHZhbHVlID09ICJtYWduaWZ5IikKKyAgICAg
ICAgICAgIHNldFpvb21BbmRQYW4oU1ZHX1pPT01BTkRQQU5fTUFHTklGWSk7CisgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIAogICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IGtzdmcyL3N2Zy9z
dmdhdHRycy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IGtzdmcyL3N2Zy9zdmdhdHRycy5jCmRpZmYg
LU4ga3N2ZzIvc3ZnL3N2Z2F0dHJzLmMKLS0tIGtzdmcyL3N2Zy9zdmdhdHRycy5jCTkgSnVsIDIw
MDUgMDY6NTU6NDMgLTAwMDAJMS4xCisrKyBrc3ZnMi9zdmcvc3ZnYXR0cnMuYwkxIEphbiAxOTcw
IDAwOjAwOjAwIC0wMDAwCkBAIC0xLDE1NTYgKzAsMCBAQAotLyogQU5TSS1DIGNvZGUgcHJvZHVj
ZWQgYnkgZ3BlcmYgdmVyc2lvbiAzLjAuMSAqLwotLyogQ29tbWFuZC1saW5lOiBncGVyZiAtYyAt
YSAtTCBBTlNJLUMgLVAgLUcgLUQgLUUgLUMgLW8gLXQgLWsgJyonIC1OZmluZFNWR0F0dHIgLUho
YXNoX2F0dHIgLVd3b3JkbGlzdF9hdHRyIC1Rc3Bvb2xfYXR0ciAtcyAzIHN2Z2F0dHJzLmdwZXJm
ICAqLwotCi0jaWYgISgoJyAnID09IDMyKSAmJiAoJyEnID09IDMzKSAmJiAoJyInID09IDM0KSAm
JiAoJyMnID09IDM1KSBcCi0gICAgICAmJiAoJyUnID09IDM3KSAmJiAoJyYnID09IDM4KSAmJiAo
J1wnJyA9PSAzOSkgJiYgKCcoJyA9PSA0MCkgXAotICAgICAgJiYgKCcpJyA9PSA0MSkgJiYgKCcq
JyA9PSA0MikgJiYgKCcrJyA9PSA0MykgJiYgKCcsJyA9PSA0NCkgXAotICAgICAgJiYgKCctJyA9
PSA0NSkgJiYgKCcuJyA9PSA0NikgJiYgKCcvJyA9PSA0NykgJiYgKCcwJyA9PSA0OCkgXAotICAg
ICAgJiYgKCcxJyA9PSA0OSkgJiYgKCcyJyA9PSA1MCkgJiYgKCczJyA9PSA1MSkgJiYgKCc0JyA9
PSA1MikgXAotICAgICAgJiYgKCc1JyA9PSA1MykgJiYgKCc2JyA9PSA1NCkgJiYgKCc3JyA9PSA1
NSkgJiYgKCc4JyA9PSA1NikgXAotICAgICAgJiYgKCc5JyA9PSA1NykgJiYgKCc6JyA9PSA1OCkg
JiYgKCc7JyA9PSA1OSkgJiYgKCc8JyA9PSA2MCkgXAotICAgICAgJiYgKCc9JyA9PSA2MSkgJiYg
KCc+JyA9PSA2MikgJiYgKCc/JyA9PSA2MykgJiYgKCdBJyA9PSA2NSkgXAotICAgICAgJiYgKCdC
JyA9PSA2NikgJiYgKCdDJyA9PSA2NykgJiYgKCdEJyA9PSA2OCkgJiYgKCdFJyA9PSA2OSkgXAot
ICAgICAgJiYgKCdGJyA9PSA3MCkgJiYgKCdHJyA9PSA3MSkgJiYgKCdIJyA9PSA3MikgJiYgKCdJ
JyA9PSA3MykgXAotICAgICAgJiYgKCdKJyA9PSA3NCkgJiYgKCdLJyA9PSA3NSkgJiYgKCdMJyA9
PSA3NikgJiYgKCdNJyA9PSA3NykgXAotICAgICAgJiYgKCdOJyA9PSA3OCkgJiYgKCdPJyA9PSA3
OSkgJiYgKCdQJyA9PSA4MCkgJiYgKCdRJyA9PSA4MSkgXAotICAgICAgJiYgKCdSJyA9PSA4Mikg
JiYgKCdTJyA9PSA4MykgJiYgKCdUJyA9PSA4NCkgJiYgKCdVJyA9PSA4NSkgXAotICAgICAgJiYg
KCdWJyA9PSA4NikgJiYgKCdXJyA9PSA4NykgJiYgKCdYJyA9PSA4OCkgJiYgKCdZJyA9PSA4OSkg
XAotICAgICAgJiYgKCdaJyA9PSA5MCkgJiYgKCdbJyA9PSA5MSkgJiYgKCdcXCcgPT0gOTIpICYm
ICgnXScgPT0gOTMpIFwKLSAgICAgICYmICgnXicgPT0gOTQpICYmICgnXycgPT0gOTUpICYmICgn
YScgPT0gOTcpICYmICgnYicgPT0gOTgpIFwKLSAgICAgICYmICgnYycgPT0gOTkpICYmICgnZCcg
PT0gMTAwKSAmJiAoJ2UnID09IDEwMSkgJiYgKCdmJyA9PSAxMDIpIFwKLSAgICAgICYmICgnZycg
PT0gMTAzKSAmJiAoJ2gnID09IDEwNCkgJiYgKCdpJyA9PSAxMDUpICYmICgnaicgPT0gMTA2KSBc
Ci0gICAgICAmJiAoJ2snID09IDEwNykgJiYgKCdsJyA9PSAxMDgpICYmICgnbScgPT0gMTA5KSAm
JiAoJ24nID09IDExMCkgXAotICAgICAgJiYgKCdvJyA9PSAxMTEpICYmICgncCcgPT0gMTEyKSAm
JiAoJ3EnID09IDExMykgJiYgKCdyJyA9PSAxMTQpIFwKLSAgICAgICYmICgncycgPT0gMTE1KSAm
JiAoJ3QnID09IDExNikgJiYgKCd1JyA9PSAxMTcpICYmICgndicgPT0gMTE4KSBcCi0gICAgICAm
JiAoJ3cnID09IDExOSkgJiYgKCd4JyA9PSAxMjApICYmICgneScgPT0gMTIxKSAmJiAoJ3onID09
IDEyMikgXAotICAgICAgJiYgKCd7JyA9PSAxMjMpICYmICgnfCcgPT0gMTI0KSAmJiAoJ30nID09
IDEyNSkgJiYgKCd+JyA9PSAxMjYpKQotLyogVGhlIGNoYXJhY3RlciBzZXQgaXMgbm90IGJhc2Vk
IG9uIElTTy02NDYuICAqLwotI2Vycm9yICJncGVyZiBnZW5lcmF0ZWQgdGFibGVzIGRvbid0IHdv
cmsgd2l0aCB0aGlzIGV4ZWN1dGlvbiBjaGFyYWN0ZXIgc2V0LiBQbGVhc2UgcmVwb3J0IGEgYnVn
IHRvIDxidWctZ251LWdwZXJmQGdudS5vcmc+LiIKLSNlbmRpZgotCi0jbGluZSAxICJzdmdhdHRy
cy5ncGVyZiIKLQotLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20g
c3ZnYXR0cnMuaW4gYnkgZG9tbWFrZWF0dHJzLCBkbyBub3QgZWRpdCAqLwotI2luY2x1ZGUgInN2
Z2F0dHJzLmgiCi0jbGluZSA1ICJzdmdhdHRycy5ncGVyZiIKLXN0cnVjdCBhdHRycyB7Ci0JaW50
IG5hbWU7Ci0JaW50IGlkOwotfTsKLWVudW0KLSAgewotICAgIFRPVEFMX0tFWVdPUkRTID0gMjQ2
LAotICAgIE1JTl9XT1JEX0xFTkdUSCA9IDEsCi0gICAgTUFYX1dPUkRfTEVOR1RIID0gMjgsCi0g
ICAgTUlOX0hBU0hfVkFMVUUgPSAxLAotICAgIE1BWF9IQVNIX1ZBTFVFID0gODE1Ci0gIH07Ci0K
LS8qIG1heGltdW0ga2V5IHJhbmdlID0gODE1LCBkdXBsaWNhdGVzID0gMCAqLwotCi0jaWZkZWYg
X19HTlVDX18KLV9faW5saW5lCi0jZWxzZQotI2lmZGVmIF9fY3BsdXNwbHVzCi1pbmxpbmUKLSNl
bmRpZgotI2VuZGlmCi1zdGF0aWMgdW5zaWduZWQgaW50Ci1oYXNoX2F0dHIgKHJlZ2lzdGVyIGNv
bnN0IGNoYXIgKnN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbikKLXsKLSAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIHNob3J0IGFzc29fdmFsdWVzW10gPQotICAgIHsKLSAgICAgIDgxNiwgODE2
LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwKLSAgICAgIDgxNiwgODE2
LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwKLSAgICAgIDgxNiwgODE2
LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwKLSAgICAgIDgxNiwgODE2
LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwKLSAgICAgIDgxNiwgODE2
LCA4MTYsIDgxNiwgODE2LCAgIDUsIDgxNiwgODE2LCA4MTYsIDI0NSwKLSAgICAgIDIzNSwgIDEw
LCAgIDUsIDgxNiwgODE2LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwKLSAgICAgIDgxNiwgODE2
LCA4MTYsIDgxNiwgODE2LCAgNzUsICAgMCwgIDY1LCAgNTAsICAgMCwKLSAgICAgICAgMCwgICAw
LCAgIDUsIDgxNiwgODE2LCA4MTYsICAzNSwgIDE1LCAgIDAsICAyMCwKLSAgICAgICAyMCwgODE2
LCAgMzAsICAgMCwgMTM1LCAgMTAsICAgNSwgICA1LCAyMTUsIDEyNSwKLSAgICAgICAgMCwgODE2
LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwgICA1LCAgNTAsICAxMCwKLSAgICAgICAgNSwgICAw
LCAgODUsICA0MCwgIDI1LCAgIDUsICAzMCwgMTMwLCAgMjUsICA3NSwKLSAgICAgICAgNSwgICAw
LCAgMjAsICAgMCwgICAwLCAgIDUsICAgMCwgMTc1LCAxMzAsICA2MCwKLSAgICAgIDMxNSwgMTE1
LCAgOTAsIDgxNiwgODE2LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwKLSAgICAgIDgxNiwgODE2
LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwKLSAgICAgIDgxNiwgODE2
LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwKLSAgICAgIDgxNiwgODE2
LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwKLSAgICAgIDgxNiwgODE2
LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwKLSAgICAgIDgxNiwgODE2
LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwKLSAgICAgIDgxNiwgODE2
LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwKLSAgICAgIDgxNiwgODE2
LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwKLSAgICAgIDgxNiwgODE2
LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwKLSAgICAgIDgxNiwgODE2
LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwKLSAgICAgIDgxNiwgODE2
LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwKLSAgICAgIDgxNiwgODE2
LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwKLSAgICAgIDgxNiwgODE2
LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwgODE2LCA4MTYsIDgxNiwKLSAgICAgIDgxNiwgODE2
LCA4MTYsIDgxNiwgODE2LCA4MTYKLSAgICB9OwotICByZWdpc3RlciBpbnQgaHZhbCA9IGxlbjsK
LQotICBzd2l0Y2ggKGh2YWwpCi0gICAgewotICAgICAgZGVmYXVsdDoKLSAgICAgICAgaHZhbCAr
PSBhc3NvX3ZhbHVlc1sodW5zaWduZWQgY2hhcilzdHJbMjddXTsKLSAgICAgIC8qRkFMTFRIUk9V
R0gqLwotICAgICAgY2FzZSAyNzoKLSAgICAgICAgaHZhbCArPSBhc3NvX3ZhbHVlc1sodW5zaWdu
ZWQgY2hhcilzdHJbMjZdXTsKLSAgICAgIC8qRkFMTFRIUk9VR0gqLwotICAgICAgY2FzZSAyNjoK
LSAgICAgICAgaHZhbCArPSBhc3NvX3ZhbHVlc1sodW5zaWduZWQgY2hhcilzdHJbMjVdXTsKLSAg
ICAgIC8qRkFMTFRIUk9VR0gqLwotICAgICAgY2FzZSAyNToKLSAgICAgICAgaHZhbCArPSBhc3Nv
X3ZhbHVlc1sodW5zaWduZWQgY2hhcilzdHJbMjRdXTsKLSAgICAgIC8qRkFMTFRIUk9VR0gqLwot
ICAgICAgY2FzZSAyNDoKLSAgICAgICAgaHZhbCArPSBhc3NvX3ZhbHVlc1sodW5zaWduZWQgY2hh
cilzdHJbMjNdXTsKLSAgICAgIC8qRkFMTFRIUk9VR0gqLwotICAgICAgY2FzZSAyMzoKLSAgICAg
ICAgaHZhbCArPSBhc3NvX3ZhbHVlc1sodW5zaWduZWQgY2hhcilzdHJbMjJdXTsKLSAgICAgIC8q
RkFMTFRIUk9VR0gqLwotICAgICAgY2FzZSAyMjoKLSAgICAgICAgaHZhbCArPSBhc3NvX3ZhbHVl
c1sodW5zaWduZWQgY2hhcilzdHJbMjFdXTsKLSAgICAgIC8qRkFMTFRIUk9VR0gqLwotICAgICAg
Y2FzZSAyMToKLSAgICAgICAgaHZhbCArPSBhc3NvX3ZhbHVlc1sodW5zaWduZWQgY2hhcilzdHJb
MjBdXTsKLSAgICAgIC8qRkFMTFRIUk9VR0gqLwotICAgICAgY2FzZSAyMDoKLSAgICAgICAgaHZh
bCArPSBhc3NvX3ZhbHVlc1sodW5zaWduZWQgY2hhcilzdHJbMTldXTsKLSAgICAgIC8qRkFMTFRI
Uk9VR0gqLwotICAgICAgY2FzZSAxOToKLSAgICAgICAgaHZhbCArPSBhc3NvX3ZhbHVlc1sodW5z
aWduZWQgY2hhcilzdHJbMThdXTsKLSAgICAgIC8qRkFMTFRIUk9VR0gqLwotICAgICAgY2FzZSAx
ODoKLSAgICAgICAgaHZhbCArPSBhc3NvX3ZhbHVlc1sodW5zaWduZWQgY2hhcilzdHJbMTddXTsK
LSAgICAgIC8qRkFMTFRIUk9VR0gqLwotICAgICAgY2FzZSAxNzoKLSAgICAgICAgaHZhbCArPSBh
c3NvX3ZhbHVlc1sodW5zaWduZWQgY2hhcilzdHJbMTZdXTsKLSAgICAgIC8qRkFMTFRIUk9VR0gq
LwotICAgICAgY2FzZSAxNjoKLSAgICAgICAgaHZhbCArPSBhc3NvX3ZhbHVlc1sodW5zaWduZWQg
Y2hhcilzdHJbMTVdXTsKLSAgICAgIC8qRkFMTFRIUk9VR0gqLwotICAgICAgY2FzZSAxNToKLSAg
ICAgICAgaHZhbCArPSBhc3NvX3ZhbHVlc1sodW5zaWduZWQgY2hhcilzdHJbMTRdXTsKLSAgICAg
IC8qRkFMTFRIUk9VR0gqLwotICAgICAgY2FzZSAxNDoKLSAgICAgICAgaHZhbCArPSBhc3NvX3Zh
bHVlc1sodW5zaWduZWQgY2hhcilzdHJbMTNdXTsKLSAgICAgIC8qRkFMTFRIUk9VR0gqLwotICAg
ICAgY2FzZSAxMzoKLSAgICAgICAgaHZhbCArPSBhc3NvX3ZhbHVlc1sodW5zaWduZWQgY2hhcilz
dHJbMTJdXTsKLSAgICAgIC8qRkFMTFRIUk9VR0gqLwotICAgICAgY2FzZSAxMjoKLSAgICAgICAg
aHZhbCArPSBhc3NvX3ZhbHVlc1sodW5zaWduZWQgY2hhcilzdHJbMTFdXTsKLSAgICAgIC8qRkFM
TFRIUk9VR0gqLwotICAgICAgY2FzZSAxMToKLSAgICAgICAgaHZhbCArPSBhc3NvX3ZhbHVlc1so
dW5zaWduZWQgY2hhcilzdHJbMTBdXTsKLSAgICAgIC8qRkFMTFRIUk9VR0gqLwotICAgICAgY2Fz
ZSAxMDoKLSAgICAgICAgaHZhbCArPSBhc3NvX3ZhbHVlc1sodW5zaWduZWQgY2hhcilzdHJbOV1d
OwotICAgICAgLypGQUxMVEhST1VHSCovCi0gICAgICBjYXNlIDk6Ci0gICAgICAgIGh2YWwgKz0g
YXNzb192YWx1ZXNbKHVuc2lnbmVkIGNoYXIpc3RyWzhdXTsKLSAgICAgIC8qRkFMTFRIUk9VR0gq
LwotICAgICAgY2FzZSA4OgotICAgICAgICBodmFsICs9IGFzc29fdmFsdWVzWyh1bnNpZ25lZCBj
aGFyKXN0cls3XV07Ci0gICAgICAvKkZBTExUSFJPVUdIKi8KLSAgICAgIGNhc2UgNzoKLSAgICAg
ICAgaHZhbCArPSBhc3NvX3ZhbHVlc1sodW5zaWduZWQgY2hhcilzdHJbNl1dOwotICAgICAgLypG
QUxMVEhST1VHSCovCi0gICAgICBjYXNlIDY6Ci0gICAgICAgIGh2YWwgKz0gYXNzb192YWx1ZXNb
KHVuc2lnbmVkIGNoYXIpc3RyWzVdXTsKLSAgICAgIC8qRkFMTFRIUk9VR0gqLwotICAgICAgY2Fz
ZSA1OgotICAgICAgICBodmFsICs9IGFzc29fdmFsdWVzWyh1bnNpZ25lZCBjaGFyKXN0cls0XV07
Ci0gICAgICAvKkZBTExUSFJPVUdIKi8KLSAgICAgIGNhc2UgNDoKLSAgICAgICAgaHZhbCArPSBh
c3NvX3ZhbHVlc1sodW5zaWduZWQgY2hhcilzdHJbM11dOwotICAgICAgLypGQUxMVEhST1VHSCov
Ci0gICAgICBjYXNlIDM6Ci0gICAgICAgIGh2YWwgKz0gYXNzb192YWx1ZXNbKHVuc2lnbmVkIGNo
YXIpc3RyWzJdXTsKLSAgICAgIC8qRkFMTFRIUk9VR0gqLwotICAgICAgY2FzZSAyOgotICAgICAg
ICBodmFsICs9IGFzc29fdmFsdWVzWyh1bnNpZ25lZCBjaGFyKXN0clsxXV07Ci0gICAgICAvKkZB
TExUSFJPVUdIKi8KLSAgICAgIGNhc2UgMToKLSAgICAgICAgaHZhbCArPSBhc3NvX3ZhbHVlc1so
dW5zaWduZWQgY2hhcilzdHJbMF1dOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gIHJldHVybiBo
dmFsOwotfQotCi1zdHJ1Y3Qgc3Bvb2xfYXR0cl90Ci0gIHsKLSAgICBjaGFyIHNwb29sX2F0dHJf
c3RyMFtzaXplb2YoInIiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjFbc2l6ZW9mKCJ0byIp
XTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMltzaXplb2YoImQiKV07Ci0gICAgY2hhciBzcG9v
bF9hdHRyX3N0cjNbc2l6ZW9mKCJvcmRlciIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyNFtz
aXplb2YoInJvdGF0ZSIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyNVtzaXplb2YoImluIild
OwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHI2W3NpemVvZigiZW5kIildOwotICAgIGNoYXIgc3Bv
b2xfYXR0cl9zdHI3W3NpemVvZigic2VlZCIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyOFtz
aXplb2YoIm9yaWVudCIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyOVtzaXplb2YoInJlc3Rh
cnQiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjEwW3NpemVvZigib25lbmQiKV07Ci0gICAg
Y2hhciBzcG9vbF9hdHRyX3N0cjExW3NpemVvZigiYXNjZW50IildOwotICAgIGNoYXIgc3Bvb2xf
YXR0cl9zdHIxMltzaXplb2YoImRlc2NlbnQiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjEz
W3NpemVvZigib3BlcmF0b3IiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjE0W3NpemVvZigi
dGl0bGUiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjE1W3NpemVvZigib3JpZW50YXRpb24i
KV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjE2W3NpemVvZigib25yZXBlYXQiKV07Ci0gICAg
Y2hhciBzcG9vbF9hdHRyX3N0cjE3W3NpemVvZigiZGlyZWN0aW9uIildOwotICAgIGNoYXIgc3Bv
b2xfYXR0cl9zdHIxOFtzaXplb2YoImNvbG9yIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIx
OVtzaXplb2YoInBvaW50cyIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMjBbc2l6ZW9mKCJz
cGFjZSIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMjFbc2l6ZW9mKCJpbnRlcmNlcHQiKV07
Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjIyW3NpemVvZigic2NhbGUiKV07Ci0gICAgY2hhciBz
cG9vbF9hdHRyX3N0cjIzW3NpemVvZigidGFyZ2V0IildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9z
dHIyNFtzaXplb2YoInBhdGgiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjI1W3NpemVvZigi
c2xvcGUiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjI2W3NpemVvZigib3JpZ2luIildOwot
ICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIyN1tzaXplb2YoImNsaXAiKV07Ci0gICAgY2hhciBzcG9v
bF9hdHRyX3N0cjI4W3NpemVvZigicGF0dGVyblVuaXRzIildOwotICAgIGNoYXIgc3Bvb2xfYXR0
cl9zdHIyOVtzaXplb2YoImJpYXMiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjMwW3NpemVv
ZigibG9jYWwiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjMxW3NpemVvZigiZWRnZU1vZGUi
KV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjMyW3NpemVvZigic3RvcC1jb2xvciIpXTsKLSAg
ICBjaGFyIHNwb29sX2F0dHJfc3RyMzNbc2l6ZW9mKCJjYWxjTW9kZSIpXTsKLSAgICBjaGFyIHNw
b29sX2F0dHJfc3RyMzRbc2l6ZW9mKCJsYW5nIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIz
NVtzaXplb2YoIm1vZGUiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjM2W3NpemVvZigibWlu
IildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIzN1tzaXplb2YoIm5hbWUiKV07Ci0gICAgY2hh
ciBzcG9vbF9hdHRyX3N0cjM4W3NpemVvZigieiIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3Ry
Mzlbc2l6ZW9mKCJzcHJlYWRNZXRob2QiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjQwW3Np
emVvZigibWVkaWEiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjQxW3NpemVvZigicmVuZGVy
aW5nLWludGVudCIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyNDJbc2l6ZW9mKCJzcGFjaW5n
IildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHI0M1tzaXplb2YoImdyYWRpZW50VW5pdHMiKV07
Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjQ0W3NpemVvZigid2lkdGgiKV07Ci0gICAgY2hhciBz
cG9vbF9hdHRyX3N0cjQ1W3NpemVvZigiaGVpZ2h0IildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9z
dHI0NltzaXplb2YoImFuaW1hdGUiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjQ3W3NpemVv
ZigiYmVnaW4iKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjQ4W3NpemVvZigid2lkdGhzIild
OwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHI0OVtzaXplb2YoInN0ZW1oIildOwotICAgIGNoYXIg
c3Bvb2xfYXR0cl9zdHI1MFtzaXplb2YoIm1ldGhvZCIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJf
c3RyNTFbc2l6ZW9mKCJvbmJlZ2luIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHI1MltzaXpl
b2YoImhyZWYiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjUzW3NpemVvZigiY29sb3ItcmVu
ZGVyaW5nIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHI1NFtzaXplb2YoInkiKV07Ci0gICAg
Y2hhciBzcG9vbF9hdHRyX3N0cjU1W3NpemVvZigicnkiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRy
X3N0cjU2W3NpemVvZigicG9pbnRzQXRaIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHI1N1tz
aXplb2YoImZpbHRlciIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyNThbc2l6ZW9mKCJkeSIp
XTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyNTlbc2l6ZW9mKCJjbGlwLXBhdGgiKV07Ci0gICAg
Y2hhciBzcG9vbF9hdHRyX3N0cjYwW3NpemVvZigiaWRlb2dyYXBoaWMiKV07Ci0gICAgY2hhciBz
cG9vbF9hdHRyX3N0cjYxW3NpemVvZigiY3kiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjYy
W3NpemVvZigiY29sb3ItaW50ZXJwb2xhdGlvbiIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3Ry
NjNbc2l6ZW9mKCJrIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHI2NFtzaXplb2YoImhhbmdp
bmciKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjY1W3NpemVvZigibGV0dGVyLXNwYWNpbmci
KV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjY2W3NpemVvZigic2hhcGUtcmVuZGVyaW5nIild
OwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHI2N1tzaXplb2YoIms0IildOwotICAgIGNoYXIgc3Bv
b2xfYXR0cl9zdHI2OFtzaXplb2YoInR5cGUiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjY5
W3NpemVvZigic3Ryb2tlIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHI3MFtzaXplb2YoImsz
IildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHI3MVtzaXplb2YoImFjY2VudC1oZWlnaHQiKV07
Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjcyW3NpemVvZigiZmlsbCIpXTsKLSAgICBjaGFyIHNw
b29sX2F0dHJfc3RyNzNbc2l6ZW9mKCJjYXAtaGVpZ2h0IildOwotICAgIGNoYXIgc3Bvb2xfYXR0
cl9zdHI3NFtzaXplb2YoImZvbnQtc3RyZXRjaCIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3Ry
NzVbc2l6ZW9mKCJjbGlwUGF0aFVuaXRzIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHI3Nltz
aXplb2YoInBhdHRlcm5Db250ZW50VW5pdHMiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjc3
W3NpemVvZigic3R5bGUiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjc4W3NpemVvZigiZmls
dGVyVW5pdHMiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjc5W3NpemVvZigidmVyc2lvbiIp
XTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyODBbc2l6ZW9mKCJhbHBoYWJldGljIildOwotICAg
IGNoYXIgc3Bvb2xfYXR0cl9zdHI4MVtzaXplb2YoImRpdmlzb3IiKV07Ci0gICAgY2hhciBzcG9v
bF9hdHRyX3N0cjgyW3NpemVvZigiZmlsdGVyUmVzIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9z
dHI4M1tzaXplb2YoIm9wYWNpdHkiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjg0W3NpemVv
ZigiYWRkaXRpdmUiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjg1W3NpemVvZigiZnJvbSIp
XTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyODZbc2l6ZW9mKCJwYXRoTGVuZ3RoIildOwotICAg
IGNoYXIgc3Bvb2xfYXR0cl9zdHI4N1tzaXplb2YoImZsb29kLWNvbG9yIildOwotICAgIGNoYXIg
c3Bvb2xfYXR0cl9zdHI4OFtzaXplb2YoImJ5IildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHI4
OVtzaXplb2YoImZvcm1hdCIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyOTBbc2l6ZW9mKCJ3
b3JkLXNwYWNpbmciKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjkxW3NpemVvZigib256b29t
IildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHI5MltzaXplb2YoInRhcmdldFkiKV07Ci0gICAg
Y2hhciBzcG9vbF9hdHRyX3N0cjkzW3NpemVvZigiZWxldmF0aW9uIildOwotICAgIGNoYXIgc3Bv
b2xfYXR0cl9zdHI5NFtzaXplb2YoIm9mZnNldCIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3Ry
OTVbc2l6ZW9mKCJkdXIiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjk2W3NpemVvZigidHJh
bnNmb3JtIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHI5N1tzaXplb2YoImRpc3BsYXkiKV07
Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjk4W3NpemVvZigiY29sb3ItcHJvZmlsZSIpXTsKLSAg
ICBjaGFyIHNwb29sX2F0dHJfc3RyOTlbc2l6ZW9mKCJwb2ludGVyLWV2ZW50cyIpXTsKLSAgICBj
aGFyIHNwb29sX2F0dHJfc3RyMTAwW3NpemVvZigia2VybmluZyIpXTsKLSAgICBjaGFyIHNwb29s
X2F0dHJfc3RyMTAxW3NpemVvZigiY3Vyc29yIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIx
MDJbc2l6ZW9mKCJzdG9wLW9wYWNpdHkiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjEwM1tz
aXplb2YoImxpZ2h0aW5nLWNvbG9yIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIxMDRbc2l6
ZW9mKCJyYWRpdXMiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjEwNVtzaXplb2YoImZ5Iild
OwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIxMDZbc2l6ZW9mKCJmb250LXNpemUiKV07Ci0gICAg
Y2hhciBzcG9vbF9hdHRyX3N0cjEwN1tzaXplb2YoImltYWdlLXJlbmRlcmluZyIpXTsKLSAgICBj
aGFyIHNwb29sX2F0dHJfc3RyMTA4W3NpemVvZigiYmFzZVByb2ZpbGUiKV07Ci0gICAgY2hhciBz
cG9vbF9hdHRyX3N0cjEwOVtzaXplb2YoInVuaWNvZGUiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRy
X3N0cjExMFtzaXplb2YoInJlc3VsdCIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMTExW3Np
emVvZigid3JpdGluZy1tb2RlIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIxMTJbc2l6ZW9m
KCJyZWZZIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIxMTNbc2l6ZW9mKCJzdGVtdiIpXTsK
LSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMTE0W3NpemVvZigic3RhcnRPZmZzZXQiKV07Ci0gICAg
Y2hhciBzcG9vbF9hdHRyX3N0cjExNVtzaXplb2YoImRvbWluYW50LWJhc2VsaW5lIildOwotICAg
IGNoYXIgc3Bvb2xfYXR0cl9zdHIxMTZbc2l6ZW9mKCJtYXNrIildOwotICAgIGNoYXIgc3Bvb2xf
YXR0cl9zdHIxMTdbc2l6ZW9mKCJzdGREZXZpYXRpb24iKV07Ci0gICAgY2hhciBzcG9vbF9hdHRy
X3N0cjExOFtzaXplb2YoInN0cm9rZS1saW5lY2FwIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9z
dHIxMTlbc2l6ZW9mKCJzdGl0Y2hUaWxlcyIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMTIw
W3NpemVvZigib3ZlcmxpbmUtcG9zaXRpb24iKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjEy
MVtzaXplb2YoInN0cm9rZS1saW5lam9pbiIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMTIy
W3NpemVvZigiYmFzZWxpbmUtc2hpZnQiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjEyM1tz
aXplb2YoIm1hcmtlci1lbmQiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjEyNFtzaXplb2Yo
ImZvbnQtd2VpZ2h0IildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIxMjVbc2l6ZW9mKCJtYXJr
ZXItc3RhcnQiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjEyNltzaXplb2YoIm1hdGhlbWF0
aWNhbCIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMTI3W3NpemVvZigicG9pbnRzQXRZIild
OwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIxMjhbc2l6ZW9mKCJtYXJrZXJVbml0cyIpXTsKLSAg
ICBjaGFyIHNwb29sX2F0dHJfc3RyMTI5W3NpemVvZigic3Ryb2tlLXdpZHRoIildOwotICAgIGNo
YXIgc3Bvb2xfYXR0cl9zdHIxMzBbc2l6ZW9mKCJpbjIiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRy
X3N0cjEzMVtzaXplb2YoIm1hc2tVbml0cyIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMTMy
W3NpemVvZigiZm9udC1zdHlsZSIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMTMzW3NpemVv
ZigiYXJhYmljLWZvcm0iKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjEzNFtzaXplb2YoImZl
VGlsZSIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMTM1W3NpemVvZigiZm9udC12YXJpYW50
IildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIxMzZbc2l6ZW9mKCJyZXBlYXREdXIiKV07Ci0g
ICAgY2hhciBzcG9vbF9hdHRyX3N0cjEzN1tzaXplb2YoIm1hcmtlcldpZHRoIildOwotICAgIGNo
YXIgc3Bvb2xfYXR0cl9zdHIxMzhbc2l6ZW9mKCJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMi
KV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjEzOVtzaXplb2YoInYtaWRlb2dyYXBoaWMiKV07
Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjE0MFtzaXplb2YoImZlQ29tcG9zaXRlIildOwotICAg
IGNoYXIgc3Bvb2xfYXR0cl9zdHIxNDFbc2l6ZW9mKCJ0YXJnZXRYIildOwotICAgIGNoYXIgc3Bv
b2xfYXR0cl9zdHIxNDJbc2l6ZW9mKCJ1bmljb2RlLXJhbmdlIildOwotICAgIGNoYXIgc3Bvb2xf
YXR0cl9zdHIxNDNbc2l6ZW9mKCJ2LWhhbmdpbmciKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0
cjE0NFtzaXplb2YoImNsaXAtcnVsZSIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMTQ1W3Np
emVvZigiZzIiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjE0NltzaXplb2YoImFsaWdubWVu
dC1iYXNlbGluZSIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMTQ3W3NpemVvZigicHJpbWl0
aXZlVW5pdHMiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjE0OFtzaXplb2YoInJlcGVhdENv
dW50IildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIxNDlbc2l6ZW9mKCJ1bmljb2RlLWJpZGki
KV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjE1MFtzaXplb2YoInVuZGVybGluZS1wb3NpdGlv
biIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMTUxW3NpemVvZigiZzEiKV07Ci0gICAgY2hh
ciBzcG9vbF9hdHRyX3N0cjE1MltzaXplb2YoImZsb29kLW9wYWNpdHkiKV07Ci0gICAgY2hhciBz
cG9vbF9hdHRyX3N0cjE1M1tzaXplb2YoImtleVBvaW50cyIpXTsKLSAgICBjaGFyIHNwb29sX2F0
dHJfc3RyMTU0W3NpemVvZigiem9vbUFuZFBhbiIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3Ry
MTU1W3NpemVvZigidi1hbHBoYWJldGljIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIxNTZb
c2l6ZW9mKCJwYW5vc2UtMSIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMTU3W3NpemVvZigi
eUNoYW5uZWxTZWxlY3RvciIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMTU4W3NpemVvZigi
bWFya2VySGVpZ2h0IildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIxNTlbc2l6ZW9mKCJrZXJu
ZWxVbml0TGVuZ3RoIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIxNjBbc2l6ZW9mKCJyZWZY
IildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIxNjFbc2l6ZW9mKCJ0YWJsZVZhbHVlcyIpXTsK
LSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMTYyW3NpemVvZigidW5pdHMtcGVyLWVtIildOwotICAg
IGNoYXIgc3Bvb2xfYXR0cl9zdHIxNjNbc2l6ZW9mKCJvdmVyZmxvdyIpXTsKLSAgICBjaGFyIHNw
b29sX2F0dHJfc3RyMTY0W3NpemVvZigic3Ryb2tlLW9wYWNpdHkiKV07Ci0gICAgY2hhciBzcG9v
bF9hdHRyX3N0cjE2NVtzaXplb2YoIm1hcmtlci1taWQiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRy
X3N0cjE2NltzaXplb2YoImZpbGwtb3BhY2l0eSIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3Ry
MTY3W3NpemVvZigiaG9yaXotb3JpZ2luLXkiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjE2
OFtzaXplb2YoImtleVNwbGluZXMiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjE2OVtzaXpl
b2YoIngiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjE3MFtzaXplb2YoInJ4IildOwotICAg
IGNoYXIgc3Bvb2xfYXR0cl9zdHIxNzFbc2l6ZW9mKCJwcmVzZXJ2ZUFscGhhIildOwotICAgIGNo
YXIgc3Bvb2xfYXR0cl9zdHIxNzJbc2l6ZW9mKCJhbXBsaXR1ZGUiKV07Ci0gICAgY2hhciBzcG9v
bF9hdHRyX3N0cjE3M1tzaXplb2YoInN0cm9rZS1kYXNoYXJyYXkiKV07Ci0gICAgY2hhciBzcG9v
bF9hdHRyX3N0cjE3NFtzaXplb2YoImR4IildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIxNzVb
c2l6ZW9mKCJ2ZXJ0LW9yaWdpbi15IildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIxNzZbc2l6
ZW9mKCJwcmVzZXJ2ZUFzcGVjdFJhdGlvIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIxNzdb
c2l6ZW9mKCJnbHlwaC1uYW1lIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIxNzhbc2l6ZW9m
KCJjeCIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMTc5W3NpemVvZigiYXR0cmlidXRlTmFt
ZSIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMTgwW3NpemVvZigibWFza0NvbnRlbnRVbml0
cyIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMTgxW3NpemVvZigic3VyZmFjZVNjYWxlIild
OwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIxODJbc2l6ZW9mKCJwb2ludHNBdFgiKV07Ci0gICAg
Y2hhciBzcG9vbF9hdHRyX3N0cjE4M1tzaXplb2YoImZlTW9ycGhvbG9neSIpXTsKLSAgICBjaGFy
IHNwb29sX2F0dHJfc3RyMTg0W3NpemVvZigic3BlY3VsYXJDb25zdGFudCIpXTsKLSAgICBjaGFy
IHNwb29sX2F0dHJfc3RyMTg1W3NpemVvZigiY29udGVudFNjcmlwdFR5cGUiKV07Ci0gICAgY2hh
ciBzcG9vbF9hdHRyX3N0cjE4NltzaXplb2YoInZhbHVlcyIpXTsKLSAgICBjaGFyIHNwb29sX2F0
dHJfc3RyMTg3W3NpemVvZigic3Ryb2tlLW1pdGVybGltaXQiKV07Ci0gICAgY2hhciBzcG9vbF9h
dHRyX3N0cjE4OFtzaXplb2YoImdseXBoUmVmIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIx
ODlbc2l6ZW9mKCJ5MiIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMTkwW3NpemVvZigiZXhw
b25lbnQiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjE5MVtzaXplb2YoImZpbGwtcnVsZSIp
XTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMTkyW3NpemVvZigidmlzaWJpbGl0eSIpXTsKLSAg
ICBjaGFyIHNwb29sX2F0dHJfc3RyMTkzW3NpemVvZigicGF0dGVyblRyYW5zZm9ybSIpXTsKLSAg
ICBjaGFyIHNwb29sX2F0dHJfc3RyMTk0W3NpemVvZigieTEiKV07Ci0gICAgY2hhciBzcG9vbF9h
dHRyX3N0cjE5NVtzaXplb2YoInRleHQtZGVjb3JhdGlvbiIpXTsKLSAgICBjaGFyIHNwb29sX2F0
dHJfc3RyMTk2W3NpemVvZigiazIiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjE5N1tzaXpl
b2YoInN0cm9rZS1kYXNob2Zmc2V0IildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIxOThbc2l6
ZW9mKCJvdmVybGluZS10aGlja25lc3MiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjE5OVtz
aXplb2YoInRleHQtYW5jaG9yIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIyMDBbc2l6ZW9m
KCJrMSIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMjAxW3NpemVvZigiYmFzZUZyZXF1ZW5j
eSIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMjAyW3NpemVvZigidi1tYXRoZW1hdGljYWwi
KV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjIwM1tzaXplb2YoImF6aW11dGgiKV07Ci0gICAg
Y2hhciBzcG9vbF9hdHRyX3N0cjIwNFtzaXplb2YoInZpZXdUYXJnZXQiKV07Ci0gICAgY2hhciBz
cG9vbF9hdHRyX3N0cjIwNVtzaXplb2YoInJlcXVpcmVkRmVhdHVyZXMiKV07Ci0gICAgY2hhciBz
cG9vbF9hdHRyX3N0cjIwNltzaXplb2YoImdyYWRpZW50VHJhbnNmb3JtIildOwotICAgIGNoYXIg
c3Bvb2xfYXR0cl9zdHIyMDdbc2l6ZW9mKCJsaW1pdGluZ0NvbmVBbmdsZSIpXTsKLSAgICBjaGFy
IHNwb29sX2F0dHJfc3RyMjA4W3NpemVvZigidGV4dC1yZW5kZXJpbmciKV07Ci0gICAgY2hhciBz
cG9vbF9hdHRyX3N0cjIwOVtzaXplb2YoImxlbmd0aEFkanVzdCIpXTsKLSAgICBjaGFyIHNwb29s
X2F0dHJfc3RyMjEwW3NpemVvZigibWF4IildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIyMTFb
c2l6ZW9mKCJmeCIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMjEyW3NpemVvZigidmVydC1h
ZHYteSIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMjEzW3NpemVvZigidTIiKV07Ci0gICAg
Y2hhciBzcG9vbF9hdHRyX3N0cjIxNFtzaXplb2YoImZvbnQtZmFtaWx5IildOwotICAgIGNoYXIg
c3Bvb2xfYXR0cl9zdHIyMTVbc2l6ZW9mKCJiYm94IildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9z
dHIyMTZbc2l6ZW9mKCJ1MSIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMjE3W3NpemVvZigi
eC1oZWlnaHQiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjIxOFtzaXplb2YoInVuZGVybGlu
ZS10aGlja25lc3MiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjIxOVtzaXplb2YoInRleHRM
ZW5ndGgiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjIyMFtzaXplb2YoIm51bU9jdGF2ZXMi
KV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjIyMVtzaXplb2YoImZvbnQtc2l6ZS1hZGp1c3Qi
KV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjIyMltzaXplb2YoImdseXBoLW9yaWVudGF0aW9u
LWhvcml6b250YWwiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjIyM1tzaXplb2YoImNvbnRl
bnRTdHlsZVR5cGUiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjIyNFtzaXplb2YoImRpZmZ1
c2VDb25zdGFudCIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMjI1W3NpemVvZigiZ2x5cGgt
b3JpZW50YXRpb24tdmVydGljYWwiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjIyNltzaXpl
b2YoInN0cmlrZXRocm91Z2gtcG9zaXRpb24iKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjIy
N1tzaXplb2YoImtleVRpbWVzIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIyMjhbc2l6ZW9m
KCJhY2N1bXVsYXRlIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIyMjlbc2l6ZW9mKCJ4Q2hh
bm5lbFNlbGVjdG9yIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIyMzBbc2l6ZW9mKCJmZUdh
dXNzaWFuQmx1ciIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMjMxW3NpemVvZigia2VybmVs
TWF0cml4IildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIyMzJbc2l6ZW9mKCJob3Jpei1vcmln
aW4teCIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMjMzW3NpemVvZigidmlld0JveCIpXTsK
LSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMjM0W3NpemVvZigiYXR0cmlidXRlVHlwZSIpXTsKLSAg
ICBjaGFyIHNwb29sX2F0dHJfc3RyMjM1W3NpemVvZigic3lzdGVtTGFuZ3VhZ2UiKV07Ci0gICAg
Y2hhciBzcG9vbF9hdHRyX3N0cjIzNltzaXplb2YoInZlcnQtb3JpZ2luLXgiKV07Ci0gICAgY2hh
ciBzcG9vbF9hdHRyX3N0cjIzN1tzaXplb2YoImVuYWJsZS1iYWNrZ3JvdW5kIildOwotICAgIGNo
YXIgc3Bvb2xfYXR0cl9zdHIyMzhbc2l6ZW9mKCJmZUNvbG9yTWF0cml4IildOwotICAgIGNoYXIg
c3Bvb2xfYXR0cl9zdHIyMzlbc2l6ZW9mKCJyZXF1aXJlZEV4dGVuc2lvbnMiKV07Ci0gICAgY2hh
ciBzcG9vbF9hdHRyX3N0cjI0MFtzaXplb2YoIngyIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9z
dHIyNDFbc2l6ZW9mKCJ4MSIpXTsKLSAgICBjaGFyIHNwb29sX2F0dHJfc3RyMjQyW3NpemVvZigi
aG9yaXotYWR2LXgiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjI0M1tzaXplb2YoInNwZWN1
bGFyRXhwb25lbnQiKV07Ci0gICAgY2hhciBzcG9vbF9hdHRyX3N0cjI0NFtzaXplb2YoInN0cmlr
ZXRocm91Z2gtdGhpY2tuZXNzIildOwotICAgIGNoYXIgc3Bvb2xfYXR0cl9zdHIyNDVbc2l6ZW9m
KCJleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkIildOwotICB9Owotc3RhdGljIGNvbnN0IHN0cnVj
dCBzcG9vbF9hdHRyX3Qgc3Bvb2xfYXR0cl9jb250ZW50cyA9Ci0gIHsKLSAgICAiciIsCi0gICAg
InRvIiwKLSAgICAiZCIsCi0gICAgIm9yZGVyIiwKLSAgICAicm90YXRlIiwKLSAgICAiaW4iLAot
ICAgICJlbmQiLAotICAgICJzZWVkIiwKLSAgICAib3JpZW50IiwKLSAgICAicmVzdGFydCIsCi0g
ICAgIm9uZW5kIiwKLSAgICAiYXNjZW50IiwKLSAgICAiZGVzY2VudCIsCi0gICAgIm9wZXJhdG9y
IiwKLSAgICAidGl0bGUiLAotICAgICJvcmllbnRhdGlvbiIsCi0gICAgIm9ucmVwZWF0IiwKLSAg
ICAiZGlyZWN0aW9uIiwKLSAgICAiY29sb3IiLAotICAgICJwb2ludHMiLAotICAgICJzcGFjZSIs
Ci0gICAgImludGVyY2VwdCIsCi0gICAgInNjYWxlIiwKLSAgICAidGFyZ2V0IiwKLSAgICAicGF0
aCIsCi0gICAgInNsb3BlIiwKLSAgICAib3JpZ2luIiwKLSAgICAiY2xpcCIsCi0gICAgInBhdHRl
cm5Vbml0cyIsCi0gICAgImJpYXMiLAotICAgICJsb2NhbCIsCi0gICAgImVkZ2VNb2RlIiwKLSAg
ICAic3RvcC1jb2xvciIsCi0gICAgImNhbGNNb2RlIiwKLSAgICAibGFuZyIsCi0gICAgIm1vZGUi
LAotICAgICJtaW4iLAotICAgICJuYW1lIiwKLSAgICAieiIsCi0gICAgInNwcmVhZE1ldGhvZCIs
Ci0gICAgIm1lZGlhIiwKLSAgICAicmVuZGVyaW5nLWludGVudCIsCi0gICAgInNwYWNpbmciLAot
ICAgICJncmFkaWVudFVuaXRzIiwKLSAgICAid2lkdGgiLAotICAgICJoZWlnaHQiLAotICAgICJh
bmltYXRlIiwKLSAgICAiYmVnaW4iLAotICAgICJ3aWR0aHMiLAotICAgICJzdGVtaCIsCi0gICAg
Im1ldGhvZCIsCi0gICAgIm9uYmVnaW4iLAotICAgICJocmVmIiwKLSAgICAiY29sb3ItcmVuZGVy
aW5nIiwKLSAgICAieSIsCi0gICAgInJ5IiwKLSAgICAicG9pbnRzQXRaIiwKLSAgICAiZmlsdGVy
IiwKLSAgICAiZHkiLAotICAgICJjbGlwLXBhdGgiLAotICAgICJpZGVvZ3JhcGhpYyIsCi0gICAg
ImN5IiwKLSAgICAiY29sb3ItaW50ZXJwb2xhdGlvbiIsCi0gICAgImsiLAotICAgICJoYW5naW5n
IiwKLSAgICAibGV0dGVyLXNwYWNpbmciLAotICAgICJzaGFwZS1yZW5kZXJpbmciLAotICAgICJr
NCIsCi0gICAgInR5cGUiLAotICAgICJzdHJva2UiLAotICAgICJrMyIsCi0gICAgImFjY2VudC1o
ZWlnaHQiLAotICAgICJmaWxsIiwKLSAgICAiY2FwLWhlaWdodCIsCi0gICAgImZvbnQtc3RyZXRj
aCIsCi0gICAgImNsaXBQYXRoVW5pdHMiLAotICAgICJwYXR0ZXJuQ29udGVudFVuaXRzIiwKLSAg
ICAic3R5bGUiLAotICAgICJmaWx0ZXJVbml0cyIsCi0gICAgInZlcnNpb24iLAotICAgICJhbHBo
YWJldGljIiwKLSAgICAiZGl2aXNvciIsCi0gICAgImZpbHRlclJlcyIsCi0gICAgIm9wYWNpdHki
LAotICAgICJhZGRpdGl2ZSIsCi0gICAgImZyb20iLAotICAgICJwYXRoTGVuZ3RoIiwKLSAgICAi
Zmxvb2QtY29sb3IiLAotICAgICJieSIsCi0gICAgImZvcm1hdCIsCi0gICAgIndvcmQtc3BhY2lu
ZyIsCi0gICAgIm9uem9vbSIsCi0gICAgInRhcmdldFkiLAotICAgICJlbGV2YXRpb24iLAotICAg
ICJvZmZzZXQiLAotICAgICJkdXIiLAotICAgICJ0cmFuc2Zvcm0iLAotICAgICJkaXNwbGF5IiwK
LSAgICAiY29sb3ItcHJvZmlsZSIsCi0gICAgInBvaW50ZXItZXZlbnRzIiwKLSAgICAia2Vybmlu
ZyIsCi0gICAgImN1cnNvciIsCi0gICAgInN0b3Atb3BhY2l0eSIsCi0gICAgImxpZ2h0aW5nLWNv
bG9yIiwKLSAgICAicmFkaXVzIiwKLSAgICAiZnkiLAotICAgICJmb250LXNpemUiLAotICAgICJp
bWFnZS1yZW5kZXJpbmciLAotICAgICJiYXNlUHJvZmlsZSIsCi0gICAgInVuaWNvZGUiLAotICAg
ICJyZXN1bHQiLAotICAgICJ3cml0aW5nLW1vZGUiLAotICAgICJyZWZZIiwKLSAgICAic3RlbXYi
LAotICAgICJzdGFydE9mZnNldCIsCi0gICAgImRvbWluYW50LWJhc2VsaW5lIiwKLSAgICAibWFz
ayIsCi0gICAgInN0ZERldmlhdGlvbiIsCi0gICAgInN0cm9rZS1saW5lY2FwIiwKLSAgICAic3Rp
dGNoVGlsZXMiLAotICAgICJvdmVybGluZS1wb3NpdGlvbiIsCi0gICAgInN0cm9rZS1saW5lam9p
biIsCi0gICAgImJhc2VsaW5lLXNoaWZ0IiwKLSAgICAibWFya2VyLWVuZCIsCi0gICAgImZvbnQt
d2VpZ2h0IiwKLSAgICAibWFya2VyLXN0YXJ0IiwKLSAgICAibWF0aGVtYXRpY2FsIiwKLSAgICAi
cG9pbnRzQXRZIiwKLSAgICAibWFya2VyVW5pdHMiLAotICAgICJzdHJva2Utd2lkdGgiLAotICAg
ICJpbjIiLAotICAgICJtYXNrVW5pdHMiLAotICAgICJmb250LXN0eWxlIiwKLSAgICAiYXJhYmlj
LWZvcm0iLAotICAgICJmZVRpbGUiLAotICAgICJmb250LXZhcmlhbnQiLAotICAgICJyZXBlYXRE
dXIiLAotICAgICJtYXJrZXJXaWR0aCIsCi0gICAgImNvbG9yLWludGVycG9sYXRpb24tZmlsdGVy
cyIsCi0gICAgInYtaWRlb2dyYXBoaWMiLAotICAgICJmZUNvbXBvc2l0ZSIsCi0gICAgInRhcmdl
dFgiLAotICAgICJ1bmljb2RlLXJhbmdlIiwKLSAgICAidi1oYW5naW5nIiwKLSAgICAiY2xpcC1y
dWxlIiwKLSAgICAiZzIiLAotICAgICJhbGlnbm1lbnQtYmFzZWxpbmUiLAotICAgICJwcmltaXRp
dmVVbml0cyIsCi0gICAgInJlcGVhdENvdW50IiwKLSAgICAidW5pY29kZS1iaWRpIiwKLSAgICAi
dW5kZXJsaW5lLXBvc2l0aW9uIiwKLSAgICAiZzEiLAotICAgICJmbG9vZC1vcGFjaXR5IiwKLSAg
ICAia2V5UG9pbnRzIiwKLSAgICAiem9vbUFuZFBhbiIsCi0gICAgInYtYWxwaGFiZXRpYyIsCi0g
ICAgInBhbm9zZS0xIiwKLSAgICAieUNoYW5uZWxTZWxlY3RvciIsCi0gICAgIm1hcmtlckhlaWdo
dCIsCi0gICAgImtlcm5lbFVuaXRMZW5ndGgiLAotICAgICJyZWZYIiwKLSAgICAidGFibGVWYWx1
ZXMiLAotICAgICJ1bml0cy1wZXItZW0iLAotICAgICJvdmVyZmxvdyIsCi0gICAgInN0cm9rZS1v
cGFjaXR5IiwKLSAgICAibWFya2VyLW1pZCIsCi0gICAgImZpbGwtb3BhY2l0eSIsCi0gICAgImhv
cml6LW9yaWdpbi15IiwKLSAgICAia2V5U3BsaW5lcyIsCi0gICAgIngiLAotICAgICJyeCIsCi0g
ICAgInByZXNlcnZlQWxwaGEiLAotICAgICJhbXBsaXR1ZGUiLAotICAgICJzdHJva2UtZGFzaGFy
cmF5IiwKLSAgICAiZHgiLAotICAgICJ2ZXJ0LW9yaWdpbi15IiwKLSAgICAicHJlc2VydmVBc3Bl
Y3RSYXRpbyIsCi0gICAgImdseXBoLW5hbWUiLAotICAgICJjeCIsCi0gICAgImF0dHJpYnV0ZU5h
bWUiLAotICAgICJtYXNrQ29udGVudFVuaXRzIiwKLSAgICAic3VyZmFjZVNjYWxlIiwKLSAgICAi
cG9pbnRzQXRYIiwKLSAgICAiZmVNb3JwaG9sb2d5IiwKLSAgICAic3BlY3VsYXJDb25zdGFudCIs
Ci0gICAgImNvbnRlbnRTY3JpcHRUeXBlIiwKLSAgICAidmFsdWVzIiwKLSAgICAic3Ryb2tlLW1p
dGVybGltaXQiLAotICAgICJnbHlwaFJlZiIsCi0gICAgInkyIiwKLSAgICAiZXhwb25lbnQiLAot
ICAgICJmaWxsLXJ1bGUiLAotICAgICJ2aXNpYmlsaXR5IiwKLSAgICAicGF0dGVyblRyYW5zZm9y
bSIsCi0gICAgInkxIiwKLSAgICAidGV4dC1kZWNvcmF0aW9uIiwKLSAgICAiazIiLAotICAgICJz
dHJva2UtZGFzaG9mZnNldCIsCi0gICAgIm92ZXJsaW5lLXRoaWNrbmVzcyIsCi0gICAgInRleHQt
YW5jaG9yIiwKLSAgICAiazEiLAotICAgICJiYXNlRnJlcXVlbmN5IiwKLSAgICAidi1tYXRoZW1h
dGljYWwiLAotICAgICJhemltdXRoIiwKLSAgICAidmlld1RhcmdldCIsCi0gICAgInJlcXVpcmVk
RmVhdHVyZXMiLAotICAgICJncmFkaWVudFRyYW5zZm9ybSIsCi0gICAgImxpbWl0aW5nQ29uZUFu
Z2xlIiwKLSAgICAidGV4dC1yZW5kZXJpbmciLAotICAgICJsZW5ndGhBZGp1c3QiLAotICAgICJt
YXgiLAotICAgICJmeCIsCi0gICAgInZlcnQtYWR2LXkiLAotICAgICJ1MiIsCi0gICAgImZvbnQt
ZmFtaWx5IiwKLSAgICAiYmJveCIsCi0gICAgInUxIiwKLSAgICAieC1oZWlnaHQiLAotICAgICJ1
bmRlcmxpbmUtdGhpY2tuZXNzIiwKLSAgICAidGV4dExlbmd0aCIsCi0gICAgIm51bU9jdGF2ZXMi
LAotICAgICJmb250LXNpemUtYWRqdXN0IiwKLSAgICAiZ2x5cGgtb3JpZW50YXRpb24taG9yaXpv
bnRhbCIsCi0gICAgImNvbnRlbnRTdHlsZVR5cGUiLAotICAgICJkaWZmdXNlQ29uc3RhbnQiLAot
ICAgICJnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCIsCi0gICAgInN0cmlrZXRocm91Z2gtcG9z
aXRpb24iLAotICAgICJrZXlUaW1lcyIsCi0gICAgImFjY3VtdWxhdGUiLAotICAgICJ4Q2hhbm5l
bFNlbGVjdG9yIiwKLSAgICAiZmVHYXVzc2lhbkJsdXIiLAotICAgICJrZXJuZWxNYXRyaXgiLAot
ICAgICJob3Jpei1vcmlnaW4teCIsCi0gICAgInZpZXdCb3giLAotICAgICJhdHRyaWJ1dGVUeXBl
IiwKLSAgICAic3lzdGVtTGFuZ3VhZ2UiLAotICAgICJ2ZXJ0LW9yaWdpbi14IiwKLSAgICAiZW5h
YmxlLWJhY2tncm91bmQiLAotICAgICJmZUNvbG9yTWF0cml4IiwKLSAgICAicmVxdWlyZWRFeHRl
bnNpb25zIiwKLSAgICAieDIiLAotICAgICJ4MSIsCi0gICAgImhvcml6LWFkdi14IiwKLSAgICAi
c3BlY3VsYXJFeHBvbmVudCIsCi0gICAgInN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIiwKLSAgICAi
ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCIKLSAgfTsKLSNkZWZpbmUgc3Bvb2xfYXR0ciAoKGNv
bnN0IGNoYXIgKikgJnNwb29sX2F0dHJfY29udGVudHMpCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qg
YXR0cnMgd29yZGxpc3RfYXR0cltdID0KLSAgewotI2xpbmUgMTY2ICJzdmdhdHRycy5ncGVyZiIK
LSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJf
c3RyMCwgQVRUUl9SfSwKLSNsaW5lIDIxOCAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxv
bmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjEsIEFUVFJfVE99
LAotI2xpbmUgNDUgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBz
cG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIyLCBBVFRSX0R9LAotI2xpbmUgMTQ1ICJz
dmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICop
MCktPnNwb29sX2F0dHJfc3RyMywgQVRUUl9PUkRFUn0sCi0jbGluZSAxNzcgInN2Z2F0dHJzLmdw
ZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xf
YXR0cl9zdHI0LCBBVFRSX1JPVEFURX0sCi0jbGluZSAxMDEgInN2Z2F0dHJzLmdwZXJmIgotICAg
IHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHI1
LCBBVFRSX0lOfSwKLSNsaW5lIDU4ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykm
KChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyNiwgQVRUUl9FTkR9LAot
I2xpbmUgMTgxICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bv
b2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyNywgQVRUUl9TRUVEfSwKLSNsaW5lIDE0NiAi
c3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAq
KTApLT5zcG9vbF9hdHRyX3N0cjgsIEFUVFJfT1JJRU5UfSwKLSNsaW5lIDE3NSAic3ZnYXR0cnMu
Z3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9v
bF9hdHRyX3N0cjksIEFUVFJfUkVTVEFSVH0sCi0jbGluZSAxNDAgInN2Z2F0dHJzLmdwZXJmIgot
ICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9z
dHIxMCwgQVRUUl9PTkVORH0sCi0jbGluZSAxOCAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQp
KGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjExLCBBVFRS
X0FTQ0VOVH0sCi0jbGluZSA0NiAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigo
c3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjEyLCBBVFRSX0RFU0NFTlR9
LAotI2xpbmUgMTQ0ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qg
c3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMTMsIEFUVFJfT1BFUkFUT1J9LAotI2xp
bmUgMjE3ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xf
YXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMTQsIEFUVFJfVElUTEV9LAotI2xpbmUgMTQ3ICJz
dmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICop
MCktPnNwb29sX2F0dHJfc3RyMTUsIEFUVFJfT1JJRU5UQVRJT059LAotI2xpbmUgMTQxICJzdmdh
dHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCkt
PnNwb29sX2F0dHJfc3RyMTYsIEFUVFJfT05SRVBFQVR9LAotI2xpbmUgNDggInN2Z2F0dHJzLmdw
ZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xf
YXR0cl9zdHIxNywgQVRUUl9ESVJFQ1RJT059LAotI2xpbmUgMzUgInN2Z2F0dHJzLmdwZXJmIgot
ICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9z
dHIxOCwgQVRUUl9DT0xPUn0sCi0jbGluZSAxNTkgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50
KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIxOSwgQVRU
Ul9QT0lOVFN9LAotI2xpbmUgMTg0ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykm
KChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMjAsIEFUVFJfU1BBQ0V9
LAotI2xpbmUgMTAzICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qg
c3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMjEsIEFUVFJfSU5URVJDRVBUfSwKLSNs
aW5lIDE4MCAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29s
X2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjIyLCBBVFRSX1NDQUxFfSwKLSNsaW5lIDIxMCAi
c3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAq
KTApLT5zcG9vbF9hdHRyX3N0cjIzLCBBVFRSX1RBUkdFVH0sCi0jbGluZSAxNTMgInN2Z2F0dHJz
LmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bv
b2xfYXR0cl9zdHIyNCwgQVRUUl9QQVRIfSwKLSNsaW5lIDE4MyAic3ZnYXR0cnMuZ3BlcmYiCi0g
ICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0
cjI1LCBBVFRSX1NMT1BFfSwKLSNsaW5lIDE0OCAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQp
KGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjI2LCBBVFRS
X09SSUdJTn0sCi0jbGluZSAzMSAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigo
c3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjI3LCBBVFRSX0NMSVB9LAot
I2xpbmUgMTU3ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bv
b2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMjgsIEFUVFJfUEFUVEVSTlVOSVRTfSwKLSNs
aW5lIDI3ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xf
YXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMjksIEFUVFJfQklBU30sCi0jbGluZSAxMjAgInN2
Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikw
KS0+c3Bvb2xfYXR0cl9zdHIzMCwgQVRUUl9MT0NBTH0sCi0jbGluZSA1NSAic3ZnYXR0cnMuZ3Bl
cmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9h
dHRyX3N0cjMxLCBBVFRSX0VER0VNT0RFfSwKLSNsaW5lIDE5NCAic3ZnYXR0cnMuZ3BlcmYiCi0g
ICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0
cjMyLCBBVFRSX1NUT1BfQ09MT1J9LAotI2xpbmUgMjkgInN2Z2F0dHJzLmdwZXJmIgotICAgIHso
aW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIzMywg
QVRUUl9DQUxDTU9ERX0sCi0jbGluZSAxMTUgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShs
b25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIzNCwgQVRUUl9M
QU5HfSwKLSNsaW5lIDEzNSAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3Ry
dWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjM1LCBBVFRSX01PREV9LAotI2xp
bmUgMTM0ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xf
YXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMzYsIEFUVFJfTUlOfSwKLSNsaW5lIDEzNiAic3Zn
YXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTAp
LT5zcG9vbF9hdHRyX3N0cjM3LCBBVFRSX05BTUV9LAotI2xpbmUgMjU0ICJzdmdhdHRycy5ncGVy
ZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0
dHJfc3RyMzgsIEFUVFJfWn0sCi0jbGluZSAxODggInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50
KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIzOSwgQVRU
Ul9TUFJFQURNRVRIT0R9LAotI2xpbmUgMTMyICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCko
bG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyNDAsIEFUVFJf
TUVESUF9LAotI2xpbmUgMTcwICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChz
dHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyNDEsIEFUVFJfUkVOREVSSU5H
X0lOVEVOVH0sCi0jbGluZSAxODUgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYo
KHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHI0MiwgQVRUUl9TUEFDSU5H
fSwKLSNsaW5lIDkyICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qg
c3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyNDMsIEFUVFJfR1JBRElFTlRVTklUU30s
Ci0jbGluZSAyNDEgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBz
cG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHI0NCwgQVRUUl9XSURUSH0sCi0jbGluZSA5
NCAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJf
dCAqKTApLT5zcG9vbF9hdHRyX3N0cjQ1LCBBVFRSX0hFSUdIVH0sCi0jbGluZSAxNiAic3ZnYXR0
cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5z
cG9vbF9hdHRyX3N0cjQ2LCBBVFRSX0FOSU1BVEV9LAotI2xpbmUgMjYgInN2Z2F0dHJzLmdwZXJm
IgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0
cl9zdHI0NywgQVRUUl9CRUdJTn0sCi0jbGluZSAyNDIgInN2Z2F0dHJzLmdwZXJmIgotICAgIHso
aW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHI0OCwg
QVRUUl9XSURUSFN9LAotI2xpbmUgMTkxICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9u
ZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyNDksIEFUVFJfU1RF
TUh9LAotI2xpbmUgMTMzICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1
Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyNTAsIEFUVFJfTUVUSE9EfSwKLSNs
aW5lIDEzOSAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29s
X2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjUxLCBBVFRSX09OQkVHSU59LAotI2xpbmUgOTgg
InN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3Qg
KikwKS0+c3Bvb2xfYXR0cl9zdHI1MiwgQVRUUl9IUkVGfSwKLSNsaW5lIDM5ICJzdmdhdHRycy5n
cGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29s
X2F0dHJfc3RyNTMsIEFUVFJfQ09MT1JfUkVOREVSSU5HfSwKLSNsaW5lIDI1MCAic3ZnYXR0cnMu
Z3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9v
bF9hdHRyX3N0cjU0LCBBVFRSX1l9LAotI2xpbmUgMTc5ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7
KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyNTUs
IEFUVFJfUll9LAotI2xpbmUgMTYyICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykm
KChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyNTYsIEFUVFJfUE9JTlRT
QVRafSwKLSNsaW5lIDY5ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1
Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyNTcsIEFUVFJfRklMVEVSfSwKLSNs
aW5lIDU0ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xf
YXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyNTgsIEFUVFJfRFl9LAotI2xpbmUgMzIgInN2Z2F0
dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+
c3Bvb2xfYXR0cl9zdHI1OSwgQVRUUl9DTElQX1BBVEh9LAotI2xpbmUgOTkgInN2Z2F0dHJzLmdw
ZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xf
YXR0cl9zdHI2MCwgQVRUUl9JREVPR1JBUEhJQ30sCi0jbGluZSA0NCAic3ZnYXR0cnMuZ3BlcmYi
Ci0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRy
X3N0cjYxLCBBVFRSX0NZfSwKLSNsaW5lIDM2ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCko
bG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyNjIsIEFUVFJf
Q09MT1JfSU5URVJQT0xBVElPTn0sCi0jbGluZSAxMDQgInN2Z2F0dHJzLmdwZXJmIgotICAgIHso
aW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHI2Mywg
QVRUUl9LfSwKLSNsaW5lIDkzICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChz
dHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyNjQsIEFUVFJfSEFOR0lOR30s
Ci0jbGluZSAxMTcgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBz
cG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHI2NSwgQVRUUl9MRVRURVJfU1BBQ0lOR30s
Ci0jbGluZSAxODIgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBz
cG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHI2NiwgQVRUUl9TSEFQRV9SRU5ERVJJTkd9
LAotI2xpbmUgMTA4ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qg
c3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyNjcsIEFUVFJfSzR9LAotI2xpbmUgMjIw
ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90
ICopMCktPnNwb29sX2F0dHJfc3RyNjgsIEFUVFJfVFlQRX0sCi0jbGluZSAxOTggInN2Z2F0dHJz
LmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bv
b2xfYXR0cl9zdHI2OSwgQVRUUl9TVFJPS0V9LAotI2xpbmUgMTA3ICJzdmdhdHRycy5ncGVyZiIK
LSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJf
c3RyNzAsIEFUVFJfSzN9LAotI2xpbmUgMTAgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShs
b25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHI3MSwgQVRUUl9B
Q0NFTlRfSEVJR0hUfSwKLSNsaW5lIDY2ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9u
ZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyNzIsIEFUVFJfRklM
TH0sCi0jbGluZSAzMCAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0
IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjczLCBBVFRSX0NBUF9IRUlHSFR9LAot
I2xpbmUgNzcgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9v
bF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHI3NCwgQVRUUl9GT05UX1NUUkVUQ0h9LAotI2xp
bmUgMzQgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9h
dHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHI3NSwgQVRUUl9DTElQUEFUSFVOSVRTfSwKLSNsaW5l
IDE1NSAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0
dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjc2LCBBVFRSX1BBVFRFUk5DT05URU5UVU5JVFN9LAot
I2xpbmUgMjA2ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bv
b2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyNzcsIEFUVFJfU1RZTEV9LAotI2xpbmUgNzEg
InN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3Qg
KikwKS0+c3Bvb2xfYXR0cl9zdHI3OCwgQVRUUl9GSUxURVJVTklUU30sCi0jbGluZSAyMzQgInN2
Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikw
KS0+c3Bvb2xfYXR0cl9zdHI3OSwgQVRUUl9WRVJTSU9OfSwKLSNsaW5lIDE0ICJzdmdhdHRycy5n
cGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29s
X2F0dHJfc3RyODAsIEFUVFJfQUxQSEFCRVRJQ30sCi0jbGluZSA1MCAic3ZnYXR0cnMuZ3BlcmYi
Ci0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRy
X3N0cjgxLCBBVFRSX0RJVklTT1J9LAotI2xpbmUgNzAgInN2Z2F0dHJzLmdwZXJmIgotICAgIHso
aW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHI4Miwg
QVRUUl9GSUxURVJSRVN9LAotI2xpbmUgMTQzICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCko
bG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyODMsIEFUVFJf
T1BBQ0lUWX0sCi0jbGluZSAxMiAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigo
c3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjg0LCBBVFRSX0FERElUSVZF
fSwKLSNsaW5lIDgyICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qg
c3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyODUsIEFUVFJfRlJPTX0sCi0jbGluZSAx
NTQgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRy
X3QgKikwKS0+c3Bvb2xfYXR0cl9zdHI4NiwgQVRUUl9QQVRITEVOR1RIfSwKLSNsaW5lIDcyICJz
dmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICop
MCktPnNwb29sX2F0dHJfc3RyODcsIEFUVFJfRkxPT0RfQ09MT1J9LAotI2xpbmUgMjggInN2Z2F0
dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+
c3Bvb2xfYXR0cl9zdHI4OCwgQVRUUl9CWX0sCi0jbGluZSA4MSAic3ZnYXR0cnMuZ3BlcmYiCi0g
ICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0
cjg5LCBBVFRSX0ZPUk1BVH0sCi0jbGluZSAyNDMgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50
KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHI5MCwgQVRU
Ul9XT1JEX1NQQUNJTkd9LAotI2xpbmUgMTQyICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCko
bG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyOTEsIEFUVFJf
T05aT09NfSwKLSNsaW5lIDIxMiAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigo
c3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjkyLCBBVFRSX1RBUkdFVFl9
LAotI2xpbmUgNTYgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBz
cG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHI5MywgQVRUUl9FTEVWQVRJT059LAotI2xp
bmUgMTM4ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xf
YXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyOTQsIEFUVFJfT0ZGU0VUfSwKLSNsaW5lIDUyICJz
dmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICop
MCktPnNwb29sX2F0dHJfc3RyOTUsIEFUVFJfRFVSfSwKLSNsaW5lIDIxOSAic3ZnYXR0cnMuZ3Bl
cmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9h
dHRyX3N0cjk2LCBBVFRSX1RSQU5TRk9STX0sCi0jbGluZSA0OSAic3ZnYXR0cnMuZ3BlcmYiCi0g
ICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0
cjk3LCBBVFRSX0RJU1BMQVl9LAotI2xpbmUgMzggInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50
KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHI5OCwgQVRU
Ul9DT0xPUl9QUk9GSUxFfSwKLSNsaW5lIDE1OCAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQp
KGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjk5LCBBVFRS
X1BPSU5URVJfRVZFTlRTfSwKLSNsaW5lIDExMSAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQp
KGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjEwMCwgQVRU
Ul9LRVJOSU5HfSwKLSNsaW5lIDQyICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykm
KChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMTAxLCBBVFRSX0NVUlNP
Un0sCi0jbGluZSAxOTUgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVj
dCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIxMDIsIEFUVFJfU1RPUF9PUEFDSVRZ
fSwKLSNsaW5lIDExOCAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0
IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjEwMywgQVRUUl9MSUdIVElOR19DT0xP
Un0sCi0jbGluZSAxNjcgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVj
dCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIxMDQsIEFUVFJfUkFESVVTfSwKLSNs
aW5lIDg0ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xf
YXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMTA1LCBBVFRSX0ZZfSwKLSNsaW5lIDc1ICJzdmdh
dHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCkt
PnNwb29sX2F0dHJfc3RyMTA2LCBBVFRSX0ZPTlRfU0laRX0sCi0jbGluZSAxMDAgInN2Z2F0dHJz
LmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bv
b2xfYXR0cl9zdHIxMDcsIEFUVFJfSU1BR0VfUkVOREVSSU5HfSwKLSNsaW5lIDI0ICJzdmdhdHRy
cy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNw
b29sX2F0dHJfc3RyMTA4LCBBVFRSX0JBU0VQUk9GSUxFfSwKLSNsaW5lIDIyNSAic3ZnYXR0cnMu
Z3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9v
bF9hdHRyX3N0cjEwOSwgQVRUUl9VTklDT0RFfSwKLSNsaW5lIDE3NiAic3ZnYXR0cnMuZ3BlcmYi
Ci0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRy
X3N0cjExMCwgQVRUUl9SRVNVTFR9LAotI2xpbmUgMjQ0ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7
KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMTEx
LCBBVFRSX1dSSVRJTkdfTU9ERX0sCi0jbGluZSAxNjkgInN2Z2F0dHJzLmdwZXJmIgotICAgIHso
aW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIxMTIs
IEFUVFJfUkVGWX0sCi0jbGluZSAxOTIgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25n
KSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIxMTMsIEFUVFJfU1RF
TVZ9LAotI2xpbmUgMTg5ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1
Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMTE0LCBBVFRSX1NUQVJUT0ZGU0VU
fSwKLSNsaW5lIDUxICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qg
c3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMTE1LCBBVFRSX0RPTUlOQU5UX0JBU0VM
SU5FfSwKLSNsaW5lIDEyNyAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3Ry
dWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjExNiwgQVRUUl9NQVNLfSwKLSNs
aW5lIDE5MCAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29s
X2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjExNywgQVRUUl9TVERERVZJQVRJT059LAotI2xp
bmUgMjAxICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xf
YXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMTE4LCBBVFRSX1NUUk9LRV9MSU5FQ0FQfSwKLSNs
aW5lIDE5MyAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29s
X2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjExOSwgQVRUUl9TVElUQ0hUSUxFU30sCi0jbGlu
ZSAxNTAgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9h
dHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIxMjAsIEFUVFJfT1ZFUkxJTkVfUE9TSVRJT059LAot
I2xpbmUgMjAyICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bv
b2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMTIxLCBBVFRSX1NUUk9LRV9MSU5FSk9JTn0s
Ci0jbGluZSAyMyAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNw
b29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjEyMiwgQVRUUl9CQVNFTElORV9TSElGVH0s
Ci0jbGluZSAxMjEgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBz
cG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIxMjMsIEFUVFJfTUFSS0VSX0VORH0sCi0j
bGluZSA4MCAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29s
X2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjEyNCwgQVRUUl9GT05UX1dFSUdIVH0sCi0jbGlu
ZSAxMjMgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9h
dHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIxMjUsIEFUVFJfTUFSS0VSX1NUQVJUfSwKLSNsaW5l
IDEzMCAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0
dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjEyNiwgQVRUUl9NQVRIRU1BVElDQUx9LAotI2xpbmUg
MTYxICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0
cl90ICopMCktPnNwb29sX2F0dHJfc3RyMTI3LCBBVFRSX1BPSU5UU0FUWX0sCi0jbGluZSAxMjUg
InN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3Qg
KikwKS0+c3Bvb2xfYXR0cl9zdHIxMjgsIEFUVFJfTUFSS0VSVU5JVFN9LAotI2xpbmUgMjA1ICJz
dmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICop
MCktPnNwb29sX2F0dHJfc3RyMTI5LCBBVFRSX1NUUk9LRV9XSURUSH0sCi0jbGluZSAxMDIgInN2
Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikw
KS0+c3Bvb2xfYXR0cl9zdHIxMzAsIEFUVFJfSU4yfSwKLSNsaW5lIDEyOSAic3ZnYXR0cnMuZ3Bl
cmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9h
dHRyX3N0cjEzMSwgQVRUUl9NQVNLVU5JVFN9LAotI2xpbmUgNzggInN2Z2F0dHJzLmdwZXJmIgot
ICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9z
dHIxMzIsIEFUVFJfRk9OVF9TVFlMRX0sCi0jbGluZSAxNyAic3ZnYXR0cnMuZ3BlcmYiCi0gICAg
eyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjEz
MywgQVRUUl9BUkFCSUNfRk9STX0sCi0jbGluZSA2NSAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhp
bnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjEzNCwg
QVRUUl9GRVRJTEV9LAotI2xpbmUgNzkgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25n
KSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIxMzUsIEFUVFJfRk9O
VF9WQVJJQU5UfSwKLSNsaW5lIDE3MiAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcp
Jigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjEzNiwgQVRUUl9SRVBF
QVREVVJ9LAotI2xpbmUgMTI2ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChz
dHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMTM3LCBBVFRSX01BUktFUldJ
RFRIfSwKLSNsaW5lIDM3ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1
Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMTM4LCBBVFRSX0NPTE9SX0lOVEVS
UE9MQVRJT05fRklMVEVSU30sCi0jbGluZSAyMzEgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50
KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIxMzksIEFU
VFJfVl9JREVPR1JBUEhJQ30sCi0jbGluZSA2MiAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQp
KGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjE0MCwgQVRU
Ul9GRUNPTVBPU0lURX0sCi0jbGluZSAyMTEgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShs
b25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIxNDEsIEFUVFJf
VEFSR0VUWH0sCi0jbGluZSAyMjcgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYo
KHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIxNDIsIEFUVFJfVU5JQ09E
RV9SQU5HRX0sCi0jbGluZSAyMzAgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYo
KHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIxNDMsIEFUVFJfVl9IQU5H
SU5HfSwKLSNsaW5lIDMzICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1
Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMTQ0LCBBVFRSX0NMSVBfUlVMRX0s
Ci0jbGluZSA4NiAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNw
b29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjE0NSwgQVRUUl9HMn0sCi0jbGluZSAxMyAi
c3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAq
KTApLT5zcG9vbF9hdHRyX3N0cjE0NiwgQVRUUl9BTElHTk1FTlRfQkFTRUxJTkV9LAotI2xpbmUg
MTY1ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0
cl90ICopMCktPnNwb29sX2F0dHJfc3RyMTQ3LCBBVFRSX1BSSU1JVElWRVVOSVRTfSwKLSNsaW5l
IDE3MSAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0
dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjE0OCwgQVRUUl9SRVBFQVRDT1VOVH0sCi0jbGluZSAy
MjYgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRy
X3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIxNDksIEFUVFJfVU5JQ09ERV9CSURJfSwKLSNsaW5lIDIy
MyAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJf
dCAqKTApLT5zcG9vbF9hdHRyX3N0cjE1MCwgQVRUUl9VTkRFUkxJTkVfUE9TSVRJT059LAotI2xp
bmUgODUgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9h
dHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIxNTEsIEFUVFJfRzF9LAotI2xpbmUgNzMgInN2Z2F0
dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+
c3Bvb2xfYXR0cl9zdHIxNTIsIEFUVFJfRkxPT0RfT1BBQ0lUWX0sCi0jbGluZSAxMTIgInN2Z2F0
dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+
c3Bvb2xfYXR0cl9zdHIxNTMsIEFUVFJfS0VZUE9JTlRTfSwKLSNsaW5lIDI1NSAic3ZnYXR0cnMu
Z3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9v
bF9hdHRyX3N0cjE1NCwgQVRUUl9aT09NQU5EUEFOfSwKLSNsaW5lIDIyOSAic3ZnYXR0cnMuZ3Bl
cmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9h
dHRyX3N0cjE1NSwgQVRUUl9WX0FMUEhBQkVUSUN9LAotI2xpbmUgMTUyICJzdmdhdHRycy5ncGVy
ZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0
dHJfc3RyMTU2LCBBVFRSX1BBTk9TRV8xfSwKLSNsaW5lIDI1MyAic3ZnYXR0cnMuZ3BlcmYiCi0g
ICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0
cjE1NywgQVRUUl9ZQ0hBTk5FTFNFTEVDVE9SfSwKLSNsaW5lIDEyNCAic3ZnYXR0cnMuZ3BlcmYi
Ci0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRy
X3N0cjE1OCwgQVRUUl9NQVJLRVJIRUlHSFR9LAotI2xpbmUgMTEwICJzdmdhdHRycy5ncGVyZiIK
LSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJf
c3RyMTU5LCBBVFRSX0tFUk5FTFVOSVRMRU5HVEh9LAotI2xpbmUgMTY4ICJzdmdhdHRycy5ncGVy
ZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0
dHJfc3RyMTYwLCBBVFRSX1JFRlh9LAotI2xpbmUgMjA5ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7
KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMTYx
LCBBVFRSX1RBQkxFVkFMVUVTfSwKLSNsaW5lIDIyOCAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhp
bnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjE2Miwg
QVRUUl9VTklUU19QRVJfRU19LAotI2xpbmUgMTQ5ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGlu
dCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMTYzLCBB
VFRSX09WRVJGTE9XfSwKLSNsaW5lIDIwNCAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxv
bmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjE2NCwgQVRUUl9T
VFJPS0VfT1BBQ0lUWX0sCi0jbGluZSAxMjIgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShs
b25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIxNjUsIEFUVFJf
TUFSS0VSX01JRH0sCi0jbGluZSA2NyAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcp
Jigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjE2NiwgQVRUUl9GSUxM
X09QQUNJVFl9LAotI2xpbmUgOTcgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYo
KHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIxNjcsIEFUVFJfSE9SSVpf
T1JJR0lOX1l9LAotI2xpbmUgMTEzICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykm
KChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMTY4LCBBVFRSX0tFWVNQ
TElORVN9LAotI2xpbmUgMjQ1ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChz
dHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMTY5LCBBVFRSX1h9LAotI2xp
bmUgMTc4ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xf
YXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMTcwLCBBVFRSX1JYfSwKLSNsaW5lIDE2MyAic3Zn
YXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTAp
LT5zcG9vbF9hdHRyX3N0cjE3MSwgQVRUUl9QUkVTRVJWRUFMUEhBfSwKLSNsaW5lIDE1ICJzdmdh
dHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCkt
PnNwb29sX2F0dHJfc3RyMTcyLCBBVFRSX0FNUExJVFVERX0sCi0jbGluZSAxOTkgInN2Z2F0dHJz
LmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bv
b2xfYXR0cl9zdHIxNzMsIEFUVFJfU1RST0tFX0RBU0hBUlJBWX0sCi0jbGluZSA1MyAic3ZnYXR0
cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5z
cG9vbF9hdHRyX3N0cjE3NCwgQVRUUl9EWH0sCi0jbGluZSAyMzcgInN2Z2F0dHJzLmdwZXJmIgot
ICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9z
dHIxNzUsIEFUVFJfVkVSVF9PUklHSU5fWX0sCi0jbGluZSAxNjQgInN2Z2F0dHJzLmdwZXJmIgot
ICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9z
dHIxNzYsIEFUVFJfUFJFU0VSVkVBU1BFQ1RSQVRJT30sCi0jbGluZSA4NyAic3ZnYXR0cnMuZ3Bl
cmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9h
dHRyX3N0cjE3NywgQVRUUl9HTFlQSF9OQU1FfSwKLSNsaW5lIDQzICJzdmdhdHRycy5ncGVyZiIK
LSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJf
c3RyMTc4LCBBVFRSX0NYfSwKLSNsaW5lIDE5ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCko
bG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMTc5LCBBVFRS
X0FUVFJJQlVURU5BTUV9LAotI2xpbmUgMTI4ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCko
bG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMTgwLCBBVFRS
X01BU0tDT05URU5UVU5JVFN9LAotI2xpbmUgMjA3ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGlu
dCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMTgxLCBB
VFRSX1NVUkZBQ0VTQ0FMRX0sCi0jbGluZSAxNjAgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50
KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIxODIsIEFU
VFJfUE9JTlRTQVRYfSwKLSNsaW5lIDY0ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9u
ZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMTgzLCBBVFRSX0ZF
TU9SUEhPTE9HWX0sCi0jbGluZSAxODYgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25n
KSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIxODQsIEFUVFJfU1BF
Q1VMQVJDT05TVEFOVH0sCi0jbGluZSA0MCAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxv
bmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjE4NSwgQVRUUl9D
T05URU5UU0NSSVBUVFlQRX0sCi0jbGluZSAyMzMgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50
KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIxODYsIEFU
VFJfVkFMVUVTfSwKLSNsaW5lIDIwMyAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcp
Jigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjE4NywgQVRUUl9TVFJP
S0VfTUlURVJMSU1JVH0sCi0jbGluZSA5MCAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxv
bmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjE4OCwgQVRUUl9H
TFlQSFJFRn0sCi0jbGluZSAyNTIgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYo
KHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIxODksIEFUVFJfWTJ9LAot
I2xpbmUgNTkgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9v
bF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIxOTAsIEFUVFJfRVhQT05FTlR9LAotI2xpbmUg
NjggInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRy
X3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIxOTEsIEFUVFJfRklMTF9SVUxFfSwKLSNsaW5lIDI0MCAi
c3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAq
KTApLT5zcG9vbF9hdHRyX3N0cjE5MiwgQVRUUl9WSVNJQklMSVRZfSwKLSNsaW5lIDE1NiAic3Zn
YXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTAp
LT5zcG9vbF9hdHRyX3N0cjE5MywgQVRUUl9QQVRURVJOVFJBTlNGT1JNfSwKLSNsaW5lIDI1MSAi
c3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAq
KTApLT5zcG9vbF9hdHRyX3N0cjE5NCwgQVRUUl9ZMX0sCi0jbGluZSAyMTQgInN2Z2F0dHJzLmdw
ZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xf
YXR0cl9zdHIxOTUsIEFUVFJfVEVYVF9ERUNPUkFUSU9OfSwKLSNsaW5lIDEwNiAic3ZnYXR0cnMu
Z3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9v
bF9hdHRyX3N0cjE5NiwgQVRUUl9LMn0sCi0jbGluZSAyMDAgInN2Z2F0dHJzLmdwZXJmIgotICAg
IHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIx
OTcsIEFUVFJfU1RST0tFX0RBU0hPRkZTRVR9LAotI2xpbmUgMTUxICJzdmdhdHRycy5ncGVyZiIK
LSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJf
c3RyMTk4LCBBVFRSX09WRVJMSU5FX1RISUNLTkVTU30sCi0jbGluZSAyMTMgInN2Z2F0dHJzLmdw
ZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xf
YXR0cl9zdHIxOTksIEFUVFJfVEVYVF9BTkNIT1J9LAotI2xpbmUgMTA1ICJzdmdhdHRycy5ncGVy
ZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0
dHJfc3RyMjAwLCBBVFRSX0sxfSwKLSNsaW5lIDIyICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGlu
dCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMjAxLCBB
VFRSX0JBU0VGUkVRVUVOQ1l9LAotI2xpbmUgMjMyICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGlu
dCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMjAyLCBB
VFRSX1ZfTUFUSEVNQVRJQ0FMfSwKLSNsaW5lIDIxICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGlu
dCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMjAzLCBB
VFRSX0FaSU1VVEh9LAotI2xpbmUgMjM5ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9u
ZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMjA0LCBBVFRSX1ZJ
RVdUQVJHRVR9LAotI2xpbmUgMTc0ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykm
KChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMjA1LCBBVFRSX1JFUVVJ
UkVERkVBVFVSRVN9LAotI2xpbmUgOTEgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25n
KSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIyMDYsIEFUVFJfR1JB
RElFTlRUUkFOU0ZPUk19LAotI2xpbmUgMTE5ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCko
bG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMjA3LCBBVFRS
X0xJTUlUSU5HQ09ORUFOR0xFfSwKLSNsaW5lIDIxNSAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhp
bnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjIwOCwg
QVRUUl9URVhUX1JFTkRFUklOR30sCi0jbGluZSAxMTYgInN2Z2F0dHJzLmdwZXJmIgotICAgIHso
aW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIyMDks
IEFUVFJfTEVOR1RIQURKVVNUfSwKLSNsaW5lIDEzMSAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhp
bnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjIxMCwg
QVRUUl9NQVh9LAotI2xpbmUgODMgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYo
KHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIyMTEsIEFUVFJfRlh9LAot
I2xpbmUgMjM1ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bv
b2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMjEyLCBBVFRSX1ZFUlRfQURWX1l9LAotI2xp
bmUgMjIyICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xf
YXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMjEzLCBBVFRSX1UyfSwKLSNsaW5lIDc0ICJzdmdh
dHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCkt
PnNwb29sX2F0dHJfc3RyMjE0LCBBVFRSX0ZPTlRfRkFNSUxZfSwKLSNsaW5lIDI1ICJzdmdhdHRy
cy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNw
b29sX2F0dHJfc3RyMjE1LCBBVFRSX0JCT1h9LAotI2xpbmUgMjIxICJzdmdhdHRycy5ncGVyZiIK
LSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJf
c3RyMjE2LCBBVFRSX1UxfSwKLSNsaW5lIDI0NiAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQp
KGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjIxNywgQVRU
Ul9YX0hFSUdIVH0sCi0jbGluZSAyMjQgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25n
KSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIyMTgsIEFUVFJfVU5E
RVJMSU5FX1RISUNLTkVTU30sCi0jbGluZSAyMTYgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50
KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIyMTksIEFU
VFJfVEVYVExFTkdUSH0sCi0jbGluZSAxMzcgInN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShs
b25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIyMjAsIEFUVFJf
TlVNT0NUQVZFU30sCi0jbGluZSA3NiAic3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcp
Jigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjIyMSwgQVRUUl9GT05U
X1NJWkVfQURKVVNUfSwKLSNsaW5lIDg4ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9u
ZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMjIyLCBBVFRSX0dM
WVBIX09SSUVOVEFUSU9OX0hPUklaT05UQUx9LAotI2xpbmUgNDEgInN2Z2F0dHJzLmdwZXJmIgot
ICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9z
dHIyMjMsIEFUVFJfQ09OVEVOVFNUWUxFVFlQRX0sCi0jbGluZSA0NyAic3ZnYXR0cnMuZ3BlcmYi
Ci0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRy
X3N0cjIyNCwgQVRUUl9ESUZGVVNFQ09OU1RBTlR9LAotI2xpbmUgODkgInN2Z2F0dHJzLmdwZXJm
IgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0
cl9zdHIyMjUsIEFUVFJfR0xZUEhfT1JJRU5UQVRJT05fVkVSVElDQUx9LAotI2xpbmUgMTk2ICJz
dmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICop
MCktPnNwb29sX2F0dHJfc3RyMjI2LCBBVFRSX1NUUklLRVRIUk9VR0hfUE9TSVRJT059LAotI2xp
bmUgMTE0ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xf
YXR0cl90ICopMCktPnNwb29sX2F0dHJfc3RyMjI3LCBBVFRSX0tFWVRJTUVTfSwKLSNsaW5lIDEx
ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90
ICopMCktPnNwb29sX2F0dHJfc3RyMjI4LCBBVFRSX0FDQ1VNVUxBVEV9LAotI2xpbmUgMjQ5ICJz
dmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90ICop
MCktPnNwb29sX2F0dHJfc3RyMjI5LCBBVFRSX1hDSEFOTkVMU0VMRUNUT1J9LAotI2xpbmUgNjMg
InN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3Qg
KikwKS0+c3Bvb2xfYXR0cl9zdHIyMzAsIEFUVFJfRkVHQVVTU0lBTkJMVVJ9LAotI2xpbmUgMTA5
ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90
ICopMCktPnNwb29sX2F0dHJfc3RyMjMxLCBBVFRSX0tFUk5FTE1BVFJJWH0sCi0jbGluZSA5NiAi
c3ZnYXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAq
KTApLT5zcG9vbF9hdHRyX3N0cjIzMiwgQVRUUl9IT1JJWl9PUklHSU5fWH0sCi0jbGluZSAyMzgg
InN2Z2F0dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3Qg
KikwKS0+c3Bvb2xfYXR0cl9zdHIyMzMsIEFUVFJfVklFV0JPWH0sCi0jbGluZSAyMCAic3ZnYXR0
cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5z
cG9vbF9hdHRyX3N0cjIzNCwgQVRUUl9BVFRSSUJVVEVUWVBFfSwKLSNsaW5lIDIwOCAic3ZnYXR0
cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5z
cG9vbF9hdHRyX3N0cjIzNSwgQVRUUl9TWVNURU1MQU5HVUFHRX0sCi0jbGluZSAyMzYgInN2Z2F0
dHJzLmdwZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+
c3Bvb2xfYXR0cl9zdHIyMzYsIEFUVFJfVkVSVF9PUklHSU5fWH0sCi0jbGluZSA1NyAic3ZnYXR0
cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5z
cG9vbF9hdHRyX3N0cjIzNywgQVRUUl9FTkFCTEVfQkFDS0dST1VORH0sCi0jbGluZSA2MSAic3Zn
YXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTAp
LT5zcG9vbF9hdHRyX3N0cjIzOCwgQVRUUl9GRUNPTE9STUFUUklYfSwKLSNsaW5lIDE3MyAic3Zn
YXR0cnMuZ3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTAp
LT5zcG9vbF9hdHRyX3N0cjIzOSwgQVRUUl9SRVFVSVJFREVYVEVOU0lPTlN9LAotI2xpbmUgMjQ4
ICJzdmdhdHRycy5ncGVyZiIKLSAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfYXR0cl90
ICopMCktPnNwb29sX2F0dHJfc3RyMjQwLCBBVFRSX1gyfSwKLSNsaW5lIDI0NyAic3ZnYXR0cnMu
Z3BlcmYiCi0gICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9v
bF9hdHRyX3N0cjI0MSwgQVRUUl9YMX0sCi0jbGluZSA5NSAic3ZnYXR0cnMuZ3BlcmYiCi0gICAg
eyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX2F0dHJfdCAqKTApLT5zcG9vbF9hdHRyX3N0cjI0
MiwgQVRUUl9IT1JJWl9BRFZfWH0sCi0jbGluZSAxODcgInN2Z2F0dHJzLmdwZXJmIgotICAgIHso
aW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIyNDMs
IEFUVFJfU1BFQ1VMQVJFWFBPTkVOVH0sCi0jbGluZSAxOTcgInN2Z2F0dHJzLmdwZXJmIgotICAg
IHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xfYXR0cl9zdHIy
NDQsIEFUVFJfU1RSSUtFVEhST1VHSF9USElDS05FU1N9LAotI2xpbmUgNjAgInN2Z2F0dHJzLmdw
ZXJmIgotICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9hdHRyX3QgKikwKS0+c3Bvb2xf
YXR0cl9zdHIyNDUsIEFUVFJfRVhURVJOQUxSRVNPVVJDRVNSRVFVSVJFRH0KLSAgfTsKLQotc3Rh
dGljIGNvbnN0IHNob3J0IGxvb2t1cFtdID0KLSAgewotICAgICAtMSwgICAwLCAgIDEsICAtMSwg
IC0xLCAgLTEsICAgMiwgIC0xLCAgLTEsICAtMSwKLSAgICAgIDMsICAgNCwgICA1LCAgIDYsICAg
NywgIC0xLCAgIDgsICAgOSwgIC0xLCAgLTEsCi0gICAgIDEwLCAgLTEsICAtMSwgIC0xLCAgLTEs
ICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLAotICAgICAtMSwgIDExLCAgMTIsICAxMywgIC0xLCAg
MTQsICAxNSwgIC0xLCAgMTYsICAxNywKLSAgICAgMTgsICAxOSwgIC0xLCAgLTEsICAtMSwgIDIw
LCAgLTEsICAtMSwgIC0xLCAgMjEsCi0gICAgIDIyLCAgMjMsICAtMSwgIC0xLCAgMjQsICAyNSwg
IC0xLCAgLTEsICAtMSwgIC0xLAotICAgICAtMSwgIDI2LCAgLTEsICAtMSwgIDI3LCAgLTEsICAt
MSwgIDI4LCAgLTEsICAyOSwKLSAgICAgMzAsICAtMSwgIC0xLCAgMzEsICAtMSwgIDMyLCAgLTEs
ICAtMSwgIDMzLCAgMzQsCi0gICAgIC0xLCAgLTEsICAtMSwgIC0xLCAgMzUsICAtMSwgIC0xLCAg
LTEsICAzNiwgIDM3LAotICAgICAtMSwgIDM4LCAgMzksICAtMSwgIC0xLCAgNDAsICA0MSwgIDQy
LCAgNDMsICAtMSwKLSAgICAgNDQsICA0NSwgIDQ2LCAgLTEsICAtMSwgIDQ3LCAgNDgsICAtMSwg
IC0xLCAgLTEsCi0gICAgIDQ5LCAgNTAsICA1MSwgIC0xLCAgNTIsICA1MywgIDU0LCAgNTUsICAt
MSwgIDU2LAotICAgICAtMSwgIDU3LCAgNTgsICAtMSwgIDU5LCAgLTEsICA2MCwgIDYxLCAgLTEs
ICA2MiwKLSAgICAgLTEsICA2MywgIDY0LCAgLTEsICA2NSwgIDY2LCAgLTEsICA2NywgIC0xLCAg
NjgsCi0gICAgIC0xLCAgNjksICA3MCwgIDcxLCAgNzIsICA3MywgIC0xLCAgNzQsICA3NSwgIDc2
LAotICAgICA3NywgIDc4LCAgNzksICAtMSwgIC0xLCAgODAsICAtMSwgIDgxLCAgLTEsICA4MiwK
LSAgICAgLTEsICAtMSwgIDgzLCAgODQsICA4NSwgIDg2LCAgODcsICA4OCwgIC0xLCAgLTEsCi0g
ICAgIC0xLCAgODksICA5MCwgIC0xLCAgLTEsICAtMSwgIDkxLCAgOTIsICAtMSwgIDkzLAotICAg
ICAtMSwgIDk0LCAgLTEsICA5NSwgIDk2LCAgLTEsICAtMSwgIDk3LCAgOTgsICA5OSwKLSAgICAg
LTEsICAtMSwgMTAwLCAgLTEsICAtMSwgIC0xLCAxMDEsIDEwMiwgIC0xLCAxMDMsCi0gICAgIC0x
LCAxMDQsIDEwNSwgIC0xLCAxMDYsIDEwNywgMTA4LCAxMDksICAtMSwgIC0xLAotICAgICAtMSwg
MTEwLCAxMTEsICAtMSwgMTEyLCAxMTMsIDExNCwgMTE1LCAgLTEsIDExNiwKLSAgICAgLTEsICAt
MSwgMTE3LCAgLTEsIDExOCwgIC0xLCAxMTksIDEyMCwgIC0xLCAgLTEsCi0gICAgMTIxLCAgLTEs
ICAtMSwgIC0xLCAxMjIsIDEyMywgMTI0LCAxMjUsICAtMSwgIC0xLAotICAgICAtMSwgIC0xLCAx
MjYsICAtMSwgMTI3LCAgLTEsIDEyOCwgMTI5LCAxMzAsIDEzMSwKLSAgICAxMzIsIDEzMywgIC0x
LCAgLTEsICAtMSwgIC0xLCAxMzQsIDEzNSwgIC0xLCAxMzYsCi0gICAgIC0xLCAxMzcsIDEzOCwg
MTM5LCAgLTEsICAtMSwgMTQwLCAxNDEsIDE0MiwgMTQzLAotICAgICAtMSwgIC0xLCAgLTEsICAt
MSwgMTQ0LCAgLTEsICAtMSwgMTQ1LCAxNDYsIDE0NywKLSAgICAgLTEsIDE0OCwgMTQ5LCAxNTAs
ICAtMSwgIC0xLCAgLTEsIDE1MSwgMTUyLCAxNTMsCi0gICAgMTU0LCAgLTEsIDE1NSwgMTU2LCAg
LTEsICAtMSwgMTU3LCAxNTgsICAtMSwgIC0xLAotICAgICAtMSwgMTU5LCAgLTEsICAtMSwgMTYw
LCAgLTEsIDE2MSwgMTYyLCAxNjMsIDE2NCwKLSAgICAxNjUsICAtMSwgMTY2LCAgLTEsIDE2Nywg
MTY4LCAxNjksIDE3MCwgMTcxLCAxNzIsCi0gICAgIC0xLCAxNzMsIDE3NCwgMTc1LCAxNzYsIDE3
NywgIC0xLCAxNzgsIDE3OSwgIC0xLAotICAgICAtMSwgMTgwLCAxODEsICAtMSwgMTgyLCAgLTEs
ICAtMSwgMTgzLCAgLTEsICAtMSwKLSAgICAgLTEsIDE4NCwgMTg1LCAgLTEsICAtMSwgIC0xLCAx
ODYsIDE4NywgMTg4LCAgLTEsCi0gICAgIC0xLCAgLTEsIDE4OSwgMTkwLCAxOTEsIDE5MiwgMTkz
LCAgLTEsICAtMSwgIC0xLAotICAgICAtMSwgIC0xLCAxOTQsICAtMSwgIC0xLCAxOTUsICAtMSwg
MTk2LCAgLTEsICAtMSwKLSAgICAgLTEsICAtMSwgMTk3LCAxOTgsICAtMSwgIC0xLCAxOTksIDIw
MCwgMjAxLCAyMDIsCi0gICAgIC0xLCAgLTEsIDIwMywgIC0xLCAgLTEsIDIwNCwgMjA1LCAyMDYs
ICAtMSwgIC0xLAotICAgICAtMSwgIC0xLCAyMDcsICAtMSwgMjA4LCAgLTEsICAtMSwgMjA5LCAy
MTAsICAtMSwKLSAgICAgLTEsICAtMSwgMjExLCAgLTEsICAtMSwgMjEyLCAgLTEsICAtMSwgIC0x
LCAgLTEsCi0gICAgIC0xLCAgLTEsIDIxMywgIC0xLCAgLTEsICAtMSwgMjE0LCAgLTEsICAtMSwg
MjE1LAotICAgICAtMSwgIC0xLCAyMTYsIDIxNywgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsIDIx
OCwKLSAgICAyMTksICAtMSwgIC0xLCAgLTEsICAtMSwgMjIwLCAyMjEsICAtMSwgIC0xLCAgLTEs
Ci0gICAgIC0xLCAgLTEsICAtMSwgMjIyLCAgLTEsICAtMSwgMjIzLCAgLTEsICAtMSwgIC0xLAot
ICAgICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwKLSAg
ICAyMjQsIDIyNSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsCi0gICAg
IC0xLCAgLTEsIDIyNiwgMjI3LCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLAotICAgICAt
MSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwKLSAgICAyMjgs
ICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAyMjksICAtMSwgIC0xLCAgLTEsCi0gICAgIC0xLCAg
LTEsICAtMSwgIC0xLCAyMzAsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLAotICAgICAtMSwgIC0x
LCAyMzEsICAtMSwgMjMyLCAgLTEsICAtMSwgMjMzLCAyMzQsIDIzNSwKLSAgICAgLTEsICAtMSwg
IC0xLCAyMzYsICAtMSwgIC0xLCAgLTEsIDIzNywgMjM4LCAgLTEsCi0gICAgIC0xLCAgLTEsICAt
MSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLAotICAgICAtMSwgIC0xLCAgLTEs
IDIzOSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwKLSAgICAgLTEsICAtMSwgMjQwLCAg
LTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsCi0gICAgIC0xLCAgLTEsIDI0MSwgIC0x
LCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLAotICAgICAtMSwgIC0xLCAgLTEsICAtMSwg
IC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwKLSAgICAgLTEsICAtMSwgIC0xLCAgLTEsICAt
MSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsCi0gICAgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEs
ICAtMSwgMjQyLCAgLTEsICAtMSwgIC0xLAotICAgICAtMSwgMjQzLCAgLTEsICAtMSwgIC0xLCAg
LTEsICAtMSwgIC0xLCAgLTEsICAtMSwKLSAgICAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0x
LCAgLTEsICAtMSwgMjQ0LCAgLTEsCi0gICAgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwg
IC0xLCAgLTEsICAtMSwgIC0xLAotICAgICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAt
MSwgIC0xLCAgLTEsICAtMSwKLSAgICAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEs
ICAtMSwgIC0xLCAgLTEsCi0gICAgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAg
LTEsICAtMSwgIC0xLAotICAgICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0x
LCAgLTEsICAtMSwKLSAgICAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwg
IC0xLCAgLTEsCi0gICAgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAt
MSwgIC0xLAotICAgICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEs
ICAtMSwKLSAgICAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAg
LTEsCi0gICAgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0x
LAotICAgICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwK
LSAgICAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsCi0g
ICAgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLAotICAg
ICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwKLSAgICAg
LTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsCi0gICAgIC0x
LCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLAotICAgICAtMSwg
IC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwKLSAgICAgLTEsICAt
MSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsCi0gICAgIC0xLCAgLTEs
ICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLCAgLTEsICAtMSwgIC0xLAotICAgICAtMSwgIC0xLCAg
LTEsICAtMSwgIC0xLCAyNDUKLSAgfTsKLQotI2lmZGVmIF9fR05VQ19fCi1fX2lubGluZQotI2Vu
ZGlmCi1jb25zdCBzdHJ1Y3QgYXR0cnMgKgotZmluZFNWR0F0dHIgKHJlZ2lzdGVyIGNvbnN0IGNo
YXIgKnN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbikKLXsKLSAgaWYgKGxlbiA8PSBNQVhf
V09SRF9MRU5HVEggJiYgbGVuID49IE1JTl9XT1JEX0xFTkdUSCkKLSAgICB7Ci0gICAgICByZWdp
c3RlciBpbnQga2V5ID0gaGFzaF9hdHRyIChzdHIsIGxlbik7Ci0KLSAgICAgIGlmIChrZXkgPD0g
TUFYX0hBU0hfVkFMVUUgJiYga2V5ID49IDApCi0gICAgICAgIHsKLSAgICAgICAgICByZWdpc3Rl
ciBpbnQgaW5kZXggPSBsb29rdXBba2V5XTsKLQotICAgICAgICAgIGlmIChpbmRleCA+PSAwKQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICByZWdpc3RlciBjb25zdCBjaGFyICpzID0gd29y
ZGxpc3RfYXR0cltpbmRleF0ubmFtZSArIHNwb29sX2F0dHI7Ci0KLSAgICAgICAgICAgICAgaWYg
KCpzdHIgPT0gKnMgJiYgIXN0cm5jbXAgKHN0ciArIDEsIHMgKyAxLCBsZW4gLSAxKSAmJiBzW2xl
bl0gPT0gJ1wwJykKLSAgICAgICAgICAgICAgICByZXR1cm4gJndvcmRsaXN0X2F0dHJbaW5kZXhd
OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotICByZXR1cm4gMDsKLX0KLSNsaW5l
IDI1NiAic3ZnYXR0cnMuZ3BlcmYiCi0KLQotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQg
YXR0ckxpc3RbXSA9IHsKLSAgICA2NTUzNSwKLSAgICA3MSwKLSAgICAyMjgsCi0gICAgODQsCi0g
ICAgMTQ2LAotICAgIDgwLAotICAgIDE3MiwKLSAgICA0NiwKLSAgICAxMzMsCi0gICAgMTEsCi0g
ICAgMTc5LAotICAgIDIzNCwKLSAgICAyMDMsCi0gICAgMjAxLAotICAgIDEyMiwKLSAgICAxMDgs
Ci0gICAgMjE1LAotICAgIDQ3LAotICAgIDI5LAotICAgIDg4LAotICAgIDMzLAotICAgIDczLAot
ICAgIDI3LAotICAgIDU5LAotICAgIDE0NCwKLSAgICA3NSwKLSAgICAxOCwKLSAgICA2MiwKLSAg
ICAxMzgsCi0gICAgOTgsCi0gICAgNTMsCi0gICAgMTg1LAotICAgIDIyMywKLSAgICAxMDEsCi0g
ICAgMTc4LAotICAgIDYxLAotICAgIDIsCi0gICAgMTIsCi0gICAgMjI0LAotICAgIDE3LAotICAg
IDk3LAotICAgIDgxLAotICAgIDExNSwKLSAgICA5NSwKLSAgICAxNzQsCi0gICAgNTgsCi0gICAg
MzEsCi0gICAgOTMsCi0gICAgMjM3LAotICAgIDYsCi0gICAgMTkwLAotICAgIDI0NSwKLSAgICAy
MzgsCi0gICAgMTQwLAotICAgIDIzMCwKLSAgICAxODMsCi0gICAgMTM0LAotICAgIDcyLAotICAg
IDE2NiwKLSAgICAxOTEsCi0gICAgNTcsCi0gICAgODIsCi0gICAgNzgsCi0gICAgODcsCi0gICAg
MTUyLAotICAgIDIxNCwKLSAgICAxMDYsCi0gICAgMjIxLAotICAgIDc0LAotICAgIDEzMiwKLSAg
ICAxMzUsCi0gICAgMTI0LAotICAgIDg5LAotICAgIDg1LAotICAgIDIxMSwKLSAgICAxMDUsCi0g
ICAgMTUxLAotICAgIDE0NSwKLSAgICAxNzcsCi0gICAgMjIyLAotICAgIDIyNSwKLSAgICAxODgs
Ci0gICAgMjA2LAotICAgIDQzLAotICAgIDY0LAotICAgIDQ1LAotICAgIDI0MiwKLSAgICAyMzIs
Ci0gICAgMTY3LAotICAgIDUyLAotICAgIDYwLAotICAgIDEwNywKLSAgICA1LAotICAgIDEzMCwK
LSAgICAyMSwKLSAgICA2MywKLSAgICAyMDAsCi0gICAgMTk2LAotICAgIDcwLAotICAgIDY3LAot
ICAgIDIzMSwKLSAgICAxNTksCi0gICAgMTAwLAotICAgIDE1MywKLSAgICAxNjgsCi0gICAgMjI3
LAotICAgIDM0LAotICAgIDIwOSwKLSAgICA2NSwKLSAgICAxMDMsCi0gICAgMjA3LAotICAgIDMw
LAotICAgIDEyMywKLSAgICAxNjUsCi0gICAgMTI1LAotICAgIDE1OCwKLSAgICAxMjgsCi0gICAg
MTM3LAotICAgIDExNiwKLSAgICAxODAsCi0gICAgMTMxLAotICAgIDEyNiwKLSAgICAyMTAsCi0g
ICAgNDAsCi0gICAgNTAsCi0gICAgMzYsCi0gICAgMzUsCi0gICAgMzcsCi0gICAgMjIwLAotICAg
IDk0LAotICAgIDUxLAotICAgIDEwLAotICAgIDE2LAotICAgIDkxLAotICAgIDgzLAotICAgIDEz
LAotICAgIDMsCi0gICAgOCwKLSAgICAxNSwKLSAgICAyNiwKLSAgICAxNjMsCi0gICAgMTIwLAot
ICAgIDE5OCwKLSAgICAxNTYsCi0gICAgMjQsCi0gICAgODYsCi0gICAgNzYsCi0gICAgMTkzLAot
ICAgIDI4LAotICAgIDk5LAotICAgIDE5LAotICAgIDE4MiwKLSAgICAxMjcsCi0gICAgNTYsCi0g
ICAgMTcxLAotICAgIDE3NiwKLSAgICAxNDcsCi0gICAgMCwKLSAgICAxMDQsCi0gICAgMTYwLAot
ICAgIDExMiwKLSAgICA0MSwKLSAgICAxNDgsCi0gICAgMTM2LAotICAgIDIzOSwKLSAgICAyMDUs
Ci0gICAgOSwKLSAgICAxMTAsCi0gICAgNCwKLSAgICAxNzAsCi0gICAgNTUsCi0gICAgMjIsCi0g
ICAgNywKLSAgICA2NiwKLSAgICAyNSwKLSAgICAyMCwKLSAgICA0MiwKLSAgICAxODQsCi0gICAg
MjQzLAotICAgIDM5LAotICAgIDExNCwKLSAgICAxMTcsCi0gICAgNDksCi0gICAgMTEzLAotICAg
IDExOSwKLSAgICAzMiwKLSAgICAxMDIsCi0gICAgMjI2LAotICAgIDI0NCwKLSAgICA2OSwKLSAg
ICAxNzMsCi0gICAgMTk3LAotICAgIDExOCwKLSAgICAxMjEsCi0gICAgMTg3LAotICAgIDE2NCwK
LSAgICAxMjksCi0gICAgNzcsCi0gICAgMTgxLAotICAgIDIzNSwKLSAgICAxNjEsCi0gICAgMjMs
Ci0gICAgMTQxLAotICAgIDkyLAotICAgIDE5OSwKLSAgICAxOTUsCi0gICAgMjA4LAotICAgIDIx
OSwKLSAgICAxNCwKLSAgICAxLAotICAgIDk2LAotICAgIDY4LAotICAgIDIxNiwKLSAgICAyMTMs
Ci0gICAgMTUwLAotICAgIDIxOCwKLSAgICAxMDksCi0gICAgMTQ5LAotICAgIDE0MiwKLSAgICAx
NjIsCi0gICAgMTU1LAotICAgIDE0MywKLSAgICAxMzksCi0gICAgMjAyLAotICAgIDE4NiwKLSAg
ICA3OSwKLSAgICAyMTIsCi0gICAgMjM2LAotICAgIDE3NSwKLSAgICAyMzMsCi0gICAgMjA0LAot
ICAgIDE5MiwKLSAgICA0NCwKLSAgICA0OCwKLSAgICA5MCwKLSAgICAxMTEsCi0gICAgMTY5LAot
ICAgIDIxNywKLSAgICAyNDEsCi0gICAgMjQwLAotICAgIDIyOSwKLSAgICA1NCwKLSAgICAxOTQs
Ci0gICAgMTg5LAotICAgIDE1NywKLSAgICAzOCwKLSAgICAxNTQsCi0gICAgNjU1MzUKLX07Ci0K
LWNvbnN0IGNoYXIgKktTVkc6OmdldEF0dHJOYW1lKHVuc2lnbmVkIHNob3J0IGlkKQotewotICAg
IGlmICghaWQgfHwgaWQgPiBUT1RBTF9LRVlXT1JEUykgcmV0dXJuICIiOwotICAgIHJldHVybiBz
cG9vbF9hdHRyICsgd29yZGxpc3RfYXR0clthdHRyTGlzdFtpZF1dLm5hbWU7Ci19Ci0KLWludCBL
U1ZHOjpnZXRBdHRySUQoY29uc3QgY2hhciAqdGFnU3RyLCBpbnQgbGVuKQotewotICAgIGNvbnN0
IHN0cnVjdCBhdHRycyAqYXR0clB0ciA9IGZpbmRTVkdBdHRyKHRhZ1N0ciwgbGVuKTsKLSAgICBp
ZighYXR0clB0cikKLSAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBhdHRyUHRyLT5pZDsKLX0K
SW5kZXg6IGtzdmcyL3N2Zy9zdmdhdHRycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IGtzdmcyL3N2
Zy9zdmdhdHRycy5oCmRpZmYgLU4ga3N2ZzIvc3ZnL3N2Z2F0dHJzLmgKLS0tIGtzdmcyL3N2Zy9z
dmdhdHRycy5oCTEgU2VwIDIwMDUgMDc6MzU6NTYgLTAwMDAJMS4yCisrKyBrc3ZnMi9zdmcvc3Zn
YXR0cnMuaAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCkBAIC0xLDI2NCArMCwwIEBACi0vKiBU
aGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbQotc3ZnYXR0cnMuaW4gYnkg
ZG9tbWFrZWF0dHJzLCBkbyBub3QgZWRpdCAqLwotLyogQ29weXJpZ2h0IDE5OTkgTGFycyBLbm9s
bCAqLwotCi0jaWZuZGVmIEtTVkdfQVRUUlNfSAotI2RlZmluZSBLU1ZHX0FUVFJTX0gKLQotI2lu
Y2x1ZGUgPGtnbG9iYWwuaD4KLQotI2RlZmluZSBBVFRSX0FDQ0VOVF9IRUlHSFQgMjgKLSNkZWZp
bmUgQVRUUl9BQ0NVTVVMQVRFIDI5Ci0jZGVmaW5lIEFUVFJfQURESVRJVkUgMzAKLSNkZWZpbmUg
QVRUUl9BTElHTk1FTlRfQkFTRUxJTkUgMzEKLSNkZWZpbmUgQVRUUl9BTFBIQUJFVElDIDMyCi0j
ZGVmaW5lIEFUVFJfQU1QTElUVURFIDMzCi0jZGVmaW5lIEFUVFJfQU5JTUFURSAzNAotI2RlZmlu
ZSBBVFRSX0FSQUJJQ19GT1JNIDM1Ci0jZGVmaW5lIEFUVFJfQVNDRU5UIDM2Ci0jZGVmaW5lIEFU
VFJfQVRUUklCVVRFTkFNRSAzNwotI2RlZmluZSBBVFRSX0FUVFJJQlVURVRZUEUgMzgKLSNkZWZp
bmUgQVRUUl9BWklNVVRIIDM5Ci0jZGVmaW5lIEFUVFJfQkFTRUZSRVFVRU5DWSA0MAotI2RlZmlu
ZSBBVFRSX0JBU0VMSU5FX1NISUZUIDQxCi0jZGVmaW5lIEFUVFJfQkFTRVBST0ZJTEUgNDIKLSNk
ZWZpbmUgQVRUUl9CQk9YIDQzCi0jZGVmaW5lIEFUVFJfQkVHSU4gNDQKLSNkZWZpbmUgQVRUUl9C
SUFTIDQ1Ci0jZGVmaW5lIEFUVFJfQlkgNDYKLSNkZWZpbmUgQVRUUl9DQUxDTU9ERSA0NwotI2Rl
ZmluZSBBVFRSX0NBUF9IRUlHSFQgNDgKLSNkZWZpbmUgQVRUUl9DTElQIDQ5Ci0jZGVmaW5lIEFU
VFJfQ0xJUF9QQVRIIDUwCi0jZGVmaW5lIEFUVFJfQ0xJUF9SVUxFIDUxCi0jZGVmaW5lIEFUVFJf
Q0xJUFBBVEhVTklUUyA1MgotI2RlZmluZSBBVFRSX0NPTE9SIDUzCi0jZGVmaW5lIEFUVFJfQ09M
T1JfSU5URVJQT0xBVElPTiA1NAotI2RlZmluZSBBVFRSX0NPTE9SX0lOVEVSUE9MQVRJT05fRklM
VEVSUyA1NQotI2RlZmluZSBBVFRSX0NPTE9SX1BST0ZJTEUgNTYKLSNkZWZpbmUgQVRUUl9DT0xP
Ul9SRU5ERVJJTkcgNTcKLSNkZWZpbmUgQVRUUl9DT05URU5UU0NSSVBUVFlQRSA1OAotI2RlZmlu
ZSBBVFRSX0NPTlRFTlRTVFlMRVRZUEUgNTkKLSNkZWZpbmUgQVRUUl9DVVJTT1IgNjAKLSNkZWZp
bmUgQVRUUl9DWCA2MQotI2RlZmluZSBBVFRSX0NZIDYyCi0jZGVmaW5lIEFUVFJfRCA2MwotI2Rl
ZmluZSBBVFRSX0RFU0NFTlQgNjQKLSNkZWZpbmUgQVRUUl9ESUZGVVNFQ09OU1RBTlQgNjUKLSNk
ZWZpbmUgQVRUUl9ESVJFQ1RJT04gNjYKLSNkZWZpbmUgQVRUUl9ESVNQTEFZIDY3Ci0jZGVmaW5l
IEFUVFJfRElWSVNPUiA2OAotI2RlZmluZSBBVFRSX0RPTUlOQU5UX0JBU0VMSU5FIDY5Ci0jZGVm
aW5lIEFUVFJfRFVSIDcwCi0jZGVmaW5lIEFUVFJfRFggNzEKLSNkZWZpbmUgQVRUUl9EWSA3Mgot
I2RlZmluZSBBVFRSX0VER0VNT0RFIDczCi0jZGVmaW5lIEFUVFJfRUxFVkFUSU9OIDc0Ci0jZGVm
aW5lIEFUVFJfRU5BQkxFX0JBQ0tHUk9VTkQgNzUKLSNkZWZpbmUgQVRUUl9FTkQgNzYKLSNkZWZp
bmUgQVRUUl9FWFBPTkVOVCA3NwotI2RlZmluZSBBVFRSX0VYVEVSTkFMUkVTT1VSQ0VTUkVRVUlS
RUQgNzgKLSNkZWZpbmUgQVRUUl9GRUNPTE9STUFUUklYIDc5Ci0jZGVmaW5lIEFUVFJfRkVDT01Q
T1NJVEUgODAKLSNkZWZpbmUgQVRUUl9GRUdBVVNTSUFOQkxVUiA4MQotI2RlZmluZSBBVFRSX0ZF
TU9SUEhPTE9HWSA4MgotI2RlZmluZSBBVFRSX0ZFVElMRSA4MwotI2RlZmluZSBBVFRSX0ZJTEwg
ODQKLSNkZWZpbmUgQVRUUl9GSUxMX09QQUNJVFkgODUKLSNkZWZpbmUgQVRUUl9GSUxMX1JVTEUg
ODYKLSNkZWZpbmUgQVRUUl9GSUxURVIgODcKLSNkZWZpbmUgQVRUUl9GSUxURVJSRVMgODgKLSNk
ZWZpbmUgQVRUUl9GSUxURVJVTklUUyA4OQotI2RlZmluZSBBVFRSX0ZMT09EX0NPTE9SIDkwCi0j
ZGVmaW5lIEFUVFJfRkxPT0RfT1BBQ0lUWSA5MQotI2RlZmluZSBBVFRSX0ZPTlRfRkFNSUxZIDky
Ci0jZGVmaW5lIEFUVFJfRk9OVF9TSVpFIDkzCi0jZGVmaW5lIEFUVFJfRk9OVF9TSVpFX0FESlVT
VCA5NAotI2RlZmluZSBBVFRSX0ZPTlRfU1RSRVRDSCA5NQotI2RlZmluZSBBVFRSX0ZPTlRfU1RZ
TEUgOTYKLSNkZWZpbmUgQVRUUl9GT05UX1ZBUklBTlQgOTcKLSNkZWZpbmUgQVRUUl9GT05UX1dF
SUdIVCA5OAotI2RlZmluZSBBVFRSX0ZPUk1BVCA5OQotI2RlZmluZSBBVFRSX0ZST00gMTAwCi0j
ZGVmaW5lIEFUVFJfRlggMTAxCi0jZGVmaW5lIEFUVFJfRlkgMTAyCi0jZGVmaW5lIEFUVFJfRzEg
MTAzCi0jZGVmaW5lIEFUVFJfRzIgMTA0Ci0jZGVmaW5lIEFUVFJfR0xZUEhfTkFNRSAxMDUKLSNk
ZWZpbmUgQVRUUl9HTFlQSF9PUklFTlRBVElPTl9IT1JJWk9OVEFMIDEwNgotI2RlZmluZSBBVFRS
X0dMWVBIX09SSUVOVEFUSU9OX1ZFUlRJQ0FMIDEwNwotI2RlZmluZSBBVFRSX0dMWVBIUkVGIDEw
OAotI2RlZmluZSBBVFRSX0dSQURJRU5UVFJBTlNGT1JNIDEwOQotI2RlZmluZSBBVFRSX0dSQURJ
RU5UVU5JVFMgMTEwCi0jZGVmaW5lIEFUVFJfSEFOR0lORyAxMTEKLSNkZWZpbmUgQVRUUl9IRUlH
SFQgMTEyCi0jZGVmaW5lIEFUVFJfSE9SSVpfQURWX1ggMTEzCi0jZGVmaW5lIEFUVFJfSE9SSVpf
T1JJR0lOX1ggMTE0Ci0jZGVmaW5lIEFUVFJfSE9SSVpfT1JJR0lOX1kgMTE1Ci0jZGVmaW5lIEFU
VFJfSFJFRiAxMTYKLSNkZWZpbmUgQVRUUl9JREVPR1JBUEhJQyAxMTcKLSNkZWZpbmUgQVRUUl9J
TUFHRV9SRU5ERVJJTkcgMTE4Ci0jZGVmaW5lIEFUVFJfSU4gMTE5Ci0jZGVmaW5lIEFUVFJfSU4y
IDEyMAotI2RlZmluZSBBVFRSX0lOVEVSQ0VQVCAxMjEKLSNkZWZpbmUgQVRUUl9LIDEyMgotI2Rl
ZmluZSBBVFRSX0sxIDEyMwotI2RlZmluZSBBVFRSX0syIDEyNAotI2RlZmluZSBBVFRSX0szIDEy
NQotI2RlZmluZSBBVFRSX0s0IDEyNgotI2RlZmluZSBBVFRSX0tFUk5FTE1BVFJJWCAxMjcKLSNk
ZWZpbmUgQVRUUl9LRVJORUxVTklUTEVOR1RIIDEyOAotI2RlZmluZSBBVFRSX0tFUk5JTkcgMTI5
Ci0jZGVmaW5lIEFUVFJfS0VZUE9JTlRTIDEzMAotI2RlZmluZSBBVFRSX0tFWVNQTElORVMgMTMx
Ci0jZGVmaW5lIEFUVFJfS0VZVElNRVMgMTMyCi0jZGVmaW5lIEFUVFJfTEFORyAxMzMKLSNkZWZp
bmUgQVRUUl9MRU5HVEhBREpVU1QgMTM0Ci0jZGVmaW5lIEFUVFJfTEVUVEVSX1NQQUNJTkcgMTM1
Ci0jZGVmaW5lIEFUVFJfTElHSFRJTkdfQ09MT1IgMTM2Ci0jZGVmaW5lIEFUVFJfTElNSVRJTkdD
T05FQU5HTEUgMTM3Ci0jZGVmaW5lIEFUVFJfTE9DQUwgMTM4Ci0jZGVmaW5lIEFUVFJfTUFSS0VS
X0VORCAxMzkKLSNkZWZpbmUgQVRUUl9NQVJLRVJfTUlEIDE0MAotI2RlZmluZSBBVFRSX01BUktF
Ul9TVEFSVCAxNDEKLSNkZWZpbmUgQVRUUl9NQVJLRVJIRUlHSFQgMTQyCi0jZGVmaW5lIEFUVFJf
TUFSS0VSVU5JVFMgMTQzCi0jZGVmaW5lIEFUVFJfTUFSS0VSV0lEVEggMTQ0Ci0jZGVmaW5lIEFU
VFJfTUFTSyAxNDUKLSNkZWZpbmUgQVRUUl9NQVNLQ09OVEVOVFVOSVRTIDE0NgotI2RlZmluZSBB
VFRSX01BU0tVTklUUyAxNDcKLSNkZWZpbmUgQVRUUl9NQVRIRU1BVElDQUwgMTQ4Ci0jZGVmaW5l
IEFUVFJfTUFYIDE0OQotI2RlZmluZSBBVFRSX01FRElBIDE1MAotI2RlZmluZSBBVFRSX01FVEhP
RCAxNTEKLSNkZWZpbmUgQVRUUl9NSU4gMTUyCi0jZGVmaW5lIEFUVFJfTU9ERSAxNTMKLSNkZWZp
bmUgQVRUUl9OQU1FIDE1NAotI2RlZmluZSBBVFRSX05VTU9DVEFWRVMgMTU1Ci0jZGVmaW5lIEFU
VFJfT0ZGU0VUIDE1NgotI2RlZmluZSBBVFRSX09OQkVHSU4gMTU3Ci0jZGVmaW5lIEFUVFJfT05F
TkQgMTU4Ci0jZGVmaW5lIEFUVFJfT05SRVBFQVQgMTU5Ci0jZGVmaW5lIEFUVFJfT05aT09NIDE2
MAotI2RlZmluZSBBVFRSX09QQUNJVFkgMTYxCi0jZGVmaW5lIEFUVFJfT1BFUkFUT1IgMTYyCi0j
ZGVmaW5lIEFUVFJfT1JERVIgMTYzCi0jZGVmaW5lIEFUVFJfT1JJRU5UIDE2NAotI2RlZmluZSBB
VFRSX09SSUVOVEFUSU9OIDE2NQotI2RlZmluZSBBVFRSX09SSUdJTiAxNjYKLSNkZWZpbmUgQVRU
Ul9PVkVSRkxPVyAxNjcKLSNkZWZpbmUgQVRUUl9PVkVSTElORV9QT1NJVElPTiAxNjgKLSNkZWZp
bmUgQVRUUl9PVkVSTElORV9USElDS05FU1MgMTY5Ci0jZGVmaW5lIEFUVFJfUEFOT1NFXzEgMTcw
Ci0jZGVmaW5lIEFUVFJfUEFUSCAxNzEKLSNkZWZpbmUgQVRUUl9QQVRITEVOR1RIIDE3MgotI2Rl
ZmluZSBBVFRSX1BBVFRFUk5DT05URU5UVU5JVFMgMTczCi0jZGVmaW5lIEFUVFJfUEFUVEVSTlRS
QU5TRk9STSAxNzQKLSNkZWZpbmUgQVRUUl9QQVRURVJOVU5JVFMgMTc1Ci0jZGVmaW5lIEFUVFJf
UE9JTlRFUl9FVkVOVFMgMTc2Ci0jZGVmaW5lIEFUVFJfUE9JTlRTIDE3NwotI2RlZmluZSBBVFRS
X1BPSU5UU0FUWCAxNzgKLSNkZWZpbmUgQVRUUl9QT0lOVFNBVFkgMTc5Ci0jZGVmaW5lIEFUVFJf
UE9JTlRTQVRaIDE4MAotI2RlZmluZSBBVFRSX1BSRVNFUlZFQUxQSEEgMTgxCi0jZGVmaW5lIEFU
VFJfUFJFU0VSVkVBU1BFQ1RSQVRJTyAxODIKLSNkZWZpbmUgQVRUUl9QUklNSVRJVkVVTklUUyAx
ODMKLSNkZWZpbmUgQVRUUl9SIDE4NAotI2RlZmluZSBBVFRSX1JBRElVUyAxODUKLSNkZWZpbmUg
QVRUUl9SRUZYIDE4NgotI2RlZmluZSBBVFRSX1JFRlkgMTg3Ci0jZGVmaW5lIEFUVFJfUkVOREVS
SU5HX0lOVEVOVCAxODgKLSNkZWZpbmUgQVRUUl9SRVBFQVRDT1VOVCAxODkKLSNkZWZpbmUgQVRU
Ul9SRVBFQVREVVIgMTkwCi0jZGVmaW5lIEFUVFJfUkVRVUlSRURFWFRFTlNJT05TIDE5MQotI2Rl
ZmluZSBBVFRSX1JFUVVJUkVERkVBVFVSRVMgMTkyCi0jZGVmaW5lIEFUVFJfUkVTVEFSVCAxOTMK
LSNkZWZpbmUgQVRUUl9SRVNVTFQgMTk0Ci0jZGVmaW5lIEFUVFJfUk9UQVRFIDE5NQotI2RlZmlu
ZSBBVFRSX1JYIDE5NgotI2RlZmluZSBBVFRSX1JZIDE5NwotI2RlZmluZSBBVFRSX1NDQUxFIDE5
OAotI2RlZmluZSBBVFRSX1NFRUQgMTk5Ci0jZGVmaW5lIEFUVFJfU0hBUEVfUkVOREVSSU5HIDIw
MAotI2RlZmluZSBBVFRSX1NMT1BFIDIwMQotI2RlZmluZSBBVFRSX1NQQUNFIDIwMgotI2RlZmlu
ZSBBVFRSX1NQQUNJTkcgMjAzCi0jZGVmaW5lIEFUVFJfU1BFQ1VMQVJDT05TVEFOVCAyMDQKLSNk
ZWZpbmUgQVRUUl9TUEVDVUxBUkVYUE9ORU5UIDIwNQotI2RlZmluZSBBVFRSX1NQUkVBRE1FVEhP
RCAyMDYKLSNkZWZpbmUgQVRUUl9TVEFSVE9GRlNFVCAyMDcKLSNkZWZpbmUgQVRUUl9TVERERVZJ
QVRJT04gMjA4Ci0jZGVmaW5lIEFUVFJfU1RFTUggMjA5Ci0jZGVmaW5lIEFUVFJfU1RFTVYgMjEw
Ci0jZGVmaW5lIEFUVFJfU1RJVENIVElMRVMgMjExCi0jZGVmaW5lIEFUVFJfU1RPUF9DT0xPUiAy
MTIKLSNkZWZpbmUgQVRUUl9TVE9QX09QQUNJVFkgMjEzCi0jZGVmaW5lIEFUVFJfU1RSSUtFVEhS
T1VHSF9QT1NJVElPTiAyMTQKLSNkZWZpbmUgQVRUUl9TVFJJS0VUSFJPVUdIX1RISUNLTkVTUyAy
MTUKLSNkZWZpbmUgQVRUUl9TVFJPS0UgMjE2Ci0jZGVmaW5lIEFUVFJfU1RST0tFX0RBU0hBUlJB
WSAyMTcKLSNkZWZpbmUgQVRUUl9TVFJPS0VfREFTSE9GRlNFVCAyMTgKLSNkZWZpbmUgQVRUUl9T
VFJPS0VfTElORUNBUCAyMTkKLSNkZWZpbmUgQVRUUl9TVFJPS0VfTElORUpPSU4gMjIwCi0jZGVm
aW5lIEFUVFJfU1RST0tFX01JVEVSTElNSVQgMjIxCi0jZGVmaW5lIEFUVFJfU1RST0tFX09QQUNJ
VFkgMjIyCi0jZGVmaW5lIEFUVFJfU1RST0tFX1dJRFRIIDIyMwotI2RlZmluZSBBVFRSX1NUWUxF
IDIyNAotI2RlZmluZSBBVFRSX1NVUkZBQ0VTQ0FMRSAyMjUKLSNkZWZpbmUgQVRUUl9TWVNURU1M
QU5HVUFHRSAyMjYKLSNkZWZpbmUgQVRUUl9UQUJMRVZBTFVFUyAyMjcKLSNkZWZpbmUgQVRUUl9U
QVJHRVQgMjI4Ci0jZGVmaW5lIEFUVFJfVEFSR0VUWCAyMjkKLSNkZWZpbmUgQVRUUl9UQVJHRVRZ
IDIzMAotI2RlZmluZSBBVFRSX1RFWFRfQU5DSE9SIDIzMQotI2RlZmluZSBBVFRSX1RFWFRfREVD
T1JBVElPTiAyMzIKLSNkZWZpbmUgQVRUUl9URVhUX1JFTkRFUklORyAyMzMKLSNkZWZpbmUgQVRU
Ul9URVhUTEVOR1RIIDIzNAotI2RlZmluZSBBVFRSX1RJVExFIDIzNQotI2RlZmluZSBBVFRSX1RP
IDIzNgotI2RlZmluZSBBVFRSX1RSQU5TRk9STSAyMzcKLSNkZWZpbmUgQVRUUl9UWVBFIDIzOAot
I2RlZmluZSBBVFRSX1UxIDIzOQotI2RlZmluZSBBVFRSX1UyIDI0MAotI2RlZmluZSBBVFRSX1VO
REVSTElORV9QT1NJVElPTiAyNDEKLSNkZWZpbmUgQVRUUl9VTkRFUkxJTkVfVEhJQ0tORVNTIDI0
MgotI2RlZmluZSBBVFRSX1VOSUNPREUgMjQzCi0jZGVmaW5lIEFUVFJfVU5JQ09ERV9CSURJIDI0
NAotI2RlZmluZSBBVFRSX1VOSUNPREVfUkFOR0UgMjQ1Ci0jZGVmaW5lIEFUVFJfVU5JVFNfUEVS
X0VNIDI0NgotI2RlZmluZSBBVFRSX1ZfQUxQSEFCRVRJQyAyNDcKLSNkZWZpbmUgQVRUUl9WX0hB
TkdJTkcgMjQ4Ci0jZGVmaW5lIEFUVFJfVl9JREVPR1JBUEhJQyAyNDkKLSNkZWZpbmUgQVRUUl9W
X01BVEhFTUFUSUNBTCAyNTAKLSNkZWZpbmUgQVRUUl9WQUxVRVMgMjUxCi0jZGVmaW5lIEFUVFJf
VkVSU0lPTiAyNTIKLSNkZWZpbmUgQVRUUl9WRVJUX0FEVl9ZIDI1MwotI2RlZmluZSBBVFRSX1ZF
UlRfT1JJR0lOX1ggMjU0Ci0jZGVmaW5lIEFUVFJfVkVSVF9PUklHSU5fWSAyNTUKLSNkZWZpbmUg
QVRUUl9WSUVXQk9YIDI1NgotI2RlZmluZSBBVFRSX1ZJRVdUQVJHRVQgMjU3Ci0jZGVmaW5lIEFU
VFJfVklTSUJJTElUWSAyNTgKLSNkZWZpbmUgQVRUUl9XSURUSCAyNTkKLSNkZWZpbmUgQVRUUl9X
SURUSFMgMjYwCi0jZGVmaW5lIEFUVFJfV09SRF9TUEFDSU5HIDI2MQotI2RlZmluZSBBVFRSX1dS
SVRJTkdfTU9ERSAyNjIKLSNkZWZpbmUgQVRUUl9YIDI2MwotI2RlZmluZSBBVFRSX1hfSEVJR0hU
IDI2NAotI2RlZmluZSBBVFRSX1gxIDI2NQotI2RlZmluZSBBVFRSX1gyIDI2NgotI2RlZmluZSBB
VFRSX1hDSEFOTkVMU0VMRUNUT1IgMjY3Ci0jZGVmaW5lIEFUVFJfWSAyNjgKLSNkZWZpbmUgQVRU
Ul9ZMSAyNjkKLSNkZWZpbmUgQVRUUl9ZMiAyNzAKLSNkZWZpbmUgQVRUUl9ZQ0hBTk5FTFNFTEVD
VE9SIDI3MQotI2RlZmluZSBBVFRSX1ogMjcyCi0jZGVmaW5lIEFUVFJfWk9PTUFORFBBTiAyNzMK
LSNkZWZpbmUgQVRUUl9MQVNUX1NWR0FUVFIgMjczCi0KLW5hbWVzcGFjZSBLU1ZHCi17Ci0gICAg
Y29uc3QgY2hhciAqZ2V0QXR0ck5hbWUodW5zaWduZWQgc2hvcnQgaWQpOwotICAgIGludCBnZXRB
dHRySUQoY29uc3QgY2hhciAqdGFnU3RyLCBpbnQgbGVuKTsKLX07Ci0KLSNlbmRpZgpJbmRleDog
a3N2ZzIvc3ZnL3N2Z3RhZ3MuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBrc3ZnMi9zdmcvc3ZndGFn
cy5jCmRpZmYgLU4ga3N2ZzIvc3ZnL3N2Z3RhZ3MuYwotLS0ga3N2ZzIvc3ZnL3N2Z3RhZ3MuYwk5
IEp1bCAyMDA1IDA2OjU1OjQzIC0wMDAwCTEuMQorKysga3N2ZzIvc3ZnL3N2Z3RhZ3MuYwkxIEph
biAxOTcwIDAwOjAwOjAwIC0wMDAwCkBAIC0xLDU5OCArMCwwIEBACi0vKiBBTlNJLUMgY29kZSBw
cm9kdWNlZCBieSBncGVyZiB2ZXJzaW9uIDMuMC4xICovCi0vKiBDb21tYW5kLWxpbmU6IGdwZXJm
IC1hIC1MIEFOU0ktQyAtUCAtRCAtRSAtQyAtbCAtbyAtdCAtayAnKicgLU5maW5kU1ZHVGFnIC1I
aGFzaF90YWcgLVd3b3JkbGlzdF90YWcgLVFzcG9vbF9UYWcgc3ZndGFncy5ncGVyZiAgKi8KLQot
I2lmICEoKCcgJyA9PSAzMikgJiYgKCchJyA9PSAzMykgJiYgKCciJyA9PSAzNCkgJiYgKCcjJyA9
PSAzNSkgXAotICAgICAgJiYgKCclJyA9PSAzNykgJiYgKCcmJyA9PSAzOCkgJiYgKCdcJycgPT0g
MzkpICYmICgnKCcgPT0gNDApIFwKLSAgICAgICYmICgnKScgPT0gNDEpICYmICgnKicgPT0gNDIp
ICYmICgnKycgPT0gNDMpICYmICgnLCcgPT0gNDQpIFwKLSAgICAgICYmICgnLScgPT0gNDUpICYm
ICgnLicgPT0gNDYpICYmICgnLycgPT0gNDcpICYmICgnMCcgPT0gNDgpIFwKLSAgICAgICYmICgn
MScgPT0gNDkpICYmICgnMicgPT0gNTApICYmICgnMycgPT0gNTEpICYmICgnNCcgPT0gNTIpIFwK
LSAgICAgICYmICgnNScgPT0gNTMpICYmICgnNicgPT0gNTQpICYmICgnNycgPT0gNTUpICYmICgn
OCcgPT0gNTYpIFwKLSAgICAgICYmICgnOScgPT0gNTcpICYmICgnOicgPT0gNTgpICYmICgnOycg
PT0gNTkpICYmICgnPCcgPT0gNjApIFwKLSAgICAgICYmICgnPScgPT0gNjEpICYmICgnPicgPT0g
NjIpICYmICgnPycgPT0gNjMpICYmICgnQScgPT0gNjUpIFwKLSAgICAgICYmICgnQicgPT0gNjYp
ICYmICgnQycgPT0gNjcpICYmICgnRCcgPT0gNjgpICYmICgnRScgPT0gNjkpIFwKLSAgICAgICYm
ICgnRicgPT0gNzApICYmICgnRycgPT0gNzEpICYmICgnSCcgPT0gNzIpICYmICgnSScgPT0gNzMp
IFwKLSAgICAgICYmICgnSicgPT0gNzQpICYmICgnSycgPT0gNzUpICYmICgnTCcgPT0gNzYpICYm
ICgnTScgPT0gNzcpIFwKLSAgICAgICYmICgnTicgPT0gNzgpICYmICgnTycgPT0gNzkpICYmICgn
UCcgPT0gODApICYmICgnUScgPT0gODEpIFwKLSAgICAgICYmICgnUicgPT0gODIpICYmICgnUycg
PT0gODMpICYmICgnVCcgPT0gODQpICYmICgnVScgPT0gODUpIFwKLSAgICAgICYmICgnVicgPT0g
ODYpICYmICgnVycgPT0gODcpICYmICgnWCcgPT0gODgpICYmICgnWScgPT0gODkpIFwKLSAgICAg
ICYmICgnWicgPT0gOTApICYmICgnWycgPT0gOTEpICYmICgnXFwnID09IDkyKSAmJiAoJ10nID09
IDkzKSBcCi0gICAgICAmJiAoJ14nID09IDk0KSAmJiAoJ18nID09IDk1KSAmJiAoJ2EnID09IDk3
KSAmJiAoJ2InID09IDk4KSBcCi0gICAgICAmJiAoJ2MnID09IDk5KSAmJiAoJ2QnID09IDEwMCkg
JiYgKCdlJyA9PSAxMDEpICYmICgnZicgPT0gMTAyKSBcCi0gICAgICAmJiAoJ2cnID09IDEwMykg
JiYgKCdoJyA9PSAxMDQpICYmICgnaScgPT0gMTA1KSAmJiAoJ2onID09IDEwNikgXAotICAgICAg
JiYgKCdrJyA9PSAxMDcpICYmICgnbCcgPT0gMTA4KSAmJiAoJ20nID09IDEwOSkgJiYgKCduJyA9
PSAxMTApIFwKLSAgICAgICYmICgnbycgPT0gMTExKSAmJiAoJ3AnID09IDExMikgJiYgKCdxJyA9
PSAxMTMpICYmICgncicgPT0gMTE0KSBcCi0gICAgICAmJiAoJ3MnID09IDExNSkgJiYgKCd0JyA9
PSAxMTYpICYmICgndScgPT0gMTE3KSAmJiAoJ3YnID09IDExOCkgXAotICAgICAgJiYgKCd3JyA9
PSAxMTkpICYmICgneCcgPT0gMTIwKSAmJiAoJ3knID09IDEyMSkgJiYgKCd6JyA9PSAxMjIpIFwK
LSAgICAgICYmICgneycgPT0gMTIzKSAmJiAoJ3wnID09IDEyNCkgJiYgKCd9JyA9PSAxMjUpICYm
ICgnficgPT0gMTI2KSkKLS8qIFRoZSBjaGFyYWN0ZXIgc2V0IGlzIG5vdCBiYXNlZCBvbiBJU08t
NjQ2LiAgKi8KLSNlcnJvciAiZ3BlcmYgZ2VuZXJhdGVkIHRhYmxlcyBkb24ndCB3b3JrIHdpdGgg
dGhpcyBleGVjdXRpb24gY2hhcmFjdGVyIHNldC4gUGxlYXNlIHJlcG9ydCBhIGJ1ZyB0byA8YnVn
LWdudS1ncGVyZkBnbnUub3JnPi4iCi0jZW5kaWYKLQotI2xpbmUgMSAic3ZndGFncy5ncGVyZiIK
LQotLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gc3ZndGFncy5p
biBieSBkb21tYWtldGFncywgZG8gbm90IGVkaXQgKi8KLS8qIENvcHlyaWdodCAxOTk5IExhcnMg
S25vbGwgKi8KLSNpbmNsdWRlICJzdmd0YWdzLmgiCi0jbGluZSA2ICJzdmd0YWdzLmdwZXJmIgot
c3RydWN0IHRhZ3MgewotCWludCBuYW1lOwotCWludCBpZDsKLX07Ci0vKiBtYXhpbXVtIGtleSBy
YW5nZSA9IDE0MiwgZHVwbGljYXRlcyA9IDAgKi8KLQotI2lmZGVmIF9fR05VQ19fCi1fX2lubGlu
ZQotI2Vsc2UKLSNpZmRlZiBfX2NwbHVzcGx1cwotaW5saW5lCi0jZW5kaWYKLSNlbmRpZgotc3Rh
dGljIHVuc2lnbmVkIGludAotaGFzaF90YWcgKHJlZ2lzdGVyIGNvbnN0IGNoYXIgKnN0ciwgcmVn
aXN0ZXIgdW5zaWduZWQgaW50IGxlbikKLXsKLSAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIg
YXNzb192YWx1ZXNbXSA9Ci0gICAgewotICAgICAgMTQzLCAxNDMsIDE0MywgMTQzLCAxNDMsIDE0
MywgMTQzLCAxNDMsIDE0MywgMTQzLAotICAgICAgMTQzLCAxNDMsIDE0MywgMTQzLCAxNDMsIDE0
MywgMTQzLCAxNDMsIDE0MywgMTQzLAotICAgICAgMTQzLCAxNDMsIDE0MywgMTQzLCAxNDMsIDE0
MywgMTQzLCAxNDMsIDE0MywgMTQzLAotICAgICAgMTQzLCAxNDMsIDE0MywgMTQzLCAxNDMsIDE0
MywgMTQzLCAxNDMsIDE0MywgMTQzLAotICAgICAgMTQzLCAxNDMsIDE0MywgMTQzLCAxNDMsIDE0
MywgMTQzLCAxNDMsIDE0MywgMTQzLAotICAgICAgMTQzLCAxNDMsIDE0MywgMTQzLCAxNDMsIDE0
MywgMTQzLCAxNDMsIDE0MywgMTQzLAotICAgICAgMTQzLCAxNDMsIDE0MywgMTQzLCAxNDMsICAg
NSwgIDQwLCAgMTAsICAgNSwgMTQzLAotICAgICAgICA1LCAgIDAsIDE0MywgIDQ1LCAxNDMsIDE0
MywgICA1LCAgMTUsICAgNSwgICAwLAotICAgICAgIDQwLCAxNDMsICAyNSwgICAwLCAgMTAsIDE0
MywgMTQzLCAxNDMsIDE0MywgMTQzLAotICAgICAgMTQzLCAxNDMsIDE0MywgMTQzLCAxNDMsICAg
MCwgMTQzLCAgIDAsICAyMCwgICAwLAotICAgICAgIDM1LCAgIDAsICAxMCwgIDIwLCAgMjUsICAg
MCwgICA1LCAgNDAsICAgMCwgIDEwLAotICAgICAgICA1LCAgMTAsICAgNSwgMTQzLCAgIDAsICAg
MCwgICAwLCAgMTUsICAgMCwgIDcwLAotICAgICAgIDIwLCAgIDUsIDE0MywgMTQzLCAxNDMsIDE0
MywgMTQzLCAxNDMsIDE0MywgMTQzLAotICAgICAgMTQzLCAxNDMsIDE0MywgMTQzLCAxNDMsIDE0
MywgMTQzLCAxNDMsIDE0MywgMTQzLAotICAgICAgMTQzLCAxNDMsIDE0MywgMTQzLCAxNDMsIDE0
MywgMTQzLCAxNDMsIDE0MywgMTQzLAotICAgICAgMTQzLCAxNDMsIDE0MywgMTQzLCAxNDMsIDE0
MywgMTQzLCAxNDMsIDE0MywgMTQzLAotICAgICAgMTQzLCAxNDMsIDE0MywgMTQzLCAxNDMsIDE0
MywgMTQzLCAxNDMsIDE0MywgMTQzLAotICAgICAgMTQzLCAxNDMsIDE0MywgMTQzLCAxNDMsIDE0
MywgMTQzLCAxNDMsIDE0MywgMTQzLAotICAgICAgMTQzLCAxNDMsIDE0MywgMTQzLCAxNDMsIDE0
MywgMTQzLCAxNDMsIDE0MywgMTQzLAotICAgICAgMTQzLCAxNDMsIDE0MywgMTQzLCAxNDMsIDE0
MywgMTQzLCAxNDMsIDE0MywgMTQzLAotICAgICAgMTQzLCAxNDMsIDE0MywgMTQzLCAxNDMsIDE0
MywgMTQzLCAxNDMsIDE0MywgMTQzLAotICAgICAgMTQzLCAxNDMsIDE0MywgMTQzLCAxNDMsIDE0
MywgMTQzLCAxNDMsIDE0MywgMTQzLAotICAgICAgMTQzLCAxNDMsIDE0MywgMTQzLCAxNDMsIDE0
MywgMTQzLCAxNDMsIDE0MywgMTQzLAotICAgICAgMTQzLCAxNDMsIDE0MywgMTQzLCAxNDMsIDE0
MywgMTQzLCAxNDMsIDE0MywgMTQzLAotICAgICAgMTQzLCAxNDMsIDE0MywgMTQzLCAxNDMsIDE0
MywgMTQzLCAxNDMsIDE0MywgMTQzLAotICAgICAgMTQzLCAxNDMsIDE0MywgMTQzLCAxNDMsIDE0
MwotICAgIH07Ci0gIHJlZ2lzdGVyIGludCBodmFsID0gbGVuOwotCi0gIHN3aXRjaCAoaHZhbCkK
LSAgICB7Ci0gICAgICBkZWZhdWx0OgotICAgICAgICBodmFsICs9IGFzc29fdmFsdWVzWyh1bnNp
Z25lZCBjaGFyKXN0clsxOF1dOwotICAgICAgLypGQUxMVEhST1VHSCovCi0gICAgICBjYXNlIDE4
OgotICAgICAgICBodmFsICs9IGFzc29fdmFsdWVzWyh1bnNpZ25lZCBjaGFyKXN0clsxN11dOwot
ICAgICAgLypGQUxMVEhST1VHSCovCi0gICAgICBjYXNlIDE3OgotICAgICAgICBodmFsICs9IGFz
c29fdmFsdWVzWyh1bnNpZ25lZCBjaGFyKXN0clsxNl1dOwotICAgICAgLypGQUxMVEhST1VHSCov
Ci0gICAgICBjYXNlIDE2OgotICAgICAgICBodmFsICs9IGFzc29fdmFsdWVzWyh1bnNpZ25lZCBj
aGFyKXN0clsxNV1dOwotICAgICAgLypGQUxMVEhST1VHSCovCi0gICAgICBjYXNlIDE1OgotICAg
ICAgICBodmFsICs9IGFzc29fdmFsdWVzWyh1bnNpZ25lZCBjaGFyKXN0clsxNF1dOwotICAgICAg
LypGQUxMVEhST1VHSCovCi0gICAgICBjYXNlIDE0OgotICAgICAgICBodmFsICs9IGFzc29fdmFs
dWVzWyh1bnNpZ25lZCBjaGFyKXN0clsxM11dOwotICAgICAgLypGQUxMVEhST1VHSCovCi0gICAg
ICBjYXNlIDEzOgotICAgICAgICBodmFsICs9IGFzc29fdmFsdWVzWyh1bnNpZ25lZCBjaGFyKXN0
clsxMl1dOwotICAgICAgLypGQUxMVEhST1VHSCovCi0gICAgICBjYXNlIDEyOgotICAgICAgICBo
dmFsICs9IGFzc29fdmFsdWVzWyh1bnNpZ25lZCBjaGFyKXN0clsxMV1dOwotICAgICAgLypGQUxM
VEhST1VHSCovCi0gICAgICBjYXNlIDExOgotICAgICAgICBodmFsICs9IGFzc29fdmFsdWVzWyh1
bnNpZ25lZCBjaGFyKXN0clsxMF1dOwotICAgICAgLypGQUxMVEhST1VHSCovCi0gICAgICBjYXNl
IDEwOgotICAgICAgICBodmFsICs9IGFzc29fdmFsdWVzWyh1bnNpZ25lZCBjaGFyKXN0cls5XV07
Ci0gICAgICAvKkZBTExUSFJPVUdIKi8KLSAgICAgIGNhc2UgOToKLSAgICAgICAgaHZhbCArPSBh
c3NvX3ZhbHVlc1sodW5zaWduZWQgY2hhcilzdHJbOF1dOwotICAgICAgLypGQUxMVEhST1VHSCov
Ci0gICAgICBjYXNlIDg6Ci0gICAgICAgIGh2YWwgKz0gYXNzb192YWx1ZXNbKHVuc2lnbmVkIGNo
YXIpc3RyWzddXTsKLSAgICAgIC8qRkFMTFRIUk9VR0gqLwotICAgICAgY2FzZSA3OgotICAgICAg
ICBodmFsICs9IGFzc29fdmFsdWVzWyh1bnNpZ25lZCBjaGFyKXN0cls2XV07Ci0gICAgICAvKkZB
TExUSFJPVUdIKi8KLSAgICAgIGNhc2UgNjoKLSAgICAgICAgaHZhbCArPSBhc3NvX3ZhbHVlc1so
dW5zaWduZWQgY2hhcilzdHJbNV1dOwotICAgICAgLypGQUxMVEhST1VHSCovCi0gICAgICBjYXNl
IDU6Ci0gICAgICAgIGh2YWwgKz0gYXNzb192YWx1ZXNbKHVuc2lnbmVkIGNoYXIpc3RyWzRdXTsK
LSAgICAgIC8qRkFMTFRIUk9VR0gqLwotICAgICAgY2FzZSA0OgotICAgICAgICBodmFsICs9IGFz
c29fdmFsdWVzWyh1bnNpZ25lZCBjaGFyKXN0clszXV07Ci0gICAgICAvKkZBTExUSFJPVUdIKi8K
LSAgICAgIGNhc2UgMzoKLSAgICAgICAgaHZhbCArPSBhc3NvX3ZhbHVlc1sodW5zaWduZWQgY2hh
cilzdHJbMl1dOwotICAgICAgLypGQUxMVEhST1VHSCovCi0gICAgICBjYXNlIDI6Ci0gICAgICAg
IGh2YWwgKz0gYXNzb192YWx1ZXNbKHVuc2lnbmVkIGNoYXIpc3RyWzFdXTsKLSAgICAgIC8qRkFM
TFRIUk9VR0gqLwotICAgICAgY2FzZSAxOgotICAgICAgICBodmFsICs9IGFzc29fdmFsdWVzWyh1
bnNpZ25lZCBjaGFyKXN0clswXV07Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgcmV0dXJuIGh2
YWw7Ci19Ci0KLXN0cnVjdCBzcG9vbF9UYWdfdAotICB7Ci0gICAgY2hhciBzcG9vbF9UYWdfc3Ry
MFtzaXplb2YoImEiKV07Ci0gICAgY2hhciBzcG9vbF9UYWdfc3RyMVtzaXplb2YoInNldCIpXTsK
LSAgICBjaGFyIHNwb29sX1RhZ19zdHIyW3NpemVvZigicmVjdCIpXTsKLSAgICBjaGFyIHNwb29s
X1RhZ19zdHIzW3NpemVvZigidGl0bGUiKV07Ci0gICAgY2hhciBzcG9vbF9UYWdfc3RyNFtzaXpl
b2YoImNpcmNsZSIpXTsKLSAgICBjaGFyIHNwb29sX1RhZ19zdHI1W3NpemVvZigibGluZSIpXTsK
LSAgICBjaGFyIHNwb29sX1RhZ19zdHI2W3NpemVvZigic3R5bGUiKV07Ci0gICAgY2hhciBzcG9v
bF9UYWdfc3RyN1tzaXplb2YoInNjcmlwdCIpXTsKLSAgICBjaGFyIHNwb29sX1RhZ19zdHI4W3Np
emVvZigiZWxsaXBzZSIpXTsKLSAgICBjaGFyIHNwb29sX1RhZ19zdHI5W3NpemVvZigidHJlZiIp
XTsKLSAgICBjaGFyIHNwb29sX1RhZ19zdHIxMFtzaXplb2YoInRzcGFuIildOwotICAgIGNoYXIg
c3Bvb2xfVGFnX3N0cjExW3NpemVvZigiZmlsdGVyIildOwotICAgIGNoYXIgc3Bvb2xfVGFnX3N0
cjEyW3NpemVvZigicGF0dGVybiIpXTsKLSAgICBjaGFyIHNwb29sX1RhZ19zdHIxM1tzaXplb2Yo
InVzZSIpXTsKLSAgICBjaGFyIHNwb29sX1RhZ19zdHIxNFtzaXplb2YoInN0b3AiKV07Ci0gICAg
Y2hhciBzcG9vbF9UYWdfc3RyMTVbc2l6ZW9mKCJnIildOwotICAgIGNoYXIgc3Bvb2xfVGFnX3N0
cjE2W3NpemVvZigiYW5pbWF0ZSIpXTsKLSAgICBjaGFyIHNwb29sX1RhZ19zdHIxN1tzaXplb2Yo
InN2ZyIpXTsKLSAgICBjaGFyIHNwb29sX1RhZ19zdHIxOFtzaXplb2YoInRleHQiKV07Ci0gICAg
Y2hhciBzcG9vbF9UYWdfc3RyMTlbc2l6ZW9mKCJmZVRpbGUiKV07Ci0gICAgY2hhciBzcG9vbF9U
YWdfc3RyMjBbc2l6ZW9mKCJmb250IildOwotICAgIGNoYXIgc3Bvb2xfVGFnX3N0cjIxW3NpemVv
ZigiY3Vyc29yIildOwotICAgIGNoYXIgc3Bvb2xfVGFnX3N0cjIyW3NpemVvZigicG9seWxpbmUi
KV07Ci0gICAgY2hhciBzcG9vbF9UYWdfc3RyMjNbc2l6ZW9mKCJwYXRoIildOwotICAgIGNoYXIg
c3Bvb2xfVGFnX3N0cjI0W3NpemVvZigiaW1hZ2UiKV07Ci0gICAgY2hhciBzcG9vbF9UYWdfc3Ry
MjVbc2l6ZW9mKCJmZU9mZnNldCIpXTsKLSAgICBjaGFyIHNwb29sX1RhZ19zdHIyNltzaXplb2Yo
ImRlc2MiKV07Ci0gICAgY2hhciBzcG9vbF9UYWdfc3RyMjdbc2l6ZW9mKCJmZUZ1bmNHIildOwot
ICAgIGNoYXIgc3Bvb2xfVGFnX3N0cjI4W3NpemVvZigiYWx0R2x5cGgiKV07Ci0gICAgY2hhciBz
cG9vbF9UYWdfc3RyMjlbc2l6ZW9mKCJmb250X2ZhY2UiKV07Ci0gICAgY2hhciBzcG9vbF9UYWdf
c3RyMzBbc2l6ZW9mKCJtcGF0aCIpXTsKLSAgICBjaGFyIHNwb29sX1RhZ19zdHIzMVtzaXplb2Yo
ImZlRnVuY0EiKV07Ci0gICAgY2hhciBzcG9vbF9UYWdfc3RyMzJbc2l6ZW9mKCJmb250X2ZhY2Vf
c3JjIildOwotICAgIGNoYXIgc3Bvb2xfVGFnX3N0cjMzW3NpemVvZigiZGVmcyIpXTsKLSAgICBj
aGFyIHNwb29sX1RhZ19zdHIzNFtzaXplb2YoInZrZXJuIildOwotICAgIGNoYXIgc3Bvb2xfVGFn
X3N0cjM1W3NpemVvZigic3ltYm9sIildOwotICAgIGNoYXIgc3Bvb2xfVGFnX3N0cjM2W3NpemVv
ZigiZmVNZXJnZSIpXTsKLSAgICBjaGFyIHNwb29sX1RhZ19zdHIzN1tzaXplb2YoIm1ldGFkYXRh
IildOwotICAgIGNoYXIgc3Bvb2xfVGFnX3N0cjM4W3NpemVvZigibWFzayIpXTsKLSAgICBjaGFy
IHNwb29sX1RhZ19zdHIzOVtzaXplb2YoIm1hcmtlciIpXTsKLSAgICBjaGFyIHNwb29sX1RhZ19z
dHI0MFtzaXplb2YoImFuaW1hdGVDb2xvciIpXTsKLSAgICBjaGFyIHNwb29sX1RhZ19zdHI0MVtz
aXplb2YoImNvbG9yX3Byb2ZpbGUiKV07Ci0gICAgY2hhciBzcG9vbF9UYWdfc3RyNDJbc2l6ZW9m
KCJsaW5lYXJHcmFkaWVudCIpXTsKLSAgICBjaGFyIHNwb29sX1RhZ19zdHI0M1tzaXplb2YoImds
eXBoIildOwotICAgIGNoYXIgc3Bvb2xfVGFnX3N0cjQ0W3NpemVvZigiYWx0R2x5cGhEZWYiKV07
Ci0gICAgY2hhciBzcG9vbF9UYWdfc3RyNDVbc2l6ZW9mKCJwb2x5Z29uIildOwotICAgIGNoYXIg
c3Bvb2xfVGFnX3N0cjQ2W3NpemVvZigiZm9udF9mYWNlX3VyaSIpXTsKLSAgICBjaGFyIHNwb29s
X1RhZ19zdHI0N1tzaXplb2YoImZvbnRfZmFjZV9uYW1lIildOwotICAgIGNoYXIgc3Bvb2xfVGFn
X3N0cjQ4W3NpemVvZigiZmVDb21wb3NpdGUiKV07Ci0gICAgY2hhciBzcG9vbF9UYWdfc3RyNDlb
c2l6ZW9mKCJmZUZ1bmNSIildOwotICAgIGNoYXIgc3Bvb2xfVGFnX3N0cjUwW3NpemVvZigiYW5p
bWF0ZU1vdGlvbiIpXTsKLSAgICBjaGFyIHNwb29sX1RhZ19zdHI1MVtzaXplb2YoImZlRGlzcGxh
Y2VtZW50TWFwIildOwotICAgIGNoYXIgc3Bvb2xfVGFnX3N0cjUyW3NpemVvZigidmlldyIpXTsK
LSAgICBjaGFyIHNwb29sX1RhZ19zdHI1M1tzaXplb2YoImhrZXJuIildOwotICAgIGNoYXIgc3Bv
b2xfVGFnX3N0cjU0W3NpemVvZigiYW5pbWF0ZVRyYW5zZm9ybSIpXTsKLSAgICBjaGFyIHNwb29s
X1RhZ19zdHI1NVtzaXplb2YoImZlRmxvb2QiKV07Ci0gICAgY2hhciBzcG9vbF9UYWdfc3RyNTZb
c2l6ZW9mKCJjbGlwUGF0aCIpXTsKLSAgICBjaGFyIHNwb29sX1RhZ19zdHI1N1tzaXplb2YoImRl
ZmluaXRpb25fc3JjIildOwotICAgIGNoYXIgc3Bvb2xfVGFnX3N0cjU4W3NpemVvZigiZm9udF9m
YWNlX2Zvcm1hdCIpXTsKLSAgICBjaGFyIHNwb29sX1RhZ19zdHI1OVtzaXplb2YoImZlRnVuY0Ii
KV07Ci0gICAgY2hhciBzcG9vbF9UYWdfc3RyNjBbc2l6ZW9mKCJmb3JlaWduT2JqZWN0IildOwot
ICAgIGNoYXIgc3Bvb2xfVGFnX3N0cjYxW3NpemVvZigiZmVEaXN0YW50TGlnaHQiKV07Ci0gICAg
Y2hhciBzcG9vbF9UYWdfc3RyNjJbc2l6ZW9mKCJmZVNwb3RMaWdodCIpXTsKLSAgICBjaGFyIHNw
b29sX1RhZ19zdHI2M1tzaXplb2YoImZlVHVyYnVsZW5jZSIpXTsKLSAgICBjaGFyIHNwb29sX1Rh
Z19zdHI2NFtzaXplb2YoImZlQ29sb3JNYXRyaXgiKV07Ci0gICAgY2hhciBzcG9vbF9UYWdfc3Ry
NjVbc2l6ZW9mKCJyYWRpYWxHcmFkaWVudCIpXTsKLSAgICBjaGFyIHNwb29sX1RhZ19zdHI2Nltz
aXplb2YoImZlSW1hZ2UiKV07Ci0gICAgY2hhciBzcG9vbF9UYWdfc3RyNjdbc2l6ZW9mKCJ0ZXh0
UGF0aCIpXTsKLSAgICBjaGFyIHNwb29sX1RhZ19zdHI2OFtzaXplb2YoImZlQ29udm9sdmVNYXRy
aXgiKV07Ci0gICAgY2hhciBzcG9vbF9UYWdfc3RyNjlbc2l6ZW9mKCJmZUJsZW5kIildOwotICAg
IGNoYXIgc3Bvb2xfVGFnX3N0cjcwW3NpemVvZigiZ2x5cGhSZWYiKV07Ci0gICAgY2hhciBzcG9v
bF9UYWdfc3RyNzFbc2l6ZW9mKCJmZUdhdXNzaWFuQmx1ciIpXTsKLSAgICBjaGFyIHNwb29sX1Rh
Z19zdHI3MltzaXplb2YoInN3aXRjaCIpXTsKLSAgICBjaGFyIHNwb29sX1RhZ19zdHI3M1tzaXpl
b2YoImFsdEdseXBoSXRlbSIpXTsKLSAgICBjaGFyIHNwb29sX1RhZ19zdHI3NFtzaXplb2YoIm1p
c3NpbmdfZ2x5cGgiKV07Ci0gICAgY2hhciBzcG9vbF9UYWdfc3RyNzVbc2l6ZW9mKCJmZU1lcmdl
Tm9kZSIpXTsKLSAgICBjaGFyIHNwb29sX1RhZ19zdHI3NltzaXplb2YoImZlQ29tcG9uZW50VHJh
bnNmZXIiKV07Ci0gICAgY2hhciBzcG9vbF9UYWdfc3RyNzdbc2l6ZW9mKCJmZU1vcnBob2xvZ3ki
KV07Ci0gICAgY2hhciBzcG9vbF9UYWdfc3RyNzhbc2l6ZW9mKCJmZVNwZWN1bGFyTGlnaHRpbmci
KV07Ci0gICAgY2hhciBzcG9vbF9UYWdfc3RyNzlbc2l6ZW9mKCJmZVBvaW50TGlnaHQiKV07Ci0g
ICAgY2hhciBzcG9vbF9UYWdfc3RyODBbc2l6ZW9mKCJmZURpZmZ1c2VMaWdodGluZyIpXTsKLSAg
fTsKLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3Bvb2xfVGFnX3Qgc3Bvb2xfVGFnX2NvbnRlbnRzID0K
LSAgewotICAgICJhIiwKLSAgICAic2V0IiwKLSAgICAicmVjdCIsCi0gICAgInRpdGxlIiwKLSAg
ICAiY2lyY2xlIiwKLSAgICAibGluZSIsCi0gICAgInN0eWxlIiwKLSAgICAic2NyaXB0IiwKLSAg
ICAiZWxsaXBzZSIsCi0gICAgInRyZWYiLAotICAgICJ0c3BhbiIsCi0gICAgImZpbHRlciIsCi0g
ICAgInBhdHRlcm4iLAotICAgICJ1c2UiLAotICAgICJzdG9wIiwKLSAgICAiZyIsCi0gICAgImFu
aW1hdGUiLAotICAgICJzdmciLAotICAgICJ0ZXh0IiwKLSAgICAiZmVUaWxlIiwKLSAgICAiZm9u
dCIsCi0gICAgImN1cnNvciIsCi0gICAgInBvbHlsaW5lIiwKLSAgICAicGF0aCIsCi0gICAgImlt
YWdlIiwKLSAgICAiZmVPZmZzZXQiLAotICAgICJkZXNjIiwKLSAgICAiZmVGdW5jRyIsCi0gICAg
ImFsdEdseXBoIiwKLSAgICAiZm9udF9mYWNlIiwKLSAgICAibXBhdGgiLAotICAgICJmZUZ1bmNB
IiwKLSAgICAiZm9udF9mYWNlX3NyYyIsCi0gICAgImRlZnMiLAotICAgICJ2a2VybiIsCi0gICAg
InN5bWJvbCIsCi0gICAgImZlTWVyZ2UiLAotICAgICJtZXRhZGF0YSIsCi0gICAgIm1hc2siLAot
ICAgICJtYXJrZXIiLAotICAgICJhbmltYXRlQ29sb3IiLAotICAgICJjb2xvcl9wcm9maWxlIiwK
LSAgICAibGluZWFyR3JhZGllbnQiLAotICAgICJnbHlwaCIsCi0gICAgImFsdEdseXBoRGVmIiwK
LSAgICAicG9seWdvbiIsCi0gICAgImZvbnRfZmFjZV91cmkiLAotICAgICJmb250X2ZhY2VfbmFt
ZSIsCi0gICAgImZlQ29tcG9zaXRlIiwKLSAgICAiZmVGdW5jUiIsCi0gICAgImFuaW1hdGVNb3Rp
b24iLAotICAgICJmZURpc3BsYWNlbWVudE1hcCIsCi0gICAgInZpZXciLAotICAgICJoa2VybiIs
Ci0gICAgImFuaW1hdGVUcmFuc2Zvcm0iLAotICAgICJmZUZsb29kIiwKLSAgICAiY2xpcFBhdGgi
LAotICAgICJkZWZpbml0aW9uX3NyYyIsCi0gICAgImZvbnRfZmFjZV9mb3JtYXQiLAotICAgICJm
ZUZ1bmNCIiwKLSAgICAiZm9yZWlnbk9iamVjdCIsCi0gICAgImZlRGlzdGFudExpZ2h0IiwKLSAg
ICAiZmVTcG90TGlnaHQiLAotICAgICJmZVR1cmJ1bGVuY2UiLAotICAgICJmZUNvbG9yTWF0cml4
IiwKLSAgICAicmFkaWFsR3JhZGllbnQiLAotICAgICJmZUltYWdlIiwKLSAgICAidGV4dFBhdGgi
LAotICAgICJmZUNvbnZvbHZlTWF0cml4IiwKLSAgICAiZmVCbGVuZCIsCi0gICAgImdseXBoUmVm
IiwKLSAgICAiZmVHYXVzc2lhbkJsdXIiLAotICAgICJzd2l0Y2giLAotICAgICJhbHRHbHlwaEl0
ZW0iLAotICAgICJtaXNzaW5nX2dseXBoIiwKLSAgICAiZmVNZXJnZU5vZGUiLAotICAgICJmZUNv
bXBvbmVudFRyYW5zZmVyIiwKLSAgICAiZmVNb3JwaG9sb2d5IiwKLSAgICAiZmVTcGVjdWxhckxp
Z2h0aW5nIiwKLSAgICAiZmVQb2ludExpZ2h0IiwKLSAgICAiZmVEaWZmdXNlTGlnaHRpbmciCi0g
IH07Ci0jZGVmaW5lIHNwb29sX1RhZyAoKGNvbnN0IGNoYXIgKikgJnNwb29sX1RhZ19jb250ZW50
cykKLSNpZmRlZiBfX0dOVUNfXwotX19pbmxpbmUKLSNlbmRpZgotY29uc3Qgc3RydWN0IHRhZ3Mg
KgotZmluZFNWR1RhZyAocmVnaXN0ZXIgY29uc3QgY2hhciAqc3RyLCByZWdpc3RlciB1bnNpZ25l
ZCBpbnQgbGVuKQotewotICBlbnVtCi0gICAgewotICAgICAgVE9UQUxfS0VZV09SRFMgPSA4MSwK
LSAgICAgIE1JTl9XT1JEX0xFTkdUSCA9IDEsCi0gICAgICBNQVhfV09SRF9MRU5HVEggPSAxOSwK
LSAgICAgIE1JTl9IQVNIX1ZBTFVFID0gMSwKLSAgICAgIE1BWF9IQVNIX1ZBTFVFID0gMTQyCi0g
ICAgfTsKLQotICBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBsZW5ndGh0YWJsZVtdID0KLSAg
ICB7Ci0gICAgICAgMSwgIDMsICA0LCAgNSwgIDYsICA0LCAgNSwgIDYsICA3LCAgNCwgIDUsICA2
LCAgNywgIDMsCi0gICAgICAgNCwgIDEsICA3LCAgMywgIDQsICA2LCAgNCwgIDYsICA4LCAgNCwg
IDUsICA4LCAgNCwgIDcsCi0gICAgICAgOCwgIDksICA1LCAgNywgMTMsICA0LCAgNSwgIDYsICA3
LCAgOCwgIDQsICA2LCAxMiwgMTMsCi0gICAgICAxNCwgIDUsIDExLCAgNywgMTMsIDE0LCAxMSwg
IDcsIDEzLCAxNywgIDQsICA1LCAxNiwgIDcsCi0gICAgICAgOCwgMTQsIDE2LCAgNywgMTMsIDE0
LCAxMSwgMTIsIDEzLCAxNCwgIDcsICA4LCAxNiwgIDcsCi0gICAgICAgOCwgMTQsICA2LCAxMiwg
MTMsIDExLCAxOSwgMTIsIDE4LCAxMiwgMTcKLSAgICB9OwotICBzdGF0aWMgY29uc3Qgc3RydWN0
IHRhZ3Mgd29yZGxpc3RfdGFnW10gPQotICAgIHsKLSNsaW5lIDExICJzdmd0YWdzLmdwZXJmIgot
ICAgICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX1RhZ190ICopMCktPnNwb29sX1RhZ19z
dHIwLCBJRF9BfSwKLSNsaW5lIDc4ICJzdmd0YWdzLmdwZXJmIgotICAgICAgeyhpbnQpKGxvbmcp
Jigoc3RydWN0IHNwb29sX1RhZ190ICopMCktPnNwb29sX1RhZ19zdHIxLCBJRF9TRVR9LAotI2xp
bmUgNzYgInN2Z3RhZ3MuZ3BlcmYiCi0gICAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xf
VGFnX3QgKikwKS0+c3Bvb2xfVGFnX3N0cjIsIElEX1JFQ1R9LAotI2xpbmUgODYgInN2Z3RhZ3Mu
Z3BlcmYiCi0gICAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bv
b2xfVGFnX3N0cjMsIElEX1RJVExFfSwKLSNsaW5lIDE5ICJzdmd0YWdzLmdwZXJmIgotICAgICAg
eyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX1RhZ190ICopMCktPnNwb29sX1RhZ19zdHI0LCBJ
RF9DSVJDTEV9LAotI2xpbmUgNjQgInN2Z3RhZ3MuZ3BlcmYiCi0gICAgICB7KGludCkobG9uZykm
KChzdHJ1Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bvb2xfVGFnX3N0cjUsIElEX0xJTkV9LAotI2xp
bmUgODAgInN2Z3RhZ3MuZ3BlcmYiCi0gICAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xf
VGFnX3QgKikwKS0+c3Bvb2xfVGFnX3N0cjYsIElEX1NUWUxFfSwKLSNsaW5lIDc3ICJzdmd0YWdz
LmdwZXJmIgotICAgICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX1RhZ190ICopMCktPnNw
b29sX1RhZ19zdHI3LCBJRF9TQ1JJUFR9LAotI2xpbmUgMjYgInN2Z3RhZ3MuZ3BlcmYiCi0gICAg
ICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bvb2xfVGFnX3N0cjgs
IElEX0VMTElQU0V9LAotI2xpbmUgODcgInN2Z3RhZ3MuZ3BlcmYiCi0gICAgICB7KGludCkobG9u
ZykmKChzdHJ1Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bvb2xfVGFnX3N0cjksIElEX1RSRUZ9LAot
I2xpbmUgODggInN2Z3RhZ3MuZ3BlcmYiCi0gICAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bv
b2xfVGFnX3QgKikwKS0+c3Bvb2xfVGFnX3N0cjEwLCBJRF9UU1BBTn0sCi0jbGluZSA1MSAic3Zn
dGFncy5ncGVyZiIKLSAgICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9UYWdfdCAqKTAp
LT5zcG9vbF9UYWdfc3RyMTEsIElEX0ZJTFRFUn0sCi0jbGluZSA3MiAic3ZndGFncy5ncGVyZiIK
LSAgICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9UYWdfdCAqKTApLT5zcG9vbF9UYWdf
c3RyMTIsIElEX1BBVFRFUk59LAotI2xpbmUgODkgInN2Z3RhZ3MuZ3BlcmYiCi0gICAgICB7KGlu
dCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bvb2xfVGFnX3N0cjEzLCBJRF9V
U0V9LAotI2xpbmUgNzkgInN2Z3RhZ3MuZ3BlcmYiCi0gICAgICB7KGludCkobG9uZykmKChzdHJ1
Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bvb2xfVGFnX3N0cjE0LCBJRF9TVE9QfSwKLSNsaW5lIDU5
ICJzdmd0YWdzLmdwZXJmIgotICAgICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX1RhZ190
ICopMCktPnNwb29sX1RhZ19zdHIxNSwgSURfR30sCi0jbGluZSAxNSAic3ZndGFncy5ncGVyZiIK
LSAgICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9UYWdfdCAqKTApLT5zcG9vbF9UYWdf
c3RyMTYsIElEX0FOSU1BVEV9LAotI2xpbmUgODEgInN2Z3RhZ3MuZ3BlcmYiCi0gICAgICB7KGlu
dCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bvb2xfVGFnX3N0cjE3LCBJRF9T
Vkd9LAotI2xpbmUgODQgInN2Z3RhZ3MuZ3BlcmYiCi0gICAgICB7KGludCkobG9uZykmKChzdHJ1
Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bvb2xfVGFnX3N0cjE4LCBJRF9URVhUfSwKLSNsaW5lIDQ5
ICJzdmd0YWdzLmdwZXJmIgotICAgICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX1RhZ190
ICopMCktPnNwb29sX1RhZ19zdHIxOSwgSURfRkVUSUxFfSwKLSNsaW5lIDUyICJzdmd0YWdzLmdw
ZXJmIgotICAgICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX1RhZ190ICopMCktPnNwb29s
X1RhZ19zdHIyMCwgSURfRk9OVH0sCi0jbGluZSAyMiAic3ZndGFncy5ncGVyZiIKLSAgICAgIHso
aW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9UYWdfdCAqKTApLT5zcG9vbF9UYWdfc3RyMjEsIElE
X0NVUlNPUn0sCi0jbGluZSA3NCAic3ZndGFncy5ncGVyZiIKLSAgICAgIHsoaW50KShsb25nKSYo
KHN0cnVjdCBzcG9vbF9UYWdfdCAqKTApLT5zcG9vbF9UYWdfc3RyMjIsIElEX1BPTFlMSU5FfSwK
LSNsaW5lIDcxICJzdmd0YWdzLmdwZXJmIgotICAgICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNw
b29sX1RhZ190ICopMCktPnNwb29sX1RhZ19zdHIyMywgSURfUEFUSH0sCi0jbGluZSA2MyAic3Zn
dGFncy5ncGVyZiIKLSAgICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9UYWdfdCAqKTAp
LT5zcG9vbF9UYWdfc3RyMjQsIElEX0lNQUdFfSwKLSNsaW5lIDQ1ICJzdmd0YWdzLmdwZXJmIgot
ICAgICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX1RhZ190ICopMCktPnNwb29sX1RhZ19z
dHIyNSwgSURfRkVPRkZTRVR9LAotI2xpbmUgMjUgInN2Z3RhZ3MuZ3BlcmYiCi0gICAgICB7KGlu
dCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bvb2xfVGFnX3N0cjI2LCBJRF9E
RVNDfSwKLSNsaW5lIDM4ICJzdmd0YWdzLmdwZXJmIgotICAgICAgeyhpbnQpKGxvbmcpJigoc3Ry
dWN0IHNwb29sX1RhZ190ICopMCktPnNwb29sX1RhZ19zdHIyNywgSURfRkVGVU5DR30sCi0jbGlu
ZSAxMiAic3ZndGFncy5ncGVyZiIKLSAgICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9U
YWdfdCAqKTApLT5zcG9vbF9UYWdfc3RyMjgsIElEX0FMVEdMWVBIfSwKLSNsaW5lIDUzICJzdmd0
YWdzLmdwZXJmIgotICAgICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX1RhZ190ICopMCkt
PnNwb29sX1RhZ19zdHIyOSwgSURfRk9OVF9GQUNFfSwKLSNsaW5lIDcwICJzdmd0YWdzLmdwZXJm
IgotICAgICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX1RhZ190ICopMCktPnNwb29sX1Rh
Z19zdHIzMCwgSURfTVBBVEh9LAotI2xpbmUgMzYgInN2Z3RhZ3MuZ3BlcmYiCi0gICAgICB7KGlu
dCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bvb2xfVGFnX3N0cjMxLCBJRF9G
RUZVTkNBfSwKLSNsaW5lIDU2ICJzdmd0YWdzLmdwZXJmIgotICAgICAgeyhpbnQpKGxvbmcpJigo
c3RydWN0IHNwb29sX1RhZ190ICopMCktPnNwb29sX1RhZ19zdHIzMiwgSURfRk9OVF9GQUNFX1NS
Q30sCi0jbGluZSAyNCAic3ZndGFncy5ncGVyZiIKLSAgICAgIHsoaW50KShsb25nKSYoKHN0cnVj
dCBzcG9vbF9UYWdfdCAqKTApLT5zcG9vbF9UYWdfc3RyMzMsIElEX0RFRlN9LAotI2xpbmUgOTEg
InN2Z3RhZ3MuZ3BlcmYiCi0gICAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfVGFnX3Qg
KikwKS0+c3Bvb2xfVGFnX3N0cjM0LCBJRF9WS0VSTn0sCi0jbGluZSA4MyAic3ZndGFncy5ncGVy
ZiIKLSAgICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9UYWdfdCAqKTApLT5zcG9vbF9U
YWdfc3RyMzUsIElEX1NZTUJPTH0sCi0jbGluZSA0MiAic3ZndGFncy5ncGVyZiIKLSAgICAgIHso
aW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9UYWdfdCAqKTApLT5zcG9vbF9UYWdfc3RyMzYsIElE
X0ZFTUVSR0V9LAotI2xpbmUgNjggInN2Z3RhZ3MuZ3BlcmYiCi0gICAgICB7KGludCkobG9uZykm
KChzdHJ1Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bvb2xfVGFnX3N0cjM3LCBJRF9NRVRBREFUQX0s
Ci0jbGluZSA2NyAic3ZndGFncy5ncGVyZiIKLSAgICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBz
cG9vbF9UYWdfdCAqKTApLT5zcG9vbF9UYWdfc3RyMzgsIElEX01BU0t9LAotI2xpbmUgNjYgInN2
Z3RhZ3MuZ3BlcmYiCi0gICAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfVGFnX3QgKikw
KS0+c3Bvb2xfVGFnX3N0cjM5LCBJRF9NQVJLRVJ9LAotI2xpbmUgMTYgInN2Z3RhZ3MuZ3BlcmYi
Ci0gICAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bvb2xfVGFn
X3N0cjQwLCBJRF9BTklNQVRFQ09MT1J9LAotI2xpbmUgMjEgInN2Z3RhZ3MuZ3BlcmYiCi0gICAg
ICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bvb2xfVGFnX3N0cjQx
LCBJRF9DT0xPUl9QUk9GSUxFfSwKLSNsaW5lIDY1ICJzdmd0YWdzLmdwZXJmIgotICAgICAgeyhp
bnQpKGxvbmcpJigoc3RydWN0IHNwb29sX1RhZ190ICopMCktPnNwb29sX1RhZ19zdHI0MiwgSURf
TElORUFSR1JBRElFTlR9LAotI2xpbmUgNjAgInN2Z3RhZ3MuZ3BlcmYiCi0gICAgICB7KGludCko
bG9uZykmKChzdHJ1Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bvb2xfVGFnX3N0cjQzLCBJRF9HTFlQ
SH0sCi0jbGluZSAxMyAic3ZndGFncy5ncGVyZiIKLSAgICAgIHsoaW50KShsb25nKSYoKHN0cnVj
dCBzcG9vbF9UYWdfdCAqKTApLT5zcG9vbF9UYWdfc3RyNDQsIElEX0FMVEdMWVBIREVGfSwKLSNs
aW5lIDczICJzdmd0YWdzLmdwZXJmIgotICAgICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29s
X1RhZ190ICopMCktPnNwb29sX1RhZ19zdHI0NSwgSURfUE9MWUdPTn0sCi0jbGluZSA1NyAic3Zn
dGFncy5ncGVyZiIKLSAgICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9UYWdfdCAqKTAp
LT5zcG9vbF9UYWdfc3RyNDYsIElEX0ZPTlRfRkFDRV9VUkl9LAotI2xpbmUgNTUgInN2Z3RhZ3Mu
Z3BlcmYiCi0gICAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bv
b2xfVGFnX3N0cjQ3LCBJRF9GT05UX0ZBQ0VfTkFNRX0sCi0jbGluZSAzMCAic3ZndGFncy5ncGVy
ZiIKLSAgICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9UYWdfdCAqKTApLT5zcG9vbF9U
YWdfc3RyNDgsIElEX0ZFQ09NUE9TSVRFfSwKLSNsaW5lIDM5ICJzdmd0YWdzLmdwZXJmIgotICAg
ICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX1RhZ190ICopMCktPnNwb29sX1RhZ19zdHI0
OSwgSURfRkVGVU5DUn0sCi0jbGluZSAxNyAic3ZndGFncy5ncGVyZiIKLSAgICAgIHsoaW50KShs
b25nKSYoKHN0cnVjdCBzcG9vbF9UYWdfdCAqKTApLT5zcG9vbF9UYWdfc3RyNTAsIElEX0FOSU1B
VEVNT1RJT059LAotI2xpbmUgMzMgInN2Z3RhZ3MuZ3BlcmYiCi0gICAgICB7KGludCkobG9uZykm
KChzdHJ1Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bvb2xfVGFnX3N0cjUxLCBJRF9GRURJU1BMQUNF
TUVOVE1BUH0sCi0jbGluZSA5MCAic3ZndGFncy5ncGVyZiIKLSAgICAgIHsoaW50KShsb25nKSYo
KHN0cnVjdCBzcG9vbF9UYWdfdCAqKTApLT5zcG9vbF9UYWdfc3RyNTIsIElEX1ZJRVd9LAotI2xp
bmUgNjIgInN2Z3RhZ3MuZ3BlcmYiCi0gICAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xf
VGFnX3QgKikwKS0+c3Bvb2xfVGFnX3N0cjUzLCBJRF9IS0VSTn0sCi0jbGluZSAxOCAic3ZndGFn
cy5ncGVyZiIKLSAgICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9UYWdfdCAqKTApLT5z
cG9vbF9UYWdfc3RyNTQsIElEX0FOSU1BVEVUUkFOU0ZPUk19LAotI2xpbmUgMzUgInN2Z3RhZ3Mu
Z3BlcmYiCi0gICAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bv
b2xfVGFnX3N0cjU1LCBJRF9GRUZMT09EfSwKLSNsaW5lIDIwICJzdmd0YWdzLmdwZXJmIgotICAg
ICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX1RhZ190ICopMCktPnNwb29sX1RhZ19zdHI1
NiwgSURfQ0xJUFBBVEh9LAotI2xpbmUgMjMgInN2Z3RhZ3MuZ3BlcmYiCi0gICAgICB7KGludCko
bG9uZykmKChzdHJ1Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bvb2xfVGFnX3N0cjU3LCBJRF9ERUZJ
TklUSU9OX1NSQ30sCi0jbGluZSA1NCAic3ZndGFncy5ncGVyZiIKLSAgICAgIHsoaW50KShsb25n
KSYoKHN0cnVjdCBzcG9vbF9UYWdfdCAqKTApLT5zcG9vbF9UYWdfc3RyNTgsIElEX0ZPTlRfRkFD
RV9GT1JNQVR9LAotI2xpbmUgMzcgInN2Z3RhZ3MuZ3BlcmYiCi0gICAgICB7KGludCkobG9uZykm
KChzdHJ1Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bvb2xfVGFnX3N0cjU5LCBJRF9GRUZVTkNCfSwK
LSNsaW5lIDU4ICJzdmd0YWdzLmdwZXJmIgotICAgICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNw
b29sX1RhZ190ICopMCktPnNwb29sX1RhZ19zdHI2MCwgSURfRk9SRUlHTk9CSkVDVH0sCi0jbGlu
ZSAzNCAic3ZndGFncy5ncGVyZiIKLSAgICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9U
YWdfdCAqKTApLT5zcG9vbF9UYWdfc3RyNjEsIElEX0ZFRElTVEFOVExJR0hUfSwKLSNsaW5lIDQ4
ICJzdmd0YWdzLmdwZXJmIgotICAgICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX1RhZ190
ICopMCktPnNwb29sX1RhZ19zdHI2MiwgSURfRkVTUE9UTElHSFR9LAotI2xpbmUgNTAgInN2Z3Rh
Z3MuZ3BlcmYiCi0gICAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+
c3Bvb2xfVGFnX3N0cjYzLCBJRF9GRVRVUkJVTEVOQ0V9LAotI2xpbmUgMjggInN2Z3RhZ3MuZ3Bl
cmYiCi0gICAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bvb2xf
VGFnX3N0cjY0LCBJRF9GRUNPTE9STUFUUklYfSwKLSNsaW5lIDc1ICJzdmd0YWdzLmdwZXJmIgot
ICAgICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX1RhZ190ICopMCktPnNwb29sX1RhZ19z
dHI2NSwgSURfUkFESUFMR1JBRElFTlR9LAotI2xpbmUgNDEgInN2Z3RhZ3MuZ3BlcmYiCi0gICAg
ICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bvb2xfVGFnX3N0cjY2
LCBJRF9GRUlNQUdFfSwKLSNsaW5lIDg1ICJzdmd0YWdzLmdwZXJmIgotICAgICAgeyhpbnQpKGxv
bmcpJigoc3RydWN0IHNwb29sX1RhZ190ICopMCktPnNwb29sX1RhZ19zdHI2NywgSURfVEVYVFBB
VEh9LAotI2xpbmUgMzEgInN2Z3RhZ3MuZ3BlcmYiCi0gICAgICB7KGludCkobG9uZykmKChzdHJ1
Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bvb2xfVGFnX3N0cjY4LCBJRF9GRUNPTlZPTFZFTUFUUklY
fSwKLSNsaW5lIDI3ICJzdmd0YWdzLmdwZXJmIgotICAgICAgeyhpbnQpKGxvbmcpJigoc3RydWN0
IHNwb29sX1RhZ190ICopMCktPnNwb29sX1RhZ19zdHI2OSwgSURfRkVCTEVORH0sCi0jbGluZSA2
MSAic3ZndGFncy5ncGVyZiIKLSAgICAgIHsoaW50KShsb25nKSYoKHN0cnVjdCBzcG9vbF9UYWdf
dCAqKTApLT5zcG9vbF9UYWdfc3RyNzAsIElEX0dMWVBIUkVGfSwKLSNsaW5lIDQwICJzdmd0YWdz
LmdwZXJmIgotICAgICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX1RhZ190ICopMCktPnNw
b29sX1RhZ19zdHI3MSwgSURfRkVHQVVTU0lBTkJMVVJ9LAotI2xpbmUgODIgInN2Z3RhZ3MuZ3Bl
cmYiCi0gICAgICB7KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bvb2xf
VGFnX3N0cjcyLCBJRF9TV0lUQ0h9LAotI2xpbmUgMTQgInN2Z3RhZ3MuZ3BlcmYiCi0gICAgICB7
KGludCkobG9uZykmKChzdHJ1Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bvb2xfVGFnX3N0cjczLCBJ
RF9BTFRHTFlQSElURU19LAotI2xpbmUgNjkgInN2Z3RhZ3MuZ3BlcmYiCi0gICAgICB7KGludCko
bG9uZykmKChzdHJ1Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bvb2xfVGFnX3N0cjc0LCBJRF9NSVNT
SU5HX0dMWVBIfSwKLSNsaW5lIDQzICJzdmd0YWdzLmdwZXJmIgotICAgICAgeyhpbnQpKGxvbmcp
Jigoc3RydWN0IHNwb29sX1RhZ190ICopMCktPnNwb29sX1RhZ19zdHI3NSwgSURfRkVNRVJHRU5P
REV9LAotI2xpbmUgMjkgInN2Z3RhZ3MuZ3BlcmYiCi0gICAgICB7KGludCkobG9uZykmKChzdHJ1
Y3Qgc3Bvb2xfVGFnX3QgKikwKS0+c3Bvb2xfVGFnX3N0cjc2LCBJRF9GRUNPTVBPTkVOVFRSQU5T
RkVSfSwKLSNsaW5lIDQ0ICJzdmd0YWdzLmdwZXJmIgotICAgICAgeyhpbnQpKGxvbmcpJigoc3Ry
dWN0IHNwb29sX1RhZ190ICopMCktPnNwb29sX1RhZ19zdHI3NywgSURfRkVNT1JQSE9MT0dZfSwK
LSNsaW5lIDQ3ICJzdmd0YWdzLmdwZXJmIgotICAgICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNw
b29sX1RhZ190ICopMCktPnNwb29sX1RhZ19zdHI3OCwgSURfRkVTUEVDVUxBUkxJR0hUSU5HfSwK
LSNsaW5lIDQ2ICJzdmd0YWdzLmdwZXJmIgotICAgICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNw
b29sX1RhZ190ICopMCktPnNwb29sX1RhZ19zdHI3OSwgSURfRkVQT0lOVExJR0hUfSwKLSNsaW5l
IDMyICJzdmd0YWdzLmdwZXJmIgotICAgICAgeyhpbnQpKGxvbmcpJigoc3RydWN0IHNwb29sX1Rh
Z190ICopMCktPnNwb29sX1RhZ19zdHI4MCwgSURfRkVESUZGVVNFTElHSFRJTkd9Ci0gICAgfTsK
LQotICBzdGF0aWMgY29uc3Qgc2lnbmVkIGNoYXIgbG9va3VwW10gPQotICAgIHsKLSAgICAgIC0x
LCAgMCwgLTEsICAxLCAgMiwgIDMsICA0LCAtMSwgLTEsICA1LCAgNiwgIDcsICA4LCAtMSwKLSAg
ICAgICA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIC0xLCAxNSwgMTYsIDE3LCAxOCwgLTEsIDE5LCAt
MSwKLSAgICAgIC0xLCAyMCwgLTEsIDIxLCAtMSwgMjIsIDIzLCAyNCwgLTEsIC0xLCAyNSwgMjYs
IC0xLCAtMSwKLSAgICAgIDI3LCAyOCwgMjksIDMwLCAtMSwgMzEsIDMyLCAzMywgMzQsIDM1LCAz
NiwgMzcsIDM4LCAtMSwKLSAgICAgIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcs
IC0xLCA0OCwgNDksIDUwLCAtMSwKLSAgICAgIC0xLCAtMSwgNTEsIC0xLCA1MiwgNTMsIDU0LCA1
NSwgNTYsIDU3LCAtMSwgNTgsIDU5LCA2MCwKLSAgICAgIDYxLCAtMSwgNjIsIDYzLCA2NCwgNjUs
IC0xLCAtMSwgNjYsIDY3LCAtMSwgLTEsIDY4LCA2OSwKLSAgICAgIDcwLCA3MSwgLTEsIDcyLCA3
MywgNzQsIC0xLCAtMSwgNzUsIC0xLCAtMSwgNzYsIC0xLCAtMSwKLSAgICAgIC0xLCAtMSwgLTEs
IC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA3NywgNzgsIC0xLCAtMSwKLSAgICAgIC0xLCA3
OSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKLSAgICAg
IC0xLCAtMSwgODAKLSAgICB9OwotCi0gIGlmIChsZW4gPD0gTUFYX1dPUkRfTEVOR1RIICYmIGxl
biA+PSBNSU5fV09SRF9MRU5HVEgpCi0gICAgewotICAgICAgcmVnaXN0ZXIgaW50IGtleSA9IGhh
c2hfdGFnIChzdHIsIGxlbik7Ci0KLSAgICAgIGlmIChrZXkgPD0gTUFYX0hBU0hfVkFMVUUgJiYg
a2V5ID49IDApCi0gICAgICAgIHsKLSAgICAgICAgICByZWdpc3RlciBpbnQgaW5kZXggPSBsb29r
dXBba2V5XTsKLQotICAgICAgICAgIGlmIChpbmRleCA+PSAwKQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICBpZiAobGVuID09IGxlbmd0aHRhYmxlW2luZGV4XSkKLSAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICByZWdpc3RlciBjb25zdCBjaGFyICpzID0gd29yZGxpc3Rf
dGFnW2luZGV4XS5uYW1lICsgc3Bvb2xfVGFnOwotCi0gICAgICAgICAgICAgICAgICBpZiAoKnN0
ciA9PSAqcyAmJiAhbWVtY21wIChzdHIgKyAxLCBzICsgMSwgbGVuIC0gMSkpCi0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiAmd29yZGxpc3RfdGFnW2luZGV4XTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gIHJldHVybiAwOwotfQotI2xpbmUg
OTIgInN2Z3RhZ3MuZ3BlcmYiCi0KLQotCi1zdGF0aWMgY29uc3QgY2hhciB0YWdTVkdTdGFibGVb
XSA9IHsKLSAgICJcMDAwL2FcMDAwL2FsdEdseXBoXDAwMC9hbHRHbHlwaERlZlwwMDAvYWx0R2x5
cGhJdGVtXDAwMC9hbmltYXRlIgotICAgIlwwMDAvYW5pbWF0ZUNvbG9yXDAwMC9hbmltYXRlTW90
aW9uXDAwMC9hbmltYXRlVHJhbnNmb3JtXDAwMC9jaXJjbGUiCi0gICAiXDAwMC9jbGlwUGF0aFww
MDAvY29sb3JfcHJvZmlsZVwwMDAvY3Vyc29yXDAwMC9kZWZpbml0aW9uX3NyYyIKLSAgICJcMDAw
L2RlZnNcMDAwL2Rlc2NcMDAwL2VsbGlwc2VcMDAwL2ZlQmxlbmRcMDAwL2ZlQ29sb3JNYXRyaXhc
MDAwL2ZlQ29tcG9uZW50VHJhbnNmZXIiCi0gICAiXDAwMC9mZUNvbXBvc2l0ZVwwMDAvZmVDb252
b2x2ZU1hdHJpeFwwMDAvZmVEaWZmdXNlTGlnaHRpbmdcMDAwL2ZlRGlzcGxhY2VtZW50TWFwIgot
ICAgIlwwMDAvZmVEaXN0YW50TGlnaHRcMDAwL2ZlRmxvb2RcMDAwL2ZlRnVuY0FcMDAwL2ZlRnVu
Y0JcMDAwL2ZlRnVuY0ciCi0gICAiXDAwMC9mZUZ1bmNSXDAwMC9mZUdhdXNzaWFuQmx1clwwMDAv
ZmVJbWFnZVwwMDAvZmVNZXJnZVwwMDAvZmVNZXJnZU5vZGUiCi0gICAiXDAwMC9mZU1vcnBob2xv
Z3lcMDAwL2ZlT2Zmc2V0XDAwMC9mZVBvaW50TGlnaHRcMDAwL2ZlU3BlY3VsYXJMaWdodGluZyIK
LSAgICJcMDAwL2ZlU3BvdExpZ2h0XDAwMC9mZVRpbGVcMDAwL2ZlVHVyYnVsZW5jZVwwMDAvZmls
dGVyXDAwMC9mb250IgotICAgIlwwMDAvZm9udF9mYWNlXDAwMC9mb250X2ZhY2VfZm9ybWF0XDAw
MC9mb250X2ZhY2VfbmFtZVwwMDAvZm9udF9mYWNlX3NyYyIKLSAgICJcMDAwL2ZvbnRfZmFjZV91
cmlcMDAwL2ZvcmVpZ25PYmplY3RcMDAwL2dcMDAwL2dseXBoXDAwMC9nbHlwaFJlZiIKLSAgICJc
MDAwL2hrZXJuXDAwMC9pbWFnZVwwMDAvbGluZVwwMDAvbGluZWFyR3JhZGllbnRcMDAwL21hcmtl
clwwMDAvbWFzayIKLSAgICJcMDAwL21ldGFkYXRhXDAwMC9taXNzaW5nX2dseXBoXDAwMC9tcGF0
aFwwMDAvcGF0aFwwMDAvcGF0dGVybiIKLSAgICJcMDAwL3BvbHlnb25cMDAwL3BvbHlsaW5lXDAw
MC9yYWRpYWxHcmFkaWVudFwwMDAvcmVjdFwwMDAvc2NyaXB0IgotICAgIlwwMDAvc2V0XDAwMC9z
dG9wXDAwMC9zdHlsZVwwMDAvc3ZnXDAwMC9zd2l0Y2hcMDAwL3N5bWJvbFwwMDAvdGV4dCIKLSAg
ICJcMDAwL3RleHRQYXRoXDAwMC90aXRsZVwwMDAvdHJlZlwwMDAvdHNwYW5cMDAwL3VzZVwwMDAv
dmlld1wwMDAvdmtlcm4iCi0gICAiXDAwMC90ZXh0XDAwMC9jb21tZW50XDAwMCIKLX07Ci0KLXN0
YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCB0YWdTVkdTTGlzdFtdID0gewotICAwLAotCi0gICAg
IDIsICAgNSwgIDE1LCAgMjgsICA0MiwgIDUxLCAgNjUsICA4MCwgIDk4LCAxMDYsIDExNiwgMTMx
LAotICAgMTM5LCAxNTUsIDE2MSwgMTY3LCAxNzYsIDE4NSwgMjAwLCAyMjEsIDIzNCwgMjUyLCAy
NzEsIDI5MCwKLSAgIDMwNiwgMzE1LCAzMjQsIDMzMywgMzQyLCAzNTEsIDM2NywgMzc2LCAzODUs
IDM5OCwgNDEyLCA0MjIsCi0gICA0MzYsIDQ1NiwgNDY5LCA0NzcsIDQ5MSwgNDk5LCA1MDUsIDUx
NiwgNTM0LCA1NTAsIDU2NSwgNTgwLAotICAgNTk1LCA1OTgsIDYwNSwgNjE1LCA2MjIsIDYyOSwg
NjM1LCA2NTEsIDY1OSwgNjY1LCA2NzUsIDY5MCwKLSAgIDY5NywgNzAzLCA3MTIsIDcyMSwgNzMx
LCA3NDcsIDc1MywgNzYxLCA3NjYsIDc3MiwgNzc5LCA3ODQsCi0gICA3OTIsIDg1NCwgODA2LCA4
MTYsIDgyMywgODI5LCA4MzYsIDg0MSwgODQ3LCA4NTQsIDg2MCwgICAxLAotICAgICA0LCAgMTQs
ICAyNywgIDQxLCAgNTAsICA2NCwgIDc5LCAgOTcsIDEwNSwgMTE1LCAxMzAsIDEzOCwKLSAgIDE1
NCwgMTYwLCAxNjYsIDE3NSwgMTg0LCAxOTksIDIyMCwgMjMzLCAyNTEsIDI3MCwgMjg5LCAzMDUs
Ci0gICAzMTQsIDMyMywgMzMyLCAzNDEsIDM1MCwgMzY2LCAzNzUsIDM4NCwgMzk3LCA0MTEsIDQy
MSwgNDM1LAotICAgNDU1LCA0NjgsIDQ3NiwgNDkwLCA0OTgsIDUwNCwgNTE1LCA1MzMsIDU0OSwg
NTY0LCA1NzksIDU5NCwKLSAgIDU5NywgNjA0LCA2MTQsIDYyMSwgNjI4LCA2MzQsIDY1MCwgNjU4
LCA2NjQsIDY3NCwgNjg5LCA2OTYsCi0gICA3MDIsIDcxMSwgNzIwLCA3MzAsIDc0NiwgNzUyLCA3
NjAsIDc2NSwgNzcxLCA3NzgsIDc4MywgNzkxLAotICAgODUzLCA4MDUsIDgxNSwgODIyLCA4Mjgs
IDgzNSwgODQwLCA4NDYsIDg1MywgODU5LCAgICAwCi19OwotCi1jb25zdCBjaGFyICpLU1ZHOjpn
ZXRUYWdOYW1lKHVuc2lnbmVkIHNob3J0IGlkKQotewotICAgIGlmKGlkID4gSURfQ0xPU0VfU1ZH
VEFHKjIpIGlkID0gSURfQ0xPU0VfU1ZHVEFHKzE7Ci0gICAgcmV0dXJuICZ0YWdTVkdTdGFibGVb
dGFnU1ZHU0xpc3RbaWRdXTsKLX0KLQotaW50IEtTVkc6OmdldFRhZ0lEKGNvbnN0IGNoYXIgKnRh
Z1N0ciwgaW50IGxlbikKLXsKLSAgICBjb25zdCBzdHJ1Y3QgdGFncyAqdGFnUHRyID0gZmluZFNW
R1RhZyh0YWdTdHIsIGxlbik7Ci0gICAgaWYoIXRhZ1B0cikKLSAgICAgIHJldHVybiAwOwotICAg
IHJldHVybiB0YWdQdHItPmlkOwotfQpJbmRleDoga3N2ZzIvc3ZnL3N2Z3RhZ3MuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ClJDUyBmaWxlOiBrc3ZnMi9zdmcvc3ZndGFncy5oCmRpZmYgLU4ga3N2ZzIvc3ZnL3N2Z3Rh
Z3MuaAotLS0ga3N2ZzIvc3ZnL3N2Z3RhZ3MuaAkxIFNlcCAyMDA1IDA3OjM1OjU3IC0wMDAwCTEu
MgorKysga3N2ZzIvc3ZnL3N2Z3RhZ3MuaAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCkBAIC0x
LDk5ICswLDAgQEAKLS8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9t
IHN2Z3RhZ3MuaW4gYnkgZG9tbWFrZXRhZ3MsIGRvIG5vdCBlZGl0ICovCi0vKiBDb3B5cmlnaHQg
MTk5OSBMYXJzIEtub2xsICovCi0KLSNpZm5kZWYgS1NWR19UQUdTX0gKLSNkZWZpbmUgS1NWR19U
QUdTX0gKLQotI2luY2x1ZGUgPGtnbG9iYWwuaD4KLQotbmFtZXNwYWNlIEtTVkcKLXsKLSAgICBj
b25zdCBjaGFyICpnZXRUYWdOYW1lKHVuc2lnbmVkIHNob3J0IGlkKTsKLSAgICBpbnQgZ2V0VGFn
SUQoY29uc3QgY2hhciAqdGFnU3RyLCBpbnQgbGVuKTsKLX07Ci0KLSNkZWZpbmUgSURfQSAxCi0j
ZGVmaW5lIElEX0FMVEdMWVBIIDIKLSNkZWZpbmUgSURfQUxUR0xZUEhERUYgMwotI2RlZmluZSBJ
RF9BTFRHTFlQSElURU0gNAotI2RlZmluZSBJRF9BTklNQVRFIDUKLSNkZWZpbmUgSURfQU5JTUFU
RUNPTE9SIDYKLSNkZWZpbmUgSURfQU5JTUFURU1PVElPTiA3Ci0jZGVmaW5lIElEX0FOSU1BVEVU
UkFOU0ZPUk0gOAotI2RlZmluZSBJRF9DSVJDTEUgOQotI2RlZmluZSBJRF9DTElQUEFUSCAxMAot
I2RlZmluZSBJRF9DT0xPUl9QUk9GSUxFIDExCi0jZGVmaW5lIElEX0NVUlNPUiAxMgotI2RlZmlu
ZSBJRF9ERUZJTklUSU9OX1NSQyAxMwotI2RlZmluZSBJRF9ERUZTIDE0Ci0jZGVmaW5lIElEX0RF
U0MgMTUKLSNkZWZpbmUgSURfRUxMSVBTRSAxNgotI2RlZmluZSBJRF9GRUJMRU5EIDE3Ci0jZGVm
aW5lIElEX0ZFQ09MT1JNQVRSSVggMTgKLSNkZWZpbmUgSURfRkVDT01QT05FTlRUUkFOU0ZFUiAx
OQotI2RlZmluZSBJRF9GRUNPTVBPU0lURSAyMAotI2RlZmluZSBJRF9GRUNPTlZPTFZFTUFUUklY
IDIxCi0jZGVmaW5lIElEX0ZFRElGRlVTRUxJR0hUSU5HIDIyCi0jZGVmaW5lIElEX0ZFRElTUExB
Q0VNRU5UTUFQIDIzCi0jZGVmaW5lIElEX0ZFRElTVEFOVExJR0hUIDI0Ci0jZGVmaW5lIElEX0ZF
RkxPT0QgMjUKLSNkZWZpbmUgSURfRkVGVU5DQSAyNgotI2RlZmluZSBJRF9GRUZVTkNCIDI3Ci0j
ZGVmaW5lIElEX0ZFRlVOQ0cgMjgKLSNkZWZpbmUgSURfRkVGVU5DUiAyOQotI2RlZmluZSBJRF9G
RUdBVVNTSUFOQkxVUiAzMAotI2RlZmluZSBJRF9GRUlNQUdFIDMxCi0jZGVmaW5lIElEX0ZFTUVS
R0UgMzIKLSNkZWZpbmUgSURfRkVNRVJHRU5PREUgMzMKLSNkZWZpbmUgSURfRkVNT1JQSE9MT0dZ
IDM0Ci0jZGVmaW5lIElEX0ZFT0ZGU0VUIDM1Ci0jZGVmaW5lIElEX0ZFUE9JTlRMSUdIVCAzNgot
I2RlZmluZSBJRF9GRVNQRUNVTEFSTElHSFRJTkcgMzcKLSNkZWZpbmUgSURfRkVTUE9UTElHSFQg
MzgKLSNkZWZpbmUgSURfRkVUSUxFIDM5Ci0jZGVmaW5lIElEX0ZFVFVSQlVMRU5DRSA0MAotI2Rl
ZmluZSBJRF9GSUxURVIgNDEKLSNkZWZpbmUgSURfRk9OVCA0MgotI2RlZmluZSBJRF9GT05UX0ZB
Q0UgNDMKLSNkZWZpbmUgSURfRk9OVF9GQUNFX0ZPUk1BVCA0NAotI2RlZmluZSBJRF9GT05UX0ZB
Q0VfTkFNRSA0NQotI2RlZmluZSBJRF9GT05UX0ZBQ0VfU1JDIDQ2Ci0jZGVmaW5lIElEX0ZPTlRf
RkFDRV9VUkkgNDcKLSNkZWZpbmUgSURfRk9SRUlHTk9CSkVDVCA0OAotI2RlZmluZSBJRF9HIDQ5
Ci0jZGVmaW5lIElEX0dMWVBIIDUwCi0jZGVmaW5lIElEX0dMWVBIUkVGIDUxCi0jZGVmaW5lIElE
X0hLRVJOIDUyCi0jZGVmaW5lIElEX0lNQUdFIDUzCi0jZGVmaW5lIElEX0xJTkUgNTQKLSNkZWZp
bmUgSURfTElORUFSR1JBRElFTlQgNTUKLSNkZWZpbmUgSURfTUFSS0VSIDU2Ci0jZGVmaW5lIElE
X01BU0sgNTcKLSNkZWZpbmUgSURfTUVUQURBVEEgNTgKLSNkZWZpbmUgSURfTUlTU0lOR19HTFlQ
SCA1OQotI2RlZmluZSBJRF9NUEFUSCA2MAotI2RlZmluZSBJRF9QQVRIIDYxCi0jZGVmaW5lIElE
X1BBVFRFUk4gNjIKLSNkZWZpbmUgSURfUE9MWUdPTiA2MwotI2RlZmluZSBJRF9QT0xZTElORSA2
NAotI2RlZmluZSBJRF9SQURJQUxHUkFESUVOVCA2NQotI2RlZmluZSBJRF9SRUNUIDY2Ci0jZGVm
aW5lIElEX1NDUklQVCA2NwotI2RlZmluZSBJRF9TRVQgNjgKLSNkZWZpbmUgSURfU1RPUCA2OQot
I2RlZmluZSBJRF9TVFlMRSA3MAotI2RlZmluZSBJRF9TVkcgNzEKLSNkZWZpbmUgSURfU1dJVENI
IDcyCi0jZGVmaW5lIElEX1NZTUJPTCA3MwotI2RlZmluZSBJRF9URVhUIDc0Ci0jZGVmaW5lIElE
X1RFWFRQQVRIIDc1Ci0jZGVmaW5lIElEX1RJVExFIDc2Ci0jZGVmaW5lIElEX1RSRUYgNzcKLSNk
ZWZpbmUgSURfVFNQQU4gNzgKLSNkZWZpbmUgSURfVVNFIDc5Ci0jZGVmaW5lIElEX1ZJRVcgODAK
LSNkZWZpbmUgSURfVktFUk4gODEKLSNkZWZpbmUgSURfQ0xPU0VfU1ZHVEFHIDgxCi0jZGVmaW5l
IElEX0xBU1RfU1ZHVEFHIDgxCi0KLSNlbmRpZgpJbmRleDoga3dxL0RPTS5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvRE9NLm1tLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjU0CmRpZmYgLXAgLXUgLXIxLjU0IGt3cS9ET00ubW0KLS0tIGt3cS9ET00ubW0JMjYg
T2N0IDIwMDUgMjA6NDQ6MTQgLTAwMDAJMS41NAorKysga3dxL0RPTS5tbQkxIE5vdiAyMDA1IDEx
OjEzOjI0IC0wMDAwCkBAIC05NTEsNyArOTUxLDcgQEAgc3RhdGljIExpc3RlbmVyTWFwICpsaXN0
ZW5lck1hcDsKIAogLSAoRE9NSW1wbGVtZW50YXRpb24gKilpbXBsZW1lbnRhdGlvbgogewotICAg
IHJldHVybiBbRE9NSW1wbGVtZW50YXRpb24gX0RPTUltcGxlbWVudGF0aW9uV2l0aEltcGw6W3Nl
bGYgX2RvY3VtZW50SW1wbF0tPmltcGwoKV07CisgICAgcmV0dXJuIFtET01JbXBsZW1lbnRhdGlv
biBfRE9NSW1wbGVtZW50YXRpb25XaXRoSW1wbDpbc2VsZiBfZG9jdW1lbnRJbXBsXS0+aW1wbGVt
ZW50YXRpb24oKV07CiB9CiAKIC0gKERPTUVsZW1lbnQgKilkb2N1bWVudEVsZW1lbnQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4706</attachid>
            <date>2005-11-16 17:33:06 -0800</date>
            <delta_ts>2005-11-17 12:57:05 -0800</delta_ts>
            <desc>khtml &amp; kwq side of the merger</desc>
            <filename>webcore_svg.patch</filename>
            <type>text/plain</type>
            <size>43546</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL2todG1sX3BhcnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9XZWJDb3JlL2todG1sL2todG1sX3BhcnQuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjM1
NwpkaWZmIC1wIC11IC1yMS4zNTcga2h0bWwva2h0bWxfcGFydC5jcHAKLS0tIGtodG1sL2todG1s
X3BhcnQuY3BwCTcgTm92IDIwMDUgMTk6NTk6MjEgLTAwMDAJMS4zNTcKKysrIGtodG1sL2todG1s
X3BhcnQuY3BwCTE3IE5vdiAyMDA1IDAxOjMxOjE2IC0wMDAwCkBAIC02MCw2ICs2MCw5IEBACiAj
aW5jbHVkZSAieG1sL2RvbTJfcmFuZ2VpbXBsLmgiCiAjaW5jbHVkZSAieG1sL0V2ZW50TmFtZXMu
aCIKICNpbmNsdWRlICJ4bWwveG1sX3Rva2VuaXplci5oIgorI2lmIFNWR19TVVBQT1JUCisjaW5j
bHVkZSAiU1ZHTmFtZXMuaCIKKyNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2UgRE9NOwogdXNpbmcg
bmFtZXNwYWNlIEhUTUxOYW1lczsKQEAgLTIxNSw2ICsyMTgsOSBAQCB2b2lkIEtIVE1MUGFydDo6
aW5pdCggS0hUTUxWaWV3ICp2aWV3LCBHCiAgIFF1YWxpZmllZE5hbWU6OmluaXQoKTsKICAgRXZl
bnROYW1lczo6aW5pdCgpOwogICBIVE1MTmFtZXM6OmluaXQoKTsgLy8gRklYTUU6IFdlIHNob3Vs
ZCBtYWtlIHRoaXMgaGFwcGVuIG9ubHkgd2hlbiBIVE1MIGlzIHVzZWQuCisjaWYgU1ZHX1NVUFBP
UlQKKyAgS1NWRzo6U1ZHTmFtZXM6OmluaXQoKTsKKyNlbmRpZgogICBpZiAoIHByb2YgPT0gRGVm
YXVsdEdVSSApCiAgICAgc2V0WE1MRmlsZSggImtodG1sLnJjIiApOwogICBlbHNlIGlmICggcHJv
ZiA9PSBCcm93c2VyVmlld0dVSSApCkBAIC0xNTkzLDEyICsxNTk5LDEyIEBAIHZvaWQgS0hUTUxQ
YXJ0OjpiZWdpbiggY29uc3QgS1VSTCAmdXJsLCAKICNlbmRpZgogCiAgIGlmIChhcmdzLnNlcnZp
Y2VUeXBlID09ICJ0ZXh0L3htbCIgfHwgYXJncy5zZXJ2aWNlVHlwZSA9PSAiYXBwbGljYXRpb24v
eG1sIiB8fCBhcmdzLnNlcnZpY2VUeXBlID09ICJhcHBsaWNhdGlvbi94aHRtbCt4bWwiIHx8Ci0g
ICAgICBhcmdzLnNlcnZpY2VUeXBlID09ICJ0ZXh0L3hzbCIgfHwgYXJncy5zZXJ2aWNlVHlwZSA9
PSAiYXBwbGljYXRpb24vcnNzK3htbCIgfHwgYXJncy5zZXJ2aWNlVHlwZSA9PSAiYXBwbGljYXRp
b24vYXRvbSt4bWwiKQotICAgIGQtPm1fZG9jID0gRE9NSW1wbGVtZW50YXRpb25JbXBsOjppbnN0
YW5jZSgpLT5jcmVhdGVEb2N1bWVudCggZC0+bV92aWV3ICk7CisgICAgICBhcmdzLnNlcnZpY2VU
eXBlID09ICJ0ZXh0L3hzbCIgfHwgYXJncy5zZXJ2aWNlVHlwZSA9PSAiYXBwbGljYXRpb24vcnNz
K3htbCIgfHwgYXJncy5zZXJ2aWNlVHlwZSA9PSAiYXBwbGljYXRpb24vYXRvbSt4bWwiCiAjaWYg
U1ZHX1NVUFBPUlQKLSAgZWxzZSBpZiAoYXJncy5zZXJ2aWNlVHlwZSA9PSAiaW1hZ2Uvc3ZnK3ht
bCIpCi0gICAgZC0+bV9kb2MgPSBET01JbXBsZW1lbnRhdGlvbkltcGw6Omluc3RhbmNlKCktPmNy
ZWF0ZUtET01Eb2N1bWVudChkLT5tX3ZpZXcpOworICAgICAgfHwgIGFyZ3Muc2VydmljZVR5cGUg
PT0gImltYWdlL3N2Zyt4bWwiCiAjZW5kaWYKKyAgICAgICkKKyAgICBkLT5tX2RvYyA9IERPTUlt
cGxlbWVudGF0aW9uSW1wbDo6aW5zdGFuY2UoKS0+Y3JlYXRlRG9jdW1lbnQoIGQtPm1fdmlldyAp
OwogICBlbHNlCiAgICAgZC0+bV9kb2MgPSBET01JbXBsZW1lbnRhdGlvbkltcGw6Omluc3RhbmNl
KCktPmNyZWF0ZUhUTUxEb2N1bWVudCggZC0+bV92aWV3ICk7CiAKSW5kZXg6IGtodG1sL2todG1s
X3BhcnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9raHRt
bF9wYXJ0LmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTM4CmRpZmYgLXAgLXUgLXIxLjEzOCBr
aHRtbC9raHRtbF9wYXJ0LmgKLS0tIGtodG1sL2todG1sX3BhcnQuaAkyNCBTZXAgMjAwNSAwMTox
ODo1MiAtMDAwMAkxLjEzOAorKysga2h0bWwva2h0bWxfcGFydC5oCTE3IE5vdiAyMDA1IDAxOjMx
OjE2IC0wMDAwCkBAIC04OSw2ICs4OSwxMiBAQCBuYW1lc3BhY2Uga2h0bWwKICAgY2xhc3MgWE1M
VG9rZW5pemVyOwogfQogCisjaWZkZWYgU1ZHX1NVUFBPUlQKK25hbWVzcGFjZSBLU1ZHIHsKKyAg
ICBjbGFzcyBTVkdBRWxlbWVudEltcGw7Cit9CisjZW5kaWYKKwogbmFtZXNwYWNlIEtKUyB7CiAg
ICAgY2xhc3MgRE9NRG9jdW1lbnQ7CiAgICAgY2xhc3MgU2VsZWN0aW9uOwpAQCAtMTcxLDYgKzE3
Nyw5IEBAIGNsYXNzIEtIVE1MUGFydCA6IHB1YmxpYyBLUGFydHM6OlJlYWRPbmwKICAgZnJpZW5k
IGNsYXNzIGtodG1sOjpSZW5kZXJXaWRnZXQ7CiAgIGZyaWVuZCBjbGFzcyBraHRtbDo6Q1NTU3R5
bGVTZWxlY3RvcjsKICAgZnJpZW5kIGNsYXNzIEtIVE1MUGFydElmYWNlOworI2lmZGVmIFNWR19T
VVBQT1JUCisgICAgZnJpZW5kIGNsYXNzIEtTVkc6OlNWR0FFbGVtZW50SW1wbDsKKyNlbmRpZgog
CiAgIFFfUFJPUEVSVFkoIGJvb2wgamF2YVNjcmlwdEVuYWJsZWQgUkVBRCBqU2NyaXB0RW5hYmxl
ZCBXUklURSBzZXRKU2NyaXB0RW5hYmxlZCApCiAgIFFfUFJPUEVSVFkoIGJvb2wgamF2YUVuYWJs
ZWQgUkVBRCBqYXZhRW5hYmxlZCBXUklURSBzZXRKYXZhRW5hYmxlZCApCkluZGV4OiBraHRtbC9j
c3MvY3NzX3ZhbHVlaW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3Jl
L2todG1sL2Nzcy9jc3NfdmFsdWVpbXBsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNTEKZGlm
ZiAtcCAtdSAtcjEuNTEga2h0bWwvY3NzL2Nzc192YWx1ZWltcGwuaAotLS0ga2h0bWwvY3NzL2Nz
c192YWx1ZWltcGwuaAkzIE9jdCAyMDA1IDIxOjEyOjA3IC0wMDAwCTEuNTEKKysrIGtodG1sL2Nz
cy9jc3NfdmFsdWVpbXBsLmgJMTcgTm92IDIwMDUgMDE6MzE6MTYgLTAwMDAKQEAgLTkxLDcgKzkx
LDcgQEAgcHJpdmF0ZToKIGNsYXNzIENTU1ZhbHVlSW1wbCA6IHB1YmxpYyBTdHlsZUJhc2VJbXBs
CiB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjc3NWYWx1ZVR5cGUoKSBj
b25zdCA9IDA7CisgICAgdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjc3NWYWx1ZVR5cGUoKSBjb25z
dCB7IHJldHVybiBDU1NWYWx1ZTo6Q1NTX0NVU1RPTTsgfQogICAgIHZpcnR1YWwgRE9NU3RyaW5n
IGNzc1RleHQoKSBjb25zdCA9IDA7CiAgICAgdm9pZCBzZXRDc3NUZXh0KGNvbnN0IERPTVN0cmlu
ZyAmKSB7IH0gLy8gRklYTUU6IE5vdCBpbXBsZW1lbnRlZC4KIApAQCAtMzQwLDcgKzM0MCw2IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5DU1NCb3JkZXJJbWFnZVZhbHVlSW1wbCgpOwogCiAgICAg
dmlydHVhbCBET01TdHJpbmcgY3NzVGV4dCgpIGNvbnN0OwotICAgIHZpcnR1YWwgdW5zaWduZWQg
c2hvcnQgY3NzVmFsdWVUeXBlKCkgY29uc3QgeyByZXR1cm4gQ1NTVmFsdWU6OkNTU19DVVNUT007
IH0KIAogcHVibGljOgogICAgIC8vIFRoZSBib3JkZXIgaW1hZ2UuCkBAIC0zNzQsOSArMzczLDcg
QEAgY2xhc3MgRm9udFZhbHVlSW1wbCA6IHB1YmxpYyBDU1NWYWx1ZUltcAogcHVibGljOgogICAg
IEZvbnRWYWx1ZUltcGwoKTsKICAgICB2aXJ0dWFsIH5Gb250VmFsdWVJbXBsKCk7Ci0KLSAgICB2
aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNzc1ZhbHVlVHlwZSgpIGNvbnN0IHsgcmV0dXJuIENTU1Zh
bHVlOjpDU1NfQ1VTVE9NOyB9Ci0gICAgCisgICAgICAgIAogICAgIHZpcnR1YWwgRE9NU3RyaW5n
IGNzc1RleHQoKSBjb25zdDsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNGb250VmFsdWUoKSB7
IHJldHVybiB0cnVlOyB9CkBAIC0zOTYsOSArMzkzLDcgQEAgcHVibGljOgogICAgIFNoYWRvd1Zh
bHVlSW1wbChDU1NQcmltaXRpdmVWYWx1ZUltcGwqIF94LCBDU1NQcmltaXRpdmVWYWx1ZUltcGwq
IF95LAogICAgICAgICAgICAgICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZUltcGwqIF9ibHVyLCBD
U1NQcmltaXRpdmVWYWx1ZUltcGwqIF9jb2xvcik7CiAgICAgdmlydHVhbCB+U2hhZG93VmFsdWVJ
bXBsKCk7Ci0KLSAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNzc1ZhbHVlVHlwZSgpIGNvbnN0
IHsgcmV0dXJuIENTU1ZhbHVlOjpDU1NfQ1VTVE9NOyB9Ci0KKyAgICAKICAgICB2aXJ0dWFsIERP
TVN0cmluZyBjc3NUZXh0KCkgY29uc3Q7CiAKICAgICBDU1NQcmltaXRpdmVWYWx1ZUltcGwqIHg7
CkluZGV4OiBraHRtbC9jc3MvY3NzcGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvV2ViQ29yZS9raHRtbC9jc3MvY3NzcGFyc2VyLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNp
b24gMS4xMDkKZGlmZiAtcCAtdSAtcjEuMTA5IGtodG1sL2Nzcy9jc3NwYXJzZXIuY3BwCi0tLSBr
aHRtbC9jc3MvY3NzcGFyc2VyLmNwcAkyIE5vdiAyMDA1IDA4OjUyOjM5IC0wMDAwCTEuMTA5Cisr
KyBraHRtbC9jc3MvY3NzcGFyc2VyLmNwcAkxNyBOb3YgMjAwNSAwMTozMToxNiAtMDAwMApAQCAt
MzgsMTQgKzM4LDE4IEBACiAjaW5jbHVkZSAieG1sL2RvbV9kb2NpbXBsLmgiCiAjaW5jbHVkZSAi
Y3NzaGVscGVyLmgiCiAKLXVzaW5nIG5hbWVzcGFjZSBET007Ci0KICNpbmNsdWRlIDxzdGRsaWIu
aD4KIAorI2lmIFNWR19TVVBQT1JUCisjaW5jbHVkZSAiU1ZHUGFpbnRJbXBsLmgiCisjZW5kaWYK
KwogI2lmIEFQUExFX0NIQU5HRVMKIHZvaWQgcUZhdGFsICggY29uc3QgY2hhciAqIG1zZyApIHt9
CiAjZW5kaWYKIAordXNpbmcgbmFtZXNwYWNlIERPTTsKKwogVmFsdWVMaXN0OjpWYWx1ZUxpc3Qo
KQogewogICAgIHZhbHVlcyA9IChWYWx1ZSAqKWZhc3RNYWxsb2MoMTYgKiBzaXplb2YoVmFsdWUp
KTsKQEAgLTc2LDggKzgwLDYgQEAgdm9pZCBWYWx1ZUxpc3Q6OmFkZFZhbHVlKGNvbnN0IFZhbHVl
ICZ2YQogfQogCiAKLXVzaW5nIG5hbWVzcGFjZSBET007Ci0KICNpZiBZWURFQlVHID4gMAogZXh0
ZXJuIGludCBjc3N5eWRlYnVnOwogI2VuZGlmCkBAIC0xMjg0LDYgKzEyODYsMTAgQEAgYm9vbCBD
U1NQYXJzZXI6OnBhcnNlVmFsdWUoIGludCBwcm9wSWQsIAogLy8gI2lmZGVmIENTU19ERUJVRwog
Ly8gCWtkRGVidWcoIDYwODAgKSA8PCAiaWxsZWdhbCBvciBDU1MyIEF1cmFsIHByb3BlcnR5OiAi
IDw8IHZhbCA8PCBlbmRsOwogLy8gI2VuZGlmCisjaWYgU1ZHX1NVUFBPUlQKKyAgICBpZiAocGFy
c2VTVkdWYWx1ZShwcm9wSWQsIGltcG9ydGFudCkpCisgICAgICAgIHJldHVybiB0cnVlOworI2Vu
ZGlmCiAJYnJlYWs7CiAgICAgfQogCkBAIC0yNjUyLDcgKzI2NTgsNyBAQCBzdGF0aWMgaW5saW5l
IGludCB5eWVycm9yKCBjb25zdCBjaGFyICpzCiAgICAgcmV0dXJuIDE7CiB9CiAKLSNkZWZpbmUg
RU5EIDAKKyNkZWZpbmUgRU5EX1RPS0VOIDAKIAogI2luY2x1ZGUgInBhcnNlci5oIgogCkBAIC0y
NjYzLDcgKzI2NjksNyBAQCBpbnQgRE9NOjpDU1NQYXJzZXI6OmxleCggdm9pZCAqX3l5bHZhbCAp
CiAgICAgdW5zaWduZWQgc2hvcnQgKnQgPSB0ZXh0KCAmbGVuZ3RoICk7CiAKICNpZmRlZiBUT0tF
Tl9ERUJVRwotICAgIHFEZWJ1ZygiQ1NTVG9rZW5pemVyOiBnb3QgdG9rZW4gJWQ6ICclcyciLCB0
b2tlbiwgdG9rZW4gPT0gRU5EID8gIiIgOiBRU3RyaW5nKCAoUUNoYXIgKil0LCBsZW5ndGggKS5s
YXRpbjEoKSApOworICAgIHFEZWJ1ZygiQ1NTVG9rZW5pemVyOiBnb3QgdG9rZW4gJWQ6ICclcyci
LCB0b2tlbiwgdG9rZW4gPT0gRU5EX1RPS0VOID8gIiIgOiBRU3RyaW5nKCAoUUNoYXIgKil0LCBs
ZW5ndGggKS5sYXRpbjEoKSApOwogI2VuZGlmCiAgICAgc3dpdGNoKCB0b2tlbiApIHsKICAgICBj
YXNlIFdISVRFU1BBQ0U6CkBAIC0yODYxLDYgKzI4NjcsMTAgQEAgdW5zaWduZWQgc2hvcnQgKkRP
TTo6Q1NTUGFyc2VyOjp0ZXh0KGludAogICAgIHJldHVybiBzdGFydDsKIH0KIAorI2lmIFNWR19T
VVBQT1JUCisjaW5jbHVkZSAia3N2ZzIvY3NzL0tTVkdDU1NQYXJzZXIuY3BwIgorI2VuZGlmCisK
IAogI2RlZmluZSBZWV9ERUNMIGludCBET006OkNTU1BhcnNlcjo6bGV4KCkKICNkZWZpbmUgeXlj
b25zdCBjb25zdApAQCAtMjg3OSw5ICsyODg5LDggQEAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgWVlf
Q0hBUjsKICNkZWZpbmUgWVlfUlVMRV9TRVRVUAogI2RlZmluZSBJTklUSUFMIDAKICNkZWZpbmUg
WVlfU1RBVEVfRU9GKHN0YXRlKSAoWVlfRU5EX09GX0JVRkZFUiArIHN0YXRlICsgMSkKLSNkZWZp
bmUgeXl0ZXJtaW5hdGUoKSB5eVRvayA9IEVORDsgcmV0dXJuIHl5VG9rCisjZGVmaW5lIHl5dGVy
bWluYXRlKCkgeXlUb2sgPSBFTkRfVE9LRU47IHJldHVybiB5eVRvawogI2RlZmluZSBZWV9GQVRB
TF9FUlJPUihhKSBxRmF0YWwoYSkKLSNkZWZpbmUgQkVHSU4geXlfc3RhcnQgPSAxICsgMiAqCi0j
ZGVmaW5lIENPTU1FTlQgMQogCiAjaW5jbHVkZSAidG9rZW5pemVyLmNwcCIKKwpJbmRleDoga2h0
bWwvY3NzL2Nzc3BhcnNlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3Jl
L2todG1sL2Nzcy9jc3NwYXJzZXIuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zMgpkaWZmIC1w
IC11IC1yMS4zMiBraHRtbC9jc3MvY3NzcGFyc2VyLmgKLS0tIGtodG1sL2Nzcy9jc3NwYXJzZXIu
aAkyNyBBdWcgMjAwNSAwMDoxNDoxOCAtMDAwMAkxLjMyCisrKyBraHRtbC9jc3MvY3NzcGFyc2Vy
LmgJMTcgTm92IDIwMDUgMDE6MzE6MTYgLTAwMDAKQEAgLTE0NSw2ICsxNDUsMTMgQEAgbmFtZXNw
YWNlIERPTSB7CiAJQ1NTVmFsdWVMaXN0SW1wbCAqcGFyc2VGb250RmFtaWx5KCk7CiAgICAgICAg
IENTU1ByaW1pdGl2ZVZhbHVlSW1wbCAqcGFyc2VDb2xvcigpOwogCUNTU1ByaW1pdGl2ZVZhbHVl
SW1wbCAqcGFyc2VDb2xvckZyb21WYWx1ZShWYWx1ZSogdmFsKTsKKyAgICAgICAgCisjaWYgU1ZH
X1NVUFBPUlQKKyAgICAgICAgYm9vbCBwYXJzZVNWR1ZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1w
b3J0YW50LCBpbnQgZXhwZWN0ZWQgPSAxKTsKKyAgICAgICAgQ1NTVmFsdWVJbXBsICpwYXJzZVNW
R1BhaW50KCk7CisgICAgICAgIENTU1ZhbHVlSW1wbCAqcGFyc2VTVkdDb2xvcigpOworICAgICAg
ICBDU1NWYWx1ZUltcGwgKnBhcnNlU1ZHU3Ryb2tlRGFzaGFycmF5KCk7CisjZW5kaWYKIAogICAg
ICAgICBzdGF0aWMgYm9vbCBwYXJzZUNvbG9yKGNvbnN0IFFTdHJpbmcgJm5hbWUsIFFSZ2ImIHJn
Yik7CiAKSW5kZXg6IGtodG1sL2Nzcy9jc3NzdHlsZXNlbGVjdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9jc3MvY3Nzc3R5bGVzZWxlY3Rvci5jcHAs
dgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjIwCmRpZmYgLXAgLXUgLXIxLjIyMCBraHRtbC9jc3Mv
Y3Nzc3R5bGVzZWxlY3Rvci5jcHAKLS0tIGtodG1sL2Nzcy9jc3NzdHlsZXNlbGVjdG9yLmNwcAky
IE5vdiAyMDA1IDA4OjUyOjQwIC0wMDAwCTEuMjIwCisrKyBraHRtbC9jc3MvY3Nzc3R5bGVzZWxl
Y3Rvci5jcHAJMTcgTm92IDIwMDUgMDE6MzE6MTcgLTAwMDAKQEAgLTIxNSw2ICsyMTUsOSBAQCBD
U1NSdWxlU2V0ICpDU1NTdHlsZVNlbGVjdG9yOjpkZWZhdWx0UHJpCiBDU1NTdHlsZVNoZWV0SW1w
bCAqQ1NTU3R5bGVTZWxlY3Rvcjo6ZGVmYXVsdFNoZWV0ID0gMDsKIFJlbmRlclN0eWxlKiBDU1NT
dHlsZVNlbGVjdG9yOjpzdHlsZU5vdFlldEF2YWlsYWJsZSA9IDA7CiBDU1NTdHlsZVNoZWV0SW1w
bCAqQ1NTU3R5bGVTZWxlY3Rvcjo6cXVpcmtzU2hlZXQgPSAwOworI2lmIFNWR19TVVBQT1JUCitD
U1NTdHlsZVNoZWV0SW1wbCAqQ1NTU3R5bGVTZWxlY3Rvcjo6c3ZnU2hlZXQgPSAwOworI2VuZGlm
CiAKIHN0YXRpYyBDU1NTdHlsZVNlbGVjdG9yOjpFbmNvZGVkdXJsICpjdXJyZW50RW5jb2RlZFVS
TCA9IDA7CiBzdGF0aWMgUHNldWRvU3RhdGUgcHNldWRvU3RhdGU7CkBAIC0zMzgsNiArMzQxLDEy
IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6bG9hZERlZmF1bHRTdHlsZSgKICAgICBxdWlya3NT
aGVldCA9IHBhcnNlVUFTaGVldCgwLCAia2h0bWwvY3NzL3F1aXJrcy5jc3MiKTsKICAgICBkZWZh
dWx0UXVpcmtzU3R5bGUgPSBuZXcgQ1NTUnVsZVNldCgpOwogICAgIGRlZmF1bHRRdWlya3NTdHls
ZS0+YWRkUnVsZXNGcm9tU2hlZXQocXVpcmtzU2hlZXQsICJzY3JlZW4iKTsKKyAgICAKKyNpZiBT
VkdfU1VQUE9SVAorICAgIHN2Z1NoZWV0ID0gcGFyc2VVQVNoZWV0KDAsICJrc3ZnMi9jc3Mvc3Zn
LmNzcyIpOworICAgIGRlZmF1bHRTdHlsZS0+YWRkUnVsZXNGcm9tU2hlZXQoc3ZnU2hlZXQsICJz
Y3JlZW4iKTsKKyAgICBkZWZhdWx0UHJpbnRTdHlsZS0+YWRkUnVsZXNGcm9tU2hlZXQoc3ZnU2hl
ZXQsICJwcmludCIpOworI2VuZGlmCiB9CiAKIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YWRkTWF0
Y2hlZFJ1bGUoQ1NTUnVsZURhdGEqIHJ1bGUpCkBAIC00MTI2LDYgKzQxMzUsMTAgQEAgdm9pZCBD
U1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KCBpbgogI2VuZGlmCiAKICAgICBkZWZhdWx0
OgorI2lmIFNWR19TVVBQT1JUCisgICAgICAgIC8vIFRyeSB0aGUgU1ZHIHByb3BlcnRpZXMKKyAg
ICAgICAgYXBwbHlTVkdQcm9wZXJ0eShpZCwgdmFsdWUpOworI2VuZGlmCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiB9CkluZGV4OiBraHRtbC9jc3MvY3Nzc3R5bGVzZWxlY3Rvci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2Nzcy9jc3NzdHlsZXNlbGVjdG9y
LmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDIKZGlmZiAtcCAtdSAtcjEuNDIga2h0bWwvY3Nz
L2Nzc3N0eWxlc2VsZWN0b3IuaAotLS0ga2h0bWwvY3NzL2Nzc3N0eWxlc2VsZWN0b3IuaAkzMCBP
Y3QgMjAwNSAwNToyNjoyNiAtMDAwMAkxLjQyCisrKyBraHRtbC9jc3MvY3Nzc3R5bGVzZWxlY3Rv
ci5oCTE3IE5vdiAyMDA1IDAxOjMxOjE3IC0wMDAwCkBAIC0xNjksNiArMTY5LDkgQEAgbmFtZXNw
YWNlIGtodG1sCiAgICAgICAgIAogCXN0YXRpYyBET006OkNTU1N0eWxlU2hlZXRJbXBsICpkZWZh
dWx0U2hlZXQ7CiAgICAgICAgIHN0YXRpYyBET006OkNTU1N0eWxlU2hlZXRJbXBsICpxdWlya3NT
aGVldDsKKyNpZiBTVkdfU1VQUE9SVAorICAgICAgICBzdGF0aWMgRE9NOjpDU1NTdHlsZVNoZWV0
SW1wbCAqc3ZnU2hlZXQ7CisjZW5kaWYKIAlzdGF0aWMgQ1NTUnVsZVNldCogZGVmYXVsdFN0eWxl
OwogICAgICAgICBzdGF0aWMgQ1NTUnVsZVNldCogZGVmYXVsdFF1aXJrc1N0eWxlOwogCXN0YXRp
YyBDU1NSdWxlU2V0KiBkZWZhdWx0UHJpbnRTdHlsZTsKQEAgLTIyOCw2ICsyMzEsOSBAQCBwdWJs
aWM6CiAgICAgICAgIGJvb2wgaXNYTUxEb2M7CiAgICAgICAgIAogCXZvaWQgYXBwbHlQcm9wZXJ0
eShpbnQgaWQsIERPTTo6Q1NTVmFsdWVJbXBsICp2YWx1ZSk7CisjaWYgU1ZHX1NVUFBPUlQKKyAg
ICAgICAgdm9pZCBhcHBseVNWR1Byb3BlcnR5KGludCBpZCwgRE9NOjpDU1NWYWx1ZUltcGwgKnZh
bHVlKTsKKyNlbmRpZgogICAgIH07CiAKICAgICBjbGFzcyBDU1NSdWxlRGF0YSB7CkluZGV4OiBr
aHRtbC9jc3MvcGFyc2VyLnkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUv
a2h0bWwvY3NzL3BhcnNlci55LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQ1CmRpZmYgLXAgLXUg
LXIxLjQ1IGtodG1sL2Nzcy9wYXJzZXIueQotLS0ga2h0bWwvY3NzL3BhcnNlci55CTMgT2N0IDIw
MDUgMjE6MTI6MDggLTAwMDAJMS40NQorKysga2h0bWwvY3NzL3BhcnNlci55CTE3IE5vdiAyMDA1
IDAxOjMxOjE3IC0wMDAwCkBAIC0zNyw2ICszNywxMSBAQAogI2luY2x1ZGUgPGtkZWJ1Zy5oPgog
Ly8gI2RlZmluZSBDU1NfREVCVUcKIAorI2lmIFNWR19TVVBQT1JUCisjaW5jbHVkZSAia3N2Z2Nz
c3Byb3BlcnRpZXMuaCIKKyNpbmNsdWRlICJrc3ZnY3NzdmFsdWVzLmgiCisjZW5kaWYKKwogdXNp
bmcgbmFtZXNwYWNlIERPTTsKICB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCkBAIC05NTgs
NiArOTYzLDEwIEBAIHByb3BlcnR5OgogICAgIElERU5UIG1heWJlX3NwYWNlIHsKIAlRU3RyaW5n
IHN0ciA9IHFTdHJpbmcoJDEpOwogCSQkID0gZ2V0UHJvcGVydHlJRCggc3RyLmxvd2VyKCkubGF0
aW4xKCksIHN0ci5sZW5ndGgoKSApOworI2lmIFNWR19TVVBQT1JUCisgICAgICBpZiAoJCQgPT0g
MCkKKyAgICAgICAgICAkJCA9IEtTVkc6OmdldFByb3BlcnR5SUQoc3RyLmxvd2VyKCkubGF0aW4x
KCksIHN0ci5sZW5ndGgoKSk7CisjZW5kaWYKICAgICB9CiAgIDsKIApAQCAtMTAwOSw2ICsxMDE4
LDEwIEBAIHRlcm06CiAgIHwgSURFTlQgbWF5YmVfc3BhY2UgewogICAgICAgUVN0cmluZyBzdHIg
PSBxU3RyaW5nKCAkMSApOwogICAgICAgJCQuaWQgPSBnZXRWYWx1ZUlEKCBzdHIubG93ZXIoKS5s
YXRpbjEoKSwgc3RyLmxlbmd0aCgpICk7CisjaWYgU1ZHX1NVUFBPUlQKKyAgICAgIGlmICgkJC5p
ZCA9PSAwKQorICAgICAgICAgICQkLmlkID0gS1NWRzo6Z2V0VmFsdWVJRChzdHIubG93ZXIoKS5s
YXRpbjEoKSwgc3RyLmxlbmd0aCgpKTsKKyNlbmRpZgogICAgICAgJCQudW5pdCA9IENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfSURFTlQ7CiAgICAgICAkJC5zdHJpbmcgPSAkMTsKICAgfQpJbmRleDog
a2h0bWwvZWNtYS9kb21wYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9X
ZWJDb3JlL2todG1sL2VjbWEvZG9tcGFyc2VyLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS43
CmRpZmYgLXAgLXUgLXIxLjcga2h0bWwvZWNtYS9kb21wYXJzZXIuY3BwCi0tLSBraHRtbC9lY21h
L2RvbXBhcnNlci5jcHAJMyBPY3QgMjAwNSAyMToxMjoxMiAtMDAwMAkxLjcKKysrIGtodG1sL2Vj
bWEvZG9tcGFyc2VyLmNwcAkxNyBOb3YgMjAwNSAwMTozMToxNyAtMDAwMApAQCAtNzgsMTUgKzc4
LDE0IEBAIFZhbHVlSW1wICpET01QYXJzZXJQcm90b0Z1bmM6OmNhbGxBc0Z1bmMKICAgc3dpdGNo
IChpZCkgewogICBjYXNlIERPTVBhcnNlcjo6UGFyc2VGcm9tU3RyaW5nOgogICAgIHsKLSAgICAg
IGlmIChhcmdzLnNpemUoKSAhPSAyKSB7Ci0JCQkJcmV0dXJuIFVuZGVmaW5lZCgpOwotICAgICAg
fQorICAgICAgICBpZiAoYXJncy5zaXplKCkgIT0gMikKKyAgICAgICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwogCiAgICAgICBRU3RyaW5nIHN0ciA9IGFyZ3NbMF0tPnRvU3RyaW5nKGV4ZWMp
LnFzdHJpbmcoKTsKICAgICAgIFFTdHJpbmcgY29udGVudFR5cGUgPSBhcmdzWzFdLT50b1N0cmlu
ZyhleGVjKS5xc3RyaW5nKCkuc3RyaXBXaGl0ZVNwYWNlKCk7CiAKICAgICAgIGlmIChjb250ZW50
VHlwZSA9PSAidGV4dC94bWwiIHx8IGNvbnRlbnRUeXBlID09ICJhcHBsaWNhdGlvbi94bWwiIHx8
IGNvbnRlbnRUeXBlID09ICJhcHBsaWNhdGlvbi94aHRtbCt4bWwiKSB7Ci0gICAgICAgIERvY3Vt
ZW50SW1wbCAqZG9jSW1wbCA9IHBhcnNlci0+ZG9jLT5pbXBsKCktPmNyZWF0ZURvY3VtZW50KCk7
CisgICAgICAgIERvY3VtZW50SW1wbCAqZG9jSW1wbCA9IHBhcnNlci0+ZG9jLT5pbXBsZW1lbnRh
dGlvbigpLT5jcmVhdGVEb2N1bWVudCgpOwogCiAgICAgICAgIGRvY0ltcGwtPm9wZW4oKTsKICAg
ICAgICAgZG9jSW1wbC0+d3JpdGUoc3RyKTsKSW5kZXg6IGtodG1sL2VjbWEva2pzX2RvbS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWNtYS9ranNfZG9t
LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMDcKZGlmZiAtcCAtdSAtcjEuMTA3IGtodG1s
L2VjbWEva2pzX2RvbS5jcHAKLS0tIGtodG1sL2VjbWEva2pzX2RvbS5jcHAJMTUgTm92IDIwMDUg
MDI6MDU6NDIgLTAwMDAJMS4xMDcKKysrIGtodG1sL2VjbWEva2pzX2RvbS5jcHAJMTcgTm92IDIw
MDUgMDE6MzE6MTggLTAwMDAKQEAgLTk1MSw3ICs5NTEsNyBAQCBWYWx1ZUltcCAqRE9NRG9jdW1l
bnQ6OmdldFZhbHVlUHJvcGVydHkoCiAgIGNhc2UgRG9jVHlwZToKICAgICByZXR1cm4gZ2V0RE9N
Tm9kZShleGVjLGRvYy5kb2N0eXBlKCkpOwogICBjYXNlIEltcGxlbWVudGF0aW9uOgotICAgIHJl
dHVybiBnZXRET01ET01JbXBsZW1lbnRhdGlvbihleGVjLGRvYy5pbXBsKCkpOworICAgIHJldHVy
biBnZXRET01ET01JbXBsZW1lbnRhdGlvbihleGVjLCBkb2MuaW1wbGVtZW50YXRpb24oKSk7CiAg
IGNhc2UgRG9jdW1lbnRFbGVtZW50OgogICAgIHJldHVybiBnZXRET01Ob2RlKGV4ZWMsZG9jLmRv
Y3VtZW50RWxlbWVudCgpKTsKICAgY2FzZSBTdHlsZVNoZWV0czoKSW5kZXg6IGtodG1sL2VjbWEv
eG1saHR0cHJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3Jl
L2todG1sL2VjbWEveG1saHR0cHJlcXVlc3QuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQ0
CmRpZmYgLXAgLXUgLXIxLjQ0IGtodG1sL2VjbWEveG1saHR0cHJlcXVlc3QuY3BwCi0tLSBraHRt
bC9lY21hL3htbGh0dHByZXF1ZXN0LmNwcAkyNyBPY3QgMjAwNSAyMzoxNTowMCAtMDAwMAkxLjQ0
CisrKyBraHRtbC9lY21hL3htbGh0dHByZXF1ZXN0LmNwcAkxNyBOb3YgMjAwNSAwMTozMToxOCAt
MDAwMApAQCAtMTYxLDcgKzE2MSw3IEBAIFZhbHVlSW1wICpYTUxIdHRwUmVxdWVzdDo6Z2V0VmFs
dWVQcm9wZXIKICAgICAgIAogICAgICAgaWYgKG1pbWVUeXBlID09ICJ0ZXh0L3htbCIgfHwgbWlt
ZVR5cGUgPT0gImFwcGxpY2F0aW9uL3htbCIgfHwgbWltZVR5cGUgPT0gImFwcGxpY2F0aW9uL3ho
dG1sK3htbCIgfHwKICAgICAgICAgICBtaW1lVHlwZSA9PSAidGV4dC94c2wiIHx8IG1pbWVUeXBl
ID09ICJhcHBsaWNhdGlvbi9yc3MreG1sIiB8fCBtaW1lVHlwZSA9PSAiYXBwbGljYXRpb24vYXRv
bSt4bWwiKSB7Ci0JcmVzcG9uc2VYTUwucmVzZXQoZG9jLT5pbXBsKCktPmNyZWF0ZURvY3VtZW50
KCkpOworCXJlc3BvbnNlWE1MLnJlc2V0KGRvYy0+aW1wbGVtZW50YXRpb24oKS0+Y3JlYXRlRG9j
dW1lbnQoKSk7CiAKIAlEb2N1bWVudEltcGwgKmRvY0ltcGwgPSByZXNwb25zZVhNTC5nZXQoKTsK
IAkKSW5kZXg6IGtodG1sL2h0bWwvaHRtbF9kb2N1bWVudGltcGwuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2h0bWwvaHRtbF9kb2N1bWVudGltcGwuY3Bw
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjc0CmRpZmYgLXAgLXUgLXIxLjc0IGtodG1sL2h0bWwv
aHRtbF9kb2N1bWVudGltcGwuY3BwCi0tLSBraHRtbC9odG1sL2h0bWxfZG9jdW1lbnRpbXBsLmNw
cAk4IE5vdiAyMDA1IDA4OjEwOjU4IC0wMDAwCTEuNzQKKysrIGtodG1sL2h0bWwvaHRtbF9kb2N1
bWVudGltcGwuY3BwCTE3IE5vdiAyMDA1IDAxOjMxOjE4IC0wMDAwCkBAIC0xMzQsMTkgKzEzNCw2
IEBAIEVsZW1lbnRJbXBsKiBIVE1MRG9jdW1lbnRJbXBsOjpkb2N1bWVudEUKICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8RWxlbWVudEltcGwqPihfZmlyc3QpOwogfQogCi1ET01TdHJpbmcgSFRNTERv
Y3VtZW50SW1wbDo6cmVmZXJyZXIoKSBjb25zdAotewotICAgIGlmICggcGFydCgpICkKLSNpZiBB
UFBMRV9DSEFOR0VTCi0gICAgICAgIHJldHVybiBLV1EocGFydCgpKS0+aW5jb21pbmdSZWZlcnJl
cigpOwotI2Vsc2UKLSAgICAgICAgLy8gVGhpcyBpcyBicm9rZW47IHJldHVybnMgdGhlIHJlZmVy
cmVyIHVzZWQgZm9yIGxpbmtzIHdpdGhpbiB0aGlzIHBhZ2UgKGJhc2ljYWxseQotICAgICAgICAv
LyB0aGUgc2FtZSBhcyB0aGUgVVJMKSwgbm90IHRoZSByZWZlcnJlciB1c2VkIGZvciBsb2FkaW5n
IHRoaXMgcGFnZSBpdHNlbGYuCi0gICAgICAgIHJldHVybiBwYXJ0KCktPnJlZmVycmVyKCk7Ci0j
ZW5kaWYKLSAgICByZXR1cm4gRE9NU3RyaW5nKCk7Ci19Ci0KIERPTVN0cmluZyBIVE1MRG9jdW1l
bnRJbXBsOjpsYXN0TW9kaWZpZWQoKSBjb25zdAogewogICAgIGlmICggcGFydCgpICkKSW5kZXg6
IGtodG1sL2h0bWwvaHRtbF9kb2N1bWVudGltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfZG9jdW1lbnRpbXBsLmgsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuMzMKZGlmZiAtcCAtdSAtcjEuMzMga2h0bWwvaHRtbC9odG1sX2RvY3VtZW50
aW1wbC5oCi0tLSBraHRtbC9odG1sL2h0bWxfZG9jdW1lbnRpbXBsLmgJMjggU2VwIDIwMDUgMjI6
MDE6MzIgLTAwMDAJMS4zMworKysga2h0bWwvaHRtbC9odG1sX2RvY3VtZW50aW1wbC5oCTE3IE5v
diAyMDA1IDAxOjMxOjE4IC0wMDAwCkBAIC00Nyw3ICs0Nyw2IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgaXNIVE1MRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmly
dHVhbCBFbGVtZW50SW1wbCAqZG9jdW1lbnRFbGVtZW50KCkgY29uc3Q7CiAKLSAgICBET01TdHJp
bmcgcmVmZXJyZXIoKSBjb25zdDsKICAgICBET01TdHJpbmcgbGFzdE1vZGlmaWVkKCkgY29uc3Q7
CiAgICAgRE9NU3RyaW5nIGNvb2tpZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0Q29va2llKCBjb25z
dCBET01TdHJpbmcgJik7CkluZGV4OiBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX2NhbnZhcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3Jl
bmRlcl9jYW52YXMuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjM0CmRpZmYgLXAgLXUgLXIx
LjM0IGtodG1sL3JlbmRlcmluZy9yZW5kZXJfY2FudmFzLmNwcAotLS0ga2h0bWwvcmVuZGVyaW5n
L3JlbmRlcl9jYW52YXMuY3BwCTE5IE9jdCAyMDA1IDA5OjE1OjEzIC0wMDAwCTEuMzQKKysrIGto
dG1sL3JlbmRlcmluZy9yZW5kZXJfY2FudmFzLmNwcAkxNyBOb3YgMjAwNSAwMTozMToxOCAtMDAw
MApAQCAtMzEsNiArMzEsMTEgQEAKICNpbmNsdWRlICJraHRtbF9wYXJ0LmgiCiAjZW5kaWYKIAor
I2lmIFNWR19TVVBQT1JUCisjaW5jbHVkZSAiS0NhbnZhc1JlZ2lzdHJ5LmgiCisjaW5jbHVkZSAi
S1JlbmRlcmluZ0RldmljZVF1YXJ0ei5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBraHRt
bDsKIAogLy8jZGVmaW5lIEJPWF9ERUJVRwpAQCAtNzEsMTAgKzc2LDE5IEBAIFJlbmRlckNhbnZh
czo6UmVuZGVyQ2FudmFzKERPTTo6Tm9kZUltcGwKIAogICAgIC8vIENyZWF0ZSBhIG5ldyByb290
IGxheWVyIGZvciBvdXIgbGF5ZXIgaGllcmFyY2h5LgogICAgIG1fbGF5ZXIgPSBuZXcgKG5vZGUt
PmdldERvY3VtZW50KCktPnJlbmRlckFyZW5hKCkpIFJlbmRlckxheWVyKHRoaXMpOworICAgIAor
I2lmIFNWR19TVVBQT1JUCisgICAgbV9yZW5kZXJpbmdEZXZpY2UgPSAwOworICAgIG1fcmVnaXN0
cnkgPSAwOworI2VuZGlmCiB9CiAKIFJlbmRlckNhbnZhczo6flJlbmRlckNhbnZhcygpCiB7Cisj
aWYgU1ZHX1NVUFBPUlQKKyAgICBkZWxldGUgbV9yZW5kZXJpbmdEZXZpY2U7CisgICAgZGVsZXRl
IG1fcmVnaXN0cnk7CisjZW5kaWYKIH0KIAogdm9pZCBSZW5kZXJDYW52YXM6OmNhbGNIZWlnaHQo
KQpAQCAtNjQ2LDMgKzY2MCwxOSBAQCB2b2lkIFJlbmRlckNhbnZhczo6c2V0QmVzdFRydW5jYXRl
ZEF0KGluCiAgICAgfQogfQogI2VuZGlmCisKKyNpZiBTVkdfU1VQUE9SVAorS1JlbmRlcmluZ0Rl
dmljZSAqUmVuZGVyQ2FudmFzOjpyZW5kZXJpbmdEZXZpY2UoKQoreworICAgIGlmICghbV9yZW5k
ZXJpbmdEZXZpY2UpCisgICAgICAgIG1fcmVuZGVyaW5nRGV2aWNlID0gbmV3IEtSZW5kZXJpbmdE
ZXZpY2VRdWFydHooKTsKKyAgICByZXR1cm4gbV9yZW5kZXJpbmdEZXZpY2U7Cit9CisKK0tDYW52
YXNSZWdpc3RyeSAqUmVuZGVyQ2FudmFzOjpyZWdpc3RyeSgpCit7CisgICAgaWYgKCFtX3JlZ2lz
dHJ5KQorICAgICAgICBtX3JlZ2lzdHJ5ID0gbmV3IEtDYW52YXNSZWdpc3RyeSgpOworICAgIHJl
dHVybiBtX3JlZ2lzdHJ5OworfQorI2VuZGlmCkluZGV4OiBraHRtbC9yZW5kZXJpbmcvcmVuZGVy
X2NhbnZhcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3Jl
bmRlcmluZy9yZW5kZXJfY2FudmFzLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTIKZGlmZiAt
cCAtdSAtcjEuMTIga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9jYW52YXMuaAotLS0ga2h0bWwvcmVu
ZGVyaW5nL3JlbmRlcl9jYW52YXMuaAkxOSBPY3QgMjAwNSAwOToxNToxNCAtMDAwMAkxLjEyCisr
KyBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX2NhbnZhcy5oCTE3IE5vdiAyMDA1IDAxOjMxOjE4IC0w
MDAwCkBAIC0yOCw2ICsyOCwxMiBAQAogY2xhc3MgS0hUTUxWaWV3OwogY2xhc3MgUVNjcm9sbFZp
ZXc7CiAKKyNpZiBTVkdfU1VQUE9SVAorY2xhc3MgS1JlbmRlcmluZ0RldmljZTsKK2NsYXNzIEtD
YW52YXNSZWdpc3RyeTsKKyNlbmRpZgorCisKIG5hbWVzcGFjZSBraHRtbCB7CiAKIGNsYXNzIFJl
bmRlckNhbnZhcyA6IHB1YmxpYyBSZW5kZXJCbG9jawpAQCAtMTA2LDYgKzExMiwxMSBAQCBwdWJs
aWM6CiAgICAgdm9pZCB1cGRhdGVXaWRnZXRQb3NpdGlvbnMoKTsKICAgICB2b2lkIGFkZFdpZGdl
dChSZW5kZXJPYmplY3QgKik7CiAgICAgdm9pZCByZW1vdmVXaWRnZXQoUmVuZGVyT2JqZWN0ICop
OworICAgIAorI2lmIFNWR19TVVBQT1JUCisgICAgS1JlbmRlcmluZ0RldmljZSAqcmVuZGVyaW5n
RGV2aWNlKCk7CisgICAgS0NhbnZhc1JlZ2lzdHJ5ICpyZWdpc3RyeSgpOworI2VuZGlmCiAKIHBy
b3RlY3RlZDoKIApAQCAtMTMzLDYgKzE0NCwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgdHlwZWRlZiBI
YXNoU2V0PFJlbmRlck9iamVjdCAqLCBQb2ludGVySGFzaDxSZW5kZXJPYmplY3QgKj4gPiBSZW5k
ZXJPYmplY3RTZXQ7CiAKICAgICBSZW5kZXJPYmplY3RTZXQgbV93aWRnZXRzOworICAgIAorI2lm
IFNWR19TVVBQT1JUCisgICAgS1JlbmRlcmluZ0RldmljZSAqbV9yZW5kZXJpbmdEZXZpY2U7Cisg
ICAgS0NhbnZhc1JlZ2lzdHJ5ICptX3JlZ2lzdHJ5OworI2VuZGlmCiB9OwogCiB9OwpJbmRleDog
a2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9jb250YWluZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv
Y3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2NvbnRhaW5lci5oLHYKcmV0
cmlldmluZyByZXZpc2lvbiAxLjIyCmRpZmYgLXAgLXUgLXIxLjIyIGtodG1sL3JlbmRlcmluZy9y
ZW5kZXJfY29udGFpbmVyLmgKLS0tIGtodG1sL3JlbmRlcmluZy9yZW5kZXJfY29udGFpbmVyLmgJ
MjQgT2N0IDIwMDUgMjI6MzM6NTQgLTAwMDAJMS4yMgorKysga2h0bWwvcmVuZGVyaW5nL3JlbmRl
cl9jb250YWluZXIuaAkxNyBOb3YgMjAwNSAwMTozMToxOCAtMDAwMApAQCAtNjQsNyArNjQsNyBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiBwb3NpdGlvbkZvckNvb3Jk
aW5hdGVzKGludCB4LCBpbnQgeSk7CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgdm9pZCBz
ZXRGaXJzdENoaWxkKFJlbmRlck9iamVjdCAqZmlyc3QpIHsgbV9maXJzdCA9IGZpcnN0OyB9CiAg
ICAgdm9pZCBzZXRMYXN0Q2hpbGQoUmVuZGVyT2JqZWN0ICpsYXN0KSB7IG1fbGFzdCA9IGxhc3Q7
IH0KIApJbmRleDoga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9vYmplY3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX29iamVjdC5o
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE2NQpkaWZmIC1wIC11IC1yMS4xNjUga2h0bWwvcmVu
ZGVyaW5nL3JlbmRlcl9vYmplY3QuaAotLS0ga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9vYmplY3Qu
aAk3IE5vdiAyMDA1IDIzOjI0OjE5IC0wMDAwCTEuMTY1CisrKyBraHRtbC9yZW5kZXJpbmcvcmVu
ZGVyX29iamVjdC5oCTE3IE5vdiAyMDA1IDAxOjMxOjE4IC0wMDAwCkBAIC0yMTEsMTQgKzIxMSwx
NCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGluc2VydENoaWxkTm9kZShSZW5kZXJPYmpl
Y3QqIGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZSk7CiAgICAgLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgICAgLy8gSGVscGVyIGZ1
bmN0aW9ucy4gRGFuZ2Vyb3VzIHRvIHVzZSEKICAgICB2b2lkIHNldFByZXZpb3VzU2libGluZyhS
ZW5kZXJPYmplY3QgKnByZXZpb3VzKSB7IG1fcHJldmlvdXMgPSBwcmV2aW91czsgfQogICAgIHZv
aWQgc2V0TmV4dFNpYmxpbmcoUmVuZGVyT2JqZWN0ICpuZXh0KSB7IG1fbmV4dCA9IG5leHQ7IH0K
ICAgICB2b2lkIHNldFBhcmVudChSZW5kZXJPYmplY3QgKnBhcmVudCkgeyBtX3BhcmVudCA9IHBh
cmVudDsgfQogICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwot
ICAgIAorcHJpdmF0ZToKICAgICB2b2lkIGFkZEFic29sdXRlUmVjdEZvckxheWVyKFFSZWN0JiBy
ZXN1bHQpOwogCiBwdWJsaWM6CkBAIC0yNzcsNiArMjc3LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgaXNGcmFtZVNldCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBib29sIGlzQXBwbGV0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAKKyNpZiBTVkdf
U1VQUE9SVAorICAgIHZpcnR1YWwgYm9vbCBpc0tDYW52YXNDb250YWluZXIoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlclBhdGgoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgUVJlY3QgYmJveChib29sIGluY2x1ZGVTdHJva2Ug
PSB0cnVlKSB7IHJldHVybiBRUmVjdCgpOyB9CisjZW5kaWYKKyAgICAKICAgICB2aXJ0dWFsIGJv
b2wgaXNFZGl0YWJsZSgpIGNvbnN0OwogCiAgICAgYm9vbCBpc0hUTUxNYXJxdWVlKCkgY29uc3Q7
CkluZGV4OiBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX3N0eWxlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX3N0eWxlLmNwcCx2
CnJldHJpZXZpbmcgcmV2aXNpb24gMS43MwpkaWZmIC1wIC11IC1yMS43MyBraHRtbC9yZW5kZXJp
bmcvcmVuZGVyX3N0eWxlLmNwcAotLS0ga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9zdHlsZS5jcHAJ
NiBPY3QgMjAwNSAwMDo1Mzo1OSAtMDAwMAkxLjczCisrKyBraHRtbC9yZW5kZXJpbmcvcmVuZGVy
X3N0eWxlLmNwcAkxNyBOb3YgMjAwNSAwMTozMToxOCAtMDAwMApAQCAtMjgsNiArMjgsMTAgQEAK
ICNpbmNsdWRlICJjc3MvY3Nzc3R5bGVzZWxlY3Rvci5oIgogI2luY2x1ZGUgInJlbmRlcl9hcmVu
YS5oIgogCisjaWYgU1ZHX1NVUFBPUlQKKyNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgorI2Vu
ZGlmCisKICNpbmNsdWRlICJrZGVidWcuaCIKIAogdXNpbmcgbmFtZXNwYWNlIGtodG1sOwpAQCAt
NTQzLDYgKzU0NywxMCBAQCBSZW5kZXJTdHlsZTo6UmVuZGVyU3R5bGUoKQogICAgIAogICAgIGlu
aGVyaXRlZCA9IF9kZWZhdWx0LT5pbmhlcml0ZWQ7CiAKKyNpZiBTVkdfU1VQUE9SVAorICAgIG1f
c3ZnU3R5bGUgPSBuZXcgS1NWRzo6U1ZHUmVuZGVyU3R5bGUoKTsKKyNlbmRpZgorCiAgICAgc2V0
Qml0RGVmYXVsdHMoKTsKIAogICAgIHBzZXVkb1N0eWxlID0gMDsKQEAgLTU2Myw2ICs1NzEsMTAg
QEAgUmVuZGVyU3R5bGU6OlJlbmRlclN0eWxlKGJvb2wpCiAgICAgY3NzM05vbkluaGVyaXRlZERh
dGEuYWNjZXNzKCktPm1hcnF1ZWUuaW5pdCgpOwogICAgIGNzczNJbmhlcml0ZWREYXRhLmluaXQo
KTsKICAgICBpbmhlcml0ZWQuaW5pdCgpOworICAgIAorI2lmIFNWR19TVVBQT1JUCisgICAgbV9z
dmdTdHlsZSA9IG5ldyBLU1ZHOjpTVkdSZW5kZXJTdHlsZSh0cnVlKTsKKyNlbmRpZgogCiAgICAg
cHNldWRvU3R5bGUgPSAwOwogICAgIGNvbnRlbnQgPSAwOwpAQCAtNTc2LDYgKzU4OCw5IEBAIFJl
bmRlclN0eWxlOjpSZW5kZXJTdHlsZShjb25zdCBSZW5kZXJTdHkKICAgICAgIGluaGVyaXRlZCgg
by5pbmhlcml0ZWQgKSwgcHNldWRvU3R5bGUoIDAgKSwgY29udGVudCggby5jb250ZW50ICksIG1f
cHNldWRvU3RhdGUoby5tX3BzZXVkb1N0YXRlKSwKICAgICAgIG1fYWZmZWN0ZWRCeUF0dHJpYnV0
ZVNlbGVjdG9ycyhmYWxzZSkKIHsKKyNpZiBTVkdfU1VQUE9SVAorICAgIG1fc3ZnU3R5bGUgPSBu
ZXcgS1NWRzo6U1ZHUmVuZGVyU3R5bGUoKm8uc3ZnU3R5bGUoKSk7CisjZW5kaWYKICAgICBtX3Jl
ZiA9IDA7CiB9CiAKQEAgLTU4NCw2ICs1OTksOSBAQCB2b2lkIFJlbmRlclN0eWxlOjppbmhlcml0
RnJvbShjb25zdCBSZW5kCiAgICAgY3NzM0luaGVyaXRlZERhdGEgPSBpbmhlcml0UGFyZW50LT5j
c3MzSW5oZXJpdGVkRGF0YTsKICAgICBpbmhlcml0ZWQgPSBpbmhlcml0UGFyZW50LT5pbmhlcml0
ZWQ7CiAgICAgaW5oZXJpdGVkX2ZsYWdzID0gaW5oZXJpdFBhcmVudC0+aW5oZXJpdGVkX2ZsYWdz
OworI2lmIFNWR19TVVBQT1JUCisgICAgc3ZnU3R5bGUoKS0+aW5oZXJpdEZyb20oaW5oZXJpdFBh
cmVudC0+c3ZnU3R5bGUoKSk7CisjZW5kaWYKIH0KIAogUmVuZGVyU3R5bGU6On5SZW5kZXJTdHls
ZSgpCkBAIC02MDEsNyArNjE5LDExIEBAIGJvb2wgUmVuZGVyU3R5bGU6Om9wZXJhdG9yPT0oY29u
c3QgUmVuZGUKICAgICAgICAgICAgIHN1cnJvdW5kID09IG8uc3Vycm91bmQgJiYKICAgICAgICAg
ICAgIGNzczNOb25Jbmhlcml0ZWREYXRhID09IG8uY3NzM05vbkluaGVyaXRlZERhdGEgJiYKICAg
ICAgICAgICAgIGNzczNJbmhlcml0ZWREYXRhID09IG8uY3NzM0luaGVyaXRlZERhdGEgJiYKLSAg
ICAgICAgICAgIGluaGVyaXRlZCA9PSBvLmluaGVyaXRlZCk7CisgICAgICAgICAgICBpbmhlcml0
ZWQgPT0gby5pbmhlcml0ZWQKKyNpZiBTVkdfU1VQUE9SVAorICAgICAgICAgICAgJiYgKHN2Z1N0
eWxlKCkgJiYgIG8uc3ZnU3R5bGUoKS0+ZXF1YWxzKG8uc3ZnU3R5bGUoKSkpCisjZW5kaWYKKyAg
ICAgICAgICAgICk7CiB9CiAKIGJvb2wgUmVuZGVyU3R5bGU6OmlzU3R5bGVBdmFpbGFibGUoKSBj
b25zdApAQCAtOTAyLDcgKzkyNCw3IEBAIHZvaWQgUmVuZGVyU3R5bGU6OnNldENsaXAoIExlbmd0
aCB0b3AsIEwKICAgICBkYXRhLT5jbGlwLmxlZnQgPSBsZWZ0OwogfQogCi1ib29sIFJlbmRlclN0
eWxlOjpjb250ZW50RGF0YUVxdWl2YWxlbnQoUmVuZGVyU3R5bGUqIG90aGVyU3R5bGUpCitib29s
IFJlbmRlclN0eWxlOjpjb250ZW50RGF0YUVxdWl2YWxlbnQoY29uc3QgUmVuZGVyU3R5bGUqIG90
aGVyU3R5bGUpIGNvbnN0CiB7CiAgICAgQ29udGVudERhdGEqIGMxID0gY29udGVudDsKICAgICBD
b250ZW50RGF0YSogYzIgPSBvdGhlclN0eWxlLT5jb250ZW50OwpJbmRleDoga2h0bWwvcmVuZGVy
aW5nL3JlbmRlcl9zdHlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3Jl
L2todG1sL3JlbmRlcmluZy9yZW5kZXJfc3R5bGUuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS45
NwpkaWZmIC1wIC11IC1yMS45NyBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX3N0eWxlLmgKLS0tIGto
dG1sL3JlbmRlcmluZy9yZW5kZXJfc3R5bGUuaAkyIE5vdiAyMDA1IDA4OjUyOjQ2IC0wMDAwCTEu
OTcKKysrIGtodG1sL3JlbmRlcmluZy9yZW5kZXJfc3R5bGUuaAkxNyBOb3YgMjAwNSAwMTozMTox
OSAtMDAwMApAQCAtNTgsNiArNTgsMTIgQEAgbmFtZXNwYWNlIERPTSB7CiAgICAgY2xhc3MgU2hh
ZG93VmFsdWVJbXBsOwogfQogCisjaWYgU1ZHX1NVUFBPUlQKK25hbWVzcGFjZSBLU1ZHIHsKKyAg
ICBjbGFzcyBTVkdSZW5kZXJTdHlsZTsKK30KKyNlbmRpZgorCiBuYW1lc3BhY2Uga2h0bWwgewog
CiAgICAgY2xhc3MgQ2FjaGVkSW1hZ2U7CkBAIC0xMTA1LDYgKzExMTEsMTAgQEAgcHJvdGVjdGVk
OgogICAgIAogICAgIGludCBtX3JlZjsKICAgICAKKyNpZiBTVkdfU1VQUE9SVAorICAgIEtTVkc6
OlNWR1JlbmRlclN0eWxlICptX3N2Z1N0eWxlOworI2VuZGlmCisgICAgCiAvLyAhRU5EIFNZTkMh
CiAKIC8vIHN0YXRpYyBkZWZhdWx0IHN0eWxlCkBAIC0xNjQwLDggKzE2NTAsMTIgQEAgcHVibGlj
OgogICAgIH0KICNlbmRpZgogCisjaWYgU1ZHX1NVUFBPUlQKKyAgICBLU1ZHOjpTVkdSZW5kZXJT
dHlsZSAqc3ZnU3R5bGUoKSBjb25zdCB7IHJldHVybiBtX3N2Z1N0eWxlOyB9CisjZW5kaWYKKwog
ICAgIENvbnRlbnREYXRhKiBjb250ZW50RGF0YSgpIHsgcmV0dXJuIGNvbnRlbnQ7IH0KLSAgICBi
b29sIGNvbnRlbnREYXRhRXF1aXZhbGVudChSZW5kZXJTdHlsZSogb3RoZXJTdHlsZSk7CisgICAg
Ym9vbCBjb250ZW50RGF0YUVxdWl2YWxlbnQoY29uc3QgUmVuZGVyU3R5bGUgKm90aGVyU3R5bGUp
IGNvbnN0OwogICAgIHZvaWQgc2V0Q29udGVudChET006OkRPTVN0cmluZ0ltcGwqIHMsIGJvb2wg
YWRkID0gZmFsc2UpOwogICAgIHZvaWQgc2V0Q29udGVudChDYWNoZWRPYmplY3QqIG8sIGJvb2wg
YWRkID0gZmFsc2UpOwogCkluZGV4OiBraHRtbC94bWwvRXZlbnROYW1lcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3htbC9FdmVudE5hbWVzLmgsdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuMgpkaWZmIC1wIC11IC1yMS4yIGtodG1sL3htbC9FdmVudE5hbWVz
LmgKLS0tIGtodG1sL3htbC9FdmVudE5hbWVzLmgJMyBTZXAgMjAwNSAyMzoxMDowMSAtMDAwMAkx
LjIKKysrIGtodG1sL3htbC9FdmVudE5hbWVzLmgJMTcgTm92IDIwMDUgMDE6MzE6MTkgLTAwMDAK
QEAgLTcwLDYgKzcwLDcgQEAgbmFtZXNwYWNlIERPTSB7IG5hbWVzcGFjZSBFdmVudE5hbWVzIHsK
ICAgICBtYWNybyhzdWJtaXQpIFwKICAgICBtYWNybyh0ZXh0SW5wdXQpIFwKICAgICBtYWNybyh1
bmxvYWQpIFwKKyAgICBtYWNybyh6b29tKSBcCiAgICAgXAogICAgIG1hY3JvKERPTUFjdGl2YXRl
KSBcCiAgICAgbWFjcm8oRE9NQXR0ck1vZGlmaWVkKSBcCkluZGV4OiBraHRtbC94bWwvZG9tX2Rv
Y2ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3ht
bC9kb21fZG9jaW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjcxCmRpZmYgLXAgLXUg
LXIxLjI3MSBraHRtbC94bWwvZG9tX2RvY2ltcGwuY3BwCi0tLSBraHRtbC94bWwvZG9tX2RvY2lt
cGwuY3BwCTE1IE5vdiAyMDA1IDAyOjA1OjQzIC0wMDAwCTEuMjcxCisrKyBraHRtbC94bWwvZG9t
X2RvY2ltcGwuY3BwCTE3IE5vdiAyMDA1IDAxOjMxOjE5IC0wMDAwCkBAIC05NSw3ICs5NSwxMiBA
QCB1c2luZyBYQkw6OlhCTEJpbmRpbmdNYW5hZ2VyOwogI2VuZGlmCiAKICNpZiBTVkdfU1VQUE9S
VAotI2luY2x1ZGUgImRvbV9rZG9tZG9jdW1lbnR3cmFwcGVyLmgiCisjaW5jbHVkZSAiU1ZHTmFt
ZXMuaCIKKyNpbmNsdWRlICJTVkdFbGVtZW50RmFjdG9yeS5oIgorI2luY2x1ZGUgIlNWR0VsZW1l
bnRJbXBsLmgiCisjaW5jbHVkZSAiU1ZHWm9vbUV2ZW50SW1wbC5oIgorI2luY2x1ZGUgIlNWR1N0
eWxlRWxlbWVudEltcGwuaCIKKyNpbmNsdWRlICJrY2FudmFzL2RldmljZS9xdWFydHovS1JlbmRl
cmluZ0RldmljZVF1YXJ0ei5oIgogI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBET007CkBAIC0y
MDMsNyArMjA4LDcgQEAgRE9NSW1wbGVtZW50YXRpb25JbXBsOjp+RE9NSW1wbGVtZW50YXRpbwog
ewogfQogCi1ib29sIERPTUltcGxlbWVudGF0aW9uSW1wbDo6aGFzRmVhdHVyZSAoIGNvbnN0IERP
TVN0cmluZyAmZmVhdHVyZSwgY29uc3QgRE9NU3RyaW5nICZ2ZXJzaW9uICkKK2Jvb2wgRE9NSW1w
bGVtZW50YXRpb25JbXBsOjpoYXNGZWF0dXJlIChjb25zdCBET01TdHJpbmcgJmZlYXR1cmUsIGNv
bnN0IERPTVN0cmluZyAmdmVyc2lvbikgY29uc3QKIHsKICAgICBRU3RyaW5nIGxvd2VyID0gZmVh
dHVyZS5xc3RyaW5nKCkubG93ZXIoKTsKICAgICBpZiAobG93ZXIgPT0gImNvcmUiIHx8IGxvd2Vy
ID09ICJodG1sIiB8fCBsb3dlciA9PSAieG1sIiB8fCBsb3dlciA9PSAieGh0bWwiKQpAQCAtMjk2
LDcgKzMwMSw3IEBAIERvY3VtZW50SW1wbCAqRE9NSW1wbGVtZW50YXRpb25JbXBsOjpjcmUKIAog
ICAgIC8vIFdST05HX0RPQ1VNRU5UX0VSUjogUmFpc2VkIGlmIGRvY3R5cGUgaGFzIGFscmVhZHkg
YmVlbiB1c2VkIHdpdGggYSBkaWZmZXJlbnQgZG9jdW1lbnQgb3Igd2FzCiAgICAgLy8gY3JlYXRl
ZCBmcm9tIGEgZGlmZmVyZW50IGltcGxlbWVudGF0aW9uLgotICAgIGlmIChkb2N0eXBlICYmIChk
b2N0eXBlLT5nZXREb2N1bWVudCgpIHx8IGRvY3R5cGUtPmltcGwoKSAhPSB0aGlzKSkgeworICAg
IGlmIChkb2N0eXBlICYmIChkb2N0eXBlLT5nZXREb2N1bWVudCgpIHx8IGRvY3R5cGUtPmltcGxl
bWVudGF0aW9uKCkgIT0gdGhpcykpIHsKICAgICAgICAgZXhjZXB0aW9uY29kZSA9IERPTUV4Y2Vw
dGlvbjo6V1JPTkdfRE9DVU1FTlRfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CkBAIC0z
MzMsMTMgKzMzOCw2IEBAIEhUTUxEb2N1bWVudEltcGwgKkRPTUltcGxlbWVudGF0aW9uSW1wbDoK
ICAgICByZXR1cm4gbmV3IEhUTUxEb2N1bWVudEltcGwodGhpcywgdik7CiB9CiAKLSNpZiBTVkdf
U1VQUE9SVAotRG9jdW1lbnRJbXBsICpET01JbXBsZW1lbnRhdGlvbkltcGw6OmNyZWF0ZUtET01E
b2N1bWVudCggS0hUTUxWaWV3ICp2ICkKLXsKLSAgICByZXR1cm4gbmV3IEtET01Eb2N1bWVudFdy
YXBwZXJJbXBsKHRoaXMsIHYpOwotfQotI2VuZGlmCi0KIERPTUltcGxlbWVudGF0aW9uSW1wbCAq
RE9NSW1wbGVtZW50YXRpb25JbXBsOjppbnN0YW5jZSgpCiB7CiAgICAgaWYgKCFtX2luc3RhbmNl
KSB7CkBAIC01ODcsNyArNTg1LDcgQEAgRG9jdW1lbnRUeXBlSW1wbCAqRG9jdW1lbnRJbXBsOjpk
b2N0eXBlKAogICAgIHJldHVybiBtX2RvY1R5cGUuZ2V0KCk7CiB9CiAKLURPTUltcGxlbWVudGF0
aW9uSW1wbCAqRG9jdW1lbnRJbXBsOjppbXBsKCkgY29uc3QKK0RPTUltcGxlbWVudGF0aW9uSW1w
bCAqRG9jdW1lbnRJbXBsOjppbXBsZW1lbnRhdGlvbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
aW1wbGVtZW50YXRpb247CiB9CkBAIC03NDAsMTkgKzczOCwzMCBAQCBFbGVtZW50SW1wbCAqRG9j
dW1lbnRJbXBsOjpjcmVhdGVFbGVtZW50CiAgICAgfQogCiAgICAgRWxlbWVudEltcGwgKmUgPSAw
OworICAgIFF1YWxpZmllZE5hbWUgcU5hbWUgPSBRdWFsaWZpZWROYW1lKEF0b21pY1N0cmluZyhw
cmVmaXgpLCBBdG9taWNTdHJpbmcobG9jYWxOYW1lKSwgQXRvbWljU3RyaW5nKF9uYW1lc3BhY2VV
UkkpKTsKICAgICAKICAgICAvLyBGSVhNRTogVXNlIHJlZ2lzdGVyZWQgbmFtZXNwYWNlcyBhbmQg
bG9vayB1cCBpbiBhIGhhc2ggdG8gZmluZCB0aGUgcmlnaHQgZmFjdG9yeS4KICAgICBpZiAoX25h
bWVzcGFjZVVSSSA9PSB4aHRtbE5hbWVzcGFjZVVSSSkgewotICAgICAgICBlID0gSFRNTEVsZW1l
bnRGYWN0b3J5OjpjcmVhdGVIVE1MRWxlbWVudChBdG9taWNTdHJpbmcobG9jYWxOYW1lKSwgdGhp
cywgMCwgZmFsc2UpOworICAgICAgICBlID0gSFRNTEVsZW1lbnRGYWN0b3J5OjpjcmVhdGVIVE1M
RWxlbWVudChxTmFtZS5sb2NhbE5hbWUoKSwgdGhpcywgMCwgZmFsc2UpOworICAgICAgICBpZiAo
ZSAmJiAhcHJlZml4LmlzTnVsbCgpKSB7CisgICAgICAgICAgICBlLT5zZXRQcmVmaXgocU5hbWUu
cHJlZml4KCksIGV4Y2VwdGlvbmNvZGUpOworICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbmNvZGUp
CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisjaWZkZWYgU1ZH
X1NVUFBPUlQKKyAgICBlbHNlIGlmIChfbmFtZXNwYWNlVVJJID09IEtTVkc6OlNWR05hbWVzOjpz
dmdOYW1lc3BhY2VVUkkpIHsKKyAgICAgICAgZSA9IEtTVkc6OlNWR0VsZW1lbnRGYWN0b3J5Ojpj
cmVhdGVTVkdFbGVtZW50KHFOYW1lLCB0aGlzLCBmYWxzZSk7CiAgICAgICAgIGlmIChlICYmICFw
cmVmaXguaXNOdWxsKCkpIHsKLSAgICAgICAgICAgIGUtPnNldFByZWZpeChBdG9taWNTdHJpbmco
cHJlZml4KSwgZXhjZXB0aW9uY29kZSk7CisgICAgICAgICAgICBlLT5zZXRQcmVmaXgocU5hbWUu
cHJlZml4KCksIGV4Y2VwdGlvbmNvZGUpOwogICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbmNvZGUp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICB9CisjZW5kaWYKICAg
ICAKICAgICBpZiAoIWUpCi0gICAgICAgIGUgPSBuZXcgRWxlbWVudEltcGwoUXVhbGlmaWVkTmFt
ZShBdG9taWNTdHJpbmcocHJlZml4KSwgQXRvbWljU3RyaW5nKGxvY2FsTmFtZSksIEF0b21pY1N0
cmluZyhfbmFtZXNwYWNlVVJJKSksIGdldERvY3VtZW50KCkpOworICAgICAgICBlID0gbmV3IEVs
ZW1lbnRJbXBsKHFOYW1lLCBnZXREb2N1bWVudCgpKTsKICAgICAKICAgICByZXR1cm4gZTsKIH0K
QEAgLTIxNjAsNiArMjE2OSwzNCBAQCB2b2lkIERvY3VtZW50SW1wbDo6cmVjYWxjU3R5bGVTZWxl
Y3RvcigpCiAgICAgICAgICAgICAgICAgICAgIHNoZWV0ID0gMDsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQorI2lmIFNWR19TVVBQT1JUCisgICAgICAgICAgICBlbHNlIGlmIChuLT5pc1NWR0Vs
ZW1lbnQoKSAmJiBuLT5oYXNUYWdOYW1lKEtTVkc6OlNWR05hbWVzOjpzdHlsZVRhZykpCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgUVN0cmluZyB0aXRsZTsKKyAgICAgICAgICAgICAg
ICAvLyA8U1RZTEU+IGVsZW1lbnQKKyAgICAgICAgICAgICAgICBLU1ZHOjpTVkdTdHlsZUVsZW1l
bnRJbXBsICpzID0gc3RhdGljX2Nhc3Q8S1NWRzo6U1ZHU3R5bGVFbGVtZW50SW1wbCo+KG4pOwor
ICAgICAgICAgICAgICAgIGlmKCFzLT5pc0xvYWRpbmcoKSkKKyAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgIHNoZWV0ID0gcy0+c2hlZXQoKTsKKyAgICAgICAgICAgICAgICAg
ICAgaWYoc2hlZXQpCisgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IERPTTo6RE9NU3Ry
aW5nKHMtPmdldEF0dHJpYnV0ZShLU1ZHOjpTVkdOYW1lczo6dGl0bGVBdHRyKSkucXN0cmluZygp
OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmKCF0aXRsZS5pc0VtcHR5
KCkgJiYgbV9wcmVmZXJyZWRTdHlsZXNoZWV0U2V0LmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAg
ICAgICAgbV9wcmVmZXJyZWRTdHlsZXNoZWV0U2V0ID0gdmlldygpLT5wYXJ0KCktPmQtPm1fc2hl
ZXRVc2VkID0gdGl0bGU7CisKKyAgICAgICAgICAgICAgICBpZighdGl0bGUuaXNFbXB0eSgpKQor
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaWYodGl0bGUgIT0gbV9wcmVm
ZXJyZWRTdHlsZXNoZWV0U2V0KQorICAgICAgICAgICAgICAgICAgICAgICAgc2hlZXQgPSAwOyAv
LyBkb24ndCB1c2UgaXQKKworICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IHRpdGxlLnJlcGxh
Y2UoJyYnLCBRU3RyaW5nOjpmcm9tTGF0aW4xKCImJiIpKTsKKworICAgICAgICAgICAgICAgICAg
ICBpZighbV9hdmFpbGFibGVTaGVldHMuY29udGFpbnModGl0bGUpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgbV9hdmFpbGFibGVTaGVldHMuYXBwZW5kKHRpdGxlKTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgIH0KKyNlbmRpZgogCiAgICAgICAgIGlmIChzaGVldCkgewogICAgICAg
ICAgICAgc2hlZXQtPnJlZigpOwpAQCAtMjQyOCw2ICsyNDY1LDEyIEBAIEV2ZW50SW1wbCAqRG9j
dW1lbnRJbXBsOjpjcmVhdGVFdmVudChjb24KICAgICAgICAgcmV0dXJuIG5ldyBLZXlib2FyZEV2
ZW50SW1wbCgpOwogICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSAiSFRNTEV2ZW50cyIgfHwgZXZl
bnRUeXBlID09ICJFdmVudCIgfHwgZXZlbnRUeXBlID09ICJFdmVudHMiKQogICAgICAgICByZXR1
cm4gbmV3IEV2ZW50SW1wbCgpOworI2lmZGVmIFNWR19TVVBQT1JUCisgICAgZWxzZSBpZiAoZXZl
bnRUeXBlID09ICJTVkdFdmVudHMiKQorICAgICAgICByZXR1cm4gbmV3IEV2ZW50SW1wbCgpOwor
ICAgIGVsc2UgaWYoZXZlbnRUeXBlID09ICJTVkdab29tRXZlbnRzIikKKyAgICAgICAgcmV0dXJu
IG5ldyBLU1ZHOjpTVkdab29tRXZlbnRJbXBsKCk7CisjZW5kaWYKICAgICBlbHNlIHsKICAgICAg
ICAgZXhjZXB0aW9uY29kZSA9IERPTUV4Y2VwdGlvbjo6Tk9UX1NVUFBPUlRFRF9FUlI7CiAgICAg
ICAgIHJldHVybiAwOwpAQCAtMjYxMSw2ICsyNjU0LDE0IEBAIEVsZW1lbnRJbXBsICpEb2N1bWVu
dEltcGw6Om93bmVyRWxlbWVudCgKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RWxlbWVudEltcGwg
Kj4ocmVuZGVyUGFydC0+ZWxlbWVudCgpKTsKIH0KIAorRE9NU3RyaW5nIERvY3VtZW50SW1wbDo6
cmVmZXJyZXIoKSBjb25zdAoreworICAgIGlmICggcGFydCgpICkKKyAgICAgICAgcmV0dXJuIEtX
UShwYXJ0KCkpLT5pbmNvbWluZ1JlZmVycmVyKCk7CisgICAgCisgICAgcmV0dXJuIERPTVN0cmlu
ZygpOworfQorCiBET01TdHJpbmcgRG9jdW1lbnRJbXBsOjpkb21haW4oKSBjb25zdAogewogICAg
IGlmICggbV9kb21haW4uaXNFbXB0eSgpICkgLy8gbm90IHNldCB5ZXQgKHdlIHNldCBpdCBvbiBk
ZW1hbmQgdG8gc2F2ZSB0aW1lIGFuZCBzcGFjZSkKSW5kZXg6IGtodG1sL3htbC9kb21fZG9jaW1w
bC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3htbC9kb21f
ZG9jaW1wbC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEzNwpkaWZmIC1wIC11IC1yMS4xMzcg
a2h0bWwveG1sL2RvbV9kb2NpbXBsLmgKLS0tIGtodG1sL3htbC9kb21fZG9jaW1wbC5oCTE1IE5v
diAyMDA1IDAyOjA1OjQzIC0wMDAwCTEuMTM3CisrKyBraHRtbC94bWwvZG9tX2RvY2ltcGwuaAkx
NyBOb3YgMjAwNSAwMTozMToyMCAtMDAwMApAQCAtMTM2LDcgKzEzNiw3IEBAIHB1YmxpYzoKICAg
ICB+RE9NSW1wbGVtZW50YXRpb25JbXBsKCk7CiAKICAgICAvLyBET00gbWV0aG9kcyAmIGF0dHJp
YnV0ZXMgZm9yIERPTUltcGxlbWVudGF0aW9uCi0gICAgYm9vbCBoYXNGZWF0dXJlICggY29uc3Qg
RE9NU3RyaW5nICZmZWF0dXJlLCBjb25zdCBET01TdHJpbmcgJnZlcnNpb24gKTsKKyAgICBib29s
IGhhc0ZlYXR1cmUoY29uc3QgRE9NU3RyaW5nJiBmZWF0dXJlLCBjb25zdCBET01TdHJpbmcmIHZl
cnNpb24pIGNvbnN0OwogICAgIERvY3VtZW50VHlwZUltcGwgKmNyZWF0ZURvY3VtZW50VHlwZSgg
Y29uc3QgRE9NU3RyaW5nICZxdWFsaWZpZWROYW1lLCBjb25zdCBET01TdHJpbmcgJnB1YmxpY0lk
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRE9NU3Ry
aW5nICZzeXN0ZW1JZCwgaW50ICZleGNlcHRpb25jb2RlICk7CiAgICAgRG9jdW1lbnRJbXBsICpj
cmVhdGVEb2N1bWVudCggY29uc3QgRE9NU3RyaW5nICZuYW1lc3BhY2VVUkksIGNvbnN0IERPTVN0
cmluZyAmcXVhbGlmaWVkTmFtZSwKQEAgLTE1Myw5ICsxNTMsNiBAQCBwdWJsaWM6CiAgICAgLy8g
T3RoZXIgbWV0aG9kcyAobm90IHBhcnQgb2YgRE9NKQogICAgIERvY3VtZW50SW1wbCAqY3JlYXRl
RG9jdW1lbnQoIEtIVE1MVmlldyAqdiA9IDAgKTsKICAgICBIVE1MRG9jdW1lbnRJbXBsICpjcmVh
dGVIVE1MRG9jdW1lbnQoIEtIVE1MVmlldyAqdiA9IDAgKTsKLSNpZiBTVkdfU1VQUE9SVAotICAg
IERvY3VtZW50SW1wbCAqY3JlYXRlS0RPTURvY3VtZW50KCBLSFRNTFZpZXcgKnYgPSAwICk7Ci0j
ZW5kaWYKIAogICAgIC8vIFJldHVybnMgdGhlIHN0YXRpYyBpbnN0YW5jZSBvZiB0aGlzIGNsYXNz
IC0gb25seSBvbmUgaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcyBzaG91bGQKICAgICAvLyBldmVyIGJl
IHByZXNlbnQsIGFuZCBpcyB1c2VkIGFzIGEgZmFjdG9yeSBtZXRob2QgZm9yIGNyZWF0aW5nIERv
Y3VtZW50SW1wbCBvYmplY3RzCkBAIC0xOTYsNyArMTkzLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgRG9jdW1lbnRUeXBlSW1wbCAqZG9jdHlwZSgpIGNvbnN0OyAvLyByZXR1cm5zIDAgZm9yIEhU
TUwgZG9jdW1lbnRzCiAgICAgRG9jdW1lbnRUeXBlSW1wbCAqcmVhbERvY1R5cGUoKSBjb25zdCB7
IHJldHVybiBtX2RvY1R5cGUuZ2V0KCk7IH0KIAotICAgIERPTUltcGxlbWVudGF0aW9uSW1wbCAq
aW1wbCgpIGNvbnN0OworICAgIERPTUltcGxlbWVudGF0aW9uSW1wbCAqaW1wbGVtZW50YXRpb24o
KSBjb25zdDsKICAgICB2aXJ0dWFsIEVsZW1lbnRJbXBsICpkb2N1bWVudEVsZW1lbnQoKSBjb25z
dDsKICAgICB2aXJ0dWFsIEVsZW1lbnRJbXBsICpjcmVhdGVFbGVtZW50KGNvbnN0IERPTVN0cmlu
ZyAmdGFnTmFtZSwgaW50ICZleGNlcHRpb25jb2RlKTsKICAgICBEb2N1bWVudEZyYWdtZW50SW1w
bCAqY3JlYXRlRG9jdW1lbnRGcmFnbWVudCAoKTsKQEAgLTUyOCw3ICs1MjUsOCBAQCBwdWJsaWM6
CiAgICAgLy8gUmV0dXJucyB0aGUgb3duaW5nIGVsZW1lbnQgaW4gdGhlIHBhcmVudCBkb2N1bWVu
dC4KICAgICAvLyBSZXR1cm5zIDAgaWYgdGhpcyBpcyB0aGUgdG9wIGxldmVsIGRvY3VtZW50Lgog
ICAgIEVsZW1lbnRJbXBsICpvd25lckVsZW1lbnQoKTsKLQorICAgIAorICAgIERPTVN0cmluZyBy
ZWZlcnJlcigpIGNvbnN0OwogICAgIERPTVN0cmluZyBkb21haW4oKSBjb25zdDsKICAgICB2b2lk
IHNldERvbWFpbiggY29uc3QgRE9NU3RyaW5nICZuZXdEb21haW4sIGJvb2wgZm9yY2UgPSBmYWxz
ZSApOyAvLyBub3QgcGFydCBvZiB0aGUgRE9NCiAKQEAgLTg1MCw3ICs4NDgsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBOb2RlSW1wbCAqY2xvbmVOb2RlKGJvb2wgZGVlcCk7CiAKICAgICAvLyBP
dGhlciBtZXRob2RzIChub3QgcGFydCBvZiBET00pCi0gICAgRE9NSW1wbGVtZW50YXRpb25JbXBs
ICppbXBsKCkgY29uc3QgeyByZXR1cm4gbV9pbXBsZW1lbnRhdGlvbi5nZXQoKTsgfQorICAgIERP
TUltcGxlbWVudGF0aW9uSW1wbCAqaW1wbGVtZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2lt
cGxlbWVudGF0aW9uLmdldCgpOyB9CiAgICAgdmlydHVhbCBET01TdHJpbmcgdG9TdHJpbmcoKSBj
b25zdDsKIAogcHJpdmF0ZToKSW5kZXg6IGtodG1sL3htbC9kb21fZWxlbWVudGltcGwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3htbC9kb21fZWxlbWVu
dGltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjkxCmRpZmYgLXAgLXUgLXIxLjkxIGto
dG1sL3htbC9kb21fZWxlbWVudGltcGwuY3BwCi0tLSBraHRtbC94bWwvZG9tX2VsZW1lbnRpbXBs
LmNwcAkxNSBOb3YgMjAwNSAwMjowNTo0MyAtMDAwMAkxLjkxCisrKyBraHRtbC94bWwvZG9tX2Vs
ZW1lbnRpbXBsLmNwcAkxNyBOb3YgMjAwNSAwMTozMToyMCAtMDAwMApAQCAtMzcsNiArMzcsMTAg
QEAKIAogI2luY2x1ZGUgImh0bWwvaHRtbHBhcnNlci5oIgogCisjaWYgU1ZHX1NVUFBPUlQKKyNp
bmNsdWRlICJTVkdOYW1lcy5oIgorI2VuZGlmCisKICNpbmNsdWRlICJyZW5kZXJpbmcvcmVuZGVy
X2NhbnZhcy5oIgogI2luY2x1ZGUgImNzcy9jc3NfdmFsdWVpbXBsLmgiCiAjaW5jbHVkZSAiY3Nz
L2Nzc3Byb3BlcnRpZXMuaCIKQEAgLTMzNyw2ICszNDEsMTEgQEAgY29uc3QgQXRvbWljU3RyaW5n
JiBFbGVtZW50SW1wbDo6Z2V0SURBdAogICAgIHJldHVybiBuYW1lZEF0dHJNYXAgPyBuYW1lZEF0
dHJNYXAtPmlkKCkgOiBudWxsQXRvbTsKIH0KIAorYm9vbCBFbGVtZW50SW1wbDo6aGFzQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0Cit7CisgICAgcmV0dXJuIGhhc0F0
dHJpYnV0ZU5TKG5hbWUubmFtZXNwYWNlVVJJKCksIG5hbWUubG9jYWxOYW1lKCkpOworfQorCiBj
b25zdCBBdG9taWNTdHJpbmcmIEVsZW1lbnRJbXBsOjpnZXRBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSkgY29uc3QKIHsKICAgICBpZiAobmFtZSA9PSBzdHlsZUF0dHIpCkBAIC01
MTIsNiArNTIxLDE2IEBAIHZvaWQgRWxlbWVudEltcGw6OnJlbW92ZWRGcm9tRG9jdW1lbnQoKQog
ICAgIENvbnRhaW5lck5vZGVJbXBsOjpyZW1vdmVkRnJvbURvY3VtZW50KCk7CiB9CiAKKyNpZiBT
VkdfU1VQUE9SVAorYm9vbCBFbGVtZW50SW1wbDo6cmVuZGVyZXJJc05lZWRlZChraHRtbDo6UmVu
ZGVyU3R5bGUgKikKK3sKKyAgICAvLyBTVkcgaWdub3JlcyBhcmJpdHJhcnkgeG1sIGVsZW1lbnRz
IGluIGl0cyByZW5kZXIgdHJlZSBpbiBjb250cmFyeSB0byB0aGUgbm9ybWFsIENTUy9YTUwgYmVo
YXZpb3IuCisgICAgaWYgKChLU1ZHOjpTVkdOYW1lczo6c3ZnTmFtZXNwYWNlVVJJID09IHBhcmVu
dE5vZGUoKS0+bmFtZXNwYWNlVVJJKCkpICYmICFwYXJlbnROb2RlKCktPmhhc1RhZ05hbWUoS1NW
Rzo6U1ZHTmFtZXM6OmZvcmVpZ25PYmplY3RUYWcpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYKKwogdm9pZCBFbGVtZW50SW1wbDo6YXR0YWNoKCkK
IHsKICNpZiBTUEVFRF9ERUJVRyA8IDEKSW5kZXg6IGtodG1sL3htbC9kb21fZWxlbWVudGltcGwu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC94bWwvZG9tX2Vs
ZW1lbnRpbXBsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNjAKZGlmZiAtcCAtdSAtcjEuNjAg
a2h0bWwveG1sL2RvbV9lbGVtZW50aW1wbC5oCi0tLSBraHRtbC94bWwvZG9tX2VsZW1lbnRpbXBs
LmgJMTUgTm92IDIwMDUgMDI6MDU6NDMgLTAwMDAJMS42MAorKysga2h0bWwveG1sL2RvbV9lbGVt
ZW50aW1wbC5oCTE3IE5vdiAyMDA1IDAxOjMxOjIwIC0wMDAwCkBAIC0xNzEsNiArMTcxLDcgQEAg
cHVibGljOgogICAgIC8vIFVzZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgd2hldGhlciBvciBub3Qg
YW4gZWxlbWVudCBoYXMgYSBnaXZlbiBDU1MgY2xhc3MuCiAgICAgdmlydHVhbCBjb25zdCBBdG9t
aWNTdHJpbmdMaXN0KiBnZXRDbGFzc0xpc3QoKSBjb25zdDsKICAgICBjb25zdCBBdG9taWNTdHJp
bmcmIGdldElEQXR0cmlidXRlKCkgY29uc3Q7CisgICAgYm9vbCBoYXNBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3Q7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBnZXRB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3Q7CiAgICAgdm9pZCBzZXRB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgRE9NU3RyaW5nSW1wbCogdmFsdWUs
IGludCAmZXhjZXB0aW9uY29kZSk7CiAgICAgdm9pZCByZW1vdmVBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgaW50ICZleGNlcHRpb25jb2RlKTsKQEAgLTIzNCw2ICsyMzUsOSBA
QCBwdWJsaWM6CiAgICAgLy8gU3RhdGUgb2YgdGhlIGVsZW1lbnQuCiAgICAgdmlydHVhbCBRU3Ry
aW5nIHN0YXRlKCkgeyByZXR1cm4gUVN0cmluZzo6bnVsbDsgfQogCisjaWYgU1ZHX1NVUFBPUlQK
KyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChraHRtbDo6UmVuZGVyU3R5bGUgKik7
CisjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCk7CiAgICAgdmlydHVhbCBraHRtbDo6
UmVuZGVyU3R5bGUgKnN0eWxlRm9yUmVuZGVyZXIoa2h0bWw6OlJlbmRlck9iamVjdCAqcGFyZW50
KTsKICAgICB2aXJ0dWFsIGtodG1sOjpSZW5kZXJPYmplY3QgKmNyZWF0ZVJlbmRlcmVyKFJlbmRl
ckFyZW5hICosIGtodG1sOjpSZW5kZXJTdHlsZSAqKTsKSW5kZXg6IGtodG1sL3htbC9kb21fbm9k
ZWltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3ht
bC9kb21fbm9kZWltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIwOQpkaWZmIC1wIC11
IC1yMS4yMDkga2h0bWwveG1sL2RvbV9ub2RlaW1wbC5jcHAKLS0tIGtodG1sL3htbC9kb21fbm9k
ZWltcGwuY3BwCTEzIE5vdiAyMDA1IDE4OjUyOjM3IC0wMDAwCTEuMjA5CisrKyBraHRtbC94bWwv
ZG9tX25vZGVpbXBsLmNwcAkxNyBOb3YgMjAwNSAwMTozMToyMCAtMDAwMApAQCAtMTQyMyw3ICsx
NDIzLDcgQEAgdm9pZCBOb2RlSW1wbDo6Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCgpCiAgICAgCiAg
ICAgTm9kZUltcGwgKnBhcmVudCA9IHBhcmVudE5vZGUoKTsgICAgCiAgICAgYXNzZXJ0KHBhcmVu
dCk7Ci0gICAgCisgICAgICAgIAogICAgIFJlbmRlck9iamVjdCAqcGFyZW50UmVuZGVyZXIgPSBw
YXJlbnQtPnJlbmRlcmVyKCk7CiAgICAgaWYgKHBhcmVudFJlbmRlcmVyICYmIHBhcmVudFJlbmRl
cmVyLT5jYW5IYXZlQ2hpbGRyZW4oKSkgewogICAgICAgICBSZW5kZXJTdHlsZSAqc3R5bGUgPSBz
dHlsZUZvclJlbmRlcmVyKHBhcmVudFJlbmRlcmVyKTsKQEAgLTE0NDAsOCArMTQ0MCwxMCBAQCB2
b2lkIE5vZGVJbXBsOjpjcmVhdGVSZW5kZXJlcklmTmVlZGVkKCkKICAgICAgICAgaWYgKHJlbmRl
cmVySXNOZWVkZWQoc3R5bGUpKSB7CiAjZW5kaWYKICAgICAgICAgICAgIG1fcmVuZGVyID0gY3Jl
YXRlUmVuZGVyZXIoZ2V0RG9jdW1lbnQoKS0+cmVuZGVyQXJlbmEoKSwgc3R5bGUpOwotICAgICAg
ICAgICAgbV9yZW5kZXItPnNldFN0eWxlKHN0eWxlKTsKLSAgICAgICAgICAgIHBhcmVudFJlbmRl
cmVyLT5hZGRDaGlsZChtX3JlbmRlciwgbmV4dFJlbmRlcmVyKCkpOworICAgICAgICAgICAgaWYg
KG1fcmVuZGVyKSB7CisgICAgICAgICAgICAgICAgbV9yZW5kZXItPnNldFN0eWxlKHN0eWxlKTsK
KyAgICAgICAgICAgICAgICBwYXJlbnRSZW5kZXJlci0+YWRkQ2hpbGQobV9yZW5kZXIsIG5leHRS
ZW5kZXJlcigpKTsKKyAgICAgICAgICAgIH0KICNpZm5kZWYgS0hUTUxfTk9fWEJMCiAgICAgICAg
IH0gLy8gYXZvaWQgY29uZnVzaW5nIHRoZSBjaGFuZ2UgbG9nIGNvZGUgcGFyc2VyIGJ5IGhhdmlu
ZyB0d28gY2xvc2UgYnJhY2VzIHRvIG1hdGNoIHRoZSB0d28gb3BlbiBicmFjZXMgYWJvdmUKICNl
bHNlCkluZGV4OiBraHRtbC94bWwvZG9tX25vZGVpbXBsLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L1dlYkNvcmUva2h0bWwveG1sL2RvbV9ub2RlaW1wbC5oLHYKcmV0cmlldmluZyBy
ZXZpc2lvbiAxLjExMwpkaWZmIC1wIC11IC1yMS4xMTMga2h0bWwveG1sL2RvbV9ub2RlaW1wbC5o
Ci0tLSBraHRtbC94bWwvZG9tX25vZGVpbXBsLmgJOCBOb3YgMjAwNSAwODoxMToxMyAtMDAwMAkx
LjExMworKysga2h0bWwveG1sL2RvbV9ub2RlaW1wbC5oCTE3IE5vdiAyMDA1IDAxOjMxOjIwIC0w
MDAwCkBAIC0xMDksNiArMTA5LDkgQEAgcHVibGljOgogICAgIC8vIE90aGVyIG1ldGhvZHMgKG5v
dCBwYXJ0IG9mIERPTSkKICAgICB2aXJ0dWFsIGJvb2wgaXNFbGVtZW50Tm9kZSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzSFRNTEVsZW1lbnQoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQorI2lmIFNWR19TVVBQT1JUCisgICAgdmlydHVhbCBib29sIGlzU1ZH
RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjZW5kaWYKICAgICB2aXJ0dWFsIGJv
b2wgaXNTdHlsZWRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IGJvb2wgaXNBdHRyaWJ1dGVOb2RlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0
dWFsIGJvb2wgaXNUZXh0Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkluZGV4OiBraHRt
bC94bWwvZG9tX3N0cmluZ2ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9X
ZWJDb3JlL2todG1sL3htbC9kb21fc3RyaW5naW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuMzIKZGlmZiAtcCAtdSAtcjEuMzIga2h0bWwveG1sL2RvbV9zdHJpbmdpbXBsLmNwcAotLS0g
a2h0bWwveG1sL2RvbV9zdHJpbmdpbXBsLmNwcAkzIE9jdCAyMDA1IDIxOjEyOjUzIC0wMDAwCTEu
MzIKKysrIGtodG1sL3htbC9kb21fc3RyaW5naW1wbC5jcHAJMTcgTm92IDIwMDUgMDE6MzE6MjEg
LTAwMDAKQEAgLTYwLDYgKzYwLDI0IEBAIERPTVN0cmluZ0ltcGw6OkRPTVN0cmluZ0ltcGwoY29u
c3QgUUNoYXIKICAgICB9CiB9CiAKK0RPTVN0cmluZ0ltcGw6OkRPTVN0cmluZ0ltcGwoY29uc3Qg
UVN0cmluZyAmc3RyaW5nKQoreworICAgIGNvbnN0IFFDaGFyICpzdHIgPSBzdHJpbmcudW5pY29k
ZSgpOworICAgIHVuc2lnbmVkIGxlbiA9IHN0cmluZy5sZW5ndGgoKTsKKyAgICBfaGFzaCA9IDA7
CisgICAgX2luVGFibGUgPSBmYWxzZTsKKyAgICBib29sIGhhdmVzdHIgPSBzdHIgJiYgbGVuOwor
ICAgIHMgPSBRVF9BTExPQ19RQ0hBUl9WRUMoaGF2ZXN0ciA/IGxlbiA6IDEpOworICAgIGlmICho
YXZlc3RyKSB7CisgICAgICAgIG1lbWNweSggcywgc3RyLCBsZW4gKiBzaXplb2YoUUNoYXIpICk7
CisgICAgICAgIGwgPSBsZW47CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gY3Jhc2ggcHJvdGVj
dGlvbgorICAgICAgICBzWzBdID0gMHgwOworICAgICAgICBsID0gMDsKKyAgICB9Cit9CisKIERP
TVN0cmluZ0ltcGw6OkRPTVN0cmluZ0ltcGwoY29uc3QgY2hhciAqc3RyKQogewogICAgIF9oYXNo
ID0gMDsKSW5kZXg6IGtodG1sL3htbC9kb21fc3RyaW5naW1wbC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3htbC9kb21fc3RyaW5naW1wbC5oLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjE3CmRpZmYgLXAgLXUgLXIxLjE3IGtodG1sL3htbC9kb21fc3RyaW5n
aW1wbC5oCi0tLSBraHRtbC94bWwvZG9tX3N0cmluZ2ltcGwuaAkzIE9jdCAyMDA1IDIxOjEyOjUz
IC0wMDAwCTEuMTcKKysrIGtodG1sL3htbC9kb21fc3RyaW5naW1wbC5oCTE3IE5vdiAyMDA1IDAx
OjMxOjIxIC0wMDAwCkBAIC00NSw2ICs0NSw3IEBAIHB1YmxpYzoKICAgICBET01TdHJpbmdJbXBs
KGNvbnN0IGNoYXIgKnN0cik7CiAgICAgRE9NU3RyaW5nSW1wbChjb25zdCBjaGFyICpzdHIsIHVu
c2lnbmVkIGludCBsZW4pOwogICAgIERPTVN0cmluZ0ltcGwoY29uc3QgUUNoYXIgJmNoKTsKKyAg
ICBET01TdHJpbmdJbXBsKGNvbnN0IFFTdHJpbmcgJnN0cik7CiAgICAgfkRPTVN0cmluZ0ltcGwo
KTsKICAgICAKICAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3QgeyBpZiAoX2hhc2ggPT0gMCkgX2hh
c2ggPSBjb21wdXRlSGFzaChzLCBsKTsgcmV0dXJuIF9oYXNoOyB9CkluZGV4OiBraHRtbC94bWwv
ZG9tX3RleHRpbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9r
aHRtbC94bWwvZG9tX3RleHRpbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zNgpkaWZm
IC1wIC11IC1yMS4zNiBraHRtbC94bWwvZG9tX3RleHRpbXBsLmNwcAotLS0ga2h0bWwveG1sL2Rv
bV90ZXh0aW1wbC5jcHAJOCBOb3YgMjAwNSAwODoxMToxMyAtMDAwMAkxLjM2CisrKyBraHRtbC94
bWwvZG9tX3RleHRpbXBsLmNwcAkxNyBOb3YgMjAwNSAwMTozMToyMSAtMDAwMApAQCAtMzEsNiAr
MzEsMTAgQEAKIAogI2luY2x1ZGUgInJlbmRlcmluZy9yZW5kZXJfdGV4dC5oIgogCisjaWYgU1ZH
X1NVUFBPUlQKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2VuZGlmCisKICNpbmNsdWRlIDxrZGVi
dWcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIERPTTsKQEAgLTQ1NCw2ICs0NTgsMTEgQEAgYm9vbCBU
ZXh0SW1wbDo6cmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdAogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KICAgICAKKyNpZiBTVkdfU1VQUE9SVAorICAgIGlmIChwYXItPmVsZW1lbnQo
KS0+bmFtZXNwYWNlVVJJKCkgPT0gS1NWRzo6U1ZHTmFtZXM6OnN2Z05hbWVzcGFjZVVSSSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
SW5kZXg6IGtodG1sL3hzbC94c2x0X3Byb2Nlc3NvcmltcGwuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3hzbC94c2x0X3Byb2Nlc3NvcmltcGwuY3BwLHYK
cmV0cmlldmluZyByZXZpc2lvbiAxLjE1CmRpZmYgLXAgLXUgLXIxLjE1IGtodG1sL3hzbC94c2x0
X3Byb2Nlc3NvcmltcGwuY3BwCi0tLSBraHRtbC94c2wveHNsdF9wcm9jZXNzb3JpbXBsLmNwcAk4
IE5vdiAyMDA1IDA4OjExOjE4IC0wMDAwCTEuMTUKKysrIGtodG1sL3hzbC94c2x0X3Byb2Nlc3Nv
cmltcGwuY3BwCTE3IE5vdiAyMDA1IDAxOjMxOjIxIC0wMDAwCkBAIC0xODUsOSArMTg1LDkgQEAg
U2hhcmVkUHRyPERvY3VtZW50SW1wbD4gWFNMVFByb2Nlc3NvckltcAogCiAgICAgU2hhcmVkUHRy
PERvY3VtZW50SW1wbD4gcmVzdWx0OwogICAgIGlmIChzb3VyY2VNSU1FVHlwZSA9PSAidGV4dC9o
dG1sIikKLSAgICAgICAgcmVzdWx0ID0gb3duZXJEb2N1bWVudC0+aW1wbCgpLT5jcmVhdGVIVE1M
RG9jdW1lbnQodmlldyk7CisgICAgICAgIHJlc3VsdCA9IG93bmVyRG9jdW1lbnQtPmltcGxlbWVu
dGF0aW9uKCktPmNyZWF0ZUhUTUxEb2N1bWVudCh2aWV3KTsKICAgICBlbHNlIHsKLSAgICAgICAg
cmVzdWx0ID0gb3duZXJEb2N1bWVudC0+aW1wbCgpLT5jcmVhdGVEb2N1bWVudCh2aWV3KTsKKyAg
ICAgICAgcmVzdWx0ID0gb3duZXJEb2N1bWVudC0+aW1wbGVtZW50YXRpb24oKS0+Y3JlYXRlRG9j
dW1lbnQodmlldyk7CiAgICAgICAgIGlmIChzb3VyY2VNSU1FVHlwZSA9PSAidGV4dC9wbGFpbiIp
CiAgICAgICAgICAgICB0cmFuc2Zvcm1UZXh0U3RyaW5nVG9YSFRNTERvY3VtZW50U3RyaW5nKGRv
Y3VtZW50U291cmNlKTsKICAgICB9CkluZGV4OiBrd3EvRE9NLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9ET00ubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
NTYKZGlmZiAtcCAtdSAtcjEuNTYga3dxL0RPTS5tbQotLS0ga3dxL0RPTS5tbQkxNSBOb3YgMjAw
NSAwMjowNTo0NSAtMDAwMAkxLjU2CisrKyBrd3EvRE9NLm1tCTE3IE5vdiAyMDA1IDAxOjMxOjI2
IC0wMDAwCkBAIC05NjMsNyArOTYzLDcgQEAgc3RhdGljIExpc3RlbmVyTWFwICpsaXN0ZW5lck1h
cDsKIAogLSAoRE9NSW1wbGVtZW50YXRpb24gKilpbXBsZW1lbnRhdGlvbgogewotICAgIHJldHVy
biBbRE9NSW1wbGVtZW50YXRpb24gX0RPTUltcGxlbWVudGF0aW9uV2l0aEltcGw6W3NlbGYgX2Rv
Y3VtZW50SW1wbF0tPmltcGwoKV07CisgICAgcmV0dXJuIFtET01JbXBsZW1lbnRhdGlvbiBfRE9N
SW1wbGVtZW50YXRpb25XaXRoSW1wbDpbc2VsZiBfZG9jdW1lbnRJbXBsXS0+aW1wbGVtZW50YXRp
b24oKV07CiB9CiAKIC0gKERPTUVsZW1lbnQgKilkb2N1bWVudEVsZW1lbnQKSW5kZXg6IGt3cS9L
V1FSZW5kZXJUcmVlRGVidWcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJD
b3JlL2t3cS9LV1FSZW5kZXJUcmVlRGVidWcuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQ3
CmRpZmYgLXAgLXUgLXIxLjQ3IGt3cS9LV1FSZW5kZXJUcmVlRGVidWcuY3BwCi0tLSBrd3EvS1dR
UmVuZGVyVHJlZURlYnVnLmNwcAkxMyBPY3QgMjAwNSAyMjo0NTo1NiAtMDAwMAkxLjQ3CisrKyBr
d3EvS1dRUmVuZGVyVHJlZURlYnVnLmNwcAkxNyBOb3YgMjAwNSAwMTozMToyNyAtMDAwMApAQCAt
MzcsNiArMzcsMTEgQEAKICNpbmNsdWRlICJyZW5kZXJfYnIuaCIKICNpbmNsdWRlICJTZWxlY3Rp
b25Db250cm9sbGVyLmgiCiAKKyNpZiBTVkdfU1VQUE9SVAorI2luY2x1ZGUgIktDYW52YXNSZWdp
c3RyeS5oIgorI2luY2x1ZGUgIktDYW52YXNUcmVlRGVidWcuaCIKKyNlbmRpZgorCiAjaW5jbHVk
ZSAiS1dRS0hUTUxQYXJ0LmgiCiAjaW5jbHVkZSAiS1dRVGV4dFN0cmVhbS5oIgogCkBAIC02Miwx
MCArNjcsMTIgQEAgdXNpbmcga2h0bWw6OlVQU1RSRUFNOwogc3RhdGljIHZvaWQgd3JpdGVMYXll
cnMoUVRleHRTdHJlYW0gJnRzLCBjb25zdCBSZW5kZXJMYXllciogcm9vdExheWVyLCBSZW5kZXJM
YXllciogbCwKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFFSZWN0JiBwYWludERpcnR5
UmVjdCwgaW50IGluZGVudD0wKTsKIAorI2lmICFTVkdfU1VQUE9SVAogc3RhdGljIFFUZXh0U3Ry
ZWFtICZvcGVyYXRvcjw8KFFUZXh0U3RyZWFtICZ0cywgY29uc3QgUVJlY3QgJnIpCiB7CiAgICAg
cmV0dXJuIHRzIDw8ICJhdCAoIiA8PCByLngoKSA8PCAiLCIgPDwgci55KCkgPDwgIikgc2l6ZSAi
IDw8IHIud2lkdGgoKSA8PCAieCIgPDwgci5oZWlnaHQoKTsKIH0KKyNlbmRpZgogCiBzdGF0aWMg
dm9pZCB3cml0ZUluZGVudChRVGV4dFN0cmVhbSAmdHMsIGludCBpbmRlbnQpCiB7CkBAIC0yNjEs
OCArMjY4LDE5IEBAIHN0YXRpYyB2b2lkIHdyaXRlVGV4dFJ1bihRVGV4dFN0cmVhbSAmdHMKICAg
ICAJPDwgIlxuIjsgCiB9CiAKLXN0YXRpYyB2b2lkIHdyaXRlKFFUZXh0U3RyZWFtICZ0cywgY29u
c3QgUmVuZGVyT2JqZWN0ICZvLCBpbnQgaW5kZW50ID0gMCkKK3ZvaWQgd3JpdGUoUVRleHRTdHJl
YW0gJnRzLCBjb25zdCBSZW5kZXJPYmplY3QgJm8sIGludCBpbmRlbnQpCiB7CisjaWYgU1ZHX1NV
UFBPUlQKKyAgICAvLyBGSVhNRTogIEEgaGFja2lzaCB3YXkgdG8gZG9pbmcgb3VyIG93biAidmly
dHVhbCIgZGlzcGF0Y2gKKyAgICBpZiAoby5pc1JlbmRlclBhdGgoKSkgeworICAgICAgICB3cml0
ZSh0cywgc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyUGF0aCAmPihvKSwgaW5kZW50KTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoby5pc0tDYW52YXNDb250YWluZXIoKSkgeworICAg
ICAgICB3cml0ZSh0cywgc3RhdGljX2Nhc3Q8Y29uc3QgS0NhbnZhc0NvbnRhaW5lciAmPihvKSwg
aW5kZW50KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogICAgIHdyaXRlSW5kZW50
KHRzLCBpbmRlbnQpOwogICAgIAogICAgIHRzIDw8IG8gPDwgIlxuIjsKQEAgLTQyMSw2ICs0Mzks
MTIgQEAgUVN0cmluZyBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFJlbmRlck9iagogICAgIFFTdHJp
bmcgczsKICAgICB7CiAgICAgICAgIFFUZXh0U3RyZWFtIHRzKCZzKTsKKyNpZiBTVkdfU1VQUE9S
VAorICAgICAgICB0cy5wcmVjaXNpb24oMik7CisgICAgICAgIEtDYW52YXNSZWdpc3RyeSogcmVn
aXN0cnkgPSBvLT5jYW52YXMoKS0+cmVnaXN0cnkoKTsKKyAgICAgICAgaWYgKHJlZ2lzdHJ5KQor
ICAgICAgICAgICAgdHMgPDwgKihyZWdpc3RyeSk7CisjZW5kaWYKICAgICAgICAgaWYgKG8pIHsK
ICAgICAgICAgICAgIG8tPmNhbnZhcygpLT52aWV3KCktPmxheW91dCgpOwogICAgICAgICAgICAg
UmVuZGVyTGF5ZXIqIGwgPSBvLT5sYXllcigpOwpJbmRleDoga3dxL0tXUVJlbmRlclRyZWVEZWJ1
Zy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FSZW5kZXJU
cmVlRGVidWcuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40CmRpZmYgLXAgLXUgLXIxLjQga3dx
L0tXUVJlbmRlclRyZWVEZWJ1Zy5oCi0tLSBrd3EvS1dRUmVuZGVyVHJlZURlYnVnLmgJOSBEZWMg
MjAwNCAxOToyMTowOSAtMDAwMAkxLjQKKysrIGt3cS9LV1FSZW5kZXJUcmVlRGVidWcuaAkxNyBO
b3YgMjAwNSAwMTozMToyNyAtMDAwMApAQCAtMjYsMTIgKzI2LDE1IEBACiAjaWZkZWYgX19jcGx1
c3BsdXMKIAogI2luY2x1ZGUgIktXUVN0cmluZy5oIgorI2luY2x1ZGUgIktXUVRleHRTdHJlYW0u
aCIKKyNpbmNsdWRlICJyZW5kZXJfb2JqZWN0LmgiCiAKIG5hbWVzcGFjZSBraHRtbCB7CiAgICAg
Y2xhc3MgUmVuZGVyT2JqZWN0OwogfQogCiBRU3RyaW5nIGV4dGVybmFsUmVwcmVzZW50YXRpb24o
a2h0bWw6OlJlbmRlck9iamVjdCAqKTsKK3ZvaWQgd3JpdGUoUVRleHRTdHJlYW0gJnRzLCBjb25z
dCBraHRtbDo6UmVuZGVyT2JqZWN0ICZvLCBpbnQgaW5kZW50ID0gMCk7CiAKICNlbmRpZgogCg==
</data>
<flag name="review"
          id="861"
          type_id="1"
          status="-"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4713</attachid>
            <date>2005-11-17 12:57:05 -0800</date>
            <delta_ts>2005-11-17 13:26:22 -0800</delta_ts>
            <desc>A revised patch with Hyatt&apos;s suggested changes.</desc>
            <filename>webcore_svg.patch</filename>
            <type>text/plain</type>
            <size>45867</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL2todG1sX3BhcnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9XZWJDb3JlL2todG1sL2todG1sX3BhcnQuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjM1
NwpkaWZmIC1wIC11IC1yMS4zNTcga2h0bWwva2h0bWxfcGFydC5jcHAKLS0tIGtodG1sL2todG1s
X3BhcnQuY3BwCTcgTm92IDIwMDUgMTk6NTk6MjEgLTAwMDAJMS4zNTcKKysrIGtodG1sL2todG1s
X3BhcnQuY3BwCTE3IE5vdiAyMDA1IDIwOjU2OjUwIC0wMDAwCkBAIC02MCw2ICs2MCw5IEBACiAj
aW5jbHVkZSAieG1sL2RvbTJfcmFuZ2VpbXBsLmgiCiAjaW5jbHVkZSAieG1sL0V2ZW50TmFtZXMu
aCIKICNpbmNsdWRlICJ4bWwveG1sX3Rva2VuaXplci5oIgorI2lmIFNWR19TVVBQT1JUCisjaW5j
bHVkZSAiU1ZHTmFtZXMuaCIKKyNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2UgRE9NOwogdXNpbmcg
bmFtZXNwYWNlIEhUTUxOYW1lczsKQEAgLTIxNSw2ICsyMTgsOSBAQCB2b2lkIEtIVE1MUGFydDo6
aW5pdCggS0hUTUxWaWV3ICp2aWV3LCBHCiAgIFF1YWxpZmllZE5hbWU6OmluaXQoKTsKICAgRXZl
bnROYW1lczo6aW5pdCgpOwogICBIVE1MTmFtZXM6OmluaXQoKTsgLy8gRklYTUU6IFdlIHNob3Vs
ZCBtYWtlIHRoaXMgaGFwcGVuIG9ubHkgd2hlbiBIVE1MIGlzIHVzZWQuCisjaWYgU1ZHX1NVUFBP
UlQKKyAgS1NWRzo6U1ZHTmFtZXM6OmluaXQoKTsKKyNlbmRpZgogICBpZiAoIHByb2YgPT0gRGVm
YXVsdEdVSSApCiAgICAgc2V0WE1MRmlsZSggImtodG1sLnJjIiApOwogICBlbHNlIGlmICggcHJv
ZiA9PSBCcm93c2VyVmlld0dVSSApCkBAIC0xNTkyLDEzICsxNTk4LDggQEAgdm9pZCBLSFRNTFBh
cnQ6OmJlZ2luKCBjb25zdCBLVVJMICZ1cmwsIAogICAgIGVtaXQgc2V0V2luZG93Q2FwdGlvbigg
aTE4biggIm5vIHRpdGxlIiwgIiogVW5rbm93biAqIiApICk7CiAjZW5kaWYKIAotICBpZiAoYXJn
cy5zZXJ2aWNlVHlwZSA9PSAidGV4dC94bWwiIHx8IGFyZ3Muc2VydmljZVR5cGUgPT0gImFwcGxp
Y2F0aW9uL3htbCIgfHwgYXJncy5zZXJ2aWNlVHlwZSA9PSAiYXBwbGljYXRpb24veGh0bWwreG1s
IiB8fAotICAgICAgYXJncy5zZXJ2aWNlVHlwZSA9PSAidGV4dC94c2wiIHx8IGFyZ3Muc2Vydmlj
ZVR5cGUgPT0gImFwcGxpY2F0aW9uL3Jzcyt4bWwiIHx8IGFyZ3Muc2VydmljZVR5cGUgPT0gImFw
cGxpY2F0aW9uL2F0b20reG1sIikKKyAgaWYgKERPTUltcGxlbWVudGF0aW9uSW1wbDo6aXNYTUxN
SU1FVHlwZShzZXJ2aWNlVHlwZSkpCiAgICAgZC0+bV9kb2MgPSBET01JbXBsZW1lbnRhdGlvbklt
cGw6Omluc3RhbmNlKCktPmNyZWF0ZURvY3VtZW50KCBkLT5tX3ZpZXcgKTsKLSNpZiBTVkdfU1VQ
UE9SVAotICBlbHNlIGlmIChhcmdzLnNlcnZpY2VUeXBlID09ICJpbWFnZS9zdmcreG1sIikKLSAg
ICBkLT5tX2RvYyA9IERPTUltcGxlbWVudGF0aW9uSW1wbDo6aW5zdGFuY2UoKS0+Y3JlYXRlS0RP
TURvY3VtZW50KGQtPm1fdmlldyk7Ci0jZW5kaWYKICAgZWxzZQogICAgIGQtPm1fZG9jID0gRE9N
SW1wbGVtZW50YXRpb25JbXBsOjppbnN0YW5jZSgpLT5jcmVhdGVIVE1MRG9jdW1lbnQoIGQtPm1f
dmlldyApOwogCkluZGV4OiBraHRtbC9raHRtbF9wYXJ0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L1dlYkNvcmUva2h0bWwva2h0bWxfcGFydC5oLHYKcmV0cmlldmluZyByZXZpc2lv
biAxLjEzOApkaWZmIC1wIC11IC1yMS4xMzgga2h0bWwva2h0bWxfcGFydC5oCi0tLSBraHRtbC9r
aHRtbF9wYXJ0LmgJMjQgU2VwIDIwMDUgMDE6MTg6NTIgLTAwMDAJMS4xMzgKKysrIGtodG1sL2to
dG1sX3BhcnQuaAkxNyBOb3YgMjAwNSAyMDo1Njo1MSAtMDAwMApAQCAtODksNiArODksMTIgQEAg
bmFtZXNwYWNlIGtodG1sCiAgIGNsYXNzIFhNTFRva2VuaXplcjsKIH0KIAorI2lmZGVmIFNWR19T
VVBQT1JUCituYW1lc3BhY2UgS1NWRyB7CisgICAgY2xhc3MgU1ZHQUVsZW1lbnRJbXBsOworfQor
I2VuZGlmCisKIG5hbWVzcGFjZSBLSlMgewogICAgIGNsYXNzIERPTURvY3VtZW50OwogICAgIGNs
YXNzIFNlbGVjdGlvbjsKQEAgLTE3MSw2ICsxNzcsOSBAQCBjbGFzcyBLSFRNTFBhcnQgOiBwdWJs
aWMgS1BhcnRzOjpSZWFkT25sCiAgIGZyaWVuZCBjbGFzcyBraHRtbDo6UmVuZGVyV2lkZ2V0Owog
ICBmcmllbmQgY2xhc3Mga2h0bWw6OkNTU1N0eWxlU2VsZWN0b3I7CiAgIGZyaWVuZCBjbGFzcyBL
SFRNTFBhcnRJZmFjZTsKKyNpZmRlZiBTVkdfU1VQUE9SVAorICAgIGZyaWVuZCBjbGFzcyBLU1ZH
OjpTVkdBRWxlbWVudEltcGw7CisjZW5kaWYKIAogICBRX1BST1BFUlRZKCBib29sIGphdmFTY3Jp
cHRFbmFibGVkIFJFQUQgalNjcmlwdEVuYWJsZWQgV1JJVEUgc2V0SlNjcmlwdEVuYWJsZWQgKQog
ICBRX1BST1BFUlRZKCBib29sIGphdmFFbmFibGVkIFJFQUQgamF2YUVuYWJsZWQgV1JJVEUgc2V0
SmF2YUVuYWJsZWQgKQpJbmRleDoga2h0bWwvY3NzL2Nzc192YWx1ZWltcGwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9jc3MvY3NzX3ZhbHVlaW1wbC5oLHYK
cmV0cmlldmluZyByZXZpc2lvbiAxLjUxCmRpZmYgLXAgLXUgLXIxLjUxIGtodG1sL2Nzcy9jc3Nf
dmFsdWVpbXBsLmgKLS0tIGtodG1sL2Nzcy9jc3NfdmFsdWVpbXBsLmgJMyBPY3QgMjAwNSAyMTox
MjowNyAtMDAwMAkxLjUxCisrKyBraHRtbC9jc3MvY3NzX3ZhbHVlaW1wbC5oCTE3IE5vdiAyMDA1
IDIwOjU2OjUxIC0wMDAwCkBAIC05MSw3ICs5MSw3IEBAIHByaXZhdGU6CiBjbGFzcyBDU1NWYWx1
ZUltcGwgOiBwdWJsaWMgU3R5bGVCYXNlSW1wbAogewogcHVibGljOgotICAgIHZpcnR1YWwgdW5z
aWduZWQgc2hvcnQgY3NzVmFsdWVUeXBlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdW5zaWdu
ZWQgc2hvcnQgY3NzVmFsdWVUeXBlKCkgY29uc3QgeyByZXR1cm4gQ1NTVmFsdWU6OkNTU19DVVNU
T007IH0KICAgICB2aXJ0dWFsIERPTVN0cmluZyBjc3NUZXh0KCkgY29uc3QgPSAwOwogICAgIHZv
aWQgc2V0Q3NzVGV4dChjb25zdCBET01TdHJpbmcgJikgeyB9IC8vIEZJWE1FOiBOb3QgaW1wbGVt
ZW50ZWQuCiAKQEAgLTM0MCw3ICszNDAsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+Q1NTQm9y
ZGVySW1hZ2VWYWx1ZUltcGwoKTsKIAogICAgIHZpcnR1YWwgRE9NU3RyaW5nIGNzc1RleHQoKSBj
b25zdDsKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGNzc1ZhbHVlVHlwZSgpIGNvbnN0IHsg
cmV0dXJuIENTU1ZhbHVlOjpDU1NfQ1VTVE9NOyB9CiAKIHB1YmxpYzoKICAgICAvLyBUaGUgYm9y
ZGVyIGltYWdlLgpAQCAtMzc0LDkgKzM3Myw3IEBAIGNsYXNzIEZvbnRWYWx1ZUltcGwgOiBwdWJs
aWMgQ1NTVmFsdWVJbXAKIHB1YmxpYzoKICAgICBGb250VmFsdWVJbXBsKCk7CiAgICAgdmlydHVh
bCB+Rm9udFZhbHVlSW1wbCgpOwotCi0gICAgdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBjc3NWYWx1
ZVR5cGUoKSBjb25zdCB7IHJldHVybiBDU1NWYWx1ZTo6Q1NTX0NVU1RPTTsgfQotICAgIAorICAg
ICAgICAKICAgICB2aXJ0dWFsIERPTVN0cmluZyBjc3NUZXh0KCkgY29uc3Q7CiAgICAgCiAgICAg
dmlydHVhbCBib29sIGlzRm9udFZhbHVlKCkgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtMzk2LDkgKzM5
Myw3IEBAIHB1YmxpYzoKICAgICBTaGFkb3dWYWx1ZUltcGwoQ1NTUHJpbWl0aXZlVmFsdWVJbXBs
KiBfeCwgQ1NTUHJpbWl0aXZlVmFsdWVJbXBsKiBfeSwKICAgICAgICAgICAgICAgICAgICAgQ1NT
UHJpbWl0aXZlVmFsdWVJbXBsKiBfYmx1ciwgQ1NTUHJpbWl0aXZlVmFsdWVJbXBsKiBfY29sb3Ip
OwogICAgIHZpcnR1YWwgflNoYWRvd1ZhbHVlSW1wbCgpOwotCi0gICAgdmlydHVhbCB1bnNpZ25l
ZCBzaG9ydCBjc3NWYWx1ZVR5cGUoKSBjb25zdCB7IHJldHVybiBDU1NWYWx1ZTo6Q1NTX0NVU1RP
TTsgfQotCisgICAgCiAgICAgdmlydHVhbCBET01TdHJpbmcgY3NzVGV4dCgpIGNvbnN0OwogCiAg
ICAgQ1NTUHJpbWl0aXZlVmFsdWVJbXBsKiB4OwpJbmRleDoga2h0bWwvY3NzL2Nzc3BhcnNlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvY3NzL2Nzc3Bh
cnNlci5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTA5CmRpZmYgLXAgLXUgLXIxLjEwOSBr
aHRtbC9jc3MvY3NzcGFyc2VyLmNwcAotLS0ga2h0bWwvY3NzL2Nzc3BhcnNlci5jcHAJMiBOb3Yg
MjAwNSAwODo1MjozOSAtMDAwMAkxLjEwOQorKysga2h0bWwvY3NzL2Nzc3BhcnNlci5jcHAJMTcg
Tm92IDIwMDUgMjA6NTY6NTMgLTAwMDAKQEAgLTM4LDE0ICszOCwxOCBAQAogI2luY2x1ZGUgInht
bC9kb21fZG9jaW1wbC5oIgogI2luY2x1ZGUgImNzc2hlbHBlci5oIgogCi11c2luZyBuYW1lc3Bh
Y2UgRE9NOwotCiAjaW5jbHVkZSA8c3RkbGliLmg+CiAKKyNpZiBTVkdfU1VQUE9SVAorI2luY2x1
ZGUgIlNWR1BhaW50SW1wbC5oIgorI2VuZGlmCisKICNpZiBBUFBMRV9DSEFOR0VTCiB2b2lkIHFG
YXRhbCAoIGNvbnN0IGNoYXIgKiBtc2cgKSB7fQogI2VuZGlmCiAKK3VzaW5nIG5hbWVzcGFjZSBE
T007CisKIFZhbHVlTGlzdDo6VmFsdWVMaXN0KCkKIHsKICAgICB2YWx1ZXMgPSAoVmFsdWUgKilm
YXN0TWFsbG9jKDE2ICogc2l6ZW9mKFZhbHVlKSk7CkBAIC03Niw4ICs4MCw2IEBAIHZvaWQgVmFs
dWVMaXN0OjphZGRWYWx1ZShjb25zdCBWYWx1ZSAmdmEKIH0KIAogCi11c2luZyBuYW1lc3BhY2Ug
RE9NOwotCiAjaWYgWVlERUJVRyA+IDAKIGV4dGVybiBpbnQgY3NzeXlkZWJ1ZzsKICNlbmRpZgpA
QCAtMTI4NCw2ICsxMjg2LDEwIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKCBpbnQgcHJv
cElkLCAKIC8vICNpZmRlZiBDU1NfREVCVUcKIC8vIAlrZERlYnVnKCA2MDgwICkgPDwgImlsbGVn
YWwgb3IgQ1NTMiBBdXJhbCBwcm9wZXJ0eTogIiA8PCB2YWwgPDwgZW5kbDsKIC8vICNlbmRpZgor
I2lmIFNWR19TVVBQT1JUCisgICAgaWYgKHBhcnNlU1ZHVmFsdWUocHJvcElkLCBpbXBvcnRhbnQp
KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgogCWJyZWFrOwogICAgIH0KIApAQCAtMjY1
Miw3ICsyNjU4LDcgQEAgc3RhdGljIGlubGluZSBpbnQgeXllcnJvciggY29uc3QgY2hhciAqcwog
ICAgIHJldHVybiAxOwogfQogCi0jZGVmaW5lIEVORCAwCisjZGVmaW5lIEVORF9UT0tFTiAwCiAK
ICNpbmNsdWRlICJwYXJzZXIuaCIKIApAQCAtMjY2Myw3ICsyNjY5LDcgQEAgaW50IERPTTo6Q1NT
UGFyc2VyOjpsZXgoIHZvaWQgKl95eWx2YWwgKQogICAgIHVuc2lnbmVkIHNob3J0ICp0ID0gdGV4
dCggJmxlbmd0aCApOwogCiAjaWZkZWYgVE9LRU5fREVCVUcKLSAgICBxRGVidWcoIkNTU1Rva2Vu
aXplcjogZ290IHRva2VuICVkOiAnJXMnIiwgdG9rZW4sIHRva2VuID09IEVORCA/ICIiIDogUVN0
cmluZyggKFFDaGFyICopdCwgbGVuZ3RoICkubGF0aW4xKCkgKTsKKyAgICBxRGVidWcoIkNTU1Rv
a2VuaXplcjogZ290IHRva2VuICVkOiAnJXMnIiwgdG9rZW4sIHRva2VuID09IEVORF9UT0tFTiA/
ICIiIDogUVN0cmluZyggKFFDaGFyICopdCwgbGVuZ3RoICkubGF0aW4xKCkgKTsKICNlbmRpZgog
ICAgIHN3aXRjaCggdG9rZW4gKSB7CiAgICAgY2FzZSBXSElURVNQQUNFOgpAQCAtMjg2MSw2ICsy
ODY3LDEwIEBAIHVuc2lnbmVkIHNob3J0ICpET006OkNTU1BhcnNlcjo6dGV4dChpbnQKICAgICBy
ZXR1cm4gc3RhcnQ7CiB9CiAKKyNpZiBTVkdfU1VQUE9SVAorI2luY2x1ZGUgImtzdmcyL2Nzcy9L
U1ZHQ1NTUGFyc2VyLmNwcCIKKyNlbmRpZgorCiAKICNkZWZpbmUgWVlfREVDTCBpbnQgRE9NOjpD
U1NQYXJzZXI6OmxleCgpCiAjZGVmaW5lIHl5Y29uc3QgY29uc3QKQEAgLTI4NzksOSArMjg4OSw4
IEBAIHR5cGVkZWYgdW5zaWduZWQgaW50IFlZX0NIQVI7CiAjZGVmaW5lIFlZX1JVTEVfU0VUVVAK
ICNkZWZpbmUgSU5JVElBTCAwCiAjZGVmaW5lIFlZX1NUQVRFX0VPRihzdGF0ZSkgKFlZX0VORF9P
Rl9CVUZGRVIgKyBzdGF0ZSArIDEpCi0jZGVmaW5lIHl5dGVybWluYXRlKCkgeXlUb2sgPSBFTkQ7
IHJldHVybiB5eVRvaworI2RlZmluZSB5eXRlcm1pbmF0ZSgpIHl5VG9rID0gRU5EX1RPS0VOOyBy
ZXR1cm4geXlUb2sKICNkZWZpbmUgWVlfRkFUQUxfRVJST1IoYSkgcUZhdGFsKGEpCi0jZGVmaW5l
IEJFR0lOIHl5X3N0YXJ0ID0gMSArIDIgKgotI2RlZmluZSBDT01NRU5UIDEKIAogI2luY2x1ZGUg
InRva2VuaXplci5jcHAiCisKSW5kZXg6IGtodG1sL2Nzcy9jc3NwYXJzZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9jc3MvY3NzcGFyc2VyLmgsdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuMzIKZGlmZiAtcCAtdSAtcjEuMzIga2h0bWwvY3NzL2Nzc3BhcnNl
ci5oCi0tLSBraHRtbC9jc3MvY3NzcGFyc2VyLmgJMjcgQXVnIDIwMDUgMDA6MTQ6MTggLTAwMDAJ
MS4zMgorKysga2h0bWwvY3NzL2Nzc3BhcnNlci5oCTE3IE5vdiAyMDA1IDIwOjU2OjU0IC0wMDAw
CkBAIC0xNDUsNiArMTQ1LDEzIEBAIG5hbWVzcGFjZSBET00gewogCUNTU1ZhbHVlTGlzdEltcGwg
KnBhcnNlRm9udEZhbWlseSgpOwogICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZUltcGwgKnBhcnNl
Q29sb3IoKTsKIAlDU1NQcmltaXRpdmVWYWx1ZUltcGwgKnBhcnNlQ29sb3JGcm9tVmFsdWUoVmFs
dWUqIHZhbCk7CisgICAgICAgIAorI2lmIFNWR19TVVBQT1JUCisgICAgICAgIGJvb2wgcGFyc2VT
VkdWYWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCwgaW50IGV4cGVjdGVkID0gMSk7Cisg
ICAgICAgIENTU1ZhbHVlSW1wbCAqcGFyc2VTVkdQYWludCgpOworICAgICAgICBDU1NWYWx1ZUlt
cGwgKnBhcnNlU1ZHQ29sb3IoKTsKKyAgICAgICAgQ1NTVmFsdWVJbXBsICpwYXJzZVNWR1N0cm9r
ZURhc2hhcnJheSgpOworI2VuZGlmCiAKICAgICAgICAgc3RhdGljIGJvb2wgcGFyc2VDb2xvcihj
b25zdCBRU3RyaW5nICZuYW1lLCBRUmdiJiByZ2IpOwogCkluZGV4OiBraHRtbC9jc3MvY3Nzc3R5
bGVzZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0
bWwvY3NzL2Nzc3N0eWxlc2VsZWN0b3IuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIyMApk
aWZmIC1wIC11IC1yMS4yMjAga2h0bWwvY3NzL2Nzc3N0eWxlc2VsZWN0b3IuY3BwCi0tLSBraHRt
bC9jc3MvY3Nzc3R5bGVzZWxlY3Rvci5jcHAJMiBOb3YgMjAwNSAwODo1Mjo0MCAtMDAwMAkxLjIy
MAorKysga2h0bWwvY3NzL2Nzc3N0eWxlc2VsZWN0b3IuY3BwCTE3IE5vdiAyMDA1IDIwOjU2OjU4
IC0wMDAwCkBAIC0yMTUsNiArMjE1LDkgQEAgQ1NTUnVsZVNldCAqQ1NTU3R5bGVTZWxlY3Rvcjo6
ZGVmYXVsdFByaQogQ1NTU3R5bGVTaGVldEltcGwgKkNTU1N0eWxlU2VsZWN0b3I6OmRlZmF1bHRT
aGVldCA9IDA7CiBSZW5kZXJTdHlsZSogQ1NTU3R5bGVTZWxlY3Rvcjo6c3R5bGVOb3RZZXRBdmFp
bGFibGUgPSAwOwogQ1NTU3R5bGVTaGVldEltcGwgKkNTU1N0eWxlU2VsZWN0b3I6OnF1aXJrc1No
ZWV0ID0gMDsKKyNpZiBTVkdfU1VQUE9SVAorQ1NTU3R5bGVTaGVldEltcGwgKkNTU1N0eWxlU2Vs
ZWN0b3I6OnN2Z1NoZWV0ID0gMDsKKyNlbmRpZgogCiBzdGF0aWMgQ1NTU3R5bGVTZWxlY3Rvcjo6
RW5jb2RlZHVybCAqY3VycmVudEVuY29kZWRVUkwgPSAwOwogc3RhdGljIFBzZXVkb1N0YXRlIHBz
ZXVkb1N0YXRlOwpAQCAtMzM4LDYgKzM0MSwxMiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6Omxv
YWREZWZhdWx0U3R5bGUoCiAgICAgcXVpcmtzU2hlZXQgPSBwYXJzZVVBU2hlZXQoMCwgImtodG1s
L2Nzcy9xdWlya3MuY3NzIik7CiAgICAgZGVmYXVsdFF1aXJrc1N0eWxlID0gbmV3IENTU1J1bGVT
ZXQoKTsKICAgICBkZWZhdWx0UXVpcmtzU3R5bGUtPmFkZFJ1bGVzRnJvbVNoZWV0KHF1aXJrc1No
ZWV0LCAic2NyZWVuIik7CisgICAgCisjaWYgU1ZHX1NVUFBPUlQKKyAgICBzdmdTaGVldCA9IHBh
cnNlVUFTaGVldCgwLCAia3N2ZzIvY3NzL3N2Zy5jc3MiKTsKKyAgICBkZWZhdWx0U3R5bGUtPmFk
ZFJ1bGVzRnJvbVNoZWV0KHN2Z1NoZWV0LCAic2NyZWVuIik7CisgICAgZGVmYXVsdFByaW50U3R5
bGUtPmFkZFJ1bGVzRnJvbVNoZWV0KHN2Z1NoZWV0LCAicHJpbnQiKTsKKyNlbmRpZgogfQogCiB2
b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFkZE1hdGNoZWRSdWxlKENTU1J1bGVEYXRhKiBydWxlKQpA
QCAtNDEyNiw2ICs0MTM1LDEwIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0
eSggaW4KICNlbmRpZgogCiAgICAgZGVmYXVsdDoKKyNpZiBTVkdfU1VQUE9SVAorICAgICAgICAv
LyBUcnkgdGhlIFNWRyBwcm9wZXJ0aWVzCisgICAgICAgIGFwcGx5U1ZHUHJvcGVydHkoaWQsIHZh
bHVlKTsKKyNlbmRpZgogICAgICAgICByZXR1cm47CiAgICAgfQogfQpJbmRleDoga2h0bWwvY3Nz
L2Nzc3N0eWxlc2VsZWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29y
ZS9raHRtbC9jc3MvY3Nzc3R5bGVzZWxlY3Rvci5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQy
CmRpZmYgLXAgLXUgLXIxLjQyIGtodG1sL2Nzcy9jc3NzdHlsZXNlbGVjdG9yLmgKLS0tIGtodG1s
L2Nzcy9jc3NzdHlsZXNlbGVjdG9yLmgJMzAgT2N0IDIwMDUgMDU6MjY6MjYgLTAwMDAJMS40Mgor
Kysga2h0bWwvY3NzL2Nzc3N0eWxlc2VsZWN0b3IuaAkxNyBOb3YgMjAwNSAyMDo1Njo1OCAtMDAw
MApAQCAtMTY5LDYgKzE2OSw5IEBAIG5hbWVzcGFjZSBraHRtbAogICAgICAgICAKIAlzdGF0aWMg
RE9NOjpDU1NTdHlsZVNoZWV0SW1wbCAqZGVmYXVsdFNoZWV0OwogICAgICAgICBzdGF0aWMgRE9N
OjpDU1NTdHlsZVNoZWV0SW1wbCAqcXVpcmtzU2hlZXQ7CisjaWYgU1ZHX1NVUFBPUlQKKyAgICAg
ICAgc3RhdGljIERPTTo6Q1NTU3R5bGVTaGVldEltcGwgKnN2Z1NoZWV0OworI2VuZGlmCiAJc3Rh
dGljIENTU1J1bGVTZXQqIGRlZmF1bHRTdHlsZTsKICAgICAgICAgc3RhdGljIENTU1J1bGVTZXQq
IGRlZmF1bHRRdWlya3NTdHlsZTsKIAlzdGF0aWMgQ1NTUnVsZVNldCogZGVmYXVsdFByaW50U3R5
bGU7CkBAIC0yMjgsNiArMjMxLDkgQEAgcHVibGljOgogICAgICAgICBib29sIGlzWE1MRG9jOwog
ICAgICAgICAKIAl2b2lkIGFwcGx5UHJvcGVydHkoaW50IGlkLCBET006OkNTU1ZhbHVlSW1wbCAq
dmFsdWUpOworI2lmIFNWR19TVVBQT1JUCisgICAgICAgIHZvaWQgYXBwbHlTVkdQcm9wZXJ0eShp
bnQgaWQsIERPTTo6Q1NTVmFsdWVJbXBsICp2YWx1ZSk7CisjZW5kaWYKICAgICB9OwogCiAgICAg
Y2xhc3MgQ1NTUnVsZURhdGEgewpJbmRleDoga2h0bWwvY3NzL3BhcnNlci55Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2Nzcy9wYXJzZXIueSx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS40NQpkaWZmIC1wIC11IC1yMS40NSBraHRtbC9jc3MvcGFyc2VyLnkKLS0t
IGtodG1sL2Nzcy9wYXJzZXIueQkzIE9jdCAyMDA1IDIxOjEyOjA4IC0wMDAwCTEuNDUKKysrIGto
dG1sL2Nzcy9wYXJzZXIueQkxNyBOb3YgMjAwNSAyMDo1Njo1OSAtMDAwMApAQCAtMzcsNiArMzcs
MTEgQEAKICNpbmNsdWRlIDxrZGVidWcuaD4KIC8vICNkZWZpbmUgQ1NTX0RFQlVHCiAKKyNpZiBT
VkdfU1VQUE9SVAorI2luY2x1ZGUgImtzdmdjc3Nwcm9wZXJ0aWVzLmgiCisjaW5jbHVkZSAia3N2
Z2Nzc3ZhbHVlcy5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBET007CiAgdXNpbmcgbmFt
ZXNwYWNlIEhUTUxOYW1lczsKIApAQCAtOTU4LDYgKzk2MywxMCBAQCBwcm9wZXJ0eToKICAgICBJ
REVOVCBtYXliZV9zcGFjZSB7CiAJUVN0cmluZyBzdHIgPSBxU3RyaW5nKCQxKTsKIAkkJCA9IGdl
dFByb3BlcnR5SUQoIHN0ci5sb3dlcigpLmxhdGluMSgpLCBzdHIubGVuZ3RoKCkgKTsKKyNpZiBT
VkdfU1VQUE9SVAorICAgICAgaWYgKCQkID09IDApCisgICAgICAgICAgJCQgPSBLU1ZHOjpnZXRQ
cm9wZXJ0eUlEKHN0ci5sb3dlcigpLmxhdGluMSgpLCBzdHIubGVuZ3RoKCkpOworI2VuZGlmCiAg
ICAgfQogICA7CiAKQEAgLTEwMDksNiArMTAxOCwxMCBAQCB0ZXJtOgogICB8IElERU5UIG1heWJl
X3NwYWNlIHsKICAgICAgIFFTdHJpbmcgc3RyID0gcVN0cmluZyggJDEgKTsKICAgICAgICQkLmlk
ID0gZ2V0VmFsdWVJRCggc3RyLmxvd2VyKCkubGF0aW4xKCksIHN0ci5sZW5ndGgoKSApOworI2lm
IFNWR19TVVBQT1JUCisgICAgICBpZiAoJCQuaWQgPT0gMCkKKyAgICAgICAgICAkJC5pZCA9IEtT
Vkc6OmdldFZhbHVlSUQoc3RyLmxvd2VyKCkubGF0aW4xKCksIHN0ci5sZW5ndGgoKSk7CisjZW5k
aWYKICAgICAgICQkLnVuaXQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lERU5UOwogICAgICAg
JCQuc3RyaW5nID0gJDE7CiAgIH0KSW5kZXg6IGtodG1sL2VjbWEvZG9tcGFyc2VyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lY21hL2RvbXBhcnNlci5j
cHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNwpkaWZmIC1wIC11IC1yMS43IGtodG1sL2VjbWEv
ZG9tcGFyc2VyLmNwcAotLS0ga2h0bWwvZWNtYS9kb21wYXJzZXIuY3BwCTMgT2N0IDIwMDUgMjE6
MTI6MTIgLTAwMDAJMS43CisrKyBraHRtbC9lY21hL2RvbXBhcnNlci5jcHAJMTcgTm92IDIwMDUg
MjA6NTY6NTkgLTAwMDAKQEAgLTc4LDE1ICs3OCwxNCBAQCBWYWx1ZUltcCAqRE9NUGFyc2VyUHJv
dG9GdW5jOjpjYWxsQXNGdW5jCiAgIHN3aXRjaCAoaWQpIHsKICAgY2FzZSBET01QYXJzZXI6OlBh
cnNlRnJvbVN0cmluZzoKICAgICB7Ci0gICAgICBpZiAoYXJncy5zaXplKCkgIT0gMikgewotCQkJ
CXJldHVybiBVbmRlZmluZWQoKTsKLSAgICAgIH0KKyAgICAgICAgaWYgKGFyZ3Muc2l6ZSgpICE9
IDIpCisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAogICAgICAgUVN0cmluZyBz
dHIgPSBhcmdzWzBdLT50b1N0cmluZyhleGVjKS5xc3RyaW5nKCk7CiAgICAgICBRU3RyaW5nIGNv
bnRlbnRUeXBlID0gYXJnc1sxXS0+dG9TdHJpbmcoZXhlYykucXN0cmluZygpLnN0cmlwV2hpdGVT
cGFjZSgpOwogCiAgICAgICBpZiAoY29udGVudFR5cGUgPT0gInRleHQveG1sIiB8fCBjb250ZW50
VHlwZSA9PSAiYXBwbGljYXRpb24veG1sIiB8fCBjb250ZW50VHlwZSA9PSAiYXBwbGljYXRpb24v
eGh0bWwreG1sIikgewotICAgICAgICBEb2N1bWVudEltcGwgKmRvY0ltcGwgPSBwYXJzZXItPmRv
Yy0+aW1wbCgpLT5jcmVhdGVEb2N1bWVudCgpOworICAgICAgICBEb2N1bWVudEltcGwgKmRvY0lt
cGwgPSBwYXJzZXItPmRvYy0+aW1wbGVtZW50YXRpb24oKS0+Y3JlYXRlRG9jdW1lbnQoKTsKIAog
ICAgICAgICBkb2NJbXBsLT5vcGVuKCk7CiAgICAgICAgIGRvY0ltcGwtPndyaXRlKHN0cik7Cklu
ZGV4OiBraHRtbC9lY21hL2tqc19kb20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9XZWJDb3JlL2todG1sL2VjbWEva2pzX2RvbS5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
MTA4CmRpZmYgLXAgLXUgLXIxLjEwOCBraHRtbC9lY21hL2tqc19kb20uY3BwCi0tLSBraHRtbC9l
Y21hL2tqc19kb20uY3BwCTE2IE5vdiAyMDA1IDA5OjQzOjEyIC0wMDAwCTEuMTA4CisrKyBraHRt
bC9lY21hL2tqc19kb20uY3BwCTE3IE5vdiAyMDA1IDIwOjU3OjAxIC0wMDAwCkBAIC05NjAsNyAr
OTYwLDcgQEAgVmFsdWVJbXAgKkRPTURvY3VtZW50OjpnZXRWYWx1ZVByb3BlcnR5KAogICBjYXNl
IERvY1R5cGU6CiAgICAgcmV0dXJuIGdldERPTU5vZGUoZXhlYyxkb2MuZG9jdHlwZSgpKTsKICAg
Y2FzZSBJbXBsZW1lbnRhdGlvbjoKLSAgICByZXR1cm4gZ2V0RE9NRE9NSW1wbGVtZW50YXRpb24o
ZXhlYyxkb2MuaW1wbCgpKTsKKyAgICByZXR1cm4gZ2V0RE9NRE9NSW1wbGVtZW50YXRpb24oZXhl
YywgZG9jLmltcGxlbWVudGF0aW9uKCkpOwogICBjYXNlIERvY3VtZW50RWxlbWVudDoKICAgICBy
ZXR1cm4gZ2V0RE9NTm9kZShleGVjLGRvYy5kb2N1bWVudEVsZW1lbnQoKSk7CiAgIGNhc2UgU3R5
bGVTaGVldHM6CkluZGV4OiBraHRtbC9lY21hL3htbGh0dHByZXF1ZXN0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lY21hL3htbGh0dHByZXF1ZXN0LmNw
cCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40NApkaWZmIC1wIC11IC1yMS40NCBraHRtbC9lY21h
L3htbGh0dHByZXF1ZXN0LmNwcAotLS0ga2h0bWwvZWNtYS94bWxodHRwcmVxdWVzdC5jcHAJMjcg
T2N0IDIwMDUgMjM6MTU6MDAgLTAwMDAJMS40NAorKysga2h0bWwvZWNtYS94bWxodHRwcmVxdWVz
dC5jcHAJMTcgTm92IDIwMDUgMjA6NTc6MDEgLTAwMDAKQEAgLTE1OSw5ICsxNTksOCBAQCBWYWx1
ZUltcCAqWE1MSHR0cFJlcXVlc3Q6OmdldFZhbHVlUHJvcGVyCiAgICAgICAgIG1pbWVUeXBlID0g
TUlNRVR5cGVPdmVycmlkZTsKICAgICAgIH0KICAgICAgIAotICAgICAgaWYgKG1pbWVUeXBlID09
ICJ0ZXh0L3htbCIgfHwgbWltZVR5cGUgPT0gImFwcGxpY2F0aW9uL3htbCIgfHwgbWltZVR5cGUg
PT0gImFwcGxpY2F0aW9uL3hodG1sK3htbCIgfHwKLSAgICAgICAgICBtaW1lVHlwZSA9PSAidGV4
dC94c2wiIHx8IG1pbWVUeXBlID09ICJhcHBsaWNhdGlvbi9yc3MreG1sIiB8fCBtaW1lVHlwZSA9
PSAiYXBwbGljYXRpb24vYXRvbSt4bWwiKSB7Ci0JcmVzcG9uc2VYTUwucmVzZXQoZG9jLT5pbXBs
KCktPmNyZWF0ZURvY3VtZW50KCkpOworICAgICAgaWYgKHR5cGVJc1hNTCA9IERPTUltcGxlbWVu
dGF0aW9uSW1wbDo6aXNYTUxNSU1FVHlwZShtaW1lVHlwZSkpIHsKKwlyZXNwb25zZVhNTC5yZXNl
dChkb2MtPmltcGxlbWVudGF0aW9uKCktPmNyZWF0ZURvY3VtZW50KCkpOwogCiAJRG9jdW1lbnRJ
bXBsICpkb2NJbXBsID0gcmVzcG9uc2VYTUwuZ2V0KCk7CiAJCkBAIC0xNjksOSArMTY4LDYgQEAg
VmFsdWVJbXAgKlhNTEh0dHBSZXF1ZXN0OjpnZXRWYWx1ZVByb3BlcgogCWRvY0ltcGwtPndyaXRl
KHJlc3BvbnNlKTsKIAlkb2NJbXBsLT5maW5pc2hQYXJzaW5nKCk7CiAJZG9jSW1wbC0+Y2xvc2Uo
KTsKLQl0eXBlSXNYTUwgPSB0cnVlOwotICAgICAgfSBlbHNlIHsKLQl0eXBlSXNYTUwgPSBmYWxz
ZTsKICAgICAgIH0KICAgICAgIGNyZWF0ZWREb2N1bWVudCA9IHRydWU7CiAgICAgfQpJbmRleDog
a2h0bWwvaHRtbC9odG1sX2RvY3VtZW50aW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2
cy9yb290L1dlYkNvcmUva2h0bWwvaHRtbC9odG1sX2RvY3VtZW50aW1wbC5jcHAsdgpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuNzQKZGlmZiAtcCAtdSAtcjEuNzQga2h0bWwvaHRtbC9odG1sX2RvY3Vt
ZW50aW1wbC5jcHAKLS0tIGtodG1sL2h0bWwvaHRtbF9kb2N1bWVudGltcGwuY3BwCTggTm92IDIw
MDUgMDg6MTA6NTggLTAwMDAJMS43NAorKysga2h0bWwvaHRtbC9odG1sX2RvY3VtZW50aW1wbC5j
cHAJMTcgTm92IDIwMDUgMjA6NTc6MDIgLTAwMDAKQEAgLTEzNCwxOSArMTM0LDYgQEAgRWxlbWVu
dEltcGwqIEhUTUxEb2N1bWVudEltcGw6OmRvY3VtZW50RQogICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxFbGVtZW50SW1wbCo+KF9maXJzdCk7CiB9CiAKLURPTVN0cmluZyBIVE1MRG9jdW1lbnRJbXBs
OjpyZWZlcnJlcigpIGNvbnN0Ci17Ci0gICAgaWYgKCBwYXJ0KCkgKQotI2lmIEFQUExFX0NIQU5H
RVMKLSAgICAgICAgcmV0dXJuIEtXUShwYXJ0KCkpLT5pbmNvbWluZ1JlZmVycmVyKCk7Ci0jZWxz
ZQotICAgICAgICAvLyBUaGlzIGlzIGJyb2tlbjsgcmV0dXJucyB0aGUgcmVmZXJyZXIgdXNlZCBm
b3IgbGlua3Mgd2l0aGluIHRoaXMgcGFnZSAoYmFzaWNhbGx5Ci0gICAgICAgIC8vIHRoZSBzYW1l
IGFzIHRoZSBVUkwpLCBub3QgdGhlIHJlZmVycmVyIHVzZWQgZm9yIGxvYWRpbmcgdGhpcyBwYWdl
IGl0c2VsZi4KLSAgICAgICAgcmV0dXJuIHBhcnQoKS0+cmVmZXJyZXIoKTsKLSNlbmRpZgotICAg
IHJldHVybiBET01TdHJpbmcoKTsKLX0KLQogRE9NU3RyaW5nIEhUTUxEb2N1bWVudEltcGw6Omxh
c3RNb2RpZmllZCgpIGNvbnN0CiB7CiAgICAgaWYgKCBwYXJ0KCkgKQpJbmRleDoga2h0bWwvaHRt
bC9odG1sX2RvY3VtZW50aW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJD
b3JlL2todG1sL2h0bWwvaHRtbF9kb2N1bWVudGltcGwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24g
MS4zMwpkaWZmIC1wIC11IC1yMS4zMyBraHRtbC9odG1sL2h0bWxfZG9jdW1lbnRpbXBsLmgKLS0t
IGtodG1sL2h0bWwvaHRtbF9kb2N1bWVudGltcGwuaAkyOCBTZXAgMjAwNSAyMjowMTozMiAtMDAw
MAkxLjMzCisrKyBraHRtbC9odG1sL2h0bWxfZG9jdW1lbnRpbXBsLmgJMTcgTm92IDIwMDUgMjA6
NTc6MDIgLTAwMDAKQEAgLTQ3LDcgKzQ3LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBp
c0hUTUxEb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIEVsZW1l
bnRJbXBsICpkb2N1bWVudEVsZW1lbnQoKSBjb25zdDsKIAotICAgIERPTVN0cmluZyByZWZlcnJl
cigpIGNvbnN0OwogICAgIERPTVN0cmluZyBsYXN0TW9kaWZpZWQoKSBjb25zdDsKICAgICBET01T
dHJpbmcgY29va2llKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRDb29raWUoIGNvbnN0IERPTVN0cmlu
ZyAmKTsKSW5kZXg6IGtodG1sL3JlbmRlcmluZy9yZW5kZXJfY2FudmFzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2NhbnZh
cy5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzQKZGlmZiAtcCAtdSAtcjEuMzQga2h0bWwv
cmVuZGVyaW5nL3JlbmRlcl9jYW52YXMuY3BwCi0tLSBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX2Nh
bnZhcy5jcHAJMTkgT2N0IDIwMDUgMDk6MTU6MTMgLTAwMDAJMS4zNAorKysga2h0bWwvcmVuZGVy
aW5nL3JlbmRlcl9jYW52YXMuY3BwCTE3IE5vdiAyMDA1IDIwOjU3OjAyIC0wMDAwCkBAIC0zMSw2
ICszMSwxMSBAQAogI2luY2x1ZGUgImtodG1sX3BhcnQuaCIKICNlbmRpZgogCisjaWYgU1ZHX1NV
UFBPUlQKKyNpbmNsdWRlICJLQ2FudmFzUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJLUmVuZGVyaW5n
RGV2aWNlUXVhcnR6LmgiCisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIGtodG1sOwogCiAvLyNk
ZWZpbmUgQk9YX0RFQlVHCkBAIC03MSwxMCArNzYsMTkgQEAgUmVuZGVyQ2FudmFzOjpSZW5kZXJD
YW52YXMoRE9NOjpOb2RlSW1wbAogCiAgICAgLy8gQ3JlYXRlIGEgbmV3IHJvb3QgbGF5ZXIgZm9y
IG91ciBsYXllciBoaWVyYXJjaHkuCiAgICAgbV9sYXllciA9IG5ldyAobm9kZS0+Z2V0RG9jdW1l
bnQoKS0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyTGF5ZXIodGhpcyk7CisgICAgCisjaWYgU1ZHX1NV
UFBPUlQKKyAgICBtX3JlbmRlcmluZ0RldmljZSA9IDA7CisgICAgbV9yZWdpc3RyeSA9IDA7Cisj
ZW5kaWYKIH0KIAogUmVuZGVyQ2FudmFzOjp+UmVuZGVyQ2FudmFzKCkKIHsKKyNpZiBTVkdfU1VQ
UE9SVAorICAgIGRlbGV0ZSBtX3JlbmRlcmluZ0RldmljZTsKKyAgICBkZWxldGUgbV9yZWdpc3Ry
eTsKKyNlbmRpZgogfQogCiB2b2lkIFJlbmRlckNhbnZhczo6Y2FsY0hlaWdodCgpCkBAIC02NDYs
MyArNjYwLDE5IEBAIHZvaWQgUmVuZGVyQ2FudmFzOjpzZXRCZXN0VHJ1bmNhdGVkQXQoaW4KICAg
ICB9CiB9CiAjZW5kaWYKKworI2lmIFNWR19TVVBQT1JUCitLUmVuZGVyaW5nRGV2aWNlICpSZW5k
ZXJDYW52YXM6OnJlbmRlcmluZ0RldmljZSgpCit7CisgICAgaWYgKCFtX3JlbmRlcmluZ0Rldmlj
ZSkKKyAgICAgICAgbV9yZW5kZXJpbmdEZXZpY2UgPSBuZXcgS1JlbmRlcmluZ0RldmljZVF1YXJ0
eigpOworICAgIHJldHVybiBtX3JlbmRlcmluZ0RldmljZTsKK30KKworS0NhbnZhc1JlZ2lzdHJ5
ICpSZW5kZXJDYW52YXM6OnJlZ2lzdHJ5KCkKK3sKKyAgICBpZiAoIW1fcmVnaXN0cnkpCisgICAg
ICAgIG1fcmVnaXN0cnkgPSBuZXcgS0NhbnZhc1JlZ2lzdHJ5KCk7CisgICAgcmV0dXJuIG1fcmVn
aXN0cnk7Cit9CisjZW5kaWYKSW5kZXg6IGtodG1sL3JlbmRlcmluZy9yZW5kZXJfY2FudmFzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3Jl
bmRlcl9jYW52YXMuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMgpkaWZmIC1wIC11IC1yMS4x
MiBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX2NhbnZhcy5oCi0tLSBraHRtbC9yZW5kZXJpbmcvcmVu
ZGVyX2NhbnZhcy5oCTE5IE9jdCAyMDA1IDA5OjE1OjE0IC0wMDAwCTEuMTIKKysrIGtodG1sL3Jl
bmRlcmluZy9yZW5kZXJfY2FudmFzLmgJMTcgTm92IDIwMDUgMjA6NTc6MDMgLTAwMDAKQEAgLTI4
LDYgKzI4LDEyIEBACiBjbGFzcyBLSFRNTFZpZXc7CiBjbGFzcyBRU2Nyb2xsVmlldzsKIAorI2lm
IFNWR19TVVBQT1JUCitjbGFzcyBLUmVuZGVyaW5nRGV2aWNlOworY2xhc3MgS0NhbnZhc1JlZ2lz
dHJ5OworI2VuZGlmCisKKwogbmFtZXNwYWNlIGtodG1sIHsKIAogY2xhc3MgUmVuZGVyQ2FudmFz
IDogcHVibGljIFJlbmRlckJsb2NrCkBAIC0xMDYsNiArMTEyLDExIEBAIHB1YmxpYzoKICAgICB2
b2lkIHVwZGF0ZVdpZGdldFBvc2l0aW9ucygpOwogICAgIHZvaWQgYWRkV2lkZ2V0KFJlbmRlck9i
amVjdCAqKTsKICAgICB2b2lkIHJlbW92ZVdpZGdldChSZW5kZXJPYmplY3QgKik7CisgICAgCisj
aWYgU1ZHX1NVUFBPUlQKKyAgICBLUmVuZGVyaW5nRGV2aWNlICpyZW5kZXJpbmdEZXZpY2UoKTsK
KyAgICBLQ2FudmFzUmVnaXN0cnkgKnJlZ2lzdHJ5KCk7CisjZW5kaWYKIAogcHJvdGVjdGVkOgog
CkBAIC0xMzMsNiArMTQ0LDExIEBAIHByb3RlY3RlZDoKICAgICB0eXBlZGVmIEhhc2hTZXQ8UmVu
ZGVyT2JqZWN0ICosIFBvaW50ZXJIYXNoPFJlbmRlck9iamVjdCAqPiA+IFJlbmRlck9iamVjdFNl
dDsKIAogICAgIFJlbmRlck9iamVjdFNldCBtX3dpZGdldHM7CisgICAgCisjaWYgU1ZHX1NVUFBP
UlQKKyAgICBLUmVuZGVyaW5nRGV2aWNlICptX3JlbmRlcmluZ0RldmljZTsKKyAgICBLQ2FudmFz
UmVnaXN0cnkgKm1fcmVnaXN0cnk7CisjZW5kaWYKIH07CiAKIH07CkluZGV4OiBraHRtbC9yZW5k
ZXJpbmcvcmVuZGVyX2NvbnRhaW5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9X
ZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfY29udGFpbmVyLmgsdgpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuMjIKZGlmZiAtcCAtdSAtcjEuMjIga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9jb250
YWluZXIuaAotLS0ga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9jb250YWluZXIuaAkyNCBPY3QgMjAw
NSAyMjozMzo1NCAtMDAwMAkxLjIyCisrKyBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX2NvbnRhaW5l
ci5oCTE3IE5vdiAyMDA1IDIwOjU3OjAzIC0wMDAwCkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgVmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9uRm9yQ29vcmRpbmF0ZXMoaW50
IHgsIGludCB5KTsKIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICB2b2lkIHNldEZpcnN0Q2hp
bGQoUmVuZGVyT2JqZWN0ICpmaXJzdCkgeyBtX2ZpcnN0ID0gZmlyc3Q7IH0KICAgICB2b2lkIHNl
dExhc3RDaGlsZChSZW5kZXJPYmplY3QgKmxhc3QpIHsgbV9sYXN0ID0gbGFzdDsgfQogCkluZGV4
OiBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX29iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9j
dnMvcm9vdC9XZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfb2JqZWN0LmgsdgpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuMTY1CmRpZmYgLXAgLXUgLXIxLjE2NSBraHRtbC9yZW5kZXJpbmcvcmVu
ZGVyX29iamVjdC5oCi0tLSBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX29iamVjdC5oCTcgTm92IDIw
MDUgMjM6MjQ6MTkgLTAwMDAJMS4xNjUKKysrIGtodG1sL3JlbmRlcmluZy9yZW5kZXJfb2JqZWN0
LmgJMTcgTm92IDIwMDUgMjA6NTc6MDQgLTAwMDAKQEAgLTIxMSwxNCArMjExLDE0IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0Q2hpbGROb2RlKFJlbmRlck9iamVjdCogY2hpbGQs
IFJlbmRlck9iamVjdCogYmVmb3JlKTsKICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAgICAvLyBIZWxwZXIgZnVuY3Rpb25zLiBE
YW5nZXJvdXMgdG8gdXNlIQogICAgIHZvaWQgc2V0UHJldmlvdXNTaWJsaW5nKFJlbmRlck9iamVj
dCAqcHJldmlvdXMpIHsgbV9wcmV2aW91cyA9IHByZXZpb3VzOyB9CiAgICAgdm9pZCBzZXROZXh0
U2libGluZyhSZW5kZXJPYmplY3QgKm5leHQpIHsgbV9uZXh0ID0gbmV4dDsgfQogICAgIHZvaWQg
c2V0UGFyZW50KFJlbmRlck9iamVjdCAqcGFyZW50KSB7IG1fcGFyZW50ID0gcGFyZW50OyB9CiAg
ICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0gICAgCitwcml2
YXRlOgogICAgIHZvaWQgYWRkQWJzb2x1dGVSZWN0Rm9yTGF5ZXIoUVJlY3QmIHJlc3VsdCk7CiAK
IHB1YmxpYzoKQEAgLTI3Nyw2ICsyNzcsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBp
c0ZyYW1lU2V0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNB
cHBsZXQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIAorI2lmIFNWR19TVVBQT1JUCisg
ICAgdmlydHVhbCBib29sIGlzS0NhbnZhc0NvbnRhaW5lcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBib29sIGlzUmVuZGVyUGF0aCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBRUmVjdCBiYm94KGJvb2wgaW5jbHVkZVN0cm9rZSA9IHRydWUpIHsg
cmV0dXJuIFFSZWN0KCk7IH0KKyNlbmRpZgorICAgIAogICAgIHZpcnR1YWwgYm9vbCBpc0VkaXRh
YmxlKCkgY29uc3Q7CiAKICAgICBib29sIGlzSFRNTE1hcnF1ZWUoKSBjb25zdDsKSW5kZXg6IGto
dG1sL3JlbmRlcmluZy9yZW5kZXJfc3R5bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMv
cm9vdC9XZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfc3R5bGUuY3BwLHYKcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjczCmRpZmYgLXAgLXUgLXIxLjczIGtodG1sL3JlbmRlcmluZy9yZW5kZXJf
c3R5bGUuY3BwCi0tLSBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX3N0eWxlLmNwcAk2IE9jdCAyMDA1
IDAwOjUzOjU5IC0wMDAwCTEuNzMKKysrIGtodG1sL3JlbmRlcmluZy9yZW5kZXJfc3R5bGUuY3Bw
CTE3IE5vdiAyMDA1IDIwOjU3OjA0IC0wMDAwCkBAIC0yOCw2ICsyOCwxMCBAQAogI2luY2x1ZGUg
ImNzcy9jc3NzdHlsZXNlbGVjdG9yLmgiCiAjaW5jbHVkZSAicmVuZGVyX2FyZW5hLmgiCiAKKyNp
ZiBTVkdfU1VQUE9SVAorI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCisjZW5kaWYKKwogI2lu
Y2x1ZGUgImtkZWJ1Zy5oIgogCiB1c2luZyBuYW1lc3BhY2Uga2h0bWw7CkBAIC01NDMsNiArNTQ3
LDEwIEBAIFJlbmRlclN0eWxlOjpSZW5kZXJTdHlsZSgpCiAgICAgCiAgICAgaW5oZXJpdGVkID0g
X2RlZmF1bHQtPmluaGVyaXRlZDsKIAorI2lmIFNWR19TVVBQT1JUCisgICAgbV9zdmdTdHlsZSA9
IG5ldyBLU1ZHOjpTVkdSZW5kZXJTdHlsZSgpOworI2VuZGlmCisKICAgICBzZXRCaXREZWZhdWx0
cygpOwogCiAgICAgcHNldWRvU3R5bGUgPSAwOwpAQCAtNTYzLDYgKzU3MSwxMCBAQCBSZW5kZXJT
dHlsZTo6UmVuZGVyU3R5bGUoYm9vbCkKICAgICBjc3MzTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3Mo
KS0+bWFycXVlZS5pbml0KCk7CiAgICAgY3NzM0luaGVyaXRlZERhdGEuaW5pdCgpOwogICAgIGlu
aGVyaXRlZC5pbml0KCk7CisgICAgCisjaWYgU1ZHX1NVUFBPUlQKKyAgICBtX3N2Z1N0eWxlID0g
bmV3IEtTVkc6OlNWR1JlbmRlclN0eWxlKHRydWUpOworI2VuZGlmCiAKICAgICBwc2V1ZG9TdHls
ZSA9IDA7CiAgICAgY29udGVudCA9IDA7CkBAIC01NzYsNiArNTg4LDkgQEAgUmVuZGVyU3R5bGU6
OlJlbmRlclN0eWxlKGNvbnN0IFJlbmRlclN0eQogICAgICAgaW5oZXJpdGVkKCBvLmluaGVyaXRl
ZCApLCBwc2V1ZG9TdHlsZSggMCApLCBjb250ZW50KCBvLmNvbnRlbnQgKSwgbV9wc2V1ZG9TdGF0
ZShvLm1fcHNldWRvU3RhdGUpLAogICAgICAgbV9hZmZlY3RlZEJ5QXR0cmlidXRlU2VsZWN0b3Jz
KGZhbHNlKQogeworI2lmIFNWR19TVVBQT1JUCisgICAgbV9zdmdTdHlsZSA9IG5ldyBLU1ZHOjpT
VkdSZW5kZXJTdHlsZSgqby5zdmdTdHlsZSgpKTsKKyNlbmRpZgogICAgIG1fcmVmID0gMDsKIH0K
IApAQCAtNTg0LDYgKzU5OSw5IEBAIHZvaWQgUmVuZGVyU3R5bGU6OmluaGVyaXRGcm9tKGNvbnN0
IFJlbmQKICAgICBjc3MzSW5oZXJpdGVkRGF0YSA9IGluaGVyaXRQYXJlbnQtPmNzczNJbmhlcml0
ZWREYXRhOwogICAgIGluaGVyaXRlZCA9IGluaGVyaXRQYXJlbnQtPmluaGVyaXRlZDsKICAgICBp
bmhlcml0ZWRfZmxhZ3MgPSBpbmhlcml0UGFyZW50LT5pbmhlcml0ZWRfZmxhZ3M7CisjaWYgU1ZH
X1NVUFBPUlQKKyAgICBzdmdTdHlsZSgpLT5pbmhlcml0RnJvbShpbmhlcml0UGFyZW50LT5zdmdT
dHlsZSgpKTsKKyNlbmRpZgogfQogCiBSZW5kZXJTdHlsZTo6flJlbmRlclN0eWxlKCkKQEAgLTYw
MSw3ICs2MTksMTEgQEAgYm9vbCBSZW5kZXJTdHlsZTo6b3BlcmF0b3I9PShjb25zdCBSZW5kZQog
ICAgICAgICAgICAgc3Vycm91bmQgPT0gby5zdXJyb3VuZCAmJgogICAgICAgICAgICAgY3NzM05v
bkluaGVyaXRlZERhdGEgPT0gby5jc3MzTm9uSW5oZXJpdGVkRGF0YSAmJgogICAgICAgICAgICAg
Y3NzM0luaGVyaXRlZERhdGEgPT0gby5jc3MzSW5oZXJpdGVkRGF0YSAmJgotICAgICAgICAgICAg
aW5oZXJpdGVkID09IG8uaW5oZXJpdGVkKTsKKyAgICAgICAgICAgIGluaGVyaXRlZCA9PSBvLmlu
aGVyaXRlZAorI2lmIFNWR19TVVBQT1JUCisgICAgICAgICAgICAmJiAoc3ZnU3R5bGUoKSAmJiAg
by5zdmdTdHlsZSgpLT5lcXVhbHMoby5zdmdTdHlsZSgpKSkKKyNlbmRpZgorICAgICAgICAgICAg
KTsKIH0KIAogYm9vbCBSZW5kZXJTdHlsZTo6aXNTdHlsZUF2YWlsYWJsZSgpIGNvbnN0CkBAIC05
MDIsNyArOTI0LDcgQEAgdm9pZCBSZW5kZXJTdHlsZTo6c2V0Q2xpcCggTGVuZ3RoIHRvcCwgTAog
ICAgIGRhdGEtPmNsaXAubGVmdCA9IGxlZnQ7CiB9CiAKLWJvb2wgUmVuZGVyU3R5bGU6OmNvbnRl
bnREYXRhRXF1aXZhbGVudChSZW5kZXJTdHlsZSogb3RoZXJTdHlsZSkKK2Jvb2wgUmVuZGVyU3R5
bGU6OmNvbnRlbnREYXRhRXF1aXZhbGVudChjb25zdCBSZW5kZXJTdHlsZSogb3RoZXJTdHlsZSkg
Y29uc3QKIHsKICAgICBDb250ZW50RGF0YSogYzEgPSBjb250ZW50OwogICAgIENvbnRlbnREYXRh
KiBjMiA9IG90aGVyU3R5bGUtPmNvbnRlbnQ7CkluZGV4OiBraHRtbC9yZW5kZXJpbmcvcmVuZGVy
X3N0eWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvcmVu
ZGVyaW5nL3JlbmRlcl9zdHlsZS5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjk3CmRpZmYgLXAg
LXUgLXIxLjk3IGtodG1sL3JlbmRlcmluZy9yZW5kZXJfc3R5bGUuaAotLS0ga2h0bWwvcmVuZGVy
aW5nL3JlbmRlcl9zdHlsZS5oCTIgTm92IDIwMDUgMDg6NTI6NDYgLTAwMDAJMS45NworKysga2h0
bWwvcmVuZGVyaW5nL3JlbmRlcl9zdHlsZS5oCTE3IE5vdiAyMDA1IDIwOjU3OjA2IC0wMDAwCkBA
IC01OCw2ICs1OCwxMiBAQCBuYW1lc3BhY2UgRE9NIHsKICAgICBjbGFzcyBTaGFkb3dWYWx1ZUlt
cGw7CiB9CiAKKyNpZiBTVkdfU1VQUE9SVAorbmFtZXNwYWNlIEtTVkcgeworICAgIGNsYXNzIFNW
R1JlbmRlclN0eWxlOworfQorI2VuZGlmCisKIG5hbWVzcGFjZSBraHRtbCB7CiAKICAgICBjbGFz
cyBDYWNoZWRJbWFnZTsKQEAgLTk1Nyw2ICs5NjMsMzMgQEAgZW51bSBFRGlzcGxheSB7CiAgICAg
VEFCTEVfQ0FQVElPTiwgQk9YLCBJTkxJTkVfQk9YLCBOT05FCiB9OwogCisjaWYgU1ZHX1NVUFBP
UlQKKworLy8gSGVscGVyIG1hY3JvcyBmb3IgU1ZHJ3MgJ1JlbmRlclN0eWxlJyBwcm9wZXJ0aWVz
CisjZGVmaW5lIFJTX0RFRklORV9BVFRSSUJVVEUoRGF0YSwgVHlwZSwgTmFtZSwgSW5pdGlhbCkg
XAorICAgIHZvaWQgc2V0IyNUeXBlKERhdGEgdmFsKSB7IG5vbmluaGVyaXRlZF9mbGFncy5mLl8j
I05hbWUgPSB2YWw7IH0gXAorICAgIERhdGEgTmFtZSgpIGNvbnN0IHsgcmV0dXJuIChEYXRhKSBu
b25pbmhlcml0ZWRfZmxhZ3MuZi5fIyNOYW1lOyB9IFwKKyAgICBzdGF0aWMgRGF0YSBpbml0aWFs
IyNUeXBlKCkgeyByZXR1cm4gSW5pdGlhbDsgfQorCisjZGVmaW5lIFJTX0RFRklORV9BVFRSSUJV
VEVfSU5IRVJJVEVEKERhdGEsIFR5cGUsIE5hbWUsIEluaXRpYWwpIFwKKyAgICB2b2lkIHNldCMj
VHlwZShEYXRhIHZhbCkgeyBpbmhlcml0ZWRfZmxhZ3MuZi5fIyNOYW1lID0gdmFsOyB9IFwKKyAg
ICBEYXRhIE5hbWUoKSBjb25zdCB7IHJldHVybiAoRGF0YSkgaW5oZXJpdGVkX2ZsYWdzLmYuXyMj
TmFtZTsgfSBcCisgICAgc3RhdGljIERhdGEgaW5pdGlhbCMjVHlwZSgpIHsgcmV0dXJuIEluaXRp
YWw7IH0KKworI2RlZmluZSBSU19ERUZJTkVfQVRUUklCVVRFX0RBVEFSRUYoRGF0YSwgR3JvdXAs
IFZhcmlhYmxlLCBUeXBlLCBOYW1lKSBcCisgICAgRGF0YSBOYW1lKCkgY29uc3QgeyByZXR1cm4g
R3JvdXAtPlZhcmlhYmxlOyB9IFwKKyAgICB2b2lkIHNldCMjVHlwZShEYXRhIG9iaikgeyBSU19T
RVRfVkFSSUFCTEUoR3JvdXAsIFZhcmlhYmxlLCBvYmopIH0KKworI2RlZmluZSBSU19ERUZJTkVf
QVRUUklCVVRFX0RBVEFSRUZfV0lUSF9JTklUSUFMKERhdGEsIEdyb3VwLCBWYXJpYWJsZSwgVHlw
ZSwgTmFtZSwgSW5pdGlhbCkgXAorICAgIFJTX0RFRklORV9BVFRSSUJVVEVfREFUQVJFRihEYXRh
LCBHcm91cCwgVmFyaWFibGUsIFR5cGUsIE5hbWUpIFwKKyAgICBzdGF0aWMgRGF0YSBpbml0aWFs
IyNUeXBlKCkgeyByZXR1cm4gSW5pdGlhbDsgfQorCisjZGVmaW5lIFJTX1NFVF9WQVJJQUJMRShH
cm91cCwgVmFyaWFibGUsIFZhbHVlKSBcCisgICAgaWYoIShHcm91cC0+VmFyaWFibGUgPT0gVmFs
dWUpKSBcCisgICAgICAgIEdyb3VwLmFjY2VzcygpLT5WYXJpYWJsZSA9IFZhbHVlOworCisjZW5k
aWYKKwogY2xhc3MgUmVuZGVyU3R5bGUKIHsKICAgICBmcmllbmQgY2xhc3MgQ1NTU3R5bGVTZWxl
Y3RvcjsKQEAgLTExMDUsNiArMTEzOCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgCiAgICAgaW50IG1f
cmVmOwogICAgIAorI2lmIFNWR19TVVBQT1JUCisgICAgS1NWRzo6U1ZHUmVuZGVyU3R5bGUgKm1f
c3ZnU3R5bGU7CisjZW5kaWYKKyAgICAKIC8vICFFTkQgU1lOQyEKIAogLy8gc3RhdGljIGRlZmF1
bHQgc3R5bGUKQEAgLTE2NDAsOCArMTY3NywxMiBAQCBwdWJsaWM6CiAgICAgfQogI2VuZGlmCiAK
KyNpZiBTVkdfU1VQUE9SVAorICAgIEtTVkc6OlNWR1JlbmRlclN0eWxlICpzdmdTdHlsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fc3ZnU3R5bGU7IH0KKyNlbmRpZgorCiAgICAgQ29udGVudERhdGEqIGNv
bnRlbnREYXRhKCkgeyByZXR1cm4gY29udGVudDsgfQotICAgIGJvb2wgY29udGVudERhdGFFcXVp
dmFsZW50KFJlbmRlclN0eWxlKiBvdGhlclN0eWxlKTsKKyAgICBib29sIGNvbnRlbnREYXRhRXF1
aXZhbGVudChjb25zdCBSZW5kZXJTdHlsZSAqb3RoZXJTdHlsZSkgY29uc3Q7CiAgICAgdm9pZCBz
ZXRDb250ZW50KERPTTo6RE9NU3RyaW5nSW1wbCogcywgYm9vbCBhZGQgPSBmYWxzZSk7CiAgICAg
dm9pZCBzZXRDb250ZW50KENhY2hlZE9iamVjdCogbywgYm9vbCBhZGQgPSBmYWxzZSk7CiAKSW5k
ZXg6IGtodG1sL3htbC9FdmVudE5hbWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290
L1dlYkNvcmUva2h0bWwveG1sL0V2ZW50TmFtZXMuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4y
CmRpZmYgLXAgLXUgLXIxLjIga2h0bWwveG1sL0V2ZW50TmFtZXMuaAotLS0ga2h0bWwveG1sL0V2
ZW50TmFtZXMuaAkzIFNlcCAyMDA1IDIzOjEwOjAxIC0wMDAwCTEuMgorKysga2h0bWwveG1sL0V2
ZW50TmFtZXMuaAkxNyBOb3YgMjAwNSAyMDo1NzowNiAtMDAwMApAQCAtNzAsNiArNzAsNyBAQCBu
YW1lc3BhY2UgRE9NIHsgbmFtZXNwYWNlIEV2ZW50TmFtZXMgewogICAgIG1hY3JvKHN1Ym1pdCkg
XAogICAgIG1hY3JvKHRleHRJbnB1dCkgXAogICAgIG1hY3JvKHVubG9hZCkgXAorICAgIG1hY3Jv
KHpvb20pIFwKICAgICBcCiAgICAgbWFjcm8oRE9NQWN0aXZhdGUpIFwKICAgICBtYWNybyhET01B
dHRyTW9kaWZpZWQpIFwKSW5kZXg6IGtodG1sL3htbC9kb21fZG9jaW1wbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveG1sL2RvbV9kb2NpbXBsLmNwcCx2
CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yNzEKZGlmZiAtcCAtdSAtcjEuMjcxIGtodG1sL3htbC9k
b21fZG9jaW1wbC5jcHAKLS0tIGtodG1sL3htbC9kb21fZG9jaW1wbC5jcHAJMTUgTm92IDIwMDUg
MDI6MDU6NDMgLTAwMDAJMS4yNzEKKysrIGtodG1sL3htbC9kb21fZG9jaW1wbC5jcHAJMTcgTm92
IDIwMDUgMjA6NTc6MDkgLTAwMDAKQEAgLTk1LDcgKzk1LDEyIEBAIHVzaW5nIFhCTDo6WEJMQmlu
ZGluZ01hbmFnZXI7CiAjZW5kaWYKIAogI2lmIFNWR19TVVBQT1JUCi0jaW5jbHVkZSAiZG9tX2tk
b21kb2N1bWVudHdyYXBwZXIuaCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1ZGUgIlNW
R0VsZW1lbnRGYWN0b3J5LmgiCisjaW5jbHVkZSAiU1ZHRWxlbWVudEltcGwuaCIKKyNpbmNsdWRl
ICJTVkdab29tRXZlbnRJbXBsLmgiCisjaW5jbHVkZSAiU1ZHU3R5bGVFbGVtZW50SW1wbC5oIgor
I2luY2x1ZGUgImtjYW52YXMvZGV2aWNlL3F1YXJ0ei9LUmVuZGVyaW5nRGV2aWNlUXVhcnR6Lmgi
CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIERPTTsKQEAgLTIwMyw3ICsyMDgsNyBAQCBET01J
bXBsZW1lbnRhdGlvbkltcGw6On5ET01JbXBsZW1lbnRhdGlvCiB7CiB9CiAKLWJvb2wgRE9NSW1w
bGVtZW50YXRpb25JbXBsOjpoYXNGZWF0dXJlICggY29uc3QgRE9NU3RyaW5nICZmZWF0dXJlLCBj
b25zdCBET01TdHJpbmcgJnZlcnNpb24gKQorYm9vbCBET01JbXBsZW1lbnRhdGlvbkltcGw6Omhh
c0ZlYXR1cmUgKGNvbnN0IERPTVN0cmluZyAmZmVhdHVyZSwgY29uc3QgRE9NU3RyaW5nICZ2ZXJz
aW9uKSBjb25zdAogewogICAgIFFTdHJpbmcgbG93ZXIgPSBmZWF0dXJlLnFzdHJpbmcoKS5sb3dl
cigpOwogICAgIGlmIChsb3dlciA9PSAiY29yZSIgfHwgbG93ZXIgPT0gImh0bWwiIHx8IGxvd2Vy
ID09ICJ4bWwiIHx8IGxvd2VyID09ICJ4aHRtbCIpCkBAIC0yOTYsNyArMzAxLDcgQEAgRG9jdW1l
bnRJbXBsICpET01JbXBsZW1lbnRhdGlvbkltcGw6OmNyZQogCiAgICAgLy8gV1JPTkdfRE9DVU1F
TlRfRVJSOiBSYWlzZWQgaWYgZG9jdHlwZSBoYXMgYWxyZWFkeSBiZWVuIHVzZWQgd2l0aCBhIGRp
ZmZlcmVudCBkb2N1bWVudCBvciB3YXMKICAgICAvLyBjcmVhdGVkIGZyb20gYSBkaWZmZXJlbnQg
aW1wbGVtZW50YXRpb24uCi0gICAgaWYgKGRvY3R5cGUgJiYgKGRvY3R5cGUtPmdldERvY3VtZW50
KCkgfHwgZG9jdHlwZS0+aW1wbCgpICE9IHRoaXMpKSB7CisgICAgaWYgKGRvY3R5cGUgJiYgKGRv
Y3R5cGUtPmdldERvY3VtZW50KCkgfHwgZG9jdHlwZS0+aW1wbGVtZW50YXRpb24oKSAhPSB0aGlz
KSkgewogICAgICAgICBleGNlcHRpb25jb2RlID0gRE9NRXhjZXB0aW9uOjpXUk9OR19ET0NVTUVO
VF9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTMzMywxMyArMzM4LDYgQEAgSFRN
TERvY3VtZW50SW1wbCAqRE9NSW1wbGVtZW50YXRpb25JbXBsOgogICAgIHJldHVybiBuZXcgSFRN
TERvY3VtZW50SW1wbCh0aGlzLCB2KTsKIH0KIAotI2lmIFNWR19TVVBQT1JUCi1Eb2N1bWVudElt
cGwgKkRPTUltcGxlbWVudGF0aW9uSW1wbDo6Y3JlYXRlS0RPTURvY3VtZW50KCBLSFRNTFZpZXcg
KnYgKQotewotICAgIHJldHVybiBuZXcgS0RPTURvY3VtZW50V3JhcHBlckltcGwodGhpcywgdik7
Ci19Ci0jZW5kaWYKLQogRE9NSW1wbGVtZW50YXRpb25JbXBsICpET01JbXBsZW1lbnRhdGlvbklt
cGw6Omluc3RhbmNlKCkKIHsKICAgICBpZiAoIW1faW5zdGFuY2UpIHsKQEAgLTM1MCw2ICszNDgs
MTggQEAgRE9NSW1wbGVtZW50YXRpb25JbXBsICpET01JbXBsZW1lbnRhdGlvbgogICAgIHJldHVy
biBtX2luc3RhbmNlOwogfQogCitib29sIERPTUltcGxlbWVudGF0aW9uSW1wbDo6aXNYTUxNSU1F
VHlwZShjb25zdCBET01TdHJpbmcmIG1pbWVUeXBlKQoreworICAgIGlmIChtaW1lVHlwZSA9PSAi
dGV4dC94bWwiIHx8IG1pbWVUeXBlID09ICJhcHBsaWNhdGlvbi94bWwiIHx8IG1pbWVUeXBlID09
ICJhcHBsaWNhdGlvbi94aHRtbCt4bWwiIHx8CisgICAgICAgIG1pbWVUeXBlID09ICJ0ZXh0L3hz
bCIgfHwgbWltZVR5cGUgPT0gImFwcGxpY2F0aW9uL3Jzcyt4bWwiIHx8IG1pbWVUeXBlID09ICJh
cHBsaWNhdGlvbi9hdG9tK3htbCIKKyNpZiBTVkdfU1VQUE9SVAorICAgICAgICB8fCBtaW1lVHlw
ZSA9PSAiaW1hZ2Uvc3ZnK3htbCIKKyNlbmRpZgorICAgICAgICApCisgICAgICAgIHJldHVybiB0
cnVlOworICAgIHJldHVybiBmYWxzZTsKK30KKwogSFRNTERvY3VtZW50SW1wbCAqRE9NSW1wbGVt
ZW50YXRpb25JbXBsOjpjcmVhdGVIVE1MRG9jdW1lbnQoY29uc3QgRE9NU3RyaW5nICZ0aXRsZSkK
IHsKICAgICBIVE1MRG9jdW1lbnRJbXBsICpkID0gY3JlYXRlSFRNTERvY3VtZW50KCAwIC8qICMj
IyBjcmVhdGUgYSB2aWV3IG90aGVyd2lzZSBpdCBkb2Vzbid0IHdvcmsgKi8pOwpAQCAtNTg3LDcg
KzU5Nyw3IEBAIERvY3VtZW50VHlwZUltcGwgKkRvY3VtZW50SW1wbDo6ZG9jdHlwZSgKICAgICBy
ZXR1cm4gbV9kb2NUeXBlLmdldCgpOwogfQogCi1ET01JbXBsZW1lbnRhdGlvbkltcGwgKkRvY3Vt
ZW50SW1wbDo6aW1wbCgpIGNvbnN0CitET01JbXBsZW1lbnRhdGlvbkltcGwgKkRvY3VtZW50SW1w
bDo6aW1wbGVtZW50YXRpb24oKSBjb25zdAogewogICAgIHJldHVybiBtX2ltcGxlbWVudGF0aW9u
OwogfQpAQCAtNzQwLDE5ICs3NTAsMzAgQEAgRWxlbWVudEltcGwgKkRvY3VtZW50SW1wbDo6Y3Jl
YXRlRWxlbWVudAogICAgIH0KIAogICAgIEVsZW1lbnRJbXBsICplID0gMDsKKyAgICBRdWFsaWZp
ZWROYW1lIHFOYW1lID0gUXVhbGlmaWVkTmFtZShBdG9taWNTdHJpbmcocHJlZml4KSwgQXRvbWlj
U3RyaW5nKGxvY2FsTmFtZSksIEF0b21pY1N0cmluZyhfbmFtZXNwYWNlVVJJKSk7CiAgICAgCiAg
ICAgLy8gRklYTUU6IFVzZSByZWdpc3RlcmVkIG5hbWVzcGFjZXMgYW5kIGxvb2sgdXAgaW4gYSBo
YXNoIHRvIGZpbmQgdGhlIHJpZ2h0IGZhY3RvcnkuCiAgICAgaWYgKF9uYW1lc3BhY2VVUkkgPT0g
eGh0bWxOYW1lc3BhY2VVUkkpIHsKLSAgICAgICAgZSA9IEhUTUxFbGVtZW50RmFjdG9yeTo6Y3Jl
YXRlSFRNTEVsZW1lbnQoQXRvbWljU3RyaW5nKGxvY2FsTmFtZSksIHRoaXMsIDAsIGZhbHNlKTsK
KyAgICAgICAgZSA9IEhUTUxFbGVtZW50RmFjdG9yeTo6Y3JlYXRlSFRNTEVsZW1lbnQocU5hbWUu
bG9jYWxOYW1lKCksIHRoaXMsIDAsIGZhbHNlKTsKKyAgICAgICAgaWYgKGUgJiYgIXByZWZpeC5p
c051bGwoKSkgeworICAgICAgICAgICAgZS0+c2V0UHJlZml4KHFOYW1lLnByZWZpeCgpLCBleGNl
cHRpb25jb2RlKTsKKyAgICAgICAgICAgIGlmIChleGNlcHRpb25jb2RlKQorICAgICAgICAgICAg
ICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorI2lmZGVmIFNWR19TVVBQT1JUCisgICAg
ZWxzZSBpZiAoX25hbWVzcGFjZVVSSSA9PSBLU1ZHOjpTVkdOYW1lczo6c3ZnTmFtZXNwYWNlVVJJ
KSB7CisgICAgICAgIGUgPSBLU1ZHOjpTVkdFbGVtZW50RmFjdG9yeTo6Y3JlYXRlU1ZHRWxlbWVu
dChxTmFtZSwgdGhpcywgZmFsc2UpOwogICAgICAgICBpZiAoZSAmJiAhcHJlZml4LmlzTnVsbCgp
KSB7Ci0gICAgICAgICAgICBlLT5zZXRQcmVmaXgoQXRvbWljU3RyaW5nKHByZWZpeCksIGV4Y2Vw
dGlvbmNvZGUpOworICAgICAgICAgICAgZS0+c2V0UHJlZml4KHFOYW1lLnByZWZpeCgpLCBleGNl
cHRpb25jb2RlKTsKICAgICAgICAgICAgIGlmIChleGNlcHRpb25jb2RlKQogICAgICAgICAgICAg
ICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAgfQorI2VuZGlmCiAgICAgCiAgICAgaWYgKCFl
KQotICAgICAgICBlID0gbmV3IEVsZW1lbnRJbXBsKFF1YWxpZmllZE5hbWUoQXRvbWljU3RyaW5n
KHByZWZpeCksIEF0b21pY1N0cmluZyhsb2NhbE5hbWUpLCBBdG9taWNTdHJpbmcoX25hbWVzcGFj
ZVVSSSkpLCBnZXREb2N1bWVudCgpKTsKKyAgICAgICAgZSA9IG5ldyBFbGVtZW50SW1wbChxTmFt
ZSwgZ2V0RG9jdW1lbnQoKSk7CiAgICAgCiAgICAgcmV0dXJuIGU7CiB9CkBAIC0yMTYwLDYgKzIx
ODEsMzEgQEAgdm9pZCBEb2N1bWVudEltcGw6OnJlY2FsY1N0eWxlU2VsZWN0b3IoKQogICAgICAg
ICAgICAgICAgICAgICBzaGVldCA9IDA7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKyNpZiBT
VkdfU1VQUE9SVAorICAgICAgICBlbHNlIGlmIChuLT5pc1NWR0VsZW1lbnQoKSAmJiBuLT5oYXNU
YWdOYW1lKEtTVkc6OlNWR05hbWVzOjpzdHlsZVRhZykpIHsKKyAgICAgICAgICAgIFFTdHJpbmcg
dGl0bGU7CisgICAgICAgICAgICAvLyA8U1RZTEU+IGVsZW1lbnQKKyAgICAgICAgICAgIEtTVkc6
OlNWR1N0eWxlRWxlbWVudEltcGwgKnMgPSBzdGF0aWNfY2FzdDxLU1ZHOjpTVkdTdHlsZUVsZW1l
bnRJbXBsKj4obik7CisgICAgICAgICAgICBpZiAoIXMtPmlzTG9hZGluZygpKSB7CisgICAgICAg
ICAgICAgICAgc2hlZXQgPSBzLT5zaGVldCgpOworICAgICAgICAgICAgICAgIGlmKHNoZWV0KQor
ICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IERPTTo6RE9NU3RyaW5nKHMtPmdldEF0dHJpYnV0
ZShLU1ZHOjpTVkdOYW1lczo6dGl0bGVBdHRyKSkucXN0cmluZygpOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBpZiAoIXRpdGxlLmlzRW1wdHkoKSAmJiBtX3ByZWZlcnJlZFN0eWxlc2hl
ZXRTZXQuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIG1fcHJlZmVycmVkU3R5bGVzaGVldFNl
dCA9IHZpZXcoKS0+cGFydCgpLT5kLT5tX3NoZWV0VXNlZCA9IHRpdGxlOworCisgICAgICAgICAg
ICBpZiAoIXRpdGxlLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIGlmICh0aXRsZSAhPSBt
X3ByZWZlcnJlZFN0eWxlc2hlZXRTZXQpCisgICAgICAgICAgICAgICAgICAgIHNoZWV0ID0gMDsg
Ly8gZG9uJ3QgdXNlIGl0CisKKyAgICAgICAgICAgICAgICB0aXRsZSA9IHRpdGxlLnJlcGxhY2Uo
JyYnLCBRU3RyaW5nOjpmcm9tTGF0aW4xKCImJiIpKTsKKworICAgICAgICAgICAgICAgIGlmICgh
bV9hdmFpbGFibGVTaGVldHMuY29udGFpbnModGl0bGUpKQorICAgICAgICAgICAgICAgICAgICBt
X2F2YWlsYWJsZVNoZWV0cy5hcHBlbmQodGl0bGUpOworICAgICAgICAgICAgfQorICAgICAgIH0K
KyNlbmRpZgogCiAgICAgICAgIGlmIChzaGVldCkgewogICAgICAgICAgICAgc2hlZXQtPnJlZigp
OwpAQCAtMjQyOCw2ICsyNDc0LDEyIEBAIEV2ZW50SW1wbCAqRG9jdW1lbnRJbXBsOjpjcmVhdGVF
dmVudChjb24KICAgICAgICAgcmV0dXJuIG5ldyBLZXlib2FyZEV2ZW50SW1wbCgpOwogICAgIGVs
c2UgaWYgKGV2ZW50VHlwZSA9PSAiSFRNTEV2ZW50cyIgfHwgZXZlbnRUeXBlID09ICJFdmVudCIg
fHwgZXZlbnRUeXBlID09ICJFdmVudHMiKQogICAgICAgICByZXR1cm4gbmV3IEV2ZW50SW1wbCgp
OworI2lmZGVmIFNWR19TVVBQT1JUCisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09ICJTVkdFdmVu
dHMiKQorICAgICAgICByZXR1cm4gbmV3IEV2ZW50SW1wbCgpOworICAgIGVsc2UgaWYoZXZlbnRU
eXBlID09ICJTVkdab29tRXZlbnRzIikKKyAgICAgICAgcmV0dXJuIG5ldyBLU1ZHOjpTVkdab29t
RXZlbnRJbXBsKCk7CisjZW5kaWYKICAgICBlbHNlIHsKICAgICAgICAgZXhjZXB0aW9uY29kZSA9
IERPTUV4Y2VwdGlvbjo6Tk9UX1NVUFBPUlRFRF9FUlI7CiAgICAgICAgIHJldHVybiAwOwpAQCAt
MjYxMSw2ICsyNjYzLDE0IEBAIEVsZW1lbnRJbXBsICpEb2N1bWVudEltcGw6Om93bmVyRWxlbWVu
dCgKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RWxlbWVudEltcGwgKj4ocmVuZGVyUGFydC0+ZWxl
bWVudCgpKTsKIH0KIAorRE9NU3RyaW5nIERvY3VtZW50SW1wbDo6cmVmZXJyZXIoKSBjb25zdAor
eworICAgIGlmICggcGFydCgpICkKKyAgICAgICAgcmV0dXJuIEtXUShwYXJ0KCkpLT5pbmNvbWlu
Z1JlZmVycmVyKCk7CisgICAgCisgICAgcmV0dXJuIERPTVN0cmluZygpOworfQorCiBET01TdHJp
bmcgRG9jdW1lbnRJbXBsOjpkb21haW4oKSBjb25zdAogewogICAgIGlmICggbV9kb21haW4uaXNF
bXB0eSgpICkgLy8gbm90IHNldCB5ZXQgKHdlIHNldCBpdCBvbiBkZW1hbmQgdG8gc2F2ZSB0aW1l
IGFuZCBzcGFjZSkKSW5kZXg6IGtodG1sL3htbC9kb21fZG9jaW1wbC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3htbC9kb21fZG9jaW1wbC5oLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjEzNwpkaWZmIC1wIC11IC1yMS4xMzcga2h0bWwveG1sL2RvbV9kb2Np
bXBsLmgKLS0tIGtodG1sL3htbC9kb21fZG9jaW1wbC5oCTE1IE5vdiAyMDA1IDAyOjA1OjQzIC0w
MDAwCTEuMTM3CisrKyBraHRtbC94bWwvZG9tX2RvY2ltcGwuaAkxNyBOb3YgMjAwNSAyMDo1Nzox
MCAtMDAwMApAQCAtMTM2LDcgKzEzNiw3IEBAIHB1YmxpYzoKICAgICB+RE9NSW1wbGVtZW50YXRp
b25JbXBsKCk7CiAKICAgICAvLyBET00gbWV0aG9kcyAmIGF0dHJpYnV0ZXMgZm9yIERPTUltcGxl
bWVudGF0aW9uCi0gICAgYm9vbCBoYXNGZWF0dXJlICggY29uc3QgRE9NU3RyaW5nICZmZWF0dXJl
LCBjb25zdCBET01TdHJpbmcgJnZlcnNpb24gKTsKKyAgICBib29sIGhhc0ZlYXR1cmUoY29uc3Qg
RE9NU3RyaW5nJiBmZWF0dXJlLCBjb25zdCBET01TdHJpbmcmIHZlcnNpb24pIGNvbnN0OwogICAg
IERvY3VtZW50VHlwZUltcGwgKmNyZWF0ZURvY3VtZW50VHlwZSggY29uc3QgRE9NU3RyaW5nICZx
dWFsaWZpZWROYW1lLCBjb25zdCBET01TdHJpbmcgJnB1YmxpY0lkLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRE9NU3RyaW5nICZzeXN0ZW1JZCwgaW50
ICZleGNlcHRpb25jb2RlICk7CiAgICAgRG9jdW1lbnRJbXBsICpjcmVhdGVEb2N1bWVudCggY29u
c3QgRE9NU3RyaW5nICZuYW1lc3BhY2VVUkksIGNvbnN0IERPTVN0cmluZyAmcXVhbGlmaWVkTmFt
ZSwKQEAgLTE1MywxMyArMTUzLDEyIEBAIHB1YmxpYzoKICAgICAvLyBPdGhlciBtZXRob2RzIChu
b3QgcGFydCBvZiBET00pCiAgICAgRG9jdW1lbnRJbXBsICpjcmVhdGVEb2N1bWVudCggS0hUTUxW
aWV3ICp2ID0gMCApOwogICAgIEhUTUxEb2N1bWVudEltcGwgKmNyZWF0ZUhUTUxEb2N1bWVudCgg
S0hUTUxWaWV3ICp2ID0gMCApOwotI2lmIFNWR19TVVBQT1JUCi0gICAgRG9jdW1lbnRJbXBsICpj
cmVhdGVLRE9NRG9jdW1lbnQoIEtIVE1MVmlldyAqdiA9IDAgKTsKLSNlbmRpZgogCiAgICAgLy8g
UmV0dXJucyB0aGUgc3RhdGljIGluc3RhbmNlIG9mIHRoaXMgY2xhc3MgLSBvbmx5IG9uZSBpbnN0
YW5jZSBvZiB0aGlzIGNsYXNzIHNob3VsZAogICAgIC8vIGV2ZXIgYmUgcHJlc2VudCwgYW5kIGlz
IHVzZWQgYXMgYSBmYWN0b3J5IG1ldGhvZCBmb3IgY3JlYXRpbmcgRG9jdW1lbnRJbXBsIG9iamVj
dHMKICAgICBzdGF0aWMgRE9NSW1wbGVtZW50YXRpb25JbXBsICppbnN0YW5jZSgpOworICAgIAor
ICAgIHN0YXRpYyBib29sIGlzWE1MTUlNRVR5cGUoY29uc3QgRE9NU3RyaW5nJiBtaW1lVHlwZSk7
CiAKIHByb3RlY3RlZDoKICAgICBzdGF0aWMgRE9NSW1wbGVtZW50YXRpb25JbXBsICptX2luc3Rh
bmNlOwpAQCAtMTk2LDcgKzE5NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIERvY3VtZW50VHlw
ZUltcGwgKmRvY3R5cGUoKSBjb25zdDsgLy8gcmV0dXJucyAwIGZvciBIVE1MIGRvY3VtZW50cwog
ICAgIERvY3VtZW50VHlwZUltcGwgKnJlYWxEb2NUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9kb2NU
eXBlLmdldCgpOyB9CiAKLSAgICBET01JbXBsZW1lbnRhdGlvbkltcGwgKmltcGwoKSBjb25zdDsK
KyAgICBET01JbXBsZW1lbnRhdGlvbkltcGwgKmltcGxlbWVudGF0aW9uKCkgY29uc3Q7CiAgICAg
dmlydHVhbCBFbGVtZW50SW1wbCAqZG9jdW1lbnRFbGVtZW50KCkgY29uc3Q7CiAgICAgdmlydHVh
bCBFbGVtZW50SW1wbCAqY3JlYXRlRWxlbWVudChjb25zdCBET01TdHJpbmcgJnRhZ05hbWUsIGlu
dCAmZXhjZXB0aW9uY29kZSk7CiAgICAgRG9jdW1lbnRGcmFnbWVudEltcGwgKmNyZWF0ZURvY3Vt
ZW50RnJhZ21lbnQgKCk7CkBAIC01MjgsNyArNTI3LDggQEAgcHVibGljOgogICAgIC8vIFJldHVy
bnMgdGhlIG93bmluZyBlbGVtZW50IGluIHRoZSBwYXJlbnQgZG9jdW1lbnQuCiAgICAgLy8gUmV0
dXJucyAwIGlmIHRoaXMgaXMgdGhlIHRvcCBsZXZlbCBkb2N1bWVudC4KICAgICBFbGVtZW50SW1w
bCAqb3duZXJFbGVtZW50KCk7Ci0KKyAgICAKKyAgICBET01TdHJpbmcgcmVmZXJyZXIoKSBjb25z
dDsKICAgICBET01TdHJpbmcgZG9tYWluKCkgY29uc3Q7CiAgICAgdm9pZCBzZXREb21haW4oIGNv
bnN0IERPTVN0cmluZyAmbmV3RG9tYWluLCBib29sIGZvcmNlID0gZmFsc2UgKTsgLy8gbm90IHBh
cnQgb2YgdGhlIERPTQogCkBAIC04NTAsNyArODUwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Tm9kZUltcGwgKmNsb25lTm9kZShib29sIGRlZXApOwogCiAgICAgLy8gT3RoZXIgbWV0aG9kcyAo
bm90IHBhcnQgb2YgRE9NKQotICAgIERPTUltcGxlbWVudGF0aW9uSW1wbCAqaW1wbCgpIGNvbnN0
IHsgcmV0dXJuIG1faW1wbGVtZW50YXRpb24uZ2V0KCk7IH0KKyAgICBET01JbXBsZW1lbnRhdGlv
bkltcGwgKmltcGxlbWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9pbXBsZW1lbnRhdGlvbi5n
ZXQoKTsgfQogICAgIHZpcnR1YWwgRE9NU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7CiAKIHByaXZh
dGU6CkluZGV4OiBraHRtbC94bWwvZG9tX2VsZW1lbnRpbXBsLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC94bWwvZG9tX2VsZW1lbnRpbXBsLmNwcCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS45MQpkaWZmIC1wIC11IC1yMS45MSBraHRtbC94bWwvZG9tX2Vs
ZW1lbnRpbXBsLmNwcAotLS0ga2h0bWwveG1sL2RvbV9lbGVtZW50aW1wbC5jcHAJMTUgTm92IDIw
MDUgMDI6MDU6NDMgLTAwMDAJMS45MQorKysga2h0bWwveG1sL2RvbV9lbGVtZW50aW1wbC5jcHAJ
MTcgTm92IDIwMDUgMjA6NTc6MTEgLTAwMDAKQEAgLTM3LDYgKzM3LDEwIEBACiAKICNpbmNsdWRl
ICJodG1sL2h0bWxwYXJzZXIuaCIKIAorI2lmIFNWR19TVVBQT1JUCisjaW5jbHVkZSAiU1ZHTmFt
ZXMuaCIKKyNlbmRpZgorCiAjaW5jbHVkZSAicmVuZGVyaW5nL3JlbmRlcl9jYW52YXMuaCIKICNp
bmNsdWRlICJjc3MvY3NzX3ZhbHVlaW1wbC5oIgogI2luY2x1ZGUgImNzcy9jc3Nwcm9wZXJ0aWVz
LmgiCkBAIC0zMzcsNiArMzQxLDExIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgRWxlbWVudEltcGw6
OmdldElEQXQKICAgICByZXR1cm4gbmFtZWRBdHRyTWFwID8gbmFtZWRBdHRyTWFwLT5pZCgpIDog
bnVsbEF0b207CiB9CiAKK2Jvb2wgRWxlbWVudEltcGw6Omhhc0F0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lKSBjb25zdAoreworICAgIHJldHVybiBoYXNBdHRyaWJ1dGVOUyhuYW1l
Lm5hbWVzcGFjZVVSSSgpLCBuYW1lLmxvY2FsTmFtZSgpKTsKK30KKwogY29uc3QgQXRvbWljU3Ry
aW5nJiBFbGVtZW50SW1wbDo6Z2V0QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUp
IGNvbnN0CiB7CiAgICAgaWYgKG5hbWUgPT0gc3R5bGVBdHRyKQpAQCAtNTEyLDYgKzUyMSwxNiBA
QCB2b2lkIEVsZW1lbnRJbXBsOjpyZW1vdmVkRnJvbURvY3VtZW50KCkKICAgICBDb250YWluZXJO
b2RlSW1wbDo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpOwogfQogCisjaWYgU1ZHX1NVUFBPUlQKK2Jv
b2wgRWxlbWVudEltcGw6OnJlbmRlcmVySXNOZWVkZWQoa2h0bWw6OlJlbmRlclN0eWxlICopCit7
CisgICAgLy8gU1ZHIGlnbm9yZXMgYXJiaXRyYXJ5IHhtbCBlbGVtZW50cyBpbiBpdHMgcmVuZGVy
IHRyZWUgY29udHJhcnkgdG8gdGhlIG5vcm1hbCBDU1MvWE1MIGJlaGF2aW9yLgorICAgIGlmICgo
S1NWRzo6U1ZHTmFtZXM6OnN2Z05hbWVzcGFjZVVSSSA9PSBwYXJlbnROb2RlKCktPm5hbWVzcGFj
ZVVSSSgpKSAmJiAhcGFyZW50Tm9kZSgpLT5oYXNUYWdOYW1lKEtTVkc6OlNWR05hbWVzOjpmb3Jl
aWduT2JqZWN0VGFnKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOwor
fQorI2VuZGlmCisKIHZvaWQgRWxlbWVudEltcGw6OmF0dGFjaCgpCiB7CiAjaWYgU1BFRURfREVC
VUcgPCAxCkluZGV4OiBraHRtbC94bWwvZG9tX2VsZW1lbnRpbXBsLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg
ZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveG1sL2RvbV9lbGVtZW50aW1wbC5oLHYKcmV0
cmlldmluZyByZXZpc2lvbiAxLjYwCmRpZmYgLXAgLXUgLXIxLjYwIGtodG1sL3htbC9kb21fZWxl
bWVudGltcGwuaAotLS0ga2h0bWwveG1sL2RvbV9lbGVtZW50aW1wbC5oCTE1IE5vdiAyMDA1IDAy
OjA1OjQzIC0wMDAwCTEuNjAKKysrIGtodG1sL3htbC9kb21fZWxlbWVudGltcGwuaAkxNyBOb3Yg
MjAwNSAyMDo1NzoxMSAtMDAwMApAQCAtMTcxLDYgKzE3MSw3IEBAIHB1YmxpYzoKICAgICAvLyBV
c2VkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IGFuIGVsZW1lbnQgaGFzIGEg
Z2l2ZW4gQ1NTIGNsYXNzLgogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nTGlzdCogZ2V0
Q2xhc3NMaXN0KCkgY29uc3Q7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBnZXRJREF0dHJpYnV0
ZSgpIGNvbnN0OworICAgIGJvb2wgaGFzQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUpIGNvbnN0OwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZ2V0QXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0OwogICAgIHZvaWQgc2V0QXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIERPTVN0cmluZ0ltcGwqIHZhbHVlLCBpbnQgJmV4Y2VwdGlvbmNv
ZGUpOwogICAgIHZvaWQgcmVtb3ZlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGludCAmZXhjZXB0aW9uY29kZSk7CkBAIC0yMzQsNiArMjM1LDkgQEAgcHVibGljOgogICAgIC8v
IFN0YXRlIG9mIHRoZSBlbGVtZW50LgogICAgIHZpcnR1YWwgUVN0cmluZyBzdGF0ZSgpIHsgcmV0
dXJuIFFTdHJpbmc6Om51bGw7IH0KIAorI2lmIFNWR19TVVBQT1JUCisgICAgdmlydHVhbCBib29s
IHJlbmRlcmVySXNOZWVkZWQoa2h0bWw6OlJlbmRlclN0eWxlICopOworI2VuZGlmCiAgICAgdmly
dHVhbCB2b2lkIGF0dGFjaCgpOwogICAgIHZpcnR1YWwga2h0bWw6OlJlbmRlclN0eWxlICpzdHls
ZUZvclJlbmRlcmVyKGtodG1sOjpSZW5kZXJPYmplY3QgKnBhcmVudCk7CiAgICAgdmlydHVhbCBr
aHRtbDo6UmVuZGVyT2JqZWN0ICpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSAqLCBraHRtbDo6
UmVuZGVyU3R5bGUgKik7CkluZGV4OiBraHRtbC94bWwvZG9tX25vZGVpbXBsLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC94bWwvZG9tX25vZGVpbXBsLmNw
cCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yMTEKZGlmZiAtcCAtdSAtcjEuMjExIGtodG1sL3ht
bC9kb21fbm9kZWltcGwuY3BwCi0tLSBraHRtbC94bWwvZG9tX25vZGVpbXBsLmNwcAkxNyBOb3Yg
MjAwNSAwMDozMjozMiAtMDAwMAkxLjIxMQorKysga2h0bWwveG1sL2RvbV9ub2RlaW1wbC5jcHAJ
MTcgTm92IDIwMDUgMjA6NTc6MTUgLTAwMDAKQEAgLTE0MjMsNyArMTQyMyw3IEBAIHZvaWQgTm9k
ZUltcGw6OmNyZWF0ZVJlbmRlcmVySWZOZWVkZWQoKQogICAgIAogICAgIE5vZGVJbXBsICpwYXJl
bnQgPSBwYXJlbnROb2RlKCk7ICAgIAogICAgIGFzc2VydChwYXJlbnQpOwotICAgIAorICAgICAg
ICAKICAgICBSZW5kZXJPYmplY3QgKnBhcmVudFJlbmRlcmVyID0gcGFyZW50LT5yZW5kZXJlcigp
OwogICAgIGlmIChwYXJlbnRSZW5kZXJlciAmJiBwYXJlbnRSZW5kZXJlci0+Y2FuSGF2ZUNoaWxk
cmVuKCkpIHsKICAgICAgICAgUmVuZGVyU3R5bGUgKnN0eWxlID0gc3R5bGVGb3JSZW5kZXJlcihw
YXJlbnRSZW5kZXJlcik7CkBAIC0xNDQwLDggKzE0NDAsMTAgQEAgdm9pZCBOb2RlSW1wbDo6Y3Jl
YXRlUmVuZGVyZXJJZk5lZWRlZCgpCiAgICAgICAgIGlmIChyZW5kZXJlcklzTmVlZGVkKHN0eWxl
KSkgewogI2VuZGlmCiAgICAgICAgICAgICBtX3JlbmRlciA9IGNyZWF0ZVJlbmRlcmVyKGdldERv
Y3VtZW50KCktPnJlbmRlckFyZW5hKCksIHN0eWxlKTsKLSAgICAgICAgICAgIG1fcmVuZGVyLT5z
ZXRTdHlsZShzdHlsZSk7Ci0gICAgICAgICAgICBwYXJlbnRSZW5kZXJlci0+YWRkQ2hpbGQobV9y
ZW5kZXIsIG5leHRSZW5kZXJlcigpKTsKKyAgICAgICAgICAgIGlmIChtX3JlbmRlcikgeworICAg
ICAgICAgICAgICAgIG1fcmVuZGVyLT5zZXRTdHlsZShzdHlsZSk7CisgICAgICAgICAgICAgICAg
cGFyZW50UmVuZGVyZXItPmFkZENoaWxkKG1fcmVuZGVyLCBuZXh0UmVuZGVyZXIoKSk7CisgICAg
ICAgICAgICB9CiAjaWZuZGVmIEtIVE1MX05PX1hCTAogICAgICAgICB9IC8vIGF2b2lkIGNvbmZ1
c2luZyB0aGUgY2hhbmdlIGxvZyBjb2RlIHBhcnNlciBieSBoYXZpbmcgdHdvIGNsb3NlIGJyYWNl
cyB0byBtYXRjaCB0aGUgdHdvIG9wZW4gYnJhY2VzIGFib3ZlCiAjZWxzZQpJbmRleDoga2h0bWwv
eG1sL2RvbV9ub2RlaW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3Jl
L2todG1sL3htbC9kb21fbm9kZWltcGwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMTQKZGlm
ZiAtcCAtdSAtcjEuMTE0IGtodG1sL3htbC9kb21fbm9kZWltcGwuaAotLS0ga2h0bWwveG1sL2Rv
bV9ub2RlaW1wbC5oCTE2IE5vdiAyMDA1IDA5OjQzOjEzIC0wMDAwCTEuMTE0CisrKyBraHRtbC94
bWwvZG9tX25vZGVpbXBsLmgJMTcgTm92IDIwMDUgMjA6NTc6MTYgLTAwMDAKQEAgLTExMiw2ICsx
MTIsOSBAQCBwdWJsaWM6CiAgICAgLy8gT3RoZXIgbWV0aG9kcyAobm90IHBhcnQgb2YgRE9NKQog
ICAgIHZpcnR1YWwgYm9vbCBpc0VsZW1lbnROb2RlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaXNIVE1MRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CisjaWYgU1ZHX1NVUFBPUlQKKyAgICB2aXJ0dWFsIGJvb2wgaXNTVkdFbGVtZW50KCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgogICAgIHZpcnR1YWwgYm9vbCBpc1N0eWxlZEVsZW1l
bnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0F0dHJpYnV0
ZU5vZGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1RleHRO
b2RlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6IGtodG1sL3htbC9kb21fc3RyaW5n
aW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveG1s
L2RvbV9zdHJpbmdpbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zMgpkaWZmIC1wIC11
IC1yMS4zMiBraHRtbC94bWwvZG9tX3N0cmluZ2ltcGwuY3BwCi0tLSBraHRtbC94bWwvZG9tX3N0
cmluZ2ltcGwuY3BwCTMgT2N0IDIwMDUgMjE6MTI6NTMgLTAwMDAJMS4zMgorKysga2h0bWwveG1s
L2RvbV9zdHJpbmdpbXBsLmNwcAkxNyBOb3YgMjAwNSAyMDo1NzoxNiAtMDAwMApAQCAtNjAsNiAr
NjAsMjQgQEAgRE9NU3RyaW5nSW1wbDo6RE9NU3RyaW5nSW1wbChjb25zdCBRQ2hhcgogICAgIH0K
IH0KIAorRE9NU3RyaW5nSW1wbDo6RE9NU3RyaW5nSW1wbChjb25zdCBRU3RyaW5nICZzdHJpbmcp
Cit7CisgICAgY29uc3QgUUNoYXIgKnN0ciA9IHN0cmluZy51bmljb2RlKCk7CisgICAgdW5zaWdu
ZWQgbGVuID0gc3RyaW5nLmxlbmd0aCgpOworICAgIF9oYXNoID0gMDsKKyAgICBfaW5UYWJsZSA9
IGZhbHNlOworICAgIGJvb2wgaGF2ZXN0ciA9IHN0ciAmJiBsZW47CisgICAgcyA9IFFUX0FMTE9D
X1FDSEFSX1ZFQyhoYXZlc3RyID8gbGVuIDogMSk7CisgICAgaWYgKGhhdmVzdHIpIHsKKyAgICAg
ICAgbWVtY3B5KCBzLCBzdHIsIGxlbiAqIHNpemVvZihRQ2hhcikgKTsKKyAgICAgICAgbCA9IGxl
bjsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBjcmFzaCBwcm90ZWN0aW9uCisgICAgICAgIHNb
MF0gPSAweDA7CisgICAgICAgIGwgPSAwOworICAgIH0KK30KKwogRE9NU3RyaW5nSW1wbDo6RE9N
U3RyaW5nSW1wbChjb25zdCBjaGFyICpzdHIpCiB7CiAgICAgX2hhc2ggPSAwOwpJbmRleDoga2h0
bWwveG1sL2RvbV9zdHJpbmdpbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dl
YkNvcmUva2h0bWwveG1sL2RvbV9zdHJpbmdpbXBsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
MTcKZGlmZiAtcCAtdSAtcjEuMTcga2h0bWwveG1sL2RvbV9zdHJpbmdpbXBsLmgKLS0tIGtodG1s
L3htbC9kb21fc3RyaW5naW1wbC5oCTMgT2N0IDIwMDUgMjE6MTI6NTMgLTAwMDAJMS4xNworKysg
a2h0bWwveG1sL2RvbV9zdHJpbmdpbXBsLmgJMTcgTm92IDIwMDUgMjA6NTc6MTYgLTAwMDAKQEAg
LTQ1LDYgKzQ1LDcgQEAgcHVibGljOgogICAgIERPTVN0cmluZ0ltcGwoY29uc3QgY2hhciAqc3Ry
KTsKICAgICBET01TdHJpbmdJbXBsKGNvbnN0IGNoYXIgKnN0ciwgdW5zaWduZWQgaW50IGxlbik7
CiAgICAgRE9NU3RyaW5nSW1wbChjb25zdCBRQ2hhciAmY2gpOworICAgIERPTVN0cmluZ0ltcGwo
Y29uc3QgUVN0cmluZyAmc3RyKTsKICAgICB+RE9NU3RyaW5nSW1wbCgpOwogICAgIAogICAgIHVu
c2lnbmVkIGhhc2goKSBjb25zdCB7IGlmIChfaGFzaCA9PSAwKSBfaGFzaCA9IGNvbXB1dGVIYXNo
KHMsIGwpOyByZXR1cm4gX2hhc2g7IH0KSW5kZXg6IGtodG1sL3htbC9kb21fdGV4dGltcGwuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3htbC9kb21fdGV4
dGltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjM2CmRpZmYgLXAgLXUgLXIxLjM2IGto
dG1sL3htbC9kb21fdGV4dGltcGwuY3BwCi0tLSBraHRtbC94bWwvZG9tX3RleHRpbXBsLmNwcAk4
IE5vdiAyMDA1IDA4OjExOjEzIC0wMDAwCTEuMzYKKysrIGtodG1sL3htbC9kb21fdGV4dGltcGwu
Y3BwCTE3IE5vdiAyMDA1IDIwOjU3OjE3IC0wMDAwCkBAIC0zMSw2ICszMSwxMCBAQAogCiAjaW5j
bHVkZSAicmVuZGVyaW5nL3JlbmRlcl90ZXh0LmgiCiAKKyNpZiBTVkdfU1VQUE9SVAorI2luY2x1
ZGUgIlNWR05hbWVzLmgiCisjZW5kaWYKKwogI2luY2x1ZGUgPGtkZWJ1Zy5oPgogCiB1c2luZyBu
YW1lc3BhY2UgRE9NOwpAQCAtNDU0LDYgKzQ1OCwxMSBAQCBib29sIFRleHRJbXBsOjpyZW5kZXJl
cklzTmVlZGVkKFJlbmRlclN0CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAg
IAorI2lmIFNWR19TVVBQT1JUCisgICAgaWYgKHBhci0+ZWxlbWVudCgpLT5uYW1lc3BhY2VVUkko
KSA9PSBLU1ZHOjpTVkdOYW1lczo6c3ZnTmFtZXNwYWNlVVJJKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisjZW5kaWYKKyAgICAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApJbmRleDoga2h0bWwveHNs
L3hzbHRfcHJvY2Vzc29yaW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dl
YkNvcmUva2h0bWwveHNsL3hzbHRfcHJvY2Vzc29yaW1wbC5jcHAsdgpyZXRyaWV2aW5nIHJldmlz
aW9uIDEuMTUKZGlmZiAtcCAtdSAtcjEuMTUga2h0bWwveHNsL3hzbHRfcHJvY2Vzc29yaW1wbC5j
cHAKLS0tIGtodG1sL3hzbC94c2x0X3Byb2Nlc3NvcmltcGwuY3BwCTggTm92IDIwMDUgMDg6MTE6
MTggLTAwMDAJMS4xNQorKysga2h0bWwveHNsL3hzbHRfcHJvY2Vzc29yaW1wbC5jcHAJMTcgTm92
IDIwMDUgMjA6NTc6MTcgLTAwMDAKQEAgLTE4NSw5ICsxODUsOSBAQCBTaGFyZWRQdHI8RG9jdW1l
bnRJbXBsPiBYU0xUUHJvY2Vzc29ySW1wCiAKICAgICBTaGFyZWRQdHI8RG9jdW1lbnRJbXBsPiBy
ZXN1bHQ7CiAgICAgaWYgKHNvdXJjZU1JTUVUeXBlID09ICJ0ZXh0L2h0bWwiKQotICAgICAgICBy
ZXN1bHQgPSBvd25lckRvY3VtZW50LT5pbXBsKCktPmNyZWF0ZUhUTUxEb2N1bWVudCh2aWV3KTsK
KyAgICAgICAgcmVzdWx0ID0gb3duZXJEb2N1bWVudC0+aW1wbGVtZW50YXRpb24oKS0+Y3JlYXRl
SFRNTERvY3VtZW50KHZpZXcpOwogICAgIGVsc2UgewotICAgICAgICByZXN1bHQgPSBvd25lckRv
Y3VtZW50LT5pbXBsKCktPmNyZWF0ZURvY3VtZW50KHZpZXcpOworICAgICAgICByZXN1bHQgPSBv
d25lckRvY3VtZW50LT5pbXBsZW1lbnRhdGlvbigpLT5jcmVhdGVEb2N1bWVudCh2aWV3KTsKICAg
ICAgICAgaWYgKHNvdXJjZU1JTUVUeXBlID09ICJ0ZXh0L3BsYWluIikKICAgICAgICAgICAgIHRy
YW5zZm9ybVRleHRTdHJpbmdUb1hIVE1MRG9jdW1lbnRTdHJpbmcoZG9jdW1lbnRTb3VyY2UpOwog
ICAgIH0KSW5kZXg6IGt3cS9ET00ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dl
YkNvcmUva3dxL0RPTS5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41NwpkaWZmIC1wIC11IC1y
MS41NyBrd3EvRE9NLm1tCi0tLSBrd3EvRE9NLm1tCTE2IE5vdiAyMDA1IDA5OjQzOjE0IC0wMDAw
CTEuNTcKKysrIGt3cS9ET00ubW0JMTcgTm92IDIwMDUgMjA6NTc6MjUgLTAwMDAKQEAgLTk3OCw3
ICs5NzgsNyBAQCBzdGF0aWMgTGlzdGVuZXJNYXAgKmxpc3RlbmVyTWFwOwogCiAtIChET01JbXBs
ZW1lbnRhdGlvbiAqKWltcGxlbWVudGF0aW9uCiB7Ci0gICAgcmV0dXJuIFtET01JbXBsZW1lbnRh
dGlvbiBfRE9NSW1wbGVtZW50YXRpb25XaXRoSW1wbDpbc2VsZiBfZG9jdW1lbnRJbXBsXS0+aW1w
bCgpXTsKKyAgICByZXR1cm4gW0RPTUltcGxlbWVudGF0aW9uIF9ET01JbXBsZW1lbnRhdGlvbldp
dGhJbXBsOltzZWxmIF9kb2N1bWVudEltcGxdLT5pbXBsZW1lbnRhdGlvbigpXTsKIH0KIAogLSAo
RE9NRWxlbWVudCAqKWRvY3VtZW50RWxlbWVudApJbmRleDoga3dxL0tXUVJlbmRlclRyZWVEZWJ1
Zy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUVJlbmRl
clRyZWVEZWJ1Zy5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDcKZGlmZiAtcCAtdSAtcjEu
NDcga3dxL0tXUVJlbmRlclRyZWVEZWJ1Zy5jcHAKLS0tIGt3cS9LV1FSZW5kZXJUcmVlRGVidWcu
Y3BwCTEzIE9jdCAyMDA1IDIyOjQ1OjU2IC0wMDAwCTEuNDcKKysrIGt3cS9LV1FSZW5kZXJUcmVl
RGVidWcuY3BwCTE3IE5vdiAyMDA1IDIwOjU3OjI2IC0wMDAwCkBAIC0zNyw2ICszNywxMyBAQAog
I2luY2x1ZGUgInJlbmRlcl9ici5oIgogI2luY2x1ZGUgIlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIK
IAorI2lmIFNWR19TVVBQT1JUCisjaW5jbHVkZSAiS0NhbnZhc1JlZ2lzdHJ5LmgiCisjaW5jbHVk
ZSAiS0NhbnZhc1RyZWVEZWJ1Zy5oIgorI2luY2x1ZGUgIktDYW52YXNJdGVtLmgiCisjaW5jbHVk
ZSAiS0NhbnZhc0NvbnRhaW5lci5oIgorI2VuZGlmCisKICNpbmNsdWRlICJLV1FLSFRNTFBhcnQu
aCIKICNpbmNsdWRlICJLV1FUZXh0U3RyZWFtLmgiCiAKQEAgLTYyLDEwICs2OSwxMiBAQCB1c2lu
ZyBraHRtbDo6VVBTVFJFQU07CiBzdGF0aWMgdm9pZCB3cml0ZUxheWVycyhRVGV4dFN0cmVhbSAm
dHMsIGNvbnN0IFJlbmRlckxheWVyKiByb290TGF5ZXIsIFJlbmRlckxheWVyKiBsLAogICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgUVJlY3QmIHBhaW50RGlydHlSZWN0LCBpbnQgaW5kZW50
PTApOwogCisjaWYgIVNWR19TVVBQT1JUCiBzdGF0aWMgUVRleHRTdHJlYW0gJm9wZXJhdG9yPDwo
UVRleHRTdHJlYW0gJnRzLCBjb25zdCBRUmVjdCAmcikKIHsKICAgICByZXR1cm4gdHMgPDwgImF0
ICgiIDw8IHIueCgpIDw8ICIsIiA8PCByLnkoKSA8PCAiKSBzaXplICIgPDwgci53aWR0aCgpIDw8
ICJ4IiA8PCByLmhlaWdodCgpOwogfQorI2VuZGlmCiAKIHN0YXRpYyB2b2lkIHdyaXRlSW5kZW50
KFFUZXh0U3RyZWFtICZ0cywgaW50IGluZGVudCkKIHsKQEAgLTI2MSw4ICsyNzAsMTkgQEAgc3Rh
dGljIHZvaWQgd3JpdGVUZXh0UnVuKFFUZXh0U3RyZWFtICZ0cwogICAgIAk8PCAiXG4iOyAKIH0K
IAotc3RhdGljIHZvaWQgd3JpdGUoUVRleHRTdHJlYW0gJnRzLCBjb25zdCBSZW5kZXJPYmplY3Qg
Jm8sIGludCBpbmRlbnQgPSAwKQordm9pZCB3cml0ZShRVGV4dFN0cmVhbSAmdHMsIGNvbnN0IFJl
bmRlck9iamVjdCAmbywgaW50IGluZGVudCkKIHsKKyNpZiBTVkdfU1VQUE9SVAorICAgIC8vIEZJ
WE1FOiAgQSBoYWNraXNoIHdheSB0byBkb2luZyBvdXIgb3duICJ2aXJ0dWFsIiBkaXNwYXRjaAor
ICAgIGlmIChvLmlzUmVuZGVyUGF0aCgpKSB7CisgICAgICAgIHdyaXRlKHRzLCBzdGF0aWNfY2Fz
dDxjb25zdCBSZW5kZXJQYXRoICY+KG8pLCBpbmRlbnQpOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIGlmIChvLmlzS0NhbnZhc0NvbnRhaW5lcigpKSB7CisgICAgICAgIHdyaXRlKHRzLCBz
dGF0aWNfY2FzdDxjb25zdCBLQ2FudmFzQ29udGFpbmVyICY+KG8pLCBpbmRlbnQpOworICAgICAg
ICByZXR1cm47CisgICAgfQorI2VuZGlmCiAgICAgd3JpdGVJbmRlbnQodHMsIGluZGVudCk7CiAg
ICAgCiAgICAgdHMgPDwgbyA8PCAiXG4iOwpAQCAtNDIxLDYgKzQ0MSwxMiBAQCBRU3RyaW5nIGV4
dGVybmFsUmVwcmVzZW50YXRpb24oUmVuZGVyT2JqCiAgICAgUVN0cmluZyBzOwogICAgIHsKICAg
ICAgICAgUVRleHRTdHJlYW0gdHMoJnMpOworI2lmIFNWR19TVVBQT1JUCisgICAgICAgIHRzLnBy
ZWNpc2lvbigyKTsKKyAgICAgICAgS0NhbnZhc1JlZ2lzdHJ5KiByZWdpc3RyeSA9IG8tPmNhbnZh
cygpLT5yZWdpc3RyeSgpOworICAgICAgICBpZiAocmVnaXN0cnkpCisgICAgICAgICAgICB0cyA8
PCAqKHJlZ2lzdHJ5KTsKKyNlbmRpZgogICAgICAgICBpZiAobykgewogICAgICAgICAgICAgby0+
Y2FudmFzKCktPnZpZXcoKS0+bGF5b3V0KCk7CiAgICAgICAgICAgICBSZW5kZXJMYXllciogbCA9
IG8tPmxheWVyKCk7CkluZGV4OiBrd3EvS1dRUmVuZGVyVHJlZURlYnVnLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUVJlbmRlclRyZWVEZWJ1Zy5oLHYKcmV0
cmlldmluZyByZXZpc2lvbiAxLjQKZGlmZiAtcCAtdSAtcjEuNCBrd3EvS1dRUmVuZGVyVHJlZURl
YnVnLmgKLS0tIGt3cS9LV1FSZW5kZXJUcmVlRGVidWcuaAk5IERlYyAyMDA0IDE5OjIxOjA5IC0w
MDAwCTEuNAorKysga3dxL0tXUVJlbmRlclRyZWVEZWJ1Zy5oCTE3IE5vdiAyMDA1IDIwOjU3OjI2
IC0wMDAwCkBAIC0yNiwxMiArMjYsMTUgQEAKICNpZmRlZiBfX2NwbHVzcGx1cwogCiAjaW5jbHVk
ZSAiS1dRU3RyaW5nLmgiCisjaW5jbHVkZSAiS1dRVGV4dFN0cmVhbS5oIgorI2luY2x1ZGUgInJl
bmRlcl9vYmplY3QuaCIKIAogbmFtZXNwYWNlIGtodG1sIHsKICAgICBjbGFzcyBSZW5kZXJPYmpl
Y3Q7CiB9CiAKIFFTdHJpbmcgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihraHRtbDo6UmVuZGVyT2Jq
ZWN0ICopOwordm9pZCB3cml0ZShRVGV4dFN0cmVhbSAmdHMsIGNvbnN0IGtodG1sOjpSZW5kZXJP
YmplY3QgJm8sIGludCBpbmRlbnQgPSAwKTsKIAogI2VuZGlmCiAK
</data>
<flag name="review"
          id="863"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>