<?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>131511</bug_id>
          
          <creation_ts>2014-04-10 15:19:22 -0700</creation_ts>
          <short_desc>[CSS Regions] Selection highlight doesn&apos;t match DOM selection</short_desc>
          <delta_ts>2014-04-23 04:45:09 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>118668</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Manuel Rego Casasnovas">rego</reporter>
          <assigned_to name="Manuel Rego Casasnovas">rego</assigned_to>
          <cc>abucur</cc>
    
    <cc>bunhere</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hyatt</cc>
    
    <cc>jfernandez</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mihnea</cc>
    
    <cc>rakuco</cc>
    
    <cc>sergio</cc>
    
    <cc>WebkitBugTracker</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>999666</commentid>
    <comment_count>0</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-04-10 15:19:22 -0700</bug_when>
    <thetext>Selection in CSS Regions does not always highlight the same content that is actually selected in the DOM (and returned when you copy&amp;paste).

The main issue is that &quot;content nodes&quot; (the ones with -webkit-flow-into) property are moved to a special subtrees in the Render Tree. Where they appear as children of RenderFlowThread elements.

Selection highlight is based on the Render Tree, it traverse the Render Objects from start to end marking the elements as selected. There&apos;re several problems when you mix this with the RenderFlowThreads:
* You can start the selection in the RenderFlowThrea subtree and finish in the regular subtree. And the selection algorithm might not reach the end from the start (this issue was fixed in r155058 by bug #119622 with a workaround).
* The selection doesn&apos;t process the elements that have been moved to the RenderFlowThrea subtree even when in the DOM they were actually between start and end.

These problems cause that selected content and highlight does not always match.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999679</commentid>
    <comment_count>1</comment_count>
      <attachid>229086</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-04-10 16:15:10 -0700</bug_when>
    <thetext>Created attachment 229086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999680</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-10 16:17:21 -0700</bug_when>
    <thetext>Attachment 229086 did not pass style-queue:


ERROR: Source/WebCore/rendering/RenderView.h:292:  The parameter name &quot;end&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999681</commentid>
    <comment_count>3</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-04-10 16:21:44 -0700</bug_when>
    <thetext>I&apos;ve just uploaded a patch to fix these problems using the following approach:
* We divide the Render tree in subtrees (one subtree will be the RenderView and then one subtree per RenderFlowThread).
* For each subtree we calculate the start and end positions according to the DOM selection.
* Then we call the selection methods in RenderView for each subtree.

You can find more detailed information about this approach at: https://github.com/Igalia/css-regions-selection/wiki/Selection-&amp;-CSS-Regions#subtrees-approach</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999818</commentid>
    <comment_count>4</comment_count>
      <attachid>229113</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-04-11 00:43:12 -0700</bug_when>
    <thetext>Created attachment 229113
Patch

Trying to fix Windows build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999819</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-11 00:45:16 -0700</bug_when>
    <thetext>Attachment 229113 did not pass style-queue:


ERROR: Source/WebCore/rendering/RenderView.h:292:  The parameter name &quot;end&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999837</commentid>
    <comment_count>6</comment_count>
      <attachid>229113</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2014-04-11 02:33:42 -0700</bug_when>
    <thetext>Comment on attachment 229113
Patch

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

Really happy to see this work moving forward. This is just an informal review as this is not my expertise area.

&gt; Source/WebCore/ChangeLog:11
&gt; +        then for each RenderFlowThread (which are siblings of RenderView) we will have an extra subtree.

Children, not siblings.

&gt; Source/WebCore/rendering/RenderObject.cpp:1545
&gt; +    RenderFlowThread* flowThread = flowThreadContainingBlock();

Maybe we can create a selectionRoot() function on RenderObject that could abstract this. Probably there will be other type of roots in the future (flexbox maybe?).

&gt; Source/WebCore/rendering/RenderView.cpp:664
&gt; +    for (RenderObject* child = firstChild(); child; child = child-&gt;nextSibling()) {

This loop should be moved inside FlowThreadController. There&apos;s a list of all the named flow threads. We&apos;ll also get better regions code encapsulation.

&gt; Source/WebCore/rendering/RenderView.cpp:717
&gt; +    for (RenderObject* child = firstChild(); child; child = child-&gt;nextSibling()) {

Same as above. Move this inside FlowThreadController.

&gt; Source/WebCore/rendering/RenderView.cpp:784
&gt; +    for (RenderObject* child = firstChild(); child; child = child-&gt;nextSibling()) {

Move this to FlowThreadController.

&gt; Source/WebCore/rendering/RenderView.cpp:795
&gt; +        RefPtr&lt;Range&gt; initialRange = Range::create(document(), start-&gt;node(), startPos, end-&gt;node(), endPos);

Maybe you can put the code below inside a helper function with a suggestive name :). Something like splitSelectionBetweenSubtreeRoots() or setSelectionInsideSubtreeRoots() that&apos;s called if there&apos;s more than one subtree (if you have named flows).

&gt; Source/WebCore/rendering/RenderView.cpp:806
&gt; +            SelectionSubtreeRoot* flowThread = renderer-&gt;flowThreadContainingBlock();

You could use renderer-&gt;selectionRoot() here as I suggested above.

&gt; Source/WebCore/rendering/RenderView.cpp:-816
&gt; -    m_selectionStart = start;

Shouldn&apos;t we also delete these fields from RenderView.h? They are encapsulated inside the root object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999854</commentid>
    <comment_count>7</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-04-11 05:31:15 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 229113 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=229113&amp;action=review
&gt; 
&gt; Really happy to see this work moving forward. This is just an informal review as this is not my expertise area.

Thanks for the quick review.

&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +        then for each RenderFlowThread (which are siblings of RenderView) we will have an extra subtree.
&gt; 
&gt; Children, not siblings.

Yep.

&gt; &gt; Source/WebCore/rendering/RenderObject.cpp:1545
&gt; &gt; +    RenderFlowThread* flowThread = flowThreadContainingBlock();
&gt; 
&gt; Maybe we can create a selectionRoot() function on RenderObject that could abstract this. Probably there will be other type of roots in the future (flexbox maybe?).

I have created it, as it makes the code simpler and easier to understand.

As a side note, I&apos;m not sure if it&apos;ll be needed for other cases, as regions is the only one breaking the order of the DOM tree in the Render tree so far. More info at:
https://github.com/Igalia/css-regions-selection/wiki/Selection-&amp;-Other-layout-models

&gt; &gt; Source/WebCore/rendering/RenderView.cpp:664
&gt; &gt; +    for (RenderObject* child = firstChild(); child; child = child-&gt;nextSibling()) {
&gt; 
&gt; This loop should be moved inside FlowThreadController. There&apos;s a list of all the named flow threads. We&apos;ll also get better regions code encapsulation.

Great, didn&apos;t realize about FlowThreadController.

&gt; &gt; Source/WebCore/rendering/RenderView.cpp:795
&gt; &gt; +        RefPtr&lt;Range&gt; initialRange = Range::create(document(), start-&gt;node(), startPos, end-&gt;node(), endPos);
&gt; 
&gt; Maybe you can put the code below inside a helper function with a suggestive name :). Something like splitSelectionBetweenSubtreeRoots() or setSelectionInsideSubtreeRoots() that&apos;s called if there&apos;s more than one subtree (if you have named flows).

Nice suggestion, I&apos;ve moved it to a new method.

&gt; &gt; Source/WebCore/rendering/RenderView.cpp:806
&gt; &gt; +            SelectionSubtreeRoot* flowThread = renderer-&gt;flowThreadContainingBlock();
&gt; 
&gt; You could use renderer-&gt;selectionRoot() here as I suggested above.

Done.

&gt; &gt; Source/WebCore/rendering/RenderView.cpp:-816
&gt; &gt; -    m_selectionStart = start;
&gt; 
&gt; Shouldn&apos;t we also delete these fields from RenderView.h? They are encapsulated inside the root object.

We still need these fields to store the original positions from the user&apos;s selection.
If he only selects inside the RenderView subtree they&apos;ll have the very same value than SelectionSubtreeRoot object.
However, if the selection is from the RenderView to a RenderFlowThread, or only inside the RenderFlowThread, we still need to know the original selection done by the user or we&apos;ll need to do a new loop over the DOM tree to know the start and end positions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999855</commentid>
    <comment_count>8</comment_count>
      <attachid>229126</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-04-11 05:33:42 -0700</bug_when>
    <thetext>Created attachment 229126
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999857</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-11 05:36:42 -0700</bug_when>
    <thetext>Attachment 229126 did not pass style-queue:


ERROR: Source/WebCore/rendering/RenderView.h:292:  The parameter name &quot;end&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/rendering/RenderView.h:293:  The parameter name &quot;end&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 19 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001172</commentid>
    <comment_count>10</comment_count>
      <attachid>229126</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2014-04-16 10:04:29 -0700</bug_when>
    <thetext>Comment on attachment 229126
Patch

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

This looks good. I just have two issues:

(1) I think you want RenderNamedFlowThread to inherit from SelectionSubtreeRoot, since I don&apos;t think in-flow RenderFlowThreads (e.g., the new multi-column code) need to have a separate selection.

(2) Since selectionRoot() can never be null, make sure to use a &amp; rather than a * everywhere.

Other than that, the approach looks fine.

&gt; Source/WebCore/rendering/RenderFlowThread.h:60
&gt; +class RenderFlowThread: public RenderBlockFlow, public SelectionSubtreeRoot {

I don&apos;t think all flow threads should be selection subtree roots. I think only named RenderFlowThreads should be selection subtree roots. In-flow flow threads have no reason to maintain a separate selection subtree.

&gt; Source/WebCore/rendering/RenderObject.cpp:1550
&gt; +SelectionSubtreeRoot* RenderObject::selectionRoot() const
&gt; +{
&gt; +    RenderFlowThread* flowThread = flowThreadContainingBlock();
&gt; +    if (flowThread)
&gt; +        return flowThread;
&gt; +
&gt; +    return &amp;view();
&gt; +}

This is going to actually cause in-flow RenderFlowThreads to be selection roots. I don&apos;t think we want this, since a single subtree is capable of crossing into and out of in-flow RenderFlowThreads. You should limit this to only out-of-flow RenderFlowThreads (i.e., named RenderFlowThreads).

Also, the selectionRoot() can never be null, so I think this should return a reference rather than a pointer.

&gt; Source/WebCore/rendering/RenderView.cpp:795
&gt; +    // Initializate map for RenderView and all RenderFlowThreads

Typo: &quot;Initialize&quot;

&gt; Source/WebCore/rendering/RenderView.cpp:857
&gt; +void RenderView::setSubtreeSelection(SelectionSubtreeRoot* root, RenderObject* start, int startPos, RenderObject* end, int endPos, SelectionRepaintMode blockRepaintMode)
&gt; +{

SelectionSubtreeRoot&amp; would be better (since it can&apos;t be null).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001696</commentid>
    <comment_count>11</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-04-17 14:12:31 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 229126 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=229126&amp;action=review
&gt; 
&gt; This looks good. I just have two issues:

Thanks for the review.

&gt; (1) I think you want RenderNamedFlowThread to inherit from SelectionSubtreeRoot, since I don&apos;t think in-flow RenderFlowThreads (e.g., the new multi-column code) need to have a separate selection.

Yes, you&apos;re right. I didn&apos;t know about the in-flow RenderFlowThreads in the multi-column code, but it&apos;s clear that we don&apos;t need a separate selection for this.

&gt; (2) Since selectionRoot() can never be null, make sure to use a &amp; rather than a * everywhere.

Yes, sure.

&gt; &gt; Source/WebCore/rendering/RenderFlowThread.h:60
&gt; &gt; +class RenderFlowThread: public RenderBlockFlow, public SelectionSubtreeRoot {
&gt; 
&gt; I don&apos;t think all flow threads should be selection subtree roots. I think only named RenderFlowThreads should be selection subtree roots. In-flow flow threads have no reason to maintain a separate selection subtree.

I&apos;ve changed it to RenderNamedFlowThread.

&gt; &gt; Source/WebCore/rendering/RenderObject.cpp:1550
&gt; &gt; +SelectionSubtreeRoot* RenderObject::selectionRoot() const
&gt; &gt; +{
&gt; &gt; +    RenderFlowThread* flowThread = flowThreadContainingBlock();
&gt; &gt; +    if (flowThread)
&gt; &gt; +        return flowThread;
&gt; &gt; +
&gt; &gt; +    return &amp;view();
&gt; &gt; +}
&gt; 
&gt; This is going to actually cause in-flow RenderFlowThreads to be selection roots. I don&apos;t think we want this, since a single subtree is capable of crossing into and out of in-flow RenderFlowThreads. You should limit this to only out-of-flow RenderFlowThreads (i.e., named RenderFlowThreads).

I&apos;ve changed it to identify only RenderNamedFlowThreads or RenderView as selection root.

&gt; Also, the selectionRoot() can never be null, so I think this should return a reference rather than a pointer.

Done.

&gt; &gt; Source/WebCore/rendering/RenderView.cpp:795
&gt; &gt; +    // Initializate map for RenderView and all RenderFlowThreads
&gt; 
&gt; Typo: &quot;Initialize&quot;

Fixed.

&gt; &gt; Source/WebCore/rendering/RenderView.cpp:857
&gt; &gt; +void RenderView::setSubtreeSelection(SelectionSubtreeRoot* root, RenderObject* start, int startPos, RenderObject* end, int endPos, SelectionRepaintMode blockRepaintMode)
&gt; &gt; +{
&gt; 
&gt; SelectionSubtreeRoot&amp; would be better (since it can&apos;t be null).

Changed this and other similar methods.

I&apos;m uploading a new patch applying all the suggested changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001697</commentid>
    <comment_count>12</comment_count>
      <attachid>229575</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-04-17 14:16:15 -0700</bug_when>
    <thetext>Created attachment 229575
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001700</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-17 14:19:10 -0700</bug_when>
    <thetext>Attachment 229575 did not pass style-queue:


ERROR: Source/WebCore/rendering/RenderView.h:298:  The parameter name &quot;end&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/rendering/RenderView.h:299:  The parameter name &quot;end&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 19 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1002620</commentid>
    <comment_count>14</comment_count>
      <attachid>229575</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2014-04-21 12:42:58 -0700</bug_when>
    <thetext>Comment on attachment 229575
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1002856</commentid>
    <comment_count>15</comment_count>
      <attachid>229575</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-22 03:23:15 -0700</bug_when>
    <thetext>Comment on attachment 229575
Patch

Clearing flags on attachment: 229575

Committed r167652: &lt;http://trac.webkit.org/changeset/167652&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1002857</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-22 03:23:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1002936</commentid>
    <comment_count>17</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-04-22 09:53:34 -0700</bug_when>
    <thetext>This change made fast/regions/cssom/region-range-for-box-crash.html assert every time on debug bots, bug 131982.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003005</commentid>
    <comment_count>18</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2014-04-22 11:32:10 -0700</bug_when>
    <thetext>This change has caused an assertion in repaintSelection with the new multicolumn code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003018</commentid>
    <comment_count>19</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2014-04-22 11:58:22 -0700</bug_when>
    <thetext>I filed 

https://bugs.webkit.org/show_bug.cgi?id=132019

to cover the crashers. Patch included.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003037</commentid>
    <comment_count>20</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-04-22 12:49:53 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; This change made fast/regions/cssom/region-range-for-box-crash.html assert every time on debug bots, bug 131982.

The patch has landed in r167675.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003261</commentid>
    <comment_count>21</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-04-23 04:45:09 -0700</bug_when>
    <thetext>*** Bug 119137 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229086</attachid>
            <date>2014-04-10 16:15:10 -0700</date>
            <delta_ts>2014-04-11 00:42:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131511-20140411011448.patch</filename>
            <type>text/plain</type>
            <size>45917</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3MDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDhjY2QzNGVmMGQxYjcx
ZjMxNDc5NjM5NGI1YWI5MzI1YWRlOGM3Zi4uN2FmZjEzOGFkNGNlNzEyZTFkMWRkYWM4NTIzNjA0
ZmY5MzM0MTViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE0LTA0LTEwICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgUmVn
aW9uc10gU2VsZWN0aW9uIGhpZ2hsaWdodCBkb2Vzbid0IG1hdGNoIERPTSBzZWxlY3Rpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTUxMQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
aW1wbGVtZW50cyBhIHN1YnRyZWVzIGFwcHJvYWNoIHRvIGZpeCBzZWxlY3Rpb24gaW50ZXJhY3Rp
b24gaW4gQ1NTIFJlZ2lvbnMuCisKKyAgICAgICAgVGhlIGlkZWEgaXMgdG8gZGl2aWRlIHRoZSBS
ZW5kZXIgdHJlZSBpbiBzdWJ0cmVlcy4gT25lIHN1YnRyZWUgd2lsbCBiZSB0aGUgUmVuZGVyVmll
dyAod2hpY2ggaXMgYWx3YXlzIHByZXNlbnQpLAorICAgICAgICB0aGVuIGZvciBlYWNoIFJlbmRl
ckZsb3dUaHJlYWQgKHdoaWNoIGFyZSBzaWJsaW5ncyBvZiBSZW5kZXJWaWV3KSB3ZSB3aWxsIGhh
dmUgYW4gZXh0cmEgc3VidHJlZS4KKworICAgICAgICBGb3IgZWFjaCBzdWJ0cmVlIGl0IGRldGVy
bWluZXMgdGhlIHN0YXJ0IGFuZCBlbmQgcG9zaXRpb25zIGFjY29yZGluZyB0byB0aGUgRE9NIHRy
ZWUuIFNvLCBldmVyeSBzdWJ0cmVlIHdpbGwKKyAgICAgICAgYWx3YXlzIGhhdmUgYSBzdGFydCBh
bmQgZW5kIHBvc2l0aW9uLCBhbmQgdGhlIHNlbGVjdGlvbiBhbGdvcml0aG0gd2lsbCBiZSBhYmxl
IHRvIHJlYWNoIHRoZSBlbmQgZnJvbSB0aGUgc3RhcnQKKyAgICAgICAgd2l0aG91dCBwcm9ibGVt
cyAodGhpcyBhbGxvd3MgdXMgdG8gcmVtb3ZlIHRoZSBjaGFuZ2VzIGludHJvZHVjZWQgaW4gcjE1
NTA1OCkuCisKKyAgICAgICAgVGhlbiBzZWxlY3Rpb24gcmVsYXRlZCBtZXRob2RzIGluIFJlbmRl
clZpZXcgYXJlIGFkYXB0ZWQgdG8gZW5zdXJlIHRoYXQgdGhleSBhcmUgY2FsbGVkIGZvciBlYWNo
IHN1YnRyZWUuIE1ha2luZworICAgICAgICB0aGUgc2VsZWN0aW9uIGhpZ2hsaWdodCB0byBtYXRj
aCBET00gc2VsZWN0aW9uIGFzIGV4cGVjdGVkLgorCisgICAgICAgIFRlc3Q6IGZhc3QvcmVnaW9u
cy9zZWxlY3Rpb24vc2VsZWN0aW5nLXRleHQtaW5jbHVkaW5nLXJlZ2lvbi5odG1sCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkIG5ldyBjbGFzcyBTZWxlY3Rpb25TdWJ0cmVlUm9vdCB0
byBidWlsZCBmaWxlLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaDogSW5oZXJp
dCBmcm9tIFNlbGVjdGlvblN1YnRyZWVSb290LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpzZWxlY3Rpb25TdGFy
dEVuZCk6IElmIGl0J3MgaW5zaWRlIGEgUmVuZGVyRmxvd1RocmVhZCB1c2Ugc3BlY2lmaWMgbWV0
aG9kIGluc3RlYWQgb2YgdGhlCisgICAgICAgIFJlbmRlclZpZXcncyBvbmUuCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6
c2VsZWN0aW9uQm91bmRzKTogQWRhcHQgbWV0aG9kIHRvIHN1YnRyZWVzIGFwcHJvYWNoLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6c3VidHJlZVNlbGVjdGlvbkJvdW5kcyk6IE1vZGlm
eSBwcmV2aW91cyBtZXRob2QgaW4gb3JkZXIgdG8gdXNlIFNlbGVjdGlvblN1YnRyZWVSb290Cisg
ICAgICAgIG9iamVjdHMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpyZXBhaW50U2Vs
ZWN0aW9uKTogQWRhcHQgbWV0aG9kIHRvIHN1YnRyZWVzIGFwcHJvYWNoLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVmlldzo6cmVwYWludFN1YnRyZWVTZWxlY3Rpb24pOiBNb2RpZnkgcHJldmlv
dXMgbWV0aG9kIGluIG9yZGVyIHRvIHVzZSBTZWxlY3Rpb25TdWJ0cmVlUm9vdAorICAgICAgICBv
YmplY3RzLgorICAgICAgICAoZ2V0TmV4dE9yUHJldlJlbmRlck9iamVjdEJhc2VkT25EaXJlY3Rp
b24pOiBEZWxldGVkIG1ldGhvZCBmcm9tIHIxNTUwNTggYXMgaXQgaXMgbm90IG5lZWRlZCBhbnlt
b3JlLiBFYWNoCisgICAgICAgIHN1YnRyZWUgd2lsbCBoYXZlIHN0YXJ0IGFuZCBlbmQgcG9zaXRp
b25zLCBzbyB0aGUgc2VsZWN0aW9uIGFsZ29yaXRobSB3aWxsIGFsd2F5cyBmaW5kIHRoZSBlbmQu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpzZXRTZWxlY3Rpb24pOiBNb2RpZnkgbWV0
aG9kIHRvIGRldGVybWluZSBzdGFydCBhbmQgZW5kIHBvc2l0aW9ucyBmb3IgZWFjaCBzdWJ0cmVl
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6c2V0U3VidHJlZVNlbGVjdGlvbik6IEFk
YXB0IHByZXZpb3VzIHNldFNlbGVjdGlvbigpIG1ldGhvZCB0byBTZWxlY3Rpb25TdWJ0cmVlUm9v
dAorICAgICAgICBvYmplY3RzLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3Lmg6IElu
aGVyaXQgZnJvbSBTZWxlY3Rpb25TdWJ0cmVlUm9vdC4gQWRkIHNpZ25hdHVyZSBmb3IgbmV3IGhl
bHBlciBtZXRob2RzIHJlY2VpdmluZworICAgICAgICBTZWxlY3Rpb25TdWJ0cmVlUm9vdCBvYmpl
Y3RzLgorICAgICAgICAqIHJlbmRlcmluZy9TZWxlY3Rpb25TdWJ0cmVlUm9vdC5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uU3VidHJlZVJvb3Q6OlNlbGVjdGlvblN1YnRy
ZWVSb290KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlvblN1YnRyZWVSb290OjpzZWxlY3Rp
b25TdGFydEVuZFBvc2l0aW9ucyk6CisgICAgICAgICogcmVuZGVyaW5nL1NlbGVjdGlvblN1YnRy
ZWVSb290Lmg6IEFkZGVkLiBOZXcgY2xhc3MgdG8gaWRlbnRpZnkgcm9vdCBlbGVtZW50cyBmb3Ig
dGhlIHN1YnRyZWVzLiBXaXRoIHNvbWUgYmFzaWMKKyAgICAgICAgYXR0cmlidXRlcyBhbmQgbWV0
aG9kcyB0byBzdG9yZSB0aGUgc3RhcnQgYW5kIGVuZCBwb3NpdGlvbnMgYW5kIG9mZnNldHMuCisg
ICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25TdWJ0cmVlUm9vdDo6c2VsZWN0aW9uU3RhcnQpOgor
ICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uU3VidHJlZVJvb3Q6OnNlbGVjdGlvblN0YXJ0UG9z
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlvblN1YnRyZWVSb290OjpzZWxlY3Rpb25FbmQp
OgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uU3VidHJlZVJvb3Q6OnNlbGVjdGlvbkVuZFBv
cyk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25TdWJ0cmVlUm9vdDo6c2V0U2VsZWN0aW9u
U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uU3VidHJlZVJvb3Q6OnNldFNlbGVj
dGlvblN0YXJ0UG9zKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlvblN1YnRyZWVSb290Ojpz
ZXRTZWxlY3Rpb25FbmQpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uU3VidHJlZVJvb3Q6
OnNldFNlbGVjdGlvbkVuZFBvcyk6CisKIDIwMTQtMDQtMDkgIEplcmVteSBKb25lcyAgPGplcmVt
eWpAYXBwbGUuY29tPgogCiAgICAgICAgIGZ1bGxzY3JlZW4gY29udHJvbHMgZmlyc3Qgc2hvdyBh
IHBsYXkgYnV0dG9uIGluc3RlYWQgb2YgYSBwYXVzZSBidXR0b24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggZmQ3OGFkOTIwNjY0ZGViNjQ0YTg2OTVkODg1M2U2YjI3OTc2N2VlYS4uMDc4NzdhYWVj
Zjc2ZTgzNTg2OGJhODVhMTczNGRjMDlkMTY1ZjIwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTIxODksNiArMjE4OSw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICByZW5kZXJpbmcvUmVu
ZGVyVlRUQ3VlLmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCiAgICAgcmVuZGVy
aW5nL1Jvb3RJbmxpbmVCb3guY3BwCisgICAgcmVuZGVyaW5nL1NlbGVjdGlvblN1YnRyZWVSb290
LmNwcAogICAgIHJlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5jcHAKICAgICByZW5kZXJpbmcvU2lt
cGxlTGluZUxheW91dC5jcHAKICAgICByZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dEZ1bmN0aW9u
cy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBlNTJiZjI5YzFhZmU4OTU2NjRlNGVlNDdkNTk4YjUyMTk1ZDUyNGMxLi42MTY1
NjhkYzlkMzQzN2U4NjhmYzViMTc0NDQyODliNTI5MjEzNzlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NjE0LDYgKzU2MTQs
OCBAQAogCQlDREM4QjVBRDE4MDRBRTVEMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RD
OEI1QUMxODA0QUU1RDAwMTZFNjg1IC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaCAqLzsg
fTsKIAkJQ0RDQTgyOTYxNjc5MTAwRjAwODc1NzE0IC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9u
SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RD
QTgyOTQxNjc5MTAwRjAwODc1NzE0IC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9uSU9TLm1tICov
OyB9OwogCQlDRENBOThFQjE4QjJDOEVCMDBDMTJGRjkgLyogQ0RNUHJpdmF0ZU1lZGlhUGxheWVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0E5
OEVBMThCMkM4RUIwMEMxMkZGOSAvKiBDRE1Qcml2YXRlTWVkaWFQbGF5ZXIuY3BwICovOyB9Owor
CQlDRENGQUJCRDE4QzBBRjc4MDA2Rjg0NTAgLyogU2VsZWN0aW9uU3VidHJlZVJvb3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0ZBQkJCMThDMEFF
MzEwMDZGODQ1MCAvKiBTZWxlY3Rpb25TdWJ0cmVlUm9vdC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNEQ0ZBQkJFMThDMEFGODQwMDZGODQ1MCAv
KiBTZWxlY3Rpb25TdWJ0cmVlUm9vdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRENGQUJCQzE4QzBBRjE5MDA2Rjg0NTAgLyogU2VsZWN0aW9uU3Vi
dHJlZVJvb3QuY3BwICovOyB9OwogCQlDREQ1MjVENzE0NUI2REQwMDA4RDIwNEQgLyogSlNIVE1M
TWVkaWFFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENERjY1Q0NDMTQ1QjZBRkUwMEM0QzdBQSAvKiBKU0hUTUxNZWRpYUVsZW1l
bnRDdXN0b20uY3BwICovOyB9OwogCQlDREQ3MDg5NjE4MzU5RjZGMDAyQjNEQzYgLyogU2FtcGxl
TWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
RDcwODk0MTgzNTlGNkUwMDJCM0RDNiAvKiBTYW1wbGVNYXAuY3BwICovOyB9OwogCQlDREQ3MDg5
NzE4MzU5RjZGMDAyQjNEQzYgLyogU2FtcGxlTWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREQ3MDg5NTE4MzU5RjZGMDAyQjNEQzYgLyogU2FtcGxl
TWFwLmggKi87IH07CkBAIC0xMjk2Nyw2ICsxMjk2OSw4IEBACiAJCUNEQ0E5OEU5MThCMkM4RDAw
MEMxMkZGOSAvKiBDRE1Qcml2YXRlTWVkaWFQbGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ0RNUHJpdmF0ZU1lZGlhUGxheWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNEQ0E5OEVBMThCMkM4RUIwMEMxMkZGOSAvKiBDRE1Qcml2YXRlTWVkaWFQbGF5
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ0RNUHJpdmF0ZU1l
ZGlhUGxheWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDRTVDRDAxNDYz
M0JDOTAwRDQ3Q0NBIC8qIEV2ZW50VGFyZ2V0RmFjdG9yeS5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBFdmVudFRhcmdldEZhY3RvcnkuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNEQ0ZBQkJCMThDMEFFMzEwMDZGODQ1MCAvKiBTZWxlY3Rpb25TdWJ0cmVlUm9vdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZWxlY3Rpb25TdWJ0cmVlUm9vdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRENGQUJCQzE4QzBBRjE5MDA2Rjg0NTAgLyogU2Vs
ZWN0aW9uU3VidHJlZVJvb3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU2VsZWN0aW9uU3VidHJlZVJvb3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDREQxRTUyNTE2N0JBNTY0MDBDRTgyMEIgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFRyYWNrUmVwcmVzZW50YXRpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RENzA4OTQxODM1OUY2RTAwMkIzREM2
IC8qIFNhbXBsZU1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
YW1wbGVNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREQ3MDg5NTE4MzU5
RjZGMDAyQjNEQzYgLyogU2FtcGxlTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNhbXBsZU1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjIwODgsNiAr
MjIwOTIsOCBAQAogCQkJCUE4Q0ZGNURBMEExNTVBMDUwMDBBNDIzNCAvKiBSb290SW5saW5lQm94
LmggKi8sCiAJCQkJNUQ5MjVCNjUwRjY0RDRERDAwQjg0N0YwIC8qIFNjcm9sbEJlaGF2aW9yLmNw
cCAqLywKIAkJCQk1RDkyNUI2NjBGNjRENEREMDBCODQ3RjAgLyogU2Nyb2xsQmVoYXZpb3IuaCAq
LywKKwkJCQlDRENGQUJCQzE4QzBBRjE5MDA2Rjg0NTAgLyogU2VsZWN0aW9uU3VidHJlZVJvb3Qu
Y3BwICovLAorCQkJCUNEQ0ZBQkJCMThDMEFFMzEwMDZGODQ1MCAvKiBTZWxlY3Rpb25TdWJ0cmVl
Um9vdC5oICovLAogCQkJCUU0ODk0NEEwMTgwQjU3RDgwMEYxNjVEOCAvKiBTaW1wbGVMaW5lTGF5
b3V0LmNwcCAqLywKIAkJCQlFNDg5NDRBMTE4MEI1N0Q4MDBGMTY1RDggLyogU2ltcGxlTGluZUxh
eW91dC5oICovLAogCQkJCUU0RTlCMTFBMTgxNDU2OTIwMDNBQ0NERiAvKiBTaW1wbGVMaW5lTGF5
b3V0RnVuY3Rpb25zLmNwcCAqLywKQEAgLTI1Nzk5LDYgKzI1ODA1LDcgQEAKIAkJCQlCMjIyN0E1
NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGFyc2VyVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkyRDNBMEUzNjEzQTdENzYxMDBFODVBRjAgLyogU1ZHUGFyc2luZ0Vycm9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4NEM2Nzg0RDEyMTQ4MTQ3MDBBOTI5MDIgLyogU1ZHUGF0aEJsZW5kZXIu
aCBpbiBIZWFkZXJzICovLAorCQkJCUNEQ0ZBQkJEMThDMEFGNzgwMDZGODQ1MCAvKiBTZWxlY3Rp
b25TdWJ0cmVlUm9vdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ3NkM5RUIxMURGNkEyOTAwNTU1
QjAyIC8qIFNWR1BhdGhCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDE5RDJBNzEyMEQ5
MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTg0
MTlEMkE5MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjc5MjMsNiArMjc5MzAsNyBAQAogCQkJCUJDRTFDNDNCMEQ5ODMwRDMw
MDNCMDJGMiAvKiBKU0xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRTFDNDQwMEQ5
ODMwRjQwMDNCMDJGMiAvKiBKU0xvY2F0aW9uQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CThGQUM3NzREMTE5ODcyQ0IwMDE1QUU5NCAvKiBKU01haW5UaHJlYWRFeGVjU3RhdGUuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJQ0RDRkFCQkUxOEMwQUY4NDAwNkY4NDUwIC8qIFNlbGVjdGlvblN1
YnRyZWVSb290LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEMjdGNkU1MTQ1NzY4NUEwMDc4MjA3
RCAvKiBKU01lZGlhQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREFCNkQyRDE3
QzgxNEVFMDBDNjBCMzQgLyogSlNNZWRpYUNvbnRyb2xzSG9zdC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGRDIzQTEyNTEzRjVGQTU5MDBGNjcwMDEgLyogSlNNZWRpYUVsZW1lbnRBdWRpb1NvdXJj
ZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZsb3dUaHJlYWQuaAppbmRleCBmYTA3OTk1MmVhMGJiMzBjMWNjY2RhNTExOGRhMDkzZDI0YTg5
NGRhLi5mMGIzYTdiOTlhMTI4NGUyZDRiMDk3Yjc3ZmVmZjU0NDEwODlmYzM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKQEAgLTMyLDYgKzMyLDcgQEAK
IAogCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCisjaW5jbHVkZSAiU2VsZWN0aW9uU3Vi
dHJlZVJvb3QuaCIKICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3
dGYvTGlzdEhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtNTYsNyAr
NTcsNyBAQCB0eXBlZGVmIEhhc2hNYXA8UmVuZGVyTGF5ZXIqLCBSZW5kZXJOYW1lZEZsb3dGcmFn
bWVudCo+IExheWVyVG9SZWdpb25NYXA7CiAvLyBhbmQgbm9kZUF0UG9pbnQgbWV0aG9kcyB0byB0
aGlzIG9iamVjdC4gRWFjaCBSZW5kZXJSZWdpb24gd2lsbCBhY3R1YWxseSBiZSBhIHZpZXdQb3J0
CiAvLyBvZiB0aGUgUmVuZGVyRmxvd1RocmVhZC4KIAotY2xhc3MgUmVuZGVyRmxvd1RocmVhZDog
cHVibGljIFJlbmRlckJsb2NrRmxvdyB7CitjbGFzcyBSZW5kZXJGbG93VGhyZWFkOiBwdWJsaWMg
UmVuZGVyQmxvY2tGbG93LCBwdWJsaWMgU2VsZWN0aW9uU3VidHJlZVJvb3QgewogcHVibGljOgog
ICAgIHZpcnR1YWwgflJlbmRlckZsb3dUaHJlYWQoKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCAxNjlhZjhhMGRhNzc1NjlkYWM5NWFlYWJlNmMy
MzQ0ODA0NThkNjNhLi5lNTVkOGJkMjQzOGExYzljNjZhMWE3YjUwMGRmNTc2N2JkZWM2MTA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMTU0Miw3ICsx
NTQyLDExIEBAIENvbG9yIFJlbmRlck9iamVjdDo6c2VsZWN0aW9uRW1waGFzaXNNYXJrQ29sb3Io
KSBjb25zdAogCiB2b2lkIFJlbmRlck9iamVjdDo6c2VsZWN0aW9uU3RhcnRFbmQoaW50JiBzcG9z
LCBpbnQmIGVwb3MpIGNvbnN0CiB7Ci0gICAgdmlldygpLnNlbGVjdGlvblN0YXJ0RW5kKHNwb3Ms
IGVwb3MpOworICAgIFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQgPSBmbG93VGhyZWFkQ29u
dGFpbmluZ0Jsb2NrKCk7CisgICAgaWYgKGZsb3dUaHJlYWQpCisgICAgICAgIGZsb3dUaHJlYWQt
PnNlbGVjdGlvblN0YXJ0RW5kUG9zaXRpb25zKHNwb3MsIGVwb3MpOworICAgIGVsc2UKKyAgICAg
ICAgdmlldygpLnNlbGVjdGlvblN0YXJ0RW5kUG9zaXRpb25zKHNwb3MsIGVwb3MpOwogfQogCiB2
b2lkIFJlbmRlck9iamVjdDo6aGFuZGxlRHluYW1pY0Zsb2F0UG9zaXRpb25DaGFuZ2UoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IGYyMzBkMzlmYjY3OGQwYzM2
NDhjZDVjMTljZjMzNWZlZjMzYTJmMDcuLmE2N2E4NTY4NmY3MDRjMDY4MGJlZDVmOGY2ZDQ2N2E4
ZmQ1MGMyY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTM1
LDYgKzM1LDcgQEAKICNpbmNsdWRlICJIVE1MSUZyYW1lRWxlbWVudC5oIgogI2luY2x1ZGUgIkhp
dFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJJbWFnZVF1YWxpdHlDb250cm9sbGVyLmgiCisjaW5j
bHVkZSAiTm9kZVRyYXZlcnNhbC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5k
ZXJHZW9tZXRyeU1hcC5oIgogI2luY2x1ZGUgIlJlbmRlckl0ZXJhdG9yLmgiCkBAIC02NTksMTMg
KzY2MCwyNiBAQCBzdGF0aWMgUmVuZGVyT2JqZWN0KiByZW5kZXJlckFmdGVyUG9zaXRpb24oUmVu
ZGVyT2JqZWN0KiBvYmplY3QsIHVuc2lnbmVkIG9mZnNldAogCiBJbnRSZWN0IFJlbmRlclZpZXc6
OnNlbGVjdGlvbkJvdW5kcyhib29sIGNsaXBUb1Zpc2libGVDb250ZW50KSBjb25zdAogeworICAg
IExheW91dFJlY3Qgc2VsUmVjdCA9IHN1YnRyZWVTZWxlY3Rpb25Cb3VuZHModGhpcywgY2xpcFRv
VmlzaWJsZUNvbnRlbnQpOworICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjaGlsZCA9IGZpcnN0Q2hp
bGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgaWYg
KGNoaWxkLT5pc1JlbmRlckZsb3dUaHJlYWQoKSkgeworICAgICAgICAgICAgTGF5b3V0UmVjdCBj
dXJyUmVjdCA9IHN1YnRyZWVTZWxlY3Rpb25Cb3VuZHModG9SZW5kZXJGbG93VGhyZWFkKGNoaWxk
KSwgY2xpcFRvVmlzaWJsZUNvbnRlbnQpOworICAgICAgICAgICAgc2VsUmVjdC51bml0ZShjdXJy
UmVjdCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gcGl4ZWxTbmFwcGVkSW50UmVj
dChzZWxSZWN0KTsKK30KKworTGF5b3V0UmVjdCBSZW5kZXJWaWV3OjpzdWJ0cmVlU2VsZWN0aW9u
Qm91bmRzKGNvbnN0IFNlbGVjdGlvblN1YnRyZWVSb290KiByb290LCBib29sIGNsaXBUb1Zpc2li
bGVDb250ZW50KSBjb25zdAorewogICAgIHR5cGVkZWYgSGFzaE1hcDxSZW5kZXJPYmplY3QqLCBz
dGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU2VsZWN0aW9uSW5mbz4+IFNlbGVjdGlvbk1hcDsKICAgICBT
ZWxlY3Rpb25NYXAgc2VsZWN0ZWRPYmplY3RzOwogCi0gICAgUmVuZGVyT2JqZWN0KiBvcyA9IG1f
c2VsZWN0aW9uU3RhcnQ7Ci0gICAgUmVuZGVyT2JqZWN0KiBzdG9wID0gcmVuZGVyZXJBZnRlclBv
c2l0aW9uKG1fc2VsZWN0aW9uRW5kLCBtX3NlbGVjdGlvbkVuZFBvcyk7CisgICAgUmVuZGVyT2Jq
ZWN0KiBvcyA9IHJvb3QtPnNlbGVjdGlvblN0YXJ0KCk7CisgICAgUmVuZGVyT2JqZWN0KiBzdG9w
ID0gcmVuZGVyZXJBZnRlclBvc2l0aW9uKHJvb3QtPnNlbGVjdGlvbkVuZCgpLCByb290LT5zZWxl
Y3Rpb25FbmRQb3MoKSk7CiAgICAgd2hpbGUgKG9zICYmIG9zICE9IHN0b3ApIHsKLSAgICAgICAg
aWYgKChvcy0+Y2FuQmVTZWxlY3Rpb25MZWFmKCkgfHwgb3MgPT0gbV9zZWxlY3Rpb25TdGFydCB8
fCBvcyA9PSBtX3NlbGVjdGlvbkVuZCkgJiYgb3MtPnNlbGVjdGlvblN0YXRlKCkgIT0gU2VsZWN0
aW9uTm9uZSkgeworICAgICAgICBpZiAoKG9zLT5jYW5CZVNlbGVjdGlvbkxlYWYoKSB8fCBvcyA9
PSByb290LT5zZWxlY3Rpb25TdGFydCgpIHx8IG9zID09IHJvb3QtPnNlbGVjdGlvbkVuZCgpKSAm
JiBvcy0+c2VsZWN0aW9uU3RhdGUoKSAhPSBTZWxlY3Rpb25Ob25lKSB7CiAgICAgICAgICAgICAv
LyBCbG9ja3MgYXJlIHJlc3BvbnNpYmxlIGZvciBwYWludGluZyBsaW5lIGdhcHMgYW5kIG1hcmdp
biBnYXBzLiBUaGV5IG11c3QgYmUgZXhhbWluZWQgYXMgd2VsbC4KICAgICAgICAgICAgIHNlbGVj
dGVkT2JqZWN0cy5zZXQob3MsIHN0ZDo6bWFrZV91bmlxdWU8UmVuZGVyU2VsZWN0aW9uSW5mbz4o
b3MsIGNsaXBUb1Zpc2libGVDb250ZW50KSk7CiAgICAgICAgICAgICBSZW5kZXJCbG9jayogY2Ig
PSBvcy0+Y29udGFpbmluZ0Jsb2NrKCk7CkBAIC02OTQsMTYgKzcwOCwyNSBAQCBJbnRSZWN0IFJl
bmRlclZpZXc6OnNlbGVjdGlvbkJvdW5kcyhib29sIGNsaXBUb1Zpc2libGVDb250ZW50KSBjb25z
dAogICAgICAgICB9CiAgICAgICAgIHNlbFJlY3QudW5pdGUoY3VyclJlY3QpOwogICAgIH0KLSAg
ICByZXR1cm4gcGl4ZWxTbmFwcGVkSW50UmVjdChzZWxSZWN0KTsKKyAgICByZXR1cm4gc2VsUmVj
dDsKIH0KIAogdm9pZCBSZW5kZXJWaWV3OjpyZXBhaW50U2VsZWN0aW9uKCkgY29uc3QKIHsKKyAg
ICByZXBhaW50U3VidHJlZVNlbGVjdGlvbih0aGlzKTsKKyAgICBmb3IgKFJlbmRlck9iamVjdCog
Y2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygp
KSB7CisgICAgICAgIGlmIChjaGlsZC0+aXNSZW5kZXJGbG93VGhyZWFkKCkpCisgICAgICAgICAg
ICByZXBhaW50U3VidHJlZVNlbGVjdGlvbih0b1JlbmRlckZsb3dUaHJlYWQoY2hpbGQpKTsKKyAg
ICB9Cit9CisKK3ZvaWQgUmVuZGVyVmlldzo6cmVwYWludFN1YnRyZWVTZWxlY3Rpb24oY29uc3Qg
U2VsZWN0aW9uU3VidHJlZVJvb3QqIHJvb3QpIGNvbnN0Cit7CiAgICAgSGFzaFNldDxSZW5kZXJC
bG9jayo+IHByb2Nlc3NlZEJsb2NrczsKIAotICAgIFJlbmRlck9iamVjdCogZW5kID0gcmVuZGVy
ZXJBZnRlclBvc2l0aW9uKG1fc2VsZWN0aW9uRW5kLCBtX3NlbGVjdGlvbkVuZFBvcyk7Ci0gICAg
Zm9yIChSZW5kZXJPYmplY3QqIG8gPSBtX3NlbGVjdGlvblN0YXJ0OyBvICYmIG8gIT0gZW5kOyBv
ID0gby0+bmV4dEluUHJlT3JkZXIoKSkgewotICAgICAgICBpZiAoIW8tPmNhbkJlU2VsZWN0aW9u
TGVhZigpICYmIG8gIT0gbV9zZWxlY3Rpb25TdGFydCAmJiBvICE9IG1fc2VsZWN0aW9uRW5kKQor
ICAgIFJlbmRlck9iamVjdCogZW5kID0gcmVuZGVyZXJBZnRlclBvc2l0aW9uKHJvb3QtPnNlbGVj
dGlvbkVuZCgpLCByb290LT5zZWxlY3Rpb25FbmRQb3MoKSk7CisgICAgZm9yIChSZW5kZXJPYmpl
Y3QqIG8gPSByb290LT5zZWxlY3Rpb25TdGFydCgpOyBvICYmIG8gIT0gZW5kOyBvID0gby0+bmV4
dEluUHJlT3JkZXIoKSkgeworICAgICAgICBpZiAoIW8tPmNhbkJlU2VsZWN0aW9uTGVhZigpICYm
IG8gIT0gcm9vdC0+c2VsZWN0aW9uU3RhcnQoKSAmJiBvICE9IHJvb3QtPnNlbGVjdGlvbkVuZCgp
KQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmIChvLT5zZWxlY3Rpb25TdGF0ZSgp
ID09IFNlbGVjdGlvbk5vbmUpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTczMiwyNyArNzU1
LDYgQEAgdm9pZCBSZW5kZXJWaWV3OjpzZXRNYXhpbWFsT3V0bGluZVNpemUoaW50IG8pCiAgICAg
fQogfQogCi0vLyBXaGVuIGV4cGxvcmluZyB0aGUgUmVuZGVyVHJlZSBsb29raW5nIGZvciB0aGUg
bm9kZXMgaW52b2x2ZWQgaW4gdGhlIFNlbGVjdGlvbiwgc29tZXRpbWVzIGl0J3MKLS8vIHJlcXVp
cmVkIHRvIGNoYW5nZSB0aGUgdHJhdmVyc2luZyBkaXJlY3Rpb24gYmVjYXVzZSB0aGUgInN0YXJ0
IiBwb3NpdGlvbiBpcyBiZWxvdyB0aGUgImVuZCIgb25lLgotc3RhdGljIGlubGluZSBSZW5kZXJP
YmplY3QqIGdldE5leHRPclByZXZSZW5kZXJPYmplY3RCYXNlZE9uRGlyZWN0aW9uKGNvbnN0IFJl
bmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0KiBzdG9wLCBib29sJiBjb250aW51ZUV4
cGxvcmluZywgYm9vbCYgZXhwbG9yaW5nQmFja3dhcmRzKQotewotICAgIFJlbmRlck9iamVjdCog
bmV4dDsKLSAgICBpZiAoZXhwbG9yaW5nQmFja3dhcmRzKSB7Ci0gICAgICAgIG5leHQgPSBvLT5w
cmV2aW91c0luUHJlT3JkZXIoKTsKLSAgICAgICAgY29udGludWVFeHBsb3JpbmcgPSBuZXh0ICYm
ICEobmV4dCktPmlzUmVuZGVyVmlldygpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIG5leHQgPSBv
LT5uZXh0SW5QcmVPcmRlcigpOwotICAgICAgICBjb250aW51ZUV4cGxvcmluZyA9IG5leHQgJiYg
bmV4dCAhPSBzdG9wOwotICAgICAgICBleHBsb3JpbmdCYWNrd2FyZHMgPSAhbmV4dCAmJiAobmV4
dCAhPSBzdG9wKTsKLSAgICAgICAgaWYgKGV4cGxvcmluZ0JhY2t3YXJkcykgewotICAgICAgICAg
ICAgbmV4dCA9IHN0b3AtPnByZXZpb3VzSW5QcmVPcmRlcigpOwotICAgICAgICAgICAgY29udGlu
dWVFeHBsb3JpbmcgPSBuZXh0ICYmICFuZXh0LT5pc1JlbmRlclZpZXcoKTsKLSAgICAgICAgfQot
ICAgIH0KLQotICAgIHJldHVybiBuZXh0OwotfQotCiB2b2lkIFJlbmRlclZpZXc6OnNldFNlbGVj
dGlvbihSZW5kZXJPYmplY3QqIHN0YXJ0LCBpbnQgc3RhcnRQb3MsIFJlbmRlck9iamVjdCogZW5k
LCBpbnQgZW5kUG9zLCBTZWxlY3Rpb25SZXBhaW50TW9kZSBibG9ja1JlcGFpbnRNb2RlKQogewog
ICAgIC8vIE1ha2Ugc3VyZSBib3RoIG91ciBzdGFydCBhbmQgZW5kIG9iamVjdHMgYXJlIGRlZmlu
ZWQuCkBAIC03NjcsMTAgKzc2OSw5MiBAQCB2b2lkIFJlbmRlclZpZXc6OnNldFNlbGVjdGlvbihS
ZW5kZXJPYmplY3QqIHN0YXJ0LCBpbnQgc3RhcnRQb3MsIFJlbmRlck9iamVjdCogZQogICAgICAg
ICBtX3NlbGVjdGlvbkVuZCA9PSBlbmQgJiYgbV9zZWxlY3Rpb25FbmRQb3MgPT0gZW5kUG9zICYm
ICFjYXJldENoYW5nZWQpCiAgICAgICAgIHJldHVybjsKIAorICAgIC8vIFNldCBnbG9iYWwgcG9z
aXRpb25zIGZvciBuZXcgc2VsZWN0aW9uCisgICAgbV9zZWxlY3Rpb25TdGFydCA9IHN0YXJ0Owor
ICAgIG1fc2VsZWN0aW9uU3RhcnRQb3MgPSBzdGFydFBvczsKKyAgICBtX3NlbGVjdGlvbkVuZCA9
IGVuZDsKKyAgICBtX3NlbGVjdGlvbkVuZFBvcyA9IGVuZFBvczsKKworICAgIC8vIEdldCByYW5n
ZXMKKyAgICB0eXBlZGVmIEhhc2hNYXA8U2VsZWN0aW9uU3VidHJlZVJvb3QqLCBSZWZQdHI8UmFu
Z2U+ID4gUmVuZGVyU3VidHJlZXNNYXA7CisgICAgUmVuZGVyU3VidHJlZXNNYXAgcmVuZGVyU3Vi
dHJlZXNNYXA7CisKKyAgICAvLyBJbml0aWFsaXphdGUgbWFwIGZvciBSZW5kZXJWaWV3IGFuZCBh
bGwgUmVuZGVyRmxvd1RocmVhZHMKKyAgICByZW5kZXJTdWJ0cmVlc01hcC5zZXQodGhpcywgbnVs
bHB0cik7CisgICAgZm9yIChSZW5kZXJPYmplY3QqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGls
ZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICBpZiAoY2hpbGQtPmlz
UmVuZGVyRmxvd1RocmVhZCgpKQorICAgICAgICAgICAgcmVuZGVyU3VidHJlZXNNYXAuc2V0KHRv
UmVuZGVyRmxvd1RocmVhZChjaGlsZCksIG51bGxwdHIpOworICAgIH0KKworICAgIGlmIChyZW5k
ZXJTdWJ0cmVlc01hcC5zaXplKCkgPT0gMSkgeworICAgICAgICBzZXRTdWJ0cmVlU2VsZWN0aW9u
KHRoaXMsIHN0YXJ0LCBzdGFydFBvcywgZW5kLCBlbmRQb3MsIGJsb2NrUmVwYWludE1vZGUpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHN0YXJ0ICYmIGVuZCkgeworICAgICAg
ICBSZWZQdHI8UmFuZ2U+IGluaXRpYWxSYW5nZSA9IFJhbmdlOjpjcmVhdGUoZG9jdW1lbnQoKSwg
c3RhcnQtPm5vZGUoKSwgc3RhcnRQb3MsIGVuZC0+bm9kZSgpLCBlbmRQb3MpOworCisgICAgICAg
IE5vZGUqIHN0YXJ0Tm9kZSA9IGluaXRpYWxSYW5nZS0+c3RhcnRDb250YWluZXIoKTsKKyAgICAg
ICAgTm9kZSogZW5kTm9kZSA9IGluaXRpYWxSYW5nZS0+ZW5kQ29udGFpbmVyKCk7CisgICAgICAg
IE5vZGUqIHN0b3BOb2RlID0gaW5pdGlhbFJhbmdlLT5wYXN0TGFzdE5vZGUoKTsKKworICAgICAg
ICBmb3IgKE5vZGUqIG5vZGUgPSBzdGFydE5vZGU7IG5vZGUgIT0gc3RvcE5vZGU7IG5vZGUgPSBO
b2RlVHJhdmVyc2FsOjpuZXh0KG5vZGUpKSB7CisgICAgICAgICAgICBSZW5kZXJPYmplY3QqIHJl
bmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKTsKKyAgICAgICAgICAgIGlmICghcmVuZGVyZXIgfHwg
IXJlbmRlcmVyLT5jYW5CZVNlbGVjdGlvbkxlYWYoKSkKKyAgICAgICAgICAgICAgICBjb250aW51
ZTsKKworICAgICAgICAgICAgU2VsZWN0aW9uU3VidHJlZVJvb3QqIGZsb3dUaHJlYWQgPSByZW5k
ZXJlci0+Zmxvd1RocmVhZENvbnRhaW5pbmdCbG9jaygpOworICAgICAgICAgICAgU2VsZWN0aW9u
U3VidHJlZVJvb3QqIHJvb3QgPSBmbG93VGhyZWFkID8gZmxvd1RocmVhZCA6IHRoaXM7CisKKyAg
ICAgICAgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSByZW5kZXJTdWJ0cmVlc01hcC5nZXQocm9v
dCk7CisgICAgICAgICAgICBpZiAoIXJhbmdlKSB7CisgICAgICAgICAgICAgICAgcmFuZ2UgPSBS
YW5nZTo6Y3JlYXRlKGRvY3VtZW50KCkpOworCisgICAgICAgICAgICAgICAgaWYgKG5vZGUgPT0g
c3RhcnROb2RlKQorICAgICAgICAgICAgICAgICAgICByYW5nZS0+c2V0U3RhcnQobm9kZSwgc3Rh
cnRQb3MpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2Ut
PnNldFN0YXJ0KG5vZGUsIDApOworCisgICAgICAgICAgICAgICAgcmVuZGVyU3VidHJlZXNNYXAu
c2V0KHJvb3QsIHJhbmdlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKG5vZGUg
PT0gZW5kTm9kZSkKKyAgICAgICAgICAgICAgICByYW5nZS0+c2V0RW5kKG5vZGUsIGVuZFBvcyk7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmFuZ2UtPnNldEVuZChub2RlLCBu
b2RlLT5vZmZzZXRJbkNoYXJhY3RlcnMoKSA/IG5vZGUtPm1heENoYXJhY3Rlck9mZnNldCgpIDog
bm9kZS0+Y2hpbGROb2RlQ291bnQoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmb3IgKFJl
bmRlclN1YnRyZWVzTWFwOjppdGVyYXRvciBpID0gcmVuZGVyU3VidHJlZXNNYXAuYmVnaW4oKTsg
aSAhPSByZW5kZXJTdWJ0cmVlc01hcC5lbmQoKTsgKytpKSB7CisgICAgICAgIFJlZlB0cjxSYW5n
ZT4gcmFuZ2UgPSBpLT52YWx1ZTsKKworICAgICAgICBSZW5kZXJPYmplY3QqIG5ld1N0YXJ0Owor
ICAgICAgICBpbnQgbmV3U3RhcnRQb3M7CisgICAgICAgIFJlbmRlck9iamVjdCogbmV3RW5kOwor
ICAgICAgICBpbnQgbmV3RW5kUG9zOworCisgICAgICAgIGlmIChyYW5nZSkgeworICAgICAgICAg
ICAgbmV3U3RhcnQgPSByYW5nZS0+c3RhcnRDb250YWluZXIoKS0+cmVuZGVyZXIoKTsKKyAgICAg
ICAgICAgIG5ld1N0YXJ0UG9zID0gcmFuZ2UtPnN0YXJ0T2Zmc2V0KCk7CisgICAgICAgICAgICBu
ZXdFbmQgPSByYW5nZS0+ZW5kQ29udGFpbmVyKCktPnJlbmRlcmVyKCk7CisgICAgICAgICAgICBu
ZXdFbmRQb3MgPSByYW5nZS0+ZW5kT2Zmc2V0KCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICBuZXdTdGFydCA9IDA7CisgICAgICAgICAgICBuZXdTdGFydFBvcyA9IC0xOworICAgICAg
ICAgICAgbmV3RW5kID0gMDsKKyAgICAgICAgICAgIG5ld0VuZFBvcyA9IC0xOworICAgICAgICB9
CisKKyAgICAgICAgc2V0U3VidHJlZVNlbGVjdGlvbihpLT5rZXksIG5ld1N0YXJ0LCBuZXdTdGFy
dFBvcywgbmV3RW5kLCBuZXdFbmRQb3MsIGJsb2NrUmVwYWludE1vZGUpOworICAgIH0KK30KKwor
dm9pZCBSZW5kZXJWaWV3OjpzZXRTdWJ0cmVlU2VsZWN0aW9uKFNlbGVjdGlvblN1YnRyZWVSb290
KiByb290LCBSZW5kZXJPYmplY3QqIHN0YXJ0LCBpbnQgc3RhcnRQb3MsIFJlbmRlck9iamVjdCog
ZW5kLCBpbnQgZW5kUG9zLCBTZWxlY3Rpb25SZXBhaW50TW9kZSBibG9ja1JlcGFpbnRNb2RlKQor
ewogICAgIC8vIFJlY29yZCB0aGUgb2xkIHNlbGVjdGVkIG9iamVjdHMuICBUaGVzZSB3aWxsIGJl
IHVzZWQgbGF0ZXIKICAgICAvLyB3aGVuIHdlIGNvbXBhcmUgYWdhaW5zdCB0aGUgbmV3IHNlbGVj
dGVkIG9iamVjdHMuCi0gICAgaW50IG9sZFN0YXJ0UG9zID0gbV9zZWxlY3Rpb25TdGFydFBvczsK
LSAgICBpbnQgb2xkRW5kUG9zID0gbV9zZWxlY3Rpb25FbmRQb3M7CisgICAgaW50IG9sZFN0YXJ0
UG9zID0gcm9vdC0+c2VsZWN0aW9uU3RhcnRQb3MoKTsKKyAgICBpbnQgb2xkRW5kUG9zID0gcm9v
dC0+c2VsZWN0aW9uRW5kUG9zKCk7CiAKICAgICAvLyBPYmplY3RzIGVhY2ggaGF2ZSBhIHNpbmds
ZSBzZWxlY3Rpb24gcmVjdCB0byBleGFtaW5lLgogICAgIHR5cGVkZWYgSGFzaE1hcDxSZW5kZXJP
YmplY3QqLCBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU2VsZWN0aW9uSW5mbz4+IFNlbGVjdGVkT2Jq
ZWN0TWFwOwpAQCAtNzg0LDEyICs4NjgsMTEgQEAgdm9pZCBSZW5kZXJWaWV3OjpzZXRTZWxlY3Rp
b24oUmVuZGVyT2JqZWN0KiBzdGFydCwgaW50IHN0YXJ0UG9zLCBSZW5kZXJPYmplY3QqIGUKICAg
ICBTZWxlY3RlZEJsb2NrTWFwIG9sZFNlbGVjdGVkQmxvY2tzOwogICAgIFNlbGVjdGVkQmxvY2tN
YXAgbmV3U2VsZWN0ZWRCbG9ja3M7CiAKLSAgICBSZW5kZXJPYmplY3QqIG9zID0gbV9zZWxlY3Rp
b25TdGFydDsKLSAgICBSZW5kZXJPYmplY3QqIHN0b3AgPSByZW5kZXJlckFmdGVyUG9zaXRpb24o
bV9zZWxlY3Rpb25FbmQsIG1fc2VsZWN0aW9uRW5kUG9zKTsKLSAgICBib29sIGV4cGxvcmluZ0Jh
Y2t3YXJkcyA9IGZhbHNlOwotICAgIGJvb2wgY29udGludWVFeHBsb3JpbmcgPSBvcyAmJiAob3Mg
IT0gc3RvcCk7Ci0gICAgd2hpbGUgKGNvbnRpbnVlRXhwbG9yaW5nKSB7Ci0gICAgICAgIGlmICgo
b3MtPmNhbkJlU2VsZWN0aW9uTGVhZigpIHx8IG9zID09IG1fc2VsZWN0aW9uU3RhcnQgfHwgb3Mg
PT0gbV9zZWxlY3Rpb25FbmQpICYmIG9zLT5zZWxlY3Rpb25TdGF0ZSgpICE9IFNlbGVjdGlvbk5v
bmUpIHsKKyAgICBSZW5kZXJPYmplY3QqIG9zID0gcm9vdC0+c2VsZWN0aW9uU3RhcnQoKTsKKyAg
ICBSZW5kZXJPYmplY3QqIHN0b3AgPSByZW5kZXJlckFmdGVyUG9zaXRpb24ocm9vdC0+c2VsZWN0
aW9uRW5kKCksIHJvb3QtPnNlbGVjdGlvbkVuZFBvcygpKTsKKyAgICB3aGlsZSAob3MgJiYgb3Mg
IT0gc3RvcCkgeworICAgICAgICBpZiAoKG9zLT5jYW5CZVNlbGVjdGlvbkxlYWYoKSB8fCBvcyA9
PSByb290LT5zZWxlY3Rpb25TdGFydCgpIHx8IG9zID09IHJvb3QtPnNlbGVjdGlvbkVuZCgpKQor
ICAgICAgICAgICAgJiYgb3MtPnNlbGVjdGlvblN0YXRlKCkgIT0gU2VsZWN0aW9uTm9uZSkgewog
ICAgICAgICAgICAgLy8gQmxvY2tzIGFyZSByZXNwb25zaWJsZSBmb3IgcGFpbnRpbmcgbGluZSBn
YXBzIGFuZCBtYXJnaW4gZ2Fwcy4gIFRoZXkgbXVzdCBiZSBleGFtaW5lZCBhcyB3ZWxsLgogICAg
ICAgICAgICAgb2xkU2VsZWN0ZWRPYmplY3RzLnNldChvcywgc3RkOjptYWtlX3VuaXF1ZTxSZW5k
ZXJTZWxlY3Rpb25JbmZvPihvcywgdHJ1ZSkpOwogICAgICAgICAgICAgaWYgKGJsb2NrUmVwYWlu
dE1vZGUgPT0gUmVwYWludE5ld1hPUk9sZCkgewpAQCAtODA0LDcgKzg4Nyw3IEBAIHZvaWQgUmVu
ZGVyVmlldzo6c2V0U2VsZWN0aW9uKFJlbmRlck9iamVjdCogc3RhcnQsIGludCBzdGFydFBvcywg
UmVuZGVyT2JqZWN0KiBlCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBvcyA9
IGdldE5leHRPclByZXZSZW5kZXJPYmplY3RCYXNlZE9uRGlyZWN0aW9uKG9zLCBzdG9wLCBjb250
aW51ZUV4cGxvcmluZywgZXhwbG9yaW5nQmFja3dhcmRzKTsKKyAgICAgICAgb3MgPSBvcy0+bmV4
dEluUHJlT3JkZXIoKTsKICAgICB9CiAKICAgICAvLyBOb3cgY2xlYXIgdGhlIHNlbGVjdGlvbi4K
QEAgLTgxMywxMiArODk2LDEyIEBAIHZvaWQgUmVuZGVyVmlldzo6c2V0U2VsZWN0aW9uKFJlbmRl
ck9iamVjdCogc3RhcnQsIGludCBzdGFydFBvcywgUmVuZGVyT2JqZWN0KiBlCiAgICAgICAgIGkt
PmtleS0+c2V0U2VsZWN0aW9uU3RhdGVJZk5lZWRlZChTZWxlY3Rpb25Ob25lKTsKIAogICAgIC8v
IHNldCBzZWxlY3Rpb24gc3RhcnQgYW5kIGVuZAotICAgIG1fc2VsZWN0aW9uU3RhcnQgPSBzdGFy
dDsKLSAgICBtX3NlbGVjdGlvblN0YXJ0UG9zID0gc3RhcnRQb3M7Ci0gICAgbV9zZWxlY3Rpb25F
bmQgPSBlbmQ7Ci0gICAgbV9zZWxlY3Rpb25FbmRQb3MgPSBlbmRQb3M7CisgICAgcm9vdC0+c2V0
U2VsZWN0aW9uU3RhcnQoc3RhcnQpOworICAgIHJvb3QtPnNldFNlbGVjdGlvblN0YXJ0UG9zKHN0
YXJ0UG9zKTsKKyAgICByb290LT5zZXRTZWxlY3Rpb25FbmQoZW5kKTsKKyAgICByb290LT5zZXRT
ZWxlY3Rpb25FbmRQb3MoZW5kUG9zKTsKIAotICAgIC8vIFVwZGF0ZSB0aGUgc2VsZWN0aW9uIHN0
YXR1cyBvZiBhbGwgb2JqZWN0cyBiZXR3ZWVuIG1fc2VsZWN0aW9uU3RhcnQgYW5kIG1fc2VsZWN0
aW9uRW5kCisgICAgLy8gVXBkYXRlIHRoZSBzZWxlY3Rpb24gc3RhdHVzIG9mIGFsbCBvYmplY3Rz
IGJldHdlZW4gc2VsZWN0aW9uU3RhcnQgYW5kIHNlbGVjdGlvbkVuZAogICAgIGlmIChzdGFydCAm
JiBzdGFydCA9PSBlbmQpCiAgICAgICAgIHN0YXJ0LT5zZXRTZWxlY3Rpb25TdGF0ZUlmTmVlZGVk
KFNlbGVjdGlvbkJvdGgpOwogICAgIGVsc2UgewpAQCAtODQzLDkgKzkyNiw3IEBAIHZvaWQgUmVu
ZGVyVmlldzo6c2V0U2VsZWN0aW9uKFJlbmRlck9iamVjdCogc3RhcnQsIGludCBzdGFydFBvcywg
UmVuZGVyT2JqZWN0KiBlCiAgICAgLy8gTm93IHRoYXQgdGhlIHNlbGVjdGlvbiBzdGF0ZSBoYXMg
YmVlbiB1cGRhdGVkIGZvciB0aGUgbmV3IG9iamVjdHMsIHdhbGsgdGhlbSBhZ2FpbiBhbmQKICAg
ICAvLyBwdXQgdGhlbSBpbiB0aGUgbmV3IG9iamVjdHMgbGlzdC4KICAgICBvID0gc3RhcnQ7Ci0g
ICAgZXhwbG9yaW5nQmFja3dhcmRzID0gZmFsc2U7Ci0gICAgY29udGludWVFeHBsb3JpbmcgPSBv
ICYmIChvICE9IHN0b3ApOwotICAgIHdoaWxlIChjb250aW51ZUV4cGxvcmluZykgeworICAgIHdo
aWxlIChvICYmIG8gIT0gc3RvcCkgewogICAgICAgICBpZiAoKG8tPmNhbkJlU2VsZWN0aW9uTGVh
ZigpIHx8IG8gPT0gc3RhcnQgfHwgbyA9PSBlbmQpICYmIG8tPnNlbGVjdGlvblN0YXRlKCkgIT0g
U2VsZWN0aW9uTm9uZSkgewogICAgICAgICAgICAgbmV3U2VsZWN0ZWRPYmplY3RzLnNldChvLCBz
dGQ6Om1ha2VfdW5pcXVlPFJlbmRlclNlbGVjdGlvbkluZm8+KG8sIHRydWUpKTsKICAgICAgICAg
ICAgIFJlbmRlckJsb2NrKiBjYiA9IG8tPmNvbnRhaW5pbmdCbG9jaygpOwpAQCAtODU4LDcgKzkz
OSw3IEBAIHZvaWQgUmVuZGVyVmlldzo6c2V0U2VsZWN0aW9uKFJlbmRlck9iamVjdCogc3RhcnQs
IGludCBzdGFydFBvcywgUmVuZGVyT2JqZWN0KiBlCiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
IAotICAgICAgICBvID0gZ2V0TmV4dE9yUHJldlJlbmRlck9iamVjdEJhc2VkT25EaXJlY3Rpb24o
bywgc3RvcCwgY29udGludWVFeHBsb3JpbmcsIGV4cGxvcmluZ0JhY2t3YXJkcyk7CisgICAgICAg
IG8gPSBvLT5uZXh0SW5QcmVPcmRlcigpOwogICAgIH0KIAogICAgIGlmIChibG9ja1JlcGFpbnRN
b2RlID09IFJlcGFpbnROb3RoaW5nKQpAQCAtODY5LDkgKzk1MCw5IEBAIHZvaWQgUmVuZGVyVmll
dzo6c2V0U2VsZWN0aW9uKFJlbmRlck9iamVjdCogc3RhcnQsIGludCBzdGFydFBvcywgUmVuZGVy
T2JqZWN0KiBlCiAgICAgICAgIFJlbmRlck9iamVjdCogb2JqID0gaS0+a2V5OwogICAgICAgICBS
ZW5kZXJTZWxlY3Rpb25JbmZvKiBuZXdJbmZvID0gbmV3U2VsZWN0ZWRPYmplY3RzLmdldChvYmop
OwogICAgICAgICBSZW5kZXJTZWxlY3Rpb25JbmZvKiBvbGRJbmZvID0gaS0+dmFsdWUuZ2V0KCk7
Ci0gICAgICAgIGlmICghbmV3SW5mbyB8fCBvbGRJbmZvLT5yZWN0KCkgIT0gbmV3SW5mby0+cmVj
dCgpIHx8IG9sZEluZm8tPnN0YXRlKCkgIT0gbmV3SW5mby0+c3RhdGUoKSB8fAotICAgICAgICAg
ICAgKG1fc2VsZWN0aW9uU3RhcnQgPT0gb2JqICYmIG9sZFN0YXJ0UG9zICE9IG1fc2VsZWN0aW9u
U3RhcnRQb3MpIHx8Ci0gICAgICAgICAgICAobV9zZWxlY3Rpb25FbmQgPT0gb2JqICYmIG9sZEVu
ZFBvcyAhPSBtX3NlbGVjdGlvbkVuZFBvcykpIHsKKyAgICAgICAgaWYgKCFuZXdJbmZvIHx8IG9s
ZEluZm8tPnJlY3QoKSAhPSBuZXdJbmZvLT5yZWN0KCkgfHwgb2xkSW5mby0+c3RhdGUoKSAhPSBu
ZXdJbmZvLT5zdGF0ZSgpCisgICAgICAgICAgICB8fCAocm9vdC0+c2VsZWN0aW9uU3RhcnQoKSA9
PSBvYmogJiYgb2xkU3RhcnRQb3MgIT0gcm9vdC0+c2VsZWN0aW9uU3RhcnRQb3MoKSkKKyAgICAg
ICAgICAgIHx8IChyb290LT5zZWxlY3Rpb25FbmQoKSA9PSBvYmogJiYgb2xkRW5kUG9zICE9IHJv
b3QtPnNlbGVjdGlvbkVuZFBvcygpKSkgewogICAgICAgICAgICAgb2xkSW5mby0+cmVwYWludCgp
OwogICAgICAgICAgICAgaWYgKG5ld0luZm8pIHsKICAgICAgICAgICAgICAgICBuZXdJbmZvLT5y
ZXBhaW50KCk7CkBAIC05MjAsMTIgKzEwMDEsNiBAQCB2b2lkIFJlbmRlclZpZXc6OmNsZWFyU2Vs
ZWN0aW9uKCkKICAgICBzZXRTZWxlY3Rpb24oMCwgLTEsIDAsIC0xLCBSZXBhaW50TmV3TWludXNP
bGQpOwogfQogCi12b2lkIFJlbmRlclZpZXc6OnNlbGVjdGlvblN0YXJ0RW5kKGludCYgc3RhcnRQ
b3MsIGludCYgZW5kUG9zKSBjb25zdAotewotICAgIHN0YXJ0UG9zID0gbV9zZWxlY3Rpb25TdGFy
dFBvczsKLSAgICBlbmRQb3MgPSBtX3NlbGVjdGlvbkVuZFBvczsKLX0KLQogYm9vbCBSZW5kZXJW
aWV3OjpwcmludGluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGRvY3VtZW50KCkucHJpbnRpbmco
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCmluZGV4IDY4NmYzMDkzMmFhNDdm
ZjBiODUxY2FiZDgwZGVjYjZhZGM0NmVmZTMuLmUzNDUwNmE2MDA5OTY2MzdiMjU3ZGFiOTAxOGI0
NmE1NTMxYjU4NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJW
aWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaApAQCAtMjcs
OCArMjcsMTAgQEAKICNpbmNsdWRlICJQT0RGcmVlTGlzdEFyZW5hLmgiCiAjaW5jbHVkZSAiUmVn
aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCisjaW5jbHVkZSAiU2VsZWN0aW9u
U3VidHJlZVJvb3QuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQu
aD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
MzcsNyArMzksNyBAQCBjbGFzcyBJbWFnZVF1YWxpdHlDb250cm9sbGVyOwogY2xhc3MgUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOwogY2xhc3MgUmVuZGVyUXVvdGU7CiAKLWNsYXNzIFJlbmRlclZpZXcg
ZmluYWwgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKK2NsYXNzIFJlbmRlclZpZXcgZmluYWwg
OiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93LCBwdWJsaWMgU2VsZWN0aW9uU3VidHJlZVJvb3Qgewog
cHVibGljOgogICAgIFJlbmRlclZpZXcoRG9jdW1lbnQmLCBQYXNzUmVmPFJlbmRlclN0eWxlPik7
CiAgICAgdmlydHVhbCB+UmVuZGVyVmlldygpOwpAQCAtODYsNyArODgsNiBAQCBwdWJsaWM6CiAg
ICAgUmVuZGVyT2JqZWN0KiBzZWxlY3Rpb25TdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0
aW9uU3RhcnQ7IH0KICAgICBSZW5kZXJPYmplY3QqIHNlbGVjdGlvbkVuZCgpIGNvbnN0IHsgcmV0
dXJuIG1fc2VsZWN0aW9uRW5kOyB9CiAgICAgSW50UmVjdCBzZWxlY3Rpb25Cb3VuZHMoYm9vbCBj
bGlwVG9WaXNpYmxlQ29udGVudCA9IHRydWUpIGNvbnN0OwotICAgIHZvaWQgc2VsZWN0aW9uU3Rh
cnRFbmQoaW50JiBzdGFydFBvcywgaW50JiBlbmRQb3MpIGNvbnN0OwogICAgIHZvaWQgcmVwYWlu
dFNlbGVjdGlvbigpIGNvbnN0OwogCiAgICAgYm9vbCBwcmludGluZygpIGNvbnN0OwpAQCAtMjg4
LDYgKzI4OSwxMCBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBMYXlvdXRTdGF0ZU1haW50
YWluZXI7CiAgICAgZnJpZW5kIGNsYXNzIExheW91dFN0YXRlRGlzYWJsZXI7CiAKKyAgICB2b2lk
IHNldFN1YnRyZWVTZWxlY3Rpb24oU2VsZWN0aW9uU3VidHJlZVJvb3QqLCBSZW5kZXJPYmplY3Qq
IHN0YXJ0LCBpbnQgc3RhcnRQb3MsIFJlbmRlck9iamVjdCogZW5kLCBpbnQgZW5kUG9zLCBTZWxl
Y3Rpb25SZXBhaW50TW9kZSk7CisgICAgTGF5b3V0UmVjdCBzdWJ0cmVlU2VsZWN0aW9uQm91bmRz
KGNvbnN0IFNlbGVjdGlvblN1YnRyZWVSb290KiwgYm9vbCBjbGlwVG9WaXNpYmxlQ29udGVudCA9
IHRydWUpIGNvbnN0OworICAgIHZvaWQgcmVwYWludFN1YnRyZWVTZWxlY3Rpb24oY29uc3QgU2Vs
ZWN0aW9uU3VidHJlZVJvb3QqKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBGcmFtZVZpZXcmIG1f
ZnJhbWVWaWV3OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0
aW9uU3VidHJlZVJvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblN1
YnRyZWVSb290LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOWE5MDcxY2RiODFiMjI5ZjczYWQwNjU5MjQyMTRl
NTY1MjRhMjZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Nl
bGVjdGlvblN1YnRyZWVSb290LmNwcApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAg
ICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiDigJxBUyBJ
U+KAnSBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICog
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
CisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJTZWxlY3Rpb25TdWJ0cmVlUm9vdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1NlbGVjdGlvblN1YnRyZWVSb290OjpTZWxlY3Rpb25TdWJ0cmVlUm9vdCgpCisgICAgOiBt
X3NlbGVjdGlvblN0YXJ0KG51bGxwdHIpCisgICAgLCBtX3NlbGVjdGlvblN0YXJ0UG9zKC0xKQor
ICAgICwgbV9zZWxlY3Rpb25FbmQobnVsbHB0cikKKyAgICAsIG1fc2VsZWN0aW9uRW5kUG9zKC0x
KQoreworfQorCit2b2lkIFNlbGVjdGlvblN1YnRyZWVSb290OjpzZWxlY3Rpb25TdGFydEVuZFBv
c2l0aW9ucyhpbnQmIHN0YXJ0UG9zLCBpbnQmIGVuZFBvcykgY29uc3QKK3sKKyAgICBzdGFydFBv
cyA9IG1fc2VsZWN0aW9uU3RhcnRQb3M7CisgICAgZW5kUG9zID0gbV9zZWxlY3Rpb25FbmRQb3M7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9TZWxlY3Rpb25TdWJ0cmVlUm9vdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1NlbGVjdGlvblN1YnRyZWVSb290LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDYxZDRlZDZiNWQwNzEyYzEx
YWIzZTcwY2QyOGM1YTE0NjcwMmEzOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9TZWxlY3Rpb25TdWJ0cmVlUm9vdC5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSIOKAnEFTIElT4oCdIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9M
REVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisg
KiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBT
ZWxlY3Rpb25TdWJ0cmVlUm9vdF9oCisjZGVmaW5lIFNlbGVjdGlvblN1YnRyZWVSb290X2gKKwor
I2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFNlbGVjdGlvblN1YnRyZWVSb290IHsKK3B1YmxpYzoKKworICAgIFNlbGVjdGlvblN1YnRyZWVS
b290KCk7CisKKyAgICBSZW5kZXJPYmplY3QqIHNlbGVjdGlvblN0YXJ0KCkgY29uc3QgeyByZXR1
cm4gbV9zZWxlY3Rpb25TdGFydDsgfQorICAgIGludCBzZWxlY3Rpb25TdGFydFBvcygpIGNvbnN0
IHsgcmV0dXJuIG1fc2VsZWN0aW9uU3RhcnRQb3M7IH0KKyAgICBSZW5kZXJPYmplY3QqIHNlbGVj
dGlvbkVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uRW5kOyB9CisgICAgaW50IHNlbGVj
dGlvbkVuZFBvcygpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uRW5kUG9zOyB9CisKKyAgICB2
b2lkIHNldFNlbGVjdGlvblN0YXJ0KFJlbmRlck9iamVjdCogc2VsZWN0aW9uU3RhcnQpIHsgbV9z
ZWxlY3Rpb25TdGFydCA9IHNlbGVjdGlvblN0YXJ0OyB9CisgICAgdm9pZCBzZXRTZWxlY3Rpb25T
dGFydFBvcyhpbnQgc2VsZWN0aW9uU3RhcnRQb3MpIHsgbV9zZWxlY3Rpb25TdGFydFBvcyA9IHNl
bGVjdGlvblN0YXJ0UG9zOyB9CisgICAgdm9pZCBzZXRTZWxlY3Rpb25FbmQoUmVuZGVyT2JqZWN0
KiBzZWxlY3Rpb25FbmQpIHsgbV9zZWxlY3Rpb25FbmQgPSBzZWxlY3Rpb25FbmQ7IH0KKyAgICB2
b2lkIHNldFNlbGVjdGlvbkVuZFBvcyhpbnQgc2VsZWN0aW9uRW5kUG9zKSB7IG1fc2VsZWN0aW9u
RW5kUG9zID0gc2VsZWN0aW9uRW5kUG9zOyB9CisKKyAgICB2b2lkIHNlbGVjdGlvblN0YXJ0RW5k
UG9zaXRpb25zKGludCYgc3RhcnRQb3MsIGludCYgZW5kUG9zKSBjb25zdDsKKworcHJpdmF0ZToK
KworICAgIFJlbmRlck9iamVjdCogbV9zZWxlY3Rpb25TdGFydDsKKyAgICBpbnQgbV9zZWxlY3Rp
b25TdGFydFBvczsKKyAgICBSZW5kZXJPYmplY3QqIG1fc2VsZWN0aW9uRW5kOworICAgIGludCBt
X3NlbGVjdGlvbkVuZFBvczsKKworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gU2VsZWN0aW9uU3VidHJlZVJvb3RfaApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDUwZmUyZDU2N2UxZTExMjcyYWIw
NzE2NzI4ZmM0MzNhYzJhZjliNzEuLmU5ZDMzNGMxZmRjYTdjODY3ZjA0NjBiOWQ5MDIxNjVmODBl
NjU3N2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNC0wNC0xMCAgTWFudWVsIFJlZ28gQ2Fz
YXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBbQ1NTIFJlZ2lvbnNdIFNlbGVj
dGlvbiBoaWdobGlnaHQgZG9lc24ndCBtYXRjaCBET00gc2VsZWN0aW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzE1MTEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IHRlc3QgdG8gY2hlY2sg
aGlnaGxpZ2h0IG9mIHJlbmRlciBvYmplY3RzIG1vdmVkIHVuZGVyIFJlbmRlckZsb3dUaHJlYWQg
aW4gdGhlIHJlbmRlciB0cmVlLgorCisgICAgICAgIFVwZGF0ZWQgc29tZSB0ZXN0cyB0byBhdm9p
ZCBpc3N1ZXMgd2l0aCBzZWxlY3Rpb24gZ2FwIGZpbGxpbmcgaW4gdGhlIG5ldyBpbXBsZW1lbnRh
dGlvbi4KKworICAgICAgICAqIGZhc3QvcmVnaW9ucy9zZWxlY3Rpb24vc2VsZWN0aW5nLXRleHQt
aW5jbHVkaW5nLXJlZ2lvbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Jl
Z2lvbnMvc2VsZWN0aW9uL3NlbGVjdGluZy10ZXh0LWluY2x1ZGluZy1yZWdpb24uaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3RpbmctdGV4dC10aHJv
dWdoLWRpZmZlcmVudC1yZWdpb24tZmxvd3MtMi1leHBlY3RlZC5odG1sOiBVcGRhdGVkLgorICAg
ICAgICAqIGZhc3QvcmVnaW9ucy9zZWxlY3Rpb24vc2VsZWN0aW5nLXRleHQtdGhyb3VnaC1kaWZm
ZXJlbnQtcmVnaW9uLWZsb3dzLTIuaHRtbDogVXBkYXRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lv
bnMvc2VsZWN0aW9uL3NlbGVjdGlvbi1kaXJlY3Rpb24tZXhwZWN0ZWQuaHRtbDogVXBkYXRlZC4K
KyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGlvbi1kaXJlY3Rpb24uaHRt
bDogVXBkYXRlZC4KKwogMjAxNC0wNC0wOSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1hcmlvLnBy
YWRhQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtHVEtdIExheW91dCB0ZXN0cyBhY2Nlc3NpYmls
aXR5L2NoaWxkcmVuLWNoYW5nZWQtc2VuZHMtbm90aWZpY2F0aW9uLmh0bWwgYW5kIGFjY2Vzc2li
aWxpdHkvbm90aWZpY2F0aW9uLWxpc3RlbmVycy5odG1sIGZhaWxzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGluZy10ZXh0LWluY2x1ZGluZy1y
ZWdpb24tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zZWxlY3Rpb24v
c2VsZWN0aW5nLXRleHQtaW5jbHVkaW5nLXJlZ2lvbi1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmE1MDJkMmI1ZjYzNjNiMmM3NDk2MTIyMzJlNjNmNDU0MzI1N2M5MzEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGluZy10ZXh0LWlu
Y2x1ZGluZy1yZWdpb24tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDc0IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9oZWxw
ZXIuanMiPjwvc2NyaXB0PgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vcmVz
b3VyY2VzL3JlZ2lvbi1zdHlsZS5jc3MiPjwvbGluaz4KKyAgICA8c3R5bGU+CisgICAgICAgICog
eworICAgICAgICAgICAgbWFyZ2luOiAwcHg7CisgICAgICAgICAgICBwYWRkaW5nOiAwcHg7Cisg
ICAgICAgIH0KKworICAgICAgICBib2R5IHsKKyAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4
OworICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4OworICAgICAgICAgICAgZm9udC1mYW1pbHk6
IEFoZW07CisgICAgICAgIH0KKworICAgICAgICAjb3V0c2lkZS0xIHsKKyAgICAgICAgICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIHRvcDogMHB4OworICAgICAgICB9CisKKyAg
ICAgICAgI291dHNpZGUtMiB7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAg
ICAgICAgICB0b3A6IDEwMHB4OworICAgICAgICB9CisKKyAgICAgICAgI3JlZ2lvbiB7CisgICAg
ICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB0b3A6IDIwMHB4OworICAg
ICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY3lhbjsKKyAgICAgICAgfQorCisgICAgICAgICNk
ZXNjcmlwdGlvbiB7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAg
ICB0b3A6IDM1MHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0PgorICAg
ICAgICBvbk1vdXNlVXBMb2dTZWxlY3Rpb24oInNlbGVjdGVkLWNvbnRlbnQiKTsKKyAgICA8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2VsZWN0Q29udGVudEJ5SWRzKCd3b3JkMScs
ICd3b3JkMicpOyIgc3R5bGU9Im1hcmdpbi10b3A6IDA7Ij4KKyAgICA8ZGl2IGlkPSJvdXRzaWRl
LTEiIGNsYXNzPSJiaWdCb3giPgorICAgICAgICBYIFggWCBYIFggWCBYIFgKKyAgICAgICAgWCBY
IFggWCBYIFggWCBYCisgICAgICAgIFggWCBYIDxzcGFuIGlkPSJ3b3JkMSIgY2xhc3M9InRva2Vu
Ij5YPC9zcGFuPiBYIFggWCBYCisgICAgICAgIFggWCBYIFggWCBYIFggWAorICAgICAgICBYIFgg
WCBYIFggWCBYIFgKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZWdpb24iIGNsYXNzPSJiaWdC
b3giPgorICAgICAgICBYIFggWCBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBYIFggWCBYCisg
ICAgICAgIFggWCBYIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFggWCBYIFgKKyAgICAgICAg
WCBYIFggWCBYIFggWCBYCisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0ib3V0c2lkZS0yIiBjbGFz
cz0iYmlnQm94Ij4KKyAgICAgICAgWCBYIFggWCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWCBY
IFggWAorICAgICAgICBYIFggWCA8c3BhbiBpZD0id29yZDIiIGNsYXNzPSJ0b2tlbiI+WDwvc3Bh
bj4gWCBYIFggWAorICAgICAgICBYIFggWCBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBYIFgg
WCBYCisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0iZGVzY3JpcHRpb24iIGNsYXNzPSJkZXNjcmlw
dGlvbiI+CisgICAgICAgIDxoMT48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTMxNTExIj5CdWcgIzEzMTUxMSAtIFtDU1MgUmVnaW9uc10gU2VsZWN0aW9u
IGhpZ2hsaWdodCBkb2Vzbid0IG1hdGNoIERPTSBzZWxlY3Rpb248L2E+PC9oMT4KKyAgICAgICAg
PHA+VGhpcyB0ZXN0IGNoZWNrcyB0aGUgc2VsZWN0aW9uIGluIDIgdGV4dCB3cmFwcGluZyBhIGNv
bnRlbnQgbm9kZS4gSWYgeW91IHNlbGVjdCBmcm9tIDxzcGFuIGNsYXNzPSJ0b2tlbiI+WDwvc3Bh
bj4gdG8gPHNwYW4gY2xhc3M9InRva2VuIj5YPC9zcGFuPiB5b3Ugd2lsbCBzZWUgdGhhdCByZWdp
b24gdGV4dCBpcyBoaWdobGlnaHRlZCBhbmQgaW5jbHVkZWQgaW4gdGhlIHNlbGVjdGVkIGNvbnRl
bnQgKGJlY2F1c2Ugb2YgdGhlIGNvbnRlbnQgb2YgdGhlIHJlZ2lvbiBpcyBiZXR3ZWVuIGJvdCB0
ZXh0cyBpbiB0aGUgRE9NKS48L3A+CisgICAgICAgIDxkbD4KKyAgICAgICAgICAgIDxkdD5TZWxl
Y3RlZCBjb250ZW50OjwvZHQ+CisgICAgICAgICAgICA8ZGQgaWQ9InNlbGVjdGVkLWNvbnRlbnQi
PjwvZGQ+CisgICAgICAgIDwvZGw+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGluZy10ZXh0
LWluY2x1ZGluZy1yZWdpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zZWxlY3Rp
b24vc2VsZWN0aW5nLXRleHQtaW5jbHVkaW5nLXJlZ2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhMjRl
NTM1YzFkMWNmNTI1NTc1MTA1YTg5MTBmMWZkZGI0ZjU0NDIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGluZy10ZXh0LWluY2x1ZGlu
Zy1yZWdpb24uaHRtbApAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9oZWxwZXIuanMiPjwvc2NyaXB0
PgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vcmVzb3VyY2VzL3JlZ2lvbi1z
dHlsZS5jc3MiPjwvbGluaz4KKyAgICA8c3R5bGU+CisgICAgICAgICogeworICAgICAgICAgICAg
bWFyZ2luOiAwcHg7CisgICAgICAgICAgICBwYWRkaW5nOiAwcHg7CisgICAgICAgIH0KKworICAg
ICAgICBib2R5IHsKKyAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OworICAgICAgICAgICAg
Zm9udC1zaXplOiAyMHB4OworICAgICAgICAgICAgZm9udC1mYW1pbHk6IEFoZW07CisgICAgICAg
IH0KKworICAgICAgICAjcmVnaW9uIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGN5
YW47CisgICAgICAgIH0KKworICAgICAgICAjZGVzY3JpcHRpb24geworICAgICAgICAgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgICAgICAgICAgdG9wOiAzNTBweDsKKyAgICAgICAgfQorICAg
IDwvc3R5bGU+CisgICAgPHNjcmlwdD4KKyAgICAgICAgb25Nb3VzZVVwTG9nU2VsZWN0aW9uKCJz
ZWxlY3RlZC1jb250ZW50Iik7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InNlbGVjdENvbnRlbnRCeUlkcygnd29yZDEnLCAnd29yZDInKTsiIHN0eWxlPSJtYXJnaW4tdG9w
OiAwOyI+CisgICAgPGRpdiBjbGFzcz0iYmlnQm94IGZsb2F0Ij4KKyAgICAgICAgWCBYIFggWCBY
IFggWCBYCisgICAgICAgIFggWCBYIFggWCBYIFggWAorICAgICAgICBYIFggWCA8c3BhbiBpZD0i
d29yZDEiIGNsYXNzPSJ0b2tlbiI+WDwvc3Bhbj4gWCBYIFggWAorICAgICAgICBYIFggWCBYIFgg
WCBYIFgKKyAgICAgICAgWCBYIFggWCBYIFggWCBYCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFz
cz0iY2xlYXIiPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImZsb3dBcnRpY2xlIj4KKyAgICAgICAg
WCBYIFggWCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWCBYIFggWAorICAgICAgICBYIFggWCBY
IFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWCBYIFgg
WAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImJpZ0JveCBmbG9hdCI+CisgICAgICAgIFgg
WCBYIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggPHNw
YW4gaWQ9IndvcmQyIiBjbGFzcz0idG9rZW4iPlg8L3NwYW4+IFggWCBYIFgKKyAgICAgICAgWCBY
IFggWCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWCBYIFggWAorICAgIDwvZGl2PgorICAgIDxk
aXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZWdpb24iIGNsYXNzPSJyZWdp
b25BcnRpY2xlIGJpZ0JveCI+PC9kaXY+CisgICAgPGRpdiBpZD0iZGVzY3JpcHRpb24iIGNsYXNz
PSJkZXNjcmlwdGlvbiI+CisgICAgICAgIDxoMT48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxNTExIj5CdWcgIzEzMTUxMSAtIFtDU1MgUmVnaW9uc10g
U2VsZWN0aW9uIGhpZ2hsaWdodCBkb2Vzbid0IG1hdGNoIERPTSBzZWxlY3Rpb248L2E+PC9oMT4K
KyAgICAgICAgPHA+VGhpcyB0ZXN0IGNoZWNrcyB0aGUgc2VsZWN0aW9uIGluIDIgdGV4dCB3cmFw
cGluZyBhIGNvbnRlbnQgbm9kZS4gSWYgeW91IHNlbGVjdCBmcm9tIDxzcGFuIGNsYXNzPSJ0b2tl
biI+WDwvc3Bhbj4gdG8gPHNwYW4gY2xhc3M9InRva2VuIj5YPC9zcGFuPiB5b3Ugd2lsbCBzZWUg
dGhhdCByZWdpb24gdGV4dCBpcyBoaWdobGlnaHRlZCBhbmQgaW5jbHVkZWQgaW4gdGhlIHNlbGVj
dGVkIGNvbnRlbnQgKGJlY2F1c2Ugb2YgdGhlIGNvbnRlbnQgb2YgdGhlIHJlZ2lvbiBpcyBiZXR3
ZWVuIGJvdCB0ZXh0cyBpbiB0aGUgRE9NKS48L3A+CisgICAgICAgIDxkbD4KKyAgICAgICAgICAg
IDxkdD5TZWxlY3RlZCBjb250ZW50OjwvZHQ+CisgICAgICAgICAgICA8ZGQgaWQ9InNlbGVjdGVk
LWNvbnRlbnQiPjwvZGQ+CisgICAgICAgIDwvZGw+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVj
dGluZy10ZXh0LXRocm91Z2gtZGlmZmVyZW50LXJlZ2lvbi1mbG93cy0yLWV4cGVjdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGluZy10ZXh0LXRocm91
Z2gtZGlmZmVyZW50LXJlZ2lvbi1mbG93cy0yLWV4cGVjdGVkLmh0bWwKaW5kZXggNzAwYWMyNDEz
YzQ5NGY3ZjM0ZTVhMWFhZDc5MjhmYzUwOTJiNDU2My4uYWEyMjlmZGVjNzdmOWI4ZDcyZTBkNjY5
NDhjZWI3NjExNjEyMDgyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3Nl
bGVjdGlvbi9zZWxlY3RpbmctdGV4dC10aHJvdWdoLWRpZmZlcmVudC1yZWdpb24tZmxvd3MtMi1l
eHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zZWxlY3Rpb24vc2Vs
ZWN0aW5nLXRleHQtdGhyb3VnaC1kaWZmZXJlbnQtcmVnaW9uLWZsb3dzLTItZXhwZWN0ZWQuaHRt
bApAQCAtMywxOSArMyw1NiBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2hl
bHBlci5qcyI+PC9zY3JpcHQ+CiA8c3R5bGU+Ci1ib2R5IHsgd2lkdGg6IDYwMHB4OyB9Ci0jZm9v
dE5vdGUgeyBmb250LXNpemU6IDEzcHg7IH0KKyogeworICAgIG1hcmdpbjogMHB4OworICAgIHBh
ZGRpbmc6IDBweDsKKyAgICBmb250LXNpemU6IDIwcHg7CisgICAgZm9udC1mYW1pbHk6IEFoZW07
CisgICAgbGluZS1oZWlnaHQ6IDIwcHg7Cit9CisjY29udGVudDEgeworICAgIGhlaWdodDogMTAw
cHg7CisgICAgd2lkdGg6IDIwMHB4OworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6
IDUwcHg7Cit9CisjbmVzdGVkUmVnaW9uIHsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIHdpZHRo
OiAyMDBweDsKKyAgICBjb2xvcjogcmVkOworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0
b3A6IDI1MHB4OworfQorI2NvbnRlbnQyIHsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIHdpZHRo
OiAyMDBweDsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAxNTBweDsKK30KIDwv
c3R5bGU+CiA8L2hlYWQ+CiA8Ym9keSBvbmxvYWQ9InNlbGVjdEJhc2VBbmRFeHRlbnQoJ3N0YXJ0
JywgMCwgJ2VuZCcsIDEpIj4KLTxkaXYgaWQ9ImNvbnRlbnQiPgotICAgIDxoMSBzdHlsZT0ibWFy
Z2luLXRvcDogMHB4Ij5TZWxlY3RpbmcgdGV4dCB0aHJvdWdoIGRpZmZlcmVudCBDU1MtUmVnaW9u
IGZsb3dzPC9oMT4KLSAgICA8ZGl2PgotICAgIFRoaXMgdGV4dCBjb250YWlucyBhIGZvb3Rub3Rl
IGFzIGEgbmVzdGVkIHJlZ2lvbiB3aGF0IGlzIGRpcGxheWVkIDxzcGFuIGlkPSJzdGFydCI+YmVs
b3c8c3Bhbj4gdGhlIGFydGljbGUuICgxKSBJZiB5b3Ugc3RhcnQgc2VsZWN0aW5nCi0gICAgICAg
IHRleHQgZnJvbSB0aGlzIGFydGljbGUgdW50aWwgc29tZXdoZXJlIGluIHRoZSBmb290bm90ZSBh
bmQgdGhlbiBjbGljayBzb21ld2hlcmUsIHRoZSBzZWxlY3Rpb24gc2hvdWxkIGJlIGNsZWFyZWQu
Ci0gICAgPC9kaXY+Ci0gICAgPGRpdiBpZD0iZm9vdE5vdGUiPigxKSBUaGlzIGlzIGEgZm9vdG5v
dGUuIEZvb3Rub3RlcyBjYW4gYmUgcXVpdGUgbG9uZyBhbmQgZ28gb3ZlciBzZXZlcmFsIGxpbmVz
LiBUaGlzIGZvb3Rub3RlCi0gICAgaXMgbmVzdGVkIGluc2lkZSB0aGUgdGV4dCA8c3BhbiBpZD0i
ZW5kIj5hYm92ZTxzcGFuPiBhbmQgZGlzcGxheWVkIGhlcmUgd2l0aCB0aGUgaGVscCBvZiBjc3Mt
cmVnaW9ucy48L3NwYW4+PC9kaXY+Cis8aDE+U2VsZWN0aW5nIHRleHQgdGhyb3VnaCBkaWZmZXJl
bnQgQ1NTLVJlZ2lvbiBmbG93czwvaDE+Cis8ZGl2IGlkPSJjb250ZW50MSI+CisgICAgWCBYIFgg
WCBYCisgICAgWCBYIFggWCBYCisgICAgWCBYIDxzcGFuIGlkPSJzdGFydCI+WDwvc3Bhbj4gWCBY
CisgICAgWCBYIFggWCBYCisgICAgWCBYIFggWCBYWAorPC9kaXY+Cis8ZGl2IGlkPSJuZXN0ZWRS
ZWdpb24iPgorICAgIFggWCBYIFggWAorICAgIFggWCBYIFggWAorICAgIFggWCA8c3BhbiBpZD0i
ZW5kIj5YPC9zcGFuPiBYIFgKKyAgICBYIFggWCBYIFgKKyAgICBYIFggWCBYIFgKKzwvZGl2Pgor
PGRpdiBpZD0iY29udGVudDIiPgorICAgIFggWCBYIFggWAorICAgIFggWCBYIFggWAorICAgIFgg
WCBYIFggWAorICAgIFggWCBYIFggWAorICAgIFggWCBYIFggWAogPC9kaXY+CiA8L2JvZHk+CiA8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3Nl
bGVjdGluZy10ZXh0LXRocm91Z2gtZGlmZmVyZW50LXJlZ2lvbi1mbG93cy0yLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGluZy10ZXh0LXRocm91Z2gtZGlm
ZmVyZW50LXJlZ2lvbi1mbG93cy0yLmh0bWwKaW5kZXggOWIwODNiMmQwM2Q3ODIzY2MzYWFhYWVj
ODcyNGJjY2NkZDRkMzY0ZS4uMzc2MGFlMWFhNDNmMmJlZGE1YTAyYmE5NzVmODc2ZWU1ZmE5YTcw
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3Rp
bmctdGV4dC10aHJvdWdoLWRpZmZlcmVudC1yZWdpb24tZmxvd3MtMi5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcmVnaW9ucy9zZWxlY3Rpb24vc2VsZWN0aW5nLXRleHQtdGhyb3VnaC1kaWZm
ZXJlbnQtcmVnaW9uLWZsb3dzLTIuaHRtbApAQCAtMywzMCArMyw3MyBAQAogPGhlYWQ+CiA8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2hlbHBlci5qcyI+PC9zY3JpcHQ+CiA8c3R5bGU+Ci1ib2R5
IHsgd2lkdGg6IDYwMHB4OyB9CisqIHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiAw
cHg7CisgICAgZm9udC1zaXplOiAyMHB4OworICAgIGZvbnQtZmFtaWx5OiBBaGVtOworICAgIGxp
bmUtaGVpZ2h0OiAyMHB4OworfQorCisjbmVzdGVkUmVnaW9uIHsKKyAgICAtd2Via2l0LWZsb3ct
aW50bzogbmVzdGVkUmVnaW9uOworICAgIGNvbG9yOiByZWQ7Cit9CiAKLSNmb290Tm90ZSB7Ci0g
ICAgLXdlYmtpdC1mbG93LWludG86IGZvb3ROb3RlOwotICAgIGRpc3BsYXk6IGJsb2NrOwotICAg
IGZvbnQtc2l6ZTogMTNweDsKKyNjb250ZW50IHsKKyAgICAtd2Via2l0LWZsb3ctaW50bzogY29u
dGVudDsKIH0KIAotI2Zvb3ROb3RlUmVnaW9uIHsgLXdlYmtpdC1mbG93LWZyb206IGZvb3ROb3Rl
OyB9Ci0jY29udGVudCB7IC13ZWJraXQtZmxvdy1pbnRvOiBjb250ZW50OyB9Ci0jcmVnaW9uIHsg
LXdlYmtpdC1mbG93LWZyb206IGNvbnRlbnQ7IH0KKyNuZXN0ZWRSZWdpb25SZWdpb24geworICAg
IC13ZWJraXQtZmxvdy1mcm9tOiBuZXN0ZWRSZWdpb247CisgICAgaGVpZ2h0OiAxMDBweDsKKyAg
ICB3aWR0aDogMjAwcHg7Cit9CisjcmVnaW9uIHsKKyAgICAtd2Via2l0LWZsb3ctZnJvbTogY29u
dGVudDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICAgIHdpZHRoOiAyMDBweDsKK30KKworI2NvbnRl
bnQxIHsKKyAgICBoZWlnaHQ6IDEwMHB4OworfQorCisjY29udGVudDIgeworICAgIGhlaWdodDog
MTAwcHg7Cit9CisKK2gxIHsKKyAgICBoZWlnaHQ6IDUwcHg7Cit9CiA8L3N0eWxlPgogPC9oZWFk
PgogPGJvZHk+CiAKKzxoMT5TZWxlY3RpbmcgdGV4dCB0aHJvdWdoIGRpZmZlcmVudCBDU1MtUmVn
aW9uIGZsb3dzPC9oMT4KIDxkaXYgaWQ9InJlZ2lvbiI+PC9kaXY+Ci08ZGl2IGlkPSJmb290Tm90
ZVJlZ2lvbiI+PC9kaXY+Cis8ZGl2IGlkPSJuZXN0ZWRSZWdpb25SZWdpb24iPjwvZGl2PgogPGRp
diBpZD0iY29udGVudCI+Ci0gICAgPGgxIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHgiPlNlbGVjdGlu
ZyB0ZXh0IHRocm91Z2ggZGlmZmVyZW50IENTUy1SZWdpb24gZmxvd3M8L2gxPgotICAgIDxkaXYg
aWQ9ImNvbnRlbnRUZXh0Ij4KLSAgICAgICAgVGhpcyB0ZXh0IGNvbnRhaW5zIGEgZm9vdG5vdGUg
YXMgYSBuZXN0ZWQgcmVnaW9uIHdoYXQgaXMgZGlwbGF5ZWQgPHNwYW4gaWQ9InN0YXJ0Ij5iZWxv
dzwvc3Bhbj4gdGhlIGFydGljbGUuICgxKSA8c3BhbiBpZD0iZm9vdE5vdGUiPgotICAgICAgICA8
c3Bhbj48c3Bhbj48L3NwYW4+KDEpIFRoaXMgaXMgYSBmb290bm90ZS4gRm9vdG5vdGVzIGNhbiBi
ZSBxdWl0ZSBsb25nIGFuZCBnbyBvdmVyIHNldmVyYWwgbGluZXMuIFRoaXMgZm9vdG5vdGUKLSAg
ICAgICAgaXMgbmVzdGVkIGluc2lkZSB0aGUgdGV4dCA8c3BhbiBpZD0iZW5kIj5hYm92ZTwvc3Bh
bj4gYW5kIGRpc3BsYXllZCBoZXJlIHdpdGggdGhlIGhlbHAgb2YgY3NzLXJlZ2lvbnMuPC9zcGFu
Pjwvc3Bhbj4gSWYgeW91IHN0YXJ0IHNlbGVjdGluZwotICAgICAgICB0ZXh0IGZyb20gdGhpcyBh
cnRpY2xlIHVudGlsIHNvbWV3aGVyZSBpbiB0aGUgZm9vdG5vdGUgYW5kIHRoZW4gY2xpY2sgc29t
ZXdoZXJlLCB0aGUgc2VsZWN0aW9uIHNob3VsZCBiZSBjbGVhcmVkLgorICAgIDxkaXYgaWQ9ImNv
bnRlbnQxIj4KKyAgICAgICAgWCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWAorICAgICAgICBY
IFggPHNwYW4gaWQ9InN0YXJ0Ij5YPC9zcGFuPiBYIFgKKyAgICAgICAgWCBYIFggWCBYCisgICAg
ICAgIFggWCBYIFggWFgKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJuZXN0ZWRSZWdpb24iPgor
ICAgICAgICBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBYCisgICAgICAgIFggWCA8c3BhbiBp
ZD0iZW5kIj5YPC9zcGFuPiBYIFgKKyAgICAgICAgWCBYIFggWCBYCisgICAgICAgIFggWCBYIFgg
WAorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9ImNvbnRlbnQyIj4KKyAgICAgICAgWCBYIFggWCBY
CisgICAgICAgIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBY
CisgICAgICAgIFggWCBYIFggWAogICAgIDwvZGl2PgogPC9kaXY+CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zZWxlY3Rpb24vc2VsZWN0aW9uLWRpcmVjdGlvbi1leHBl
Y3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3Rpb24t
ZGlyZWN0aW9uLWV4cGVjdGVkLmh0bWwKaW5kZXggYjE4ZDY4MjY3MmJlMzQ5MWY2ODlkMWM5OTBi
ZGY4NzU5NjA5YTgyNi4uMDg2OTlhMTcyYjI4NzE1ODA0ZWNmZDg1MmJhNDU3MzFiNDA4MDc4ZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3Rpb24t
ZGlyZWN0aW9uLWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3Nl
bGVjdGlvbi9zZWxlY3Rpb24tZGlyZWN0aW9uLWV4cGVjdGVkLmh0bWwKQEAgLTcsNiArNyw3IEBA
CiAgICAgICAgICAgICB3aWR0aDogMjAwcHg7CiAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CiAgICAgICAgICAgICB0b3A6IDEwMHB4OworICAgICAgICAgICAgY29sb3I6IHJlZDsKICAg
ICAgICAgfQogCiAgICAgICAgICNvdXRzaWRlIHsKQEAgLTE0LDEwICsxNSwxNCBAQAogICAgICAg
ICAgICAgd2lkdGg6IDIwMHB4OwogICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAg
ICAgICAgICAgdG9wOiAwcHg7CisgICAgICAgICAgICBjb2xvcjogZ3JlZW47CiAgICAgICAgIH0K
IAogICAgICAgICBib2R5IHsKICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7CisgICAgICAgICAg
ICBmb250LXNpemU6IDIwcHg7CisgICAgICAgICAgICBmb250LWZhbWlseTogQWhlbTsKKyAgICAg
ICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgICB9CiAKICAgICAgICAgI2Rlc2NyaXB0
aW9uIHsKQEAgLTI1LDE0ICszMCwzMCBAQAogICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRl
OwogICAgICAgICAgICAgdG9wOiAyMDBweDsKICAgICAgICAgfQorCisgICAgICAgIGgxIHsKKyAg
ICAgICAgICAgIGxpbmUtaGVpZ2h0OiA1MHB4OworICAgICAgICB9CiAgICAgPC9zdHlsZT4KIDwv
aGVhZD4KLTxib2R5IG9ubG9hZD0ic2VsZWN0Q29udGVudEJ5UmFuZ2UoMTAwLCAxMCwgMTAwLCAx
MTApOyI+Ci0gICAgPGRpdiBpZD0icmVnaW9uIj5pbnNpZGUgcmVnaW9uIGluc2lkZSByZWdpb24g
aW5zaWRlIHJlZ2lvbiBpbnNpZGUgcmVnaW9uPC9kaXY+Ci0gICAgPGRpdiBpZD0ib3V0c2lkZSI+
b3V0c2lkZSByZWdpb24gb3V0c2lkZSByZWdpb24gb3V0c2lkZSByZWdpb24gb3V0c2lkZSByZWdp
b248L2Rpdj4KKzxib2R5IG9ubG9hZD0ic2VsZWN0Q29udGVudEJ5UmFuZ2UoMTAwLCA1MCwgMTAw
LCAxNTApOyI+CisgICAgPGRpdiBpZD0icmVnaW9uIj4KKyAgICAgICAgWCBYIFggWCBYCisgICAg
ICAgIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBYCisgICAg
ICAgIFggWCBYIFggWFgKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJvdXRzaWRlIj4KKyAgICAg
ICAgWCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFgKKyAgICAg
ICAgWCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWAorICAgIDwvZGl2PgogICAgIDxkaXYgaWQ9
ImRlc2NyaXB0aW9uIj4KICAgICAgICAgPGgxPjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjE1MDEiPkJ1ZyAjMTIxNTAxIC0gW0NTUyBSZWdpb25zXSBM
YXlvdXQgVGVzdCBmb3Igc2VsZWN0aW9uIGRpcmVjdGlvbjwvYT48L2gxPgotICAgICAgICA8cD5T
ZWxlY3Rpb24gaXMgYmFzZWQgaW4gRE9NIHRyZWUsIHNvIGlmIHlvdSBzZWxlY3QgdGV4dCBmcm9t
ICJvdXRzaWRlIHJlZ2lvbiIgdG8gImluc2lkZSByZWdpb24iIHRoZSBoaWdobGlnaHRlZCBhcmVh
IGlzIGV4YWN0bHkgdGhlIG9wcG9zaXRlIHRvIHdoYXQgdGhlIHVzZXIgaXMgYWN0dWFsbHkgc2Vs
ZWN0aW5nLjwvcD4KKyAgICAgICAgPHA+U2VsZWN0aW9uIGlzIGJhc2VkIGluIERPTSB0cmVlLCBz
byBpZiB5b3Ugc2VsZWN0IHRleHQgZnJvbSAiZ3JlZW4iIHRvICJyZWQiIHRoZSBoaWdobGlnaHRl
ZCBhcmVhIGlzIGV4YWN0bHkgdGhlIG9wcG9zaXRlIHRvIHdoYXQgdGhlIHVzZXIgaXMgYWN0dWFs
bHkgc2VsZWN0aW5nLjwvcD4KICAgICA8L2Rpdj4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zZWxlY3Rpb24vc2VsZWN0aW9uLWRpcmVjdGlv
bi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3Rpb24tZGly
ZWN0aW9uLmh0bWwKaW5kZXggNWM3MDJkMTllZTQyYTM4MzQ3ZDExZTY0MTMzYWJkMWIwODY5YmNj
Yy4uOThmMDg0ZGUyYTFmYWU5MGZlYjAwZDhiYjA2M2VkZTlhZWQyYjg0ZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3Rpb24tZGlyZWN0aW9uLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3Rpb24tZGly
ZWN0aW9uLmh0bWwKQEAgLTQsNiArNCw3IEBACiAgICAgPHN0eWxlPgogICAgICAgICAjc291cmNl
IHsKICAgICAgICAgICAgIC13ZWJraXQtZmxvdy1pbnRvOiBjb250ZW50OworICAgICAgICAgICAg
Y29sb3I6IHJlZDsKICAgICAgICAgfQogCiAgICAgICAgICNyZWdpb24gewpAQCAtMTUsMjQgKzE2
LDUwIEBACiAgICAgICAgICNvdXRzaWRlIHsKICAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CiAg
ICAgICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgICAgICBjb2xvcjogZ3JlZW47CisgICAg
ICAgICAgICBmbG9hdDogbGVmdDsKICAgICAgICAgfQogCiAgICAgICAgIGJvZHkgewogICAgICAg
ICAgICAgbWFyZ2luLXRvcDogMDsKKyAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDsKKyAgICAg
ICAgICAgIGZvbnQtZmFtaWx5OiBBaGVtOworICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7
CiAgICAgICAgIH0KIAogICAgICAgICAjZGVzY3JpcHRpb24gewogICAgICAgICAgICAgd2lkdGg6
IDYwMHB4OwogICAgICAgICB9CisKKyAgICAgICAgaDEgeworICAgICAgICAgICAgbGluZS1oZWln
aHQ6IDUwcHg7CisgICAgICAgIH0KKworICAgICAgICAuY2xlYXIgeworICAgICAgICAgICAgY2xl
YXI6IGJvdGg7CisgICAgICAgIH0KICAgICA8L3N0eWxlPgogPC9oZWFkPgotPGJvZHkgb25sb2Fk
PSJzZWxlY3RDb250ZW50QnlSYW5nZSgxMDAsIDEwLCAxMDAsIDExMCk7Ij4KLSAgICA8ZGl2IGlk
PSJzb3VyY2UiPmluc2lkZSByZWdpb24gaW5zaWRlIHJlZ2lvbiBpbnNpZGUgcmVnaW9uIGluc2lk
ZSByZWdpb248L2Rpdj4KLSAgICA8ZGl2IGlkPSJvdXRzaWRlIj5vdXRzaWRlIHJlZ2lvbiBvdXRz
aWRlIHJlZ2lvbiBvdXRzaWRlIHJlZ2lvbiBvdXRzaWRlIHJlZ2lvbjwvZGl2PgorPGJvZHkgb25s
b2FkPSJzZWxlY3RDb250ZW50QnlSYW5nZSgxMDAsIDUwLCAxMDAsIDE1MCk7Ij4KKyAgICA8ZGl2
IGlkPSJzb3VyY2UiPgorICAgICAgICBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBYCisgICAg
ICAgIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBYWAorICAg
IDwvZGl2PgorICAgIDxkaXYgaWQ9Im91dHNpZGUiPgorICAgICAgICBYIFggWCBYIFgKKyAgICAg
ICAgWCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFgKKyAgICAg
ICAgWCBYIFggWCBYCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pgog
ICAgIDxkaXYgaWQ9InJlZ2lvbiI+PC9kaXY+CiAgICAgPGRpdiBpZD0iZGVzY3JpcHRpb24iPgog
ICAgICAgICA8aDE+PGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyMTUwMSI+QnVnICMxMjE1MDEgLSBbQ1NTIFJlZ2lvbnNdIExheW91dCBUZXN0IGZvciBz
ZWxlY3Rpb24gZGlyZWN0aW9uPC9hPjwvaDE+Ci0gICAgICAgIDxwPlNlbGVjdGlvbiBpcyBiYXNl
ZCBpbiBET00gdHJlZSwgc28gaWYgeW91IHNlbGVjdCB0ZXh0IGZyb20gIm91dHNpZGUgcmVnaW9u
IiB0byAiaW5zaWRlIHJlZ2lvbiIgdGhlIGhpZ2hsaWdodGVkIGFyZWEgaXMgZXhhY3RseSB0aGUg
b3Bwb3NpdGUgdG8gd2hhdCB0aGUgdXNlciBpcyBhY3R1YWxseSBzZWxlY3RpbmcuPC9wPgorICAg
ICAgICA8cD5TZWxlY3Rpb24gaXMgYmFzZWQgaW4gRE9NIHRyZWUsIHNvIGlmIHlvdSBzZWxlY3Qg
dGV4dCBmcm9tICJncmVlbiIgdG8gInJlZCIgdGhlIGhpZ2hsaWdodGVkIGFyZWEgaXMgZXhhY3Rs
eSB0aGUgb3Bwb3NpdGUgdG8gd2hhdCB0aGUgdXNlciBpcyBhY3R1YWxseSBzZWxlY3RpbmcuPC9w
PgogICAgIDwvZGl2PgogPC9ib2R5PgogPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229113</attachid>
            <date>2014-04-11 00:43:12 -0700</date>
            <delta_ts>2014-04-11 05:33:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131511-20140411094250.patch</filename>
            <type>text/plain</type>
            <size>48450</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3MDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDhjY2QzNGVmMGQxYjcx
ZjMxNDc5NjM5NGI1YWI5MzI1YWRlOGM3Zi4uYTBlMTU5YTQ0ZTk4MGViNTZhYjA3OWU2MTNmZTcz
NjhjMDQ5MDRhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDE0LTA0LTExICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgUmVn
aW9uc10gU2VsZWN0aW9uIGhpZ2hsaWdodCBkb2Vzbid0IG1hdGNoIERPTSBzZWxlY3Rpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTUxMQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
aW1wbGVtZW50cyBhIHN1YnRyZWVzIGFwcHJvYWNoIHRvIGZpeCBzZWxlY3Rpb24gaW50ZXJhY3Rp
b24gaW4gQ1NTIFJlZ2lvbnMuCisKKyAgICAgICAgVGhlIGlkZWEgaXMgdG8gZGl2aWRlIHRoZSBS
ZW5kZXIgdHJlZSBpbiBzdWJ0cmVlcy4gT25lIHN1YnRyZWUgd2lsbCBiZSB0aGUgUmVuZGVyVmll
dyAod2hpY2ggaXMgYWx3YXlzIHByZXNlbnQpLAorICAgICAgICB0aGVuIGZvciBlYWNoIFJlbmRl
ckZsb3dUaHJlYWQgKHdoaWNoIGFyZSBzaWJsaW5ncyBvZiBSZW5kZXJWaWV3KSB3ZSB3aWxsIGhh
dmUgYW4gZXh0cmEgc3VidHJlZS4KKworICAgICAgICBGb3IgZWFjaCBzdWJ0cmVlIGl0IGRldGVy
bWluZXMgdGhlIHN0YXJ0IGFuZCBlbmQgcG9zaXRpb25zIGFjY29yZGluZyB0byB0aGUgRE9NIHRy
ZWUuIFNvLCBldmVyeSBzdWJ0cmVlIHdpbGwKKyAgICAgICAgYWx3YXlzIGhhdmUgYSBzdGFydCBh
bmQgZW5kIHBvc2l0aW9uLCBhbmQgdGhlIHNlbGVjdGlvbiBhbGdvcml0aG0gd2lsbCBiZSBhYmxl
IHRvIHJlYWNoIHRoZSBlbmQgZnJvbSB0aGUgc3RhcnQKKyAgICAgICAgd2l0aG91dCBwcm9ibGVt
cyAodGhpcyBhbGxvd3MgdXMgdG8gcmVtb3ZlIHRoZSBjaGFuZ2VzIGludHJvZHVjZWQgaW4gcjE1
NTA1OCkuCisKKyAgICAgICAgVGhlbiBzZWxlY3Rpb24gcmVsYXRlZCBtZXRob2RzIGluIFJlbmRl
clZpZXcgYXJlIGFkYXB0ZWQgdG8gZW5zdXJlIHRoYXQgdGhleSBhcmUgY2FsbGVkIGZvciBlYWNo
IHN1YnRyZWUuIE1ha2luZworICAgICAgICB0aGUgc2VsZWN0aW9uIGhpZ2hsaWdodCB0byBtYXRj
aCBET00gc2VsZWN0aW9uIGFzIGV4cGVjdGVkLgorCisgICAgICAgIFRlc3Q6IGZhc3QvcmVnaW9u
cy9zZWxlY3Rpb24vc2VsZWN0aW5nLXRleHQtaW5jbHVkaW5nLXJlZ2lvbi5odG1sCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkIG5ldyBjbGFzcyBTZWxlY3Rpb25TdWJ0cmVlUm9vdCB0
byBidWlsZCBmaWxlLgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6
IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVy
czogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBE
aXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oOiBJbmhlcml0IGZy
b20gU2VsZWN0aW9uU3VidHJlZVJvb3QuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnNlbGVjdGlvblN0YXJ0RW5k
KTogSWYgaXQncyBpbnNpZGUgYSBSZW5kZXJGbG93VGhyZWFkIHVzZSBzcGVjaWZpYyBtZXRob2Qg
aW5zdGVhZCBvZiB0aGUKKyAgICAgICAgUmVuZGVyVmlldydzIG9uZS4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpzZWxl
Y3Rpb25Cb3VuZHMpOiBBZGFwdCBtZXRob2QgdG8gc3VidHJlZXMgYXBwcm9hY2guCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJWaWV3OjpzdWJ0cmVlU2VsZWN0aW9uQm91bmRzKTogTW9kaWZ5IHBy
ZXZpb3VzIG1ldGhvZCBpbiBvcmRlciB0byB1c2UgU2VsZWN0aW9uU3VidHJlZVJvb3QKKyAgICAg
ICAgb2JqZWN0cy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OnJlcGFpbnRTZWxlY3Rp
b24pOiBBZGFwdCBtZXRob2QgdG8gc3VidHJlZXMgYXBwcm9hY2guCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJWaWV3OjpyZXBhaW50U3VidHJlZVNlbGVjdGlvbik6IE1vZGlmeSBwcmV2aW91cyBt
ZXRob2QgaW4gb3JkZXIgdG8gdXNlIFNlbGVjdGlvblN1YnRyZWVSb290CisgICAgICAgIG9iamVj
dHMuCisgICAgICAgIChnZXROZXh0T3JQcmV2UmVuZGVyT2JqZWN0QmFzZWRPbkRpcmVjdGlvbik6
IERlbGV0ZWQgbWV0aG9kIGZyb20gcjE1NTA1OCBhcyBpdCBpcyBub3QgbmVlZGVkIGFueW1vcmUu
IEVhY2gKKyAgICAgICAgc3VidHJlZSB3aWxsIGhhdmUgc3RhcnQgYW5kIGVuZCBwb3NpdGlvbnMs
IHNvIHRoZSBzZWxlY3Rpb24gYWxnb3JpdGhtIHdpbGwgYWx3YXlzIGZpbmQgdGhlIGVuZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OnNldFNlbGVjdGlvbik6IE1vZGlmeSBtZXRob2Qg
dG8gZGV0ZXJtaW5lIHN0YXJ0IGFuZCBlbmQgcG9zaXRpb25zIGZvciBlYWNoIHN1YnRyZWUuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpzZXRTdWJ0cmVlU2VsZWN0aW9uKTogQWRhcHQg
cHJldmlvdXMgc2V0U2VsZWN0aW9uKCkgbWV0aG9kIHRvIFNlbGVjdGlvblN1YnRyZWVSb290Cisg
ICAgICAgIG9iamVjdHMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDogSW5oZXJp
dCBmcm9tIFNlbGVjdGlvblN1YnRyZWVSb290LiBBZGQgc2lnbmF0dXJlIGZvciBuZXcgaGVscGVy
IG1ldGhvZHMgcmVjZWl2aW5nCisgICAgICAgIFNlbGVjdGlvblN1YnRyZWVSb290IG9iamVjdHMu
CisgICAgICAgICogcmVuZGVyaW5nL1NlbGVjdGlvblN1YnRyZWVSb290LmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25TdWJ0cmVlUm9vdDo6U2VsZWN0aW9uU3VidHJlZVJv
b3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uU3VidHJlZVJvb3Q6OnNlbGVjdGlvblN0
YXJ0RW5kUG9zaXRpb25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvU2VsZWN0aW9uU3VidHJlZVJv
b3QuaDogQWRkZWQuIE5ldyBjbGFzcyB0byBpZGVudGlmeSByb290IGVsZW1lbnRzIGZvciB0aGUg
c3VidHJlZXMuIFdpdGggc29tZSBiYXNpYworICAgICAgICBhdHRyaWJ1dGVzIGFuZCBtZXRob2Rz
IHRvIHN0b3JlIHRoZSBzdGFydCBhbmQgZW5kIHBvc2l0aW9ucyBhbmQgb2Zmc2V0cy4KKyAgICAg
ICAgKFdlYkNvcmU6OlNlbGVjdGlvblN1YnRyZWVSb290OjpzZWxlY3Rpb25TdGFydCk6CisgICAg
ICAgIChXZWJDb3JlOjpTZWxlY3Rpb25TdWJ0cmVlUm9vdDo6c2VsZWN0aW9uU3RhcnRQb3MpOgor
ICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uU3VidHJlZVJvb3Q6OnNlbGVjdGlvbkVuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25TdWJ0cmVlUm9vdDo6c2VsZWN0aW9uRW5kUG9zKToK
KyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlvblN1YnRyZWVSb290OjpzZXRTZWxlY3Rpb25TdGFy
dCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25TdWJ0cmVlUm9vdDo6c2V0U2VsZWN0aW9u
U3RhcnRQb3MpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uU3VidHJlZVJvb3Q6OnNldFNl
bGVjdGlvbkVuZCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25TdWJ0cmVlUm9vdDo6c2V0
U2VsZWN0aW9uRW5kUG9zKToKKwogMjAxNC0wNC0wOSAgSmVyZW15IEpvbmVzICA8amVyZW15akBh
cHBsZS5jb20+CiAKICAgICAgICAgZnVsbHNjcmVlbiBjb250cm9scyBmaXJzdCBzaG93IGEgcGxh
eSBidXR0b24gaW5zdGVhZCBvZiBhIHBhdXNlIGJ1dHRvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCBmZDc4YWQ5MjA2NjRkZWI2NDRhODY5NWQ4ODUzZTZiMjc5NzY3ZWVhLi4wNzg3N2FhZWNmNzZl
ODM1ODY4YmE4NWExNzM0ZGMwOWQxNjVmMjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjE4
OSw2ICsyMTg5LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHJlbmRlcmluZy9SZW5kZXJW
VFRDdWUuY3BwCiAgICAgcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKICAgICByZW5kZXJpbmcv
Um9vdElubGluZUJveC5jcHAKKyAgICByZW5kZXJpbmcvU2VsZWN0aW9uU3VidHJlZVJvb3QuY3Bw
CiAgICAgcmVuZGVyaW5nL1Njcm9sbEJlaGF2aW9yLmNwcAogICAgIHJlbmRlcmluZy9TaW1wbGVM
aW5lTGF5b3V0LmNwcAogICAgIHJlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5k
ZXggYjExM2I5YzBkMDgyZjBjZjg3MDFiMzc2M2EwNTEyZGNkYTM4YjE3OC4uYWU3YzE0YjZkZGU2
ZDQwNDUwZWIyNWQyNjBlYWNmMDg1YjkxYzMyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0xMTI4NSw2ICsxMTI4NSw3IEBACiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFNlbGVjdGlv
blN1YnRyZWVSb290LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmlu
Z1xTaW1wbGVMaW5lTGF5b3V0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJl
bmRlcmluZ1xTaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmNwcCIgLz4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xUZXh0UGFpbnRTdHlsZS5jcHAiIC8+CkBAIC0yMDA4Niw2
ICsyMDA4Nyw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVuZGVy
V2lkZ2V0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUm9vdElu
bGluZUJveC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFNjcm9s
bEJlaGF2aW9yLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcU2Vs
ZWN0aW9uU3VidHJlZVJvb3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRl
cmluZ1xTaW1wbGVMaW5lTGF5b3V0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxy
ZW5kZXJpbmdcU2ltcGxlTGluZUxheW91dEZ1bmN0aW9ucy5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5ccmVuZGVyaW5nXFNpbXBsZUxpbmVMYXlvdXRSZXNvbHZlci5oIiAvPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzCmluZGV4IDViMDIyYjE3Yjg2YWNmNjRhYjU0NjM0MWRiOGI4MzhiM2ZiMjhlNjguLjgy
YWMxOGI5ZmY1MzUyNjUyYzdjNjY1OGIzMzBjNTZmOWU3MmJmMjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAg
LTY5NDYsNiArNjk0Niw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxn
cmFwaGljc1xjYWlyb1xUaWxlZEJhY2tpbmdTdG9yZUJhY2tlbmRDYWlyby5jcHAiPgogICAgICAg
PEZpbHRlcj5wbGF0Zm9ybVxncmFwaGljc1xjYWlybzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxl
PgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFNlbGVjdGlvblN1YnRyZWVS
b290LmNwcCI+CisgICAgICA8RmlsdGVyPnJlbmRlcmluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21w
aWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFNpbXBsZUxpbmVMYXlv
dXQuY3BwIj4KICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBp
bGU+CkBAIC0xNDc5Myw2ICsxNDc5Niw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxy
ZW5kZXJpbmdcU2ltcGxlTGluZUxheW91dFJlc29sdmVyLmgiPgogICAgICAgPEZpbHRlcj5yZW5k
ZXJpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHJlbmRlcmluZ1xTZWxlY3Rpb25TdWJ0cmVlUm9vdC5oIj4KKyAgICAgIDxGaWx0ZXI+cmVu
ZGVyaW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxyZW5kZXJpbmdcU2ltcGxlTGluZUxheW91dC5oIj4KICAgICAgIDxGaWx0ZXI+cmVuZGVy
aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTUyYmYyOWMxYWZlODk1NjY0ZTRl
ZTQ3ZDU5OGI1MjE5NWQ1MjRjMS4uNjE2NTY4ZGM5ZDM0MzdlODY4ZmM1YjE3NDQ0Mjg5YjUyOTIx
Mzc5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNTYxNCw2ICs1NjE0LDggQEAKIAkJQ0RDOEI1QUQxODA0QUU1RDAwMTZFNjg1
IC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzhCNUFDMTgwNEFFNUQwMDE2RTY4NSAvKiBTb3VyY2VC
dWZmZXJQcml2YXRlQ2xpZW50LmggKi87IH07CiAJCUNEQ0E4Mjk2MTY3OTEwMEYwMDg3NTcxNCAv
KiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0E4Mjk0MTY3OTEwMEYwMDg3NTcxNCAvKiBUZXh0VHJh
Y2tSZXByZXNlbnRhdGlvbklPUy5tbSAqLzsgfTsKIAkJQ0RDQTk4RUIxOEIyQzhFQjAwQzEyRkY5
IC8qIENETVByaXZhdGVNZWRpYVBsYXllci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRENBOThFQTE4QjJDOEVCMDBDMTJGRjkgLyogQ0RNUHJpdmF0
ZU1lZGlhUGxheWVyLmNwcCAqLzsgfTsKKwkJQ0RDRkFCQkQxOEMwQUY3ODAwNkY4NDUwIC8qIFNl
bGVjdGlvblN1YnRyZWVSb290LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRENGQUJCQjE4QzBBRTMxMDA2Rjg0NTAgLyogU2VsZWN0aW9uU3VidHJlZVJv
b3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlD
RENGQUJCRTE4QzBBRjg0MDA2Rjg0NTAgLyogU2VsZWN0aW9uU3VidHJlZVJvb3QuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDRkFCQkMxOEMwQUYx
OTAwNkY4NDUwIC8qIFNlbGVjdGlvblN1YnRyZWVSb290LmNwcCAqLzsgfTsKIAkJQ0RENTI1RDcx
NDVCNkREMDAwOEQyMDREIC8qIEpTSFRNTE1lZGlhRWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY2NUNDQzE0NUI2QUZFMDBD
NEM3QUEgLyogSlNIVE1MTWVkaWFFbGVtZW50Q3VzdG9tLmNwcCAqLzsgfTsKIAkJQ0RENzA4OTYx
ODM1OUY2RjAwMkIzREM2IC8qIFNhbXBsZU1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREQ3MDg5NDE4MzU5RjZFMDAyQjNEQzYgLyogU2FtcGxl
TWFwLmNwcCAqLzsgfTsKIAkJQ0RENzA4OTcxODM1OUY2RjAwMkIzREM2IC8qIFNhbXBsZU1hcC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RENzA4OTUx
ODM1OUY2RjAwMkIzREM2IC8qIFNhbXBsZU1hcC5oICovOyB9OwpAQCAtMTI5NjcsNiArMTI5Njks
OCBAQAogCQlDRENBOThFOTE4QjJDOEQwMDBDMTJGRjkgLyogQ0RNUHJpdmF0ZU1lZGlhUGxheWVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENETVByaXZhdGVNZWRpYVBsYXll
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRENBOThFQTE4QjJDOEVCMDBDMTJG
RjkgLyogQ0RNUHJpdmF0ZU1lZGlhUGxheWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENETVByaXZhdGVNZWRpYVBsYXllci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEQ0U1Q0QwMTQ2MzNCQzkwMEQ0N0NDQSAvKiBFdmVudFRhcmdldEZhY3Rv
cnkuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRXZlbnRUYXJnZXRGYWN0b3J5LmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRENGQUJCQjE4QzBBRTMxMDA2Rjg0NTAgLyogU2Vs
ZWN0aW9uU3VidHJlZVJvb3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Vs
ZWN0aW9uU3VidHJlZVJvb3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RDRkFC
QkMxOEMwQUYxOTAwNkY4NDUwIC8qIFNlbGVjdGlvblN1YnRyZWVSb290LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlbGVjdGlvblN1YnRyZWVSb290LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0REMUU1MjUxNjdCQTU2NDAwQ0U4MjBCIC8qIFRl
eHRUcmFja1JlcHJlc2VudGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNERDcwODk0MTgzNTlGNkUwMDJCM0RDNiAvKiBTYW1wbGVNYXAuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2FtcGxlTWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0RENzA4OTUxODM1OUY2RjAwMkIzREM2IC8qIFNhbXBsZU1hcC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTYW1wbGVNYXAuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIyMDg4LDYgKzIyMDkyLDggQEAKIAkJCQlBOENGRjVEQTBBMTU1QTA1
MDAwQTQyMzQgLyogUm9vdElubGluZUJveC5oICovLAogCQkJCTVEOTI1QjY1MEY2NEQ0REQwMEI4
NDdGMCAvKiBTY3JvbGxCZWhhdmlvci5jcHAgKi8sCiAJCQkJNUQ5MjVCNjYwRjY0RDRERDAwQjg0
N0YwIC8qIFNjcm9sbEJlaGF2aW9yLmggKi8sCisJCQkJQ0RDRkFCQkMxOEMwQUYxOTAwNkY4NDUw
IC8qIFNlbGVjdGlvblN1YnRyZWVSb290LmNwcCAqLywKKwkJCQlDRENGQUJCQjE4QzBBRTMxMDA2
Rjg0NTAgLyogU2VsZWN0aW9uU3VidHJlZVJvb3QuaCAqLywKIAkJCQlFNDg5NDRBMDE4MEI1N0Q4
MDBGMTY1RDggLyogU2ltcGxlTGluZUxheW91dC5jcHAgKi8sCiAJCQkJRTQ4OTQ0QTExODBCNTdE
ODAwRjE2NUQ4IC8qIFNpbXBsZUxpbmVMYXlvdXQuaCAqLywKIAkJCQlFNEU5QjExQTE4MTQ1Njky
MDAzQUNDREYgLyogU2ltcGxlTGluZUxheW91dEZ1bmN0aW9ucy5jcHAgKi8sCkBAIC0yNTc5OSw2
ICsyNTgwNSw3IEBACiAJCQkJQjIyMjdBNTcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhcnNlclV0
aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQzQTBFMzYxM0E3RDc2MTAwRTg1QUYwIC8q
IFNWR1BhcnNpbmdFcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODRDNjc4NEQxMjE0ODE0NzAw
QTkyOTAyIC8qIFNWR1BhdGhCbGVuZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRENGQUJCRDE4
QzBBRjc4MDA2Rjg0NTAgLyogU2VsZWN0aW9uU3VidHJlZVJvb3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg0NzZDOUVCMTFERjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRoQnVpbGRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODQxOUQyQTcxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFt
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDE5RDJBOTEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0
aEJ5dGVTdHJlYW1CdWlsZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTI3OTIzLDYgKzI3OTMwLDcg
QEAKIAkJCQlCQ0UxQzQzQjBEOTgzMEQzMDAzQjAyRjIgLyogSlNMb2NhdGlvbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQ0UxQzQ0MDBEOTgzMEY0MDAzQjAyRjIgLyogSlNMb2NhdGlvbkN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4RkFDNzc0RDExOTg3MkNCMDAxNUFFOTQgLyogSlNN
YWluVGhyZWFkRXhlY1N0YXRlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEQ0ZBQkJFMThDMEFG
ODQwMDZGODQ1MCAvKiBTZWxlY3Rpb25TdWJ0cmVlUm9vdC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlDRDI3RjZFNTE0NTc2ODVBMDA3ODIwN0QgLyogSlNNZWRpYUNvbnRyb2xsZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQ0RBQjZEMkQxN0M4MTRFRTAwQzYwQjM0IC8qIEpTTWVkaWFDb250cm9s
c0hvc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQyM0ExMjUxM0Y1RkE1OTAwRjY3MDAxIC8q
IEpTTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKaW5kZXggZmEwNzk5NTJlYTBi
YjMwYzFjY2NkYTUxMThkYTA5M2QyNGE4OTRkYS4uZjBiM2E3Yjk5YTEyODRlMmQ0YjA5N2I3N2Zl
ZmY1NDQxMDg5ZmMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1Ro
cmVhZC5oCkBAIC0zMiw2ICszMiw3IEBACiAKIAogI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5o
IgorI2luY2x1ZGUgIlNlbGVjdGlvblN1YnRyZWVSb290LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hD
b3VudGVkU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KQEAgLTU2LDcgKzU3LDcgQEAgdHlwZWRlZiBIYXNoTWFwPFJlbmRlckxh
eWVyKiwgUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQqPiBMYXllclRvUmVnaW9uTWFwOwogLy8gYW5k
IG5vZGVBdFBvaW50IG1ldGhvZHMgdG8gdGhpcyBvYmplY3QuIEVhY2ggUmVuZGVyUmVnaW9uIHdp
bGwgYWN0dWFsbHkgYmUgYSB2aWV3UG9ydAogLy8gb2YgdGhlIFJlbmRlckZsb3dUaHJlYWQuCiAK
LWNsYXNzIFJlbmRlckZsb3dUaHJlYWQ6IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgeworY2xhc3Mg
UmVuZGVyRmxvd1RocmVhZDogcHVibGljIFJlbmRlckJsb2NrRmxvdywgcHVibGljIFNlbGVjdGlv
blN1YnRyZWVSb290IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SZW5kZXJGbG93VGhyZWFkKCkg
eyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggMTY5
YWY4YTBkYTc3NTY5ZGFjOTVhZWFiZTZjMjM0NDgwNDU4ZDYzYS4uZTU1ZDhiZDI0MzhhMWM5YzY2
YTFhN2I1MDBkZjU3NjdiZGVjNjEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHAKQEAgLTE1NDIsNyArMTU0MiwxMSBAQCBDb2xvciBSZW5kZXJPYmplY3Q6OnNl
bGVjdGlvbkVtcGhhc2lzTWFya0NvbG9yKCkgY29uc3QKIAogdm9pZCBSZW5kZXJPYmplY3Q6OnNl
bGVjdGlvblN0YXJ0RW5kKGludCYgc3BvcywgaW50JiBlcG9zKSBjb25zdAogewotICAgIHZpZXco
KS5zZWxlY3Rpb25TdGFydEVuZChzcG9zLCBlcG9zKTsKKyAgICBSZW5kZXJGbG93VGhyZWFkKiBm
bG93VGhyZWFkID0gZmxvd1RocmVhZENvbnRhaW5pbmdCbG9jaygpOworICAgIGlmIChmbG93VGhy
ZWFkKQorICAgICAgICBmbG93VGhyZWFkLT5zZWxlY3Rpb25TdGFydEVuZFBvc2l0aW9ucyhzcG9z
LCBlcG9zKTsKKyAgICBlbHNlCisgICAgICAgIHZpZXcoKS5zZWxlY3Rpb25TdGFydEVuZFBvc2l0
aW9ucyhzcG9zLCBlcG9zKTsKIH0KIAogdm9pZCBSZW5kZXJPYmplY3Q6OmhhbmRsZUR5bmFtaWNG
bG9hdFBvc2l0aW9uQ2hhbmdlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNw
cAppbmRleCBmMjMwZDM5ZmI2NzhkMGMzNjQ4Y2Q1YzE5Y2YzMzVmZWYzM2EyZjA3Li5hNjdhODU2
ODZmNzA0YzA2ODBiZWQ1ZjhmNmQ0NjdhOGZkNTBjMmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclZpZXcuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSFRNTElGcmFt
ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiSW1hZ2VR
dWFsaXR5Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIk5vZGVUcmF2ZXJzYWwuaCIKICNpbmNsdWRl
ICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyR2VvbWV0cnlNYXAuaCIKICNpbmNsdWRlICJSZW5k
ZXJJdGVyYXRvci5oIgpAQCAtNjU5LDEzICs2NjAsMjYgQEAgc3RhdGljIFJlbmRlck9iamVjdCog
cmVuZGVyZXJBZnRlclBvc2l0aW9uKFJlbmRlck9iamVjdCogb2JqZWN0LCB1bnNpZ25lZCBvZmZz
ZXQKIAogSW50UmVjdCBSZW5kZXJWaWV3OjpzZWxlY3Rpb25Cb3VuZHMoYm9vbCBjbGlwVG9WaXNp
YmxlQ29udGVudCkgY29uc3QKIHsKKyAgICBMYXlvdXRSZWN0IHNlbFJlY3QgPSBzdWJ0cmVlU2Vs
ZWN0aW9uQm91bmRzKHRoaXMsIGNsaXBUb1Zpc2libGVDb250ZW50KTsKKyAgICBmb3IgKFJlbmRl
ck9iamVjdCogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0
U2libGluZygpKSB7CisgICAgICAgIGlmIChjaGlsZC0+aXNSZW5kZXJGbG93VGhyZWFkKCkpIHsK
KyAgICAgICAgICAgIExheW91dFJlY3QgY3VyclJlY3QgPSBzdWJ0cmVlU2VsZWN0aW9uQm91bmRz
KHRvUmVuZGVyRmxvd1RocmVhZChjaGlsZCksIGNsaXBUb1Zpc2libGVDb250ZW50KTsKKyAgICAg
ICAgICAgIHNlbFJlY3QudW5pdGUoY3VyclJlY3QpOworICAgICAgICB9CisgICAgfQorCisgICAg
cmV0dXJuIHBpeGVsU25hcHBlZEludFJlY3Qoc2VsUmVjdCk7Cit9CisKK0xheW91dFJlY3QgUmVu
ZGVyVmlldzo6c3VidHJlZVNlbGVjdGlvbkJvdW5kcyhjb25zdCBTZWxlY3Rpb25TdWJ0cmVlUm9v
dCogcm9vdCwgYm9vbCBjbGlwVG9WaXNpYmxlQ29udGVudCkgY29uc3QKK3sKICAgICB0eXBlZGVm
IEhhc2hNYXA8UmVuZGVyT2JqZWN0Kiwgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclNlbGVjdGlvbklu
Zm8+PiBTZWxlY3Rpb25NYXA7CiAgICAgU2VsZWN0aW9uTWFwIHNlbGVjdGVkT2JqZWN0czsKIAot
ICAgIFJlbmRlck9iamVjdCogb3MgPSBtX3NlbGVjdGlvblN0YXJ0OwotICAgIFJlbmRlck9iamVj
dCogc3RvcCA9IHJlbmRlcmVyQWZ0ZXJQb3NpdGlvbihtX3NlbGVjdGlvbkVuZCwgbV9zZWxlY3Rp
b25FbmRQb3MpOworICAgIFJlbmRlck9iamVjdCogb3MgPSByb290LT5zZWxlY3Rpb25TdGFydCgp
OworICAgIFJlbmRlck9iamVjdCogc3RvcCA9IHJlbmRlcmVyQWZ0ZXJQb3NpdGlvbihyb290LT5z
ZWxlY3Rpb25FbmQoKSwgcm9vdC0+c2VsZWN0aW9uRW5kUG9zKCkpOwogICAgIHdoaWxlIChvcyAm
JiBvcyAhPSBzdG9wKSB7Ci0gICAgICAgIGlmICgob3MtPmNhbkJlU2VsZWN0aW9uTGVhZigpIHx8
IG9zID09IG1fc2VsZWN0aW9uU3RhcnQgfHwgb3MgPT0gbV9zZWxlY3Rpb25FbmQpICYmIG9zLT5z
ZWxlY3Rpb25TdGF0ZSgpICE9IFNlbGVjdGlvbk5vbmUpIHsKKyAgICAgICAgaWYgKChvcy0+Y2Fu
QmVTZWxlY3Rpb25MZWFmKCkgfHwgb3MgPT0gcm9vdC0+c2VsZWN0aW9uU3RhcnQoKSB8fCBvcyA9
PSByb290LT5zZWxlY3Rpb25FbmQoKSkgJiYgb3MtPnNlbGVjdGlvblN0YXRlKCkgIT0gU2VsZWN0
aW9uTm9uZSkgewogICAgICAgICAgICAgLy8gQmxvY2tzIGFyZSByZXNwb25zaWJsZSBmb3IgcGFp
bnRpbmcgbGluZSBnYXBzIGFuZCBtYXJnaW4gZ2Fwcy4gVGhleSBtdXN0IGJlIGV4YW1pbmVkIGFz
IHdlbGwuCiAgICAgICAgICAgICBzZWxlY3RlZE9iamVjdHMuc2V0KG9zLCBzdGQ6Om1ha2VfdW5p
cXVlPFJlbmRlclNlbGVjdGlvbkluZm8+KG9zLCBjbGlwVG9WaXNpYmxlQ29udGVudCkpOwogICAg
ICAgICAgICAgUmVuZGVyQmxvY2sqIGNiID0gb3MtPmNvbnRhaW5pbmdCbG9jaygpOwpAQCAtNjk0
LDE2ICs3MDgsMjUgQEAgSW50UmVjdCBSZW5kZXJWaWV3OjpzZWxlY3Rpb25Cb3VuZHMoYm9vbCBj
bGlwVG9WaXNpYmxlQ29udGVudCkgY29uc3QKICAgICAgICAgfQogICAgICAgICBzZWxSZWN0LnVu
aXRlKGN1cnJSZWN0KTsKICAgICB9Ci0gICAgcmV0dXJuIHBpeGVsU25hcHBlZEludFJlY3Qoc2Vs
UmVjdCk7CisgICAgcmV0dXJuIHNlbFJlY3Q7CiB9CiAKIHZvaWQgUmVuZGVyVmlldzo6cmVwYWlu
dFNlbGVjdGlvbigpIGNvbnN0CiB7CisgICAgcmVwYWludFN1YnRyZWVTZWxlY3Rpb24odGhpcyk7
CisgICAgZm9yIChSZW5kZXJPYmplY3QqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hp
bGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICBpZiAoY2hpbGQtPmlzUmVuZGVy
Rmxvd1RocmVhZCgpKQorICAgICAgICAgICAgcmVwYWludFN1YnRyZWVTZWxlY3Rpb24odG9SZW5k
ZXJGbG93VGhyZWFkKGNoaWxkKSk7CisgICAgfQorfQorCit2b2lkIFJlbmRlclZpZXc6OnJlcGFp
bnRTdWJ0cmVlU2VsZWN0aW9uKGNvbnN0IFNlbGVjdGlvblN1YnRyZWVSb290KiByb290KSBjb25z
dAorewogICAgIEhhc2hTZXQ8UmVuZGVyQmxvY2sqPiBwcm9jZXNzZWRCbG9ja3M7CiAKLSAgICBS
ZW5kZXJPYmplY3QqIGVuZCA9IHJlbmRlcmVyQWZ0ZXJQb3NpdGlvbihtX3NlbGVjdGlvbkVuZCwg
bV9zZWxlY3Rpb25FbmRQb3MpOwotICAgIGZvciAoUmVuZGVyT2JqZWN0KiBvID0gbV9zZWxlY3Rp
b25TdGFydDsgbyAmJiBvICE9IGVuZDsgbyA9IG8tPm5leHRJblByZU9yZGVyKCkpIHsKLSAgICAg
ICAgaWYgKCFvLT5jYW5CZVNlbGVjdGlvbkxlYWYoKSAmJiBvICE9IG1fc2VsZWN0aW9uU3RhcnQg
JiYgbyAhPSBtX3NlbGVjdGlvbkVuZCkKKyAgICBSZW5kZXJPYmplY3QqIGVuZCA9IHJlbmRlcmVy
QWZ0ZXJQb3NpdGlvbihyb290LT5zZWxlY3Rpb25FbmQoKSwgcm9vdC0+c2VsZWN0aW9uRW5kUG9z
KCkpOworICAgIGZvciAoUmVuZGVyT2JqZWN0KiBvID0gcm9vdC0+c2VsZWN0aW9uU3RhcnQoKTsg
byAmJiBvICE9IGVuZDsgbyA9IG8tPm5leHRJblByZU9yZGVyKCkpIHsKKyAgICAgICAgaWYgKCFv
LT5jYW5CZVNlbGVjdGlvbkxlYWYoKSAmJiBvICE9IHJvb3QtPnNlbGVjdGlvblN0YXJ0KCkgJiYg
byAhPSByb290LT5zZWxlY3Rpb25FbmQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICBpZiAoby0+c2VsZWN0aW9uU3RhdGUoKSA9PSBTZWxlY3Rpb25Ob25lKQogICAgICAgICAgICAg
Y29udGludWU7CkBAIC03MzIsMjcgKzc1NSw2IEBAIHZvaWQgUmVuZGVyVmlldzo6c2V0TWF4aW1h
bE91dGxpbmVTaXplKGludCBvKQogICAgIH0KIH0KIAotLy8gV2hlbiBleHBsb3JpbmcgdGhlIFJl
bmRlclRyZWUgbG9va2luZyBmb3IgdGhlIG5vZGVzIGludm9sdmVkIGluIHRoZSBTZWxlY3Rpb24s
IHNvbWV0aW1lcyBpdCdzCi0vLyByZXF1aXJlZCB0byBjaGFuZ2UgdGhlIHRyYXZlcnNpbmcgZGly
ZWN0aW9uIGJlY2F1c2UgdGhlICJzdGFydCIgcG9zaXRpb24gaXMgYmVsb3cgdGhlICJlbmQiIG9u
ZS4KLXN0YXRpYyBpbmxpbmUgUmVuZGVyT2JqZWN0KiBnZXROZXh0T3JQcmV2UmVuZGVyT2JqZWN0
QmFzZWRPbkRpcmVjdGlvbihjb25zdCBSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9iamVj
dCogc3RvcCwgYm9vbCYgY29udGludWVFeHBsb3JpbmcsIGJvb2wmIGV4cGxvcmluZ0JhY2t3YXJk
cykKLXsKLSAgICBSZW5kZXJPYmplY3QqIG5leHQ7Ci0gICAgaWYgKGV4cGxvcmluZ0JhY2t3YXJk
cykgewotICAgICAgICBuZXh0ID0gby0+cHJldmlvdXNJblByZU9yZGVyKCk7Ci0gICAgICAgIGNv
bnRpbnVlRXhwbG9yaW5nID0gbmV4dCAmJiAhKG5leHQpLT5pc1JlbmRlclZpZXcoKTsKLSAgICB9
IGVsc2UgewotICAgICAgICBuZXh0ID0gby0+bmV4dEluUHJlT3JkZXIoKTsKLSAgICAgICAgY29u
dGludWVFeHBsb3JpbmcgPSBuZXh0ICYmIG5leHQgIT0gc3RvcDsKLSAgICAgICAgZXhwbG9yaW5n
QmFja3dhcmRzID0gIW5leHQgJiYgKG5leHQgIT0gc3RvcCk7Ci0gICAgICAgIGlmIChleHBsb3Jp
bmdCYWNrd2FyZHMpIHsKLSAgICAgICAgICAgIG5leHQgPSBzdG9wLT5wcmV2aW91c0luUHJlT3Jk
ZXIoKTsKLSAgICAgICAgICAgIGNvbnRpbnVlRXhwbG9yaW5nID0gbmV4dCAmJiAhbmV4dC0+aXNS
ZW5kZXJWaWV3KCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gbmV4dDsKLX0KLQog
dm9pZCBSZW5kZXJWaWV3OjpzZXRTZWxlY3Rpb24oUmVuZGVyT2JqZWN0KiBzdGFydCwgaW50IHN0
YXJ0UG9zLCBSZW5kZXJPYmplY3QqIGVuZCwgaW50IGVuZFBvcywgU2VsZWN0aW9uUmVwYWludE1v
ZGUgYmxvY2tSZXBhaW50TW9kZSkKIHsKICAgICAvLyBNYWtlIHN1cmUgYm90aCBvdXIgc3RhcnQg
YW5kIGVuZCBvYmplY3RzIGFyZSBkZWZpbmVkLgpAQCAtNzY3LDEwICs3NjksOTIgQEAgdm9pZCBS
ZW5kZXJWaWV3OjpzZXRTZWxlY3Rpb24oUmVuZGVyT2JqZWN0KiBzdGFydCwgaW50IHN0YXJ0UG9z
LCBSZW5kZXJPYmplY3QqIGUKICAgICAgICAgbV9zZWxlY3Rpb25FbmQgPT0gZW5kICYmIG1fc2Vs
ZWN0aW9uRW5kUG9zID09IGVuZFBvcyAmJiAhY2FyZXRDaGFuZ2VkKQogICAgICAgICByZXR1cm47
CiAKKyAgICAvLyBTZXQgZ2xvYmFsIHBvc2l0aW9ucyBmb3IgbmV3IHNlbGVjdGlvbgorICAgIG1f
c2VsZWN0aW9uU3RhcnQgPSBzdGFydDsKKyAgICBtX3NlbGVjdGlvblN0YXJ0UG9zID0gc3RhcnRQ
b3M7CisgICAgbV9zZWxlY3Rpb25FbmQgPSBlbmQ7CisgICAgbV9zZWxlY3Rpb25FbmRQb3MgPSBl
bmRQb3M7CisKKyAgICAvLyBHZXQgcmFuZ2VzCisgICAgdHlwZWRlZiBIYXNoTWFwPFNlbGVjdGlv
blN1YnRyZWVSb290KiwgUmVmUHRyPFJhbmdlPiA+IFJlbmRlclN1YnRyZWVzTWFwOworICAgIFJl
bmRlclN1YnRyZWVzTWFwIHJlbmRlclN1YnRyZWVzTWFwOworCisgICAgLy8gSW5pdGlhbGl6YXRl
IG1hcCBmb3IgUmVuZGVyVmlldyBhbmQgYWxsIFJlbmRlckZsb3dUaHJlYWRzCisgICAgcmVuZGVy
U3VidHJlZXNNYXAuc2V0KHRoaXMsIG51bGxwdHIpOworICAgIGZvciAoUmVuZGVyT2JqZWN0KiBj
aGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkp
IHsKKyAgICAgICAgaWYgKGNoaWxkLT5pc1JlbmRlckZsb3dUaHJlYWQoKSkKKyAgICAgICAgICAg
IHJlbmRlclN1YnRyZWVzTWFwLnNldCh0b1JlbmRlckZsb3dUaHJlYWQoY2hpbGQpLCBudWxscHRy
KTsKKyAgICB9CisKKyAgICBpZiAocmVuZGVyU3VidHJlZXNNYXAuc2l6ZSgpID09IDEpIHsKKyAg
ICAgICAgc2V0U3VidHJlZVNlbGVjdGlvbih0aGlzLCBzdGFydCwgc3RhcnRQb3MsIGVuZCwgZW5k
UG9zLCBibG9ja1JlcGFpbnRNb2RlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
IChzdGFydCAmJiBlbmQpIHsKKyAgICAgICAgUmVmUHRyPFJhbmdlPiBpbml0aWFsUmFuZ2UgPSBS
YW5nZTo6Y3JlYXRlKGRvY3VtZW50KCksIHN0YXJ0LT5ub2RlKCksIHN0YXJ0UG9zLCBlbmQtPm5v
ZGUoKSwgZW5kUG9zKTsKKworICAgICAgICBOb2RlKiBzdGFydE5vZGUgPSBpbml0aWFsUmFuZ2Ut
PnN0YXJ0Q29udGFpbmVyKCk7CisgICAgICAgIE5vZGUqIGVuZE5vZGUgPSBpbml0aWFsUmFuZ2Ut
PmVuZENvbnRhaW5lcigpOworICAgICAgICBOb2RlKiBzdG9wTm9kZSA9IGluaXRpYWxSYW5nZS0+
cGFzdExhc3ROb2RlKCk7CisKKyAgICAgICAgZm9yIChOb2RlKiBub2RlID0gc3RhcnROb2RlOyBu
b2RlICE9IHN0b3BOb2RlOyBub2RlID0gTm9kZVRyYXZlcnNhbDo6bmV4dChub2RlKSkgeworICAg
ICAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7CisgICAg
ICAgICAgICBpZiAoIXJlbmRlcmVyIHx8ICFyZW5kZXJlci0+Y2FuQmVTZWxlY3Rpb25MZWFmKCkp
CisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIFNlbGVjdGlvblN1YnRy
ZWVSb290KiBmbG93VGhyZWFkID0gcmVuZGVyZXItPmZsb3dUaHJlYWRDb250YWluaW5nQmxvY2so
KTsKKyAgICAgICAgICAgIFNlbGVjdGlvblN1YnRyZWVSb290KiByb290ID0gZmxvd1RocmVhZCA/
IGZsb3dUaHJlYWQgOiB0aGlzOworCisgICAgICAgICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0g
cmVuZGVyU3VidHJlZXNNYXAuZ2V0KHJvb3QpOworICAgICAgICAgICAgaWYgKCFyYW5nZSkgewor
ICAgICAgICAgICAgICAgIHJhbmdlID0gUmFuZ2U6OmNyZWF0ZShkb2N1bWVudCgpKTsKKworICAg
ICAgICAgICAgICAgIGlmIChub2RlID09IHN0YXJ0Tm9kZSkKKyAgICAgICAgICAgICAgICAgICAg
cmFuZ2UtPnNldFN0YXJ0KG5vZGUsIHN0YXJ0UG9zKTsKKyAgICAgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgICAgIHJhbmdlLT5zZXRTdGFydChub2RlLCAwKTsKKworICAgICAgICAg
ICAgICAgIHJlbmRlclN1YnRyZWVzTWFwLnNldChyb290LCByYW5nZSk7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGlmIChub2RlID09IGVuZE5vZGUpCisgICAgICAgICAgICAgICAgcmFu
Z2UtPnNldEVuZChub2RlLCBlbmRQb3MpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIHJhbmdlLT5zZXRFbmQobm9kZSwgbm9kZS0+b2Zmc2V0SW5DaGFyYWN0ZXJzKCkgPyBub2Rl
LT5tYXhDaGFyYWN0ZXJPZmZzZXQoKSA6IG5vZGUtPmNoaWxkTm9kZUNvdW50KCkpOworICAgICAg
ICB9CisgICAgfQorCisgICAgZm9yIChSZW5kZXJTdWJ0cmVlc01hcDo6aXRlcmF0b3IgaSA9IHJl
bmRlclN1YnRyZWVzTWFwLmJlZ2luKCk7IGkgIT0gcmVuZGVyU3VidHJlZXNNYXAuZW5kKCk7ICsr
aSkgeworICAgICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gaS0+dmFsdWU7CisKKyAgICAgICAg
UmVuZGVyT2JqZWN0KiBuZXdTdGFydDsKKyAgICAgICAgaW50IG5ld1N0YXJ0UG9zOworICAgICAg
ICBSZW5kZXJPYmplY3QqIG5ld0VuZDsKKyAgICAgICAgaW50IG5ld0VuZFBvczsKKworICAgICAg
ICBpZiAocmFuZ2UpIHsKKyAgICAgICAgICAgIG5ld1N0YXJ0ID0gcmFuZ2UtPnN0YXJ0Q29udGFp
bmVyKCktPnJlbmRlcmVyKCk7CisgICAgICAgICAgICBuZXdTdGFydFBvcyA9IHJhbmdlLT5zdGFy
dE9mZnNldCgpOworICAgICAgICAgICAgbmV3RW5kID0gcmFuZ2UtPmVuZENvbnRhaW5lcigpLT5y
ZW5kZXJlcigpOworICAgICAgICAgICAgbmV3RW5kUG9zID0gcmFuZ2UtPmVuZE9mZnNldCgpOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbmV3U3RhcnQgPSAwOworICAgICAgICAgICAg
bmV3U3RhcnRQb3MgPSAtMTsKKyAgICAgICAgICAgIG5ld0VuZCA9IDA7CisgICAgICAgICAgICBu
ZXdFbmRQb3MgPSAtMTsKKyAgICAgICAgfQorCisgICAgICAgIHNldFN1YnRyZWVTZWxlY3Rpb24o
aS0+a2V5LCBuZXdTdGFydCwgbmV3U3RhcnRQb3MsIG5ld0VuZCwgbmV3RW5kUG9zLCBibG9ja1Jl
cGFpbnRNb2RlKTsKKyAgICB9Cit9CisKK3ZvaWQgUmVuZGVyVmlldzo6c2V0U3VidHJlZVNlbGVj
dGlvbihTZWxlY3Rpb25TdWJ0cmVlUm9vdCogcm9vdCwgUmVuZGVyT2JqZWN0KiBzdGFydCwgaW50
IHN0YXJ0UG9zLCBSZW5kZXJPYmplY3QqIGVuZCwgaW50IGVuZFBvcywgU2VsZWN0aW9uUmVwYWlu
dE1vZGUgYmxvY2tSZXBhaW50TW9kZSkKK3sKICAgICAvLyBSZWNvcmQgdGhlIG9sZCBzZWxlY3Rl
ZCBvYmplY3RzLiAgVGhlc2Ugd2lsbCBiZSB1c2VkIGxhdGVyCiAgICAgLy8gd2hlbiB3ZSBjb21w
YXJlIGFnYWluc3QgdGhlIG5ldyBzZWxlY3RlZCBvYmplY3RzLgotICAgIGludCBvbGRTdGFydFBv
cyA9IG1fc2VsZWN0aW9uU3RhcnRQb3M7Ci0gICAgaW50IG9sZEVuZFBvcyA9IG1fc2VsZWN0aW9u
RW5kUG9zOworICAgIGludCBvbGRTdGFydFBvcyA9IHJvb3QtPnNlbGVjdGlvblN0YXJ0UG9zKCk7
CisgICAgaW50IG9sZEVuZFBvcyA9IHJvb3QtPnNlbGVjdGlvbkVuZFBvcygpOwogCiAgICAgLy8g
T2JqZWN0cyBlYWNoIGhhdmUgYSBzaW5nbGUgc2VsZWN0aW9uIHJlY3QgdG8gZXhhbWluZS4KICAg
ICB0eXBlZGVmIEhhc2hNYXA8UmVuZGVyT2JqZWN0Kiwgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclNl
bGVjdGlvbkluZm8+PiBTZWxlY3RlZE9iamVjdE1hcDsKQEAgLTc4NCwxMiArODY4LDExIEBAIHZv
aWQgUmVuZGVyVmlldzo6c2V0U2VsZWN0aW9uKFJlbmRlck9iamVjdCogc3RhcnQsIGludCBzdGFy
dFBvcywgUmVuZGVyT2JqZWN0KiBlCiAgICAgU2VsZWN0ZWRCbG9ja01hcCBvbGRTZWxlY3RlZEJs
b2NrczsKICAgICBTZWxlY3RlZEJsb2NrTWFwIG5ld1NlbGVjdGVkQmxvY2tzOwogCi0gICAgUmVu
ZGVyT2JqZWN0KiBvcyA9IG1fc2VsZWN0aW9uU3RhcnQ7Ci0gICAgUmVuZGVyT2JqZWN0KiBzdG9w
ID0gcmVuZGVyZXJBZnRlclBvc2l0aW9uKG1fc2VsZWN0aW9uRW5kLCBtX3NlbGVjdGlvbkVuZFBv
cyk7Ci0gICAgYm9vbCBleHBsb3JpbmdCYWNrd2FyZHMgPSBmYWxzZTsKLSAgICBib29sIGNvbnRp
bnVlRXhwbG9yaW5nID0gb3MgJiYgKG9zICE9IHN0b3ApOwotICAgIHdoaWxlIChjb250aW51ZUV4
cGxvcmluZykgewotICAgICAgICBpZiAoKG9zLT5jYW5CZVNlbGVjdGlvbkxlYWYoKSB8fCBvcyA9
PSBtX3NlbGVjdGlvblN0YXJ0IHx8IG9zID09IG1fc2VsZWN0aW9uRW5kKSAmJiBvcy0+c2VsZWN0
aW9uU3RhdGUoKSAhPSBTZWxlY3Rpb25Ob25lKSB7CisgICAgUmVuZGVyT2JqZWN0KiBvcyA9IHJv
b3QtPnNlbGVjdGlvblN0YXJ0KCk7CisgICAgUmVuZGVyT2JqZWN0KiBzdG9wID0gcmVuZGVyZXJB
ZnRlclBvc2l0aW9uKHJvb3QtPnNlbGVjdGlvbkVuZCgpLCByb290LT5zZWxlY3Rpb25FbmRQb3Mo
KSk7CisgICAgd2hpbGUgKG9zICYmIG9zICE9IHN0b3ApIHsKKyAgICAgICAgaWYgKChvcy0+Y2Fu
QmVTZWxlY3Rpb25MZWFmKCkgfHwgb3MgPT0gcm9vdC0+c2VsZWN0aW9uU3RhcnQoKSB8fCBvcyA9
PSByb290LT5zZWxlY3Rpb25FbmQoKSkKKyAgICAgICAgICAgICYmIG9zLT5zZWxlY3Rpb25TdGF0
ZSgpICE9IFNlbGVjdGlvbk5vbmUpIHsKICAgICAgICAgICAgIC8vIEJsb2NrcyBhcmUgcmVzcG9u
c2libGUgZm9yIHBhaW50aW5nIGxpbmUgZ2FwcyBhbmQgbWFyZ2luIGdhcHMuICBUaGV5IG11c3Qg
YmUgZXhhbWluZWQgYXMgd2VsbC4KICAgICAgICAgICAgIG9sZFNlbGVjdGVkT2JqZWN0cy5zZXQo
b3MsIHN0ZDo6bWFrZV91bmlxdWU8UmVuZGVyU2VsZWN0aW9uSW5mbz4ob3MsIHRydWUpKTsKICAg
ICAgICAgICAgIGlmIChibG9ja1JlcGFpbnRNb2RlID09IFJlcGFpbnROZXdYT1JPbGQpIHsKQEAg
LTgwNCw3ICs4ODcsNyBAQCB2b2lkIFJlbmRlclZpZXc6OnNldFNlbGVjdGlvbihSZW5kZXJPYmpl
Y3QqIHN0YXJ0LCBpbnQgc3RhcnRQb3MsIFJlbmRlck9iamVjdCogZQogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAKLSAgICAgICAgb3MgPSBnZXROZXh0T3JQcmV2UmVuZGVyT2JqZWN0QmFzZWRP
bkRpcmVjdGlvbihvcywgc3RvcCwgY29udGludWVFeHBsb3JpbmcsIGV4cGxvcmluZ0JhY2t3YXJk
cyk7CisgICAgICAgIG9zID0gb3MtPm5leHRJblByZU9yZGVyKCk7CiAgICAgfQogCiAgICAgLy8g
Tm93IGNsZWFyIHRoZSBzZWxlY3Rpb24uCkBAIC04MTMsMTIgKzg5NiwxMiBAQCB2b2lkIFJlbmRl
clZpZXc6OnNldFNlbGVjdGlvbihSZW5kZXJPYmplY3QqIHN0YXJ0LCBpbnQgc3RhcnRQb3MsIFJl
bmRlck9iamVjdCogZQogICAgICAgICBpLT5rZXktPnNldFNlbGVjdGlvblN0YXRlSWZOZWVkZWQo
U2VsZWN0aW9uTm9uZSk7CiAKICAgICAvLyBzZXQgc2VsZWN0aW9uIHN0YXJ0IGFuZCBlbmQKLSAg
ICBtX3NlbGVjdGlvblN0YXJ0ID0gc3RhcnQ7Ci0gICAgbV9zZWxlY3Rpb25TdGFydFBvcyA9IHN0
YXJ0UG9zOwotICAgIG1fc2VsZWN0aW9uRW5kID0gZW5kOwotICAgIG1fc2VsZWN0aW9uRW5kUG9z
ID0gZW5kUG9zOworICAgIHJvb3QtPnNldFNlbGVjdGlvblN0YXJ0KHN0YXJ0KTsKKyAgICByb290
LT5zZXRTZWxlY3Rpb25TdGFydFBvcyhzdGFydFBvcyk7CisgICAgcm9vdC0+c2V0U2VsZWN0aW9u
RW5kKGVuZCk7CisgICAgcm9vdC0+c2V0U2VsZWN0aW9uRW5kUG9zKGVuZFBvcyk7CiAKLSAgICAv
LyBVcGRhdGUgdGhlIHNlbGVjdGlvbiBzdGF0dXMgb2YgYWxsIG9iamVjdHMgYmV0d2VlbiBtX3Nl
bGVjdGlvblN0YXJ0IGFuZCBtX3NlbGVjdGlvbkVuZAorICAgIC8vIFVwZGF0ZSB0aGUgc2VsZWN0
aW9uIHN0YXR1cyBvZiBhbGwgb2JqZWN0cyBiZXR3ZWVuIHNlbGVjdGlvblN0YXJ0IGFuZCBzZWxl
Y3Rpb25FbmQKICAgICBpZiAoc3RhcnQgJiYgc3RhcnQgPT0gZW5kKQogICAgICAgICBzdGFydC0+
c2V0U2VsZWN0aW9uU3RhdGVJZk5lZWRlZChTZWxlY3Rpb25Cb3RoKTsKICAgICBlbHNlIHsKQEAg
LTg0Myw5ICs5MjYsNyBAQCB2b2lkIFJlbmRlclZpZXc6OnNldFNlbGVjdGlvbihSZW5kZXJPYmpl
Y3QqIHN0YXJ0LCBpbnQgc3RhcnRQb3MsIFJlbmRlck9iamVjdCogZQogICAgIC8vIE5vdyB0aGF0
IHRoZSBzZWxlY3Rpb24gc3RhdGUgaGFzIGJlZW4gdXBkYXRlZCBmb3IgdGhlIG5ldyBvYmplY3Rz
LCB3YWxrIHRoZW0gYWdhaW4gYW5kCiAgICAgLy8gcHV0IHRoZW0gaW4gdGhlIG5ldyBvYmplY3Rz
IGxpc3QuCiAgICAgbyA9IHN0YXJ0OwotICAgIGV4cGxvcmluZ0JhY2t3YXJkcyA9IGZhbHNlOwot
ICAgIGNvbnRpbnVlRXhwbG9yaW5nID0gbyAmJiAobyAhPSBzdG9wKTsKLSAgICB3aGlsZSAoY29u
dGludWVFeHBsb3JpbmcpIHsKKyAgICB3aGlsZSAobyAmJiBvICE9IHN0b3ApIHsKICAgICAgICAg
aWYgKChvLT5jYW5CZVNlbGVjdGlvbkxlYWYoKSB8fCBvID09IHN0YXJ0IHx8IG8gPT0gZW5kKSAm
JiBvLT5zZWxlY3Rpb25TdGF0ZSgpICE9IFNlbGVjdGlvbk5vbmUpIHsKICAgICAgICAgICAgIG5l
d1NlbGVjdGVkT2JqZWN0cy5zZXQobywgc3RkOjptYWtlX3VuaXF1ZTxSZW5kZXJTZWxlY3Rpb25J
bmZvPihvLCB0cnVlKSk7CiAgICAgICAgICAgICBSZW5kZXJCbG9jayogY2IgPSBvLT5jb250YWlu
aW5nQmxvY2soKTsKQEAgLTg1OCw3ICs5MzksNyBAQCB2b2lkIFJlbmRlclZpZXc6OnNldFNlbGVj
dGlvbihSZW5kZXJPYmplY3QqIHN0YXJ0LCBpbnQgc3RhcnRQb3MsIFJlbmRlck9iamVjdCogZQog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgbyA9IGdldE5leHRPclByZXZSZW5k
ZXJPYmplY3RCYXNlZE9uRGlyZWN0aW9uKG8sIHN0b3AsIGNvbnRpbnVlRXhwbG9yaW5nLCBleHBs
b3JpbmdCYWNrd2FyZHMpOworICAgICAgICBvID0gby0+bmV4dEluUHJlT3JkZXIoKTsKICAgICB9
CiAKICAgICBpZiAoYmxvY2tSZXBhaW50TW9kZSA9PSBSZXBhaW50Tm90aGluZykKQEAgLTg2OSw5
ICs5NTAsOSBAQCB2b2lkIFJlbmRlclZpZXc6OnNldFNlbGVjdGlvbihSZW5kZXJPYmplY3QqIHN0
YXJ0LCBpbnQgc3RhcnRQb3MsIFJlbmRlck9iamVjdCogZQogICAgICAgICBSZW5kZXJPYmplY3Qq
IG9iaiA9IGktPmtleTsKICAgICAgICAgUmVuZGVyU2VsZWN0aW9uSW5mbyogbmV3SW5mbyA9IG5l
d1NlbGVjdGVkT2JqZWN0cy5nZXQob2JqKTsKICAgICAgICAgUmVuZGVyU2VsZWN0aW9uSW5mbyog
b2xkSW5mbyA9IGktPnZhbHVlLmdldCgpOwotICAgICAgICBpZiAoIW5ld0luZm8gfHwgb2xkSW5m
by0+cmVjdCgpICE9IG5ld0luZm8tPnJlY3QoKSB8fCBvbGRJbmZvLT5zdGF0ZSgpICE9IG5ld0lu
Zm8tPnN0YXRlKCkgfHwKLSAgICAgICAgICAgIChtX3NlbGVjdGlvblN0YXJ0ID09IG9iaiAmJiBv
bGRTdGFydFBvcyAhPSBtX3NlbGVjdGlvblN0YXJ0UG9zKSB8fAotICAgICAgICAgICAgKG1fc2Vs
ZWN0aW9uRW5kID09IG9iaiAmJiBvbGRFbmRQb3MgIT0gbV9zZWxlY3Rpb25FbmRQb3MpKSB7Cisg
ICAgICAgIGlmICghbmV3SW5mbyB8fCBvbGRJbmZvLT5yZWN0KCkgIT0gbmV3SW5mby0+cmVjdCgp
IHx8IG9sZEluZm8tPnN0YXRlKCkgIT0gbmV3SW5mby0+c3RhdGUoKQorICAgICAgICAgICAgfHwg
KHJvb3QtPnNlbGVjdGlvblN0YXJ0KCkgPT0gb2JqICYmIG9sZFN0YXJ0UG9zICE9IHJvb3QtPnNl
bGVjdGlvblN0YXJ0UG9zKCkpCisgICAgICAgICAgICB8fCAocm9vdC0+c2VsZWN0aW9uRW5kKCkg
PT0gb2JqICYmIG9sZEVuZFBvcyAhPSByb290LT5zZWxlY3Rpb25FbmRQb3MoKSkpIHsKICAgICAg
ICAgICAgIG9sZEluZm8tPnJlcGFpbnQoKTsKICAgICAgICAgICAgIGlmIChuZXdJbmZvKSB7CiAg
ICAgICAgICAgICAgICAgbmV3SW5mby0+cmVwYWludCgpOwpAQCAtOTIwLDEyICsxMDAxLDYgQEAg
dm9pZCBSZW5kZXJWaWV3OjpjbGVhclNlbGVjdGlvbigpCiAgICAgc2V0U2VsZWN0aW9uKDAsIC0x
LCAwLCAtMSwgUmVwYWludE5ld01pbnVzT2xkKTsKIH0KIAotdm9pZCBSZW5kZXJWaWV3OjpzZWxl
Y3Rpb25TdGFydEVuZChpbnQmIHN0YXJ0UG9zLCBpbnQmIGVuZFBvcykgY29uc3QKLXsKLSAgICBz
dGFydFBvcyA9IG1fc2VsZWN0aW9uU3RhcnRQb3M7Ci0gICAgZW5kUG9zID0gbV9zZWxlY3Rpb25F
bmRQb3M7Ci19Ci0KIGJvb2wgUmVuZGVyVmlldzo6cHJpbnRpbmcoKSBjb25zdAogewogICAgIHJl
dHVybiBkb2N1bWVudCgpLnByaW50aW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuaAppbmRleCA2ODZmMzA5MzJhYTQ3ZmYwYjg1MWNhYmQ4MGRlY2I2YWRjNDZlZmUzLi5lMzQ1
MDZhNjAwOTk2NjM3YjI1N2RhYjkwMThiNDZhNTUzMWI1ODViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmgKQEAgLTI3LDggKzI3LDEwIEBACiAjaW5jbHVkZSAiUE9ERnJlZUxp
c3RBcmVuYS5oIgogI2luY2x1ZGUgIlJlZ2lvbi5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxv
dy5oIgorI2luY2x1ZGUgIlNlbGVjdGlvblN1YnRyZWVSb290LmgiCiAjaW5jbHVkZSA8bWVtb3J5
PgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM3LDcgKzM5LDcgQEAgY2xhc3MgSW1hZ2VRdWFsaXR5
Q29udHJvbGxlcjsKIGNsYXNzIFJlbmRlckxheWVyQ29tcG9zaXRvcjsKIGNsYXNzIFJlbmRlclF1
b3RlOwogCi1jbGFzcyBSZW5kZXJWaWV3IGZpbmFsIDogcHVibGljIFJlbmRlckJsb2NrRmxvdyB7
CitjbGFzcyBSZW5kZXJWaWV3IGZpbmFsIDogcHVibGljIFJlbmRlckJsb2NrRmxvdywgcHVibGlj
IFNlbGVjdGlvblN1YnRyZWVSb290IHsKIHB1YmxpYzoKICAgICBSZW5kZXJWaWV3KERvY3VtZW50
JiwgUGFzc1JlZjxSZW5kZXJTdHlsZT4pOwogICAgIHZpcnR1YWwgflJlbmRlclZpZXcoKTsKQEAg
LTg2LDcgKzg4LDYgQEAgcHVibGljOgogICAgIFJlbmRlck9iamVjdCogc2VsZWN0aW9uU3RhcnQo
KSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvblN0YXJ0OyB9CiAgICAgUmVuZGVyT2JqZWN0KiBz
ZWxlY3Rpb25FbmQoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbkVuZDsgfQogICAgIEludFJl
Y3Qgc2VsZWN0aW9uQm91bmRzKGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQgPSB0cnVlKSBjb25z
dDsKLSAgICB2b2lkIHNlbGVjdGlvblN0YXJ0RW5kKGludCYgc3RhcnRQb3MsIGludCYgZW5kUG9z
KSBjb25zdDsKICAgICB2b2lkIHJlcGFpbnRTZWxlY3Rpb24oKSBjb25zdDsKIAogICAgIGJvb2wg
cHJpbnRpbmcoKSBjb25zdDsKQEAgLTI4OCw2ICsyODksMTAgQEAgcHJpdmF0ZToKICAgICBmcmll
bmQgY2xhc3MgTGF5b3V0U3RhdGVNYWludGFpbmVyOwogICAgIGZyaWVuZCBjbGFzcyBMYXlvdXRT
dGF0ZURpc2FibGVyOwogCisgICAgdm9pZCBzZXRTdWJ0cmVlU2VsZWN0aW9uKFNlbGVjdGlvblN1
YnRyZWVSb290KiwgUmVuZGVyT2JqZWN0KiBzdGFydCwgaW50IHN0YXJ0UG9zLCBSZW5kZXJPYmpl
Y3QqIGVuZCwgaW50IGVuZFBvcywgU2VsZWN0aW9uUmVwYWludE1vZGUpOworICAgIExheW91dFJl
Y3Qgc3VidHJlZVNlbGVjdGlvbkJvdW5kcyhjb25zdCBTZWxlY3Rpb25TdWJ0cmVlUm9vdCosIGJv
b2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQgPSB0cnVlKSBjb25zdDsKKyAgICB2b2lkIHJlcGFpbnRT
dWJ0cmVlU2VsZWN0aW9uKGNvbnN0IFNlbGVjdGlvblN1YnRyZWVSb290KikgY29uc3Q7CisKIHBy
aXZhdGU6CiAgICAgRnJhbWVWaWV3JiBtX2ZyYW1lVmlldzsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblN1YnRyZWVSb290LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9TZWxlY3Rpb25TdWJ0cmVlUm9vdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzlhOTA3
MWNkYjgxYjIyOWY3M2FkMDY1OTI0MjE0ZTU2NTI0YTI2YwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TZWxlY3Rpb25TdWJ0cmVlUm9vdC5jcHAKQEAgLTAsMCAr
MSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAg
ICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2VsZWN0aW9uU3VidHJlZVJvb3Qu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTZWxlY3Rpb25TdWJ0cmVlUm9vdDo6U2VsZWN0
aW9uU3VidHJlZVJvb3QoKQorICAgIDogbV9zZWxlY3Rpb25TdGFydChudWxscHRyKQorICAgICwg
bV9zZWxlY3Rpb25TdGFydFBvcygtMSkKKyAgICAsIG1fc2VsZWN0aW9uRW5kKG51bGxwdHIpCisg
ICAgLCBtX3NlbGVjdGlvbkVuZFBvcygtMSkKK3sKK30KKwordm9pZCBTZWxlY3Rpb25TdWJ0cmVl
Um9vdDo6c2VsZWN0aW9uU3RhcnRFbmRQb3NpdGlvbnMoaW50JiBzdGFydFBvcywgaW50JiBlbmRQ
b3MpIGNvbnN0Cit7CisgICAgc3RhcnRQb3MgPSBtX3NlbGVjdGlvblN0YXJ0UG9zOworICAgIGVu
ZFBvcyA9IG1fc2VsZWN0aW9uRW5kUG9zOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uU3VidHJlZVJvb3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TZWxlY3Rpb25TdWJ0cmVlUm9vdC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjA2MWQ0ZWQ2YjVkMDcxMmMxMWFiM2U3MGNkMjhjNWExNDY3MDJhMzgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uU3VidHJlZVJvb3Qu
aApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICog
ICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1l
ciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgU2VsZWN0aW9uU3VidHJlZVJvb3RfaAorI2RlZmluZSBT
ZWxlY3Rpb25TdWJ0cmVlUm9vdF9oCisKKyNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTZWxlY3Rpb25TdWJ0cmVlUm9vdCB7CitwdWJsaWM6
CisKKyAgICBTZWxlY3Rpb25TdWJ0cmVlUm9vdCgpOworCisgICAgUmVuZGVyT2JqZWN0KiBzZWxl
Y3Rpb25TdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uU3RhcnQ7IH0KKyAgICBpbnQg
c2VsZWN0aW9uU3RhcnRQb3MoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvblN0YXJ0UG9zOyB9
CisgICAgUmVuZGVyT2JqZWN0KiBzZWxlY3Rpb25FbmQoKSBjb25zdCB7IHJldHVybiBtX3NlbGVj
dGlvbkVuZDsgfQorICAgIGludCBzZWxlY3Rpb25FbmRQb3MoKSBjb25zdCB7IHJldHVybiBtX3Nl
bGVjdGlvbkVuZFBvczsgfQorCisgICAgdm9pZCBzZXRTZWxlY3Rpb25TdGFydChSZW5kZXJPYmpl
Y3QqIHNlbGVjdGlvblN0YXJ0KSB7IG1fc2VsZWN0aW9uU3RhcnQgPSBzZWxlY3Rpb25TdGFydDsg
fQorICAgIHZvaWQgc2V0U2VsZWN0aW9uU3RhcnRQb3MoaW50IHNlbGVjdGlvblN0YXJ0UG9zKSB7
IG1fc2VsZWN0aW9uU3RhcnRQb3MgPSBzZWxlY3Rpb25TdGFydFBvczsgfQorICAgIHZvaWQgc2V0
U2VsZWN0aW9uRW5kKFJlbmRlck9iamVjdCogc2VsZWN0aW9uRW5kKSB7IG1fc2VsZWN0aW9uRW5k
ID0gc2VsZWN0aW9uRW5kOyB9CisgICAgdm9pZCBzZXRTZWxlY3Rpb25FbmRQb3MoaW50IHNlbGVj
dGlvbkVuZFBvcykgeyBtX3NlbGVjdGlvbkVuZFBvcyA9IHNlbGVjdGlvbkVuZFBvczsgfQorCisg
ICAgdm9pZCBzZWxlY3Rpb25TdGFydEVuZFBvc2l0aW9ucyhpbnQmIHN0YXJ0UG9zLCBpbnQmIGVu
ZFBvcykgY29uc3Q7CisKK3ByaXZhdGU6CisKKyAgICBSZW5kZXJPYmplY3QqIG1fc2VsZWN0aW9u
U3RhcnQ7CisgICAgaW50IG1fc2VsZWN0aW9uU3RhcnRQb3M7CisgICAgUmVuZGVyT2JqZWN0KiBt
X3NlbGVjdGlvbkVuZDsKKyAgICBpbnQgbV9zZWxlY3Rpb25FbmRQb3M7CisKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFNlbGVjdGlvblN1YnRyZWVSb290X2gKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA1MGZlMmQ1NjdlMWUxMTI3MmFiMDcxNjcyOGZjNDMzYWMyYWY5YjcxLi5lYzQ2ZTk3NDdj
MDM2N2EzOGQ2OTE1NGE2YTgwYTE0OWQ0MjAyOTU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIw
MTQtMDQtMTEgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgW0NTUyBSZWdpb25zXSBTZWxlY3Rpb24gaGlnaGxpZ2h0IGRvZXNuJ3QgbWF0Y2ggRE9N
IHNlbGVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTMxNTExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIG5ldyB0ZXN0IHRvIGNoZWNrIGhpZ2hsaWdodCBvZiByZW5kZXIgb2JqZWN0cyBtb3Zl
ZCB1bmRlciBSZW5kZXJGbG93VGhyZWFkIGluIHRoZSByZW5kZXIgdHJlZS4KKworICAgICAgICBV
cGRhdGVkIHNvbWUgdGVzdHMgdG8gYXZvaWQgaXNzdWVzIHdpdGggc2VsZWN0aW9uIGdhcCBmaWxs
aW5nIGluIHRoZSBuZXcgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMv
c2VsZWN0aW9uL3NlbGVjdGluZy10ZXh0LWluY2x1ZGluZy1yZWdpb24tZXhwZWN0ZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3RpbmctdGV4dC1p
bmNsdWRpbmctcmVnaW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9zZWxl
Y3Rpb24vc2VsZWN0aW5nLXRleHQtdGhyb3VnaC1kaWZmZXJlbnQtcmVnaW9uLWZsb3dzLTItZXhw
ZWN0ZWQuaHRtbDogVXBkYXRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3Nl
bGVjdGluZy10ZXh0LXRocm91Z2gtZGlmZmVyZW50LXJlZ2lvbi1mbG93cy0yLmh0bWw6IFVwZGF0
ZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3Rpb24tZGlyZWN0aW9u
LWV4cGVjdGVkLmh0bWw6IFVwZGF0ZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL3NlbGVjdGlv
bi9zZWxlY3Rpb24tZGlyZWN0aW9uLmh0bWw6IFVwZGF0ZWQuCisKIDIwMTQtMDQtMDkgIE1hcmlv
IFNhbmNoZXogUHJhZGEgIDxtYXJpby5wcmFkYUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbR1RL
XSBMYXlvdXQgdGVzdHMgYWNjZXNzaWJpbGl0eS9jaGlsZHJlbi1jaGFuZ2VkLXNlbmRzLW5vdGlm
aWNhdGlvbi5odG1sIGFuZCBhY2Nlc3NpYmlsaXR5L25vdGlmaWNhdGlvbi1saXN0ZW5lcnMuaHRt
bCBmYWlscwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9z
ZWxlY3RpbmctdGV4dC1pbmNsdWRpbmctcmVnaW9uLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGluZy10ZXh0LWluY2x1ZGluZy1yZWdpb24t
ZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTAyZDJiNWY2MzYzYjJjNzQ5NjEyMjMyZTYzZjQ1
NDMyNTdjOTMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3Nl
bGVjdGlvbi9zZWxlY3RpbmctdGV4dC1pbmNsdWRpbmctcmVnaW9uLWV4cGVjdGVkLmh0bWwKQEAg
LTAsMCArMSw3NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uL3Jlc291cmNlcy9yZWdpb24tc3R5bGUuY3NzIj48L2xpbms+
CisgICAgPHN0eWxlPgorICAgICAgICAqIHsKKyAgICAgICAgICAgIG1hcmdpbjogMHB4OworICAg
ICAgICAgICAgcGFkZGluZzogMHB4OworICAgICAgICB9CisKKyAgICAgICAgYm9keSB7CisgICAg
ICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKKyAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDsK
KyAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBBaGVtOworICAgICAgICB9CisKKyAgICAgICAgI291
dHNpZGUtMSB7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB0
b3A6IDBweDsKKyAgICAgICAgfQorCisgICAgICAgICNvdXRzaWRlLTIgeworICAgICAgICAgICAg
cG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgdG9wOiAxMDBweDsKKyAgICAgICAgfQor
CisgICAgICAgICNyZWdpb24geworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAg
ICAgICAgICAgdG9wOiAyMDBweDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGN5YW47
CisgICAgICAgIH0KKworICAgICAgICAjZGVzY3JpcHRpb24geworICAgICAgICAgICAgcG9zaXRp
b246IGFic29sdXRlOworICAgICAgICAgICAgdG9wOiAzNTBweDsKKyAgICAgICAgfQorICAgIDwv
c3R5bGU+CisgICAgPHNjcmlwdD4KKyAgICAgICAgb25Nb3VzZVVwTG9nU2VsZWN0aW9uKCJzZWxl
Y3RlZC1jb250ZW50Iik7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNl
bGVjdENvbnRlbnRCeUlkcygnd29yZDEnLCAnd29yZDInKTsiIHN0eWxlPSJtYXJnaW4tdG9wOiAw
OyI+CisgICAgPGRpdiBpZD0ib3V0c2lkZS0xIiBjbGFzcz0iYmlnQm94Ij4KKyAgICAgICAgWCBY
IFggWCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWCBYIFggWAorICAgICAgICBYIFggWCA8c3Bh
biBpZD0id29yZDEiIGNsYXNzPSJ0b2tlbiI+WDwvc3Bhbj4gWCBYIFggWAorICAgICAgICBYIFgg
WCBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBYIFggWCBYCisgICAgPC9kaXY+CisgICAgPGRp
diBpZD0icmVnaW9uIiBjbGFzcz0iYmlnQm94Ij4KKyAgICAgICAgWCBYIFggWCBYIFggWCBYCisg
ICAgICAgIFggWCBYIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFggWCBYIFgKKyAgICAgICAg
WCBYIFggWCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWCBYIFggWAorICAgIDwvZGl2PgorICAg
IDxkaXYgaWQ9Im91dHNpZGUtMiIgY2xhc3M9ImJpZ0JveCI+CisgICAgICAgIFggWCBYIFggWCBY
IFggWAorICAgICAgICBYIFggWCBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggPHNwYW4gaWQ9Indv
cmQyIiBjbGFzcz0idG9rZW4iPlg8L3NwYW4+IFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBYIFgg
WCBYCisgICAgICAgIFggWCBYIFggWCBYIFggWAorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9ImRl
c2NyaXB0aW9uIiBjbGFzcz0iZGVzY3JpcHRpb24iPgorICAgICAgICA8aDE+PGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTUxMSI+QnVnICMxMzE1MTEg
LSBbQ1NTIFJlZ2lvbnNdIFNlbGVjdGlvbiBoaWdobGlnaHQgZG9lc24ndCBtYXRjaCBET00gc2Vs
ZWN0aW9uPC9hPjwvaDE+CisgICAgICAgIDxwPlRoaXMgdGVzdCBjaGVja3MgdGhlIHNlbGVjdGlv
biBpbiAyIHRleHQgd3JhcHBpbmcgYSBjb250ZW50IG5vZGUuIElmIHlvdSBzZWxlY3QgZnJvbSA8
c3BhbiBjbGFzcz0idG9rZW4iPlg8L3NwYW4+IHRvIDxzcGFuIGNsYXNzPSJ0b2tlbiI+WDwvc3Bh
bj4geW91IHdpbGwgc2VlIHRoYXQgcmVnaW9uIHRleHQgaXMgaGlnaGxpZ2h0ZWQgYW5kIGluY2x1
ZGVkIGluIHRoZSBzZWxlY3RlZCBjb250ZW50IChiZWNhdXNlIG9mIHRoZSBjb250ZW50IG9mIHRo
ZSByZWdpb24gaXMgYmV0d2VlbiBib3QgdGV4dHMgaW4gdGhlIERPTSkuPC9wPgorICAgICAgICA8
ZGw+CisgICAgICAgICAgICA8ZHQ+U2VsZWN0ZWQgY29udGVudDo8L2R0PgorICAgICAgICAgICAg
PGRkIGlkPSJzZWxlY3RlZC1jb250ZW50Ij48L2RkPgorICAgICAgICA8L2RsPgorICAgIDwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25z
L3NlbGVjdGlvbi9zZWxlY3RpbmctdGV4dC1pbmNsdWRpbmctcmVnaW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGluZy10ZXh0LWluY2x1ZGluZy1yZWdp
b24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mYTI0ZTUzNWMxZDFjZjUyNTU3NTEwNWE4OTEwZjFmZGRiNGY1
NDQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVjdGlv
bi9zZWxlY3RpbmctdGV4dC1pbmNsdWRpbmctcmVnaW9uLmh0bWwKQEAgLTAsMCArMSw2NSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uL3Jlc291cmNlcy9yZWdpb24tc3R5bGUuY3NzIj48L2xpbms+CisgICAgPHN0eWxlPgor
ICAgICAgICAqIHsKKyAgICAgICAgICAgIG1hcmdpbjogMHB4OworICAgICAgICAgICAgcGFkZGlu
ZzogMHB4OworICAgICAgICB9CisKKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICBsaW5lLWhl
aWdodDogMjBweDsKKyAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDsKKyAgICAgICAgICAgIGZv
bnQtZmFtaWx5OiBBaGVtOworICAgICAgICB9CisKKyAgICAgICAgI3JlZ2lvbiB7CisgICAgICAg
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjeWFuOworICAgICAgICB9CisKKyAgICAgICAgI2Rlc2Ny
aXB0aW9uIHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIHRv
cDogMzUwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQ+CisgICAgICAg
IG9uTW91c2VVcExvZ1NlbGVjdGlvbigic2VsZWN0ZWQtY29udGVudCIpOworICAgIDwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZWxlY3RDb250ZW50QnlJZHMoJ3dvcmQxJywgJ3dv
cmQyJyk7IiBzdHlsZT0ibWFyZ2luLXRvcDogMDsiPgorICAgIDxkaXYgY2xhc3M9ImJpZ0JveCBm
bG9hdCI+CisgICAgICAgIFggWCBYIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFggWCBYIFgK
KyAgICAgICAgWCBYIFggPHNwYW4gaWQ9IndvcmQxIiBjbGFzcz0idG9rZW4iPlg8L3NwYW4+IFgg
WCBYIFgKKyAgICAgICAgWCBYIFggWCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWCBYIFggWAor
ICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNz
PSJmbG93QXJ0aWNsZSI+CisgICAgICAgIFggWCBYIFggWCBYIFggWAorICAgICAgICBYIFggWCBY
IFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWCBYIFgg
WAorICAgICAgICBYIFggWCBYIFggWCBYIFgKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJi
aWdCb3ggZmxvYXQiPgorICAgICAgICBYIFggWCBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBY
IFggWCBYCisgICAgICAgIFggWCBYIDxzcGFuIGlkPSJ3b3JkMiIgY2xhc3M9InRva2VuIj5YPC9z
cGFuPiBYIFggWCBYCisgICAgICAgIFggWCBYIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFgg
WCBYIFgKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+CisgICAgPGRp
diBpZD0icmVnaW9uIiBjbGFzcz0icmVnaW9uQXJ0aWNsZSBiaWdCb3giPjwvZGl2PgorICAgIDxk
aXYgaWQ9ImRlc2NyaXB0aW9uIiBjbGFzcz0iZGVzY3JpcHRpb24iPgorICAgICAgICA8aDE+PGEg
aHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTUxMSI+QnVn
ICMxMzE1MTEgLSBbQ1NTIFJlZ2lvbnNdIFNlbGVjdGlvbiBoaWdobGlnaHQgZG9lc24ndCBtYXRj
aCBET00gc2VsZWN0aW9uPC9hPjwvaDE+CisgICAgICAgIDxwPlRoaXMgdGVzdCBjaGVja3MgdGhl
IHNlbGVjdGlvbiBpbiAyIHRleHQgd3JhcHBpbmcgYSBjb250ZW50IG5vZGUuIElmIHlvdSBzZWxl
Y3QgZnJvbSA8c3BhbiBjbGFzcz0idG9rZW4iPlg8L3NwYW4+IHRvIDxzcGFuIGNsYXNzPSJ0b2tl
biI+WDwvc3Bhbj4geW91IHdpbGwgc2VlIHRoYXQgcmVnaW9uIHRleHQgaXMgaGlnaGxpZ2h0ZWQg
YW5kIGluY2x1ZGVkIGluIHRoZSBzZWxlY3RlZCBjb250ZW50IChiZWNhdXNlIG9mIHRoZSBjb250
ZW50IG9mIHRoZSByZWdpb24gaXMgYmV0d2VlbiBib3QgdGV4dHMgaW4gdGhlIERPTSkuPC9wPgor
ICAgICAgICA8ZGw+CisgICAgICAgICAgICA8ZHQ+U2VsZWN0ZWQgY29udGVudDo8L2R0PgorICAg
ICAgICAgICAgPGRkIGlkPSJzZWxlY3RlZC1jb250ZW50Ij48L2RkPgorICAgICAgICA8L2RsPgor
ICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3RpbmctdGV4dC10aHJvdWdoLWRpZmZlcmVudC1yZWdp
b24tZmxvd3MtMi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVj
dGlvbi9zZWxlY3RpbmctdGV4dC10aHJvdWdoLWRpZmZlcmVudC1yZWdpb24tZmxvd3MtMi1leHBl
Y3RlZC5odG1sCmluZGV4IDcwMGFjMjQxM2M0OTRmN2YzNGU1YTFhYWQ3OTI4ZmM1MDkyYjQ1NjMu
LmFhMjI5ZmRlYzc3ZjliOGQ3MmUwZDY2OTQ4Y2ViNzYxMTYxMjA4MmEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zZWxlY3Rpb24vc2VsZWN0aW5nLXRleHQtdGhyb3VnaC1k
aWZmZXJlbnQtcmVnaW9uLWZsb3dzLTItZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGluZy10ZXh0LXRocm91Z2gtZGlmZmVyZW50LXJl
Z2lvbi1mbG93cy0yLWV4cGVjdGVkLmh0bWwKQEAgLTMsMTkgKzMsNTYgQEAKIDxoZWFkPgogPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9oZWxwZXIuanMiPjwvc2NyaXB0PgogPHN0eWxlPgotYm9k
eSB7IHdpZHRoOiA2MDBweDsgfQotI2Zvb3ROb3RlIHsgZm9udC1zaXplOiAxM3B4OyB9CisqIHsK
KyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiAwcHg7CisgICAgZm9udC1zaXplOiAyMHB4
OworICAgIGZvbnQtZmFtaWx5OiBBaGVtOworICAgIGxpbmUtaGVpZ2h0OiAyMHB4OworfQorI2Nv
bnRlbnQxIHsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIHdpZHRoOiAyMDBweDsKKyAgICBwb3Np
dGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiA1MHB4OworfQorI25lc3RlZFJlZ2lvbiB7CisgICAg
aGVpZ2h0OiAxMDBweDsKKyAgICB3aWR0aDogMjAwcHg7CisgICAgY29sb3I6IHJlZDsKKyAgICBw
b3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAyNTBweDsKK30KKyNjb250ZW50MiB7CisgICAg
aGVpZ2h0OiAxMDBweDsKKyAgICB3aWR0aDogMjAwcHg7CisgICAgcG9zaXRpb246IGFic29sdXRl
OworICAgIHRvcDogMTUwcHg7Cit9CiA8L3N0eWxlPgogPC9oZWFkPgogPGJvZHkgb25sb2FkPSJz
ZWxlY3RCYXNlQW5kRXh0ZW50KCdzdGFydCcsIDAsICdlbmQnLCAxKSI+Ci08ZGl2IGlkPSJjb250
ZW50Ij4KLSAgICA8aDEgc3R5bGU9Im1hcmdpbi10b3A6IDBweCI+U2VsZWN0aW5nIHRleHQgdGhy
b3VnaCBkaWZmZXJlbnQgQ1NTLVJlZ2lvbiBmbG93czwvaDE+Ci0gICAgPGRpdj4KLSAgICBUaGlz
IHRleHQgY29udGFpbnMgYSBmb290bm90ZSBhcyBhIG5lc3RlZCByZWdpb24gd2hhdCBpcyBkaXBs
YXllZCA8c3BhbiBpZD0ic3RhcnQiPmJlbG93PHNwYW4+IHRoZSBhcnRpY2xlLiAoMSkgSWYgeW91
IHN0YXJ0IHNlbGVjdGluZwotICAgICAgICB0ZXh0IGZyb20gdGhpcyBhcnRpY2xlIHVudGlsIHNv
bWV3aGVyZSBpbiB0aGUgZm9vdG5vdGUgYW5kIHRoZW4gY2xpY2sgc29tZXdoZXJlLCB0aGUgc2Vs
ZWN0aW9uIHNob3VsZCBiZSBjbGVhcmVkLgotICAgIDwvZGl2PgotICAgIDxkaXYgaWQ9ImZvb3RO
b3RlIj4oMSkgVGhpcyBpcyBhIGZvb3Rub3RlLiBGb290bm90ZXMgY2FuIGJlIHF1aXRlIGxvbmcg
YW5kIGdvIG92ZXIgc2V2ZXJhbCBsaW5lcy4gVGhpcyBmb290bm90ZQotICAgIGlzIG5lc3RlZCBp
bnNpZGUgdGhlIHRleHQgPHNwYW4gaWQ9ImVuZCI+YWJvdmU8c3Bhbj4gYW5kIGRpc3BsYXllZCBo
ZXJlIHdpdGggdGhlIGhlbHAgb2YgY3NzLXJlZ2lvbnMuPC9zcGFuPjwvZGl2PgorPGgxPlNlbGVj
dGluZyB0ZXh0IHRocm91Z2ggZGlmZmVyZW50IENTUy1SZWdpb24gZmxvd3M8L2gxPgorPGRpdiBp
ZD0iY29udGVudDEiPgorICAgIFggWCBYIFggWAorICAgIFggWCBYIFggWAorICAgIFggWCA8c3Bh
biBpZD0ic3RhcnQiPlg8L3NwYW4+IFggWAorICAgIFggWCBYIFggWAorICAgIFggWCBYIFggWFgK
KzwvZGl2PgorPGRpdiBpZD0ibmVzdGVkUmVnaW9uIj4KKyAgICBYIFggWCBYIFgKKyAgICBYIFgg
WCBYIFgKKyAgICBYIFggPHNwYW4gaWQ9ImVuZCI+WDwvc3Bhbj4gWCBYCisgICAgWCBYIFggWCBY
CisgICAgWCBYIFggWCBYCis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnRlbnQyIj4KKyAgICBYIFggWCBY
IFgKKyAgICBYIFggWCBYIFgKKyAgICBYIFggWCBYIFgKKyAgICBYIFggWCBYIFgKKyAgICBYIFgg
WCBYIFgKIDwvZGl2PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3RpbmctdGV4dC10aHJvdWdoLWRpZmZlcmVudC1y
ZWdpb24tZmxvd3MtMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9z
ZWxlY3RpbmctdGV4dC10aHJvdWdoLWRpZmZlcmVudC1yZWdpb24tZmxvd3MtMi5odG1sCmluZGV4
IDliMDgzYjJkMDNkNzgyM2NjM2FhYWFlYzg3MjRiY2NjZGQ0ZDM2NGUuLjM3NjBhZTFhYTQzZjJi
ZWRhNWEwMmJhOTc1Zjg3NmVlNWZhOWE3MDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
cmVnaW9ucy9zZWxlY3Rpb24vc2VsZWN0aW5nLXRleHQtdGhyb3VnaC1kaWZmZXJlbnQtcmVnaW9u
LWZsb3dzLTIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3Nl
bGVjdGluZy10ZXh0LXRocm91Z2gtZGlmZmVyZW50LXJlZ2lvbi1mbG93cy0yLmh0bWwKQEAgLTMs
MzAgKzMsNzMgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9oZWxwZXIuanMi
Pjwvc2NyaXB0PgogPHN0eWxlPgotYm9keSB7IHdpZHRoOiA2MDBweDsgfQorKiB7CisgICAgbWFy
Z2luOiAwcHg7CisgICAgcGFkZGluZzogMHB4OworICAgIGZvbnQtc2l6ZTogMjBweDsKKyAgICBm
b250LWZhbWlseTogQWhlbTsKKyAgICBsaW5lLWhlaWdodDogMjBweDsKK30KKworI25lc3RlZFJl
Z2lvbiB7CisgICAgLXdlYmtpdC1mbG93LWludG86IG5lc3RlZFJlZ2lvbjsKKyAgICBjb2xvcjog
cmVkOworfQogCi0jZm9vdE5vdGUgewotICAgIC13ZWJraXQtZmxvdy1pbnRvOiBmb290Tm90ZTsK
LSAgICBkaXNwbGF5OiBibG9jazsKLSAgICBmb250LXNpemU6IDEzcHg7CisjY29udGVudCB7Cisg
ICAgLXdlYmtpdC1mbG93LWludG86IGNvbnRlbnQ7CiB9CiAKLSNmb290Tm90ZVJlZ2lvbiB7IC13
ZWJraXQtZmxvdy1mcm9tOiBmb290Tm90ZTsgfQotI2NvbnRlbnQgeyAtd2Via2l0LWZsb3ctaW50
bzogY29udGVudDsgfQotI3JlZ2lvbiB7IC13ZWJraXQtZmxvdy1mcm9tOiBjb250ZW50OyB9Cisj
bmVzdGVkUmVnaW9uUmVnaW9uIHsKKyAgICAtd2Via2l0LWZsb3ctZnJvbTogbmVzdGVkUmVnaW9u
OworICAgIGhlaWdodDogMTAwcHg7CisgICAgd2lkdGg6IDIwMHB4OworfQorI3JlZ2lvbiB7Cisg
ICAgLXdlYmtpdC1mbG93LWZyb206IGNvbnRlbnQ7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICB3
aWR0aDogMjAwcHg7Cit9CisKKyNjb250ZW50MSB7CisgICAgaGVpZ2h0OiAxMDBweDsKK30KKwor
I2NvbnRlbnQyIHsKKyAgICBoZWlnaHQ6IDEwMHB4OworfQorCitoMSB7CisgICAgaGVpZ2h0OiA1
MHB4OworfQogPC9zdHlsZT4KIDwvaGVhZD4KIDxib2R5PgogCis8aDE+U2VsZWN0aW5nIHRleHQg
dGhyb3VnaCBkaWZmZXJlbnQgQ1NTLVJlZ2lvbiBmbG93czwvaDE+CiA8ZGl2IGlkPSJyZWdpb24i
PjwvZGl2PgotPGRpdiBpZD0iZm9vdE5vdGVSZWdpb24iPjwvZGl2PgorPGRpdiBpZD0ibmVzdGVk
UmVnaW9uUmVnaW9uIj48L2Rpdj4KIDxkaXYgaWQ9ImNvbnRlbnQiPgotICAgIDxoMSBzdHlsZT0i
bWFyZ2luLXRvcDogMHB4Ij5TZWxlY3RpbmcgdGV4dCB0aHJvdWdoIGRpZmZlcmVudCBDU1MtUmVn
aW9uIGZsb3dzPC9oMT4KLSAgICA8ZGl2IGlkPSJjb250ZW50VGV4dCI+Ci0gICAgICAgIFRoaXMg
dGV4dCBjb250YWlucyBhIGZvb3Rub3RlIGFzIGEgbmVzdGVkIHJlZ2lvbiB3aGF0IGlzIGRpcGxh
eWVkIDxzcGFuIGlkPSJzdGFydCI+YmVsb3c8L3NwYW4+IHRoZSBhcnRpY2xlLiAoMSkgPHNwYW4g
aWQ9ImZvb3ROb3RlIj4KLSAgICAgICAgPHNwYW4+PHNwYW4+PC9zcGFuPigxKSBUaGlzIGlzIGEg
Zm9vdG5vdGUuIEZvb3Rub3RlcyBjYW4gYmUgcXVpdGUgbG9uZyBhbmQgZ28gb3ZlciBzZXZlcmFs
IGxpbmVzLiBUaGlzIGZvb3Rub3RlCi0gICAgICAgIGlzIG5lc3RlZCBpbnNpZGUgdGhlIHRleHQg
PHNwYW4gaWQ9ImVuZCI+YWJvdmU8L3NwYW4+IGFuZCBkaXNwbGF5ZWQgaGVyZSB3aXRoIHRoZSBo
ZWxwIG9mIGNzcy1yZWdpb25zLjwvc3Bhbj48L3NwYW4+IElmIHlvdSBzdGFydCBzZWxlY3RpbmcK
LSAgICAgICAgdGV4dCBmcm9tIHRoaXMgYXJ0aWNsZSB1bnRpbCBzb21ld2hlcmUgaW4gdGhlIGZv
b3Rub3RlIGFuZCB0aGVuIGNsaWNrIHNvbWV3aGVyZSwgdGhlIHNlbGVjdGlvbiBzaG91bGQgYmUg
Y2xlYXJlZC4KKyAgICA8ZGl2IGlkPSJjb250ZW50MSI+CisgICAgICAgIFggWCBYIFggWAorICAg
ICAgICBYIFggWCBYIFgKKyAgICAgICAgWCBYIDxzcGFuIGlkPSJzdGFydCI+WDwvc3Bhbj4gWCBY
CisgICAgICAgIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFhYCisgICAgPC9kaXY+CisgICAg
PGRpdiBpZD0ibmVzdGVkUmVnaW9uIj4KKyAgICAgICAgWCBYIFggWCBYCisgICAgICAgIFggWCBY
IFggWAorICAgICAgICBYIFggPHNwYW4gaWQ9ImVuZCI+WDwvc3Bhbj4gWCBYCisgICAgICAgIFgg
WCBYIFggWAorICAgICAgICBYIFggWCBYIFgKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb250
ZW50MiI+CisgICAgICAgIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFgKKyAgICAgICAgWCBY
IFggWCBYCisgICAgICAgIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFgKICAgICA8L2Rpdj4K
IDwvZGl2PgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9u
L3NlbGVjdGlvbi1kaXJlY3Rpb24tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy9zZWxlY3Rpb24vc2VsZWN0aW9uLWRpcmVjdGlvbi1leHBlY3RlZC5odG1sCmluZGV4IGIx
OGQ2ODI2NzJiZTM0OTFmNjg5ZDFjOTkwYmRmODc1OTYwOWE4MjYuLjA4Njk5YTE3MmIyODcxNTgw
NGVjZmQ4NTJiYTQ1NzMxYjQwODA3OGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy9zZWxlY3Rpb24vc2VsZWN0aW9uLWRpcmVjdGlvbi1leHBlY3RlZC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zZWxlY3Rpb24vc2VsZWN0aW9uLWRpcmVjdGlvbi1leHBl
Y3RlZC5odG1sCkBAIC03LDYgKzcsNyBAQAogICAgICAgICAgICAgd2lkdGg6IDIwMHB4OwogICAg
ICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICAgdG9wOiAxMDBweDsKKyAg
ICAgICAgICAgIGNvbG9yOiByZWQ7CiAgICAgICAgIH0KIAogICAgICAgICAjb3V0c2lkZSB7CkBA
IC0xNCwxMCArMTUsMTQgQEAKICAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKICAgICAgICAgICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgIHRvcDogMHB4OworICAgICAgICAgICAg
Y29sb3I6IGdyZWVuOwogICAgICAgICB9CiAKICAgICAgICAgYm9keSB7CiAgICAgICAgICAgICBt
YXJnaW4tdG9wOiAwOworICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4OworICAgICAgICAgICAg
Zm9udC1mYW1pbHk6IEFoZW07CisgICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAg
ICAgfQogCiAgICAgICAgICNkZXNjcmlwdGlvbiB7CkBAIC0yNSwxNCArMzAsMzAgQEAKICAgICAg
ICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgIHRvcDogMjAwcHg7CiAgICAg
ICAgIH0KKworICAgICAgICBoMSB7CisgICAgICAgICAgICBsaW5lLWhlaWdodDogNTBweDsKKyAg
ICAgICAgfQogICAgIDwvc3R5bGU+CiA8L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InNlbGVjdENvbnRl
bnRCeVJhbmdlKDEwMCwgMTAsIDEwMCwgMTEwKTsiPgotICAgIDxkaXYgaWQ9InJlZ2lvbiI+aW5z
aWRlIHJlZ2lvbiBpbnNpZGUgcmVnaW9uIGluc2lkZSByZWdpb24gaW5zaWRlIHJlZ2lvbjwvZGl2
PgotICAgIDxkaXYgaWQ9Im91dHNpZGUiPm91dHNpZGUgcmVnaW9uIG91dHNpZGUgcmVnaW9uIG91
dHNpZGUgcmVnaW9uIG91dHNpZGUgcmVnaW9uPC9kaXY+Cis8Ym9keSBvbmxvYWQ9InNlbGVjdENv
bnRlbnRCeVJhbmdlKDEwMCwgNTAsIDEwMCwgMTUwKTsiPgorICAgIDxkaXYgaWQ9InJlZ2lvbiI+
CisgICAgICAgIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBY
CisgICAgICAgIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFhYCisgICAgPC9kaXY+CisgICAg
PGRpdiBpZD0ib3V0c2lkZSI+CisgICAgICAgIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFgK
KyAgICAgICAgWCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFgK
KyAgICA8L2Rpdj4KICAgICA8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+CiAgICAgICAgIDxoMT48YSBo
cmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxNTAxIj5CdWcg
IzEyMTUwMSAtIFtDU1MgUmVnaW9uc10gTGF5b3V0IFRlc3QgZm9yIHNlbGVjdGlvbiBkaXJlY3Rp
b248L2E+PC9oMT4KLSAgICAgICAgPHA+U2VsZWN0aW9uIGlzIGJhc2VkIGluIERPTSB0cmVlLCBz
byBpZiB5b3Ugc2VsZWN0IHRleHQgZnJvbSAib3V0c2lkZSByZWdpb24iIHRvICJpbnNpZGUgcmVn
aW9uIiB0aGUgaGlnaGxpZ2h0ZWQgYXJlYSBpcyBleGFjdGx5IHRoZSBvcHBvc2l0ZSB0byB3aGF0
IHRoZSB1c2VyIGlzIGFjdHVhbGx5IHNlbGVjdGluZy48L3A+CisgICAgICAgIDxwPlNlbGVjdGlv
biBpcyBiYXNlZCBpbiBET00gdHJlZSwgc28gaWYgeW91IHNlbGVjdCB0ZXh0IGZyb20gImdyZWVu
IiB0byAicmVkIiB0aGUgaGlnaGxpZ2h0ZWQgYXJlYSBpcyBleGFjdGx5IHRoZSBvcHBvc2l0ZSB0
byB3aGF0IHRoZSB1c2VyIGlzIGFjdHVhbGx5IHNlbGVjdGluZy48L3A+CiAgICAgPC9kaXY+CiA8
L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc2Vs
ZWN0aW9uL3NlbGVjdGlvbi1kaXJlY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy9zZWxlY3Rpb24vc2VsZWN0aW9uLWRpcmVjdGlvbi5odG1sCmluZGV4IDVjNzAyZDE5ZWU0MmEz
ODM0N2QxMWU2NDEzM2FiZDFiMDg2OWJjY2MuLjk4ZjA4NGRlMmExZmFlOTBmZWIwMGQ4YmIwNjNl
ZGU5YWVkMmI4NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zZWxlY3Rp
b24vc2VsZWN0aW9uLWRpcmVjdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy9zZWxlY3Rpb24vc2VsZWN0aW9uLWRpcmVjdGlvbi5odG1sCkBAIC00LDYgKzQsNyBAQAogICAg
IDxzdHlsZT4KICAgICAgICAgI3NvdXJjZSB7CiAgICAgICAgICAgICAtd2Via2l0LWZsb3ctaW50
bzogY29udGVudDsKKyAgICAgICAgICAgIGNvbG9yOiByZWQ7CiAgICAgICAgIH0KIAogICAgICAg
ICAjcmVnaW9uIHsKQEAgLTE1LDI0ICsxNiw1MCBAQAogICAgICAgICAjb3V0c2lkZSB7CiAgICAg
ICAgICAgICBoZWlnaHQ6IDEwMHB4OwogICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAg
ICAgICAgY29sb3I6IGdyZWVuOworICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7CiAgICAgICAgIH0K
IAogICAgICAgICBib2R5IHsKICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7CisgICAgICAgICAg
ICBmb250LXNpemU6IDIwcHg7CisgICAgICAgICAgICBmb250LWZhbWlseTogQWhlbTsKKyAgICAg
ICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgICB9CiAKICAgICAgICAgI2Rlc2NyaXB0
aW9uIHsKICAgICAgICAgICAgIHdpZHRoOiA2MDBweDsKICAgICAgICAgfQorCisgICAgICAgIGgx
IHsKKyAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA1MHB4OworICAgICAgICB9CisKKyAgICAgICAg
LmNsZWFyIHsKKyAgICAgICAgICAgIGNsZWFyOiBib3RoOworICAgICAgICB9CiAgICAgPC9zdHls
ZT4KIDwvaGVhZD4KLTxib2R5IG9ubG9hZD0ic2VsZWN0Q29udGVudEJ5UmFuZ2UoMTAwLCAxMCwg
MTAwLCAxMTApOyI+Ci0gICAgPGRpdiBpZD0ic291cmNlIj5pbnNpZGUgcmVnaW9uIGluc2lkZSBy
ZWdpb24gaW5zaWRlIHJlZ2lvbiBpbnNpZGUgcmVnaW9uPC9kaXY+Ci0gICAgPGRpdiBpZD0ib3V0
c2lkZSI+b3V0c2lkZSByZWdpb24gb3V0c2lkZSByZWdpb24gb3V0c2lkZSByZWdpb24gb3V0c2lk
ZSByZWdpb248L2Rpdj4KKzxib2R5IG9ubG9hZD0ic2VsZWN0Q29udGVudEJ5UmFuZ2UoMTAwLCA1
MCwgMTAwLCAxNTApOyI+CisgICAgPGRpdiBpZD0ic291cmNlIj4KKyAgICAgICAgWCBYIFggWCBY
CisgICAgICAgIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBY
CisgICAgICAgIFggWCBYIFggWFgKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJvdXRzaWRlIj4K
KyAgICAgICAgWCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFgK
KyAgICAgICAgWCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWAorICAgIDwvZGl2PgorICAgIDxk
aXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4KICAgICA8ZGl2IGlkPSJyZWdpb24iPjwvZGl2PgogICAg
IDxkaXYgaWQ9ImRlc2NyaXB0aW9uIj4KICAgICAgICAgPGgxPjxhIGhyZWY9Imh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjE1MDEiPkJ1ZyAjMTIxNTAxIC0gW0NTUyBS
ZWdpb25zXSBMYXlvdXQgVGVzdCBmb3Igc2VsZWN0aW9uIGRpcmVjdGlvbjwvYT48L2gxPgotICAg
ICAgICA8cD5TZWxlY3Rpb24gaXMgYmFzZWQgaW4gRE9NIHRyZWUsIHNvIGlmIHlvdSBzZWxlY3Qg
dGV4dCBmcm9tICJvdXRzaWRlIHJlZ2lvbiIgdG8gImluc2lkZSByZWdpb24iIHRoZSBoaWdobGln
aHRlZCBhcmVhIGlzIGV4YWN0bHkgdGhlIG9wcG9zaXRlIHRvIHdoYXQgdGhlIHVzZXIgaXMgYWN0
dWFsbHkgc2VsZWN0aW5nLjwvcD4KKyAgICAgICAgPHA+U2VsZWN0aW9uIGlzIGJhc2VkIGluIERP
TSB0cmVlLCBzbyBpZiB5b3Ugc2VsZWN0IHRleHQgZnJvbSAiZ3JlZW4iIHRvICJyZWQiIHRoZSBo
aWdobGlnaHRlZCBhcmVhIGlzIGV4YWN0bHkgdGhlIG9wcG9zaXRlIHRvIHdoYXQgdGhlIHVzZXIg
aXMgYWN0dWFsbHkgc2VsZWN0aW5nLjwvcD4KICAgICA8L2Rpdj4KIDwvYm9keT4KIDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229126</attachid>
            <date>2014-04-11 05:33:42 -0700</date>
            <delta_ts>2014-04-17 14:16:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131511-20140411143320.patch</filename>
            <type>text/plain</type>
            <size>49958</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3MDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDhjY2QzNGVmMGQxYjcx
ZjMxNDc5NjM5NGI1YWI5MzI1YWRlOGM3Zi4uMDNhNmUzMzcxMDFmOGY3MjUwYTFmMTE5ZDE1NGM2
MzlkNjNjNjBmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDE0LTA0LTExICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgUmVn
aW9uc10gU2VsZWN0aW9uIGhpZ2hsaWdodCBkb2Vzbid0IG1hdGNoIERPTSBzZWxlY3Rpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTUxMQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
aW1wbGVtZW50cyBhIHN1YnRyZWVzIGFwcHJvYWNoIHRvIGZpeCBzZWxlY3Rpb24gaW50ZXJhY3Rp
b24gaW4gQ1NTIFJlZ2lvbnMuCisKKyAgICAgICAgVGhlIGlkZWEgaXMgdG8gZGl2aWRlIHRoZSBS
ZW5kZXIgdHJlZSBpbiBzdWJ0cmVlcy4gT25lIHN1YnRyZWUgd2lsbCBiZSB0aGUgUmVuZGVyVmll
dyAod2hpY2ggaXMgYWx3YXlzIHByZXNlbnQpLAorICAgICAgICB0aGVuIGZvciBlYWNoIFJlbmRl
ckZsb3dUaHJlYWQgKHdoaWNoIGFyZSBjaGlsZHJlbiBvZiBSZW5kZXJWaWV3KSB3ZSB3aWxsIGhh
dmUgYW4gZXh0cmEgc3VidHJlZS4KKworICAgICAgICBGb3IgZWFjaCBzdWJ0cmVlIGl0IGRldGVy
bWluZXMgdGhlIHN0YXJ0IGFuZCBlbmQgcG9zaXRpb25zIGFjY29yZGluZyB0byB0aGUgRE9NIHRy
ZWUuIFNvLCBldmVyeSBzdWJ0cmVlIHdpbGwKKyAgICAgICAgYWx3YXlzIGhhdmUgYSBzdGFydCBh
bmQgZW5kIHBvc2l0aW9uLCBhbmQgdGhlIHNlbGVjdGlvbiBhbGdvcml0aG0gd2lsbCBiZSBhYmxl
IHRvIHJlYWNoIHRoZSBlbmQgZnJvbSB0aGUgc3RhcnQKKyAgICAgICAgd2l0aG91dCBwcm9ibGVt
cyAodGhpcyBhbGxvd3MgdXMgdG8gcmVtb3ZlIHRoZSBjaGFuZ2VzIGludHJvZHVjZWQgaW4gcjE1
NTA1OCkuCisKKyAgICAgICAgVGhlbiBzZWxlY3Rpb24gcmVsYXRlZCBtZXRob2RzIGluIFJlbmRl
clZpZXcgYXJlIGFkYXB0ZWQgdG8gZW5zdXJlIHRoYXQgdGhleSBhcmUgY2FsbGVkIGZvciBlYWNo
IHN1YnRyZWUuIE1ha2luZworICAgICAgICB0aGUgc2VsZWN0aW9uIGhpZ2hsaWdodCB0byBtYXRj
aCBET00gc2VsZWN0aW9uIGFzIGV4cGVjdGVkLgorCisgICAgICAgIFRlc3Q6IGZhc3QvcmVnaW9u
cy9zZWxlY3Rpb24vc2VsZWN0aW5nLXRleHQtaW5jbHVkaW5nLXJlZ2lvbi5odG1sCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkIG5ldyBjbGFzcyBTZWxlY3Rpb25TdWJ0cmVlUm9vdCB0
byBidWlsZCBmaWxlLgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6
IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVy
czogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBE
aXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oOiBJbmhlcml0IGZy
b20gU2VsZWN0aW9uU3VidHJlZVJvb3QuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnNlbGVjdGlvblJvb3QpOiBO
ZXcgbWV0aG9kIHRvIHJldHVybiB0aGUgUmVuZGVyRmxvd1RocmVhZCBpZiBhbnkgb3IgdGhlIFJl
bmRlclZpZXcKKyAgICAgICAgb3RoZXJ3aXNlLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2Jq
ZWN0OjpzZWxlY3Rpb25TdGFydEVuZCk6IElmIGl0J3MgaW5zaWRlIGEgUmVuZGVyRmxvd1RocmVh
ZCB1c2Ugc3BlY2lmaWMgbWV0aG9kIGluc3RlYWQgb2YgdGhlCisgICAgICAgIFJlbmRlclZpZXcn
cyBvbmUuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOiBBZGQgbmV3IG1ldGhv
ZCBzaWduYXR1cmUuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6c2VsZWN0aW9uQm91bmRzKTogQWRhcHQgbWV0aG9kIHRv
IHN1YnRyZWVzIGFwcHJvYWNoLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6c3VidHJl
ZVNlbGVjdGlvbkJvdW5kcyk6IE1vZGlmeSBwcmV2aW91cyBtZXRob2QgaW4gb3JkZXIgdG8gdXNl
IFNlbGVjdGlvblN1YnRyZWVSb290CisgICAgICAgIG9iamVjdHMuCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJWaWV3OjpyZXBhaW50U2VsZWN0aW9uKTogQWRhcHQgbWV0aG9kIHRvIHN1YnRyZWVz
IGFwcHJvYWNoLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6cmVwYWludFN1YnRyZWVT
ZWxlY3Rpb24pOiBNb2RpZnkgcHJldmlvdXMgbWV0aG9kIGluIG9yZGVyIHRvIHVzZSBTZWxlY3Rp
b25TdWJ0cmVlUm9vdAorICAgICAgICBvYmplY3RzLgorICAgICAgICAoZ2V0TmV4dE9yUHJldlJl
bmRlck9iamVjdEJhc2VkT25EaXJlY3Rpb24pOiBEZWxldGVkIG1ldGhvZCBmcm9tIHIxNTUwNTgg
YXMgaXQgaXMgbm90IG5lZWRlZCBhbnltb3JlLiBFYWNoCisgICAgICAgIHN1YnRyZWUgd2lsbCBo
YXZlIHN0YXJ0IGFuZCBlbmQgcG9zaXRpb25zLCBzbyB0aGUgc2VsZWN0aW9uIGFsZ29yaXRobSB3
aWxsIGFsd2F5cyBmaW5kIHRoZSBlbmQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3Ojpz
ZXRTZWxlY3Rpb24pOiBBZGFwdCBtZXRob2QgdG8gc3VidHJlZXMgYXBwcm9hY2guCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJWaWV3OjpzcGxpdFNlbGVjdGlvbkJldHdlZW5TdWJ0cmVlcyk6IERl
dGVybWluZSBzdGFydCBhbmQgZW5kIHBvc2l0aW9ucyBmb3IgZWFjaCBzdWJ0cmVlIGFuZAorICAg
ICAgICBjYWxsIHNldFN1YnRyZWVTZWxlY3Rpb24oKS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clZpZXc6OnNldFN1YnRyZWVTZWxlY3Rpb24pOiBNb2RpZnkgcHJldmlvdXMgbWV0aG9kIGluIG9y
ZGVyIHRvIHVzZSBTZWxlY3Rpb25TdWJ0cmVlUm9vdCBvYmplY3RzLgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJWaWV3Lmg6IEluaGVyaXQgZnJvbSBTZWxlY3Rpb25TdWJ0cmVlUm9vdC4gQWRk
IHNpZ25hdHVyZSBmb3IgbmV3IGhlbHBlciBtZXRob2RzIHJlY2VpdmluZworICAgICAgICBTZWxl
Y3Rpb25TdWJ0cmVlUm9vdCBvYmplY3RzLgorICAgICAgICAqIHJlbmRlcmluZy9TZWxlY3Rpb25T
dWJ0cmVlUm9vdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uU3VidHJl
ZVJvb3Q6OlNlbGVjdGlvblN1YnRyZWVSb290KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlv
blN1YnRyZWVSb290OjpzZWxlY3Rpb25TdGFydEVuZFBvc2l0aW9ucyk6CisgICAgICAgICogcmVu
ZGVyaW5nL1NlbGVjdGlvblN1YnRyZWVSb290Lmg6IEFkZGVkLiBOZXcgY2xhc3MgdG8gaWRlbnRp
Znkgcm9vdCBlbGVtZW50cyBmb3IgdGhlIHN1YnRyZWVzLiBXaXRoIHNvbWUgYmFzaWMKKyAgICAg
ICAgYXR0cmlidXRlcyBhbmQgbWV0aG9kcyB0byBzdG9yZSB0aGUgc3RhcnQgYW5kIGVuZCBwb3Np
dGlvbnMgYW5kIG9mZnNldHMuCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25TdWJ0cmVlUm9v
dDo6c2VsZWN0aW9uU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uU3VidHJlZVJv
b3Q6OnNlbGVjdGlvblN0YXJ0UG9zKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlvblN1YnRy
ZWVSb290OjpzZWxlY3Rpb25FbmQpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uU3VidHJl
ZVJvb3Q6OnNlbGVjdGlvbkVuZFBvcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25TdWJ0
cmVlUm9vdDo6c2V0U2VsZWN0aW9uU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9u
U3VidHJlZVJvb3Q6OnNldFNlbGVjdGlvblN0YXJ0UG9zKToKKyAgICAgICAgKFdlYkNvcmU6OlNl
bGVjdGlvblN1YnRyZWVSb290OjpzZXRTZWxlY3Rpb25FbmQpOgorICAgICAgICAoV2ViQ29yZTo6
U2VsZWN0aW9uU3VidHJlZVJvb3Q6OnNldFNlbGVjdGlvbkVuZFBvcyk6CisKIDIwMTQtMDQtMDkg
IEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29tPgogCiAgICAgICAgIGZ1bGxzY3JlZW4g
Y29udHJvbHMgZmlyc3Qgc2hvdyBhIHBsYXkgYnV0dG9uIGluc3RlYWQgb2YgYSBwYXVzZSBidXR0
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZmQ3OGFkOTIwNjY0ZGViNjQ0YTg2OTVkODg1M2U2
YjI3OTc2N2VlYS4uMDc4NzdhYWVjZjc2ZTgzNTg2OGJhODVhMTczNGRjMDlkMTY1ZjIwOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTIxODksNiArMjE4OSw3IEBAIHNldChXZWJDb3JlX1NPVVJD
RVMKICAgICByZW5kZXJpbmcvUmVuZGVyVlRUQ3VlLmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJX
aWRnZXQuY3BwCiAgICAgcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCisgICAgcmVuZGVyaW5n
L1NlbGVjdGlvblN1YnRyZWVSb290LmNwcAogICAgIHJlbmRlcmluZy9TY3JvbGxCZWhhdmlvci5j
cHAKICAgICByZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dC5jcHAKICAgICByZW5kZXJpbmcvU2lt
cGxlTGluZUxheW91dEZ1bmN0aW9ucy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IGIxMTNiOWMwZDA4MmYwY2Y4NzAxYjM3NjNhMDUx
MmRjZGEzOGIxNzguLmFlN2MxNGI2ZGRlNmQ0MDQ1MGViMjVkMjYwZWFjZjA4NWI5MWMzMmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAt
MTEyODUsNiArMTEyODUsNyBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHJlbmRlcmluZ1xTZWxlY3Rpb25TdWJ0cmVlUm9vdC5jcHAiIC8+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcU2ltcGxlTGluZUxheW91dC5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcU2ltcGxlTGluZUxheW91dEZ1bmN0aW9u
cy5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcVGV4dFBhaW50
U3R5bGUuY3BwIiAvPgpAQCAtMjAwODYsNiArMjAwODcsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRlcldpZGdldC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5ccmVuZGVyaW5nXFJvb3RJbmxpbmVCb3guaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHJlbmRlcmluZ1xTY3JvbGxCZWhhdmlvci5oIiAvPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5ccmVuZGVyaW5nXFNlbGVjdGlvblN1YnRyZWVSb290LmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcU2ltcGxlTGluZUxheW91dC5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFNpbXBsZUxpbmVMYXlvdXRGdW5jdGlv
bnMuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xTaW1wbGVMaW5l
TGF5b3V0UmVzb2x2ZXIuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCA1YjAyMmIxN2I4NmFjZjY0YWI1
NDYzNDFkYjhiODM4YjNmYjI4ZTY4Li44MmFjMThiOWZmNTM1MjY1MmM3YzY2NThiMzMwYzU2Zjll
NzJiZjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC02OTQ2LDYgKzY5NDYsOSBAQAogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm9cVGlsZWRCYWNraW5nU3RvcmVC
YWNrZW5kQ2Fpcm8uY3BwIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm88
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJl
bmRlcmluZ1xTZWxlY3Rpb25TdWJ0cmVlUm9vdC5jcHAiPgorICAgICAgPEZpbHRlcj5yZW5kZXJp
bmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHJlbmRlcmluZ1xTaW1wbGVMaW5lTGF5b3V0LmNwcCI+CiAgICAgICA8RmlsdGVyPnJlbmRlcmlu
ZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTQ3OTMsNiArMTQ3OTYsOSBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFNpbXBsZUxpbmVMYXlvdXRSZXNvbHZl
ci5oIj4KICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+
CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcU2VsZWN0aW9uU3VidHJlZVJv
b3QuaCI+CisgICAgICA8RmlsdGVyPnJlbmRlcmluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRl
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFNpbXBsZUxpbmVMYXlvdXQu
aCI+CiAgICAgICA8RmlsdGVyPnJlbmRlcmluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGU1MmJmMjljMWFmZTg5NTY2NGU0ZWU0N2Q1OThiNTIxOTVkNTI0YzEuLjYxNjU2OGRjOWQz
NDM3ZTg2OGZjNWIxNzQ0NDI4OWI1MjkyMTM3OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU2MTQsNiArNTYxNCw4IEBACiAJ
CUNEQzhCNUFEMTgwNEFFNUQwMDE2RTY4NSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREM4QjVBQzE4
MDRBRTVEMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oICovOyB9OwogCQlD
RENBODI5NjE2NzkxMDBGMDA4NzU3MTQgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb25JT1MubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRENBODI5NDE2
NzkxMDBGMDA4NzU3MTQgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb25JT1MubW0gKi87IH07CiAJ
CUNEQ0E5OEVCMThCMkM4RUIwMEMxMkZGOSAvKiBDRE1Qcml2YXRlTWVkaWFQbGF5ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDQTk4RUExOEIy
QzhFQjAwQzEyRkY5IC8qIENETVByaXZhdGVNZWRpYVBsYXllci5jcHAgKi87IH07CisJCUNEQ0ZB
QkJEMThDMEFGNzgwMDZGODQ1MCAvKiBTZWxlY3Rpb25TdWJ0cmVlUm9vdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDRkFCQkIxOEMwQUUzMTAwNkY4
NDUwIC8qIFNlbGVjdGlvblN1YnRyZWVSb290LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RDRkFCQkUxOEMwQUY4NDAwNkY4NDUwIC8qIFNlbGVj
dGlvblN1YnRyZWVSb290LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEQ0ZBQkJDMThDMEFGMTkwMDZGODQ1MCAvKiBTZWxlY3Rpb25TdWJ0cmVlUm9v
dC5jcHAgKi87IH07CiAJCUNERDUyNUQ3MTQ1QjZERDAwMDhEMjA0RCAvKiBKU0hUTUxNZWRpYUVs
ZW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0RGNjVDQ0MxNDVCNkFGRTAwQzRDN0FBIC8qIEpTSFRNTE1lZGlhRWxlbWVudEN1c3Rv
bS5jcHAgKi87IH07CiAJCUNERDcwODk2MTgzNTlGNkYwMDJCM0RDNiAvKiBTYW1wbGVNYXAuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RENzA4OTQx
ODM1OUY2RTAwMkIzREM2IC8qIFNhbXBsZU1hcC5jcHAgKi87IH07CiAJCUNERDcwODk3MTgzNTlG
NkYwMDJCM0RDNiAvKiBTYW1wbGVNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENERDcwODk1MTgzNTlGNkYwMDJCM0RDNiAvKiBTYW1wbGVNYXAuaCAq
LzsgfTsKQEAgLTEyOTY3LDYgKzEyOTY5LDggQEAKIAkJQ0RDQTk4RTkxOEIyQzhEMDAwQzEyRkY5
IC8qIENETVByaXZhdGVNZWRpYVBsYXllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDRE1Qcml2YXRlTWVkaWFQbGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0RDQTk4RUExOEIyQzhFQjAwQzEyRkY5IC8qIENETVByaXZhdGVNZWRpYVBsYXllci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDRE1Qcml2YXRlTWVkaWFQbGF5
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRENFNUNEMDE0NjMzQkM5MDBE
NDdDQ0EgLyogRXZlbnRUYXJnZXRGYWN0b3J5LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEV2
ZW50VGFyZ2V0RmFjdG9yeS5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RDRkFC
QkIxOEMwQUUzMTAwNkY4NDUwIC8qIFNlbGVjdGlvblN1YnRyZWVSb290LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlbGVjdGlvblN1YnRyZWVSb290Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNEQ0ZBQkJDMThDMEFGMTkwMDZGODQ1MCAvKiBTZWxlY3Rpb25T
dWJ0cmVlUm9vdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZWxl
Y3Rpb25TdWJ0cmVlUm9vdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERDFF
NTI1MTY3QkE1NjQwMENFODIwQiAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREQ3MDg5NDE4MzU5RjZFMDAyQjNEQzYgLyogU2Ft
cGxlTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNhbXBsZU1h
cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERDcwODk1MTgzNTlGNkYwMDJC
M0RDNiAvKiBTYW1wbGVNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Ft
cGxlTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjA4OCw2ICsyMjA5Miw4
IEBACiAJCQkJQThDRkY1REEwQTE1NUEwNTAwMEE0MjM0IC8qIFJvb3RJbmxpbmVCb3guaCAqLywK
IAkJCQk1RDkyNUI2NTBGNjRENEREMDBCODQ3RjAgLyogU2Nyb2xsQmVoYXZpb3IuY3BwICovLAog
CQkJCTVEOTI1QjY2MEY2NEQ0REQwMEI4NDdGMCAvKiBTY3JvbGxCZWhhdmlvci5oICovLAorCQkJ
CUNEQ0ZBQkJDMThDMEFGMTkwMDZGODQ1MCAvKiBTZWxlY3Rpb25TdWJ0cmVlUm9vdC5jcHAgKi8s
CisJCQkJQ0RDRkFCQkIxOEMwQUUzMTAwNkY4NDUwIC8qIFNlbGVjdGlvblN1YnRyZWVSb290Lmgg
Ki8sCiAJCQkJRTQ4OTQ0QTAxODBCNTdEODAwRjE2NUQ4IC8qIFNpbXBsZUxpbmVMYXlvdXQuY3Bw
ICovLAogCQkJCUU0ODk0NEExMTgwQjU3RDgwMEYxNjVEOCAvKiBTaW1wbGVMaW5lTGF5b3V0Lmgg
Ki8sCiAJCQkJRTRFOUIxMUExODE0NTY5MjAwM0FDQ0RGIC8qIFNpbXBsZUxpbmVMYXlvdXRGdW5j
dGlvbnMuY3BwICovLApAQCAtMjU3OTksNiArMjU4MDUsNyBAQAogCQkJCUIyMjI3QTU3MEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdQYXJzZXJVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJE
M0EwRTM2MTNBN0Q3NjEwMEU4NUFGMCAvKiBTVkdQYXJzaW5nRXJyb3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg0QzY3ODREMTIxNDgxNDcwMEE5MjkwMiAvKiBTVkdQYXRoQmxlbmRlci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQ0RDRkFCQkQxOEMwQUY3ODAwNkY4NDUwIC8qIFNlbGVjdGlvblN1YnRy
ZWVSb290LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDc2QzlFQjExREY2QTI5MDA1NTVCMDIgLyog
U1ZHUGF0aEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0MTlEMkE3MTIwRDkyRDAwMDE0
MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQxOUQyQTkx
MjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNzkyMyw2ICsyNzkzMCw3IEBACiAJCQkJQkNFMUM0M0IwRDk4MzBEMzAwM0IwMkYy
IC8qIEpTTG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFMUM0NDAwRDk4MzBGNDAw
M0IwMkYyIC8qIEpTTG9jYXRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOEZBQzc3
NEQxMTk4NzJDQjAwMTVBRTk0IC8qIEpTTWFpblRocmVhZEV4ZWNTdGF0ZS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlDRENGQUJCRTE4QzBBRjg0MDA2Rjg0NTAgLyogU2VsZWN0aW9uU3VidHJlZVJv
b3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QyN0Y2RTUxNDU3Njg1QTAwNzgyMDdEIC8qIEpT
TWVkaWFDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQUI2RDJEMTdDODE0RUUw
MEM2MEIzNCAvKiBKU01lZGlhQ29udHJvbHNIb3N0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZE
MjNBMTI1MTNGNUZBNTkwMEY2NzAwMSAvKiBKU01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGbG93VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1Ro
cmVhZC5oCmluZGV4IGZhMDc5OTUyZWEwYmIzMGMxY2NjZGE1MTE4ZGEwOTNkMjRhODk0ZGEuLmYw
YjNhN2I5OWExMjg0ZTJkNGIwOTdiNzdmZWZmNTQ0MTA4OWZjMzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaApAQCAtMzIsNiArMzIsNyBAQAogCiAKICNp
bmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKKyNpbmNsdWRlICJTZWxlY3Rpb25TdWJ0cmVlUm9v
dC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0
SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CkBAIC01Niw3ICs1Nyw3IEBA
IHR5cGVkZWYgSGFzaE1hcDxSZW5kZXJMYXllciosIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50Kj4g
TGF5ZXJUb1JlZ2lvbk1hcDsKIC8vIGFuZCBub2RlQXRQb2ludCBtZXRob2RzIHRvIHRoaXMgb2Jq
ZWN0LiBFYWNoIFJlbmRlclJlZ2lvbiB3aWxsIGFjdHVhbGx5IGJlIGEgdmlld1BvcnQKIC8vIG9m
IHRoZSBSZW5kZXJGbG93VGhyZWFkLgogCi1jbGFzcyBSZW5kZXJGbG93VGhyZWFkOiBwdWJsaWMg
UmVuZGVyQmxvY2tGbG93IHsKK2NsYXNzIFJlbmRlckZsb3dUaHJlYWQ6IHB1YmxpYyBSZW5kZXJC
bG9ja0Zsb3csIHB1YmxpYyBTZWxlY3Rpb25TdWJ0cmVlUm9vdCB7CiBwdWJsaWM6CiAgICAgdmly
dHVhbCB+UmVuZGVyRmxvd1RocmVhZCgpIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwCmluZGV4IDE2OWFmOGEwZGE3NzU2OWRhYzk1YWVhYmU2YzIzNDQ4MDQ1
OGQ2M2EuLjk3MDczOTg3ZmNjOTRmZTY2Mzk5OGFlOTE4NGM1YTQ0M2Q1ZDUxOTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0xNTQwLDkgKzE1NDAsMTgg
QEAgQ29sb3IgUmVuZGVyT2JqZWN0OjpzZWxlY3Rpb25FbXBoYXNpc01hcmtDb2xvcigpIGNvbnN0
CiAgICAgcmV0dXJuIHNlbGVjdGlvbkNvbG9yKENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lz
Q29sb3IpOwogfQogCitTZWxlY3Rpb25TdWJ0cmVlUm9vdCogUmVuZGVyT2JqZWN0OjpzZWxlY3Rp
b25Sb290KCkgY29uc3QKK3sKKyAgICBSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkID0gZmxv
d1RocmVhZENvbnRhaW5pbmdCbG9jaygpOworICAgIGlmIChmbG93VGhyZWFkKQorICAgICAgICBy
ZXR1cm4gZmxvd1RocmVhZDsKKworICAgIHJldHVybiAmdmlldygpOworfQorCiB2b2lkIFJlbmRl
ck9iamVjdDo6c2VsZWN0aW9uU3RhcnRFbmQoaW50JiBzcG9zLCBpbnQmIGVwb3MpIGNvbnN0CiB7
Ci0gICAgdmlldygpLnNlbGVjdGlvblN0YXJ0RW5kKHNwb3MsIGVwb3MpOworICAgIHNlbGVjdGlv
blJvb3QoKS0+c2VsZWN0aW9uU3RhcnRFbmRQb3NpdGlvbnMoc3BvcywgZXBvcyk7CiB9CiAKIHZv
aWQgUmVuZGVyT2JqZWN0OjpoYW5kbGVEeW5hbWljRmxvYXRQb3NpdGlvbkNoYW5nZSgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggNDIzZTNiNDhkOWQ4ZDM0MTEw
OGI3ZWQwYWE5OWE3YTNkNjZlZGQ0NS4uYWNhMjY1NTQwMGQ3MTM2NGUwZmJkODIxZmYwMDM5YjJl
ZWI1NGE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtNjAs
NiArNjAsNyBAQCBjbGFzcyBSZW5kZXJMYXllcjsKIGNsYXNzIFJlbmRlckxheWVyTW9kZWxPYmpl
Y3Q7CiBjbGFzcyBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ7CiBjbGFzcyBSZW5kZXJUaGVtZTsKK2Ns
YXNzIFNlbGVjdGlvblN1YnRyZWVSb290OwogY2xhc3MgVHJhbnNmb3JtU3RhdGU7CiBjbGFzcyBW
aXNpYmxlUG9zaXRpb247CiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtODQ5LDYgKzg1MCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFuZ2VkKENhY2hlZEltYWdlKiwgY29uc3Qg
SW50UmVjdCogPSAwKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFuZ2VkKFdy
YXBwZWRJbWFnZVB0ciwgY29uc3QgSW50UmVjdCogPSAwKSB7IH0KIAorICAgIFNlbGVjdGlvblN1
YnRyZWVSb290KiBzZWxlY3Rpb25Sb290KCkgY29uc3Q7CiAgICAgdm9pZCBzZWxlY3Rpb25TdGFy
dEVuZChpbnQmIHNwb3MsIGludCYgZXBvcykgY29uc3Q7CiAgICAgCiAgICAgdm9pZCByZW1vdmVG
cm9tUGFyZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Vmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXgg
ZjIzMGQzOWZiNjc4ZDBjMzY0OGNkNWMxOWNmMzM1ZmVmMzNhMmYwNy4uNTFkOTI3MTJhZmRjZTEw
YjU2NmU4ZTk4ZjgwNmQ3YzYyYjJjMjIwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkhUTUxJRnJhbWVFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIkltYWdlUXVhbGl0eUNv
bnRyb2xsZXIuaCIKKyNpbmNsdWRlICJOb2RlVHJhdmVyc2FsLmgiCiAjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlJlbmRlckdlb21ldHJ5TWFwLmgiCiAjaW5jbHVkZSAiUmVuZGVySXRlcmF0
b3IuaCIKQEAgLTY1OSwxMyArNjYwLDI3IEBAIHN0YXRpYyBSZW5kZXJPYmplY3QqIHJlbmRlcmVy
QWZ0ZXJQb3NpdGlvbihSZW5kZXJPYmplY3QqIG9iamVjdCwgdW5zaWduZWQgb2Zmc2V0CiAKIElu
dFJlY3QgUmVuZGVyVmlldzo6c2VsZWN0aW9uQm91bmRzKGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRl
bnQpIGNvbnN0CiB7CisgICAgTGF5b3V0UmVjdCBzZWxSZWN0ID0gc3VidHJlZVNlbGVjdGlvbkJv
dW5kcyh0aGlzLCBjbGlwVG9WaXNpYmxlQ29udGVudCk7CisKKyAgICBpZiAobV9mbG93VGhyZWFk
Q29udHJvbGxlcikgeworICAgICAgICBmb3IgKGF1dG8qIGZsb3dUaHJlYWQgOiAqbV9mbG93VGhy
ZWFkQ29udHJvbGxlci0+cmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdCgpKSB7CisgICAgICAgICAg
ICBMYXlvdXRSZWN0IGN1cnJSZWN0ID0gc3VidHJlZVNlbGVjdGlvbkJvdW5kcyhmbG93VGhyZWFk
LCBjbGlwVG9WaXNpYmxlQ29udGVudCk7CisgICAgICAgICAgICBzZWxSZWN0LnVuaXRlKGN1cnJS
ZWN0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBwaXhlbFNuYXBwZWRJbnRSZWN0
KHNlbFJlY3QpOworfQorCitMYXlvdXRSZWN0IFJlbmRlclZpZXc6OnN1YnRyZWVTZWxlY3Rpb25C
b3VuZHMoY29uc3QgU2VsZWN0aW9uU3VidHJlZVJvb3QqIHJvb3QsIGJvb2wgY2xpcFRvVmlzaWJs
ZUNvbnRlbnQpIGNvbnN0Cit7CiAgICAgdHlwZWRlZiBIYXNoTWFwPFJlbmRlck9iamVjdCosIHN0
ZDo6dW5pcXVlX3B0cjxSZW5kZXJTZWxlY3Rpb25JbmZvPj4gU2VsZWN0aW9uTWFwOwogICAgIFNl
bGVjdGlvbk1hcCBzZWxlY3RlZE9iamVjdHM7CiAKLSAgICBSZW5kZXJPYmplY3QqIG9zID0gbV9z
ZWxlY3Rpb25TdGFydDsKLSAgICBSZW5kZXJPYmplY3QqIHN0b3AgPSByZW5kZXJlckFmdGVyUG9z
aXRpb24obV9zZWxlY3Rpb25FbmQsIG1fc2VsZWN0aW9uRW5kUG9zKTsKKyAgICBSZW5kZXJPYmpl
Y3QqIG9zID0gcm9vdC0+c2VsZWN0aW9uU3RhcnQoKTsKKyAgICBSZW5kZXJPYmplY3QqIHN0b3Ag
PSByZW5kZXJlckFmdGVyUG9zaXRpb24ocm9vdC0+c2VsZWN0aW9uRW5kKCksIHJvb3QtPnNlbGVj
dGlvbkVuZFBvcygpKTsKICAgICB3aGlsZSAob3MgJiYgb3MgIT0gc3RvcCkgewotICAgICAgICBp
ZiAoKG9zLT5jYW5CZVNlbGVjdGlvbkxlYWYoKSB8fCBvcyA9PSBtX3NlbGVjdGlvblN0YXJ0IHx8
IG9zID09IG1fc2VsZWN0aW9uRW5kKSAmJiBvcy0+c2VsZWN0aW9uU3RhdGUoKSAhPSBTZWxlY3Rp
b25Ob25lKSB7CisgICAgICAgIGlmICgob3MtPmNhbkJlU2VsZWN0aW9uTGVhZigpIHx8IG9zID09
IHJvb3QtPnNlbGVjdGlvblN0YXJ0KCkgfHwgb3MgPT0gcm9vdC0+c2VsZWN0aW9uRW5kKCkpICYm
IG9zLT5zZWxlY3Rpb25TdGF0ZSgpICE9IFNlbGVjdGlvbk5vbmUpIHsKICAgICAgICAgICAgIC8v
IEJsb2NrcyBhcmUgcmVzcG9uc2libGUgZm9yIHBhaW50aW5nIGxpbmUgZ2FwcyBhbmQgbWFyZ2lu
IGdhcHMuIFRoZXkgbXVzdCBiZSBleGFtaW5lZCBhcyB3ZWxsLgogICAgICAgICAgICAgc2VsZWN0
ZWRPYmplY3RzLnNldChvcywgc3RkOjptYWtlX3VuaXF1ZTxSZW5kZXJTZWxlY3Rpb25JbmZvPihv
cywgY2xpcFRvVmlzaWJsZUNvbnRlbnQpKTsKICAgICAgICAgICAgIFJlbmRlckJsb2NrKiBjYiA9
IG9zLT5jb250YWluaW5nQmxvY2soKTsKQEAgLTY5NCwxNiArNzA5LDI2IEBAIEludFJlY3QgUmVu
ZGVyVmlldzo6c2VsZWN0aW9uQm91bmRzKGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQpIGNvbnN0
CiAgICAgICAgIH0KICAgICAgICAgc2VsUmVjdC51bml0ZShjdXJyUmVjdCk7CiAgICAgfQotICAg
IHJldHVybiBwaXhlbFNuYXBwZWRJbnRSZWN0KHNlbFJlY3QpOworICAgIHJldHVybiBzZWxSZWN0
OwogfQogCiB2b2lkIFJlbmRlclZpZXc6OnJlcGFpbnRTZWxlY3Rpb24oKSBjb25zdAogeworICAg
IHJlcGFpbnRTdWJ0cmVlU2VsZWN0aW9uKHRoaXMpOworCisgICAgaWYgKG1fZmxvd1RocmVhZENv
bnRyb2xsZXIpIHsKKyAgICAgICAgZm9yIChhdXRvKiBmbG93VGhyZWFkIDogKm1fZmxvd1RocmVh
ZENvbnRyb2xsZXItPnJlbmRlck5hbWVkRmxvd1RocmVhZExpc3QoKSkKKyAgICAgICAgICAgIHJl
cGFpbnRTdWJ0cmVlU2VsZWN0aW9uKGZsb3dUaHJlYWQpOworICAgIH0KK30KKwordm9pZCBSZW5k
ZXJWaWV3OjpyZXBhaW50U3VidHJlZVNlbGVjdGlvbihjb25zdCBTZWxlY3Rpb25TdWJ0cmVlUm9v
dCogcm9vdCkgY29uc3QKK3sKICAgICBIYXNoU2V0PFJlbmRlckJsb2NrKj4gcHJvY2Vzc2VkQmxv
Y2tzOwogCi0gICAgUmVuZGVyT2JqZWN0KiBlbmQgPSByZW5kZXJlckFmdGVyUG9zaXRpb24obV9z
ZWxlY3Rpb25FbmQsIG1fc2VsZWN0aW9uRW5kUG9zKTsKLSAgICBmb3IgKFJlbmRlck9iamVjdCog
byA9IG1fc2VsZWN0aW9uU3RhcnQ7IG8gJiYgbyAhPSBlbmQ7IG8gPSBvLT5uZXh0SW5QcmVPcmRl
cigpKSB7Ci0gICAgICAgIGlmICghby0+Y2FuQmVTZWxlY3Rpb25MZWFmKCkgJiYgbyAhPSBtX3Nl
bGVjdGlvblN0YXJ0ICYmIG8gIT0gbV9zZWxlY3Rpb25FbmQpCisgICAgUmVuZGVyT2JqZWN0KiBl
bmQgPSByZW5kZXJlckFmdGVyUG9zaXRpb24ocm9vdC0+c2VsZWN0aW9uRW5kKCksIHJvb3QtPnNl
bGVjdGlvbkVuZFBvcygpKTsKKyAgICBmb3IgKFJlbmRlck9iamVjdCogbyA9IHJvb3QtPnNlbGVj
dGlvblN0YXJ0KCk7IG8gJiYgbyAhPSBlbmQ7IG8gPSBvLT5uZXh0SW5QcmVPcmRlcigpKSB7Cisg
ICAgICAgIGlmICghby0+Y2FuQmVTZWxlY3Rpb25MZWFmKCkgJiYgbyAhPSByb290LT5zZWxlY3Rp
b25TdGFydCgpICYmIG8gIT0gcm9vdC0+c2VsZWN0aW9uRW5kKCkpCiAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgaWYgKG8tPnNlbGVjdGlvblN0YXRlKCkgPT0gU2VsZWN0aW9uTm9uZSkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtNzMyLDI3ICs3NTcsNiBAQCB2b2lkIFJlbmRlclZp
ZXc6OnNldE1heGltYWxPdXRsaW5lU2l6ZShpbnQgbykKICAgICB9CiB9CiAKLS8vIFdoZW4gZXhw
bG9yaW5nIHRoZSBSZW5kZXJUcmVlIGxvb2tpbmcgZm9yIHRoZSBub2RlcyBpbnZvbHZlZCBpbiB0
aGUgU2VsZWN0aW9uLCBzb21ldGltZXMgaXQncwotLy8gcmVxdWlyZWQgdG8gY2hhbmdlIHRoZSB0
cmF2ZXJzaW5nIGRpcmVjdGlvbiBiZWNhdXNlIHRoZSAic3RhcnQiIHBvc2l0aW9uIGlzIGJlbG93
IHRoZSAiZW5kIiBvbmUuCi1zdGF0aWMgaW5saW5lIFJlbmRlck9iamVjdCogZ2V0TmV4dE9yUHJl
dlJlbmRlck9iamVjdEJhc2VkT25EaXJlY3Rpb24oY29uc3QgUmVuZGVyT2JqZWN0KiBvLCBjb25z
dCBSZW5kZXJPYmplY3QqIHN0b3AsIGJvb2wmIGNvbnRpbnVlRXhwbG9yaW5nLCBib29sJiBleHBs
b3JpbmdCYWNrd2FyZHMpCi17Ci0gICAgUmVuZGVyT2JqZWN0KiBuZXh0OwotICAgIGlmIChleHBs
b3JpbmdCYWNrd2FyZHMpIHsKLSAgICAgICAgbmV4dCA9IG8tPnByZXZpb3VzSW5QcmVPcmRlcigp
OwotICAgICAgICBjb250aW51ZUV4cGxvcmluZyA9IG5leHQgJiYgIShuZXh0KS0+aXNSZW5kZXJW
aWV3KCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbmV4dCA9IG8tPm5leHRJblByZU9yZGVyKCk7
Ci0gICAgICAgIGNvbnRpbnVlRXhwbG9yaW5nID0gbmV4dCAmJiBuZXh0ICE9IHN0b3A7Ci0gICAg
ICAgIGV4cGxvcmluZ0JhY2t3YXJkcyA9ICFuZXh0ICYmIChuZXh0ICE9IHN0b3ApOwotICAgICAg
ICBpZiAoZXhwbG9yaW5nQmFja3dhcmRzKSB7Ci0gICAgICAgICAgICBuZXh0ID0gc3RvcC0+cHJl
dmlvdXNJblByZU9yZGVyKCk7Ci0gICAgICAgICAgICBjb250aW51ZUV4cGxvcmluZyA9IG5leHQg
JiYgIW5leHQtPmlzUmVuZGVyVmlldygpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJu
IG5leHQ7Ci19Ci0KIHZvaWQgUmVuZGVyVmlldzo6c2V0U2VsZWN0aW9uKFJlbmRlck9iamVjdCog
c3RhcnQsIGludCBzdGFydFBvcywgUmVuZGVyT2JqZWN0KiBlbmQsIGludCBlbmRQb3MsIFNlbGVj
dGlvblJlcGFpbnRNb2RlIGJsb2NrUmVwYWludE1vZGUpCiB7CiAgICAgLy8gTWFrZSBzdXJlIGJv
dGggb3VyIHN0YXJ0IGFuZCBlbmQgb2JqZWN0cyBhcmUgZGVmaW5lZC4KQEAgLTc2NywxMCArNzcx
LDk0IEBAIHZvaWQgUmVuZGVyVmlldzo6c2V0U2VsZWN0aW9uKFJlbmRlck9iamVjdCogc3RhcnQs
IGludCBzdGFydFBvcywgUmVuZGVyT2JqZWN0KiBlCiAgICAgICAgIG1fc2VsZWN0aW9uRW5kID09
IGVuZCAmJiBtX3NlbGVjdGlvbkVuZFBvcyA9PSBlbmRQb3MgJiYgIWNhcmV0Q2hhbmdlZCkKICAg
ICAgICAgcmV0dXJuOwogCisgICAgLy8gU2V0IGdsb2JhbCBwb3NpdGlvbnMgZm9yIG5ldyBzZWxl
Y3Rpb24KKyAgICBtX3NlbGVjdGlvblN0YXJ0ID0gc3RhcnQ7CisgICAgbV9zZWxlY3Rpb25TdGFy
dFBvcyA9IHN0YXJ0UG9zOworICAgIG1fc2VsZWN0aW9uRW5kID0gZW5kOworICAgIG1fc2VsZWN0
aW9uRW5kUG9zID0gZW5kUG9zOworCisgICAgLy8gSWYgdGhlcmUgaXMgbm8gUmVuZGVyRmxvd1Ro
cmVhZHMgd2UgZm9sbG93IHRoZSByZWd1bGFyIHNlbGVjdGlvbgorICAgIGlmICghaGFzUmVuZGVy
TmFtZWRGbG93VGhyZWFkcygpKSB7CisgICAgICAgIHNldFN1YnRyZWVTZWxlY3Rpb24odGhpcywg
c3RhcnQsIHN0YXJ0UG9zLCBlbmQsIGVuZFBvcywgYmxvY2tSZXBhaW50TW9kZSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBzcGxpdFNlbGVjdGlvbkJldHdlZW5TdWJ0cmVlcyhzdGFy
dCwgc3RhcnRQb3MsIGVuZCwgZW5kUG9zLCBibG9ja1JlcGFpbnRNb2RlKTsKK30KKwordm9pZCBS
ZW5kZXJWaWV3OjpzcGxpdFNlbGVjdGlvbkJldHdlZW5TdWJ0cmVlcyhSZW5kZXJPYmplY3QqIHN0
YXJ0LCBpbnQgc3RhcnRQb3MsIFJlbmRlck9iamVjdCogZW5kLCBpbnQgZW5kUG9zLCBTZWxlY3Rp
b25SZXBhaW50TW9kZSBibG9ja1JlcGFpbnRNb2RlKQoreworICAgIC8vIEdldCByYW5nZXMKKyAg
ICB0eXBlZGVmIEhhc2hNYXA8U2VsZWN0aW9uU3VidHJlZVJvb3QqLCBSZWZQdHI8UmFuZ2U+ID4g
UmVuZGVyU3VidHJlZXNNYXA7CisgICAgUmVuZGVyU3VidHJlZXNNYXAgcmVuZGVyU3VidHJlZXNN
YXA7CisKKyAgICAvLyBJbml0aWFsaXphdGUgbWFwIGZvciBSZW5kZXJWaWV3IGFuZCBhbGwgUmVu
ZGVyRmxvd1RocmVhZHMKKyAgICByZW5kZXJTdWJ0cmVlc01hcC5zZXQodGhpcywgbnVsbHB0cik7
CisgICAgZm9yIChhdXRvKiBmbG93VGhyZWFkIDogKmZsb3dUaHJlYWRDb250cm9sbGVyKCkucmVu
ZGVyTmFtZWRGbG93VGhyZWFkTGlzdCgpKQorICAgICAgICByZW5kZXJTdWJ0cmVlc01hcC5zZXQo
Zmxvd1RocmVhZCwgbnVsbHB0cik7CisKKyAgICBpZiAoc3RhcnQgJiYgZW5kKSB7CisgICAgICAg
IFJlZlB0cjxSYW5nZT4gaW5pdGlhbFJhbmdlID0gUmFuZ2U6OmNyZWF0ZShkb2N1bWVudCgpLCBz
dGFydC0+bm9kZSgpLCBzdGFydFBvcywgZW5kLT5ub2RlKCksIGVuZFBvcyk7CisKKyAgICAgICAg
Tm9kZSogc3RhcnROb2RlID0gaW5pdGlhbFJhbmdlLT5zdGFydENvbnRhaW5lcigpOworICAgICAg
ICBOb2RlKiBlbmROb2RlID0gaW5pdGlhbFJhbmdlLT5lbmRDb250YWluZXIoKTsKKyAgICAgICAg
Tm9kZSogc3RvcE5vZGUgPSBpbml0aWFsUmFuZ2UtPnBhc3RMYXN0Tm9kZSgpOworCisgICAgICAg
IGZvciAoTm9kZSogbm9kZSA9IHN0YXJ0Tm9kZTsgbm9kZSAhPSBzdG9wTm9kZTsgbm9kZSA9IE5v
ZGVUcmF2ZXJzYWw6Om5leHQobm9kZSkpIHsKKyAgICAgICAgICAgIFJlbmRlck9iamVjdCogcmVu
ZGVyZXIgPSBub2RlLT5yZW5kZXJlcigpOworICAgICAgICAgICAgaWYgKCFyZW5kZXJlciB8fCAh
cmVuZGVyZXItPmNhbkJlU2VsZWN0aW9uTGVhZigpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworCisgICAgICAgICAgICBTZWxlY3Rpb25TdWJ0cmVlUm9vdCogcm9vdCA9IHJlbmRlcmVyLT5z
ZWxlY3Rpb25Sb290KCk7CisgICAgICAgICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gcmVuZGVy
U3VidHJlZXNNYXAuZ2V0KHJvb3QpOworICAgICAgICAgICAgaWYgKCFyYW5nZSkgeworICAgICAg
ICAgICAgICAgIHJhbmdlID0gUmFuZ2U6OmNyZWF0ZShkb2N1bWVudCgpKTsKKworICAgICAgICAg
ICAgICAgIGlmIChub2RlID09IHN0YXJ0Tm9kZSkKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2Ut
PnNldFN0YXJ0KG5vZGUsIHN0YXJ0UG9zKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgICAgIHJhbmdlLT5zZXRTdGFydChub2RlLCAwKTsKKworICAgICAgICAgICAgICAg
IHJlbmRlclN1YnRyZWVzTWFwLnNldChyb290LCByYW5nZSk7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGlmIChub2RlID09IGVuZE5vZGUpCisgICAgICAgICAgICAgICAgcmFuZ2UtPnNl
dEVuZChub2RlLCBlbmRQb3MpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJh
bmdlLT5zZXRFbmQobm9kZSwgbm9kZS0+b2Zmc2V0SW5DaGFyYWN0ZXJzKCkgPyBub2RlLT5tYXhD
aGFyYWN0ZXJPZmZzZXQoKSA6IG5vZGUtPmNoaWxkTm9kZUNvdW50KCkpOworICAgICAgICB9Cisg
ICAgfQorCisgICAgZm9yIChSZW5kZXJTdWJ0cmVlc01hcDo6aXRlcmF0b3IgaSA9IHJlbmRlclN1
YnRyZWVzTWFwLmJlZ2luKCk7IGkgIT0gcmVuZGVyU3VidHJlZXNNYXAuZW5kKCk7ICsraSkgewor
ICAgICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gaS0+dmFsdWU7CisKKyAgICAgICAgUmVuZGVy
T2JqZWN0KiBuZXdTdGFydDsKKyAgICAgICAgaW50IG5ld1N0YXJ0UG9zOworICAgICAgICBSZW5k
ZXJPYmplY3QqIG5ld0VuZDsKKyAgICAgICAgaW50IG5ld0VuZFBvczsKKworICAgICAgICBpZiAo
cmFuZ2UpIHsKKyAgICAgICAgICAgIG5ld1N0YXJ0ID0gcmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCkt
PnJlbmRlcmVyKCk7CisgICAgICAgICAgICBuZXdTdGFydFBvcyA9IHJhbmdlLT5zdGFydE9mZnNl
dCgpOworICAgICAgICAgICAgbmV3RW5kID0gcmFuZ2UtPmVuZENvbnRhaW5lcigpLT5yZW5kZXJl
cigpOworICAgICAgICAgICAgbmV3RW5kUG9zID0gcmFuZ2UtPmVuZE9mZnNldCgpOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgbmV3U3RhcnQgPSAwOworICAgICAgICAgICAgbmV3U3Rh
cnRQb3MgPSAtMTsKKyAgICAgICAgICAgIG5ld0VuZCA9IDA7CisgICAgICAgICAgICBuZXdFbmRQ
b3MgPSAtMTsKKyAgICAgICAgfQorCisgICAgICAgIHNldFN1YnRyZWVTZWxlY3Rpb24oaS0+a2V5
LCBuZXdTdGFydCwgbmV3U3RhcnRQb3MsIG5ld0VuZCwgbmV3RW5kUG9zLCBibG9ja1JlcGFpbnRN
b2RlKTsKKyAgICB9Cit9CisKK3ZvaWQgUmVuZGVyVmlldzo6c2V0U3VidHJlZVNlbGVjdGlvbihT
ZWxlY3Rpb25TdWJ0cmVlUm9vdCogcm9vdCwgUmVuZGVyT2JqZWN0KiBzdGFydCwgaW50IHN0YXJ0
UG9zLCBSZW5kZXJPYmplY3QqIGVuZCwgaW50IGVuZFBvcywgU2VsZWN0aW9uUmVwYWludE1vZGUg
YmxvY2tSZXBhaW50TW9kZSkKK3sKICAgICAvLyBSZWNvcmQgdGhlIG9sZCBzZWxlY3RlZCBvYmpl
Y3RzLiAgVGhlc2Ugd2lsbCBiZSB1c2VkIGxhdGVyCiAgICAgLy8gd2hlbiB3ZSBjb21wYXJlIGFn
YWluc3QgdGhlIG5ldyBzZWxlY3RlZCBvYmplY3RzLgotICAgIGludCBvbGRTdGFydFBvcyA9IG1f
c2VsZWN0aW9uU3RhcnRQb3M7Ci0gICAgaW50IG9sZEVuZFBvcyA9IG1fc2VsZWN0aW9uRW5kUG9z
OworICAgIGludCBvbGRTdGFydFBvcyA9IHJvb3QtPnNlbGVjdGlvblN0YXJ0UG9zKCk7CisgICAg
aW50IG9sZEVuZFBvcyA9IHJvb3QtPnNlbGVjdGlvbkVuZFBvcygpOwogCiAgICAgLy8gT2JqZWN0
cyBlYWNoIGhhdmUgYSBzaW5nbGUgc2VsZWN0aW9uIHJlY3QgdG8gZXhhbWluZS4KICAgICB0eXBl
ZGVmIEhhc2hNYXA8UmVuZGVyT2JqZWN0Kiwgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclNlbGVjdGlv
bkluZm8+PiBTZWxlY3RlZE9iamVjdE1hcDsKQEAgLTc4NCwxMiArODcyLDExIEBAIHZvaWQgUmVu
ZGVyVmlldzo6c2V0U2VsZWN0aW9uKFJlbmRlck9iamVjdCogc3RhcnQsIGludCBzdGFydFBvcywg
UmVuZGVyT2JqZWN0KiBlCiAgICAgU2VsZWN0ZWRCbG9ja01hcCBvbGRTZWxlY3RlZEJsb2NrczsK
ICAgICBTZWxlY3RlZEJsb2NrTWFwIG5ld1NlbGVjdGVkQmxvY2tzOwogCi0gICAgUmVuZGVyT2Jq
ZWN0KiBvcyA9IG1fc2VsZWN0aW9uU3RhcnQ7Ci0gICAgUmVuZGVyT2JqZWN0KiBzdG9wID0gcmVu
ZGVyZXJBZnRlclBvc2l0aW9uKG1fc2VsZWN0aW9uRW5kLCBtX3NlbGVjdGlvbkVuZFBvcyk7Ci0g
ICAgYm9vbCBleHBsb3JpbmdCYWNrd2FyZHMgPSBmYWxzZTsKLSAgICBib29sIGNvbnRpbnVlRXhw
bG9yaW5nID0gb3MgJiYgKG9zICE9IHN0b3ApOwotICAgIHdoaWxlIChjb250aW51ZUV4cGxvcmlu
ZykgewotICAgICAgICBpZiAoKG9zLT5jYW5CZVNlbGVjdGlvbkxlYWYoKSB8fCBvcyA9PSBtX3Nl
bGVjdGlvblN0YXJ0IHx8IG9zID09IG1fc2VsZWN0aW9uRW5kKSAmJiBvcy0+c2VsZWN0aW9uU3Rh
dGUoKSAhPSBTZWxlY3Rpb25Ob25lKSB7CisgICAgUmVuZGVyT2JqZWN0KiBvcyA9IHJvb3QtPnNl
bGVjdGlvblN0YXJ0KCk7CisgICAgUmVuZGVyT2JqZWN0KiBzdG9wID0gcmVuZGVyZXJBZnRlclBv
c2l0aW9uKHJvb3QtPnNlbGVjdGlvbkVuZCgpLCByb290LT5zZWxlY3Rpb25FbmRQb3MoKSk7Cisg
ICAgd2hpbGUgKG9zICYmIG9zICE9IHN0b3ApIHsKKyAgICAgICAgaWYgKChvcy0+Y2FuQmVTZWxl
Y3Rpb25MZWFmKCkgfHwgb3MgPT0gcm9vdC0+c2VsZWN0aW9uU3RhcnQoKSB8fCBvcyA9PSByb290
LT5zZWxlY3Rpb25FbmQoKSkKKyAgICAgICAgICAgICYmIG9zLT5zZWxlY3Rpb25TdGF0ZSgpICE9
IFNlbGVjdGlvbk5vbmUpIHsKICAgICAgICAgICAgIC8vIEJsb2NrcyBhcmUgcmVzcG9uc2libGUg
Zm9yIHBhaW50aW5nIGxpbmUgZ2FwcyBhbmQgbWFyZ2luIGdhcHMuICBUaGV5IG11c3QgYmUgZXhh
bWluZWQgYXMgd2VsbC4KICAgICAgICAgICAgIG9sZFNlbGVjdGVkT2JqZWN0cy5zZXQob3MsIHN0
ZDo6bWFrZV91bmlxdWU8UmVuZGVyU2VsZWN0aW9uSW5mbz4ob3MsIHRydWUpKTsKICAgICAgICAg
ICAgIGlmIChibG9ja1JlcGFpbnRNb2RlID09IFJlcGFpbnROZXdYT1JPbGQpIHsKQEAgLTgwNCw3
ICs4OTEsNyBAQCB2b2lkIFJlbmRlclZpZXc6OnNldFNlbGVjdGlvbihSZW5kZXJPYmplY3QqIHN0
YXJ0LCBpbnQgc3RhcnRQb3MsIFJlbmRlck9iamVjdCogZQogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAKLSAgICAgICAgb3MgPSBnZXROZXh0T3JQcmV2UmVuZGVyT2JqZWN0QmFzZWRPbkRpcmVj
dGlvbihvcywgc3RvcCwgY29udGludWVFeHBsb3JpbmcsIGV4cGxvcmluZ0JhY2t3YXJkcyk7Cisg
ICAgICAgIG9zID0gb3MtPm5leHRJblByZU9yZGVyKCk7CiAgICAgfQogCiAgICAgLy8gTm93IGNs
ZWFyIHRoZSBzZWxlY3Rpb24uCkBAIC04MTMsMTIgKzkwMCwxMiBAQCB2b2lkIFJlbmRlclZpZXc6
OnNldFNlbGVjdGlvbihSZW5kZXJPYmplY3QqIHN0YXJ0LCBpbnQgc3RhcnRQb3MsIFJlbmRlck9i
amVjdCogZQogICAgICAgICBpLT5rZXktPnNldFNlbGVjdGlvblN0YXRlSWZOZWVkZWQoU2VsZWN0
aW9uTm9uZSk7CiAKICAgICAvLyBzZXQgc2VsZWN0aW9uIHN0YXJ0IGFuZCBlbmQKLSAgICBtX3Nl
bGVjdGlvblN0YXJ0ID0gc3RhcnQ7Ci0gICAgbV9zZWxlY3Rpb25TdGFydFBvcyA9IHN0YXJ0UG9z
OwotICAgIG1fc2VsZWN0aW9uRW5kID0gZW5kOwotICAgIG1fc2VsZWN0aW9uRW5kUG9zID0gZW5k
UG9zOworICAgIHJvb3QtPnNldFNlbGVjdGlvblN0YXJ0KHN0YXJ0KTsKKyAgICByb290LT5zZXRT
ZWxlY3Rpb25TdGFydFBvcyhzdGFydFBvcyk7CisgICAgcm9vdC0+c2V0U2VsZWN0aW9uRW5kKGVu
ZCk7CisgICAgcm9vdC0+c2V0U2VsZWN0aW9uRW5kUG9zKGVuZFBvcyk7CiAKLSAgICAvLyBVcGRh
dGUgdGhlIHNlbGVjdGlvbiBzdGF0dXMgb2YgYWxsIG9iamVjdHMgYmV0d2VlbiBtX3NlbGVjdGlv
blN0YXJ0IGFuZCBtX3NlbGVjdGlvbkVuZAorICAgIC8vIFVwZGF0ZSB0aGUgc2VsZWN0aW9uIHN0
YXR1cyBvZiBhbGwgb2JqZWN0cyBiZXR3ZWVuIHNlbGVjdGlvblN0YXJ0IGFuZCBzZWxlY3Rpb25F
bmQKICAgICBpZiAoc3RhcnQgJiYgc3RhcnQgPT0gZW5kKQogICAgICAgICBzdGFydC0+c2V0U2Vs
ZWN0aW9uU3RhdGVJZk5lZWRlZChTZWxlY3Rpb25Cb3RoKTsKICAgICBlbHNlIHsKQEAgLTg0Myw5
ICs5MzAsNyBAQCB2b2lkIFJlbmRlclZpZXc6OnNldFNlbGVjdGlvbihSZW5kZXJPYmplY3QqIHN0
YXJ0LCBpbnQgc3RhcnRQb3MsIFJlbmRlck9iamVjdCogZQogICAgIC8vIE5vdyB0aGF0IHRoZSBz
ZWxlY3Rpb24gc3RhdGUgaGFzIGJlZW4gdXBkYXRlZCBmb3IgdGhlIG5ldyBvYmplY3RzLCB3YWxr
IHRoZW0gYWdhaW4gYW5kCiAgICAgLy8gcHV0IHRoZW0gaW4gdGhlIG5ldyBvYmplY3RzIGxpc3Qu
CiAgICAgbyA9IHN0YXJ0OwotICAgIGV4cGxvcmluZ0JhY2t3YXJkcyA9IGZhbHNlOwotICAgIGNv
bnRpbnVlRXhwbG9yaW5nID0gbyAmJiAobyAhPSBzdG9wKTsKLSAgICB3aGlsZSAoY29udGludWVF
eHBsb3JpbmcpIHsKKyAgICB3aGlsZSAobyAmJiBvICE9IHN0b3ApIHsKICAgICAgICAgaWYgKChv
LT5jYW5CZVNlbGVjdGlvbkxlYWYoKSB8fCBvID09IHN0YXJ0IHx8IG8gPT0gZW5kKSAmJiBvLT5z
ZWxlY3Rpb25TdGF0ZSgpICE9IFNlbGVjdGlvbk5vbmUpIHsKICAgICAgICAgICAgIG5ld1NlbGVj
dGVkT2JqZWN0cy5zZXQobywgc3RkOjptYWtlX3VuaXF1ZTxSZW5kZXJTZWxlY3Rpb25JbmZvPihv
LCB0cnVlKSk7CiAgICAgICAgICAgICBSZW5kZXJCbG9jayogY2IgPSBvLT5jb250YWluaW5nQmxv
Y2soKTsKQEAgLTg1OCw3ICs5NDMsNyBAQCB2b2lkIFJlbmRlclZpZXc6OnNldFNlbGVjdGlvbihS
ZW5kZXJPYmplY3QqIHN0YXJ0LCBpbnQgc3RhcnRQb3MsIFJlbmRlck9iamVjdCogZQogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgbyA9IGdldE5leHRPclByZXZSZW5kZXJPYmpl
Y3RCYXNlZE9uRGlyZWN0aW9uKG8sIHN0b3AsIGNvbnRpbnVlRXhwbG9yaW5nLCBleHBsb3JpbmdC
YWNrd2FyZHMpOworICAgICAgICBvID0gby0+bmV4dEluUHJlT3JkZXIoKTsKICAgICB9CiAKICAg
ICBpZiAoYmxvY2tSZXBhaW50TW9kZSA9PSBSZXBhaW50Tm90aGluZykKQEAgLTg2OSw5ICs5NTQs
OSBAQCB2b2lkIFJlbmRlclZpZXc6OnNldFNlbGVjdGlvbihSZW5kZXJPYmplY3QqIHN0YXJ0LCBp
bnQgc3RhcnRQb3MsIFJlbmRlck9iamVjdCogZQogICAgICAgICBSZW5kZXJPYmplY3QqIG9iaiA9
IGktPmtleTsKICAgICAgICAgUmVuZGVyU2VsZWN0aW9uSW5mbyogbmV3SW5mbyA9IG5ld1NlbGVj
dGVkT2JqZWN0cy5nZXQob2JqKTsKICAgICAgICAgUmVuZGVyU2VsZWN0aW9uSW5mbyogb2xkSW5m
byA9IGktPnZhbHVlLmdldCgpOwotICAgICAgICBpZiAoIW5ld0luZm8gfHwgb2xkSW5mby0+cmVj
dCgpICE9IG5ld0luZm8tPnJlY3QoKSB8fCBvbGRJbmZvLT5zdGF0ZSgpICE9IG5ld0luZm8tPnN0
YXRlKCkgfHwKLSAgICAgICAgICAgIChtX3NlbGVjdGlvblN0YXJ0ID09IG9iaiAmJiBvbGRTdGFy
dFBvcyAhPSBtX3NlbGVjdGlvblN0YXJ0UG9zKSB8fAotICAgICAgICAgICAgKG1fc2VsZWN0aW9u
RW5kID09IG9iaiAmJiBvbGRFbmRQb3MgIT0gbV9zZWxlY3Rpb25FbmRQb3MpKSB7CisgICAgICAg
IGlmICghbmV3SW5mbyB8fCBvbGRJbmZvLT5yZWN0KCkgIT0gbmV3SW5mby0+cmVjdCgpIHx8IG9s
ZEluZm8tPnN0YXRlKCkgIT0gbmV3SW5mby0+c3RhdGUoKQorICAgICAgICAgICAgfHwgKHJvb3Qt
PnNlbGVjdGlvblN0YXJ0KCkgPT0gb2JqICYmIG9sZFN0YXJ0UG9zICE9IHJvb3QtPnNlbGVjdGlv
blN0YXJ0UG9zKCkpCisgICAgICAgICAgICB8fCAocm9vdC0+c2VsZWN0aW9uRW5kKCkgPT0gb2Jq
ICYmIG9sZEVuZFBvcyAhPSByb290LT5zZWxlY3Rpb25FbmRQb3MoKSkpIHsKICAgICAgICAgICAg
IG9sZEluZm8tPnJlcGFpbnQoKTsKICAgICAgICAgICAgIGlmIChuZXdJbmZvKSB7CiAgICAgICAg
ICAgICAgICAgbmV3SW5mby0+cmVwYWludCgpOwpAQCAtOTIwLDEyICsxMDA1LDYgQEAgdm9pZCBS
ZW5kZXJWaWV3OjpjbGVhclNlbGVjdGlvbigpCiAgICAgc2V0U2VsZWN0aW9uKDAsIC0xLCAwLCAt
MSwgUmVwYWludE5ld01pbnVzT2xkKTsKIH0KIAotdm9pZCBSZW5kZXJWaWV3OjpzZWxlY3Rpb25T
dGFydEVuZChpbnQmIHN0YXJ0UG9zLCBpbnQmIGVuZFBvcykgY29uc3QKLXsKLSAgICBzdGFydFBv
cyA9IG1fc2VsZWN0aW9uU3RhcnRQb3M7Ci0gICAgZW5kUG9zID0gbV9zZWxlY3Rpb25FbmRQb3M7
Ci19Ci0KIGJvb2wgUmVuZGVyVmlldzo6cHJpbnRpbmcoKSBjb25zdAogewogICAgIHJldHVybiBk
b2N1bWVudCgpLnByaW50aW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaApp
bmRleCA2ODZmMzA5MzJhYTQ3ZmYwYjg1MWNhYmQ4MGRlY2I2YWRjNDZlZmUzLi4wNDQ0ZDEzZTE5
YmMxY2E0ODMwYzQzNjM0NmY1MGY2NjdiYTkxZmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJWaWV3LmgKQEAgLTI3LDggKzI3LDEwIEBACiAjaW5jbHVkZSAiUE9ERnJlZUxpc3RBcmVu
YS5oIgogI2luY2x1ZGUgIlJlZ2lvbi5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgor
I2luY2x1ZGUgIlNlbGVjdGlvblN1YnRyZWVSb290LmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTM3LDcgKzM5LDcgQEAgY2xhc3MgSW1hZ2VRdWFsaXR5Q29udHJv
bGxlcjsKIGNsYXNzIFJlbmRlckxheWVyQ29tcG9zaXRvcjsKIGNsYXNzIFJlbmRlclF1b3RlOwog
Ci1jbGFzcyBSZW5kZXJWaWV3IGZpbmFsIDogcHVibGljIFJlbmRlckJsb2NrRmxvdyB7CitjbGFz
cyBSZW5kZXJWaWV3IGZpbmFsIDogcHVibGljIFJlbmRlckJsb2NrRmxvdywgcHVibGljIFNlbGVj
dGlvblN1YnRyZWVSb290IHsKIHB1YmxpYzoKICAgICBSZW5kZXJWaWV3KERvY3VtZW50JiwgUGFz
c1JlZjxSZW5kZXJTdHlsZT4pOwogICAgIHZpcnR1YWwgflJlbmRlclZpZXcoKTsKQEAgLTg2LDcg
Kzg4LDYgQEAgcHVibGljOgogICAgIFJlbmRlck9iamVjdCogc2VsZWN0aW9uU3RhcnQoKSBjb25z
dCB7IHJldHVybiBtX3NlbGVjdGlvblN0YXJ0OyB9CiAgICAgUmVuZGVyT2JqZWN0KiBzZWxlY3Rp
b25FbmQoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbkVuZDsgfQogICAgIEludFJlY3Qgc2Vs
ZWN0aW9uQm91bmRzKGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQgPSB0cnVlKSBjb25zdDsKLSAg
ICB2b2lkIHNlbGVjdGlvblN0YXJ0RW5kKGludCYgc3RhcnRQb3MsIGludCYgZW5kUG9zKSBjb25z
dDsKICAgICB2b2lkIHJlcGFpbnRTZWxlY3Rpb24oKSBjb25zdDsKIAogICAgIGJvb2wgcHJpbnRp
bmcoKSBjb25zdDsKQEAgLTI4OCw2ICsyODksMTEgQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xh
c3MgTGF5b3V0U3RhdGVNYWludGFpbmVyOwogICAgIGZyaWVuZCBjbGFzcyBMYXlvdXRTdGF0ZURp
c2FibGVyOwogCisgICAgdm9pZCBzcGxpdFNlbGVjdGlvbkJldHdlZW5TdWJ0cmVlcyhSZW5kZXJP
YmplY3QqIHN0YXJ0LCBpbnQgc3RhcnRQb3MsIFJlbmRlck9iamVjdCogZW5kLCBpbnQgZW5kUG9z
LCBTZWxlY3Rpb25SZXBhaW50TW9kZSBibG9ja1JlcGFpbnRNb2RlKTsKKyAgICB2b2lkIHNldFN1
YnRyZWVTZWxlY3Rpb24oU2VsZWN0aW9uU3VidHJlZVJvb3QqLCBSZW5kZXJPYmplY3QqIHN0YXJ0
LCBpbnQgc3RhcnRQb3MsIFJlbmRlck9iamVjdCogZW5kLCBpbnQgZW5kUG9zLCBTZWxlY3Rpb25S
ZXBhaW50TW9kZSk7CisgICAgTGF5b3V0UmVjdCBzdWJ0cmVlU2VsZWN0aW9uQm91bmRzKGNvbnN0
IFNlbGVjdGlvblN1YnRyZWVSb290KiwgYm9vbCBjbGlwVG9WaXNpYmxlQ29udGVudCA9IHRydWUp
IGNvbnN0OworICAgIHZvaWQgcmVwYWludFN1YnRyZWVTZWxlY3Rpb24oY29uc3QgU2VsZWN0aW9u
U3VidHJlZVJvb3QqKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBGcmFtZVZpZXcmIG1fZnJhbWVW
aWV3OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uU3Vi
dHJlZVJvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblN1YnRyZWVS
b290LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jOWE5MDcxY2RiODFiMjI5ZjczYWQwNjU5MjQyMTRlNTY1MjRh
MjZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlv
blN1YnRyZWVSb290LmNwcApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZwor
ICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJTZWxlY3Rpb25TdWJ0cmVlUm9vdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Nl
bGVjdGlvblN1YnRyZWVSb290OjpTZWxlY3Rpb25TdWJ0cmVlUm9vdCgpCisgICAgOiBtX3NlbGVj
dGlvblN0YXJ0KG51bGxwdHIpCisgICAgLCBtX3NlbGVjdGlvblN0YXJ0UG9zKC0xKQorICAgICwg
bV9zZWxlY3Rpb25FbmQobnVsbHB0cikKKyAgICAsIG1fc2VsZWN0aW9uRW5kUG9zKC0xKQorewor
fQorCit2b2lkIFNlbGVjdGlvblN1YnRyZWVSb290OjpzZWxlY3Rpb25TdGFydEVuZFBvc2l0aW9u
cyhpbnQmIHN0YXJ0UG9zLCBpbnQmIGVuZFBvcykgY29uc3QKK3sKKyAgICBzdGFydFBvcyA9IG1f
c2VsZWN0aW9uU3RhcnRQb3M7CisgICAgZW5kUG9zID0gbV9zZWxlY3Rpb25FbmRQb3M7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9TZWxlY3Rpb25TdWJ0cmVlUm9vdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Nl
bGVjdGlvblN1YnRyZWVSb290LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDYxZDRlZDZiNWQwNzEyYzExYWIzZTcw
Y2QyOGM1YTE0NjcwMmEzOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9TZWxlY3Rpb25TdWJ0cmVlUm9vdC5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIOKA
nEFTIElT4oCdIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJF
CisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTZWxlY3Rp
b25TdWJ0cmVlUm9vdF9oCisjZGVmaW5lIFNlbGVjdGlvblN1YnRyZWVSb290X2gKKworI2luY2x1
ZGUgIlJlbmRlck9iamVjdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNlbGVj
dGlvblN1YnRyZWVSb290IHsKK3B1YmxpYzoKKworICAgIFNlbGVjdGlvblN1YnRyZWVSb290KCk7
CisKKyAgICBSZW5kZXJPYmplY3QqIHNlbGVjdGlvblN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9z
ZWxlY3Rpb25TdGFydDsgfQorICAgIGludCBzZWxlY3Rpb25TdGFydFBvcygpIGNvbnN0IHsgcmV0
dXJuIG1fc2VsZWN0aW9uU3RhcnRQb3M7IH0KKyAgICBSZW5kZXJPYmplY3QqIHNlbGVjdGlvbkVu
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uRW5kOyB9CisgICAgaW50IHNlbGVjdGlvbkVu
ZFBvcygpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uRW5kUG9zOyB9CisKKyAgICB2b2lkIHNl
dFNlbGVjdGlvblN0YXJ0KFJlbmRlck9iamVjdCogc2VsZWN0aW9uU3RhcnQpIHsgbV9zZWxlY3Rp
b25TdGFydCA9IHNlbGVjdGlvblN0YXJ0OyB9CisgICAgdm9pZCBzZXRTZWxlY3Rpb25TdGFydFBv
cyhpbnQgc2VsZWN0aW9uU3RhcnRQb3MpIHsgbV9zZWxlY3Rpb25TdGFydFBvcyA9IHNlbGVjdGlv
blN0YXJ0UG9zOyB9CisgICAgdm9pZCBzZXRTZWxlY3Rpb25FbmQoUmVuZGVyT2JqZWN0KiBzZWxl
Y3Rpb25FbmQpIHsgbV9zZWxlY3Rpb25FbmQgPSBzZWxlY3Rpb25FbmQ7IH0KKyAgICB2b2lkIHNl
dFNlbGVjdGlvbkVuZFBvcyhpbnQgc2VsZWN0aW9uRW5kUG9zKSB7IG1fc2VsZWN0aW9uRW5kUG9z
ID0gc2VsZWN0aW9uRW5kUG9zOyB9CisKKyAgICB2b2lkIHNlbGVjdGlvblN0YXJ0RW5kUG9zaXRp
b25zKGludCYgc3RhcnRQb3MsIGludCYgZW5kUG9zKSBjb25zdDsKKworcHJpdmF0ZToKKworICAg
IFJlbmRlck9iamVjdCogbV9zZWxlY3Rpb25TdGFydDsKKyAgICBpbnQgbV9zZWxlY3Rpb25TdGFy
dFBvczsKKyAgICBSZW5kZXJPYmplY3QqIG1fc2VsZWN0aW9uRW5kOworICAgIGludCBtX3NlbGVj
dGlvbkVuZFBvczsKKworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
U2VsZWN0aW9uU3VidHJlZVJvb3RfaApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDUwZmUyZDU2N2UxZTExMjcyYWIwNzE2NzI4
ZmM0MzNhYzJhZjliNzEuLmVjNDZlOTc0N2MwMzY3YTM4ZDY5MTU0YTZhODBhMTQ5ZDQyMDI5NTgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNC0wNC0xMSAgTWFudWVsIFJlZ28gQ2FzYXNub3Zh
cyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBbQ1NTIFJlZ2lvbnNdIFNlbGVjdGlvbiBo
aWdobGlnaHQgZG9lc24ndCBtYXRjaCBET00gc2VsZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzE1MTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IHRlc3QgdG8gY2hlY2sgaGlnaGxp
Z2h0IG9mIHJlbmRlciBvYmplY3RzIG1vdmVkIHVuZGVyIFJlbmRlckZsb3dUaHJlYWQgaW4gdGhl
IHJlbmRlciB0cmVlLgorCisgICAgICAgIFVwZGF0ZWQgc29tZSB0ZXN0cyB0byBhdm9pZCBpc3N1
ZXMgd2l0aCBzZWxlY3Rpb24gZ2FwIGZpbGxpbmcgaW4gdGhlIG5ldyBpbXBsZW1lbnRhdGlvbi4K
KworICAgICAgICAqIGZhc3QvcmVnaW9ucy9zZWxlY3Rpb24vc2VsZWN0aW5nLXRleHQtaW5jbHVk
aW5nLXJlZ2lvbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMv
c2VsZWN0aW9uL3NlbGVjdGluZy10ZXh0LWluY2x1ZGluZy1yZWdpb24uaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3RpbmctdGV4dC10aHJvdWdoLWRp
ZmZlcmVudC1yZWdpb24tZmxvd3MtMi1leHBlY3RlZC5odG1sOiBVcGRhdGVkLgorICAgICAgICAq
IGZhc3QvcmVnaW9ucy9zZWxlY3Rpb24vc2VsZWN0aW5nLXRleHQtdGhyb3VnaC1kaWZmZXJlbnQt
cmVnaW9uLWZsb3dzLTIuaHRtbDogVXBkYXRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvc2Vs
ZWN0aW9uL3NlbGVjdGlvbi1kaXJlY3Rpb24tZXhwZWN0ZWQuaHRtbDogVXBkYXRlZC4KKyAgICAg
ICAgKiBmYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGlvbi1kaXJlY3Rpb24uaHRtbDogVXBk
YXRlZC4KKwogMjAxNC0wNC0wOSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1hcmlvLnByYWRhQHNh
bXN1bmcuY29tPgogCiAgICAgICAgIFtHVEtdIExheW91dCB0ZXN0cyBhY2Nlc3NpYmlsaXR5L2No
aWxkcmVuLWNoYW5nZWQtc2VuZHMtbm90aWZpY2F0aW9uLmh0bWwgYW5kIGFjY2Vzc2liaWxpdHkv
bm90aWZpY2F0aW9uLWxpc3RlbmVycy5odG1sIGZhaWxzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGluZy10ZXh0LWluY2x1ZGluZy1yZWdpb24t
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zZWxlY3Rpb24vc2VsZWN0
aW5nLXRleHQtaW5jbHVkaW5nLXJlZ2lvbi1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1MDJk
MmI1ZjYzNjNiMmM3NDk2MTIyMzJlNjNmNDU0MzI1N2M5MzEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGluZy10ZXh0LWluY2x1ZGlu
Zy1yZWdpb24tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDc0IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9oZWxwZXIuanMi
Pjwvc2NyaXB0PgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vcmVzb3VyY2Vz
L3JlZ2lvbi1zdHlsZS5jc3MiPjwvbGluaz4KKyAgICA8c3R5bGU+CisgICAgICAgICogeworICAg
ICAgICAgICAgbWFyZ2luOiAwcHg7CisgICAgICAgICAgICBwYWRkaW5nOiAwcHg7CisgICAgICAg
IH0KKworICAgICAgICBib2R5IHsKKyAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OworICAg
ICAgICAgICAgZm9udC1zaXplOiAyMHB4OworICAgICAgICAgICAgZm9udC1mYW1pbHk6IEFoZW07
CisgICAgICAgIH0KKworICAgICAgICAjb3V0c2lkZS0xIHsKKyAgICAgICAgICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIHRvcDogMHB4OworICAgICAgICB9CisKKyAgICAgICAg
I291dHNpZGUtMiB7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAg
ICB0b3A6IDEwMHB4OworICAgICAgICB9CisKKyAgICAgICAgI3JlZ2lvbiB7CisgICAgICAgICAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB0b3A6IDIwMHB4OworICAgICAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogY3lhbjsKKyAgICAgICAgfQorCisgICAgICAgICNkZXNjcmlw
dGlvbiB7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB0b3A6
IDM1MHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0PgorICAgICAgICBv
bk1vdXNlVXBMb2dTZWxlY3Rpb24oInNlbGVjdGVkLWNvbnRlbnQiKTsKKyAgICA8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2VsZWN0Q29udGVudEJ5SWRzKCd3b3JkMScsICd3b3Jk
MicpOyIgc3R5bGU9Im1hcmdpbi10b3A6IDA7Ij4KKyAgICA8ZGl2IGlkPSJvdXRzaWRlLTEiIGNs
YXNzPSJiaWdCb3giPgorICAgICAgICBYIFggWCBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBY
IFggWCBYCisgICAgICAgIFggWCBYIDxzcGFuIGlkPSJ3b3JkMSIgY2xhc3M9InRva2VuIj5YPC9z
cGFuPiBYIFggWCBYCisgICAgICAgIFggWCBYIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFgg
WCBYIFgKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZWdpb24iIGNsYXNzPSJiaWdCb3giPgor
ICAgICAgICBYIFggWCBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBYIFggWCBYCisgICAgICAg
IFggWCBYIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFggWCBYIFgKKyAgICAgICAgWCBYIFgg
WCBYIFggWCBYCisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0ib3V0c2lkZS0yIiBjbGFzcz0iYmln
Qm94Ij4KKyAgICAgICAgWCBYIFggWCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWCBYIFggWAor
ICAgICAgICBYIFggWCA8c3BhbiBpZD0id29yZDIiIGNsYXNzPSJ0b2tlbiI+WDwvc3Bhbj4gWCBY
IFggWAorICAgICAgICBYIFggWCBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBYIFggWCBYCisg
ICAgPC9kaXY+CisgICAgPGRpdiBpZD0iZGVzY3JpcHRpb24iIGNsYXNzPSJkZXNjcmlwdGlvbiI+
CisgICAgICAgIDxoMT48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTMxNTExIj5CdWcgIzEzMTUxMSAtIFtDU1MgUmVnaW9uc10gU2VsZWN0aW9uIGhpZ2hs
aWdodCBkb2Vzbid0IG1hdGNoIERPTSBzZWxlY3Rpb248L2E+PC9oMT4KKyAgICAgICAgPHA+VGhp
cyB0ZXN0IGNoZWNrcyB0aGUgc2VsZWN0aW9uIGluIDIgdGV4dCB3cmFwcGluZyBhIGNvbnRlbnQg
bm9kZS4gSWYgeW91IHNlbGVjdCBmcm9tIDxzcGFuIGNsYXNzPSJ0b2tlbiI+WDwvc3Bhbj4gdG8g
PHNwYW4gY2xhc3M9InRva2VuIj5YPC9zcGFuPiB5b3Ugd2lsbCBzZWUgdGhhdCByZWdpb24gdGV4
dCBpcyBoaWdobGlnaHRlZCBhbmQgaW5jbHVkZWQgaW4gdGhlIHNlbGVjdGVkIGNvbnRlbnQgKGJl
Y2F1c2Ugb2YgdGhlIGNvbnRlbnQgb2YgdGhlIHJlZ2lvbiBpcyBiZXR3ZWVuIGJvdCB0ZXh0cyBp
biB0aGUgRE9NKS48L3A+CisgICAgICAgIDxkbD4KKyAgICAgICAgICAgIDxkdD5TZWxlY3RlZCBj
b250ZW50OjwvZHQ+CisgICAgICAgICAgICA8ZGQgaWQ9InNlbGVjdGVkLWNvbnRlbnQiPjwvZGQ+
CisgICAgICAgIDwvZGw+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGluZy10ZXh0LWluY2x1
ZGluZy1yZWdpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zZWxlY3Rpb24vc2Vs
ZWN0aW5nLXRleHQtaW5jbHVkaW5nLXJlZ2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhMjRlNTM1YzFk
MWNmNTI1NTc1MTA1YTg5MTBmMWZkZGI0ZjU0NDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGluZy10ZXh0LWluY2x1ZGluZy1yZWdp
b24uaHRtbApAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9oZWxwZXIuanMiPjwvc2NyaXB0PgorICAg
IDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vcmVzb3VyY2VzL3JlZ2lvbi1zdHlsZS5j
c3MiPjwvbGluaz4KKyAgICA8c3R5bGU+CisgICAgICAgICogeworICAgICAgICAgICAgbWFyZ2lu
OiAwcHg7CisgICAgICAgICAgICBwYWRkaW5nOiAwcHg7CisgICAgICAgIH0KKworICAgICAgICBi
b2R5IHsKKyAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OworICAgICAgICAgICAgZm9udC1z
aXplOiAyMHB4OworICAgICAgICAgICAgZm9udC1mYW1pbHk6IEFoZW07CisgICAgICAgIH0KKwor
ICAgICAgICAjcmVnaW9uIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGN5YW47Cisg
ICAgICAgIH0KKworICAgICAgICAjZGVzY3JpcHRpb24geworICAgICAgICAgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgICAgICAgICAgdG9wOiAzNTBweDsKKyAgICAgICAgfQorICAgIDwvc3R5
bGU+CisgICAgPHNjcmlwdD4KKyAgICAgICAgb25Nb3VzZVVwTG9nU2VsZWN0aW9uKCJzZWxlY3Rl
ZC1jb250ZW50Iik7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNlbGVj
dENvbnRlbnRCeUlkcygnd29yZDEnLCAnd29yZDInKTsiIHN0eWxlPSJtYXJnaW4tdG9wOiAwOyI+
CisgICAgPGRpdiBjbGFzcz0iYmlnQm94IGZsb2F0Ij4KKyAgICAgICAgWCBYIFggWCBYIFggWCBY
CisgICAgICAgIFggWCBYIFggWCBYIFggWAorICAgICAgICBYIFggWCA8c3BhbiBpZD0id29yZDEi
IGNsYXNzPSJ0b2tlbiI+WDwvc3Bhbj4gWCBYIFggWAorICAgICAgICBYIFggWCBYIFggWCBYIFgK
KyAgICAgICAgWCBYIFggWCBYIFggWCBYCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY2xl
YXIiPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImZsb3dBcnRpY2xlIj4KKyAgICAgICAgWCBYIFgg
WCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFggWCBY
IFgKKyAgICAgICAgWCBYIFggWCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWCBYIFggWAorICAg
IDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImJpZ0JveCBmbG9hdCI+CisgICAgICAgIFggWCBYIFgg
WCBYIFggWAorICAgICAgICBYIFggWCBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggPHNwYW4gaWQ9
IndvcmQyIiBjbGFzcz0idG9rZW4iPlg8L3NwYW4+IFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBY
IFggWCBYCisgICAgICAgIFggWCBYIFggWCBYIFggWAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xh
c3M9ImNsZWFyIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZWdpb24iIGNsYXNzPSJyZWdpb25BcnRp
Y2xlIGJpZ0JveCI+PC9kaXY+CisgICAgPGRpdiBpZD0iZGVzY3JpcHRpb24iIGNsYXNzPSJkZXNj
cmlwdGlvbiI+CisgICAgICAgIDxoMT48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTMxNTExIj5CdWcgIzEzMTUxMSAtIFtDU1MgUmVnaW9uc10gU2VsZWN0
aW9uIGhpZ2hsaWdodCBkb2Vzbid0IG1hdGNoIERPTSBzZWxlY3Rpb248L2E+PC9oMT4KKyAgICAg
ICAgPHA+VGhpcyB0ZXN0IGNoZWNrcyB0aGUgc2VsZWN0aW9uIGluIDIgdGV4dCB3cmFwcGluZyBh
IGNvbnRlbnQgbm9kZS4gSWYgeW91IHNlbGVjdCBmcm9tIDxzcGFuIGNsYXNzPSJ0b2tlbiI+WDwv
c3Bhbj4gdG8gPHNwYW4gY2xhc3M9InRva2VuIj5YPC9zcGFuPiB5b3Ugd2lsbCBzZWUgdGhhdCBy
ZWdpb24gdGV4dCBpcyBoaWdobGlnaHRlZCBhbmQgaW5jbHVkZWQgaW4gdGhlIHNlbGVjdGVkIGNv
bnRlbnQgKGJlY2F1c2Ugb2YgdGhlIGNvbnRlbnQgb2YgdGhlIHJlZ2lvbiBpcyBiZXR3ZWVuIGJv
dCB0ZXh0cyBpbiB0aGUgRE9NKS48L3A+CisgICAgICAgIDxkbD4KKyAgICAgICAgICAgIDxkdD5T
ZWxlY3RlZCBjb250ZW50OjwvZHQ+CisgICAgICAgICAgICA8ZGQgaWQ9InNlbGVjdGVkLWNvbnRl
bnQiPjwvZGQ+CisgICAgICAgIDwvZGw+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGluZy10
ZXh0LXRocm91Z2gtZGlmZmVyZW50LXJlZ2lvbi1mbG93cy0yLWV4cGVjdGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGluZy10ZXh0LXRocm91Z2gtZGlm
ZmVyZW50LXJlZ2lvbi1mbG93cy0yLWV4cGVjdGVkLmh0bWwKaW5kZXggNzAwYWMyNDEzYzQ5NGY3
ZjM0ZTVhMWFhZDc5MjhmYzUwOTJiNDU2My4uYWEyMjlmZGVjNzdmOWI4ZDcyZTBkNjY5NDhjZWI3
NjExNjEyMDgyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVjdGlv
bi9zZWxlY3RpbmctdGV4dC10aHJvdWdoLWRpZmZlcmVudC1yZWdpb24tZmxvd3MtMi1leHBlY3Rl
ZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zZWxlY3Rpb24vc2VsZWN0aW5n
LXRleHQtdGhyb3VnaC1kaWZmZXJlbnQtcmVnaW9uLWZsb3dzLTItZXhwZWN0ZWQuaHRtbApAQCAt
MywxOSArMyw1NiBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2hlbHBlci5q
cyI+PC9zY3JpcHQ+CiA8c3R5bGU+Ci1ib2R5IHsgd2lkdGg6IDYwMHB4OyB9Ci0jZm9vdE5vdGUg
eyBmb250LXNpemU6IDEzcHg7IH0KKyogeworICAgIG1hcmdpbjogMHB4OworICAgIHBhZGRpbmc6
IDBweDsKKyAgICBmb250LXNpemU6IDIwcHg7CisgICAgZm9udC1mYW1pbHk6IEFoZW07CisgICAg
bGluZS1oZWlnaHQ6IDIwcHg7Cit9CisjY29udGVudDEgeworICAgIGhlaWdodDogMTAwcHg7Cisg
ICAgd2lkdGg6IDIwMHB4OworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDUwcHg7
Cit9CisjbmVzdGVkUmVnaW9uIHsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIHdpZHRoOiAyMDBw
eDsKKyAgICBjb2xvcjogcmVkOworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDI1
MHB4OworfQorI2NvbnRlbnQyIHsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIHdpZHRoOiAyMDBw
eDsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAxNTBweDsKK30KIDwvc3R5bGU+
CiA8L2hlYWQ+CiA8Ym9keSBvbmxvYWQ9InNlbGVjdEJhc2VBbmRFeHRlbnQoJ3N0YXJ0JywgMCwg
J2VuZCcsIDEpIj4KLTxkaXYgaWQ9ImNvbnRlbnQiPgotICAgIDxoMSBzdHlsZT0ibWFyZ2luLXRv
cDogMHB4Ij5TZWxlY3RpbmcgdGV4dCB0aHJvdWdoIGRpZmZlcmVudCBDU1MtUmVnaW9uIGZsb3dz
PC9oMT4KLSAgICA8ZGl2PgotICAgIFRoaXMgdGV4dCBjb250YWlucyBhIGZvb3Rub3RlIGFzIGEg
bmVzdGVkIHJlZ2lvbiB3aGF0IGlzIGRpcGxheWVkIDxzcGFuIGlkPSJzdGFydCI+YmVsb3c8c3Bh
bj4gdGhlIGFydGljbGUuICgxKSBJZiB5b3Ugc3RhcnQgc2VsZWN0aW5nCi0gICAgICAgIHRleHQg
ZnJvbSB0aGlzIGFydGljbGUgdW50aWwgc29tZXdoZXJlIGluIHRoZSBmb290bm90ZSBhbmQgdGhl
biBjbGljayBzb21ld2hlcmUsIHRoZSBzZWxlY3Rpb24gc2hvdWxkIGJlIGNsZWFyZWQuCi0gICAg
PC9kaXY+Ci0gICAgPGRpdiBpZD0iZm9vdE5vdGUiPigxKSBUaGlzIGlzIGEgZm9vdG5vdGUuIEZv
b3Rub3RlcyBjYW4gYmUgcXVpdGUgbG9uZyBhbmQgZ28gb3ZlciBzZXZlcmFsIGxpbmVzLiBUaGlz
IGZvb3Rub3RlCi0gICAgaXMgbmVzdGVkIGluc2lkZSB0aGUgdGV4dCA8c3BhbiBpZD0iZW5kIj5h
Ym92ZTxzcGFuPiBhbmQgZGlzcGxheWVkIGhlcmUgd2l0aCB0aGUgaGVscCBvZiBjc3MtcmVnaW9u
cy48L3NwYW4+PC9kaXY+Cis8aDE+U2VsZWN0aW5nIHRleHQgdGhyb3VnaCBkaWZmZXJlbnQgQ1NT
LVJlZ2lvbiBmbG93czwvaDE+Cis8ZGl2IGlkPSJjb250ZW50MSI+CisgICAgWCBYIFggWCBYCisg
ICAgWCBYIFggWCBYCisgICAgWCBYIDxzcGFuIGlkPSJzdGFydCI+WDwvc3Bhbj4gWCBYCisgICAg
WCBYIFggWCBYCisgICAgWCBYIFggWCBYWAorPC9kaXY+Cis8ZGl2IGlkPSJuZXN0ZWRSZWdpb24i
PgorICAgIFggWCBYIFggWAorICAgIFggWCBYIFggWAorICAgIFggWCA8c3BhbiBpZD0iZW5kIj5Y
PC9zcGFuPiBYIFgKKyAgICBYIFggWCBYIFgKKyAgICBYIFggWCBYIFgKKzwvZGl2PgorPGRpdiBp
ZD0iY29udGVudDIiPgorICAgIFggWCBYIFggWAorICAgIFggWCBYIFggWAorICAgIFggWCBYIFgg
WAorICAgIFggWCBYIFggWAorICAgIFggWCBYIFggWAogPC9kaXY+CiA8L2JvZHk+CiA8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGlu
Zy10ZXh0LXRocm91Z2gtZGlmZmVyZW50LXJlZ2lvbi1mbG93cy0yLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGluZy10ZXh0LXRocm91Z2gtZGlmZmVyZW50
LXJlZ2lvbi1mbG93cy0yLmh0bWwKaW5kZXggOWIwODNiMmQwM2Q3ODIzY2MzYWFhYWVjODcyNGJj
Y2NkZDRkMzY0ZS4uMzc2MGFlMWFhNDNmMmJlZGE1YTAyYmE5NzVmODc2ZWU1ZmE5YTcwMSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3RpbmctdGV4
dC10aHJvdWdoLWRpZmZlcmVudC1yZWdpb24tZmxvd3MtMi5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy9zZWxlY3Rpb24vc2VsZWN0aW5nLXRleHQtdGhyb3VnaC1kaWZmZXJlbnQt
cmVnaW9uLWZsb3dzLTIuaHRtbApAQCAtMywzMCArMyw3MyBAQAogPGhlYWQ+CiA8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2hlbHBlci5qcyI+PC9zY3JpcHQ+CiA8c3R5bGU+Ci1ib2R5IHsgd2lk
dGg6IDYwMHB4OyB9CisqIHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiAwcHg7Cisg
ICAgZm9udC1zaXplOiAyMHB4OworICAgIGZvbnQtZmFtaWx5OiBBaGVtOworICAgIGxpbmUtaGVp
Z2h0OiAyMHB4OworfQorCisjbmVzdGVkUmVnaW9uIHsKKyAgICAtd2Via2l0LWZsb3ctaW50bzog
bmVzdGVkUmVnaW9uOworICAgIGNvbG9yOiByZWQ7Cit9CiAKLSNmb290Tm90ZSB7Ci0gICAgLXdl
YmtpdC1mbG93LWludG86IGZvb3ROb3RlOwotICAgIGRpc3BsYXk6IGJsb2NrOwotICAgIGZvbnQt
c2l6ZTogMTNweDsKKyNjb250ZW50IHsKKyAgICAtd2Via2l0LWZsb3ctaW50bzogY29udGVudDsK
IH0KIAotI2Zvb3ROb3RlUmVnaW9uIHsgLXdlYmtpdC1mbG93LWZyb206IGZvb3ROb3RlOyB9Ci0j
Y29udGVudCB7IC13ZWJraXQtZmxvdy1pbnRvOiBjb250ZW50OyB9Ci0jcmVnaW9uIHsgLXdlYmtp
dC1mbG93LWZyb206IGNvbnRlbnQ7IH0KKyNuZXN0ZWRSZWdpb25SZWdpb24geworICAgIC13ZWJr
aXQtZmxvdy1mcm9tOiBuZXN0ZWRSZWdpb247CisgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB3aWR0
aDogMjAwcHg7Cit9CisjcmVnaW9uIHsKKyAgICAtd2Via2l0LWZsb3ctZnJvbTogY29udGVudDsK
KyAgICBoZWlnaHQ6IDIwMHB4OworICAgIHdpZHRoOiAyMDBweDsKK30KKworI2NvbnRlbnQxIHsK
KyAgICBoZWlnaHQ6IDEwMHB4OworfQorCisjY29udGVudDIgeworICAgIGhlaWdodDogMTAwcHg7
Cit9CisKK2gxIHsKKyAgICBoZWlnaHQ6IDUwcHg7Cit9CiA8L3N0eWxlPgogPC9oZWFkPgogPGJv
ZHk+CiAKKzxoMT5TZWxlY3RpbmcgdGV4dCB0aHJvdWdoIGRpZmZlcmVudCBDU1MtUmVnaW9uIGZs
b3dzPC9oMT4KIDxkaXYgaWQ9InJlZ2lvbiI+PC9kaXY+Ci08ZGl2IGlkPSJmb290Tm90ZVJlZ2lv
biI+PC9kaXY+Cis8ZGl2IGlkPSJuZXN0ZWRSZWdpb25SZWdpb24iPjwvZGl2PgogPGRpdiBpZD0i
Y29udGVudCI+Ci0gICAgPGgxIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHgiPlNlbGVjdGluZyB0ZXh0
IHRocm91Z2ggZGlmZmVyZW50IENTUy1SZWdpb24gZmxvd3M8L2gxPgotICAgIDxkaXYgaWQ9ImNv
bnRlbnRUZXh0Ij4KLSAgICAgICAgVGhpcyB0ZXh0IGNvbnRhaW5zIGEgZm9vdG5vdGUgYXMgYSBu
ZXN0ZWQgcmVnaW9uIHdoYXQgaXMgZGlwbGF5ZWQgPHNwYW4gaWQ9InN0YXJ0Ij5iZWxvdzwvc3Bh
bj4gdGhlIGFydGljbGUuICgxKSA8c3BhbiBpZD0iZm9vdE5vdGUiPgotICAgICAgICA8c3Bhbj48
c3Bhbj48L3NwYW4+KDEpIFRoaXMgaXMgYSBmb290bm90ZS4gRm9vdG5vdGVzIGNhbiBiZSBxdWl0
ZSBsb25nIGFuZCBnbyBvdmVyIHNldmVyYWwgbGluZXMuIFRoaXMgZm9vdG5vdGUKLSAgICAgICAg
aXMgbmVzdGVkIGluc2lkZSB0aGUgdGV4dCA8c3BhbiBpZD0iZW5kIj5hYm92ZTwvc3Bhbj4gYW5k
IGRpc3BsYXllZCBoZXJlIHdpdGggdGhlIGhlbHAgb2YgY3NzLXJlZ2lvbnMuPC9zcGFuPjwvc3Bh
bj4gSWYgeW91IHN0YXJ0IHNlbGVjdGluZwotICAgICAgICB0ZXh0IGZyb20gdGhpcyBhcnRpY2xl
IHVudGlsIHNvbWV3aGVyZSBpbiB0aGUgZm9vdG5vdGUgYW5kIHRoZW4gY2xpY2sgc29tZXdoZXJl
LCB0aGUgc2VsZWN0aW9uIHNob3VsZCBiZSBjbGVhcmVkLgorICAgIDxkaXYgaWQ9ImNvbnRlbnQx
Ij4KKyAgICAgICAgWCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWAorICAgICAgICBYIFggPHNw
YW4gaWQ9InN0YXJ0Ij5YPC9zcGFuPiBYIFgKKyAgICAgICAgWCBYIFggWCBYCisgICAgICAgIFgg
WCBYIFggWFgKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJuZXN0ZWRSZWdpb24iPgorICAgICAg
ICBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBYCisgICAgICAgIFggWCA8c3BhbiBpZD0iZW5k
Ij5YPC9zcGFuPiBYIFgKKyAgICAgICAgWCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWAorICAg
IDwvZGl2PgorICAgIDxkaXYgaWQ9ImNvbnRlbnQyIj4KKyAgICAgICAgWCBYIFggWCBYCisgICAg
ICAgIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBYCisgICAg
ICAgIFggWCBYIFggWAogICAgIDwvZGl2PgogPC9kaXY+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcmVnaW9ucy9zZWxlY3Rpb24vc2VsZWN0aW9uLWRpcmVjdGlvbi1leHBlY3RlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3Rpb24tZGlyZWN0
aW9uLWV4cGVjdGVkLmh0bWwKaW5kZXggYjE4ZDY4MjY3MmJlMzQ5MWY2ODlkMWM5OTBiZGY4NzU5
NjA5YTgyNi4uMDg2OTlhMTcyYjI4NzE1ODA0ZWNmZDg1MmJhNDU3MzFiNDA4MDc4ZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3Rpb24tZGlyZWN0
aW9uLWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVjdGlv
bi9zZWxlY3Rpb24tZGlyZWN0aW9uLWV4cGVjdGVkLmh0bWwKQEAgLTcsNiArNyw3IEBACiAgICAg
ICAgICAgICB3aWR0aDogMjAwcHg7CiAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAg
ICAgICAgICAgICB0b3A6IDEwMHB4OworICAgICAgICAgICAgY29sb3I6IHJlZDsKICAgICAgICAg
fQogCiAgICAgICAgICNvdXRzaWRlIHsKQEAgLTE0LDEwICsxNSwxNCBAQAogICAgICAgICAgICAg
d2lkdGg6IDIwMHB4OwogICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAg
ICAgdG9wOiAwcHg7CisgICAgICAgICAgICBjb2xvcjogZ3JlZW47CiAgICAgICAgIH0KIAogICAg
ICAgICBib2R5IHsKICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7CisgICAgICAgICAgICBmb250
LXNpemU6IDIwcHg7CisgICAgICAgICAgICBmb250LWZhbWlseTogQWhlbTsKKyAgICAgICAgICAg
IGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgICB9CiAKICAgICAgICAgI2Rlc2NyaXB0aW9uIHsK
QEAgLTI1LDE0ICszMCwzMCBAQAogICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAg
ICAgICAgICAgdG9wOiAyMDBweDsKICAgICAgICAgfQorCisgICAgICAgIGgxIHsKKyAgICAgICAg
ICAgIGxpbmUtaGVpZ2h0OiA1MHB4OworICAgICAgICB9CiAgICAgPC9zdHlsZT4KIDwvaGVhZD4K
LTxib2R5IG9ubG9hZD0ic2VsZWN0Q29udGVudEJ5UmFuZ2UoMTAwLCAxMCwgMTAwLCAxMTApOyI+
Ci0gICAgPGRpdiBpZD0icmVnaW9uIj5pbnNpZGUgcmVnaW9uIGluc2lkZSByZWdpb24gaW5zaWRl
IHJlZ2lvbiBpbnNpZGUgcmVnaW9uPC9kaXY+Ci0gICAgPGRpdiBpZD0ib3V0c2lkZSI+b3V0c2lk
ZSByZWdpb24gb3V0c2lkZSByZWdpb24gb3V0c2lkZSByZWdpb24gb3V0c2lkZSByZWdpb248L2Rp
dj4KKzxib2R5IG9ubG9hZD0ic2VsZWN0Q29udGVudEJ5UmFuZ2UoMTAwLCA1MCwgMTAwLCAxNTAp
OyI+CisgICAgPGRpdiBpZD0icmVnaW9uIj4KKyAgICAgICAgWCBYIFggWCBYCisgICAgICAgIFgg
WCBYIFggWAorICAgICAgICBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBYCisgICAgICAgIFgg
WCBYIFggWFgKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJvdXRzaWRlIj4KKyAgICAgICAgWCBY
IFggWCBYCisgICAgICAgIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFgKKyAgICAgICAgWCBY
IFggWCBYCisgICAgICAgIFggWCBYIFggWAorICAgIDwvZGl2PgogICAgIDxkaXYgaWQ9ImRlc2Ny
aXB0aW9uIj4KICAgICAgICAgPGgxPjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjE1MDEiPkJ1ZyAjMTIxNTAxIC0gW0NTUyBSZWdpb25zXSBMYXlvdXQg
VGVzdCBmb3Igc2VsZWN0aW9uIGRpcmVjdGlvbjwvYT48L2gxPgotICAgICAgICA8cD5TZWxlY3Rp
b24gaXMgYmFzZWQgaW4gRE9NIHRyZWUsIHNvIGlmIHlvdSBzZWxlY3QgdGV4dCBmcm9tICJvdXRz
aWRlIHJlZ2lvbiIgdG8gImluc2lkZSByZWdpb24iIHRoZSBoaWdobGlnaHRlZCBhcmVhIGlzIGV4
YWN0bHkgdGhlIG9wcG9zaXRlIHRvIHdoYXQgdGhlIHVzZXIgaXMgYWN0dWFsbHkgc2VsZWN0aW5n
LjwvcD4KKyAgICAgICAgPHA+U2VsZWN0aW9uIGlzIGJhc2VkIGluIERPTSB0cmVlLCBzbyBpZiB5
b3Ugc2VsZWN0IHRleHQgZnJvbSAiZ3JlZW4iIHRvICJyZWQiIHRoZSBoaWdobGlnaHRlZCBhcmVh
IGlzIGV4YWN0bHkgdGhlIG9wcG9zaXRlIHRvIHdoYXQgdGhlIHVzZXIgaXMgYWN0dWFsbHkgc2Vs
ZWN0aW5nLjwvcD4KICAgICA8L2Rpdj4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zZWxlY3Rpb24vc2VsZWN0aW9uLWRpcmVjdGlvbi5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3Rpb24tZGlyZWN0aW9u
Lmh0bWwKaW5kZXggNWM3MDJkMTllZTQyYTM4MzQ3ZDExZTY0MTMzYWJkMWIwODY5YmNjYy4uOThm
MDg0ZGUyYTFmYWU5MGZlYjAwZDhiYjA2M2VkZTlhZWQyYjg0ZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3Rpb24tZGlyZWN0aW9uLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3Rpb24tZGlyZWN0aW9u
Lmh0bWwKQEAgLTQsNiArNCw3IEBACiAgICAgPHN0eWxlPgogICAgICAgICAjc291cmNlIHsKICAg
ICAgICAgICAgIC13ZWJraXQtZmxvdy1pbnRvOiBjb250ZW50OworICAgICAgICAgICAgY29sb3I6
IHJlZDsKICAgICAgICAgfQogCiAgICAgICAgICNyZWdpb24gewpAQCAtMTUsMjQgKzE2LDUwIEBA
CiAgICAgICAgICNvdXRzaWRlIHsKICAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CiAgICAgICAg
ICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgICAgICAg
ICBmbG9hdDogbGVmdDsKICAgICAgICAgfQogCiAgICAgICAgIGJvZHkgewogICAgICAgICAgICAg
bWFyZ2luLXRvcDogMDsKKyAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDsKKyAgICAgICAgICAg
IGZvbnQtZmFtaWx5OiBBaGVtOworICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAg
ICAgIH0KIAogICAgICAgICAjZGVzY3JpcHRpb24gewogICAgICAgICAgICAgd2lkdGg6IDYwMHB4
OwogICAgICAgICB9CisKKyAgICAgICAgaDEgeworICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDUw
cHg7CisgICAgICAgIH0KKworICAgICAgICAuY2xlYXIgeworICAgICAgICAgICAgY2xlYXI6IGJv
dGg7CisgICAgICAgIH0KICAgICA8L3N0eWxlPgogPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZWxl
Y3RDb250ZW50QnlSYW5nZSgxMDAsIDEwLCAxMDAsIDExMCk7Ij4KLSAgICA8ZGl2IGlkPSJzb3Vy
Y2UiPmluc2lkZSByZWdpb24gaW5zaWRlIHJlZ2lvbiBpbnNpZGUgcmVnaW9uIGluc2lkZSByZWdp
b248L2Rpdj4KLSAgICA8ZGl2IGlkPSJvdXRzaWRlIj5vdXRzaWRlIHJlZ2lvbiBvdXRzaWRlIHJl
Z2lvbiBvdXRzaWRlIHJlZ2lvbiBvdXRzaWRlIHJlZ2lvbjwvZGl2PgorPGJvZHkgb25sb2FkPSJz
ZWxlY3RDb250ZW50QnlSYW5nZSgxMDAsIDUwLCAxMDAsIDE1MCk7Ij4KKyAgICA8ZGl2IGlkPSJz
b3VyY2UiPgorICAgICAgICBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBYCisgICAgICAgIFgg
WCBYIFggWAorICAgICAgICBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBYWAorICAgIDwvZGl2
PgorICAgIDxkaXYgaWQ9Im91dHNpZGUiPgorICAgICAgICBYIFggWCBYIFgKKyAgICAgICAgWCBY
IFggWCBYCisgICAgICAgIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFgKKyAgICAgICAgWCBY
IFggWCBYCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2PgogICAgIDxk
aXYgaWQ9InJlZ2lvbiI+PC9kaXY+CiAgICAgPGRpdiBpZD0iZGVzY3JpcHRpb24iPgogICAgICAg
ICA8aDE+PGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
MTUwMSI+QnVnICMxMjE1MDEgLSBbQ1NTIFJlZ2lvbnNdIExheW91dCBUZXN0IGZvciBzZWxlY3Rp
b24gZGlyZWN0aW9uPC9hPjwvaDE+Ci0gICAgICAgIDxwPlNlbGVjdGlvbiBpcyBiYXNlZCBpbiBE
T00gdHJlZSwgc28gaWYgeW91IHNlbGVjdCB0ZXh0IGZyb20gIm91dHNpZGUgcmVnaW9uIiB0byAi
aW5zaWRlIHJlZ2lvbiIgdGhlIGhpZ2hsaWdodGVkIGFyZWEgaXMgZXhhY3RseSB0aGUgb3Bwb3Np
dGUgdG8gd2hhdCB0aGUgdXNlciBpcyBhY3R1YWxseSBzZWxlY3RpbmcuPC9wPgorICAgICAgICA8
cD5TZWxlY3Rpb24gaXMgYmFzZWQgaW4gRE9NIHRyZWUsIHNvIGlmIHlvdSBzZWxlY3QgdGV4dCBm
cm9tICJncmVlbiIgdG8gInJlZCIgdGhlIGhpZ2hsaWdodGVkIGFyZWEgaXMgZXhhY3RseSB0aGUg
b3Bwb3NpdGUgdG8gd2hhdCB0aGUgdXNlciBpcyBhY3R1YWxseSBzZWxlY3RpbmcuPC9wPgogICAg
IDwvZGl2PgogPC9ib2R5PgogPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229575</attachid>
            <date>2014-04-17 14:16:15 -0700</date>
            <delta_ts>2014-04-22 03:23:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131511-20140417231552.patch</filename>
            <type>text/plain</type>
            <size>50189</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3MzQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmU3NGRkNTU3OGMyMDcy
YWZkMGY4MmNmNDkyOTQ2MjA1ZWU1NmFkNi4uM2Q5NjY1N2M5MDQ3M2RjMDkwZTA3ZWQ2Y2YyOThl
MjVlZjIzOGJiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDE0LTA0LTE3ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgUmVn
aW9uc10gU2VsZWN0aW9uIGhpZ2hsaWdodCBkb2Vzbid0IG1hdGNoIERPTSBzZWxlY3Rpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTUxMQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
aW1wbGVtZW50cyBhIHN1YnRyZWVzIGFwcHJvYWNoIHRvIGZpeCBzZWxlY3Rpb24gaW50ZXJhY3Rp
b24gaW4gQ1NTIFJlZ2lvbnMuCisKKyAgICAgICAgVGhlIGlkZWEgaXMgdG8gZGl2aWRlIHRoZSBS
ZW5kZXIgdHJlZSBpbiBzdWJ0cmVlcy4gT25lIHN1YnRyZWUgd2lsbCBiZSB0aGUgUmVuZGVyVmll
dyAod2hpY2ggaXMgYWx3YXlzIHByZXNlbnQpLAorICAgICAgICB0aGVuIGZvciBlYWNoIFJlbmRl
ck5hbWVkRmxvd1RocmVhZCAod2hpY2ggYXJlIGNoaWxkcmVuIG9mIFJlbmRlclZpZXcpIHdlIHdp
bGwgaGF2ZSBhbiBleHRyYSBzdWJ0cmVlLgorCisgICAgICAgIEZvciBlYWNoIHN1YnRyZWUgaXQg
ZGV0ZXJtaW5lcyB0aGUgc3RhcnQgYW5kIGVuZCBwb3NpdGlvbnMgYWNjb3JkaW5nIHRvIHRoZSBE
T00gdHJlZS4gU28sIGV2ZXJ5IHN1YnRyZWUgd2lsbAorICAgICAgICBhbHdheXMgaGF2ZSBhIHN0
YXJ0IGFuZCBlbmQgcG9zaXRpb24sIGFuZCB0aGUgc2VsZWN0aW9uIGFsZ29yaXRobSB3aWxsIGJl
IGFibGUgdG8gcmVhY2ggdGhlIGVuZCBmcm9tIHRoZSBzdGFydAorICAgICAgICB3aXRob3V0IHBy
b2JsZW1zICh0aGlzIGFsbG93cyB1cyB0byByZW1vdmUgdGhlIGNoYW5nZXMgaW50cm9kdWNlZCBp
biByMTU1MDU4KS4KKworICAgICAgICBUaGVuIHNlbGVjdGlvbiByZWxhdGVkIG1ldGhvZHMgaW4g
UmVuZGVyVmlldyBhcmUgYWRhcHRlZCB0byBlbnN1cmUgdGhhdCB0aGV5IGFyZSBjYWxsZWQgZm9y
IGVhY2ggc3VidHJlZS4gTWFraW5nCisgICAgICAgIHRoZSBzZWxlY3Rpb24gaGlnaGxpZ2h0IHRv
IG1hdGNoIERPTSBzZWxlY3Rpb24gYXMgZXhwZWN0ZWQuCisKKyAgICAgICAgVGVzdDogZmFzdC9y
ZWdpb25zL3NlbGVjdGlvbi9zZWxlY3RpbmctdGV4dC1pbmNsdWRpbmctcmVnaW9uLmh0bWwKKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGQgbmV3IGNsYXNzIFNlbGVjdGlvblN1YnRyZWVS
b290IHRvIGJ1aWxkIGZpbGUuCisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaDog
SW5oZXJpdCBmcm9tIFNlbGVjdGlvblN1YnRyZWVSb290LgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpzZWxlY3Rp
b25Sb290KTogTmV3IG1ldGhvZCB0byByZXR1cm4gdGhlIFJlbmRlck5hbWVkRmxvd1RocmVhZCBp
ZiBhbnkgb3IgdGhlIFJlbmRlclZpZXcKKyAgICAgICAgb3RoZXJ3aXNlLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0OjpzZWxlY3Rpb25TdGFydEVuZCk6IElmIGl0J3MgaW5zaWRlIGEg
UmVuZGVyTmFtZWRGbG93VGhyZWFkIHVzZSBzcGVjaWZpYyBtZXRob2QgaW5zdGVhZAorICAgICAg
ICBvZiB0aGUgUmVuZGVyVmlldydzIG9uZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0Lmg6IEFkZCBuZXcgbWV0aG9kIHNpZ25hdHVyZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpzZWxlY3Rpb25Cb3Vu
ZHMpOiBBZGFwdCBtZXRob2QgdG8gc3VidHJlZXMgYXBwcm9hY2guCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJWaWV3OjpzdWJ0cmVlU2VsZWN0aW9uQm91bmRzKTogTW9kaWZ5IHByZXZpb3VzIG1l
dGhvZCBpbiBvcmRlciB0byB1c2UgU2VsZWN0aW9uU3VidHJlZVJvb3QKKyAgICAgICAgb2JqZWN0
cy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OnJlcGFpbnRTZWxlY3Rpb24pOiBBZGFw
dCBtZXRob2QgdG8gc3VidHJlZXMgYXBwcm9hY2guCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJW
aWV3OjpyZXBhaW50U3VidHJlZVNlbGVjdGlvbik6IE1vZGlmeSBwcmV2aW91cyBtZXRob2QgaW4g
b3JkZXIgdG8gdXNlIFNlbGVjdGlvblN1YnRyZWVSb290CisgICAgICAgIG9iamVjdHMuCisgICAg
ICAgIChnZXROZXh0T3JQcmV2UmVuZGVyT2JqZWN0QmFzZWRPbkRpcmVjdGlvbik6IERlbGV0ZWQg
bWV0aG9kIGZyb20gcjE1NTA1OCBhcyBpdCBpcyBub3QgbmVlZGVkIGFueW1vcmUuIEVhY2gKKyAg
ICAgICAgc3VidHJlZSB3aWxsIGhhdmUgc3RhcnQgYW5kIGVuZCBwb3NpdGlvbnMsIHNvIHRoZSBz
ZWxlY3Rpb24gYWxnb3JpdGhtIHdpbGwgYWx3YXlzIGZpbmQgdGhlIGVuZC4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclZpZXc6OnNldFNlbGVjdGlvbik6IEFkYXB0IG1ldGhvZCB0byBzdWJ0cmVl
cyBhcHByb2FjaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OnNwbGl0U2VsZWN0aW9u
QmV0d2VlblN1YnRyZWVzKTogRGV0ZXJtaW5lIHN0YXJ0IGFuZCBlbmQgcG9zaXRpb25zIGZvciBl
YWNoIHN1YnRyZWUgYW5kCisgICAgICAgIGNhbGwgc2V0U3VidHJlZVNlbGVjdGlvbigpLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6c2V0U3VidHJlZVNlbGVjdGlvbik6IE1vZGlmeSBw
cmV2aW91cyBtZXRob2QgaW4gb3JkZXIgdG8gdXNlIFNlbGVjdGlvblN1YnRyZWVSb290IG9iamVj
dHMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDogSW5oZXJpdCBmcm9tIFNlbGVj
dGlvblN1YnRyZWVSb290LiBBZGQgc2lnbmF0dXJlIGZvciBuZXcgaGVscGVyIG1ldGhvZHMgcmVj
ZWl2aW5nCisgICAgICAgIFNlbGVjdGlvblN1YnRyZWVSb290IG9iamVjdHMuCisgICAgICAgICog
cmVuZGVyaW5nL1NlbGVjdGlvblN1YnRyZWVSb290LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpTZWxlY3Rpb25TdWJ0cmVlUm9vdDo6U2VsZWN0aW9uU3VidHJlZVJvb3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U2VsZWN0aW9uU3VidHJlZVJvb3Q6OnNlbGVjdGlvblN0YXJ0RW5kUG9zaXRp
b25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvU2VsZWN0aW9uU3VidHJlZVJvb3QuaDogQWRkZWQu
IE5ldyBjbGFzcyB0byBpZGVudGlmeSByb290IGVsZW1lbnRzIGZvciB0aGUgc3VidHJlZXMuIFdp
dGggc29tZSBiYXNpYworICAgICAgICBhdHRyaWJ1dGVzIGFuZCBtZXRob2RzIHRvIHN0b3JlIHRo
ZSBzdGFydCBhbmQgZW5kIHBvc2l0aW9ucyBhbmQgb2Zmc2V0cy4KKyAgICAgICAgKFdlYkNvcmU6
OlNlbGVjdGlvblN1YnRyZWVSb290OjpzZWxlY3Rpb25TdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpTZWxlY3Rpb25TdWJ0cmVlUm9vdDo6c2VsZWN0aW9uU3RhcnRQb3MpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VsZWN0aW9uU3VidHJlZVJvb3Q6OnNlbGVjdGlvbkVuZCk6CisgICAgICAgIChXZWJD
b3JlOjpTZWxlY3Rpb25TdWJ0cmVlUm9vdDo6c2VsZWN0aW9uRW5kUG9zKToKKyAgICAgICAgKFdl
YkNvcmU6OlNlbGVjdGlvblN1YnRyZWVSb290OjpzZXRTZWxlY3Rpb25TdGFydCk6CisgICAgICAg
IChXZWJDb3JlOjpTZWxlY3Rpb25TdWJ0cmVlUm9vdDo6c2V0U2VsZWN0aW9uU3RhcnRQb3MpOgor
ICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uU3VidHJlZVJvb3Q6OnNldFNlbGVjdGlvbkVuZCk6
CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25TdWJ0cmVlUm9vdDo6c2V0U2VsZWN0aW9uRW5k
UG9zKToKKwogMjAxNC0wNC0xNSAgSHlvd29uIEtpbSAgPGh3MTAwOC5raW1Ac2Ftc3VuZy5jb20+
CiAKICAgICAgICAgW0VGTF0gRml4IHByb2JsZW1zIHdpdGggdGhlIHBpeGVsIGR1bXAuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CmluZGV4IDYxNzY0ZDY1NTMyZjU2YWU4YjA1N2YyMDM2Y2E1MjY5ODc0ZGU3
ZjMuLjgyMzUzMDNlYjdkYjc1Yzk1MWM4YmFmYzgxYWM1ZmM4YWViZTc4Y2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC0yMzY2LDYgKzIzNjYsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAg
cmVuZGVyaW5nL1JlbmRlclZUVEN1ZS5jcHAKICAgICByZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNw
cAogICAgIHJlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcAorICAgIHJlbmRlcmluZy9TZWxlY3Rp
b25TdWJ0cmVlUm9vdC5jcHAKICAgICByZW5kZXJpbmcvU2Nyb2xsQmVoYXZpb3IuY3BwCiAgICAg
cmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXQuY3BwCiAgICAgcmVuZGVyaW5nL1NpbXBsZUxpbmVM
YXlvdXRGdW5jdGlvbnMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvagppbmRleCBkZDlmMDJmZmY2Y2I5YzI5ZWM0MDFiMzBkN2FkZWEzMDdmM2Rk
NjU2Li40YzQ5MzBiMDcxODE1MjNjM2E3NTFmMTI2ZWY2OGRhMjMwODRhZjhjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTExMjk5LDYg
KzExMjk5LDcgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxy
ZW5kZXJpbmdcU2VsZWN0aW9uU3VidHJlZVJvb3QuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccmVuZGVyaW5nXFNpbXBsZUxpbmVMYXlvdXQuY3BwIiAvPgogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFNpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFRleHRQYWludFN0eWxlLmNw
cCIgLz4KQEAgLTIwMDk2LDYgKzIwMDk3LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHJlbmRlcmluZ1xSZW5kZXJXaWRnZXQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHJlbmRlcmluZ1xSb290SW5saW5lQm94LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxyZW5kZXJpbmdcU2Nyb2xsQmVoYXZpb3IuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHJlbmRlcmluZ1xTZWxlY3Rpb25TdWJ0cmVlUm9vdC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5ccmVuZGVyaW5nXFNpbXBsZUxpbmVMYXlvdXQuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xTaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcU2ltcGxlTGluZUxheW91dFJl
c29sdmVyLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggMmM2MGQ2NDI4YjAxNDZmYzM2NzAwODFmODY0
NzQwYmE1OWYyNzNiOS4uNTlkMTg4M2Q1NWQ1N2Y2MDg2YmUzNGRiNjFmNjQyNWRmNTQ0OWU3NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
ai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2ouZmlsdGVycwpAQCAtNjk1Miw2ICs2OTUyLDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGNhaXJvXFRpbGVkQmFja2luZ1N0b3JlQmFja2VuZENh
aXJvLmNwcCI+CiAgICAgICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzXGNhaXJvPC9GaWx0ZXI+
CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdc
U2VsZWN0aW9uU3VidHJlZVJvb3QuY3BwIj4KKyAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nPC9GaWx0
ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJp
bmdcU2ltcGxlTGluZUxheW91dC5jcHAiPgogICAgICAgPEZpbHRlcj5yZW5kZXJpbmc8L0ZpbHRl
cj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTE0ODA1LDYgKzE0ODA4LDkgQEAKICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xTaW1wbGVMaW5lTGF5b3V0UmVzb2x2ZXIuaCI+CiAg
ICAgICA8RmlsdGVyPnJlbmRlcmluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFNlbGVjdGlvblN1YnRyZWVSb290LmgiPgor
ICAgICAgPEZpbHRlcj5yZW5kZXJpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xTaW1wbGVMaW5lTGF5b3V0LmgiPgogICAg
ICAgPEZpbHRlcj5yZW5kZXJpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4YTUx
ZDdjNDBlMjJmZDNjOTZmM2FlMDU0NWFlZTJiNWQ3NGYzMDk0Li4zNTg0MTE4YWRmYzZiMzllYjM3
NzY5Y2RmMmIzMjU4ODg4ZTk3Nzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NjIxLDYgKzU2MjEsOCBAQAogCQlDREM4QjVB
RDE4MDRBRTVEMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDOEI1QUMxODA0QUU1RDAw
MTZFNjg1IC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaCAqLzsgfTsKIAkJQ0RDQTgyOTYx
Njc5MTAwRjAwODc1NzE0IC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9uSU9TLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDQTgyOTQxNjc5MTAwRjAw
ODc1NzE0IC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9uSU9TLm1tICovOyB9OwogCQlDRENBOThF
QjE4QjJDOEVCMDBDMTJGRjkgLyogQ0RNUHJpdmF0ZU1lZGlhUGxheWVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0E5OEVBMThCMkM4RUIwMEMx
MkZGOSAvKiBDRE1Qcml2YXRlTWVkaWFQbGF5ZXIuY3BwICovOyB9OworCQlDRENGQUJCRDE4QzBB
Rjc4MDA2Rjg0NTAgLyogU2VsZWN0aW9uU3VidHJlZVJvb3QuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0ZBQkJCMThDMEFFMzEwMDZGODQ1MCAvKiBT
ZWxlY3Rpb25TdWJ0cmVlUm9vdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCUNEQ0ZBQkJFMThDMEFGODQwMDZGODQ1MCAvKiBTZWxlY3Rpb25TdWJ0
cmVlUm9vdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRENGQUJCQzE4QzBBRjE5MDA2Rjg0NTAgLyogU2VsZWN0aW9uU3VidHJlZVJvb3QuY3BwICov
OyB9OwogCQlDREQ1MjVENzE0NUI2REQwMDA4RDIwNEQgLyogSlNIVE1MTWVkaWFFbGVtZW50Q3Vz
dG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
RjY1Q0NDMTQ1QjZBRkUwMEM0QzdBQSAvKiBKU0hUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwICov
OyB9OwogCQlDREQ3MDg5NjE4MzU5RjZGMDAyQjNEQzYgLyogU2FtcGxlTWFwLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERDcwODk0MTgzNTlGNkUw
MDJCM0RDNiAvKiBTYW1wbGVNYXAuY3BwICovOyB9OwogCQlDREQ3MDg5NzE4MzU5RjZGMDAyQjNE
QzYgLyogU2FtcGxlTWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDREQ3MDg5NTE4MzU5RjZGMDAyQjNEQzYgLyogU2FtcGxlTWFwLmggKi87IH07CkBA
IC0xMjk3OSw2ICsxMjk4MSw4IEBACiAJCUNEQ0E5OEU5MThCMkM4RDAwMEMxMkZGOSAvKiBDRE1Q
cml2YXRlTWVkaWFQbGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ0RN
UHJpdmF0ZU1lZGlhUGxheWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0E5
OEVBMThCMkM4RUIwMEMxMkZGOSAvKiBDRE1Qcml2YXRlTWVkaWFQbGF5ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ0RNUHJpdmF0ZU1lZGlhUGxheWVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDRTVDRDAxNDYzM0JDOTAwRDQ3Q0NBIC8q
IEV2ZW50VGFyZ2V0RmFjdG9yeS5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFdmVudFRhcmdl
dEZhY3RvcnkuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQ0ZBQkJCMThDMEFF
MzEwMDZGODQ1MCAvKiBTZWxlY3Rpb25TdWJ0cmVlUm9vdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTZWxlY3Rpb25TdWJ0cmVlUm9vdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDRENGQUJCQzE4QzBBRjE5MDA2Rjg0NTAgLyogU2VsZWN0aW9uU3VidHJlZVJv
b3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VsZWN0aW9uU3Vi
dHJlZVJvb3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREQxRTUyNTE2N0JB
NTY0MDBDRTgyMEIgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0RENzA4OTQxODM1OUY2RTAwMkIzREM2IC8qIFNhbXBsZU1hcC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTYW1wbGVNYXAuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREQ3MDg5NTE4MzU5RjZGMDAyQjNEQzYgLyog
U2FtcGxlTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNhbXBsZU1hcC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjIxMDMsNiArMjIxMDcsOCBAQAogCQkJ
CUE4Q0ZGNURBMEExNTVBMDUwMDBBNDIzNCAvKiBSb290SW5saW5lQm94LmggKi8sCiAJCQkJNUQ5
MjVCNjUwRjY0RDRERDAwQjg0N0YwIC8qIFNjcm9sbEJlaGF2aW9yLmNwcCAqLywKIAkJCQk1RDky
NUI2NjBGNjRENEREMDBCODQ3RjAgLyogU2Nyb2xsQmVoYXZpb3IuaCAqLywKKwkJCQlDRENGQUJC
QzE4QzBBRjE5MDA2Rjg0NTAgLyogU2VsZWN0aW9uU3VidHJlZVJvb3QuY3BwICovLAorCQkJCUNE
Q0ZBQkJCMThDMEFFMzEwMDZGODQ1MCAvKiBTZWxlY3Rpb25TdWJ0cmVlUm9vdC5oICovLAogCQkJ
CUU0ODk0NEEwMTgwQjU3RDgwMEYxNjVEOCAvKiBTaW1wbGVMaW5lTGF5b3V0LmNwcCAqLywKIAkJ
CQlFNDg5NDRBMTE4MEI1N0Q4MDBGMTY1RDggLyogU2ltcGxlTGluZUxheW91dC5oICovLAogCQkJ
CUU0RTlCMTFBMTgxNDU2OTIwMDNBQ0NERiAvKiBTaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmNw
cCAqLywKQEAgLTI1ODE2LDYgKzI1ODIyLDcgQEAKIAkJCQkyRDNBMEUzNjEzQTdENzYxMDBFODVB
RjAgLyogU1ZHUGFyc2luZ0Vycm9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTBEQkY0NzE4Rjky
MzE3MDAwRDcwQzYgLyogUXVpY2tMb29rSGFuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk4NEM2Nzg0RDEyMTQ4MTQ3MDBBOTI5MDIgLyogU1ZHUGF0aEJsZW5kZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUNEQ0ZBQkJEMThDMEFGNzgwMDZGODQ1MCAvKiBTZWxlY3Rpb25TdWJ0cmVlUm9v
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ3NkM5RUIxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1Bh
dGhCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDE5RDJBNzEyMEQ5MkQwMDAxNDFGOEYg
LyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTg0MTlEMkE5MTIwRDky
RDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovLApA
QCAtMjc5NDMsNiArMjc5NTAsNyBAQAogCQkJCUJDRTFDNDNCMEQ5ODMwRDMwMDNCMDJGMiAvKiBK
U0xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRTFDNDQwMEQ5ODMwRjQwMDNCMDJG
MiAvKiBKU0xvY2F0aW9uQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCThGQUM3NzREMTE5
ODcyQ0IwMDE1QUU5NCAvKiBKU01haW5UaHJlYWRFeGVjU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQ0RDRkFCQkUxOEMwQUY4NDAwNkY4NDUwIC8qIFNlbGVjdGlvblN1YnRyZWVSb290LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUNEMjdGNkU1MTQ1NzY4NUEwMDc4MjA3RCAvKiBKU01lZGlh
Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREFCNkQyRDE3QzgxNEVFMDBDNjBC
MzQgLyogSlNNZWRpYUNvbnRyb2xzSG9zdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDIzQTEy
NTEzRjVGQTU5MDBGNjcwMDEgLyogSlNNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TmFtZWRGbG93VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRG
bG93VGhyZWFkLmgKaW5kZXggYTkwNWU1YWMwZjQzMThlODY1YTgwODU5ZDllYThiZjgyZWFkMTE1
MS4uZDZiNzAyYWFjNmE3NzVjYmNkYmQyMDVjOWRjZjAwZjA2M2E4M2FiMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaApAQCAtMjgsNiAr
MjgsNyBAQAogI2RlZmluZSBSZW5kZXJOYW1lZEZsb3dUaHJlYWRfaAogCiAjaW5jbHVkZSAiUmVu
ZGVyRmxvd1RocmVhZC5oIgorI2luY2x1ZGUgIlNlbGVjdGlvblN1YnRyZWVSb290LmgiCiAjaW5j
bHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KICNpbmNsdWRl
IDx3dGYvTGlzdEhhc2hTZXQuaD4KQEAgLTQzLDcgKzQ0LDcgQEAgdHlwZWRlZiBMaXN0SGFzaFNl
dDxSZW5kZXJOYW1lZEZsb3dUaHJlYWQqPiBSZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0OwogdHlw
ZWRlZiBIYXNoQ291bnRlZFNldDxSZW5kZXJOYW1lZEZsb3dUaHJlYWQqPiBSZW5kZXJOYW1lZEZs
b3dUaHJlYWRDb3VudGVkU2V0OwogdHlwZWRlZiBMaXN0SGFzaFNldDxFbGVtZW50Kj4gTmFtZWRG
bG93Q29udGVudEVsZW1lbnRzOwogCi1jbGFzcyBSZW5kZXJOYW1lZEZsb3dUaHJlYWQgZmluYWwg
OiBwdWJsaWMgUmVuZGVyRmxvd1RocmVhZCB7CitjbGFzcyBSZW5kZXJOYW1lZEZsb3dUaHJlYWQg
ZmluYWwgOiBwdWJsaWMgUmVuZGVyRmxvd1RocmVhZCwgcHVibGljIFNlbGVjdGlvblN1YnRyZWVS
b290IHsKIHB1YmxpYzoKICAgICBSZW5kZXJOYW1lZEZsb3dUaHJlYWQoRG9jdW1lbnQmLCBQYXNz
UmVmPFJlbmRlclN0eWxlPiwgUGFzc1JlZjxXZWJLaXROYW1lZEZsb3c+KTsKICAgICB2aXJ0dWFs
IH5SZW5kZXJOYW1lZEZsb3dUaHJlYWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHAKaW5kZXggYTMzODIxM2QxZGJmODFlMWUyMDU0NzAwYmJlZmY5MmZiMTg2MTFk
MS4uN2YyNDI3ZjNkNWUyMzg5M2MxYjcwYjNhOGI2MDBjYzVmNjI0NDJiYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTE1NDAsOSArMTU0MCwxOCBAQCBD
b2xvciBSZW5kZXJPYmplY3Q6OnNlbGVjdGlvbkVtcGhhc2lzTWFya0NvbG9yKCkgY29uc3QKICAg
ICByZXR1cm4gc2VsZWN0aW9uQ29sb3IoQ1NTUHJvcGVydHlXZWJraXRUZXh0RW1waGFzaXNDb2xv
cik7CiB9CiAKK1NlbGVjdGlvblN1YnRyZWVSb290JiBSZW5kZXJPYmplY3Q6OnNlbGVjdGlvblJv
b3QoKSBjb25zdAoreworICAgIFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQgPSBmbG93VGhy
ZWFkQ29udGFpbmluZ0Jsb2NrKCk7CisgICAgaWYgKGZsb3dUaHJlYWQgJiYgZmxvd1RocmVhZC0+
aXNSZW5kZXJOYW1lZEZsb3dUaHJlYWQoKSkKKyAgICAgICAgcmV0dXJuICp0b1JlbmRlck5hbWVk
Rmxvd1RocmVhZChmbG93VGhyZWFkKTsKKworICAgIHJldHVybiB2aWV3KCk7Cit9CisKIHZvaWQg
UmVuZGVyT2JqZWN0OjpzZWxlY3Rpb25TdGFydEVuZChpbnQmIHNwb3MsIGludCYgZXBvcykgY29u
c3QKIHsKLSAgICB2aWV3KCkuc2VsZWN0aW9uU3RhcnRFbmQoc3BvcywgZXBvcyk7CisgICAgc2Vs
ZWN0aW9uUm9vdCgpLnNlbGVjdGlvblN0YXJ0RW5kUG9zaXRpb25zKHNwb3MsIGVwb3MpOwogfQog
CiB2b2lkIFJlbmRlck9iamVjdDo6aGFuZGxlRHluYW1pY0Zsb2F0UG9zaXRpb25DaGFuZ2UoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDQ0ODI0YTBlNjRlZDNm
OTllYTllZDJjNzlmYTFlMjI1YjIzM2NlY2YuLjIyZmZiZGVhM2Y2YmY2YTZiNzRmMTc1Y2MwOTc1
NjdiODJkYzY4MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAg
LTYwLDYgKzYwLDcgQEAgY2xhc3MgUmVuZGVyTGF5ZXI7CiBjbGFzcyBSZW5kZXJMYXllck1vZGVs
T2JqZWN0OwogY2xhc3MgUmVuZGVyTmFtZWRGbG93VGhyZWFkOwogY2xhc3MgUmVuZGVyVGhlbWU7
CitjbGFzcyBTZWxlY3Rpb25TdWJ0cmVlUm9vdDsKIGNsYXNzIFRyYW5zZm9ybVN0YXRlOwogY2xh
c3MgVmlzaWJsZVBvc2l0aW9uOwogI2lmIFBMQVRGT1JNKElPUykKQEAgLTg1MCw2ICs4NTEsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGltYWdlQ2hhbmdlZChDYWNoZWRJbWFnZSosIGNv
bnN0IEludFJlY3QqID0gMCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGltYWdlQ2hhbmdl
ZChXcmFwcGVkSW1hZ2VQdHIsIGNvbnN0IEludFJlY3QqID0gMCkgeyB9CiAKKyAgICBTZWxlY3Rp
b25TdWJ0cmVlUm9vdCYgc2VsZWN0aW9uUm9vdCgpIGNvbnN0OwogICAgIHZvaWQgc2VsZWN0aW9u
U3RhcnRFbmQoaW50JiBzcG9zLCBpbnQmIGVwb3MpIGNvbnN0OwogICAgIAogICAgIHZvaWQgcmVt
b3ZlRnJvbVBhcmVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmlu
ZGV4IGNjM2I3ZDljMzU1YzEzZWU5YzcyNjgyNmE2MjRjZGMzOTJjNmExZDguLjY4MmM4ZWZkNzZh
NjM0NGY5ZWIxMWI0MzZmMDczODYwNWIxMjY2NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJIVE1MSUZyYW1lRWxl
bWVudC5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJJbWFnZVF1YWxp
dHlDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiTm9kZVRyYXZlcnNhbC5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKICNpbmNsdWRlICJSZW5kZXJHZW9tZXRyeU1hcC5oIgogI2luY2x1ZGUgIlJlbmRlckl0
ZXJhdG9yLmgiCkBAIC02NTksMTMgKzY2MCwyNyBAQCBzdGF0aWMgUmVuZGVyT2JqZWN0KiByZW5k
ZXJlckFmdGVyUG9zaXRpb24oUmVuZGVyT2JqZWN0KiBvYmplY3QsIHVuc2lnbmVkIG9mZnNldAog
CiBJbnRSZWN0IFJlbmRlclZpZXc6OnNlbGVjdGlvbkJvdW5kcyhib29sIGNsaXBUb1Zpc2libGVD
b250ZW50KSBjb25zdAogeworICAgIExheW91dFJlY3Qgc2VsUmVjdCA9IHN1YnRyZWVTZWxlY3Rp
b25Cb3VuZHMoKnRoaXMsIGNsaXBUb1Zpc2libGVDb250ZW50KTsKKworICAgIGlmIChtX2Zsb3dU
aHJlYWRDb250cm9sbGVyKSB7CisgICAgICAgIGZvciAoYXV0byogbmFtZWRGbG93VGhyZWFkIDog
Km1fZmxvd1RocmVhZENvbnRyb2xsZXItPnJlbmRlck5hbWVkRmxvd1RocmVhZExpc3QoKSkgewor
ICAgICAgICAgICAgTGF5b3V0UmVjdCBjdXJyUmVjdCA9IHN1YnRyZWVTZWxlY3Rpb25Cb3VuZHMo
Km5hbWVkRmxvd1RocmVhZCwgY2xpcFRvVmlzaWJsZUNvbnRlbnQpOworICAgICAgICAgICAgc2Vs
UmVjdC51bml0ZShjdXJyUmVjdCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gcGl4
ZWxTbmFwcGVkSW50UmVjdChzZWxSZWN0KTsKK30KKworTGF5b3V0UmVjdCBSZW5kZXJWaWV3Ojpz
dWJ0cmVlU2VsZWN0aW9uQm91bmRzKGNvbnN0IFNlbGVjdGlvblN1YnRyZWVSb290JiByb290LCBi
b29sIGNsaXBUb1Zpc2libGVDb250ZW50KSBjb25zdAorewogICAgIHR5cGVkZWYgSGFzaE1hcDxS
ZW5kZXJPYmplY3QqLCBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU2VsZWN0aW9uSW5mbz4+IFNlbGVj
dGlvbk1hcDsKICAgICBTZWxlY3Rpb25NYXAgc2VsZWN0ZWRPYmplY3RzOwogCi0gICAgUmVuZGVy
T2JqZWN0KiBvcyA9IG1fc2VsZWN0aW9uU3RhcnQ7Ci0gICAgUmVuZGVyT2JqZWN0KiBzdG9wID0g
cmVuZGVyZXJBZnRlclBvc2l0aW9uKG1fc2VsZWN0aW9uRW5kLCBtX3NlbGVjdGlvbkVuZFBvcyk7
CisgICAgUmVuZGVyT2JqZWN0KiBvcyA9IHJvb3Quc2VsZWN0aW9uU3RhcnQoKTsKKyAgICBSZW5k
ZXJPYmplY3QqIHN0b3AgPSByZW5kZXJlckFmdGVyUG9zaXRpb24ocm9vdC5zZWxlY3Rpb25FbmQo
KSwgcm9vdC5zZWxlY3Rpb25FbmRQb3MoKSk7CiAgICAgd2hpbGUgKG9zICYmIG9zICE9IHN0b3Ap
IHsKLSAgICAgICAgaWYgKChvcy0+Y2FuQmVTZWxlY3Rpb25MZWFmKCkgfHwgb3MgPT0gbV9zZWxl
Y3Rpb25TdGFydCB8fCBvcyA9PSBtX3NlbGVjdGlvbkVuZCkgJiYgb3MtPnNlbGVjdGlvblN0YXRl
KCkgIT0gU2VsZWN0aW9uTm9uZSkgeworICAgICAgICBpZiAoKG9zLT5jYW5CZVNlbGVjdGlvbkxl
YWYoKSB8fCBvcyA9PSByb290LnNlbGVjdGlvblN0YXJ0KCkgfHwgb3MgPT0gcm9vdC5zZWxlY3Rp
b25FbmQoKSkgJiYgb3MtPnNlbGVjdGlvblN0YXRlKCkgIT0gU2VsZWN0aW9uTm9uZSkgewogICAg
ICAgICAgICAgLy8gQmxvY2tzIGFyZSByZXNwb25zaWJsZSBmb3IgcGFpbnRpbmcgbGluZSBnYXBz
IGFuZCBtYXJnaW4gZ2Fwcy4gVGhleSBtdXN0IGJlIGV4YW1pbmVkIGFzIHdlbGwuCiAgICAgICAg
ICAgICBzZWxlY3RlZE9iamVjdHMuc2V0KG9zLCBzdGQ6Om1ha2VfdW5pcXVlPFJlbmRlclNlbGVj
dGlvbkluZm8+KG9zLCBjbGlwVG9WaXNpYmxlQ29udGVudCkpOwogICAgICAgICAgICAgUmVuZGVy
QmxvY2sqIGNiID0gb3MtPmNvbnRhaW5pbmdCbG9jaygpOwpAQCAtNjk0LDE2ICs3MDksMjYgQEAg
SW50UmVjdCBSZW5kZXJWaWV3OjpzZWxlY3Rpb25Cb3VuZHMoYm9vbCBjbGlwVG9WaXNpYmxlQ29u
dGVudCkgY29uc3QKICAgICAgICAgfQogICAgICAgICBzZWxSZWN0LnVuaXRlKGN1cnJSZWN0KTsK
ICAgICB9Ci0gICAgcmV0dXJuIHBpeGVsU25hcHBlZEludFJlY3Qoc2VsUmVjdCk7CisgICAgcmV0
dXJuIHNlbFJlY3Q7CiB9CiAKIHZvaWQgUmVuZGVyVmlldzo6cmVwYWludFNlbGVjdGlvbigpIGNv
bnN0CiB7CisgICAgcmVwYWludFN1YnRyZWVTZWxlY3Rpb24oKnRoaXMpOworCisgICAgaWYgKG1f
Zmxvd1RocmVhZENvbnRyb2xsZXIpIHsKKyAgICAgICAgZm9yIChhdXRvKiBuYW1lZEZsb3dUaHJl
YWQgOiAqbV9mbG93VGhyZWFkQ29udHJvbGxlci0+cmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdCgp
KQorICAgICAgICAgICAgcmVwYWludFN1YnRyZWVTZWxlY3Rpb24oKm5hbWVkRmxvd1RocmVhZCk7
CisgICAgfQorfQorCit2b2lkIFJlbmRlclZpZXc6OnJlcGFpbnRTdWJ0cmVlU2VsZWN0aW9uKGNv
bnN0IFNlbGVjdGlvblN1YnRyZWVSb290JiByb290KSBjb25zdAorewogICAgIEhhc2hTZXQ8UmVu
ZGVyQmxvY2sqPiBwcm9jZXNzZWRCbG9ja3M7CiAKLSAgICBSZW5kZXJPYmplY3QqIGVuZCA9IHJl
bmRlcmVyQWZ0ZXJQb3NpdGlvbihtX3NlbGVjdGlvbkVuZCwgbV9zZWxlY3Rpb25FbmRQb3MpOwot
ICAgIGZvciAoUmVuZGVyT2JqZWN0KiBvID0gbV9zZWxlY3Rpb25TdGFydDsgbyAmJiBvICE9IGVu
ZDsgbyA9IG8tPm5leHRJblByZU9yZGVyKCkpIHsKLSAgICAgICAgaWYgKCFvLT5jYW5CZVNlbGVj
dGlvbkxlYWYoKSAmJiBvICE9IG1fc2VsZWN0aW9uU3RhcnQgJiYgbyAhPSBtX3NlbGVjdGlvbkVu
ZCkKKyAgICBSZW5kZXJPYmplY3QqIGVuZCA9IHJlbmRlcmVyQWZ0ZXJQb3NpdGlvbihyb290LnNl
bGVjdGlvbkVuZCgpLCByb290LnNlbGVjdGlvbkVuZFBvcygpKTsKKyAgICBmb3IgKFJlbmRlck9i
amVjdCogbyA9IHJvb3Quc2VsZWN0aW9uU3RhcnQoKTsgbyAmJiBvICE9IGVuZDsgbyA9IG8tPm5l
eHRJblByZU9yZGVyKCkpIHsKKyAgICAgICAgaWYgKCFvLT5jYW5CZVNlbGVjdGlvbkxlYWYoKSAm
JiBvICE9IHJvb3Quc2VsZWN0aW9uU3RhcnQoKSAmJiBvICE9IHJvb3Quc2VsZWN0aW9uRW5kKCkp
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKG8tPnNlbGVjdGlvblN0YXRlKCkg
PT0gU2VsZWN0aW9uTm9uZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtNzMyLDI3ICs3NTcs
NiBAQCB2b2lkIFJlbmRlclZpZXc6OnNldE1heGltYWxPdXRsaW5lU2l6ZShpbnQgbykKICAgICB9
CiB9CiAKLS8vIFdoZW4gZXhwbG9yaW5nIHRoZSBSZW5kZXJUcmVlIGxvb2tpbmcgZm9yIHRoZSBu
b2RlcyBpbnZvbHZlZCBpbiB0aGUgU2VsZWN0aW9uLCBzb21ldGltZXMgaXQncwotLy8gcmVxdWly
ZWQgdG8gY2hhbmdlIHRoZSB0cmF2ZXJzaW5nIGRpcmVjdGlvbiBiZWNhdXNlIHRoZSAic3RhcnQi
IHBvc2l0aW9uIGlzIGJlbG93IHRoZSAiZW5kIiBvbmUuCi1zdGF0aWMgaW5saW5lIFJlbmRlck9i
amVjdCogZ2V0TmV4dE9yUHJldlJlbmRlck9iamVjdEJhc2VkT25EaXJlY3Rpb24oY29uc3QgUmVu
ZGVyT2JqZWN0KiBvLCBjb25zdCBSZW5kZXJPYmplY3QqIHN0b3AsIGJvb2wmIGNvbnRpbnVlRXhw
bG9yaW5nLCBib29sJiBleHBsb3JpbmdCYWNrd2FyZHMpCi17Ci0gICAgUmVuZGVyT2JqZWN0KiBu
ZXh0OwotICAgIGlmIChleHBsb3JpbmdCYWNrd2FyZHMpIHsKLSAgICAgICAgbmV4dCA9IG8tPnBy
ZXZpb3VzSW5QcmVPcmRlcigpOwotICAgICAgICBjb250aW51ZUV4cGxvcmluZyA9IG5leHQgJiYg
IShuZXh0KS0+aXNSZW5kZXJWaWV3KCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbmV4dCA9IG8t
Pm5leHRJblByZU9yZGVyKCk7Ci0gICAgICAgIGNvbnRpbnVlRXhwbG9yaW5nID0gbmV4dCAmJiBu
ZXh0ICE9IHN0b3A7Ci0gICAgICAgIGV4cGxvcmluZ0JhY2t3YXJkcyA9ICFuZXh0ICYmIChuZXh0
ICE9IHN0b3ApOwotICAgICAgICBpZiAoZXhwbG9yaW5nQmFja3dhcmRzKSB7Ci0gICAgICAgICAg
ICBuZXh0ID0gc3RvcC0+cHJldmlvdXNJblByZU9yZGVyKCk7Ci0gICAgICAgICAgICBjb250aW51
ZUV4cGxvcmluZyA9IG5leHQgJiYgIW5leHQtPmlzUmVuZGVyVmlldygpOwotICAgICAgICB9Ci0g
ICAgfQotCi0gICAgcmV0dXJuIG5leHQ7Ci19Ci0KIHZvaWQgUmVuZGVyVmlldzo6c2V0U2VsZWN0
aW9uKFJlbmRlck9iamVjdCogc3RhcnQsIGludCBzdGFydFBvcywgUmVuZGVyT2JqZWN0KiBlbmQs
IGludCBlbmRQb3MsIFNlbGVjdGlvblJlcGFpbnRNb2RlIGJsb2NrUmVwYWludE1vZGUpCiB7CiAg
ICAgLy8gTWFrZSBzdXJlIGJvdGggb3VyIHN0YXJ0IGFuZCBlbmQgb2JqZWN0cyBhcmUgZGVmaW5l
ZC4KQEAgLTc2NywxMCArNzcxLDk0IEBAIHZvaWQgUmVuZGVyVmlldzo6c2V0U2VsZWN0aW9uKFJl
bmRlck9iamVjdCogc3RhcnQsIGludCBzdGFydFBvcywgUmVuZGVyT2JqZWN0KiBlCiAgICAgICAg
IG1fc2VsZWN0aW9uRW5kID09IGVuZCAmJiBtX3NlbGVjdGlvbkVuZFBvcyA9PSBlbmRQb3MgJiYg
IWNhcmV0Q2hhbmdlZCkKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gU2V0IGdsb2JhbCBwb3Np
dGlvbnMgZm9yIG5ldyBzZWxlY3Rpb24uCisgICAgbV9zZWxlY3Rpb25TdGFydCA9IHN0YXJ0Owor
ICAgIG1fc2VsZWN0aW9uU3RhcnRQb3MgPSBzdGFydFBvczsKKyAgICBtX3NlbGVjdGlvbkVuZCA9
IGVuZDsKKyAgICBtX3NlbGVjdGlvbkVuZFBvcyA9IGVuZFBvczsKKworICAgIC8vIElmIHRoZXJl
IGlzIG5vIFJlbmRlck5hbWVkRmxvd1RocmVhZHMgd2UgZm9sbG93IHRoZSByZWd1bGFyIHNlbGVj
dGlvbi4KKyAgICBpZiAoIWhhc1JlbmRlck5hbWVkRmxvd1RocmVhZHMoKSkgeworICAgICAgICBz
ZXRTdWJ0cmVlU2VsZWN0aW9uKCp0aGlzLCBzdGFydCwgc3RhcnRQb3MsIGVuZCwgZW5kUG9zLCBi
bG9ja1JlcGFpbnRNb2RlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHNwbGl0U2Vs
ZWN0aW9uQmV0d2VlblN1YnRyZWVzKHN0YXJ0LCBzdGFydFBvcywgZW5kLCBlbmRQb3MsIGJsb2Nr
UmVwYWludE1vZGUpOworfQorCit2b2lkIFJlbmRlclZpZXc6OnNwbGl0U2VsZWN0aW9uQmV0d2Vl
blN1YnRyZWVzKFJlbmRlck9iamVjdCogc3RhcnQsIGludCBzdGFydFBvcywgUmVuZGVyT2JqZWN0
KiBlbmQsIGludCBlbmRQb3MsIFNlbGVjdGlvblJlcGFpbnRNb2RlIGJsb2NrUmVwYWludE1vZGUp
Cit7CisgICAgLy8gR2V0IHJhbmdlcy4KKyAgICB0eXBlZGVmIEhhc2hNYXA8U2VsZWN0aW9uU3Vi
dHJlZVJvb3QqLCBSZWZQdHI8UmFuZ2U+ID4gUmVuZGVyU3VidHJlZXNNYXA7CisgICAgUmVuZGVy
U3VidHJlZXNNYXAgcmVuZGVyU3VidHJlZXNNYXA7CisKKyAgICAvLyBJbml0aWFsaXplIG1hcCBm
b3IgUmVuZGVyVmlldyBhbmQgYWxsIFJlbmRlck5hbWVkRmxvd1RocmVhZHMuCisgICAgcmVuZGVy
U3VidHJlZXNNYXAuc2V0KHRoaXMsIG51bGxwdHIpOworICAgIGZvciAoYXV0byogbmFtZWRGbG93
VGhyZWFkIDogKmZsb3dUaHJlYWRDb250cm9sbGVyKCkucmVuZGVyTmFtZWRGbG93VGhyZWFkTGlz
dCgpKQorICAgICAgICByZW5kZXJTdWJ0cmVlc01hcC5zZXQobmFtZWRGbG93VGhyZWFkLCBudWxs
cHRyKTsKKworICAgIGlmIChzdGFydCAmJiBlbmQpIHsKKyAgICAgICAgUmVmUHRyPFJhbmdlPiBp
bml0aWFsUmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKGRvY3VtZW50KCksIHN0YXJ0LT5ub2RlKCksIHN0
YXJ0UG9zLCBlbmQtPm5vZGUoKSwgZW5kUG9zKTsKKworICAgICAgICBOb2RlKiBzdGFydE5vZGUg
PSBpbml0aWFsUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCk7CisgICAgICAgIE5vZGUqIGVuZE5vZGUg
PSBpbml0aWFsUmFuZ2UtPmVuZENvbnRhaW5lcigpOworICAgICAgICBOb2RlKiBzdG9wTm9kZSA9
IGluaXRpYWxSYW5nZS0+cGFzdExhc3ROb2RlKCk7CisKKyAgICAgICAgZm9yIChOb2RlKiBub2Rl
ID0gc3RhcnROb2RlOyBub2RlICE9IHN0b3BOb2RlOyBub2RlID0gTm9kZVRyYXZlcnNhbDo6bmV4
dChub2RlKSkgeworICAgICAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUtPnJl
bmRlcmVyKCk7CisgICAgICAgICAgICBpZiAoIXJlbmRlcmVyIHx8ICFyZW5kZXJlci0+Y2FuQmVT
ZWxlY3Rpb25MZWFmKCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAg
IFNlbGVjdGlvblN1YnRyZWVSb290JiByb290ID0gcmVuZGVyZXItPnNlbGVjdGlvblJvb3QoKTsK
KyAgICAgICAgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSByZW5kZXJTdWJ0cmVlc01hcC5nZXQo
JnJvb3QpOworICAgICAgICAgICAgaWYgKCFyYW5nZSkgeworICAgICAgICAgICAgICAgIHJhbmdl
ID0gUmFuZ2U6OmNyZWF0ZShkb2N1bWVudCgpKTsKKworICAgICAgICAgICAgICAgIGlmIChub2Rl
ID09IHN0YXJ0Tm9kZSkKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2UtPnNldFN0YXJ0KG5vZGUs
IHN0YXJ0UG9zKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHJh
bmdlLT5zZXRTdGFydChub2RlLCAwKTsKKworICAgICAgICAgICAgICAgIHJlbmRlclN1YnRyZWVz
TWFwLnNldCgmcm9vdCwgcmFuZ2UpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAo
bm9kZSA9PSBlbmROb2RlKQorICAgICAgICAgICAgICAgIHJhbmdlLT5zZXRFbmQobm9kZSwgZW5k
UG9zKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByYW5nZS0+c2V0RW5kKG5v
ZGUsIG5vZGUtPm9mZnNldEluQ2hhcmFjdGVycygpID8gbm9kZS0+bWF4Q2hhcmFjdGVyT2Zmc2V0
KCkgOiBub2RlLT5jaGlsZE5vZGVDb3VudCgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZv
ciAoUmVuZGVyU3VidHJlZXNNYXA6Oml0ZXJhdG9yIGkgPSByZW5kZXJTdWJ0cmVlc01hcC5iZWdp
bigpOyBpICE9IHJlbmRlclN1YnRyZWVzTWFwLmVuZCgpOyArK2kpIHsKKyAgICAgICAgUmVmUHRy
PFJhbmdlPiByYW5nZSA9IGktPnZhbHVlOworCisgICAgICAgIFJlbmRlck9iamVjdCogbmV3U3Rh
cnQ7CisgICAgICAgIGludCBuZXdTdGFydFBvczsKKyAgICAgICAgUmVuZGVyT2JqZWN0KiBuZXdF
bmQ7CisgICAgICAgIGludCBuZXdFbmRQb3M7CisKKyAgICAgICAgaWYgKHJhbmdlKSB7CisgICAg
ICAgICAgICBuZXdTdGFydCA9IHJhbmdlLT5zdGFydENvbnRhaW5lcigpLT5yZW5kZXJlcigpOwor
ICAgICAgICAgICAgbmV3U3RhcnRQb3MgPSByYW5nZS0+c3RhcnRPZmZzZXQoKTsKKyAgICAgICAg
ICAgIG5ld0VuZCA9IHJhbmdlLT5lbmRDb250YWluZXIoKS0+cmVuZGVyZXIoKTsKKyAgICAgICAg
ICAgIG5ld0VuZFBvcyA9IHJhbmdlLT5lbmRPZmZzZXQoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIG5ld1N0YXJ0ID0gMDsKKyAgICAgICAgICAgIG5ld1N0YXJ0UG9zID0gLTE7Cisg
ICAgICAgICAgICBuZXdFbmQgPSAwOworICAgICAgICAgICAgbmV3RW5kUG9zID0gLTE7CisgICAg
ICAgIH0KKworICAgICAgICBzZXRTdWJ0cmVlU2VsZWN0aW9uKCppLT5rZXksIG5ld1N0YXJ0LCBu
ZXdTdGFydFBvcywgbmV3RW5kLCBuZXdFbmRQb3MsIGJsb2NrUmVwYWludE1vZGUpOworICAgIH0K
K30KKwordm9pZCBSZW5kZXJWaWV3OjpzZXRTdWJ0cmVlU2VsZWN0aW9uKFNlbGVjdGlvblN1YnRy
ZWVSb290JiByb290LCBSZW5kZXJPYmplY3QqIHN0YXJ0LCBpbnQgc3RhcnRQb3MsIFJlbmRlck9i
amVjdCogZW5kLCBpbnQgZW5kUG9zLCBTZWxlY3Rpb25SZXBhaW50TW9kZSBibG9ja1JlcGFpbnRN
b2RlKQorewogICAgIC8vIFJlY29yZCB0aGUgb2xkIHNlbGVjdGVkIG9iamVjdHMuICBUaGVzZSB3
aWxsIGJlIHVzZWQgbGF0ZXIKICAgICAvLyB3aGVuIHdlIGNvbXBhcmUgYWdhaW5zdCB0aGUgbmV3
IHNlbGVjdGVkIG9iamVjdHMuCi0gICAgaW50IG9sZFN0YXJ0UG9zID0gbV9zZWxlY3Rpb25TdGFy
dFBvczsKLSAgICBpbnQgb2xkRW5kUG9zID0gbV9zZWxlY3Rpb25FbmRQb3M7CisgICAgaW50IG9s
ZFN0YXJ0UG9zID0gcm9vdC5zZWxlY3Rpb25TdGFydFBvcygpOworICAgIGludCBvbGRFbmRQb3Mg
PSByb290LnNlbGVjdGlvbkVuZFBvcygpOwogCiAgICAgLy8gT2JqZWN0cyBlYWNoIGhhdmUgYSBz
aW5nbGUgc2VsZWN0aW9uIHJlY3QgdG8gZXhhbWluZS4KICAgICB0eXBlZGVmIEhhc2hNYXA8UmVu
ZGVyT2JqZWN0Kiwgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclNlbGVjdGlvbkluZm8+PiBTZWxlY3Rl
ZE9iamVjdE1hcDsKQEAgLTc4NCwxMiArODcyLDExIEBAIHZvaWQgUmVuZGVyVmlldzo6c2V0U2Vs
ZWN0aW9uKFJlbmRlck9iamVjdCogc3RhcnQsIGludCBzdGFydFBvcywgUmVuZGVyT2JqZWN0KiBl
CiAgICAgU2VsZWN0ZWRCbG9ja01hcCBvbGRTZWxlY3RlZEJsb2NrczsKICAgICBTZWxlY3RlZEJs
b2NrTWFwIG5ld1NlbGVjdGVkQmxvY2tzOwogCi0gICAgUmVuZGVyT2JqZWN0KiBvcyA9IG1fc2Vs
ZWN0aW9uU3RhcnQ7Ci0gICAgUmVuZGVyT2JqZWN0KiBzdG9wID0gcmVuZGVyZXJBZnRlclBvc2l0
aW9uKG1fc2VsZWN0aW9uRW5kLCBtX3NlbGVjdGlvbkVuZFBvcyk7Ci0gICAgYm9vbCBleHBsb3Jp
bmdCYWNrd2FyZHMgPSBmYWxzZTsKLSAgICBib29sIGNvbnRpbnVlRXhwbG9yaW5nID0gb3MgJiYg
KG9zICE9IHN0b3ApOwotICAgIHdoaWxlIChjb250aW51ZUV4cGxvcmluZykgewotICAgICAgICBp
ZiAoKG9zLT5jYW5CZVNlbGVjdGlvbkxlYWYoKSB8fCBvcyA9PSBtX3NlbGVjdGlvblN0YXJ0IHx8
IG9zID09IG1fc2VsZWN0aW9uRW5kKSAmJiBvcy0+c2VsZWN0aW9uU3RhdGUoKSAhPSBTZWxlY3Rp
b25Ob25lKSB7CisgICAgUmVuZGVyT2JqZWN0KiBvcyA9IHJvb3Quc2VsZWN0aW9uU3RhcnQoKTsK
KyAgICBSZW5kZXJPYmplY3QqIHN0b3AgPSByZW5kZXJlckFmdGVyUG9zaXRpb24ocm9vdC5zZWxl
Y3Rpb25FbmQoKSwgcm9vdC5zZWxlY3Rpb25FbmRQb3MoKSk7CisgICAgd2hpbGUgKG9zICYmIG9z
ICE9IHN0b3ApIHsKKyAgICAgICAgaWYgKChvcy0+Y2FuQmVTZWxlY3Rpb25MZWFmKCkgfHwgb3Mg
PT0gcm9vdC5zZWxlY3Rpb25TdGFydCgpIHx8IG9zID09IHJvb3Quc2VsZWN0aW9uRW5kKCkpCisg
ICAgICAgICAgICAmJiBvcy0+c2VsZWN0aW9uU3RhdGUoKSAhPSBTZWxlY3Rpb25Ob25lKSB7CiAg
ICAgICAgICAgICAvLyBCbG9ja3MgYXJlIHJlc3BvbnNpYmxlIGZvciBwYWludGluZyBsaW5lIGdh
cHMgYW5kIG1hcmdpbiBnYXBzLiAgVGhleSBtdXN0IGJlIGV4YW1pbmVkIGFzIHdlbGwuCiAgICAg
ICAgICAgICBvbGRTZWxlY3RlZE9iamVjdHMuc2V0KG9zLCBzdGQ6Om1ha2VfdW5pcXVlPFJlbmRl
clNlbGVjdGlvbkluZm8+KG9zLCB0cnVlKSk7CiAgICAgICAgICAgICBpZiAoYmxvY2tSZXBhaW50
TW9kZSA9PSBSZXBhaW50TmV3WE9ST2xkKSB7CkBAIC04MDQsNyArODkxLDcgQEAgdm9pZCBSZW5k
ZXJWaWV3OjpzZXRTZWxlY3Rpb24oUmVuZGVyT2JqZWN0KiBzdGFydCwgaW50IHN0YXJ0UG9zLCBS
ZW5kZXJPYmplY3QqIGUKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIG9zID0g
Z2V0TmV4dE9yUHJldlJlbmRlck9iamVjdEJhc2VkT25EaXJlY3Rpb24ob3MsIHN0b3AsIGNvbnRp
bnVlRXhwbG9yaW5nLCBleHBsb3JpbmdCYWNrd2FyZHMpOworICAgICAgICBvcyA9IG9zLT5uZXh0
SW5QcmVPcmRlcigpOwogICAgIH0KIAogICAgIC8vIE5vdyBjbGVhciB0aGUgc2VsZWN0aW9uLgpA
QCAtODEzLDEyICs5MDAsMTIgQEAgdm9pZCBSZW5kZXJWaWV3OjpzZXRTZWxlY3Rpb24oUmVuZGVy
T2JqZWN0KiBzdGFydCwgaW50IHN0YXJ0UG9zLCBSZW5kZXJPYmplY3QqIGUKICAgICAgICAgaS0+
a2V5LT5zZXRTZWxlY3Rpb25TdGF0ZUlmTmVlZGVkKFNlbGVjdGlvbk5vbmUpOwogCiAgICAgLy8g
c2V0IHNlbGVjdGlvbiBzdGFydCBhbmQgZW5kCi0gICAgbV9zZWxlY3Rpb25TdGFydCA9IHN0YXJ0
OwotICAgIG1fc2VsZWN0aW9uU3RhcnRQb3MgPSBzdGFydFBvczsKLSAgICBtX3NlbGVjdGlvbkVu
ZCA9IGVuZDsKLSAgICBtX3NlbGVjdGlvbkVuZFBvcyA9IGVuZFBvczsKKyAgICByb290LnNldFNl
bGVjdGlvblN0YXJ0KHN0YXJ0KTsKKyAgICByb290LnNldFNlbGVjdGlvblN0YXJ0UG9zKHN0YXJ0
UG9zKTsKKyAgICByb290LnNldFNlbGVjdGlvbkVuZChlbmQpOworICAgIHJvb3Quc2V0U2VsZWN0
aW9uRW5kUG9zKGVuZFBvcyk7CiAKLSAgICAvLyBVcGRhdGUgdGhlIHNlbGVjdGlvbiBzdGF0dXMg
b2YgYWxsIG9iamVjdHMgYmV0d2VlbiBtX3NlbGVjdGlvblN0YXJ0IGFuZCBtX3NlbGVjdGlvbkVu
ZAorICAgIC8vIFVwZGF0ZSB0aGUgc2VsZWN0aW9uIHN0YXR1cyBvZiBhbGwgb2JqZWN0cyBiZXR3
ZWVuIHNlbGVjdGlvblN0YXJ0IGFuZCBzZWxlY3Rpb25FbmQKICAgICBpZiAoc3RhcnQgJiYgc3Rh
cnQgPT0gZW5kKQogICAgICAgICBzdGFydC0+c2V0U2VsZWN0aW9uU3RhdGVJZk5lZWRlZChTZWxl
Y3Rpb25Cb3RoKTsKICAgICBlbHNlIHsKQEAgLTg0Myw5ICs5MzAsNyBAQCB2b2lkIFJlbmRlclZp
ZXc6OnNldFNlbGVjdGlvbihSZW5kZXJPYmplY3QqIHN0YXJ0LCBpbnQgc3RhcnRQb3MsIFJlbmRl
ck9iamVjdCogZQogICAgIC8vIE5vdyB0aGF0IHRoZSBzZWxlY3Rpb24gc3RhdGUgaGFzIGJlZW4g
dXBkYXRlZCBmb3IgdGhlIG5ldyBvYmplY3RzLCB3YWxrIHRoZW0gYWdhaW4gYW5kCiAgICAgLy8g
cHV0IHRoZW0gaW4gdGhlIG5ldyBvYmplY3RzIGxpc3QuCiAgICAgbyA9IHN0YXJ0OwotICAgIGV4
cGxvcmluZ0JhY2t3YXJkcyA9IGZhbHNlOwotICAgIGNvbnRpbnVlRXhwbG9yaW5nID0gbyAmJiAo
byAhPSBzdG9wKTsKLSAgICB3aGlsZSAoY29udGludWVFeHBsb3JpbmcpIHsKKyAgICB3aGlsZSAo
byAmJiBvICE9IHN0b3ApIHsKICAgICAgICAgaWYgKChvLT5jYW5CZVNlbGVjdGlvbkxlYWYoKSB8
fCBvID09IHN0YXJ0IHx8IG8gPT0gZW5kKSAmJiBvLT5zZWxlY3Rpb25TdGF0ZSgpICE9IFNlbGVj
dGlvbk5vbmUpIHsKICAgICAgICAgICAgIG5ld1NlbGVjdGVkT2JqZWN0cy5zZXQobywgc3RkOjpt
YWtlX3VuaXF1ZTxSZW5kZXJTZWxlY3Rpb25JbmZvPihvLCB0cnVlKSk7CiAgICAgICAgICAgICBS
ZW5kZXJCbG9jayogY2IgPSBvLT5jb250YWluaW5nQmxvY2soKTsKQEAgLTg1OCw3ICs5NDMsNyBA
QCB2b2lkIFJlbmRlclZpZXc6OnNldFNlbGVjdGlvbihSZW5kZXJPYmplY3QqIHN0YXJ0LCBpbnQg
c3RhcnRQb3MsIFJlbmRlck9iamVjdCogZQogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAg
ICAgICAgbyA9IGdldE5leHRPclByZXZSZW5kZXJPYmplY3RCYXNlZE9uRGlyZWN0aW9uKG8sIHN0
b3AsIGNvbnRpbnVlRXhwbG9yaW5nLCBleHBsb3JpbmdCYWNrd2FyZHMpOworICAgICAgICBvID0g
by0+bmV4dEluUHJlT3JkZXIoKTsKICAgICB9CiAKICAgICBpZiAoYmxvY2tSZXBhaW50TW9kZSA9
PSBSZXBhaW50Tm90aGluZykKQEAgLTg2OSw5ICs5NTQsOSBAQCB2b2lkIFJlbmRlclZpZXc6OnNl
dFNlbGVjdGlvbihSZW5kZXJPYmplY3QqIHN0YXJ0LCBpbnQgc3RhcnRQb3MsIFJlbmRlck9iamVj
dCogZQogICAgICAgICBSZW5kZXJPYmplY3QqIG9iaiA9IGktPmtleTsKICAgICAgICAgUmVuZGVy
U2VsZWN0aW9uSW5mbyogbmV3SW5mbyA9IG5ld1NlbGVjdGVkT2JqZWN0cy5nZXQob2JqKTsKICAg
ICAgICAgUmVuZGVyU2VsZWN0aW9uSW5mbyogb2xkSW5mbyA9IGktPnZhbHVlLmdldCgpOwotICAg
ICAgICBpZiAoIW5ld0luZm8gfHwgb2xkSW5mby0+cmVjdCgpICE9IG5ld0luZm8tPnJlY3QoKSB8
fCBvbGRJbmZvLT5zdGF0ZSgpICE9IG5ld0luZm8tPnN0YXRlKCkgfHwKLSAgICAgICAgICAgICht
X3NlbGVjdGlvblN0YXJ0ID09IG9iaiAmJiBvbGRTdGFydFBvcyAhPSBtX3NlbGVjdGlvblN0YXJ0
UG9zKSB8fAotICAgICAgICAgICAgKG1fc2VsZWN0aW9uRW5kID09IG9iaiAmJiBvbGRFbmRQb3Mg
IT0gbV9zZWxlY3Rpb25FbmRQb3MpKSB7CisgICAgICAgIGlmICghbmV3SW5mbyB8fCBvbGRJbmZv
LT5yZWN0KCkgIT0gbmV3SW5mby0+cmVjdCgpIHx8IG9sZEluZm8tPnN0YXRlKCkgIT0gbmV3SW5m
by0+c3RhdGUoKQorICAgICAgICAgICAgfHwgKHJvb3Quc2VsZWN0aW9uU3RhcnQoKSA9PSBvYmog
JiYgb2xkU3RhcnRQb3MgIT0gcm9vdC5zZWxlY3Rpb25TdGFydFBvcygpKQorICAgICAgICAgICAg
fHwgKHJvb3Quc2VsZWN0aW9uRW5kKCkgPT0gb2JqICYmIG9sZEVuZFBvcyAhPSByb290LnNlbGVj
dGlvbkVuZFBvcygpKSkgewogICAgICAgICAgICAgb2xkSW5mby0+cmVwYWludCgpOwogICAgICAg
ICAgICAgaWYgKG5ld0luZm8pIHsKICAgICAgICAgICAgICAgICBuZXdJbmZvLT5yZXBhaW50KCk7
CkBAIC05MjAsMTIgKzEwMDUsNiBAQCB2b2lkIFJlbmRlclZpZXc6OmNsZWFyU2VsZWN0aW9uKCkK
ICAgICBzZXRTZWxlY3Rpb24oMCwgLTEsIDAsIC0xLCBSZXBhaW50TmV3TWludXNPbGQpOwogfQog
Ci12b2lkIFJlbmRlclZpZXc6OnNlbGVjdGlvblN0YXJ0RW5kKGludCYgc3RhcnRQb3MsIGludCYg
ZW5kUG9zKSBjb25zdAotewotICAgIHN0YXJ0UG9zID0gbV9zZWxlY3Rpb25TdGFydFBvczsKLSAg
ICBlbmRQb3MgPSBtX3NlbGVjdGlvbkVuZFBvczsKLX0KLQogYm9vbCBSZW5kZXJWaWV3Ojpwcmlu
dGluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGRvY3VtZW50KCkucHJpbnRpbmcoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCmluZGV4IDY4NmYzMDkzMmFhNDdmZjBiODUxY2Fi
ZDgwZGVjYjZhZGM0NmVmZTMuLjAxMjI1ZDc4ZDRlMTVlZDhjNDIwODIwYzA1MTQ4NjBjOWIyNzFi
YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaApAQCAtMjcsOCArMjcsMTAg
QEAKICNpbmNsdWRlICJQT0RGcmVlTGlzdEFyZW5hLmgiCiAjaW5jbHVkZSAiUmVnaW9uLmgiCiAj
aW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCisjaW5jbHVkZSAiU2VsZWN0aW9uU3VidHJlZVJv
b3QuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzcsNyArMzks
NyBAQCBjbGFzcyBJbWFnZVF1YWxpdHlDb250cm9sbGVyOwogY2xhc3MgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOwogY2xhc3MgUmVuZGVyUXVvdGU7CiAKLWNsYXNzIFJlbmRlclZpZXcgZmluYWwgOiBw
dWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKK2NsYXNzIFJlbmRlclZpZXcgZmluYWwgOiBwdWJsaWMg
UmVuZGVyQmxvY2tGbG93LCBwdWJsaWMgU2VsZWN0aW9uU3VidHJlZVJvb3QgewogcHVibGljOgog
ICAgIFJlbmRlclZpZXcoRG9jdW1lbnQmLCBQYXNzUmVmPFJlbmRlclN0eWxlPik7CiAgICAgdmly
dHVhbCB+UmVuZGVyVmlldygpOwpAQCAtODYsNyArODgsNiBAQCBwdWJsaWM6CiAgICAgUmVuZGVy
T2JqZWN0KiBzZWxlY3Rpb25TdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uU3RhcnQ7
IH0KICAgICBSZW5kZXJPYmplY3QqIHNlbGVjdGlvbkVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vs
ZWN0aW9uRW5kOyB9CiAgICAgSW50UmVjdCBzZWxlY3Rpb25Cb3VuZHMoYm9vbCBjbGlwVG9WaXNp
YmxlQ29udGVudCA9IHRydWUpIGNvbnN0OwotICAgIHZvaWQgc2VsZWN0aW9uU3RhcnRFbmQoaW50
JiBzdGFydFBvcywgaW50JiBlbmRQb3MpIGNvbnN0OwogICAgIHZvaWQgcmVwYWludFNlbGVjdGlv
bigpIGNvbnN0OwogCiAgICAgYm9vbCBwcmludGluZygpIGNvbnN0OwpAQCAtMjg4LDYgKzI4OSwx
MSBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBMYXlvdXRTdGF0ZU1haW50YWluZXI7CiAg
ICAgZnJpZW5kIGNsYXNzIExheW91dFN0YXRlRGlzYWJsZXI7CiAKKyAgICB2b2lkIHNwbGl0U2Vs
ZWN0aW9uQmV0d2VlblN1YnRyZWVzKFJlbmRlck9iamVjdCogc3RhcnQsIGludCBzdGFydFBvcywg
UmVuZGVyT2JqZWN0KiBlbmQsIGludCBlbmRQb3MsIFNlbGVjdGlvblJlcGFpbnRNb2RlIGJsb2Nr
UmVwYWludE1vZGUpOworICAgIHZvaWQgc2V0U3VidHJlZVNlbGVjdGlvbihTZWxlY3Rpb25TdWJ0
cmVlUm9vdCYsIFJlbmRlck9iamVjdCogc3RhcnQsIGludCBzdGFydFBvcywgUmVuZGVyT2JqZWN0
KiBlbmQsIGludCBlbmRQb3MsIFNlbGVjdGlvblJlcGFpbnRNb2RlKTsKKyAgICBMYXlvdXRSZWN0
IHN1YnRyZWVTZWxlY3Rpb25Cb3VuZHMoY29uc3QgU2VsZWN0aW9uU3VidHJlZVJvb3QmLCBib29s
IGNsaXBUb1Zpc2libGVDb250ZW50ID0gdHJ1ZSkgY29uc3Q7CisgICAgdm9pZCByZXBhaW50U3Vi
dHJlZVNlbGVjdGlvbihjb25zdCBTZWxlY3Rpb25TdWJ0cmVlUm9vdCYpIGNvbnN0OworCiBwcml2
YXRlOgogICAgIEZyYW1lVmlldyYgbV9mcmFtZVZpZXc7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9TZWxlY3Rpb25TdWJ0cmVlUm9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvU2VsZWN0aW9uU3VidHJlZVJvb3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM5YTkwNzFj
ZGI4MWIyMjlmNzNhZDA2NTkyNDIxNGU1NjUyNGEyNmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uU3VidHJlZVJvb3QuY3BwCkBAIC0wLDAgKzEs
NDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSIOKAnEFTIElT4oCdIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNlbGVjdGlvblN1YnRyZWVSb290Lmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU2VsZWN0aW9uU3VidHJlZVJvb3Q6OlNlbGVjdGlv
blN1YnRyZWVSb290KCkKKyAgICA6IG1fc2VsZWN0aW9uU3RhcnQobnVsbHB0cikKKyAgICAsIG1f
c2VsZWN0aW9uU3RhcnRQb3MoLTEpCisgICAgLCBtX3NlbGVjdGlvbkVuZChudWxscHRyKQorICAg
ICwgbV9zZWxlY3Rpb25FbmRQb3MoLTEpCit7Cit9CisKK3ZvaWQgU2VsZWN0aW9uU3VidHJlZVJv
b3Q6OnNlbGVjdGlvblN0YXJ0RW5kUG9zaXRpb25zKGludCYgc3RhcnRQb3MsIGludCYgZW5kUG9z
KSBjb25zdAoreworICAgIHN0YXJ0UG9zID0gbV9zZWxlY3Rpb25TdGFydFBvczsKKyAgICBlbmRQ
b3MgPSBtX3NlbGVjdGlvbkVuZFBvczsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblN1YnRyZWVSb290Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uU3VidHJlZVJvb3QuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wNjFkNGVkNmI1ZDA3MTJjMTFhYjNlNzBjZDI4YzVhMTQ2NzAyYTM4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblN1YnRyZWVSb290LmgK
QEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAg
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIg
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFNlbGVjdGlvblN1YnRyZWVSb290X2gKKyNkZWZpbmUgU2Vs
ZWN0aW9uU3VidHJlZVJvb3RfaAorCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2VsZWN0aW9uU3VidHJlZVJvb3QgeworcHVibGljOgor
CisgICAgU2VsZWN0aW9uU3VidHJlZVJvb3QoKTsKKworICAgIFJlbmRlck9iamVjdCogc2VsZWN0
aW9uU3RhcnQoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvblN0YXJ0OyB9CisgICAgaW50IHNl
bGVjdGlvblN0YXJ0UG9zKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rpb25TdGFydFBvczsgfQor
ICAgIFJlbmRlck9iamVjdCogc2VsZWN0aW9uRW5kKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rp
b25FbmQ7IH0KKyAgICBpbnQgc2VsZWN0aW9uRW5kUG9zKCkgY29uc3QgeyByZXR1cm4gbV9zZWxl
Y3Rpb25FbmRQb3M7IH0KKworICAgIHZvaWQgc2V0U2VsZWN0aW9uU3RhcnQoUmVuZGVyT2JqZWN0
KiBzZWxlY3Rpb25TdGFydCkgeyBtX3NlbGVjdGlvblN0YXJ0ID0gc2VsZWN0aW9uU3RhcnQ7IH0K
KyAgICB2b2lkIHNldFNlbGVjdGlvblN0YXJ0UG9zKGludCBzZWxlY3Rpb25TdGFydFBvcykgeyBt
X3NlbGVjdGlvblN0YXJ0UG9zID0gc2VsZWN0aW9uU3RhcnRQb3M7IH0KKyAgICB2b2lkIHNldFNl
bGVjdGlvbkVuZChSZW5kZXJPYmplY3QqIHNlbGVjdGlvbkVuZCkgeyBtX3NlbGVjdGlvbkVuZCA9
IHNlbGVjdGlvbkVuZDsgfQorICAgIHZvaWQgc2V0U2VsZWN0aW9uRW5kUG9zKGludCBzZWxlY3Rp
b25FbmRQb3MpIHsgbV9zZWxlY3Rpb25FbmRQb3MgPSBzZWxlY3Rpb25FbmRQb3M7IH0KKworICAg
IHZvaWQgc2VsZWN0aW9uU3RhcnRFbmRQb3NpdGlvbnMoaW50JiBzdGFydFBvcywgaW50JiBlbmRQ
b3MpIGNvbnN0OworCitwcml2YXRlOgorCisgICAgUmVuZGVyT2JqZWN0KiBtX3NlbGVjdGlvblN0
YXJ0OworICAgIGludCBtX3NlbGVjdGlvblN0YXJ0UG9zOworICAgIFJlbmRlck9iamVjdCogbV9z
ZWxlY3Rpb25FbmQ7CisgICAgaW50IG1fc2VsZWN0aW9uRW5kUG9zOworCit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBTZWxlY3Rpb25TdWJ0cmVlUm9vdF9oCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggNDE0YjYzNzAxNTZhNzdhNDdkN2I1YTYyYzdhNjI4ZDhlY2M5YmM2Mi4uMWZjYzA2ZDI1ZTFl
ZThiM2Q5NmE4MjVjOTcwZTRmMTM5NGVmZjU5MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE0
LTA0LTE3ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAg
ICAgIFtDU1MgUmVnaW9uc10gU2VsZWN0aW9uIGhpZ2hsaWdodCBkb2Vzbid0IG1hdGNoIERPTSBz
ZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzMTUxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBuZXcgdGVzdCB0byBjaGVjayBoaWdobGlnaHQgb2YgcmVuZGVyIG9iamVjdHMgbW92ZWQg
dW5kZXIgUmVuZGVyTmFtZWRGbG93VGhyZWFkIGluIHRoZSByZW5kZXIgdHJlZS4KKworICAgICAg
ICBVcGRhdGVkIHNvbWUgdGVzdHMgdG8gYXZvaWQgaXNzdWVzIHdpdGggc2VsZWN0aW9uIGdhcCBm
aWxsaW5nIGluIHRoZSBuZXcgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBmYXN0L3JlZ2lv
bnMvc2VsZWN0aW9uL3NlbGVjdGluZy10ZXh0LWluY2x1ZGluZy1yZWdpb24tZXhwZWN0ZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3RpbmctdGV4
dC1pbmNsdWRpbmctcmVnaW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9z
ZWxlY3Rpb24vc2VsZWN0aW5nLXRleHQtdGhyb3VnaC1kaWZmZXJlbnQtcmVnaW9uLWZsb3dzLTIt
ZXhwZWN0ZWQuaHRtbDogVXBkYXRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvc2VsZWN0aW9u
L3NlbGVjdGluZy10ZXh0LXRocm91Z2gtZGlmZmVyZW50LXJlZ2lvbi1mbG93cy0yLmh0bWw6IFVw
ZGF0ZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3Rpb24tZGlyZWN0
aW9uLWV4cGVjdGVkLmh0bWw6IFVwZGF0ZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL3NlbGVj
dGlvbi9zZWxlY3Rpb24tZGlyZWN0aW9uLmh0bWw6IFVwZGF0ZWQuCisKIDIwMTQtMDQtMTQgIFJv
Z2VyIEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAogICAgICAgICBTbmFwc2hvdHRlZCBw
bHVnaW5zIG1heSBuZWVkIHRvIGJlIHJlc3RhcnRlZCBpZiBzdHlsZSBwcm9wZXJ0aWVzIGFyZSBj
aGFuZ2VkIGFmdGVyIGluaXRpYWwgbG9hZCBvZiBwbHVnaW4uCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGluZy10ZXh0LWluY2x1ZGluZy1yZWdp
b24tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zZWxlY3Rpb24vc2Vs
ZWN0aW5nLXRleHQtaW5jbHVkaW5nLXJlZ2lvbi1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1
MDJkMmI1ZjYzNjNiMmM3NDk2MTIyMzJlNjNmNDU0MzI1N2M5MzEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGluZy10ZXh0LWluY2x1
ZGluZy1yZWdpb24tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDc0IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9oZWxwZXIu
anMiPjwvc2NyaXB0PgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vcmVzb3Vy
Y2VzL3JlZ2lvbi1zdHlsZS5jc3MiPjwvbGluaz4KKyAgICA8c3R5bGU+CisgICAgICAgICogewor
ICAgICAgICAgICAgbWFyZ2luOiAwcHg7CisgICAgICAgICAgICBwYWRkaW5nOiAwcHg7CisgICAg
ICAgIH0KKworICAgICAgICBib2R5IHsKKyAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4Owor
ICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4OworICAgICAgICAgICAgZm9udC1mYW1pbHk6IEFo
ZW07CisgICAgICAgIH0KKworICAgICAgICAjb3V0c2lkZS0xIHsKKyAgICAgICAgICAgIHBvc2l0
aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIHRvcDogMHB4OworICAgICAgICB9CisKKyAgICAg
ICAgI291dHNpZGUtMiB7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAg
ICAgICB0b3A6IDEwMHB4OworICAgICAgICB9CisKKyAgICAgICAgI3JlZ2lvbiB7CisgICAgICAg
ICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB0b3A6IDIwMHB4OworICAgICAg
ICAgICAgYmFja2dyb3VuZC1jb2xvcjogY3lhbjsKKyAgICAgICAgfQorCisgICAgICAgICNkZXNj
cmlwdGlvbiB7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB0
b3A6IDM1MHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0PgorICAgICAg
ICBvbk1vdXNlVXBMb2dTZWxlY3Rpb24oInNlbGVjdGVkLWNvbnRlbnQiKTsKKyAgICA8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2VsZWN0Q29udGVudEJ5SWRzKCd3b3JkMScsICd3
b3JkMicpOyIgc3R5bGU9Im1hcmdpbi10b3A6IDA7Ij4KKyAgICA8ZGl2IGlkPSJvdXRzaWRlLTEi
IGNsYXNzPSJiaWdCb3giPgorICAgICAgICBYIFggWCBYIFggWCBYIFgKKyAgICAgICAgWCBYIFgg
WCBYIFggWCBYCisgICAgICAgIFggWCBYIDxzcGFuIGlkPSJ3b3JkMSIgY2xhc3M9InRva2VuIj5Y
PC9zcGFuPiBYIFggWCBYCisgICAgICAgIFggWCBYIFggWCBYIFggWAorICAgICAgICBYIFggWCBY
IFggWCBYIFgKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZWdpb24iIGNsYXNzPSJiaWdCb3gi
PgorICAgICAgICBYIFggWCBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBYIFggWCBYCisgICAg
ICAgIFggWCBYIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFggWCBYIFgKKyAgICAgICAgWCBY
IFggWCBYIFggWCBYCisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0ib3V0c2lkZS0yIiBjbGFzcz0i
YmlnQm94Ij4KKyAgICAgICAgWCBYIFggWCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWCBYIFgg
WAorICAgICAgICBYIFggWCA8c3BhbiBpZD0id29yZDIiIGNsYXNzPSJ0b2tlbiI+WDwvc3Bhbj4g
WCBYIFggWAorICAgICAgICBYIFggWCBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBYIFggWCBY
CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0iZGVzY3JpcHRpb24iIGNsYXNzPSJkZXNjcmlwdGlv
biI+CisgICAgICAgIDxoMT48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTMxNTExIj5CdWcgIzEzMTUxMSAtIFtDU1MgUmVnaW9uc10gU2VsZWN0aW9uIGhp
Z2hsaWdodCBkb2Vzbid0IG1hdGNoIERPTSBzZWxlY3Rpb248L2E+PC9oMT4KKyAgICAgICAgPHA+
VGhpcyB0ZXN0IGNoZWNrcyB0aGUgc2VsZWN0aW9uIGluIDIgdGV4dCB3cmFwcGluZyBhIGNvbnRl
bnQgbm9kZS4gSWYgeW91IHNlbGVjdCBmcm9tIDxzcGFuIGNsYXNzPSJ0b2tlbiI+WDwvc3Bhbj4g
dG8gPHNwYW4gY2xhc3M9InRva2VuIj5YPC9zcGFuPiB5b3Ugd2lsbCBzZWUgdGhhdCByZWdpb24g
dGV4dCBpcyBoaWdobGlnaHRlZCBhbmQgaW5jbHVkZWQgaW4gdGhlIHNlbGVjdGVkIGNvbnRlbnQg
KGJlY2F1c2Ugb2YgdGhlIGNvbnRlbnQgb2YgdGhlIHJlZ2lvbiBpcyBiZXR3ZWVuIGJvdCB0ZXh0
cyBpbiB0aGUgRE9NKS48L3A+CisgICAgICAgIDxkbD4KKyAgICAgICAgICAgIDxkdD5TZWxlY3Rl
ZCBjb250ZW50OjwvZHQ+CisgICAgICAgICAgICA8ZGQgaWQ9InNlbGVjdGVkLWNvbnRlbnQiPjwv
ZGQ+CisgICAgICAgIDwvZGw+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGluZy10ZXh0LWlu
Y2x1ZGluZy1yZWdpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zZWxlY3Rpb24v
c2VsZWN0aW5nLXRleHQtaW5jbHVkaW5nLXJlZ2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhMjRlNTM1
YzFkMWNmNTI1NTc1MTA1YTg5MTBmMWZkZGI0ZjU0NDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGluZy10ZXh0LWluY2x1ZGluZy1y
ZWdpb24uaHRtbApAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9oZWxwZXIuanMiPjwvc2NyaXB0Pgor
ICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vcmVzb3VyY2VzL3JlZ2lvbi1zdHls
ZS5jc3MiPjwvbGluaz4KKyAgICA8c3R5bGU+CisgICAgICAgICogeworICAgICAgICAgICAgbWFy
Z2luOiAwcHg7CisgICAgICAgICAgICBwYWRkaW5nOiAwcHg7CisgICAgICAgIH0KKworICAgICAg
ICBib2R5IHsKKyAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OworICAgICAgICAgICAgZm9u
dC1zaXplOiAyMHB4OworICAgICAgICAgICAgZm9udC1mYW1pbHk6IEFoZW07CisgICAgICAgIH0K
KworICAgICAgICAjcmVnaW9uIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGN5YW47
CisgICAgICAgIH0KKworICAgICAgICAjZGVzY3JpcHRpb24geworICAgICAgICAgICAgcG9zaXRp
b246IGFic29sdXRlOworICAgICAgICAgICAgdG9wOiAzNTBweDsKKyAgICAgICAgfQorICAgIDwv
c3R5bGU+CisgICAgPHNjcmlwdD4KKyAgICAgICAgb25Nb3VzZVVwTG9nU2VsZWN0aW9uKCJzZWxl
Y3RlZC1jb250ZW50Iik7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNl
bGVjdENvbnRlbnRCeUlkcygnd29yZDEnLCAnd29yZDInKTsiIHN0eWxlPSJtYXJnaW4tdG9wOiAw
OyI+CisgICAgPGRpdiBjbGFzcz0iYmlnQm94IGZsb2F0Ij4KKyAgICAgICAgWCBYIFggWCBYIFgg
WCBYCisgICAgICAgIFggWCBYIFggWCBYIFggWAorICAgICAgICBYIFggWCA8c3BhbiBpZD0id29y
ZDEiIGNsYXNzPSJ0b2tlbiI+WDwvc3Bhbj4gWCBYIFggWAorICAgICAgICBYIFggWCBYIFggWCBY
IFgKKyAgICAgICAgWCBYIFggWCBYIFggWCBYCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0i
Y2xlYXIiPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImZsb3dBcnRpY2xlIj4KKyAgICAgICAgWCBY
IFggWCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFgg
WCBYIFgKKyAgICAgICAgWCBYIFggWCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWCBYIFggWAor
ICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImJpZ0JveCBmbG9hdCI+CisgICAgICAgIFggWCBY
IFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggPHNwYW4g
aWQ9IndvcmQyIiBjbGFzcz0idG9rZW4iPlg8L3NwYW4+IFggWCBYIFgKKyAgICAgICAgWCBYIFgg
WCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWCBYIFggWAorICAgIDwvZGl2PgorICAgIDxkaXYg
Y2xhc3M9ImNsZWFyIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZWdpb24iIGNsYXNzPSJyZWdpb25B
cnRpY2xlIGJpZ0JveCI+PC9kaXY+CisgICAgPGRpdiBpZD0iZGVzY3JpcHRpb24iIGNsYXNzPSJk
ZXNjcmlwdGlvbiI+CisgICAgICAgIDxoMT48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTMxNTExIj5CdWcgIzEzMTUxMSAtIFtDU1MgUmVnaW9uc10gU2Vs
ZWN0aW9uIGhpZ2hsaWdodCBkb2Vzbid0IG1hdGNoIERPTSBzZWxlY3Rpb248L2E+PC9oMT4KKyAg
ICAgICAgPHA+VGhpcyB0ZXN0IGNoZWNrcyB0aGUgc2VsZWN0aW9uIGluIDIgdGV4dCB3cmFwcGlu
ZyBhIGNvbnRlbnQgbm9kZS4gSWYgeW91IHNlbGVjdCBmcm9tIDxzcGFuIGNsYXNzPSJ0b2tlbiI+
WDwvc3Bhbj4gdG8gPHNwYW4gY2xhc3M9InRva2VuIj5YPC9zcGFuPiB5b3Ugd2lsbCBzZWUgdGhh
dCByZWdpb24gdGV4dCBpcyBoaWdobGlnaHRlZCBhbmQgaW5jbHVkZWQgaW4gdGhlIHNlbGVjdGVk
IGNvbnRlbnQgKGJlY2F1c2Ugb2YgdGhlIGNvbnRlbnQgb2YgdGhlIHJlZ2lvbiBpcyBiZXR3ZWVu
IGJvdCB0ZXh0cyBpbiB0aGUgRE9NKS48L3A+CisgICAgICAgIDxkbD4KKyAgICAgICAgICAgIDxk
dD5TZWxlY3RlZCBjb250ZW50OjwvZHQ+CisgICAgICAgICAgICA8ZGQgaWQ9InNlbGVjdGVkLWNv
bnRlbnQiPjwvZGQ+CisgICAgICAgIDwvZGw+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGlu
Zy10ZXh0LXRocm91Z2gtZGlmZmVyZW50LXJlZ2lvbi1mbG93cy0yLWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGluZy10ZXh0LXRocm91Z2gt
ZGlmZmVyZW50LXJlZ2lvbi1mbG93cy0yLWV4cGVjdGVkLmh0bWwKaW5kZXggNzAwYWMyNDEzYzQ5
NGY3ZjM0ZTVhMWFhZDc5MjhmYzUwOTJiNDU2My4uYWEyMjlmZGVjNzdmOWI4ZDcyZTBkNjY5NDhj
ZWI3NjExNjEyMDgyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVj
dGlvbi9zZWxlY3RpbmctdGV4dC10aHJvdWdoLWRpZmZlcmVudC1yZWdpb24tZmxvd3MtMi1leHBl
Y3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zZWxlY3Rpb24vc2VsZWN0
aW5nLXRleHQtdGhyb3VnaC1kaWZmZXJlbnQtcmVnaW9uLWZsb3dzLTItZXhwZWN0ZWQuaHRtbApA
QCAtMywxOSArMyw1NiBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2hlbHBl
ci5qcyI+PC9zY3JpcHQ+CiA8c3R5bGU+Ci1ib2R5IHsgd2lkdGg6IDYwMHB4OyB9Ci0jZm9vdE5v
dGUgeyBmb250LXNpemU6IDEzcHg7IH0KKyogeworICAgIG1hcmdpbjogMHB4OworICAgIHBhZGRp
bmc6IDBweDsKKyAgICBmb250LXNpemU6IDIwcHg7CisgICAgZm9udC1mYW1pbHk6IEFoZW07Cisg
ICAgbGluZS1oZWlnaHQ6IDIwcHg7Cit9CisjY29udGVudDEgeworICAgIGhlaWdodDogMTAwcHg7
CisgICAgd2lkdGg6IDIwMHB4OworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDUw
cHg7Cit9CisjbmVzdGVkUmVnaW9uIHsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIHdpZHRoOiAy
MDBweDsKKyAgICBjb2xvcjogcmVkOworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6
IDI1MHB4OworfQorI2NvbnRlbnQyIHsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIHdpZHRoOiAy
MDBweDsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAxNTBweDsKK30KIDwvc3R5
bGU+CiA8L2hlYWQ+CiA8Ym9keSBvbmxvYWQ9InNlbGVjdEJhc2VBbmRFeHRlbnQoJ3N0YXJ0Jywg
MCwgJ2VuZCcsIDEpIj4KLTxkaXYgaWQ9ImNvbnRlbnQiPgotICAgIDxoMSBzdHlsZT0ibWFyZ2lu
LXRvcDogMHB4Ij5TZWxlY3RpbmcgdGV4dCB0aHJvdWdoIGRpZmZlcmVudCBDU1MtUmVnaW9uIGZs
b3dzPC9oMT4KLSAgICA8ZGl2PgotICAgIFRoaXMgdGV4dCBjb250YWlucyBhIGZvb3Rub3RlIGFz
IGEgbmVzdGVkIHJlZ2lvbiB3aGF0IGlzIGRpcGxheWVkIDxzcGFuIGlkPSJzdGFydCI+YmVsb3c8
c3Bhbj4gdGhlIGFydGljbGUuICgxKSBJZiB5b3Ugc3RhcnQgc2VsZWN0aW5nCi0gICAgICAgIHRl
eHQgZnJvbSB0aGlzIGFydGljbGUgdW50aWwgc29tZXdoZXJlIGluIHRoZSBmb290bm90ZSBhbmQg
dGhlbiBjbGljayBzb21ld2hlcmUsIHRoZSBzZWxlY3Rpb24gc2hvdWxkIGJlIGNsZWFyZWQuCi0g
ICAgPC9kaXY+Ci0gICAgPGRpdiBpZD0iZm9vdE5vdGUiPigxKSBUaGlzIGlzIGEgZm9vdG5vdGUu
IEZvb3Rub3RlcyBjYW4gYmUgcXVpdGUgbG9uZyBhbmQgZ28gb3ZlciBzZXZlcmFsIGxpbmVzLiBU
aGlzIGZvb3Rub3RlCi0gICAgaXMgbmVzdGVkIGluc2lkZSB0aGUgdGV4dCA8c3BhbiBpZD0iZW5k
Ij5hYm92ZTxzcGFuPiBhbmQgZGlzcGxheWVkIGhlcmUgd2l0aCB0aGUgaGVscCBvZiBjc3MtcmVn
aW9ucy48L3NwYW4+PC9kaXY+Cis8aDE+U2VsZWN0aW5nIHRleHQgdGhyb3VnaCBkaWZmZXJlbnQg
Q1NTLVJlZ2lvbiBmbG93czwvaDE+Cis8ZGl2IGlkPSJjb250ZW50MSI+CisgICAgWCBYIFggWCBY
CisgICAgWCBYIFggWCBYCisgICAgWCBYIDxzcGFuIGlkPSJzdGFydCI+WDwvc3Bhbj4gWCBYCisg
ICAgWCBYIFggWCBYCisgICAgWCBYIFggWCBYWAorPC9kaXY+Cis8ZGl2IGlkPSJuZXN0ZWRSZWdp
b24iPgorICAgIFggWCBYIFggWAorICAgIFggWCBYIFggWAorICAgIFggWCA8c3BhbiBpZD0iZW5k
Ij5YPC9zcGFuPiBYIFgKKyAgICBYIFggWCBYIFgKKyAgICBYIFggWCBYIFgKKzwvZGl2PgorPGRp
diBpZD0iY29udGVudDIiPgorICAgIFggWCBYIFggWAorICAgIFggWCBYIFggWAorICAgIFggWCBY
IFggWAorICAgIFggWCBYIFggWAorICAgIFggWCBYIFggWAogPC9kaXY+CiA8L2JvZHk+CiA8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVj
dGluZy10ZXh0LXRocm91Z2gtZGlmZmVyZW50LXJlZ2lvbi1mbG93cy0yLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvc2VsZWN0aW9uL3NlbGVjdGluZy10ZXh0LXRocm91Z2gtZGlmZmVy
ZW50LXJlZ2lvbi1mbG93cy0yLmh0bWwKaW5kZXggOWIwODNiMmQwM2Q3ODIzY2MzYWFhYWVjODcy
NGJjY2NkZDRkMzY0ZS4uMzc2MGFlMWFhNDNmMmJlZGE1YTAyYmE5NzVmODc2ZWU1ZmE5YTcwMSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3Rpbmct
dGV4dC10aHJvdWdoLWRpZmZlcmVudC1yZWdpb24tZmxvd3MtMi5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvcmVnaW9ucy9zZWxlY3Rpb24vc2VsZWN0aW5nLXRleHQtdGhyb3VnaC1kaWZmZXJl
bnQtcmVnaW9uLWZsb3dzLTIuaHRtbApAQCAtMywzMCArMyw3MyBAQAogPGhlYWQ+CiA8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2hlbHBlci5qcyI+PC9zY3JpcHQ+CiA8c3R5bGU+Ci1ib2R5IHsg
d2lkdGg6IDYwMHB4OyB9CisqIHsKKyAgICBtYXJnaW46IDBweDsKKyAgICBwYWRkaW5nOiAwcHg7
CisgICAgZm9udC1zaXplOiAyMHB4OworICAgIGZvbnQtZmFtaWx5OiBBaGVtOworICAgIGxpbmUt
aGVpZ2h0OiAyMHB4OworfQorCisjbmVzdGVkUmVnaW9uIHsKKyAgICAtd2Via2l0LWZsb3ctaW50
bzogbmVzdGVkUmVnaW9uOworICAgIGNvbG9yOiByZWQ7Cit9CiAKLSNmb290Tm90ZSB7Ci0gICAg
LXdlYmtpdC1mbG93LWludG86IGZvb3ROb3RlOwotICAgIGRpc3BsYXk6IGJsb2NrOwotICAgIGZv
bnQtc2l6ZTogMTNweDsKKyNjb250ZW50IHsKKyAgICAtd2Via2l0LWZsb3ctaW50bzogY29udGVu
dDsKIH0KIAotI2Zvb3ROb3RlUmVnaW9uIHsgLXdlYmtpdC1mbG93LWZyb206IGZvb3ROb3RlOyB9
Ci0jY29udGVudCB7IC13ZWJraXQtZmxvdy1pbnRvOiBjb250ZW50OyB9Ci0jcmVnaW9uIHsgLXdl
YmtpdC1mbG93LWZyb206IGNvbnRlbnQ7IH0KKyNuZXN0ZWRSZWdpb25SZWdpb24geworICAgIC13
ZWJraXQtZmxvdy1mcm9tOiBuZXN0ZWRSZWdpb247CisgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB3
aWR0aDogMjAwcHg7Cit9CisjcmVnaW9uIHsKKyAgICAtd2Via2l0LWZsb3ctZnJvbTogY29udGVu
dDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICAgIHdpZHRoOiAyMDBweDsKK30KKworI2NvbnRlbnQx
IHsKKyAgICBoZWlnaHQ6IDEwMHB4OworfQorCisjY29udGVudDIgeworICAgIGhlaWdodDogMTAw
cHg7Cit9CisKK2gxIHsKKyAgICBoZWlnaHQ6IDUwcHg7Cit9CiA8L3N0eWxlPgogPC9oZWFkPgog
PGJvZHk+CiAKKzxoMT5TZWxlY3RpbmcgdGV4dCB0aHJvdWdoIGRpZmZlcmVudCBDU1MtUmVnaW9u
IGZsb3dzPC9oMT4KIDxkaXYgaWQ9InJlZ2lvbiI+PC9kaXY+Ci08ZGl2IGlkPSJmb290Tm90ZVJl
Z2lvbiI+PC9kaXY+Cis8ZGl2IGlkPSJuZXN0ZWRSZWdpb25SZWdpb24iPjwvZGl2PgogPGRpdiBp
ZD0iY29udGVudCI+Ci0gICAgPGgxIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHgiPlNlbGVjdGluZyB0
ZXh0IHRocm91Z2ggZGlmZmVyZW50IENTUy1SZWdpb24gZmxvd3M8L2gxPgotICAgIDxkaXYgaWQ9
ImNvbnRlbnRUZXh0Ij4KLSAgICAgICAgVGhpcyB0ZXh0IGNvbnRhaW5zIGEgZm9vdG5vdGUgYXMg
YSBuZXN0ZWQgcmVnaW9uIHdoYXQgaXMgZGlwbGF5ZWQgPHNwYW4gaWQ9InN0YXJ0Ij5iZWxvdzwv
c3Bhbj4gdGhlIGFydGljbGUuICgxKSA8c3BhbiBpZD0iZm9vdE5vdGUiPgotICAgICAgICA8c3Bh
bj48c3Bhbj48L3NwYW4+KDEpIFRoaXMgaXMgYSBmb290bm90ZS4gRm9vdG5vdGVzIGNhbiBiZSBx
dWl0ZSBsb25nIGFuZCBnbyBvdmVyIHNldmVyYWwgbGluZXMuIFRoaXMgZm9vdG5vdGUKLSAgICAg
ICAgaXMgbmVzdGVkIGluc2lkZSB0aGUgdGV4dCA8c3BhbiBpZD0iZW5kIj5hYm92ZTwvc3Bhbj4g
YW5kIGRpc3BsYXllZCBoZXJlIHdpdGggdGhlIGhlbHAgb2YgY3NzLXJlZ2lvbnMuPC9zcGFuPjwv
c3Bhbj4gSWYgeW91IHN0YXJ0IHNlbGVjdGluZwotICAgICAgICB0ZXh0IGZyb20gdGhpcyBhcnRp
Y2xlIHVudGlsIHNvbWV3aGVyZSBpbiB0aGUgZm9vdG5vdGUgYW5kIHRoZW4gY2xpY2sgc29tZXdo
ZXJlLCB0aGUgc2VsZWN0aW9uIHNob3VsZCBiZSBjbGVhcmVkLgorICAgIDxkaXYgaWQ9ImNvbnRl
bnQxIj4KKyAgICAgICAgWCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWAorICAgICAgICBYIFgg
PHNwYW4gaWQ9InN0YXJ0Ij5YPC9zcGFuPiBYIFgKKyAgICAgICAgWCBYIFggWCBYCisgICAgICAg
IFggWCBYIFggWFgKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJuZXN0ZWRSZWdpb24iPgorICAg
ICAgICBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBYCisgICAgICAgIFggWCA8c3BhbiBpZD0i
ZW5kIj5YPC9zcGFuPiBYIFgKKyAgICAgICAgWCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWAor
ICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9ImNvbnRlbnQyIj4KKyAgICAgICAgWCBYIFggWCBYCisg
ICAgICAgIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBYCisg
ICAgICAgIFggWCBYIFggWAogICAgIDwvZGl2PgogPC9kaXY+CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcmVnaW9ucy9zZWxlY3Rpb24vc2VsZWN0aW9uLWRpcmVjdGlvbi1leHBlY3Rl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3Rpb24tZGly
ZWN0aW9uLWV4cGVjdGVkLmh0bWwKaW5kZXggYjE4ZDY4MjY3MmJlMzQ5MWY2ODlkMWM5OTBiZGY4
NzU5NjA5YTgyNi4uMDg2OTlhMTcyYjI4NzE1ODA0ZWNmZDg1MmJhNDU3MzFiNDA4MDc4ZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3Rpb24tZGly
ZWN0aW9uLWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVj
dGlvbi9zZWxlY3Rpb24tZGlyZWN0aW9uLWV4cGVjdGVkLmh0bWwKQEAgLTcsNiArNyw3IEBACiAg
ICAgICAgICAgICB3aWR0aDogMjAwcHg7CiAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7
CiAgICAgICAgICAgICB0b3A6IDEwMHB4OworICAgICAgICAgICAgY29sb3I6IHJlZDsKICAgICAg
ICAgfQogCiAgICAgICAgICNvdXRzaWRlIHsKQEAgLTE0LDEwICsxNSwxNCBAQAogICAgICAgICAg
ICAgd2lkdGg6IDIwMHB4OwogICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAg
ICAgICAgdG9wOiAwcHg7CisgICAgICAgICAgICBjb2xvcjogZ3JlZW47CiAgICAgICAgIH0KIAog
ICAgICAgICBib2R5IHsKICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7CisgICAgICAgICAgICBm
b250LXNpemU6IDIwcHg7CisgICAgICAgICAgICBmb250LWZhbWlseTogQWhlbTsKKyAgICAgICAg
ICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgICB9CiAKICAgICAgICAgI2Rlc2NyaXB0aW9u
IHsKQEAgLTI1LDE0ICszMCwzMCBAQAogICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwog
ICAgICAgICAgICAgdG9wOiAyMDBweDsKICAgICAgICAgfQorCisgICAgICAgIGgxIHsKKyAgICAg
ICAgICAgIGxpbmUtaGVpZ2h0OiA1MHB4OworICAgICAgICB9CiAgICAgPC9zdHlsZT4KIDwvaGVh
ZD4KLTxib2R5IG9ubG9hZD0ic2VsZWN0Q29udGVudEJ5UmFuZ2UoMTAwLCAxMCwgMTAwLCAxMTAp
OyI+Ci0gICAgPGRpdiBpZD0icmVnaW9uIj5pbnNpZGUgcmVnaW9uIGluc2lkZSByZWdpb24gaW5z
aWRlIHJlZ2lvbiBpbnNpZGUgcmVnaW9uPC9kaXY+Ci0gICAgPGRpdiBpZD0ib3V0c2lkZSI+b3V0
c2lkZSByZWdpb24gb3V0c2lkZSByZWdpb24gb3V0c2lkZSByZWdpb24gb3V0c2lkZSByZWdpb248
L2Rpdj4KKzxib2R5IG9ubG9hZD0ic2VsZWN0Q29udGVudEJ5UmFuZ2UoMTAwLCA1MCwgMTAwLCAx
NTApOyI+CisgICAgPGRpdiBpZD0icmVnaW9uIj4KKyAgICAgICAgWCBYIFggWCBYCisgICAgICAg
IFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBYCisgICAgICAg
IFggWCBYIFggWFgKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJvdXRzaWRlIj4KKyAgICAgICAg
WCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFgKKyAgICAgICAg
WCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWAorICAgIDwvZGl2PgogICAgIDxkaXYgaWQ9ImRl
c2NyaXB0aW9uIj4KICAgICAgICAgPGgxPjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjE1MDEiPkJ1ZyAjMTIxNTAxIC0gW0NTUyBSZWdpb25zXSBMYXlv
dXQgVGVzdCBmb3Igc2VsZWN0aW9uIGRpcmVjdGlvbjwvYT48L2gxPgotICAgICAgICA8cD5TZWxl
Y3Rpb24gaXMgYmFzZWQgaW4gRE9NIHRyZWUsIHNvIGlmIHlvdSBzZWxlY3QgdGV4dCBmcm9tICJv
dXRzaWRlIHJlZ2lvbiIgdG8gImluc2lkZSByZWdpb24iIHRoZSBoaWdobGlnaHRlZCBhcmVhIGlz
IGV4YWN0bHkgdGhlIG9wcG9zaXRlIHRvIHdoYXQgdGhlIHVzZXIgaXMgYWN0dWFsbHkgc2VsZWN0
aW5nLjwvcD4KKyAgICAgICAgPHA+U2VsZWN0aW9uIGlzIGJhc2VkIGluIERPTSB0cmVlLCBzbyBp
ZiB5b3Ugc2VsZWN0IHRleHQgZnJvbSAiZ3JlZW4iIHRvICJyZWQiIHRoZSBoaWdobGlnaHRlZCBh
cmVhIGlzIGV4YWN0bHkgdGhlIG9wcG9zaXRlIHRvIHdoYXQgdGhlIHVzZXIgaXMgYWN0dWFsbHkg
c2VsZWN0aW5nLjwvcD4KICAgICA8L2Rpdj4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zZWxlY3Rpb24vc2VsZWN0aW9uLWRpcmVjdGlvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3Rpb24tZGlyZWN0
aW9uLmh0bWwKaW5kZXggNWM3MDJkMTllZTQyYTM4MzQ3ZDExZTY0MTMzYWJkMWIwODY5YmNjYy4u
OThmMDg0ZGUyYTFmYWU5MGZlYjAwZDhiYjA2M2VkZTlhZWQyYjg0ZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3Rpb24tZGlyZWN0aW9uLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3NlbGVjdGlvbi9zZWxlY3Rpb24tZGlyZWN0
aW9uLmh0bWwKQEAgLTQsNiArNCw3IEBACiAgICAgPHN0eWxlPgogICAgICAgICAjc291cmNlIHsK
ICAgICAgICAgICAgIC13ZWJraXQtZmxvdy1pbnRvOiBjb250ZW50OworICAgICAgICAgICAgY29s
b3I6IHJlZDsKICAgICAgICAgfQogCiAgICAgICAgICNyZWdpb24gewpAQCAtMTUsMjQgKzE2LDUw
IEBACiAgICAgICAgICNvdXRzaWRlIHsKICAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CiAgICAg
ICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgICAg
ICAgICBmbG9hdDogbGVmdDsKICAgICAgICAgfQogCiAgICAgICAgIGJvZHkgewogICAgICAgICAg
ICAgbWFyZ2luLXRvcDogMDsKKyAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDsKKyAgICAgICAg
ICAgIGZvbnQtZmFtaWx5OiBBaGVtOworICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAg
ICAgICAgIH0KIAogICAgICAgICAjZGVzY3JpcHRpb24gewogICAgICAgICAgICAgd2lkdGg6IDYw
MHB4OwogICAgICAgICB9CisKKyAgICAgICAgaDEgeworICAgICAgICAgICAgbGluZS1oZWlnaHQ6
IDUwcHg7CisgICAgICAgIH0KKworICAgICAgICAuY2xlYXIgeworICAgICAgICAgICAgY2xlYXI6
IGJvdGg7CisgICAgICAgIH0KICAgICA8L3N0eWxlPgogPC9oZWFkPgotPGJvZHkgb25sb2FkPSJz
ZWxlY3RDb250ZW50QnlSYW5nZSgxMDAsIDEwLCAxMDAsIDExMCk7Ij4KLSAgICA8ZGl2IGlkPSJz
b3VyY2UiPmluc2lkZSByZWdpb24gaW5zaWRlIHJlZ2lvbiBpbnNpZGUgcmVnaW9uIGluc2lkZSBy
ZWdpb248L2Rpdj4KLSAgICA8ZGl2IGlkPSJvdXRzaWRlIj5vdXRzaWRlIHJlZ2lvbiBvdXRzaWRl
IHJlZ2lvbiBvdXRzaWRlIHJlZ2lvbiBvdXRzaWRlIHJlZ2lvbjwvZGl2PgorPGJvZHkgb25sb2Fk
PSJzZWxlY3RDb250ZW50QnlSYW5nZSgxMDAsIDUwLCAxMDAsIDE1MCk7Ij4KKyAgICA8ZGl2IGlk
PSJzb3VyY2UiPgorICAgICAgICBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBYCisgICAgICAg
IFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFgKKyAgICAgICAgWCBYIFggWCBYWAorICAgIDwv
ZGl2PgorICAgIDxkaXYgaWQ9Im91dHNpZGUiPgorICAgICAgICBYIFggWCBYIFgKKyAgICAgICAg
WCBYIFggWCBYCisgICAgICAgIFggWCBYIFggWAorICAgICAgICBYIFggWCBYIFgKKyAgICAgICAg
WCBYIFggWCBYCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2PgogICAg
IDxkaXYgaWQ9InJlZ2lvbiI+PC9kaXY+CiAgICAgPGRpdiBpZD0iZGVzY3JpcHRpb24iPgogICAg
ICAgICA8aDE+PGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyMTUwMSI+QnVnICMxMjE1MDEgLSBbQ1NTIFJlZ2lvbnNdIExheW91dCBUZXN0IGZvciBzZWxl
Y3Rpb24gZGlyZWN0aW9uPC9hPjwvaDE+Ci0gICAgICAgIDxwPlNlbGVjdGlvbiBpcyBiYXNlZCBp
biBET00gdHJlZSwgc28gaWYgeW91IHNlbGVjdCB0ZXh0IGZyb20gIm91dHNpZGUgcmVnaW9uIiB0
byAiaW5zaWRlIHJlZ2lvbiIgdGhlIGhpZ2hsaWdodGVkIGFyZWEgaXMgZXhhY3RseSB0aGUgb3Bw
b3NpdGUgdG8gd2hhdCB0aGUgdXNlciBpcyBhY3R1YWxseSBzZWxlY3RpbmcuPC9wPgorICAgICAg
ICA8cD5TZWxlY3Rpb24gaXMgYmFzZWQgaW4gRE9NIHRyZWUsIHNvIGlmIHlvdSBzZWxlY3QgdGV4
dCBmcm9tICJncmVlbiIgdG8gInJlZCIgdGhlIGhpZ2hsaWdodGVkIGFyZWEgaXMgZXhhY3RseSB0
aGUgb3Bwb3NpdGUgdG8gd2hhdCB0aGUgdXNlciBpcyBhY3R1YWxseSBzZWxlY3RpbmcuPC9wPgog
ICAgIDwvZGl2PgogPC9ib2R5PgogPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>