<?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>39602</bug_id>
          
          <creation_ts>2010-05-24 10:05:04 -0700</creation_ts>
          <short_desc>Add IDBDatabase&apos;s attributes</short_desc>
          <delta_ts>2010-05-26 04:45:54 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</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="Jeremy Orlow">jorlow</reporter>
          <assigned_to name="Jeremy Orlow">jorlow</assigned_to>
          <cc>andreip</cc>
    
    <cc>fishd</cc>
    
    <cc>steveblock</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>229791</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-24 10:05:04 -0700</bug_when>
    <thetext>Add IDBDatabase&apos;s attributes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230270</commentid>
    <comment_count>1</comment_count>
      <attachid>57019</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-25 07:58:30 -0700</bug_when>
    <thetext>Created attachment 57019
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230271</commentid>
    <comment_count>2</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-25 08:03:16 -0700</bug_when>
    <thetext>+ darin for WebKit API review
+ andrei for informal review of the whole thing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230272</commentid>
    <comment_count>3</comment_count>
      <attachid>57019</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-05-25 08:04:21 -0700</bug_when>
    <thetext>Comment on attachment 57019
Patch

WebKit/chromium/public/WebIDBDatabase.h:43
 +      // FIXME: These should be purely virtual.
no need for this FIXME.  it is helpful for API method to have default
implementations.  that way it is easier to change the API.

WebKit/chromium/src/IDBDatabaseProxy.cpp:72
 +      WebKit::WebVector&lt;WebKit::WebString&gt; webStrings = m_webIDBDatabase-&gt;objectStores();
would it be helpful to define a WebStringList class that works like WebNodeList?
that way the cost of copying the strings out can be deferred to the embedder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230278</commentid>
    <comment_count>4</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-25 08:12:55 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 57019 [details])
&gt; WebKit/chromium/public/WebIDBDatabase.h:43
&gt;  +      // FIXME: These should be purely virtual.
&gt; no need for this FIXME.  it is helpful for API method to have default
&gt; implementations.  that way it is easier to change the API.

In the DOMStorage code, I&apos;ve only added these in as long as needed in order to get the patches landed.  I&apos;m happy to leave them in forever, but I feel like the extra effort to keep things clean (and ensure we&apos;re properly implementing all the interfaces) is good.  If you&apos;re all right with it, I&apos;d like to try and keep this stuff purely virtual....at least until someone else depends on the Chromium API and so we need to keep backwards compat code in longer.

&gt; 
&gt; WebKit/chromium/src/IDBDatabaseProxy.cpp:72
&gt;  +      WebKit::WebVector&lt;WebKit::WebString&gt; webStrings = m_webIDBDatabase-&gt;objectStores();
&gt; would it be helpful to define a WebStringList class that works like WebNodeList?
&gt; that way the cost of copying the strings out can be deferred to the embedder.

That&apos;s probably a good idea.  Can I do it in a subsequent patch please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230293</commentid>
    <comment_count>5</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-05-25 08:46:56 -0700</bug_when>
    <thetext>Looks good, I have two comments:

1. I think you should leave a FIXME in the IDBDatabaseRequest IDL file, to make it clear that it&apos;s incomplete. Right now, all the methods are missing.

2. Jonas&apos; draft spec drops the &apos;modifyDatabase&apos; param from the IndexedDatabaseRequest::open() method. 

https://docs.google.com/a/google.com/View?id=dfs2skx2_4g3s5f857

I think we should then drop it too, as it&apos;s not entirely clear what is it for. And, as discussed, we should be implementing his draft anyway, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230307</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-05-25 09:15:54 -0700</bug_when>
    <thetext>&gt; &gt; WebKit/chromium/src/IDBDatabaseProxy.cpp:72
&gt; &gt;  +      WebKit::WebVector&lt;WebKit::WebString&gt; webStrings = m_webIDBDatabase-&gt;objectStores();
&gt; &gt; would it be helpful to define a WebStringList class that works like WebNodeList?
&gt; &gt; that way the cost of copying the strings out can be deferred to the embedder.
&gt; 
&gt; That&apos;s probably a good idea.  Can I do it in a subsequent patch please?

Yes, certainly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230640</commentid>
    <comment_count>7</comment_count>
      <attachid>57086</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-26 03:31:59 -0700</bug_when>
    <thetext>Created attachment 57086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230646</commentid>
    <comment_count>8</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-05-26 03:39:29 -0700</bug_when>
    <thetext>LGTM. Steve should have a look, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230662</commentid>
    <comment_count>9</comment_count>
      <attachid>57086</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-05-26 04:29:09 -0700</bug_when>
    <thetext>Comment on attachment 57086
Patch

The class names are very confusing! Is there a description of what they all mean somewhere?

WebCore/storage/IDBDatabaseImpl.cpp:50
 +  }
Why the empty impl?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230663</commentid>
    <comment_count>10</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-26 04:34:19 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 57086 [details])
&gt; The class names are very confusing! Is there a description of what they all mean somewhere?
&gt; 
&gt; WebCore/storage/IDBDatabaseImpl.cpp:50
&gt;  +  }
&gt; Why the empty impl?

I can avoid including DOMSecurityList.h in the header.  As the file gets fleshed out, I&apos;m sure there&apos;ll be more stuff that we can just forward declare rather than define.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230665</commentid>
    <comment_count>11</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-26 04:35:06 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 57086 [details])
&gt; The class names are very confusing! Is there a description of what they all mean somewhere?

We&apos;re working to change the names in the spec.  When this happens, we&apos;ll rename them here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230667</commentid>
    <comment_count>12</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-05-26 04:37:49 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; (From update of attachment 57086 [details] [details])
&gt; &gt; The class names are very confusing! Is there a description of what they all mean somewhere?
&gt; &gt; 
&gt; &gt; WebCore/storage/IDBDatabaseImpl.cpp:50
&gt; &gt;  +  }
&gt; &gt; Why the empty impl?
&gt; 
&gt; I can avoid including DOMSecurityList.h in the header.
I meant the empty destructor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230670</commentid>
    <comment_count>13</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-26 04:43:53 -0700</bug_when>
    <thetext>Committed r60230: &lt;http://trac.webkit.org/changeset/60230&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230671</commentid>
    <comment_count>14</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-26 04:45:54 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #10)
&gt; &gt; (In reply to comment #9)
&gt; &gt; &gt; (From update of attachment 57086 [details] [details] [details])
&gt; &gt; &gt; The class names are very confusing! Is there a description of what they all mean somewhere?
&gt; &gt; &gt; 
&gt; &gt; &gt; WebCore/storage/IDBDatabaseImpl.cpp:50
&gt; &gt; &gt;  +  }
&gt; &gt; &gt; Why the empty impl?
&gt; &gt; 
&gt; &gt; I can avoid including DOMSecurityList.h in the header.
&gt; I meant the empty destructor

I know.  If I made the destructor inline (even implicitly inline) then all children destructors would also need to be available.  It&apos;s viral and pretty soon you&apos;re including the world just to have a destructor in some cases.  So making the destructor explicit, putting it in your .cpp file, and just forward declaring most stuff in the .h instead of including other .h files is a common pattern.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57019</attachid>
            <date>2010-05-25 07:58:30 -0700</date>
            <delta_ts>2010-05-26 03:31:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39602-20100525155828.patch</filename>
            <type>text/plain</type>
            <size>29772</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxZDM2NGVhMjRkMmUzOTkwOTRlMjY5NDFmMmUyMDBlYjRhYWZhMTQ2Li5mMTE1M2Ex
