<?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>67946</bug_id>
          
          <creation_ts>2011-09-12 11:46:09 -0700</creation_ts>
          <short_desc>Use WebCore platform interfaces for MediaStream API and PeerConnection</short_desc>
          <delta_ts>2023-08-23 07:58:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>CONFIGURATION CHANGED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>68460</dependson>
    
    <dependson>70233</dependson>
    
    <dependson>70895</dependson>
          <blocked>56459</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Adam Bergkvist">adam.bergkvist</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>agouaillard</cc>
    
    <cc>annevk</cc>
    
    <cc>ap</cc>
    
    <cc>arun.patole</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>fishd</cc>
    
    <cc>grunell</cc>
    
    <cc>harald</cc>
    
    <cc>jonathon</cc>
    
    <cc>per-erik.brodin</cc>
    
    <cc>pnormand</cc>
    
    <cc>richardleitch96</cc>
    
    <cc>sam</cc>
    
    <cc>s.choi</cc>
    
    <cc>sh9.choi</cc>
    
    <cc>syoichi</cc>
    
    <cc>tommyw</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>465702</commentid>
    <comment_count>0</comment_count>
      <attachid>107067</attachid>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2011-09-12 11:46:09 -0700</bug_when>
    <thetext>Created attachment 107067
patch for discussion

Most platforms would benefit from a WebCore platform interface design instead of the current approach with a WebKit client.

This is a snapshot with the platform independent files from our WebCore platform based design.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466217</commentid>
    <comment_count>1</comment_count>
      <attachid>107159</attachid>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2011-09-13 02:55:25 -0700</bug_when>
    <thetext>Created attachment 107159
patch for discussion (can be applied)

The previous patch contained diffs of moved files and thus could not be applied.

The diffs of the moved files will be provided in a separate attachment to make it easier to see the changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466219</commentid>
    <comment_count>2</comment_count>
      <attachid>107161</attachid>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2011-09-13 02:57:32 -0700</bug_when>
    <thetext>Created attachment 107161
diff of moved files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466290</commentid>
    <comment_count>3</comment_count>
      <attachid>107176</attachid>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2011-09-13 07:47:34 -0700</bug_when>
    <thetext>Created attachment 107176
design diagram</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466389</commentid>
    <comment_count>4</comment_count>
    <who name="Jonathon Jongsma (jonner)">jonathon</who>
    <bug_when>2011-09-13 10:53:04 -0700</bug_when>
    <thetext>any chance that you could give a brief textual overview of the design and how it&apos;s different?  That might help to spark the discussion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467736</commentid>
    <comment_count>5</comment_count>
    <who name="Arun Patole">arun.patole</who>
    <bug_when>2011-09-15 05:03:24 -0700</bug_when>
    <thetext>Hi,

I have looked at the patch attached to this bug and also had a look at the code that is already committed in Webkit. I think it is not only about the Webkit client design and WebCore platform abstractions but also about the level of details getting added to WebCore. Lot of details like camera preferences, peer connection handling, etc is getting added to WebCore where as it is left to the user agent(client) with the design already committed in WebKit. What details should be added and what should be left to the client will have different opinions as spec doesn&apos;t say much about it. Please correct me if I have misinterpreted anything. While adding more details to WebCore/Webkit, we also need to make sure that we are not restricting the implementation to video conferencing. Peer to peer component could separately be used for exchanging some other real time data and same is the case for recording components.

I think, the WebCore platform abstractions approach will suit well to most of the platforms but will take some extra efforts for chrome because of the sadboxed environment. But if it gets finalized, it needs to be fine tuned before commit(for example, small things like moving options parsing code from navigator to UserMediaController would make it look better:)) Code wise, I personally liked MediaStreamFrameController and MediaStreamController&apos;s request map over UserMediaController and callback bundles.

If the design is not finalized yet, comments from other ports(mac, qt, etc) contributers and maintainers would be useful. May be combining good things from both the designs would lead to a design that will suit well to most of the Webkit ports.

No matter which design is finalized, as mentioned earlier, we are interested in this feature and we would be glad to contribute in filling the missing gaps in implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467751</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2011-09-15 05:41:30 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Lot of details like camera preferences, peer connection handling, etc is getting added to WebCore where as it is left to the user agent(client) with the design already committed in WebKit. What details should be added and what should be left to the client will have different opinions as spec doesn&apos;t say much about it.

Both camera preferences and PeerConnection handling are in the specification. Generally, it&apos;s preferred to share as much code as possible - especially if it concerns standard related behavior since it helps to maintain consistency between ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467760</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2011-09-15 05:59:19 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; any chance that you could give a brief textual overview of the design and how it&apos;s different?  That might help to spark the discussion.

The main difference is that calls to low-level functions are made down to the WebCore platform, rather than up to a WebKit client (and to the browser). Additionally, we have put more of the logic from the specification in the shared WebCore code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467801</commentid>
    <comment_count>8</comment_count>
    <who name="Jonathon Jongsma (jonner)">jonathon</who>
    <bug_when>2011-09-15 07:40:10 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; The main difference is that calls to low-level functions are made down to the WebCore platform, rather than up to a WebKit client (and to the browser). Additionally, we have put more of the logic from the specification in the shared WebCore code.

Yeah, after I asked that question a few days ago I spent a bit of time studying the patch, and I must say that it looks like a major improvement in terms of implementing this stuff in other ports.  I&apos;m also interested in helping out on the gtk port implementation.  Any chance you have the rest of your gstreamer/gtk implementation code around somewhere I could look at?  (e.g. PeerHandlerPrivateGStreamer, etc)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467926</commentid>
    <comment_count>9</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2011-09-15 11:21:38 -0700</bug_when>
    <thetext>While there are much to like in this patch there are a few things I (the main commiter for this feature) would like to point out:

This patch completely removes the functionality that shuts down everything when a frame is moved/deleted or the page goes away before the frame etc. This is handled in the MediaStreamController and MediaStreamFrameController.

The current code will change quite drastically due to strong feedback; instead of passing around IDs the actual objects will be sent instead. Also some refactoring is done right now to move functionality to WebCore/platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468439</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2011-09-16 05:26:06 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; This patch completely removes the functionality that shuts down everything when a frame is moved/deleted or the page goes away before the frame etc. This is handled in the MediaStreamController and MediaStreamFrameController.
&gt; 

We kept UserMediaController from our branch instead of MediaStreamController and MediaStreamFrameController since the majority of the code in the latter two deal with relaying calls from the MediaStream API and PeerConnection to the WebKit page client (our controller only deals with functionality related to getUserMedia in this design). Although Navigator, UserMediaController and UserMediaClient have teardown procedures to cancel outstanding requests (to dismiss any open media selectors), e.g. when you navigate away from a page, you may be right that it is not sufficient in some special cases. Do you think that the approach with two controllers will be needed in this design as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468573</commentid>
    <comment_count>11</comment_count>
      <attachid>107159</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-09-16 10:20:49 -0700</bug_when>
    <thetext>Comment on attachment 107159
patch for discussion (can be applied)

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

This patch is too large to review, but I like the approach of moving a bunch of the code into WebCore/platform.  Renaming p2p to mediastream also seems beneficial, but a slightly separable concern.

I also like that you&apos;re using ActiveDOMObject rather than the Frame- and Page-level controller objects.  That&apos;s good improvement to the design.

&gt; Source/WebCore/platform/mediastream/PeerHandler.h:76
&gt; +class PeerHandlerClient {

These classes in WebCore/platform shouldn&apos;t be called Clients.  In WebKit, the client exist to talk with &quot;up&quot; to the WebKit Client, not &quot;down&quot; to the platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469287</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2011-09-19 01:50:02 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 107159 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=107159&amp;action=review
&gt; 
&gt; This patch is too large to review, but I like the approach of moving a bunch of the code into WebCore/platform.

Thanks for taking the time to look at the patch even though it&apos;s large. I knew that it&apos;s too large to be reviewed and that&apos;s why I labeled it &quot;patch for discussion&quot; (without review-flag and ChangeLog). The idea is to get people on board with the proposed changes and then submit smaller patches.

&gt; Renaming p2p to mediastream also seems beneficial, but a slightly separable concern.

We&apos;re not simply renaming p2p to mediastream, but also gathering various MediaStream-related files from WebCore/dom, WebCore/page and WebCore/platform in this new folder.

&gt; &gt; Source/WebCore/platform/mediastream/PeerHandler.h:76
&gt; &gt; +class PeerHandlerClient {
&gt; 
&gt; These classes in WebCore/platform shouldn&apos;t be called Clients.  In WebKit, the client exist to talk with &quot;up&quot; to the WebKit Client, not &quot;down&quot; to the platform.

The PeerHandlerClient interface is used by PeerHandler to talk &quot;up&quot; to PeerConnection much like HTMLMediaElement is a MediaPlayerClient. However, we don&apos;t have a strong opinion about the name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1972991</commentid>
    <comment_count>13</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2023-08-23 07:58:42 -0700</bug_when>
    <thetext>Closing as this is no longer relevant.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107067</attachid>
            <date>2011-09-12 11:46:09 -0700</date>
            <delta_ts>2011-09-13 02:55:25 -0700</delta_ts>
            <desc>patch for discussion</desc>
            <filename>mediastream_webcore_platform.patch</filename>
            <type>text/plain</type>
            <size>273852</size>
            <attacher name="Adam Bergkvist">adam.bergkvist</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggN2E1MjA1Ny4uNTYzOWY0YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTIwNTQsMjggKzIwNTQsNyBAQCBJRiAoRU5BQkxFX1BST0dSRVNTX1RBRykKIEVO
RElGICgpCiAKIElGIChFTkFCTEVfTUVESUFfU1RSRUFNKQotICAgIExJU1QoQVBQRU5EIFdlYkNv
cmVfU09VUkNFUwotICAgICAgICBkb20vTG9jYWxNZWRpYVN0cmVhbS5jcHAKLSAgICAgICAgZG9t
L01lZGlhU3RyZWFtLmNwcAotICAgICAgICBkb20vTWVkaWFTdHJlYW1MaXN0LmNwcAotICAgICAg
ICBkb20vTWVkaWFTdHJlYW1UcmFjay5jcHAKLSAgICAgICAgZG9tL01lZGlhU3RyZWFtVHJhY2tM
aXN0LmNwcAotICAgICAgICBwMnAvTWVkaWFTdHJlYW1FdmVudC5jcHAKLSAgICAgICAgcDJwL1Bl
ZXJDb25uZWN0aW9uLmNwcAotICAgICAgICBwYWdlL01lZGlhU3RyZWFtQ29udHJvbGxlci5jcHAK
LSAgICAgICAgcGFnZS9NZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlci5jcHAKLSAgICAgICAgcGxh
dGZvcm0vTWVkaWFTdHJlYW1SZWdpc3RyeS5jcHAKLSAgICApCi0KICAgICBMSVNUKEFQUEVORCBX
ZWJDb3JlX0lETF9GSUxFUwotICAgICAgICBkb20vTG9jYWxNZWRpYVN0cmVhbS5pZGwKLSAgICAg
ICAgZG9tL01lZGlhU3RyZWFtLmlkbAotICAgICAgICBkb20vTWVkaWFTdHJlYW1MaXN0LmlkbAot
ICAgICAgICBkb20vTWVkaWFTdHJlYW1UcmFjay5pZGwKLSAgICAgICAgZG9tL01lZGlhU3RyZWFt
VHJhY2tMaXN0LmlkbAotICAgICAgICBwMnAvTWVkaWFTdHJlYW1FdmVudC5pZGwKLSAgICAgICAg
cDJwL1BlZXJDb25uZWN0aW9uLmlkbAotICAgICAgICBwMnAvU2lnbmFsaW5nQ2FsbGJhY2suaWRs
CiAgICAgICAgIHBhZ2UvTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuaWRsCiAgICAgKQogRU5ESUYg
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NvZGVHZW5lcmF0b3JzLnByaSBiL1NvdXJj
ZS9XZWJDb3JlL0NvZGVHZW5lcmF0b3JzLnByaQppbmRleCBlNWEzNTQ0Li4yODEzMTE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db2RlR2VuZXJhdG9ycy5wcmkKKysrIGIvU291cmNlL1dl
YkNvcmUvQ29kZUdlbmVyYXRvcnMucHJpCkBAIC0xNDEsMTEgKzE0MSw2IEBAIElETF9CSU5ESU5H
UyArPSBcCiAjICAgIGRvbS9FdmVudFRhcmdldC5pZGwgXAogICAgIGRvbS9IYXNoQ2hhbmdlRXZl
bnQuaWRsIFwKICAgICBkb20vS2V5Ym9hcmRFdmVudC5pZGwgXAotICAgIGRvbS9Mb2NhbE1lZGlh
U3RyZWFtLmlkbCBcCi0gICAgZG9tL01lZGlhU3RyZWFtLmlkbCBcCi0gICAgZG9tL01lZGlhU3Ry
ZWFtTGlzdC5pZGwgXAotICAgIGRvbS9NZWRpYVN0cmVhbVRyYWNrLmlkbCBcCi0gICAgZG9tL01l
ZGlhU3RyZWFtVHJhY2tMaXN0LmlkbCBcCiAgICAgZG9tL01vdXNlRXZlbnQuaWRsIFwKICAgICBk
b20vTWVzc2FnZUNoYW5uZWwuaWRsIFwKICAgICBkb20vTWVzc2FnZUV2ZW50LmlkbCBcCkBAIC0z
MjksOSArMzI0LDYgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBsb2FkZXIvYXBwY2FjaGUvRE9N
QXBwbGljYXRpb25DYWNoZS5pZGwgXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlk
bCBcCiAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRsIFwKLSAgICBwMnAv
TWVkaWFTdHJlYW1FdmVudC5pZGwgXAotICAgIHAycC9QZWVyQ29ubmVjdGlvbi5pZGwgXAotICAg
IHAycC9TaWduYWxpbmdDYWxsYmFjay5pZGwgXAogICAgIHBhZ2UvQmFySW5mby5pZGwgXAogICAg
IHBhZ2UvQ29uc29sZS5pZGwgXAogICAgIHBhZ2UvQ29vcmRpbmF0ZXMuaWRsIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLmNwcAppbmRleCA4YTQ1OTg2Li4zNTIzZGM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMuY3BwCkBAIC0yMjcsMTUgKzIyNyw5IEBACiAjaW5jbHVkZSAiSlNJbnQ4QXJyYXku
Y3BwIgogI2luY2x1ZGUgIkpTSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAiCiAjaW5jbHVkZSAiSlNL
ZXlib2FyZEV2ZW50LmNwcCIKLSNpbmNsdWRlICJKU0xvY2FsTWVkaWFTdHJlYW0uY3BwIgogI2lu
Y2x1ZGUgIkpTTG9jYXRpb24uY3BwIgogI2luY2x1ZGUgIkpTTWVkaWFFcnJvci5jcHAiCiAjaW5j
bHVkZSAiSlNNZWRpYUxpc3QuY3BwIgotI2luY2x1ZGUgIkpTTWVkaWFTdHJlYW0uY3BwIgotI2lu
Y2x1ZGUgIkpTTWVkaWFTdHJlYW1FdmVudC5jcHAiCi0jaW5jbHVkZSAiSlNNZWRpYVN0cmVhbUxp
c3QuY3BwIgotI2luY2x1ZGUgIkpTTWVkaWFTdHJlYW1UcmFjay5jcHAiCi0jaW5jbHVkZSAiSlNN
ZWRpYVN0cmVhbVRyYWNrTGlzdC5jcHAiCiAjaW5jbHVkZSAiSlNNZWRpYVF1ZXJ5TGlzdC5jcHAi
CiAjaW5jbHVkZSAiSlNNZW1vcnlJbmZvLmNwcCIKICNpbmNsdWRlICJKU01lc3NhZ2VDaGFubmVs
LmNwcCIKQEAgLTI2MCw3ICsyNTQsNiBAQAogI2luY2x1ZGUgIkpTT3BlcmF0aW9uTm90QWxsb3dl
ZEV4Y2VwdGlvbi5jcHAiCiAjaW5jbHVkZSAiSlNPdmVyZmxvd0V2ZW50LmNwcCIKICNpbmNsdWRl
ICJKU1BhZ2VUcmFuc2l0aW9uRXZlbnQuY3BwIgotI2luY2x1ZGUgIkpTUGVlckNvbm5lY3Rpb24u
Y3BwIgogI2luY2x1ZGUgIkpTUGVyZm9ybWFuY2UuY3BwIgogI2luY2x1ZGUgIkpTUGVyZm9ybWFu
Y2VOYXZpZ2F0aW9uLmNwcCIKICNpbmNsdWRlICJKU1BlcmZvcm1hbmNlVGltaW5nLmNwcCIKQEAg
LTI3OSw3ICsyNzIsNiBAQAogI2luY2x1ZGUgIkpTU2NyaXB0UHJvZmlsZU5vZGUuY3BwIgogI2lu
Y2x1ZGUgIkpTU2hhcmVkV29ya2VyLmNwcCIKICNpbmNsdWRlICJKU1NoYXJlZFdvcmtlckNvbnRl
eHQuY3BwIgotI2luY2x1ZGUgIkpTU2lnbmFsaW5nQ2FsbGJhY2suY3BwIgogI2luY2x1ZGUgIkpT
U1FMRXJyb3IuY3BwIgogI2luY2x1ZGUgIkpTU1FMRXhjZXB0aW9uLmNwcCIKICNpbmNsdWRlICJK
U1NRTFJlc3VsdFNldC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA4Yzdj
MmU1Li5mNzdiYWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM5LDcgKzM5
LDYgQEAgVlBBVEggPSBcCiAgICAgJChXZWJDb3JlKS9pbnNwZWN0b3IgXAogICAgICQoV2ViQ29y
ZSkvbG9hZGVyL2FwcGNhY2hlIFwKICAgICAkKFdlYkNvcmUpL25vdGlmaWNhdGlvbnMgXAotICAg
ICQoV2ViQ29yZSkvcDJwIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UgXAogICAgICQoV2ViQ29yZSkv
cGx1Z2lucyBcCiAgICAgJChXZWJDb3JlKS9zdG9yYWdlIFwKQEAgLTI3Nyw3ICsyNzYsNiBAQCBE
T01fQ0xBU1NFUyA9IFwKICAgICBJbnRlcm5hbHMgXAogICAgIEphdmFTY3JpcHRBdWRpb05vZGUg
XAogICAgIEtleWJvYXJkRXZlbnQgXAotICAgIExvY2FsTWVkaWFTdHJlYW0gXAogICAgIExvY2F0
aW9uIFwKICAgICBMb3dQYXNzMkZpbHRlck5vZGUgXAogICAgIE1lZGlhRWxlbWVudEF1ZGlvU291
cmNlTm9kZSBcCkBAIC0yODUsMTEgKzI4Myw2IEBAIERPTV9DTEFTU0VTID0gXAogICAgIE1lZGlh
TGlzdCBcCiAgICAgTWVkaWFRdWVyeUxpc3QgXAogICAgIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIg
XAotICAgIE1lZGlhU3RyZWFtIFwKLSAgICBNZWRpYVN0cmVhbUV2ZW50IFwKLSAgICBNZWRpYVN0
cmVhbUxpc3QgXAotICAgIE1lZGlhU3RyZWFtVHJhY2sgXAotICAgIE1lZGlhU3RyZWFtVHJhY2tM
aXN0IFwKICAgICBNZW1vcnlJbmZvIFwKICAgICBNZXNzYWdlQ2hhbm5lbCBcCiAgICAgTWVzc2Fn
ZUV2ZW50IFwKQEAgLTMxNyw3ICszMTAsNiBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBPcGVyYXRp
b25Ob3RBbGxvd2VkRXhjZXB0aW9uIFwKICAgICBPdmVyZmxvd0V2ZW50IFwKICAgICBQYWdlVHJh
bnNpdGlvbkV2ZW50IFwKLSAgICBQZWVyQ29ubmVjdGlvbiBcCiAgICAgUGVyZm9ybWFuY2UgXAog
ICAgIFBlcmZvcm1hbmNlTmF2aWdhdGlvbiBcCiAgICAgUGVyZm9ybWFuY2VUaW1pbmcgXApAQCAt
NTAwLDcgKzQ5Miw2IEBAIERPTV9DTEFTU0VTID0gXAogICAgIFNjcmlwdFByb2ZpbGVOb2RlIFwK
ICAgICBTaGFyZWRXb3JrZXIgXAogICAgIFNoYXJlZFdvcmtlckNvbnRleHQgXAotICAgIFNpZ25h
bGluZ0NhbGxiYWNrIFwKICAgICBTcGVlY2hJbnB1dEV2ZW50IFwKICAgICBTcGVlY2hJbnB1dFJl
c3VsdCBcCiAgICAgU3BlZWNoSW5wdXRSZXN1bHRMaXN0IFwKQEAgLTg5Niw3ICs4ODcsNiBAQCBJ
RExfSU5DTFVERVMgPSBcCiAgICAgJChXZWJDb3JlKS9maWxlYXBpIFwKICAgICAkKFdlYkNvcmUp
L2h0bWwgXAogICAgICQoV2ViQ29yZSkvY3NzIFwKLSAgICAkKFdlYkNvcmUpL3AycCBcCiAgICAg
JChXZWJDb3JlKS9wYWdlIFwKICAgICAkKFdlYkNvcmUpL25vdGlmaWNhdGlvbnMgXAogICAgICQo
V2ViQ29yZSkveG1sIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggN2EwMzkxZS4uNzUyZDU4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTM4LDggKzM4LDggQEAgd2ViY29yZV9jcHBmbGFncyAr
PSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlIFwKIAktSSQoc3Jj
ZGlyKS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbiBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dl
YkNvcmUvbWF0aG1sIFwKKwktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbSBc
CiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucyBcCi0JLUkkKHNyY2Rp
cikvU291cmNlL1dlYkNvcmUvcDJwIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wYWdl
IFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbiBcCiAJLUkkKHNy
Y2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0gXApAQCAtNjAsNiArNjAsNyBAQCB3ZWJjb3Jl
X2NwcGZsYWdzICs9IFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFn
ZS1kZWNvZGVycy93ZWJwIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
bWFnZS1kZWNvZGVycy9wbmcgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2xldmVsZGIgXAorCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrIFwKIAktSSQo
c3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrIFwKIAktSSQoc3JjZGlyKS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwgXApAQCAtNzU1LDggKzc1Niw4IEBAIElETF9QQVRI
IDo9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzIFwKICAgICAkKFdlYkNvcmUpL2luc3Bl
Y3RvciBcCiAgICAgJChXZWJDb3JlKS9sb2FkZXIvYXBwY2FjaGUgXAorICAgICQoV2ViQ29yZSkv
bWVkaWFzdHJlYW0gXAogICAgICQoV2ViQ29yZSkvbm90aWZpY2F0aW9ucyBcCi0gICAgJChXZWJD
b3JlKS9wMnAgXAogICAgICQoV2ViQ29yZSkvcGFnZSBcCiAgICAgJChXZWJDb3JlKS9wbHVnaW5z
IFwKICAgICAkKFdlYkNvcmUpL3N0b3JhZ2UgXApAQCAtODY5LDggKzg3MCw4IEBAIEVYVFJBX0RJ
U1QgKz0gXAogCSQoc2hlbGwgbHMgJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL2h0bWwvKi5pZGwp
IFwKIAkkKHNoZWxsIGxzICQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvKi5pZGwp
IFwKIAkkKHNoZWxsIGxzICQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUv
Ki5pZGwpIFwKKwkkKHNoZWxsIGxzICQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVh
bS8qLmlkbCkgXAogCSQoc2hlbGwgbHMgJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNh
dGlvbnMvKi5pZGwpIFwKLQkkKHNoZWxsIGxzICQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wMnAv
Ki5pZGwpIFwKIAkkKHNoZWxsIGxzICQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wYWdlLyouaWRs
KSBcCiAJJChzaGVsbCBscyAkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGx1Z2lucy8qLmlkbCkg
XAogCSQoc2hlbGwgbHMgJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvKi5pZGwpIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDllNWUzYTkuLjk1NmU3NjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNDE1LDYgKzQxNSw4IEBAIHdlYmNvcmVfYnVp
bHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1BhZ2VUcmFuc2l0aW9u
RXZlbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1BlZXJDb25uZWN0aW9uLmNwcCBc
CiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1BlZXJDb25uZWN0aW9uLmggXAorCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNQZWVyQ29ubmVjdGlvblNpZ25hbGluZ0NhbGxiYWNrLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1BlZXJDb25uZWN0aW9uU2lnbmFsaW5nQ2FsbGJhY2su
aCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1BlcmZvcm1hbmNlLmNwcCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1BlcmZvcm1hbmNlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNQZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwIFwKQEAgLTQ1MSw4ICs0NTMsNiBAQCB3ZWJj
b3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTaGFyZWRX
b3JrZXJDb250ZXh0LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTaGFyZWRXb3JrZXIu
Y3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2hhcmVkV29ya2VyLmggXAotCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNTaWduYWxpbmdDYWxsYmFjay5jcHAgXAotCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNTaWduYWxpbmdDYWxsYmFjay5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTU3BlZWNoSW5wdXRFdmVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNT
cGVlY2hJbnB1dEV2ZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hJbnB1
dFJlc3VsdC5jcHAgXApAQCAtMTEzMyw3ICsxMTMzLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmggXAogCVNvdXJjZS9XZWJDb3Jl
L2RvbS9EZXZpY2VPcmllbnRhdGlvbi5oIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vRGlzcGF0Y2hU
YXNrLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50RnJhZ21lbnQuaCBcCkBAIC0xMTk5LDE3ICsxMTk4LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vSGFzaENoYW5nZUV2ZW50LmggXAogCVNvdXJjZS9XZWJD
b3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJk
RXZlbnQuaCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL0xvY2FsTWVkaWFTdHJlYW0uY3BwIFwKLQlT
b3VyY2UvV2ViQ29yZS9kb20vTG9jYWxNZWRpYVN0cmVhbS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9k
b20vTWFwcGVkQXR0cmlidXRlRW50cnkuaCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL01lZGlhU3Ry
ZWFtLmNwcCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL01lZGlhU3RyZWFtLmggXAotCVNvdXJjZS9X
ZWJDb3JlL2RvbS9NZWRpYVN0cmVhbUxpc3QuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vTWVk
aWFTdHJlYW1MaXN0LmggXAotCVNvdXJjZS9XZWJDb3JlL2RvbS9NZWRpYVN0cmVhbVRyYWNrLmNw
cCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL01lZGlhU3RyZWFtVHJhY2suaCBcCi0JU291cmNlL1dl
YkNvcmUvZG9tL01lZGlhU3RyZWFtVHJhY2tMaXN0LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvZG9t
L01lZGlhU3RyZWFtVHJhY2tMaXN0LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlQ2hh
bm5lbC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlQ2hhbm5lbC5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmNwcCBcCkBAIC0yMjA3LDE3ICsyMTk2LDMzIEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhF
bGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oIFwKKwlTb3VyY2Uv
V2ViQ29yZS9tZWRpYXN0cmVhbS9Mb2NhbE1lZGlhU3RyZWFtLmNwcCBcCisJU291cmNlL1dlYkNv
cmUvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVhbS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLmggXAorCVNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ29t
cG9uZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRXZlbnQu
Y3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUV2ZW50LmggXAor
CVNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtTGlzdC5jcHAgXAorCVNvdXJj
ZS9XZWJDb3JlL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtTGlzdC5oIFwKKwlTb3VyY2UvV2ViQ29y
ZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmggXAorCVNvdXJjZS9XZWJDb3JlL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtUmVnaXN0cnkuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcCBcCisJU291cmNlL1dlYkNvcmUvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5oIFwKKwlTb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrTGlzdC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2tMaXN0LmggXAorCVNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL1BlZXJDb25u
ZWN0aW9uLmNwcCBcCisJU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24u
aCBcCisJU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25TaWduYWxpbmdD
YWxsYmFjay5oIFwKKwlTb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDbGllbnQu
aCBcCisJU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5jcHAg
XAorCVNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuaCBcCiAJ
U291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRlbnRzLmggXAogCVNvdXJj
ZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25QcmVzZW50ZXIuaCBcCi0JU291cmNlL1dlYkNvcmUvcDJwL01l
ZGlhU3RyZWFtRXZlbnQuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9wMnAvTWVkaWFTdHJlYW1FdmVu
dC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9wMnAvUGVlckNvbm5lY3Rpb24uY3BwIFwKLQlTb3VyY2Uv
V2ViQ29yZS9wMnAvUGVlckNvbm5lY3Rpb24uaCBcCi0JU291cmNlL1dlYkNvcmUvcDJwL1NpZ25h
bGluZ0NhbGxiYWNrLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlv
bkJhc2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNl
LmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIu
Y3BwIFwKQEAgLTIyMzIsNyArMjIzNyw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvcGFnZS9BZGp1c3RWaWV3U2l6ZU9yTm90LmggXAogCVNvdXJjZS9XZWJDb3JlL3Bh
Z2UvQmFySW5mby5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvQmFySW5mby5oIFwKLQlTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NhbGxiYWNrVGFzay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmggXAogCVNvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggXApAQCAtMjI5MCwxMSArMjI5NCw2IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhdGlvbi5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL3BhZ2UvTG9jYXRpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYUNh
blN0YXJ0TGlzdGVuZXIuaCBcCi0JU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVN0cmVhbUNsaWVu
dC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlhU3RyZWFtQ29udHJvbGxlci5jcHAgXAot
CVNvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFTdHJlYW1Db250cm9sbGVyLmggXAotCVNvdXJjZS9X
ZWJDb3JlL3BhZ2UvTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIuY3BwIFwKLQlTb3VyY2UvV2Vi
Q29yZS9wYWdlL01lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyLmggXAogCVNvdXJjZS9XZWJDb3Jl
L3BhZ2UvTWVtb3J5SW5mby5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5SW5mby5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL01vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMuY3Bw
IFwKQEAgLTI2NTcsOCArMjY1Niw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1F
VHlwZVJlZ2lzdHJ5LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdp
c3RyeS5oIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmNw
cCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJlYW1SZWdpc3RyeS5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rlci5jcHAgXApA
QCAtMjY4MCw2ICsyNjc3LDEyIEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvd2VicC9XRUJQSW1hZ2VEZWNvZGVyLmggXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1h
Z2VEZWNvZGVyLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtTWFuYWdlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtTWFuYWdlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbU1hbmFnZXJQcml2YXRlLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1BlZXJIYW5kbGVyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUGVlckhhbmRsZXIuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUGVlckhhbmRsZXJQcml2YXRlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suaCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1VzZUpT
Qy5jbWFrZQppbmRleCBjZjVkNzc5Li5mMmMyM2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Vc2VKU0MuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlCkBAIC0xMDMs
NyArMTAzLDYgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMv
SlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNOb2RlTGlzdEN1c3Rv
bS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmNwcAotICAgIGJpbmRp
bmdzL2pzL0pTUGVlckNvbm5lY3Rpb25DdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNQbHVn
aW5FbGVtZW50RnVuY3Rpb25zLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTU2NyaXB0UHJvZmlsZU5vZGVDdXN0
b20uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5
cCBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCmluZGV4IDkyNDM0Y2Yu
LmUyM2JlMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUu
Z3lwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCkBAIC0xNjgs
OCArMTY4LDggQEAKICAgICAgICcuLi9sb2FkZXIvY2FjaGUnLAogICAgICAgJy4uL2xvYWRlci9p
Y29uJywKICAgICAgICcuLi9tYXRobWwnLAorICAgICAgJy4uL21lZGlhc3RyZWFtJywKICAgICAg
ICcuLi9ub3RpZmljYXRpb25zJywKLSAgICAgICcuLi9wMnAnLAogICAgICAgJy4uL3BhZ2UnLAog
ICAgICAgJy4uL3BhZ2UvYW5pbWF0aW9uJywKICAgICAgICcuLi9wYWdlL2Nocm9taXVtJywKQEAg
LTE5Nyw2ICsxOTcsNyBAQAogICAgICAgJy4uL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3dlYnAn
LAogICAgICAgJy4uL3BsYXRmb3JtL2ltYWdlLWVuY29kZXJzL3NraWEnLAogICAgICAgJy4uL3Bs
YXRmb3JtL2xldmVsZGInLAorICAgICAgJy4uL3BsYXRmb3JtL21lZGlhc3RyZWFtJywKICAgICAg
ICcuLi9wbGF0Zm9ybS9tb2NrJywKICAgICAgICcuLi9wbGF0Zm9ybS9uZXR3b3JrJywKICAgICAg
ICcuLi9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtJywKQEAgLTkwMiw2ICs5MDMsNyBAQAogICAg
ICAgICAgICAgICAnLS1pbmNsdWRlJywgJy4uL2RvbScsCiAgICAgICAgICAgICAgICctLWluY2x1
ZGUnLCAnLi4vZmlsZWFwaScsCiAgICAgICAgICAgICAgICctLWluY2x1ZGUnLCAnLi4vaHRtbCcs
CisgICAgICAgICAgICAgICctLWluY2x1ZGUnLCAnLi4vbWVkaWFzdHJlYW0nLAogICAgICAgICAg
ICAgICAnLS1pbmNsdWRlJywgJy4uL25vdGlmaWNhdGlvbnMnLAogICAgICAgICAgICAgICAnLS1p
bmNsdWRlJywgJy4uL3BhZ2UnLAogICAgICAgICAgICAgICAnLS1pbmNsdWRlJywgJy4uL3BsdWdp
bnMnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDI4Yjc1YmUuLjlhZjYyMzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKQEAgLTk4Myw3ICs5ODMsNiBAQAogICAgICAgICAgICAgJ2RvbS9ET01UaW1lU3RhbXAuaCcs
CiAgICAgICAgICAgICAnZG9tL0RldmljZU9yaWVudGF0aW9uLmgnLAogICAgICAgICAgICAgJ2Rv
bS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oJywKLSAgICAgICAgICAgICdkb20vRGlzcGF0Y2hU
YXNrLmgnLAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudC5oJywKICAgICAgICAgICAgICdkb20v
RG9jdW1lbnRGcmFnbWVudC5oJywKICAgICAgICAgICAgICdkb20vRG9jdW1lbnRNYXJrZXIuaCcs
CkBAIC0xMTc1LDExICsxMTc0LDYgQEAKICAgICAgICAgICAgICdkb20vRXZlbnRUYXJnZXQuaWRs
JywKICAgICAgICAgICAgICdkb20vSGFzaENoYW5nZUV2ZW50LmlkbCcsCiAgICAgICAgICAgICAn
ZG9tL0tleWJvYXJkRXZlbnQuaWRsJywKLSAgICAgICAgICAgICdkb20vTG9jYWxNZWRpYVN0cmVh
bS5pZGwnLAotICAgICAgICAgICAgJ2RvbS9NZWRpYVN0cmVhbS5pZGwnLAotICAgICAgICAgICAg
J2RvbS9NZWRpYVN0cmVhbUxpc3QuaWRsJywKLSAgICAgICAgICAgICdkb20vTWVkaWFTdHJlYW1U
cmFjay5pZGwnLAotICAgICAgICAgICAgJ2RvbS9NZWRpYVN0cmVhbVRyYWNrTGlzdC5pZGwnLAog
ICAgICAgICAgICAgJ2RvbS9NZXNzYWdlQ2hhbm5lbC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9N
ZXNzYWdlRXZlbnQuaWRsJywKICAgICAgICAgICAgICdkb20vTWVzc2FnZVBvcnQuaWRsJywKQEAg
LTEzNjMsMTEgKzEzNTcsMTYgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvU2NyaXB0UHJvZmls
ZS5pZGwnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9TY3JpcHRQcm9maWxlTm9kZS5pZGwnLAog
ICAgICAgICAgICAgJ2xvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlkbCcsCisg
ICAgICAgICAgICAnbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVhbS5pZGwnLAorICAgICAgICAg
ICAgJ21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmlkbCcsCisgICAgICAgICAgICAnbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1FdmVudC5pZGwnLAorICAgICAgICAgICAgJ21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtTGlzdC5pZGwnLAorICAgICAgICAgICAgJ21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suaWRsJywKKyAgICAgICAgICAgICdtZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrTGlzdC5p
ZGwnLAorICAgICAgICAgICAgJ21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uLmlkbCcsCisgICAg
ICAgICAgICAnbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25TaWduYWxpbmdDYWxsYmFjay5pZGwn
LAogICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbCcsCiAgICAgICAg
ICAgICAnbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRsJywKLSAgICAgICAgICAg
ICdwMnAvTWVkaWFTdHJlYW1FdmVudC5pZGwnLAotICAgICAgICAgICAgJ3AycC9QZWVyQ29ubmVj
dGlvbi5pZGwnLAotICAgICAgICAgICAgJ3AycC9TaWduYWxpbmdDYWxsYmFjay5pZGwnLAogICAg
ICAgICAgICAgJ3BhZ2UvQWJzdHJhY3RWaWV3LmlkbCcsCiAgICAgICAgICAgICAncGFnZS9CYXJJ
bmZvLmlkbCcsCiAgICAgICAgICAgICAncGFnZS9Db25zb2xlLmlkbCcsCkBAIC0yODU3LDE5ICsy
ODU2LDM0IEBACiAgICAgICAgICAgICAnbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmgnLAogICAg
ICAgICAgICAgJ21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ21h
dGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oJywKKyAgICAgICAgICAgICdtZWRpYXN0cmVhbS9Mb2Nh
bE1lZGlhU3RyZWFtLmNwcCcsCisgICAgICAgICAgICAnbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0
cmVhbS5oJywKKyAgICAgICAgICAgICdtZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNvbXBvbmVudC5o
JywKKyAgICAgICAgICAgICdtZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAnLAorICAgICAgICAg
ICAgJ21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgnLAorICAgICAgICAgICAgJ21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtRXZlbnQuY3BwJywKKyAgICAgICAgICAgICdtZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbUV2ZW50LmgnLAorICAgICAgICAgICAgJ21lZGlhc3RyZWFtL01lZGlhU3RyZWFtTGlzdC5j
cHAnLAorICAgICAgICAgICAgJ21lZGlhc3RyZWFtL01lZGlhU3RyZWFtTGlzdC5oJywKKyAgICAg
ICAgICAgICdtZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcCcsCisgICAgICAgICAg
ICAnbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZWdpc3RyeS5oJywKKyAgICAgICAgICAgICdtZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcCcsCisgICAgICAgICAgICAnbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay5oJywKKyAgICAgICAgICAgICdtZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrTGlzdC5jcHAnLAorICAgICAgICAgICAgJ21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2tMaXN0LmgnLAorICAgICAgICAgICAgJ21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uLmNwcCcs
CisgICAgICAgICAgICAnbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24uaCcsCisgICAgICAgICAg
ICAnbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25TaWduYWxpbmdDYWxsYmFjay5oJywKKyAgICAg
ICAgICAgICdtZWRpYXN0cmVhbS9Vc2VyTWVkaWFDbGllbnQuaCcsCisgICAgICAgICAgICAnbWVk
aWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5jcHAnLAorICAgICAgICAgICAgJ21lZGlhc3Ry
ZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuaCcsCiAgICAgICAgICAgICAnbm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb24uY3BwJywKICAgICAgICAgICAgICdub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bi5oJywKICAgICAgICAgICAgICdub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAn
LAogICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmgnLAogICAg
ICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udGVudHMuaCcsCi0gICAgICAg
ICAgICAncDJwL01lZGlhU3RyZWFtRXZlbnQuY3BwJywKLSAgICAgICAgICAgICdwMnAvTWVkaWFT
dHJlYW1FdmVudC5oJywKLSAgICAgICAgICAgICdwMnAvUGVlckNvbm5lY3Rpb24uY3BwJywKLSAg
ICAgICAgICAgICdwMnAvUGVlckNvbm5lY3Rpb24uaCcsCi0gICAgICAgICAgICAncDJwL1NpZ25h
bGluZ0NhbGxiYWNrLmgnLAogICAgICAgICAgICAgJ3BhZ2UvQmFySW5mby5jcHAnLAogICAgICAg
ICAgICAgJ3BhZ2UvQmFySW5mby5oJywKLSAgICAgICAgICAgICdwYWdlL0NhbGxiYWNrVGFzay5o
JywKICAgICAgICAgICAgICdwYWdlL0Nocm9tZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvQ29u
c29sZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCcs
CkBAIC0yOTM5LDExICsyOTUzLDYgQEAKICAgICAgICAgICAgICdwYWdlL1NwZWVjaElucHV0UmVz
dWx0LmgnLAogICAgICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmNwcCcsCiAg
ICAgICAgICAgICAncGFnZS9TcGVlY2hJbnB1dFJlc3VsdExpc3QuaCcsCi0gICAgICAgICAgICAn
cGFnZS9NZWRpYVN0cmVhbUNsaWVudC5oJywKLSAgICAgICAgICAgICdwYWdlL01lZGlhU3RyZWFt
Q29udHJvbGxlci5jcHAnLAotICAgICAgICAgICAgJ3BhZ2UvTWVkaWFTdHJlYW1Db250cm9sbGVy
LmgnLAotICAgICAgICAgICAgJ3BhZ2UvTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIuY3BwJywK
LSAgICAgICAgICAgICdwYWdlL01lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyLmgnLAogICAgICAg
ICAgICAgJ3BhZ2UvU3VzcGVuZGFibGVUaW1lci5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvU3Vz
cGVuZGFibGVUaW1lci5oJywKICAgICAgICAgICAgICdwYWdlL1VzZXJDb250ZW50VVJMUGF0dGVy
bi5jcHAnLApAQCAtMzAzOSw4ICszMDQ4LDYgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9MaW5r
SGFzaC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9Mb2dnaW5nLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZv
cm0vTWVkaWFTdHJlYW1SZWdpc3RyeS5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL01lZGlh
U3RyZWFtUmVnaXN0cnkuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVI
YW5kbGVyLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL1Bhc3RlYm9hcmQuaCcsCkBAIC00MTI3LDYgKzQxMzQs
MTIgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvV2ViRm9udENhY2hlLm1tJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9tYWMvV2hlZWxFdmVudE1hYy5tbScsCiAgICAgICAgICAgICAncGxh
dGZvcm0vbWFjL1dpZGdldE1hYy5tbScsCisgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1NYW5hZ2VyLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1NYW5hZ2VyLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtTWFuYWdlclByaXZhdGUuaCcsCisgICAgICAgICAgICAncGxhdGZv
cm0vbWVkaWFzdHJlYW0vUGVlckhhbmRsZXIuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9QZWVySGFuZGxlci5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9QZWVySGFuZGxlclByaXZhdGUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbW9jay9E
ZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9t
b2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21v
Y2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHAnLApAQCAtNTI1MCw3ICs1MjYzLDYgQEAKICAg
ICAgICAgICAgICdkb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgnLAogICAgICAgICAg
ICAgJ2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9tL0Rl
dmljZU9yaWVudGF0aW9uRXZlbnQuaCcsCi0gICAgICAgICAgICAnZG9tL0Rpc3BhdGNoVGFzay5o
JywKICAgICAgICAgICAgICdkb20vRG9jdW1lbnQuY3BwJywKICAgICAgICAgICAgICdkb20vRG9j
dW1lbnRGcmFnbWVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudE1hcmtlckNvbnRy
b2xsZXIuY3BwJywKQEAgLTUyOTAsMTYgKzUzMDIsNiBAQAogICAgICAgICAgICAgJ2RvbS9JY29u
VVJMLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0ljb25VUkwuaCcsCiAgICAgICAgICAgICAnZG9t
L0tleWJvYXJkRXZlbnQuY3BwJywKLSAgICAgICAgICAgICdkb20vTG9jYWxNZWRpYVN0cmVhbS5j
cHAnLAotICAgICAgICAgICAgJ2RvbS9Mb2NhbE1lZGlhU3RyZWFtLmgnLAotICAgICAgICAgICAg
J2RvbS9NZWRpYVN0cmVhbS5jcHAnLAotICAgICAgICAgICAgJ2RvbS9NZWRpYVN0cmVhbS5oJywK
LSAgICAgICAgICAgICdkb20vTWVkaWFTdHJlYW1MaXN0LmNwcCcsCi0gICAgICAgICAgICAnZG9t
L01lZGlhU3RyZWFtTGlzdC5oJywKLSAgICAgICAgICAgICdkb20vTWVkaWFTdHJlYW1UcmFjay5j
cHAnLAotICAgICAgICAgICAgJ2RvbS9NZWRpYVN0cmVhbVRyYWNrLmgnLAotICAgICAgICAgICAg
J2RvbS9NZWRpYVN0cmVhbVRyYWNrTGlzdC5jcHAnLAotICAgICAgICAgICAgJ2RvbS9NZWRpYVN0
cmVhbVRyYWNrTGlzdC5oJywKICAgICAgICAgICAgICdkb20vTWVzc2FnZUNoYW5uZWwuY3BwJywK
ICAgICAgICAgICAgICdkb20vTWVzc2FnZUNoYW5uZWwuaCcsCiAgICAgICAgICAgICAnZG9tL01l
c3NhZ2VFdmVudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8g
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA4MDMwY2Q5Li40M2I1N2NjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnBybwpAQCAtMzI1Myw0MyArMzI1MywxNiBAQCBjb250YWlucyhERUZJTkVTLCBFTkFC
TEVfR0VPTE9DQVRJT049MSkgewogCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfTUVESUFfU1RS
RUFNPTEpIHsKICAgICBIRUFERVJTICs9IFwKLSAgICAgICAgZG9tL0xvY2FsTWVkaWFTdHJlYW0u
aCBcCi0gICAgICAgIGRvbS9NZWRpYVN0cmVhbS5oIFwKLSAgICAgICAgZG9tL01lZGlhU3RyZWFt
TGlzdC5oIFwKLSAgICAgICAgZG9tL01lZGlhU3RyZWFtVHJhY2suaCBcCi0gICAgICAgIGRvbS9N
ZWRpYVN0cmVhbVRyYWNrTGlzdC5oIFwKLSAgICAgICAgcDJwL01lZGlhU3RyZWFtRXZlbnQuaCBc
Ci0gICAgICAgIHAycC9QZWVyQ29ubmVjdGlvbi5oIFwKLSAgICAgICAgcDJwL1NpZ25hbGluZ0Nh
bGxiYWNrLmggXAotICAgICAgICBwYWdlL0NhbGxiYWNrVGFzay5oIFwKLSAgICAgICAgcGFnZS9N
ZWRpYVN0cmVhbUNsaWVudC5oIFwKLSAgICAgICAgcGFnZS9NZWRpYVN0cmVhbUNvbnRyb2xsZXIu
aCBcCi0gICAgICAgIHBhZ2UvTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIuaCBcCiAgICAgICAg
IHBhZ2UvTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuaCBcCiAgICAgICAgIHBhZ2UvTmF2aWdhdG9y
VXNlck1lZGlhRXJyb3JDYWxsYmFjay5oIFwKICAgICAgICAgcGFnZS9OYXZpZ2F0b3JVc2VyTWVk
aWFTdWNjZXNzQ2FsbGJhY2suaCBcCi0gICAgICAgIHBsYXRmb3JtL01lZGlhU3RyZWFtUmVnaXN0
cnkuaAotCi0gICAgU09VUkNFUyArPSBcCi0gICAgICAgIGRvbS9Mb2NhbE1lZGlhU3RyZWFtLmNw
cCBcCi0gICAgICAgIGRvbS9NZWRpYVN0cmVhbS5jcHAgXAotICAgICAgICBkb20vTWVkaWFTdHJl
YW1MaXN0LmNwcCBcCi0gICAgICAgIGRvbS9NZWRpYVN0cmVhbVRyYWNrLmNwcCBcCi0gICAgICAg
IGRvbS9NZWRpYVN0cmVhbVRyYWNrTGlzdC5jcHAgXAotICAgICAgICBwMnAvTWVkaWFTdHJlYW1F
dmVudC5jcHAgXAotICAgICAgICBwMnAvUGVlckNvbm5lY3Rpb24uY3BwIFwKLSAgICAgICAgcGFn
ZS9NZWRpYVN0cmVhbUNvbnRyb2xsZXIuY3BwIFwKLSAgICAgICAgcGFnZS9NZWRpYVN0cmVhbUZy
YW1lQ29udHJvbGxlci5jcHAgXAotICAgICAgICBwbGF0Zm9ybS9NZWRpYVN0cmVhbVJlZ2lzdHJ5
LmNwcAogCiAgICAgdjggewogICAgICAgICBTT1VSQ0VTICs9IFwKLSAgICAgICAgICAgIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOE5hdmlnYXRvckN1c3RvbS5jcHAgXAotICAgICAgICAgICAgYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4UGVlckNvbm5lY3Rpb25DdXN0b20uY3BwCisgICAgICAgICAgICBiaW5k
aW5ncy92OC9jdXN0b20vVjhOYXZpZ2F0b3JDdXN0b20uY3BwCiAgICAgfSBlbHNlIHsKICAgICAg
ICAgU09VUkNFUyArPSBcCi0gICAgICAgICAgICBiaW5kaW5ncy9qcy9KU05hdmlnYXRvckN1c3Rv
bS5jcHAgXAotICAgICAgICAgICAgYmluZGluZ3MvanMvSlNQZWVyQ29ubmVjdGlvbkN1c3RvbS5j
cHAKKyAgICAgICAgICAgIGJpbmRpbmdzL2pzL0pTTmF2aWdhdG9yQ3VzdG9tLmNwcAogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRl
eCAwYTZlMGVhLi43ZTRkNGJkIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagpAQCAtMTA2MjYsNjIgKzEwNjI2LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9i
alwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0xvY2FsTWVkaWFTdHJlYW0uY3BwIgot
CQkJCT4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCi0J
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCi0JCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0J
CQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4z
MiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19D
RkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJ
CTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVn
X0FsbHxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJ
PFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUHJvZHVj
dGlvbnxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJ
PFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTTG9jYWxNZWRpYVN0cmVhbS5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJ
UmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXEpTTG9jYXRpb24uY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KQEAgLTEwOTMwLDI4NiArMTA4NzQsNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxG
aWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTWVkaWFTdHJlYW0uY3BwIgotCQkJCT4KLQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCi0JCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVD
b25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25m
aWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIi
Ci0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIK
LQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIK
LQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTWVkaWFTdHJl
YW0uaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xK
U01lZGlhU3RyZWFtRXZlbnQuY3BwIgotCQkJCT4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJ
CQkJTmFtZT0iRGVidWd8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJ
CQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgot
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5h
bWU9IlJlbGVhc2V8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+
Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9
IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
Ci0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJ
CS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJ
CQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1
cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KLQkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCTwvRmlsZT4KLQkJCTxG
aWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTWVkaWFTdHJlYW1FdmVudC5oIgotCQkJCT4KLQkJ
CTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTWVkaWFTdHJlYW1MaXN0
LmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdp
bjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAot
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMy
IgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxp
dGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxU
b29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2Vf
Q2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJ
PgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1l
PSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+
Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9
IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+
Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZl
UGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU01lZGlhU3RyZWFtTGlzdC5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxl
Ci0JCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTWVkaWFTdHJlYW1UcmFjay5jcHAiCi0JCQkJPgotCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4z
MiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMy
IgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMy
IgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNZWRpYVN0
cmVhbVRyYWNrLmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBh
dGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcSlNNZWRpYVN0cmVhbVRyYWNrTGlzdC5jcHAiCi0JCQkJPgotCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
Ci0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0J
CQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
LQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgotCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJPC9G
aWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNZWRpYVN0cmVhbVRyYWNrTGlz
dC5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpT
TWVtb3J5SW5mby5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtMTI0NTAs
NjIgKzEyMTE0LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZl
UGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU1BlZXJDb25uZWN0aW9uLmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0
aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJ
CQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgot
CQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
LQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJ
Lz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJ
CQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0
aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVD
b25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+
Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9i
alwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1BlZXJDb25uZWN0aW9uLmgiCi0JCQkJ
PgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNQZXJmb3JtYW5j
ZS5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtMTM0MDIsNjIgKzEzMDEw
LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9ialxXZWJDb3JlXERlcml2ZWRTb3VyY2VzXEpTU2lnbmFs
aW5nQ2FsbGJhY2suY3BwIgotCQkJCT4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFt
ZT0iRGVidWd8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0J
CQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJl
bGVhc2V8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJ
CTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVn
X0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJ
CT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0J
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFt
ZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgot
CQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9u
Ci0JCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0J
CQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
LQkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0J
CQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0J
CQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXFdlYkNvcmVcRGVy
aXZlZFNvdXJjZXNcSlNTaWduYWxpbmdDYWxsYmFjay5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJ
CTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQo
UHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTU1FMRXJyb3IuY3BwIgogCQkJCT4KIAkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTI1MjkxLDMwICsyNDg0Myw2IEBACiAJCQk8L0ZpbHRlcj4K
IAkJPC9GaWx0ZXI+CiAJCTxGaWx0ZXIKLQkJCU5hbWU9InAycCIKLQkJCT4KLQkJCTxGaWxlCi0J
CQkJUmVsYXRpdmVQYXRoPSIuLlxwMnBcTWVkaWFTdHJlYW1FdmVudC5jcHAiCi0JCQkJPgotCQkJ
PC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHAycFxNZWRpYVN0cmVhbUV2
ZW50LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHAycFxQZWVyQ29ubmVjdGlvbi5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXHAycFxQZWVyQ29ubmVjdGlvbi5oIgotCQkJCT4KLQkJCTwvRmls
ZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU2lnbmFsaW5nQ2FsbGJhY2su
aCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCTwvRmlsdGVyPgotCQk8RmlsdGVyCiAJCQlOYW1lPSJw
YWdlIgogCQkJPgogCQkJPEZpbGUKQEAgLTI1MzUwLDEwICsyNDg3OCw2IEBACiAJCQkJPgogCQkJ
PC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcQ2FsbGJhY2tUYXNr
LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBh
Z2VcQ2hyb21lLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0yNTYxNCwyNiArMjUxMzgsNiBA
QAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdl
XE1lZGlhU3RyZWFtQ2xpZW50LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcTWVkaWFTdHJlYW1Db250cm9sbGVyLmNwcCIKLQkJCQk+Ci0J
CQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxNZWRpYVN0cmVh
bUNvbnRyb2xsZXIuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccGFnZVxNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlci5jcHAiCi0JCQkJPgotCQkJ
PC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcTWVkaWFTdHJlYW1G
cmFtZUNvbnRyb2xsZXIuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccGFnZVxNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmNwcCIKIAkJCQk+
CiAJCQk8L0ZpbGU+CkBAIC0yNjgxMCwxNCArMjYzMTQsNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4K
IAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxNZWRpYVN0cmVhbVJlZ2lz
dHJ5LmNwcCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0i
Li5ccGxhdGZvcm1cTWVkaWFTdHJlYW1SZWdpc3RyeS5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJ
CTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxNZW1vcnlQcmVzc3VyZUhhbmRs
ZXIuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTQ0NjU4LDEwICs0NDE1NCw2IEBACiAJCQkJ
PgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEaXNwYXRj
aFRhc2suaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0i
Li5cZG9tXERvY3VtZW50LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC00
NjIzNCwyOTAgKzQ1NzI2LDEwIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGRvbVxMb2NhbE1lZGlhU3RyZWFtLmNwcCIKLQkJCQk+Ci0JCQkJPEZp
bGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZp
bGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgot
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0J
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCi0J
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXExvY2FsTWVk
aWFTdHJlYW0uaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0
aD0iLi5cZG9tXE1hcHBlZEF0dHJpYnV0ZUVudHJ5LmgiCiAJCQkJPgogCQkJPC9GaWxlPgogCQkJ
PEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxNZWRpYVN0cmVhbS5jcHAiCi0JCQkJPgot
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgot
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxX
aW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wK
LQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdp
bjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAot
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdp
bjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAot
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxN
ZWRpYVN0cmVhbS5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQ
YXRoPSIuLlxkb21cTWVkaWFTdHJlYW1MaXN0LmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1
cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
LQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJ
CQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgot
CQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1
cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZp
bGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQk8L0Zp
bGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE1lZGlhU3RyZWFtTGlzdC5o
IgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21c
TWVkaWFTdHJlYW1UcmFjay5jcHAiCi0JCQkJPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJ
CQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJ
CT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0J
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFt
ZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4K
LQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0i
RGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
LQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJ
Lz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJ
CQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgotCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJPC9GaWxlPgotCQkJPEZp
bGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxNZWRpYVN0cmVhbVRyYWNrLmgiCi0JCQkJPgot
CQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxNZWRpYVN0cmVh
bVRyYWNrTGlzdC5jcHAiCi0JCQkJPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1l
PSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJ
CQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVs
ZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJ
PFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdf
Q2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJ
PgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1l
PSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0J
CQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
LQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJ
CQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgot
CQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJ
CQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxNZWRpYVN0cmVhbVRyYWNrTGlzdC5oIgotCQkJCT4KLQkJ
CTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cTWVzc2FnZUNoYW5u
ZWwuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTYzNTAxLDU4ICs2Mjcx
Myw2IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxiaW5kaW5nc1xqc1xKU1BlZXJDb25uZWN0aW9uQ3VzdG9tLmNwcCIKLQkJCQkJPgotCQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCQk+Ci0JCQkJCQk8VG9vbAotCQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCQkvPgotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgot
CQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCi0JCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJCT4KLQkJCQkJCTxUb29sCi0JCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJCS8+Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZM
aXRlfFdpbjMyIgotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCQk+Ci0JCQkJ
CQk8VG9vbAotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCQkvPgotCQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJCU5hbWU9
IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCi0JCQkJCQk+Ci0JCQkJCQk8VG9vbAotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
Ci0JCQkJCQkvPgotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KLQkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgotCQkJCQkJPgotCQkJCQkJPFRvb2wKLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgotCQkJCQkJLz4KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQkJPEZpbGVD
b25maWd1cmF0aW9uCi0JCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgotCQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCQk+Ci0JCQkJCQk8VG9vbAotCQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCi0JCQkJCQkvPgotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJ
CTwvRmlsZT4KLQkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
UGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0
aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggOGVlYjU5MC4uNDA1ZjYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTA5Myw3ICsxMDkzLDYgQEAKIAkJNDZG
OUQ1REYwQjBENjAxNzAwMjhFRTM2IC8qIHByb2dyZXNzQ3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZGOUQ1REMwQjBENjAxNzAwMjhF
RTM2IC8qIHByb2dyZXNzQ3Vyc29yLnBuZyAqLzsgfTsKIAkJNDkwNzA3RTYxMjE5QzA0MzAwRDkw
RTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MDcwN0U0MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktp
dEJyaWRnZS5jcHAgKi87IH07CiAJCTQ5MDcwN0U3MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdl
YktpdEJyaWRnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDkwNzA3RTUxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmggKi87IH07
Ci0JCTQ5MEM0N0NFMTNFODJEMTgwMEY3QUI4MiAvKiBEaXNwYXRjaFRhc2suaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MEM0N0NEMTNFODJEMTgwMEY3
QUI4MiAvKiBEaXNwYXRjaFRhc2suaCAqLzsgfTsKIAkJNDkyODYzOTkxMjUzQjhGQzAwRjc5MkQ2
IC8qIFJlc291cmNlTG9hZEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ5Mjg2Mzk4MTI1M0I4RkMwMEY3OTJENiAvKiBSZXNvdXJjZUxvYWRJbmZv
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDky
OTFFNEIxMzQxNzJDODAwRTc1M0RFIC8qIEltYWdlUmVuZGVyaW5nTW9kZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDkyOTFFNEExMzQxNzJDODAwRTc1
M0RFIC8qIEltYWdlUmVuZGVyaW5nTW9kZS5oICovOyB9OwogCQk0OTNFNUUwOTEyRDY0MjA1MDAw
MjAwODEgLyogUGxhdGZvcm1DQUxheWVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTNFNUUwODEyRDY0MjA1MDAwMjAwODEgLyogUGxhdGZv
cm1DQUxheWVyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTExMTcsOCArMTExNiw2IEBACiAJCTQ5NTg3ODIyMTJBNTdEREYwMDcyMzhB
QyAvKiBQbGF0Zm9ybUNBTGF5ZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0OTU4NzgyMDEyQTU3RERGMDA3MjM4QUMgLyogUGxhdGZvcm1DQUxh
eWVyTWFjLm1tICovOyB9OwogCQk0OTY5QjBGMjEzRDBCMzNGMDBERjM1MjEgLyogSGl0VGVzdGlu
Z1RyYW5zZm9ybVN0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ5NjlCMEYwMTNEMEIzM0YwMERGMzUyMSAvKiBIaXRUZXN0aW5nVHJhbnNmb3Jt
U3RhdGUuY3BwICovOyB9OwogCQk0OTY5QjBGMzEzRDBCMzNGMDBERjM1MjEgLyogSGl0VGVzdGlu
Z1RyYW5zZm9ybVN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0OTY5QjBGMTEzRDBCMzNGMDBERjM1MjEgLyogSGl0VGVzdGluZ1RyYW5zZm9ybVN0
YXRlLmggKi87IH07Ci0JCTQ5Nzg1RUUwMTNGMTkyRjAwMEE3OTVBRCAvKiBNZWRpYVN0cmVhbVJl
Z2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ5Nzg1RURFMTNGMTkyRjAwMEE3OTVBRCAvKiBNZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcCAqLzsg
fTsKLQkJNDk3ODVFRTExM0YxOTJGMDAwQTc5NUFEIC8qIE1lZGlhU3RyZWFtUmVnaXN0cnkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5Nzg1RURGMTNG
MTkyRjAwMEE3OTVBRCAvKiBNZWRpYVN0cmVhbVJlZ2lzdHJ5LmggKi87IH07CiAJCTQ5ODM5MTNG
MEYxRTc2NzUwMEMyMzc4MiAvKiBKU1dlYktpdENTU01hdHJpeC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTgzOTEzRDBGMUU3Njc1MDBDMjM3ODIg
LyogSlNXZWJLaXRDU1NNYXRyaXguY3BwICovOyB9OwogCQk0OTgzOTE0MDBGMUU3Njc1MDBDMjM3
ODIgLyogSlNXZWJLaXRDU1NNYXRyaXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ5ODM5MTNFMEYxRTc2NzUwMEMyMzc4MiAvKiBKU1dlYktpdENTU01h
dHJpeC5oICovOyB9OwogCQk0OTgzOTE1MDBGMUU3NkI0MDBDMjM3ODIgLyogRE9NV2ViS2l0Q1NT
TWF0cml4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
OTgzOTE0RDBGMUU3NkI0MDBDMjM3ODIgLyogRE9NV2ViS2l0Q1NTTWF0cml4LmggKi87IH07CkBA
IC0xMTQ1LDE4ICsxMTQyLDYgQEAKIAkJNDk5QjNFRDYxMjhDRDMxNDAwRTcyNkMyIC8qIEdyYXBo
aWNzTGF5ZXJDQS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0OTlCM0VENDEyOENEMzE0MDBFNzI2QzIgLyogR3JhcGhpY3NMYXllckNBLmNwcCAqLzsg
fTsKIAkJNDk5QjNFRDcxMjhDRDMxNDAwRTcyNkMyIC8qIEdyYXBoaWNzTGF5ZXJDQS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk5QjNFRDUxMjhDRDMx
NDAwRTcyNkMyIC8qIEdyYXBoaWNzTGF5ZXJDQS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ5OUIzRUREMTI4REI1MDIwMEU3MjZDMiAvKiBQbGF0
Zm9ybUNBQW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0OTlCM0VEQzEyOERCNTAxMDBFNzI2QzIgLyogUGxhdGZvcm1DQUFuaW1hdGlvbi5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTQ5QTJD
RkQ5MTNFOTc4N0UwMDU3OUYxMyAvKiBNZWRpYVN0cmVhbUV2ZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5QTJDRkQ2MTNFOTc4N0UwMDU3OUYx
MyAvKiBNZWRpYVN0cmVhbUV2ZW50LmNwcCAqLzsgfTsKLQkJNDlBMkNGREExM0U5Nzg3RTAwNTc5
RjEzIC8qIE1lZGlhU3RyZWFtRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ5QTJDRkQ3MTNFOTc4N0UwMDU3OUYxMyAvKiBNZWRpYVN0cmVhbUV2
ZW50LmggKi87IH07Ci0JCTQ5QTJEMzk0MTNFOTgxQTMwMDU3OUYxMyAvKiBKU01lZGlhU3RyZWFt
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDlBMkQzOTIxM0U5ODFBMzAwNTc5RjEzIC8qIEpTTWVkaWFTdHJlYW1FdmVudC5jcHAgKi87IH07
Ci0JCTQ5QTJEMzk1MTNFOTgxQTMwMDU3OUYxMyAvKiBKU01lZGlhU3RyZWFtRXZlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5QTJEMzkzMTNFOTgx
QTMwMDU3OUYxMyAvKiBKU01lZGlhU3RyZWFtRXZlbnQuaCAqLzsgfTsKLQkJNDlBNUE0RkUxM0Uy
RjAxRTAwQ0ZEQUUwIC8qIFBlZXJDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5QTVBNEY4MTNFMkYwMUUwMENGREFFMCAvKiBQZWVy
Q29ubmVjdGlvbi5jcHAgKi87IH07Ci0JCTQ5QTVBNEZGMTNFMkYwMUUwMENGREFFMCAvKiBQZWVy
Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDlBNUE0RjkxM0UyRjAxRTAwQ0ZEQUUwIC8qIFBlZXJDb25uZWN0aW9uLmggKi87IH07Ci0J
CTQ5QTVBNTAxMTNFMkYwMUUwMENGREFFMCAvKiBTaWduYWxpbmdDYWxsYmFjay5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlBNUE0RkIxM0UyRjAxRTAw
Q0ZEQUUwIC8qIFNpZ25hbGluZ0NhbGxiYWNrLmggKi87IH07Ci0JCTQ5QkUzMEQyMTNEOTc0N0Iw
MDM4MDhBOSAvKiBKU1BlZXJDb25uZWN0aW9uQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5QkUzMEQxMTNEOTc0N0IwMDM4MDhBOSAvKiBK
U1BlZXJDb25uZWN0aW9uQ3VzdG9tLmNwcCAqLzsgfTsKLQkJNDlCRTMwRjMxM0Q5NzY0NjAwMzgw
OEE5IC8qIEpTUGVlckNvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDlCRTMwRUYxM0Q5NzY0NjAwMzgwOEE5IC8qIEpTUGVlckNvbm5l
Y3Rpb24uY3BwICovOyB9OwotCQk0OUJFMzBGNDEzRDk3NjQ2MDAzODA4QTkgLyogSlNQZWVyQ29u
bmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDlCRTMwRjAxM0Q5NzY0NjAwMzgwOEE5IC8qIEpTUGVlckNvbm5lY3Rpb24uaCAqLzsgfTsKLQkJ
NDlCRTMwRjUxM0Q5NzY0NjAwMzgwOEE5IC8qIEpTU2lnbmFsaW5nQ2FsbGJhY2suY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlCRTMwRjExM0Q5NzY0
NjAwMzgwOEE5IC8qIEpTU2lnbmFsaW5nQ2FsbGJhY2suY3BwICovOyB9OwotCQk0OUJFMzBGNjEz
RDk3NjQ2MDAzODA4QTkgLyogSlNTaWduYWxpbmdDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlCRTMwRjIxM0Q5NzY0NjAwMzgwOEE5IC8q
IEpTU2lnbmFsaW5nQ2FsbGJhY2suaCAqLzsgfTsKIAkJNDlDN0I5OTMxMDQyRDJEMzAwMDlENDQ3
IC8qIEpTV2ViR0xCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDlDN0I5ODAxMDQyRDJEMzAwMDlENDQ3IC8qIEpTV2ViR0xCdWZmZXIuY3Bw
ICovOyB9OwogCQk0OUM3Qjk5NDEwNDJEMkQzMDAwOUQ0NDcgLyogSlNXZWJHTEJ1ZmZlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlDN0I5ODExMDQy
RDJEMzAwMDlENDQ3IC8qIEpTV2ViR0xCdWZmZXIuaCAqLzsgfTsKIAkJNDlDN0I5OTUxMDQyRDJE
MzAwMDlENDQ3IC8qIEpTSW50OEFycmF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ5QzdCOTgyMTA0MkQyRDMwMDA5RDQ0NyAvKiBKU0ludDhBcnJh
eS5jcHAgKi87IH07CkBAIC0xMTk0LDE0ICsxMTc5LDYgQEAKIAkJNDlDN0I5RkMxMDQyRDM2NTAw
MDlENDQ3IC8qIEdyYXBoaWNzQ29udGV4dDNELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0OUM3QjlGQjEwNDJEMzY1MDAwOUQ0NDcgLyogR3JhcGhpY3ND
b250ZXh0M0QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk0OUM3QkE3OTEwNDJFRkFFMDAwOUQ0NDcgLyogT3BlbkdMLmZyYW1ld29yayBpbiBGcmFt
ZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5QzdCQTc4MTA0MkVG
QUUwMDA5RDQ0NyAvKiBPcGVuR0wuZnJhbWV3b3JrICovOyB9OwogCQk0OUM3QkE4RDEwNDJGNUIx
MDAwOUQ0NDcgLyogSlNEb2N1bWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUM3QkE4QzEwNDJGNUIxMDAwOUQ0NDcgLyogSlNEb2N1
bWVudEN1c3RvbS5jcHAgKi87IH07Ci0JCTQ5QzlGMzIzMTNENTc0RjkwMDUyNjAwQSAvKiBNZWRp
YVN0cmVhbVRyYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDlDOUYzMUQxM0Q1NzRGODAwNTI2MDBBIC8qIE1lZGlhU3RyZWFtVHJhY2tMaXN0
LmggKi87IH07Ci0JCTQ5QzlGMzI0MTNENTc0RjkwMDUyNjAwQSAvKiBNZWRpYVN0cmVhbVRyYWNr
TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
OUM5RjMxRTEzRDU3NEY4MDA1MjYwMEEgLyogTWVkaWFTdHJlYW1UcmFja0xpc3QuY3BwICovOyB9
OwotCQk0OUM5RjMyNjEzRDU3NEY5MDA1MjYwMEEgLyogTWVkaWFTdHJlYW1UcmFjay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlDOUYzMjAxM0Q1NzRG
OTAwNTI2MDBBIC8qIE1lZGlhU3RyZWFtVHJhY2suaCAqLzsgfTsKLQkJNDlDOUYzMjcxM0Q1NzRG
OTAwNTI2MDBBIC8qIE1lZGlhU3RyZWFtVHJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlDOUYzMjExM0Q1NzRGOTAwNTI2MDBBIC8qIE1lZGlh
U3RyZWFtVHJhY2suY3BwICovOyB9OwotCQk0OUM5RjQ4RTEzRDU3RDMyMDA1MjYwMEEgLyogSlNN
ZWRpYVN0cmVhbVRyYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ5QzlGNDhBMTNENTdEMzIwMDUyNjAwQSAvKiBKU01lZGlhU3RyZWFtVHJhY2su
Y3BwICovOyB9OwotCQk0OUM5RjQ4RjEzRDU3RDMyMDA1MjYwMEEgLyogSlNNZWRpYVN0cmVhbVRy
YWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUM5
RjQ4QjEzRDU3RDMyMDA1MjYwMEEgLyogSlNNZWRpYVN0cmVhbVRyYWNrLmggKi87IH07Ci0JCTQ5
QzlGNDkwMTNENTdEMzIwMDUyNjAwQSAvKiBKU01lZGlhU3RyZWFtVHJhY2tMaXN0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5QzlGNDhDMTNENTdE
MzIwMDUyNjAwQSAvKiBKU01lZGlhU3RyZWFtVHJhY2tMaXN0LmNwcCAqLzsgfTsKLQkJNDlDOUY0
OTExM0Q1N0QzMjAwNTI2MDBBIC8qIEpTTWVkaWFTdHJlYW1UcmFja0xpc3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5QzlGNDhEMTNENTdEMzIwMDUy
NjAwQSAvKiBKU01lZGlhU3RyZWFtVHJhY2tMaXN0LmggKi87IH07CiAJCTQ5RDVEQzJCMEY0MjNB
NzMwMDhGMjBGRCAvKiBNYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUQ1REMyNzBGNDIzQTczMDA4RjIw
RkQgLyogTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uY3BwICovOyB9OwogCQk0OUQ1REMyQzBG
NDIzQTczMDA4RjIwRkQgLyogTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RDVEQzI4MEY0MjNBNzMwMDhG
MjBGRCAvKiBNYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ5RDVEQzJEMEY0MjNBNzMwMDhGMjBGRCAv
KiBQZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUQ1REMyOTBGNDIzQTczMDA4RjIwRkQgLyogUGVy
c3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwICovOyB9OwpAQCAtNDA5OCwxMCArNDA3NSw2
IEBACiAJCUIxMEI2OTgwMTQwQzE3NDAwMEJDMUMyNiAvKiBXZWJWVFRUb2tlbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjEwQjY5N0QxNDBDMTc0MDAw
QkMxQzI2IC8qIFdlYlZUVFRva2VuLmggKi87IH07CiAJCUIxMEI2OTgxMTQwQzE3NDAwMEJDMUMy
NiAvKiBXZWJWVFRUb2tlbml6ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQjEwQjY5N0UxNDBDMTc0MDAwQkMxQzI2IC8qIFdlYlZUVFRva2VuaXpl
ci5jcHAgKi87IH07CiAJCUIxMEI2OTgyMTQwQzE3NDAwMEJDMUMyNiAvKiBXZWJWVFRUb2tlbml6
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxMEI2
OTdGMTQwQzE3NDAwMEJDMUMyNiAvKiBXZWJWVFRUb2tlbml6ZXIuaCAqLzsgfTsKLQkJQjE0MzUz
RDUxMzhFQThFRDAwRDUzMjc2IC8qIE1lZGlhU3RyZWFtTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMTQzNTNEMTEzOEVBOEVEMDBENTMyNzYg
LyogTWVkaWFTdHJlYW1MaXN0LmNwcCAqLzsgfTsKLQkJQjE0MzUzRDYxMzhFQThFRDAwRDUzMjc2
IC8qIE1lZGlhU3RyZWFtTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjE0MzUzRDIxMzhFQThFRDAwRDUzMjc2IC8qIE1lZGlhU3RyZWFtTGlzdC5o
ICovOyB9OwotCQlCMTQzNTNGODEzOEVBOTVCMDBENTMyNzYgLyogSlNNZWRpYVN0cmVhbUxpc3Qu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjE0MzUz
RjYxMzhFQTk1QjAwRDUzMjc2IC8qIEpTTWVkaWFTdHJlYW1MaXN0LmNwcCAqLzsgfTsKLQkJQjE0
MzUzRjkxMzhFQTk1QjAwRDUzMjc2IC8qIEpTTWVkaWFTdHJlYW1MaXN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMTQzNTNGNzEzOEVBOTVCMDBENTMy
NzYgLyogSlNNZWRpYVN0cmVhbUxpc3QuaCAqLzsgfTsKIAkJQjE4Mjc0OTMxMzRDQTRDMTAwQjk4
QzJEIC8qIENhbGxiYWNrRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjE4Mjc0OTIxMzRDQTRDMTAwQjk4QzJEIC8qIENhbGxiYWNrRnVu
Y3Rpb24uY3BwICovOyB9OwogCQlCMUFENEU1QzEzQTEyQTBCMDA4NDZCMjcgLyogQ3VlSW5kZXgu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjFBRDRF
NEIxM0ExMkEwQjAwODQ2QjI3IC8qIEN1ZUluZGV4LmNwcCAqLzsgfTsKIAkJQjFBRDRFNUQxM0Ex
MkEwQjAwODQ2QjI3IC8qIEN1ZUluZGV4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCMUFENEU0QzEzQTEyQTBCMDA4NDZCMjcgLyogQ3VlSW5kZXguaCAq
LzsgfTsKQEAgLTQxMjEsMjkgKzQwOTQsMTUgQEAKIAkJQjFBRDRFN0MxM0ExMkE3MjAwODQ2QjI3
IC8qIEN1ZVBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQjFBRDRFNzkxM0ExMkE3MjAwODQ2QjI3IC8qIEN1ZVBhcnNlci5oICovOyB9OwogCQlC
MUFENEU3RDEzQTEyQTcyMDA4NDZCMjcgLyogQ3VlUGFyc2VyUHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjFBRDRFN0ExM0ExMkE3MjAwODQ2
QjI3IC8qIEN1ZVBhcnNlclByaXZhdGUuaCAqLzsgfTsKIAkJQjFENUVDQjUxMzRCNThEQTAwODdD
NzhGIC8qIENhbGxiYWNrRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEIxRDVFQ0I0MTM0QjU4REEwMDg3Qzc4RiAvKiBDYWxsYmFja0Z1bmN0
aW9uLmggKi87IH07Ci0JCUIxRTU0NTdBMTM0NjI5MUYwMDkyQTU0NSAvKiBMb2NhbE1lZGlhU3Ry
ZWFtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIx
RTU0NTcxMTM0NjI5MUYwMDkyQTU0NSAvKiBMb2NhbE1lZGlhU3RyZWFtLmNwcCAqLzsgfTsKLQkJ
QjFFNTQ1N0IxMzQ2MjkxRjAwOTJBNTQ1IC8qIExvY2FsTWVkaWFTdHJlYW0uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxRTU0NTcyMTM0NjI5MUYwMDky
QTU0NSAvKiBMb2NhbE1lZGlhU3RyZWFtLmggKi87IH07Ci0JCUIxRTU0NTdEMTM0NjI5MUYwMDky
QTU0NSAvKiBNZWRpYVN0cmVhbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCMUU1NDU3NDEzNDYyOTFGMDA5MkE1NDUgLyogTWVkaWFTdHJlYW0uY3Bw
ICovOyB9OwotCQlCMUU1NDU3RTEzNDYyOTFGMDA5MkE1NDUgLyogTWVkaWFTdHJlYW0uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxRTU0NTc1MTM0NjI5
MUYwMDkyQTU0NSAvKiBNZWRpYVN0cmVhbS5oICovOyB9OwotCQlCMUU1NDU5MzEzNDYyOUMxMDA5
MkE1NDUgLyogQ2FsbGJhY2tUYXNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCMUU1NDU4NzEzNDYyOUMxMDA5MkE1NDUgLyogQ2FsbGJhY2tUYXNrLmgg
Ki87IH07Ci0JCUIxRTU0NTk0MTM0NjI5QzEwMDkyQTU0NSAvKiBNZWRpYVN0cmVhbUNsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjFFNTQ1ODgx
MzQ2MjlDMTAwOTJBNTQ1IC8qIE1lZGlhU3RyZWFtQ2xpZW50LmggKi87IH07Ci0JCUIxRTU0NTk1
MTM0NjI5QzEwMDkyQTU0NSAvKiBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUU1NDU4OTEzNDYyOUMx
MDA5MkE1NDUgLyogTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIuY3BwICovOyB9OwotCQlCMUU1
NDU5NjEzNDYyOUMxMDA5MkE1NDUgLyogTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxRTU0NThBMTM0NjI5
QzEwMDkyQTU0NSAvKiBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlci5oICovOyB9OwotCQlCMUU1
NDU5NzEzNDYyOUMxMDA5MkE1NDUgLyogTWVkaWFTdHJlYW1Db250cm9sbGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxRTU0NThCMTM0NjI5QzEw
MDkyQTU0NSAvKiBNZWRpYVN0cmVhbUNvbnRyb2xsZXIuY3BwICovOyB9OwotCQlCMUU1NDU5ODEz
NDYyOUMxMDA5MkE1NDUgLyogTWVkaWFTdHJlYW1Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUU1NDU4QzEzNDYyOUMxMDA5MkE1NDUg
LyogTWVkaWFTdHJlYW1Db250cm9sbGVyLmggKi87IH07CiAJCUIxRTU0NTk5MTM0NjI5QzEwMDky
QTU0NSAvKiBOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjFFNTQ1OEQxMzQ2MjlDMTAwOTJBNTQ1IC8qIE5hdmln
YXRvclVzZXJNZWRpYUVycm9yLmggKi87IH07CiAJCUIxRTU0NTlCMTM0NjI5QzEwMDkyQTU0NSAv
KiBOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUU1NDU4RjEzNDYyOUMxMDA5MkE1NDUgLyogTmF2
aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5oICovOyB9OwogCQlCMUU1NDU5RDEzNDYyOUMx
MDA5MkE1NDUgLyogTmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUU1NDU5MTEzNDYyOUMxMDA5
MkE1NDUgLyogTmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmggKi87IH07Ci0JCUIx
RTU0NUREMTM0NjJCMEIwMDkyQTU0NSAvKiBKU0xvY2FsTWVkaWFTdHJlYW0uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjFFNTQ1Q0YxMzQ2MkIwQjAw
OTJBNTQ1IC8qIEpTTG9jYWxNZWRpYVN0cmVhbS5jcHAgKi87IH07Ci0JCUIxRTU0NURFMTM0NjJC
MEIwMDkyQTU0NSAvKiBKU0xvY2FsTWVkaWFTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxRTU0NUQwMTM0NjJCMEIwMDkyQTU0NSAvKiBKU0xv
Y2FsTWVkaWFTdHJlYW0uaCAqLzsgfTsKIAkJQjFFNTQ1REYxMzQ2MkIwQjAwOTJBNTQ1IC8qIEpT
TmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjFFNTQ1RDExMzQ2MkIwQjAwOTJBNTQ1IC8qIEpTTmF2aWdhdG9y
VXNlck1lZGlhRXJyb3IuY3BwICovOyB9OwogCQlCMUU1NDVFMDEzNDYyQjBCMDA5MkE1NDUgLyog
SlNOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjFFNTQ1RDIxMzQ2MkIwQjAwOTJBNTQ1IC8qIEpTTmF2aWdhdG9y
VXNlck1lZGlhRXJyb3IuaCAqLzsgfTsKIAkJQjFFNTQ1RTExMzQ2MkIwQjAwOTJBNTQ1IC8qIEpT
TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUU1NDVEMzEzNDYyQjBCMDA5MkE1NDUgLyogSlNO
YXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmNwcCAqLzsgfTsKIAkJQjFFNTQ1RTIxMzQ2
MkIwQjAwOTJBNTQ1IC8qIEpTTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjFFNTQ1RDQxMzQ2MkIw
QjAwOTJBNTQ1IC8qIEpTTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5oICovOyB9Owog
CQlCMUU1NDVFMzEzNDYyQjBCMDA5MkE1NDUgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNz
Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQjFFNTQ1RDUxMzQ2MkIwQjAwOTJBNTQ1IC8qIEpTTmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vz
c0NhbGxiYWNrLmNwcCAqLzsgfTsKIAkJQjFFNTQ1RTQxMzQ2MkIwQjAwOTJBNTQ1IC8qIEpTTmF2
aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUU1NDVENjEzNDYyQjBCMDA5MkE1NDUgLyogSlNOYXZp
Z2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaCAqLzsgfTsKLQkJQjFFNTQ1RTUxMzQ2MkIw
QjAwOTJBNTQ1IC8qIEpTTWVkaWFTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQjFFNTQ1RDcxMzQ2MkIwQjAwOTJBNTQ1IC8qIEpTTWVkaWFT
dHJlYW0uY3BwICovOyB9OwotCQlCMUU1NDVFNjEzNDYyQjBCMDA5MkE1NDUgLyogSlNNZWRpYVN0
cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjFF
NTQ1RDgxMzQ2MkIwQjAwOTJBNTQ1IC8qIEpTTWVkaWFTdHJlYW0uaCAqLzsgfTsKIAkJQjIwMTEx
MDcwQUI3NzQwNTAwREIwRTY4IC8qIEpTU1ZHQUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIwMTExMDUwQUI3NzQwNTAwREIwRTY4IC8q
IEpTU1ZHQUVsZW1lbnQuY3BwICovOyB9OwogCQlCMjAxMTEwODBBQjc3NDA1MDBEQjBFNjggLyog
SlNTVkdBRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQjIwMTExMDYwQUI3NzQwNTAwREIwRTY4IC8qIEpTU1ZHQUVsZW1lbnQuaCAqLzsgfTsK
IAkJQjIyMjc5NjIwRDAwQkYyMjAwNzFCNzgyIC8qIENvbG9yRGlzdGFuY2UuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc3Q0IwRDAwQkYxRjAw
NzFCNzgyIC8qIENvbG9yRGlzdGFuY2UuY3BwICovOyB9OwpAQCAtNzcwMSw3ICs3NjYwLDYgQEAK
IAkJNDZGOUQ1REMwQjBENjAxNzAwMjhFRTM2IC8qIHByb2dyZXNzQ3Vyc29yLnBuZyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0
aCA9IHByb2dyZXNzQ3Vyc29yLnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkw
NzA3RTQxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFOR0xFV2ViS2l0QnJpZGdlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkwNzA3RTUxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xF
V2ViS2l0QnJpZGdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFOR0xFV2Vi
S2l0QnJpZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5MEM0N0NEMTNFODJE
MTgwMEY3QUI4MiAvKiBEaXNwYXRjaFRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRGlzcGF0Y2hUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5Mjg2
Mzk4MTI1M0I4RkMwMEY3OTJENiAvKiBSZXNvdXJjZUxvYWRJbmZvLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlTG9hZEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDkyOTFFNEExMzQxNzJDODAwRTc1M0RFIC8qIEltYWdlUmVuZGVyaW5nTW9k
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVJlbmRlcmluZ01vZGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkzRTVFMDgxMkQ2NDIwNTAwMDIwMDgx
IC8qIFBsYXRmb3JtQ0FMYXllckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQuaDsgcGF0aCA9IGNhL1BsYXRmb3JtQ0FMYXllckNs
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzczMCw4ICs3Njg4LDYgQEAK
IAkJNDk1ODc4MjAxMkE1N0RERjAwNzIzOEFDIC8qIFBsYXRmb3JtQ0FMYXllck1hYy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFBsYXRmb3JtQ0FMYXllck1hYy5t
bTsgcGF0aCA9IGNhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ5NjlCMEYwMTNEMEIzM0YwMERGMzUyMSAvKiBIaXRUZXN0aW5nVHJhbnNm
b3JtU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGl0VGVz
dGluZ1RyYW5zZm9ybVN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk2
OUIwRjExM0QwQjMzRjAwREYzNTIxIC8qIEhpdFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDk3ODVFREUxM0YxOTJGMDAwQTc5NUFEIC8q
IE1lZGlhU3RyZWFtUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTWVkaWFTdHJlYW1SZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTQ5Nzg1RURGMTNGMTkyRjAwMEE3OTVBRCAvKiBNZWRpYVN0cmVhbVJlZ2lzdHJ5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU3RyZWFtUmVnaXN0cnkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk4MzkxM0QwRjFFNzY3NTAwQzIzNzgyIC8qIEpT
V2ViS2l0Q1NTTWF0cml4LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTV2ViS2l0Q1NTTWF0cml4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk4
MzkxM0UwRjFFNzY3NTAwQzIzNzgyIC8qIEpTV2ViS2l0Q1NTTWF0cml4LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViS2l0Q1NTTWF0cml4Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ5ODM5MTREMEYxRTc2QjQwMEMyMzc4MiAvKiBET01XZWJLaXRDU1NN
YXRyaXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NV2ViS2l0Q1NTTWF0
cml4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NzYwLDIxICs3NzE2LDYgQEAK
IAkJNDk5QjNFRDQxMjhDRDMxNDAwRTcyNkMyIC8qIEdyYXBoaWNzTGF5ZXJDQS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBHcmFwaGljc0xheWVyQ0EuY3BwOyBwYXRo
ID0gY2EvR3JhcGhpY3NMYXllckNBLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDk5QjNFRDUxMjhDRDMxNDAwRTcyNkMyIC8qIEdyYXBoaWNzTGF5ZXJDQS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBHcmFwaGljc0xheWVyQ0EuaDsgcGF0aCA9IGNhL0dyYXBo
aWNzTGF5ZXJDQS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTlCM0VEQzEyOERC
NTAxMDBFNzI2QzIgLyogUGxhdGZvcm1DQUFuaW1hdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBQbGF0Zm9ybUNBQW5pbWF0aW9uLmg7IHBhdGggPSBjYS9QbGF0Zm9ybUNB
QW5pbWF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5QTJDRkQ2MTNFOTc4
N0UwMDU3OUYxMyAvKiBNZWRpYVN0cmVhbUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IE1lZGlhU3RyZWFtRXZlbnQuY3BwOyBwYXRoID0gcDJwL01lZGlhU3Ry
ZWFtRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OUEyQ0ZENzEzRTk3
ODdFMDA1NzlGMTMgLyogTWVkaWFTdHJlYW1FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBNZWRpYVN0cmVhbUV2ZW50Lmg7IHBhdGggPSBwMnAvTWVkaWFTdHJlYW1FdmVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OUEyQ0ZEODEzRTk3ODdFMDA1NzlG
MTMgLyogTWVkaWFTdHJlYW1FdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gTWVkaWFT
dHJlYW1FdmVudC5pZGw7IHBhdGggPSBwMnAvTWVkaWFTdHJlYW1FdmVudC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5QTJEMzkyMTNFOTgxQTMwMDU3OUYxMyAvKiBKU01lZGlh
U3RyZWFtRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNN
ZWRpYVN0cmVhbUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlBMkQz
OTMxM0U5ODFBMzAwNTc5RjEzIC8qIEpTTWVkaWFTdHJlYW1FdmVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhU3RyZWFtRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNDlBNUE0RjgxM0UyRjAxRTAwQ0ZEQUUwIC8qIFBlZXJDb25uZWN0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFBlZXJDb25uZWN0aW9u
LmNwcDsgcGF0aCA9IHAycC9QZWVyQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTQ5QTVBNEY5MTNFMkYwMUUwMENGREFFMCAvKiBQZWVyQ29ubmVjdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQZWVyQ29ubmVjdGlvbi5oOyBwYXRoID0g
cDJwL1BlZXJDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5QTVB
NEZBMTNFMkYwMUUwMENGREFFMCAvKiBQZWVyQ29ubmVjdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBuYW1lID0gUGVlckNvbm5lY3Rpb24uaWRsOyBwYXRoID0gcDJwL1BlZXJDb25uZWN0aW9uLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlBNUE0RkIxM0UyRjAxRTAwQ0ZEQUUw
IC8qIFNpZ25hbGluZ0NhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFNpZ25hbGluZ0NhbGxiYWNrLmg7IHBhdGggPSBwMnAvU2lnbmFsaW5nQ2FsbGJhY2suaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlBNUE0RkMxM0UyRjAxRTAwQ0ZEQUUwIC8qIFNp
Z25hbGluZ0NhbGxiYWNrLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTaWduYWxpbmdDYWxs
YmFjay5pZGw7IHBhdGggPSBwMnAvU2lnbmFsaW5nQ2FsbGJhY2suaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk0OUJFMzBEMTEzRDk3NDdCMDAzODA4QTkgLyogSlNQZWVyQ29ubmVj
dGlvbkN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Bl
ZXJDb25uZWN0aW9uQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlC
RTMwRUYxM0Q5NzY0NjAwMzgwOEE5IC8qIEpTUGVlckNvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQZWVyQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5QkUzMEYwMTNEOTc2NDYwMDM4MDhBOSAvKiBKU1BlZXJD
b25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUGVlckNvbm5l
Y3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlCRTMwRjExM0Q5NzY0NjAw
MzgwOEE5IC8qIEpTU2lnbmFsaW5nQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNTaWduYWxpbmdDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTQ5QkUzMEYyMTNEOTc2NDYwMDM4MDhBOSAvKiBKU1NpZ25hbGluZ0NhbGxi
YWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2lnbmFsaW5nQ2FsbGJh
Y2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlDN0I5ODAxMDQyRDJEMzAwMDlE
NDQ3IC8qIEpTV2ViR0xCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNXZWJHTEJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5
QzdCOTgxMTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dlYkdMQnVmZmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDlDN0I5ODIxMDQyRDJEMzAwMDlENDQ3IC8qIEpTSW50OEFycmF5LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSW50OEFycmF5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc4MjEsMTYgKzc3NjIsNiBAQAogCQk0OUM3QjlGQjEw
NDJEMzY1MDAwOUQ0NDcgLyogR3JhcGhpY3NDb250ZXh0M0QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0M0QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDlDN0JBNzgxMDQyRUZBRTAwMDlENDQ3IC8qIE9wZW5HTC5mcmFtZXdvcmsgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZy
YW1ld29yazsgbmFtZSA9IE9wZW5HTC5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy9PcGVuR0wuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9
OwogCQk0OUM3QkE4QzEwNDJGNUIxMDAwOUQ0NDcgLyogSlNEb2N1bWVudEN1c3RvbS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RvY3VtZW50Q3VzdG9tLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlDOUYzMUMxM0Q1NzRGODAwNTI2MDBBIC8q
IE1lZGlhU3RyZWFtVHJhY2tMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVN0
cmVhbVRyYWNrTGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5QzlGMzFE
MTNENTc0RjgwMDUyNjAwQSAvKiBNZWRpYVN0cmVhbVRyYWNrTGlzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVN0cmVhbVRyYWNrTGlzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk0OUM5RjMxRTEzRDU3NEY4MDA1MjYwMEEgLyogTWVkaWFTdHJlYW1U
cmFja0xpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFT
dHJlYW1UcmFja0xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OUM5RjMx
RjEzRDU3NEY4MDA1MjYwMEEgLyogTWVkaWFTdHJlYW1UcmFjay5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gTWVkaWFTdHJlYW1UcmFjay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTQ5QzlGMzIwMTNENTc0RjkwMDUyNjAwQSAvKiBNZWRpYVN0cmVhbVRyYWNrLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU3RyZWFtVHJhY2suaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlDOUYzMjExM0Q1NzRGOTAwNTI2MDBBIC8qIE1lZGlhU3Ry
ZWFtVHJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFT
dHJlYW1UcmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5QzlGNDhBMTNE
NTdEMzIwMDUyNjAwQSAvKiBKU01lZGlhU3RyZWFtVHJhY2suY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYVN0cmVhbVRyYWNrLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJNDlDOUY0OEIxM0Q1N0QzMjAwNTI2MDBBIC8qIEpTTWVkaWFTdHJl
YW1UcmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhU3RyZWFt
VHJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlDOUY0OEMxM0Q1N0QzMjAw
NTI2MDBBIC8qIEpTTWVkaWFTdHJlYW1UcmFja0xpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYVN0cmVhbVRyYWNrTGlzdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTQ5QzlGNDhEMTNENTdEMzIwMDUyNjAwQSAvKiBKU01lZGlhU3Ry
ZWFtVHJhY2tMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFT
dHJlYW1UcmFja0xpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlENURDMjcw
RjQyM0E3MzAwOEYyMEZEIC8qIE1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9u
LmNwcDsgcGF0aCA9IHRyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUQ1REMyODBGNDIzQTczMDA4RjIwRkQgLyog
TWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uaDsgcGF0aCA9IHRyYW5zZm9ybXMvTWF0
cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDlENURDMjkwRjQyM0E3MzAwOEYyMEZEIC8qIFBlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFBlcnNwZWN0aXZlVHJh
bnNmb3JtT3BlcmF0aW9uLmNwcDsgcGF0aCA9IHRyYW5zZm9ybXMvUGVyc3BlY3RpdmVUcmFuc2Zv
cm1PcGVyYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA2NTUsMTEg
KzEwNTg2LDYgQEAKIAkJQjEwQjY5N0QxNDBDMTc0MDAwQkMxQzI2IC8qIFdlYlZUVFRva2VuLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlZUVFRva2VuLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIxMEI2OTdFMTQwQzE3NDAwMEJDMUMyNiAvKiBXZWJWVFRU
b2tlbml6ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVlRU
VG9rZW5pemVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjEwQjY5N0YxNDBD
MTc0MDAwQkMxQzI2IC8qIFdlYlZUVFRva2VuaXplci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJWVFRUb2tlbml6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQjE0MzUzRDExMzhFQThFRDAwRDUzMjc2IC8qIE1lZGlhU3RyZWFtTGlzdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmVhbUxpc3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCMTQzNTNEMjEzOEVBOEVEMDBENTMyNzYgLyogTWVk
aWFTdHJlYW1MaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU3Ry
ZWFtTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCMTQzNTNEMzEzOEVBOEVE
MDBENTMyNzYgLyogTWVkaWFTdHJlYW1MaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBN
ZWRpYVN0cmVhbUxpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCMTQzNTNG
NjEzOEVBOTVCMDBENTMyNzYgLyogSlNNZWRpYVN0cmVhbUxpc3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYVN0cmVhbUxpc3QuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlCMTQzNTNGNzEzOEVBOTVCMDBENTMyNzYgLyogSlNNZWRpYVN0
cmVhbUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRpYVN0cmVh
bUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjE4Mjc0OTIxMzRDQTRDMTAw
Qjk4QzJEIC8qIENhbGxiYWNrRnVuY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ2FsbGJhY2tGdW5jdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUIxQUQ0RTRCMTNBMTJBMEIwMDg0NkIyNyAvKiBDdWVJbmRleC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdWVJbmRleC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUIxQUQ0RTRDMTNBMTJBMEIwMDg0NkIyNyAvKiBDdWVJbmRleC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDdWVJbmRleC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTA2NzksMzQgKzEwNjA1LDE4IEBACiAJCUIxQUQ0RTc5MTNBMTJB
NzIwMDg0NkIyNyAvKiBDdWVQYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ3VlUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIxQUQ0RTdBMTNB
MTJBNzIwMDg0NkIyNyAvKiBDdWVQYXJzZXJQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEN1ZVBhcnNlclByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQjFENUVDQjQxMzRCNThEQTAwODdDNzhGIC8qIENhbGxiYWNrRnVuY3Rpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FsbGJhY2tGdW5jdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlCMUU1NDU3MTEzNDYyOTFGMDA5MkE1NDUgLyogTG9jYWxN
ZWRpYVN0cmVhbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2Nh
bE1lZGlhU3RyZWFtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjFFNTQ1NzIx
MzQ2MjkxRjAwOTJBNTQ1IC8qIExvY2FsTWVkaWFTdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTG9jYWxNZWRpYVN0cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlCMUU1NDU3MzEzNDYyOTFGMDA5MkE1NDUgLyogTG9jYWxNZWRpYVN0cmVhbS5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTG9jYWxNZWRpYVN0cmVhbS5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUIxRTU0NTc0MTM0NjI5MUYwMDkyQTU0NSAvKiBNZWRpYVN0cmVh
bS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmVhbS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIxRTU0NTc1MTM0NjI5MUYwMDkyQTU0
NSAvKiBNZWRpYVN0cmVhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRp
YVN0cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCMUU1NDU3NjEzNDYyOTFG
MDA5MkE1NDUgLyogTWVkaWFTdHJlYW0uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlh
U3RyZWFtLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjFFNTQ1ODcxMzQ2MjlD
MTAwOTJBNTQ1IC8qIENhbGxiYWNrVGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDYWxsYmFja1Rhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjFFNTQ1
ODgxMzQ2MjlDMTAwOTJBNTQ1IC8qIE1lZGlhU3RyZWFtQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU3RyZWFtQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUIxRTU0NTg5MTM0NjI5QzEwMDkyQTU0NSAvKiBNZWRpYVN0cmVhbUZyYW1l
Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRp
YVN0cmVhbUZyYW1lQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUIxRTU0NThBMTM0NjI5QzEwMDkyQTU0NSAvKiBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVN0cmVhbUZyYW1lQ29udHJv
bGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCMUU1NDU4QjEzNDYyOUMxMDA5
MkE1NDUgLyogTWVkaWFTdHJlYW1Db250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1lZGlhU3RyZWFtQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUIxRTU0NThDMTM0NjI5QzEwMDkyQTU0NSAvKiBNZWRpYVN0cmVhbUNv
bnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJlYW1D
b250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIxRTU0NThEMTM0NjI5
QzEwMDkyQTU0NSAvKiBOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCMUU1NDU4RTEzNDYyOUMxMDA5MkE1NDUgLyogTmF2aWdhdG9yVXNl
ck1lZGlhRXJyb3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5hdmlnYXRvclVzZXJNZWRp
YUVycm9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjFFNTQ1OEYxMzQ2MjlD
MTAwOTJBNTQ1IC8qIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2suaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMUU1NDU5MDEzNDYyOUMxMDA5MkE1NDUg
LyogTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUIxRTU0NTkxMTM0NjI5QzEwMDkyQTU0NSAvKiBOYXZpZ2F0b3JVc2Vy
TWVkaWFTdWNjZXNzQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUIxRTU0NTkyMTM0NjI5QzEwMDkyQTU0NSAvKiBOYXZpZ2F0b3JVc2VyTWVkaWFT
dWNjZXNzQ2FsbGJhY2suaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5hdmlnYXRvclVzZXJN
ZWRpYVN1Y2Nlc3NDYWxsYmFjay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIx
RTU0NUNGMTM0NjJCMEIwMDkyQTU0NSAvKiBKU0xvY2FsTWVkaWFTdHJlYW0uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNMb2NhbE1lZGlhU3RyZWFtLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjFFNTQ1RDAxMzQ2MkIwQjAwOTJBNTQ1IC8qIEpT
TG9jYWxNZWRpYVN0cmVhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0xv
Y2FsTWVkaWFTdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjFFNTQ1RDEx
MzQ2MkIwQjAwOTJBNTQ1IC8qIEpTTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIxRTU0NUQyMTM0NjJCMEIwMDkyQTU0
NSAvKiBKU05hdmlnYXRvclVzZXJNZWRpYUVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQjFFNTQ1RDMxMzQ2MkIwQjAwOTJBNTQ1IC8qIEpTTmF2aWdhdG9yVXNlck1l
ZGlhRXJyb3JDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU05hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCMUU1NDVENDEzNDYyQjBCMDA5MkE1NDUgLyogSlNOYXZpZ2F0b3JVc2Vy
TWVkaWFFcnJvckNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCMUU1NDVENTEzNDYyQjBCMDA5MkE1NDUgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWFT
dWNjZXNzQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCMUU1NDVENjEzNDYyQjBCMDA5MkE1NDUgLyogSlNOYXZpZ2F0b3JVc2Vy
TWVkaWFTdWNjZXNzQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQjFFNTQ1RDcxMzQ2MkIwQjAwOTJBNTQ1IC8qIEpTTWVkaWFTdHJlYW0uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYVN0cmVhbS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIxRTU0NUQ4MTM0NjJCMEIwMDkyQTU0NSAv
KiBKU01lZGlhU3RyZWFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVk
aWFTdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjIwMTExMDUwQUI3NzQw
NTAwREIwRTY4IC8qIEpTU1ZHQUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTU1ZHQUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCMjAxMTEwNjBBQjc3NDA1MDBEQjBFNjggLyogSlNTVkdBRWxlbWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTVkdBRWxlbWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCMjIyNzdDQjBEMDBCRjFGMDA3MUI3ODIgLyogQ29sb3JEaXN0YW5j
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29sb3JEaXN0YW5j
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDEyOCwyMSArMTQwMzgsNiBA
QAogCQkJbmFtZSA9IGNhOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJNDlB
NUE0RjYxM0UyRUZFNjAwQ0ZEQUUwIC8qIHAycCAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwot
CQkJY2hpbGRyZW4gPSAoCi0JCQkJNDlBMkNGRDYxM0U5Nzg3RTAwNTc5RjEzIC8qIE1lZGlhU3Ry
ZWFtRXZlbnQuY3BwICovLAotCQkJCTQ5QTJDRkQ3MTNFOTc4N0UwMDU3OUYxMyAvKiBNZWRpYVN0
cmVhbUV2ZW50LmggKi8sCi0JCQkJNDlBMkNGRDgxM0U5Nzg3RTAwNTc5RjEzIC8qIE1lZGlhU3Ry
ZWFtRXZlbnQuaWRsICovLAotCQkJCTQ5QTVBNEY4MTNFMkYwMUUwMENGREFFMCAvKiBQZWVyQ29u
bmVjdGlvbi5jcHAgKi8sCi0JCQkJNDlBNUE0RjkxM0UyRjAxRTAwQ0ZEQUUwIC8qIFBlZXJDb25u
ZWN0aW9uLmggKi8sCi0JCQkJNDlBNUE0RkExM0UyRjAxRTAwQ0ZEQUUwIC8qIFBlZXJDb25uZWN0
aW9uLmlkbCAqLywKLQkJCQk0OUE1QTRGQjEzRTJGMDFFMDBDRkRBRTAgLyogU2lnbmFsaW5nQ2Fs
bGJhY2suaCAqLywKLQkJCQk0OUE1QTRGQzEzRTJGMDFFMDBDRkRBRTAgLyogU2lnbmFsaW5nQ2Fs
bGJhY2suaWRsICovLAotCQkJKTsKLQkJCW5hbWUgPSBwMnA7Ci0JCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwotCQl9OwogCQk0OUU5MTFCMjBFRjg2RDI3MDA5RDBDQUYgLyogdHJhbnNmb3JtcyAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xNDYxNCw3ICsx
NDUwOSw2IEBACiAJCQkJQkMxMjRFRTQwQzI2NDFDRDAwOUUyMzQ5IC8qIEJhckluZm8uY3BwICov
LAogCQkJCUJDMTI0RUU1MEMyNjQxQ0QwMDlFMjM0OSAvKiBCYXJJbmZvLmggKi8sCiAJCQkJQkMx
MjRFRTYwQzI2NDFDRDAwOUUyMzQ5IC8qIEJhckluZm8uaWRsICovLAotCQkJCUIxRTU0NTg3MTM0
NjI5QzEwMDkyQTU0NSAvKiBDYWxsYmFja1Rhc2suaCAqLywKIAkJCQkxNEQ4MjM4QTBBRjkyREY2
MDAwNEYwNTcgLyogQ2hyb21lLmNwcCAqLywKIAkJCQkxNEQ4MjM1MDBBRjkyQTc5MDAwNEYwNTcg
LyogQ2hyb21lLmggKi8sCiAJCQkJMTREODI0MDYwQUY5M0FFQjAwMDRGMDU3IC8qIENocm9tZUNs
aWVudC5oICovLApAQCAtMTQ2ODIsMTEgKzE0NTc2LDYgQEAKIAkJCQlCQ0UxQzQxOTBEOTgyOTgw
MDAzQjAyRjIgLyogTG9jYXRpb24uaCAqLywKIAkJCQlCQ0UxQzQyMjBEOTgyOUYyMDAzQjAyRjIg
LyogTG9jYXRpb24uaWRsICovLAogCQkJCTkzMUJDQzYwMTEyNERGQ0IwMEJFNzBERCAvKiBNZWRp
YUNhblN0YXJ0TGlzdGVuZXIuaCAqLywKLQkJCQlCMUU1NDU4ODEzNDYyOUMxMDA5MkE1NDUgLyog
TWVkaWFTdHJlYW1DbGllbnQuaCAqLywKLQkJCQlCMUU1NDU4QjEzNDYyOUMxMDA5MkE1NDUgLyog
TWVkaWFTdHJlYW1Db250cm9sbGVyLmNwcCAqLywKLQkJCQlCMUU1NDU4QzEzNDYyOUMxMDA5MkE1
NDUgLyogTWVkaWFTdHJlYW1Db250cm9sbGVyLmggKi8sCi0JCQkJQjFFNTQ1ODkxMzQ2MjlDMTAw
OTJBNTQ1IC8qIE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyLmNwcCAqLywKLQkJCQlCMUU1NDU4
QTEzNDYyOUMxMDA5MkE1NDUgLyogTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIuaCAqLywKIAkJ
CQk5RkZFM0U3ODExQjU5QzVEMDAzNzg3NEUgLyogTWVtb3J5SW5mby5jcHAgKi8sCiAJCQkJOUZG
RTNFNzkxMUI1OUM1RDAwMzc4NzRFIC8qIE1lbW9yeUluZm8uaCAqLywKIAkJCQk5RkZFM0U3QzEx
QjU5QzZFMDAzNzg3NEUgLyogTWVtb3J5SW5mby5pZGwgKi8sCkBAIC0xNzQwMSwxOCArMTcyOTAs
NiBAQAogCQkJCUZFODBEQTYwMEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggKi8s
CiAJCQkJRkU4MERBNjEwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvcG9zaXRpb24uY3BwICovLAog
CQkJCUZFODBEQTYyMEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb3Bvc2l0aW9uLmggKi8sCi0JCQkJ
QjFFNTQ1Q0YxMzQ2MkIwQjAwOTJBNTQ1IC8qIEpTTG9jYWxNZWRpYVN0cmVhbS5jcHAgKi8sCi0J
CQkJQjFFNTQ1RDAxMzQ2MkIwQjAwOTJBNTQ1IC8qIEpTTG9jYWxNZWRpYVN0cmVhbS5oICovLAot
CQkJCUIxRTU0NUQ3MTM0NjJCMEIwMDkyQTU0NSAvKiBKU01lZGlhU3RyZWFtLmNwcCAqLywKLQkJ
CQlCMUU1NDVEODEzNDYyQjBCMDA5MkE1NDUgLyogSlNNZWRpYVN0cmVhbS5oICovLAotCQkJCTQ5
QTJEMzkyMTNFOTgxQTMwMDU3OUYxMyAvKiBKU01lZGlhU3RyZWFtRXZlbnQuY3BwICovLAotCQkJ
CTQ5QTJEMzkzMTNFOTgxQTMwMDU3OUYxMyAvKiBKU01lZGlhU3RyZWFtRXZlbnQuaCAqLywKLQkJ
CQlCMTQzNTNGNjEzOEVBOTVCMDBENTMyNzYgLyogSlNNZWRpYVN0cmVhbUxpc3QuY3BwICovLAot
CQkJCUIxNDM1M0Y3MTM4RUE5NUIwMEQ1MzI3NiAvKiBKU01lZGlhU3RyZWFtTGlzdC5oICovLAot
CQkJCTQ5QzlGNDhBMTNENTdEMzIwMDUyNjAwQSAvKiBKU01lZGlhU3RyZWFtVHJhY2suY3BwICov
LAotCQkJCTQ5QzlGNDhCMTNENTdEMzIwMDUyNjAwQSAvKiBKU01lZGlhU3RyZWFtVHJhY2suaCAq
LywKLQkJCQk0OUM5RjQ4QzEzRDU3RDMyMDA1MjYwMEEgLyogSlNNZWRpYVN0cmVhbVRyYWNrTGlz
dC5jcHAgKi8sCi0JCQkJNDlDOUY0OEQxM0Q1N0QzMjAwNTI2MDBBIC8qIEpTTWVkaWFTdHJlYW1U
cmFja0xpc3QuaCAqLywKIAkJCQlCQ0Q5QzJCQzBDMTdCNjlFMDA1QzkwQTIgLyogSlNOYW1lZE5v
ZGVNYXAuY3BwICovLAogCQkJCUJDRDlDMkJEMEMxN0I2OUUwMDVDOTBBMiAvKiBKU05hbWVkTm9k
ZU1hcC5oICovLAogCQkJCTE0REMwRDM1MDlGRUQwNzMwMDdCMDIzNSAvKiBKU05vZGUuY3BwICov
LApAQCAtMTc0MjEsOCArMTcyOTgsNiBAQAogCQkJCUJDRDlDMkJGMEMxN0I2OUUwMDVDOTBBMiAv
KiBKU05vZGVMaXN0LmggKi8sCiAJCQkJNjVERjMxRTkwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTTm90
YXRpb24uY3BwICovLAogCQkJCTY1REYzMUVBMDlEMUNDNjAwMDBCRTMyNSAvKiBKU05vdGF0aW9u
LmggKi8sCi0JCQkJNDlCRTMwRUYxM0Q5NzY0NjAwMzgwOEE5IC8qIEpTUGVlckNvbm5lY3Rpb24u
Y3BwICovLAotCQkJCTQ5QkUzMEYwMTNEOTc2NDYwMDM4MDhBOSAvKiBKU1BlZXJDb25uZWN0aW9u
LmggKi8sCiAJCQkJNTk4MzY1RTMxMzU1RjYwNDAwMUIxODVEIC8qIEpTUG9zaXRpb25DYWxsYmFj
ay5jcHAgKi8sCiAJCQkJNTk4MzY1REMxMzU1RjUzQzAwMUIxODVEIC8qIEpTUG9zaXRpb25DYWxs
YmFjay5oICovLAogCQkJCUZFODBEQTZEMEU5QzQ3MkYwMDBENkY3NSAvKiBKU1Bvc2l0aW9uRXJy
b3IuY3BwICovLApAQCAtMTc0MzUsOCArMTczMTAsNiBAQAogCQkJCUU0QjQyMzg2MENCRkI3M0Mw
MEFGMkVDRSAvKiBKU1Byb2dyZXNzRXZlbnQuaCAqLywKIAkJCQk0OTk4QUVDQjEzRjlENkM5MDA5
MEIxQUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5jcHAgKi8sCiAJCQkJNDk5
OEFFQ0MxM0Y5RDZDOTAwOTBCMUFBIC8qIEpTUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2su
aCAqLywKLQkJCQk0OUJFMzBGMTEzRDk3NjQ2MDAzODA4QTkgLyogSlNTaWduYWxpbmdDYWxsYmFj
ay5jcHAgKi8sCi0JCQkJNDlCRTMwRjIxM0Q5NzY0NjAwMzgwOEE5IC8qIEpTU2lnbmFsaW5nQ2Fs
bGJhY2suaCAqLywKIAkJCQk3NTQxNUQ0RjEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1
dEV2ZW50LmNwcCAqLywKIAkJCQk3NTQxNUQ1MDEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJ
bnB1dEV2ZW50LmggKi8sCiAJCQkJNzU0MTVENTExMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNo
SW5wdXRSZXN1bHQuY3BwICovLApAQCAtMTg3OTgsNyArMTg2NzEsNiBAQAogCQkJCUJDQjc3MzYw
MEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDdXN0b20uY3BwICovLAogCQkJCTFBNzUw
REQzMEE5MEU3MjkwMDBGRjIxNSAvKiBKU05vZGVJdGVyYXRvckN1c3RvbS5jcHAgKi8sCiAJCQkJ
QkNEOUMyNjEwQzE3QUE2NzAwNUM5MEEyIC8qIEpTTm9kZUxpc3RDdXN0b20uY3BwICovLAotCQkJ
CTQ5QkUzMEQxMTNEOTc0N0IwMDM4MDhBOSAvKiBKU1BlZXJDb25uZWN0aW9uQ3VzdG9tLmNwcCAq
LywKIAkJCQlFMUFEMTJENTEyOTVEMEJEMDBBQ0E5ODkgLyogSlNQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b25DdXN0b20uY3BwICovLAogCQkJCTQ5OThBRUQzMTNGQzQxN0YwMDkwQjFBQSAvKiBKU1JlcXVl
c3RBbmltYXRpb25GcmFtZUNhbGxiYWNrQ3VzdG9tLmNwcCAqLywKIAkJCQk5RkEzN0VFNjExNzJG
Q0YwMDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlTm9kZUN1c3RvbS5jcHAgKi8sCkBAIC0xOTE4
MCw4ICsxOTA1Miw2IEBACiAJCQkJOTM1MjA3QkQwOUJENDEwQTAwRjIwMzhEIC8qIExvY2FsaXpl
ZFN0cmluZ3MuaCAqLywKIAkJCQlBODIzOURGRTA5QjNDRjhBMDBCNjA2NDEgLyogTG9nZ2luZy5j
cHAgKi8sCiAJCQkJQTgyMzlERkYwOUIzQ0Y4QTAwQjYwNjQxIC8qIExvZ2dpbmcuaCAqLywKLQkJ
CQk0OTc4NUVERTEzRjE5MkYwMDBBNzk1QUQgLyogTWVkaWFTdHJlYW1SZWdpc3RyeS5jcHAgKi8s
Ci0JCQkJNDk3ODVFREYxM0YxOTJGMDAwQTc5NUFEIC8qIE1lZGlhU3RyZWFtUmVnaXN0cnkuaCAq
LywKIAkJCQk2NTdFREEwNjEzODVDQjk3MDA0RTA2NDUgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVy
LmNwcCAqLywKIAkJCQk2NTdFREEwNzEzODVDQjk3MDA0RTA2NDUgLyogTWVtb3J5UHJlc3N1cmVI
YW5kbGVyLmggKi8sCiAJCQkJQkM3NzJDNEMwQzRFQjMwNDAwODMyODVGIC8qIE1JTUVUeXBlUmVn
aXN0cnkuY3BwICovLApAQCAtMTk5MDEsNyArMTk3NzEsNiBAQAogCQkJCTU5QTg1RUExMTE5RDY4
RDkwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcCAqLywKIAkJCQk1OUE4NUVB
MzExOUQ2OEVDMDBERUYxRUYgLyogRGV2aWNlT3JpZW50YXRpb25FdmVudC5oICovLAogCQkJCTU5
QTg1RUFBMTE5RDdCNkUwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbCAqLywK
LQkJCQk0OTBDNDdDRDEzRTgyRDE4MDBGN0FCODIgLyogRGlzcGF0Y2hUYXNrLmggKi8sCiAJCQkJ
QTgxODVGMzQwOTc2NTc2NTAwNTgyNkQ5IC8qIERvY3VtZW50LmNwcCAqLywKIAkJCQlBODE4NUYz
ODA5NzY1NzY1MDA1ODI2RDkgLyogRG9jdW1lbnQuaCAqLywKIAkJCQk2NTQ4RTI0ODA5RTFFMDRE
MDBBRjgwMjAgLyogRG9jdW1lbnQuaWRsICovLApAQCAtMTk5ODMsMjIgKzE5ODUyLDcgQEAKIAkJ
CQk4NTAzMUIyRDBBNDRFRkM3MDBGOTkyRTAgLyogS2V5Ym9hcmRFdmVudC5jcHAgKi8sCiAJCQkJ
ODUwMzFCMkUwQTQ0RUZDNzAwRjk5MkUwIC8qIEtleWJvYXJkRXZlbnQuaCAqLywKIAkJCQkxNENG
N0MyMDA5RjcxMTA2MDBFQjM2NjUgLyogS2V5Ym9hcmRFdmVudC5pZGwgKi8sCi0JCQkJQjFFNTQ1
NzExMzQ2MjkxRjAwOTJBNTQ1IC8qIExvY2FsTWVkaWFTdHJlYW0uY3BwICovLAotCQkJCUIxRTU0
NTcyMTM0NjI5MUYwMDkyQTU0NSAvKiBMb2NhbE1lZGlhU3RyZWFtLmggKi8sCi0JCQkJQjFFNTQ1
NzMxMzQ2MjkxRjAwOTJBNTQ1IC8qIExvY2FsTWVkaWFTdHJlYW0uaWRsICovLAogCQkJCUE4QzRB
ODRCMDlENTY0OUQwMDAzQUM4RCAvKiBNYXBwZWRBdHRyaWJ1dGVFbnRyeS5oICovLAotCQkJCUIx
RTU0NTc0MTM0NjI5MUYwMDkyQTU0NSAvKiBNZWRpYVN0cmVhbS5jcHAgKi8sCi0JCQkJQjFFNTQ1
NzUxMzQ2MjkxRjAwOTJBNTQ1IC8qIE1lZGlhU3RyZWFtLmggKi8sCi0JCQkJQjFFNTQ1NzYxMzQ2
MjkxRjAwOTJBNTQ1IC8qIE1lZGlhU3RyZWFtLmlkbCAqLywKLQkJCQlCMTQzNTNEMTEzOEVBOEVE
MDBENTMyNzYgLyogTWVkaWFTdHJlYW1MaXN0LmNwcCAqLywKLQkJCQlCMTQzNTNEMjEzOEVBOEVE
MDBENTMyNzYgLyogTWVkaWFTdHJlYW1MaXN0LmggKi8sCi0JCQkJQjE0MzUzRDMxMzhFQThFRDAw
RDUzMjc2IC8qIE1lZGlhU3RyZWFtTGlzdC5pZGwgKi8sCi0JCQkJNDlDOUYzMjExM0Q1NzRGOTAw
NTI2MDBBIC8qIE1lZGlhU3RyZWFtVHJhY2suY3BwICovLAotCQkJCTQ5QzlGMzIwMTNENTc0Rjkw
MDUyNjAwQSAvKiBNZWRpYVN0cmVhbVRyYWNrLmggKi8sCi0JCQkJNDlDOUYzMUYxM0Q1NzRGODAw
NTI2MDBBIC8qIE1lZGlhU3RyZWFtVHJhY2suaWRsICovLAotCQkJCTQ5QzlGMzFFMTNENTc0Rjgw
MDUyNjAwQSAvKiBNZWRpYVN0cmVhbVRyYWNrTGlzdC5jcHAgKi8sCi0JCQkJNDlDOUYzMUQxM0Q1
NzRGODAwNTI2MDBBIC8qIE1lZGlhU3RyZWFtVHJhY2tMaXN0LmggKi8sCi0JCQkJNDlDOUYzMUMx
M0Q1NzRGODAwNTI2MDBBIC8qIE1lZGlhU3RyZWFtVHJhY2tMaXN0LmlkbCAqLywKIAkJCQlFMUFE
RUNDRDBFNzZBRDhCMDA0QTFBNUUgLyogTWVzc2FnZUNoYW5uZWwuY3BwICovLAogCQkJCUUxQURF
Q0NDMEU3NkFEOEIwMDRBMUE1RSAvKiBNZXNzYWdlQ2hhbm5lbC5oICovLAogCQkJCUUxQURFQ0Qw
MEU3NkFEQUIwMDRBMUE1RSAvKiBNZXNzYWdlQ2hhbm5lbC5pZGwgKi8sCkBAIC0yMDYyMSw3ICsy
MDQ3NSw2IEBACiAJCQkJQkNCMTZDMjgwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFhTTFN0eWxl
U2hlZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OTUwMDgyNDVFNTkwMDFFOUFCQyAvKiBD
YWNoZVBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjFENUVDQjUxMzRCNThEQTAwODdDNzhG
IC8qIENhbGxiYWNrRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCUIxRTU0NTkzMTM0NjI5
QzEwMDkyQTU0NSAvKiBDYWxsYmFja1Rhc2suaCBpbiBIZWFkZXJzICovLAogCQkJCTZFNEU5MUFE
MTBGN0ZCMzEwMEEyNzc5QyAvKiBDYW52YXNDb250ZXh0QXR0cmlidXRlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDk0ODRGQzIxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dyYWRpZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQk0OTQ4NEZDNTEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzUGF0dGVy
bi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMDgxNiw3ICsyMDY2OSw2IEBACiAJCQkJODk4Nzg1NTUx
MjJDQTA2NDAwM0FBQkRBIC8qIERpcmVjdG9yeVJlYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODkwQUUwRTExMjU2QTA3OTAwRjU5NjhDIC8qIERpcmVjdG9yeVJlYWRlckJhc2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg5M0M0ODAzMTI0OEJEM0EwMDJCM0Q4NiAvKiBEaXJlY3RvcnlSZWFkZXJT
eW5jLmggaW4gSGVhZGVycyAqLywKLQkJCQk0OTBDNDdDRTEzRTgyRDE4MDBGN0FCODIgLyogRGlz
cGF0Y2hUYXNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA5MTEyQjAyNkY3MDBDMUEzNTkg
LyogRGlzdGFuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0NzMwRDc3MTI0OEYwQjMwMEQzQTlD
OSAvKiBEaXN0YW50TGlnaHRTb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRjM0RkU2MEU4
MkY4MTQwMEY2MjdDRCAvKiBETlMuaCBpbiBIZWFkZXJzICovLApAQCAtMjIxMTcsMTcgKzIxOTY5
LDExIEBACiAJCQkJMUM1RkFFRDIwRENGRDkwMTAwRDU4Rjc4IC8qIEpTSmF2YVNjcmlwdENhbGxG
cmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg2NjI5RDMwOURBMkI0ODAwOTYzM0E1IC8qIEpT
S2V5Ym9hcmRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1RjQ1NDMwRjdDM0I1RjAwRDdD
MUZCIC8qIEpTTGF6eUV2ZW50TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUIxRTU0NURF
MTM0NjJCMEIwMDkyQTU0NSAvKiBKU0xvY2FsTWVkaWFTdHJlYW0uaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDRTFDNDNDMEQ5ODMwRDMwMDNCMDJGMiAvKiBKU0xvY2F0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGREExNUVDNjEyQjAzRjNCMDAzQTU4M0EgLyogSlNMb3dQYXNzMkZpbHRlck5vZGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUU0NDYxNDE5MENENjgyNjkwMEZBREE3NSAvKiBKU01lZGlh
RXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDM0MzOUI3MEMwRDNEOEQwMDVGNEQ3QSAvKiBK
U01lZGlhTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDNBOTRBNDcxMjJEQzQwRjAwQTM3QkJD
IC8qIEpTTWVkaWFRdWVyeUxpc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCUIxRTU0NUU2MTM0NjJC
MEIwMDkyQTU0NSAvKiBKU01lZGlhU3RyZWFtLmggaW4gSGVhZGVycyAqLywKLQkJCQk0OUEyRDM5
NTEzRTk4MUEzMDA1NzlGMTMgLyogSlNNZWRpYVN0cmVhbUV2ZW50LmggaW4gSGVhZGVycyAqLywK
LQkJCQlCMTQzNTNGOTEzOEVBOTVCMDBENTMyNzYgLyogSlNNZWRpYVN0cmVhbUxpc3QuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTQ5QzlGNDhGMTNENTdEMzIwMDUyNjAwQSAvKiBKU01lZGlhU3RyZWFt
VHJhY2suaCBpbiBIZWFkZXJzICovLAotCQkJCTQ5QzlGNDkxMTNENTdEMzIwMDUyNjAwQSAvKiBK
U01lZGlhU3RyZWFtVHJhY2tMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5RkZFM0VBNjExQjVB
NDM5MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTA3NDAw
RTBFNzdCREMwMDAzM0FGMjQgLyogSlNNZXNzYWdlQ2hhbm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNzU3OTNFQzkwRDBDRTcyRDAwN0ZDMEFDIC8qIEpTTWVzc2FnZUV2ZW50LmggaW4gSGVhZGVy
cyAqLywKQEAgLTIyMTU4LDcgKzIyMDA0LDYgQEAKIAkJCQlBODI2RThBRTBBMUE4RjIzMDBDRDFC
QjYgLyogSlNPcHRpb25Db25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEwRDU3NDEw
QTVDNzg2NzAwN0VERDRDIC8qIEpTT3ZlcmZsb3dFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RTEyODRCQjExMDQ0OUZGQTAwRUFFQjUyIC8qIEpTUGFnZVRyYW5zaXRpb25FdmVudC5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDlCRTMwRjQxM0Q5NzY0NjAwMzgwOEE5IC8qIEpTUGVlckNvbm5lY3Rp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCThBOUE1ODc1MTFFODRDODEwMDhBQ0ZEMSAvKiBKU1Bl
cmZvcm1hbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTlBNTg3MTExRTg0QzM2MDA4QUNGRDEg
LyogSlNQZXJmb3JtYW5jZU5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCThBOUE1ODg4
MTFFODRGMzcwMDhBQ0ZEMSAvKiBKU1BlcmZvcm1hbmNlVGltaW5nLmggaW4gSGVhZGVycyAqLywK
QEAgLTIyMTc5LDcgKzIyMDI0LDYgQEAKIAkJCQk5RkEzN0VGRDExNzJGREE2MDBDNENENTUgLyog
SlNTY3JpcHRQcm9maWxlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFEMDdBN0YwRkY5MzVD
QTAwOTVFRENFIC8qIEpTU2hhcmVkV29ya2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUQxNjkw
NjEwMjM4QjY2MDA5QkM4MjcgLyogSlNTaGFyZWRXb3JrZXJDb250ZXh0LmggaW4gSGVhZGVycyAq
LywKLQkJCQk0OUJFMzBGNjEzRDk3NjQ2MDAzODA4QTkgLyogSlNTaWduYWxpbmdDYWxsYmFjay5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNzU0MTVENTYxMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNo
SW5wdXRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzU0MTVENTgxMjlBQjJEMjAwM0FENjY5
IC8qIEpTU3BlZWNoSW5wdXRSZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1NDE1RDVBMTI5
QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0TGlzdC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yMjQzNyw3ICsyMjI4MSw2IEBACiAJCQkJQTU3MzJCMEQxMzZBMTZDNDAwNUM4RDdDIC8q
IExvY2FsaXplZERhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1MTQyQzY5MTIzRjEyQjAwMEY1
QkQ0QyAvKiBMb2NhbGl6ZWROdW1iZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNTIwN0JFMDlC
RDQxMEEwMEYyMDM4RCAvKiBMb2NhbGl6ZWRTdHJpbmdzLmggaW4gSGVhZGVycyAqLywKLQkJCQlC
MUU1NDU3QjEzNDYyOTFGMDA5MkE1NDUgLyogTG9jYWxNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTExRjIzMTgwREMxNjBEQTAwNEYwMDMyIC8qIExvY2FsU3RvcmFnZVRhc2suaCBp
biBIZWFkZXJzICovLAogCQkJCTUxMUYyMzFBMERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3Jh
Z2VUaHJlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTFDNDFCMEQ5ODI5ODAwMDNCMDJGMiAv
KiBMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjQ3NywxNSArMjIzMjAsNiBAQAogCQkJ
CUQzQTk0QTM5MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRDNBOTRBM0IxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUQzQUExMEY0MTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRp
YVF1ZXJ5TWF0Y2hlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQjFFNTQ1N0UxMzQ2MjkxRjAwOTJB
NTQ1IC8qIE1lZGlhU3RyZWFtLmggaW4gSGVhZGVycyAqLywKLQkJCQlCMUU1NDU5NDEzNDYyOUMx
MDA5MkE1NDUgLyogTWVkaWFTdHJlYW1DbGllbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUIxRTU0
NTk4MTM0NjI5QzEwMDkyQTU0NSAvKiBNZWRpYVN0cmVhbUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTQ5QTJDRkRBMTNFOTc4N0UwMDU3OUYxMyAvKiBNZWRpYVN0cmVhbUV2ZW50Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQlCMUU1NDU5NjEzNDYyOUMxMDA5MkE1NDUgLyogTWVkaWFTdHJl
YW1GcmFtZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUIxNDM1M0Q2MTM4RUE4RUQw
MEQ1MzI3NiAvKiBNZWRpYVN0cmVhbUxpc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTQ5Nzg1RUUx
MTNGMTkyRjAwMEE3OTVBRCAvKiBNZWRpYVN0cmVhbVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywK
LQkJCQk0OUM5RjMyNjEzRDU3NEY5MDA1MjYwMEEgLyogTWVkaWFTdHJlYW1UcmFjay5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDlDOUYzMjMxM0Q1NzRGOTAwNTI2MDBBIC8qIE1lZGlhU3RyZWFtVHJh
Y2tMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0IxNkMxODA5NzlDM0JEMDA0Njc3NDEgLyog
TWVtb3J5Q2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTlGRkUzRTdCMTFCNTlDNUQwMDM3ODc0
RSAvKiBNZW1vcnlJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTcxRENDODEzODVFNkE0MDA3
MDJERDAgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTIyNTky
LDcgKzIyNDI2LDYgQEAKIAkJCQlBOEZBNkU1RDBFNENGREVEMDBENUNGNDkgLyogUGF0dGVybi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5NzEwRDAwQkYyMjAwNzFCNzgyIC8qIFBhdHRlcm5B
dHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjc1MzU2NTBCMDUzODE0MDAyQ0U2NEYg
LyogUERGRG9jdW1lbnRJbWFnZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDlBNUE0RkYxM0UyRjAx
RTAwQ0ZEQUUwIC8qIFBlZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTdDQzk2
QjEyMDc2RDczMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OEE4NDREMDUxMUQzQzE4RTAwMTQwNjVDIC8qIFBlcmZvcm1hbmNlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4QUY0RTU1NjExREM1QTM2MDAwRUQzREUgLyogUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmgg
aW4gSGVhZGVycyAqLywKQEAgLTIyODg5LDcgKzIyNzIyLDYgQEAKIAkJCQk0MUQxNjhFODEwMjI2
RTg5MDA5QkM4MjcgLyogU2hhcmVkV29ya2VyQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDFEMTY4RUExMDIyNkU4OTAwOUJDODI3IC8qIFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxRDE2OEVFMTAyMjZFODkwMDlCQzgyNyAvKiBTaGFyZWRXb3JrZXJU
aHJlYWQuaCBpbiBIZWFkZXJzICovLAotCQkJCTQ5QTVBNTAxMTNFMkYwMUUwMENGREFFMCAvKiBT
aWduYWxpbmdDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNjUwRDAwNkNENjAw
RUY2RjI2IC8qIFNpbXBsZUZvbnREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTMyN0Q2MDEx
QTMzQTJCMDA0RjlENjUgLyogU2lua0RvY3VtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUU5
MTFDRDBFRjg2RDQ3MDA5RDBDQUYgLyogU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yNTExOCw3ICsyNDk1MCw2IEBACiAJCQkJMUM1RkFFRTcwRENGREE2ODAwRDU4
Rjc4IC8qIEpTSmF2YVNjcmlwdENhbGxGcmFtZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBODY2MjlENDA5REEyQjQ4MDA5NjMzQTUgLyogSlNLZXlib2FyZEV2ZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTkzNUY0NTQyMEY3QzNCNUYwMEQ3QzFGQiAvKiBKU0xhenlFdmVudExpc3Rl
bmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUIxRTU0NUREMTM0NjJCMEIwMDkyQTU0NSAvKiBK
U0xvY2FsTWVkaWFTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFMUM0M0IwRDk4MzBE
MzAwM0IwMkYyIC8qIEpTTG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFMUM0NDAw
RDk4MzBGNDAwM0IwMkYyIC8qIEpTTG9jYXRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRkRBMTVFQzUxMkIwM0YzQjAwM0E1ODNBIC8qIEpTTG93UGFzczJGaWx0ZXJOb2RlLmNwcCBp
biBTb3VyY2VzICovLApAQCAtMjUxMjcsMTEgKzI0OTU4LDYgQEAKIAkJCQlCQzNDMzlCNjBDMEQz
RDhEMDA1RjREN0EgLyogSlNNZWRpYUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ2NEUw
NkMxMzVFQzEwNjAwRkRCMDBBIC8qIEpTTWVkaWFMaXN0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUQzQTk0QTQ2MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmNwcCBp
biBTb3VyY2VzICovLAotCQkJCUIxRTU0NUU1MTM0NjJCMEIwMDkyQTU0NSAvKiBKU01lZGlhU3Ry
ZWFtLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQ5QTJEMzk0MTNFOTgxQTMwMDU3OUYxMyAvKiBK
U01lZGlhU3RyZWFtRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQjE0MzUzRjgxMzhFQTk1
QjAwRDUzMjc2IC8qIEpTTWVkaWFTdHJlYW1MaXN0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQ5
QzlGNDhFMTNENTdEMzIwMDUyNjAwQSAvKiBKU01lZGlhU3RyZWFtVHJhY2suY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJNDlDOUY0OTAxM0Q1N0QzMjAwNTI2MDBBIC8qIEpTTWVkaWFTdHJlYW1UcmFj
a0xpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOUZGRTNFQTUxMUI1QTQzOTAwMzc4NzRFIC8q
IEpTTWVtb3J5SW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5RkRDOEZGMjEyRkFCMDA2MDA5
OUFCMUMgLyogSlNNZW1vcnlJbmZvQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxMDc0
MDBEMEU3N0JEQzAwMDMzQUYyNCAvKiBKU01lc3NhZ2VDaGFubmVsLmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMjUxNzEsOCArMjQ5OTcsNiBAQAogCQkJCUE4MjZFQzQ4MEExQjBDQkUwMENEMUJCNiAv
KiBKU09wdGlvbkNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMEQ1NzQwMEE1
Qzc4NjcwMDdFREQ0QyAvKiBKU092ZXJmbG93RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RTEyODRCQjIxMDQ0OUZGQTAwRUFFQjUyIC8qIEpTUGFnZVRyYW5zaXRpb25FdmVudC5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQk0OUJFMzBGMzEzRDk3NjQ2MDAzODA4QTkgLyogSlNQZWVyQ29ubmVj
dGlvbi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk0OUJFMzBEMjEzRDk3NDdCMDAzODA4QTkgLyog
SlNQZWVyQ29ubmVjdGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4QTlBNTg3NDEx
RTg0QzgxMDA4QUNGRDEgLyogSlNQZXJmb3JtYW5jZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4
QTlBNTg3MDExRTg0QzM2MDA4QUNGRDEgLyogSlNQZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOEE5QTU4ODcxMUU4NEYzNzAwOEFDRkQxIC8qIEpTUGVyZm9ybWFu
Y2VUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNTE5Niw3ICsyNTAyMCw2IEBACiAJCQkJ
NDFEMDdBN0UwRkY5MzVDQTAwOTVFRENFIC8qIEpTU2hhcmVkV29ya2VyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTQxRDE2OTA1MTAyMzhCNjYwMDlCQzgyNyAvKiBKU1NoYXJlZFdvcmtlckNvbnRl
eHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTRDRDhEODIxMDZCNTI5MDAwQTQ2RDIzIC8qIEpT
U2hhcmVkV29ya2VyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQ5QkUzMEY1MTNEOTc2
NDYwMDM4MDhBOSAvKiBKU1NpZ25hbGluZ0NhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTc1NDE1RDU1MTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVjaElucHV0RXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNzU0MTVENTcxMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5wdXRS
ZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzU0MTVENTkxMjlBQjJEMjAwM0FENjY5IC8q
IEpTU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjU0NzgsNyAr
MjUzMDEsNiBAQAogCQkJCUY1Q0M0MkRDMTJGODAxQ0EwMEQ1RjdFMyAvKiBMb2NhbGl6ZWROdW1i
ZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlDMDQ2RTFBQzEyMDhBOUZFMDBCQTJDRjcgLyog
TG9jYWxpemVkU3RyaW5ncy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzI1QjUyQTEzMUM2RDM5
MDAxODBFMTAgLyogTG9jYWxpemVkU3RyaW5nc01hYy5tbSBpbiBTb3VyY2VzICovLAotCQkJCUIx
RTU0NTdBMTM0NjI5MUYwMDkyQTU0NSAvKiBMb2NhbE1lZGlhU3RyZWFtLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTUxMUYyMzE3MERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUYXNrLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTUxMUYyMzE5MERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0
b3JhZ2VUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFMUM0MUMwRDk4Mjk4MTAwM0Iw
MkYyIC8qIExvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjU1MTIsMTQgKzI1MzM0LDYg
QEAKIAkJCQlEM0E5NEEzODEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRDM0MDYyOUIxMjUzQkM4QzAwOUU0MjU5IC8qIE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDNBQTEwRjMxMjNBOThBQTAwOTIx
NTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUIxRTU0NTdE
MTM0NjI5MUYwMDkyQTU0NSAvKiBNZWRpYVN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlC
MUU1NDU5NzEzNDYyOUMxMDA5MkE1NDUgLyogTWVkaWFTdHJlYW1Db250cm9sbGVyLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCTQ5QTJDRkQ5MTNFOTc4N0UwMDU3OUYxMyAvKiBNZWRpYVN0cmVhbUV2
ZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUIxRTU0NTk1MTM0NjI5QzEwMDkyQTU0NSAvKiBN
ZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCMTQzNTNE
NTEzOEVBOEVEMDBENTMyNzYgLyogTWVkaWFTdHJlYW1MaXN0LmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCTQ5Nzg1RUUwMTNGMTkyRjAwMEE3OTVBRCAvKiBNZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTQ5QzlGMzI3MTNENTc0RjkwMDUyNjAwQSAvKiBNZWRpYVN0cmVh
bVRyYWNrLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQ5QzlGMzI0MTNENTc0RjkwMDUyNjAwQSAv
KiBNZWRpYVN0cmVhbVRyYWNrTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0IxNkMxNzA5
NzlDM0JEMDA0Njc3NDEgLyogTWVtb3J5Q2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOUZG
RTNFN0ExMUI1OUM1RDAwMzc4NzRFIC8qIE1lbW9yeUluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNjU3RURBMDgxMzg1Q0I5NzAwNEUwNjQ1IC8qIE1lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVy
aWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2Vu
ZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggMTQyMTcyMi4uMDQyZjgxNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmgKQEAgLTE1OSw3ICsxNTksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJv
b2wgbWVkaWFTdHJlYW1FbmFibGVkKCkgeyByZXR1cm4gaXNNZWRpYVN0cmVhbUVuYWJsZWQ7IH0K
ICAgICBzdGF0aWMgdm9pZCBzZXRNZWRpYVN0cmVhbUVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsg
aXNNZWRpYVN0cmVhbUVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBzdGF0aWMgYm9vbCB3ZWJr
aXRHZXRVc2VyTWVkaWFFbmFibGVkKCkgeyByZXR1cm4gaXNNZWRpYVN0cmVhbUVuYWJsZWQ7IH0K
LSAgICBzdGF0aWMgYm9vbCBwZWVyQ29ubmVjdGlvbkVuYWJsZWQoKSB7IHJldHVybiBpc01lZGlh
U3RyZWFtRW5hYmxlZDsgfQorICAgIHN0YXRpYyBib29sIHdlYmtpdFBlZXJDb25uZWN0aW9uRW5h
YmxlZCgpIHsgcmV0dXJuIGlzTWVkaWFTdHJlYW1FbmFibGVkOyB9CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShRVU9UQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmlu
ZGluZ3NBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdz
QWxsSW5PbmUuY3BwCmluZGV4IDBiYTlkN2YuLjBkODZlNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApAQCAtMTI1LDcgKzEyNSw2
IEBACiAjaW5jbHVkZSAiSlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTTm9k
ZUxpc3RDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTT3B0aW9uQ29uc3RydWN0b3IuY3BwIgotI2lu
Y2x1ZGUgIkpTUGVlckNvbm5lY3Rpb25DdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTUGx1Z2luRWxl
bWVudEZ1bmN0aW9ucy5jcHAiCiAjaW5jbHVkZSAiSlNQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25DdXN0
b20uY3BwIgogI2luY2x1ZGUgIkpTU1FMUmVzdWx0U2V0Um93TGlzdEN1c3RvbS5jcHAiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuY3BwCmluZGV4IDJmM2Y2MWIu
Ljc1NzE1MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRU
YXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQu
Y3BwCkBAIC0xMDEsOCArMTAxLDEyIEBACiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisjaW5jbHVkZSAiSlNMb2NhbE1lZGlhU3RyZWFtLmgiCisjaW5jbHVkZSAiSlNNZWRpYVN0
cmVhbS5oIgorI2luY2x1ZGUgIkpTUGVlckNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJMb2NhbE1l
ZGlhU3RyZWFtLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW0uaCIKKyNpbmNsdWRlICJQZWVyQ29u
bmVjdGlvbi5oIgogI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkBAIC0xOTUsMTEgKzE5
OSwxNCBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFdmVudFRhcmdldCogdGFyZwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQotICAgIGlmIChMb2NhbE1lZGlhU3RyZWFtKiBzdHJlYW0gPSB0YXJnZXQtPnRv
TG9jYWxNZWRpYVN0cmVhbSgpKQotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmpl
Y3QsIHN0cmVhbSk7CisgICAgaWYgKExvY2FsTWVkaWFTdHJlYW0qIGxvY2FsTWVkaWFTdHJlYW0g
PSB0YXJnZXQtPnRvTG9jYWxNZWRpYVN0cmVhbSgpKQorICAgICAgICByZXR1cm4gdG9KUyhleGVj
LCBnbG9iYWxPYmplY3QsIGxvY2FsTWVkaWFTdHJlYW0pOwogCi0gICAgaWYgKE1lZGlhU3RyZWFt
KiBzdHJlYW0gPSB0YXJnZXQtPnRvTWVkaWFTdHJlYW0oKSkKLSAgICAgICAgcmV0dXJuIHRvSlMo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJlYW0pOworICAgIGlmIChNZWRpYVN0cmVhbSogbWVkaWFT
dHJlYW0gPSB0YXJnZXQtPnRvTWVkaWFTdHJlYW0oKSkKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0LCBtZWRpYVN0cmVhbSk7CisKKyAgICBpZiAoUGVlckNvbm5lY3Rpb24q
IHBlZXJDb25uZWN0aW9uID0gdGFyZ2V0LT50b1BlZXJDb25uZWN0aW9uKCkpCisgICAgICAgIHJl
dHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgcGVlckNvbm5lY3Rpb24pOwogI2VuZGlmCiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTmF2aWdhdG9yQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTmF2aWdhdG9yQ3VzdG9tLmNwcAppbmRleCAxMDdkYWViLi40NTcxOWMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hdmlnYXRvckN1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYXZpZ2F0b3JDdXN0b20uY3BwCkBAIC0y
NSw5ICsyNSwxMiBAQAogCiAjaW5jbHVkZSAiQ2FsbGJhY2tGdW5jdGlvbi5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKKworI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCiAjaW5jbHVkZSAiSlNOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNr
LmgiCiAjaW5jbHVkZSAiSlNOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaCIKLSNp
bmNsdWRlICJOYXZpZ2F0b3IuaCIKKyNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTQyLDExICs0NSwxMSBAQCBKU1ZhbHVlIEpTTmF2aWdhdG9yOjp3ZWJraXRHZXRVc2VyTWVkaWEo
RXhlY1N0YXRlKiBleGVjKQogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKLSAgICBSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhU3Vj
Y2Vzc0NhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2sgPSBjcmVhdGVGdW5jdGlvbk9ubHlDYWxsYmFj
azxKU05hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaz4oZXhlYywgc3RhdGljX2Nhc3Q8
SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLCBleGVjLT5h
cmd1bWVudCgxKSk7CisgICAgUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFj
az4gc3VjY2Vzc0NhbGxiYWNrID0gY3JlYXRlRnVuY3Rpb25Pbmx5Q2FsbGJhY2s8SlNOYXZpZ2F0
b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2s+KGV4ZWMsIHN0YXRpY19jYXN0PEpTRE9NR2xvYmFs
T2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwgZXhlYy0+YXJndW1lbnQoMSks
IENhbGxiYWNrQWxsb3dVbmRlZmluZWQgfCBDYWxsYmFja0FsbG93TnVsbCk7CiAgICAgaWYgKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAotICAg
IFJlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrID0g
Y3JlYXRlRnVuY3Rpb25Pbmx5Q2FsbGJhY2s8SlNOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxi
YWNrPihleGVjLCBzdGF0aWNfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKSksIGV4ZWMtPmFyZ3VtZW50KDIpLCBDYWxsYmFja0FsbG93VW5kZWZpbmVk
KTsKKyAgICBSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxs
YmFjayA9IGNyZWF0ZUZ1bmN0aW9uT25seUNhbGxiYWNrPEpTTmF2aWdhdG9yVXNlck1lZGlhRXJy
b3JDYWxsYmFjaz4oZXhlYywgc3RhdGljX2Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCkpLCBleGVjLT5hcmd1bWVudCgyKSwgQ2FsbGJhY2tBbGxvd1Vu
ZGVmaW5lZCB8IENhbGxiYWNrQWxsb3dOdWxsKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9u
KCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BlZXJDb25uZWN0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGVlckNvbm5lY3Rpb25DdXN0b20uY3BwCmluZGV4IDcwYmIx
NzIuLjAxYWE2NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGVl
ckNvbm5lY3Rpb25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
UGVlckNvbm5lY3Rpb25DdXN0b20uY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDExIEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw0MCArMzAsMzQgQEAKICNpbmNsdWRlICJKU1BlZXJD
b25uZWN0aW9uLmgiCiAKICNpbmNsdWRlICJDYWxsYmFja0Z1bmN0aW9uLmgiCi0jaW5jbHVkZSAi
RE9NV2luZG93LmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJKU0RPTVdpbmRvd0N1
c3RvbS5oIgotI2luY2x1ZGUgIkpTU2lnbmFsaW5nQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJNZWRp
YVN0cmVhbUZyYW1lQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkpTUGVlckNvbm5lY3Rpb25TaWdu
YWxpbmdDYWxsYmFjay5oIgogI2luY2x1ZGUgIlBlZXJDb25uZWN0aW9uLmgiCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKKyNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBKU0M7CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBKU1BlZXJDb25uZWN0aW9uQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTUGVlckNvbm5lY3Rp
b24oRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTUGVlckNvbm5lY3Rpb25Db25zdHJ1Y3Rvciog
anNDb25zdHJ1Y3RvciA9IHN0YXRpY19jYXN0PEpTUGVlckNvbm5lY3Rpb25Db25zdHJ1Y3Rvcio+
KGV4ZWMtPmNhbGxlZSgpKTsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0g
anNDb25zdHJ1Y3Rvci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghY29udGV4
dCkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVSZWZlcmVuY2VFcnJv
cihleGVjLCAiUGVlckNvbm5lY3Rpb24gY29uc3RydWN0b3IgYXNzb2NpYXRlZCBkb2N1bWVudCBp
cyB1bmF2YWlsYWJsZSIpKTsKIAotICAgIFN0cmluZyBjb25maWd1cmF0aW9uID0gdXN0cmluZ1Rv
U3RyaW5nKGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpKTsKLSAgICBpZiAoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgp
KTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMikKKyAgICAgICAgcmV0dXJuIHRo
cm93Vk1FcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIk5vdCBlbm91Z2ggYXJndW1l
bnRzIikpOwogCi0gICAgUmVmUHRyPFNpZ25hbGluZ0NhbGxiYWNrPiBzaWduYWxpbmdDYWxsYmFj
ayA9IGNyZWF0ZUZ1bmN0aW9uT25seUNhbGxiYWNrPEpTU2lnbmFsaW5nQ2FsbGJhY2s+KGV4ZWMs
IHN0YXRpY19jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVj
dCgpKSwgZXhlYy0+YXJndW1lbnQoMSkpOworICAgIFN0cmluZyBzZXJ2ZXJDb25maWd1cmF0aW9u
ID0gdXN0cmluZ1RvU3RyaW5nKGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpKTsKICAg
ICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoSlNWYWx1ZSgpKTsKIAotICAgIEZyYW1lKiBmcmFtZSA9IGFzSlNET01XaW5kb3coZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+aW1wbCgpLT5mcmFtZSgpOwotICAgIE1lZGlhU3RyZWFt
RnJhbWVDb250cm9sbGVyKiBmcmFtZUNvbnRyb2xsZXIgPSBmcmFtZSA/IGZyYW1lLT5tZWRpYVN0
cmVhbUZyYW1lQ29udHJvbGxlcigpIDogMDsKLQotICAgIFJlZlB0cjxQZWVyQ29ubmVjdGlvbj4g
cGVlckNvbm5lY3Rpb247Ci0gICAgaWYgKGZyYW1lQ29udHJvbGxlcikKLSAgICAgICAgcGVlckNv
bm5lY3Rpb24gPSBmcmFtZUNvbnRyb2xsZXItPmNyZWF0ZVBlZXJDb25uZWN0aW9uKGNvbmZpZ3Vy
YXRpb24sIHNpZ25hbGluZ0NhbGxiYWNrKTsKLQotICAgIGlmICghcGVlckNvbm5lY3Rpb24pCisg
ICAgUmVmUHRyPFBlZXJDb25uZWN0aW9uU2lnbmFsaW5nQ2FsbGJhY2s+IHNpZ25hbGluZ0NhbGxi
YWNrID0gY3JlYXRlRnVuY3Rpb25Pbmx5Q2FsbGJhY2s8SlNQZWVyQ29ubmVjdGlvblNpZ25hbGlu
Z0NhbGxiYWNrPihleGVjLCBzdGF0aWNfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKSksIGV4ZWMtPmFyZ3VtZW50KDEpKTsKKyAgICBpZiAoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgp
KTsKIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhleGVjLCBqc0Nv
bnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgcGVlckNvbm5lY3Rpb24uZ2V0KCkpKSk7CisgICAg
UmVmUHRyPFBlZXJDb25uZWN0aW9uPiBwZWVyQ29ubmVjdGlvbiA9IFBlZXJDb25uZWN0aW9uOjpj
cmVhdGUoc2VydmVyQ29uZmlndXJhdGlvbiwgc2lnbmFsaW5nQ2FsbGJhY2sucmVsZWFzZSgpLCBj
b250ZXh0KTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKENSRUFURV9ET01fV1JBUFBFUihl
eGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgUGVlckNvbm5lY3Rpb24sIHBlZXJD
b25uZWN0aW9uLmdldCgpKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hdmlnYXRvckN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhOYXZpZ2F0b3JDdXN0b20u
Y3BwCmluZGV4IGRjY2IwMDUuLjE5ZGM3MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOE5hdmlnYXRvckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TmF2aWdhdG9yQ3VzdG9tLmNwcApAQCAtMzAsOSArMzAs
MTIgQEAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgi
CiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVkZSAiVjhVdGlsaXRpZXMuaCIKKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAjaW5jbHVkZSAiVjhOYXZpZ2F0b3JVc2VyTWVkaWFFcnJv
ckNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiVjhOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJh
Y2suaCIKLSNpbmNsdWRlICJWOFV0aWxpdGllcy5oIgorI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFj
ZSBXVEY7CiAKQEAgLTQ4LDEyICs1MSwxMiBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhOYXZp
Z2F0b3I6OndlYmtpdEdldFVzZXJNZWRpYUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudAogICAg
ICAgICByZXR1cm4gdGhyb3dFcnJvcihleGNlcHRpb25DYXRjaGVyLkV4Y2VwdGlvbigpKTsKIAog
ICAgIGJvb2wgc3VjY2VlZGVkID0gZmFsc2U7Ci0gICAgUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRp
YVN1Y2Nlc3NDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrID0gY3JlYXRlRnVuY3Rpb25Pbmx5Q2Fs
bGJhY2s8VjhOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2s+KGFyZ3NbMV0sIHN1Y2Nl
ZWRlZCk7CisgICAgUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaz4gc3Vj
Y2Vzc0NhbGxiYWNrID0gY3JlYXRlRnVuY3Rpb25Pbmx5Q2FsbGJhY2s8VjhOYXZpZ2F0b3JVc2Vy
TWVkaWFTdWNjZXNzQ2FsbGJhY2s+KGFyZ3NbMV0sIHN1Y2NlZWRlZCwgQ2FsbGJhY2tBbGxvd1Vu
ZGVmaW5lZCB8IENhbGxiYWNrQWxsb3dOdWxsKTsKICAgICBpZiAoIXN1Y2NlZWRlZCkKICAgICAg
ICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIAogICAgIC8vIEFyZ3VtZW50IGlzIG9wdGlvbmFs
LCBoZW5jZSB1bmRlZmluZWQgaXMgYWxsb3dlZC4KLSAgICBSZWZQdHI8TmF2aWdhdG9yVXNlck1l
ZGlhRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjayA9IGNyZWF0ZUZ1bmN0aW9uT25seUNhbGxi
YWNrPFY4TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjaz4oYXJnc1syXSwgc3VjY2VlZGVk
LCBDYWxsYmFja0FsbG93VW5kZWZpbmVkKTsKKyAgICBSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlh
RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjayA9IGNyZWF0ZUZ1bmN0aW9uT25seUNhbGxiYWNr
PFY4TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjaz4oYXJnc1syXSwgc3VjY2VlZGVkLCBD
YWxsYmFja0FsbG93VW5kZWZpbmVkIHwgQ2FsbGJhY2tBbGxvd051bGwpOwogICAgIGlmICghc3Vj
Y2VlZGVkKQogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhQZWVyQ29ubmVjdGlvbkN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhQZWVyQ29ubmVjdGlvbkN1
c3RvbS5jcHAKaW5kZXggOTgxY2RhMS4uYTZjMTVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4UGVlckNvbm5lY3Rpb25DdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFBlZXJDb25uZWN0aW9uQ3VzdG9tLmNw
cApAQCAtMjgsMTQgKzI4LDEwIEBACiAKICNpbmNsdWRlICJWOFBlZXJDb25uZWN0aW9uLmgiCiAK
LSNpbmNsdWRlICJET01XaW5kb3cuaCIKLSNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5j
bHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIlBlZXJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5j
bHVkZSAiVjhQcm94eS5oIgotI2luY2x1ZGUgIlY4U2lnbmFsaW5nQ2FsbGJhY2suaCIKKyNpbmNs
dWRlICJWOFBlZXJDb25uZWN0aW9uU2lnbmFsaW5nQ2FsbGJhY2suaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC00NiwzMCArNDIsMjUgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4UGVl
ckNvbm5lY3Rpb246OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYKICAg
ICBpZiAoIWFyZ3MuSXNDb25zdHJ1Y3RDYWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJvd0Vycm9y
KCJET00gb2JqZWN0IGNvbnN0cnVjdG9yIGNhbm5vdCBiZSBjYWxsZWQgYXMgYSBmdW5jdGlvbi4i
LCBWOFByb3h5OjpUeXBlRXJyb3IpOwogCi0gICAgaW50IGFyZ0xlbmd0aCA9IGFyZ3MuTGVuZ3Ro
KCk7Ci0gICAgaWYgKGFyZ0xlbmd0aCAhPSAyKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigi
VGhlIFBlZXJDb25uZWN0aW9uIGNvbnN0cnVjdG9yIHRha2VzIHR3byBhcmd1bWVudHMuIiwgVjhQ
cm94eTo6VHlwZUVycm9yKTsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0g
Z2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAg
cmV0dXJuIHRocm93RXJyb3IoIlBlZXJDb25uZWN0aW9uIGNvbnN0cnVjdG9yIGFzc29jaWF0ZWQg
ZG9jdW1lbnQgaXMgdW5hdmFpbGFibGUiLCBWOFByb3h5OjpSZWZlcmVuY2VFcnJvcik7CisKKyAg
ICBpZiAoYXJncy5MZW5ndGgoKSA8IDIpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3Qg
ZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlR5cGVFcnJvcik7CiAKICAgICB2ODo6VHJ5Q2F0
Y2ggZXhjZXB0aW9uQ2F0Y2hlcjsKLSAgICBTdHJpbmcgY29uZmlndXJhdGlvbiA9IHRvV2ViQ29y
ZVN0cmluZyhhcmdzWzBdLT5Ub1N0cmluZygpKTsKKyAgICBTdHJpbmcgc2VydmVyQ29uZmlndXJh
dGlvbiA9IHRvV2ViQ29yZVN0cmluZyhhcmdzWzBdLT5Ub1N0cmluZygpKTsKICAgICBpZiAoZXhj
ZXB0aW9uQ2F0Y2hlci5IYXNDYXVnaHQoKSkKICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhj
ZXB0aW9uQ2F0Y2hlci5FeGNlcHRpb24oKSk7CiAKICAgICBib29sIHN1Y2NlZWRlZCA9IGZhbHNl
OwotICAgIFJlZlB0cjxTaWduYWxpbmdDYWxsYmFjaz4gc2lnbmFsaW5nQ2FsbGJhY2sgPSBjcmVh
dGVGdW5jdGlvbk9ubHlDYWxsYmFjazxWOFNpZ25hbGluZ0NhbGxiYWNrPihhcmdzWzFdLCBzdWNj
ZWVkZWQpOworICAgIFJlZlB0cjxQZWVyQ29ubmVjdGlvblNpZ25hbGluZ0NhbGxiYWNrPiBzaWdu
YWxpbmdDYWxsYmFjayA9IGNyZWF0ZUZ1bmN0aW9uT25seUNhbGxiYWNrPFY4UGVlckNvbm5lY3Rp
b25TaWduYWxpbmdDYWxsYmFjaz4oYXJnc1sxXSwgc3VjY2VlZGVkKTsKICAgICBpZiAoIXN1Y2Nl
ZWRlZCB8fCAhc2lnbmFsaW5nQ2FsbGJhY2spCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJU
aGUgUGVlckNvbm5lY3Rpb24gY29uc3RydWN0b3IgbXVzdCBiZSBnaXZlbiBhIFNpZ25hbGluZ0Nh
bGxiYWNrIGNhbGxiYWNrLiIsIFY4UHJveHk6OlR5cGVFcnJvcik7Ci0KLSAgICBGcmFtZSogZnJh
bWUgPSBWOFByb3h5OjpyZXRyaWV2ZUZyYW1lRm9yRW50ZXJlZENvbnRleHQoKTsKLSAgICBNZWRp
YVN0cmVhbUZyYW1lQ29udHJvbGxlciogZnJhbWVDb250cm9sbGVyID0gZnJhbWUgPyBmcmFtZS0+
bWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIoKSA6IDA7Ci0KLSAgICBSZWZQdHI8UGVlckNvbm5l
Y3Rpb24+IHBlZXJDb25uZWN0aW9uOwotICAgIGlmIChmcmFtZUNvbnRyb2xsZXIpCi0gICAgICAg
IHBlZXJDb25uZWN0aW9uID0gZnJhbWVDb250cm9sbGVyLT5jcmVhdGVQZWVyQ29ubmVjdGlvbihj
b25maWd1cmF0aW9uLCBzaWduYWxpbmdDYWxsYmFjayk7Ci0KLSAgICBpZiAoIXBlZXJDb25uZWN0
aW9uKQogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogCisgICAgUmVmUHRyPFBlZXJD
b25uZWN0aW9uPiBwZWVyQ29ubmVjdGlvbiA9IFBlZXJDb25uZWN0aW9uOjpjcmVhdGUoc2VydmVy
Q29uZmlndXJhdGlvbiwgc2lnbmFsaW5nQ2FsbGJhY2sucmVsZWFzZSgpLCBjb250ZXh0KTsKKwog
ICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcihhcmdzLkhvbGRlcigpLCAmaW5mbywgcGVl
ckNvbm5lY3Rpb24uZ2V0KCkpOwogICAgIHJldHVybiB0b1Y4KHBlZXJDb25uZWN0aW9uLnJlbGVh
c2UoKSwgYXJncy5Ib2xkZXIoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGlzcGF0Y2hUYXNrLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGlzcGF0Y2hUYXNrLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDQzZjUuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0Rpc3BhdGNoVGFzay5oCisrKyAvZGV2L251bGwKQEAgLTEsOTQgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwot
ICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2lmbmRlZiBEaXNwYXRjaFRhc2tfaAotI2RlZmluZSBEaXNwYXRjaFRh
c2tfaAotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBDYWxsYmFja0NsYXNzLCB0eXBlbmFtZSBT
aW1wbGVEYXRhVHlwZT4KLWNsYXNzIFNpbXBsZURpc3BhdGNoVGFzayA6IHB1YmxpYyBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OjpUYXNrIHsKLXB1YmxpYzoKLSAgICB0eXBlZGVmIHZvaWQgKENhbGxi
YWNrQ2xhc3M6OipDYWxsYmFjaykoY29uc3QgU2ltcGxlRGF0YVR5cGUmKTsKLQotICAgIHN0YXRp
YyBQYXNzT3duUHRyPFNpbXBsZURpc3BhdGNoVGFzaz4gY3JlYXRlKFBhc3NSZWZQdHI8Q2FsbGJh
Y2tDbGFzcz4gb2JqZWN0LCBDYWxsYmFjayBjYWxsYmFjaywgY29uc3QgU2ltcGxlRGF0YVR5cGUm
IGRhdGEpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNpbXBsZURpc3BhdGNo
VGFzayhvYmplY3QsIGNhbGxiYWNrLCBkYXRhKSk7Ci0gICAgfQotCi0gICAgdmlydHVhbCB2b2lk
IHBlcmZvcm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKQotICAgIHsKLSAgICAgICAgKG1f
b2JqZWN0LmdldCgpLT4qbV9jYWxsYmFjaykobV9kYXRhKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0g
ICAgU2ltcGxlRGlzcGF0Y2hUYXNrKFBhc3NSZWZQdHI8Q2FsbGJhY2tDbGFzcz4gb2JqZWN0LCBD
YWxsYmFjayBjYWxsYmFjaywgY29uc3QgU2ltcGxlRGF0YVR5cGUmIGRhdGEpCi0gICAgICAgIDog
bV9vYmplY3Qob2JqZWN0KQotICAgICAgICAsIG1fY2FsbGJhY2soY2FsbGJhY2spCi0gICAgICAg
ICwgbV9kYXRhKGRhdGEpIHsgfQotCi0gICAgUmVmUHRyPENhbGxiYWNrQ2xhc3M+IG1fb2JqZWN0
OwotICAgIENhbGxiYWNrIG1fY2FsbGJhY2s7Ci0gICAgU2ltcGxlRGF0YVR5cGUgbV9kYXRhOwot
fTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIENhbGxiYWNrQ2xhc3MsIHR5cGVuYW1lIFNpbXBsZURh
dGFUeXBlLCB0eXBlbmFtZSBSZWZDb3VudGVkRGF0YVR5cGU+Ci1jbGFzcyBEaXNwYXRjaFRhc2sg
OiBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayB7Ci1wdWJsaWM6Ci0gICAgdHlw
ZWRlZiB2b2lkIChDYWxsYmFja0NsYXNzOjoqQ2FsbGJhY2spKGNvbnN0IFNpbXBsZURhdGFUeXBl
JiwgUGFzc1JlZlB0cjxSZWZDb3VudGVkRGF0YVR5cGU+KTsKLQotICAgIHN0YXRpYyBQYXNzT3du
UHRyPERpc3BhdGNoVGFzaz4gY3JlYXRlKFBhc3NSZWZQdHI8Q2FsbGJhY2tDbGFzcz4gb2JqZWN0
LCBDYWxsYmFjayBjYWxsYmFjaywgY29uc3QgU2ltcGxlRGF0YVR5cGUmIGFyZzEsIFBhc3NSZWZQ
dHI8UmVmQ291bnRlZERhdGFUeXBlPiBhcmcyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBEaXNwYXRjaFRhc2sob2JqZWN0LCBjYWxsYmFjaywgYXJnMSwgYXJnMikpOwotICAg
IH0KLQotICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0
KikKLSAgICB7Ci0gICAgICAgIChtX29iamVjdC5nZXQoKS0+Km1fY2FsbGJhY2spKG1fYXJnMSwg
bV9hcmcyKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgRGlzcGF0Y2hUYXNrKFBhc3NSZWZQdHI8
Q2FsbGJhY2tDbGFzcz4gb2JqZWN0LCBDYWxsYmFjayBjYWxsYmFjaywgY29uc3QgU2ltcGxlRGF0
YVR5cGUmIGFyZzEsIFBhc3NSZWZQdHI8UmVmQ291bnRlZERhdGFUeXBlPiBhcmcyKQotICAgICAg
ICA6IG1fb2JqZWN0KG9iamVjdCkKLSAgICAgICAgLCBtX2NhbGxiYWNrKGNhbGxiYWNrKQotICAg
ICAgICAsIG1fYXJnMShhcmcxKQotICAgICAgICAsIG1fYXJnMihhcmcyKSB7IH0KLQotICAgIFJl
ZlB0cjxDYWxsYmFja0NsYXNzPiBtX29iamVjdDsKLSAgICBDYWxsYmFjayBtX2NhbGxiYWNrOwot
ICAgIFNpbXBsZURhdGFUeXBlIG1fYXJnMTsKLSAgICBSZWZQdHI8UmVmQ291bnRlZERhdGFUeXBl
PiBtX2FyZzI7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFC
TEUoTUVESUFfU1RSRUFNKQotCi0jZW5kaWYgLy8gRGlzcGF0Y2hUYXNrX2gKLQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCmluZGV4IGE4ODJiZWYuLjM5
YWNkMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5j
cHAKQEAgLTM5LDggKzM5LDYgQEAKICNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVk
ZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJGaWxlVGhyZWFkLmgiCi0jaW5jbHVkZSAiTWVk
aWFTdHJlYW0uaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAi
TWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJT
ZWN1cml0eU9yaWdpbi5oIgpAQCAtNTYsNiArNTQsMTEgQEAKICNpbmNsdWRlICJKU0RPTVdpbmRv
dy5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2luY2x1ZGUgIk1lZGlh
U3RyZWFtLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1SZWdpc3RyeS5oIgorI2VuZGlmCisKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUHJvY2Vzc01lc3NhZ2VzU29vblRhc2sgOiBwdWJs
aWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayB7CkBAIC0xMzgsOSArMTQxLDEwIEBAIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6On5TY3JpcHRFeGVjdXRpb25Db250ZXh0KCkKICNlbmRpZgog
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBNZWRpYVN0cmVhbVJlZ2lzdHJ5JiByZWdp
c3RyeSA9IG1lZGlhU3RyZWFtUmVnaXN0cnkoKTsKICAgICBIYXNoU2V0PFN0cmluZz46Oml0ZXJh
dG9yIHB1YmxpY1N0cmVhbVVSTHNFbmQgPSBtX3B1YmxpY1N0cmVhbVVSTHMuZW5kKCk7CiAgICAg
Zm9yIChIYXNoU2V0PFN0cmluZz46Oml0ZXJhdG9yIGl0ZXIgPSBtX3B1YmxpY1N0cmVhbVVSTHMu
YmVnaW4oKTsgaXRlciAhPSBwdWJsaWNTdHJlYW1VUkxzRW5kOyArK2l0ZXIpCi0gICAgICAgIE1l
ZGlhU3RyZWFtUmVnaXN0cnk6OnJlZ2lzdHJ5KCkudW5yZWdpc3Rlck1lZGlhU3RyZWFtVVJMKEtV
UkwoUGFyc2VkVVJMU3RyaW5nLCAqaXRlcikpOworICAgICAgICByZWdpc3RyeS51bmFzc29jaWF0
ZVVSTChLVVJMKFBhcnNlZFVSTFN0cmluZywgKml0ZXIpKTsKICNlbmRpZgogfQogCkBAIC0zOTYs
NyArNDAwLDcgQEAgS1VSTCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpjcmVhdGVQdWJsaWNCbG9i
VVJMKE1lZGlhU3RyZWFtKiBzdHJlYW0pCiAKICAgICAvLyBTaW5jZSBXZWJXb3JrZXJzIGNhbm5v
dCBvYnRhaW4gU3RyZWFtIG9iamVjdHMsIHdlIHNob3VsZCBiZSBvbiB0aGUgbWFpbiB0aHJlYWQu
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBNZWRpYVN0cmVhbVJlZ2lzdHJ5Ojpy
ZWdpc3RyeSgpLnJlZ2lzdGVyTWVkaWFTdHJlYW1VUkwocHVibGljVVJMLCBzdHJlYW0pOworICAg
IG1lZGlhU3RyZWFtUmVnaXN0cnkoKS5hc3NvY2lhdGVVUkwocHVibGljVVJMLCBzdHJlYW0tPmlk
KCkpOwogICAgIG1fcHVibGljU3RyZWFtVVJMcy5hZGQocHVibGljVVJMLnN0cmluZygpKTsKICAg
ICByZXR1cm4gcHVibGljVVJMOwogfQpAQCAtNDI1LDcgKzQyOSw3IEBAIHZvaWQgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6cmV2b2tlUHVibGljQmxvYlVSTChjb25zdCBLVVJMJiB1cmwpCiAgICAg
ICAgIC8vIEZJWE1FOiBtYWtlIHN1cmUgb2YgdGhpcyBhc3NlcnRpb24gYmVsb3cuIFJhaXNlIGEg
c3BlYyBxdWVzdGlvbiBpZiByZXF1aXJlZC4KICAgICAgICAgLy8gU2luY2UgV2ViV29ya2VycyBj
YW5ub3Qgb2J0YWluIFN0cmVhbSBvYmplY3RzLCB3ZSBzaG91bGQgYmUgb24gdGhlIG1haW4gdGhy
ZWFkLgogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgICAgICBNZWRpYVN0cmVh
bVJlZ2lzdHJ5OjpyZWdpc3RyeSgpLnVucmVnaXN0ZXJNZWRpYVN0cmVhbVVSTCh1cmwpOworICAg
ICAgICBtZWRpYVN0cmVhbVJlZ2lzdHJ5KCkudW5hc3NvY2lhdGVVUkwodXJsKTsKICAgICAgICAg
bV9wdWJsaWNTdHJlYW1VUkxzLnJlbW92ZSh1cmwuc3RyaW5nKCkpOwogICAgIH0KICNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvbWFzdGVyOlNvdXJjZS9XZWJDb3Jl
L2RvbS9Mb2NhbE1lZGlhU3RyZWFtLmNwcCBiL0hFQUQ6U291cmNlL1dlYkNvcmUvbWVkaWFzdHJl
YW0vTG9jYWxNZWRpYVN0cmVhbS5jcHAKaW5kZXggZGYzNzIyNy4uNTYzZjcxMyAxMDA2NDQKLS0t
IGEvbWFzdGVyOlNvdXJjZS9XZWJDb3JlL2RvbS9Mb2NhbE1lZGlhU3RyZWFtLmNwcAorKysgYi9I
RUFEOlNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL0xvY2FsTWVkaWFTdHJlYW0uY3BwCkBAIC0x
LDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEVyaWNzc29uIEFCLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw0NCAr
MjgsMzUgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKLSNpbmNsdWRlICJFdmVudC5o
IgotI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbUZyYW1lQ29u
dHJvbGxlci5oIgotI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRl
ICJNZWRpYVN0cmVhbU1hbmFnZXIuaCIKKyNpbmNsdWRlICJVVUlELmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgTG9jYWxNZWRpYVN0cmVhbTo6RGlzcGF0Y2hVcGRhdGVUYXNrIDog
cHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgewotcHVibGljOgotICAgIHR5cGVk
ZWYgdm9pZCAoTG9jYWxNZWRpYVN0cmVhbTo6KkNhbGxiYWNrKSgpOwotCi0gICAgc3RhdGljIFBh
c3NPd25QdHI8RGlzcGF0Y2hVcGRhdGVUYXNrPiBjcmVhdGUoUGFzc1JlZlB0cjxMb2NhbE1lZGlh
U3RyZWFtPiBvYmplY3QsIENhbGxiYWNrIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBEaXNwYXRjaFVwZGF0ZVRhc2sob2JqZWN0LCBjYWxsYmFjaykpOwotICAg
IH0KLQotICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0
KikKLSAgICB7Ci0gICAgICAgIChtX29iamVjdC5nZXQoKS0+Km1fY2FsbGJhY2spKCk7Ci0gICAg
fQotCi1wdWJsaWM6Ci0gICAgRGlzcGF0Y2hVcGRhdGVUYXNrKFBhc3NSZWZQdHI8TG9jYWxNZWRp
YVN0cmVhbT4gb2JqZWN0LCBDYWxsYmFjayBjYWxsYmFjaykKLSAgICAgICAgOiBtX29iamVjdChv
YmplY3QpCi0gICAgICAgICwgbV9jYWxsYmFjayhjYWxsYmFjaykgeyB9CitQYXNzUmVmUHRyPExv
Y2FsTWVkaWFTdHJlYW0+IExvY2FsTWVkaWFTdHJlYW06OmNyZWF0ZShjb25zdCBTdHJpbmcmIHN0
cmVhbUlkLCBjb25zdCBNZWRpYVN0cmVhbUNvbXBvbmVudExpc3QmIGNvbXBvbmVudHMsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBM
b2NhbE1lZGlhU3RyZWFtKHN0cmVhbUlkLCBjb21wb25lbnRzLCBjb250ZXh0KSk7Cit9CiAKLSAg
ICBSZWZQdHI8TG9jYWxNZWRpYVN0cmVhbT4gbV9vYmplY3Q7Ci0gICAgQ2FsbGJhY2sgbV9jYWxs
YmFjazsKLX07CitMb2NhbE1lZGlhU3RyZWFtOjpMb2NhbE1lZGlhU3RyZWFtKGNvbnN0IFN0cmlu
ZyYgc3RyZWFtSWQsIGNvbnN0IE1lZGlhU3RyZWFtQ29tcG9uZW50TGlzdCYgY29tcG9uZW50cywg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKKyAgICA6IE1lZGlhU3RyZWFtKHN0cmVh
bUlkLCBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCksIGNvbXBvbmVudHMsIGNvbnRleHQpCisg
ICAgLCBtX3N0b3BUaW1lcih0aGlzLCAmTG9jYWxNZWRpYVN0cmVhbTo6c3RvcFRpbWVyRmlyZWQp
Cit7Cit9CiAKLVBhc3NSZWZQdHI8TG9jYWxNZWRpYVN0cmVhbT4gTG9jYWxNZWRpYVN0cmVhbTo6
Y3JlYXRlKE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKiBmcmFtZUNvbnRyb2xsZXIsIGNvbnN0
IFN0cmluZyYgbGFiZWwsIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja0xpc3Q+IHRyYWNrcykK
K3ZvaWQgTG9jYWxNZWRpYVN0cmVhbTo6c3RvcCgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBMb2NhbE1lZGlhU3RyZWFtKGZyYW1lQ29udHJvbGxlciwgbGFiZWwsIHRyYWNrcykpOworICAg
IGlmICghbV9zdG9wVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9zdG9wVGltZXIuc3RhcnRP
bmVTaG90KDApOwogfQogCi1Mb2NhbE1lZGlhU3RyZWFtOjpMb2NhbE1lZGlhU3RyZWFtKE1lZGlh
U3RyZWFtRnJhbWVDb250cm9sbGVyKiBmcmFtZUNvbnRyb2xsZXIsIGNvbnN0IFN0cmluZyYgbGFi
ZWwsIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja0xpc3Q+IHRyYWNrcykKLSAgICA6IE1lZGlh
U3RyZWFtKGZyYW1lQ29udHJvbGxlciwgbGFiZWwsIHRyYWNrcywgdHJ1ZSkKK3ZvaWQgTG9jYWxN
ZWRpYVN0cmVhbTo6c3RvcFRpbWVyRmlyZWQoVGltZXI8TG9jYWxNZWRpYVN0cmVhbT4qKQogewor
ICAgIGlmIChyZWFkeVN0YXRlKCkgPT0gRU5ERUQpCisgICAgICAgIHJldHVybjsKKworICAgIG1l
ZGlhU3RyZWFtTWFuYWdlcigpLnN0b3BMb2NhbE1lZGlhU3RyZWFtKG1fc3RyZWFtSWQpOworICAg
IHN0cmVhbUVuZGVkKCk7CiB9CiAKIExvY2FsTWVkaWFTdHJlYW06On5Mb2NhbE1lZGlhU3RyZWFt
KCkKQEAgLTc2LDQxICs2OCw2IEBAIExvY2FsTWVkaWFTdHJlYW0qIExvY2FsTWVkaWFTdHJlYW06
OnRvTG9jYWxNZWRpYVN0cmVhbSgpCiAgICAgcmV0dXJuIHRoaXM7CiB9CiAKLXZvaWQgTG9jYWxN
ZWRpYVN0cmVhbTo6ZGV0YWNoRW1iZWRkZXIoKQotewotICAgIC8vIEFzc3VtaW5nIHdlIHNob3Vs
ZCBzdG9wIGFueSBsaXZlIHN0cmVhbXMgd2hlbiBsb3NpbmcgYWNjZXNzIHRvIHRoZSBlbWJlZGRl
ci4KLSAgICBzdG9wKCk7Ci0KLSAgICBNZWRpYVN0cmVhbTo6ZGV0YWNoRW1iZWRkZXIoKTsKLX0K
LQotdm9pZCBMb2NhbE1lZGlhU3RyZWFtOjpzdHJlYW1FbmRlZCgpCi17Ci0gICAgTWVkaWFTdHJl
YW06OnN0cmVhbUVuZGVkKCk7Ci19Ci0KLXZvaWQgTG9jYWxNZWRpYVN0cmVhbTo6c3RvcCgpCi17
Ci0gICAgaWYgKCFtZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcigpIHx8IG1fcmVhZHlTdGF0ZSA9
PSBFTkRFRCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xs
ZXIoKS0+c3RvcEdlbmVyYXRlZFN0cmVhbShsYWJlbCgpKTsKLQotICAgIG1fcmVhZHlTdGF0ZSA9
IEVOREVEOwotCi0gICAgLy8gRG9uJ3QgYXNzZXJ0IHNpbmNlIGl0IGNhbiBiZSBudWxsIGluIGRl
Z2VuZXJhdGUgY2FzZXMgbGlrZSBmcmFtZXMgZGV0YWNoZWQgZnJvbSB0aGVpciBwYWdlcy4KLSAg
ICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
QVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNDb250ZXh0VGhyZWFkKCkpOwotICAg
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+cG9zdFRhc2soRGlzcGF0Y2hVcGRhdGVUYXNrOjpj
cmVhdGUodGhpcywgJkxvY2FsTWVkaWFTdHJlYW06Om9uU3RvcCkpOwotfQotCi12b2lkIExvY2Fs
TWVkaWFTdHJlYW06Om9uU3RvcCgpCi17Ci0gICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5lbmRlZEV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKLX0KLQogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdp
dCBhL21hc3RlcjpTb3VyY2UvV2ViQ29yZS9kb20vTG9jYWxNZWRpYVN0cmVhbS5oIGIvSEVBRDpT
b3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9Mb2NhbE1lZGlhU3RyZWFtLmgKaW5kZXggNmM4NTQw
OC4uY2FhNDJmMSAxMDA2NDQKLS0tIGEvbWFzdGVyOlNvdXJjZS9XZWJDb3JlL2RvbS9Mb2NhbE1l
ZGlhU3RyZWFtLmgKKysrIGIvSEVBRDpTb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9Mb2NhbE1l
ZGlhU3RyZWFtLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgRXJp
Y3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI4LDMzICsyOSwyNiBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKICNp
bmNsdWRlICJNZWRpYVN0cmVhbS5oIgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVk
ZSAiVGltZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBMb2NhbE1lZGlhU3Ry
ZWFtIDogcHVibGljIE1lZGlhU3RyZWFtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxMb2NhbE1lZGlhU3RyZWFtPiBjcmVhdGUoTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIqLCBj
b25zdCBTdHJpbmcmIGxhYmVsLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tMaXN0PiB0cmFj
a3MpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPExvY2FsTWVkaWFTdHJlYW0+IGNyZWF0ZShjb25z
dCBTdHJpbmcmIHN0cmVhbUlkLCBjb25zdCBNZWRpYVN0cmVhbUNvbXBvbmVudExpc3QmLCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Kik7CiAgICAgdmlydHVhbCB+TG9jYWxNZWRpYVN0cmVhbSgpOwog
CiAgICAgdm9pZCBzdG9wKCk7CiAKLSAgICAvLyBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcjo6
U3RyZWFtQ2xpZW50IGltcGxlbWVudGF0aW9uLgotICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hFbWJl
ZGRlcigpOwotICAgIHZpcnR1YWwgdm9pZCBzdHJlYW1FbmRlZCgpOwotCiAgICAgLy8gRXZlbnRU
YXJnZXQuCiAgICAgdmlydHVhbCBMb2NhbE1lZGlhU3RyZWFtKiB0b0xvY2FsTWVkaWFTdHJlYW0o
KTsKIAotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgYm9vbCBpc0xvY2FsTWVkaWFTdHJlYW0oKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9Ci0KIHByaXZhdGU6Ci0gICAgTG9jYWxNZWRpYVN0cmVhbShN
ZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlciosIGNvbnN0IFN0cmluZyYgbGFiZWwsIFBhc3NSZWZQ
dHI8TWVkaWFTdHJlYW1UcmFja0xpc3Q+IHRyYWNrcyk7Ci0gICAgY2xhc3MgRGlzcGF0Y2hVcGRh
dGVUYXNrOwotICAgIGZyaWVuZCBjbGFzcyBEaXNwYXRjaFVwZGF0ZVRhc2s7CisgICAgTG9jYWxN
ZWRpYVN0cmVhbShjb25zdCBTdHJpbmcmIHN0cmVhbUlkLCBjb25zdCBNZWRpYVN0cmVhbUNvbXBv
bmVudExpc3QmLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKLSAgICB2b2lkIG9uU3RvcCgp
OworICAgIHZvaWQgc3RvcFRpbWVyRmlyZWQoVGltZXI8TG9jYWxNZWRpYVN0cmVhbT4qKTsKKwor
ICAgIFRpbWVyPExvY2FsTWVkaWFTdHJlYW0+IG1fc3RvcFRpbWVyOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvbWFzdGVyOlNvdXJjZS9XZWJDb3JlL2RvbS9Mb2Nh
bE1lZGlhU3RyZWFtLmlkbCBiL0hFQUQ6U291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTG9jYWxN
ZWRpYVN0cmVhbS5pZGwKaW5kZXggZTQ3MjVhMC4uMTVhMmM0MiAxMDA2NDQKLS0tIGEvbWFzdGVy
OlNvdXJjZS9XZWJDb3JlL2RvbS9Mb2NhbE1lZGlhU3RyZWFtLmlkbAorKysgYi9IRUFEOlNvdXJj
ZS9XZWJDb3JlL21lZGlhc3RyZWFtL0xvY2FsTWVkaWFTdHJlYW0uaWRsCkBAIC0yNyw3ICsyNyw4
IEBAIG1vZHVsZSBjb3JlIHsKICAgICBpbnRlcmZhY2UgWwogICAgICAgICBDb25kaXRpb25hbD1N
RURJQV9TVFJFQU0sCiAgICAgICAgIEdlbmVyYXRlTmF0aXZlQ29udmVydGVyLAotICAgICAgICBF
dmVudFRhcmdldAorICAgICAgICBFdmVudFRhcmdldCwKKyAgICAgICAgR2VuZXJhdGVUb0pTCiAg
ICAgXSBMb2NhbE1lZGlhU3RyZWFtIDogTWVkaWFTdHJlYW0gewogICAgICAgICB2b2lkIHN0b3Ao
KTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvbWFzdGVyOlNvdXJjZS9XZWJDb3JlL2RvbS9NZWRpYVN0
cmVhbS5jcHAgYi9IRUFEOlNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNw
cAppbmRleCBiMDlmYmEyLi40NzVkNmMxIDEwMDY0NAotLS0gYS9tYXN0ZXI6U291cmNlL1dlYkNv
cmUvZG9tL01lZGlhU3RyZWFtLmNwcAorKysgYi9IRUFEOlNvdXJjZS9XZWJDb3JlL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjgsMjQgKzI5LDQyIEBACiAjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKIAogI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1SZWdpc3RyeS5o
IgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1QYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBNZWRpYVN0cmVhbTo6Y3JlYXRlKE1lZGlh
U3RyZWFtRnJhbWVDb250cm9sbGVyKiBmcmFtZUNvbnRyb2xsZXIsIGNvbnN0IFN0cmluZyYgbGFi
ZWwsIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja0xpc3Q+IHRyYWNrcywgYm9vbCBpc0xvY2Fs
TWVkaWFTdHJlYW0pCitQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBNZWRpYVN0cmVhbTo6Y3JlYXRl
KGNvbnN0IFN0cmluZyYgc3RyZWFtSWQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IE1lZGlh
U3RyZWFtQ29tcG9uZW50TGlzdCYgY29tcG9uZW50cywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhU3RyZWFtKGZyYW1lQ29u
dHJvbGxlciwgbGFiZWwsIHRyYWNrcywgaXNMb2NhbE1lZGlhU3RyZWFtKSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBNZWRpYVN0cmVhbShzdHJlYW1JZCwgbGFiZWwsIGNvbXBvbmVudHMsIGNv
bnRleHQpKTsKIH0KIAotTWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKE1lZGlhU3RyZWFtRnJhbWVD
b250cm9sbGVyKiBmcmFtZUNvbnRyb2xsZXIsIGNvbnN0IFN0cmluZyYgbGFiZWwsIFBhc3NSZWZQ
dHI8TWVkaWFTdHJlYW1UcmFja0xpc3Q+IHRyYWNrcywgYm9vbCBpc0xvY2FsTWVkaWFTdHJlYW0p
Ci0gICAgOiBNZWRpYVN0cmVhbUNsaWVudChmcmFtZUNvbnRyb2xsZXIsIGxhYmVsLCBpc0xvY2Fs
TWVkaWFTdHJlYW0pCi0gICAgLCBtX3JlYWR5U3RhdGUoTElWRSkKLSAgICAsIG1fdHJhY2tzKHRy
YWNrcykKK01lZGlhU3RyZWFtOjpNZWRpYVN0cmVhbShjb25zdCBTdHJpbmcmIHN0cmVhbUlkLCBj
b25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBNZWRpYVN0cmVhbUNvbXBvbmVudExpc3QmIGNvbXBv
bmVudHMsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBtX3N0cmVhbUlk
KHN0cmVhbUlkKQorICAgICwgbV9sYWJlbChsYWJlbCkKKyAgICAsIG1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dChjb250ZXh0KQogeworICAgIFJlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+IHN0
cmVhbURlc2NyaXB0b3IgPSBNZWRpYVN0cmVhbURlc2NyaXB0b3I6OmNyZWF0ZSh0aGlzLCBjb250
ZXh0LT5zZWN1cml0eU9yaWdpbigpLCBjb21wb25lbnRzKTsKKyAgICBtZWRpYVN0cmVhbVJlZ2lz
dHJ5KCkucmVnaXN0ZXJNZWRpYVN0cmVhbShtX3N0cmVhbUlkLCBzdHJlYW1EZXNjcmlwdG9yLnJl
bGVhc2UoKSk7CisKKyAgICBNZWRpYVN0cmVhbVRyYWNrVmVjdG9yIHRyYWNrVmVjdG9yOworICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb21wb25lbnRzLnNpemUoKTsgaSsrKSB7CisgICAg
ICAgIFN0cmluZyBraW5kID0gY29tcG9uZW50c1tpXS0+dHlwZSA9PSBNZWRpYVN0cmVhbUNvbXBv
bmVudDo6VHlwZUF1ZGlvID8gImF1ZGlvIiA6ICJ2aWRlbyI7CisgICAgICAgIHRyYWNrVmVjdG9y
LmFwcGVuZChNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUoc3RyZWFtSWQsIGksIGtpbmQsIGNvbXBv
bmVudHNbaV0tPm5hbWUsIGNvbXBvbmVudHNbaV0tPmVuYWJsZWQpKTsKKyAgICB9CisKKyAgICBt
X3RyYWNrcyA9IE1lZGlhU3RyZWFtVHJhY2tMaXN0OjpjcmVhdGUodHJhY2tWZWN0b3IpOwogfQog
CiBNZWRpYVN0cmVhbTo6fk1lZGlhU3RyZWFtKCkKIHsKKyAgICBtZWRpYVN0cmVhbVJlZ2lzdHJ5
KCkudW5yZWdpc3Rlck1lZGlhU3RyZWFtKG1fc3RyZWFtSWQpOworfQorCitNZWRpYVN0cmVhbTo6
UmVhZHlTdGF0ZSBNZWRpYVN0cmVhbTo6cmVhZHlTdGF0ZSgpIGNvbnN0Cit7CisgICAgQVNTRVJU
KGRlc2NyaXB0b3IoKSk7CisgICAgcmV0dXJuIGRlc2NyaXB0b3IoKS0+ZW5kZWQgPyBFTkRFRCA6
IExJVkU7CiB9CiAKIE1lZGlhU3RyZWFtKiBNZWRpYVN0cmVhbTo6dG9NZWRpYVN0cmVhbSgpCkBA
IC01NSwxNCArNzQsMjMgQEAgTWVkaWFTdHJlYW0qIE1lZGlhU3RyZWFtOjp0b01lZGlhU3RyZWFt
KCkKIAogdm9pZCBNZWRpYVN0cmVhbTo6c3RyZWFtRW5kZWQoKQogewotICAgIEFTU0VSVChtX3Jl
YWR5U3RhdGUgIT0gRU5ERUQpOwotICAgIG1fcmVhZHlTdGF0ZSA9IEVOREVEOworICAgIGlmIChy
ZWFkeVN0YXRlKCkgPT0gRU5ERUQpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVChkZXNj
cmlwdG9yKCkpOworICAgIGRlc2NyaXB0b3IoKS0+ZW5kZWQgPSB0cnVlOworCiAgICAgZGlzcGF0
Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lbmRlZEV2ZW50LCBmYWxzZSwgZmFs
c2UpKTsKIH0KIAogU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogTWVkaWFTdHJlYW06OnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSBjb25zdAogewotICAgIHJldHVybiBtZWRpYVN0cmVhbUZyYW1lQ29u
dHJvbGxlcigpID8gbWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIoKS0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpIDogMDsKKyAgICByZXR1cm4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OworfQor
CitNZWRpYVN0cmVhbURlc2NyaXB0b3IqIE1lZGlhU3RyZWFtOjpkZXNjcmlwdG9yKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbWVkaWFTdHJlYW1SZWdpc3RyeSgpLmxvb2t1cE1lZGlhU3RyZWFtRGVz
Y3JpcHRvcihtX3N0cmVhbUlkKS5nZXQoKTsKIH0KIAogRXZlbnRUYXJnZXREYXRhKiBNZWRpYVN0
cmVhbTo6ZXZlbnRUYXJnZXREYXRhKCkKQEAgLTc1LDYgKzEwMywxNCBAQCBFdmVudFRhcmdldERh
dGEqIE1lZGlhU3RyZWFtOjplbnN1cmVFdmVudFRhcmdldERhdGEoKQogICAgIHJldHVybiAmbV9l
dmVudFRhcmdldERhdGE7CiB9CiAKK3NpemVfdCBmaW5kTWVkaWFTdHJlYW1JblZlY3Rvcihjb25z
dCBNZWRpYVN0cmVhbVZlY3RvciYgc3RyZWFtVmVjdG9yLCBjb25zdCBTdHJpbmcmIHN0cmVhbUlk
KQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3RyZWFtVmVjdG9yLnNpemUoKTsgaSsr
KQorICAgICAgICBpZiAoc3RyZWFtVmVjdG9yW2ldLT5pZCgpID09IHN0cmVhbUlkKQorICAgICAg
ICAgICAgcmV0dXJuIGk7CisgICAgcmV0dXJuIG5vdEZvdW5kOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEv
bWFzdGVyOlNvdXJjZS9XZWJDb3JlL2RvbS9NZWRpYVN0cmVhbS5oIGIvSEVBRDpTb3VyY2UvV2Vi
Q29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oCmluZGV4IGE2MTk1NjAuLmE2YjI5NmIgMTAw
NjQ0Ci0tLSBhL21hc3RlcjpTb3VyY2UvV2ViQ29yZS9kb20vTWVkaWFTdHJlYW0uaAorKysgYi9I
RUFEOlNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKQEAgLTEsNSArMSw2
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDM5ICsyOCwzOCBA
QAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAotI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIK
ICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtRnJhbWVDb250
cm9sbGVyLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1Db21wb25lbnQuaCIKICNpbmNsdWRlICJN
ZWRpYVN0cmVhbVRyYWNrTGlzdC5oIgotI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aCIKLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVkaWFTdHJlYW0gOiBwdWJsaWMgUmVmQ291
bnRlZDxNZWRpYVN0cmVhbT4sCi0gICAgICAgICAgICAgICAgICAgIHB1YmxpYyBFdmVudFRhcmdl
dCwKLSAgICAgICAgICAgICAgICAgICAgcHVibGljIE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVy
OjpNZWRpYVN0cmVhbUNsaWVudCB7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Oworc3Ry
dWN0IE1lZGlhU3RyZWFtRGVzY3JpcHRvcjsKKworY2xhc3MgTWVkaWFTdHJlYW0gOiBwdWJsaWMg
UmVmQ291bnRlZDxNZWRpYVN0cmVhbT4sIHB1YmxpYyBFdmVudFRhcmdldCB7CiBwdWJsaWM6CiAg
ICAgLy8gTXVzdCBtYXRjaCB0aGUgY29uc3RhbnRzIGluIHRoZSAuaWRsIGZpbGUuCi0gICAgZW51
bSB7CisgICAgZW51bSBSZWFkeVN0YXRlIHsKICAgICAgICAgTElWRSA9IDEsCiAgICAgICAgIEVO
REVEID0gMgogICAgIH07CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gY3Jl
YXRlKE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgUGFz
c1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrTGlzdD4gdHJhY2tzLCBib29sIGlzTG9jYWxNZWRpYVN0
cmVhbSA9IGZhbHNlKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gY3JlYXRl
KGNvbnN0IFN0cmluZyYgc3RyZWFtSWQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IE1lZGlh
U3RyZWFtQ29tcG9uZW50TGlzdCYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKICAgICB2aXJ0
dWFsIH5NZWRpYVN0cmVhbSgpOwogCisgICAgU3RyaW5nIGlkKCkgY29uc3QgeyByZXR1cm4gbV9z
dHJlYW1JZDsgfQorCiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihlbmRlZCk7
CiAKLSAgICB1bnNpZ25lZCBzaG9ydCByZWFkeVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9yZWFk
eVN0YXRlOyB9Ci0gICAgY29uc3QgU3RyaW5nJiBsYWJlbCgpIGNvbnN0IHsgcmV0dXJuIGNsaWVu
dElkKCk7IH0KKyAgICBSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdDsKKyAgICBjb25zdCBT
dHJpbmcmIGxhYmVsKCkgY29uc3QgeyByZXR1cm4gbV9sYWJlbDsgfQogCi0gICAgUGFzc1JlZlB0
cjxNZWRpYVN0cmVhbVRyYWNrTGlzdD4gdHJhY2tzKCkgeyByZXR1cm4gbV90cmFja3M7IH0KKyAg
ICBNZWRpYVN0cmVhbVRyYWNrTGlzdCogdHJhY2tzKCkgeyByZXR1cm4gbV90cmFja3MuZ2V0KCk7
IH0KIAotICAgIC8vIE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyOjpNZWRpYVN0cmVhbUNsaWVu
dCBpbXBsZW1lbnRhdGlvbi4KLSAgICB2aXJ0dWFsIHZvaWQgc3RyZWFtRW5kZWQoKTsKKyAgICB2
b2lkIHN0cmVhbUVuZGVkKCk7CiAKICAgICAvLyBFdmVudFRhcmdldCBpbXBsZW1lbnRhdGlvbi4K
ICAgICB2aXJ0dWFsIE1lZGlhU3RyZWFtKiB0b01lZGlhU3RyZWFtKCk7CkBAIC02OSwxNiArNjks
MTYgQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW0+OjpkZXJlZjsK
IAogcHJvdGVjdGVkOgotICAgIE1lZGlhU3RyZWFtKE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVy
KiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrTGlzdD4g
dHJhY2tzLCBib29sIGlzTG9jYWxNZWRpYVN0cmVhbSk7CisgICAgTWVkaWFTdHJlYW0oY29uc3Qg
U3RyaW5nJiBzdHJlYW1JZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgTWVkaWFTdHJlYW1D
b21wb25lbnRMaXN0JiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogCiAgICAgLy8gRXZlbnRU
YXJnZXQgaW1wbGVtZW50YXRpb24uCiAgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGV2ZW50
VGFyZ2V0RGF0YSgpOwogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBlbnN1cmVFdmVudFRh
cmdldERhdGEoKTsKIAotICAgIHVuc2lnbmVkIHNob3J0IG1fcmVhZHlTdGF0ZTsKKyAgICBTdHJp
bmcgbV9zdHJlYW1JZDsKIAogcHJpdmF0ZToKLSAgICB2b2lkIG9uRW5kZWQoKTsKKyAgICBNZWRp
YVN0cmVhbURlc2NyaXB0b3IqIGRlc2NyaXB0b3IoKSBjb25zdDsKIAogICAgIC8vIEV2ZW50VGFy
Z2V0IGltcGxlbWVudGF0aW9uLgogICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIHsg
cmVmKCk7IH0KQEAgLTg2LDkgKzg2LDE2IEBAIHByaXZhdGU6CiAKICAgICBFdmVudFRhcmdldERh
dGEgbV9ldmVudFRhcmdldERhdGE7CiAKKyAgICBTdHJpbmcgbV9sYWJlbDsKICAgICBSZWZQdHI8
TWVkaWFTdHJlYW1UcmFja0xpc3Q+IG1fdHJhY2tzOworCisgICAgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OwogfTsKIAordHlwZWRlZiBWZWN0b3I8UmVm
UHRyPE1lZGlhU3RyZWFtPiA+IE1lZGlhU3RyZWFtVmVjdG9yOworCitzaXplX3QgZmluZE1lZGlh
U3RyZWFtSW5WZWN0b3IoY29uc3QgTWVkaWFTdHJlYW1WZWN0b3ImLCBjb25zdCBTdHJpbmcmIHN0
cmVhbUlkKTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE1F
RElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtQ29tcG9uZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bUNvbXBvbmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1ZDRhYzUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bUNvbXBvbmVudC5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
RXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAq
IDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgRXJpY3Nzb24gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29u
dHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZWRpYVN0cmVhbUNv
bXBvbmVudF9oCisjZGVmaW5lIE1lZGlhU3RyZWFtQ29tcG9uZW50X2gKKworI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0cnVjdCBNZWRpYVN0cmVhbUNvbXBvbmVudCA6IHB1YmxpYyBSZWZDb3VudGVk
PE1lZGlhU3RyZWFtQ29tcG9uZW50PiB7CitwdWJsaWM6CisgICAgZW51bSBUeXBlIHsKKyAgICAg
ICAgVHlwZUF1ZGlvID0gMSA8PCAwLAorICAgICAgICBUeXBlVmlkZW8gPSAxIDw8IDEKKyAgICB9
OworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Db21wb25lbnQ+IGNyZWF0ZShj
b25zdCBTdHJpbmcmIGlkLCBUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBlbmFi
bGVkID0gdHJ1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFTdHJl
YW1Db21wb25lbnQoaWQsIHR5cGUsIG5hbWUsIGVuYWJsZWQpKTsKKyAgICB9CisKKyAgICBTdHJp
bmcgaWQ7CisgICAgVHlwZSB0eXBlOworICAgIFN0cmluZyBuYW1lOworICAgIGJvb2wgZW5hYmxl
ZDsKKworcHJpdmF0ZToKKyAgICBNZWRpYVN0cmVhbUNvbXBvbmVudChjb25zdCBTdHJpbmcmIGlk
QXJnLCBUeXBlIHR5cGVBcmcsIGNvbnN0IFN0cmluZyYgbmFtZUFyZywgYm9vbCBlbmFibGVkQXJn
KQorICAgICAgICA6IGlkKGlkQXJnKQorICAgICAgICAsIHR5cGUodHlwZUFyZykKKyAgICAgICAg
LCBuYW1lKG5hbWVBcmcpCisgICAgICAgICwgZW5hYmxlZChlbmFibGVkQXJnKQorICAgIHsgfQor
fTsKKwordHlwZWRlZiBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtQ29tcG9uZW50PiA+IE1lZGlh
U3RyZWFtQ29tcG9uZW50TGlzdDsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIE1lZGlhU3RyZWFtQ29tcG9uZW50
X2gKZGlmZiAtLWdpdCBhL21hc3RlcjpTb3VyY2UvV2ViQ29yZS9wMnAvTWVkaWFTdHJlYW1FdmVu
dC5jcHAgYi9IRUFEOlNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRXZlbnQu
Y3BwCmluZGV4IDdjMDAyMTIuLmMyNWE3OTAgMTAwNjQ0Ci0tLSBhL21hc3RlcjpTb3VyY2UvV2Vi
Q29yZS9wMnAvTWVkaWFTdHJlYW1FdmVudC5jcHAKKysrIGIvSEVBRDpTb3VyY2UvV2ViQ29yZS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUV2ZW50LmNwcApAQCAtMjcsOSArMjcsNiBAQAogCiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKIAotI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLSNpbmNsdWRl
ICJNZWRpYVN0cmVhbS5oIgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBhc3NSZWZQdHI8TWVk
aWFTdHJlYW1FdmVudD4gTWVkaWFTdHJlYW1FdmVudDo6Y3JlYXRlKCkKQEAgLTY3LDEyICs2NCwx
MSBAQCB2b2lkIE1lZGlhU3RyZWFtRXZlbnQ6OmluaXRNZWRpYVN0cmVhbUV2ZW50KGNvbnN0IEF0
b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdQogICAgIG1fc3RyZWFtID0gc3RyZWFtOwogfQog
Ci1QYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBNZWRpYVN0cmVhbUV2ZW50OjpzdHJlYW0oKSBjb25z
dAorTWVkaWFTdHJlYW0qIE1lZGlhU3RyZWFtRXZlbnQ6OnN0cmVhbSgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIG1fc3RyZWFtOworICAgIHJldHVybiBtX3N0cmVhbS5nZXQoKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKLQpkaWZm
IC0tZ2l0IGEvbWFzdGVyOlNvdXJjZS9XZWJDb3JlL3AycC9NZWRpYVN0cmVhbUV2ZW50LmggYi9I
RUFEOlNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRXZlbnQuaAppbmRleCBl
NGUyNWY1Li5lMzE4YTEzIDEwMDY0NAotLS0gYS9tYXN0ZXI6U291cmNlL1dlYkNvcmUvcDJwL01l
ZGlhU3RyZWFtRXZlbnQuaAorKysgYi9IRUFEOlNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtRXZlbnQuaApAQCAtMjgsMTIgKzI4LDEwIEBACiAjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKIAogI2luY2x1ZGUgIkV2ZW50LmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3Ry
aW5nLmg+CisjaW5jbHVkZSAiTWVkaWFTdHJlYW0uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1jbGFzcyBTdHJlYW07Ci0KIGNsYXNzIE1lZGlhU3RyZWFtRXZlbnQgOiBwdWJsaWMgRXZlbnQg
ewogcHVibGljOgogICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtRXZlbnQoKTsKQEAgLTQzLDExICs0
MSwxMSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGluaXRNZWRpYVN0cmVhbUV2ZW50KGNvbnN0IEF0
b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgUGFzc1Jl
ZlB0cjxNZWRpYVN0cmVhbT4pOwogCisgICAgTWVkaWFTdHJlYW0qIHN0cmVhbSgpIGNvbnN0Owor
CiAgICAgLy8gRnJvbSBFdmVudFRhcmdldC4KICAgICB2aXJ0dWFsIGJvb2wgaXNNZWRpYVN0cmVh
bUV2ZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgUGFzc1JlZlB0cjxNZWRpYVN0
cmVhbT4gc3RyZWFtKCkgY29uc3Q7Ci0KIHByaXZhdGU6CiAgICAgTWVkaWFTdHJlYW1FdmVudCgp
OwogICAgIE1lZGlhU3RyZWFtRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNh
bkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPik7CmRpZmYg
LS1naXQgYS9tYXN0ZXI6U291cmNlL1dlYkNvcmUvcDJwL01lZGlhU3RyZWFtRXZlbnQuaWRsIGIv
SEVBRDpTb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUV2ZW50LmlkbAppbmRl
eCAzMTViYjc5Li4xMzIwYjkxIDEwMDY0NAotLS0gYS9tYXN0ZXI6U291cmNlL1dlYkNvcmUvcDJw
L01lZGlhU3RyZWFtRXZlbnQuaWRsCisrKyBiL0hFQUQ6U291cmNlL1dlYkNvcmUvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1FdmVudC5pZGwKQEAgLTIyLDcgKzIyLDcgQEAKICAqIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAK
LW1vZHVsZSBwMnAgeworbW9kdWxlIGV2ZW50cyB7CiAKICAgICAvLyBBY2NvcmRpbmcgdG8gdGhl
IFdIQVRXRyBzcGVjaWZpY2F0aW9uOgogICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVj
cy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3ZpZGVvLWNvbmZlcmVuY2luZy1hbmQt
cGVlci10by1wZWVyLWNvbW11bmljYXRpb24uaHRtbCNtZWRpYXN0cmVhbWV2ZW50CmRpZmYgLS1n
aXQgYS9tYXN0ZXI6U291cmNlL1dlYkNvcmUvZG9tL01lZGlhU3RyZWFtTGlzdC5jcHAgYi9IRUFE
OlNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtTGlzdC5jcHAKaW5kZXggZDNh
ZDk0Ni4uNGUxNzliNyAxMDA2NDQKLS0tIGEvbWFzdGVyOlNvdXJjZS9XZWJDb3JlL2RvbS9NZWRp
YVN0cmVhbUxpc3QuY3BwCisrKyBiL0hFQUQ6U291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1MaXN0LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtNDcsNDcgKzQ4LDM5IEBAIHVuc2lnbmVkIE1lZGlhU3RyZWFtTGlzdDo6
bGVuZ3RoKCkgY29uc3QKICAgICByZXR1cm4gbV9zdHJlYW1zLnNpemUoKTsKIH0KIAotUGFzc1Jl
ZlB0cjxNZWRpYVN0cmVhbT4gTWVkaWFTdHJlYW1MaXN0OjppdGVtKHVuc2lnbmVkIGluZGV4KSBj
b25zdAorTWVkaWFTdHJlYW0qIE1lZGlhU3RyZWFtTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRleCkg
Y29uc3QKIHsKLSAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1lZGlhU3RyZWFtPiA+Ojpjb25z
dF9pdGVyYXRvciBpID0gbV9zdHJlYW1zLmJlZ2luKCk7Ci0gICAgZm9yICh1bnNpZ25lZCBqID0g
MDsgaSAhPSBtX3N0cmVhbXMuZW5kKCk7ICsraSwgKytqKSB7Ci0gICAgICAgIGlmIChqID09IGlu
ZGV4KQotICAgICAgICAgICAgcmV0dXJuIGktPnNlY29uZDsKLSAgICB9Ci0gICAgcmV0dXJuIFBh
c3NSZWZQdHI8TWVkaWFTdHJlYW0+KCk7CisgICAgcmV0dXJuIG1fc3RyZWFtc1tpbmRleF0uZ2V0
KCk7CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1MaXN0OjphZGQoUGFzc1JlZlB0cjxNZWRpYVN0cmVh
bT4gc3RyZWFtKQordm9pZCBNZWRpYVN0cmVhbUxpc3Q6OmFwcGVuZChQYXNzUmVmUHRyPE1lZGlh
U3RyZWFtPiBzdHJlYW0pCiB7Ci0gICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBzID0gc3RyZWFtOwot
ICAgIEFTU0VSVCghY29udGFpbnMocykpOwotICAgIG1fc3RyZWFtcy5hZGQocy0+bGFiZWwoKSwg
cyk7CisgICAgbV9zdHJlYW1zLmFwcGVuZChzdHJlYW0pOwogfQogCi12b2lkIE1lZGlhU3RyZWFt
TGlzdDo6cmVtb3ZlKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IHN0cmVhbSkKK3ZvaWQgTWVkaWFT
dHJlYW1MaXN0OjpyZW1vdmUoY29uc3QgUmVmUHRyPE1lZGlhU3RyZWFtPiYgc3RyZWFtKQogewot
ICAgIFJlZlB0cjxNZWRpYVN0cmVhbT4gcyA9IHN0cmVhbTsKLSAgICBBU1NFUlQoY29udGFpbnMo
cykpOwotICAgIG1fc3RyZWFtcy5yZW1vdmUocy0+bGFiZWwoKSk7CisgICAgc2l6ZV90IGkgPSBm
aW5kTWVkaWFTdHJlYW1JblZlY3RvcihtX3N0cmVhbXMsIHN0cmVhbS0+aWQoKSk7CisgICAgaWYg
KGkgIT0gbm90Rm91bmQpCisgICAgICAgIHJldHVybiBtX3N0cmVhbXMucmVtb3ZlKGkpOwogfQog
Ci1ib29sIE1lZGlhU3RyZWFtTGlzdDo6Y29udGFpbnMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4g
c3RyZWFtKSBjb25zdAorYm9vbCBNZWRpYVN0cmVhbUxpc3Q6OmNvbnRhaW5zKGNvbnN0IFJlZlB0
cjxNZWRpYVN0cmVhbT4mIHN0cmVhbSkgY29uc3QKIHsKLSAgICBSZWZQdHI8TWVkaWFTdHJlYW0+
IHMgPSBzdHJlYW07Ci0gICAgcmV0dXJuIG1fc3RyZWFtcy5jb250YWlucyhzLT5sYWJlbCgpKTsK
KyAgICByZXR1cm4gZmluZE1lZGlhU3RyZWFtSW5WZWN0b3IobV9zdHJlYW1zLCBzdHJlYW0tPmlk
KCkpICE9IG5vdEZvdW5kOwogfQogCi1ib29sIE1lZGlhU3RyZWFtTGlzdDo6Y29udGFpbnMoY29u
c3QgU3RyaW5nJiBsYWJlbCkgY29uc3QKK1Bhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IE1lZGlhU3Ry
ZWFtTGlzdDo6dGFrZShjb25zdCBTdHJpbmcmIHN0cmVhbUlkKQogewotICAgIHJldHVybiBtX3N0
cmVhbXMuY29udGFpbnMobGFiZWwpOwotfQorICAgIHNpemVfdCBpID0gZmluZE1lZGlhU3RyZWFt
SW5WZWN0b3IobV9zdHJlYW1zLCBzdHJlYW1JZCk7CisgICAgaWYgKGkgPT0gbm90Rm91bmQpCisg
ICAgICAgIHJldHVybiAwOwogCi1QYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBNZWRpYVN0cmVhbUxp
c3Q6OmdldChjb25zdCBTdHJpbmcmIGxhYmVsKSBjb25zdAotewotICAgIHJldHVybiBtX3N0cmVh
bXMuZ2V0KGxhYmVsKTsKKyAgICBSZWZQdHI8TWVkaWFTdHJlYW0+IHN0cmVhbSA9IG1fc3RyZWFt
c1tpXTsKKyAgICBtX3N0cmVhbXMucmVtb3ZlKGkpOworICAgIHJldHVybiBzdHJlYW07CiB9CiAK
LQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVB
TSkKZGlmZiAtLWdpdCBhL21hc3RlcjpTb3VyY2UvV2ViQ29yZS9kb20vTWVkaWFTdHJlYW1MaXN0
LmggYi9IRUFEOlNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtTGlzdC5oCmlu
ZGV4IDczMjBmZGQuLmNmMTRkYzMgMTAwNjQ0Ci0tLSBhL21hc3RlcjpTb3VyY2UvV2ViQ29yZS9k
b20vTWVkaWFTdHJlYW1MaXN0LmgKKysrIGIvSEVBRDpTb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbUxpc3QuaApAQCAtMjgsMTAgKzI4LDYgQEAKICNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQogCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW0uaCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtNDIsMTkgKzM4LDE4IEBAIHB1YmxpYzoKIAogICAgIC8vIERPTSBtZXRob2RzICYgYXR0cmli
dXRlcyBmb3IgTWVkaWFTdHJlYW1MaXN0CiAgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7Ci0g
ICAgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3Q7Cisg
ICAgTWVkaWFTdHJlYW0qIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0OwogCiAgICAgLy8gTGlz
dCBtYW5pcHVsYXRpb24KLSAgICB2b2lkIGFkZChQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPik7Ci0g
ICAgdm9pZCByZW1vdmUoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4pOwotICAgIGJvb2wgY29udGFp
bnMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4pIGNvbnN0OwotICAgIGJvb2wgY29udGFpbnMoY29u
c3QgU3RyaW5nJiBsYWJlbCkgY29uc3Q7Ci0gICAgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gZ2V0
KGNvbnN0IFN0cmluZyYgbGFiZWwpIGNvbnN0OworICAgIHZvaWQgYXBwZW5kKFBhc3NSZWZQdHI8
TWVkaWFTdHJlYW0+KTsKKyAgICB2b2lkIHJlbW92ZShjb25zdCBSZWZQdHI8TWVkaWFTdHJlYW0+
Jik7CisgICAgYm9vbCBjb250YWlucyhjb25zdCBSZWZQdHI8TWVkaWFTdHJlYW0+JikgY29uc3Q7
CisgICAgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gdGFrZShjb25zdCBTdHJpbmcmIHN0cmVhbUlk
KTsKIAogcHJpdmF0ZToKICAgICBNZWRpYVN0cmVhbUxpc3QoKTsKIAotICAgIEhhc2hNYXA8U3Ry
aW5nLCBSZWZQdHI8TWVkaWFTdHJlYW0+ID4gbV9zdHJlYW1zOworICAgIE1lZGlhU3RyZWFtVmVj
dG9yIG1fc3RyZWFtczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L21hc3RlcjpTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcCBi
L0hFQUQ6U291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZWdpc3RyeS5jcHAK
aW5kZXggOTU5MTU1NS4uZTE3ZjcyNyAxMDA2NDQKLS0tIGEvbWFzdGVyOlNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL01lZGlhU3RyZWFtUmVnaXN0cnkuY3BwCisrKyBiL0hFQUQ6U291cmNlL1dlYkNv
cmUvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZWdpc3RyeS5jcHAKQEAgLTEsNSArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDM3ICsyOSw1MCBAQAogI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAKICNpbmNsdWRlICJLVVJMLmgiCi0jaW5jbHVkZSAiTWVk
aWFTdHJlYW0uaCIKLSNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLU1lZGlhU3RyZWFtUmVnaXN0cnkmIE1lZGlhU3RyZWFtUmVnaXN0cnk6OnJlZ2lz
dHJ5KCkKK01lZGlhU3RyZWFtUmVnaXN0cnkmIG1lZGlhU3RyZWFtUmVnaXN0cnkoKQogewotICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChNZWRpYVN0
cmVhbVJlZ2lzdHJ5LCBpbnN0YW5jZSwgKCkpOwogICAgIHJldHVybiBpbnN0YW5jZTsKIH0KIAot
dm9pZCBNZWRpYVN0cmVhbVJlZ2lzdHJ5OjpyZWdpc3Rlck1lZGlhU3RyZWFtVVJMKGNvbnN0IEtV
UkwmIHVybCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gc3RyZWFtKQorTWVkaWFTdHJlYW1SZWdp
c3RyeTo6fk1lZGlhU3RyZWFtUmVnaXN0cnkoKQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7Ci0gICAgbV9zdHJlYW1zLmFkZCh1cmwuc3RyaW5nKCksIHN0cmVhbSk7CiB9CiAKLXZvaWQg
TWVkaWFTdHJlYW1SZWdpc3RyeTo6dW5yZWdpc3Rlck1lZGlhU3RyZWFtVVJMKGNvbnN0IEtVUkwm
IHVybCkKK3ZvaWQgTWVkaWFTdHJlYW1SZWdpc3RyeTo6cmVnaXN0ZXJNZWRpYVN0cmVhbShjb25z
dCBTdHJpbmcmIHN0cmVhbUlkLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4gc3Ry
ZWFtRGVzY3JpcHRvcikKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIG1fc3Ry
ZWFtcy5yZW1vdmUodXJsLnN0cmluZygpKTsKKyAgICBtX3N0cmVhbURlc2NyaXB0b3JzLnNldChz
dHJlYW1JZCwgc3RyZWFtRGVzY3JpcHRvcik7CiB9CiAKLU1lZGlhU3RyZWFtKiBNZWRpYVN0cmVh
bVJlZ2lzdHJ5OjptZWRpYVN0cmVhbShjb25zdCBLVVJMJiB1cmwpIGNvbnN0Cit2b2lkIE1lZGlh
U3RyZWFtUmVnaXN0cnk6OnVucmVnaXN0ZXJNZWRpYVN0cmVhbShjb25zdCBTdHJpbmcmIHN0cmVh
bUlkKQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgVVJMU3RyZWFtTWFwOjpj
b25zdF9pdGVyYXRvciBpdCA9IG1fc3RyZWFtcy5maW5kKHVybC5zdHJpbmcoKSk7Ci0gICAgaWYg
KGl0ICE9IG1fc3RyZWFtcy5lbmQoKSkKLSAgICAgICAgcmV0dXJuIGl0LT5zZWNvbmQuZ2V0KCk7
Ci0gICAgcmV0dXJuIDA7CisgICAgUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4gc3RyZWFt
RGVzY3JpcHRvciA9IG1fc3RyZWFtRGVzY3JpcHRvcnMudGFrZShzdHJlYW1JZCk7CisgICAgaWYg
KCFzdHJlYW1EZXNjcmlwdG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBzdHJlYW1EZXNjcmlw
dG9yLT5vd25lciA9IDA7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1SZWdpc3RyeTo6YXNzb2NpYXRl
VVJMKGNvbnN0IEtVUkwmIHN0cmVhbVVSTCwgY29uc3QgU3RyaW5nJiByZWdpc3RlcmVkU3RyZWFt
SWQpCit7CisgICAgUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4gc3RyZWFtRGVzY3JpcHRv
ciA9IG1fc3RyZWFtRGVzY3JpcHRvcnMuZ2V0KHJlZ2lzdGVyZWRTdHJlYW1JZCk7CisgICAgaWYg
KCFzdHJlYW1EZXNjcmlwdG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3N0cmVhbURlc2Ny
aXB0b3JzLnNldChzdHJlYW1VUkwuc3RyaW5nKCksIHN0cmVhbURlc2NyaXB0b3IpOworfQorCit2
b2lkIE1lZGlhU3RyZWFtUmVnaXN0cnk6OnVuYXNzb2NpYXRlVVJMKGNvbnN0IEtVUkwmIHN0cmVh
bVVSTCkKK3sKKyAgICBtX3N0cmVhbURlc2NyaXB0b3JzLnJlbW92ZShzdHJlYW1VUkwuc3RyaW5n
KCkpOworfQorCitQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4gTWVkaWFTdHJlYW1S
ZWdpc3RyeTo6bG9va3VwTWVkaWFTdHJlYW1EZXNjcmlwdG9yKGNvbnN0IFN0cmluZyYga2V5KQor
eworICAgIHJldHVybiBtX3N0cmVhbURlc2NyaXB0b3JzLmdldChrZXkpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9tYXN0ZXI6U291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTWVkaWFTdHJlYW1SZWdpc3RyeS5oIGIvSEVBRDpTb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmgKaW5kZXggMWU5Y2QyYS4uMWEzMTA0NSAxMDA2NDQKLS0t
IGEvbWFzdGVyOlNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyZWFtUmVnaXN0cnkuaAor
KysgYi9IRUFEOlNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUmVnaXN0cnku
aApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBFcmljc3NvbiBBQi4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjUsMzAgKzI2LDYxIEBACiAjaWZuZGVmIE1lZGlhU3RyZWFtUmVnaXN0cnlfaAogI2RlZmluZSBN
ZWRpYVN0cmVhbVJlZ2lzdHJ5X2gKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNs
dWRlICJNZWRpYVN0cmVhbUNvbXBvbmVudC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgi
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBLVVJMOwogY2xhc3MgTWVkaWFTdHJlYW07CitjbGFzcyBNZWRpYVN0cmVhbVJlZ2lz
dHJ5OworCitzdHJ1Y3QgTWVkaWFTdHJlYW1EZXNjcmlwdG9yIDogcHVibGljIFJlZkNvdW50ZWQ8
TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiBjcmVhdGUoTWVkaWFTdHJlYW0qIG93bmVyLCBQYXNzUmVm
UHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4sCisgICAgICAgICAgICBjb25zdCBNZWRpYVN0cmVh
bUNvbXBvbmVudExpc3QmIGNvbXBvbmVudHMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IE1lZGlhU3RyZWFtRGVzY3JpcHRvcihvd25lciwgb3JpZ2luLCBjb21wb25lbnRzKSk7
CisgICAgfQorCisgICAgTWVkaWFTdHJlYW0qIG93bmVyOworICAgIFJlZlB0cjxTZWN1cml0eU9y
aWdpbj4gb3JpZ2luOworICAgIE1lZGlhU3RyZWFtQ29tcG9uZW50TGlzdCBjb21wb25lbnRzOwor
ICAgIGJvb2wgZW5kZWQ7CisKK3ByaXZhdGU6CisgICAgTWVkaWFTdHJlYW1EZXNjcmlwdG9yKE1l
ZGlhU3RyZWFtKiBvd25lckFyZywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luQXJn
LAorICAgICAgICAgICAgY29uc3QgTWVkaWFTdHJlYW1Db21wb25lbnRMaXN0JiBjb21wb25lbnRz
QXJnKQorICAgICAgICA6IG93bmVyKG93bmVyQXJnKQorICAgICAgICAsIG9yaWdpbihvcmlnaW5B
cmcpCisgICAgICAgICwgY29tcG9uZW50cyhjb21wb25lbnRzQXJnKQorICAgICAgICAsIGVuZGVk
KGZhbHNlKQorICAgIHsgfQorfTsKKworTWVkaWFTdHJlYW1SZWdpc3RyeSYgbWVkaWFTdHJlYW1S
ZWdpc3RyeSgpOwogCiBjbGFzcyBNZWRpYVN0cmVhbVJlZ2lzdHJ5IHsKIHB1YmxpYzoKLSAgICAv
LyBSZXR1cm5zIGEgc2luZ2xlIGluc3RhbmNlIG9mIE1lZGlhU3RyZWFtUmVnaXN0cnkuCi0gICAg
c3RhdGljIE1lZGlhU3RyZWFtUmVnaXN0cnkmIHJlZ2lzdHJ5KCk7CisgICAgfk1lZGlhU3RyZWFt
UmVnaXN0cnkoKTsKIAotICAgIC8vIFJlZ2lzdGVycyBhIGJsb2IgVVJMIHJlZmVycmluZyB0byB0
aGUgc3BlY2lmaWVkIHN0cmVhbSBkYXRhLgotICAgIHZvaWQgcmVnaXN0ZXJNZWRpYVN0cmVhbVVS
TChjb25zdCBLVVJMJiwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4pOwotICAgIHZvaWQgdW5yZWdp
c3Rlck1lZGlhU3RyZWFtVVJMKGNvbnN0IEtVUkwmKTsKLSAgICBNZWRpYVN0cmVhbSogbWVkaWFT
dHJlYW0oY29uc3QgS1VSTCYpIGNvbnN0OworICAgIHZvaWQgcmVnaXN0ZXJNZWRpYVN0cmVhbShj
b25zdCBTdHJpbmcmIHN0cmVhbUlkLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4p
OworICAgIHZvaWQgdW5yZWdpc3Rlck1lZGlhU3RyZWFtKGNvbnN0IFN0cmluZyYgc3RyZWFtSWQp
OworICAgIHZvaWQgYXNzb2NpYXRlVVJMKGNvbnN0IEtVUkwmIHN0cmVhbVVSTCwgY29uc3QgU3Ry
aW5nJiByZWdpc3RlcmVkU3RyZWFtSWQpOworICAgIHZvaWQgdW5hc3NvY2lhdGVVUkwoY29uc3Qg
S1VSTCYgc3RyZWFtVVJMKTsKKworICAgIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9y
PiBsb29rdXBNZWRpYVN0cmVhbURlc2NyaXB0b3IoY29uc3QgU3RyaW5nJiBrZXkpOyAvLyBrZXk6
IHN0cmVhbUlkIG9yIFVSTCBzdHJpbmcKIAogcHJpdmF0ZToKLSAgICB0eXBlZGVmIEhhc2hNYXA8
U3RyaW5nLCBSZWZQdHI8TWVkaWFTdHJlYW0+ID4gVVJMU3RyZWFtTWFwOwotICAgIFVSTFN0cmVh
bU1hcCBtX3N0cmVhbXM7CisgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxNZWRpYVN0cmVhbURl
c2NyaXB0b3I+ID4gbV9zdHJlYW1EZXNjcmlwdG9yczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKICNlbmRpZiAvLyBNZWRp
YVN0cmVhbVJlZ2lzdHJ5X2gKZGlmZiAtLWdpdCBhL21hc3RlcjpTb3VyY2UvV2ViQ29yZS9kb20v
TWVkaWFTdHJlYW1UcmFjay5jcHAgYi9IRUFEOlNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IGJlNGNiZjcuLmViNDNhOWIgMTAwNjQ0Ci0tLSBhL21h
c3RlcjpTb3VyY2UvV2ViQ29yZS9kb20vTWVkaWFTdHJlYW1UcmFjay5jcHAKKysrIGIvSEVBRDpT
b3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtMSw1ICsx
LDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsMjIgKzI0LDI0
IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhU3RyZWFtTWFu
YWdlci5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2suaCIKIAogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxNZWRpYVN0cmVh
bVRyYWNrPiBNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBpZCwgY29uc3Qg
U3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIGxhYmVsKQorUGFzc1JlZlB0cjxNZWRpYVN0cmVh
bVRyYWNrPiBNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBvd25lclN0cmVh
bUlkLCB1bnNpZ25lZCB0cmFja0luZGV4LCBjb25zdCBTdHJpbmcmIGtpbmQsIGNvbnN0IFN0cmlu
ZyYgbGFiZWwsIGJvb2wgZW5hYmxlZCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlh
U3RyZWFtVHJhY2soaWQsIGtpbmQsIGxhYmVsKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBN
ZWRpYVN0cmVhbVRyYWNrKG93bmVyU3RyZWFtSWQsIHRyYWNrSW5kZXgsIGtpbmQsIGxhYmVsLCBl
bmFibGVkKSk7CiB9CiAKLU1lZGlhU3RyZWFtVHJhY2s6Ok1lZGlhU3RyZWFtVHJhY2soY29uc3Qg
U3RyaW5nJiBpZCwgY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIGxhYmVsKQotICAg
IDogbV9pZChpZCkKK01lZGlhU3RyZWFtVHJhY2s6Ok1lZGlhU3RyZWFtVHJhY2soY29uc3QgU3Ry
aW5nJiBvd25lclN0cmVhbUlkLCB1bnNpZ25lZCB0cmFja0luZGV4LCBjb25zdCBTdHJpbmcmIGtp
bmQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGJvb2wgZW5hYmxlZCkKKyAgICA6IG1fb3duZXJTdHJl
YW1JZChvd25lclN0cmVhbUlkKQorICAgICwgbV90cmFja0luZGV4KHRyYWNrSW5kZXgpCiAgICAg
LCBtX2tpbmQoa2luZCkKICAgICAsIG1fbGFiZWwobGFiZWwpCi0gICAgLCBtX2VuYWJsZWQodHJ1
ZSkKKyAgICAsIG1fZW5hYmxlZChlbmFibGVkKQogewogfQogCkBAIC02MywxMCArNjYsMTIgQEAg
Ym9vbCBNZWRpYVN0cmVhbVRyYWNrOjplbmFibGVkKCkgY29uc3QKIAogdm9pZCBNZWRpYVN0cmVh
bVRyYWNrOjpzZXRFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKKyAgICBpZiAoZW5hYmxlZCA9PSBt
X2VuYWJsZWQpCisgICAgICAgIHJldHVybjsKKwogICAgIG1fZW5hYmxlZCA9IGVuYWJsZWQ7CiAK
LSAgICBpZiAobWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIoKSkKLSAgICAgICAgbWVkaWFTdHJl
YW1GcmFtZUNvbnRyb2xsZXIoKS0+c2V0TWVkaWFTdHJlYW1UcmFja0VuYWJsZWQobV9pZCwgZW5h
YmxlZCk7CisgICAgbWVkaWFTdHJlYW1NYW5hZ2VyKCkuc2V0TWVkaWFTdHJlYW1Db21wb25lbnRF
bmFibGVkKG1fb3duZXJTdHJlYW1JZCwgbV90cmFja0luZGV4LCBtX2VuYWJsZWQpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9tYXN0ZXI6U291cmNlL1dlYkNvcmUv
ZG9tL01lZGlhU3RyZWFtVHJhY2suaCBiL0hFQUQ6U291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay5oCmluZGV4IDMyMjJkYzcuLmU1NzU0MDkgMTAwNjQ0Ci0tLSBhL21h
c3RlcjpTb3VyY2UvV2ViQ29yZS9kb20vTWVkaWFTdHJlYW1UcmFjay5oCisrKyBiL0hFQUQ6U291
cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCkBAIC0xLDUgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwxNyArMjksMTUgQEAK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
LSNpbmNsdWRlICJNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlci5oIgotI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIE1lZGlhU3RyZWFtVHJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0cmVh
bVRyYWNrPiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgTWVkaWFTdHJlYW1GcmFt
ZUNvbnRyb2xsZXI6OkdlbmVyaWNDbGllbnQgeworY2xhc3MgTWVkaWFTdHJlYW1UcmFjayA6IHB1
YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtVHJhY2s+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBpZCwgY29u
c3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIGxhYmVsKTsKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBvd25lclN0cmVhbUlk
LCB1bnNpZ25lZCB0cmFja0luZGV4LCBjb25zdCBTdHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYg
bGFiZWwsIGJvb2wgZW5hYmxlZCA9IHRydWUpOwogICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtVHJh
Y2soKTsKIAogICAgIGNvbnN0IFN0cmluZyYga2luZCgpIGNvbnN0OwpAQCAtNDgsMTUgKzQ3LDE3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEVuYWJsZWQoYm9vbCBlbmFibGVkKTsKIAogcHJpdmF0
ZToKLSAgICBNZWRpYVN0cmVhbVRyYWNrKGNvbnN0IFN0cmluZyYgaWQsIGNvbnN0IFN0cmluZyYg
a2luZCwgY29uc3QgU3RyaW5nJiBsYWJlbCk7CisgICAgTWVkaWFTdHJlYW1UcmFjayhjb25zdCBT
dHJpbmcmIG93bmVyU3RyZWFtSWQsIHVuc2lnbmVkIHRyYWNrSW5kZXgsIGNvbnN0IFN0cmluZyYg
a2luZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgYm9vbCBlbmFibGVkKTsKKworICAgIGNvbnN0IFN0
cmluZyBtX293bmVyU3RyZWFtSWQ7CisgICAgY29uc3QgdW5zaWduZWQgbV90cmFja0luZGV4Owog
Ci0gICAgU3RyaW5nIG1faWQ7CiAgICAgU3RyaW5nIG1fa2luZDsKICAgICBTdHJpbmcgbV9sYWJl
bDsKICAgICBib29sIG1fZW5hYmxlZDsKIH07CiAKLXR5cGVkZWYgVmVjdG9yPFJlZlB0cjxNZWRp
YVN0cmVhbVRyYWNrPiA+IFRyYWNrVmVjdG9yOwordHlwZWRlZiBWZWN0b3I8UmVmUHRyPE1lZGlh
U3RyZWFtVHJhY2s+ID4gTWVkaWFTdHJlYW1UcmFja1ZlY3RvcjsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCmRpZmYgLS1naXQgYS9tYXN0ZXI6U291cmNlL1dlYkNvcmUvZG9tL01lZGlhU3Ry
ZWFtVHJhY2suaWRsIGIvSEVBRDpTb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmlkbAppbmRleCAyOTg3NWFhLi43OTg3NTk3IDEwMDY0NAotLS0gYS9tYXN0ZXI6U291
cmNlL1dlYkNvcmUvZG9tL01lZGlhU3RyZWFtVHJhY2suaWRsCisrKyBiL0hFQUQ6U291cmNlL1dl
YkNvcmUvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGwKQEAgLTI3LDkgKzI3LDkgQEAg
bW9kdWxlIGNvcmUgewogICAgIGludGVyZmFjZSBbCiAgICAgICAgIENvbmRpdGlvbmFsPU1FRElB
X1NUUkVBTSwKICAgICBdIE1lZGlhU3RyZWFtVHJhY2sgewotICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyBraW5kOwotICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBs
YWJlbDsKLSAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIGVuYWJsZWQ7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcga2luZDsKKyAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZyBsYWJlbDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGJvb2xl
YW4gZW5hYmxlZDsKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9tYXN0ZXI6U291cmNlL1dlYkNv
cmUvZG9tL01lZGlhU3RyZWFtVHJhY2tMaXN0LmNwcCBiL0hFQUQ6U291cmNlL1dlYkNvcmUvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0xpc3QuY3BwCmluZGV4IDZmY2M2N2MuLjkyYmYwZjcg
MTAwNjQ0Ci0tLSBhL21hc3RlcjpTb3VyY2UvV2ViQ29yZS9kb20vTWVkaWFTdHJlYW1UcmFja0xp
c3QuY3BwCisrKyBiL0hFQUQ6U291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1U
cmFja0xpc3QuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEVy
aWNzc29uIEFCLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yOSwxMyArMzAsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNz
UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tMaXN0PiBNZWRpYVN0cmVhbVRyYWNrTGlzdDo6Y3JlYXRl
KGNvbnN0IFRyYWNrVmVjdG9yJiB0cmFja3MpCitQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tM
aXN0PiBNZWRpYVN0cmVhbVRyYWNrTGlzdDo6Y3JlYXRlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tW
ZWN0b3ImIHRyYWNrVmVjdG9yKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFTdHJl
YW1UcmFja0xpc3QodHJhY2tzKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYVN0cmVh
bVRyYWNrTGlzdCh0cmFja1ZlY3RvcikpOwogfQogCi1NZWRpYVN0cmVhbVRyYWNrTGlzdDo6TWVk
aWFTdHJlYW1UcmFja0xpc3QoY29uc3QgVHJhY2tWZWN0b3ImIHRyYWNrcykKLSAgICA6IG1fdHJh
Y2tzKHRyYWNrcykKK01lZGlhU3RyZWFtVHJhY2tMaXN0OjpNZWRpYVN0cmVhbVRyYWNrTGlzdChj
b25zdCBNZWRpYVN0cmVhbVRyYWNrVmVjdG9yJiB0cmFja1ZlY3RvcikKKyAgICA6IG1fdHJhY2tW
ZWN0b3IodHJhY2tWZWN0b3IpCiB7CiB9CiAKQEAgLTQ1LDE1ICs0NiwxMyBAQCBNZWRpYVN0cmVh
bVRyYWNrTGlzdDo6fk1lZGlhU3RyZWFtVHJhY2tMaXN0KCkKIAogdW5zaWduZWQgTWVkaWFTdHJl
YW1UcmFja0xpc3Q6Omxlbmd0aCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fdHJhY2tzLnNpemUo
KTsKKyAgICByZXR1cm4gbV90cmFja1ZlY3Rvci5zaXplKCk7CiB9CiAKLVBhc3NSZWZQdHI8TWVk
aWFTdHJlYW1UcmFjaz4gTWVkaWFTdHJlYW1UcmFja0xpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgp
IGNvbnN0CitNZWRpYVN0cmVhbVRyYWNrKiBNZWRpYVN0cmVhbVRyYWNrTGlzdDo6aXRlbSh1bnNp
Z25lZCBpbmRleCkgY29uc3QKIHsKLSAgICBpZiAoaW5kZXggPCBtX3RyYWNrcy5zaXplKCkpCi0g
ICAgICAgIHJldHVybiBtX3RyYWNrcy5hdChpbmRleCk7Ci0gICAgZWxzZQotICAgICAgICByZXR1
cm4gUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPigpOworICAgIEFTU0VSVChpbmRleCA8IGxl
bmd0aCgpKTsKKyAgICByZXR1cm4gbV90cmFja1ZlY3RvcltpbmRleF0uZ2V0KCk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL21hc3RlcjpTb3VyY2UvV2ViQ29yZS9k
b20vTWVkaWFTdHJlYW1UcmFja0xpc3QuaCBiL0hFQUQ6U291cmNlL1dlYkNvcmUvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFja0xpc3QuaAppbmRleCAxZWZlNmFlLi40ZDYxZjg1ZSAxMDA2NDQK
LS0tIGEvbWFzdGVyOlNvdXJjZS9XZWJDb3JlL2RvbS9NZWRpYVN0cmVhbVRyYWNrTGlzdC5oCisr
KyBiL0hFQUQ6U291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0xpc3Qu
aApAQCAtMjgsMjggKzI4LDIyIEBACiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogI2luY2x1
ZGUgIk1lZGlhU3RyZWFtVHJhY2suaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhU3RyZWFtVHJhY2tMaXN0IDogcHVibGljIFJl
ZkNvdW50ZWQ8TWVkaWFTdHJlYW1UcmFja0xpc3Q+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrTGlzdD4gY3JlYXRlKGNvbnN0IFRyYWNrVmVjdG9yJiBt
X3RyYWNrcyk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja0xpc3Q+IGNy
ZWF0ZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrVmVjdG9yJik7CiAgICAgdmlydHVhbCB+TWVkaWFT
dHJlYW1UcmFja0xpc3QoKTsKIAogICAgIC8vIERPTSBtZXRob2RzICYgYXR0cmlidXRlcyBmb3Ig
TWVkaWFTdHJlYW1UcmFja0xpc3QKICAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKLSAgICBQ
YXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+IGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0Owot
Ci0gICAgdm9pZCBhc3NvY2lhdGVTdHJlYW0oY29uc3QgU3RyaW5nJiBsYWJlbCkgeyBtX2Fzc29j
aWF0ZWRTdHJlYW1MYWJlbCA9IGxhYmVsOyB9CisgICAgTWVkaWFTdHJlYW1UcmFjayogaXRlbSh1
bnNpZ25lZCBpbmRleCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFTdHJlYW1UcmFja0xp
c3QoY29uc3QgVHJhY2tWZWN0b3ImIG1fdHJhY2tzKTsKKyAgICBNZWRpYVN0cmVhbVRyYWNrTGlz
dChjb25zdCBNZWRpYVN0cmVhbVRyYWNrVmVjdG9yJik7CiAKLSAgICBUcmFja1ZlY3RvciBtX3Ry
YWNrczsKLSAgICBTdHJpbmcgbV9hc3NvY2lhdGVkU3RyZWFtTGFiZWw7CisgICAgTWVkaWFTdHJl
YW1UcmFja1ZlY3RvciBtX3RyYWNrVmVjdG9yOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvbWFzdGVyOlNvdXJjZS9XZWJDb3JlL3AycC9QZWVyQ29ubmVjdGlvbi5j
cHAgYi9IRUFEOlNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uLmNwcApp
bmRleCBiZGEzZWUzLi45NWMyODI5IDEwMDY0NAotLS0gYS9tYXN0ZXI6U291cmNlL1dlYkNvcmUv
cDJwL1BlZXJDb25uZWN0aW9uLmNwcAorKysgYi9IRUFEOlNvdXJjZS9XZWJDb3JlL21lZGlhc3Ry
ZWFtL1BlZXJDb25uZWN0aW9uLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsNTkgKzI4LDg4IEBACiAKICNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQogCi0jaW5jbHVkZSAiRGlzcGF0Y2hUYXNrLmgiCi0jaW5jbHVkZSAiRXJyb3JFdmVu
dC5oIgotI2luY2x1ZGUgIkV2ZW50LmgiCi0jaW5jbHVkZSAiRXZlbnROYW1lcy5oIgotI2luY2x1
ZGUgIk1lZGlhU3RyZWFtLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUg
Ik1lZGlhU3RyZWFtRXZlbnQuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbUxpc3QuaCIKKyNpbmNs
dWRlICJNZWRpYVN0cmVhbU1hbmFnZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKICNp
bmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSAiU2lnbmFsaW5nQ2Fs
bGJhY2suaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVBhc3NSZWZQdHI8UGVlckNvbm5lY3Rpb24+IFBlZXJDb25uZWN0aW9uOjpjcmVhdGUo
TWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIqIGZyYW1lQ29udHJvbGxlciwgaW50IGlkLCBjb25z
dCBTdHJpbmcmIGNvbmZpZ3VyYXRpb24sIFBhc3NSZWZQdHI8U2lnbmFsaW5nQ2FsbGJhY2s+IHNp
Z25hbGluZ0NhbGxiYWNrKQorUGFzc1JlZlB0cjxQZWVyQ29ubmVjdGlvbj4gUGVlckNvbm5lY3Rp
b246OmNyZWF0ZShjb25zdCBTdHJpbmcmIHNlcnZlckNvbmZpZ3VyYXRpb24sIFBhc3NSZWZQdHI8
UGVlckNvbm5lY3Rpb25TaWduYWxpbmdDYWxsYmFjaz4gc2lnbmFsaW5nQ2FsbGJhY2ssIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7Ci0gICAgLy8gRklYTUU6IFZlcmlmeSB0aGF0
IGNvbmZpZ3VyYXRpb24gZm9sbG93cyB0aGUgc3BlY2lmaWVkIGZvcm1hdCwgaWYgbm90IHJldHVy
biBudWxsLgorICAgIFJlZlB0cjxQZWVyQ29ubmVjdGlvbj4gY29ubmVjdGlvbiA9IGFkb3B0UmVm
KG5ldyBQZWVyQ29ubmVjdGlvbihzZXJ2ZXJDb25maWd1cmF0aW9uLCBzaWduYWxpbmdDYWxsYmFj
aywgY29udGV4dCkpOworICAgIGNvbm5lY3Rpb24tPnNldFBlbmRpbmdBY3Rpdml0eShjb25uZWN0
aW9uLmdldCgpKTsKKyAgICBjb25uZWN0aW9uLT5zY2hlZHVsZUluaXRpYWxOZWdvdGlhdGlvbigp
OwogCi0gICAgUmVmUHRyPFBlZXJDb25uZWN0aW9uPiBwZWVyQ29ubmVjdGlvbiA9IGFkb3B0UmVm
KG5ldyBQZWVyQ29ubmVjdGlvbihmcmFtZUNvbnRyb2xsZXIsIGlkLCBjb25maWd1cmF0aW9uLCBz
aWduYWxpbmdDYWxsYmFjaykpOwotICAgIHBlZXJDb25uZWN0aW9uLT5pbml0KCk7Ci0gICAgcmV0
dXJuIHBlZXJDb25uZWN0aW9uLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gY29ubmVjdGlvbi5yZWxl
YXNlKCk7CiB9CiAKLVBlZXJDb25uZWN0aW9uOjpQZWVyQ29ubmVjdGlvbihNZWRpYVN0cmVhbUZy
YW1lQ29udHJvbGxlciogZnJhbWVDb250cm9sbGVyLCBpbnQgaWQsIGNvbnN0IFN0cmluZyYgY29u
ZmlndXJhdGlvbiwgUGFzc1JlZlB0cjxTaWduYWxpbmdDYWxsYmFjaz4gc2lnbmFsaW5nQ2FsbGJh
Y2spCi0gICAgOiBQZWVyQ29ubmVjdGlvbkNsaWVudChmcmFtZUNvbnRyb2xsZXIsIGlkKQotICAg
ICwgbV9jb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24pCi0gICAgLCBtX3JlYWR5U3RhdGUoTkVX
KQorUGVlckNvbm5lY3Rpb246OlBlZXJDb25uZWN0aW9uKGNvbnN0IFN0cmluZyYgc2VydmVyQ29u
ZmlndXJhdGlvbiwgUGFzc1JlZlB0cjxQZWVyQ29ubmVjdGlvblNpZ25hbGluZ0NhbGxiYWNrPiBz
aWduYWxpbmdDYWxsYmFjaywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKKyAgICA6
IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQogICAgICwgbV9zaWduYWxpbmdDYWxsYmFj
ayhzaWduYWxpbmdDYWxsYmFjaykKKyAgICAsIG1fcmVhZHlTdGF0ZShORVcpCisgICAgLCBtX2lj
ZVN0YXJ0ZWQoZmFsc2UpCisgICAgLCBtX2xvY2FsU3RyZWFtcyhNZWRpYVN0cmVhbUxpc3Q6OmNy
ZWF0ZSgpKQorICAgICwgbV9yZW1vdGVTdHJlYW1zKE1lZGlhU3RyZWFtTGlzdDo6Y3JlYXRlKCkp
CisgICAgLCBtX2luaXRpYWxOZWdvdGlhdGlvblRpbWVyKHRoaXMsICZQZWVyQ29ubmVjdGlvbjo6
aW5pdGlhbE5lZ290aWF0aW9uVGltZXJGaXJlZCkKKyAgICAsIG1fc3RyZWFtQ2hhbmdlVGltZXIo
dGhpcywgJlBlZXJDb25uZWN0aW9uOjpzdHJlYW1DaGFuZ2VUaW1lckZpcmVkKQorICAgICwgbV9y
ZWFkeVN0YXRlQ2hhbmdlVGltZXIodGhpcywgJlBlZXJDb25uZWN0aW9uOjpyZWFkeVN0YXRlQ2hh
bmdlVGltZXJGaXJlZCkKKyAgICAsIG1fcGVlckhhbmRsZXIoUGVlckhhbmRsZXI6OmNyZWF0ZSh0
aGlzLCBwYXJzZVNlcnZlckNvbmZpZ3VyYXRpb24oc2VydmVyQ29uZmlndXJhdGlvbikpKQogewot
ICAgIEFTU0VSVChmcmFtZUNvbnRyb2xsZXIpOwotICAgIG1fbG9jYWxTdHJlYW1MaXN0ID0gTWVk
aWFTdHJlYW1MaXN0OjpjcmVhdGUoKTsKLSAgICBtX3JlbW90ZVN0cmVhbUxpc3QgPSBNZWRpYVN0
cmVhbUxpc3Q6OmNyZWF0ZSgpOwotfQotCi12b2lkIFBlZXJDb25uZWN0aW9uOjppbml0KCkKLXsK
LSAgICBpZiAoTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIqIGZyYW1lQ29udHJvbGxlciA9IG1l
ZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKCkpCi0gICAgICAgIGZyYW1lQ29udHJvbGxlci0+bmV3
UGVlckNvbm5lY3Rpb24obV9jbGllbnRJZCwgbV9jb25maWd1cmF0aW9uKTsKLQotICAgIHBvc3RT
dGFydE5lZ290aWF0aW9uVGFzaygpOwogfQogCiBQZWVyQ29ubmVjdGlvbjo6flBlZXJDb25uZWN0
aW9uKCkKIHsKIH0KIAotTWVkaWFTdHJlYW1MaXN0KiBQZWVyQ29ubmVjdGlvbjo6bG9jYWxTdHJl
YW1zKCkKK3N0YXRpYyBib29sIGlzQ2FycmlhZ2VSZXR1cm5PckxpbmVGZWVkKFVDaGFyIGMpCiB7
Ci0gICAgcmV0dXJuIG1fbG9jYWxTdHJlYW1MaXN0LmdldCgpOworICAgIHJldHVybiBjID09ICdc
cicgfHwgYyA9PSAnXG4nOwogfQogCi1NZWRpYVN0cmVhbUxpc3QqIFBlZXJDb25uZWN0aW9uOjpy
ZW1vdGVTdHJlYW1zKCkKK1Bhc3NSZWZQdHI8UGVlckhhbmRsZXJDb25maWd1cmF0aW9uPiBQZWVy
Q29ubmVjdGlvbjo6cGFyc2VTZXJ2ZXJDb25maWd1cmF0aW9uKGNvbnN0IFN0cmluZyYgc2VydmVy
Q29uZmlndXJhdGlvbikKIHsKLSAgICByZXR1cm4gbV9yZW1vdGVTdHJlYW1MaXN0LmdldCgpOwor
ICAgIHNpemVfdCBlbmRPZkxpbmUgPSBzZXJ2ZXJDb25maWd1cmF0aW9uLmZpbmQoV2ViQ29yZTo6
aXNDYXJyaWFnZVJldHVybk9yTGluZUZlZWQpOworICAgIFN0cmluZyBzZXJ2ZXJDb25maWcgPSBl
bmRPZkxpbmUgPT0gbm90Rm91bmQgPyBzZXJ2ZXJDb25maWd1cmF0aW9uIDogc2VydmVyQ29uZmln
dXJhdGlvbi5sZWZ0KGVuZE9mTGluZSk7CisKKyAgICBWZWN0b3I8U3RyaW5nPiBjb25maWd1cmF0
aW9uQ29tcG9uZW50czsKKyAgICBzZXJ2ZXJDb25maWcuc3BsaXQoJyAnLCBjb25maWd1cmF0aW9u
Q29tcG9uZW50cyk7CisKKyAgICBSZWZQdHI8UGVlckhhbmRsZXJDb25maWd1cmF0aW9uPiBjb25m
aWd1cmF0aW9uID0gUGVlckhhbmRsZXJDb25maWd1cmF0aW9uOjpjcmVhdGUoKTsKKworICAgIGlm
IChjb25maWd1cmF0aW9uQ29tcG9uZW50cy5zaXplKCkgPCAyKQorICAgICAgICByZXR1cm4gY29u
ZmlndXJhdGlvbjsKKworICAgIFN0cmluZyYgdHlwZSA9IGNvbmZpZ3VyYXRpb25Db21wb25lbnRz
WzBdOworICAgIGlmICh0eXBlID09ICJTVFVOIiB8fCB0eXBlID09ICJTVFVOUyIpCisgICAgICAg
IGNvbmZpZ3VyYXRpb24tPnR5cGUgPSBQZWVySGFuZGxlckNvbmZpZ3VyYXRpb246OlR5cGVTVFVO
OworICAgIGVsc2UgaWYgKHR5cGUgPT0gIlRVUk4iIHx8IHR5cGUgPT0gIlRVUk5TIikKKyAgICAg
ICAgY29uZmlndXJhdGlvbi0+dHlwZSA9IFBlZXJIYW5kbGVyQ29uZmlndXJhdGlvbjo6VHlwZVRV
Uk47CisgICAgZWxzZQorICAgICAgICByZXR1cm4gY29uZmlndXJhdGlvbjsKKworICAgIGNvbmZp
Z3VyYXRpb24tPnNlY3VyZSA9IHR5cGUgPT0gIlNUVU5TIiB8fCB0eXBlID09ICJUVVJOUyI7CisK
KyAgICBTdHJpbmcmIGhvc3RBbmRQb3J0ID0gY29uZmlndXJhdGlvbkNvbXBvbmVudHNbMV07Cisg
ICAgc2l6ZV90IGZpcnN0Q29sb24gPSBob3N0QW5kUG9ydC5maW5kKCc6Jyk7CisgICAgaWYgKGZp
cnN0Q29sb24gIT0gbm90Rm91bmQpIHsKKyAgICAgICAgYm9vbCBwb3J0T2s7CisgICAgICAgIGlu
dCBwb3J0ID0gaG9zdEFuZFBvcnQuc3Vic3RyaW5nKGZpcnN0Q29sb24gKyAxKS50b0ludCgmcG9y
dE9rKTsKKyAgICAgICAgcG9ydE9rICY9IDAgPD0gcG9ydCAmJiBwb3J0IDwgNjU1MzY7CisgICAg
ICAgIGlmICghcG9ydE9rKQorICAgICAgICAgICAgcmV0dXJuIFBlZXJIYW5kbGVyQ29uZmlndXJh
dGlvbjo6Y3JlYXRlKCk7CisKKyAgICAgICAgY29uZmlndXJhdGlvbi0+aG9zdCA9IGhvc3RBbmRQ
b3J0LmxlZnQoZmlyc3RDb2xvbik7CisgICAgICAgIGNvbmZpZ3VyYXRpb24tPnBvcnQgPSBwb3J0
OworICAgIH0KKyAgICBlbHNlCisgICAgICAgIGNvbmZpZ3VyYXRpb24tPmhvc3QgPSBob3N0QW5k
UG9ydDsKKworICAgIGNvbmZpZ3VyYXRpb24tPnVzZXJuYW1lID0gc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpOworCisgICAgcmV0dXJuIGNvbmZp
Z3VyYXRpb247CiB9CiAKIHZvaWQgUGVlckNvbm5lY3Rpb246OnByb2Nlc3NTaWduYWxpbmdNZXNz
YWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC04OSw4ICsx
MTksMjggQEAgdm9pZCBQZWVyQ29ubmVjdGlvbjo6cHJvY2Vzc1NpZ25hbGluZ01lc3NhZ2UoY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBFeGNlcHRpb25Db2QKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGlmIChtZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcigpKQotICAgICAgICBtZWRpYVN0
cmVhbUZyYW1lQ29udHJvbGxlcigpLT5wcm9jZXNzU2lnbmFsaW5nTWVzc2FnZShtX2NsaWVudElk
LCBtZXNzYWdlKTsKKyAgICBpZiAoIW1lc3NhZ2Uuc3RhcnRzV2l0aCgiU0RQXG4iKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgU3RyaW5nIHNkcCA9IG1lc3NhZ2Uuc3Vic3RyaW5nKDQpOworCisg
ICAgaWYgKG1faWNlU3RhcnRlZCkgeworICAgICAgICBpZiAobV9wZWVySGFuZGxlcikKKyAgICAg
ICAgICAgIG1fcGVlckhhbmRsZXItPnByb2Nlc3NTRFAoc2RwKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGlmIChtX3BlZXJIYW5kbGVyKQorICAgICAgICBtX3BlZXJIYW5kbGVyLT5o
YW5kbGVJbml0aWFsT2ZmZXIoc2RwKTsKKworICAgIHNjaGVkdWxlU3RyZWFtQ2hhbmdlKCk7Cisg
ICAgbV9pY2VTdGFydGVkID0gdHJ1ZTsKKyAgICBzY2hlZHVsZVJlYWR5U3RhdGVDaGFuZ2UoTkVH
T1RJQVRJTkcpOworfQorCitQZWVyQ29ubmVjdGlvbjo6UmVhZHlTdGF0ZSBQZWVyQ29ubmVjdGlv
bjo6cmVhZHlTdGF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVhZHlTdGF0ZTsKIH0KIAog
dm9pZCBQZWVyQ29ubmVjdGlvbjo6c2VuZChjb25zdCBTdHJpbmcmIHRleHQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQpAQCAtMTAwLDE3ICsxNTAsMTkgQEAgdm9pZCBQZWVyQ29ubmVjdGlvbjo6c2VuZChj
b25zdCBTdHJpbmcmIHRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgQ1N0cmluZyB1dGY4ID0gdGV4dC51dGY4KCk7Ci0gICAgaWYgKHV0ZjgubGVu
Z3RoKCkgPiBrTWF4TWVzc2FnZVVURjhMZW5ndGgpIHsKKyAgICBDU3RyaW5nIGRhdGEgPSB0ZXh0
LnV0ZjgoKTsKKyAgICB1bnNpZ25lZCBsZW5ndGggPSBkYXRhLmxlbmd0aCgpOworCisgICAgaWYg
KGxlbmd0aCA+IGtNYXhNZXNzYWdlVVRGOExlbmd0aCkgewogICAgICAgICBlYyA9IElOVkFMSURf
QUNDRVNTX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtZWRpYVN0cmVh
bUZyYW1lQ29udHJvbGxlcigpKQotICAgICAgICBtZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcigp
LT5tZXNzYWdlKG1fY2xpZW50SWQsIHRleHQpOworICAgIGlmIChtX3BlZXJIYW5kbGVyKQorICAg
ICAgICBtX3BlZXJIYW5kbGVyLT5zZW5kRGF0YVN0cmVhbU1lc3NhZ2UoZGF0YS5kYXRhKCksIGxl
bmd0aCk7CiB9CiAKLXZvaWQgUGVlckNvbm5lY3Rpb246OmFkZFN0cmVhbShQYXNzUmVmUHRyPE1l
ZGlhU3RyZWFtPiBwcnBTdHJlYW0sIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBQZWVyQ29ubmVj
dGlvbjo6YWRkU3RyZWFtKGNvbnN0IFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IHBycFN0cmVhbSwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBDTE9TRUQpIHsK
ICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKQEAgLTEyMSwxNiArMTczLDIzIEBAIHZv
aWQgUGVlckNvbm5lY3Rpb246OmFkZFN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBwcnBT
dHJlYW0sIEV4Y2VwdGlvbkNvZGUmCiAKICAgICBSZWZQdHI8TWVkaWFTdHJlYW0+IHN0cmVhbSA9
IHBycFN0cmVhbTsKIAotICAgIGlmIChtX2xvY2FsU3RyZWFtTGlzdC0+Y29udGFpbnMoc3RyZWFt
KSkKKyAgICBpZiAobV9sb2NhbFN0cmVhbXMtPmNvbnRhaW5zKHN0cmVhbSkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1fbG9jYWxTdHJlYW1MaXN0LT5hZGQoc3RyZWFtKTsKKyAgICBtX2xvY2Fs
U3RyZWFtcy0+YXBwZW5kKHN0cmVhbSk7CiAKLSAgICBpZiAobWVkaWFTdHJlYW1GcmFtZUNvbnRy
b2xsZXIoKSkKLSAgICAgICAgbWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIoKS0+YWRkU3RyZWFt
KG1fY2xpZW50SWQsIHN0cmVhbSk7CisgICAgc2l6ZV90IGkgPSBmaW5kTWVkaWFTdHJlYW1JblZl
Y3RvcihtX3BlbmRpbmdSZW1vdmVTdHJlYW1zLCBzdHJlYW0tPmlkKCkpOworICAgIGlmIChpICE9
IG5vdEZvdW5kKSB7CisgICAgICAgIG1fcGVuZGluZ1JlbW92ZVN0cmVhbXMucmVtb3ZlKGkpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9wZW5kaW5nQWRkU3RyZWFtcy5hcHBlbmQo
c3RyZWFtKTsKKyAgICBpZiAobV9pY2VTdGFydGVkKQorICAgICAgICBzY2hlZHVsZVN0cmVhbUNo
YW5nZSgpOwogfQogCi12b2lkIFBlZXJDb25uZWN0aW9uOjpyZW1vdmVTdHJlYW0oUGFzc1JlZlB0
cjxNZWRpYVN0cmVhbT4gcHJwU3RyZWFtLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgUGVlckNv
bm5lY3Rpb246OnJlbW92ZVN0cmVhbShjb25zdCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBwcnBT
dHJlYW0sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gQ0xP
U0VEKSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CkBAIC0xNDEsMTMgKzIwMCwz
MCBAQCB2b2lkIFBlZXJDb25uZWN0aW9uOjpyZW1vdmVTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0
cmVhbT4gcHJwU3RyZWFtLCBFeGNlcHRpb25DbwogCiAgICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBz
dHJlYW0gPSBwcnBTdHJlYW07CiAKLSAgICBpZiAoIW1fbG9jYWxTdHJlYW1MaXN0LT5jb250YWlu
cyhzdHJlYW0pKQorICAgIGlmICghbV9sb2NhbFN0cmVhbXMtPmNvbnRhaW5zKHN0cmVhbSkpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fbG9jYWxTdHJlYW1zLT5yZW1vdmUoc3RyZWFtKTsKKwor
ICAgIHNpemVfdCBpID0gZmluZE1lZGlhU3RyZWFtSW5WZWN0b3IobV9wZW5kaW5nQWRkU3RyZWFt
cywgc3RyZWFtLT5pZCgpKTsKKyAgICBpZiAoaSAhPSBub3RGb3VuZCkgeworICAgICAgICBtX3Bl
bmRpbmdBZGRTdHJlYW1zLnJlbW92ZShpKTsKICAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IG1fcGVuZGluZ1JlbW92ZVN0cmVhbXMuYXBwZW5kKHN0cmVhbSk7CisgICAgaWYgKG1faWNlU3Rh
cnRlZCkKKyAgICAgICAgc2NoZWR1bGVTdHJlYW1DaGFuZ2UoKTsKK30KIAotICAgIG1fbG9jYWxT
dHJlYW1MaXN0LT5yZW1vdmUoc3RyZWFtKTsKK01lZGlhU3RyZWFtTGlzdCogUGVlckNvbm5lY3Rp
b246OmxvY2FsU3RyZWFtcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbG9jYWxTdHJlYW1zLmdl
dCgpOworfQogCi0gICAgaWYgKG1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKCkpCi0gICAgICAg
IG1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKCktPnJlbW92ZVN0cmVhbShtX2NsaWVudElkLCBz
dHJlYW0pOworTWVkaWFTdHJlYW1MaXN0KiBQZWVyQ29ubmVjdGlvbjo6cmVtb3RlU3RyZWFtcygp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVtb3RlU3RyZWFtcy5nZXQoKTsKIH0KIAogdm9pZCBQ
ZWVyQ29ubmVjdGlvbjo6Y2xvc2UoRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0xNTcsNTAgKzIzMyw1
MiBAQCB2b2lkIFBlZXJDb25uZWN0aW9uOjpjbG9zZShFeGNlcHRpb25Db2RlJiBlYykKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcigp
KQotICAgICAgICBtZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcigpLT5jbG9zZVBlZXJDb25uZWN0
aW9uKG1fY2xpZW50SWQpOwotCi0gICAgbV9yZWFkeVN0YXRlID0gQ0xPU0VEOworICAgIHN0b3Ao
KTsKIH0KIAotdm9pZCBQZWVyQ29ubmVjdGlvbjo6b25OZWdvdGlhdGlvblN0YXJ0ZWQoKQordm9p
ZCBQZWVyQ29ubmVjdGlvbjo6aWNlUHJvY2Vzc2luZ0NvbXBsZXRlZCgpCiB7Ci0gICAgbV9yZWFk
eVN0YXRlID0gTkVHT1RJQVRJTkc7Ci0KLSAgICBwb3N0U2ltcGxlRXZlbnQoZXZlbnROYW1lcygp
LmNvbm5lY3RpbmdFdmVudCk7CisgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
aXNDb250ZXh0VGhyZWFkKCkpOworICAgIGNoYW5nZVJlYWR5U3RhdGUoQUNUSVZFKTsKIH0KIAot
dm9pZCBQZWVyQ29ubmVjdGlvbjo6b25OZWdvdGlhdGlvbkRvbmUoKQordm9pZCBQZWVyQ29ubmVj
dGlvbjo6c2RwR2VuZXJhdGVkKGNvbnN0IFN0cmluZyYgc2RwKQogewotICAgIG1fcmVhZHlTdGF0
ZSA9IEFDVElWRTsKLQotICAgIHBvc3RTaW1wbGVFdmVudChldmVudE5hbWVzKCkub3BlbkV2ZW50
KTsKKyAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0NvbnRleHRUaHJlYWQo
KSk7CisgICAgbV9zaWduYWxpbmdDYWxsYmFjay0+aGFuZGxlRXZlbnQoIlNEUFxuIiArIHNkcCwg
dGhpcyk7CiB9CiAKLXZvaWQgUGVlckNvbm5lY3Rpb246OnN0cmVhbUFkZGVkKFBhc3NSZWZQdHI8
TWVkaWFTdHJlYW0+IHBycFN0cmVhbSkKK3ZvaWQgUGVlckNvbm5lY3Rpb246OmRhdGFTdHJlYW1N
ZXNzYWdlUmVjZWl2ZWQoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQogewotICAg
IFJlZlB0cjxNZWRpYVN0cmVhbT4gc3RyZWFtID0gcHJwU3RyZWFtOwotICAgIG1fcmVtb3RlU3Ry
ZWFtTGlzdC0+YWRkKHN0cmVhbSk7Ci0gICAgcG9zdFN0cmVhbUFkZGVkRXZlbnQoc3RyZWFtKTsK
KyAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0NvbnRleHRUaHJlYWQoKSk7
CisgICAgY29uc3QgU3RyaW5nJiBtZXNzYWdlID0gU3RyaW5nOjpmcm9tVVRGOChkYXRhLCBsZW5n
dGgpOworICAgIGRpc3BhdGNoRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUoUGFzc093blB0cjxN
ZXNzYWdlUG9ydEFycmF5PigpLCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShtZXNzYWdl
KSkpOwogfQogCi12b2lkIFBlZXJDb25uZWN0aW9uOjpzdHJlYW1SZW1vdmVkKGNvbnN0IFN0cmlu
ZyYgc3RyZWFtTGFiZWwpCit2b2lkIFBlZXJDb25uZWN0aW9uOjpyZW1vdGVTdHJlYW1BZGRlZChj
b25zdCBTdHJpbmcmIHN0cmVhbUlkLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBNZWRpYVN0
cmVhbUNvbXBvbmVudExpc3QmIGNvbXBvbmVudHMpCiB7Ci0gICAgQVNTRVJUKG1fcmVtb3RlU3Ry
ZWFtTGlzdC0+Y29udGFpbnMoc3RyZWFtTGFiZWwpKTsKKyAgICBBU1NFUlQoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5pc0NvbnRleHRUaHJlYWQoKSk7CiAKLSAgICBSZWZQdHI8TWVkaWFTdHJl
YW0+IHN0cmVhbSA9IG1fcmVtb3RlU3RyZWFtTGlzdC0+Z2V0KHN0cmVhbUxhYmVsKTsKLSAgICBt
X3JlbW90ZVN0cmVhbUxpc3QtPnJlbW92ZShzdHJlYW0pOwotICAgIHBvc3RTdHJlYW1SZW1vdmVk
RXZlbnQoc3RyZWFtKTsKLX0KKyAgICBpZiAobV9yZWFkeVN0YXRlID09IENMT1NFRCkKKyAgICAg
ICAgcmV0dXJuOwogCi12b2lkIFBlZXJDb25uZWN0aW9uOjpvbk1lc3NhZ2UoY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQotewotICAgIHBvc3RNZXNzYWdlRXZlbnQobWVzc2FnZSk7CisgICAgUmVmUHRy
PE1lZGlhU3RyZWFtPiBzdHJlYW0gPSBNZWRpYVN0cmVhbTo6Y3JlYXRlKHN0cmVhbUlkLCBsYWJl
bCwgY29tcG9uZW50cywgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBtX3JlbW90ZVN0
cmVhbXMtPmFwcGVuZChzdHJlYW0pOworCisgICAgZGlzcGF0Y2hFdmVudChNZWRpYVN0cmVhbUV2
ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmFkZHN0cmVhbUV2ZW50LCBmYWxzZSwgZmFsc2UsIHN0
cmVhbSkpOwogfQogCi12b2lkIFBlZXJDb25uZWN0aW9uOjpvblNpZ25hbGluZ01lc3NhZ2UoY29u
c3QgU3RyaW5nJiBtZXNzYWdlKQordm9pZCBQZWVyQ29ubmVjdGlvbjo6cmVtb3RlU3RyZWFtUmVt
b3ZlZChjb25zdCBTdHJpbmcmIHN0cmVhbUlkKQogewotICAgIHBvc3RTaWduYWxpbmdFdmVudCht
ZXNzYWdlKTsKKyAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0NvbnRleHRU
aHJlYWQoKSk7CisKKyAgICBtZWRpYVN0cmVhbU1hbmFnZXIoKS5zdHJlYW1FbmRlZChzdHJlYW1J
ZCk7CisKKyAgICBpZiAobV9yZWFkeVN0YXRlID09IENMT1NFRCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0gPSBtX3JlbW90ZVN0cmVhbXMtPnRha2Uo
c3RyZWFtSWQpOworICAgIGRpc3BhdGNoRXZlbnQoTWVkaWFTdHJlYW1FdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5yZW1vdmVzdHJlYW1FdmVudCwgZmFsc2UsIGZhbHNlLCBzdHJlYW0pKTsKIH0K
IAogUGVlckNvbm5lY3Rpb24qIFBlZXJDb25uZWN0aW9uOjp0b1BlZXJDb25uZWN0aW9uKCkKQEAg
LTIxMCw3ICsyODgsMjUgQEAgUGVlckNvbm5lY3Rpb24qIFBlZXJDb25uZWN0aW9uOjp0b1BlZXJD
b25uZWN0aW9uKCkKIAogU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogUGVlckNvbm5lY3Rpb246OnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAogewotICAgIHJldHVybiBtZWRpYVN0cmVhbUZy
YW1lQ29udHJvbGxlcigpID8gbWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIoKS0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpIDogMDsKKyAgICByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCk7Cit9CisKK3ZvaWQgUGVlckNvbm5lY3Rpb246OnN0b3AoKQorewor
ICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gQ0xPU0VEKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X2luaXRpYWxOZWdvdGlhdGlvblRpbWVyLnN0b3AoKTsKKyAgICBtX3N0cmVhbUNoYW5nZVRpbWVy
LnN0b3AoKTsKKyAgICBtX3JlYWR5U3RhdGVDaGFuZ2VUaW1lci5zdG9wKCk7CisKKyAgICBpZiAo
bV9wZWVySGFuZGxlcikKKyAgICAgICAgbV9wZWVySGFuZGxlci0+c3RvcCgpOworCisgICAgdW5z
ZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CisgICAgbV9wZWVySGFuZGxlci5jbGVhcigpOworCisg
ICAgbV9yZWFkeVN0YXRlID0gQ0xPU0VEOwogfQogCiBFdmVudFRhcmdldERhdGEqIFBlZXJDb25u
ZWN0aW9uOjpldmVudFRhcmdldERhdGEoKQpAQCAtMjIzLDg4ICszMTksODQgQEAgRXZlbnRUYXJn
ZXREYXRhKiBQZWVyQ29ubmVjdGlvbjo6ZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkKICAgICByZXR1
cm4gJm1fZXZlbnRUYXJnZXREYXRhOwogfQogCi12b2lkIFBlZXJDb25uZWN0aW9uOjpwb3N0TWVz
c2FnZUV2ZW50KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQgUGVlckNvbm5lY3Rpb246OnNj
aGVkdWxlSW5pdGlhbE5lZ290aWF0aW9uKCkKIHsKLSAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBkYXRhID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUobWVzc2FnZSk7Ci0K
LSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpOwotICAgIGlmICghY29udGV4dCkKLSAgICAgICAgcmV0dXJuOwotICAgIEFTU0VSVChj
b250ZXh0LT5pc0NvbnRleHRUaHJlYWQoKSk7Ci0gICAgY29udGV4dC0+cG9zdFRhc2soRGlzcGF0
Y2hUYXNrPFBlZXJDb25uZWN0aW9uLCBpbnQsIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT46OmNyZWF0
ZSh0aGlzLCAmUGVlckNvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZUV2ZW50LCAwLCBkYXRhLnJl
bGVhc2UoKSkpOworICAgIGlmICghbV9pbml0aWFsTmVnb3RpYXRpb25UaW1lci5pc0FjdGl2ZSgp
KQorICAgICAgICBtX2luaXRpYWxOZWdvdGlhdGlvblRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0K
IAotdm9pZCBQZWVyQ29ubmVjdGlvbjo6cG9zdFNpZ25hbGluZ0V2ZW50KGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkKK3ZvaWQgUGVlckNvbm5lY3Rpb246OmluaXRpYWxOZWdvdGlhdGlvblRpbWVyRmly
ZWQoVGltZXI8UGVlckNvbm5lY3Rpb24+KikKIHsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAgIGlmICghY29udGV4dCkK
KyAgICBpZiAobV9pY2VTdGFydGVkKQogICAgICAgICByZXR1cm47Ci0gICAgQVNTRVJUKGNvbnRl
eHQtPmlzQ29udGV4dFRocmVhZCgpKTsKLSAgICBjb250ZXh0LT5wb3N0VGFzayhTaW1wbGVEaXNw
YXRjaFRhc2s8UGVlckNvbm5lY3Rpb24sIFN0cmluZz46OmNyZWF0ZSh0aGlzLCAmUGVlckNvbm5l
Y3Rpb246OmRpc3BhdGNoU2lnbmFsaW5nRXZlbnQsIG1lc3NhZ2UpKTsKLX0KIAotdm9pZCBQZWVy
Q29ubmVjdGlvbjo6cG9zdFN0cmVhbUFkZGVkRXZlbnQoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4g
cHJwU3RyZWFtKQotewotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAgaWYgKCFjb250ZXh0KQotICAgICAgICByZXR1cm47
Ci0gICAgQVNTRVJUKGNvbnRleHQtPmlzQ29udGV4dFRocmVhZCgpKTsKLSAgICBzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCktPnBvc3RUYXNrKERpc3BhdGNoVGFzazxQZWVyQ29ubmVjdGlvbiwgU3Ry
aW5nLCBNZWRpYVN0cmVhbT46OmNyZWF0ZSh0aGlzLCAmUGVlckNvbm5lY3Rpb246OmRpc3BhdGNo
U3RyZWFtRXZlbnQsIGV2ZW50TmFtZXMoKS5hZGRzdHJlYW1FdmVudCwgcHJwU3RyZWFtKSk7Ci19
CisgICAgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbT4gPiBwZW5kaW5nU3RyZWFtczsKKyAgICBt
X3BlbmRpbmdBZGRTdHJlYW1zLnN3YXAocGVuZGluZ1N0cmVhbXMpOworICAgIGlmIChtX3BlZXJI
YW5kbGVyKQorICAgICAgICBtX3BlZXJIYW5kbGVyLT5wcm9kdWNlSW5pdGlhbE9mZmVyKHBlbmRp
bmdTdHJlYW1zKTsKIAotdm9pZCBQZWVyQ29ubmVjdGlvbjo6cG9zdFN0cmVhbVJlbW92ZWRFdmVu
dChQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBwcnBTdHJlYW0pCi17Ci0gICAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBpZiAo
IWNvbnRleHQpCi0gICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQoY29udGV4dC0+aXNDb250ZXh0
VGhyZWFkKCkpOwotICAgIGNvbnRleHQtPnBvc3RUYXNrKERpc3BhdGNoVGFzazxQZWVyQ29ubmVj
dGlvbiwgU3RyaW5nLCBNZWRpYVN0cmVhbT46OmNyZWF0ZSh0aGlzLCAmUGVlckNvbm5lY3Rpb246
OmRpc3BhdGNoU3RyZWFtRXZlbnQsIGV2ZW50TmFtZXMoKS5yZW1vdmVzdHJlYW1FdmVudCwgcHJw
U3RyZWFtKSk7Ci19CisgICAgbV9pY2VTdGFydGVkID0gdHJ1ZTsKIAotdm9pZCBQZWVyQ29ubmVj
dGlvbjo6cG9zdFNpbXBsZUV2ZW50KGNvbnN0IFN0cmluZyYgZXZlbnROYW1lKQotewotICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7
Ci0gICAgaWYgKCFjb250ZXh0KQotICAgICAgICByZXR1cm47Ci0gICAgQVNTRVJUKGNvbnRleHQt
PmlzQ29udGV4dFRocmVhZCgpKTsKLSAgICBjb250ZXh0LT5wb3N0VGFzayhTaW1wbGVEaXNwYXRj
aFRhc2s8UGVlckNvbm5lY3Rpb24sIFN0cmluZz46OmNyZWF0ZSh0aGlzLCAmUGVlckNvbm5lY3Rp
b246OmRpc3BhdGNoU2ltcGxlRXZlbnQsIGV2ZW50TmFtZSkpOworICAgIGNoYW5nZVJlYWR5U3Rh
dGUoTkVHT1RJQVRJTkcpOwogfQogCi12b2lkIFBlZXJDb25uZWN0aW9uOjpwb3N0U3RhcnROZWdv
dGlhdGlvblRhc2soKQordm9pZCBQZWVyQ29ubmVjdGlvbjo6c2NoZWR1bGVTdHJlYW1DaGFuZ2Uo
KQogewotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCk7Ci0gICAgaWYgKCFjb250ZXh0KQotICAgICAgICByZXR1cm47Ci0gICAgQVNT
RVJUKGNvbnRleHQtPmlzQ29udGV4dFRocmVhZCgpKTsKLSAgICBjb250ZXh0LT5wb3N0VGFzayhT
aW1wbGVEaXNwYXRjaFRhc2s8UGVlckNvbm5lY3Rpb24sIGludD46OmNyZWF0ZSh0aGlzLCAmUGVl
ckNvbm5lY3Rpb246OmRpc3BhdGNoU3RhcnROZWdvdGlhdGlvblRhc2ssIDApKTsKKyAgICBpZiAo
IW1fc3RyZWFtQ2hhbmdlVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9zdHJlYW1DaGFuZ2VU
aW1lci5zdGFydE9uZVNob3QoMCk7CiB9CiAKLXZvaWQgUGVlckNvbm5lY3Rpb246OmRpc3BhdGNo
TWVzc2FnZUV2ZW50KGNvbnN0IGludCYsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiBkYXRhKQordm9pZCBQZWVyQ29ubmVjdGlvbjo6c3RyZWFtQ2hhbmdlVGltZXJGaXJlZChUaW1l
cjxQZWVyQ29ubmVjdGlvbj4qKQogewotICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IGQgPSBkYXRhOwotICAgIGRpc3BhdGNoRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUoUGFzc093
blB0cjxNZXNzYWdlUG9ydEFycmF5PigpLCBkKSk7Ci19CisgICAgaWYgKCFtX3BlbmRpbmdBZGRT
dHJlYW1zLmlzRW1wdHkoKSkgeworICAgICAgICBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtPiA+
IHBlbmRpbmdTdHJlYW1zOworICAgICAgICBtX3BlbmRpbmdBZGRTdHJlYW1zLnN3YXAocGVuZGlu
Z1N0cmVhbXMpOworICAgICAgICBpZiAobV9wZWVySGFuZGxlcikKKyAgICAgICAgICAgIG1fcGVl
ckhhbmRsZXItPmFkZFBlbmRpbmdTdHJlYW1zKHBlbmRpbmdTdHJlYW1zKTsKIAotdm9pZCBQZWVy
Q29ubmVjdGlvbjo6ZGlzcGF0Y2hTaWduYWxpbmdFdmVudChjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
Ci17Ci0gICAgbV9zaWduYWxpbmdDYWxsYmFjay0+aGFuZGxlRXZlbnQobWVzc2FnZSwgdGhpcyk7
CisgICAgICAgIGNoYW5nZVJlYWR5U3RhdGUoTkVHT1RJQVRJTkcpOworICAgIH0KKyAgICBpZiAo
IW1fcGVuZGluZ1JlbW92ZVN0cmVhbXMuaXNFbXB0eSgpKSB7CisgICAgICAgIFZlY3RvcjxSZWZQ
dHI8TWVkaWFTdHJlYW0+ID4gcGVuZGluZ1N0cmVhbXM7CisgICAgICAgIG1fcGVuZGluZ1JlbW92
ZVN0cmVhbXMuc3dhcChwZW5kaW5nU3RyZWFtcyk7CisgICAgICAgIGlmIChtX3BlZXJIYW5kbGVy
KQorICAgICAgICAgICAgbV9wZWVySGFuZGxlci0+cmVtb3ZlUGVuZGluZ1N0cmVhbXMocGVuZGlu
Z1N0cmVhbXMpOworICAgIH0KIH0KIAotdm9pZCBQZWVyQ29ubmVjdGlvbjo6ZGlzcGF0Y2hTdHJl
YW1FdmVudChjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IHN0cmVh
bSkKK3ZvaWQgUGVlckNvbm5lY3Rpb246OnNjaGVkdWxlUmVhZHlTdGF0ZUNoYW5nZShSZWFkeVN0
YXRlIHJlYWR5U3RhdGUpCiB7Ci0gICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBzID0gc3RyZWFtOwot
ICAgIGRpc3BhdGNoRXZlbnQoTWVkaWFTdHJlYW1FdmVudDo6Y3JlYXRlKG5hbWUsIGZhbHNlLCBm
YWxzZSwgcykpOworICAgIG1fcGVuZGluZ1JlYWR5U3RhdGVzLmFwcGVuZChyZWFkeVN0YXRlKTsK
KyAgICBpZiAoIW1fcmVhZHlTdGF0ZUNoYW5nZVRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1f
cmVhZHlTdGF0ZUNoYW5nZVRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAotdm9pZCBQZWVyQ29u
bmVjdGlvbjo6ZGlzcGF0Y2hTaW1wbGVFdmVudChjb25zdCBTdHJpbmcmIGV2ZW50TmFtZSkKK3Zv
aWQgUGVlckNvbm5lY3Rpb246OnJlYWR5U3RhdGVDaGFuZ2VUaW1lckZpcmVkKFRpbWVyPFBlZXJD
b25uZWN0aW9uPiopCiB7Ci0gICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZSwgZmFsc2UsIGZhbHNlKSk7CisgICAgVmVjdG9yPFJlYWR5U3RhdGU+IHBlbmRpbmdSZWFkeVN0
YXRlczsKKyAgICBtX3BlbmRpbmdSZWFkeVN0YXRlcy5zd2FwKHBlbmRpbmdSZWFkeVN0YXRlcyk7
CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBlbmRpbmdSZWFkeVN0YXRlcy5zaXplKCk7
IGkrKykKKyAgICAgICAgY2hhbmdlUmVhZHlTdGF0ZShwZW5kaW5nUmVhZHlTdGF0ZXNbaV0pOwog
fQogCi12b2lkIFBlZXJDb25uZWN0aW9uOjpkaXNwYXRjaFN0YXJ0TmVnb3RpYXRpb25UYXNrKGNv
bnN0IGludCYpCit2b2lkIFBlZXJDb25uZWN0aW9uOjpjaGFuZ2VSZWFkeVN0YXRlKFJlYWR5U3Rh
dGUgcmVhZHlTdGF0ZSkKIHsKLSAgICBpZiAobWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIoKSkK
LSAgICAgICAgbWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIoKS0+c3RhcnROZWdvdGlhdGlvbiht
X2NsaWVudElkKTsKKyAgICBpZiAocmVhZHlTdGF0ZSA9PSBtX3JlYWR5U3RhdGUpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fcmVhZHlTdGF0ZSA9IHJlYWR5U3RhdGU7CisKKyAgICBzd2l0Y2gg
KG1fcmVhZHlTdGF0ZSkgeworICAgIGNhc2UgTkVHT1RJQVRJTkc6CisgICAgICAgIGRpc3BhdGNo
RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY29ubmVjdGluZ0V2ZW50LCBmYWxzZSwg
ZmFsc2UpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBQ1RJVkU6CisgICAgICAgIGRpc3Bh
dGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkub3BlbkV2ZW50LCBmYWxzZSwgZmFs
c2UpKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgfQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9tYXN0ZXI6U291cmNlL1dlYkNvcmUvcDJwL1BlZXJDb25uZWN0aW9uLmggYi9IRUFEOlNvdXJj
ZS9XZWJDb3JlL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uLmgKaW5kZXggMThkMTY1Yi4uMTY1
MDIyMyAxMDA2NDQKLS0tIGEvbWFzdGVyOlNvdXJjZS9XZWJDb3JlL3AycC9QZWVyQ29ubmVjdGlv
bi5oCisrKyBiL0hFQUQ6U291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24u
aApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBFcmljc3NvbiBBQi4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjcsNDEgKzI4LDQwIEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCisjaW5jbHVkZSAi
QWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKLSNpbmNsdWRlICJN
ZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlci5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CisjaW5jbHVkZSAiRXhjZXB0aW9uQmFzZS5oIgorI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCisj
aW5jbHVkZSAiTWVkaWFTdHJlYW1MaXN0LmgiCisjaW5jbHVkZSAiUGVlckNvbm5lY3Rpb25TaWdu
YWxpbmdDYWxsYmFjay5oIgorI2luY2x1ZGUgIlBlZXJIYW5kbGVyLmgiCisjaW5jbHVkZSAiVGlt
ZXIuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBNZWRpYVN0cmVhbTsKLWNsYXNzIE1l
ZGlhU3RyZWFtTGlzdDsKLWNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7Ci1jbGFzcyBTZXJp
YWxpemVkU2NyaXB0VmFsdWU7Ci1jbGFzcyBTaWduYWxpbmdDYWxsYmFjazsKLQotY2xhc3MgUGVl
ckNvbm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxQZWVyQ29ubmVjdGlvbj4sIHB1YmxpYyBF
dmVudFRhcmdldCwgcHVibGljIE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyOjpQZWVyQ29ubmVj
dGlvbkNsaWVudCB7CitjbGFzcyBQZWVyQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFBl
ZXJDb25uZWN0aW9uPiwgcHVibGljIFBlZXJIYW5kbGVyQ2xpZW50LCBwdWJsaWMgRXZlbnRUYXJn
ZXQsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFBlZXJDb25uZWN0aW9uPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBzZXJ2ZXJDb25maWd1cmF0
aW9uLCBQYXNzUmVmUHRyPFBlZXJDb25uZWN0aW9uU2lnbmFsaW5nQ2FsbGJhY2s+LCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0Kik7CisgICAgflBlZXJDb25uZWN0aW9uKCk7CisKKyAgICB2b2lkIHBy
b2Nlc3NTaWduYWxpbmdNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXhjZXB0aW9uQ29k
ZSYpOworCiAgICAgLy8gTmFtZSBhbmQgdmFsdWVzIG9mIHRoZSBlbnVtIG11c3QgbWF0Y2ggdGhl
IGNvcnJlc3Nwb25kaW5nIGNvbnN0YW50cyBpbiB0aGUgLmlkbCBmaWxlLgotICAgIGVudW0gewor
ICAgIGVudW0gUmVhZHlTdGF0ZSB7CiAgICAgICAgIE5FVyA9IDAsCiAgICAgICAgIE5FR09USUFU
SU5HID0gMSwKICAgICAgICAgQUNUSVZFID0gMiwKICAgICAgICAgQ0xPU0VEID0gMwogICAgIH07
CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQZWVyQ29ubmVjdGlvbj4gY3JlYXRlKE1lZGlhU3Ry
ZWFtRnJhbWVDb250cm9sbGVyKiwgaW50IGlkLCBjb25zdCBTdHJpbmcmIGNvbmZpZ3VyYXRpb24s
IFBhc3NSZWZQdHI8U2lnbmFsaW5nQ2FsbGJhY2s+KTsKLSAgICB2aXJ0dWFsIH5QZWVyQ29ubmVj
dGlvbigpOworICAgIFJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0OwogCi0gICAgTWVkaWFT
dHJlYW1MaXN0KiBsb2NhbFN0cmVhbXMoKTsKLSAgICBNZWRpYVN0cmVhbUxpc3QqIHJlbW90ZVN0
cmVhbXMoKTsKLQotICAgIHVuc2lnbmVkIHNob3J0IHJlYWR5U3RhdGUoKSBjb25zdCB7IHJldHVy
biBtX3JlYWR5U3RhdGU7IH0KLQotICAgIHZvaWQgcHJvY2Vzc1NpZ25hbGluZ01lc3NhZ2UoY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZW5kKGNvbnN0
IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgYWRkU3RyZWFtKFBhc3NS
ZWZQdHI8TWVkaWFTdHJlYW0+LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCByZW1vdmVTdHJl
YW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIGFk
ZFN0cmVhbShjb25zdCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiwgRXhjZXB0aW9uQ29kZSYpOwor
ICAgIHZvaWQgcmVtb3ZlU3RyZWFtKGNvbnN0IFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+LCBFeGNl
cHRpb25Db2RlJik7CisgICAgTWVkaWFTdHJlYW1MaXN0KiBsb2NhbFN0cmVhbXMoKSBjb25zdDsK
KyAgICBNZWRpYVN0cmVhbUxpc3QqIHJlbW90ZVN0cmVhbXMoKSBjb25zdDsKICAgICB2b2lkIGNs
b3NlKEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVO
RVIoY29ubmVjdGluZyk7CkBAIC03MCw1OCArNzAsNjcgQEAgcHVibGljOgogICAgIERFRklORV9B
VFRSSUJVVEVfRVZFTlRfTElTVEVORVIoYWRkc3RyZWFtKTsKICAgICBERUZJTkVfQVRUUklCVVRF
X0VWRU5UX0xJU1RFTkVSKHJlbW92ZXN0cmVhbSk7CiAKKyAgICAvLyBQZWVySGFuZGxlckNsaWVu
dAorICAgIHZpcnR1YWwgdm9pZCBpY2VQcm9jZXNzaW5nQ29tcGxldGVkKCk7CisgICAgdmlydHVh
bCB2b2lkIHNkcEdlbmVyYXRlZChjb25zdCBTdHJpbmcmIHNkcCk7CisgICAgdmlydHVhbCB2b2lk
IGRhdGFTdHJlYW1NZXNzYWdlUmVjZWl2ZWQoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVu
Z3RoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3RlU3RyZWFtQWRkZWQoY29uc3QgU3RyaW5nJiBz
dHJlYW1JZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgTWVkaWFTdHJlYW1Db21wb25lbnRM
aXN0Jik7CisgICAgdmlydHVhbCB2b2lkIHJlbW90ZVN0cmVhbVJlbW92ZWQoY29uc3QgU3RyaW5n
JiBzdHJlYW1JZCk7CisKICAgICAvLyBFdmVudFRhcmdldAogICAgIHZpcnR1YWwgUGVlckNvbm5l
Y3Rpb24qIHRvUGVlckNvbm5lY3Rpb24oKTsKIAogICAgIC8vIEV2ZW50VGFyZ2V0IGltcGxlbWVu
dGF0aW9uLgogICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpIGNvbnN0OwogCi0gICAgLy8gQ2FsbGJhY2tzCi0gICAgdm9pZCBvbk1lc3Nh
Z2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKLSAgICB2b2lkIG9uU2lnbmFsaW5nTWVzc2FnZShj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpOwotICAgIHZvaWQgb25OZWdvdGlhdGlvblN0YXJ0ZWQoKTsK
LSAgICB2b2lkIG9uTmVnb3RpYXRpb25Eb25lKCk7Ci0gICAgdm9pZCBzdHJlYW1BZGRlZChQYXNz
UmVmUHRyPE1lZGlhU3RyZWFtPik7Ci0gICAgdm9pZCBzdHJlYW1SZW1vdmVkKGNvbnN0IFN0cmlu
ZyYgc3RyZWFtTGFiZWwpOworICAgIC8vIEFjdGl2ZURPTU9iamVjdAorICAgIHZpcnR1YWwgdm9p
ZCBzdG9wKCk7CiAKICAgICB1c2luZyBSZWZDb3VudGVkPFBlZXJDb25uZWN0aW9uPjo6cmVmOwog
ICAgIHVzaW5nIFJlZkNvdW50ZWQ8UGVlckNvbm5lY3Rpb24+OjpkZXJlZjsKIAotcHJvdGVjdGVk
OgotICAgIC8vIEV2ZW50VGFyZ2V0IGltcGxlbWVudGF0aW9uLgotICAgIHZpcnR1YWwgRXZlbnRU
YXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKTsKLSAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0
YSogZW5zdXJlRXZlbnRUYXJnZXREYXRhKCk7Ci0KIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0
IHNpemVfdCBrTWF4TWVzc2FnZVVURjhMZW5ndGggPSA1MDQ7CiAKLSAgICBQZWVyQ29ubmVjdGlv
bihNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlciosIGludCBpZCwgY29uc3QgU3RyaW5nJiBjb25m
aWd1cmF0aW9uLCBQYXNzUmVmUHRyPFNpZ25hbGluZ0NhbGxiYWNrPik7Ci0gICAgdm9pZCBpbml0
KCk7CisgICAgUGVlckNvbm5lY3Rpb24oY29uc3QgU3RyaW5nJiBzZXJ2ZXJDb25maWd1cmF0aW9u
LCBQYXNzUmVmUHRyPFBlZXJDb25uZWN0aW9uU2lnbmFsaW5nQ2FsbGJhY2s+LCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0Kik7CiAKLSAgICB2b2lkIHBvc3RTaW1wbGVFdmVudChjb25zdCBTdHJpbmcm
IGV2ZW50TmFtZSk7Ci0gICAgdm9pZCBwb3N0TWVzc2FnZUV2ZW50KGNvbnN0IFN0cmluZyYgbWVz
c2FnZSk7Ci0gICAgdm9pZCBwb3N0U2lnbmFsaW5nRXZlbnQoY29uc3QgU3RyaW5nJiBtZXNzYWdl
KTsKLSAgICB2b2lkIHBvc3RTdHJlYW1BZGRlZEV2ZW50KFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+
KTsKLSAgICB2b2lkIHBvc3RTdHJlYW1SZW1vdmVkRXZlbnQoUGFzc1JlZlB0cjxNZWRpYVN0cmVh
bT4pOwotICAgIHZvaWQgcG9zdFN0YXJ0TmVnb3RpYXRpb25UYXNrKCk7Ci0KLSAgICB2b2lkIGRp
c3BhdGNoU2ltcGxlRXZlbnQoY29uc3QgU3RyaW5nJiBldmVudE5hbWUpOwotICAgIHZvaWQgZGlz
cGF0Y2hNZXNzYWdlRXZlbnQoY29uc3QgaW50JiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IGRhdGEpOwotICAgIHZvaWQgZGlzcGF0Y2hTaWduYWxpbmdFdmVudChjb25zdCBTdHJp
bmcmIGV2ZW50TmFtZSk7Ci0gICAgdm9pZCBkaXNwYXRjaFN0cmVhbUV2ZW50KGNvbnN0IFN0cmlu
ZyYgbmFtZSwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4pOwotICAgIHZvaWQgZGlzcGF0Y2hTdGFy
dE5lZ290aWF0aW9uVGFzayhjb25zdCBpbnQmKTsKKyAgICBQYXNzUmVmUHRyPFBlZXJIYW5kbGVy
Q29uZmlndXJhdGlvbj4gcGFyc2VTZXJ2ZXJDb25maWd1cmF0aW9uKGNvbnN0IFN0cmluZyYgc2Vy
dmVyQ29uZmlndXJhdGlvbik7CiAKICAgICAvLyBFdmVudFRhcmdldCBpbXBsZW1lbnRhdGlvbi4K
KyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhKCk7CisgICAgdmly
dHVhbCBFdmVudFRhcmdldERhdGEqIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpOwogICAgIHZpcnR1
YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIHsgcmVmKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVy
ZWZFdmVudFRhcmdldCgpIHsgZGVyZWYoKTsgfQogCisgICAgdm9pZCBzY2hlZHVsZUluaXRpYWxO
ZWdvdGlhdGlvbigpOworICAgIHZvaWQgaW5pdGlhbE5lZ290aWF0aW9uVGltZXJGaXJlZChUaW1l
cjxQZWVyQ29ubmVjdGlvbj4qKTsKKyAgICB2b2lkIHNjaGVkdWxlU3RyZWFtQ2hhbmdlKCk7Cisg
ICAgdm9pZCBzdHJlYW1DaGFuZ2VUaW1lckZpcmVkKFRpbWVyPFBlZXJDb25uZWN0aW9uPiopOwor
ICAgIHZvaWQgc2NoZWR1bGVSZWFkeVN0YXRlQ2hhbmdlKFJlYWR5U3RhdGUpOworICAgIHZvaWQg
cmVhZHlTdGF0ZUNoYW5nZVRpbWVyRmlyZWQoVGltZXI8UGVlckNvbm5lY3Rpb24+Kik7CisKKyAg
ICB2b2lkIGNoYW5nZVJlYWR5U3RhdGUoUmVhZHlTdGF0ZSk7CisKKyAgICBSZWZQdHI8UGVlckNv
bm5lY3Rpb25TaWduYWxpbmdDYWxsYmFjaz4gbV9zaWduYWxpbmdDYWxsYmFjazsKKworICAgIFJl
YWR5U3RhdGUgbV9yZWFkeVN0YXRlOworICAgIGJvb2wgbV9pY2VTdGFydGVkOworCisgICAgUmVm
UHRyPE1lZGlhU3RyZWFtTGlzdD4gbV9sb2NhbFN0cmVhbXM7CisgICAgUmVmUHRyPE1lZGlhU3Ry
ZWFtTGlzdD4gbV9yZW1vdGVTdHJlYW1zOworCisgICAgLy8gRXZlbnRUYXJnZXQgaW1wbGVtZW50
YXRpb24uCiAgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOwogCi0gICAgU3Ry
aW5nIG1fY29uZmlndXJhdGlvbjsKLSAgICB1bnNpZ25lZCBzaG9ydCBtX3JlYWR5U3RhdGU7Ci0g
ICAgUmVmUHRyPFNpZ25hbGluZ0NhbGxiYWNrPiBtX3NpZ25hbGluZ0NhbGxiYWNrOwotICAgIFJl
ZlB0cjxNZWRpYVN0cmVhbUxpc3Q+IG1fbG9jYWxTdHJlYW1MaXN0OwotICAgIFJlZlB0cjxNZWRp
YVN0cmVhbUxpc3Q+IG1fcmVtb3RlU3RyZWFtTGlzdDsKKyAgICBUaW1lcjxQZWVyQ29ubmVjdGlv
bj4gbV9pbml0aWFsTmVnb3RpYXRpb25UaW1lcjsKKyAgICBUaW1lcjxQZWVyQ29ubmVjdGlvbj4g
bV9zdHJlYW1DaGFuZ2VUaW1lcjsKKyAgICBUaW1lcjxQZWVyQ29ubmVjdGlvbj4gbV9yZWFkeVN0
YXRlQ2hhbmdlVGltZXI7CisKKyAgICBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtPiA+IG1fcGVu
ZGluZ0FkZFN0cmVhbXM7CisgICAgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbT4gPiBtX3BlbmRp
bmdSZW1vdmVTdHJlYW1zOworICAgIFZlY3RvcjxSZWFkeVN0YXRlPiBtX3BlbmRpbmdSZWFkeVN0
YXRlczsKKworICAgIE93blB0cjxQZWVySGFuZGxlcj4gbV9wZWVySGFuZGxlcjsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL21hc3RlcjpTb3VyY2UvV2ViQ29yZS9w
MnAvUGVlckNvbm5lY3Rpb24uaWRsIGIvSEVBRDpTb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9Q
ZWVyQ29ubmVjdGlvbi5pZGwKaW5kZXggZmM5YTE5ZC4uZmUxYTUzMCAxMDA2NDQKLS0tIGEvbWFz
dGVyOlNvdXJjZS9XZWJDb3JlL3AycC9QZWVyQ29ubmVjdGlvbi5pZGwKKysrIGIvSEVBRDpTb3Vy
Y2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbi5pZGwKQEAgLTIyLDcgKzIyLDcg
QEAKICAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCiAKLW1vZHVsZSBwMnAgeworbW9kdWxlIGNvcmUgewogCiAgICAgaW50
ZXJmYWNlIFsKICAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLApkaWZmIC0tZ2l0IGEv
bWFzdGVyOlNvdXJjZS9XZWJDb3JlL3AycC9TaWduYWxpbmdDYWxsYmFjay5oIGIvSEVBRDpTb3Vy
Y2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvblNpZ25hbGluZ0NhbGxiYWNrLmgK
aW5kZXggYTRhMzBlNy4uMDNjOTVjYyAxMDA2NDQKLS0tIGEvbWFzdGVyOlNvdXJjZS9XZWJDb3Jl
L3AycC9TaWduYWxpbmdDYWxsYmFjay5oCisrKyBiL0hFQUQ6U291cmNlL1dlYkNvcmUvbWVkaWFz
dHJlYW0vUGVlckNvbm5lY3Rpb25TaWduYWxpbmdDYWxsYmFjay5oCkBAIC0yMiw4ICsyMiw4IEBA
CiAgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFNpZ25hbGluZ0NhbGxiYWNrX2gKLSNkZWZpbmUgU2ln
bmFsaW5nQ2FsbGJhY2tfaAorI2lmbmRlZiBQZWVyQ29ubmVjdGlvblNpZ25hbGluZ0NhbGxiYWNr
X2gKKyNkZWZpbmUgUGVlckNvbm5lY3Rpb25TaWduYWxpbmdDYWxsYmFja19oCiAKICNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQogCkBAIC0zMywxNCArMzMsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBQZWVyQ29ubmVjdGlvbjsKIAotY2xhc3MgU2lnbmFsaW5nQ2FsbGJhY2sgOiBw
dWJsaWMgUmVmQ291bnRlZDxTaWduYWxpbmdDYWxsYmFjaz4geworY2xhc3MgUGVlckNvbm5lY3Rp
b25TaWduYWxpbmdDYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPFBlZXJDb25uZWN0aW9uU2ln
bmFsaW5nQ2FsbGJhY2s+IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5TaWduYWxpbmdDYWxsYmFj
aygpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChjb25zdCBTdHJpbmcmLCBQZWVy
Q29ubmVjdGlvbiopID0gMDsKKyAgICB2aXJ0dWFsIH5QZWVyQ29ubmVjdGlvblNpZ25hbGluZ0Nh
bGxiYWNrKCkgeyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBQZWVyQ29ubmVjdGlvbiogc291cmNlKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi0jZW5kaWYg
Ly8gU2lnbmFsaW5nQ2FsbGJhY2tfaAorI2VuZGlmIC8vIFBlZXJDb25uZWN0aW9uU2lnbmFsaW5n
Q2FsbGJhY2tfaApkaWZmIC0tZ2l0IGEvbWFzdGVyOlNvdXJjZS9XZWJDb3JlL3AycC9TaWduYWxp
bmdDYWxsYmFjay5pZGwgYi9IRUFEOlNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL1BlZXJDb25u
ZWN0aW9uU2lnbmFsaW5nQ2FsbGJhY2suaWRsCmluZGV4IDBkMzJmY2YuLjY5YTlhNGEgMTAwNjQ0
Ci0tLSBhL21hc3RlcjpTb3VyY2UvV2ViQ29yZS9wMnAvU2lnbmFsaW5nQ2FsbGJhY2suaWRsCisr
KyBiL0hFQUQ6U291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25TaWduYWxp
bmdDYWxsYmFjay5pZGwKQEAgLTIyLDEyICsyMiwxMiBAQAogICogU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotbW9kdWxl
IHAycCB7Cittb2R1bGUgY29yZSB7CiAKICAgICBpbnRlcmZhY2UgWwogICAgICAgICBDb25kaXRp
b25hbD1NRURJQV9TVFJFQU0sCiAgICAgICAgIENhbGxiYWNrPUZ1bmN0aW9uT25seQotICAgIF0g
U2lnbmFsaW5nQ2FsbGJhY2sgeworICAgIF0gUGVlckNvbm5lY3Rpb25TaWduYWxpbmdDYWxsYmFj
ayB7CiAgICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gRE9NU3RyaW5nIG1lc3NhZ2UsIGlu
IFBlZXJDb25uZWN0aW9uIHNvdXJjZSk7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tZWRp
YXN0cmVhbS9Vc2VyTWVkaWFDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5jMTA5YWY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJl
YW0vVXNlck1lZGlhQ2xpZW50LmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0
aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBFcmljc3NvbiBub3IgdGhlIG5hbWVzIG9m
IGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFVzZXJN
ZWRpYUNsaWVudF9oCisjZGVmaW5lIFVzZXJNZWRpYUNsaWVudF9oCisKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJVc2Vy
TWVkaWFDb250cm9sbGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVXNlck1l
ZGlhQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgdXNlck1lZGlhQ29udHJvbGxl
ckRlc3Ryb3llZCgpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0VXNlck1lZGlhKGNv
bnN0IFN0cmluZyYgcmVxdWVzdElkLCBQYXNzUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+KSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbFVzZXJNZWRpYVJlcXVlc3QoY29uc3QgU3RyaW5nJiBy
ZXF1ZXN0SWQpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCB1c2VyTWVkaWFRdWVyeUNvbXBsZXRl
ZChjb25zdCBTdHJpbmcmIHF1ZXJ5SWQsIGNvbnN0IE1lZGlhU3RyZWFtQ29tcG9uZW50TGlzdCYp
ID0gMDsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgflVzZXJNZWRpYUNsaWVudCgpIHsgfQor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworI2VuZGlmIC8vIFVzZXJNZWRpYUNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjkyNGZiY2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmNwcApAQCAtMCwwICsxLDEyMiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAg
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBFcmlj
c3NvbiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
CisjaW5jbHVkZSAiVXNlck1lZGlhQ29udHJvbGxlci5oIgorCisjaW5jbHVkZSAiTG9jYWxNZWRp
YVN0cmVhbS5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3JVc2Vy
TWVkaWFFcnJvci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiVVVJ
RC5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNsaWVudC5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitVc2VyTWVkaWFDb250cm9sbGVyOjpV
c2VyTWVkaWFDb250cm9sbGVyKFBhZ2UqIHBhZ2UsIFVzZXJNZWRpYUNsaWVudCogY2xpZW50KQor
ICAgIDogbV9wYWdlKHBhZ2UpCisgICAgLCBtX2NsaWVudChjbGllbnQpCit7Cit9CisKK1VzZXJN
ZWRpYUNvbnRyb2xsZXI6On5Vc2VyTWVkaWFDb250cm9sbGVyKCkKK3sKKyAgICBpZiAobV9jbGll
bnQpCisgICAgICAgIG1fY2xpZW50LT51c2VyTWVkaWFDb250cm9sbGVyRGVzdHJveWVkKCk7Cit9
CisKK3ZvaWQgVXNlck1lZGlhQ29udHJvbGxlcjo6cmVxdWVzdFVzZXJNZWRpYShQYXNzUmVmUHRy
PFVzZXJNZWRpYVJlcXVlc3Q+IHJlcXVlc3QsIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlh
U3VjY2Vzc0NhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssCisgICAgICAgIFBhc3NSZWZQdHI8TmF2
aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaywgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBpZiAoIW1fY2xpZW50KQorICAgICAgICByZXR1
cm47CisKKyAgICBTdHJpbmcgcmVxdWVzdElkID0gY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygp
OworICAgIG1fY2FsbGJhY2tCdW5kbGVzLmFkZChyZXF1ZXN0SWQsIFVzZXJNZWRpYUNhbGxiYWNr
QnVuZGxlOjpjcmVhdGUoc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCBjb250ZXh0KSk7
CisKKyAgICBtX2NsaWVudC0+cmVxdWVzdFVzZXJNZWRpYShyZXF1ZXN0SWQsIHJlcXVlc3QpOwor
fQorCit2b2lkIFVzZXJNZWRpYUNvbnRyb2xsZXI6OmNhbmNlbFVzZXJNZWRpYVJlcXVlc3QoY29u
c3QgU3RyaW5nJiByZXF1ZXN0SWQpCit7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2Ns
aWVudC0+Y2FuY2VsVXNlck1lZGlhUmVxdWVzdChyZXF1ZXN0SWQpOworfQorCit2b2lkIFVzZXJN
ZWRpYUNvbnRyb2xsZXI6OmNhbmNlbEFsbFVzZXJNZWRpYVJlcXVlc3RzKCkKK3sKKyAgICBmb3Ig
KENhbGxiYWNrQnVuZGxlTWFwOjppdGVyYXRvciBidW5kbGVJdCA9IG1fY2FsbGJhY2tCdW5kbGVz
LmJlZ2luKCk7IGJ1bmRsZUl0ICE9IG1fY2FsbGJhY2tCdW5kbGVzLmVuZCgpOyArK2J1bmRsZUl0
KQorICAgICAgICBjYW5jZWxVc2VyTWVkaWFSZXF1ZXN0KGJ1bmRsZUl0LT5maXJzdCk7CisKKyAg
ICBtX2NhbGxiYWNrQnVuZGxlcy5jbGVhcigpOworfQorCit2b2lkIFVzZXJNZWRpYUNvbnRyb2xs
ZXI6OnVzZXJNZWRpYVJlcXVlc3RTdWNjZWVkZWQoY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQsIGNv
bnN0IE1lZGlhU3RyZWFtQ29tcG9uZW50TGlzdCYgY29tcG9uZW50cykKK3sKKyAgICBMT0coR2V0
VXNlck1lZGlhLCAiR2V0VXNlck1lZGlhIC0gdXNlck1lZGlhUmVxdWVzdFN1Y2NlZWRlZCByZXF1
ZXN0SWQ6ICVzIiwgcmVxdWVzdElkLmFzY2lpKCkuZGF0YSgpKTsKKworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgY29tcG9uZW50cy5zaXplKCk7IGkrKykKKyAgICAgICAgTE9HKEdldFVzZXJN
ZWRpYSwgIiVkIC0gaWQ6ICVzLCB0eXBlOiAlZCwgbmFtZTogJXMiLCAoaW50KWksIGNvbXBvbmVu
dHNbaV0tPmlkLmFzY2lpKCkuZGF0YSgpLCBjb21wb25lbnRzW2ldLT50eXBlLCBjb21wb25lbnRz
W2ldLT5uYW1lLmFzY2lpKCkuZGF0YSgpKTsKKworICAgIFJlZlB0cjxVc2VyTWVkaWFDYWxsYmFj
a0J1bmRsZT4gY2FsbGJhY2tCdW5kbGUgPSBtX2NhbGxiYWNrQnVuZGxlcy50YWtlKHJlcXVlc3RJ
ZCk7CisgICAgaWYgKCFjYWxsYmFja0J1bmRsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVm
UHRyPExvY2FsTWVkaWFTdHJlYW0+IHN0cmVhbSA9IExvY2FsTWVkaWFTdHJlYW06OmNyZWF0ZShy
ZXF1ZXN0SWQsIGNvbXBvbmVudHMsIGNhbGxiYWNrQnVuZGxlLT5jb250ZXh0KTsKKyAgICBjYWxs
YmFja0J1bmRsZS0+c3VjY2Vzc0NhbGxiYWNrLT5oYW5kbGVFdmVudChzdHJlYW0uZ2V0KCkpOwor
fQorCit2b2lkIFVzZXJNZWRpYUNvbnRyb2xsZXI6OnVzZXJNZWRpYVJlcXVlc3RGYWlsZWQoY29u
c3QgU3RyaW5nJiByZXF1ZXN0SWQpCit7CisgICAgUmVmUHRyPFVzZXJNZWRpYUNhbGxiYWNrQnVu
ZGxlPiBjYWxsYmFja0J1bmRsZSA9IG1fY2FsbGJhY2tCdW5kbGVzLnRha2UocmVxdWVzdElkKTsK
KyAgICBpZiAoY2FsbGJhY2tCdW5kbGUgJiYgY2FsbGJhY2tCdW5kbGUtPmVycm9yQ2FsbGJhY2sp
IHsKKyAgICAgICAgUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yPiBlcnJvciA9IE5hdmln
YXRvclVzZXJNZWRpYUVycm9yOjpjcmVhdGUoTmF2aWdhdG9yVXNlck1lZGlhRXJyb3I6OlBFUk1J
U1NJT05fREVOSUVEKTsKKyAgICAgICAgY2FsbGJhY2tCdW5kbGUtPmVycm9yQ2FsbGJhY2stPmhh
bmRsZUV2ZW50KGVycm9yLmdldCgpKTsKKyAgICB9Cit9CisKK3ZvaWQgVXNlck1lZGlhQ29udHJv
bGxlcjo6cXVlcnlVc2VyTWVkaWEoY29uc3QgU3RyaW5nJiBxdWVyeUlkLCBpbnQgbWVkaWFUeXBl
cykKK3sKKyAgICBtZWRpYVN0cmVhbU1hbmFnZXIoKS5xdWVyeVVzZXJNZWRpYShxdWVyeUlkLCBt
ZWRpYVR5cGVzLCB0aGlzKTsKK30KKwordm9pZCBVc2VyTWVkaWFDb250cm9sbGVyOjp1c2VyTWVk
aWFRdWVyeUNvbXBsZXRlZChjb25zdCBTdHJpbmcmIHF1ZXJ5SWQsIGNvbnN0IE1lZGlhU3RyZWFt
Q29tcG9uZW50TGlzdCYgY29tcG9uZW50cykKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAg
IG1fY2xpZW50LT51c2VyTWVkaWFRdWVyeUNvbXBsZXRlZChxdWVyeUlkLCBjb21wb25lbnRzKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NU
UkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xs
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZjgxY2U4Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxl
ci5oCkBAIC0wLDAgKzEsMTM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEVyaWNzc29u
IEFCLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEVyaWNzc29uIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9y
cworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbSB0aGlzCisgKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVXNlck1lZGlhQ29udHJvbGxlcl9o
CisjZGVmaW5lIFVzZXJNZWRpYUNvbnRyb2xsZXJfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKworI2luY2x1ZGUgIk1lZGlhU3RyZWFtTWFuYWdlci5oIgorI2luY2x1ZGUgIk5hdmlnYXRv
clVzZXJNZWRpYUVycm9yQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3JVc2VyTWVkaWFT
dWNjZXNzQ2FsbGJhY2suaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGFn
ZTsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBVc2VyTWVkaWFDbGllbnQ7
CisKK3N0cnVjdCBVc2VyTWVkaWFSZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8VXNlck1lZGlh
UmVxdWVzdD4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVzZXJNZWRpYVJlcXVl
c3Q+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFVzZXJNZWRp
YVJlcXVlc3QoKSk7CisgICAgfQorCisgICAgYm9vbCBhdWRpbzsKKyAgICBib29sIHZpZGVvOwor
CisgICAgYm9vbCBhdWRpb1ByZWZlcmVuY2VEZWZhdWx0OworICAgIGJvb2wgdmlkZW9QcmVmZXJl
bmNlRGVmYXVsdDsKKworICAgIGJvb2wgY2FtZXJhUHJlZmVyZW5jZVVzZXI7CisgICAgYm9vbCBj
YW1lcmFQcmVmZXJlbmNlRW52aXJvbm1lbnQ7CisKKyAgICBTdHJpbmcgb3JpZ2luOworCitwcml2
YXRlOgorICAgIFVzZXJNZWRpYVJlcXVlc3QoKQorICAgICAgICA6IGF1ZGlvKGZhbHNlKQorICAg
ICAgICAsIHZpZGVvKGZhbHNlKQorICAgICAgICAsIGF1ZGlvUHJlZmVyZW5jZURlZmF1bHQoZmFs
c2UpCisgICAgICAgICwgdmlkZW9QcmVmZXJlbmNlRGVmYXVsdChmYWxzZSkKKyAgICAgICAgLCBj
YW1lcmFQcmVmZXJlbmNlVXNlcihmYWxzZSkKKyAgICAgICAgLCBjYW1lcmFQcmVmZXJlbmNlRW52
aXJvbm1lbnQoZmFsc2UpCisgICAgeyB9Cit9OworCitzdHJ1Y3QgVXNlck1lZGlhQ2FsbGJhY2tC
dW5kbGUgOiBwdWJsaWMgUmVmQ291bnRlZDxVc2VyTWVkaWFDYWxsYmFja0J1bmRsZT4geworcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVzZXJNZWRpYUNhbGxiYWNrQnVuZGxlPiBjcmVh
dGUoUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2s+IHN1Y2Nlc3ND
YWxsYmFjaywKKyAgICAgICAgICAgIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JD
YWxsYmFjaz4gZXJyb3JDYWxsYmFjaywKKyAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFVzZXJNZWRp
YUNhbGxiYWNrQnVuZGxlKHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaywgY29udGV4dCkp
OworICAgIH0KKworICAgIFJlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2s+
IHN1Y2Nlc3NDYWxsYmFjazsKKyAgICBSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxs
YmFjaz4gZXJyb3JDYWxsYmFjazsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
OworCitwcml2YXRlOgorICAgIFVzZXJNZWRpYUNhbGxiYWNrQnVuZGxlKFBhc3NSZWZQdHI8TmF2
aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2tBcmcsCisgICAg
ICAgICAgICBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2s+IGVycm9y
Q2FsbGJhY2tBcmcsCisgICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
QXJnKQorICAgICAgICA6IHN1Y2Nlc3NDYWxsYmFjayhzdWNjZXNzQ2FsbGJhY2tBcmcpCisgICAg
ICAgICwgZXJyb3JDYWxsYmFjayhlcnJvckNhbGxiYWNrQXJnKQorICAgICAgICAsIGNvbnRleHQo
Y29udGV4dEFyZykKKyAgICB7IH0KK307CisKK2NsYXNzIFVzZXJNZWRpYUNvbnRyb2xsZXIgOiBw
dWJsaWMgVXNlck1lZGlhUXVlcnlDbGllbnQgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFVz
ZXJNZWRpYUNvbnRyb2xsZXIpOworcHVibGljOgorICAgIFVzZXJNZWRpYUNvbnRyb2xsZXIoUGFn
ZSosIFVzZXJNZWRpYUNsaWVudCopOworICAgIH5Vc2VyTWVkaWFDb250cm9sbGVyKCk7CisKKyAg
ICB2b2lkIHJlcXVlc3RVc2VyTWVkaWEoUGFzc1JlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiwgUGFz
c1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2s+LAorICAgICAgICAgICAg
UGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrPiwgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCopOworICAgIHZvaWQgY2FuY2VsVXNlck1lZGlhUmVxdWVzdChjb25zdCBTdHJp
bmcmIHJlcXVlc3RJZCk7CisgICAgdm9pZCBjYW5jZWxBbGxVc2VyTWVkaWFSZXF1ZXN0cygpOwor
CisgICAgdm9pZCB1c2VyTWVkaWFSZXF1ZXN0U3VjY2VlZGVkKGNvbnN0IFN0cmluZyYgcmVxdWVz
dElkLCBjb25zdCBNZWRpYVN0cmVhbUNvbXBvbmVudExpc3QmKTsKKyAgICB2b2lkIHVzZXJNZWRp
YVJlcXVlc3RGYWlsZWQoY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQpOworCisgICAgVXNlck1lZGlh
Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQorCisgICAgdm9pZCBx
dWVyeVVzZXJNZWRpYShjb25zdCBTdHJpbmcmIHF1ZXJ5SWQsIGludCBtZWRpYVR5cGVzKTsKKwor
ICAgIC8vIFVzZXJNZWRpYVF1ZXJ5Q2xpZW50IGludGVyZmFjZQorICAgIHZvaWQgdXNlck1lZGlh
UXVlcnlDb21wbGV0ZWQoY29uc3QgU3RyaW5nJiBxdWVyeUlkLCBjb25zdCBNZWRpYVN0cmVhbUNv
bXBvbmVudExpc3QmKTsKKworcHJpdmF0ZToKKyAgICBQYWdlKiBtX3BhZ2U7CisgICAgVXNlck1l
ZGlhQ2xpZW50KiBtX2NsaWVudDsKKworICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFJlZlB0
cjxVc2VyTWVkaWFDYWxsYmFja0J1bmRsZT4gPiBDYWxsYmFja0J1bmRsZU1hcDsKKyAgICBDYWxs
YmFja0J1bmRsZU1hcCBtX2NhbGxiYWNrQnVuZGxlczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBVc2Vy
TWVkaWFDb250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FsbGJh
Y2tUYXNrLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhbGxiYWNrVGFzay5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlZDAwZDMxLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2FsbGJhY2tUYXNrLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4MSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTgotICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaWZuZGVmIENhbGxiYWNrVGFza19oCi0jZGVmaW5lIENhbGxiYWNrVGFza19o
Ci0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oIgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotLy8gSGVscGVyIHRlbXBsYXRlIHRvIHNjaGVkdWxlIGNhbGxzIHRvIGNhbGxiYWNrcyB1c2lu
ZyB0aGVpciBvd24gc2NyaXB0IGV4ZWN1dGlvbiBjb250ZXh0LgotLy8gQ2FsbGJhY2tUeXBlIGlz
IGFzc3VtZWQgdG8gaW1wbGVtZW50IFNjaGVkdWxlciBhbmQgdG8gYmUgcmVmZXJlbmNlLWNvdW50
ZWQuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgQ2FsbGJhY2tUeXBlLCB0eXBlbmFtZSBBcmd1bWVudFR5
cGU+Ci1jbGFzcyBDYWxsYmFja1Rhc2sxIDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OlRhc2sgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPENhbGxiYWNrVGFzazE+IGNy
ZWF0ZShQYXNzUmVmUHRyPENhbGxiYWNrVHlwZT4gY2FsbGJhY2ssIFBhc3NSZWZQdHI8QXJndW1l
bnRUeXBlPiBkYXRhKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDYWxsYmFj
a1Rhc2sxKGNhbGxiYWNrLCBkYXRhKSk7Ci0gICAgfQotCi0gICAgdmlydHVhbCB2b2lkIHBlcmZv
cm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKQotICAgIHsKLSAgICAgICAgbV9jYWxsYmFj
ay0+aGFuZGxlRXZlbnQobV9kYXRhLmdldCgpKTsKLSAgICB9Ci0KLSAgICBjbGFzcyBTY2hlZHVs
ZXIgewotICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB+U2NoZWR1bGVyKCkgeyB9Ci0KLSAg
ICAgICAgYm9vbCBzY2hlZHVsZUNhbGxiYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIFBhc3NSZWZQdHI8QXJndW1lbnRUeXBlPiBkYXRhKQotICAgICAgICB7Ci0gICAgICAgICAg
ICBpZiAoY29udGV4dCkgewotICAgICAgICAgICAgICAgIGNvbnRleHQtPnBvc3RUYXNrKENhbGxi
YWNrVGFzazE8Q2FsbGJhY2tUeXBlLCBBcmd1bWVudFR5cGU+OjpjcmVhdGUoc3RhdGljX2Nhc3Q8
Q2FsbGJhY2tUeXBlKj4odGhpcyksIGRhdGEpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQot
ICAgIH07Ci0KLXByaXZhdGU6Ci0gICAgQ2FsbGJhY2tUYXNrMShQYXNzUmVmUHRyPENhbGxiYWNr
VHlwZT4gY2FsbGJhY2ssIFBhc3NSZWZQdHI8QXJndW1lbnRUeXBlPiBkYXRhKQotICAgICAgICA6
IG1fY2FsbGJhY2soY2FsbGJhY2spCi0gICAgICAgICwgbV9kYXRhKGRhdGEpCi0gICAgewotICAg
IH0KLQotICAgIFJlZlB0cjxDYWxsYmFja1R5cGU+IG1fY2FsbGJhY2s7Ci0gICAgUmVmUHRyPEFy
Z3VtZW50VHlwZT4gbV9kYXRhOwotfTsKLQotfQotCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NU
UkVBTSkKLQotI2VuZGlmIC8vIENhbGxiYWNrVGFza19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5p
ZGwKaW5kZXggMDQ4ZmViNy4uNDQ1N2NmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApA
QCAtMzM3LDcgKzMzNyw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUgW0Nv
bmRpdGlvbmFsPURFVklDRV9PUklFTlRBVElPTixFbmFibGVkQXRSdW50aW1lXSBFdmVudExpc3Rl
bmVyIG9uZGV2aWNlbW90aW9uOwogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPURFVklD
RV9PUklFTlRBVElPTixFbmFibGVkQXRSdW50aW1lXSBFdmVudExpc3RlbmVyIG9uZGV2aWNlb3Jp
ZW50YXRpb247CiAKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU0s
RW5hYmxlZEF0UnVudGltZV0gUGVlckNvbm5lY3Rpb25Db25zdHJ1Y3RvciBQZWVyQ29ubmVjdGlv
bjsKKyAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sRW5hYmxlZEF0
UnVudGltZV0gUGVlckNvbm5lY3Rpb25Db25zdHJ1Y3RvciB3ZWJraXRQZWVyQ29ubmVjdGlvbjsK
IAogICAgICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKICAgICAgICAgW0N1c3RvbV0gdm9p
ZCBhZGRFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApp
bmRleCBlODkxZTg3Li41ZTcxYjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtNjEsNyArNjEs
NiBAQAogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYUZlYXR1cmVOYW1lcy5oIgotI2luY2x1ZGUgIk1lZGlh
U3RyZWFtRnJhbWVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCiAjaW5jbHVk
ZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC0xNjYsOSArMTY1LDYgQEAgaW5s
aW5lIEZyYW1lOjpGcmFtZShQYWdlKiBwYWdlLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVy
RWxlbWVudCwgRnJhbWVMb2FkZXIKICAgICAsIG1faW5WaWV3U291cmNlTW9kZShmYWxzZSkKICAg
ICAsIG1faXNEaXNjb25uZWN0ZWQoZmFsc2UpCiAgICAgLCBtX2V4Y2x1ZGVGcm9tVGV4dFNlYXJj
aChmYWxzZSkKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgICwgbV9tZWRpYVN0cmVhbUZy
YW1lQ29udHJvbGxlcihSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjptZWRpYVN0cmVhbUVuYWJsZWQo
KSA/IGFkb3B0UHRyKG5ldyBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcih0aGlzKSkgOiBQYXNz
T3duUHRyPE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyPigpKQotI2VuZGlmCiB7CiAgICAgQVNT
RVJUKHBhZ2UpOwogICAgIEF0b21pY1N0cmluZzo6aW5pdCgpOwpAQCAtMjI1LDExICsyMjEsNiBA
QCBGcmFtZTo6fkZyYW1lKCkKICAgICBpZiAobV9kb21XaW5kb3cpCiAgICAgICAgIG1fZG9tV2lu
ZG93LT5kaXNjb25uZWN0RnJhbWUoKTsKIAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAg
aWYgKG1fbWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIpCi0gICAgICAgIG1fbWVkaWFTdHJlYW1G
cmFtZUNvbnRyb2xsZXItPmRpc2Nvbm5lY3RGcmFtZSgpOwotI2VuZGlmCi0KICAgICBIYXNoU2V0
PERPTVdpbmRvdyo+OjppdGVyYXRvciBlbmQgPSBtX2xpdmVGb3JtZXJXaW5kb3dzLmVuZCgpOwog
ICAgIGZvciAoSGFzaFNldDxET01XaW5kb3cqPjo6aXRlcmF0b3IgaXQgPSBtX2xpdmVGb3JtZXJX
aW5kb3dzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKICAgICAgICAgKCppdCktPmRpc2Nvbm5l
Y3RGcmFtZSgpOwpAQCAtNjk3LDExICs2ODgsNiBAQCB2b2lkIEZyYW1lOjpwYWdlRGVzdHJveWVk
KCkKICAgICAgICAgbV9kb21XaW5kb3ctPnBhZ2VEZXN0cm95ZWQoKTsKICAgICB9CiAKLSNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQotICAgIGlmIChtX21lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVy
KQotICAgICAgICBtX21lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyLT5kaXNjb25uZWN0UGFnZSgp
OwotI2VuZGlmCi0KICAgICAvLyBGSVhNRTogSXQncyB1bmNsZWFyIGFzIHRvIHdoeSB0aGlzIGlz
IGNhbGxlZCBtb3JlIHRoYW4gb25jZSwgYnV0IGl0IGlzLAogICAgIC8vIHNvIHBhZ2UoKSBjb3Vs
ZCBiZSBOVUxMLgogICAgIGlmIChwYWdlKCkgJiYgcGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS0+
Zm9jdXNlZEZyYW1lKCkgPT0gdGhpcykKQEAgLTc1MSwxMCArNzM3LDYgQEAgdm9pZCBGcmFtZTo6
dHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudCgpCiAgICAgICAgIGlmIChtX2RvbVdpbmRv
dykKICAgICAgICAgICAgIG1fZG9tV2luZG93LT5yZXNldEdlb2xvY2F0aW9uKCk7CiAKLSNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQotICAgICAgICBpZiAobV9tZWRpYVN0cmVhbUZyYW1lQ29udHJv
bGxlcikKLSAgICAgICAgICAgIG1fbWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXItPnRyYW5zZmVy
VG9OZXdQYWdlKG5ld1BhZ2UpOwotI2VuZGlmCiAgICAgICAgIG1fcGFnZSA9IG5ld1BhZ2U7CiAK
ICAgICAgICAgaWYgKG5ld1BhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKaW5kZXggODA0MTRhOC4uMmQwM2E5
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuaApAQCAtNjUsNyArNjUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgY2xhc3MgRG9jdW1lbnQ7CiAgICAgY2xhc3MgRnJhbWVWaWV3OwogICAgIGNsYXNzIEhU
TUxUYWJsZUNlbGxFbGVtZW50OwotICAgIGNsYXNzIE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVy
OwogICAgIGNsYXNzIFJlZ3VsYXJFeHByZXNzaW9uOwogICAgIGNsYXNzIFJlbmRlclBhcnQ7CiAg
ICAgY2xhc3MgVGlsZWRCYWNraW5nU3RvcmU7CkBAIC0yMDMsMTAgKzIwMiw2IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgTlNJbWFnZSogaW1hZ2VGcm9tUmVjdChOU1JlY3QpIGNvbnN0
OwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgICAgICBNZWRpYVN0cmVh
bUZyYW1lQ29udHJvbGxlciogbWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIoKSBjb25zdCB7IHJl
dHVybiBtX21lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyLmdldCgpOyB9Ci0jZW5kaWYKLSAgICAg
ICAgCiAgICAgICAgIC8vIFNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbiB0aGUgbWFpbiBmcmFtZSBv
ZiBhIHBhZ2UuCiAgICAgICAgIHZvaWQgbm90aWZ5Q2hyb21lQ2xpZW50V2hlZWxFdmVudEhhbmRs
ZXJDb3VudENoYW5nZWQoKSBjb25zdDsKIApAQCAtMjY4LDkgKzI2Myw2IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgT3duUHRyPFRpbGVkQmFja2luZ1N0b3JlPiBtX3RpbGVkQmFja2lu
Z1N0b3JlOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgICAgICBPd25Q
dHI8TWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXI+IG1fbWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xs
ZXI7Ci0jZW5kaWYKICAgICB9OwogCiAgICAgaW5saW5lIHZvaWQgRnJhbWU6OmluaXQoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVN0cmVhbUNsaWVudC5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9NZWRpYVN0cmVhbUNsaWVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA3YWMyZjA3Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFT
dHJlYW1DbGllbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDY5ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAot
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
Ci0gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLSAqIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpZm5kZWYgTWVkaWFTdHJlYW1DbGllbnRfaAotI2RlZmluZSBNZWRpYVN0cmVhbUNsaWVu
dF9oCi0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBTZWN1cml0eU9yaWdpbjsKLQotZW51
bSBHZW5lcmF0ZVN0cmVhbU9wdGlvbkZsYWcgewotICAgIEdlbmVyYXRlU3RyZWFtUmVxdWVzdEF1
ZGlvID0gMSwKLSAgICBHZW5lcmF0ZVN0cmVhbVJlcXVlc3RWaWRlb0ZhY2luZ1VzZXIgPSAxIDw8
IDEsCi0gICAgR2VuZXJhdGVTdHJlYW1SZXF1ZXN0VmlkZW9GYWNpbmdFbnZpcm9ubWVudCA9IDEg
PDwgMiwKLX07Ci0KLXR5cGVkZWYgdW5zaWduZWQgR2VuZXJhdGVTdHJlYW1PcHRpb25GbGFnczsK
LQotY2xhc3MgTWVkaWFTdHJlYW1DbGllbnQgewotcHVibGljOgotICAgIC8vIE1lZGlhU3RyZWFt
IGZ1bmN0aW9ucy4KLSAgICB2aXJ0dWFsIHZvaWQgbWVkaWFTdHJlYW1EZXN0cm95ZWQoKSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIGdlbmVyYXRlU3RyZWFtKGludCByZXF1ZXN0SWQsIEdlbmVyYXRl
U3RyZWFtT3B0aW9uRmxhZ3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+KSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHN0b3BHZW5lcmF0ZWRTdHJlYW0oY29uc3QgU3RyaW5nJiBzdHJlYW1MYWJl
bCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXRNZWRpYVN0cmVhbVRyYWNrRW5hYmxlZChjb25z
dCBTdHJpbmcmIHRyYWNrSWQsIGJvb2wgZW5hYmxlZCkgPSAwOwotCi0gICAgLy8gUGVlckNvbm5l
Y3Rpb24gZnVuY3Rpb25zLgotICAgIHZpcnR1YWwgdm9pZCBuZXdQZWVyQ29ubmVjdGlvbihpbnQg
cGVlckNvbm5lY3Rpb25JZCwgY29uc3QgU3RyaW5nJiBjb25maWd1cmF0aW9uKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHN0YXJ0TmVnb3RpYXRpb24oaW50IHBlZXJDb25uZWN0aW9uSWQpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc1NpZ25hbGluZ01lc3NhZ2UoaW50IHBlZXJDb25uZWN0
aW9uSWQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBtZXNz
YWdlKGludCBwZWVyQ29ubmVjdGlvbklkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgYWRkU3RyZWFtKGludCBwZWVyQ29ubmVjdGlvbklkLCBjb25zdCBTdHJp
bmcmIHN0cmVhbUxhYmVsKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZVN0cmVhbShpbnQg
cGVlckNvbm5lY3Rpb25JZCwgY29uc3QgU3RyaW5nJiBzdHJlYW1MYWJlbCkgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCBjbG9zZVBlZXJDb25uZWN0aW9uKGludCBwZWVyQ29ubmVjdGlvbklkKSA9IDA7
Ci0KLXByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIH5NZWRpYVN0cmVhbUNsaWVudCgpIHsgfQotfTsK
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVB
TSkKLQotI2VuZGlmIC8vIE1lZGlhU3RyZWFtQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvTWVkaWFTdHJlYW1Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvTWVkaWFTdHJlYW1Db250cm9sbGVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNWY2MDRlYy4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlhU3RyZWFt
Q29udHJvbGxlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyODYgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
Ci0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtQ29udHJvbGxl
ci5oIgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIk1lZGlhU3RyZWFt
RnJhbWVDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja0xpc3QuaCIKLSNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi0vLyBGSVhNRTogVGhpcyBpcyB1c2VkIGZvciBob2xkaW5nIGxp
c3Qgb2YgUGVlckNvbm5lY3Rpb24gYXMgd2VsbCwKLS8vIHNvIHJlbmFtZSBjbGFzcyBpcyBpbiBv
cmRlci4KLWNsYXNzIE1lZGlhU3RyZWFtQ29udHJvbGxlcjo6UmVxdWVzdCB7Ci1wdWJsaWM6Ci0g
ICAgUmVxdWVzdCgpCi0gICAgICAgIDogbV9sb2NhbElkKDApCi0gICAgICAgICwgbV9mcmFtZUNv
bnRyb2xsZXIoMCkgeyB9Ci0KLSAgICBSZXF1ZXN0KGludCBsb2NhbElkLCBNZWRpYVN0cmVhbUZy
YW1lQ29udHJvbGxlciogZnJhbWVDb250cm9sbGVyKQotICAgICAgICA6IG1fbG9jYWxJZChsb2Nh
bElkKQotICAgICAgICAsIG1fZnJhbWVDb250cm9sbGVyKGZyYW1lQ29udHJvbGxlcikgeyB9Ci0K
LSAgICBpbnQgbG9jYWxJZCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxJZDsgfQotICAgIE1lZGlh
U3RyZWFtRnJhbWVDb250cm9sbGVyKiBmcmFtZUNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBt
X2ZyYW1lQ29udHJvbGxlcjsgfQotCi1wcml2YXRlOgotICAgIGludCBtX2xvY2FsSWQ7Ci0gICAg
TWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIqIG1fZnJhbWVDb250cm9sbGVyOwotfTsKLQotTWVk
aWFTdHJlYW1Db250cm9sbGVyOjpNZWRpYVN0cmVhbUNvbnRyb2xsZXIoTWVkaWFTdHJlYW1DbGll
bnQqIGNsaWVudCkKLSAgICA6IG1fY2xpZW50KGNsaWVudCkKLSAgICAsIG1fbmV4dEdsb2JhbFJl
cXVlc3RJZCgxKQotICAgICwgbV9uZXh0R2xvYmFsUGVlckNvbm5lY3Rpb25JZCgxKQotewotfQot
Ci1NZWRpYVN0cmVhbUNvbnRyb2xsZXI6On5NZWRpYVN0cmVhbUNvbnRyb2xsZXIoKQotewotICAg
IGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPm1lZGlhU3RyZWFtRGVzdHJveWVkKCk7
Ci19Ci0KLWJvb2wgTWVkaWFTdHJlYW1Db250cm9sbGVyOjppc0NsaWVudEF2YWlsYWJsZSgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIG1fY2xpZW50OwotfQotCi12b2lkIE1lZGlhU3RyZWFtQ29udHJv
bGxlcjo6dW5yZWdpc3RlckZyYW1lQ29udHJvbGxlcihNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxl
ciogZnJhbWVDb250cm9sbGVyKQotewotICAgIEFTU0VSVChmcmFtZUNvbnRyb2xsZXIpOwotCi0g
ICAgLy8gRG9uZSBpbiB0d28gc3RlcHMgdG8gYXZvaWQgcHJvYmxlbXMgYWJvdXQgaXRlcmF0b3Jz
IGJlaW5nIGludmFsaWRhdGVkIHdoaWxlIHJlbW92aW5nLgotICAgIFZlY3RvcjxpbnQ+IGZyYW1l
UmVxdWVzdHM7Ci0gICAgZm9yIChSZXF1ZXN0TWFwOjppdGVyYXRvciBpdCA9IG1fcmVxdWVzdHMu
YmVnaW4oKTsgaXQgIT0gbV9yZXF1ZXN0cy5lbmQoKTsgKytpdCkKLSAgICAgICAgaWYgKGl0LT5z
ZWNvbmQuZnJhbWVDb250cm9sbGVyKCkgPT0gZnJhbWVDb250cm9sbGVyKQotICAgICAgICAgICAg
ZnJhbWVSZXF1ZXN0cy5hcHBlbmQoaXQtPmZpcnN0KTsKLQotICAgIGZvciAoVmVjdG9yPGludD46
Oml0ZXJhdG9yIGl0ID0gZnJhbWVSZXF1ZXN0cy5iZWdpbigpOyBpdCAhPSBmcmFtZVJlcXVlc3Rz
LmVuZCgpOyArK2l0KQotICAgICAgICBtX3JlcXVlc3RzLnJlbW92ZSgqaXQpOwotCi0gICAgVmVj
dG9yPFN0cmluZz4gZnJhbWVTdHJlYW1zOwotICAgIGZvciAoU3RyZWFtTWFwOjppdGVyYXRvciBp
dCA9IG1fc3RyZWFtcy5iZWdpbigpOyBpdCAhPSBtX3N0cmVhbXMuZW5kKCk7ICsraXQpCi0gICAg
ICAgIGlmIChpdC0+c2Vjb25kID09IGZyYW1lQ29udHJvbGxlcikKLSAgICAgICAgICAgIGZyYW1l
U3RyZWFtcy5hcHBlbmQoaXQtPmZpcnN0KTsKLQotICAgIGZvciAoVmVjdG9yPFN0cmluZz46Oml0
ZXJhdG9yIGl0ID0gZnJhbWVTdHJlYW1zLmJlZ2luKCk7IGl0ICE9IGZyYW1lU3RyZWFtcy5lbmQo
KTsgKytpdCkKLSAgICAgICAgbV9zdHJlYW1zLnJlbW92ZSgqaXQpOwotCi0gICAgLy8gRklYTUU6
IEFkZCB1bnJlZ2lzdGVyIGZ1bmN0aW9uYWxpdHkgZm9yIHBlZXIgY29ubmVjdGlvbiBvYmplY3Rz
LgotfQotCi1pbnQgTWVkaWFTdHJlYW1Db250cm9sbGVyOjpyZWdpc3RlclJlcXVlc3QoaW50IGxv
Y2FsSWQsIE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKiBmcmFtZUNvbnRyb2xsZXIpCi17Ci0g
ICAgQVNTRVJUKGxvY2FsSWQgPiAwKTsKLSAgICBBU1NFUlQoZnJhbWVDb250cm9sbGVyKTsKLSAg
ICBtX3JlcXVlc3RzLmFkZChtX25leHRHbG9iYWxSZXF1ZXN0SWQsIFJlcXVlc3QobG9jYWxJZCwg
ZnJhbWVDb250cm9sbGVyKSk7Ci0gICAgcmV0dXJuIG1fbmV4dEdsb2JhbFJlcXVlc3RJZCsrOwot
fQotCi12b2lkIE1lZGlhU3RyZWFtQ29udHJvbGxlcjo6cmVnaXN0ZXJTdHJlYW0oY29uc3QgU3Ry
aW5nJiBzdHJlYW1MYWJlbCwgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIqIGZyYW1lQ29udHJv
bGxlcikKLXsKLSAgICBBU1NFUlQoZnJhbWVDb250cm9sbGVyKTsKLSAgICBBU1NFUlQoIW1fc3Ry
ZWFtcy5jb250YWlucyhzdHJlYW1MYWJlbCkpOwotICAgIG1fc3RyZWFtcy5hZGQoc3RyZWFtTGFi
ZWwsIGZyYW1lQ29udHJvbGxlcik7Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1Db250cm9sbGVyOjpn
ZW5lcmF0ZVN0cmVhbShNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlciogZnJhbWVDb250cm9sbGVy
LCBpbnQgbG9jYWxJZCwgR2VuZXJhdGVTdHJlYW1PcHRpb25GbGFncyBmbGFncywgUGFzc1JlZlB0
cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4pCi17Ci0gICAgQVNTRVJUKG1fY2xpZW50
KTsKLSAgICBpbnQgY29udHJvbGxlclJlcXVlc3RJZCA9IHJlZ2lzdGVyUmVxdWVzdChsb2NhbElk
LCBmcmFtZUNvbnRyb2xsZXIpOwotICAgIG1fY2xpZW50LT5nZW5lcmF0ZVN0cmVhbShjb250cm9s
bGVyUmVxdWVzdElkLCBmbGFncywgc2VjdXJpdHlPcmlnaW4pOwotfQotCi12b2lkIE1lZGlhU3Ry
ZWFtQ29udHJvbGxlcjo6c3RvcEdlbmVyYXRlZFN0cmVhbShjb25zdCBTdHJpbmcmIHN0cmVhbUxh
YmVsKQotewotICAgIG1fY2xpZW50LT5zdG9wR2VuZXJhdGVkU3RyZWFtKHN0cmVhbUxhYmVsKTsK
LX0KLQotdm9pZCBNZWRpYVN0cmVhbUNvbnRyb2xsZXI6OnNldE1lZGlhU3RyZWFtVHJhY2tFbmFi
bGVkKGNvbnN0IFN0cmluZyYgdHJhY2tJZCwgYm9vbCBlbmFibGVkKQotewotICAgIG1fY2xpZW50
LT5zZXRNZWRpYVN0cmVhbVRyYWNrRW5hYmxlZCh0cmFja0lkLCBlbmFibGVkKTsKLX0KLQotdm9p
ZCBNZWRpYVN0cmVhbUNvbnRyb2xsZXI6OnN0cmVhbUdlbmVyYXRlZChpbnQgY29udHJvbGxlclJl
cXVlc3RJZCwgY29uc3QgU3RyaW5nJiBzdHJlYW1MYWJlbCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVh
bVRyYWNrTGlzdD4gdHJhY2tzKQotewotICAgIC8vIERvbid0IGFzc2VydCBzaW5jZSB0aGUgZnJh
bWUgY29udHJvbGxlciBjYW4gaGF2ZSBiZWVuIGRlc3Ryb3llZCB3aGlsZSB0aGUgcmVxdWVzdCBy
ZXBseSB3YXMgY29taW5nIGJhY2suCi0gICAgaWYgKG1fcmVxdWVzdHMuY29udGFpbnMoY29udHJv
bGxlclJlcXVlc3RJZCkpIHsKLSAgICAgICAgY29uc3QgUmVxdWVzdCYgcmVxdWVzdCA9IG1fcmVx
dWVzdHMuZ2V0KGNvbnRyb2xsZXJSZXF1ZXN0SWQpOwotICAgICAgICByZWdpc3RlclN0cmVhbShz
dHJlYW1MYWJlbCwgcmVxdWVzdC5mcmFtZUNvbnRyb2xsZXIoKSk7Ci0gICAgICAgIG1fcmVxdWVz
dHMucmVtb3ZlKGNvbnRyb2xsZXJSZXF1ZXN0SWQpOwotICAgICAgICBBU1NFUlQocmVxdWVzdC5m
cmFtZUNvbnRyb2xsZXIoKSk7Ci0gICAgICAgIHJlcXVlc3QuZnJhbWVDb250cm9sbGVyKCktPnN0
cmVhbUdlbmVyYXRlZChyZXF1ZXN0LmxvY2FsSWQoKSwgc3RyZWFtTGFiZWwsIHRyYWNrcyk7Ci0g
ICAgfQotfQotCi12b2lkIE1lZGlhU3RyZWFtQ29udHJvbGxlcjo6c3RyZWFtR2VuZXJhdGlvbkZh
aWxlZChpbnQgY29udHJvbGxlclJlcXVlc3RJZCwgTmF2aWdhdG9yVXNlck1lZGlhRXJyb3I6OkVy
cm9yQ29kZSBjb2RlKQotewotICAgIC8vIERvbid0IGFzc2VydCBzaW5jZSB0aGUgZnJhbWUgY29u
dHJvbGxlciBjYW4gaGF2ZSBiZWVuIGRlc3Ryb3llZCB3aGlsZSB0aGUgcmVxdWVzdCByZXBseSB3
YXMgY29taW5nIGJhY2suCi0gICAgaWYgKG1fcmVxdWVzdHMuY29udGFpbnMoY29udHJvbGxlclJl
cXVlc3RJZCkpIHsKLSAgICAgICAgY29uc3QgUmVxdWVzdCYgcmVxdWVzdCA9IG1fcmVxdWVzdHMu
Z2V0KGNvbnRyb2xsZXJSZXF1ZXN0SWQpOwotICAgICAgICBtX3JlcXVlc3RzLnJlbW92ZShjb250
cm9sbGVyUmVxdWVzdElkKTsKLSAgICAgICAgcmVxdWVzdC5mcmFtZUNvbnRyb2xsZXIoKS0+c3Ry
ZWFtR2VuZXJhdGlvbkZhaWxlZChyZXF1ZXN0LmxvY2FsSWQoKSwgY29kZSk7Ci0gICAgfQotfQot
Ci12b2lkIE1lZGlhU3RyZWFtQ29udHJvbGxlcjo6c3RyZWFtRmFpbGVkKGNvbnN0IFN0cmluZyYg
c3RyZWFtTGFiZWwpCi17Ci0gICAgLy8gRG9uJ3QgYXNzZXJ0IHNpbmNlIHRoZSBmcmFtZSBjb250
cm9sbGVyIGNhbiBoYXZlIGJlZW4gZGVzdHJveWVkIGJ5IHRoZSB0aW1lIHRoaXMgaXMgY2FsbGVk
LgotICAgIGlmIChtX3N0cmVhbXMuY29udGFpbnMoc3RyZWFtTGFiZWwpKQotICAgICAgICBtX3N0
cmVhbXMuZ2V0KHN0cmVhbUxhYmVsKS0+c3RyZWFtRmFpbGVkKHN0cmVhbUxhYmVsKTsKLX0KLQot
dm9pZCBNZWRpYVN0cmVhbUNvbnRyb2xsZXI6Om9uU2lnbmFsaW5nTWVzc2FnZShpbnQgY29udHJv
bGxlclBlZXJDb25uZWN0aW9uSWQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKLXsKLSAgICAvLyBE
b24ndCBhc3NlcnQgc2luY2UgdGhlIGZyYW1lIGNvbnRyb2xsZXIgY2FuIGhhdmUgYmVlbiBkZXN0
cm95ZWQuCi0gICAgaWYgKG1fcGVlckNvbm5lY3Rpb25zLmNvbnRhaW5zKGNvbnRyb2xsZXJQZWVy
Q29ubmVjdGlvbklkKSkgewotICAgICAgICBjb25zdCBSZXF1ZXN0JiBwZWVyQ29ubmVjdGlvbiA9
IG1fcGVlckNvbm5lY3Rpb25zLmdldChjb250cm9sbGVyUGVlckNvbm5lY3Rpb25JZCk7Ci0gICAg
ICAgIEFTU0VSVChwZWVyQ29ubmVjdGlvbi5mcmFtZUNvbnRyb2xsZXIoKSk7Ci0gICAgICAgIHBl
ZXJDb25uZWN0aW9uLmZyYW1lQ29udHJvbGxlcigpLT5vblNpZ25hbGluZ01lc3NhZ2UocGVlckNv
bm5lY3Rpb24ubG9jYWxJZCgpLCBtZXNzYWdlKTsKLSAgICB9Ci19Ci0KLWJvb2wgTWVkaWFTdHJl
YW1Db250cm9sbGVyOjpmcmFtZVRvUGFnZVBlZXJDb25uZWN0aW9uSWQoTWVkaWFTdHJlYW1GcmFt
ZUNvbnRyb2xsZXIqIGZyYW1lQ29udHJvbGxlciwgaW50IGZyYW1lUGVlckNvbm5lY3Rpb25JZCwg
aW50JiBwYWdlUGVlckNvbm5lY3Rpb25JZCkKLXsKLSAgICBwYWdlUGVlckNvbm5lY3Rpb25JZCA9
IC0xOwotICAgIC8vIEZJWE1FOiBJcyB0aGVyZSBhIGJldHRlciB3YXkgdG8gZmluZCB0aGUgZ2xv
YmFsIElEIGluIHRoZSBtYXA/Ci0gICAgZm9yIChSZXF1ZXN0TWFwOjppdGVyYXRvciBpdCA9IG1f
cGVlckNvbm5lY3Rpb25zLmJlZ2luKCk7IGl0ICE9IG1fcGVlckNvbm5lY3Rpb25zLmVuZCgpOyAr
K2l0KSB7Ci0gICAgICAgIGlmIChpdC0+c2Vjb25kLmZyYW1lQ29udHJvbGxlcigpID09IGZyYW1l
Q29udHJvbGxlciAmJiBpdC0+c2Vjb25kLmxvY2FsSWQoKSA9PSBmcmFtZVBlZXJDb25uZWN0aW9u
SWQpIHsKLSAgICAgICAgICAgIHBhZ2VQZWVyQ29ubmVjdGlvbklkID0gaXQtPmZpcnN0OwotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNl
OwotfQotCi12b2lkIE1lZGlhU3RyZWFtQ29udHJvbGxlcjo6cHJvY2Vzc1NpZ25hbGluZ01lc3Nh
Z2UoTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIqIGZyYW1lQ29udHJvbGxlciwgaW50IGZyYW1l
UGVlckNvbm5lY3Rpb25JZCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQotewotICAgIGludCBwYWdl
UGVlckNvbm5lY3Rpb25JZDsKLSAgICBpZiAoZnJhbWVUb1BhZ2VQZWVyQ29ubmVjdGlvbklkKGZy
YW1lQ29udHJvbGxlciwgZnJhbWVQZWVyQ29ubmVjdGlvbklkLCBwYWdlUGVlckNvbm5lY3Rpb25J
ZCkpCi0gICAgICAgIG1fY2xpZW50LT5wcm9jZXNzU2lnbmFsaW5nTWVzc2FnZShwYWdlUGVlckNv
bm5lY3Rpb25JZCwgbWVzc2FnZSk7Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1Db250cm9sbGVyOjpt
ZXNzYWdlKE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKiBmcmFtZUNvbnRyb2xsZXIsIGludCBm
cmFtZVBlZXJDb25uZWN0aW9uSWQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKLXsKLSAgICBpbnQg
cGFnZVBlZXJDb25uZWN0aW9uSWQ7Ci0gICAgaWYgKGZyYW1lVG9QYWdlUGVlckNvbm5lY3Rpb25J
ZChmcmFtZUNvbnRyb2xsZXIsIGZyYW1lUGVlckNvbm5lY3Rpb25JZCwgcGFnZVBlZXJDb25uZWN0
aW9uSWQpKQotICAgICAgICBtX2NsaWVudC0+bWVzc2FnZShwYWdlUGVlckNvbm5lY3Rpb25JZCwg
bWVzc2FnZSk7Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1Db250cm9sbGVyOjpvbk1lc3NhZ2UoaW50
IGNvbnRyb2xsZXJQZWVyQ29ubmVjdGlvbklkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCi17Ci0g
ICAgLy8gRG9uJ3QgYXNzZXJ0IHNpbmNlIHRoZSBmcmFtZSBjb250cm9sbGVyIGNhbiBoYXZlIGJl
ZW4gZGVzdHJveWVkCi0gICAgaWYgKG1fcGVlckNvbm5lY3Rpb25zLmNvbnRhaW5zKGNvbnRyb2xs
ZXJQZWVyQ29ubmVjdGlvbklkKSkgewotICAgICAgICBjb25zdCBSZXF1ZXN0JiBwZWVyQ29ubmVj
dGlvbiA9IG1fcGVlckNvbm5lY3Rpb25zLmdldChjb250cm9sbGVyUGVlckNvbm5lY3Rpb25JZCk7
Ci0gICAgICAgIEFTU0VSVChwZWVyQ29ubmVjdGlvbi5mcmFtZUNvbnRyb2xsZXIoKSk7Ci0gICAg
ICAgIHBlZXJDb25uZWN0aW9uLmZyYW1lQ29udHJvbGxlcigpLT5vbk1lc3NhZ2UocGVlckNvbm5l
Y3Rpb24ubG9jYWxJZCgpLCBtZXNzYWdlKTsKLSAgICB9Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1D
b250cm9sbGVyOjphZGRTdHJlYW0oTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIqIGZyYW1lQ29u
dHJvbGxlciwgaW50IGZyYW1lUGVlckNvbm5lY3Rpb25JZCwgY29uc3QgU3RyaW5nJiBzdHJlYW1M
YWJlbCkKLXsKLSAgICBpbnQgcGFnZVBlZXJDb25uZWN0aW9uSWQ7Ci0gICAgaWYgKGZyYW1lVG9Q
YWdlUGVlckNvbm5lY3Rpb25JZChmcmFtZUNvbnRyb2xsZXIsIGZyYW1lUGVlckNvbm5lY3Rpb25J
ZCwgcGFnZVBlZXJDb25uZWN0aW9uSWQpKQotICAgICAgICBtX2NsaWVudC0+YWRkU3RyZWFtKHBh
Z2VQZWVyQ29ubmVjdGlvbklkLCBzdHJlYW1MYWJlbCk7Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1D
b250cm9sbGVyOjpvbkFkZFN0cmVhbShpbnQgY29udHJvbGxlclBlZXJDb25uZWN0aW9uSWQsIGNv
bnN0IFN0cmluZyYgc3RyZWFtTGFiZWwsIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja0xpc3Q+
IHRyYWNrcykKLXsKLSAgICAvLyBEb24ndCBhc3NlcnQgc2luY2UgdGhlIGZyYW1lIGNvbnRyb2xs
ZXIgY2FuIGhhdmUgYmVlbiBkZXN0cm95ZWQKLSAgICBpZiAobV9wZWVyQ29ubmVjdGlvbnMuY29u
dGFpbnMoY29udHJvbGxlclBlZXJDb25uZWN0aW9uSWQpKSB7Ci0gICAgICAgIGNvbnN0IFJlcXVl
c3QmIHBlZXJDb25uZWN0aW9uID0gbV9wZWVyQ29ubmVjdGlvbnMuZ2V0KGNvbnRyb2xsZXJQZWVy
Q29ubmVjdGlvbklkKTsKLSAgICAgICAgQVNTRVJUKHBlZXJDb25uZWN0aW9uLmZyYW1lQ29udHJv
bGxlcigpKTsKLSAgICAgICAgcGVlckNvbm5lY3Rpb24uZnJhbWVDb250cm9sbGVyKCktPm9uQWRk
U3RyZWFtKHBlZXJDb25uZWN0aW9uLmxvY2FsSWQoKSwgc3RyZWFtTGFiZWwsIHRyYWNrcyk7Ci0g
ICAgfQotfQotCi12b2lkIE1lZGlhU3RyZWFtQ29udHJvbGxlcjo6cmVtb3ZlU3RyZWFtKE1lZGlh
U3RyZWFtRnJhbWVDb250cm9sbGVyKiBmcmFtZUNvbnRyb2xsZXIsIGludCBmcmFtZVBlZXJDb25u
ZWN0aW9uSWQsIGNvbnN0IFN0cmluZyYgc3RyZWFtTGFiZWwpCi17Ci0gICAgaW50IHBhZ2VQZWVy
Q29ubmVjdGlvbklkOwotICAgIGlmIChmcmFtZVRvUGFnZVBlZXJDb25uZWN0aW9uSWQoZnJhbWVD
b250cm9sbGVyLCBmcmFtZVBlZXJDb25uZWN0aW9uSWQsIHBhZ2VQZWVyQ29ubmVjdGlvbklkKSkK
LSAgICAgICAgbV9jbGllbnQtPnJlbW92ZVN0cmVhbShwYWdlUGVlckNvbm5lY3Rpb25JZCwgc3Ry
ZWFtTGFiZWwpOwotfQotCi12b2lkIE1lZGlhU3RyZWFtQ29udHJvbGxlcjo6b25SZW1vdmVTdHJl
YW0oaW50IGNvbnRyb2xsZXJQZWVyQ29ubmVjdGlvbklkLCBjb25zdCBTdHJpbmcmIHN0cmVhbUxh
YmVsKQotewotICAgIC8vIERvbid0IGFzc2VydCBzaW5jZSB0aGUgZnJhbWUgY29udHJvbGxlciBj
YW4gaGF2ZSBiZWVuIGRlc3Ryb3llZAotICAgIGlmIChtX3BlZXJDb25uZWN0aW9ucy5jb250YWlu
cyhjb250cm9sbGVyUGVlckNvbm5lY3Rpb25JZCkpIHsKLSAgICAgICAgLy8gVE9ETzogQmV0dGVy
IG5hbWUgb2YgcGVlckNvbm5lY3Rpb24gdmFyaWFibGU/Ci0gICAgICAgIGNvbnN0IFJlcXVlc3Qm
IHBlZXJDb25uZWN0aW9uID0gbV9wZWVyQ29ubmVjdGlvbnMuZ2V0KGNvbnRyb2xsZXJQZWVyQ29u
bmVjdGlvbklkKTsKLSAgICAgICAgQVNTRVJUKHBlZXJDb25uZWN0aW9uLmZyYW1lQ29udHJvbGxl
cigpKTsKLSAgICAgICAgcGVlckNvbm5lY3Rpb24uZnJhbWVDb250cm9sbGVyKCktPm9uUmVtb3Zl
U3RyZWFtKHBlZXJDb25uZWN0aW9uLmxvY2FsSWQoKSwgc3RyZWFtTGFiZWwpOwotICAgIH0KLX0K
LQotdm9pZCBNZWRpYVN0cmVhbUNvbnRyb2xsZXI6Om5ld1BlZXJDb25uZWN0aW9uKE1lZGlhU3Ry
ZWFtRnJhbWVDb250cm9sbGVyKiBmcmFtZUNvbnRyb2xsZXIsIGludCBmcmFtZVBlZXJDb25uZWN0
aW9uSWQsIGNvbnN0IFN0cmluZyYgY29uZmlndXJhdGlvbikKLXsKLSAgICBpbnQgcGFnZVBlZXJD
b25uZWN0aW9uSWQgPSBtX25leHRHbG9iYWxQZWVyQ29ubmVjdGlvbklkKys7Ci0gICAgbV9wZWVy
Q29ubmVjdGlvbnMuYWRkKHBhZ2VQZWVyQ29ubmVjdGlvbklkLCBSZXF1ZXN0KGZyYW1lUGVlckNv
bm5lY3Rpb25JZCwgZnJhbWVDb250cm9sbGVyKSk7Ci0KLSAgICBtX2NsaWVudC0+bmV3UGVlckNv
bm5lY3Rpb24ocGFnZVBlZXJDb25uZWN0aW9uSWQsIGNvbmZpZ3VyYXRpb24pOwotfQotCi12b2lk
IE1lZGlhU3RyZWFtQ29udHJvbGxlcjo6Y2xvc2VQZWVyQ29ubmVjdGlvbihNZWRpYVN0cmVhbUZy
YW1lQ29udHJvbGxlciogZnJhbWVDb250cm9sbGVyLCBpbnQgZnJhbWVQZWVyQ29ubmVjdGlvbklk
KQotewotICAgIGludCBwYWdlUGVlckNvbm5lY3Rpb25JZDsKLSAgICBpZiAoZnJhbWVUb1BhZ2VQ
ZWVyQ29ubmVjdGlvbklkKGZyYW1lQ29udHJvbGxlciwgZnJhbWVQZWVyQ29ubmVjdGlvbklkLCBw
YWdlUGVlckNvbm5lY3Rpb25JZCkpCi0gICAgICAgIG1fY2xpZW50LT5jbG9zZVBlZXJDb25uZWN0
aW9uKHBhZ2VQZWVyQ29ubmVjdGlvbklkKTsKLX0KLQotdm9pZCBNZWRpYVN0cmVhbUNvbnRyb2xs
ZXI6OnN0YXJ0TmVnb3RpYXRpb24oTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIqIGZyYW1lQ29u
dHJvbGxlciwgaW50IGZyYW1lUGVlckNvbm5lY3Rpb25JZCkKLXsKLSAgICBpbnQgcGFnZVBlZXJD
b25uZWN0aW9uSWQ7Ci0gICAgaWYgKGZyYW1lVG9QYWdlUGVlckNvbm5lY3Rpb25JZChmcmFtZUNv
bnRyb2xsZXIsIGZyYW1lUGVlckNvbm5lY3Rpb25JZCwgcGFnZVBlZXJDb25uZWN0aW9uSWQpKQot
ICAgICAgICBtX2NsaWVudC0+c3RhcnROZWdvdGlhdGlvbihwYWdlUGVlckNvbm5lY3Rpb25JZCk7
Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1Db250cm9sbGVyOjpvbk5lZ290aWF0aW9uU3RhcnRlZChp
bnQgY29udHJvbGxlclBlZXJDb25uZWN0aW9uSWQpCi17Ci0gICAgLy8gRG9uJ3QgYXNzZXJ0IHNp
bmNlIHRoZSBmcmFtZSBjb250cm9sbGVyIGNhbiBoYXZlIGJlZW4gZGVzdHJveWVkCi0gICAgaWYg
KG1fcGVlckNvbm5lY3Rpb25zLmNvbnRhaW5zKGNvbnRyb2xsZXJQZWVyQ29ubmVjdGlvbklkKSkg
ewotICAgICAgICBjb25zdCBSZXF1ZXN0JiBwZWVyQ29ubmVjdGlvbiA9IG1fcGVlckNvbm5lY3Rp
b25zLmdldChjb250cm9sbGVyUGVlckNvbm5lY3Rpb25JZCk7Ci0gICAgICAgIEFTU0VSVChwZWVy
Q29ubmVjdGlvbi5mcmFtZUNvbnRyb2xsZXIoKSk7Ci0gICAgICAgIHBlZXJDb25uZWN0aW9uLmZy
YW1lQ29udHJvbGxlcigpLT5vbk5lZ290aWF0aW9uU3RhcnRlZChwZWVyQ29ubmVjdGlvbi5sb2Nh
bElkKCkpOwotICAgIH0KLX0KLQotdm9pZCBNZWRpYVN0cmVhbUNvbnRyb2xsZXI6Om9uTmVnb3Rp
YXRpb25Eb25lKGludCBjb250cm9sbGVyUGVlckNvbm5lY3Rpb25JZCkKLXsKLSAgICAvLyBEb24n
dCBhc3NlcnQgc2luY2UgdGhlIGZyYW1lIGNvbnRyb2xsZXIgY2FuIGhhdmUgYmVlbiBkZXN0cm95
ZWQKLSAgICBpZiAobV9wZWVyQ29ubmVjdGlvbnMuY29udGFpbnMoY29udHJvbGxlclBlZXJDb25u
ZWN0aW9uSWQpKSB7Ci0gICAgICAgIGNvbnN0IFJlcXVlc3QmIHBlZXJDb25uZWN0aW9uID0gbV9w
ZWVyQ29ubmVjdGlvbnMuZ2V0KGNvbnRyb2xsZXJQZWVyQ29ubmVjdGlvbklkKTsKLSAgICAgICAg
QVNTRVJUKHBlZXJDb25uZWN0aW9uLmZyYW1lQ29udHJvbGxlcigpKTsKLSAgICAgICAgcGVlckNv
bm5lY3Rpb24uZnJhbWVDb250cm9sbGVyKCktPm9uTmVnb3RpYXRpb25Eb25lKHBlZXJDb25uZWN0
aW9uLmxvY2FsSWQoKSk7Ci0gICAgfQotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNl
bmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9NZWRpYVN0cmVhbUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFT
dHJlYW1Db250cm9sbGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1NTM1ODdl
Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFTdHJlYW1Db250cm9sbGVy
LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMDMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0g
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRl
ZiBNZWRpYVN0cmVhbUNvbnRyb2xsZXJfaAotI2RlZmluZSBNZWRpYVN0cmVhbUNvbnRyb2xsZXJf
aAotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIk1lZGlhU3RyZWFtQ2xp
ZW50LmgiCi0jaW5jbHVkZSAiTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuaCIKLSNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLWNsYXNzIE1lZGlhU3RyZWFtQ2xpZW50OwotY2xhc3MgTWVkaWFTdHJl
YW1GcmFtZUNvbnRyb2xsZXI7Ci1jbGFzcyBNZWRpYVN0cmVhbVRyYWNrTGlzdDsKLWNsYXNzIFNl
Y3VyaXR5T3JpZ2luOwotCi1jbGFzcyBNZWRpYVN0cmVhbUNvbnRyb2xsZXIgewotICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKE1lZGlhU3RyZWFtQ29udHJvbGxlcik7Ci1wdWJsaWM6Ci0gICAgTWVk
aWFTdHJlYW1Db250cm9sbGVyKE1lZGlhU3RyZWFtQ2xpZW50Kik7Ci0gICAgdmlydHVhbCB+TWVk
aWFTdHJlYW1Db250cm9sbGVyKCk7Ci0KLSAgICBib29sIGlzQ2xpZW50QXZhaWxhYmxlKCkgY29u
c3Q7Ci0gICAgdm9pZCB1bnJlZ2lzdGVyRnJhbWVDb250cm9sbGVyKE1lZGlhU3RyZWFtRnJhbWVD
b250cm9sbGVyKik7Ci0KLSAgICB2b2lkIGdlbmVyYXRlU3RyZWFtKE1lZGlhU3RyZWFtRnJhbWVD
b250cm9sbGVyKiwgaW50IHJlcXVlc3RJZCwgR2VuZXJhdGVTdHJlYW1PcHRpb25GbGFncywgUGFz
c1JlZlB0cjxTZWN1cml0eU9yaWdpbj4pOwotICAgIHZvaWQgc3RvcEdlbmVyYXRlZFN0cmVhbShj
b25zdCBTdHJpbmcmIHN0cmVhbUxhYmVsKTsKLQotICAgIC8vIEVuYWJsZS9kaXNhYmxlIGFuIHRy
YWNrLgotICAgIHZvaWQgc2V0TWVkaWFTdHJlYW1UcmFja0VuYWJsZWQoY29uc3QgU3RyaW5nJiB0
cmFja0lkLCBib29sIGVuYWJsZWQpOwotCi0gICAgdm9pZCBzdHJlYW1HZW5lcmF0ZWQoaW50IHJl
cXVlc3RJZCwgY29uc3QgU3RyaW5nJiBzdHJlYW1MYWJlbCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVh
bVRyYWNrTGlzdD4gdHJhY2tzKTsKLSAgICB2b2lkIHN0cmVhbUdlbmVyYXRpb25GYWlsZWQoaW50
IHJlcXVlc3RJZCwgTmF2aWdhdG9yVXNlck1lZGlhRXJyb3I6OkVycm9yQ29kZSk7Ci0gICAgdm9p
ZCBzdHJlYW1GYWlsZWQoY29uc3QgU3RyaW5nJiBzdHJlYW1MYWJlbCk7Ci0KLSAgICAvKiBKUyAt
PiBVQSAqLwotICAgIHZvaWQgbmV3UGVlckNvbm5lY3Rpb24oTWVkaWFTdHJlYW1GcmFtZUNvbnRy
b2xsZXIqLCBpbnQgZnJhbWVQZWVyQ29ubmVjdGlvbklkLCBjb25zdCBTdHJpbmcmIGNvbmZpZ3Vy
YXRpb24pOwotICAgIHZvaWQgc3RhcnROZWdvdGlhdGlvbihNZWRpYVN0cmVhbUZyYW1lQ29udHJv
bGxlciosIGludCBmcmFtZVBlZXJDb25uZWN0aW9uSWQpOwotICAgIHZvaWQgcHJvY2Vzc1NpZ25h
bGluZ01lc3NhZ2UoTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIqLCBpbnQgZnJhbWVQZWVyQ29u
bmVjdGlvbklkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwotICAgIHZvaWQgbWVzc2FnZShNZWRp
YVN0cmVhbUZyYW1lQ29udHJvbGxlciosIGludCBmcmFtZVBlZXJDb25uZWN0aW9uSWQsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSk7Ci0gICAgdm9pZCBhZGRTdHJlYW0oTWVkaWFTdHJlYW1GcmFtZUNv
bnRyb2xsZXIqLCBpbnQgZnJhbWVQZWVyQ29ubmVjdGlvbklkLCBjb25zdCBTdHJpbmcmIHN0cmVh
bUxhYmVsKTsKLSAgICB2b2lkIHJlbW92ZVN0cmVhbShNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxl
ciosIGludCBmcmFtZVBlZXJDb25uZWN0aW9uSWQsIGNvbnN0IFN0cmluZyYgc3RyZWFtTGFiZWwp
OwotICAgIHZvaWQgY2xvc2VQZWVyQ29ubmVjdGlvbihNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxl
ciosIGludCBmcmFtZVBlZXJDb25uZWN0aW9uSWQpOwotCi0gICAgLyogVUEgLT4gSlMgKi8KLSAg
ICB2b2lkIG9uU2lnbmFsaW5nTWVzc2FnZShpbnQgY29udHJvbGxlclBlZXJDb25uZWN0aW9uSWQs
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7Ci0gICAgdm9pZCBvbk1lc3NhZ2UoaW50IGNvbnRyb2xs
ZXJQZWVyQ29ubmVjdGlvbklkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwotICAgIHZvaWQgb25B
ZGRTdHJlYW0oaW50IGNvbnRyb2xsZXJQZWVyQ29ubmVjdGlvbklkLCBjb25zdCBTdHJpbmcmIHN0
cmVhbUxhYmVsLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tMaXN0PiB0cmFja3MpOwotICAg
IHZvaWQgb25SZW1vdmVTdHJlYW0oaW50IGNvbnRyb2xsZXJQZWVyQ29ubmVjdGlvbklkLCBjb25z
dCBTdHJpbmcmIHN0cmVhbUxhYmVsKTsKLSAgICB2b2lkIG9uTmVnb3RpYXRpb25TdGFydGVkKGlu
dCBjb250cm9sbGVyUGVlckNvbm5lY3Rpb25JZCk7Ci0gICAgdm9pZCBvbk5lZ290aWF0aW9uRG9u
ZShpbnQgY29udHJvbGxlclBlZXJDb25uZWN0aW9uSWQpOwotCi1wcml2YXRlOgotICAgIGludCBy
ZWdpc3RlclJlcXVlc3QoaW50IGxvY2FsUmVxdWVzdElkLCBNZWRpYVN0cmVhbUZyYW1lQ29udHJv
bGxlciopOwotICAgIHZvaWQgcmVnaXN0ZXJTdHJlYW0oY29uc3QgU3RyaW5nJiBzdHJlYW1MYWJl
bCwgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIqKTsKLQotICAgIGJvb2wgZnJhbWVUb1BhZ2VQ
ZWVyQ29ubmVjdGlvbklkKE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKiwgaW50IGZyYW1lUGVl
ckNvbm5lY3Rpb25JZCwgaW50JiBwYWdlUGVlckNvbm5lY3Rpb25JZCk7Ci0KLSAgICBjbGFzcyBS
ZXF1ZXN0OwotICAgIHR5cGVkZWYgSGFzaE1hcDxpbnQsIFJlcXVlc3Q+IFJlcXVlc3RNYXA7Ci0g
ICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIqPiBT
dHJlYW1NYXA7Ci0KLSAgICBSZXF1ZXN0TWFwIG1fcmVxdWVzdHM7Ci0gICAgU3RyZWFtTWFwIG1f
c3RyZWFtczsKLSAgICBSZXF1ZXN0TWFwIG1fcGVlckNvbm5lY3Rpb25zOwotCi0gICAgTWVkaWFT
dHJlYW1DbGllbnQqIG1fY2xpZW50OwotICAgIGludCBtX25leHRHbG9iYWxSZXF1ZXN0SWQ7Ci0g
ICAgaW50IG1fbmV4dEdsb2JhbFBlZXJDb25uZWN0aW9uSWQ7Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jZW5kaWYgLy8g
TWVkaWFTdHJlYW1Db250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRp
YVN0cmVhbUZyYW1lQ29udHJvbGxlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDliNjc5MmEuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVN0cmVhbUZy
YW1lQ29udHJvbGxlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0ODggKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICogU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtRnJhbWVD
b250cm9sbGVyLmgiCi0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSAiRE9N
V2luZG93LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2lu
Y2x1ZGUgIkxvY2FsTWVkaWFTdHJlYW0uaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbUNvbnRyb2xs
ZXIuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrTGlzdC5oIgotI2luY2x1ZGUgIk5hdmln
YXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJOYXZpZ2F0b3JVc2VyTWVk
aWFTdWNjZXNzQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUGVlckNv
bm5lY3Rpb24uaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgotI2luY2x1ZGUgIlNpZ25h
bGluZ0NhbGxiYWNrLmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi1jbGFzcyBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcjo6UmVxdWVzdCA6
IHB1YmxpYyBSZWZDb3VudGVkPFJlcXVlc3Q+IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShS
ZXF1ZXN0KTsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5SZXF1ZXN0KCkgeyB9Ci0KLSAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgeyByZXR1
cm4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OyB9Ci0gICAgdmlydHVhbCBib29sIGlzR2VuZXJh
dGVTdHJlYW1SZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJv
b2wgaXNSZWNvcmRlZERhdGFSZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgaXNTaWduYWxpbmdSZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
LQotICAgIHZpcnR1YWwgdm9pZCBhYm9ydCgpID0gMDsKLQotcHJvdGVjdGVkOgotICAgIFJlcXVl
c3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKLSAgICAg
ICAgOiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkgeyB9
Ci0KLXByaXZhdGU6Ci0gICAgLy8gVGhpcyBpcyBndWFyYW50ZWVkIHRvIGhhdmUgdGhlIGxpZmV0
aW1lIG9mIHRoZSBGcmFtZSwgYW5kIGl0J3Mgb25seSB1c2VkIHRvIG1ha2UKLSAgICAvLyB0aGUg
Y2FsbGJhY2sgYXN5bmNocm9ub3VzLiBUaGUgb3JpZ2luYWwgY2FsbGJhY2sgY29udGV4dCBpcyB1
c2VkIGluIHRoZSBjYWxsLgotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDsKLX07Ci0KLWNsYXNzIE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyOjpH
ZW5lcmF0ZVN0cmVhbVJlcXVlc3QgOiBwdWJsaWMgUmVxdWVzdCB7Ci0gICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoR2VuZXJhdGVTdHJlYW1SZXF1ZXN0KTsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxHZW5lcmF0ZVN0cmVhbVJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhU3Vj
Y2Vzc0NhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFF
cnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBHZW5lcmF0ZVN0cmVhbVJlcXVlc3Qoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgc3Vj
Y2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKSk7Ci0gICAgfQotCi0gICAgdmlydHVhbCB+R2Vu
ZXJhdGVTdHJlYW1SZXF1ZXN0KCkgeyB9Ci0KLSAgICB2aXJ0dWFsIGJvb2wgaXNHZW5lcmF0ZVN0
cmVhbVJlcXVlc3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQg
YWJvcnQoKQotICAgIHsKLSAgICAgICAgaWYgKG1fZXJyb3JDYWxsYmFjaykgewotICAgICAgICAg
ICAgUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yPiBlcnJvciA9IE5hdmlnYXRvclVzZXJN
ZWRpYUVycm9yOjpjcmVhdGUoTmF2aWdhdG9yVXNlck1lZGlhRXJyb3I6OlBFUk1JU1NJT05fREVO
SUVEKTsKLSAgICAgICAgICAgIC8vIFRoZSBjYWxsYmFjayBpdHNlbGYgaXMgbWFkZSB3aXRoIHRo
ZSBKUyBjYWxsYmFjaydzIGNvbnRleHQsIG5vdCB3aXRoIHRoZSBmcmFtZSdzIGNvbnRleHQuCi0g
ICAgICAgICAgICBtX2Vycm9yQ2FsbGJhY2stPnNjaGVkdWxlQ2FsbGJhY2soc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLCBlcnJvcik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBQYXNzUmVmUHRy
PE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrKCkgY29u
c3QgeyByZXR1cm4gbV9zdWNjZXNzQ2FsbGJhY2s7IH0KLSAgICBQYXNzUmVmUHRyPE5hdmlnYXRv
clVzZXJNZWRpYUVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2soKSBjb25zdCB7IHJldHVybiBt
X2Vycm9yQ2FsbGJhY2s7IH0KLQotcHJpdmF0ZToKLSAgICBHZW5lcmF0ZVN0cmVhbVJlcXVlc3Qo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2Fs
bGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUGFzc1Jl
ZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQotICAg
ICAgICA6IFJlcXVlc3Qoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKLSAgICAgICAgLCBtX3N1Y2Nl
c3NDYWxsYmFjayhzdWNjZXNzQ2FsbGJhY2spCi0gICAgICAgICwgbV9lcnJvckNhbGxiYWNrKGVy
cm9yQ2FsbGJhY2spIHsgfQotCi0gICAgUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3ND
YWxsYmFjaz4gbV9zdWNjZXNzQ2FsbGJhY2s7Ci0gICAgUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRp
YUVycm9yQ2FsbGJhY2s+IG1fZXJyb3JDYWxsYmFjazsKLX07Ci0KLXZvaWQgTWVkaWFTdHJlYW1G
cmFtZUNvbnRyb2xsZXI6OlJlcXVlc3RNYXA6OmFib3J0KGludCByZXF1ZXN0SWQpCi17Ci0gICAg
Z2V0KHJlcXVlc3RJZCktPmFib3J0KCk7Ci0gICAgcmVtb3ZlKHJlcXVlc3RJZCk7Ci19Ci0KLXZv
aWQgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXI6OlJlcXVlc3RNYXA6OmFib3J0QWxsKCkKLXsK
LSAgICB3aGlsZSAoIWlzRW1wdHkoKSkgewotICAgICAgICBiZWdpbigpLT5zZWNvbmQtPmFib3J0
KCk7Ci0gICAgICAgIHJlbW92ZShiZWdpbigpKTsKLSAgICB9Ci19Ci0KLXRlbXBsYXRlIDx0eXBl
bmFtZSBUPgotdm9pZCBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcjo6Q2xpZW50TWFwQmFzZTxU
Pjo6dW5yZWdpc3RlckFsbCgpCi17Ci0gICAgd2hpbGUgKCF0aGlzLT5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgVCBrZXkgPSB0aGlzLT5iZWdpbigpLT5maXJzdDsKLSAgICAgICAgLy8gdW5yZWdpc3Rl
ciBzaG91bGQgcmVtb3ZlIHRoZSBlbGVtZW50IGZyb20gdGhlIG1hcC4KLSAgICAgICAgdGhpcy0+
YmVnaW4oKS0+c2Vjb25kLT51bnJlZ2lzdGVyKCk7Ci0gICAgICAgIEFTU0VSVF9VTlVTRUQoa2V5
LCAhdGhpcy0+Y29udGFpbnMoa2V5KSk7Ci0gICAgfQotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KLXZvaWQgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXI6OkNsaWVudE1hcEJhc2U8VD46OmRl
dGFjaEVtYmVkZGVyKCkKLXsKLSAgICBmb3IgKHR5cGVuYW1lIE1hcFR5cGU6Oml0ZXJhdG9yIGl0
ID0gdGhpcy0+YmVnaW4oKTsgaXQgIT0gdGhpcy0+ZW5kKCk7ICsraXQpCi0gICAgICAgIGl0LT5z
ZWNvbmQtPmRldGFjaEVtYmVkZGVyKCk7Ci19Ci0KLU1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVy
OjpNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcihGcmFtZSogZnJhbWUpCi0gICAgOiBtX2ZyYW1l
KGZyYW1lKQotICAgICwgbV9pc0luRGV0YWNoZWRTdGF0ZShmYWxzZSkKLXsKLSAgICBpZiAoIWlz
Q2xpZW50QXZhaWxhYmxlKCkpCi0gICAgICAgIGVudGVyRGV0YWNoZWRTdGF0ZSgpOwotfQotCi1N
ZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcjo6fk1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKCkK
LXsKLX0KLQotU2VjdXJpdHlPcmlnaW4qIE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyOjpzZWN1
cml0eU9yaWdpbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZnJhbWUgPyBtX2ZyYW1lLT5leGlz
dGluZ0RPTVdpbmRvdygpLT5zZWN1cml0eU9yaWdpbigpIDogMDsKLX0KLQotU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXI6OnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSBjb25zdAotewotICAgIHJldHVybiBtX2ZyYW1lID8gbV9mcmFtZS0+ZXhpc3RpbmdE
T01XaW5kb3coKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIDogMDsKLX0KLQotTWVkaWFTdHJl
YW1Db250cm9sbGVyKiBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcjo6cGFnZUNvbnRyb2xsZXIo
KSBjb25zdAotewotICAgIHJldHVybiBtX2ZyYW1lICYmIG1fZnJhbWUtPnBhZ2UoKSA/IG1fZnJh
bWUtPnBhZ2UoKS0+bWVkaWFTdHJlYW1Db250cm9sbGVyKCkgOiAwOwotfQotCi12b2lkIE1lZGlh
U3RyZWFtRnJhbWVDb250cm9sbGVyOjp1bnJlZ2lzdGVyKE1lZGlhU3RyZWFtQ2xpZW50KiBjbGll
bnQpCi17Ci0gICAgQVNTRVJUKG1fc3RyZWFtcy5jb250YWlucyhjbGllbnQtPmNsaWVudElkKCkp
KTsKLQotICAgIC8vIEFzc3VtaW5nIHdlIHNob3VsZCBzdG9wIGFueSBsaXZlIHN0cmVhbXMgd2hl
biBsb3NpbmcgYWNjZXNzIHRvIHRoZSBlbWJlZGRlci4KLSAgICBpZiAoY2xpZW50LT5pc0xvY2Fs
TWVkaWFTdHJlYW0oKSkgewotICAgICAgICBMb2NhbE1lZGlhU3RyZWFtKiBzdHJlYW0gPSBzdGF0
aWNfY2FzdDxMb2NhbE1lZGlhU3RyZWFtKj4oY2xpZW50KTsKLSAgICAgICAgaWYgKHN0cmVhbS0+
cmVhZHlTdGF0ZSgpID09IE1lZGlhU3RyZWFtOjpMSVZFKQotICAgICAgICAgICAgc3RvcEdlbmVy
YXRlZFN0cmVhbShzdHJlYW0tPmxhYmVsKCkpOwotICAgIH0KLQotICAgIG1fc3RyZWFtcy5yZW1v
dmUoY2xpZW50LT5jbGllbnRJZCgpKTsKLX0KLQotdm9pZCBNZWRpYVN0cmVhbUZyYW1lQ29udHJv
bGxlcjo6dW5yZWdpc3RlcihHZW5lcmljQ2xpZW50KiBjbGllbnQpCi17Ci0gICAgQVNTRVJUKG1f
Y2xpZW50cy5jb250YWlucyhjbGllbnQtPmNsaWVudElkKCkpKTsKLSAgICBtX2NsaWVudHMucmVt
b3ZlKGNsaWVudC0+Y2xpZW50SWQoKSk7Ci19Ci0KLU1lZGlhU3RyZWFtKiBNZWRpYVN0cmVhbUZy
YW1lQ29udHJvbGxlcjo6Z2V0U3RyZWFtRnJvbUxhYmVsKGNvbnN0IFN0cmluZyYgbGFiZWwpIGNv
bnN0Ci17Ci0gICAgQVNTRVJUKG1fc3RyZWFtcy5jb250YWlucyhsYWJlbCkpOwotICAgIEFTU0VS
VChtX3N0cmVhbXMuZ2V0KGxhYmVsKS0+aXNNZWRpYVN0cmVhbSgpKTsKLSAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8TWVkaWFTdHJlYW0qPihtX3N0cmVhbXMuZ2V0KGxhYmVsKSk7Ci19Ci0KLXZvaWQg
TWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXI6OmVudGVyRGV0YWNoZWRTdGF0ZSgpCi17Ci0gICAg
aWYgKG1faXNJbkRldGFjaGVkU3RhdGUpIHsKLSAgICAgICAgQVNTRVJUKG1fcmVxdWVzdHMuaXNF
bXB0eSgpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1fcmVxdWVzdHMuYWJvcnRB
bGwoKTsKLSAgICBtX3N0cmVhbXMuZGV0YWNoRW1iZWRkZXIoKTsKLSAgICBtX2NsaWVudHMuZGV0
YWNoRW1iZWRkZXIoKTsKLSAgICBtX2lzSW5EZXRhY2hlZFN0YXRlID0gdHJ1ZTsKLX0KLQotYm9v
bCBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcjo6aXNDbGllbnRBdmFpbGFibGUoKSBjb25zdAot
ewotICAgIGlmIChtX2lzSW5EZXRhY2hlZFN0YXRlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICBNZWRpYVN0cmVhbUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBwYWdlQ29udHJvbGxlcigp
OwotICAgIHJldHVybiBjb250cm9sbGVyICYmIGNvbnRyb2xsZXItPmlzQ2xpZW50QXZhaWxhYmxl
KCk7Ci19Ci0KLS8vIENhbGxlZCBhbHNvIHdoZW4gdGhlIGZyYW1lIGlzIGRldGFjaGVkIGZyb20g
dGhlIHBhZ2UsIGluIHdoaWNoIGNhc2UgdGhlIHBhZ2UgY29udHJvbGxlciB3aWxsIHJlbWFpbiBh
bGl2ZS4KLXZvaWQgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RQYWdlKCkK
LXsKLSAgICBpZiAocGFnZUNvbnRyb2xsZXIoKSkKLSAgICAgICAgcGFnZUNvbnRyb2xsZXIoKS0+
dW5yZWdpc3RlckZyYW1lQ29udHJvbGxlcih0aGlzKTsKLQotICAgIGVudGVyRGV0YWNoZWRTdGF0
ZSgpOwotfQotCi0vLyBDYWxsZWQgd2hlbiB0aGUgZnJhbWUgaXMgYmVpbmcgZGVzdHJveWVkLiBT
aW5jZSB0aGUgZnJhbWUgY29udHJvbGxlciBpcyBvd25lZCBieSB0aGUgZnJhbWUgaXQgd2lsbCBk
aWUgc2hvcnRseSBhZnRlciB0aGlzLgotdm9pZCBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcjo6
ZGlzY29ubmVjdEZyYW1lKCkKLXsKLSAgICBkaXNjb25uZWN0UGFnZSgpOwotCi0gICAgQVNTRVJU
KG1fcmVxdWVzdHMuaXNFbXB0eSgpKTsKLSAgICBtX3N0cmVhbXMudW5yZWdpc3RlckFsbCgpOwot
ICAgIG1fY2xpZW50cy51bnJlZ2lzdGVyQWxsKCk7Ci0KLSAgICBtX2ZyYW1lID0gMDsKLX0KLQot
dm9pZCBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcjo6dHJhbnNmZXJUb05ld1BhZ2UoUGFnZSop
Ci17Ci0gICAgLy8gRklYTUU6IEluIHRoZSBmdXR1cmUgd2Ugc2hvdWxkIGtlZXAgcnVubmluZyB0
aGUgbWVkaWEgc3RyZWFtIHNlcnZpY2VzIHdoaWxlIHRyYW5zZmVyaW5nIGZyYW1lcyBiZXR3ZWVu
IHBhZ2VzLgotICAgIC8vIEhvd2V2ZXIsIHVudGlsIGEgcHJvcGVyIHdheSB0byBkbyB0aGlzIGlz
IGRlY2lkZWQsIHdlJ3JlIHNodXR0aW5nIGRvd24gc2VydmljZXMuCi0gICAgZGlzY29ubmVjdFBh
Z2UoKTsKLX0KLQotR2VuZXJhdGVTdHJlYW1PcHRpb25GbGFncyBNZWRpYVN0cmVhbUZyYW1lQ29u
dHJvbGxlcjo6cGFyc2VHZW5lcmF0ZVN0cmVhbU9wdGlvbnMoY29uc3QgU3RyaW5nJiBvcHRpb25z
KQotewotICAgIEdlbmVyYXRlU3RyZWFtT3B0aW9uRmxhZ3MgZmxhZ3MgPSAwOwotICAgIFZlY3Rv
cjxTdHJpbmc+IG9wdGlvbkxpc3Q7Ci0gICAgb3B0aW9ucy5zcGxpdCgnLCcsIG9wdGlvbkxpc3Qp
OwotCi0gICAgZm9yIChWZWN0b3I8U3RyaW5nPjo6Y29uc3RfaXRlcmF0b3Igb3B0aW9uID0gb3B0
aW9uTGlzdC5iZWdpbigpOyBvcHRpb24gIT0gb3B0aW9uTGlzdC5lbmQoKTsgKytvcHRpb24pIHsK
LSAgICAgICAgVmVjdG9yPFN0cmluZz4gc3Vib3B0aW9uTGlzdDsKLSAgICAgICAgb3B0aW9uLT5z
cGxpdCgnICcsIHN1Ym9wdGlvbkxpc3QpOwotCi0gICAgICAgIGlmIChzdWJvcHRpb25MaXN0LmZp
cnN0KCkgPT0gImF1ZGlvIikKLSAgICAgICAgICAgIGZsYWdzIHw9IEdlbmVyYXRlU3RyZWFtUmVx
dWVzdEF1ZGlvOwotICAgICAgICBlbHNlIGlmIChzdWJvcHRpb25MaXN0LmZpcnN0KCkgPT0gInZp
ZGVvIikgewotICAgICAgICAgICAgYm9vbCB2aWRlb1N1Ym9wdGlvbnMgPSBmYWxzZTsKLSAgICAg
ICAgICAgIFZlY3RvcjxTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBzdWJvcHRpb24gPSBzdWJvcHRp
b25MaXN0LmJlZ2luKCk7Ci0gICAgICAgICAgICBmb3IgKCsrc3Vib3B0aW9uOyBzdWJvcHRpb24g
IT0gc3Vib3B0aW9uTGlzdC5lbmQoKTsgKytzdWJvcHRpb24pCi0gICAgICAgICAgICAgICAgaWYg
KCpzdWJvcHRpb24gPT0gInVzZXIiKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZsYWdzIHw9IEdl
bmVyYXRlU3RyZWFtUmVxdWVzdFZpZGVvRmFjaW5nVXNlcjsKLSAgICAgICAgICAgICAgICAgICAg
dmlkZW9TdWJvcHRpb25zID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCpzdWJv
cHRpb24gPT0gImVudmlyb25tZW50IikgewotICAgICAgICAgICAgICAgICAgICBmbGFncyB8PSBH
ZW5lcmF0ZVN0cmVhbVJlcXVlc3RWaWRlb0ZhY2luZ0Vudmlyb25tZW50OwotICAgICAgICAgICAg
ICAgICAgICB2aWRlb1N1Ym9wdGlvbnMgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgLy8gQXNrIGZvciBhbGwga2luZCBvZiBjYW1lcmFzIGlmIG5vIHN1Ym9wdGlvbiB3
YXMgc3BlY2lmaWVkLgotICAgICAgICAgICAgaWYgKCF2aWRlb1N1Ym9wdGlvbnMpCi0gICAgICAg
ICAgICAgICAgZmxhZ3MgfD0gR2VuZXJhdGVTdHJlYW1SZXF1ZXN0VmlkZW9GYWNpbmdVc2VyIHwg
R2VuZXJhdGVTdHJlYW1SZXF1ZXN0VmlkZW9GYWNpbmdFbnZpcm9ubWVudDsKLSAgICAgICAgfQot
ICAgIH0KLQotICAgIHJldHVybiBmbGFnczsKLX0KLQotLy8gSW1wbGVtZW50cyB0aGUgZ2V0VXNl
ck1lZGlhIG1ldGhvZCBmcm9tIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9j
dXJyZW50LXdvcmsvI2RvbS1uYXZpZ2F0b3ItZ2V0dXNlcm1lZGlhLgotdm9pZCBNZWRpYVN0cmVh
bUZyYW1lQ29udHJvbGxlcjo6Z2VuZXJhdGVTdHJlYW0oY29uc3QgU3RyaW5nJiBvcHRpb25zLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFzc1JlZlB0
cjxOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQdHI8
TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4Y2VwdGlvbkNvZGUmIGVj
KQotewotICAgIGVjID0gMDsKLSAgICBpZiAoIXN1Y2Nlc3NDYWxsYmFjaykKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgR2VuZXJhdGVTdHJlYW1PcHRpb25GbGFncyBmbGFncyA9IHBhcnNlR2VuZXJh
dGVTdHJlYW1PcHRpb25zKG9wdGlvbnMpOwotICAgIGlmICghZmxhZ3MpIHsKLSAgICAgICAgZWMg
PSBOT1RfU1VQUE9SVEVEX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGludCBy
ZXF1ZXN0SWQgPSBtX3JlcXVlc3RzLmdldE5leHRJZCgpOwotICAgIG1fcmVxdWVzdHMuYWRkKHJl
cXVlc3RJZCwgR2VuZXJhdGVTdHJlYW1SZXF1ZXN0OjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spKTsKLQotICAgIGlmICghaXND
bGllbnRBdmFpbGFibGUoKSkgewotICAgICAgICAvLyBUaGlzIG1ha2VzIHN1cmUgdG8gY2FsbCB0
aGUgZXJyb3IgY2FsbGJhY2sgaWYgcHJvdmlkZWQuCi0gICAgICAgIG1fcmVxdWVzdHMuYWJvcnQo
cmVxdWVzdElkKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHBhZ2VDb250cm9sbGVy
KCktPmdlbmVyYXRlU3RyZWFtKHRoaXMsIHJlcXVlc3RJZCwgZmxhZ3MsIHNlY3VyaXR5T3JpZ2lu
KCkpOwotfQotCi12b2lkIE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyOjpzdG9wR2VuZXJhdGVk
U3RyZWFtKGNvbnN0IFN0cmluZyYgc3RyZWFtTGFiZWwpCi17Ci0gICAgQVNTRVJUKG1fc3RyZWFt
cy5jb250YWlucyhzdHJlYW1MYWJlbCkpOwotICAgIEFTU0VSVChtX3N0cmVhbXMuZ2V0KHN0cmVh
bUxhYmVsKS0+aXNMb2NhbE1lZGlhU3RyZWFtKCkpOwotCi0gICAgaWYgKGlzQ2xpZW50QXZhaWxh
YmxlKCkpCi0gICAgICAgIHBhZ2VDb250cm9sbGVyKCktPnN0b3BHZW5lcmF0ZWRTdHJlYW0oc3Ry
ZWFtTGFiZWwpOwotfQotCi12b2lkIE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyOjpzZXRNZWRp
YVN0cmVhbVRyYWNrRW5hYmxlZChjb25zdCBTdHJpbmcmIHRyYWNrSWQsIGJvb2wgZW5hYmxlZCkK
LXsKLSAgICBpZiAoaXNDbGllbnRBdmFpbGFibGUoKSkKLSAgICAgICAgcGFnZUNvbnRyb2xsZXIo
KS0+c2V0TWVkaWFTdHJlYW1UcmFja0VuYWJsZWQodHJhY2tJZCwgZW5hYmxlZCk7Ci19Ci0KLXZv
aWQgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXI6OnN0cmVhbUdlbmVyYXRlZChpbnQgcmVxdWVz
dElkLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tMaXN0
PiB0cmFja3NQYXJhbSkKLXsKLSAgICAvLyBEb24ndCBhc3NlcnQgc2luY2UgdGhlIHJlcXVlc3Qg
Y2FuIGhhdmUgYmVlbiBhYm9ydGVkIGFzIGEgcmVzdWx0IG9mIGVtYmVkZGVyIGRldGFjaG1lbnQu
Ci0gICAgaWYgKCFtX3JlcXVlc3RzLmNvbnRhaW5zKHJlcXVlc3RJZCkpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIEFTU0VSVChtX3JlcXVlc3RzLmdldChyZXF1ZXN0SWQpLT5pc0dlbmVyYXRlU3Ry
ZWFtUmVxdWVzdCgpKTsKLSAgICBBU1NFUlQoIWxhYmVsLmlzTnVsbCgpKTsKLSAgICBBU1NFUlQo
dHJhY2tzUGFyYW0pOwotCi0gICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tMaXN0PiB0cmFja3Mg
PSB0cmFja3NQYXJhbTsKLQotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0cmFja3MtPmxl
bmd0aCgpOyArK2kpIHsKLSAgICAgICAgaW50IHRyYWNrQ2xpZW50SWQgPSBtX2NsaWVudHMuZ2V0
TmV4dElkKCk7Ci0gICAgICAgIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiB0cmFjayA9IHRyYWNr
cy0+aXRlbShpKTsKLSAgICAgICAgdHJhY2stPmFzc29jaWF0ZUZyYW1lQ29udHJvbGxlcih0aGlz
LCB0cmFja0NsaWVudElkKTsKLSAgICAgICAgbV9jbGllbnRzLmFkZCh0cmFja0NsaWVudElkLCB0
cmFjay5nZXQoKSk7Ci0gICAgfQotCi0gICAgUmVmUHRyPEdlbmVyYXRlU3RyZWFtUmVxdWVzdD4g
c3RyZWFtUmVxdWVzdCA9IHN0YXRpY19jYXN0PEdlbmVyYXRlU3RyZWFtUmVxdWVzdCo+KG1fcmVx
dWVzdHMuZ2V0KHJlcXVlc3RJZCkuZ2V0KCkpOwotICAgIFJlZlB0cjxMb2NhbE1lZGlhU3RyZWFt
PiBnZW5lcmF0ZWRTdHJlYW0gPSBMb2NhbE1lZGlhU3RyZWFtOjpjcmVhdGUodGhpcywgbGFiZWws
IHRyYWNrcy5yZWxlYXNlKCkpOwotICAgIG1fc3RyZWFtcy5hZGQobGFiZWwsIGdlbmVyYXRlZFN0
cmVhbS5nZXQoKSk7Ci0gICAgbV9yZXF1ZXN0cy5yZW1vdmUocmVxdWVzdElkKTsKLSAgICBzdHJl
YW1SZXF1ZXN0LT5zdWNjZXNzQ2FsbGJhY2soKS0+aGFuZGxlRXZlbnQoZ2VuZXJhdGVkU3RyZWFt
LmdldCgpKTsKLX0KLQotdm9pZCBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcjo6c3RyZWFtR2Vu
ZXJhdGlvbkZhaWxlZChpbnQgcmVxdWVzdElkLCBOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvcjo6RXJy
b3JDb2RlIGNvZGUpCi17Ci0gICAgLy8gRG9uJ3QgYXNzZXJ0IHNpbmNlIHRoZSByZXF1ZXN0IGNh
biBoYXZlIGJlZW4gYWJvcnRlZCBhcyBhIHJlc3VsdCBvZiBlbWJlZGRlciBkZXRhY2htZW50Lgot
ICAgIGlmICghbV9yZXF1ZXN0cy5jb250YWlucyhyZXF1ZXN0SWQpKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBBU1NFUlQobV9yZXF1ZXN0cy5nZXQocmVxdWVzdElkKS0+aXNHZW5lcmF0ZVN0cmVh
bVJlcXVlc3QoKSk7Ci0KLSAgICBSZWZQdHI8R2VuZXJhdGVTdHJlYW1SZXF1ZXN0PiBzdHJlYW1S
ZXF1ZXN0ID0gc3RhdGljX2Nhc3Q8R2VuZXJhdGVTdHJlYW1SZXF1ZXN0Kj4obV9yZXF1ZXN0cy5n
ZXQocmVxdWVzdElkKS5nZXQoKSk7Ci0gICAgbV9yZXF1ZXN0cy5yZW1vdmUocmVxdWVzdElkKTsK
LQotICAgIGlmIChzdHJlYW1SZXF1ZXN0LT5lcnJvckNhbGxiYWNrKCkpIHsKLSAgICAgICAgUmVm
UHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yPiBlcnJvciA9IE5hdmlnYXRvclVzZXJNZWRpYUVy
cm9yOjpjcmVhdGUoY29kZSk7Ci0gICAgICAgIHN0cmVhbVJlcXVlc3QtPmVycm9yQ2FsbGJhY2so
KS0+aGFuZGxlRXZlbnQoZXJyb3IuZ2V0KCkpOwotICAgIH0KLX0KLQotdm9pZCBNZWRpYVN0cmVh
bUZyYW1lQ29udHJvbGxlcjo6c3RyZWFtRmFpbGVkKGNvbnN0IFN0cmluZyYgbGFiZWwpCi17Ci0g
ICAgZ2V0U3RyZWFtRnJvbUxhYmVsKGxhYmVsKS0+c3RyZWFtRW5kZWQoKTsKLX0KLQotUGFzc1Jl
ZlB0cjxQZWVyQ29ubmVjdGlvbj4gTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXI6OmNyZWF0ZVBl
ZXJDb25uZWN0aW9uKGNvbnN0IFN0cmluZyYgY29uZmlndXJhdGlvbiwgUGFzc1JlZlB0cjxTaWdu
YWxpbmdDYWxsYmFjaz4gc2lnbmFsaW5nQ2FsbGJhY2spCi17Ci0gICAgaW50IGNsaWVudElkID0g
bV9jbGllbnRzLmdldE5leHRJZCgpOwotICAgIFJlZlB0cjxQZWVyQ29ubmVjdGlvbj4gcGVlckNv
bm5lY3Rpb24gPSBQZWVyQ29ubmVjdGlvbjo6Y3JlYXRlKHRoaXMsIGNsaWVudElkLCBjb25maWd1
cmF0aW9uLCBzaWduYWxpbmdDYWxsYmFjayk7Ci0gICAgaWYgKHBlZXJDb25uZWN0aW9uKQotICAg
ICAgICBtX2NsaWVudHMuYWRkKGNsaWVudElkLCBwZWVyQ29ubmVjdGlvbi5nZXQoKSk7Ci0gICAg
cmV0dXJuIHBlZXJDb25uZWN0aW9uLnJlbGVhc2UoKTsKLX0KLQotdm9pZCBNZWRpYVN0cmVhbUZy
YW1lQ29udHJvbGxlcjo6bmV3UGVlckNvbm5lY3Rpb24oaW50IHBlZXJDb25uZWN0aW9uSWQsIGNv
bnN0IFN0cmluZyYgY29uZmlndXJhdGlvbikKLXsKLSAgICBpZiAocGFnZUNvbnRyb2xsZXIoKSkK
LSAgICAgICAgcGFnZUNvbnRyb2xsZXIoKS0+bmV3UGVlckNvbm5lY3Rpb24odGhpcywgcGVlckNv
bm5lY3Rpb25JZCwgY29uZmlndXJhdGlvbik7Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1GcmFtZUNv
bnRyb2xsZXI6OmNsb3NlUGVlckNvbm5lY3Rpb24oaW50IHBlZXJDb25uZWN0aW9uSWQpCi17Ci0g
ICAgaWYgKHBhZ2VDb250cm9sbGVyKCkpCi0gICAgICAgIHBhZ2VDb250cm9sbGVyKCktPmNsb3Nl
UGVlckNvbm5lY3Rpb24odGhpcywgcGVlckNvbm5lY3Rpb25JZCk7Ci19Ci0KLXZvaWQgTWVkaWFT
dHJlYW1GcmFtZUNvbnRyb2xsZXI6OnN0YXJ0TmVnb3RpYXRpb24oaW50IHBlZXJDb25uZWN0aW9u
SWQpCi17Ci0gICAgaWYgKHBhZ2VDb250cm9sbGVyKCkpCi0gICAgICAgIHBhZ2VDb250cm9sbGVy
KCktPnN0YXJ0TmVnb3RpYXRpb24odGhpcywgcGVlckNvbm5lY3Rpb25JZCk7Ci19Ci0KLXZvaWQg
TWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXI6OnByb2Nlc3NTaWduYWxpbmdNZXNzYWdlKGludCBw
ZWVyQ29ubmVjdGlvbklkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCi17Ci0gICAgaWYgKHBhZ2VD
b250cm9sbGVyKCkpCi0gICAgICAgIHBhZ2VDb250cm9sbGVyKCktPnByb2Nlc3NTaWduYWxpbmdN
ZXNzYWdlKHRoaXMsIHBlZXJDb25uZWN0aW9uSWQsIG1lc3NhZ2UpOwotfQotCi12b2lkIE1lZGlh
U3RyZWFtRnJhbWVDb250cm9sbGVyOjptZXNzYWdlKGludCBwZWVyQ29ubmVjdGlvbklkLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCi17Ci0gICAgaWYgKHBhZ2VDb250cm9sbGVyKCkpCi0gICAgICAg
IHBhZ2VDb250cm9sbGVyKCktPm1lc3NhZ2UodGhpcywgcGVlckNvbm5lY3Rpb25JZCwgbWVzc2Fn
ZSk7Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXI6OmFkZFN0cmVhbShpbnQg
cGVlckNvbm5lY3Rpb25JZCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gcHJwU3RyZWFtKQotewot
ICAgIFJlZlB0cjxNZWRpYVN0cmVhbT4gc3RyZWFtID0gcHJwU3RyZWFtOwotICAgIEFTU0VSVCht
X3N0cmVhbXMuY29udGFpbnMoc3RyZWFtLT5sYWJlbCgpKSk7Ci0KLSAgICBpZiAocGFnZUNvbnRy
b2xsZXIoKSkKLSAgICAgICAgcGFnZUNvbnRyb2xsZXIoKS0+YWRkU3RyZWFtKHRoaXMsIHBlZXJD
b25uZWN0aW9uSWQsIHN0cmVhbS0+bGFiZWwoKSk7Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1GcmFt
ZUNvbnRyb2xsZXI6OnJlbW92ZVN0cmVhbShpbnQgcGVlckNvbm5lY3Rpb25JZCwgUGFzc1JlZlB0
cjxNZWRpYVN0cmVhbT4gcHJwU3RyZWFtKQotewotICAgIFJlZlB0cjxNZWRpYVN0cmVhbT4gc3Ry
ZWFtID0gcHJwU3RyZWFtOwotICAgIEFTU0VSVChtX3N0cmVhbXMuY29udGFpbnMoc3RyZWFtLT5s
YWJlbCgpKSk7Ci0KLSAgICBpZiAocGFnZUNvbnRyb2xsZXIoKSkKLSAgICAgICAgcGFnZUNvbnRy
b2xsZXIoKS0+cmVtb3ZlU3RyZWFtKHRoaXMsIHBlZXJDb25uZWN0aW9uSWQsIHN0cmVhbS0+bGFi
ZWwoKSk7Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXI6Om9uTWVzc2FnZShp
bnQgcGVlckNvbm5lY3Rpb25JZCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQotewotICAgIEFTU0VS
VChtX2NsaWVudHMuY29udGFpbnMocGVlckNvbm5lY3Rpb25JZCkpOwotICAgIEFTU0VSVChtX2Ns
aWVudHMuZ2V0KHBlZXJDb25uZWN0aW9uSWQpLT5pc1BlZXJDb25uZWN0aW9uKCkpOwotCi0gICAg
UmVmUHRyPFBlZXJDb25uZWN0aW9uPiBwZWVyQ29ubmVjdGlvbiA9IHN0YXRpY19jYXN0PFBlZXJD
b25uZWN0aW9uKj4obV9jbGllbnRzLmdldChwZWVyQ29ubmVjdGlvbklkKSk7Ci0KLSAgICBwZWVy
Q29ubmVjdGlvbi0+b25NZXNzYWdlKG1lc3NhZ2UpOwotfQotCi12b2lkIE1lZGlhU3RyZWFtRnJh
bWVDb250cm9sbGVyOjpvbkFkZFN0cmVhbShpbnQgcGVlckNvbm5lY3Rpb25JZCwgY29uc3QgU3Ry
aW5nJiBzdHJlYW1MYWJlbCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrTGlzdD4gdHJhY2tz
KQotewotICAgIEFTU0VSVCghc3RyZWFtTGFiZWwuaXNFbXB0eSgpKTsKLSAgICBBU1NFUlQobV9j
bGllbnRzLmNvbnRhaW5zKHBlZXJDb25uZWN0aW9uSWQpKTsKLSAgICBBU1NFUlQobV9jbGllbnRz
LmdldChwZWVyQ29ubmVjdGlvbklkKS0+aXNQZWVyQ29ubmVjdGlvbigpKTsKLQotICAgIFJlZlB0
cjxNZWRpYVN0cmVhbT4gc3RyZWFtID0gTWVkaWFTdHJlYW06OmNyZWF0ZSh0aGlzLCBzdHJlYW1M
YWJlbCwgdHJhY2tzKTsKLQotICAgIFJlZlB0cjxQZWVyQ29ubmVjdGlvbj4gcGVlckNvbm5lY3Rp
b24gPSBzdGF0aWNfY2FzdDxQZWVyQ29ubmVjdGlvbio+KG1fY2xpZW50cy5nZXQocGVlckNvbm5l
Y3Rpb25JZCkpOwotICAgIHBlZXJDb25uZWN0aW9uLT5zdHJlYW1BZGRlZChzdHJlYW0ucmVsZWFz
ZSgpKTsKLX0KLQotdm9pZCBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcjo6b25SZW1vdmVTdHJl
YW0oaW50IHBlZXJDb25uZWN0aW9uSWQsIGNvbnN0IFN0cmluZyYgc3RyZWFtTGFiZWwpCi17Ci0g
ICAgQVNTRVJUKCFzdHJlYW1MYWJlbC5pc0VtcHR5KCkpOwotICAgIEFTU0VSVChtX2NsaWVudHMu
Y29udGFpbnMocGVlckNvbm5lY3Rpb25JZCkpOwotICAgIEFTU0VSVChtX2NsaWVudHMuZ2V0KHBl
ZXJDb25uZWN0aW9uSWQpLT5pc1BlZXJDb25uZWN0aW9uKCkpOwotCi0gICAgUmVmUHRyPFBlZXJD
b25uZWN0aW9uPiBwZWVyQ29ubmVjdGlvbiA9IHN0YXRpY19jYXN0PFBlZXJDb25uZWN0aW9uKj4o
bV9jbGllbnRzLmdldChwZWVyQ29ubmVjdGlvbklkKSk7Ci0gICAgcGVlckNvbm5lY3Rpb24tPnN0
cmVhbVJlbW92ZWQoc3RyZWFtTGFiZWwpOwotfQotCi12b2lkIE1lZGlhU3RyZWFtRnJhbWVDb250
cm9sbGVyOjpvblNpZ25hbGluZ01lc3NhZ2UoaW50IHBlZXJDb25uZWN0aW9uSWQsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkKLXsKLSAgICBBU1NFUlQobV9jbGllbnRzLmNvbnRhaW5zKHBlZXJDb25u
ZWN0aW9uSWQpKTsKLSAgICBBU1NFUlQobV9jbGllbnRzLmdldChwZWVyQ29ubmVjdGlvbklkKS0+
aXNQZWVyQ29ubmVjdGlvbigpKTsKLQotICAgIFJlZlB0cjxQZWVyQ29ubmVjdGlvbj4gcGVlckNv
bm5lY3Rpb24gPSBzdGF0aWNfY2FzdDxQZWVyQ29ubmVjdGlvbio+KG1fY2xpZW50cy5nZXQocGVl
ckNvbm5lY3Rpb25JZCkpOwotICAgIHBlZXJDb25uZWN0aW9uLT5vblNpZ25hbGluZ01lc3NhZ2Uo
bWVzc2FnZSk7Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXI6Om9uTmVnb3Rp
YXRpb25TdGFydGVkKGludCBwZWVyQ29ubmVjdGlvbklkKQotewotICAgIC8vIEZJWE1FOiBBc3Nl
cnQgb3Igbm90PwotICAgIEFTU0VSVChtX2NsaWVudHMuY29udGFpbnMocGVlckNvbm5lY3Rpb25J
ZCkpOwotICAgIEFTU0VSVChtX2NsaWVudHMuZ2V0KHBlZXJDb25uZWN0aW9uSWQpLT5pc1BlZXJD
b25uZWN0aW9uKCkpOwotCi0gICAgUmVmUHRyPFBlZXJDb25uZWN0aW9uPiBwZWVyQ29ubmVjdGlv
biA9IHN0YXRpY19jYXN0PFBlZXJDb25uZWN0aW9uKj4obV9jbGllbnRzLmdldChwZWVyQ29ubmVj
dGlvbklkKSk7Ci0KLSAgICBwZWVyQ29ubmVjdGlvbi0+b25OZWdvdGlhdGlvblN0YXJ0ZWQoKTsK
LX0KLQotdm9pZCBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcjo6b25OZWdvdGlhdGlvbkRvbmUo
aW50IHBlZXJDb25uZWN0aW9uSWQpCi17Ci0gICAgLy8gRklYTUU6IEFzc2VydCBvciBub3Q/Ci0g
ICAgQVNTRVJUKG1fY2xpZW50cy5jb250YWlucyhwZWVyQ29ubmVjdGlvbklkKSk7Ci0gICAgQVNT
RVJUKG1fY2xpZW50cy5nZXQocGVlckNvbm5lY3Rpb25JZCktPmlzUGVlckNvbm5lY3Rpb24oKSk7
Ci0KLSAgICBSZWZQdHI8UGVlckNvbm5lY3Rpb24+IHBlZXJDb25uZWN0aW9uID0gc3RhdGljX2Nh
c3Q8UGVlckNvbm5lY3Rpb24qPihtX2NsaWVudHMuZ2V0KHBlZXJDb25uZWN0aW9uSWQpKTsKLQot
ICAgIHBlZXJDb25uZWN0aW9uLT5vbk5lZ290aWF0aW9uRG9uZSgpOwotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlci5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlci5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlNTE0NzI1Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDI0
NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIE1lZGlhU3RyZWFtRnJhbWVDb250cm9s
bGVyX2gKLSNkZWZpbmUgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXJfaAotCi0jaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJN
ZWRpYVN0cmVhbUNsaWVudC5oIgotI2luY2x1ZGUgIk5hdmlnYXRvclVzZXJNZWRpYUVycm9yLmgi
Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2gu
aD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBGcmFtZTsKLWNsYXNzIExvY2FsTWVk
aWFTdHJlYW07Ci1jbGFzcyBNZWRpYVN0cmVhbTsKLWNsYXNzIE1lZGlhU3RyZWFtQ29udHJvbGxl
cjsKLWNsYXNzIE1lZGlhU3RyZWFtVHJhY2tMaXN0OwotY2xhc3MgTmF2aWdhdG9yVXNlck1lZGlh
RXJyb3JDYWxsYmFjazsKLWNsYXNzIE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjazsK
LWNsYXNzIFBhZ2U7Ci1jbGFzcyBQZWVyQ29ubmVjdGlvbjsKLWNsYXNzIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ7Ci1jbGFzcyBTZWN1cml0eU9yaWdpbjsKLWNsYXNzIFNpZ25hbGluZ0NhbGxiYWNr
OwotCi1jbGFzcyBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlciB7Ci0gICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIpOwotcHVibGljOgotICAgIHRlbXBs
YXRlIDx0eXBlbmFtZSBJZFR5cGU+Ci0gICAgY2xhc3MgQ2xpZW50QmFzZSB7Ci0gICAgICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKENsaWVudEJhc2UpOwotICAgIHB1YmxpYzoKLSAgICAgICAgQ2xp
ZW50QmFzZSgpIDogbV9mcmFtZUNvbnRyb2xsZXIoMCksIG1fY2xpZW50SWQoMCkgeyB9Ci0KLSAg
ICAgICAgQ2xpZW50QmFzZShNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlciogZnJhbWVDb250cm9s
bGVyLCBjb25zdCBJZFR5cGUmIGlkKQotICAgICAgICAgICAgOiBtX2ZyYW1lQ29udHJvbGxlcihm
cmFtZUNvbnRyb2xsZXIpCi0gICAgICAgICAgICAsIG1fY2xpZW50SWQoaWQpIHsgfQotCi0gICAg
ICAgIHZpcnR1YWwgfkNsaWVudEJhc2UoKSB7IH0KLQotICAgICAgICBNZWRpYVN0cmVhbUZyYW1l
Q29udHJvbGxlciogbWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBt
X2ZyYW1lQ29udHJvbGxlcjsgfQotICAgICAgICBjb25zdCBJZFR5cGUmIGNsaWVudElkKCkgY29u
c3QgeyByZXR1cm4gbV9jbGllbnRJZDsgfQotCi0gICAgICAgIHZpcnR1YWwgYm9vbCBpc01lZGlh
U3RyZWFtKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgdmlydHVhbCBib29sIGlz
TG9jYWxNZWRpYVN0cmVhbSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIHZpcnR1
YWwgYm9vbCBpc0dlbmVyaWNDbGllbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgICAg
ICB2aXJ0dWFsIGJvb2wgaXNQZWVyQ29ubmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
Ci0KLSAgICAgICAgLy8gQ2FsbGVkIHdoZW4gdGhlIGZyYW1lIGNvbnRyb2xsZXIgaXMgYmVpbmcg
ZGlzY29ubmVjdGVkIHRvIHRoZSBNZWRpYVN0cmVhbUNsaWVudCBlbWJlZGRlci4KLSAgICAgICAg
Ly8gQ2xpZW50cyBzaG91bGQgb3ZlcnJpZGUgdGhpcyB0byBzZW5kIGFueSByZXF1aXJlZCBzaHV0
ZG93biBtZXNzYWdlcy4KLSAgICAgICAgdmlydHVhbCB2b2lkIGRldGFjaEVtYmVkZGVyKCkgeyB9
Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIC8vIFVzZWQgZm9yIG9iamVjdHMgdGhhdCBhcmUg
b3B0aW9uYWxseSBhc3NvY2lhdGVkIHRvIHRoZSBmcmFtZSBjb250cm9sbGVyIGFmdGVyIGNvbnN0
cnVjdGlvbiwgbGlrZSB0aGUgTWVkaWFTdHJlYW1UcmFja3MuCi0gICAgICAgIHZvaWQgYXNzb2Np
YXRlRnJhbWVDb250cm9sbGVyKE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKiBmcmFtZUNvbnRy
b2xsZXIsIGNvbnN0IElkVHlwZSYgaWQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVCgh
bV9mcmFtZUNvbnRyb2xsZXIgJiYgIW1fY2xpZW50SWQpOwotICAgICAgICAgICAgbV9mcmFtZUNv
bnRyb2xsZXIgPSBmcmFtZUNvbnRyb2xsZXI7Ci0gICAgICAgICAgICBtX2NsaWVudElkID0gaWQ7
Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBBdm9pZHMgcmVwZWF0aW5nIHRoZSBzYW1lIGNvZGUg
aW4gdGhlIHVucmVnaXN0ZXIgbWV0aG9kIG9mIGVhY2ggZGVyaXZlZCBjbGFzcy4KLSAgICAgICAg
Ly8gVGhpcyBpcyByZXF1aXJlZCBzaW5jZSB0aGUgY29udHJvbGxlcidzIHVucmVnaXN0ZXIgbWV0
aG9kcyBtYWtlIHVzZSBvZiB0aGUgaXNPYmplY3QgdmlydHVhbHMsCi0gICAgICAgIC8vIGFuZCB0
aGUgdW5yZWdpc3RyYXRpb24gY2FuIGJlIHRyaWdnZXJlZCBlaXRoZXIgYnkgdGhlIGRlc3RydWN0
b3Igb2YgdGhlIGNsaWVudCBvciBieSB0aGUgZGlzY29ubmVjdGlvbiBvZiB0aGUgZnJhbWUuCi0g
ICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBDbGllbnRUeXBlPgotICAgICAgICB2b2lkIHVucmVn
aXN0ZXJDbGllbnQoQ2xpZW50VHlwZSogY2xpZW50KQotICAgICAgICB7Ci0gICAgICAgICAgICBp
ZiAoIW1fZnJhbWVDb250cm9sbGVyKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAg
ICAgICAgbV9mcmFtZUNvbnRyb2xsZXItPnVucmVnaXN0ZXIoc3RhdGljX2Nhc3Q8Q2xpZW50VHlw
ZSo+KGNsaWVudCkpOwotICAgICAgICAgICAgbV9mcmFtZUNvbnRyb2xsZXIgPSAwOwotICAgICAg
ICB9Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXIoKSA9IDA7Ci0gICAgICAgIGZy
aWVuZCBjbGFzcyBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcjsKLQotICAgICAgICBNZWRpYVN0
cmVhbUZyYW1lQ29udHJvbGxlciogbV9mcmFtZUNvbnRyb2xsZXI7Ci0gICAgICAgIElkVHlwZSBt
X2NsaWVudElkOwotICAgIH07Ci0KLSAgICBjbGFzcyBNZWRpYVN0cmVhbUNsaWVudCA6IHB1Ymxp
YyBDbGllbnRCYXNlPFN0cmluZz4gewotICAgIHB1YmxpYzoKLSAgICAgICAgTWVkaWFTdHJlYW1D
bGllbnQoTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIqIGZyYW1lQ29udHJvbGxlciwgY29uc3Qg
U3RyaW5nJiBsYWJlbCwgYm9vbCBpc0xvY2FsTWVkaWFTdHJlYW0pCi0gICAgICAgICAgICA6IENs
aWVudEJhc2U8U3RyaW5nPihmcmFtZUNvbnRyb2xsZXIsIGxhYmVsKQotICAgICAgICAgICAgLCBt
X2lzTG9jYWxNZWRpYVN0cmVhbShpc0xvY2FsTWVkaWFTdHJlYW0pIHsgfQotCi0gICAgICAgIHZp
cnR1YWwgfk1lZGlhU3RyZWFtQ2xpZW50KCkgeyB1bnJlZ2lzdGVyKCk7IH0KLQotICAgICAgICB2
aXJ0dWFsIGJvb2wgaXNNZWRpYVN0cmVhbSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLQotICAg
ICAgICAvLyBBY2Nlc3NlZCBieSB0aGUgZGVzdHJ1Y3Rvci4KLSAgICAgICAgdmlydHVhbCBib29s
IGlzTG9jYWxNZWRpYVN0cmVhbSgpIGNvbnN0IHsgcmV0dXJuIG1faXNMb2NhbE1lZGlhU3RyZWFt
OyB9Ci0KLSAgICAgICAgLy8gU3RyZWFtIGhhcyBlbmRlZCBmb3Igc29tZSBleHRlcm5hbCByZWFz
b24uCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzdHJlYW1FbmRlZCgpID0gMDsKLQotICAgIHByaXZh
dGU6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyKCkgeyB1bnJlZ2lzdGVyQ2xpZW50
KHRoaXMpOyB9Ci0gICAgICAgIGJvb2wgbV9pc0xvY2FsTWVkaWFTdHJlYW07Ci0gICAgfTsKLQot
ICAgIC8vIEdlbmVyaWMgY2xpZW50cyBhcmUgb2JqZWN0cyB0aGF0IHJlcXVpcmUgYWNjZXNzIHRv
IHRoZSBmcmFtZSBjb250cm9sbGVyIGJ1dCBkb24ndCBoYXZlIGEgZ2xvYmFsIGlkIChsaWtlIHN0
cmVhbXMgZG8pCi0gICAgLy8gb3IgbmVlZCB0byByZWNlaXZlIGFueSBtZXNzYWdlcyBmcm9tIHRo
ZSBlbWJlZGRlciBjbGllbnQuCi0gICAgY2xhc3MgR2VuZXJpY0NsaWVudCA6IHB1YmxpYyBDbGll
bnRCYXNlPGludD4gewotICAgIHB1YmxpYzoKLSAgICAgICAgR2VuZXJpY0NsaWVudCgpIHsgfQot
ICAgICAgICBHZW5lcmljQ2xpZW50KE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKiBmcmFtZUNv
bnRyb2xsZXIsIGludCBpZCkgOiBDbGllbnRCYXNlPGludD4oZnJhbWVDb250cm9sbGVyLCBpZCkg
eyB9Ci0gICAgICAgIHZpcnR1YWwgfkdlbmVyaWNDbGllbnQoKSB7IHVucmVnaXN0ZXIoKTsgfQot
ICAgICAgICB2aXJ0dWFsIGJvb2wgaXNHZW5lcmljQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXIoKSB7
IHVucmVnaXN0ZXJDbGllbnQodGhpcyk7IH0KLSAgICB9OwotCi0gICAgY2xhc3MgUGVlckNvbm5l
Y3Rpb25DbGllbnQgOiBwdWJsaWMgR2VuZXJpY0NsaWVudCB7Ci0gICAgcHVibGljOgotICAgICAg
ICBQZWVyQ29ubmVjdGlvbkNsaWVudChNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlciogZnJhbWVD
b250cm9sbGVyLCBpbnQgaWQpIDogR2VuZXJpY0NsaWVudChmcmFtZUNvbnRyb2xsZXIsIGlkKSB7
IH0KLSAgICAgICAgdmlydHVhbCB+UGVlckNvbm5lY3Rpb25DbGllbnQoKSB7IH0KLSAgICAgICAg
dmlydHVhbCBib29sIGlzUGVlckNvbm5lY3Rpb24oKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0g
ICAgfTsKLQotICAgIE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKEZyYW1lKik7Ci0gICAgdmly
dHVhbCB+TWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIoKTsKLQotICAgIFNlY3VyaXR5T3JpZ2lu
KiBzZWN1cml0eU9yaWdpbigpIGNvbnN0OwotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsKLQotICAgIGJvb2wgaXNDbGllbnRBdmFpbGFi
bGUoKSBjb25zdDsKLSAgICB2b2lkIGRpc2Nvbm5lY3RQYWdlKCk7Ci0gICAgdm9pZCBkaXNjb25u
ZWN0RnJhbWUoKTsKLSAgICB2b2lkIHRyYW5zZmVyVG9OZXdQYWdlKFBhZ2UqKTsKLQotICAgIHN0
YXRpYyBHZW5lcmF0ZVN0cmVhbU9wdGlvbkZsYWdzIHBhcnNlR2VuZXJhdGVTdHJlYW1PcHRpb25z
KGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgZ2VuZXJhdGVTdHJlYW0oY29uc3QgU3RyaW5nJiBv
cHRpb25zLCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaz4sIFBh
c3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjaz4sIEV4Y2VwdGlvbkNvZGUm
KTsKLSAgICB2b2lkIHN0b3BHZW5lcmF0ZWRTdHJlYW0oY29uc3QgU3RyaW5nJiBzdHJlYW1MYWJl
bCk7Ci0gICAgdm9pZCBzZXRNZWRpYVN0cmVhbVRyYWNrRW5hYmxlZChjb25zdCBTdHJpbmcmIHRy
YWNrSWQsIGJvb2wgZW5hYmxlZCk7Ci0KLSAgICBQYXNzUmVmUHRyPFBlZXJDb25uZWN0aW9uPiBj
cmVhdGVQZWVyQ29ubmVjdGlvbihjb25zdCBTdHJpbmcmIGNvbmZpZ3VyYXRpb24sIFBhc3NSZWZQ
dHI8U2lnbmFsaW5nQ2FsbGJhY2s+KTsKLSAgICB2b2lkIG5ld1BlZXJDb25uZWN0aW9uKGludCBw
ZWVyQ29ubmVjdGlvbklkLCBjb25zdCBTdHJpbmcmIGNvbmZpZ3VyYXRpb24pOwotICAgIHZvaWQg
c3RhcnROZWdvdGlhdGlvbihpbnQgcGVlckNvbm5lY3Rpb25JZCk7Ci0gICAgdm9pZCBwcm9jZXNz
U2lnbmFsaW5nTWVzc2FnZShpbnQgcGVlckNvbm5lY3Rpb25JZCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlKTsKLSAgICB2b2lkIG1lc3NhZ2UoaW50IHBlZXJDb25uZWN0aW9uSWQsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSk7Ci0gICAgdm9pZCBhZGRTdHJlYW0oaW50IHBlZXJDb25uZWN0aW9uSWQsIFBh
c3NSZWZQdHI8TWVkaWFTdHJlYW0+KTsKLSAgICB2b2lkIHJlbW92ZVN0cmVhbShpbnQgcGVlckNv
bm5lY3Rpb25JZCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4pOwotICAgIHZvaWQgY2xvc2VQZWVy
Q29ubmVjdGlvbihpbnQgcGVlckNvbm5lY3Rpb25JZCk7Ci0KLSAgICAvLyAtLS0gQ2FsbHMgY29t
aW5nIGJhY2sgZnJvbSB0aGUgY29udHJvbGxlci4gLS0tIC8vCi0KLSAgICB2b2lkIHN0cmVhbUdl
bmVyYXRlZChpbnQgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIHN0cmVhbUxhYmVsLCBQYXNzUmVm
UHRyPE1lZGlhU3RyZWFtVHJhY2tMaXN0PiB0cmFja3MpOwotICAgIHZvaWQgc3RyZWFtR2VuZXJh
dGlvbkZhaWxlZChpbnQgcmVxdWVzdElkLCBOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvcjo6RXJyb3JD
b2RlKTsKLSAgICB2b2lkIHN0cmVhbUZhaWxlZChjb25zdCBTdHJpbmcmIHN0cmVhbUxhYmVsKTsK
LQotICAgIHZvaWQgb25TaWduYWxpbmdNZXNzYWdlKGludCBwZWVyQ29ubmVjdGlvbklkLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpOwotICAgIHZvaWQgb25NZXNzYWdlKGludCBwZWVyQ29ubmVjdGlv
bklkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwotICAgIHZvaWQgb25BZGRTdHJlYW0oaW50IHBl
ZXJDb25uZWN0aW9uSWQsIGNvbnN0IFN0cmluZyYgc3RyZWFtTGFiZWwsIFBhc3NSZWZQdHI8TWVk
aWFTdHJlYW1UcmFja0xpc3Q+KTsKLSAgICB2b2lkIG9uUmVtb3ZlU3RyZWFtKGludCBwZWVyQ29u
bmVjdGlvbklkLCBjb25zdCBTdHJpbmcmIHN0cmVhbUxhYmVsKTsKLSAgICB2b2lkIG9uTmVnb3Rp
YXRpb25TdGFydGVkKGludCBwZWVyQ29ubmVjdGlvbklkKTsKLSAgICB2b2lkIG9uTmVnb3RpYXRp
b25Eb25lKGludCBwZWVyQ29ubmVjdGlvbklkKTsKLQotcHJpdmF0ZToKLSAgICBjbGFzcyBSZXF1
ZXN0OwotICAgIGNsYXNzIEdlbmVyYXRlU3RyZWFtUmVxdWVzdDsKLQotICAgIGNsYXNzIElkR2Vu
ZXJhdG9yIHsKLSAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSWRHZW5lcmF0b3IpOwotICAg
IHB1YmxpYzoKLSAgICAgICAgSWRHZW5lcmF0b3IoKSA6IG1faWQoMCkgeyB9Ci0gICAgICAgIGlu
dCBnZXROZXh0SWQoKSB7IHJldHVybiArK21faWQ7IH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAg
IGludCBtX2lkOwotICAgIH07Ci0KLSAgICBjbGFzcyBSZXF1ZXN0TWFwIDogcHVibGljIElkR2Vu
ZXJhdG9yLCBwdWJsaWMgSGFzaE1hcDxpbnQsIFJlZlB0cjxSZXF1ZXN0PiA+IHsKLSAgICBwdWJs
aWM6Ci0gICAgICAgIHZvaWQgYWJvcnQoaW50IHJlcXVlc3RJZCk7Ci0gICAgICAgIHZvaWQgYWJv
cnRBbGwoKTsKLSAgICB9OwotCi0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIElkVHlwZT4KLSAgICBj
bGFzcyBDbGllbnRNYXBCYXNlIDogcHVibGljIEhhc2hNYXA8SWRUeXBlLCBDbGllbnRCYXNlPElk
VHlwZT4qID4gewotICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDbGllbnRNYXBCYXNlKTsK
LSAgICBwdWJsaWM6Ci0gICAgICAgIHR5cGVkZWYgSGFzaE1hcDxJZFR5cGUsIENsaWVudEJhc2U8
SWRUeXBlPiogPiBNYXBUeXBlOwotCi0gICAgICAgIENsaWVudE1hcEJhc2UoKSB7IH0KLSAgICAg
ICAgdm9pZCB1bnJlZ2lzdGVyQWxsKCk7Ci0gICAgICAgIHZvaWQgZGV0YWNoRW1iZWRkZXIoKTsK
LSAgICB9OwotCi0gICAgLy8gU3RyZWFtcyBhcmUgYSBzcGVjaWFsIGNsYXNzIG9mIGNsaWVudHMg
c2luY2UgdGhleSBhcmUgaWRlbnRpZmllZCBieSBhIGdsb2JhbCBsYWJlbCBzdHJpbmcgaW5zdGVh
ZCBvZiBhbiBpZC4KLSAgICB0eXBlZGVmIENsaWVudE1hcEJhc2U8U3RyaW5nPiBTdHJlYW1NYXA7
Ci0KLSAgICAvLyBBbGwgb3RoZXIgdHlwZXMgb2YgY2xpZW50cyB1c2UgYXV0b2dlbmVyYXRlZCBp
bnRlZ2VyIGlkcy4KLSAgICBjbGFzcyBDbGllbnRNYXAgOiBwdWJsaWMgSWRHZW5lcmF0b3IsIHB1
YmxpYyBDbGllbnRNYXBCYXNlPGludD4geyB9OwotCi0gICAgLy8gRGV0YWNoZWQgZnJvbSBhIHBh
Z2UsIGFuZCBoZW5jZSBmcm9tIGEgZW1iZWRkZXIgY2xpZW50LgotICAgIHZvaWQgZW50ZXJEZXRh
Y2hlZFN0YXRlKCk7Ci0KLSAgICB2b2lkIHVucmVnaXN0ZXIoTWVkaWFTdHJlYW1DbGllbnQqKTsK
LSAgICB2b2lkIHVucmVnaXN0ZXIoR2VuZXJpY0NsaWVudCopOwotICAgIE1lZGlhU3RyZWFtQ29u
dHJvbGxlciogcGFnZUNvbnRyb2xsZXIoKSBjb25zdDsKLSAgICBNZWRpYVN0cmVhbSogZ2V0U3Ry
ZWFtRnJvbUxhYmVsKGNvbnN0IFN0cmluZyYpIGNvbnN0OwotCi0gICAgUmVxdWVzdE1hcCBtX3Jl
cXVlc3RzOwotICAgIENsaWVudE1hcCBtX2NsaWVudHM7Ci0gICAgU3RyZWFtTWFwIG1fc3RyZWFt
czsKLQotICAgIEZyYW1lKiBtX2ZyYW1lOwotICAgIGJvb2wgbV9pc0luRGV0YWNoZWRTdGF0ZTsK
LX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
VFJFQU0pCi0KLSNlbmRpZiAvLyBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL05hdmlnYXRvci5jcHAKaW5kZXggYjFlNGFiMS4uOGVlNTYxYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TmF2aWdhdG9yLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkNvb2tpZUphci5oIgog
I2luY2x1ZGUgIkRPTU1pbWVUeXBlQXJyYXkuaCIKICNpbmNsdWRlICJET01QbHVnaW5BcnJheS5o
IgorI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCkBAIC0zNSw5ICszNiw2IEBA
CiAjaW5jbHVkZSAiR2VvbG9jYXRpb24uaCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAi
TGFuZ3VhZ2UuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlci5oIgotI2lu
Y2x1ZGUgIk5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJOYXZp
Z2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5j
bHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKQEAgLTQ3LDYg
KzQ1LDEzIEBACiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGli
RXh0cmFzLmg+CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2luY2x1ZGUgIk5hdmlnYXRv
clVzZXJNZWRpYUVycm9yQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3JVc2VyTWVkaWFT
dWNjZXNzQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDb250cm9sbGVyLmgiCisjaW5j
bHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IE5hdmlnYXRvcjo6TmF2aWdhdG9yKEZyYW1lKiBmcmFtZSkKQEAgLTc5LDYgKzg0LDExIEBAIHZv
aWQgTmF2aWdhdG9yOjpkaXNjb25uZWN0RnJhbWUoKQogICAgICAgICBtX2dlb2xvY2F0aW9uLT5k
aXNjb25uZWN0RnJhbWUoKTsKICAgICAgICAgbV9nZW9sb2NhdGlvbiA9IDA7CiAgICAgfQorI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgaWYgKG1fZnJhbWUgJiYgbV9mcmFtZS0+cGFnZSgp
KQorICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPnVzZXJNZWRpYUNvbnRyb2xsZXIoKS0+Y2FuY2Vs
QWxsVXNlck1lZGlhUmVxdWVzdHMoKTsKKyNlbmRpZgorCiAgICAgbV9mcmFtZSA9IDA7CiB9CiAK
QEAgLTI4Miw4ICsyOTIsNDkgQEAgdm9pZCBOYXZpZ2F0b3I6OnJlZ2lzdGVyUHJvdG9jb2xIYW5k
bGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIHVybCwKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogdm9pZCBOYXZpZ2F0b3I6OndlYmtpdEdldFVzZXJNZWRpYShjb25zdCBT
dHJpbmcmIG9wdGlvbnMsIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxi
YWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JD
YWxsYmFjaz4gZXJyb3JDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgaWYgKG1f
ZnJhbWUgJiYgbV9mcmFtZS0+bWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIoKSkKLSAgICAgICAg
bV9mcmFtZS0+bWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIoKS0+Z2VuZXJhdGVTdHJlYW0ob3B0
aW9ucywgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCBlYyk7CisgICAgaWYgKCFzdWNj
ZXNzQ2FsbGJhY2spCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9mcmFtZSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKKyAgICBpZiAo
IXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQgPSBtX2ZyYW1lLT5leGlzdGluZ0RPTVdpbmRvdygpLT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCk7CisgICAgUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHJlcXVlc3QgPSBVc2VyTWVkaWFS
ZXF1ZXN0OjpjcmVhdGUoKTsKKyAgICByZXF1ZXN0LT5vcmlnaW4gPSBjb250ZXh0LT5zZWN1cml0
eU9yaWdpbigpLT50b1N0cmluZygpOworCisgICAgVmVjdG9yPFN0cmluZz4gb3B0aW9uc0xpc3Q7
CisgICAgb3B0aW9ucy5zcGxpdCgiLCIsIG9wdGlvbnNMaXN0KTsKKworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgb3B0aW9uc0xpc3Quc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgVmVjdG9yPFN0
cmluZz4gc3ViT3B0aW9uc0xpc3Q7CisgICAgICAgIG9wdGlvbnNMaXN0W2ldLnNwbGl0KCIgIiwg
c3ViT3B0aW9uc0xpc3QpOworCisgICAgICAgIGlmIChzdWJPcHRpb25zTGlzdFswXSA9PSAiYXVk
aW8iKSB7CisgICAgICAgICAgICByZXF1ZXN0LT5hdWRpbyA9IHRydWU7CisgICAgICAgICAgICBp
ZiAoc3ViT3B0aW9uc0xpc3QuY29udGFpbnMoImRlZmF1bHQiKSkKKyAgICAgICAgICAgICAgICBy
ZXF1ZXN0LT5hdWRpb1ByZWZlcmVuY2VEZWZhdWx0ID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAg
ICBlbHNlIGlmIChzdWJPcHRpb25zTGlzdFswXSA9PSAidmlkZW8iKSB7CisgICAgICAgICAgICBy
ZXF1ZXN0LT52aWRlbyA9IHRydWU7CisgICAgICAgICAgICBpZiAoc3ViT3B0aW9uc0xpc3QuY29u
dGFpbnMoInVzZXIiKSkKKyAgICAgICAgICAgICAgICByZXF1ZXN0LT5jYW1lcmFQcmVmZXJlbmNl
VXNlciA9IHRydWU7CisgICAgICAgICAgICBpZiAoc3ViT3B0aW9uc0xpc3QuY29udGFpbnMoImVu
dmlyb25tZW50IikpCisgICAgICAgICAgICAgICAgcmVxdWVzdC0+Y2FtZXJhUHJlZmVyZW5jZUVu
dmlyb25tZW50ID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdWJPcHRpb25zTGlzdC5jb250YWlu
cygiZGVmYXVsdCIpKQorICAgICAgICAgICAgICAgIHJlcXVlc3QtPnZpZGVvUHJlZmVyZW5jZURl
ZmF1bHQgPSB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFyZXF1ZXN0LT5hdWRp
byAmJiAhcmVxdWVzdC0+dmlkZW8pIHsKKyAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHBhZ2UtPnVzZXJNZWRpYUNvbnRyb2xsZXIo
KS0+cmVxdWVzdFVzZXJNZWRpYShyZXF1ZXN0LnJlbGVhc2UoKSwgc3VjY2Vzc0NhbGxiYWNrLCBl
cnJvckNhbGxiYWNrLCBjb250ZXh0KTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL05hdmlnYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3Iu
aAppbmRleCA4ZDFjNjllLi42NmJkZjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L05hdmlnYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmgKQEAgLTM1
LDYgKzM1LDcgQEAgY2xhc3MgR2VvbG9jYXRpb247CiBjbGFzcyBOYXZpZ2F0b3JVc2VyTWVkaWFF
cnJvckNhbGxiYWNrOwogY2xhc3MgTmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrOwog
Y2xhc3MgUGx1Z2luRGF0YTsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKIHR5cGVk
ZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmgKaW5kZXggMTUzOTcwOS4uZGQzYzhiMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNh
bGxiYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJv
ckNhbGxiYWNrLmgKQEAgLTI3LDE0ICsyNywxMiBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKIAotI2luY2x1ZGUgIkNhbGxiYWNrVGFzay5oIgogI2luY2x1ZGUgIk5hdmlnYXRvclVzZXJN
ZWRpYUVycm9yLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrIDogcHVibGlj
IFJlZkNvdW50ZWQ8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjaz4sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIENhbGxiYWNrVGFzazE8TmF2aWdh
dG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjaywgTmF2aWdhdG9yVXNlck1lZGlhRXJyb3I+OjpTY2hl
ZHVsZXIgeworY2xhc3MgTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjayA6IHB1YmxpYyBS
ZWZDb3VudGVkPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2s+IHsKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5OYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrKCkgeyB9CiAgICAgdmly
dHVhbCBib29sIGhhbmRsZUV2ZW50KE5hdmlnYXRvclVzZXJNZWRpYUVycm9yKikgPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKaW5kZXggOTZkNzVkYi4uZjAzZDAxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBA
IC01MSw4ICs1MSw2IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAj
aW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhQ2FuU3RhcnRMaXN0ZW5lci5oIgot
I2luY2x1ZGUgIk1lZGlhU3RyZWFtQ2xpZW50LmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1Db250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCiAjaW5jbHVkZSAiTmV0d29ya1N0YXRl
Tm90aWZpZXIuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKQEAgLTgzLDYgKzgxLDEwIEBACiAj
aW5jbHVkZSAiR2VvbG9jYXRpb25Db250cm9sbGVyLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisjaW5jbHVkZSAiVXNlck1lZGlhQ29udHJvbGxlci5oIgorI2VuZGlmCisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIEhhc2hTZXQ8UGFnZSo+KiBhbGxQYWdlczsK
QEAgLTEyOCwxMiArMTMwLDEyIEBAIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRz
KQogICAgICwgbV9kZXZpY2VNb3Rpb25Db250cm9sbGVyKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OmRldmljZU1vdGlvbkVuYWJsZWQoKSA/IGFkb3B0UHRyKG5ldyBEZXZpY2VNb3Rpb25Db250cm9s
bGVyKHBhZ2VDbGllbnRzLmRldmljZU1vdGlvbkNsaWVudCkpIDogbnVsbHB0cikKICAgICAsIG1f
ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmRldmlj
ZU9yaWVudGF0aW9uRW5hYmxlZCgpID8gYWRvcHRQdHIobmV3IERldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlcih0aGlzLCBwYWdlQ2xpZW50cy5kZXZpY2VPcmllbnRhdGlvbkNsaWVudCkpIDogbnVs
bHB0cikKICNlbmRpZgotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgLCBtX21lZGlhU3Ry
ZWFtQ29udHJvbGxlcihSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjptZWRpYVN0cmVhbUVuYWJsZWQo
KSA/IGFkb3B0UHRyKG5ldyBNZWRpYVN0cmVhbUNvbnRyb2xsZXIocGFnZUNsaWVudHMubWVkaWFT
dHJlYW1DbGllbnQpKSA6IFBhc3NPd25QdHI8TWVkaWFTdHJlYW1Db250cm9sbGVyPigpKQotI2Vu
ZGlmCiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICAsIG1fc3BlZWNoSW5wdXRDbGllbnQo
cGFnZUNsaWVudHMuc3BlZWNoSW5wdXRDbGllbnQpCiAjZW5kaWYKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorICAgICwgbV91c2VyTWVkaWFDb250cm9sbGVyKGFkb3B0UHRyKG5ldyBVc2VyTWVk
aWFDb250cm9sbGVyKHRoaXMsIHBhZ2VDbGllbnRzLnVzZXJNZWRpYUNsaWVudCkpKQorI2VuZGlm
CiAgICAgLCBtX3NldHRpbmdzKGFkb3B0UHRyKG5ldyBTZXR0aW5ncyh0aGlzKSkpCiAgICAgLCBt
X3Byb2dyZXNzKGFkb3B0UHRyKG5ldyBQcm9ncmVzc1RyYWNrZXIpKQogICAgICwgbV9iYWNrRm9y
d2FyZENvbnRyb2xsZXIoYWRvcHRQdHIobmV3IEJhY2tGb3J3YXJkQ29udHJvbGxlcih0aGlzLCBw
YWdlQ2xpZW50cy5iYWNrRm9yd2FyZENsaWVudCkpKQpAQCAtOTk4LDcgKzEwMDAsNyBAQCBQYWdl
OjpQYWdlQ2xpZW50czo6UGFnZUNsaWVudHMoKQogICAgICwgZGV2aWNlTW90aW9uQ2xpZW50KDAp
CiAgICAgLCBkZXZpY2VPcmllbnRhdGlvbkNsaWVudCgwKQogICAgICwgc3BlZWNoSW5wdXRDbGll
bnQoMCkKLSAgICAsIG1lZGlhU3RyZWFtQ2xpZW50KDApCisgICAgLCB1c2VyTWVkaWFDbGllbnQo
MCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA0ODUxMmUwLi4zNTFjYzVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaApAQCAtNzAsOCArNzAsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgSW5z
cGVjdG9yQ2xpZW50OwogICAgIGNsYXNzIEluc3BlY3RvckNvbnRyb2xsZXI7CiAgICAgY2xhc3Mg
TWVkaWFDYW5TdGFydExpc3RlbmVyOwotICAgIGNsYXNzIE1lZGlhU3RyZWFtQ2xpZW50OwotICAg
IGNsYXNzIE1lZGlhU3RyZWFtQ29udHJvbGxlcjsKICAgICBjbGFzcyBOb2RlOwogICAgIGNsYXNz
IFBhZ2VHcm91cDsKICAgICBjbGFzcyBQbHVnaW5EYXRhOwpAQCAtODMsNiArODEsOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgU2V0dGluZ3M7CiAgICAgY2xhc3MgU3BlZWNoSW5w
dXQ7CiAgICAgY2xhc3MgU3BlZWNoSW5wdXRDbGllbnQ7CisgICAgY2xhc3MgVXNlck1lZGlhQ2xp
ZW50OworICAgIGNsYXNzIFVzZXJNZWRpYUNvbnRyb2xsZXI7CiAjaWYgRU5BQkxFKERPTV9TVE9S
QUdFKQogICAgIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2U7CiAjZW5kaWYKQEAgLTExNyw3ICsxMTcs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudCogZGV2aWNlT3JpZW50YXRpb25DbGllbnQ7CiAgICAgICAgICAgICBSZWZQdHI8QmFja0Zv
cndhcmRMaXN0PiBiYWNrRm9yd2FyZENsaWVudDsKICAgICAgICAgICAgIFNwZWVjaElucHV0Q2xp
ZW50KiBzcGVlY2hJbnB1dENsaWVudDsKLSAgICAgICAgICAgIE1lZGlhU3RyZWFtQ2xpZW50KiBt
ZWRpYVN0cmVhbUNsaWVudDsKKyAgICAgICAgICAgIFVzZXJNZWRpYUNsaWVudCogdXNlck1lZGlh
Q2xpZW50OwogICAgICAgICB9OwogCiAgICAgICAgIFBhZ2UoUGFnZUNsaWVudHMmKTsKQEAgLTE4
MywxMiArMTgzLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgRGV2aWNlTW90aW9u
Q29udHJvbGxlciogZGV2aWNlTW90aW9uQ29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2
aWNlTW90aW9uQ29udHJvbGxlci5nZXQoKTsgfQogICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIqIGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuIG1f
ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmdldCgpOyB9CiAjZW5kaWYKLSNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQotICAgICAgICBNZWRpYVN0cmVhbUNvbnRyb2xsZXIqIG1lZGlhU3RyZWFt
Q29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdHJlYW1Db250cm9sbGVyLmdldCgp
OyB9Ci0jZW5kaWYKICNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQogICAgICAgICBTcGVlY2hJbnB1
dCogc3BlZWNoSW5wdXQoKTsKICNlbmRpZgorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAg
ICAgIFVzZXJNZWRpYUNvbnRyb2xsZXIqIHVzZXJNZWRpYUNvbnRyb2xsZXIoKSBjb25zdCB7IHJl
dHVybiBtX3VzZXJNZWRpYUNvbnRyb2xsZXIuZ2V0KCk7IH0KKyNlbmRpZgogICAgICAgICBTZXR0
aW5ncyogc2V0dGluZ3MoKSBjb25zdCB7IHJldHVybiBtX3NldHRpbmdzLmdldCgpOyB9CiAgICAg
ICAgIFByb2dyZXNzVHJhY2tlciogcHJvZ3Jlc3MoKSBjb25zdCB7IHJldHVybiBtX3Byb2dyZXNz
LmdldCgpOyB9CiAgICAgICAgIEJhY2tGb3J3YXJkQ29udHJvbGxlciogYmFja0ZvcndhcmQoKSBj
b25zdCB7IHJldHVybiBtX2JhY2tGb3J3YXJkQ29udHJvbGxlci5nZXQoKTsgfQpAQCAtMzQzLDEz
ICszNDMsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBPd25QdHI8RGV2aWNlTW90
aW9uQ29udHJvbGxlcj4gbV9kZXZpY2VNb3Rpb25Db250cm9sbGVyOwogICAgICAgICBPd25QdHI8
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyPiBtX2RldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
cjsKICNlbmRpZgotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgICAgIE93blB0cjxNZWRp
YVN0cmVhbUNvbnRyb2xsZXI+IG1fbWVkaWFTdHJlYW1Db250cm9sbGVyOwotI2VuZGlmCiAjaWYg
RU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICAgICAgU3BlZWNoSW5wdXRDbGllbnQqIG1fc3BlZWNo
SW5wdXRDbGllbnQ7CiAgICAgICAgIE93blB0cjxTcGVlY2hJbnB1dD4gbV9zcGVlY2hJbnB1dDsK
ICNlbmRpZgorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgICAgIE93blB0cjxVc2VyTWVk
aWFDb250cm9sbGVyPiBtX3VzZXJNZWRpYUNvbnRyb2xsZXI7CisjZW5kaWYKICAgICAgICAgT3du
UHRyPFNldHRpbmdzPiBtX3NldHRpbmdzOwogICAgICAgICBPd25QdHI8UHJvZ3Jlc3NUcmFja2Vy
PiBtX3Byb2dyZXNzOwogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1YzQ5OTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbU1hbmFnZXIuY3BwCkBAIC0w
LDAgKzEsMTEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEVyaWNzc29uIEFCLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEVyaWNzc29uIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0
aGlzCisgKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZWRpYVN0cmVhbU1hbmFnZXIuaCIKKworI2luY2x1ZGUg
Ik1haW5UaHJlYWQuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbS5oIgorI2luY2x1ZGUgIk1lZGlh
U3RyZWFtTWFuYWdlclByaXZhdGUuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVJlZ2lzdHJ5Lmgi
CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworI2RlZmluZSBNZWRpYVN0cmVhbU1hbmFn
ZXJQcml2YXRlQ2xhc3NOYW1lIE51bGxNZWRpYVN0cmVhbU1hbmFnZXJQcml2YXRlCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworTWVkaWFTdHJlYW1NYW5hZ2VyJiBtZWRpYVN0cmVhbU1hbmFnZXIo
KQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChNZWRpYVN0cmVhbU1hbmFnZXIsIGluc3RhbmNlLCAoKSk7CisgICAgcmV0dXJuIGluc3RhbmNl
OworfQorCitjbGFzcyBOdWxsTWVkaWFTdHJlYW1NYW5hZ2VyUHJpdmF0ZSA6IHB1YmxpYyBNZWRp
YVN0cmVhbU1hbmFnZXJQcml2YXRlSW50ZXJmYWNlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c093blB0cjxNZWRpYVN0cmVhbU1hbmFnZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFT
dHJlYW1NYW5hZ2VyKikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgTnVsbE1l
ZGlhU3RyZWFtTWFuYWdlclByaXZhdGUoKSk7CisgICAgfQorCisgICAgdm9pZCBxdWVyeVVzZXJN
ZWRpYShjb25zdCBTdHJpbmcmIHF1ZXJ5SWQsIGludCBtZWRpYVR5cGVzLCBVc2VyTWVkaWFRdWVy
eUNsaWVudCopIHsgfQorCisgICAgdm9pZCBzZXRNZWRpYVN0cmVhbUNvbXBvbmVudEVuYWJsZWQo
Y29uc3QgU3RyaW5nJiBzdHJlYW1JZCwgbG9uZyBjb21wb25lbnRJbmRleCwgYm9vbCBlbmFibGVk
KSB7IH0KKyAgICB2b2lkIHN0b3BMb2NhbE1lZGlhU3RyZWFtKGNvbnN0IFN0cmluZyYgc3RyZWFt
SWQpIHsgfQorCitwcml2YXRlOgorICAgIE51bGxNZWRpYVN0cmVhbU1hbmFnZXJQcml2YXRlKCkg
eyB9Cit9OworCitNZWRpYVN0cmVhbU1hbmFnZXI6Ok1lZGlhU3RyZWFtTWFuYWdlcigpCisgICAg
OiBtX3ByaXZhdGUoTWVkaWFTdHJlYW1NYW5hZ2VyUHJpdmF0ZUNsYXNzTmFtZTo6Y3JlYXRlKHRo
aXMpKQoreworfQorCit2b2lkIE1lZGlhU3RyZWFtTWFuYWdlcjo6cXVlcnlVc2VyTWVkaWEoY29u
c3QgU3RyaW5nJiBxdWVyeUlkLCBpbnQgbWVkaWFUeXBlcywgVXNlck1lZGlhUXVlcnlDbGllbnQq
IGNsaWVudCkKK3sKKyAgICBtX3ByaXZhdGUtPnF1ZXJ5VXNlck1lZGlhKHF1ZXJ5SWQsIG1lZGlh
VHlwZXMsIGNsaWVudCk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1NYW5hZ2VyOjpzZXRNZWRpYVN0
cmVhbUNvbXBvbmVudEVuYWJsZWQoY29uc3QgU3RyaW5nJiBzdHJlYW1JZCwgbG9uZyBjb21wb25l
bnRJbmRleCwgYm9vbCBlbmFibGVkKQoreworICAgIFJlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0
b3I+IHN0cmVhbURlc2NyaXB0b3IgPSBtZWRpYVN0cmVhbVJlZ2lzdHJ5KCkubG9va3VwTWVkaWFT
dHJlYW1EZXNjcmlwdG9yKHN0cmVhbUlkKTsKKyAgICBpZiAoIXN0cmVhbURlc2NyaXB0b3IpCisg
ICAgICAgIHJldHVybjsKKyAgICBzdHJlYW1EZXNjcmlwdG9yLT5jb21wb25lbnRzW2NvbXBvbmVu
dEluZGV4XS0+ZW5hYmxlZCA9IGVuYWJsZWQ7CisKKyAgICBtX3ByaXZhdGUtPnNldE1lZGlhU3Ry
ZWFtQ29tcG9uZW50RW5hYmxlZChzdHJlYW1JZCwgY29tcG9uZW50SW5kZXgsIGVuYWJsZWQpOwor
fQorCit2b2lkIE1lZGlhU3RyZWFtTWFuYWdlcjo6c3RvcExvY2FsTWVkaWFTdHJlYW0oY29uc3Qg
U3RyaW5nJiBzdHJlYW1JZCkKK3sKKyAgICBtX3ByaXZhdGUtPnN0b3BMb2NhbE1lZGlhU3RyZWFt
KHN0cmVhbUlkKTsKK30KKwordm9pZCBNZWRpYVN0cmVhbU1hbmFnZXI6OnN0cmVhbUVuZGVkKGNv
bnN0IFN0cmluZyYgc3RyZWFtSWQpCit7CisgICAgUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRv
cj4gc3RyZWFtRGVzY3JpcHRvciA9IG1lZGlhU3RyZWFtUmVnaXN0cnkoKS5sb29rdXBNZWRpYVN0
cmVhbURlc2NyaXB0b3Ioc3RyZWFtSWQpOworICAgIGlmICghc3RyZWFtRGVzY3JpcHRvcikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgTWVkaWFTdHJlYW0qIHN0cmVhbSA9IHN0cmVhbURlc2NyaXB0
b3ItPm93bmVyOworICAgIGlmIChzdHJlYW0pCisgICAgICAgIHN0cmVhbS0+c3RyZWFtRW5kZWQo
KTsKKyAgICBlbHNlCisgICAgICAgIHN0cmVhbURlc2NyaXB0b3ItPmVuZGVkID0gdHJ1ZTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVB
TSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1NYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTA2
NzZiZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtTWFuYWdlci5oCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3Ry
aWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgRXJpY3Nzb24gbm9yIHRoZSBuYW1l
cyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBN
ZWRpYVN0cmVhbU1hbmFnZXJfaAorI2RlZmluZSBNZWRpYVN0cmVhbU1hbmFnZXJfaAorCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lZGlhU3RyZWFtQ29tcG9uZW50Lmgi
CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IE1lZGlhU3RyZWFtTWFuYWdlcjsKK2NsYXNzIE1lZGlhU3RyZWFtTWFuYWdlclByaXZhdGVJbnRl
cmZhY2U7CisKK01lZGlhU3RyZWFtTWFuYWdlciYgbWVkaWFTdHJlYW1NYW5hZ2VyKCk7CisKK2Ns
YXNzIFVzZXJNZWRpYVF1ZXJ5Q2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgdXNl
ck1lZGlhUXVlcnlDb21wbGV0ZWQoY29uc3QgU3RyaW5nJiBxdWVyeUlkLCBjb25zdCBNZWRpYVN0
cmVhbUNvbXBvbmVudExpc3QmKSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIH5Vc2Vy
TWVkaWFRdWVyeUNsaWVudCgpIHsgfQorfTsKKworY2xhc3MgTWVkaWFTdHJlYW1NYW5hZ2VyIHsK
KyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNZWRpYVN0cmVhbU1hbmFnZXIpOworICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIE1lZGlhU3RyZWFtTWFuYWdlcigpOwor
CisgICAgdm9pZCBxdWVyeVVzZXJNZWRpYShjb25zdCBTdHJpbmcmIHF1ZXJ5SWQsIGludCBtZWRp
YVR5cGVzLCBVc2VyTWVkaWFRdWVyeUNsaWVudCopOworCisgICAgdm9pZCBzZXRNZWRpYVN0cmVh
bUNvbXBvbmVudEVuYWJsZWQoY29uc3QgU3RyaW5nJiBzdHJlYW1JZCwgbG9uZyBjb21wb25lbnRJ
bmRleCwgYm9vbCBlbmFibGVkKTsKKyAgICB2b2lkIHN0b3BMb2NhbE1lZGlhU3RyZWFtKGNvbnN0
IFN0cmluZyYgc3RyZWFtSWQpOworCisgICAgdm9pZCBzdHJlYW1FbmRlZChjb25zdCBTdHJpbmcm
IHN0cmVhbUlkKTsKKworcHJpdmF0ZToKKyAgICBPd25QdHI8TWVkaWFTdHJlYW1NYW5hZ2VyUHJp
dmF0ZUludGVyZmFjZSo+IG1fcHJpdmF0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBNZWRpYVN0cmVh
bU1hbmFnZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1NYW5hZ2VyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1NYW5hZ2VyUHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjI5NzYwZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbU1hbmFnZXJQcml2YXRlLmgKQEAg
LTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBFcmljc3NvbiBBQi4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUg
bmFtZSBvZiBFcmljc3NvbiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAg
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20g
dGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lZGlhU3RyZWFtTWFuYWdlclByaXZhdGVfaAor
I2RlZmluZSBNZWRpYVN0cmVhbU1hbmFnZXJQcml2YXRlX2gKKworI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFVzZXJNZWRpYVF1ZXJ5Q2xpZW50OworCitjbGFzcyBNZWRpYVN0cmVhbU1h
bmFnZXJQcml2YXRlSW50ZXJmYWNlIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5NZWRpYVN0cmVh
bU1hbmFnZXJQcml2YXRlSW50ZXJmYWNlKCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgcXVlcnlV
c2VyTWVkaWEoY29uc3QgU3RyaW5nJiBxdWVyeUlkLCBpbnQgbWVkaWFUeXBlcywgVXNlck1lZGlh
UXVlcnlDbGllbnQqKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TWVkaWFTdHJlYW1Db21w
b25lbnRFbmFibGVkKGNvbnN0IFN0cmluZyYgc3RyZWFtSWQsIGxvbmcgY29tcG9uZW50SW5kZXgs
IGJvb2wgZW5hYmxlZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdG9wTG9jYWxNZWRpYVN0cmVh
bShjb25zdCBTdHJpbmcmIHN0cmVhbUlkKSA9IDA7Cit9OworCit9CisKKyNlbmRpZiAvLyBFTkFC
TEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gTWVkaWFTdHJlYW1NYW5hZ2VyUHJpdmF0ZV9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVySGFu
ZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVySGFuZGxl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRjNDJiYwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1BlZXJIYW5k
bGVyLmNwcApAQCAtMCwwICsxLDE0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBFcmlj
c3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4g
TmVpdGhlciB0aGUgbmFtZSBvZiBFcmljc3NvbiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmli
dXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiUGVlckhhbmRsZXIuaCIKKworI2lu
Y2x1ZGUgIlBlZXJIYW5kbGVyUHJpdmF0ZS5oIgorCisjZGVmaW5lIFBlZXJIYW5kbGVyUHJpdmF0
ZUNsYXNzTmFtZSBOdWxsUGVlckhhbmRsZXJQcml2YXRlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgTnVsbFBlZXJIYW5kbGVyUHJpdmF0ZSA6IHB1YmxpYyBQZWVySGFuZGxlclByaXZh
dGVJbnRlcmZhY2UgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPFBlZXJIYW5kbGVy
UHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKFBlZXJIYW5kbGVyKikKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgTnVsbFBlZXJIYW5kbGVyUHJpdmF0ZSgpKTsKKyAgICB9CisKKyAg
ICB2b2lkIHByb2R1Y2VJbml0aWFsT2ZmZXIoY29uc3QgTWVkaWFTdHJlYW1WZWN0b3ImKSB7IH0K
KyAgICB2b2lkIGhhbmRsZUluaXRpYWxPZmZlcihjb25zdCBTdHJpbmcmKSB7IH0KKyAgICB2b2lk
IHByb2Nlc3NTRFAoY29uc3QgU3RyaW5nJikgeyB9CisgICAgdm9pZCBhZGRQZW5kaW5nU3RyZWFt
cyhjb25zdCBNZWRpYVN0cmVhbVZlY3RvciYpIHsgfQorICAgIHZvaWQgcmVtb3ZlUGVuZGluZ1N0
cmVhbXMoY29uc3QgTWVkaWFTdHJlYW1WZWN0b3ImKSB7IH0KKworICAgIHZvaWQgc2VuZERhdGFT
dHJlYW1NZXNzYWdlKGNvbnN0IGNoYXIqLCB1bnNpZ25lZCkgeyB9CisgICAgYm9vbCBkYXRhU3Ry
ZWFtSXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorCisgICAgdm9pZCBzdG9wKCkg
eyB9Cit9OworCitQZWVySGFuZGxlcjo6UGVlckhhbmRsZXIoUGVlckhhbmRsZXJDbGllbnQqIGNs
aWVudCwgY29uc3QgUGFzc1JlZlB0cjxQZWVySGFuZGxlckNvbmZpZ3VyYXRpb24+IGNvbmZpZ3Vy
YXRpb24pCisgICAgOiBtX2NsaWVudChjbGllbnQpCisgICAgLCBtX2NvbmZpZ3VyYXRpb24oY29u
ZmlndXJhdGlvbikKKyAgICAsIG1fcHJpdmF0ZShQZWVySGFuZGxlclByaXZhdGVDbGFzc05hbWU6
OmNyZWF0ZSh0aGlzKSkKK3sKK30KKworUGVlckhhbmRsZXI6On5QZWVySGFuZGxlcigpCit7Cit9
CisKK3ZvaWQgUGVlckhhbmRsZXI6OnByb2R1Y2VJbml0aWFsT2ZmZXIoY29uc3QgTWVkaWFTdHJl
YW1WZWN0b3ImIHBlbmRpbmdTdHJlYW1zKQoreworICAgIG1fcHJpdmF0ZS0+cHJvZHVjZUluaXRp
YWxPZmZlcihwZW5kaW5nU3RyZWFtcyk7Cit9CisKK3ZvaWQgUGVlckhhbmRsZXI6OmhhbmRsZUlu
aXRpYWxPZmZlcihjb25zdCBTdHJpbmcmIHNkcCkKK3sKKyAgICBtX3ByaXZhdGUtPmhhbmRsZUlu
aXRpYWxPZmZlcihzZHApOworfQorCit2b2lkIFBlZXJIYW5kbGVyOjpwcm9jZXNzU0RQKGNvbnN0
IFN0cmluZyYgc2RwKQoreworICAgIG1fcHJpdmF0ZS0+cHJvY2Vzc1NEUChzZHApOworfQorCit2
b2lkIFBlZXJIYW5kbGVyOjphZGRQZW5kaW5nU3RyZWFtcyhjb25zdCBNZWRpYVN0cmVhbVZlY3Rv
ciYgcGVuZGluZ1N0cmVhbXMpCit7CisgICAgbV9wcml2YXRlLT5hZGRQZW5kaW5nU3RyZWFtcyhw
ZW5kaW5nU3RyZWFtcyk7Cit9CisKK3ZvaWQgUGVlckhhbmRsZXI6OnJlbW92ZVBlbmRpbmdTdHJl
YW1zKGNvbnN0IE1lZGlhU3RyZWFtVmVjdG9yJiBwZW5kaW5nU3RyZWFtcykKK3sKKyAgICBtX3By
aXZhdGUtPnJlbW92ZVBlbmRpbmdTdHJlYW1zKHBlbmRpbmdTdHJlYW1zKTsKK30KKwordm9pZCBQ
ZWVySGFuZGxlcjo6c2VuZERhdGFTdHJlYW1NZXNzYWdlKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2ln
bmVkIGxlbmd0aCkKK3sKKyAgICBpZiAoIW1fcHJpdmF0ZS0+ZGF0YVN0cmVhbUlzQWN0aXZlKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJpdmF0ZS0+c2VuZERhdGFTdHJlYW1NZXNzYWdl
KGRhdGEsIGxlbmd0aCk7Cit9CisKK3ZvaWQgUGVlckhhbmRsZXI6OnN0b3AoKQoreworICAgIG1f
cHJpdmF0ZS0+c3RvcCgpOworfQorCit2b2lkIFBlZXJIYW5kbGVyOjppY2VQcm9jZXNzaW5nQ29t
cGxldGVkKCkKK3sKKyAgICBtX2NsaWVudC0+aWNlUHJvY2Vzc2luZ0NvbXBsZXRlZCgpOworfQor
Cit2b2lkIFBlZXJIYW5kbGVyOjpzZHBHZW5lcmF0ZWQoY29uc3QgU3RyaW5nJiBzZHApCit7Cisg
ICAgbV9jbGllbnQtPnNkcEdlbmVyYXRlZChzZHApOworfQorCit2b2lkIFBlZXJIYW5kbGVyOjpk
YXRhU3RyZWFtTWVzc2FnZVJlY2VpdmVkKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0
aCkKK3sKKyAgICBtX2NsaWVudC0+ZGF0YVN0cmVhbU1lc3NhZ2VSZWNlaXZlZChkYXRhLCBsZW5n
dGgpOworfQorCit2b2lkIFBlZXJIYW5kbGVyOjpyZW1vdGVTdHJlYW1BZGRlZChjb25zdCBTdHJp
bmcmIHN0cmVhbUlkLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBNZWRpYVN0cmVhbUNvbXBv
bmVudExpc3QmIGNvbXBvbmVudHMpCit7CisgICAgbV9jbGllbnQtPnJlbW90ZVN0cmVhbUFkZGVk
KHN0cmVhbUlkLCBsYWJlbCwgY29tcG9uZW50cyk7Cit9CisKK3ZvaWQgUGVlckhhbmRsZXI6OnJl
bW90ZVN0cmVhbVJlbW92ZWQoY29uc3QgU3RyaW5nJiBzdHJlYW1JZCkKK3sKKyAgICBtX2NsaWVu
dC0+cmVtb3RlU3RyZWFtUmVtb3ZlZChzdHJlYW1JZCk7Cit9CisKK1BlZXJIYW5kbGVyQ29uZmln
dXJhdGlvbiogUGVlckhhbmRsZXI6OmNvbmZpZ3VyYXRpb24oKSBjb25zdAoreworICAgIHJldHVy
biBtX2NvbmZpZ3VyYXRpb24uZ2V0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVySGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUGVlckhhbmRsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4yNmM4M2E2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUGVlckhhbmRsZXIuaApAQCAtMCwwICsxLDEyOSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBFcmljc3NvbiBub3Ig
dGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFBlZXJIYW5kbGVyX2gKKyNkZWZpbmUgUGVlckhhbmRsZXJfaAorCisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCisjaW5jbHVkZSA8d3Rm
L093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBlZXJIYW5kbGVyUHJpdmF0
ZUludGVyZmFjZTsKKworc3RydWN0IFBlZXJIYW5kbGVyQ29uZmlndXJhdGlvbiA6IHB1YmxpYyBS
ZWZDb3VudGVkPFBlZXJIYW5kbGVyQ29uZmlndXJhdGlvbj4geworcHVibGljOgorICAgIGVudW0g
VHlwZSB7CisgICAgICAgIFR5cGVOT05FLAorICAgICAgICBUeXBlU1RVTiwKKyAgICAgICAgVHlw
ZVRVUk4KKyAgICB9OworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8UGVlckhhbmRsZXJDb25maWd1
cmF0aW9uPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQZWVy
SGFuZGxlckNvbmZpZ3VyYXRpb24oKSk7CisgICAgfQorCisgICAgVHlwZSB0eXBlOworICAgIGJv
b2wgc2VjdXJlOworICAgIFN0cmluZyBob3N0OworICAgIGludCBwb3J0OworICAgIFN0cmluZyB1
c2VybmFtZTsKKyAgICBTdHJpbmcgcGFzc3dvcmQ7CisKK3ByaXZhdGU6CisgICAgUGVlckhhbmRs
ZXJDb25maWd1cmF0aW9uKCkKKyAgICAgICAgOiB0eXBlKFR5cGVOT05FKQorICAgICAgICAsIHNl
Y3VyZShmYWxzZSkKKyAgICAgICAgLCBob3N0KCIiKQorICAgICAgICAsIHBvcnQoLTEpCisgICAg
ICAgICwgdXNlcm5hbWUoIiIpCisgICAgICAgICwgcGFzc3dvcmQoIiIpCisgICAgeyB9Cit9Owor
CitjbGFzcyBQZWVySGFuZGxlckNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+UGVlckhh
bmRsZXJDbGllbnQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBpY2VQcm9jZXNzaW5nQ29tcGxl
dGVkKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZHBHZW5lcmF0ZWQoY29uc3QgU3RyaW5nJiBz
ZHApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGF0YVN0cmVhbU1lc3NhZ2VSZWNlaXZlZChjb25z
dCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVt
b3RlU3RyZWFtQWRkZWQoY29uc3QgU3RyaW5nJiBzdHJlYW1JZCwgY29uc3QgU3RyaW5nJiBsYWJl
bCwgY29uc3QgTWVkaWFTdHJlYW1Db21wb25lbnRMaXN0JikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCByZW1vdGVTdHJlYW1SZW1vdmVkKGNvbnN0IFN0cmluZyYgc3RyZWFtSWQpID0gMDsKKworICAg
IHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
IGNvbnN0ID0gMDsKK307CisKK2NsYXNzIFBlZXJIYW5kbGVyIHsKKyAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShQZWVySGFuZGxlcik7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8UGVlckhhbmRsZXI+IGNyZWF0ZShQZWVySGFuZGxl
ckNsaWVudCogY2xpZW50LCBjb25zdCBQYXNzUmVmUHRyPFBlZXJIYW5kbGVyQ29uZmlndXJhdGlv
bj4gY29uZmlndXJhdGlvbikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGVl
ckhhbmRsZXIoY2xpZW50LCBjb25maWd1cmF0aW9uKSk7CisgICAgfQorICAgIHZpcnR1YWwgflBl
ZXJIYW5kbGVyKCk7CisKKyAgICB2b2lkIHByb2R1Y2VJbml0aWFsT2ZmZXIoY29uc3QgTWVkaWFT
dHJlYW1WZWN0b3ImIHBlbmRpbmdTdHJlYW1zKTsKKyAgICB2b2lkIGhhbmRsZUluaXRpYWxPZmZl
cihjb25zdCBTdHJpbmcmIHNkcCk7CisgICAgdm9pZCBwcm9jZXNzU0RQKGNvbnN0IFN0cmluZyYg
c2RwKTsKKyAgICB2b2lkIGFkZFBlbmRpbmdTdHJlYW1zKGNvbnN0IE1lZGlhU3RyZWFtVmVjdG9y
JiBwZW5kaW5nU3RyZWFtcyk7CisgICAgdm9pZCByZW1vdmVQZW5kaW5nU3RyZWFtcyhjb25zdCBN
ZWRpYVN0cmVhbVZlY3RvciYgcGVuZGluZ1N0cmVhbXMpOworCisgICAgdm9pZCBzZW5kRGF0YVN0
cmVhbU1lc3NhZ2UoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKTsKKworICAgIHZv
aWQgc3RvcCgpOworCisgICAgdm9pZCBpY2VQcm9jZXNzaW5nQ29tcGxldGVkKCk7CisgICAgdm9p
ZCBzZHBHZW5lcmF0ZWQoY29uc3QgU3RyaW5nJiBzZHApOworICAgIHZvaWQgZGF0YVN0cmVhbU1l
c3NhZ2VSZWNlaXZlZChjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpOworICAgIHZv
aWQgcmVtb3RlU3RyZWFtQWRkZWQoY29uc3QgU3RyaW5nJiBzdHJlYW1JZCwgY29uc3QgU3RyaW5n
JiBsYWJlbCwgY29uc3QgTWVkaWFTdHJlYW1Db21wb25lbnRMaXN0Jik7CisgICAgdm9pZCByZW1v
dGVTdHJlYW1SZW1vdmVkKGNvbnN0IFN0cmluZyYgc3RyZWFtSWQpOworCisgICAgUGVlckhhbmRs
ZXJDb25maWd1cmF0aW9uKiBjb25maWd1cmF0aW9uKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAg
UGVlckhhbmRsZXIoUGVlckhhbmRsZXJDbGllbnQqLCBjb25zdCBQYXNzUmVmUHRyPFBlZXJIYW5k
bGVyQ29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbik7CisKKyAgICBQZWVySGFuZGxlckNsaWVu
dCogbV9jbGllbnQ7CisgICAgUmVmUHRyPFBlZXJIYW5kbGVyQ29uZmlndXJhdGlvbj4gbV9jb25m
aWd1cmF0aW9uOworICAgIE93blB0cjxQZWVySGFuZGxlclByaXZhdGVJbnRlcmZhY2U+IG1fcHJp
dmF0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShN
RURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBQZWVySGFuZGxlcl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVySGFuZGxlclByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1BlZXJIYW5kbGVyUHJpdmF0ZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2NTQxZDYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVySGFuZGxlclByaXZh
dGUuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEVyaWNzc29u
IEFCLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEVyaWNzc29uIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9y
cworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbSB0aGlzCisgKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUGVlckhhbmRsZXJQcml2YXRlX2gK
KyNkZWZpbmUgUGVlckhhbmRsZXJQcml2YXRlX2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisKKyNpbmNsdWRlICJQZWVySGFuZGxlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFBlZXJIYW5kbGVyUHJpdmF0ZUludGVyZmFjZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoUGVlckhhbmRsZXJQcml2YXRlSW50ZXJmYWNlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBQZWVySGFuZGxlclByaXZhdGVJbnRlcmZhY2UoKSB7IH0KKyAg
ICB2aXJ0dWFsIH5QZWVySGFuZGxlclByaXZhdGVJbnRlcmZhY2UoKSB7IH0KKworICAgIHZpcnR1
YWwgdm9pZCBwcm9kdWNlSW5pdGlhbE9mZmVyKGNvbnN0IE1lZGlhU3RyZWFtVmVjdG9yJiBwZW5k
aW5nU3RyZWFtcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVJbml0aWFsT2ZmZXIoY29u
c3QgU3RyaW5nJiBzZHApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc1NEUChjb25zdCBT
dHJpbmcmIHNkcCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhZGRQZW5kaW5nU3RyZWFtcyhjb25z
dCBNZWRpYVN0cmVhbVZlY3RvciYgcGVuZGluZ1N0cmVhbXMpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgcmVtb3ZlUGVuZGluZ1N0cmVhbXMoY29uc3QgTWVkaWFTdHJlYW1WZWN0b3ImIHBlbmRpbmdT
dHJlYW1zKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2VuZERhdGFTdHJlYW1NZXNzYWdlKGNv
bnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBk
YXRhU3RyZWFtSXNBY3RpdmUoKSBjb25zdCA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcCgp
ID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShN
RURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBQZWVySGFuZGxlclByaXZhdGVfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFTdHJlYW1UcmFjay5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFTdHJlYW1UcmFjay5oCmluZGV4
IGY3YjFmYWMuLjFkMGRjZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYk1lZGlhU3RyZWFtVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJNZWRpYVN0cmVhbVRyYWNrLmgKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogICAg
IFdlYk1lZGlhU3RyZWFtVHJhY2soKSB7IH0KICAgICB+V2ViTWVkaWFTdHJlYW1UcmFjaygpIHsg
cmVzZXQoKTsgfQogCi0gICAgV0VCS0lUX0VYUE9SVCB2b2lkIGluaXRpYWxpemUoY29uc3QgV2Vi
U3RyaW5nJiBpZCwgY29uc3QgV2ViU3RyaW5nJiBraW5kLCBjb25zdCBXZWJTdHJpbmcmIGxhYmVs
KTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBXZWJTdHJpbmcmIG93
bmVyU3RyZWFtSWQsIHVuc2lnbmVkIHRyYWNrSW5kZXgsIGNvbnN0IFdlYlN0cmluZyYga2luZCwg
Y29uc3QgV2ViU3RyaW5nJiBsYWJlbCwgYm9vbCBlbmFibGVkID0gdHJ1ZSk7CiAgICAgV0VCS0lU
X0VYUE9SVCB2b2lkIHJlc2V0KCk7CiAgICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiBt
X3ByaXZhdGUuaXNOdWxsKCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJNZWRpYVN0cmVhbVRyYWNrLmNwcAppbmRleCA3Nzc5MDFjLi5kNjVhNWIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVN0cmVhbVRyYWNrLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVN0cmVhbVRyYWNrLmNwcApA
QCAtMzIsOSArMzIsOSBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBXZWJNZWRpYVN0
cmVhbVRyYWNrOjppbml0aWFsaXplKGNvbnN0IFdlYlN0cmluZyYgaWQsIGNvbnN0IFdlYlN0cmlu
ZyYga2luZCwgY29uc3QgV2ViU3RyaW5nJiBsYWJlbCkKK3ZvaWQgV2ViTWVkaWFTdHJlYW1UcmFj
azo6aW5pdGlhbGl6ZShjb25zdCBXZWJTdHJpbmcmIG93bmVyU3RyZWFtSWQsIHVuc2lnbmVkIHRy
YWNrSW5kZXgsIGNvbnN0IFdlYlN0cmluZyYga2luZCwgY29uc3QgV2ViU3RyaW5nJiBsYWJlbCwg
Ym9vbCBlbmFibGVkKQogewotICAgIG1fcHJpdmF0ZSA9IFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJh
Y2s6OmNyZWF0ZShpZCwga2luZCwgbGFiZWwpOworICAgIG1fcHJpdmF0ZSA9IFdlYkNvcmU6Ok1l
ZGlhU3RyZWFtVHJhY2s6OmNyZWF0ZShvd25lclN0cmVhbUlkLCB0cmFja0luZGV4LCBraW5kLCBs
YWJlbCwgZW5hYmxlZCk7CiB9CiAKIHZvaWQgV2ViTWVkaWFTdHJlYW1UcmFjazo6cmVzZXQoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFTdHJlYW1UcmFj
a0xpc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFTdHJlYW1UcmFj
a0xpc3QuY3BwCmluZGV4IDVkNTk1YjAuLmQ1NzcyOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhU3RyZWFtVHJhY2tMaXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVN0cmVhbVRyYWNrTGlzdC5jcHAKQEAgLTM4LDcg
KzM4LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQgV2ViTWVkaWFTdHJlYW1UcmFja0xp
c3Q6OmluaXRpYWxpemUoY29uc3QgV2ViVmVjdG9yPFdlYk1lZGlhU3RyZWFtVHJhY2s+JiB3ZWJU
cmFja3MpCiB7Ci0gICAgVHJhY2tWZWN0b3IgdHJhY2tzKHdlYlRyYWNrcy5zaXplKCkpOworICAg
IE1lZGlhU3RyZWFtVHJhY2tWZWN0b3IgdHJhY2tzKHdlYlRyYWNrcy5zaXplKCkpOwogICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgd2ViVHJhY2tzLnNpemUoKTsgKytpKQogICAgICAgICB0cmFj
a3NbaV0gPSB3ZWJUcmFja3NbaV07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107159</attachid>
            <date>2011-09-13 02:55:25 -0700</date>
            <delta_ts>2011-09-16 10:20:49 -0700</delta_ts>
            <desc>patch for discussion (can be applied)</desc>
            <filename>mediastream_webcore_platform_2.patch</filename>
            <type>text/plain</type>
            <size>375874</size>
            <attacher name="Adam Bergkvist">adam.bergkvist</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL01lZGlhU3RyZWFtL2FyZ3VtZW50LXR5
cGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL01lZGlhU3RyZWFtL2FyZ3Vt
ZW50LXR5cGVzLWV4cGVjdGVkLnR4dAppbmRleCA0MDcyODhlLi5kMjkxNTc5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9NZWRpYVN0cmVhbS9hcmd1bWVudC10eXBlcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTWVkaWFTdHJlYW0vYXJndW1lbnQtdHlw
ZXMtZXhwZWN0ZWQudHh0CkBAIC0zLDE3ICszLDE3IEBAIFRlc3RzIHRoZSBhY2NlcHRhYmxlIHR5
cGVzIGZvciBhcmd1bWVudHMgdG8gbmF2aWdhdG9yLmdldFVzZXJNZWRpYSBtZXRob2RzLgogT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJN
ZWRpYSgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNl
cHRpb24gMTcuCi1QQVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEodW5kZWZpbmVkKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3
LgotUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG51bGwpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCi1QQVNTIG5hdmln
YXRvci53ZWJraXRHZXRVc2VyTWVkaWEoe30pIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9N
SVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIG5hdmlnYXRvci53ZWJraXRHZXRV
c2VyTWVkaWEoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgbmF2aWdhdG9yLndlYmtp
dEdldFVzZXJNZWRpYSh1bmRlZmluZWQpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBu
YXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKG51bGwpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9u
LgorUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt9KSBkaWQgbm90IHRocm93IGV4
Y2VwdGlvbi4KIFBBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShvYmplY3RUaHJvd2lu
Z0V4Y2VwdGlvbikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiB0b1N0cmluZyB0aHJldyBleGNlcHRp
b24uCi1QQVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoInZpZGVvIikgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KLVBBU1Mg
bmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6
IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgotUEFTUyBuYXZpZ2F0b3Iud2Vi
a2l0R2V0VXNlck1lZGlhKDQyKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hf
RVJSOiBET00gRXhjZXB0aW9uIDE3LgotUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlh
KEluZmluaXR5KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00g
RXhjZXB0aW9uIDE3LgotUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKC1JbmZpbml0
eSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlv
biAxNy4KLVBBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShlbXB0eUZ1bmN0aW9uKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3
LgorUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKCJ2aWRlbyIpIGRpZCBub3QgdGhy
b3cgZXhjZXB0aW9uLgorUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHRydWUpIGRp
ZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlh
KDQyKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVz
ZXJNZWRpYShJbmZpbml0eSkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG5hdmlnYXRv
ci53ZWJraXRHZXRVc2VyTWVkaWEoLUluZmluaXR5KSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4K
K1BBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShlbXB0eUZ1bmN0aW9uKSBkaWQgbm90
IHRocm93IGV4Y2VwdGlvbi4KIFBBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSgidmlk
ZW8iLCBlbXB0eUZ1bmN0aW9uKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KIFBBU1MgbmF2aWdh
dG9yLndlYmtpdEdldFVzZXJNZWRpYSh1bmRlZmluZWQsIGVtcHR5RnVuY3Rpb24pIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBFeGNlcHRpb24gOS4KIFBBU1Mg
bmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShudWxsLCBlbXB0eUZ1bmN0aW9uKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IE5PVF9TVVBQT1JURURfRVJSOiBET00gRXhjZXB0aW9uIDkuCkBAIC0y
NSw4ICsyNSw4IEBAIFBBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShJbmZpbml0eSwg
ZW1wdHlGdW5jdGlvbikgdGhyZXcgZXhjZXB0aW9uIEVycm9yCiBQQVNTIG5hdmlnYXRvci53ZWJr
aXRHZXRVc2VyTWVkaWEoLUluZmluaXR5LCBlbXB0eUZ1bmN0aW9uKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IE5PVF9TVVBQT1JURURfRVJSOiBET00gRXhjZXB0aW9uIDkuCiBQQVNTIG5hdmlnYXRv
ci53ZWJraXRHZXRVc2VyTWVkaWEoZW1wdHlGdW5jdGlvbiwgZW1wdHlGdW5jdGlvbikgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBOT1RfU1VQUE9SVEVEX0VSUjogRE9NIEV4Y2VwdGlvbiA5LgogUEFT
UyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKCJ2aWRlbyIsICJ2aWRlbyIpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCi1QQVNT
IG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoInZpZGVvIiwgdW5kZWZpbmVkKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgotUEFT
UyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKCJ2aWRlbyIsIG51bGwpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIG5h
dmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoInZpZGVvIiwgdW5kZWZpbmVkKSBkaWQgbm90IHRo
cm93IGV4Y2VwdGlvbi4KK1BBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSgidmlkZW8i
LCBudWxsKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KIFBBU1MgbmF2aWdhdG9yLndlYmtpdEdl
dFVzZXJNZWRpYSgidmlkZW8iLCB7fSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01B
VENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KIFBBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJN
ZWRpYSgidmlkZW8iLCBvYmplY3RUaHJvd2luZ0V4Y2VwdGlvbikgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KIFBBU1MgbmF2aWdhdG9y
LndlYmtpdEdldFVzZXJNZWRpYSgidmlkZW8iLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6
IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgpAQCAtNDAsNyArNDAsNyBAQCBQ
QVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoImF1ZGlvLCBzb21ldGhpbmdlbHNlLCx2
aWRlbyIsIGVtcHR5RnVuY3Rpb24sCiBQQVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEo
ImF1ZGlvLCB2aWRlbyB1c2VyIiwgZW1wdHlGdW5jdGlvbiwgdW5kZWZpbmVkKSBkaWQgbm90IHRo
cm93IGV4Y2VwdGlvbi4KIFBBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSgiYXVkaW8s
IHZpZGVvIGVudmlyb25tZW50IiwgZW1wdHlGdW5jdGlvbiwgdW5kZWZpbmVkKSBkaWQgbm90IHRo
cm93IGV4Y2VwdGlvbi4KIFBBU1MgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSgidmlkZW8i
LCBlbXB0eUZ1bmN0aW9uLCAidmlkZW8iKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlT
TUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgotUEFTUyBuYXZpZ2F0b3Iud2Via2l0R2V0VXNl
ck1lZGlhKCJ2aWRlbyIsIGVtcHR5RnVuY3Rpb24sIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIG5hdmlnYXRvci53
ZWJraXRHZXRVc2VyTWVkaWEoInZpZGVvIiwgZW1wdHlGdW5jdGlvbiwgbnVsbCkgZGlkIG5vdCB0
aHJvdyBleGNlcHRpb24uCiBQQVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoInZpZGVv
IiwgZW1wdHlGdW5jdGlvbiwge30pIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRD
SF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCiBQQVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVk
aWEoInZpZGVvIiwgZW1wdHlGdW5jdGlvbiwgb2JqZWN0VGhyb3dpbmdFeGNlcHRpb24pIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCiBQ
QVNTIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoInZpZGVvIiwgZW1wdHlGdW5jdGlvbiwg
dHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxNy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL01lZGlhU3RyZWFtL3Nj
cmlwdC10ZXN0cy9hcmd1bWVudC10eXBlcy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL01lZGlh
U3RyZWFtL3NjcmlwdC10ZXN0cy9hcmd1bWVudC10eXBlcy5qcwppbmRleCAwZTk5ZDYzLi4zYjhh
OTMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9NZWRpYVN0cmVhbS9zY3JpcHQt
dGVzdHMvYXJndW1lbnQtdHlwZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTWVkaWFT
dHJlYW0vc2NyaXB0LXRlc3RzL2FyZ3VtZW50LXR5cGVzLmpzCkBAIC0zMiwxOSArMzIsMTkgQEAg
T2JqZWN0VGhyb3dpbmdFeGNlcHRpb24ucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7
CiB2YXIgb2JqZWN0VGhyb3dpbmdFeGNlcHRpb24gPSBuZXcgT2JqZWN0VGhyb3dpbmdFeGNlcHRp
b24oKTsKIAogLy8gTm8gYXJndW1lbnRzCi10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1l
ZGlhKCknLCB0cnVlKTsKK3Rlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoKScsIGZh
bHNlKTsKIAogLy8gMSBBcmd1bWVudCAoZ2V0VXNlck1lZGlhIHJlcXVpcmVzIGF0IGxlYXN0IDIg
YXJndW1lbnRzKS4KLXRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEodW5kZWZpbmVk
KScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShudWxsKScsIHRy
dWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSh7fSknLCB0cnVlKTsKK3Rl
c3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEodW5kZWZpbmVkKScsIGZhbHNlKTsKK3Rl
c3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEobnVsbCknLCBmYWxzZSk7Cit0ZXN0KCdu
YXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHt9KScsIGZhbHNlKTsKIHRlc3QoJ25hdmlnYXRv
ci53ZWJraXRHZXRVc2VyTWVkaWEob2JqZWN0VGhyb3dpbmdFeGNlcHRpb24pJywgdHJ1ZSwgdG9T
dHJpbmdFcnJvcik7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKCJ2aWRlbyIp
JywgdHJ1ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKHRydWUpJywgdHJ1
ZSk7Ci10ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKDQyKScsIHRydWUpOwotdGVz
dCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShJbmZpbml0eSknLCB0cnVlKTsKLXRlc3Qo
J25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoLUluZmluaXR5KScsIHRydWUpOwotdGVzdCgn
bmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShlbXB0eUZ1bmN0aW9uKScsIHRydWUpOwordGVz
dCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSgidmlkZW8iKScsIGZhbHNlKTsKK3Rlc3Qo
J25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEodHJ1ZSknLCBmYWxzZSk7Cit0ZXN0KCduYXZp
Z2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKDQyKScsIGZhbHNlKTsKK3Rlc3QoJ25hdmlnYXRvci53
ZWJraXRHZXRVc2VyTWVkaWEoSW5maW5pdHkpJywgZmFsc2UpOwordGVzdCgnbmF2aWdhdG9yLndl
YmtpdEdldFVzZXJNZWRpYSgtSW5maW5pdHkpJywgZmFsc2UpOwordGVzdCgnbmF2aWdhdG9yLndl
YmtpdEdldFVzZXJNZWRpYShlbXB0eUZ1bmN0aW9uKScsIGZhbHNlKTsKIAogLy8gMiBBcmd1bWVu
dHMuCiB0ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKCJ2aWRlbyIsIGVtcHR5RnVu
Y3Rpb24pJywgZmFsc2UpOwpAQCAtNTksOCArNTksOCBAQCB0ZXN0KCduYXZpZ2F0b3Iud2Via2l0
R2V0VXNlck1lZGlhKC1JbmZpbml0eSwgZW1wdHlGdW5jdGlvbiknLCB0cnVlLCBub3RTdXBwb3J0
ZQogdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShlbXB0eUZ1bmN0aW9uLCBlbXB0
eUZ1bmN0aW9uKScsIHRydWUsIG5vdFN1cHBvcnRlZEVycm9yKTsKIAogdGVzdCgnbmF2aWdhdG9y
LndlYmtpdEdldFVzZXJNZWRpYSgidmlkZW8iLCAidmlkZW8iKScsIHRydWUpOwotdGVzdCgnbmF2
aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSgidmlkZW8iLCB1bmRlZmluZWQpJywgdHJ1ZSk7Ci10
ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKCJ2aWRlbyIsIG51bGwpJywgdHJ1ZSk7
Cit0ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKCJ2aWRlbyIsIHVuZGVmaW5lZCkn
LCBmYWxzZSk7Cit0ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKCJ2aWRlbyIsIG51
bGwpJywgZmFsc2UpOwogdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSgidmlkZW8i
LCB7fSknLCB0cnVlKTsKIHRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoInZpZGVv
Iiwgb2JqZWN0VGhyb3dpbmdFeGNlcHRpb24pJywgdHJ1ZSk7CiB0ZXN0KCduYXZpZ2F0b3Iud2Vi
a2l0R2V0VXNlck1lZGlhKCJ2aWRlbyIsIHRydWUpJywgdHJ1ZSk7CkBAIC03Niw3ICs3Niw3IEBA
IHRlc3QoJ25hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoImF1ZGlvLCBzb21ldGhpbmdlbHNl
LCx2aWRlbyIsIGVtcHR5RnVuY3Rpb24sCiB0ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1l
ZGlhKCJhdWRpbywgdmlkZW8gdXNlciIsIGVtcHR5RnVuY3Rpb24sIHVuZGVmaW5lZCknLCBmYWxz
ZSk7CiB0ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKCJhdWRpbywgdmlkZW8gZW52
aXJvbm1lbnQiLCBlbXB0eUZ1bmN0aW9uLCB1bmRlZmluZWQpJywgZmFsc2UpOwogdGVzdCgnbmF2
aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSgidmlkZW8iLCBlbXB0eUZ1bmN0aW9uLCAidmlkZW8i
KScsIHRydWUpOwotdGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSgidmlkZW8iLCBl
bXB0eUZ1bmN0aW9uLCBudWxsKScsIHRydWUpOwordGVzdCgnbmF2aWdhdG9yLndlYmtpdEdldFVz
ZXJNZWRpYSgidmlkZW8iLCBlbXB0eUZ1bmN0aW9uLCBudWxsKScsIGZhbHNlKTsKIHRlc3QoJ25h
dmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoInZpZGVvIiwgZW1wdHlGdW5jdGlvbiwge30pJywg
dHJ1ZSk7CiB0ZXN0KCduYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKCJ2aWRlbyIsIGVtcHR5
RnVuY3Rpb24sIG9iamVjdFRocm93aW5nRXhjZXB0aW9uKScsIHRydWUpOwogdGVzdCgnbmF2aWdh
dG9yLndlYmtpdEdldFVzZXJNZWRpYSgidmlkZW8iLCBlbXB0eUZ1bmN0aW9uLCB0cnVlKScsIHRy
dWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAzOTIzNWZlLi4xMmYwN2RjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtMjA1NCwyOCArMjA1NCw3IEBAIElGIChFTkFCTEVfUFJPR1JFU1NfVEFH
KQogRU5ESUYgKCkKIAogSUYgKEVOQUJMRV9NRURJQV9TVFJFQU0pCi0gICAgTElTVChBUFBFTkQg
V2ViQ29yZV9TT1VSQ0VTCi0gICAgICAgIGRvbS9Mb2NhbE1lZGlhU3RyZWFtLmNwcAotICAgICAg
ICBkb20vTWVkaWFTdHJlYW0uY3BwCi0gICAgICAgIGRvbS9NZWRpYVN0cmVhbUxpc3QuY3BwCi0g
ICAgICAgIGRvbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAotICAgICAgICBkb20vTWVkaWFTdHJlYW1U
cmFja0xpc3QuY3BwCi0gICAgICAgIHAycC9NZWRpYVN0cmVhbUV2ZW50LmNwcAotICAgICAgICBw
MnAvUGVlckNvbm5lY3Rpb24uY3BwCi0gICAgICAgIHBhZ2UvTWVkaWFTdHJlYW1Db250cm9sbGVy
LmNwcAotICAgICAgICBwYWdlL01lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyLmNwcAotICAgICAg
ICBwbGF0Zm9ybS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcAotICAgICkKLQogICAgIExJU1QoQVBQ
RU5EIFdlYkNvcmVfSURMX0ZJTEVTCi0gICAgICAgIGRvbS9Mb2NhbE1lZGlhU3RyZWFtLmlkbAot
ICAgICAgICBkb20vTWVkaWFTdHJlYW0uaWRsCi0gICAgICAgIGRvbS9NZWRpYVN0cmVhbUxpc3Qu
aWRsCi0gICAgICAgIGRvbS9NZWRpYVN0cmVhbVRyYWNrLmlkbAotICAgICAgICBkb20vTWVkaWFT
dHJlYW1UcmFja0xpc3QuaWRsCi0gICAgICAgIHAycC9NZWRpYVN0cmVhbUV2ZW50LmlkbAotICAg
ICAgICBwMnAvUGVlckNvbm5lY3Rpb24uaWRsCi0gICAgICAgIHAycC9TaWduYWxpbmdDYWxsYmFj
ay5pZGwKICAgICAgICAgcGFnZS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5pZGwKICAgICApCiBF
TkRJRiAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29kZUdlbmVyYXRvcnMucHJpIGIv
U291cmNlL1dlYkNvcmUvQ29kZUdlbmVyYXRvcnMucHJpCmluZGV4IGU1YTM1NDQuLjI4MTMxMTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NvZGVHZW5lcmF0b3JzLnByaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Db2RlR2VuZXJhdG9ycy5wcmkKQEAgLTE0MSwxMSArMTQxLDYgQEAgSURMX0JJ
TkRJTkdTICs9IFwKICMgICAgZG9tL0V2ZW50VGFyZ2V0LmlkbCBcCiAgICAgZG9tL0hhc2hDaGFu
Z2VFdmVudC5pZGwgXAogICAgIGRvbS9LZXlib2FyZEV2ZW50LmlkbCBcCi0gICAgZG9tL0xvY2Fs
TWVkaWFTdHJlYW0uaWRsIFwKLSAgICBkb20vTWVkaWFTdHJlYW0uaWRsIFwKLSAgICBkb20vTWVk
aWFTdHJlYW1MaXN0LmlkbCBcCi0gICAgZG9tL01lZGlhU3RyZWFtVHJhY2suaWRsIFwKLSAgICBk
b20vTWVkaWFTdHJlYW1UcmFja0xpc3QuaWRsIFwKICAgICBkb20vTW91c2VFdmVudC5pZGwgXAog
ICAgIGRvbS9NZXNzYWdlQ2hhbm5lbC5pZGwgXAogICAgIGRvbS9NZXNzYWdlRXZlbnQuaWRsIFwK
QEAgLTMyOSw5ICszMjQsNiBAQCBJRExfQklORElOR1MgKz0gXAogICAgIGxvYWRlci9hcHBjYWNo
ZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlkbCBcCiAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b24uaWRsIFwKICAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5pZGwgXAotICAg
IHAycC9NZWRpYVN0cmVhbUV2ZW50LmlkbCBcCi0gICAgcDJwL1BlZXJDb25uZWN0aW9uLmlkbCBc
Ci0gICAgcDJwL1NpZ25hbGluZ0NhbGxiYWNrLmlkbCBcCiAgICAgcGFnZS9CYXJJbmZvLmlkbCBc
CiAgICAgcGFnZS9Db25zb2xlLmlkbCBcCiAgICAgcGFnZS9Db29yZGluYXRlcy5pZGwgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IDhhNDU5ODYuLjM1MjNkYzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5jcHAKQEAgLTIyNywxNSArMjI3LDkgQEAKICNpbmNsdWRlICJKU0ludDhB
cnJheS5jcHAiCiAjaW5jbHVkZSAiSlNKYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCIKICNpbmNsdWRl
ICJKU0tleWJvYXJkRXZlbnQuY3BwIgotI2luY2x1ZGUgIkpTTG9jYWxNZWRpYVN0cmVhbS5jcHAi
CiAjaW5jbHVkZSAiSlNMb2NhdGlvbi5jcHAiCiAjaW5jbHVkZSAiSlNNZWRpYUVycm9yLmNwcCIK
ICNpbmNsdWRlICJKU01lZGlhTGlzdC5jcHAiCi0jaW5jbHVkZSAiSlNNZWRpYVN0cmVhbS5jcHAi
Ci0jaW5jbHVkZSAiSlNNZWRpYVN0cmVhbUV2ZW50LmNwcCIKLSNpbmNsdWRlICJKU01lZGlhU3Ry
ZWFtTGlzdC5jcHAiCi0jaW5jbHVkZSAiSlNNZWRpYVN0cmVhbVRyYWNrLmNwcCIKLSNpbmNsdWRl
ICJKU01lZGlhU3RyZWFtVHJhY2tMaXN0LmNwcCIKICNpbmNsdWRlICJKU01lZGlhUXVlcnlMaXN0
LmNwcCIKICNpbmNsdWRlICJKU01lbW9yeUluZm8uY3BwIgogI2luY2x1ZGUgIkpTTWVzc2FnZUNo
YW5uZWwuY3BwIgpAQCAtMjYwLDcgKzI1NCw2IEBACiAjaW5jbHVkZSAiSlNPcGVyYXRpb25Ob3RB
bGxvd2VkRXhjZXB0aW9uLmNwcCIKICNpbmNsdWRlICJKU092ZXJmbG93RXZlbnQuY3BwIgogI2lu
Y2x1ZGUgIkpTUGFnZVRyYW5zaXRpb25FdmVudC5jcHAiCi0jaW5jbHVkZSAiSlNQZWVyQ29ubmVj
dGlvbi5jcHAiCiAjaW5jbHVkZSAiSlNQZXJmb3JtYW5jZS5jcHAiCiAjaW5jbHVkZSAiSlNQZXJm
b3JtYW5jZU5hdmlnYXRpb24uY3BwIgogI2luY2x1ZGUgIkpTUGVyZm9ybWFuY2VUaW1pbmcuY3Bw
IgpAQCAtMjc5LDcgKzI3Miw2IEBACiAjaW5jbHVkZSAiSlNTY3JpcHRQcm9maWxlTm9kZS5jcHAi
CiAjaW5jbHVkZSAiSlNTaGFyZWRXb3JrZXIuY3BwIgogI2luY2x1ZGUgIkpTU2hhcmVkV29ya2Vy
Q29udGV4dC5jcHAiCi0jaW5jbHVkZSAiSlNTaWduYWxpbmdDYWxsYmFjay5jcHAiCiAjaW5jbHVk
ZSAiSlNTUUxFcnJvci5jcHAiCiAjaW5jbHVkZSAiSlNTUUxFeGNlcHRpb24uY3BwIgogI2luY2x1
ZGUgIkpTU1FMUmVzdWx0U2V0LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4
IDhjN2MyZTUuLmY3N2JhZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzks
NyArMzksNiBAQCBWUEFUSCA9IFwKICAgICAkKFdlYkNvcmUpL2luc3BlY3RvciBcCiAgICAgJChX
ZWJDb3JlKS9sb2FkZXIvYXBwY2FjaGUgXAogICAgICQoV2ViQ29yZSkvbm90aWZpY2F0aW9ucyBc
Ci0gICAgJChXZWJDb3JlKS9wMnAgXAogICAgICQoV2ViQ29yZSkvcGFnZSBcCiAgICAgJChXZWJD
b3JlKS9wbHVnaW5zIFwKICAgICAkKFdlYkNvcmUpL3N0b3JhZ2UgXApAQCAtMjc3LDcgKzI3Niw2
IEBAIERPTV9DTEFTU0VTID0gXAogICAgIEludGVybmFscyBcCiAgICAgSmF2YVNjcmlwdEF1ZGlv
Tm9kZSBcCiAgICAgS2V5Ym9hcmRFdmVudCBcCi0gICAgTG9jYWxNZWRpYVN0cmVhbSBcCiAgICAg
TG9jYXRpb24gXAogICAgIExvd1Bhc3MyRmlsdGVyTm9kZSBcCiAgICAgTWVkaWFFbGVtZW50QXVk
aW9Tb3VyY2VOb2RlIFwKQEAgLTI4NSwxMSArMjgzLDYgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAg
TWVkaWFMaXN0IFwKICAgICBNZWRpYVF1ZXJ5TGlzdCBcCiAgICAgTWVkaWFRdWVyeUxpc3RMaXN0
ZW5lciBcCi0gICAgTWVkaWFTdHJlYW0gXAotICAgIE1lZGlhU3RyZWFtRXZlbnQgXAotICAgIE1l
ZGlhU3RyZWFtTGlzdCBcCi0gICAgTWVkaWFTdHJlYW1UcmFjayBcCi0gICAgTWVkaWFTdHJlYW1U
cmFja0xpc3QgXAogICAgIE1lbW9yeUluZm8gXAogICAgIE1lc3NhZ2VDaGFubmVsIFwKICAgICBN
ZXNzYWdlRXZlbnQgXApAQCAtMzE3LDcgKzMxMCw2IEBAIERPTV9DTEFTU0VTID0gXAogICAgIE9w
ZXJhdGlvbk5vdEFsbG93ZWRFeGNlcHRpb24gXAogICAgIE92ZXJmbG93RXZlbnQgXAogICAgIFBh
Z2VUcmFuc2l0aW9uRXZlbnQgXAotICAgIFBlZXJDb25uZWN0aW9uIFwKICAgICBQZXJmb3JtYW5j
ZSBcCiAgICAgUGVyZm9ybWFuY2VOYXZpZ2F0aW9uIFwKICAgICBQZXJmb3JtYW5jZVRpbWluZyBc
CkBAIC01MDAsNyArNDkyLDYgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgU2NyaXB0UHJvZmlsZU5v
ZGUgXAogICAgIFNoYXJlZFdvcmtlciBcCiAgICAgU2hhcmVkV29ya2VyQ29udGV4dCBcCi0gICAg
U2lnbmFsaW5nQ2FsbGJhY2sgXAogICAgIFNwZWVjaElucHV0RXZlbnQgXAogICAgIFNwZWVjaElu
cHV0UmVzdWx0IFwKICAgICBTcGVlY2hJbnB1dFJlc3VsdExpc3QgXApAQCAtODk2LDcgKzg4Nyw2
IEBAIElETF9JTkNMVURFUyA9IFwKICAgICAkKFdlYkNvcmUpL2ZpbGVhcGkgXAogICAgICQoV2Vi
Q29yZSkvaHRtbCBcCiAgICAgJChXZWJDb3JlKS9jc3MgXAotICAgICQoV2ViQ29yZSkvcDJwIFwK
ICAgICAkKFdlYkNvcmUpL3BhZ2UgXAogICAgICQoV2ViQ29yZSkvbm90aWZpY2F0aW9ucyBcCiAg
ICAgJChXZWJDb3JlKS94bWwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA3YTAzOTFlLi43NTJk
NTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMzgsOCArMzgsOCBAQCB3ZWJjb3JlX2NwcGZs
YWdzICs9IFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUgXAogCS1J
JChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uIFwKIAktSSQoc3JjZGlyKS9Tb3Vy
Y2UvV2ViQ29yZS9tYXRobWwgXAorCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL21lZGlhc3Ry
ZWFtIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zIFwKLQktSSQo
c3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wMnAgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uIFwKIAkt
SSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybSBcCkBAIC02MCw2ICs2MCw3IEBAIHdl
YmNvcmVfY3BwZmxhZ3MgKz0gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2ltYWdlLWRlY29kZXJzL3dlYnAgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2ltYWdlLWRlY29kZXJzL3BuZyBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbGV2ZWxkYiBcCisJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sgXAog
CS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsgXAogCS1JJChzcmNk
aXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbCBcCkBAIC03NTUsOCArNzU2LDggQEAgSURM
X1BBVEggOj0gXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMgXAogICAgICQoV2ViQ29yZSkv
aW5zcGVjdG9yIFwKICAgICAkKFdlYkNvcmUpL2xvYWRlci9hcHBjYWNoZSBcCisgICAgJChXZWJD
b3JlKS9tZWRpYXN0cmVhbSBcCiAgICAgJChXZWJDb3JlKS9ub3RpZmljYXRpb25zIFwKLSAgICAk
KFdlYkNvcmUpL3AycCBcCiAgICAgJChXZWJDb3JlKS9wYWdlIFwKICAgICAkKFdlYkNvcmUpL3Bs
dWdpbnMgXAogICAgICQoV2ViQ29yZSkvc3RvcmFnZSBcCkBAIC04NjksOCArODcwLDggQEAgRVhU
UkFfRElTVCArPSBcCiAJJChzaGVsbCBscyAkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvaHRtbC8q
LmlkbCkgXAogCSQoc2hlbGwgbHMgJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci8q
LmlkbCkgXAogCSQoc2hlbGwgbHMgJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBj
YWNoZS8qLmlkbCkgXAorCSQoc2hlbGwgbHMgJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL21lZGlh
c3RyZWFtLyouaWRsKSBcCiAJJChzaGVsbCBscyAkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvbm90
aWZpY2F0aW9ucy8qLmlkbCkgXAotCSQoc2hlbGwgbHMgJChzcmNkaXIpL1NvdXJjZS9XZWJDb3Jl
L3AycC8qLmlkbCkgXAogCSQoc2hlbGwgbHMgJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Ki5pZGwpIFwKIAkkKHNoZWxsIGxzICQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zLyou
aWRsKSBcCiAJJChzaGVsbCBscyAkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvc3RvcmFnZS8qLmlk
bCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggOWU1ZTNhOS4uOTU2ZTc2MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00MTUsNiArNDE1LDggQEAgd2ViY29y
ZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGFnZVRyYW5z
aXRpb25FdmVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGVlckNvbm5lY3Rpb24u
Y3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGVlckNvbm5lY3Rpb24uaCBcCisJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1BlZXJDb25uZWN0aW9uU2lnbmFsaW5nQ2FsbGJhY2suY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGVlckNvbm5lY3Rpb25TaWduYWxpbmdDYWxs
YmFjay5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGVyZm9ybWFuY2UuY3BwIFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGVyZm9ybWFuY2UuaCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAgXApAQCAtNDUxLDggKzQ1Myw2IEBA
IHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1No
YXJlZFdvcmtlckNvbnRleHQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NoYXJlZFdv
cmtlci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTaGFyZWRXb3JrZXIuaCBcCi0J
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NpZ25hbGluZ0NhbGxiYWNrLmNwcCBcCi0JRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1NpZ25hbGluZ0NhbGxiYWNrLmggXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNTcGVlY2hJbnB1dEV2ZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1NwZWVjaElucHV0RXZlbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVj
aElucHV0UmVzdWx0LmNwcCBcCkBAIC0xMTMzLDcgKzExMzMsNiBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaCBcCiAJU291cmNlL1dl
YkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uLmggXAotCVNvdXJjZS9XZWJDb3JlL2RvbS9EaXNw
YXRjaFRhc2suaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRGcmFnbWVudC5oIFwKQEAgLTExOTksMTcgKzExOTgsNyBAQCB3ZWJjb3JlX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9IYXNoQ2hhbmdlRXZlbnQuaCBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vS2V5
Ym9hcmRFdmVudC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vTG9jYWxNZWRpYVN0cmVhbS5jcHAg
XAotCVNvdXJjZS9XZWJDb3JlL2RvbS9Mb2NhbE1lZGlhU3RyZWFtLmggXAogCVNvdXJjZS9XZWJD
b3JlL2RvbS9NYXBwZWRBdHRyaWJ1dGVFbnRyeS5oIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vTWVk
aWFTdHJlYW0uY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vTWVkaWFTdHJlYW0uaCBcCi0JU291
cmNlL1dlYkNvcmUvZG9tL01lZGlhU3RyZWFtTGlzdC5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2Rv
bS9NZWRpYVN0cmVhbUxpc3QuaCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL01lZGlhU3RyZWFtVHJh
Y2suY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vTWVkaWFTdHJlYW1UcmFjay5oIFwKLQlTb3Vy
Y2UvV2ViQ29yZS9kb20vTWVkaWFTdHJlYW1UcmFja0xpc3QuY3BwIFwKLQlTb3VyY2UvV2ViQ29y
ZS9kb20vTWVkaWFTdHJlYW1UcmFja0xpc3QuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL01lc3Nh
Z2VDaGFubmVsLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VDaGFubmVsLmggXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuY3BwIFwKQEAgLTIyMDcsMTcgKzIxOTYs
MzMgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1M
TWF0aEVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmggXAorCVNv
dXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL0xvY2FsTWVkaWFTdHJlYW0uY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9tZWRpYXN0cmVhbS9Mb2NhbE1lZGlhU3RyZWFtLmggXAorCVNvdXJjZS9XZWJDb3Jl
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcCBcCisJU291cmNlL1dlYkNvcmUvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW0uaCBcCisJU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1Db21wb25lbnQuaCBcCisJU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1F
dmVudC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRXZlbnQu
aCBcCisJU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1MaXN0LmNwcCBcCisJ
U291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1MaXN0LmggXAorCVNvdXJjZS9X
ZWJDb3JlL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUmVnaXN0cnkuaCBcCisJU291cmNlL1dlYkNv
cmUvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZWdpc3RyeS5jcHAgXAorCVNvdXJjZS9XZWJDb3Jl
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmggXAorCVNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2tMaXN0LmNwcCBcCisJU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFja0xpc3QuaCBcCisJU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vUGVl
ckNvbm5lY3Rpb24uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVj
dGlvbi5oIFwKKwlTb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvblNpZ25h
bGluZ0NhbGxiYWNrLmggXAorCVNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNs
aWVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVy
LmNwcCBcCisJU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmggXAog
CVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udGVudHMuaCBcCiAJ
U291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvblByZXNlbnRlci5oIFwKLQlTb3VyY2UvV2ViQ29yZS9w
MnAvTWVkaWFTdHJlYW1FdmVudC5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL3AycC9NZWRpYVN0cmVh
bUV2ZW50LmggXAotCVNvdXJjZS9XZWJDb3JlL3AycC9QZWVyQ29ubmVjdGlvbi5jcHAgXAotCVNv
dXJjZS9XZWJDb3JlL3AycC9QZWVyQ29ubmVjdGlvbi5oIFwKLQlTb3VyY2UvV2ViQ29yZS9wMnAv
U2lnbmFsaW5nQ2FsbGJhY2suaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5p
bWF0aW9uQmFzZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlv
bkJhc2UuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJv
bGxlci5jcHAgXApAQCAtMjIzMiw3ICsyMjM3LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9wYWdlL0FkanVzdFZpZXdTaXplT3JOb3QuaCBcCiAJU291cmNlL1dlYkNv
cmUvcGFnZS9CYXJJbmZvLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9CYXJJbmZvLmggXAot
CVNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FsbGJhY2tUYXNrLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBcCiAJU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBcCkBAIC0yMjkwLDExICsyMjk0LDYgQEAgd2Vi
Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL01l
ZGlhQ2FuU3RhcnRMaXN0ZW5lci5oIFwKLQlTb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlhU3RyZWFt
Q2xpZW50LmggXAotCVNvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFTdHJlYW1Db250cm9sbGVyLmNw
cCBcCi0JU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVN0cmVhbUNvbnRyb2xsZXIuaCBcCi0JU291
cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlci5jcHAgXAotCVNvdXJj
ZS9XZWJDb3JlL3BhZ2UvTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIuaCBcCiAJU291cmNlL1dl
YkNvcmUvcGFnZS9NZW1vcnlJbmZvLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlJ
bmZvLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0
cy5jcHAgXApAQCAtMjY1Nyw4ICsyNjU2LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L01JTUVUeXBlUmVnaXN0cnkuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlw
ZVJlZ2lzdHJ5LmggXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyZWFtUmVnaXN0
cnkuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmVhbVJlZ2lzdHJ5Lmgg
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9ibXAvQk1QSW1hZ2VEZWNvZGVyLmNw
cCBcCkBAIC0yNjgwLDYgKzI2NzcsMTIgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy93ZWJwL1dFQlBJbWFnZURlY29kZXIuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BOR0ltYWdlRGVj
b2Rlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9Q
TkdJbWFnZURlY29kZXIuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1NYW5hZ2VyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1NYW5hZ2VyLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtTWFuYWdlclByaXZhdGUuaCBcCisJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVlckhhbmRsZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVySGFuZGxlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9QZWVySGFuZGxlclByaXZhdGUuaCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlIGIvU291cmNlL1dlYkNvcmUv
VXNlSlNDLmNtYWtlCmluZGV4IGNmNWQ3NzkuLmYyYzIzZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1VzZUpTQy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UKQEAg
LTEwMyw3ICsxMDMsNiBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5n
cy9qcy9KU05vZGVJdGVyYXRvckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05vZGVMaXN0
Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuY3BwCi0gICAg
YmluZGluZ3MvanMvSlNQZWVyQ29ubmVjdGlvbkN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9K
U1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCiAgICAgYmluZGluZ3MvanMvSlNQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb25DdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNTY3JpcHRQcm9maWxlTm9k
ZUN1c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNv
cmUuZ3lwIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKaW5kZXggOTI0
MzRjZi4uZTIzYmUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2Vi
Q29yZS5neXAKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKQEAg
LTE2OCw4ICsxNjgsOCBAQAogICAgICAgJy4uL2xvYWRlci9jYWNoZScsCiAgICAgICAnLi4vbG9h
ZGVyL2ljb24nLAogICAgICAgJy4uL21hdGhtbCcsCisgICAgICAnLi4vbWVkaWFzdHJlYW0nLAog
ICAgICAgJy4uL25vdGlmaWNhdGlvbnMnLAotICAgICAgJy4uL3AycCcsCiAgICAgICAnLi4vcGFn
ZScsCiAgICAgICAnLi4vcGFnZS9hbmltYXRpb24nLAogICAgICAgJy4uL3BhZ2UvY2hyb21pdW0n
LApAQCAtMTk3LDYgKzE5Nyw3IEBACiAgICAgICAnLi4vcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
d2VicCcsCiAgICAgICAnLi4vcGxhdGZvcm0vaW1hZ2UtZW5jb2RlcnMvc2tpYScsCiAgICAgICAn
Li4vcGxhdGZvcm0vbGV2ZWxkYicsCisgICAgICAnLi4vcGxhdGZvcm0vbWVkaWFzdHJlYW0nLAog
ICAgICAgJy4uL3BsYXRmb3JtL21vY2snLAogICAgICAgJy4uL3BsYXRmb3JtL25ldHdvcmsnLAog
ICAgICAgJy4uL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0nLApAQCAtOTAyLDYgKzkwMyw3IEBA
CiAgICAgICAgICAgICAgICctLWluY2x1ZGUnLCAnLi4vZG9tJywKICAgICAgICAgICAgICAgJy0t
aW5jbHVkZScsICcuLi9maWxlYXBpJywKICAgICAgICAgICAgICAgJy0taW5jbHVkZScsICcuLi9o
dG1sJywKKyAgICAgICAgICAgICAgJy0taW5jbHVkZScsICcuLi9tZWRpYXN0cmVhbScsCiAgICAg
ICAgICAgICAgICctLWluY2x1ZGUnLCAnLi4vbm90aWZpY2F0aW9ucycsCiAgICAgICAgICAgICAg
ICctLWluY2x1ZGUnLCAnLi4vcGFnZScsCiAgICAgICAgICAgICAgICctLWluY2x1ZGUnLCAnLi4v
cGx1Z2lucycsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMjhiNzViZS4uOWFmNjIzMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQpAQCAtOTgzLDcgKzk4Myw2IEBACiAgICAgICAgICAgICAnZG9tL0RPTVRpbWVTdGFt
cC5oJywKICAgICAgICAgICAgICdkb20vRGV2aWNlT3JpZW50YXRpb24uaCcsCiAgICAgICAgICAg
ICAnZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgnLAotICAgICAgICAgICAgJ2RvbS9EaXNw
YXRjaFRhc2suaCcsCiAgICAgICAgICAgICAnZG9tL0RvY3VtZW50LmgnLAogICAgICAgICAgICAg
J2RvbS9Eb2N1bWVudEZyYWdtZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudE1hcmtl
ci5oJywKQEAgLTExNzUsMTEgKzExNzQsNiBAQAogICAgICAgICAgICAgJ2RvbS9FdmVudFRhcmdl
dC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9IYXNoQ2hhbmdlRXZlbnQuaWRsJywKICAgICAgICAg
ICAgICdkb20vS2V5Ym9hcmRFdmVudC5pZGwnLAotICAgICAgICAgICAgJ2RvbS9Mb2NhbE1lZGlh
U3RyZWFtLmlkbCcsCi0gICAgICAgICAgICAnZG9tL01lZGlhU3RyZWFtLmlkbCcsCi0gICAgICAg
ICAgICAnZG9tL01lZGlhU3RyZWFtTGlzdC5pZGwnLAotICAgICAgICAgICAgJ2RvbS9NZWRpYVN0
cmVhbVRyYWNrLmlkbCcsCi0gICAgICAgICAgICAnZG9tL01lZGlhU3RyZWFtVHJhY2tMaXN0Lmlk
bCcsCiAgICAgICAgICAgICAnZG9tL01lc3NhZ2VDaGFubmVsLmlkbCcsCiAgICAgICAgICAgICAn
ZG9tL01lc3NhZ2VFdmVudC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9NZXNzYWdlUG9ydC5pZGwn
LApAQCAtMTM2MywxMSArMTM1NywxNiBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9TY3JpcHRQ
cm9maWxlLmlkbCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlk
bCcsCiAgICAgICAgICAgICAnbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRs
JywKKyAgICAgICAgICAgICdtZWRpYXN0cmVhbS9Mb2NhbE1lZGlhU3RyZWFtLmlkbCcsCisgICAg
ICAgICAgICAnbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaWRsJywKKyAgICAgICAgICAgICdtZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbUV2ZW50LmlkbCcsCisgICAgICAgICAgICAnbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1MaXN0LmlkbCcsCisgICAgICAgICAgICAnbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFjay5pZGwnLAorICAgICAgICAgICAgJ21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tM
aXN0LmlkbCcsCisgICAgICAgICAgICAnbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24uaWRsJywK
KyAgICAgICAgICAgICdtZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvblNpZ25hbGluZ0NhbGxiYWNr
LmlkbCcsCiAgICAgICAgICAgICAnbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsJywKICAg
ICAgICAgICAgICdub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5pZGwnLAotICAgICAg
ICAgICAgJ3AycC9NZWRpYVN0cmVhbUV2ZW50LmlkbCcsCi0gICAgICAgICAgICAncDJwL1BlZXJD
b25uZWN0aW9uLmlkbCcsCi0gICAgICAgICAgICAncDJwL1NpZ25hbGluZ0NhbGxiYWNrLmlkbCcs
CiAgICAgICAgICAgICAncGFnZS9BYnN0cmFjdFZpZXcuaWRsJywKICAgICAgICAgICAgICdwYWdl
L0JhckluZm8uaWRsJywKICAgICAgICAgICAgICdwYWdlL0NvbnNvbGUuaWRsJywKQEAgLTI4NTcs
MTkgKzI4NTYsMzQgQEAKICAgICAgICAgICAgICdtYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuaCcs
CiAgICAgICAgICAgICAnbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcCcsCiAgICAgICAgICAg
ICAnbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmgnLAorICAgICAgICAgICAgJ21lZGlhc3RyZWFt
L0xvY2FsTWVkaWFTdHJlYW0uY3BwJywKKyAgICAgICAgICAgICdtZWRpYXN0cmVhbS9Mb2NhbE1l
ZGlhU3RyZWFtLmgnLAorICAgICAgICAgICAgJ21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ29tcG9u
ZW50LmgnLAorICAgICAgICAgICAgJ21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcCcsCisgICAg
ICAgICAgICAnbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaCcsCisgICAgICAgICAgICAnbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1FdmVudC5jcHAnLAorICAgICAgICAgICAgJ21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtRXZlbnQuaCcsCisgICAgICAgICAgICAnbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1M
aXN0LmNwcCcsCisgICAgICAgICAgICAnbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1MaXN0LmgnLAor
ICAgICAgICAgICAgJ21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUmVnaXN0cnkuY3BwJywKKyAgICAg
ICAgICAgICdtZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmgnLAorICAgICAgICAgICAg
J21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwJywKKyAgICAgICAgICAgICdtZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgnLAorICAgICAgICAgICAgJ21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2tMaXN0LmNwcCcsCisgICAgICAgICAgICAnbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFja0xpc3QuaCcsCisgICAgICAgICAgICAnbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24u
Y3BwJywKKyAgICAgICAgICAgICdtZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbi5oJywKKyAgICAg
ICAgICAgICdtZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvblNpZ25hbGluZ0NhbGxiYWNrLmgnLAor
ICAgICAgICAgICAgJ21lZGlhc3RyZWFtL1VzZXJNZWRpYUNsaWVudC5oJywKKyAgICAgICAgICAg
ICdtZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmNwcCcsCisgICAgICAgICAgICAnbWVk
aWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5oJywKICAgICAgICAgICAgICdub3RpZmljYXRp
b25zL05vdGlmaWNhdGlvbi5jcHAnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uLmgnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVy
LmNwcCcsCiAgICAgICAgICAgICAnbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaCcs
CiAgICAgICAgICAgICAnbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250ZW50cy5oJywKLSAg
ICAgICAgICAgICdwMnAvTWVkaWFTdHJlYW1FdmVudC5jcHAnLAotICAgICAgICAgICAgJ3AycC9N
ZWRpYVN0cmVhbUV2ZW50LmgnLAotICAgICAgICAgICAgJ3AycC9QZWVyQ29ubmVjdGlvbi5jcHAn
LAotICAgICAgICAgICAgJ3AycC9QZWVyQ29ubmVjdGlvbi5oJywKLSAgICAgICAgICAgICdwMnAv
U2lnbmFsaW5nQ2FsbGJhY2suaCcsCiAgICAgICAgICAgICAncGFnZS9CYXJJbmZvLmNwcCcsCiAg
ICAgICAgICAgICAncGFnZS9CYXJJbmZvLmgnLAotICAgICAgICAgICAgJ3BhZ2UvQ2FsbGJhY2tU
YXNrLmgnLAogICAgICAgICAgICAgJ3BhZ2UvQ2hyb21lLmNwcCcsCiAgICAgICAgICAgICAncGFn
ZS9Db25zb2xlLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3ku
Y3BwJywKQEAgLTI5MzksMTEgKzI5NTMsNiBAQAogICAgICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5w
dXRSZXN1bHQuaCcsCiAgICAgICAgICAgICAncGFnZS9TcGVlY2hJbnB1dFJlc3VsdExpc3QuY3Bw
JywKICAgICAgICAgICAgICdwYWdlL1NwZWVjaElucHV0UmVzdWx0TGlzdC5oJywKLSAgICAgICAg
ICAgICdwYWdlL01lZGlhU3RyZWFtQ2xpZW50LmgnLAotICAgICAgICAgICAgJ3BhZ2UvTWVkaWFT
dHJlYW1Db250cm9sbGVyLmNwcCcsCi0gICAgICAgICAgICAncGFnZS9NZWRpYVN0cmVhbUNvbnRy
b2xsZXIuaCcsCi0gICAgICAgICAgICAncGFnZS9NZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlci5j
cHAnLAotICAgICAgICAgICAgJ3BhZ2UvTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIuaCcsCiAg
ICAgICAgICAgICAncGFnZS9TdXNwZW5kYWJsZVRpbWVyLmNwcCcsCiAgICAgICAgICAgICAncGFn
ZS9TdXNwZW5kYWJsZVRpbWVyLmgnLAogICAgICAgICAgICAgJ3BhZ2UvVXNlckNvbnRlbnRVUkxQ
YXR0ZXJuLmNwcCcsCkBAIC0zMDM5LDggKzMwNDgsNiBAQAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L0xpbmtIYXNoLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0xvZ2dpbmcuY3BwJywKLSAgICAgICAgICAgICdw
bGF0Zm9ybS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0v
TWVkaWFTdHJlYW1SZWdpc3RyeS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9NZW1vcnlQcmVz
c3VyZUhhbmRsZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5
LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vUGFzdGVib2FyZC5oJywKQEAgLTQxMjcsNiAr
NDEzNCwxMiBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9XZWJGb250Q2FjaGUubW0nLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9XaGVlbEV2ZW50TWFjLm1tJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9tYWMvV2lkZ2V0TWFjLm1tJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbU1hbmFnZXIuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbU1hbmFnZXIuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1NYW5hZ2VyUHJpdmF0ZS5oJywKKyAgICAgICAgICAgICdw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVySGFuZGxlci5jcHAnLAorICAgICAgICAgICAgJ3BsYXRm
b3JtL21lZGlhc3RyZWFtL1BlZXJIYW5kbGVyLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1BlZXJIYW5kbGVyUHJpdmF0ZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9t
b2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcCcsCkBAIC01MjUwLDcgKzUyNjMsNiBA
QAogICAgICAgICAgICAgJ2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCcsCiAgICAg
ICAgICAgICAnZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwJywKICAgICAgICAgICAgICdk
b20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5oJywKLSAgICAgICAgICAgICdkb20vRGlzcGF0Y2hU
YXNrLmgnLAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudC5jcHAnLAogICAgICAgICAgICAgJ2Rv
bS9Eb2N1bWVudEZyYWdtZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9tL0RvY3VtZW50TWFya2Vy
Q29udHJvbGxlci5jcHAnLApAQCAtNTI5MCwxNiArNTMwMiw2IEBACiAgICAgICAgICAgICAnZG9t
L0ljb25VUkwuY3BwJywKICAgICAgICAgICAgICdkb20vSWNvblVSTC5oJywKICAgICAgICAgICAg
ICdkb20vS2V5Ym9hcmRFdmVudC5jcHAnLAotICAgICAgICAgICAgJ2RvbS9Mb2NhbE1lZGlhU3Ry
ZWFtLmNwcCcsCi0gICAgICAgICAgICAnZG9tL0xvY2FsTWVkaWFTdHJlYW0uaCcsCi0gICAgICAg
ICAgICAnZG9tL01lZGlhU3RyZWFtLmNwcCcsCi0gICAgICAgICAgICAnZG9tL01lZGlhU3RyZWFt
LmgnLAotICAgICAgICAgICAgJ2RvbS9NZWRpYVN0cmVhbUxpc3QuY3BwJywKLSAgICAgICAgICAg
ICdkb20vTWVkaWFTdHJlYW1MaXN0LmgnLAotICAgICAgICAgICAgJ2RvbS9NZWRpYVN0cmVhbVRy
YWNrLmNwcCcsCi0gICAgICAgICAgICAnZG9tL01lZGlhU3RyZWFtVHJhY2suaCcsCi0gICAgICAg
ICAgICAnZG9tL01lZGlhU3RyZWFtVHJhY2tMaXN0LmNwcCcsCi0gICAgICAgICAgICAnZG9tL01l
ZGlhU3RyZWFtVHJhY2tMaXN0LmgnLAogICAgICAgICAgICAgJ2RvbS9NZXNzYWdlQ2hhbm5lbC5j
cHAnLAogICAgICAgICAgICAgJ2RvbS9NZXNzYWdlQ2hhbm5lbC5oJywKICAgICAgICAgICAgICdk
b20vTWVzc2FnZUV2ZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDgwMzBjZDkuLjQzYjU3Y2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvCkBAIC0zMjUzLDQzICszMjUzLDE2IEBAIGNvbnRhaW5zKERFRklORVMs
IEVOQUJMRV9HRU9MT0NBVElPTj0xKSB7CiAKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9NRURJ
QV9TVFJFQU09MSkgewogICAgIEhFQURFUlMgKz0gXAotICAgICAgICBkb20vTG9jYWxNZWRpYVN0
cmVhbS5oIFwKLSAgICAgICAgZG9tL01lZGlhU3RyZWFtLmggXAotICAgICAgICBkb20vTWVkaWFT
dHJlYW1MaXN0LmggXAotICAgICAgICBkb20vTWVkaWFTdHJlYW1UcmFjay5oIFwKLSAgICAgICAg
ZG9tL01lZGlhU3RyZWFtVHJhY2tMaXN0LmggXAotICAgICAgICBwMnAvTWVkaWFTdHJlYW1FdmVu
dC5oIFwKLSAgICAgICAgcDJwL1BlZXJDb25uZWN0aW9uLmggXAotICAgICAgICBwMnAvU2lnbmFs
aW5nQ2FsbGJhY2suaCBcCi0gICAgICAgIHBhZ2UvQ2FsbGJhY2tUYXNrLmggXAotICAgICAgICBw
YWdlL01lZGlhU3RyZWFtQ2xpZW50LmggXAotICAgICAgICBwYWdlL01lZGlhU3RyZWFtQ29udHJv
bGxlci5oIFwKLSAgICAgICAgcGFnZS9NZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlci5oIFwKICAg
ICAgICAgcGFnZS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5oIFwKICAgICAgICAgcGFnZS9OYXZp
Z2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmggXAogICAgICAgICBwYWdlL05hdmlnYXRvclVz
ZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjay5oIFwKLSAgICAgICAgcGxhdGZvcm0vTWVkaWFTdHJlYW1S
ZWdpc3RyeS5oCi0KLSAgICBTT1VSQ0VTICs9IFwKLSAgICAgICAgZG9tL0xvY2FsTWVkaWFTdHJl
YW0uY3BwIFwKLSAgICAgICAgZG9tL01lZGlhU3RyZWFtLmNwcCBcCi0gICAgICAgIGRvbS9NZWRp
YVN0cmVhbUxpc3QuY3BwIFwKLSAgICAgICAgZG9tL01lZGlhU3RyZWFtVHJhY2suY3BwIFwKLSAg
ICAgICAgZG9tL01lZGlhU3RyZWFtVHJhY2tMaXN0LmNwcCBcCi0gICAgICAgIHAycC9NZWRpYVN0
cmVhbUV2ZW50LmNwcCBcCi0gICAgICAgIHAycC9QZWVyQ29ubmVjdGlvbi5jcHAgXAotICAgICAg
ICBwYWdlL01lZGlhU3RyZWFtQ29udHJvbGxlci5jcHAgXAotICAgICAgICBwYWdlL01lZGlhU3Ry
ZWFtRnJhbWVDb250cm9sbGVyLmNwcCBcCi0gICAgICAgIHBsYXRmb3JtL01lZGlhU3RyZWFtUmVn
aXN0cnkuY3BwCiAKICAgICB2OCB7CiAgICAgICAgIFNPVVJDRVMgKz0gXAotICAgICAgICAgICAg
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TmF2aWdhdG9yQ3VzdG9tLmNwcCBcCi0gICAgICAgICAgICBi
aW5kaW5ncy92OC9jdXN0b20vVjhQZWVyQ29ubmVjdGlvbkN1c3RvbS5jcHAKKyAgICAgICAgICAg
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hdmlnYXRvckN1c3RvbS5jcHAKICAgICB9IGVsc2Ugewog
ICAgICAgICBTT1VSQ0VTICs9IFwKLSAgICAgICAgICAgIGJpbmRpbmdzL2pzL0pTTmF2aWdhdG9y
Q3VzdG9tLmNwcCBcCi0gICAgICAgICAgICBiaW5kaW5ncy9qcy9KU1BlZXJDb25uZWN0aW9uQ3Vz
dG9tLmNwcAorICAgICAgICAgICAgYmluZGluZ3MvanMvSlNOYXZpZ2F0b3JDdXN0b20uY3BwCiAg
ICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CmluZGV4IDBhNmUwZWEuLjdlNGQ0YmQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCkBAIC0xMDYyNiw2MiArMTA2MjYsNiBAQAogCQkJCT4KIAkJCTwv
RmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTG9jYWxNZWRpYVN0cmVhbS5j
cHAiCi0JCQkJPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4z
MiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIK
LQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRl
fFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9v
bAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0Nh
aXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4K
LQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0i
RGVidWdfQWxsfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgot
CQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJQ
cm9kdWN0aW9ufFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgot
CQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBh
dGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcSlNMb2NhbE1lZGlhU3RyZWFtLmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUK
IAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNMb2NhdGlvbi5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgpAQCAtMTA5MzAsMjg2ICsxMDg3NCw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgog
CQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNZWRpYVN0cmVhbS5jcHAiCi0JCQkJPgot
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgot
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxX
aW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wK
LQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdp
bjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAot
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdp
bjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAot
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNZWRp
YVN0cmVhbS5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRo
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXEpTTWVkaWFTdHJlYW1FdmVudC5jcHAiCi0JCQkJPgotCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
Ci0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJ
CS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJ
CQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0J
CQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+
Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJ
TmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
LQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgotCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgotCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJPC9GaWxlPgot
CQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNZWRpYVN0cmVhbUV2ZW50LmgiCi0JCQkJ
PgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNZWRpYVN0cmVh
bUxpc3QuY3BwIgotCQkJCT4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVi
dWd8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxU
b29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2V8
V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29s
Ci0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0NhaXJv
X0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJ
CQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVs
ZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgot
CQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkv
PgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJ
CU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0J
CQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+
Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJ
TmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0J
CQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+
Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVs
YXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXEpTTWVkaWFTdHJlYW1MaXN0LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJ
PEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNZWRpYVN0cmVhbVRyYWNrLmNwcCIKLQkJCQk+
Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0J
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRl
fFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9v
bAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8
V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29s
Ci0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rpb258
V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29s
Ci0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iJChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU01l
ZGlhU3RyZWFtVHJhY2suaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0
aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU01lZGlhU3RyZWFtVHJhY2tMaXN0LmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVD
b25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVD
b25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgot
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0J
CQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0J
CQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU01lZGlhU3RyZWFtVHJh
Y2tMaXN0LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9
IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJj
ZXNcSlNNZW1vcnlJbmZvLmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC0x
MjQ1MCw2MiArMTIxMTQsNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVs
YXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXEpTUGVlckNvbm5lY3Rpb24uY3BwIgotCQkJCT4KLQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0
aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgot
CQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9u
Ci0JCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJ
PEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKLQkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKLQkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCTwv
RmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTUGVlckNvbm5lY3Rpb24uaCIK
LQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1
cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1BlcmZv
cm1hbmNlLmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC0xMzQwMiw2MiAr
MTMwMTAsNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRo
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXFdlYkNvcmVcRGVyaXZlZFNvdXJjZXNcSlNT
aWduYWxpbmdDYWxsYmFjay5jcHAiCi0JCQkJPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJ
CQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJ
CT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0J
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFt
ZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4K
LQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0i
RGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
LQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJ
Lz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJ
CQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgotCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJPC9GaWxlPgotCQkJPEZp
bGUKLQkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcV2ViQ29y
ZVxEZXJpdmVkU291cmNlc1xKU1NpZ25hbGluZ0NhbGxiYWNrLmgiCi0JCQkJPgotCQkJPC9GaWxl
PgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxv
YmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNTUUxFcnJvci5jcHAiCiAJCQkJPgog
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtMjUyOTEsMzAgKzI0ODQzLDYgQEAKIAkJCTwvRmls
dGVyPgogCQk8L0ZpbHRlcj4KIAkJPEZpbHRlcgotCQkJTmFtZT0icDJwIgotCQkJPgotCQkJPEZp
bGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHAycFxNZWRpYVN0cmVhbUV2ZW50LmNwcCIKLQkJCQk+
Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccDJwXE1lZGlhU3Ry
ZWFtRXZlbnQuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0
aD0iLi5ccDJwXFBlZXJDb25uZWN0aW9uLmNwcCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8Rmls
ZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccDJwXFBlZXJDb25uZWN0aW9uLmgiCi0JCQkJPgotCQkJ
PC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTaWduYWxpbmdDYWxs
YmFjay5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJPC9GaWx0ZXI+Ci0JCTxGaWx0ZXIKIAkJCU5h
bWU9InBhZ2UiCiAJCQk+CiAJCQk8RmlsZQpAQCAtMjUzNTAsMTAgKzI0ODc4LDYgQEAKIAkJCQk+
CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxDYWxsYmFj
a1Rhc2suaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0i
Li5ccGFnZVxDaHJvbWUuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTI1NjE0LDI2ICsyNTEz
OCw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHBhZ2VcTWVkaWFTdHJlYW1DbGllbnQuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQot
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxNZWRpYVN0cmVhbUNvbnRyb2xsZXIuY3BwIgotCQkJ
CT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXE1lZGlh
U3RyZWFtQ29udHJvbGxlci5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVs
YXRpdmVQYXRoPSIuLlxwYWdlXE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyLmNwcCIKLQkJCQk+
Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxNZWRpYVN0
cmVhbUZyYW1lQ29udHJvbGxlci5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxwYWdlXE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMuY3BwIgog
CQkJCT4KIAkJCTwvRmlsZT4KQEAgLTI2ODEwLDE0ICsyNjMxNCw2IEBACiAJCQkJPgogCQkJPC9G
aWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXE1lZGlhU3RyZWFt
UmVnaXN0cnkuY3BwIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwbGF0Zm9ybVxNZWRpYVN0cmVhbVJlZ2lzdHJ5LmgiCi0JCQkJPgotCQkJPC9GaWxl
PgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXE1lbW9yeVByZXNzdXJl
SGFuZGxlci5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtNDQ2NTgsMTAgKzQ0MTU0LDYgQEAK
IAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXERp
c3BhdGNoVGFzay5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxkb21cRG9jdW1lbnQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
QEAgLTQ2MjM0LDI5MCArNDU3MjYsMTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQot
CQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXExvY2FsTWVkaWFTdHJlYW0uY3BwIgotCQkJCT4KLQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCi0JCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZp
bGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCi0JCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVD
b25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2lu
MzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0J
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4z
MiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4z
MiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cTG9j
YWxNZWRpYVN0cmVhbS5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRp
dmVQYXRoPSIuLlxkb21cTWFwcGVkQXR0cmlidXRlRW50cnkuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE1lZGlhU3RyZWFtLmNwcCIKLQkJ
CQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgot
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIi
Ci0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZM
aXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8
VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19B
bGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxU
b29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rp
b258V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxU
b29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5c
ZG9tXE1lZGlhU3RyZWFtLmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGRvbVxNZWRpYVN0cmVhbUxpc3QuY3BwIgotCQkJCT4KLQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1
cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0
aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0J
CQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKLQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKLQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJ
CTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cTWVkaWFTdHJlYW1M
aXN0LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGRvbVxNZWRpYVN0cmVhbVRyYWNrLmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9u
Ci0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
LQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJ
Lz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJ
CQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJ
CQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4K
LQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlO
YW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgot
CQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9u
Ci0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25m
aWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0J
CQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE1lZGlhU3RyZWFtVHJhY2suaCIKLQkJ
CQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE1lZGlh
U3RyZWFtVHJhY2tMaXN0LmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJ
CU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJ
PgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1l
PSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgot
CQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJE
ZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgot
CQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkv
PgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJ
CU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0
aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8Rmls
ZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE1lZGlhU3RyZWFtVHJhY2tMaXN0LmgiCi0JCQkJ
PgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxNZXNzYWdl
Q2hhbm5lbC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtNjM1MDEsNTgg
KzYyNzEzLDYgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTUGVlckNvbm5lY3Rpb25DdXN0b20uY3BwIgotCQkJCQk+
Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCi0JCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJCT4KLQkJCQkJCTxUb29sCi0JCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJCS8+Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIK
LQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQkJPgotCQkJCQkJPFRvb2wKLQkJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkJLz4KLQkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCQlOYW1lPSJEZWJ1Z19DYWly
b19DRkxpdGV8V2luMzIiCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJCT4K
LQkJCQkJCTxUb29sCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJCS8+Ci0J
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJ
TmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKLQkJCQkJCT4KLQkJCQkJCTxUb29sCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKLQkJCQkJCS8+Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgotCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCi0JCQkJCQk+Ci0JCQkJCQk8VG9vbAotCQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCi0JCQkJCQkvPgotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJCT4KLQkJCQkJCTxUb29sCi0JCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJCS8+Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3Nc
anNcSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA4ZWViNTkwLi40MDVmNjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDkzLDcgKzEwOTMsNiBAQAog
CQk0NkY5RDVERjBCMEQ2MDE3MDAyOEVFMzYgLyogcHJvZ3Jlc3NDdXJzb3IucG5nIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkY5RDVEQzBCMEQ2MDE3
MDAyOEVFMzYgLyogcHJvZ3Jlc3NDdXJzb3IucG5nICovOyB9OwogCQk0OTA3MDdFNjEyMTlDMDQz
MDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDkwNzA3RTQxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xF
V2ViS2l0QnJpZGdlLmNwcCAqLzsgfTsKIAkJNDkwNzA3RTcxMjE5QzA0MzAwRDkwRTUxIC8qIEFO
R0xFV2ViS2l0QnJpZGdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0OTA3MDdFNTEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuaCAq
LzsgfTsKLQkJNDkwQzQ3Q0UxM0U4MkQxODAwRjdBQjgyIC8qIERpc3BhdGNoVGFzay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDkwQzQ3Q0QxM0U4MkQx
ODAwRjdBQjgyIC8qIERpc3BhdGNoVGFzay5oICovOyB9OwogCQk0OTI4NjM5OTEyNTNCOEZDMDBG
NzkyRDYgLyogUmVzb3VyY2VMb2FkSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDkyODYzOTgxMjUzQjhGQzAwRjc5MkQ2IC8qIFJlc291cmNlTG9h
ZEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk0OTI5MUU0QjEzNDE3MkM4MDBFNzUzREUgLyogSW1hZ2VSZW5kZXJpbmdNb2RlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTI5MUU0QTEzNDE3MkM4
MDBFNzUzREUgLyogSW1hZ2VSZW5kZXJpbmdNb2RlLmggKi87IH07CiAJCTQ5M0U1RTA5MTJENjQy
MDUwMDAyMDA4MSAvKiBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5M0U1RTA4MTJENjQyMDUwMDAyMDA4MSAvKiBQ
bGF0Zm9ybUNBTGF5ZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtMTExNyw4ICsxMTE2LDYgQEAKIAkJNDk1ODc4MjIxMkE1N0RERjAw
NzIzOEFDIC8qIFBsYXRmb3JtQ0FMYXllck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NTg3ODIwMTJBNTdEREYwMDcyMzhBQyAvKiBQbGF0Zm9y
bUNBTGF5ZXJNYWMubW0gKi87IH07CiAJCTQ5NjlCMEYyMTNEMEIzM0YwMERGMzUyMSAvKiBIaXRU
ZXN0aW5nVHJhbnNmb3JtU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDk2OUIwRjAxM0QwQjMzRjAwREYzNTIxIC8qIEhpdFRlc3RpbmdUcmFu
c2Zvcm1TdGF0ZS5jcHAgKi87IH07CiAJCTQ5NjlCMEYzMTNEMEIzM0YwMERGMzUyMSAvKiBIaXRU
ZXN0aW5nVHJhbnNmb3JtU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ5NjlCMEYxMTNEMEIzM0YwMERGMzUyMSAvKiBIaXRUZXN0aW5nVHJhbnNm
b3JtU3RhdGUuaCAqLzsgfTsKLQkJNDk3ODVFRTAxM0YxOTJGMDAwQTc5NUFEIC8qIE1lZGlhU3Ry
ZWFtUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDk3ODVFREUxM0YxOTJGMDAwQTc5NUFEIC8qIE1lZGlhU3RyZWFtUmVnaXN0cnkuY3Bw
ICovOyB9OwotCQk0OTc4NUVFMTEzRjE5MkYwMDBBNzk1QUQgLyogTWVkaWFTdHJlYW1SZWdpc3Ry
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk3ODVF
REYxM0YxOTJGMDAwQTc5NUFEIC8qIE1lZGlhU3RyZWFtUmVnaXN0cnkuaCAqLzsgfTsKIAkJNDk4
MzkxM0YwRjFFNzY3NTAwQzIzNzgyIC8qIEpTV2ViS2l0Q1NTTWF0cml4LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODM5MTNEMEYxRTc2NzUwMEMy
Mzc4MiAvKiBKU1dlYktpdENTU01hdHJpeC5jcHAgKi87IH07CiAJCTQ5ODM5MTQwMEYxRTc2NzUw
MEMyMzc4MiAvKiBKU1dlYktpdENTU01hdHJpeC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4MzkxM0UwRjFFNzY3NTAwQzIzNzgyIC8qIEpTV2ViS2l0
Q1NTTWF0cml4LmggKi87IH07CiAJCTQ5ODM5MTUwMEYxRTc2QjQwMEMyMzc4MiAvKiBET01XZWJL
aXRDU1NNYXRyaXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ5ODM5MTREMEYxRTc2QjQwMEMyMzc4MiAvKiBET01XZWJLaXRDU1NNYXRyaXguaCAqLzsg
fTsKQEAgLTExNDUsMTggKzExNDIsNiBAQAogCQk0OTlCM0VENjEyOENEMzE0MDBFNzI2QzIgLyog
R3JhcGhpY3NMYXllckNBLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ5OUIzRUQ0MTI4Q0QzMTQwMEU3MjZDMiAvKiBHcmFwaGljc0xheWVyQ0EuY3Bw
ICovOyB9OwogCQk0OTlCM0VENzEyOENEMzE0MDBFNzI2QzIgLyogR3JhcGhpY3NMYXllckNBLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTlCM0VENTEy
OENEMzE0MDBFNzI2QzIgLyogR3JhcGhpY3NMYXllckNBLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDk5QjNFREQxMjhEQjUwMjAwRTcyNkMyIC8q
IFBsYXRmb3JtQ0FBbmltYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ5OUIzRURDMTI4REI1MDEwMEU3MjZDMiAvKiBQbGF0Zm9ybUNBQW5pbWF0
aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJ
NDlBMkNGRDkxM0U5Nzg3RTAwNTc5RjEzIC8qIE1lZGlhU3RyZWFtRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlBMkNGRDYxM0U5Nzg3RTAw
NTc5RjEzIC8qIE1lZGlhU3RyZWFtRXZlbnQuY3BwICovOyB9OwotCQk0OUEyQ0ZEQTEzRTk3ODdF
MDA1NzlGMTMgLyogTWVkaWFTdHJlYW1FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDlBMkNGRDcxM0U5Nzg3RTAwNTc5RjEzIC8qIE1lZGlhU3Ry
ZWFtRXZlbnQuaCAqLzsgfTsKLQkJNDlBMkQzOTQxM0U5ODFBMzAwNTc5RjEzIC8qIEpTTWVkaWFT
dHJlYW1FdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0OUEyRDM5MjEzRTk4MUEzMDA1NzlGMTMgLyogSlNNZWRpYVN0cmVhbUV2ZW50LmNwcCAq
LzsgfTsKLQkJNDlBMkQzOTUxM0U5ODFBMzAwNTc5RjEzIC8qIEpTTWVkaWFTdHJlYW1FdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlBMkQzOTMx
M0U5ODFBMzAwNTc5RjEzIC8qIEpTTWVkaWFTdHJlYW1FdmVudC5oICovOyB9OwotCQk0OUE1QTRG
RTEzRTJGMDFFMDBDRkRBRTAgLyogUGVlckNvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlBNUE0RjgxM0UyRjAxRTAwQ0ZEQUUwIC8q
IFBlZXJDb25uZWN0aW9uLmNwcCAqLzsgfTsKLQkJNDlBNUE0RkYxM0UyRjAxRTAwQ0ZEQUUwIC8q
IFBlZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0OUE1QTRGOTEzRTJGMDFFMDBDRkRBRTAgLyogUGVlckNvbm5lY3Rpb24uaCAqLzsg
fTsKLQkJNDlBNUE1MDExM0UyRjAxRTAwQ0ZEQUUwIC8qIFNpZ25hbGluZ0NhbGxiYWNrLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUE1QTRGQjEzRTJG
MDFFMDBDRkRBRTAgLyogU2lnbmFsaW5nQ2FsbGJhY2suaCAqLzsgfTsKLQkJNDlCRTMwRDIxM0Q5
NzQ3QjAwMzgwOEE5IC8qIEpTUGVlckNvbm5lY3Rpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlCRTMwRDExM0Q5NzQ3QjAwMzgwOEE5
IC8qIEpTUGVlckNvbm5lY3Rpb25DdXN0b20uY3BwICovOyB9OwotCQk0OUJFMzBGMzEzRDk3NjQ2
MDAzODA4QTkgLyogSlNQZWVyQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUJFMzBFRjEzRDk3NjQ2MDAzODA4QTkgLyogSlNQZWVy
Q29ubmVjdGlvbi5jcHAgKi87IH07Ci0JCTQ5QkUzMEY0MTNEOTc2NDYwMDM4MDhBOSAvKiBKU1Bl
ZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0OUJFMzBGMDEzRDk3NjQ2MDAzODA4QTkgLyogSlNQZWVyQ29ubmVjdGlvbi5oICovOyB9
OwotCQk0OUJFMzBGNTEzRDk3NjQ2MDAzODA4QTkgLyogSlNTaWduYWxpbmdDYWxsYmFjay5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUJFMzBGMTEz
RDk3NjQ2MDAzODA4QTkgLyogSlNTaWduYWxpbmdDYWxsYmFjay5jcHAgKi87IH07Ci0JCTQ5QkUz
MEY2MTNEOTc2NDYwMDM4MDhBOSAvKiBKU1NpZ25hbGluZ0NhbGxiYWNrLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUJFMzBGMjEzRDk3NjQ2MDAzODA4
QTkgLyogSlNTaWduYWxpbmdDYWxsYmFjay5oICovOyB9OwogCQk0OUM3Qjk5MzEwNDJEMkQzMDAw
OUQ0NDcgLyogSlNXZWJHTEJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0OUM3Qjk4MDEwNDJEMkQzMDAwOUQ0NDcgLyogSlNXZWJHTEJ1ZmZl
ci5jcHAgKi87IH07CiAJCTQ5QzdCOTk0MTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dlYkdMQnVmZmVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUM3Qjk4
MTEwNDJEMkQzMDAwOUQ0NDcgLyogSlNXZWJHTEJ1ZmZlci5oICovOyB9OwogCQk0OUM3Qjk5NTEw
NDJEMkQzMDAwOUQ0NDcgLyogSlNJbnQ4QXJyYXkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlDN0I5ODIxMDQyRDJEMzAwMDlENDQ3IC8qIEpTSW50
OEFycmF5LmNwcCAqLzsgfTsKQEAgLTExOTQsMTQgKzExNzksNiBAQAogCQk0OUM3QjlGQzEwNDJE
MzY1MDAwOUQ0NDcgLyogR3JhcGhpY3NDb250ZXh0M0QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5QzdCOUZCMTA0MkQzNjUwMDA5RDQ0NyAvKiBHcmFw
aGljc0NvbnRleHQzRC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQ5QzdCQTc5MTA0MkVGQUUwMDA5RDQ0NyAvKiBPcGVuR0wuZnJhbWV3b3JrIGlu
IEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlDN0JBNzgx
MDQyRUZBRTAwMDlENDQ3IC8qIE9wZW5HTC5mcmFtZXdvcmsgKi87IH07CiAJCTQ5QzdCQThEMTA0
MkY1QjEwMDA5RDQ0NyAvKiBKU0RvY3VtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5QzdCQThDMTA0MkY1QjEwMDA5RDQ0NyAvKiBK
U0RvY3VtZW50Q3VzdG9tLmNwcCAqLzsgfTsKLQkJNDlDOUYzMjMxM0Q1NzRGOTAwNTI2MDBBIC8q
IE1lZGlhU3RyZWFtVHJhY2tMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0OUM5RjMxRDEzRDU3NEY4MDA1MjYwMEEgLyogTWVkaWFTdHJlYW1UcmFj
a0xpc3QuaCAqLzsgfTsKLQkJNDlDOUYzMjQxM0Q1NzRGOTAwNTI2MDBBIC8qIE1lZGlhU3RyZWFt
VHJhY2tMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ5QzlGMzFFMTNENTc0RjgwMDUyNjAwQSAvKiBNZWRpYVN0cmVhbVRyYWNrTGlzdC5jcHAg
Ki87IH07Ci0JCTQ5QzlGMzI2MTNENTc0RjkwMDUyNjAwQSAvKiBNZWRpYVN0cmVhbVRyYWNrLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUM5RjMyMDEz
RDU3NEY5MDA1MjYwMEEgLyogTWVkaWFTdHJlYW1UcmFjay5oICovOyB9OwotCQk0OUM5RjMyNzEz
RDU3NEY5MDA1MjYwMEEgLyogTWVkaWFTdHJlYW1UcmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUM5RjMyMTEzRDU3NEY5MDA1MjYwMEEgLyog
TWVkaWFTdHJlYW1UcmFjay5jcHAgKi87IH07Ci0JCTQ5QzlGNDhFMTNENTdEMzIwMDUyNjAwQSAv
KiBKU01lZGlhU3RyZWFtVHJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDlDOUY0OEExM0Q1N0QzMjAwNTI2MDBBIC8qIEpTTWVkaWFTdHJlYW1U
cmFjay5jcHAgKi87IH07Ci0JCTQ5QzlGNDhGMTNENTdEMzIwMDUyNjAwQSAvKiBKU01lZGlhU3Ry
ZWFtVHJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ5QzlGNDhCMTNENTdEMzIwMDUyNjAwQSAvKiBKU01lZGlhU3RyZWFtVHJhY2suaCAqLzsgfTsK
LQkJNDlDOUY0OTAxM0Q1N0QzMjAwNTI2MDBBIC8qIEpTTWVkaWFTdHJlYW1UcmFja0xpc3QuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlDOUY0OEMx
M0Q1N0QzMjAwNTI2MDBBIC8qIEpTTWVkaWFTdHJlYW1UcmFja0xpc3QuY3BwICovOyB9OwotCQk0
OUM5RjQ5MTEzRDU3RDMyMDA1MjYwMEEgLyogSlNNZWRpYVN0cmVhbVRyYWNrTGlzdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlDOUY0OEQxM0Q1N0Qz
MjAwNTI2MDBBIC8qIEpTTWVkaWFTdHJlYW1UcmFja0xpc3QuaCAqLzsgfTsKIAkJNDlENURDMkIw
RjQyM0E3MzAwOEYyMEZEIC8qIE1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RDVEQzI3MEY0MjNBNzMw
MDhGMjBGRCAvKiBNYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAgKi87IH07CiAJCTQ5RDVE
QzJDMEY0MjNBNzMwMDhGMjBGRCAvKiBNYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlENURDMjgwRjQyM0E3
MzAwOEYyMEZEIC8qIE1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDlENURDMkQwRjQyM0E3MzAwOEYy
MEZEIC8qIFBlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RDVEQzI5MEY0MjNBNzMwMDhGMjBGRCAv
KiBQZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAgKi87IH07CkBAIC00MDk4LDEwICs0
MDc1LDYgQEAKIAkJQjEwQjY5ODAxNDBDMTc0MDAwQkMxQzI2IC8qIFdlYlZUVFRva2VuLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMTBCNjk3RDE0MEMx
NzQwMDBCQzFDMjYgLyogV2ViVlRUVG9rZW4uaCAqLzsgfTsKIAkJQjEwQjY5ODExNDBDMTc0MDAw
QkMxQzI2IC8qIFdlYlZUVFRva2VuaXplci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCMTBCNjk3RTE0MEMxNzQwMDBCQzFDMjYgLyogV2ViVlRUVG9r
ZW5pemVyLmNwcCAqLzsgfTsKIAkJQjEwQjY5ODIxNDBDMTc0MDAwQkMxQzI2IC8qIFdlYlZUVFRv
a2VuaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QjEwQjY5N0YxNDBDMTc0MDAwQkMxQzI2IC8qIFdlYlZUVFRva2VuaXplci5oICovOyB9OwotCQlC
MTQzNTNENTEzOEVBOEVEMDBENTMyNzYgLyogTWVkaWFTdHJlYW1MaXN0LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxNDM1M0QxMTM4RUE4RUQwMEQ1
MzI3NiAvKiBNZWRpYVN0cmVhbUxpc3QuY3BwICovOyB9OwotCQlCMTQzNTNENjEzOEVBOEVEMDBE
NTMyNzYgLyogTWVkaWFTdHJlYW1MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCMTQzNTNEMjEzOEVBOEVEMDBENTMyNzYgLyogTWVkaWFTdHJlYW1M
aXN0LmggKi87IH07Ci0JCUIxNDM1M0Y4MTM4RUE5NUIwMEQ1MzI3NiAvKiBKU01lZGlhU3RyZWFt
TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
MTQzNTNGNjEzOEVBOTVCMDBENTMyNzYgLyogSlNNZWRpYVN0cmVhbUxpc3QuY3BwICovOyB9Owot
CQlCMTQzNTNGOTEzOEVBOTVCMDBENTMyNzYgLyogSlNNZWRpYVN0cmVhbUxpc3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxNDM1M0Y3MTM4RUE5NUIw
MEQ1MzI3NiAvKiBKU01lZGlhU3RyZWFtTGlzdC5oICovOyB9OwogCQlCMTgyNzQ5MzEzNENBNEMx
MDBCOThDMkQgLyogQ2FsbGJhY2tGdW5jdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMTgyNzQ5MjEzNENBNEMxMDBCOThDMkQgLyogQ2FsbGJh
Y2tGdW5jdGlvbi5jcHAgKi87IH07CiAJCUIxQUQ0RTVDMTNBMTJBMEIwMDg0NkIyNyAvKiBDdWVJ
bmRleC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
MUFENEU0QjEzQTEyQTBCMDA4NDZCMjcgLyogQ3VlSW5kZXguY3BwICovOyB9OwogCQlCMUFENEU1
RDEzQTEyQTBCMDA4NDZCMjcgLyogQ3VlSW5kZXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxQUQ0RTRDMTNBMTJBMEIwMDg0NkIyNyAvKiBDdWVJbmRl
eC5oICovOyB9OwpAQCAtNDEyMSwyOSArNDA5NCwxNSBAQAogCQlCMUFENEU3QzEzQTEyQTcyMDA4
NDZCMjcgLyogQ3VlUGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCMUFENEU3OTEzQTEyQTcyMDA4NDZCMjcgLyogQ3VlUGFyc2VyLmggKi87IH07
CiAJCUIxQUQ0RTdEMTNBMTJBNzIwMDg0NkIyNyAvKiBDdWVQYXJzZXJQcml2YXRlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUFENEU3QTEzQTEyQTcy
MDA4NDZCMjcgLyogQ3VlUGFyc2VyUHJpdmF0ZS5oICovOyB9OwogCQlCMUQ1RUNCNTEzNEI1OERB
MDA4N0M3OEYgLyogQ2FsbGJhY2tGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQjFENUVDQjQxMzRCNThEQTAwODdDNzhGIC8qIENhbGxiYWNr
RnVuY3Rpb24uaCAqLzsgfTsKLQkJQjFFNTQ1N0ExMzQ2MjkxRjAwOTJBNTQ1IC8qIExvY2FsTWVk
aWFTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQjFFNTQ1NzExMzQ2MjkxRjAwOTJBNTQ1IC8qIExvY2FsTWVkaWFTdHJlYW0uY3BwICovOyB9
OwotCQlCMUU1NDU3QjEzNDYyOTFGMDA5MkE1NDUgLyogTG9jYWxNZWRpYVN0cmVhbS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjFFNTQ1NzIxMzQ2Mjkx
RjAwOTJBNTQ1IC8qIExvY2FsTWVkaWFTdHJlYW0uaCAqLzsgfTsKLQkJQjFFNTQ1N0QxMzQ2Mjkx
RjAwOTJBNTQ1IC8qIE1lZGlhU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEIxRTU0NTc0MTM0NjI5MUYwMDkyQTU0NSAvKiBNZWRpYVN0cmVh
bS5jcHAgKi87IH07Ci0JCUIxRTU0NTdFMTM0NjI5MUYwMDkyQTU0NSAvKiBNZWRpYVN0cmVhbS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjFFNTQ1NzUx
MzQ2MjkxRjAwOTJBNTQ1IC8qIE1lZGlhU3RyZWFtLmggKi87IH07Ci0JCUIxRTU0NTkzMTM0NjI5
QzEwMDkyQTU0NSAvKiBDYWxsYmFja1Rhc2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEIxRTU0NTg3MTM0NjI5QzEwMDkyQTU0NSAvKiBDYWxsYmFja1Rh
c2suaCAqLzsgfTsKLQkJQjFFNTQ1OTQxMzQ2MjlDMTAwOTJBNTQ1IC8qIE1lZGlhU3RyZWFtQ2xp
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUU1
NDU4ODEzNDYyOUMxMDA5MkE1NDUgLyogTWVkaWFTdHJlYW1DbGllbnQuaCAqLzsgfTsKLQkJQjFF
NTQ1OTUxMzQ2MjlDMTAwOTJBNTQ1IC8qIE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxRTU0NTg5MTM0
NjI5QzEwMDkyQTU0NSAvKiBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlci5jcHAgKi87IH07Ci0J
CUIxRTU0NTk2MTM0NjI5QzEwMDkyQTU0NSAvKiBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjFFNTQ1OEEx
MzQ2MjlDMTAwOTJBNTQ1IC8qIE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyLmggKi87IH07Ci0J
CUIxRTU0NTk3MTM0NjI5QzEwMDkyQTU0NSAvKiBNZWRpYVN0cmVhbUNvbnRyb2xsZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjFFNTQ1OEIxMzQ2
MjlDMTAwOTJBNTQ1IC8qIE1lZGlhU3RyZWFtQ29udHJvbGxlci5jcHAgKi87IH07Ci0JCUIxRTU0
NTk4MTM0NjI5QzEwMDkyQTU0NSAvKiBNZWRpYVN0cmVhbUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxRTU0NThDMTM0NjI5QzEwMDky
QTU0NSAvKiBNZWRpYVN0cmVhbUNvbnRyb2xsZXIuaCAqLzsgfTsKIAkJQjFFNTQ1OTkxMzQ2MjlD
MTAwOTJBNTQ1IC8qIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUU1NDU4RDEzNDYyOUMxMDA5MkE1NDUgLyog
TmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuaCAqLzsgfTsKIAkJQjFFNTQ1OUIxMzQ2MjlDMTAwOTJB
NTQ1IC8qIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxRTU0NThGMTM0NjI5QzEwMDkyQTU0NSAv
KiBOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmggKi87IH07CiAJCUIxRTU0NTlEMTM0
NjI5QzEwMDkyQTU0NSAvKiBOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxRTU0NTkxMTM0NjI5
QzEwMDkyQTU0NSAvKiBOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaCAqLzsgfTsK
LQkJQjFFNTQ1REQxMzQ2MkIwQjAwOTJBNTQ1IC8qIEpTTG9jYWxNZWRpYVN0cmVhbS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUU1NDVDRjEzNDYy
QjBCMDA5MkE1NDUgLyogSlNMb2NhbE1lZGlhU3RyZWFtLmNwcCAqLzsgfTsKLQkJQjFFNTQ1REUx
MzQ2MkIwQjAwOTJBNTQ1IC8qIEpTTG9jYWxNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjFFNTQ1RDAxMzQ2MkIwQjAwOTJBNTQ1IC8q
IEpTTG9jYWxNZWRpYVN0cmVhbS5oICovOyB9OwogCQlCMUU1NDVERjEzNDYyQjBCMDA5MkE1NDUg
LyogSlNOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUU1NDVEMTEzNDYyQjBCMDA5MkE1NDUgLyogSlNOYXZp
Z2F0b3JVc2VyTWVkaWFFcnJvci5jcHAgKi87IH07CiAJCUIxRTU0NUUwMTM0NjJCMEIwMDkyQTU0
NSAvKiBKU05hdmlnYXRvclVzZXJNZWRpYUVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUU1NDVEMjEzNDYyQjBCMDA5MkE1NDUgLyogSlNOYXZp
Z2F0b3JVc2VyTWVkaWFFcnJvci5oICovOyB9OwogCQlCMUU1NDVFMTEzNDYyQjBCMDA5MkE1NDUg
LyogSlNOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxRTU0NUQzMTM0NjJCMEIwMDkyQTU0NSAv
KiBKU05hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2suY3BwICovOyB9OwogCQlCMUU1NDVF
MjEzNDYyQjBCMDA5MkE1NDUgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUU1NDVENDEz
NDYyQjBCMDA5MkE1NDUgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmggKi87
IH07CiAJCUIxRTU0NUUzMTM0NjJCMEIwMDkyQTU0NSAvKiBKU05hdmlnYXRvclVzZXJNZWRpYVN1
Y2Nlc3NDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMUU1NDVENTEzNDYyQjBCMDA5MkE1NDUgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWFT
dWNjZXNzQ2FsbGJhY2suY3BwICovOyB9OwogCQlCMUU1NDVFNDEzNDYyQjBCMDA5MkE1NDUgLyog
SlNOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxRTU0NUQ2MTM0NjJCMEIwMDkyQTU0NSAvKiBK
U05hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjay5oICovOyB9OwotCQlCMUU1NDVFNTEz
NDYyQjBCMDA5MkE1NDUgLyogSlNNZWRpYVN0cmVhbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUU1NDVENzEzNDYyQjBCMDA5MkE1NDUgLyogSlNN
ZWRpYVN0cmVhbS5jcHAgKi87IH07Ci0JCUIxRTU0NUU2MTM0NjJCMEIwMDkyQTU0NSAvKiBKU01l
ZGlhU3RyZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMUU1NDVEODEzNDYyQjBCMDA5MkE1NDUgLyogSlNNZWRpYVN0cmVhbS5oICovOyB9OwogCQlC
MjAxMTEwNzBBQjc3NDA1MDBEQjBFNjggLyogSlNTVkdBRWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjAxMTEwNTBBQjc3NDA1MDBEQjBF
NjggLyogSlNTVkdBRWxlbWVudC5jcHAgKi87IH07CiAJCUIyMDExMTA4MEFCNzc0MDUwMERCMEU2
OCAvKiBKU1NWR0FFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCMjAxMTEwNjBBQjc3NDA1MDBEQjBFNjggLyogSlNTVkdBRWxlbWVudC5oICov
OyB9OwogCQlCMjIyNzk2MjBEMDBCRjIyMDA3MUI3ODIgLyogQ29sb3JEaXN0YW5jZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzdDQjBEMDBC
RjFGMDA3MUI3ODIgLyogQ29sb3JEaXN0YW5jZS5jcHAgKi87IH07CkBAIC03NzAxLDcgKzc2NjAs
NiBAQAogCQk0NkY5RDVEQzBCMEQ2MDE3MDAyOEVFMzYgLyogcHJvZ3Jlc3NDdXJzb3IucG5nICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5n
OyBwYXRoID0gcHJvZ3Jlc3NDdXJzb3IucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0OTA3MDdFNDEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQU5HTEVXZWJLaXRCcmlkZ2UuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTA3MDdFNTEyMTlDMDQzMDBEOTBFNTEgLyog
QU5HTEVXZWJLaXRCcmlkZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQU5H
TEVXZWJLaXRCcmlkZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDkwQzQ3Q0Qx
M0U4MkQxODAwRjdBQjgyIC8qIERpc3BhdGNoVGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEaXNwYXRjaFRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDkyODYzOTgxMjUzQjhGQzAwRjc5MkQ2IC8qIFJlc291cmNlTG9hZEluZm8uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2FkSW5mby5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0OTI5MUU0QTEzNDE3MkM4MDBFNzUzREUgLyogSW1hZ2VSZW5kZXJp
bmdNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlUmVuZGVyaW5n
TW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTNFNUUwODEyRDY0MjA1MDAw
MjAwODEgLyogUGxhdGZvcm1DQUxheWVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFBsYXRmb3JtQ0FMYXllckNsaWVudC5oOyBwYXRoID0gY2EvUGxhdGZvcm1DQUxh
eWVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NzMwLDggKzc2ODgs
NiBAQAogCQk0OTU4NzgyMDEyQTU3RERGMDA3MjM4QUMgLyogUGxhdGZvcm1DQUxheWVyTWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gUGxhdGZvcm1DQUxheWVy
TWFjLm1tOyBwYXRoID0gY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDk2OUIwRjAxM0QwQjMzRjAwREYzNTIxIC8qIEhpdFRlc3RpbmdU
cmFuc2Zvcm1TdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBI
aXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0OTY5QjBGMTEzRDBCMzNGMDBERjM1MjEgLyogSGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhpdFRlc3RpbmdUcmFuc2Zvcm1TdGF0
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OTc4NUVERTEzRjE5MkYwMDBBNzk1
QUQgLyogTWVkaWFTdHJlYW1SZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNDk3ODVFREYxM0YxOTJGMDAwQTc5NUFEIC8qIE1lZGlhU3RyZWFtUmVnaXN0cnku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJlYW1SZWdpc3RyeS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTgzOTEzRDBGMUU3Njc1MDBDMjM3ODIg
LyogSlNXZWJLaXRDU1NNYXRyaXguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNXZWJLaXRDU1NNYXRyaXguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0OTgzOTEzRTBGMUU3Njc1MDBDMjM3ODIgLyogSlNXZWJLaXRDU1NNYXRyaXguaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJLaXRDU1NNYXRyaXguaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk4MzkxNEQwRjFFNzZCNDAwQzIzNzgyIC8qIERPTVdlYktp
dENTU01hdHJpeC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01XZWJLaXRD
U1NNYXRyaXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc3NjAsMjEgKzc3MTYs
NiBAQAogCQk0OTlCM0VENDEyOENEMzE0MDBFNzI2QzIgLyogR3JhcGhpY3NMYXllckNBLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEdyYXBoaWNzTGF5ZXJDQS5jcHA7
IHBhdGggPSBjYS9HcmFwaGljc0xheWVyQ0EuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0OTlCM0VENTEyOENEMzE0MDBFNzI2QzIgLyogR3JhcGhpY3NMYXllckNBLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEdyYXBoaWNzTGF5ZXJDQS5oOyBwYXRoID0gY2Ev
R3JhcGhpY3NMYXllckNBLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5OUIzRURD
MTI4REI1MDEwMEU3MjZDMiAvKiBQbGF0Zm9ybUNBQW5pbWF0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFBsYXRmb3JtQ0FBbmltYXRpb24uaDsgcGF0aCA9IGNhL1BsYXRm
b3JtQ0FBbmltYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlBMkNGRDYx
M0U5Nzg3RTAwNTc5RjEzIC8qIE1lZGlhU3RyZWFtRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gTWVkaWFTdHJlYW1FdmVudC5jcHA7IHBhdGggPSBwMnAvTWVk
aWFTdHJlYW1FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5QTJDRkQ3
MTNFOTc4N0UwMDU3OUYxMyAvKiBNZWRpYVN0cmVhbUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IE1lZGlhU3RyZWFtRXZlbnQuaDsgcGF0aCA9IHAycC9NZWRpYVN0cmVh
bUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5QTJDRkQ4MTNFOTc4N0Uw
MDU3OUYxMyAvKiBNZWRpYVN0cmVhbUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBN
ZWRpYVN0cmVhbUV2ZW50LmlkbDsgcGF0aCA9IHAycC9NZWRpYVN0cmVhbUV2ZW50LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlBMkQzOTIxM0U5ODFBMzAwNTc5RjEzIC8qIEpT
TWVkaWFTdHJlYW1FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU01lZGlhU3RyZWFtRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0
OUEyRDM5MzEzRTk4MUEzMDA1NzlGMTMgLyogSlNNZWRpYVN0cmVhbUV2ZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFTdHJlYW1FdmVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk0OUE1QTRGODEzRTJGMDFFMDBDRkRBRTAgLyogUGVlckNvbm5l
Y3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUGVlckNvbm5l
Y3Rpb24uY3BwOyBwYXRoID0gcDJwL1BlZXJDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNDlBNUE0RjkxM0UyRjAxRTAwQ0ZEQUUwIC8qIFBlZXJDb25uZWN0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFBlZXJDb25uZWN0aW9uLmg7IHBh
dGggPSBwMnAvUGVlckNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NDlBNUE0RkExM0UyRjAxRTAwQ0ZEQUUwIC8qIFBlZXJDb25uZWN0aW9uLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IG5hbWUgPSBQZWVyQ29ubmVjdGlvbi5pZGw7IHBhdGggPSBwMnAvUGVlckNvbm5lY3Rp
b24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OUE1QTRGQjEzRTJGMDFFMDBD
RkRBRTAgLyogU2lnbmFsaW5nQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gU2lnbmFsaW5nQ2FsbGJhY2suaDsgcGF0aCA9IHAycC9TaWduYWxpbmdDYWxsYmFjay5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OUE1QTRGQzEzRTJGMDFFMDBDRkRBRTAg
LyogU2lnbmFsaW5nQ2FsbGJhY2suaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNpZ25hbGlu
Z0NhbGxiYWNrLmlkbDsgcGF0aCA9IHAycC9TaWduYWxpbmdDYWxsYmFjay5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5QkUzMEQxMTNEOTc0N0IwMDM4MDhBOSAvKiBKU1BlZXJD
b25uZWN0aW9uQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTUGVlckNvbm5lY3Rpb25DdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk0OUJFMzBFRjEzRDk3NjQ2MDAzODA4QTkgLyogSlNQZWVyQ29ubmVjdGlvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1BlZXJDb25uZWN0aW9uLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlCRTMwRjAxM0Q5NzY0NjAwMzgwOEE5IC8qIEpT
UGVlckNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNQZWVy
Q29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OUJFMzBGMTEzRDk3
NjQ2MDAzODA4QTkgLyogSlNTaWduYWxpbmdDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1NpZ25hbGluZ0NhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJNDlCRTMwRjIxM0Q5NzY0NjAwMzgwOEE5IC8qIEpTU2lnbmFsaW5n
Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTaWduYWxpbmdD
YWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUM3Qjk4MDEwNDJEMkQz
MDAwOUQ0NDcgLyogSlNXZWJHTEJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1dlYkdMQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDlDN0I5ODExMDQyRDJEMzAwMDlENDQ3IC8qIEpTV2ViR0xCdWZmZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHTEJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0OUM3Qjk4MjEwNDJEMkQzMDAwOUQ0NDcgLyogSlNJbnQ4QXJyYXkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJbnQ4QXJyYXkuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzgyMSwxNiArNzc2Miw2IEBACiAJCTQ5QzdC
OUZCMTA0MkQzNjUwMDA5RDQ0NyAvKiBHcmFwaGljc0NvbnRleHQzRC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHQzRC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0OUM3QkE3ODEwNDJFRkFFMDAwOUQ0NDcgLyogT3BlbkdMLmZyYW1ld29y
ayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBw
ZXIuZnJhbWV3b3JrOyBuYW1lID0gT3BlbkdMLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGli
cmFyeS9GcmFtZXdvcmtzL09wZW5HTC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRl
PiI7IH07CiAJCTQ5QzdCQThDMTA0MkY1QjEwMDA5RDQ0NyAvKiBKU0RvY3VtZW50Q3VzdG9tLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRG9jdW1lbnRDdXN0b20u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OUM5RjMxQzEzRDU3NEY4MDA1MjYw
MEEgLyogTWVkaWFTdHJlYW1UcmFja0xpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1l
ZGlhU3RyZWFtVHJhY2tMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlD
OUYzMUQxM0Q1NzRGODAwNTI2MDBBIC8qIE1lZGlhU3RyZWFtVHJhY2tMaXN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU3RyZWFtVHJhY2tMaXN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5QzlGMzFFMTNENTc0RjgwMDUyNjAwQSAvKiBNZWRpYVN0
cmVhbVRyYWNrTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBN
ZWRpYVN0cmVhbVRyYWNrTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5
QzlGMzFGMTNENTc0RjgwMDUyNjAwQSAvKiBNZWRpYVN0cmVhbVRyYWNrLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBNZWRpYVN0cmVhbVRyYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNDlDOUYzMjAxM0Q1NzRGOTAwNTI2MDBBIC8qIE1lZGlhU3RyZWFtVHJhY2suaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJlYW1UcmFjay5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OUM5RjMyMTEzRDU3NEY5MDA1MjYwMEEgLyogTWVk
aWFTdHJlYW1UcmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBN
ZWRpYVN0cmVhbVRyYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlDOUY0
OEExM0Q1N0QzMjAwNTI2MDBBIC8qIEpTTWVkaWFTdHJlYW1UcmFjay5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lZGlhU3RyZWFtVHJhY2suY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk0OUM5RjQ4QjEzRDU3RDMyMDA1MjYwMEEgLyogSlNNZWRp
YVN0cmVhbVRyYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFT
dHJlYW1UcmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OUM5RjQ4QzEzRDU3
RDMyMDA1MjYwMEEgLyogSlNNZWRpYVN0cmVhbVRyYWNrTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lZGlhU3RyZWFtVHJhY2tMaXN0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlDOUY0OEQxM0Q1N0QzMjAwNTI2MDBBIC8qIEpTTWVk
aWFTdHJlYW1UcmFja0xpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNN
ZWRpYVN0cmVhbVRyYWNrTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUQ1
REMyNzBGNDIzQTczMDA4RjIwRkQgLyogTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTWF0cml4M0RUcmFuc2Zvcm1PcGVy
YXRpb24uY3BwOyBwYXRoID0gdHJhbnNmb3Jtcy9NYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5RDVEQzI4MEY0MjNBNzMwMDhGMjBG
RCAvKiBNYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBNYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5oOyBwYXRoID0gdHJhbnNmb3Jt
cy9NYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0OUQ1REMyOTBGNDIzQTczMDA4RjIwRkQgLyogUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVy
YXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUGVyc3BlY3Rp
dmVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwOyBwYXRoID0gdHJhbnNmb3Jtcy9QZXJzcGVjdGl2ZVRy
YW5zZm9ybU9wZXJhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDY1
NSwxMSArMTA1ODYsNiBAQAogCQlCMTBCNjk3RDE0MEMxNzQwMDBCQzFDMjYgLyogV2ViVlRUVG9r
ZW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVlRUVG9rZW4uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjEwQjY5N0UxNDBDMTc0MDAwQkMxQzI2IC8qIFdl
YlZUVFRva2VuaXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJWVFRUb2tlbml6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMTBCNjk3
RjE0MEMxNzQwMDBCQzFDMjYgLyogV2ViVlRUVG9rZW5pemVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYlZUVFRva2VuaXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlCMTQzNTNEMTEzOEVBOEVEMDBENTMyNzYgLyogTWVkaWFTdHJlYW1MaXN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU3RyZWFtTGlzdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIxNDM1M0QyMTM4RUE4RUQwMEQ1MzI3NiAv
KiBNZWRpYVN0cmVhbUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVk
aWFTdHJlYW1MaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIxNDM1M0QzMTM4
RUE4RUQwMEQ1MzI3NiAvKiBNZWRpYVN0cmVhbUxpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IE1lZGlhU3RyZWFtTGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIx
NDM1M0Y2MTM4RUE5NUIwMEQ1MzI3NiAvKiBKU01lZGlhU3RyZWFtTGlzdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lZGlhU3RyZWFtTGlzdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIxNDM1M0Y3MTM4RUE5NUIwMEQ1MzI3NiAvKiBKU01l
ZGlhU3RyZWFtTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlh
U3RyZWFtTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMTgyNzQ5MjEzNENB
NEMxMDBCOThDMkQgLyogQ2FsbGJhY2tGdW5jdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBDYWxsYmFja0Z1bmN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQjFBRDRFNEIxM0ExMkEwQjAwODQ2QjI3IC8qIEN1ZUluZGV4LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN1ZUluZGV4LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjFBRDRFNEMxM0ExMkEwQjAwODQ2QjI3IC8qIEN1ZUluZGV4
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1ZUluZGV4Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDY3OSwzNCArMTA2MDUsMTggQEAKIAkJQjFBRDRFNzkx
M0ExMkE3MjAwODQ2QjI3IC8qIEN1ZVBhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDdWVQYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjFBRDRF
N0ExM0ExMkE3MjAwODQ2QjI3IC8qIEN1ZVBhcnNlclByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ3VlUGFyc2VyUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCMUQ1RUNCNDEzNEI1OERBMDA4N0M3OEYgLyogQ2FsbGJhY2tGdW5jdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWxsYmFja0Z1bmN0aW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIxRTU0NTcxMTM0NjI5MUYwMDkyQTU0NSAvKiBM
b2NhbE1lZGlhU3RyZWFtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IExvY2FsTWVkaWFTdHJlYW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCMUU1
NDU3MjEzNDYyOTFGMDA5MkE1NDUgLyogTG9jYWxNZWRpYVN0cmVhbS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbE1lZGlhU3RyZWFtLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUIxRTU0NTczMTM0NjI5MUYwMDkyQTU0NSAvKiBMb2NhbE1lZGlhU3RyZWFt
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMb2NhbE1lZGlhU3RyZWFtLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjFFNTQ1NzQxMzQ2MjkxRjAwOTJBNTQ1IC8qIE1lZGlh
U3RyZWFtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU3Ry
ZWFtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjFFNTQ1NzUxMzQ2MjkxRjAw
OTJBNTQ1IC8qIE1lZGlhU3RyZWFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1lZGlhU3RyZWFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIxRTU0NTc2MTM0
NjI5MUYwMDkyQTU0NSAvKiBNZWRpYVN0cmVhbS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
TWVkaWFTdHJlYW0uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCMUU1NDU4NzEz
NDYyOUMxMDA5MkE1NDUgLyogQ2FsbGJhY2tUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENhbGxiYWNrVGFzay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlC
MUU1NDU4ODEzNDYyOUMxMDA5MkE1NDUgLyogTWVkaWFTdHJlYW1DbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJlYW1DbGllbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQjFFNTQ1ODkxMzQ2MjlDMTAwOTJBNTQ1IC8qIE1lZGlhU3RyZWFt
RnJhbWVDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQjFFNTQ1OEExMzQ2MjlDMTAwOTJBNTQ1IC8qIE1lZGlhU3RyZWFtRnJhbWVDb250cm9s
bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU3RyZWFtRnJhbWVD
b250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIxRTU0NThCMTM0NjI5
QzEwMDkyQTU0NSAvKiBNZWRpYVN0cmVhbUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFTdHJlYW1Db250cm9sbGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjFFNTQ1OEMxMzQ2MjlDMTAwOTJBNTQ1IC8qIE1lZGlhU3Ry
ZWFtQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVN0
cmVhbUNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjFFNTQ1OEQx
MzQ2MjlDMTAwOTJBNTQ1IC8qIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdmlnYXRvclVzZXJNZWRpYUVycm9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIxRTU0NThFMTM0NjI5QzEwMDkyQTU0NSAvKiBOYXZpZ2F0
b3JVc2VyTWVkaWFFcnJvci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTmF2aWdhdG9yVXNl
ck1lZGlhRXJyb3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMUU1NDU4RjEz
NDYyOUMxMDA5MkE1NDUgLyogTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxi
YWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIxRTU0NTkwMTM0NjI5QzEwMDky
QTU0NSAvKiBOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjFFNTQ1OTExMzQ2MjlDMTAwOTJBNTQ1IC8qIE5hdmlnYXRv
clVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQjFFNTQ1OTIxMzQ2MjlDMTAwOTJBNTQ1IC8qIE5hdmlnYXRvclVzZXJN
ZWRpYVN1Y2Nlc3NDYWxsYmFjay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTmF2aWdhdG9y
VXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQjFFNTQ1Q0YxMzQ2MkIwQjAwOTJBNTQ1IC8qIEpTTG9jYWxNZWRpYVN0cmVhbS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0xvY2FsTWVkaWFTdHJlYW0uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCMUU1NDVEMDEzNDYyQjBCMDA5MkE1NDUg
LyogSlNMb2NhbE1lZGlhU3RyZWFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTTG9jYWxNZWRpYVN0cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMUU1
NDVEMTEzNDYyQjBCMDA5MkE1NDUgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU05hdmlnYXRvclVzZXJNZWRpYUVy
cm9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjFFNTQ1RDIxMzQ2MkIwQjAw
OTJBNTQ1IC8qIEpTTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCMUU1NDVEMzEzNDYyQjBCMDA5MkE1NDUgLyogSlNOYXZpZ2F0b3JV
c2VyTWVkaWFFcnJvckNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUIxRTU0NUQ0MTM0NjJCMEIwMDkyQTU0NSAvKiBKU05hdmlnYXRv
clVzZXJNZWRpYUVycm9yQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUIxRTU0NUQ1MTM0NjJCMEIwMDkyQTU0NSAvKiBKU05hdmlnYXRvclVzZXJN
ZWRpYVN1Y2Nlc3NDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU05hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUIxRTU0NUQ2MTM0NjJCMEIwMDkyQTU0NSAvKiBKU05hdmlnYXRv
clVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU05hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlCMUU1NDVENzEzNDYyQjBCMDA5MkE1NDUgLyogSlNNZWRpYVN0cmVh
bS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lZGlhU3RyZWFt
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjFFNTQ1RDgxMzQ2MkIwQjAwOTJB
NTQ1IC8qIEpTTWVkaWFTdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNNZWRpYVN0cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjAxMTEwNTBB
Qjc3NDA1MDBEQjBFNjggLyogSlNTVkdBRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdBRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUIyMDExMTA2MEFCNzc0MDUwMERCMEU2OCAvKiBKU1NWR0FFbGVtZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NWR0FFbGVtZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyMjI3N0NCMEQwMEJGMUYwMDcxQjc4MiAvKiBDb2xvckRp
c3RhbmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb2xvckRp
c3RhbmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MTI4LDIxICsxNDAz
OCw2IEBACiAJCQluYW1lID0gY2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9Owot
CQk0OUE1QTRGNjEzRTJFRkU2MDBDRkRBRTAgLyogcDJwICovID0gewotCQkJaXNhID0gUEJYR3Jv
dXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQk0OUEyQ0ZENjEzRTk3ODdFMDA1NzlGMTMgLyogTWVk
aWFTdHJlYW1FdmVudC5jcHAgKi8sCi0JCQkJNDlBMkNGRDcxM0U5Nzg3RTAwNTc5RjEzIC8qIE1l
ZGlhU3RyZWFtRXZlbnQuaCAqLywKLQkJCQk0OUEyQ0ZEODEzRTk3ODdFMDA1NzlGMTMgLyogTWVk
aWFTdHJlYW1FdmVudC5pZGwgKi8sCi0JCQkJNDlBNUE0RjgxM0UyRjAxRTAwQ0ZEQUUwIC8qIFBl
ZXJDb25uZWN0aW9uLmNwcCAqLywKLQkJCQk0OUE1QTRGOTEzRTJGMDFFMDBDRkRBRTAgLyogUGVl
ckNvbm5lY3Rpb24uaCAqLywKLQkJCQk0OUE1QTRGQTEzRTJGMDFFMDBDRkRBRTAgLyogUGVlckNv
bm5lY3Rpb24uaWRsICovLAotCQkJCTQ5QTVBNEZCMTNFMkYwMUUwMENGREFFMCAvKiBTaWduYWxp
bmdDYWxsYmFjay5oICovLAotCQkJCTQ5QTVBNEZDMTNFMkYwMUUwMENGREFFMCAvKiBTaWduYWxp
bmdDYWxsYmFjay5pZGwgKi8sCi0JCQkpOwotCQkJbmFtZSA9IHAycDsKLQkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7Ci0JCX07CiAJCTQ5RTkxMUIyMEVGODZEMjcwMDlEMENBRiAvKiB0cmFuc2Zv
cm1zICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTE0NjE0
LDcgKzE0NTA5LDYgQEAKIAkJCQlCQzEyNEVFNDBDMjY0MUNEMDA5RTIzNDkgLyogQmFySW5mby5j
cHAgKi8sCiAJCQkJQkMxMjRFRTUwQzI2NDFDRDAwOUUyMzQ5IC8qIEJhckluZm8uaCAqLywKIAkJ
CQlCQzEyNEVFNjBDMjY0MUNEMDA5RTIzNDkgLyogQmFySW5mby5pZGwgKi8sCi0JCQkJQjFFNTQ1
ODcxMzQ2MjlDMTAwOTJBNTQ1IC8qIENhbGxiYWNrVGFzay5oICovLAogCQkJCTE0RDgyMzhBMEFG
OTJERjYwMDA0RjA1NyAvKiBDaHJvbWUuY3BwICovLAogCQkJCTE0RDgyMzUwMEFGOTJBNzkwMDA0
RjA1NyAvKiBDaHJvbWUuaCAqLywKIAkJCQkxNEQ4MjQwNjBBRjkzQUVCMDAwNEYwNTcgLyogQ2hy
b21lQ2xpZW50LmggKi8sCkBAIC0xNDY4MiwxMSArMTQ1NzYsNiBAQAogCQkJCUJDRTFDNDE5MEQ5
ODI5ODAwMDNCMDJGMiAvKiBMb2NhdGlvbi5oICovLAogCQkJCUJDRTFDNDIyMEQ5ODI5RjIwMDNC
MDJGMiAvKiBMb2NhdGlvbi5pZGwgKi8sCiAJCQkJOTMxQkNDNjAxMTI0REZDQjAwQkU3MEREIC8q
IE1lZGlhQ2FuU3RhcnRMaXN0ZW5lci5oICovLAotCQkJCUIxRTU0NTg4MTM0NjI5QzEwMDkyQTU0
NSAvKiBNZWRpYVN0cmVhbUNsaWVudC5oICovLAotCQkJCUIxRTU0NThCMTM0NjI5QzEwMDkyQTU0
NSAvKiBNZWRpYVN0cmVhbUNvbnRyb2xsZXIuY3BwICovLAotCQkJCUIxRTU0NThDMTM0NjI5QzEw
MDkyQTU0NSAvKiBNZWRpYVN0cmVhbUNvbnRyb2xsZXIuaCAqLywKLQkJCQlCMUU1NDU4OTEzNDYy
OUMxMDA5MkE1NDUgLyogTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIuY3BwICovLAotCQkJCUIx
RTU0NThBMTM0NjI5QzEwMDkyQTU0NSAvKiBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlci5oICov
LAogCQkJCTlGRkUzRTc4MTFCNTlDNUQwMDM3ODc0RSAvKiBNZW1vcnlJbmZvLmNwcCAqLywKIAkJ
CQk5RkZFM0U3OTExQjU5QzVEMDAzNzg3NEUgLyogTWVtb3J5SW5mby5oICovLAogCQkJCTlGRkUz
RTdDMTFCNTlDNkUwMDM3ODc0RSAvKiBNZW1vcnlJbmZvLmlkbCAqLywKQEAgLTE3NDAxLDE4ICsx
NzI5MCw2IEBACiAJCQkJRkU4MERBNjAwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb24u
aCAqLywKIAkJCQlGRTgwREE2MTBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5jcHAg
Ki8sCiAJCQkJRkU4MERBNjIwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvcG9zaXRpb24uaCAqLywK
LQkJCQlCMUU1NDVDRjEzNDYyQjBCMDA5MkE1NDUgLyogSlNMb2NhbE1lZGlhU3RyZWFtLmNwcCAq
LywKLQkJCQlCMUU1NDVEMDEzNDYyQjBCMDA5MkE1NDUgLyogSlNMb2NhbE1lZGlhU3RyZWFtLmgg
Ki8sCi0JCQkJQjFFNTQ1RDcxMzQ2MkIwQjAwOTJBNTQ1IC8qIEpTTWVkaWFTdHJlYW0uY3BwICov
LAotCQkJCUIxRTU0NUQ4MTM0NjJCMEIwMDkyQTU0NSAvKiBKU01lZGlhU3RyZWFtLmggKi8sCi0J
CQkJNDlBMkQzOTIxM0U5ODFBMzAwNTc5RjEzIC8qIEpTTWVkaWFTdHJlYW1FdmVudC5jcHAgKi8s
Ci0JCQkJNDlBMkQzOTMxM0U5ODFBMzAwNTc5RjEzIC8qIEpTTWVkaWFTdHJlYW1FdmVudC5oICov
LAotCQkJCUIxNDM1M0Y2MTM4RUE5NUIwMEQ1MzI3NiAvKiBKU01lZGlhU3RyZWFtTGlzdC5jcHAg
Ki8sCi0JCQkJQjE0MzUzRjcxMzhFQTk1QjAwRDUzMjc2IC8qIEpTTWVkaWFTdHJlYW1MaXN0Lmgg
Ki8sCi0JCQkJNDlDOUY0OEExM0Q1N0QzMjAwNTI2MDBBIC8qIEpTTWVkaWFTdHJlYW1UcmFjay5j
cHAgKi8sCi0JCQkJNDlDOUY0OEIxM0Q1N0QzMjAwNTI2MDBBIC8qIEpTTWVkaWFTdHJlYW1UcmFj
ay5oICovLAotCQkJCTQ5QzlGNDhDMTNENTdEMzIwMDUyNjAwQSAvKiBKU01lZGlhU3RyZWFtVHJh
Y2tMaXN0LmNwcCAqLywKLQkJCQk0OUM5RjQ4RDEzRDU3RDMyMDA1MjYwMEEgLyogSlNNZWRpYVN0
cmVhbVRyYWNrTGlzdC5oICovLAogCQkJCUJDRDlDMkJDMEMxN0I2OUUwMDVDOTBBMiAvKiBKU05h
bWVkTm9kZU1hcC5jcHAgKi8sCiAJCQkJQkNEOUMyQkQwQzE3QjY5RTAwNUM5MEEyIC8qIEpTTmFt
ZWROb2RlTWFwLmggKi8sCiAJCQkJMTREQzBEMzUwOUZFRDA3MzAwN0IwMjM1IC8qIEpTTm9kZS5j
cHAgKi8sCkBAIC0xNzQyMSw4ICsxNzI5OCw2IEBACiAJCQkJQkNEOUMyQkYwQzE3QjY5RTAwNUM5
MEEyIC8qIEpTTm9kZUxpc3QuaCAqLywKIAkJCQk2NURGMzFFOTA5RDFDQzYwMDAwQkUzMjUgLyog
SlNOb3RhdGlvbi5jcHAgKi8sCiAJCQkJNjVERjMxRUEwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTTm90
YXRpb24uaCAqLywKLQkJCQk0OUJFMzBFRjEzRDk3NjQ2MDAzODA4QTkgLyogSlNQZWVyQ29ubmVj
dGlvbi5jcHAgKi8sCi0JCQkJNDlCRTMwRjAxM0Q5NzY0NjAwMzgwOEE5IC8qIEpTUGVlckNvbm5l
Y3Rpb24uaCAqLywKIAkJCQk1OTgzNjVFMzEzNTVGNjA0MDAxQjE4NUQgLyogSlNQb3NpdGlvbkNh
bGxiYWNrLmNwcCAqLywKIAkJCQk1OTgzNjVEQzEzNTVGNTNDMDAxQjE4NUQgLyogSlNQb3NpdGlv
bkNhbGxiYWNrLmggKi8sCiAJCQkJRkU4MERBNkQwRTlDNDcyRjAwMEQ2Rjc1IC8qIEpTUG9zaXRp
b25FcnJvci5jcHAgKi8sCkBAIC0xNzQzNSw4ICsxNzMxMCw2IEBACiAJCQkJRTRCNDIzODYwQ0JG
QjczQzAwQUYyRUNFIC8qIEpTUHJvZ3Jlc3NFdmVudC5oICovLAogCQkJCTQ5OThBRUNCMTNGOUQ2
QzkwMDkwQjFBQSAvKiBKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmNwcCAqLywKIAkJ
CQk0OTk4QUVDQzEzRjlENkM5MDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxs
YmFjay5oICovLAotCQkJCTQ5QkUzMEYxMTNEOTc2NDYwMDM4MDhBOSAvKiBKU1NpZ25hbGluZ0Nh
bGxiYWNrLmNwcCAqLywKLQkJCQk0OUJFMzBGMjEzRDk3NjQ2MDAzODA4QTkgLyogSlNTaWduYWxp
bmdDYWxsYmFjay5oICovLAogCQkJCTc1NDE1RDRGMTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVj
aElucHV0RXZlbnQuY3BwICovLAogCQkJCTc1NDE1RDUwMTI5QUIyRDIwMDNBRDY2OSAvKiBKU1Nw
ZWVjaElucHV0RXZlbnQuaCAqLywKIAkJCQk3NTQxNUQ1MTEyOUFCMkQyMDAzQUQ2NjkgLyogSlNT
cGVlY2hJbnB1dFJlc3VsdC5jcHAgKi8sCkBAIC0xODc5OCw3ICsxODY3MSw2IEBACiAJCQkJQkNC
NzczNjAwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckN1c3RvbS5jcHAgKi8sCiAJCQkJ
MUE3NTBERDMwQTkwRTcyOTAwMEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcCAqLywK
IAkJCQlCQ0Q5QzI2MTBDMTdBQTY3MDA1QzkwQTIgLyogSlNOb2RlTGlzdEN1c3RvbS5jcHAgKi8s
Ci0JCQkJNDlCRTMwRDExM0Q5NzQ3QjAwMzgwOEE5IC8qIEpTUGVlckNvbm5lY3Rpb25DdXN0b20u
Y3BwICovLAogCQkJCUUxQUQxMkQ1MTI5NUQwQkQwMEFDQTk4OSAvKiBKU1Byb2Nlc3NpbmdJbnN0
cnVjdGlvbkN1c3RvbS5jcHAgKi8sCiAJCQkJNDk5OEFFRDMxM0ZDNDE3RjAwOTBCMUFBIC8qIEpT
UmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2tDdXN0b20uY3BwICovLAogCQkJCTlGQTM3RUU2
MTE3MkZDRjAwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGVOb2RlQ3VzdG9tLmNwcCAqLywKQEAg
LTE5MTgwLDggKzE5MDUyLDYgQEAKIAkJCQk5MzUyMDdCRDA5QkQ0MTBBMDBGMjAzOEQgLyogTG9j
YWxpemVkU3RyaW5ncy5oICovLAogCQkJCUE4MjM5REZFMDlCM0NGOEEwMEI2MDY0MSAvKiBMb2dn
aW5nLmNwcCAqLywKIAkJCQlBODIzOURGRjA5QjNDRjhBMDBCNjA2NDEgLyogTG9nZ2luZy5oICov
LAotCQkJCTQ5Nzg1RURFMTNGMTkyRjAwMEE3OTVBRCAvKiBNZWRpYVN0cmVhbVJlZ2lzdHJ5LmNw
cCAqLywKLQkJCQk0OTc4NUVERjEzRjE5MkYwMDBBNzk1QUQgLyogTWVkaWFTdHJlYW1SZWdpc3Ry
eS5oICovLAogCQkJCTY1N0VEQTA2MTM4NUNCOTcwMDRFMDY0NSAvKiBNZW1vcnlQcmVzc3VyZUhh
bmRsZXIuY3BwICovLAogCQkJCTY1N0VEQTA3MTM4NUNCOTcwMDRFMDY0NSAvKiBNZW1vcnlQcmVz
c3VyZUhhbmRsZXIuaCAqLywKIAkJCQlCQzc3MkM0QzBDNEVCMzA0MDA4MzI4NUYgLyogTUlNRVR5
cGVSZWdpc3RyeS5jcHAgKi8sCkBAIC0xOTkwMSw3ICsxOTc3MSw2IEBACiAJCQkJNTlBODVFQTEx
MTlENjhEOTAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwICovLAogCQkJCTU5
QTg1RUEzMTE5RDY4RUMwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmggKi8sCiAJ
CQkJNTlBODVFQUExMTlEN0I2RTAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuaWRs
ICovLAotCQkJCTQ5MEM0N0NEMTNFODJEMTgwMEY3QUI4MiAvKiBEaXNwYXRjaFRhc2suaCAqLywK
IAkJCQlBODE4NUYzNDA5NzY1NzY1MDA1ODI2RDkgLyogRG9jdW1lbnQuY3BwICovLAogCQkJCUE4
MTg1RjM4MDk3NjU3NjUwMDU4MjZEOSAvKiBEb2N1bWVudC5oICovLAogCQkJCTY1NDhFMjQ4MDlF
MUUwNEQwMEFGODAyMCAvKiBEb2N1bWVudC5pZGwgKi8sCkBAIC0xOTk4MywyMiArMTk4NTIsNyBA
QAogCQkJCTg1MDMxQjJEMEE0NEVGQzcwMEY5OTJFMCAvKiBLZXlib2FyZEV2ZW50LmNwcCAqLywK
IAkJCQk4NTAzMUIyRTBBNDRFRkM3MDBGOTkyRTAgLyogS2V5Ym9hcmRFdmVudC5oICovLAogCQkJ
CTE0Q0Y3QzIwMDlGNzExMDYwMEVCMzY2NSAvKiBLZXlib2FyZEV2ZW50LmlkbCAqLywKLQkJCQlC
MUU1NDU3MTEzNDYyOTFGMDA5MkE1NDUgLyogTG9jYWxNZWRpYVN0cmVhbS5jcHAgKi8sCi0JCQkJ
QjFFNTQ1NzIxMzQ2MjkxRjAwOTJBNTQ1IC8qIExvY2FsTWVkaWFTdHJlYW0uaCAqLywKLQkJCQlC
MUU1NDU3MzEzNDYyOTFGMDA5MkE1NDUgLyogTG9jYWxNZWRpYVN0cmVhbS5pZGwgKi8sCiAJCQkJ
QThDNEE4NEIwOUQ1NjQ5RDAwMDNBQzhEIC8qIE1hcHBlZEF0dHJpYnV0ZUVudHJ5LmggKi8sCi0J
CQkJQjFFNTQ1NzQxMzQ2MjkxRjAwOTJBNTQ1IC8qIE1lZGlhU3RyZWFtLmNwcCAqLywKLQkJCQlC
MUU1NDU3NTEzNDYyOTFGMDA5MkE1NDUgLyogTWVkaWFTdHJlYW0uaCAqLywKLQkJCQlCMUU1NDU3
NjEzNDYyOTFGMDA5MkE1NDUgLyogTWVkaWFTdHJlYW0uaWRsICovLAotCQkJCUIxNDM1M0QxMTM4
RUE4RUQwMEQ1MzI3NiAvKiBNZWRpYVN0cmVhbUxpc3QuY3BwICovLAotCQkJCUIxNDM1M0QyMTM4
RUE4RUQwMEQ1MzI3NiAvKiBNZWRpYVN0cmVhbUxpc3QuaCAqLywKLQkJCQlCMTQzNTNEMzEzOEVB
OEVEMDBENTMyNzYgLyogTWVkaWFTdHJlYW1MaXN0LmlkbCAqLywKLQkJCQk0OUM5RjMyMTEzRDU3
NEY5MDA1MjYwMEEgLyogTWVkaWFTdHJlYW1UcmFjay5jcHAgKi8sCi0JCQkJNDlDOUYzMjAxM0Q1
NzRGOTAwNTI2MDBBIC8qIE1lZGlhU3RyZWFtVHJhY2suaCAqLywKLQkJCQk0OUM5RjMxRjEzRDU3
NEY4MDA1MjYwMEEgLyogTWVkaWFTdHJlYW1UcmFjay5pZGwgKi8sCi0JCQkJNDlDOUYzMUUxM0Q1
NzRGODAwNTI2MDBBIC8qIE1lZGlhU3RyZWFtVHJhY2tMaXN0LmNwcCAqLywKLQkJCQk0OUM5RjMx
RDEzRDU3NEY4MDA1MjYwMEEgLyogTWVkaWFTdHJlYW1UcmFja0xpc3QuaCAqLywKLQkJCQk0OUM5
RjMxQzEzRDU3NEY4MDA1MjYwMEEgLyogTWVkaWFTdHJlYW1UcmFja0xpc3QuaWRsICovLAogCQkJ
CUUxQURFQ0NEMEU3NkFEOEIwMDRBMUE1RSAvKiBNZXNzYWdlQ2hhbm5lbC5jcHAgKi8sCiAJCQkJ
RTFBREVDQ0MwRTc2QUQ4QjAwNEExQTVFIC8qIE1lc3NhZ2VDaGFubmVsLmggKi8sCiAJCQkJRTFB
REVDRDAwRTc2QURBQjAwNEExQTVFIC8qIE1lc3NhZ2VDaGFubmVsLmlkbCAqLywKQEAgLTIwNjIx
LDcgKzIwNDc1LDYgQEAKIAkJCQlCQ0IxNkMyODA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkWFNM
U3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5NTAwODI0NUU1OTAwMUU5QUJD
IC8qIENhY2hlUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMUQ1RUNCNTEzNEI1OERBMDA4
N0M3OEYgLyogQ2FsbGJhY2tGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQjFFNTQ1OTMx
MzQ2MjlDMTAwOTJBNTQ1IC8qIENhbGxiYWNrVGFzay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkU0
RTkxQUQxMEY3RkIzMTAwQTI3NzlDIC8qIENhbnZhc0NvbnRleHRBdHRyaWJ1dGVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0OTQ4NEZDMjEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQ5NDg0RkM1MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNQ
YXR0ZXJuLmggaW4gSGVhZGVycyAqLywKQEAgLTIwODE2LDcgKzIwNjY5LDYgQEAKIAkJCQk4OTg3
ODU1NTEyMkNBMDY0MDAzQUFCREEgLyogRGlyZWN0b3J5UmVhZGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4OTBBRTBFMTEyNTZBMDc5MDBGNTk2OEMgLyogRGlyZWN0b3J5UmVhZGVyQmFzZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODkzQzQ4MDMxMjQ4QkQzQTAwMkIzRDg2IC8qIERpcmVjdG9yeVJl
YWRlclN5bmMuaCBpbiBIZWFkZXJzICovLAotCQkJCTQ5MEM0N0NFMTNFODJEMTgwMEY3QUI4MiAv
KiBEaXNwYXRjaFRhc2suaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDkxMTJCMDI2RjcwMEMx
QTM1OSAvKiBEaXN0YW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ3MzBENzcxMjQ4RjBCMzAw
RDNBOUM5IC8qIERpc3RhbnRMaWdodFNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGMzRG
RTYwRTgyRjgxNDAwRjYyN0NEIC8qIEROUy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjExNywxNyAr
MjE5NjksMTEgQEAKIAkJCQkxQzVGQUVEMjBEQ0ZEOTAxMDBENThGNzggLyogSlNKYXZhU2NyaXB0
Q2FsbEZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODY2MjlEMzA5REEyQjQ4MDA5NjMzQTUg
LyogSlNLZXlib2FyZEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzVGNDU0MzBGN0MzQjVG
MDBEN0MxRkIgLyogSlNMYXp5RXZlbnRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQjFF
NTQ1REUxMzQ2MkIwQjAwOTJBNTQ1IC8qIEpTTG9jYWxNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNFMUM0M0MwRDk4MzBEMzAwM0IwMkYyIC8qIEpTTG9jYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZEQTE1RUM2MTJCMDNGM0IwMDNBNTgzQSAvKiBKU0xvd1Bhc3MyRmlsdGVy
Tm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0NjE0MTkwQ0Q2ODI2OTAwRkFEQTc1IC8qIEpT
TWVkaWFFcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMzQzM5QjcwQzBEM0Q4RDAwNUY0RDdB
IC8qIEpTTWVkaWFMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlEM0E5NEE0NzEyMkRDNDBGMDBB
MzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQjFFNTQ1RTYx
MzQ2MkIwQjAwOTJBNTQ1IC8qIEpTTWVkaWFTdHJlYW0uaCBpbiBIZWFkZXJzICovLAotCQkJCTQ5
QTJEMzk1MTNFOTgxQTMwMDU3OUYxMyAvKiBKU01lZGlhU3RyZWFtRXZlbnQuaCBpbiBIZWFkZXJz
ICovLAotCQkJCUIxNDM1M0Y5MTM4RUE5NUIwMEQ1MzI3NiAvKiBKU01lZGlhU3RyZWFtTGlzdC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJNDlDOUY0OEYxM0Q1N0QzMjAwNTI2MDBBIC8qIEpTTWVkaWFT
dHJlYW1UcmFjay5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDlDOUY0OTExM0Q1N0QzMjAwNTI2MDBB
IC8qIEpTTWVkaWFTdHJlYW1UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTlGRkUzRUE2
MTFCNUE0MzkwMDM3ODc0RSAvKiBKU01lbW9yeUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUUx
MDc0MDBFMEU3N0JEQzAwMDMzQUYyNCAvKiBKU01lc3NhZ2VDaGFubmVsLmggaW4gSGVhZGVycyAq
LywKIAkJCQk3NTc5M0VDOTBEMENFNzJEMDA3RkMwQUMgLyogSlNNZXNzYWdlRXZlbnQuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjIxNTgsNyArMjIwMDQsNiBAQAogCQkJCUE4MjZFOEFFMEExQThGMjMw
MENEMUJCNiAvKiBKU09wdGlvbkNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTBE
NTc0MTBBNUM3ODY3MDA3RURENEMgLyogSlNPdmVyZmxvd0V2ZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlFMTI4NEJCMTEwNDQ5RkZBMDBFQUVCNTIgLyogSlNQYWdlVHJhbnNpdGlvbkV2ZW50Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQk0OUJFMzBGNDEzRDk3NjQ2MDAzODA4QTkgLyogSlNQZWVyQ29u
bmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEE5QTU4NzUxMUU4NEM4MTAwOEFDRkQxIC8q
IEpTUGVyZm9ybWFuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCThBOUE1ODcxMTFFODRDMzYwMDhB
Q0ZEMSAvKiBKU1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEE5
QTU4ODgxMUU4NEYzNzAwOEFDRkQxIC8qIEpTUGVyZm9ybWFuY2VUaW1pbmcuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjIxNzksNyArMjIwMjQsNiBAQAogCQkJCTlGQTM3RUZEMTE3MkZEQTYwMEM0Q0Q1
NSAvKiBKU1NjcmlwdFByb2ZpbGVOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUQwN0E3RjBG
RjkzNUNBMDA5NUVEQ0UgLyogSlNTaGFyZWRXb3JrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
RDE2OTA2MTAyMzhCNjYwMDlCQzgyNyAvKiBKU1NoYXJlZFdvcmtlckNvbnRleHQuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTQ5QkUzMEY2MTNEOTc2NDYwMDM4MDhBOSAvKiBKU1NpZ25hbGluZ0NhbGxi
YWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTQxNUQ1NjEyOUFCMkQyMDAzQUQ2NjkgLyogSlNT
cGVlY2hJbnB1dEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTQxNUQ1ODEyOUFCMkQyMDAz
QUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzU0MTVE
NUExMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmggaW4gSGVhZGVy
cyAqLywKQEAgLTIyNDM3LDcgKzIyMjgxLDYgQEAKIAkJCQlBNTczMkIwRDEzNkExNkM0MDA1QzhE
N0MgLyogTG9jYWxpemVkRGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjUxNDJDNjkxMjNGMTJC
MDAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1MjA3
QkUwOUJENDEwQTAwRjIwMzhEIC8qIExvY2FsaXplZFN0cmluZ3MuaCBpbiBIZWFkZXJzICovLAot
CQkJCUIxRTU0NTdCMTM0NjI5MUYwMDkyQTU0NSAvKiBMb2NhbE1lZGlhU3RyZWFtLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MTFGMjMxODBEQzE2MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGFz
ay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTExRjIzMUEwREMxNjBEQTAwNEYwMDMyIC8qIExvY2Fs
U3RvcmFnZVRocmVhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFMUM0MUIwRDk4Mjk4MDAwM0Iw
MkYyIC8qIExvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTIyNDc3LDE1ICsyMjMyMCw2IEBA
CiAJCQkJRDNBOTRBMzkxMjJEQUJBQzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlEM0E5NEEzQjEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDNBQTEwRjQxMjNBOThBQTAwOTIxNTJCIC8q
IE1lZGlhUXVlcnlNYXRjaGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlCMUU1NDU3RTEzNDYyOTFG
MDA5MkE1NDUgLyogTWVkaWFTdHJlYW0uaCBpbiBIZWFkZXJzICovLAotCQkJCUIxRTU0NTk0MTM0
NjI5QzEwMDkyQTU0NSAvKiBNZWRpYVN0cmVhbUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
QjFFNTQ1OTgxMzQ2MjlDMTAwOTJBNTQ1IC8qIE1lZGlhU3RyZWFtQ29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDlBMkNGREExM0U5Nzg3RTAwNTc5RjEzIC8qIE1lZGlhU3RyZWFtRXZl
bnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUIxRTU0NTk2MTM0NjI5QzEwMDkyQTU0NSAvKiBNZWRp
YVN0cmVhbUZyYW1lQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQjE0MzUzRDYxMzhF
QThFRDAwRDUzMjc2IC8qIE1lZGlhU3RyZWFtTGlzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDk3
ODVFRTExM0YxOTJGMDAwQTc5NUFEIC8qIE1lZGlhU3RyZWFtUmVnaXN0cnkuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTQ5QzlGMzI2MTNENTc0RjkwMDUyNjAwQSAvKiBNZWRpYVN0cmVhbVRyYWNrLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk0OUM5RjMyMzEzRDU3NEY5MDA1MjYwMEEgLyogTWVkaWFTdHJl
YW1UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjE2QzE4MDk3OUMzQkQwMDQ2Nzc0
MSAvKiBNZW1vcnlDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUZGRTNFN0IxMUI1OUM1RDAw
Mzc4NzRFIC8qIE1lbW9yeUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NzFEQ0M4MTM4NUU2
QTQwMDcwMkREMCAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCBpbiBIZWFkZXJzICovLApAQCAt
MjI1OTIsNyArMjI0MjYsNiBAQAogCQkJCUE4RkE2RTVEMEU0Q0ZERUQwMEQ1Q0Y0OSAvKiBQYXR0
ZXJuLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk3MTBEMDBCRjIyMDA3MUI3ODIgLyogUGF0
dGVybkF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyNzUzNTY1MEIwNTM4MTQwMDJD
RTY0RiAvKiBQREZEb2N1bWVudEltYWdlLmggaW4gSGVhZGVycyAqLywKLQkJCQk0OUE1QTRGRjEz
RTJGMDFFMDBDRkRBRTAgLyogUGVlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCThB
N0NDOTZCMTIwNzZENzMwMDFENDU4OCAvKiBQZW5kaW5nU2NyaXB0LmggaW4gSGVhZGVycyAqLywK
IAkJCQk4QTg0NEQwNTExRDNDMThFMDAxNDA2NUMgLyogUGVyZm9ybWFuY2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCThBRjRFNTU2MTFEQzVBMzYwMDBFRDNERSAvKiBQZXJmb3JtYW5jZU5hdmlnYXRp
b24uaCBpbiBIZWFkZXJzICovLApAQCAtMjI4ODksNyArMjI3MjIsNiBAQAogCQkJCTQxRDE2OEU4
MTAyMjZFODkwMDlCQzgyNyAvKiBTaGFyZWRXb3JrZXJDb250ZXh0LmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MUQxNjhFQTEwMjI2RTg5MDA5QkM4MjcgLyogU2hhcmVkV29ya2VyUmVwb3NpdG9yeS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDFEMTY4RUUxMDIyNkU4OTAwOUJDODI3IC8qIFNoYXJlZFdv
cmtlclRocmVhZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDlBNUE1MDExM0UyRjAxRTAwQ0ZEQUUw
IC8qIFNpZ25hbGluZ0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE2NTBEMDA2
Q0Q2MDBFRjZGMjYgLyogU2ltcGxlRm9udERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMzI3
RDYwMTFBMzNBMkIwMDRGOUQ2NSAvKiBTaW5rRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQ5RTkxMUNEMEVGODZENDcwMDlEMENBRiAvKiBTa2V3VHJhbnNmb3JtT3BlcmF0aW9uLmggaW4g
SGVhZGVycyAqLywKQEAgLTI1MTE4LDcgKzI0OTUwLDYgQEAKIAkJCQkxQzVGQUVFNzBEQ0ZEQTY4
MDBENThGNzggLyogSlNKYXZhU2NyaXB0Q2FsbEZyYW1lQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4NjYyOUQ0MDlEQTJCNDgwMDk2MzNBNSAvKiBKU0tleWJvYXJkRXZlbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOTM1RjQ1NDIwRjdDM0I1RjAwRDdDMUZCIC8qIEpTTGF6eUV2ZW50
TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQjFFNTQ1REQxMzQ2MkIwQjAwOTJBNTQ1
IC8qIEpTTG9jYWxNZWRpYVN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0UxQzQzQjBE
OTgzMEQzMDAzQjAyRjIgLyogSlNMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Ux
QzQ0MDBEOTgzMEY0MDAzQjAyRjIgLyogSlNMb2NhdGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlGREExNUVDNTEyQjAzRjNCMDAzQTU4M0EgLyogSlNMb3dQYXNzMkZpbHRlck5vZGUu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNTEyNywxMSArMjQ5NTgsNiBAQAogCQkJCUJDM0MzOUI2
MEMwRDNEOEQwMDVGNEQ3QSAvKiBKU01lZGlhTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
NDY0RTA2QzEzNUVDMTA2MDBGREIwMEEgLyogSlNNZWRpYUxpc3RDdXN0b20uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRDNBOTRBNDYxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQjFFNTQ1RTUxMzQ2MkIwQjAwOTJBNTQ1IC8qIEpTTWVk
aWFTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDlBMkQzOTQxM0U5ODFBMzAwNTc5RjEz
IC8qIEpTTWVkaWFTdHJlYW1FdmVudC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCMTQzNTNGODEz
OEVBOTVCMDBENTMyNzYgLyogSlNNZWRpYVN0cmVhbUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJNDlDOUY0OEUxM0Q1N0QzMjAwNTI2MDBBIC8qIEpTTWVkaWFTdHJlYW1UcmFjay5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQk0OUM5RjQ5MDEzRDU3RDMyMDA1MjYwMEEgLyogSlNNZWRpYVN0cmVh
bVRyYWNrTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5RkZFM0VBNTExQjVBNDM5MDAzNzg3
NEUgLyogSlNNZW1vcnlJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTlGREM4RkYyMTJGQUIw
MDYwMDk5QUIxQyAvKiBKU01lbW9yeUluZm9DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RTEwNzQwMEQwRTc3QkRDMDAwMzNBRjI0IC8qIEpTTWVzc2FnZUNoYW5uZWwuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0yNTE3MSw4ICsyNDk5Nyw2IEBACiAJCQkJQTgyNkVDNDgwQTFCMENCRTAwQ0Qx
QkI2IC8qIEpTT3B0aW9uQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwRDU3
NDAwQTVDNzg2NzAwN0VERDRDIC8qIEpTT3ZlcmZsb3dFdmVudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFMTI4NEJCMjEwNDQ5RkZBMDBFQUVCNTIgLyogSlNQYWdlVHJhbnNpdGlvbkV2ZW50LmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTQ5QkUzMEYzMTNEOTc2NDYwMDM4MDhBOSAvKiBKU1BlZXJD
b25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQ5QkUzMEQyMTNEOTc0N0IwMDM4MDhB
OSAvKiBKU1BlZXJDb25uZWN0aW9uQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCThBOUE1
ODc0MTFFODRDODEwMDhBQ0ZEMSAvKiBKU1BlcmZvcm1hbmNlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCThBOUE1ODcwMTFFODRDMzYwMDhBQ0ZEMSAvKiBKU1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk4QTlBNTg4NzExRTg0RjM3MDA4QUNGRDEgLyogSlNQZXJm
b3JtYW5jZVRpbWluZy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI1MTk2LDcgKzI1MDIwLDYgQEAK
IAkJCQk0MUQwN0E3RTBGRjkzNUNBMDA5NUVEQ0UgLyogSlNTaGFyZWRXb3JrZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDFEMTY5MDUxMDIzOEI2NjAwOUJDODI3IC8qIEpTU2hhcmVkV29ya2Vy
Q29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNENEOEQ4MjEwNkI1MjkwMDBBNDZEMjMg
LyogSlNTaGFyZWRXb3JrZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDlCRTMwRjUx
M0Q5NzY0NjAwMzgwOEE5IC8qIEpTU2lnbmFsaW5nQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNzU0MTVENTUxMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5wdXRFdmVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3NTQxNUQ1NzEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJ
bnB1dFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3NTQxNUQ1OTEyOUFCMkQyMDAzQUQ2
NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdExpc3QuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNTQ3
OCw3ICsyNTMwMSw2IEBACiAJCQkJRjVDQzQyREMxMkY4MDFDQTAwRDVGN0UzIC8qIExvY2FsaXpl
ZE51bWJlck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMwNDZFMUFDMTIwOEE5RkUwMEJBMkNG
NyAvKiBMb2NhbGl6ZWRTdHJpbmdzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMjVCNTJBMTMx
QzZEMzkwMDE4MEUxMCAvKiBMb2NhbGl6ZWRTdHJpbmdzTWFjLm1tIGluIFNvdXJjZXMgKi8sCi0J
CQkJQjFFNTQ1N0ExMzQ2MjkxRjAwOTJBNTQ1IC8qIExvY2FsTWVkaWFTdHJlYW0uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTExRjIzMTcwREMxNjBEQTAwNEYwMDMyIC8qIExvY2FsU3RvcmFnZVRh
c2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTExRjIzMTkwREMxNjBEQTAwNEYwMDMyIC8qIExv
Y2FsU3RvcmFnZVRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0UxQzQxQzBEOTgyOTgx
MDAzQjAyRjIgLyogTG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNTUxMiwxNCArMjUz
MzQsNiBAQAogCQkJCUQzQTk0QTM4MTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlEMzQwNjI5QjEyNTNCQzhDMDA5RTQyNTkgLyogTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlEM0FBMTBGMzEyM0E5OEFB
MDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQjFF
NTQ1N0QxMzQ2MjkxRjAwOTJBNTQ1IC8qIE1lZGlhU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCUIxRTU0NTk3MTM0NjI5QzEwMDkyQTU0NSAvKiBNZWRpYVN0cmVhbUNvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJNDlBMkNGRDkxM0U5Nzg3RTAwNTc5RjEzIC8qIE1lZGlhU3Ry
ZWFtRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQjFFNTQ1OTUxMzQ2MjlDMTAwOTJBNTQ1
IC8qIE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUIx
NDM1M0Q1MTM4RUE4RUQwMEQ1MzI3NiAvKiBNZWRpYVN0cmVhbUxpc3QuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJNDk3ODVFRTAxM0YxOTJGMDAwQTc5NUFEIC8qIE1lZGlhU3RyZWFtUmVnaXN0cnku
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDlDOUYzMjcxM0Q1NzRGOTAwNTI2MDBBIC8qIE1lZGlh
U3RyZWFtVHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDlDOUYzMjQxM0Q1NzRGOTAwNTI2
MDBBIC8qIE1lZGlhU3RyZWFtVHJhY2tMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQjE2
QzE3MDk3OUMzQkQwMDQ2Nzc0MSAvKiBNZW1vcnlDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk5RkZFM0U3QTExQjU5QzVEMDAzNzg3NEUgLyogTWVtb3J5SW5mby5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk2NTdFREEwODEzODVDQjk3MDA0RTA2NDUgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVy
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
Z2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCAxNDIxNzIyLi4wNDJmODE2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaApAQCAtMTU5LDcgKzE1OSw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgYm9vbCBtZWRpYVN0cmVhbUVuYWJsZWQoKSB7IHJldHVybiBpc01lZGlhU3RyZWFtRW5hYmxl
ZDsgfQogICAgIHN0YXRpYyB2b2lkIHNldE1lZGlhU3RyZWFtRW5hYmxlZChib29sIGlzRW5hYmxl
ZCkgeyBpc01lZGlhU3RyZWFtRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogICAgIHN0YXRpYyBib29s
IHdlYmtpdEdldFVzZXJNZWRpYUVuYWJsZWQoKSB7IHJldHVybiBpc01lZGlhU3RyZWFtRW5hYmxl
ZDsgfQotICAgIHN0YXRpYyBib29sIHBlZXJDb25uZWN0aW9uRW5hYmxlZCgpIHsgcmV0dXJuIGlz
TWVkaWFTdHJlYW1FbmFibGVkOyB9CisgICAgc3RhdGljIGJvb2wgd2Via2l0UGVlckNvbm5lY3Rp
b25FbmFibGVkKCkgeyByZXR1cm4gaXNNZWRpYVN0cmVhbUVuYWJsZWQ7IH0KICNlbmRpZgogCiAj
aWYgRU5BQkxFKFFVT1RBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmlu
ZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggMGJhOWQ3Zi4uMGQ4NmU3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCkBAIC0xMjUsNyAr
MTI1LDYgQEAKICNpbmNsdWRlICJKU05vZGVJdGVyYXRvckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAi
SlNOb2RlTGlzdEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNPcHRpb25Db25zdHJ1Y3Rvci5jcHAi
Ci0jaW5jbHVkZSAiSlNQZWVyQ29ubmVjdGlvbkN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNQbHVn
aW5FbGVtZW50RnVuY3Rpb25zLmNwcCIKICNpbmNsdWRlICJKU1Byb2Nlc3NpbmdJbnN0cnVjdGlv
bkN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNTUUxSZXN1bHRTZXRSb3dMaXN0Q3VzdG9tLmNwcCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldC5jcHAKaW5kZXggMmYz
ZjYxYi4uNzU3MTUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNF
dmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRh
cmdldC5jcHAKQEAgLTEwMSw4ICsxMDEsMTIgQEAKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKyNpbmNsdWRlICJKU0xvY2FsTWVkaWFTdHJlYW0uaCIKKyNpbmNsdWRlICJKU01l
ZGlhU3RyZWFtLmgiCisjaW5jbHVkZSAiSlNQZWVyQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkxv
Y2FsTWVkaWFTdHJlYW0uaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbS5oIgorI2luY2x1ZGUgIlBl
ZXJDb25uZWN0aW9uLmgiCiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKQEAgLTE5NSwx
MSArMTk5LDE0IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEV2ZW50VGFyZ2V0KiB0YXJnCiAjZW5kaWYKIAogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCi0gICAgaWYgKExvY2FsTWVkaWFTdHJlYW0qIHN0cmVhbSA9IHRhcmdl
dC0+dG9Mb2NhbE1lZGlhU3RyZWFtKCkpCi0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgc3RyZWFtKTsKKyAgICBpZiAoTG9jYWxNZWRpYVN0cmVhbSogbG9jYWxNZWRpYVN0
cmVhbSA9IHRhcmdldC0+dG9Mb2NhbE1lZGlhU3RyZWFtKCkpCisgICAgICAgIHJldHVybiB0b0pT
KGV4ZWMsIGdsb2JhbE9iamVjdCwgbG9jYWxNZWRpYVN0cmVhbSk7CiAKLSAgICBpZiAoTWVkaWFT
dHJlYW0qIHN0cmVhbSA9IHRhcmdldC0+dG9NZWRpYVN0cmVhbSgpKQotICAgICAgICByZXR1cm4g
dG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0cmVhbSk7CisgICAgaWYgKE1lZGlhU3RyZWFtKiBt
ZWRpYVN0cmVhbSA9IHRhcmdldC0+dG9NZWRpYVN0cmVhbSgpKQorICAgICAgICByZXR1cm4gdG9K
UyhleGVjLCBnbG9iYWxPYmplY3QsIG1lZGlhU3RyZWFtKTsKKworICAgIGlmIChQZWVyQ29ubmVj
dGlvbiogcGVlckNvbm5lY3Rpb24gPSB0YXJnZXQtPnRvUGVlckNvbm5lY3Rpb24oKSkKKyAgICAg
ICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBwZWVyQ29ubmVjdGlvbik7CiAjZW5k
aWYKIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNOYXZpZ2F0b3JDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNOYXZpZ2F0b3JDdXN0b20uY3BwCmluZGV4IDEwN2RhZWIuLjQ1NzE5YzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmF2aWdhdG9yQ3VzdG9tLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hdmlnYXRvckN1c3RvbS5jcHAK
QEAgLTI1LDkgKzI1LDEyIEBACiAKICNpbmNsdWRlICJDYWxsYmFja0Z1bmN0aW9uLmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIk5hdmlnYXRvci5oIgorCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKICNpbmNsdWRlICJKU05hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2Fs
bGJhY2suaCIKICNpbmNsdWRlICJKU05hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjay5o
IgotI2luY2x1ZGUgIk5hdmlnYXRvci5oIgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNDIsMTEgKzQ1LDExIEBAIEpTVmFsdWUgSlNOYXZpZ2F0b3I6OndlYmtpdEdldFVzZXJN
ZWRpYShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAotICAgIFJlZlB0cjxOYXZpZ2F0b3JVc2VyTWVk
aWFTdWNjZXNzQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjayA9IGNyZWF0ZUZ1bmN0aW9uT25seUNh
bGxiYWNrPEpTTmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrPihleGVjLCBzdGF0aWNf
Y2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSksIGV4
ZWMtPmFyZ3VtZW50KDEpKTsKKyAgICBSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0Nh
bGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2sgPSBjcmVhdGVGdW5jdGlvbk9ubHlDYWxsYmFjazxKU05h
dmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaz4oZXhlYywgc3RhdGljX2Nhc3Q8SlNET01H
bG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLCBleGVjLT5hcmd1bWVu
dCgxKSwgQ2FsbGJhY2tBbGxvd1VuZGVmaW5lZCB8IENhbGxiYWNrQWxsb3dOdWxsKTsKICAgICBp
ZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwog
Ci0gICAgUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJh
Y2sgPSBjcmVhdGVGdW5jdGlvbk9ubHlDYWxsYmFjazxKU05hdmlnYXRvclVzZXJNZWRpYUVycm9y
Q2FsbGJhY2s+KGV4ZWMsIHN0YXRpY19jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpKSwgZXhlYy0+YXJndW1lbnQoMiksIENhbGxiYWNrQWxsb3dVbmRl
ZmluZWQpOworICAgIFJlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrPiBlcnJv
ckNhbGxiYWNrID0gY3JlYXRlRnVuY3Rpb25Pbmx5Q2FsbGJhY2s8SlNOYXZpZ2F0b3JVc2VyTWVk
aWFFcnJvckNhbGxiYWNrPihleGVjLCBzdGF0aWNfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4
ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSksIGV4ZWMtPmFyZ3VtZW50KDIpLCBDYWxsYmFja0Fs
bG93VW5kZWZpbmVkIHwgQ2FsbGJhY2tBbGxvd051bGwpOwogICAgIGlmIChleGVjLT5oYWRFeGNl
cHRpb24oKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGVlckNvbm5lY3Rpb25DdXN0b20uY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQZWVyQ29ubmVjdGlvbkN1c3RvbS5jcHAKaW5kZXgg
NzBiYjE3Mi4uMDFhYTY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNQZWVyQ29ubmVjdGlvbkN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNQZWVyQ29ubmVjdGlvbkN1c3RvbS5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDQwICszMCwzNCBAQAogI2luY2x1ZGUgIkpT
UGVlckNvbm5lY3Rpb24uaCIKIAogI2luY2x1ZGUgIkNhbGxiYWNrRnVuY3Rpb24uaCIKLSNpbmNs
dWRlICJET01XaW5kb3cuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkpTRE9NV2lu
ZG93Q3VzdG9tLmgiCi0jaW5jbHVkZSAiSlNTaWduYWxpbmdDYWxsYmFjay5oIgotI2luY2x1ZGUg
Ik1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiSlNQZWVyQ29ubmVjdGlv
blNpZ25hbGluZ0NhbGxiYWNrLmgiCiAjaW5jbHVkZSAiUGVlckNvbm5lY3Rpb24uaCIKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgeworI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIEpTQzsKIAorbmFtZXNwYWNlIFdlYkNvcmUgeworCiBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIEpTUGVlckNvbm5lY3Rpb25Db25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNQZWVyQ29u
bmVjdGlvbihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNQZWVyQ29ubmVjdGlvbkNvbnN0cnVj
dG9yKiBqc0NvbnN0cnVjdG9yID0gc3RhdGljX2Nhc3Q8SlNQZWVyQ29ubmVjdGlvbkNvbnN0cnVj
dG9yKj4oZXhlYy0+Y2FsbGVlKCkpOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQgPSBqc0NvbnN0cnVjdG9yLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgaWYgKCFj
b250ZXh0KQorICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVJlZmVyZW5j
ZUVycm9yKGV4ZWMsICJQZWVyQ29ubmVjdGlvbiBjb25zdHJ1Y3RvciBhc3NvY2lhdGVkIGRvY3Vt
ZW50IGlzIHVuYXZhaWxhYmxlIikpOwogCi0gICAgU3RyaW5nIGNvbmZpZ3VyYXRpb24gPSB1c3Ry
aW5nVG9TdHJpbmcoZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYykpOwotICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Zh
bHVlKCkpOworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAyKQorICAgICAgICByZXR1
cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiTm90IGVub3VnaCBh
cmd1bWVudHMiKSk7CiAKLSAgICBSZWZQdHI8U2lnbmFsaW5nQ2FsbGJhY2s+IHNpZ25hbGluZ0Nh
bGxiYWNrID0gY3JlYXRlRnVuY3Rpb25Pbmx5Q2FsbGJhY2s8SlNTaWduYWxpbmdDYWxsYmFjaz4o
ZXhlYywgc3RhdGljX2Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFs
T2JqZWN0KCkpLCBleGVjLT5hcmd1bWVudCgxKSk7CisgICAgU3RyaW5nIHNlcnZlckNvbmZpZ3Vy
YXRpb24gPSB1c3RyaW5nVG9TdHJpbmcoZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYykp
OwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShKU1ZhbHVlKCkpOwogCi0gICAgRnJhbWUqIGZyYW1lID0gYXNKU0RPTVdpbmRvdyhl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5pbXBsKCktPmZyYW1lKCk7Ci0gICAgTWVkaWFT
dHJlYW1GcmFtZUNvbnRyb2xsZXIqIGZyYW1lQ29udHJvbGxlciA9IGZyYW1lID8gZnJhbWUtPm1l
ZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKCkgOiAwOwotCi0gICAgUmVmUHRyPFBlZXJDb25uZWN0
aW9uPiBwZWVyQ29ubmVjdGlvbjsKLSAgICBpZiAoZnJhbWVDb250cm9sbGVyKQotICAgICAgICBw
ZWVyQ29ubmVjdGlvbiA9IGZyYW1lQ29udHJvbGxlci0+Y3JlYXRlUGVlckNvbm5lY3Rpb24oY29u
ZmlndXJhdGlvbiwgc2lnbmFsaW5nQ2FsbGJhY2spOwotCi0gICAgaWYgKCFwZWVyQ29ubmVjdGlv
bikKKyAgICBSZWZQdHI8UGVlckNvbm5lY3Rpb25TaWduYWxpbmdDYWxsYmFjaz4gc2lnbmFsaW5n
Q2FsbGJhY2sgPSBjcmVhdGVGdW5jdGlvbk9ubHlDYWxsYmFjazxKU1BlZXJDb25uZWN0aW9uU2ln
bmFsaW5nQ2FsbGJhY2s+KGV4ZWMsIHN0YXRpY19jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwgZXhlYy0+YXJndW1lbnQoMSkpOworICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Zh
bHVlKCkpOwogCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pTKGV4ZWMs
IGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBwZWVyQ29ubmVjdGlvbi5nZXQoKSkpKTsK
KyAgICBSZWZQdHI8UGVlckNvbm5lY3Rpb24+IHBlZXJDb25uZWN0aW9uID0gUGVlckNvbm5lY3Rp
b246OmNyZWF0ZShzZXJ2ZXJDb25maWd1cmF0aW9uLCBzaWduYWxpbmdDYWxsYmFjay5yZWxlYXNl
KCksIGNvbnRleHQpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoQ1JFQVRFX0RPTV9XUkFQ
UEVSKGV4ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBQZWVyQ29ubmVjdGlvbiwg
cGVlckNvbm5lY3Rpb24uZ2V0KCkpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TmF2aWdhdG9yQ3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hdmlnYXRvckN1
c3RvbS5jcHAKaW5kZXggZGNjYjAwNS4uMTlkYzcyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TmF2aWdhdG9yQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhOYXZpZ2F0b3JDdXN0b20uY3BwCkBAIC0zMCw5
ICszMCwxMiBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJOYXZpZ2F0
b3IuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKKyNpbmNsdWRlICJWOFV0aWxpdGllcy5oIgor
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICNpbmNsdWRlICJWOE5hdmlnYXRvclVzZXJNZWRp
YUVycm9yQ2FsbGJhY2suaCIKICNpbmNsdWRlICJWOE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3ND
YWxsYmFjay5oIgotI2luY2x1ZGUgIlY4VXRpbGl0aWVzLmgiCisjZW5kaWYKIAogdXNpbmcgbmFt
ZXNwYWNlIFdURjsKIApAQCAtNDgsMTIgKzUxLDEyIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OE5hdmlnYXRvcjo6d2Via2l0R2V0VXNlck1lZGlhQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50
CiAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4Y2VwdGlvbkNhdGNoZXIuRXhjZXB0aW9uKCkp
OwogCiAgICAgYm9vbCBzdWNjZWVkZWQgPSBmYWxzZTsKLSAgICBSZWZQdHI8TmF2aWdhdG9yVXNl
ck1lZGlhU3VjY2Vzc0NhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2sgPSBjcmVhdGVGdW5jdGlvbk9u
bHlDYWxsYmFjazxWOE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaz4oYXJnc1sxXSwg
c3VjY2VlZGVkKTsKKyAgICBSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNr
PiBzdWNjZXNzQ2FsbGJhY2sgPSBjcmVhdGVGdW5jdGlvbk9ubHlDYWxsYmFjazxWOE5hdmlnYXRv
clVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaz4oYXJnc1sxXSwgc3VjY2VlZGVkLCBDYWxsYmFja0Fs
bG93VW5kZWZpbmVkIHwgQ2FsbGJhY2tBbGxvd051bGwpOwogICAgIGlmICghc3VjY2VlZGVkKQog
ICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogCiAgICAgLy8gQXJndW1lbnQgaXMgb3B0
aW9uYWwsIGhlbmNlIHVuZGVmaW5lZCBpcyBhbGxvd2VkLgotICAgIFJlZlB0cjxOYXZpZ2F0b3JV
c2VyTWVkaWFFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrID0gY3JlYXRlRnVuY3Rpb25Pbmx5
Q2FsbGJhY2s8VjhOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrPihhcmdzWzJdLCBzdWNj
ZWVkZWQsIENhbGxiYWNrQWxsb3dVbmRlZmluZWQpOworICAgIFJlZlB0cjxOYXZpZ2F0b3JVc2Vy
TWVkaWFFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrID0gY3JlYXRlRnVuY3Rpb25Pbmx5Q2Fs
bGJhY2s8VjhOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrPihhcmdzWzJdLCBzdWNjZWVk
ZWQsIENhbGxiYWNrQWxsb3dVbmRlZmluZWQgfCBDYWxsYmFja0FsbG93TnVsbCk7CiAgICAgaWYg
KCFzdWNjZWVkZWQpCiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFBlZXJDb25uZWN0aW9uQ3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFBlZXJDb25uZWN0
aW9uQ3VzdG9tLmNwcAppbmRleCA5ODFjZGExLi41NjA1NjFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhQZWVyQ29ubmVjdGlvbkN1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4UGVlckNvbm5lY3Rpb25DdXN0
b20uY3BwCkBAIC0yOCwxNCArMjgsMTAgQEAKIAogI2luY2x1ZGUgIlY4UGVlckNvbm5lY3Rpb24u
aCIKIAotI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIK
LSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiUGVlckNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIK
KyNpbmNsdWRlICJWOFBlZXJDb25uZWN0aW9uU2lnbmFsaW5nQ2FsbGJhY2suaCIKICNpbmNsdWRl
ICJWOFByb3h5LmgiCi0jaW5jbHVkZSAiVjhTaWduYWxpbmdDYWxsYmFjay5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTQ2LDMwICs0MiwyNSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
VjhQZWVyQ29ubmVjdGlvbjo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRz
JgogICAgIGlmICghYXJncy5Jc0NvbnN0cnVjdENhbGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93
RXJyb3IoIkRPTSBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0
aW9uLiIsIFY4UHJveHk6OlR5cGVFcnJvcik7CiAKLSAgICBpbnQgYXJnTGVuZ3RoID0gYXJncy5M
ZW5ndGgoKTsKLSAgICBpZiAoYXJnTGVuZ3RoICE9IDIpCi0gICAgICAgIHJldHVybiB0aHJvd0Vy
cm9yKCJUaGUgUGVlckNvbm5lY3Rpb24gY29uc3RydWN0b3IgdGFrZXMgdHdvIGFyZ3VtZW50cy4i
LCBWOFByb3h5OjpUeXBlRXJyb3IpOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQgPSBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgaWYgKCFjb250ZXh0KQorICAg
ICAgICByZXR1cm4gdGhyb3dFcnJvcigiUGVlckNvbm5lY3Rpb24gY29uc3RydWN0b3IgYXNzb2Np
YXRlZCBkb2N1bWVudCBpcyB1bmF2YWlsYWJsZSIsIFY4UHJveHk6OlJlZmVyZW5jZUVycm9yKTsK
KworICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMikKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3Io
Ik5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9yKTsKIAogICAgIHY4OjpU
cnlDYXRjaCBleGNlcHRpb25DYXRjaGVyOwotICAgIFN0cmluZyBjb25maWd1cmF0aW9uID0gdG9X
ZWJDb3JlU3RyaW5nKGFyZ3NbMF0tPlRvU3RyaW5nKCkpOworICAgIFN0cmluZyBzZXJ2ZXJDb25m
aWd1cmF0aW9uID0gdG9XZWJDb3JlU3RyaW5nKGFyZ3NbMF0tPlRvU3RyaW5nKCkpOwogICAgIGlm
IChleGNlcHRpb25DYXRjaGVyLkhhc0NhdWdodCgpKQogICAgICAgICByZXR1cm4gdGhyb3dFcnJv
cihleGNlcHRpb25DYXRjaGVyLkV4Y2VwdGlvbigpKTsKIAogICAgIGJvb2wgc3VjY2VlZGVkID0g
ZmFsc2U7Ci0gICAgUmVmUHRyPFNpZ25hbGluZ0NhbGxiYWNrPiBzaWduYWxpbmdDYWxsYmFjayA9
IGNyZWF0ZUZ1bmN0aW9uT25seUNhbGxiYWNrPFY4U2lnbmFsaW5nQ2FsbGJhY2s+KGFyZ3NbMV0s
IHN1Y2NlZWRlZCk7CisgICAgUmVmUHRyPFBlZXJDb25uZWN0aW9uU2lnbmFsaW5nQ2FsbGJhY2s+
IHNpZ25hbGluZ0NhbGxiYWNrID0gY3JlYXRlRnVuY3Rpb25Pbmx5Q2FsbGJhY2s8VjhQZWVyQ29u
bmVjdGlvblNpZ25hbGluZ0NhbGxiYWNrPihhcmdzWzFdLCBzdWNjZWVkZWQpOwogICAgIGlmICgh
c3VjY2VlZGVkIHx8ICFzaWduYWxpbmdDYWxsYmFjaykKLSAgICAgICAgcmV0dXJuIHRocm93RXJy
b3IoIlRoZSBQZWVyQ29ubmVjdGlvbiBjb25zdHJ1Y3RvciBtdXN0IGJlIGdpdmVuIGEgU2lnbmFs
aW5nQ2FsbGJhY2sgY2FsbGJhY2suIiwgVjhQcm94eTo6VHlwZUVycm9yKTsKLQotICAgIEZyYW1l
KiBmcmFtZSA9IFY4UHJveHk6OnJldHJpZXZlRnJhbWVGb3JFbnRlcmVkQ29udGV4dCgpOwotICAg
IE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKiBmcmFtZUNvbnRyb2xsZXIgPSBmcmFtZSA/IGZy
YW1lLT5tZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcigpIDogMDsKLQotICAgIFJlZlB0cjxQZWVy
Q29ubmVjdGlvbj4gcGVlckNvbm5lY3Rpb247Ci0gICAgaWYgKGZyYW1lQ29udHJvbGxlcikKLSAg
ICAgICAgcGVlckNvbm5lY3Rpb24gPSBmcmFtZUNvbnRyb2xsZXItPmNyZWF0ZVBlZXJDb25uZWN0
aW9uKGNvbmZpZ3VyYXRpb24sIHNpZ25hbGluZ0NhbGxiYWNrKTsKLQotICAgIGlmICghcGVlckNv
bm5lY3Rpb24pCiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAKKyAgICBSZWZQdHI8
UGVlckNvbm5lY3Rpb24+IHBlZXJDb25uZWN0aW9uID0gUGVlckNvbm5lY3Rpb246OmNyZWF0ZShz
ZXJ2ZXJDb25maWd1cmF0aW9uLCBzaWduYWxpbmdDYWxsYmFjay5yZWxlYXNlKCksIGNvbnRleHQp
OworCiAgICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKGFyZ3MuSG9sZGVyKCksICZpbmZv
LCBwZWVyQ29ubmVjdGlvbi5nZXQoKSk7CiAgICAgcmV0dXJuIHRvVjgocGVlckNvbm5lY3Rpb24u
cmVsZWFzZSgpLCBhcmdzLkhvbGRlcigpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EaXNwYXRjaFRhc2suaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EaXNwYXRjaFRhc2suaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwNDNmNS4uMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGlzcGF0Y2hUYXNrLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5NCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgotICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIERpc3BhdGNoVGFza19oCi0jZGVmaW5lIERpc3Bh
dGNoVGFza19oCi0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSAiU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIENhbGxiYWNrQ2xhc3MsIHR5cGVu
YW1lIFNpbXBsZURhdGFUeXBlPgotY2xhc3MgU2ltcGxlRGlzcGF0Y2hUYXNrIDogcHVibGljIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgewotcHVibGljOgotICAgIHR5cGVkZWYgdm9pZCAo
Q2FsbGJhY2tDbGFzczo6KkNhbGxiYWNrKShjb25zdCBTaW1wbGVEYXRhVHlwZSYpOwotCi0gICAg
c3RhdGljIFBhc3NPd25QdHI8U2ltcGxlRGlzcGF0Y2hUYXNrPiBjcmVhdGUoUGFzc1JlZlB0cjxD
YWxsYmFja0NsYXNzPiBvYmplY3QsIENhbGxiYWNrIGNhbGxiYWNrLCBjb25zdCBTaW1wbGVEYXRh
VHlwZSYgZGF0YSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgU2ltcGxlRGlz
cGF0Y2hUYXNrKG9iamVjdCwgY2FsbGJhY2ssIGRhdGEpKTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFs
IHZvaWQgcGVyZm9ybVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopCi0gICAgewotICAgICAg
ICAobV9vYmplY3QuZ2V0KCktPiptX2NhbGxiYWNrKShtX2RhdGEpOwotICAgIH0KLQotcHJpdmF0
ZToKLSAgICBTaW1wbGVEaXNwYXRjaFRhc2soUGFzc1JlZlB0cjxDYWxsYmFja0NsYXNzPiBvYmpl
Y3QsIENhbGxiYWNrIGNhbGxiYWNrLCBjb25zdCBTaW1wbGVEYXRhVHlwZSYgZGF0YSkKLSAgICAg
ICAgOiBtX29iamVjdChvYmplY3QpCi0gICAgICAgICwgbV9jYWxsYmFjayhjYWxsYmFjaykKLSAg
ICAgICAgLCBtX2RhdGEoZGF0YSkgeyB9Ci0KLSAgICBSZWZQdHI8Q2FsbGJhY2tDbGFzcz4gbV9v
YmplY3Q7Ci0gICAgQ2FsbGJhY2sgbV9jYWxsYmFjazsKLSAgICBTaW1wbGVEYXRhVHlwZSBtX2Rh
dGE7Ci19OwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgQ2FsbGJhY2tDbGFzcywgdHlwZW5hbWUgU2lt
cGxlRGF0YVR5cGUsIHR5cGVuYW1lIFJlZkNvdW50ZWREYXRhVHlwZT4KLWNsYXNzIERpc3BhdGNo
VGFzayA6IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrIHsKLXB1YmxpYzoKLSAg
ICB0eXBlZGVmIHZvaWQgKENhbGxiYWNrQ2xhc3M6OipDYWxsYmFjaykoY29uc3QgU2ltcGxlRGF0
YVR5cGUmLCBQYXNzUmVmUHRyPFJlZkNvdW50ZWREYXRhVHlwZT4pOwotCi0gICAgc3RhdGljIFBh
c3NPd25QdHI8RGlzcGF0Y2hUYXNrPiBjcmVhdGUoUGFzc1JlZlB0cjxDYWxsYmFja0NsYXNzPiBv
YmplY3QsIENhbGxiYWNrIGNhbGxiYWNrLCBjb25zdCBTaW1wbGVEYXRhVHlwZSYgYXJnMSwgUGFz
c1JlZlB0cjxSZWZDb3VudGVkRGF0YVR5cGU+IGFyZzIpCi0gICAgewotICAgICAgICByZXR1cm4g
YWRvcHRQdHIobmV3IERpc3BhdGNoVGFzayhvYmplY3QsIGNhbGxiYWNrLCBhcmcxLCBhcmcyKSk7
Ci0gICAgfQotCi0gICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqKQotICAgIHsKLSAgICAgICAgKG1fb2JqZWN0LmdldCgpLT4qbV9jYWxsYmFjaykobV9h
cmcxLCBtX2FyZzIpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBEaXNwYXRjaFRhc2soUGFzc1Jl
ZlB0cjxDYWxsYmFja0NsYXNzPiBvYmplY3QsIENhbGxiYWNrIGNhbGxiYWNrLCBjb25zdCBTaW1w
bGVEYXRhVHlwZSYgYXJnMSwgUGFzc1JlZlB0cjxSZWZDb3VudGVkRGF0YVR5cGU+IGFyZzIpCi0g
ICAgICAgIDogbV9vYmplY3Qob2JqZWN0KQotICAgICAgICAsIG1fY2FsbGJhY2soY2FsbGJhY2sp
Ci0gICAgICAgICwgbV9hcmcxKGFyZzEpCi0gICAgICAgICwgbV9hcmcyKGFyZzIpIHsgfQotCi0g
ICAgUmVmUHRyPENhbGxiYWNrQ2xhc3M+IG1fb2JqZWN0OwotICAgIENhbGxiYWNrIG1fY2FsbGJh
Y2s7Ci0gICAgU2ltcGxlRGF0YVR5cGUgbV9hcmcxOwotICAgIFJlZlB0cjxSZWZDb3VudGVkRGF0
YVR5cGU+IG1fYXJnMjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNlbmRpZiAvLyBEaXNwYXRjaFRhc2tfaAotCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTG9jYWxNZWRpYVN0cmVhbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTG9jYWxNZWRpYVN0cmVhbS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGRmMzcyMjcuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0xvY2FsTWVk
aWFTdHJlYW0uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTE2ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAot
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
Ci0gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLSAqIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJMb2NhbE1lZGlhU3RyZWFtLmgiCi0K
LSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSAiRXZlbnQuaCIKLSNpbmNsdWRl
ICJFdmVudE5hbWVzLmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIuaCIK
LSNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotY2xhc3MgTG9jYWxNZWRpYVN0cmVhbTo6RGlzcGF0Y2hVcGRhdGVUYXNrIDogcHVibGlj
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgewotcHVibGljOgotICAgIHR5cGVkZWYgdm9p
ZCAoTG9jYWxNZWRpYVN0cmVhbTo6KkNhbGxiYWNrKSgpOwotCi0gICAgc3RhdGljIFBhc3NPd25Q
dHI8RGlzcGF0Y2hVcGRhdGVUYXNrPiBjcmVhdGUoUGFzc1JlZlB0cjxMb2NhbE1lZGlhU3RyZWFt
PiBvYmplY3QsIENhbGxiYWNrIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBEaXNwYXRjaFVwZGF0ZVRhc2sob2JqZWN0LCBjYWxsYmFjaykpOwotICAgIH0KLQot
ICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KikKLSAg
ICB7Ci0gICAgICAgIChtX29iamVjdC5nZXQoKS0+Km1fY2FsbGJhY2spKCk7Ci0gICAgfQotCi1w
dWJsaWM6Ci0gICAgRGlzcGF0Y2hVcGRhdGVUYXNrKFBhc3NSZWZQdHI8TG9jYWxNZWRpYVN0cmVh
bT4gb2JqZWN0LCBDYWxsYmFjayBjYWxsYmFjaykKLSAgICAgICAgOiBtX29iamVjdChvYmplY3Qp
Ci0gICAgICAgICwgbV9jYWxsYmFjayhjYWxsYmFjaykgeyB9Ci0KLSAgICBSZWZQdHI8TG9jYWxN
ZWRpYVN0cmVhbT4gbV9vYmplY3Q7Ci0gICAgQ2FsbGJhY2sgbV9jYWxsYmFjazsKLX07Ci0KLVBh
c3NSZWZQdHI8TG9jYWxNZWRpYVN0cmVhbT4gTG9jYWxNZWRpYVN0cmVhbTo6Y3JlYXRlKE1lZGlh
U3RyZWFtRnJhbWVDb250cm9sbGVyKiBmcmFtZUNvbnRyb2xsZXIsIGNvbnN0IFN0cmluZyYgbGFi
ZWwsIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja0xpc3Q+IHRyYWNrcykKLXsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IExvY2FsTWVkaWFTdHJlYW0oZnJhbWVDb250cm9sbGVyLCBsYWJlbCwg
dHJhY2tzKSk7Ci19Ci0KLUxvY2FsTWVkaWFTdHJlYW06OkxvY2FsTWVkaWFTdHJlYW0oTWVkaWFT
dHJlYW1GcmFtZUNvbnRyb2xsZXIqIGZyYW1lQ29udHJvbGxlciwgY29uc3QgU3RyaW5nJiBsYWJl
bCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrTGlzdD4gdHJhY2tzKQotICAgIDogTWVkaWFT
dHJlYW0oZnJhbWVDb250cm9sbGVyLCBsYWJlbCwgdHJhY2tzLCB0cnVlKQotewotfQotCi1Mb2Nh
bE1lZGlhU3RyZWFtOjp+TG9jYWxNZWRpYVN0cmVhbSgpCi17Ci19Ci0KLUxvY2FsTWVkaWFTdHJl
YW0qIExvY2FsTWVkaWFTdHJlYW06OnRvTG9jYWxNZWRpYVN0cmVhbSgpCi17Ci0gICAgcmV0dXJu
IHRoaXM7Ci19Ci0KLXZvaWQgTG9jYWxNZWRpYVN0cmVhbTo6ZGV0YWNoRW1iZWRkZXIoKQotewot
ICAgIC8vIEFzc3VtaW5nIHdlIHNob3VsZCBzdG9wIGFueSBsaXZlIHN0cmVhbXMgd2hlbiBsb3Np
bmcgYWNjZXNzIHRvIHRoZSBlbWJlZGRlci4KLSAgICBzdG9wKCk7Ci0KLSAgICBNZWRpYVN0cmVh
bTo6ZGV0YWNoRW1iZWRkZXIoKTsKLX0KLQotdm9pZCBMb2NhbE1lZGlhU3RyZWFtOjpzdHJlYW1F
bmRlZCgpCi17Ci0gICAgTWVkaWFTdHJlYW06OnN0cmVhbUVuZGVkKCk7Ci19Ci0KLXZvaWQgTG9j
YWxNZWRpYVN0cmVhbTo6c3RvcCgpCi17Ci0gICAgaWYgKCFtZWRpYVN0cmVhbUZyYW1lQ29udHJv
bGxlcigpIHx8IG1fcmVhZHlTdGF0ZSA9PSBFTkRFRCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
bWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIoKS0+c3RvcEdlbmVyYXRlZFN0cmVhbShsYWJlbCgp
KTsKLQotICAgIG1fcmVhZHlTdGF0ZSA9IEVOREVEOwotCi0gICAgLy8gRG9uJ3QgYXNzZXJ0IHNp
bmNlIGl0IGNhbiBiZSBudWxsIGluIGRlZ2VuZXJhdGUgY2FzZXMgbGlrZSBmcmFtZXMgZGV0YWNo
ZWQgZnJvbSB0aGVpciBwYWdlcy4KLSAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
aXNDb250ZXh0VGhyZWFkKCkpOwotICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+cG9zdFRh
c2soRGlzcGF0Y2hVcGRhdGVUYXNrOjpjcmVhdGUodGhpcywgJkxvY2FsTWVkaWFTdHJlYW06Om9u
U3RvcCkpOwotfQotCi12b2lkIExvY2FsTWVkaWFTdHJlYW06Om9uU3RvcCgpCi17Ci0gICAgZGlz
cGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lbmRlZEV2ZW50LCBmYWxzZSwg
ZmFsc2UpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxF
KE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2NhbE1lZGlh
U3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9jYWxNZWRpYVN0cmVhbS5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2Yzg1NDA4Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Mb2NhbE1lZGlhU3RyZWFtLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQot
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTgotICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
Ci0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIExvY2FsTWVkaWFTdHJlYW1faAotI2RlZmluZSBMb2Nh
bE1lZGlhU3RyZWFtX2gKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJN
ZWRpYVN0cmVhbS5oIgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotY2xhc3MgTG9jYWxNZWRpYVN0cmVhbSA6IHB1YmxpYyBNZWRpYVN0cmVhbSB7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TG9jYWxNZWRpYVN0cmVhbT4gY3JlYXRlKE1l
ZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgUGFzc1JlZlB0
cjxNZWRpYVN0cmVhbVRyYWNrTGlzdD4gdHJhY2tzKTsKLSAgICB2aXJ0dWFsIH5Mb2NhbE1lZGlh
U3RyZWFtKCk7Ci0KLSAgICB2b2lkIHN0b3AoKTsKLQotICAgIC8vIE1lZGlhU3RyZWFtRnJhbWVD
b250cm9sbGVyOjpTdHJlYW1DbGllbnQgaW1wbGVtZW50YXRpb24uCi0gICAgdmlydHVhbCB2b2lk
IGRldGFjaEVtYmVkZGVyKCk7Ci0gICAgdmlydHVhbCB2b2lkIHN0cmVhbUVuZGVkKCk7Ci0KLSAg
ICAvLyBFdmVudFRhcmdldC4KLSAgICB2aXJ0dWFsIExvY2FsTWVkaWFTdHJlYW0qIHRvTG9jYWxN
ZWRpYVN0cmVhbSgpOwotCi1wcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCBib29sIGlzTG9jYWxNZWRp
YVN0cmVhbSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLQotcHJpdmF0ZToKLSAgICBMb2NhbE1l
ZGlhU3RyZWFtKE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKiwgY29uc3QgU3RyaW5nJiBsYWJl
bCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrTGlzdD4gdHJhY2tzKTsKLSAgICBjbGFzcyBE
aXNwYXRjaFVwZGF0ZVRhc2s7Ci0gICAgZnJpZW5kIGNsYXNzIERpc3BhdGNoVXBkYXRlVGFzazsK
LQotICAgIHZvaWQgb25TdG9wKCk7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNl
bmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jZW5kaWYgLy8gTG9jYWxNZWRpYVN0cmVh
bV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTG9jYWxNZWRpYVN0cmVhbS5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9jYWxNZWRpYVN0cmVhbS5pZGwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGU0NzI1YTAuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0xvY2FsTWVkaWFTdHJlYW0uaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICog
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotbW9kdWxlIGNvcmUgewotCi0gICAgaW50ZXJmYWNlIFsKLSAgICAgICAgQ29u
ZGl0aW9uYWw9TUVESUFfU1RSRUFNLAotICAgICAgICBHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciwK
LSAgICAgICAgRXZlbnRUYXJnZXQKLSAgICBdIExvY2FsTWVkaWFTdHJlYW0gOiBNZWRpYVN0cmVh
bSB7Ci0gICAgICAgIHZvaWQgc3RvcCgpOwotICAgIH07Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NZWRpYVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVkaWFT
dHJlYW0uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMDlmYmEyLi4wMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZWRpYVN0cmVhbS5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSw4MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiTWVkaWFTdHJlYW0uaCIKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNs
dWRlICJFdmVudC5oIgotI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1QYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBNZWRpYVN0cmVhbTo6
Y3JlYXRlKE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKiBmcmFtZUNvbnRyb2xsZXIsIGNvbnN0
IFN0cmluZyYgbGFiZWwsIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja0xpc3Q+IHRyYWNrcywg
Ym9vbCBpc0xvY2FsTWVkaWFTdHJlYW0pCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRp
YVN0cmVhbShmcmFtZUNvbnRyb2xsZXIsIGxhYmVsLCB0cmFja3MsIGlzTG9jYWxNZWRpYVN0cmVh
bSkpOwotfQotCi1NZWRpYVN0cmVhbTo6TWVkaWFTdHJlYW0oTWVkaWFTdHJlYW1GcmFtZUNvbnRy
b2xsZXIqIGZyYW1lQ29udHJvbGxlciwgY29uc3QgU3RyaW5nJiBsYWJlbCwgUGFzc1JlZlB0cjxN
ZWRpYVN0cmVhbVRyYWNrTGlzdD4gdHJhY2tzLCBib29sIGlzTG9jYWxNZWRpYVN0cmVhbSkKLSAg
ICA6IE1lZGlhU3RyZWFtQ2xpZW50KGZyYW1lQ29udHJvbGxlciwgbGFiZWwsIGlzTG9jYWxNZWRp
YVN0cmVhbSkKLSAgICAsIG1fcmVhZHlTdGF0ZShMSVZFKQotICAgICwgbV90cmFja3ModHJhY2tz
KQotewotfQotCi1NZWRpYVN0cmVhbTo6fk1lZGlhU3RyZWFtKCkKLXsKLX0KLQotTWVkaWFTdHJl
YW0qIE1lZGlhU3RyZWFtOjp0b01lZGlhU3RyZWFtKCkKLXsKLSAgICByZXR1cm4gdGhpczsKLX0K
LQotdm9pZCBNZWRpYVN0cmVhbTo6c3RyZWFtRW5kZWQoKQotewotICAgIEFTU0VSVChtX3JlYWR5
U3RhdGUgIT0gRU5ERUQpOwotICAgIG1fcmVhZHlTdGF0ZSA9IEVOREVEOwotICAgIGRpc3BhdGNo
RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZW5kZWRFdmVudCwgZmFsc2UsIGZhbHNl
KSk7Ci19Ci0KLVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIE1lZGlhU3RyZWFtOjpzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbWVkaWFTdHJlYW1GcmFtZUNvbnRy
b2xsZXIoKSA/IG1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKCktPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSA6IDA7Ci19Ci0KLUV2ZW50VGFyZ2V0RGF0YSogTWVkaWFTdHJlYW06OmV2ZW50VGFy
Z2V0RGF0YSgpCi17Ci0gICAgcmV0dXJuICZtX2V2ZW50VGFyZ2V0RGF0YTsKLX0KLQotRXZlbnRU
YXJnZXREYXRhKiBNZWRpYVN0cmVhbTo6ZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkKLXsKLSAgICBy
ZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL01lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVkaWFTdHJlYW0uaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTYxOTU2MC4uMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTWVkaWFTdHJlYW0uaAorKysgL2Rldi9udWxsCkBAIC0xLDk2ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
Ci0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMKLSAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgTWVkaWFTdHJlYW1faAotI2RlZmluZSBNZWRpYVN0
cmVhbV9oCi0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSAiRXZlbnROYW1l
cy5oIgotI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1GcmFt
ZUNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrTGlzdC5oIgotI2luY2x1
ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgot
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBNZWRpYVN0cmVhbSA6IHB1YmxpYyBSZWZD
b3VudGVkPE1lZGlhU3RyZWFtPiwKLSAgICAgICAgICAgICAgICAgICAgcHVibGljIEV2ZW50VGFy
Z2V0LAotICAgICAgICAgICAgICAgICAgICBwdWJsaWMgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xs
ZXI6Ok1lZGlhU3RyZWFtQ2xpZW50IHsKLXB1YmxpYzoKLSAgICAvLyBNdXN0IG1hdGNoIHRoZSBj
b25zdGFudHMgaW4gdGhlIC5pZGwgZmlsZS4KLSAgICBlbnVtIHsKLSAgICAgICAgTElWRSA9IDEs
Ci0gICAgICAgIEVOREVEID0gMgotICAgIH07Ci0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRp
YVN0cmVhbT4gY3JlYXRlKE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKiwgY29uc3QgU3RyaW5n
JiBsYWJlbCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrTGlzdD4gdHJhY2tzLCBib29sIGlz
TG9jYWxNZWRpYVN0cmVhbSA9IGZhbHNlKTsKLSAgICB2aXJ0dWFsIH5NZWRpYVN0cmVhbSgpOwot
Ci0gICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihlbmRlZCk7Ci0KLSAgICB1bnNp
Z25lZCBzaG9ydCByZWFkeVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9yZWFkeVN0YXRlOyB9Ci0g
ICAgY29uc3QgU3RyaW5nJiBsYWJlbCgpIGNvbnN0IHsgcmV0dXJuIGNsaWVudElkKCk7IH0KLQot
ICAgIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja0xpc3Q+IHRyYWNrcygpIHsgcmV0dXJuIG1f
dHJhY2tzOyB9Ci0KLSAgICAvLyBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcjo6TWVkaWFTdHJl
YW1DbGllbnQgaW1wbGVtZW50YXRpb24uCi0gICAgdmlydHVhbCB2b2lkIHN0cmVhbUVuZGVkKCk7
Ci0KLSAgICAvLyBFdmVudFRhcmdldCBpbXBsZW1lbnRhdGlvbi4KLSAgICB2aXJ0dWFsIE1lZGlh
U3RyZWFtKiB0b01lZGlhU3RyZWFtKCk7Ci0gICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Q7Ci0KLSAgICB1c2luZyBSZWZDb3Vu
dGVkPE1lZGlhU3RyZWFtPjo6cmVmOwotICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW0+
OjpkZXJlZjsKLQotcHJvdGVjdGVkOgotICAgIE1lZGlhU3RyZWFtKE1lZGlhU3RyZWFtRnJhbWVD
b250cm9sbGVyKiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRy
YWNrTGlzdD4gdHJhY2tzLCBib29sIGlzTG9jYWxNZWRpYVN0cmVhbSk7Ci0KLSAgICAvLyBFdmVu
dFRhcmdldCBpbXBsZW1lbnRhdGlvbi4KLSAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZl
bnRUYXJnZXREYXRhKCk7Ci0gICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGVuc3VyZUV2ZW50
VGFyZ2V0RGF0YSgpOwotCi0gICAgdW5zaWduZWQgc2hvcnQgbV9yZWFkeVN0YXRlOwotCi1wcml2
YXRlOgotICAgIHZvaWQgb25FbmRlZCgpOwotCi0gICAgLy8gRXZlbnRUYXJnZXQgaW1wbGVtZW50
YXRpb24uCi0gICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgeyByZWYoKTsgfQotICAg
IHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgeyBkZXJlZigpOyB9Ci0KLSAgICBFdmVu
dFRhcmdldERhdGEgbV9ldmVudFRhcmdldERhdGE7Ci0KLSAgICBSZWZQdHI8TWVkaWFTdHJlYW1U
cmFja0xpc3Q+IG1fdHJhY2tzOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5k
aWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2VuZGlmIC8vIE1lZGlhU3RyZWFtX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZWRpYVN0cmVhbS5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTWVkaWFTdHJlYW0uaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3
ZmY5NTNiLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZWRpYVN0cmVhbS5pZGwK
KysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICogQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1tb2R1bGUgY29y
ZSB7Ci0KLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0s
Ci0gICAgICAgIEV2ZW50VGFyZ2V0Ci0gICAgXSBNZWRpYVN0cmVhbSB7Ci0gICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFiZWw7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBNZWRpYVN0cmVhbVRyYWNrTGlzdCB0cmFja3M7Ci0KLSAgICAgICAgLy8gRklYTUU6IGltcGxl
bWVudCB0aGUgcmVjb3JkIG1ldGhvZCB3aGVuIE1lZGlhU3RyZWFtUmVjb3JkZXIgaXMgYXZhaWxh
YmxlLgotCi0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IExJVkUgPSAxOwotICAgICAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBFTkRFRCA9IDI7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSB1bnNpZ25lZCBzaG9ydCByZWFkeVN0YXRlOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
RXZlbnRMaXN0ZW5lciBvbmVuZGVkOwotCi0gICAgICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFj
ZQotICAgICAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1
cmUpOwotICAgICAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3Rl
bmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29s
ZWFuIHVzZUNhcHR1cmUpOwotICAgICAgICBib29sZWFuIGRpc3BhdGNoRXZlbnQoaW4gRXZlbnQg
ZXZlbnQpCi0gICAgICAgICAgICByYWlzZXMoRXZlbnRFeGNlcHRpb24pOwotICAgIH07Ci0KLX0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZWRpYVN0cmVhbUxpc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL01lZGlhU3RyZWFtTGlzdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGQzYWQ5NDYuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lZGlh
U3RyZWFtTGlzdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw5MyArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
LSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TgotICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1MaXN0LmgiCi0K
LSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVBhc3NS
ZWZQdHI8TWVkaWFTdHJlYW1MaXN0PiBNZWRpYVN0cmVhbUxpc3Q6OmNyZWF0ZSgpCi17Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYVN0cmVhbUxpc3QoKSk7Ci19Ci0KLU1lZGlhU3RyZWFt
TGlzdDo6TWVkaWFTdHJlYW1MaXN0KCkKLXsKLX0KLQotTWVkaWFTdHJlYW1MaXN0Ojp+TWVkaWFT
dHJlYW1MaXN0KCkKLXsKLX0KLQotdW5zaWduZWQgTWVkaWFTdHJlYW1MaXN0OjpsZW5ndGgoKSBj
b25zdAotewotICAgIHJldHVybiBtX3N0cmVhbXMuc2l6ZSgpOwotfQotCi1QYXNzUmVmUHRyPE1l
ZGlhU3RyZWFtPiBNZWRpYVN0cmVhbUxpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0Ci17
Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxNZWRpYVN0cmVhbT4gPjo6Y29uc3RfaXRlcmF0
b3IgaSA9IG1fc3RyZWFtcy5iZWdpbigpOwotICAgIGZvciAodW5zaWduZWQgaiA9IDA7IGkgIT0g
bV9zdHJlYW1zLmVuZCgpOyArK2ksICsraikgewotICAgICAgICBpZiAoaiA9PSBpbmRleCkKLSAg
ICAgICAgICAgIHJldHVybiBpLT5zZWNvbmQ7Ci0gICAgfQotICAgIHJldHVybiBQYXNzUmVmUHRy
PE1lZGlhU3RyZWFtPigpOwotfQotCi12b2lkIE1lZGlhU3RyZWFtTGlzdDo6YWRkKFBhc3NSZWZQ
dHI8TWVkaWFTdHJlYW0+IHN0cmVhbSkKLXsKLSAgICBSZWZQdHI8TWVkaWFTdHJlYW0+IHMgPSBz
dHJlYW07Ci0gICAgQVNTRVJUKCFjb250YWlucyhzKSk7Ci0gICAgbV9zdHJlYW1zLmFkZChzLT5s
YWJlbCgpLCBzKTsKLX0KLQotdm9pZCBNZWRpYVN0cmVhbUxpc3Q6OnJlbW92ZShQYXNzUmVmUHRy
PE1lZGlhU3RyZWFtPiBzdHJlYW0pCi17Ci0gICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBzID0gc3Ry
ZWFtOwotICAgIEFTU0VSVChjb250YWlucyhzKSk7Ci0gICAgbV9zdHJlYW1zLnJlbW92ZShzLT5s
YWJlbCgpKTsKLX0KLQotYm9vbCBNZWRpYVN0cmVhbUxpc3Q6OmNvbnRhaW5zKFBhc3NSZWZQdHI8
TWVkaWFTdHJlYW0+IHN0cmVhbSkgY29uc3QKLXsKLSAgICBSZWZQdHI8TWVkaWFTdHJlYW0+IHMg
PSBzdHJlYW07Ci0gICAgcmV0dXJuIG1fc3RyZWFtcy5jb250YWlucyhzLT5sYWJlbCgpKTsKLX0K
LQotYm9vbCBNZWRpYVN0cmVhbUxpc3Q6OmNvbnRhaW5zKGNvbnN0IFN0cmluZyYgbGFiZWwpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIG1fc3RyZWFtcy5jb250YWlucyhsYWJlbCk7Ci19Ci0KLVBhc3NS
ZWZQdHI8TWVkaWFTdHJlYW0+IE1lZGlhU3RyZWFtTGlzdDo6Z2V0KGNvbnN0IFN0cmluZyYgbGFi
ZWwpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc3RyZWFtcy5nZXQobGFiZWwpOwotfQotCi0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVkaWFTdHJlYW1MaXN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTWVkaWFTdHJlYW1MaXN0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDczMjBmZGQuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lZGlhU3RyZWFt
TGlzdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
Ci0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lm
bmRlZiBNZWRpYVN0cmVhbUxpc3RfaAotI2RlZmluZSBNZWRpYVN0cmVhbUxpc3RfaAotCi0jaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCi0jaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLWNsYXNzIE1lZGlhU3RyZWFtTGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPE1l
ZGlhU3RyZWFtTGlzdD4gewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhU3Ry
ZWFtTGlzdD4gY3JlYXRlKCk7Ci0gICAgdmlydHVhbCB+TWVkaWFTdHJlYW1MaXN0KCk7Ci0KLSAg
ICAvLyBET00gbWV0aG9kcyAmIGF0dHJpYnV0ZXMgZm9yIE1lZGlhU3RyZWFtTGlzdAotICAgIHVu
c2lnbmVkIGxlbmd0aCgpIGNvbnN0OwotICAgIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IGl0ZW0o
dW5zaWduZWQgaW5kZXgpIGNvbnN0OwotCi0gICAgLy8gTGlzdCBtYW5pcHVsYXRpb24KLSAgICB2
b2lkIGFkZChQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPik7Ci0gICAgdm9pZCByZW1vdmUoUGFzc1Jl
ZlB0cjxNZWRpYVN0cmVhbT4pOwotICAgIGJvb2wgY29udGFpbnMoUGFzc1JlZlB0cjxNZWRpYVN0
cmVhbT4pIGNvbnN0OwotICAgIGJvb2wgY29udGFpbnMoY29uc3QgU3RyaW5nJiBsYWJlbCkgY29u
c3Q7Ci0gICAgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gZ2V0KGNvbnN0IFN0cmluZyYgbGFiZWwp
IGNvbnN0OwotCi1wcml2YXRlOgotICAgIE1lZGlhU3RyZWFtTGlzdCgpOwotCi0gICAgSGFzaE1h
cDxTdHJpbmcsIFJlZlB0cjxNZWRpYVN0cmVhbT4gPiBtX3N0cmVhbXM7Ci19OwotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jZW5k
aWYgLy8gTWVkaWFTdHJlYW1MaXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9N
ZWRpYVN0cmVhbUxpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL01lZGlhU3RyZWFtTGlzdC5p
ZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhZDc3YTkuLjAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL01lZGlhU3RyZWFtTGlzdC5pZGwKKysrIC9kZXYvbnVsbApAQCAt
MSwzNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
LSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1tb2R1bGUgY29yZSB7Ci0KLSAgICBpbnRlcmZh
Y2UgWwotICAgICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCi0gICAgICAgIEhhc0luZGV4
R2V0dGVyCi0gICAgXSBNZWRpYVN0cmVhbUxpc3QgewotICAgICAgICBNZWRpYVN0cmVhbSBpdGVt
KGluIFtJc0luZGV4XSB1bnNpZ25lZCBsb25nIGluZGV4KTsKLQotICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7Ci0gICAgfTsKLQotfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL01lZGlhU3RyZWFtVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL01lZGlhU3RyZWFtVHJhY2suY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBi
ZTRjYmY3Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZWRpYVN0cmVhbVRyYWNr
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwot
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi0gKiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLSAqIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCi0KLSNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVBhc3NSZWZQdHI8TWVk
aWFTdHJlYW1UcmFjaz4gTWVkaWFTdHJlYW1UcmFjazo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgaWQs
IGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiBsYWJlbCkKLXsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IE1lZGlhU3RyZWFtVHJhY2soaWQsIGtpbmQsIGxhYmVsKSk7Ci19Ci0KLU1l
ZGlhU3RyZWFtVHJhY2s6Ok1lZGlhU3RyZWFtVHJhY2soY29uc3QgU3RyaW5nJiBpZCwgY29uc3Qg
U3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIGxhYmVsKQotICAgIDogbV9pZChpZCkKLSAgICAs
IG1fa2luZChraW5kKQotICAgICwgbV9sYWJlbChsYWJlbCkKLSAgICAsIG1fZW5hYmxlZCh0cnVl
KQotewotfQotCi1NZWRpYVN0cmVhbVRyYWNrOjp+TWVkaWFTdHJlYW1UcmFjaygpCi17Ci19Ci0K
LWNvbnN0IFN0cmluZyYgTWVkaWFTdHJlYW1UcmFjazo6a2luZCgpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIG1fa2luZDsKLX0KLQotY29uc3QgU3RyaW5nJiBNZWRpYVN0cmVhbVRyYWNrOjpsYWJlbCgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbGFiZWw7Ci19Ci0KLWJvb2wgTWVkaWFTdHJlYW1UcmFj
azo6ZW5hYmxlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZW5hYmxlZDsKLX0KLQotdm9pZCBN
ZWRpYVN0cmVhbVRyYWNrOjpzZXRFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX2VuYWJs
ZWQgPSBlbmFibGVkOwotCi0gICAgaWYgKG1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKCkpCi0g
ICAgICAgIG1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKCktPnNldE1lZGlhU3RyZWFtVHJhY2tF
bmFibGVkKG1faWQsIGVuYWJsZWQpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNl
bmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL01lZGlhU3RyZWFtVHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZWRpYVN0cmVhbVRy
YWNrLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyMjJkYzcuLjAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL01lZGlhU3RyZWFtVHJhY2suaAorKysgL2Rldi9udWxsCkBA
IC0xLDY1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMKLSAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgTWVkaWFTdHJlYW1UcmFja19o
Ci0jZGVmaW5lIE1lZGlhU3RyZWFtVHJhY2tfaAotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
LQotI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1GcmFt
ZUNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLWNsYXNzIE1lZGlhU3RyZWFtVHJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRp
YVN0cmVhbVRyYWNrPiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgTWVkaWFTdHJl
YW1GcmFtZUNvbnRyb2xsZXI6OkdlbmVyaWNDbGllbnQgewotcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGlkLCBjb25z
dCBTdHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYgbGFiZWwpOwotICAgIHZpcnR1YWwgfk1lZGlh
U3RyZWFtVHJhY2soKTsKLQotICAgIGNvbnN0IFN0cmluZyYga2luZCgpIGNvbnN0OwotICAgIGNv
bnN0IFN0cmluZyYgbGFiZWwoKSBjb25zdDsKLQotICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0Owot
ICAgIHZvaWQgc2V0RW5hYmxlZChib29sIGVuYWJsZWQpOwotCi1wcml2YXRlOgotICAgIE1lZGlh
U3RyZWFtVHJhY2soY29uc3QgU3RyaW5nJiBpZCwgY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBT
dHJpbmcmIGxhYmVsKTsKLQotICAgIFN0cmluZyBtX2lkOwotICAgIFN0cmluZyBtX2tpbmQ7Ci0g
ICAgU3RyaW5nIG1fbGFiZWw7Ci0gICAgYm9vbCBtX2VuYWJsZWQ7Ci19OwotCi10eXBlZGVmIFZl
Y3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4gPiBUcmFja1ZlY3RvcjsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2VuZGlm
IC8vIE1lZGlhU3RyZWFtVHJhY2tfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01l
ZGlhU3RyZWFtVHJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL01lZGlhU3RyZWFtVHJhY2su
aWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOTg3NWFhLi4wMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9NZWRpYVN0cmVhbVRyYWNrLmlkbAorKysgL2Rldi9udWxsCkBA
IC0xLDM1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMKLSAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLW1vZHVsZSBjb3JlIHsKLQotICAgIGludGVy
ZmFjZSBbCi0gICAgICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKLSAgICBdIE1lZGlhU3Ry
ZWFtVHJhY2sgewotICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBraW5kOwotICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBsYWJlbDsKLSAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBib29sZWFuIGVuYWJsZWQ7Ci0gICAgfTsKLQotfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL01lZGlhU3RyZWFtVHJhY2tMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9NZWRpYVN0cmVhbVRyYWNrTGlzdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDZmY2M2N2MuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lZGlhU3RyZWFtVHJh
Y2tMaXN0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi0g
KiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLSAqIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrTGlzdC5oIgot
Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1QYXNz
UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tMaXN0PiBNZWRpYVN0cmVhbVRyYWNrTGlzdDo6Y3JlYXRl
KGNvbnN0IFRyYWNrVmVjdG9yJiB0cmFja3MpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBN
ZWRpYVN0cmVhbVRyYWNrTGlzdCh0cmFja3MpKTsKLX0KLQotTWVkaWFTdHJlYW1UcmFja0xpc3Q6
Ok1lZGlhU3RyZWFtVHJhY2tMaXN0KGNvbnN0IFRyYWNrVmVjdG9yJiB0cmFja3MpCi0gICAgOiBt
X3RyYWNrcyh0cmFja3MpCi17Ci19Ci0KLU1lZGlhU3RyZWFtVHJhY2tMaXN0Ojp+TWVkaWFTdHJl
YW1UcmFja0xpc3QoKQotewotfQotCi11bnNpZ25lZCBNZWRpYVN0cmVhbVRyYWNrTGlzdDo6bGVu
Z3RoKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV90cmFja3Muc2l6ZSgpOwotfQotCi1QYXNzUmVm
UHRyPE1lZGlhU3RyZWFtVHJhY2s+IE1lZGlhU3RyZWFtVHJhY2tMaXN0OjppdGVtKHVuc2lnbmVk
IGluZGV4KSBjb25zdAotewotICAgIGlmIChpbmRleCA8IG1fdHJhY2tzLnNpemUoKSkKLSAgICAg
ICAgcmV0dXJuIG1fdHJhY2tzLmF0KGluZGV4KTsKLSAgICBlbHNlCi0gICAgICAgIHJldHVybiBQ
YXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+KCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTWVkaWFTdHJlYW1UcmFja0xpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9N
ZWRpYVN0cmVhbVRyYWNrTGlzdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZWZl
NmFlLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZWRpYVN0cmVhbVRyYWNrTGlz
dC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0g
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRl
ZiBNZWRpYVN0cmVhbVRyYWNrTGlzdF9oCi0jZGVmaW5lIE1lZGlhU3RyZWFtVHJhY2tMaXN0X2gK
LQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNr
LmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1j
bGFzcyBNZWRpYVN0cmVhbVRyYWNrTGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFt
VHJhY2tMaXN0PiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1U
cmFja0xpc3Q+IGNyZWF0ZShjb25zdCBUcmFja1ZlY3RvciYgbV90cmFja3MpOwotICAgIHZpcnR1
YWwgfk1lZGlhU3RyZWFtVHJhY2tMaXN0KCk7Ci0KLSAgICAvLyBET00gbWV0aG9kcyAmIGF0dHJp
YnV0ZXMgZm9yIE1lZGlhU3RyZWFtVHJhY2tMaXN0Ci0gICAgdW5zaWduZWQgbGVuZ3RoKCkgY29u
c3Q7Ci0gICAgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiBpdGVtKHVuc2lnbmVkIGluZGV4
KSBjb25zdDsKLQotICAgIHZvaWQgYXNzb2NpYXRlU3RyZWFtKGNvbnN0IFN0cmluZyYgbGFiZWwp
IHsgbV9hc3NvY2lhdGVkU3RyZWFtTGFiZWwgPSBsYWJlbDsgfQotCi1wcml2YXRlOgotICAgIE1l
ZGlhU3RyZWFtVHJhY2tMaXN0KGNvbnN0IFRyYWNrVmVjdG9yJiBtX3RyYWNrcyk7Ci0KLSAgICBU
cmFja1ZlY3RvciBtX3RyYWNrczsKLSAgICBTdHJpbmcgbV9hc3NvY2lhdGVkU3RyZWFtTGFiZWw7
Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFf
U1RSRUFNKQotCi0jZW5kaWYgLy8gTWVkaWFTdHJlYW1UcmFja0xpc3RfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL01lZGlhU3RyZWFtVHJhY2tMaXN0LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9NZWRpYVN0cmVhbVRyYWNrTGlzdC5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDNlM2VjYTEuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lZGlhU3Ry
ZWFtVHJhY2tMaXN0LmlkbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OCi0gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLSAqIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLW1vZHVsZSBjb3JlIHsKLQotICAgIGludGVyZmFjZSBbCi0gICAgICAgIENvbmRpdGlv
bmFsPU1FRElBX1NUUkVBTSwKLSAgICAgICAgSGFzSW5kZXhHZXR0ZXIKLSAgICBdIE1lZGlhU3Ry
ZWFtVHJhY2tMaXN0IHsKLSAgICAgICAgTWVkaWFTdHJlYW1UcmFjayBpdGVtKGluIFtJc0luZGV4
XSB1bnNpZ25lZCBsb25nIGluZGV4KTsKLQotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgbG9uZyBsZW5ndGg7Ci0gICAgfTsKLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCmluZGV4IGE4ODJiZWYuLjM5YWNkMzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTM5LDggKzM5
LDYgQEAKICNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQu
aCIKICNpbmNsdWRlICJGaWxlVGhyZWFkLmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW0uaCIKLSNp
bmNsdWRlICJNZWRpYVN0cmVhbVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIK
ICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5o
IgpAQCAtNTYsNiArNTQsMTEgQEAKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCisjaW5j
bHVkZSAiTWVkaWFTdHJlYW1SZWdpc3RyeS5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgUHJvY2Vzc01lc3NhZ2VzU29vblRhc2sgOiBwdWJsaWMgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6VGFzayB7CkBAIC0xMzgsOSArMTQxLDEwIEBAIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6On5TY3JpcHRFeGVjdXRpb25Db250ZXh0KCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKKyAgICBNZWRpYVN0cmVhbVJlZ2lzdHJ5JiByZWdpc3RyeSA9IG1lZGlhU3Ry
ZWFtUmVnaXN0cnkoKTsKICAgICBIYXNoU2V0PFN0cmluZz46Oml0ZXJhdG9yIHB1YmxpY1N0cmVh
bVVSTHNFbmQgPSBtX3B1YmxpY1N0cmVhbVVSTHMuZW5kKCk7CiAgICAgZm9yIChIYXNoU2V0PFN0
cmluZz46Oml0ZXJhdG9yIGl0ZXIgPSBtX3B1YmxpY1N0cmVhbVVSTHMuYmVnaW4oKTsgaXRlciAh
PSBwdWJsaWNTdHJlYW1VUkxzRW5kOyArK2l0ZXIpCi0gICAgICAgIE1lZGlhU3RyZWFtUmVnaXN0
cnk6OnJlZ2lzdHJ5KCkudW5yZWdpc3Rlck1lZGlhU3RyZWFtVVJMKEtVUkwoUGFyc2VkVVJMU3Ry
aW5nLCAqaXRlcikpOworICAgICAgICByZWdpc3RyeS51bmFzc29jaWF0ZVVSTChLVVJMKFBhcnNl
ZFVSTFN0cmluZywgKml0ZXIpKTsKICNlbmRpZgogfQogCkBAIC0zOTYsNyArNDAwLDcgQEAgS1VS
TCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpjcmVhdGVQdWJsaWNCbG9iVVJMKE1lZGlhU3RyZWFt
KiBzdHJlYW0pCiAKICAgICAvLyBTaW5jZSBXZWJXb3JrZXJzIGNhbm5vdCBvYnRhaW4gU3RyZWFt
IG9iamVjdHMsIHdlIHNob3VsZCBiZSBvbiB0aGUgbWFpbiB0aHJlYWQuCiAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKLSAgICBNZWRpYVN0cmVhbVJlZ2lzdHJ5OjpyZWdpc3RyeSgpLnJlZ2lz
dGVyTWVkaWFTdHJlYW1VUkwocHVibGljVVJMLCBzdHJlYW0pOworICAgIG1lZGlhU3RyZWFtUmVn
aXN0cnkoKS5hc3NvY2lhdGVVUkwocHVibGljVVJMLCBzdHJlYW0tPmlkKCkpOwogICAgIG1fcHVi
bGljU3RyZWFtVVJMcy5hZGQocHVibGljVVJMLnN0cmluZygpKTsKICAgICByZXR1cm4gcHVibGlj
VVJMOwogfQpAQCAtNDI1LDcgKzQyOSw3IEBAIHZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
cmV2b2tlUHVibGljQmxvYlVSTChjb25zdCBLVVJMJiB1cmwpCiAgICAgICAgIC8vIEZJWE1FOiBt
YWtlIHN1cmUgb2YgdGhpcyBhc3NlcnRpb24gYmVsb3cuIFJhaXNlIGEgc3BlYyBxdWVzdGlvbiBp
ZiByZXF1aXJlZC4KICAgICAgICAgLy8gU2luY2UgV2ViV29ya2VycyBjYW5ub3Qgb2J0YWluIFN0
cmVhbSBvYmplY3RzLCB3ZSBzaG91bGQgYmUgb24gdGhlIG1haW4gdGhyZWFkLgogICAgICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgICAgICBNZWRpYVN0cmVhbVJlZ2lzdHJ5OjpyZWdp
c3RyeSgpLnVucmVnaXN0ZXJNZWRpYVN0cmVhbVVSTCh1cmwpOworICAgICAgICBtZWRpYVN0cmVh
bVJlZ2lzdHJ5KCkudW5hc3NvY2lhdGVVUkwodXJsKTsKICAgICAgICAgbV9wdWJsaWNTdHJlYW1V
UkxzLnJlbW92ZSh1cmwuc3RyaW5nKCkpOwogICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoTUVESUFf
U1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTG9jYWxNZWRp
YVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9Mb2NhbE1lZGlhU3RyZWFt
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NjNmNzEzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVhbS5j
cHAKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEVyaWNzc29uIEFC
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkxvY2FsTWVkaWFTdHJlYW0uaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisKKyNpbmNsdWRlICJNZWRpYVN0cmVhbU1hbmFnZXIuaCIKKyNpbmNsdWRlICJVVUlELmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxMb2NhbE1lZGlhU3RyZWFtPiBMb2Nh
bE1lZGlhU3RyZWFtOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBzdHJlYW1JZCwgY29uc3QgTWVkaWFT
dHJlYW1Db21wb25lbnRMaXN0JiBjb21wb25lbnRzLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTG9jYWxNZWRpYVN0cmVhbShzdHJl
YW1JZCwgY29tcG9uZW50cywgY29udGV4dCkpOworfQorCitMb2NhbE1lZGlhU3RyZWFtOjpMb2Nh
bE1lZGlhU3RyZWFtKGNvbnN0IFN0cmluZyYgc3RyZWFtSWQsIGNvbnN0IE1lZGlhU3RyZWFtQ29t
cG9uZW50TGlzdCYgY29tcG9uZW50cywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkK
KyAgICA6IE1lZGlhU3RyZWFtKHN0cmVhbUlkLCBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCks
IGNvbXBvbmVudHMsIGNvbnRleHQpCisgICAgLCBtX3N0b3BUaW1lcih0aGlzLCAmTG9jYWxNZWRp
YVN0cmVhbTo6c3RvcFRpbWVyRmlyZWQpCit7Cit9CisKK3ZvaWQgTG9jYWxNZWRpYVN0cmVhbTo6
c3RvcCgpCit7CisgICAgaWYgKCFtX3N0b3BUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX3N0
b3BUaW1lci5zdGFydE9uZVNob3QoMCk7Cit9CisKK3ZvaWQgTG9jYWxNZWRpYVN0cmVhbTo6c3Rv
cFRpbWVyRmlyZWQoVGltZXI8TG9jYWxNZWRpYVN0cmVhbT4qKQoreworICAgIGlmIChyZWFkeVN0
YXRlKCkgPT0gRU5ERUQpCisgICAgICAgIHJldHVybjsKKworICAgIG1lZGlhU3RyZWFtTWFuYWdl
cigpLnN0b3BMb2NhbE1lZGlhU3RyZWFtKG1fc3RyZWFtSWQpOworICAgIHN0cmVhbUVuZGVkKCk7
Cit9CisKK0xvY2FsTWVkaWFTdHJlYW06On5Mb2NhbE1lZGlhU3RyZWFtKCkKK3sKK30KKworTG9j
YWxNZWRpYVN0cmVhbSogTG9jYWxNZWRpYVN0cmVhbTo6dG9Mb2NhbE1lZGlhU3RyZWFtKCkKK3sK
KyAgICByZXR1cm4gdGhpczsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21lZGlh
c3RyZWFtL0xvY2FsTWVkaWFTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL0xv
Y2FsTWVkaWFTdHJlYW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYWE0
MmYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTG9jYWxN
ZWRpYVN0cmVhbS5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBF
cmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTG9j
YWxNZWRpYVN0cmVhbV9oCisjZGVmaW5lIExvY2FsTWVkaWFTdHJlYW1faAorCisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCisjaW5jbHVkZSAiVGlt
ZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBMb2NhbE1lZGlhU3RyZWFtIDog
cHVibGljIE1lZGlhU3RyZWFtIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxMb2Nh
bE1lZGlhU3RyZWFtPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBzdHJlYW1JZCwgY29uc3QgTWVkaWFT
dHJlYW1Db21wb25lbnRMaXN0JiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworICAgIHZpcnR1
YWwgfkxvY2FsTWVkaWFTdHJlYW0oKTsKKworICAgIHZvaWQgc3RvcCgpOworCisgICAgLy8gRXZl
bnRUYXJnZXQuCisgICAgdmlydHVhbCBMb2NhbE1lZGlhU3RyZWFtKiB0b0xvY2FsTWVkaWFTdHJl
YW0oKTsKKworcHJpdmF0ZToKKyAgICBMb2NhbE1lZGlhU3RyZWFtKGNvbnN0IFN0cmluZyYgc3Ry
ZWFtSWQsIGNvbnN0IE1lZGlhU3RyZWFtQ29tcG9uZW50TGlzdCYsIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqKTsKKworICAgIHZvaWQgc3RvcFRpbWVyRmlyZWQoVGltZXI8TG9jYWxNZWRpYVN0cmVh
bT4qKTsKKworICAgIFRpbWVyPExvY2FsTWVkaWFTdHJlYW0+IG1fc3RvcFRpbWVyOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworI2VuZGlmIC8vIExvY2FsTWVkaWFTdHJlYW1faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVhbS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9tZWRp
YXN0cmVhbS9Mb2NhbE1lZGlhU3RyZWFtLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4xNWEyYzQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbWVkaWFz
dHJlYW0vTG9jYWxNZWRpYVN0cmVhbS5pZGwKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04K
KyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworbW9kdWxlIGNvcmUgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9
TUVESUFfU1RSRUFNLAorICAgICAgICBHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciwKKyAgICAgICAg
RXZlbnRUYXJnZXQsCisgICAgICAgIEdlbmVyYXRlVG9KUworICAgIF0gTG9jYWxNZWRpYVN0cmVh
bSA6IE1lZGlhU3RyZWFtIHsKKyAgICAgICAgdm9pZCBzdG9wKCk7CisgICAgfTsKKworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwIGIvU291
cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjQ3NWQ2YzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKQEAgLTAsMCArMSwxMTYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbS5oIgor
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVk
ZSAiTWVkaWFTdHJlYW1SZWdpc3RyeS5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBN
ZWRpYVN0cmVhbTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgc3RyZWFtSWQsIGNvbnN0IFN0cmluZyYg
bGFiZWwsIGNvbnN0IE1lZGlhU3RyZWFtQ29tcG9uZW50TGlzdCYgY29tcG9uZW50cywgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1l
ZGlhU3RyZWFtKHN0cmVhbUlkLCBsYWJlbCwgY29tcG9uZW50cywgY29udGV4dCkpOworfQorCitN
ZWRpYVN0cmVhbTo6TWVkaWFTdHJlYW0oY29uc3QgU3RyaW5nJiBzdHJlYW1JZCwgY29uc3QgU3Ry
aW5nJiBsYWJlbCwgY29uc3QgTWVkaWFTdHJlYW1Db21wb25lbnRMaXN0JiBjb21wb25lbnRzLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorICAgIDogbV9zdHJlYW1JZChzdHJlYW1J
ZCkKKyAgICAsIG1fbGFiZWwobGFiZWwpCisgICAgLCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
Y29udGV4dCkKK3sKKyAgICBSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiBzdHJlYW1EZXNj
cmlwdG9yID0gTWVkaWFTdHJlYW1EZXNjcmlwdG9yOjpjcmVhdGUodGhpcywgY29udGV4dC0+c2Vj
dXJpdHlPcmlnaW4oKSwgY29tcG9uZW50cyk7CisgICAgbWVkaWFTdHJlYW1SZWdpc3RyeSgpLnJl
Z2lzdGVyTWVkaWFTdHJlYW0obV9zdHJlYW1JZCwgc3RyZWFtRGVzY3JpcHRvci5yZWxlYXNlKCkp
OworCisgICAgTWVkaWFTdHJlYW1UcmFja1ZlY3RvciB0cmFja1ZlY3RvcjsKKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgY29tcG9uZW50cy5zaXplKCk7IGkrKykgeworICAgICAgICBTdHJp
bmcga2luZCA9IGNvbXBvbmVudHNbaV0tPnR5cGUgPT0gTWVkaWFTdHJlYW1Db21wb25lbnQ6OlR5
cGVBdWRpbyA/ICJhdWRpbyIgOiAidmlkZW8iOworICAgICAgICB0cmFja1ZlY3Rvci5hcHBlbmQo
TWVkaWFTdHJlYW1UcmFjazo6Y3JlYXRlKHN0cmVhbUlkLCBpLCBraW5kLCBjb21wb25lbnRzW2ld
LT5uYW1lLCBjb21wb25lbnRzW2ldLT5lbmFibGVkKSk7CisgICAgfQorCisgICAgbV90cmFja3Mg
PSBNZWRpYVN0cmVhbVRyYWNrTGlzdDo6Y3JlYXRlKHRyYWNrVmVjdG9yKTsKK30KKworTWVkaWFT
dHJlYW06On5NZWRpYVN0cmVhbSgpCit7CisgICAgbWVkaWFTdHJlYW1SZWdpc3RyeSgpLnVucmVn
aXN0ZXJNZWRpYVN0cmVhbShtX3N0cmVhbUlkKTsKK30KKworTWVkaWFTdHJlYW06OlJlYWR5U3Rh
dGUgTWVkaWFTdHJlYW06OnJlYWR5U3RhdGUoKSBjb25zdAoreworICAgIEFTU0VSVChkZXNjcmlw
dG9yKCkpOworICAgIHJldHVybiBkZXNjcmlwdG9yKCktPmVuZGVkID8gRU5ERUQgOiBMSVZFOwor
fQorCitNZWRpYVN0cmVhbSogTWVkaWFTdHJlYW06OnRvTWVkaWFTdHJlYW0oKQoreworICAgIHJl
dHVybiB0aGlzOworfQorCit2b2lkIE1lZGlhU3RyZWFtOjpzdHJlYW1FbmRlZCgpCit7CisgICAg
aWYgKHJlYWR5U3RhdGUoKSA9PSBFTkRFRCkKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJU
KGRlc2NyaXB0b3IoKSk7CisgICAgZGVzY3JpcHRvcigpLT5lbmRlZCA9IHRydWU7CisKKyAgICBk
aXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVuZGVkRXZlbnQsIGZhbHNl
LCBmYWxzZSkpOworfQorCitTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBNZWRpYVN0cmVhbTo6c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2NyaXB0RXhlY3V0
aW9uQ29udGV4dDsKK30KKworTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiBNZWRpYVN0cmVhbTo6ZGVz
Y3JpcHRvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1lZGlhU3RyZWFtUmVnaXN0cnkoKS5sb29r
dXBNZWRpYVN0cmVhbURlc2NyaXB0b3IobV9zdHJlYW1JZCkuZ2V0KCk7Cit9CisKK0V2ZW50VGFy
Z2V0RGF0YSogTWVkaWFTdHJlYW06OmV2ZW50VGFyZ2V0RGF0YSgpCit7CisgICAgcmV0dXJuICZt
X2V2ZW50VGFyZ2V0RGF0YTsKK30KKworRXZlbnRUYXJnZXREYXRhKiBNZWRpYVN0cmVhbTo6ZW5z
dXJlRXZlbnRUYXJnZXREYXRhKCkKK3sKKyAgICByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOwor
fQorCitzaXplX3QgZmluZE1lZGlhU3RyZWFtSW5WZWN0b3IoY29uc3QgTWVkaWFTdHJlYW1WZWN0
b3ImIHN0cmVhbVZlY3RvciwgY29uc3QgU3RyaW5nJiBzdHJlYW1JZCkKK3sKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHN0cmVhbVZlY3Rvci5zaXplKCk7IGkrKykKKyAgICAgICAgaWYgKHN0
cmVhbVZlY3RvcltpXS0+aWQoKSA9PSBzdHJlYW1JZCkKKyAgICAgICAgICAgIHJldHVybiBpOwor
ICAgIHJldHVybiBub3RGb3VuZDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2YjI5NmIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5o
CkBAIC0wLDAgKzEsMTAzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgRXJpY3Nzb24gQUIu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lZGlhU3RyZWFtX2gK
KyNkZWZpbmUgTWVkaWFTdHJlYW1faAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2lu
Y2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1Db21wb25lbnQuaCIK
KyNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrTGlzdC5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitzdHJ1Y3QgTWVkaWFTdHJlYW1EZXNjcmlw
dG9yOworCitjbGFzcyBNZWRpYVN0cmVhbSA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFt
PiwgcHVibGljIEV2ZW50VGFyZ2V0IHsKK3B1YmxpYzoKKyAgICAvLyBNdXN0IG1hdGNoIHRoZSBj
b25zdGFudHMgaW4gdGhlIC5pZGwgZmlsZS4KKyAgICBlbnVtIFJlYWR5U3RhdGUgeworICAgICAg
ICBMSVZFID0gMSwKKyAgICAgICAgRU5ERUQgPSAyCisgICAgfTsKKworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPE1lZGlhU3RyZWFtPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBzdHJlYW1JZCwgY29uc3Qg
U3RyaW5nJiBsYWJlbCwgY29uc3QgTWVkaWFTdHJlYW1Db21wb25lbnRMaXN0JiwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCopOworICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtKCk7CisKKyAgICBTdHJp
bmcgaWQoKSBjb25zdCB7IHJldHVybiBtX3N0cmVhbUlkOyB9CisKKyAgICBERUZJTkVfQVRUUklC
VVRFX0VWRU5UX0xJU1RFTkVSKGVuZGVkKTsKKworICAgIFJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgp
IGNvbnN0OworICAgIGNvbnN0IFN0cmluZyYgbGFiZWwoKSBjb25zdCB7IHJldHVybiBtX2xhYmVs
OyB9CisKKyAgICBNZWRpYVN0cmVhbVRyYWNrTGlzdCogdHJhY2tzKCkgeyByZXR1cm4gbV90cmFj
a3MuZ2V0KCk7IH0KKworICAgIHZvaWQgc3RyZWFtRW5kZWQoKTsKKworICAgIC8vIEV2ZW50VGFy
Z2V0IGltcGxlbWVudGF0aW9uLgorICAgIHZpcnR1YWwgTWVkaWFTdHJlYW0qIHRvTWVkaWFTdHJl
YW0oKTsKKyAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSBjb25zdDsKKworICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW0+Ojpy
ZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYVN0cmVhbT46OmRlcmVmOworCitwcm90ZWN0
ZWQ6CisgICAgTWVkaWFTdHJlYW0oY29uc3QgU3RyaW5nJiBzdHJlYW1JZCwgY29uc3QgU3RyaW5n
JiBsYWJlbCwgY29uc3QgTWVkaWFTdHJlYW1Db21wb25lbnRMaXN0JiwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCopOworCisgICAgLy8gRXZlbnRUYXJnZXQgaW1wbGVtZW50YXRpb24uCisgICAgdmly
dHVhbCBFdmVudFRhcmdldERhdGEqIGV2ZW50VGFyZ2V0RGF0YSgpOworICAgIHZpcnR1YWwgRXZl
bnRUYXJnZXREYXRhKiBlbnN1cmVFdmVudFRhcmdldERhdGEoKTsKKworICAgIFN0cmluZyBtX3N0
cmVhbUlkOworCitwcml2YXRlOgorICAgIE1lZGlhU3RyZWFtRGVzY3JpcHRvciogZGVzY3JpcHRv
cigpIGNvbnN0OworCisgICAgLy8gRXZlbnRUYXJnZXQgaW1wbGVtZW50YXRpb24uCisgICAgdmly
dHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgeyByZWYoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBk
ZXJlZkV2ZW50VGFyZ2V0KCkgeyBkZXJlZigpOyB9CisKKyAgICBFdmVudFRhcmdldERhdGEgbV9l
dmVudFRhcmdldERhdGE7CisKKyAgICBTdHJpbmcgbV9sYWJlbDsKKyAgICBSZWZQdHI8TWVkaWFT
dHJlYW1UcmFja0xpc3Q+IG1fdHJhY2tzOworCisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OworfTsKKwordHlwZWRlZiBWZWN0b3I8UmVmUHRyPE1l
ZGlhU3RyZWFtPiA+IE1lZGlhU3RyZWFtVmVjdG9yOworCitzaXplX3QgZmluZE1lZGlhU3RyZWFt
SW5WZWN0b3IoY29uc3QgTWVkaWFTdHJlYW1WZWN0b3ImLCBjb25zdCBTdHJpbmcmIHN0cmVhbUlk
KTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworI2VuZGlmIC8vIE1lZGlhU3RyZWFtX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43
ZmY5NTNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW0uaWRsCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBjb3Jl
IHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwK
KyAgICAgICAgRXZlbnRUYXJnZXQKKyAgICBdIE1lZGlhU3RyZWFtIHsKKyAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyBsYWJlbDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IE1lZGlhU3RyZWFtVHJhY2tMaXN0IHRyYWNrczsKKworICAgICAgICAvLyBGSVhNRTogaW1wbGVt
ZW50IHRoZSByZWNvcmQgbWV0aG9kIHdoZW4gTWVkaWFTdHJlYW1SZWNvcmRlciBpcyBhdmFpbGFi
bGUuCisKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTElWRSA9IDE7CisgICAgICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IEVOREVEID0gMjsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIHNob3J0IHJlYWR5U3RhdGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBF
dmVudExpc3RlbmVyIG9uZW5kZWQ7CisKKyAgICAgICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNl
CisgICAgICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVy
ZSk7CisgICAgICAgIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVu
ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xl
YW4gdXNlQ2FwdHVyZSk7CisgICAgICAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVudCBl
dmVudCkKKyAgICAgICAgICAgIHJhaXNlcyhFdmVudEV4Y2VwdGlvbik7CisgICAgfTsKKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Db21wb25l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ29tcG9uZW50LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDVkNGFjNQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ29tcG9uZW50LmgK
QEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBFcmljc3NvbiBBQi4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0
aGUgbmFtZSBvZiBFcmljc3NvbiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAq
ICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lZGlhU3RyZWFtQ29tcG9uZW50X2gKKyNk
ZWZpbmUgTWVkaWFTdHJlYW1Db21wb25lbnRfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3Ry
dWN0IE1lZGlhU3RyZWFtQ29tcG9uZW50IDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1D
b21wb25lbnQ+IHsKK3B1YmxpYzoKKyAgICBlbnVtIFR5cGUgeworICAgICAgICBUeXBlQXVkaW8g
PSAxIDw8IDAsCisgICAgICAgIFR5cGVWaWRlbyA9IDEgPDwgMQorICAgIH07CisKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbUNvbXBvbmVudD4gY3JlYXRlKGNvbnN0IFN0cmluZyYg
aWQsIFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGVuYWJsZWQgPSB0cnVlKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYVN0cmVhbUNvbXBvbmVudChp
ZCwgdHlwZSwgbmFtZSwgZW5hYmxlZCkpOworICAgIH0KKworICAgIFN0cmluZyBpZDsKKyAgICBU
eXBlIHR5cGU7CisgICAgU3RyaW5nIG5hbWU7CisgICAgYm9vbCBlbmFibGVkOworCitwcml2YXRl
OgorICAgIE1lZGlhU3RyZWFtQ29tcG9uZW50KGNvbnN0IFN0cmluZyYgaWRBcmcsIFR5cGUgdHlw
ZUFyZywgY29uc3QgU3RyaW5nJiBuYW1lQXJnLCBib29sIGVuYWJsZWRBcmcpCisgICAgICAgIDog
aWQoaWRBcmcpCisgICAgICAgICwgdHlwZSh0eXBlQXJnKQorICAgICAgICAsIG5hbWUobmFtZUFy
ZykKKyAgICAgICAgLCBlbmFibGVkKGVuYWJsZWRBcmcpCisgICAgeyB9Cit9OworCit0eXBlZGVm
IFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1Db21wb25lbnQ+ID4gTWVkaWFTdHJlYW1Db21wb25l
bnRMaXN0OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorCisjZW5kaWYgLy8gTWVkaWFTdHJlYW1Db21wb25lbnRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1FdmVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUV2ZW50LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjVhNzkwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1FdmVudC5jcHAKQEAgLTAsMCArMSw3NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhU3Ry
ZWFtRXZlbnQuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworUGFzc1JlZlB0cjxNZWRpYVN0cmVhbUV2ZW50PiBNZWRpYVN0cmVhbUV2ZW50Ojpj
cmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFTdHJlYW1FdmVudCk7Cit9
CisKK1Bhc3NSZWZQdHI8TWVkaWFTdHJlYW1FdmVudD4gTWVkaWFTdHJlYW1FdmVudDo6Y3JlYXRl
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJs
ZSwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gc3RyZWFtKQoreworICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgTWVkaWFTdHJlYW1FdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIHN0cmVh
bSkpOworfQorCisKK01lZGlhU3RyZWFtRXZlbnQ6Ok1lZGlhU3RyZWFtRXZlbnQoKQoreworfQor
CitNZWRpYVN0cmVhbUV2ZW50OjpNZWRpYVN0cmVhbUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgUGFzc1JlZlB0cjxNZWRpYVN0
cmVhbT4gc3RyZWFtKQorICAgIDogRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlKQor
ICAgICwgbV9zdHJlYW0oc3RyZWFtKQoreworfQorCitNZWRpYVN0cmVhbUV2ZW50Ojp+TWVkaWFT
dHJlYW1FdmVudCgpCit7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1FdmVudDo6aW5pdE1lZGlhU3Ry
ZWFtRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBj
YW5jZWxhYmxlLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0pCit7CisgICAgaWYgKGRp
c3BhdGNoZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW5pdEV2ZW50KHR5cGUsIGNhbkJ1
YmJsZSwgY2FuY2VsYWJsZSk7CisKKyAgICBtX3N0cmVhbSA9IHN0cmVhbTsKK30KKworTWVkaWFT
dHJlYW0qIE1lZGlhU3RyZWFtRXZlbnQ6OnN0cmVhbSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
c3RyZWFtLmdldCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1FdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzMThhMTMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bUV2ZW50LmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZWRpYVN0
cmVhbUV2ZW50X2gKKyNkZWZpbmUgTWVkaWFTdHJlYW1FdmVudF9oCisKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbS5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhU3RyZWFtRXZlbnQgOiBwdWJs
aWMgRXZlbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtRXZlbnQoKTsKKwor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRXZlbnQ+IGNyZWF0ZSgpOworICAgIHN0
YXRpYyBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFBhc3NSZWZQdHI8TWVk
aWFTdHJlYW0+KTsKKworICAgIHZvaWQgaW5pdE1lZGlhU3RyZWFtRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBQYXNzUmVmUHRy
PE1lZGlhU3RyZWFtPik7CisKKyAgICBNZWRpYVN0cmVhbSogc3RyZWFtKCkgY29uc3Q7CisKKyAg
ICAvLyBGcm9tIEV2ZW50VGFyZ2V0LgorICAgIHZpcnR1YWwgYm9vbCBpc01lZGlhU3RyZWFtRXZl
bnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKK3ByaXZhdGU6CisgICAgTWVkaWFTdHJlYW1F
dmVudCgpOworICAgIE1lZGlhU3RyZWFtRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBi
b29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPik7
CisKKyAgICBSZWZQdHI8TWVkaWFTdHJlYW0+IG1fc3RyZWFtOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8v
IE1lZGlhU3RyZWFtRXZlbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbUV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzIw
YjkxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1FdmVudC5pZGwKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGV2
ZW50cyB7CisKKyAgICAvLyBBY2NvcmRpbmcgdG8gdGhlIFdIQVRXRyBzcGVjaWZpY2F0aW9uOgor
ICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsv
bXVsdGlwYWdlL3ZpZGVvLWNvbmZlcmVuY2luZy1hbmQtcGVlci10by1wZWVyLWNvbW11bmljYXRp
b24uaHRtbCNtZWRpYXN0cmVhbWV2ZW50CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0
aW9uYWw9TUVESUFfU1RSRUFNLAorICAgIF0gTWVkaWFTdHJlYW1FdmVudCA6IEV2ZW50IHsKKyAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgTWVkaWFTdHJlYW0gc3RyZWFtOworCisgICAgICAgdm9p
ZCBpbml0TWVkaWFTdHJlYW1FdmVudChpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVd
IERPTVN0cmluZyB0eXBlQXJnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
W09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBib29sZWFuIGNhbkJ1YmJsZUFyZywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1
bHRWYWx1ZV0gYm9vbGVhbiBjYW5jZWxhYmxlQXJnLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBNZWRpYVN0cmVhbSBz
dHJlYW1BcmcpOworICAgIH07CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbUxpc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRl
MTc5YjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbUxpc3QuY3BwCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbUxpc3QuaCIKKworI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxNZWRpYVN0
cmVhbUxpc3Q+IE1lZGlhU3RyZWFtTGlzdDo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IE1lZGlhU3RyZWFtTGlzdCgpKTsKK30KKworTWVkaWFTdHJlYW1MaXN0OjpNZWRpYVN0
cmVhbUxpc3QoKQoreworfQorCitNZWRpYVN0cmVhbUxpc3Q6On5NZWRpYVN0cmVhbUxpc3QoKQor
eworfQorCit1bnNpZ25lZCBNZWRpYVN0cmVhbUxpc3Q6Omxlbmd0aCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fc3RyZWFtcy5zaXplKCk7Cit9CisKK01lZGlhU3RyZWFtKiBNZWRpYVN0cmVhbUxp
c3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3RyZWFtc1tp
bmRleF0uZ2V0KCk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1MaXN0OjphcHBlbmQoUGFzc1JlZlB0
cjxNZWRpYVN0cmVhbT4gc3RyZWFtKQoreworICAgIG1fc3RyZWFtcy5hcHBlbmQoc3RyZWFtKTsK
K30KKwordm9pZCBNZWRpYVN0cmVhbUxpc3Q6OnJlbW92ZShjb25zdCBSZWZQdHI8TWVkaWFTdHJl
YW0+JiBzdHJlYW0pCit7CisgICAgc2l6ZV90IGkgPSBmaW5kTWVkaWFTdHJlYW1JblZlY3Rvciht
X3N0cmVhbXMsIHN0cmVhbS0+aWQoKSk7CisgICAgaWYgKGkgIT0gbm90Rm91bmQpCisgICAgICAg
IHJldHVybiBtX3N0cmVhbXMucmVtb3ZlKGkpOworfQorCitib29sIE1lZGlhU3RyZWFtTGlzdDo6
Y29udGFpbnMoY29uc3QgUmVmUHRyPE1lZGlhU3RyZWFtPiYgc3RyZWFtKSBjb25zdAoreworICAg
IHJldHVybiBmaW5kTWVkaWFTdHJlYW1JblZlY3RvcihtX3N0cmVhbXMsIHN0cmVhbS0+aWQoKSkg
IT0gbm90Rm91bmQ7Cit9CisKK1Bhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IE1lZGlhU3RyZWFtTGlz
dDo6dGFrZShjb25zdCBTdHJpbmcmIHN0cmVhbUlkKQoreworICAgIHNpemVfdCBpID0gZmluZE1l
ZGlhU3RyZWFtSW5WZWN0b3IobV9zdHJlYW1zLCBzdHJlYW1JZCk7CisgICAgaWYgKGkgPT0gbm90
Rm91bmQpCisgICAgICAgIHJldHVybiAwOworCisgICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBzdHJl
YW0gPSBtX3N0cmVhbXNbaV07CisgICAgbV9zdHJlYW1zLnJlbW92ZShpKTsKKyAgICByZXR1cm4g
c3RyZWFtOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
TUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1MaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUxp
c3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjE0ZGMzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1MaXN0LmgK
QEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZWRpYVN0cmVhbUxpc3Rf
aAorI2RlZmluZSBNZWRpYVN0cmVhbUxpc3RfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgTWVkaWFTdHJlYW1MaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1MaXN0PiB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1MaXN0PiBjcmVhdGUo
KTsKKyAgICB2aXJ0dWFsIH5NZWRpYVN0cmVhbUxpc3QoKTsKKworICAgIC8vIERPTSBtZXRob2Rz
ICYgYXR0cmlidXRlcyBmb3IgTWVkaWFTdHJlYW1MaXN0CisgICAgdW5zaWduZWQgbGVuZ3RoKCkg
Y29uc3Q7CisgICAgTWVkaWFTdHJlYW0qIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0OworCisg
ICAgLy8gTGlzdCBtYW5pcHVsYXRpb24KKyAgICB2b2lkIGFwcGVuZChQYXNzUmVmUHRyPE1lZGlh
U3RyZWFtPik7CisgICAgdm9pZCByZW1vdmUoY29uc3QgUmVmUHRyPE1lZGlhU3RyZWFtPiYpOwor
ICAgIGJvb2wgY29udGFpbnMoY29uc3QgUmVmUHRyPE1lZGlhU3RyZWFtPiYpIGNvbnN0OworICAg
IFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IHRha2UoY29uc3QgU3RyaW5nJiBzdHJlYW1JZCk7CisK
K3ByaXZhdGU6CisgICAgTWVkaWFTdHJlYW1MaXN0KCk7CisKKyAgICBNZWRpYVN0cmVhbVZlY3Rv
ciBtX3N0cmVhbXM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gTWVkaWFTdHJlYW1MaXN0X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtTGlzdC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUxpc3QuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhZDc3YTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUxpc3QuaWRsCkBAIC0wLDAgKzEsMzYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK21vZHVsZSBjb3JlIHsKKworICAgIGludGVyZmFjZSBbCisgICAg
ICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKKyAgICAgICAgSGFzSW5kZXhHZXR0ZXIKKyAg
ICBdIE1lZGlhU3RyZWFtTGlzdCB7CisgICAgICAgIE1lZGlhU3RyZWFtIGl0ZW0oaW4gW0lzSW5k
ZXhdIHVuc2lnbmVkIGxvbmcgaW5kZXgpOworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICB9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUmVnaXN0cnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmUxN2Y3MjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcApAQCAtMCwwICsxLDgwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisg
KiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1S
ZWdpc3RyeS5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIktVUkwu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitNZWRpYVN0cmVhbVJlZ2lzdHJ5JiBtZWRpYVN0
cmVhbVJlZ2lzdHJ5KCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKE1lZGlhU3RyZWFtUmVn
aXN0cnksIGluc3RhbmNlLCAoKSk7CisgICAgcmV0dXJuIGluc3RhbmNlOworfQorCitNZWRpYVN0
cmVhbVJlZ2lzdHJ5Ojp+TWVkaWFTdHJlYW1SZWdpc3RyeSgpCit7Cit9CisKK3ZvaWQgTWVkaWFT
dHJlYW1SZWdpc3RyeTo6cmVnaXN0ZXJNZWRpYVN0cmVhbShjb25zdCBTdHJpbmcmIHN0cmVhbUlk
LCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4gc3RyZWFtRGVzY3JpcHRvcikKK3sK
KyAgICBtX3N0cmVhbURlc2NyaXB0b3JzLnNldChzdHJlYW1JZCwgc3RyZWFtRGVzY3JpcHRvcik7
Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1SZWdpc3RyeTo6dW5yZWdpc3Rlck1lZGlhU3RyZWFtKGNv
bnN0IFN0cmluZyYgc3RyZWFtSWQpCit7CisgICAgUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRv
cj4gc3RyZWFtRGVzY3JpcHRvciA9IG1fc3RyZWFtRGVzY3JpcHRvcnMudGFrZShzdHJlYW1JZCk7
CisgICAgaWYgKCFzdHJlYW1EZXNjcmlwdG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBzdHJl
YW1EZXNjcmlwdG9yLT5vd25lciA9IDA7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1SZWdpc3RyeTo6
YXNzb2NpYXRlVVJMKGNvbnN0IEtVUkwmIHN0cmVhbVVSTCwgY29uc3QgU3RyaW5nJiByZWdpc3Rl
cmVkU3RyZWFtSWQpCit7CisgICAgUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4gc3RyZWFt
RGVzY3JpcHRvciA9IG1fc3RyZWFtRGVzY3JpcHRvcnMuZ2V0KHJlZ2lzdGVyZWRTdHJlYW1JZCk7
CisgICAgaWYgKCFzdHJlYW1EZXNjcmlwdG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3N0
cmVhbURlc2NyaXB0b3JzLnNldChzdHJlYW1VUkwuc3RyaW5nKCksIHN0cmVhbURlc2NyaXB0b3Ip
OworfQorCit2b2lkIE1lZGlhU3RyZWFtUmVnaXN0cnk6OnVuYXNzb2NpYXRlVVJMKGNvbnN0IEtV
UkwmIHN0cmVhbVVSTCkKK3sKKyAgICBtX3N0cmVhbURlc2NyaXB0b3JzLnJlbW92ZShzdHJlYW1V
Ukwuc3RyaW5nKCkpOworfQorCitQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4gTWVk
aWFTdHJlYW1SZWdpc3RyeTo6bG9va3VwTWVkaWFTdHJlYW1EZXNjcmlwdG9yKGNvbnN0IFN0cmlu
ZyYga2V5KQoreworICAgIHJldHVybiBtX3N0cmVhbURlc2NyaXB0b3JzLmdldChrZXkpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFN
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZWdp
c3RyeS5oIGIvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZWdpc3RyeS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhMzEwNDUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmgK
QEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEVyaWNzc29uIEFCLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZWRpYVN0cmVhbVJlZ2lz
dHJ5X2gKKyNkZWZpbmUgTWVkaWFTdHJlYW1SZWdpc3RyeV9oCisKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1Db21wb25lbnQuaCIKKyNpbmNsdWRlICJT
ZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nSGFzaC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEtVUkw7
CitjbGFzcyBNZWRpYVN0cmVhbTsKK2NsYXNzIE1lZGlhU3RyZWFtUmVnaXN0cnk7CisKK3N0cnVj
dCBNZWRpYVN0cmVhbURlc2NyaXB0b3IgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0cmVhbURl
c2NyaXB0b3I+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURl
c2NyaXB0b3I+IGNyZWF0ZShNZWRpYVN0cmVhbSogb3duZXIsIFBhc3NSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+IG9yaWdpbiwKKyAgICAgICAgICAgIGNvbnN0IE1lZGlhU3RyZWFtQ29tcG9uZW50TGlz
dCYgY29tcG9uZW50cykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFT
dHJlYW1EZXNjcmlwdG9yKG93bmVyLCBvcmlnaW4sIGNvbXBvbmVudHMpKTsKKyAgICB9CisKKyAg
ICBNZWRpYVN0cmVhbSogb3duZXI7CisgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW47
CisgICAgTWVkaWFTdHJlYW1Db21wb25lbnRMaXN0IGNvbXBvbmVudHM7CisgICAgYm9vbCBlbmRl
ZDsKKworcHJpdmF0ZToKKyAgICBNZWRpYVN0cmVhbURlc2NyaXB0b3IoTWVkaWFTdHJlYW0qIG93
bmVyQXJnLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW5BcmcsCisgICAgICAgICAg
ICBjb25zdCBNZWRpYVN0cmVhbUNvbXBvbmVudExpc3QmIGNvbXBvbmVudHNBcmcpCisgICAgICAg
IDogb3duZXIob3duZXJBcmcpCisgICAgICAgICwgb3JpZ2luKG9yaWdpbkFyZykKKyAgICAgICAg
LCBjb21wb25lbnRzKGNvbXBvbmVudHNBcmcpCisgICAgICAgICwgZW5kZWQoZmFsc2UpCisgICAg
eyB9Cit9OworCitNZWRpYVN0cmVhbVJlZ2lzdHJ5JiBtZWRpYVN0cmVhbVJlZ2lzdHJ5KCk7CisK
K2NsYXNzIE1lZGlhU3RyZWFtUmVnaXN0cnkgeworcHVibGljOgorICAgIH5NZWRpYVN0cmVhbVJl
Z2lzdHJ5KCk7CisKKyAgICB2b2lkIHJlZ2lzdGVyTWVkaWFTdHJlYW0oY29uc3QgU3RyaW5nJiBz
dHJlYW1JZCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+KTsKKyAgICB2b2lkIHVu
cmVnaXN0ZXJNZWRpYVN0cmVhbShjb25zdCBTdHJpbmcmIHN0cmVhbUlkKTsKKyAgICB2b2lkIGFz
c29jaWF0ZVVSTChjb25zdCBLVVJMJiBzdHJlYW1VUkwsIGNvbnN0IFN0cmluZyYgcmVnaXN0ZXJl
ZFN0cmVhbUlkKTsKKyAgICB2b2lkIHVuYXNzb2NpYXRlVVJMKGNvbnN0IEtVUkwmIHN0cmVhbVVS
TCk7CisKKyAgICBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4gbG9va3VwTWVkaWFT
dHJlYW1EZXNjcmlwdG9yKGNvbnN0IFN0cmluZyYga2V5KTsgLy8ga2V5OiBzdHJlYW1JZCBvciBV
Ukwgc3RyaW5nCisKK3ByaXZhdGU6CisgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxNZWRpYVN0
cmVhbURlc2NyaXB0b3I+ID4gbV9zdHJlYW1EZXNjcmlwdG9yczsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAv
LyBNZWRpYVN0cmVhbVJlZ2lzdHJ5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
OTI2MjdkNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suY3BwCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCisKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1NYW5hZ2VyLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiBNZWRpYVN0
cmVhbVRyYWNrOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBvd25lclN0cmVhbUlkLCB1bnNpZ25lZCB0
cmFja0luZGV4LCBjb25zdCBTdHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGJvb2wg
ZW5hYmxlZCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhU3RyZWFtVHJhY2sob3du
ZXJTdHJlYW1JZCwgdHJhY2tJbmRleCwga2luZCwgbGFiZWwsIGVuYWJsZWQpKTsKK30KKworTWVk
aWFTdHJlYW1UcmFjazo6TWVkaWFTdHJlYW1UcmFjayhjb25zdCBTdHJpbmcmIG93bmVyU3RyZWFt
SWQsIHVuc2lnbmVkIHRyYWNrSW5kZXgsIGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5n
JiBsYWJlbCwgYm9vbCBlbmFibGVkKQorICAgIDogbV9vd25lclN0cmVhbUlkKG93bmVyU3RyZWFt
SWQpCisgICAgLCBtX3RyYWNrSW5kZXgodHJhY2tJbmRleCkKKyAgICAsIG1fa2luZChraW5kKQor
ICAgICwgbV9sYWJlbChsYWJlbCkKKyAgICAsIG1fZW5hYmxlZChlbmFibGVkKQoreworfQorCitN
ZWRpYVN0cmVhbVRyYWNrOjp+TWVkaWFTdHJlYW1UcmFjaygpCit7Cit9CisKK2NvbnN0IFN0cmlu
ZyYgTWVkaWFTdHJlYW1UcmFjazo6a2luZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fa2luZDsK
K30KKworY29uc3QgU3RyaW5nJiBNZWRpYVN0cmVhbVRyYWNrOjpsYWJlbCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fbGFiZWw7Cit9CisKK2Jvb2wgTWVkaWFTdHJlYW1UcmFjazo6ZW5hYmxlZCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZW5hYmxlZDsKK30KKwordm9pZCBNZWRpYVN0cmVhbVRy
YWNrOjpzZXRFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBpZiAoZW5hYmxlZCA9PSBtX2Vu
YWJsZWQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZW5hYmxlZCA9IGVuYWJsZWQ7CisKKyAg
ICBtZWRpYVN0cmVhbU1hbmFnZXIoKS5zZXRNZWRpYVN0cmVhbUNvbXBvbmVudEVuYWJsZWQobV9v
d25lclN0cmVhbUlkLCBtX3RyYWNrSW5kZXgsIG1fZW5hYmxlZCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmggYi9Tb3VyY2Uv
V2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uN2Q5MzQ4MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaApAQCAtMCwwICsxLDY2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIE1lZGlhU3RyZWFtVHJhY2tfaAorI2RlZmluZSBNZWRpYVN0cmVh
bVRyYWNrX2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJQbGF0Zm9y
bVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBNZWRpYVN0cmVhbVRyYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1U
cmFjaz4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+
IGNyZWF0ZShjb25zdCBTdHJpbmcmIG93bmVyU3RyZWFtSWQsIHVuc2lnbmVkIHRyYWNrSW5kZXgs
IGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgYm9vbCBlbmFibGVkID0g
dHJ1ZSk7CisgICAgdmlydHVhbCB+TWVkaWFTdHJlYW1UcmFjaygpOworCisgICAgY29uc3QgU3Ry
aW5nJiBraW5kKCkgY29uc3Q7CisgICAgY29uc3QgU3RyaW5nJiBsYWJlbCgpIGNvbnN0OworCisg
ICAgYm9vbCBlbmFibGVkKCkgY29uc3Q7CisgICAgdm9pZCBzZXRFbmFibGVkKGJvb2wpOworCitw
cml2YXRlOgorICAgIE1lZGlhU3RyZWFtVHJhY2soY29uc3QgU3RyaW5nJiBvd25lclN0cmVhbUlk
LCB1bnNpZ25lZCB0cmFja0luZGV4LCBjb25zdCBTdHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYg
bGFiZWwsIGJvb2wgZW5hYmxlZCk7CisKKyAgICBjb25zdCBTdHJpbmcgbV9vd25lclN0cmVhbUlk
OworICAgIGNvbnN0IHVuc2lnbmVkIG1fdHJhY2tJbmRleDsKKworICAgIFN0cmluZyBtX2tpbmQ7
CisgICAgU3RyaW5nIG1fbGFiZWw7CisgICAgYm9vbCBtX2VuYWJsZWQ7Cit9OworCit0eXBlZGVm
IFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4gPiBNZWRpYVN0cmVhbVRyYWNrVmVjdG9y
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCisjZW5kaWYgLy8gTWVkaWFTdHJlYW1UcmFja19oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjc5ODc1OTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbApAQCAtMCwwICsxLDM1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCittb2R1bGUgY29yZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRp
b25hbD1NRURJQV9TVFJFQU0sCisgICAgXSBNZWRpYVN0cmVhbVRyYWNrIHsKKyAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBraW5kOworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIGxhYmVsOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBl
bmFibGVkOworICAgIH07CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2tMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2tMaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi45MmJmMGY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFja0xpc3QuY3BwCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
CisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrTGlzdC5o
IgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQ
YXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tMaXN0PiBNZWRpYVN0cmVhbVRyYWNrTGlzdDo6Y3Jl
YXRlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tWZWN0b3ImIHRyYWNrVmVjdG9yKQoreworICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgTWVkaWFTdHJlYW1UcmFja0xpc3QodHJhY2tWZWN0b3IpKTsKK30K
KworTWVkaWFTdHJlYW1UcmFja0xpc3Q6Ok1lZGlhU3RyZWFtVHJhY2tMaXN0KGNvbnN0IE1lZGlh
U3RyZWFtVHJhY2tWZWN0b3ImIHRyYWNrVmVjdG9yKQorICAgIDogbV90cmFja1ZlY3Rvcih0cmFj
a1ZlY3RvcikKK3sKK30KKworTWVkaWFTdHJlYW1UcmFja0xpc3Q6On5NZWRpYVN0cmVhbVRyYWNr
TGlzdCgpCit7Cit9CisKK3Vuc2lnbmVkIE1lZGlhU3RyZWFtVHJhY2tMaXN0OjpsZW5ndGgoKSBj
b25zdAoreworICAgIHJldHVybiBtX3RyYWNrVmVjdG9yLnNpemUoKTsKK30KKworTWVkaWFTdHJl
YW1UcmFjayogTWVkaWFTdHJlYW1UcmFja0xpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0
Cit7CisgICAgQVNTRVJUKGluZGV4IDwgbGVuZ3RoKCkpOworICAgIHJldHVybiBtX3RyYWNrVmVj
dG9yW2luZGV4XS5nZXQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2tMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrTGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjRkNjFmODVlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFja0xpc3QuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgor
ICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIE1lZGlhU3RyZWFtVHJhY2tMaXN0X2gKKyNkZWZpbmUgTWVkaWFTdHJlYW1UcmFj
a0xpc3RfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lZGlhU3Ry
ZWFtVHJhY2suaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVN0cmVhbVRy
YWNrTGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtVHJhY2tMaXN0PiB7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja0xpc3Q+IGNyZWF0ZShj
b25zdCBNZWRpYVN0cmVhbVRyYWNrVmVjdG9yJik7CisgICAgdmlydHVhbCB+TWVkaWFTdHJlYW1U
cmFja0xpc3QoKTsKKworICAgIC8vIERPTSBtZXRob2RzICYgYXR0cmlidXRlcyBmb3IgTWVkaWFT
dHJlYW1UcmFja0xpc3QKKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKKyAgICBNZWRpYVN0
cmVhbVRyYWNrKiBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBN
ZWRpYVN0cmVhbVRyYWNrTGlzdChjb25zdCBNZWRpYVN0cmVhbVRyYWNrVmVjdG9yJik7CisKKyAg
ICBNZWRpYVN0cmVhbVRyYWNrVmVjdG9yIG1fdHJhY2tWZWN0b3I7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYg
Ly8gTWVkaWFTdHJlYW1UcmFja0xpc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0xpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFja0xpc3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjNlM2VjYTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrTGlzdC5pZGwKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworbW9kdWxlIGNvcmUgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0
aW9uYWw9TUVESUFfU1RSRUFNLAorICAgICAgICBIYXNJbmRleEdldHRlcgorICAgIF0gTWVkaWFT
dHJlYW1UcmFja0xpc3QgeworICAgICAgICBNZWRpYVN0cmVhbVRyYWNrIGl0ZW0oaW4gW0lzSW5k
ZXhdIHVuc2lnbmVkIGxvbmcgaW5kZXgpOworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICB9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tZWRp
YXN0cmVhbS9QZWVyQ29ubmVjdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZmY1Mjk1YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL21lZGlhc3Ry
ZWFtL1BlZXJDb25uZWN0aW9uLmNwcApAQCAtMCwwICsxLDQwMyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDExIEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAq
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBlZXJDb25uZWN0aW9uLmgiCisKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1
ZGUgIk1lZGlhU3RyZWFtRXZlbnQuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbU1hbmFnZXIuaCIK
KyNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitQYXNzUmVmUHRyPFBlZXJDb25uZWN0aW9uPiBQZWVyQ29ubmVjdGlvbjo6Y3JlYXRlKGNv
bnN0IFN0cmluZyYgc2VydmVyQ29uZmlndXJhdGlvbiwgUGFzc1JlZlB0cjxQZWVyQ29ubmVjdGlv
blNpZ25hbGluZ0NhbGxiYWNrPiBzaWduYWxpbmdDYWxsYmFjaywgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCkKK3sKKyAgICBSZWZQdHI8UGVlckNvbm5lY3Rpb24+IGNvbm5lY3Rpb24g
PSBhZG9wdFJlZihuZXcgUGVlckNvbm5lY3Rpb24oc2VydmVyQ29uZmlndXJhdGlvbiwgc2lnbmFs
aW5nQ2FsbGJhY2ssIGNvbnRleHQpKTsKKyAgICBjb25uZWN0aW9uLT5zZXRQZW5kaW5nQWN0aXZp
dHkoY29ubmVjdGlvbi5nZXQoKSk7CisgICAgY29ubmVjdGlvbi0+c2NoZWR1bGVJbml0aWFsTmVn
b3RpYXRpb24oKTsKKworICAgIHJldHVybiBjb25uZWN0aW9uLnJlbGVhc2UoKTsKK30KKworUGVl
ckNvbm5lY3Rpb246OlBlZXJDb25uZWN0aW9uKGNvbnN0IFN0cmluZyYgc2VydmVyQ29uZmlndXJh
dGlvbiwgUGFzc1JlZlB0cjxQZWVyQ29ubmVjdGlvblNpZ25hbGluZ0NhbGxiYWNrPiBzaWduYWxp
bmdDYWxsYmFjaywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKKyAgICA6IEFjdGl2
ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQorICAgICwgbV9zaWduYWxpbmdDYWxsYmFjayhzaWdu
YWxpbmdDYWxsYmFjaykKKyAgICAsIG1fcmVhZHlTdGF0ZShORVcpCisgICAgLCBtX2ljZVN0YXJ0
ZWQoZmFsc2UpCisgICAgLCBtX2xvY2FsU3RyZWFtcyhNZWRpYVN0cmVhbUxpc3Q6OmNyZWF0ZSgp
KQorICAgICwgbV9yZW1vdGVTdHJlYW1zKE1lZGlhU3RyZWFtTGlzdDo6Y3JlYXRlKCkpCisgICAg
LCBtX2luaXRpYWxOZWdvdGlhdGlvblRpbWVyKHRoaXMsICZQZWVyQ29ubmVjdGlvbjo6aW5pdGlh
bE5lZ290aWF0aW9uVGltZXJGaXJlZCkKKyAgICAsIG1fc3RyZWFtQ2hhbmdlVGltZXIodGhpcywg
JlBlZXJDb25uZWN0aW9uOjpzdHJlYW1DaGFuZ2VUaW1lckZpcmVkKQorICAgICwgbV9yZWFkeVN0
YXRlQ2hhbmdlVGltZXIodGhpcywgJlBlZXJDb25uZWN0aW9uOjpyZWFkeVN0YXRlQ2hhbmdlVGlt
ZXJGaXJlZCkKKyAgICAsIG1fcGVlckhhbmRsZXIoUGVlckhhbmRsZXI6OmNyZWF0ZSh0aGlzLCBw
YXJzZVNlcnZlckNvbmZpZ3VyYXRpb24oc2VydmVyQ29uZmlndXJhdGlvbikpKQoreworfQorCitQ
ZWVyQ29ubmVjdGlvbjo6flBlZXJDb25uZWN0aW9uKCkKK3sKK30KKworc3RhdGljIGJvb2wgaXND
YXJyaWFnZVJldHVybk9yTGluZUZlZWQoVUNoYXIgYykKK3sKKyAgICByZXR1cm4gYyA9PSAnXHIn
IHx8IGMgPT0gJ1xuJzsKK30KKworUGFzc1JlZlB0cjxQZWVySGFuZGxlckNvbmZpZ3VyYXRpb24+
IFBlZXJDb25uZWN0aW9uOjpwYXJzZVNlcnZlckNvbmZpZ3VyYXRpb24oY29uc3QgU3RyaW5nJiBz
ZXJ2ZXJDb25maWd1cmF0aW9uKQoreworICAgIHNpemVfdCBlbmRPZkxpbmUgPSBzZXJ2ZXJDb25m
aWd1cmF0aW9uLmZpbmQoV2ViQ29yZTo6aXNDYXJyaWFnZVJldHVybk9yTGluZUZlZWQpOworICAg
IFN0cmluZyBzZXJ2ZXJDb25maWcgPSBlbmRPZkxpbmUgPT0gbm90Rm91bmQgPyBzZXJ2ZXJDb25m
aWd1cmF0aW9uIDogc2VydmVyQ29uZmlndXJhdGlvbi5sZWZ0KGVuZE9mTGluZSk7CisKKyAgICBW
ZWN0b3I8U3RyaW5nPiBjb25maWd1cmF0aW9uQ29tcG9uZW50czsKKyAgICBzZXJ2ZXJDb25maWcu
c3BsaXQoJyAnLCBjb25maWd1cmF0aW9uQ29tcG9uZW50cyk7CisKKyAgICBSZWZQdHI8UGVlckhh
bmRsZXJDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gUGVlckhhbmRsZXJDb25maWd1cmF0
aW9uOjpjcmVhdGUoKTsKKworICAgIGlmIChjb25maWd1cmF0aW9uQ29tcG9uZW50cy5zaXplKCkg
PCAyKQorICAgICAgICByZXR1cm4gY29uZmlndXJhdGlvbjsKKworICAgIFN0cmluZyYgdHlwZSA9
IGNvbmZpZ3VyYXRpb25Db21wb25lbnRzWzBdOworICAgIGlmICh0eXBlID09ICJTVFVOIiB8fCB0
eXBlID09ICJTVFVOUyIpCisgICAgICAgIGNvbmZpZ3VyYXRpb24tPnR5cGUgPSBQZWVySGFuZGxl
ckNvbmZpZ3VyYXRpb246OlR5cGVTVFVOOworICAgIGVsc2UgaWYgKHR5cGUgPT0gIlRVUk4iIHx8
IHR5cGUgPT0gIlRVUk5TIikKKyAgICAgICAgY29uZmlndXJhdGlvbi0+dHlwZSA9IFBlZXJIYW5k
bGVyQ29uZmlndXJhdGlvbjo6VHlwZVRVUk47CisgICAgZWxzZQorICAgICAgICByZXR1cm4gY29u
ZmlndXJhdGlvbjsKKworICAgIGNvbmZpZ3VyYXRpb24tPnNlY3VyZSA9IHR5cGUgPT0gIlNUVU5T
IiB8fCB0eXBlID09ICJUVVJOUyI7CisKKyAgICBTdHJpbmcmIGhvc3RBbmRQb3J0ID0gY29uZmln
dXJhdGlvbkNvbXBvbmVudHNbMV07CisgICAgc2l6ZV90IGZpcnN0Q29sb24gPSBob3N0QW5kUG9y
dC5maW5kKCc6Jyk7CisgICAgaWYgKGZpcnN0Q29sb24gIT0gbm90Rm91bmQpIHsKKyAgICAgICAg
Ym9vbCBwb3J0T2s7CisgICAgICAgIGludCBwb3J0ID0gaG9zdEFuZFBvcnQuc3Vic3RyaW5nKGZp
cnN0Q29sb24gKyAxKS50b0ludCgmcG9ydE9rKTsKKyAgICAgICAgcG9ydE9rICY9IDAgPD0gcG9y
dCAmJiBwb3J0IDwgNjU1MzY7CisgICAgICAgIGlmICghcG9ydE9rKQorICAgICAgICAgICAgcmV0
dXJuIFBlZXJIYW5kbGVyQ29uZmlndXJhdGlvbjo6Y3JlYXRlKCk7CisKKyAgICAgICAgY29uZmln
dXJhdGlvbi0+aG9zdCA9IGhvc3RBbmRQb3J0LmxlZnQoZmlyc3RDb2xvbik7CisgICAgICAgIGNv
bmZpZ3VyYXRpb24tPnBvcnQgPSBwb3J0OworICAgIH0gZWxzZQorICAgICAgICBjb25maWd1cmF0
aW9uLT5ob3N0ID0gaG9zdEFuZFBvcnQ7CisKKyAgICBjb25maWd1cmF0aW9uLT51c2VybmFtZSA9
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKTsK
KworICAgIHJldHVybiBjb25maWd1cmF0aW9uOworfQorCit2b2lkIFBlZXJDb25uZWN0aW9uOjpw
cm9jZXNzU2lnbmFsaW5nTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQoreworICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gQ0xPU0VEKSB7CisgICAgICAgIGVj
ID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAo
IW1lc3NhZ2Uuc3RhcnRzV2l0aCgiU0RQXG4iKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3Ry
aW5nIHNkcCA9IG1lc3NhZ2Uuc3Vic3RyaW5nKDQpOworCisgICAgaWYgKG1faWNlU3RhcnRlZCkg
eworICAgICAgICBpZiAobV9wZWVySGFuZGxlcikKKyAgICAgICAgICAgIG1fcGVlckhhbmRsZXIt
PnByb2Nlc3NTRFAoc2RwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChtX3Bl
ZXJIYW5kbGVyKQorICAgICAgICBtX3BlZXJIYW5kbGVyLT5oYW5kbGVJbml0aWFsT2ZmZXIoc2Rw
KTsKKworICAgIHNjaGVkdWxlU3RyZWFtQ2hhbmdlKCk7CisgICAgbV9pY2VTdGFydGVkID0gdHJ1
ZTsKKyAgICBzY2hlZHVsZVJlYWR5U3RhdGVDaGFuZ2UoTkVHT1RJQVRJTkcpOworfQorCitQZWVy
Q29ubmVjdGlvbjo6UmVhZHlTdGF0ZSBQZWVyQ29ubmVjdGlvbjo6cmVhZHlTdGF0ZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fcmVhZHlTdGF0ZTsKK30KKwordm9pZCBQZWVyQ29ubmVjdGlvbjo6
c2VuZChjb25zdCBTdHJpbmcmIHRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICht
X3JlYWR5U3RhdGUgPT0gQ0xPU0VEKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBDU3RyaW5nIGRhdGEgPSB0ZXh0LnV0Zjgo
KTsKKyAgICB1bnNpZ25lZCBsZW5ndGggPSBkYXRhLmxlbmd0aCgpOworCisgICAgaWYgKGxlbmd0
aCA+IGtNYXhNZXNzYWdlVVRGOExlbmd0aCkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNT
X0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChtX3BlZXJIYW5kbGVyKQor
ICAgICAgICBtX3BlZXJIYW5kbGVyLT5zZW5kRGF0YVN0cmVhbU1lc3NhZ2UoZGF0YS5kYXRhKCks
IGxlbmd0aCk7Cit9CisKK3ZvaWQgUGVlckNvbm5lY3Rpb246OmFkZFN0cmVhbShjb25zdCBQYXNz
UmVmUHRyPE1lZGlhU3RyZWFtPiBwcnBTdHJlYW0sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAg
IGlmIChtX3JlYWR5U3RhdGUgPT0gQ0xPU0VEKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFU
RV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBUaGUgU3RyZWFtIG9iamVj
dCBpcyBndWFyYW50ZWVkIHRvIGV4aXN0IHNpbmNlIFN0cmljdFR5cGVDaGVja2luZyBpcyBzZXQg
aW4gdGhlIGlkbC4KKworICAgIFJlZlB0cjxNZWRpYVN0cmVhbT4gc3RyZWFtID0gcHJwU3RyZWFt
OworCisgICAgaWYgKG1fbG9jYWxTdHJlYW1zLT5jb250YWlucyhzdHJlYW0pKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX2xvY2FsU3RyZWFtcy0+YXBwZW5kKHN0cmVhbSk7CisKKyAgICBzaXpl
X3QgaSA9IGZpbmRNZWRpYVN0cmVhbUluVmVjdG9yKG1fcGVuZGluZ1JlbW92ZVN0cmVhbXMsIHN0
cmVhbS0+aWQoKSk7CisgICAgaWYgKGkgIT0gbm90Rm91bmQpIHsKKyAgICAgICAgbV9wZW5kaW5n
UmVtb3ZlU3RyZWFtcy5yZW1vdmUoaSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBt
X3BlbmRpbmdBZGRTdHJlYW1zLmFwcGVuZChzdHJlYW0pOworICAgIGlmIChtX2ljZVN0YXJ0ZWQp
CisgICAgICAgIHNjaGVkdWxlU3RyZWFtQ2hhbmdlKCk7Cit9CisKK3ZvaWQgUGVlckNvbm5lY3Rp
b246OnJlbW92ZVN0cmVhbShjb25zdCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBwcnBTdHJlYW0s
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gQ0xPU0VEKSB7
CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICAvLyBUaGUgU3RyZWFtIG9iamVjdCBpcyBndWFyYW50ZWVkIHRvIGV4aXN0IHNpbmNl
IFN0cmljdFR5cGVDaGVja2luZyBpcyBzZXQgaW4gdGhlIGlkbC4KKworICAgIFJlZlB0cjxNZWRp
YVN0cmVhbT4gc3RyZWFtID0gcHJwU3RyZWFtOworCisgICAgaWYgKCFtX2xvY2FsU3RyZWFtcy0+
Y29udGFpbnMoc3RyZWFtKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9sb2NhbFN0cmVhbXMt
PnJlbW92ZShzdHJlYW0pOworCisgICAgc2l6ZV90IGkgPSBmaW5kTWVkaWFTdHJlYW1JblZlY3Rv
cihtX3BlbmRpbmdBZGRTdHJlYW1zLCBzdHJlYW0tPmlkKCkpOworICAgIGlmIChpICE9IG5vdEZv
dW5kKSB7CisgICAgICAgIG1fcGVuZGluZ0FkZFN0cmVhbXMucmVtb3ZlKGkpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgbV9wZW5kaW5nUmVtb3ZlU3RyZWFtcy5hcHBlbmQoc3RyZWFt
KTsKKyAgICBpZiAobV9pY2VTdGFydGVkKQorICAgICAgICBzY2hlZHVsZVN0cmVhbUNoYW5nZSgp
OworfQorCitNZWRpYVN0cmVhbUxpc3QqIFBlZXJDb25uZWN0aW9uOjpsb2NhbFN0cmVhbXMoKSBj
b25zdAoreworICAgIHJldHVybiBtX2xvY2FsU3RyZWFtcy5nZXQoKTsKK30KKworTWVkaWFTdHJl
YW1MaXN0KiBQZWVyQ29ubmVjdGlvbjo6cmVtb3RlU3RyZWFtcygpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fcmVtb3RlU3RyZWFtcy5nZXQoKTsKK30KKwordm9pZCBQZWVyQ29ubmVjdGlvbjo6Y2xv
c2UoRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBDTE9TRUQp
IHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIHN0b3AoKTsKK30KKwordm9pZCBQZWVyQ29ubmVjdGlvbjo6aWNlUHJvY2Vzc2lu
Z0NvbXBsZXRlZCgpCit7CisgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXND
b250ZXh0VGhyZWFkKCkpOworICAgIGNoYW5nZVJlYWR5U3RhdGUoQUNUSVZFKTsKK30KKwordm9p
ZCBQZWVyQ29ubmVjdGlvbjo6c2RwR2VuZXJhdGVkKGNvbnN0IFN0cmluZyYgc2RwKQoreworICAg
IEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzQ29udGV4dFRocmVhZCgpKTsKKyAg
ICBtX3NpZ25hbGluZ0NhbGxiYWNrLT5oYW5kbGVFdmVudCgiU0RQXG4iICsgc2RwLCB0aGlzKTsK
K30KKwordm9pZCBQZWVyQ29ubmVjdGlvbjo6ZGF0YVN0cmVhbU1lc3NhZ2VSZWNlaXZlZChjb25z
dCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgQVNTRVJUKHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+aXNDb250ZXh0VGhyZWFkKCkpOworICAgIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSA9IFN0cmluZzo6ZnJvbVVURjgoZGF0YSwgbGVuZ3RoKTsKKyAgICBkaXNwYXRjaEV2ZW50
KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKFBhc3NPd25QdHI8TWVzc2FnZVBvcnRBcnJheT4oKSwgU2Vy
aWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUobWVzc2FnZSkpKTsKK30KKwordm9pZCBQZWVyQ29u
bmVjdGlvbjo6cmVtb3RlU3RyZWFtQWRkZWQoY29uc3QgU3RyaW5nJiBzdHJlYW1JZCwgY29uc3Qg
U3RyaW5nJiBsYWJlbCwgY29uc3QgTWVkaWFTdHJlYW1Db21wb25lbnRMaXN0JiBjb21wb25lbnRz
KQoreworICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzQ29udGV4dFRocmVh
ZCgpKTsKKworICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gQ0xPU0VEKQorICAgICAgICByZXR1cm47
CisKKyAgICBSZWZQdHI8TWVkaWFTdHJlYW0+IHN0cmVhbSA9IE1lZGlhU3RyZWFtOjpjcmVhdGUo
c3RyZWFtSWQsIGxhYmVsLCBjb21wb25lbnRzLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwor
ICAgIG1fcmVtb3RlU3RyZWFtcy0+YXBwZW5kKHN0cmVhbSk7CisKKyAgICBkaXNwYXRjaEV2ZW50
KE1lZGlhU3RyZWFtRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYWRkc3RyZWFtRXZlbnQsIGZh
bHNlLCBmYWxzZSwgc3RyZWFtKSk7Cit9CisKK3ZvaWQgUGVlckNvbm5lY3Rpb246OnJlbW90ZVN0
cmVhbVJlbW92ZWQoY29uc3QgU3RyaW5nJiBzdHJlYW1JZCkKK3sKKyAgICBBU1NFUlQoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT5pc0NvbnRleHRUaHJlYWQoKSk7CisKKyAgICBtZWRpYVN0cmVh
bU1hbmFnZXIoKS5zdHJlYW1FbmRlZChzdHJlYW1JZCk7CisKKyAgICBpZiAobV9yZWFkeVN0YXRl
ID09IENMT1NFRCkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBz
dHJlYW0gPSBtX3JlbW90ZVN0cmVhbXMtPnRha2Uoc3RyZWFtSWQpOworICAgIGRpc3BhdGNoRXZl
bnQoTWVkaWFTdHJlYW1FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5yZW1vdmVzdHJlYW1FdmVu
dCwgZmFsc2UsIGZhbHNlLCBzdHJlYW0pKTsKK30KKworUGVlckNvbm5lY3Rpb24qIFBlZXJDb25u
ZWN0aW9uOjp0b1BlZXJDb25uZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gdGhpczsKK30KKworU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogUGVlckNvbm5lY3Rpb246OnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSBjb25zdAoreworICAgIHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKTsKK30KKwordm9pZCBQZWVyQ29ubmVjdGlvbjo6c3RvcCgpCit7CisgICAgaWYg
KG1fcmVhZHlTdGF0ZSA9PSBDTE9TRUQpCisgICAgICAgIHJldHVybjsKKworICAgIG1faW5pdGlh
bE5lZ290aWF0aW9uVGltZXIuc3RvcCgpOworICAgIG1fc3RyZWFtQ2hhbmdlVGltZXIuc3RvcCgp
OworICAgIG1fcmVhZHlTdGF0ZUNoYW5nZVRpbWVyLnN0b3AoKTsKKworICAgIGlmIChtX3BlZXJI
YW5kbGVyKQorICAgICAgICBtX3BlZXJIYW5kbGVyLT5zdG9wKCk7CisKKyAgICB1bnNldFBlbmRp
bmdBY3Rpdml0eSh0aGlzKTsKKyAgICBtX3BlZXJIYW5kbGVyLmNsZWFyKCk7CisKKyAgICBtX3Jl
YWR5U3RhdGUgPSBDTE9TRUQ7Cit9CisKK0V2ZW50VGFyZ2V0RGF0YSogUGVlckNvbm5lY3Rpb246
OmV2ZW50VGFyZ2V0RGF0YSgpCit7CisgICAgcmV0dXJuICZtX2V2ZW50VGFyZ2V0RGF0YTsKK30K
KworRXZlbnRUYXJnZXREYXRhKiBQZWVyQ29ubmVjdGlvbjo6ZW5zdXJlRXZlbnRUYXJnZXREYXRh
KCkKK3sKKyAgICByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOworfQorCit2b2lkIFBlZXJDb25u
ZWN0aW9uOjpzY2hlZHVsZUluaXRpYWxOZWdvdGlhdGlvbigpCit7CisgICAgaWYgKCFtX2luaXRp
YWxOZWdvdGlhdGlvblRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1faW5pdGlhbE5lZ290aWF0
aW9uVGltZXIuc3RhcnRPbmVTaG90KDApOworfQorCit2b2lkIFBlZXJDb25uZWN0aW9uOjppbml0
aWFsTmVnb3RpYXRpb25UaW1lckZpcmVkKFRpbWVyPFBlZXJDb25uZWN0aW9uPiopCit7CisgICAg
aWYgKG1faWNlU3RhcnRlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgVmVjdG9yPFJlZlB0cjxN
ZWRpYVN0cmVhbT4gPiBwZW5kaW5nU3RyZWFtczsKKyAgICBtX3BlbmRpbmdBZGRTdHJlYW1zLnN3
YXAocGVuZGluZ1N0cmVhbXMpOworICAgIGlmIChtX3BlZXJIYW5kbGVyKQorICAgICAgICBtX3Bl
ZXJIYW5kbGVyLT5wcm9kdWNlSW5pdGlhbE9mZmVyKHBlbmRpbmdTdHJlYW1zKTsKKworICAgIG1f
aWNlU3RhcnRlZCA9IHRydWU7CisKKyAgICBjaGFuZ2VSZWFkeVN0YXRlKE5FR09USUFUSU5HKTsK
K30KKwordm9pZCBQZWVyQ29ubmVjdGlvbjo6c2NoZWR1bGVTdHJlYW1DaGFuZ2UoKQoreworICAg
IGlmICghbV9zdHJlYW1DaGFuZ2VUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX3N0cmVhbUNo
YW5nZVRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwordm9pZCBQZWVyQ29ubmVjdGlvbjo6c3Ry
ZWFtQ2hhbmdlVGltZXJGaXJlZChUaW1lcjxQZWVyQ29ubmVjdGlvbj4qKQoreworICAgIGlmICgh
bV9wZW5kaW5nQWRkU3RyZWFtcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgVmVjdG9yPFJlZlB0cjxN
ZWRpYVN0cmVhbT4gPiBwZW5kaW5nU3RyZWFtczsKKyAgICAgICAgbV9wZW5kaW5nQWRkU3RyZWFt
cy5zd2FwKHBlbmRpbmdTdHJlYW1zKTsKKyAgICAgICAgaWYgKG1fcGVlckhhbmRsZXIpCisgICAg
ICAgICAgICBtX3BlZXJIYW5kbGVyLT5hZGRQZW5kaW5nU3RyZWFtcyhwZW5kaW5nU3RyZWFtcyk7
CisKKyAgICAgICAgY2hhbmdlUmVhZHlTdGF0ZShORUdPVElBVElORyk7CisgICAgfQorICAgIGlm
ICghbV9wZW5kaW5nUmVtb3ZlU3RyZWFtcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgVmVjdG9yPFJl
ZlB0cjxNZWRpYVN0cmVhbT4gPiBwZW5kaW5nU3RyZWFtczsKKyAgICAgICAgbV9wZW5kaW5nUmVt
b3ZlU3RyZWFtcy5zd2FwKHBlbmRpbmdTdHJlYW1zKTsKKyAgICAgICAgaWYgKG1fcGVlckhhbmRs
ZXIpCisgICAgICAgICAgICBtX3BlZXJIYW5kbGVyLT5yZW1vdmVQZW5kaW5nU3RyZWFtcyhwZW5k
aW5nU3RyZWFtcyk7CisgICAgfQorfQorCit2b2lkIFBlZXJDb25uZWN0aW9uOjpzY2hlZHVsZVJl
YWR5U3RhdGVDaGFuZ2UoUmVhZHlTdGF0ZSByZWFkeVN0YXRlKQoreworICAgIG1fcGVuZGluZ1Jl
YWR5U3RhdGVzLmFwcGVuZChyZWFkeVN0YXRlKTsKKyAgICBpZiAoIW1fcmVhZHlTdGF0ZUNoYW5n
ZVRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fcmVhZHlTdGF0ZUNoYW5nZVRpbWVyLnN0YXJ0
T25lU2hvdCgwKTsKK30KKwordm9pZCBQZWVyQ29ubmVjdGlvbjo6cmVhZHlTdGF0ZUNoYW5nZVRp
bWVyRmlyZWQoVGltZXI8UGVlckNvbm5lY3Rpb24+KikKK3sKKyAgICBWZWN0b3I8UmVhZHlTdGF0
ZT4gcGVuZGluZ1JlYWR5U3RhdGVzOworICAgIG1fcGVuZGluZ1JlYWR5U3RhdGVzLnN3YXAocGVu
ZGluZ1JlYWR5U3RhdGVzKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGVuZGluZ1Jl
YWR5U3RhdGVzLnNpemUoKTsgaSsrKQorICAgICAgICBjaGFuZ2VSZWFkeVN0YXRlKHBlbmRpbmdS
ZWFkeVN0YXRlc1tpXSk7Cit9CisKK3ZvaWQgUGVlckNvbm5lY3Rpb246OmNoYW5nZVJlYWR5U3Rh
dGUoUmVhZHlTdGF0ZSByZWFkeVN0YXRlKQoreworICAgIGlmIChyZWFkeVN0YXRlID09IG1fcmVh
ZHlTdGF0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9yZWFkeVN0YXRlID0gcmVhZHlTdGF0
ZTsKKworICAgIHN3aXRjaCAobV9yZWFkeVN0YXRlKSB7CisgICAgY2FzZSBORUdPVElBVElORzoK
KyAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jb25uZWN0
aW5nRXZlbnQsIGZhbHNlLCBmYWxzZSkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFDVElW
RToKKyAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5vcGVu
RXZlbnQsIGZhbHNlLCBmYWxzZSkpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
bWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4xNjUwMjIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbWVkaWFz
dHJlYW0vUGVlckNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDE0MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDExIEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAq
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBQZWVyQ29ubmVjdGlvbl9oCisjZGVmaW5lIFBlZXJDb25uZWN0aW9uX2gKKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNp
bmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkJhc2UuaCIKKyNpbmNs
dWRlICJNZWRpYVN0cmVhbS5oIgorI2luY2x1ZGUgIk1lZGlhU3RyZWFtTGlzdC5oIgorI2luY2x1
ZGUgIlBlZXJDb25uZWN0aW9uU2lnbmFsaW5nQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJQZWVySGFu
ZGxlci5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFBl
ZXJDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8UGVlckNvbm5lY3Rpb24+LCBwdWJsaWMg
UGVlckhhbmRsZXJDbGllbnQsIHB1YmxpYyBFdmVudFRhcmdldCwgcHVibGljIEFjdGl2ZURPTU9i
amVjdCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UGVlckNvbm5lY3Rpb24+IGNy
ZWF0ZShjb25zdCBTdHJpbmcmIHNlcnZlckNvbmZpZ3VyYXRpb24sIFBhc3NSZWZQdHI8UGVlckNv
bm5lY3Rpb25TaWduYWxpbmdDYWxsYmFjaz4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKyAg
ICB+UGVlckNvbm5lY3Rpb24oKTsKKworICAgIHZvaWQgcHJvY2Vzc1NpZ25hbGluZ01lc3NhZ2Uo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFeGNlcHRpb25Db2RlJik7CisKKyAgICAvLyBOYW1lIGFu
ZCB2YWx1ZXMgb2YgdGhlIGVudW0gbXVzdCBtYXRjaCB0aGUgY29ycmVzc3BvbmRpbmcgY29uc3Rh
bnRzIGluIHRoZSAuaWRsIGZpbGUuCisgICAgZW51bSBSZWFkeVN0YXRlIHsKKyAgICAgICAgTkVX
ID0gMCwKKyAgICAgICAgTkVHT1RJQVRJTkcgPSAxLAorICAgICAgICBBQ1RJVkUgPSAyLAorICAg
ICAgICBDTE9TRUQgPSAzCisgICAgfTsKKworICAgIFJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNv
bnN0OworCisgICAgdm9pZCBzZW5kKGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYp
OworICAgIHZvaWQgYWRkU3RyZWFtKGNvbnN0IFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+LCBFeGNl
cHRpb25Db2RlJik7CisgICAgdm9pZCByZW1vdmVTdHJlYW0oY29uc3QgUGFzc1JlZlB0cjxNZWRp
YVN0cmVhbT4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBNZWRpYVN0cmVhbUxpc3QqIGxvY2FsU3Ry
ZWFtcygpIGNvbnN0OworICAgIE1lZGlhU3RyZWFtTGlzdCogcmVtb3RlU3RyZWFtcygpIGNvbnN0
OworICAgIHZvaWQgY2xvc2UoRXhjZXB0aW9uQ29kZSYpOworCisgICAgREVGSU5FX0FUVFJJQlVU
RV9FVkVOVF9MSVNURU5FUihjb25uZWN0aW5nKTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5U
X0xJU1RFTkVSKG9wZW4pOworICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIobWVz
c2FnZSk7CisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihhZGRzdHJlYW0pOwor
ICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIocmVtb3Zlc3RyZWFtKTsKKworICAg
IC8vIFBlZXJIYW5kbGVyQ2xpZW50CisgICAgdmlydHVhbCB2b2lkIGljZVByb2Nlc3NpbmdDb21w
bGV0ZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2RwR2VuZXJhdGVkKGNvbnN0IFN0cmluZyYgc2Rw
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGF0YVN0cmVhbU1lc3NhZ2VSZWNlaXZlZChjb25zdCBjaGFy
KiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpOworICAgIHZpcnR1YWwgdm9pZCByZW1vdGVTdHJlYW1B
ZGRlZChjb25zdCBTdHJpbmcmIHN0cmVhbUlkLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBN
ZWRpYVN0cmVhbUNvbXBvbmVudExpc3QmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3RlU3RyZWFt
UmVtb3ZlZChjb25zdCBTdHJpbmcmIHN0cmVhbUlkKTsKKworICAgIC8vIEV2ZW50VGFyZ2V0Cisg
ICAgdmlydHVhbCBQZWVyQ29ubmVjdGlvbiogdG9QZWVyQ29ubmVjdGlvbigpOworCisgICAgLy8g
RXZlbnRUYXJnZXQgaW1wbGVtZW50YXRpb24uCisgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Q7CisKKyAgICAvLyBBY3RpdmVE
T01PYmplY3QKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpOworCisgICAgdXNpbmcgUmVmQ291bnRl
ZDxQZWVyQ29ubmVjdGlvbj46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPFBlZXJDb25uZWN0
aW9uPjo6ZGVyZWY7CisKK3ByaXZhdGU6CisgICAgc3RhdGljIGNvbnN0IHNpemVfdCBrTWF4TWVz
c2FnZVVURjhMZW5ndGggPSA1MDQ7CisKKyAgICBQZWVyQ29ubmVjdGlvbihjb25zdCBTdHJpbmcm
IHNlcnZlckNvbmZpZ3VyYXRpb24sIFBhc3NSZWZQdHI8UGVlckNvbm5lY3Rpb25TaWduYWxpbmdD
YWxsYmFjaz4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKworICAgIFBhc3NSZWZQdHI8UGVl
ckhhbmRsZXJDb25maWd1cmF0aW9uPiBwYXJzZVNlcnZlckNvbmZpZ3VyYXRpb24oY29uc3QgU3Ry
aW5nJiBzZXJ2ZXJDb25maWd1cmF0aW9uKTsKKworICAgIC8vIEV2ZW50VGFyZ2V0IGltcGxlbWVu
dGF0aW9uLgorICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKTsK
KyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZW5zdXJlRXZlbnRUYXJnZXREYXRhKCk7Cisg
ICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgeyByZWYoKTsgfQorICAgIHZpcnR1YWwg
dm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgeyBkZXJlZigpOyB9CisKKyAgICB2b2lkIHNjaGVkdWxl
SW5pdGlhbE5lZ290aWF0aW9uKCk7CisgICAgdm9pZCBpbml0aWFsTmVnb3RpYXRpb25UaW1lckZp
cmVkKFRpbWVyPFBlZXJDb25uZWN0aW9uPiopOworICAgIHZvaWQgc2NoZWR1bGVTdHJlYW1DaGFu
Z2UoKTsKKyAgICB2b2lkIHN0cmVhbUNoYW5nZVRpbWVyRmlyZWQoVGltZXI8UGVlckNvbm5lY3Rp
b24+Kik7CisgICAgdm9pZCBzY2hlZHVsZVJlYWR5U3RhdGVDaGFuZ2UoUmVhZHlTdGF0ZSk7Cisg
ICAgdm9pZCByZWFkeVN0YXRlQ2hhbmdlVGltZXJGaXJlZChUaW1lcjxQZWVyQ29ubmVjdGlvbj4q
KTsKKworICAgIHZvaWQgY2hhbmdlUmVhZHlTdGF0ZShSZWFkeVN0YXRlKTsKKworICAgIFJlZlB0
cjxQZWVyQ29ubmVjdGlvblNpZ25hbGluZ0NhbGxiYWNrPiBtX3NpZ25hbGluZ0NhbGxiYWNrOwor
CisgICAgUmVhZHlTdGF0ZSBtX3JlYWR5U3RhdGU7CisgICAgYm9vbCBtX2ljZVN0YXJ0ZWQ7CisK
KyAgICBSZWZQdHI8TWVkaWFTdHJlYW1MaXN0PiBtX2xvY2FsU3RyZWFtczsKKyAgICBSZWZQdHI8
TWVkaWFTdHJlYW1MaXN0PiBtX3JlbW90ZVN0cmVhbXM7CisKKyAgICAvLyBFdmVudFRhcmdldCBp
bXBsZW1lbnRhdGlvbi4KKyAgICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRhcmdldERhdGE7CisK
KyAgICBUaW1lcjxQZWVyQ29ubmVjdGlvbj4gbV9pbml0aWFsTmVnb3RpYXRpb25UaW1lcjsKKyAg
ICBUaW1lcjxQZWVyQ29ubmVjdGlvbj4gbV9zdHJlYW1DaGFuZ2VUaW1lcjsKKyAgICBUaW1lcjxQ
ZWVyQ29ubmVjdGlvbj4gbV9yZWFkeVN0YXRlQ2hhbmdlVGltZXI7CisKKyAgICBWZWN0b3I8UmVm
UHRyPE1lZGlhU3RyZWFtPiA+IG1fcGVuZGluZ0FkZFN0cmVhbXM7CisgICAgVmVjdG9yPFJlZlB0
cjxNZWRpYVN0cmVhbT4gPiBtX3BlbmRpbmdSZW1vdmVTdHJlYW1zOworICAgIFZlY3RvcjxSZWFk
eVN0YXRlPiBtX3BlbmRpbmdSZWFkeVN0YXRlczsKKworICAgIE93blB0cjxQZWVySGFuZGxlcj4g
bV9wZWVySGFuZGxlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBQZWVyQ29ubmVjdGlvbl9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbi5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbi5pZGwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmUxYTUzMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uLmlkbApAQCAtMCwwICsxLDc0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
CisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCittb2R1bGUgY29yZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAg
ICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCisgICAgICAgIENhbkJlQ29uc3RydWN0ZWQsCisg
ICAgICAgIEN1c3RvbUNvbnN0cnVjdEZ1bmN0aW9uLAorICAgICAgICBDb25zdHJ1Y3RvclBhcmFt
ZXRlcnM9MiwKKyAgICAgICAgVjhDdXN0b21Db25zdHJ1Y3RvciwKKyAgICAgICAgRXZlbnRUYXJn
ZXQKKyAgICBdIFBlZXJDb25uZWN0aW9uIHsKKyAgICAgICAgdm9pZCBwcm9jZXNzU2lnbmFsaW5n
TWVzc2FnZShpbiBET01TdHJpbmcgbWVzc2FnZSkKKyAgICAgICAgICAgIHJhaXNlcyhET01FeGNl
cHRpb24pOworCisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE5FVyA9IDA7CisgICAgICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IE5FR09USUFUSU5HID0gMTsKKyAgICAgICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgQUNUSVZFID0gMjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ0xP
U0VEID0gMzsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHJlYWR5
U3RhdGU7CisKKyAgICAgICAgdm9pZCBzZW5kKGluIERPTVN0cmluZyB0ZXh0KQorICAgICAgICAg
ICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZv
aWQgYWRkU3RyZWFtKGluIE1lZGlhU3RyZWFtIHN0cmVhbSkKKyAgICAgICAgICAgIHJhaXNlcyhE
T01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIHJlbW92ZVN0
cmVhbShpbiBNZWRpYVN0cmVhbSBzdHJlYW0pCisgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKKworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTWVkaWFTdHJlYW1MaXN0IGxvY2Fs
U3RyZWFtczsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lZGlhU3RyZWFtTGlzdCByZW1v
dGVTdHJlYW1zOworCisgICAgICAgIHZvaWQgY2xvc2UoKQorICAgICAgICAgICAgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CisKKyAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25jb25uZWN0
aW5nOworICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbm9wZW47CisgICAgICAgIGF0
dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubWVzc2FnZTsKKyAgICAgICAgYXR0cmlidXRlIEV2ZW50
TGlzdGVuZXIgb25hZGRzdHJlYW07CisgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9u
cmVtb3Zlc3RyZWFtOworCisgICAgICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQorICAgICAg
ICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gW29wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAg
ICAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW29wdGlvbmFsXSBib29sZWFuIHVzZUNh
cHR1cmUpOworICAgICAgICBib29sZWFuIGRpc3BhdGNoRXZlbnQoaW4gRXZlbnQgZXZlbnQpCisg
ICAgICAgICAgICByYWlzZXMoRXZlbnRFeGNlcHRpb24pOworICAgIH07CisKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uU2lnbmFsaW5nQ2Fs
bGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uU2lnbmFs
aW5nQ2FsbGJhY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wM2M5NWNj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vUGVlckNvbm5l
Y3Rpb25TaWduYWxpbmdDYWxsYmFjay5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisg
KiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgUGVlckNvbm5lY3Rpb25TaWduYWxpbmdDYWxsYmFja19oCisjZGVmaW5lIFBlZXJD
b25uZWN0aW9uU2lnbmFsaW5nQ2FsbGJhY2tfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgUGVlckNvbm5lY3Rpb247CisKK2NsYXNzIFBlZXJDb25uZWN0aW9uU2lnbmFsaW5nQ2Fs
bGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxQZWVyQ29ubmVjdGlvblNpZ25hbGluZ0NhbGxiYWNr
PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+UGVlckNvbm5lY3Rpb25TaWduYWxpbmdDYWxsYmFj
aygpIHsgfQorCisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgUGVlckNvbm5lY3Rpb24qIHNvdXJjZSkgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFBl
ZXJDb25uZWN0aW9uU2lnbmFsaW5nQ2FsbGJhY2tfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25TaWduYWxpbmdDYWxsYmFjay5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvblNpZ25hbGluZ0NhbGxiYWNrLmlk
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OWE5YTRhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25TaWduYWxp
bmdDYWxsYmFjay5pZGwKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGNv
cmUgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFN
LAorICAgICAgICBDYWxsYmFjaz1GdW5jdGlvbk9ubHkKKyAgICBdIFBlZXJDb25uZWN0aW9uU2ln
bmFsaW5nQ2FsbGJhY2sgeworICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50KGluIERPTVN0cmlu
ZyBtZXNzYWdlLCBpbiBQZWVyQ29ubmVjdGlvbiBzb3VyY2UpOworICAgIH07CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uYzEwOWFmNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNsaWVudC5oCkBAIC0wLDAgKzEsNTggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgRXJpY3Nzb24g
bm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBVc2VyTWVkaWFDbGllbnRfaAorI2RlZmluZSBVc2VyTWVkaWFDbGllbnRfaAor
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgi
CisjaW5jbHVkZSAiVXNlck1lZGlhQ29udHJvbGxlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFVzZXJNZWRpYUNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIHVz
ZXJNZWRpYUNvbnRyb2xsZXJEZXN0cm95ZWQoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdFVzZXJNZWRpYShjb25zdCBTdHJpbmcmIHJlcXVlc3RJZCwgUGFzc1JlZlB0cjxVc2VyTWVk
aWFSZXF1ZXN0PikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxVc2VyTWVkaWFSZXF1ZXN0
KGNvbnN0IFN0cmluZyYgcmVxdWVzdElkKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgdXNlck1l
ZGlhUXVlcnlDb21wbGV0ZWQoY29uc3QgU3RyaW5nJiBxdWVyeUlkLCBjb25zdCBNZWRpYVN0cmVh
bUNvbXBvbmVudExpc3QmKSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIH5Vc2VyTWVk
aWFDbGllbnQoKSB7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBVc2VyTWVkaWFDbGllbnRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjRmYmNmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5jcHAK
QEAgLTAsMCArMSwxMjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgRXJpY3Nzb24gQUIu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIg
dGhlIG5hbWUgb2YgRXJpY3Nzb24gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisg
KiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlVzZXJNZWRpYUNvbnRyb2xsZXIuaCIKKworI2lu
Y2x1ZGUgIkxvY2FsTWVkaWFTdHJlYW0uaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVk
ZSAiTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgorI2luY2x1ZGUgIlVVSUQuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDbGllbnQuaCIKKyNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVXNlck1l
ZGlhQ29udHJvbGxlcjo6VXNlck1lZGlhQ29udHJvbGxlcihQYWdlKiBwYWdlLCBVc2VyTWVkaWFD
bGllbnQqIGNsaWVudCkKKyAgICA6IG1fcGFnZShwYWdlKQorICAgICwgbV9jbGllbnQoY2xpZW50
KQoreworfQorCitVc2VyTWVkaWFDb250cm9sbGVyOjp+VXNlck1lZGlhQ29udHJvbGxlcigpCit7
CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+dXNlck1lZGlhQ29udHJvbGxl
ckRlc3Ryb3llZCgpOworfQorCit2b2lkIFVzZXJNZWRpYUNvbnRyb2xsZXI6OnJlcXVlc3RVc2Vy
TWVkaWEoUGFzc1JlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiByZXF1ZXN0LCBQYXNzUmVmUHRyPE5h
dmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLAorICAgICAg
ICBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJh
Y2ssIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgaWYgKCFtX2NsaWVu
dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIHJlcXVlc3RJZCA9IGNyZWF0ZUNhbm9u
aWNhbFVVSURTdHJpbmcoKTsKKyAgICBtX2NhbGxiYWNrQnVuZGxlcy5hZGQocmVxdWVzdElkLCBV
c2VyTWVkaWFDYWxsYmFja0J1bmRsZTo6Y3JlYXRlKHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxs
YmFjaywgY29udGV4dCkpOworCisgICAgbV9jbGllbnQtPnJlcXVlc3RVc2VyTWVkaWEocmVxdWVz
dElkLCByZXF1ZXN0KTsKK30KKwordm9pZCBVc2VyTWVkaWFDb250cm9sbGVyOjpjYW5jZWxVc2Vy
TWVkaWFSZXF1ZXN0KGNvbnN0IFN0cmluZyYgcmVxdWVzdElkKQoreworICAgIGlmIChtX2NsaWVu
dCkKKyAgICAgICAgbV9jbGllbnQtPmNhbmNlbFVzZXJNZWRpYVJlcXVlc3QocmVxdWVzdElkKTsK
K30KKwordm9pZCBVc2VyTWVkaWFDb250cm9sbGVyOjpjYW5jZWxBbGxVc2VyTWVkaWFSZXF1ZXN0
cygpCit7CisgICAgZm9yIChDYWxsYmFja0J1bmRsZU1hcDo6aXRlcmF0b3IgYnVuZGxlSXQgPSBt
X2NhbGxiYWNrQnVuZGxlcy5iZWdpbigpOyBidW5kbGVJdCAhPSBtX2NhbGxiYWNrQnVuZGxlcy5l
bmQoKTsgKytidW5kbGVJdCkKKyAgICAgICAgY2FuY2VsVXNlck1lZGlhUmVxdWVzdChidW5kbGVJ
dC0+Zmlyc3QpOworCisgICAgbV9jYWxsYmFja0J1bmRsZXMuY2xlYXIoKTsKK30KKwordm9pZCBV
c2VyTWVkaWFDb250cm9sbGVyOjp1c2VyTWVkaWFSZXF1ZXN0U3VjY2VlZGVkKGNvbnN0IFN0cmlu
ZyYgcmVxdWVzdElkLCBjb25zdCBNZWRpYVN0cmVhbUNvbXBvbmVudExpc3QmIGNvbXBvbmVudHMp
Cit7CisgICAgTE9HKEdldFVzZXJNZWRpYSwgIkdldFVzZXJNZWRpYSAtIHVzZXJNZWRpYVJlcXVl
c3RTdWNjZWVkZWQgcmVxdWVzdElkOiAlcyIsIHJlcXVlc3RJZC5hc2NpaSgpLmRhdGEoKSk7CisK
KyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvbXBvbmVudHMuc2l6ZSgpOyBpKyspCisgICAg
ICAgIExPRyhHZXRVc2VyTWVkaWEsICIlZCAtIGlkOiAlcywgdHlwZTogJWQsIG5hbWU6ICVzIiwg
KGludClpLCBjb21wb25lbnRzW2ldLT5pZC5hc2NpaSgpLmRhdGEoKSwgY29tcG9uZW50c1tpXS0+
dHlwZSwgY29tcG9uZW50c1tpXS0+bmFtZS5hc2NpaSgpLmRhdGEoKSk7CisKKyAgICBSZWZQdHI8
VXNlck1lZGlhQ2FsbGJhY2tCdW5kbGU+IGNhbGxiYWNrQnVuZGxlID0gbV9jYWxsYmFja0J1bmRs
ZXMudGFrZShyZXF1ZXN0SWQpOworICAgIGlmICghY2FsbGJhY2tCdW5kbGUpCisgICAgICAgIHJl
dHVybjsKKworICAgIFJlZlB0cjxMb2NhbE1lZGlhU3RyZWFtPiBzdHJlYW0gPSBMb2NhbE1lZGlh
U3RyZWFtOjpjcmVhdGUocmVxdWVzdElkLCBjb21wb25lbnRzLCBjYWxsYmFja0J1bmRsZS0+Y29u
dGV4dCk7CisgICAgY2FsbGJhY2tCdW5kbGUtPnN1Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZlbnQo
c3RyZWFtLmdldCgpKTsKK30KKwordm9pZCBVc2VyTWVkaWFDb250cm9sbGVyOjp1c2VyTWVkaWFS
ZXF1ZXN0RmFpbGVkKGNvbnN0IFN0cmluZyYgcmVxdWVzdElkKQoreworICAgIFJlZlB0cjxVc2Vy
TWVkaWFDYWxsYmFja0J1bmRsZT4gY2FsbGJhY2tCdW5kbGUgPSBtX2NhbGxiYWNrQnVuZGxlcy50
YWtlKHJlcXVlc3RJZCk7CisgICAgaWYgKGNhbGxiYWNrQnVuZGxlICYmIGNhbGxiYWNrQnVuZGxl
LT5lcnJvckNhbGxiYWNrKSB7CisgICAgICAgIFJlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJv
cj4gZXJyb3IgPSBOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvcjo6Y3JlYXRlKE5hdmlnYXRvclVzZXJN
ZWRpYUVycm9yOjpQRVJNSVNTSU9OX0RFTklFRCk7CisgICAgICAgIGNhbGxiYWNrQnVuZGxlLT5l
cnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChlcnJvci5nZXQoKSk7CisgICAgfQorfQorCit2b2lk
IFVzZXJNZWRpYUNvbnRyb2xsZXI6OnF1ZXJ5VXNlck1lZGlhKGNvbnN0IFN0cmluZyYgcXVlcnlJ
ZCwgaW50IG1lZGlhVHlwZXMpCit7CisgICAgbWVkaWFTdHJlYW1NYW5hZ2VyKCkucXVlcnlVc2Vy
TWVkaWEocXVlcnlJZCwgbWVkaWFUeXBlcywgdGhpcyk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ29u
dHJvbGxlcjo6dXNlck1lZGlhUXVlcnlDb21wbGV0ZWQoY29uc3QgU3RyaW5nJiBxdWVyeUlkLCBj
b25zdCBNZWRpYVN0cmVhbUNvbXBvbmVudExpc3QmIGNvbXBvbmVudHMpCit7CisgICAgaWYgKG1f
Y2xpZW50KQorICAgICAgICBtX2NsaWVudC0+dXNlck1lZGlhUXVlcnlDb21wbGV0ZWQocXVlcnlJ
ZCwgY29tcG9uZW50cyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0
cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9V
c2VyTWVkaWFDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MGY4MWNlOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYUNvbnRyb2xsZXIuaApAQCAtMCwwICsxLDEzNSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0
aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBFcmljc3NvbiBub3IgdGhlIG5hbWVzIG9m
IGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFVzZXJN
ZWRpYUNvbnRyb2xsZXJfaAorI2RlZmluZSBVc2VyTWVkaWFDb250cm9sbGVyX2gKKworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZWRpYVN0cmVhbU1hbmFnZXIuaCIKKyNp
bmNsdWRlICJOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmgiCisjaW5jbHVkZSAiTmF2
aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFBhZ2U7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3Mg
VXNlck1lZGlhQ2xpZW50OworCitzdHJ1Y3QgVXNlck1lZGlhUmVxdWVzdCA6IHB1YmxpYyBSZWZD
b3VudGVkPFVzZXJNZWRpYVJlcXVlc3Q+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxVc2VyTWVkaWFSZXF1ZXN0PiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBVc2VyTWVkaWFSZXF1ZXN0KCkpOworICAgIH0KKworICAgIGJvb2wgYXVkaW87Cisg
ICAgYm9vbCB2aWRlbzsKKworICAgIGJvb2wgYXVkaW9QcmVmZXJlbmNlRGVmYXVsdDsKKyAgICBi
b29sIHZpZGVvUHJlZmVyZW5jZURlZmF1bHQ7CisKKyAgICBib29sIGNhbWVyYVByZWZlcmVuY2VV
c2VyOworICAgIGJvb2wgY2FtZXJhUHJlZmVyZW5jZUVudmlyb25tZW50OworCisgICAgU3RyaW5n
IG9yaWdpbjsKKworcHJpdmF0ZToKKyAgICBVc2VyTWVkaWFSZXF1ZXN0KCkKKyAgICAgICAgOiBh
dWRpbyhmYWxzZSkKKyAgICAgICAgLCB2aWRlbyhmYWxzZSkKKyAgICAgICAgLCBhdWRpb1ByZWZl
cmVuY2VEZWZhdWx0KGZhbHNlKQorICAgICAgICAsIHZpZGVvUHJlZmVyZW5jZURlZmF1bHQoZmFs
c2UpCisgICAgICAgICwgY2FtZXJhUHJlZmVyZW5jZVVzZXIoZmFsc2UpCisgICAgICAgICwgY2Ft
ZXJhUHJlZmVyZW5jZUVudmlyb25tZW50KGZhbHNlKQorICAgIHsgfQorfTsKKworc3RydWN0IFVz
ZXJNZWRpYUNhbGxiYWNrQnVuZGxlIDogcHVibGljIFJlZkNvdW50ZWQ8VXNlck1lZGlhQ2FsbGJh
Y2tCdW5kbGU+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxVc2VyTWVkaWFDYWxs
YmFja0J1bmRsZT4gY3JlYXRlKFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0Nh
bGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssCisgICAgICAgICAgICBQYXNzUmVmUHRyPE5hdmlnYXRv
clVzZXJNZWRpYUVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2ssCisgICAgICAgICAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBVc2VyTWVkaWFDYWxsYmFja0J1bmRsZShzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2Fs
bGJhY2ssIGNvbnRleHQpKTsKKyAgICB9CisKKyAgICBSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlh
U3VjY2Vzc0NhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2s7CisgICAgUmVmUHRyPE5hdmlnYXRvclVz
ZXJNZWRpYUVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2s7CisgICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dDsKKworcHJpdmF0ZToKKyAgICBVc2VyTWVkaWFDYWxsYmFja0J1bmRs
ZShQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaz4gc3VjY2Vzc0Nh
bGxiYWNrQXJnLAorICAgICAgICAgICAgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJv
ckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrQXJnLAorICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dEFyZykKKyAgICAgICAgOiBzdWNjZXNzQ2FsbGJhY2soc3VjY2Vzc0Nh
bGxiYWNrQXJnKQorICAgICAgICAsIGVycm9yQ2FsbGJhY2soZXJyb3JDYWxsYmFja0FyZykKKyAg
ICAgICAgLCBjb250ZXh0KGNvbnRleHRBcmcpCisgICAgeyB9Cit9OworCitjbGFzcyBVc2VyTWVk
aWFDb250cm9sbGVyIDogcHVibGljIFVzZXJNZWRpYVF1ZXJ5Q2xpZW50IHsKKyAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShVc2VyTWVkaWFDb250cm9sbGVyKTsKK3B1YmxpYzoKKyAgICBVc2VyTWVk
aWFDb250cm9sbGVyKFBhZ2UqLCBVc2VyTWVkaWFDbGllbnQqKTsKKyAgICB+VXNlck1lZGlhQ29u
dHJvbGxlcigpOworCisgICAgdm9pZCByZXF1ZXN0VXNlck1lZGlhKFBhc3NSZWZQdHI8VXNlck1l
ZGlhUmVxdWVzdD4sIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNr
PiwKKyAgICAgICAgICAgIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFj
az4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKyAgICB2b2lkIGNhbmNlbFVzZXJNZWRpYVJl
cXVlc3QoY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQpOworICAgIHZvaWQgY2FuY2VsQWxsVXNlck1l
ZGlhUmVxdWVzdHMoKTsKKworICAgIHZvaWQgdXNlck1lZGlhUmVxdWVzdFN1Y2NlZWRlZChjb25z
dCBTdHJpbmcmIHJlcXVlc3RJZCwgY29uc3QgTWVkaWFTdHJlYW1Db21wb25lbnRMaXN0Jik7Cisg
ICAgdm9pZCB1c2VyTWVkaWFSZXF1ZXN0RmFpbGVkKGNvbnN0IFN0cmluZyYgcmVxdWVzdElkKTsK
KworICAgIFVzZXJNZWRpYUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7
IH0KKworICAgIHZvaWQgcXVlcnlVc2VyTWVkaWEoY29uc3QgU3RyaW5nJiBxdWVyeUlkLCBpbnQg
bWVkaWFUeXBlcyk7CisKKyAgICAvLyBVc2VyTWVkaWFRdWVyeUNsaWVudCBpbnRlcmZhY2UKKyAg
ICB2b2lkIHVzZXJNZWRpYVF1ZXJ5Q29tcGxldGVkKGNvbnN0IFN0cmluZyYgcXVlcnlJZCwgY29u
c3QgTWVkaWFTdHJlYW1Db21wb25lbnRMaXN0Jik7CisKK3ByaXZhdGU6CisgICAgUGFnZSogbV9w
YWdlOworICAgIFVzZXJNZWRpYUNsaWVudCogbV9jbGllbnQ7CisKKyAgICB0eXBlZGVmIEhhc2hN
YXA8U3RyaW5nLCBSZWZQdHI8VXNlck1lZGlhQ2FsbGJhY2tCdW5kbGU+ID4gQ2FsbGJhY2tCdW5k
bGVNYXA7CisgICAgQ2FsbGJhY2tCdW5kbGVNYXAgbV9jYWxsYmFja0J1bmRsZXM7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQor
CisjZW5kaWYgLy8gVXNlck1lZGlhQ29udHJvbGxlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wMnAvTWVkaWFTdHJlYW1FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wMnAvTWVkaWFT
dHJlYW1FdmVudC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdjMDAyMTIuLjAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcDJwL01lZGlhU3RyZWFtRXZlbnQuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0g
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtRXZlbnQuaCIKLQotI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCi0KLSNpbmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW0u
aCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1QYXNzUmVmUHRyPE1lZGlhU3RyZWFtRXZlbnQ+
IE1lZGlhU3RyZWFtRXZlbnQ6OmNyZWF0ZSgpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBN
ZWRpYVN0cmVhbUV2ZW50KTsKLX0KLQotUGFzc1JlZlB0cjxNZWRpYVN0cmVhbUV2ZW50PiBNZWRp
YVN0cmVhbUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1
YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0pCi17
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYVN0cmVhbUV2ZW50KHR5cGUsIGNhbkJ1YmJs
ZSwgY2FuY2VsYWJsZSwgc3RyZWFtKSk7Ci19Ci0KLQotTWVkaWFTdHJlYW1FdmVudDo6TWVkaWFT
dHJlYW1FdmVudCgpCi17Ci19Ci0KLU1lZGlhU3RyZWFtRXZlbnQ6Ok1lZGlhU3RyZWFtRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxl
LCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0pCi0gICAgOiBFdmVudCh0eXBlLCBjYW5C
dWJibGUsIGNhbmNlbGFibGUpCi0gICAgLCBtX3N0cmVhbShzdHJlYW0pCi17Ci19Ci0KLU1lZGlh
U3RyZWFtRXZlbnQ6On5NZWRpYVN0cmVhbUV2ZW50KCkKLXsKLX0KLQotdm9pZCBNZWRpYVN0cmVh
bUV2ZW50Ojppbml0TWVkaWFTdHJlYW1FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJv
b2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IHN0
cmVhbSkKLXsKLSAgICBpZiAoZGlzcGF0Y2hlZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBp
bml0RXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlKTsKLQotICAgIG1fc3RyZWFtID0g
c3RyZWFtOwotfQotCi1QYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBNZWRpYVN0cmVhbUV2ZW50Ojpz
dHJlYW0oKSBjb25zdAotewotICAgIHJldHVybiBtX3N0cmVhbTsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKLQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcDJwL01lZGlhU3RyZWFtRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3AycC9NZWRpYVN0cmVhbUV2ZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0
ZTI1ZjUuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcDJwL01lZGlhU3RyZWFtRXZlbnQu
aAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLSAqIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYg
TWVkaWFTdHJlYW1FdmVudF9oCi0jZGVmaW5lIE1lZGlhU3RyZWFtRXZlbnRfaAotCi0jaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIkV2ZW50LmgiCi0jaW5jbHVkZSA8d3RmL3Rl
eHQvQXRvbWljU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgU3RyZWFt
OwotCi1jbGFzcyBNZWRpYVN0cmVhbUV2ZW50IDogcHVibGljIEV2ZW50IHsKLXB1YmxpYzoKLSAg
ICB2aXJ0dWFsIH5NZWRpYVN0cmVhbUV2ZW50KCk7Ci0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxN
ZWRpYVN0cmVhbUV2ZW50PiBjcmVhdGUoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYVN0
cmVhbUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJs
ZSwgYm9vbCBjYW5jZWxhYmxlLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPik7Ci0KLSAgICB2b2lk
IGluaXRNZWRpYVN0cmVhbUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5C
dWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4pOwotCi0gICAg
Ly8gRnJvbSBFdmVudFRhcmdldC4KLSAgICB2aXJ0dWFsIGJvb2wgaXNNZWRpYVN0cmVhbUV2ZW50
KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotCi0gICAgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4g
c3RyZWFtKCkgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgTWVkaWFTdHJlYW1FdmVudCgpOwotICAg
IE1lZGlhU3RyZWFtRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJs
ZSwgYm9vbCBjYW5jZWxhYmxlLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPik7Ci0KLSAgICBSZWZQ
dHI8TWVkaWFTdHJlYW0+IG1fc3RyZWFtOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQot
Ci0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2VuZGlmIC8vIE1lZGlhU3RyZWFt
RXZlbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcDJwL01lZGlhU3RyZWFtRXZlbnQu
aWRsIGIvU291cmNlL1dlYkNvcmUvcDJwL01lZGlhU3RyZWFtRXZlbnQuaWRsCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzMTViYjc5Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3AycC9NZWRpYVN0cmVhbUV2ZW50LmlkbAorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0g
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMK
LSAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLW1vZHVsZSBwMnAgewotCi0gICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBX
SEFUV0cgc3BlY2lmaWNhdGlvbjoKLSAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mv
d2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS92aWRlby1jb25mZXJlbmNpbmctYW5kLXBl
ZXItdG8tcGVlci1jb21tdW5pY2F0aW9uLmh0bWwjbWVkaWFzdHJlYW1ldmVudAotICAgIGludGVy
ZmFjZSBbCi0gICAgICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKLSAgICBdIE1lZGlhU3Ry
ZWFtRXZlbnQgOiBFdmVudCB7Ci0gICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lZGlhU3RyZWFt
IHN0cmVhbTsKLQotICAgICAgIHZvaWQgaW5pdE1lZGlhU3RyZWFtRXZlbnQoaW4gW09wdGlvbmFs
PUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgdHlwZUFyZywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gYm9v
bGVhbiBjYW5CdWJibGVBcmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGJvb2xlYW4gY2FuY2VsYWJsZUFyZywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1
bHRWYWx1ZV0gTWVkaWFTdHJlYW0gc3RyZWFtQXJnKTsKLSAgICB9OwotCi19CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wMnAvUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
cDJwL1BlZXJDb25uZWN0aW9uLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmRh
M2VlMy4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wMnAvUGVlckNvbm5lY3Rpb24uY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsMzEyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLSAqIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJQZWVyQ29ubmVjdGlvbi5oIgotCi0jaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIkRpc3BhdGNoVGFzay5oIgotI2luY2x1ZGUgIkVycm9y
RXZlbnQuaCIKLSNpbmNsdWRlICJFdmVudC5oIgotI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLSNp
bmNsdWRlICJNZWRpYVN0cmVhbS5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtRXZlbnQuaCIKLSNp
bmNsdWRlICJNZWRpYVN0cmVhbUxpc3QuaCIKLSNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKLSNp
bmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSAiU2lnbmFsaW5nQ2Fs
bGJhY2suaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1QYXNzUmVmUHRyPFBlZXJDb25uZWN0
aW9uPiBQZWVyQ29ubmVjdGlvbjo6Y3JlYXRlKE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKiBm
cmFtZUNvbnRyb2xsZXIsIGludCBpZCwgY29uc3QgU3RyaW5nJiBjb25maWd1cmF0aW9uLCBQYXNz
UmVmUHRyPFNpZ25hbGluZ0NhbGxiYWNrPiBzaWduYWxpbmdDYWxsYmFjaykKLXsKLSAgICAvLyBG
SVhNRTogVmVyaWZ5IHRoYXQgY29uZmlndXJhdGlvbiBmb2xsb3dzIHRoZSBzcGVjaWZpZWQgZm9y
bWF0LCBpZiBub3QgcmV0dXJuIG51bGwuCi0KLSAgICBSZWZQdHI8UGVlckNvbm5lY3Rpb24+IHBl
ZXJDb25uZWN0aW9uID0gYWRvcHRSZWYobmV3IFBlZXJDb25uZWN0aW9uKGZyYW1lQ29udHJvbGxl
ciwgaWQsIGNvbmZpZ3VyYXRpb24sIHNpZ25hbGluZ0NhbGxiYWNrKSk7Ci0gICAgcGVlckNvbm5l
Y3Rpb24tPmluaXQoKTsKLSAgICByZXR1cm4gcGVlckNvbm5lY3Rpb24ucmVsZWFzZSgpOwotfQot
Ci1QZWVyQ29ubmVjdGlvbjo6UGVlckNvbm5lY3Rpb24oTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xs
ZXIqIGZyYW1lQ29udHJvbGxlciwgaW50IGlkLCBjb25zdCBTdHJpbmcmIGNvbmZpZ3VyYXRpb24s
IFBhc3NSZWZQdHI8U2lnbmFsaW5nQ2FsbGJhY2s+IHNpZ25hbGluZ0NhbGxiYWNrKQotICAgIDog
UGVlckNvbm5lY3Rpb25DbGllbnQoZnJhbWVDb250cm9sbGVyLCBpZCkKLSAgICAsIG1fY29uZmln
dXJhdGlvbihjb25maWd1cmF0aW9uKQotICAgICwgbV9yZWFkeVN0YXRlKE5FVykKLSAgICAsIG1f
c2lnbmFsaW5nQ2FsbGJhY2soc2lnbmFsaW5nQ2FsbGJhY2spCi17Ci0gICAgQVNTRVJUKGZyYW1l
Q29udHJvbGxlcik7Ci0gICAgbV9sb2NhbFN0cmVhbUxpc3QgPSBNZWRpYVN0cmVhbUxpc3Q6OmNy
ZWF0ZSgpOwotICAgIG1fcmVtb3RlU3RyZWFtTGlzdCA9IE1lZGlhU3RyZWFtTGlzdDo6Y3JlYXRl
KCk7Ci19Ci0KLXZvaWQgUGVlckNvbm5lY3Rpb246OmluaXQoKQotewotICAgIGlmIChNZWRpYVN0
cmVhbUZyYW1lQ29udHJvbGxlciogZnJhbWVDb250cm9sbGVyID0gbWVkaWFTdHJlYW1GcmFtZUNv
bnRyb2xsZXIoKSkKLSAgICAgICAgZnJhbWVDb250cm9sbGVyLT5uZXdQZWVyQ29ubmVjdGlvbiht
X2NsaWVudElkLCBtX2NvbmZpZ3VyYXRpb24pOwotCi0gICAgcG9zdFN0YXJ0TmVnb3RpYXRpb25U
YXNrKCk7Ci19Ci0KLVBlZXJDb25uZWN0aW9uOjp+UGVlckNvbm5lY3Rpb24oKQotewotfQotCi1N
ZWRpYVN0cmVhbUxpc3QqIFBlZXJDb25uZWN0aW9uOjpsb2NhbFN0cmVhbXMoKQotewotICAgIHJl
dHVybiBtX2xvY2FsU3RyZWFtTGlzdC5nZXQoKTsKLX0KLQotTWVkaWFTdHJlYW1MaXN0KiBQZWVy
Q29ubmVjdGlvbjo6cmVtb3RlU3RyZWFtcygpCi17Ci0gICAgcmV0dXJuIG1fcmVtb3RlU3RyZWFt
TGlzdC5nZXQoKTsKLX0KLQotdm9pZCBQZWVyQ29ubmVjdGlvbjo6cHJvY2Vzc1NpZ25hbGluZ01l
c3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBp
ZiAobV9yZWFkeVN0YXRlID09IENMT1NFRCkgewotICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVf
RVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKG1lZGlhU3RyZWFtRnJhbWVD
b250cm9sbGVyKCkpCi0gICAgICAgIG1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKCktPnByb2Nl
c3NTaWduYWxpbmdNZXNzYWdlKG1fY2xpZW50SWQsIG1lc3NhZ2UpOwotfQotCi12b2lkIFBlZXJD
b25uZWN0aW9uOjpzZW5kKGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17
Ci0gICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBDTE9TRUQpIHsKLSAgICAgICAgZWMgPSBJTlZBTElE
X1NUQVRFX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIENTdHJpbmcgdXRmOCA9
IHRleHQudXRmOCgpOwotICAgIGlmICh1dGY4Lmxlbmd0aCgpID4ga01heE1lc3NhZ2VVVEY4TGVu
Z3RoKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotCi0gICAgaWYgKG1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKCkpCi0gICAgICAg
IG1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKCktPm1lc3NhZ2UobV9jbGllbnRJZCwgdGV4dCk7
Ci19Ci0KLXZvaWQgUGVlckNvbm5lY3Rpb246OmFkZFN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3Ry
ZWFtPiBwcnBTdHJlYW0sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmIChtX3JlYWR5U3Rh
dGUgPT0gQ0xPU0VEKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBUaGUgU3RyZWFtIG9iamVjdCBpcyBndWFyYW50ZWVk
IHRvIGV4aXN0IHNpbmNlIFN0cmljdFR5cGVDaGVja2luZyBpcyBzZXQgaW4gdGhlIGlkbC4KLQot
ICAgIFJlZlB0cjxNZWRpYVN0cmVhbT4gc3RyZWFtID0gcHJwU3RyZWFtOwotCi0gICAgaWYgKG1f
bG9jYWxTdHJlYW1MaXN0LT5jb250YWlucyhzdHJlYW0pKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBtX2xvY2FsU3RyZWFtTGlzdC0+YWRkKHN0cmVhbSk7Ci0KLSAgICBpZiAobWVkaWFTdHJlYW1G
cmFtZUNvbnRyb2xsZXIoKSkKLSAgICAgICAgbWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIoKS0+
YWRkU3RyZWFtKG1fY2xpZW50SWQsIHN0cmVhbSk7Ci19Ci0KLXZvaWQgUGVlckNvbm5lY3Rpb246
OnJlbW92ZVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBwcnBTdHJlYW0sIEV4Y2VwdGlv
bkNvZGUmIGVjKQotewotICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gQ0xPU0VEKSB7Ci0gICAgICAg
IGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAv
LyBUaGUgU3RyZWFtIG9iamVjdCBpcyBndWFyYW50ZWVkIHRvIGV4aXN0IHNpbmNlIFN0cmljdFR5
cGVDaGVja2luZyBpcyBzZXQgaW4gdGhlIGlkbC4KLQotICAgIFJlZlB0cjxNZWRpYVN0cmVhbT4g
c3RyZWFtID0gcHJwU3RyZWFtOwotCi0gICAgaWYgKCFtX2xvY2FsU3RyZWFtTGlzdC0+Y29udGFp
bnMoc3RyZWFtKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9sb2NhbFN0cmVhbUxpc3QtPnJl
bW92ZShzdHJlYW0pOwotCi0gICAgaWYgKG1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKCkpCi0g
ICAgICAgIG1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKCktPnJlbW92ZVN0cmVhbShtX2NsaWVu
dElkLCBzdHJlYW0pOwotfQotCi12b2lkIFBlZXJDb25uZWN0aW9uOjpjbG9zZShFeGNlcHRpb25D
b2RlJiBlYykKLXsKLSAgICBpZiAobV9yZWFkeVN0YXRlID09IENMT1NFRCkgewotICAgICAgICBl
YyA9IElOVkFMSURfU1RBVEVfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYg
KG1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKCkpCi0gICAgICAgIG1lZGlhU3RyZWFtRnJhbWVD
b250cm9sbGVyKCktPmNsb3NlUGVlckNvbm5lY3Rpb24obV9jbGllbnRJZCk7Ci0KLSAgICBtX3Jl
YWR5U3RhdGUgPSBDTE9TRUQ7Ci19Ci0KLXZvaWQgUGVlckNvbm5lY3Rpb246Om9uTmVnb3RpYXRp
b25TdGFydGVkKCkKLXsKLSAgICBtX3JlYWR5U3RhdGUgPSBORUdPVElBVElORzsKLQotICAgIHBv
c3RTaW1wbGVFdmVudChldmVudE5hbWVzKCkuY29ubmVjdGluZ0V2ZW50KTsKLX0KLQotdm9pZCBQ
ZWVyQ29ubmVjdGlvbjo6b25OZWdvdGlhdGlvbkRvbmUoKQotewotICAgIG1fcmVhZHlTdGF0ZSA9
IEFDVElWRTsKLQotICAgIHBvc3RTaW1wbGVFdmVudChldmVudE5hbWVzKCkub3BlbkV2ZW50KTsK
LX0KLQotdm9pZCBQZWVyQ29ubmVjdGlvbjo6c3RyZWFtQWRkZWQoUGFzc1JlZlB0cjxNZWRpYVN0
cmVhbT4gcHJwU3RyZWFtKQotewotICAgIFJlZlB0cjxNZWRpYVN0cmVhbT4gc3RyZWFtID0gcHJw
U3RyZWFtOwotICAgIG1fcmVtb3RlU3RyZWFtTGlzdC0+YWRkKHN0cmVhbSk7Ci0gICAgcG9zdFN0
cmVhbUFkZGVkRXZlbnQoc3RyZWFtKTsKLX0KLQotdm9pZCBQZWVyQ29ubmVjdGlvbjo6c3RyZWFt
UmVtb3ZlZChjb25zdCBTdHJpbmcmIHN0cmVhbUxhYmVsKQotewotICAgIEFTU0VSVChtX3JlbW90
ZVN0cmVhbUxpc3QtPmNvbnRhaW5zKHN0cmVhbUxhYmVsKSk7Ci0KLSAgICBSZWZQdHI8TWVkaWFT
dHJlYW0+IHN0cmVhbSA9IG1fcmVtb3RlU3RyZWFtTGlzdC0+Z2V0KHN0cmVhbUxhYmVsKTsKLSAg
ICBtX3JlbW90ZVN0cmVhbUxpc3QtPnJlbW92ZShzdHJlYW0pOwotICAgIHBvc3RTdHJlYW1SZW1v
dmVkRXZlbnQoc3RyZWFtKTsKLX0KLQotdm9pZCBQZWVyQ29ubmVjdGlvbjo6b25NZXNzYWdlKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSkKLXsKLSAgICBwb3N0TWVzc2FnZUV2ZW50KG1lc3NhZ2UpOwot
fQotCi12b2lkIFBlZXJDb25uZWN0aW9uOjpvblNpZ25hbGluZ01lc3NhZ2UoY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQotewotICAgIHBvc3RTaWduYWxpbmdFdmVudChtZXNzYWdlKTsKLX0KLQotUGVl
ckNvbm5lY3Rpb24qIFBlZXJDb25uZWN0aW9uOjp0b1BlZXJDb25uZWN0aW9uKCkKLXsKLSAgICBy
ZXR1cm4gdGhpczsKLX0KLQotU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogUGVlckNvbm5lY3Rpb246
OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAotewotICAgIHJldHVybiBtZWRpYVN0cmVh
bUZyYW1lQ29udHJvbGxlcigpID8gbWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIoKS0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpIDogMDsKLX0KLQotRXZlbnRUYXJnZXREYXRhKiBQZWVyQ29ubmVj
dGlvbjo6ZXZlbnRUYXJnZXREYXRhKCkKLXsKLSAgICByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRh
OwotfQotCi1FdmVudFRhcmdldERhdGEqIFBlZXJDb25uZWN0aW9uOjplbnN1cmVFdmVudFRhcmdl
dERhdGEoKQotewotICAgIHJldHVybiAmbV9ldmVudFRhcmdldERhdGE7Ci19Ci0KLXZvaWQgUGVl
ckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlRXZlbnQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQotewot
ICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGRhdGEgPSBTZXJpYWxpemVkU2NyaXB0
VmFsdWU6OmNyZWF0ZShtZXNzYWdlKTsKLQotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAgaWYgKCFjb250ZXh0KQotICAg
ICAgICByZXR1cm47Ci0gICAgQVNTRVJUKGNvbnRleHQtPmlzQ29udGV4dFRocmVhZCgpKTsKLSAg
ICBjb250ZXh0LT5wb3N0VGFzayhEaXNwYXRjaFRhc2s8UGVlckNvbm5lY3Rpb24sIGludCwgU2Vy
aWFsaXplZFNjcmlwdFZhbHVlPjo6Y3JlYXRlKHRoaXMsICZQZWVyQ29ubmVjdGlvbjo6ZGlzcGF0
Y2hNZXNzYWdlRXZlbnQsIDAsIGRhdGEucmVsZWFzZSgpKSk7Ci19Ci0KLXZvaWQgUGVlckNvbm5l
Y3Rpb246OnBvc3RTaWduYWxpbmdFdmVudChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCi17Ci0gICAg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KTsKLSAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQoY29udGV4
dC0+aXNDb250ZXh0VGhyZWFkKCkpOwotICAgIGNvbnRleHQtPnBvc3RUYXNrKFNpbXBsZURpc3Bh
dGNoVGFzazxQZWVyQ29ubmVjdGlvbiwgU3RyaW5nPjo6Y3JlYXRlKHRoaXMsICZQZWVyQ29ubmVj
dGlvbjo6ZGlzcGF0Y2hTaWduYWxpbmdFdmVudCwgbWVzc2FnZSkpOwotfQotCi12b2lkIFBlZXJD
b25uZWN0aW9uOjpwb3N0U3RyZWFtQWRkZWRFdmVudChQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBw
cnBTdHJlYW0pCi17Ci0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgIHJldHVybjsK
LSAgICBBU1NFUlQoY29udGV4dC0+aXNDb250ZXh0VGhyZWFkKCkpOwotICAgIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+cG9zdFRhc2soRGlzcGF0Y2hUYXNrPFBlZXJDb25uZWN0aW9uLCBTdHJp
bmcsIE1lZGlhU3RyZWFtPjo6Y3JlYXRlKHRoaXMsICZQZWVyQ29ubmVjdGlvbjo6ZGlzcGF0Y2hT
dHJlYW1FdmVudCwgZXZlbnROYW1lcygpLmFkZHN0cmVhbUV2ZW50LCBwcnBTdHJlYW0pKTsKLX0K
LQotdm9pZCBQZWVyQ29ubmVjdGlvbjo6cG9zdFN0cmVhbVJlbW92ZWRFdmVudChQYXNzUmVmUHRy
PE1lZGlhU3RyZWFtPiBwcnBTdHJlYW0pCi17Ci0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBpZiAoIWNvbnRleHQpCi0g
ICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQoY29udGV4dC0+aXNDb250ZXh0VGhyZWFkKCkpOwot
ICAgIGNvbnRleHQtPnBvc3RUYXNrKERpc3BhdGNoVGFzazxQZWVyQ29ubmVjdGlvbiwgU3RyaW5n
LCBNZWRpYVN0cmVhbT46OmNyZWF0ZSh0aGlzLCAmUGVlckNvbm5lY3Rpb246OmRpc3BhdGNoU3Ry
ZWFtRXZlbnQsIGV2ZW50TmFtZXMoKS5yZW1vdmVzdHJlYW1FdmVudCwgcHJwU3RyZWFtKSk7Ci19
Ci0KLXZvaWQgUGVlckNvbm5lY3Rpb246OnBvc3RTaW1wbGVFdmVudChjb25zdCBTdHJpbmcmIGV2
ZW50TmFtZSkKLXsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpOwotICAgIGlmICghY29udGV4dCkKLSAgICAgICAgcmV0dXJuOwot
ICAgIEFTU0VSVChjb250ZXh0LT5pc0NvbnRleHRUaHJlYWQoKSk7Ci0gICAgY29udGV4dC0+cG9z
dFRhc2soU2ltcGxlRGlzcGF0Y2hUYXNrPFBlZXJDb25uZWN0aW9uLCBTdHJpbmc+OjpjcmVhdGUo
dGhpcywgJlBlZXJDb25uZWN0aW9uOjpkaXNwYXRjaFNpbXBsZUV2ZW50LCBldmVudE5hbWUpKTsK
LX0KLQotdm9pZCBQZWVyQ29ubmVjdGlvbjo6cG9zdFN0YXJ0TmVnb3RpYXRpb25UYXNrKCkKLXsK
LSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpOwotICAgIGlmICghY29udGV4dCkKLSAgICAgICAgcmV0dXJuOwotICAgIEFTU0VSVChj
b250ZXh0LT5pc0NvbnRleHRUaHJlYWQoKSk7Ci0gICAgY29udGV4dC0+cG9zdFRhc2soU2ltcGxl
RGlzcGF0Y2hUYXNrPFBlZXJDb25uZWN0aW9uLCBpbnQ+OjpjcmVhdGUodGhpcywgJlBlZXJDb25u
ZWN0aW9uOjpkaXNwYXRjaFN0YXJ0TmVnb3RpYXRpb25UYXNrLCAwKSk7Ci19Ci0KLXZvaWQgUGVl
ckNvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZUV2ZW50KGNvbnN0IGludCYsIFBhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBkYXRhKQotewotICAgIFJlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IGQgPSBkYXRhOwotICAgIGRpc3BhdGNoRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVh
dGUoUGFzc093blB0cjxNZXNzYWdlUG9ydEFycmF5PigpLCBkKSk7Ci19Ci0KLXZvaWQgUGVlckNv
bm5lY3Rpb246OmRpc3BhdGNoU2lnbmFsaW5nRXZlbnQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQot
ewotICAgIG1fc2lnbmFsaW5nQ2FsbGJhY2stPmhhbmRsZUV2ZW50KG1lc3NhZ2UsIHRoaXMpOwot
fQotCi12b2lkIFBlZXJDb25uZWN0aW9uOjpkaXNwYXRjaFN0cmVhbUV2ZW50KGNvbnN0IFN0cmlu
ZyYgbmFtZSwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gc3RyZWFtKQotewotICAgIFJlZlB0cjxN
ZWRpYVN0cmVhbT4gcyA9IHN0cmVhbTsKLSAgICBkaXNwYXRjaEV2ZW50KE1lZGlhU3RyZWFtRXZl
bnQ6OmNyZWF0ZShuYW1lLCBmYWxzZSwgZmFsc2UsIHMpKTsKLX0KLQotdm9pZCBQZWVyQ29ubmVj
dGlvbjo6ZGlzcGF0Y2hTaW1wbGVFdmVudChjb25zdCBTdHJpbmcmIGV2ZW50TmFtZSkKLXsKLSAg
ICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lLCBmYWxzZSwgZmFsc2UpKTsK
LX0KLQotdm9pZCBQZWVyQ29ubmVjdGlvbjo6ZGlzcGF0Y2hTdGFydE5lZ290aWF0aW9uVGFzayhj
b25zdCBpbnQmKQotewotICAgIGlmIChtZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcigpKQotICAg
ICAgICBtZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcigpLT5zdGFydE5lZ290aWF0aW9uKG1fY2xp
ZW50SWQpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUo
TUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcDJwL1BlZXJDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wMnAvUGVlckNvbm5lY3Rpb24uaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMThkMTY1Yi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
MnAvUGVlckNvbm5lY3Rpb24uaAorKysgL2Rldi9udWxsCkBAIC0xLDEzMSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTgotICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaWZuZGVmIFBlZXJDb25uZWN0aW9uX2gKLSNkZWZpbmUgUGVlckNvbm5lY3Rp
b25faAotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIkV2ZW50VGFyZ2V0
LmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotY2xhc3MgTWVkaWFTdHJlYW07Ci1jbGFzcyBNZWRpYVN0cmVhbUxpc3Q7
Ci1jbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwotY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZh
bHVlOwotY2xhc3MgU2lnbmFsaW5nQ2FsbGJhY2s7Ci0KLWNsYXNzIFBlZXJDb25uZWN0aW9uIDog
cHVibGljIFJlZkNvdW50ZWQ8UGVlckNvbm5lY3Rpb24+LCBwdWJsaWMgRXZlbnRUYXJnZXQsIHB1
YmxpYyBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcjo6UGVlckNvbm5lY3Rpb25DbGllbnQgewot
cHVibGljOgotICAgIC8vIE5hbWUgYW5kIHZhbHVlcyBvZiB0aGUgZW51bSBtdXN0IG1hdGNoIHRo
ZSBjb3JyZXNzcG9uZGluZyBjb25zdGFudHMgaW4gdGhlIC5pZGwgZmlsZS4KLSAgICBlbnVtIHsK
LSAgICAgICAgTkVXID0gMCwKLSAgICAgICAgTkVHT1RJQVRJTkcgPSAxLAotICAgICAgICBBQ1RJ
VkUgPSAyLAotICAgICAgICBDTE9TRUQgPSAzCi0gICAgfTsKLQotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFBlZXJDb25uZWN0aW9uPiBjcmVhdGUoTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIqLCBp
bnQgaWQsIGNvbnN0IFN0cmluZyYgY29uZmlndXJhdGlvbiwgUGFzc1JlZlB0cjxTaWduYWxpbmdD
YWxsYmFjaz4pOwotICAgIHZpcnR1YWwgflBlZXJDb25uZWN0aW9uKCk7Ci0KLSAgICBNZWRpYVN0
cmVhbUxpc3QqIGxvY2FsU3RyZWFtcygpOwotICAgIE1lZGlhU3RyZWFtTGlzdCogcmVtb3RlU3Ry
ZWFtcygpOwotCi0gICAgdW5zaWduZWQgc2hvcnQgcmVhZHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVhZHlTdGF0ZTsgfQotCi0gICAgdm9pZCBwcm9jZXNzU2lnbmFsaW5nTWVzc2FnZShjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHNlbmQoY29uc3Qg
U3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBhZGRTdHJlYW0oUGFzc1Jl
ZlB0cjxNZWRpYVN0cmVhbT4sIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHJlbW92ZVN0cmVh
bShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgY2xv
c2UoRXhjZXB0aW9uQ29kZSYpOwotCi0gICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5F
Uihjb25uZWN0aW5nKTsKLSAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKG9wZW4p
OwotICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIobWVzc2FnZSk7Ci0gICAgREVG
SU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihhZGRzdHJlYW0pOwotICAgIERFRklORV9BVFRS
SUJVVEVfRVZFTlRfTElTVEVORVIocmVtb3Zlc3RyZWFtKTsKLQotICAgIC8vIEV2ZW50VGFyZ2V0
Ci0gICAgdmlydHVhbCBQZWVyQ29ubmVjdGlvbiogdG9QZWVyQ29ubmVjdGlvbigpOwotCi0gICAg
Ly8gRXZlbnRUYXJnZXQgaW1wbGVtZW50YXRpb24uCi0gICAgdmlydHVhbCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Q7Ci0KLSAgICAvLyBDYWxs
YmFja3MKLSAgICB2b2lkIG9uTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwotICAgIHZv
aWQgb25TaWduYWxpbmdNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7Ci0gICAgdm9pZCBv
bk5lZ290aWF0aW9uU3RhcnRlZCgpOwotICAgIHZvaWQgb25OZWdvdGlhdGlvbkRvbmUoKTsKLSAg
ICB2b2lkIHN0cmVhbUFkZGVkKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+KTsKLSAgICB2b2lkIHN0
cmVhbVJlbW92ZWQoY29uc3QgU3RyaW5nJiBzdHJlYW1MYWJlbCk7Ci0KLSAgICB1c2luZyBSZWZD
b3VudGVkPFBlZXJDb25uZWN0aW9uPjo6cmVmOwotICAgIHVzaW5nIFJlZkNvdW50ZWQ8UGVlckNv
bm5lY3Rpb24+OjpkZXJlZjsKLQotcHJvdGVjdGVkOgotICAgIC8vIEV2ZW50VGFyZ2V0IGltcGxl
bWVudGF0aW9uLgotICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEo
KTsKLSAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZW5zdXJlRXZlbnRUYXJnZXREYXRhKCk7
Ci0KLXByaXZhdGU6Ci0gICAgc3RhdGljIGNvbnN0IHNpemVfdCBrTWF4TWVzc2FnZVVURjhMZW5n
dGggPSA1MDQ7Ci0KLSAgICBQZWVyQ29ubmVjdGlvbihNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxl
ciosIGludCBpZCwgY29uc3QgU3RyaW5nJiBjb25maWd1cmF0aW9uLCBQYXNzUmVmUHRyPFNpZ25h
bGluZ0NhbGxiYWNrPik7Ci0gICAgdm9pZCBpbml0KCk7Ci0KLSAgICB2b2lkIHBvc3RTaW1wbGVF
dmVudChjb25zdCBTdHJpbmcmIGV2ZW50TmFtZSk7Ci0gICAgdm9pZCBwb3N0TWVzc2FnZUV2ZW50
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7Ci0gICAgdm9pZCBwb3N0U2lnbmFsaW5nRXZlbnQoY29u
c3QgU3RyaW5nJiBtZXNzYWdlKTsKLSAgICB2b2lkIHBvc3RTdHJlYW1BZGRlZEV2ZW50KFBhc3NS
ZWZQdHI8TWVkaWFTdHJlYW0+KTsKLSAgICB2b2lkIHBvc3RTdHJlYW1SZW1vdmVkRXZlbnQoUGFz
c1JlZlB0cjxNZWRpYVN0cmVhbT4pOwotICAgIHZvaWQgcG9zdFN0YXJ0TmVnb3RpYXRpb25UYXNr
KCk7Ci0KLSAgICB2b2lkIGRpc3BhdGNoU2ltcGxlRXZlbnQoY29uc3QgU3RyaW5nJiBldmVudE5h
bWUpOwotICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRXZlbnQoY29uc3QgaW50JiwgUGFzc1JlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGRhdGEpOwotICAgIHZvaWQgZGlzcGF0Y2hTaWduYWxp
bmdFdmVudChjb25zdCBTdHJpbmcmIGV2ZW50TmFtZSk7Ci0gICAgdm9pZCBkaXNwYXRjaFN0cmVh
bUV2ZW50KGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4pOwotICAg
IHZvaWQgZGlzcGF0Y2hTdGFydE5lZ290aWF0aW9uVGFzayhjb25zdCBpbnQmKTsKLQotICAgIC8v
IEV2ZW50VGFyZ2V0IGltcGxlbWVudGF0aW9uLgotICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRh
cmdldCgpIHsgcmVmKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIHsg
ZGVyZWYoKTsgfQotCi0gICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOwotCi0g
ICAgU3RyaW5nIG1fY29uZmlndXJhdGlvbjsKLSAgICB1bnNpZ25lZCBzaG9ydCBtX3JlYWR5U3Rh
dGU7Ci0gICAgUmVmUHRyPFNpZ25hbGluZ0NhbGxiYWNrPiBtX3NpZ25hbGluZ0NhbGxiYWNrOwot
ICAgIFJlZlB0cjxNZWRpYVN0cmVhbUxpc3Q+IG1fbG9jYWxTdHJlYW1MaXN0OwotICAgIFJlZlB0
cjxNZWRpYVN0cmVhbUxpc3Q+IG1fcmVtb3RlU3RyZWFtTGlzdDsKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNlbmRpZiAv
LyBQZWVyQ29ubmVjdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wMnAvUGVlckNv
bm5lY3Rpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvcDJwL1BlZXJDb25uZWN0aW9uLmlkbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmM5YTE5ZC4uMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wMnAvUGVlckNvbm5lY3Rpb24uaWRsCisrKyAvZGV2L251bGwKQEAgLTEsNzQgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotbW9kdWxlIHAycCB7Ci0KLSAgICBpbnRlcmZhY2UgWwotICAg
ICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCi0gICAgICAgIENhbkJlQ29uc3RydWN0ZWQs
Ci0gICAgICAgIEN1c3RvbUNvbnN0cnVjdEZ1bmN0aW9uLAotICAgICAgICBDb25zdHJ1Y3RvclBh
cmFtZXRlcnM9MiwKLSAgICAgICAgVjhDdXN0b21Db25zdHJ1Y3RvciwKLSAgICAgICAgRXZlbnRU
YXJnZXQKLSAgICBdIFBlZXJDb25uZWN0aW9uIHsKLSAgICAgICAgdm9pZCBwcm9jZXNzU2lnbmFs
aW5nTWVzc2FnZShpbiBET01TdHJpbmcgbWVzc2FnZSkKLSAgICAgICAgICAgIHJhaXNlcyhET01F
eGNlcHRpb24pOwotCi0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE5FVyA9IDA7Ci0gICAg
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE5FR09USUFUSU5HID0gMTsKLSAgICAgICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgQUNUSVZFID0gMjsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
Q0xPU0VEID0gMzsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHJl
YWR5U3RhdGU7Ci0KLSAgICAgICAgdm9pZCBzZW5kKGluIERPTVN0cmluZyB0ZXh0KQotICAgICAg
ICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmdd
IHZvaWQgYWRkU3RyZWFtKGluIE1lZGlhU3RyZWFtIHN0cmVhbSkKLSAgICAgICAgICAgIHJhaXNl
cyhET01FeGNlcHRpb24pOwotICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIHJlbW92
ZVN0cmVhbShpbiBNZWRpYVN0cmVhbSBzdHJlYW0pCi0gICAgICAgICAgICByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKLQotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTWVkaWFTdHJlYW1MaXN0IGxv
Y2FsU3RyZWFtczsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lZGlhU3RyZWFtTGlzdCBy
ZW1vdGVTdHJlYW1zOwotCi0gICAgICAgIHZvaWQgY2xvc2UoKQotICAgICAgICAgICAgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7Ci0KLSAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25jb25u
ZWN0aW5nOwotICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbm9wZW47Ci0gICAgICAg
IGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubWVzc2FnZTsKLSAgICAgICAgYXR0cmlidXRlIEV2
ZW50TGlzdGVuZXIgb25hZGRzdHJlYW07Ci0gICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVy
IG9ucmVtb3Zlc3RyZWFtOwotCi0gICAgICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQotICAg
ICAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gW29wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOwot
ICAgICAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW29wdGlvbmFsXSBib29sZWFuIHVz
ZUNhcHR1cmUpOwotICAgICAgICBib29sZWFuIGRpc3BhdGNoRXZlbnQoaW4gRXZlbnQgZXZlbnQp
Ci0gICAgICAgICAgICByYWlzZXMoRXZlbnRFeGNlcHRpb24pOwotICAgIH07Ci0KLX0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3AycC9TaWduYWxpbmdDYWxsYmFjay5oIGIvU291cmNlL1dl
YkNvcmUvcDJwL1NpZ25hbGluZ0NhbGxiYWNrLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGE0YTMwZTcuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcDJwL1NpZ25hbGluZ0Nh
bGxiYWNrLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICog
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aWZuZGVmIFNpZ25hbGluZ0NhbGxiYWNrX2gKLSNkZWZpbmUgU2lnbmFsaW5nQ2FsbGJhY2tfaAot
Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUGVlckNvbm5lY3Rpb247Ci0KLWNsYXNz
IFNpZ25hbGluZ0NhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8U2lnbmFsaW5nQ2FsbGJhY2s+
IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5TaWduYWxpbmdDYWxsYmFjaygpIHsgfQotICAgIHZp
cnR1YWwgYm9vbCBoYW5kbGVFdmVudChjb25zdCBTdHJpbmcmLCBQZWVyQ29ubmVjdGlvbiopID0g
MDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJ
QV9TVFJFQU0pCi0KLSNlbmRpZiAvLyBTaWduYWxpbmdDYWxsYmFja19oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wMnAvU2lnbmFsaW5nQ2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUv
cDJwL1NpZ25hbGluZ0NhbGxiYWNrLmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MGQzMmZjZi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wMnAvU2lnbmFsaW5nQ2FsbGJh
Y2suaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
Ci0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotbW9k
dWxlIHAycCB7Ci0KLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBDb25kaXRpb25hbD1NRURJQV9T
VFJFQU0sCi0gICAgICAgIENhbGxiYWNrPUZ1bmN0aW9uT25seQotICAgIF0gU2lnbmFsaW5nQ2Fs
bGJhY2sgewotICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50KGluIERPTVN0cmluZyBtZXNzYWdl
LCBpbiBQZWVyQ29ubmVjdGlvbiBzb3VyY2UpOwotICAgIH07Ci0KLX0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2FsbGJhY2tUYXNrLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nh
bGxiYWNrVGFzay5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZDAwZDMxLi4wMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FsbGJhY2tUYXNrLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw4MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIENhbGxiYWNrVGFza19o
Ci0jZGVmaW5lIENhbGxiYWNrVGFza19oCi0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0j
aW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotLy8gSGVscGVyIHRlbXBsYXRlIHRvIHNjaGVkdWxl
IGNhbGxzIHRvIGNhbGxiYWNrcyB1c2luZyB0aGVpciBvd24gc2NyaXB0IGV4ZWN1dGlvbiBjb250
ZXh0LgotLy8gQ2FsbGJhY2tUeXBlIGlzIGFzc3VtZWQgdG8gaW1wbGVtZW50IFNjaGVkdWxlciBh
bmQgdG8gYmUgcmVmZXJlbmNlLWNvdW50ZWQuCi10ZW1wbGF0ZSA8dHlwZW5hbWUgQ2FsbGJhY2tU
eXBlLCB0eXBlbmFtZSBBcmd1bWVudFR5cGU+Ci1jbGFzcyBDYWxsYmFja1Rhc2sxIDogcHVibGlj
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNz
T3duUHRyPENhbGxiYWNrVGFzazE+IGNyZWF0ZShQYXNzUmVmUHRyPENhbGxiYWNrVHlwZT4gY2Fs
bGJhY2ssIFBhc3NSZWZQdHI8QXJndW1lbnRUeXBlPiBkYXRhKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBDYWxsYmFja1Rhc2sxKGNhbGxiYWNrLCBkYXRhKSk7Ci0gICAgfQot
Ci0gICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKQot
ICAgIHsKLSAgICAgICAgbV9jYWxsYmFjay0+aGFuZGxlRXZlbnQobV9kYXRhLmdldCgpKTsKLSAg
ICB9Ci0KLSAgICBjbGFzcyBTY2hlZHVsZXIgewotICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVh
bCB+U2NoZWR1bGVyKCkgeyB9Ci0KLSAgICAgICAgYm9vbCBzY2hlZHVsZUNhbGxiYWNrKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8QXJndW1lbnRUeXBlPiBkYXRh
KQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoY29udGV4dCkgewotICAgICAgICAgICAgICAg
IGNvbnRleHQtPnBvc3RUYXNrKENhbGxiYWNrVGFzazE8Q2FsbGJhY2tUeXBlLCBBcmd1bWVudFR5
cGU+OjpjcmVhdGUoc3RhdGljX2Nhc3Q8Q2FsbGJhY2tUeXBlKj4odGhpcyksIGRhdGEpKTsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgIH07Ci0KLXByaXZhdGU6Ci0gICAgQ2FsbGJhY2tU
YXNrMShQYXNzUmVmUHRyPENhbGxiYWNrVHlwZT4gY2FsbGJhY2ssIFBhc3NSZWZQdHI8QXJndW1l
bnRUeXBlPiBkYXRhKQotICAgICAgICA6IG1fY2FsbGJhY2soY2FsbGJhY2spCi0gICAgICAgICwg
bV9kYXRhKGRhdGEpCi0gICAgewotICAgIH0KLQotICAgIFJlZlB0cjxDYWxsYmFja1R5cGU+IG1f
Y2FsbGJhY2s7Ci0gICAgUmVmUHRyPEFyZ3VtZW50VHlwZT4gbV9kYXRhOwotfTsKLQotfQotCi0j
ZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2VuZGlmIC8vIENhbGxiYWNrVGFza19o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggMDQ4ZmViNy4uNDQ1N2NmMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtMzM3LDcgKzMzNyw3IEBAIG1vZHVsZSB3aW5kb3cg
ewogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPURFVklDRV9PUklFTlRBVElPTixFbmFi
bGVkQXRSdW50aW1lXSBFdmVudExpc3RlbmVyIG9uZGV2aWNlbW90aW9uOwogICAgICAgICBhdHRy
aWJ1dGUgW0NvbmRpdGlvbmFsPURFVklDRV9PUklFTlRBVElPTixFbmFibGVkQXRSdW50aW1lXSBF
dmVudExpc3RlbmVyIG9uZGV2aWNlb3JpZW50YXRpb247CiAKLSAgICAgICAgYXR0cmlidXRlIFtD
b25kaXRpb25hbD1NRURJQV9TVFJFQU0sRW5hYmxlZEF0UnVudGltZV0gUGVlckNvbm5lY3Rpb25D
b25zdHJ1Y3RvciBQZWVyQ29ubmVjdGlvbjsKKyAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25h
bD1NRURJQV9TVFJFQU0sRW5hYmxlZEF0UnVudGltZV0gUGVlckNvbm5lY3Rpb25Db25zdHJ1Y3Rv
ciB3ZWJraXRQZWVyQ29ubmVjdGlvbjsKIAogICAgICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZh
Y2UKICAgICAgICAgW0N1c3RvbV0gdm9pZCBhZGRFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0
eXBlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBlODkxZTg3Li41ZTcxYjY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcApAQCAtNjEsNyArNjEsNiBAQAogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYUZlYXR1cmVO
YW1lcy5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiTmF2aWdhdG9yLmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJQYWdlLmgi
CkBAIC0xNjYsOSArMTY1LDYgQEAgaW5saW5lIEZyYW1lOjpGcmFtZShQYWdlKiBwYWdlLCBIVE1M
RnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCwgRnJhbWVMb2FkZXIKICAgICAsIG1faW5W
aWV3U291cmNlTW9kZShmYWxzZSkKICAgICAsIG1faXNEaXNjb25uZWN0ZWQoZmFsc2UpCiAgICAg
LCBtX2V4Y2x1ZGVGcm9tVGV4dFNlYXJjaChmYWxzZSkKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQotICAgICwgbV9tZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcihSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjptZWRpYVN0cmVhbUVuYWJsZWQoKSA/IGFkb3B0UHRyKG5ldyBNZWRpYVN0cmVhbUZyYW1l
Q29udHJvbGxlcih0aGlzKSkgOiBQYXNzT3duUHRyPE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVy
PigpKQotI2VuZGlmCiB7CiAgICAgQVNTRVJUKHBhZ2UpOwogICAgIEF0b21pY1N0cmluZzo6aW5p
dCgpOwpAQCAtMjI1LDExICsyMjEsNiBAQCBGcmFtZTo6fkZyYW1lKCkKICAgICBpZiAobV9kb21X
aW5kb3cpCiAgICAgICAgIG1fZG9tV2luZG93LT5kaXNjb25uZWN0RnJhbWUoKTsKIAotI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCi0gICAgaWYgKG1fbWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIp
Ci0gICAgICAgIG1fbWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXItPmRpc2Nvbm5lY3RGcmFtZSgp
OwotI2VuZGlmCi0KICAgICBIYXNoU2V0PERPTVdpbmRvdyo+OjppdGVyYXRvciBlbmQgPSBtX2xp
dmVGb3JtZXJXaW5kb3dzLmVuZCgpOwogICAgIGZvciAoSGFzaFNldDxET01XaW5kb3cqPjo6aXRl
cmF0b3IgaXQgPSBtX2xpdmVGb3JtZXJXaW5kb3dzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkK
ICAgICAgICAgKCppdCktPmRpc2Nvbm5lY3RGcmFtZSgpOwpAQCAtNjk3LDExICs2ODgsNiBAQCB2
b2lkIEZyYW1lOjpwYWdlRGVzdHJveWVkKCkKICAgICAgICAgbV9kb21XaW5kb3ctPnBhZ2VEZXN0
cm95ZWQoKTsKICAgICB9CiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIGlmIChtX21l
ZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKQotICAgICAgICBtX21lZGlhU3RyZWFtRnJhbWVDb250
cm9sbGVyLT5kaXNjb25uZWN0UGFnZSgpOwotI2VuZGlmCi0KICAgICAvLyBGSVhNRTogSXQncyB1
bmNsZWFyIGFzIHRvIHdoeSB0aGlzIGlzIGNhbGxlZCBtb3JlIHRoYW4gb25jZSwgYnV0IGl0IGlz
LAogICAgIC8vIHNvIHBhZ2UoKSBjb3VsZCBiZSBOVUxMLgogICAgIGlmIChwYWdlKCkgJiYgcGFn
ZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZEZyYW1lKCkgPT0gdGhpcykKQEAgLTc1MSwx
MCArNzM3LDYgQEAgdm9pZCBGcmFtZTo6dHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudCgp
CiAgICAgICAgIGlmIChtX2RvbVdpbmRvdykKICAgICAgICAgICAgIG1fZG9tV2luZG93LT5yZXNl
dEdlb2xvY2F0aW9uKCk7CiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgICAgICBpZiAo
bV9tZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcikKLSAgICAgICAgICAgIG1fbWVkaWFTdHJlYW1G
cmFtZUNvbnRyb2xsZXItPnRyYW5zZmVyVG9OZXdQYWdlKG5ld1BhZ2UpOwotI2VuZGlmCiAgICAg
ICAgIG1fcGFnZSA9IG5ld1BhZ2U7CiAKICAgICAgICAgaWYgKG5ld1BhZ2UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
LmgKaW5kZXggODA0MTRhOC4uMmQwM2E5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaApAQCAtNjUsNyArNjUs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRG9jdW1lbnQ7CiAgICAgY2xhc3Mg
RnJhbWVWaWV3OwogICAgIGNsYXNzIEhUTUxUYWJsZUNlbGxFbGVtZW50OwotICAgIGNsYXNzIE1l
ZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyOwogICAgIGNsYXNzIFJlZ3VsYXJFeHByZXNzaW9uOwog
ICAgIGNsYXNzIFJlbmRlclBhcnQ7CiAgICAgY2xhc3MgVGlsZWRCYWNraW5nU3RvcmU7CkBAIC0y
MDMsMTAgKzIwMiw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTlNJbWFnZSogaW1h
Z2VGcm9tUmVjdChOU1JlY3QpIGNvbnN0OwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQotICAgICAgICBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlciogbWVkaWFTdHJlYW1GcmFt
ZUNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVy
LmdldCgpOyB9Ci0jZW5kaWYKLSAgICAgICAgCiAgICAgICAgIC8vIFNob3VsZCBvbmx5IGJlIGNh
bGxlZCBvbiB0aGUgbWFpbiBmcmFtZSBvZiBhIHBhZ2UuCiAgICAgICAgIHZvaWQgbm90aWZ5Q2hy
b21lQ2xpZW50V2hlZWxFdmVudEhhbmRsZXJDb3VudENoYW5nZWQoKSBjb25zdDsKIApAQCAtMjY4
LDkgKzI2Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgT3duUHRyPFRpbGVkQmFj
a2luZ1N0b3JlPiBtX3RpbGVkQmFja2luZ1N0b3JlOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQotICAgICAgICBPd25QdHI8TWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXI+IG1f
bWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXI7Ci0jZW5kaWYKICAgICB9OwogCiAgICAgaW5saW5l
IHZvaWQgRnJhbWU6OmluaXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRp
YVN0cmVhbUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVN0cmVhbUNsaWVudC5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YWMyZjA3Li4wMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFTdHJlYW1DbGllbnQuaAorKysgL2Rldi9udWxsCkBAIC0x
LDY5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwot
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMKLSAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgTWVkaWFTdHJlYW1DbGllbnRfaAot
I2RlZmluZSBNZWRpYVN0cmVhbUNsaWVudF9oCi0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQot
Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFz
cyBTZWN1cml0eU9yaWdpbjsKLQotZW51bSBHZW5lcmF0ZVN0cmVhbU9wdGlvbkZsYWcgewotICAg
IEdlbmVyYXRlU3RyZWFtUmVxdWVzdEF1ZGlvID0gMSwKLSAgICBHZW5lcmF0ZVN0cmVhbVJlcXVl
c3RWaWRlb0ZhY2luZ1VzZXIgPSAxIDw8IDEsCi0gICAgR2VuZXJhdGVTdHJlYW1SZXF1ZXN0Vmlk
ZW9GYWNpbmdFbnZpcm9ubWVudCA9IDEgPDwgMiwKLX07Ci0KLXR5cGVkZWYgdW5zaWduZWQgR2Vu
ZXJhdGVTdHJlYW1PcHRpb25GbGFnczsKLQotY2xhc3MgTWVkaWFTdHJlYW1DbGllbnQgewotcHVi
bGljOgotICAgIC8vIE1lZGlhU3RyZWFtIGZ1bmN0aW9ucy4KLSAgICB2aXJ0dWFsIHZvaWQgbWVk
aWFTdHJlYW1EZXN0cm95ZWQoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGdlbmVyYXRlU3RyZWFt
KGludCByZXF1ZXN0SWQsIEdlbmVyYXRlU3RyZWFtT3B0aW9uRmxhZ3MsIFBhc3NSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BHZW5lcmF0ZWRTdHJlYW0o
Y29uc3QgU3RyaW5nJiBzdHJlYW1MYWJlbCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXRNZWRp
YVN0cmVhbVRyYWNrRW5hYmxlZChjb25zdCBTdHJpbmcmIHRyYWNrSWQsIGJvb2wgZW5hYmxlZCkg
PSAwOwotCi0gICAgLy8gUGVlckNvbm5lY3Rpb24gZnVuY3Rpb25zLgotICAgIHZpcnR1YWwgdm9p
ZCBuZXdQZWVyQ29ubmVjdGlvbihpbnQgcGVlckNvbm5lY3Rpb25JZCwgY29uc3QgU3RyaW5nJiBj
b25maWd1cmF0aW9uKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHN0YXJ0TmVnb3RpYXRpb24oaW50
IHBlZXJDb25uZWN0aW9uSWQpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc1NpZ25hbGlu
Z01lc3NhZ2UoaW50IHBlZXJDb25uZWN0aW9uSWQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBtZXNzYWdlKGludCBwZWVyQ29ubmVjdGlvbklkLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYWRkU3RyZWFtKGludCBwZWVy
Q29ubmVjdGlvbklkLCBjb25zdCBTdHJpbmcmIHN0cmVhbUxhYmVsKSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIHJlbW92ZVN0cmVhbShpbnQgcGVlckNvbm5lY3Rpb25JZCwgY29uc3QgU3RyaW5nJiBz
dHJlYW1MYWJlbCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjbG9zZVBlZXJDb25uZWN0aW9uKGlu
dCBwZWVyQ29ubmVjdGlvbklkKSA9IDA7Ci0KLXByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIH5NZWRp
YVN0cmVhbUNsaWVudCgpIHsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5k
aWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2VuZGlmIC8vIE1lZGlhU3RyZWFtQ2xpZW50
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFTdHJlYW1Db250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFTdHJlYW1Db250cm9sbGVyLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWY2MDRlYy4uMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL01lZGlhU3RyZWFtQ29udHJvbGxlci5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSwyODYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIk1lZGlhU3RyZWFtQ29udHJvbGxlci5oIgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
LQotI2luY2x1ZGUgIk1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAiTWVk
aWFTdHJlYW1UcmFja0xpc3QuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgotI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0vLyBGSVhNRTogVGhp
cyBpcyB1c2VkIGZvciBob2xkaW5nIGxpc3Qgb2YgUGVlckNvbm5lY3Rpb24gYXMgd2VsbCwKLS8v
IHNvIHJlbmFtZSBjbGFzcyBpcyBpbiBvcmRlci4KLWNsYXNzIE1lZGlhU3RyZWFtQ29udHJvbGxl
cjo6UmVxdWVzdCB7Ci1wdWJsaWM6Ci0gICAgUmVxdWVzdCgpCi0gICAgICAgIDogbV9sb2NhbElk
KDApCi0gICAgICAgICwgbV9mcmFtZUNvbnRyb2xsZXIoMCkgeyB9Ci0KLSAgICBSZXF1ZXN0KGlu
dCBsb2NhbElkLCBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlciogZnJhbWVDb250cm9sbGVyKQot
ICAgICAgICA6IG1fbG9jYWxJZChsb2NhbElkKQotICAgICAgICAsIG1fZnJhbWVDb250cm9sbGVy
KGZyYW1lQ29udHJvbGxlcikgeyB9Ci0KLSAgICBpbnQgbG9jYWxJZCgpIGNvbnN0IHsgcmV0dXJu
IG1fbG9jYWxJZDsgfQotICAgIE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKiBmcmFtZUNvbnRy
b2xsZXIoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lQ29udHJvbGxlcjsgfQotCi1wcml2YXRlOgot
ICAgIGludCBtX2xvY2FsSWQ7Ci0gICAgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIqIG1fZnJh
bWVDb250cm9sbGVyOwotfTsKLQotTWVkaWFTdHJlYW1Db250cm9sbGVyOjpNZWRpYVN0cmVhbUNv
bnRyb2xsZXIoTWVkaWFTdHJlYW1DbGllbnQqIGNsaWVudCkKLSAgICA6IG1fY2xpZW50KGNsaWVu
dCkKLSAgICAsIG1fbmV4dEdsb2JhbFJlcXVlc3RJZCgxKQotICAgICwgbV9uZXh0R2xvYmFsUGVl
ckNvbm5lY3Rpb25JZCgxKQotewotfQotCi1NZWRpYVN0cmVhbUNvbnRyb2xsZXI6On5NZWRpYVN0
cmVhbUNvbnRyb2xsZXIoKQotewotICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQt
Pm1lZGlhU3RyZWFtRGVzdHJveWVkKCk7Ci19Ci0KLWJvb2wgTWVkaWFTdHJlYW1Db250cm9sbGVy
Ojppc0NsaWVudEF2YWlsYWJsZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fY2xpZW50OwotfQot
Ci12b2lkIE1lZGlhU3RyZWFtQ29udHJvbGxlcjo6dW5yZWdpc3RlckZyYW1lQ29udHJvbGxlcihN
ZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlciogZnJhbWVDb250cm9sbGVyKQotewotICAgIEFTU0VS
VChmcmFtZUNvbnRyb2xsZXIpOwotCi0gICAgLy8gRG9uZSBpbiB0d28gc3RlcHMgdG8gYXZvaWQg
cHJvYmxlbXMgYWJvdXQgaXRlcmF0b3JzIGJlaW5nIGludmFsaWRhdGVkIHdoaWxlIHJlbW92aW5n
LgotICAgIFZlY3RvcjxpbnQ+IGZyYW1lUmVxdWVzdHM7Ci0gICAgZm9yIChSZXF1ZXN0TWFwOjpp
dGVyYXRvciBpdCA9IG1fcmVxdWVzdHMuYmVnaW4oKTsgaXQgIT0gbV9yZXF1ZXN0cy5lbmQoKTsg
KytpdCkKLSAgICAgICAgaWYgKGl0LT5zZWNvbmQuZnJhbWVDb250cm9sbGVyKCkgPT0gZnJhbWVD
b250cm9sbGVyKQotICAgICAgICAgICAgZnJhbWVSZXF1ZXN0cy5hcHBlbmQoaXQtPmZpcnN0KTsK
LQotICAgIGZvciAoVmVjdG9yPGludD46Oml0ZXJhdG9yIGl0ID0gZnJhbWVSZXF1ZXN0cy5iZWdp
bigpOyBpdCAhPSBmcmFtZVJlcXVlc3RzLmVuZCgpOyArK2l0KQotICAgICAgICBtX3JlcXVlc3Rz
LnJlbW92ZSgqaXQpOwotCi0gICAgVmVjdG9yPFN0cmluZz4gZnJhbWVTdHJlYW1zOwotICAgIGZv
ciAoU3RyZWFtTWFwOjppdGVyYXRvciBpdCA9IG1fc3RyZWFtcy5iZWdpbigpOyBpdCAhPSBtX3N0
cmVhbXMuZW5kKCk7ICsraXQpCi0gICAgICAgIGlmIChpdC0+c2Vjb25kID09IGZyYW1lQ29udHJv
bGxlcikKLSAgICAgICAgICAgIGZyYW1lU3RyZWFtcy5hcHBlbmQoaXQtPmZpcnN0KTsKLQotICAg
IGZvciAoVmVjdG9yPFN0cmluZz46Oml0ZXJhdG9yIGl0ID0gZnJhbWVTdHJlYW1zLmJlZ2luKCk7
IGl0ICE9IGZyYW1lU3RyZWFtcy5lbmQoKTsgKytpdCkKLSAgICAgICAgbV9zdHJlYW1zLnJlbW92
ZSgqaXQpOwotCi0gICAgLy8gRklYTUU6IEFkZCB1bnJlZ2lzdGVyIGZ1bmN0aW9uYWxpdHkgZm9y
IHBlZXIgY29ubmVjdGlvbiBvYmplY3RzLgotfQotCi1pbnQgTWVkaWFTdHJlYW1Db250cm9sbGVy
OjpyZWdpc3RlclJlcXVlc3QoaW50IGxvY2FsSWQsIE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVy
KiBmcmFtZUNvbnRyb2xsZXIpCi17Ci0gICAgQVNTRVJUKGxvY2FsSWQgPiAwKTsKLSAgICBBU1NF
UlQoZnJhbWVDb250cm9sbGVyKTsKLSAgICBtX3JlcXVlc3RzLmFkZChtX25leHRHbG9iYWxSZXF1
ZXN0SWQsIFJlcXVlc3QobG9jYWxJZCwgZnJhbWVDb250cm9sbGVyKSk7Ci0gICAgcmV0dXJuIG1f
bmV4dEdsb2JhbFJlcXVlc3RJZCsrOwotfQotCi12b2lkIE1lZGlhU3RyZWFtQ29udHJvbGxlcjo6
cmVnaXN0ZXJTdHJlYW0oY29uc3QgU3RyaW5nJiBzdHJlYW1MYWJlbCwgTWVkaWFTdHJlYW1GcmFt
ZUNvbnRyb2xsZXIqIGZyYW1lQ29udHJvbGxlcikKLXsKLSAgICBBU1NFUlQoZnJhbWVDb250cm9s
bGVyKTsKLSAgICBBU1NFUlQoIW1fc3RyZWFtcy5jb250YWlucyhzdHJlYW1MYWJlbCkpOwotICAg
IG1fc3RyZWFtcy5hZGQoc3RyZWFtTGFiZWwsIGZyYW1lQ29udHJvbGxlcik7Ci19Ci0KLXZvaWQg
TWVkaWFTdHJlYW1Db250cm9sbGVyOjpnZW5lcmF0ZVN0cmVhbShNZWRpYVN0cmVhbUZyYW1lQ29u
dHJvbGxlciogZnJhbWVDb250cm9sbGVyLCBpbnQgbG9jYWxJZCwgR2VuZXJhdGVTdHJlYW1PcHRp
b25GbGFncyBmbGFncywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4p
Ci17Ci0gICAgQVNTRVJUKG1fY2xpZW50KTsKLSAgICBpbnQgY29udHJvbGxlclJlcXVlc3RJZCA9
IHJlZ2lzdGVyUmVxdWVzdChsb2NhbElkLCBmcmFtZUNvbnRyb2xsZXIpOwotICAgIG1fY2xpZW50
LT5nZW5lcmF0ZVN0cmVhbShjb250cm9sbGVyUmVxdWVzdElkLCBmbGFncywgc2VjdXJpdHlPcmln
aW4pOwotfQotCi12b2lkIE1lZGlhU3RyZWFtQ29udHJvbGxlcjo6c3RvcEdlbmVyYXRlZFN0cmVh
bShjb25zdCBTdHJpbmcmIHN0cmVhbUxhYmVsKQotewotICAgIG1fY2xpZW50LT5zdG9wR2VuZXJh
dGVkU3RyZWFtKHN0cmVhbUxhYmVsKTsKLX0KLQotdm9pZCBNZWRpYVN0cmVhbUNvbnRyb2xsZXI6
OnNldE1lZGlhU3RyZWFtVHJhY2tFbmFibGVkKGNvbnN0IFN0cmluZyYgdHJhY2tJZCwgYm9vbCBl
bmFibGVkKQotewotICAgIG1fY2xpZW50LT5zZXRNZWRpYVN0cmVhbVRyYWNrRW5hYmxlZCh0cmFj
a0lkLCBlbmFibGVkKTsKLX0KLQotdm9pZCBNZWRpYVN0cmVhbUNvbnRyb2xsZXI6OnN0cmVhbUdl
bmVyYXRlZChpbnQgY29udHJvbGxlclJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBzdHJlYW1MYWJl
bCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrTGlzdD4gdHJhY2tzKQotewotICAgIC8vIERv
bid0IGFzc2VydCBzaW5jZSB0aGUgZnJhbWUgY29udHJvbGxlciBjYW4gaGF2ZSBiZWVuIGRlc3Ry
b3llZCB3aGlsZSB0aGUgcmVxdWVzdCByZXBseSB3YXMgY29taW5nIGJhY2suCi0gICAgaWYgKG1f
cmVxdWVzdHMuY29udGFpbnMoY29udHJvbGxlclJlcXVlc3RJZCkpIHsKLSAgICAgICAgY29uc3Qg
UmVxdWVzdCYgcmVxdWVzdCA9IG1fcmVxdWVzdHMuZ2V0KGNvbnRyb2xsZXJSZXF1ZXN0SWQpOwot
ICAgICAgICByZWdpc3RlclN0cmVhbShzdHJlYW1MYWJlbCwgcmVxdWVzdC5mcmFtZUNvbnRyb2xs
ZXIoKSk7Ci0gICAgICAgIG1fcmVxdWVzdHMucmVtb3ZlKGNvbnRyb2xsZXJSZXF1ZXN0SWQpOwot
ICAgICAgICBBU1NFUlQocmVxdWVzdC5mcmFtZUNvbnRyb2xsZXIoKSk7Ci0gICAgICAgIHJlcXVl
c3QuZnJhbWVDb250cm9sbGVyKCktPnN0cmVhbUdlbmVyYXRlZChyZXF1ZXN0LmxvY2FsSWQoKSwg
c3RyZWFtTGFiZWwsIHRyYWNrcyk7Ci0gICAgfQotfQotCi12b2lkIE1lZGlhU3RyZWFtQ29udHJv
bGxlcjo6c3RyZWFtR2VuZXJhdGlvbkZhaWxlZChpbnQgY29udHJvbGxlclJlcXVlc3RJZCwgTmF2
aWdhdG9yVXNlck1lZGlhRXJyb3I6OkVycm9yQ29kZSBjb2RlKQotewotICAgIC8vIERvbid0IGFz
c2VydCBzaW5jZSB0aGUgZnJhbWUgY29udHJvbGxlciBjYW4gaGF2ZSBiZWVuIGRlc3Ryb3llZCB3
aGlsZSB0aGUgcmVxdWVzdCByZXBseSB3YXMgY29taW5nIGJhY2suCi0gICAgaWYgKG1fcmVxdWVz
dHMuY29udGFpbnMoY29udHJvbGxlclJlcXVlc3RJZCkpIHsKLSAgICAgICAgY29uc3QgUmVxdWVz
dCYgcmVxdWVzdCA9IG1fcmVxdWVzdHMuZ2V0KGNvbnRyb2xsZXJSZXF1ZXN0SWQpOwotICAgICAg
ICBtX3JlcXVlc3RzLnJlbW92ZShjb250cm9sbGVyUmVxdWVzdElkKTsKLSAgICAgICAgcmVxdWVz
dC5mcmFtZUNvbnRyb2xsZXIoKS0+c3RyZWFtR2VuZXJhdGlvbkZhaWxlZChyZXF1ZXN0LmxvY2Fs
SWQoKSwgY29kZSk7Ci0gICAgfQotfQotCi12b2lkIE1lZGlhU3RyZWFtQ29udHJvbGxlcjo6c3Ry
ZWFtRmFpbGVkKGNvbnN0IFN0cmluZyYgc3RyZWFtTGFiZWwpCi17Ci0gICAgLy8gRG9uJ3QgYXNz
ZXJ0IHNpbmNlIHRoZSBmcmFtZSBjb250cm9sbGVyIGNhbiBoYXZlIGJlZW4gZGVzdHJveWVkIGJ5
IHRoZSB0aW1lIHRoaXMgaXMgY2FsbGVkLgotICAgIGlmIChtX3N0cmVhbXMuY29udGFpbnMoc3Ry
ZWFtTGFiZWwpKQotICAgICAgICBtX3N0cmVhbXMuZ2V0KHN0cmVhbUxhYmVsKS0+c3RyZWFtRmFp
bGVkKHN0cmVhbUxhYmVsKTsKLX0KLQotdm9pZCBNZWRpYVN0cmVhbUNvbnRyb2xsZXI6Om9uU2ln
bmFsaW5nTWVzc2FnZShpbnQgY29udHJvbGxlclBlZXJDb25uZWN0aW9uSWQsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSkKLXsKLSAgICAvLyBEb24ndCBhc3NlcnQgc2luY2UgdGhlIGZyYW1lIGNvbnRy
b2xsZXIgY2FuIGhhdmUgYmVlbiBkZXN0cm95ZWQuCi0gICAgaWYgKG1fcGVlckNvbm5lY3Rpb25z
LmNvbnRhaW5zKGNvbnRyb2xsZXJQZWVyQ29ubmVjdGlvbklkKSkgewotICAgICAgICBjb25zdCBS
ZXF1ZXN0JiBwZWVyQ29ubmVjdGlvbiA9IG1fcGVlckNvbm5lY3Rpb25zLmdldChjb250cm9sbGVy
UGVlckNvbm5lY3Rpb25JZCk7Ci0gICAgICAgIEFTU0VSVChwZWVyQ29ubmVjdGlvbi5mcmFtZUNv
bnRyb2xsZXIoKSk7Ci0gICAgICAgIHBlZXJDb25uZWN0aW9uLmZyYW1lQ29udHJvbGxlcigpLT5v
blNpZ25hbGluZ01lc3NhZ2UocGVlckNvbm5lY3Rpb24ubG9jYWxJZCgpLCBtZXNzYWdlKTsKLSAg
ICB9Ci19Ci0KLWJvb2wgTWVkaWFTdHJlYW1Db250cm9sbGVyOjpmcmFtZVRvUGFnZVBlZXJDb25u
ZWN0aW9uSWQoTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIqIGZyYW1lQ29udHJvbGxlciwgaW50
IGZyYW1lUGVlckNvbm5lY3Rpb25JZCwgaW50JiBwYWdlUGVlckNvbm5lY3Rpb25JZCkKLXsKLSAg
ICBwYWdlUGVlckNvbm5lY3Rpb25JZCA9IC0xOwotICAgIC8vIEZJWE1FOiBJcyB0aGVyZSBhIGJl
dHRlciB3YXkgdG8gZmluZCB0aGUgZ2xvYmFsIElEIGluIHRoZSBtYXA/Ci0gICAgZm9yIChSZXF1
ZXN0TWFwOjppdGVyYXRvciBpdCA9IG1fcGVlckNvbm5lY3Rpb25zLmJlZ2luKCk7IGl0ICE9IG1f
cGVlckNvbm5lY3Rpb25zLmVuZCgpOyArK2l0KSB7Ci0gICAgICAgIGlmIChpdC0+c2Vjb25kLmZy
YW1lQ29udHJvbGxlcigpID09IGZyYW1lQ29udHJvbGxlciAmJiBpdC0+c2Vjb25kLmxvY2FsSWQo
KSA9PSBmcmFtZVBlZXJDb25uZWN0aW9uSWQpIHsKLSAgICAgICAgICAgIHBhZ2VQZWVyQ29ubmVj
dGlvbklkID0gaXQtPmZpcnN0OwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0K
LSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi12b2lkIE1lZGlhU3RyZWFtQ29udHJvbGxl
cjo6cHJvY2Vzc1NpZ25hbGluZ01lc3NhZ2UoTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIqIGZy
YW1lQ29udHJvbGxlciwgaW50IGZyYW1lUGVlckNvbm5lY3Rpb25JZCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQotewotICAgIGludCBwYWdlUGVlckNvbm5lY3Rpb25JZDsKLSAgICBpZiAoZnJhbWVU
b1BhZ2VQZWVyQ29ubmVjdGlvbklkKGZyYW1lQ29udHJvbGxlciwgZnJhbWVQZWVyQ29ubmVjdGlv
bklkLCBwYWdlUGVlckNvbm5lY3Rpb25JZCkpCi0gICAgICAgIG1fY2xpZW50LT5wcm9jZXNzU2ln
bmFsaW5nTWVzc2FnZShwYWdlUGVlckNvbm5lY3Rpb25JZCwgbWVzc2FnZSk7Ci19Ci0KLXZvaWQg
TWVkaWFTdHJlYW1Db250cm9sbGVyOjptZXNzYWdlKE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVy
KiBmcmFtZUNvbnRyb2xsZXIsIGludCBmcmFtZVBlZXJDb25uZWN0aW9uSWQsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSkKLXsKLSAgICBpbnQgcGFnZVBlZXJDb25uZWN0aW9uSWQ7Ci0gICAgaWYgKGZy
YW1lVG9QYWdlUGVlckNvbm5lY3Rpb25JZChmcmFtZUNvbnRyb2xsZXIsIGZyYW1lUGVlckNvbm5l
Y3Rpb25JZCwgcGFnZVBlZXJDb25uZWN0aW9uSWQpKQotICAgICAgICBtX2NsaWVudC0+bWVzc2Fn
ZShwYWdlUGVlckNvbm5lY3Rpb25JZCwgbWVzc2FnZSk7Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1D
b250cm9sbGVyOjpvbk1lc3NhZ2UoaW50IGNvbnRyb2xsZXJQZWVyQ29ubmVjdGlvbklkLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCi17Ci0gICAgLy8gRG9uJ3QgYXNzZXJ0IHNpbmNlIHRoZSBmcmFt
ZSBjb250cm9sbGVyIGNhbiBoYXZlIGJlZW4gZGVzdHJveWVkCi0gICAgaWYgKG1fcGVlckNvbm5l
Y3Rpb25zLmNvbnRhaW5zKGNvbnRyb2xsZXJQZWVyQ29ubmVjdGlvbklkKSkgewotICAgICAgICBj
b25zdCBSZXF1ZXN0JiBwZWVyQ29ubmVjdGlvbiA9IG1fcGVlckNvbm5lY3Rpb25zLmdldChjb250
cm9sbGVyUGVlckNvbm5lY3Rpb25JZCk7Ci0gICAgICAgIEFTU0VSVChwZWVyQ29ubmVjdGlvbi5m
cmFtZUNvbnRyb2xsZXIoKSk7Ci0gICAgICAgIHBlZXJDb25uZWN0aW9uLmZyYW1lQ29udHJvbGxl
cigpLT5vbk1lc3NhZ2UocGVlckNvbm5lY3Rpb24ubG9jYWxJZCgpLCBtZXNzYWdlKTsKLSAgICB9
Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1Db250cm9sbGVyOjphZGRTdHJlYW0oTWVkaWFTdHJlYW1G
cmFtZUNvbnRyb2xsZXIqIGZyYW1lQ29udHJvbGxlciwgaW50IGZyYW1lUGVlckNvbm5lY3Rpb25J
ZCwgY29uc3QgU3RyaW5nJiBzdHJlYW1MYWJlbCkKLXsKLSAgICBpbnQgcGFnZVBlZXJDb25uZWN0
aW9uSWQ7Ci0gICAgaWYgKGZyYW1lVG9QYWdlUGVlckNvbm5lY3Rpb25JZChmcmFtZUNvbnRyb2xs
ZXIsIGZyYW1lUGVlckNvbm5lY3Rpb25JZCwgcGFnZVBlZXJDb25uZWN0aW9uSWQpKQotICAgICAg
ICBtX2NsaWVudC0+YWRkU3RyZWFtKHBhZ2VQZWVyQ29ubmVjdGlvbklkLCBzdHJlYW1MYWJlbCk7
Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1Db250cm9sbGVyOjpvbkFkZFN0cmVhbShpbnQgY29udHJv
bGxlclBlZXJDb25uZWN0aW9uSWQsIGNvbnN0IFN0cmluZyYgc3RyZWFtTGFiZWwsIFBhc3NSZWZQ
dHI8TWVkaWFTdHJlYW1UcmFja0xpc3Q+IHRyYWNrcykKLXsKLSAgICAvLyBEb24ndCBhc3NlcnQg
c2luY2UgdGhlIGZyYW1lIGNvbnRyb2xsZXIgY2FuIGhhdmUgYmVlbiBkZXN0cm95ZWQKLSAgICBp
ZiAobV9wZWVyQ29ubmVjdGlvbnMuY29udGFpbnMoY29udHJvbGxlclBlZXJDb25uZWN0aW9uSWQp
KSB7Ci0gICAgICAgIGNvbnN0IFJlcXVlc3QmIHBlZXJDb25uZWN0aW9uID0gbV9wZWVyQ29ubmVj
dGlvbnMuZ2V0KGNvbnRyb2xsZXJQZWVyQ29ubmVjdGlvbklkKTsKLSAgICAgICAgQVNTRVJUKHBl
ZXJDb25uZWN0aW9uLmZyYW1lQ29udHJvbGxlcigpKTsKLSAgICAgICAgcGVlckNvbm5lY3Rpb24u
ZnJhbWVDb250cm9sbGVyKCktPm9uQWRkU3RyZWFtKHBlZXJDb25uZWN0aW9uLmxvY2FsSWQoKSwg
c3RyZWFtTGFiZWwsIHRyYWNrcyk7Ci0gICAgfQotfQotCi12b2lkIE1lZGlhU3RyZWFtQ29udHJv
bGxlcjo6cmVtb3ZlU3RyZWFtKE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKiBmcmFtZUNvbnRy
b2xsZXIsIGludCBmcmFtZVBlZXJDb25uZWN0aW9uSWQsIGNvbnN0IFN0cmluZyYgc3RyZWFtTGFi
ZWwpCi17Ci0gICAgaW50IHBhZ2VQZWVyQ29ubmVjdGlvbklkOwotICAgIGlmIChmcmFtZVRvUGFn
ZVBlZXJDb25uZWN0aW9uSWQoZnJhbWVDb250cm9sbGVyLCBmcmFtZVBlZXJDb25uZWN0aW9uSWQs
IHBhZ2VQZWVyQ29ubmVjdGlvbklkKSkKLSAgICAgICAgbV9jbGllbnQtPnJlbW92ZVN0cmVhbShw
YWdlUGVlckNvbm5lY3Rpb25JZCwgc3RyZWFtTGFiZWwpOwotfQotCi12b2lkIE1lZGlhU3RyZWFt
Q29udHJvbGxlcjo6b25SZW1vdmVTdHJlYW0oaW50IGNvbnRyb2xsZXJQZWVyQ29ubmVjdGlvbklk
LCBjb25zdCBTdHJpbmcmIHN0cmVhbUxhYmVsKQotewotICAgIC8vIERvbid0IGFzc2VydCBzaW5j
ZSB0aGUgZnJhbWUgY29udHJvbGxlciBjYW4gaGF2ZSBiZWVuIGRlc3Ryb3llZAotICAgIGlmICht
X3BlZXJDb25uZWN0aW9ucy5jb250YWlucyhjb250cm9sbGVyUGVlckNvbm5lY3Rpb25JZCkpIHsK
LSAgICAgICAgLy8gVE9ETzogQmV0dGVyIG5hbWUgb2YgcGVlckNvbm5lY3Rpb24gdmFyaWFibGU/
Ci0gICAgICAgIGNvbnN0IFJlcXVlc3QmIHBlZXJDb25uZWN0aW9uID0gbV9wZWVyQ29ubmVjdGlv
bnMuZ2V0KGNvbnRyb2xsZXJQZWVyQ29ubmVjdGlvbklkKTsKLSAgICAgICAgQVNTRVJUKHBlZXJD
b25uZWN0aW9uLmZyYW1lQ29udHJvbGxlcigpKTsKLSAgICAgICAgcGVlckNvbm5lY3Rpb24uZnJh
bWVDb250cm9sbGVyKCktPm9uUmVtb3ZlU3RyZWFtKHBlZXJDb25uZWN0aW9uLmxvY2FsSWQoKSwg
c3RyZWFtTGFiZWwpOwotICAgIH0KLX0KLQotdm9pZCBNZWRpYVN0cmVhbUNvbnRyb2xsZXI6Om5l
d1BlZXJDb25uZWN0aW9uKE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKiBmcmFtZUNvbnRyb2xs
ZXIsIGludCBmcmFtZVBlZXJDb25uZWN0aW9uSWQsIGNvbnN0IFN0cmluZyYgY29uZmlndXJhdGlv
bikKLXsKLSAgICBpbnQgcGFnZVBlZXJDb25uZWN0aW9uSWQgPSBtX25leHRHbG9iYWxQZWVyQ29u
bmVjdGlvbklkKys7Ci0gICAgbV9wZWVyQ29ubmVjdGlvbnMuYWRkKHBhZ2VQZWVyQ29ubmVjdGlv
bklkLCBSZXF1ZXN0KGZyYW1lUGVlckNvbm5lY3Rpb25JZCwgZnJhbWVDb250cm9sbGVyKSk7Ci0K
LSAgICBtX2NsaWVudC0+bmV3UGVlckNvbm5lY3Rpb24ocGFnZVBlZXJDb25uZWN0aW9uSWQsIGNv
bmZpZ3VyYXRpb24pOwotfQotCi12b2lkIE1lZGlhU3RyZWFtQ29udHJvbGxlcjo6Y2xvc2VQZWVy
Q29ubmVjdGlvbihNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlciogZnJhbWVDb250cm9sbGVyLCBp
bnQgZnJhbWVQZWVyQ29ubmVjdGlvbklkKQotewotICAgIGludCBwYWdlUGVlckNvbm5lY3Rpb25J
ZDsKLSAgICBpZiAoZnJhbWVUb1BhZ2VQZWVyQ29ubmVjdGlvbklkKGZyYW1lQ29udHJvbGxlciwg
ZnJhbWVQZWVyQ29ubmVjdGlvbklkLCBwYWdlUGVlckNvbm5lY3Rpb25JZCkpCi0gICAgICAgIG1f
Y2xpZW50LT5jbG9zZVBlZXJDb25uZWN0aW9uKHBhZ2VQZWVyQ29ubmVjdGlvbklkKTsKLX0KLQot
dm9pZCBNZWRpYVN0cmVhbUNvbnRyb2xsZXI6OnN0YXJ0TmVnb3RpYXRpb24oTWVkaWFTdHJlYW1G
cmFtZUNvbnRyb2xsZXIqIGZyYW1lQ29udHJvbGxlciwgaW50IGZyYW1lUGVlckNvbm5lY3Rpb25J
ZCkKLXsKLSAgICBpbnQgcGFnZVBlZXJDb25uZWN0aW9uSWQ7Ci0gICAgaWYgKGZyYW1lVG9QYWdl
UGVlckNvbm5lY3Rpb25JZChmcmFtZUNvbnRyb2xsZXIsIGZyYW1lUGVlckNvbm5lY3Rpb25JZCwg
cGFnZVBlZXJDb25uZWN0aW9uSWQpKQotICAgICAgICBtX2NsaWVudC0+c3RhcnROZWdvdGlhdGlv
bihwYWdlUGVlckNvbm5lY3Rpb25JZCk7Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1Db250cm9sbGVy
Ojpvbk5lZ290aWF0aW9uU3RhcnRlZChpbnQgY29udHJvbGxlclBlZXJDb25uZWN0aW9uSWQpCi17
Ci0gICAgLy8gRG9uJ3QgYXNzZXJ0IHNpbmNlIHRoZSBmcmFtZSBjb250cm9sbGVyIGNhbiBoYXZl
IGJlZW4gZGVzdHJveWVkCi0gICAgaWYgKG1fcGVlckNvbm5lY3Rpb25zLmNvbnRhaW5zKGNvbnRy
b2xsZXJQZWVyQ29ubmVjdGlvbklkKSkgewotICAgICAgICBjb25zdCBSZXF1ZXN0JiBwZWVyQ29u
bmVjdGlvbiA9IG1fcGVlckNvbm5lY3Rpb25zLmdldChjb250cm9sbGVyUGVlckNvbm5lY3Rpb25J
ZCk7Ci0gICAgICAgIEFTU0VSVChwZWVyQ29ubmVjdGlvbi5mcmFtZUNvbnRyb2xsZXIoKSk7Ci0g
ICAgICAgIHBlZXJDb25uZWN0aW9uLmZyYW1lQ29udHJvbGxlcigpLT5vbk5lZ290aWF0aW9uU3Rh
cnRlZChwZWVyQ29ubmVjdGlvbi5sb2NhbElkKCkpOwotICAgIH0KLX0KLQotdm9pZCBNZWRpYVN0
cmVhbUNvbnRyb2xsZXI6Om9uTmVnb3RpYXRpb25Eb25lKGludCBjb250cm9sbGVyUGVlckNvbm5l
Y3Rpb25JZCkKLXsKLSAgICAvLyBEb24ndCBhc3NlcnQgc2luY2UgdGhlIGZyYW1lIGNvbnRyb2xs
ZXIgY2FuIGhhdmUgYmVlbiBkZXN0cm95ZWQKLSAgICBpZiAobV9wZWVyQ29ubmVjdGlvbnMuY29u
dGFpbnMoY29udHJvbGxlclBlZXJDb25uZWN0aW9uSWQpKSB7Ci0gICAgICAgIGNvbnN0IFJlcXVl
c3QmIHBlZXJDb25uZWN0aW9uID0gbV9wZWVyQ29ubmVjdGlvbnMuZ2V0KGNvbnRyb2xsZXJQZWVy
Q29ubmVjdGlvbklkKTsKLSAgICAgICAgQVNTRVJUKHBlZXJDb25uZWN0aW9uLmZyYW1lQ29udHJv
bGxlcigpKTsKLSAgICAgICAgcGVlckNvbm5lY3Rpb24uZnJhbWVDb250cm9sbGVyKCktPm9uTmVn
b3RpYXRpb25Eb25lKHBlZXJDb25uZWN0aW9uLmxvY2FsSWQoKSk7Ci0gICAgfQotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVN0cmVhbUNvbnRyb2xsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFTdHJlYW1Db250cm9sbGVyLmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDU1NTM1ODdlLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvTWVkaWFTdHJlYW1Db250cm9sbGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMDMgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
LSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBNZWRpYVN0cmVhbUNvbnRyb2xsZXJfaAotI2RlZmlu
ZSBNZWRpYVN0cmVhbUNvbnRyb2xsZXJfaAotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQot
I2luY2x1ZGUgIk1lZGlhU3RyZWFtQ2xpZW50LmgiCi0jaW5jbHVkZSAiTmF2aWdhdG9yVXNlck1l
ZGlhRXJyb3IuaCIKLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nSGFzaC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIE1lZGlhU3RyZWFt
Q2xpZW50OwotY2xhc3MgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXI7Ci1jbGFzcyBNZWRpYVN0
cmVhbVRyYWNrTGlzdDsKLWNsYXNzIFNlY3VyaXR5T3JpZ2luOwotCi1jbGFzcyBNZWRpYVN0cmVh
bUNvbnRyb2xsZXIgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1lZGlhU3RyZWFtQ29udHJv
bGxlcik7Ci1wdWJsaWM6Ci0gICAgTWVkaWFTdHJlYW1Db250cm9sbGVyKE1lZGlhU3RyZWFtQ2xp
ZW50Kik7Ci0gICAgdmlydHVhbCB+TWVkaWFTdHJlYW1Db250cm9sbGVyKCk7Ci0KLSAgICBib29s
IGlzQ2xpZW50QXZhaWxhYmxlKCkgY29uc3Q7Ci0gICAgdm9pZCB1bnJlZ2lzdGVyRnJhbWVDb250
cm9sbGVyKE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKik7Ci0KLSAgICB2b2lkIGdlbmVyYXRl
U3RyZWFtKE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKiwgaW50IHJlcXVlc3RJZCwgR2VuZXJh
dGVTdHJlYW1PcHRpb25GbGFncywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4pOwotICAgIHZv
aWQgc3RvcEdlbmVyYXRlZFN0cmVhbShjb25zdCBTdHJpbmcmIHN0cmVhbUxhYmVsKTsKLQotICAg
IC8vIEVuYWJsZS9kaXNhYmxlIGFuIHRyYWNrLgotICAgIHZvaWQgc2V0TWVkaWFTdHJlYW1UcmFj
a0VuYWJsZWQoY29uc3QgU3RyaW5nJiB0cmFja0lkLCBib29sIGVuYWJsZWQpOwotCi0gICAgdm9p
ZCBzdHJlYW1HZW5lcmF0ZWQoaW50IHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBzdHJlYW1MYWJl
bCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrTGlzdD4gdHJhY2tzKTsKLSAgICB2b2lkIHN0
cmVhbUdlbmVyYXRpb25GYWlsZWQoaW50IHJlcXVlc3RJZCwgTmF2aWdhdG9yVXNlck1lZGlhRXJy
b3I6OkVycm9yQ29kZSk7Ci0gICAgdm9pZCBzdHJlYW1GYWlsZWQoY29uc3QgU3RyaW5nJiBzdHJl
YW1MYWJlbCk7Ci0KLSAgICAvKiBKUyAtPiBVQSAqLwotICAgIHZvaWQgbmV3UGVlckNvbm5lY3Rp
b24oTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIqLCBpbnQgZnJhbWVQZWVyQ29ubmVjdGlvbklk
LCBjb25zdCBTdHJpbmcmIGNvbmZpZ3VyYXRpb24pOwotICAgIHZvaWQgc3RhcnROZWdvdGlhdGlv
bihNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlciosIGludCBmcmFtZVBlZXJDb25uZWN0aW9uSWQp
OwotICAgIHZvaWQgcHJvY2Vzc1NpZ25hbGluZ01lc3NhZ2UoTWVkaWFTdHJlYW1GcmFtZUNvbnRy
b2xsZXIqLCBpbnQgZnJhbWVQZWVyQ29ubmVjdGlvbklkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
OwotICAgIHZvaWQgbWVzc2FnZShNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlciosIGludCBmcmFt
ZVBlZXJDb25uZWN0aW9uSWQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7Ci0gICAgdm9pZCBhZGRT
dHJlYW0oTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIqLCBpbnQgZnJhbWVQZWVyQ29ubmVjdGlv
bklkLCBjb25zdCBTdHJpbmcmIHN0cmVhbUxhYmVsKTsKLSAgICB2b2lkIHJlbW92ZVN0cmVhbShN
ZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlciosIGludCBmcmFtZVBlZXJDb25uZWN0aW9uSWQsIGNv
bnN0IFN0cmluZyYgc3RyZWFtTGFiZWwpOwotICAgIHZvaWQgY2xvc2VQZWVyQ29ubmVjdGlvbihN
ZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlciosIGludCBmcmFtZVBlZXJDb25uZWN0aW9uSWQpOwot
Ci0gICAgLyogVUEgLT4gSlMgKi8KLSAgICB2b2lkIG9uU2lnbmFsaW5nTWVzc2FnZShpbnQgY29u
dHJvbGxlclBlZXJDb25uZWN0aW9uSWQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7Ci0gICAgdm9p
ZCBvbk1lc3NhZ2UoaW50IGNvbnRyb2xsZXJQZWVyQ29ubmVjdGlvbklkLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpOwotICAgIHZvaWQgb25BZGRTdHJlYW0oaW50IGNvbnRyb2xsZXJQZWVyQ29ubmVj
dGlvbklkLCBjb25zdCBTdHJpbmcmIHN0cmVhbUxhYmVsLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFt
VHJhY2tMaXN0PiB0cmFja3MpOwotICAgIHZvaWQgb25SZW1vdmVTdHJlYW0oaW50IGNvbnRyb2xs
ZXJQZWVyQ29ubmVjdGlvbklkLCBjb25zdCBTdHJpbmcmIHN0cmVhbUxhYmVsKTsKLSAgICB2b2lk
IG9uTmVnb3RpYXRpb25TdGFydGVkKGludCBjb250cm9sbGVyUGVlckNvbm5lY3Rpb25JZCk7Ci0g
ICAgdm9pZCBvbk5lZ290aWF0aW9uRG9uZShpbnQgY29udHJvbGxlclBlZXJDb25uZWN0aW9uSWQp
OwotCi1wcml2YXRlOgotICAgIGludCByZWdpc3RlclJlcXVlc3QoaW50IGxvY2FsUmVxdWVzdElk
LCBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlciopOwotICAgIHZvaWQgcmVnaXN0ZXJTdHJlYW0o
Y29uc3QgU3RyaW5nJiBzdHJlYW1MYWJlbCwgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIqKTsK
LQotICAgIGJvb2wgZnJhbWVUb1BhZ2VQZWVyQ29ubmVjdGlvbklkKE1lZGlhU3RyZWFtRnJhbWVD
b250cm9sbGVyKiwgaW50IGZyYW1lUGVlckNvbm5lY3Rpb25JZCwgaW50JiBwYWdlUGVlckNvbm5l
Y3Rpb25JZCk7Ci0KLSAgICBjbGFzcyBSZXF1ZXN0OwotICAgIHR5cGVkZWYgSGFzaE1hcDxpbnQs
IFJlcXVlc3Q+IFJlcXVlc3RNYXA7Ci0gICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgTWVkaWFT
dHJlYW1GcmFtZUNvbnRyb2xsZXIqPiBTdHJlYW1NYXA7Ci0KLSAgICBSZXF1ZXN0TWFwIG1fcmVx
dWVzdHM7Ci0gICAgU3RyZWFtTWFwIG1fc3RyZWFtczsKLSAgICBSZXF1ZXN0TWFwIG1fcGVlckNv
bm5lY3Rpb25zOwotCi0gICAgTWVkaWFTdHJlYW1DbGllbnQqIG1fY2xpZW50OwotICAgIGludCBt
X25leHRHbG9iYWxSZXF1ZXN0SWQ7Ci0gICAgaW50IG1fbmV4dEdsb2JhbFBlZXJDb25uZWN0aW9u
SWQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVE
SUFfU1RSRUFNKQotCi0jZW5kaWYgLy8gTWVkaWFTdHJlYW1Db250cm9sbGVyX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlci5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDliNjc5MmEuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9NZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlci5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSw0ODggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIk1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyLmgiCi0KLSNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQotCi0jaW5jbHVkZSAiRE9NV2luZG93LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIK
LSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkxvY2FsTWVkaWFTdHJlYW0uaCIKLSNpbmNs
dWRlICJNZWRpYVN0cmVhbUNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNr
TGlzdC5oIgotI2luY2x1ZGUgIk5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2suaCIKLSNp
bmNsdWRlICJOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJQ
YWdlLmgiCi0jaW5jbHVkZSAiUGVlckNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJTZWN1cml0eU9y
aWdpbi5oIgotI2luY2x1ZGUgIlNpZ25hbGluZ0NhbGxiYWNrLmgiCi0jaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBNZWRpYVN0cmVhbUZy
YW1lQ29udHJvbGxlcjo6UmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFJlcXVlc3Q+IHsKLSAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShSZXF1ZXN0KTsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5S
ZXF1ZXN0KCkgeyB9Ci0KLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OyB9Ci0g
ICAgdmlydHVhbCBib29sIGlzR2VuZXJhdGVTdHJlYW1SZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWNvcmRlZERhdGFSZXF1ZXN0KCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTaWduYWxpbmdSZXF1ZXN0KCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLQotICAgIHZpcnR1YWwgdm9pZCBhYm9ydCgpID0gMDsK
LQotcHJvdGVjdGVkOgotICAgIFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCkKLSAgICAgICAgOiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQoc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCkgeyB9Ci0KLXByaXZhdGU6Ci0gICAgLy8gVGhpcyBpcyBndWFy
YW50ZWVkIHRvIGhhdmUgdGhlIGxpZmV0aW1lIG9mIHRoZSBGcmFtZSwgYW5kIGl0J3Mgb25seSB1
c2VkIHRvIG1ha2UKLSAgICAvLyB0aGUgY2FsbGJhY2sgYXN5bmNocm9ub3VzLiBUaGUgb3JpZ2lu
YWwgY2FsbGJhY2sgY29udGV4dCBpcyB1c2VkIGluIHRoZSBjYWxsLgotICAgIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKLX07Ci0KLWNsYXNzIE1lZGlh
U3RyZWFtRnJhbWVDb250cm9sbGVyOjpHZW5lcmF0ZVN0cmVhbVJlcXVlc3QgOiBwdWJsaWMgUmVx
dWVzdCB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR2VuZXJhdGVTdHJlYW1SZXF1ZXN0KTsK
LXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZW5lcmF0ZVN0cmVhbVJlcXVlc3Q+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQ
dHI8TmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFzc1Jl
ZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZW5lcmF0ZVN0cmVhbVJlcXVlc3Qoc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCwgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKSk7Ci0g
ICAgfQotCi0gICAgdmlydHVhbCB+R2VuZXJhdGVTdHJlYW1SZXF1ZXN0KCkgeyB9Ci0KLSAgICB2
aXJ0dWFsIGJvb2wgaXNHZW5lcmF0ZVN0cmVhbVJlcXVlc3QoKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgYWJvcnQoKQotICAgIHsKLSAgICAgICAgaWYgKG1fZXJy
b3JDYWxsYmFjaykgewotICAgICAgICAgICAgUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9y
PiBlcnJvciA9IE5hdmlnYXRvclVzZXJNZWRpYUVycm9yOjpjcmVhdGUoTmF2aWdhdG9yVXNlck1l
ZGlhRXJyb3I6OlBFUk1JU1NJT05fREVOSUVEKTsKLSAgICAgICAgICAgIC8vIFRoZSBjYWxsYmFj
ayBpdHNlbGYgaXMgbWFkZSB3aXRoIHRoZSBKUyBjYWxsYmFjaydzIGNvbnRleHQsIG5vdCB3aXRo
IHRoZSBmcmFtZSdzIGNvbnRleHQuCi0gICAgICAgICAgICBtX2Vycm9yQ2FsbGJhY2stPnNjaGVk
dWxlQ2FsbGJhY2soc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBlcnJvcik7Ci0gICAgICAgIH0K
LSAgICB9Ci0KLSAgICBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFj
az4gc3VjY2Vzc0NhbGxiYWNrKCkgY29uc3QgeyByZXR1cm4gbV9zdWNjZXNzQ2FsbGJhY2s7IH0K
LSAgICBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2s+IGVycm9yQ2Fs
bGJhY2soKSBjb25zdCB7IHJldHVybiBtX2Vycm9yQ2FsbGJhY2s7IH0KLQotcHJpdmF0ZToKLSAg
ICBHZW5lcmF0ZVN0cmVhbVJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUGFzc1JlZlB0cjxOYXZp
Z2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxi
YWNrPiBlcnJvckNhbGxiYWNrKQotICAgICAgICA6IFJlcXVlc3Qoc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCkKLSAgICAgICAgLCBtX3N1Y2Nlc3NDYWxsYmFjayhzdWNjZXNzQ2FsbGJhY2spCi0gICAg
ICAgICwgbV9lcnJvckNhbGxiYWNrKGVycm9yQ2FsbGJhY2spIHsgfQotCi0gICAgUmVmUHRyPE5h
dmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaz4gbV9zdWNjZXNzQ2FsbGJhY2s7Ci0gICAg
UmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2s+IG1fZXJyb3JDYWxsYmFjazsK
LX07Ci0KLXZvaWQgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXI6OlJlcXVlc3RNYXA6OmFib3J0
KGludCByZXF1ZXN0SWQpCi17Ci0gICAgZ2V0KHJlcXVlc3RJZCktPmFib3J0KCk7Ci0gICAgcmVt
b3ZlKHJlcXVlc3RJZCk7Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXI6OlJl
cXVlc3RNYXA6OmFib3J0QWxsKCkKLXsKLSAgICB3aGlsZSAoIWlzRW1wdHkoKSkgewotICAgICAg
ICBiZWdpbigpLT5zZWNvbmQtPmFib3J0KCk7Ci0gICAgICAgIHJlbW92ZShiZWdpbigpKTsKLSAg
ICB9Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotdm9pZCBNZWRpYVN0cmVhbUZyYW1lQ29u
dHJvbGxlcjo6Q2xpZW50TWFwQmFzZTxUPjo6dW5yZWdpc3RlckFsbCgpCi17Ci0gICAgd2hpbGUg
KCF0aGlzLT5pc0VtcHR5KCkpIHsKLSAgICAgICAgVCBrZXkgPSB0aGlzLT5iZWdpbigpLT5maXJz
dDsKLSAgICAgICAgLy8gdW5yZWdpc3RlciBzaG91bGQgcmVtb3ZlIHRoZSBlbGVtZW50IGZyb20g
dGhlIG1hcC4KLSAgICAgICAgdGhpcy0+YmVnaW4oKS0+c2Vjb25kLT51bnJlZ2lzdGVyKCk7Ci0g
ICAgICAgIEFTU0VSVF9VTlVTRUQoa2V5LCAhdGhpcy0+Y29udGFpbnMoa2V5KSk7Ci0gICAgfQot
fQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXZvaWQgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xs
ZXI6OkNsaWVudE1hcEJhc2U8VD46OmRldGFjaEVtYmVkZGVyKCkKLXsKLSAgICBmb3IgKHR5cGVu
YW1lIE1hcFR5cGU6Oml0ZXJhdG9yIGl0ID0gdGhpcy0+YmVnaW4oKTsgaXQgIT0gdGhpcy0+ZW5k
KCk7ICsraXQpCi0gICAgICAgIGl0LT5zZWNvbmQtPmRldGFjaEVtYmVkZGVyKCk7Ci19Ci0KLU1l
ZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyOjpNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcihGcmFt
ZSogZnJhbWUpCi0gICAgOiBtX2ZyYW1lKGZyYW1lKQotICAgICwgbV9pc0luRGV0YWNoZWRTdGF0
ZShmYWxzZSkKLXsKLSAgICBpZiAoIWlzQ2xpZW50QXZhaWxhYmxlKCkpCi0gICAgICAgIGVudGVy
RGV0YWNoZWRTdGF0ZSgpOwotfQotCi1NZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcjo6fk1lZGlh
U3RyZWFtRnJhbWVDb250cm9sbGVyKCkKLXsKLX0KLQotU2VjdXJpdHlPcmlnaW4qIE1lZGlhU3Ry
ZWFtRnJhbWVDb250cm9sbGVyOjpzZWN1cml0eU9yaWdpbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IG1fZnJhbWUgPyBtX2ZyYW1lLT5leGlzdGluZ0RPTVdpbmRvdygpLT5zZWN1cml0eU9yaWdpbigp
IDogMDsKLX0KLQotU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogTWVkaWFTdHJlYW1GcmFtZUNvbnRy
b2xsZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAotewotICAgIHJldHVybiBtX2Zy
YW1lID8gbV9mcmFtZS0+ZXhpc3RpbmdET01XaW5kb3coKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpIDogMDsKLX0KLQotTWVkaWFTdHJlYW1Db250cm9sbGVyKiBNZWRpYVN0cmVhbUZyYW1lQ29u
dHJvbGxlcjo6cGFnZUNvbnRyb2xsZXIoKSBjb25zdAotewotICAgIHJldHVybiBtX2ZyYW1lICYm
IG1fZnJhbWUtPnBhZ2UoKSA/IG1fZnJhbWUtPnBhZ2UoKS0+bWVkaWFTdHJlYW1Db250cm9sbGVy
KCkgOiAwOwotfQotCi12b2lkIE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyOjp1bnJlZ2lzdGVy
KE1lZGlhU3RyZWFtQ2xpZW50KiBjbGllbnQpCi17Ci0gICAgQVNTRVJUKG1fc3RyZWFtcy5jb250
YWlucyhjbGllbnQtPmNsaWVudElkKCkpKTsKLQotICAgIC8vIEFzc3VtaW5nIHdlIHNob3VsZCBz
dG9wIGFueSBsaXZlIHN0cmVhbXMgd2hlbiBsb3NpbmcgYWNjZXNzIHRvIHRoZSBlbWJlZGRlci4K
LSAgICBpZiAoY2xpZW50LT5pc0xvY2FsTWVkaWFTdHJlYW0oKSkgewotICAgICAgICBMb2NhbE1l
ZGlhU3RyZWFtKiBzdHJlYW0gPSBzdGF0aWNfY2FzdDxMb2NhbE1lZGlhU3RyZWFtKj4oY2xpZW50
KTsKLSAgICAgICAgaWYgKHN0cmVhbS0+cmVhZHlTdGF0ZSgpID09IE1lZGlhU3RyZWFtOjpMSVZF
KQotICAgICAgICAgICAgc3RvcEdlbmVyYXRlZFN0cmVhbShzdHJlYW0tPmxhYmVsKCkpOwotICAg
IH0KLQotICAgIG1fc3RyZWFtcy5yZW1vdmUoY2xpZW50LT5jbGllbnRJZCgpKTsKLX0KLQotdm9p
ZCBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcjo6dW5yZWdpc3RlcihHZW5lcmljQ2xpZW50KiBj
bGllbnQpCi17Ci0gICAgQVNTRVJUKG1fY2xpZW50cy5jb250YWlucyhjbGllbnQtPmNsaWVudElk
KCkpKTsKLSAgICBtX2NsaWVudHMucmVtb3ZlKGNsaWVudC0+Y2xpZW50SWQoKSk7Ci19Ci0KLU1l
ZGlhU3RyZWFtKiBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcjo6Z2V0U3RyZWFtRnJvbUxhYmVs
KGNvbnN0IFN0cmluZyYgbGFiZWwpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKG1fc3RyZWFtcy5jb250
YWlucyhsYWJlbCkpOwotICAgIEFTU0VSVChtX3N0cmVhbXMuZ2V0KGxhYmVsKS0+aXNNZWRpYVN0
cmVhbSgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TWVkaWFTdHJlYW0qPihtX3N0cmVhbXMu
Z2V0KGxhYmVsKSk7Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXI6OmVudGVy
RGV0YWNoZWRTdGF0ZSgpCi17Ci0gICAgaWYgKG1faXNJbkRldGFjaGVkU3RhdGUpIHsKLSAgICAg
ICAgQVNTRVJUKG1fcmVxdWVzdHMuaXNFbXB0eSgpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIG1fcmVxdWVzdHMuYWJvcnRBbGwoKTsKLSAgICBtX3N0cmVhbXMuZGV0YWNoRW1iZWRk
ZXIoKTsKLSAgICBtX2NsaWVudHMuZGV0YWNoRW1iZWRkZXIoKTsKLSAgICBtX2lzSW5EZXRhY2hl
ZFN0YXRlID0gdHJ1ZTsKLX0KLQotYm9vbCBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcjo6aXND
bGllbnRBdmFpbGFibGUoKSBjb25zdAotewotICAgIGlmIChtX2lzSW5EZXRhY2hlZFN0YXRlKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBNZWRpYVN0cmVhbUNvbnRyb2xsZXIqIGNvbnRy
b2xsZXIgPSBwYWdlQ29udHJvbGxlcigpOwotICAgIHJldHVybiBjb250cm9sbGVyICYmIGNvbnRy
b2xsZXItPmlzQ2xpZW50QXZhaWxhYmxlKCk7Ci19Ci0KLS8vIENhbGxlZCBhbHNvIHdoZW4gdGhl
IGZyYW1lIGlzIGRldGFjaGVkIGZyb20gdGhlIHBhZ2UsIGluIHdoaWNoIGNhc2UgdGhlIHBhZ2Ug
Y29udHJvbGxlciB3aWxsIHJlbWFpbiBhbGl2ZS4KLXZvaWQgTWVkaWFTdHJlYW1GcmFtZUNvbnRy
b2xsZXI6OmRpc2Nvbm5lY3RQYWdlKCkKLXsKLSAgICBpZiAocGFnZUNvbnRyb2xsZXIoKSkKLSAg
ICAgICAgcGFnZUNvbnRyb2xsZXIoKS0+dW5yZWdpc3RlckZyYW1lQ29udHJvbGxlcih0aGlzKTsK
LQotICAgIGVudGVyRGV0YWNoZWRTdGF0ZSgpOwotfQotCi0vLyBDYWxsZWQgd2hlbiB0aGUgZnJh
bWUgaXMgYmVpbmcgZGVzdHJveWVkLiBTaW5jZSB0aGUgZnJhbWUgY29udHJvbGxlciBpcyBvd25l
ZCBieSB0aGUgZnJhbWUgaXQgd2lsbCBkaWUgc2hvcnRseSBhZnRlciB0aGlzLgotdm9pZCBNZWRp
YVN0cmVhbUZyYW1lQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZyYW1lKCkKLXsKLSAgICBkaXNjb25u
ZWN0UGFnZSgpOwotCi0gICAgQVNTRVJUKG1fcmVxdWVzdHMuaXNFbXB0eSgpKTsKLSAgICBtX3N0
cmVhbXMudW5yZWdpc3RlckFsbCgpOwotICAgIG1fY2xpZW50cy51bnJlZ2lzdGVyQWxsKCk7Ci0K
LSAgICBtX2ZyYW1lID0gMDsKLX0KLQotdm9pZCBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcjo6
dHJhbnNmZXJUb05ld1BhZ2UoUGFnZSopCi17Ci0gICAgLy8gRklYTUU6IEluIHRoZSBmdXR1cmUg
d2Ugc2hvdWxkIGtlZXAgcnVubmluZyB0aGUgbWVkaWEgc3RyZWFtIHNlcnZpY2VzIHdoaWxlIHRy
YW5zZmVyaW5nIGZyYW1lcyBiZXR3ZWVuIHBhZ2VzLgotICAgIC8vIEhvd2V2ZXIsIHVudGlsIGEg
cHJvcGVyIHdheSB0byBkbyB0aGlzIGlzIGRlY2lkZWQsIHdlJ3JlIHNodXR0aW5nIGRvd24gc2Vy
dmljZXMuCi0gICAgZGlzY29ubmVjdFBhZ2UoKTsKLX0KLQotR2VuZXJhdGVTdHJlYW1PcHRpb25G
bGFncyBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcjo6cGFyc2VHZW5lcmF0ZVN0cmVhbU9wdGlv
bnMoY29uc3QgU3RyaW5nJiBvcHRpb25zKQotewotICAgIEdlbmVyYXRlU3RyZWFtT3B0aW9uRmxh
Z3MgZmxhZ3MgPSAwOwotICAgIFZlY3RvcjxTdHJpbmc+IG9wdGlvbkxpc3Q7Ci0gICAgb3B0aW9u
cy5zcGxpdCgnLCcsIG9wdGlvbkxpc3QpOwotCi0gICAgZm9yIChWZWN0b3I8U3RyaW5nPjo6Y29u
c3RfaXRlcmF0b3Igb3B0aW9uID0gb3B0aW9uTGlzdC5iZWdpbigpOyBvcHRpb24gIT0gb3B0aW9u
TGlzdC5lbmQoKTsgKytvcHRpb24pIHsKLSAgICAgICAgVmVjdG9yPFN0cmluZz4gc3Vib3B0aW9u
TGlzdDsKLSAgICAgICAgb3B0aW9uLT5zcGxpdCgnICcsIHN1Ym9wdGlvbkxpc3QpOwotCi0gICAg
ICAgIGlmIChzdWJvcHRpb25MaXN0LmZpcnN0KCkgPT0gImF1ZGlvIikKLSAgICAgICAgICAgIGZs
YWdzIHw9IEdlbmVyYXRlU3RyZWFtUmVxdWVzdEF1ZGlvOwotICAgICAgICBlbHNlIGlmIChzdWJv
cHRpb25MaXN0LmZpcnN0KCkgPT0gInZpZGVvIikgewotICAgICAgICAgICAgYm9vbCB2aWRlb1N1
Ym9wdGlvbnMgPSBmYWxzZTsKLSAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+Ojpjb25zdF9pdGVy
YXRvciBzdWJvcHRpb24gPSBzdWJvcHRpb25MaXN0LmJlZ2luKCk7Ci0gICAgICAgICAgICBmb3Ig
KCsrc3Vib3B0aW9uOyBzdWJvcHRpb24gIT0gc3Vib3B0aW9uTGlzdC5lbmQoKTsgKytzdWJvcHRp
b24pCi0gICAgICAgICAgICAgICAgaWYgKCpzdWJvcHRpb24gPT0gInVzZXIiKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGZsYWdzIHw9IEdlbmVyYXRlU3RyZWFtUmVxdWVzdFZpZGVvRmFjaW5nVXNl
cjsKLSAgICAgICAgICAgICAgICAgICAgdmlkZW9TdWJvcHRpb25zID0gdHJ1ZTsKLSAgICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKCpzdWJvcHRpb24gPT0gImVudmlyb25tZW50IikgewotICAgICAg
ICAgICAgICAgICAgICBmbGFncyB8PSBHZW5lcmF0ZVN0cmVhbVJlcXVlc3RWaWRlb0ZhY2luZ0Vu
dmlyb25tZW50OwotICAgICAgICAgICAgICAgICAgICB2aWRlb1N1Ym9wdGlvbnMgPSB0cnVlOwot
ICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gQXNrIGZvciBhbGwga2luZCBvZiBj
YW1lcmFzIGlmIG5vIHN1Ym9wdGlvbiB3YXMgc3BlY2lmaWVkLgotICAgICAgICAgICAgaWYgKCF2
aWRlb1N1Ym9wdGlvbnMpCi0gICAgICAgICAgICAgICAgZmxhZ3MgfD0gR2VuZXJhdGVTdHJlYW1S
ZXF1ZXN0VmlkZW9GYWNpbmdVc2VyIHwgR2VuZXJhdGVTdHJlYW1SZXF1ZXN0VmlkZW9GYWNpbmdF
bnZpcm9ubWVudDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBmbGFnczsKLX0KLQot
Ly8gSW1wbGVtZW50cyB0aGUgZ2V0VXNlck1lZGlhIG1ldGhvZCBmcm9tIGh0dHA6Ly93d3cud2hh
dHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI2RvbS1uYXZpZ2F0b3ItZ2V0dXNl
cm1lZGlhLgotdm9pZCBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcjo6Z2VuZXJhdGVTdHJlYW0o
Y29uc3QgU3RyaW5nJiBvcHRpb25zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUGFzc1JlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJh
Y2s+IHN1Y2Nlc3NDYWxsYmFjaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjaz4g
ZXJyb3JDYWxsYmFjaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGVjID0gMDsKLSAgICBpZiAoIXN1Y2Nl
c3NDYWxsYmFjaykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgR2VuZXJhdGVTdHJlYW1PcHRpb25G
bGFncyBmbGFncyA9IHBhcnNlR2VuZXJhdGVTdHJlYW1PcHRpb25zKG9wdGlvbnMpOwotICAgIGlm
ICghZmxhZ3MpIHsKLSAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLQotICAgIGludCByZXF1ZXN0SWQgPSBtX3JlcXVlc3RzLmdldE5leHRJZCgp
OwotICAgIG1fcmVxdWVzdHMuYWRkKHJlcXVlc3RJZCwgR2VuZXJhdGVTdHJlYW1SZXF1ZXN0Ojpj
cmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2Fs
bGJhY2spKTsKLQotICAgIGlmICghaXNDbGllbnRBdmFpbGFibGUoKSkgewotICAgICAgICAvLyBU
aGlzIG1ha2VzIHN1cmUgdG8gY2FsbCB0aGUgZXJyb3IgY2FsbGJhY2sgaWYgcHJvdmlkZWQuCi0g
ICAgICAgIG1fcmVxdWVzdHMuYWJvcnQocmVxdWVzdElkKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQotICAgIHBhZ2VDb250cm9sbGVyKCktPmdlbmVyYXRlU3RyZWFtKHRoaXMsIHJlcXVlc3RJ
ZCwgZmxhZ3MsIHNlY3VyaXR5T3JpZ2luKCkpOwotfQotCi12b2lkIE1lZGlhU3RyZWFtRnJhbWVD
b250cm9sbGVyOjpzdG9wR2VuZXJhdGVkU3RyZWFtKGNvbnN0IFN0cmluZyYgc3RyZWFtTGFiZWwp
Ci17Ci0gICAgQVNTRVJUKG1fc3RyZWFtcy5jb250YWlucyhzdHJlYW1MYWJlbCkpOwotICAgIEFT
U0VSVChtX3N0cmVhbXMuZ2V0KHN0cmVhbUxhYmVsKS0+aXNMb2NhbE1lZGlhU3RyZWFtKCkpOwot
Ci0gICAgaWYgKGlzQ2xpZW50QXZhaWxhYmxlKCkpCi0gICAgICAgIHBhZ2VDb250cm9sbGVyKCkt
PnN0b3BHZW5lcmF0ZWRTdHJlYW0oc3RyZWFtTGFiZWwpOwotfQotCi12b2lkIE1lZGlhU3RyZWFt
RnJhbWVDb250cm9sbGVyOjpzZXRNZWRpYVN0cmVhbVRyYWNrRW5hYmxlZChjb25zdCBTdHJpbmcm
IHRyYWNrSWQsIGJvb2wgZW5hYmxlZCkKLXsKLSAgICBpZiAoaXNDbGllbnRBdmFpbGFibGUoKSkK
LSAgICAgICAgcGFnZUNvbnRyb2xsZXIoKS0+c2V0TWVkaWFTdHJlYW1UcmFja0VuYWJsZWQodHJh
Y2tJZCwgZW5hYmxlZCk7Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXI6OnN0
cmVhbUdlbmVyYXRlZChpbnQgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBQYXNzUmVm
UHRyPE1lZGlhU3RyZWFtVHJhY2tMaXN0PiB0cmFja3NQYXJhbSkKLXsKLSAgICAvLyBEb24ndCBh
c3NlcnQgc2luY2UgdGhlIHJlcXVlc3QgY2FuIGhhdmUgYmVlbiBhYm9ydGVkIGFzIGEgcmVzdWx0
IG9mIGVtYmVkZGVyIGRldGFjaG1lbnQuCi0gICAgaWYgKCFtX3JlcXVlc3RzLmNvbnRhaW5zKHJl
cXVlc3RJZCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIEFTU0VSVChtX3JlcXVlc3RzLmdldChy
ZXF1ZXN0SWQpLT5pc0dlbmVyYXRlU3RyZWFtUmVxdWVzdCgpKTsKLSAgICBBU1NFUlQoIWxhYmVs
LmlzTnVsbCgpKTsKLSAgICBBU1NFUlQodHJhY2tzUGFyYW0pOwotCi0gICAgUmVmUHRyPE1lZGlh
U3RyZWFtVHJhY2tMaXN0PiB0cmFja3MgPSB0cmFja3NQYXJhbTsKLQotICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCB0cmFja3MtPmxlbmd0aCgpOyArK2kpIHsKLSAgICAgICAgaW50IHRyYWNr
Q2xpZW50SWQgPSBtX2NsaWVudHMuZ2V0TmV4dElkKCk7Ci0gICAgICAgIFJlZlB0cjxNZWRpYVN0
cmVhbVRyYWNrPiB0cmFjayA9IHRyYWNrcy0+aXRlbShpKTsKLSAgICAgICAgdHJhY2stPmFzc29j
aWF0ZUZyYW1lQ29udHJvbGxlcih0aGlzLCB0cmFja0NsaWVudElkKTsKLSAgICAgICAgbV9jbGll
bnRzLmFkZCh0cmFja0NsaWVudElkLCB0cmFjay5nZXQoKSk7Ci0gICAgfQotCi0gICAgUmVmUHRy
PEdlbmVyYXRlU3RyZWFtUmVxdWVzdD4gc3RyZWFtUmVxdWVzdCA9IHN0YXRpY19jYXN0PEdlbmVy
YXRlU3RyZWFtUmVxdWVzdCo+KG1fcmVxdWVzdHMuZ2V0KHJlcXVlc3RJZCkuZ2V0KCkpOwotICAg
IFJlZlB0cjxMb2NhbE1lZGlhU3RyZWFtPiBnZW5lcmF0ZWRTdHJlYW0gPSBMb2NhbE1lZGlhU3Ry
ZWFtOjpjcmVhdGUodGhpcywgbGFiZWwsIHRyYWNrcy5yZWxlYXNlKCkpOwotICAgIG1fc3RyZWFt
cy5hZGQobGFiZWwsIGdlbmVyYXRlZFN0cmVhbS5nZXQoKSk7Ci0gICAgbV9yZXF1ZXN0cy5yZW1v
dmUocmVxdWVzdElkKTsKLSAgICBzdHJlYW1SZXF1ZXN0LT5zdWNjZXNzQ2FsbGJhY2soKS0+aGFu
ZGxlRXZlbnQoZ2VuZXJhdGVkU3RyZWFtLmdldCgpKTsKLX0KLQotdm9pZCBNZWRpYVN0cmVhbUZy
YW1lQ29udHJvbGxlcjo6c3RyZWFtR2VuZXJhdGlvbkZhaWxlZChpbnQgcmVxdWVzdElkLCBOYXZp
Z2F0b3JVc2VyTWVkaWFFcnJvcjo6RXJyb3JDb2RlIGNvZGUpCi17Ci0gICAgLy8gRG9uJ3QgYXNz
ZXJ0IHNpbmNlIHRoZSByZXF1ZXN0IGNhbiBoYXZlIGJlZW4gYWJvcnRlZCBhcyBhIHJlc3VsdCBv
ZiBlbWJlZGRlciBkZXRhY2htZW50LgotICAgIGlmICghbV9yZXF1ZXN0cy5jb250YWlucyhyZXF1
ZXN0SWQpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBBU1NFUlQobV9yZXF1ZXN0cy5nZXQocmVx
dWVzdElkKS0+aXNHZW5lcmF0ZVN0cmVhbVJlcXVlc3QoKSk7Ci0KLSAgICBSZWZQdHI8R2VuZXJh
dGVTdHJlYW1SZXF1ZXN0PiBzdHJlYW1SZXF1ZXN0ID0gc3RhdGljX2Nhc3Q8R2VuZXJhdGVTdHJl
YW1SZXF1ZXN0Kj4obV9yZXF1ZXN0cy5nZXQocmVxdWVzdElkKS5nZXQoKSk7Ci0gICAgbV9yZXF1
ZXN0cy5yZW1vdmUocmVxdWVzdElkKTsKLQotICAgIGlmIChzdHJlYW1SZXF1ZXN0LT5lcnJvckNh
bGxiYWNrKCkpIHsKLSAgICAgICAgUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yPiBlcnJv
ciA9IE5hdmlnYXRvclVzZXJNZWRpYUVycm9yOjpjcmVhdGUoY29kZSk7Ci0gICAgICAgIHN0cmVh
bVJlcXVlc3QtPmVycm9yQ2FsbGJhY2soKS0+aGFuZGxlRXZlbnQoZXJyb3IuZ2V0KCkpOwotICAg
IH0KLX0KLQotdm9pZCBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcjo6c3RyZWFtRmFpbGVkKGNv
bnN0IFN0cmluZyYgbGFiZWwpCi17Ci0gICAgZ2V0U3RyZWFtRnJvbUxhYmVsKGxhYmVsKS0+c3Ry
ZWFtRW5kZWQoKTsKLX0KLQotUGFzc1JlZlB0cjxQZWVyQ29ubmVjdGlvbj4gTWVkaWFTdHJlYW1G
cmFtZUNvbnRyb2xsZXI6OmNyZWF0ZVBlZXJDb25uZWN0aW9uKGNvbnN0IFN0cmluZyYgY29uZmln
dXJhdGlvbiwgUGFzc1JlZlB0cjxTaWduYWxpbmdDYWxsYmFjaz4gc2lnbmFsaW5nQ2FsbGJhY2sp
Ci17Ci0gICAgaW50IGNsaWVudElkID0gbV9jbGllbnRzLmdldE5leHRJZCgpOwotICAgIFJlZlB0
cjxQZWVyQ29ubmVjdGlvbj4gcGVlckNvbm5lY3Rpb24gPSBQZWVyQ29ubmVjdGlvbjo6Y3JlYXRl
KHRoaXMsIGNsaWVudElkLCBjb25maWd1cmF0aW9uLCBzaWduYWxpbmdDYWxsYmFjayk7Ci0gICAg
aWYgKHBlZXJDb25uZWN0aW9uKQotICAgICAgICBtX2NsaWVudHMuYWRkKGNsaWVudElkLCBwZWVy
Q29ubmVjdGlvbi5nZXQoKSk7Ci0gICAgcmV0dXJuIHBlZXJDb25uZWN0aW9uLnJlbGVhc2UoKTsK
LX0KLQotdm9pZCBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcjo6bmV3UGVlckNvbm5lY3Rpb24o
aW50IHBlZXJDb25uZWN0aW9uSWQsIGNvbnN0IFN0cmluZyYgY29uZmlndXJhdGlvbikKLXsKLSAg
ICBpZiAocGFnZUNvbnRyb2xsZXIoKSkKLSAgICAgICAgcGFnZUNvbnRyb2xsZXIoKS0+bmV3UGVl
ckNvbm5lY3Rpb24odGhpcywgcGVlckNvbm5lY3Rpb25JZCwgY29uZmlndXJhdGlvbik7Ci19Ci0K
LXZvaWQgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXI6OmNsb3NlUGVlckNvbm5lY3Rpb24oaW50
IHBlZXJDb25uZWN0aW9uSWQpCi17Ci0gICAgaWYgKHBhZ2VDb250cm9sbGVyKCkpCi0gICAgICAg
IHBhZ2VDb250cm9sbGVyKCktPmNsb3NlUGVlckNvbm5lY3Rpb24odGhpcywgcGVlckNvbm5lY3Rp
b25JZCk7Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXI6OnN0YXJ0TmVnb3Rp
YXRpb24oaW50IHBlZXJDb25uZWN0aW9uSWQpCi17Ci0gICAgaWYgKHBhZ2VDb250cm9sbGVyKCkp
Ci0gICAgICAgIHBhZ2VDb250cm9sbGVyKCktPnN0YXJ0TmVnb3RpYXRpb24odGhpcywgcGVlckNv
bm5lY3Rpb25JZCk7Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXI6OnByb2Nl
c3NTaWduYWxpbmdNZXNzYWdlKGludCBwZWVyQ29ubmVjdGlvbklkLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpCi17Ci0gICAgaWYgKHBhZ2VDb250cm9sbGVyKCkpCi0gICAgICAgIHBhZ2VDb250cm9s
bGVyKCktPnByb2Nlc3NTaWduYWxpbmdNZXNzYWdlKHRoaXMsIHBlZXJDb25uZWN0aW9uSWQsIG1l
c3NhZ2UpOwotfQotCi12b2lkIE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyOjptZXNzYWdlKGlu
dCBwZWVyQ29ubmVjdGlvbklkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCi17Ci0gICAgaWYgKHBh
Z2VDb250cm9sbGVyKCkpCi0gICAgICAgIHBhZ2VDb250cm9sbGVyKCktPm1lc3NhZ2UodGhpcywg
cGVlckNvbm5lY3Rpb25JZCwgbWVzc2FnZSk7Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1GcmFtZUNv
bnRyb2xsZXI6OmFkZFN0cmVhbShpbnQgcGVlckNvbm5lY3Rpb25JZCwgUGFzc1JlZlB0cjxNZWRp
YVN0cmVhbT4gcHJwU3RyZWFtKQotewotICAgIFJlZlB0cjxNZWRpYVN0cmVhbT4gc3RyZWFtID0g
cHJwU3RyZWFtOwotICAgIEFTU0VSVChtX3N0cmVhbXMuY29udGFpbnMoc3RyZWFtLT5sYWJlbCgp
KSk7Ci0KLSAgICBpZiAocGFnZUNvbnRyb2xsZXIoKSkKLSAgICAgICAgcGFnZUNvbnRyb2xsZXIo
KS0+YWRkU3RyZWFtKHRoaXMsIHBlZXJDb25uZWN0aW9uSWQsIHN0cmVhbS0+bGFiZWwoKSk7Ci19
Ci0KLXZvaWQgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXI6OnJlbW92ZVN0cmVhbShpbnQgcGVl
ckNvbm5lY3Rpb25JZCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gcHJwU3RyZWFtKQotewotICAg
IFJlZlB0cjxNZWRpYVN0cmVhbT4gc3RyZWFtID0gcHJwU3RyZWFtOwotICAgIEFTU0VSVChtX3N0
cmVhbXMuY29udGFpbnMoc3RyZWFtLT5sYWJlbCgpKSk7Ci0KLSAgICBpZiAocGFnZUNvbnRyb2xs
ZXIoKSkKLSAgICAgICAgcGFnZUNvbnRyb2xsZXIoKS0+cmVtb3ZlU3RyZWFtKHRoaXMsIHBlZXJD
b25uZWN0aW9uSWQsIHN0cmVhbS0+bGFiZWwoKSk7Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1GcmFt
ZUNvbnRyb2xsZXI6Om9uTWVzc2FnZShpbnQgcGVlckNvbm5lY3Rpb25JZCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQotewotICAgIEFTU0VSVChtX2NsaWVudHMuY29udGFpbnMocGVlckNvbm5lY3Rp
b25JZCkpOwotICAgIEFTU0VSVChtX2NsaWVudHMuZ2V0KHBlZXJDb25uZWN0aW9uSWQpLT5pc1Bl
ZXJDb25uZWN0aW9uKCkpOwotCi0gICAgUmVmUHRyPFBlZXJDb25uZWN0aW9uPiBwZWVyQ29ubmVj
dGlvbiA9IHN0YXRpY19jYXN0PFBlZXJDb25uZWN0aW9uKj4obV9jbGllbnRzLmdldChwZWVyQ29u
bmVjdGlvbklkKSk7Ci0KLSAgICBwZWVyQ29ubmVjdGlvbi0+b25NZXNzYWdlKG1lc3NhZ2UpOwot
fQotCi12b2lkIE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyOjpvbkFkZFN0cmVhbShpbnQgcGVl
ckNvbm5lY3Rpb25JZCwgY29uc3QgU3RyaW5nJiBzdHJlYW1MYWJlbCwgUGFzc1JlZlB0cjxNZWRp
YVN0cmVhbVRyYWNrTGlzdD4gdHJhY2tzKQotewotICAgIEFTU0VSVCghc3RyZWFtTGFiZWwuaXNF
bXB0eSgpKTsKLSAgICBBU1NFUlQobV9jbGllbnRzLmNvbnRhaW5zKHBlZXJDb25uZWN0aW9uSWQp
KTsKLSAgICBBU1NFUlQobV9jbGllbnRzLmdldChwZWVyQ29ubmVjdGlvbklkKS0+aXNQZWVyQ29u
bmVjdGlvbigpKTsKLQotICAgIFJlZlB0cjxNZWRpYVN0cmVhbT4gc3RyZWFtID0gTWVkaWFTdHJl
YW06OmNyZWF0ZSh0aGlzLCBzdHJlYW1MYWJlbCwgdHJhY2tzKTsKLQotICAgIFJlZlB0cjxQZWVy
Q29ubmVjdGlvbj4gcGVlckNvbm5lY3Rpb24gPSBzdGF0aWNfY2FzdDxQZWVyQ29ubmVjdGlvbio+
KG1fY2xpZW50cy5nZXQocGVlckNvbm5lY3Rpb25JZCkpOwotICAgIHBlZXJDb25uZWN0aW9uLT5z
dHJlYW1BZGRlZChzdHJlYW0ucmVsZWFzZSgpKTsKLX0KLQotdm9pZCBNZWRpYVN0cmVhbUZyYW1l
Q29udHJvbGxlcjo6b25SZW1vdmVTdHJlYW0oaW50IHBlZXJDb25uZWN0aW9uSWQsIGNvbnN0IFN0
cmluZyYgc3RyZWFtTGFiZWwpCi17Ci0gICAgQVNTRVJUKCFzdHJlYW1MYWJlbC5pc0VtcHR5KCkp
OwotICAgIEFTU0VSVChtX2NsaWVudHMuY29udGFpbnMocGVlckNvbm5lY3Rpb25JZCkpOwotICAg
IEFTU0VSVChtX2NsaWVudHMuZ2V0KHBlZXJDb25uZWN0aW9uSWQpLT5pc1BlZXJDb25uZWN0aW9u
KCkpOwotCi0gICAgUmVmUHRyPFBlZXJDb25uZWN0aW9uPiBwZWVyQ29ubmVjdGlvbiA9IHN0YXRp
Y19jYXN0PFBlZXJDb25uZWN0aW9uKj4obV9jbGllbnRzLmdldChwZWVyQ29ubmVjdGlvbklkKSk7
Ci0gICAgcGVlckNvbm5lY3Rpb24tPnN0cmVhbVJlbW92ZWQoc3RyZWFtTGFiZWwpOwotfQotCi12
b2lkIE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyOjpvblNpZ25hbGluZ01lc3NhZ2UoaW50IHBl
ZXJDb25uZWN0aW9uSWQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKLXsKLSAgICBBU1NFUlQobV9j
bGllbnRzLmNvbnRhaW5zKHBlZXJDb25uZWN0aW9uSWQpKTsKLSAgICBBU1NFUlQobV9jbGllbnRz
LmdldChwZWVyQ29ubmVjdGlvbklkKS0+aXNQZWVyQ29ubmVjdGlvbigpKTsKLQotICAgIFJlZlB0
cjxQZWVyQ29ubmVjdGlvbj4gcGVlckNvbm5lY3Rpb24gPSBzdGF0aWNfY2FzdDxQZWVyQ29ubmVj
dGlvbio+KG1fY2xpZW50cy5nZXQocGVlckNvbm5lY3Rpb25JZCkpOwotICAgIHBlZXJDb25uZWN0
aW9uLT5vblNpZ25hbGluZ01lc3NhZ2UobWVzc2FnZSk7Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1G
cmFtZUNvbnRyb2xsZXI6Om9uTmVnb3RpYXRpb25TdGFydGVkKGludCBwZWVyQ29ubmVjdGlvbklk
KQotewotICAgIC8vIEZJWE1FOiBBc3NlcnQgb3Igbm90PwotICAgIEFTU0VSVChtX2NsaWVudHMu
Y29udGFpbnMocGVlckNvbm5lY3Rpb25JZCkpOwotICAgIEFTU0VSVChtX2NsaWVudHMuZ2V0KHBl
ZXJDb25uZWN0aW9uSWQpLT5pc1BlZXJDb25uZWN0aW9uKCkpOwotCi0gICAgUmVmUHRyPFBlZXJD
b25uZWN0aW9uPiBwZWVyQ29ubmVjdGlvbiA9IHN0YXRpY19jYXN0PFBlZXJDb25uZWN0aW9uKj4o
bV9jbGllbnRzLmdldChwZWVyQ29ubmVjdGlvbklkKSk7Ci0KLSAgICBwZWVyQ29ubmVjdGlvbi0+
b25OZWdvdGlhdGlvblN0YXJ0ZWQoKTsKLX0KLQotdm9pZCBNZWRpYVN0cmVhbUZyYW1lQ29udHJv
bGxlcjo6b25OZWdvdGlhdGlvbkRvbmUoaW50IHBlZXJDb25uZWN0aW9uSWQpCi17Ci0gICAgLy8g
RklYTUU6IEFzc2VydCBvciBub3Q/Ci0gICAgQVNTRVJUKG1fY2xpZW50cy5jb250YWlucyhwZWVy
Q29ubmVjdGlvbklkKSk7Ci0gICAgQVNTRVJUKG1fY2xpZW50cy5nZXQocGVlckNvbm5lY3Rpb25J
ZCktPmlzUGVlckNvbm5lY3Rpb24oKSk7Ci0KLSAgICBSZWZQdHI8UGVlckNvbm5lY3Rpb24+IHBl
ZXJDb25uZWN0aW9uID0gc3RhdGljX2Nhc3Q8UGVlckNvbm5lY3Rpb24qPihtX2NsaWVudHMuZ2V0
KHBlZXJDb25uZWN0aW9uSWQpKTsKLQotICAgIHBlZXJDb25uZWN0aW9uLT5vbk5lZ290aWF0aW9u
RG9uZSgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUo
TUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVN0cmVh
bUZyYW1lQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVN0cmVhbUZyYW1l
Q29udHJvbGxlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNTE0NzI1Li4wMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIu
aAorKysgL2Rldi9udWxsCkBAIC0xLDI0NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICogQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVm
IE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyX2gKLSNkZWZpbmUgTWVkaWFTdHJlYW1GcmFtZUNv
bnRyb2xsZXJfaAotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIkV4Y2Vw
dGlvbkNvZGUuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbUNsaWVudC5oIgotI2luY2x1ZGUgIk5h
dmlnYXRvclVzZXJNZWRpYUVycm9yLmgiCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFz
cyBGcmFtZTsKLWNsYXNzIExvY2FsTWVkaWFTdHJlYW07Ci1jbGFzcyBNZWRpYVN0cmVhbTsKLWNs
YXNzIE1lZGlhU3RyZWFtQ29udHJvbGxlcjsKLWNsYXNzIE1lZGlhU3RyZWFtVHJhY2tMaXN0Owot
Y2xhc3MgTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjazsKLWNsYXNzIE5hdmlnYXRvclVz
ZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjazsKLWNsYXNzIFBhZ2U7Ci1jbGFzcyBQZWVyQ29ubmVjdGlv
bjsKLWNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7Ci1jbGFzcyBTZWN1cml0eU9yaWdpbjsK
LWNsYXNzIFNpZ25hbGluZ0NhbGxiYWNrOwotCi1jbGFzcyBNZWRpYVN0cmVhbUZyYW1lQ29udHJv
bGxlciB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xs
ZXIpOwotcHVibGljOgotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBJZFR5cGU+Ci0gICAgY2xhc3Mg
Q2xpZW50QmFzZSB7Ci0gICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENsaWVudEJhc2UpOwot
ICAgIHB1YmxpYzoKLSAgICAgICAgQ2xpZW50QmFzZSgpIDogbV9mcmFtZUNvbnRyb2xsZXIoMCks
IG1fY2xpZW50SWQoMCkgeyB9Ci0KLSAgICAgICAgQ2xpZW50QmFzZShNZWRpYVN0cmVhbUZyYW1l
Q29udHJvbGxlciogZnJhbWVDb250cm9sbGVyLCBjb25zdCBJZFR5cGUmIGlkKQotICAgICAgICAg
ICAgOiBtX2ZyYW1lQ29udHJvbGxlcihmcmFtZUNvbnRyb2xsZXIpCi0gICAgICAgICAgICAsIG1f
Y2xpZW50SWQoaWQpIHsgfQotCi0gICAgICAgIHZpcnR1YWwgfkNsaWVudEJhc2UoKSB7IH0KLQot
ICAgICAgICBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlciogbWVkaWFTdHJlYW1GcmFtZUNvbnRy
b2xsZXIoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lQ29udHJvbGxlcjsgfQotICAgICAgICBjb25z
dCBJZFR5cGUmIGNsaWVudElkKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRJZDsgfQotCi0gICAg
ICAgIHZpcnR1YWwgYm9vbCBpc01lZGlhU3RyZWFtKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
LSAgICAgICAgdmlydHVhbCBib29sIGlzTG9jYWxNZWRpYVN0cmVhbSgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBpc0dlbmVyaWNDbGllbnQoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNQZWVyQ29ubmVjdGlvbigp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0KLSAgICAgICAgLy8gQ2FsbGVkIHdoZW4gdGhlIGZy
YW1lIGNvbnRyb2xsZXIgaXMgYmVpbmcgZGlzY29ubmVjdGVkIHRvIHRoZSBNZWRpYVN0cmVhbUNs
aWVudCBlbWJlZGRlci4KLSAgICAgICAgLy8gQ2xpZW50cyBzaG91bGQgb3ZlcnJpZGUgdGhpcyB0
byBzZW5kIGFueSByZXF1aXJlZCBzaHV0ZG93biBtZXNzYWdlcy4KLSAgICAgICAgdmlydHVhbCB2
b2lkIGRldGFjaEVtYmVkZGVyKCkgeyB9Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIC8vIFVz
ZWQgZm9yIG9iamVjdHMgdGhhdCBhcmUgb3B0aW9uYWxseSBhc3NvY2lhdGVkIHRvIHRoZSBmcmFt
ZSBjb250cm9sbGVyIGFmdGVyIGNvbnN0cnVjdGlvbiwgbGlrZSB0aGUgTWVkaWFTdHJlYW1UcmFj
a3MuCi0gICAgICAgIHZvaWQgYXNzb2NpYXRlRnJhbWVDb250cm9sbGVyKE1lZGlhU3RyZWFtRnJh
bWVDb250cm9sbGVyKiBmcmFtZUNvbnRyb2xsZXIsIGNvbnN0IElkVHlwZSYgaWQpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIEFTU0VSVCghbV9mcmFtZUNvbnRyb2xsZXIgJiYgIW1fY2xpZW50SWQp
OwotICAgICAgICAgICAgbV9mcmFtZUNvbnRyb2xsZXIgPSBmcmFtZUNvbnRyb2xsZXI7Ci0gICAg
ICAgICAgICBtX2NsaWVudElkID0gaWQ7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBBdm9pZHMg
cmVwZWF0aW5nIHRoZSBzYW1lIGNvZGUgaW4gdGhlIHVucmVnaXN0ZXIgbWV0aG9kIG9mIGVhY2gg
ZGVyaXZlZCBjbGFzcy4KLSAgICAgICAgLy8gVGhpcyBpcyByZXF1aXJlZCBzaW5jZSB0aGUgY29u
dHJvbGxlcidzIHVucmVnaXN0ZXIgbWV0aG9kcyBtYWtlIHVzZSBvZiB0aGUgaXNPYmplY3Qgdmly
dHVhbHMsCi0gICAgICAgIC8vIGFuZCB0aGUgdW5yZWdpc3RyYXRpb24gY2FuIGJlIHRyaWdnZXJl
ZCBlaXRoZXIgYnkgdGhlIGRlc3RydWN0b3Igb2YgdGhlIGNsaWVudCBvciBieSB0aGUgZGlzY29u
bmVjdGlvbiBvZiB0aGUgZnJhbWUuCi0gICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBDbGllbnRU
eXBlPgotICAgICAgICB2b2lkIHVucmVnaXN0ZXJDbGllbnQoQ2xpZW50VHlwZSogY2xpZW50KQot
ICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIW1fZnJhbWVDb250cm9sbGVyKQotICAgICAgICAg
ICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgbV9mcmFtZUNvbnRyb2xsZXItPnVucmVnaXN0
ZXIoc3RhdGljX2Nhc3Q8Q2xpZW50VHlwZSo+KGNsaWVudCkpOwotICAgICAgICAgICAgbV9mcmFt
ZUNvbnRyb2xsZXIgPSAwOwotICAgICAgICB9Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIHVucmVn
aXN0ZXIoKSA9IDA7Ci0gICAgICAgIGZyaWVuZCBjbGFzcyBNZWRpYVN0cmVhbUZyYW1lQ29udHJv
bGxlcjsKLQotICAgICAgICBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlciogbV9mcmFtZUNvbnRy
b2xsZXI7Ci0gICAgICAgIElkVHlwZSBtX2NsaWVudElkOwotICAgIH07Ci0KLSAgICBjbGFzcyBN
ZWRpYVN0cmVhbUNsaWVudCA6IHB1YmxpYyBDbGllbnRCYXNlPFN0cmluZz4gewotICAgIHB1Ymxp
YzoKLSAgICAgICAgTWVkaWFTdHJlYW1DbGllbnQoTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIq
IGZyYW1lQ29udHJvbGxlciwgY29uc3QgU3RyaW5nJiBsYWJlbCwgYm9vbCBpc0xvY2FsTWVkaWFT
dHJlYW0pCi0gICAgICAgICAgICA6IENsaWVudEJhc2U8U3RyaW5nPihmcmFtZUNvbnRyb2xsZXIs
IGxhYmVsKQotICAgICAgICAgICAgLCBtX2lzTG9jYWxNZWRpYVN0cmVhbShpc0xvY2FsTWVkaWFT
dHJlYW0pIHsgfQotCi0gICAgICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtQ2xpZW50KCkgeyB1bnJl
Z2lzdGVyKCk7IH0KLQotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNNZWRpYVN0cmVhbSgpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KLQotICAgICAgICAvLyBBY2Nlc3NlZCBieSB0aGUgZGVzdHJ1Y3Rv
ci4KLSAgICAgICAgdmlydHVhbCBib29sIGlzTG9jYWxNZWRpYVN0cmVhbSgpIGNvbnN0IHsgcmV0
dXJuIG1faXNMb2NhbE1lZGlhU3RyZWFtOyB9Ci0KLSAgICAgICAgLy8gU3RyZWFtIGhhcyBlbmRl
ZCBmb3Igc29tZSBleHRlcm5hbCByZWFzb24uCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzdHJlYW1F
bmRlZCgpID0gMDsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lz
dGVyKCkgeyB1bnJlZ2lzdGVyQ2xpZW50KHRoaXMpOyB9Ci0gICAgICAgIGJvb2wgbV9pc0xvY2Fs
TWVkaWFTdHJlYW07Ci0gICAgfTsKLQotICAgIC8vIEdlbmVyaWMgY2xpZW50cyBhcmUgb2JqZWN0
cyB0aGF0IHJlcXVpcmUgYWNjZXNzIHRvIHRoZSBmcmFtZSBjb250cm9sbGVyIGJ1dCBkb24ndCBo
YXZlIGEgZ2xvYmFsIGlkIChsaWtlIHN0cmVhbXMgZG8pCi0gICAgLy8gb3IgbmVlZCB0byByZWNl
aXZlIGFueSBtZXNzYWdlcyBmcm9tIHRoZSBlbWJlZGRlciBjbGllbnQuCi0gICAgY2xhc3MgR2Vu
ZXJpY0NsaWVudCA6IHB1YmxpYyBDbGllbnRCYXNlPGludD4gewotICAgIHB1YmxpYzoKLSAgICAg
ICAgR2VuZXJpY0NsaWVudCgpIHsgfQotICAgICAgICBHZW5lcmljQ2xpZW50KE1lZGlhU3RyZWFt
RnJhbWVDb250cm9sbGVyKiBmcmFtZUNvbnRyb2xsZXIsIGludCBpZCkgOiBDbGllbnRCYXNlPGlu
dD4oZnJhbWVDb250cm9sbGVyLCBpZCkgeyB9Ci0gICAgICAgIHZpcnR1YWwgfkdlbmVyaWNDbGll
bnQoKSB7IHVucmVnaXN0ZXIoKTsgfQotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNHZW5lcmljQ2xp
ZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgdmly
dHVhbCB2b2lkIHVucmVnaXN0ZXIoKSB7IHVucmVnaXN0ZXJDbGllbnQodGhpcyk7IH0KLSAgICB9
OwotCi0gICAgY2xhc3MgUGVlckNvbm5lY3Rpb25DbGllbnQgOiBwdWJsaWMgR2VuZXJpY0NsaWVu
dCB7Ci0gICAgcHVibGljOgotICAgICAgICBQZWVyQ29ubmVjdGlvbkNsaWVudChNZWRpYVN0cmVh
bUZyYW1lQ29udHJvbGxlciogZnJhbWVDb250cm9sbGVyLCBpbnQgaWQpIDogR2VuZXJpY0NsaWVu
dChmcmFtZUNvbnRyb2xsZXIsIGlkKSB7IH0KLSAgICAgICAgdmlydHVhbCB+UGVlckNvbm5lY3Rp
b25DbGllbnQoKSB7IH0KLSAgICAgICAgdmlydHVhbCBib29sIGlzUGVlckNvbm5lY3Rpb24oKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgfTsKLQotICAgIE1lZGlhU3RyZWFtRnJhbWVDb250
cm9sbGVyKEZyYW1lKik7Ci0gICAgdmlydHVhbCB+TWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIo
KTsKLQotICAgIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbigpIGNvbnN0OwotICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsKLQot
ICAgIGJvb2wgaXNDbGllbnRBdmFpbGFibGUoKSBjb25zdDsKLSAgICB2b2lkIGRpc2Nvbm5lY3RQ
YWdlKCk7Ci0gICAgdm9pZCBkaXNjb25uZWN0RnJhbWUoKTsKLSAgICB2b2lkIHRyYW5zZmVyVG9O
ZXdQYWdlKFBhZ2UqKTsKLQotICAgIHN0YXRpYyBHZW5lcmF0ZVN0cmVhbU9wdGlvbkZsYWdzIHBh
cnNlR2VuZXJhdGVTdHJlYW1PcHRpb25zKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgZ2VuZXJh
dGVTdHJlYW0oY29uc3QgU3RyaW5nJiBvcHRpb25zLCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJN
ZWRpYVN1Y2Nlc3NDYWxsYmFjaz4sIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JD
YWxsYmFjaz4sIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHN0b3BHZW5lcmF0ZWRTdHJlYW0o
Y29uc3QgU3RyaW5nJiBzdHJlYW1MYWJlbCk7Ci0gICAgdm9pZCBzZXRNZWRpYVN0cmVhbVRyYWNr
RW5hYmxlZChjb25zdCBTdHJpbmcmIHRyYWNrSWQsIGJvb2wgZW5hYmxlZCk7Ci0KLSAgICBQYXNz
UmVmUHRyPFBlZXJDb25uZWN0aW9uPiBjcmVhdGVQZWVyQ29ubmVjdGlvbihjb25zdCBTdHJpbmcm
IGNvbmZpZ3VyYXRpb24sIFBhc3NSZWZQdHI8U2lnbmFsaW5nQ2FsbGJhY2s+KTsKLSAgICB2b2lk
IG5ld1BlZXJDb25uZWN0aW9uKGludCBwZWVyQ29ubmVjdGlvbklkLCBjb25zdCBTdHJpbmcmIGNv
bmZpZ3VyYXRpb24pOwotICAgIHZvaWQgc3RhcnROZWdvdGlhdGlvbihpbnQgcGVlckNvbm5lY3Rp
b25JZCk7Ci0gICAgdm9pZCBwcm9jZXNzU2lnbmFsaW5nTWVzc2FnZShpbnQgcGVlckNvbm5lY3Rp
b25JZCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKLSAgICB2b2lkIG1lc3NhZ2UoaW50IHBlZXJD
b25uZWN0aW9uSWQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7Ci0gICAgdm9pZCBhZGRTdHJlYW0o
aW50IHBlZXJDb25uZWN0aW9uSWQsIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+KTsKLSAgICB2b2lk
IHJlbW92ZVN0cmVhbShpbnQgcGVlckNvbm5lY3Rpb25JZCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVh
bT4pOwotICAgIHZvaWQgY2xvc2VQZWVyQ29ubmVjdGlvbihpbnQgcGVlckNvbm5lY3Rpb25JZCk7
Ci0KLSAgICAvLyAtLS0gQ2FsbHMgY29taW5nIGJhY2sgZnJvbSB0aGUgY29udHJvbGxlci4gLS0t
IC8vCi0KLSAgICB2b2lkIHN0cmVhbUdlbmVyYXRlZChpbnQgcmVxdWVzdElkLCBjb25zdCBTdHJp
bmcmIHN0cmVhbUxhYmVsLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tMaXN0PiB0cmFja3Mp
OwotICAgIHZvaWQgc3RyZWFtR2VuZXJhdGlvbkZhaWxlZChpbnQgcmVxdWVzdElkLCBOYXZpZ2F0
b3JVc2VyTWVkaWFFcnJvcjo6RXJyb3JDb2RlKTsKLSAgICB2b2lkIHN0cmVhbUZhaWxlZChjb25z
dCBTdHJpbmcmIHN0cmVhbUxhYmVsKTsKLQotICAgIHZvaWQgb25TaWduYWxpbmdNZXNzYWdlKGlu
dCBwZWVyQ29ubmVjdGlvbklkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwotICAgIHZvaWQgb25N
ZXNzYWdlKGludCBwZWVyQ29ubmVjdGlvbklkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwotICAg
IHZvaWQgb25BZGRTdHJlYW0oaW50IHBlZXJDb25uZWN0aW9uSWQsIGNvbnN0IFN0cmluZyYgc3Ry
ZWFtTGFiZWwsIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja0xpc3Q+KTsKLSAgICB2b2lkIG9u
UmVtb3ZlU3RyZWFtKGludCBwZWVyQ29ubmVjdGlvbklkLCBjb25zdCBTdHJpbmcmIHN0cmVhbUxh
YmVsKTsKLSAgICB2b2lkIG9uTmVnb3RpYXRpb25TdGFydGVkKGludCBwZWVyQ29ubmVjdGlvbklk
KTsKLSAgICB2b2lkIG9uTmVnb3RpYXRpb25Eb25lKGludCBwZWVyQ29ubmVjdGlvbklkKTsKLQot
cHJpdmF0ZToKLSAgICBjbGFzcyBSZXF1ZXN0OwotICAgIGNsYXNzIEdlbmVyYXRlU3RyZWFtUmVx
dWVzdDsKLQotICAgIGNsYXNzIElkR2VuZXJhdG9yIHsKLSAgICAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoSWRHZW5lcmF0b3IpOwotICAgIHB1YmxpYzoKLSAgICAgICAgSWRHZW5lcmF0b3IoKSA6
IG1faWQoMCkgeyB9Ci0gICAgICAgIGludCBnZXROZXh0SWQoKSB7IHJldHVybiArK21faWQ7IH0K
LQotICAgIHByaXZhdGU6Ci0gICAgICAgIGludCBtX2lkOwotICAgIH07Ci0KLSAgICBjbGFzcyBS
ZXF1ZXN0TWFwIDogcHVibGljIElkR2VuZXJhdG9yLCBwdWJsaWMgSGFzaE1hcDxpbnQsIFJlZlB0
cjxSZXF1ZXN0PiA+IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHZvaWQgYWJvcnQoaW50IHJlcXVl
c3RJZCk7Ci0gICAgICAgIHZvaWQgYWJvcnRBbGwoKTsKLSAgICB9OwotCi0gICAgdGVtcGxhdGUg
PHR5cGVuYW1lIElkVHlwZT4KLSAgICBjbGFzcyBDbGllbnRNYXBCYXNlIDogcHVibGljIEhhc2hN
YXA8SWRUeXBlLCBDbGllbnRCYXNlPElkVHlwZT4qID4gewotICAgICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShDbGllbnRNYXBCYXNlKTsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHR5cGVkZWYgSGFz
aE1hcDxJZFR5cGUsIENsaWVudEJhc2U8SWRUeXBlPiogPiBNYXBUeXBlOwotCi0gICAgICAgIENs
aWVudE1hcEJhc2UoKSB7IH0KLSAgICAgICAgdm9pZCB1bnJlZ2lzdGVyQWxsKCk7Ci0gICAgICAg
IHZvaWQgZGV0YWNoRW1iZWRkZXIoKTsKLSAgICB9OwotCi0gICAgLy8gU3RyZWFtcyBhcmUgYSBz
cGVjaWFsIGNsYXNzIG9mIGNsaWVudHMgc2luY2UgdGhleSBhcmUgaWRlbnRpZmllZCBieSBhIGds
b2JhbCBsYWJlbCBzdHJpbmcgaW5zdGVhZCBvZiBhbiBpZC4KLSAgICB0eXBlZGVmIENsaWVudE1h
cEJhc2U8U3RyaW5nPiBTdHJlYW1NYXA7Ci0KLSAgICAvLyBBbGwgb3RoZXIgdHlwZXMgb2YgY2xp
ZW50cyB1c2UgYXV0b2dlbmVyYXRlZCBpbnRlZ2VyIGlkcy4KLSAgICBjbGFzcyBDbGllbnRNYXAg
OiBwdWJsaWMgSWRHZW5lcmF0b3IsIHB1YmxpYyBDbGllbnRNYXBCYXNlPGludD4geyB9OwotCi0g
ICAgLy8gRGV0YWNoZWQgZnJvbSBhIHBhZ2UsIGFuZCBoZW5jZSBmcm9tIGEgZW1iZWRkZXIgY2xp
ZW50LgotICAgIHZvaWQgZW50ZXJEZXRhY2hlZFN0YXRlKCk7Ci0KLSAgICB2b2lkIHVucmVnaXN0
ZXIoTWVkaWFTdHJlYW1DbGllbnQqKTsKLSAgICB2b2lkIHVucmVnaXN0ZXIoR2VuZXJpY0NsaWVu
dCopOwotICAgIE1lZGlhU3RyZWFtQ29udHJvbGxlciogcGFnZUNvbnRyb2xsZXIoKSBjb25zdDsK
LSAgICBNZWRpYVN0cmVhbSogZ2V0U3RyZWFtRnJvbUxhYmVsKGNvbnN0IFN0cmluZyYpIGNvbnN0
OwotCi0gICAgUmVxdWVzdE1hcCBtX3JlcXVlc3RzOwotICAgIENsaWVudE1hcCBtX2NsaWVudHM7
Ci0gICAgU3RyZWFtTWFwIG1fc3RyZWFtczsKLQotICAgIEZyYW1lKiBtX2ZyYW1lOwotICAgIGJv
b2wgbV9pc0luRGV0YWNoZWRTdGF0ZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQot
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNlbmRpZiAvLyBNZWRpYVN0cmVhbUZy
YW1lQ29udHJvbGxlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAKaW5kZXggYjFlNGFiMS4u
MzRmNjEwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcApAQCAtMzUsOSArMzUsNiBAQAog
I2luY2x1ZGUgIkdlb2xvY2F0aW9uLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIkxh
bmd1YWdlLmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIuaCIKLSNpbmNs
dWRlICJOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmgiCi0jaW5jbHVkZSAiTmF2aWdh
dG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1
ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCkBAIC00Nyw2ICs0
NCwxNCBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4
dHJhcy5oPgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpbmNsdWRlICJET01XaW5kb3cu
aCIKKyNpbmNsdWRlICJOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmgiCisjaW5jbHVk
ZSAiTmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmgiCisjaW5jbHVkZSAiU2VjdXJp
dHlPcmlnaW4uaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDb250cm9sbGVyLmgiCisjZW5kaWYKKwog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBOYXZpZ2F0b3I6Ok5hdmlnYXRvcihGcmFtZSogZnJhbWUp
CkBAIC03OSw2ICs4NCwxMSBAQCB2b2lkIE5hdmlnYXRvcjo6ZGlzY29ubmVjdEZyYW1lKCkKICAg
ICAgICAgbV9nZW9sb2NhdGlvbi0+ZGlzY29ubmVjdEZyYW1lKCk7CiAgICAgICAgIG1fZ2VvbG9j
YXRpb24gPSAwOwogICAgIH0KKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGlmIChtX2Zy
YW1lICYmIG1fZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT51c2VyTWVk
aWFDb250cm9sbGVyKCktPmNhbmNlbEFsbFVzZXJNZWRpYVJlcXVlc3RzKCk7CisjZW5kaWYKKwog
ICAgIG1fZnJhbWUgPSAwOwogfQogCkBAIC0yODIsOCArMjkyLDQ4IEBAIHZvaWQgTmF2aWdhdG9y
OjpyZWdpc3RlclByb3RvY29sSGFuZGxlcihjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3Ry
aW5nJiB1cmwsCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIHZvaWQgTmF2aWdhdG9yOjp3ZWJr
aXRHZXRVc2VyTWVkaWEoY29uc3QgU3RyaW5nJiBvcHRpb25zLCBQYXNzUmVmUHRyPE5hdmlnYXRv
clVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPE5h
dmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2ssIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewotICAgIGlmIChtX2ZyYW1lICYmIG1fZnJhbWUtPm1lZGlhU3RyZWFtRnJhbWVD
b250cm9sbGVyKCkpCi0gICAgICAgIG1fZnJhbWUtPm1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVy
KCktPmdlbmVyYXRlU3RyZWFtKG9wdGlvbnMsIHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFj
aywgZWMpOworICAgIGlmICghc3VjY2Vzc0NhbGxiYWNrKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAgIFBhZ2UqIHBhZ2UgPSBtX2Zy
YW1lLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gbV9mcmFtZS0+ZXhpc3RpbmdET01XaW5kb3co
KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIFJlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0
PiByZXF1ZXN0ID0gVXNlck1lZGlhUmVxdWVzdDo6Y3JlYXRlKCk7CisgICAgcmVxdWVzdC0+b3Jp
Z2luID0gY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKTsKKworICAgIFZlY3Rv
cjxTdHJpbmc+IG9wdGlvbnNMaXN0OworICAgIG9wdGlvbnMuc3BsaXQoIiwiLCBvcHRpb25zTGlz
dCk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9wdGlvbnNMaXN0LnNpemUoKTsgaSsr
KSB7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IHN1Yk9wdGlvbnNMaXN0OworICAgICAgICBvcHRp
b25zTGlzdFtpXS5zcGxpdCgiICIsIHN1Yk9wdGlvbnNMaXN0KTsKKworICAgICAgICBpZiAoc3Vi
T3B0aW9uc0xpc3RbMF0gPT0gImF1ZGlvIikgeworICAgICAgICAgICAgcmVxdWVzdC0+YXVkaW8g
PSB0cnVlOworICAgICAgICAgICAgaWYgKHN1Yk9wdGlvbnNMaXN0LmNvbnRhaW5zKCJkZWZhdWx0
IikpCisgICAgICAgICAgICAgICAgcmVxdWVzdC0+YXVkaW9QcmVmZXJlbmNlRGVmYXVsdCA9IHRy
dWU7CisgICAgICAgIH0gZWxzZSBpZiAoc3ViT3B0aW9uc0xpc3RbMF0gPT0gInZpZGVvIikgewor
ICAgICAgICAgICAgcmVxdWVzdC0+dmlkZW8gPSB0cnVlOworICAgICAgICAgICAgaWYgKHN1Yk9w
dGlvbnNMaXN0LmNvbnRhaW5zKCJ1c2VyIikpCisgICAgICAgICAgICAgICAgcmVxdWVzdC0+Y2Ft
ZXJhUHJlZmVyZW5jZVVzZXIgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN1Yk9wdGlvbnNMaXN0
LmNvbnRhaW5zKCJlbnZpcm9ubWVudCIpKQorICAgICAgICAgICAgICAgIHJlcXVlc3QtPmNhbWVy
YVByZWZlcmVuY2VFbnZpcm9ubWVudCA9IHRydWU7CisgICAgICAgICAgICBpZiAoc3ViT3B0aW9u
c0xpc3QuY29udGFpbnMoImRlZmF1bHQiKSkKKyAgICAgICAgICAgICAgICByZXF1ZXN0LT52aWRl
b1ByZWZlcmVuY2VEZWZhdWx0ID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICgh
cmVxdWVzdC0+YXVkaW8gJiYgIXJlcXVlc3QtPnZpZGVvKSB7CisgICAgICAgIGVjID0gTk9UX1NV
UFBPUlRFRF9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBwYWdlLT51c2VyTWVk
aWFDb250cm9sbGVyKCktPnJlcXVlc3RVc2VyTWVkaWEocmVxdWVzdC5yZWxlYXNlKCksIHN1Y2Nl
c3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaywgY29udGV4dCk7CiB9CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvTmF2aWdhdG9yLmgKaW5kZXggOGQxYzY5ZS4uNjZiZGYxYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmln
YXRvci5oCkBAIC0zNSw2ICszNSw3IEBAIGNsYXNzIEdlb2xvY2F0aW9uOwogY2xhc3MgTmF2aWdh
dG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjazsKIGNsYXNzIE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nl
c3NDYWxsYmFjazsKIGNsYXNzIFBsdWdpbkRhdGE7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250
ZXh0OwogCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL05hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2suaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5oCmluZGV4IDE1Mzk3
MDkuLmRkM2M4YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yVXNl
ck1lZGlhRXJyb3JDYWxsYmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9y
VXNlck1lZGlhRXJyb3JDYWxsYmFjay5oCkBAIC0yNywxNCArMjcsMTIgQEAKIAogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCiAKLSNpbmNsdWRlICJDYWxsYmFja1Rhc2suaCIKICNpbmNsdWRlICJO
YXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxs
YmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2s+
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBDYWxsYmFj
a1Rhc2sxPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2ssIE5hdmlnYXRvclVzZXJNZWRp
YUVycm9yPjo6U2NoZWR1bGVyIHsKK2NsYXNzIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJh
Y2sgOiBwdWJsaWMgUmVmQ291bnRlZDxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrPiB7
CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjaygp
IHsgfQogICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChOYXZpZ2F0b3JVc2VyTWVkaWFFcnJv
ciopID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDk2ZDc1ZGIuLmYwM2QwMTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcApAQCAtNTEsOCArNTEsNiBAQAogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYUNhblN0YXJ0
TGlzdGVuZXIuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbUNsaWVudC5oIgotI2luY2x1ZGUgIk1l
ZGlhU3RyZWFtQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtTdGF0ZU5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCkBAIC04Myw2
ICs4MSwxMCBAQAogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ29udHJvbGxlci5oIgogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2luY2x1ZGUgIlVzZXJNZWRpYUNvbnRyb2xsZXIu
aCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBIYXNoU2V0PFBhZ2Uq
PiogYWxsUGFnZXM7CkBAIC0xMjgsMTIgKzEzMCwxMiBAQCBQYWdlOjpQYWdlKFBhZ2VDbGllbnRz
JiBwYWdlQ2xpZW50cykKICAgICAsIG1fZGV2aWNlTW90aW9uQ29udHJvbGxlcihSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpkZXZpY2VNb3Rpb25FbmFibGVkKCkgPyBhZG9wdFB0cihuZXcgRGV2aWNl
TW90aW9uQ29udHJvbGxlcihwYWdlQ2xpZW50cy5kZXZpY2VNb3Rpb25DbGllbnQpKSA6IG51bGxw
dHIpCiAgICAgLCBtX2RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcihSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpkZXZpY2VPcmllbnRhdGlvbkVuYWJsZWQoKSA/IGFkb3B0UHRyKG5ldyBEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIodGhpcywgcGFnZUNsaWVudHMuZGV2aWNlT3JpZW50YXRpb25D
bGllbnQpKSA6IG51bGxwdHIpCiAjZW5kaWYKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAg
ICwgbV9tZWRpYVN0cmVhbUNvbnRyb2xsZXIoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6bWVkaWFT
dHJlYW1FbmFibGVkKCkgPyBhZG9wdFB0cihuZXcgTWVkaWFTdHJlYW1Db250cm9sbGVyKHBhZ2VD
bGllbnRzLm1lZGlhU3RyZWFtQ2xpZW50KSkgOiBQYXNzT3duUHRyPE1lZGlhU3RyZWFtQ29udHJv
bGxlcj4oKSkKLSNlbmRpZgogI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCiAgICAgLCBtX3NwZWVj
aElucHV0Q2xpZW50KHBhZ2VDbGllbnRzLnNwZWVjaElucHV0Q2xpZW50KQogI2VuZGlmCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAsIG1fdXNlck1lZGlhQ29udHJvbGxlcihhZG9wdFB0
cihuZXcgVXNlck1lZGlhQ29udHJvbGxlcih0aGlzLCBwYWdlQ2xpZW50cy51c2VyTWVkaWFDbGll
bnQpKSkKKyNlbmRpZgogICAgICwgbV9zZXR0aW5ncyhhZG9wdFB0cihuZXcgU2V0dGluZ3ModGhp
cykpKQogICAgICwgbV9wcm9ncmVzcyhhZG9wdFB0cihuZXcgUHJvZ3Jlc3NUcmFja2VyKSkKICAg
ICAsIG1fYmFja0ZvcndhcmRDb250cm9sbGVyKGFkb3B0UHRyKG5ldyBCYWNrRm9yd2FyZENvbnRy
b2xsZXIodGhpcywgcGFnZUNsaWVudHMuYmFja0ZvcndhcmRDbGllbnQpKSkKQEAgLTk5OCw3ICsx
MDAwLDcgQEAgUGFnZTo6UGFnZUNsaWVudHM6OlBhZ2VDbGllbnRzKCkKICAgICAsIGRldmljZU1v
dGlvbkNsaWVudCgwKQogICAgICwgZGV2aWNlT3JpZW50YXRpb25DbGllbnQoMCkKICAgICAsIHNw
ZWVjaElucHV0Q2xpZW50KDApCi0gICAgLCBtZWRpYVN0cmVhbUNsaWVudCgwKQorICAgICwgdXNl
ck1lZGlhQ2xpZW50KDApCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNDg1MTJlMC4uMzUxY2M1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKQEAgLTcwLDggKzcwLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIGNsYXNzIEluc3BlY3RvckNsaWVudDsKICAgICBjbGFzcyBJbnNwZWN0b3JDb250cm9sbGVy
OwogICAgIGNsYXNzIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcjsKLSAgICBjbGFzcyBNZWRpYVN0cmVh
bUNsaWVudDsKLSAgICBjbGFzcyBNZWRpYVN0cmVhbUNvbnRyb2xsZXI7CiAgICAgY2xhc3MgTm9k
ZTsKICAgICBjbGFzcyBQYWdlR3JvdXA7CiAgICAgY2xhc3MgUGx1Z2luRGF0YTsKQEAgLTgzLDYg
KzgxLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNldHRpbmdzOwogICAgIGNs
YXNzIFNwZWVjaElucHV0OwogICAgIGNsYXNzIFNwZWVjaElucHV0Q2xpZW50OworICAgIGNsYXNz
IFVzZXJNZWRpYUNsaWVudDsKKyAgICBjbGFzcyBVc2VyTWVkaWFDb250cm9sbGVyOwogI2lmIEVO
QUJMRShET01fU1RPUkFHRSkKICAgICBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlOwogI2VuZGlmCkBA
IC0xMTcsNyArMTE3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgRGV2aWNl
T3JpZW50YXRpb25DbGllbnQqIGRldmljZU9yaWVudGF0aW9uQ2xpZW50OwogICAgICAgICAgICAg
UmVmUHRyPEJhY2tGb3J3YXJkTGlzdD4gYmFja0ZvcndhcmRDbGllbnQ7CiAgICAgICAgICAgICBT
cGVlY2hJbnB1dENsaWVudCogc3BlZWNoSW5wdXRDbGllbnQ7Ci0gICAgICAgICAgICBNZWRpYVN0
cmVhbUNsaWVudCogbWVkaWFTdHJlYW1DbGllbnQ7CisgICAgICAgICAgICBVc2VyTWVkaWFDbGll
bnQqIHVzZXJNZWRpYUNsaWVudDsKICAgICAgICAgfTsKIAogICAgICAgICBQYWdlKFBhZ2VDbGll
bnRzJik7CkBAIC0xODMsMTIgKzE4MywxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSBjb25zdCB7
IHJldHVybiBtX2RldmljZU1vdGlvbkNvbnRyb2xsZXIuZ2V0KCk7IH0KICAgICAgICAgRGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyKiBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKSBjb25z
dCB7IHJldHVybiBtX2RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5nZXQoKTsgfQogI2VuZGlm
Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICAgICAgTWVkaWFTdHJlYW1Db250cm9sbGVy
KiBtZWRpYVN0cmVhbUNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RyZWFtQ29u
dHJvbGxlci5nZXQoKTsgfQotI2VuZGlmCiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICAg
ICAgU3BlZWNoSW5wdXQqIHNwZWVjaElucHV0KCk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorICAgICAgICBVc2VyTWVkaWFDb250cm9sbGVyKiB1c2VyTWVkaWFDb250cm9sbGVy
KCkgY29uc3QgeyByZXR1cm4gbV91c2VyTWVkaWFDb250cm9sbGVyLmdldCgpOyB9CisjZW5kaWYK
ICAgICAgICAgU2V0dGluZ3MqIHNldHRpbmdzKCkgY29uc3QgeyByZXR1cm4gbV9zZXR0aW5ncy5n
ZXQoKTsgfQogICAgICAgICBQcm9ncmVzc1RyYWNrZXIqIHByb2dyZXNzKCkgY29uc3QgeyByZXR1
cm4gbV9wcm9ncmVzcy5nZXQoKTsgfQogICAgICAgICBCYWNrRm9yd2FyZENvbnRyb2xsZXIqIGJh
Y2tGb3J3YXJkKCkgY29uc3QgeyByZXR1cm4gbV9iYWNrRm9yd2FyZENvbnRyb2xsZXIuZ2V0KCk7
IH0KQEAgLTM0MywxMyArMzQzLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgT3du
UHRyPERldmljZU1vdGlvbkNvbnRyb2xsZXI+IG1fZGV2aWNlTW90aW9uQ29udHJvbGxlcjsKICAg
ICAgICAgT3duUHRyPERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcj4gbV9kZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXI7CiAjZW5kaWYKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgICAg
ICBPd25QdHI8TWVkaWFTdHJlYW1Db250cm9sbGVyPiBtX21lZGlhU3RyZWFtQ29udHJvbGxlcjsK
LSNlbmRpZgogI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCiAgICAgICAgIFNwZWVjaElucHV0Q2xp
ZW50KiBtX3NwZWVjaElucHV0Q2xpZW50OwogICAgICAgICBPd25QdHI8U3BlZWNoSW5wdXQ+IG1f
c3BlZWNoSW5wdXQ7CiAjZW5kaWYKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgICAgICBP
d25QdHI8VXNlck1lZGlhQ29udHJvbGxlcj4gbV91c2VyTWVkaWFDb250cm9sbGVyOworI2VuZGlm
CiAgICAgICAgIE93blB0cjxTZXR0aW5ncz4gbV9zZXR0aW5nczsKICAgICAgICAgT3duUHRyPFBy
b2dyZXNzVHJhY2tlcj4gbV9wcm9ncmVzczsKICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL01lZGlhU3RyZWFtUmVnaXN0cnkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5NTkxNTU1Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01l
ZGlhU3RyZWFtUmVnaXN0cnkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICog
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtUmVn
aXN0cnkuaCIKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJLVVJMLmgi
Ci0jaW5jbHVkZSAiTWVkaWFTdHJlYW0uaCIKLSNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLU1lZGlhU3RyZWFtUmVnaXN0cnkmIE1lZGlhU3RyZWFt
UmVnaXN0cnk6OnJlZ2lzdHJ5KCkKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoTWVkaWFTdHJlYW1SZWdpc3RyeSwgaW5zdGFuY2UsICgpKTsK
LSAgICByZXR1cm4gaW5zdGFuY2U7Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1SZWdpc3RyeTo6cmVn
aXN0ZXJNZWRpYVN0cmVhbVVSTChjb25zdCBLVVJMJiB1cmwsIFBhc3NSZWZQdHI8TWVkaWFTdHJl
YW0+IHN0cmVhbSkKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIG1fc3RyZWFt
cy5hZGQodXJsLnN0cmluZygpLCBzdHJlYW0pOwotfQotCi12b2lkIE1lZGlhU3RyZWFtUmVnaXN0
cnk6OnVucmVnaXN0ZXJNZWRpYVN0cmVhbVVSTChjb25zdCBLVVJMJiB1cmwpCi17Ci0gICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBtX3N0cmVhbXMucmVtb3ZlKHVybC5zdHJpbmcoKSk7
Ci19Ci0KLU1lZGlhU3RyZWFtKiBNZWRpYVN0cmVhbVJlZ2lzdHJ5OjptZWRpYVN0cmVhbShjb25z
dCBLVVJMJiB1cmwpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBV
UkxTdHJlYW1NYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9zdHJlYW1zLmZpbmQodXJsLnN0cmlu
ZygpKTsKLSAgICBpZiAoaXQgIT0gbV9zdHJlYW1zLmVuZCgpKQotICAgICAgICByZXR1cm4gaXQt
PnNlY29uZC5nZXQoKTsKLSAgICByZXR1cm4gMDsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQotCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyZWFtUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL01lZGlhU3RyZWFtUmVnaXN0cnkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMWU5Y2QyYS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0
cmVhbVJlZ2lzdHJ5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
LSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TgotICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaWZuZGVmIE1lZGlhU3RyZWFtUmVnaXN0cnlfaAotI2RlZmluZSBNZWRpYVN0cmVhbVJl
Z2lzdHJ5X2gKLQotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotY2xhc3MgS1VSTDsKLWNsYXNzIE1lZGlhU3RyZWFtOwotCi1jbGFzcyBNZWRp
YVN0cmVhbVJlZ2lzdHJ5IHsKLXB1YmxpYzoKLSAgICAvLyBSZXR1cm5zIGEgc2luZ2xlIGluc3Rh
bmNlIG9mIE1lZGlhU3RyZWFtUmVnaXN0cnkuCi0gICAgc3RhdGljIE1lZGlhU3RyZWFtUmVnaXN0
cnkmIHJlZ2lzdHJ5KCk7Ci0KLSAgICAvLyBSZWdpc3RlcnMgYSBibG9iIFVSTCByZWZlcnJpbmcg
dG8gdGhlIHNwZWNpZmllZCBzdHJlYW0gZGF0YS4KLSAgICB2b2lkIHJlZ2lzdGVyTWVkaWFTdHJl
YW1VUkwoY29uc3QgS1VSTCYsIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+KTsKLSAgICB2b2lkIHVu
cmVnaXN0ZXJNZWRpYVN0cmVhbVVSTChjb25zdCBLVVJMJik7Ci0gICAgTWVkaWFTdHJlYW0qIG1l
ZGlhU3RyZWFtKGNvbnN0IEtVUkwmKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICB0eXBlZGVmIEhh
c2hNYXA8U3RyaW5nLCBSZWZQdHI8TWVkaWFTdHJlYW0+ID4gVVJMU3RyZWFtTWFwOwotICAgIFVS
TFN0cmVhbU1hcCBtX3N0cmVhbXM7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNl
bmRpZiAvLyBNZWRpYVN0cmVhbVJlZ2lzdHJ5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbU1hbmFnZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1YzQ5OTMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbU1hbmFnZXIuY3Bw
CkBAIC0wLDAgKzEsMTEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEVyaWNzc29uIEFC
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEVyaWNzc29uIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycwor
ICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbSB0aGlzCisgKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZWRpYVN0cmVhbU1hbmFnZXIuaCIKKworI2lu
Y2x1ZGUgIk1haW5UaHJlYWQuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbS5oIgorI2luY2x1ZGUg
Ik1lZGlhU3RyZWFtTWFuYWdlclByaXZhdGUuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVJlZ2lz
dHJ5LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworI2RlZmluZSBNZWRpYVN0cmVh
bU1hbmFnZXJQcml2YXRlQ2xhc3NOYW1lIE51bGxNZWRpYVN0cmVhbU1hbmFnZXJQcml2YXRlCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworTWVkaWFTdHJlYW1NYW5hZ2VyJiBtZWRpYVN0cmVhbU1h
bmFnZXIoKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChNZWRpYVN0cmVhbU1hbmFnZXIsIGluc3RhbmNlLCAoKSk7CisgICAgcmV0dXJuIGlu
c3RhbmNlOworfQorCitjbGFzcyBOdWxsTWVkaWFTdHJlYW1NYW5hZ2VyUHJpdmF0ZSA6IHB1Ymxp
YyBNZWRpYVN0cmVhbU1hbmFnZXJQcml2YXRlSW50ZXJmYWNlIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc093blB0cjxNZWRpYVN0cmVhbU1hbmFnZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUo
TWVkaWFTdHJlYW1NYW5hZ2VyKikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcg
TnVsbE1lZGlhU3RyZWFtTWFuYWdlclByaXZhdGUoKSk7CisgICAgfQorCisgICAgdm9pZCBxdWVy
eVVzZXJNZWRpYShjb25zdCBTdHJpbmcmIHF1ZXJ5SWQsIGludCBtZWRpYVR5cGVzLCBVc2VyTWVk
aWFRdWVyeUNsaWVudCopIHsgfQorCisgICAgdm9pZCBzZXRNZWRpYVN0cmVhbUNvbXBvbmVudEVu
YWJsZWQoY29uc3QgU3RyaW5nJiBzdHJlYW1JZCwgbG9uZyBjb21wb25lbnRJbmRleCwgYm9vbCBl
bmFibGVkKSB7IH0KKyAgICB2b2lkIHN0b3BMb2NhbE1lZGlhU3RyZWFtKGNvbnN0IFN0cmluZyYg
c3RyZWFtSWQpIHsgfQorCitwcml2YXRlOgorICAgIE51bGxNZWRpYVN0cmVhbU1hbmFnZXJQcml2
YXRlKCkgeyB9Cit9OworCitNZWRpYVN0cmVhbU1hbmFnZXI6Ok1lZGlhU3RyZWFtTWFuYWdlcigp
CisgICAgOiBtX3ByaXZhdGUoTWVkaWFTdHJlYW1NYW5hZ2VyUHJpdmF0ZUNsYXNzTmFtZTo6Y3Jl
YXRlKHRoaXMpKQoreworfQorCit2b2lkIE1lZGlhU3RyZWFtTWFuYWdlcjo6cXVlcnlVc2VyTWVk
aWEoY29uc3QgU3RyaW5nJiBxdWVyeUlkLCBpbnQgbWVkaWFUeXBlcywgVXNlck1lZGlhUXVlcnlD
bGllbnQqIGNsaWVudCkKK3sKKyAgICBtX3ByaXZhdGUtPnF1ZXJ5VXNlck1lZGlhKHF1ZXJ5SWQs
IG1lZGlhVHlwZXMsIGNsaWVudCk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1NYW5hZ2VyOjpzZXRN
ZWRpYVN0cmVhbUNvbXBvbmVudEVuYWJsZWQoY29uc3QgU3RyaW5nJiBzdHJlYW1JZCwgbG9uZyBj
b21wb25lbnRJbmRleCwgYm9vbCBlbmFibGVkKQoreworICAgIFJlZlB0cjxNZWRpYVN0cmVhbURl
c2NyaXB0b3I+IHN0cmVhbURlc2NyaXB0b3IgPSBtZWRpYVN0cmVhbVJlZ2lzdHJ5KCkubG9va3Vw
TWVkaWFTdHJlYW1EZXNjcmlwdG9yKHN0cmVhbUlkKTsKKyAgICBpZiAoIXN0cmVhbURlc2NyaXB0
b3IpCisgICAgICAgIHJldHVybjsKKyAgICBzdHJlYW1EZXNjcmlwdG9yLT5jb21wb25lbnRzW2Nv
bXBvbmVudEluZGV4XS0+ZW5hYmxlZCA9IGVuYWJsZWQ7CisKKyAgICBtX3ByaXZhdGUtPnNldE1l
ZGlhU3RyZWFtQ29tcG9uZW50RW5hYmxlZChzdHJlYW1JZCwgY29tcG9uZW50SW5kZXgsIGVuYWJs
ZWQpOworfQorCit2b2lkIE1lZGlhU3RyZWFtTWFuYWdlcjo6c3RvcExvY2FsTWVkaWFTdHJlYW0o
Y29uc3QgU3RyaW5nJiBzdHJlYW1JZCkKK3sKKyAgICBtX3ByaXZhdGUtPnN0b3BMb2NhbE1lZGlh
U3RyZWFtKHN0cmVhbUlkKTsKK30KKwordm9pZCBNZWRpYVN0cmVhbU1hbmFnZXI6OnN0cmVhbUVu
ZGVkKGNvbnN0IFN0cmluZyYgc3RyZWFtSWQpCit7CisgICAgUmVmUHRyPE1lZGlhU3RyZWFtRGVz
Y3JpcHRvcj4gc3RyZWFtRGVzY3JpcHRvciA9IG1lZGlhU3RyZWFtUmVnaXN0cnkoKS5sb29rdXBN
ZWRpYVN0cmVhbURlc2NyaXB0b3Ioc3RyZWFtSWQpOworICAgIGlmICghc3RyZWFtRGVzY3JpcHRv
cikKKyAgICAgICAgcmV0dXJuOworCisgICAgTWVkaWFTdHJlYW0qIHN0cmVhbSA9IHN0cmVhbURl
c2NyaXB0b3ItPm93bmVyOworICAgIGlmIChzdHJlYW0pCisgICAgICAgIHN0cmVhbS0+c3RyZWFt
RW5kZWQoKTsKKyAgICBlbHNlCisgICAgICAgIHN0cmVhbURlc2NyaXB0b3ItPmVuZGVkID0gdHJ1
ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElB
X1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1NYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uOTA2NzZiZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtTWFuYWdlci5oCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAg
IGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgRXJpY3Nzb24gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBNZWRpYVN0cmVhbU1hbmFnZXJfaAorI2RlZmluZSBNZWRpYVN0cmVhbU1hbmFnZXJfaAor
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lZGlhU3RyZWFtQ29tcG9u
ZW50LmgiCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIE1lZGlhU3RyZWFtTWFuYWdlcjsKK2NsYXNzIE1lZGlhU3RyZWFtTWFuYWdlclByaXZh
dGVJbnRlcmZhY2U7CisKK01lZGlhU3RyZWFtTWFuYWdlciYgbWVkaWFTdHJlYW1NYW5hZ2VyKCk7
CisKK2NsYXNzIFVzZXJNZWRpYVF1ZXJ5Q2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZv
aWQgdXNlck1lZGlhUXVlcnlDb21wbGV0ZWQoY29uc3QgU3RyaW5nJiBxdWVyeUlkLCBjb25zdCBN
ZWRpYVN0cmVhbUNvbXBvbmVudExpc3QmKSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFs
IH5Vc2VyTWVkaWFRdWVyeUNsaWVudCgpIHsgfQorfTsKKworY2xhc3MgTWVkaWFTdHJlYW1NYW5h
Z2VyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNZWRpYVN0cmVhbU1hbmFnZXIpOworICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIE1lZGlhU3RyZWFtTWFuYWdl
cigpOworCisgICAgdm9pZCBxdWVyeVVzZXJNZWRpYShjb25zdCBTdHJpbmcmIHF1ZXJ5SWQsIGlu
dCBtZWRpYVR5cGVzLCBVc2VyTWVkaWFRdWVyeUNsaWVudCopOworCisgICAgdm9pZCBzZXRNZWRp
YVN0cmVhbUNvbXBvbmVudEVuYWJsZWQoY29uc3QgU3RyaW5nJiBzdHJlYW1JZCwgbG9uZyBjb21w
b25lbnRJbmRleCwgYm9vbCBlbmFibGVkKTsKKyAgICB2b2lkIHN0b3BMb2NhbE1lZGlhU3RyZWFt
KGNvbnN0IFN0cmluZyYgc3RyZWFtSWQpOworCisgICAgdm9pZCBzdHJlYW1FbmRlZChjb25zdCBT
dHJpbmcmIHN0cmVhbUlkKTsKKworcHJpdmF0ZToKKyAgICBPd25QdHI8TWVkaWFTdHJlYW1NYW5h
Z2VyUHJpdmF0ZUludGVyZmFjZSo+IG1fcHJpdmF0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBNZWRp
YVN0cmVhbU1hbmFnZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1NYW5hZ2VyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1NYW5hZ2VyUHJpdmF0ZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5NzYwZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbU1hbmFnZXJQcml2YXRl
LmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBFcmljc3NvbiBB
Qi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhl
ciB0aGUgbmFtZSBvZiBFcmljc3NvbiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMK
KyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lZGlhU3RyZWFtTWFuYWdlclByaXZh
dGVfaAorI2RlZmluZSBNZWRpYVN0cmVhbU1hbmFnZXJQcml2YXRlX2gKKworI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFVzZXJNZWRpYVF1ZXJ5Q2xpZW50OworCitjbGFzcyBNZWRpYVN0
cmVhbU1hbmFnZXJQcml2YXRlSW50ZXJmYWNlIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5NZWRp
YVN0cmVhbU1hbmFnZXJQcml2YXRlSW50ZXJmYWNlKCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQg
cXVlcnlVc2VyTWVkaWEoY29uc3QgU3RyaW5nJiBxdWVyeUlkLCBpbnQgbWVkaWFUeXBlcywgVXNl
ck1lZGlhUXVlcnlDbGllbnQqKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TWVkaWFTdHJl
YW1Db21wb25lbnRFbmFibGVkKGNvbnN0IFN0cmluZyYgc3RyZWFtSWQsIGxvbmcgY29tcG9uZW50
SW5kZXgsIGJvb2wgZW5hYmxlZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdG9wTG9jYWxNZWRp
YVN0cmVhbShjb25zdCBTdHJpbmcmIHN0cmVhbUlkKSA9IDA7Cit9OworCit9CisKKyNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gTWVkaWFTdHJlYW1NYW5hZ2VyUHJp
dmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9Q
ZWVySGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVy
SGFuZGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRjNDJiYwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Bl
ZXJIYW5kbGVyLmNwcApAQCAtMCwwICsxLDE0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgor
ICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBFcmljc3NvbiBub3IgdGhlIG5hbWVzIG9mIGl0cyBj
b250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiUGVlckhhbmRsZXIuaCIK
KworI2luY2x1ZGUgIlBlZXJIYW5kbGVyUHJpdmF0ZS5oIgorCisjZGVmaW5lIFBlZXJIYW5kbGVy
UHJpdmF0ZUNsYXNzTmFtZSBOdWxsUGVlckhhbmRsZXJQcml2YXRlCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgTnVsbFBlZXJIYW5kbGVyUHJpdmF0ZSA6IHB1YmxpYyBQZWVySGFuZGxl
clByaXZhdGVJbnRlcmZhY2UgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPFBlZXJI
YW5kbGVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKFBlZXJIYW5kbGVyKikKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgTnVsbFBlZXJIYW5kbGVyUHJpdmF0ZSgpKTsKKyAgICB9
CisKKyAgICB2b2lkIHByb2R1Y2VJbml0aWFsT2ZmZXIoY29uc3QgTWVkaWFTdHJlYW1WZWN0b3Im
KSB7IH0KKyAgICB2b2lkIGhhbmRsZUluaXRpYWxPZmZlcihjb25zdCBTdHJpbmcmKSB7IH0KKyAg
ICB2b2lkIHByb2Nlc3NTRFAoY29uc3QgU3RyaW5nJikgeyB9CisgICAgdm9pZCBhZGRQZW5kaW5n
U3RyZWFtcyhjb25zdCBNZWRpYVN0cmVhbVZlY3RvciYpIHsgfQorICAgIHZvaWQgcmVtb3ZlUGVu
ZGluZ1N0cmVhbXMoY29uc3QgTWVkaWFTdHJlYW1WZWN0b3ImKSB7IH0KKworICAgIHZvaWQgc2Vu
ZERhdGFTdHJlYW1NZXNzYWdlKGNvbnN0IGNoYXIqLCB1bnNpZ25lZCkgeyB9CisgICAgYm9vbCBk
YXRhU3RyZWFtSXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorCisgICAgdm9pZCBz
dG9wKCkgeyB9Cit9OworCitQZWVySGFuZGxlcjo6UGVlckhhbmRsZXIoUGVlckhhbmRsZXJDbGll
bnQqIGNsaWVudCwgY29uc3QgUGFzc1JlZlB0cjxQZWVySGFuZGxlckNvbmZpZ3VyYXRpb24+IGNv
bmZpZ3VyYXRpb24pCisgICAgOiBtX2NsaWVudChjbGllbnQpCisgICAgLCBtX2NvbmZpZ3VyYXRp
b24oY29uZmlndXJhdGlvbikKKyAgICAsIG1fcHJpdmF0ZShQZWVySGFuZGxlclByaXZhdGVDbGFz
c05hbWU6OmNyZWF0ZSh0aGlzKSkKK3sKK30KKworUGVlckhhbmRsZXI6On5QZWVySGFuZGxlcigp
Cit7Cit9CisKK3ZvaWQgUGVlckhhbmRsZXI6OnByb2R1Y2VJbml0aWFsT2ZmZXIoY29uc3QgTWVk
aWFTdHJlYW1WZWN0b3ImIHBlbmRpbmdTdHJlYW1zKQoreworICAgIG1fcHJpdmF0ZS0+cHJvZHVj
ZUluaXRpYWxPZmZlcihwZW5kaW5nU3RyZWFtcyk7Cit9CisKK3ZvaWQgUGVlckhhbmRsZXI6Omhh
bmRsZUluaXRpYWxPZmZlcihjb25zdCBTdHJpbmcmIHNkcCkKK3sKKyAgICBtX3ByaXZhdGUtPmhh
bmRsZUluaXRpYWxPZmZlcihzZHApOworfQorCit2b2lkIFBlZXJIYW5kbGVyOjpwcm9jZXNzU0RQ
KGNvbnN0IFN0cmluZyYgc2RwKQoreworICAgIG1fcHJpdmF0ZS0+cHJvY2Vzc1NEUChzZHApOwor
fQorCit2b2lkIFBlZXJIYW5kbGVyOjphZGRQZW5kaW5nU3RyZWFtcyhjb25zdCBNZWRpYVN0cmVh
bVZlY3RvciYgcGVuZGluZ1N0cmVhbXMpCit7CisgICAgbV9wcml2YXRlLT5hZGRQZW5kaW5nU3Ry
ZWFtcyhwZW5kaW5nU3RyZWFtcyk7Cit9CisKK3ZvaWQgUGVlckhhbmRsZXI6OnJlbW92ZVBlbmRp
bmdTdHJlYW1zKGNvbnN0IE1lZGlhU3RyZWFtVmVjdG9yJiBwZW5kaW5nU3RyZWFtcykKK3sKKyAg
ICBtX3ByaXZhdGUtPnJlbW92ZVBlbmRpbmdTdHJlYW1zKHBlbmRpbmdTdHJlYW1zKTsKK30KKwor
dm9pZCBQZWVySGFuZGxlcjo6c2VuZERhdGFTdHJlYW1NZXNzYWdlKGNvbnN0IGNoYXIqIGRhdGEs
IHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICBpZiAoIW1fcHJpdmF0ZS0+ZGF0YVN0cmVhbUlzQWN0
aXZlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJpdmF0ZS0+c2VuZERhdGFTdHJlYW1N
ZXNzYWdlKGRhdGEsIGxlbmd0aCk7Cit9CisKK3ZvaWQgUGVlckhhbmRsZXI6OnN0b3AoKQorewor
ICAgIG1fcHJpdmF0ZS0+c3RvcCgpOworfQorCit2b2lkIFBlZXJIYW5kbGVyOjppY2VQcm9jZXNz
aW5nQ29tcGxldGVkKCkKK3sKKyAgICBtX2NsaWVudC0+aWNlUHJvY2Vzc2luZ0NvbXBsZXRlZCgp
OworfQorCit2b2lkIFBlZXJIYW5kbGVyOjpzZHBHZW5lcmF0ZWQoY29uc3QgU3RyaW5nJiBzZHAp
Cit7CisgICAgbV9jbGllbnQtPnNkcEdlbmVyYXRlZChzZHApOworfQorCit2b2lkIFBlZXJIYW5k
bGVyOjpkYXRhU3RyZWFtTWVzc2FnZVJlY2VpdmVkKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVk
IGxlbmd0aCkKK3sKKyAgICBtX2NsaWVudC0+ZGF0YVN0cmVhbU1lc3NhZ2VSZWNlaXZlZChkYXRh
LCBsZW5ndGgpOworfQorCit2b2lkIFBlZXJIYW5kbGVyOjpyZW1vdGVTdHJlYW1BZGRlZChjb25z
dCBTdHJpbmcmIHN0cmVhbUlkLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBNZWRpYVN0cmVh
bUNvbXBvbmVudExpc3QmIGNvbXBvbmVudHMpCit7CisgICAgbV9jbGllbnQtPnJlbW90ZVN0cmVh
bUFkZGVkKHN0cmVhbUlkLCBsYWJlbCwgY29tcG9uZW50cyk7Cit9CisKK3ZvaWQgUGVlckhhbmRs
ZXI6OnJlbW90ZVN0cmVhbVJlbW92ZWQoY29uc3QgU3RyaW5nJiBzdHJlYW1JZCkKK3sKKyAgICBt
X2NsaWVudC0+cmVtb3RlU3RyZWFtUmVtb3ZlZChzdHJlYW1JZCk7Cit9CisKK1BlZXJIYW5kbGVy
Q29uZmlndXJhdGlvbiogUGVlckhhbmRsZXI6OmNvbmZpZ3VyYXRpb24oKSBjb25zdAoreworICAg
IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uZ2V0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVySGFuZGxlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVlckhhbmRsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5iNWRkYjcxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVlckhhbmRsZXIuaApAQCAtMCwwICsxLDEyOSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBFcmljc3Nv
biBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFBlZXJIYW5kbGVyX2gKKyNkZWZpbmUgUGVlckhhbmRsZXJfaAorCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCisjaW5jbHVk
ZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBlZXJIYW5kbGVy
UHJpdmF0ZUludGVyZmFjZTsKKworc3RydWN0IFBlZXJIYW5kbGVyQ29uZmlndXJhdGlvbiA6IHB1
YmxpYyBSZWZDb3VudGVkPFBlZXJIYW5kbGVyQ29uZmlndXJhdGlvbj4geworcHVibGljOgorICAg
IGVudW0gVHlwZSB7CisgICAgICAgIFR5cGVOT05FLAorICAgICAgICBUeXBlU1RVTiwKKyAgICAg
ICAgVHlwZVRVUk4KKyAgICB9OworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8UGVlckhhbmRsZXJD
b25maWd1cmF0aW9uPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBQZWVySGFuZGxlckNvbmZpZ3VyYXRpb24oKSk7CisgICAgfQorCisgICAgVHlwZSB0eXBlOwor
ICAgIGJvb2wgc2VjdXJlOworICAgIFN0cmluZyBob3N0OworICAgIGludCBwb3J0OworICAgIFN0
cmluZyB1c2VybmFtZTsKKyAgICBTdHJpbmcgcGFzc3dvcmQ7CisKK3ByaXZhdGU6CisgICAgUGVl
ckhhbmRsZXJDb25maWd1cmF0aW9uKCkKKyAgICAgICAgOiB0eXBlKFR5cGVOT05FKQorICAgICAg
ICAsIHNlY3VyZShmYWxzZSkKKyAgICAgICAgLCBob3N0KCIiKQorICAgICAgICAsIHBvcnQoLTEp
CisgICAgICAgICwgdXNlcm5hbWUoIiIpCisgICAgICAgICwgcGFzc3dvcmQoIiIpCisgICAgeyB9
Cit9OworCitjbGFzcyBQZWVySGFuZGxlckNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+
UGVlckhhbmRsZXJDbGllbnQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBpY2VQcm9jZXNzaW5n
Q29tcGxldGVkKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZHBHZW5lcmF0ZWQoY29uc3QgU3Ry
aW5nJiBzZHApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGF0YVN0cmVhbU1lc3NhZ2VSZWNlaXZl
ZChjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgcmVtb3RlU3RyZWFtQWRkZWQoY29uc3QgU3RyaW5nJiBzdHJlYW1JZCwgY29uc3QgU3RyaW5n
JiBsYWJlbCwgY29uc3QgTWVkaWFTdHJlYW1Db21wb25lbnRMaXN0JikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCByZW1vdGVTdHJlYW1SZW1vdmVkKGNvbnN0IFN0cmluZyYgc3RyZWFtSWQpID0gMDsK
KworICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIGNvbnN0ID0gMDsKK307CisKK2NsYXNzIFBlZXJIYW5kbGVyIHsKKyAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShQZWVySGFuZGxlcik7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8UGVlckhhbmRsZXI+IGNyZWF0ZShQZWVy
SGFuZGxlckNsaWVudCogY2xpZW50LCBjb25zdCBQYXNzUmVmUHRyPFBlZXJIYW5kbGVyQ29uZmln
dXJhdGlvbj4gY29uZmlndXJhdGlvbikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgUGVlckhhbmRsZXIoY2xpZW50LCBjb25maWd1cmF0aW9uKSk7CisgICAgfQorICAgIHZpcnR1
YWwgflBlZXJIYW5kbGVyKCk7CisKKyAgICB2b2lkIHByb2R1Y2VJbml0aWFsT2ZmZXIoY29uc3Qg
TWVkaWFTdHJlYW1WZWN0b3ImIHBlbmRpbmdTdHJlYW1zKTsKKyAgICB2b2lkIGhhbmRsZUluaXRp
YWxPZmZlcihjb25zdCBTdHJpbmcmIHNkcCk7CisgICAgdm9pZCBwcm9jZXNzU0RQKGNvbnN0IFN0
cmluZyYgc2RwKTsKKyAgICB2b2lkIGFkZFBlbmRpbmdTdHJlYW1zKGNvbnN0IE1lZGlhU3RyZWFt
VmVjdG9yJiBwZW5kaW5nU3RyZWFtcyk7CisgICAgdm9pZCByZW1vdmVQZW5kaW5nU3RyZWFtcyhj
b25zdCBNZWRpYVN0cmVhbVZlY3RvciYgcGVuZGluZ1N0cmVhbXMpOworCisgICAgdm9pZCBzZW5k
RGF0YVN0cmVhbU1lc3NhZ2UoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKTsKKwor
ICAgIHZvaWQgc3RvcCgpOworCisgICAgdm9pZCBpY2VQcm9jZXNzaW5nQ29tcGxldGVkKCk7Cisg
ICAgdm9pZCBzZHBHZW5lcmF0ZWQoY29uc3QgU3RyaW5nJiBzZHApOworICAgIHZvaWQgZGF0YVN0
cmVhbU1lc3NhZ2VSZWNlaXZlZChjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpOwor
ICAgIHZvaWQgcmVtb3RlU3RyZWFtQWRkZWQoY29uc3QgU3RyaW5nJiBzdHJlYW1JZCwgY29uc3Qg
U3RyaW5nJiBsYWJlbCwgY29uc3QgTWVkaWFTdHJlYW1Db21wb25lbnRMaXN0Jik7CisgICAgdm9p
ZCByZW1vdGVTdHJlYW1SZW1vdmVkKGNvbnN0IFN0cmluZyYgc3RyZWFtSWQpOworCisgICAgUGVl
ckhhbmRsZXJDb25maWd1cmF0aW9uKiBjb25maWd1cmF0aW9uKCkgY29uc3Q7CisKK3ByaXZhdGU6
CisgICAgUGVlckhhbmRsZXIoUGVlckhhbmRsZXJDbGllbnQqLCBjb25zdCBQYXNzUmVmUHRyPFBl
ZXJIYW5kbGVyQ29uZmlndXJhdGlvbj4pOworCisgICAgUGVlckhhbmRsZXJDbGllbnQqIG1fY2xp
ZW50OworICAgIFJlZlB0cjxQZWVySGFuZGxlckNvbmZpZ3VyYXRpb24+IG1fY29uZmlndXJhdGlv
bjsKKyAgICBPd25QdHI8UGVlckhhbmRsZXJQcml2YXRlSW50ZXJmYWNlPiBtX3ByaXZhdGU7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCisjZW5kaWYgLy8gUGVlckhhbmRsZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVlckhhbmRsZXJQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVySGFuZGxlclByaXZhdGUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNjU0MWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVlckhhbmRsZXJQcml2YXRlLmgKQEAg
LTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBFcmljc3NvbiBBQi4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUg
bmFtZSBvZiBFcmljc3NvbiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAg
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20g
dGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBlZXJIYW5kbGVyUHJpdmF0ZV9oCisjZGVmaW5l
IFBlZXJIYW5kbGVyUHJpdmF0ZV9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5j
bHVkZSAiUGVlckhhbmRsZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQZWVy
SGFuZGxlclByaXZhdGVJbnRlcmZhY2UgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBlZXJI
YW5kbGVyUHJpdmF0ZUludGVyZmFjZSk7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Citw
dWJsaWM6CisgICAgUGVlckhhbmRsZXJQcml2YXRlSW50ZXJmYWNlKCkgeyB9CisgICAgdmlydHVh
bCB+UGVlckhhbmRsZXJQcml2YXRlSW50ZXJmYWNlKCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQg
cHJvZHVjZUluaXRpYWxPZmZlcihjb25zdCBNZWRpYVN0cmVhbVZlY3RvciYgcGVuZGluZ1N0cmVh
bXMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlSW5pdGlhbE9mZmVyKGNvbnN0IFN0cmlu
ZyYgc2RwKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NTRFAoY29uc3QgU3RyaW5nJiBz
ZHApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkUGVuZGluZ1N0cmVhbXMoY29uc3QgTWVkaWFT
dHJlYW1WZWN0b3ImIHBlbmRpbmdTdHJlYW1zKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbW92
ZVBlbmRpbmdTdHJlYW1zKGNvbnN0IE1lZGlhU3RyZWFtVmVjdG9yJiBwZW5kaW5nU3RyZWFtcykg
PSAwOworCisgICAgdmlydHVhbCB2b2lkIHNlbmREYXRhU3RyZWFtTWVzc2FnZShjb25zdCBjaGFy
KiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZGF0YVN0cmVh
bUlzQWN0aXZlKCkgY29uc3QgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHN0b3AoKSA9IDA7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCisjZW5kaWYgLy8gUGVlckhhbmRsZXJQcml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhU3RyZWFtVHJhY2suaCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhU3RyZWFtVHJhY2suaAppbmRleCBmN2IxZmFj
Li4xZDBkY2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJN
ZWRpYVN0cmVhbVRyYWNrLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
TWVkaWFTdHJlYW1UcmFjay5oCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKICAgICBXZWJNZWRp
YVN0cmVhbVRyYWNrKCkgeyB9CiAgICAgfldlYk1lZGlhU3RyZWFtVHJhY2soKSB7IHJlc2V0KCk7
IH0KIAotICAgIFdFQktJVF9FWFBPUlQgdm9pZCBpbml0aWFsaXplKGNvbnN0IFdlYlN0cmluZyYg
aWQsIGNvbnN0IFdlYlN0cmluZyYga2luZCwgY29uc3QgV2ViU3RyaW5nJiBsYWJlbCk7CisgICAg
V0VCS0lUX0VYUE9SVCB2b2lkIGluaXRpYWxpemUoY29uc3QgV2ViU3RyaW5nJiBvd25lclN0cmVh
bUlkLCB1bnNpZ25lZCB0cmFja0luZGV4LCBjb25zdCBXZWJTdHJpbmcmIGtpbmQsIGNvbnN0IFdl
YlN0cmluZyYgbGFiZWwsIGJvb2wgZW5hYmxlZCA9IHRydWUpOwogICAgIFdFQktJVF9FWFBPUlQg
dm9pZCByZXNldCgpOwogICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gbV9wcml2YXRl
LmlzTnVsbCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
Yk1lZGlhU3RyZWFtVHJhY2suY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVk
aWFTdHJlYW1UcmFjay5jcHAKaW5kZXggNzc3OTAxYy4uZDY1YTViMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFTdHJlYW1UcmFjay5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFTdHJlYW1UcmFjay5jcHAKQEAgLTMyLDkg
KzMyLDkgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgV2ViTWVkaWFTdHJlYW1UcmFj
azo6aW5pdGlhbGl6ZShjb25zdCBXZWJTdHJpbmcmIGlkLCBjb25zdCBXZWJTdHJpbmcmIGtpbmQs
IGNvbnN0IFdlYlN0cmluZyYgbGFiZWwpCit2b2lkIFdlYk1lZGlhU3RyZWFtVHJhY2s6OmluaXRp
YWxpemUoY29uc3QgV2ViU3RyaW5nJiBvd25lclN0cmVhbUlkLCB1bnNpZ25lZCB0cmFja0luZGV4
LCBjb25zdCBXZWJTdHJpbmcmIGtpbmQsIGNvbnN0IFdlYlN0cmluZyYgbGFiZWwsIGJvb2wgZW5h
YmxlZCkKIHsKLSAgICBtX3ByaXZhdGUgPSBXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpjcmVh
dGUoaWQsIGtpbmQsIGxhYmVsKTsKKyAgICBtX3ByaXZhdGUgPSBXZWJDb3JlOjpNZWRpYVN0cmVh
bVRyYWNrOjpjcmVhdGUob3duZXJTdHJlYW1JZCwgdHJhY2tJbmRleCwga2luZCwgbGFiZWwsIGVu
YWJsZWQpOwogfQogCiB2b2lkIFdlYk1lZGlhU3RyZWFtVHJhY2s6OnJlc2V0KCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhU3RyZWFtVHJhY2tMaXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhU3RyZWFtVHJhY2tMaXN0LmNw
cAppbmRleCA1ZDU5NWIwLi5kNTc3Mjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJNZWRpYVN0cmVhbVRyYWNrTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTWVkaWFTdHJlYW1UcmFja0xpc3QuY3BwCkBAIC0zOCw3ICszOCw3IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIFdlYk1lZGlhU3RyZWFtVHJhY2tMaXN0Ojppbml0
aWFsaXplKGNvbnN0IFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVhbVRyYWNrPiYgd2ViVHJhY2tzKQog
ewotICAgIFRyYWNrVmVjdG9yIHRyYWNrcyh3ZWJUcmFja3Muc2l6ZSgpKTsKKyAgICBNZWRpYVN0
cmVhbVRyYWNrVmVjdG9yIHRyYWNrcyh3ZWJUcmFja3Muc2l6ZSgpKTsKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHdlYlRyYWNrcy5zaXplKCk7ICsraSkKICAgICAgICAgdHJhY2tzW2ldID0g
d2ViVHJhY2tzW2ldOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107161</attachid>
            <date>2011-09-13 02:57:32 -0700</date>
            <delta_ts>2011-09-13 02:57:32 -0700</delta_ts>
            <desc>diff of moved files</desc>
            <filename>mediastream_webcore_platform_moved_files.diff</filename>
            <type>text/plain</type>
            <size>59131</size>
            <attacher name="Adam Bergkvist">adam.bergkvist</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL21hc3RlcjpTb3VyY2UvV2ViQ29yZS9kb20vTG9jYWxNZWRpYVN0cmVhbS5j
cHAgYi9IRUFEOlNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL0xvY2FsTWVkaWFTdHJlYW0uY3Bw
CmluZGV4IGRmMzcyMjcuLjU2M2Y3MTMgMTAwNjQ0Ci0tLSBhL21hc3RlcjpTb3VyY2UvV2ViQ29y
ZS9kb20vTG9jYWxNZWRpYVN0cmVhbS5jcHAKKysrIGIvSEVBRDpTb3VyY2UvV2ViQ29yZS9tZWRp
YXN0cmVhbS9Mb2NhbE1lZGlhU3RyZWFtLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsNDQgKzI4LDM1IEBACiAKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogCi0jaW5jbHVkZSAiRXZlbnQuaCIKLSNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1NYW5hZ2VyLmgi
CisjaW5jbHVkZSAiVVVJRC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIExvY2Fs
TWVkaWFTdHJlYW06OkRpc3BhdGNoVXBkYXRlVGFzayA6IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpUYXNrIHsKLXB1YmxpYzoKLSAgICB0eXBlZGVmIHZvaWQgKExvY2FsTWVkaWFTdHJl
YW06OipDYWxsYmFjaykoKTsKLQotICAgIHN0YXRpYyBQYXNzT3duUHRyPERpc3BhdGNoVXBkYXRl
VGFzaz4gY3JlYXRlKFBhc3NSZWZQdHI8TG9jYWxNZWRpYVN0cmVhbT4gb2JqZWN0LCBDYWxsYmFj
ayBjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGlzcGF0Y2hV
cGRhdGVUYXNrKG9iamVjdCwgY2FsbGJhY2spKTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQg
cGVyZm9ybVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopCi0gICAgewotICAgICAgICAobV9v
YmplY3QuZ2V0KCktPiptX2NhbGxiYWNrKSgpOwotICAgIH0KLQotcHVibGljOgotICAgIERpc3Bh
dGNoVXBkYXRlVGFzayhQYXNzUmVmUHRyPExvY2FsTWVkaWFTdHJlYW0+IG9iamVjdCwgQ2FsbGJh
Y2sgY2FsbGJhY2spCi0gICAgICAgIDogbV9vYmplY3Qob2JqZWN0KQotICAgICAgICAsIG1fY2Fs
bGJhY2soY2FsbGJhY2spIHsgfQorUGFzc1JlZlB0cjxMb2NhbE1lZGlhU3RyZWFtPiBMb2NhbE1l
ZGlhU3RyZWFtOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBzdHJlYW1JZCwgY29uc3QgTWVkaWFTdHJl
YW1Db21wb25lbnRMaXN0JiBjb21wb25lbnRzLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTG9jYWxNZWRpYVN0cmVhbShzdHJlYW1J
ZCwgY29tcG9uZW50cywgY29udGV4dCkpOworfQogCi0gICAgUmVmUHRyPExvY2FsTWVkaWFTdHJl
YW0+IG1fb2JqZWN0OwotICAgIENhbGxiYWNrIG1fY2FsbGJhY2s7Ci19OworTG9jYWxNZWRpYVN0
cmVhbTo6TG9jYWxNZWRpYVN0cmVhbShjb25zdCBTdHJpbmcmIHN0cmVhbUlkLCBjb25zdCBNZWRp
YVN0cmVhbUNvbXBvbmVudExpc3QmIGNvbXBvbmVudHMsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQpCisgICAgOiBNZWRpYVN0cmVhbShzdHJlYW1JZCwgY3JlYXRlQ2Fub25pY2FsVVVJ
RFN0cmluZygpLCBjb21wb25lbnRzLCBjb250ZXh0KQorICAgICwgbV9zdG9wVGltZXIodGhpcywg
JkxvY2FsTWVkaWFTdHJlYW06OnN0b3BUaW1lckZpcmVkKQoreworfQogCi1QYXNzUmVmUHRyPExv
Y2FsTWVkaWFTdHJlYW0+IExvY2FsTWVkaWFTdHJlYW06OmNyZWF0ZShNZWRpYVN0cmVhbUZyYW1l
Q29udHJvbGxlciogZnJhbWVDb250cm9sbGVyLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBQYXNzUmVm
UHRyPE1lZGlhU3RyZWFtVHJhY2tMaXN0PiB0cmFja3MpCit2b2lkIExvY2FsTWVkaWFTdHJlYW06
OnN0b3AoKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgTG9jYWxNZWRpYVN0cmVhbShmcmFt
ZUNvbnRyb2xsZXIsIGxhYmVsLCB0cmFja3MpKTsKKyAgICBpZiAoIW1fc3RvcFRpbWVyLmlzQWN0
aXZlKCkpCisgICAgICAgIG1fc3RvcFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAotTG9jYWxN
ZWRpYVN0cmVhbTo6TG9jYWxNZWRpYVN0cmVhbShNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlciog
ZnJhbWVDb250cm9sbGVyLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBQYXNzUmVmUHRyPE1lZGlhU3Ry
ZWFtVHJhY2tMaXN0PiB0cmFja3MpCi0gICAgOiBNZWRpYVN0cmVhbShmcmFtZUNvbnRyb2xsZXIs
IGxhYmVsLCB0cmFja3MsIHRydWUpCit2b2lkIExvY2FsTWVkaWFTdHJlYW06OnN0b3BUaW1lckZp
cmVkKFRpbWVyPExvY2FsTWVkaWFTdHJlYW0+KikKIHsKKyAgICBpZiAocmVhZHlTdGF0ZSgpID09
IEVOREVEKQorICAgICAgICByZXR1cm47CisKKyAgICBtZWRpYVN0cmVhbU1hbmFnZXIoKS5zdG9w
TG9jYWxNZWRpYVN0cmVhbShtX3N0cmVhbUlkKTsKKyAgICBzdHJlYW1FbmRlZCgpOwogfQogCiBM
b2NhbE1lZGlhU3RyZWFtOjp+TG9jYWxNZWRpYVN0cmVhbSgpCkBAIC03Niw0MSArNjgsNiBAQCBM
b2NhbE1lZGlhU3RyZWFtKiBMb2NhbE1lZGlhU3RyZWFtOjp0b0xvY2FsTWVkaWFTdHJlYW0oKQog
ICAgIHJldHVybiB0aGlzOwogfQogCi12b2lkIExvY2FsTWVkaWFTdHJlYW06OmRldGFjaEVtYmVk
ZGVyKCkKLXsKLSAgICAvLyBBc3N1bWluZyB3ZSBzaG91bGQgc3RvcCBhbnkgbGl2ZSBzdHJlYW1z
IHdoZW4gbG9zaW5nIGFjY2VzcyB0byB0aGUgZW1iZWRkZXIuCi0gICAgc3RvcCgpOwotCi0gICAg
TWVkaWFTdHJlYW06OmRldGFjaEVtYmVkZGVyKCk7Ci19Ci0KLXZvaWQgTG9jYWxNZWRpYVN0cmVh
bTo6c3RyZWFtRW5kZWQoKQotewotICAgIE1lZGlhU3RyZWFtOjpzdHJlYW1FbmRlZCgpOwotfQot
Ci12b2lkIExvY2FsTWVkaWFTdHJlYW06OnN0b3AoKQotewotICAgIGlmICghbWVkaWFTdHJlYW1G
cmFtZUNvbnRyb2xsZXIoKSB8fCBtX3JlYWR5U3RhdGUgPT0gRU5ERUQpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIG1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKCktPnN0b3BHZW5lcmF0ZWRTdHJl
YW0obGFiZWwoKSk7Ci0KLSAgICBtX3JlYWR5U3RhdGUgPSBFTkRFRDsKLQotICAgIC8vIERvbid0
IGFzc2VydCBzaW5jZSBpdCBjYW4gYmUgbnVsbCBpbiBkZWdlbmVyYXRlIGNhc2VzIGxpa2UgZnJh
bWVzIGRldGFjaGVkIGZyb20gdGhlaXIgcGFnZXMuCi0gICAgaWYgKCFzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPmlzQ29udGV4dFRocmVhZCgpKTsKLSAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPnBvc3RUYXNrKERpc3BhdGNoVXBkYXRlVGFzazo6Y3JlYXRlKHRoaXMsICZMb2NhbE1lZGlh
U3RyZWFtOjpvblN0b3ApKTsKLX0KLQotdm9pZCBMb2NhbE1lZGlhU3RyZWFtOjpvblN0b3AoKQot
ewotICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZW5kZWRFdmVu
dCwgZmFsc2UsIGZhbHNlKSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9tYXN0ZXI6U291cmNlL1dlYkNv
cmUvZG9tL0xvY2FsTWVkaWFTdHJlYW0uaCBiL0hFQUQ6U291cmNlL1dlYkNvcmUvbWVkaWFzdHJl
YW0vTG9jYWxNZWRpYVN0cmVhbS5oCmluZGV4IDZjODU0MDguLmNhYTQyZjEgMTAwNjQ0Ci0tLSBh
L21hc3RlcjpTb3VyY2UvV2ViQ29yZS9kb20vTG9jYWxNZWRpYVN0cmVhbS5oCisrKyBiL0hFQUQ6
U291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVhbS5oCkBAIC0xLDUgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwzMyArMjksMjYg
QEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW0uaCIK
LSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgIlRpbWVyLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgTG9jYWxNZWRpYVN0cmVhbSA6IHB1YmxpYyBNZWRpYVN0cmVh
bSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TG9jYWxNZWRpYVN0cmVhbT4gY3Jl
YXRlKE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgUGFz
c1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrTGlzdD4gdHJhY2tzKTsKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxMb2NhbE1lZGlhU3RyZWFtPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBzdHJlYW1JZCwgY29u
c3QgTWVkaWFTdHJlYW1Db21wb25lbnRMaXN0JiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwog
ICAgIHZpcnR1YWwgfkxvY2FsTWVkaWFTdHJlYW0oKTsKIAogICAgIHZvaWQgc3RvcCgpOwogCi0g
ICAgLy8gTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXI6OlN0cmVhbUNsaWVudCBpbXBsZW1lbnRh
dGlvbi4KLSAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoRW1iZWRkZXIoKTsKLSAgICB2aXJ0dWFsIHZv
aWQgc3RyZWFtRW5kZWQoKTsKLQogICAgIC8vIEV2ZW50VGFyZ2V0LgogICAgIHZpcnR1YWwgTG9j
YWxNZWRpYVN0cmVhbSogdG9Mb2NhbE1lZGlhU3RyZWFtKCk7CiAKLXByb3RlY3RlZDoKLSAgICB2
aXJ0dWFsIGJvb2wgaXNMb2NhbE1lZGlhU3RyZWFtKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQot
CiBwcml2YXRlOgotICAgIExvY2FsTWVkaWFTdHJlYW0oTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xs
ZXIqLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tMaXN0
PiB0cmFja3MpOwotICAgIGNsYXNzIERpc3BhdGNoVXBkYXRlVGFzazsKLSAgICBmcmllbmQgY2xh
c3MgRGlzcGF0Y2hVcGRhdGVUYXNrOworICAgIExvY2FsTWVkaWFTdHJlYW0oY29uc3QgU3RyaW5n
JiBzdHJlYW1JZCwgY29uc3QgTWVkaWFTdHJlYW1Db21wb25lbnRMaXN0JiwgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCopOwogCi0gICAgdm9pZCBvblN0b3AoKTsKKyAgICB2b2lkIHN0b3BUaW1lckZp
cmVkKFRpbWVyPExvY2FsTWVkaWFTdHJlYW0+Kik7CisKKyAgICBUaW1lcjxMb2NhbE1lZGlhU3Ry
ZWFtPiBtX3N0b3BUaW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL21hc3RlcjpTb3VyY2UvV2ViQ29yZS9kb20vTG9jYWxNZWRpYVN0cmVhbS5pZGwgYi9IRUFE
OlNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL0xvY2FsTWVkaWFTdHJlYW0uaWRsCmluZGV4IGU0
NzI1YTAuLjE1YTJjNDIgMTAwNjQ0Ci0tLSBhL21hc3RlcjpTb3VyY2UvV2ViQ29yZS9kb20vTG9j
YWxNZWRpYVN0cmVhbS5pZGwKKysrIGIvSEVBRDpTb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9M
b2NhbE1lZGlhU3RyZWFtLmlkbApAQCAtMjcsNyArMjcsOCBAQCBtb2R1bGUgY29yZSB7CiAgICAg
aW50ZXJmYWNlIFsKICAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLAogICAgICAgICBH
ZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciwKLSAgICAgICAgRXZlbnRUYXJnZXQKKyAgICAgICAgRXZl
bnRUYXJnZXQsCisgICAgICAgIEdlbmVyYXRlVG9KUwogICAgIF0gTG9jYWxNZWRpYVN0cmVhbSA6
IE1lZGlhU3RyZWFtIHsKICAgICAgICAgdm9pZCBzdG9wKCk7CiAgICAgfTsKZGlmZiAtLWdpdCBh
L21hc3RlcjpTb3VyY2UvV2ViQ29yZS9kb20vTWVkaWFTdHJlYW0uY3BwIGIvSEVBRDpTb3VyY2Uv
V2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKaW5kZXggYjA5ZmJhMi4uNDc1ZDZj
MSAxMDA2NDQKLS0tIGEvbWFzdGVyOlNvdXJjZS9XZWJDb3JlL2RvbS9NZWRpYVN0cmVhbS5jcHAK
KysrIGIvSEVBRDpTb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKQEAg
LTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgRXJpY3Nzb24gQUIuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDI0
ICsyOSw0MiBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKICNpbmNsdWRlICJFdmVudC5o
IgorI2luY2x1ZGUgIk1lZGlhU3RyZWFtUmVnaXN0cnkuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVj
dXRpb25Db250ZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxNZWRp
YVN0cmVhbT4gTWVkaWFTdHJlYW06OmNyZWF0ZShNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlciog
ZnJhbWVDb250cm9sbGVyLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBQYXNzUmVmUHRyPE1lZGlhU3Ry
ZWFtVHJhY2tMaXN0PiB0cmFja3MsIGJvb2wgaXNMb2NhbE1lZGlhU3RyZWFtKQorUGFzc1JlZlB0
cjxNZWRpYVN0cmVhbT4gTWVkaWFTdHJlYW06OmNyZWF0ZShjb25zdCBTdHJpbmcmIHN0cmVhbUlk
LCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBNZWRpYVN0cmVhbUNvbXBvbmVudExpc3QmIGNv
bXBvbmVudHMsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBNZWRpYVN0cmVhbShmcmFtZUNvbnRyb2xsZXIsIGxhYmVsLCB0cmFja3Ms
IGlzTG9jYWxNZWRpYVN0cmVhbSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFTdHJl
YW0oc3RyZWFtSWQsIGxhYmVsLCBjb21wb25lbnRzLCBjb250ZXh0KSk7CiB9CiAKLU1lZGlhU3Ry
ZWFtOjpNZWRpYVN0cmVhbShNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlciogZnJhbWVDb250cm9s
bGVyLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tMaXN0
PiB0cmFja3MsIGJvb2wgaXNMb2NhbE1lZGlhU3RyZWFtKQotICAgIDogTWVkaWFTdHJlYW1DbGll
bnQoZnJhbWVDb250cm9sbGVyLCBsYWJlbCwgaXNMb2NhbE1lZGlhU3RyZWFtKQotICAgICwgbV9y
ZWFkeVN0YXRlKExJVkUpCi0gICAgLCBtX3RyYWNrcyh0cmFja3MpCitNZWRpYVN0cmVhbTo6TWVk
aWFTdHJlYW0oY29uc3QgU3RyaW5nJiBzdHJlYW1JZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29u
c3QgTWVkaWFTdHJlYW1Db21wb25lbnRMaXN0JiBjb21wb25lbnRzLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0KQorICAgIDogbV9zdHJlYW1JZChzdHJlYW1JZCkKKyAgICAsIG1fbGFi
ZWwobGFiZWwpCisgICAgLCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkKIHsKKyAg
ICBSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiBzdHJlYW1EZXNjcmlwdG9yID0gTWVkaWFT
dHJlYW1EZXNjcmlwdG9yOjpjcmVhdGUodGhpcywgY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKSwg
Y29tcG9uZW50cyk7CisgICAgbWVkaWFTdHJlYW1SZWdpc3RyeSgpLnJlZ2lzdGVyTWVkaWFTdHJl
YW0obV9zdHJlYW1JZCwgc3RyZWFtRGVzY3JpcHRvci5yZWxlYXNlKCkpOworCisgICAgTWVkaWFT
dHJlYW1UcmFja1ZlY3RvciB0cmFja1ZlY3RvcjsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgY29tcG9uZW50cy5zaXplKCk7IGkrKykgeworICAgICAgICBTdHJpbmcga2luZCA9IGNvbXBv
bmVudHNbaV0tPnR5cGUgPT0gTWVkaWFTdHJlYW1Db21wb25lbnQ6OlR5cGVBdWRpbyA/ICJhdWRp
byIgOiAidmlkZW8iOworICAgICAgICB0cmFja1ZlY3Rvci5hcHBlbmQoTWVkaWFTdHJlYW1UcmFj
azo6Y3JlYXRlKHN0cmVhbUlkLCBpLCBraW5kLCBjb21wb25lbnRzW2ldLT5uYW1lLCBjb21wb25l
bnRzW2ldLT5lbmFibGVkKSk7CisgICAgfQorCisgICAgbV90cmFja3MgPSBNZWRpYVN0cmVhbVRy
YWNrTGlzdDo6Y3JlYXRlKHRyYWNrVmVjdG9yKTsKIH0KIAogTWVkaWFTdHJlYW06On5NZWRpYVN0
cmVhbSgpCiB7CisgICAgbWVkaWFTdHJlYW1SZWdpc3RyeSgpLnVucmVnaXN0ZXJNZWRpYVN0cmVh
bShtX3N0cmVhbUlkKTsKK30KKworTWVkaWFTdHJlYW06OlJlYWR5U3RhdGUgTWVkaWFTdHJlYW06
OnJlYWR5U3RhdGUoKSBjb25zdAoreworICAgIEFTU0VSVChkZXNjcmlwdG9yKCkpOworICAgIHJl
dHVybiBkZXNjcmlwdG9yKCktPmVuZGVkID8gRU5ERUQgOiBMSVZFOwogfQogCiBNZWRpYVN0cmVh
bSogTWVkaWFTdHJlYW06OnRvTWVkaWFTdHJlYW0oKQpAQCAtNTUsMTQgKzc0LDIzIEBAIE1lZGlh
U3RyZWFtKiBNZWRpYVN0cmVhbTo6dG9NZWRpYVN0cmVhbSgpCiAKIHZvaWQgTWVkaWFTdHJlYW06
OnN0cmVhbUVuZGVkKCkKIHsKLSAgICBBU1NFUlQobV9yZWFkeVN0YXRlICE9IEVOREVEKTsKLSAg
ICBtX3JlYWR5U3RhdGUgPSBFTkRFRDsKKyAgICBpZiAocmVhZHlTdGF0ZSgpID09IEVOREVEKQor
ICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQoZGVzY3JpcHRvcigpKTsKKyAgICBkZXNjcmlw
dG9yKCktPmVuZGVkID0gdHJ1ZTsKKwogICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuZW5kZWRFdmVudCwgZmFsc2UsIGZhbHNlKSk7CiB9CiAKIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIE1lZGlhU3RyZWFtOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QK
IHsKLSAgICByZXR1cm4gbWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIoKSA/IG1lZGlhU3RyZWFt
RnJhbWVDb250cm9sbGVyKCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA6IDA7CisgICAgcmV0
dXJuIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK30KKworTWVkaWFTdHJlYW1EZXNjcmlwdG9y
KiBNZWRpYVN0cmVhbTo6ZGVzY3JpcHRvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1lZGlhU3Ry
ZWFtUmVnaXN0cnkoKS5sb29rdXBNZWRpYVN0cmVhbURlc2NyaXB0b3IobV9zdHJlYW1JZCkuZ2V0
KCk7CiB9CiAKIEV2ZW50VGFyZ2V0RGF0YSogTWVkaWFTdHJlYW06OmV2ZW50VGFyZ2V0RGF0YSgp
CkBAIC03NSw2ICsxMDMsMTQgQEAgRXZlbnRUYXJnZXREYXRhKiBNZWRpYVN0cmVhbTo6ZW5zdXJl
RXZlbnRUYXJnZXREYXRhKCkKICAgICByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOwogfQogCitz
aXplX3QgZmluZE1lZGlhU3RyZWFtSW5WZWN0b3IoY29uc3QgTWVkaWFTdHJlYW1WZWN0b3ImIHN0
cmVhbVZlY3RvciwgY29uc3QgU3RyaW5nJiBzdHJlYW1JZCkKK3sKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHN0cmVhbVZlY3Rvci5zaXplKCk7IGkrKykKKyAgICAgICAgaWYgKHN0cmVhbVZl
Y3RvcltpXS0+aWQoKSA9PSBzdHJlYW1JZCkKKyAgICAgICAgICAgIHJldHVybiBpOworICAgIHJl
dHVybiBub3RGb3VuZDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL21hc3RlcjpTb3VyY2UvV2ViQ29yZS9k
b20vTWVkaWFTdHJlYW0uaCBiL0hFQUQ6U291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0uaAppbmRleCBhNjE5NTYwLi5hNmIyOTZiIDEwMDY0NAotLS0gYS9tYXN0ZXI6U291cmNl
L1dlYkNvcmUvZG9tL01lZGlhU3RyZWFtLmgKKysrIGIvSEVBRDpTb3VyY2UvV2ViQ29yZS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbS5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDExIEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yNywzOSArMjgsMzggQEAKIAogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAKLSNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQu
aCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIk1l
ZGlhU3RyZWFtQ29tcG9uZW50LmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja0xpc3QuaCIK
LSNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIE1lZGlhU3RyZWFtIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW0+LAotICAg
ICAgICAgICAgICAgICAgICBwdWJsaWMgRXZlbnRUYXJnZXQsCi0gICAgICAgICAgICAgICAgICAg
IHB1YmxpYyBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcjo6TWVkaWFTdHJlYW1DbGllbnQgewor
Y2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK3N0cnVjdCBNZWRpYVN0cmVhbURlc2NyaXB0
b3I7CisKK2NsYXNzIE1lZGlhU3RyZWFtIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW0+
LCBwdWJsaWMgRXZlbnRUYXJnZXQgewogcHVibGljOgogICAgIC8vIE11c3QgbWF0Y2ggdGhlIGNv
bnN0YW50cyBpbiB0aGUgLmlkbCBmaWxlLgotICAgIGVudW0geworICAgIGVudW0gUmVhZHlTdGF0
ZSB7CiAgICAgICAgIExJVkUgPSAxLAogICAgICAgICBFTkRFRCA9IDIKICAgICB9OwogCi0gICAg
c3RhdGljIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IGNyZWF0ZShNZWRpYVN0cmVhbUZyYW1lQ29u
dHJvbGxlciosIGNvbnN0IFN0cmluZyYgbGFiZWwsIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFj
a0xpc3Q+IHRyYWNrcywgYm9vbCBpc0xvY2FsTWVkaWFTdHJlYW0gPSBmYWxzZSk7CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHN0cmVhbUlk
LCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBNZWRpYVN0cmVhbUNvbXBvbmVudExpc3QmLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAgICAgdmlydHVhbCB+TWVkaWFTdHJlYW0oKTsKIAor
ICAgIFN0cmluZyBpZCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RyZWFtSWQ7IH0KKwogICAgIERFRklO
RV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZW5kZWQpOwogCi0gICAgdW5zaWduZWQgc2hvcnQg
cmVhZHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhZHlTdGF0ZTsgfQotICAgIGNvbnN0IFN0
cmluZyYgbGFiZWwoKSBjb25zdCB7IHJldHVybiBjbGllbnRJZCgpOyB9CisgICAgUmVhZHlTdGF0
ZSByZWFkeVN0YXRlKCkgY29uc3Q7CisgICAgY29uc3QgU3RyaW5nJiBsYWJlbCgpIGNvbnN0IHsg
cmV0dXJuIG1fbGFiZWw7IH0KIAotICAgIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja0xpc3Q+
IHRyYWNrcygpIHsgcmV0dXJuIG1fdHJhY2tzOyB9CisgICAgTWVkaWFTdHJlYW1UcmFja0xpc3Qq
IHRyYWNrcygpIHsgcmV0dXJuIG1fdHJhY2tzLmdldCgpOyB9CiAKLSAgICAvLyBNZWRpYVN0cmVh
bUZyYW1lQ29udHJvbGxlcjo6TWVkaWFTdHJlYW1DbGllbnQgaW1wbGVtZW50YXRpb24uCi0gICAg
dmlydHVhbCB2b2lkIHN0cmVhbUVuZGVkKCk7CisgICAgdm9pZCBzdHJlYW1FbmRlZCgpOwogCiAg
ICAgLy8gRXZlbnRUYXJnZXQgaW1wbGVtZW50YXRpb24uCiAgICAgdmlydHVhbCBNZWRpYVN0cmVh
bSogdG9NZWRpYVN0cmVhbSgpOwpAQCAtNjksMTYgKzY5LDE2IEBAIHB1YmxpYzoKICAgICB1c2lu
ZyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtPjo6ZGVyZWY7CiAKIHByb3RlY3RlZDoKLSAgICBNZWRp
YVN0cmVhbShNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlciosIGNvbnN0IFN0cmluZyYgbGFiZWws
IFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja0xpc3Q+IHRyYWNrcywgYm9vbCBpc0xvY2FsTWVk
aWFTdHJlYW0pOworICAgIE1lZGlhU3RyZWFtKGNvbnN0IFN0cmluZyYgc3RyZWFtSWQsIGNvbnN0
IFN0cmluZyYgbGFiZWwsIGNvbnN0IE1lZGlhU3RyZWFtQ29tcG9uZW50TGlzdCYsIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqKTsKIAogICAgIC8vIEV2ZW50VGFyZ2V0IGltcGxlbWVudGF0aW9uLgog
ICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKTsKICAgICB2aXJ0
dWFsIEV2ZW50VGFyZ2V0RGF0YSogZW5zdXJlRXZlbnRUYXJnZXREYXRhKCk7CiAKLSAgICB1bnNp
Z25lZCBzaG9ydCBtX3JlYWR5U3RhdGU7CisgICAgU3RyaW5nIG1fc3RyZWFtSWQ7CiAKIHByaXZh
dGU6Ci0gICAgdm9pZCBvbkVuZGVkKCk7CisgICAgTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiBkZXNj
cmlwdG9yKCkgY29uc3Q7CiAKICAgICAvLyBFdmVudFRhcmdldCBpbXBsZW1lbnRhdGlvbi4KICAg
ICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSB7IHJlZigpOyB9CkBAIC04Niw5ICs4Niwx
NiBAQCBwcml2YXRlOgogCiAgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOwog
CisgICAgU3RyaW5nIG1fbGFiZWw7CiAgICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tMaXN0PiBt
X3RyYWNrczsKKworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dDsKIH07CiAKK3R5cGVkZWYgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbT4gPiBNZWRp
YVN0cmVhbVZlY3RvcjsKKworc2l6ZV90IGZpbmRNZWRpYVN0cmVhbUluVmVjdG9yKGNvbnN0IE1l
ZGlhU3RyZWFtVmVjdG9yJiwgY29uc3QgU3RyaW5nJiBzdHJlYW1JZCk7CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQg
YS9tYXN0ZXI6U291cmNlL1dlYkNvcmUvcDJwL01lZGlhU3RyZWFtRXZlbnQuY3BwIGIvSEVBRDpT
b3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUV2ZW50LmNwcAppbmRleCA3YzAw
MjEyLi5jMjVhNzkwIDEwMDY0NAotLS0gYS9tYXN0ZXI6U291cmNlL1dlYkNvcmUvcDJwL01lZGlh
U3RyZWFtRXZlbnQuY3BwCisrKyBiL0hFQUQ6U291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1FdmVudC5jcHAKQEAgLTI3LDkgKzI3LDYgQEAKIAogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAKLSNpbmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW0u
aCIKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRXZlbnQ+
IE1lZGlhU3RyZWFtRXZlbnQ6OmNyZWF0ZSgpCkBAIC02NywxMiArNjQsMTEgQEAgdm9pZCBNZWRp
YVN0cmVhbUV2ZW50Ojppbml0TWVkaWFTdHJlYW1FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIGJvb2wgY2FuQnUKICAgICBtX3N0cmVhbSA9IHN0cmVhbTsKIH0KIAotUGFzc1JlZlB0cjxN
ZWRpYVN0cmVhbT4gTWVkaWFTdHJlYW1FdmVudDo6c3RyZWFtKCkgY29uc3QKK01lZGlhU3RyZWFt
KiBNZWRpYVN0cmVhbUV2ZW50OjpzdHJlYW0oKSBjb25zdAogewotICAgIHJldHVybiBtX3N0cmVh
bTsKKyAgICByZXR1cm4gbV9zdHJlYW0uZ2V0KCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KZGlmZiAtLWdpdCBhL21hc3Rl
cjpTb3VyY2UvV2ViQ29yZS9wMnAvTWVkaWFTdHJlYW1FdmVudC5oIGIvSEVBRDpTb3VyY2UvV2Vi
Q29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUV2ZW50LmgKaW5kZXggZTRlMjVmNS4uZTMxOGEx
MyAxMDA2NDQKLS0tIGEvbWFzdGVyOlNvdXJjZS9XZWJDb3JlL3AycC9NZWRpYVN0cmVhbUV2ZW50
LmgKKysrIGIvSEVBRDpTb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUV2ZW50
LmgKQEAgLTI4LDEyICsyOCwxMCBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKICNpbmNs
dWRlICJFdmVudC5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgorI2luY2x1
ZGUgIk1lZGlhU3RyZWFtLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgU3RyZWFt
OwotCiBjbGFzcyBNZWRpYVN0cmVhbUV2ZW50IDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5NZWRpYVN0cmVhbUV2ZW50KCk7CkBAIC00MywxMSArNDEsMTEgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBpbml0TWVkaWFTdHJlYW1FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFBhc3NSZWZQdHI8TWVkaWFTdHJl
YW0+KTsKIAorICAgIE1lZGlhU3RyZWFtKiBzdHJlYW0oKSBjb25zdDsKKwogICAgIC8vIEZyb20g
RXZlbnRUYXJnZXQuCiAgICAgdmlydHVhbCBib29sIGlzTWVkaWFTdHJlYW1FdmVudCgpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KIAotICAgIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IHN0cmVhbSgp
IGNvbnN0OwotCiBwcml2YXRlOgogICAgIE1lZGlhU3RyZWFtRXZlbnQoKTsKICAgICBNZWRpYVN0
cmVhbUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wg
Y2FuY2VsYWJsZSwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4pOwpkaWZmIC0tZ2l0IGEvbWFzdGVy
OlNvdXJjZS9XZWJDb3JlL3AycC9NZWRpYVN0cmVhbUV2ZW50LmlkbCBiL0hFQUQ6U291cmNlL1dl
YkNvcmUvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1FdmVudC5pZGwKaW5kZXggMzE1YmI3OS4uMTMy
MGI5MSAxMDA2NDQKLS0tIGEvbWFzdGVyOlNvdXJjZS9XZWJDb3JlL3AycC9NZWRpYVN0cmVhbUV2
ZW50LmlkbAorKysgYi9IRUFEOlNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
RXZlbnQuaWRsCkBAIC0yMiw3ICsyMiw3IEBACiAgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1tb2R1bGUgcDJwIHsK
K21vZHVsZSBldmVudHMgewogCiAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBXSEFUV0cgc3BlY2lm
aWNhdGlvbjoKICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3Vy
cmVudC13b3JrL211bHRpcGFnZS92aWRlby1jb25mZXJlbmNpbmctYW5kLXBlZXItdG8tcGVlci1j
b21tdW5pY2F0aW9uLmh0bWwjbWVkaWFzdHJlYW1ldmVudApkaWZmIC0tZ2l0IGEvbWFzdGVyOlNv
dXJjZS9XZWJDb3JlL2RvbS9NZWRpYVN0cmVhbUxpc3QuY3BwIGIvSEVBRDpTb3VyY2UvV2ViQ29y
ZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUxpc3QuY3BwCmluZGV4IGQzYWQ5NDYuLjRlMTc5Yjcg
MTAwNjQ0Ci0tLSBhL21hc3RlcjpTb3VyY2UvV2ViQ29yZS9kb20vTWVkaWFTdHJlYW1MaXN0LmNw
cAorKysgYi9IRUFEOlNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtTGlzdC5j
cHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgRXJpY3Nzb24gQUIu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTQ3LDQ3ICs0OCwzOSBAQCB1bnNpZ25lZCBNZWRpYVN0cmVhbUxpc3Q6Omxlbmd0aCgpIGNvbnN0
CiAgICAgcmV0dXJuIG1fc3RyZWFtcy5zaXplKCk7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFTdHJl
YW0+IE1lZGlhU3RyZWFtTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKK01lZGlhU3Ry
ZWFtKiBNZWRpYVN0cmVhbUxpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0CiB7Ci0gICAg
SGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxNZWRpYVN0cmVhbT4gPjo6Y29uc3RfaXRlcmF0b3IgaSA9
IG1fc3RyZWFtcy5iZWdpbigpOwotICAgIGZvciAodW5zaWduZWQgaiA9IDA7IGkgIT0gbV9zdHJl
YW1zLmVuZCgpOyArK2ksICsraikgewotICAgICAgICBpZiAoaiA9PSBpbmRleCkKLSAgICAgICAg
ICAgIHJldHVybiBpLT5zZWNvbmQ7Ci0gICAgfQotICAgIHJldHVybiBQYXNzUmVmUHRyPE1lZGlh
U3RyZWFtPigpOworICAgIHJldHVybiBtX3N0cmVhbXNbaW5kZXhdLmdldCgpOwogfQogCi12b2lk
IE1lZGlhU3RyZWFtTGlzdDo6YWRkKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IHN0cmVhbSkKK3Zv
aWQgTWVkaWFTdHJlYW1MaXN0OjphcHBlbmQoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gc3RyZWFt
KQogewotICAgIFJlZlB0cjxNZWRpYVN0cmVhbT4gcyA9IHN0cmVhbTsKLSAgICBBU1NFUlQoIWNv
bnRhaW5zKHMpKTsKLSAgICBtX3N0cmVhbXMuYWRkKHMtPmxhYmVsKCksIHMpOworICAgIG1fc3Ry
ZWFtcy5hcHBlbmQoc3RyZWFtKTsKIH0KIAotdm9pZCBNZWRpYVN0cmVhbUxpc3Q6OnJlbW92ZShQ
YXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0pCit2b2lkIE1lZGlhU3RyZWFtTGlzdDo6cmVt
b3ZlKGNvbnN0IFJlZlB0cjxNZWRpYVN0cmVhbT4mIHN0cmVhbSkKIHsKLSAgICBSZWZQdHI8TWVk
aWFTdHJlYW0+IHMgPSBzdHJlYW07Ci0gICAgQVNTRVJUKGNvbnRhaW5zKHMpKTsKLSAgICBtX3N0
cmVhbXMucmVtb3ZlKHMtPmxhYmVsKCkpOworICAgIHNpemVfdCBpID0gZmluZE1lZGlhU3RyZWFt
SW5WZWN0b3IobV9zdHJlYW1zLCBzdHJlYW0tPmlkKCkpOworICAgIGlmIChpICE9IG5vdEZvdW5k
KQorICAgICAgICByZXR1cm4gbV9zdHJlYW1zLnJlbW92ZShpKTsKIH0KIAotYm9vbCBNZWRpYVN0
cmVhbUxpc3Q6OmNvbnRhaW5zKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IHN0cmVhbSkgY29uc3QK
K2Jvb2wgTWVkaWFTdHJlYW1MaXN0Ojpjb250YWlucyhjb25zdCBSZWZQdHI8TWVkaWFTdHJlYW0+
JiBzdHJlYW0pIGNvbnN0CiB7Ci0gICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBzID0gc3RyZWFtOwot
ICAgIHJldHVybiBtX3N0cmVhbXMuY29udGFpbnMocy0+bGFiZWwoKSk7CisgICAgcmV0dXJuIGZp
bmRNZWRpYVN0cmVhbUluVmVjdG9yKG1fc3RyZWFtcywgc3RyZWFtLT5pZCgpKSAhPSBub3RGb3Vu
ZDsKIH0KIAotYm9vbCBNZWRpYVN0cmVhbUxpc3Q6OmNvbnRhaW5zKGNvbnN0IFN0cmluZyYgbGFi
ZWwpIGNvbnN0CitQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBNZWRpYVN0cmVhbUxpc3Q6OnRha2Uo
Y29uc3QgU3RyaW5nJiBzdHJlYW1JZCkKIHsKLSAgICByZXR1cm4gbV9zdHJlYW1zLmNvbnRhaW5z
KGxhYmVsKTsKLX0KKyAgICBzaXplX3QgaSA9IGZpbmRNZWRpYVN0cmVhbUluVmVjdG9yKG1fc3Ry
ZWFtcywgc3RyZWFtSWQpOworICAgIGlmIChpID09IG5vdEZvdW5kKQorICAgICAgICByZXR1cm4g
MDsKIAotUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gTWVkaWFTdHJlYW1MaXN0OjpnZXQoY29uc3Qg
U3RyaW5nJiBsYWJlbCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9zdHJlYW1zLmdldChsYWJlbCk7
CisgICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0gPSBtX3N0cmVhbXNbaV07CisgICAgbV9z
dHJlYW1zLnJlbW92ZShpKTsKKyAgICByZXR1cm4gc3RyZWFtOwogfQogCi0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQg
YS9tYXN0ZXI6U291cmNlL1dlYkNvcmUvZG9tL01lZGlhU3RyZWFtTGlzdC5oIGIvSEVBRDpTb3Vy
Y2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUxpc3QuaAppbmRleCA3MzIwZmRkLi5j
ZjE0ZGMzIDEwMDY0NAotLS0gYS9tYXN0ZXI6U291cmNlL1dlYkNvcmUvZG9tL01lZGlhU3RyZWFt
TGlzdC5oCisrKyBiL0hFQUQ6U291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1M
aXN0LmgKQEAgLTI4LDEwICsyOCw2IEBACiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogI2lu
Y2x1ZGUgIk1lZGlhU3RyZWFtLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQyLDE5ICszOCwx
OCBAQCBwdWJsaWM6CiAKICAgICAvLyBET00gbWV0aG9kcyAmIGF0dHJpYnV0ZXMgZm9yIE1lZGlh
U3RyZWFtTGlzdAogICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OwotICAgIFBhc3NSZWZQdHI8
TWVkaWFTdHJlYW0+IGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0OworICAgIE1lZGlhU3RyZWFt
KiBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKIAogICAgIC8vIExpc3QgbWFuaXB1bGF0aW9u
Ci0gICAgdm9pZCBhZGQoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4pOwotICAgIHZvaWQgcmVtb3Zl
KFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+KTsKLSAgICBib29sIGNvbnRhaW5zKFBhc3NSZWZQdHI8
TWVkaWFTdHJlYW0+KSBjb25zdDsKLSAgICBib29sIGNvbnRhaW5zKGNvbnN0IFN0cmluZyYgbGFi
ZWwpIGNvbnN0OwotICAgIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IGdldChjb25zdCBTdHJpbmcm
IGxhYmVsKSBjb25zdDsKKyAgICB2b2lkIGFwcGVuZChQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPik7
CisgICAgdm9pZCByZW1vdmUoY29uc3QgUmVmUHRyPE1lZGlhU3RyZWFtPiYpOworICAgIGJvb2wg
Y29udGFpbnMoY29uc3QgUmVmUHRyPE1lZGlhU3RyZWFtPiYpIGNvbnN0OworICAgIFBhc3NSZWZQ
dHI8TWVkaWFTdHJlYW0+IHRha2UoY29uc3QgU3RyaW5nJiBzdHJlYW1JZCk7CiAKIHByaXZhdGU6
CiAgICAgTWVkaWFTdHJlYW1MaXN0KCk7CiAKLSAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1l
ZGlhU3RyZWFtPiA+IG1fc3RyZWFtczsKKyAgICBNZWRpYVN0cmVhbVZlY3RvciBtX3N0cmVhbXM7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9tYXN0ZXI6U291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTdHJlYW1SZWdpc3RyeS5jcHAgYi9IRUFEOlNvdXJjZS9X
ZWJDb3JlL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUmVnaXN0cnkuY3BwCmluZGV4IDk1OTE1NTUu
LmUxN2Y3MjcgMTAwNjQ0Ci0tLSBhL21hc3RlcjpTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRp
YVN0cmVhbVJlZ2lzdHJ5LmNwcAorKysgYi9IRUFEOlNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtUmVnaXN0cnkuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDExIEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwzNyArMjksNTAgQEAKICNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQogCiAjaW5jbHVkZSAiS1VSTC5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCi0j
aW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1NZWRp
YVN0cmVhbVJlZ2lzdHJ5JiBNZWRpYVN0cmVhbVJlZ2lzdHJ5OjpyZWdpc3RyeSgpCitNZWRpYVN0
cmVhbVJlZ2lzdHJ5JiBtZWRpYVN0cmVhbVJlZ2lzdHJ5KCkKIHsKLSAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoTWVkaWFTdHJlYW1SZWdpc3RyeSwg
aW5zdGFuY2UsICgpKTsKICAgICByZXR1cm4gaW5zdGFuY2U7CiB9CiAKLXZvaWQgTWVkaWFTdHJl
YW1SZWdpc3RyeTo6cmVnaXN0ZXJNZWRpYVN0cmVhbVVSTChjb25zdCBLVVJMJiB1cmwsIFBhc3NS
ZWZQdHI8TWVkaWFTdHJlYW0+IHN0cmVhbSkKK01lZGlhU3RyZWFtUmVnaXN0cnk6On5NZWRpYVN0
cmVhbVJlZ2lzdHJ5KCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIG1fc3Ry
ZWFtcy5hZGQodXJsLnN0cmluZygpLCBzdHJlYW0pOwogfQogCi12b2lkIE1lZGlhU3RyZWFtUmVn
aXN0cnk6OnVucmVnaXN0ZXJNZWRpYVN0cmVhbVVSTChjb25zdCBLVVJMJiB1cmwpCit2b2lkIE1l
ZGlhU3RyZWFtUmVnaXN0cnk6OnJlZ2lzdGVyTWVkaWFTdHJlYW0oY29uc3QgU3RyaW5nJiBzdHJl
YW1JZCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+IHN0cmVhbURlc2NyaXB0b3Ip
CiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBtX3N0cmVhbXMucmVtb3ZlKHVy
bC5zdHJpbmcoKSk7CisgICAgbV9zdHJlYW1EZXNjcmlwdG9ycy5zZXQoc3RyZWFtSWQsIHN0cmVh
bURlc2NyaXB0b3IpOwogfQogCi1NZWRpYVN0cmVhbSogTWVkaWFTdHJlYW1SZWdpc3RyeTo6bWVk
aWFTdHJlYW0oY29uc3QgS1VSTCYgdXJsKSBjb25zdAordm9pZCBNZWRpYVN0cmVhbVJlZ2lzdHJ5
Ojp1bnJlZ2lzdGVyTWVkaWFTdHJlYW0oY29uc3QgU3RyaW5nJiBzdHJlYW1JZCkKIHsKLSAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIFVSTFN0cmVhbU1hcDo6Y29uc3RfaXRlcmF0b3Ig
aXQgPSBtX3N0cmVhbXMuZmluZCh1cmwuc3RyaW5nKCkpOwotICAgIGlmIChpdCAhPSBtX3N0cmVh
bXMuZW5kKCkpCi0gICAgICAgIHJldHVybiBpdC0+c2Vjb25kLmdldCgpOwotICAgIHJldHVybiAw
OworICAgIFJlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+IHN0cmVhbURlc2NyaXB0b3IgPSBt
X3N0cmVhbURlc2NyaXB0b3JzLnRha2Uoc3RyZWFtSWQpOworICAgIGlmICghc3RyZWFtRGVzY3Jp
cHRvcikKKyAgICAgICAgcmV0dXJuOworCisgICAgc3RyZWFtRGVzY3JpcHRvci0+b3duZXIgPSAw
OworfQorCit2b2lkIE1lZGlhU3RyZWFtUmVnaXN0cnk6OmFzc29jaWF0ZVVSTChjb25zdCBLVVJM
JiBzdHJlYW1VUkwsIGNvbnN0IFN0cmluZyYgcmVnaXN0ZXJlZFN0cmVhbUlkKQoreworICAgIFJl
ZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+IHN0cmVhbURlc2NyaXB0b3IgPSBtX3N0cmVhbURl
c2NyaXB0b3JzLmdldChyZWdpc3RlcmVkU3RyZWFtSWQpOworICAgIGlmICghc3RyZWFtRGVzY3Jp
cHRvcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zdHJlYW1EZXNjcmlwdG9ycy5zZXQoc3Ry
ZWFtVVJMLnN0cmluZygpLCBzdHJlYW1EZXNjcmlwdG9yKTsKK30KKwordm9pZCBNZWRpYVN0cmVh
bVJlZ2lzdHJ5Ojp1bmFzc29jaWF0ZVVSTChjb25zdCBLVVJMJiBzdHJlYW1VUkwpCit7CisgICAg
bV9zdHJlYW1EZXNjcmlwdG9ycy5yZW1vdmUoc3RyZWFtVVJMLnN0cmluZygpKTsKK30KKworUGFz
c1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+IE1lZGlhU3RyZWFtUmVnaXN0cnk6Omxvb2t1
cE1lZGlhU3RyZWFtRGVzY3JpcHRvcihjb25zdCBTdHJpbmcmIGtleSkKK3sKKyAgICByZXR1cm4g
bV9zdHJlYW1EZXNjcmlwdG9ycy5nZXQoa2V5KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvbWFzdGVyOlNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU3RyZWFt
UmVnaXN0cnkuaCBiL0hFQUQ6U291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1S
ZWdpc3RyeS5oCmluZGV4IDFlOWNkMmEuLjFhMzEwNDUgMTAwNjQ0Ci0tLSBhL21hc3RlcjpTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmgKKysrIGIvSEVBRDpTb3Vy
Y2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmgKQEAgLTEsNSArMSw2
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI1LDMwICsyNiw2MSBA
QAogI2lmbmRlZiBNZWRpYVN0cmVhbVJlZ2lzdHJ5X2gKICNkZWZpbmUgTWVkaWFTdHJlYW1SZWdp
c3RyeV9oCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVkaWFTdHJl
YW1Db21wb25lbnQuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgS1VSTDsK
IGNsYXNzIE1lZGlhU3RyZWFtOworY2xhc3MgTWVkaWFTdHJlYW1SZWdpc3RyeTsKKworc3RydWN0
IE1lZGlhU3RyZWFtRGVzY3JpcHRvciA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtRGVz
Y3JpcHRvcj4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVz
Y3JpcHRvcj4gY3JlYXRlKE1lZGlhU3RyZWFtKiBvd25lciwgUGFzc1JlZlB0cjxTZWN1cml0eU9y
aWdpbj4gb3JpZ2luLAorICAgICAgICAgICAgY29uc3QgTWVkaWFTdHJlYW1Db21wb25lbnRMaXN0
JiBjb21wb25lbnRzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYVN0
cmVhbURlc2NyaXB0b3Iob3duZXIsIG9yaWdpbiwgY29tcG9uZW50cykpOworICAgIH0KKworICAg
IE1lZGlhU3RyZWFtKiBvd25lcjsKKyAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbjsK
KyAgICBNZWRpYVN0cmVhbUNvbXBvbmVudExpc3QgY29tcG9uZW50czsKKyAgICBib29sIGVuZGVk
OworCitwcml2YXRlOgorICAgIE1lZGlhU3RyZWFtRGVzY3JpcHRvcihNZWRpYVN0cmVhbSogb3du
ZXJBcmcsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbkFyZywKKyAgICAgICAgICAg
IGNvbnN0IE1lZGlhU3RyZWFtQ29tcG9uZW50TGlzdCYgY29tcG9uZW50c0FyZykKKyAgICAgICAg
OiBvd25lcihvd25lckFyZykKKyAgICAgICAgLCBvcmlnaW4ob3JpZ2luQXJnKQorICAgICAgICAs
IGNvbXBvbmVudHMoY29tcG9uZW50c0FyZykKKyAgICAgICAgLCBlbmRlZChmYWxzZSkKKyAgICB7
IH0KK307CisKK01lZGlhU3RyZWFtUmVnaXN0cnkmIG1lZGlhU3RyZWFtUmVnaXN0cnkoKTsKIAog
Y2xhc3MgTWVkaWFTdHJlYW1SZWdpc3RyeSB7CiBwdWJsaWM6Ci0gICAgLy8gUmV0dXJucyBhIHNp
bmdsZSBpbnN0YW5jZSBvZiBNZWRpYVN0cmVhbVJlZ2lzdHJ5LgotICAgIHN0YXRpYyBNZWRpYVN0
cmVhbVJlZ2lzdHJ5JiByZWdpc3RyeSgpOworICAgIH5NZWRpYVN0cmVhbVJlZ2lzdHJ5KCk7CiAK
LSAgICAvLyBSZWdpc3RlcnMgYSBibG9iIFVSTCByZWZlcnJpbmcgdG8gdGhlIHNwZWNpZmllZCBz
dHJlYW0gZGF0YS4KLSAgICB2b2lkIHJlZ2lzdGVyTWVkaWFTdHJlYW1VUkwoY29uc3QgS1VSTCYs
IFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+KTsKLSAgICB2b2lkIHVucmVnaXN0ZXJNZWRpYVN0cmVh
bVVSTChjb25zdCBLVVJMJik7Ci0gICAgTWVkaWFTdHJlYW0qIG1lZGlhU3RyZWFtKGNvbnN0IEtV
UkwmKSBjb25zdDsKKyAgICB2b2lkIHJlZ2lzdGVyTWVkaWFTdHJlYW0oY29uc3QgU3RyaW5nJiBz
dHJlYW1JZCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+KTsKKyAgICB2b2lkIHVu
cmVnaXN0ZXJNZWRpYVN0cmVhbShjb25zdCBTdHJpbmcmIHN0cmVhbUlkKTsKKyAgICB2b2lkIGFz
c29jaWF0ZVVSTChjb25zdCBLVVJMJiBzdHJlYW1VUkwsIGNvbnN0IFN0cmluZyYgcmVnaXN0ZXJl
ZFN0cmVhbUlkKTsKKyAgICB2b2lkIHVuYXNzb2NpYXRlVVJMKGNvbnN0IEtVUkwmIHN0cmVhbVVS
TCk7CisKKyAgICBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4gbG9va3VwTWVkaWFT
dHJlYW1EZXNjcmlwdG9yKGNvbnN0IFN0cmluZyYga2V5KTsgLy8ga2V5OiBzdHJlYW1JZCBvciBV
Ukwgc3RyaW5nCiAKIHByaXZhdGU6Ci0gICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUmVmUHRy
PE1lZGlhU3RyZWFtPiA+IFVSTFN0cmVhbU1hcDsKLSAgICBVUkxTdHJlYW1NYXAgbV9zdHJlYW1z
OworICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiA+IG1f
c3RyZWFtRGVzY3JpcHRvcnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKKyNlbmRp
ZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCiAjZW5kaWYgLy8gTWVkaWFTdHJlYW1SZWdpc3Ry
eV9oCmRpZmYgLS1naXQgYS9tYXN0ZXI6U291cmNlL1dlYkNvcmUvZG9tL01lZGlhU3RyZWFtVHJh
Y2suY3BwIGIvSEVBRDpTb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
LmNwcAppbmRleCBiZTRjYmY3Li45MjYyN2Q1IDEwMDY0NAotLS0gYS9tYXN0ZXI6U291cmNlL1dl
YkNvcmUvZG9tL01lZGlhU3RyZWFtVHJhY2suY3BwCisrKyBiL0hFQUQ6U291cmNlL1dlYkNvcmUv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDE4ICsyOCwyMSBAQAogCiAjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKIAorI2luY2x1ZGUgIk1lZGlhU3RyZWFtTWFuYWdlci5oIgorCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4gTWVkaWFT
dHJlYW1UcmFjazo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgaWQsIGNvbnN0IFN0cmluZyYga2luZCwg
Y29uc3QgU3RyaW5nJiBsYWJlbCkKK1Bhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4gTWVkaWFT
dHJlYW1UcmFjazo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgb3duZXJTdHJlYW1JZCwgdW5zaWduZWQg
dHJhY2tJbmRleCwgY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBib29s
IGVuYWJsZWQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYVN0cmVhbVRyYWNrKGlk
LCBraW5kLCBsYWJlbCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFTdHJlYW1UcmFj
ayhvd25lclN0cmVhbUlkLCB0cmFja0luZGV4LCBraW5kLCBsYWJlbCwgZW5hYmxlZCkpOwogfQog
Ci1NZWRpYVN0cmVhbVRyYWNrOjpNZWRpYVN0cmVhbVRyYWNrKGNvbnN0IFN0cmluZyYgaWQsIGNv
bnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiBsYWJlbCkKLSAgICA6IG1faWQoaWQpCitN
ZWRpYVN0cmVhbVRyYWNrOjpNZWRpYVN0cmVhbVRyYWNrKGNvbnN0IFN0cmluZyYgb3duZXJTdHJl
YW1JZCwgdW5zaWduZWQgdHJhY2tJbmRleCwgY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJp
bmcmIGxhYmVsLCBib29sIGVuYWJsZWQpCisgICAgOiBtX293bmVyU3RyZWFtSWQob3duZXJTdHJl
YW1JZCkKKyAgICAsIG1fdHJhY2tJbmRleCh0cmFja0luZGV4KQogICAgICwgbV9raW5kKGtpbmQp
CiAgICAgLCBtX2xhYmVsKGxhYmVsKQotICAgICwgbV9lbmFibGVkKHRydWUpCisgICAgLCBtX2Vu
YWJsZWQoZW5hYmxlZCkKIHsKIH0KIApAQCAtNjMsMTAgKzY3LDEyIEBAIGJvb2wgTWVkaWFTdHJl
YW1UcmFjazo6ZW5hYmxlZCgpIGNvbnN0CiAKIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6c2V0RW5h
YmxlZChib29sIGVuYWJsZWQpCiB7CisgICAgaWYgKGVuYWJsZWQgPT0gbV9lbmFibGVkKQorICAg
ICAgICByZXR1cm47CisKICAgICBtX2VuYWJsZWQgPSBlbmFibGVkOwogCi0gICAgaWYgKG1lZGlh
U3RyZWFtRnJhbWVDb250cm9sbGVyKCkpCi0gICAgICAgIG1lZGlhU3RyZWFtRnJhbWVDb250cm9s
bGVyKCktPnNldE1lZGlhU3RyZWFtVHJhY2tFbmFibGVkKG1faWQsIGVuYWJsZWQpOworICAgIG1l
ZGlhU3RyZWFtTWFuYWdlcigpLnNldE1lZGlhU3RyZWFtQ29tcG9uZW50RW5hYmxlZChtX293bmVy
U3RyZWFtSWQsIG1fdHJhY2tJbmRleCwgbV9lbmFibGVkKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvbWFzdGVyOlNvdXJjZS9XZWJDb3JlL2RvbS9NZWRpYVN0cmVh
bVRyYWNrLmggYi9IRUFEOlNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suaAppbmRleCAzMjIyZGM3Li43ZDkzNDgwIDEwMDY0NAotLS0gYS9tYXN0ZXI6U291cmNlL1dl
YkNvcmUvZG9tL01lZGlhU3RyZWFtVHJhY2suaAorKysgYi9IRUFEOlNvdXJjZS9XZWJDb3JlL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMzUgKzI5LDM1IEBACiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKIAogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVkZSAiTWVk
aWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNZWRp
YVN0cmVhbVRyYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1UcmFjaz4sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgcHVibGljIE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyOjpH
ZW5lcmljQ2xpZW50IHsKK2NsYXNzIE1lZGlhU3RyZWFtVHJhY2sgOiBwdWJsaWMgUmVmQ291bnRl
ZDxNZWRpYVN0cmVhbVRyYWNrPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVk
aWFTdHJlYW1UcmFjaz4gY3JlYXRlKGNvbnN0IFN0cmluZyYgaWQsIGNvbnN0IFN0cmluZyYga2lu
ZCwgY29uc3QgU3RyaW5nJiBsYWJlbCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFTdHJl
YW1UcmFjaz4gY3JlYXRlKGNvbnN0IFN0cmluZyYgb3duZXJTdHJlYW1JZCwgdW5zaWduZWQgdHJh
Y2tJbmRleCwgY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBib29sIGVu
YWJsZWQgPSB0cnVlKTsKICAgICB2aXJ0dWFsIH5NZWRpYVN0cmVhbVRyYWNrKCk7CiAKICAgICBj
b25zdCBTdHJpbmcmIGtpbmQoKSBjb25zdDsKICAgICBjb25zdCBTdHJpbmcmIGxhYmVsKCkgY29u
c3Q7CiAKICAgICBib29sIGVuYWJsZWQoKSBjb25zdDsKLSAgICB2b2lkIHNldEVuYWJsZWQoYm9v
bCBlbmFibGVkKTsKKyAgICB2b2lkIHNldEVuYWJsZWQoYm9vbCk7CiAKIHByaXZhdGU6Ci0gICAg
TWVkaWFTdHJlYW1UcmFjayhjb25zdCBTdHJpbmcmIGlkLCBjb25zdCBTdHJpbmcmIGtpbmQsIGNv
bnN0IFN0cmluZyYgbGFiZWwpOworICAgIE1lZGlhU3RyZWFtVHJhY2soY29uc3QgU3RyaW5nJiBv
d25lclN0cmVhbUlkLCB1bnNpZ25lZCB0cmFja0luZGV4LCBjb25zdCBTdHJpbmcmIGtpbmQsIGNv
bnN0IFN0cmluZyYgbGFiZWwsIGJvb2wgZW5hYmxlZCk7CisKKyAgICBjb25zdCBTdHJpbmcgbV9v
d25lclN0cmVhbUlkOworICAgIGNvbnN0IHVuc2lnbmVkIG1fdHJhY2tJbmRleDsKIAotICAgIFN0
cmluZyBtX2lkOwogICAgIFN0cmluZyBtX2tpbmQ7CiAgICAgU3RyaW5nIG1fbGFiZWw7CiAgICAg
Ym9vbCBtX2VuYWJsZWQ7CiB9OwogCi10eXBlZGVmIFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1U
cmFjaz4gPiBUcmFja1ZlY3RvcjsKK3R5cGVkZWYgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVRy
YWNrPiA+IE1lZGlhU3RyZWFtVHJhY2tWZWN0b3I7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IApkaWZmIC0tZ2l0IGEvbWFzdGVyOlNvdXJjZS9XZWJDb3JlL2RvbS9NZWRpYVN0cmVhbVRyYWNr
LmlkbCBiL0hFQUQ6U291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5p
ZGwKaW5kZXggMjk4NzVhYS4uNzk4NzU5NyAxMDA2NDQKLS0tIGEvbWFzdGVyOlNvdXJjZS9XZWJD
b3JlL2RvbS9NZWRpYVN0cmVhbVRyYWNrLmlkbAorKysgYi9IRUFEOlNvdXJjZS9XZWJDb3JlL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsCkBAIC0yNyw5ICsyNyw5IEBAIG1vZHVsZSBj
b3JlIHsKICAgICBpbnRlcmZhY2UgWwogICAgICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0s
CiAgICAgXSBNZWRpYVN0cmVhbVRyYWNrIHsKLSAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcga2luZDsKLSAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFiZWw7Ci0g
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBlbmFibGVkOworICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGtpbmQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgbGFiZWw7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIGVuYWJs
ZWQ7CiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvbWFzdGVyOlNvdXJjZS9XZWJDb3JlL2RvbS9N
ZWRpYVN0cmVhbVRyYWNrTGlzdC5jcHAgYi9IRUFEOlNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2tMaXN0LmNwcAppbmRleCA2ZmNjNjdjLi45MmJmMGY3IDEwMDY0NAot
LS0gYS9tYXN0ZXI6U291cmNlL1dlYkNvcmUvZG9tL01lZGlhU3RyZWFtVHJhY2tMaXN0LmNwcAor
KysgYi9IRUFEOlNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tMaXN0
LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBFcmljc3NvbiBB
Qi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMjksMTMgKzMwLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxN
ZWRpYVN0cmVhbVRyYWNrTGlzdD4gTWVkaWFTdHJlYW1UcmFja0xpc3Q6OmNyZWF0ZShjb25zdCBU
cmFja1ZlY3RvciYgdHJhY2tzKQorUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrTGlzdD4gTWVk
aWFTdHJlYW1UcmFja0xpc3Q6OmNyZWF0ZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrVmVjdG9yJiB0
cmFja1ZlY3RvcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhU3RyZWFtVHJhY2tM
aXN0KHRyYWNrcykpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFTdHJlYW1UcmFja0xp
c3QodHJhY2tWZWN0b3IpKTsKIH0KIAotTWVkaWFTdHJlYW1UcmFja0xpc3Q6Ok1lZGlhU3RyZWFt
VHJhY2tMaXN0KGNvbnN0IFRyYWNrVmVjdG9yJiB0cmFja3MpCi0gICAgOiBtX3RyYWNrcyh0cmFj
a3MpCitNZWRpYVN0cmVhbVRyYWNrTGlzdDo6TWVkaWFTdHJlYW1UcmFja0xpc3QoY29uc3QgTWVk
aWFTdHJlYW1UcmFja1ZlY3RvciYgdHJhY2tWZWN0b3IpCisgICAgOiBtX3RyYWNrVmVjdG9yKHRy
YWNrVmVjdG9yKQogewogfQogCkBAIC00NSwxNSArNDYsMTMgQEAgTWVkaWFTdHJlYW1UcmFja0xp
c3Q6On5NZWRpYVN0cmVhbVRyYWNrTGlzdCgpCiAKIHVuc2lnbmVkIE1lZGlhU3RyZWFtVHJhY2tM
aXN0OjpsZW5ndGgoKSBjb25zdAogewotICAgIHJldHVybiBtX3RyYWNrcy5zaXplKCk7CisgICAg
cmV0dXJuIG1fdHJhY2tWZWN0b3Iuc2l6ZSgpOwogfQogCi1QYXNzUmVmUHRyPE1lZGlhU3RyZWFt
VHJhY2s+IE1lZGlhU3RyZWFtVHJhY2tMaXN0OjppdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAor
TWVkaWFTdHJlYW1UcmFjayogTWVkaWFTdHJlYW1UcmFja0xpc3Q6Oml0ZW0odW5zaWduZWQgaW5k
ZXgpIGNvbnN0CiB7Ci0gICAgaWYgKGluZGV4IDwgbV90cmFja3Muc2l6ZSgpKQotICAgICAgICBy
ZXR1cm4gbV90cmFja3MuYXQoaW5kZXgpOwotICAgIGVsc2UKLSAgICAgICAgcmV0dXJuIFBhc3NS
ZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4oKTsKKyAgICBBU1NFUlQoaW5kZXggPCBsZW5ndGgoKSk7
CisgICAgcmV0dXJuIG1fdHJhY2tWZWN0b3JbaW5kZXhdLmdldCgpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9tYXN0ZXI6U291cmNlL1dlYkNvcmUvZG9tL01lZGlh
U3RyZWFtVHJhY2tMaXN0LmggYi9IRUFEOlNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2tMaXN0LmgKaW5kZXggMWVmZTZhZS4uNGQ2MWY4NWUgMTAwNjQ0Ci0tLSBhL21h
c3RlcjpTb3VyY2UvV2ViQ29yZS9kb20vTWVkaWFTdHJlYW1UcmFja0xpc3QuaAorKysgYi9IRUFE
OlNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tMaXN0LmgKQEAgLTI4
LDI4ICsyOCwyMiBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKICNpbmNsdWRlICJNZWRp
YVN0cmVhbVRyYWNrLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBNZWRpYVN0cmVhbVRyYWNrTGlzdCA6IHB1YmxpYyBSZWZDb3VudGVk
PE1lZGlhU3RyZWFtVHJhY2tMaXN0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
TWVkaWFTdHJlYW1UcmFja0xpc3Q+IGNyZWF0ZShjb25zdCBUcmFja1ZlY3RvciYgbV90cmFja3Mp
OworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tMaXN0PiBjcmVhdGUoY29u
c3QgTWVkaWFTdHJlYW1UcmFja1ZlY3RvciYpOwogICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtVHJh
Y2tMaXN0KCk7CiAKICAgICAvLyBET00gbWV0aG9kcyAmIGF0dHJpYnV0ZXMgZm9yIE1lZGlhU3Ry
ZWFtVHJhY2tMaXN0CiAgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7Ci0gICAgUGFzc1JlZlB0
cjxNZWRpYVN0cmVhbVRyYWNrPiBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKLQotICAgIHZv
aWQgYXNzb2NpYXRlU3RyZWFtKGNvbnN0IFN0cmluZyYgbGFiZWwpIHsgbV9hc3NvY2lhdGVkU3Ry
ZWFtTGFiZWwgPSBsYWJlbDsgfQorICAgIE1lZGlhU3RyZWFtVHJhY2sqIGl0ZW0odW5zaWduZWQg
aW5kZXgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIE1lZGlhU3RyZWFtVHJhY2tMaXN0KGNvbnN0
IFRyYWNrVmVjdG9yJiBtX3RyYWNrcyk7CisgICAgTWVkaWFTdHJlYW1UcmFja0xpc3QoY29uc3Qg
TWVkaWFTdHJlYW1UcmFja1ZlY3RvciYpOwogCi0gICAgVHJhY2tWZWN0b3IgbV90cmFja3M7Ci0g
ICAgU3RyaW5nIG1fYXNzb2NpYXRlZFN0cmVhbUxhYmVsOworICAgIE1lZGlhU3RyZWFtVHJhY2tW
ZWN0b3IgbV90cmFja1ZlY3RvcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL21hc3RlcjpTb3VyY2UvV2ViQ29yZS9wMnAvUGVlckNvbm5lY3Rpb24uY3BwIGIvSEVB
RDpTb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggYmRh
M2VlMy4uZmY1Mjk1YiAxMDA2NDQKLS0tIGEvbWFzdGVyOlNvdXJjZS9XZWJDb3JlL3AycC9QZWVy
Q29ubmVjdGlvbi5jcHAKKysrIGIvSEVBRDpTb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9QZWVy
Q29ubmVjdGlvbi5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
RXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI3LDU5ICsyOCw4NyBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
IAotI2luY2x1ZGUgIkRpc3BhdGNoVGFzay5oIgotI2luY2x1ZGUgIkVycm9yRXZlbnQuaCIKLSNp
bmNsdWRlICJFdmVudC5oIgotI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLSNpbmNsdWRlICJNZWRp
YVN0cmVhbS5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJNZWRpYVN0
cmVhbUV2ZW50LmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1MaXN0LmgiCisjaW5jbHVkZSAiTWVk
aWFTdHJlYW1NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgotI2luY2x1ZGUgIlNpZ25hbGluZ0NhbGxiYWNrLmgi
CisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Q
YXNzUmVmUHRyPFBlZXJDb25uZWN0aW9uPiBQZWVyQ29ubmVjdGlvbjo6Y3JlYXRlKE1lZGlhU3Ry
ZWFtRnJhbWVDb250cm9sbGVyKiBmcmFtZUNvbnRyb2xsZXIsIGludCBpZCwgY29uc3QgU3RyaW5n
JiBjb25maWd1cmF0aW9uLCBQYXNzUmVmUHRyPFNpZ25hbGluZ0NhbGxiYWNrPiBzaWduYWxpbmdD
YWxsYmFjaykKK1Bhc3NSZWZQdHI8UGVlckNvbm5lY3Rpb24+IFBlZXJDb25uZWN0aW9uOjpjcmVh
dGUoY29uc3QgU3RyaW5nJiBzZXJ2ZXJDb25maWd1cmF0aW9uLCBQYXNzUmVmUHRyPFBlZXJDb25u
ZWN0aW9uU2lnbmFsaW5nQ2FsbGJhY2s+IHNpZ25hbGluZ0NhbGxiYWNrLCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0KQogewotICAgIC8vIEZJWE1FOiBWZXJpZnkgdGhhdCBjb25maWd1
cmF0aW9uIGZvbGxvd3MgdGhlIHNwZWNpZmllZCBmb3JtYXQsIGlmIG5vdCByZXR1cm4gbnVsbC4K
KyAgICBSZWZQdHI8UGVlckNvbm5lY3Rpb24+IGNvbm5lY3Rpb24gPSBhZG9wdFJlZihuZXcgUGVl
ckNvbm5lY3Rpb24oc2VydmVyQ29uZmlndXJhdGlvbiwgc2lnbmFsaW5nQ2FsbGJhY2ssIGNvbnRl
eHQpKTsKKyAgICBjb25uZWN0aW9uLT5zZXRQZW5kaW5nQWN0aXZpdHkoY29ubmVjdGlvbi5nZXQo
KSk7CisgICAgY29ubmVjdGlvbi0+c2NoZWR1bGVJbml0aWFsTmVnb3RpYXRpb24oKTsKIAotICAg
IFJlZlB0cjxQZWVyQ29ubmVjdGlvbj4gcGVlckNvbm5lY3Rpb24gPSBhZG9wdFJlZihuZXcgUGVl
ckNvbm5lY3Rpb24oZnJhbWVDb250cm9sbGVyLCBpZCwgY29uZmlndXJhdGlvbiwgc2lnbmFsaW5n
Q2FsbGJhY2spKTsKLSAgICBwZWVyQ29ubmVjdGlvbi0+aW5pdCgpOwotICAgIHJldHVybiBwZWVy
Q29ubmVjdGlvbi5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGNvbm5lY3Rpb24ucmVsZWFzZSgpOwog
fQogCi1QZWVyQ29ubmVjdGlvbjo6UGVlckNvbm5lY3Rpb24oTWVkaWFTdHJlYW1GcmFtZUNvbnRy
b2xsZXIqIGZyYW1lQ29udHJvbGxlciwgaW50IGlkLCBjb25zdCBTdHJpbmcmIGNvbmZpZ3VyYXRp
b24sIFBhc3NSZWZQdHI8U2lnbmFsaW5nQ2FsbGJhY2s+IHNpZ25hbGluZ0NhbGxiYWNrKQotICAg
IDogUGVlckNvbm5lY3Rpb25DbGllbnQoZnJhbWVDb250cm9sbGVyLCBpZCkKLSAgICAsIG1fY29u
ZmlndXJhdGlvbihjb25maWd1cmF0aW9uKQotICAgICwgbV9yZWFkeVN0YXRlKE5FVykKK1BlZXJD
b25uZWN0aW9uOjpQZWVyQ29ubmVjdGlvbihjb25zdCBTdHJpbmcmIHNlcnZlckNvbmZpZ3VyYXRp
b24sIFBhc3NSZWZQdHI8UGVlckNvbm5lY3Rpb25TaWduYWxpbmdDYWxsYmFjaz4gc2lnbmFsaW5n
Q2FsbGJhY2ssIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBBY3RpdmVE
T01PYmplY3QoY29udGV4dCwgdGhpcykKICAgICAsIG1fc2lnbmFsaW5nQ2FsbGJhY2soc2lnbmFs
aW5nQ2FsbGJhY2spCisgICAgLCBtX3JlYWR5U3RhdGUoTkVXKQorICAgICwgbV9pY2VTdGFydGVk
KGZhbHNlKQorICAgICwgbV9sb2NhbFN0cmVhbXMoTWVkaWFTdHJlYW1MaXN0OjpjcmVhdGUoKSkK
KyAgICAsIG1fcmVtb3RlU3RyZWFtcyhNZWRpYVN0cmVhbUxpc3Q6OmNyZWF0ZSgpKQorICAgICwg
bV9pbml0aWFsTmVnb3RpYXRpb25UaW1lcih0aGlzLCAmUGVlckNvbm5lY3Rpb246OmluaXRpYWxO
ZWdvdGlhdGlvblRpbWVyRmlyZWQpCisgICAgLCBtX3N0cmVhbUNoYW5nZVRpbWVyKHRoaXMsICZQ
ZWVyQ29ubmVjdGlvbjo6c3RyZWFtQ2hhbmdlVGltZXJGaXJlZCkKKyAgICAsIG1fcmVhZHlTdGF0
ZUNoYW5nZVRpbWVyKHRoaXMsICZQZWVyQ29ubmVjdGlvbjo6cmVhZHlTdGF0ZUNoYW5nZVRpbWVy
RmlyZWQpCisgICAgLCBtX3BlZXJIYW5kbGVyKFBlZXJIYW5kbGVyOjpjcmVhdGUodGhpcywgcGFy
c2VTZXJ2ZXJDb25maWd1cmF0aW9uKHNlcnZlckNvbmZpZ3VyYXRpb24pKSkKIHsKLSAgICBBU1NF
UlQoZnJhbWVDb250cm9sbGVyKTsKLSAgICBtX2xvY2FsU3RyZWFtTGlzdCA9IE1lZGlhU3RyZWFt
TGlzdDo6Y3JlYXRlKCk7Ci0gICAgbV9yZW1vdGVTdHJlYW1MaXN0ID0gTWVkaWFTdHJlYW1MaXN0
OjpjcmVhdGUoKTsKLX0KLQotdm9pZCBQZWVyQ29ubmVjdGlvbjo6aW5pdCgpCi17Ci0gICAgaWYg
KE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKiBmcmFtZUNvbnRyb2xsZXIgPSBtZWRpYVN0cmVh
bUZyYW1lQ29udHJvbGxlcigpKQotICAgICAgICBmcmFtZUNvbnRyb2xsZXItPm5ld1BlZXJDb25u
ZWN0aW9uKG1fY2xpZW50SWQsIG1fY29uZmlndXJhdGlvbik7Ci0KLSAgICBwb3N0U3RhcnROZWdv
dGlhdGlvblRhc2soKTsKIH0KIAogUGVlckNvbm5lY3Rpb246On5QZWVyQ29ubmVjdGlvbigpCiB7
CiB9CiAKLU1lZGlhU3RyZWFtTGlzdCogUGVlckNvbm5lY3Rpb246OmxvY2FsU3RyZWFtcygpCitz
dGF0aWMgYm9vbCBpc0NhcnJpYWdlUmV0dXJuT3JMaW5lRmVlZChVQ2hhciBjKQogewotICAgIHJl
dHVybiBtX2xvY2FsU3RyZWFtTGlzdC5nZXQoKTsKKyAgICByZXR1cm4gYyA9PSAnXHInIHx8IGMg
PT0gJ1xuJzsKIH0KIAotTWVkaWFTdHJlYW1MaXN0KiBQZWVyQ29ubmVjdGlvbjo6cmVtb3RlU3Ry
ZWFtcygpCitQYXNzUmVmUHRyPFBlZXJIYW5kbGVyQ29uZmlndXJhdGlvbj4gUGVlckNvbm5lY3Rp
b246OnBhcnNlU2VydmVyQ29uZmlndXJhdGlvbihjb25zdCBTdHJpbmcmIHNlcnZlckNvbmZpZ3Vy
YXRpb24pCiB7Ci0gICAgcmV0dXJuIG1fcmVtb3RlU3RyZWFtTGlzdC5nZXQoKTsKKyAgICBzaXpl
X3QgZW5kT2ZMaW5lID0gc2VydmVyQ29uZmlndXJhdGlvbi5maW5kKFdlYkNvcmU6OmlzQ2Fycmlh
Z2VSZXR1cm5PckxpbmVGZWVkKTsKKyAgICBTdHJpbmcgc2VydmVyQ29uZmlnID0gZW5kT2ZMaW5l
ID09IG5vdEZvdW5kID8gc2VydmVyQ29uZmlndXJhdGlvbiA6IHNlcnZlckNvbmZpZ3VyYXRpb24u
bGVmdChlbmRPZkxpbmUpOworCisgICAgVmVjdG9yPFN0cmluZz4gY29uZmlndXJhdGlvbkNvbXBv
bmVudHM7CisgICAgc2VydmVyQ29uZmlnLnNwbGl0KCcgJywgY29uZmlndXJhdGlvbkNvbXBvbmVu
dHMpOworCisgICAgUmVmUHRyPFBlZXJIYW5kbGVyQ29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlv
biA9IFBlZXJIYW5kbGVyQ29uZmlndXJhdGlvbjo6Y3JlYXRlKCk7CisKKyAgICBpZiAoY29uZmln
dXJhdGlvbkNvbXBvbmVudHMuc2l6ZSgpIDwgMikKKyAgICAgICAgcmV0dXJuIGNvbmZpZ3VyYXRp
b247CisKKyAgICBTdHJpbmcmIHR5cGUgPSBjb25maWd1cmF0aW9uQ29tcG9uZW50c1swXTsKKyAg
ICBpZiAodHlwZSA9PSAiU1RVTiIgfHwgdHlwZSA9PSAiU1RVTlMiKQorICAgICAgICBjb25maWd1
cmF0aW9uLT50eXBlID0gUGVlckhhbmRsZXJDb25maWd1cmF0aW9uOjpUeXBlU1RVTjsKKyAgICBl
bHNlIGlmICh0eXBlID09ICJUVVJOIiB8fCB0eXBlID09ICJUVVJOUyIpCisgICAgICAgIGNvbmZp
Z3VyYXRpb24tPnR5cGUgPSBQZWVySGFuZGxlckNvbmZpZ3VyYXRpb246OlR5cGVUVVJOOworICAg
IGVsc2UKKyAgICAgICAgcmV0dXJuIGNvbmZpZ3VyYXRpb247CisKKyAgICBjb25maWd1cmF0aW9u
LT5zZWN1cmUgPSB0eXBlID09ICJTVFVOUyIgfHwgdHlwZSA9PSAiVFVSTlMiOworCisgICAgU3Ry
aW5nJiBob3N0QW5kUG9ydCA9IGNvbmZpZ3VyYXRpb25Db21wb25lbnRzWzFdOworICAgIHNpemVf
dCBmaXJzdENvbG9uID0gaG9zdEFuZFBvcnQuZmluZCgnOicpOworICAgIGlmIChmaXJzdENvbG9u
ICE9IG5vdEZvdW5kKSB7CisgICAgICAgIGJvb2wgcG9ydE9rOworICAgICAgICBpbnQgcG9ydCA9
IGhvc3RBbmRQb3J0LnN1YnN0cmluZyhmaXJzdENvbG9uICsgMSkudG9JbnQoJnBvcnRPayk7Cisg
ICAgICAgIHBvcnRPayAmPSAwIDw9IHBvcnQgJiYgcG9ydCA8IDY1NTM2OworICAgICAgICBpZiAo
IXBvcnRPaykKKyAgICAgICAgICAgIHJldHVybiBQZWVySGFuZGxlckNvbmZpZ3VyYXRpb246OmNy
ZWF0ZSgpOworCisgICAgICAgIGNvbmZpZ3VyYXRpb24tPmhvc3QgPSBob3N0QW5kUG9ydC5sZWZ0
KGZpcnN0Q29sb24pOworICAgICAgICBjb25maWd1cmF0aW9uLT5wb3J0ID0gcG9ydDsKKyAgICB9
IGVsc2UKKyAgICAgICAgY29uZmlndXJhdGlvbi0+aG9zdCA9IGhvc3RBbmRQb3J0OworCisgICAg
Y29uZmlndXJhdGlvbi0+dXNlcm5hbWUgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlY3Vy
aXR5T3JpZ2luKCktPnRvU3RyaW5nKCk7CisKKyAgICByZXR1cm4gY29uZmlndXJhdGlvbjsKIH0K
IAogdm9pZCBQZWVyQ29ubmVjdGlvbjo6cHJvY2Vzc1NpZ25hbGluZ01lc3NhZ2UoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTg5LDggKzExOCwyOCBAQCB2b2lk
IFBlZXJDb25uZWN0aW9uOjpwcm9jZXNzU2lnbmFsaW5nTWVzc2FnZShjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIEV4Y2VwdGlvbkNvZAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1l
ZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKCkpCi0gICAgICAgIG1lZGlhU3RyZWFtRnJhbWVDb250
cm9sbGVyKCktPnByb2Nlc3NTaWduYWxpbmdNZXNzYWdlKG1fY2xpZW50SWQsIG1lc3NhZ2UpOwor
ICAgIGlmICghbWVzc2FnZS5zdGFydHNXaXRoKCJTRFBcbiIpKQorICAgICAgICByZXR1cm47CisK
KyAgICBTdHJpbmcgc2RwID0gbWVzc2FnZS5zdWJzdHJpbmcoNCk7CisKKyAgICBpZiAobV9pY2VT
dGFydGVkKSB7CisgICAgICAgIGlmIChtX3BlZXJIYW5kbGVyKQorICAgICAgICAgICAgbV9wZWVy
SGFuZGxlci0+cHJvY2Vzc1NEUChzZHApOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aWYgKG1fcGVlckhhbmRsZXIpCisgICAgICAgIG1fcGVlckhhbmRsZXItPmhhbmRsZUluaXRpYWxP
ZmZlcihzZHApOworCisgICAgc2NoZWR1bGVTdHJlYW1DaGFuZ2UoKTsKKyAgICBtX2ljZVN0YXJ0
ZWQgPSB0cnVlOworICAgIHNjaGVkdWxlUmVhZHlTdGF0ZUNoYW5nZShORUdPVElBVElORyk7Cit9
CisKK1BlZXJDb25uZWN0aW9uOjpSZWFkeVN0YXRlIFBlZXJDb25uZWN0aW9uOjpyZWFkeVN0YXRl
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZWFkeVN0YXRlOwogfQogCiB2b2lkIFBlZXJDb25u
ZWN0aW9uOjpzZW5kKGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0x
MDAsMTcgKzE0OSwxOSBAQCB2b2lkIFBlZXJDb25uZWN0aW9uOjpzZW5kKGNvbnN0IFN0cmluZyYg
dGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBD
U3RyaW5nIHV0ZjggPSB0ZXh0LnV0ZjgoKTsKLSAgICBpZiAodXRmOC5sZW5ndGgoKSA+IGtNYXhN
ZXNzYWdlVVRGOExlbmd0aCkgeworICAgIENTdHJpbmcgZGF0YSA9IHRleHQudXRmOCgpOworICAg
IHVuc2lnbmVkIGxlbmd0aCA9IGRhdGEubGVuZ3RoKCk7CisKKyAgICBpZiAobGVuZ3RoID4ga01h
eE1lc3NhZ2VVVEY4TGVuZ3RoKSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1lZGlhU3RyZWFtRnJhbWVDb250cm9s
bGVyKCkpCi0gICAgICAgIG1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKCktPm1lc3NhZ2UobV9j
bGllbnRJZCwgdGV4dCk7CisgICAgaWYgKG1fcGVlckhhbmRsZXIpCisgICAgICAgIG1fcGVlckhh
bmRsZXItPnNlbmREYXRhU3RyZWFtTWVzc2FnZShkYXRhLmRhdGEoKSwgbGVuZ3RoKTsKIH0KIAot
dm9pZCBQZWVyQ29ubmVjdGlvbjo6YWRkU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IHBy
cFN0cmVhbSwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIFBlZXJDb25uZWN0aW9uOjphZGRTdHJl
YW0oY29uc3QgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gcHJwU3RyZWFtLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKICAgICBpZiAobV9yZWFkeVN0YXRlID09IENMT1NFRCkgewogICAgICAgICBlYyA9
IElOVkFMSURfU1RBVEVfRVJSOwpAQCAtMTIxLDE2ICsxNzIsMjMgQEAgdm9pZCBQZWVyQ29ubmVj
dGlvbjo6YWRkU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IHBycFN0cmVhbSwgRXhjZXB0
aW9uQ29kZSYKIAogICAgIFJlZlB0cjxNZWRpYVN0cmVhbT4gc3RyZWFtID0gcHJwU3RyZWFtOwog
Ci0gICAgaWYgKG1fbG9jYWxTdHJlYW1MaXN0LT5jb250YWlucyhzdHJlYW0pKQorICAgIGlmICht
X2xvY2FsU3RyZWFtcy0+Y29udGFpbnMoc3RyZWFtKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
bV9sb2NhbFN0cmVhbUxpc3QtPmFkZChzdHJlYW0pOworICAgIG1fbG9jYWxTdHJlYW1zLT5hcHBl
bmQoc3RyZWFtKTsKIAotICAgIGlmIChtZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcigpKQotICAg
ICAgICBtZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcigpLT5hZGRTdHJlYW0obV9jbGllbnRJZCwg
c3RyZWFtKTsKKyAgICBzaXplX3QgaSA9IGZpbmRNZWRpYVN0cmVhbUluVmVjdG9yKG1fcGVuZGlu
Z1JlbW92ZVN0cmVhbXMsIHN0cmVhbS0+aWQoKSk7CisgICAgaWYgKGkgIT0gbm90Rm91bmQpIHsK
KyAgICAgICAgbV9wZW5kaW5nUmVtb3ZlU3RyZWFtcy5yZW1vdmUoaSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBtX3BlbmRpbmdBZGRTdHJlYW1zLmFwcGVuZChzdHJlYW0pOworICAg
IGlmIChtX2ljZVN0YXJ0ZWQpCisgICAgICAgIHNjaGVkdWxlU3RyZWFtQ2hhbmdlKCk7CiB9CiAK
LXZvaWQgUGVlckNvbm5lY3Rpb246OnJlbW92ZVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFt
PiBwcnBTdHJlYW0sIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBQZWVyQ29ubmVjdGlvbjo6cmVt
b3ZlU3RyZWFtKGNvbnN0IFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IHBycFN0cmVhbSwgRXhjZXB0
aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBDTE9TRUQpIHsKICAgICAg
ICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKQEAgLTE0MSwxMyArMTk5LDMwIEBAIHZvaWQgUGVl
ckNvbm5lY3Rpb246OnJlbW92ZVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBwcnBTdHJl
YW0sIEV4Y2VwdGlvbkNvCiAKICAgICBSZWZQdHI8TWVkaWFTdHJlYW0+IHN0cmVhbSA9IHBycFN0
cmVhbTsKIAotICAgIGlmICghbV9sb2NhbFN0cmVhbUxpc3QtPmNvbnRhaW5zKHN0cmVhbSkpCisg
ICAgaWYgKCFtX2xvY2FsU3RyZWFtcy0+Y29udGFpbnMoc3RyZWFtKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9sb2NhbFN0cmVhbXMtPnJlbW92ZShzdHJlYW0pOworCisgICAgc2l6ZV90IGkg
PSBmaW5kTWVkaWFTdHJlYW1JblZlY3RvcihtX3BlbmRpbmdBZGRTdHJlYW1zLCBzdHJlYW0tPmlk
KCkpOworICAgIGlmIChpICE9IG5vdEZvdW5kKSB7CisgICAgICAgIG1fcGVuZGluZ0FkZFN0cmVh
bXMucmVtb3ZlKGkpOwogICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9wZW5kaW5nUmVt
b3ZlU3RyZWFtcy5hcHBlbmQoc3RyZWFtKTsKKyAgICBpZiAobV9pY2VTdGFydGVkKQorICAgICAg
ICBzY2hlZHVsZVN0cmVhbUNoYW5nZSgpOworfQogCi0gICAgbV9sb2NhbFN0cmVhbUxpc3QtPnJl
bW92ZShzdHJlYW0pOworTWVkaWFTdHJlYW1MaXN0KiBQZWVyQ29ubmVjdGlvbjo6bG9jYWxTdHJl
YW1zKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9sb2NhbFN0cmVhbXMuZ2V0KCk7Cit9CiAKLSAg
ICBpZiAobWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIoKSkKLSAgICAgICAgbWVkaWFTdHJlYW1G
cmFtZUNvbnRyb2xsZXIoKS0+cmVtb3ZlU3RyZWFtKG1fY2xpZW50SWQsIHN0cmVhbSk7CitNZWRp
YVN0cmVhbUxpc3QqIFBlZXJDb25uZWN0aW9uOjpyZW1vdGVTdHJlYW1zKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9yZW1vdGVTdHJlYW1zLmdldCgpOwogfQogCiB2b2lkIFBlZXJDb25uZWN0aW9u
OjpjbG9zZShFeGNlcHRpb25Db2RlJiBlYykKQEAgLTE1Nyw1MCArMjMyLDUyIEBAIHZvaWQgUGVl
ckNvbm5lY3Rpb246OmNsb3NlKEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgaWYgKG1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKCkpCi0gICAgICAgIG1l
ZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKCktPmNsb3NlUGVlckNvbm5lY3Rpb24obV9jbGllbnRJ
ZCk7Ci0KLSAgICBtX3JlYWR5U3RhdGUgPSBDTE9TRUQ7CisgICAgc3RvcCgpOwogfQogCi12b2lk
IFBlZXJDb25uZWN0aW9uOjpvbk5lZ290aWF0aW9uU3RhcnRlZCgpCit2b2lkIFBlZXJDb25uZWN0
aW9uOjppY2VQcm9jZXNzaW5nQ29tcGxldGVkKCkKIHsKLSAgICBtX3JlYWR5U3RhdGUgPSBORUdP
VElBVElORzsKLQotICAgIHBvc3RTaW1wbGVFdmVudChldmVudE5hbWVzKCkuY29ubmVjdGluZ0V2
ZW50KTsKKyAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0NvbnRleHRUaHJl
YWQoKSk7CisgICAgY2hhbmdlUmVhZHlTdGF0ZShBQ1RJVkUpOwogfQogCi12b2lkIFBlZXJDb25u
ZWN0aW9uOjpvbk5lZ290aWF0aW9uRG9uZSgpCit2b2lkIFBlZXJDb25uZWN0aW9uOjpzZHBHZW5l
cmF0ZWQoY29uc3QgU3RyaW5nJiBzZHApCiB7Ci0gICAgbV9yZWFkeVN0YXRlID0gQUNUSVZFOwot
Ci0gICAgcG9zdFNpbXBsZUV2ZW50KGV2ZW50TmFtZXMoKS5vcGVuRXZlbnQpOworICAgIEFTU0VS
VChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzQ29udGV4dFRocmVhZCgpKTsKKyAgICBtX3Np
Z25hbGluZ0NhbGxiYWNrLT5oYW5kbGVFdmVudCgiU0RQXG4iICsgc2RwLCB0aGlzKTsKIH0KIAot
dm9pZCBQZWVyQ29ubmVjdGlvbjo6c3RyZWFtQWRkZWQoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4g
cHJwU3RyZWFtKQordm9pZCBQZWVyQ29ubmVjdGlvbjo6ZGF0YVN0cmVhbU1lc3NhZ2VSZWNlaXZl
ZChjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiB7Ci0gICAgUmVmUHRyPE1lZGlh
U3RyZWFtPiBzdHJlYW0gPSBwcnBTdHJlYW07Ci0gICAgbV9yZW1vdGVTdHJlYW1MaXN0LT5hZGQo
c3RyZWFtKTsKLSAgICBwb3N0U3RyZWFtQWRkZWRFdmVudChzdHJlYW0pOworICAgIEFTU0VSVChz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzQ29udGV4dFRocmVhZCgpKTsKKyAgICBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UgPSBTdHJpbmc6OmZyb21VVEY4KGRhdGEsIGxlbmd0aCk7CisgICAgZGlz
cGF0Y2hFdmVudChNZXNzYWdlRXZlbnQ6OmNyZWF0ZShQYXNzT3duUHRyPE1lc3NhZ2VQb3J0QXJy
YXk+KCksIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKG1lc3NhZ2UpKSk7CiB9CiAKLXZv
aWQgUGVlckNvbm5lY3Rpb246OnN0cmVhbVJlbW92ZWQoY29uc3QgU3RyaW5nJiBzdHJlYW1MYWJl
bCkKK3ZvaWQgUGVlckNvbm5lY3Rpb246OnJlbW90ZVN0cmVhbUFkZGVkKGNvbnN0IFN0cmluZyYg
c3RyZWFtSWQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IE1lZGlhU3RyZWFtQ29tcG9uZW50
TGlzdCYgY29tcG9uZW50cykKIHsKLSAgICBBU1NFUlQobV9yZW1vdGVTdHJlYW1MaXN0LT5jb250
YWlucyhzdHJlYW1MYWJlbCkpOworICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PmlzQ29udGV4dFRocmVhZCgpKTsKIAotICAgIFJlZlB0cjxNZWRpYVN0cmVhbT4gc3RyZWFtID0g
bV9yZW1vdGVTdHJlYW1MaXN0LT5nZXQoc3RyZWFtTGFiZWwpOwotICAgIG1fcmVtb3RlU3RyZWFt
TGlzdC0+cmVtb3ZlKHN0cmVhbSk7Ci0gICAgcG9zdFN0cmVhbVJlbW92ZWRFdmVudChzdHJlYW0p
OwotfQorICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gQ0xPU0VEKQorICAgICAgICByZXR1cm47CiAK
LXZvaWQgUGVlckNvbm5lY3Rpb246Om9uTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCi17
Ci0gICAgcG9zdE1lc3NhZ2VFdmVudChtZXNzYWdlKTsKKyAgICBSZWZQdHI8TWVkaWFTdHJlYW0+
IHN0cmVhbSA9IE1lZGlhU3RyZWFtOjpjcmVhdGUoc3RyZWFtSWQsIGxhYmVsLCBjb21wb25lbnRz
LCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIG1fcmVtb3RlU3RyZWFtcy0+YXBwZW5k
KHN0cmVhbSk7CisKKyAgICBkaXNwYXRjaEV2ZW50KE1lZGlhU3RyZWFtRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuYWRkc3RyZWFtRXZlbnQsIGZhbHNlLCBmYWxzZSwgc3RyZWFtKSk7CiB9CiAK
LXZvaWQgUGVlckNvbm5lY3Rpb246Om9uU2lnbmFsaW5nTWVzc2FnZShjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpCit2b2lkIFBlZXJDb25uZWN0aW9uOjpyZW1vdGVTdHJlYW1SZW1vdmVkKGNvbnN0IFN0
cmluZyYgc3RyZWFtSWQpCiB7Ci0gICAgcG9zdFNpZ25hbGluZ0V2ZW50KG1lc3NhZ2UpOworICAg
IEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzQ29udGV4dFRocmVhZCgpKTsKKwor
ICAgIG1lZGlhU3RyZWFtTWFuYWdlcigpLnN0cmVhbUVuZGVkKHN0cmVhbUlkKTsKKworICAgIGlm
IChtX3JlYWR5U3RhdGUgPT0gQ0xPU0VEKQorICAgICAgICByZXR1cm47CisKKyAgICBSZWZQdHI8
TWVkaWFTdHJlYW0+IHN0cmVhbSA9IG1fcmVtb3RlU3RyZWFtcy0+dGFrZShzdHJlYW1JZCk7Cisg
ICAgZGlzcGF0Y2hFdmVudChNZWRpYVN0cmVhbUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnJl
bW92ZXN0cmVhbUV2ZW50LCBmYWxzZSwgZmFsc2UsIHN0cmVhbSkpOwogfQogCiBQZWVyQ29ubmVj
dGlvbiogUGVlckNvbm5lY3Rpb246OnRvUGVlckNvbm5lY3Rpb24oKQpAQCAtMjEwLDcgKzI4Nywy
NSBAQCBQZWVyQ29ubmVjdGlvbiogUGVlckNvbm5lY3Rpb246OnRvUGVlckNvbm5lY3Rpb24oKQog
CiBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBQZWVyQ29ubmVjdGlvbjo6c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVy
KCkgPyBtZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcigpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgOiAwOworICAgIHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKTsKK30KKwordm9pZCBQZWVyQ29ubmVjdGlvbjo6c3RvcCgpCit7CisgICAgaWYgKG1fcmVh
ZHlTdGF0ZSA9PSBDTE9TRUQpCisgICAgICAgIHJldHVybjsKKworICAgIG1faW5pdGlhbE5lZ290
aWF0aW9uVGltZXIuc3RvcCgpOworICAgIG1fc3RyZWFtQ2hhbmdlVGltZXIuc3RvcCgpOworICAg
IG1fcmVhZHlTdGF0ZUNoYW5nZVRpbWVyLnN0b3AoKTsKKworICAgIGlmIChtX3BlZXJIYW5kbGVy
KQorICAgICAgICBtX3BlZXJIYW5kbGVyLT5zdG9wKCk7CisKKyAgICB1bnNldFBlbmRpbmdBY3Rp
dml0eSh0aGlzKTsKKyAgICBtX3BlZXJIYW5kbGVyLmNsZWFyKCk7CisKKyAgICBtX3JlYWR5U3Rh
dGUgPSBDTE9TRUQ7CiB9CiAKIEV2ZW50VGFyZ2V0RGF0YSogUGVlckNvbm5lY3Rpb246OmV2ZW50
VGFyZ2V0RGF0YSgpCkBAIC0yMjMsODggKzMxOCw4NCBAQCBFdmVudFRhcmdldERhdGEqIFBlZXJD
b25uZWN0aW9uOjplbnN1cmVFdmVudFRhcmdldERhdGEoKQogICAgIHJldHVybiAmbV9ldmVudFRh
cmdldERhdGE7CiB9CiAKLXZvaWQgUGVlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlRXZlbnQoY29u
c3QgU3RyaW5nJiBtZXNzYWdlKQordm9pZCBQZWVyQ29ubmVjdGlvbjo6c2NoZWR1bGVJbml0aWFs
TmVnb3RpYXRpb24oKQogewotICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGRhdGEg
PSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShtZXNzYWdlKTsKLQotICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAg
aWYgKCFjb250ZXh0KQotICAgICAgICByZXR1cm47Ci0gICAgQVNTRVJUKGNvbnRleHQtPmlzQ29u
dGV4dFRocmVhZCgpKTsKLSAgICBjb250ZXh0LT5wb3N0VGFzayhEaXNwYXRjaFRhc2s8UGVlckNv
bm5lY3Rpb24sIGludCwgU2VyaWFsaXplZFNjcmlwdFZhbHVlPjo6Y3JlYXRlKHRoaXMsICZQZWVy
Q29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlRXZlbnQsIDAsIGRhdGEucmVsZWFzZSgpKSk7Cisg
ICAgaWYgKCFtX2luaXRpYWxOZWdvdGlhdGlvblRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1f
aW5pdGlhbE5lZ290aWF0aW9uVGltZXIuc3RhcnRPbmVTaG90KDApOwogfQogCi12b2lkIFBlZXJD
b25uZWN0aW9uOjpwb3N0U2lnbmFsaW5nRXZlbnQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQordm9p
ZCBQZWVyQ29ubmVjdGlvbjo6aW5pdGlhbE5lZ290aWF0aW9uVGltZXJGaXJlZChUaW1lcjxQZWVy
Q29ubmVjdGlvbj4qKQogewotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAgaWYgKCFjb250ZXh0KQorICAgIGlmIChtX2lj
ZVN0YXJ0ZWQpCiAgICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQoY29udGV4dC0+aXNDb250ZXh0
VGhyZWFkKCkpOwotICAgIGNvbnRleHQtPnBvc3RUYXNrKFNpbXBsZURpc3BhdGNoVGFzazxQZWVy
Q29ubmVjdGlvbiwgU3RyaW5nPjo6Y3JlYXRlKHRoaXMsICZQZWVyQ29ubmVjdGlvbjo6ZGlzcGF0
Y2hTaWduYWxpbmdFdmVudCwgbWVzc2FnZSkpOwotfQogCi12b2lkIFBlZXJDb25uZWN0aW9uOjpw
b3N0U3RyZWFtQWRkZWRFdmVudChQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBwcnBTdHJlYW0pCi17
Ci0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKLSAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQo
Y29udGV4dC0+aXNDb250ZXh0VGhyZWFkKCkpOwotICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+cG9zdFRhc2soRGlzcGF0Y2hUYXNrPFBlZXJDb25uZWN0aW9uLCBTdHJpbmcsIE1lZGlhU3Ry
ZWFtPjo6Y3JlYXRlKHRoaXMsICZQZWVyQ29ubmVjdGlvbjo6ZGlzcGF0Y2hTdHJlYW1FdmVudCwg
ZXZlbnROYW1lcygpLmFkZHN0cmVhbUV2ZW50LCBwcnBTdHJlYW0pKTsKLX0KKyAgICBWZWN0b3I8
UmVmUHRyPE1lZGlhU3RyZWFtPiA+IHBlbmRpbmdTdHJlYW1zOworICAgIG1fcGVuZGluZ0FkZFN0
cmVhbXMuc3dhcChwZW5kaW5nU3RyZWFtcyk7CisgICAgaWYgKG1fcGVlckhhbmRsZXIpCisgICAg
ICAgIG1fcGVlckhhbmRsZXItPnByb2R1Y2VJbml0aWFsT2ZmZXIocGVuZGluZ1N0cmVhbXMpOwog
Ci12b2lkIFBlZXJDb25uZWN0aW9uOjpwb3N0U3RyZWFtUmVtb3ZlZEV2ZW50KFBhc3NSZWZQdHI8
TWVkaWFTdHJlYW0+IHBycFN0cmVhbSkKLXsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAgIGlmICghY29udGV4dCkKLSAg
ICAgICAgcmV0dXJuOwotICAgIEFTU0VSVChjb250ZXh0LT5pc0NvbnRleHRUaHJlYWQoKSk7Ci0g
ICAgY29udGV4dC0+cG9zdFRhc2soRGlzcGF0Y2hUYXNrPFBlZXJDb25uZWN0aW9uLCBTdHJpbmcs
IE1lZGlhU3RyZWFtPjo6Y3JlYXRlKHRoaXMsICZQZWVyQ29ubmVjdGlvbjo6ZGlzcGF0Y2hTdHJl
YW1FdmVudCwgZXZlbnROYW1lcygpLnJlbW92ZXN0cmVhbUV2ZW50LCBwcnBTdHJlYW0pKTsKLX0K
KyAgICBtX2ljZVN0YXJ0ZWQgPSB0cnVlOwogCi12b2lkIFBlZXJDb25uZWN0aW9uOjpwb3N0U2lt
cGxlRXZlbnQoY29uc3QgU3RyaW5nJiBldmVudE5hbWUpCi17Ci0gICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBpZiAoIWNv
bnRleHQpCi0gICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQoY29udGV4dC0+aXNDb250ZXh0VGhy
ZWFkKCkpOwotICAgIGNvbnRleHQtPnBvc3RUYXNrKFNpbXBsZURpc3BhdGNoVGFzazxQZWVyQ29u
bmVjdGlvbiwgU3RyaW5nPjo6Y3JlYXRlKHRoaXMsICZQZWVyQ29ubmVjdGlvbjo6ZGlzcGF0Y2hT
aW1wbGVFdmVudCwgZXZlbnROYW1lKSk7CisgICAgY2hhbmdlUmVhZHlTdGF0ZShORUdPVElBVElO
Ryk7CiB9CiAKLXZvaWQgUGVlckNvbm5lY3Rpb246OnBvc3RTdGFydE5lZ290aWF0aW9uVGFzaygp
Cit2b2lkIFBlZXJDb25uZWN0aW9uOjpzY2hlZHVsZVN0cmVhbUNoYW5nZSgpCiB7Ci0gICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsK
LSAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQoY29udGV4dC0+
aXNDb250ZXh0VGhyZWFkKCkpOwotICAgIGNvbnRleHQtPnBvc3RUYXNrKFNpbXBsZURpc3BhdGNo
VGFzazxQZWVyQ29ubmVjdGlvbiwgaW50Pjo6Y3JlYXRlKHRoaXMsICZQZWVyQ29ubmVjdGlvbjo6
ZGlzcGF0Y2hTdGFydE5lZ290aWF0aW9uVGFzaywgMCkpOworICAgIGlmICghbV9zdHJlYW1DaGFu
Z2VUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX3N0cmVhbUNoYW5nZVRpbWVyLnN0YXJ0T25l
U2hvdCgwKTsKIH0KIAotdm9pZCBQZWVyQ29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlRXZlbnQo
Y29uc3QgaW50JiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGRhdGEpCit2b2lk
IFBlZXJDb25uZWN0aW9uOjpzdHJlYW1DaGFuZ2VUaW1lckZpcmVkKFRpbWVyPFBlZXJDb25uZWN0
aW9uPiopCiB7Ci0gICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gZCA9IGRhdGE7Ci0g
ICAgZGlzcGF0Y2hFdmVudChNZXNzYWdlRXZlbnQ6OmNyZWF0ZShQYXNzT3duUHRyPE1lc3NhZ2VQ
b3J0QXJyYXk+KCksIGQpKTsKLX0KKyAgICBpZiAoIW1fcGVuZGluZ0FkZFN0cmVhbXMuaXNFbXB0
eSgpKSB7CisgICAgICAgIFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW0+ID4gcGVuZGluZ1N0cmVh
bXM7CisgICAgICAgIG1fcGVuZGluZ0FkZFN0cmVhbXMuc3dhcChwZW5kaW5nU3RyZWFtcyk7Cisg
ICAgICAgIGlmIChtX3BlZXJIYW5kbGVyKQorICAgICAgICAgICAgbV9wZWVySGFuZGxlci0+YWRk
UGVuZGluZ1N0cmVhbXMocGVuZGluZ1N0cmVhbXMpOwogCi12b2lkIFBlZXJDb25uZWN0aW9uOjpk
aXNwYXRjaFNpZ25hbGluZ0V2ZW50KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKLXsKLSAgICBtX3Np
Z25hbGluZ0NhbGxiYWNrLT5oYW5kbGVFdmVudChtZXNzYWdlLCB0aGlzKTsKKyAgICAgICAgY2hh
bmdlUmVhZHlTdGF0ZShORUdPVElBVElORyk7CisgICAgfQorICAgIGlmICghbV9wZW5kaW5nUmVt
b3ZlU3RyZWFtcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVh
bT4gPiBwZW5kaW5nU3RyZWFtczsKKyAgICAgICAgbV9wZW5kaW5nUmVtb3ZlU3RyZWFtcy5zd2Fw
KHBlbmRpbmdTdHJlYW1zKTsKKyAgICAgICAgaWYgKG1fcGVlckhhbmRsZXIpCisgICAgICAgICAg
ICBtX3BlZXJIYW5kbGVyLT5yZW1vdmVQZW5kaW5nU3RyZWFtcyhwZW5kaW5nU3RyZWFtcyk7Cisg
ICAgfQogfQogCi12b2lkIFBlZXJDb25uZWN0aW9uOjpkaXNwYXRjaFN0cmVhbUV2ZW50KGNvbnN0
IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gc3RyZWFtKQordm9pZCBQZWVy
Q29ubmVjdGlvbjo6c2NoZWR1bGVSZWFkeVN0YXRlQ2hhbmdlKFJlYWR5U3RhdGUgcmVhZHlTdGF0
ZSkKIHsKLSAgICBSZWZQdHI8TWVkaWFTdHJlYW0+IHMgPSBzdHJlYW07Ci0gICAgZGlzcGF0Y2hF
dmVudChNZWRpYVN0cmVhbUV2ZW50OjpjcmVhdGUobmFtZSwgZmFsc2UsIGZhbHNlLCBzKSk7Cisg
ICAgbV9wZW5kaW5nUmVhZHlTdGF0ZXMuYXBwZW5kKHJlYWR5U3RhdGUpOworICAgIGlmICghbV9y
ZWFkeVN0YXRlQ2hhbmdlVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9yZWFkeVN0YXRlQ2hh
bmdlVGltZXIuc3RhcnRPbmVTaG90KDApOwogfQogCi12b2lkIFBlZXJDb25uZWN0aW9uOjpkaXNw
YXRjaFNpbXBsZUV2ZW50KGNvbnN0IFN0cmluZyYgZXZlbnROYW1lKQordm9pZCBQZWVyQ29ubmVj
dGlvbjo6cmVhZHlTdGF0ZUNoYW5nZVRpbWVyRmlyZWQoVGltZXI8UGVlckNvbm5lY3Rpb24+KikK
IHsKLSAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lLCBmYWxzZSwgZmFs
c2UpKTsKKyAgICBWZWN0b3I8UmVhZHlTdGF0ZT4gcGVuZGluZ1JlYWR5U3RhdGVzOworICAgIG1f
cGVuZGluZ1JlYWR5U3RhdGVzLnN3YXAocGVuZGluZ1JlYWR5U3RhdGVzKTsKKworICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgcGVuZGluZ1JlYWR5U3RhdGVzLnNpemUoKTsgaSsrKQorICAgICAg
ICBjaGFuZ2VSZWFkeVN0YXRlKHBlbmRpbmdSZWFkeVN0YXRlc1tpXSk7CiB9CiAKLXZvaWQgUGVl
ckNvbm5lY3Rpb246OmRpc3BhdGNoU3RhcnROZWdvdGlhdGlvblRhc2soY29uc3QgaW50JikKK3Zv
aWQgUGVlckNvbm5lY3Rpb246OmNoYW5nZVJlYWR5U3RhdGUoUmVhZHlTdGF0ZSByZWFkeVN0YXRl
KQogewotICAgIGlmIChtZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlcigpKQotICAgICAgICBtZWRp
YVN0cmVhbUZyYW1lQ29udHJvbGxlcigpLT5zdGFydE5lZ290aWF0aW9uKG1fY2xpZW50SWQpOwor
ICAgIGlmIChyZWFkeVN0YXRlID09IG1fcmVhZHlTdGF0ZSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9yZWFkeVN0YXRlID0gcmVhZHlTdGF0ZTsKKworICAgIHN3aXRjaCAobV9yZWFkeVN0YXRl
KSB7CisgICAgY2FzZSBORUdPVElBVElORzoKKyAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS5jb25uZWN0aW5nRXZlbnQsIGZhbHNlLCBmYWxzZSkpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEFDVElWRToKKyAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5vcGVuRXZlbnQsIGZhbHNlLCBmYWxzZSkpOworICAgICAg
ICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICB9CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL21hc3RlcjpTb3Vy
Y2UvV2ViQ29yZS9wMnAvUGVlckNvbm5lY3Rpb24uaCBiL0hFQUQ6U291cmNlL1dlYkNvcmUvbWVk
aWFzdHJlYW0vUGVlckNvbm5lY3Rpb24uaAppbmRleCAxOGQxNjViLi4xNjUwMjIzIDEwMDY0NAot
LS0gYS9tYXN0ZXI6U291cmNlL1dlYkNvcmUvcDJwL1BlZXJDb25uZWN0aW9uLmgKKysrIGIvSEVB
RDpTb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbi5oCkBAIC0xLDUgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw0MSArMjgsNDAg
QEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNpbmNsdWRlICJBY3RpdmVET01PYmpl
Y3QuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtRnJh
bWVDb250cm9sbGVyLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlICJF
eGNlcHRpb25CYXNlLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJlYW0uaCIKKyNpbmNsdWRlICJNZWRp
YVN0cmVhbUxpc3QuaCIKKyNpbmNsdWRlICJQZWVyQ29ubmVjdGlvblNpZ25hbGluZ0NhbGxiYWNr
LmgiCisjaW5jbHVkZSAiUGVlckhhbmRsZXIuaCIKKyNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLWNsYXNzIE1lZGlhU3RyZWFtOwotY2xhc3MgTWVkaWFTdHJlYW1MaXN0
OwotY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKLWNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTsKLWNsYXNzIFNpZ25hbGluZ0NhbGxiYWNrOwotCi1jbGFzcyBQZWVyQ29ubmVjdGlvbiA6
IHB1YmxpYyBSZWZDb3VudGVkPFBlZXJDb25uZWN0aW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0LCBw
dWJsaWMgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXI6OlBlZXJDb25uZWN0aW9uQ2xpZW50IHsK
K2NsYXNzIFBlZXJDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8UGVlckNvbm5lY3Rpb24+
LCBwdWJsaWMgUGVlckhhbmRsZXJDbGllbnQsIHB1YmxpYyBFdmVudFRhcmdldCwgcHVibGljIEFj
dGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UGVlckNvbm5l
Y3Rpb24+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHNlcnZlckNvbmZpZ3VyYXRpb24sIFBhc3NSZWZQ
dHI8UGVlckNvbm5lY3Rpb25TaWduYWxpbmdDYWxsYmFjaz4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqKTsKKyAgICB+UGVlckNvbm5lY3Rpb24oKTsKKworICAgIHZvaWQgcHJvY2Vzc1NpZ25hbGlu
Z01lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFeGNlcHRpb25Db2RlJik7CisKICAgICAv
LyBOYW1lIGFuZCB2YWx1ZXMgb2YgdGhlIGVudW0gbXVzdCBtYXRjaCB0aGUgY29ycmVzc3BvbmRp
bmcgY29uc3RhbnRzIGluIHRoZSAuaWRsIGZpbGUuCi0gICAgZW51bSB7CisgICAgZW51bSBSZWFk
eVN0YXRlIHsKICAgICAgICAgTkVXID0gMCwKICAgICAgICAgTkVHT1RJQVRJTkcgPSAxLAogICAg
ICAgICBBQ1RJVkUgPSAyLAogICAgICAgICBDTE9TRUQgPSAzCiAgICAgfTsKIAotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFBlZXJDb25uZWN0aW9uPiBjcmVhdGUoTWVkaWFTdHJlYW1GcmFtZUNvbnRy
b2xsZXIqLCBpbnQgaWQsIGNvbnN0IFN0cmluZyYgY29uZmlndXJhdGlvbiwgUGFzc1JlZlB0cjxT
aWduYWxpbmdDYWxsYmFjaz4pOwotICAgIHZpcnR1YWwgflBlZXJDb25uZWN0aW9uKCk7CisgICAg
UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Q7CiAKLSAgICBNZWRpYVN0cmVhbUxpc3QqIGxv
Y2FsU3RyZWFtcygpOwotICAgIE1lZGlhU3RyZWFtTGlzdCogcmVtb3RlU3RyZWFtcygpOwotCi0g
ICAgdW5zaWduZWQgc2hvcnQgcmVhZHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhZHlTdGF0
ZTsgfQotCi0gICAgdm9pZCBwcm9jZXNzU2lnbmFsaW5nTWVzc2FnZShjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNlbmQoY29uc3QgU3RyaW5nJiB0ZXh0
LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBhZGRTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0
cmVhbT4sIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHJlbW92ZVN0cmVhbShQYXNzUmVmUHRy
PE1lZGlhU3RyZWFtPiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgYWRkU3RyZWFtKGNvbnN0
IFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+LCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCByZW1v
dmVTdHJlYW0oY29uc3QgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4sIEV4Y2VwdGlvbkNvZGUmKTsK
KyAgICBNZWRpYVN0cmVhbUxpc3QqIGxvY2FsU3RyZWFtcygpIGNvbnN0OworICAgIE1lZGlhU3Ry
ZWFtTGlzdCogcmVtb3RlU3RyZWFtcygpIGNvbnN0OwogICAgIHZvaWQgY2xvc2UoRXhjZXB0aW9u
Q29kZSYpOwogCiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihjb25uZWN0aW5n
KTsKQEAgLTcwLDU4ICs3MCw2NyBAQCBwdWJsaWM6CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVO
VF9MSVNURU5FUihhZGRzdHJlYW0pOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVO
RVIocmVtb3Zlc3RyZWFtKTsKIAorICAgIC8vIFBlZXJIYW5kbGVyQ2xpZW50CisgICAgdmlydHVh
bCB2b2lkIGljZVByb2Nlc3NpbmdDb21wbGV0ZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2RwR2Vu
ZXJhdGVkKGNvbnN0IFN0cmluZyYgc2RwKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGF0YVN0cmVhbU1l
c3NhZ2VSZWNlaXZlZChjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpOworICAgIHZp
cnR1YWwgdm9pZCByZW1vdGVTdHJlYW1BZGRlZChjb25zdCBTdHJpbmcmIHN0cmVhbUlkLCBjb25z
dCBTdHJpbmcmIGxhYmVsLCBjb25zdCBNZWRpYVN0cmVhbUNvbXBvbmVudExpc3QmKTsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVtb3RlU3RyZWFtUmVtb3ZlZChjb25zdCBTdHJpbmcmIHN0cmVhbUlkKTsK
KwogICAgIC8vIEV2ZW50VGFyZ2V0CiAgICAgdmlydHVhbCBQZWVyQ29ubmVjdGlvbiogdG9QZWVy
Q29ubmVjdGlvbigpOwogCiAgICAgLy8gRXZlbnRUYXJnZXQgaW1wbGVtZW50YXRpb24uCiAgICAg
dmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkg
Y29uc3Q7CiAKLSAgICAvLyBDYWxsYmFja3MKLSAgICB2b2lkIG9uTWVzc2FnZShjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpOwotICAgIHZvaWQgb25TaWduYWxpbmdNZXNzYWdlKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSk7Ci0gICAgdm9pZCBvbk5lZ290aWF0aW9uU3RhcnRlZCgpOwotICAgIHZvaWQgb25O
ZWdvdGlhdGlvbkRvbmUoKTsKLSAgICB2b2lkIHN0cmVhbUFkZGVkKFBhc3NSZWZQdHI8TWVkaWFT
dHJlYW0+KTsKLSAgICB2b2lkIHN0cmVhbVJlbW92ZWQoY29uc3QgU3RyaW5nJiBzdHJlYW1MYWJl
bCk7CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0CisgICAgdmlydHVhbCB2b2lkIHN0b3AoKTsKIAog
ICAgIHVzaW5nIFJlZkNvdW50ZWQ8UGVlckNvbm5lY3Rpb24+OjpyZWY7CiAgICAgdXNpbmcgUmVm
Q291bnRlZDxQZWVyQ29ubmVjdGlvbj46OmRlcmVmOwogCi1wcm90ZWN0ZWQ6Ci0gICAgLy8gRXZl
bnRUYXJnZXQgaW1wbGVtZW50YXRpb24uCi0gICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGV2
ZW50VGFyZ2V0RGF0YSgpOwotICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBlbnN1cmVFdmVu
dFRhcmdldERhdGEoKTsKLQogcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGtNYXhN
ZXNzYWdlVVRGOExlbmd0aCA9IDUwNDsKIAotICAgIFBlZXJDb25uZWN0aW9uKE1lZGlhU3RyZWFt
RnJhbWVDb250cm9sbGVyKiwgaW50IGlkLCBjb25zdCBTdHJpbmcmIGNvbmZpZ3VyYXRpb24sIFBh
c3NSZWZQdHI8U2lnbmFsaW5nQ2FsbGJhY2s+KTsKLSAgICB2b2lkIGluaXQoKTsKKyAgICBQZWVy
Q29ubmVjdGlvbihjb25zdCBTdHJpbmcmIHNlcnZlckNvbmZpZ3VyYXRpb24sIFBhc3NSZWZQdHI8
UGVlckNvbm5lY3Rpb25TaWduYWxpbmdDYWxsYmFjaz4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
KTsKIAotICAgIHZvaWQgcG9zdFNpbXBsZUV2ZW50KGNvbnN0IFN0cmluZyYgZXZlbnROYW1lKTsK
LSAgICB2b2lkIHBvc3RNZXNzYWdlRXZlbnQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKLSAgICB2
b2lkIHBvc3RTaWduYWxpbmdFdmVudChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwotICAgIHZvaWQg
cG9zdFN0cmVhbUFkZGVkRXZlbnQoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4pOwotICAgIHZvaWQg
cG9zdFN0cmVhbVJlbW92ZWRFdmVudChQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPik7Ci0gICAgdm9p
ZCBwb3N0U3RhcnROZWdvdGlhdGlvblRhc2soKTsKLQotICAgIHZvaWQgZGlzcGF0Y2hTaW1wbGVF
dmVudChjb25zdCBTdHJpbmcmIGV2ZW50TmFtZSk7Ci0gICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VF
dmVudChjb25zdCBpbnQmLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gZGF0YSk7
Ci0gICAgdm9pZCBkaXNwYXRjaFNpZ25hbGluZ0V2ZW50KGNvbnN0IFN0cmluZyYgZXZlbnROYW1l
KTsKLSAgICB2b2lkIGRpc3BhdGNoU3RyZWFtRXZlbnQoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNz
UmVmUHRyPE1lZGlhU3RyZWFtPik7Ci0gICAgdm9pZCBkaXNwYXRjaFN0YXJ0TmVnb3RpYXRpb25U
YXNrKGNvbnN0IGludCYpOworICAgIFBhc3NSZWZQdHI8UGVlckhhbmRsZXJDb25maWd1cmF0aW9u
PiBwYXJzZVNlcnZlckNvbmZpZ3VyYXRpb24oY29uc3QgU3RyaW5nJiBzZXJ2ZXJDb25maWd1cmF0
aW9uKTsKIAogICAgIC8vIEV2ZW50VGFyZ2V0IGltcGxlbWVudGF0aW9uLgorICAgIHZpcnR1YWwg
RXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKTsKKyAgICB2aXJ0dWFsIEV2ZW50VGFy
Z2V0RGF0YSogZW5zdXJlRXZlbnRUYXJnZXREYXRhKCk7CiAgICAgdmlydHVhbCB2b2lkIHJlZkV2
ZW50VGFyZ2V0KCkgeyByZWYoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0
KCkgeyBkZXJlZigpOyB9CiAKKyAgICB2b2lkIHNjaGVkdWxlSW5pdGlhbE5lZ290aWF0aW9uKCk7
CisgICAgdm9pZCBpbml0aWFsTmVnb3RpYXRpb25UaW1lckZpcmVkKFRpbWVyPFBlZXJDb25uZWN0
aW9uPiopOworICAgIHZvaWQgc2NoZWR1bGVTdHJlYW1DaGFuZ2UoKTsKKyAgICB2b2lkIHN0cmVh
bUNoYW5nZVRpbWVyRmlyZWQoVGltZXI8UGVlckNvbm5lY3Rpb24+Kik7CisgICAgdm9pZCBzY2hl
ZHVsZVJlYWR5U3RhdGVDaGFuZ2UoUmVhZHlTdGF0ZSk7CisgICAgdm9pZCByZWFkeVN0YXRlQ2hh
bmdlVGltZXJGaXJlZChUaW1lcjxQZWVyQ29ubmVjdGlvbj4qKTsKKworICAgIHZvaWQgY2hhbmdl
UmVhZHlTdGF0ZShSZWFkeVN0YXRlKTsKKworICAgIFJlZlB0cjxQZWVyQ29ubmVjdGlvblNpZ25h
bGluZ0NhbGxiYWNrPiBtX3NpZ25hbGluZ0NhbGxiYWNrOworCisgICAgUmVhZHlTdGF0ZSBtX3Jl
YWR5U3RhdGU7CisgICAgYm9vbCBtX2ljZVN0YXJ0ZWQ7CisKKyAgICBSZWZQdHI8TWVkaWFTdHJl
YW1MaXN0PiBtX2xvY2FsU3RyZWFtczsKKyAgICBSZWZQdHI8TWVkaWFTdHJlYW1MaXN0PiBtX3Jl
bW90ZVN0cmVhbXM7CisKKyAgICAvLyBFdmVudFRhcmdldCBpbXBsZW1lbnRhdGlvbi4KICAgICBF
dmVudFRhcmdldERhdGEgbV9ldmVudFRhcmdldERhdGE7CiAKLSAgICBTdHJpbmcgbV9jb25maWd1
cmF0aW9uOwotICAgIHVuc2lnbmVkIHNob3J0IG1fcmVhZHlTdGF0ZTsKLSAgICBSZWZQdHI8U2ln
bmFsaW5nQ2FsbGJhY2s+IG1fc2lnbmFsaW5nQ2FsbGJhY2s7Ci0gICAgUmVmUHRyPE1lZGlhU3Ry
ZWFtTGlzdD4gbV9sb2NhbFN0cmVhbUxpc3Q7Ci0gICAgUmVmUHRyPE1lZGlhU3RyZWFtTGlzdD4g
bV9yZW1vdGVTdHJlYW1MaXN0OworICAgIFRpbWVyPFBlZXJDb25uZWN0aW9uPiBtX2luaXRpYWxO
ZWdvdGlhdGlvblRpbWVyOworICAgIFRpbWVyPFBlZXJDb25uZWN0aW9uPiBtX3N0cmVhbUNoYW5n
ZVRpbWVyOworICAgIFRpbWVyPFBlZXJDb25uZWN0aW9uPiBtX3JlYWR5U3RhdGVDaGFuZ2VUaW1l
cjsKKworICAgIFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW0+ID4gbV9wZW5kaW5nQWRkU3RyZWFt
czsKKyAgICBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtPiA+IG1fcGVuZGluZ1JlbW92ZVN0cmVh
bXM7CisgICAgVmVjdG9yPFJlYWR5U3RhdGU+IG1fcGVuZGluZ1JlYWR5U3RhdGVzOworCisgICAg
T3duUHRyPFBlZXJIYW5kbGVyPiBtX3BlZXJIYW5kbGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvbWFzdGVyOlNvdXJjZS9XZWJDb3JlL3AycC9QZWVyQ29ubmVj
dGlvbi5pZGwgYi9IRUFEOlNvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9u
LmlkbAppbmRleCBmYzlhMTlkLi5mZTFhNTMwIDEwMDY0NAotLS0gYS9tYXN0ZXI6U291cmNlL1dl
YkNvcmUvcDJwL1BlZXJDb25uZWN0aW9uLmlkbAorKysgYi9IRUFEOlNvdXJjZS9XZWJDb3JlL21l
ZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uLmlkbApAQCAtMjIsNyArMjIsNyBAQAogICogU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
Ki8KIAotbW9kdWxlIHAycCB7Cittb2R1bGUgY29yZSB7CiAKICAgICBpbnRlcmZhY2UgWwogICAg
ICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCmRpZmYgLS1naXQgYS9tYXN0ZXI6U291cmNl
L1dlYkNvcmUvcDJwL1NpZ25hbGluZ0NhbGxiYWNrLmggYi9IRUFEOlNvdXJjZS9XZWJDb3JlL21l
ZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uU2lnbmFsaW5nQ2FsbGJhY2suaAppbmRleCBhNGEzMGU3
Li4wM2M5NWNjIDEwMDY0NAotLS0gYS9tYXN0ZXI6U291cmNlL1dlYkNvcmUvcDJwL1NpZ25hbGlu
Z0NhbGxiYWNrLmgKKysrIGIvSEVBRDpTb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9QZWVyQ29u
bmVjdGlvblNpZ25hbGluZ0NhbGxiYWNrLmgKQEAgLTIyLDggKzIyLDggQEAKICAqIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CiAKLSNpZm5kZWYgU2lnbmFsaW5nQ2FsbGJhY2tfaAotI2RlZmluZSBTaWduYWxpbmdDYWxsYmFj
a19oCisjaWZuZGVmIFBlZXJDb25uZWN0aW9uU2lnbmFsaW5nQ2FsbGJhY2tfaAorI2RlZmluZSBQ
ZWVyQ29ubmVjdGlvblNpZ25hbGluZ0NhbGxiYWNrX2gKIAogI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCiAKQEAgLTMzLDE0ICszMywxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFBl
ZXJDb25uZWN0aW9uOwogCi1jbGFzcyBTaWduYWxpbmdDYWxsYmFjayA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFNpZ25hbGluZ0NhbGxiYWNrPiB7CitjbGFzcyBQZWVyQ29ubmVjdGlvblNpZ25hbGluZ0Nh
bGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8UGVlckNvbm5lY3Rpb25TaWduYWxpbmdDYWxsYmFj
az4gewogcHVibGljOgotICAgIHZpcnR1YWwgflNpZ25hbGluZ0NhbGxiYWNrKCkgeyB9Ci0gICAg
dmlydHVhbCBib29sIGhhbmRsZUV2ZW50KGNvbnN0IFN0cmluZyYsIFBlZXJDb25uZWN0aW9uKikg
PSAwOworICAgIHZpcnR1YWwgflBlZXJDb25uZWN0aW9uU2lnbmFsaW5nQ2FsbGJhY2soKSB7IH0K
KworICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBl
ZXJDb25uZWN0aW9uKiBzb3VyY2UpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKLSNlbmRpZiAvLyBTaWduYWxpbmdD
YWxsYmFja19oCisjZW5kaWYgLy8gUGVlckNvbm5lY3Rpb25TaWduYWxpbmdDYWxsYmFja19oCmRp
ZmYgLS1naXQgYS9tYXN0ZXI6U291cmNlL1dlYkNvcmUvcDJwL1NpZ25hbGluZ0NhbGxiYWNrLmlk
bCBiL0hFQUQ6U291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25TaWduYWxp
bmdDYWxsYmFjay5pZGwKaW5kZXggMGQzMmZjZi4uNjlhOWE0YSAxMDA2NDQKLS0tIGEvbWFzdGVy
OlNvdXJjZS9XZWJDb3JlL3AycC9TaWduYWxpbmdDYWxsYmFjay5pZGwKKysrIGIvSEVBRDpTb3Vy
Y2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvblNpZ25hbGluZ0NhbGxiYWNrLmlk
bApAQCAtMjIsMTIgKzIyLDEyIEBACiAgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1tb2R1bGUgcDJwIHsKK21vZHVs
ZSBjb3JlIHsKIAogICAgIGludGVyZmFjZSBbCiAgICAgICAgIENvbmRpdGlvbmFsPU1FRElBX1NU
UkVBTSwKICAgICAgICAgQ2FsbGJhY2s9RnVuY3Rpb25Pbmx5Ci0gICAgXSBTaWduYWxpbmdDYWxs
YmFjayB7CisgICAgXSBQZWVyQ29ubmVjdGlvblNpZ25hbGluZ0NhbGxiYWNrIHsKICAgICAgICAg
Ym9vbGVhbiBoYW5kbGVFdmVudChpbiBET01TdHJpbmcgbWVzc2FnZSwgaW4gUGVlckNvbm5lY3Rp
b24gc291cmNlKTsKICAgICB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>107176</attachid>
            <date>2011-09-13 07:47:34 -0700</date>
            <delta_ts>2011-09-13 07:47:34 -0700</delta_ts>
            <desc>design diagram</desc>
            <filename>mediastream_webcore_platform_design.png</filename>
            <type>image/png</type>
            <size>314840</size>
            <attacher name="Adam Bergkvist">adam.bergkvist</attacher>
            
              <data encoding="base64">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
W/ciUFjlVFYnfbbPFxztpeN6cupoPxPRbKYmy6loOZ6XVctcc1RJbZ/mNaeGdna7b62cHFmai6e1
d6n6k9p2Klrus2e+4LbxSupZ7ZibWrtiMTfNoPtDcvvNchw9y8c1lz+V5TiyCskBRw/u/5tsWPtH
OS+l9HTJ6xfH0Z6qOphg+W0TuX8HsUtaeW0vEALAzffTn/5UhUJBX/3qV/WVr3xF3/72t/XDH/5Q
//3f/60HDx7oz//8z3V6eqqZmZlphwrgtnmDx5yjnGQNravSeW5+tnSoh7lG6PPdsao7Lhl3/3zB
0ZP+p03MWu0a60gWesdjjqM9Mzf+vWSXtGvlO2VYjqNtb2i3VqtoWWnt+fY9OtzsSfqYxLimzU04
cctr/7uEDnd1Iu9anuY1dw3/LnGd46pJ9o8f/24zWphx+W32dn9/PtW3ZmaUKD6/3iAAAAAAAAAA
AAAAICQSwIAbrj2LcO9My74Xe/zJEwMSKPwzEW/Vu7Mdt8trz9obnPn6MuWbqZRW2sd45+40qlrv
M8v3uH1wofwQ8Y3sv3RFT6wj92+7pF1t6pG/gFHtD+wPtm3UTMfB2dSHvURXLla1vNib/PTW3x8j
+t/VnjW8/wtxwZmsg6us9c5G3y2j0z/ZbN/9r6X9AfMFp/sSXojyR90/w+7fcO1v9703a3cpe6Gs
k92cYhXvRc9rf4EQAG6eV69e6Z/+6Z/0+PFj/fqv/7pM09Sf/dmf6cc//rF+8Rd/UV//+tf1V3/1
V/rXf/1X/cM//IM2Nzf1q7/6q9MOGzfQixcv9N577+n+/fvTDgW31KDn1lDjAo1+rh66/yrjilH7
7ZJ2VemZSKKdcNBOQBpnXHZpLX8bB6xoNKT+Uf3b1rNCU8/z+fBx0TjmN/JSs9XdMOL6nWQNmYmc
zhq50KtHPViSnrc0kXFNMM6Hh0uynILmfbseLUnrg1abHnJ9gitk9Rwb+AwNvrdGjJuG3R8hx5WD
xrVj9d8Q/LtNl39czvfnhLym709J+tGPfqSZmRnNzHxLT/VIf/nqlZYPYpqZSYg8MAAAAAAAAAAA
AADTRgIYcMOt1RxZlbTOcgnvJSVHVkU69l4eKW8e6tGp0zMTr/9lj3LK8M1EXJFWV3XgzdQ8m6n1
zLA7X3Dr8htV/oWZjs2Gzto7IxntO46exHtn8t4etIBTH0PLDxHfqP6TpLVNabdku4kowQSroeXX
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
9JH+IauHIgAAIABJREFU9Kc/VbznyZMn+od/+Ie8ewEAAAAAAAAAAHDwkQAGAACwx373u9/ps88+
U3d3t7q7u/XZZ5/pd7/7XbXDAgAAAAAAQJVttQoY1b8AAAAAAAAAAAAOJxLAAKAKIm2GDEe/ImsF
J9Yi6ncYMhyGDEdQy5uOFbnnQFlWsFg/54Nm/9si22+zyL3L5w31hza2Fak5h+mf80EFtxXby7cR
6s/Fnffz8tbWYVn/f/jDH3T79m15vV59+9vfltfr1e3bt4se+8Mf/lDtcLEP7Nd9RzL32037zvnl
UleX3LcPs5cx/zv5uwgAAAAA2J6tVAGj+hcAAAAAAAAAAMDhRQIYgEMr0pZOMKkC71JMw61FTjR5
dSM1oe7WYcVSI2rNHotpuLVbE6kb8jbtTgzV7H9prRpZHVaLVnT141x0y5+vqaW1WxNL3u21mZpQ
d7Ez12O6MVS35RY3Qv2633NbsVRMsVRME7qlWwXX1Ob4mlqumbFPDEjdd80+FF2Pe+Qgr/8//vGP
+uUvf6n3339f3/72t7PVvn7/+9+rra1NH330kT766CO1tbXp97//fbYq2Le//W29//77+uUvf6k/
/vGPexAZ9rv9vu+0Xjfjvn2tJbsHxa6X2nhK79v72U7m52XN/3b/LgIAAAAAdsZuFTCqfwEAAAAA
AAAAABxeJIAB2D8ylYDa+tNVooJazlSGcmzho+d0O1eXb+mipRJJcD53SabKRn9ow1IxyfKM7HNz
1xXKq3bSFlGkrXj1ovyKTEEtq1Wnjl/Ni0fzQd3v6VP2U/m8qkilq1sVfb6N/lvHoNj4VhwfM4Lc
PBWfidIGJjT8+EG2AlRYPnVaz1fqf8H5wr5Zx7xopRMb82vVej2mWCY5bTfWV6X+lYrPxjtSN3Sj
6Mf93qVcchXrv/L6z4YSapPD4ZDDcUbnz5/Xq6++qq6uLk1PT+u3v/2tDMPQxx9/rEQioYcPH+rD
Dz/Uhx9+qIcPHyqRSOjjjz+WYRj67W9/q+npaXV1denVV1/V+fPn9c///M/6n//5n82Dhny79bdB
pec9e9xSsSq7xtoi2XUcPB8suW4qrVt7+2rOftp3bKmwb5t28HdFlfelUvNva34L72/rV39mDG3u
O1ux2/Nf7u+ivf5n5saQ4ehXJBS09fcTAAAAAGCyUwWM6l8AAAAAAAAAAACHGwlgAPaPJq9urA6r
ZXlFuhtT7K508W1pIhXT7WtremD3Q+q8ikKxbDWNka7cJd6lmGJ3u7Vy6azO3uw0r7kryzNO5d3b
efNs3ofWy+cNXdRE9vztnvu6WvZr9UwsZtWj1p8Ma+3z/ApYne/kknYi799X52osr33rx/pln2+j
/5E2I6/SSOyudNHSfuXx2Tnvh1I4tKHlj6+q6d38KjHl+7+sYLP1/IT09sW8Sil1QzeylWiKKz+/
dUM31HnzbPFEiV1YX5Xmt2R8u/SOsP4rr/+M5vFX9Oqrr0r6QlNTU/rNb36j119/XVeuXNGTJ0/0
q1/9Sj/+8Y9VX1+/qdf19fX68Y9/rF/96ld68uSJrly5otdff12/+c1vNDU1Jbfbrbq6Og0NDWlp
aUmpVKrcIB5eu7Tuy82799NhtQxM5FWsar0e08RAi4Y/9apu6IZuX2vRrSll19Xta2sKW5JfKq3b
Su/dwd53Ku/bO1VpXyo3/3bmd1OFruMrWsmctDE/lez1/Jf7u2hrfbddNOc/FVNstVP3L91Sy7Xb
VBMDAMBicnJSDodDFy5cqHYoAIAaVakKGNW/AAAAAAAAAAAADrdXqh0AABQKOowiH313ayKdHKLW
YfOj5nlJA6fUKmmv6kvkfbzcNaKRzInmZwo7LupiXoQZy3rweFixpVyiQN3QDcWGCltf0dVmQ1db
hxVLefNPNXnV+bhfkbVWeRVR+HGnbqSrM2ktovvLK1ppNnQ1/yYtS2q1/fwS1iK6f3wi/6PtrhFN
fN6vyJo3WyVKKjM+kqRWjaRiBce2oOuUmt4+q4utw4pdlyJXLPGV6//8A61dC2gkG2erRlaHtfb+
Fp5ddn5N3qWYMrO2EeqX0aZcNRabio5fxfm1Ed8uvSOsf2X7nln///dv/1999dlXuXP/e1H/W1Jz
c7N+8IMf6Ic//KFef/11mw/LaW5u1k9/+lP99Kc/1TfffKPPPvtMv/jFL7S6uqqJiQlNTExsuc2D
Zk//NlTc97zqfGxWqHvWZuiqhhVbek0PHnda9hqp++5ItlJd3XeapCeW9iu912nl9tUDu+/Y3re3
+3elwr5g8+9eyfmVVDfkU5PjrIxLmSPdmijc23Zoz+bfprLrW8O6kUk4a/IqcO2+RrcUGQAAAAAg
U9nr/Pnz+uijj/Tee+/pyBHz/8eR6l8AAAAAAAAAAAAgAQxAzdlR0tBLkatUkklK2Qj1a2YbLXUP
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
gBtj2aCaxJJGpKB9N8ay+gSRrW53IrAaV/+t7x8A5L6H1c5f3D+n6MzvvR71omswDUAA5mUEEYbQ
MQNgBl7MIu73INTt1Y2tE+4+J2Y61P3bjc5feXuD4fkbysefkeC1K8kowoQyJh5or8ECJYadnB+b
0fhUHn/AzPrJ74lj4gCWEkGI7ZWPN7u+jee/wcT4AJ4rNu1775KxV1JpfRu1b3R97+D6UzX44wi4
dPcKIA2hv7EwCUxNFAzuWGUuEb3dMXT9enP1r8rvb0bXr4jg/BIE9R4OAMo9DKkIBBd2rAocERER
US1Zstlstt5BENHhcePGDbz66qv4zivfwaXXLtU7HCKibct8mMFLzpfwzDPPIJ3mc4FqwWJRPkmU
s7LBnkRbc+O7N/Cjmz/CG2+8gYsXeUczEZHehx9+CKfTiRMOB37y/vv1DofocFiLweMHRoqTuIho
y7536RJ+OjuLO3fu4Ny5c/UOh4iIiIiIiAgAcP/+fTz33HP4xqlvIPbzmOnjJJcXuBU3XdHosFuP
ejGMkJrcs/8c6vgTYQjvtJSoMEW7pZr5S/ULWHpRS8qj/evNG2/i+69+H6+88gpee+21eodDtKe9
9dZbePnll3Hu3DncuXOn3uEQ0SHGCmBEREREREREREREREREREREREREdSa5BERSAOwCImKAFWnK
yI8TAIgByMn9lTzF+FXtQQSueyFlRCY87qJtzV9GQuxBAPHxHQmNiIiIiAwwAYyIiIiIiIiIiIho
tzX5IM3VOwgiIiIiIiIiItpLPEkZTPkytt/HifHr24rXqCUya1vzZ/MgnqxlNERERES0FZ+pdwBE
REREREREREREREREpPn973+PkZERxOO8EY6IiIiIiIiIiIiIiIiYAEZEREREREREVfj000/x3//9
3/jTn/5U71CIiIiIiA6cjz/+GK+88gpGR0frHQoRERERERERERERERHtAUwAIyIiIiIiIqIt+8Uv
foEvfvGL6OjoqHcoREREREREREREREREREREREREB9qRegdARIfL0tISAODNG2/izRtv1jUWIqJa
Wl1drXcIB45gEeodAh1Qy8vLuHjxYr3DICLaU3L/L/PRygocVmudoyEiIqpOKpXCuXPn6h0GERER
EREREREREREREVHNsQIYERERERERERERERERERERERERUZGPP/4YY2Nj+Na3voX+/n787Gc/w//+
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
hm6jz1pUpaepeJ/KSs1PrkLRyVASK3MVGmx9AfZeF/qEEFZGgMlcjobR+C7ew2ooqutrK64lQ1j1
byFwE/N/fm4Dudt0nsQ64eiE6SpNOSXXr5n1YxSfmeuv3PiaaR8G66fS8WsxJBCClLuOm3wYCd3F
kH67qevH6Po3Xr/7+/2jMuPre/vnr3b8Ko/PIt4rUeFwJXdpmYxv6a4DE3M+nF4Dbp79cek4bH4k
s35koi5YLIPIZrNme0BERERERESHwN/8zd/gpZdewksvvYQ//vGPmJubgyRJeP/995FIJJBIJPDZ
z34WHR0d+OY3v4n/+Z//wQ9/+EOsrq7m22hsbMQ//MM/4KWXXsI3v/nNrQXQHtTudcgzd2+H/h6O
Yg3+OOSiz8mC44XnlbNFZxgvfQ+Hc7S3qPqVyXtPSp3DbHwGxwOV+1+w3xU3hHdSCLYX9iL1egS2
K5W+j67yHpsycRfHy/kzN39ERERERFSICWBEtCeELYJasapLSZKaELBQ0wpORR9gJMIQXNKWE5hK
sjXCJgYQL9uWVqErriZprUe9mNr+meumwe+De3BJS3DbYwoSxIiIiIiIqGo7krhUQMhX69kZrfCF
okpCGYYQdvix0pTbplWQyiWMPIl1wnT9rqbjsAshSFtMBjLr6JmzgP89wFfY/vK927C/oCShNDlW
sLa2iAxCmHDcxeTiWaw6tjqguoS+Gsolc0x2WuGBLoFkk1Zcm5rCmdai6lQ7PL7VzP9Rnx/dw/e2
lKBTlmH/trk+88qM77bbr2L89AlKNZvfnVm/iv37/lH/8+/O+JyfUxPymnxw/Z//i5/Opkvul4m6
YJ/uRjabNBsBERERERERHUKf//zncf78eZw/fx5/+MMf8OMf/xhvv/02lpeXMTs7i9nZ2fy+Tz/9
NLq7u9Hd3Q1RFGGxWOoYee2l+gUMTOR+m0H4hKw81Hg/ag8icN0LKSNq1b4yEmIPAogXJy0dEAdq
/oiIiIiIqMBn6h0AEREABLMyZkedcM/LCIhujGXlGiZ/AZLLC6m4wFhzY9ELGTzO7ZMIlykPX4qI
luYIvNEyNbuKy8ZnJAwPlr4hpSrtLbANThXEmno9gs1nSCFctux9JSmELUXjl3mMjFqpTPdileO3
TTYP2rBQEJ90fWY3zkxERERERNsmI+wvTAlYuuvAmeJclW046vMD0ZhSveeiruG1h1gVzuJ8U+73
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
ZRiGnnzySV133XW64447rAgPAAAAAAAAAAAAAACsB7tXk/MBNScSUsRQMiL19UgThqHzgaRma0z0
KVWhaSRR/bysahWcwgPT2j9vFLSfTdJp9MZ0PuDSVFS5ClznA0mNZxN97F5NGoYGXYUVujamOlbe
49PSLkf1+GvZ3xszlIx064K/RfumO9LHRVRwfaZ6TAlMPVE1NzlM0bQXVSdrySUoVZ0/xTXUYo4v
IvX0aKqOuVjT+BYXpIKx1M/y9ZWp0iZXQIMulwbnY+q1r2lIALCpvvGNb6i1tVVvfvObdffdd+tb
3/qWrr/+evX09Gh6elrPPfecQqGQ2tradPXVVxece+2116qjo0PRaFQ/+clP9IUvfEEHDhzQtdde
q69//ev68Ic/rN/5nd/Re97zHn3+85/XT3/6U4tGCQC40uywOgAAANbLoUOH9PnPf16nT5+W3+/P
bZ+amtKvf/1r3X777br++ustjBAAAAAAAAAAAAAAANSiy2bThdyzqJyZjwF0RgwNOyS5AumElbik
7na1SlqqufW4ZpMBJWNFFZq86xK6lArpXCKhCy02jRTscGpOUmvmWWckmPu50eGUFlUnt4YNQ8Or
DjSqPls096w5MK9Ju6rHX+P4cm167ZlwgwWxdkZMSUdxn7rM43csatzWoz7z8UXRl52/+IwWAmMa
tmePdGt4PqCFgZKTsNJax1dvtbF6bdL6enzaqYmYV60pqWsgpN7Yet0gALD+/us//1PnH31Uj8Zi
kqRY5l9Jet/73qdDhw5p//79uu666+pq97rrrtOdd96pO++8Uz/72c8Ui8V05swZPfzww5qZmdHM
zIw+8IEPrOtYAAAohwQwAMC28e53v1tveMMblEwm9fTTT+vtb3+7pHxFsIMHD1oZHgAAAADgCnX3
3XerublZb3vb26wOBQAAAAAAYMuYNIz0D3Gfuhb780k2kpSyIqI62B1qcgU0edknzHRrwggWJDRJ
qh7/ho8vX8Fr0p7eshTyKFTxnHW01vE5mqSxWcm7QfOzSeurNxbM9OfVZKzysQAAAAA23lVWBwAA
wHrZsWOHDhw4ICmf9LW4uKhvf/vbuv7663X77bdbGR4AAAAA4Ap100036Z577tFtt91mdSgAAAAA
AACQJLnV5vSrK5QybYtryGbT0LpUbyrV/moklco2EffJafNprmB/OuaV29eqWvzrNb4yUotacHWo
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
ERERERERERERjVZFEiAK6s/NRuLyJgfFi1hXSqh01P9WJAFbbbWCkSiVxxraMDi+ROSqU8a2UriU
yV9EREQX3ZfHHQARERERERERTY/T9t1xh0BENBKP/vUZrss/HXcYI8PrMxFNu6fPurj6nzfHHQaN
yV//zd/g/V//etxhEBEREU2VP//5z/hPojjuMGjCrda7WB13EBNitV63/Pti9MtFaQcRjVhExm49
eDUiIiKaPqwARkREREREREREREREREREREREREREREREREQ0oZgARkQTxVqaXP9Jljvnc/BmrufY
g5Z5P8zZ97PRVF8fX/ua2BAEiIJklLNXX84N0U5tny7bHuYGb5etj3I5bAw4BueuU0bSOX+EHA7H
HZeLYcZnrDplJKdkPoTrY+9ziIiIiIiIiIiIiIiIiIiIiIiIiIiIiEjHBDAimiir9SpWkMJOtwtF
+1luZO1JS2clXsT9QhQLhZZx7B0x33+iTKeMbaVg7EPpdrEZVxeFaV9FGl3S0POypCUhxbHZKmAB
bWxtN43lhwcKFqIp7NTlAfYex2a3ihWXJYvFLnblyEDx7ics/Y8a9hzrjLJ/RioiY7eaAlJVc+yr
QGYCk8AGHR/gLPtfTYbyPd8iMtbEvJFQOcnC9bH3OURERERERERERERERERERERERERERESkYwIY
EU28VxPAsxPtP44qXW7JIrYKUpLUUzEoaLnV4loBOD4xX3BWeXJse5gTIMbyOGrnQ1cRM9qn7Xur
XUPGpXqYNfZkuaMld3lUmdL2dbORgNItYlF/PVXFunKgrt8pYxtZLLts5xm7Y7kzEceMySORJ8T4
WS0Wu1D05LRR9E9Q+7zi07eTJK2SWg6Hxro+CVHxIu4XFGw79+MzN4Lmp626nFRGRTKrugW13298
1G0lVMrWPrBUjAvR/z3xO/rGP744NrtdLDdivZXqLBbXCjgu+Z1TTXOMfNZysvZrstyxzwXLGPi1
DwhxDgScQ0REREREREREREREREREREREREREREROTAAjoon3cQO4Mqf/b8lRPStmS6DoqSAltnGE
8MudKtk85pfilv83sNwyj38/0bAlhywWu1BaBSxELRXAAqprGe2LyNjtdrEetVcI2zQPj9V6F0o1
haN8TEvuUqtMPXAmQcW0OF2OvZoFtssdHG7b2xbcviY2YtblVSCdtlXompXr6naFqEdr/cdvVq5r
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
8fUT/q7pmkD7HGISz8fcxkXEBQAAYIrYAQwAAAAAAAAAAADAYkjlVNp0ZFuF9gdpbWXT+rBjSVVP
x5mMjqvXsi2rd042q61GQbYjNWs54/GKs6MPkj5Y55LSOrythSZprZU8tRxLdkEB/o5hKdfR20JD
Ujs9ysveOZd0rm3d6iJnSt+yjiz//r7V9n3iXj+l3fKmtlctnbSv8Cad7ivEhk4Cxzt5DNo9sGV3
vxPcDa0eSN95twy2ql73Le9R5bMWVX/Fou4K/qQ2O7+s5oak8x1tr9yqJHXr+PWT9Gd15g1ahJDR
6/SOPtVLWgsdTmvLvgykQXpTvNWFzOmnfuepfgcblL5g+vvLr3Nc8ncRMJX/0/J9mr7h5Ruh5Wp7
tV0+5+1+R73PZMm/TlT5K1n7i6y/bhkudvs6bi/0zBXTutP+k3qJLl9z+4rOf3T7i1M+S7maDh1L
dreKG35+g5Od2xPej1Oakoxym2W9vevf5aIe3b5i5E+KLr+l9U1ptXPdtA6LWZ0UVtvPp6n9mtKX
NP+j1O+g+5vjFwCTR9xA3BAZN4zbPoL1Exn3Rv8uSdr+kv2uSUXXT73zfUnn/Wnsrz9p8Lib7PmY
77iIuAAAAEzPq8fHx8dZJwIAAAAAAAAAAADAl+Xnn3/Wd999pz99+63+/uOPs07Oi/XgOsqr3J3E
90Wp52Vfb4QmAVYcRyrXRtpxZ5590fUL4ImbvKVPG+FFVXi5fv/9d/3ZtvX111/rt99+m3VyEvnl
l1/0zTff6I+2rX/885+zTg4ATN1L+10yj4iLvlx/ff9eZz/8oPfv3+v777+fdXIAAJioP8w6AQAA
AAAAAAAAAACAyak4lmzL/+/t5eaXuzgoU9Jhs6xKy/9nxbF00vDfNG877kyTlgT1C2CglqvTZpFJ
zgAAzLmX8rtkrhEXAQCAF+qrWScAAAAAAAAAAAAAADA5uzVPu7NOxJzYrdUCf7+Mcnkp+QAwYamc
LmrmrwEAgNkinn8GxEUAAOCFYgcwAAAAAAAAAAAAAAAAAAAAAAAAAJhTLAADAAAAAAAAAAAAAAAA
AAAAAAAAgDnFAjAAAAAAAAAAAAAAAAAAAAAAAAAAmFMsAAMAAAAAAAAAAAAAAAAAAAAAAACAOcUC
MAAAAAAAAAAAAAAAAAAAAAAAAACYUywAAwAAAAAAAAAAAIBnUnEs2Vb4v223NaW71XVkWbId98mR
m/z07hvKYz6vowH3fykqjqNKa1Z3p34RV7utWH3ttZ7363GsOpxO+1vI9tVytd3t0/O6efLZLPuJ
CWq52p6D+phm/5bEg+s8w7hudvWvr7Ra/tX0Lf3rq1d6tVp+ljQh2kL2e1JvDAn+tyhpH2j4uNYx
27hv8m7yT3+X2Pn6kG+by+cleo7nc2bj2pyM6ybxyufLbJ8AAODLxAIwAAAAAAAAAAAAAPOnnp/L
Cd5J7daq2lJWZ56nZvu/d5cHU5pMmtGxV9XWgCNrJU8XudTE7/jgOrravO3m7Uzn+tD3nYrTXiCx
6Op5ndgH2k3NKgHU75dovPLN6Pi2qDdq6OS0N7H75rqpN+mszmq5MVIy+fa3sO0rldOFV9VWuqim
V9Ja9zNPh+mszrzaxPqJqec/uHCtfxJ1Kqd9u6CjYWsDnkmS/m2a5beUq6npefpYTE/pDvG8+9uj
bg9em76lvz3+p/aeJUUTMsdxYZJ2tbD9niRlSvpYTOtNMZB+uzC39WQ2fFyTNHbcN7f1J78/7fRb
3XosZYZ821A+c2oRns9pxe2SFmJcN4lXPovZPgEAAMbBAjAAAAAAAAAAAAAAC6PzFvZttxXYbSMw
8S6060pgolvnc8dp74ST101354LwxL3wLl29Y8G35G+7rfDOB/33GWEnhL9sSr/eG9Kv3u4iR/n8
wPQNOr9/Ql/UDiWxrt/dSai9q42bj9ztZK3kqdlZXNJO20njXHtD0jh2/XaTF96NopuucevfcYa+
Gb9SPtfWRqbvvF6ZDNz5h/pdgPqt964xIM+h3TIc98luIMP6j3jlH5G+GOVrlK3qsHnd3aHqVAd6
FzxuKv8E7U/S8PobYrHaV0br/ZOo63ldbe77C8Li3F8R7Stm/Q9rf7HKR9LNaUEr1fYC5QELA9f2
i7orR41r0c/PMHHGV1P7isyfofy6z2c9nJ7QfUZsv6OIFV/oaf3+V+Aav5ZX9erVK716NWQHsF/L
Wm0ff/Xqlf71amLJn6lZxoWxnssR48LF6vcGpH+/KN3d9z6Y97jcMK4F9cd9A9M34rg9b/X3RKzy
ecFxU59JP5/PEbfP87geLKNB+TPGlSM8vwAAAC8JC8AAAAAAAAAAAAAALIzdmqdmNavPhVW9vdz0
J7NVpU/tCV+Vg0u9u+3trvVx89KfZJbK6eK2qDeNhlT1z9nbkc48Tx+Lzd75jhV603uzKu21J6mt
lXpvyL/IpaRMSc1qVspWuxPqht4/wk+X0utlQ/rl7y7ysZjWh3N1dxD7WGzqtDshrq6j1eD5VWln
J/Sm+qgdSszXlyrOjl9+nqfm7aauCue98mhf493l6uCJqqEdcXp5PA7MpR27frs2+nZXW/UnA8as
/ydv+rcb+jyw1ur6tZHVel/aD9MNnRR65de83dTVam8yI/W7KPU72E3e0p6qofSdNHrHo/qPOOUf
mb4Y5RvH7oF06rb8CcF9E9mjyz9Z+/MNqb/A+Yvcvtb2i7q7Du+w9m49FbN8De0rRv6j2l+c8pGk
tY2s7u5bQ+pPUmpZK43Lie9aGWd8NbWvyPwZyq/zfAbT06xm++4Q3X6nnf9B9XuwXele4/XBrR4f
H3X37//7gDtc6V9XPmjr7lGPj496fPxP6b/9N51NJvkzNcu4MNZzaXjuF73f61c5CI8t8x2Xm8e1
nqdxn5R83J63+uvPc/zyGWzR46ZpP5/Tjtul+R7XTXFL9LifvH0CAAAsqq9mnQAAAAAAAAAAAAAA
6Ni2rMCCjHPZBf+vrWp4Ql1oclumpGNJarm6ajT0edXSSeiqtm4kfxeWdNG/Tl1SdkNrkh46X2u5
urKroUlzypR0du2o0sppNyUt5Q60Yp3qJlfSmqRKuanDcql3vun+7XztWefhvKTin79VLXX/Xlq2
pc5GC/Vr3RXLOu4mP6Pj26LuDjSSoddvubpSURedekjlVCpeKt93/m7N02777wfXke1o4Bvno4xd
v8v3OrV2tBfMT/CrUfWvTv2udtudlNWZNyDtrXvdSVofkPZg+fll5MitS2vL1G/HfNdvRsee56cp
pK5PzaKatV5HtJSrqdk5PUb/IUWUf+z0JZTZ0MrOqvbSRTVLUqUcSH9U+U+i/ZnqT4vdvpTK6V3T
UaWV0a5cnTY3/b491v0N7cskZvuThpRPW6V8rs+NpirrtdA5gYvqdXrH37VyyPHBz49Z5Pg6gqj8
JRKj/SZhjC8G1G/58v/QQZxVrFf/U//r3/8f/e1154N3+tvdv+t//d8TzMCUzHtcGClmXLfQ/Z6k
z4XeuPWmeNuLI+Y9Lh9lXBsS901q3J5l/Q0Vu3xedtw0teczpqRx+9yO60n71wn9LgIAAFhELAAD
AAAAAAAAAAAAMDcuPM//o57X9v1+eFKYSWpZK+miLkaclDeajHLFsr+gR3md2Adqpka9f1ZnXmCR
UMezpH+y+idiPjmeO9BW4bpvAdyYjOXTexN8Z9HFg+soev+1fn2THOt52Y47wkTPdHc3tyeo32gL
Ub/T9hzpy+i4WtV6pm8LjKm3z9Hrb/Hal7R7YGv7U0t/0aVWDmoj3H/2ujuplD9p+8BVyi74O7eU
RtxmbmwR4+vMTaZ9RJvn/M/O/MeFk73/IvZ73cUt9bzsnd5ij8WJy5Pdf2rj9jPV32J73rhuos/n
FPTH7YzrAAAAL9MfZp0AAAAAAAAAAAAAAJiMjNbtgrbd1ninp3J61yyrEjq9rk/NzdBbyJdyB1LZ
9d9ivh+cQJfw/knPz2xopXCqm8BHN6cFxdkcJJZUTu90GSqfSvk88IW6jiwnXH6te921dxzoaarV
+U49L9vKh9I8nKF8Wve6SwfqquUqX2jEunJHxelLvyTZA1Z0pZa1MvAKDZ0chKfe/nRpaz0jUb8m
81K/dR1Z1oB0D0qf/92jumL3H8nTN275BmQyAyYuG8o/afsz1t/ity//NhtaKazqbaHz3Me8v6l9
dQ3J/wTanyR9vrv3dxHZvNReszhgknhdvzYiFroOfX7iGT6+Tkp0+7m7bx9sudreCfR/k2ofBkPz
P6R+f7p7F+/C7/5P/W//9j90Ffjo6n/8m/4reZLn3PPEhcPblen+L6Tf696upI/FpvbynU5rzuPy
Uca1IXHfdMftZ66/J7ePWz4vNW6a9vOZkDFu983tuJ60/qf9uwgAAGCOsQMYAAAAAAAAAAAAgAVR
15G1ow+SpHPZBf/Traqn4/Z8srWSp5ZjdY/5sjq7XdHpqj8pzM4vq7kh6XxH2yu3Kkn6sGNJVU/H
5U1tr1o6CZy9VfX60pFRbrOst3dP32I+9P7tHb8qjp/+D9a5pLQOb2uhSW5R56dcR28LDUnttCov
e+dc0rm2dauLXEbH1WvZlhU4NautRkG2IzVry4Hyk6TV9n3iXj+l3b7yeZNO95VNQyeh8vPzGLR7
YMvufie4G1qC+vVKWkvlVNp0ZFudg2ltZdN+3RaLuiuY6//1k/RndeYNWoSQ0ev0jj7VS1oLHU5r
y74MpKG9M4bM6ad+56l+BxuUvmD6+8uvc1zyd2Ewlf/T8n2avuHlG6HlarvT/523+x31PpMl/zqR
/Vey9hdZf90yXOz2ddxe6JkrpnWn/Sf1YhofTO0rOv/R7S9O+Szlajp0LNndKm74+Q1OFm8vODhO
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
AAAAAACAkvr/mOYP9CtVYlcAAAAASUVORK5CYII=
</data>

          </attachment>
      

    </bug>

</bugzilla>