<?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>78052</bug_id>
          
          <creation_ts>2012-02-07 15:53:34 -0800</creation_ts>
          <short_desc>[V8] Allow bindings for attributes on DOM nodes to also set a named hidden reference</short_desc>
          <delta_ts>2013-04-05 17:24:01 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>
          <dependson>78253</dependson>
          <blocked>73865</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Erik Arvidsson">arv</reporter>
          <assigned_to name="Erik Arvidsson">arv</assigned_to>
          <cc>abarth</cc>
    
    <cc>antonm</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>ojan</cc>
    
    <cc>podivilov</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>551500</commentid>
    <comment_count>0</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-02-07 15:53:34 -0800</bug_when>
    <thetext>[V8] Allow bindings for attributes on DOM nodes to also set a named hidden reference</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551503</commentid>
    <comment_count>1</comment_count>
      <attachid>125947</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-02-07 15:55:53 -0800</bug_when>
    <thetext>Created attachment 125947
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551515</commentid>
    <comment_count>2</comment_count>
      <attachid>125947</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-02-07 16:04:31 -0800</bug_when>
    <thetext>Comment on attachment 125947
Patch

Ur doin it rite.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551738</commentid>
    <comment_count>3</comment_count>
      <attachid>125947</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-07 20:23:51 -0800</bug_when>
    <thetext>Comment on attachment 125947
Patch

Clearing flags on attachment: 125947

Committed r107035: &lt;http://trac.webkit.org/changeset/107035&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551739</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-07 20:23:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552944</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-09 01:08:41 -0800</bug_when>
    <thetext>This patch regressed DOMDivWalk:
http://build.chromium.org/f/chromium/perf/mac-release-10.6-webkit-latest/dom_perf/report.html?history=150&amp;rev=-1&amp;graph=DOMDivWalk
http://build.chromium.org/p/chromium.webkit/builders/Mac10.6%20Perf/builds/6278

The result is much easier to see on Perf-o-matic: http://webkit-perf.appspot.com/graph.html?#tests=[[6104,2001,3001]]&amp;sel=1328173376951,1328778176951&amp;displayrange=7&amp;datatype=running</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553264</commentid>
    <comment_count>6</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-02-09 10:11:46 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; This patch regressed DOMDivWalk:
&gt; http://build.chromium.org/f/chromium/perf/mac-release-10.6-webkit-latest/dom_perf/report.html?history=150&amp;rev=-1&amp;graph=DOMDivWalk
&gt; http://build.chromium.org/p/chromium.webkit/builders/Mac10.6%20Perf/builds/6278
&gt; 
&gt; The result is much easier to see on Perf-o-matic: http://webkit-perf.appspot.com/graph.html?#tests=[[6104,2001,3001]]&amp;sel=1328173376951,1328778176951&amp;displayrange=7&amp;datatype=running

Ouch, that is bad.

At this point in time I don&apos;t see how to fix that without reintroducing the bugs that this fixed.

The problem is that when we do things like foo.bar in js we didn&apos;t use to keep a reference from the foo object to the bar object which lead to bugs where we lost the data stored on the bar object.

foo.bar.baz = 42
gc()
assert(foo.bar.baz === 42)

Now we keep a reference if the webidl attribute is readonly and if the wrapper is a non node wrapper.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553305</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-09 10:45:41 -0800</bug_when>
    <thetext>Can we at least see the the diff in the generated binding code and profile results?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553389</commentid>
    <comment_count>8</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-02-09 12:02:13 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Can we at least see the the diff in the generated binding code and profile results?

With this patch:

static v8::Handle&lt;v8::Value&gt; childNodesAttrGetter(v8::Local&lt;v8::String&gt; name, const v8::AccessorInfo&amp; info)
{
    INC_STATS(&quot;DOM.Node.childNodes._get&quot;);
    Node* imp = V8Node::toNative(info.Holder());
    RefPtr&lt;NodeList&gt; result = imp-&gt;childNodes();
    v8::Handle&lt;v8::Value&gt; wrapper = result.get() ? V8NodeList::existingWrapper(result.get()) : v8::Handle&lt;v8::Object&gt;();
    if (wrapper.IsEmpty()) {
        wrapper = toV8(result.get());
        if (!wrapper.IsEmpty())
            V8DOMWrapper::setNamedHiddenReference(info.Holder(), &quot;childNodes&quot;, wrapper);
    }
    return wrapper;
}

without this patch:

static v8::Handle&lt;v8::Value&gt; childNodesAttrGetter(v8::Local&lt;v8::String&gt; name, const v8::AccessorInfo&amp; info)
{
    INC_STATS(&quot;DOM.Node.childNodes._get&quot;);
    Node* imp = V8Node::toNative(info.Holder());
    return toV8(imp-&gt;childNodes());
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556570</commentid>
    <comment_count>9</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-02-14 13:52:57 -0800</bug_when>
    <thetext>This was rolled back due to the perf impact.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558802</commentid>
    <comment_count>10</comment_count>
      <attachid>127495</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-02-16 18:59:26 -0800</bug_when>
    <thetext>Created attachment 127495
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558807</commentid>
    <comment_count>11</comment_count>
      <attachid>127497</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-02-16 19:06:10 -0800</bug_when>
    <thetext>Created attachment 127497
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559133</commentid>
    <comment_count>12</comment_count>
      <attachid>127497</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-17 05:17:34 -0800</bug_when>
    <thetext>Comment on attachment 127497
Patch

Attachment 127497 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11541403

New failing tests:
fast/filesystem/workers/file-writer-write-overlapped.html
fast/files/workers/worker-read-blob-sync.html
fast/workers/worker-location.html
storage/indexeddb/objectstore-basics-workers.html
fast/filesystem/workers/file-writer-sync-write-overlapped.html
storage/indexeddb/basics.html
fast/filesystem/workers/simple-temporary-sync.html
http/tests/workers/terminate-during-sync-operation.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559348</commentid>
    <comment_count>13</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-02-17 11:07:41 -0800</bug_when>
    <thetext>Anton, this patch has some bad perf regressions. I was wondering if you have any advice on this problem.

The problem is that we do not keep a reference from a Node to its childNodes NodeList (for example, same  thing applies to all non node wrappers). The current solution has been to add a custom toV8 that adds a V8 hidden property that keeps the wrapper alive. Since this was only done manually we missed a couple hundred cases ;-) However, adding the hidden property is quite slow and it regresses the DOMDivWalk.html perf test by something like 100%.

The way that JSC gets away with this is by making the GC call JSNodeListOwner::isReachableFromOpaqueRoots which of course makes the GC slower. The nice thing about the JSC solution is that it does not keep alive wrappers that do not have custom properties so the NodeList wrapper will be collectable in almost all cases.

What is the best approach here? Should we follow JSC and let the GC ask the wrapper if it is reachable? I assume V8 has no concept of custom properties? This path needs a lot of custom code which sucks too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560204</commentid>
    <comment_count>14</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2012-02-20 06:02:50 -0800</bug_when>
    <thetext>Erik, we have pretty similar tools with object groups and implicit references.

Instead of using hidden references, I would use implicit refs.

From benchmarks point of view, that should have negligible effect---so far prologue phase never surfaced as a major hot-spot.

And that would protect you from the unpleasant case when C++ object identity changes for any reason---in this case you would still retain old nodelist with hidden properties.

Overall, I think hidden references should go away completely---implicit references look like notably superior approach.  But we have had only limited experience with implicit refs so far.

(In reply to comment #13)
&gt; Anton, this patch has some bad perf regressions. I was wondering if you have any advice on this problem.
&gt; 
&gt; The problem is that we do not keep a reference from a Node to its childNodes NodeList (for example, same  thing applies to all non node wrappers). The current solution has been to add a custom toV8 that adds a V8 hidden property that keeps the wrapper alive. Since this was only done manually we missed a couple hundred cases ;-) However, adding the hidden property is quite slow and it regresses the DOMDivWalk.html perf test by something like 100%.
&gt; 
&gt; The way that JSC gets away with this is by making the GC call JSNodeListOwner::isReachableFromOpaqueRoots which of course makes the GC slower. The nice thing about the JSC solution is that it does not keep alive wrappers that do not have custom properties so the NodeList wrapper will be collectable in almost all cases.
&gt; 
&gt; What is the best approach here? Should we follow JSC and let the GC ask the wrapper if it is reachable? I assume V8 has no concept of custom properties? This path needs a lot of custom code which sucks too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870159</commentid>
    <comment_count>15</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-04-05 17:23:50 -0700</bug_when>
    <thetext>V8 is no longer supported in WebKit.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125947</attachid>
            <date>2012-02-07 15:55:53 -0800</date>
            <delta_ts>2012-02-16 18:59:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78052-20120207155552.patch</filename>
            <type>text/plain</type>
            <size>12961</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2OTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Q3YzMzZGI5NzUwYzE4
