<?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>50780</bug_id>
          
          <creation_ts>2010-12-09 12:41:03 -0800</creation_ts>
          <short_desc>WebKit2: Need to be able to set and get the Cookie Storage Policy</short_desc>
          <delta_ts>2011-04-14 09:24:22 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jessie Berlin">jberlin</reporter>
          <assigned_to name="Jessie Berlin">jberlin</assigned_to>
          <cc>andersca</cc>
    
    <cc>jberlin</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>319662</commentid>
    <comment_count>0</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2010-12-09 12:41:03 -0800</bug_when>
    <thetext>It should be similar to the WebKit1 cookieStorageAcceptPolicy/setCookieStorageAcceptPolicy.

&lt;rdar://problem/8750856&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365325</commentid>
    <comment_count>1</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2011-03-10 11:08:49 -0800</bug_when>
    <thetext>It doesn&apos;t have to be a preference. It should probably be done on the WKCookieManager instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372851</commentid>
    <comment_count>2</comment_count>
      <attachid>86784</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2011-03-24 09:38:25 -0700</bug_when>
    <thetext>Created attachment 86784
Patch (Part 1) - Getting and setting the policy in WebKit2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372886</commentid>
    <comment_count>3</comment_count>
      <attachid>86784</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-03-24 10:17:32 -0700</bug_when>
    <thetext>Comment on attachment 86784
Patch (Part 1) - Getting and setting the policy in WebKit2

I’m not sure WebCore should be involved so much here. It’s right to have WebKit2 send the cookie acceptance policy from the UI to the Web process, but I’m not sure we need the platform layer inside WebCore involved in communicating this to the networking code in a platform-independent way.

It seems to me that WebKit2 code can directly call setHTTPCookieAcceptPolicyOnAllCookieStorages for the CFNetwork case and we need not introduce this concept for all the other networking layers unless there really is a cross-platform need for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372911</commentid>
    <comment_count>4</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2011-03-24 10:32:46 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 86784 [details])
&gt; I’m not sure WebCore should be involved so much here. It’s right to have WebKit2 send the cookie acceptance policy from the UI to the Web process, but I’m not sure we need the platform layer inside WebCore involved in communicating this to the networking code in a platform-independent way.
&gt; 
&gt; It seems to me that WebKit2 code can directly call setHTTPCookieAcceptPolicyOnAllCookieStorages for the CFNetwork case and we need not introduce this concept for all the other networking layers unless there really is a cross-platform need for this.

The reason I went with getting and setting the policy in WebCore is that we get the list of hostnames in WebCore that have cookies associated with them and delete cookies associated with specific hostnames in WebCore (necessary for other platforms that still use WebKit1 API).

Another minor point is this approach  allows for WebCore to keep whether or not Private Browsing is enabled a detail that the WebCookieManager doesn&apos;t need to know about.

However, I do not have very strong feelings on this and could be persuaded that keeping as much of it as possible in the WebKit2 layer is the best way to go. One question that I am not quite sure about - as other ports adopt WebKit2, won&apos;t they need to introduce this concept for their networking layers anyways since they will have to implement this API?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373016</commentid>
    <comment_count>5</comment_count>
      <attachid>86784</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2011-03-24 13:06:14 -0700</bug_when>
    <thetext>Comment on attachment 86784
Patch (Part 1) - Getting and setting the policy in WebKit2

I am going to take another pass at this that avoids having to give separate implementations for all of the different platforms when the only implementations that will really be used are the CFNetwork and Mac ones.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373531</commentid>
    <comment_count>6</comment_count>
      <attachid>86947</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2011-03-25 08:37:06 -0700</bug_when>
    <thetext>Created attachment 86947
