<?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>112477</bug_id>
          
          <creation_ts>2013-03-15 16:19:39 -0700</creation_ts>
          <short_desc>Potentially unsafe register allocations in DFG code generation</short_desc>
          <delta_ts>2013-03-18 20:59:44 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>abecsi</cc>
    
    <cc>ggaren</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>856387</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-03-15 16:19:39 -0700</bug_when>
    <thetext>A register that is allocated via GPRTemporary within one side or the other of an if () {} else {} is unsafe.  The register allocation can cause a spill on the one path that doesn&apos;t happen on the other path.  A subsequent use of the spilled register will load from the spilled location.

This was the root of https://bugs.webkit.org/show_bug.cgi?id=111777 - &quot;Crash when updating predictions below JSC::arrayProtoFuncForEach on tuaw.com article&quot;

I looked at the uses of GPRResult and GPRTemporary objects and found the following possibly similar issues:
   GPRTemporary structure(this) in SpeculativeJIT::compileObjectOrOtherLogicalNot for both DFGSpeculativeJIT32_64.cpp (~1598) and DFGSpeculativeJIT64.cpp (~1612)
   GPRTemporary structure(this) in SpeculativeJIT::compileObjectToObjectOrOtherEquality for both DFGSpeculativeJIT32_64.cpp (~1387) and DFGSpeculativeJIT64.cpp (~1411)
   GPRTemporary structure(this) in SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality for both DFGSpeculativeJIT32_64.cpp (~1488) and DFGSpeculativeJIT64.cpp (~1509)

Tracked also in &lt;rdar://problem/13406093&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856390</commentid>
    <comment_count>1</comment_count>
      <attachid>193397</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-03-15 16:28:20 -0700</bug_when>
    <thetext>Created attachment 193397
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856408</commentid>
    <comment_count>2</comment_count>
      <attachid>193397</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-03-15 16:56:33 -0700</bug_when>
    <thetext>Comment on attachment 193397
Patch

Attachment 193397 did not pass qt-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/17060952</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856418</commentid>
    <comment_count>3</comment_count>
      <attachid>193402</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-03-15 17:08:02 -0700</bug_when>
    <thetext>Created attachment 193402
Speculative patch for Qt build failure

Added initialization to InvalidGPRReg for structureGPR in three places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856590</commentid>
    <comment_count>4</comment_count>
      <attachid>193402</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-03-16 12:02:34 -0700</bug_when>
    <thetext>Comment on attachment 193402
Speculative patch for Qt build failure

Why was it wrong before?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857278</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-03-18 10:31:51 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 193402 [details])
&gt; Why was it wrong before?

Compiler error for uninitialized variable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857350</commentid>
    <comment_count>6</comment_count>
      <attachid>193402</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-03-18 11:32:54 -0700</bug_when>
    <thetext>Comment on attachment 193402
Speculative patch for Qt build failure

View in context: https://bugs.webkit.org/attachment.cgi?id=193402&amp;action=review

r=me with one change suggested below:

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:1609
&gt; +    GPRTemporary structure;
&gt; +    GPRReg structureGPR = InvalidGPRReg;
&gt; +
&gt; +    if (!m_jit.graph().globalObjectFor(m_currentNode-&gt;codeOrigin)-&gt;masqueradesAsUndefinedWatchpoint()-&gt;isStillValid()) {
&gt; +        GPRTemporary realStructure(this); // Only allocate on this path, before the branch
&gt; +        structure.adopt(realStructure);
&gt; +        structureGPR = structure.gpr();
&gt; +    }

Let&apos;s use this model everywhere -- that way, we&apos;re always allocating our registers at the top of the function, and it&apos;s clearer that we got this right.

