<?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>68679</bug_id>
          
          <creation_ts>2011-09-22 23:29:31 -0700</creation_ts>
          <short_desc>REGRESSION(87010): elements in ECMA-cloud neither filled nor blurred - crash on Chromium</short_desc>
          <delta_ts>2011-09-29 00:22:26 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://ejohn.org/files/ecma-cloud.svg</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>61183</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>472089</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-09-22 23:29:31 -0700</bug_when>
    <thetext>The ECMA-cloud is not filled with gradients, filters don&apos;t get applied. Have not tried to reduce the problem right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472090</commentid>
    <comment_count>1</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-09-22 23:33:21 -0700</bug_when>
    <thetext>Still does not work after disabling filters (removed from document). Still see a crash on Chromium but not at webkit nightly (even no assertions). All shapes remain unfilled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472267</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-23 09:03:31 -0700</bug_when>
    <thetext>A quick bisection says that this regression occurred in http://trac.webkit.org/changeset/87010/trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472268</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-23 09:04:00 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; A quick bisection says that this regression occurred in http://trac.webkit.org/changeset/87010/trunk

The it-doesn&apos;t-look-right one, not the crash, since that doesn&apos;t happen in Safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472270</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-09-23 09:07:01 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; A quick bisection says that this regression occurred in http://trac.webkit.org/changeset/87010/trunk
&gt; 
&gt; The it-doesn&apos;t-look-right one, not the crash, since that doesn&apos;t happen in Safari.

I assume that you checked it with nighties? Because right now I don&apos;t see a reason why this could be caused by this patch. There are no dynamic updates that could call svgAttrChanged IIRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472284</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-23 09:46:45 -0700</bug_when>
    <thetext>It seems that SVGURIReference::addSupportedAttributes (incorrectly) assumes that the prefix of &quot;href&quot; will always be &quot;xlink&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472289</commentid>
    <comment_count>6</comment_count>
      <attachid>108485</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-09-23 09:51:03 -0700</bug_when>
    <thetext>Created attachment 108485
Reference by xlink:href fails if xlink ns was set to another name

If another name than &apos;xlink&apos; was chosen for shorthand of Xlink namespace (e.g. xmlns:xl=&quot;http://www.w3.org/1999/xlink&quot;  ) the attribute gets not assigned to the xlink namespace. This is the case for ECMA-cloud. This is a simple test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472305</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-23 10:18:06 -0700</bug_when>
    <thetext>Also, your testcase still crashes Chrome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472738</commentid>
    <comment_count>8</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-09-24 01:02:35 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; It seems that SVGURIReference::addSupportedAttributes (incorrectly) assumes that the prefix of &quot;href&quot; will always be &quot;xlink&quot;.

Ouch, yes my patch assumed that! Sorry for not thinking about that further :(
I have no time this weekend and next week to look into it though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474409</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-27 17:59:21 -0700</bug_when>
    <thetext>Is there any reason we actually care about the prefix? By the time it gets to isSupportedAttribute, it&apos;s a QualifiedName, which is a triple{prefix, name, namespace}. It seems to me that we only care about the name and the namespace; something earlier than us has already taken care of mapping the prefix to the namespace.

As a test, I did two things:

Change SVGURIReference::addSupportedAttributes to just:

&gt;    void SVGURIReference::addSupportedAttributes(HashSet&lt;QualifiedName&gt;&amp; supportedAttributes)
&gt;    {
&gt;      supportedAttributes.add(XLinkNames::hrefAttr);
&gt;    }

In SVGGradientElement::isSupportedAttribute (because the element with the xlink on it in our example here is a gradient):

&gt;    QualifiedName attrNameWithoutPrefix(attrName);
&gt;    attrNameWithoutPrefix.setPrefix(nullAtom);

And then supportedAttributes.contains(attrNameWithoutPrefix).

Effectively, only having the namespaced (non-prefixed) version of the attribute name in supportedAttributes, and dropping the prefix from the attribute before checking it. This fixes our bug, and I double checked to make sure that it is still matching on the namespaces (it is).

So that might be a valid fix.

Is there an earlier place where we could strip the prefix instead of touching every single isSupportedAttribute? I haven&apos;t decided yet.

I don&apos;t see why we should care about the prefix at all. Just the namespace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474413</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-27 18:06:13 -0700</bug_when>
    <thetext>I&apos;d like to hear from an XML person on this actually, does anybody know who one might be?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474867</commentid>
    <comment_count>11</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-09-28 11:34:21 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Is there any reason we actually care about the prefix? By the time it gets to isSupportedAttribute, it&apos;s a QualifiedName, which is a triple{prefix, name, namespace}. It seems to me that we only care about the name and the namespace; something earlier than us has already taken care of mapping the prefix to the namespace.
No, we don&apos;t care for the prefix - it&apos;s just buggy. The NS matters, the prefix is user defined and not relevant for us.

&gt; Change SVGURIReference::addSupportedAttributes to just:
&gt; 
&gt; &gt;    void SVGURIReference::addSupportedAttributes(HashSet&lt;QualifiedName&gt;&amp; supportedAttributes)
&gt; &gt;    {
&gt; &gt;      supportedAttributes.add(XLinkNames::hrefAttr);
&gt; &gt;    }

That just removes the xlink prefix, that I manually added before there, right? If so, this is the right change.

&gt; In SVGGradientElement::isSupportedAttribute (because the element with the xlink on it in our example here is a gradient):
&gt; 
&gt; &gt;    QualifiedName attrNameWithoutPrefix(attrName);
&gt; &gt;    attrNameWithoutPrefix.setPrefix(nullAtom);
&gt; 
&gt; And then supportedAttributes.contains(attrNameWithoutPrefix).
&gt; 
&gt; Effectively, only having the namespaced (non-prefixed) version of the attribute name in supportedAttributes, and dropping the prefix from the attribute before checking it. This fixes our bug, and I double checked to make sure that it is still matching on the namespaces (it is).
&gt; 
&gt; So that might be a valid fix.

I remember I had it designed this way at some point, but something wasn&apos;t working. Maybe we can override contains() in a way that it automatically matches without comparing the prefix.

For that we&apos;d need to add some magic to supply a custom HashSet comparision function - there are existing examples how to do that, that compares QNames without checking for prefix equality.

    bool matches(const QualifiedName&amp; other) const { return m_impl == other.m_impl || (localName() == other.localName() &amp;&amp; namespaceURI() == other.namespaceURI()); }

The QName::matches function is specifically designed for this.
To summarize:
* Your SVGURIReference::isSupportedAttr change is correct and should be done
* We need a customizable contains() implementation, that compares QNames by calling matches().

&gt; Is there an earlier place where we could strip the prefix instead of touching every single isSupportedAttribute? I haven&apos;t decided yet.
&gt; 
&gt; I don&apos;t see why we should care about the prefix at all. Just the namespace.
Right.

Hope that works?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474995</commentid>
    <comment_count>12</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-28 13:57:03 -0700</bug_when>
    <thetext>I&apos;ve found (I think!) the requisite magic. I&apos;ll take this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475020</commentid>
    <comment_count>13</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-28 14:28:35 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; I&apos;ve found (I think!) the requisite magic. I&apos;ll take this one.

Actually, your suggestion isn&apos;t quite sufficient. We&apos;re going to *have* to strip the prefixes out somewhere because the hash function takes them into account, so if we don&apos;t strip them out, we never even *get* to the point of comparing them (be it with equals or with matches, we don&apos;t even get that far) because the hashes don&apos;t match.

I&apos;ll have a simple patch to do this making use of HashTranslators in a little bit (I&apos;m stripping prefix just before we hash it, and *only* for the hashed copy, and using matches() to match).

Niko, if you can remember/look up what:

&gt; I remember I had it designed this way at some point, but something wasn&apos;t working.

means, I&apos;d love to know!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475091</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2011-09-28 17:04:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/10204649&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475110</commentid>
    <comment_count>15</comment_count>
      <attachid>109101</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-28 17:22:11 -0700</bug_when>
    <thetext>Created attachment 109101
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475113</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-28 17:25:14 -0700</bug_when>
    <thetext>Attachment 109101 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/svg/...&quot; exit_code: 1

Source/WebCore/svg/SVGElement.h:134:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 60 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475115</commentid>
    <comment_count>17</comment_count>
      <attachid>109102</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-28 17:27:03 -0700</bug_when>
    <thetext>Created attachment 109102
patch + style fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475245</commentid>
    <comment_count>18</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-09-28 23:13:57 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; I&apos;ve found (I think!) the requisite magic. I&apos;ll take this one.
&gt; 
&gt; Actually, your suggestion isn&apos;t quite sufficient. We&apos;re going to *have* to strip the prefixes out somewhere because the hash function takes them into account, so if we don&apos;t strip them out, we never even *get* to the point of comparing them (be it with equals or with matches, we don&apos;t even get that far) because the hashes don&apos;t match.
Oops, I think I was a bit unspecific in my last mail:
&quot;* We need a customizable contains() implementation, that compares QNames by calling matches().&quot;

contains() isn&apos;t customizable, I meant the hashing needs to be customized.
But anyhow, you&apos;ve got what I meant :-)
 
&gt; I&apos;ll have a simple patch to do this making use of HashTranslators in a little bit (I&apos;m stripping prefix just before we hash it, and *only* for the hashed copy, and using matches() to match).
Excellent, will review now.

&gt; 
&gt; Niko, if you can remember/look up what:
&gt; 
&gt; &gt; I remember I had it designed this way at some point, but something wasn&apos;t working.
&gt; 
&gt; means, I&apos;d love to know!!
Well, if your patch passes everything there&apos;s no remaining problem :-)
It&apos;s too long ago, I can&apos;t remember exactly which testcase was broken, but it was definately in svg/custom, so if your pixel tests all pass, you&apos;re done!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475247</commentid>
    <comment_count>19</comment_count>
      <attachid>109102</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-09-28 23:15:28 -0700</bug_when>
    <thetext>Comment on attachment 109102
patch + style fix

Superb, perfect catch! r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475282</commentid>
    <comment_count>20</comment_count>
      <attachid>109102</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-29 00:22:20 -0700</bug_when>
    <thetext>Comment on attachment 109102
patch + style fix

Clearing flags on attachment: 109102

Committed r96307: &lt;http://trac.webkit.org/changeset/96307&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475283</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-29 00:22:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>108485</attachid>
            <date>2011-09-23 09:51:03 -0700</date>
            <delta_ts>2011-09-23 09:51:03 -0700</delta_ts>
            <desc>Reference by xlink:href fails if xlink ns was set to another name</desc>
            <filename>xlink-test.svg</filename>
            <type>image/svg+xml</type>
            <size>383</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KPGxpbmVhckdyYWRpZW50IGlkPSJncmFkaWVudDIiPgog
ICA8c3RvcCBzdG9wLWNvbG9yPSJncmVlbiIgc3RvcC1vZmZzZXQ9IjAiLz4KICAgPHN0b3Agc3Rv
cC1jb2xvcj0iZ3JlZW4iIHN0b3Atb2Zmc2V0PSIxIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxsaW5l
YXJHcmFkaWVudCB4bDpocmVmPSIjZ3JhZGllbnQyIiBpZD0iZ3JhZGllbnQxIi8+CjxyZWN0IGZp
bGw9InJlZCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiLz4KPHJlY3QgZmlsbD0idXJsKCNncmFk
aWVudDEpIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIvPgo8L3N2Zz4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109101</attachid>
            <date>2011-09-28 17:22:11 -0700</date>
            <delta_ts>2011-09-28 17:27:03 -0700</delta_ts>
            <desc>patch</desc>
            <filename>68679.patch</filename>
            <type>text/plain</type>
            <size>49654</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4MmJiODRiLi44MGNlZDA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDkt
MjggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVH
UkVTU0lPTig4NzAxMCk6IGVsZW1lbnRzIGluIEVDTUEtY2xvdWQgbmVpdGhlciBmaWxsZWQgbm9y
IGJsdXJyZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY4Njc5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDIwNDY0OT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB0ZXN0IGVuc3VyaW5nIHRo
YXQgdXNpbmcgeGxpbms6aHJlZiB3aXRoIGEgZGlmZmVyZW50IHByZWZpeCAoaS5lLiB4bDpocmVm
KQorICAgICAgICB3b3JrcyBjb3JyZWN0bHkuCisKKyAgICAgICAgKiBzdmcvY3VzdG9tL3hsaW5r
LWN1c3RvbS1uYW1lc3BhY2UtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3Vz
dG9tL3hsaW5rLWN1c3RvbS1uYW1lc3BhY2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBzdmcvY3VzdG9tL3hsaW5rLWN1c3RvbS1uYW1lc3BhY2Uuc3ZnOiBBZGRlZC4KKwogMjAxMS0w
OS0yOCAgS2VuamkgSW1hc2FraSAgPGltYXNha2lAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtD
aHJvbWl1bV0gcmVtb3ZlIGEgcGFzc2luZyB0ZXN0IGZyb20gdGhlIHRlc3QgZXhwZWN0YXRpb24g
ZmlsZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20veGxpbmstY3VzdG9tLW5h
bWVzcGFjZS1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3hsaW5rLWN1c3Rv
bS1uYW1lc3BhY2UtZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4Njc2YzllNjgyNTY2YTdmNDZi
ZTY3MWI3M2QwY2Q2ZDg1NjZkZjMKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDExMjc2CnpjbWVB
U0BOPyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTFCJVFsWWJwUnpua0I5Z0NDTTQ3JD1TdUZ4
ZVVnTQp6aUgyczAyOWAhP3NZYSRJaEd0MHkjK0p6YCM7Sil3NXlSQlA2IVk4RDxBQTJmV2paP3Rj
c2VeUDFRZ3xgVyMqKFoKekZqTyRNaFRQQS05M2ItVlJfZmRoNTQpfD4xdiV8OUNnIUNDbXBJU2Ft
TDB6OVl9Nn5XP1RRfD1tKnZMSEk7UWZyCnpaVWcoeD90SDdHPHNhR1llek5vMll8Z0txI0N1RjZA
eUQ3REM3KjlmbzlFM29AbF85SS11WnBee2gja0YpdF42IQp6VGt4fG0+YXZKRnplczRYfEl0SCNq
eXdeJHxBe2U5IyMjR01oSHJQOW4zdE5uMU9NZXNtRzN1eT05ND4/UX1RblYKentfMjBwUzclTS01
JlImZHV5MmEjNXY3TmIzbz5KX2xuNmgjKjc8Jn1xM05Oc0tFKUJzU3Zjaj5FJUs4YUFOS1NyCnpQ
ZklmfmIocUNAaTJiT09tRz0kQGl5NF5AS0oocjwqQ19IdFUyV3dneT42Uzt1MGlAd1EoUU9rZUVU
M0AtMjVxaQp6IS1ePntYUm0hTygzPzk7KChodFQqRkFhNStKY15FM3w5fUAkNGwmVyslZE54IXRD
KjQoPmtaS0QoZUsqX0M5fUMKemt+IW1UPmE2TEpubkoyRkR0blNiKSowdHlLSTNOWW9ifk1UK2I7
bz1IcTFCS1ooPHp6YFNJSTtzVnVKemtBRDU7Cno/ZT1CWS1zYHN+UEcpfj5ZUFZlVFREYC0rejJD
blVidj48fF54XmR1eCEkV15xOTw4fS1NOzxnPkB3eFVONkd7Mwp6bkxWN0VgZWFmeDkhenhOTnR+
NUBXWXJISkYtYXdfQzZfV3dMTWtefFQoajFnSm5nTkZkJlM5a3o4IUk1VSF5bmUKemAxYXVVeXR9
SGBgfVQ7bzleSm45TSZSNDZqVzJnPzV9cVlwVXopZ2RhbyQ3b29saj49PWRSfUYyPmpSZWJmWlVI
Cno+TTglRyEwVi1FJm41Jjx8NU02Ky1lfTRAKWlSKzdvP1VBYCNRbzY5O3FxQDRLUXcqK2xAc1Vn
dHJhfW9QXmU/Swp6ZFMzOV5We2NTMWBDTkxQdlNXWU9TRXBrVktQTVBFTjZwPSo7eWI2eV4zJHlW
WmdzWnVycXxDTiNwcXZXcFNTeD0Kej84OUY+SW85ZUdEZmItYHxMUighXytnKiVLRCtxc2A1bFNO
Wnx9UkRAX01taClhJWBzQys9RmJ2MSZeSFpTYC1xCnplWEUyZUgqTVV2dWBZfjVkJntFYUVVKFFh
e3RWMmp4cWowPnZyY3w1KnVxYFl1fS0oTWV8MXYkMWI9Tz17Rnl2KQp6KHxKN0NkKShDOVZCUDxn
ZDBYKGMqa19zWCNnP0Q3M1NMVjhKXldoRkpkYGE/XjEjSm5KQEV5YHJCNjZGKVdxcSQKejdRSFFS
R2pEc3RNQztxaFlpKUJBY1hpdV50LWY4TjdjSXhRbn03QXlgUjcrJXo1RCEwSiRKPzhLV3I8Tnh2
bXtyCno3O25WRHB1cGhpO3V1b0ZgMWE7VC1vcGtBJSNQT0c+YShAdzQpRUBgbzY1QSQodCZtMT9f
YVVjaSNQLS1MQG5hYQp6S05kWnYlRS1qUkEpdyUoeipVb151SSRqajBPZEN2JmBEQEdsZm5kJTFx
LWlnVTxgVSUwIyolQ2M3fT1WZ3BabTYKekxlbH4rMzU4SFVfZmJQZSEoPXBfak9MeHVxRn1VbTlJ
WX0mdEleUmAhRHZmfld3aUE7K007JEM/STNXUlZmdFFxCnpFYH00LT1Zc1c8MVgldHd1JFhZZGRT
MVhUbkN9Nkclc2VmbXpFQEtOcXRGRXZxYHNGNEJsRDctRTBJaiRVfUUhZAp6bjJjb1YxczB3TyZ6
MzJ7WkU7WkdrV2dVc2IlTlJJKEJMMyE7NG9gOzdyZXtJKDVSM3c+WDZZODhCSFVqeGR1QD4Kempn
fSokQ0ZeS2lHZ3x3T3ducyk9WHJvTzxjbkZMKG89M1lBcWFDYyNGNlU/YGR+e2YxdW5wOUZgSytx
VHpgJjZLCnpTXz1UR3V0ckNaTSNzfWUybGhxPl9DXlF4TWhFc3IybG43MEZnaiZJbH1WJUAlO3g/
KSVWJGg2dmo7QmtXJDwrTQpLYjZNdzwmOyRVKjMzXyhgCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEK
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3hsaW5rLWN1c3RvbS1uYW1lc3Bh
Y2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS94bGluay1jdXN0b20tbmFt
ZXNwYWNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5h
OWI0Nzk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS94bGluay1j
dXN0b20tbmFtZXNwYWNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xh
eWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgwLDAp
IHNpemUgMjAweDIwMAorICAgIFJlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnQge2xpbmVh
ckdyYWRpZW50fSBbaWQ9ImdyYWRpZW50MiJdIFtncmFkaWVudFVuaXRzPW9iamVjdEJvdW5kaW5n
Qm94XSBbc3RhcnQ9KDAsMCldIFtlbmQ9KDEsMCldCisgICAgICBSZW5kZXJTVkdHcmFkaWVudFN0
b3Age3N0b3B9IFtvZmZzZXQ9MC4wMF0gW2NvbG9yPSMwMDgwMDBdCisgICAgICBSZW5kZXJTVkdH
cmFkaWVudFN0b3Age3N0b3B9IFtvZmZzZXQ9MC4wMF0gW2NvbG9yPSMwMDgwMDBdCisgICAgUmVu
ZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudCB7bGluZWFyR3JhZGllbnR9IFtpZD0iZ3JhZGll
bnQxIl0gW2dyYWRpZW50VW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hdIFtzdGFydD0oMCwwKV0gW2Vu
ZD0oMSwwKV0KKyAgICBSZW5kZXJTVkdQYXRoIHtyZWN0fSBhdCAoMCwwKSBzaXplIDIwMHgyMDAg
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBb
d2lkdGg9MjAwLjAwXSBbaGVpZ2h0PTIwMC4wMF0KKyAgICBSZW5kZXJTVkdQYXRoIHtyZWN0fSBh
dCAoMCwwKSBzaXplIDIwMHgyMDAgW2ZpbGw9e1t0eXBlPUxJTkVBUi1HUkFESUVOVF0gW2lkPSJn
cmFkaWVudDEiXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD0yMDAuMDBdIFtoZWlnaHQ9MjAw
LjAwXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS94bGluay1jdXN0b20tbmFt
ZXNwYWNlLnN2ZyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20veGxpbmstY3VzdG9tLW5hbWVzcGFj
ZS5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWY1NTY1NQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20veGxpbmstY3VzdG9tLW5hbWVzcGFj
ZS5zdmcKQEAgLTAsMCArMSwxMCBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAw
MC9zdmciIHhtbG5zOnhsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KKzx0aXRsZT5U
aGUgc3F1YXJlIHNob3VsZCBiZSBncmVlbi48L3RpdGxlPgorPGxpbmVhckdyYWRpZW50IGlkPSJn
cmFkaWVudDIiPgorICAgPHN0b3Agc3RvcC1jb2xvcj0iZ3JlZW4iIHN0b3Atb2Zmc2V0PSIwIi8+
CisgICA8c3RvcCBzdG9wLWNvbG9yPSJncmVlbiIgc3RvcC1vZmZzZXQ9IjEiLz4KKzwvbGluZWFy
R3JhZGllbnQ+Cis8bGluZWFyR3JhZGllbnQgeGw6aHJlZj0iI2dyYWRpZW50MiIgaWQ9ImdyYWRp
ZW50MSIvPgorPHJlY3QgZmlsbD0icmVkIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIvPgorPHJl
Y3QgZmlsbD0idXJsKCNncmFkaWVudDEpIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIvPgorPC9z
dmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDY3NDFmM2MuLjk0
MzQwY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMzIgQEAKKzIwMTEtMDktMjggIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTig4NzAx
MCk6IGVsZW1lbnRzIGluIEVDTUEtY2xvdWQgbmVpdGhlciBmaWxsZWQgbm9yIGJsdXJyZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4Njc5CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMDIwNDY0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTdHJpcCBwcmVmaXhlcyBmcm9tIFNWRyBhdHRyaWJ1dGVz
IGJlZm9yZSB0ZXN0aW5nIGlmIHRoZXkncmUgc3VwcG9ydGVkLgorICAgICAgICBOYW1lc3BhY2Vk
IGF0dHJpYnV0ZXMgd2lsbCBiZSBtYXRjaGVkIHVzaW5nIHRoZWlyIG5hbWVzcGFjZSBpbnN0ZWFk
IG9mCisgICAgICAgIHRoZSAodXNlci1jaG9vc2FibGUpIHByZWZpeC4KKworICAgICAgICBUZXN0
OiBzdmcvY3VzdG9tL3hsaW5rLWN1c3RvbS1uYW1lc3BhY2Uuc3ZnCisKKyAgICAgICAgKiBzdmcv
U1ZHQUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQUVsZW1lbnQ6OmlzU3VwcG9y
dGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OmlzU3VwcG9ydGVk
QXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6OmlzU3VwcG9y
dGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRpb25FbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0
ZSk6CisgICAgICAgICogc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQ2lyY2xlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2
Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ2xpcFBhdGhF
bGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0NvbXBvbmVu
dFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0NvbXBv
bmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAg
ICAgICogc3ZnL1NWR0N1cnNvckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ3Vy
c29yRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdFbGVt
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcjo6aGFz
aCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcjo6ZXF1YWwp
OgorICAgICAgICAqIHN2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdFbGxpcHNlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2
Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmg6CisgICAgICAgICogc3ZnL1NWR0ZFQmxl
bmRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQmxlbmRFbGVtZW50Ojppc1N1
cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50Ojppc1N1cHBv
cnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50
Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFQ29tcG9zaXRlRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OmlzU3Vw
cG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6Omlz
U3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVu
dDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdGRURpc3BsYWNlbWVu
dE1hcEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVEaXNwbGFjZW1lbnRNYXBF
bGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFRHJvcFNo
YWRvd0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVEcm9wU2hhZG93RWxlbWVu
dDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdGRUdhdXNzaWFuQmx1
ckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50
Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50Ojppc1N1cHBvcnRlZEF0
dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0ZFTGlnaHRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAg
ICAgICogc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdGRU1lcmdlTm9kZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBz
dmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRU1v
cnBob2xvZ3lFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NW
R0ZFT2Zmc2V0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRU9mZnNldEVsZW1l
bnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRkVTcGVjdWxhckxp
Z2h0aW5nRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVNwZWN1bGFyTGlnaHRp
bmdFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFVGls
ZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVUaWxlRWxlbWVudDo6aXNTdXBw
b3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmlzU3VwcG9ydGVk
QXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdGaWx0ZXJFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAg
ICAgICogc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmlzU3Vw
cG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OmlzU3VwcG9y
dGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHR0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHR0VsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBz
dmcvU1ZHR3JhZGllbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0dyYWRpZW50
RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdJbWFnZUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VFbGVtZW50Ojppc1N1cHBvcnRl
ZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0xpbmVFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0xpbmVFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAg
ICogc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAg
KiBzdmcvU1ZHTVBhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01QYXRoRWxl
bWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdNYXJrZXJFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hcmtlckVsZW1lbnQ6OmlzU3VwcG9ydGVk
QXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHTWFza0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTWFza0VsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAg
KiBzdmcvU1ZHUGF0aEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1l
bnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0dGVybkVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0dGVybkVsZW1lbnQ6OmlzU3VwcG9ydGVk
QXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHUG9seUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUG9seUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAg
KiBzdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1JhZGlhbEdyYWRpZW50RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAq
IHN2Zy9TVkdSZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0RWxlbWVu
dDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NjcmlwdEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0
cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHU3RvcEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHU3RvcEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBz
dmcvU1ZHU3R5bGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlRWxlbWVu
dDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdTdHlsZWRUcmFuc2Zv
cm1hYmxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZWRUcmFuc2Zvcm1h
YmxlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdTeW1i
b2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N5bWJvbEVsZW1lbnQ6OmlzU3Vw
cG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHVFJlZkVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHVFJlZkVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAg
ICAgICAgKiBzdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1RleHRDb250ZW50RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAq
IHN2Zy9TVkdUZXh0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0RWxlbWVu
dDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdUZXh0UGF0aEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dFBhdGhFbGVtZW50Ojppc1N1cHBvcnRl
ZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6aXNTdXBwb3J0
ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdVUklSZWZlcmVuY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHVVJJUmVmZXJlbmNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKToKKyAg
ICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VF
bGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1ZpZXdFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdFbGVtZW50Ojppc1N1cHBvcnRlZEF0
dHJpYnV0ZSk6CisKIDIwMTEtMDktMjggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4K
IAogICAgICAgICBDU1AgZG9lc24ndCB3b3JrIGZvciBhIHdpZGUgdmFyaWV0eSBvZiBjYXNlcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKaW5kZXggNjM5MDA0ZS4uY2VhM2NiOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCkBAIC05NCw3ICs5NCw3IEBAIGJvb2wgU1ZHQUVsZW1l
bnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQog
ICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1
dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFk
ZChTVkdOYW1lczo6dGFyZ2V0QXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmNvbnRhaW5zKGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRl
cy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0
ck5hbWUpOwogfQogCiB2b2lkIFNWR0FFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRy
aWJ1dGUqIGF0dHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1v
dGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVt
ZW50LmNwcAppbmRleCA1ODc4NGY2Li5mYzFlZDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgYm9vbCBTVkdB
bmltYXRlTW90aW9uRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVk
TmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmli
dXRlcy5pc0VtcHR5KCkpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVz
OjpwYXRoQXR0cik7Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnMoYXR0
ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmll
ZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQg
U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSog
YXR0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1l
bnQuY3BwCmluZGV4IGNhN2FhZTguLjI1NWZhMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcApAQCAtODksNyArODksNyBAQCBib29s
IFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyTgogICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFs
aWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmlzRW1wdHkoKSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZH
TmFtZXM6OnR5cGVBdHRyKTsKLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlu
cyhhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVh
bGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAog
dm9pZCBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0
cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlv
bkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3Bw
CmluZGV4IDM5ODA4YjQuLjk3NmVmOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
aW9uRWxlbWVudC5jcHAKQEAgLTE1NCw3ICsxNTQsNyBAQCBib29sIFNWR0FuaW1hdGlvbkVsZW1l
bnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQog
ICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6a2V5UG9pbnRzQXR0cik7
CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjprZXlTcGxpbmVzQXR0
cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zKGF0dHJO
YW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWRO
YW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogICAgICAKIHZv
aWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBh
dHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwCmluZGV4IDJhZTY5Yjgu
LjI4OGU1OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAKQEAgLTc2
LDcgKzc2LDcgQEAgYm9vbCBTVkdDaXJjbGVFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRl
cy5hZGQoU1ZHTmFtZXM6OmN5QXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRk
KFNWR05hbWVzOjpyQXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmNvbnRhaW5zKGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250
YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUp
OwogfQogCiB2b2lkIFNWR0NpcmNsZUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJp
YnV0ZSogYXR0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHAKaW5k
ZXggZDk1YTYxZS4uYjIxNDM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Ns
aXBQYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxl
bWVudC5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgYm9vbCBTVkdDbGlwUGF0aEVsZW1lbnQ6OmlzU3Vw
cG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBv
cnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1l
czo6Y2xpcFBhdGhVbml0c0F0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmli
dXRlcy5jb250YWlucyhhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
Y29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJO
YW1lKTsKIH0KIAogdm9pZCBTVkdDbGlwUGF0aEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRl
KEF0dHJpYnV0ZSogYXR0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21w
b25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Q29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwCmluZGV4IGQzYjQ4NmYuLjQwODJh
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1
bmN0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRy
YW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcApAQCAtNzEsNyArNzEsNyBAQCBib29sIFNWR0NvbXBv
bmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6ZXhw
b25lbnRBdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6Om9m
ZnNldEF0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlu
cyhhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVh
bGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAog
dm9pZCBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRy
aWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0N1cnNvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQu
Y3BwCmluZGV4IDUzZGYyOTUuLjdjYTZiNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdDdXJzb3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29y
RWxlbWVudC5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgYm9vbCBTVkdDdXJzb3JFbGVtZW50Ojppc1N1
cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAg
c3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnhBdHRyKTsKICAgICAgICAgc3VwcG9y
dGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnlBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnMoYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFu
c2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHQ3Vyc29yRWxlbWVudDo6cGFyc2VNYXBw
ZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgKaW5kZXgg
ODU1M2ZhNi4uZDVhM2Q1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCkBAIC0xMzAsNiArMTMw
LDE0IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGhhdmVMb2FkZWRSZXF1aXJlZFJlc291
cmNlcygpOwogfTsKIAorc3RydWN0IFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yIHsKKyAgICBz
dGF0aWMgdW5zaWduZWQgaGFzaChRdWFsaWZpZWROYW1lIGtleSkgeworICAgICAgICBrZXkuc2V0
UHJlZml4KG51bGxBdG9tKTsKKyAgICAgICAgcmV0dXJuIERlZmF1bHRIYXNoPFF1YWxpZmllZE5h
bWU+OjpIYXNoOjpoYXNoKGtleSk7CisgICAgfQorICAgIHN0YXRpYyBib29sIGVxdWFsKFF1YWxp
ZmllZE5hbWUgYSwgUXVhbGlmaWVkTmFtZSBiKSB7IHJldHVybiBhLm1hdGNoZXMoYik7IH0KK307
CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBz
ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcApp
bmRleCBjZWEwNjZkLi45YjlkYTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RWxsaXBzZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxl
bWVudC5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgYm9vbCBTVkdFbGxpcHNlRWxlbWVudDo6aXNTdXBw
b3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpyeEF0dHIpOwogICAgICAgICBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6cnlBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnMoYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFu
c2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHRWxsaXBzZUVsZW1lbnQ6OnBhcnNlTWFw
cGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oCmluZGV4IDkwNTBiNTkuLjM5NTliMTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQu
aApAQCAtMjMsNiArMjMsNyBAQAogCiAjaWYgRU5BQkxFKFNWRykKICNpbmNsdWRlICJRdWFsaWZp
ZWROYW1lLmgiCisjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVs
ZW1lbnQuY3BwCmluZGV4IGQ1MTJkZjEuLmFhMGM0YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFQmxlbmRFbGVtZW50LmNwcApAQCAtNjQsNyArNjQsNyBAQCBib29sIFNWR0ZFQmxlbmRFbGVt
ZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkK
ICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmluQXR0cik7CiAgICAg
ICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjppbjJBdHRyKTsKICAgICB9Ci0g
ICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnMoYXR0ck5hbWUpOworICAgIHJl
dHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJp
YnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHRkVCbGVuZEVsZW1l
bnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCmluZGV4IDdiNjUyOWMuLjQ3YjU3
ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNw
cApAQCAtNjQsNyArNjQsNyBAQCBib29sIFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50Ojppc1N1cHBv
cnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZQogICAgICAgICBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6dmFsdWVzQXR0cik7CiAgICAgICAgIHN1cHBv
cnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjppbkF0dHIpOwogICAgIH0KLSAgICByZXR1cm4g
c3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBv
cnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRy
YW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdGRUNvbG9yTWF0cml4RWxlbWVudDo6
cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHAKaW5kZXggMzE3MTEx
Zi4uNTdkNTBjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50
VHJhbnNmZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25l
bnRUcmFuc2ZlckVsZW1lbnQuY3BwCkBAIC01OSw3ICs1OSw3IEBAIGJvb2wgU1ZHRkVDb21wb25l
bnRUcmFuc2ZlckVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNF
bXB0eSgpKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6aW5BdHRy
KTsKLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7Cisg
ICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZH
QXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdGRUNvbXBv
bmVudFRyYW5zZmVyRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcAppbmRleCBh
MTQzYmFlLi45M2Q4OGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21w
b3NpdGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVF
bGVtZW50LmNwcApAQCAtNzYsNyArNzYsNyBAQCBib29sIFNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6
aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAg
ICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjprM0F0dHIpOwogICAgICAgICBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6azRBdHRyKTsKICAgICB9Ci0gICAgcmV0
dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnMoYXR0ck5hbWUpOworICAgIHJldHVybiBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhh
c2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHRkVDb21wb3NpdGVFbGVtZW50
OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAppbmRleCA5ZWNmMWE2Li4y
YjU3ZmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJp
eEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4
RWxlbWVudC5jcHAKQEAgLTExNiw3ICsxMTYsNyBAQCBib29sIFNWR0ZFQ29udm9sdmVNYXRyaXhF
bGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTgog
ICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6a2VybmVsVW5pdExlbmd0
aEF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6cHJlc2Vy
dmVBbHBoYUF0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250
YWlucyhhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8
UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0K
IAogdm9pZCBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUo
QXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlm
ZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNl
TGlnaHRpbmdFbGVtZW50LmNwcAppbmRleCA1MzljM2FmLi4xOTUxNmNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcApAQCAtODcs
NyArODcsNyBAQCBib29sIFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6aXNTdXBwb3J0ZWRB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cgogICAgICAgICBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmFkZChTVkdOYW1lczo6a2VybmVsVW5pdExlbmd0aEF0dHIpOwogICAgICAgICBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6bGlnaHRpbmdfY29sb3JBdHRyKTsgLy8gRXZl
biB0aG91Z2ggaXQncyBhIFNWRy1DU1MgcHJvcGVydHksIHdlIG92ZXJyaWRlIGl0cyBoYW5kbGlu
ZyBoZXJlLgogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlucyhh
dHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlm
aWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9p
ZCBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJp
YnV0ZSogYXR0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNl
bWVudE1hcEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50
TWFwRWxlbWVudC5jcHAKaW5kZXggZjdmZmZjOS4uNGQzMjQxNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAKQEAgLTcwLDcgKzcw
LDcgQEAgYm9vbCBTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHIKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRl
cy5hZGQoU1ZHTmFtZXM6OnlDaGFubmVsU2VsZWN0b3JBdHRyKTsKICAgICAgICAgc3VwcG9ydGVk
QXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnNjYWxlQXR0cik7CiAgICAgfQotICAgIHJldHVybiBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zKGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9y
dGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJh
bnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVu
dDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwCmluZGV4IDZmMzkwZTMuLmQyMjU5ZGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAKQEAg
LTkyLDcgKzkyLDcgQEAgYm9vbCBTVkdGRURyb3BTaGFkb3dFbGVtZW50Ojppc1N1cHBvcnRlZEF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgc3VwcG9ydGVk
QXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmR5QXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuYWRkKFNWR05hbWVzOjpzdGREZXZpYXRpb25BdHRyKTsKICAgICB9Ci0gICAgcmV0dXJu
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnMoYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hU
cmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6
cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcAppbmRleCA2OGQ1ZGVkLi5hNjNmZWEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNw
cApAQCAtODIsNyArODIsNyBAQCBib29sIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6aXNTdXBw
b3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbQogICAgICAgICBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6aW5BdHRyKTsKICAgICAgICAgc3VwcG9ydGVk
QXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnN0ZERldmlhdGlvbkF0dHIpOwogICAgIH0KLSAgICBy
ZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7CisgICAgcmV0dXJu
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRl
SGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdGRUdhdXNzaWFuQmx1ckVs
ZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDdkMzU2ZjQuLjQ5NGUxYjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcApAQCAtOTYsNyArOTYsNyBAQCBi
b29sIFNWR0ZFSW1hZ2VFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6
YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgc3Vw
cG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnByZXNlcnZlQXNwZWN0UmF0aW9BdHRyKTsK
ICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnMoYXR0ck5hbWUp
OworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUs
IFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHRkVJ
bWFnZUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuY3BwCmluZGV4IDMwMGZmZDMuLmRjYTg4OTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNwcApAQCAtMTAzLDcgKzEw
Myw3IEBAIGJvb2wgU1ZHRkVMaWdodEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFk
ZChTVkdOYW1lczo6c3BlY3VsYXJFeHBvbmVudEF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmFkZChTVkdOYW1lczo6bGltaXRpbmdDb25lQW5nbGVBdHRyKTsKICAgICB9Ci0gICAg
cmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnMoYXR0ck5hbWUpOworICAgIHJldHVy
biBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0
ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHRkVMaWdodEVsZW1lbnQ6
OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAKaW5kZXggYTc2MDZiNy4uOTM5NGVmOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAKQEAgLTU2LDcg
KzU2LDcgQEAgYm9vbCBTVkdGRU1lcmdlTm9kZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIERFRklORV9TVEFUSUNfTE9DQUwo
SGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlm
IChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmli
dXRlcy5hZGQoU1ZHTmFtZXM6OmluQXR0cik7Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0
ZXMuY29udGFpbnMoYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNv
bnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFt
ZSk7CiB9CiAKIHZvaWQgU1ZHRkVNZXJnZU5vZGVFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0
ZShBdHRyaWJ1dGUqIGF0dHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVN
b3JwaG9sb2d5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5
RWxlbWVudC5jcHAKaW5kZXggNDU0OWMxZS4uODRiNDA5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcApAQCAtODUsNyArODUsNyBAQCBib29sIFNW
R0ZFTW9ycGhvbG9neUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1l
czo6b3BlcmF0b3JBdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFt
ZXM6OnJhZGl1c0F0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5j
b250YWlucyhhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFp
bnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsK
IH0KIAogdm9pZCBTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShB
dHRyaWJ1dGUqIGF0dHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZz
ZXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3Bw
CmluZGV4IDMxM2U0ZDYuLmZlOWMzNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRU9mZnNldEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU9mZnNl
dEVsZW1lbnQuY3BwCkBAIC02Myw3ICs2Myw3IEBAIGJvb2wgU1ZHRkVPZmZzZXRFbGVtZW50Ojpp
c1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAg
ICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmR4QXR0cik7CiAgICAgICAgIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpkeUF0dHIpOwogICAgIH0KLSAgICByZXR1
cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFz
aFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdGRU9mZnNldEVsZW1lbnQ6OnBh
cnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcAppbmRleCA1MzBmNTY2Li44
MjcxNTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0
aW5nRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdo
dGluZ0VsZW1lbnQuY3BwCkBAIC05MSw3ICs5MSw3IEBAIGJvb2wgU1ZHRkVTcGVjdWxhckxpZ2h0
aW5nRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpzdXJmYWNlU2NhbGVB
dHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6Omtlcm5lbFVu
aXRMZW5ndGhBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29u
dGFpbnMoYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5z
PFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9
CiAKIHZvaWQgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1
dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
VGlsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3Bw
CmluZGV4IGU0ZDJhN2UuLjFjYmUyNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRVRpbGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxl
bWVudC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgYm9vbCBTVkdGRVRpbGVFbGVtZW50Ojppc1N1cHBv
cnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMs
ICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpCiAgICAgICAgIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjppbkF0dHIpOwotICAgIHJldHVybiBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zKGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVk
QXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNs
YXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFVGlsZUVsZW1lbnQ6OnBhcnNlTWFwcGVk
QXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1
cmJ1bGVuY2VFbGVtZW50LmNwcAppbmRleCA3MjFhN2Y2Li44OTEyNjA2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCkBAIC04NSw3ICs4NSw3IEBA
IGJvb2wgU1ZHRkVUdXJidWxlbmNlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRk
KFNWR05hbWVzOjpzdGl0Y2hUaWxlc0F0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmFkZChTVkdOYW1lczo6dHlwZUF0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0
cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0
ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0
dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50OjpwYXJzZU1hcHBlZEF0
dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRmlsdGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVu
dC5jcHAKaW5kZXggZDYwYTZhOC4uOTdmZTMzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0
ZXJFbGVtZW50LmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIGJvb2wgU1ZHRmlsdGVyRWxlbWVudDo6
aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAg
ICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpoZWlnaHRBdHRyKTsKICAgICAg
ICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmZpbHRlclJlc0F0dHIpOwogICAg
IH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7Cisg
ICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZH
QXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdGaWx0ZXJF
bGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXMuY3BwCmluZGV4IDE0MjhjZTQuLmVjYmEzZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3Bw
CkBAIC03NCw3ICs3NCw3IEBAIGJvb2wgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzOjppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROCiAgICAgICAgIHN1cHBv
cnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpoZWlnaHRBdHRyKTsKICAgICAgICAgc3VwcG9y
dGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnJlc3VsdEF0dHIpOwogICAgIH0KLSAgICByZXR1
cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFz
aFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFu
ZGFyZEF0dHJpYnV0ZXM6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCmluZGV4IDZi
ZDNkNjUuLmUyZmFlZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWdu
T2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmpl
Y3RFbGVtZW50LmNwcApAQCAtODEsNyArODEsNyBAQCBib29sIFNWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZQog
ICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6d2lkdGhBdHRyKTsKICAg
ICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmhlaWdodEF0dHIpOwogICAg
IH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7Cisg
ICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZH
QXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdGb3JlaWdu
T2JqZWN0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAKaW5kZXggZjI3MmNjNC4uNmNjN2Q4MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHR0VsZW1lbnQuY3BwCkBAIC02MCw3ICs2MCw3IEBAIGJvb2wgU1ZHR0VsZW1lbnQ6
OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAg
ICAgICBTVkdMYW5nU3BhY2U6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmli
dXRlcyk7CiAgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRl
ZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgfQotICAgIHJldHVybiBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zKGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVk
QXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNs
YXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0dFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJp
YnV0ZShBdHRyaWJ1dGUqIGF0dHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
R3JhZGllbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1l
bnQuY3BwCmluZGV4IDk4NWRkNzIuLmYzNDk5ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdH
cmFkaWVudEVsZW1lbnQuY3BwCkBAIC03Miw3ICs3Miw3IEBAIGJvb2wgU1ZHR3JhZGllbnRFbGVt
ZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkK
ICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmdyYWRpZW50VHJhbnNm
b3JtQXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpzcHJl
YWRNZXRob2RBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29u
dGFpbnMoYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5z
PFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9
CiAKIHZvaWQgU1ZHR3JhZGllbnRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1
dGUqIGF0dHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDc5ZmUx
MjguLmFmNGMyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCkBAIC04
OCw3ICs4OCw3IEBAIGJvb2wgU1ZHSW1hZ2VFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRl
cy5hZGQoU1ZHTmFtZXM6OmhlaWdodEF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmFkZChTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHIpOwogICAgIH0KLSAgICByZXR1
cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFz
aFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdJbWFnZUVsZW1lbnQ6OnBhcnNl
TWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVs
ZW1lbnQuY3BwCmluZGV4IGM3Y2ExMWUuLmM5YjIxNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xp
bmVFbGVtZW50LmNwcApAQCAtNzgsNyArNzgsNyBAQCBib29sIFNWR0xpbmVFbGVtZW50Ojppc1N1
cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAg
c3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnkxQXR0cik7CiAgICAgICAgIHN1cHBv
cnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp5MkF0dHIpOwogICAgIH0KLSAgICByZXR1cm4g
c3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBv
cnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRy
YW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdMaW5lRWxlbWVudDo6cGFyc2VNYXBw
ZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TGluZWFyR3JhZGllbnRFbGVtZW50LmNwcAppbmRleCBiMWFjMjRkLi43YzhiMzQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcApAQCAtODAs
NyArODAsNyBAQCBib29sIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbQogICAgICAgICBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmFkZChTVkdOYW1lczo6eTFBdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRl
cy5hZGQoU1ZHTmFtZXM6OnkyQXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmNvbnRhaW5zKGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRl
cy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0
ck5hbWUpOwogfQogCiB2b2lkIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6cGFyc2VNYXBwZWRB
dHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01QYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50
LmNwcAppbmRleCA1NDQ1NWMxLi5iMzZjZDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTVBhdGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhF
bGVtZW50LmNwcApAQCAtNTYsNyArNTYsNyBAQCBib29sIFNWR01QYXRoRWxlbWVudDo6aXNTdXBw
b3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIFNW
R1VSSVJlZmVyZW5jZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVz
KTsKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0
cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRl
ZEF0dHJpYnV0ZXMuY29udGFpbnMoYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9y
PihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHTVBhdGhFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJp
YnV0ZShBdHRyaWJ1dGUqIGF0dHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TWFya2VyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5j
cHAKaW5kZXggNDgwZTViZi4uY2JmMWI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01hcmtlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJF
bGVtZW50LmNwcApAQCAtMTIyLDcgKzEyMiw3IEBAIGJvb2wgU1ZHTWFya2VyRWxlbWVudDo6aXNT
dXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAg
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjptYXJrZXJIZWlnaHRBdHRyKTsKICAg
ICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6Om9yaWVudEF0dHIpOwogICAg
IH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7Cisg
ICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZH
QXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdNYXJrZXJF
bGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR01hc2tFbGVtZW50LmNwcAppbmRleCA1NTRhMTQzLi5iNjVhZjExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgYm9vbCBTVkdNYXNr
RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp3aWR0aEF0dHIp
OwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6aGVpZ2h0QXR0cik7
CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zKGF0dHJOYW1l
KTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1l
LCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR01h
c2tFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAppbmRleCBhN2EzMzdlLi40YWU2NjEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKQEAgLTIxMiw3ICsyMTIsNyBAQCBib29sIFNW
R1BhdGhFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyTmFtZSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmRBdHRy
KTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnBhdGhMZW5ndGhB
dHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnMoYXR0
ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmll
ZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQg
U1ZHUGF0aEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwCmluZGV4IDk5NDEwMDQuLmJlZDMw
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcApAQCAtMTA2LDcg
KzEwNiw3IEBAIGJvb2wgU1ZHUGF0dGVybkVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmFkZChTVkdOYW1lczo6d2lkdGhBdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5h
ZGQoU1ZHTmFtZXM6OmhlaWdodEF0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0
cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0
ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0
dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdQYXR0ZXJuRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1
dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bv
bHlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAKaW5k
ZXggNjE2Yjg2Ny4uNjZjNTI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bv
bHlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3Bw
CkBAIC03NCw3ICs3NCw3IEBAIGJvb2wgU1ZHUG9seUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBTVkdFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0
ZXMpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6cG9pbnRzQXR0
cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zKGF0dHJO
YW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWRO
YW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNW
R1BvbHlFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCmluZGV4IDBm
ODZhNmQuLjU2NWQzOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxH
cmFkaWVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFk
aWVudEVsZW1lbnQuY3BwCkBAIC04NCw3ICs4NCw3IEBAIGJvb2wgU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpmeUF0dHIpOwogICAg
ICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6ckF0dHIpOwogICAgIH0KLSAg
ICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7CisgICAgcmV0
dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmli
dXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdSYWRpYWxHcmFkaWVu
dEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCmluZGV4IGU4NDc3NGQuLjkyMDc3NDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcApAQCAtODUsNyArODUsNyBAQCBib29sIFNWR1Jl
Y3RFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnJ4QXR0cik7
CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpyeUF0dHIpOwogICAg
IH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7Cisg
ICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZH
QXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdSZWN0RWxl
bWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDdiOWJjYzguLmQ3YTMyYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgYm9vbCBT
VkdTY3JpcHRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnR5
cGVBdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoSFRNTE5hbWVzOjpvbmVy
cm9yQXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5z
KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFs
aWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2
b2lkIFNWR1NjcmlwdEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCmluZGV4IDYzMzMxMjQuLjkyZDBi
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNwcApAQCAtNTksNyArNTksNyBA
QCBib29sIFNWR1N0b3BFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlm
aWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0
cmlidXRlcy5pc0VtcHR5KCkpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05h
bWVzOjpvZmZzZXRBdHRyKTsKLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlu
cyhhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVh
bGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAog
dm9pZCBTVkdTdG9wRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcAppbmRleCA1YjhkMzZmLi4yZWNj
MjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcApAQCAtOTIsNyArOTIs
NyBAQCBib29sIFNWR1N0eWxlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIFNWR0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVk
QXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmli
dXRlcy5hZGQoU1ZHTmFtZXM6OnRpdGxlQXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zKGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0
cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRv
cj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR1N0eWxlRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRy
aWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
dHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5jcHAKaW5kZXggMjhlYzdiYS4uNGJiZDYyYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1l
bnQuY3BwCkBAIC04MSw3ICs4MSw3IEBAIGJvb2wgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1l
bnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0CiAgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKQogICAgICAg
ICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6dHJhbnNmb3JtQXR0cik7Ci0gICAg
cmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnMoYXR0ck5hbWUpOworICAgIHJldHVy
biBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0
ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHU3R5bGVkVHJhbnNmb3Jt
YWJsZUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmNwcAppbmRleCBlNTBiYzk0Li4wM2JkNGJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuY3BwCkBAIC02MSw3ICs2MSw3IEBA
IGJvb2wgU1ZHU3ltYm9sRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6
OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNW
R0ZpdFRvVmlld0JveDo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVz
KTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnMoYXR0ck5h
bWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5h
bWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZH
U3ltYm9sRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKaW5kZXggZTJlMWVlYS4uNzI3MGExOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCkBAIC0xNTUsNyArMTU1LDcgQEAgYm9v
bCBTVkdUUmVmRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUpCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5h
bWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0
ZXMuaXNFbXB0eSgpKQogICAgICAgICBTVkdVUklSZWZlcmVuY2U6OmFkZFN1cHBvcnRlZEF0dHJp
YnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0
ZXMuY29udGFpbnMoYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNv
bnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFt
ZSk7CiB9CiAKIHZvaWQgU1ZHVFJlZkVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJp
YnV0ZSogYXR0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVu
dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5j
cHAKaW5kZXggYTY0ODNmNC4uODc4YmMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rl
eHRDb250ZW50RWxlbWVudC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCBib29sIFNWR1RleHRDb250
ZW50RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpsZW5ndGhB
ZGp1c3RBdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnRl
eHRMZW5ndGhBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29u
dGFpbnMoYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5z
PFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9
CiAKIHZvaWQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRy
aWJ1dGUqIGF0dHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmNwcAppbmRleCAxMGM3
Mjg5Li5lMGY1ZWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5jcHAKQEAgLTYw
LDcgKzYwLDcgQEAgYm9vbCBTVkdUZXh0RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNo
U2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1
cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmFkZChTVkdOYW1lczo6dHJhbnNmb3JtQXR0cik7Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuY29udGFpbnMoYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRy
TmFtZSk7CiB9CiAKIHZvaWQgU1ZHVGV4dEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0
dHJpYnV0ZSogYXR0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0
aEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHAK
aW5kZXggZTJiYjNjZC4uYmJjNDRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RleHRQYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRo
RWxlbWVudC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgYm9vbCBTVkdUZXh0UGF0aEVsZW1lbnQ6Omlz
U3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAg
ICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6bWV0aG9kQXR0cik7CiAgICAgICAg
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpzcGFjaW5nQXR0cik7CiAgICAgfQot
ICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zKGF0dHJOYW1lKTsKKyAgICBy
ZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRy
aWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR1RleHRQYXRoRWxl
bWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwCmluZGV4IDM5NzEzZjAu
LjNiOWM5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25p
bmdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5n
RWxlbWVudC5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgYm9vbCBTVkdUZXh0UG9zaXRpb25pbmdFbGVt
ZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmEKICAg
ICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmR5QXR0cik7CiAgICAgICAg
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpyb3RhdGVBdHRyKTsKICAgICB9Ci0g
ICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnMoYXR0ck5hbWUpOworICAgIHJl
dHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJp
YnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHVGV4dFBvc2l0aW9u
aW5nRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VSSVJlZmVyZW5jZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVVJJUmVmZXJlbmNlLmNwcAppbmRleCA2ZWZkYTE5Li4wNTRiOTk5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVVJJUmVmZXJlbmNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVVJJUmVmZXJlbmNlLmNwcApAQCAtNzMsMTAgKzczLDYgQEAgRWxl
bWVudCogU1ZHVVJJUmVmZXJlbmNlOjp0YXJnZXRFbGVtZW50RnJvbUlSSVN0cmluZyhjb25zdCBT
dHJpbmcmIGlyaSwgRG9jdW1lbnQKIAogdm9pZCBTVkdVUklSZWZlcmVuY2U6OmFkZFN1cHBvcnRl
ZEF0dHJpYnV0ZXMoSGFzaFNldDxRdWFsaWZpZWROYW1lPiYgc3VwcG9ydGVkQXR0cmlidXRlcykK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgeGxpbmtQcmVmaXgsICgi
eGxpbmsiKSk7Ci0gICAgUXVhbGlmaWVkTmFtZSBocmVmV2l0aFByZWZpeCA9IFhMaW5rTmFtZXM6
OmhyZWZBdHRyOwotICAgIGhyZWZXaXRoUHJlZml4LnNldFByZWZpeCh4bGlua1ByZWZpeCk7Ci0g
ICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoaHJlZldpdGhQcmVmaXgpOwogICAgIHN1cHBvcnRl
ZEF0dHJpYnV0ZXMuYWRkKFhMaW5rTmFtZXM6OmhyZWZBdHRyKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1VzZUVsZW1lbnQuY3BwCmluZGV4IGExNzBjMWMuLmQ4NDIyZTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBib29sIFNWR1VzZUVsZW1l
bnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQog
ICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6d2lkdGhBdHRyKTsKICAg
ICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmhlaWdodEF0dHIpOwogICAg
IH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7Cisg
ICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZH
QXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdVc2VFbGVt
ZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1ZpZXdFbGVtZW50LmNwcAppbmRleCBkZTM1MjZhLi42YzE4NjAwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgYm9vbCBTVkdWaWV3RWxl
bWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUp
CiAgICAgICAgIFNWR1pvb21BbmRQYW46OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVk
QXR0cmlidXRlcyk7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp2
aWV3VGFyZ2V0QXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNv
bnRhaW5zKGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlu
czxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwog
fQogCiB2b2lkIFNWR1ZpZXdFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUq
IGF0dHIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109102</attachid>
            <date>2011-09-28 17:27:03 -0700</date>
            <delta_ts>2011-09-29 00:22:20 -0700</delta_ts>
            <desc>patch + style fix</desc>
            <filename>68679.patch</filename>
            <type>text/plain</type>
            <size>49659</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4MmJiODRiLi44MGNlZDA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDkt
MjggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVH
UkVTU0lPTig4NzAxMCk6IGVsZW1lbnRzIGluIEVDTUEtY2xvdWQgbmVpdGhlciBmaWxsZWQgbm9y
IGJsdXJyZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY4Njc5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDIwNDY0OT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB0ZXN0IGVuc3VyaW5nIHRo
YXQgdXNpbmcgeGxpbms6aHJlZiB3aXRoIGEgZGlmZmVyZW50IHByZWZpeCAoaS5lLiB4bDpocmVm
KQorICAgICAgICB3b3JrcyBjb3JyZWN0bHkuCisKKyAgICAgICAgKiBzdmcvY3VzdG9tL3hsaW5r
LWN1c3RvbS1uYW1lc3BhY2UtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3Vz
dG9tL3hsaW5rLWN1c3RvbS1uYW1lc3BhY2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBzdmcvY3VzdG9tL3hsaW5rLWN1c3RvbS1uYW1lc3BhY2Uuc3ZnOiBBZGRlZC4KKwogMjAxMS0w
OS0yOCAgS2VuamkgSW1hc2FraSAgPGltYXNha2lAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtD
aHJvbWl1bV0gcmVtb3ZlIGEgcGFzc2luZyB0ZXN0IGZyb20gdGhlIHRlc3QgZXhwZWN0YXRpb24g
ZmlsZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20veGxpbmstY3VzdG9tLW5h
bWVzcGFjZS1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3hsaW5rLWN1c3Rv
bS1uYW1lc3BhY2UtZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4Njc2YzllNjgyNTY2YTdmNDZi
ZTY3MWI3M2QwY2Q2ZDg1NjZkZjMKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDExMjc2CnpjbWVB
U0BOPyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTFCJVFsWWJwUnpua0I5Z0NDTTQ3JD1TdUZ4
ZVVnTQp6aUgyczAyOWAhP3NZYSRJaEd0MHkjK0p6YCM7Sil3NXlSQlA2IVk4RDxBQTJmV2paP3Rj
c2VeUDFRZ3xgVyMqKFoKekZqTyRNaFRQQS05M2ItVlJfZmRoNTQpfD4xdiV8OUNnIUNDbXBJU2Ft
TDB6OVl9Nn5XP1RRfD1tKnZMSEk7UWZyCnpaVWcoeD90SDdHPHNhR1llek5vMll8Z0txI0N1RjZA
eUQ3REM3KjlmbzlFM29AbF85SS11WnBee2gja0YpdF42IQp6VGt4fG0+YXZKRnplczRYfEl0SCNq
eXdeJHxBe2U5IyMjR01oSHJQOW4zdE5uMU9NZXNtRzN1eT05ND4/UX1RblYKentfMjBwUzclTS01
JlImZHV5MmEjNXY3TmIzbz5KX2xuNmgjKjc8Jn1xM05Oc0tFKUJzU3Zjaj5FJUs4YUFOS1NyCnpQ
ZklmfmIocUNAaTJiT09tRz0kQGl5NF5AS0oocjwqQ19IdFUyV3dneT42Uzt1MGlAd1EoUU9rZUVU
M0AtMjVxaQp6IS1ePntYUm0hTygzPzk7KChodFQqRkFhNStKY15FM3w5fUAkNGwmVyslZE54IXRD
KjQoPmtaS0QoZUsqX0M5fUMKemt+IW1UPmE2TEpubkoyRkR0blNiKSowdHlLSTNOWW9ifk1UK2I7
bz1IcTFCS1ooPHp6YFNJSTtzVnVKemtBRDU7Cno/ZT1CWS1zYHN+UEcpfj5ZUFZlVFREYC0rejJD
blVidj48fF54XmR1eCEkV15xOTw4fS1NOzxnPkB3eFVONkd7Mwp6bkxWN0VgZWFmeDkhenhOTnR+
NUBXWXJISkYtYXdfQzZfV3dMTWtefFQoajFnSm5nTkZkJlM5a3o4IUk1VSF5bmUKemAxYXVVeXR9
SGBgfVQ7bzleSm45TSZSNDZqVzJnPzV9cVlwVXopZ2RhbyQ3b29saj49PWRSfUYyPmpSZWJmWlVI
Cno+TTglRyEwVi1FJm41Jjx8NU02Ky1lfTRAKWlSKzdvP1VBYCNRbzY5O3FxQDRLUXcqK2xAc1Vn
dHJhfW9QXmU/Swp6ZFMzOV5We2NTMWBDTkxQdlNXWU9TRXBrVktQTVBFTjZwPSo7eWI2eV4zJHlW
WmdzWnVycXxDTiNwcXZXcFNTeD0Kej84OUY+SW85ZUdEZmItYHxMUighXytnKiVLRCtxc2A1bFNO
Wnx9UkRAX01taClhJWBzQys9RmJ2MSZeSFpTYC1xCnplWEUyZUgqTVV2dWBZfjVkJntFYUVVKFFh
e3RWMmp4cWowPnZyY3w1KnVxYFl1fS0oTWV8MXYkMWI9Tz17Rnl2KQp6KHxKN0NkKShDOVZCUDxn
ZDBYKGMqa19zWCNnP0Q3M1NMVjhKXldoRkpkYGE/XjEjSm5KQEV5YHJCNjZGKVdxcSQKejdRSFFS
R2pEc3RNQztxaFlpKUJBY1hpdV50LWY4TjdjSXhRbn03QXlgUjcrJXo1RCEwSiRKPzhLV3I8Tnh2
bXtyCno3O25WRHB1cGhpO3V1b0ZgMWE7VC1vcGtBJSNQT0c+YShAdzQpRUBgbzY1QSQodCZtMT9f
YVVjaSNQLS1MQG5hYQp6S05kWnYlRS1qUkEpdyUoeipVb151SSRqajBPZEN2JmBEQEdsZm5kJTFx
LWlnVTxgVSUwIyolQ2M3fT1WZ3BabTYKekxlbH4rMzU4SFVfZmJQZSEoPXBfak9MeHVxRn1VbTlJ
WX0mdEleUmAhRHZmfld3aUE7K007JEM/STNXUlZmdFFxCnpFYH00LT1Zc1c8MVgldHd1JFhZZGRT
MVhUbkN9Nkclc2VmbXpFQEtOcXRGRXZxYHNGNEJsRDctRTBJaiRVfUUhZAp6bjJjb1YxczB3TyZ6
MzJ7WkU7WkdrV2dVc2IlTlJJKEJMMyE7NG9gOzdyZXtJKDVSM3c+WDZZODhCSFVqeGR1QD4Kempn
fSokQ0ZeS2lHZ3x3T3ducyk9WHJvTzxjbkZMKG89M1lBcWFDYyNGNlU/YGR+e2YxdW5wOUZgSytx
VHpgJjZLCnpTXz1UR3V0ckNaTSNzfWUybGhxPl9DXlF4TWhFc3IybG43MEZnaiZJbH1WJUAlO3g/
KSVWJGg2dmo7QmtXJDwrTQpLYjZNdzwmOyRVKjMzXyhgCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEK
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3hsaW5rLWN1c3RvbS1uYW1lc3Bh
Y2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS94bGluay1jdXN0b20tbmFt
ZXNwYWNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5h
OWI0Nzk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS94bGluay1j
dXN0b20tbmFtZXNwYWNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xh
eWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgwLDAp
IHNpemUgMjAweDIwMAorICAgIFJlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnQge2xpbmVh
ckdyYWRpZW50fSBbaWQ9ImdyYWRpZW50MiJdIFtncmFkaWVudFVuaXRzPW9iamVjdEJvdW5kaW5n
Qm94XSBbc3RhcnQ9KDAsMCldIFtlbmQ9KDEsMCldCisgICAgICBSZW5kZXJTVkdHcmFkaWVudFN0
b3Age3N0b3B9IFtvZmZzZXQ9MC4wMF0gW2NvbG9yPSMwMDgwMDBdCisgICAgICBSZW5kZXJTVkdH
cmFkaWVudFN0b3Age3N0b3B9IFtvZmZzZXQ9MC4wMF0gW2NvbG9yPSMwMDgwMDBdCisgICAgUmVu
ZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudCB7bGluZWFyR3JhZGllbnR9IFtpZD0iZ3JhZGll
bnQxIl0gW2dyYWRpZW50VW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hdIFtzdGFydD0oMCwwKV0gW2Vu
ZD0oMSwwKV0KKyAgICBSZW5kZXJTVkdQYXRoIHtyZWN0fSBhdCAoMCwwKSBzaXplIDIwMHgyMDAg
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBb
d2lkdGg9MjAwLjAwXSBbaGVpZ2h0PTIwMC4wMF0KKyAgICBSZW5kZXJTVkdQYXRoIHtyZWN0fSBh
dCAoMCwwKSBzaXplIDIwMHgyMDAgW2ZpbGw9e1t0eXBlPUxJTkVBUi1HUkFESUVOVF0gW2lkPSJn
cmFkaWVudDEiXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD0yMDAuMDBdIFtoZWlnaHQ9MjAw
LjAwXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS94bGluay1jdXN0b20tbmFt
ZXNwYWNlLnN2ZyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20veGxpbmstY3VzdG9tLW5hbWVzcGFj
ZS5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWY1NTY1NQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20veGxpbmstY3VzdG9tLW5hbWVzcGFj
ZS5zdmcKQEAgLTAsMCArMSwxMCBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAw
MC9zdmciIHhtbG5zOnhsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KKzx0aXRsZT5U
aGUgc3F1YXJlIHNob3VsZCBiZSBncmVlbi48L3RpdGxlPgorPGxpbmVhckdyYWRpZW50IGlkPSJn
cmFkaWVudDIiPgorICAgPHN0b3Agc3RvcC1jb2xvcj0iZ3JlZW4iIHN0b3Atb2Zmc2V0PSIwIi8+
CisgICA8c3RvcCBzdG9wLWNvbG9yPSJncmVlbiIgc3RvcC1vZmZzZXQ9IjEiLz4KKzwvbGluZWFy
R3JhZGllbnQ+Cis8bGluZWFyR3JhZGllbnQgeGw6aHJlZj0iI2dyYWRpZW50MiIgaWQ9ImdyYWRp
ZW50MSIvPgorPHJlY3QgZmlsbD0icmVkIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIvPgorPHJl
Y3QgZmlsbD0idXJsKCNncmFkaWVudDEpIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIvPgorPC9z
dmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDY3NDFmM2MuLjk0
MzQwY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMzIgQEAKKzIwMTEtMDktMjggIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTig4NzAx
MCk6IGVsZW1lbnRzIGluIEVDTUEtY2xvdWQgbmVpdGhlciBmaWxsZWQgbm9yIGJsdXJyZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4Njc5CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMDIwNDY0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTdHJpcCBwcmVmaXhlcyBmcm9tIFNWRyBhdHRyaWJ1dGVz
IGJlZm9yZSB0ZXN0aW5nIGlmIHRoZXkncmUgc3VwcG9ydGVkLgorICAgICAgICBOYW1lc3BhY2Vk
IGF0dHJpYnV0ZXMgd2lsbCBiZSBtYXRjaGVkIHVzaW5nIHRoZWlyIG5hbWVzcGFjZSBpbnN0ZWFk
IG9mCisgICAgICAgIHRoZSAodXNlci1jaG9vc2FibGUpIHByZWZpeC4KKworICAgICAgICBUZXN0
OiBzdmcvY3VzdG9tL3hsaW5rLWN1c3RvbS1uYW1lc3BhY2Uuc3ZnCisKKyAgICAgICAgKiBzdmcv
U1ZHQUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQUVsZW1lbnQ6OmlzU3VwcG9y
dGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OmlzU3VwcG9ydGVk
QXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6OmlzU3VwcG9y
dGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRpb25FbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0
ZSk6CisgICAgICAgICogc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQ2lyY2xlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2
Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ2xpcFBhdGhF
bGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0NvbXBvbmVu
dFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0NvbXBv
bmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAg
ICAgICogc3ZnL1NWR0N1cnNvckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ3Vy
c29yRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdFbGVt
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcjo6aGFz
aCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcjo6ZXF1YWwp
OgorICAgICAgICAqIHN2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdFbGxpcHNlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2
Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmg6CisgICAgICAgICogc3ZnL1NWR0ZFQmxl
bmRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQmxlbmRFbGVtZW50Ojppc1N1
cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50Ojppc1N1cHBv
cnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50
Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFQ29tcG9zaXRlRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OmlzU3Vw
cG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6Omlz
U3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVu
dDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdGRURpc3BsYWNlbWVu
dE1hcEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVEaXNwbGFjZW1lbnRNYXBF
bGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFRHJvcFNo
YWRvd0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVEcm9wU2hhZG93RWxlbWVu
dDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdGRUdhdXNzaWFuQmx1
ckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50
Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50Ojppc1N1cHBvcnRlZEF0
dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0ZFTGlnaHRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAg
ICAgICogc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdGRU1lcmdlTm9kZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBz
dmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRU1v
cnBob2xvZ3lFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NW
R0ZFT2Zmc2V0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRU9mZnNldEVsZW1l
bnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRkVTcGVjdWxhckxp
Z2h0aW5nRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVNwZWN1bGFyTGlnaHRp
bmdFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFVGls
ZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVUaWxlRWxlbWVudDo6aXNTdXBw
b3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmlzU3VwcG9ydGVk
QXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdGaWx0ZXJFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAg
ICAgICogc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmlzU3Vw
cG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OmlzU3VwcG9y
dGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHR0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHR0VsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBz
dmcvU1ZHR3JhZGllbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0dyYWRpZW50
RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdJbWFnZUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VFbGVtZW50Ojppc1N1cHBvcnRl
ZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0xpbmVFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0xpbmVFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAg
ICogc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAg
KiBzdmcvU1ZHTVBhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01QYXRoRWxl
bWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdNYXJrZXJFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hcmtlckVsZW1lbnQ6OmlzU3VwcG9ydGVk
QXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHTWFza0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTWFza0VsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAg
KiBzdmcvU1ZHUGF0aEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1l
bnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0dGVybkVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0dGVybkVsZW1lbnQ6OmlzU3VwcG9ydGVk
QXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHUG9seUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUG9seUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAg
KiBzdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1JhZGlhbEdyYWRpZW50RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAq
IHN2Zy9TVkdSZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0RWxlbWVu
dDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NjcmlwdEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0
cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHU3RvcEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHU3RvcEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBz
dmcvU1ZHU3R5bGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlRWxlbWVu
dDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdTdHlsZWRUcmFuc2Zv
cm1hYmxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZWRUcmFuc2Zvcm1h
YmxlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdTeW1i
b2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N5bWJvbEVsZW1lbnQ6OmlzU3Vw
cG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHVFJlZkVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHVFJlZkVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAg
ICAgICAgKiBzdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1RleHRDb250ZW50RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAq
IHN2Zy9TVkdUZXh0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0RWxlbWVu
dDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdUZXh0UGF0aEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dFBhdGhFbGVtZW50Ojppc1N1cHBvcnRl
ZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6aXNTdXBwb3J0
ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdVUklSZWZlcmVuY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHVVJJUmVmZXJlbmNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKToKKyAg
ICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VF
bGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1ZpZXdFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdFbGVtZW50Ojppc1N1cHBvcnRlZEF0
dHJpYnV0ZSk6CisKIDIwMTEtMDktMjggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4K
IAogICAgICAgICBDU1AgZG9lc24ndCB3b3JrIGZvciBhIHdpZGUgdmFyaWV0eSBvZiBjYXNlcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKaW5kZXggNjM5MDA0ZS4uY2VhM2NiOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCkBAIC05NCw3ICs5NCw3IEBAIGJvb2wgU1ZHQUVsZW1l
bnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQog
ICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1
dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFk
ZChTVkdOYW1lczo6dGFyZ2V0QXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmNvbnRhaW5zKGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRl
cy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0
ck5hbWUpOwogfQogCiB2b2lkIFNWR0FFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRy
aWJ1dGUqIGF0dHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1v
dGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVt
ZW50LmNwcAppbmRleCA1ODc4NGY2Li5mYzFlZDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgYm9vbCBTVkdB
bmltYXRlTW90aW9uRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVk
TmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmli
dXRlcy5pc0VtcHR5KCkpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVz
OjpwYXRoQXR0cik7Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnMoYXR0
ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmll
ZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQg
U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSog
YXR0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1l
bnQuY3BwCmluZGV4IGNhN2FhZTguLjI1NWZhMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcApAQCAtODksNyArODksNyBAQCBib29s
IFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyTgogICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFs
aWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmlzRW1wdHkoKSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZH
TmFtZXM6OnR5cGVBdHRyKTsKLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlu
cyhhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVh
bGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAog
dm9pZCBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0
cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlv
bkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3Bw
CmluZGV4IDM5ODA4YjQuLjk3NmVmOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
aW9uRWxlbWVudC5jcHAKQEAgLTE1NCw3ICsxNTQsNyBAQCBib29sIFNWR0FuaW1hdGlvbkVsZW1l
bnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQog
ICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6a2V5UG9pbnRzQXR0cik7
CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjprZXlTcGxpbmVzQXR0
cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zKGF0dHJO
YW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWRO
YW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogICAgICAKIHZv
aWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBh
dHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwCmluZGV4IDJhZTY5Yjgu
LjI4OGU1OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAKQEAgLTc2
LDcgKzc2LDcgQEAgYm9vbCBTVkdDaXJjbGVFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRl
cy5hZGQoU1ZHTmFtZXM6OmN5QXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRk
KFNWR05hbWVzOjpyQXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmNvbnRhaW5zKGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250
YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUp
OwogfQogCiB2b2lkIFNWR0NpcmNsZUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJp
YnV0ZSogYXR0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHAKaW5k
ZXggZDk1YTYxZS4uYjIxNDM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Ns
aXBQYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxl
bWVudC5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgYm9vbCBTVkdDbGlwUGF0aEVsZW1lbnQ6OmlzU3Vw
cG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBv
cnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1l
czo6Y2xpcFBhdGhVbml0c0F0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmli
dXRlcy5jb250YWlucyhhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
Y29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJO
YW1lKTsKIH0KIAogdm9pZCBTVkdDbGlwUGF0aEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRl
KEF0dHJpYnV0ZSogYXR0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21w
b25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Q29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwCmluZGV4IGQzYjQ4NmYuLjQwODJh
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1
bmN0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRy
YW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcApAQCAtNzEsNyArNzEsNyBAQCBib29sIFNWR0NvbXBv
bmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6ZXhw
b25lbnRBdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6Om9m
ZnNldEF0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlu
cyhhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVh
bGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAog
dm9pZCBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRy
aWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0N1cnNvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQu
Y3BwCmluZGV4IDUzZGYyOTUuLjdjYTZiNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdDdXJzb3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29y
RWxlbWVudC5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgYm9vbCBTVkdDdXJzb3JFbGVtZW50Ojppc1N1
cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAg
c3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnhBdHRyKTsKICAgICAgICAgc3VwcG9y
dGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnlBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnMoYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFu
c2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHQ3Vyc29yRWxlbWVudDo6cGFyc2VNYXBw
ZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgKaW5kZXgg
ODU1M2ZhNi4uZjZjZGQzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCkBAIC0xMzAsNiArMTMw
LDE1IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGhhdmVMb2FkZWRSZXF1aXJlZFJlc291
cmNlcygpOwogfTsKIAorc3RydWN0IFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yIHsKKyAgICBz
dGF0aWMgdW5zaWduZWQgaGFzaChRdWFsaWZpZWROYW1lIGtleSkKKyAgICB7CisgICAgICAgIGtl
eS5zZXRQcmVmaXgobnVsbEF0b20pOworICAgICAgICByZXR1cm4gRGVmYXVsdEhhc2g8UXVhbGlm
aWVkTmFtZT46Okhhc2g6Omhhc2goa2V5KTsKKyAgICB9CisgICAgc3RhdGljIGJvb2wgZXF1YWwo
UXVhbGlmaWVkTmFtZSBhLCBRdWFsaWZpZWROYW1lIGIpIHsgcmV0dXJuIGEubWF0Y2hlcyhiKTsg
fQorfTsKKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdF
bGxpcHNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQu
Y3BwCmluZGV4IGNlYTA2NmQuLjliOWRhNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlw
c2VFbGVtZW50LmNwcApAQCAtNzgsNyArNzgsNyBAQCBib29sIFNWR0VsbGlwc2VFbGVtZW50Ojpp
c1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAg
ICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnJ4QXR0cik7CiAgICAgICAgIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpyeUF0dHIpOwogICAgIH0KLSAgICByZXR1
cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFz
aFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdFbGxpcHNlRWxlbWVudDo6cGFy
c2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgKaW5kZXggOTA1MGI1OS4uMzk1OWIx
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZC5oCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIlF1
YWxpZmllZE5hbWUuaCIKKyNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAjaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJs
ZW5kRWxlbWVudC5jcHAKaW5kZXggZDUxMmRmMS4uYWEwYzRiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVCbGVuZEVsZW1lbnQuY3BwCkBAIC02NCw3ICs2NCw3IEBAIGJvb2wgU1ZHRkVCbGVu
ZEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJO
YW1lKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6aW5BdHRyKTsK
ICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmluMkF0dHIpOwogICAg
IH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7Cisg
ICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZH
QXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdGRUJsZW5k
RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAKaW5kZXggN2I2NTI5Yy4u
NDdiNTdmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1l
bnQuY3BwCkBAIC02NCw3ICs2NCw3IEBAIGJvb2wgU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6Omlz
U3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lCiAgICAgICAg
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp2YWx1ZXNBdHRyKTsKICAgICAgICAg
c3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmluQXR0cik7CiAgICAgfQotICAgIHJl
dHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zKGF0dHJOYW1lKTsKKyAgICByZXR1cm4g
c3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVI
YXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFQ29sb3JNYXRyaXhFbGVt
ZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcAppbmRleCAz
MTcxMTFmLi41N2Q1MGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21w
b25lbnRUcmFuc2ZlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNv
bXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgYm9vbCBTVkdGRUNv
bXBvbmVudFRyYW5zZmVyRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXQKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFt
ZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRl
cy5pc0VtcHR5KCkpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpp
bkF0dHIpOwotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zKGF0dHJOYW1l
KTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1l
LCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZF
Q29tcG9uZW50VHJhbnNmZXJFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUq
IGF0dHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwCmlu
ZGV4IGExNDNiYWUuLjkzZDg4ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUNvbXBvc2l0ZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBv
c2l0ZUVsZW1lbnQuY3BwCkBAIC03Niw3ICs3Niw3IEBAIGJvb2wgU1ZHRkVDb21wb3NpdGVFbGVt
ZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkK
ICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmszQXR0cik7CiAgICAg
ICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjprNEF0dHIpOwogICAgIH0KLSAg
ICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7CisgICAgcmV0
dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmli
dXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdGRUNvbXBvc2l0ZUVs
ZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCmluZGV4IDllY2Yx
YTYuLjJiNTdmYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZl
TWF0cml4RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVN
YXRyaXhFbGVtZW50LmNwcApAQCAtMTE2LDcgKzExNiw3IEBAIGJvb2wgU1ZHRkVDb252b2x2ZU1h
dHJpeEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJOCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjprZXJuZWxVbml0
TGVuZ3RoQXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpw
cmVzZXJ2ZUFscGhhQXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmNvbnRhaW5zKGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250
YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUp
OwogfQogCiB2b2lkIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJp
YnV0ZShBdHRyaWJ1dGUqIGF0dHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURp
ZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCmluZGV4IDUzOWMzYWYuLjE5NTE2Y2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCkBA
IC04Nyw3ICs4Nyw3IEBAIGJvb2wgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50Ojppc1N1cHBv
cnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyCiAgICAgICAgIHN1cHBvcnRl
ZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjprZXJuZWxVbml0TGVuZ3RoQXR0cik7CiAgICAgICAg
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpsaWdodGluZ19jb2xvckF0dHIpOyAv
LyBFdmVuIHRob3VnaCBpdCdzIGEgU1ZHLUNTUyBwcm9wZXJ0eSwgd2Ugb3ZlcnJpZGUgaXRzIGhh
bmRsaW5nIGhlcmUuCiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRh
aW5zKGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxR
dWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQog
CiB2b2lkIFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUo
QXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlz
cGxhY2VtZW50TWFwRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFj
ZW1lbnRNYXBFbGVtZW50LmNwcAppbmRleCBmN2ZmZmM5Li40ZDMyNDE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcApAQCAtNzAs
NyArNzAsNyBAQCBib29sIFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudDo6aXNTdXBwb3J0ZWRB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cgogICAgICAgICBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmFkZChTVkdOYW1lczo6eUNoYW5uZWxTZWxlY3RvckF0dHIpOwogICAgICAgICBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6c2NhbGVBdHRyKTsKICAgICB9Ci0gICAgcmV0
dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnMoYXR0ck5hbWUpOworICAgIHJldHVybiBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhh
c2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHRkVEaXNwbGFjZW1lbnRNYXBF
bGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAKaW5kZXggNmYzOTBlMy4uZDIy
NTlkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNw
cApAQCAtOTIsNyArOTIsNyBAQCBib29sIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OmlzU3VwcG9y
dGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6ZHlBdHRyKTsKICAgICAgICAgc3VwcG9ydGVk
QXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnN0ZERldmlhdGlvbkF0dHIpOwogICAgIH0KLSAgICBy
ZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7CisgICAgcmV0dXJu
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRl
SGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdGRURyb3BTaGFkb3dFbGVt
ZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwCmluZGV4IDY4ZDVkZWQuLmE2
M2ZlYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1l
bnQuY3BwCkBAIC04Miw3ICs4Miw3IEBAIGJvb2wgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50Ojpp
c1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtCiAgICAgICAg
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjppbkF0dHIpOwogICAgICAgICBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6c3RkRGV2aWF0aW9uQXR0cik7CiAgICAgfQot
ICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zKGF0dHJOYW1lKTsKKyAgICBy
ZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRy
aWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFR2F1c3NpYW5C
bHVyRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKaW5kZXggN2QzNTZmNC4uNDk0ZTFiOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCkBAIC05Niw3ICs5Niw3
IEBAIGJvb2wgU1ZHRkVJbWFnZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAg
ICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0
dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlucyhhdHRy
TmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVk
TmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBT
VkdGRUltYWdlRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5jcHAKaW5kZXggMzAwZmZkMy4uZGNh
ODg5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuY3BwCkBAIC0xMDMs
NyArMTAzLDcgQEAgYm9vbCBTVkdGRUxpZ2h0RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0
ZXMuYWRkKFNWR05hbWVzOjpzcGVjdWxhckV4cG9uZW50QXR0cik7CiAgICAgICAgIHN1cHBvcnRl
ZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpsaW1pdGluZ0NvbmVBbmdsZUF0dHIpOwogICAgIH0K
LSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7CisgICAg
cmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0
cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdGRUxpZ2h0RWxl
bWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNwcAppbmRleCBhNzYwNmI3Li45Mzk0ZWY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNwcApAQCAt
NTYsNyArNTYsNyBAQCBib29sIFNWR0ZFTWVyZ2VOb2RlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAg
ICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKQogICAgICAgICBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6aW5BdHRyKTsKLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0
cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0
ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0
dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdGRU1lcmdlTm9kZUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0
cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBo
b2xvZ3lFbGVtZW50LmNwcAppbmRleCA0NTQ5YzFlLi44NGI0MDk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwCkBAIC04NSw3ICs4NSw3IEBAIGJv
b2wgU1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNW
R05hbWVzOjpvcGVyYXRvckF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChT
VkdOYW1lczo6cmFkaXVzQXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmNvbnRhaW5zKGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5j
b250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5h
bWUpOwogfQogCiB2b2lkIFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmli
dXRlKEF0dHJpYnV0ZSogYXR0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RU9mZnNldEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVu
dC5jcHAKaW5kZXggMzEzZTRkNi4uZmU5YzM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
T2Zmc2V0RWxlbWVudC5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgYm9vbCBTVkdGRU9mZnNldEVsZW1l
bnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQog
ICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6ZHhBdHRyKTsKICAgICAg
ICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmR5QXR0cik7CiAgICAgfQotICAg
IHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zKGF0dHJOYW1lKTsKKyAgICByZXR1
cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1
dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFT2Zmc2V0RWxlbWVu
dDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCmluZGV4IDUzMGY1
NjYuLjgyNzE1NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFy
TGlnaHRpbmdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxh
ckxpZ2h0aW5nRWxlbWVudC5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgYm9vbCBTVkdGRVNwZWN1bGFy
TGlnaHRpbmdFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHQKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnN1cmZhY2VT
Y2FsZUF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6a2Vy
bmVsVW5pdExlbmd0aEF0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRl
cy5jb250YWlucyhhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29u
dGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1l
KTsKIH0KIAogdm9pZCBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpwYXJzZU1hcHBlZEF0
dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVUaWxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVu
dC5jcHAKaW5kZXggZTRkMmE3ZS4uMWNiZTI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRp
bGVFbGVtZW50LmNwcApAQCAtNTcsNyArNTcsNyBAQCBib29sIFNWR0ZFVGlsZUVsZW1lbnQ6Omlz
U3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIERF
RklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmli
dXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkKICAgICAg
ICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmluQXR0cik7Ci0gICAgcmV0dXJu
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnMoYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hU
cmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHRkVUaWxlRWxlbWVudDo6cGFyc2VN
YXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCmluZGV4IDcyMWE3ZjYuLjg5MTI2MDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAKQEAgLTg1LDcgKzg1
LDcgQEAgYm9vbCBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRl
cy5hZGQoU1ZHTmFtZXM6OnN0aXRjaFRpbGVzQXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuYWRkKFNWR05hbWVzOjp0eXBlQXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zKGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0
cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRv
cj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OnBhcnNlTWFw
cGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJF
bGVtZW50LmNwcAppbmRleCBkNjBhNmE4Li45N2ZlMzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZpbHRlckVsZW1lbnQuY3BwCkBAIC0xMTcsNyArMTE3LDcgQEAgYm9vbCBTVkdGaWx0ZXJFbGVt
ZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkK
ICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmhlaWdodEF0dHIpOwog
ICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6ZmlsdGVyUmVzQXR0cik7
CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zKGF0dHJOYW1l
KTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1l
LCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0Zp
bHRlckVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlcy5jcHAKaW5kZXggMTQyOGNlNC4uZWNiYTNkZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cy5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgYm9vbCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0
dHJpYnV0ZXM6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE4KICAgICAgICAg
c3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmhlaWdodEF0dHIpOwogICAgICAgICBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6cmVzdWx0QXR0cik7CiAgICAgfQotICAg
IHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zKGF0dHJOYW1lKTsKKyAgICByZXR1
cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1
dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKaW5k
ZXggNmJkM2Q2NS4uZTJmYWVmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zv
cmVpZ25PYmplY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWln
bk9iamVjdEVsZW1lbnQuY3BwCkBAIC04MSw3ICs4MSw3IEBAIGJvb2wgU1ZHRm9yZWlnbk9iamVj
dEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJO
YW1lCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp3aWR0aEF0dHIp
OwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6aGVpZ2h0QXR0cik7
CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zKGF0dHJOYW1l
KTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1l
LCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0Zv
cmVpZ25PYmplY3RFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcAppbmRleCBmMjcyY2M0Li42Y2M3ZDgzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgYm9vbCBTVkdHRWxl
bWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUp
CiAgICAgICAgIFNWR0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRB
dHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3Vw
cG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICB9Ci0gICAgcmV0dXJu
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnMoYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hU
cmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHR0VsZW1lbnQ6OnBhcnNlTWFwcGVk
QXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdHcmFkaWVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYWRpZW50
RWxlbWVudC5jcHAKaW5kZXggOTg1ZGQ3Mi4uZjM0OTk4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dyYWRpZW50RWxlbWVudC5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgYm9vbCBTVkdHcmFkaWVu
dEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJO
YW1lKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6Z3JhZGllbnRU
cmFuc2Zvcm1BdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6
OnNwcmVhZE1ldGhvZEF0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRl
cy5jb250YWlucyhhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29u
dGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1l
KTsKIH0KIAogdm9pZCBTVkdHcmFkaWVudEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0
dHJpYnV0ZSogYXR0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKaW5kZXgg
NzlmZTEyOC4uYWY0YzI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdl
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAK
QEAgLTg4LDcgKzg4LDcgQEAgYm9vbCBTVkdJbWFnZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmFkZChTVkdOYW1lczo6aGVpZ2h0QXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuYWRkKFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0cik7CiAgICAgfQotICAg
IHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zKGF0dHJOYW1lKTsKKyAgICByZXR1
cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1
dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ltYWdlRWxlbWVudDo6
cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
aW5lRWxlbWVudC5jcHAKaW5kZXggYzdjYTExZS4uYzliMjE0NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTGluZUVsZW1lbnQuY3BwCkBAIC03OCw3ICs3OCw3IEBAIGJvb2wgU1ZHTGluZUVsZW1lbnQ6
OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAg
ICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6eTFBdHRyKTsKICAgICAgICAg
c3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnkyQXR0cik7CiAgICAgfQotICAgIHJl
dHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zKGF0dHJOYW1lKTsKKyAgICByZXR1cm4g
c3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVI
YXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0xpbmVFbGVtZW50OjpwYXJz
ZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCmluZGV4IGIxYWMyNGQuLjdjOGIzNDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCkBA
IC04MCw3ICs4MCw3IEBAIGJvb2wgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50Ojppc1N1cHBvcnRl
ZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtCiAgICAgICAgIHN1cHBvcnRl
ZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp5MUF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmFkZChTVkdOYW1lczo6eTJBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRl
ZEF0dHJpYnV0ZXMuY29udGFpbnMoYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9y
PihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpwYXJzZU1h
cHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVs
ZW1lbnQuY3BwCmluZGV4IDU0NDU1YzEuLmIzNmNkNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdN
UGF0aEVsZW1lbnQuY3BwCkBAIC01Niw3ICs1Niw3IEBAIGJvb2wgU1ZHTVBhdGhFbGVtZW50Ojpp
c1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAg
ICAgU1ZHVVJJUmVmZXJlbmNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJp
YnV0ZXMpOwogICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0
ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgIH0KLSAgICByZXR1cm4gc3Vw
cG9ydGVkQXR0cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRl
ZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5z
bGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdNUGF0aEVsZW1lbnQ6OnBhcnNlTWFwcGVk
QXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXJrZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVt
ZW50LmNwcAppbmRleCA0ODBlNWJmLi5jYmYxYjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01h
cmtlckVsZW1lbnQuY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgYm9vbCBTVkdNYXJrZXJFbGVtZW50
Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAg
ICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6Om1hcmtlckhlaWdodEF0dHIp
OwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6b3JpZW50QXR0cik7
CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zKGF0dHJOYW1l
KTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1l
LCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR01h
cmtlckVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCmluZGV4IDU1NGExNDMuLmI2NWFmMTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcApAQCAtOTEsNyArOTEsNyBAQCBib29sIFNW
R01hc2tFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyTmFtZSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OndpZHRo
QXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpoZWlnaHRB
dHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnMoYXR0
ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmll
ZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQg
U1ZHTWFza0VsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCmluZGV4IGE3YTMzN2UuLjRhZTY2MTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcApAQCAtMjEyLDcgKzIxMiw3IEBAIGJv
b2wgU1ZHUGF0aEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6
ZEF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6cGF0aExl
bmd0aEF0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlu
cyhhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVh
bGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAog
dm9pZCBTVkdQYXRoRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAKaW5kZXggOTk0MTAwNC4u
YmVkMzA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwCkBAIC0x
MDYsNyArMTA2LDcgQEAgYm9vbCBTVkdQYXR0ZXJuRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuYWRkKFNWR05hbWVzOjp3aWR0aEF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmFkZChTVkdOYW1lczo6aGVpZ2h0QXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zKGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0
cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRv
cj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR1BhdHRlcm5FbGVtZW50OjpwYXJzZU1hcHBlZEF0
dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUG9seUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNw
cAppbmRleCA2MTZiODY3Li42NmM1MjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUG9seUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVu
dC5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgYm9vbCBTVkdQb2x5RWxlbWVudDo6aXNTdXBwb3J0ZWRB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0
cmlidXRlcyk7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpwb2lu
dHNBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnMo
YXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxp
ZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZv
aWQgU1ZHUG9seUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAKaW5k
ZXggMGY4NmE2ZC4uNTY1ZDM5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Jh
ZGlhbEdyYWRpZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlh
bEdyYWRpZW50RWxlbWVudC5jcHAKQEAgLTg0LDcgKzg0LDcgQEAgYm9vbCBTVkdSYWRpYWxHcmFk
aWVudEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJOYW0KICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmZ5QXR0cik7
CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpyQXR0cik7CiAgICAg
fQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zKGF0dHJOYW1lKTsKKyAg
ICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdB
dHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR1JhZGlhbEdy
YWRpZW50RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAKaW5kZXggZTg0Nzc0ZC4uOTIwNzc0NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCkBAIC04NSw3ICs4NSw3IEBAIGJvb2wg
U1ZHUmVjdEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJOYW1lKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6cnhB
dHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnJ5QXR0cik7
CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zKGF0dHJOYW1l
KTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1l
LCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR1Jl
Y3RFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggN2I5YmNjOC4uZDdhMzJhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcApAQCAtNjYsNyArNjYsNyBAQCBi
b29sIFNWR1NjcmlwdEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1l
czo6dHlwZUF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChIVE1MTmFtZXM6
Om9uZXJyb3JBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29u
dGFpbnMoYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5z
PFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9
CiAKIHZvaWQgU1ZHU2NyaXB0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRl
KiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5jcHAKaW5kZXggNjMzMzEyNC4u
OTJkMGI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCkBAIC01OSw3ICs1
OSw3IEBAIGJvb2wgU1ZHU3RvcEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxR
dWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQo
U1ZHTmFtZXM6Om9mZnNldEF0dHIpOwotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNv
bnRhaW5zKGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlu
czxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwog
fQogCiB2b2lkIFNWR1N0b3BFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUq
IGF0dHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCmluZGV4IDViOGQzNmYu
LjJlY2MyNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCkBAIC05Miw3
ICs5Miw3IEBAIGJvb2wgU1ZHU3R5bGVFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgU1ZHTGFuZ1NwYWNlOjphZGRTdXBw
b3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6dGl0bGVBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnMoYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFu
c2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHU3R5bGVFbGVtZW50OjpwYXJzZU1hcHBl
ZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcAppbmRleCAyOGVjN2JhLi40YmJkNjJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxl
RWxlbWVudC5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgYm9vbCBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxl
RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXQKICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0
dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpCiAg
ICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp0cmFuc2Zvcm1BdHRyKTsK
LSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7CisgICAg
cmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0
cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdTdHlsZWRUcmFu
c2Zvcm1hYmxlRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuY3BwCmluZGV4IGU1MGJjOTQuLjAzYmQ0
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAKQEAgLTYxLDcgKzYx
LDcgQEAgYm9vbCBTVkdTeW1ib2xFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAg
ICAgU1ZHRml0VG9WaWV3Qm94OjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJp
YnV0ZXMpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlucyhh
dHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlm
aWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9p
ZCBTVkdTeW1ib2xFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcAppbmRleCBlMmUxZWVhLi43MjcwYTE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKQEAgLTE1NSw3ICsxNTUsNyBA
QCBib29sIFNWR1RSZWZFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlm
aWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0
cmlidXRlcy5pc0VtcHR5KCkpCiAgICAgICAgIFNWR1VSSVJlZmVyZW5jZTo6YWRkU3VwcG9ydGVk
QXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0
cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0
ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0
dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdUUmVmRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUo
QXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRD
b250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVt
ZW50LmNwcAppbmRleCBhNjQ4M2Y0Li44NzhiYzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcApAQCAtMjI1LDcgKzIyNSw3IEBAIGJvb2wgU1ZHVGV4
dENvbnRlbnRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6Omxl
bmd0aEFkanVzdEF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1l
czo6dGV4dExlbmd0aEF0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRl
cy5jb250YWlucyhhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29u
dGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1l
KTsKIH0KIAogdm9pZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRl
KEF0dHJpYnV0ZSogYXR0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwCmluZGV4
IDEwYzcyODkuLmUwZjVlYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmNwcApA
QCAtNjAsNyArNjAsNyBAQCBib29sIFNWR1RleHRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBp
ZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuYWRkKFNWR05hbWVzOjp0cmFuc2Zvcm1BdHRyKTsKLSAgICByZXR1cm4gc3VwcG9ydGVk
QXR0cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+
KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdUZXh0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1
dGUoQXR0cmlidXRlKiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rl
eHRQYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50
LmNwcAppbmRleCBlMmJiM2NkLi5iYmM0NGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4
dFBhdGhFbGVtZW50LmNwcApAQCAtNjksNyArNjksNyBAQCBib29sIFNWR1RleHRQYXRoRWxlbWVu
dDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAg
ICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjptZXRob2RBdHRyKTsKICAg
ICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnNwYWNpbmdBdHRyKTsKICAg
ICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnMoYXR0ck5hbWUpOwor
ICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNW
R0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHVGV4dFBh
dGhFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAKaW5kZXggMzk3
MTNmMC4uM2I5YzkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQb3Np
dGlvbmluZ0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRp
b25pbmdFbGVtZW50LmNwcApAQCAtNjUsNyArNjUsNyBAQCBib29sIFNWR1RleHRQb3NpdGlvbmlu
Z0VsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJO
YQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6ZHlBdHRyKTsKICAg
ICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnJvdGF0ZUF0dHIpOwogICAg
IH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlucyhhdHRyTmFtZSk7Cisg
ICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZH
QXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdUZXh0UG9z
aXRpb25pbmdFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVVJJUmVmZXJlbmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdVUklSZWZlcmVuY2UuY3BwCmluZGV4IDZlZmRhMTkuLjA1NGI5OTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVUklSZWZlcmVuY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVUklSZWZlcmVuY2UuY3BwCkBAIC03MywxMCArNzMsNiBA
QCBFbGVtZW50KiBTVkdVUklSZWZlcmVuY2U6OnRhcmdldEVsZW1lbnRGcm9tSVJJU3RyaW5nKGNv
bnN0IFN0cmluZyYgaXJpLCBEb2N1bWVudAogCiB2b2lkIFNWR1VSSVJlZmVyZW5jZTo6YWRkU3Vw
cG9ydGVkQXR0cmlidXRlcyhIYXNoU2V0PFF1YWxpZmllZE5hbWU+JiBzdXBwb3J0ZWRBdHRyaWJ1
dGVzKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB4bGlua1ByZWZp
eCwgKCJ4bGluayIpKTsKLSAgICBRdWFsaWZpZWROYW1lIGhyZWZXaXRoUHJlZml4ID0gWExpbmtO
YW1lczo6aHJlZkF0dHI7Ci0gICAgaHJlZldpdGhQcmVmaXguc2V0UHJlZml4KHhsaW5rUHJlZml4
KTsKLSAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChocmVmV2l0aFByZWZpeCk7CiAgICAgc3Vw
cG9ydGVkQXR0cmlidXRlcy5hZGQoWExpbmtOYW1lczo6aHJlZkF0dHIpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKaW5kZXggYTE3MGMxYy4uZDg0MjJlMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIGJvb2wgU1ZHVXNl
RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp3aWR0aEF0dHIp
OwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6aGVpZ2h0QXR0cik7
CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zKGF0dHJOYW1l
KTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1l
LCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR1Vz
ZUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVmlld0VsZW1lbnQuY3BwCmluZGV4IGRlMzUyNmEuLjZjMTg2MDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcApAQCAtNjUsNyArNjUsNyBAQCBib29sIFNWR1Zp
ZXdFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkKICAgICAgICAgU1ZHWm9vbUFuZFBhbjo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBw
b3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFt
ZXM6OnZpZXdUYXJnZXRBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0
ZXMuY29udGFpbnMoYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNv
bnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFt
ZSk7CiB9CiAKIHZvaWQgU1ZHVmlld0VsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJp
YnV0ZSogYXR0cikK
</data>

          </attachment>
      

    </bug>

</bugzilla>