NzQ5YjM2ZjQ4NzIyNTAxMDcyYmVmMDRmYjZkZTUwY2ExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTAtMDUtMjQgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRmxlc2ggb3V0IElEQkRh
dGFiYXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
OTYwMgorCisgICAgICAgIFVwZGF0ZSB0aGUgdGVzdCBleHBlY3RhdGlvbnMgbm93IHRoYXQgdGhp
cyBzdWNjZWVkcy4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2Jhc2ljcy1leHBlY3Rl
ZC50eHQ6CisKIDIwMTAtMDUtMjEgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2Jhc2ljcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9iYXNpY3MtZXhwZWN0ZWQudHh0CmluZGV4IDhhMTFm
NmNhMmNlZDBhYjI1OTE3N2RhNWE5OWU2MmI0MTI1MGJmMjQuLjczODU2YmVhZmM2ZDAwN2EwNTg4
ZDA0OWRiNzRmOTQ4Mzg2YjIzMmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2Jhc2ljcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvYmFzaWNzLWV4cGVjdGVkLnR4dApAQCAtMTMsMTQgKzEzLDE0IEBAIFBBU1MgJ3JlYWR5
U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVlCiAKIEFuIGV2ZW50IHNob3VsZCBmaXJlIHNob3J0bHku
Li4KIAotRkFJTCBFcnJvciBmdW5jdGlvbiBjYWxsZWQ6ICgwKSBOb3QgaW1wbGVtZW50ZWQKK1N1
Y2Nlc3MgZnVuY3Rpb24gY2FsbGVkCiAKIFBBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQog
UEFTUyAnb3BlbicgaW4gZXZlbnQuc291cmNlIGlzIHRydWUKIAotRkFJTCAncmVzdWx0JyBpbiBl
dmVudCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCAnY29kZScgaW4gZXZlbnQgc2hv
dWxkIGJlIGZhbHNlLiBXYXMgdHJ1ZS4KLUZBSUwgJ21lc3NhZ2UnIGluIGV2ZW50IHNob3VsZCBi
ZSBmYWxzZS4gV2FzIHRydWUuCitQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKK1BBU1Mg
J2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdtZXNzYWdlJyBpbiBldmVudCBpcyBmYWxz
ZQogCiBQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCiBQQVNTICdvbmVy
cm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbAppbmRleCAyMzlhNzk0
MGRlYmQ3ODU3ODczNTc0ZjBhMDlhMzU4ODA3MzVhYzE5Li44NjVmYWRiYmMxYmRiOTEzOWY3N2Nj
MmFiNTE3OTkzMWRkZGMyMjM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbApAQCAtMyw2ICszLDcgQEAKIDxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CiA8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggZDhmZTgyNzExMzg1YTA1OTY2NDY2N2Y3OTExYzk0NDIwNDkyMzZiYS4uMzYw
YjRlMWI4MDM4OWRkNDY2MTNmYWFmN2M1NzZjNzI1MGU3YjZlYiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MCBAQAorMjAx
MC0wNS0yNCAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgSURCRGF0YWJhc2UncyBh
dHRyaWJ1dGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zOTYwMgorCisgICAgICAgIEFkZCB0aGUgYXR0cmlidXRlcyAobGlrZSBuYW1lLCBkZXNjcmlw
dGlvbiwgZXRjKSBmb3IKKyAgICAgICAgSURCRGF0YWJhc2VSZXF1ZXN0LiAgUGx1bWIgdGhhdCBi
YWNrIHRvIHRoZSBJREJEYXRhYmFzZQorICAgICAgICBvYmplY3Qgd2hpY2ggc3RvcmVzIHRoZSBk
YXRhLgorCisgICAgICAgIENNYWtlIGFuZCBBbmRyb2lkIGJ1aWxkIGNoYW5nZXMgaW4gYW5vdGhl
ciBDTCAodGhhdAorICAgICAgICBmaXhlcyBvdGhlciBzdHVmZiB0b28pLgorCisgICAgICAgIFVw
ZGF0ZWQgdGhlIGxheW91dCB0ZXN0LCBidXQgdGhlcmUncyBzb21lIGZ1cnRoZXIgdGVzdGluZwor
ICAgICAgICB0aGF0IG5lZWRzIHRvIGJlIGFkZGVkIG9uY2UgdGhlIENocm9taXVtIHNpZGUgb2Yg
dGhpcyBsYW5kcy4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtCisgICAgICAgICogV2ViQ29y
ZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKyAgICAgICAgKiBkb20vRE9NU3RyaW5nTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6RE9N
U3RyaW5nTGlzdDo6c3RyaW5ncyk6CisgICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFzZS5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFzZS5oOgorICAgICAgICAqIHN0
b3JhZ2UvSURCRGF0YWJhc2VJbXBsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJE
YXRhYmFzZUltcGw6OklEQkRhdGFiYXNlSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRh
YmFzZUltcGw6On5JREJEYXRhYmFzZUltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJh
c2VJbXBsOjpvYmplY3RTdG9yZXMpOgorICAgICAgICAqIHN0b3JhZ2UvSURCRGF0YWJhc2VJbXBs
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VJbXBsOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VJbXBsOjpuYW1lKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQkRhdGFiYXNlSW1wbDo6ZGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURC
RGF0YWJhc2VJbXBsOjp2ZXJzaW9uKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQkRhdGFiYXNlUmVx
dWVzdC5oOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VSZXF1ZXN0OjpuYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlUmVxdWVzdDo6ZGVzY3JpcHRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6SURCRGF0YWJhc2VSZXF1ZXN0Ojp2ZXJzaW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQkRhdGFiYXNlUmVxdWVzdDo6b2JqZWN0U3RvcmVzKToKKyAgICAgICAgKiBzdG9yYWdl
L0lEQkRhdGFiYXNlUmVxdWVzdC5pZGw6CisgICAgICAgICogc3RvcmFnZS9JREJTdWNjZXNzRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU3VjY2Vzc0V2ZW50OjpJREJTdWNjZXNzRXZl
bnQpOgorICAgICAgICAqIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlSW1wbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbmRleGVkRGF0YWJhc2VJbXBsOjpvcGVuKToKKyAgICAgICAgKiBzdG9yYWdl
L0luZGV4ZWREYXRhYmFzZUltcGwuaDoKKwogMjAxMC0wNS0yMCAgSmVyZW15IE9ybG93ICA8am9y
bG93QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlh
a292LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KaW5kZXggZTdjYjAzOGY2NTE1MThmOTZiMzRiZmZkZWM1ZDU3N2JiZjE2MzJiNi4u
YTBhYTE3OTlmMmVlNzBmZTdiMTVhMmE0MWE1MmE0OTMwNDk4ZDE0MyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0yNDc2
LDggKzI0NzYsOSBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvc3RvcmFnZS9JREJB
bnkuaCBcCiAJV2ViQ29yZS9zdG9yYWdlL0lEQkNhbGxiYWNrcy5jcHAgXAogCVdlYkNvcmUvc3Rv
cmFnZS9JREJDYWxsYmFja3MuaCBcCi0JV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmNwcCBc
CiAJV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmggXAorCVdlYkNvcmUvc3RvcmFnZS9JREJE
YXRhYmFzZUltcGwuY3BwIFwKKwlXZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VJbXBsLmggXAog
CVdlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUVycm9yLmggXAogCVdlYkNvcmUvc3RvcmFnZS9J
REJEYXRhYmFzZUV4Y2VwdGlvbi5oIFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1
ZXN0LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCmluZGV4IDNmNjYwZjJkYmNhMWI2MzRlNGQyMGMyMmI3ZGNjYTY2YzJkZWIzOGEu
LmM5NmRjODhmNzQxYjRhYzNjMzBkMmEyOWIwZDVjOGQ0Mzc5NzI0OTAgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zMzUxLDcg
KzMzNTEsOCBAQAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCQW55LmgnLAogICAgICAgICAgICAg
J3N0b3JhZ2UvSURCQ2FsbGJhY2tzLmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCRGF0YWJh
c2UuaCcsCi0gICAgICAgICAgICAnc3RvcmFnZS9JREJEYXRhYmFzZS5jcHAnLAorICAgICAgICAg
ICAgJ3N0b3JhZ2UvSURCRGF0YWJhc2VJbXBsLmgnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvSURC
RGF0YWJhc2VJbXBsLmNwcCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJEYXRhYmFzZUVycm9y
LmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCRGF0YWJhc2VFeGNlcHRpb24uaCcsCiAgICAg
ICAgICAgICAnc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuY3BwJywKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDEzYTQyMDUyNmVj
MmU4YWE3MTdmZjBmMTE4MjAxMmQ4MzViNTBkMDUuLmZlMWJjMTA5OTFmZDQ1OWRkNGE1MWMxMjc2
ZTRmODIxMDVkYWIxMzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLnBybwpAQCAtMjMzMyw2ICsyMzMzLDcgQEAgY29udGFpbnMoREVGSU5FUywg
RU5BQkxFX0lOREVYRURfREFUQUJBU0U9MSkgewogICAgICAgICBzdG9yYWdlL0lEQkFueS5oIFwK
ICAgICAgICAgc3RvcmFnZS9JREJDYWxsYmFja3MuaCBcCiAgICAgICAgIHN0b3JhZ2UvSURCRGF0
YWJhc2UuaCBcCisgICAgICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VJbXBsLmggXAogICAgICAgICBz
dG9yYWdlL0lEQkRhdGFiYXNlRXJyb3IuaCBcCiAgICAgICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VF
eGNlcHRpb24uaCBcCiAgICAgICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmggXApAQCAt
MjM0Nyw3ICsyMzQ4LDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0lOREVYRURfREFUQUJB
U0U9MSkgewogICAgIFNPVVJDRVMgKz0gXAogICAgICAgICBiaW5kaW5ncy9qcy9KU0lEQkFueUN1
c3RvbS5jcHAgXAogICAgICAgICBzdG9yYWdlL0lEQkFueS5jcHAgXAotICAgICAgICBzdG9yYWdl
L0lEQkRhdGFiYXNlLmNwcCBcCisgICAgICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VJbXBsLmNwcCBc
CiAgICAgICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmNwcCBcCiAgICAgICAgIHN0b3Jh
Z2UvSURCRXJyb3JFdmVudC5jcHAgXAogICAgICAgICBzdG9yYWdlL0lEQkV2ZW50LmNwcCBcCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA3NGUxNWZjZDkxYTkzMmY0Mzkx
Y2NmYTQwNDk3YTY0ZTBiN2I2NWY3Li42NDQyNjc5Njk3NGMyYzcwZGIzNjAzNGVmMzVhZjNlNjcy
NTUzY2I1IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTQzOTY1LDYg
KzQzOTY1LDE0IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCRGF0YWJhc2VJbXBsLmNwcCINCisJCQkJPg0KKwkJCTwvRmls
ZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCRGF0YWJhc2VJ
bXBsLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRo
PSIuLlxzdG9yYWdlXExvY2FsU3RvcmFnZVRhc2suY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWU5ZTU1NmVk
MWQxMDE1MmRkYzEzOGQzMWIyYzk3NTRiMTA2MGIwZS4uZTczZjZkOWUzNDViMjI4OWViZDExMWQ4
MzJkMTMxYWFhYzNiMjU3OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTQ3NjcsNiArNDc2Nyw4IEBACiAJCUMwREZDODcwMERCNjg0MUEwMDNFQUU3QyAv
KiBKU0NvbnNvbGVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzBERkM4NkYwREI2ODQxQTAwM0VBRTdDIC8qIEpTQ29uc29sZUN1c3RvbS5j
cHAgKi87IH07CiAJCUMxMDVEQTYyMEYzQUE2OEYwMDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRl
Y3RvcklDVS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMTA1REE2MTBGM0FBNjhGMDAxREQ0NEYgLyogVGV4dEVuY29kaW5nRGV0ZWN0b3JJQ1UuY3Bw
ICovOyB9OwogCQlDMTA1REE2NDBGM0FBNkI4MDAxREQ0NEYgLyogVGV4dEVuY29kaW5nRGV0ZWN0
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxMDVE
QTYzMEYzQUE2QjgwMDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3Rvci5oICovOyB9OworCQlD
NTBBRDJBQjExQUMxNjMxMDA4Q0YyRkIgLyogSURCRGF0YWJhc2VJbXBsLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1MEFEMkE5MTFBQzE2MzEwMDhD
RjJGQiAvKiBJREJEYXRhYmFzZUltcGwuY3BwICovOyB9OworCQlDNTBBRDJBQzExQUMxNjMxMDA4
Q0YyRkIgLyogSURCRGF0YWJhc2VJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDNTBBRDJBQTExQUMxNjMxMDA4Q0YyRkIgLyogSURCRGF0YWJhc2VJ
bXBsLmggKi87IH07CiAJCUM1MEQwRTgyMEZGNDI3MjkwMEFDMjY0NCAvKiBTdG9yYWdlTmFtZXNw
YWNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1
MEQwRTgwMEZGNDI3MjkwMEFDMjY0NCAvKiBTdG9yYWdlTmFtZXNwYWNlLmNwcCAqLzsgfTsKIAkJ
QzUwRDBFODMwRkY0MjcyOTAwQUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1MEQwRTgxMEZGNDI3MjkwMEFD
MjY0NCAvKiBTdG9yYWdlTmFtZXNwYWNlLmggKi87IH07CiAJCUM1MTAyRDk0MEZEOUFBMkQwMEZB
RkYwNCAvKiBTdG9yYWdlU3luY01hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEM1MTAyRDkyMEZEOUFBMkQwMEZBRkYwNCAvKiBTdG9yYWdlU3lu
Y01hbmFnZXIuaCAqLzsgfTsKQEAgLTQ3NzgsNyArNDc4MCw2IEBACiAJCUM1MTYwRUVBMTAwNDU0
M0EwMEE3Q0VFMiAvKiBTdG9yYWdlQXJlYUltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUxNjBFRTgxMDA0NTQzQTAwQTdDRUUyIC8qIFN0b3Jh
Z2VBcmVhSW1wbC5jcHAgKi87IH07CiAJCUM1MTYwRUVCMTAwNDU0M0EwMEE3Q0VFMiAvKiBTdG9y
YWdlQXJlYUltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEM1MTYwRUU5MTAwNDU0M0EwMEE3Q0VFMiAvKiBTdG9yYWdlQXJlYUltcGwuaCAqLzsgfTsK
IAkJQzUxOThGNEMxMTkyRUNGRDAwMkI3NEE2IC8qIElEQkNhbGxiYWNrcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUxOThGMzgxMTkyRUNGRDAwMkI3
NEE2IC8qIElEQkNhbGxiYWNrcy5oICovOyB9OwotCQlDNTE5OEY0RDExOTJFQ0ZEMDAyQjc0QTYg
LyogSURCRGF0YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQzUxOThGMzkxMTkyRUNGRDAwMkI3NEE2IC8qIElEQkRhdGFiYXNlLmNwcCAqLzsg
fTsKIAkJQzUxOThGNEUxMTkyRUNGRDAwMkI3NEE2IC8qIElEQkRhdGFiYXNlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTE5OEYzQTExOTJFQ0ZEMDAy
Qjc0QTYgLyogSURCRGF0YWJhc2UuaCAqLzsgfTsKIAkJQzUxOThGNEYxMTkyRUNGRDAwMkI3NEE2
IC8qIElEQkRhdGFiYXNlRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEM1MTk4RjNCMTE5MkVDRkQwMDJCNzRBNiAvKiBJREJEYXRhYmFzZUVycm9y
LmggKi87IH07CiAJCUM1MTk4RjUxMTE5MkVDRkQwMDJCNzRBNiAvKiBJREJEYXRhYmFzZUV4Y2Vw
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUx
OThGM0QxMTkyRUNGRDAwMkI3NEE2IC8qIElEQkRhdGFiYXNlRXhjZXB0aW9uLmggKi87IH07CkBA
IC0xMDI3MSw2ICsxMDI3Miw4IEBACiAJCUMwREZDODZGMERCNjg0MUEwMDNFQUU3QyAvKiBKU0Nv
bnNvbGVDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlND
b25zb2xlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzEwNURBNjEw
RjNBQTY4RjAwMURENDRGIC8qIFRleHRFbmNvZGluZ0RldGVjdG9ySUNVLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRFbmNvZGluZ0RldGVjdG9ySUNVLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzEwNURBNjMwRjNBQTZCODAwMURENDRGIC8q
IFRleHRFbmNvZGluZ0RldGVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFRleHRFbmNvZGluZ0RldGVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM1
MEFEMkE5MTFBQzE2MzEwMDhDRjJGQiAvKiBJREJEYXRhYmFzZUltcGwuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCRGF0YWJhc2VJbXBsLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzUwQUQyQUExMUFDMTYzMTAwOENGMkZCIC8qIElEQkRhdGFi
YXNlSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJEYXRhYmFzZUlt
cGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzUwRDBFODAwRkY0MjcyOTAwQUMy
NjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU3RvcmFnZU5hbWVzcGFjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUM1MEQwRTgxMEZGNDI3MjkwMEFDMjY0NCAvKiBTdG9yYWdlTmFtZXNwYWNlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VOYW1lc3BhY2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzUxMDJEOTIwRkQ5QUEyRDAwRkFGRjA0IC8qIFN0b3JhZ2VT
eW5jTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlU3lu
Y01hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMjgyLDcgKzEwMjg1
LDYgQEAKIAkJQzUxNjBFRTgxMDA0NTQzQTAwQTdDRUUyIC8qIFN0b3JhZ2VBcmVhSW1wbC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdlQXJlYUltcGwuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTE2MEVFOTEwMDQ1NDNBMDBBN0NFRTIg
LyogU3RvcmFnZUFyZWFJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0
b3JhZ2VBcmVhSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTE5OEYzODEx
OTJFQ0ZEMDAyQjc0QTYgLyogSURCQ2FsbGJhY2tzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IElEQkNhbGxiYWNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlD
NTE5OEYzOTExOTJFQ0ZEMDAyQjc0QTYgLyogSURCRGF0YWJhc2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCRGF0YWJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDNTE5OEYzQTExOTJFQ0ZEMDAyQjc0QTYgLyogSURCRGF0YWJhc2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCRGF0YWJhc2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzUxOThGM0IxMTkyRUNGRDAwMkI3NEE2IC8qIElEQkRhdGFi
YXNlRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCRGF0YWJhc2VF
cnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTE5OEYzQzExOTJFQ0ZEMDAy
Qjc0QTYgLyogSURCRGF0YWJhc2VFcnJvci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSURC
RGF0YWJhc2VFcnJvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDk5Nyw4
ICsxMDk5OSw5IEBACiAJCQkJQzU2QzkxNTAxMTlEODRDQjAwREU0Q0Q5IC8qIElEQkFueS5oICov
LAogCQkJCUM1NkM5MTUxMTE5RDg0Q0IwMERFNENEOSAvKiBJREJBbnkuaWRsICovLAogCQkJCUM1
MTk4RjM4MTE5MkVDRkQwMDJCNzRBNiAvKiBJREJDYWxsYmFja3MuaCAqLywKLQkJCQlDNTE5OEYz
OTExOTJFQ0ZEMDAyQjc0QTYgLyogSURCRGF0YWJhc2UuY3BwICovLAogCQkJCUM1MTk4RjNBMTE5
MkVDRkQwMDJCNzRBNiAvKiBJREJEYXRhYmFzZS5oICovLAorCQkJCUM1MEFEMkE5MTFBQzE2MzEw
MDhDRjJGQiAvKiBJREJEYXRhYmFzZUltcGwuY3BwICovLAorCQkJCUM1MEFEMkFBMTFBQzE2MzEw
MDhDRjJGQiAvKiBJREJEYXRhYmFzZUltcGwuaCAqLywKIAkJCQlDNTE5OEYzQjExOTJFQ0ZEMDAy
Qjc0QTYgLyogSURCRGF0YWJhc2VFcnJvci5oICovLAogCQkJCUM1MTk4RjNDMTE5MkVDRkQwMDJC
NzRBNiAvKiBJREJEYXRhYmFzZUVycm9yLmlkbCAqLywKIAkJCQlDNTE5OEYzRDExOTJFQ0ZEMDAy
Qjc0QTYgLyogSURCRGF0YWJhc2VFeGNlcHRpb24uaCAqLywKQEAgLTE5MzI4LDYgKzE5MzMxLDcg
QEAKIAkJCQlCNzM0QjE4MzExOUI5OTFEMDA2NTg3QkQgLyogRm9udFRyYW5zY29kZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUM1NDQyNzRCMTFBNTdFN0EwMDYzQTc0OSAvKiBET01TdHJpbmdMaXN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTEzN0NGMzExQTU4Mzc4MDA0QURCOTkgLyogSlNET01T
dHJpbmdMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlDNTBBRDJBQzExQUMxNjMxMDA4Q0YyRkIg
LyogSURCRGF0YWJhc2VJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIxNTc5LDcgKzIxNTgzLDYg
QEAKIAkJCQlCNThDRUI2QTExOTEzNjA3MDAyQTY3OTAgLyogSlNEYXRhYmFzZVN5bmMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQjU4Q0VCNkUxMTkxMzYxQzAwMkE2NzkwIC8qIEpTU1FMVHJhbnNh
Y3Rpb25TeW5jLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA4M0Y1Mjk5MTE5NTdGQkUwMDY1M0VC
RSAvKiBTVkdUZXh0TGF5b3V0VXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUM1MTk4
RjREMTE5MkVDRkQwMDJCNzRBNiAvKiBJREJEYXRhYmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlDNTE5OEY1MzExOTJFQ0ZEMDAyQjc0QTYgLyogSURCRGF0YWJhc2VSZXF1ZXN0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUM1MTk4RjU2MTE5MkVDRkQwMDJCNzRBNiAvKiBJREJSZXF1ZXN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUM1MTk4RjU5MTE5MkVDRkQwMDJCNzRBNiAvKiBJbmRleGVk
RGF0YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yMTYxNyw2ICsyMTYyMCw3IEBACiAJCQkJ
QjczNEIxODExMTlCOTkxMTAwNjU4N0JEIC8qIEZvbnRUcmFuc2NvZGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUM1MTM3Q0YyMTFBNTgzNzgwMDRBREI5OSAvKiBKU0RPTVN0cmluZ0xpc3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQzU1NjEwRjExMUE3MDRFQjAwQjgyRDI3IC8qIERPTVN0cmlu
Z0xpc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzUwQUQyQUIxMUFDMTYzMTAwOENGMkZCIC8q
IElEQkRhdGFiYXNlSW1wbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
ZG9tL0RPTVN0cmluZ0xpc3QuaCBiL1dlYkNvcmUvZG9tL0RPTVN0cmluZ0xpc3QuaAppbmRleCBh
M2Y5YjQwYjM4NDU3MWE4NWE0MDU1NGFhMjAyMmU2ZmI2NDZhNGExLi4wNzhjNDY1NGJhMDNhNmNh
ODBlZjM2MWYyNDg1ZWNhZGVlNDhkMjUxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9ET01TdHJp
bmdMaXN0LmgKKysrIGIvV2ViQ29yZS9kb20vRE9NU3RyaW5nTGlzdC5oCkBAIC00Miw2ICs0Miw4
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBET01TdHJpbmdMaXN0KCkp
OwogICAgIH0KIAorICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzdHJpbmdzKCkgY29uc3QgeyBy
ZXR1cm4gbV9zdHJpbmdzOyB9CisKICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBt
X3N0cmluZ3MuaXNFbXB0eSgpOyB9CiAgICAgdm9pZCBjbGVhcigpIHsgbV9zdHJpbmdzLmNsZWFy
KCk7IH0KICAgICB2b2lkIGFwcGVuZChjb25zdCBTdHJpbmcmIHN0cmluZykgeyBtX3N0cmluZ3Mu
YXBwZW5kKHN0cmluZyk7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFz
ZS5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmgKaW5kZXggMDMyNjJmNGVmODU3ZjVi
OTYxMTU5YmI1NGM5NGRiZmJiOTJkOTQ1OS4uNWM4MzM4NGQyMTc4NWYxN2ViYWEwYTZiYzhjYjVj
ZmRmMjM5ZDEwNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmgKKysr
IGIvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmgKQEAgLTI5LDEyICsyOSwxNiBAQAogI2lm
bmRlZiBJREJEYXRhYmFzZV9oCiAjZGVmaW5lIElEQkRhdGFiYXNlX2gKIAorI2luY2x1ZGUgIlBs
YXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3
dGYvVGhyZWFkaW5nLmg+CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitjbGFzcyBET01TdHJpbmdMaXN0OworCiAvLyBUaGlzIGNsYXNzIGlz
IHNoYXJlZCBieSBJREJEYXRhYmFzZVJlcXVlc3QgKGFzeW5jKSBhbmQgSURCRGF0YWJhc2VTeW5j
IChzeW5jKS4KIC8vIFRoaXMgaXMgaW1wbGVtZW50ZWQgYnkgSURCRGF0YWJhc2VJbXBsIGFuZCBv
cHRpb25hbGx5IG90aGVycyAoaW4gb3JkZXIgdG8gcHJveHkKIC8vIGNhbGxzIGFjcm9zcyBwcm9j
ZXNzIGJhcnJpZXJzKS4gQWxsIGNhbGxzIHRvIHRoZXNlIGNsYXNzZXMgc2hvdWxkIGJlIG5vbi1i
bG9ja2luZyBhbmQKQEAgLTQyLDcgKzQ2LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IElEQkRhdGFiYXNlIDogcHVibGljIFRocmVhZFNhZmVTaGFyZWQ8SURCRGF0YWJhc2U+IHsKIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5JREJEYXRhYmFzZSgpIHsgfQotICAgIC8vIEZJWE1FOiBXcml0
ZS4KKworICAgIHZpcnR1YWwgU3RyaW5nIG5hbWUoKSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcg
ZGVzY3JpcHRpb24oKSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgdmVyc2lvbigpID0gMDsKKyAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gb2JqZWN0U3RvcmVzKCkgPSAwOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdl
L0lEQkRhdGFiYXNlLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUltcGwuY3BwCnNp
bWlsYXJpdHkgaW5kZXggNzUlCmNvcHkgZnJvbSBXZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2Uu
Y3BwCmNvcHkgdG8gV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlSW1wbC5jcHAKaW5kZXggZjNm
MzU0ZjFjMmU4NmJlZTQzMjg1NzQxNmE5Nzg2MDgyOWQ5NDk0Yy4uOTRhNzYyNDhmYTM2YTA4ZDJj
YjA2YTE4YTA1M2MxNjkyN2I5NjBhZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRh
dGFiYXNlLmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VJbXBsLmNwcApAQCAt
MjUsMTQgKzI1LDM2IEBACiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKICAqIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KKwog
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIklEQkRhdGFiYXNlLmgiCisjaW5jbHVkZSAi
SURCRGF0YWJhc2VJbXBsLmgiCisKKyNpbmNsdWRlICJET01TdHJpbmdMaXN0LmgiCisjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisjaW5jbHVk
ZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBGSVhNRTogV3JpdGUuCitJREJEYXRhYmFzZUltcGw6
OklEQkRhdGFiYXNlSW1wbChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24sIGNvbnN0IFN0cmluZyYgdmVyc2lvbikKKyAgICA6IG1fbmFtZShuYW1lKQorICAgICwg
bV9kZXNjcmlwdGlvbihkZXNjcmlwdGlvbikKKyAgICAsIG1fdmVyc2lvbih2ZXJzaW9uKQorewor
fQorCitJREJEYXRhYmFzZUltcGw6On5JREJEYXRhYmFzZUltcGwoKQoreworfQorCitQYXNzUmVm
UHRyPERPTVN0cmluZ0xpc3Q+IElEQkRhdGFiYXNlSW1wbDo6b2JqZWN0U3RvcmVzKCkKK3sKKyAg
ICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcmV0dXJuIHRoZSBhY3R1YWwgbGlzdC4KKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gRE9NU3RyaW5nTGlzdDo6Y3JlYXRlKCk7Cit9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdl
L0lEQkRhdGFiYXNlLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUltcGwuaApzaW1p
bGFyaXR5IGluZGV4IDY3JQpyZW5hbWUgZnJvbSBXZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2Uu
Y3BwCnJlbmFtZSB0byBXZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VJbXBsLmgKaW5kZXggZjNm
MzU0ZjFjMmU4NmJlZTQzMjg1NzQxNmE5Nzg2MDgyOWQ5NDk0Yy4uOGRiNzU1ZTllZTI5ZmY3MjFm
NGYxNmFjOGM5OTAyOWE5OGYzNjk3NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRh
dGFiYXNlLmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VJbXBsLmgKQEAgLTI1
LDE2ICsyNSw0MiBAQAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCiAgKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCi0jaW5j
bHVkZSAiY29uZmlnLmgiCisKKyNpZm5kZWYgSURCRGF0YWJhc2VJbXBsX2gKKyNkZWZpbmUgSURC
RGF0YWJhc2VJbXBsX2gKKwogI2luY2x1ZGUgIklEQkRhdGFiYXNlLmgiCisjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLS8vIEZJWE1FOiBXcml0ZS4KK2NsYXNzIElEQkRhdGFiYXNlSW1wbCA6
IHB1YmxpYyBJREJEYXRhYmFzZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURC
RGF0YWJhc2U+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24sIGNvbnN0IFN0cmluZyYgdmVyc2lvbikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgSURCRGF0YWJhc2VJbXBsKG5hbWUsIGRlc2NyaXB0aW9uLCB2ZXJzaW9uKSk7Cisg
ICAgfQorICAgIHZpcnR1YWwgfklEQkRhdGFiYXNlSW1wbCgpOworCisgICAgLy8gSW1wbGVtZW50
cyBJREJEYXRhYmFzZQorICAgIHZpcnR1YWwgU3RyaW5nIG5hbWUoKSB7IHJldHVybiBtX25hbWU7
IH0KKyAgICB2aXJ0dWFsIFN0cmluZyBkZXNjcmlwdGlvbigpIHsgcmV0dXJuIG1fZGVzY3JpcHRp
b247IH0KKyAgICB2aXJ0dWFsIFN0cmluZyB2ZXJzaW9uKCkgeyByZXR1cm4gbV92ZXJzaW9uOyB9
CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IG9iamVjdFN0b3JlcygpOwor
Citwcml2YXRlOgorICAgIElEQkRhdGFiYXNlSW1wbChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmVyc2lvbik7CisKKyAgICBTdHJp
bmcgbV9uYW1lOworICAgIFN0cmluZyBtX2Rlc2NyaXB0aW9uOworICAgIFN0cmluZyBtX3ZlcnNp
b247Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoSU5E
RVhFRF9EQVRBQkFTRSkKKyNlbmRpZgorCisjZW5kaWYgLy8gSURCRGF0YWJhc2VJbXBsX2gKIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5oIGIvV2ViQ29y
ZS9zdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5oCmluZGV4IDE5OWViNzlhNGUxM2I0OGU2NjVm
NGFiYmI0MzhjZmExNDBhZDZiNGEuLmNjYjgyODZlMDY5MDY3MDMxODBmMDdiZmI5YmE1NzYzZTRj
MTcxNTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaAor
KysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmgKQEAgLTI4LDYgKzI4LDcg
QEAKICNpZm5kZWYgSURCRGF0YWJhc2VSZXF1ZXN0X2gKICNkZWZpbmUgSURCRGF0YWJhc2VSZXF1
ZXN0X2gKIAorI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJJREJEYXRhYmFz
ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KQEAgLTQ3LDEzICs0OCwxMSBAQCBwdWJsaWM6CiAgICAgfQogICAgIH5JREJEYXRhYmFz
ZVJlcXVlc3QoKTsKIAotICAgIC8vIEZJWE1FOiBXcml0ZS4KLSAgICB2b2lkIGNyZWF0ZU9iamVj
dFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIGF1
dG9JbmNyZW1lbnQpCi0gICAgewotICAgICAgICBVTlVTRURfUEFSQU0obmFtZSk7Ci0gICAgICAg
IFVOVVNFRF9QQVJBTShrZXlQYXRoKTsKLSAgICAgICAgVU5VU0VEX1BBUkFNKGF1dG9JbmNyZW1l
bnQpOwotICAgIH0KKyAgICAvLyBJbXBsZW1lbnQgdGhlIElETAorICAgIFN0cmluZyBuYW1lKCkg
Y29uc3QgeyByZXR1cm4gbV9pZGJEYXRhYmFzZS0+bmFtZSgpOyB9CisgICAgU3RyaW5nIGRlc2Ny
aXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9pZGJEYXRhYmFzZS0+ZGVzY3JpcHRpb24oKTsgfQor
ICAgIFN0cmluZyB2ZXJzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9pZGJEYXRhYmFzZS0+dmVyc2lv
bigpOyB9CisgICAgUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBvYmplY3RTdG9yZXMoKSBjb25z
dCB7IHJldHVybiBtX2lkYkRhdGFiYXNlLT5vYmplY3RTdG9yZXMoKTsgfQogCiBwcml2YXRlOgog
ICAgIElEQkRhdGFiYXNlUmVxdWVzdChQYXNzUmVmUHRyPElEQkRhdGFiYXNlPik7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmlkbCBiL1dlYkNvcmUvc3Rv
cmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaWRsCmluZGV4IGJlMDMxZDNlNzYwNjFkYWRjMjNiZDYz
MzVjZWVhYjkzMTljY2RhZmIuLjFhYzdmNjk1YTdhMDE0MmExMzI4ZDBlNzk4MjgzNWM2YTVhZDRh
ZTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaWRsCisr
KyBiL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaWRsCkBAIC0zMCwxMCArMzAs
MTAgQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgIGludGVyZmFjZSBbCiAgICAgICAgIENvbmRpdGlv
bmFsPUlOREVYRURfREFUQUJBU0UKICAgICBdIElEQkRhdGFiYXNlUmVxdWVzdCB7Ci0gICAgICAg
IC8vIEZJWE1FOiBCb29sZWFuIHNob3VsZCBiZSBvcHRpb25hbCBhbmQga2V5UGF0aCBzaG91bGQg
dGFrZSBudWxscy4KLSAgICAgICAgdm9pZCBjcmVhdGVPYmplY3RTdG9yZShpbiBET01TdHJpbmcg
bmFtZSwgaW4gRE9NU3RyaW5nIGtleVBhdGgsIGluIGJvb2xlYW4gYXV0b0luY3JlbWVudCk7Ci0K
LSAgICAgICAgLy8gRklYTUU6IEZpbmlzaC4KKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBuYW1lOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRlc2Ny
aXB0aW9uOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlcnNpb247Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmdMaXN0IG9iamVjdFN0b3JlczsKICAg
ICB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCU3VjY2Vzc0V2ZW50LmNw
cCBiL1dlYkNvcmUvc3RvcmFnZS9JREJTdWNjZXNzRXZlbnQuY3BwCmluZGV4IDk2NjBlZWY4MTFj
NzE3ZTRiYjc4Mzc4NjZhM2ExOTQ4ZTEwOWRjODIuLjJkY2Q5NjRiYWIwZDA0OGMxOGYyNDQ4ZGI5
NGI2ZTRkNWU2MGY5NzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJTdWNjZXNzRXZl
bnQuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJTdWNjZXNzRXZlbnQuY3BwCkBAIC00Miw3
ICs0Miw3IEBAIFBhc3NSZWZQdHI8SURCU3VjY2Vzc0V2ZW50PiBJREJTdWNjZXNzRXZlbnQ6OmNy
ZWF0ZShQYXNzUmVmUHRyPElEQkFueT4gc291cmNlLCBQCiB9CiAKIElEQlN1Y2Nlc3NFdmVudDo6
SURCU3VjY2Vzc0V2ZW50KFBhc3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIFBhc3NSZWZQdHI8SURC
QW55PiByZXN1bHQpCi0gICAgOiBJREJFdmVudChldmVudE5hbWVzKCkuZXJyb3JFdmVudCwgc291
cmNlKQorICAgIDogSURCRXZlbnQoZXZlbnROYW1lcygpLnN1Y2Nlc3NFdmVudCwgc291cmNlKQog
ICAgICwgbV9yZXN1bHQocmVzdWx0KQogewogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdl
L0luZGV4ZWREYXRhYmFzZUltcGwuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFz
ZUltcGwuY3BwCmluZGV4IGFlNGZkMWVlYjAzZDhlZDBhZDg0NWZiMzMyYzExYTAzMWQwMTEzZjIu
LjI4OWRmNWY3NGExOGFmMjQyMTc4NGJlY2Q1MGZjYTkwOTdiMWRlNGIgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VJbXBsLmNwcAorKysgYi9XZWJDb3JlL3N0b3Jh
Z2UvSW5kZXhlZERhdGFiYXNlSW1wbC5jcHAKQEAgLTI1LDExICsyNSwxMSBAQAogICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCisKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJJbmRleGVkRGF0YWJhc2VJbXBsLmgiCiAKLSNpbmNsdWRlICJJREJEYXRhYmFzZS5oIgot
I2luY2x1ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKKyNpbmNsdWRlICJJREJEYXRhYmFzZUltcGwu
aCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcu
aD4KICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KQEAgLTUzLDExICs1MywyMiBAQCBJbmRl
eGVkRGF0YWJhc2VJbXBsOjp+SW5kZXhlZERhdGFiYXNlSW1wbCgpCiAKIHZvaWQgSW5kZXhlZERh
dGFiYXNlSW1wbDo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxs
YmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBGcmFtZSosIEV4Y2VwdGlvbkNvZGUm
KQogewotICAgIC8vIEZJWE1FOiBXcml0ZSBmb3IgcmVhbHouCi0gICAgVU5VU0VEX1BBUkFNKG5h
bWUpOwotICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7Ci0gICAgVU5VU0VEX1BBUkFNKG1v
ZGlmeURhdGFiYXNlKTsKLSAgICBjYWxsYmFja3MtPm9uRXJyb3IoSURCRGF0YWJhc2VFcnJvcjo6
Y3JlYXRlKDAsICJOb3QgaW1wbGVtZW50ZWQiKSk7CisgICAgUmVmUHRyPElEQkRhdGFiYXNlPiBk
YXRhYmFzZTsKKyAgICBJREJEYXRhYmFzZU1hcDo6aXRlcmF0b3IgaXQgPSBtX2RhdGFiYXNlTWFw
LmZpbmQobmFtZSk7CisgICAgaWYgKGl0ID09IG1fZGF0YWJhc2VNYXAuZW5kKCkpIHsKKyAgICAg
ICAgLy8gRklYTUU6IFdoYXQgc2hvdWxkIHRoZSB2ZXJzaW9uIGJlPyAgVGhlIHNwZWMgZG9lc24n
dCBkZWZpbmUgaXQgeWV0LgorICAgICAgICBkYXRhYmFzZSA9IElEQkRhdGFiYXNlSW1wbDo6Y3Jl
YXRlKG5hbWUsIGRlc2NyaXB0aW9uLCAiIik7CisgICAgICAgIG1fZGF0YWJhc2VNYXAuc2V0KG5h
bWUsIGRhdGFiYXNlKTsKKyAgICB9IGVsc2UKKyAgICAgICAgZGF0YWJhc2UgPSBpdC0+c2Vjb25k
OworCisgICAgaWYgKG1vZGlmeURhdGFiYXNlKSB7CisgICAgICAgIC8vIEZJWE1FOiBXaGF0IHNo
b3VsZCB3ZSBkbyBpbiB0aGlzIGNhc2U/ICBUaGUgc3BlYyBkb2Vzbid0IGRlZmluZSBpdCB5ZXQu
CisgICAgICAgIEFTU0VSVChkYXRhYmFzZS0+bmFtZSgpID09IG5hbWUpOworICAgICAgICBBU1NF
UlQoZGF0YWJhc2UtPmRlc2NyaXB0aW9uKCkgPT0gZGVzY3JpcHRpb24pOworICAgIH0KKworICAg
IGNhbGxiYWNrcy0+b25TdWNjZXNzKGRhdGFiYXNlLnJlbGVhc2UoKSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJh
c2VJbXBsLmggYi9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlSW1wbC5oCmluZGV4IDhk
NzM2OTQ2YTYzZWZjMDY4NWY5OTBkOWE2OTg4ZjQyZDVhYjdjODAuLmQxYjg4ZTIzOTk5MWU5Mzc5
ZGU1OTE3OTg1YzAzNTMwZmJjYmViOGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JbmRl
eGVkRGF0YWJhc2VJbXBsLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZUlt
cGwuaApAQCAtMjksNiArMjksOCBAQAogI2RlZmluZSBJbmRleGVkRGF0YWJhc2VJbXBsX2gKIAog
I2luY2x1ZGUgIkluZGV4ZWREYXRhYmFzZS5oIgorI2luY2x1ZGUgIlN0cmluZ0hhc2guaCIKKyNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAK
QEAgLTQ0LDYgKzQ2LDkgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBJbmRleGVkRGF0YWJhc2VJ
bXBsKCk7CiAKKyAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8SURCRGF0YWJhc2U+
ID4gSURCRGF0YWJhc2VNYXA7CisgICAgSURCRGF0YWJhc2VNYXAgbV9kYXRhYmFzZU1hcDsKKwog
ICAgIC8vIFdlIG9ubHkgY3JlYXRlIG9uZSBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIGF0IGEgdGlt
ZS4KICAgICBzdGF0aWMgSW5kZXhlZERhdGFiYXNlSW1wbCogaW5kZXhlZERhdGFiYXNlSW1wbDsK
IH07CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwppbmRleCAwN2U2ZWRiMmUxNjA1YzA1N2NhNTNlZjc0MzgwYjYzZGYwYTFj
N2U1Li5hYmViZGQ3MWUyOTZkNjBhMTM0NTUyNTA1MGZlZTA1YjlmMmQ4ZTVjIDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMC0wNS0yNCAgSmVyZW15IE9ybG93ICA8am9ybG93QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgSURCRGF0YWJhc2UncyBhdHRyaWJ1dGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTYwMgorCisgICAgICAgIFBsdW1iaW5nIHRvIGhv
b2sgdXAgdGhlIHN5bmNocm9ub3VzIGF0dHJpYnV0ZSByZXF1ZXN0cworICAgICAgICBvbiBJREJE
YXRhYmFzZS4KKworICAgICAgICAqIHB1YmxpYy9XZWJJREJEYXRhYmFzZS5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJJREJEYXRhYmFzZTo6bmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRh
dGFiYXNlOjpkZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRhdGFiYXNlOjp2
ZXJzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2U6Om9iamVjdFN0b3Jlcyk6
CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNlUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCRGF0YWJhc2VQcm94eTo6bmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZVBy
b3h5OjpkZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZVByb3h5Ojp2
ZXJzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlUHJveHk6Om9iamVjdFN0b3Jl
cyk6CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNlUHJveHkuaDoKKyAgICAgICAgKiBzcmMvV2Vi
SURCRGF0YWJhc2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2VJbXBs
OjpXZWJJREJEYXRhYmFzZUltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUlt
cGw6Om5hbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUltcGw6OmRlc2NyaXB0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2VJbXBsOjp2ZXJzaW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2VJbXBsOjpvYmplY3RTdG9yZXMpOgorICAgICAg
ICAqIHNyYy9XZWJJREJEYXRhYmFzZUltcGwuaDoKKwogMjAxMC0wNS0yMSAgVG9ueSBDaGFuZyAg
PHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9qYW4gVmFmYWkuCmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmggYi9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmgKaW5kZXggNDAzYjRlOGIwY2Q3NTY5
MjFmNzk5YmVhMTM0YWNjMmIyMGM0ZmQzYi4uZWZlZWY4NGYwMDM4NGQyOTRhNjgwOGE4YmUwMjcw
ZTI4ZWMxZjMyOCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRh
YmFzZS5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaApAQCAt
MzAsNiArMzAsOCBAQAogI2RlZmluZSBXZWJJREJEYXRhYmFzZV9oCiAKICNpbmNsdWRlICJXZWJD
b21tb24uaCIKKyNpbmNsdWRlICJXZWJTdHJpbmcuaCIKKyNpbmNsdWRlICJXZWJWZWN0b3IuaCIK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTM4LDcgKzQwLDExIEBAIGNsYXNzIFdlYklEQkRh
dGFiYXNlIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJJREJEYXRhYmFzZSgpIHsgfQogCi0g
ICAgLy8gRklYTUU6IEltcGxlbWVudC4KKyAgICAvLyBGSVhNRTogVGhlc2Ugc2hvdWxkIGJlIHB1
cmVseSB2aXJ0dWFsLgorICAgIHZpcnR1YWwgV2ViU3RyaW5nIG5hbWUoKSB7IHJldHVybiBXZWJT
dHJpbmcoKTsgfQorICAgIHZpcnR1YWwgV2ViU3RyaW5nIGRlc2NyaXB0aW9uKCkgeyByZXR1cm4g
V2ViU3RyaW5nKCk7IH0KKyAgICB2aXJ0dWFsIFdlYlN0cmluZyB2ZXJzaW9uKCkgeyByZXR1cm4g
V2ViU3RyaW5nKCk7IH0KKyAgICB2aXJ0dWFsIFdlYlZlY3RvcjxXZWJTdHJpbmc+IG9iamVjdFN0
b3JlcygpIHsgcmV0dXJuIFdlYlZlY3RvcjxXZWJTdHJpbmc+KCk7IH0KIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFz
ZVByb3h5LmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VQcm94eS5jcHAKaW5k
ZXggZDEyZWM3MDJlNDk5ODhiZjE2NWUyNTIxODk0NDUxOWY5NTcyZDE4OS4uNmM4MjM1YTBkY2Yz
NTdmNTkyNWQ1ODhmZjZkNWI2OGMwZTUzMmY0MCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJEYXRhYmFzZVByb3h5LmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRh
dGFiYXNlUHJveHkuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiSURCRGF0YWJhc2VQcm94eS5oIgogCisjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5o
IgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFz
ZS5oIgogI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlRXJyb3IuaCIKQEAgLTUxLDYgKzUyLDMwIEBA
IElEQkRhdGFiYXNlUHJveHk6On5JREJEYXRhYmFzZVByb3h5KCkKIHsKIH0KIAorU3RyaW5nIElE
QkRhdGFiYXNlUHJveHk6Om5hbWUoKQoreworICAgIHJldHVybiBtX3dlYklEQkRhdGFiYXNlLT5u
YW1lKCk7Cit9CisKK1N0cmluZyBJREJEYXRhYmFzZVByb3h5OjpkZXNjcmlwdGlvbigpCit7Cisg
ICAgcmV0dXJuIG1fd2ViSURCRGF0YWJhc2UtPmRlc2NyaXB0aW9uKCk7Cit9CisKK1N0cmluZyBJ
REJEYXRhYmFzZVByb3h5Ojp2ZXJzaW9uKCkKK3sKKyAgICByZXR1cm4gbV93ZWJJREJEYXRhYmFz
ZS0+dmVyc2lvbigpOworfQorCitQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IElEQkRhdGFiYXNl
UHJveHk6Om9iamVjdFN0b3JlcygpCit7CisgICAgV2ViS2l0OjpXZWJWZWN0b3I8V2ViS2l0OjpX
ZWJTdHJpbmc+IHdlYlN0cmluZ3MgPSBtX3dlYklEQkRhdGFiYXNlLT5vYmplY3RTdG9yZXMoKTsK
KyAgICBSZWZQdHI8RE9NU3RyaW5nTGlzdD4gc3RyaW5ncyA9IERPTVN0cmluZ0xpc3Q6OmNyZWF0
ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgd2ViU3RyaW5ncy5zaXplKCk7ICsraSkK
KyAgICAgICAgc3RyaW5ncy0+YXBwZW5kKHdlYlN0cmluZ3NbaV0pOworICAgIHJldHVybiBzdHJp
bmdzLnJlbGVhc2UoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkRhdGFiYXNlUHJveHkuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VQcm94
eS5oCmluZGV4IGFjOTZhMTVlOTQ5YTdkMWViNjk2YWJmNjBiZWI5ZTMzOWNiNmRmMTcuLmQxYTUx
NDZjOTEzYjllMjVhNjJiNzYxMTMwNGE1ZDMwOWY2ZjUyZWQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9j
aHJvbWl1bS9zcmMvSURCRGF0YWJhc2VQcm94eS5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCRGF0YWJhc2VQcm94eS5oCkBAIC00NSw2ICs0NSwxMSBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8SURCRGF0YWJhc2U+IGNyZWF0ZShQYXNzT3duUHRyPFdlYktpdDo6V2ViSURC
RGF0YWJhc2U+KTsKICAgICB2aXJ0dWFsIH5JREJEYXRhYmFzZVByb3h5KCk7CiAKKyAgICB2aXJ0
dWFsIFN0cmluZyBuYW1lKCk7CisgICAgdmlydHVhbCBTdHJpbmcgZGVzY3JpcHRpb24oKTsKKyAg
ICB2aXJ0dWFsIFN0cmluZyB2ZXJzaW9uKCk7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPERPTVN0
cmluZ0xpc3Q+IG9iamVjdFN0b3JlcygpOworCiAgICAgLy8gRklYTUU6IEFkZCBvdGhlciBtZXRo
b2RzLgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJE
YXRhYmFzZUltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwu
Y3BwCmluZGV4IGUzM2VkYzJiMGRlMmM2YmI3NjE0ZWY1OGQ0NzMwZGFiMzM4ZWFjNzYuLmQ5Yjlh
YjA0NTVlZGI1YmE2NmQzOWE5MjRlMTkxYTk0MDg0N2RhOGUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUltcGwuaCIKIAorI2luY2x1ZGUgIkRP
TVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZS5oIgogCiAjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCkBAIC0zOCw2ICszOSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYklEQkRhdGFiYXNlSW1wbDo6V2ViSURCRGF0YWJh
c2VJbXBsKFBhc3NSZWZQdHI8SURCRGF0YWJhc2U+IGlkYkRhdGFiYXNlKQorICAgIDogbV9pZGJE
YXRhYmFzZShpZGJEYXRhYmFzZSkKIHsKIH0KIApAQCAtNDUsNiArNDcsMjYgQEAgV2ViSURCRGF0
YWJhc2VJbXBsOjp+V2ViSURCRGF0YWJhc2VJbXBsKCkKIHsKIH0KIAorV2ViU3RyaW5nIFdlYklE
QkRhdGFiYXNlSW1wbDo6bmFtZSgpCit7CisgICAgcmV0dXJuIG1faWRiRGF0YWJhc2UtPm5hbWUo
KTsKK30KKworV2ViU3RyaW5nIFdlYklEQkRhdGFiYXNlSW1wbDo6ZGVzY3JpcHRpb24oKQorewor
ICAgIHJldHVybiBtX2lkYkRhdGFiYXNlLT5kZXNjcmlwdGlvbigpOworfQorCitXZWJTdHJpbmcg
V2ViSURCRGF0YWJhc2VJbXBsOjp2ZXJzaW9uKCkKK3sKKyAgICByZXR1cm4gbV9pZGJEYXRhYmFz
ZS0+dmVyc2lvbigpOworfQorCitXZWJWZWN0b3I8V2ViU3RyaW5nPiBXZWJJREJEYXRhYmFzZUlt
cGw6Om9iamVjdFN0b3JlcygpCit7CisgICAgcmV0dXJuIG1faWRiRGF0YWJhc2UtPm9iamVjdFN0
b3JlcygpLT5zdHJpbmdzKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0
YWJhc2VJbXBsLmgKaW5kZXggNzU4Zjg0YTcxNmFiODZlMjhhZGZhYmMxYjZmNDE5ODgxYzJlZmIy
YS4uOTk2NDMwNTAyNDMzMDdlNjA4YjQ3M2RmMDNhZDI2YWEzZWQwZjUxZSAxMDA2NDQKLS0tIGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaAorKysgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oCkBAIC00NCw3ICs0NCwxMCBAQCBwdWJsaWM6
CiAgICAgV2ViSURCRGF0YWJhc2VJbXBsKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRh
YmFzZT4gaWRiRGF0YWJhc2UpOwogICAgIHZpcnR1YWwgfldlYklEQkRhdGFiYXNlSW1wbCgpOwog
Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudC4KKyAgICB2aXJ0dWFsIFdlYlN0cmluZyBuYW1lKCk7
CisgICAgdmlydHVhbCBXZWJTdHJpbmcgZGVzY3JpcHRpb24oKTsKKyAgICB2aXJ0dWFsIFdlYlN0
cmluZyB2ZXJzaW9uKCk7CisgICAgdmlydHVhbCBXZWJWZWN0b3I8V2ViU3RyaW5nPiBvYmplY3RT
dG9yZXMoKTsKIAogcHJpdmF0ZToKICAgICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFz
ZT4gbV9pZGJEYXRhYmFzZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57086</attachid>
            <date>2010-05-26 03:31:59 -0700</date>
            <delta_ts>2010-05-26 04:29:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39602-20100526113156.patch</filename>
            <type>text/plain</type>
            <size>37802</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNzFhMTFiYzUwM2M0Yzc2NDc3ZmE2YTUyNWZiZDEzN2NlYWYxNzgxLi4yMDM2MDll