Let&apos;s update this comment so it&apos;s clearer why we&apos;re doing this. Something like, &quot;The masquerades as undefined case will use the structure register, so allocate it here. Do this at the top of the function to avoid branching around a register allocation.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857364</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-03-18 11:39:28 -0700</bug_when>
    <thetext>&gt; +    if (!m_jit.graph().globalObjectFor(m_currentNode-&gt;codeOrigin)-&gt;masqueradesAsUndefinedWatchpoint()-&gt;isStillValid()) {

You mentioned that you were worried about this cost of this line of code. Let&apos;s put the result in a local variable and reuse it. That will resolve the cost, and read better too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857402</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-03-18 12:14:05 -0700</bug_when>
    <thetext>Committed r146100: &lt;http://trac.webkit.org/changeset/146100&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857876</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-18 20:15:37 -0700</bug_when>
    <thetext>Is it possible that this caused 20% memory regression on Mac?

https://perf.webkit.org/#mode=charts&amp;chartList=%5B%5B%22Mac%20MountainLion%22%2C%22Parser%2Fhtml5-full-render%3AJSHeap%22%5D%2C%5B%22Mac%20Lion%22%2C%22Parser%2Fhtml5-full-render%3AJSHeap%22%5D%5D&amp;zoom=%5B1363572327935.7915%2C1363623676769.9104%5D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857885</commentid>
    <comment_count>10</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-03-18 20:28:53 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Is it possible that this caused 20% memory regression on Mac?

I would put the probability of that below 1%.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857886</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-18 20:30:00 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; Is it possible that this caused 20% memory regression on Mac?
&gt; 
&gt; I would put the probability of that below 1%.

Okay, it&apos;s probably http://trac.webkit.org/changeset/146089 then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857898</commentid>
    <comment_count>12</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-03-18 20:59:44 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Is it possible that this caused 20% memory regression on Mac?
&gt; 
&gt; https://perf.webkit.org/#mode=charts&amp;chartList=%5B%5B%22Mac%20MountainLion%22%2C%22Parser%2Fhtml5-full-render%3AJSHeap%22%5D%2C%5B%22Mac%20Lion%22%2C%22Parser%2Fhtml5-full-render%3AJSHeap%22%5D%5D&amp;zoom=%5B1363572327935.7915%2C1363623676769.9104%5D

Have you checked for leaks or does it appear to be just more usage?

As Geoff says, not likely this change.  I only moved around register allocations in the DFG JIT.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193397</attachid>
            <date>2013-03-15 16:28:20 -0700</date>
            <delta_ts>2013-03-15 17:08:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>112477.patch</filename>
            <type>text/plain</type>
            <size>28210</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ1OTYwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBA
CisyMDEzLTAzLTE1ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIFBvdGVudGlhbGx5IHVuc2FmZSByZWdpc3RlciBhbGxvY2F0aW9ucyBpbiBERkcgY29kZSBn
ZW5lcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTI0NzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNb3ZlZCBhbGxvY2F0aW9uIG9mIHRlbXBvcmFyeSBHUFJzIHRvIGJlIGJlZm9yZSBhbnkgZ2Vu
ZXJhdGVkIGJyYW5jaGVzIGluIHRoZSBmdW5jdGlvbnMgYmVsb3cuCisKKyAgICAgICAgKiBkZmcv
REZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVPYmplY3RUb09iamVjdE9yT3RoZXJFcXVhbGl0eSk6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQZWVwSG9sZU9iamVjdFRvT2JqZWN0T3JP
dGhlckVxdWFsaXR5KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZU9iamVjdE9yT3RoZXJMb2dpY2FsTm90KToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmpl
Y3RUb09iamVjdE9yT3RoZXJFcXVhbGl0eSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVQZWVwSG9sZU9iamVjdFRvT2JqZWN0T3JPdGhlckVxdWFsaXR5KToKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdE9yT3RoZXJMb2dp
Y2FsTm90KToKKwogMjAxMy0wMy0xNSAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgRG9uJ3QgYWxzbyBjbG9uZSBTdHJ1Y3R1cmVSYXJlRGF0YSB3aGVuIGNsb25p
bmcgU3RydWN0dXJlLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCShyZXZpc2lvbiAxNDU5MzEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzQzLDcgKzEzNDMsOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlT2Jq
ZWN0VG9PYmplCiAgICAgR1BSUmVnIG9wMlRhZ0dQUiA9IG9wMi50YWdHUFIoKTsKICAgICBHUFJS
ZWcgb3AyUGF5bG9hZEdQUiA9IG9wMi5wYXlsb2FkR1BSKCk7CiAgICAgR1BSUmVnIHJlc3VsdEdQ
UiA9IHJlc3VsdC5ncHIoKTsKLSAgICAKKyAgICBHUFJUZW1wb3Jhcnkgc3RydWN0dXJlOworICAg
IEdQUlJlZyBzdHJ1Y3R1cmVHUFI7CisKICAgICBpZiAobV9qaXQuZ3JhcGgoKS5nbG9iYWxPYmpl
Y3RGb3IobV9jdXJyZW50Tm9kZS0+Y29kZU9yaWdpbiktPm1hc3F1ZXJhZGVzQXNVbmRlZmluZWRX
YXRjaHBvaW50KCktPmlzU3RpbGxWYWxpZCgpKSB7IAogICAgICAgICBtX2ppdC5ncmFwaCgpLmds
b2JhbE9iamVjdEZvcihtX2N1cnJlbnROb2RlLT5jb2RlT3JpZ2luKS0+bWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZFdhdGNocG9pbnQoKS0+YWRkKHNwZWN1bGF0aW9uV2F0Y2hwb2ludCgpKTsKICAgICAg
ICAgREZHX1RZUEVfQ0hFQ0soCkBAIC0xMzUyLDggKzEzNTQsOSBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlT2JqZWN0VG9PYmplCiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3Mob3AxR1BSLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwgCiAgICAgICAgICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQuZ2xvYmFsRGF0YSgpLT5z
dHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgR1BSVGVtcG9y
YXJ5IHN0cnVjdHVyZSh0aGlzKTsKLSAgICAgICAgR1BSUmVnIHN0cnVjdHVyZUdQUiA9IHN0cnVj
dHVyZS5ncHIoKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHJlYWxTdHJ1Y3R1cmUodGhpcyk7IC8v
IE9ubHkgYWxsb2NhdGUgb24gdGhpcyBwYXRoLgorICAgICAgICBzdHJ1Y3R1cmUuYWRvcHQocmVh
bFN0cnVjdHVyZSk7CisgICAgICAgIHN0cnVjdHVyZUdQUiA9IHN0cnVjdHVyZS5ncHIoKTsKIAog
ICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKG9wMUdQUiwgSlND
ZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksIHN0cnVjdHVyZUdQUik7CiAgICAgICAgIERGR19UWVBF
X0NIRUNLKApAQCAtMTM4NCw5ICsxMzg3LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZU9iamVjdFRvT2JqZQogICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKG9w
MlBheWxvYWRHUFIsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0KCkpLCAKICAgICAgICAgICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihtX2ppdC5nbG9iYWxEYXRhKCktPnN0cmlu
Z1N0cnVjdHVyZS5nZXQoKSkpKTsKICAgICB9IGVsc2UgewotICAgICAgICBHUFJUZW1wb3Jhcnkg
c3RydWN0dXJlKHRoaXMpOwotICAgICAgICBHUFJSZWcgc3RydWN0dXJlR1BSID0gc3RydWN0dXJl
LmdwcigpOwotCiAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
b3AyUGF5bG9hZEdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksIHN0cnVjdHVyZUdQUik7
CiAgICAgICAgIERGR19UWVBFX0NIRUNLKAogICAgICAgICAgICAgSlNWYWx1ZVJlZ3Mob3AyVGFn
R1BSLCBvcDJQYXlsb2FkR1BSKSwgcmlnaHRDaGlsZCwgKH5TcGVjQ2VsbCkgfCBTcGVjT2JqZWN0
LApAQCAtMTQ0NSw3ICsxNDQ1LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVBlZXBI
b2xlT2JqZQogICAgIEdQUlJlZyBvcDJUYWdHUFIgPSBvcDIudGFnR1BSKCk7CiAgICAgR1BSUmVn
IG9wMlBheWxvYWRHUFIgPSBvcDIucGF5bG9hZEdQUigpOwogICAgIEdQUlJlZyByZXN1bHRHUFIg
PSByZXN1bHQuZ3ByKCk7Ci0gICAgCisgICAgR1BSVGVtcG9yYXJ5IHN0cnVjdHVyZTsKKyAgICBH
UFJSZWcgc3RydWN0dXJlR1BSOworCiAgICAgaWYgKG1faml0LmdyYXBoKCkuZ2xvYmFsT2JqZWN0
Rm9yKG1fY3VycmVudE5vZGUtPmNvZGVPcmlnaW4pLT5tYXNxdWVyYWRlc0FzVW5kZWZpbmVkV2F0
Y2hwb2ludCgpLT5pc1N0aWxsVmFsaWQoKSkgewogICAgICAgICBtX2ppdC5ncmFwaCgpLmdsb2Jh
bE9iamVjdEZvcihtX2N1cnJlbnROb2RlLT5jb2RlT3JpZ2luKS0+bWFzcXVlcmFkZXNBc1VuZGVm
aW5lZFdhdGNocG9pbnQoKS0+YWRkKHNwZWN1bGF0aW9uV2F0Y2hwb2ludCgpKTsKICAgICAgICAg
REZHX1RZUEVfQ0hFQ0soCkBAIC0xNDU0LDggKzE0NTYsOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlUGVlcEhvbGVPYmplCiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3Mob3AxR1BSLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwgCiAgICAgICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQuZ2xvYmFsRGF0YSgpLT5zdHJp
bmdTdHJ1Y3R1cmUuZ2V0KCkpKSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgR1BSVGVtcG9yYXJ5
IHN0cnVjdHVyZSh0aGlzKTsKLSAgICAgICAgR1BSUmVnIHN0cnVjdHVyZUdQUiA9IHN0cnVjdHVy
ZS5ncHIoKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHJlYWxTdHJ1Y3R1cmUodGhpcyk7IC8vIE9u
bHkgYWxsb2NhdGUgb24gdGhpcyBwYXRoCisgICAgICAgIHN0cnVjdHVyZS5hZG9wdChyZWFsU3Ry
dWN0dXJlKTsKKyAgICAgICAgc3RydWN0dXJlR1BSID0gc3RydWN0dXJlLmdwcigpOwogCiAgICAg
ICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mob3AxR1BSLCBKU0NlbGw6
OnN0cnVjdHVyZU9mZnNldCgpKSwgc3RydWN0dXJlR1BSKTsKICAgICAgICAgREZHX1RZUEVfQ0hF
Q0soCkBAIC0xNDg1LDkgKzE0ODgsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUGVl
cEhvbGVPYmplCiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mob3AyUGF5
bG9hZEdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksIAogICAgICAgICAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKG1faml0Lmdsb2JhbERhdGEoKS0+c3RyaW5nU3Ry
dWN0dXJlLmdldCgpKSkpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSBzdHJ1
Y3R1cmUodGhpcyk7Ci0gICAgICAgIEdQUlJlZyBzdHJ1Y3R1cmVHUFIgPSBzdHJ1Y3R1cmUuZ3By
KCk7Ci0KICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhvcDJQ
YXlsb2FkR1BSLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwgc3RydWN0dXJlR1BSKTsKICAg
ICAgICAgREZHX1RZUEVfQ0hFQ0soCiAgICAgICAgICAgICBKU1ZhbHVlUmVncyhvcDJUYWdHUFIs
IG9wMlBheWxvYWRHUFIpLCByaWdodENoaWxkLCAoflNwZWNDZWxsKSB8IFNwZWNPYmplY3QsCkBA
IC0xNTgzLDcgKzE1ODMsMTUgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdE9y
T3RoZQogICAgIEdQUlJlZyB2YWx1ZVRhZ0dQUiA9IHZhbHVlLnRhZ0dQUigpOwogICAgIEdQUlJl
ZyB2YWx1ZVBheWxvYWRHUFIgPSB2YWx1ZS5wYXlsb2FkR1BSKCk7CiAgICAgR1BSUmVnIHJlc3Vs
dFBheWxvYWRHUFIgPSByZXN1bHRQYXlsb2FkLmdwcigpOwotICAgIAorICAgIEdQUlRlbXBvcmFy
eSBzdHJ1Y3R1cmU7CisgICAgR1BSUmVnIHN0cnVjdHVyZUdQUjsKKworICAgIGlmICghbV9qaXQu
Z3JhcGgoKS5nbG9iYWxPYmplY3RGb3IobV9jdXJyZW50Tm9kZS0+Y29kZU9yaWdpbiktPm1hc3F1
ZXJhZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50KCktPmlzU3RpbGxWYWxpZCgpKSB7CisgICAgICAg
IEdQUlRlbXBvcmFyeSByZWFsU3RydWN0dXJlKHRoaXMpOyAvLyBPbmx5IGFsbG9jYXRlIG9uIHRo
aXMgcGF0aCwgYmVmb3JlIHRoZSBicmFuY2gKKyAgICAgICAgc3RydWN0dXJlLmFkb3B0KHJlYWxT
dHJ1Y3R1cmUpOworICAgICAgICBzdHJ1Y3R1cmVHUFIgPSBzdHJ1Y3R1cmUuZ3ByKCk7CisgICAg
fQorCiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm90Q2VsbCA9IG1faml0LmJyYW5jaDMyKE1h
Y3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgdmFsdWVUYWdHUFIsIFRydXN0ZWRJbW0zMihKU1ZhbHVl
OjpDZWxsVGFnKSk7CiAgICAgaWYgKG1faml0LmdyYXBoKCkuZ2xvYmFsT2JqZWN0Rm9yKG1fY3Vy
cmVudE5vZGUtPmNvZGVPcmlnaW4pLT5tYXNxdWVyYWRlc0FzVW5kZWZpbmVkV2F0Y2hwb2ludCgp
LT5pc1N0aWxsVmFsaWQoKSkgewogICAgICAgICBtX2ppdC5ncmFwaCgpLmdsb2JhbE9iamVjdEZv
cihtX2N1cnJlbnROb2RlLT5jb2RlT3JpZ2luKS0+bWFzcXVlcmFkZXNBc1VuZGVmaW5lZFdhdGNo
cG9pbnQoKS0+YWRkKHNwZWN1bGF0aW9uV2F0Y2hwb2ludCgpKTsKQEAgLTE1OTUsOSArMTYwMyw2
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RPck90aGUKICAgICAgICAgICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyh2YWx1ZVBheWxvYWRHUFIsIEpTQ2VsbDo6c3Ry
dWN0dXJlT2Zmc2V0KCkpLAogICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tUHRyKG1faml0Lmdsb2JhbERhdGEoKS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSkpOwogICAg
IH0gZWxzZSB7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSBzdHJ1Y3R1cmUodGhpcyk7Ci0gICAgICAg
IEdQUlJlZyBzdHJ1Y3R1cmVHUFIgPSBzdHJ1Y3R1cmUuZ3ByKCk7Ci0KICAgICAgICAgbV9qaXQu
bG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyh2YWx1ZVBheWxvYWRHUFIsIEpTQ2VsbDo6
c3RydWN0dXJlT2Zmc2V0KCkpLCBzdHJ1Y3R1cmVHUFIpOwogCiAgICAgICAgIERGR19UWVBFX0NI
RUNLKApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwCShyZXZpc2lvbiAxNDU5MzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzY5LDcgKzEz
NjksOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlT2JqZWN0VG9PYmplCiAgICAgR1BS
UmVnIG9wMUdQUiA9IG9wMS5ncHIoKTsKICAgICBHUFJSZWcgb3AyR1BSID0gb3AyLmdwcigpOwog
ICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7Ci0gICAKKyAgICBHUFJUZW1wb3Jh
cnkgc3RydWN0dXJlOworICAgIEdQUlJlZyBzdHJ1Y3R1cmVHUFI7CisKICAgICBpZiAobV9qaXQu
Z3JhcGgoKS5nbG9iYWxPYmplY3RGb3IobV9jdXJyZW50Tm9kZS0+Y29kZU9yaWdpbiktPm1hc3F1
ZXJhZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50KCktPmlzU3RpbGxWYWxpZCgpKSB7IAogICAgICAg
ICBtX2ppdC5ncmFwaCgpLmdsb2JhbE9iamVjdEZvcihtX2N1cnJlbnROb2RlLT5jb2RlT3JpZ2lu
KS0+bWFzcXVlcmFkZXNBc1VuZGVmaW5lZFdhdGNocG9pbnQoKS0+YWRkKHNwZWN1bGF0aW9uV2F0
Y2hwb2ludCgpKTsKICAgICAgICAgREZHX1RZUEVfQ0hFQ0soCkBAIC0xMzc4LDggKzEzODAsOSBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlT2JqZWN0VG9PYmplCiAgICAgICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mob3AxR1BSLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNl
dCgpKSwgCiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIobV9q
aXQuZ2xvYmFsRGF0YSgpLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKSk7CiAgICAgfSBlbHNlIHsK
LSAgICAgICAgR1BSVGVtcG9yYXJ5IHN0cnVjdHVyZSh0aGlzKTsKLSAgICAgICAgR1BSUmVnIHN0
cnVjdHVyZUdQUiA9IHN0cnVjdHVyZS5ncHIoKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHJlYWxT
dHJ1Y3R1cmUodGhpcyk7IC8vIE9ubHkgYWxsb2NhdGUgb24gdGhpcyBwYXRoLgorICAgICAgICBz
dHJ1Y3R1cmUuYWRvcHQocmVhbFN0cnVjdHVyZSk7CisgICAgICAgIHN0cnVjdHVyZUdQUiA9IHN0
cnVjdHVyZS5ncHIoKTsKIAogICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKG9wMUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksIHN0cnVjdHVyZUdQUik7
CiAgICAgICAgIERGR19UWVBFX0NIRUNLKApAQCAtMTQwOCw5ICsxNDExLDYgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdFRvT2JqZQogICAgICAgICAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKG9wMkdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksIAogICAg
ICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKG1faml0Lmdsb2JhbERh
dGEoKS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSkpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIEdQ
UlRlbXBvcmFyeSBzdHJ1Y3R1cmUodGhpcyk7Ci0gICAgICAgIEdQUlJlZyBzdHJ1Y3R1cmVHUFIg
PSBzdHJ1Y3R1cmUuZ3ByKCk7Ci0KICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhvcDJHUFIsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0KCkpLCBzdHJ1Y3R1cmVH
UFIpOwogICAgICAgICBERkdfVFlQRV9DSEVDSygKICAgICAgICAgICAgIEpTVmFsdWVSZWdzKG9w
MkdQUiksIHJpZ2h0Q2hpbGQsICh+U3BlY0NlbGwpIHwgU3BlY09iamVjdCwgbV9qaXQuYnJhbmNo
UHRyKApAQCAtMTQ2Nyw2ICsxNDY3LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVBl
ZXBIb2xlT2JqZQogICAgIEdQUlJlZyBvcDFHUFIgPSBvcDEuZ3ByKCk7CiAgICAgR1BSUmVnIG9w
MkdQUiA9IG9wMi5ncHIoKTsKICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwor
ICAgIEdQUlRlbXBvcmFyeSBzdHJ1Y3R1cmU7CisgICAgR1BSUmVnIHN0cnVjdHVyZUdQUjsKICAg
ICAKICAgICBpZiAobV9qaXQuZ3JhcGgoKS5nbG9iYWxPYmplY3RGb3IobV9jdXJyZW50Tm9kZS0+
Y29kZU9yaWdpbiktPm1hc3F1ZXJhZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50KCktPmlzU3RpbGxW
YWxpZCgpKSB7CiAgICAgICAgIG1faml0LmdyYXBoKCkuZ2xvYmFsT2JqZWN0Rm9yKG1fY3VycmVu
dE5vZGUtPmNvZGVPcmlnaW4pLT5tYXNxdWVyYWRlc0FzVW5kZWZpbmVkV2F0Y2hwb2ludCgpLT5h
ZGQoc3BlY3VsYXRpb25XYXRjaHBvaW50KCkpOwpAQCAtMTQ3Niw4ICsxNDc4LDkgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVBlZXBIb2xlT2JqZQogICAgICAgICAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKG9wMUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksIAog
ICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKG1faml0Lmdsb2Jh
bERhdGEoKS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSkpOwogICAgIH0gZWxzZSB7Ci0gICAgICAg
IEdQUlRlbXBvcmFyeSBzdHJ1Y3R1cmUodGhpcyk7Ci0gICAgICAgIEdQUlJlZyBzdHJ1Y3R1cmVH
UFIgPSBzdHJ1Y3R1cmUuZ3ByKCk7CisgICAgICAgIEdQUlRlbXBvcmFyeSByZWFsU3RydWN0dXJl
KHRoaXMpOyAvLyBPbmx5IGFsbG9jYXRlIG9uIHRoaXMgcGF0aAorICAgICAgICBzdHJ1Y3R1cmUu
YWRvcHQocmVhbFN0cnVjdHVyZSk7CisgICAgICAgIHN0cnVjdHVyZUdQUiA9IHN0cnVjdHVyZS5n
cHIoKTsKIAogICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKG9w
MUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksIHN0cnVjdHVyZUdQUik7CiAgICAgICAg
IERGR19UWVBFX0NIRUNLKApAQCAtMTQ5MSw3ICsxNDk0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVBlZXBIb2xlT2JqZQogICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKHN0cnVjdHVyZUdQUiwgU3RydWN0dXJlOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCAK
ICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKE1hc3F1ZXJhZGVz
QXNVbmRlZmluZWQpKSk7CiAgICAgfQotICAgIAorCiAgICAgLy8gSXQgc2VlbXMgdGhhdCBtb3N0
IG9mIHRoZSB0aW1lIHdoZW4gcHJvZ3JhbXMgZG8gYSA9PSBiIHdoZXJlIGIgbWF5IGJlIGVpdGhl
ciBudWxsL3VuZGVmaW5lZAogICAgIC8vIG9yIGFuIG9iamVjdCwgYiBpcyB1c3VhbGx5IGFuIG9i
amVjdC4gQmFsYW5jZSB0aGUgYnJhbmNoZXMgdG8gbWFrZSB0aGF0IGNhc2UgZmFzdC4KICAgICBN
YWNyb0Fzc2VtYmxlcjo6SnVtcCByaWdodE5vdENlbGwgPQpAQCAtMTUwNiw5ICsxNTA5LDYgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVBlZXBIb2xlT2JqZQogICAgICAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKG9wMkdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQo
KSksIAogICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKG1faml0
Lmdsb2JhbERhdGEoKS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSkpOwogICAgIH0gZWxzZSB7Ci0g
ICAgICAgIEdQUlRlbXBvcmFyeSBzdHJ1Y3R1cmUodGhpcyk7Ci0gICAgICAgIEdQUlJlZyBzdHJ1
Y3R1cmVHUFIgPSBzdHJ1Y3R1cmUuZ3ByKCk7Ci0KICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNy
b0Fzc2VtYmxlcjo6QWRkcmVzcyhvcDJHUFIsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0KCkpLCBz
dHJ1Y3R1cmVHUFIpOwogICAgICAgICBERkdfVFlQRV9DSEVDSygKICAgICAgICAgICAgIEpTVmFs
dWVSZWdzKG9wMkdQUiksIHJpZ2h0Q2hpbGQsICh+U3BlY0NlbGwpIHwgU3BlY09iamVjdCwgbV9q
aXQuYnJhbmNoUHRyKApAQCAtMTU5OSw3ICsxNTk5LDE1IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVPYmplY3RPck90aGUKICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwogICAg
IEdQUlJlZyB2YWx1ZUdQUiA9IHZhbHVlLmdwcigpOwogICAgIEdQUlJlZyByZXN1bHRHUFIgPSBy
ZXN1bHQuZ3ByKCk7Ci0gICAgCisgICAgR1BSVGVtcG9yYXJ5IHN0cnVjdHVyZTsKKyAgICBHUFJS
ZWcgc3RydWN0dXJlR1BSOworCisgICAgaWYgKCFtX2ppdC5ncmFwaCgpLmdsb2JhbE9iamVjdEZv
cihtX2N1cnJlbnROb2RlLT5jb2RlT3JpZ2luKS0+bWFzcXVlcmFkZXNBc1VuZGVmaW5lZFdhdGNo
cG9pbnQoKS0+aXNTdGlsbFZhbGlkKCkpIHsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHJlYWxTdHJ1
Y3R1cmUodGhpcyk7IC8vIE9ubHkgYWxsb2NhdGUgb24gdGhpcyBwYXRoLCBiZWZvcmUgdGhlIGJy
YW5jaAorICAgICAgICBzdHJ1Y3R1cmUuYWRvcHQocmVhbFN0cnVjdHVyZSk7CisgICAgICAgIHN0
cnVjdHVyZUdQUiA9IHN0cnVjdHVyZS5ncHIoKTsKKyAgICB9CisKICAgICBNYWNyb0Fzc2VtYmxl
cjo6SnVtcCBub3RDZWxsID0gbV9qaXQuYnJhbmNoVGVzdDY0KE1hY3JvQXNzZW1ibGVyOjpOb25a
ZXJvLCB2YWx1ZUdQUiwgR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyKTsKICAgICBpZiAobV9qaXQu
Z3JhcGgoKS5nbG9iYWxPYmplY3RGb3IobV9jdXJyZW50Tm9kZS0+Y29kZU9yaWdpbiktPm1hc3F1
ZXJhZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50KCktPmlzU3RpbGxWYWxpZCgpKSB7CiAgICAgICAg
IG1faml0LmdyYXBoKCkuZ2xvYmFsT2JqZWN0Rm9yKG1fY3VycmVudE5vZGUtPmNvZGVPcmlnaW4p
LT5tYXNxdWVyYWRlc0FzVW5kZWZpbmVkV2F0Y2hwb2ludCgpLT5hZGQoc3BlY3VsYXRpb25XYXRj
aHBvaW50KCkpOwpAQCAtMTYwOSw5ICsxNjE3LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZU9iamVjdE9yT3RoZQogICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNz
KHZhbHVlR1BSLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwKICAgICAgICAgICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihtX2ppdC5nbG9iYWxEYXRhKCktPnN0cmluZ1N0
cnVjdHVyZS5nZXQoKSkpKTsKICAgICB9IGVsc2UgewotICAgICAgICBHUFJUZW1wb3Jhcnkgc3Ry
dWN0dXJlKHRoaXMpOwotICAgICAgICBHUFJSZWcgc3RydWN0dXJlR1BSID0gc3RydWN0dXJlLmdw
cigpOwotCiAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3ModmFs
dWVHUFIsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0KCkpLCBzdHJ1Y3R1cmVHUFIpOwogCiAgICAg
ICAgIERGR19UWVBFX0NIRUNLKApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ1OTYwKQorKysgTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTMtMDMt
MTUgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CisKKyAgICAgICAgUG90ZW50
aWFsbHkgdW5zYWZlIHJlZ2lzdGVyIGFsbG9jYXRpb25zIGluIERGRyBjb2RlIGdlbmVyYXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjQ3Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyB0ZXN0
cyBhZGRlZCB0byB2ZXJpZnkgcHJvcGVyIG9wZXJhdGlvbiBvZgorICAgICAgICBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZU9iamVjdFRvT2JqZWN0T3JPdGhlckVxdWFsaXR5LAorICAgICAgICBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZVBlZXBIb2xlT2JqZWN0VG9PYmplY3RPck90aGVyRXF1YWxpdHkK
KyAgICAgICAgYW5kIFNwZWN1bGF0aXZlSklUOjpjb21waWxlT2JqZWN0T3JPdGhlckxvZ2ljYWxO
b3QuCisKKyAgICAgICAgKiBmYXN0L2pzL2RmZy1jb21wYXJlLWZpbmFsLW9iamVjdC10by1maW5h
bC1vYmplY3Qtb3Itb3RoZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pz
L2RmZy1jb21wYXJlLWZpbmFsLW9iamVjdC10by1maW5hbC1vYmplY3Qtb3Itb3RoZXIuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9qcy9kZmctbG9naWNhbC1ub3QtZmluYWwtb2JqZWN0LW9y
LW90aGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9kZmctbG9naWNh
bC1ub3QtZmluYWwtb2JqZWN0LW9yLW90aGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
anMvZGZnLXBlZXBob2xlLWNvbXBhcmUtZmluYWwtb2JqZWN0LXRvLWZpbmFsLW9iamVjdC1vci1v
dGhlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvZGZnLXBlZXBob2xl
LWNvbXBhcmUtZmluYWwtb2JqZWN0LXRvLWZpbmFsLW9iamVjdC1vci1vdGhlci5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctY29tcGFyZS1maW5hbC1vYmpl
Y3QtdG8tZmluYWwtb2JqZWN0LW9yLW90aGVyLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pz
L3NjcmlwdC10ZXN0cy9kZmctbG9naWNhbC1ub3QtZmluYWwtb2JqZWN0LW9yLW90aGVyLmpzOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctcGVlcGhvbGUtY29tcGFy
ZS1maW5hbC1vYmplY3QtdG8tZmluYWwtb2JqZWN0LW9yLW90aGVyLmpzOiBBZGRlZC4KKwogMjAx
My0wMy0xNSAgQXVyaW1hcyBMaXV0aWthcyAgPGF1cmltYXNAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFRleHRJdGVyYXRvciBlbWl0cyBMRiBmb3IgYSBiciBlbGVtZW50IGluc2lkZSBhbiBlbXB0
eSBpbnB1dCBlbGVtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1jb21wYXJlLWZp
bmFsLW9iamVjdC10by1maW5hbC1vYmplY3Qtb3Itb3RoZXItZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvZGZnLWNvbXBhcmUtZmluYWwtb2JqZWN0LXRvLWZp
bmFsLW9iamVjdC1vci1vdGhlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2pzL2RmZy1jb21wYXJlLWZpbmFsLW9iamVjdC10by1maW5hbC1vYmplY3Qtb3It
b3RoZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwOSBAQAorVGVzdHMg
dGhhdCBDb21wYXJlRXEgZm9yIHRoZSBjYXNlIHdoZXJlIG9uZSBzaWRlIGlzIHByZWRpY3RlZCBm
aW5hbCBvYmplY3QgYW5kIHRoZSBvdGhlciBzaWRlIGlzIHByZWRpY3RlZCBlaXRoZXIgZmluYWwg
b2JqZWN0IG9yIG90aGVyIChpLmUuIG51bGwgb3IgdW5kZWZpbmVkKSB3aGVuIGRvY3VtZW50LmFs
bCBpcyBwcmVzZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28o
e2Y6NDJ9LCBudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvanMvZGZnLWNvbXBhcmUtZmluYWwtb2JqZWN0LXRvLWZpbmFsLW9iamVjdC1vci1v
dGhlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvZGZnLWNvbXBhcmUt
ZmluYWwtb2JqZWN0LXRvLWZpbmFsLW9iamVjdC1vci1vdGhlci5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctY29tcGFyZS1maW5hbC1vYmplY3QtdG8tZmluYWwt
b2JqZWN0LW9yLW90aGVyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9kZmctY29tcGFyZS1maW5hbC1v
YmplY3QtdG8tZmluYWwtb2JqZWN0LW9yLW90aGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvZGZnLWxvZ2ljYWwtbm90LWZpbmFsLW9iamVjdC1v
ci1vdGhlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9k
ZmctbG9naWNhbC1ub3QtZmluYWwtb2JqZWN0LW9yLW90aGVyLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvZGZnLWxvZ2ljYWwtbm90LWZpbmFsLW9iamVj
dC1vci1vdGhlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTA5IEBACitU
ZXN0cyB0aGF0IGxvZ2ljYWwgbm90IG9mIGFuIG9iamVjdCB3aGVyZSBpdCBpcyBwcmVkaWN0ZWQg
ZWl0aGVyIGZpbmFsIG9iamVjdCBvciBvdGhlciAoaS5lLiBudWxsIG9yIHVuZGVmaW5lZCkgcGVy
Zm9ybXMgY29ycmVjdGx5IHdoZW4gZG9jdW1lbnQuYWxsIGlzIHByZXNlbnQuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGZvbyhudWxsKSBpcyBmYWxzZQorUEFTUyBmb28o
bykgaXMgdHJ1ZQorUEFTUyBmb28obnVsbCkgaXMgZmFsc2UKK1BBU1MgZm9vKG8pIGlzIHRydWUK
K1BBU1MgZm9vKG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvKSBpcyB0cnVlCitQQVNTIGZvbyhu
dWxsKSBpcyBmYWxzZQorUEFTUyBmb28obykgaXMgdHJ1ZQorUEFTUyBmb28obnVsbCkgaXMgZmFs
c2UKK1BBU1MgZm9vKG8pIGlzIHRydWUKK1BBU1MgZm9vKG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvKSBpcyB0cnVlCitQQVNTIGZvbyhudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obykgaXMgdHJ1
ZQorUEFTUyBmb28obnVsbCkgaXMgZmFsc2UKK1BBU1MgZm9vKG8pIGlzIHRydWUKK1BBU1MgZm9v
KG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvKSBpcyB0cnVlCitQQVNTIGZvbyhudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obykgaXMgdHJ1ZQorUEFTUyBmb28obnVsbCkgaXMgZmFsc2UKK1BBU1Mg
Zm9vKG8pIGlzIHRydWUKK1BBU1MgZm9vKG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvKSBpcyB0
cnVlCitQQVNTIGZvbyhudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obykgaXMgdHJ1ZQorUEFTUyBm
b28obnVsbCkgaXMgZmFsc2UKK1BBU1MgZm9vKG8pIGlzIHRydWUKK1BBU1MgZm9vKG51bGwpIGlz
IGZhbHNlCitQQVNTIGZvbyhvKSBpcyB0cnVlCitQQVNTIGZvbyhudWxsKSBpcyBmYWxzZQorUEFT
UyBmb28obykgaXMgdHJ1ZQorUEFTUyBmb28obnVsbCkgaXMgZmFsc2UKK1BBU1MgZm9vKG8pIGlz
IHRydWUKK1BBU1MgZm9vKG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvKSBpcyB0cnVlCitQQVNT
IGZvbyhudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obykgaXMgdHJ1ZQorUEFTUyBmb28obnVsbCkg
aXMgZmFsc2UKK1BBU1MgZm9vKG8pIGlzIHRydWUKK1BBU1MgZm9vKG51bGwpIGlzIGZhbHNlCitQ
QVNTIGZvbyhvKSBpcyB0cnVlCitQQVNTIGZvbyhudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obykg
aXMgdHJ1ZQorUEFTUyBmb28obnVsbCkgaXMgZmFsc2UKK1BBU1MgZm9vKG8pIGlzIHRydWUKK1BB
U1MgZm9vKG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvKSBpcyB0cnVlCitQQVNTIGZvbyhudWxs
KSBpcyBmYWxzZQorUEFTUyBmb28obykgaXMgdHJ1ZQorUEFTUyBmb28obnVsbCkgaXMgZmFsc2UK
K1BBU1MgZm9vKG8pIGlzIHRydWUKK1BBU1MgZm9vKG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhv
KSBpcyB0cnVlCitQQVNTIGZvbyhudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obykgaXMgdHJ1ZQor
UEFTUyBmb28obnVsbCkgaXMgZmFsc2UKK1BBU1MgZm9vKG8pIGlzIHRydWUKK1BBU1MgZm9vKG51
bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvKSBpcyB0cnVlCitQQVNTIGZvbyhudWxsKSBpcyBmYWxz
ZQorUEFTUyBmb28obykgaXMgdHJ1ZQorUEFTUyBmb28obnVsbCkgaXMgZmFsc2UKK1BBU1MgZm9v
KG8pIGlzIHRydWUKK1BBU1MgZm9vKG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvKSBpcyB0cnVl
CitQQVNTIGZvbyhudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obykgaXMgdHJ1ZQorUEFTUyBmb28o
bnVsbCkgaXMgZmFsc2UKK1BBU1MgZm9vKG8pIGlzIHRydWUKK1BBU1MgZm9vKG51bGwpIGlzIGZh
bHNlCitQQVNTIGZvbyhvKSBpcyB0cnVlCitQQVNTIGZvbyhudWxsKSBpcyBmYWxzZQorUEFTUyBm
b28obykgaXMgdHJ1ZQorUEFTUyBmb28obnVsbCkgaXMgZmFsc2UKK1BBU1MgZm9vKG8pIGlzIHRy
dWUKK1BBU1MgZm9vKG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvKSBpcyB0cnVlCitQQVNTIGZv
byhudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obykgaXMgdHJ1ZQorUEFTUyBmb28obnVsbCkgaXMg
ZmFsc2UKK1BBU1MgZm9vKG8pIGlzIHRydWUKK1BBU1MgZm9vKG51bGwpIGlzIGZhbHNlCitQQVNT
IGZvbyhvKSBpcyB0cnVlCitQQVNTIGZvbyhudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obykgaXMg
dHJ1ZQorUEFTUyBmb28obnVsbCkgaXMgZmFsc2UKK1BBU1MgZm9vKG8pIGlzIHRydWUKK1BBU1Mg
Zm9vKG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvKSBpcyB0cnVlCitQQVNTIGZvbyhudWxsKSBp
cyBmYWxzZQorUEFTUyBmb28obykgaXMgdHJ1ZQorUEFTUyBmb28obnVsbCkgaXMgZmFsc2UKK1BB
U1MgZm9vKG8pIGlzIHRydWUKK1BBU1MgZm9vKG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvKSBp
cyB0cnVlCitQQVNTIGZvbyhudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obykgaXMgdHJ1ZQorUEFT
UyBmb28obnVsbCkgaXMgZmFsc2UKK1BBU1MgZm9vKG8pIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2pzL2RmZy1sb2dpY2FsLW5vdC1maW5hbC1vYmplY3Qtb3Itb3RoZXIuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1sb2dpY2FsLW5vdC1maW5hbC1vYmplY3Qt
b3Itb3RoZXIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvZGZnLWxv
Z2ljYWwtbm90LWZpbmFsLW9iamVjdC1vci1vdGhlci5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZGZn
LWxvZ2ljYWwtbm90LWZpbmFsLW9iamVjdC1vci1vdGhlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1wZWVwaG9sZS1jb21wYXJlLWZpbmFs
LW9iamVjdC10by1maW5hbC1vYmplY3Qtb3Itb3RoZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvanMvZGZnLXBlZXBob2xlLWNvbXBhcmUtZmluYWwtb2JqZWN0
LXRvLWZpbmFsLW9iamVjdC1vci1vdGhlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1wZWVwaG9sZS1jb21wYXJlLWZpbmFsLW9iamVjdC10by1m
aW5hbC1vYmplY3Qtb3Itb3RoZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDEwOSBAQAorVGVzdHMgdGhhdCAoUGVlcGhvbGUpIENvbXBhcmVFcSBmb3IgdGhlIGNhc2Ugd2hl
cmUgb25lIHNpZGUgaXMgcHJlZGljdGVkIGZpbmFsIG9iamVjdCBhbmQgdGhlIG90aGVyIHNpZGUg
aXMgcHJlZGljdGVkIGVpdGhlciBmaW5hbCBvYmplY3Qgb3Igb3RoZXIgKGkuZS4gbnVsbCBvciB1
bmRlZmluZWQpIHdoZW4gZG9jdW1lbnQuYWxsIGlzIHByZXNlbnQuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZv
byhvLCBvKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctcGVlcGhvbGUtY29tcGFy
ZS1maW5hbC1vYmplY3QtdG8tZmluYWwtb2JqZWN0LW9yLW90aGVyLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctcGVlcGhvbGUtY29tcGFyZS1maW5hbC1vYmplY3Qt
dG8tZmluYWwtb2JqZWN0LW9yLW90aGVyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2pzL2RmZy1wZWVwaG9sZS1jb21wYXJlLWZpbmFsLW9iamVjdC10by1maW5hbC1vYmpl
Y3Qtb3Itb3RoZXIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2RmZy1wZWVwaG9sZS1jb21wYXJlLWZp
bmFsLW9iamVjdC10by1maW5hbC1vYmplY3Qtb3Itb3RoZXIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLWNvbXBhcmUt
ZmluYWwtb2JqZWN0LXRvLWZpbmFsLW9iamVjdC1vci1vdGhlci5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctY29tcGFyZS1maW5hbC1vYmplY3Qt
dG8tZmluYWwtb2JqZWN0LW9yLW90aGVyLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLWNvbXBhcmUtZmluYWwtb2JqZWN0LXRvLWZpbmFsLW9i
amVjdC1vci1vdGhlci5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNyBAQAorZGVzY3JpcHRp
b24oCisiVGVzdHMgdGhhdCBDb21wYXJlRXEgZm9yIHRoZSBjYXNlIHdoZXJlIG9uZSBzaWRlIGlz
IHByZWRpY3RlZCBmaW5hbCBvYmplY3QgYW5kIHRoZSBvdGhlciBzaWRlIGlzIHByZWRpY3RlZCBl
aXRoZXIgZmluYWwgb2JqZWN0IG9yIG90aGVyIChpLmUuIG51bGwgb3IgdW5kZWZpbmVkKSB3aGVu
IGRvY3VtZW50LmFsbCBpcyBwcmVzZW50LiIKKyk7CisKK2lmIChkb2N1bWVudC5hbGwpCisgICAg
dmFyIHVudXNlZCA9IDE7CisKK2Z1bmN0aW9uIGZvbyhhLCBiKSB7CisgICAgdmFyIHJlc3VsdCA9
IGZhbHNlOworICAgIHZhciBlcSA9IChhID09IGIpOworCisgICAgaWYgKGIgPT0gNDIpCisJcmV0
dXJuIC0xOworCisgICAgaWYgKGVxKQorICAgICAgICByZXN1bHQgPSB0cnVlOworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKKyAgICBpZiAo
aSUyKSB7CisgICAgICAgIHZhciBvID0ge2Y6NDJ9OworICAgICAgICBzaG91bGRCZSgiZm9vKG8s
IG8pIiwgInRydWUiKTsKKyAgICB9IGVsc2UKKyAgICAgICAgc2hvdWxkQmUoImZvbyh7Zjo0Mn0s
IG51bGwpIiwgImZhbHNlIik7Cit9CisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0
LXRlc3RzL2RmZy1sb2dpY2FsLW5vdC1maW5hbC1vYmplY3Qtb3Itb3RoZXIuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLWxvZ2ljYWwtbm90LWZp
bmFsLW9iamVjdC1vci1vdGhlci5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
anMvc2NyaXB0LXRlc3RzL2RmZy1sb2dpY2FsLW5vdC1maW5hbC1vYmplY3Qtb3Itb3RoZXIuanMJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjYgQEAKK2Rlc2NyaXB0aW9uKAorIlRlc3RzIHRoYXQg
bG9naWNhbCBub3Qgb2YgYW4gb2JqZWN0IHdoZXJlIGl0IGlzIHByZWRpY3RlZCBlaXRoZXIgZmlu
YWwgb2JqZWN0IG9yIG90aGVyIChpLmUuIG51bGwgb3IgdW5kZWZpbmVkKSBwZXJmb3JtcyBjb3Jy
ZWN0bHkgd2hlbiBkb2N1bWVudC5hbGwgaXMgcHJlc2VudC4iCispOworCitpZiAoZG9jdW1lbnQu
YWxsKQorICAgIHZhciB1bnVzZWQgPSAxOworCitmdW5jdGlvbiBmb28oYSkgeworICAgIHZhciB0
ID0gIWE7CisKKyAgICBpZiAoYSA9PSAxNikKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgaWYg
KHQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDA7ICsraSkgeworICAgIGlmIChpJTIpIHsKKyAgICAgICAgdmFyIG8g
PSB7Zjo0Mn07CisgICAgICAgIHNob3VsZEJlKCJmb28obykiLCAidHJ1ZSIpOworICAgIH0gZWxz
ZQorICAgICAgICBzaG91bGRCZSgiZm9vKG51bGwpIiwgImZhbHNlIik7Cit9CisKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2RmZy1wZWVwaG9sZS1jb21wYXJlLWZpbmFs
LW9iamVjdC10by1maW5hbC1vYmplY3Qtb3Itb3RoZXIuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLXBlZXBob2xlLWNvbXBhcmUtZmluYWwtb2Jq
ZWN0LXRvLWZpbmFsLW9iamVjdC1vci1vdGhlci5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2RmZy1wZWVwaG9sZS1jb21wYXJlLWZpbmFsLW9iamVj
dC10by1maW5hbC1vYmplY3Qtb3Itb3RoZXIuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjMg
QEAKK2Rlc2NyaXB0aW9uKAorIlRlc3RzIHRoYXQgKFBlZXBob2xlKSBDb21wYXJlRXEgZm9yIHRo
ZSBjYXNlIHdoZXJlIG9uZSBzaWRlIGlzIHByZWRpY3RlZCBmaW5hbCBvYmplY3QgYW5kIHRoZSBv
dGhlciBzaWRlIGlzIHByZWRpY3RlZCBlaXRoZXIgZmluYWwgb2JqZWN0IG9yIG90aGVyIChpLmUu
IG51bGwgb3IgdW5kZWZpbmVkKSB3aGVuIGRvY3VtZW50LmFsbCBpcyBwcmVzZW50LiIKKyk7CisK
K2lmIChkb2N1bWVudC5hbGwpCisgICAgdmFyIHVudXNlZCA9IDE7CisKK2Z1bmN0aW9uIGZvbyhh
LCBiKSB7CisgICAgdmFyIHJlc3VsdCA9IGZhbHNlOworCisgICAgaWYgKGEgPT0gYikKKyAgICAg
ICAgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDsgKytpKSB7CisgICAgaWYgKGklMikgeworICAgICAgICB2YXIgbyA9IHtmOjQy
fTsKKyAgICAgICAgc2hvdWxkQmUoImZvbyhvLCBvKSIsICJ0cnVlIik7CisgICAgfSBlbHNlCisg
ICAgICAgIHNob3VsZEJlKCJmb28oe2Y6NDJ9LCBudWxsKSIsICJmYWxzZSIpOworfQorCg==
</data>
<flag name="commit-queue"
          id="214926"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193402</attachid>
            <date>2013-03-15 17:08:02 -0700</date>
            <delta_ts>2013-03-18 11:32:54 -0700</delta_ts>
            <desc>Speculative patch for Qt build failure</desc>
            <filename>112477-2.patch</filename>
            <type>text/plain</type>
            <size>28306</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ1OTYwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBA
CisyMDEzLTAzLTE1ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIFBvdGVudGlhbGx5IHVuc2FmZSByZWdpc3RlciBhbGxvY2F0aW9ucyBpbiBERkcgY29kZSBn
ZW5lcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTI0NzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNb3ZlZCBhbGxvY2F0aW9uIG9mIHRlbXBvcmFyeSBHUFJzIHRvIGJlIGJlZm9yZSBhbnkgZ2Vu
ZXJhdGVkIGJyYW5jaGVzIGluIHRoZSBmdW5jdGlvbnMgYmVsb3cuCisKKyAgICAgICAgKiBkZmcv
REZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVPYmplY3RUb09iamVjdE9yT3RoZXJFcXVhbGl0eSk6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQZWVwSG9sZU9iamVjdFRvT2JqZWN0T3JP
dGhlckVxdWFsaXR5KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZU9iamVjdE9yT3RoZXJMb2dpY2FsTm90KToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmpl
Y3RUb09iamVjdE9yT3RoZXJFcXVhbGl0eSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVQZWVwSG9sZU9iamVjdFRvT2JqZWN0T3JPdGhlckVxdWFsaXR5KToKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdE9yT3RoZXJMb2dp
Y2FsTm90KToKKwogMjAxMy0wMy0xNSAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgRG9uJ3QgYWxzbyBjbG9uZSBTdHJ1Y3R1cmVSYXJlRGF0YSB3aGVuIGNsb25p
bmcgU3RydWN0dXJlLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCShyZXZpc2lvbiAxNDU5MzEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzQzLDcgKzEzNDMsOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlT2Jq
ZWN0VG9PYmplCiAgICAgR1BSUmVnIG9wMlRhZ0dQUiA9IG9wMi50YWdHUFIoKTsKICAgICBHUFJS
ZWcgb3AyUGF5bG9hZEdQUiA9IG9wMi5wYXlsb2FkR1BSKCk7CiAgICAgR1BSUmVnIHJlc3VsdEdQ
UiA9IHJlc3VsdC5ncHIoKTsKLSAgICAKKyAgICBHUFJUZW1wb3Jhcnkgc3RydWN0dXJlOworICAg
IEdQUlJlZyBzdHJ1Y3R1cmVHUFIgPSBJbnZhbGlkR1BSUmVnOworCiAgICAgaWYgKG1faml0Lmdy
YXBoKCkuZ2xvYmFsT2JqZWN0Rm9yKG1fY3VycmVudE5vZGUtPmNvZGVPcmlnaW4pLT5tYXNxdWVy
YWRlc0FzVW5kZWZpbmVkV2F0Y2hwb2ludCgpLT5pc1N0aWxsVmFsaWQoKSkgeyAKICAgICAgICAg
bV9qaXQuZ3JhcGgoKS5nbG9iYWxPYmplY3RGb3IobV9jdXJyZW50Tm9kZS0+Y29kZU9yaWdpbikt
Pm1hc3F1ZXJhZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50KCktPmFkZChzcGVjdWxhdGlvbldhdGNo
cG9pbnQoKSk7CiAgICAgICAgIERGR19UWVBFX0NIRUNLKApAQCAtMTM1Miw4ICsxMzU0LDkgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdFRvT2JqZQogICAgICAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKG9wMUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQo
KSksIAogICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKG1faml0
Lmdsb2JhbERhdGEoKS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSkpOwogICAgIH0gZWxzZSB7Ci0g
ICAgICAgIEdQUlRlbXBvcmFyeSBzdHJ1Y3R1cmUodGhpcyk7Ci0gICAgICAgIEdQUlJlZyBzdHJ1
Y3R1cmVHUFIgPSBzdHJ1Y3R1cmUuZ3ByKCk7CisgICAgICAgIEdQUlRlbXBvcmFyeSByZWFsU3Ry
dWN0dXJlKHRoaXMpOyAvLyBPbmx5IGFsbG9jYXRlIG9uIHRoaXMgcGF0aC4KKyAgICAgICAgc3Ry
dWN0dXJlLmFkb3B0KHJlYWxTdHJ1Y3R1cmUpOworICAgICAgICBzdHJ1Y3R1cmVHUFIgPSBzdHJ1
Y3R1cmUuZ3ByKCk7CiAKICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhvcDFHUFIsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0KCkpLCBzdHJ1Y3R1cmVHUFIpOwog
ICAgICAgICBERkdfVFlQRV9DSEVDSygKQEAgLTEzODQsOSArMTM4Nyw2IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RUb09iamUKICAgICAgICAgICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhvcDJQYXlsb2FkR1BSLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwg
CiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQuZ2xv
YmFsRGF0YSgpLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKSk7CiAgICAgfSBlbHNlIHsKLSAgICAg
ICAgR1BSVGVtcG9yYXJ5IHN0cnVjdHVyZSh0aGlzKTsKLSAgICAgICAgR1BSUmVnIHN0cnVjdHVy
ZUdQUiA9IHN0cnVjdHVyZS5ncHIoKTsKLQogICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKG9wMlBheWxvYWRHUFIsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0KCkp
LCBzdHJ1Y3R1cmVHUFIpOwogICAgICAgICBERkdfVFlQRV9DSEVDSygKICAgICAgICAgICAgIEpT
VmFsdWVSZWdzKG9wMlRhZ0dQUiwgb3AyUGF5bG9hZEdQUiksIHJpZ2h0Q2hpbGQsICh+U3BlY0Nl
bGwpIHwgU3BlY09iamVjdCwKQEAgLTE0NDUsNyArMTQ0NSw5IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVQZWVwSG9sZU9iamUKICAgICBHUFJSZWcgb3AyVGFnR1BSID0gb3AyLnRhZ0dQ
UigpOwogICAgIEdQUlJlZyBvcDJQYXlsb2FkR1BSID0gb3AyLnBheWxvYWRHUFIoKTsKICAgICBH
UFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwotICAgIAorICAgIEdQUlRlbXBvcmFyeSBz
dHJ1Y3R1cmU7CisgICAgR1BSUmVnIHN0cnVjdHVyZUdQUiA9IEludmFsaWRHUFJSZWc7CisKICAg
ICBpZiAobV9qaXQuZ3JhcGgoKS5nbG9iYWxPYmplY3RGb3IobV9jdXJyZW50Tm9kZS0+Y29kZU9y
aWdpbiktPm1hc3F1ZXJhZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50KCktPmlzU3RpbGxWYWxpZCgp
KSB7CiAgICAgICAgIG1faml0LmdyYXBoKCkuZ2xvYmFsT2JqZWN0Rm9yKG1fY3VycmVudE5vZGUt
PmNvZGVPcmlnaW4pLT5tYXNxdWVyYWRlc0FzVW5kZWZpbmVkV2F0Y2hwb2ludCgpLT5hZGQoc3Bl
Y3VsYXRpb25XYXRjaHBvaW50KCkpOwogICAgICAgICBERkdfVFlQRV9DSEVDSygKQEAgLTE0NTQs
OCArMTQ1Niw5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQZWVwSG9sZU9iamUKICAg
ICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhvcDFHUFIsIEpTQ2VsbDo6c3Ry
dWN0dXJlT2Zmc2V0KCkpLCAKICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbVB0cihtX2ppdC5nbG9iYWxEYXRhKCktPnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpKTsKICAg
ICB9IGVsc2UgewotICAgICAgICBHUFJUZW1wb3Jhcnkgc3RydWN0dXJlKHRoaXMpOwotICAgICAg
ICBHUFJSZWcgc3RydWN0dXJlR1BSID0gc3RydWN0dXJlLmdwcigpOworICAgICAgICBHUFJUZW1w
b3JhcnkgcmVhbFN0cnVjdHVyZSh0aGlzKTsgLy8gT25seSBhbGxvY2F0ZSBvbiB0aGlzIHBhdGgK
KyAgICAgICAgc3RydWN0dXJlLmFkb3B0KHJlYWxTdHJ1Y3R1cmUpOworICAgICAgICBzdHJ1Y3R1
cmVHUFIgPSBzdHJ1Y3R1cmUuZ3ByKCk7CiAKICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyhvcDFHUFIsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0KCkpLCBzdHJ1
Y3R1cmVHUFIpOwogICAgICAgICBERkdfVFlQRV9DSEVDSygKQEAgLTE0ODUsOSArMTQ4OCw2IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQZWVwSG9sZU9iamUKICAgICAgICAgICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhvcDJQYXlsb2FkR1BSLCBKU0NlbGw6OnN0cnVjdHVy
ZU9mZnNldCgpKSwgCiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1Q
dHIobV9qaXQuZ2xvYmFsRGF0YSgpLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKSk7CiAgICAgfSBl
bHNlIHsKLSAgICAgICAgR1BSVGVtcG9yYXJ5IHN0cnVjdHVyZSh0aGlzKTsKLSAgICAgICAgR1BS
UmVnIHN0cnVjdHVyZUdQUiA9IHN0cnVjdHVyZS5ncHIoKTsKLQogICAgICAgICBtX2ppdC5sb2Fk
UHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKG9wMlBheWxvYWRHUFIsIEpTQ2VsbDo6c3RydWN0
dXJlT2Zmc2V0KCkpLCBzdHJ1Y3R1cmVHUFIpOwogICAgICAgICBERkdfVFlQRV9DSEVDSygKICAg
ICAgICAgICAgIEpTVmFsdWVSZWdzKG9wMlRhZ0dQUiwgb3AyUGF5bG9hZEdQUiksIHJpZ2h0Q2hp
bGQsICh+U3BlY0NlbGwpIHwgU3BlY09iamVjdCwKQEAgLTE1ODMsNyArMTU4MywxNSBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlT2JqZWN0T3JPdGhlCiAgICAgR1BSUmVnIHZhbHVlVGFn
R1BSID0gdmFsdWUudGFnR1BSKCk7CiAgICAgR1BSUmVnIHZhbHVlUGF5bG9hZEdQUiA9IHZhbHVl
LnBheWxvYWRHUFIoKTsKICAgICBHUFJSZWcgcmVzdWx0UGF5bG9hZEdQUiA9IHJlc3VsdFBheWxv
YWQuZ3ByKCk7Ci0gICAgCisgICAgR1BSVGVtcG9yYXJ5IHN0cnVjdHVyZTsKKyAgICBHUFJSZWcg
c3RydWN0dXJlR1BSID0gSW52YWxpZEdQUlJlZzsKKworICAgIGlmICghbV9qaXQuZ3JhcGgoKS5n
bG9iYWxPYmplY3RGb3IobV9jdXJyZW50Tm9kZS0+Y29kZU9yaWdpbiktPm1hc3F1ZXJhZGVzQXNV
bmRlZmluZWRXYXRjaHBvaW50KCktPmlzU3RpbGxWYWxpZCgpKSB7CisgICAgICAgIEdQUlRlbXBv
cmFyeSByZWFsU3RydWN0dXJlKHRoaXMpOyAvLyBPbmx5IGFsbG9jYXRlIG9uIHRoaXMgcGF0aCwg
YmVmb3JlIHRoZSBicmFuY2gKKyAgICAgICAgc3RydWN0dXJlLmFkb3B0KHJlYWxTdHJ1Y3R1cmUp
OworICAgICAgICBzdHJ1Y3R1cmVHUFIgPSBzdHJ1Y3R1cmUuZ3ByKCk7CisgICAgfQorCiAgICAg
TWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm90Q2VsbCA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1i
bGVyOjpOb3RFcXVhbCwgdmFsdWVUYWdHUFIsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFn
KSk7CiAgICAgaWYgKG1faml0LmdyYXBoKCkuZ2xvYmFsT2JqZWN0Rm9yKG1fY3VycmVudE5vZGUt
PmNvZGVPcmlnaW4pLT5tYXNxdWVyYWRlc0FzVW5kZWZpbmVkV2F0Y2hwb2ludCgpLT5pc1N0aWxs
VmFsaWQoKSkgewogICAgICAgICBtX2ppdC5ncmFwaCgpLmdsb2JhbE9iamVjdEZvcihtX2N1cnJl
bnROb2RlLT5jb2RlT3JpZ2luKS0+bWFzcXVlcmFkZXNBc1VuZGVmaW5lZFdhdGNocG9pbnQoKS0+
YWRkKHNwZWN1bGF0aW9uV2F0Y2hwb2ludCgpKTsKQEAgLTE1OTUsOSArMTYwMyw2IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RPck90aGUKICAgICAgICAgICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6QWRkcmVzcyh2YWx1ZVBheWxvYWRHUFIsIEpTQ2VsbDo6c3RydWN0dXJlT2Zm
c2V0KCkpLAogICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKG1f
aml0Lmdsb2JhbERhdGEoKS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSkpOwogICAgIH0gZWxzZSB7
Ci0gICAgICAgIEdQUlRlbXBvcmFyeSBzdHJ1Y3R1cmUodGhpcyk7Ci0gICAgICAgIEdQUlJlZyBz
dHJ1Y3R1cmVHUFIgPSBzdHJ1Y3R1cmUuZ3ByKCk7Ci0KICAgICAgICAgbV9qaXQubG9hZFB0cihN
YWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyh2YWx1ZVBheWxvYWRHUFIsIEpTQ2VsbDo6c3RydWN0dXJl
T2Zmc2V0KCkpLCBzdHJ1Y3R1cmVHUFIpOwogCiAgICAgICAgIERGR19UWVBFX0NIRUNLKApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwCShyZXZpc2lvbiAxNDU5MzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzY5LDcgKzEzNjksOSBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlT2JqZWN0VG9PYmplCiAgICAgR1BSUmVnIG9wMUdQ
UiA9IG9wMS5ncHIoKTsKICAgICBHUFJSZWcgb3AyR1BSID0gb3AyLmdwcigpOwogICAgIEdQUlJl
ZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7Ci0gICAKKyAgICBHUFJUZW1wb3Jhcnkgc3RydWN0
dXJlOworICAgIEdQUlJlZyBzdHJ1Y3R1cmVHUFIgPSBJbnZhbGlkR1BSUmVnOworCiAgICAgaWYg
KG1faml0LmdyYXBoKCkuZ2xvYmFsT2JqZWN0Rm9yKG1fY3VycmVudE5vZGUtPmNvZGVPcmlnaW4p
LT5tYXNxdWVyYWRlc0FzVW5kZWZpbmVkV2F0Y2hwb2ludCgpLT5pc1N0aWxsVmFsaWQoKSkgeyAK
ICAgICAgICAgbV9qaXQuZ3JhcGgoKS5nbG9iYWxPYmplY3RGb3IobV9jdXJyZW50Tm9kZS0+Y29k
ZU9yaWdpbiktPm1hc3F1ZXJhZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50KCktPmFkZChzcGVjdWxh
dGlvbldhdGNocG9pbnQoKSk7CiAgICAgICAgIERGR19UWVBFX0NIRUNLKApAQCAtMTM3OCw4ICsx
MzgwLDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdFRvT2JqZQogICAgICAg
ICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKG9wMUdQUiwgSlNDZWxsOjpzdHJ1Y3R1
cmVPZmZzZXQoKSksIAogICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
UHRyKG1faml0Lmdsb2JhbERhdGEoKS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSkpOwogICAgIH0g
ZWxzZSB7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSBzdHJ1Y3R1cmUodGhpcyk7Ci0gICAgICAgIEdQ
UlJlZyBzdHJ1Y3R1cmVHUFIgPSBzdHJ1Y3R1cmUuZ3ByKCk7CisgICAgICAgIEdQUlRlbXBvcmFy
eSByZWFsU3RydWN0dXJlKHRoaXMpOyAvLyBPbmx5IGFsbG9jYXRlIG9uIHRoaXMgcGF0aC4KKyAg
ICAgICAgc3RydWN0dXJlLmFkb3B0KHJlYWxTdHJ1Y3R1cmUpOworICAgICAgICBzdHJ1Y3R1cmVH
UFIgPSBzdHJ1Y3R1cmUuZ3ByKCk7CiAKICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhvcDFHUFIsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0KCkpLCBzdHJ1Y3R1
cmVHUFIpOwogICAgICAgICBERkdfVFlQRV9DSEVDSygKQEAgLTE0MDgsOSArMTQxMSw2IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RUb09iamUKICAgICAgICAgICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhvcDJHUFIsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0KCkp
LCAKICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihtX2ppdC5n
bG9iYWxEYXRhKCktPnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpKTsKICAgICB9IGVsc2UgewotICAg
ICAgICBHUFJUZW1wb3Jhcnkgc3RydWN0dXJlKHRoaXMpOwotICAgICAgICBHUFJSZWcgc3RydWN0
dXJlR1BSID0gc3RydWN0dXJlLmdwcigpOwotCiAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3Mob3AyR1BSLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwgc3Ry
dWN0dXJlR1BSKTsKICAgICAgICAgREZHX1RZUEVfQ0hFQ0soCiAgICAgICAgICAgICBKU1ZhbHVl
UmVncyhvcDJHUFIpLCByaWdodENoaWxkLCAoflNwZWNDZWxsKSB8IFNwZWNPYmplY3QsIG1faml0
LmJyYW5jaFB0cigKQEAgLTE0NjcsNiArMTQ2Nyw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVQZWVwSG9sZU9iamUKICAgICBHUFJSZWcgb3AxR1BSID0gb3AxLmdwcigpOwogICAgIEdQ
UlJlZyBvcDJHUFIgPSBvcDIuZ3ByKCk7CiAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5n
cHIoKTsKKyAgICBHUFJUZW1wb3Jhcnkgc3RydWN0dXJlOworICAgIEdQUlJlZyBzdHJ1Y3R1cmVH
UFIgPSBJbnZhbGlkR1BSUmVnOwogICAgIAogICAgIGlmIChtX2ppdC5ncmFwaCgpLmdsb2JhbE9i
amVjdEZvcihtX2N1cnJlbnROb2RlLT5jb2RlT3JpZ2luKS0+bWFzcXVlcmFkZXNBc1VuZGVmaW5l
ZFdhdGNocG9pbnQoKS0+aXNTdGlsbFZhbGlkKCkpIHsKICAgICAgICAgbV9qaXQuZ3JhcGgoKS5n
bG9iYWxPYmplY3RGb3IobV9jdXJyZW50Tm9kZS0+Y29kZU9yaWdpbiktPm1hc3F1ZXJhZGVzQXNV
bmRlZmluZWRXYXRjaHBvaW50KCktPmFkZChzcGVjdWxhdGlvbldhdGNocG9pbnQoKSk7CkBAIC0x
NDc2LDggKzE0NzgsOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUGVlcEhvbGVPYmpl
CiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mob3AxR1BSLCBKU0NlbGw6
OnN0cnVjdHVyZU9mZnNldCgpKSwgCiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRy
dXN0ZWRJbW1QdHIobV9qaXQuZ2xvYmFsRGF0YSgpLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKSk7
CiAgICAgfSBlbHNlIHsKLSAgICAgICAgR1BSVGVtcG9yYXJ5IHN0cnVjdHVyZSh0aGlzKTsKLSAg
ICAgICAgR1BSUmVnIHN0cnVjdHVyZUdQUiA9IHN0cnVjdHVyZS5ncHIoKTsKKyAgICAgICAgR1BS
VGVtcG9yYXJ5IHJlYWxTdHJ1Y3R1cmUodGhpcyk7IC8vIE9ubHkgYWxsb2NhdGUgb24gdGhpcyBw
YXRoCisgICAgICAgIHN0cnVjdHVyZS5hZG9wdChyZWFsU3RydWN0dXJlKTsKKyAgICAgICAgc3Ry
dWN0dXJlR1BSID0gc3RydWN0dXJlLmdwcigpOwogCiAgICAgICAgIG1faml0LmxvYWRQdHIoTWFj
cm9Bc3NlbWJsZXI6OkFkZHJlc3Mob3AxR1BSLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwg
c3RydWN0dXJlR1BSKTsKICAgICAgICAgREZHX1RZUEVfQ0hFQ0soCkBAIC0xNDkxLDcgKzE0OTQs
NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUGVlcEhvbGVPYmplCiAgICAgICAgICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RydWN0dXJlR1BSLCBTdHJ1Y3R1cmU6OnR5
cGVJbmZvRmxhZ3NPZmZzZXQoKSksIAogICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tMzIoTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCkpKTsKICAgICB9Ci0gICAgCisKICAg
ICAvLyBJdCBzZWVtcyB0aGF0IG1vc3Qgb2YgdGhlIHRpbWUgd2hlbiBwcm9ncmFtcyBkbyBhID09
IGIgd2hlcmUgYiBtYXkgYmUgZWl0aGVyIG51bGwvdW5kZWZpbmVkCiAgICAgLy8gb3IgYW4gb2Jq
ZWN0LCBiIGlzIHVzdWFsbHkgYW4gb2JqZWN0LiBCYWxhbmNlIHRoZSBicmFuY2hlcyB0byBtYWtl
IHRoYXQgY2FzZSBmYXN0LgogICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHJpZ2h0Tm90Q2VsbCA9
CkBAIC0xNTA2LDkgKzE1MDksNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUGVlcEhv
bGVPYmplCiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mob3AyR1BSLCBK
U0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwgCiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQuZ2xvYmFsRGF0YSgpLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0
KCkpKSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgR1BSVGVtcG9yYXJ5IHN0cnVjdHVyZSh0aGlz
KTsKLSAgICAgICAgR1BSUmVnIHN0cnVjdHVyZUdQUiA9IHN0cnVjdHVyZS5ncHIoKTsKLQogICAg
ICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKG9wMkdQUiwgSlNDZWxs
OjpzdHJ1Y3R1cmVPZmZzZXQoKSksIHN0cnVjdHVyZUdQUik7CiAgICAgICAgIERGR19UWVBFX0NI
RUNLKAogICAgICAgICAgICAgSlNWYWx1ZVJlZ3Mob3AyR1BSKSwgcmlnaHRDaGlsZCwgKH5TcGVj
Q2VsbCkgfCBTcGVjT2JqZWN0LCBtX2ppdC5icmFuY2hQdHIoCkBAIC0xNTk5LDcgKzE1OTksMTUg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdE9yT3RoZQogICAgIEdQUlRlbXBv
cmFyeSByZXN1bHQodGhpcyk7CiAgICAgR1BSUmVnIHZhbHVlR1BSID0gdmFsdWUuZ3ByKCk7CiAg
ICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKLSAgICAKKyAgICBHUFJUZW1wb3Jh
cnkgc3RydWN0dXJlOworICAgIEdQUlJlZyBzdHJ1Y3R1cmVHUFIgPSBJbnZhbGlkR1BSUmVnOwor
CisgICAgaWYgKCFtX2ppdC5ncmFwaCgpLmdsb2JhbE9iamVjdEZvcihtX2N1cnJlbnROb2RlLT5j
b2RlT3JpZ2luKS0+bWFzcXVlcmFkZXNBc1VuZGVmaW5lZFdhdGNocG9pbnQoKS0+aXNTdGlsbFZh
bGlkKCkpIHsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHJlYWxTdHJ1Y3R1cmUodGhpcyk7IC8vIE9u
bHkgYWxsb2NhdGUgb24gdGhpcyBwYXRoLCBiZWZvcmUgdGhlIGJyYW5jaAorICAgICAgICBzdHJ1
Y3R1cmUuYWRvcHQocmVhbFN0cnVjdHVyZSk7CisgICAgICAgIHN0cnVjdHVyZUdQUiA9IHN0cnVj
dHVyZS5ncHIoKTsKKyAgICB9CisKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3RDZWxsID0g
bV9qaXQuYnJhbmNoVGVzdDY0KE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLCB2YWx1ZUdQUiwgR1BS
SW5mbzo6dGFnTWFza1JlZ2lzdGVyKTsKICAgICBpZiAobV9qaXQuZ3JhcGgoKS5nbG9iYWxPYmpl
Y3RGb3IobV9jdXJyZW50Tm9kZS0+Y29kZU9yaWdpbiktPm1hc3F1ZXJhZGVzQXNVbmRlZmluZWRX
YXRjaHBvaW50KCktPmlzU3RpbGxWYWxpZCgpKSB7CiAgICAgICAgIG1faml0LmdyYXBoKCkuZ2xv
YmFsT2JqZWN0Rm9yKG1fY3VycmVudE5vZGUtPmNvZGVPcmlnaW4pLT5tYXNxdWVyYWRlc0FzVW5k
ZWZpbmVkV2F0Y2hwb2ludCgpLT5hZGQoc3BlY3VsYXRpb25XYXRjaHBvaW50KCkpOwpAQCAtMTYw
OSw5ICsxNjE3LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdE9yT3RoZQog
ICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHZhbHVlR1BSLCBKU0NlbGw6
OnN0cnVjdHVyZU9mZnNldCgpKSwKICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbVB0cihtX2ppdC5nbG9iYWxEYXRhKCktPnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpKTsK
ICAgICB9IGVsc2UgewotICAgICAgICBHUFJUZW1wb3Jhcnkgc3RydWN0dXJlKHRoaXMpOwotICAg
ICAgICBHUFJSZWcgc3RydWN0dXJlR1BSID0gc3RydWN0dXJlLmdwcigpOwotCiAgICAgICAgIG1f
aml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3ModmFsdWVHUFIsIEpTQ2VsbDo6c3Ry
dWN0dXJlT2Zmc2V0KCkpLCBzdHJ1Y3R1cmVHUFIpOwogCiAgICAgICAgIERGR19UWVBFX0NIRUNL
KApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gMTQ1OTYwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTMtMDMtMTUgIE1pY2hhZWwgU2Fib2Zm
ICA8bXNhYm9mZkBhcHBsZS5jb20+CisKKyAgICAgICAgUG90ZW50aWFsbHkgdW5zYWZlIHJlZ2lz
dGVyIGFsbG9jYXRpb25zIGluIERGRyBjb2RlIGdlbmVyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjQ3NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyB0ZXN0cyBhZGRlZCB0byB2ZXJpZnkg
cHJvcGVyIG9wZXJhdGlvbiBvZgorICAgICAgICBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVj
dFRvT2JqZWN0T3JPdGhlckVxdWFsaXR5LAorICAgICAgICBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZVBlZXBIb2xlT2JqZWN0VG9PYmplY3RPck90aGVyRXF1YWxpdHkKKyAgICAgICAgYW5kIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlT2JqZWN0T3JPdGhlckxvZ2ljYWxOb3QuCisKKyAgICAgICAgKiBm
YXN0L2pzL2RmZy1jb21wYXJlLWZpbmFsLW9iamVjdC10by1maW5hbC1vYmplY3Qtb3Itb3RoZXIt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL2RmZy1jb21wYXJlLWZpbmFs
LW9iamVjdC10by1maW5hbC1vYmplY3Qtb3Itb3RoZXIuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9qcy9kZmctbG9naWNhbC1ub3QtZmluYWwtb2JqZWN0LW9yLW90aGVyLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9kZmctbG9naWNhbC1ub3QtZmluYWwtb2JqZWN0
LW9yLW90aGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvZGZnLXBlZXBob2xlLWNv
bXBhcmUtZmluYWwtb2JqZWN0LXRvLWZpbmFsLW9iamVjdC1vci1vdGhlci1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvZGZnLXBlZXBob2xlLWNvbXBhcmUtZmluYWwtb2Jq
ZWN0LXRvLWZpbmFsLW9iamVjdC1vci1vdGhlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2pzL3NjcmlwdC10ZXN0cy9kZmctY29tcGFyZS1maW5hbC1vYmplY3QtdG8tZmluYWwtb2JqZWN0
LW9yLW90aGVyLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmct
bG9naWNhbC1ub3QtZmluYWwtb2JqZWN0LW9yLW90aGVyLmpzOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctcGVlcGhvbGUtY29tcGFyZS1maW5hbC1vYmplY3QtdG8t
ZmluYWwtb2JqZWN0LW9yLW90aGVyLmpzOiBBZGRlZC4KKwogMjAxMy0wMy0xNSAgQXVyaW1hcyBM
aXV0aWthcyAgPGF1cmltYXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFRleHRJdGVyYXRvciBl
bWl0cyBMRiBmb3IgYSBiciBlbGVtZW50IGluc2lkZSBhbiBlbXB0eSBpbnB1dCBlbGVtZW50Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1jb21wYXJlLWZpbmFsLW9iamVjdC10by1maW5h
bC1vYmplY3Qtb3Itb3RoZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvanMvZGZnLWNvbXBhcmUtZmluYWwtb2JqZWN0LXRvLWZpbmFsLW9iamVjdC1vci1vdGhl
ci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1j
b21wYXJlLWZpbmFsLW9iamVjdC10by1maW5hbC1vYmplY3Qtb3Itb3RoZXItZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwOSBAQAorVGVzdHMgdGhhdCBDb21wYXJlRXEgZm9y
IHRoZSBjYXNlIHdoZXJlIG9uZSBzaWRlIGlzIHByZWRpY3RlZCBmaW5hbCBvYmplY3QgYW5kIHRo
ZSBvdGhlciBzaWRlIGlzIHByZWRpY3RlZCBlaXRoZXIgZmluYWwgb2JqZWN0IG9yIG90aGVyIChp
LmUuIG51bGwgb3IgdW5kZWZpbmVkKSB3aGVuIGRvY3VtZW50LmFsbCBpcyBwcmVzZW50LgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBmb28oe2Y6NDJ9LCBudWxsKSBpcyBm
YWxzZQorUEFTUyBmb28obywgbykgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvZGZnLWNv
bXBhcmUtZmluYWwtb2JqZWN0LXRvLWZpbmFsLW9iamVjdC1vci1vdGhlci5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvZGZnLWNvbXBhcmUtZmluYWwtb2JqZWN0LXRvLWZp
bmFsLW9iamVjdC1vci1vdGhlci5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9qcy9kZmctY29tcGFyZS1maW5hbC1vYmplY3QtdG8tZmluYWwtb2JqZWN0LW9yLW90aGVyLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy9kZmctY29tcGFyZS1maW5hbC1vYmplY3QtdG8tZmluYWwtb2Jq
ZWN0LW9yLW90aGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvanMvZGZnLWxvZ2ljYWwtbm90LWZpbmFsLW9iamVjdC1vci1vdGhlci1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctbG9naWNhbC1ub3QtZmlu
YWwtb2JqZWN0LW9yLW90aGVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2Zhc3QvanMvZGZnLWxvZ2ljYWwtbm90LWZpbmFsLW9iamVjdC1vci1vdGhlci1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTA5IEBACitUZXN0cyB0aGF0IGxvZ2ljYWwg
bm90IG9mIGFuIG9iamVjdCB3aGVyZSBpdCBpcyBwcmVkaWN0ZWQgZWl0aGVyIGZpbmFsIG9iamVj
dCBvciBvdGhlciAoaS5lLiBudWxsIG9yIHVuZGVmaW5lZCkgcGVyZm9ybXMgY29ycmVjdGx5IHdo
ZW4gZG9jdW1lbnQuYWxsIGlzIHByZXNlbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGZvbyhudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obykgaXMgdHJ1ZQorUEFTUyBm
b28obnVsbCkgaXMgZmFsc2UKK1BBU1MgZm9vKG8pIGlzIHRydWUKK1BBU1MgZm9vKG51bGwpIGlz
IGZhbHNlCitQQVNTIGZvbyhvKSBpcyB0cnVlCitQQVNTIGZvbyhudWxsKSBpcyBmYWxzZQorUEFT
UyBmb28obykgaXMgdHJ1ZQorUEFTUyBmb28obnVsbCkgaXMgZmFsc2UKK1BBU1MgZm9vKG8pIGlz
IHRydWUKK1BBU1MgZm9vKG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvKSBpcyB0cnVlCitQQVNT
IGZvbyhudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obykgaXMgdHJ1ZQorUEFTUyBmb28obnVsbCkg
aXMgZmFsc2UKK1BBU1MgZm9vKG8pIGlzIHRydWUKK1BBU1MgZm9vKG51bGwpIGlzIGZhbHNlCitQ
QVNTIGZvbyhvKSBpcyB0cnVlCitQQVNTIGZvbyhudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obykg
aXMgdHJ1ZQorUEFTUyBmb28obnVsbCkgaXMgZmFsc2UKK1BBU1MgZm9vKG8pIGlzIHRydWUKK1BB
U1MgZm9vKG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvKSBpcyB0cnVlCitQQVNTIGZvbyhudWxs
KSBpcyBmYWxzZQorUEFTUyBmb28obykgaXMgdHJ1ZQorUEFTUyBmb28obnVsbCkgaXMgZmFsc2UK
K1BBU1MgZm9vKG8pIGlzIHRydWUKK1BBU1MgZm9vKG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhv
KSBpcyB0cnVlCitQQVNTIGZvbyhudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obykgaXMgdHJ1ZQor
UEFTUyBmb28obnVsbCkgaXMgZmFsc2UKK1BBU1MgZm9vKG8pIGlzIHRydWUKK1BBU1MgZm9vKG51
bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvKSBpcyB0cnVlCitQQVNTIGZvbyhudWxsKSBpcyBmYWxz
ZQorUEFTUyBmb28obykgaXMgdHJ1ZQorUEFTUyBmb28obnVsbCkgaXMgZmFsc2UKK1BBU1MgZm9v
KG8pIGlzIHRydWUKK1BBU1MgZm9vKG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvKSBpcyB0cnVl
CitQQVNTIGZvbyhudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obykgaXMgdHJ1ZQorUEFTUyBmb28o
bnVsbCkgaXMgZmFsc2UKK1BBU1MgZm9vKG8pIGlzIHRydWUKK1BBU1MgZm9vKG51bGwpIGlzIGZh
bHNlCitQQVNTIGZvbyhvKSBpcyB0cnVlCitQQVNTIGZvbyhudWxsKSBpcyBmYWxzZQorUEFTUyBm
b28obykgaXMgdHJ1ZQorUEFTUyBmb28obnVsbCkgaXMgZmFsc2UKK1BBU1MgZm9vKG8pIGlzIHRy
dWUKK1BBU1MgZm9vKG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvKSBpcyB0cnVlCitQQVNTIGZv
byhudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obykgaXMgdHJ1ZQorUEFTUyBmb28obnVsbCkgaXMg
ZmFsc2UKK1BBU1MgZm9vKG8pIGlzIHRydWUKK1BBU1MgZm9vKG51bGwpIGlzIGZhbHNlCitQQVNT
IGZvbyhvKSBpcyB0cnVlCitQQVNTIGZvbyhudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obykgaXMg
dHJ1ZQorUEFTUyBmb28obnVsbCkgaXMgZmFsc2UKK1BBU1MgZm9vKG8pIGlzIHRydWUKK1BBU1Mg
Zm9vKG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvKSBpcyB0cnVlCitQQVNTIGZvbyhudWxsKSBp
cyBmYWxzZQorUEFTUyBmb28obykgaXMgdHJ1ZQorUEFTUyBmb28obnVsbCkgaXMgZmFsc2UKK1BB
U1MgZm9vKG8pIGlzIHRydWUKK1BBU1MgZm9vKG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvKSBp
cyB0cnVlCitQQVNTIGZvbyhudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obykgaXMgdHJ1ZQorUEFT
UyBmb28obnVsbCkgaXMgZmFsc2UKK1BBU1MgZm9vKG8pIGlzIHRydWUKK1BBU1MgZm9vKG51bGwp
IGlzIGZhbHNlCitQQVNTIGZvbyhvKSBpcyB0cnVlCitQQVNTIGZvbyhudWxsKSBpcyBmYWxzZQor
UEFTUyBmb28obykgaXMgdHJ1ZQorUEFTUyBmb28obnVsbCkgaXMgZmFsc2UKK1BBU1MgZm9vKG8p
IGlzIHRydWUKK1BBU1MgZm9vKG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvKSBpcyB0cnVlCitQ
QVNTIGZvbyhudWxsKSBpcyBmYWxzZQorUEFTUyBmb28obykgaXMgdHJ1ZQorUEFTUyBmb28obnVs
bCkgaXMgZmFsc2UKK1BBU1MgZm9vKG8pIGlzIHRydWUKK1BBU1MgZm9vKG51bGwpIGlzIGZhbHNl
CitQQVNTIGZvbyhvKSBpcyB0cnVlCitQQVNTIGZvbyhudWxsKSBpcyBmYWxzZQorUEFTUyBmb28o
bykgaXMgdHJ1ZQorUEFTUyBmb28obnVsbCkgaXMgZmFsc2UKK1BBU1MgZm9vKG8pIGlzIHRydWUK
K1BBU1MgZm9vKG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvKSBpcyB0cnVlCitQQVNTIGZvbyhu
dWxsKSBpcyBmYWxzZQorUEFTUyBmb28obykgaXMgdHJ1ZQorUEFTUyBmb28obnVsbCkgaXMgZmFs
c2UKK1BBU1MgZm9vKG8pIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1sb2dpY2Fs
LW5vdC1maW5hbC1vYmplY3Qtb3Itb3RoZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2pzL2RmZy1sb2dpY2FsLW5vdC1maW5hbC1vYmplY3Qtb3Itb3RoZXIuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvZGZnLWxvZ2ljYWwtbm90LWZpbmFsLW9i
amVjdC1vci1vdGhlci5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZGZnLWxvZ2ljYWwtbm90LWZpbmFs
LW9iamVjdC1vci1vdGhlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2pzL2RmZy1wZWVwaG9sZS1jb21wYXJlLWZpbmFsLW9iamVjdC10by1maW5hbC1v
YmplY3Qtb3Itb3RoZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvanMvZGZnLXBlZXBob2xlLWNvbXBhcmUtZmluYWwtb2JqZWN0LXRvLWZpbmFsLW9iamVjdC1v
ci1vdGhlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pz
L2RmZy1wZWVwaG9sZS1jb21wYXJlLWZpbmFsLW9iamVjdC10by1maW5hbC1vYmplY3Qtb3Itb3Ro
ZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwOSBAQAorVGVzdHMgdGhh
dCAoUGVlcGhvbGUpIENvbXBhcmVFcSBmb3IgdGhlIGNhc2Ugd2hlcmUgb25lIHNpZGUgaXMgcHJl
ZGljdGVkIGZpbmFsIG9iamVjdCBhbmQgdGhlIG90aGVyIHNpZGUgaXMgcHJlZGljdGVkIGVpdGhl
ciBmaW5hbCBvYmplY3Qgb3Igb3RoZXIgKGkuZS4gbnVsbCBvciB1bmRlZmluZWQpIHdoZW4gZG9j
dW1lbnQuYWxsIGlzIHByZXNlbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIGZvbyh7Zjo0Mn0sIG51bGwpIGlzIGZhbHNlCitQQVNTIGZvbyhvLCBvKSBpcyB0cnVlCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctcGVlcGhvbGUtY29tcGFyZS1maW5hbC1vYmplY3QtdG8t
ZmluYWwtb2JqZWN0LW9yLW90aGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9qcy9kZmctcGVlcGhvbGUtY29tcGFyZS1maW5hbC1vYmplY3QtdG8tZmluYWwtb2JqZWN0LW9y
LW90aGVyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1wZWVw
aG9sZS1jb21wYXJlLWZpbmFsLW9iamVjdC10by1maW5hbC1vYmplY3Qtb3Itb3RoZXIuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNy
Yz0ic2NyaXB0LXRlc3RzL2RmZy1wZWVwaG9sZS1jb21wYXJlLWZpbmFsLW9iamVjdC10by1maW5h
bC1vYmplY3Qtb3Itb3RoZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLWNvbXBhcmUtZmluYWwtb2JqZWN0LXRvLWZp
bmFsLW9iamVjdC1vci1vdGhlci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pz
L3NjcmlwdC10ZXN0cy9kZmctY29tcGFyZS1maW5hbC1vYmplY3QtdG8tZmluYWwtb2JqZWN0LW9y
LW90aGVyLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVz
dHMvZGZnLWNvbXBhcmUtZmluYWwtb2JqZWN0LXRvLWZpbmFsLW9iamVjdC1vci1vdGhlci5qcwko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNyBAQAorZGVzY3JpcHRpb24oCisiVGVzdHMgdGhhdCBD
b21wYXJlRXEgZm9yIHRoZSBjYXNlIHdoZXJlIG9uZSBzaWRlIGlzIHByZWRpY3RlZCBmaW5hbCBv
YmplY3QgYW5kIHRoZSBvdGhlciBzaWRlIGlzIHByZWRpY3RlZCBlaXRoZXIgZmluYWwgb2JqZWN0
IG9yIG90aGVyIChpLmUuIG51bGwgb3IgdW5kZWZpbmVkKSB3aGVuIGRvY3VtZW50LmFsbCBpcyBw
cmVzZW50LiIKKyk7CisKK2lmIChkb2N1bWVudC5hbGwpCisgICAgdmFyIHVudXNlZCA9IDE7CisK
K2Z1bmN0aW9uIGZvbyhhLCBiKSB7CisgICAgdmFyIHJlc3VsdCA9IGZhbHNlOworICAgIHZhciBl
cSA9IChhID09IGIpOworCisgICAgaWYgKGIgPT0gNDIpCisJcmV0dXJuIC0xOworCisgICAgaWYg
KGVxKQorICAgICAgICByZXN1bHQgPSB0cnVlOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Zv
ciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKKyAgICBpZiAoaSUyKSB7CisgICAgICAgIHZh
ciBvID0ge2Y6NDJ9OworICAgICAgICBzaG91bGRCZSgiZm9vKG8sIG8pIiwgInRydWUiKTsKKyAg
ICB9IGVsc2UKKyAgICAgICAgc2hvdWxkQmUoImZvbyh7Zjo0Mn0sIG51bGwpIiwgImZhbHNlIik7
Cit9CisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2RmZy1sb2dpY2Fs
LW5vdC1maW5hbC1vYmplY3Qtb3Itb3RoZXIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLWxvZ2ljYWwtbm90LWZpbmFsLW9iamVjdC1vci1vdGhl
ci5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2Rm
Zy1sb2dpY2FsLW5vdC1maW5hbC1vYmplY3Qtb3Itb3RoZXIuanMJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMjYgQEAKK2Rlc2NyaXB0aW9uKAorIlRlc3RzIHRoYXQgbG9naWNhbCBub3Qgb2YgYW4g
b2JqZWN0IHdoZXJlIGl0IGlzIHByZWRpY3RlZCBlaXRoZXIgZmluYWwgb2JqZWN0IG9yIG90aGVy
IChpLmUuIG51bGwgb3IgdW5kZWZpbmVkKSBwZXJmb3JtcyBjb3JyZWN0bHkgd2hlbiBkb2N1bWVu
dC5hbGwgaXMgcHJlc2VudC4iCispOworCitpZiAoZG9jdW1lbnQuYWxsKQorICAgIHZhciB1bnVz
ZWQgPSAxOworCitmdW5jdGlvbiBmb28oYSkgeworICAgIHZhciB0ID0gIWE7CisKKyAgICBpZiAo
YSA9PSAxNikKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgaWYgKHQpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7
ICsraSkgeworICAgIGlmIChpJTIpIHsKKyAgICAgICAgdmFyIG8gPSB7Zjo0Mn07CisgICAgICAg
IHNob3VsZEJlKCJmb28obykiLCAidHJ1ZSIpOworICAgIH0gZWxzZQorICAgICAgICBzaG91bGRC
ZSgiZm9vKG51bGwpIiwgImZhbHNlIik7Cit9CisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMv
c2NyaXB0LXRlc3RzL2RmZy1wZWVwaG9sZS1jb21wYXJlLWZpbmFsLW9iamVjdC10by1maW5hbC1v
YmplY3Qtb3Itb3RoZXIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3Jp
cHQtdGVzdHMvZGZnLXBlZXBob2xlLWNvbXBhcmUtZmluYWwtb2JqZWN0LXRvLWZpbmFsLW9iamVj
dC1vci1vdGhlci5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0
LXRlc3RzL2RmZy1wZWVwaG9sZS1jb21wYXJlLWZpbmFsLW9iamVjdC10by1maW5hbC1vYmplY3Qt
b3Itb3RoZXIuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjMgQEAKK2Rlc2NyaXB0aW9uKAor
IlRlc3RzIHRoYXQgKFBlZXBob2xlKSBDb21wYXJlRXEgZm9yIHRoZSBjYXNlIHdoZXJlIG9uZSBz
aWRlIGlzIHByZWRpY3RlZCBmaW5hbCBvYmplY3QgYW5kIHRoZSBvdGhlciBzaWRlIGlzIHByZWRp
Y3RlZCBlaXRoZXIgZmluYWwgb2JqZWN0IG9yIG90aGVyIChpLmUuIG51bGwgb3IgdW5kZWZpbmVk
KSB3aGVuIGRvY3VtZW50LmFsbCBpcyBwcmVzZW50LiIKKyk7CisKK2lmIChkb2N1bWVudC5hbGwp
CisgICAgdmFyIHVudXNlZCA9IDE7CisKK2Z1bmN0aW9uIGZvbyhhLCBiKSB7CisgICAgdmFyIHJl
c3VsdCA9IGZhbHNlOworCisgICAgaWYgKGEgPT0gYikKKyAgICAgICAgcmVzdWx0ID0gdHJ1ZTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDsgKytpKSB7
CisgICAgaWYgKGklMikgeworICAgICAgICB2YXIgbyA9IHtmOjQyfTsKKyAgICAgICAgc2hvdWxk
QmUoImZvbyhvLCBvKSIsICJ0cnVlIik7CisgICAgfSBlbHNlCisgICAgICAgIHNob3VsZEJlKCJm
b28oe2Y6NDJ9LCBudWxsKSIsICJmYWxzZSIpOworfQorCg==
</data>
<flag name="review"
          id="214930"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>