<?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>30276</bug_id>
          
          <creation_ts>2009-10-10 06:18:57 -0700</creation_ts>
          <short_desc>Implement getActiveAttrib and getActiveUniform</short_desc>
          <delta_ts>2009-11-06 16:59:56 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cmarrin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>153867</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-10-10 06:18:57 -0700</bug_when>
    <thetext>as in title</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153871</commentid>
    <comment_count>1</comment_count>
      <attachid>40990</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-10-10 06:54:03 -0700</bug_when>
    <thetext>Created attachment 40990
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153879</commentid>
    <comment_count>2</comment_count>
      <attachid>40990</attachid>
    <who name="">mitz</who>
    <bug_when>2009-10-10 10:51:20 -0700</bug_when>
    <thetext>Comment on attachment 40990
Patch v1

A few notes, even though I can’t review this patch:

&gt; +        mechanical work needed to set up a webgl context for testing.

It’s spelled WebGL.

&gt; + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS&apos;&apos; AND ANY

This is not the correct license.

&gt; +#include &quot;PlatformString.h&quot;
&gt; +
&gt; +#include &lt;wtf/PassRefPtr.h&gt;

Extra newline.

&gt; +    int size() const { return m_size; }
&gt; +private:

But there should be a newline before “private:”

&gt; + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS&apos;&apos; AND ANY

License.

&gt; +module html {
&gt; +    interface [

Should have a newline there.

&gt; +        Conditional=3D_CANVAS,
&gt; +    ] CanvasActiveInfo {
&gt; +        readonly attribute int size;
&gt; +        readonly attribute unsigned int type;
&gt; +        readonly attribute DOMString name;
&gt; +    };
&gt; +}

And another one before the last brace.