NTc0ZTRjMWY2YzljOGFkNmMyYmI5OWY5ZS4uZWJhYzZmOTEwMTg4ZjJmYWEyYjcxNjdmYzBhZjM5
ZmEwYTVhY2IxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAyLTA3ICBFcmlr
IEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1Y4XSBBbGxvdyBiaW5k
aW5ncyBmb3IgYXR0cmlidXRlcyBvbiBET00gbm9kZXMgdG8gYWxzbyBzZXQgYSBuYW1lZCBoaWRk
ZW4gcmVmZXJlbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03ODA1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEJlZm9yZSB0aGlzIHBhdGNoIHRoZSBjb2RlIGdlbmVyYXRvciBkaWQgbm90IGFkZCB0aGUg
bmFtZWQgaGlkZGVuIHJlZmVyZW5jZSB3aGVuIHRoZSBkYXRhIG5vZGUKKyAgICAgICAgd2FzIGEg
RE9NIE5vZGUuIFRoaXMgbGVhZCB0byB1cyBoYXZpbmcgdG8gY3JlYXRlIGN1c3RvbSB0b1Y4IGJp
bmRpbmdzIGluIGEgZmV3IHBsYWNlcy4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRl
c3RzCisKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFVzZVY4LmNtYWtlOgorICAg
ICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbToKKyAgICAgICAgKEdlbmVyYXRlTm9ybWFsQXR0ckdldHRlcik6CisgICAgICAg
IChIYXNDdXN0b21Ub1Y4SW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOERPTVN0cmluZ01hcEN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4RE9NVG9rZW5MaXN0Q3VzdG9tLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy92OC9jdXN0b20vVjhOYW1lZE5vZGVNYXBDdXN0b20uY3BwOgorCiAyMDEyLTAyLTA3ICBEYXZp
ZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBD
cmFzaCB3aGVuIHVzaW5nIHBlci10aWxlIHBhaW50aW5nIG9uIFdpbmRvd3MuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpp
bmRleCBkMzRjNmQ5Nzg1NDUxYTg3MWQ2N2FiNWZjZWRhMDA4MzU2ZTY0MDRmLi44MTFkMjQ5ZDQx
NDE0YWIyOThmNDdkMDZhZmM3MDlmOTgzYTExMTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTE1OCw4ICsx
NTgsNyBAQCB2OCB7CiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0
SG9zdEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNj
cmlwdE1hbmFnZXIuY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5zcGVjdG9y
RnJvbnRlbmRIb3N0Q3VzdG9tLmNwcCBcCi0gICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERP
TVN0cmluZ01hcEN1c3RvbS5jcHAgXAotICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhET01U
b2tlbkxpc3RDdXN0b20uY3BwCisgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmlu
Z01hcEN1c3RvbS5jcHAKIAogICAgIFNPVVJDRVMgKz0gXAogICAgICAgICBiaW5kaW5ncy92OC9j
dXN0b20vVjhDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtl
CmluZGV4IDEwODVkYmJlMjFmNjVjYTJlODIxNDI3NDEyNzAzYTQwMjJhMGRmZDAuLjliMGEwMzli
OTRjZjM3NzAwNzgxYmQyNDYzM2VmYzUwNzZhNzNhODYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1VzZVY4LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlCkBAIC04MSw3
ICs4MSw2IEBAIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOEN1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20v
VjhET01Gb3JtRGF0YUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJp
bmdNYXBDdXN0b20uY3BwCi0gICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NVG9rZW5MaXN0Q3Vz
dG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAKICAg
ICBiaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92
OC9jdXN0b20vVjhEZWRpY2F0ZWRXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CmluZGV4IDA3YTM0MGY4YjYyZmYxNDFlYTdiZmQ1NDczOTc1MTc2OTVjZTYzMzQuLjc3YjFlM2Mw
NjE0ZjM0NGI5ZGE2YzZkZDFjNjFhMGI3NzllMGI5NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE4
MTYsNyArMTgxNiw2IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9t
WFBhdGhOU1Jlc29sdmVyLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERP
TUZvcm1EYXRhQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9t
L1Y4RE9NVG9rZW5MaXN0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0
b20vVjhEZWRpY2F0ZWRXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IGFlMjZhNzQx
Y2JmYzJhMzRkZDIzMzE3YmZkM2MwOGFhN2RhNTVmOTAuLmU2YmVlMTkyOGUxOWM4OTE2ZGZiOTU4
YzgxMGUzNzU2ZWIzYTc2Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC0zLDcgKzMsNyBAQAogIyBDb3B5cmlnaHQgKEMp
IDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAjIENvcHlyaWdodCAo
QykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IDxhcEB3ZWJraXQub3JnPgogIyBDb3B5cmlnaHQg
KEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KLSMgQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4
LCAyMDA5IEdvb2dsZSBJbmMuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDEyIEdvb2dsZSBJbmMu
CiAjIENvcHlyaWdodCAoQykgMjAwOSBDYW1lcm9uIE1jQ29ybWFjayA8Y2FtQG1jYy5pZC5hdT4K
ICMgQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCkBAIC05MjEsNyArOTIxLDcgQEAgRU5ECiAgICAgIyBT
cGVjaWFsIGNhc2UgZm9yIHJlYWRvbmx5IG9yIFJlcGxhY2VhYmxlIGF0dHJpYnV0ZXMgKHdpdGgg
YSBmZXcgZXhjZXB0aW9ucykuIFRoaXMgYXR0ZW1wdHMgdG8gZW5zdXJlIHRoYXQgSlMgd3JhcHBl
cnMgZG9uJ3QgZ2V0CiAgICAgIyBnYXJiYWdlLWNvbGxlY3RlZCBwcmVtYXR1cmVseSB3aGVuIHRo
ZWlyIGxpZmV0aW1lIGlzIHN0cm9uZ2x5IHRpZWQgdG8gdGhlaXIgb3duZXIuIFdlIGFjY29tcGxp
c2ggdGhpcyBieSBpbnNlcnRpbmcgYSByZWZlcmVuY2UgdG8KICAgICAjIHRoZSBuZXdseSBjcmVh
dGVkIHdyYXBwZXIgaW50byBhbiBpbnRlcm5hbCBmaWVsZCBvZiB0aGUgaG9sZGVyIG9iamVjdC4K
LSAgICBpZiAoIUlzTm9kZVN1YlR5cGUoJGRhdGFOb2RlKSAmJiAkYXR0ck5hbWUgbmUgInNlbGYi
ICYmIChJc1dyYXBwZXJUeXBlKCRyZXR1cm5UeXBlKSAmJiAoJGF0dHJpYnV0ZS0+dHlwZSA9fiAv
XnJlYWRvbmx5LyB8fCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJSZXBsYWNlYWJsZSJ9KQorICAgIGlmICgkYXR0ck5hbWUgbmUgInNlbGYiICYmIChJc1dyYXBw
ZXJUeXBlKCRyZXR1cm5UeXBlKSAmJiAoJGF0dHJpYnV0ZS0+dHlwZSA9fiAvXnJlYWRvbmx5LyB8
fCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZXBsYWNlYWJs
ZSJ9KQogICAgICAgICAmJiAkcmV0dXJuVHlwZSBuZSAiRXZlbnRUYXJnZXQiICYmICRyZXR1cm5U
eXBlIG5lICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiICYmICRyZXR1cm5UeXBlIG5lICJET01XaW5k
b3ciIAogICAgICAgICAmJiAkcmV0dXJuVHlwZSAhfiAvU1ZHLyAmJiAkcmV0dXJuVHlwZSAhfiAv
SFRNTC8gJiYgIUlzRE9NTm9kZVR5cGUoJHJldHVyblR5cGUpKSkgewogICAgICAgICBBZGRJbmNs
dWRlc0ZvclR5cGUoJHJldHVyblR5cGUpOwpAQCAtMzExOCwxNCArMzExOCwxMSBAQCBzdWIgSGFz
Q3VzdG9tVG9WOEltcGxlbWVudGF0aW9uIHsKICAgICAjIFdlIGdlbmVyYXRlIGEgY3VzdG9tIGNv
bnZlcnRlciAoYnV0IEpTQyBkb2Vzbid0KSBmb3IgdGhlIGZvbGxvd2luZzoKICAgICByZXR1cm4g
MSBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiQ1NTU3R5bGVTaGVldCI7CiAgICAgcmV0dXJuIDEgaWYg
JGludGVyZmFjZU5hbWUgZXEgIkNhbnZhc1BpeGVsQXJyYXkiOwotICAgIHJldHVybiAxIGlmICRp
bnRlcmZhY2VOYW1lIGVxICJET01TdHJpbmdNYXAiOwogICAgIHJldHVybiAxIGlmICRpbnRlcmZh
Y2VOYW1lIGVxICJET01XaW5kb3ciOwotICAgIHJldHVybiAxIGlmICRpbnRlcmZhY2VOYW1lIGVx
ICJET01Ub2tlbkxpc3QiOwogICAgIHJldHVybiAxIGlmICRpbnRlcmZhY2VOYW1lIGVxICJFbGVt
ZW50IjsKICAgICByZXR1cm4gMSBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiSFRNTERvY3VtZW50IjsK
ICAgICByZXR1cm4gMSBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiSFRNTEVsZW1lbnQiOwogICAgIHJl
dHVybiAxIGlmICRpbnRlcmZhY2VOYW1lIGVxICJMb2NhdGlvbiI7Ci0gICAgcmV0dXJuIDEgaWYg
JGludGVyZmFjZU5hbWUgZXEgIk5hbWVkTm9kZU1hcCI7CiAgICAgcmV0dXJuIDEgaWYgJGludGVy
ZmFjZU5hbWUgZXEgIlNWR0RvY3VtZW50IjsKICAgICByZXR1cm4gMSBpZiAkaW50ZXJmYWNlTmFt
ZSBlcSAiU1ZHRWxlbWVudCI7CiAgICAgcmV0dXJuIDEgaWYgJGludGVyZmFjZU5hbWUgZXEgIlNj
cmlwdFByb2ZpbGUiOwpAQCAtMzE0MSw4ICszMTM4LDYgQEAgc3ViIEhhc0N1c3RvbVRvVjhJbXBs
ZW1lbnRhdGlvbiB7CiAgICAgcmV0dXJuIDAgaWYgJGludGVyZmFjZU5hbWUgZXEgIk1lZGlhTGlz
dCI7CiAgICAgcmV0dXJuIDAgaWYgJGludGVyZmFjZU5hbWUgZXEgIlN0eWxlU2hlZXRMaXN0IjsK
ICAgICByZXR1cm4gMCBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiRE9NSW1wbGVtZW50YXRpb24iOwot
ICAgIHJldHVybiAwIGlmICRpbnRlcmZhY2VOYW1lIGVxICJET01TdHJpbmdNYXAiOwotICAgIHJl
dHVybiAwIGlmICRpbnRlcmZhY2VOYW1lIGVxICJET01Ub2tlbkxpc3QiOwogICAgIHJldHVybiAw
IGlmICRpbnRlcmZhY2VOYW1lIGVxICJUZXh0VHJhY2siOwogCiAgICAgIyBGb3IgZXZlcnl0aGlu
ZyBlbHNlLCBkbyB3aGF0IEpTQyBkb2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmluZ01hcEN1c3RvbS5jcHAKaW5kZXggMjc5OWFl
MmM4NzRlMzRlYzMwOWFkZjY1ZjhmZDcxZmFlYzcwOWUxZS4uOGU3ZjZiMDUzZjM0MWU0ODk2MDNk
ZWZhNmQ0MzI3YjE4MmI2YTgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJpbmdNYXBDdXN0b20uY3BwCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC04NCwxOSArODQsNCBA
QCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhET01TdHJpbmdNYXA6Om5hbWVkUHJvcGVydHlTZXR0
ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+CiAgICAgcmV0dXJuIHZhbHVlOwogfQogCi12ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gdG9WOChET01TdHJpbmdNYXAqIGltcGwpCi17Ci0gICAgaWYgKCFpbXBs
KQotICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKLSAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
IHdyYXBwZXIgPSBWOERPTVN0cmluZ01hcDo6d3JhcChpbXBsKTsKLSAgICAvLyBBZGQgYSBoaWRk
ZW4gcmVmZXJlbmNlIGZyb20gdGhlIGVsZW1lbnQgdG8gdGhlIERPTVN0cmluZ01hcC4KLSAgICBF
bGVtZW50KiBlbGVtZW50ID0gaW1wbC0+ZWxlbWVudCgpOwotICAgIGlmICghd3JhcHBlci5Jc0Vt
cHR5KCkgJiYgZWxlbWVudCkgewotICAgICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZWxlbWVu
dFZhbHVlID0gdG9WOChlbGVtZW50KTsKLSAgICAgICAgaWYgKCFlbGVtZW50VmFsdWUuSXNFbXB0
eSgpICYmIGVsZW1lbnRWYWx1ZS0+SXNPYmplY3QoKSkKLSAgICAgICAgICAgIFY4RE9NV3JhcHBl
cjo6c2V0TmFtZWRIaWRkZW5SZWZlcmVuY2UoZWxlbWVudFZhbHVlLkFzPHY4OjpPYmplY3Q+KCks
ICJkb21TdHJpbmdNYXAiLCB3cmFwcGVyKTsKLSAgICB9Ci0gICAgcmV0dXJuIHdyYXBwZXI7Ci19
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOERPTVRva2VuTGlzdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01Ub2tlbkxpc3RDdXN0b20uY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwODA1MWFiZDU1OGRlZjFjNmY2Mjk2NTcxODI4MDEzMjEyMzE4
ZTM1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVRva2VuTGlzdEN1c3RvbS5jcHAKKysr
IC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
LSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IlY4RE9NVG9rZW5MaXN0LmgiCi0KLSNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIKLSNpbmNsdWRl
ICJWOEJpbmRpbmcuaCIKLSNpbmNsdWRlICJWOERPTVdyYXBwZXIuaCIKLSNpbmNsdWRlICJWOEVs
ZW1lbnQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
dG9WOChET01Ub2tlbkxpc3QqIGltcGwpCi17Ci0gICAgaWYgKCFpbXBsKQotICAgICAgICByZXR1
cm4gdjg6Ok51bGwoKTsKLSAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBWOERP
TVRva2VuTGlzdDo6d3JhcChpbXBsKTsKLSAgICAvLyBBZGQgYSBoaWRkZW4gcmVmZXJlbmNlIGZy
b20gdGhlIGVsZW1lbnQgdG8gdGhlIERPTVRva2VuTGlzdC4KLSAgICBFbGVtZW50KiBlbGVtZW50
ID0gaW1wbC0+ZWxlbWVudCgpOwotICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkgJiYgZWxlbWVu
dCkgewotICAgICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZWxlbWVudFZhbHVlID0gdG9WOChl
bGVtZW50KTsKLSAgICAgICAgaWYgKCFlbGVtZW50VmFsdWUuSXNFbXB0eSgpICYmIGVsZW1lbnRW
YWx1ZS0+SXNPYmplY3QoKSkKLSAgICAgICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0TmFtZWRIaWRk
ZW5SZWZlcmVuY2UoZWxlbWVudFZhbHVlLkFzPHY4OjpPYmplY3Q+KCksICJkb21Ub2tlbkxpc3Qi
LCB3cmFwcGVyKTsKLSAgICB9Ci0gICAgcmV0dXJuIHdyYXBwZXI7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOE5hbWVkTm9kZU1hcEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhOYW1lZE5vZGVNYXBDdXN0b20uY3BwCmluZGV4IDQ3ODJkY2MzMjJkMDVhZGRkMDY2
NmVhZTFlOTgxNzFkMjRiOTk0NzkuLjkwZThmZDYyNmU4NGMwMTM1YzBhZjA0YzliYmEwYTIzMThm
ZTcxYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5h
bWVkTm9kZU1hcEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4TmFtZWROb2RlTWFwQ3VzdG9tLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDctMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA3LTIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTcxLDE2ICs3MSw0IEBAIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOE5hbWVkTm9kZU1hcDo6bmFtZWRQcm9wZXJ0eUdldHRlcih2
ODo6TG9jYWw8djg6OlN0cmluZz4KICAgICByZXR1cm4gdG9WOChyZXN1bHQucmVsZWFzZSgpKTsK
IH0KIAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoTmFtZWROb2RlTWFwKiBpbXBsKQotewot
ICAgIGlmICghaW1wbCkKLSAgICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7Ci0gICAgdjg6OkhhbmRs
ZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gVjhOYW1lZE5vZGVNYXA6OndyYXAoaW1wbCk7Ci0gICAg
Ly8gQWRkIGEgaGlkZGVuIHJlZmVyZW5jZSBmcm9tIG5hbWVkIG5vZGUgbWFwIHRvIGl0cyBvd25l
ciBub2RlLgotICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBpbXBsLT5lbGVtZW50KCk7Ci0gICAgaWYg
KCF3cmFwcGVyLklzRW1wdHkoKSAmJiBlbGVtZW50KQotICAgICAgICBWOERPTVdyYXBwZXI6OnNl
dE5hbWVkSGlkZGVuUmVmZXJlbmNlKHdyYXBwZXIsICJvd25lck5vZGUiLCB0b1Y4KGVsZW1lbnQp
KTsKLSAgICByZXR1cm4gd3JhcHBlcjsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDE0ZTZkOGYwMDUyMmY0OTIxZTFjNmJkMThkMGRmOTU5M2FjMzQwZmIuLjI0MDg3NWZlYTZl
MGIyNmE2ZTdhMGEyYWNhNTZlZjg4ODcxZmJjYzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAx
Mi0wMi0wNyAgRXJpayBBcnZpZHNzb24gIDxhcnZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtW
OF0gQWxsb3cgYmluZGluZ3MgZm9yIGF0dHJpYnV0ZXMgb24gRE9NIG5vZGVzIHRvIGFsc28gc2V0
IGEgbmFtZWQgaGlkZGVuIHJlZmVyZW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzgwNTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4
dDoKKwogMjAxMi0wMi0wNyAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBVbnJldmlld2VkIGdhcmRlbmluZyBhZnRlciByMTA2OTgyLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0Cmlu
ZGV4IDU5ODM2Zjg0YTJlZTNlM2QzZWNjNzc4ZTU0NTU0YWYxMGEyNjk2NWIuLjJjOGQxZmY0YmZl
YTRiZjkzOWZmZmFlZWVlNzFjZjAyNTRhYWQwNzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTU4NSw3ICs1ODUsNiBA
QCBCVUdXSzY2Mzc3IDogZmFzdC9kb20vU3R5bGVTaGVldC9nYy1pbmxpbmUtc3R5bGUtY3NzdmFs
dWVzLmh0bWwgPSBURVhUCiBCVUdXSzY2Mzc3IDogZmFzdC9kb20vU3R5bGVTaGVldC9nYy1wYXJl
bnQtcnVsZS5odG1sID0gVEVYVAogQlVHV0s2NjM3NyA6IGZhc3QvZG9tL1N0eWxlU2hlZXQvZ2Mt
cGFyZW50LXN0eWxlc2hlZXQuaHRtbCA9IFRFWFQKIEJVR1dLNjYzNzcgOiBmYXN0L2RvbS9TdHls
ZVNoZWV0L2djLXJ1bGUtY2hpbGRyZW4td3JhcHBlcnMuaHRtbCA9IFRFWFQKLUJVR1dLNjYzNzcg
OiBmYXN0L2RvbS9TdHlsZVNoZWV0L2djLXN0eWxlaGVldC13cmFwcGVyLnhodG1sID0gVEVYVAog
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogLy8gUEVORElORyBURVNUUyAoZm9ya2VkIHRvIHBlbmRpbmcvLCBuZWVk
IHRvIGJlIHNlbnQgdXBzdHJlYW0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127495</attachid>
            <date>2012-02-16 18:59:26 -0800</date>
            <delta_ts>2012-02-16 19:06:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78052-20120216185925.patch</filename>
            <type>text/plain</type>
            <size>20653</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4MDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYThlOTEyMWU2YzJjOGY5
