<?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>112782</bug_id>
          
          <creation_ts>2013-03-20 01:19:49 -0700</creation_ts>
          <short_desc>[WK2] Remove repeating code in declaration of WK2 API classes</short_desc>
          <delta_ts>2013-04-02 01:31:17 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Pozdnyakov">mikhail.pozdnyakov</reporter>
          <assigned_to name="Mikhail Pozdnyakov">mikhail.pozdnyakov</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kenneth</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>859150</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-03-20 01:19:49 -0700</bug_when>
    <thetext>The following two lines of code are repeated in every class inheriting WebKit::APIObject.

1) static const Type APIType = SomeAPIType;
2) virtual Type type() const { return APIType; }

This code copy/paste could be avoided.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859174</commentid>
    <comment_count>1</comment_count>
      <attachid>194002</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-03-20 01:54:20 -0700</bug_when>
    <thetext>Created attachment 194002
WIP patch

This proposal patch introduces template class 

template &lt;APIObject::Type ArgumentType&gt;
class TypedAPIObject : public APIObject

which contains the common functionality.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859193</commentid>
    <comment_count>2</comment_count>
      <attachid>194002</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-03-20 02:16:38 -0700</bug_when>
    <thetext>Comment on attachment 194002
WIP patch

Attachment 194002 did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/17140413</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859195</commentid>
    <comment_count>3</comment_count>
      <attachid>194002</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-03-20 02:25:53 -0700</bug_when>
    <thetext>Comment on attachment 194002
WIP patch

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

&gt; Source/WebKit2/UIProcess/efl/WebPopupItemEfl.h:35
&gt; +class WebPopupItemEfl : TypedAPIObject&lt;APIObject::TypePopupMenuItem&gt; {

argh, missed &apos;public&apos; here :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859735</commentid>
    <comment_count>4</comment_count>
      <attachid>194002</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-03-20 14:23:41 -0700</bug_when>
    <thetext>Comment on attachment 194002
WIP patch

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

This looks like a great idea but if you plan to only fix the ELF types, I am gonna stab you :)

&gt; Source/WebKit2/Shared/APIObject.h:165
&gt; +    virtual Type type() const { return APIType; }

Shouldn&apos;t it be private?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860284</commentid>
    <comment_count>5</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-03-21 06:33:35 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 194002 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=194002&amp;action=review
&gt; 
&gt; This looks like a great idea but if you plan to only fix the ELF types, I am gonna stab you :)
&gt; 
No no, it was just an illustration patch, I am planning to deploy it to every object :)

&gt; &gt; Source/WebKit2/Shared/APIObject.h:165
&gt; &gt; +    virtual Type type() const { return APIType; }
&gt; 
&gt; Shouldn&apos;t it be private?

It could, but this would mean that the object cannot invoke it&apos;s own type() method, so would keep it protected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860373</commentid>
    <comment_count>6</comment_count>
      <attachid>194269</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-03-21 08:36:49 -0700</bug_when>
    <thetext>Created attachment 194269
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863067</commentid>
    <comment_count>7</comment_count>
      <attachid>194269</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-03-25 14:27:37 -0700</bug_when>
    <thetext>Comment on attachment 194269
patch

Great change!
Can you deploy it to all APIObject? (WebFrameListenerProxy&apos;s subclass as you mentioned on IRC)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863478</commentid>
    <comment_count>8</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-03-26 02:13:44 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 194269 [details])
&gt; Great change!
&gt; Can you deploy it to all APIObject? (WebFrameListenerProxy&apos;s subclass as you mentioned on IRC)

Unfortunately it&apos;s not that easy to deploy to WebFrameListenerProxy&apos;s subclasses because WebFrameProxy contains RefPtr&lt;WebFrameListenerProxy&gt; m_activeListener; hence WebFrameListenerProxy has to inherit ThreadSafeRefCounted directly.
The only solution that I see is virtual inheritance, would you like it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864159</commentid>
    <comment_count>9</comment_count>
      <attachid>194269</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-03-26 18:00:15 -0700</bug_when>
    <thetext>Comment on attachment 194269
patch

&gt; Unfortunately it&apos;s not that easy to deploy to WebFrameListenerProxy&apos;s subclasses because WebFrameProxy contains RefPtr&lt;WebFrameListenerProxy&gt; m_activeListener; hence WebFrameListenerProxy has to inherit ThreadSafeRefCounted directly.
&gt; The only solution that I see is virtual inheritance, would you like it?

Nope, screw that :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867656</commentid>
    <comment_count>10</comment_count>
      <attachid>194269</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-04-02 01:31:13 -0700</bug_when>
    <thetext>Comment on attachment 194269
patch

Clearing flags on attachment: 194269

Committed r147403: &lt;http://trac.webkit.org/changeset/147403&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867657</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-04-02 01:31:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194002</attachid>
            <date>2013-03-20 01:54:20 -0700</date>
            <delta_ts>2013-03-21 08:36:49 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug112782</filename>
            <type>text/plain</type>
            <size>2384</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDQzMWQ5NTk1ZWU4YzJjZTM4NDk1ZGIwNWNkOWI4OThiOTRlYjUyNjcKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
V2VkIE1hciAyMCAxMDozMDozMiAyMDEzICswMjAwCgogICAgYnVnMTEyNzgyCgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSU9iamVjdC5oCmluZGV4IDVlY2ViNTYyLi5kNDkxMWMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSU9iamVjdC5oCkBAIC0xNDgsNiArMTQ4LDIzIEBAIHByb3RlY3RlZDoKICAgICBBUElPYmpl
Y3QoKTsKIH07CiAKK3RlbXBsYXRlIDxBUElPYmplY3Q6OlR5cGUgQXJndW1lbnRUeXBlPgorY2xh
c3MgVHlwZWRBUElPYmplY3QgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgY29uc3QgVHlwZSBBUElUeXBlID0gQXJndW1lbnRUeXBlOworCisgICAgdmlydHVhbCB+VHlw
ZWRBUElPYmplY3QoKQorICAgIHsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBUeXBlZEFQSU9i
amVjdCgpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyBy
ZXR1cm4gQVBJVHlwZTsgfQorfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAv
LyBBUElPYmplY3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9X
ZWJQb3B1cEl0ZW1FZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViUG9wdXBJ
dGVtRWZsLmgKaW5kZXggMTU4MWNhNS4uMWY5NWNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9XZWJQb3B1cEl0ZW1FZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL1dlYlBvcHVwSXRlbUVmbC5oCkBAIC0zMiwxMCArMzIsOCBAQAogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgV2ViUG9wdXBJdGVtRWZsIDogcHVibGljIEFQSU9iamVj
dCB7CitjbGFzcyBXZWJQb3B1cEl0ZW1FZmwgOiBUeXBlZEFQSU9iamVjdDxBUElPYmplY3Q6OlR5
cGVQb3B1cE1lbnVJdGVtPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlw
ZSA9IFR5cGVQb3B1cE1lbnVJdGVtOwotCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViUG9wdXBJ
dGVtRWZsPiBjcmVhdGUoY29uc3QgV2ViUG9wdXBJdGVtJiBkYXRhKQogICAgIHsKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJQb3B1cEl0ZW1FZmwoZGF0YSkpOwpAQCAtNTcsOCArNTUs
NiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYlBvcHVwSXRlbUVmbChjb25z
dCBXZWJQb3B1cEl0ZW0mKTsKIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1
cm4gQVBJVHlwZTsgfQotCiAgICAgV2ViUG9wdXBJdGVtIG1fZGF0YTsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmgKaW5kZXggMGE4MjI2OC4uNzgxNjA0MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmgKQEAgLTQ2LDEwICs0Niw4IEBAIGNsYXNz
IENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNz
IFdlYlZpZXcgOiBwdWJsaWMgQVBJT2JqZWN0LCBwdWJsaWMgUGFnZUNsaWVudCB7CitjbGFzcyBX
ZWJWaWV3IDogcHVibGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6VHlwZVZpZXc+LCBwdWJs
aWMgUGFnZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9
IFR5cGVWaWV3OwotCiAgICAgdmlydHVhbCB+V2ViVmlldygpOwogCiAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8V2ViVmlldz4gY3JlYXRlKFdlYkNvbnRleHQqLCBXZWJQYWdlR3JvdXAqKTsKQEAgLTE3
Nyw4ICsxNzUsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgY291bnRTdHJpbmdNYXRjaGVzSW5DdXN0
b21SZXByZXNlbnRhdGlvbihjb25zdCBTdHJpbmcmLCBGaW5kT3B0aW9ucywgdW5zaWduZWQpIE9W
RVJSSURFOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1
cm4gQVBJVHlwZTsgfQotCiAgICAgV2ViVmlld0NsaWVudCBtX2NsaWVudDsKICAgICBFd2tWaWV3
KiBtX2V3a1ZpZXc7CiAgICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gbV9wYWdlOwo=
</data>
<flag name="commit-queue"
          id="215692"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194269</attachid>
            <date>2013-03-21 08:36:49 -0700</date>
            <delta_ts>2013-04-02 01:31:12 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug112782</filename>
            <type>text/plain</type>
            <size>85580</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGVjNmJmYzI5MDVlNzEzM2M1MjViYTExNTk4NDQ5YWM3ZWZmOTk0OWMKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IE1hciAyMSAxNzoxODozMiAyMDEzICswMjAwCgogICAgYnVnMTEyNzgyCgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IGRlY2UzYWYuLmMyMGFlNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNzQgQEAKKzIwMTMt
MDMtMjEgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+
CisKKyAgICAgICAgW1dLMl0gUmVtb3ZlIHJlcGVhdGluZyBjb2RlIGluIGRlY2xhcmF0aW9uIG9m
IFdLMiBBUEkgY2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTEyNzgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhlIGZvbGxvd2luZyB0d28gbGluZXMgb2YgY29kZSBoYWQgYmVlbiByZXBlYXRl
ZCBpbiBldmVyeSBXSzIgQVBJCisgICAgICAgIG9iamVjdCBjbGFzczoKKyAgICAgICAgMSkgc3Rh
dGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFNvbWVBUElUeXBlOworICAgICAgICAyKSB2aXJ0dWFs
IFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KKworICAgICAgICBUaGlzIHBh
dGNoIGludHJvZHVjZXMgdGVtcGxhdGUgY2xhc3MgJ1R5cGVkQVBJT2JqZWN0JyBpbmhlcml0ZWQK
KyAgICAgICAgZnJvbSBXZWJLaXQ6OkFQSU9iamVjdCBhbmQgaXQgY29udGFpbnMgdGhlIGNvbW1v
biBmdW5jdGlvbmFsaXR5LiAKKyAgICAgICAgU28gdGhlIG5ldyBwYXR0ZXJuIGlzIHRoYXQgQVBJ
IG9iamVjdCBjbGFzc2VzIGFyZSBpbmhlcml0ZWQgZnJvbQorICAgICAgICBUeXBlZEFQSU9iamVj
dCAocmF0aGVyIHRoYW4gZnJvbSBXZWJLaXQ6OkFQSU9iamVjdCBkaXJlY3RseSkgcGFzc2luZwor
ICAgICAgICB0aGUgY29ycmVzcG9uZGluZyBBUEkgb2JqZWN0IHR5cGUgYXMgYSB0ZW1wbGF0ZSBw
YXJhbWV0ZXIuCisKKyAgICAgICAgVGhlIGV4aXN0aW5nIEFQSSBvYmplY3QgY2xhc3NlcyBhcmUg
bW9kaWZpZWQgYWNjb3JkaW5nbHkgdG8gdGhlCisgICAgICAgIHByb3Bvc2VkIHBhdHRlcm4uCisK
KyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAoVHlwZWRBUElPYmplY3QpOgorICAgICAgICAoV2ViS2l0OjpUeXBlZEFQSU9iamVjdDo6flR5
cGVkQVBJT2JqZWN0KToKKyAgICAgICAgKFdlYktpdDo6VHlwZWRBUElPYmplY3Q6OlR5cGVkQVBJ
T2JqZWN0KToKKyAgICAgICAgKiBTaGFyZWQvSW1tdXRhYmxlQXJyYXkuaDoKKyAgICAgICAgKElt
bXV0YWJsZUFycmF5KToKKyAgICAgICAgKiBTaGFyZWQvSW1tdXRhYmxlRGljdGlvbmFyeS5oOgor
ICAgICAgICAoSW1tdXRhYmxlRGljdGlvbmFyeSk6CisgICAgICAgICogU2hhcmVkL1dlYkFyY2hp
dmUuaDoKKyAgICAgICAgKFdlYkFyY2hpdmUpOgorICAgICAgICAqIFNoYXJlZC9XZWJBcmNoaXZl
UmVzb3VyY2UuaDoKKyAgICAgICAgKFdlYkFyY2hpdmVSZXNvdXJjZSk6CisgICAgICAgICogU2hh
cmVkL1dlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaDoKKyAgICAgICAgKFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0pOgorICAgICAgICAqIFNoYXJlZC9XZWJCYXR0ZXJ5U3RhdHVzLmg6CisgICAgICAgIChX
ZWJCYXR0ZXJ5U3RhdHVzKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ2VydGlmaWNhdGVJbmZvLmg6
CisgICAgICAgICogU2hhcmVkL1dlYkNvbm5lY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvbm5lY3Rp
b24pOgorICAgICAgICAqIFNoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW0uaDoKKyAgICAgICAgKFdl
YkNvbnRleHRNZW51SXRlbSk6CisgICAgICAgICogU2hhcmVkL1dlYkRhdGEuaDoKKyAgICAgICAg
KiBTaGFyZWQvV2ViRXJyb3IuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXJyb3I6OmVycm9yQ29k
ZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaDoKKyAgICAgICAg
KFdlYkdlb2xvY2F0aW9uUG9zaXRpb24pOgorICAgICAgICAqIFNoYXJlZC9XZWJHZW9tZXRyeS5o
OgorICAgICAgICAqIFNoYXJlZC9XZWJHcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkdy
YXBoaWNzQ29udGV4dCk6CisgICAgICAgICogU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHQuaDoKKyAg
ICAgICAgKiBTaGFyZWQvV2ViSW1hZ2UuaDoKKyAgICAgICAgKFdlYkltYWdlKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViTmV0d29ya0luZm8uaDoKKyAgICAgICAgKFdlYk5ldHdvcmtJbmZvKToKKyAg
ICAgICAgKiBTaGFyZWQvV2ViTnVtYmVyLmg6CisgICAgICAgICogU2hhcmVkL1dlYk9wZW5QYW5l
bFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKFdlYk9wZW5QYW5lbFBhcmFtZXRlcnMpOgorICAgICAg
ICAqIFNoYXJlZC9XZWJSZW5kZXJMYXllci5oOgorICAgICAgICAqIFNoYXJlZC9XZWJSZW5kZXJP
YmplY3QuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViU2VjdXJpdHlPcmlnaW4uaDoKKyAgICAgICAg
KiBTaGFyZWQvV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg6CisgICAgICAgIChXZWJTZXJpYWxp
emVkU2NyaXB0VmFsdWUpOgorICAgICAgICAqIFNoYXJlZC9XZWJTdHJpbmcuaDoKKyAgICAgICAg
KiBTaGFyZWQvV2ViVVJMLmg6CisgICAgICAgICogU2hhcmVkL1dlYlVSTFJlcXVlc3QuaDoKKyAg
ICAgICAgKFdlYlVSTFJlcXVlc3QpOgorICAgICAgICAqIFNoYXJlZC9XZWJVUkxSZXNwb25zZS5o
OgorICAgICAgICAoV2ViVVJMUmVzcG9uc2UpOgorICAgICAgICAqIFNoYXJlZC9XZWJVc2VyQ29u
dGVudFVSTFBhdHRlcm4uaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL09iakNPYmplY3RHcmFwaC5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZVByb3h5Lmg6CisgICAgICAgIChBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25EZWNpc2lvbkxp
c3RlbmVyLmg6CisgICAgICAgIChBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9XZWJDcmVkZW50aWFsLmg6CisgICAgICAg
IChXZWJDcmVkZW50aWFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0aGVudGljYXRpb24vV2Vi
UHJvdGVjdGlvblNwYWNlLmg6CisgICAgICAgIChXZWJQcm90ZWN0aW9uU3BhY2UpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oOgorICAgICAgICAoRG93bmxv
YWRQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RQcm94eS5oOgorICAgICAgICAoR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdC5oOgorICAgICAgICAoTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5oOgorICAgICAg
ICAoV2ViTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9X
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luU2l0ZURh
dGFNYW5hZ2VyLmg6CisgICAgICAgIChXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5Lmg6CisgICAgICAg
IChXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViQmFja0ZvcndhcmRMaXN0Lmg6CisgICAgICAgIChXZWJCYWNrRm9yd2FyZExpc3QpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5Lmg6CisgICAgICAgIChXZWJC
YXR0ZXJ5TWFuYWdlclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5oOgor
ICAgICAgICAoV2ViQ29udGV4dCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFn
ZXJQcm94eS5oOgorICAgICAgICAoV2ViQ29va2llTWFuYWdlclByb3h5KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKFdlYkRhdGFiYXNl
TWFuYWdlclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5o
OgorICAgICAgICAoV2ViRWRpdENvbW1hbmRQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YkZyYW1lUHJveHkuaDoKKyAgICAgICAgKFdlYkZyYW1lUHJveHkpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5oOgorICAgICAgICAoV2ViR2VvbG9jYXRp
b25NYW5hZ2VyUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJHcmFtbWFyRGV0YWlsLmg6
CisgICAgICAgIChXZWJHcmFtbWFyRGV0YWlsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSWNv
bkRhdGFiYXNlLmg6CisgICAgICAgIChXZWJJY29uRGF0YWJhc2UpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oOgorICAgICAgICAoV2ViSW5zcGVjdG9yUHJveHkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuaDoKKyAg
ICAgICAgKFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKFdlYk1lZGlhQ2FjaGVN
YW5hZ2VyUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0aW9uRGF0YS5oOgor
ICAgICAgICAoV2ViTmF2aWdhdGlvbkRhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJOZXR3
b3JrSW5mb01hbmFnZXJQcm94eS5oOgorICAgICAgICAoV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJv
eHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5
Lmg6CisgICAgICAgIChXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmg6CisgICAgICAgIChXZWJQYWdlR3JvdXApOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYlBhZ2VQcm94eSk6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJlZmVyZW5jZXM6OldlYlByZWZlcmVuY2VzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAoV2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXJQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlRleHRDaGVj
a2VyLmg6CisgICAgICAgIChXZWJUZXh0Q2hlY2tlcik6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlZpYnJhdGlvblByb3h5Lmg6CisgICAgICAgIChXZWJWaWJyYXRpb25Qcm94eSk6CisgICAgICAg
ICogVUlQcm9jZXNzL2VmbC9XZWJQb3B1cEl0ZW1FZmwuaDoKKyAgICAgICAgKFdlYlBvcHVwSXRl
bUVmbCk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9XZWJWaWV3Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKFdlYlNv
dXBSZXF1ZXN0TWFuYWdlclByb3h5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaDoKKyAgICAgICAgKEluamVjdGVkQnVu
ZGxlTm9kZUhhbmRsZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00v
SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oOgorICAgICAgICAoSW5qZWN0ZWRCdW5kbGVSYW5n
ZUhhbmRsZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZS5oOgorICAgICAgICAoSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3QuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0
SXRlbS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVET01XaW5kb3dFeHRlbnNpb24uaDoKKyAgICAgICAgKEluamVjdGVkQnVuZGxlRE9NV2luZG93
RXh0ZW5zaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlSGl0VGVzdFJlc3VsdC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmg6CisgICAgICAgIChJbmplY3RlZEJ1
bmRsZU5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5oOgorICAgICAgICAoSW5qZWN0ZWRCdW5kbGVT
Y3JpcHRXb3JsZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5Lmg6
CisgICAgICAgIChQYWdlT3ZlcmxheSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YkZyYW1lLmg6CisgICAgICAgIChXZWJGcmFtZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkluc3BlY3Rvci5oOgorICAgICAgICAoV2ViSW5zcGVjdG9yKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViUGFnZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VHcm91cFByb3h5Lmg6CisgICAgICAgIChXZWJQ
YWdlR3JvdXBQcm94eSk6CisKIDIwMTMtMDMtMjEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgVGlsZWQgcGFnZSBvdmVybGF5IGxheWVycyBkb24ndCBj
cmVhdGUgdGlsZXMgdW50aWwgdGhlIGZpcnN0IGZsdXNoIGFmdGVyIHRoZXkgc3dpdGNoIHRvIGJl
aW5nIHRpbGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKaW5kZXggNWVjZWI1NjIuLjk3MTA4
MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKQEAgLTE0OCw2ICsxNDgsMjMgQEAgcHJv
dGVjdGVkOgogICAgIEFQSU9iamVjdCgpOwogfTsKIAordGVtcGxhdGUgPEFQSU9iamVjdDo6VHlw
ZSBBcmd1bWVudFR5cGU+CitjbGFzcyBUeXBlZEFQSU9iamVjdCA6IHB1YmxpYyBBUElPYmplY3Qg
eworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBBcmd1bWVudFR5cGU7
CisKKyAgICB2aXJ0dWFsIH5UeXBlZEFQSU9iamVjdCgpCisgICAgeworICAgIH0KKworcHJvdGVj
dGVkOgorICAgIFR5cGVkQVBJT2JqZWN0KCkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCBU
eXBlIHR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBBUElUeXBlOyB9Cit9OworCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEFQSU9iamVjdF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvSW1tdXRhYmxlQXJyYXkuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9JbW11dGFibGVBcnJheS5oCmluZGV4IGQyMjA4Y2QuLjZmN2U3NjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9JbW11dGFibGVBcnJheS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9JbW11dGFibGVBcnJheS5oCkBAIC0zNSw5ICszNSw4IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiAvLyBJbW11dGFibGVBcnJheSAtIEFuIGltbXV0YWJsZSBhcnJheSB0eXBlIHN1
aXRhYmxlIGZvciB2ZW5kaW5nIHRvIGFuIEFQSS4KIAotY2xhc3MgSW1tdXRhYmxlQXJyYXkgOiBw
dWJsaWMgQVBJT2JqZWN0IHsKK2NsYXNzIEltbXV0YWJsZUFycmF5IDogcHVibGljIFR5cGVkQVBJ
T2JqZWN0PEFQSU9iamVjdDo6VHlwZUFycmF5PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0
IFR5cGUgQVBJVHlwZSA9IFR5cGVBcnJheTsKICAgICBlbnVtIEFkb3B0VGFnIHsgQWRvcHQgfTsK
IAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEltbXV0YWJsZUFycmF5PiBjcmVhdGUoKQpAQCAtNzMs
OCArNzIsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgSW1tdXRhYmxlQXJyYXkoQVBJT2JqZWN0KiogZW50
cmllcywgc2l6ZV90KTsKICAgICBJbW11dGFibGVBcnJheShWZWN0b3I8UmVmUHRyPEFQSU9iamVj
dD4gPiYgZW50cmllcyk7CiAKLSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJu
IEFQSVR5cGU7IH0KLQogICAgIFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0PiA+IG1fZW50cmllczsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9JbW11dGFibGVEaWN0aW9u
YXJ5LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvSW1tdXRhYmxlRGljdGlvbmFyeS5oCmluZGV4
IDNmNTkyYzUuLmM5Njk2MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9JbW11
dGFibGVEaWN0aW9uYXJ5LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0ltbXV0YWJsZURp
Y3Rpb25hcnkuaApAQCAtMzgsMTAgKzM4LDggQEAgY2xhc3MgSW1tdXRhYmxlQXJyYXk7CiAKIC8v
IEltbXV0YWJsZURpY3Rpb25hcnkgLSBBbiBpbW11dGFibGUgZGljdGlvbmFyeSB0eXBlIHN1aXRh
YmxlIGZvciB2ZW5kaW5nIHRvIGFuIEFQSS4KIAotY2xhc3MgSW1tdXRhYmxlRGljdGlvbmFyeSA6
IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3MgSW1tdXRhYmxlRGljdGlvbmFyeSA6IHB1YmxpYyBU
eXBlZEFQSU9iamVjdDxBUElPYmplY3Q6OlR5cGVEaWN0aW9uYXJ5PiB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVEaWN0aW9uYXJ5OwotCiAgICAgdHlwZWRl
ZiBIYXNoTWFwPFN0cmluZywgUmVmUHRyPEFQSU9iamVjdD4gPiBNYXBUeXBlOwogCiAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8SW1tdXRhYmxlRGljdGlvbmFyeT4gY3JlYXRlKCkKQEAgLTg1LDggKzgz
LDYgQEAgcHJvdGVjdGVkOgogICAgIEltbXV0YWJsZURpY3Rpb25hcnkoKTsKICAgICBJbW11dGFi
bGVEaWN0aW9uYXJ5KE1hcFR5cGUmIG1hcCk7CiAKLSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNv
bnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KLQogICAgIE1hcFR5cGUgbV9tYXA7CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQXJjaGl2ZS5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkFyY2hpdmUuaAppbmRleCBiMTZkNTUxMS4uNmEwN2E0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkFyY2hpdmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViQXJjaGl2ZS5oCkBAIC00Myw5ICs0Myw4IEBAIGNsYXNzIEltbXV0YWJsZUFy
cmF5OwogY2xhc3MgV2ViQXJjaGl2ZVJlc291cmNlOwogY2xhc3MgV2ViRGF0YTsKIAotY2xhc3Mg
V2ViQXJjaGl2ZSA6IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3MgV2ViQXJjaGl2ZSA6IHB1Ymxp
YyBUeXBlZEFQSU9iamVjdDxBUElPYmplY3Q6OlR5cGVXZWJBcmNoaXZlPiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVXZWJBcmNoaXZlOwogICAgIHZpcnR1
YWwgfldlYkFyY2hpdmUoKTsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkFyY2hpdmU+IGNy
ZWF0ZShXZWJBcmNoaXZlUmVzb3VyY2UqIG1haW5SZXNvdXJjZSwgSW1tdXRhYmxlQXJyYXkqIHN1
YnJlc291cmNlcywgSW1tdXRhYmxlQXJyYXkqIHN1YmZyYW1lQXJjaGl2ZXMpOwpAQCAtNjYsOCAr
NjUsNiBAQCBwcml2YXRlOgogICAgIFdlYkFyY2hpdmUoV2ViRGF0YSopOwogICAgIFdlYkFyY2hp
dmUoUGFzc1JlZlB0cjxXZWJDb3JlOjpMZWdhY3lXZWJBcmNoaXZlPik7CiAKLSAgICB2aXJ0dWFs
IFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KLQogICAgIFJlZlB0cjxXZWJD
b3JlOjpMZWdhY3lXZWJBcmNoaXZlPiBtX2xlZ2FjeVdlYkFyY2hpdmU7CiAgICAgUmVmUHRyPFdl
YkFyY2hpdmVSZXNvdXJjZT4gbV9jYWNoZWRNYWluUmVzb3VyY2U7CiAgICAgUmVmUHRyPEltbXV0
YWJsZUFycmF5PiBtX2NhY2hlZFN1YnJlc291cmNlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJBcmNoaXZlUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJBcmNoaXZlUmVzb3VyY2UuaAppbmRleCA4NTkyODRkLi4xOWE4NzkwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQXJjaGl2ZVJlc291cmNlLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkFyY2hpdmVSZXNvdXJjZS5oCkBAIC00Myw5ICs0Myw4IEBAIGNsYXNz
IFdlYkRhdGE7CiBjbGFzcyBXZWJTdHJpbmc7CiBjbGFzcyBXZWJVUkw7CiAKLWNsYXNzIFdlYkFy
Y2hpdmVSZXNvdXJjZSA6IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3MgV2ViQXJjaGl2ZVJlc291
cmNlIDogcHVibGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6VHlwZVdlYkFyY2hpdmVSZXNv
dXJjZT4gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlV2Vi
QXJjaGl2ZVJlc291cmNlOwogICAgIHZpcnR1YWwgfldlYkFyY2hpdmVSZXNvdXJjZSgpOwogCiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQXJjaGl2ZVJlc291cmNlPiBjcmVhdGUoV2ViRGF0YSos
IGNvbnN0IFN0cmluZyYgVVJMLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcm
IHRleHRFbmNvZGluZyk7CkBAIC02Miw4ICs2MSw2IEBAIHByaXZhdGU6CiAgICAgV2ViQXJjaGl2
ZVJlc291cmNlKFdlYkRhdGEqLCBjb25zdCBTdHJpbmcmIFVSTCwgY29uc3QgU3RyaW5nJiBNSU1F
VHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0RW5jb2RpbmcpOwogICAgIFdlYkFyY2hpdmVSZXNvdXJj
ZShQYXNzUmVmUHRyPFdlYkNvcmU6OkFyY2hpdmVSZXNvdXJjZT4pOwogCi0gICAgdmlydHVhbCBU
eXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9Ci0KICAgICBSZWZQdHI8V2ViQ29y
ZTo6QXJjaGl2ZVJlc291cmNlPiBtX2FyY2hpdmVSZXNvdXJjZTsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYWNrRm9yd2FyZExpc3RJdGVtLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oCmluZGV4IDJmMzRmNWYuLmYz
NzMyNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYWNrRm9yd2FyZExp
c3RJdGVtLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhY2tGb3J3YXJkTGlzdEl0
ZW0uaApAQCAtMzcsMTAgKzM3LDggQEAgbmFtZXNwYWNlIENvcmVJUEMgewogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAotY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSA6IHB1YmxpYyBBUElPYmpl
Y3QgeworY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSA6IHB1YmxpYyBUeXBlZEFQSU9iamVj
dDxBUElPYmplY3Q6OlR5cGVCYWNrRm9yd2FyZExpc3RJdGVtPiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVCYWNrRm9yd2FyZExpc3RJdGVtOwotCiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8V2ViQmFja0ZvcndhcmRMaXN0SXRlbT4gY3JlYXRlKGNvbnN0IFN0
cmluZyYgb3JpZ2luYWxVUkwsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxl
LCBjb25zdCB1aW50OF90KiBiYWNrRm9yd2FyZERhdGEsIHNpemVfdCBiYWNrRm9yd2FyZERhdGFT
aXplLCB1aW50NjRfdCBpdGVtSUQpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0ob3JpZ2luYWxVUkwsIHVybCwgdGl0bGUsIGJhY2tGb3J3
YXJkRGF0YSwgYmFja0ZvcndhcmREYXRhU2l6ZSwgaXRlbUlEKSk7CkBAIC03MCw4ICs2OCw2IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgV2ViQmFja0ZvcndhcmRMaXN0SXRlbShjb25zdCBTdHJp
bmcmIG9yaWdpbmFsVVJMLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSwg
Y29uc3QgdWludDhfdCogYmFja0ZvcndhcmREYXRhLCBzaXplX3QgYmFja0ZvcndhcmREYXRhU2l6
ZSwgdWludDY0X3QgaXRlbUlEKTsKIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyBy
ZXR1cm4gQVBJVHlwZTsgfQotCiAgICAgU3RyaW5nIG1fb3JpZ2luYWxVUkw7CiAgICAgU3RyaW5n
IG1fdXJsOwogICAgIFN0cmluZyBtX3RpdGxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYXR0
ZXJ5U3RhdHVzLmgKaW5kZXggNmUzZGVhMi4uZDY2YzI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQmF0dGVyeVN0YXR1cy5oCkBAIC0zNSwxMCArMzUsOCBAQAogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAotY2xhc3MgV2ViQmF0dGVyeVN0YXR1cyA6IHB1YmxpYyBBUElPYmplY3QgeworY2xh
c3MgV2ViQmF0dGVyeVN0YXR1cyA6IHB1YmxpYyBUeXBlZEFQSU9iamVjdDxBUElPYmplY3Q6OlR5
cGVCYXR0ZXJ5U3RhdHVzPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlw
ZSA9IFR5cGVCYXR0ZXJ5U3RhdHVzOwotCiAgICAgc3RydWN0IERhdGEgewogICAgICAgICB2b2lk
IGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICAgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYsIERhdGEmKTsKQEAgLTY1LDgg
KzYzLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXZWJCYXR0ZXJ5U3RhdHVzKGJvb2wgaXND
aGFyZ2luZywgZG91YmxlIGNoYXJnaW5nVGltZSwgZG91YmxlIGRpc2NoYXJnaW5nVGltZSwgZG91
YmxlIGxldmVsKTsKIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJ
VHlwZTsgfQotCiAgICAgRGF0YSBtX2RhdGE7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQ2VydGlmaWNhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQ2VydGlmaWNhdGVJbmZvLmgKaW5kZXggODRmZjIzMS4uMDYxODJmYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNlcnRpZmljYXRlSW5mby5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJDZXJ0aWZpY2F0ZUluZm8uaApAQCAtMzIsMTAgKzMyLDggQEAKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFdlYkNlcnRpZmljYXRlSW5mbyA6IHB1YmxpYyBB
UElPYmplY3QgeworY2xhc3MgV2ViQ2VydGlmaWNhdGVJbmZvIDogcHVibGljIFR5cGVkQVBJT2Jq
ZWN0PEFQSU9iamVjdDo6VHlwZUNlcnRpZmljYXRlSW5mbz4gewogcHVibGljOgotICAgIHN0YXRp
YyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlQ2VydGlmaWNhdGVJbmZvOwotCiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8V2ViQ2VydGlmaWNhdGVJbmZvPiBjcmVhdGUoY29uc3QgUGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm8mIGluZm8pCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdl
YkNlcnRpZmljYXRlSW5mbyhpbmZvKSk7CkBAIC00OSw4ICs0Nyw2IEBAIHByaXZhdGU6CiAgICAg
ewogICAgIH0KIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlw
ZTsgfQotCiAgICAgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8gbV9wbGF0Zm9ybUNlcnRpZmljYXRl
SW5mbzsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29ubmVjdGlvbi5oCmluZGV4IDllMGNl
MmMuLmI3NzJlNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb25uZWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbm5lY3Rpb24uaApAQCAtMzQs
OSArMzQsOCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgV2ViQ29ubmVjdGlvbiA6
IHB1YmxpYyBBUElPYmplY3QsIHB1YmxpYyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1Ymxp
YyBDb3JlSVBDOjpNZXNzYWdlU2VuZGVyPFdlYkNvbm5lY3Rpb24+IHsKK2NsYXNzIFdlYkNvbm5l
Y3Rpb24gOiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpUeXBlQ29ubmVjdGlvbj4s
IHB1YmxpYyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBDb3JlSVBDOjpNZXNzYWdl
U2VuZGVyPFdlYkNvbm5lY3Rpb24+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgVHlwZSBB
UElUeXBlID0gVHlwZUNvbm5lY3Rpb247CiAgICAgdmlydHVhbCB+V2ViQ29ubmVjdGlvbigpOwog
CiAgICAgdm9pZCBpbml0aWFsaXplQ29ubmVjdGlvbkNsaWVudChjb25zdCBXS0Nvbm5lY3Rpb25D
bGllbnQqKTsKQEAgLTUwLDggKzQ5LDYgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIGV4cGxp
Y2l0IFdlYkNvbm5lY3Rpb24oKTsKIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyBy
ZXR1cm4gQVBJVHlwZTsgfQotCiAgICAgdmlydHVhbCB2b2lkIGVuY29kZU1lc3NhZ2VCb2R5KENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciYsIEFQSU9iamVjdCopID0gMDsKICAgICB2aXJ0dWFsIGJv
b2wgZGVjb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgUmVmUHRyPEFQ
SU9iamVjdD4mKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b250ZXh0TWVudUl0ZW0uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0
ZW0uaAppbmRleCA4OTNkZDViLi4yNDE0YTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkNvbnRleHRNZW51SXRlbS5oCkBAIC0zNSwxMCArMzUsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogY2xhc3MgSW1tdXRhYmxlQXJyYXk7CiAKLWNsYXNzIFdlYkNvbnRleHRNZW51SXRlbSA6IHB1
YmxpYyBBUElPYmplY3QgeworY2xhc3MgV2ViQ29udGV4dE1lbnVJdGVtIDogcHVibGljIFR5cGVk
QVBJT2JqZWN0PEFQSU9iamVjdDo6VHlwZUNvbnRleHRNZW51SXRlbT4gewogcHVibGljOgotICAg
IHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlQ29udGV4dE1lbnVJdGVtOwotCiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8V2ViQ29udGV4dE1lbnVJdGVtPiBjcmVhdGUoY29uc3QgV2ViQ29u
dGV4dE1lbnVJdGVtRGF0YSYgZGF0YSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgV2ViQ29udGV4dE1lbnVJdGVtKGRhdGEpKTsKQEAgLTU1LDkgKzUzLDcgQEAgcHVibGljOgog
CiBwcml2YXRlOgogICAgIFdlYkNvbnRleHRNZW51SXRlbShjb25zdCBXZWJDb250ZXh0TWVudUl0
ZW1EYXRhJik7Ci0gICAgCi0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBB
UElUeXBlOyB9Ci0gICAgCisKICAgICBXZWJDb250ZXh0TWVudUl0ZW1EYXRhIG1fd2ViQ29udGV4
dE1lbnVJdGVtRGF0YTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJEYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRGF0YS5oCmluZGV4IGE1YTdkYzE0
Li5lMzRiYmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRGF0YS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJEYXRhLmgKQEAgLTM1LDEwICszNSw4IEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogCiAvLyBXZWJEYXRhIC0gQSBkYXRhIGJ1ZmZlciB0eXBlIHN1aXRh
YmxlIGZvciB2ZW5kaW5nIHRvIGFuIEFQSS4KIAotY2xhc3MgV2ViRGF0YSA6IHB1YmxpYyBBUElP
YmplY3QgeworY2xhc3MgV2ViRGF0YSA6IHB1YmxpYyBUeXBlZEFQSU9iamVjdDxBUElPYmplY3Q6
OlR5cGVEYXRhPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5
cGVEYXRhOwotCiAgICAgdHlwZWRlZiB2b2lkICgqRnJlZURhdGFGdW5jdGlvbikodW5zaWduZWQg
Y2hhciosIGNvbnN0IHZvaWQqIGNvbnRleHQpOwogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2Vi
RGF0YT4gY3JlYXRlV2l0aG91dENvcHlpbmcoY29uc3QgdW5zaWduZWQgY2hhciogYnl0ZXMsIHNp
emVfdCBzaXplLCBGcmVlRGF0YUZ1bmN0aW9uIGZyZWVEYXRhRnVuY3Rpb24sIGNvbnN0IHZvaWQq
IGNvbnRleHQpCkBAIC04OCw4ICs4Niw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBmYXN0RnJl
ZShzdGF0aWNfY2FzdDx2b2lkKj4oYnl0ZXMpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIFR5cGUg
dHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KLQogICAgIGNvbnN0IHVuc2lnbmVkIGNo
YXIqIG1fYnl0ZXM7CiAgICAgc2l6ZV90IG1fc2l6ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkVycm9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXJyb3Iu
aAppbmRleCA5YzVkZGIwLi4zNWVhMzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViRXJyb3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXJyb3IuaApAQCAt
MzQsMTAgKzM0LDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIC8vIFdlYkVycm9yIC0gQW4gZXJy
b3IgdHlwZSBzdWl0YWJsZSBmb3IgdmVuZGluZyB0byBhbiBBUEkuCiAKLWNsYXNzIFdlYkVycm9y
IDogcHVibGljIEFQSU9iamVjdCB7CitjbGFzcyBXZWJFcnJvciA6IHB1YmxpYyBUeXBlZEFQSU9i
amVjdDxBUElPYmplY3Q6OlR5cGVFcnJvcj4gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBU
eXBlIEFQSVR5cGUgPSBUeXBlRXJyb3I7Ci0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJFcnJv
cj4gY3JlYXRlKCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViRXJyb3Ip
OwpAQCAtNTEsNyArNDksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFN0cmluZyYgd2Vi
S2l0RXJyb3JEb21haW4oKTsKIAogICAgIGNvbnN0IFN0cmluZyYgZG9tYWluKCkgY29uc3QgeyBy
ZXR1cm4gbV9wbGF0Zm9ybUVycm9yLmRvbWFpbigpOyB9Ci0gICAgaW50IGVycm9yQ29kZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcGxhdGZvcm1FcnJvci5lcnJvckNvZGUoKTs7IH0KKyAgICBpbnQgZXJy
b3JDb2RlKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybUVycm9yLmVycm9yQ29kZSgpOyB9CiAg
ICAgY29uc3QgU3RyaW5nJiBmYWlsaW5nVVJMKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybUVy
cm9yLmZhaWxpbmdVUkwoKTsgfQogICAgIGNvbnN0IFN0cmluZyYgbG9jYWxpemVkRGVzY3JpcHRp
b24oKSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtRXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24o
KTsgfQogCkBAIC02Nyw4ICs2NSw2IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHZp
cnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQotCiAgICAgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciBtX3BsYXRmb3JtRXJyb3I7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaAppbmRleCBmOWUyOGE1Li45YmE0MDkz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgK
QEAgLTMzLDEwICszMyw4IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBXZWJHZW9s
b2NhdGlvblBvc2l0aW9uIDogcHVibGljIEFQSU9iamVjdCB7CitjbGFzcyBXZWJHZW9sb2NhdGlv
blBvc2l0aW9uIDogcHVibGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6VHlwZUdlb2xvY2F0
aW9uUG9zaXRpb24+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0g
VHlwZUdlb2xvY2F0aW9uUG9zaXRpb247Ci0KICAgICBzdHJ1Y3QgRGF0YSB7CiAgICAgICAgIHZv
aWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgICAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgRGF0YSYpOwpAQCAtODYs
OCArODQsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24o
ZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3Vi
bGUgYWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNBbHRpdHVkZSwgZG91YmxlIGFsdGl0dWRlLCBib29s
IHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wg
cHJvdmlkZXNIZWFkaW5nLCBkb3VibGUgaGVhZGluZywgYm9vbCBwcm92aWRlc1NwZWVkLCBkb3Vi
bGUgc3BlZWQpOwogCi0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElU
eXBlOyB9Ci0KICAgICBEYXRhIG1fZGF0YTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJHZW9tZXRyeS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkdlb21l
dHJ5LmgKaW5kZXggYmRlYTljNy4uMzY2MWFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkdlb21ldHJ5LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkdlb21l
dHJ5LmgKQEAgLTM4LDEwICszOCw4IEBAIG5hbWVzcGFjZSBDb3JlSVBDIHsKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKLWNsYXNzIFdlYlNpemUgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK2NsYXNzIFdl
YlNpemUgOiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpUeXBlU2l6ZT4gewogcHVi
bGljOgotICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlU2l6ZTsKLQogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFdlYlNpemU+IGNyZWF0ZShjb25zdCBXS1NpemUmIHNpemUpCiAgICAg
ewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlNpemUoc2l6ZSkpOwpAQCAtNTQsMTUg
KzUyLDExIEBAIHByaXZhdGU6CiAgICAgICAgIDogbV9zaXplKHNpemUpCiAgICAgeyB9CiAKLSAg
ICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KLQogICAgIFdL
U2l6ZSBtX3NpemU7CiB9OwogCi1jbGFzcyBXZWJQb2ludCA6IHB1YmxpYyBBUElPYmplY3Qgewor
Y2xhc3MgV2ViUG9pbnQgOiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpUeXBlUG9p
bnQ+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZVBvaW50
OwotCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViUG9pbnQ+IGNyZWF0ZShjb25zdCBXS1BvaW50
JiBwb2ludCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViUG9pbnQocG9p
bnQpKTsKQEAgLTc1LDE1ICs2OSwxMSBAQCBwcml2YXRlOgogICAgICAgICA6IG1fcG9pbnQocG9p
bnQpCiAgICAgeyB9CiAKLSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQ
SVR5cGU7IH0KLQogICAgIFdLUG9pbnQgbV9wb2ludDsKIH07CiAKLWNsYXNzIFdlYlJlY3QgOiBw
dWJsaWMgQVBJT2JqZWN0IHsKK2NsYXNzIFdlYlJlY3QgOiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8
QVBJT2JqZWN0OjpUeXBlUmVjdD4gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQ
SVR5cGUgPSBUeXBlUmVjdDsKLQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlJlY3Q+IGNyZWF0
ZShjb25zdCBXS1JlY3QmIHJlY3QpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFdlYlJlY3QocmVjdCkpOwpAQCAtOTYsOCArODYsNiBAQCBwcml2YXRlOgogICAgICAgICA6IG1f
cmVjdChyZWN0KQogICAgIHsgfQogCi0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJl
dHVybiBBUElUeXBlOyB9Ci0KICAgICBXS1JlY3QgbV9yZWN0OwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkdyYXBoaWNzQ29udGV4dC5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkdyYXBoaWNzQ29udGV4dC5oCmluZGV4IDg1ODVkMzQuLjRjZGQ3NzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJHcmFwaGljc0NvbnRleHQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR3JhcGhpY3NDb250ZXh0LmgKQEAgLTM4LDEwICsz
OCw4IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBXZWJHcmFwaGljc0NvbnRleHQg
OiBwdWJsaWMgQVBJT2JqZWN0IHsKK2NsYXNzIFdlYkdyYXBoaWNzQ29udGV4dCA6IHB1YmxpYyBU
eXBlZEFQSU9iamVjdDxBUElPYmplY3Q6OlR5cGVHcmFwaGljc0NvbnRleHQ+IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZUdyYXBoaWNzQ29udGV4dDsKLQog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkdyYXBoaWNzQ29udGV4dD4gY3JlYXRlKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0KQogICAgIHsKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBXZWJHcmFwaGljc0NvbnRleHQoZ3JhcGhpY3NDb250ZXh0KSk7CkBAIC01
Nyw4ICs1NSw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViR3JhcGhpY3ND
b250ZXh0KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCopOwogCi0gICAgdmlydHVhbCBUeXBlIHR5
cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9Ci0KICNpZiBVU0UoQ0cpCiAgICAgUmV0YWlu
UHRyPENHQ29udGV4dFJlZj4gbV9wbGF0Zm9ybUNvbnRleHQ7CiAjZWxpZiBVU0UoQ0FJUk8pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdC5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHQuaAppbmRleCA4ZjJhY2E3Li5hNWIy
NDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0LmgKQEAgLTM5LDEw
ICszOSw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJGcmFtZTsKIAotY2xhc3Mg
V2ViSGl0VGVzdFJlc3VsdCA6IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3MgV2ViSGl0VGVzdFJl
c3VsdCA6IHB1YmxpYyBUeXBlZEFQSU9iamVjdDxBUElPYmplY3Q6OlR5cGVIaXRUZXN0UmVzdWx0
PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVIaXRUZXN0
UmVzdWx0OwotCiAgICAgc3RydWN0IERhdGEgewogICAgICAgICBTdHJpbmcgYWJzb2x1dGVJbWFn
ZVVSTDsKICAgICAgICAgU3RyaW5nIGFic29sdXRlUERGVVJMOwpAQCAtMTE0LDggKzExMiw2IEBA
IHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3Qg
eyByZXR1cm4gQVBJVHlwZTsgfQotCiAgICAgRGF0YSBtX2RhdGE7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSW1hZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJJbWFnZS5oCmluZGV4IDAzODBiN2QuLmQyZDM4MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJJ
bWFnZS5oCkBAIC00MCwxMCArNDAsOCBAQCBjbGFzcyBTaGFyZWFibGVCaXRtYXA7CiAKIC8vIFdl
YkltYWdlIC0gQW4gaW1hZ2UgdHlwZSBzdWl0YWJsZSBmb3IgdmVuZGluZyB0byBhbiBBUEkuCiAK
LWNsYXNzIFdlYkltYWdlIDogcHVibGljIEFQSU9iamVjdCB7CitjbGFzcyBXZWJJbWFnZSA6IHB1
YmxpYyBUeXBlZEFQSU9iamVjdDxBUElPYmplY3Q6OlR5cGVJbWFnZT4gewogcHVibGljOgotICAg
IHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlSW1hZ2U7Ci0KICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxXZWJJbWFnZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBJbWFnZU9w
dGlvbnMpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkltYWdlPiBjcmVhdGUoUGFzc1JlZlB0
cjxTaGFyZWFibGVCaXRtYXA+KTsKICAgICB+V2ViSW1hZ2UoKTsKQEAgLTU1LDggKzUzLDYgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBXZWJJbWFnZShQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1h
cD4pOwogCi0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9
Ci0KICAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBtX2JpdG1hcDsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJOZXR3b3JrSW5mby5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYk5ldHdvcmtJbmZvLmgKaW5kZXggNWFmMTM5Yi4uMmI0YmVhMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk5ldHdvcmtJbmZvLmgKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYk5ldHdvcmtJbmZvLmgKQEAgLTM1LDEwICszNSw4IEBACiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBXZWJOZXR3b3JrSW5mbyA6IHB1YmxpYyBBUElPYmpl
Y3QgeworY2xhc3MgV2ViTmV0d29ya0luZm8gOiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2Jq
ZWN0OjpUeXBlTmV0d29ya0luZm8+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgVHlwZSBB
UElUeXBlID0gVHlwZU5ldHdvcmtJbmZvOwotCiAgICAgc3RydWN0IERhdGEgewogICAgICAgICB2
b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICAgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYsIERhdGEmKTsKQEAgLTYy
LDggKzYwLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXZWJOZXR3b3JrSW5mbyhkb3VibGUg
YmFuZHdpZHRoLCBib29sIG1ldGVyZWQpOwogCi0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25z
dCB7IHJldHVybiBBUElUeXBlOyB9Ci0KICAgICBEYXRhIG1fZGF0YTsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJOdW1iZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJOdW1iZXIuaAppbmRleCAwYjA5MmVmLi5mOTUwN2M5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViTnVtYmVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYk51bWJlci5oCkBAIC0zMiwxMCArMzIsOCBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIE51bWJlclR5cGUsIEFQSU9iamVjdDo6VHlwZSBBUElPYmplY3RUeXBl
PgotY2xhc3MgV2ViTnVtYmVyIDogcHVibGljIEFQSU9iamVjdCB7CitjbGFzcyBXZWJOdW1iZXIg
OiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2JqZWN0VHlwZT4gewogcHVibGljOgotICAgIHN0
YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBBUElPYmplY3RUeXBlOwotCiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8V2ViTnVtYmVyPiBjcmVhdGUoTnVtYmVyVHlwZSB2YWx1ZSkKICAgICB7CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViTnVtYmVyKHZhbHVlKSk7CkBAIC00OSw4ICs0Nyw2
IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29u
c3QgeyByZXR1cm4gQVBJVHlwZTsgfQotCiAgICAgY29uc3QgTnVtYmVyVHlwZSBtX3ZhbHVlOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk9wZW5QYW5lbFBhcmFt
ZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJPcGVuUGFuZWxQYXJhbWV0ZXJzLmgK
aW5kZXggYWIxMmMwZi4uOTA3N2NmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYk9wZW5QYW5lbFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
T3BlblBhbmVsUGFyYW1ldGVycy5oCkBAIC0zNiwxMCArMzYsOCBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogY2xhc3MgSW1tdXRhYmxlQXJyYXk7CiAKLWNsYXNzIFdlYk9wZW5QYW5lbFBhcmFtZXRl
cnMgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK2NsYXNzIFdlYk9wZW5QYW5lbFBhcmFtZXRlcnMgOiBw
dWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpUeXBlT3BlblBhbmVsUGFyYW1ldGVycz4g
ewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlT3BlblBhbmVs
UGFyYW1ldGVyczsKLQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk9wZW5QYW5lbFBhcmFtZXRl
cnM+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzJik7CiAgICAgfldl
Yk9wZW5QYW5lbFBhcmFtZXRlcnMoKTsKIApAQCAtNTMsOCArNTEsNiBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIGV4cGxpY2l0IFdlYk9wZW5QYW5lbFBhcmFtZXRlcnMoY29uc3QgV2ViQ29yZTo6
RmlsZUNob29zZXJTZXR0aW5ncyYpOwogCi0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7
IHJldHVybiBBUElUeXBlOyB9Ci0KICAgICBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzIG1f
c2V0dGluZ3M7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVu
ZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZW5kZXJMYXllci5oCmluZGV4
IDVlYmQwNTAuLjI0NzM4YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJS
ZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZW5kZXJMYXllci5o
CkBAIC0zNiwxMCArMzYsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUGFnZTsK
IAotY2xhc3MgV2ViUmVuZGVyTGF5ZXIgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK2NsYXNzIFdlYlJl
bmRlckxheWVyIDogcHVibGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6VHlwZVJlbmRlckxh
eWVyPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVSZW5k
ZXJMYXllcjsKLQogICAgIGVudW0gQ29tcG9zaXRpbmdMYXllclR5cGUgeyBOb25lLCBOb3JtYWws
IFRpbGVkLCBNZWRpYSwgQ29udGFpbmVyIH07CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJS
ZW5kZXJMYXllcj4gY3JlYXRlKFdlYlBhZ2UqKTsKQEAgLTc2LDggKzc0LDYgQEAgcHJpdmF0ZToK
ICAgICB7CiAgICAgfQogCi0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCBPVkVSUklERSB7
IHJldHVybiBBUElUeXBlOyB9Ci0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxNdXRhYmxlQXJyYXk+
IGNyZWF0ZUFycmF5RnJvbUxheWVyTGlzdChWZWN0b3I8V2ViQ29yZTo6UmVuZGVyTGF5ZXIqPiop
OwogCiAgICAgUmVmUHRyPFdlYlJlbmRlck9iamVjdD4gbV9yZW5kZXJlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJSZW5kZXJPYmplY3QuaAppbmRleCAzZTA1NjIyLi43ZGFkMjhlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlJlbmRlck9iamVjdC5oCkBAIC00MCwxMCArNDAsOCBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUGFnZTsKIAotY2xhc3MgV2ViUmVuZGVyT2JqZWN0
IDogcHVibGljIEFQSU9iamVjdCB7CitjbGFzcyBXZWJSZW5kZXJPYmplY3QgOiBwdWJsaWMgVHlw
ZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpUeXBlUmVuZGVyT2JqZWN0PiB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVSZW5kZXJPYmplY3Q7Ci0KICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxXZWJSZW5kZXJPYmplY3Q+IGNyZWF0ZShXZWJQYWdlKik7CiAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8V2ViUmVuZGVyT2JqZWN0PiBjcmVhdGUoV2ViQ29yZTo6UmVuZGVyT2Jq
ZWN0KiByZW5kZXJlcikKICAgICB7CkBAIC03OSw4ICs3Nyw2IEBAIHByaXZhdGU6CiAgICAgewog
ICAgIH0KIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
QVBJVHlwZTsgfQotCiAgICAgUmVmUHRyPE11dGFibGVBcnJheT4gbV9jaGlsZHJlbjsKIAogICAg
IFN0cmluZyBtX25hbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU2Vj
dXJpdHlPcmlnaW4uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJTZWN1cml0eU9yaWdpbi5o
CmluZGV4IGI2ZWMxYzkuLmYyNDMzNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJTZWN1cml0eU9yaWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJTZWN1
cml0eU9yaWdpbi5oCkBAIC0zMiwxMCArMzIsOCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
Y2xhc3MgV2ViU2VjdXJpdHlPcmlnaW4gOiBwdWJsaWMgQVBJT2JqZWN0IHsKK2NsYXNzIFdlYlNl
Y3VyaXR5T3JpZ2luIDogcHVibGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6VHlwZVNlY3Vy
aXR5T3JpZ2luPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5
cGVTZWN1cml0eU9yaWdpbjsKLQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlNlY3VyaXR5T3Jp
Z2luPiBjcmVhdGVGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIGNyZWF0ZShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmlu
ZyhzdHJpbmcpKTsKQEAgLTcxLDggKzY5LDYgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgfQogCi0g
ICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9Ci0KICAgICBS
ZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fc2VjdXJpdHlPcmlnaW47CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKaW5k
ZXggZWNiMmE5Ni4uMGU1MThmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuaApAQCAtMzQsMTAgKzM0LDggQEAKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKLWNsYXNzIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSA6IHB1YmxpYyBBUElPYmpl
Y3QgeworY2xhc3MgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlIDogcHVibGljIFR5cGVkQVBJT2Jq
ZWN0PEFQSU9iamVjdDo6VHlwZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gewogcHVibGljOgotICAg
IHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlU2VyaWFsaXplZFNjcmlwdFZhbHVlOwot
ICAgIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gY3Jl
YXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVk
VmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZShzZXJpYWxpemVkVmFsdWUpKTsKQEAgLTcwLDkgKzY4LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgOiBtX3NlcmlhbGl6ZWRTY3JpcHRWYWx1ZShzZXJpYWxpemVkU2NyaXB0VmFsdWUp
CiAgICAgewogICAgIH0KLSAgICAKLSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0
dXJuIEFQSVR5cGU7IH0KLSAgICAKKwogICAgIFJlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IG1fc2VyaWFsaXplZFNjcmlwdFZhbHVlOwogfTsKICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJTdHJpbmcuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJTdHJpbmcuaAppbmRleCA3OTFlNmEzLi4yZDYwNWQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViU3RyaW5nLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlN0cmluZy5oCkBAIC0zOCwxMCArMzgsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogLy8gV2Vi
U3RyaW5nIC0gQSBzdHJpbmcgdHlwZSBzdWl0YWJsZSBmb3IgdmVuZGluZyB0byBhbiBBUEkuCiAK
LWNsYXNzIFdlYlN0cmluZyA6IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3MgV2ViU3RyaW5nIDog
cHVibGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6VHlwZVN0cmluZz4gewogcHVibGljOgot
ICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlU3RyaW5nOwotCiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8V2ViU3RyaW5nPiBjcmVhdGVOdWxsKCkKICAgICB7CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgV2ViU3RyaW5nKCkpOwpAQCAtMTEyLDggKzExMCw2IEBAIHByaXZhdGU6
CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4g
QVBJVHlwZTsgfQotCiAgICAgU3RyaW5nIG1fc3RyaW5nOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlVSTC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlVS
TC5oCmluZGV4IDQ2ZWJiNDMuLjI3YTc0NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJVUkwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViVVJMLmgKQEAgLTM3
LDEwICszNyw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiAvLyBXZWJVUkwgLSBBIFVSTCB0eXBl
IHN1aXRhYmxlIGZvciB2ZW5kaW5nIHRvIGFuIEFQSS4KIAotY2xhc3MgV2ViVVJMIDogcHVibGlj
IEFQSU9iamVjdCB7CitjbGFzcyBXZWJVUkwgOiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2Jq
ZWN0OjpUeXBlVVJMPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9
IFR5cGVVUkw7Ci0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJVUkw+IGNyZWF0ZShjb25zdCBT
dHJpbmcmIHN0cmluZykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViVVJM
KHN0cmluZykpOwpAQCAtMTA1LDggKzEwMyw2IEBAIHByaXZhdGU6CiAgICAgICAgIG1fcGFyc2Vk
VVJMID0gV1RGOjphZG9wdFB0cihuZXcgV2ViQ29yZTo6S1VSTChXZWJDb3JlOjpLVVJMKCksIG1f
c3RyaW5nKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVy
biBBUElUeXBlOyB9Ci0KICAgICBTdHJpbmcgbV9zdHJpbmc7CiAgICAgbXV0YWJsZSBPd25QdHI8
V2ViQ29yZTo6S1VSTD4gbV9wYXJzZWRVUkw7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlVSTFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJVUkxS
ZXF1ZXN0LmgKaW5kZXggZDNlMzk4Mi4uNGY4YWVmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlVSTFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
VVJMUmVxdWVzdC5oCkBAIC0zOCwxMCArMzgsOCBAQCB0eXBlZGVmIHZvaWQqIFBsYXRmb3JtUmVx
dWVzdDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFdlYlVSTFJlcXVlc3QgOiBwdWJs
aWMgQVBJT2JqZWN0IHsKK2NsYXNzIFdlYlVSTFJlcXVlc3QgOiBwdWJsaWMgVHlwZWRBUElPYmpl
Y3Q8QVBJT2JqZWN0OjpUeXBlVVJMUmVxdWVzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBjb25z
dCBUeXBlIEFQSVR5cGUgPSBUeXBlVVJMUmVxdWVzdDsKLQogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFdlYlVSTFJlcXVlc3Q+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpLVVJMJik7CiAKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxXZWJVUkxSZXF1ZXN0PiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KQpAQCAtNjYsOCArNjQsNiBAQCBwcml2YXRlOgogICAgIGV4cGxp
Y2l0IFdlYlVSTFJlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAg
ZXhwbGljaXQgV2ViVVJMUmVxdWVzdChQbGF0Zm9ybVJlcXVlc3QpOwogCi0gICAgdmlydHVhbCBU
eXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9Ci0KICAgICBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgbV9yZXF1ZXN0OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlVSTFJlc3BvbnNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViVVJMUmVz
cG9uc2UuaAppbmRleCA3N2JiYzE4Li5hZGQzNDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViVVJMUmVzcG9uc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
VVJMUmVzcG9uc2UuaApAQCAtMzgsMTAgKzM4LDggQEAgdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybVJl
c3BvbnNlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgV2ViVVJMUmVzcG9uc2UgOiBw
dWJsaWMgQVBJT2JqZWN0IHsKK2NsYXNzIFdlYlVSTFJlc3BvbnNlIDogcHVibGljIFR5cGVkQVBJ
T2JqZWN0PEFQSU9iamVjdDo6VHlwZVVSTFJlc3BvbnNlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVVUkxSZXNwb25zZTsKLQogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFdlYlVSTFJlc3BvbnNlPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlVS
TFJlc3BvbnNlKHJlc3BvbnNlKSk7CkBAIC01OSw4ICs1Nyw2IEBAIHByaXZhdGU6CiAgICAgZXhw
bGljaXQgV2ViVVJMUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwog
ICAgIGV4cGxpY2l0IFdlYlVSTFJlc3BvbnNlKFBsYXRmb3JtUmVzcG9uc2UpOwogCi0gICAgdmly
dHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9Ci0KICAgICBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlIG1fcmVzcG9uc2U7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgKaW5kZXggODhmMDNkYS4uNWMwOGI4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlVzZXJDb250ZW50VVJMUGF0
dGVybi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJVc2VyQ29udGVudFVSTFBhdHRl
cm4uaApAQCAtMzQsMTAgKzM0LDggQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFdl
YlVzZXJDb250ZW50VVJMUGF0dGVybiA6IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3MgV2ViVXNl
ckNvbnRlbnRVUkxQYXR0ZXJuIDogcHVibGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6VHlw
ZVVzZXJDb250ZW50VVJMUGF0dGVybj4gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBUeXBl
IEFQSVR5cGUgPSBUeXBlVXNlckNvbnRlbnRVUkxQYXR0ZXJuOwotCiAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8V2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXR0
ZXJuKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJVc2VyQ29udGVudFVS
TFBhdHRlcm4ocGF0dGVybikpOwpAQCAtNTgsOCArNTYsNiBAQCBwcml2YXRlOgogICAgIHsKICAg
ICB9CiAKLSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0K
LQogICAgIFdlYkNvcmU6OlVzZXJDb250ZW50VVJMUGF0dGVybiBtX3BhdHRlcm47CiAgICAgU3Ry
aW5nIG1fcGF0dGVyblN0cmluZzsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL09iakNPYmplY3RHcmFwaC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9PYmpD
T2JqZWN0R3JhcGguaAppbmRleCA3MTYwYzZmLi45ZDYzZjA1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL09iakNPYmplY3RHcmFwaC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoLmgKQEAgLTMxLDEwICszMSw4IEBACiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi1jbGFzcyBPYmpDT2JqZWN0R3JhcGggOiBwdWJsaWMgQVBJT2JqZWN0
IHsKK2NsYXNzIE9iakNPYmplY3RHcmFwaCA6IHB1YmxpYyBUeXBlZEFQSU9iamVjdDxBUElPYmpl
Y3Q6OlR5cGVPYmpDT2JqZWN0R3JhcGg+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgVHlw
ZSBBUElUeXBlID0gVHlwZU9iakNPYmplY3RHcmFwaDsKLQogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PE9iakNPYmplY3RHcmFwaD4gY3JlYXRlKGlkIHJvb3RPYmplY3QpCiAgICAgewogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IE9iakNPYmplY3RHcmFwaChyb290T2JqZWN0KSk7CkBAIC00OCw4
ICs0Niw2IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgVHlwZSB0eXBl
KCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQotCiAgICAgUmV0YWluUHRyPGlkPiBtX3Jvb3RP
YmplY3Q7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0aGVu
dGljYXRpb24vQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaApp
bmRleCBlODE5MzMxLi5jZTNkNmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZVByb3h5LmgKQEAgLTQxLDEwICs0MSw4IEBAIGNsYXNzIENoaWxkUHJvY2Vzc1Byb3h5Owog
Y2xhc3MgV2ViQ3JlZGVudGlhbDsKIGNsYXNzIFdlYlByb3RlY3Rpb25TcGFjZTsKIAotY2xhc3Mg
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSA6IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3Mg
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSA6IHB1YmxpYyBUeXBlZEFQSU9iamVjdDxBUElP
YmplY3Q6OlR5cGVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZT4gewogcHVibGljOgotICAgIHN0YXRp
YyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7Ci0KICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiBjcmVhdGUo
Y29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCwgQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbikKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VQcm94eShhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgY2hhbGxlbmdlSUQsIGNvbm5l
Y3Rpb24pKTsKQEAgLTY0LDggKzYyLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZVByb3h5KGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJiwgdWludDY0X3QgY2hhbGxlbmdlSUQsIENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKIAotICAg
IHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQotICAgIAogICAg
IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIG1fY29yZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlOwogICAgIHVpbnQ2NF90IG1fY2hhbGxlbmdlSUQ7CiAgICAgUmVmUHRyPENvcmVJUEM6
OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkRl
Y2lzaW9uTGlzdGVuZXIuaAppbmRleCBiMmY5MmY0Li45NDBhNjUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25EZWNpc2lv
bkxpc3RlbmVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9u
L0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oCkBAIC0zNSwxMCArMzUsOCBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk7CiBjbGFz
cyBXZWJDcmVkZW50aWFsOwogCi1jbGFzcyBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIg
OiBwdWJsaWMgQVBJT2JqZWN0IHsKK2NsYXNzIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5l
ciA6IHB1YmxpYyBUeXBlZEFQSU9iamVjdDxBUElPYmplY3Q6OlR5cGVBdXRoZW50aWNhdGlvbkRl
Y2lzaW9uTGlzdGVuZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBl
ID0gVHlwZUF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lcjsKLQogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lcj4gY3JlYXRlKEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlUHJveHkqIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIoYXV0
aGVudGljYXRpb25DaGFsbGVuZ2UpKTsKQEAgLTUyLDggKzUwLDYgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBleHBsaWNpdCBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIoQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VQcm94eSopOwogCi0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7
IHJldHVybiBBUElUeXBlOyB9Ci0gICAgCiAgICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94
eSogbV9jaGFsbGVuZ2VQcm94eTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9XZWJDcmVkZW50aWFsLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQXV0aGVudGljYXRpb24vV2ViQ3JlZGVudGlhbC5oCmluZGV4IDJiMWNjODMuLmE5
NTdlNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRoZW50aWNhdGlv
bi9XZWJDcmVkZW50aWFsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dGhlbnRp
Y2F0aW9uL1dlYkNyZWRlbnRpYWwuaApAQCAtMzcsMTIgKzM3LDEwIEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBXZWJDZXJ0aWZpY2F0ZUluZm87CiAKLWNsYXNzIFdlYkNyZWRlbnRpYWwg
OiBwdWJsaWMgQVBJT2JqZWN0IHsKK2NsYXNzIFdlYkNyZWRlbnRpYWwgOiBwdWJsaWMgVHlwZWRB
UElPYmplY3Q8QVBJT2JqZWN0OjpUeXBlQ3JlZGVudGlhbD4gewogcHVibGljOgogICAgIH5XZWJD
cmVkZW50aWFsKCk7CiAKLSAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZUNyZWRl
bnRpYWw7Ci0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDcmVkZW50aWFsPiBjcmVhdGUoY29u
c3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYgY3JlZGVudGlhbCkKICAgICB7CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgV2ViQ3JlZGVudGlhbChjcmVkZW50aWFsKSk7CkBAIC02OCw4ICs2Niw2
IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViQ3JlZGVudGlhbChjb25zdCBXZWJDb3JlOjpD
cmVkZW50aWFsJik7CiAgICAgZXhwbGljaXQgV2ViQ3JlZGVudGlhbChXZWJDZXJ0aWZpY2F0ZUlu
Zm8qKTsKIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsg
fQotCiAgICAgV2ViQ29yZTo6Q3JlZGVudGlhbCBtX2NvcmVDcmVkZW50aWFsOwogICAgIFJlZlB0
cjxXZWJDZXJ0aWZpY2F0ZUluZm8+IG1fY2VydGlmaWNhdGVJbmZvOwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9XZWJQcm90ZWN0aW9uU3Bh
Y2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9XZWJQcm90ZWN0
aW9uU3BhY2UuaAppbmRleCA3YzM4ODJhLi40ZDQ5MDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQXV0aGVudGljYXRpb24vV2ViUHJvdGVjdGlvblNwYWNlLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL1dlYlByb3RlY3Rpb25TcGFj
ZS5oCkBAIC0zMiwxMCArMzIsOCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgV2Vi
UHJvdGVjdGlvblNwYWNlIDogcHVibGljIEFQSU9iamVjdCB7CitjbGFzcyBXZWJQcm90ZWN0aW9u
U3BhY2UgOiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpUeXBlUHJvdGVjdGlvblNw
YWNlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVQcm90
ZWN0aW9uU3BhY2U7Ci0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJQcm90ZWN0aW9uU3BhY2U+
IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSkK
ICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViUHJvdGVjdGlvblNwYWNlKHBy
b3RlY3Rpb25TcGFjZSkpOwpAQCAtNTMsOCArNTEsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IGV4cGxpY2l0IFdlYlByb3RlY3Rpb25TcGFjZShjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2UmKTsKIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsg
fQotICAgIAogICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSBtX2NvcmVQcm90ZWN0aW9uU3Bh
Y2U7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRG93bmxvYWRz
L0Rvd25sb2FkUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWRQcm94eS5oCmluZGV4IDgxNTZlNGYuLjFkOTgzMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oCkBAIC00NiwxMCArNDYs
OCBAQCBjbGFzcyBXZWJDb250ZXh0OwogY2xhc3MgV2ViRGF0YTsKIGNsYXNzIFdlYlBhZ2VQcm94
eTsKIAotY2xhc3MgRG93bmxvYWRQcm94eSA6IHB1YmxpYyBBUElPYmplY3QsIHB1YmxpYyBDb3Jl
SVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworY2xhc3MgRG93bmxvYWRQcm94eSA6IHB1YmxpYyBUeXBl
ZEFQSU9iamVjdDxBUElPYmplY3Q6OlR5cGVEb3dubG9hZD4sIHB1YmxpYyBDb3JlSVBDOjpNZXNz
YWdlUmVjZWl2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBU
eXBlRG93bmxvYWQ7Ci0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEb3dubG9hZFByb3h5PiBjcmVh
dGUoRG93bmxvYWRQcm94eU1hcCYsIFdlYkNvbnRleHQqKTsKICAgICB+RG93bmxvYWRQcm94eSgp
OwogCkBAIC03Miw4ICs3MCw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgRG93
bmxvYWRQcm94eShEb3dubG9hZFByb3h5TWFwJiwgV2ViQ29udGV4dCopOwogCi0gICAgdmlydHVh
bCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9Ci0KICAgICAvLyBDb3JlSVBD
OjpNZXNzYWdlUmVjZWl2ZXIKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29k
ZXI+JikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKaW5kZXggYzM0YzNmZC4uMzkx
Mjc1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaApAQCAtMzMsMTAgKzMzLDggQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAKIGNsYXNzIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk7CiAKLWNsYXNzIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eSA6IHB1Ymxp
YyBBUElPYmplY3QgeworY2xhc3MgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5IDog
cHVibGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6VHlwZUdlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3Q+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlw
ZUdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7Ci0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZShHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KiBtYW5hZ2VyLCB1aW50NjRfdCBnZW9sb2NhdGlvbklE
KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0UHJveHkobWFuYWdlciwgZ2VvbG9jYXRpb25JRCkpOwpAQCAtNTAsOCArNDgsNiBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94
eShHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KiwgdWludDY0X3QgZ2Vv
bG9jYXRpb25JRCk7CiAKLSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQ
SVR5cGU7IH0KLQogICAgIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkq
IG1fbWFuYWdlcjsKICAgICB1aW50NjRfdCBtX2dlb2xvY2F0aW9uSUQ7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgKaW5kZXggMjRkYjk4Yi4uMjU3NmE3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0zMywyMiAr
MzMsMTggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OwogCi1jbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdCA6IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3QgOiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpUeXBlTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3Q+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElU
eXBlID0gVHlwZU5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OwotICAgIAogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0PiBjcmVhdGUoTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBub3RpZmljYXRp
b25JRCk7Ci0gICAgCisKICAgICB2b2lkIGFsbG93KCk7CiAgICAgdm9pZCBkZW55KCk7Ci0gICAg
CisKICAgICB2b2lkIGludmFsaWRhdGUoKTsKLSAgICAKKwogcHJpdmF0ZToKICAgICBOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdChOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eSosIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKLSAgICAKLSAgICB2aXJ0dWFsIFR5
cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KLSAgICAKKwogICAgIE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KiBtX21hbmFnZXI7CiAgICAgdWludDY0
X3QgbV9ub3RpZmljYXRpb25JRDsgICAgCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uaAppbmRleCA4ZWRjY2Vk
Li4xNGU5MDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0
aW9ucy9XZWJOb3RpZmljYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uaApAQCAtNDEsMTUgKzQxLDEzIEBAIGNsYXNzIEFy
Z3VtZW50RW5jb2RlcjsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFdlYk5vdGlmaWNh
dGlvbiA6IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3MgV2ViTm90aWZpY2F0aW9uIDogcHVibGlj
IFR5cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6VHlwZU5vdGlmaWNhdGlvbj4gewogcHVibGljOgot
ICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlTm90aWZpY2F0aW9uOwotICAgIAog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk5vdGlmaWNhdGlvbj4gY3JlYXRlKGNvbnN0IFN0cmlu
ZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25z
dCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBsYW5nLCBjb25zdCBTdHJpbmcmIGRpciwgY29u
c3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQogICAgIHsK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJOb3RpZmljYXRpb24odGl0bGUsIGJvZHks
IGljb25VUkwsIHRhZywgbGFuZywgZGlyLCBvcmlnaW5TdHJpbmcsIG5vdGlmaWNhdGlvbklEKSk7
CiAgICAgfQotICAgIAorCiAgICAgY29uc3QgU3RyaW5nJiB0aXRsZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdGl0bGU7IH0KICAgICBjb25zdCBTdHJpbmcmIGJvZHkoKSBjb25zdCB7IHJldHVybiBtX2Jv
ZHk7IH0KICAgICBjb25zdCBTdHJpbmcmIGljb25VUkwoKSBjb25zdCB7IHJldHVybiBtX2ljb25V
Ukw7IH0KQEAgLTYzLDggKzYxLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXZWJOb3RpZmlj
YXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBjb25zdCBTdHJp
bmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxhbmcsIGNvbnN0
IFN0cmluZyYgZGlyLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgdWludDY0X3Qgbm90aWZp
Y2F0aW9uSUQpOwogCi0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElU
eXBlOyB9Ci0gICAgCiAgICAgU3RyaW5nIG1fdGl0bGU7CiAgICAgU3RyaW5nIG1fYm9keTsKICAg
ICBTdHJpbmcgbV9pY29uVVJMOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHku
aAppbmRleCAyNmYxMGZhLi4xN2JhMjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHkuaApAQCAtNDMsOSArNDMsOCBAQCBjbGFzcyBXZWJDb250ZXh0OwogY2xhc3MgV2Vi
UGFnZVByb3h5OwogY2xhc3MgV2ViU2VjdXJpdHlPcmlnaW47CiAKLWNsYXNzIFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eSA6IHB1YmxpYyBBUElPYmplY3QsIHB1YmxpYyBXZWJDb250ZXh0U3Vw
cGxlbWVudCwgcHJpdmF0ZSBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworY2xhc3MgV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5IDogcHVibGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6
VHlwZU5vdGlmaWNhdGlvbk1hbmFnZXI+LCBwdWJsaWMgV2ViQ29udGV4dFN1cHBsZW1lbnQsIHBy
aXZhdGUgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29u
c3QgVHlwZSBBUElUeXBlID0gVHlwZU5vdGlmaWNhdGlvbk1hbmFnZXI7CiAKICAgICBzdGF0aWMg
Y29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsKIApAQCAtNjcsOCArNjYsNiBAQCBwdWJsaWM6
CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KFdl
YkNvbnRleHQqKTsKLSAgICAKLSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJu
IEFQSVR5cGU7IH0KIAogICAgIC8vIFdlYkNvbnRleHRTdXBwbGVtZW50CiAgICAgdmlydHVhbCB2
b2lkIGNvbnRleHREZXN0cm95ZWQoKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpblNpdGVEYXRhTWFuYWdlci5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmgKaW5k
ZXggNmU1MTdmNC4uODQzMGEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1BsdWdpbnMvV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmgKQEAgLTQxLDEwICs0
MSw4IEBAIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIAogdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8
V0tBcnJheVJlZj4gQXJyYXlDYWxsYmFjazsKIAotY2xhc3MgV2ViUGx1Z2luU2l0ZURhdGFNYW5h
Z2VyIDogcHVibGljIEFQSU9iamVjdCB7CitjbGFzcyBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIg
OiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpUeXBlUGx1Z2luU2l0ZURhdGFNYW5h
Z2VyPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVQbHVn
aW5TaXRlRGF0YU1hbmFnZXI7Ci0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJQbHVnaW5TaXRl
RGF0YU1hbmFnZXI+IGNyZWF0ZShXZWJDb250ZXh0Kik7CiAgICAgdmlydHVhbCB+V2ViUGx1Z2lu
U2l0ZURhdGFNYW5hZ2VyKCk7CiAKQEAgLTY3LDggKzY1LDYgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBleHBsaWNpdCBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIoV2ViQ29udGV4dCopOwogCi0g
ICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9Ci0KICAgICBX
ZWJDb250ZXh0KiBtX3dlYkNvbnRleHQ7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEFy
cmF5Q2FsbGJhY2s+ID4gbV9hcnJheUNhbGxiYWNrczsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBS
ZWZQdHI8Vm9pZENhbGxiYWNrPiA+IG1fdm9pZENhbGxiYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5o
CmluZGV4IDcxNTI2NWYuLmVlNWEyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaApAQCAtNDYsMTAg
KzQ2LDggQEAgc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKIAogdHlwZWRlZiBHZW5lcmljQ2Fs
bGJhY2s8V0tBcnJheVJlZj4gQXJyYXlDYWxsYmFjazsKIAotY2xhc3MgV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXJQcm94eSA6IHB1YmxpYyBBUElPYmplY3QsIHB1YmxpYyBXZWJDb250ZXh0U3Vw
cGxlbWVudCwgcHJpdmF0ZSBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworY2xhc3MgV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eSA6IHB1YmxpYyBUeXBlZEFQSU9iamVjdDxBUElPYmpl
Y3Q6OlR5cGVBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcj4sIHB1YmxpYyBXZWJDb250ZXh0U3VwcGxl
bWVudCwgcHJpdmF0ZSBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgotICAgIHN0
YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlQXBwbGljYXRpb25DYWNoZU1hbmFnZXI7Ci0K
ICAgICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsKIAogICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk+IGNyZWF0ZShXZWJDb250
ZXh0Kik7CkBAIC02NSw4ICs2Myw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQg
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eShXZWJDb250ZXh0Kik7CiAKLSAgICB2aXJ0
dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KLQogICAgIHZvaWQgZGlk
R2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0
YT4mLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKIAogICAgIC8vIFdlYkNvbnRleHRTdXBwbGVtZW50
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmgKaW5kZXgg
YjZkZTkwYi4uZWNlZjQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkJhY2tGb3J3YXJkTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNr
Rm9yd2FyZExpc3QuaApAQCAtNDcsMTAgKzQ3LDggQEAgdHlwZWRlZiBWZWN0b3I8UmVmUHRyPFdl
YkJhY2tGb3J3YXJkTGlzdEl0ZW0+ID4gQmFja0ZvcndhcmRMaXN0SXRlbVZlY3RvcjsKICAqICAg
ICAgQmFjayAgICAgICAgRm9yd2FyZAogICovCiAKLWNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdCA6
IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0IDogcHVibGljIFR5
cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6VHlwZUJhY2tGb3J3YXJkTGlzdD4gewogcHVibGljOgot
ICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlQmFja0ZvcndhcmRMaXN0OwotCiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQmFja0ZvcndhcmRMaXN0PiBjcmVhdGUoV2ViUGFnZVBy
b3h5KiBwYWdlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJCYWNrRm9y
d2FyZExpc3QocGFnZSkpOwpAQCAtODcsOCArODUsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IGV4cGxpY2l0IFdlYkJhY2tGb3J3YXJkTGlzdChXZWJQYWdlUHJveHkqKTsKIAotICAgIHZpcnR1
YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQotCiAgICAgV2ViUGFnZVBy
b3h5KiBtX3BhZ2U7CiAgICAgQmFja0ZvcndhcmRMaXN0SXRlbVZlY3RvciBtX2VudHJpZXM7CiAg
ICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFn
ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJv
eHkuaAppbmRleCA3NDk4NDU3Li5mNGM0OWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmgKQEAgLTM3LDExICszNyw5IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJDb250ZXh0OwogY2xhc3MgV2ViQmF0dGVyeVN0YXR1
czsKLWNsYXNzIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0LCBwcml2
YXRlIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitjbGFzcyBXZWJCYXR0ZXJ5TWFuYWdlclBy
b3h5IDogcHVibGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6VHlwZUJhdHRlcnlNYW5hZ2Vy
PiwgcHJpdmF0ZSBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogCiBwdWJsaWM6Ci0gICAgc3Rh
dGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVCYXR0ZXJ5TWFuYWdlcjsKLQogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk+IGNyZWF0ZShXZWJDb250ZXh0Kik7
CiAgICAgdmlydHVhbCB+V2ViQmF0dGVyeU1hbmFnZXJQcm94eSgpOwogCkBAIC01Niw4ICs1NCw2
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViQmF0dGVyeU1hbmFnZXJQcm94
eShXZWJDb250ZXh0Kik7CiAKLSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJu
IEFQSVR5cGU7IH0KLQogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250
ZXh0LmgKaW5kZXggZGQxN2IyMi4uNTI5NDM1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dC5oCkBAIC04NCwxNCArODQsMTIgQEAgZXh0ZXJuIE5TU3RyaW5nICpTY2hlbWVGb3JD
dXN0b21Qcm90b2NvbFJlZ2lzdGVyZWROb3RpZmljYXRpb25OYW1lOwogZXh0ZXJuIE5TU3RyaW5n
ICpTY2hlbWVGb3JDdXN0b21Qcm90b2NvbFVucmVnaXN0ZXJlZE5vdGlmaWNhdGlvbk5hbWU7CiAj
ZW5kaWYKIAotY2xhc3MgV2ViQ29udGV4dCA6IHB1YmxpYyBBUElPYmplY3QsIHByaXZhdGUgQ29y
ZUlQQzo6TWVzc2FnZVJlY2VpdmVyCitjbGFzcyBXZWJDb250ZXh0IDogcHVibGljIFR5cGVkQVBJ
T2JqZWN0PEFQSU9iamVjdDo6VHlwZUNvbnRleHQ+LCBwcml2YXRlIENvcmVJUEM6Ok1lc3NhZ2VS
ZWNlaXZlcgogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICwgcHJpdmF0ZSBQ
bHVnaW5JbmZvU3RvcmVDbGllbnQKICNlbmRpZgogICAgIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
Y29uc3QgVHlwZSBBUElUeXBlID0gVHlwZUNvbnRleHQ7Ci0KICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxXZWJDb250ZXh0PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBpbmplY3RlZEJ1bmRsZVBhdGgpOwog
ICAgIHZpcnR1YWwgfldlYkNvbnRleHQoKTsKIApAQCAtMzAyLDggKzMwMCw2IEBAIHByaXZhdGU6
CiAgICAgV2ViQ29udGV4dChQcm9jZXNzTW9kZWwsIGNvbnN0IFN0cmluZyYgaW5qZWN0ZWRCdW5k
bGVQYXRoKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogCi0gICAgdmlydHVhbCBU
eXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9Ci0KICAgICB2b2lkIHBsYXRmb3Jt
SW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogICAg
IHZvaWQgcGxhdGZvcm1JbnZhbGlkYXRlQ29udGV4dCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgKaW5kZXggMGFjNWU3Zi4uYWUzYjVj
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJv
eHkuaApAQCAtNDgsMTAgKzQ4LDggQEAgY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OwogdHlwZWRlZiBH
ZW5lcmljQ2FsbGJhY2s8V0tBcnJheVJlZj4gQXJyYXlDYWxsYmFjazsKIHR5cGVkZWYgR2VuZXJp
Y0NhbGxiYWNrPFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSwgSFRUUENvb2tpZUFjY2VwdFBvbGlj
eT4gSFRUUENvb2tpZUFjY2VwdFBvbGljeUNhbGxiYWNrOwogCi1jbGFzcyBXZWJDb29raWVNYW5h
Z2VyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0LCBwdWJsaWMgV2ViQ29udGV4dFN1cHBsZW1lbnQs
IHByaXZhdGUgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIFdlYkNvb2tpZU1hbmFn
ZXJQcm94eSA6IHB1YmxpYyBUeXBlZEFQSU9iamVjdDxBUElPYmplY3Q6OlR5cGVDb29raWVNYW5h
Z2VyPiwgcHVibGljIFdlYkNvbnRleHRTdXBwbGVtZW50LCBwcml2YXRlIENvcmVJUEM6Ok1lc3Nh
Z2VSZWNlaXZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5
cGVDb29raWVNYW5hZ2VyOwotCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1l
KCk7CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb29raWVNYW5hZ2VyUHJveHk+IGNyZWF0
ZShXZWJDb250ZXh0Kik7CkBAIC04MCw4ICs3OCw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
V2ViQ29va2llTWFuYWdlclByb3h5KFdlYkNvbnRleHQqKTsKIAotICAgIHZpcnR1YWwgVHlwZSB0
eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQotCiAgICAgdm9pZCBkaWRHZXRIb3N0bmFt
ZXNXaXRoQ29va2llcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
OwogICAgIHZvaWQgZGlkR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSh1aW50MzJfdCBwb2xpY3ks
IHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oCmluZGV4IGE5M2E5NzguLjMyNjZkNTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5o
CkBAIC00NiwxMCArNDYsOCBAQCBjbGFzcyBXZWJTZWN1cml0eU9yaWdpbjsKIAogdHlwZWRlZiBH
ZW5lcmljQ2FsbGJhY2s8V0tBcnJheVJlZj4gQXJyYXlDYWxsYmFjazsKIAotY2xhc3MgV2ViRGF0
YWJhc2VNYW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0LCBwdWJsaWMgV2ViQ29udGV4dFN1
cHBsZW1lbnQsIHByaXZhdGUgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIFdlYkRh
dGFiYXNlTWFuYWdlclByb3h5IDogcHVibGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6VHlw
ZURhdGFiYXNlTWFuYWdlcj4sIHB1YmxpYyBXZWJDb250ZXh0U3VwcGxlbWVudCwgcHJpdmF0ZSBD
b3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBUeXBl
IEFQSVR5cGUgPSBUeXBlRGF0YWJhc2VNYW5hZ2VyOwotCiAgICAgc3RhdGljIGNvbnN0IGNoYXIq
IHN1cHBsZW1lbnROYW1lKCk7CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJEYXRhYmFzZU1h
bmFnZXJQcm94eT4gY3JlYXRlKFdlYkNvbnRleHQqKTsKQEAgLTc5LDggKzc3LDYgQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eShXZWJDb250
ZXh0Kik7CiAKLSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7
IH0KLQogICAgIC8vIFdlYkNvbnRleHRTdXBwbGVtZW50CiAgICAgdmlydHVhbCB2b2lkIGNvbnRl
eHREZXN0cm95ZWQoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3Nl
KFdlYlByb2Nlc3NQcm94eSopIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJFZGl0Q29tbWFuZFByb3h5LmgKaW5kZXggNjdkMTQzMC4uZjRmMzJjYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5oCkBAIC0zNiw3ICsz
Niw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJQYWdlUHJveHk7CiAKLWNsYXNz
IFdlYkVkaXRDb21tYW5kUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK2NsYXNzIFdlYkVkaXRD
b21tYW5kUHJveHkgOiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpUeXBlRWRpdENv
bW1hbmRQcm94eT4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkVkaXRDb21t
YW5kUHJveHk+IGNyZWF0ZSh1aW50NjRfdCBjb21tYW5kSUQsIFdlYkNvcmU6OkVkaXRBY3Rpb24g
ZWRpdEFjdGlvbiwgV2ViUGFnZVByb3h5KiBwYWdlKQogICAgIHsKQEAgLTU3LDggKzU3LDYgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBXZWJFZGl0Q29tbWFuZFByb3h5KHVpbnQ2NF90IGNvbW1h
bmRJRCwgV2ViQ29yZTo6RWRpdEFjdGlvbiwgV2ViUGFnZVByb3h5Kik7CiAKLSAgICB2aXJ0dWFs
IFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIFR5cGVFZGl0Q29tbWFuZFByb3h5OyB9Ci0KICAg
ICB1aW50NjRfdCBtX2NvbW1hbmRJRDsKICAgICBXZWJDb3JlOjpFZGl0QWN0aW9uIG1fZWRpdEFj
dGlvbjsKICAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViRnJhbWVQcm94eS5oCmluZGV4IDFjZjUzMjIuLjBiZWU2NjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaApAQCAtNTEsMTAgKzUxLDggQEAgY2xhc3MgV2ViUGFn
ZVByb3h5OwogCiB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxXS0RhdGFSZWY+IERhdGFDYWxsYmFj
azsKIAotY2xhc3MgV2ViRnJhbWVQcm94eSA6IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3MgV2Vi
RnJhbWVQcm94eSA6IHB1YmxpYyBUeXBlZEFQSU9iamVjdDxBUElPYmplY3Q6OlR5cGVGcmFtZT4g
ewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlRnJhbWU7Ci0K
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZVByb3h5PiBjcmVhdGUoV2ViUGFnZVByb3h5
KiBwYWdlLCB1aW50NjRfdCBmcmFtZUlEKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBXZWJGcmFtZVByb3h5KHBhZ2UsIGZyYW1lSUQpKTsKQEAgLTEyMiw4ICsxMjAsNiBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIFdlYkZyYW1lUHJveHkoV2ViUGFnZVByb3h5KiBwYWdlLCB1
aW50NjRfdCBmcmFtZUlEKTsKIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1
cm4gQVBJVHlwZTsgfQotCiAgICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7CiAgICAgTG9hZFN0YXRl
IG1fbG9hZFN0YXRlOwogICAgIFN0cmluZyBtX3VybDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgKaW5kZXggYzBhODBiMi4u
YTJkOTdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5LmgKQEAgLTM3LDEwICszNyw4IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogY2xhc3MgV2ViQ29udGV4dDsKIGNsYXNzIFdlYkdlb2xvY2F0aW9uUG9zaXRpb247CiAKLWNs
YXNzIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5IDogcHVibGljIEFQSU9iamVjdCwgcHVibGlj
IFdlYkNvbnRleHRTdXBwbGVtZW50LCBwcml2YXRlIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7
CitjbGFzcyBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSA6IHB1YmxpYyBUeXBlZEFQSU9iamVj
dDxBUElPYmplY3Q6OlR5cGVHZW9sb2NhdGlvbk1hbmFnZXI+LCBwdWJsaWMgV2ViQ29udGV4dFN1
cHBsZW1lbnQsIHByaXZhdGUgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZUdlb2xvY2F0aW9uTWFuYWdlcjsKLQog
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOwogCiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk+IGNyZWF0ZShXZWJDb250ZXh0Kik7
CkBAIC01Nyw4ICs1NSw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyUHJveHkoV2ViQ29udGV4dCopOwogCi0gICAgdmlydHVhbCBUeXBlIHR5
cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9Ci0KICAgICAvLyBXZWJDb250ZXh0U3VwcGxl
bWVudAogICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShXZWJQcm9jZXNzUHJveHkqKSBPVkVSUklERTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHcmFtbWFyRGV0YWlsLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR3JhbW1hckRldGFpbC5oCmluZGV4IDJmY2Vi
YzAuLjA0NjA3NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHcmFt
bWFyRGV0YWlsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdyYW1tYXJEZXRh
aWwuaApAQCAtMzUsOSArMzUsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgSW1tdXRh
YmxlQXJyYXk7CiAKLWNsYXNzIFdlYkdyYW1tYXJEZXRhaWwgOiBwdWJsaWMgQVBJT2JqZWN0IHsK
K2NsYXNzIFdlYkdyYW1tYXJEZXRhaWwgOiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2JqZWN0
OjpUeXBlR3JhbW1hckRldGFpbD4gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQ
SVR5cGUgPSBUeXBlR3JhbW1hckRldGFpbDsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJHcmFt
bWFyRGV0YWlsPiBjcmVhdGUoaW50IGxvY2F0aW9uLCBpbnQgbGVuZ3RoLCBJbW11dGFibGVBcnJh
eSogZ3Vlc3NlcywgY29uc3QgU3RyaW5nJiB1c2VyRGVzY3JpcHRpb24pOwogICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFdlYkdyYW1tYXJEZXRhaWw+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpHcmFtbWFy
RGV0YWlsJik7CiAKQEAgLTUyLDggKzUxLDYgQEAgcHJpdmF0ZToKICAgICBXZWJHcmFtbWFyRGV0
YWlsKGludCBsb2NhdGlvbiwgaW50IGxlbmd0aCwgSW1tdXRhYmxlQXJyYXkqIGd1ZXNzZXMsIGNv
bnN0IFN0cmluZyYgdXNlckRlc2NyaXB0aW9uKTsKICAgICBleHBsaWNpdCBXZWJHcmFtbWFyRGV0
YWlsKGNvbnN0IFdlYkNvcmU6OkdyYW1tYXJEZXRhaWwmKTsKIAotICAgIHZpcnR1YWwgVHlwZSB0
eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQotCiAgICAgV2ViQ29yZTo6R3JhbW1hckRl
dGFpbCBtX2dyYW1tYXJEZXRhaWw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
SWNvbkRhdGFiYXNlLmgKaW5kZXggODQ0ZTJkOS4uYmUxYjNkYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuaApAQCAtNTMsMTAgKzUzLDggQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGNsYXNzIFdlYkNvbnRleHQ7CiAKLWNsYXNzIFdlYkljb25EYXRhYmFzZSA6
IHB1YmxpYyBBUElPYmplY3QsIHB1YmxpYyBXZWJDb3JlOjpJY29uRGF0YWJhc2VDbGllbnQsIHBy
aXZhdGUgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIFdlYkljb25EYXRhYmFzZSA6
IHB1YmxpYyBUeXBlZEFQSU9iamVjdDxBUElPYmplY3Q6OlR5cGVJY29uRGF0YWJhc2U+LCBwdWJs
aWMgV2ViQ29yZTo6SWNvbkRhdGFiYXNlQ2xpZW50LCBwcml2YXRlIENvcmVJUEM6Ok1lc3NhZ2VS
ZWNlaXZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVJ
Y29uRGF0YWJhc2U7Ci0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJJY29uRGF0YWJhc2U+IGNy
ZWF0ZShXZWJDb250ZXh0Kik7CiAgICAgdmlydHVhbCB+V2ViSWNvbkRhdGFiYXNlKCk7CiAKQEAg
LTkyLDggKzkwLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXZWJJY29uRGF0YWJhc2UoV2Vi
Q29udGV4dCopOwogCi0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElU
eXBlOyB9Ci0KICAgICAvLyBXZWJDb3JlOjpJY29uRGF0YWJhc2VDbGllbnQKICAgICB2aXJ0dWFs
IHZvaWQgZGlkSW1wb3J0SWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJik7CiAgICAgdmly
dHVhbCB2b2lkIGRpZEltcG9ydEljb25EYXRhRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgKaW5kZXggNjU2MGUz
YS4uMzljNzRkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3Bl
Y3RvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclBy
b3h5LmgKQEAgLTYyLDEwICs2Miw4IEBAIGNsYXNzIFdlYlBhZ2VHcm91cDsKIGNsYXNzIFdlYlBh
Z2VQcm94eTsKIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOwogCi1jbGFzcyBXZWJJ
bnNwZWN0b3JQcm94eSA6IHB1YmxpYyBBUElPYmplY3QsIHB1YmxpYyBDb3JlSVBDOjpNZXNzYWdl
UmVjZWl2ZXIgeworY2xhc3MgV2ViSW5zcGVjdG9yUHJveHkgOiBwdWJsaWMgVHlwZWRBUElPYmpl
Y3Q8QVBJT2JqZWN0OjpUeXBlSW5zcGVjdG9yPiwgcHVibGljIENvcmVJUEM6Ok1lc3NhZ2VSZWNl
aXZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVJbnNw
ZWN0b3I7Ci0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJJbnNwZWN0b3JQcm94eT4gY3JlYXRl
KFdlYlBhZ2VQcm94eSogcGFnZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
V2ViSW5zcGVjdG9yUHJveHkocGFnZSkpOwpAQCAtMTM0LDggKzEzMiw2IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgV2ViSW5zcGVjdG9yUHJveHkoV2ViUGFnZVByb3h5Kik7CiAK
LSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KLQogICAg
IC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpN
ZXNzYWdlRW5jb2Rlcj4mKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuaAppbmRleCA1ZTNjM2Fm
Li5jN2U5YjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFs
dWVTdG9yYWdlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5oCkBAIC00NCwxMCArNDQsOCBAQCBjbGFzcyBX
ZWJTZWN1cml0eU9yaWdpbjsKIAogdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tBcnJheVJlZj4g
QXJyYXlDYWxsYmFjazsKIAotY2xhc3MgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5IDog
cHVibGljIEFQSU9iamVjdCwgcHVibGljIFdlYkNvbnRleHRTdXBwbGVtZW50LCBwcml2YXRlIENv
cmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitjbGFzcyBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
UHJveHkgOiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpUeXBlS2V5VmFsdWVTdG9y
YWdlTWFuYWdlcj4sIHB1YmxpYyBXZWJDb250ZXh0U3VwcGxlbWVudCwgcHJpdmF0ZSBDb3JlSVBD
OjpNZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5
cGUgPSBUeXBlS2V5VmFsdWVTdG9yYWdlTWFuYWdlcjsKLQogICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBzdXBwbGVtZW50TmFtZSgpOwogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2V5VmFsdWVT
dG9yYWdlTWFuYWdlclByb3h5PiBjcmVhdGUoV2ViQ29udGV4dCopOwpAQCAtNjMsOCArNjEsNiBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYktleVZhbHVlU3RvcmFnZU1hbmFn
ZXJQcm94eShXZWJDb250ZXh0Kik7CiAKLSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsg
cmV0dXJuIEFQSVR5cGU7IH0KLQogICAgIHZvaWQgZGlkR2V0S2V5VmFsdWVTdG9yYWdlT3JpZ2lu
cyhjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
OwogCiAgICAgLy8gV2ViQ29udGV4dFN1cHBsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5oCmluZGV4IDZhMGU5YjYuLjVj
MTBiMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYUNhY2hl
TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk1lZGlhQ2Fj
aGVNYW5hZ2VyUHJveHkuaApAQCAtNDIsMTAgKzQyLDggQEAgY2xhc3MgV2ViUHJvY2Vzc1Byb3h5
OwogCiB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxXS0FycmF5UmVmPiBBcnJheUNhbGxiYWNrOwog
Ci1jbGFzcyBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5IDogcHVibGljIEFQSU9iamVjdCwgcHVi
bGljIFdlYkNvbnRleHRTdXBwbGVtZW50LCBwcml2YXRlIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZl
ciB7CitjbGFzcyBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5IDogcHVibGljIFR5cGVkQVBJT2Jq
ZWN0PEFQSU9iamVjdDo6VHlwZU1lZGlhQ2FjaGVNYW5hZ2VyPiwgcHVibGljIFdlYkNvbnRleHRT
dXBwbGVtZW50LCBwcml2YXRlIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVNZWRpYUNhY2hlTWFuYWdlcjsKLQog
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOwogCiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8V2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eT4gY3JlYXRlKFdlYkNvbnRleHQqKTsK
QEAgLTYxLDggKzU5LDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJNZWRp
YUNhY2hlTWFuYWdlclByb3h5KFdlYkNvbnRleHQqKTsKIAotICAgIHZpcnR1YWwgVHlwZSB0eXBl
KCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQotCiAgICAgdm9pZCBkaWRHZXRIb3N0bmFtZXNX
aXRoTWVkaWFDYWNoZShjb25zdCBWZWN0b3I8U3RyaW5nPiYsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
OwogCiAgICAgLy8gV2ViQ29udGV4dFN1cHBsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJOYXZpZ2F0aW9uRGF0YS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk5hdmlnYXRpb25EYXRhLmgKaW5kZXggYzJlMjBmMy4uMjk3NDg1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRpb25EYXRhLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRpb25EYXRhLmgKQEAgLTMyLDEwICszMiw4
IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBXZWJOYXZpZ2F0aW9uRGF0YSA6IHB1
YmxpYyBBUElPYmplY3QgeworY2xhc3MgV2ViTmF2aWdhdGlvbkRhdGEgOiBwdWJsaWMgVHlwZWRB
UElPYmplY3Q8QVBJT2JqZWN0OjpUeXBlTmF2aWdhdGlvbkRhdGE+IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZU5hdmlnYXRpb25EYXRhOwotCiAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8V2ViTmF2aWdhdGlvbkRhdGE+IGNyZWF0ZShjb25zdCBXZWJOYXZpZ2F0
aW9uRGF0YVN0b3JlJiBzdG9yZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
V2ViTmF2aWdhdGlvbkRhdGEoc3RvcmUpKTsKQEAgLTUwLDggKzQ4LDYgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBleHBsaWNpdCBXZWJOYXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9u
RGF0YVN0b3JlJik7CiAKLSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQ
SVR5cGU7IH0KLQogICAgIFdlYk5hdmlnYXRpb25EYXRhU3RvcmUgbV9zdG9yZTsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQ
cm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFuYWdlclBy
b3h5LmgKaW5kZXggODFmNTg2YS4uNTJjNjlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmgKQEAgLTM4LDEwICszOCw4
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViQ29udGV4dDsKIGNsYXNzIFdlYk5ldHdv
cmtJbmZvOwogCi1jbGFzcyBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eSA6IHB1YmxpYyBBUElP
YmplY3QsIHByaXZhdGUgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIFdlYk5ldHdv
cmtJbmZvTWFuYWdlclByb3h5IDogcHVibGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6VHlw
ZU5ldHdvcmtJbmZvTWFuYWdlcj4sIHByaXZhdGUgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZU5ldHdvcmtJbmZv
TWFuYWdlcjsKLQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk5ldHdvcmtJbmZvTWFuYWdlclBy
b3h5PiBjcmVhdGUoV2ViQ29udGV4dCopOwogICAgIHZpcnR1YWwgfldlYk5ldHdvcmtJbmZvTWFu
YWdlclByb3h5KCk7CiAKQEAgLTU1LDggKzUzLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eShXZWJDb250ZXh0Kik7CiAKLSAgICB2
aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KLQogICAgIC8vIENv
cmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdl
RW5jb2Rlcj4mKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5oCmluZGV4IDVlYzM2OWMuLjk4
YWIzMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9w
ZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuaApAQCAtMzUsMTAgKzM1LDggQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiBjbGFzcyBJbW11dGFibGVBcnJheTsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIAot
Y2xhc3MgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSA6IHB1YmxpYyBBUElPYmplY3Qg
eworY2xhc3MgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSA6IHB1YmxpYyBUeXBlZEFQ
SU9iamVjdDxBUElPYmplY3Q6OlR5cGVGcmFtZVBvbGljeUxpc3RlbmVyPiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVGcmFtZVBvbGljeUxpc3RlbmVyOwot
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eT4g
Y3JlYXRlKFdlYlBhZ2VQcm94eSogcGFnZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eShwYWdlKSk7CkBAIC01NCw4ICs1
Miw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViT3BlblBhbmVsUmVzdWx0
TGlzdGVuZXJQcm94eShXZWJQYWdlUHJveHkqKTsKIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkg
Y29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQotCiAgICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gbV9w
YWdlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VH
cm91cC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5oCmluZGV4IDE3
NmI5ZWUuLmYwZmRkZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlR3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmgK
QEAgLTM4LDEwICszOCw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViUHJlZmVyZW5j
ZXM7CiBjbGFzcyBXZWJQYWdlUHJveHk7CiAKLWNsYXNzIFdlYlBhZ2VHcm91cCA6IHB1YmxpYyBB
UElPYmplY3QgeworY2xhc3MgV2ViUGFnZUdyb3VwIDogcHVibGljIFR5cGVkQVBJT2JqZWN0PEFQ
SU9iamVjdDo6VHlwZVBhZ2VHcm91cD4gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBUeXBl
IEFQSVR5cGUgPSBUeXBlUGFnZUdyb3VwOwotCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViUGFn
ZUdyb3VwPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyID0gU3RyaW5nKCksIGJvb2wg
dmlzaWJsZVRvSW5qZWN0ZWRCdW5kbGUgPSB0cnVlLCBib29sIHZpc2libGVUb0hpc3RvcnlDbGll
bnQgPSB0cnVlKTsKICAgICBzdGF0aWMgV2ViUGFnZUdyb3VwKiBnZXQodWludDY0X3QgcGFnZUdy
b3VwSUQpOwogCkBAIC02OCw4ICs2Niw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgV2ViUGFn
ZUdyb3VwKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgYm9vbCB2aXNpYmxlVG9JbmplY3RlZEJ1
bmRsZSwgYm9vbCB2aXNpYmxlVG9IaXN0b3J5Q2xpZW50KTsKIAotICAgIHZpcnR1YWwgVHlwZSB0
eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQotICAgIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIE1lc3NhZ2VUeXBlPiB2b2lkIHNlbmRUb0FsbFByb2Nlc3Nlc0luR3JvdXAoY29uc3QgTWVz
c2FnZVR5cGUmLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEKTsKIAogICAgIFdlYlBhZ2VHcm91cERh
dGEgbV9kYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDNi
MzJlZWYuLmM4MDBiOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
QEAgLTIyOSwxNCArMjI5LDEzIEBAIHByaXZhdGU6CiB9OwogCiBjbGFzcyBXZWJQYWdlUHJveHkK
LSAgICA6IHB1YmxpYyBBUElPYmplY3QKKyAgICA6IHB1YmxpYyBUeXBlZEFQSU9iamVjdDxBUElP
YmplY3Q6OlR5cGVQYWdlPgogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogICAgICwgcHVi
bGljIFdlYkNvbG9yQ2hvb3NlclByb3h5OjpDbGllbnQKICNlbmRpZgogICAgICwgcHVibGljIFdl
YlBvcHVwTWVudVByb3h5OjpDbGllbnQKICAgICAsIHB1YmxpYyBDb3JlSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlUGFn
ZTsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlBhZ2VQcm94eT4gY3JlYXRlKFBhZ2VDbGll
bnQqLCBQYXNzUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4sIFdlYlBhZ2VHcm91cCosIHVpbnQ2NF90
IHBhZ2VJRCk7CiAgICAgdmlydHVhbCB+V2ViUGFnZVByb3h5KCk7CkBAIC03NzgsOCArNzc3LDYg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXZWJQYWdlUHJveHkoUGFnZUNsaWVudCosIFBhc3NS
ZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiwgV2ViUGFnZUdyb3VwKiwgdWludDY0X3QgcGFnZUlEKTsK
IAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQotCiAg
ICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6
Ok1lc3NhZ2VFbmNvZGVyPiYpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggYmJjMjM4MC4uYWViYWZhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCkBAIC00Miw4ICs0Miw3IEBAIFdlYlBy
ZWZlcmVuY2VzOjpXZWJQcmVmZXJlbmNlcyhjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIpCiB9CiAK
IFdlYlByZWZlcmVuY2VzOjpXZWJQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlcyYgb3Ro
ZXIpCi0gICAgOiBBUElPYmplY3QoKQotICAgICwgbV9zdG9yZShvdGhlci5tX3N0b3JlKQorICAg
IDogbV9zdG9yZShvdGhlci5tX3N0b3JlKQogewogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZVN0b3Jl
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5j
ZXMuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5oCmluZGV4IDUw
YmMwMjUuLjFhMWNiNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
cmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNl
cy5oCkBAIC00MSwxMCArNDEsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUGFn
ZUdyb3VwOwogCi1jbGFzcyBXZWJQcmVmZXJlbmNlcyA6IHB1YmxpYyBBUElPYmplY3QgeworY2xh
c3MgV2ViUHJlZmVyZW5jZXMgOiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpUeXBl
UHJlZmVyZW5jZXM+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0g
VHlwZVByZWZlcmVuY2VzOwotCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViUHJlZmVyZW5jZXM+
IGNyZWF0ZSgpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlByZWZlcmVu
Y2VzKTsKQEAgLTg0LDggKzgyLDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGxhdGZvcm1Jbml0
aWFsaXplU3RvcmUoKTsKIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4g
QVBJVHlwZTsgfQotCiAgICAgdm9pZCB1cGRhdGUoKTsKIAogICAgIHZvaWQgdXBkYXRlU3RyaW5n
VmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdl
clByb3h5LmgKaW5kZXggYjMxZmRlMi4uM2I1YTNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oCkBAIC00NCwx
MCArNDQsOCBAQCBjbGFzcyBXZWJTZWN1cml0eU9yaWdpbjsKIAogdHlwZWRlZiBHZW5lcmljQ2Fs
bGJhY2s8V0tBcnJheVJlZj4gQXJyYXlDYWxsYmFjazsKIAotY2xhc3MgV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eSA6IHB1YmxpYyBBUElPYmplY3QsIHB1YmxpYyBXZWJDb250ZXh0U3VwcGxl
bWVudCwgcHJpdmF0ZSBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworY2xhc3MgV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXJQcm94eSA6IHB1YmxpYyBUeXBlZEFQSU9iamVjdDxBUElPYmplY3Q6OlR5
cGVDYWNoZU1hbmFnZXI+LCBwdWJsaWMgV2ViQ29udGV4dFN1cHBsZW1lbnQsIHByaXZhdGUgQ29y
ZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgVHlwZSBB
UElUeXBlID0gVHlwZUNhY2hlTWFuYWdlcjsKLQogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBw
bGVtZW50TmFtZSgpOwogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXJQcm94eT4gY3JlYXRlKFdlYkNvbnRleHQqKTsKQEAgLTYzLDggKzYxLDYgQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5KFdl
YkNvbnRleHQqKTsKIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJ
VHlwZTsgfQotCiAgICAgLy8gV2ViQ29udGV4dFN1cHBsZW1lbnQKICAgICB2aXJ0dWFsIHZvaWQg
Y29udGV4dERlc3Ryb3llZCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlk
Q2xvc2UoV2ViUHJvY2Vzc1Byb3h5KikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViVGV4dENoZWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJUZXh0Q2hlY2tlci5oCmluZGV4IGExYzU3NGMuLjg2M2VkMDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJUZXh0Q2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJUZXh0Q2hlY2tlci5oCkBAIC0zNSwxMCArMzUsOCBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUGFnZVByb3h5OwogCi1jbGFzcyBXZWJUZXh0Q2hlY2tl
ciA6IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3MgV2ViVGV4dENoZWNrZXIgOiBwdWJsaWMgVHlw
ZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpUeXBlVGV4dENoZWNrZXI+IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZVRleHRDaGVja2VyOwotCiAgICAgc3RhdGlj
IFdlYlRleHRDaGVja2VyKiBzaGFyZWQoKTsKIAogICAgIHZvaWQgc2V0Q2xpZW50KGNvbnN0IFdL
VGV4dENoZWNrZXJDbGllbnQqKTsKQEAgLTUzLDggKzUxLDYgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBXZWJUZXh0Q2hlY2tlcigpOwogCi0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7
IHJldHVybiBBUElUeXBlOyB9Ci0KICAgICBXZWJUZXh0Q2hlY2tlckNsaWVudCBtX2NsaWVudDsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Q
cm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5LmgKaW5k
ZXggZTg0OWE0Yy4uMWY5Yzg5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlZpYnJhdGlvblByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZp
YnJhdGlvblByb3h5LmgKQEAgLTM3LDEwICszNyw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBj
bGFzcyBXZWJQYWdlUHJveHk7CiAKLWNsYXNzIFdlYlZpYnJhdGlvblByb3h5IDogcHVibGljIEFQ
SU9iamVjdCwgcHJpdmF0ZSBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworY2xhc3MgV2ViVmli
cmF0aW9uUHJveHkgOiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpUeXBlVmlicmF0
aW9uPiwgcHJpdmF0ZSBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgotICAgIHN0
YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlVmlicmF0aW9uOwotCiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8V2ViVmlicmF0aW9uUHJveHk+IGNyZWF0ZShXZWJQYWdlUHJveHkqKTsKICAgICB2
aXJ0dWFsIH5XZWJWaWJyYXRpb25Qcm94eSgpOwogCkBAIC01MSw4ICs0OSw2IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViVmlicmF0aW9uUHJveHkoV2ViUGFnZVByb3h5Kik7
CiAKLSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KLQog
ICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
KSBPVkVSUklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9X
ZWJQb3B1cEl0ZW1FZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViUG9wdXBJ
dGVtRWZsLmgKaW5kZXggMTU4MWNhNS4uYzMyNDVhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9XZWJQb3B1cEl0ZW1FZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL1dlYlBvcHVwSXRlbUVmbC5oCkBAIC0zMiwxMCArMzIsOCBAQAogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgV2ViUG9wdXBJdGVtRWZsIDogcHVibGljIEFQSU9iamVj
dCB7CitjbGFzcyBXZWJQb3B1cEl0ZW1FZmwgOiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2Jq
ZWN0OjpUeXBlUG9wdXBNZW51SXRlbT4gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBUeXBl
IEFQSVR5cGUgPSBUeXBlUG9wdXBNZW51SXRlbTsKLQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdl
YlBvcHVwSXRlbUVmbD4gY3JlYXRlKGNvbnN0IFdlYlBvcHVwSXRlbSYgZGF0YSkKICAgICB7CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViUG9wdXBJdGVtRWZsKGRhdGEpKTsKQEAgLTU3
LDggKzU1LDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJQb3B1cEl0ZW1F
ZmwoY29uc3QgV2ViUG9wdXBJdGVtJik7CiAKLSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0
IHsgcmV0dXJuIEFQSVR5cGU7IH0KLQogICAgIFdlYlBvcHVwSXRlbSBtX2RhdGE7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5oCmluZGV4IDBhODIyNjguLjc4MTYwNDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5oCkBAIC00NiwxMCArNDYsOCBA
QCBjbGFzcyBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
Ci1jbGFzcyBXZWJWaWV3IDogcHVibGljIEFQSU9iamVjdCwgcHVibGljIFBhZ2VDbGllbnQgewor
Y2xhc3MgV2ViVmlldyA6IHB1YmxpYyBUeXBlZEFQSU9iamVjdDxBUElPYmplY3Q6OlR5cGVWaWV3
PiwgcHVibGljIFBhZ2VDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQ
SVR5cGUgPSBUeXBlVmlldzsKLQogICAgIHZpcnR1YWwgfldlYlZpZXcoKTsKIAogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFdlYlZpZXc+IGNyZWF0ZShXZWJDb250ZXh0KiwgV2ViUGFnZUdyb3VwKik7
CkBAIC0xNzcsOCArMTc1LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvdW50U3RyaW5nTWF0Y2hl
c0luQ3VzdG9tUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiwgRmluZE9wdGlvbnMsIHVuc2ln
bmVkKSBPVkVSUklERTsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0
IHsgcmV0dXJuIEFQSVR5cGU7IH0KLQogICAgIFdlYlZpZXdDbGllbnQgbV9jbGllbnQ7CiAgICAg
RXdrVmlldyogbV9ld2tWaWV3OwogICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IG1fcGFnZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFu
YWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVz
dE1hbmFnZXJQcm94eS5oCmluZGV4IDVmNGQxNzguLjdlYzM4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJv
eHkuaApAQCAtMzQsMTAgKzM0LDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJDb250
ZXh0OwogY2xhc3MgV2ViRGF0YTsKIAotY2xhc3MgV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkg
OiBwdWJsaWMgQVBJT2JqZWN0LCBwdWJsaWMgV2ViQ29udGV4dFN1cHBsZW1lbnQsIHByaXZhdGUg
Q29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIFdlYlNvdXBSZXF1ZXN0TWFuYWdlclBy
b3h5IDogcHVibGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6VHlwZVNvdXBSZXF1ZXN0TWFu
YWdlcj4sIHB1YmxpYyBXZWJDb250ZXh0U3VwcGxlbWVudCwgcHJpdmF0ZSBDb3JlSVBDOjpNZXNz
YWdlUmVjZWl2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBU
eXBlU291cFJlcXVlc3RNYW5hZ2VyOwotCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1l
bnROYW1lKCk7CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJTb3VwUmVxdWVzdE1hbmFnZXJQ
cm94eT4gY3JlYXRlKFdlYkNvbnRleHQqKTsKQEAgLTU4LDggKzU2LDYgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eShXZWJDb250ZXh0Kik7CiAKLSAg
ICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KLQogICAgIC8v
IFdlYkNvbnRleHRTdXBwbGVtZW50CiAgICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQo
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKFdlYlByb2Nlc3NQ
cm94eSopIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5k
bGUuaAppbmRleCA4OTAzMTA2Li5jNDQxOTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3Rl
ZEJ1bmRsZU5vZGVIYW5kbGUuaApAQCAtNDQsMTAgKzQ0LDggQEAgY2xhc3MgSW5qZWN0ZWRCdW5k
bGVTY3JpcHRXb3JsZDsKIGNsYXNzIFdlYkZyYW1lOwogY2xhc3MgV2ViSW1hZ2U7CiAKLWNsYXNz
IEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZSA6IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3MgSW5q
ZWN0ZWRCdW5kbGVOb2RlSGFuZGxlIDogcHVibGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6
VHlwZUJ1bmRsZU5vZGVIYW5kbGU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgVHlwZSBB
UElUeXBlID0gVHlwZUJ1bmRsZU5vZGVIYW5kbGU7Ci0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJ
bmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU+IGdldE9yQ3JlYXRlKEpTQ29udGV4dFJlZiwgSlNPYmpl
Y3RSZWYpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZT4g
Z2V0T3JDcmVhdGUoV2ViQ29yZTo6Tm9kZSopOwogCkBAIC03OSw4ICs3Nyw2IEBAIHByaXZhdGU6
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlPiBjcmVhdGUo
V2ViQ29yZTo6Tm9kZSopOwogICAgIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZShXZWJDb3JlOjpO
b2RlKik7CiAKLSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7
IH0KLQogICAgIFJlZlB0cjxXZWJDb3JlOjpOb2RlPiBtX25vZGU7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1
bmRsZVJhbmdlSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmgKaW5kZXggNDg4Nzk3MS4uZmQyODFk
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9E
T00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaApAQCAt
MzksMTAgKzM5LDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEluamVjdGVkQnVuZGxl
U2NyaXB0V29ybGQ7CiAKLWNsYXNzIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUgOiBwdWJsaWMg
QVBJT2JqZWN0IHsKK2NsYXNzIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUgOiBwdWJsaWMgVHlw
ZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpUeXBlQnVuZGxlUmFuZ2VIYW5kbGU+IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZUJ1bmRsZVJhbmdlSGFuZGxlOwot
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZT4gZ2V0T3JD
cmVhdGUoSlNDb250ZXh0UmVmLCBKU09iamVjdFJlZik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZT4gZ2V0T3JDcmVhdGUoV2ViQ29yZTo6UmFuZ2UqKTsK
IApAQCAtNTQsOCArNTIsNiBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluamVj
dGVkQnVuZGxlUmFuZ2VIYW5kbGU+IGNyZWF0ZShXZWJDb3JlOjpSYW5nZSopOwogICAgIEluamVj
dGVkQnVuZGxlUmFuZ2VIYW5kbGUoV2ViQ29yZTo6UmFuZ2UqKTsKIAotICAgIHZpcnR1YWwgVHlw
ZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQotCiAgICAgUmVmUHRyPFdlYkNvcmU6
OlJhbmdlPiBtX3JhbmdlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCmluZGV4IDM0OTI2YjMuLjM3
ZDQxYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKQEAgLTc3LDEwICs3Nyw4IEBAIGNsYXNzIFdlYkZy
YW1lOwogY2xhc3MgV2ViUGFnZTsKIGNsYXNzIFdlYlBhZ2VHcm91cFByb3h5OwogCi1jbGFzcyBJ
bmplY3RlZEJ1bmRsZSA6IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3MgSW5qZWN0ZWRCdW5kbGUg
OiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpUeXBlQnVuZGxlPiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVCdW5kbGU7Ci0KICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxJbmplY3RlZEJ1bmRsZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0aCkK
ICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5qZWN0ZWRCdW5kbGUocGF0aCkp
OwpAQCAtMTc5LDggKzE3Nyw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW5q
ZWN0ZWRCdW5kbGUoY29uc3QgU3RyaW5nJik7CiAKLSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNv
bnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KLQogICAgIFN0cmluZyBtX3BhdGg7CiAgICAgUGxhdGZv
cm1CdW5kbGUgbV9wbGF0Zm9ybUJ1bmRsZTsgLy8gVGhpcyBpcyBsZWFrZWQgcmlnaHQgbm93LCBz
aW5jZSB3ZSBuZXZlciB1bmxvYWQgdGhlIGJ1bmRsZS9tb2R1bGUuCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVCYWNr
Rm9yd2FyZExpc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3QuaAppbmRleCA5NTJiZGI2Li5hMTUyYmE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5oCkBAIC0zNSwx
MCArMzUsOCBAQCBjbGFzcyBXZWJQYWdlOwogCiBjbGFzcyBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3
YXJkTGlzdEl0ZW07CiAKLWNsYXNzIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0IDogcHVi
bGljIEFQSU9iamVjdCB7CitjbGFzcyBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdCA6IHB1
YmxpYyBUeXBlZEFQSU9iamVjdDxBUElPYmplY3Q6OlR5cGVCdW5kbGVCYWNrRm9yd2FyZExpc3Q+
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZUJ1bmRsZUJh
Y2tGb3J3YXJkTGlzdDsKLQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluamVjdGVkQnVuZGxlQmFj
a0ZvcndhcmRMaXN0PiBjcmVhdGUoV2ViUGFnZSogcGFnZSkKICAgICB7CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3QocGFnZSkpOwpAQCAt
NTUsOCArNTMsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEluamVjdGVkQnVuZGxlQmFja0Zv
cndhcmRMaXN0KFdlYlBhZ2UqIHBhZ2UpIDogbV9wYWdlKHBhZ2UpIHsgfQogCi0gICAgdmlydHVh
bCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9Ci0KICAgICBXZWJQYWdlKiBt
X3BhZ2U7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJk
TGlzdEl0ZW0uaAppbmRleCA2NzdmYmM4Li5iMTYzYzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlQmFja0ZvcndhcmRM
aXN0SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmgKQEAgLTM0LDEwICszNCw4IEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogY2xhc3MgSW1tdXRhYmxlQXJyYXk7CiBjbGFzcyBXZWJQYWdlUHJv
eHk7CiAKLWNsYXNzIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbSA6IHB1YmxpYyBB
UElPYmplY3QgeworY2xhc3MgSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtIDogcHVi
bGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6VHlwZUJ1bmRsZUJhY2tGb3J3YXJkTGlzdEl0
ZW0+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZUJ1bmRs
ZUJhY2tGb3J3YXJkTGlzdEl0ZW07Ci0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbmplY3RlZEJ1
bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0+IGNyZWF0ZShQYXNzUmVmUHRyPFdlYkNvcmU6Okhpc3Rv
cnlJdGVtPiBpdGVtKQogICAgIHsKICAgICAgICAgaWYgKCFpdGVtKQpAQCAtNjEsOCArNTksNiBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRl
bShQYXNzUmVmUHRyPFdlYkNvcmU6Okhpc3RvcnlJdGVtPiBpdGVtKSA6IG1faXRlbShpdGVtKSB7
IH0KIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQot
CiAgICAgUmVmUHRyPFdlYkNvcmU6Okhpc3RvcnlJdGVtPiBtX2l0ZW07CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlRE9NV2luZG93RXh0ZW5zaW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmgKaW5kZXggNmZmOTZm
Yy4uYTY2NGExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVET01XaW5kb3dF
eHRlbnNpb24uaApAQCAtNDAsMTAgKzQwLDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBJ
bmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkOwogY2xhc3MgV2ViRnJhbWU7CiAKLWNsYXNzIEluamVj
dGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uIDogcHVibGljIEFQSU9iamVjdCB7CitjbGFzcyBJ
bmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbiA6IHB1YmxpYyBUeXBlZEFQSU9iamVjdDxB
UElPYmplY3Q6OlR5cGVCdW5kbGVET01XaW5kb3dFeHRlbnNpb24+IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZUJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbjsK
LQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9u
PiBjcmVhdGUoV2ViRnJhbWUqLCBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkKik7CiAgICAgc3Rh
dGljIEluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uKiBnZXQoV2ViQ29yZTo6RE9NV2lu
ZG93RXh0ZW5zaW9uKik7CiAKQEAgLTUzLDggKzUxLDYgQEAgcHVibGljOgogICAgIEluamVjdGVk
QnVuZGxlU2NyaXB0V29ybGQqIHdvcmxkKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVh
bCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9Ci0KICAgICBJbmplY3RlZEJ1
bmRsZURPTVdpbmRvd0V4dGVuc2lvbihXZWJGcmFtZSosIEluamVjdGVkQnVuZGxlU2NyaXB0V29y
bGQqKTsKIAogICAgIFJlZlB0cjxXZWJDb3JlOjpET01XaW5kb3dFeHRlbnNpb24+IG1fY29yZUV4
dGVuc2lvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5oCmluZGV4
IDI5MmZjZTEuLmQyOTAyMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RS
ZXN1bHQuaApAQCAtMzcsMTAgKzM3LDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBJbmpl
Y3RlZEJ1bmRsZU5vZGVIYW5kbGU7CiBjbGFzcyBXZWJGcmFtZTsKIAotY2xhc3MgSW5qZWN0ZWRC
dW5kbGVIaXRUZXN0UmVzdWx0IDogcHVibGljIEFQSU9iamVjdCB7CitjbGFzcyBJbmplY3RlZEJ1
bmRsZUhpdFRlc3RSZXN1bHQgOiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpUeXBl
QnVuZGxlSGl0VGVzdFJlc3VsdD4gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQ
SVR5cGUgPSBUeXBlQnVuZGxlSGl0VGVzdFJlc3VsdDsKLQogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdD4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkhpdFRl
c3RSZXN1bHQmKTsKIAogICAgIGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmIGNvcmVIaXRU
ZXN0UmVzdWx0KCkgY29uc3QgeyByZXR1cm4gbV9oaXRUZXN0UmVzdWx0OyB9CkBAIC02Nyw4ICs2
NSw2IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkg
Y29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQotCiAgICAgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCBt
X2hpdFRlc3RSZXN1bHQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZU5hdmln
YXRpb25BY3Rpb24uaAppbmRleCAxMjhjOWZiLi5mOTQzNmU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlTmF2aWdhdGlv
bkFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmgKQEAgLTQzLDEwICs0Myw4IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJGcmFtZTsKIAotY2xhc3MgSW5qZWN0ZWRCdW5kbGVO
YXZpZ2F0aW9uQWN0aW9uIDogcHVibGljIEFQSU9iamVjdCB7CitjbGFzcyBJbmplY3RlZEJ1bmRs
ZU5hdmlnYXRpb25BY3Rpb24gOiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpUeXBl
QnVuZGxlTmF2aWdhdGlvbkFjdGlvbj4gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBUeXBl
IEFQSVR5cGUgPSBUeXBlQnVuZGxlTmF2aWdhdGlvbkFjdGlvbjsKLQogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbj4gY3JlYXRlKFdlYkZyYW1lKiwg
Y29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIFBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9y
bVN0YXRlPik7CiAKICAgICBzdGF0aWMgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnNGb3JO
YXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKTsKQEAgLTYx
LDggKzU5LDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBJbmplY3RlZEJ1bmRsZU5hdmlnYXRp
b25BY3Rpb24oV2ViRnJhbWUqLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+KTsKIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkg
Y29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQotCiAgICAgV2ViQ29yZTo6TmF2aWdhdGlvblR5cGUg
bV9uYXZpZ2F0aW9uVHlwZTsKICAgICBXZWJFdmVudDo6TW9kaWZpZXJzIG1fbW9kaWZpZXJzOwog
ICAgIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBtX21vdXNlQnV0dG9uOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlw
dFdvcmxkLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlU2NyaXB0V29ybGQuaAppbmRleCA3NTYyYTZmLi5hY2RjODMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
U2NyaXB0V29ybGQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuaApAQCAtMzYsMTAgKzM2LDggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgSW5qZWN0ZWRCdW5k
bGVTY3JpcHRXb3JsZCA6IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3MgSW5qZWN0ZWRCdW5kbGVT
Y3JpcHRXb3JsZCA6IHB1YmxpYyBUeXBlZEFQSU9iamVjdDxBUElPYmplY3Q6OlR5cGVCdW5kbGVT
Y3JpcHRXb3JsZD4gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBU
eXBlQnVuZGxlU2NyaXB0V29ybGQ7Ci0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbmplY3RlZEJ1
bmRsZVNjcmlwdFdvcmxkPiBjcmVhdGUoKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbmplY3Rl
ZEJ1bmRsZVNjcmlwdFdvcmxkPiBnZXRPckNyZWF0ZShXZWJDb3JlOjpET01XcmFwcGVyV29ybGQq
KTsKICAgICBzdGF0aWMgSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCogbm9ybWFsV29ybGQoKTsK
QEAgLTUzLDggKzUxLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBJbmplY3RlZEJ1bmRsZVNj
cmlwdFdvcmxkKFBhc3NSZWZQdHI8V2ViQ29yZTo6RE9NV3JhcHBlcldvcmxkPik7CiAKLSAgICB2
aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KLQogICAgIFJlZlB0
cjxXZWJDb3JlOjpET01XcmFwcGVyV29ybGQ+IG1fd29ybGQ7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZU92ZXJsYXkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheS5oCmluZGV4IGQ2MTM2ZGUuLjBm
YTA1OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdl
T3ZlcmxheS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3Zl
cmxheS5oCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViTW91
c2VFdmVudDsKIGNsYXNzIFdlYlBhZ2U7CiAKLWNsYXNzIFBhZ2VPdmVybGF5IDogcHVibGljIEFQ
SU9iamVjdCB7CitjbGFzcyBQYWdlT3ZlcmxheSA6IHB1YmxpYyBUeXBlZEFQSU9iamVjdDxBUElP
YmplY3Q6OlR5cGVCdW5kbGVQYWdlT3ZlcmxheT4gewogcHVibGljOgogICAgIGNsYXNzIENsaWVu
dCB7CiAgICAgcHJvdGVjdGVkOgpAQCAtNTQsOCArNTQsNiBAQCBwdWJsaWM6CiAgICAgICAgIHZp
cnR1YWwgYm9vbCBtb3VzZUV2ZW50KFBhZ2VPdmVybGF5KiwgY29uc3QgV2ViTW91c2VFdmVudCYp
ID0gMDsKICAgICB9OwogCi0gICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVCdW5k
bGVQYWdlT3ZlcmxheTsKLQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBhZ2VPdmVybGF5PiBjcmVh
dGUoQ2xpZW50Kik7CiAgICAgdmlydHVhbCB+UGFnZU92ZXJsYXkoKTsKIApAQCAtNzYsOSArNzQs
NiBAQCBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgUGFnZU92ZXJsYXkoQ2xpZW50Kik7CiAKIHBy
aXZhdGU6Ci0gICAgLy8gQVBJT2JqZWN0Ci0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7
IHJldHVybiBBUElUeXBlOyB9Ci0KICAgICBXZWJDb3JlOjpJbnRSZWN0IGJvdW5kcygpIGNvbnN0
OwogCiAgICAgdm9pZCBzdGFydEZhZGVBbmltYXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKaW5kZXggYmZmNmZlMS4uOTMxMTJhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKQEAgLTU1LDEwICs1
NSw4IEBAIGNsYXNzIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU7CiBjbGFzcyBJbmplY3RlZEJ1
bmRsZVNjcmlwdFdvcmxkOwogY2xhc3MgV2ViUGFnZTsKIAotY2xhc3MgV2ViRnJhbWUgOiBwdWJs
aWMgQVBJT2JqZWN0IHsKK2NsYXNzIFdlYkZyYW1lIDogcHVibGljIFR5cGVkQVBJT2JqZWN0PEFQ
SU9iamVjdDo6VHlwZUJ1bmRsZUZyYW1lPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IFR5
cGUgQVBJVHlwZSA9IFR5cGVCdW5kbGVGcmFtZTsKLQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdl
YkZyYW1lPiBjcmVhdGVNYWluRnJhbWUoV2ViUGFnZSopOwogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFdlYkZyYW1lPiBjcmVhdGVTdWJmcmFtZShXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBmcmFtZU5h
bWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCopOwogICAgIH5XZWJGcmFtZSgpOwpA
QCAtMTQ3LDggKzE0NSw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGluaXQoV2ViUGFnZSosIGNv
bnN0IFN0cmluZyYgZnJhbWVOYW1lLCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1lbnQqKTsK
IAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQotCiAg
ICAgV2ViQ29yZTo6RnJhbWUqIG1fY29yZUZyYW1lOwogCiAgICAgdWludDY0X3QgbV9wb2xpY3lM
aXN0ZW5lcklEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkluc3BlY3Rvci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYklu
c3BlY3Rvci5oCmluZGV4IGJmNDlhOGQuLjhlZTgyYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgKQEAgLTQzLDEwICs0Myw4IEBAIGNs
YXNzIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OwogY2xhc3MgV2ViUGFnZTsKIHN0cnVjdCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOwogCi1jbGFzcyBXZWJJbnNwZWN0b3IgOiBwdWJsaWMg
QVBJT2JqZWN0IHsKK2NsYXNzIFdlYkluc3BlY3RvciA6IHB1YmxpYyBUeXBlZEFQSU9iamVjdDxB
UElPYmplY3Q6OlR5cGVCdW5kbGVJbnNwZWN0b3I+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29u
c3QgVHlwZSBBUElUeXBlID0gVHlwZUJ1bmRsZUluc3BlY3RvcjsKLQogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFdlYkluc3BlY3Rvcj4gY3JlYXRlKFdlYlBhZ2UqLCBXZWJDb3JlOjpJbnNwZWN0b3JG
cm9udGVuZENoYW5uZWwqKTsKIAogICAgIFdlYlBhZ2UqIHBhZ2UoKSBjb25zdCB7IHJldHVybiBt
X3BhZ2U7IH0KQEAgLTg1LDggKzgzLDYgQEAgcHJpdmF0ZToKIAogICAgIGV4cGxpY2l0IFdlYklu
c3BlY3RvcihXZWJQYWdlKiwgV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKik7CiAK
LSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KLQogICAg
IC8vIENhbGxlZCBmcm9tIFdlYkluc3BlY3RvckNsaWVudAogICAgIFdlYlBhZ2UqIGNyZWF0ZUlu
c3BlY3RvclBhZ2UoKTsKICAgICB2b2lkIGRlc3Ryb3lJbnNwZWN0b3JQYWdlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBlY2E2NGM5Li44ZjBh
M2IzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAg
LTE2NSwxMCArMTY1LDggQEAgY2xhc3MgV2ViVG91Y2hFdmVudDsKIAogdHlwZWRlZiBWZWN0b3I8
UmVmUHRyPFBhZ2VPdmVybGF5PiA+IFBhZ2VPdmVybGF5TGlzdDsKIAotY2xhc3MgV2ViUGFnZSA6
IHB1YmxpYyBBUElPYmplY3QsIHB1YmxpYyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1Ymxp
YyBDb3JlSVBDOjpNZXNzYWdlU2VuZGVyPFdlYlBhZ2U+IHsKK2NsYXNzIFdlYlBhZ2UgOiBwdWJs
aWMgVHlwZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpUeXBlQnVuZGxlUGFnZT4sIHB1YmxpYyBDb3Jl
SVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBDb3JlSVBDOjpNZXNzYWdlU2VuZGVyPFdlYlBh
Z2U+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZUJ1bmRs
ZVBhZ2U7Ci0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJQYWdlPiBjcmVhdGUodWludDY0X3Qg
cGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAgdmlydHVhbCB+
V2ViUGFnZSgpOwogCkBAIC02NDUsOCArNjQzLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBX
ZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYp
OwogCi0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9Ci0K
ICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogCiAgICAgdm9pZCBkaWRSZWNlaXZlV2Vi
UGFnZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZUdyb3VwUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
R3JvdXBQcm94eS5oCmluZGV4IDI2YTkxOTkuLjAwNWVlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlR3JvdXBQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlR3JvdXBQcm94eS5oCkBAIC00MSwx
MCArNDEsOCBAQCBjbGFzcyBQYWdlR3JvdXA7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFz
cyBXZWJQYWdlR3JvdXBQcm94eSA6IHB1YmxpYyBBUElPYmplY3QgeworY2xhc3MgV2ViUGFnZUdy
b3VwUHJveHkgOiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpUeXBlQnVuZGxlUGFn
ZUdyb3VwPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVC
dW5kbGVQYWdlR3JvdXA7Ci0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJQYWdlR3JvdXBQcm94
eT4gY3JlYXRlKGNvbnN0IFdlYlBhZ2VHcm91cERhdGEmKTsKICAgICB2aXJ0dWFsIH5XZWJQYWdl
R3JvdXBQcm94eSgpOwogCkBAIC01OCw4ICs1Niw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
V2ViUGFnZUdyb3VwUHJveHkoY29uc3QgV2ViUGFnZUdyb3VwRGF0YSYpOwogCi0gICAgdmlydHVh
bCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9Ci0KICAgICB2b2lkIGFkZFVz
ZXJTdHlsZVNoZWV0KGNvbnN0IFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0Jik7CiAgICAgdm9pZCBh
ZGRVc2VyU2NyaXB0KGNvbnN0IFdlYkNvcmU6OlVzZXJTY3JpcHQmKTsKICAgICB2b2lkIHJlbW92
ZUFsbFVzZXJTdHlsZVNoZWV0cygpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>