NjkyMDlmMDFmOTU2ODdhMmJmNWRiOTU2OWUzN2FjNTJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTAtMDUtMjQgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRmxlc2ggb3V0IElEQkRh
dGFiYXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
OTYwMgorCisgICAgICAgIFVwZGF0ZSB0aGUgdGVzdCBleHBlY3RhdGlvbnMgbm93IHRoYXQgdGhp
cyBzdWNjZWVkcy4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2Jhc2ljcy1leHBlY3Rl
ZC50eHQ6CisKIDIwMTAtMDUtMjUgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBOb3QgcmV2aWV3ZWQsIGFkZGluZyBjaHJvbWl1bS1tYWMgcmVzdWx0cy4gIFRoZXkg
ZGlmZmVyIGZyb20KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2Jh
c2ljcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9iYXNpY3Mt
ZXhwZWN0ZWQudHh0CmluZGV4IDhhMTFmNmNhMmNlZDBhYjI1OTE3N2RhNWE5OWU2MmI0MTI1MGJm
MjQuLjczODU2YmVhZmM2ZDAwN2EwNTg4ZDA0OWRiNzRmOTQ4Mzg2YjIzMmEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2Jhc2ljcy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvYmFzaWNzLWV4cGVjdGVkLnR4dApAQCAtMTMs
MTQgKzEzLDE0IEBAIFBBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVlCiAKIEFuIGV2
ZW50IHNob3VsZCBmaXJlIHNob3J0bHkuLi4KIAotRkFJTCBFcnJvciBmdW5jdGlvbiBjYWxsZWQ6
ICgwKSBOb3QgaW1wbGVtZW50ZWQKK1N1Y2Nlc3MgZnVuY3Rpb24gY2FsbGVkCiAKIFBBU1MgJ3Nv
dXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQogUEFTUyAnb3BlbicgaW4gZXZlbnQuc291cmNlIGlzIHRy
dWUKIAotRkFJTCAncmVzdWx0JyBpbiBldmVudCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgot
RkFJTCAnY29kZScgaW4gZXZlbnQgc2hvdWxkIGJlIGZhbHNlLiBXYXMgdHJ1ZS4KLUZBSUwgJ21l
c3NhZ2UnIGluIGV2ZW50IHNob3VsZCBiZSBmYWxzZS4gV2FzIHRydWUuCitQQVNTICdyZXN1bHQn
IGluIGV2ZW50IGlzIHRydWUKK1BBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdt
ZXNzYWdlJyBpbiBldmVudCBpcyBmYWxzZQogCiBQQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRh
cmdldCBpcyB0cnVlCiBQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1MDBl
YmVmMDhhZWRkYjc3NzAyN2Y2YWIzNDQwZGI3ZDY1NDMxNzdhLi44MWZhZDAyM2I2NDhiNGY1Zjkw
OTNkNGQwY2ExODg3MTZlODg5ZmVmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEwLTA1LTI0ICBKZXJlbXkg
T3Jsb3cgIDxqb3Jsb3dAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBJREJEYXRhYmFzZSdzIGF0dHJpYnV0ZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NjAyCisKKyAgICAg
ICAgQWRkIHRoZSBhdHRyaWJ1dGVzIChsaWtlIG5hbWUsIGRlc2NyaXB0aW9uLCBldGMpIGZvcgor
ICAgICAgICBJREJEYXRhYmFzZVJlcXVlc3QuICBQbHVtYiB0aGF0IGJhY2sgdG8gdGhlIElEQkRh
dGFiYXNlCisgICAgICAgIG9iamVjdCB3aGljaCBzdG9yZXMgdGhlIGRhdGEuCisKKyAgICAgICAg
Q01ha2UgYW5kIEFuZHJvaWQgYnVpbGQgY2hhbmdlcyBpbiBhbm90aGVyIENMICh0aGF0CisgICAg
ICAgIGZpeGVzIG90aGVyIHN0dWZmIHRvbykuCisKKyAgICAgICAgVXBkYXRlZCB0aGUgbGF5b3V0
IHRlc3QsIGJ1dCB0aGVyZSdzIHNvbWUgZnVydGhlciB0ZXN0aW5nCisgICAgICAgIHRoYXQgbmVl
ZHMgdG8gYmUgYWRkZWQgb25jZSB0aGUgQ2hyb21pdW0gc2lkZSBvZiB0aGlzIGxhbmRzLgorCisg
ICAgICAgICogR05VbWFrZWZpbGUuYW0KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS5wcm8KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorICAgICAgICAqIGRv
bS9ET01TdHJpbmdMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpET01TdHJpbmdMaXN0OjpzdHJp
bmdzKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQkRhdGFiYXNlLmNwcDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBzdG9yYWdlL0lEQkRhdGFiYXNlLmg6CisgICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFz
ZUltcGwuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlSW1wbDo6SURC
RGF0YWJhc2VJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlSW1wbDo6fklEQkRh
dGFiYXNlSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUltcGw6Om9iamVjdFN0
b3Jlcyk6CisgICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFzZUltcGwuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUltcGw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJEYXRhYmFzZUltcGw6Om5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VJ
bXBsOjpkZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUltcGw6OnZl
cnNpb24pOgorICAgICAgICAqIHN0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0Lmg6CisgICAgICAg
IChXZWJDb3JlOjpJREJEYXRhYmFzZVJlcXVlc3Q6Om5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
SURCRGF0YWJhc2VSZXF1ZXN0OjpkZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJE
YXRhYmFzZVJlcXVlc3Q6OnZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VS
ZXF1ZXN0OjpvYmplY3RTdG9yZXMpOgorICAgICAgICAqIHN0b3JhZ2UvSURCRGF0YWJhc2VSZXF1
ZXN0LmlkbDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQlN1Y2Nlc3NFdmVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJTdWNjZXNzRXZlbnQ6OklEQlN1Y2Nlc3NFdmVudCk6CisgICAgICAgICog
c3RvcmFnZS9JbmRleGVkRGF0YWJhc2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluZGV4
ZWREYXRhYmFzZUltcGw6Om9wZW4pOgorICAgICAgICAqIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNl
SW1wbC5oOgorCiAyMDEwLTA1LTI2ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEuCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCAxODI0ZDA2NzEw
NjM2YTRlM2RkZGQ5Mjk2MzdjYjQzMjQyNmUzZmMyLi4xNmY3M2Y0MmM1ZjhkOTMyN2M5NzUyNDhl
ZDQ4MmIyYTIxMzE1MTFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBi
L1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTI0NzUsOCArMjQ3NSw5IEBAIHdlYmNvcmVfc291
cmNlcyArPSBcCiAJV2ViQ29yZS9zdG9yYWdlL0lEQkFueS5oIFwKIAlXZWJDb3JlL3N0b3JhZ2Uv
SURCQ2FsbGJhY2tzLmNwcCBcCiAJV2ViQ29yZS9zdG9yYWdlL0lEQkNhbGxiYWNrcy5oIFwKLQlX
ZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2UuY3BwIFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURCRGF0
YWJhc2UuaCBcCisJV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlSW1wbC5jcHAgXAorCVdlYkNv
cmUvc3RvcmFnZS9JREJEYXRhYmFzZUltcGwuaCBcCiAJV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFi
YXNlRXJyb3IuaCBcCiAJV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmggXAog
CVdlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuY3BwIFwKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNWZkY2I4YmE4
YmRlYzZmMTJkZGZkNTAzMWU4ZmIzZjFkODMyYjhlZi4uOWI1MmFlNGNkZGY2ZDIzZGYyYWUwZjUy
NjBiY2NjMTNlNmEzMzZjNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTMzNTEsNyArMzM1MSw4IEBACiAgICAgICAgICAgICAn
c3RvcmFnZS9JREJBbnkuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJDYWxsYmFja3MuaCcs
CiAgICAgICAgICAgICAnc3RvcmFnZS9JREJEYXRhYmFzZS5oJywKLSAgICAgICAgICAgICdzdG9y
YWdlL0lEQkRhdGFiYXNlLmNwcCcsCisgICAgICAgICAgICAnc3RvcmFnZS9JREJEYXRhYmFzZUlt
cGwuaCcsCisgICAgICAgICAgICAnc3RvcmFnZS9JREJEYXRhYmFzZUltcGwuY3BwJywKICAgICAg
ICAgICAgICdzdG9yYWdlL0lEQkRhdGFiYXNlRXJyb3IuaCcsCiAgICAgICAgICAgICAnc3RvcmFn
ZS9JREJEYXRhYmFzZUV4Y2VwdGlvbi5oJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkRhdGFi
YXNlUmVxdWVzdC5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNv
cmUvV2ViQ29yZS5wcm8KaW5kZXggZjBmYzkzMjQ1YjYzNjI4M2EyZDZkYTJjZDNkN2NmNGNlZDJm
MTk5MC4uYzA4N2E2YTdiYjhmNDY2ODY4OGI2ZWY4NDE0YmUwOWIxMDU0ZDI4NyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0yMzMy
LDYgKzIzMzIsNyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRT0x
KSB7CiAgICAgICAgIHN0b3JhZ2UvSURCQW55LmggXAogICAgICAgICBzdG9yYWdlL0lEQkNhbGxi
YWNrcy5oIFwKICAgICAgICAgc3RvcmFnZS9JREJEYXRhYmFzZS5oIFwKKyAgICAgICAgc3RvcmFn
ZS9JREJEYXRhYmFzZUltcGwuaCBcCiAgICAgICAgIHN0b3JhZ2UvSURCRGF0YWJhc2VFcnJvci5o
IFwKICAgICAgICAgc3RvcmFnZS9JREJEYXRhYmFzZUV4Y2VwdGlvbi5oIFwKICAgICAgICAgc3Rv
cmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaCBcCkBAIC0yMzQ2LDcgKzIzNDcsNyBAQCBjb250YWlu
cyhERUZJTkVTLCBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRT0xKSB7CiAgICAgU09VUkNFUyArPSBc
CiAgICAgICAgIGJpbmRpbmdzL2pzL0pTSURCQW55Q3VzdG9tLmNwcCBcCiAgICAgICAgIHN0b3Jh
Z2UvSURCQW55LmNwcCBcCi0gICAgICAgIHN0b3JhZ2UvSURCRGF0YWJhc2UuY3BwIFwKKyAgICAg
ICAgc3RvcmFnZS9JREJEYXRhYmFzZUltcGwuY3BwIFwKICAgICAgICAgc3RvcmFnZS9JREJEYXRh
YmFzZVJlcXVlc3QuY3BwIFwKICAgICAgICAgc3RvcmFnZS9JREJFcnJvckV2ZW50LmNwcCBcCiAg
ICAgICAgIHN0b3JhZ2UvSURCRXZlbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCmluZGV4IGMwYTZlMjc3YzlmNDgxOGZiMjRmYzY4N2YwMWI5ZGY4ZTY1OTAzNDEuLmU3
YTEyMmMyNjYzYThiMTE4YmQwNzc4ZTNlNzE3Y2I2MmY3OWNiNTUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDM5ODEsNiArNDM5ODEsMTQgQEAKIAkJCQk+DQogCQkJ
PC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJEYXRh
YmFzZUltcGwuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJEYXRhYmFzZUltcGwuaCINCisJCQkJPg0KKwkJCTwvRmls
ZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcTG9jYWxTdG9yYWdl
VGFzay5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBlNDJjYmZiM2Q0Y2Y2OTc4YjJkMWJjMmVmMzE2ZDI2N2Qy
YzJlZDIzLi44ZmRmMjRhOTFjM2ExOTY0NTE2NDI1OWM5NGU3Nzg0YmI1ODc0ZGI3IDEwMDY0NAot
LS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDc2OCw2ICs0NzY4LDgg
QEAKIAkJQzBERkM4NzAwREI2ODQxQTAwM0VBRTdDIC8qIEpTQ29uc29sZUN1c3RvbS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMERGQzg2RjBEQjY4
NDFBMDAzRUFFN0MgLyogSlNDb25zb2xlQ3VzdG9tLmNwcCAqLzsgfTsKIAkJQzEwNURBNjIwRjNB
QTY4RjAwMURENDRGIC8qIFRleHRFbmNvZGluZ0RldGVjdG9ySUNVLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxMDVEQTYxMEYzQUE2OEYwMDFERDQ0
RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAgKi87IH07CiAJCUMxMDVEQTY0MEYzQUE2
QjgwMDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzEwNURBNjMwRjNBQTZCODAwMURENDRGIC8qIFRl
eHRFbmNvZGluZ0RldGVjdG9yLmggKi87IH07CisJCUM1MEFEMkFCMTFBQzE2MzEwMDhDRjJGQiAv
KiBJREJEYXRhYmFzZUltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzUwQUQyQTkxMUFDMTYzMTAwOENGMkZCIC8qIElEQkRhdGFiYXNlSW1wbC5j
cHAgKi87IH07CisJCUM1MEFEMkFDMTFBQzE2MzEwMDhDRjJGQiAvKiBJREJEYXRhYmFzZUltcGwu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1MEFEMkFB
MTFBQzE2MzEwMDhDRjJGQiAvKiBJREJEYXRhYmFzZUltcGwuaCAqLzsgfTsKIAkJQzUwRDBFODIw
RkY0MjcyOTAwQUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUwRDBFODAwRkY0MjcyOTAwQUMyNjQ0IC8q
IFN0b3JhZ2VOYW1lc3BhY2UuY3BwICovOyB9OwogCQlDNTBEMEU4MzBGRjQyNzI5MDBBQzI2NDQg
LyogU3RvcmFnZU5hbWVzcGFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzUwRDBFODEwRkY0MjcyOTAwQUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2Uu
aCAqLzsgfTsKIAkJQzUxMDJEOTQwRkQ5QUEyRDAwRkFGRjA0IC8qIFN0b3JhZ2VTeW5jTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUxMDJE
OTIwRkQ5QUEyRDAwRkFGRjA0IC8qIFN0b3JhZ2VTeW5jTWFuYWdlci5oICovOyB9OwpAQCAtNDc3
OSw3ICs0NzgxLDYgQEAKIAkJQzUxNjBFRUExMDA0NTQzQTAwQTdDRUUyIC8qIFN0b3JhZ2VBcmVh
SW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
NTE2MEVFODEwMDQ1NDNBMDBBN0NFRTIgLyogU3RvcmFnZUFyZWFJbXBsLmNwcCAqLzsgfTsKIAkJ
QzUxNjBFRUIxMDA0NTQzQTAwQTdDRUUyIC8qIFN0b3JhZ2VBcmVhSW1wbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUxNjBFRTkxMDA0NTQzQTAwQTdD
RUUyIC8qIFN0b3JhZ2VBcmVhSW1wbC5oICovOyB9OwogCQlDNTE5OEY0QzExOTJFQ0ZEMDAyQjc0
QTYgLyogSURCQ2FsbGJhY2tzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDNTE5OEYzODExOTJFQ0ZEMDAyQjc0QTYgLyogSURCQ2FsbGJhY2tzLmggKi87
IH07Ci0JCUM1MTk4RjREMTE5MkVDRkQwMDJCNzRBNiAvKiBJREJEYXRhYmFzZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTE5OEYzOTExOTJFQ0ZE
MDAyQjc0QTYgLyogSURCRGF0YWJhc2UuY3BwICovOyB9OwogCQlDNTE5OEY0RTExOTJFQ0ZEMDAy
Qjc0QTYgLyogSURCRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEM1MTk4RjNBMTE5MkVDRkQwMDJCNzRBNiAvKiBJREJEYXRhYmFzZS5oICov
OyB9OwogCQlDNTE5OEY0RjExOTJFQ0ZEMDAyQjc0QTYgLyogSURCRGF0YWJhc2VFcnJvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUxOThGM0IxMTky
RUNGRDAwMkI3NEE2IC8qIElEQkRhdGFiYXNlRXJyb3IuaCAqLzsgfTsKIAkJQzUxOThGNTExMTky
RUNGRDAwMkI3NEE2IC8qIElEQkRhdGFiYXNlRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTE5OEYzRDExOTJFQ0ZEMDAyQjc0QTYgLyog
SURCRGF0YWJhc2VFeGNlcHRpb24uaCAqLzsgfTsKQEAgLTEwMjczLDYgKzEwMjc0LDggQEAKIAkJ
QzBERkM4NkYwREI2ODQxQTAwM0VBRTdDIC8qIEpTQ29uc29sZUN1c3RvbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NvbnNvbGVDdXN0b20uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDMTA1REE2MTBGM0FBNjhGMDAxREQ0NEYgLyogVGV4dEVu
Y29kaW5nRGV0ZWN0b3JJQ1UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVGV4dEVuY29kaW5nRGV0ZWN0b3JJQ1UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDMTA1REE2MzBGM0FBNkI4MDAxREQ0NEYgLyogVGV4dEVuY29kaW5nRGV0ZWN0b3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dEVuY29kaW5nRGV0ZWN0b3IuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzUwQUQyQTkxMUFDMTYzMTAwOENGMkZCIC8q
IElEQkRhdGFiYXNlSW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBJREJEYXRhYmFzZUltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNTBB
RDJBQTExQUMxNjMxMDA4Q0YyRkIgLyogSURCRGF0YWJhc2VJbXBsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IElEQkRhdGFiYXNlSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDNTBEMEU4MDBGRjQyNzI5MDBBQzI2NDQgLyogU3RvcmFnZU5hbWVzcGFjZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdlTmFtZXNwYWNl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzUwRDBFODEwRkY0MjcyOTAwQUMy
NjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3RvcmFnZU5hbWVzcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTEw
MkQ5MjBGRDlBQTJEMDBGQUZGMDQgLyogU3RvcmFnZVN5bmNNYW5hZ2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VTeW5jTWFuYWdlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTAyODQsNyArMTAyODcsNiBAQAogCQlDNTE2MEVFODEwMDQ1NDNB
MDBBN0NFRTIgLyogU3RvcmFnZUFyZWFJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFN0b3JhZ2VBcmVhSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUM1MTYwRUU5MTAwNDU0M0EwMEE3Q0VFMiAvKiBTdG9yYWdlQXJlYUltcGwuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZUFyZWFJbXBsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1MTk4RjM4MTE5MkVDRkQwMDJCNzRBNiAvKiBJREJDYWxs
YmFja3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCQ2FsbGJhY2tzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUM1MTk4RjM5MTE5MkVDRkQwMDJCNzRBNiAv
KiBJREJEYXRhYmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
REJEYXRhYmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1MTk4RjNBMTE5
MkVDRkQwMDJCNzRBNiAvKiBJREJEYXRhYmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJREJEYXRhYmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTE5
OEYzQjExOTJFQ0ZEMDAyQjc0QTYgLyogSURCRGF0YWJhc2VFcnJvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJREJEYXRhYmFzZUVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUM1MTk4RjNDMTE5MkVDRkQwMDJCNzRBNiAvKiBJREJEYXRhYmFzZUVycm9y
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJREJEYXRhYmFzZUVycm9yLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwOTk5LDggKzExMDAxLDkgQEAKIAkJCQlDNTZDOTE1
MDExOUQ4NENCMDBERTRDRDkgLyogSURCQW55LmggKi8sCiAJCQkJQzU2QzkxNTExMTlEODRDQjAw
REU0Q0Q5IC8qIElEQkFueS5pZGwgKi8sCiAJCQkJQzUxOThGMzgxMTkyRUNGRDAwMkI3NEE2IC8q
IElEQkNhbGxiYWNrcy5oICovLAotCQkJCUM1MTk4RjM5MTE5MkVDRkQwMDJCNzRBNiAvKiBJREJE
YXRhYmFzZS5jcHAgKi8sCiAJCQkJQzUxOThGM0ExMTkyRUNGRDAwMkI3NEE2IC8qIElEQkRhdGFi
YXNlLmggKi8sCisJCQkJQzUwQUQyQTkxMUFDMTYzMTAwOENGMkZCIC8qIElEQkRhdGFiYXNlSW1w
bC5jcHAgKi8sCisJCQkJQzUwQUQyQUExMUFDMTYzMTAwOENGMkZCIC8qIElEQkRhdGFiYXNlSW1w
bC5oICovLAogCQkJCUM1MTk4RjNCMTE5MkVDRkQwMDJCNzRBNiAvKiBJREJEYXRhYmFzZUVycm9y
LmggKi8sCiAJCQkJQzUxOThGM0MxMTkyRUNGRDAwMkI3NEE2IC8qIElEQkRhdGFiYXNlRXJyb3Iu
aWRsICovLAogCQkJCUM1MTk4RjNEMTE5MkVDRkQwMDJCNzRBNiAvKiBJREJEYXRhYmFzZUV4Y2Vw
dGlvbi5oICovLApAQCAtMTkzMzEsNiArMTkzMzQsNyBAQAogCQkJCUM1NDQyNzRCMTFBNTdFN0Ew
MDYzQTc0OSAvKiBET01TdHJpbmdMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTEzN0NGMzEx
QTU4Mzc4MDA0QURCOTkgLyogSlNET01TdHJpbmdMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2
MkMxMjE3RDExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQzUwQUQyQUMxMUFDMTYzMTAwOENGMkZCIC8qIElEQkRhdGFiYXNlSW1wbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CkBAIC0yMTU4Miw3ICsyMTU4Niw2IEBACiAJCQkJQjU4Q0VCNkExMTkxMzYw
NzAwMkE2NzkwIC8qIEpTRGF0YWJhc2VTeW5jLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI1OENF
QjZFMTE5MTM2MUMwMDJBNjc5MCAvKiBKU1NRTFRyYW5zYWN0aW9uU3luYy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwODNGNTI5OTExOTU3RkJFMDA2NTNFQkUgLyogU1ZHVGV4dExheW91dFV0aWxp
dGllcy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDNTE5OEY0RDExOTJFQ0ZEMDAyQjc0QTYgLyog
SURCRGF0YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzUxOThGNTMxMTkyRUNGRDAwMkI3
NEE2IC8qIElEQkRhdGFiYXNlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTE5OEY1
NjExOTJFQ0ZEMDAyQjc0QTYgLyogSURCUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlD
NTE5OEY1OTExOTJFQ0ZEMDAyQjc0QTYgLyogSW5kZXhlZERhdGFiYXNlLmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtMjE2MjEsNiArMjE2MjQsNyBAQAogCQkJCUM1MTM3Q0YyMTFBNTgzNzgwMDRBREI5
OSAvKiBKU0RPTVN0cmluZ0xpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU1NjEwRjExMUE3
MDRFQjAwQjgyRDI3IC8qIERPTVN0cmluZ0xpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjJD
MTIxN0MxMUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJQzUwQUQyQUIxMUFDMTYzMTAwOENGMkZCIC8qIElEQkRhdGFiYXNlSW1wbC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RPTVN0cmluZ0xpc3QuaCBi
L1dlYkNvcmUvZG9tL0RPTVN0cmluZ0xpc3QuaAppbmRleCBhM2Y5YjQwYjM4NDU3MWE4NWE0MDU1
NGFhMjAyMmU2ZmI2NDZhNGExLi4wNzhjNDY1NGJhMDNhNmNhODBlZjM2MWYyNDg1ZWNhZGVlNDhk
MjUxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9ET01TdHJpbmdMaXN0LmgKKysrIGIvV2ViQ29y
ZS9kb20vRE9NU3RyaW5nTGlzdC5oCkBAIC00Miw2ICs0Miw4IEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBET01TdHJpbmdMaXN0KCkpOwogICAgIH0KIAorICAgIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBzdHJpbmdzKCkgY29uc3QgeyByZXR1cm4gbV9zdHJpbmdzOyB9CisK
ICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3N0cmluZ3MuaXNFbXB0eSgpOyB9
CiAgICAgdm9pZCBjbGVhcigpIHsgbV9zdHJpbmdzLmNsZWFyKCk7IH0KICAgICB2b2lkIGFwcGVu
ZChjb25zdCBTdHJpbmcmIHN0cmluZykgeyBtX3N0cmluZ3MuYXBwZW5kKHN0cmluZyk7IH0KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZS5oIGIvV2ViQ29yZS9zdG9yYWdl
L0lEQkRhdGFiYXNlLmgKaW5kZXggMDMyNjJmNGVmODU3ZjViOTYxMTU5YmI1NGM5NGRiZmJiOTJk
OTQ1OS4uNWM4MzM4NGQyMTc4NWYxN2ViYWEwYTZiYzhjYjVjZmRmMjM5ZDEwNSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lE
QkRhdGFiYXNlLmgKQEAgLTI5LDEyICsyOSwxNiBAQAogI2lmbmRlZiBJREJEYXRhYmFzZV9oCiAj
ZGVmaW5lIElEQkRhdGFiYXNlX2gKIAorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKICNp
ZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFz
cyBET01TdHJpbmdMaXN0OworCiAvLyBUaGlzIGNsYXNzIGlzIHNoYXJlZCBieSBJREJEYXRhYmFz
ZVJlcXVlc3QgKGFzeW5jKSBhbmQgSURCRGF0YWJhc2VTeW5jIChzeW5jKS4KIC8vIFRoaXMgaXMg
aW1wbGVtZW50ZWQgYnkgSURCRGF0YWJhc2VJbXBsIGFuZCBvcHRpb25hbGx5IG90aGVycyAoaW4g
b3JkZXIgdG8gcHJveHkKIC8vIGNhbGxzIGFjcm9zcyBwcm9jZXNzIGJhcnJpZXJzKS4gQWxsIGNh
bGxzIHRvIHRoZXNlIGNsYXNzZXMgc2hvdWxkIGJlIG5vbi1ibG9ja2luZyBhbmQKQEAgLTQyLDcg
KzQ2LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIElEQkRhdGFiYXNlIDogcHVibGlj
IFRocmVhZFNhZmVTaGFyZWQ8SURCRGF0YWJhc2U+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5J
REJEYXRhYmFzZSgpIHsgfQotICAgIC8vIEZJWE1FOiBXcml0ZS4KKworICAgIHZpcnR1YWwgU3Ry
aW5nIG5hbWUoKSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgZGVzY3JpcHRpb24oKSA9IDA7Cisg
ICAgdmlydHVhbCBTdHJpbmcgdmVyc2lvbigpID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
RE9NU3RyaW5nTGlzdD4gb2JqZWN0U3RvcmVzKCkgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmNwcCBiL1dl
YkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUltcGwuY3BwCnNpbWlsYXJpdHkgaW5kZXggNzUlCmNv
cHkgZnJvbSBXZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2UuY3BwCmNvcHkgdG8gV2ViQ29yZS9z
dG9yYWdlL0lEQkRhdGFiYXNlSW1wbC5jcHAKaW5kZXggZjNmMzU0ZjFjMmU4NmJlZTQzMjg1NzQx
NmE5Nzg2MDgyOWQ5NDk0Yy4uOTRhNzYyNDhmYTM2YTA4ZDJjYjA2YTE4YTA1M2MxNjkyN2I5NjBh
ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmNwcAorKysgYi9XZWJD
b3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VJbXBsLmNwcApAQCAtMjUsMTQgKzI1LDM2IEBACiAgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KKwogI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIklEQkRhdGFiYXNlLmgiCisjaW5jbHVkZSAiSURCRGF0YWJhc2VJbXBsLmgiCisK
KyNpbmNsdWRlICJET01TdHJpbmdMaXN0LmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIK
KyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+
CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci0vLyBGSVhNRTogV3JpdGUuCitJREJEYXRhYmFzZUltcGw6OklEQkRhdGFiYXNlSW1wbChjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYg
dmVyc2lvbikKKyAgICA6IG1fbmFtZShuYW1lKQorICAgICwgbV9kZXNjcmlwdGlvbihkZXNjcmlw
dGlvbikKKyAgICAsIG1fdmVyc2lvbih2ZXJzaW9uKQoreworfQorCitJREJEYXRhYmFzZUltcGw6
On5JREJEYXRhYmFzZUltcGwoKQoreworfQorCitQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IElE
QkRhdGFiYXNlSW1wbDo6b2JqZWN0U3RvcmVzKCkKK3sKKyAgICAvLyBGSVhNRTogVGhpcyBzaG91
bGQgcmV0dXJuIHRoZSBhY3R1YWwgbGlzdC4KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICByZXR1cm4gRE9NU3RyaW5nTGlzdDo6Y3JlYXRlKCk7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmNwcCBiL1dl
YkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUltcGwuaApzaW1pbGFyaXR5IGluZGV4IDY3JQpyZW5h
bWUgZnJvbSBXZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2UuY3BwCnJlbmFtZSB0byBXZWJDb3Jl
L3N0b3JhZ2UvSURCRGF0YWJhc2VJbXBsLmgKaW5kZXggZjNmMzU0ZjFjMmU4NmJlZTQzMjg1NzQx
NmE5Nzg2MDgyOWQ5NDk0Yy4uOGRiNzU1ZTllZTI5ZmY3MjFmNGYxNmFjOGM5OTAyOWE5OGYzNjk3
NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmNwcAorKysgYi9XZWJD
b3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VJbXBsLmgKQEAgLTI1LDE2ICsyNSw0MiBAQAogICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCi0jaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
Zm5kZWYgSURCRGF0YWJhc2VJbXBsX2gKKyNkZWZpbmUgSURCRGF0YWJhc2VJbXBsX2gKKwogI2lu
Y2x1ZGUgIklEQkRhdGFiYXNlLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogI2lm
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIEZJ
WE1FOiBXcml0ZS4KK2NsYXNzIElEQkRhdGFiYXNlSW1wbCA6IHB1YmxpYyBJREJEYXRhYmFzZSB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCRGF0YWJhc2U+IGNyZWF0ZShjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYg
dmVyc2lvbikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCRGF0YWJhc2VJ
bXBsKG5hbWUsIGRlc2NyaXB0aW9uLCB2ZXJzaW9uKSk7CisgICAgfQorICAgIHZpcnR1YWwgfklE
QkRhdGFiYXNlSW1wbCgpOworCisgICAgLy8gSW1wbGVtZW50cyBJREJEYXRhYmFzZQorICAgIHZp
cnR1YWwgU3RyaW5nIG5hbWUoKSB7IHJldHVybiBtX25hbWU7IH0KKyAgICB2aXJ0dWFsIFN0cmlu
ZyBkZXNjcmlwdGlvbigpIHsgcmV0dXJuIG1fZGVzY3JpcHRpb247IH0KKyAgICB2aXJ0dWFsIFN0
cmluZyB2ZXJzaW9uKCkgeyByZXR1cm4gbV92ZXJzaW9uOyB9CisgICAgdmlydHVhbCBQYXNzUmVm
UHRyPERPTVN0cmluZ0xpc3Q+IG9iamVjdFN0b3JlcygpOworCitwcml2YXRlOgorICAgIElEQkRh
dGFiYXNlSW1wbChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24s
IGNvbnN0IFN0cmluZyYgdmVyc2lvbik7CisKKyAgICBTdHJpbmcgbV9uYW1lOworICAgIFN0cmlu
ZyBtX2Rlc2NyaXB0aW9uOworICAgIFN0cmluZyBtX3ZlcnNpb247Cit9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyNlbmRp
ZgorCisjZW5kaWYgLy8gSURCRGF0YWJhc2VJbXBsX2gKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9z
dG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNl
UmVxdWVzdC5oCmluZGV4IDE5OWViNzlhNGUxM2I0OGU2NjVmNGFiYmI0MzhjZmExNDBhZDZiNGEu
LmNjYjgyODZlMDY5MDY3MDMxODBmMDdiZmI5YmE1NzYzZTRjMTcxNTUgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2Uv
SURCRGF0YWJhc2VSZXF1ZXN0LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZm5kZWYgSURCRGF0YWJh
c2VSZXF1ZXN0X2gKICNkZWZpbmUgSURCRGF0YWJhc2VSZXF1ZXN0X2gKIAorI2luY2x1ZGUgIkRP
TVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KQEAgLTQ3LDEzICs0OCwx
MSBAQCBwdWJsaWM6CiAgICAgfQogICAgIH5JREJEYXRhYmFzZVJlcXVlc3QoKTsKIAotICAgIC8v
IEZJWE1FOiBXcml0ZS4KLSAgICB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQpCi0gICAgewot
ICAgICAgICBVTlVTRURfUEFSQU0obmFtZSk7Ci0gICAgICAgIFVOVVNFRF9QQVJBTShrZXlQYXRo
KTsKLSAgICAgICAgVU5VU0VEX1BBUkFNKGF1dG9JbmNyZW1lbnQpOwotICAgIH0KKyAgICAvLyBJ
bXBsZW1lbnQgdGhlIElETAorICAgIFN0cmluZyBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9pZGJE
YXRhYmFzZS0+bmFtZSgpOyB9CisgICAgU3RyaW5nIGRlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9pZGJEYXRhYmFzZS0+ZGVzY3JpcHRpb24oKTsgfQorICAgIFN0cmluZyB2ZXJzaW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9pZGJEYXRhYmFzZS0+dmVyc2lvbigpOyB9CisgICAgUGFzc1JlZlB0
cjxET01TdHJpbmdMaXN0PiBvYmplY3RTdG9yZXMoKSBjb25zdCB7IHJldHVybiBtX2lkYkRhdGFi
YXNlLT5vYmplY3RTdG9yZXMoKTsgfQogCiBwcml2YXRlOgogICAgIElEQkRhdGFiYXNlUmVxdWVz
dChQYXNzUmVmUHRyPElEQkRhdGFiYXNlPik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2Uv
SURCRGF0YWJhc2VSZXF1ZXN0LmlkbCBiL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVl
c3QuaWRsCmluZGV4IGJlMDMxZDNlNzYwNjFkYWRjMjNiZDYzMzVjZWVhYjkzMTljY2RhZmIuLjIx
MWFjMzM4NWE4YTEyNWE1MzU3Y2YxYzJjZDk3NDllODQzMGM5YTggMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaWRsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9J
REJEYXRhYmFzZVJlcXVlc3QuaWRsCkBAIC0zMCwxMCArMzAsMTIgQEAgbW9kdWxlIHN0b3JhZ2Ug
ewogICAgIGludGVyZmFjZSBbCiAgICAgICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UK
ICAgICBdIElEQkRhdGFiYXNlUmVxdWVzdCB7Ci0gICAgICAgIC8vIEZJWE1FOiBCb29sZWFuIHNo
b3VsZCBiZSBvcHRpb25hbCBhbmQga2V5UGF0aCBzaG91bGQgdGFrZSBudWxscy4KLSAgICAgICAg
dm9pZCBjcmVhdGVPYmplY3RTdG9yZShpbiBET01TdHJpbmcgbmFtZSwgaW4gRE9NU3RyaW5nIGtl
eVBhdGgsIGluIGJvb2xlYW4gYXV0b0luY3JlbWVudCk7CisgICAgICAgIC8vIEZJWE1FOiBDb21w
bGV0ZSB0aGlzIGZpbGUuCiAKLSAgICAgICAgLy8gRklYTUU6IEZpbmlzaC4KKyAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIGRlc2NyaXB0aW9uOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIHZlcnNpb247CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmdMaXN0
IG9iamVjdFN0b3JlczsKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2Uv
SURCU3VjY2Vzc0V2ZW50LmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJTdWNjZXNzRXZlbnQuY3Bw
CmluZGV4IDk2NjBlZWY4MTFjNzE3ZTRiYjc4Mzc4NjZhM2ExOTQ4ZTEwOWRjODIuLjJkY2Q5NjRi
YWIwZDA0OGMxOGYyNDQ4ZGI5NGI2ZTRkNWU2MGY5NzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3Rv
cmFnZS9JREJTdWNjZXNzRXZlbnQuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJTdWNjZXNz
RXZlbnQuY3BwCkBAIC00Miw3ICs0Miw3IEBAIFBhc3NSZWZQdHI8SURCU3VjY2Vzc0V2ZW50PiBJ
REJTdWNjZXNzRXZlbnQ6OmNyZWF0ZShQYXNzUmVmUHRyPElEQkFueT4gc291cmNlLCBQCiB9CiAK
IElEQlN1Y2Nlc3NFdmVudDo6SURCU3VjY2Vzc0V2ZW50KFBhc3NSZWZQdHI8SURCQW55PiBzb3Vy
Y2UsIFBhc3NSZWZQdHI8SURCQW55PiByZXN1bHQpCi0gICAgOiBJREJFdmVudChldmVudE5hbWVz
KCkuZXJyb3JFdmVudCwgc291cmNlKQorICAgIDogSURCRXZlbnQoZXZlbnROYW1lcygpLnN1Y2Nl
c3NFdmVudCwgc291cmNlKQogICAgICwgbV9yZXN1bHQocmVzdWx0KQogewogfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZS5oIGIvV2ViQ29yZS9zdG9yYWdlL0lu
ZGV4ZWREYXRhYmFzZS5oCmluZGV4IDZiYzliNmU5MmIzZDYwZTY1YTFhNWZlMzRkYjhjYzBiZWRl
ZTBjMzMuLmQ0N2RlNzIxZTljMmQwOTQwY2FhOWI1MGFiNzk1ODM0NTJiNjM0ZGYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2UuaAorKysgYi9XZWJDb3JlL3N0b3Jh
Z2UvSW5kZXhlZERhdGFiYXNlLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEluZGV4ZWREYXRhYmFzZT4gY3JlYXRlKCk7CiAgICAgdmlydHVhbCB+SW5k
ZXhlZERhdGFiYXNlKCkgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIEZyYW1l
KiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIEZyYW1lKiwgRXhjZXB0aW9uQ29kZSYp
ID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
c3RvcmFnZS9JbmRleGVkRGF0YWJhc2VJbXBsLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVk
RGF0YWJhc2VJbXBsLmNwcAppbmRleCBhZTRmZDFlZWIwM2Q4ZWQwYWQ4NDVmYjMzMmMxMWEwMzFk
MDExM2YyLi4yNTUwMmRlMWI1MzkyY2ZlMGFmYmFhMjg2MWM3YzE0YzFiNzI2N2ZmIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlSW1wbC5jcHAKKysrIGIvV2ViQ29y
ZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZUltcGwuY3BwCkBAIC0yNSwxMSArMjUsMTEgQEAKICAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLworCiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiSW5kZXhlZERhdGFiYXNlSW1wbC5oIgogCi0jaW5jbHVkZSAiSURCRGF0YWJh
c2UuaCIKLSNpbmNsdWRlICJJREJEYXRhYmFzZUVycm9yLmgiCisjaW5jbHVkZSAiSURCRGF0YWJh
c2VJbXBsLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlIDx3dGYvVGhy
ZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CkBAIC01MSwxMyArNTEsMTgg
QEAgSW5kZXhlZERhdGFiYXNlSW1wbDo6fkluZGV4ZWREYXRhYmFzZUltcGwoKQogewogfQogCi12
b2lkIEluZGV4ZWREYXRhYmFzZUltcGw6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBT
dHJpbmcmIGRlc2NyaXB0aW9uLCBib29sIG1vZGlmeURhdGFiYXNlLCBQYXNzUmVmUHRyPElEQkNh
bGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgRnJhbWUqLCBF
eGNlcHRpb25Db2RlJikKK3ZvaWQgSW5kZXhlZERhdGFiYXNlSW1wbDo6b3Blbihjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBGcmFtZSosIEV4Y2Vw
dGlvbkNvZGUmKQogewotICAgIC8vIEZJWE1FOiBXcml0ZSBmb3IgcmVhbHouCi0gICAgVU5VU0VE
X1BBUkFNKG5hbWUpOwotICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7Ci0gICAgVU5VU0VE
X1BBUkFNKG1vZGlmeURhdGFiYXNlKTsKLSAgICBjYWxsYmFja3MtPm9uRXJyb3IoSURCRGF0YWJh
c2VFcnJvcjo6Y3JlYXRlKDAsICJOb3QgaW1wbGVtZW50ZWQiKSk7CisgICAgUmVmUHRyPElEQkRh
dGFiYXNlPiBkYXRhYmFzZTsKKyAgICBJREJEYXRhYmFzZU1hcDo6aXRlcmF0b3IgaXQgPSBtX2Rh
dGFiYXNlTWFwLmZpbmQobmFtZSk7CisgICAgaWYgKGl0ID09IG1fZGF0YWJhc2VNYXAuZW5kKCkp
IHsKKyAgICAgICAgLy8gRklYTUU6IFdoYXQgc2hvdWxkIHRoZSB2ZXJzaW9uIGJlPyAgVGhlIHNw
ZWMgZG9lc24ndCBkZWZpbmUgaXQgeWV0LgorICAgICAgICBkYXRhYmFzZSA9IElEQkRhdGFiYXNl
SW1wbDo6Y3JlYXRlKG5hbWUsIGRlc2NyaXB0aW9uLCAiIik7CisgICAgICAgIG1fZGF0YWJhc2VN
YXAuc2V0KG5hbWUsIGRhdGFiYXNlKTsKKyAgICB9IGVsc2UKKyAgICAgICAgZGF0YWJhc2UgPSBp
dC0+c2Vjb25kOworCisgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoZGF0YWJhc2UucmVsZWFzZSgp
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9y
YWdlL0luZGV4ZWREYXRhYmFzZUltcGwuaCBiL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJh
c2VJbXBsLmgKaW5kZXggOGQ3MzY5NDZhNjNlZmMwNjg1Zjk5MGQ5YTY5ODhmNDJkNWFiN2M4MC4u
ZmE5NTY3NGNlMGYzYTIwZTAxNzlmMTQyZTJmYWE5MDNkMjFhMDA3OSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZUltcGwuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2Uv
SW5kZXhlZERhdGFiYXNlSW1wbC5oCkBAIC0yOSw2ICsyOSw4IEBACiAjZGVmaW5lIEluZGV4ZWRE
YXRhYmFzZUltcGxfaAogCiAjaW5jbHVkZSAiSW5kZXhlZERhdGFiYXNlLmgiCisjaW5jbHVkZSAi
U3RyaW5nSGFzaC5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKICNpZiBFTkFCTEUoSU5E
RVhFRF9EQVRBQkFTRSkKIApAQCAtMzksMTEgKzQxLDE0IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxJbmRleGVkRGF0YWJhc2VJbXBsPiBjcmVhdGUoKTsKICAgICB2aXJ0dWFsIH5J
bmRleGVkRGF0YWJhc2VJbXBsKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2Us
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIEZy
YW1lKiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgRnJhbWUqLCBFeGNlcHRpb25Db2RlJik7
CiAKIHByaXZhdGU6CiAgICAgSW5kZXhlZERhdGFiYXNlSW1wbCgpOwogCisgICAgdHlwZWRlZiBI
YXNoTWFwPFN0cmluZywgUmVmUHRyPElEQkRhdGFiYXNlPiA+IElEQkRhdGFiYXNlTWFwOworICAg
IElEQkRhdGFiYXNlTWFwIG1fZGF0YWJhc2VNYXA7CisKICAgICAvLyBXZSBvbmx5IGNyZWF0ZSBv
bmUgaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcyBhdCBhIHRpbWUuCiAgICAgc3RhdGljIEluZGV4ZWRE
YXRhYmFzZUltcGwqIGluZGV4ZWREYXRhYmFzZUltcGw7CiB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0lu
ZGV4ZWREYXRhYmFzZVJlcXVlc3QuY3BwCmluZGV4IGI1NDliZDY4Zjg4Y2RkZDg2YTRmZGJmZWUx
ODM0OWU3YmU4YjQzOTcuLjE5NmZmZjczZDk5MGMwODY5NGE0ZjY3MDlhY2I5NjZjOTBjNTRjYTUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmNwcAor
KysgYi9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5jcHAKQEAgLTUyLDEw
ICs1MiwxMCBAQCBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0Ojp+SW5kZXhlZERhdGFiYXNlUmVxdWVz
dCgpCiB7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSW5kZXhlZERhdGFiYXNlUmVxdWVz
dDo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGJv
b2wgbW9kaWZ5RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmIGV4Y2VwdGlvbikKK1Bhc3NSZWZQdHI8
SURCUmVxdWVzdD4gSW5kZXhlZERhdGFiYXNlUmVxdWVzdDo6b3Blbihjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIEV4Y2VwdGlvbkNvZGUmIGV4Y2VwdGlvbikK
IHsKICAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZSht
X2ZyYW1lLT5kb2N1bWVudCgpLCBtX3RoaXMpOwotICAgIG1faW5kZXhlZERhdGFiYXNlLT5vcGVu
KG5hbWUsIGRlc2NyaXB0aW9uLCBtb2RpZnlEYXRhYmFzZSwgcmVxdWVzdCwgbV9mcmFtZS0+ZG9j
dW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgbV9mcmFtZSwgZXhjZXB0aW9uKTsKKyAgICBtX2lu
ZGV4ZWREYXRhYmFzZS0+b3BlbihuYW1lLCBkZXNjcmlwdGlvbiwgcmVxdWVzdCwgbV9mcmFtZS0+
ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgbV9mcmFtZSwgZXhjZXB0aW9uKTsKICAgICBy
ZXR1cm4gcmVxdWVzdDsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWRE
YXRhYmFzZVJlcXVlc3QuaCBiL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0
LmgKaW5kZXggMGI1OTc5MDI4ZGJmYTkzYzgzMjAzNWI4ODY0ZDA0NWZjMzYyYWU4NS4uM2Y4OTQ2
MDdjZjM0YzI3MjU4MGVhMjg5ZGZkMmZkNzc4ZjUxOTkzNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9z
dG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSW5k
ZXhlZERhdGFiYXNlUmVxdWVzdC5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICB9CiAg
ICAgfkluZGV4ZWREYXRhYmFzZVJlcXVlc3QoKTsKIAotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGJv
b2wgbW9kaWZ5RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBQYXNzUmVmUHRyPElEQlJl
cXVlc3Q+IG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9u
LCBFeGNlcHRpb25Db2RlJik7CiAKICAgICB2b2lkIGRpc2Nvbm5lY3RGcmFtZSgpIHsgbV9mcmFt
ZSA9IDA7IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJl
cXVlc3QuaWRsIGIvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuaWRsCmlu
ZGV4IGU0MjNlYjAxZDIyOWUwOWQ2NmRhOGM5YzMyMTg2ZTBiOTc3YmZmOTkuLjA2MjlhMzA4M2Nj
N2U0MDAwZjM1YjhhOTQ2OGM3MDk0ZmFmZWQyYmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFn
ZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmlkbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhl
ZERhdGFiYXNlUmVxdWVzdC5pZGwKQEAgLTMwLDcgKzMwLDcgQEAgbW9kdWxlIHN0b3JhZ2Ugewog
ICAgIGludGVyZmFjZSBbCiAgICAgICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UKICAg
ICBdIEluZGV4ZWREYXRhYmFzZVJlcXVlc3QgewotICAgICAgICBJREJSZXF1ZXN0IG9wZW4oaW4g
RE9NU3RyaW5nIG5hbWUsIGluIERPTVN0cmluZyBkZXNjcmlwdGlvbiwgaW4gYm9vbGVhbiBtb2Rp
ZnlEYXRhYmFzZSkKKyAgICAgICAgSURCUmVxdWVzdCBvcGVuKGluIERPTVN0cmluZyBuYW1lLCBp
biBET01TdHJpbmcgZGVzY3JpcHRpb24pCiAgICAgICAgICAgICByYWlzZXMoSURCRGF0YWJhc2VF
eGNlcHRpb24pOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGEwNzZmZTFmNGNhZjA5MGY0NzQy
YzRlMDk2ZGUxYmQ5ODUzZGJhOGEuLmExN2IyNDE5ODEyNjQzOTQ3MDM1MjFmZjE4MjhjN2I0NTQ1
M2EyZjUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEwLTA1LTI0ICBKZXJlbXkg
T3Jsb3cgIDxqb3Jsb3dAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBJREJEYXRhYmFzZSdzIGF0dHJpYnV0ZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NjAyCisKKyAgICAg
ICAgUGx1bWJpbmcgdG8gaG9vayB1cCB0aGUgc3luY2hyb25vdXMgYXR0cmlidXRlIHJlcXVlc3Rz
CisgICAgICAgIG9uIElEQkRhdGFiYXNlLgorCisgICAgICAgICogcHVibGljL1dlYklEQkRhdGFi
YXNlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRhdGFiYXNlOjpuYW1lKToKKyAgICAgICAg
KFdlYktpdDo6V2ViSURCRGF0YWJhc2U6OmRlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSURCRGF0YWJhc2U6OnZlcnNpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFz
ZTo6b2JqZWN0U3RvcmVzKToKKyAgICAgICAgKiBzcmMvSURCRGF0YWJhc2VQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZVByb3h5OjpuYW1lKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQkRhdGFiYXNlUHJveHk6OmRlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QkRhdGFiYXNlUHJveHk6OnZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VQ
cm94eTo6b2JqZWN0U3RvcmVzKToKKyAgICAgICAgKiBzcmMvSURCRGF0YWJhc2VQcm94eS5oOgor
ICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJREJEYXRhYmFzZUltcGw6OldlYklEQkRhdGFiYXNlSW1wbCk6CisgICAgICAgIChXZWJLaXQ6
OldlYklEQkRhdGFiYXNlSW1wbDo6bmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRhdGFi
YXNlSW1wbDo6ZGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUlt
cGw6OnZlcnNpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUltcGw6Om9iamVj
dFN0b3Jlcyk6CisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oOgorCiAyMDEwLTA1
LTI0ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViSURCRGF0YWJhc2UuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJh
c2UuaAppbmRleCA0MDNiNGU4YjBjZDc1NjkyMWY3OTliZWExMzRhY2MyYjIwYzRmZDNiLi5lZmVl
Zjg0ZjAwMzg0ZDI5NGE2ODA4YThiZTAyNzBlMjhlYzFmMzI4IDEwMDY0NAotLS0gYS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJJREJEYXRhYmFzZS5oCkBAIC0zMCw2ICszMCw4IEBACiAjZGVmaW5lIFdlYklEQkRh
dGFiYXNlX2gKIAogI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYlN0cmluZy5o
IgorI2luY2x1ZGUgIldlYlZlY3Rvci5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtMzgs
NyArNDAsMTEgQEAgY2xhc3MgV2ViSURCRGF0YWJhc2UgewogcHVibGljOgogICAgIHZpcnR1YWwg
fldlYklEQkRhdGFiYXNlKCkgeyB9CiAKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgIC8v
IEZJWE1FOiBUaGVzZSBzaG91bGQgYmUgcHVyZWx5IHZpcnR1YWwuCisgICAgdmlydHVhbCBXZWJT
dHJpbmcgbmFtZSgpIHsgcmV0dXJuIFdlYlN0cmluZygpOyB9CisgICAgdmlydHVhbCBXZWJTdHJp
bmcgZGVzY3JpcHRpb24oKSB7IHJldHVybiBXZWJTdHJpbmcoKTsgfQorICAgIHZpcnR1YWwgV2Vi
U3RyaW5nIHZlcnNpb24oKSB7IHJldHVybiBXZWJTdHJpbmcoKTsgfQorICAgIHZpcnR1YWwgV2Vi
VmVjdG9yPFdlYlN0cmluZz4gb2JqZWN0U3RvcmVzKCkgeyByZXR1cm4gV2ViVmVjdG9yPFdlYlN0
cmluZz4oKTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkluZGV4ZWREYXRhYmFzZS5oIGIvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJJbmRleGVkRGF0YWJhc2UuaAppbmRleCA2MWI3N2EwNTFhNTZiYmRmMjVkYTU0
ZDdlYWZmMmEwZTBiOTYxNDNmLi45ZWZkM2NjMDYxNmIzMzQ2ODlhZGE1OTIzODhhNGQ5MDlkOWZh
YjY1IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkluZGV4ZWREYXRhYmFz
ZS5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW5kZXhlZERhdGFiYXNlLmgKQEAg
LTUxLDE2ICs1MSwxNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViSW5kZXhlZERhdGFiYXNl
KCkgeyB9CiAKICAgICAvLyBUaGUgV2ViS2l0IGltcGxlbWVudGF0aW9uIG9mIG9wZW4gaWdub3Jl
cyB0aGUgV2ViRnJhbWUqIHBhcmFtZXRlci4KLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBX
ZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5
RGF0YWJhc2UsCisgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBj
b25zdCBXZWJTdHJpbmcmIGRlc2NyaXB0aW9uLAogICAgICAgICAgICAgICAgICAgICAgIFdlYklE
QkNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBX
ZWJGcmFtZSogd2ViRnJhbWUsIGludCYgZXhjZXB0aW9uQ29kZSkKICAgICB7Ci0gICAgICAgIG9w
ZW4obmFtZSwgZGVzY3JpcHRpb24sIG1vZGlmeURhdGFiYXNlLCBjYWxsYmFja3MsIG9yaWdpbi50
b1N0cmluZygpLCB3ZWJGcmFtZSwgZXhjZXB0aW9uQ29kZSk7CisgICAgICAgIG9wZW4obmFtZSwg
ZGVzY3JpcHRpb24sIGZhbHNlLCBjYWxsYmFja3MsIG9yaWdpbi50b1N0cmluZygpLCB3ZWJGcmFt
ZSwgZXhjZXB0aW9uQ29kZSk7CiAgICAgfQogICAgIC8vIEZJWE1FOiBEZWxldGUgc29vbi4gIENv
bXBhdGFiaWxpdHkgaGFjay4KICAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBXZWJTdHJpbmcm
IG5hbWUsIGNvbnN0IFdlYlN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgbW9kaWZ5RGF0YWJhc2Us
CiAgICAgICAgICAgICAgICAgICAgICAgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0
IFdlYlN0cmluZyYgb3JpZ2luLCBXZWJGcmFtZSogd2ViRnJhbWUsIGludCYgZXhjZXB0aW9uQ29k
ZSkKICAgICB7Ci0gICAgICAgIG9wZW4obmFtZSwgZGVzY3JpcHRpb24sIG1vZGlmeURhdGFiYXNl
LCBjYWxsYmFja3MsIFdlYlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKG9yaWdpbiks
IHdlYkZyYW1lLCBleGNlcHRpb25Db2RlKTsKKyAgICAgICAgb3BlbihuYW1lLCBkZXNjcmlwdGlv
biwgY2FsbGJhY2tzLCBXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvcmlnaW4p
LCB3ZWJGcmFtZSwgZXhjZXB0aW9uQ29kZSk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZVByb3h5LmNwcCBiL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCRGF0YWJhc2VQcm94eS5jcHAKaW5kZXggZDEyZWM3MDJlNDk5ODhiZjE2NWUyNTIxODk0
NDUxOWY5NTcyZDE4OS4uNmM4MjM1YTBkY2YzNTdmNTkyNWQ1ODhmZjZkNWI2OGMwZTUzMmY0MCAx
MDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZVByb3h5LmNwcAorKysg
Yi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlUHJveHkuY3BwCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VQcm94eS5oIgog
CisjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXJyb3Iu
aCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIldlYklEQkRhdGFiYXNl
RXJyb3IuaCIKQEAgLTUxLDYgKzUyLDMwIEBAIElEQkRhdGFiYXNlUHJveHk6On5JREJEYXRhYmFz
ZVByb3h5KCkKIHsKIH0KIAorU3RyaW5nIElEQkRhdGFiYXNlUHJveHk6Om5hbWUoKQoreworICAg
IHJldHVybiBtX3dlYklEQkRhdGFiYXNlLT5uYW1lKCk7Cit9CisKK1N0cmluZyBJREJEYXRhYmFz
ZVByb3h5OjpkZXNjcmlwdGlvbigpCit7CisgICAgcmV0dXJuIG1fd2ViSURCRGF0YWJhc2UtPmRl
c2NyaXB0aW9uKCk7Cit9CisKK1N0cmluZyBJREJEYXRhYmFzZVByb3h5Ojp2ZXJzaW9uKCkKK3sK
KyAgICByZXR1cm4gbV93ZWJJREJEYXRhYmFzZS0+dmVyc2lvbigpOworfQorCitQYXNzUmVmUHRy
PERPTVN0cmluZ0xpc3Q+IElEQkRhdGFiYXNlUHJveHk6Om9iamVjdFN0b3JlcygpCit7CisgICAg
V2ViS2l0OjpXZWJWZWN0b3I8V2ViS2l0OjpXZWJTdHJpbmc+IHdlYlN0cmluZ3MgPSBtX3dlYklE
QkRhdGFiYXNlLT5vYmplY3RTdG9yZXMoKTsKKyAgICBSZWZQdHI8RE9NU3RyaW5nTGlzdD4gc3Ry
aW5ncyA9IERPTVN0cmluZ0xpc3Q6OmNyZWF0ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgd2ViU3RyaW5ncy5zaXplKCk7ICsraSkKKyAgICAgICAgc3RyaW5ncy0+YXBwZW5kKHdlYlN0
cmluZ3NbaV0pOworICAgIHJldHVybiBzdHJpbmdzLnJlbGVhc2UoKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYg
LS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlUHJveHkuaCBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvSURCRGF0YWJhc2VQcm94eS5oCmluZGV4IGFjOTZhMTVlOTQ5YTdkMWViNjk2
YWJmNjBiZWI5ZTMzOWNiNmRmMTcuLmQxYTUxNDZjOTEzYjllMjVhNjJiNzYxMTMwNGE1ZDMwOWY2
ZjUyZWQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VQcm94eS5o
CisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VQcm94eS5oCkBAIC00NSw2ICs0
NSwxMSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCRGF0YWJhc2U+IGNyZWF0
ZShQYXNzT3duUHRyPFdlYktpdDo6V2ViSURCRGF0YWJhc2U+KTsKICAgICB2aXJ0dWFsIH5JREJE
YXRhYmFzZVByb3h5KCk7CiAKKyAgICB2aXJ0dWFsIFN0cmluZyBuYW1lKCk7CisgICAgdmlydHVh
bCBTdHJpbmcgZGVzY3JpcHRpb24oKTsKKyAgICB2aXJ0dWFsIFN0cmluZyB2ZXJzaW9uKCk7Cisg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IG9iamVjdFN0b3JlcygpOworCiAg
ICAgLy8gRklYTUU6IEFkZCBvdGhlciBtZXRob2RzLgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9JbmRleGVkRGF0YWJhc2VQcm94eS5jcHAgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL0luZGV4ZWREYXRhYmFzZVByb3h5LmNwcAppbmRleCBhZWQ3YzEzNWI3NTc3MDYy
Y2RhNmJhYmYxZTNkYmI2MjUzMWJhYWFmLi4yNTcyODc3ODQ1NWE2YjhmYmIwNDc0NzlmMjYzZmJh
MGZjMWU1MDJjIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0luZGV4ZWREYXRhYmFz
ZVByb3h5LmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0luZGV4ZWREYXRhYmFzZVByb3h5
LmNwcApAQCAtNTcsMTIgKzU3LDEyIEBAIEluZGV4ZWREYXRhYmFzZVByb3h5Ojp+SW5kZXhlZERh
dGFiYXNlUHJveHkoKQogewogfQogCi12b2lkIEluZGV4ZWREYXRhYmFzZVByb3h5OjpvcGVuKGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlE
YXRhYmFzZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxT
ZWN1cml0eU9yaWdpbj4gb3JpZ2luLCBGcmFtZSogZnJhbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
dm9pZCBJbmRleGVkRGF0YWJhc2VQcm94eTo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IFN0cmluZyYgZGVzY3JpcHRpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3Ms
IFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbiwgRnJhbWUqIGZyYW1lLCBFeGNlcHRp
b25Db2RlJiBlYykKIHsKICAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+ZG9jdW1lbnQoKSkKICAg
ICAgICAgcmV0dXJuOwogICAgIFdlYktpdDo6V2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViS2l0OjpX
ZWJGcmFtZUltcGw6OmZyb21GcmFtZShmcmFtZSk7Ci0gICAgbV93ZWJJbmRleGVkRGF0YWJhc2Ut
Pm9wZW4obmFtZSwgZGVzY3JpcHRpb24sIG1vZGlmeURhdGFiYXNlLCBuZXcgV2ViSURCQ2FsbGJh
Y2tzSW1wbChjYWxsYmFja3MpLCBvcmlnaW4sIHdlYkZyYW1lLCBlYyk7CisgICAgbV93ZWJJbmRl
eGVkRGF0YWJhc2UtPm9wZW4obmFtZSwgZGVzY3JpcHRpb24sIG5ldyBXZWJJREJDYWxsYmFja3NJ
bXBsKGNhbGxiYWNrcyksIG9yaWdpbiwgd2ViRnJhbWUsIGVjKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JbmRleGVkRGF0YWJh
c2VQcm94eS5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JbmRleGVkRGF0YWJhc2VQcm94eS5oCmlu
ZGV4IGUzNzJlOWFlMzhhNTQxOTQyODY4ZjZmMTJiZmZhZTNkNzFlMTgxMTAuLjIwNjA5OWNhYTFk
NTY3NjZjNWU4ODU1MmMxM2I0MzEzOTc3MWIwNDcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvSW5kZXhlZERhdGFiYXNlUHJveHkuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lu
ZGV4ZWREYXRhYmFzZVByb3h5LmgKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEluZGV4ZWREYXRhYmFzZT4gY3JlYXRlKCk7CiAgICAgdmlydHVhbCB+SW5k
ZXhlZERhdGFiYXNlUHJveHkoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwg
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgRnJh
bWUqLCBFeGNlcHRpb25Db2RlJik7CisgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBGcmFtZSosIEV4Y2VwdGlvbkNvZGUmKTsK
IAogcHJpdmF0ZToKICAgICBJbmRleGVkRGF0YWJhc2VQcm94eSgpOwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCmluZGV4IGUzM2VkYzJiMGRlMmM2YmI3NjE0ZWY1
OGQ0NzMwZGFiMzM4ZWFjNzYuLmQ5YjlhYjA0NTVlZGI1YmE2NmQzOWE5MjRlMTkxYTk0MDg0N2Rh
OGUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNw
cAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKQEAgLTI5
LDYgKzI5LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFz
ZUltcGwuaCIKIAorI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJJREJEYXRh
YmFzZS5oIgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCkBAIC0zOCw2ICszOSw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYklEQkRh
dGFiYXNlSW1wbDo6V2ViSURCRGF0YWJhc2VJbXBsKFBhc3NSZWZQdHI8SURCRGF0YWJhc2U+IGlk
YkRhdGFiYXNlKQorICAgIDogbV9pZGJEYXRhYmFzZShpZGJEYXRhYmFzZSkKIHsKIH0KIApAQCAt
NDUsNiArNDcsMjYgQEAgV2ViSURCRGF0YWJhc2VJbXBsOjp+V2ViSURCRGF0YWJhc2VJbXBsKCkK
IHsKIH0KIAorV2ViU3RyaW5nIFdlYklEQkRhdGFiYXNlSW1wbDo6bmFtZSgpCit7CisgICAgcmV0
dXJuIG1faWRiRGF0YWJhc2UtPm5hbWUoKTsKK30KKworV2ViU3RyaW5nIFdlYklEQkRhdGFiYXNl
SW1wbDo6ZGVzY3JpcHRpb24oKQoreworICAgIHJldHVybiBtX2lkYkRhdGFiYXNlLT5kZXNjcmlw
dGlvbigpOworfQorCitXZWJTdHJpbmcgV2ViSURCRGF0YWJhc2VJbXBsOjp2ZXJzaW9uKCkKK3sK
KyAgICByZXR1cm4gbV9pZGJEYXRhYmFzZS0+dmVyc2lvbigpOworfQorCitXZWJWZWN0b3I8V2Vi
U3RyaW5nPiBXZWJJREJEYXRhYmFzZUltcGw6Om9iamVjdFN0b3JlcygpCit7CisgICAgcmV0dXJu
IG1faWRiRGF0YWJhc2UtPm9iamVjdFN0b3JlcygpLT5zdHJpbmdzKCk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaCBiL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgKaW5kZXggNzU4Zjg0YTcxNmFiODZl
MjhhZGZhYmMxYjZmNDE5ODgxYzJlZmIyYS4uOTk2NDMwNTAyNDMzMDdlNjA4YjQ3M2RmMDNhZDI2
YWEzZWQwZjUxZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFz
ZUltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oCkBA
IC00NCw3ICs0NCwxMCBAQCBwdWJsaWM6CiAgICAgV2ViSURCRGF0YWJhc2VJbXBsKFdURjo6UGFz
c1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZT4gaWRiRGF0YWJhc2UpOwogICAgIHZpcnR1YWwg
fldlYklEQkRhdGFiYXNlSW1wbCgpOwogCi0gICAgLy8gRklYTUU6IEltcGxlbWVudC4KKyAgICB2
aXJ0dWFsIFdlYlN0cmluZyBuYW1lKCk7CisgICAgdmlydHVhbCBXZWJTdHJpbmcgZGVzY3JpcHRp
b24oKTsKKyAgICB2aXJ0dWFsIFdlYlN0cmluZyB2ZXJzaW9uKCk7CisgICAgdmlydHVhbCBXZWJW
ZWN0b3I8V2ViU3RyaW5nPiBvYmplY3RTdG9yZXMoKTsKIAogcHJpdmF0ZToKICAgICBXVEY6OlJl
ZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZT4gbV9pZGJEYXRhYmFzZTsKZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViSW5kZXhlZERhdGFiYXNlSW1wbC5jcHAgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkluZGV4ZWREYXRhYmFzZUltcGwuY3BwCmluZGV4IDk5YWFkMzllMWY0Zjkz
ZjNjNGZlYjQ2ZDkzYjIwNjZiN2NjYTk5NTMuLjAwMTIyYWRlNjU1OGQ3MDMzZTFhOTVkZjE2YTc0
NDMwYzBhZTdjZTggMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5kZXhlZERh
dGFiYXNlSW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbmRleGVkRGF0YWJh
c2VJbXBsLmNwcApAQCAtNTcsOSArNTcsOSBAQCBXZWJJbmRleGVkRGF0YWJhc2VJbXBsOjp+V2Vi
SW5kZXhlZERhdGFiYXNlSW1wbCgpCiB7CiB9CiAKLXZvaWQgV2ViSW5kZXhlZERhdGFiYXNlSW1w
bDo6b3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYgZGVzY3JpcHRp
b24sIGJvb2wgbW9kaWZ5RGF0YWJhc2UsIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25z
dCBXZWJTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBXZWJGcmFtZSosIGludCYgZXhjZXB0aW9uQ29k
ZSkKK3ZvaWQgV2ViSW5kZXhlZERhdGFiYXNlSW1wbDo6b3Blbihjb25zdCBXZWJTdHJpbmcmIG5h
bWUsIGNvbnN0IFdlYlN0cmluZyYgZGVzY3JpcHRpb24sIFdlYklEQkNhbGxiYWNrcyogY2FsbGJh
Y2tzLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBXZWJGcmFtZSosIGludCYgZXhj
ZXB0aW9uQ29kZSkKIHsKLSAgICBtX2luZGV4ZWREYXRhYmFzZS0+b3BlbihuYW1lLCBkZXNjcmlw
dGlvbiwgbW9kaWZ5RGF0YWJhc2UsIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoY2FsbGJhY2tz
KSwgb3JpZ2luLCAwLCBleGNlcHRpb25Db2RlKTsgICAgCisgICAgbV9pbmRleGVkRGF0YWJhc2Ut
Pm9wZW4obmFtZSwgZGVzY3JpcHRpb24sIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoY2FsbGJh
Y2tzKSwgb3JpZ2luLCAwLCBleGNlcHRpb25Db2RlKTsgICAgCiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbmRleGVkRGF0YWJh
c2VJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkluZGV4ZWREYXRhYmFzZUltcGwuaApp
bmRleCA1N2QyMGE2MzhlMDM0MWVmMmJlYThjY2NiYTE4ZjQ1NDRlMzdjYjRhLi4wNzJhOTJiYTI0
YzgxN2M1Nzc3MjYwZmFmNWMzNGE1Njg1Yjk2MWVlIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkluZGV4ZWREYXRhYmFzZUltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkluZGV4ZWREYXRhYmFzZUltcGwuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAg
V2ViSW5kZXhlZERhdGFiYXNlSW1wbCgpOwogICAgIHZpcnR1YWwgfldlYkluZGV4ZWREYXRhYmFz
ZUltcGwoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwg
Y29uc3QgV2ViU3RyaW5nJiBkZXNjcmlwdGlvbiwgYm9vbCBtb2RpZnlEYXRhYmFzZSwgV2ViSURC
Q2FsbGJhY2tzKiwgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mLCBXZWJGcmFtZSosIGludCYgZXhj
ZXB0aW9uQ29kZSk7CisgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1l
LCBjb25zdCBXZWJTdHJpbmcmIGRlc2NyaXB0aW9uLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBX
ZWJTZWN1cml0eU9yaWdpbiYsIFdlYkZyYW1lKiwgaW50JiBleGNlcHRpb25Db2RlKTsKIAogcHJp
dmF0ZToKICAgICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpJbmRleGVkRGF0YWJhc2U+IG1faW5kZXhl
ZERhdGFiYXNlOwo=
</data>
<flag name="review"
          id="41607"
          type_id="1"
          status="+"
          setter="steveblock"
    />
          </attachment>
      

    </bug>

</bugzilla>