ZGU2NjkwMDcyOWFhMzRhMTRlNmRjNTMxYi4uMTNhNmI4Zjg2MjQ4M2U5NGIxN2FiOWQ3NDIyM2Y3
ZGVmMDMxNzIyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTAyLTE2ICBFcmlr
IEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1Y4XSBBbGxvdyBiaW5k
aW5ncyBmb3IgYXR0cmlidXRlcyBvbiBET00gbm9kZXMgdG8gYWxzbyBzZXQgYSBuYW1lZCBoaWRk
ZW4gcmVmZXJlbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03ODA1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEJlZm9yZSB0aGlzIHBhdGNoIHRoZSBjb2RlIGdlbmVyYXRvciBkaWQgbm90IGFkZCB0aGUg
bmFtZWQgaGlkZGVuIHJlZmVyZW5jZSB3aGVuIHRoZSBkYXRhIG5vZGUKKyAgICAgICAgd2FzIGEg
RE9NIE5vZGUuIFRoaXMgbGVhZCB0byB1cyBoYXZpbmcgdG8gY3JlYXRlIGN1c3RvbSB0b1Y4IGJp
bmRpbmdzIGluIGEgZmV3IHBsYWNlcy4KKworICAgICAgICBUaGlzIG5vdyB1c2VzIGEgc3RhdGlj
IGxvY2FsIFY4IHN5bWJvbCB0byBtYWtlIGxvb2t1cCBmYXN0ZXIuCisKKyAgICAgICAgQ292ZXJl
ZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICog
VXNlVjguY21ha2U6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJhdGVOb3JtYWxBdHRy
R2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOEJpbmRpbmcuaDoKKyAgICAgICAgKFY4
UGVyc2lzdGVudFN5bWJvbEhvbGRlcik6CisgICAgICAgIFRoaXMgY2xhc3MgaXMgdXNlZCB0byBj
cmVhdGUgc3RhdGljIHJlZmVyZW5jZXMgdG8gVjggc3ltYm9scy4KKyAgICAgICAgKFdlYkNvcmU6
OlY4UGVyc2lzdGVudFN5bWJvbEhvbGRlcjo6VjhQZXJzaXN0ZW50U3ltYm9sSG9sZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlY4UGVyc2lzdGVudFN5bWJvbEhvbGRlcjo6c3ltYm9sKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKTog
QWxsb3cgcGFzc2luZyBpbiB2OCBzeW1ib2wgZGlyZWN0bHkgdG8gcmVkdWNlIG92ZXJoZWFkIG9m
IGNyZWF0aW5nIHRoZXNlLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpW
OERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuV2luZG93UmVmZXJlbmNlKTogRGl0dG8uCisgICAg
ICAgICogYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmg6CisgICAgICAgIChWOERPTVdyYXBwZXIp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1lLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VjhIaWRkZW5Qcm9wZXJ0eU5hbWU6Omhp
ZGRlblJlZmVyZW5jZU5hbWUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVy
dHlOYW1lLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3Vz
dG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhET01Ub2tlbkxpc3RDdXN0
b20uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9k
ZU1hcEN1c3RvbS5jcHA6CisgICAgICAgICogZG9tL0RPTVN0cmluZ01hcC5pZGw6CisgICAgICAg
ICogZG9tL05hbWVkTm9kZU1hcC5pZGw6CisgICAgICAgICogaHRtbC9ET01Ub2tlbkxpc3QuaWRs
OgorCiAyMDEyLTAyLTE2ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFtDaHJvbWl1bV0gT2NjbHVzaW9uIHRyYWNraW5nIHdpdGggQ1NTIGZpbHRlcnMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCmluZGV4IDEyNDcxYjJjNjcwMjc4MjNmZTc1ZmY5NThmZWU4YjlhYTJiNWYyNzcuLjIx
YzBlMDUxYTZiNTYxNWE1OTgxN2YyOTAzNWYzMDQ4ZjkyZDk3YmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAt
MTU4LDggKzE1OCw3IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0
ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOElu
amVjdGVkU2NyaXB0TWFuYWdlci5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhJ
bnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwIFwKLSAgICAgICAgYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcCBcCi0gICAgICAgIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOERPTVRva2VuTGlzdEN1c3RvbS5jcHAKKyAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcAogCiAgICAgU09VUkNFUyArPSBcCiAgICAgICAgIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlIGIvU291cmNlL1dlYkNvcmUvVXNl
VjguY21ha2UKaW5kZXggNTQ3NmQ5OTRkM2JlNzM4MTllMzUyYzZiOGQyMzkxMTQ1ZWI3OWEwNS4u
NDFmODM2ZDNhNDMzYWE1YmE4YmE1M2RhZjZjNTRmNjdkNWUwY2FmNSAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYkNvcmUvVXNlVjguY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvVXNlVjguY21ha2UK
QEAgLTgxLDcgKzgxLDYgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAogICAgIGJpbmRpbmdzL3Y4
L2N1c3RvbS9WOERPTUZvcm1EYXRhQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OERPTVN0cmluZ01hcEN1c3RvbS5jcHAKLSAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhET01Ub2tl
bkxpc3RDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9t
LmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcAogICAgIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOERlZGljYXRlZFdvcmtlckNvbnRleHRDdXN0b20uY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKaW5kZXggNmQ5OTY1OGQ0MTAxOTI3NTc5ZjlmNjA2MmI5Mzk5MzYyYzg5M2YwZi4u
ZTIwOTcwNWFkMjUzYTBhYjY3ZWE3NjhjN2JjNDE5Y2JhYzczNTEzZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQpAQCAtMTgyMCw3ICsxODIwLDYgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20v
VjhDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4RE9NRm9ybURhdGFDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9j
dXN0b20vVjhET01TdHJpbmdNYXBDdXN0b20uY3BwJywKLSAgICAgICAgICAgICdiaW5kaW5ncy92
OC9jdXN0b20vVjhET01Ub2tlbkxpc3RDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5n
cy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5n
cy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOERlZGljYXRlZFdvcmtlckNvbnRleHRDdXN0b20uY3BwJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXgg
ZmY3ZmI4ZDE4YzJiNjE4OWIwMzgwZjFhMTg3NjA2OGU4NGE2NTI3Mi4uM2UzZTA0NWE2ZjgxNWVm
MzQ4YTU3ZDU3NmEyNzE2ZTFiZmE1NmUwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTkxNiw3ICs5MTYsNyBAQCBFTkQK
ICAgICAjIFNwZWNpYWwgY2FzZSBmb3IgcmVhZG9ubHkgb3IgUmVwbGFjZWFibGUgYXR0cmlidXRl
cyAod2l0aCBhIGZldyBleGNlcHRpb25zKS4gVGhpcyBhdHRlbXB0cyB0byBlbnN1cmUgdGhhdCBK
UyB3cmFwcGVycyBkb24ndCBnZXQKICAgICAjIGdhcmJhZ2UtY29sbGVjdGVkIHByZW1hdHVyZWx5
IHdoZW4gdGhlaXIgbGlmZXRpbWUgaXMgc3Ryb25nbHkgdGllZCB0byB0aGVpciBvd25lci4gV2Ug
YWNjb21wbGlzaCB0aGlzIGJ5IGluc2VydGluZyBhIHJlZmVyZW5jZSB0bwogICAgICMgdGhlIG5l
d2x5IGNyZWF0ZWQgd3JhcHBlciBpbnRvIGFuIGludGVybmFsIGZpZWxkIG9mIHRoZSBob2xkZXIg
b2JqZWN0LgotICAgIGlmICghSXNOb2RlU3ViVHlwZSgkZGF0YU5vZGUpICYmICRhdHRyTmFtZSBu
ZSAic2VsZiIgJiYgKElzV3JhcHBlclR5cGUoJHJldHVyblR5cGUpICYmICgkYXR0cmlidXRlLT50
eXBlID1+IC9ecmVhZG9ubHkvIHx8ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IlJlcGxhY2VhYmxlIn0pCisgICAgaWYgKCRhdHRyTmFtZSBuZSAic2VsZiIgJiYg
KElzV3JhcHBlclR5cGUoJHJldHVyblR5cGUpICYmICgkYXR0cmlidXRlLT50eXBlID1+IC9ecmVh
ZG9ubHkvIHx8ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJl
cGxhY2VhYmxlIn0pCiAgICAgICAgICYmICRyZXR1cm5UeXBlIG5lICJFdmVudFRhcmdldCIgJiYg
JHJldHVyblR5cGUgbmUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIgJiYgJHJldHVyblR5cGUgbmUg
IkRPTVdpbmRvdyIgCiAgICAgICAgICYmICRyZXR1cm5UeXBlICF+IC9TVkcvICYmICRyZXR1cm5U
eXBlICF+IC9IVE1MLyAmJiAhSXNET01Ob2RlVHlwZSgkcmV0dXJuVHlwZSkpKSB7CiAgICAgICAg
IEFkZEluY2x1ZGVzRm9yVHlwZSgkcmV0dXJuVHlwZSk7CkBAIC05MjYsMTIgKzkyNiwxNSBAQCBF
TkQKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gd3JhcHBlciA9IHJlc3VsdC5nZXQoKSA/IFY4JHtyZXR1cm5UeXBlfTo6ZXhpc3RpbmdX
cmFwcGVyKHJlc3VsdC5nZXQoKSkgOiB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KCk7XG4iKTsKICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpZiAod3JhcHBlci5Jc0VtcHR5KCkp
IHtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICB3cmFwcGVy
ID0gdG9WOChyZXN1bHQuZ2V0KCkpO1xuIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50RGVj
bHMsICIgICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpXG4iKTsKKyAgICAgICAgcHVzaChA
aW1wbENvbnRlbnREZWNscywgIiAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkge1xuIik7
CiAgICAgICAgIGlmICgkZGF0YU5vZGUtPm5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKLSAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgICAgICBWOERPTVdyYXBwZXI6OnNl
dE5hbWVkSGlkZGVuV2luZG93UmVmZXJlbmNlKGltcC0+ZnJhbWUoKSwgXCIke2F0dHJOYW1lfVwi
LCB3cmFwcGVyKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAg
ICAgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoVjhQZXJzaXN0ZW50U3ltYm9sSG9sZGVyLCBz
eW1ib2xIb2xkZXIsIChcIiR7YXR0ck5hbWV9XCIpKTtcbiIpOworICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnREZWNscywgIiAgICAgICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0TmFtZWRIaWRk
ZW5XaW5kb3dSZWZlcmVuY2UoaW1wLT5mcmFtZSgpLCBzeW1ib2xIb2xkZXIuc3ltYm9sKCksIHdy
YXBwZXIpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudERlY2xzLCAiICAgICAgICAgICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVy
ZW5jZShpbmZvLkhvbGRlcigpLCBcIiR7YXR0ck5hbWV9XCIsIHdyYXBwZXIpO1xuIik7CisgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICAgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChWOFBlcnNpc3RlbnRTeW1ib2xIb2xkZXIsIHN5bWJvbEhvbGRlciwgKFwiJHthdHRy
TmFtZX1cIikpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAg
ICAgICAgICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVyZW5jZShpbmZvLkhvbGRl
cigpLCBzeW1ib2xIb2xkZXIuc3ltYm9sKCksIHdyYXBwZXIpO1xuIik7CiAgICAgICAgIH0KKyAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgfVxuIik7CiAgICAgICAgIHB1
c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgfVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250
ZW50RGVjbHMsICIgICAgcmV0dXJuIHdyYXBwZXI7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnREZWNscywgIn1cblxuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOEJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5o
CmluZGV4IDBiYjVlOTM2YjM3OTc1M2UxN2RiZTk0NDU3YTZkNGEzNWQwYjY0YWUuLjdjMmE1NzE0
YWJhZmIyMzUyOGRjMTA0YTAwNmRjZjcyODE3YTVjMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4QmluZGluZy5oCkBAIC04OSw2ICs4OSwxNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBtX2xhc3RTdHJpbmdJbXBsOwogICAgIH07CiAKKyAg
ICBjbGFzcyBWOFBlcnNpc3RlbnRTeW1ib2xIb2xkZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAg
VjhQZXJzaXN0ZW50U3ltYm9sSG9sZGVyKGNvbnN0IGNoYXIqIG5hbWUpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIG1fc3ltYm9sID0gdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz46Ok5ldyhWOEhp
ZGRlblByb3BlcnR5TmFtZTo6aGlkZGVuUmVmZXJlbmNlTmFtZShuYW1lKSk7CisgICAgICAgIH0K
KyAgICAgICAgdjg6OkhhbmRsZTx2ODo6U3RyaW5nPiBzeW1ib2woKSB7IHJldHVybiBtX3N5bWJv
bDsgfQorICAgIHByaXZhdGU6CisgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+IG1f
c3ltYm9sOworICAgIH07CisKICAgICBjbGFzcyBDb25zdHJ1Y3Rvck1vZGU7CiAKICNpZm5kZWYg
TkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBw
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcAppbmRl
eCA0Y2YzYzlhNDZjYTZlMDNjM2E4OTJkNWNmNjZkZGQwMDQyNmRiNjNlLi4zOGZjMTg3NDViNWQ3
OTQ5ZTViY2RjNDg5ZDA3ZDU2M2RiMmQ1MmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4RE9NV3JhcHBlci5jcHAKQEAgLTE3NiwxMSArMTc2LDIxIEBAIHY4OjpMb2NhbDx2ODo6
RnVuY3Rpb24+IFY4RE9NV3JhcHBlcjo6Z2V0Q29uc3RydWN0b3IoV3JhcHBlclR5cGVJbmZvKiB0
eXBlLCBXb3JrCiAKIHZvaWQgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVyZW5jZSh2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHBhcmVudCwgY29uc3QgY2hhciogbmFtZSwgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IGNoaWxkKQogewotICAgIHBhcmVudC0+U2V0SGlkZGVuVmFsdWUoVjhIaWRk
ZW5Qcm9wZXJ0eU5hbWU6OmhpZGRlblJlZmVyZW5jZU5hbWUobmFtZSksIGNoaWxkKTsKKyAgICBz
ZXROYW1lZEhpZGRlblJlZmVyZW5jZShwYXJlbnQsIFY4SGlkZGVuUHJvcGVydHlOYW1lOjpoaWRk
ZW5SZWZlcmVuY2VOYW1lKG5hbWUpLCBjaGlsZCk7Cit9CisKK3ZvaWQgVjhET01XcmFwcGVyOjpz
ZXROYW1lZEhpZGRlblJlZmVyZW5jZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHBhcmVudCwgdjg6
OkhhbmRsZTx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY2hpbGQpCit7
CisgICAgcGFyZW50LT5TZXRIaWRkZW5WYWx1ZShuYW1lLCBjaGlsZCk7CiB9CiAKIHZvaWQgVjhE
T01XcmFwcGVyOjpzZXROYW1lZEhpZGRlbldpbmRvd1JlZmVyZW5jZShGcmFtZSogZnJhbWUsIGNv
bnN0IGNoYXIqIG5hbWUsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBqc09iamVjdCkKIHsKKyAgICBz
ZXROYW1lZEhpZGRlbldpbmRvd1JlZmVyZW5jZShmcmFtZSwgVjhIaWRkZW5Qcm9wZXJ0eU5hbWU6
OmhpZGRlblJlZmVyZW5jZU5hbWUobmFtZSksIGpzT2JqZWN0KTsKK30KKwordm9pZCBWOERPTVdy
YXBwZXI6OnNldE5hbWVkSGlkZGVuV2luZG93UmVmZXJlbmNlKEZyYW1lKiBmcmFtZSwgdjg6Okhh
bmRsZTx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4ganNPYmplY3QpCit7
CiAgICAgLy8gR2V0IERPTVdpbmRvdwogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsg
Ly8gT2JqZWN0IG1pZ2h0IGJlIGRldGFjaGVkIGZyb20gd2luZG93CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oCmluZGV4IGQzY2E1MWUwNjljMjA3NWY0ZGIyMzliYmI1
NzM5NTRmYTcyMWNkODYuLmY4ZmE4ZWQwZDQ0OTVkMGRkZWM1ZTIzODM5NTUzOGI2YjVjY2JlZWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oCkBAIC0xMTcsMTAg
KzExNywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vCiAgICAgICAgIC8vIEhl
bHBlciBmdW5jdGlvbnMgdG8gbWFrZSBzdXJlIHRoZSBjaGlsZCBvYmplY3Qgc3RheXMgYWxpdmUK
ICAgICAgICAgLy8gd2hpbGUgdGhlIHBhcmVudCBpcyBhbGl2ZS4gVXNpbmcgdGhlIG5hbWUgbW9y
ZSB0aGFuIG9uY2UKLSAgICAgICAgLy8gb3ZlcndyaXRlcyBwcmV2aW91cyByZWZlcmVuY2VzIG1h
a2luZyBpdCBwb3NzaWJsZSB0byBmcmVlCi0gICAgICAgIC8vIG9sZCBjaGlsZHJlbi4KKyAgICAg
ICAgLy8gb3ZlcndyaXRlcyBwcmV2aW91cyByZWZlcmVuY2VzIG1ha2luZyBpdCBwb3NzaWJsZSB0
byBmcmVlIG9sZCBjaGlsZHJlbi4KICAgICAgICAgc3RhdGljIHZvaWQgc2V0TmFtZWRIaWRkZW5S
ZWZlcmVuY2Uodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBwYXJlbnQsIGNvbnN0IGNoYXIqIG5hbWUs
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjaGlsZCk7CisgICAgICAgIHN0YXRpYyB2b2lkIHNldE5h
bWVkSGlkZGVuUmVmZXJlbmNlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gcGFyZW50LCB2ODo6SGFu
ZGxlPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjaGlsZCk7CiAgICAg
ICAgIHN0YXRpYyB2b2lkIHNldE5hbWVkSGlkZGVuV2luZG93UmVmZXJlbmNlKEZyYW1lKiwgY29u
c3QgY2hhciosIHY4OjpIYW5kbGU8djg6OlZhbHVlPik7CisgICAgICAgIHN0YXRpYyB2b2lkIHNl
dE5hbWVkSGlkZGVuV2luZG93UmVmZXJlbmNlKEZyYW1lKiwgdjg6OkhhbmRsZTx2ODo6U3RyaW5n
Piwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KTsKIAogICAgICAgICBzdGF0aWMgdjg6OkxvY2FsPHY4
OjpPYmplY3Q+IGluc3RhbnRpYXRlVjhPYmplY3QoVjhQcm94eSogcHJveHksIFdyYXBwZXJUeXBl
SW5mbyosIHZvaWQqIGltcGwpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOEhpZGRlblByb3BlcnR5TmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOEhpZGRlblByb3BlcnR5TmFtZS5jcHAKaW5kZXggOTNhYzc1MTc4NGIyNDk4YmFkNTI3MGM2
NTY3NzY3MDA1ZGI5MTE2Mi4uMjAzMjY5Yzk0OTUyMjFhMmNkOWQ2ZDU2Nzc3NGU3ODY1NWU1MmVm
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0
eU5hbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVy
dHlOYW1lLmNwcApAQCAtNDUsMjIgKzQ1LDIyIEBAIHY4OjpIYW5kbGU8djg6OlN0cmluZz4gVjhI
aWRkZW5Qcm9wZXJ0eU5hbWU6Om5hbWUoKSBcCiB7IFwKICAgICBWOEhpZGRlblByb3BlcnR5TmFt
ZSogaGlkZGVuUHJvcGVydHlOYW1lID0gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQo
KS0+aGlkZGVuUHJvcGVydHlOYW1lKCk7IFwKICAgICBpZiAoaGlkZGVuUHJvcGVydHlOYW1lLT5t
XyMjbmFtZS5Jc0VtcHR5KCkpIHsgXAotICAgICAgICBoaWRkZW5Qcm9wZXJ0eU5hbWUtPm1fIyNu
YW1lID0gY3JlYXRlU3RyaW5nKCJXZWJDb3JlOjpIaWRkZW5Qcm9wZXJ0eTo6IiBWOF9BU19TVFJJ
TkcobmFtZSkpOyBcCisgICAgICAgIGhpZGRlblByb3BlcnR5TmFtZS0+bV8jI25hbWUgPSBjcmVh
dGVTdHJpbmcoVjhfQVNfU1RSSU5HKG5hbWUpICI6V2ViQ29yZTpIaWRkZW5Qcm9wZXJ0eSIpOyBc
CiAgICAgfSBcCiAgICAgcmV0dXJuIGhpZGRlblByb3BlcnR5TmFtZS0+bV8jI25hbWU7IFwKIH0K
IAogVjhfSElEREVOX1BST1BFUlRJRVMoVjhfREVGSU5FX1BST1BFUlRZKTsKIAotc3RhdGljIGNv
bnN0IGNoYXIgaGlkZGVuUmVmZXJlbmNlTmFtZVByZWZpeFtdID0gIldlYkNvcmU6OkhpZGRlblJl
ZmVyZW5jZTo6IjsKK3N0YXRpYyBjb25zdCBjaGFyIGhpZGRlblJlZmVyZW5jZU5hbWVTdWZmaXhb
XSA9ICI6V2ViQ29yZTpIaWRkZW5SZWZlcmVuY2UiOwogCiB2ODo6SGFuZGxlPHY4OjpTdHJpbmc+
IFY4SGlkZGVuUHJvcGVydHlOYW1lOjpoaWRkZW5SZWZlcmVuY2VOYW1lKGNvbnN0IGNoYXIqIG5h
bWUpCiB7Ci0gICAgVmVjdG9yPGNoYXIsIDY0PiBwcmVmaXhlZE5hbWU7Ci0gICAgcHJlZml4ZWRO
YW1lLmFwcGVuZChoaWRkZW5SZWZlcmVuY2VOYW1lUHJlZml4LCBzaXplb2YoaGlkZGVuUmVmZXJl
bmNlTmFtZVByZWZpeCkgLSAxKTsKKyAgICBWZWN0b3I8Y2hhciwgNjQ+IHN1ZmZpeGVkTmFtZTsK
ICAgICBBU1NFUlQobmFtZSAmJiBzdHJsZW4obmFtZSkpOwotICAgIHByZWZpeGVkTmFtZS5hcHBl
bmQobmFtZSwgc3RybGVuKG5hbWUpKTsKLSAgICByZXR1cm4gdjg6OlN0cmluZzo6TmV3U3ltYm9s
KHByZWZpeGVkTmFtZS5kYXRhKCksIHN0YXRpY19jYXN0PGludD4ocHJlZml4ZWROYW1lLnNpemUo
KSkpOworICAgIHN1ZmZpeGVkTmFtZS5hcHBlbmQobmFtZSwgc3RybGVuKG5hbWUpKTsKKyAgICBz
dWZmaXhlZE5hbWUuYXBwZW5kKGhpZGRlblJlZmVyZW5jZU5hbWVTdWZmaXgsIHNpemVvZihoaWRk
ZW5SZWZlcmVuY2VOYW1lU3VmZml4KSAtIDEpOworICAgIHJldHVybiB2ODo6U3RyaW5nOjpOZXdT
eW1ib2woc3VmZml4ZWROYW1lLmRhdGEoKSwgc3RhdGljX2Nhc3Q8aW50PihzdWZmaXhlZE5hbWUu
c2l6ZSgpKSk7CiB9CiAKIHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+IFY4SGlkZGVuUHJvcGVy
dHlOYW1lOjpjcmVhdGVTdHJpbmcoY29uc3QgY2hhcioga2V5KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0eU5hbWUuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1lLmgKaW5kZXggZGViYTRhNTFkNzc4
MDc5MDkzMzI2N2I5MmQxZjY0MDJhMjc0ZjAzZi4uZTY3ZjJkOGM0MGM5OTIxNDMyNzhmNzc0NGUx
ZjZkNDkwYTg3OWNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhI
aWRkZW5Qcm9wZXJ0eU5hbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEhp
ZGRlblByb3BlcnR5TmFtZS5oCkBAIC00NSw4ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICBWKHRvU3RyaW5nU3RyaW5nKSBcCiAgICAgVihldmVudCkKIAotCi0gICAgY2xhc3MgVjhI
aWRkZW5Qcm9wZXJ0eU5hbWUgeworY2xhc3MgVjhIaWRkZW5Qcm9wZXJ0eU5hbWUgewogICAgIHB1
YmxpYzoKICAgICAgICAgVjhIaWRkZW5Qcm9wZXJ0eU5hbWUoKSB7IH0KICNkZWZpbmUgVjhfREVD
TEFSRV9QUk9QRVJUWShuYW1lKSBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6U3RyaW5nPiBuYW1lKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJp
bmdNYXBDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9N
U3RyaW5nTWFwQ3VzdG9tLmNwcAppbmRleCAyNzk5YWUyYzg3NGUzNGVjMzA5YWRmNjVmOGZkNzFm
YWVjNzA5ZTFlLi5hZTlhNjFkODUxMzYxMjdhYzFkMzYxOThhOTFmYzFkNTIyMjBjYWZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJpbmdNYXBD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0
cmluZ01hcEN1c3RvbS5jcHAKQEAgLTg0LDE5ICs4NCw0IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBWOERPTVN0cmluZ01hcDo6bmFtZWRQcm9wZXJ0eVNldHRlcih2ODo6TG9jYWw8djg6OlN0cmlu
Zz4KICAgICByZXR1cm4gdmFsdWU7CiB9CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KERP
TVN0cmluZ01hcCogaW1wbCkKLXsKLSAgICBpZiAoIWltcGwpCi0gICAgICAgIHJldHVybiB2ODo6
TnVsbCgpOwotICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IFY4RE9NU3RyaW5n
TWFwOjp3cmFwKGltcGwpOwotICAgIC8vIEFkZCBhIGhpZGRlbiByZWZlcmVuY2UgZnJvbSB0aGUg
ZWxlbWVudCB0byB0aGUgRE9NU3RyaW5nTWFwLgotICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBpbXBs
LT5lbGVtZW50KCk7Ci0gICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSAmJiBlbGVtZW50KSB7Ci0g
ICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBlbGVtZW50VmFsdWUgPSB0b1Y4KGVsZW1lbnQp
OwotICAgICAgICBpZiAoIWVsZW1lbnRWYWx1ZS5Jc0VtcHR5KCkgJiYgZWxlbWVudFZhbHVlLT5J
c09iamVjdCgpKQotICAgICAgICAgICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVy
ZW5jZShlbGVtZW50VmFsdWUuQXM8djg6Ok9iamVjdD4oKSwgImRvbVN0cmluZ01hcCIsIHdyYXBw
ZXIpOwotICAgIH0KLSAgICByZXR1cm4gd3JhcHBlcjsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9N
VG9rZW5MaXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OERPTVRva2VuTGlzdEN1c3RvbS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA4
MDUxYWJkNTU4ZGVmMWM2ZjYyOTY1NzE4MjgwMTMyMTIzMThlMzUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4RE9NVG9rZW5MaXN0Q3VzdG9tLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAq
Ci0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICog
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
LSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiVjhET01Ub2tlbkxpc3QuaCIKLQot
I2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgotI2luY2x1ZGUgIlY4QmluZGluZy5oIgotI2luY2x1
ZGUgIlY4RE9NV3JhcHBlci5oIgotI2luY2x1ZGUgIlY4RWxlbWVudC5oIgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLXY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KERPTVRva2VuTGlzdCogaW1w
bCkKLXsKLSAgICBpZiAoIWltcGwpCi0gICAgICAgIHJldHVybiB2ODo6TnVsbCgpOwotICAgIHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IFY4RE9NVG9rZW5MaXN0Ojp3cmFwKGltcGwp
OwotICAgIC8vIEFkZCBhIGhpZGRlbiByZWZlcmVuY2UgZnJvbSB0aGUgZWxlbWVudCB0byB0aGUg
RE9NVG9rZW5MaXN0LgotICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBpbXBsLT5lbGVtZW50KCk7Ci0g
ICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSAmJiBlbGVtZW50KSB7Ci0gICAgICAgIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBlbGVtZW50VmFsdWUgPSB0b1Y4KGVsZW1lbnQpOwotICAgICAgICBpZiAo
IWVsZW1lbnRWYWx1ZS5Jc0VtcHR5KCkgJiYgZWxlbWVudFZhbHVlLT5Jc09iamVjdCgpKQotICAg
ICAgICAgICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVyZW5jZShlbGVtZW50VmFs
dWUuQXM8djg6Ok9iamVjdD4oKSwgImRvbVRva2VuTGlzdCIsIHdyYXBwZXIpOwotICAgIH0KLSAg
ICByZXR1cm4gd3JhcHBlcjsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2RlTWFwQ3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9kZU1hcEN1
c3RvbS5jcHAKaW5kZXggNDc4MmRjYzMyMmQwNWFkZGQwNjY2ZWFlMWU5ODE3MWQyNGI5OTQ3OS4u
Yjk3ZWRhYzhmOTgyNTU2ODhjNWQ4YTQ4OGU0ODY0NTg3MDMzNDVmZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2RlTWFwQ3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVNYXBDdXN0
b20uY3BwCkBAIC03MSwxNiArNzEsNCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhOYW1lZE5v
ZGVNYXA6Om5hbWVkUHJvcGVydHlHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+CiAgICAgcmV0
dXJuIHRvVjgocmVzdWx0LnJlbGVhc2UoKSk7CiB9CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiB0
b1Y4KE5hbWVkTm9kZU1hcCogaW1wbCkKLXsKLSAgICBpZiAoIWltcGwpCi0gICAgICAgIHJldHVy
biB2ODo6TnVsbCgpOwotICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IFY4TmFt
ZWROb2RlTWFwOjp3cmFwKGltcGwpOwotICAgIC8vIEFkZCBhIGhpZGRlbiByZWZlcmVuY2UgZnJv
bSBuYW1lZCBub2RlIG1hcCB0byBpdHMgb3duZXIgbm9kZS4KLSAgICBFbGVtZW50KiBlbGVtZW50
ID0gaW1wbC0+ZWxlbWVudCgpOwotICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkgJiYgZWxlbWVu
dCkKLSAgICAgICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVyZW5jZSh3cmFwcGVy
LCAib3duZXJOb2RlIiwgdG9WOChlbGVtZW50KSk7Ci0gICAgcmV0dXJuIHdyYXBwZXI7Ci19Ci0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
T01TdHJpbmdNYXAuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVN0cmluZ01hcC5pZGwKaW5k
ZXggOTgwZDA0NGNkMDJhYjFhZjVmN2E5NmU3YTZlMmM1OTYzM2U4YzNkZi4uOGM0MTU3ZTFjNTY0
Mjk2MzgzNTYzYmEzYWFkN2M2MzA2N2M0Y2RmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RPTVN0cmluZ01hcC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVN0cmluZ01h
cC5pZGwKQEAgLTMwLDggKzMwLDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBOYW1lZEdldHRl
ciwKICAgICAgICAgQ3VzdG9tRGVsZXRlUHJvcGVydHksCiAgICAgICAgIEN1c3RvbUVudW1lcmF0
ZVByb3BlcnR5LAotICAgICAgICBDdXN0b21OYW1lZFNldHRlciwKLSAgICAgICAgVjhDdXN0b21U
b0pTT2JqZWN0CisgICAgICAgIEN1c3RvbU5hbWVkU2V0dGVyCiAgICAgXSBET01TdHJpbmdNYXAg
ewogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9OYW1lZE5vZGVNYXAu
aWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL05hbWVkTm9kZU1hcC5pZGwKaW5kZXggODg4MjBjMDE3
MmY1NjNjNjQ0NjY1NTMyMWNjNDVhOGRlZWI2NGFhYy4uMzMzNzg5ZGM0OTMwNDk0Yjk3NGQ5MzY2
M2ZiNWExYmI0MWM4NWQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05hbWVkTm9k
ZU1hcC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05hbWVkTm9kZU1hcC5pZGwKQEAgLTI0
LDggKzI0LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBKU0dlbmVyYXRlSXNSZWFjaGFibGU9
SW1wbEVsZW1lbnRSb290LAogICAgICAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKICAgICAgICAg
SW5kZXhlZEdldHRlciwKLSAgICAgICAgTmFtZWRHZXR0ZXIsCi0gICAgICAgIFY4Q3VzdG9tVG9K
U09iamVjdAorICAgICAgICBOYW1lZEdldHRlcgogICAgIF0gTmFtZWROb2RlTWFwIHsKIAogICAg
ICAgICBOb2RlIGdldE5hbWVkSXRlbShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBE
T01TdHJpbmcgbmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2Vu
TGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5pZGwKaW5kZXggNTVi
NjM2ZjdkN2E1YWIxYTYwMzM1NmFhMjJkN2Y2NGU5ODlhY2RlNi4uMDZhMzMxYjIwMTdkM2JiMWRm
MTJmNDk4NDU1YTVkYzlkZWNkZmU1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9E
T01Ub2tlbkxpc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0Lmlk
bApAQCAtMjYsOCArMjYsNyBAQCBtb2R1bGUgY29yZSB7CiAKICAgICBpbnRlcmZhY2UgWwogICAg
ICAgICBKU0dlbmVyYXRlSXNSZWFjaGFibGU9SW1wbEVsZW1lbnRSb290LAotICAgICAgICBJbmRl
eGVkR2V0dGVyLAotICAgICAgICBWOEN1c3RvbVRvSlNPYmplY3QKKyAgICAgICAgSW5kZXhlZEdl
dHRlcgogICAgIF0gRE9NVG9rZW5MaXN0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgbGVuZ3RoOwogICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1O
dWxsXSBET01TdHJpbmcgaXRlbShpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0OWFh
OTgyZDc0ZjcxOGRjNWMxMWVkOTViOTZhZTZkNWUxZjhhZjVjLi4zMzhkNjBiMGE4MGNmOTllMmNh
YzBhOTkxMWRiZTU0MWM5MmJiM2VkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDItMTYg
IEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIEFsbG93
IGJpbmRpbmdzIGZvciBhdHRyaWJ1dGVzIG9uIERPTSBub2RlcyB0byBhbHNvIHNldCBhIG5hbWVk
IGhpZGRlbiByZWZlcmVuY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4MDUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisKIDIw
MTItMDItMTYgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
W0Nocm9taXVtXSBPY2NsdXNpb24gdHJhY2tpbmcgd2l0aCBDU1MgZmlsdGVycwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4
IDUxODQ0MWEzMDJlMGQzYzNiNjg3MmU2NGYzNjg3YmJhMmZmNmU0MjIuLjU3MjUyNGIzYWQyZWRj
OTc3YjE3NGM2MTViYjhhMDRmOTI2MWIzMzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTYxNiw3ICs2MTYsNiBAQCBC
VUdXSzY2Mzc3IDogZmFzdC9kb20vU3R5bGVTaGVldC9nYy1pbmxpbmUtc3R5bGUtY3NzdmFsdWVz
Lmh0bWwgPSBURVhUCiBCVUdXSzY2Mzc3IDogZmFzdC9kb20vU3R5bGVTaGVldC9nYy1wYXJlbnQt
cnVsZS5odG1sID0gVEVYVAogQlVHV0s2NjM3NyA6IGZhc3QvZG9tL1N0eWxlU2hlZXQvZ2MtcGFy
ZW50LXN0eWxlc2hlZXQuaHRtbCA9IFRFWFQKIEJVR1dLNjYzNzcgOiBmYXN0L2RvbS9TdHlsZVNo
ZWV0L2djLXJ1bGUtY2hpbGRyZW4td3JhcHBlcnMuaHRtbCA9IFRFWFQKLUJVR1dLNjYzNzcgOiBm
YXN0L2RvbS9TdHlsZVNoZWV0L2djLXN0eWxlaGVldC13cmFwcGVyLnhodG1sID0gVEVYVAogCiAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogLy8gUEVORElORyBURVNUUyAoZm9ya2VkIHRvIHBlbmRpbmcvLCBuZWVkIHRv
IGJlIHNlbnQgdXBzdHJlYW0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127497</attachid>
            <date>2012-02-16 19:06:10 -0800</date>
            <delta_ts>2013-04-05 17:24:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78052-20120216190608.patch</filename>
            <type>text/plain</type>
            <size>20655</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4MDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYThlOTEyMWU2YzJjOGY5