&gt; +PassRefPtr&lt;CanvasActiveInfo&gt; CanvasRenderingContext3D::getActiveAttrib(CanvasProgram* program, unsigned long index, ExceptionCode&amp; ec)
&gt; +{
&gt; +    ec = 0;

You shouldn’t reset ec. The caller should do it if it cares (the autogenerated bindings do).

&gt; +PassRefPtr&lt;CanvasActiveInfo&gt; CanvasRenderingContext3D::getActiveUniform(CanvasProgram* program, unsigned long index, ExceptionCode&amp; ec)
&gt; +{
&gt; +    ec = 0;

Ditto.

&gt; +        bool getActiveAttrib(CanvasProgram* program, unsigned long index, ActiveInfo&amp;);
&gt; +        bool getActiveUniform(CanvasProgram* program, unsigned long index, ActiveInfo&amp;);

No need to name the “program” parameter.

&gt;  #include &quot;CachedImage.h&quot;
&gt; +#include &quot;CanvasActiveInfo.h&quot;
&gt;  #include &quot;CanvasBuffer.h&quot;
&gt;  #include &quot;CanvasFramebuffer.h&quot;
&gt;  #include &quot;CanvasArray.h&quot;

These are not in the right order.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153886</commentid>
    <comment_count>3</comment_count>
      <attachid>40994</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-10-10 12:53:38 -0700</bug_when>
    <thetext>Created attachment 40994
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153887</commentid>
    <comment_count>4</comment_count>
      <attachid>40994</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-10-10 13:28:15 -0700</bug_when>
    <thetext>Comment on attachment 40994
Patch v1

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153888</commentid>
    <comment_count>5</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-10-10 14:17:32 -0700</bug_when>
    <thetext>Committed r49420</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40990</attachid>
            <date>2009-10-10 06:54:03 -0700</date>
            <delta_ts>2009-10-10 12:53:22 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-30276-20091010065402.patch</filename>
            <type>text/plain</type>
            <size>28313</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxNGUwNzg4Li5jYmEwYTUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMDktMTAt
MTAgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgZ2V0QWN0aXZlQXR0cmliIGFu
ZCBnZXRBY3RpdmVVbmlmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zMDI3NgorCisgICAgICAgIEFkZHMgdGVzdCBmb3IgZ2V0QWN0aXZlQXR0cmli
IGFuZCBnZXRBY3RpdmVVbmlmb3JtLiAgQWRkaXRpb25hbGx5CisgICAgICAgIGFkZHMgYSBiYXNp
YyBzaGFkZXIgcGFpciwgYW5kIGEgdXRpbGl0eSBsaWJyYXJ5IHRvIGRvIHRoZSBtb3JlCisgICAg
ICAgIG1lY2hhbmljYWwgd29yayBuZWVkZWQgdG8gc2V0IHVwIGEgd2ViZ2wgY29udGV4dCBmb3Ig
dGVzdGluZy4KKworICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2dldEFjdGl2ZVRlc3QtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9nZXRBY3RpdmVU
ZXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3Jlc291cmNlcy9m
cmFnbWVudFNoYWRlci5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9y
ZXNvdXJjZXMvc2hhZGVyLXRlc3QuanM6IEFkZGVkLgorICAgICAgICAoZ2V0U2hhZGVyU291cmNl
KToKKyAgICAgICAgKGNyZWF0ZTNEQ29udGV4dCk6CisgICAgICAgIChsb2FkU3RhbmRhcmRQcm9n
cmFtKToKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9yZXNvdXJjZXMvdmVydGV4U2hhZGVy
LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0cy9n
ZXRBY3RpdmVUZXN0LmpzOiBBZGRlZC4KKwogMjAwOS0xMC0wOSAgQWxleGV5IFByb3NrdXJ5YWtv
diAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBCcmFkeSBFaWRzb24uCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nZXRBY3RpdmVUZXN0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dldEFjdGl2ZVRlc3Qt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkZTY5YTgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nZXRBY3Rp
dmVUZXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM5IEBACitUZXN0IG9mIGdldEFjdGl2ZUF0
dHJpYiBhbmQgZ2V0QWN0aXZlVW5pZm9ybQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
K1BBU1MgY29udGV4dC5nZXRFcnJvcigpIGlzIDAKK1BBU1MgY29udGV4dC5nZXRBY3RpdmVVbmlm
b3JtKHByb2dyYW0sIDApLm5hbWUgaXMgJ3VfbW9kZWxWaWV3UHJvak1hdHJpeCcKK1BBU1MgY29u
dGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDApLnR5cGUgaXMgY29udGV4dC5GTE9BVF9N
QVQ0CitQQVNTIGNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAwKS5zaXplIGlzIDEK
K1BBU1MgY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDEpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1MgY29udGV4dC5n
ZXRFcnJvcigpIGlzIGNvbnRleHQuSU5WQUxJRF9WQUxVRQorUEFTUyBjb250ZXh0LmdldEFjdGl2
ZVVuaWZvcm0ocHJvZ3JhbSwgLTEpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9F
UlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1MgY29udGV4dC5nZXRFcnJvcigpIGlzIGNvbnRleHQu
SU5WQUxJRF9WQUxVRQorUEFTUyBjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0obnVsbCwgMCkgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFT
UyBjb250ZXh0LmdldEVycm9yKCkgaXMgMAorUEFTUyBjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihw
cm9ncmFtLCAwKS5uYW1lIGlzICdhX25vcm1hbCcKK1BBU1MgY29udGV4dC5nZXRBY3RpdmVBdHRy
aWIocHJvZ3JhbSwgMCkudHlwZSBpcyBjb250ZXh0LkZMT0FUX1ZFQzMKK1BBU1MgY29udGV4dC5n
ZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMCkuc2l6ZSBpcyAxCitQQVNTIGNvbnRleHQuZ2V0QWN0
aXZlQXR0cmliKHByb2dyYW0sIDEpLm5hbWUgaXMgJ2FfdmVydGV4JworUEFTUyBjb250ZXh0Lmdl
dEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAxKS50eXBlIGlzIGNvbnRleHQuRkxPQVRfVkVDNAorUEFT
UyBjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAxKS5zaXplIGlzIDEKK1BBU1MgY29u
dGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJ
TkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyBjb250ZXh0LmdldEVycm9yKCkg
aXMgY29udGV4dC5JTlZBTElEX1ZBTFVFCitQQVNTIGNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHBy
b2dyYW0sIC0xKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhj
ZXB0aW9uIDEuCitQQVNTIGNvbnRleHQuZ2V0RXJyb3IoKSBpcyBjb250ZXh0LklOVkFMSURfVkFM
VUUKK1BBU1MgY29udGV4dC5nZXRBY3RpdmVBdHRyaWIobnVsbCwgMCkgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyBjb250ZXh0Lmdl
dEVycm9yKCkgaXMgMAorUEFTUyBjb250ZXh0Mi5nZXRFcnJvcigpIGlzIDAKK1BBU1MgY29udGV4
dDIuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5E
RVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1MgY29udGV4dDIuZ2V0RXJyb3IoKSBp
cyAwCitQQVNTIGNvbnRleHQyLmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyBjb250
ZXh0Mi5nZXRFcnJvcigpIGlzIDAKK1BBU1MgY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dy
YW0sIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRp
b24gMS4KK1BBU1MgY29udGV4dC5nZXRFcnJvcigpIGlzIDAKK1BBU1MgY29udGV4dC5nZXRBY3Rp
dmVBdHRyaWIocHJvZ3JhbSwgMCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VS
UjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyBjb250ZXh0LmdldEVycm9yKCkgaXMgMAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dldEFjdGl2ZVRlc3QuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dldEFjdGl2ZVRlc3QuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNzBjNDE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2V0QWN0aXZlVGVzdC5odG1sCkBAIC0wLDAgKzEsMTUg
QEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3NoYWRlci10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVz
Y3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvZ2V0QWN0aXZlVGVzdC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3Jlc291
cmNlcy9mcmFnbWVudFNoYWRlci5mcmFnIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
cmVzb3VyY2VzL2ZyYWdtZW50U2hhZGVyLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNTNhNTU2YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3dlYmdsL3Jlc291cmNlcy9mcmFnbWVudFNoYWRlci5mcmFnCkBAIC0wLDAgKzEsNiBAQAor
dmFyeWluZyB2ZWMzIHZfbm9ybWFsOworCit2b2lkIG1haW4oKQoreworICAgIGdsX0ZyYWdDb2xv
ciA9IHZlYzQodl9ub3JtYWwvMi4wK3ZlYzMoMC41KSwgMSk7Cit9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9yZXNvdXJjZXMvc2hhZGVyLXRlc3QuanMgYi9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9yZXNvdXJjZXMvc2hhZGVyLXRlc3QuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2MwYTJjNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3Jlc291cmNlcy9zaGFkZXItdGVzdC5qcwpA
QCAtMCwwICsxLDI4IEBACitmdW5jdGlvbiBnZXRTaGFkZXJTb3VyY2UoZmlsZSkgeworICAgIHZh
ciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICB4aHIub3BlbigiR0VUIiwgZmlsZSwg
ZmFsc2UpOworICAgIHhoci5zZW5kKCk7CisgICAgcmV0dXJuIHhoci5yZXNwb25zZVRleHQ7Cit9
CisKK2Z1bmN0aW9uIGNyZWF0ZTNEQ29udGV4dCgpIHsKKyAgICB2YXIgY2FudmFzID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7CisgICAgdHJ5IHsKKyAgICAgICAgcmV0dXJuIGNh
bnZhcy5nZXRDb250ZXh0KCJ3ZWJraXQtM2QiKTsKKyAgICB9IGNhdGNoKGUpIHt9CisgICAgcmV0
dXJuIGNhbnZhcy5nZXRDb250ZXh0KCJtb3otd2ViZ2wiKTsKK30KKworZnVuY3Rpb24gbG9hZFN0
YW5kYXJkUHJvZ3JhbShjb250ZXh0KSB7CisgICAgdmFyIHByb2dyYW0gPSBjb250ZXh0LmNyZWF0
ZVByb2dyYW0oKTsKKyAgICB2YXIgdmVydGV4U2hhZGVyID0gY29udGV4dC5jcmVhdGVTaGFkZXIo
Y29udGV4dC5WRVJURVhfU0hBREVSKTsKKyAgICBjb250ZXh0LnNoYWRlclNvdXJjZSh2ZXJ0ZXhT
aGFkZXIsIGdldFNoYWRlclNvdXJjZSgicmVzb3VyY2VzL3ZlcnRleFNoYWRlci52ZXJ0IikpOwor
ICAgIGNvbnRleHQuY29tcGlsZVNoYWRlcih2ZXJ0ZXhTaGFkZXIpOworICAgIHZhciBmcmFnbWVu
dFNoYWRlciA9IGNvbnRleHQuY3JlYXRlU2hhZGVyKGNvbnRleHQuRlJBR01FTlRfU0hBREVSKTsK
KyAgICBjb250ZXh0LnNoYWRlclNvdXJjZShmcmFnbWVudFNoYWRlciwgZ2V0U2hhZGVyU291cmNl
KCJyZXNvdXJjZXMvZnJhZ21lbnRTaGFkZXIuZnJhZyIpKTsKKyAgICBjb250ZXh0LmNvbXBpbGVT
aGFkZXIoZnJhZ21lbnRTaGFkZXIpOworICAgIGNvbnRleHQuYXR0YWNoU2hhZGVyKHByb2dyYW0s
IHZlcnRleFNoYWRlcik7CisgICAgY29udGV4dC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgZnJhZ21l
bnRTaGFkZXIpOworICAgIGNvbnRleHQubGlua1Byb2dyYW0ocHJvZ3JhbSk7CisgICAgcmV0dXJu
IHByb2dyYW07Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9y
ZXNvdXJjZXMvdmVydGV4U2hhZGVyLnZlcnQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJn
bC9yZXNvdXJjZXMvdmVydGV4U2hhZGVyLnZlcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uOWVmMjYzMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3dlYmdsL3Jlc291cmNlcy92ZXJ0ZXhTaGFkZXIudmVydApAQCAtMCwwICsxLDEyIEBACith
dHRyaWJ1dGUgdmVjNCBhX3ZlcnRleDsKK2F0dHJpYnV0ZSB2ZWMzIGFfbm9ybWFsOworCit1bmlm
b3JtIG1hdDQgdV9tb2RlbFZpZXdQcm9qTWF0cml4OworCit2YXJ5aW5nIHZlYzMgdl9ub3JtYWw7
CisKK3ZvaWQgbWFpbigpCit7IAorICAgIHZfbm9ybWFsID0gYV9ub3JtYWw7CisgICAgZ2xfUG9z
aXRpb24gPSAgdV9tb2RlbFZpZXdQcm9qTWF0cml4ICogYV92ZXJ0ZXg7Cit9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvZ2V0QWN0aXZlVGVz
dC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0cy9nZXRBY3Rp
dmVUZXN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0MTBiZjEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVz
dHMvZ2V0QWN0aXZlVGVzdC5qcwpAQCAtMCwwICsxLDQ0IEBACitkZXNjcmlwdGlvbigiVGVzdCBv
ZiBnZXRBY3RpdmVBdHRyaWIgYW5kIGdldEFjdGl2ZVVuaWZvcm0iKTsKKwordmFyIGNvbnRleHQg
PSBjcmVhdGUzRENvbnRleHQoKTsKK3ZhciBjb250ZXh0MiA9IGNyZWF0ZTNEQ29udGV4dCgpOwor
dmFyIHByb2dyYW0gPSBsb2FkU3RhbmRhcmRQcm9ncmFtKGNvbnRleHQpOwordmFyIHByb2dyYW0y
ID0gbG9hZFN0YW5kYXJkUHJvZ3JhbShjb250ZXh0Mik7CisKK3Nob3VsZEJlKCJjb250ZXh0Lmdl
dEVycm9yKCkiLCAiMCIpOworc2hvdWxkQmUoImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9n
cmFtLCAwKS5uYW1lIiwgIid1X21vZGVsVmlld1Byb2pNYXRyaXgnIik7CitzaG91bGRCZSgiY29u
dGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDApLnR5cGUiLCAiY29udGV4dC5GTE9BVF9N
QVQ0Iik7CitzaG91bGRCZSgiY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDApLnNp
emUiLCAiMSIpOworc2hvdWxkVGhyb3coImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFt
LCAxKSIpOworc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3IoKSIsICJjb250ZXh0LklOVkFMSURf
VkFMVUUiKTsKK3Nob3VsZFRocm93KCJjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwg
LTEpIik7CitzaG91bGRCZSgiY29udGV4dC5nZXRFcnJvcigpIiwgImNvbnRleHQuSU5WQUxJRF9W
QUxVRSIpOworc2hvdWxkVGhyb3coImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShudWxsLCAwKSIp
Oworc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3IoKSIsICIwIik7CisKK3Nob3VsZEJlKCJjb250
ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAwKS5uYW1lIiwgIidhX25vcm1hbCciKTsKK3No
b3VsZEJlKCJjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAwKS50eXBlIiwgImNvbnRl
eHQuRkxPQVRfVkVDMyIpOworc2hvdWxkQmUoImNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dy
YW0sIDApLnNpemUiLCAiMSIpOworc2hvdWxkQmUoImNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHBy
b2dyYW0sIDEpLm5hbWUiLCAiJ2FfdmVydGV4JyIpOworc2hvdWxkQmUoImNvbnRleHQuZ2V0QWN0
aXZlQXR0cmliKHByb2dyYW0sIDEpLnR5cGUiLCAiY29udGV4dC5GTE9BVF9WRUM0Iik7CitzaG91
bGRCZSgiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMSkuc2l6ZSIsICIxIik7Citz
aG91bGRUaHJvdygiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMikiKTsKK3Nob3Vs
ZEJlKCJjb250ZXh0LmdldEVycm9yKCkiLCAiY29udGV4dC5JTlZBTElEX1ZBTFVFIik7CitzaG91
bGRUaHJvdygiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgLTEpIik7CitzaG91bGRC
ZSgiY29udGV4dC5nZXRFcnJvcigpIiwgImNvbnRleHQuSU5WQUxJRF9WQUxVRSIpOworc2hvdWxk
VGhyb3coImNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKG51bGwsIDApIik7CitzaG91bGRCZSgiY29u
dGV4dC5nZXRFcnJvcigpIiwgIjAiKTsKKworc2hvdWxkQmUoImNvbnRleHQyLmdldEVycm9yKCki
LCAiMCIpOworc2hvdWxkVGhyb3coImNvbnRleHQyLmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAw
KSIpOworc2hvdWxkQmUoImNvbnRleHQyLmdldEVycm9yKCkiLCAiMCIpOworc2hvdWxkVGhyb3co
ImNvbnRleHQyLmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkiKTsKK3Nob3VsZEJlKCJjb250
ZXh0Mi5nZXRFcnJvcigpIiwgIjAiKTsKKworY29udGV4dC5kZWxldGVQcm9ncmFtKHByb2dyYW0p
Oworc2hvdWxkVGhyb3coImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAwKSIpOwor
c2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3IoKSIsICIwIik7CitzaG91bGRUaHJvdygiY29udGV4
dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMCkiKTsKK3Nob3VsZEJlKCJjb250ZXh0LmdldEVy
cm9yKCkiLCAiMCIpOworCitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyY2U2MzUwLi5iNWU4
NGJkIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM5IEBACisyMDA5LTEwLTEwICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW1wbGVtZW50IGdldEFjdGl2ZUF0dHJpYiBhbmQgZ2V0QWN0aXZlVW5pZm9ybQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzAyNzYKKworICAgICAgICBJ
bXBsZW1lbnRzIHRoZSBnZXRBY3RpdmVBdHRyaWIgYW5kIGdldEFjdGl2ZVVuaWZvcm0gQVBJcy4K
KyAgICAgICAgUmF0aGVyIHNpbXBsZSBwYXRjaCwgYWRkcyBDYW52YXNBY3RpdmVJbmZvIGRlZmlu
aXRpb24gYW5kIGltcGxlbWVudGF0aW9uCisgICAgICAgIGFuZCBhZGRzIGZvcndhcmRpbmcgdG8g
dGhlIEdyYXBoaWNzQ29udGV4dDNELgorCisgICAgICAgIFRlc3Q6IGZhc3QvY2FudmFzL3dlYmds
L2dldEFjdGl2ZVRlc3QuaHRtbAorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaHRt
bC9jYW52YXMvQ2FudmFzQWN0aXZlSW5mby5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNh
bnZhc0FjdGl2ZUluZm86OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNBY3RpdmVJ
bmZvOjpuYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc0FjdGl2ZUluZm86OnR5cGUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FudmFzQWN0aXZlSW5mbzo6c2l6ZSk6CisgICAgICAgIChXZWJD
b3JlOjpDYW52YXNBY3RpdmVJbmZvOjpDYW52YXNBY3RpdmVJbmZvKToKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9DYW52YXNBY3RpdmVJbmZvLmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC9jYW52
YXMvQ2FudmFzT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNPYmplY3Q6OmNvbnRl
eHQpOgorICAgICAgICAgIE5lZWQgdG8gbWFrZSB0aGUgY29udGV4dCBwdWJsaWMgYXMgaXQgaXMg
bmVlZGVkIHRvIGVuc3VyZSB3ZSBkb24ndAorICAgICAgICAgIHByb3ZpZGUgYSBwcm9ncmFtIGZy
b20gb25lIGNvbnRleHQgYXMgYW4gYXJndW1lbnQgdG8gYW5vdGhlci4KKyAgICAgICAgKiBodG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0M0QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnZXRBY3RpdmVBdHRyaWIpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnZXRBY3RpdmVVbmlmb3JtKToKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0M0QuaDoKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0M0QuaWRsOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dDNETWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEOjpnZXRBY3RpdmVBdHRyaWIpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OmdldEFjdGl2ZVVuaWZvcm0pOgorCiAyMDA5LTEwLTA5ICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRs
ZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZmEzN2EzZC4uNDZlNjEwOCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQpAQCAtNzAsNiArNzAsNyBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBDU1NWYWx1ZUxpc3QgXAog
ICAgIENTU1ZhcmlhYmxlc1J1bGUgXAogICAgIENTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uIFwKKyAg
ICBDYW52YXNBY3RpdmVJbmZvIFwKICAgICBDYW52YXNBcnJheSBcCiAgICAgQ2FudmFzQXJyYXlC
dWZmZXIgXAogICAgIENhbnZhc0J1ZmZlciBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGNjYjc1YmQuLjZiYzgwMzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzk0LDYgKzIzOTQsOSBAQAogCQlBN0NGQjNE
MjBCN0VEMTBBMDA3MEMzMkQgLyogRHJhZ0ltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0NGQjNEMDBCN0VEMTBBMDA3MEMzMkQgLyogRHJhZ0lt
YWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QTdDRkIzRDUwQjdFRDExODAwNzBDMzJEIC8qIERyYWdJbWFnZU1hYy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Q0ZCM0Q0MEI3RUQxMTgwMDcwQzMy
RCAvKiBEcmFnSW1hZ2VNYWMubW0gKi87IH07CiAJCUE3RDAzMThFMEU5MzU0MDMwMEUyNEFDRCAv
KiBKU0ltYWdlRGF0YUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBN0QwMzE4RDBFOTM1NDAzMDBFMjRBQ0QgLyogSlNJbWFnZURhdGFDdXN0
b20uY3BwICovOyB9OworCQlBN0QyMEY2MjEwN0Y0MDY5MDBBODAzOTIgLyogSlNDYW52YXNBY3Rp
dmVJbmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3RDIwRjYwMTA3RjQwNjkwMEE4MDM5MiAvKiBKU0NhbnZhc0FjdGl2ZUluZm8uY3BwICovOyB9
OworCQlBN0QyMEY2MzEwN0Y0MDY5MDBBODAzOTIgLyogSlNDYW52YXNBY3RpdmVJbmZvLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0QyMEY2MTEwN0Y0
MDY5MDBBODAzOTIgLyogSlNDYW52YXNBY3RpdmVJbmZvLmggKi87IH07CisJCUE3RDIwRjZEMTA3
RjQzOEIwMEE4MDM5MiAvKiBDYW52YXNBY3RpdmVJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0QyMEY2QjEwN0Y0MzhCMDBBODAzOTIgLyogQ2Fu
dmFzQWN0aXZlSW5mby5oICovOyB9OwogCQlBN0QyN0ZDNDBFMEE1OTlGMDA3OUFEMkIgLyogU1ZH
RkVUaWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3RDI3RkMzMEUwQTU5OUYwMDc5QUQyQiAvKiBTVkdGRVRpbGUuY3BwICovOyB9OwogCQlBN0Qz
QzUyNDBCNTc2QjRCMDAyQ0E0NTAgLyogUGFzdGVib2FyZEhlbHBlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdEM0M1MjMwQjU3NkI0QjAwMkNBNDUw
IC8qIFBhc3RlYm9hcmRIZWxwZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlBN0Q2QjM0OTBGNjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0
TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
N0Q2QjM0NzBGNjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmggKi87IH07CkBA
IC03NTk3LDYgKzc2MDAsMTAgQEAKIAkJQTdDRkIzRDAwQjdFRDEwQTAwNzBDMzJEIC8qIERyYWdJ
bWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhZ0ltYWdlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3Q0ZCM0Q0MEI3RUQxMTgwMDcwQzMyRCAvKiBE
cmFnSW1hZ2VNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
RHJhZ0ltYWdlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0QwMzE4RDBF
OTM1NDAzMDBFMjRBQ0QgLyogSlNJbWFnZURhdGFDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNJbWFnZURhdGFDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBN0QyMEYzQjEwN0YzNzM4MDBBODAzOTIgLyogQ2FudmFzQWN0aXZl
SW5mby5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gQ2FudmFzQWN0aXZlSW5mby5pZGw7IHBh
dGggPSBjYW52YXMvQ2FudmFzQWN0aXZlSW5mby5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUE3RDIwRjYwMTA3RjQwNjkwMEE4MDM5MiAvKiBKU0NhbnZhc0FjdGl2ZUluZm8uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNDYW52YXNBY3RpdmVJbmZv
LmNwcDsgcGF0aCA9IC9Vc2Vycy9vbGl2ZXIvYnVpbGRzL0RlYnVnL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNDYW52YXNBY3RpdmVJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+Ijsg
fTsKKwkJQTdEMjBGNjExMDdGNDA2OTAwQTgwMzkyIC8qIEpTQ2FudmFzQWN0aXZlSW5mby5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU0NhbnZhc0FjdGl2ZUluZm8uaDsgcGF0
aCA9IC9Vc2Vycy9vbGl2ZXIvYnVpbGRzL0RlYnVnL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlND
YW52YXNBY3RpdmVJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CisJCUE3RDIw
RjZCMTA3RjQzOEIwMEE4MDM5MiAvKiBDYW52YXNBY3RpdmVJbmZvLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IENhbnZhc0FjdGl2ZUluZm8uaDsgcGF0aCA9IGNhbnZhcy9DYW52
YXNBY3RpdmVJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3RDI3RkMzMEUw
QTU5OUYwMDc5QUQyQiAvKiBTVkdGRVRpbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU1ZHRkVUaWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTdEM0M1MjMwQjU3NkI0QjAwMkNBNDUwIC8qIFBhc3RlYm9hcmRIZWxwZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFzdGVib2FyZEhlbHBlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBN0Q2QjM0NzBGNjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0
TG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdvcmtlclNjcmlwdExv
YWRlci5oOyBwYXRoID0gd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNjE2LDYgKzEwNjIzLDggQEAKIAkJCQk0OUVFQ0REQzEwNTAz
QzIzMDAwOTlGQUIgLyogQ2FudmFzVW5zaWduZWRTaG9ydEFycmF5LmNwcCAqLywKIAkJCQk0OUVF
Q0RERDEwNTAzQzI0MDAwOTlGQUIgLyogQ2FudmFzVW5zaWduZWRTaG9ydEFycmF5LmggKi8sCiAJ
CQkJNDlFRUNEREUxMDUwM0MyNDAwMDk5RkFCIC8qIENhbnZhc1Vuc2lnbmVkU2hvcnRBcnJheS5p
ZGwgKi8sCisJCQkJQTdEMjBGM0IxMDdGMzczODAwQTgwMzkyIC8qIENhbnZhc0FjdGl2ZUluZm8u
aWRsICovLAorCQkJCUE3RDIwRjZCMTA3RjQzOEIwMEE4MDM5MiAvKiBDYW52YXNBY3RpdmVJbmZv
LmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IGNhbnZhczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CkBAIC0xMjcwOSw2ICsxMjcxOCw4IEBACiAJCUE4M0I3OTA4MENDQUZGMkIwMDBCMDgyNSAv
KiBIVE1MICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlB
N0QyMEY2MDEwN0Y0MDY5MDBBODAzOTIgLyogSlNDYW52YXNBY3RpdmVJbmZvLmNwcCAqLywKKwkJ
CQlBN0QyMEY2MTEwN0Y0MDY5MDBBODAzOTIgLyogSlNDYW52YXNBY3RpdmVJbmZvLmggKi8sCiAJ
CQkJNDlFRUNGMTkxMDUwNzJGMzAwMDk5RkFCIC8qIEpTQ2FudmFzQXJyYXkuY3BwICovLAogCQkJ
CTQ5RUVDRjFBMTA1MDcyRjMwMDA5OUZBQiAvKiBKU0NhbnZhc0FycmF5LmggKi8sCiAJCQkJNDlF
RUNFRjIxMDUwNzBDNDAwMDk5RkFCIC8qIEpTQ2FudmFzQXJyYXlCdWZmZXIuY3BwICovLApAQCAt
MTgwMDQsNiArMTgwMTUsOCBAQAogCQkJCTkzRjE5OUVEMDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xU
UHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUJFNTEyRTBDRjZDNTEyMDAyRUE5NTkg
LyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0RENEQ4NzBGREY0RDZF
MDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTdEMjBGNjMxMDdG
NDA2OTAwQTgwMzkyIC8qIEpTQ2FudmFzQWN0aXZlSW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
QTdEMjBGNkQxMDdGNDM4QjAwQTgwMzkyIC8qIENhbnZhc0FjdGl2ZUluZm8uaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpAQCAtMjAxMzEsNiArMjAxNDQsNyBAQAogCQkJCTkzRjE5QjA1MDgyNDVFNTkwMDFFOUFC
QyAvKiBYU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUJFNTEy
RDBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk3REQ0RDg2MEZERjRENkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUE3RDIwRjYyMTA3RjQwNjkwMEE4MDM5MiAvKiBKU0NhbnZhc0FjdGl2ZUluZm8u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c0FjdGl2ZUluZm8uaCBiL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzQWN0aXZlSW5mby5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4OTNkODcKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0FjdGl2ZUluZm8uaApAQCAtMCwwICsxLDYy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
Q09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2lmbmRlZiBDYW52YXNBY3RpdmVJbmZvX2gKKyNkZWZpbmUgQ2FudmFz
QWN0aXZlSW5mb19oCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCisjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIENhbnZhc0FjdGl2ZUluZm8gOiBwdWJsaWMgUmVmQ291bnRl
ZDxDYW52YXNBY3RpdmVJbmZvPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q2Fu
dmFzQWN0aXZlSW5mbz4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgdW5zaWduZWQgdHlwZSwg
aW50IHNpemUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENhbnZhc0FjdGl2
ZUluZm8obmFtZSwgdHlwZSwgc2l6ZSkpOworICAgIH0KKyAgICBTdHJpbmcgbmFtZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbmFtZTsgfQorICAgIHVuc2lnbmVkIHR5cGUoKSBjb25zdCB7IHJldHVybiBt
X3R5cGU7IH0KKyAgICBpbnQgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQorcHJpdmF0
ZToKKyAgICBDYW52YXNBY3RpdmVJbmZvKGNvbnN0IFN0cmluZyYgbmFtZSwgdW5zaWduZWQgdHlw
ZSwgaW50IHNpemUpCisgICAgICAgIDogbV9uYW1lKG5hbWUpCisgICAgICAgICwgbV90eXBlKHR5
cGUpCisgICAgICAgICwgbV9zaXplKHNpemUpCisgICAgeworICAgICAgICBBU1NFUlQobmFtZS5s
ZW5ndGgoKSk7CisgICAgICAgIEFTU0VSVCh0eXBlKTsKKyAgICAgICAgQVNTRVJUKHNpemUpOwor
ICAgIH0KKyAgICBTdHJpbmcgbV9uYW1lOworICAgIHVuc2lnbmVkIG1fdHlwZTsKKyAgICBpbnQg
bV9zaXplOworfTsKKworfQorCisjZW5kaWYgLy8gQ2FudmFzQWN0aXZlSW5mb19oCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0FjdGl2ZUluZm8uaWRsIGIvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNBY3RpdmVJbmZvLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi40NTgwODc5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNBY3RpdmVJbmZvLmlkbApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworbW9kdWxl
IGh0bWwgeworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPTNEX0NBTlZBUywK
KyAgICBdIENhbnZhc0FjdGl2ZUluZm8geworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgaW50
IHNpemU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBpbnQgdHlwZTsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOworICAgIH07Cit9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc09iamVjdC5oIGIvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNPYmplY3QuaAppbmRleCA0MTNkYTcxLi43NDgyNzhkIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc09iamVjdC5oCisrKyBiL1dlYkNvcmUvaHRtbC9j
YW52YXMvQ2FudmFzT2JqZWN0LmgKQEAgLTQ4LDEyICs0OCwxMiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgICAgICBkZWxldGVPYmplY3QoKTsKICAgICAgICAgICAgIG1fY29udGV4dCA9
IDA7CiAgICAgICAgIH0KLSAgICAgICAgCisKKyAgICAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDNEKiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0OyB9CisKICAgICBwcm90ZWN0
ZWQ6CiAgICAgICAgIENhbnZhc09iamVjdChDYW52YXNSZW5kZXJpbmdDb250ZXh0M0QqKTsKICAg
ICAgICAgdmlydHVhbCB2b2lkIF9kZWxldGVPYmplY3QoUGxhdGZvcm0zRE9iamVjdCkgPSAwOwot
ICAgICAgICAKLSAgICAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEKiBjb250ZXh0KCkgY29u
c3QgeyByZXR1cm4gbV9jb250ZXh0OyB9CiAgICAgCiAgICAgcHJpdmF0ZToKICAgICAgICAgUGxh
dGZvcm0zRE9iamVjdCBtX29iamVjdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDNELmNwcCBiL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDNELmNwcAppbmRleCBiODEwNTAwLi41YmMyMGZhIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQzRC5jcHAKKysrIGIv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0M0QuY3BwCkBAIC0yOCw2
ICsyOCw4IEBACiAjaWYgRU5BQkxFKDNEX0NBTlZBUykKIAogI2luY2x1ZGUgIkNhbnZhc1JlbmRl
cmluZ0NvbnRleHQzRC5oIgorCisjaW5jbHVkZSAiQ2FudmFzQWN0aXZlSW5mby5oIgogI2luY2x1
ZGUgIkNhbnZhc0J1ZmZlci5oIgogI2luY2x1ZGUgIkNhbnZhc0ZyYW1lYnVmZmVyLmgiCiAjaW5j
bHVkZSAiQ2FudmFzUHJvZ3JhbS5oIgpAQCAtNDc3LDYgKzQ3OSwyOCBAQCB2b2lkIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQzRDo6Z2VuZXJhdGVNaXBtYXAodW5zaWduZWQgbG9uZyB0YXJnZXQpCiAg
ICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIAorUGFzc1JlZlB0cjxDYW52
YXNBY3RpdmVJbmZvPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdldEFjdGl2ZUF0dHJpYihD
YW52YXNQcm9ncmFtKiBwcm9ncmFtLCB1bnNpZ25lZCBsb25nIGluZGV4LCBFeGNlcHRpb25Db2Rl
JiBlYykKK3sKKyAgICBlYyA9IDA7CisgICAgQWN0aXZlSW5mbyBpbmZvOworICAgIGlmICghcHJv
Z3JhbSB8fCBwcm9ncmFtLT5jb250ZXh0KCkgIT0gdGhpcyB8fCAhbV9jb250ZXh0LmdldEFjdGl2
ZUF0dHJpYihwcm9ncmFtLCBpbmRleCwgaW5mbykpIHsKKyAgICAgICAgZWMgPSBJTkRFWF9TSVpF
X0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIHJldHVybiBDYW52YXNBY3RpdmVJ
bmZvOjpjcmVhdGUoaW5mby5uYW1lLCBpbmZvLnR5cGUsIGluZm8uc2l6ZSk7Cit9CisKK1Bhc3NS
ZWZQdHI8Q2FudmFzQWN0aXZlSW5mbz4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnZXRBY3Rp
dmVVbmlmb3JtKENhbnZhc1Byb2dyYW0qIHByb2dyYW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgsIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGVjID0gMDsKKyAgICBBY3RpdmVJbmZvIGluZm87Cisg
ICAgaWYgKCFwcm9ncmFtIHx8IHByb2dyYW0tPmNvbnRleHQoKSAhPSB0aGlzIHx8ICFtX2NvbnRl
eHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCBpbmRleCwgaW5mbykpIHsKKyAgICAgICAgZWMg
PSBJTkRFWF9TSVpFX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIHJldHVybiBD
YW52YXNBY3RpdmVJbmZvOjpjcmVhdGUoaW5mby5uYW1lLCBpbmZvLnR5cGUsIGluZm8uc2l6ZSk7
Cit9CisKIGludCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdldEF0dHJpYkxvY2F0aW9uKENh
bnZhc1Byb2dyYW0qIHByb2dyYW0sIGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKICAgICByZXR1cm4g
bV9jb250ZXh0LmdldEF0dHJpYkxvY2F0aW9uKHByb2dyYW0sIG5hbWUpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0M0QuaCBiL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNELmgKaW5kZXggYTRhNjhmYy4uYmVh
Y2VmYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0M0QuaAorKysgYi9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQz
RC5oCkBAIC0zNiw2ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ2Fu
dmFzQWN0aXZlSW5mbzsKIGNsYXNzIENhbnZhc0J1ZmZlcjsKIGNsYXNzIENhbnZhc0ZyYW1lYnVm
ZmVyOwogY2xhc3MgQ2FudmFzT2JqZWN0OwpAQCAtMTIzLDcgKzEyNCwxMCBAQCBjbGFzcyBXZWJL
aXRDU1NNYXRyaXg7CiAgICAgICAgIHZvaWQgZnJhbWVidWZmZXJUZXh0dXJlMkQodW5zaWduZWQg
bG9uZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcgYXR0YWNobWVudCwgdW5zaWduZWQgbG9uZyB0ZXh0
YXJnZXQsIENhbnZhc1RleHR1cmUqLCBsb25nIGxldmVsKTsKICAgICAgICAgdm9pZCBmcm9udEZh
Y2UodW5zaWduZWQgbG9uZyBtb2RlKTsKICAgICAgICAgdm9pZCBnZW5lcmF0ZU1pcG1hcCh1bnNp
Z25lZCBsb25nIHRhcmdldCk7Ci0gICAgICAgIAorCisgICAgICAgIFBhc3NSZWZQdHI8Q2FudmFz
QWN0aXZlSW5mbz4gZ2V0QWN0aXZlQXR0cmliKENhbnZhc1Byb2dyYW0qIHByb2dyYW0sIHVuc2ln
bmVkIGxvbmcgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAgUGFzc1JlZlB0cjxDYW52
YXNBY3RpdmVJbmZvPiBnZXRBY3RpdmVVbmlmb3JtKENhbnZhc1Byb2dyYW0qIHByb2dyYW0sIHVu
c2lnbmVkIGxvbmcgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsKKwogICAgICAgICBpbnQgIGdldEF0
dHJpYkxvY2F0aW9uKENhbnZhc1Byb2dyYW0qLCBjb25zdCBTdHJpbmcmIG5hbWUpOwogCiAgICAg
ICAgIGJvb2wgZ2V0Qm9vbGVhbih1bnNpZ25lZCBsb25nIHBuYW1lKTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNELmlkbCBiL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNELmlkbAppbmRleCA0YjlhODg5Li43
YjBkYWE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQzRC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0M0QuaWRsCkBAIC01MzAsOCArNTMwLDExIEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgdm9p
ZCAgICAgICAgIGdlbmVyYXRlTWlwbWFwKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0KTsKICAgICAg
ICAgCiAgICAgICAgIC8vIEZJWE1FOiB0aGVzZSBuZWVkIHRvIGJlIGFkZGVkIHBlciB0aGUgV2Vi
R0wgc3BlYwotICAgICAgICAvLyBDYW52YXNBY3RpdmVJbmZvIGdldEFjdGl2ZUF0dHJpYihHTHVp
bnQgcHJvZ3JhbSwgR0x1aW50IGluZGV4KTsKLSAgICAgICAgLy8gQ2FudmFzQWN0aXZlSW5mbyBn
ZXRBY3RpdmVVbmlmb3JtKEdMdWludCBwcm9ncmFtLCBHTHVpbnQgaW5kZXgpOworICAgICAgICBD
YW52YXNBY3RpdmVJbmZvIGdldEFjdGl2ZUF0dHJpYihpbiBDYW52YXNQcm9ncmFtIHByb2dyYW0s
IGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlv
bik7CisgICAgICAgIENhbnZhc0FjdGl2ZUluZm8gZ2V0QWN0aXZlVW5pZm9ybShpbiBDYW52YXNQ
cm9ncmFtIHByb2dyYW0sIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpCisgICAgICAgICAgICByYWlz
ZXMgKERPTUV4Y2VwdGlvbik7CisKICAgICAgICAgLy8gQ2FudmFzU2hhZGVyQXJyYXkgZ2xHZXRB
dHRhY2hlZFNoYWRlcnMoR0x1aW50IHByb2dyYW0pOwogCiAgICAgICAgIGludCAgICAgICAgICBn
ZXRBdHRyaWJMb2NhdGlvbihpbiBDYW52YXNQcm9ncmFtIHByb2dyYW0sIGluIERPTVN0cmluZyBu
YW1lKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0M0QuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaApp
bmRleCA1MjIzZTA1Li4zMTRmYzgyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNELmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQzRC5oCkBAIC00NSw2ICs0NSw3IEBAIGNvbnN0IFBsYXRmb3JtM0RPYmpl
Y3QgTnVsbFBsYXRmb3JtM0RPYmplY3QgPSAwOwogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKKyAgICBjbGFzcyBDYW52YXNBY3RpdmVJbmZvOwogICAgIGNsYXNzIENhbnZhc0FycmF5Owog
ICAgIGNsYXNzIENhbnZhc0J1ZmZlcjsKICAgICBjbGFzcyBDYW52YXNVbnNpZ25lZEJ5dGVBcnJh
eTsKQEAgLTYxLDcgKzYyLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBIVE1M
VmlkZW9FbGVtZW50OwogICAgIGNsYXNzIEltYWdlRGF0YTsKICAgICBjbGFzcyBXZWJLaXRDU1NN
YXRyaXg7Ci0gICAgCisKKyAgICBzdHJ1Y3QgQWN0aXZlSW5mbyB7CisgICAgICAgIFN0cmluZyBu
YW1lOworICAgICAgICB1bnNpZ25lZCB0eXBlOworICAgICAgICBpbnQgc2l6ZTsKKyAgICB9Owor
CiAgICAgLy8gRklYTUU6IGlkZWFsbHkgdGhpcyB3b3VsZCBiZSB1c2VkIG9uIGFsbCBwbGF0Zm9y
bXMuCiAjaWYgUExBVEZPUk0oQ0hST01JVU0pCiAgICAgY2xhc3MgR3JhcGhpY3NDb250ZXh0M0RJ
bnRlcm5hbDsKQEAgLTE0MSw2ICsxNDgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IHZvaWQgZnJvbnRGYWNlKHVuc2lnbmVkIGxvbmcgbW9kZSk7CiAgICAgICAgIHZvaWQgZ2VuZXJh
dGVNaXBtYXAodW5zaWduZWQgbG9uZyB0YXJnZXQpOwogCisgICAgICAgIGJvb2wgZ2V0QWN0aXZl
QXR0cmliKENhbnZhc1Byb2dyYW0qIHByb2dyYW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgsIEFjdGl2
ZUluZm8mKTsKKyAgICAgICAgYm9vbCBnZXRBY3RpdmVVbmlmb3JtKENhbnZhc1Byb2dyYW0qIHBy
b2dyYW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgsIEFjdGl2ZUluZm8mKTsKKwogICAgICAgICBpbnQg
IGdldEF0dHJpYkxvY2F0aW9uKENhbnZhc1Byb2dyYW0qLCBjb25zdCBTdHJpbmcmIG5hbWUpOwog
CiAgICAgICAgIGJvb2wgZ2V0Qm9vbGVhbih1bnNpZ25lZCBsb25nIHBuYW1lKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dDNETWFjLmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dDNETWFjLmNw
cAppbmRleCBjZDY2NDQ1Li5mN2E1MGE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9HcmFwaGljc0NvbnRleHQzRE1hYy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvR3JhcGhpY3NDb250ZXh0M0RNYWMuY3BwCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKIAogI2luY2x1ZGUgIkNhY2hlZEltYWdl
LmgiCisjaW5jbHVkZSAiQ2FudmFzQWN0aXZlSW5mby5oIgogI2luY2x1ZGUgIkNhbnZhc0J1ZmZl
ci5oIgogI2luY2x1ZGUgIkNhbnZhc0ZyYW1lYnVmZmVyLmgiCiAjaW5jbHVkZSAiQ2FudmFzQXJy
YXkuaCIKQEAgLTQ0Miw2ICs0NDMsNDYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Z2VuZXJh
dGVNaXBtYXAodW5zaWduZWQgbG9uZyB0YXJnZXQpCiAgICAgOjpnbEdlbmVyYXRlTWlwbWFwRVhU
KHRhcmdldCk7CiB9CiAKK2Jvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmdldEFjdGl2ZUF0dHJpYihD
YW52YXNQcm9ncmFtKiBwcm9ncmFtLCB1bnNpZ25lZCBsb25nIGluZGV4LCBBY3RpdmVJbmZvJiBp
bmZvKQoreworICAgIGlmICghcHJvZ3JhbS0+b2JqZWN0KCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICBlbnN1cmVDb250ZXh0KG1fY29udGV4dE9iaik7CisgICAgR0xpbnQgbWF4QXR0cmli
dXRlU2l6ZSA9IDA7CisgICAgOjpnbEdldFByb2dyYW1pdihzdGF0aWNfY2FzdDxHTHVpbnQ+KHBy
b2dyYW0tPm9iamVjdCgpKSwgR0xfQUNUSVZFX0FUVFJJQlVURV9NQVhfTEVOR1RILCAmbWF4QXR0
cmlidXRlU2l6ZSk7CisgICAgR0xjaGFyIG5hbWVbbWF4QXR0cmlidXRlU2l6ZV07IC8vIEdMX0FD
VElWRV9BVFRSSUJVVEVfTUFYX0xFTkdUSCBpbmNsdWRlcyBudWxsIHRlcm1pbmF0aW9uCisgICAg
R0xzaXplaSBuYW1lTGVuZ3RoID0gMDsKKyAgICBHTGludCBzaXplID0gMDsKKyAgICBHTGVudW0g
dHlwZSA9IDA7CisgICAgOjpnbEdldEFjdGl2ZUF0dHJpYihzdGF0aWNfY2FzdDxHTHVpbnQ+KHBy
b2dyYW0tPm9iamVjdCgpKSwgaW5kZXgsIG1heEF0dHJpYnV0ZVNpemUsICZuYW1lTGVuZ3RoLCAm
c2l6ZSwgJnR5cGUsIG5hbWUpOworICAgIGlmICghbmFtZUxlbmd0aCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIGluZm8ubmFtZSA9IFN0cmluZyhuYW1lLCBuYW1lTGVuZ3RoKTsKKyAgICBp
bmZvLnR5cGUgPSB0eXBlOworICAgIGluZm8uc2l6ZSA9IHNpemU7CisgICAgcmV0dXJuIHRydWU7
Cit9CisgICAgCitib29sIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRBY3RpdmVVbmlmb3JtKENhbnZh
c1Byb2dyYW0qIHByb2dyYW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgsIEFjdGl2ZUluZm8mIGluZm8p
Cit7CisgICAgaWYgKCFwcm9ncmFtLT5vYmplY3QoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGVuc3VyZUNvbnRleHQobV9jb250ZXh0T2JqKTsKKyAgICBHTGludCBtYXhVbmlmb3JtU2l6
ZSA9IDA7CisgICAgOjpnbEdldFByb2dyYW1pdihzdGF0aWNfY2FzdDxHTHVpbnQ+KHByb2dyYW0t
Pm9iamVjdCgpKSwgR0xfQUNUSVZFX1VOSUZPUk1fTUFYX0xFTkdUSCwgJm1heFVuaWZvcm1TaXpl
KTsKKyAgICBHTGNoYXIgbmFtZVttYXhVbmlmb3JtU2l6ZV07IC8vIEdMX0FDVElWRV9VTklGT1JN
X01BWF9MRU5HVEggaW5jbHVkZXMgbnVsbCB0ZXJtaW5hdGlvbgorICAgIEdMc2l6ZWkgbmFtZUxl
bmd0aCA9IDA7CisgICAgR0xpbnQgc2l6ZSA9IDA7CisgICAgR0xlbnVtIHR5cGUgPSAwOworICAg
IDo6Z2xHZXRBY3RpdmVVbmlmb3JtKHN0YXRpY19jYXN0PEdMdWludD4ocHJvZ3JhbS0+b2JqZWN0
KCkpLCBpbmRleCwgbWF4VW5pZm9ybVNpemUsICZuYW1lTGVuZ3RoLCAmc2l6ZSwgJnR5cGUsIG5h
bWUpOworICAgIGlmICghbmFtZUxlbmd0aCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlu
Zm8ubmFtZSA9IFN0cmluZyhuYW1lLCBuYW1lTGVuZ3RoKTsKKyAgICBpbmZvLnR5cGUgPSB0eXBl
OworICAgIGluZm8uc2l6ZSA9IHNpemU7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGludCBHcmFw
aGljc0NvbnRleHQzRDo6Z2V0QXR0cmliTG9jYXRpb24oQ2FudmFzUHJvZ3JhbSogcHJvZ3JhbSwg
Y29uc3QgU3RyaW5nJiBuYW1lKQogewogICAgIGlmICghcHJvZ3JhbSk=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40994</attachid>
            <date>2009-10-10 12:53:38 -0700</date>
            <delta_ts>2009-10-10 13:28:14 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-30276-20091010125336.patch</filename>
            <type>text/plain</type>
            <size>28349</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxNGUwNzg4Li40ZDc0NmU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMDktMTAt
MTAgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgZ2V0QWN0aXZlQXR0cmliIGFu
ZCBnZXRBY3RpdmVVbmlmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zMDI3NgorCisgICAgICAgIEFkZHMgdGVzdCBmb3IgZ2V0QWN0aXZlQXR0cmli
IGFuZCBnZXRBY3RpdmVVbmlmb3JtLiAgQWRkaXRpb25hbGx5CisgICAgICAgIGFkZHMgYSBiYXNp
YyBzaGFkZXIgcGFpciwgYW5kIGEgdXRpbGl0eSBsaWJyYXJ5IHRvIGRvIHRoZSBtb3JlCisgICAg
ICAgIG1lY2hhbmljYWwgd29yayBuZWVkZWQgdG8gc2V0IHVwIGEgV2ViR0wgY29udGV4dCBmb3Ig
dGVzdGluZy4KKworICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2dldEFjdGl2ZVRlc3QtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9nZXRBY3RpdmVU
ZXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3Jlc291cmNlcy9m
cmFnbWVudFNoYWRlci5mcmFnOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9y
ZXNvdXJjZXMvc2hhZGVyLXRlc3QuanM6IEFkZGVkLgorICAgICAgICAoZ2V0U2hhZGVyU291cmNl
KToKKyAgICAgICAgKGNyZWF0ZTNEQ29udGV4dCk6CisgICAgICAgIChsb2FkU3RhbmRhcmRQcm9n
cmFtKToKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9yZXNvdXJjZXMvdmVydGV4U2hhZGVy
LnZlcnQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0cy9n
ZXRBY3RpdmVUZXN0LmpzOiBBZGRlZC4KKwogMjAwOS0xMC0wOSAgQWxleGV5IFByb3NrdXJ5YWtv
diAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBCcmFkeSBFaWRzb24uCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nZXRBY3RpdmVUZXN0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dldEFjdGl2ZVRlc3Qt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkZTY5YTgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nZXRBY3Rp
dmVUZXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM5IEBACitUZXN0IG9mIGdldEFjdGl2ZUF0
dHJpYiBhbmQgZ2V0QWN0aXZlVW5pZm9ybQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
K1BBU1MgY29udGV4dC5nZXRFcnJvcigpIGlzIDAKK1BBU1MgY29udGV4dC5nZXRBY3RpdmVVbmlm
b3JtKHByb2dyYW0sIDApLm5hbWUgaXMgJ3VfbW9kZWxWaWV3UHJvak1hdHJpeCcKK1BBU1MgY29u
dGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDApLnR5cGUgaXMgY29udGV4dC5GTE9BVF9N
QVQ0CitQQVNTIGNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAwKS5zaXplIGlzIDEK
K1BBU1MgY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDEpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1MgY29udGV4dC5n
ZXRFcnJvcigpIGlzIGNvbnRleHQuSU5WQUxJRF9WQUxVRQorUEFTUyBjb250ZXh0LmdldEFjdGl2
ZVVuaWZvcm0ocHJvZ3JhbSwgLTEpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9F
UlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1MgY29udGV4dC5nZXRFcnJvcigpIGlzIGNvbnRleHQu
SU5WQUxJRF9WQUxVRQorUEFTUyBjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0obnVsbCwgMCkgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFT
UyBjb250ZXh0LmdldEVycm9yKCkgaXMgMAorUEFTUyBjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihw
cm9ncmFtLCAwKS5uYW1lIGlzICdhX25vcm1hbCcKK1BBU1MgY29udGV4dC5nZXRBY3RpdmVBdHRy
aWIocHJvZ3JhbSwgMCkudHlwZSBpcyBjb250ZXh0LkZMT0FUX1ZFQzMKK1BBU1MgY29udGV4dC5n
ZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMCkuc2l6ZSBpcyAxCitQQVNTIGNvbnRleHQuZ2V0QWN0
aXZlQXR0cmliKHByb2dyYW0sIDEpLm5hbWUgaXMgJ2FfdmVydGV4JworUEFTUyBjb250ZXh0Lmdl
dEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAxKS50eXBlIGlzIGNvbnRleHQuRkxPQVRfVkVDNAorUEFT
UyBjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAxKS5zaXplIGlzIDEKK1BBU1MgY29u
dGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJ
TkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyBjb250ZXh0LmdldEVycm9yKCkg
aXMgY29udGV4dC5JTlZBTElEX1ZBTFVFCitQQVNTIGNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHBy
b2dyYW0sIC0xKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhj
ZXB0aW9uIDEuCitQQVNTIGNvbnRleHQuZ2V0RXJyb3IoKSBpcyBjb250ZXh0LklOVkFMSURfVkFM
VUUKK1BBU1MgY29udGV4dC5nZXRBY3RpdmVBdHRyaWIobnVsbCwgMCkgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyBjb250ZXh0Lmdl
dEVycm9yKCkgaXMgMAorUEFTUyBjb250ZXh0Mi5nZXRFcnJvcigpIGlzIDAKK1BBU1MgY29udGV4
dDIuZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5E
RVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1MgY29udGV4dDIuZ2V0RXJyb3IoKSBp
cyAwCitQQVNTIGNvbnRleHQyLmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyBjb250
ZXh0Mi5nZXRFcnJvcigpIGlzIDAKK1BBU1MgY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dy
YW0sIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRp
b24gMS4KK1BBU1MgY29udGV4dC5nZXRFcnJvcigpIGlzIDAKK1BBU1MgY29udGV4dC5nZXRBY3Rp
dmVBdHRyaWIocHJvZ3JhbSwgMCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VS
UjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyBjb250ZXh0LmdldEVycm9yKCkgaXMgMAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dldEFjdGl2ZVRlc3QuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dldEFjdGl2ZVRlc3QuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNzBjNDE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2V0QWN0aXZlVGVzdC5odG1sCkBAIC0wLDAgKzEsMTUg
QEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3NoYWRlci10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVz
Y3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvZ2V0QWN0aXZlVGVzdC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3Jlc291
cmNlcy9mcmFnbWVudFNoYWRlci5mcmFnIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
cmVzb3VyY2VzL2ZyYWdtZW50U2hhZGVyLmZyYWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNTNhNTU2YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3dlYmdsL3Jlc291cmNlcy9mcmFnbWVudFNoYWRlci5mcmFnCkBAIC0wLDAgKzEsNiBAQAor
dmFyeWluZyB2ZWMzIHZfbm9ybWFsOworCit2b2lkIG1haW4oKQoreworICAgIGdsX0ZyYWdDb2xv
ciA9IHZlYzQodl9ub3JtYWwvMi4wK3ZlYzMoMC41KSwgMSk7Cit9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9yZXNvdXJjZXMvc2hhZGVyLXRlc3QuanMgYi9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9yZXNvdXJjZXMvc2hhZGVyLXRlc3QuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2MwYTJjNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3Jlc291cmNlcy9zaGFkZXItdGVzdC5qcwpA
QCAtMCwwICsxLDI4IEBACitmdW5jdGlvbiBnZXRTaGFkZXJTb3VyY2UoZmlsZSkgeworICAgIHZh
ciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICB4aHIub3BlbigiR0VUIiwgZmlsZSwg
ZmFsc2UpOworICAgIHhoci5zZW5kKCk7CisgICAgcmV0dXJuIHhoci5yZXNwb25zZVRleHQ7Cit9
CisKK2Z1bmN0aW9uIGNyZWF0ZTNEQ29udGV4dCgpIHsKKyAgICB2YXIgY2FudmFzID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7CisgICAgdHJ5IHsKKyAgICAgICAgcmV0dXJuIGNh
bnZhcy5nZXRDb250ZXh0KCJ3ZWJraXQtM2QiKTsKKyAgICB9IGNhdGNoKGUpIHt9CisgICAgcmV0
dXJuIGNhbnZhcy5nZXRDb250ZXh0KCJtb3otd2ViZ2wiKTsKK30KKworZnVuY3Rpb24gbG9hZFN0
YW5kYXJkUHJvZ3JhbShjb250ZXh0KSB7CisgICAgdmFyIHByb2dyYW0gPSBjb250ZXh0LmNyZWF0
ZVByb2dyYW0oKTsKKyAgICB2YXIgdmVydGV4U2hhZGVyID0gY29udGV4dC5jcmVhdGVTaGFkZXIo
Y29udGV4dC5WRVJURVhfU0hBREVSKTsKKyAgICBjb250ZXh0LnNoYWRlclNvdXJjZSh2ZXJ0ZXhT
aGFkZXIsIGdldFNoYWRlclNvdXJjZSgicmVzb3VyY2VzL3ZlcnRleFNoYWRlci52ZXJ0IikpOwor
ICAgIGNvbnRleHQuY29tcGlsZVNoYWRlcih2ZXJ0ZXhTaGFkZXIpOworICAgIHZhciBmcmFnbWVu
dFNoYWRlciA9IGNvbnRleHQuY3JlYXRlU2hhZGVyKGNvbnRleHQuRlJBR01FTlRfU0hBREVSKTsK
KyAgICBjb250ZXh0LnNoYWRlclNvdXJjZShmcmFnbWVudFNoYWRlciwgZ2V0U2hhZGVyU291cmNl
KCJyZXNvdXJjZXMvZnJhZ21lbnRTaGFkZXIuZnJhZyIpKTsKKyAgICBjb250ZXh0LmNvbXBpbGVT
aGFkZXIoZnJhZ21lbnRTaGFkZXIpOworICAgIGNvbnRleHQuYXR0YWNoU2hhZGVyKHByb2dyYW0s
IHZlcnRleFNoYWRlcik7CisgICAgY29udGV4dC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgZnJhZ21l
bnRTaGFkZXIpOworICAgIGNvbnRleHQubGlua1Byb2dyYW0ocHJvZ3JhbSk7CisgICAgcmV0dXJu
IHByb2dyYW07Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9y
ZXNvdXJjZXMvdmVydGV4U2hhZGVyLnZlcnQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJn
bC9yZXNvdXJjZXMvdmVydGV4U2hhZGVyLnZlcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uOWVmMjYzMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3dlYmdsL3Jlc291cmNlcy92ZXJ0ZXhTaGFkZXIudmVydApAQCAtMCwwICsxLDEyIEBACith
dHRyaWJ1dGUgdmVjNCBhX3ZlcnRleDsKK2F0dHJpYnV0ZSB2ZWMzIGFfbm9ybWFsOworCit1bmlm
b3JtIG1hdDQgdV9tb2RlbFZpZXdQcm9qTWF0cml4OworCit2YXJ5aW5nIHZlYzMgdl9ub3JtYWw7
CisKK3ZvaWQgbWFpbigpCit7IAorICAgIHZfbm9ybWFsID0gYV9ub3JtYWw7CisgICAgZ2xfUG9z
aXRpb24gPSAgdV9tb2RlbFZpZXdQcm9qTWF0cml4ICogYV92ZXJ0ZXg7Cit9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvZ2V0QWN0aXZlVGVz
dC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0cy9nZXRBY3Rp
dmVUZXN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0MTBiZjEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVz
dHMvZ2V0QWN0aXZlVGVzdC5qcwpAQCAtMCwwICsxLDQ0IEBACitkZXNjcmlwdGlvbigiVGVzdCBv
ZiBnZXRBY3RpdmVBdHRyaWIgYW5kIGdldEFjdGl2ZVVuaWZvcm0iKTsKKwordmFyIGNvbnRleHQg
PSBjcmVhdGUzRENvbnRleHQoKTsKK3ZhciBjb250ZXh0MiA9IGNyZWF0ZTNEQ29udGV4dCgpOwor
dmFyIHByb2dyYW0gPSBsb2FkU3RhbmRhcmRQcm9ncmFtKGNvbnRleHQpOwordmFyIHByb2dyYW0y
ID0gbG9hZFN0YW5kYXJkUHJvZ3JhbShjb250ZXh0Mik7CisKK3Nob3VsZEJlKCJjb250ZXh0Lmdl
dEVycm9yKCkiLCAiMCIpOworc2hvdWxkQmUoImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9n
cmFtLCAwKS5uYW1lIiwgIid1X21vZGVsVmlld1Byb2pNYXRyaXgnIik7CitzaG91bGRCZSgiY29u
dGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDApLnR5cGUiLCAiY29udGV4dC5GTE9BVF9N
QVQ0Iik7CitzaG91bGRCZSgiY29udGV4dC5nZXRBY3RpdmVVbmlmb3JtKHByb2dyYW0sIDApLnNp
emUiLCAiMSIpOworc2hvdWxkVGhyb3coImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFt
LCAxKSIpOworc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3IoKSIsICJjb250ZXh0LklOVkFMSURf
VkFMVUUiKTsKK3Nob3VsZFRocm93KCJjb250ZXh0LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwg
LTEpIik7CitzaG91bGRCZSgiY29udGV4dC5nZXRFcnJvcigpIiwgImNvbnRleHQuSU5WQUxJRF9W
QUxVRSIpOworc2hvdWxkVGhyb3coImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShudWxsLCAwKSIp
Oworc2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3IoKSIsICIwIik7CisKK3Nob3VsZEJlKCJjb250
ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAwKS5uYW1lIiwgIidhX25vcm1hbCciKTsKK3No
b3VsZEJlKCJjb250ZXh0LmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAwKS50eXBlIiwgImNvbnRl
eHQuRkxPQVRfVkVDMyIpOworc2hvdWxkQmUoImNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHByb2dy
YW0sIDApLnNpemUiLCAiMSIpOworc2hvdWxkQmUoImNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKHBy
b2dyYW0sIDEpLm5hbWUiLCAiJ2FfdmVydGV4JyIpOworc2hvdWxkQmUoImNvbnRleHQuZ2V0QWN0
aXZlQXR0cmliKHByb2dyYW0sIDEpLnR5cGUiLCAiY29udGV4dC5GTE9BVF9WRUM0Iik7CitzaG91
bGRCZSgiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMSkuc2l6ZSIsICIxIik7Citz
aG91bGRUaHJvdygiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMikiKTsKK3Nob3Vs
ZEJlKCJjb250ZXh0LmdldEVycm9yKCkiLCAiY29udGV4dC5JTlZBTElEX1ZBTFVFIik7CitzaG91
bGRUaHJvdygiY29udGV4dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgLTEpIik7CitzaG91bGRC
ZSgiY29udGV4dC5nZXRFcnJvcigpIiwgImNvbnRleHQuSU5WQUxJRF9WQUxVRSIpOworc2hvdWxk
VGhyb3coImNvbnRleHQuZ2V0QWN0aXZlQXR0cmliKG51bGwsIDApIik7CitzaG91bGRCZSgiY29u
dGV4dC5nZXRFcnJvcigpIiwgIjAiKTsKKworc2hvdWxkQmUoImNvbnRleHQyLmdldEVycm9yKCki
LCAiMCIpOworc2hvdWxkVGhyb3coImNvbnRleHQyLmdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCAw
KSIpOworc2hvdWxkQmUoImNvbnRleHQyLmdldEVycm9yKCkiLCAiMCIpOworc2hvdWxkVGhyb3co
ImNvbnRleHQyLmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgMCkiKTsKK3Nob3VsZEJlKCJjb250
ZXh0Mi5nZXRFcnJvcigpIiwgIjAiKTsKKworY29udGV4dC5kZWxldGVQcm9ncmFtKHByb2dyYW0p
Oworc2hvdWxkVGhyb3coImNvbnRleHQuZ2V0QWN0aXZlVW5pZm9ybShwcm9ncmFtLCAwKSIpOwor
c2hvdWxkQmUoImNvbnRleHQuZ2V0RXJyb3IoKSIsICIwIik7CitzaG91bGRUaHJvdygiY29udGV4
dC5nZXRBY3RpdmVBdHRyaWIocHJvZ3JhbSwgMCkiKTsKK3Nob3VsZEJlKCJjb250ZXh0LmdldEVy
cm9yKCkiLCAiMCIpOworCitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyY2U2MzUwLi5iNWU4
NGJkIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM5IEBACisyMDA5LTEwLTEwICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW1wbGVtZW50IGdldEFjdGl2ZUF0dHJpYiBhbmQgZ2V0QWN0aXZlVW5pZm9ybQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzAyNzYKKworICAgICAgICBJ
bXBsZW1lbnRzIHRoZSBnZXRBY3RpdmVBdHRyaWIgYW5kIGdldEFjdGl2ZVVuaWZvcm0gQVBJcy4K
KyAgICAgICAgUmF0aGVyIHNpbXBsZSBwYXRjaCwgYWRkcyBDYW52YXNBY3RpdmVJbmZvIGRlZmlu
aXRpb24gYW5kIGltcGxlbWVudGF0aW9uCisgICAgICAgIGFuZCBhZGRzIGZvcndhcmRpbmcgdG8g
dGhlIEdyYXBoaWNzQ29udGV4dDNELgorCisgICAgICAgIFRlc3Q6IGZhc3QvY2FudmFzL3dlYmds
L2dldEFjdGl2ZVRlc3QuaHRtbAorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaHRt
bC9jYW52YXMvQ2FudmFzQWN0aXZlSW5mby5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNh
bnZhc0FjdGl2ZUluZm86OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNBY3RpdmVJ
bmZvOjpuYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc0FjdGl2ZUluZm86OnR5cGUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FudmFzQWN0aXZlSW5mbzo6c2l6ZSk6CisgICAgICAgIChXZWJD
b3JlOjpDYW52YXNBY3RpdmVJbmZvOjpDYW52YXNBY3RpdmVJbmZvKToKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9DYW52YXNBY3RpdmVJbmZvLmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC9jYW52
YXMvQ2FudmFzT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNPYmplY3Q6OmNvbnRl
eHQpOgorICAgICAgICAgIE5lZWQgdG8gbWFrZSB0aGUgY29udGV4dCBwdWJsaWMgYXMgaXQgaXMg
bmVlZGVkIHRvIGVuc3VyZSB3ZSBkb24ndAorICAgICAgICAgIHByb3ZpZGUgYSBwcm9ncmFtIGZy
b20gb25lIGNvbnRleHQgYXMgYW4gYXJndW1lbnQgdG8gYW5vdGhlci4KKyAgICAgICAgKiBodG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0M0QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnZXRBY3RpdmVBdHRyaWIpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnZXRBY3RpdmVVbmlmb3JtKToKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0M0QuaDoKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0M0QuaWRsOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dDNETWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEOjpnZXRBY3RpdmVBdHRyaWIpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OmdldEFjdGl2ZVVuaWZvcm0pOgorCiAyMDA5LTEwLTA5ICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRs
ZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZmEzN2EzZC4uNDZlNjEwOCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQpAQCAtNzAsNiArNzAsNyBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBDU1NWYWx1ZUxpc3QgXAog
ICAgIENTU1ZhcmlhYmxlc1J1bGUgXAogICAgIENTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uIFwKKyAg
ICBDYW52YXNBY3RpdmVJbmZvIFwKICAgICBDYW52YXNBcnJheSBcCiAgICAgQ2FudmFzQXJyYXlC
dWZmZXIgXAogICAgIENhbnZhc0J1ZmZlciBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGNjYjc1YmQuLjZiYzgwMzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzk0LDYgKzIzOTQsOSBAQAogCQlBN0NGQjNE
MjBCN0VEMTBBMDA3MEMzMkQgLyogRHJhZ0ltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0NGQjNEMDBCN0VEMTBBMDA3MEMzMkQgLyogRHJhZ0lt
YWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QTdDRkIzRDUwQjdFRDExODAwNzBDMzJEIC8qIERyYWdJbWFnZU1hYy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Q0ZCM0Q0MEI3RUQxMTgwMDcwQzMy
RCAvKiBEcmFnSW1hZ2VNYWMubW0gKi87IH07CiAJCUE3RDAzMThFMEU5MzU0MDMwMEUyNEFDRCAv
KiBKU0ltYWdlRGF0YUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBN0QwMzE4RDBFOTM1NDAzMDBFMjRBQ0QgLyogSlNJbWFnZURhdGFDdXN0
b20uY3BwICovOyB9OworCQlBN0QyMEY2MjEwN0Y0MDY5MDBBODAzOTIgLyogSlNDYW52YXNBY3Rp
dmVJbmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3RDIwRjYwMTA3RjQwNjkwMEE4MDM5MiAvKiBKU0NhbnZhc0FjdGl2ZUluZm8uY3BwICovOyB9
OworCQlBN0QyMEY2MzEwN0Y0MDY5MDBBODAzOTIgLyogSlNDYW52YXNBY3RpdmVJbmZvLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0QyMEY2MTEwN0Y0
MDY5MDBBODAzOTIgLyogSlNDYW52YXNBY3RpdmVJbmZvLmggKi87IH07CisJCUE3RDIwRjZEMTA3
RjQzOEIwMEE4MDM5MiAvKiBDYW52YXNBY3RpdmVJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0QyMEY2QjEwN0Y0MzhCMDBBODAzOTIgLyogQ2Fu
dmFzQWN0aXZlSW5mby5oICovOyB9OwogCQlBN0QyN0ZDNDBFMEE1OTlGMDA3OUFEMkIgLyogU1ZH
RkVUaWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3RDI3RkMzMEUwQTU5OUYwMDc5QUQyQiAvKiBTVkdGRVRpbGUuY3BwICovOyB9OwogCQlBN0Qz
QzUyNDBCNTc2QjRCMDAyQ0E0NTAgLyogUGFzdGVib2FyZEhlbHBlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdEM0M1MjMwQjU3NkI0QjAwMkNBNDUw
IC8qIFBhc3RlYm9hcmRIZWxwZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlBN0Q2QjM0OTBGNjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0
TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
N0Q2QjM0NzBGNjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmggKi87IH07CkBA
IC03NTk3LDYgKzc2MDAsMTAgQEAKIAkJQTdDRkIzRDAwQjdFRDEwQTAwNzBDMzJEIC8qIERyYWdJ
bWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhZ0ltYWdlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3Q0ZCM0Q0MEI3RUQxMTgwMDcwQzMyRCAvKiBE
cmFnSW1hZ2VNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
RHJhZ0ltYWdlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0QwMzE4RDBF
OTM1NDAzMDBFMjRBQ0QgLyogSlNJbWFnZURhdGFDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNJbWFnZURhdGFDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBN0QyMEYzQjEwN0YzNzM4MDBBODAzOTIgLyogQ2FudmFzQWN0aXZl
SW5mby5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gQ2FudmFzQWN0aXZlSW5mby5pZGw7IHBh
dGggPSBjYW52YXMvQ2FudmFzQWN0aXZlSW5mby5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUE3RDIwRjYwMTA3RjQwNjkwMEE4MDM5MiAvKiBKU0NhbnZhc0FjdGl2ZUluZm8uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNDYW52YXNBY3RpdmVJbmZv
LmNwcDsgcGF0aCA9IC9Vc2Vycy9vbGl2ZXIvYnVpbGRzL0RlYnVnL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNDYW52YXNBY3RpdmVJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+Ijsg
fTsKKwkJQTdEMjBGNjExMDdGNDA2OTAwQTgwMzkyIC8qIEpTQ2FudmFzQWN0aXZlSW5mby5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU0NhbnZhc0FjdGl2ZUluZm8uaDsgcGF0
aCA9IC9Vc2Vycy9vbGl2ZXIvYnVpbGRzL0RlYnVnL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlND
YW52YXNBY3RpdmVJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CisJCUE3RDIw
RjZCMTA3RjQzOEIwMEE4MDM5MiAvKiBDYW52YXNBY3RpdmVJbmZvLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IENhbnZhc0FjdGl2ZUluZm8uaDsgcGF0aCA9IGNhbnZhcy9DYW52
YXNBY3RpdmVJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3RDI3RkMzMEUw
QTU5OUYwMDc5QUQyQiAvKiBTVkdGRVRpbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU1ZHRkVUaWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTdEM0M1MjMwQjU3NkI0QjAwMkNBNDUwIC8qIFBhc3RlYm9hcmRIZWxwZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFzdGVib2FyZEhlbHBlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBN0Q2QjM0NzBGNjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0
TG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdvcmtlclNjcmlwdExv
YWRlci5oOyBwYXRoID0gd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNjE2LDYgKzEwNjIzLDggQEAKIAkJCQk0OUVFQ0REQzEwNTAz
QzIzMDAwOTlGQUIgLyogQ2FudmFzVW5zaWduZWRTaG9ydEFycmF5LmNwcCAqLywKIAkJCQk0OUVF
Q0RERDEwNTAzQzI0MDAwOTlGQUIgLyogQ2FudmFzVW5zaWduZWRTaG9ydEFycmF5LmggKi8sCiAJ
CQkJNDlFRUNEREUxMDUwM0MyNDAwMDk5RkFCIC8qIENhbnZhc1Vuc2lnbmVkU2hvcnRBcnJheS5p
ZGwgKi8sCisJCQkJQTdEMjBGM0IxMDdGMzczODAwQTgwMzkyIC8qIENhbnZhc0FjdGl2ZUluZm8u
aWRsICovLAorCQkJCUE3RDIwRjZCMTA3RjQzOEIwMEE4MDM5MiAvKiBDYW52YXNBY3RpdmVJbmZv
LmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IGNhbnZhczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CkBAIC0xMjcwOSw2ICsxMjcxOCw4IEBACiAJCUE4M0I3OTA4MENDQUZGMkIwMDBCMDgyNSAv
KiBIVE1MICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlB
N0QyMEY2MDEwN0Y0MDY5MDBBODAzOTIgLyogSlNDYW52YXNBY3RpdmVJbmZvLmNwcCAqLywKKwkJ
CQlBN0QyMEY2MTEwN0Y0MDY5MDBBODAzOTIgLyogSlNDYW52YXNBY3RpdmVJbmZvLmggKi8sCiAJ
CQkJNDlFRUNGMTkxMDUwNzJGMzAwMDk5RkFCIC8qIEpTQ2FudmFzQXJyYXkuY3BwICovLAogCQkJ
CTQ5RUVDRjFBMTA1MDcyRjMwMDA5OUZBQiAvKiBKU0NhbnZhc0FycmF5LmggKi8sCiAJCQkJNDlF
RUNFRjIxMDUwNzBDNDAwMDk5RkFCIC8qIEpTQ2FudmFzQXJyYXlCdWZmZXIuY3BwICovLApAQCAt
MTgwMDQsNiArMTgwMTUsOCBAQAogCQkJCTkzRjE5OUVEMDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xU
UHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUJFNTEyRTBDRjZDNTEyMDAyRUE5NTkg
LyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0RENEQ4NzBGREY0RDZF
MDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTdEMjBGNjMxMDdG
NDA2OTAwQTgwMzkyIC8qIEpTQ2FudmFzQWN0aXZlSW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
QTdEMjBGNkQxMDdGNDM4QjAwQTgwMzkyIC8qIENhbnZhc0FjdGl2ZUluZm8uaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpAQCAtMjAxMzEsNiArMjAxNDQsNyBAQAogCQkJCTkzRjE5QjA1MDgyNDVFNTkwMDFFOUFC
QyAvKiBYU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUJFNTEy
RDBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk3REQ0RDg2MEZERjRENkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUE3RDIwRjYyMTA3RjQwNjkwMEE4MDM5MiAvKiBKU0NhbnZhc0FjdGl2ZUluZm8u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c0FjdGl2ZUluZm8uaCBiL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzQWN0aXZlSW5mby5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwNGIwZDAKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0FjdGl2ZUluZm8uaApAQCAtMCwwICsxLDYy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5k
ZWYgQ2FudmFzQWN0aXZlSW5mb19oCisjZGVmaW5lIENhbnZhc0FjdGl2ZUluZm9faAorCisjaW5j
bHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
Q2FudmFzQWN0aXZlSW5mbyA6IHB1YmxpYyBSZWZDb3VudGVkPENhbnZhc0FjdGl2ZUluZm8+IHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDYW52YXNBY3RpdmVJbmZvPiBjcmVhdGUo
Y29uc3QgU3RyaW5nJiBuYW1lLCB1bnNpZ25lZCB0eXBlLCBpbnQgc2l6ZSkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2FudmFzQWN0aXZlSW5mbyhuYW1lLCB0eXBlLCBzaXpl
KSk7CisgICAgfQorICAgIFN0cmluZyBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9Cisg
ICAgdW5zaWduZWQgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQorICAgIGludCBzaXpl
KCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CisKK3ByaXZhdGU6CisgICAgQ2FudmFzQWN0aXZl
SW5mbyhjb25zdCBTdHJpbmcmIG5hbWUsIHVuc2lnbmVkIHR5cGUsIGludCBzaXplKQorICAgICAg
ICA6IG1fbmFtZShuYW1lKQorICAgICAgICAsIG1fdHlwZSh0eXBlKQorICAgICAgICAsIG1fc2l6
ZShzaXplKQorICAgIHsKKyAgICAgICAgQVNTRVJUKG5hbWUubGVuZ3RoKCkpOworICAgICAgICBB
U1NFUlQodHlwZSk7CisgICAgICAgIEFTU0VSVChzaXplKTsKKyAgICB9CisgICAgU3RyaW5nIG1f
bmFtZTsKKyAgICB1bnNpZ25lZCBtX3R5cGU7CisgICAgaW50IG1fc2l6ZTsKK307CisKK30KKwor
I2VuZGlmIC8vIENhbnZhc0FjdGl2ZUluZm9faApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNBY3RpdmVJbmZvLmlkbCBiL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzQWN0
aXZlSW5mby5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmNlYWUyOQot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzQWN0aXZlSW5mby5p
ZGwKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCittb2R1bGUgaHRtbCB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25k
aXRpb25hbD0zRF9DQU5WQVMsCisgICAgXSBDYW52YXNBY3RpdmVJbmZvIHsKKyAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGludCBzaXplOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgaW50IHR5cGU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFt
ZTsKKyAgICB9OworCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc09i
amVjdC5oIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNPYmplY3QuaAppbmRleCA0MTNkYTcx
Li43NDgyNzhkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc09iamVjdC5o
CisrKyBiL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzT2JqZWN0LmgKQEAgLTQ4LDEyICs0OCwx
MiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBkZWxldGVPYmplY3QoKTsKICAg
ICAgICAgICAgIG1fY29udGV4dCA9IDA7CiAgICAgICAgIH0KLSAgICAgICAgCisKKyAgICAgICAg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDNEKiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250
ZXh0OyB9CisKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIENhbnZhc09iamVjdChDYW52YXNSZW5k
ZXJpbmdDb250ZXh0M0QqKTsKICAgICAgICAgdmlydHVhbCB2b2lkIF9kZWxldGVPYmplY3QoUGxh
dGZvcm0zRE9iamVjdCkgPSAwOwotICAgICAgICAKLSAgICAgICAgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDNEKiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0OyB9CiAgICAgCiAgICAg
cHJpdmF0ZToKICAgICAgICAgUGxhdGZvcm0zRE9iamVjdCBtX29iamVjdDsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNELmNwcCBiL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNELmNwcAppbmRleCBiODEwNTAw
Li4zNWYxOGVmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQzRC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0M0QuY3BwCkBAIC0yOCw2ICsyOCw4IEBACiAjaWYgRU5BQkxFKDNEX0NBTlZBUykKIAog
I2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQzRC5oIgorCisjaW5jbHVkZSAiQ2FudmFz
QWN0aXZlSW5mby5oIgogI2luY2x1ZGUgIkNhbnZhc0J1ZmZlci5oIgogI2luY2x1ZGUgIkNhbnZh
c0ZyYW1lYnVmZmVyLmgiCiAjaW5jbHVkZSAiQ2FudmFzUHJvZ3JhbS5oIgpAQCAtNDc3LDYgKzQ3
OSwyNiBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Z2VuZXJhdGVNaXBtYXAodW5z
aWduZWQgbG9uZyB0YXJnZXQpCiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsK
IH0KIAorUGFzc1JlZlB0cjxDYW52YXNBY3RpdmVJbmZvPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0
M0Q6OmdldEFjdGl2ZUF0dHJpYihDYW52YXNQcm9ncmFtKiBwcm9ncmFtLCB1bnNpZ25lZCBsb25n
IGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBBY3RpdmVJbmZvIGluZm87CisgICAg
aWYgKCFwcm9ncmFtIHx8IHByb2dyYW0tPmNvbnRleHQoKSAhPSB0aGlzIHx8ICFtX2NvbnRleHQu
Z2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIGluZGV4LCBpbmZvKSkgeworICAgICAgICBlYyA9IElO
REVYX1NJWkVfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgcmV0dXJuIENhbnZh
c0FjdGl2ZUluZm86OmNyZWF0ZShpbmZvLm5hbWUsIGluZm8udHlwZSwgaW5mby5zaXplKTsKK30K
KworUGFzc1JlZlB0cjxDYW52YXNBY3RpdmVJbmZvPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6
OmdldEFjdGl2ZVVuaWZvcm0oQ2FudmFzUHJvZ3JhbSogcHJvZ3JhbSwgdW5zaWduZWQgbG9uZyBp
bmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgQWN0aXZlSW5mbyBpbmZvOworICAgIGlm
ICghcHJvZ3JhbSB8fCBwcm9ncmFtLT5jb250ZXh0KCkgIT0gdGhpcyB8fCAhbV9jb250ZXh0Lmdl
dEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgaW5kZXgsIGluZm8pKSB7CisgICAgICAgIGVjID0gSU5E
RVhfU0laRV9FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICByZXR1cm4gQ2FudmFz
QWN0aXZlSW5mbzo6Y3JlYXRlKGluZm8ubmFtZSwgaW5mby50eXBlLCBpbmZvLnNpemUpOworfQor
CiBpbnQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnZXRBdHRyaWJMb2NhdGlvbihDYW52YXNQ
cm9ncmFtKiBwcm9ncmFtLCBjb25zdCBTdHJpbmcmIG5hbWUpCiB7CiAgICAgcmV0dXJuIG1fY29u
dGV4dC5nZXRBdHRyaWJMb2NhdGlvbihwcm9ncmFtLCBuYW1lKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNELmggYi9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQzRC5oCmluZGV4IGE0YTY4ZmMuLjM0NzFhY2Eg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNE
LmgKKysrIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0M0QuaApA
QCAtMzYsNiArMzYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIENhbnZhc0Fj
dGl2ZUluZm87CiBjbGFzcyBDYW52YXNCdWZmZXI7CiBjbGFzcyBDYW52YXNGcmFtZWJ1ZmZlcjsK
IGNsYXNzIENhbnZhc09iamVjdDsKQEAgLTEyMyw3ICsxMjQsMTAgQEAgY2xhc3MgV2ViS2l0Q1NT
TWF0cml4OwogICAgICAgICB2b2lkIGZyYW1lYnVmZmVyVGV4dHVyZTJEKHVuc2lnbmVkIGxvbmcg
dGFyZ2V0LCB1bnNpZ25lZCBsb25nIGF0dGFjaG1lbnQsIHVuc2lnbmVkIGxvbmcgdGV4dGFyZ2V0
LCBDYW52YXNUZXh0dXJlKiwgbG9uZyBsZXZlbCk7CiAgICAgICAgIHZvaWQgZnJvbnRGYWNlKHVu
c2lnbmVkIGxvbmcgbW9kZSk7CiAgICAgICAgIHZvaWQgZ2VuZXJhdGVNaXBtYXAodW5zaWduZWQg
bG9uZyB0YXJnZXQpOwotICAgICAgICAKKworICAgICAgICBQYXNzUmVmUHRyPENhbnZhc0FjdGl2
ZUluZm8+IGdldEFjdGl2ZUF0dHJpYihDYW52YXNQcm9ncmFtKiwgdW5zaWduZWQgbG9uZyBpbmRl
eCwgRXhjZXB0aW9uQ29kZSYpOworICAgICAgICBQYXNzUmVmUHRyPENhbnZhc0FjdGl2ZUluZm8+
IGdldEFjdGl2ZVVuaWZvcm0oQ2FudmFzUHJvZ3JhbSosIHVuc2lnbmVkIGxvbmcgaW5kZXgsIEV4
Y2VwdGlvbkNvZGUmKTsKKwogICAgICAgICBpbnQgIGdldEF0dHJpYkxvY2F0aW9uKENhbnZhc1By
b2dyYW0qLCBjb25zdCBTdHJpbmcmIG5hbWUpOwogCiAgICAgICAgIGJvb2wgZ2V0Qm9vbGVhbih1
bnNpZ25lZCBsb25nIHBuYW1lKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDNELmlkbCBiL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDNELmlkbAppbmRleCA0YjlhODg5Li43YjBkYWE5IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQzRC5pZGwKKysrIGIvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0M0QuaWRsCkBAIC01MzAsOCAr
NTMwLDExIEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgdm9pZCAgICAgICAgIGdlbmVyYXRlTWlw
bWFwKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0KTsKICAgICAgICAgCiAgICAgICAgIC8vIEZJWE1F
OiB0aGVzZSBuZWVkIHRvIGJlIGFkZGVkIHBlciB0aGUgV2ViR0wgc3BlYwotICAgICAgICAvLyBD
YW52YXNBY3RpdmVJbmZvIGdldEFjdGl2ZUF0dHJpYihHTHVpbnQgcHJvZ3JhbSwgR0x1aW50IGlu
ZGV4KTsKLSAgICAgICAgLy8gQ2FudmFzQWN0aXZlSW5mbyBnZXRBY3RpdmVVbmlmb3JtKEdMdWlu
dCBwcm9ncmFtLCBHTHVpbnQgaW5kZXgpOworICAgICAgICBDYW52YXNBY3RpdmVJbmZvIGdldEFj
dGl2ZUF0dHJpYihpbiBDYW52YXNQcm9ncmFtIHByb2dyYW0sIGluIHVuc2lnbmVkIGxvbmcgaW5k
ZXgpCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIENhbnZhc0Fj
dGl2ZUluZm8gZ2V0QWN0aXZlVW5pZm9ybShpbiBDYW52YXNQcm9ncmFtIHByb2dyYW0sIGluIHVu
c2lnbmVkIGxvbmcgaW5kZXgpCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisK
ICAgICAgICAgLy8gQ2FudmFzU2hhZGVyQXJyYXkgZ2xHZXRBdHRhY2hlZFNoYWRlcnMoR0x1aW50
IHByb2dyYW0pOwogCiAgICAgICAgIGludCAgICAgICAgICBnZXRBdHRyaWJMb2NhdGlvbihpbiBD
YW52YXNQcm9ncmFtIHByb2dyYW0sIGluIERPTVN0cmluZyBuYW1lKTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaCBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAppbmRleCA1MjIzZTA1Li4zMTRmYzgy
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNE
LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCkBA
IC00NSw2ICs0NSw3IEBAIGNvbnN0IFBsYXRmb3JtM0RPYmplY3QgTnVsbFBsYXRmb3JtM0RPYmpl
Y3QgPSAwOwogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBDYW52YXNB
Y3RpdmVJbmZvOwogICAgIGNsYXNzIENhbnZhc0FycmF5OwogICAgIGNsYXNzIENhbnZhc0J1ZmZl
cjsKICAgICBjbGFzcyBDYW52YXNVbnNpZ25lZEJ5dGVBcnJheTsKQEAgLTYxLDcgKzYyLDEzIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBIVE1MVmlkZW9FbGVtZW50OwogICAgIGNs
YXNzIEltYWdlRGF0YTsKICAgICBjbGFzcyBXZWJLaXRDU1NNYXRyaXg7Ci0gICAgCisKKyAgICBz
dHJ1Y3QgQWN0aXZlSW5mbyB7CisgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICB1bnNpZ25l
ZCB0eXBlOworICAgICAgICBpbnQgc2l6ZTsKKyAgICB9OworCiAgICAgLy8gRklYTUU6IGlkZWFs
bHkgdGhpcyB3b3VsZCBiZSB1c2VkIG9uIGFsbCBwbGF0Zm9ybXMuCiAjaWYgUExBVEZPUk0oQ0hS
T01JVU0pCiAgICAgY2xhc3MgR3JhcGhpY3NDb250ZXh0M0RJbnRlcm5hbDsKQEAgLTE0MSw2ICsx
NDgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgZnJvbnRGYWNlKHVuc2ln
bmVkIGxvbmcgbW9kZSk7CiAgICAgICAgIHZvaWQgZ2VuZXJhdGVNaXBtYXAodW5zaWduZWQgbG9u
ZyB0YXJnZXQpOwogCisgICAgICAgIGJvb2wgZ2V0QWN0aXZlQXR0cmliKENhbnZhc1Byb2dyYW0q
IHByb2dyYW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgsIEFjdGl2ZUluZm8mKTsKKyAgICAgICAgYm9v
bCBnZXRBY3RpdmVVbmlmb3JtKENhbnZhc1Byb2dyYW0qIHByb2dyYW0sIHVuc2lnbmVkIGxvbmcg
aW5kZXgsIEFjdGl2ZUluZm8mKTsKKwogICAgICAgICBpbnQgIGdldEF0dHJpYkxvY2F0aW9uKENh
bnZhc1Byb2dyYW0qLCBjb25zdCBTdHJpbmcmIG5hbWUpOwogCiAgICAgICAgIGJvb2wgZ2V0Qm9v
bGVhbih1bnNpZ25lZCBsb25nIHBuYW1lKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dDNETWFjLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dDNETWFjLmNwcAppbmRleCBjZDY2NDQ1Li45ZWVl
MmQwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0Nv
bnRleHQzRE1hYy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhp
Y3NDb250ZXh0M0RNYWMuY3BwCkBAIC0zMCw5ICszMCwxMCBAQAogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dDNELmgiCiAKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgorI2luY2x1ZGUgIkNhbnZh
c0FjdGl2ZUluZm8uaCIKKyNpbmNsdWRlICJDYW52YXNBcnJheS5oIgogI2luY2x1ZGUgIkNhbnZh
c0J1ZmZlci5oIgogI2luY2x1ZGUgIkNhbnZhc0ZyYW1lYnVmZmVyLmgiCi0jaW5jbHVkZSAiQ2Fu
dmFzQXJyYXkuaCIKICNpbmNsdWRlICJDYW52YXNGbG9hdEFycmF5LmgiCiAjaW5jbHVkZSAiQ2Fu
dmFzSW50QXJyYXkuaCIKICNpbmNsdWRlICJDYW52YXNPYmplY3QuaCIKQEAgLTQ0Miw2ICs0NDMs
NDYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Z2VuZXJhdGVNaXBtYXAodW5zaWduZWQgbG9u
ZyB0YXJnZXQpCiAgICAgOjpnbEdlbmVyYXRlTWlwbWFwRVhUKHRhcmdldCk7CiB9CiAKK2Jvb2wg
R3JhcGhpY3NDb250ZXh0M0Q6OmdldEFjdGl2ZUF0dHJpYihDYW52YXNQcm9ncmFtKiBwcm9ncmFt
LCB1bnNpZ25lZCBsb25nIGluZGV4LCBBY3RpdmVJbmZvJiBpbmZvKQoreworICAgIGlmICghcHJv
Z3JhbS0+b2JqZWN0KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBlbnN1cmVDb250ZXh0
KG1fY29udGV4dE9iaik7CisgICAgR0xpbnQgbWF4QXR0cmlidXRlU2l6ZSA9IDA7CisgICAgOjpn
bEdldFByb2dyYW1pdihzdGF0aWNfY2FzdDxHTHVpbnQ+KHByb2dyYW0tPm9iamVjdCgpKSwgR0xf
QUNUSVZFX0FUVFJJQlVURV9NQVhfTEVOR1RILCAmbWF4QXR0cmlidXRlU2l6ZSk7CisgICAgR0xj
aGFyIG5hbWVbbWF4QXR0cmlidXRlU2l6ZV07IC8vIEdMX0FDVElWRV9BVFRSSUJVVEVfTUFYX0xF
TkdUSCBpbmNsdWRlcyBudWxsIHRlcm1pbmF0aW9uCisgICAgR0xzaXplaSBuYW1lTGVuZ3RoID0g
MDsKKyAgICBHTGludCBzaXplID0gMDsKKyAgICBHTGVudW0gdHlwZSA9IDA7CisgICAgOjpnbEdl
dEFjdGl2ZUF0dHJpYihzdGF0aWNfY2FzdDxHTHVpbnQ+KHByb2dyYW0tPm9iamVjdCgpKSwgaW5k
ZXgsIG1heEF0dHJpYnV0ZVNpemUsICZuYW1lTGVuZ3RoLCAmc2l6ZSwgJnR5cGUsIG5hbWUpOwor
ICAgIGlmICghbmFtZUxlbmd0aCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGluZm8ubmFt
ZSA9IFN0cmluZyhuYW1lLCBuYW1lTGVuZ3RoKTsKKyAgICBpbmZvLnR5cGUgPSB0eXBlOworICAg
IGluZm8uc2l6ZSA9IHNpemU7CisgICAgcmV0dXJuIHRydWU7Cit9CisgICAgCitib29sIEdyYXBo
aWNzQ29udGV4dDNEOjpnZXRBY3RpdmVVbmlmb3JtKENhbnZhc1Byb2dyYW0qIHByb2dyYW0sIHVu
c2lnbmVkIGxvbmcgaW5kZXgsIEFjdGl2ZUluZm8mIGluZm8pCit7CisgICAgaWYgKCFwcm9ncmFt
LT5vYmplY3QoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGVuc3VyZUNvbnRleHQobV9j
b250ZXh0T2JqKTsKKyAgICBHTGludCBtYXhVbmlmb3JtU2l6ZSA9IDA7CisgICAgOjpnbEdldFBy
b2dyYW1pdihzdGF0aWNfY2FzdDxHTHVpbnQ+KHByb2dyYW0tPm9iamVjdCgpKSwgR0xfQUNUSVZF
X1VOSUZPUk1fTUFYX0xFTkdUSCwgJm1heFVuaWZvcm1TaXplKTsKKyAgICBHTGNoYXIgbmFtZVtt
YXhVbmlmb3JtU2l6ZV07IC8vIEdMX0FDVElWRV9VTklGT1JNX01BWF9MRU5HVEggaW5jbHVkZXMg
bnVsbCB0ZXJtaW5hdGlvbgorICAgIEdMc2l6ZWkgbmFtZUxlbmd0aCA9IDA7CisgICAgR0xpbnQg
c2l6ZSA9IDA7CisgICAgR0xlbnVtIHR5cGUgPSAwOworICAgIDo6Z2xHZXRBY3RpdmVVbmlmb3Jt
KHN0YXRpY19jYXN0PEdMdWludD4ocHJvZ3JhbS0+b2JqZWN0KCkpLCBpbmRleCwgbWF4VW5pZm9y
bVNpemUsICZuYW1lTGVuZ3RoLCAmc2l6ZSwgJnR5cGUsIG5hbWUpOworICAgIGlmICghbmFtZUxl
bmd0aCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGluZm8ubmFtZSA9IFN0cmluZyhuYW1l
LCBuYW1lTGVuZ3RoKTsKKyAgICBpbmZvLnR5cGUgPSB0eXBlOworICAgIGluZm8uc2l6ZSA9IHNp
emU7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGludCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0QXR0
cmliTG9jYXRpb24oQ2FudmFzUHJvZ3JhbSogcHJvZ3JhbSwgY29uc3QgU3RyaW5nJiBuYW1lKQog
ewogICAgIGlmICghcHJvZ3JhbSk=
</data>
<flag name="review"
          id="22298"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>