Patch (Part 1) - Getting and setting the policy in WebKit2 (Take 2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373560</commentid>
    <comment_count>7</comment_count>
      <attachid>86947</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2011-03-25 09:41:57 -0700</bug_when>
    <thetext>Comment on attachment 86947
Patch (Part 1) - Getting and setting the policy in WebKit2 (Take 2)

Per discussion with Anders on IRC, it would be better to have more of this done entirely in WebKit2 (instead of doing the actual setting and getting in WebCore). I will rework it and send out another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373587</commentid>
    <comment_count>8</comment_count>
      <attachid>86955</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2011-03-25 10:30:09 -0700</bug_when>
    <thetext>Created attachment 86955
Patch (Part 1) - Getting and setting the policy in WebKit2 (Take 3)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373672</commentid>
    <comment_count>9</comment_count>
      <attachid>86955</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2011-03-25 12:33:11 -0700</bug_when>
    <thetext>Comment on attachment 86955
Patch (Part 1) - Getting and setting the policy in WebKit2 (Take 3)

Committed with a Mac build fix in http://trac.webkit.org/changeset/81980</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373711</commentid>
    <comment_count>10</comment_count>
      <attachid>86978</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2011-03-25 13:49:06 -0700</bug_when>
    <thetext>Created attachment 86978
Patch (Part 2) - Make it possible to specify the initial policy on Windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385804</commentid>
    <comment_count>11</comment_count>
      <attachid>86978</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2011-04-14 09:24:13 -0700</bug_when>
    <thetext>Comment on attachment 86978
Patch (Part 2) - Make it possible to specify the initial policy on Windows

Committed in http://trac.webkit.org/changeset/81997</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86784</attachid>
            <date>2011-03-24 09:38:25 -0700</date>
            <delta_ts>2011-03-25 08:37:06 -0700</delta_ts>
            <desc>Patch (Part 1) - Getting and setting the policy in WebKit2</desc>
            <filename>moveGettingTheHTTPAcceptCookiePolicyToWebProcessOpensourceTake5.patch</filename>
            <type>text/plain</type>
            <size>35535</size>
            <attacher name="Jessie Berlin">jberlin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxODY5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNzQgQEAKKzIwMTEtMDMtMjQgIEplc3NpZSBC
ZXJsaW4gIDxqYmVybGluQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWJLaXQyOiBOZWVkIHRvIGJlIGFibGUgdG8gc2V0IGFuZCBn
ZXQgdGhlIENvb2tpZSBTdG9yYWdlIFBvbGljeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTUwNzgwCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoK
KyAgICAgICAgRXhwb3NlIHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kgYW5kIGdldEhUVFBDb29r
aWVBY2NlcHRQb2xpY3kuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9Db29raWVKYXIuaDoKKyAgICAg
ICAgQWRkIHRoZSBIVFRQQ29va2llQWNjZXB0UG9saWN5IGVudW0uCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9lZmwvQ29va2llSmFyRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNldEhUVFBDb29r
aWVBY2NlcHRQb2xpY3kpOgorICAgICAgICBBZGQgYSBGSVhNRTogTm90IHlldCBpbXBsZW1lbnRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAg
ICBEaXR0bywgYW5kIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzIGFzIGRlZmF1
bHQuCisgICAgICAgICogcGxhdGZvcm0vaGFpa3UvQ29va2llSmFySGFpa3UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIERp
dHRvLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYW5kcm9pZC9Db29raWVKYXJBbmRyb2lk
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAg
ICAgICBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kp
OgorICAgICAgICBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL0Nv
b2tpZUphckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNldEhUVFBDb29raWVBY2Nl
cHRQb2xpY3kpOgorICAgICAgICBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmdldEhUVFBDb29r
aWVBY2NlcHRQb2xpY3kpOgorICAgICAgICBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvQ29va2llSmFyQ3VybC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRIVFRQQ29v
a2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpnZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgRGl0dG8uCisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIERpdHRvLgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvd2luL0Nvb2tpZUphcldpbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgRGl0dG8uCisgICAg
ICAgICogcGxhdGZvcm0vcXQvQ29va2llSmFyUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIERpdHRvLgorCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL0Nvb2tpZUphci5tbToKKyAgICAgICAgKFdlYkNvcmU6OnNldEhUVFBD
b29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICBBZGQgYSBGSVhNRSB0byBzZXQgdGhlIHBvbGlj
eSBvbiB0aGUgUHJpdmF0ZSBCcm93c2luZyBDb29raWUgU3RvcmFnZSBhcyB3ZWxsLgorICAgICAg
ICAoV2ViQ29yZTo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIFJldHVybiB0
aGUgcG9saWN5IGZyb20gdGhlIGRlZmF1bHQgQ29va2llIFN0b3JhZ2UuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tpZUphckNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICBDYWxsIHNldEhUVFBDb29raWVB
Y2NlcHRQb2xpY3lPbkFsbENvb2tpZVN0b3JhZ2VzLgorICAgICAgICAoV2ViQ29yZTo6Z2V0SFRU
UENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIFJldHVybiB0aGUgcG9saWN5IGZyb20gdGhl
IGN1cnJlbnQgQ29va2llIFN0b3JhZ2UuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nm
L0Nvb2tpZVN0b3JhZ2VDRk5ldC5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvQ29v
a2llU3RvcmFnZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNldEhUVFBDb29raWVBY2Nl
cHRQb2xpY3lPbkFsbENvb2tpZVN0b3JhZ2VzKToKKyAgICAgICAgU2V0IHRoZSBwb2xpY3kgb24g
Ym90aCB0aGUgZGVmYXVsdCBhbmQgUHJpdmF0ZSBCcm93c2luZyBDb29raWUgU3RvcmFnZXMKKwog
MjAxMS0wMy0yNCAgQmVuIFRheWxvciAgPGJlbnRheWxvci5zb2x4ODZAZ21haWwuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgkocmV2aXNpb24gODE4NjgpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgkod29ya2luZyBjb3B5KQpAQCAtNTgwLDYgKzU4MCw4IEBAIF9fWk43V2ViQ29yZTI1UGx1Z2lu
TWFpblRocmVhZFNjaGVkdWxlcjEKIF9fWk43V2ViQ29yZTI1UGx1Z2luTWFpblRocmVhZFNjaGVk
dWxlcjlzY2hlZHVsZXJFdgogX19aTjdXZWJDb3JlMjVhZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVy
RVB2UEZ2UzBfRQogX19aTjdXZWJDb3JlMjVjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lRXYKK19f
Wk43V2ViQ29yZTI1Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUV2CitfX1pON1dlYkNvcmUyNXNl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3lFagogX19aTjdXZWJDb3JlMjZDU1NNdXRhYmxlU3R5bGVE
ZWNsYXJhdGlvbkMxRXYKIF9fWk43V2ViQ29yZTI2VXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3Iy
N3Byb2Nlc3NpbmdVc2VyVHlwaW5nR2VzdHVyZUV2CiBfX1pON1dlYkNvcmUyNlVzZXJUeXBpbmdH
ZXN0dXJlSW5kaWNhdG9yMjhmb2N1c2VkRWxlbWVudEF0R2VzdHVyZVN0YXJ0RXYKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nvb2tpZUphci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0Nvb2tpZUphci5oCShyZXZpc2lvbiA4MTg2OCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0Nvb2tpZUphci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCwx
MyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBzdHJ1Y3QgQ29va2llOwogCisgICAgZW51
bSB7CisgICAgICAgIEhUVFBDb29raWVBY2NlcHRQb2xpY3lBbHdheXMgPSAwLAorICAgICAgICBI
VFRQQ29va2llQWNjZXB0UG9saWN5TmV2ZXIgPSAxLAorICAgICAgICBIVFRQQ29va2llQWNjZXB0
UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW4gPSAyCisgICAgfTsKKyAgICB0eXBlZGVm
IHVuc2lnbmVkIEhUVFBDb29raWVBY2NlcHRQb2xpY3k7CisKICAgICAvLyBjb29raWVzIG9taXRz
IEh0dHBPbmx5IGNvb2tpZXMuCiAgICAgU3RyaW5nIGNvb2tpZXMoY29uc3QgRG9jdW1lbnQqLCBj
b25zdCBLVVJMJik7CiAgICAgU3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNv
bnN0IERvY3VtZW50KiwgY29uc3QgS1VSTCYpOwpAQCAtNDUsNiArNTIsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBEb2N1bWVudCopOwogICAg
IGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBEb2N1bWVudCosIGNvbnN0IEtVUkwmLCBWZWN0b3I8
Q29va2llPiYpOwogICAgIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IERvY3VtZW50KiwgY29uc3Qg
S1VSTCYsIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eShIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKKyAgICBIVFRQQ29va2llQWNjZXB0UG9saWN5IGdl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3koKTsKIAogICAgIHZvaWQgZ2V0SG9zdG5hbWVzV2l0aENv
b2tpZXMoSGFzaFNldDxTdHJpbmc+JiBob3N0bmFtZXMpOwogICAgIHZvaWQgZGVsZXRlQ29va2ll
c0Zvckhvc3RuYW1lKGNvbnN0IFN0cmluZyYgaG9zdG5hbWUpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZWZsL0Nvb2tpZUphckVmbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL0Nvb2tpZUphckVmbC5jcHAJKHJldmlzaW9uIDgxODY4KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0Nvb2tpZUphckVmbC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTY3LDQgKzY3LDE1IEBAIHZvaWQgZGVsZXRlQWxsQ29va2llcygpCiAgICAgLy8gRklY
TUU6IE5vdCB5ZXQgaW1wbGVtZW50ZWQKIH0KIAordm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9s
aWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQoreworICAgIC8vIEZJWE1FOiBOb3Qg
eWV0IGltcGxlbWVudGVkCit9CisKK0hUVFBDb29raWVBY2NlcHRQb2xpY3kgZ2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSgpCit7CisgICAgLy8gRklYTUU6IE5vdCB5ZXQgaW1wbGVtZW50ZWQKKyAg
ICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czsKK30KKwogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvQ29va2llSmFySGFpa3UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0Nvb2tpZUphckhhaWt1LmNwcAkocmV2
aXNpb24gODE4NjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Db29raWVKYXJI
YWlrdS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkwLDUgKzkwLDE2IEBAIHZvaWQgZGVsZXRlQWxs
Q29va2llcygpCiAgICAgLy8gRklYTUU6IE5vdCB5ZXQgaW1wbGVtZW50ZWQKIH0KIAordm9pZCBz
ZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQor
eworICAgIC8vIEZJWE1FOiBOb3QgeWV0IGltcGxlbWVudGVkCit9CisKK0hUVFBDb29raWVBY2Nl
cHRQb2xpY3kgZ2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpCit7CisgICAgLy8gRklYTUU6IE5v
dCB5ZXQgaW1wbGVtZW50ZWQKKyAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5
czsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvQ29va2llSmFyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9Db29raWVKYXIubW0JKHJldmlzaW9uIDgxODY4KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0Nvb2tpZUphci5tbQkod29ya2luZyBjb3B5KQpAQCAtMjI1LDYgKzIy
NSwyNSBAQCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBEb2N1bWVudCosIGNvbnN0CiAgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIAordm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9s
aWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQoreworI2lmIFVTRShDRlVSTFNUT1JB
R0VTRVNTSU9OUykKKyAgICAvLyBGSVhNRTogQWxzbyB1cGRhdGUgdGhlIFByaXZhdGUgQnJvd3Np
bmcgU3RvcmFnZSBTZXNzaW9uJ3MgY29va2llIHN0b3JhZ2UuCisjZW5kaWYKKworICAgIFtbTlNI
VFRQQ29va2llU3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV0gc2V0Q29va2llQWNjZXB0
UG9saWN5OnBvbGljeV07Cit9CisKK0hUVFBDb29raWVBY2NlcHRQb2xpY3kgZ2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSgpCit7CisjaWYgVVNFKENGVVJMU1RPUkFHRVNFU1NJT05TKQorICAgIGlm
IChDRkhUVFBDb29raWVTdG9yYWdlUmVmIGNvb2tpZVN0b3JhZ2UgPSBwcml2YXRlQnJvd3NpbmdD
b29raWVTdG9yYWdlKCkuZ2V0KCkpCisgICAgICAgIHJldHVybiB3a0dldEhUVFBDb29raWVBY2Nl
cHRQb2xpY3koY29va2llU3RvcmFnZSk7CisjZW5kaWYKKworICAgIHJldHVybiBbW05TSFRUUENv
b2tpZVN0b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdIGNvb2tpZUFjY2VwdFBvbGljeV07
Cit9CisKIHZvaWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoSGFzaFNldDxTdHJpbmc+JiBob3N0
bmFtZXMpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9hbmRyb2lkL0Nvb2tpZUphckFuZHJvaWQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYW5kcm9pZC9Db29r
aWVKYXJBbmRyb2lkLmNwcAkocmV2aXNpb24gODE4NjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2FuZHJvaWQvQ29va2llSmFyQW5kcm9pZC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTY3LDQgKzY3LDE1IEBAIHZvaWQgZGVsZXRlQWxsQ29va2llcygpCiAgICAgLy8gRklYTUU6
IE5vdCB5ZXQgaW1wbGVtZW50ZWQKIH0KIAordm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
KEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQoreworICAgIC8vIEZJWE1FOiBOb3QgeWV0
IGltcGxlbWVudGVkCit9CisKK0hUVFBDb29raWVBY2NlcHRQb2xpY3kgZ2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeSgpCit7CisgICAgLy8gRklYTUU6IE5vdCB5ZXQgaW1wbGVtZW50ZWQKKyAgICBy
ZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czsKK30KKwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Db29raWVKYXJDRk5ldC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Db29raWVKYXJDRk5ldC5j
cHAJKHJldmlzaW9uIDgxODY4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9Db29raWVKYXJDRk5ldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3OSw2ICsyNzksMjAgQEAg
dm9pZCBkZWxldGVBbGxDb29raWVzKCkKICAgICBDRkhUVFBDb29raWVTdG9yYWdlRGVsZXRlQWxs
Q29va2llcyhjb29raWVTdG9yYWdlKTsKIH0KIAordm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9s
aWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQoreworICAgIHNldEhUVFBDb29raWVB
Y2NlcHRQb2xpY3lPbkFsbENvb2tpZVN0b3JhZ2VzKHBvbGljeSk7Cit9CisKK0hUVFBDb29raWVB
Y2NlcHRQb2xpY3kgZ2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpCit7CisgICAgQ0ZIVFRQQ29v
a2llU3RvcmFnZVJlZiBjb29raWVTdG9yYWdlID0gY3VycmVudENvb2tpZVN0b3JhZ2UoKTsKKyAg
ICBpZiAoIWNvb2tpZVN0b3JhZ2UpCisgICAgICAgIHJldHVybiBDRkhUVFBDb29raWVTdG9yYWdl
QWNjZXB0UG9saWN5QWx3YXlzOworCisgICAgcmV0dXJuIENGSFRUUENvb2tpZVN0b3JhZ2VHZXRD
b29raWVBY2NlcHRQb2xpY3koY29va2llU3RvcmFnZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIFVTRShDRk5FVFdPUkspCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tpZVN0b3JhZ2VDRk5ldC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Db29raWVTdG9yYWdlQ0ZOZXQuY3Bw
CShyZXZpc2lvbiA4MTg2OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2Yv
Q29va2llU3RvcmFnZUNGTmV0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODEsNiArODEsMTQgQEAg
dm9pZCBzZXRDb29raWVTdG9yYWdlUHJpdmF0ZUJyb3dzaW5nRW5hYgogICAgICAgICBwcml2YXRl
QnJvd3NpbmdDb29raWVTdG9yYWdlKCkuYWRvcHRDRih3a0NyZWF0ZUluTWVtb3J5SFRUUENvb2tp
ZVN0b3JhZ2UoKSk7CiB9CiAKK3ZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeU9uQWxsQ29v
a2llU3RvcmFnZXMoQ0ZIVFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGljeSBwb2xpY3kpCit7Cisg
ICAgaWYgKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgcHJpdmF0ZUNvb2tpZVN0b3JhZ2UgPSBwcml2
YXRlQnJvd3NpbmdDb29raWVTdG9yYWdlKCkuZ2V0KCkpCisgICAgICAgIENGSFRUUENvb2tpZVN0
b3JhZ2VTZXRDb29raWVBY2NlcHRQb2xpY3kocHJpdmF0ZUNvb2tpZVN0b3JhZ2UsIHBvbGljeSk7
CisKKyAgICBDRkhUVFBDb29raWVTdG9yYWdlU2V0Q29va2llQWNjZXB0UG9saWN5KHdrR2V0RGVm
YXVsdEhUVFBDb29raWVTdG9yYWdlKCksIHBvbGljeSk7Cit9CisKIHN0YXRpYyB2b2lkIG5vdGlm
eUNvb2tpZXNDaGFuZ2VkT25NYWluVGhyZWFkKHZvaWQqIGNvbnRleHQpCiB7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2YvQ29va2llU3RvcmFnZUNGTmV0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9Db29raWVTdG9yYWdlQ0ZOZXQuaAkocmV2aXNpb24gODE4NjgpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tpZVN0b3JhZ2VDRk5ldC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxMiArMjgsMTQgQEAKIAogI2lmIFVTRShDRk5FVFdPUksp
CiAKLXR5cGVkZWYgc3RydWN0IE9wYXF1ZUNGSFRUUENvb2tpZVN0b3JhZ2UqICBDRkhUVFBDb29r
aWVTdG9yYWdlUmVmOworI2luY2x1ZGUgPENGTmV0d29yay9DRkhUVFBDb29raWVzUHJpdi5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBDRkhUVFBDb29raWVTdG9yYWdlUmVmIGN1cnJl
bnRDb29raWVTdG9yYWdlKCk7CiAKKyAgICB2b2lkIHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3lP
bkFsbENvb2tpZVN0b3JhZ2VzKENGSFRUUENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3kpOworCiAg
ICAgLy8gTmVlZGVkIGZvciBXZWJLaXQxIEFQSSBvbmx5LgogICAgIHZvaWQgc2V0Q3VycmVudENv
b2tpZVN0b3JhZ2UoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBjb29raWVTdG9yYWdlKTsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9Db29raWVKYXJDaHJv
bWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
aHJvbWl1bS9Db29raWVKYXJDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDgxODY4KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9Db29raWVKYXJDaHJvbWl1bS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTgyLDQgKzgyLDE1IEBAIHZvaWQgZGVsZXRlQWxsQ29va2llcygp
CiAgICAgLy8gRklYTUU6IE5vdCB5ZXQgaW1wbGVtZW50ZWQKIH0KIAordm9pZCBzZXRIVFRQQ29v
a2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQoreworICAgIC8v
IEZJWE1FOiBOb3QgeWV0IGltcGxlbWVudGVkCit9CisKK0hUVFBDb29raWVBY2NlcHRQb2xpY3kg
Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpCit7CisgICAgLy8gRklYTUU6IE5vdCB5ZXQgaW1w
bGVtZW50ZWQKKyAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmNwcAkocmV2aXNpb24gODE4Njgp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTgzLDQgKzgzLDE1IEBAIHZvaWQgZGVsZXRlQWxsQ29va2ll
cygpCiAgICAgLy8gRklYTUU6IE5vdCB5ZXQgaW1wbGVtZW50ZWQKIH0KIAordm9pZCBzZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQoreworICAg
IC8vIEZJWE1FOiBOb3QgeWV0IGltcGxlbWVudGVkCit9CisKK0hUVFBDb29raWVBY2NlcHRQb2xp
Y3kgZ2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpCit7CisgICAgLy8gRklYTUU6IE5vdCB5ZXQg
aW1wbGVtZW50ZWQKKyAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czsKK30K
KwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUph
clNvdXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9Db29raWVKYXJTb3VwLmNwcAkocmV2aXNpb24gODE4NjgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEzNyw0ICsxMzcsMTUgQEAgdm9pZCBkZWxldGVBbGxDb29raWVzKCkKICAgICAvLyBGSVhN
RTogTm90IHlldCBpbXBsZW1lbnRlZAogfQogCit2b2lkIHNldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCit7CisgICAgLy8gRklYTUU6IE5vdCB5
ZXQgaW1wbGVtZW50ZWQKK30KKworSFRUUENvb2tpZUFjY2VwdFBvbGljeSBnZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KCkKK3sKKyAgICAvLyBGSVhNRTogTm90IHlldCBpbXBsZW1lbnRlZAorICAg
IHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzOworfQorCiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9Db29raWVKYXJXaW4uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL0Nvb2tpZUphcldpbi5j
cHAJKHJldmlzaW9uIDgxODY4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93
aW4vQ29va2llSmFyV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDQgKzEwMSwxNSBAQCB2
b2lkIGRlbGV0ZUFsbENvb2tpZXMoKQogICAgIC8vIEZJWE1FOiBOb3QgeWV0IGltcGxlbWVudGVk
CiB9CiAKK3ZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9s
aWN5IHBvbGljeSkKK3sKKyAgICAvLyBGSVhNRTogTm90IHlldCBpbXBsZW1lbnRlZAorfQorCitI
VFRQQ29va2llQWNjZXB0UG9saWN5IGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKQoreworICAg
IC8vIEZJWE1FOiBOb3QgeWV0IGltcGxlbWVudGVkCisgICAgcmV0dXJuIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3lBbHdheXM7Cit9CisKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L0Nvb2tpZUphclF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9Db29raWVKYXJRdC5jcHAJKHJldmlzaW9uIDgxODY4KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcXQvQ29va2llSmFyUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTEsNiArMTUxLDE3
IEBAIHZvaWQgZGVsZXRlQWxsQ29va2llcygpCiAgICAgLy8gRklYTUU6IE5vdCB5ZXQgaW1wbGVt
ZW50ZWQKIH0KIAordm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2Nl
cHRQb2xpY3kgcG9saWN5KQoreworICAgIC8vIEZJWE1FOiBOb3QgeWV0IGltcGxlbWVudGVkCit9
CisKK0hUVFBDb29raWVBY2NlcHRQb2xpY3kgZ2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpCit7
CisgICAgLy8gRklYTUU6IE5vdCB5ZXQgaW1wbGVtZW50ZWQKKyAgICByZXR1cm4gSFRUUENvb2tp
ZUFjY2VwdFBvbGljeUFsd2F5czsKK30KKwogfQogCiAvLyB2aW06IHRzPTQgc3c9NCBldApJbmRl
eDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwkocmV2aXNpb24gODE4NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0MyBAQAorMjAxMS0wMy0yNCAgSmVzc2llIEJlcmxp
biAgPGpiZXJsaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdlYktpdDI6IE5lZWQgdG8gYmUgYWJsZSB0byBzZXQgYW5kIGdldCB0
aGUgQ29va2llIFN0b3JhZ2UgUG9saWN5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTA3ODAKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0FQ
SUNhc3QuaDoKKyAgICAgICAgKFdlYktpdDo6dG9IVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAg
ICAgICAgKFdlYktpdDo6dG9BUEkpOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29v
a2llTWFuYWdlci5jcHA6CisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5KToKKyAgICAgICAgQ2FsbCB0aHJvdWdoIHRvIFdlYkNvb2tpZU1hbmFnZXJQcm94
eS4KKyAgICAgICAgKFdLQ29va2llTWFuYWdlckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgor
ICAgICAgICBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2Vy
Lmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjppbnZhbGlkYXRlKToKKyAgICAg
ICAgSW52YWxpZGF0ZSB0aGUgZ2V0IGh0dHAgY29va2llIGFjY2VwdCBwb2xpY3kgY2FsbGJhY2tz
LgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldEhUVFBDb29raWVB
Y2NlcHRQb2xpY3kpOgorICAgICAgICBTZW5kIGEgbWVzc2FnZSB0byB0aGUgV2ViIFByb2Nlc3Mg
d2l0aCB0aGUgbmV3IHZhbHVlLgorICAgICAgICBPbiBNYWMsIGFsc28gc2V0IHRoZSBwb2xpY3kg
aW4gdGhlIFVJIFByb2Nlc3MgYmVjYXVzZSB0aGUgc2FuZGJveGVkIFdlYiBQcm9jZXNzIGNhbm5v
dAorICAgICAgICBwZXJzaXN0IHRoZSBwb2xpY3kuCisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tp
ZU1hbmFnZXJQcm94eTo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIEtlZXAg
dHJhY2sgb2YgdGhlIGNhbGxiYWNrIGFuZCBzZW5kIGEgbWVzc2FnZSB0byB0aGUgV2ViIFByb2Nl
c3MuCisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGlkR2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIEludm9rZSB0aGUgY2FsbGJhY2suCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJDb29raWVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
b2tpZU1hbmFnZXI6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICBDYWxsIGlu
dG8gV2ViQ29yZSdzIENvb2tpZUphci4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdl
cjo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIERpdHRvLCBhbmQgc2VuZCB0
aGUgcmVzdWx0IGJhY2sgdXAgdG8gdGhlIFVJIFByb2Nlc3MuCisgICAgICAgICogV2ViUHJvY2Vz
cy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Nvb2tp
ZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbjoKKwogMjAxMS0wMy0yMyAgSmlhIFB1ICA8
anB1QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHku
Y3BwCShyZXZpc2lvbiA4MTg2OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29r
aWVNYW5hZ2VyUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5j
bHVkZSAiV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dC5o
IgogI2luY2x1ZGUgIldlYlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Db29r
aWVKYXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTUwLDYgKzUxLDcgQEAgV2ViQ29v
a2llTWFuYWdlclByb3h5Ojp+V2ViQ29va2llTWFuYWdlcgogdm9pZCBXZWJDb29raWVNYW5hZ2Vy
UHJveHk6OmludmFsaWRhdGUoKQogewogICAgIGludmFsaWRhdGVDYWxsYmFja01hcChtX2FycmF5
Q2FsbGJhY2tzKTsKKyAgICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV9odHRwQ29va2llQWNjZXB0
UG9saWN5Q2FsbGJhY2tzKTsKIH0KIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmluaXRp
YWxpemVDbGllbnQoY29uc3QgV0tDb29raWVNYW5hZ2VyQ2xpZW50KiBjbGllbnQpCkBAIC0xMzEs
NCArMTMzLDQ1IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5Ojpjb29raWVzRGlkQ2gKICAg
ICBtX2NsaWVudC5jb29raWVzRGlkQ2hhbmdlKHRoaXMpOwogfQogCit2b2lkIFdlYkNvb2tpZU1h
bmFnZXJQcm94eTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpIVFRQQ29va2ll
QWNjZXB0UG9saWN5IHBvbGljeSkKK3sKKyAgICBBU1NFUlQobV93ZWJDb250ZXh0KTsKKyAgICBp
ZiAoIW1fd2ViQ29udGV4dC0+aGFzVmFsaWRQcm9jZXNzKCkpCisgICAgICAgIHJldHVybjsKKwor
I2lmIFBMQVRGT1JNKE1BQykKKyAgICAvLyBGSVhNRTogVGhlIHNhbmRib3ggYXBwZWFycyB0byBw
cmV2ZW50IHBlcnNpc3RpbmcgdGhlIG5ldyBwb2xpY3kgdG8gZGlzaywgc28gd2UgbXVzdCBzZXQg
dGhlCisgICAgLy8gcG9saWN5IGluIHRoZSBVSSBQcm9jZXNzIGFzIHdlbGwgYXMgaW4gdGhlIFdl
YiBQcm9jZXNzICh0byBtYWtlIHN1cmUgaXQgZ2V0cyBzZXQgb24gYW55CisgICAgLy8gUHJpdmF0
ZSBCcm93c2luZyBDb29raWUgU3RvcmFnZSkuCisgICAgV2ViQ29yZTo6c2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeShwb2xpY3kpOworI2VuZGlmCisgICAgbV93ZWJDb250ZXh0LT5wcm9jZXNzKCkt
PnNlbmQoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OlNldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kocG9saWN5KSwgMCk7Cit9CisKK3ZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpnZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KFBhc3NSZWZQdHI8SFRUUENvb2tpZUFjY2VwdFBvbGljeUNhbGxi
YWNrPiBwcnBDYWxsYmFjaykKK3sKKyAgICBBU1NFUlQobV93ZWJDb250ZXh0KTsKKworICAgIFJl
ZlB0cjxIVFRQQ29va2llQWNjZXB0UG9saWN5Q2FsbGJhY2s+IGNhbGxiYWNrID0gcHJwQ2FsbGJh
Y2s7CisgICAgaWYgKCFtX3dlYkNvbnRleHQtPmhhc1ZhbGlkUHJvY2VzcygpKSB7CisgICAgICAg
IGNhbGxiYWNrLT5pbnZhbGlkYXRlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB1
aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKKyAgICBtX2h0dHBD
b29raWVBY2NlcHRQb2xpY3lDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIGNhbGxiYWNrLnJlbGVh
c2UoKSk7CisgICAgbV93ZWJDb250ZXh0LT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYkNv
b2tpZU1hbmFnZXI6OkdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koY2FsbGJhY2tJRCksIDApOwor
fQorCit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGlkR2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeSh1aW50MzJfdCBwb2xpY3ksIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgUmVmUHRy
PEhUVFBDb29raWVBY2NlcHRQb2xpY3lDYWxsYmFjaz4gY2FsbGJhY2sgPSBtX2h0dHBDb29raWVB
Y2NlcHRQb2xpY3lDYWxsYmFja3MudGFrZShjYWxsYmFja0lEKTsKKyAgICBpZiAoIWNhbGxiYWNr
KSB7CisgICAgICAgIC8vIEZJWE1FOiBMb2cgZXJyb3Igb3IgYXNzZXJ0LgorICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1
ZShwb2xpY3kpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgJKHJldmlzaW9uIDgx
ODY4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5o
CSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xh
c3MgV2ViQ29udGV4dDsKIAogdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tBcnJheVJlZj4gQXJy
YXlDYWxsYmFjazsKK3R5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPFdLSFRUUENvb2tpZUFjY2VwdFBv
bGljeSwgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeT4gSFRUUENvb2tpZUFjY2VwdFBv
bGljeUNhbGxiYWNrOwogCiBjbGFzcyBXZWJDb29raWVNYW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJ
T2JqZWN0IHsKIHB1YmxpYzoKQEAgLTYyLDYgKzYzLDkgQEAgcHVibGljOgogICAgIHZvaWQgZGVs
ZXRlQ29va2llc0Zvckhvc3RuYW1lKGNvbnN0IFN0cmluZyYgaG9zdG5hbWUpOwogICAgIHZvaWQg
ZGVsZXRlQWxsQ29va2llcygpOwogCisgICAgdm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kpOworICAgIHZvaWQgZ2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeShQYXNzUmVmUHRyPEhUVFBDb29raWVBY2NlcHRQb2xpY3lDYWxsYmFjaz4p
OworCiAgICAgdm9pZCBzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoKTsKICAgICB2b2lkIHN0
b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKCk7CiAKQEAgLTczLDYgKzc3LDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAogICAg
IHZvaWQgZGlkR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCB1
aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGRpZEdldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kodWludDMyX3QgcG9saWN5LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKIAogICAgIHZvaWQgY29v
a2llc0RpZENoYW5nZSgpOwogICAgIApAQCAtODAsNiArODUsNyBAQCBwcml2YXRlOgogCiAgICAg
V2ViQ29udGV4dCogbV93ZWJDb250ZXh0OwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxB
cnJheUNhbGxiYWNrPiA+IG1fYXJyYXlDYWxsYmFja3M7CisgICAgSGFzaE1hcDx1aW50NjRfdCwg
UmVmUHRyPEhUVFBDb29raWVBY2NlcHRQb2xpY3lDYWxsYmFjaz4gPiBtX2h0dHBDb29raWVBY2Nl
cHRQb2xpY3lDYWxsYmFja3M7CiAKICAgICBXZWJDb29raWVNYW5hZ2VyUHJveHlDbGllbnQgbV9j
bGllbnQ7CiB9OwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiA4MTg2OCkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4JKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAKIAogbWVzc2FnZXMgLT4gV2ViQ29v
a2llTWFuYWdlclByb3h5IHsKICAgICBEaWRHZXRIb3N0bmFtZXNXaXRoQ29va2llcyhWZWN0b3I8
V1RGOjpTdHJpbmc+IGhvc3RuYW1lcywgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgRGlkR2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeSh1aW50MzJfdCBwb2xpY3ksIHVpbnQ2NF90IGNhbGxiYWNr
SUQpOwogICAgIAogICAgIENvb2tpZXNEaWRDaGFuZ2UoKQogfQpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAkocmV2aXNpb24gODE4NjgpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTMxLDExICszMSwxMyBAQAogI2luY2x1ZGUgIkZvbnRTbW9vdGhpbmdMZXZlbC5oIgogI2luY2x1
ZGUgIlJlc291cmNlQ2FjaGVzVG9DbGVhci5oIgogI2luY2x1ZGUgIldLQ29udGV4dC5oIgorI2lu
Y2x1ZGUgIldLQ29va2llTWFuYWdlci5oIgogI2luY2x1ZGUgIldLQ3JlZGVudGlhbFR5cGVzLmgi
CiAjaW5jbHVkZSAiV0tQYWdlLmgiCiAjaW5jbHVkZSAiV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCIK
ICNpbmNsdWRlICJXS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmgiCiAjaW5jbHVkZSAiV0tTaGFyZWRB
UElDYXN0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Db29raWVKYXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0NyZWRlbnRpYWwuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1Byb3RlY3Rpb25TcGFjZS5oPgpAQCAtMjUxLDYgKzI1MywzNiBA
QCBpbmxpbmUgUmVzb3VyY2VDYWNoZXNUb0NsZWFyIHRvUmVzb3VyY2VDCiAgICAgcmV0dXJuIEFs
bFJlc291cmNlQ2FjaGVzOwogfQogCitpbmxpbmUgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBv
bGljeSB0b0hUVFBDb29raWVBY2NlcHRQb2xpY3koV0tIVFRQQ29va2llQWNjZXB0UG9saWN5IHBv
bGljeSkKK3sKKyAgICBzd2l0Y2ggKHBvbGljeSkgeworICAgIGNhc2Uga1dLSFRUUENvb2tpZUFj
Y2VwdFBvbGljeUFsd2F5czoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkhUVFBDb29raWVBY2Nl
cHRQb2xpY3lBbHdheXM7CisgICAgY2FzZSBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5TmV2ZXI6
CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5TmV2ZXI7Cisg
ICAgY2FzZSBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21h
aW46CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZy
b21NYWluRG9jdW1lbnREb21haW47CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgcmV0dXJuIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3lBbHdheXM7Cit9CisK
K2lubGluZSBXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9BUEkoV2ViQ29yZTo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSBwb2xpY3kpCit7CisgICAgc3dpdGNoIChwb2xpY3kpIHsKKyAgICBjYXNl
IFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3lBbHdheXM6CisgICAgICAgIHJldHVybiBr
V0tIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzOworICAgIGNhc2UgV2ViQ29yZTo6SFRUUENv
b2tpZUFjY2VwdFBvbGljeU5ldmVyOgorICAgICAgICByZXR1cm4ga1dLSFRUUENvb2tpZUFjY2Vw
dFBvbGljeU5ldmVyOworICAgIGNhc2UgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeU9u
bHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgorICAgICAgICByZXR1cm4ga1dLSFRUUENvb2tpZUFj
Y2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIH0KKworICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3
YXlzOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2lmIGRlZmluZWQoV0lOMzIpIHx8
IGRlZmluZWQoX1dJTjMyKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
Q29va2llTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQ29va2llTWFuYWdlci5jcHAJKHJldmlzaW9uIDgxODY4KQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTU4LDYgKzU4LDE2IEBAIHZvaWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2llcyhX
S0MKICAgICB0b0ltcGwoY29va2llTWFuYWdlclJlZiktPmRlbGV0ZUFsbENvb2tpZXMoKTsKIH0K
IAordm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLQ29va2ll
TWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCBXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5
KQoreworICAgIHRvSW1wbChjb29raWVNYW5hZ2VyKS0+c2V0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eSh0b0hUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KSk7Cit9CisKK3ZvaWQgV0tDb29raWVN
YW5hZ2VyR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2ll
TWFuYWdlciwgdm9pZCogY29udGV4dCwgV0tDb29raWVNYW5hZ2VyR2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeUZ1bmN0aW9uIGNhbGxiYWNrKQoreworICAgIHRvSW1wbChjb29raWVNYW5hZ2VyKS0+
Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5Q2FsbGJhY2s6
OmNyZWF0ZShjb250ZXh0LCBjYWxsYmFjaykpOworfQorCiB2b2lkIFdLQ29va2llTWFuYWdlclN0
YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdl
cikKIHsKICAgICB0b0ltcGwoY29va2llTWFuYWdlciktPnN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hh
bmdlcygpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFu
YWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
b2tpZU1hbmFnZXIuaAkocmV2aXNpb24gODE4NjgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDEz
IEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgogCitlbnVtIHsKKyAgICBrV0tIVFRQQ29va2llQWNj
ZXB0UG9saWN5QWx3YXlzID0gMCwKKyAgICBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5TmV2ZXIg
PSAxLAorICAgIGtXS0hUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERv
bWFpbiA9IDIKK307Cit0eXBlZGVmIHVpbnQzMl90IFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeTsK
KwogLy8gQ29va2llIE1hbmFnZXIgQ2xpZW50CiB0eXBlZGVmIHZvaWQgKCpXS0Nvb2tpZU1hbmFn
ZXJDb29raWVzRGlkQ2hhbmdlQ2FsbGJhY2spKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5h
Z2VyLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIApAQCAtNTIsNiArNTksMTAgQEAgV0tfRVhQ
T1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyR2V0SG9zdG5hbQogV0tfRVhQT1JUIHZvaWQgV0tDb29r
aWVNYW5hZ2VyRGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFdLQ29va2llTWFuYWdlclJlZiBjb29r
aWVNYW5hZ2VyLCBXS1N0cmluZ1JlZiBob3N0bmFtZSk7CiBXS19FWFBPUlQgdm9pZCBXS0Nvb2tp
ZU1hbmFnZXJEZWxldGVBbGxDb29raWVzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2Vy
KTsKIAorV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeShXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgV0tIVFRQQ29va2llQWNjZXB0
UG9saWN5IHBvbGljeSk7Cit0eXBlZGVmIHZvaWQgKCpXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29v
a2llQWNjZXB0UG9saWN5RnVuY3Rpb24pKFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSwgV0tFcnJv
clJlZiwgdm9pZCopOworV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyR2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeShXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgdm9pZCogY29u
dGV4dCwgV0tDb29raWVNYW5hZ2VyR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0aW9uIGNh
bGxiYWNrKTsKKwogV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyU3RhcnRPYnNlcnZpbmdD
b29raWVDaGFuZ2VzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyKTsKIFdLX0VYUE9S
VCB2b2lkIFdLQ29va2llTWFuYWdlclN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFdLQ29va2ll
TWFuYWdlclJlZiBjb29raWVNYW5hZ2VyKTsKIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAkocmV2aXNpb24g
ODE4NjgpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFu
YWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDQgKzg5LDE0IEBAIHZvaWQgV2ViQ29va2ll
TWFuYWdlcjo6ZGlzcGF0Y2hDb29raWVzRGkKICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6Q29va2llc0Rp
ZENoYW5nZSgpLCAwKTsKIH0KIAordm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQorewor
ICAgIFdlYkNvcmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KTsKK30KKwordm9p
ZCBXZWJDb29raWVNYW5hZ2VyOjpnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHVpbnQ2NF90IGNh
bGxiYWNrSUQpCit7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OkRpZEdldEhUVFBDb29raWVBY2NlcHRQ
b2xpY3koV2ViQ29yZTo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpLCBjYWxsYmFja0lEKSwg
MCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oCShyZXZpc2lvbiA4
MTg2OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5h
Z2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgV2ViQ29va2ll
TWFuYWdlcl9oCiAjZGVmaW5lIFdlYkNvb2tpZU1hbmFnZXJfaAogCisjaW5jbHVkZSA8V2ViQ29y
ZS9Db29raWVKYXIuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNDYsNiArNDcsOCBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgdm9pZCBkaXNwYXRjaENvb2tpZXNEaWRDaGFuZ2UoKTsKIAorICAgIHZvaWQgc2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKKwogcHJp
dmF0ZToKICAgICBXZWJDb29raWVNYW5hZ2VyKCk7CiAgICAgCkBAIC01Myw2ICs1Niw4IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBkZWxldGVDb29raWVzRm9ySG9zdG5hbWUoY29uc3QgU3RyaW5nJik7
CiAgICAgdm9pZCBkZWxldGVBbGxDb29raWVzKCk7CiAKKyAgICB2b2lkIGdldEhUVFBDb29raWVB
Y2NlcHRQb2xpY3kodWludDY0X3QgY2FsbGJhY2tJRCk7CisKICAgICB2b2lkIHN0YXJ0T2JzZXJ2
aW5nQ29va2llQ2hhbmdlcygpOwogICAgIHZvaWQgc3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMo
KTsKIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1h
bmFnZXIubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW4JKHJldmlzaW9uIDgxODY4KQor
KysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVz
c2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDkgQEAKICAgICB2b2lkIEdldEhv
c3RuYW1lc1dpdGhDb29raWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAgICAgdm9pZCBEZWxldGVD
b29raWVzRm9ySG9zdG5hbWUoV1RGOjpTdHJpbmcgaG9zdG5hbWUpCiAgICAgdm9pZCBEZWxldGVB
bGxDb29raWVzKCkKKworICAgIHZvaWQgU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSh1aW50MzJf
dCBwb2xpY3kpCisgICAgdm9pZCBHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHVpbnQ2NF90IGNh
bGxiYWNrSUQpCiAgICAgCiAgICAgdm9pZCBTdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoKQog
ICAgIHZvaWQgU3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoKQpJbmRleDogVG9vbHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gODE4NjkpCisrKyBU
b29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMCBAQAorMjAxMS0wMy0y
NCAgSmVzc2llIEJlcmxpbiAgPGpiZXJsaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktpdDI6IE5lZWQgdG8gYmUgYWJsZSB0
byBzZXQgYW5kIGdldCB0aGUgQ29va2llIFN0b3JhZ2UgUG9saWN5LgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA3ODAKKworICAgICAgICBBZGQgYSB0
ZXN0IGZvciBnZXR0aW5nIGFuZCBzZXR0aW5nIHRoZSBIVFRQIENvb2tpZSBBY2NlcHQgUG9saWN5
IGluIFdlYktpdDIuCisKKyAgICAgICAgVGhlIHRlc3QgaXMgbmFtZWQgIkNvb2tpZU1hbmFnZXIi
IHNvIHRoYXQgd2UgY2FuIGV2ZW50dWFsbHkgZXhlcmNpc2UgbW9yZSBvZiB0aGUKKyAgICAgICAg
Q29va2llTWFuYWdlciBmdW5jdGlvbmFsaXR5IGluIHRoZSB0ZXN0LgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0Nvb2tpZU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OmRpZEdldFRlc3RIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAg
ICAgICAgQXNzZXJ0IHRoYXQgdGhlIHBvbGljeSByZXR1cm5lZCBpcyBlcXVhbCB0byB0aGUgcG9s
aWN5IHNldCBpbgorICAgICAgICBkaWRHZXRVc2VySFRUUENvb2tpZUFjY2VwdFBvbGljeSwgYW5k
IHRoZW4gcmVzdG9yZSB0aGUgdXNlcidzIHBvbGljeS4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OmRpZEdldFVzZXJIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgU2V0IHRoZSBwb2xp
Y3kgdG8gc29tZXRoaW5nIGRpZmZlcmVudCB0aGFuIHRoZSB1c2VyJ3MgcG9saWN5IGFuZCBnZXQg
dGhlIHBvbGljeSBhZ2Fpbi4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRpZEZpbmlzaExvYWRG
b3JGcmFtZSk6CisgICAgICAgIEdldCB0aGUgdXNlcidzIHBvbGljeSBzbyB0aGF0IGl0IGNhbiBi
ZSByZXN0b3JlZCBhdCB0aGUgZW5kIG9mIHRoZSB0ZXN0LgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgIExvYWQgYWJvdXQ6Ymxhbmsgc28gdGhhdCB0aGUgV2ViIFByb2Nl
c3MgZ2V0cyBpbnN0YXRpYXRlZCAobmVlZGVkIHRvIGdldCB0aGUKKyAgICAgICAgQ29va2llTWFu
YWdlcikuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3dpbi9UZXN0V2ViS2l0QVBJLnZjcHJv
ajoKKyAgICAgICAgQWRkIENvb2tpZU1hbmFnZXIuY3BwLgorCiAyMDExLTAzLTIzICBMZWFuZHJv
IEdyYWNpYSBHaWwgIDxsZWFuZHJvZ3JhY2lhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biA4MTg2OCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01OCw2ICs1OCw3IEBACiAJCUMwQkQ2
NjlEMTMxRDNDRjcwMEUxOEYyQSAvKiBSZXNwb25zaXZlbmVzc1RpbWVyRG9lc250RmlyZUVhcmx5
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwQkQ2
NjlDMTMxRDNDRjcwMEUxOEYyQSAvKiBSZXNwb25zaXZlbmVzc1RpbWVyRG9lc250RmlyZUVhcmx5
LmNwcCAqLzsgfTsKIAkJQzBCRDY2OUYxMzFEM0NGRjAwRTE4RjJBIC8qIFJlc3BvbnNpdmVuZXNz
VGltZXJEb2VzbnRGaXJlRWFybHlfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwQkQ2NjlFMTMxRDNDRkYwMEUxOEYyQSAvKiBSZXNwb25z
aXZlbmVzc1RpbWVyRG9lc250RmlyZUVhcmx5X0J1bmRsZS5jcHAgKi87IH07CiAJCUY2QzU5RTM4
MTMyQUM1RTAwMDE3NkMwOSAvKiBTZW5kaW5nTWVzc2FnZXNUb1RoZVdlYlByb2Nlc3NCZWZvcmVJ
dElzVmFsaWQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjZDNTlFMzcxMzJBQzVERjAwMTc2QzA5IC8qIFNlbmRpbmdNZXNzYWdlc1RvVGhlV2ViUHJv
Y2Vzc0JlZm9yZUl0SXNWYWxpZC5jcHAgKi87IH07CisJCUY2RjNGMjkxMTMzNDJGRUIwMEE2QkYx
OSAvKiBDb29raWVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY2RjNGMjkwMTMzNDJGRUIwMEE2QkYxOSAvKiBDb29raWVNYW5hZ2VyLmNw
cCAqLzsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhD
b250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLwpAQCAtMTYxLDYgKzE2Miw3IEBACiAJCUMwQkQ2
NjlDMTMxRDNDRjcwMEUxOEYyQSAvKiBSZXNwb25zaXZlbmVzc1RpbWVyRG9lc250RmlyZUVhcmx5
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc3BvbnNpdmVuZXNz
VGltZXJEb2VzbnRGaXJlRWFybHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MEJENjY5RTEzMUQzQ0ZGMDBFMThGMkEgLyogUmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVF
YXJseV9CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVz
cG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseV9CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNkM1OUUzNzEzMkFDNURGMDAxNzZDMDkgLyogU2VuZGluZ01lc3Nh
Z2VzVG9UaGVXZWJQcm9jZXNzQmVmb3JlSXRJc1ZhbGlkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNlbmRpbmdNZXNzYWdlc1RvVGhlV2ViUHJvY2Vzc0JlZm9yZUl0
SXNWYWxpZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY2RjNGMjkwMTMzNDJG
RUIwMEE2QkYxOSAvKiBDb29raWVNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENvb2tpZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGcmFt
ZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCkBAIC0yNjgsNiArMjcwLDcgQEAKIAkJCQlCQzI0
NkQ4QzEzMkYxMTVBMDBCNTZEN0MgLyogQWJvdXRCbGFua0xvYWQuY3BwICovLAogCQkJCUJDMjQ2
RDk3MTMyRjFGRTEwMEI1NkQ3QyAvKiBDYW5IYW5kbGVSZXF1ZXN0X0J1bmRsZS5jcHAgKi8sCiAJ
CQkJQkMyNDZEOTgxMzJGMUZFMTAwQjU2RDdDIC8qIENhbkhhbmRsZVJlcXVlc3QuY3BwICovLAor
CQkJCUY2RjNGMjkwMTMzNDJGRUIwMEE2QkYxOSAvKiBDb29raWVNYW5hZ2VyLmNwcCAqLywKIAkJ
CQlCQ0I2ODAzRjEyNkZCRkUxMDA2NDJBNjEgLyogRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVy
dENyYXNoLmNwcCAqLywKIAkJCQlCQ0I2ODA0MTEyNkZCRkYxMDA2NDJBNjEgLyogRG9jdW1lbnRT
dGFydFVzZXJTY3JpcHRBbGVydENyYXNoX0J1bmRsZS5jcHAgKi8sCiAJCQkJMUE1RkVGREMxMjcw
RTJBMzAwMEUyOTIxIC8qIEV2YWx1YXRlSmF2YVNjcmlwdC5jcHAgKi8sCkBAIC00NDQsNiArNDQ3
LDcgQEAKIAkJCQlGNkM1OUUzODEzMkFDNUUwMDAxNzZDMDkgLyogU2VuZGluZ01lc3NhZ2VzVG9U
aGVXZWJQcm9jZXNzQmVmb3JlSXRJc1ZhbGlkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMjQ2
RDhFMTMyRjExNUEwMEI1NkQ3QyAvKiBBYm91dEJsYW5rTG9hZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzI0NkQ5QTEzMkYxRkUxMDBCNTZEN0MgLyogQ2FuSGFuZGxlUmVxdWVzdC5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlGNkYzRjI5MTEzMzQyRkVCMDBBNkJGMTkgLyogQ29va2llTWFuYWdl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mi9Db29raWVNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDIvQ29va2llTWFuYWdlci5jcHAJKHJldmlzaW9uIDApCisrKyBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvQ29va2llTWFuYWdlci5jcHAJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiVGVzdC5oIgorCisjaW5j
bHVkZSAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIK
KyNpbmNsdWRlIDxXZWJLaXQyL1dLQ29va2llTWFuYWdlci5oPgorI2luY2x1ZGUgPFdlYktpdDIv
V0tSZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dlYktpdDIuaD4KKworbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkgeworCitzdGF0aWMgYm9vbCB0ZXN0RG9uZTsKKy8vIE1ha2Ugc3VyZSB0
aGF0IHRoZSBwb2xpY3kgb24gdGhlIG1hY2hpbmUgcnVubmluZyB0aGUgdGVzdCBpcyBub3QgY2hh
bmdlZCBhZnRlciBydW5uaW5nIHRoZSB0ZXN0Lgorc3RhdGljIFdLSFRUUENvb2tpZUFjY2VwdFBv
bGljeSB1c2VyUG9saWN5Oworc3RhdGljIFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSB0ZXN0UG9s
aWN5Oworc3RhdGljIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gd2tDb250ZXh0OworCitzdGF0
aWMgdm9pZCBkaWRHZXRUZXN0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0hUVFBDb29raWVBY2Nl
cHRQb2xpY3kgcG9saWN5LCBXS0Vycm9yUmVmLCB2b2lkKiBjb250ZXh0KQoreworICAgIFRFU1Rf
QVNTRVJUKGNvbnRleHQgPT0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oMHgxMjM0NTc4KSk7Cisg
ICAgVEVTVF9BU1NFUlQocG9saWN5ID09IHRlc3RQb2xpY3kpOworICAgIFdLQ29va2llTWFuYWdl
clJlZiBjb29raWVNYW5hZ2VyID0gV0tDb250ZXh0R2V0Q29va2llTWFuYWdlcih3a0NvbnRleHQu
Z2V0KCkpOworICAgIFdLQ29va2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koY29v
a2llTWFuYWdlciwgdXNlclBvbGljeSk7CisKKyAgICB0ZXN0RG9uZSA9IHRydWU7Cit9CisKK3N0
YXRpYyB2b2lkIGRpZEdldFVzZXJIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLSFRUUENvb2tpZUFj
Y2VwdFBvbGljeSBwb2xpY3ksIFdLRXJyb3JSZWYsIHZvaWQqIGNvbnRleHQpCit7CisgICAgVEVT
VF9BU1NFUlQoY29udGV4dCA9PSByZWludGVycHJldF9jYXN0PHZvaWQqPigweDEyMzQ1NzgpKTsK
KworICAgIHVzZXJQb2xpY3kgPSBwb2xpY3k7CisKKyAgICAvLyBNYWtlIHN1cmUgdG8gY2hvb3Nl
IGEgcG9saWN5IGRpZmZlcmVudCBmcm9tIHRoZSBwb2xpY3kgdGhlIHVzZXIgY3VycmVudGx5IGhh
cyBzZXQuCisgICAgdGVzdFBvbGljeSA9ICh1c2VyUG9saWN5ICsgMSkgJSAzOworICAgIFdLQ29v
a2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyID0gV0tDb250ZXh0R2V0Q29va2llTWFuYWdlcih3
a0NvbnRleHQuZ2V0KCkpOworICAgIFdLQ29va2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQ
b2xpY3koY29va2llTWFuYWdlciwgdGVzdFBvbGljeSk7CisgICAgV0tDb29raWVNYW5hZ2VyR2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeShjb29raWVNYW5hZ2VyLCByZWludGVycHJldF9jYXN0PHZv
aWQqPigweDEyMzQ1NzgpLCBkaWRHZXRUZXN0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7Cit9CisK
K3N0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYs
IFdLVHlwZVJlZiwgY29uc3Qgdm9pZCopCit7CisgICAgV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tp
ZU1hbmFnZXIgPSBXS0NvbnRleHRHZXRDb29raWVNYW5hZ2VyKHdrQ29udGV4dC5nZXQoKSk7Cisg
ICAgV0tDb29raWVNYW5hZ2VyR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShjb29raWVNYW5hZ2Vy
LCByZWludGVycHJldF9jYXN0PHZvaWQqPigweDEyMzQ1NzgpLCBkaWRHZXRVc2VySFRUUENvb2tp
ZUFjY2VwdFBvbGljeSk7Cit9CisKK1RFU1QoV2ViS2l0MiwgQ29va2llTWFuYWdlcikKK3sKKyAg
ICB3a0NvbnRleHQuYWRvcHQoV0tDb250ZXh0Q3JlYXRlKCkpOworICAgIFBsYXRmb3JtV2ViVmll
dyB3ZWJWaWV3KHdrQ29udGV4dC5nZXQoKSk7CisKKyAgICBXS1BhZ2VMb2FkZXJDbGllbnQgbG9h
ZGVyQ2xpZW50OworICAgIG1lbXNldCgmbG9hZGVyQ2xpZW50LCAwLCBzaXplb2YobG9hZGVyQ2xp
ZW50KSk7CisKKyAgICBsb2FkZXJDbGllbnQudmVyc2lvbiA9IDA7CisgICAgbG9hZGVyQ2xpZW50
LmRpZEZpbmlzaExvYWRGb3JGcmFtZSA9IGRpZEZpbmlzaExvYWRGb3JGcmFtZTsKKyAgICBXS1Bh
Z2VTZXRQYWdlTG9hZGVyQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmbG9hZGVyQ2xpZW50KTsKKwor
ICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIFV0aWw6OmFkb3B0V0soV0tVUkxDcmVh
dGVXaXRoVVRGOENTdHJpbmcoImFib3V0OmJsYW5rIikpLmdldCgpKTsKKworICAgIFV0aWw6OnJ1
bigmdGVzdERvbmUpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL3dpbi9UZXN0V2ViS2l0QVBJLnZjcHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9UZXN0V2ViS2l0QVBJL3dpbi9UZXN0V2ViS2l0QVBJLnZjcHJvagkocmV2aXNpb24g
ODE4NjgpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL3dpbi9UZXN0V2ViS2l0QVBJLnZjcHJvagko
d29ya2luZyBjb3B5KQpAQCAtNDIwLDYgKzQyMCwxMCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgog
CQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVGVzdHNcV2ViS2l0MlxDb29raWVNYW5h
Z2VyLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXFRlc3RzXFdlYktpdDJcRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoLmNw
cCIKIAkJCQkJPgogCQkJCTwvRmlsZT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86947</attachid>
            <date>2011-03-25 08:37:06 -0700</date>
            <delta_ts>2011-03-25 10:30:09 -0700</delta_ts>
            <desc>Patch (Part 1) - Getting and setting the policy in WebKit2 (Take 2)</desc>
            <filename>moveGettingTheHTTPAcceptCookiePolicyToWebProcessOpensourceTake6.patch</filename>
            <type>text/plain</type>
            <size>57764</size>
            <attacher name="Jessie Berlin">jberlin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxOTI2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDMtMjQgIEplc3NpZSBC
ZXJsaW4gIDxqYmVybGluQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWJLaXQyOiBOZWVkIHRvIGJlIGFibGUgdG8gc2V0IGFuZCBn
ZXQgdGhlIENvb2tpZSBTdG9yYWdlIFBvbGljeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTUwNzgwCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoK
KyAgICAgICAgRXhwb3NlIHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3lPbkFsbENvb2tpZVN0b3Jh
Z2VzLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICBBZGQgQ29va2llU3RvcmFnZU1hYy5oLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9jZi9Db29raWVTdG9yYWdlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeU9uQWxsQ29va2llU3RvcmFnZXMpOgorICAgICAgICBTZXQgdGhlIHBv
bGljeSBvbiB0aGUgZGVmYXVsdCBIVFRQIGNvb2tpZSBzdG9yYWdlIGFuZCBvbiBhbnkgUHJpdmF0
ZSBCcm93c2luZyBjb29raWUKKyAgICAgICAgc3RvcmFnZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2NmL0Nvb2tpZVN0b3JhZ2VDRk5ldC5oOgorCisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9tYWMvQ29va2llU3RvcmFnZU1hYy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL21hYy9Db29raWVTdG9yYWdlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6c2V0SFRU
UENvb2tpZUFjY2VwdFBvbGljeU9uQWxsQ29va2llU3RvcmFnZXMpOgorICAgICAgICBTZXQgdGhl
IHBvbGljeSBvbiB0aGUgc2hhcmVkIEhUVFAgY29va2llIHN0b3JhZ2UsIGFuZCBhZGQgYSBGSVhN
RSB0byBzZXQgaXQgb24gYW55IFByaXZhdGUKKyAgICAgICAgQnJvd3NpbmcgY29va2llIHN0b3Jh
Z2UuCisKIDIwMTEtMDMtMjQgIFJpayBDYWJhbmllciAgPGNhYmFuaWVyQGFkb2JlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBIeWF0dC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CShyZXZpc2lvbiA4MTg2OCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3Jr
aW5nIGNvcHkpCkBAIC02MzYsNiArNjM2LDcgQEAgX19aTjdXZWJDb3JlM21hY0VSS05TXzEwQ3Jl
ZGVudGlhbEUKIF9fWk43V2ViQ29yZTNtYWNFUktOU18yM0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
RQogX19aTjdXZWJDb3JlNDJjb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxp
bmdFdgogX19aTjdXZWJDb3JlNDJjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVU
eXBpbmdFdgorX19aTjdXZWJDb3JlNDRzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5T25BbGxDb29r
aWVTdG9yYWdlc0VqCiBfX1pON1dlYkNvcmU0NmNvbnRleHRNZW51SXRlbVRhZ0NvcnJlY3RTcGVs
bGluZ0F1dG9tYXRpY2FsbHlFdgogX19aTjdXZWJDb3JlNEZvbnQxMXNldENvZGVQYXRoRU5TMF84
Q29kZVBhdGhFCiBfX1pON1dlYkNvcmU0Rm9udDE4c2hvdWxkVXNlU21vb3RoaW5nRXYKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDgxODY4KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01NzIyLDYgKzU3MjIsNyBAQAogCQlGNUND
NDJEQzEyRjgwMUNBMDBENUY3RTMgLyogTG9jYWxpemVkTnVtYmVyTWFjLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDQzQyREIxMkY4MDFDQTAwRDVG
N0UzIC8qIExvY2FsaXplZE51bWJlck1hYy5tbSAqLzsgfTsKIAkJRjVEM0E1N0MxMDZCODNCMzAw
NTQ1Mjk3IC8qIERhdGVDb21wb25lbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1RDNBNTdBMTA2QjgzQjMwMDU0NTI5NyAvKiBEYXRlQ29tcG9u
ZW50cy5jcHAgKi87IH07CiAJCUY1RDNBNTdEMTA2QjgzQjMwMDU0NTI5NyAvKiBEYXRlQ29tcG9u
ZW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVE
M0E1N0IxMDZCODNCMzAwNTQ1Mjk3IC8qIERhdGVDb21wb25lbnRzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRjYzODk1NDkxMzNCRTFCNDAwODk0
MUQ1IC8qIENvb2tpZVN0b3JhZ2VNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY2Mzg5NTQ4MTMzQkUxQjQwMDg5NDFENSAvKiBDb29raWVTdG9yYWdl
TWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RjdBMDM0QzQxMjZCRjZCRTAwN0RDMTlFIC8qIEZvbnRPcmllbnRhdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjdBMDM0QzMxMjZCRjZCRTAwN0RD
MTlFIC8qIEZvbnRPcmllbnRhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUY5MTZDNDhEMERCNTEwRjgwMDc2Q0Q4MyAvKiBKU1hNTEh0dHBS
ZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGOTE2QzQ4QjBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnQuY3BwICovOyB9OwogCQlGOTE2QzQ4RTBEQjUxMEY4MDA3NkNEODMgLyog
SlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY5MTZDNDhDMERCNTEwRjgwMDc2Q0Q4MyAvKiBKU1hNTEh0
dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oICovOyB9OwpAQCAtMTIyMDksNiArMTIyMTAsNyBAQAog
CQlGNUNDNDJEQjEyRjgwMUNBMDBENUY3RTMgLyogTG9jYWxpemVkTnVtYmVyTWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxpemVkTnVtYmVyTWFjLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUQzQTU3QTEwNkI4M0IzMDA1NDUyOTcg
LyogRGF0ZUNvbXBvbmVudHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRGF0ZUNvbXBvbmVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUQz
QTU3QjEwNkI4M0IzMDA1NDUyOTcgLyogRGF0ZUNvbXBvbmVudHMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRGF0ZUNvbXBvbmVudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRjYzODk1NDgxMzNCRTFCNDAwODk0MUQ1IC8qIENvb2tpZVN0b3JhZ2VNYWMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29va2llU3RvcmFnZU1hYy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGN0EwMzRDMzEyNkJGNkJFMDA3REMxOUUgLyogRm9u
dE9yaWVudGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRPcmll
bnRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGODIxNjI5OTAyOUY0RkI1
MDEwMDAxMzEgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IHBhdGggPSBK
YXZhU2NyaXB0Q29yZS5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CiAJCUY5MTZDNDhCMERCNTEwRjgwMDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNYTUxI
dHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTQwMDcsNiArMTQwMDksNyBAQAogCQk2NTZCODRFNzBBRUExREFFMDBBMDk1QjQgLyogbWFj
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlGNjM4OTU0
ODEzM0JFMUI0MDA4OTQxRDUgLyogQ29va2llU3RvcmFnZU1hYy5oICovLAogCQkJCTUxNEM3NjQy
MENFOTIzNEUwMDdFRjNDRCAvKiBBdXRoZW50aWNhdGlvbk1hYy5oICovLAogCQkJCTUxNEM3NjQz
MENFOTIzNEUwMDdFRjNDRCAvKiBBdXRoZW50aWNhdGlvbk1hYy5tbSAqLywKIAkJCQlFMTNGMDFG
MDEyNzBFMTkwMDBERkJBNzEgLyogQ29va2llU3RvcmFnZU1hYy5tbSAqLywKQEAgLTIyNzAyLDYg
KzIyNzA1LDcgQEAKIAkJCQlCQzc3MkUxMzEzMzE2MjBDMDAxRUM5Q0UgLyogQ1NTTGluZUJveENv
bnRhaW5WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEYxNDQyMjkxMzM5RkQ2MjAwRTBENkY4
IC8qIERPTU5vZGVIaWdobGlnaHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTlCMEVFQTcxMzJB
NkYyQTAwNDMzMUM3IC8qIEphdmFUeXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNjM4OTU0OTEz
M0JFMUI0MDA4OTQxRDUgLyogQ29va2llU3RvcmFnZU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tpZVN0b3JhZ2VDRk5ldC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Db29r
aWVTdG9yYWdlQ0ZOZXQuY3BwCShyZXZpc2lvbiA4MTg2OCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvQ29va2llU3RvcmFnZUNGTmV0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtODEsNiArODEsMTQgQEAgdm9pZCBzZXRDb29raWVTdG9yYWdlUHJpdmF0ZUJyb3dzaW5nRW5h
YgogICAgICAgICBwcml2YXRlQnJvd3NpbmdDb29raWVTdG9yYWdlKCkuYWRvcHRDRih3a0NyZWF0
ZUluTWVtb3J5SFRUUENvb2tpZVN0b3JhZ2UoKSk7CiB9CiAKK3ZvaWQgc2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeU9uQWxsQ29va2llU3RvcmFnZXMoQ0ZIVFRQQ29va2llU3RvcmFnZUFjY2VwdFBv
bGljeSBwb2xpY3kpCit7CisgICAgaWYgKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgcHJpdmF0ZUNv
b2tpZVN0b3JhZ2UgPSBwcml2YXRlQnJvd3NpbmdDb29raWVTdG9yYWdlKCkuZ2V0KCkpCisgICAg
ICAgIENGSFRUUENvb2tpZVN0b3JhZ2VTZXRDb29raWVBY2NlcHRQb2xpY3kocHJpdmF0ZUNvb2tp
ZVN0b3JhZ2UsIHBvbGljeSk7CisKKyAgICBDRkhUVFBDb29raWVTdG9yYWdlU2V0Q29va2llQWNj
ZXB0UG9saWN5KHdrR2V0RGVmYXVsdEhUVFBDb29raWVTdG9yYWdlKCksIHBvbGljeSk7Cit9CisK
IHN0YXRpYyB2b2lkIG5vdGlmeUNvb2tpZXNDaGFuZ2VkT25NYWluVGhyZWFkKHZvaWQqIGNvbnRl
eHQpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvQ29va2llU3RvcmFnZUNGTmV0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Db29raWVTdG9yYWdlQ0ZOZXQuaAko
cmV2aXNpb24gODE4NjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Nv
b2tpZVN0b3JhZ2VDRk5ldC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxMiArMjgsMTQgQEAKIAog
I2lmIFVTRShDRk5FVFdPUkspCiAKLXR5cGVkZWYgc3RydWN0IE9wYXF1ZUNGSFRUUENvb2tpZVN0
b3JhZ2UqICBDRkhUVFBDb29raWVTdG9yYWdlUmVmOworI2luY2x1ZGUgPENGTmV0d29yay9DRkhU
VFBDb29raWVzUHJpdi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBDRkhUVFBDb29r
aWVTdG9yYWdlUmVmIGN1cnJlbnRDb29raWVTdG9yYWdlKCk7CiAKKyAgICB2b2lkIHNldEhUVFBD
b29raWVBY2NlcHRQb2xpY3lPbkFsbENvb2tpZVN0b3JhZ2VzKENGSFRUUENvb2tpZVN0b3JhZ2VB
Y2NlcHRQb2xpY3kpOworCiAgICAgLy8gTmVlZGVkIGZvciBXZWJLaXQxIEFQSSBvbmx5LgogICAg
IHZvaWQgc2V0Q3VycmVudENvb2tpZVN0b3JhZ2UoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBjb29r
aWVTdG9yYWdlKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
Q29va2llU3RvcmFnZU1hYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL0Nvb2tpZVN0b3JhZ2VNYWMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZVN0b3JhZ2VNYWMuaAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29va2llU3RvcmFnZU1hY19o
CisjZGVmaW5lIENvb2tpZVN0b3JhZ2VNYWNfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3Zv
aWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeU9uQWxsQ29va2llU3RvcmFnZXModW5zaWduZWQp
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDb29raWVTdG9yYWdlTWFj
X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZVN0b3Jh
Z2VNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvQ29va2llU3RvcmFnZU1hYy5tbQkocmV2aXNpb24gODE4NjgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVTdG9yYWdlTWFjLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0yNSw2ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDb29r
aWVTdG9yYWdlLmgiCisjaW5jbHVkZSAiQ29va2llU3RvcmFnZU1hYy5oIgogCiAjaW1wb3J0ICJS
ZXNvdXJjZUhhbmRsZS5oIgogI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgpAQCAt
MTA1LDYgKzEwNiwxNSBAQCB2b2lkIHNldENvb2tpZVN0b3JhZ2VQcml2YXRlQnJvd3NpbmdFbmFi
CiAgICAgd2tTZXRDb29raWVTdG9yYWdlUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChlbmFibGVkKTsK
IH0KIAordm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5T25BbGxDb29raWVTdG9yYWdlcyh1
bnNpZ25lZCBwb2xpY3kpCit7CisjaWYgVVNFKENGVVJMU1RPUkFHRVNFU1NJT05TKQorICAgIC8v
IEZJWE1FOiBBbHNvIHVwZGF0ZSB0aGUgUHJpdmF0ZSBCcm93c2luZyBTdG9yYWdlIFNlc3Npb24n
cyBjb29raWUgc3RvcmFnZS4KKyNlbmRpZgorCisgICAgW1tOU0hUVFBDb29raWVTdG9yYWdlIHNo
YXJlZEhUVFBDb29raWVTdG9yYWdlXSBzZXRDb29raWVBY2NlcHRQb2xpY3k6cG9saWN5XTsKK30K
Kwogc3RhdGljIENvb2tpZVN0b3JhZ2VPYmpDQWRhcHRlciAqY29va2llU3RvcmFnZUFkYXB0ZXI7
CiAKIHZvaWQgc3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKCkKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDgxOTI2KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsNjggQEAKKzIwMTEtMDMtMjQgIEplc3NpZSBCZXJsaW4gIDxqYmVybGluQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXZWJLaXQyOiBOZWVkIHRvIGJlIGFibGUgdG8gc2V0IGFuZCBnZXQgdGhlIENvb2tpZSBTdG9y
YWdlIFBvbGljeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTUwNzgwCisKKyAgICAgICAgKiBTaGFyZWQvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oOiBB
ZGRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKyAgICAgICAg
KFdlYktpdDo6dG9IVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6dG9B
UEkpOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFuYWdlci5jcHA6Cisg
ICAgICAgIChXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAg
ICAgQ2FsbCB0aHJvdWdoIHRvIFdlYkNvb2tpZU1hbmFnZXJQcm94eS4KKyAgICAgICAgKFdLQ29v
a2llTWFuYWdlckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICBEaXR0by4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmg6CisKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29va2llTWFuYWdlclByb3h5OjppbnZhbGlkYXRlKToKKyAgICAgICAgSW52YWxpZGF0ZSB0aGUg
Z2V0IGh0dHAgY29va2llIGFjY2VwdCBwb2xpY3kgY2FsbGJhY2tzLgorICAgICAgICAoV2ViS2l0
OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAg
ICAgICBTZW5kIGEgbWVzc2FnZSB0byB0aGUgV2ViIFByb2Nlc3Mgd2l0aCB0aGUgbmV3IHZhbHVl
LgorICAgICAgICBPbiBNYWMsIGFsc28gc2V0IHRoZSBwb2xpY3kgaW4gdGhlIFVJIFByb2Nlc3Mg
YmVjYXVzZSB0aGUgc2FuZGJveGVkIFdlYiBQcm9jZXNzIGNhbm5vdAorICAgICAgICBwZXJzaXN0
IHRoZSBwb2xpY3kuCisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIEtlZXAgdHJhY2sgb2YgdGhlIGNhbGxi
YWNrIGFuZCBzZW5kIGEgbWVzc2FnZSB0byB0aGUgV2ViIFByb2Nlc3MuCisgICAgICAgIChXZWJL
aXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGlkR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6
CisgICAgICAgIEludm9rZSB0aGUgY2FsbGJhY2suCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNv
b2tpZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW46CisKKyAgICAgICAgKiBXZWJLaXQyLnByaToKKyAgICAgICAgKiBX
ZWJLaXQyLnBybzoKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogd2luL1dlYktpdDIudmNwcm9qOgorICAgICAgICAqIHdpbi9XZWJLaXQyQ29t
bW9uLnZzcHJvcHM6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6OnNldEhUVFBDb29r
aWVBY2NlcHRQb2xpY3kpOgorICAgICAgICBDYWxsIHBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeS4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6Z2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSk6CisgICAgICAgIFNlbmQgdGhlIHJlc3VsdCBvZiBwbGF0Zm9ybUdldEhU
VFBDb29raWVBY2NlcHRQb2xpY3kgdG8gdGhlIFVJIFByb2Nlc3MuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Nv
b2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbjoKKworICAgICAgICAqIFdlYlByb2Nl
c3MvQ29va2llcy9jZjogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9Db29raWVzL2NmL1dl
YkNvb2tpZU1hbmFnZXJDRk5ldC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJDb29r
aWVNYW5hZ2VyOjpwbGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kpOgorICAgICAgICAqIFdlYlByb2Nlc3MvQ29va2llcy9ndGs6IEFkZGVkLgorICAgICAgICAq
IFdlYlByb2Nlc3MvQ29va2llcy9ndGsvV2ViQ29va2llTWFuYWdlckd0ay5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpwbGF0Zm9ybVNldEhUVFBDb29raWVB
Y2NlcHRQb2xpY3kpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpwbGF0Zm9y
bUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICAqIFdlYlByb2Nlc3MvQ29va2ll
cy9tYWM6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvQ29va2llcy9tYWMvV2ViQ29va2ll
TWFuYWdlck1hYy5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6
OnBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9Db29raWVzL3F0OiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L0Nvb2tpZXMvcXQvV2ViQ29va2llTWFuYWdlclF0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtR2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSk6CisKIDIwMTEtMDMtMjQgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUB3
ZWJraXQub3JnPgogCiAgICAgICAgIEJ1aWxkIGNvcnJlY3Rpb24uCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBy
aQkocmV2aXNpb24gODE4NjgpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnByaQkod29ya2lu
ZyBjb3B5KQpAQCAtNDEsNiArNDEsNyBAQCBXRUJLSVQyX0lOQ0xVREVQQVRIID0gXAogICAgICQk
U09VUkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZSBcCiAgICAgJCRT
T1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbiBcCiAgICAgJCRTT1VS
Q0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzIFwKKyAgICAkJFNPVVJDRV9ESVIvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvcXQgXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1dl
YlByb2Nlc3MvRG93bmxvYWRzIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNz
L0Rvd25sb2Fkcy9xdCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxs
U2NyZWVuIFwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCShyZXZpc2lvbiA4MTg2OCkKKysrIFNvdXJjZS9X
ZWJLaXQyL1dlYktpdDIucHJvCSh3b3JraW5nIGNvcHkpCkBAIC00MzEsNiArNDMxLDcgQEAgU09V
UkNFUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50
aWNhdGlvbk1hbmFnZXIuY3BwIFwKICAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFu
YWdlci5jcHAgXAorICAgIFdlYlByb2Nlc3MvQ29va2llcy9xdC9XZWJDb29raWVNYW5hZ2VyUXQu
Y3BwIFwKICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAgXAogICAgIFdlYlBy
b2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvRG93
bmxvYWRzL3F0L0Rvd25sb2FkUXQuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9I
VFRQQ29va2llQWNjZXB0UG9saWN5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hh
cmVkL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9IVFRQQ29va2llQWNjZXB0UG9saWN5LmgJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIEhUVFBDb29raWVBY2NlcHRQb2xpY3lfaAorI2RlZmluZSBIVFRQQ29va2llQWNjZXB0
UG9saWN5X2gKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0geworICAgIEhUVFBDb29raWVB
Y2NlcHRQb2xpY3lBbHdheXMgPSAwLAorICAgIEhUVFBDb29raWVBY2NlcHRQb2xpY3lOZXZlciA9
IDEsCisgICAgSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWlu
ID0gMiwKK307Cit0eXBlZGVmIHVuc2lnbmVkIEhUVFBDb29raWVBY2NlcHRQb2xpY3k7CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gSFRUUENvb2tpZUFjY2VwdFBvbGljeV9o
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdl
clByb3h5LmNwcAkocmV2aXNpb24gODE4NjgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29va2llTWFuYWdlclByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsMTAg
QEAKICNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViU2VjdXJpdHlPcmlnaW4u
aCIKIAorI2lmIFBMQVRGT1JNKE1BQykKKyNpbXBvcnQgPFdlYkNvcmUvQ29va2llU3RvcmFnZU1h
Yy5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBQYXNzUmVmUHRyPFdlYkNvb2tp
ZU1hbmFnZXJQcm94eT4gV2ViQ29va2llTWFuYWdlclByb3h5OjpjcmVhdGUoV2ViQ29udGV4dCog
Y29udGV4dCkKQEAgLTUwLDYgKzU0LDcgQEAgV2ViQ29va2llTWFuYWdlclByb3h5Ojp+V2ViQ29v
a2llTWFuYWdlcgogdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmludmFsaWRhdGUoKQogewog
ICAgIGludmFsaWRhdGVDYWxsYmFja01hcChtX2FycmF5Q2FsbGJhY2tzKTsKKyAgICBpbnZhbGlk
YXRlQ2FsbGJhY2tNYXAobV9odHRwQ29va2llQWNjZXB0UG9saWN5Q2FsbGJhY2tzKTsKIH0KIAog
dm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmluaXRpYWxpemVDbGllbnQoY29uc3QgV0tDb29r
aWVNYW5hZ2VyQ2xpZW50KiBjbGllbnQpCkBAIC0xMzEsNCArMTM2LDQ1IEBAIHZvaWQgV2ViQ29v
a2llTWFuYWdlclByb3h5Ojpjb29raWVzRGlkQ2gKICAgICBtX2NsaWVudC5jb29raWVzRGlkQ2hh
bmdlKHRoaXMpOwogfQogCit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK3sKKyAgICBBU1NF
UlQobV93ZWJDb250ZXh0KTsKKyAgICBpZiAoIW1fd2ViQ29udGV4dC0+aGFzVmFsaWRQcm9jZXNz
KCkpCisgICAgICAgIHJldHVybjsKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICAvLyBGSVhNRTog
VGhlIHNhbmRib3ggYXBwZWFycyB0byBwcmV2ZW50IHBlcnNpc3RpbmcgdGhlIG5ldyBwb2xpY3kg
dG8gZGlzaywgc28gd2UgbXVzdCBzZXQgdGhlCisgICAgLy8gcG9saWN5IGluIHRoZSBVSSBQcm9j
ZXNzIGFzIHdlbGwgYXMgaW4gdGhlIFdlYiBQcm9jZXNzICh0byBtYWtlIHN1cmUgaXQgZ2V0cyBz
ZXQgb24gYW55CisgICAgLy8gUHJpdmF0ZSBCcm93c2luZyBDb29raWUgU3RvcmFnZSkuCisgICAg
V2ViQ29yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeU9uQWxsQ29va2llU3RvcmFnZXMocG9s
aWN5KTsKKyNlbmRpZgorICAgIG1fd2ViQ29udGV4dC0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJDb29raWVNYW5hZ2VyOjpTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSksIDAp
OworfQorCit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeShQYXNzUmVmUHRyPEhUVFBDb29raWVBY2NlcHRQb2xpY3lDYWxsYmFjaz4gcHJwQ2FsbGJh
Y2spCit7CisgICAgQVNTRVJUKG1fd2ViQ29udGV4dCk7CisKKyAgICBSZWZQdHI8SFRUUENvb2tp
ZUFjY2VwdFBvbGljeUNhbGxiYWNrPiBjYWxsYmFjayA9IHBycENhbGxiYWNrOworICAgIGlmICgh
bV93ZWJDb250ZXh0LT5oYXNWYWxpZFByb2Nlc3MoKSkgeworICAgICAgICBjYWxsYmFjay0+aW52
YWxpZGF0ZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdWludDY0X3QgY2FsbGJh
Y2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7CisgICAgbV9odHRwQ29va2llQWNjZXB0UG9s
aWN5Q2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjay5yZWxlYXNlKCkpOworICAgIG1f
d2ViQ29udGV4dC0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpH
ZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KGNhbGxiYWNrSUQpLCAwKTsKK30KKwordm9pZCBXZWJD
b29raWVNYW5hZ2VyUHJveHk6OmRpZEdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kodWludDMyX3Qg
cG9saWN5LCB1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIFJlZlB0cjxIVFRQQ29va2llQWNj
ZXB0UG9saWN5Q2FsbGJhY2s+IGNhbGxiYWNrID0gbV9odHRwQ29va2llQWNjZXB0UG9saWN5Q2Fs
bGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7CisgICAgaWYgKCFjYWxsYmFjaykgeworICAgICAgICAv
LyBGSVhNRTogTG9nIGVycm9yIG9yIGFzc2VydC4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUocG9saWN5KTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29va2llTWFuYWdlclByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCShyZXZpc2lvbiA4MTg2OCkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaAkod29ya2luZyBjb3B5
KQpAQCAtNDUsNiArNDUsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkNvbnRleHQ7
CiAKIHR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPFdLQXJyYXlSZWY+IEFycmF5Q2FsbGJhY2s7Cit0
eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxXS0hUVFBDb29raWVBY2NlcHRQb2xpY3ksIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3k+IEhUVFBDb29raWVBY2NlcHRQb2xpY3lDYWxsYmFjazsKIAogY2xhc3Mg
V2ViQ29va2llTWFuYWdlclByb3h5IDogcHVibGljIEFQSU9iamVjdCB7CiBwdWJsaWM6CkBAIC02
Miw2ICs2Myw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShj
b25zdCBTdHJpbmcmIGhvc3RuYW1lKTsKICAgICB2b2lkIGRlbGV0ZUFsbENvb2tpZXMoKTsKIAor
ICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5
KTsKKyAgICB2b2lkIGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUGFzc1JlZlB0cjxIVFRQQ29v
a2llQWNjZXB0UG9saWN5Q2FsbGJhY2s+KTsKKwogICAgIHZvaWQgc3RhcnRPYnNlcnZpbmdDb29r
aWVDaGFuZ2VzKCk7CiAgICAgdm9pZCBzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcygpOwogCkBA
IC03Myw2ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7
IHJldHVybiBBUElUeXBlOyB9CiAKICAgICB2b2lkIGRpZEdldEhvc3RuYW1lc1dpdGhDb29raWVz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBk
aWRHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHVpbnQzMl90IHBvbGljeSwgdWludDY0X3QgY2Fs
bGJhY2tJRCk7CiAKICAgICB2b2lkIGNvb2tpZXNEaWRDaGFuZ2UoKTsKICAgICAKQEAgLTgwLDYg
Kzg1LDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYkNvbnRleHQqIG1fd2ViQ29udGV4dDsKICAgICBI
YXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gPiBtX2FycmF5Q2FsbGJhY2tz
OworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxIVFRQQ29va2llQWNjZXB0UG9saWN5Q2Fs
bGJhY2s+ID4gbV9odHRwQ29va2llQWNjZXB0UG9saWN5Q2FsbGJhY2tzOwogCiAgICAgV2ViQ29v
a2llTWFuYWdlclByb3h5Q2xpZW50IG1fY2xpZW50OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbgkocmV2aXNpb24gODE4NjgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29v
a2llTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw3
IEBACiAKIG1lc3NhZ2VzIC0+IFdlYkNvb2tpZU1hbmFnZXJQcm94eSB7CiAgICAgRGlkR2V0SG9z
dG5hbWVzV2l0aENvb2tpZXMoVmVjdG9yPFdURjo6U3RyaW5nPiBob3N0bmFtZXMsIHVpbnQ2NF90
IGNhbGxiYWNrSUQpOworICAgIERpZEdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kodWludDMyX3Qg
cG9saWN5LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICAKICAgICBDb29raWVzRGlkQ2hhbmdl
KCkKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgJ
KHJldmlzaW9uIDgxODY4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJ
Q2FzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMyArMjksMTYgQEAKIAogI2luY2x1ZGUgIkNh
Y2hlTW9kZWwuaCIKICNpbmNsdWRlICJGb250U21vb3RoaW5nTGV2ZWwuaCIKKyNpbmNsdWRlICJI
VFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VDYWNoZXNUb0NsZWFy
LmgiCiAjaW5jbHVkZSAiV0tDb250ZXh0LmgiCisjaW5jbHVkZSAiV0tDb29raWVNYW5hZ2VyLmgi
CiAjaW5jbHVkZSAiV0tDcmVkZW50aWFsVHlwZXMuaCIKICNpbmNsdWRlICJXS1BhZ2UuaCIKICNp
bmNsdWRlICJXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldLUHJvdGVjdGlvblNw
YWNlVHlwZXMuaCIKICNpbmNsdWRlICJXS1NoYXJlZEFQSUNhc3QuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0Nvb2tpZUphci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ3JlZGVudGlhbC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJvdGVj
dGlvblNwYWNlLmg+CkBAIC0yNTEsNiArMjU0LDM2IEBAIGlubGluZSBSZXNvdXJjZUNhY2hlc1Rv
Q2xlYXIgdG9SZXNvdXJjZUMKICAgICByZXR1cm4gQWxsUmVzb3VyY2VDYWNoZXM7CiB9CiAKK2lu
bGluZSBIVFRQQ29va2llQWNjZXB0UG9saWN5IHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0hU
VFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQoreworICAgIHN3aXRjaCAocG9saWN5KSB7Cisg
ICAgY2FzZSBrV0tIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzOgorICAgICAgICByZXR1cm4g
SFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czsKKyAgICBjYXNlIGtXS0hUVFBDb29raWVBY2Nl
cHRQb2xpY3lOZXZlcjoKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3lOZXZl
cjsKKyAgICBjYXNlIGtXS0hUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVu
dERvbWFpbjoKKyAgICAgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1h
aW5Eb2N1bWVudERvbWFpbjsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czsKK30KKworaW5saW5lIFdLSFRU
UENvb2tpZUFjY2VwdFBvbGljeSB0b0FQSShIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkK
K3sKKyAgICBzd2l0Y2ggKHBvbGljeSkgeworICAgIGNhc2UgSFRUUENvb2tpZUFjY2VwdFBvbGlj
eUFsd2F5czoKKyAgICAgICAgcmV0dXJuIGtXS0hUVFBDb29raWVBY2NlcHRQb2xpY3lBbHdheXM7
CisgICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9saWN5TmV2ZXI6CisgICAgICAgIHJldHVybiBr
V0tIVFRQQ29va2llQWNjZXB0UG9saWN5TmV2ZXI7CisgICAgY2FzZSBIVFRQQ29va2llQWNjZXB0
UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW46CisgICAgICAgIHJldHVybiBrV0tIVFRQ
Q29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW47CisgICAgfQorCisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGtXS0hUVFBDb29raWVBY2NlcHRQ
b2xpY3lBbHdheXM7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjaWYgZGVmaW5lZChX
SU4zMikgfHwgZGVmaW5lZChfV0lOMzIpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tDb29raWVNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmNwcAkocmV2aXNpb24gODE4NjgpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTgsNiArNTgsMTYgQEAgdm9pZCBXS0Nvb2tpZU1hbmFnZXJEZWxldGVBbGxD
b29raWVzKFdLQwogICAgIHRvSW1wbChjb29raWVNYW5hZ2VyUmVmKS0+ZGVsZXRlQWxsQ29va2ll
cygpOwogfQogCit2b2lkIFdLQ29va2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3ko
V0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIFdLSFRUUENvb2tpZUFjY2VwdFBvbGlj
eSBwb2xpY3kpCit7CisgICAgdG9JbXBsKGNvb2tpZU1hbmFnZXIpLT5zZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5KHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeShwb2xpY3kpKTsKK30KKwordm9pZCBX
S0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLQ29va2llTWFuYWdlclJl
ZiBjb29raWVNYW5hZ2VyLCB2b2lkKiBjb250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29v
a2llQWNjZXB0UG9saWN5RnVuY3Rpb24gY2FsbGJhY2spCit7CisgICAgdG9JbXBsKGNvb2tpZU1h
bmFnZXIpLT5nZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3lD
YWxsYmFjazo6Y3JlYXRlKGNvbnRleHQsIGNhbGxiYWNrKSk7Cit9CisKIHZvaWQgV0tDb29raWVN
YW5hZ2VyU3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFdLQ29va2llTWFuYWdlclJlZiBjb29r
aWVNYW5hZ2VyKQogewogICAgIHRvSW1wbChjb29raWVNYW5hZ2VyKS0+c3RhcnRPYnNlcnZpbmdD
b29raWVDaGFuZ2VzKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tD
b29raWVNYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQ29va2llTWFuYWdlci5oCShyZXZpc2lvbiA4MTg2OCkKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NiArMzIsMTMgQEAKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKK2VudW0geworICAgIGtXS0hUVFBD
b29raWVBY2NlcHRQb2xpY3lBbHdheXMgPSAwLAorICAgIGtXS0hUVFBDb29raWVBY2NlcHRQb2xp
Y3lOZXZlciA9IDEsCisgICAga1dLSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRv
Y3VtZW50RG9tYWluID0gMgorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tIVFRQQ29va2llQWNjZXB0
UG9saWN5OworCiAvLyBDb29raWUgTWFuYWdlciBDbGllbnQKIHR5cGVkZWYgdm9pZCAoKldLQ29v
a2llTWFuYWdlckNvb2tpZXNEaWRDaGFuZ2VDYWxsYmFjaykoV0tDb29raWVNYW5hZ2VyUmVmIGNv
b2tpZU1hbmFnZXIsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogCkBAIC01Miw2ICs1OSwxMCBA
QCBXS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJHZXRIb3N0bmFtCiBXS19FWFBPUlQgdm9p
ZCBXS0Nvb2tpZU1hbmFnZXJEZWxldGVDb29raWVzRm9ySG9zdG5hbWUoV0tDb29raWVNYW5hZ2Vy
UmVmIGNvb2tpZU1hbmFnZXIsIFdLU3RyaW5nUmVmIGhvc3RuYW1lKTsKIFdLX0VYUE9SVCB2b2lk
IFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tp
ZU1hbmFnZXIpOwogCitXS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCBXS0hUVFBDb29r
aWVBY2NlcHRQb2xpY3kgcG9saWN5KTsKK3R5cGVkZWYgdm9pZCAoKldLQ29va2llTWFuYWdlckdl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3lGdW5jdGlvbikoV0tIVFRQQ29va2llQWNjZXB0UG9saWN5
LCBXS0Vycm9yUmVmLCB2b2lkKik7CitXS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJHZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5KFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCB2
b2lkKiBjb250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5RnVu
Y3Rpb24gY2FsbGJhY2spOworCiBXS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJTdGFydE9i
c2VydmluZ0Nvb2tpZUNoYW5nZXMoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIpOwog
V0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyU3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMo
V0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA4MTg2
OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtODAwLDkgKzgwMCwxMSBAQAogCQlGNjM0NDQ1NjEyQTg4NUM4MDAw
NjEyRDggLyogV2ViU2VjdXJpdHlPcmlnaW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY2MzQ0NDU1MTJBODg1QzgwMDA2MTJEOCAvKiBXZWJTZWN1cml0
eU9yaWdpbi5oICovOyB9OwogCQlGNjM0NDQ1QzEyQTg4NUU5MDAwNjEyRDggLyogV0tTZWN1cml0
eU9yaWdpbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNjM0NDQ1QTEyQTg4NUU5MDAwNjEyRDggLyogV0tTZWN1cml0eU9yaWdpbi5jcHAgKi87IH07
CiAJCUY2MzQ0NDVEMTJBODg1RTkwMDA2MTJEOCAvKiBXS1NlY3VyaXR5T3JpZ2luLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjM0NDQ1QjEyQTg4NUU5
MDAwNjEyRDggLyogV0tTZWN1cml0eU9yaWdpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJRjYzODk1NTAxMzNCRUYzODAwODk0MUQ1IC8qIEhUVFBD
b29raWVBY2NlcHRQb2xpY3kuaCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjYzODk1NEYxMzNCRUYzODAwODk0MUQ1IC8qIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3kuaCAqLzsgfTsKIAkJRjY3REQ3QkExMjVFNDBEOTAwN0JEQ0I4IC8qIFdLU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjY3REQ3QjkxMjVFNDBEOTAwN0JEQ0I4IC8qIFdLU2VyaWFsaXplZFNjcmlw
dFZhbHVlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUY2QTI1RkRDMTJBREM2Q0MwMERDNDBDQyAvKiBXZWJEYXRhYmFzZU1hbmFnZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjZBMjVG
REExMkFEQzZDQzAwREM0MENDIC8qIFdlYkRhdGFiYXNlTWFuYWdlci5jcHAgKi87IH07CiAJCUY2
QTI1RkREMTJBREM2Q0MwMERDNDBDQyAvKiBXZWJEYXRhYmFzZU1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2QTI1RkRCMTJBREM2Q0MwMERD
NDBDQyAvKiBXZWJEYXRhYmFzZU1hbmFnZXIuaCAqLzsgfTsKKwkJRjZBOTA4MTMxMzNDMjA1MTAw
ODJDM0Y0IC8qIFdlYkNvb2tpZU1hbmFnZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNkE5MDgxMTEzM0MxRjNEMDA4MkMzRjQgLyogV2ViQ29v
a2llTWFuYWdlck1hYy5tbSAqLzsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwog
CiAvKiBCZWdpbiBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLwpAQCAtODU5LDYgKzg2
MSw3IEBACiAJCQlmaWxlcyA9ICgKIAkJCQkxQTUwREI2NjExMEEzRDU3MDAwRDNGRTUgLyogV2Vi
UHJvY2Vzcy5hcHAgaW4gQ29weUZpbGVzICovLAogCQkJCUJDREUwQUJGMTMyNzI3MDgwMDEyNTlG
QiAvKiBQbHVnaW5Qcm9jZXNzLmFwcCBpbiBDb3B5RmlsZXMgKi8sCisJCQkJRjYzODk1NTAxMzNC
RUYzODAwODk0MUQ1IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCBpbiBDb3B5RmlsZXMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkBAIC0xNzA3LDEwICsxNzEwLDEyIEBACiAJCUY2MzQ0NDU1MTJBODg1QzgwMDA2MTJEOCAvKiBX
ZWJTZWN1cml0eU9yaWdpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJT
ZWN1cml0eU9yaWdpbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNjM0NDQ1QTEy
QTg4NUU5MDAwNjEyRDggLyogV0tTZWN1cml0eU9yaWdpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXS1NlY3VyaXR5T3JpZ2luLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjYzNDQ0NUIxMkE4ODVFOTAwMDYxMkQ4IC8qIFdLU2VjdXJpdHlPcmln
aW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTZWN1cml0eU9yaWdpbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNjM4OTU0RjEzM0JFRjM4MDA4OTQxRDUg
LyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBIVFRQQ29va2llQWNjZXB0UG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY2N0REN0I5MTI1RTQwRDkwMDdCRENCOCAvKiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZVBy
aXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTZXJpYWxpemVkU2Ny
aXB0VmFsdWVQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2QTBDMTNG
MTMyODFFNkUwMDcwNDMwRiAvKiBSZXNvdXJjZUNhY2hlc1RvQ2xlYXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VDYWNoZXNUb0NsZWFyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY2QTI1RkRBMTJBREM2Q0MwMERDNDBDQyAvKiBXZWJEYXRhYmFz
ZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRGF0
YWJhc2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjZBMjVGREIx
MkFEQzZDQzAwREM0MENDIC8qIFdlYkRhdGFiYXNlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJEYXRhYmFzZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRjZBOTA4MTExMzNDMUYzRDAwODJDM0Y0IC8qIFdlYkNvb2tpZU1hbmFnZXJN
YWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb29raWVN
YW5hZ2VyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVS
ZWZlcmVuY2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBz
ZWN0aW9uICovCkBAIC0yMDI0LDYgKzIwMjksNyBAQAogCQkJCUM1MTczODgwMTJERjhGNEYwMEVF
M0Y0NyAvKiBEcmFnQ29udHJvbGxlckFjdGlvbi5oICovLAogCQkJCTBGQjY1OTIyMTIwOEI0REIw
MDQ0ODE2QyAvKiBEcmF3aW5nQXJlYUluZm8uaCAqLywKIAkJCQk3NjJCNzQ4MTEyMEJCQTAxMDA4
MTkzMzkgLyogRm9udFNtb290aGluZ0xldmVsLmggKi8sCisJCQkJRjYzODk1NEYxMzNCRUYzODAw
ODk0MUQ1IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCAqLywKIAkJCQlCQ0NGNkIyMzEyQzkz
RTdBMDA4RjlDMzUgLyogSW1hZ2VPcHRpb25zLmggKi8sCiAJCQkJQkM2NDY5NkQxMURCRTYwMzAw
NjQ1NUIwIC8qIEltbXV0YWJsZUFycmF5LmNwcCAqLywKIAkJCQlCQzY0Njk2RTExREJFNjAzMDA2
NDU1QjAgLyogSW1tdXRhYmxlQXJyYXkuaCAqLywKQEAgLTIyMjgsNiArMjIzNCw3IEBACiAJCTMz
MDkzNDRCMTMxNUI5M0EwMDk3QTdCQyAvKiBDb29raWVzICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlGNjM4OTU1QTEzM0JGNTdEMDA4OTQxRDUgLyogbWFj
ICovLAogCQkJCTMzMDkzNDRDMTMxNUI5NEQwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyLmNw
cCAqLywKIAkJCQkzMzA5MzQ0RDEzMTVCOTREMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlci5o
ICovLAogCQkJCTMzMDkzNDRFMTMxNUI5NEQwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyLm1l
c3NhZ2VzLmluICovLApAQCAtMzE5Nyw2ICszMjA0LDE1IEBACiAJCQlwYXRoID0gRnVsbFNjcmVl
bi9tYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlGNjM4OTU1QTEzM0JG
NTdEMDA4OTQxRDUgLyogbWFjICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJl
biA9ICgKKwkJCQlGNkE5MDgxMTEzM0MxRjNEMDA4MkMzRjQgLyogV2ViQ29va2llTWFuYWdlck1h
Yy5tbSAqLywKKwkJCSk7CisJCQluYW1lID0gbWFjOworCQkJcGF0aCA9IENvb2tpZXMvbWFjOwor
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIC8qIEVuZCBQQlhHcm91cCBzZWN0aW9u
ICovCiAKIC8qIEJlZ2luIFBCWEhlYWRlcnNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KQEAgLTQyMTAs
NiArNDIyNiw3IEBACiAJCQkJMzNEM0EzQzgxMzM5NjE3OTAwNzA5QkU0IC8qIFdlYk1lZGlhQ2Fj
aGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzRDNBM0NB
MTMzOTYxNzkwMDcwOUJFNCAvKiBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNjBCRkUxMTMzODFERjkwMDkxODk5OSAvKiBM
b2dnaW5nLm1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY2QTkwODEzMTMzQzIwNTEwMDgyQzNG
NCAvKiBXZWJDb29raWVNYW5hZ2VyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIu
Y3BwCShyZXZpc2lvbiA4MTg2OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2ll
cy9XZWJDb29raWVNYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODksNCArODksMTQgQEAg
dm9pZCBXZWJDb29raWVNYW5hZ2VyOjpkaXNwYXRjaENvb2tpZXNEaQogICAgIFdlYlByb2Nlc3M6
OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlclBy
b3h5OjpDb29raWVzRGlkQ2hhbmdlKCksIDApOwogfQogCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6
OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kp
Cit7CisgICAgcGxhdGZvcm1TZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSk7Cit9CisK
K3ZvaWQgV2ViQ29va2llTWFuYWdlcjo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSh1aW50NjRf
dCBjYWxsYmFja0lEKQoreworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlclByb3h5OjpEaWRHZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5KHBsYXRmb3JtR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpLCBjYWxsYmFja0lE
KSwgMCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oCShyZXZpc2lv
biA4MTg2OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVN
YW5hZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgV2ViQ29v
a2llTWFuYWdlcl9oCiAjZGVmaW5lIFdlYkNvb2tpZU1hbmFnZXJfaAogCisjaW5jbHVkZSAiSFRU
UENvb2tpZUFjY2VwdFBvbGljeS5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC01Myw2ICs1NCwxMSBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKGNvbnN0IFN0cmluZyYpOwogICAg
IHZvaWQgZGVsZXRlQWxsQ29va2llcygpOwogCisgICAgdm9pZCBzZXRIVFRQQ29va2llQWNjZXB0
UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOworICAgIHZvaWQgcGxhdGZvcm1TZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOworICAgIHZvaWQgZ2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeSh1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICBIVFRQQ29v
a2llQWNjZXB0UG9saWN5IHBsYXRmb3JtR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpOworCiAg
ICAgdm9pZCBzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoKTsKICAgICB2b2lkIHN0b3BPYnNl
cnZpbmdDb29raWVDaGFuZ2VzKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Q29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmlu
CShyZXZpc2lvbiA4MTg2OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9X
ZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw5
IEBACiAgICAgdm9pZCBHZXRIb3N0bmFtZXNXaXRoQ29va2llcyh1aW50NjRfdCBjYWxsYmFja0lE
KQogICAgIHZvaWQgRGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFdURjo6U3RyaW5nIGhvc3RuYW1l
KQogICAgIHZvaWQgRGVsZXRlQWxsQ29va2llcygpCisKKyAgICB2b2lkIFNldEhUVFBDb29raWVB
Y2NlcHRQb2xpY3kodWludDMyX3QgcG9saWN5KQorICAgIHZvaWQgR2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeSh1aW50NjRfdCBjYWxsYmFja0lEKQogICAgIAogICAgIHZvaWQgU3RhcnRPYnNlcnZp
bmdDb29raWVDaGFuZ2VzKCkKICAgICB2b2lkIFN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKCkK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9jZi9XZWJDb29raWVNYW5h
Z2VyQ0ZOZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29v
a2llcy9jZi9XZWJDb29raWVNYW5hZ2VyQ0ZOZXQuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL2NmL1dlYkNvb2tpZU1hbmFnZXJDRk5ldC5jcHAJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlci5oIgorCisjaW5jbHVkZSA8V2ViQ29y
ZS9Db29raWVTdG9yYWdlQ0ZOZXQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2Vi
Q29va2llTWFuYWdlcjo6cGxhdGZvcm1TZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29r
aWVBY2NlcHRQb2xpY3kgcG9saWN5KQoreworICAgIFdlYkNvcmU6OnNldEhUVFBDb29raWVBY2Nl
cHRQb2xpY3lPbkFsbENvb2tpZVN0b3JhZ2VzKHBvbGljeSk7Cit9CisKK0hUVFBDb29raWVBY2Nl
cHRQb2xpY3kgV2ViQ29va2llTWFuYWdlcjo6cGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9s
aWN5KCkKK3sKKyAgICByZXR1cm4gQ0ZIVFRQQ29va2llU3RvcmFnZUdldENvb2tpZUFjY2VwdFBv
bGljeShXZWJDb3JlOjpjdXJyZW50Q29va2llU3RvcmFnZSgpKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvZ3RrL1dl
YkNvb2tpZU1hbmFnZXJHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvQ29va2llcy9ndGsvV2ViQ29va2llTWFuYWdlckd0ay5jcHAJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvZ3RrL1dlYkNvb2tpZU1hbmFnZXJH
dGsuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXIuaCIKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK3ZvaWQgV2ViQ29va2llTWFuYWdlcjo6cGxhdGZvcm1TZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kpCit7CisgICAgLy8gRklYTUU6IE5v
dCBpbXBsZW1lbnRlZC4KK30KKworSFRUUENvb2tpZUFjY2VwdFBvbGljeSBXZWJDb29raWVNYW5h
Z2VyOjpwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKQoreworICAgIC8vIEZJWE1F
OiBOb3QgaW1wbGVtZW50ZWQuCisgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xpY3lBbHdh
eXM7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9Db29raWVzL21hYy9XZWJDb29raWVNYW5hZ2VyTWFjLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9tYWMvV2ViQ29va2llTWFuYWdlck1h
Yy5tbQkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9t
YWMvV2ViQ29va2llTWFuYWdlck1hYy5tbQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV2ViQ29va2llTWFuYWdl
ci5oIgorI2ltcG9ydCA8V2ViQ29yZS9Db29raWVTdG9yYWdlTWFjLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtU2V0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK3sKKyAgICBXZWJDb3Jl
OjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5T25BbGxDb29raWVTdG9yYWdlcyhwb2xpY3kpOwor
fQorCitIVFRQQ29va2llQWNjZXB0UG9saWN5IFdlYkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtR2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpCit7CisgICAgcmV0dXJuIFtbTlNIVFRQQ29va2llU3Rv
cmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV0gY29va2llQWNjZXB0UG9saWN5XTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nv
b2tpZXMvcXQvV2ViQ29va2llTWFuYWdlclF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvcXQvV2ViQ29va2llTWFuYWdlclF0LmNwcAkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9xdC9XZWJDb29raWVN
YW5hZ2VyUXQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXIuaCIKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViQ29va2llTWFuYWdlcjo6cGxhdGZvcm1TZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kpCit7CisgICAgLy8gRklY
TUU6IE5vdCBpbXBsZW1lbnRlZC4KK30KKworSFRUUENvb2tpZUFjY2VwdFBvbGljeSBXZWJDb29r
aWVNYW5hZ2VyOjpwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKQoreworICAgIC8v
IEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQuCisgICAgcmV0dXJuIEhUVFBDb29raWVBY2NlcHRQb2xp
Y3lBbHdheXM7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktp
dDIvd2luL1dlYktpdDIudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL3dpbi9X
ZWJLaXQyLnZjcHJvagkocmV2aXNpb24gODE4NjgpCisrKyBTb3VyY2UvV2ViS2l0Mi93aW4vV2Vi
S2l0Mi52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTE1NDUsNiArMTU0NSwxNCBAQAogCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcQ29va2llc1xXZWJDb29raWVNYW5hZ2VyLm1lc3Nh
Z2VzLmluIgogCQkJCQk+CiAJCQkJPC9GaWxlPgorCQkJCTxGaWx0ZXIKKwkJCQkJTmFtZT0iY2Yi
CisJCQkJCT4KKwkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xD
b29raWVzXGNmXFdlYkNvb2tpZU1hbmFnZXJDRk5ldC5jcHAiCisJCQkJCQk+CisJCQkJCTwvRmls
ZT4KKwkJCQk8L0ZpbHRlcj4KIAkJCTwvRmlsdGVyPgogCQkJPEZpbHRlcgogCQkJCU5hbWU9Ildl
YkNvcmVTdXBwb3J0IgpJbmRleDogU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDb21tb24udnNw
cm9wcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3By
b3BzCShyZXZpc2lvbiA4MTg2OCkKKysrIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ29tbW9u
LnZzcHJvcHMJKHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBACiAJPgogCTxUb29sCiAJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZx
dW90OyQoUHJvamVjdERpcikmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLiZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFBsYXRmb3JtJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
UGxhdGZvcm1cY2cmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybVxDb3JlSVBD
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGx1Z2luUHJvY2VzcyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFNoYXJlZCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJl
ZFx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcY2YmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxTaGFyZWRcQVBJXGNcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJ
XGNcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXENvcmVJUENTdXBwb3J0
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXFBsdWdpbnMmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcUGx1Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFVJUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJv
Y2Vzc1xBUElcQyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcQ1x3
aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXGNwcCZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcd2luJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cVUlQcm9jZXNzXEF1dGhlbnRpY2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cVUlQcm9jZXNzXERvd25sb2FkcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFVJUHJvY2Vzc1xMYXVuY2hlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vz
c1xQbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXHdpbiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzXFdlYlBhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxX
ZWJQcm9jZXNzXFdlYlBhZ2Vcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJv
Y2Vzc1xJY29uRGF0YWJhc2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNz
XEluamVjdGVkQnVuZGxlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJ
bmplY3RlZEJ1bmRsZVxBUElcYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nl
c3NcSW5qZWN0ZWRCdW5kbGVcRE9NJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJv
Y2Vzc1xJbmplY3RlZEJ1bmRsZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQ
cm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBs
dWdpbnNcTmV0c2NhcGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXHdp
biZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQXBwbGljYXRpb25DYWNo
ZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQXV0aGVudGljYXRpb24m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXENvb2tpZXMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXERvd25sb2FkcyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRzXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cV2ViUHJvY2Vzc1xGdWxsU2NyZWVuJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cV2ViUHJvY2Vzc1xHZW9sb2NhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdl
YlByb2Nlc3NcS2V5VmFsdWVTdG9yYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2Vi
UHJvY2Vzc1xNZWRpYUNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
c1xSZXNvdXJjZUNhY2hlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXMmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9u
QnVpbGREaXIpXEluY2x1ZGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXElu
Y2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZSZx
dW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZx
dW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHB0aHJlYWRzJnF1b3Q7OyZxdW90OyQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90
OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUm
cXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcSmF2YVNjcmlwdENvcmUm
cXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHJpdmF0ZVxKYXZhU2Ny
aXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxXZWJD
b3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJ
bmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDsiCisJCUFkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcikmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3JtJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm1cY2cmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxQbGF0Zm9ybVxDb3JlSVBDJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGx1Z2luUHJv
Y2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZCZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFNoYXJlZFx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFy
ZWRcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGNcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxTaGFyZWRcQVBJXGNcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hh
cmVkXENvcmVJUENTdXBwb3J0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXFBs
dWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcUGx1Z2luc1xOZXRzY2Fw
ZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2VzcyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcQyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFVJUHJvY2Vzc1xBUElcQ1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nl
c3NcQVBJXGNwcCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcd2lu
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEF1dGhlbnRpY2F0aW9uJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXERvd25sb2FkcyZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xMYXVuY2hlciZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFVJUHJvY2Vzc1xQbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
VUlQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3MmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0JnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFx3aW4mcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYlBhZ2UmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYlBhZ2Vcd2luJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cV2ViUHJvY2Vzc1xJY29uRGF0YWJhc2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxBUElcYyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcRE9NJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVx3aW4mcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxXZWJQcm9jZXNzXFBsdWdpbnNcTmV0c2NhcGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxXZWJQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nl
c3NcQXBwbGljYXRpb25DYWNoZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nl
c3NcQXV0aGVudGljYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNz
XENvb2tpZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXENvb2tpZXNc
Y2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXERvd25sb2FkcyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRzXGNmJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xGdWxsU2NyZWVuJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xHZW9sb2NhdGlvbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFdlYlByb2Nlc3NcS2V5VmFsdWVTdG9yYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cV2ViUHJvY2Vzc1xNZWRpYUNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cV2ViUHJvY2Vzc1xSZXNvdXJjZUNhY2hlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXMmcXVvdDs7JnF1b3Q7JChD
b25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9u
QnVpbGREaXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rp
cilcSW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwcml2
YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHB0aHJlYWRzJnF1
b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXEphdmFTY3JpcHRDb3Jl
JnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2
YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcSmF2
YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHJp
dmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
SW5jbHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGli
cmFyaWVzRGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDsiCiAJCVBy
ZXByb2Nlc3NvckRlZmluaXRpb25zPSJfVVNSRExMO1dFQktJVF9FWFBPUlRTO0ZSQU1FV09SS19O
QU1FPVdlYktpdDtCVUlMRElOR19XRUJLSVQiCiAJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIgog
CQlQcmVjb21waWxlZEhlYWRlclRocm91Z2g9IldlYktpdDJQcmVmaXguaCIKSW5kZXg6IFRvb2xz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxOTI2
KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIw
MTEtMDMtMjQgIEplc3NpZSBCZXJsaW4gIDxqYmVybGluQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJLaXQyOiBOZWVkIHRvIGJl
IGFibGUgdG8gc2V0IGFuZCBnZXQgdGhlIENvb2tpZSBTdG9yYWdlIFBvbGljeS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwNzgwCisKKyAgICAgICAg
QWRkIGEgdGVzdCBmb3IgZ2V0dGluZyBhbmQgc2V0dGluZyB0aGUgSFRUUCBDb29raWUgQWNjZXB0
IFBvbGljeSBpbiBXZWJLaXQyLgorCisgICAgICAgIFRoZSB0ZXN0IGlzIG5hbWVkICJDb29raWVN
YW5hZ2VyIiBzbyB0aGF0IHdlIGNhbiBldmVudHVhbGx5IGV4ZXJjaXNlIG1vcmUgb2YgdGhlCisg
ICAgICAgIENvb2tpZU1hbmFnZXIgZnVuY3Rpb25hbGl0eSBpbiB0aGUgdGVzdC4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Db29raWVNYW5hZ2VyLmNwcDogQWRkZWQu
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkaWRHZXRUZXN0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eSk6CisgICAgICAgIEFzc2VydCB0aGF0IHRoZSBwb2xpY3kgcmV0dXJuZWQgaXMgZXF1YWwgdG8g
dGhlIHBvbGljeSBzZXQgaW4KKyAgICAgICAgZGlkR2V0VXNlckhUVFBDb29raWVBY2NlcHRQb2xp
Y3ksIGFuZCB0aGVuIHJlc3RvcmUgdGhlIHVzZXIncyBwb2xpY3kuCisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpkaWRHZXRVc2VySFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIFNldCB0
aGUgcG9saWN5IHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgdGhhbiB0aGUgdXNlcidzIHBvbGljeSBh
bmQgZ2V0IHRoZSBwb2xpY3kgYWdhaW4uCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkaWRGaW5p
c2hMb2FkRm9yRnJhbWUpOgorICAgICAgICBHZXQgdGhlIHVzZXIncyBwb2xpY3kgc28gdGhhdCBp
dCBjYW4gYmUgcmVzdG9yZWQgYXQgdGhlIGVuZCBvZiB0aGUgdGVzdC4KKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICBMb2FkIGFib3V0OmJsYW5rIHNvIHRoYXQgdGhlIFdl
YiBQcm9jZXNzIGdldHMgaW5zdGF0aWF0ZWQgKG5lZWRlZCB0byBnZXQgdGhlCisgICAgICAgIENv
b2tpZU1hbmFnZXIpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS93aW4vVGVzdFdlYktpdEFQ
SS52Y3Byb2o6CisgICAgICAgIEFkZCBDb29raWVNYW5hZ2VyLmNwcC4KKwogMjAxMS0wMy0yNCAg
QnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCBidWlsZCBjb3JyZWN0aW9uLgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9u
IDgxODY4KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDcgQEAKIAkJQzBCRDY2
OUQxMzFEM0NGNzAwRTE4RjJBIC8qIFJlc3BvbnNpdmVuZXNzVGltZXJEb2VzbnRGaXJlRWFybHku
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzBCRDY2
OUMxMzFEM0NGNzAwRTE4RjJBIC8qIFJlc3BvbnNpdmVuZXNzVGltZXJEb2VzbnRGaXJlRWFybHku
Y3BwICovOyB9OwogCQlDMEJENjY5RjEzMUQzQ0ZGMDBFMThGMkEgLyogUmVzcG9uc2l2ZW5lc3NU
aW1lckRvZXNudEZpcmVFYXJseV9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzBCRDY2OUUxMzFEM0NGRjAwRTE4RjJBIC8qIFJlc3BvbnNp
dmVuZXNzVGltZXJEb2VzbnRGaXJlRWFybHlfQnVuZGxlLmNwcCAqLzsgfTsKIAkJRjZDNTlFMzgx
MzJBQzVFMDAwMTc2QzA5IC8qIFNlbmRpbmdNZXNzYWdlc1RvVGhlV2ViUHJvY2Vzc0JlZm9yZUl0
SXNWYWxpZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNkM1OUUzNzEzMkFDNURGMDAxNzZDMDkgLyogU2VuZGluZ01lc3NhZ2VzVG9UaGVXZWJQcm9j
ZXNzQmVmb3JlSXRJc1ZhbGlkLmNwcCAqLzsgfTsKKwkJRjZGM0YyOTExMzM0MkZFQjAwQTZCRjE5
IC8qIENvb2tpZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjZGM0YyOTAxMzM0MkZFQjAwQTZCRjE5IC8qIENvb2tpZU1hbmFnZXIuY3Bw
ICovOyB9OwogLyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWENv
bnRhaW5lckl0ZW1Qcm94eSBzZWN0aW9uICovCkBAIC0xNjEsNiArMTYyLDcgQEAKIAkJQzBCRDY2
OUMxMzFEM0NGNzAwRTE4RjJBIC8qIFJlc3BvbnNpdmVuZXNzVGltZXJEb2VzbnRGaXJlRWFybHku
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVzcG9uc2l2ZW5lc3NU
aW1lckRvZXNudEZpcmVFYXJseS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMw
QkQ2NjlFMTMxRDNDRkYwMEUxOEYyQSAvKiBSZXNwb25zaXZlbmVzc1RpbWVyRG9lc250RmlyZUVh
cmx5X0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNw
b25zaXZlbmVzc1RpbWVyRG9lc250RmlyZUVhcmx5X0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY2QzU5RTM3MTMyQUM1REYwMDE3NkMwOSAvKiBTZW5kaW5nTWVzc2Fn
ZXNUb1RoZVdlYlByb2Nlc3NCZWZvcmVJdElzVmFsaWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU2VuZGluZ01lc3NhZ2VzVG9UaGVXZWJQcm9jZXNzQmVmb3JlSXRJ
c1ZhbGlkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjZGM0YyOTAxMzM0MkZF
QjAwQTZCRjE5IC8qIENvb2tpZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ29va2llTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWEZyYW1l
d29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KQEAgLTI2OCw2ICsyNzAsNyBAQAogCQkJCUJDMjQ2
RDhDMTMyRjExNUEwMEI1NkQ3QyAvKiBBYm91dEJsYW5rTG9hZC5jcHAgKi8sCiAJCQkJQkMyNDZE
OTcxMzJGMUZFMTAwQjU2RDdDIC8qIENhbkhhbmRsZVJlcXVlc3RfQnVuZGxlLmNwcCAqLywKIAkJ
CQlCQzI0NkQ5ODEzMkYxRkUxMDBCNTZEN0MgLyogQ2FuSGFuZGxlUmVxdWVzdC5jcHAgKi8sCisJ
CQkJRjZGM0YyOTAxMzM0MkZFQjAwQTZCRjE5IC8qIENvb2tpZU1hbmFnZXIuY3BwICovLAogCQkJ
CUJDQjY4MDNGMTI2RkJGRTEwMDY0MkE2MSAvKiBEb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0
Q3Jhc2guY3BwICovLAogCQkJCUJDQjY4MDQxMTI2RkJGRjEwMDY0MkE2MSAvKiBEb2N1bWVudFN0
YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2hfQnVuZGxlLmNwcCAqLywKIAkJCQkxQTVGRUZEQzEyNzBF
MkEzMDAwRTI5MjEgLyogRXZhbHVhdGVKYXZhU2NyaXB0LmNwcCAqLywKQEAgLTQ0NCw2ICs0NDcs
NyBAQAogCQkJCUY2QzU5RTM4MTMyQUM1RTAwMDE3NkMwOSAvKiBTZW5kaW5nTWVzc2FnZXNUb1Ro
ZVdlYlByb2Nlc3NCZWZvcmVJdElzVmFsaWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyNDZE
OEUxMzJGMTE1QTAwQjU2RDdDIC8qIEFib3V0QmxhbmtMb2FkLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUJDMjQ2RDlBMTMyRjFGRTEwMEI1NkQ3QyAvKiBDYW5IYW5kbGVSZXF1ZXN0LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUY2RjNGMjkxMTMzNDJGRUIwMEE2QkYxOSAvKiBDb29raWVNYW5hZ2Vy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL0Nvb2tpZU1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mi9Db29raWVNYW5hZ2VyLmNwcAkocmV2aXNpb24gMCkKKysrIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Db29raWVNYW5hZ2VyLmNwcAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJUZXN0LmgiCisKKyNpbmNs
dWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgor
I2luY2x1ZGUgPFdlYktpdDIvV0tDb29raWVNYW5hZ2VyLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9X
S1JldGFpblB0ci5oPgorI2luY2x1ZGUgPFdlYktpdDIvV2ViS2l0Mi5oPgorCituYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSSB7CisKK3N0YXRpYyBib29sIHRlc3REb25lOworLy8gTWFrZSBzdXJlIHRo
YXQgdGhlIHBvbGljeSBvbiB0aGUgbWFjaGluZSBydW5uaW5nIHRoZSB0ZXN0IGlzIG5vdCBjaGFu
Z2VkIGFmdGVyIHJ1bm5pbmcgdGhlIHRlc3QuCitzdGF0aWMgV0tIVFRQQ29va2llQWNjZXB0UG9s
aWN5IHVzZXJQb2xpY3k7CitzdGF0aWMgV0tIVFRQQ29va2llQWNjZXB0UG9saWN5IHRlc3RQb2xp
Y3k7CitzdGF0aWMgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiB3a0NvbnRleHQ7CisKK3N0YXRp
YyB2b2lkIGRpZEdldFRlc3RIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSBwb2xpY3ksIFdLRXJyb3JSZWYsIHZvaWQqIGNvbnRleHQpCit7CisgICAgVEVTVF9B
U1NFUlQoY29udGV4dCA9PSByZWludGVycHJldF9jYXN0PHZvaWQqPigweDEyMzQ1NzgpKTsKKyAg
ICBURVNUX0FTU0VSVChwb2xpY3kgPT0gdGVzdFBvbGljeSk7CisgICAgV0tDb29raWVNYW5hZ2Vy
UmVmIGNvb2tpZU1hbmFnZXIgPSBXS0NvbnRleHRHZXRDb29raWVNYW5hZ2VyKHdrQ29udGV4dC5n
ZXQoKSk7CisgICAgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShjb29r
aWVNYW5hZ2VyLCB1c2VyUG9saWN5KTsKKworICAgIHRlc3REb25lID0gdHJ1ZTsKK30KKworc3Rh
dGljIHZvaWQgZGlkR2V0VXNlckhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tIVFRQQ29va2llQWNj
ZXB0UG9saWN5IHBvbGljeSwgV0tFcnJvclJlZiwgdm9pZCogY29udGV4dCkKK3sKKyAgICBURVNU
X0FTU0VSVChjb250ZXh0ID09IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KDB4MTIzNDU3OCkpOwor
CisgICAgdXNlclBvbGljeSA9IHBvbGljeTsKKworICAgIC8vIE1ha2Ugc3VyZSB0byBjaG9vc2Ug
YSBwb2xpY3kgZGlmZmVyZW50IGZyb20gdGhlIHBvbGljeSB0aGUgdXNlciBjdXJyZW50bHkgaGFz
IHNldC4KKyAgICB0ZXN0UG9saWN5ID0gKHVzZXJQb2xpY3kgKyAxKSAlIDM7CisgICAgV0tDb29r
aWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIgPSBXS0NvbnRleHRHZXRDb29raWVNYW5hZ2VyKHdr
Q29udGV4dC5nZXQoKSk7CisgICAgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeShjb29raWVNYW5hZ2VyLCB0ZXN0UG9saWN5KTsKKyAgICBXS0Nvb2tpZU1hbmFnZXJHZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5KGNvb2tpZU1hbmFnZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9p
ZCo+KDB4MTIzNDU3OCksIGRpZEdldFRlc3RIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKK30KKwor
c3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwg
V0tUeXBlUmVmLCBjb25zdCB2b2lkKikKK3sKKyAgICBXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2ll
TWFuYWdlciA9IFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIod2tDb250ZXh0LmdldCgpKTsKKyAg
ICBXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KGNvb2tpZU1hbmFnZXIs
IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KDB4MTIzNDU3OCksIGRpZEdldFVzZXJIVFRQQ29va2ll
QWNjZXB0UG9saWN5KTsKK30KKworVEVTVChXZWJLaXQyLCBDb29raWVNYW5hZ2VyKQoreworICAg
IHdrQ29udGV4dC5hZG9wdChXS0NvbnRleHRDcmVhdGUoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3
IHdlYlZpZXcod2tDb250ZXh0LmdldCgpKTsKKworICAgIFdLUGFnZUxvYWRlckNsaWVudCBsb2Fk
ZXJDbGllbnQ7CisgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGll
bnQpKTsKKworICAgIGxvYWRlckNsaWVudC52ZXJzaW9uID0gMDsKKyAgICBsb2FkZXJDbGllbnQu
ZGlkRmluaXNoTG9hZEZvckZyYW1lID0gZGlkRmluaXNoTG9hZEZvckZyYW1lOworICAgIFdLUGFn
ZVNldFBhZ2VMb2FkZXJDbGllbnQod2ViVmlldy5wYWdlKCksICZsb2FkZXJDbGllbnQpOworCisg
ICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgVXRpbDo6YWRvcHRXSyhXS1VSTENyZWF0
ZVdpdGhVVEY4Q1N0cmluZygiYWJvdXQ6YmxhbmsiKSkuZ2V0KCkpOworCisgICAgVXRpbDo6cnVu
KCZ0ZXN0RG9uZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRv
b2xzL1Rlc3RXZWJLaXRBUEkvd2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qCShyZXZpc2lvbiA4
MTg2OCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC00MjAsNiArNDIwLDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJ
CQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxUZXN0c1xXZWJLaXQyXENvb2tpZU1hbmFn
ZXIuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0
aD0iLi5cVGVzdHNcV2ViS2l0MlxEb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2guY3Bw
IgogCQkJCQk+CiAJCQkJPC9GaWxlPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86955</attachid>
            <date>2011-03-25 10:30:09 -0700</date>
            <delta_ts>2011-03-25 12:33:11 -0700</delta_ts>
            <desc>Patch (Part 1) - Getting and setting the policy in WebKit2 (Take 3)</desc>
            <filename>moveGettingTheHTTPAcceptCookiePolicyToWebProcessOpensourceTake7.patch</filename>
            <type>text/plain</type>
            <size>52539</size>
            <attacher name="Jessie Berlin">jberlin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxOTY2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDMtMjUgIEplc3NpZSBC
ZXJsaW4gIDxqYmVybGluQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWJLaXQyOiBOZWVkIHRvIGJlIGFibGUgdG8gc2V0IGFuZCBn
ZXQgdGhlIENvb2tpZSBTdG9yYWdlIFBvbGljeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTUwNzgwCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L2NmL0Nvb2tpZVN0b3JhZ2VDRk5ldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcml2YXRlQ29v
a2llU3RvcmFnZSk6CisgICAgICAgIFJlbmFtZSBwcml2YXRlQnJvd3NpbmdDb29raWVTdG9yYWdl
IHRvIHByaXZhdGVDb29raWVTdG9yYWdlLgorICAgICAgICAoV2ViQ29yZTo6Y3VycmVudENvb2tp
ZVN0b3JhZ2UpOgorICAgICAgICBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OnNldEN1cnJlbnRD
b29raWVTdG9yYWdlKToKKyAgICAgICAgRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpzZXRDb29r
aWVTdG9yYWdlUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk6CisgICAgICAgIERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6ZGVmYXVsdENvb2tpZVN0b3JhZ2UpOgorICAgICAgICBSZXR1cm4gdGhlIGRl
ZmF1bHQgY29va2llIHN0b3JhZ2UuCisgICAgICAgIChXZWJDb3JlOjpwcml2YXRlQnJvd3NpbmdD
b29raWVTdG9yYWdlKToKKyAgICAgICAgUmV0dXJuIHByaXZhdGVDb29raWVTdG9yYWdlKCkuZ2V0
KCkKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tpZVN0b3JhZ2VDRk5ldC5oOgor
CiAyMDExLTAzLTI1ICBDaGFuZyBTaHUgIDxjc2h1QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9Db29raWVTdG9yYWdlQ0ZOZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQ29va2llU3RvcmFnZUNGTmV0LmNwcAkocmV2aXNpb24g
ODE5NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tpZVN0b3Jh
Z2VDRk5ldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDcgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1zdGF0aWMgUmV0YWluUHRyPENGSFRUUENvb2tpZVN0b3JhZ2VSZWY+JiBw
cml2YXRlQnJvd3NpbmdDb29raWVTdG9yYWdlKCkKK3N0YXRpYyBSZXRhaW5QdHI8Q0ZIVFRQQ29v
a2llU3RvcmFnZVJlZj4mIHByaXZhdGVDb29raWVTdG9yYWdlKCkKIHsKICAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFJldGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiwgY29va2llU3RvcmFn
ZSwgKCkpOwogICAgIHJldHVybiBjb29raWVTdG9yYWdlOwpAQCAtNTIsMTYgKzUyLDIxIEBAIENG
SFRUUENvb2tpZVN0b3JhZ2VSZWYgY3VycmVudENvb2tpZVN0b3IKIHsKICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOwogCi0gICAgaWYgKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgcHJpdmF0ZUNv
b2tpZVN0b3JhZ2UgPSBwcml2YXRlQnJvd3NpbmdDb29raWVTdG9yYWdlKCkuZ2V0KCkpCi0gICAg
ICAgIHJldHVybiBwcml2YXRlQ29va2llU3RvcmFnZTsKKyAgICBpZiAoQ0ZIVFRQQ29va2llU3Rv
cmFnZVJlZiBjb29raWVTdG9yYWdlID0gcHJpdmF0ZUNvb2tpZVN0b3JhZ2UoKS5nZXQoKSkKKyAg
ICAgICAgcmV0dXJuIGNvb2tpZVN0b3JhZ2U7CiAgICAgcmV0dXJuIHdrR2V0RGVmYXVsdEhUVFBD
b29raWVTdG9yYWdlKCk7CiB9CiAKK0NGSFRUUENvb2tpZVN0b3JhZ2VSZWYgcHJpdmF0ZUJyb3dz
aW5nQ29va2llU3RvcmFnZSgpCit7CisgICAgcmV0dXJuIHByaXZhdGVDb29raWVTdG9yYWdlKCku
Z2V0KCk7Cit9CisKIHZvaWQgc2V0Q3VycmVudENvb2tpZVN0b3JhZ2UoQ0ZIVFRQQ29va2llU3Rv
cmFnZVJlZiBjb29raWVTdG9yYWdlKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAK
LSAgICBwcml2YXRlQnJvd3NpbmdDb29raWVTdG9yYWdlKCkuYWRvcHRDRihjb29raWVTdG9yYWdl
KTsKKyAgICBwcml2YXRlQ29va2llU3RvcmFnZSgpLmFkb3B0Q0YoY29va2llU3RvcmFnZSk7CiB9
CiAKIHZvaWQgc2V0Q29va2llU3RvcmFnZVByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCBlbmFi
bGVkKQpAQCAtNjksMTYgKzc0LDIxIEBAIHZvaWQgc2V0Q29va2llU3RvcmFnZVByaXZhdGVCcm93
c2luZ0VuYWIKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCiAgICAgaWYgKCFlbmFibGVk
KSB7Ci0gICAgICAgIHByaXZhdGVCcm93c2luZ0Nvb2tpZVN0b3JhZ2UoKSA9IG51bGxwdHI7Cisg
ICAgICAgIHByaXZhdGVDb29raWVTdG9yYWdlKCkgPSBudWxscHRyOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCiAjaWYgVVNFKENGVVJMU1RPUkFHRVNFU1NJT05TKQogICAgIGlmIChDRlVSTFN0
b3JhZ2VTZXNzaW9uUmVmIHByaXZhdGVTdG9yYWdlU2Vzc2lvbiA9IFJlc291cmNlSGFuZGxlOjpw
cml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbigpKQotICAgICAgICBwcml2YXRlQnJvd3NpbmdD
b29raWVTdG9yYWdlKCkuYWRvcHRDRih3a0NvcHlIVFRQQ29va2llU3RvcmFnZShwcml2YXRlU3Rv
cmFnZVNlc3Npb24pKTsKKyAgICAgICAgcHJpdmF0ZUNvb2tpZVN0b3JhZ2UoKS5hZG9wdENGKHdr
Q29weUhUVFBDb29raWVTdG9yYWdlKHByaXZhdGVTdG9yYWdlU2Vzc2lvbikpOwogICAgIGVsc2UK
ICNlbmRpZgotICAgICAgICBwcml2YXRlQnJvd3NpbmdDb29raWVTdG9yYWdlKCkuYWRvcHRDRih3
a0NyZWF0ZUluTWVtb3J5SFRUUENvb2tpZVN0b3JhZ2UoKSk7CisgICAgICAgIHByaXZhdGVDb29r
aWVTdG9yYWdlKCkuYWRvcHRDRih3a0NyZWF0ZUluTWVtb3J5SFRUUENvb2tpZVN0b3JhZ2UoKSk7
Cit9CisKK0NGSFRUUENvb2tpZVN0b3JhZ2VSZWYgZGVmYXVsdENvb2tpZVN0b3JhZ2UoKQorewor
ICAgIHJldHVybiB3a0dldERlZmF1bHRIVFRQQ29va2llU3RvcmFnZSgpOwogfQogCiBzdGF0aWMg
dm9pZCBub3RpZnlDb29raWVzQ2hhbmdlZE9uTWFpblRocmVhZCh2b2lkKiBjb250ZXh0KQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Db29raWVTdG9yYWdlQ0ZOZXQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tp
ZVN0b3JhZ2VDRk5ldC5oCShyZXZpc2lvbiA4MTk2MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvQ29va2llU3RvcmFnZUNGTmV0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMz
LDYgKzMzLDggQEAgdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQ0ZIVFRQQ29va2llU3RvcmFnZQogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBjdXJyZW50Q29v
a2llU3RvcmFnZSgpOworICAgIENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgZGVmYXVsdENvb2tpZVN0
b3JhZ2UoKTsKKyAgICBDRkhUVFBDb29raWVTdG9yYWdlUmVmIHByaXZhdGVCcm93c2luZ0Nvb2tp
ZVN0b3JhZ2UoKTsKIAogICAgIC8vIE5lZWRlZCBmb3IgV2ViS2l0MSBBUEkgb25seS4KICAgICB2
b2lkIHNldEN1cnJlbnRDb29raWVTdG9yYWdlKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgY29va2ll
U3RvcmFnZSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiA4MTk2NikKKysrIFNvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcyIEBACisyMDExLTAzLTI1
ICBKZXNzaWUgQmVybGluICA8amJlcmxpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0MjogTmVlZCB0byBiZSBhYmxlIHRv
IHNldCBhbmQgZ2V0IHRoZSBDb29raWUgU3RvcmFnZSBQb2xpY3kuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDc4MAorCisgICAgICAgICogU2hhcmVk
L0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaDogQWRkZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvSFRUUENvb2tpZUFjY2VwdFBv
bGljeSk6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwOgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyU2V0SFRU
UENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIENhbGwgdGhyb3VnaCB0byBXZWJDb29raWVN
YW5hZ2VyUHJveHkuCisgICAgICAgIChXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0
UG9saWN5KToKKyAgICAgICAgRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29v
a2llTWFuYWdlci5oOgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6aW52YWxpZGF0
ZSk6CisgICAgICAgIEludmFsaWRhdGUgdGhlIGdldCBodHRwIGNvb2tpZSBhY2NlcHQgcG9saWN5
IGNhbGxiYWNrcy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpzZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgU2VuZCBhIG1lc3NhZ2UgdG8gdGhlIFdl
YiBQcm9jZXNzIHdpdGggdGhlIG5ldyB2YWx1ZS4KKyAgICAgICAgT24gTWFjLCBhbHNvIHNldCB0
aGUgcG9saWN5IGluIHRoZSBVSSBQcm9jZXNzIGJlY2F1c2UgdGhlIHNhbmRib3hlZCBXZWIgUHJv
Y2VzcyBjYW5ub3QKKyAgICAgICAgcGVyc2lzdCB0aGUgcG9saWN5LgorICAgICAgICAoV2ViS2l0
OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAg
ICAgICBLZWVwIHRyYWNrIG9mIHRoZSBjYWxsYmFjayBhbmQgc2VuZCBhIG1lc3NhZ2UgdG8gdGhl
IFdlYiBQcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRp
ZEdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICBJbnZva2UgdGhlIGNhbGxiYWNr
LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOgorCisgICAgICAg
ICogV2ViS2l0Mi5wcmk6CisgICAgICAgICogV2ViS2l0Mi5wcm86CisgICAgICAgICogV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJv
ajoKKyAgICAgICAgKiB3aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzOgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb29raWVNYW5hZ2VyOjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgQ2Fs
bCBwbGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kuCisgICAgICAgIChXZWJLaXQ6Oldl
YkNvb2tpZU1hbmFnZXI6OmdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICBTZW5k
IHRoZSByZXN1bHQgb2YgcGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5IHRvIHRoZSBV
SSBQcm9jZXNzLgorICAgICAgICAqIFdlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2Vy
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2Fn
ZXMuaW46CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Nvb2tpZXMvY2Y6IEFkZGVkLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvQ29va2llcy9jZi9XZWJDb29raWVNYW5hZ2VyQ0ZOZXQuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6cGxhdGZvcm1TZXRIVFRQQ29v
a2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgU2V0IHRoZSBwb2xpY3kgb24gYm90aCB0aGUgZGVm
YXVsdCBjb29raWUgc3RvcmFnZSBhbmQgYW55IFByaXZhdGUgQnJvd3NpbmcgY29va2llIHN0b3Jh
Z2UuCisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtR2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Db29raWVzL21hYzogQWRk
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9Db29raWVzL21hYy9XZWJDb29raWVNYW5hZ2VyTWFj
Lm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6cGxhdGZvcm1T
ZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgU2V0IHRoZSBwb2xpY3kgb24gdGhl
IGRlZmF1bHQgY29va2llIHN0b3JhZ2UgYW5kIGFkZCBhIEZJWE1FIHRvIHNldCBpdCBvbiBhbnkg
UHJpdmF0ZQorICAgICAgICBCcm93c2luZyBjb29raWUgc3RvcmFnZS4KKyAgICAgICAgKFdlYktp
dDo6V2ViQ29va2llTWFuYWdlcjo6cGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToK
KworICAgICAgICAqIFdlYlByb2Nlc3MvQ29va2llcy9ndGs6IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvQ29va2llcy9ndGsvV2ViQ29va2llTWFuYWdlckd0ay5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpwbGF0Zm9ybVNldEhUVFBDb29raWVBY2Nl
cHRQb2xpY3kpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpwbGF0Zm9ybUdl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICAqIFdlYlByb2Nlc3MvQ29va2llcy9x
dDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9Db29raWVzL3F0L1dlYkNvb2tpZU1hbmFn
ZXJRdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpwbGF0
Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29r
aWVNYW5hZ2VyOjpwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorCiAyMDExLTAz
LTI1ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBDb3Jy
ZWN0IHByb2plY3QgZmlsZSBtaXNzaW5nICQoV2ViS2l0VlNQcm9wc1JlZGlyZWN0aW9uRGlyKXMK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJpCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYktpdDIucHJpCShyZXZpc2lvbiA4MTk2MSkKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YktpdDIucHJpCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw3IEBAIFdFQktJVDJfSU5DTFVE
RVBBVEggPSBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlv
bkNhY2hlIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0
aW9uIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMgXAorICAg
ICQkU09VUkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9xdCBcCiAgICAgJCRTT1VS
Q0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMgXAogICAgICQkU09VUkNFX0RJUi9X
ZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzL3F0IFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0
Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4gXApJbmRleDogU291cmNlL1dlYktpdDIvV2ViS2l0Mi5w
cm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8JKHJldmlzaW9uIDgx
OTYxKQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTQz
MSw2ICs0MzEsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBXZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2Fj
aGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwIFwKICAgICBXZWJQcm9jZXNzL0F1dGhl
bnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvQ29v
a2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcCBcCisgICAgV2ViUHJvY2Vzcy9Db29raWVzL3F0L1dl
YkNvb2tpZU1hbmFnZXJRdC5jcHAgXAogICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2Fk
LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcCBcCiAg
ICAgV2ViUHJvY2Vzcy9Eb3dubG9hZHMvcXQvRG93bmxvYWRRdC5jcHAgXApJbmRleDogU291cmNl
L1dlYktpdDIvU2hhcmVkL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oCShyZXZpc2lvbiAw
KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgSFRUUENvb2tpZUFjY2VwdFBvbGljeV9oCisjZGVmaW5l
IEhUVFBDb29raWVBY2NlcHRQb2xpY3lfaAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSB7
CisgICAgSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5cyA9IDAsCisgICAgSFRUUENvb2tpZUFj
Y2VwdFBvbGljeU5ldmVyID0gMSwKKyAgICBIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21N
YWluRG9jdW1lbnREb21haW4gPSAyLAorfTsKK3R5cGVkZWYgdW5zaWduZWQgSFRUUENvb2tpZUFj
Y2VwdFBvbGljeTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBIVFRQQ29v
a2llQWNjZXB0UG9saWN5X2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29r
aWVNYW5hZ2VyUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCShyZXZpc2lvbiA4MTk2MSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMSw2ICszMSwxMCBAQAogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNsdWRlICJX
ZWJTZWN1cml0eU9yaWdpbi5oIgogCisjaWYgUExBVEZPUk0oTUFDKQorI2ltcG9ydCA8V2ViQ29y
ZS9Db29raWVTdG9yYWdlTWFjLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFBh
c3NSZWZQdHI8V2ViQ29va2llTWFuYWdlclByb3h5PiBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmNy
ZWF0ZShXZWJDb250ZXh0KiBjb250ZXh0KQpAQCAtNTAsNiArNTQsNyBAQCBXZWJDb29raWVNYW5h
Z2VyUHJveHk6On5XZWJDb29raWVNYW5hZ2VyCiB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6
aW52YWxpZGF0ZSgpCiB7CiAgICAgaW52YWxpZGF0ZUNhbGxiYWNrTWFwKG1fYXJyYXlDYWxsYmFj
a3MpOworICAgIGludmFsaWRhdGVDYWxsYmFja01hcChtX2h0dHBDb29raWVBY2NlcHRQb2xpY3lD
YWxsYmFja3MpOwogfQogCiB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6aW5pdGlhbGl6ZUNs
aWVudChjb25zdCBXS0Nvb2tpZU1hbmFnZXJDbGllbnQqIGNsaWVudCkKQEAgLTEzMSw0ICsxMzYs
NDUgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmNvb2tpZXNEaWRDaAogICAgIG1fY2xp
ZW50LmNvb2tpZXNEaWRDaGFuZ2UodGhpcyk7CiB9CiAKK3ZvaWQgV2ViQ29va2llTWFuYWdlclBy
b3h5OjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9s
aWN5KQoreworICAgIEFTU0VSVChtX3dlYkNvbnRleHQpOworICAgIGlmICghbV93ZWJDb250ZXh0
LT5oYXNWYWxpZFByb2Nlc3MoKSkKKyAgICAgICAgcmV0dXJuOworCisjaWYgUExBVEZPUk0oTUFD
KQorICAgIC8vIEZJWE1FOiBUaGUgc2FuZGJveCBhcHBlYXJzIHRvIHByZXZlbnQgcGVyc2lzdGlu
ZyB0aGUgbmV3IHBvbGljeSB0byBkaXNrLCBzbyB3ZSBtdXN0IHNldCB0aGUKKyAgICAvLyBwb2xp
Y3kgaW4gdGhlIFVJIFByb2Nlc3MgYXMgd2VsbCBhcyBpbiB0aGUgV2ViIFByb2Nlc3MgKHRvIG1h
a2Ugc3VyZSBpdCBnZXRzIHNldCBvbiBhbnkKKyAgICAvLyBQcml2YXRlIEJyb3dzaW5nIENvb2tp
ZSBTdG9yYWdlKS4KKyAgICBXZWJDb3JlOjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5T25BbGxD
b29raWVTdG9yYWdlcyhwb2xpY3kpOworI2VuZGlmCisgICAgbV93ZWJDb250ZXh0LT5wcm9jZXNz
KCktPnNlbmQoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OlNldEhUVFBDb29raWVBY2NlcHRQ
b2xpY3kocG9saWN5KSwgMCk7Cit9CisKK3ZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpnZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5KFBhc3NSZWZQdHI8SFRUUENvb2tpZUFjY2VwdFBvbGljeUNh
bGxiYWNrPiBwcnBDYWxsYmFjaykKK3sKKyAgICBBU1NFUlQobV93ZWJDb250ZXh0KTsKKworICAg
IFJlZlB0cjxIVFRQQ29va2llQWNjZXB0UG9saWN5Q2FsbGJhY2s+IGNhbGxiYWNrID0gcHJwQ2Fs
bGJhY2s7CisgICAgaWYgKCFtX3dlYkNvbnRleHQtPmhhc1ZhbGlkUHJvY2VzcygpKSB7CisgICAg
ICAgIGNhbGxiYWNrLT5pbnZhbGlkYXRlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKKyAgICBtX2h0
dHBDb29raWVBY2NlcHRQb2xpY3lDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIGNhbGxiYWNrLnJl
bGVhc2UoKSk7CisgICAgbV93ZWJDb250ZXh0LT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6Oldl
YkNvb2tpZU1hbmFnZXI6OkdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koY2FsbGJhY2tJRCksIDAp
OworfQorCit2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGlkR2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeSh1aW50MzJfdCBwb2xpY3ksIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgUmVm
UHRyPEhUVFBDb29raWVBY2NlcHRQb2xpY3lDYWxsYmFjaz4gY2FsbGJhY2sgPSBtX2h0dHBDb29r
aWVBY2NlcHRQb2xpY3lDYWxsYmFja3MudGFrZShjYWxsYmFja0lEKTsKKyAgICBpZiAoIWNhbGxi
YWNrKSB7CisgICAgICAgIC8vIEZJWE1FOiBMb2cgZXJyb3Igb3IgYXNzZXJ0LgorICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5W
YWx1ZShwb2xpY3kpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgJKHJldmlzaW9u
IDgxOTYxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94
eS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
Y2xhc3MgV2ViQ29udGV4dDsKIAogdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tBcnJheVJlZj4g
QXJyYXlDYWxsYmFjazsKK3R5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPFdLSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSwgSFRUUENvb2tpZUFjY2VwdFBvbGljeT4gSFRUUENvb2tpZUFjY2VwdFBvbGljeUNh
bGxiYWNrOwogCiBjbGFzcyBXZWJDb29raWVNYW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0
IHsKIHB1YmxpYzoKQEAgLTYyLDYgKzYzLDkgQEAgcHVibGljOgogICAgIHZvaWQgZGVsZXRlQ29v
a2llc0Zvckhvc3RuYW1lKGNvbnN0IFN0cmluZyYgaG9zdG5hbWUpOwogICAgIHZvaWQgZGVsZXRl
QWxsQ29va2llcygpOwogCisgICAgdm9pZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBD
b29raWVBY2NlcHRQb2xpY3kpOworICAgIHZvaWQgZ2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQ
YXNzUmVmUHRyPEhUVFBDb29raWVBY2NlcHRQb2xpY3lDYWxsYmFjaz4pOworCiAgICAgdm9pZCBz
dGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoKTsKICAgICB2b2lkIHN0b3BPYnNlcnZpbmdDb29r
aWVDaGFuZ2VzKCk7CiAKQEAgLTczLDYgKzc3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFR5
cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAogICAgIHZvaWQgZGlkR2V0SG9z
dG5hbWVzV2l0aENvb2tpZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCB1aW50NjRfdCBjYWxsYmFj
a0lEKTsKKyAgICB2b2lkIGRpZEdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kodWludDMyX3QgcG9s
aWN5LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKIAogICAgIHZvaWQgY29va2llc0RpZENoYW5nZSgp
OwogICAgIApAQCAtODAsNiArODUsNyBAQCBwcml2YXRlOgogCiAgICAgV2ViQ29udGV4dCogbV93
ZWJDb250ZXh0OwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxBcnJheUNhbGxiYWNrPiA+
IG1fYXJyYXlDYWxsYmFja3M7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEhUVFBDb29r
aWVBY2NlcHRQb2xpY3lDYWxsYmFjaz4gPiBtX2h0dHBDb29raWVBY2NlcHRQb2xpY3lDYWxsYmFj
a3M7CiAKICAgICBXZWJDb29raWVNYW5hZ2VyUHJveHlDbGllbnQgbV9jbGllbnQ7CiB9OwpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiA4MTk2MSkKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29w
eSkKQEAgLTIyLDYgKzIyLDcgQEAKIAogbWVzc2FnZXMgLT4gV2ViQ29va2llTWFuYWdlclByb3h5
IHsKICAgICBEaWRHZXRIb3N0bmFtZXNXaXRoQ29va2llcyhWZWN0b3I8V1RGOjpTdHJpbmc+IGhv
c3RuYW1lcywgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgRGlkR2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeSh1aW50MzJfdCBwb2xpY3ksIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIAogICAg
IENvb2tpZXNEaWRDaGFuZ2UoKQogfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQVBJQ2FzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS0FQSUNhc3QuaAkocmV2aXNpb24gODE5NjEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDEzICsyOSwxNiBA
QAogCiAjaW5jbHVkZSAiQ2FjaGVNb2RlbC5oIgogI2luY2x1ZGUgIkZvbnRTbW9vdGhpbmdMZXZl
bC5oIgorI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbmNsdWRlICJSZXNv
dXJjZUNhY2hlc1RvQ2xlYXIuaCIKICNpbmNsdWRlICJXS0NvbnRleHQuaCIKKyNpbmNsdWRlICJX
S0Nvb2tpZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXS0NyZWRlbnRpYWxUeXBlcy5oIgogI2luY2x1
ZGUgIldLUGFnZS5oIgogI2luY2x1ZGUgIldLUHJlZmVyZW5jZXNQcml2YXRlLmgiCiAjaW5jbHVk
ZSAiV0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5oIgogI2luY2x1ZGUgIldLU2hhcmVkQVBJQ2FzdC5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llSmFyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DcmVk
ZW50aWFsLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4KQEAgLTI1Myw2ICsyNTYsMzYgQEAgaW5saW5l
IFJlc291cmNlQ2FjaGVzVG9DbGVhciB0b1Jlc291cmNlQwogICAgIHJldHVybiBBbGxSZXNvdXJj
ZUNhY2hlczsKIH0KIAoraW5saW5lIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2ll
QWNjZXB0UG9saWN5KFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCit7CisgICAgc3dp
dGNoIChwb2xpY3kpIHsKKyAgICBjYXNlIGtXS0hUVFBDb29raWVBY2NlcHRQb2xpY3lBbHdheXM6
CisgICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzOworICAgIGNhc2Ug
a1dLSFRUUENvb2tpZUFjY2VwdFBvbGljeU5ldmVyOgorICAgICAgICByZXR1cm4gSFRUUENvb2tp
ZUFjY2VwdFBvbGljeU5ldmVyOworICAgIGNhc2Uga1dLSFRUUENvb2tpZUFjY2VwdFBvbGljeU9u
bHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2Vw
dFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIH0KKworICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzOwor
fQorCitpbmxpbmUgV0tIVFRQQ29va2llQWNjZXB0UG9saWN5IHRvQVBJKEhUVFBDb29raWVBY2Nl
cHRQb2xpY3kgcG9saWN5KQoreworICAgIHN3aXRjaCAocG9saWN5KSB7CisgICAgY2FzZSBIVFRQ
Q29va2llQWNjZXB0UG9saWN5QWx3YXlzOgorICAgICAgICByZXR1cm4ga1dLSFRUUENvb2tpZUFj
Y2VwdFBvbGljeUFsd2F5czsKKyAgICBjYXNlIEhUVFBDb29raWVBY2NlcHRQb2xpY3lOZXZlcjoK
KyAgICAgICAgcmV0dXJuIGtXS0hUVFBDb29raWVBY2NlcHRQb2xpY3lOZXZlcjsKKyAgICBjYXNl
IEhUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjoKKyAgICAg
ICAgcmV0dXJuIGtXS0hUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERv
bWFpbjsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4ga1dL
SFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CiAKICNpZiBkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4zMikKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwCShyZXZp
c2lvbiA4MTk2MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1h
bmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCw2ICs1OCwxNiBAQCB2b2lkIFdLQ29va2ll
TWFuYWdlckRlbGV0ZUFsbENvb2tpZXMoV0tDCiAgICAgdG9JbXBsKGNvb2tpZU1hbmFnZXJSZWYp
LT5kZWxldGVBbGxDb29raWVzKCk7CiB9CiAKK3ZvaWQgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeShXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgV0tIVFRQ
Q29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK3sKKyAgICB0b0ltcGwoY29va2llTWFuYWdlcikt
PnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kodG9IVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGlj
eSkpOworfQorCit2b2lkIFdLQ29va2llTWFuYWdlckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3ko
V0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIHZvaWQqIGNvbnRleHQsIFdLQ29va2ll
TWFuYWdlckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3lGdW5jdGlvbiBjYWxsYmFjaykKK3sKKyAg
ICB0b0ltcGwoY29va2llTWFuYWdlciktPmdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENv
b2tpZUFjY2VwdFBvbGljeUNhbGxiYWNrOjpjcmVhdGUoY29udGV4dCwgY2FsbGJhY2spKTsKK30K
Kwogdm9pZCBXS0Nvb2tpZU1hbmFnZXJTdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoV0tDb29r
aWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIpCiB7CiAgICAgdG9JbXBsKGNvb2tpZU1hbmFnZXIp
LT5zdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmgJKHJldmlzaW9uIDgxOTYxKQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFuYWdlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiw2ICszMiwxMyBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAorZW51
bSB7CisgICAga1dLSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5cyA9IDAsCisgICAga1dLSFRU
UENvb2tpZUFjY2VwdFBvbGljeU5ldmVyID0gMSwKKyAgICBrV0tIVFRQQ29va2llQWNjZXB0UG9s
aWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW4gPSAyCit9OwordHlwZWRlZiB1aW50MzJfdCBX
S0hUVFBDb29raWVBY2NlcHRQb2xpY3k7CisKIC8vIENvb2tpZSBNYW5hZ2VyIENsaWVudAogdHlw
ZWRlZiB2b2lkICgqV0tDb29raWVNYW5hZ2VyQ29va2llc0RpZENoYW5nZUNhbGxiYWNrKShXS0Nv
b2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiAK
QEAgLTUyLDYgKzU5LDEwIEBAIFdLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckdldEhvc3Ru
YW0KIFdLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFt
ZShXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgV0tTdHJpbmdSZWYgaG9zdG5hbWUp
OwogV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2llcyhXS0Nvb2tp
ZU1hbmFnZXJSZWYgY29va2llTWFuYWdlcik7CiAKK1dLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFu
YWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1h
bmFnZXIsIFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpOwordHlwZWRlZiB2b2lkICgq
V0tDb29raWVNYW5hZ2VyR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeUZ1bmN0aW9uKShXS0hUVFBD
b29raWVBY2NlcHRQb2xpY3ksIFdLRXJyb3JSZWYsIHZvaWQqKTsKK1dLX0VYUE9SVCB2b2lkIFdL
Q29va2llTWFuYWdlckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tDb29raWVNYW5hZ2VyUmVm
IGNvb2tpZU1hbmFnZXIsIHZvaWQqIGNvbnRleHQsIFdLQ29va2llTWFuYWdlckdldEhUVFBDb29r
aWVBY2NlcHRQb2xpY3lGdW5jdGlvbiBjYWxsYmFjayk7CisKIFdLX0VYUE9SVCB2b2lkIFdLQ29v
a2llTWFuYWdlclN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhXS0Nvb2tpZU1hbmFnZXJSZWYg
Y29va2llTWFuYWdlcik7CiBXS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJTdG9wT2JzZXJ2
aW5nQ29va2llQ2hhbmdlcyhXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlcik7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHJldmlzaW9uIDgxOTYxKQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC04MDMsOSArODAzLDExIEBACiAJCUY2
MzQ0NDU2MTJBODg1QzgwMDA2MTJEOCAvKiBXZWJTZWN1cml0eU9yaWdpbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjYzNDQ0NTUxMkE4ODVDODAwMDYx
MkQ4IC8qIFdlYlNlY3VyaXR5T3JpZ2luLmggKi87IH07CiAJCUY2MzQ0NDVDMTJBODg1RTkwMDA2
MTJEOCAvKiBXS1NlY3VyaXR5T3JpZ2luLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY2MzQ0NDVBMTJBODg1RTkwMDA2MTJEOCAvKiBXS1NlY3VyaXR5
T3JpZ2luLmNwcCAqLzsgfTsKIAkJRjYzNDQ0NUQxMkE4ODVFOTAwMDYxMkQ4IC8qIFdLU2VjdXJp
dHlPcmlnaW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY2MzQ0NDVCMTJBODg1RTkwMDA2MTJEOCAvKiBXS1NlY3VyaXR5T3JpZ2luLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OworCQlGNjM4OTU1MDEzM0JFRjM4
MDA4OTQxRDUgLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIGluIENvcHlGaWxlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjM4OTU0RjEzM0JFRjM4MDA4OTQxRDUgLyog
SFRUUENvb2tpZUFjY2VwdFBvbGljeS5oICovOyB9OwogCQlGNjdERDdCQTEyNUU0MEQ5MDA3QkRD
QjggLyogV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjdERDdCOTEyNUU0MEQ5MDA3QkRDQjggLyog
V0tTZXJpYWxpemVkU2NyaXB0VmFsdWVQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjZBMjVGREMxMkFEQzZDQzAwREM0MENDIC8qIFdl
YkRhdGFiYXNlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNkEyNUZEQTEyQURDNkNDMDBEQzQwQ0MgLyogV2ViRGF0YWJhc2VNYW5hZ2Vy
LmNwcCAqLzsgfTsKIAkJRjZBMjVGREQxMkFEQzZDQzAwREM0MENDIC8qIFdlYkRhdGFiYXNlTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjZB
MjVGREIxMkFEQzZDQzAwREM0MENDIC8qIFdlYkRhdGFiYXNlTWFuYWdlci5oICovOyB9OworCQlG
NkE5MDgxMzEzM0MyMDUxMDA4MkMzRjQgLyogV2ViQ29va2llTWFuYWdlck1hYy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2QTkwODExMTMzQzFGM0Qw
MDgyQzNGNCAvKiBXZWJDb29raWVNYW5hZ2VyTWFjLm1tICovOyB9OwogLyogRW5kIFBCWEJ1aWxk
RmlsZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWENvbnRhaW5lckl0ZW1Qcm94eSBzZWN0aW9u
ICovCkBAIC04NjIsNiArODY0LDcgQEAKIAkJCWZpbGVzID0gKAogCQkJCTFBNTBEQjY2MTEwQTNE
NTcwMDBEM0ZFNSAvKiBXZWJQcm9jZXNzLmFwcCBpbiBDb3B5RmlsZXMgKi8sCiAJCQkJQkNERTBB
QkYxMzI3MjcwODAwMTI1OUZCIC8qIFBsdWdpblByb2Nlc3MuYXBwIGluIENvcHlGaWxlcyAqLywK
KwkJCQlGNjM4OTU1MDEzM0JFRjM4MDA4OTQxRDUgLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5o
IGluIENvcHlGaWxlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE3MTMsMTAgKzE3MTYsMTIgQEAKIAkJRjYzNDQ0NTUxMkE4
ODVDODAwMDYxMkQ4IC8qIFdlYlNlY3VyaXR5T3JpZ2luLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlNlY3VyaXR5T3JpZ2luLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY2MzQ0NDVBMTJBODg1RTkwMDA2MTJEOCAvKiBXS1NlY3VyaXR5T3JpZ2luLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLU2VjdXJpdHlPcmlnaW4uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNjM0NDQ1QjEyQTg4NUU5MDAwNjEyRDgg
LyogV0tTZWN1cml0eU9yaWdpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
S1NlY3VyaXR5T3JpZ2luLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY2Mzg5NTRG
MTMzQkVGMzgwMDg5NDFENSAvKiBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjY3REQ3QjkxMjVFNDBEOTAwN0JEQ0I4IC8qIFdLU2VyaWFs
aXplZFNjcmlwdFZhbHVlUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjZBMEMxM0YxMzI4MUU2RTAwNzA0MzBGIC8qIFJlc291cmNlQ2FjaGVzVG9DbGVh
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZUNhY2hlc1RvQ2xl
YXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjZBMjVGREExMkFEQzZDQzAwREM0
MENDIC8qIFdlYkRhdGFiYXNlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJEYXRhYmFzZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNkEyNUZEQjEyQURDNkNDMDBEQzQwQ0MgLyogV2ViRGF0YWJhc2VNYW5hZ2VyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRhdGFiYXNlTWFuYWdlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNkE5MDgxMTEzM0MxRjNEMDA4MkMzRjQgLyog
V2ViQ29va2llTWFuYWdlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYkNvb2tpZU1hbmFnZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWEZyYW1l
d29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KQEAgLTIwMzAsNiArMjAzNSw3IEBACiAJCQkJQzUx
NzM4ODAxMkRGOEY0RjAwRUUzRjQ3IC8qIERyYWdDb250cm9sbGVyQWN0aW9uLmggKi8sCiAJCQkJ
MEZCNjU5MjIxMjA4QjREQjAwNDQ4MTZDIC8qIERyYXdpbmdBcmVhSW5mby5oICovLAogCQkJCTc2
MkI3NDgxMTIwQkJBMDEwMDgxOTMzOSAvKiBGb250U21vb3RoaW5nTGV2ZWwuaCAqLywKKwkJCQlG
NjM4OTU0RjEzM0JFRjM4MDA4OTQxRDUgLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oICovLAog
CQkJCUJDQ0Y2QjIzMTJDOTNFN0EwMDhGOUMzNSAvKiBJbWFnZU9wdGlvbnMuaCAqLywKIAkJCQlC
QzY0Njk2RDExREJFNjAzMDA2NDU1QjAgLyogSW1tdXRhYmxlQXJyYXkuY3BwICovLAogCQkJCUJD
NjQ2OTZFMTFEQkU2MDMwMDY0NTVCMCAvKiBJbW11dGFibGVBcnJheS5oICovLApAQCAtMjIzNCw2
ICsyMjQwLDcgQEAKIAkJMzMwOTM0NEIxMzE1QjkzQTAwOTdBN0JDIC8qIENvb2tpZXMgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUY2Mzg5NTVBMTMzQkY1
N0QwMDg5NDFENSAvKiBtYWMgKi8sCiAJCQkJMzMwOTM0NEMxMzE1Qjk0RDAwOTdBN0JDIC8qIFdl
YkNvb2tpZU1hbmFnZXIuY3BwICovLAogCQkJCTMzMDkzNDREMTMxNUI5NEQwMDk3QTdCQyAvKiBX
ZWJDb29raWVNYW5hZ2VyLmggKi8sCiAJCQkJMzMwOTM0NEUxMzE1Qjk0RDAwOTdBN0JDIC8qIFdl
YkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCkBAIC0zMjIyLDYgKzMyMjksMTUgQEAKIAkJ
CXBhdGggPSBGdWxsU2NyZWVuL21hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07
CisJCUY2Mzg5NTVBMTMzQkY1N0QwMDg5NDFENSAvKiBtYWMgKi8gPSB7CisJCQlpc2EgPSBQQlhH
cm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUY2QTkwODExMTMzQzFGM0QwMDgyQzNGNCAvKiBX
ZWJDb29raWVNYW5hZ2VyTWFjLm1tICovLAorCQkJKTsKKwkJCW5hbWUgPSBtYWM7CisJCQlwYXRo
ID0gQ29va2llcy9tYWM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogLyogRW5k
IFBCWEdyb3VwIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYSGVhZGVyc0J1aWxkUGhhc2Ugc2Vj
dGlvbiAqLwpAQCAtNDIzOCw2ICs0MjU0LDcgQEAKIAkJCQlDMEQ3NERERTEzM0JFMkQ5MDA4OUNE
NDQgLyogTGF5ZXJUcmVlSG9zdENBLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMwM0ExMzZDMTMz
QkVCRjkwMEQ3NjdEMSAvKiBMYXllclRyZWVIb3N0Q0FNYWMubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk1MTEwQUUwQzEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRjZBOTA4MTMxMzNDMjA1MTAwODJDM0Y0IC8qIFdlYkNvb2tpZU1hbmFnZXJN
YWMubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29v
a2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAJKHJldmlzaW9uIDgxOTYxKQor
KysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC04OSw0ICs4OSwxNCBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXI6
OmRpc3BhdGNoQ29va2llc0RpCiAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OkNvb2tpZXNEaWRDaGFuZ2Uo
KSwgMCk7CiB9CiAKK3ZvaWQgV2ViQ29va2llTWFuYWdlcjo6c2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK3sKKyAgICBwbGF0Zm9ybVNldEhU
VFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KTsKK30KKwordm9pZCBXZWJDb29raWVNYW5hZ2Vy
OjpnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAg
V2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29r
aWVNYW5hZ2VyUHJveHk6OkRpZEdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kocGxhdGZvcm1HZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5KCksIGNhbGxiYWNrSUQpLCAwKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2Vi
Q29va2llTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Q29va2llcy9XZWJDb29raWVNYW5hZ2VyLmgJKHJldmlzaW9uIDgxOTYxKQorKysgU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBXZWJDb29raWVNYW5hZ2VyX2gKICNkZWZpbmUg
V2ViQ29va2llTWFuYWdlcl9oCiAKKyNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5Lmgi
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKQEAgLTUzLDYgKzU0LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZWxldGVDb29r
aWVzRm9ySG9zdG5hbWUoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBkZWxldGVBbGxDb29raWVz
KCk7CiAKKyAgICB2b2lkIHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSk7CisgICAgdm9pZCBwbGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRU
UENvb2tpZUFjY2VwdFBvbGljeSk7CisgICAgdm9pZCBnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
KHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcGxhdGZv
cm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KCk7CisKICAgICB2b2lkIHN0YXJ0T2JzZXJ2aW5n
Q29va2llQ2hhbmdlcygpOwogICAgIHZvaWQgc3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoKTsK
IApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFn
ZXIubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9D
b29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW4JKHJldmlzaW9uIDgxOTYxKQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2Fn
ZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDkgQEAKICAgICB2b2lkIEdldEhvc3Ru
YW1lc1dpdGhDb29raWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAgICAgdm9pZCBEZWxldGVDb29r
aWVzRm9ySG9zdG5hbWUoV1RGOjpTdHJpbmcgaG9zdG5hbWUpCiAgICAgdm9pZCBEZWxldGVBbGxD
b29raWVzKCkKKworICAgIHZvaWQgU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSh1aW50MzJfdCBw
b2xpY3kpCisgICAgdm9pZCBHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHVpbnQ2NF90IGNhbGxi
YWNrSUQpCiAgICAgCiAgICAgdm9pZCBTdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoKQogICAg
IHZvaWQgU3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoKQpJbmRleDogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9Db29raWVzL2NmL1dlYkNvb2tpZU1hbmFnZXJDRk5ldC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL2NmL1dlYkNvb2tpZU1hbmFn
ZXJDRk5ldC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nv
b2tpZXMvY2YvV2ViQ29va2llTWFuYWdlckNGTmV0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJD
b29raWVNYW5hZ2VyLmgiCisKKyNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZIVFRQQ29va2llc1ByaXYu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZVN0b3JhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0Nvb2tpZVN0b3JhZ2VDRk5ldC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJD
b29raWVNYW5hZ2VyOjpwbGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tp
ZUFjY2VwdFBvbGljeSBwb2xpY3kpCit7CisgICAgQ0ZIVFRQQ29va2llU3RvcmFnZVNldENvb2tp
ZUFjY2VwdFBvbGljeShXZWJDb3JlOjpkZWZhdWx0Q29va2llU3RvcmFnZSgpLCBwb2xpY3kpOwor
CisgICAgQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBwcml2YXRlQnJvd3NpbmdDb29raWVTdG9yYWdl
ID0gV2ViQ29yZTo6cHJpdmF0ZUJyb3dzaW5nQ29va2llU3RvcmFnZSgpOworICAgIGlmICghcHJp
dmF0ZUJyb3dzaW5nQ29va2llU3RvcmFnZSkKKyAgICAgICAgcmV0dXJuOworICAgIENGSFRUUENv
b2tpZVN0b3JhZ2VTZXRDb29raWVBY2NlcHRQb2xpY3kocHJpdmF0ZUJyb3dzaW5nQ29va2llU3Rv
cmFnZSwgcG9saWN5KTsKK30KKworSFRUUENvb2tpZUFjY2VwdFBvbGljeSBXZWJDb29raWVNYW5h
Z2VyOjpwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKQoreworICAgIHJldHVybiBD
RkhUVFBDb29raWVTdG9yYWdlR2V0Q29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OmN1cnJlbnRD
b29raWVTdG9yYWdlKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9ndGsvV2ViQ29va2llTWFuYWdlckd0ay5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL2d0ay9XZWJD
b29raWVNYW5hZ2VyR3RrLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvQ29va2llcy9ndGsvV2ViQ29va2llTWFuYWdlckd0ay5jcHAJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViQ29va2llTWFuYWdlci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJD
b29raWVNYW5hZ2VyOjpwbGF0Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tp
ZUFjY2VwdFBvbGljeSkKK3sKKyAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkLgorfQorCitI
VFRQQ29va2llQWNjZXB0UG9saWN5IFdlYkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtR2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeSgpCit7CisgICAgLy8gRklYTUU6IE5vdCBpbXBsZW1lbnRlZC4KKyAg
ICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvbWFjL1dl
YkNvb2tpZU1hbmFnZXJNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9Db29raWVzL21hYy9XZWJDb29raWVNYW5hZ2VyTWFjLm1tCShyZXZpc2lvbiAwKQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL21hYy9XZWJDb29raWVNYW5hZ2VyTWFj
Lm1tCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAi
Y29uZmlnLmgiCisjaW1wb3J0ICJXZWJDb29raWVNYW5hZ2VyLmgiCisKK25hbWVzcGFjZSBXZWJL
aXQgeworCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKK3sKKyAgICBbW05TSFRUUENv
b2tpZVN0b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdIHNldENvb2tpZUFjY2VwdFBvbGlj
eTpwb2xpY3ldOworCisjaWYgVVNFKENGVVJMU1RPUkFHRVNFU1NJT05TKQorICAgIC8vIEZJWE1F
OiBBbHNvIHVwZGF0ZSB0aGUgUHJpdmF0ZSBCcm93c2luZyBTdG9yYWdlIFNlc3Npb24ncyBjb29r
aWUgc3RvcmFnZS4KKyNlbmRpZgorfQorCitIVFRQQ29va2llQWNjZXB0UG9saWN5IFdlYkNvb2tp
ZU1hbmFnZXI6OnBsYXRmb3JtR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSgpCit7CisgICAgcmV0
dXJuIFtbTlNIVFRQQ29va2llU3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV0gY29va2ll
QWNjZXB0UG9saWN5XTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvcXQvV2ViQ29va2llTWFuYWdlclF0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvcXQvV2ViQ29va2ll
TWFuYWdlclF0LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Q29va2llcy9xdC9XZWJDb29raWVNYW5hZ2VyUXQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNv
b2tpZU1hbmFnZXIuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViQ29va2llTWFu
YWdlcjo6cGxhdGZvcm1TZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQ
b2xpY3kpCit7CisgICAgLy8gRklYTUU6IE5vdCBpbXBsZW1lbnRlZC4KK30KKworSFRUUENvb2tp
ZUFjY2VwdFBvbGljeSBXZWJDb29raWVNYW5hZ2VyOjpwbGF0Zm9ybUdldEhUVFBDb29raWVBY2Nl
cHRQb2xpY3koKQoreworICAgIC8vIEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQuCisgICAgcmV0dXJu
IEhUVFBDb29raWVBY2NlcHRQb2xpY3lBbHdheXM7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dApJbmRleDogU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagkocmV2aXNpb24gODE5NjEpCisrKyBT
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTE1NDUs
NiArMTU0NSwxNCBAQAogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcQ29va2llc1xX
ZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluIgogCQkJCQk+CiAJCQkJPC9GaWxlPgorCQkJCTxG
aWx0ZXIKKwkJCQkJTmFtZT0iY2YiCisJCQkJCT4KKwkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZl
UGF0aD0iLi5cV2ViUHJvY2Vzc1xDb29raWVzXGNmXFdlYkNvb2tpZU1hbmFnZXJDRk5ldC5jcHAi
CisJCQkJCQk+CisJCQkJCTwvRmlsZT4KKwkJCQk8L0ZpbHRlcj4KIAkJCTwvRmlsdGVyPgogCQkJ
PEZpbHRlcgogCQkJCU5hbWU9IldlYkNvcmVTdXBwb3J0IgpJbmRleDogU291cmNlL1dlYktpdDIv
d2luL1dlYktpdDJDb21tb24udnNwcm9wcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzCShyZXZpc2lvbiA4MTk2MSkKKysrIFNvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHMJKHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3
IEBACiAJPgogCTxUb29sCiAJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCUFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcikmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3JtJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm1cY2cmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxQbGF0Zm9ybVxDb3JlSVBDJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGx1Z2lu
UHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZCZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFNoYXJlZFx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxT
aGFyZWRcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGMmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGNcY2YmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGNcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
U2hhcmVkXENvcmVJUENTdXBwb3J0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVk
XFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcUGx1Z2luc1xOZXRz
Y2FwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2VzcyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcQyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFVJUHJvY2Vzc1xBUElcQ1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVBy
b2Nlc3NcQVBJXGNwcCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElc
d2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEF1dGhlbnRpY2F0aW9u
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXERvd25sb2FkcyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xMYXVuY2hlciZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFVJUHJvY2Vzc1xQbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cVUlQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Mm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0JnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFx3aW4m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYlBhZ2UmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYlBhZ2Vcd2luJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJY29uRGF0YWJhc2UmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxBUElcYyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcRE9NJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVx3aW4mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnNcTmV0c2NhcGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlBy
b2Nlc3NcQXBwbGljYXRpb25DYWNoZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlBy
b2Nlc3NcQXV0aGVudGljYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9j
ZXNzXENvb2tpZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXERvd25s
b2FkcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRzXGNm
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xGdWxsU2NyZWVuJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xHZW9sb2NhdGlvbiZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcS2V5VmFsdWVTdG9yYWdlJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xNZWRpYUNhY2hlJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cV2ViUHJvY2Vzc1xSZXNvdXJjZUNhY2hlJnF1b3Q7OyZxdW90OyQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXMmcXVvdDs7
JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGUmcXVvdDs7JnF1b3Q7JChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExp
YnJhcmllc0RpcilcSW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5j
bHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHB0
aHJlYWRzJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXEphdmFT
Y3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXHBy
aXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXElu
Y2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXElu
Y2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcSW5jbHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQo
V2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVv
dDsiCisJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcikm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFBsYXRmb3JtJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm1cY2cmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybVxDb3JlSVBDJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cUGx1Z2luUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNo
YXJlZCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFx3aW4mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxT
aGFyZWRcQVBJXGMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGNcY2Ym
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGNcd2luJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXENvcmVJUENTdXBwb3J0JnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cU2hhcmVkXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxT
aGFyZWRcUGx1Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJv
Y2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcQyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcQ1x3aW4mcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXGNwcCZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFVJUHJvY2Vzc1xBUElcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9j
ZXNzXEF1dGhlbnRpY2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNz
XERvd25sb2FkcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xMYXVuY2hl
ciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xQbHVnaW5zJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFdlYlByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNz
XFdlYkNvcmVTdXBwb3J0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xX
ZWJDb3JlU3VwcG9ydFx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNz
XFdlYlBhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYlBhZ2Vc
d2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJY29uRGF0YWJhc2Um
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxBUElc
YyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVc
RE9NJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRs
ZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnMmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnNcTmV0c2NhcGUmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQXBwbGljYXRpb25DYWNoZSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQXV0aGVudGljYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxXZWJQcm9jZXNzXENvb2tpZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxXZWJQcm9jZXNzXENvb2tpZXNcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQ
cm9jZXNzXERvd25sb2FkcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Nc
RG93bmxvYWRzXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xGdWxs
U2NyZWVuJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xHZW9sb2NhdGlv
biZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcS2V5VmFsdWVTdG9yYWdl
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xNZWRpYUNhY2hlJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xSZXNvdXJjZUNhY2hlJnF1b3Q7OyZx
dW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXMmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGUmcXVvdDs7
JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVv
dDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJh
cmllc0RpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGly
KVxJbmNsdWRlXHB0aHJlYWRzJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJ
bmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxJbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJy
YXJpZXNEaXIpXEluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJy
YXJpZXNEaXIpXEluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1
b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGlu
Z0hlYWRlcnMmcXVvdDsiCiAJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfVVNSRExMO1dFQktJ
VF9FWFBPUlRTO0ZSQU1FV09SS19OQU1FPVdlYktpdDtCVUlMRElOR19XRUJLSVQiCiAJCVVzZVBy
ZWNvbXBpbGVkSGVhZGVyPSIyIgogCQlQcmVjb21waWxlZEhlYWRlclRocm91Z2g9IldlYktpdDJQ
cmVmaXguaCIKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDgxOTY2KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEtMDMtMjUgIEplc3NpZSBCZXJsaW4gIDxqYmVybGluQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXZWJLaXQyOiBOZWVkIHRvIGJlIGFibGUgdG8gc2V0IGFuZCBnZXQgdGhlIENvb2tpZSBTdG9y
YWdlIFBvbGljeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTUwNzgwCisKKyAgICAgICAgQWRkIGEgdGVzdCBmb3IgZ2V0dGluZyBhbmQgc2V0dGluZyB0
aGUgSFRUUCBDb29raWUgQWNjZXB0IFBvbGljeSBpbiBXZWJLaXQyLgorCisgICAgICAgIFRoZSB0
ZXN0IGlzIG5hbWVkICJDb29raWVNYW5hZ2VyIiBzbyB0aGF0IHdlIGNhbiBldmVudHVhbGx5IGV4
ZXJjaXNlIG1vcmUgb2YgdGhlCisgICAgICAgIENvb2tpZU1hbmFnZXIgZnVuY3Rpb25hbGl0eSBp
biB0aGUgdGVzdC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Db29r
aWVNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkaWRHZXRUZXN0
SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgIEFzc2VydCB0aGF0IHRoZSBwb2xpY3kg
cmV0dXJuZWQgaXMgZXF1YWwgdG8gdGhlIHBvbGljeSBzZXQgaW4KKyAgICAgICAgZGlkR2V0VXNl
ckhUVFBDb29raWVBY2NlcHRQb2xpY3ksIGFuZCB0aGVuIHJlc3RvcmUgdGhlIHVzZXIncyBwb2xp
Y3kuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkaWRHZXRVc2VySFRUUENvb2tpZUFjY2VwdFBv
bGljeSk6CisgICAgICAgIFNldCB0aGUgcG9saWN5IHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgdGhh
biB0aGUgdXNlcidzIHBvbGljeSBhbmQgZ2V0IHRoZSBwb2xpY3kgYWdhaW4uCisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUpOgorICAgICAgICBHZXQgdGhlIHVz
ZXIncyBwb2xpY3kgc28gdGhhdCBpdCBjYW4gYmUgcmVzdG9yZWQgYXQgdGhlIGVuZCBvZiB0aGUg
dGVzdC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICBMb2FkIGFib3V0
OmJsYW5rIHNvIHRoYXQgdGhlIFdlYiBQcm9jZXNzIGdldHMgaW5zdGF0aWF0ZWQgKG5lZWRlZCB0
byBnZXQgdGhlCisgICAgICAgIENvb2tpZU1hbmFnZXIpLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS93aW4vVGVzdFdlYktpdEFQSS52Y3Byb2o6CisgICAgICAgIEFkZCBDb29raWVNYW5hZ2Vy
LmNwcC4KKwogMjAxMS0wMy0yNCAgS2V2aW4gT2xsaXZpZXIgIDxrZXZpbm9AdGhlb2xsaXZpZXJz
LmNvbT4KIAogICAgICAgICBbd3hdIEZpeCB0aGUgYnVpbGQgc28gdGhhdCBnY2MtNC4xIGFuZCB1
cCBjYW4gYmUgdXNlZCB0byBidWlsZCBvbiBTbm93TGVvcGFyZC4KSW5kZXg6IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiA4MTk2MSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01OCw2
ICs1OCw3IEBACiAJCUMwQkQ2NjlEMTMxRDNDRjcwMEUxOEYyQSAvKiBSZXNwb25zaXZlbmVzc1Rp
bWVyRG9lc250RmlyZUVhcmx5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEMwQkQ2NjlDMTMxRDNDRjcwMEUxOEYyQSAvKiBSZXNwb25zaXZlbmVzc1Rp
bWVyRG9lc250RmlyZUVhcmx5LmNwcCAqLzsgfTsKIAkJQzBCRDY2OUYxMzFEM0NGRjAwRTE4RjJB
IC8qIFJlc3BvbnNpdmVuZXNzVGltZXJEb2VzbnRGaXJlRWFybHlfQnVuZGxlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwQkQ2NjlFMTMxRDNDRkYw
MEUxOEYyQSAvKiBSZXNwb25zaXZlbmVzc1RpbWVyRG9lc250RmlyZUVhcmx5X0J1bmRsZS5jcHAg
Ki87IH07CiAJCUY2QzU5RTM4MTMyQUM1RTAwMDE3NkMwOSAvKiBTZW5kaW5nTWVzc2FnZXNUb1Ro
ZVdlYlByb2Nlc3NCZWZvcmVJdElzVmFsaWQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjZDNTlFMzcxMzJBQzVERjAwMTc2QzA5IC8qIFNlbmRpbmdN
ZXNzYWdlc1RvVGhlV2ViUHJvY2Vzc0JlZm9yZUl0SXNWYWxpZC5jcHAgKi87IH07CisJCUY2RjNG
MjkxMTMzNDJGRUIwMEE2QkYxOSAvKiBDb29raWVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2RjNGMjkwMTMzNDJGRUIwMEE2QkYxOSAv
KiBDb29raWVNYW5hZ2VyLmNwcCAqLzsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAq
LwogCiAvKiBCZWdpbiBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLwpAQCAtMTYxLDYg
KzE2Miw3IEBACiAJCUMwQkQ2NjlDMTMxRDNDRjcwMEUxOEYyQSAvKiBSZXNwb25zaXZlbmVzc1Rp
bWVyRG9lc250RmlyZUVhcmx5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlc3BvbnNpdmVuZXNzVGltZXJEb2VzbnRGaXJlRWFybHkuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDMEJENjY5RTEzMUQzQ0ZGMDBFMThGMkEgLyogUmVzcG9uc2l2ZW5l
c3NUaW1lckRvZXNudEZpcmVFYXJseV9CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseV9CdW5kbGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNkM1OUUzNzEzMkFDNURGMDAxNzZD
MDkgLyogU2VuZGluZ01lc3NhZ2VzVG9UaGVXZWJQcm9jZXNzQmVmb3JlSXRJc1ZhbGlkLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlbmRpbmdNZXNzYWdlc1RvVGhl
V2ViUHJvY2Vzc0JlZm9yZUl0SXNWYWxpZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY2RjNGMjkwMTMzNDJGRUIwMEE2QkYxOSAvKiBDb29raWVNYW5hZ2VyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvb2tpZU1hbmFnZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwog
CiAvKiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCkBAIC0yNjgsNiAr
MjcwLDcgQEAKIAkJCQlCQzI0NkQ4QzEzMkYxMTVBMDBCNTZEN0MgLyogQWJvdXRCbGFua0xvYWQu
Y3BwICovLAogCQkJCUJDMjQ2RDk3MTMyRjFGRTEwMEI1NkQ3QyAvKiBDYW5IYW5kbGVSZXF1ZXN0
X0J1bmRsZS5jcHAgKi8sCiAJCQkJQkMyNDZEOTgxMzJGMUZFMTAwQjU2RDdDIC8qIENhbkhhbmRs
ZVJlcXVlc3QuY3BwICovLAorCQkJCUY2RjNGMjkwMTMzNDJGRUIwMEE2QkYxOSAvKiBDb29raWVN
YW5hZ2VyLmNwcCAqLywKIAkJCQlCQ0I2ODAzRjEyNkZCRkUxMDA2NDJBNjEgLyogRG9jdW1lbnRT
dGFydFVzZXJTY3JpcHRBbGVydENyYXNoLmNwcCAqLywKIAkJCQlCQ0I2ODA0MTEyNkZCRkYxMDA2
NDJBNjEgLyogRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoX0J1bmRsZS5jcHAgKi8s
CiAJCQkJMUE1RkVGREMxMjcwRTJBMzAwMEUyOTIxIC8qIEV2YWx1YXRlSmF2YVNjcmlwdC5jcHAg
Ki8sCkBAIC00NDQsNiArNDQ3LDcgQEAKIAkJCQlGNkM1OUUzODEzMkFDNUUwMDAxNzZDMDkgLyog
U2VuZGluZ01lc3NhZ2VzVG9UaGVXZWJQcm9jZXNzQmVmb3JlSXRJc1ZhbGlkLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDMjQ2RDhFMTMyRjExNUEwMEI1NkQ3QyAvKiBBYm91dEJsYW5rTG9hZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzI0NkQ5QTEzMkYxRkUxMDBCNTZEN0MgLyogQ2FuSGFu
ZGxlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNkYzRjI5MTEzMzQyRkVCMDBBNkJG
MTkgLyogQ29va2llTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Db29raWVNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvQ29va2llTWFuYWdlci5jcHAJKHJldmlz
aW9uIDApCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvQ29va2llTWFuYWdl
ci5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiVGVzdC5oIgorCisjaW5jbHVkZSAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJQ
bGF0Zm9ybVdlYlZpZXcuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQ29va2llTWFuYWdlci5oPgor
I2luY2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dlYktp
dDIuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitzdGF0aWMgYm9vbCB0ZXN0RG9u
ZTsKKy8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBwb2xpY3kgb24gdGhlIG1hY2hpbmUgcnVubmluZyB0
aGUgdGVzdCBpcyBub3QgY2hhbmdlZCBhZnRlciBydW5uaW5nIHRoZSB0ZXN0Lgorc3RhdGljIFdL
SFRUUENvb2tpZUFjY2VwdFBvbGljeSB1c2VyUG9saWN5Oworc3RhdGljIFdLSFRUUENvb2tpZUFj
Y2VwdFBvbGljeSB0ZXN0UG9saWN5Oworc3RhdGljIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4g
d2tDb250ZXh0OworCitzdGF0aWMgdm9pZCBkaWRHZXRUZXN0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eShXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCBXS0Vycm9yUmVmLCB2b2lkKiBjb250
ZXh0KQoreworICAgIFRFU1RfQVNTRVJUKGNvbnRleHQgPT0gcmVpbnRlcnByZXRfY2FzdDx2b2lk
Kj4oMHgxMjM0NTc4KSk7CisgICAgVEVTVF9BU1NFUlQocG9saWN5ID09IHRlc3RQb2xpY3kpOwor
ICAgIFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyID0gV0tDb250ZXh0R2V0Q29va2ll
TWFuYWdlcih3a0NvbnRleHQuZ2V0KCkpOworICAgIFdLQ29va2llTWFuYWdlclNldEhUVFBDb29r
aWVBY2NlcHRQb2xpY3koY29va2llTWFuYWdlciwgdXNlclBvbGljeSk7CisKKyAgICB0ZXN0RG9u
ZSA9IHRydWU7Cit9CisKK3N0YXRpYyB2b2lkIGRpZEdldFVzZXJIVFRQQ29va2llQWNjZXB0UG9s
aWN5KFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIFdLRXJyb3JSZWYsIHZvaWQqIGNv
bnRleHQpCit7CisgICAgVEVTVF9BU1NFUlQoY29udGV4dCA9PSByZWludGVycHJldF9jYXN0PHZv
aWQqPigweDEyMzQ1NzgpKTsKKworICAgIHVzZXJQb2xpY3kgPSBwb2xpY3k7CisKKyAgICAvLyBN
YWtlIHN1cmUgdG8gY2hvb3NlIGEgcG9saWN5IGRpZmZlcmVudCBmcm9tIHRoZSBwb2xpY3kgdGhl
IHVzZXIgY3VycmVudGx5IGhhcyBzZXQuCisgICAgdGVzdFBvbGljeSA9ICh1c2VyUG9saWN5ICsg
MSkgJSAzOworICAgIFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyID0gV0tDb250ZXh0
R2V0Q29va2llTWFuYWdlcih3a0NvbnRleHQuZ2V0KCkpOworICAgIFdLQ29va2llTWFuYWdlclNl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3koY29va2llTWFuYWdlciwgdGVzdFBvbGljeSk7CisgICAg
V0tDb29raWVNYW5hZ2VyR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShjb29raWVNYW5hZ2VyLCBy
ZWludGVycHJldF9jYXN0PHZvaWQqPigweDEyMzQ1NzgpLCBkaWRHZXRUZXN0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeSk7Cit9CisKK3N0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1Bh
Z2VSZWYsIFdLRnJhbWVSZWYsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCopCit7CisgICAgV0tDb29r
aWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIgPSBXS0NvbnRleHRHZXRDb29raWVNYW5hZ2VyKHdr
Q29udGV4dC5nZXQoKSk7CisgICAgV0tDb29raWVNYW5hZ2VyR2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeShjb29raWVNYW5hZ2VyLCByZWludGVycHJldF9jYXN0PHZvaWQqPigweDEyMzQ1NzgpLCBk
aWRHZXRVc2VySFRUUENvb2tpZUFjY2VwdFBvbGljeSk7Cit9CisKK1RFU1QoV2ViS2l0MiwgQ29v
a2llTWFuYWdlcikKK3sKKyAgICB3a0NvbnRleHQuYWRvcHQoV0tDb250ZXh0Q3JlYXRlKCkpOwor
ICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KHdrQ29udGV4dC5nZXQoKSk7CisKKyAgICBXS1Bh
Z2VMb2FkZXJDbGllbnQgbG9hZGVyQ2xpZW50OworICAgIG1lbXNldCgmbG9hZGVyQ2xpZW50LCAw
LCBzaXplb2YobG9hZGVyQ2xpZW50KSk7CisKKyAgICBsb2FkZXJDbGllbnQudmVyc2lvbiA9IDA7
CisgICAgbG9hZGVyQ2xpZW50LmRpZEZpbmlzaExvYWRGb3JGcmFtZSA9IGRpZEZpbmlzaExvYWRG
b3JGcmFtZTsKKyAgICBXS1BhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAm
bG9hZGVyQ2xpZW50KTsKKworICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIFV0aWw6
OmFkb3B0V0soV0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmcoImFib3V0OmJsYW5rIikpLmdldCgp
KTsKKworICAgIFV0aWw6OnJ1bigmdGVzdERvbmUpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL3dpbi9UZXN0V2ViS2l0QVBJLnZj
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL3dpbi9UZXN0V2ViS2l0QVBJ
LnZjcHJvagkocmV2aXNpb24gODE5NjEpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL3dpbi9UZXN0
V2ViS2l0QVBJLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtNDIwLDYgKzQyMCwxMCBAQAogCQkJ
CQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVGVzdHNc
V2ViS2l0MlxDb29raWVNYW5hZ2VyLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8Rmls
ZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFRlc3RzXFdlYktpdDJcRG9jdW1lbnRTdGFydFVzZXJT
Y3JpcHRBbGVydENyYXNoLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86978</attachid>
            <date>2011-03-25 13:49:06 -0700</date>
            <delta_ts>2011-04-14 09:24:13 -0700</delta_ts>
            <desc>Patch (Part 2) - Make it possible to specify the initial policy on Windows</desc>
            <filename>persistCookiePolicyOnWindowsOpensourceTake2.patch</filename>
            <type>text/plain</type>
            <size>8301</size>
            <attacher name="Jessie Berlin">jberlin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxOTg1KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMDMtMjUgIEplc3NpZSBC
ZXJsaW4gIDxqYmVybGluQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWJLaXQyOiBOZWVkIHRvIGJlIGFibGUgdG8gc2V0IGFuZCBn
ZXQgdGhlIENvb2tpZSBTdG9yYWdlIFBvbGljeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTUwNzgwCisKKyAgICAgICAgUGFydCAyOiBNYWtlIGl0IHBv
c3NpYmxlIHRvIHNldCB0aGUgaW5pdGlhbCBwb2xpY3kgb24gV2luZG93cy4KKworICAgICAgICBJ
biBXZWJLaXQxLCB3ZSByZWFkIHRoZSBpbml0aWFsIHBvbGljeSBvbiBXaW5kb3dzIGZyb20gV2Vi
UHJlZmVyZW5jZXMgYXQgc3RhcnR1cC4KKyAgICAgICAgU2luY2UgdGhhdCBpcyBub3QgcG9zc2li
bGUgaW4gV2ViS2l0MiwgbWFrZSBpdCBwb3NzaWJsZSB0byBzcGVjaWZ5IHRoZSBpbml0aWFsIHBv
bGljeQorICAgICAgICBhcyBhIGNyZWF0aW9uIHBhcmFtZXRlciB0byB0aGUgV2ViUHJvY2Vzcy4K
KworICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToKKyAg
ICAgICAgRW5jb2RlIGluaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5IG9uIFdpbmRvd3MuIAor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgor
ICAgICAgICBEZWNvZGUgaW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3kgb24gV2luZG93cy4K
KyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL3dpbi9XS0NvbnRleHRQcml2YXRlV2luLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL3dpbi9XS0NvbnRleHRXaW4uY3BwOgorICAgICAgICAoV0tDb250
ZXh0U2V0SW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAgICBDYWxsIHRocm91
Z2ggdG8gV2ViQ29udGV4dC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6V2ViQ29udGV4dCk6CisgICAgICAgIEdpdmUg
dGhlIGluaXRpYWwgcG9saWN5IGEgZGVmYXVsdCBvZiAiQWx3YXlzIi4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQ29udGV4dC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpzZXRJbml0
aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgICogVUlQcm9jZXNzL3dpbi9XZWJD
b250ZXh0V2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0
aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIFNldCB0aGUgaW5pdGlhbCBwb2xpY3kgb24gV2lu
ZG93cy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmg6
CisgICAgICAgIE1ha2Ugc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwdWJsaWMgc28gdGhhdCBp
dCBjYW4gYmUgY2FsbGVkIGZyb20gV2ViUHJvY2Vzc1dpbi4KKworICAgICAgICAqIFdlYlByb2Nl
c3Mvd2luL1dlYlByb2Nlc3NXaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpw
bGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgVGVsbCB0aGUgV2ViQ29va2ll
TWFuYWdlciBhYm91dCB0aGUgaW5pdGlhbCBwb2xpY3kuCisKIDIwMTEtMDMtMjUgIEplc3NpZSBC
ZXJsaW4gIDxqYmVybGluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2Vp
bmlnLgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gODE5ODApCisrKyBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTgxLDYgKzgxLDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNv
ZAogICAgIGVuY29kZXItPmVuY29kZShjZlVSTENhY2hlUGF0aCk7CiAgICAgZW5jb2Rlci0+ZW5j
b2RlKGNmVVJMQ2FjaGVEaXNrQ2FwYWNpdHkpOwogICAgIGVuY29kZXItPmVuY29kZShjZlVSTENh
Y2hlTWVtb3J5Q2FwYWNpdHkpOworICAgIGVuY29kZXItPmVuY29kZShpbml0aWFsSFRUUENvb2tp
ZUFjY2VwdFBvbGljeSk7CiAjZW5kaWYKIH0KIApAQCAtMTUxLDYgKzE1Miw4IEBAIGJvb2wgV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2QKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMuY2ZVUkxDYWNoZU1lbW9yeUNhcGFj
aXR5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBh
cmFtZXRlcnMuaW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3kpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CiAjZW5kaWYKIAogICAgIHJldHVybiB0cnVlOwpJbmRleDogU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCShyZXZpc2lv
biA4MTk4MCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMCw2ICsxMDAsOCBAQCBzdHJ1Y3QgV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgdWludDY0X3QgY2ZVUkxDYWNoZURpc2tDYXBh
Y2l0eTsKICAgICB1aW50NjRfdCBjZlVSTENhY2hlTWVtb3J5Q2FwYWNpdHk7CiAKKyAgICB1aW50
MzJfdCBpbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeTsKKwogICAgIGJvb2wgc2hvdWxkUGFp
bnROYXRpdmVDb250cm9sczsKICNlbmRpZgogfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ29udGV4dC5jcHAJKHJldmlzaW9uIDgxOTgwKQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjYsNiArMTI2LDcgQEAg
V2ViQ29udGV4dDo6V2ViQ29udGV4dChQcm9jZXNzTW9kZWwgcHJvYwogICAgICwgbV9yZXNvdXJj
ZUNhY2hlTWFuYWdlclByb3h5KFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0
aGlzKSkKICNpZiBQTEFURk9STShXSU4pCiAgICAgLCBtX3Nob3VsZFBhaW50TmF0aXZlQ29udHJv
bHModHJ1ZSkKKyAgICAsIG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tp
ZUFjY2VwdFBvbGljeUFsd2F5cykKICNlbmRpZgogewogI2lmbmRlZiBOREVCVUcKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAkocmV2aXNpb24gODE5ODApCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzAs
NiArMTMwLDggQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHZvaWQgc2V0U2hv
dWxkUGFpbnROYXRpdmVDb250cm9scyhib29sKTsKKworICAgIHZvaWQgc2V0SW5pdGlhbEhUVFBD
b29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpIHsgbV9pbml0
aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeSA9IHBvbGljeTsgfQogI2VuZGlmCiAKICAgICB2b2lk
IHNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eShib29sKTsKQEAgLTI1MSw2ICsyNTMsNyBAQCBwcml2
YXRlOgogCiAjaWYgUExBVEZPUk0oV0lOKQogICAgIGJvb2wgbV9zaG91bGRQYWludE5hdGl2ZUNv
bnRyb2xzOworICAgIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgbV9pbml0aWFsSFRUUENvb2tpZUFj
Y2VwdFBvbGljeTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL3dpbi9XS0NvbnRleHRQcml2YXRlV2luLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dpbi9XS0NvbnRleHRQcml2YXRl
V2luLmgJKHJldmlzaW9uIDgxOTgwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L3dpbi9XS0NvbnRleHRQcml2YXRlV2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0Nv
bnRleHQuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLQ29va2llTWFuYWdlci5oPgogCiAjaWZuZGVm
IF9fY3BsdXNwbHVzCiAjaW5jbHVkZSA8c3RkYm9vbC5oPgpAQCAtNDAsNiArNDEsOSBAQCBleHRl
cm4gIkMiIHsKIC8vIERlZmF1bHRzIHRvIHRydWUuCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRT
ZXRTaG91bGRQYWludE5hdGl2ZUNvbnRyb2xzKFdLQ29udGV4dFJlZiwgYm9vbCk7CiAKKy8vIERl
ZmF1bHRzIHRvIFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5cy4KK1dLX0VYUE9SVCB2b2lk
IFdLQ29udGV4dFNldEluaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLQ29udGV4dFJlZiwg
V0tIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5k
aWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93aW4vV0tDb250ZXh0V2lu
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd2luL1dL
Q29udGV4dFdpbi5jcHAJKHJldmlzaW9uIDgxOTgwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL3dpbi9XS0NvbnRleHRXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwzICsz
Niw4IEBAIHZvaWQgV0tDb250ZXh0U2V0U2hvdWxkUGFpbnROYXRpdmVDb250cm8KIHsKICAgICB0
b0ltcGwoY29udGV4dFJlZiktPnNldFNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMoYik7CiB9CisK
K3ZvaWQgV0tDb250ZXh0U2V0SW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tDb250ZXh0
UmVmIGNvbnRleHRSZWYsIFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCit7CisgICAg
dG9JbXBsKGNvbnRleHRSZWYpLT5zZXRJbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeSh0b0hU
VFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KSk7Cit9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3Mvd2luL1dlYkNvbnRleHRXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy93aW4vV2ViQ29udGV4dFdpbi5jcHAJKHJldmlzaW9uIDgxOTgwKQorKysg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJDb250ZXh0V2luLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNzMsNiArNzMsOCBAQCB2b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6
ZVdlYlByCiAgICAgcGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyID0gU3RyaW5n
KHJlaW50ZXJwcmV0X2Nhc3Q8Q0ZTdHJpbmdSZWY+KENGQnVuZGxlR2V0VmFsdWVGb3JJbmZvRGlj
dGlvbmFyeUtleShDRkJ1bmRsZUdldE1haW5CdW5kbGUoKSwga0NGQnVuZGxlSWRlbnRpZmllcktl
eSkpKTsKICNlbmRpZiAvLyBVU0UoQ0ZVUkxTVE9SQUdFU0VTU0lPTlMpCiAKKyAgICBwYXJhbWV0
ZXJzLmluaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5ID0gbV9pbml0aWFsSFRUUENvb2tpZUFj
Y2VwdFBvbGljeTsKKwogI2VuZGlmIC8vIFVTRShDRk5FVFdPUkspCiB9CiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIu
aAkocmV2aXNpb24gODE5ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMv
V2ViQ29va2llTWFuYWdlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0Nyw4IEBAIHB1Ymxp
YzoKICAgICAKICAgICB2b2lkIGRpc3BhdGNoQ29va2llc0RpZENoYW5nZSgpOwogCisgICAgdm9p
ZCBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOworCiBw
cml2YXRlOgogICAgIFdlYkNvb2tpZU1hbmFnZXIoKTsKICAgICAKQEAgLTU0LDcgKzU2LDYgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShjb25zdCBTdHJpbmcm
KTsKICAgICB2b2lkIGRlbGV0ZUFsbENvb2tpZXMoKTsKIAotICAgIHZvaWQgc2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKICAgICB2b2lkIHBsYXRmb3Jt
U2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKICAgICB2
b2lkIGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kodWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAg
SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3ko
KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NXaW4uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NX
aW4uY3BwCShyZXZpc2lvbiA4MTk4MCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd2lu
L1dlYlByb2Nlc3NXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogCisjaW5jbHVkZSAiV2Vi
Q29va2llTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL01l
bW9yeUNhY2hlLmg+CkBAIC0xMjEsNiArMTIyLDggQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9y
bUluaXRpYWxpemVXZWJQcgogICAgIFJldGFpblB0cjxDRlVSTENhY2hlUmVmPiB1aVByb2Nlc3ND
YWNoZShBZG9wdENGLCBDRlVSTENhY2hlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGNhY2hl
TWVtb3J5Q2FwYWNpdHksIGNhY2hlRGlza0NhcGFjaXR5LCBjYWNoZVBhdGguZ2V0KCkpKTsKICAg
ICBDRlVSTENhY2hlU2V0U2hhcmVkVVJMQ2FjaGUodWlQcm9jZXNzQ2FjaGUuZ2V0KCkpOwogI2Vu
ZGlmCisKKyAgICBXZWJDb29raWVNYW5hZ2VyOjpzaGFyZWQoKS5zZXRIVFRQQ29va2llQWNjZXB0
UG9saWN5KHBhcmFtZXRlcnMuaW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwogfQogCiB2
b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtVGVybWluYXRlKCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>