ZGU2NjkwMDcyOWFhMzRhMTRlNmRjNTMxYi4uMTNhNmI4Zjg2MjQ4M2U5NGIxN2FiOWQ3NDIyM2Y3
ZGVmMDMxNzIyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTAyLTE2ICBFcmlr
IEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1Y4XSBBbGxvdyBiaW5k
aW5ncyBmb3IgYXR0cmlidXRlcyBvbiBET00gbm9kZXMgdG8gYWxzbyBzZXQgYSBuYW1lZCBoaWRk
ZW4gcmVmZXJlbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03ODA1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEJlZm9yZSB0aGlzIHBhdGNoIHRoZSBjb2RlIGdlbmVyYXRvciBkaWQgbm90IGFkZCB0aGUg
bmFtZWQgaGlkZGVuIHJlZmVyZW5jZSB3aGVuIHRoZSBkYXRhIG5vZGUKKyAgICAgICAgd2FzIGEg
RE9NIE5vZGUuIFRoaXMgbGVhZCB0byB1cyBoYXZpbmcgdG8gY3JlYXRlIGN1c3RvbSB0b1Y4IGJp
bmRpbmdzIGluIGEgZmV3IHBsYWNlcy4KKworICAgICAgICBUaGlzIG5vdyB1c2VzIGEgc3RhdGlj
IGxvY2FsIFY4IHN5bWJvbCB0byBtYWtlIGxvb2t1cCBmYXN0ZXIuCisKKyAgICAgICAgQ292ZXJl
ZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICog
VXNlVjguY21ha2U6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJhdGVOb3JtYWxBdHRy
R2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOEJpbmRpbmcuaDoKKyAgICAgICAgKFY4
UGVyc2lzdGVudFN5bWJvbEhvbGRlcik6CisgICAgICAgIFRoaXMgY2xhc3MgaXMgdXNlZCB0byBj
cmVhdGUgc3RhdGljIHJlZmVyZW5jZXMgdG8gVjggc3ltYm9scy4KKyAgICAgICAgKFdlYkNvcmU6
OlY4UGVyc2lzdGVudFN5bWJvbEhvbGRlcjo6VjhQZXJzaXN0ZW50U3ltYm9sSG9sZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlY4UGVyc2lzdGVudFN5bWJvbEhvbGRlcjo6c3ltYm9sKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKTog
QWxsb3cgcGFzc2luZyBpbiB2OCBzeW1ib2wgZGlyZWN0bHkgdG8gcmVkdWNlIG92ZXJoZWFkIG9m
IGNyZWF0aW5nIHRoZXNlLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpW
OERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuV2luZG93UmVmZXJlbmNlKTogRGl0dG8uCisgICAg
ICAgICogYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmg6CisgICAgICAgIChWOERPTVdyYXBwZXIp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1lLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VjhIaWRkZW5Qcm9wZXJ0eU5hbWU6Omhp
ZGRlblJlZmVyZW5jZU5hbWUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVy
dHlOYW1lLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3Vz
dG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhET01Ub2tlbkxpc3RDdXN0
b20uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9k
ZU1hcEN1c3RvbS5jcHA6CisgICAgICAgICogZG9tL0RPTVN0cmluZ01hcC5pZGw6CisgICAgICAg
ICogZG9tL05hbWVkTm9kZU1hcC5pZGw6CisgICAgICAgICogaHRtbC9ET01Ub2tlbkxpc3QuaWRs
OgorCiAyMDEyLTAyLTE2ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFtDaHJvbWl1bV0gT2NjbHVzaW9uIHRyYWNraW5nIHdpdGggQ1NTIGZpbHRlcnMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCmluZGV4IDEyNDcxYjJjNjcwMjc4MjNmZTc1ZmY5NThmZWU4YjlhYTJiNWYyNzcuLjIx
YzBlMDUxYTZiNTYxNWE1OTgxN2YyOTAzNWYzMDQ4ZjkyZDk3YmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAt
MTU4LDggKzE1OCw3IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0
ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOElu
amVjdGVkU2NyaXB0TWFuYWdlci5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhJ
bnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwIFwKLSAgICAgICAgYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcCBcCi0gICAgICAgIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOERPTVRva2VuTGlzdEN1c3RvbS5jcHAKKyAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcAogCiAgICAgU09VUkNFUyArPSBcCiAgICAgICAgIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlIGIvU291cmNlL1dlYkNvcmUvVXNl
VjguY21ha2UKaW5kZXggNTQ3NmQ5OTRkM2JlNzM4MTllMzUyYzZiOGQyMzkxMTQ1ZWI3OWEwNS4u
NDFmODM2ZDNhNDMzYWE1YmE4YmE1M2RhZjZjNTRmNjdkNWUwY2FmNSAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYkNvcmUvVXNlVjguY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvVXNlVjguY21ha2UK
QEAgLTgxLDcgKzgxLDYgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAogICAgIGJpbmRpbmdzL3Y4
L2N1c3RvbS9WOERPTUZvcm1EYXRhQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OERPTVN0cmluZ01hcEN1c3RvbS5jcHAKLSAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhET01Ub2tl
bkxpc3RDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9t
LmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcAogICAgIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOERlZGljYXRlZFdvcmtlckNvbnRleHRDdXN0b20uY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKaW5kZXggNmQ5OTY1OGQ0MTAxOTI3NTc5ZjlmNjA2MmI5Mzk5MzYyYzg5M2YwZi4u
ZTIwOTcwNWFkMjUzYTBhYjY3ZWE3NjhjN2JjNDE5Y2JhYzczNTEzZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQpAQCAtMTgyMCw3ICsxODIwLDYgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20v
VjhDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4RE9NRm9ybURhdGFDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9j
dXN0b20vVjhET01TdHJpbmdNYXBDdXN0b20uY3BwJywKLSAgICAgICAgICAgICdiaW5kaW5ncy92
OC9jdXN0b20vVjhET01Ub2tlbkxpc3RDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5n
cy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5n
cy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOERlZGljYXRlZFdvcmtlckNvbnRleHRDdXN0b20uY3BwJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXgg
ZmY3ZmI4ZDE4YzJiNjE4OWIwMzgwZjFhMTg3NjA2OGU4NGE2NTI3Mi4uM2UzZTA0NWE2ZjgxNWVm
MzQ4YTU3ZDU3NmEyNzE2ZTFiZmE1NmUwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTkxNiw3ICs5MTYsNyBAQCBFTkQK
ICAgICAjIFNwZWNpYWwgY2FzZSBmb3IgcmVhZG9ubHkgb3IgUmVwbGFjZWFibGUgYXR0cmlidXRl
cyAod2l0aCBhIGZldyBleGNlcHRpb25zKS4gVGhpcyBhdHRlbXB0cyB0byBlbnN1cmUgdGhhdCBK
UyB3cmFwcGVycyBkb24ndCBnZXQKICAgICAjIGdhcmJhZ2UtY29sbGVjdGVkIHByZW1hdHVyZWx5
IHdoZW4gdGhlaXIgbGlmZXRpbWUgaXMgc3Ryb25nbHkgdGllZCB0byB0aGVpciBvd25lci4gV2Ug
YWNjb21wbGlzaCB0aGlzIGJ5IGluc2VydGluZyBhIHJlZmVyZW5jZSB0bwogICAgICMgdGhlIG5l
d2x5IGNyZWF0ZWQgd3JhcHBlciBpbnRvIGFuIGludGVybmFsIGZpZWxkIG9mIHRoZSBob2xkZXIg
b2JqZWN0LgotICAgIGlmICghSXNOb2RlU3ViVHlwZSgkZGF0YU5vZGUpICYmICRhdHRyTmFtZSBu
ZSAic2VsZiIgJiYgKElzV3JhcHBlclR5cGUoJHJldHVyblR5cGUpICYmICgkYXR0cmlidXRlLT50
eXBlID1+IC9ecmVhZG9ubHkvIHx8ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IlJlcGxhY2VhYmxlIn0pCisgICAgaWYgKCRhdHRyTmFtZSBuZSAic2VsZiIgJiYg
KElzV3JhcHBlclR5cGUoJHJldHVyblR5cGUpICYmICgkYXR0cmlidXRlLT50eXBlID1+IC9ecmVh
ZG9ubHkvIHx8ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJl
cGxhY2VhYmxlIn0pCiAgICAgICAgICYmICRyZXR1cm5UeXBlIG5lICJFdmVudFRhcmdldCIgJiYg
JHJldHVyblR5cGUgbmUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIgJiYgJHJldHVyblR5cGUgbmUg
IkRPTVdpbmRvdyIgCiAgICAgICAgICYmICRyZXR1cm5UeXBlICF+IC9TVkcvICYmICRyZXR1cm5U
eXBlICF+IC9IVE1MLyAmJiAhSXNET01Ob2RlVHlwZSgkcmV0dXJuVHlwZSkpKSB7CiAgICAgICAg
IEFkZEluY2x1ZGVzRm9yVHlwZSgkcmV0dXJuVHlwZSk7CkBAIC05MjYsMTIgKzkyNiwxNSBAQCBF
TkQKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gd3JhcHBlciA9IHJlc3VsdC5nZXQoKSA/IFY4JHtyZXR1cm5UeXBlfTo6ZXhpc3RpbmdX
cmFwcGVyKHJlc3VsdC5nZXQoKSkgOiB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KCk7XG4iKTsKICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpZiAod3JhcHBlci5Jc0VtcHR5KCkp
IHtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICB3cmFwcGVy
ID0gdG9WOChyZXN1bHQuZ2V0KCkpO1xuIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50RGVj
bHMsICIgICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpXG4iKTsKKyAgICAgICAgcHVzaChA
aW1wbENvbnRlbnREZWNscywgIiAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkge1xuIik7
CiAgICAgICAgIGlmICgkZGF0YU5vZGUtPm5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKLSAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgICAgICBWOERPTVdyYXBwZXI6OnNl
dE5hbWVkSGlkZGVuV2luZG93UmVmZXJlbmNlKGltcC0+ZnJhbWUoKSwgXCIke2F0dHJOYW1lfVwi
LCB3cmFwcGVyKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAg
ICAgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoVjhQZXJzaXN0ZW50U3ltYm9sSG9sZGVyLCBz
eW1ib2xIb2xkZXIsIChcIiR7YXR0ck5hbWV9XCIpKTtcbiIpOworICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnREZWNscywgIiAgICAgICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0TmFtZWRIaWRk
ZW5XaW5kb3dSZWZlcmVuY2UoaW1wLT5mcmFtZSgpLCBzeW1ib2xIb2xkZXIuc3ltYm9sKCksIHdy
YXBwZXIpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudERlY2xzLCAiICAgICAgICAgICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVy
ZW5jZShpbmZvLkhvbGRlcigpLCBcIiR7YXR0ck5hbWV9XCIsIHdyYXBwZXIpO1xuIik7CisgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICAgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChWOFBlcnNpc3RlbnRTeW1ib2xIb2xkZXIsIHN5bWJvbEhvbGRlciwgKFwiJHthdHRy
TmFtZX1cIikpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAg
ICAgICAgICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVyZW5jZShpbmZvLkhvbGRl
cigpLCBzeW1ib2xIb2xkZXIuc3ltYm9sKCksIHdyYXBwZXIpO1xuIik7CiAgICAgICAgIH0KKyAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgfVxuIik7CiAgICAgICAgIHB1
c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgfVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250
ZW50RGVjbHMsICIgICAgcmV0dXJuIHdyYXBwZXI7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnREZWNscywgIn1cblxuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOEJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5o
CmluZGV4IDBiYjVlOTM2YjM3OTc1M2UxN2RiZTk0NDU3YTZkNGEzNWQwYjY0YWUuLjRiNDM4OWM1
MDFhMGZhZDU3Y2EwMmVmZjZlNmExYmIxOTE1NTcwNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4QmluZGluZy5oCkBAIC04OSw2ICs4OSwxOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBtX2xhc3RTdHJpbmdJbXBsOwogICAgIH07CiAKKyAg
ICBjbGFzcyBWOFBlcnNpc3RlbnRTeW1ib2xIb2xkZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAg
VjhQZXJzaXN0ZW50U3ltYm9sSG9sZGVyKGNvbnN0IGNoYXIqIG5hbWUpCisgICAgICAgICAgICA6
IG1fc3ltYm9sKHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+OjpOZXcoVjhIaWRkZW5Qcm9wZXJ0
eU5hbWU6OmhpZGRlblJlZmVyZW5jZU5hbWUobmFtZSkpKQorICAgICAgICB7CisgICAgICAgIH0K
KworICAgICAgICB2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IHN5bWJvbCgpIHsgcmV0dXJuIG1fc3lt
Ym9sOyB9CisgICAgcHJpdmF0ZToKKyAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4g
bV9zeW1ib2w7CisgICAgfTsKKwogICAgIGNsYXNzIENvbnN0cnVjdG9yTW9kZTsKIAogI2lmbmRl
ZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3Jh
cHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCmlu
ZGV4IDRjZjNjOWE0NmNhNmUwM2MzYTg5MmQ1Y2Y2NmRkZDAwNDI2ZGI2M2UuLjM4ZmMxODc0NWI1
ZDc5NDllNWJjZGM0ODlkMDdkNTYzZGIyZDUyZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhET01XcmFwcGVyLmNwcApAQCAtMTc2LDExICsxNzYsMjEgQEAgdjg6OkxvY2FsPHY4
OjpGdW5jdGlvbj4gVjhET01XcmFwcGVyOjpnZXRDb25zdHJ1Y3RvcihXcmFwcGVyVHlwZUluZm8q
IHR5cGUsIFdvcmsKIAogdm9pZCBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNl
KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gcGFyZW50LCBjb25zdCBjaGFyKiBuYW1lLCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gY2hpbGQpCiB7Ci0gICAgcGFyZW50LT5TZXRIaWRkZW5WYWx1ZShWOEhp
ZGRlblByb3BlcnR5TmFtZTo6aGlkZGVuUmVmZXJlbmNlTmFtZShuYW1lKSwgY2hpbGQpOworICAg
IHNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKHBhcmVudCwgVjhIaWRkZW5Qcm9wZXJ0eU5hbWU6Omhp
ZGRlblJlZmVyZW5jZU5hbWUobmFtZSksIGNoaWxkKTsKK30KKwordm9pZCBWOERPTVdyYXBwZXI6
OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gcGFyZW50LCB2
ODo6SGFuZGxlPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjaGlsZCkK
K3sKKyAgICBwYXJlbnQtPlNldEhpZGRlblZhbHVlKG5hbWUsIGNoaWxkKTsKIH0KIAogdm9pZCBW
OERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuV2luZG93UmVmZXJlbmNlKEZyYW1lKiBmcmFtZSwg
Y29uc3QgY2hhciogbmFtZSwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGpzT2JqZWN0KQogeworICAg
IHNldE5hbWVkSGlkZGVuV2luZG93UmVmZXJlbmNlKGZyYW1lLCBWOEhpZGRlblByb3BlcnR5TmFt
ZTo6aGlkZGVuUmVmZXJlbmNlTmFtZShuYW1lKSwganNPYmplY3QpOworfQorCit2b2lkIFY4RE9N
V3JhcHBlcjo6c2V0TmFtZWRIaWRkZW5XaW5kb3dSZWZlcmVuY2UoRnJhbWUqIGZyYW1lLCB2ODo6
SGFuZGxlPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBqc09iamVjdCkK
K3sKICAgICAvLyBHZXQgRE9NV2luZG93CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJu
OyAvLyBPYmplY3QgbWlnaHQgYmUgZGV0YWNoZWQgZnJvbSB3aW5kb3cKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgKaW5kZXggZDNjYTUxZTA2OWMyMDc1ZjRkYjIzOWJi
YjU3Mzk1NGZhNzIxY2Q4Ni4uZjhmYThlZDBkNDQ5NWQwZGRlYzVlMjM4Mzk1NTM4YjZiNWNjYmVl
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgKQEAgLTExNywx
MCArMTE3LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8KICAgICAgICAgLy8g
SGVscGVyIGZ1bmN0aW9ucyB0byBtYWtlIHN1cmUgdGhlIGNoaWxkIG9iamVjdCBzdGF5cyBhbGl2
ZQogICAgICAgICAvLyB3aGlsZSB0aGUgcGFyZW50IGlzIGFsaXZlLiBVc2luZyB0aGUgbmFtZSBt
b3JlIHRoYW4gb25jZQotICAgICAgICAvLyBvdmVyd3JpdGVzIHByZXZpb3VzIHJlZmVyZW5jZXMg
bWFraW5nIGl0IHBvc3NpYmxlIHRvIGZyZWUKLSAgICAgICAgLy8gb2xkIGNoaWxkcmVuLgorICAg
ICAgICAvLyBvdmVyd3JpdGVzIHByZXZpb3VzIHJlZmVyZW5jZXMgbWFraW5nIGl0IHBvc3NpYmxl
IHRvIGZyZWUgb2xkIGNoaWxkcmVuLgogICAgICAgICBzdGF0aWMgdm9pZCBzZXROYW1lZEhpZGRl
blJlZmVyZW5jZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHBhcmVudCwgY29uc3QgY2hhciogbmFt
ZSwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNoaWxkKTsKKyAgICAgICAgc3RhdGljIHZvaWQgc2V0
TmFtZWRIaWRkZW5SZWZlcmVuY2Uodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBwYXJlbnQsIHY4OjpI
YW5kbGU8djg6OlN0cmluZz4gbmFtZSwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNoaWxkKTsKICAg
ICAgICAgc3RhdGljIHZvaWQgc2V0TmFtZWRIaWRkZW5XaW5kb3dSZWZlcmVuY2UoRnJhbWUqLCBj
b25zdCBjaGFyKiwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KTsKKyAgICAgICAgc3RhdGljIHZvaWQg
c2V0TmFtZWRIaWRkZW5XaW5kb3dSZWZlcmVuY2UoRnJhbWUqLCB2ODo6SGFuZGxlPHY4OjpTdHJp
bmc+LCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4pOwogCiAgICAgICAgIHN0YXRpYyB2ODo6TG9jYWw8
djg6Ok9iamVjdD4gaW5zdGFudGlhdGVWOE9iamVjdChWOFByb3h5KiBwcm94eSwgV3JhcHBlclR5
cGVJbmZvKiwgdm9pZCogaW1wbCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1lLmNwcAppbmRleCA5M2FjNzUxNzg0YjI0OThiYWQ1Mjcw
YzY1Njc3NjcwMDVkYjkxMTYyLi4yMDMyNjljOTQ5NTIyMWEyY2Q5ZDZkNTY3Nzc0ZTc4NjU1ZTUy
ZWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEhpZGRlblByb3Bl
cnR5TmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9w
ZXJ0eU5hbWUuY3BwCkBAIC00NSwyMiArNDUsMjIgQEAgdjg6OkhhbmRsZTx2ODo6U3RyaW5nPiBW
OEhpZGRlblByb3BlcnR5TmFtZTo6bmFtZSgpIFwKIHsgXAogICAgIFY4SGlkZGVuUHJvcGVydHlO
YW1lKiBoaWRkZW5Qcm9wZXJ0eU5hbWUgPSBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6Y3VycmVu
dCgpLT5oaWRkZW5Qcm9wZXJ0eU5hbWUoKTsgXAogICAgIGlmIChoaWRkZW5Qcm9wZXJ0eU5hbWUt
Pm1fIyNuYW1lLklzRW1wdHkoKSkgeyBcCi0gICAgICAgIGhpZGRlblByb3BlcnR5TmFtZS0+bV8j
I25hbWUgPSBjcmVhdGVTdHJpbmcoIldlYkNvcmU6OkhpZGRlblByb3BlcnR5OjoiIFY4X0FTX1NU
UklORyhuYW1lKSk7IFwKKyAgICAgICAgaGlkZGVuUHJvcGVydHlOYW1lLT5tXyMjbmFtZSA9IGNy
ZWF0ZVN0cmluZyhWOF9BU19TVFJJTkcobmFtZSkgIjpXZWJDb3JlOkhpZGRlblByb3BlcnR5Iik7
IFwKICAgICB9IFwKICAgICByZXR1cm4gaGlkZGVuUHJvcGVydHlOYW1lLT5tXyMjbmFtZTsgXAog
fQogCiBWOF9ISURERU5fUFJPUEVSVElFUyhWOF9ERUZJTkVfUFJPUEVSVFkpOwogCi1zdGF0aWMg
Y29uc3QgY2hhciBoaWRkZW5SZWZlcmVuY2VOYW1lUHJlZml4W10gPSAiV2ViQ29yZTo6SGlkZGVu
UmVmZXJlbmNlOjoiOworc3RhdGljIGNvbnN0IGNoYXIgaGlkZGVuUmVmZXJlbmNlTmFtZVN1ZmZp
eFtdID0gIjpXZWJDb3JlOkhpZGRlblJlZmVyZW5jZSI7CiAKIHY4OjpIYW5kbGU8djg6OlN0cmlu
Zz4gVjhIaWRkZW5Qcm9wZXJ0eU5hbWU6OmhpZGRlblJlZmVyZW5jZU5hbWUoY29uc3QgY2hhciog
bmFtZSkKIHsKLSAgICBWZWN0b3I8Y2hhciwgNjQ+IHByZWZpeGVkTmFtZTsKLSAgICBwcmVmaXhl
ZE5hbWUuYXBwZW5kKGhpZGRlblJlZmVyZW5jZU5hbWVQcmVmaXgsIHNpemVvZihoaWRkZW5SZWZl
cmVuY2VOYW1lUHJlZml4KSAtIDEpOworICAgIFZlY3RvcjxjaGFyLCA2ND4gc3VmZml4ZWROYW1l
OwogICAgIEFTU0VSVChuYW1lICYmIHN0cmxlbihuYW1lKSk7Ci0gICAgcHJlZml4ZWROYW1lLmFw
cGVuZChuYW1lLCBzdHJsZW4obmFtZSkpOwotICAgIHJldHVybiB2ODo6U3RyaW5nOjpOZXdTeW1i
b2wocHJlZml4ZWROYW1lLmRhdGEoKSwgc3RhdGljX2Nhc3Q8aW50PihwcmVmaXhlZE5hbWUuc2l6
ZSgpKSk7CisgICAgc3VmZml4ZWROYW1lLmFwcGVuZChuYW1lLCBzdHJsZW4obmFtZSkpOworICAg
IHN1ZmZpeGVkTmFtZS5hcHBlbmQoaGlkZGVuUmVmZXJlbmNlTmFtZVN1ZmZpeCwgc2l6ZW9mKGhp
ZGRlblJlZmVyZW5jZU5hbWVTdWZmaXgpIC0gMSk7CisgICAgcmV0dXJuIHY4OjpTdHJpbmc6Ok5l
d1N5bWJvbChzdWZmaXhlZE5hbWUuZGF0YSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHN1ZmZpeGVkTmFt
ZS5zaXplKCkpKTsKIH0KIAogdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4gVjhIaWRkZW5Qcm9w
ZXJ0eU5hbWU6OmNyZWF0ZVN0cmluZyhjb25zdCBjaGFyKiBrZXkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEhpZGRlblByb3BlcnR5TmFtZS5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0eU5hbWUuaAppbmRleCBkZWJhNGE1MWQ3
NzgwNzkwOTMzMjY3YjkyZDFmNjQwMmEyNzRmMDNmLi5lNjdmMmQ4YzQwYzk5MjE0MzI3OGY3NzQ0
ZTFmNmQ0OTBhODc5Y2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OEhpZGRlblByb3BlcnR5TmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
SGlkZGVuUHJvcGVydHlOYW1lLmgKQEAgLTQ1LDggKzQ1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIFYodG9TdHJpbmdTdHJpbmcpIFwKICAgICBWKGV2ZW50KQogCi0KLSAgICBjbGFzcyBW
OEhpZGRlblByb3BlcnR5TmFtZSB7CitjbGFzcyBWOEhpZGRlblByb3BlcnR5TmFtZSB7CiAgICAg
cHVibGljOgogICAgICAgICBWOEhpZGRlblByb3BlcnR5TmFtZSgpIHsgfQogI2RlZmluZSBWOF9E
RUNMQVJFX1BST1BFUlRZKG5hbWUpIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IG5hbWUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0
cmluZ01hcEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhE
T01TdHJpbmdNYXBDdXN0b20uY3BwCmluZGV4IDI3OTlhZTJjODc0ZTM0ZWMzMDlhZGY2NWY4ZmQ3
MWZhZWM3MDllMWUuLmFlOWE2MWQ4NTEzNjEyN2FjMWQzNjE5OGE5MWZjMWQ1MjIyMGNhZmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmluZ01h
cEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9N
U3RyaW5nTWFwQ3VzdG9tLmNwcApAQCAtODQsMTkgKzg0LDQgQEAgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IFY4RE9NU3RyaW5nTWFwOjpuYW1lZFByb3BlcnR5U2V0dGVyKHY4OjpMb2NhbDx2ODo6U3Ry
aW5nPgogICAgIHJldHVybiB2YWx1ZTsKIH0KIAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgo
RE9NU3RyaW5nTWFwKiBpbXBsKQotewotICAgIGlmICghaW1wbCkKLSAgICAgICAgcmV0dXJuIHY4
OjpOdWxsKCk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gVjhET01TdHJp
bmdNYXA6OndyYXAoaW1wbCk7Ci0gICAgLy8gQWRkIGEgaGlkZGVuIHJlZmVyZW5jZSBmcm9tIHRo
ZSBlbGVtZW50IHRvIHRoZSBET01TdHJpbmdNYXAuCi0gICAgRWxlbWVudCogZWxlbWVudCA9IGlt
cGwtPmVsZW1lbnQoKTsKLSAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpICYmIGVsZW1lbnQpIHsK
LSAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGVsZW1lbnRWYWx1ZSA9IHRvVjgoZWxlbWVu
dCk7Ci0gICAgICAgIGlmICghZWxlbWVudFZhbHVlLklzRW1wdHkoKSAmJiBlbGVtZW50VmFsdWUt
PklzT2JqZWN0KCkpCi0gICAgICAgICAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVm
ZXJlbmNlKGVsZW1lbnRWYWx1ZS5Bczx2ODo6T2JqZWN0PigpLCAiZG9tU3RyaW5nTWFwIiwgd3Jh
cHBlcik7Ci0gICAgfQotICAgIHJldHVybiB3cmFwcGVyOwotfQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhE
T01Ub2tlbkxpc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4RE9NVG9rZW5MaXN0Q3VzdG9tLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDgwNTFhYmQ1NThkZWYxYzZmNjI5NjU3MTgyODAxMzIxMjMxOGUzNS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhET01Ub2tlbkxpc3RDdXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTYg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0Ogot
ICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0g
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJWOERPTVRva2VuTGlzdC5oIgot
Ci0jaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCi0jaW5jbHVkZSAiVjhCaW5kaW5nLmgiCi0jaW5j
bHVkZSAiVjhET01XcmFwcGVyLmgiCi0jaW5jbHVkZSAiVjhFbGVtZW50LmgiCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoRE9NVG9rZW5MaXN0KiBp
bXBsKQotewotICAgIGlmICghaW1wbCkKLSAgICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7Ci0gICAg
djg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gVjhET01Ub2tlbkxpc3Q6OndyYXAoaW1w
bCk7Ci0gICAgLy8gQWRkIGEgaGlkZGVuIHJlZmVyZW5jZSBmcm9tIHRoZSBlbGVtZW50IHRvIHRo
ZSBET01Ub2tlbkxpc3QuCi0gICAgRWxlbWVudCogZWxlbWVudCA9IGltcGwtPmVsZW1lbnQoKTsK
LSAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpICYmIGVsZW1lbnQpIHsKLSAgICAgICAgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IGVsZW1lbnRWYWx1ZSA9IHRvVjgoZWxlbWVudCk7Ci0gICAgICAgIGlm
ICghZWxlbWVudFZhbHVlLklzRW1wdHkoKSAmJiBlbGVtZW50VmFsdWUtPklzT2JqZWN0KCkpCi0g
ICAgICAgICAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKGVsZW1lbnRW
YWx1ZS5Bczx2ODo6T2JqZWN0PigpLCAiZG9tVG9rZW5MaXN0Iiwgd3JhcHBlcik7Ci0gICAgfQot
ICAgIHJldHVybiB3cmFwcGVyOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVNYXBDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2RlTWFw
Q3VzdG9tLmNwcAppbmRleCA0NzgyZGNjMzIyZDA1YWRkZDA2NjZlYWUxZTk4MTcxZDI0Yjk5NDc5
Li5iOTdlZGFjOGY5ODI1NTY4OGM1ZDhhNDg4ZTQ4NjQ1ODcwMzM0NWZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVNYXBDdXN0b20uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9kZU1hcEN1
c3RvbS5jcHAKQEAgLTcxLDE2ICs3MSw0IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOE5hbWVk
Tm9kZU1hcDo6bmFtZWRQcm9wZXJ0eUdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4KICAgICBy
ZXR1cm4gdG9WOChyZXN1bHQucmVsZWFzZSgpKTsKIH0KIAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IHRvVjgoTmFtZWROb2RlTWFwKiBpbXBsKQotewotICAgIGlmICghaW1wbCkKLSAgICAgICAgcmV0
dXJuIHY4OjpOdWxsKCk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gVjhO
YW1lZE5vZGVNYXA6OndyYXAoaW1wbCk7Ci0gICAgLy8gQWRkIGEgaGlkZGVuIHJlZmVyZW5jZSBm
cm9tIG5hbWVkIG5vZGUgbWFwIHRvIGl0cyBvd25lciBub2RlLgotICAgIEVsZW1lbnQqIGVsZW1l
bnQgPSBpbXBsLT5lbGVtZW50KCk7Ci0gICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSAmJiBlbGVt
ZW50KQotICAgICAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKHdyYXBw
ZXIsICJvd25lck5vZGUiLCB0b1Y4KGVsZW1lbnQpKTsKLSAgICByZXR1cm4gd3JhcHBlcjsKLX0K
LQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RPTVN0cmluZ01hcC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NU3RyaW5nTWFwLmlkbApp
bmRleCA5ODBkMDQ0Y2QwMmFiMWFmNWY3YTk2ZTdhNmUyYzU5NjMzZThjM2RmLi44YzQxNTdlMWM1
NjQyOTYzODM1NjNiYTNhYWQ3YzYzMDY3YzRjZGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NU3RyaW5nTWFwLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NU3RyaW5n
TWFwLmlkbApAQCAtMzAsOCArMzAsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIE5hbWVkR2V0
dGVyLAogICAgICAgICBDdXN0b21EZWxldGVQcm9wZXJ0eSwKICAgICAgICAgQ3VzdG9tRW51bWVy
YXRlUHJvcGVydHksCi0gICAgICAgIEN1c3RvbU5hbWVkU2V0dGVyLAotICAgICAgICBWOEN1c3Rv
bVRvSlNPYmplY3QKKyAgICAgICAgQ3VzdG9tTmFtZWRTZXR0ZXIKICAgICBdIERPTVN0cmluZ01h
cCB7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05hbWVkTm9kZU1h
cC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTmFtZWROb2RlTWFwLmlkbAppbmRleCA4ODgyMGMw
MTcyZjU2M2M2NDQ2NjU1MzIxY2M0NWE4ZGVlYjY0YWFjLi4zMzM3ODlkYzQ5MzA0OTRiOTc0ZDkz
NjYzZmI1YTFiYjQxYzg1ZDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTmFtZWRO
b2RlTWFwLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTmFtZWROb2RlTWFwLmlkbApAQCAt
MjQsOCArMjQsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIEpTR2VuZXJhdGVJc1JlYWNoYWJs
ZT1JbXBsRWxlbWVudFJvb3QsCiAgICAgICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAogICAgICAg
ICBJbmRleGVkR2V0dGVyLAotICAgICAgICBOYW1lZEdldHRlciwKLSAgICAgICAgVjhDdXN0b21U
b0pTT2JqZWN0CisgICAgICAgIE5hbWVkR2V0dGVyCiAgICAgXSBOYW1lZE5vZGVNYXAgewogCiAg
ICAgICAgIE5vZGUgZ2V0TmFtZWRJdGVtKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IERPTVN0cmluZyBuYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9r
ZW5MaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmlkbAppbmRleCA1
NWI2MzZmN2Q3YTVhYjFhNjAzMzU2YWEyMmQ3ZjY0ZTk4OWFjZGU2Li4wNmEzMzFiMjAxN2QzYmIx
ZGYxMmY0OTg0NTVhNWRjOWRlY2RmZTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RPTVRva2VuTGlzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3Qu
aWRsCkBAIC0yNiw4ICsyNiw3IEBAIG1vZHVsZSBjb3JlIHsKIAogICAgIGludGVyZmFjZSBbCiAg
ICAgICAgIEpTR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsRWxlbWVudFJvb3QsCi0gICAgICAgIElu
ZGV4ZWRHZXR0ZXIsCi0gICAgICAgIFY4Q3VzdG9tVG9KU09iamVjdAorICAgICAgICBJbmRleGVk
R2V0dGVyCiAgICAgXSBET01Ub2tlbkxpc3QgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
dW5zaWduZWQgbG9uZyBsZW5ndGg7CiAgICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0Fz
PU51bGxdIERPTVN0cmluZyBpdGVtKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQ5
YWE5ODJkNzRmNzE4ZGM1YzExZWQ5NWI5NmFlNmQ1ZTFmOGFmNWMuLjMzOGQ2MGIwYTgwY2Y5OWUy
Y2FjMGE5OTExZGJlNTQxYzkyYmIzZWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMi0wMi0x
NiAgRXJpayBBcnZpZHNzb24gIDxhcnZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtWOF0gQWxs
b3cgYmluZGluZ3MgZm9yIGF0dHJpYnV0ZXMgb24gRE9NIG5vZGVzIHRvIGFsc28gc2V0IGEgbmFt
ZWQgaGlkZGVuIHJlZmVyZW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzgwNTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKwog
MjAxMi0wMi0xNiAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBbQ2hyb21pdW1dIE9jY2x1c2lvbiB0cmFja2luZyB3aXRoIENTUyBmaWx0ZXJzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5k
ZXggNTE4NDQxYTMwMmUwZDNjM2I2ODcyZTY0ZjM2ODdiYmEyZmY2ZTQyMi4uNTcyNTI0YjNhZDJl
ZGM5NzdiMTc0YzYxNWJiOGEwNGY5MjYxYjMzNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtNjE2LDcgKzYxNiw2IEBA
IEJVR1dLNjYzNzcgOiBmYXN0L2RvbS9TdHlsZVNoZWV0L2djLWlubGluZS1zdHlsZS1jc3N2YWx1
ZXMuaHRtbCA9IFRFWFQKIEJVR1dLNjYzNzcgOiBmYXN0L2RvbS9TdHlsZVNoZWV0L2djLXBhcmVu
dC1ydWxlLmh0bWwgPSBURVhUCiBCVUdXSzY2Mzc3IDogZmFzdC9kb20vU3R5bGVTaGVldC9nYy1w
YXJlbnQtc3R5bGVzaGVldC5odG1sID0gVEVYVAogQlVHV0s2NjM3NyA6IGZhc3QvZG9tL1N0eWxl
U2hlZXQvZ2MtcnVsZS1jaGlsZHJlbi13cmFwcGVycy5odG1sID0gVEVYVAotQlVHV0s2NjM3NyA6
IGZhc3QvZG9tL1N0eWxlU2hlZXQvZ2Mtc3R5bGVoZWV0LXdyYXBwZXIueGh0bWwgPSBURVhUCiAK
IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCiAvLyBQRU5ESU5HIFRFU1RTIChmb3JrZWQgdG8gcGVuZGluZy8sIG5lZWQg
dG8gYmUgc2VudCB1cHN0cmVhbSkK
</data>
<flag name="commit-queue"
          id="129743"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>