<?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>142266</bug_id>
          
          <creation_ts>2015-03-04 01:05:09 -0800</creation_ts>
          <short_desc>Flex and grid items should be painted as inline-blocks</short_desc>
          <delta_ts>2015-03-18 06:48:36 -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>Layout and Rendering</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>60731</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Manuel Rego Casasnovas">rego</reporter>
          <assigned_to name="Manuel Rego Casasnovas">rego</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>hyatt</cc>
    
    <cc>jfernandez</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1074021</commentid>
    <comment_count>0</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2015-03-04 01:05:09 -0800</bug_when>
    <thetext>From flexbox spec (http://dev.w3.org/csswg/css-flexbox/#painting):
&quot;Flex items paint exactly the same as inline blocks&quot;

From grid spec (http://dev.w3.org/csswg/css-grid/#z-order):
&quot;The painting order of grid items is exactly the same as inline blocks&quot;

This has been already fixed on Blink so we&apos;d need to port https://codereview.chromium.org/23737004 and apply it to flex and grid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077391</commentid>
    <comment_count>1</comment_count>
      <attachid>248725</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2015-03-16 06:10:43 -0700</bug_when>
    <thetext>Created attachment 248725
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077885</commentid>
    <comment_count>2</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2015-03-17 08:43:21 -0700</bug_when>
    <thetext>Adding reviewers. Please, could you take a look? Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077892</commentid>
    <comment_count>3</comment_count>
      <attachid>248725</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-03-17 09:09:09 -0700</bug_when>
    <thetext>Comment on attachment 248725
Patch

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

&gt; Source/WebCore/rendering/InlineElementBox.cpp:73
&gt;      LayoutPoint childPoint = paintOffset;
&gt;      if (is&lt;RenderBox&gt;(renderer()) &amp;&amp; parent()-&gt;renderer().style().isFlippedBlocksWritingMode()) // Faster than calling containingBlock().
&gt;          childPoint = renderer().containingBlock()-&gt;flipForWritingModeForChild(&amp;downcast&lt;RenderBox&gt;(renderer()), childPoint);

Looks like we will do this computation even in cases where we won’t be painting. Seems unfortunate.

&gt; Source/WebCore/rendering/RenderElement.cpp:1174
&gt; +    bool preservePhase = paintInfo.phase == PaintPhaseSelection || paintInfo.phase == PaintPhaseTextClip;

The check for PaintPhaseTextClip here seems to be dead code. We return above unless the phase is foreground or selection.

&gt; Source/WebCore/rendering/RenderElement.cpp:1187
&gt; +    PaintInfo info(paintInfo);
&gt; +    info.phase = preservePhase ? paintInfo.phase : PaintPhaseBlockBackground;
&gt; +    paint(info, childPoint);
&gt; +    if (!preservePhase) {
&gt; +        info.phase = PaintPhaseChildBlockBackgrounds;
&gt; +        paint(info, childPoint);
&gt; +        info.phase = PaintPhaseFloat;
&gt; +        paint(info, childPoint);
&gt; +        info.phase = PaintPhaseForeground;
&gt; +        paint(info, childPoint);
&gt; +        info.phase = PaintPhaseOutline;
&gt; +        paint(info, childPoint);
&gt; +    }

The code here seems needlessly complicated. I would write:

    if (paintInfo.phase == PaintPhaseForeground) {
        paint(paintInfo, childPoint);
        return;
    }

Then the code to paint all the different phases. Also seems we could reuse the original PaintInfo and just set the phase back to PaintPhaseSelection when done rather than copying the PaintInfo. Also seems that a helper function that sets the phase would make the code more readable rather than ll the assignment statements followed by calls to pain.

&gt; Source/WebCore/rendering/RenderFlexibleBox.cpp:336
&gt; +        if (!paintChild(*child, paintInfo, paintOffset, paintInfoForChild, usePrintRect, true))

We use enums rather than booleans in cases like this to avoid mysterious “true” like this one. Please do that here even though an enum might take a few more characters.

&gt; Source/WebCore/rendering/RenderGrid.cpp:1069
&gt; +        paintChild(*child, paintInfo, paintOffset, forChild, usePrintRect, true);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078166</commentid>
    <comment_count>4</comment_count>
      <attachid>248923</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2015-03-18 04:59:18 -0700</bug_when>
    <thetext>Created attachment 248923
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078167</commentid>
    <comment_count>5</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2015-03-18 05:01:52 -0700</bug_when>
    <thetext>Thanks for the review!

(In reply to comment #3)
&gt; &gt; Source/WebCore/rendering/InlineElementBox.cpp:73
&gt; &gt;      LayoutPoint childPoint = paintOffset;
&gt; &gt;      if (is&lt;RenderBox&gt;(renderer()) &amp;&amp; parent()-&gt;renderer().style().isFlippedBlocksWritingMode()) // Faster than calling containingBlock().
&gt; &gt;          childPoint = renderer().containingBlock()-&gt;flipForWritingModeForChild(&amp;downcast&lt;RenderBox&gt;(renderer()), childPoint);
&gt; 
&gt; Looks like we will do this computation even in cases where we won’t be
&gt; painting. Seems unfortunate.

Yeah, I&apos;ve kept the early return to avid this.

&gt; &gt; Source/WebCore/rendering/RenderElement.cpp:1174
&gt; &gt; +    bool preservePhase = paintInfo.phase == PaintPhaseSelection || paintInfo.phase == PaintPhaseTextClip;
&gt; 
&gt; The check for PaintPhaseTextClip here seems to be dead code. We return above
&gt; unless the phase is foreground or selection.

True, this is not needed anymore.

&gt; &gt; Source/WebCore/rendering/RenderElement.cpp:1187
&gt; &gt; +    PaintInfo info(paintInfo);
&gt; &gt; +    info.phase = preservePhase ? paintInfo.phase : PaintPhaseBlockBackground;
&gt; &gt; +    paint(info, childPoint);
&gt; &gt; +    if (!preservePhase) {
&gt; &gt; +        info.phase = PaintPhaseChildBlockBackgrounds;
&gt; &gt; +        paint(info, childPoint);
&gt; &gt; +        info.phase = PaintPhaseFloat;
&gt; &gt; +        paint(info, childPoint);
&gt; &gt; +        info.phase = PaintPhaseForeground;
&gt; &gt; +        paint(info, childPoint);
&gt; &gt; +        info.phase = PaintPhaseOutline;
&gt; &gt; +        paint(info, childPoint);
&gt; &gt; +    }
&gt; 
&gt; The code here seems needlessly complicated. I would write:
&gt; 
&gt;     if (paintInfo.phase == PaintPhaseForeground) {
&gt;         paint(paintInfo, childPoint);
&gt;         return;
&gt;     }
&gt; 
&gt; Then the code to paint all the different phases. Also seems we could reuse
&gt; the original PaintInfo and just set the phase back to PaintPhaseSelection
&gt; when done rather than copying the PaintInfo. Also seems that a helper
&gt; function that sets the phase would make the code more readable rather than
&gt; ll the assignment statements followed by calls to pain.

Thanks for the suggestions, I&apos;ve modified the code and added a helper method. Now, the code seems much better to me.

&gt; &gt; Source/WebCore/rendering/RenderFlexibleBox.cpp:336
&gt; &gt; +        if (!paintChild(*child, paintInfo, paintOffset, paintInfoForChild, usePrintRect, true))
&gt; 
&gt; We use enums rather than booleans in cases like this to avoid mysterious
&gt; “true” like this one. Please do that here even though an enum might take a
&gt; few more characters.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078178</commentid>
    <comment_count>6</comment_count>
      <attachid>248923</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-18 06:48:28 -0700</bug_when>
    <thetext>Comment on attachment 248923
Patch for landing

Clearing flags on attachment: 248923

Committed r181691: &lt;http://trac.webkit.org/changeset/181691&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078179</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-18 06:48:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248725</attachid>
            <date>2015-03-16 06:10:43 -0700</date>
            <delta_ts>2015-03-18 04:59:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142266-20150316141013.patch</filename>
            <type>text/plain</type>
            <size>18015</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxNTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTE0ODYwYmZiMjYwNDUy
NjAyMTZmZGRmNjQ1MTdmZWVlNDIyNWVkOC4uMjUwZWJiOWNiMzE0MGU0MWZlNjMxZGZmMWFiMzky
MDM1MTdmYTNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE1LTAzLTE2ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEZsZXggYW5k
IGdyaWQgaXRlbXMgc2hvdWxkIGJlIHBhaW50ZWQgYXMgaW5saW5lLWJsb2NrcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyMjY2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmFzZWQgb24gQmxpbmsgcjE1
NzAwNCBieSA8Y2JpZXNpbmdlckBjaHJvbWl1bS5vcmc+LgorICAgICAgICBodHRwczovL3NyYy5j
aHJvbWl1bS5vcmcvdmlld3ZjL2JsaW5rP3JldmlzaW9uPTE1NzAwNCZ2aWV3PXJldmlzaW9uCisK
KyAgICAgICAgQm90aCBmbGV4Ym94IGFuZCBncmlkIHNwZWNzIGRlZmluZSB0aGF0IHRoZSBwYWlu
dGluZyBvcmRlciBvZiBmbGV4L2dyaWQKKyAgICAgICAgaXRlbXMgaXMgdGhlIHNhbWUgYXMgaW5s
aW5lIGJsb2Nrcy4gU2VlCisgICAgICAgIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzcy1mbGV4
Ym94LyNwYWludGluZyBhbmQKKyAgICAgICAgaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzLWdy
aWQvI3otb3JkZXIuCisKKyAgICAgICAgRXh0cmFjdGVkIGlubGluZSBibG9ja3MgcGFpbnRpbmcg
Y29kZSBmcm9tIElubGluZUVsZW1lbnRCb3ggYW5kIG1vdmVkIHRvCisgICAgICAgIGEgaGVscGVy
IG1ldGhvZCB0aGF0IHdpbGwgYmUgcmV1c2VkIGZvciBmbGV4Ym94ZXMgYW5kIGdyaWRzLgorCisg
ICAgICAgIFRlc3RzOiBjc3MzL2ZsZXhib3gvZmxleC1pdGVtLXRleHQtYmFja2dyb3VuZC1ub3Qt
aW50ZXJsZWF2ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3Jp
ZC1pdGVtLXRleHQtYmFja2dyb3VuZC1ub3QtaW50ZXJsZWF2ZWQuaHRtbAorCisgICAgICAgICog
cmVuZGVyaW5nL0lubGluZUVsZW1lbnRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5l
RWxlbWVudEJveDo6cGFpbnQpOiBNb3ZlIGNvZGUgdG8KKyAgICAgICAgUmVuZGVyRWxlbWVudDo6
cGFpbnRBc0lubGluZUJsb2NrKCkuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludENoaWxkKTogQWRkIG5ldyBh
cmd1bWVudCB0byBwYWludCBjaGlsZHJlbgorICAgICAgICBhcyBpbmxpbmUgYmxvY2tzLgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnBhaW50QXNJ
bmxpbmVCbG9jayk6IENvZGUgZXh0cmFjdGVkIGZyb20KKyAgICAgICAgSW5saW5lRWxlbWVudEJv
eDo6cGFpbnQoKS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oOiBBZGQgbmV3
IG1ldGhvZCBzaWduYXR1cmUuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94OjpwYWludENoaWxkcmVu
KTogQ2FsbAorICAgICAgICBSZW5kZXJCbG9jazo6cGFpbnRDaGlsZCgpIHdpdGggdGhlIG5ldyBh
cmd1bWVudC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJHcmlkOjpwYWludENoaWxkcmVuKTogRGl0dG8uCisKIDIwMTUtMDMtMTUg
IEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgogCiAgICAgICAgIENTUzog
Zml4IHRoZSBjYXNlLWluc2Vuc2l0aXZlIG1hdGNoaW5nIG9mIHRoZSBhdHRyaWJ1dGUgc2VsZWN0
b3JzIEJlZ2luLCBFbmQgYW5kIEh5cGhlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0lubGluZUVsZW1lbnRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lu
bGluZUVsZW1lbnRCb3guY3BwCmluZGV4IDc2MGQzMGFiNzA4YmY2Nzk2MzYzMmRmYjE4NWUwMGQx
OGQ4MmEzOTguLjY4OWZhYjZjOWM5Y2E4ZTRiNzVhYWJmNGE3YjQ3NjViMzEzY2EyYTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVFbGVtZW50Qm94LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRWxlbWVudEJveC5jcHAKQEAgLTY1LDMw
ICs2NSwxNCBAQCB2b2lkIElubGluZUVsZW1lbnRCb3g6OmF0dGFjaExpbmUoKQogCiB2b2lkIElu
bGluZUVsZW1lbnRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQ
b2ludCYgcGFpbnRPZmZzZXQsIExheW91dFVuaXQgLyogbGluZVRvcCAqLywgTGF5b3V0VW5pdCAv
KmxpbmVCb3R0b20qLykKIHsKLSAgICBpZiAoIXBhaW50SW5mby5zaG91bGRQYWludFdpdGhpblJv
b3QocmVuZGVyZXIoKSkgfHwgKHBhaW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlRm9yZWdyb3Vu
ZCAmJiBwYWludEluZm8ucGhhc2UgIT0gUGFpbnRQaGFzZVNlbGVjdGlvbikpCisgICAgaWYgKCFw
YWludEluZm8uc2hvdWxkUGFpbnRXaXRoaW5Sb290KHJlbmRlcmVyKCkpKQogICAgICAgICByZXR1
cm47CiAKICAgICBMYXlvdXRQb2ludCBjaGlsZFBvaW50ID0gcGFpbnRPZmZzZXQ7CiAgICAgaWYg
KGlzPFJlbmRlckJveD4ocmVuZGVyZXIoKSkgJiYgcGFyZW50KCktPnJlbmRlcmVyKCkuc3R5bGUo
KS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKSAvLyBGYXN0ZXIgdGhhbiBjYWxsaW5nIGNv
bnRhaW5pbmdCbG9jaygpLgogICAgICAgICBjaGlsZFBvaW50ID0gcmVuZGVyZXIoKS5jb250YWlu
aW5nQmxvY2soKS0+ZmxpcEZvcldyaXRpbmdNb2RlRm9yQ2hpbGQoJmRvd25jYXN0PFJlbmRlckJv
eD4ocmVuZGVyZXIoKSksIGNoaWxkUG9pbnQpOwogCi0gICAgLy8gUGFpbnQgYWxsIHBoYXNlcyBv
ZiByZXBsYWNlZCBlbGVtZW50cyBhdG9taWNhbGx5LCBhcyB0aG91Z2ggdGhlIHJlcGxhY2VkIGVs
ZW1lbnQgZXN0YWJsaXNoZWQgaXRzCi0gICAgLy8gb3duIHN0YWNraW5nIGNvbnRleHQuICAoU2Vl
IEFwcGVuZGl4IEUuMiwgc2VjdGlvbiA2LjQgb24gaW5saW5lIGJsb2NrL3RhYmxlIGVsZW1lbnRz
IGluIHRoZSBDU1MyLjEKLSAgICAvLyBzcGVjaWZpY2F0aW9uLikKLSAgICBib29sIHByZXNlcnZl
UGhhc2UgPSBwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZVNlbGVjdGlvbiB8fCBwYWludElu
Zm8ucGhhc2UgPT0gUGFpbnRQaGFzZVRleHRDbGlwOwotICAgIFBhaW50SW5mbyBpbmZvKHBhaW50
SW5mbyk7Ci0gICAgaW5mby5waGFzZSA9IHByZXNlcnZlUGhhc2UgPyBwYWludEluZm8ucGhhc2Ug
OiBQYWludFBoYXNlQmxvY2tCYWNrZ3JvdW5kOwotICAgIHJlbmRlcmVyKCkucGFpbnQoaW5mbywg
Y2hpbGRQb2ludCk7Ci0gICAgaWYgKCFwcmVzZXJ2ZVBoYXNlKSB7Ci0gICAgICAgIGluZm8ucGhh
c2UgPSBQYWludFBoYXNlQ2hpbGRCbG9ja0JhY2tncm91bmRzOwotICAgICAgICByZW5kZXJlcigp
LnBhaW50KGluZm8sIGNoaWxkUG9pbnQpOwotICAgICAgICBpbmZvLnBoYXNlID0gUGFpbnRQaGFz
ZUZsb2F0OwotICAgICAgICByZW5kZXJlcigpLnBhaW50KGluZm8sIGNoaWxkUG9pbnQpOwotICAg
ICAgICBpbmZvLnBoYXNlID0gUGFpbnRQaGFzZUZvcmVncm91bmQ7Ci0gICAgICAgIHJlbmRlcmVy
KCkucGFpbnQoaW5mbywgY2hpbGRQb2ludCk7Ci0gICAgICAgIGluZm8ucGhhc2UgPSBQYWludFBo
YXNlT3V0bGluZTsKLSAgICAgICAgcmVuZGVyZXIoKS5wYWludChpbmZvLCBjaGlsZFBvaW50KTsK
LSAgICB9CisgICAgcmVuZGVyZXIoKS5wYWludEFzSW5saW5lQmxvY2socGFpbnRJbmZvLCBjaGls
ZFBvaW50KTsKIH0KIAogYm9vbCBJbmxpbmVFbGVtZW50Qm94Ojpub2RlQXRQb2ludChjb25zdCBI
aXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBIaXRU
ZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1
bXVsYXRlZE9mZnNldCwgTGF5b3V0VW5pdCAvKiBsaW5lVG9wICovLCBMYXlvdXRVbml0IC8qbGlu
ZUJvdHRvbSovKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXgg
ZTBhN2EwODkzOTFjZDkwYmZlODIyMjQ3MWNhZGJkZTZjY2VjYTE0MC4uMmU3NjQzNjIwNzUzZjZi
YTg2MmExNDk5YWFmODRlMjNmZWFjYzhmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwCkBAIC0xNDUyLDcgKzE0NTIsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWlu
dENoaWxkcmVuKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRP
ZgogICAgIH0KIH0KIAotYm9vbCBSZW5kZXJCbG9jazo6cGFpbnRDaGlsZChSZW5kZXJCb3gmIGNo
aWxkLCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0
LCBQYWludEluZm8mIHBhaW50SW5mb0ZvckNoaWxkLCBib29sIHVzZVByaW50UmVjdCkKK2Jvb2wg
UmVuZGVyQmxvY2s6OnBhaW50Q2hpbGQoUmVuZGVyQm94JiBjaGlsZCwgUGFpbnRJbmZvJiBwYWlu
dEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwgUGFpbnRJbmZvJiBwYWludElu
Zm9Gb3JDaGlsZCwgYm9vbCB1c2VQcmludFJlY3QsIGJvb2wgcGFpbnRBc0lubGluZUJsb2NrKQog
ewogICAgIC8vIENoZWNrIGZvciBwYWdlLWJyZWFrLWJlZm9yZTogYWx3YXlzLCBhbmQgaWYgaXQn
cyBzZXQsIGJyZWFrIGFuZCBiYWlsLgogICAgIGJvb2wgY2hlY2tCZWZvcmVBbHdheXMgPSAhY2hp
bGRyZW5JbmxpbmUoKSAmJiAodXNlUHJpbnRSZWN0ICYmIGNoaWxkLnN0eWxlKCkucGFnZUJyZWFr
QmVmb3JlKCkgPT0gUEJBTFdBWVMpOwpAQCAtMTQ3Niw4ICsxNDc2LDEyIEBAIGJvb2wgUmVuZGVy
QmxvY2s6OnBhaW50Q2hpbGQoUmVuZGVyQm94JiBjaGlsZCwgUGFpbnRJbmZvJiBwYWludEluZm8s
IGNvbnN0IExheW91CiAgICAgfQogCiAgICAgTGF5b3V0UG9pbnQgY2hpbGRQb2ludCA9IGZsaXBG
b3JXcml0aW5nTW9kZUZvckNoaWxkKCZjaGlsZCwgcGFpbnRPZmZzZXQpOwotICAgIGlmICghY2hp
bGQuaGFzU2VsZlBhaW50aW5nTGF5ZXIoKSAmJiAhY2hpbGQuaXNGbG9hdGluZygpKQotICAgICAg
ICBjaGlsZC5wYWludChwYWludEluZm9Gb3JDaGlsZCwgY2hpbGRQb2ludCk7CisgICAgaWYgKCFj
aGlsZC5oYXNTZWxmUGFpbnRpbmdMYXllcigpICYmICFjaGlsZC5pc0Zsb2F0aW5nKCkpIHsKKyAg
ICAgICAgaWYgKHBhaW50QXNJbmxpbmVCbG9jaykKKyAgICAgICAgICAgIGNoaWxkLnBhaW50QXNJ
bmxpbmVCbG9jayhwYWludEluZm9Gb3JDaGlsZCwgY2hpbGRQb2ludCk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIGNoaWxkLnBhaW50KHBhaW50SW5mb0ZvckNoaWxkLCBjaGlsZFBvaW50KTsK
KyAgICB9CiAKICAgICAvLyBDaGVjayBmb3IgcGFnZS1icmVhay1hZnRlcjogYWx3YXlzLCBhbmQg
aWYgaXQncyBzZXQsIGJyZWFrIGFuZCBiYWlsLgogICAgIGJvb2wgY2hlY2tBZnRlckFsd2F5cyA9
ICFjaGlsZHJlbklubGluZSgpICYmICh1c2VQcmludFJlY3QgJiYgY2hpbGQuc3R5bGUoKS5wYWdl
QnJlYWtBZnRlcigpID09IFBCQUxXQVlTKTsKQEAgLTE0OTEsNyArMTQ5NSw2IEBAIGJvb2wgUmVu
ZGVyQmxvY2s6OnBhaW50Q2hpbGQoUmVuZGVyQm94JiBjaGlsZCwgUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IExheW91CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLQogdm9pZCBSZW5kZXJCbG9j
azo6cGFpbnRDYXJldChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBh
aW50T2Zmc2V0LCBDYXJldFR5cGUgdHlwZSkKIHsKICAgICAvLyBQYWludCB0aGUgY2FyZXQgaWYg
dGhlIEZyYW1lU2VsZWN0aW9uIHNheXMgc28gb3IgaWYgY2FyZXQgYnJvd3NpbmcgaXMgZW5hYmxl
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAppbmRleCBlNjYwYTgwNTc4YTNl
NWY5YzE2NDdiNjI0ZjMwMmZmYzA4ZGE3MjY4Li4xYmQ0ZjgwMjM0OTBhY2E4NzlkMTkxMjYyMDY3
ZDk5ZTQ1MTc3YmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaApAQCAt
MzI1LDcgKzMyNSw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJ
bmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcGFp
bnRPYmplY3QoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgcGFpbnRDaGlsZHJlbihQYWludEluZm8mIGZvclNlbGYsIGNvbnN0IExheW91
dFBvaW50JiwgUGFpbnRJbmZvJiBmb3JDaGlsZCwgYm9vbCB1c2VQcmludFJlY3QpOwotICAgIGJv
b2wgcGFpbnRDaGlsZChSZW5kZXJCb3gmLCBQYWludEluZm8mIGZvclNlbGYsIGNvbnN0IExheW91
dFBvaW50JiwgUGFpbnRJbmZvJiBmb3JDaGlsZCwgYm9vbCB1c2VQcmludFJlY3QpOworICAgIGJv
b2wgcGFpbnRDaGlsZChSZW5kZXJCb3gmLCBQYWludEluZm8mIGZvclNlbGYsIGNvbnN0IExheW91
dFBvaW50JiwgUGFpbnRJbmZvJiBmb3JDaGlsZCwgYm9vbCB1c2VQcmludFJlY3QsIGJvb2wgcGFp
bnRBc0lubGluZUJsb2NrID0gZmFsc2UpOwogICAgCiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsUmln
aHRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBmaXhlZE9m
ZnNldCwgYm9vbCBhcHBseVRleHRJbmRlbnQsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IDAp
IGNvbnN0CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3Bw
CmluZGV4IDJhZGVmYWM2NWRlNGU0OWI3NTYwMWU3YTdjNzgyMDM3Y2E4YTdmYjEuLjVlY2E0MzQ4
ZjBhNDkyODM5OTYzODc0YmM1MDFmOTEwOTRkN2RkYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTExNjMsNiArMTE2MywzMCBAQCBSZW5kZXJFbGVt
ZW50KiBSZW5kZXJFbGVtZW50Ojpob3ZlckFuY2VzdG9yKCkgY29uc3QKICAgICByZXR1cm4gaG92
ZXJBbmNlc3RvcjsKIH0KIAordm9pZCBSZW5kZXJFbGVtZW50OjpwYWludEFzSW5saW5lQmxvY2so
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBjaGlsZFBvaW50KQorewor
ICAgIGlmIChwYWludEluZm8ucGhhc2UgIT0gUGFpbnRQaGFzZUZvcmVncm91bmQgJiYgcGFpbnRJ
bmZvLnBoYXNlICE9IFBhaW50UGhhc2VTZWxlY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAg
IC8vIFBhaW50IGFsbCBwaGFzZXMgYXRvbWljYWxseSwgYXMgdGhvdWdoIHRoZSBlbGVtZW50IGVz
dGFibGlzaGVkIGl0cyBvd24gc3RhY2tpbmcgY29udGV4dC4KKyAgICAvLyAoU2VlIEFwcGVuZGl4
IEUuMiwgc2VjdGlvbiA2LjQgb24gaW5saW5lIGJsb2NrL3RhYmxlL3JlcGxhY2VkIGVsZW1lbnRz
IGluIHRoZSBDU1MyLjEgc3BlY2lmaWNhdGlvbi4pCisgICAgLy8gVGhpcyBpcyBhbHNvIHVzZWQg
Ynkgb3RoZXIgZWxlbWVudHMgKGUuZy4gZmxleCBpdGVtcyBhbmQgZ3JpZCBpdGVtcykuCisgICAg
Ym9vbCBwcmVzZXJ2ZVBoYXNlID0gcGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VTZWxlY3Rp
b24gfHwgcGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VUZXh0Q2xpcDsKKyAgICBQYWludElu
Zm8gaW5mbyhwYWludEluZm8pOworICAgIGluZm8ucGhhc2UgPSBwcmVzZXJ2ZVBoYXNlID8gcGFp
bnRJbmZvLnBoYXNlIDogUGFpbnRQaGFzZUJsb2NrQmFja2dyb3VuZDsKKyAgICBwYWludChpbmZv
LCBjaGlsZFBvaW50KTsKKyAgICBpZiAoIXByZXNlcnZlUGhhc2UpIHsKKyAgICAgICAgaW5mby5w
aGFzZSA9IFBhaW50UGhhc2VDaGlsZEJsb2NrQmFja2dyb3VuZHM7CisgICAgICAgIHBhaW50KGlu
Zm8sIGNoaWxkUG9pbnQpOworICAgICAgICBpbmZvLnBoYXNlID0gUGFpbnRQaGFzZUZsb2F0Owor
ICAgICAgICBwYWludChpbmZvLCBjaGlsZFBvaW50KTsKKyAgICAgICAgaW5mby5waGFzZSA9IFBh
aW50UGhhc2VGb3JlZ3JvdW5kOworICAgICAgICBwYWludChpbmZvLCBjaGlsZFBvaW50KTsKKyAg
ICAgICAgaW5mby5waGFzZSA9IFBhaW50UGhhc2VPdXRsaW5lOworICAgICAgICBwYWludChpbmZv
LCBjaGlsZFBvaW50KTsKKyAgICB9Cit9CisKIHZvaWQgUmVuZGVyRWxlbWVudDo6bGF5b3V0KCkK
IHsKICAgICBTdGFja1N0YXRzOjpMYXlvdXRDaGVja1BvaW50IGxheW91dENoZWNrUG9pbnQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAppbmRleCA1Y2IxMjQwZWJmOGQ5
MzRkYmUxNjBkMGI2ZDQwY2VlZDBmZTlkZDQ1Li44NWYxZDI0NDg4N2UzZGFkMzEzNTljNWRhMDVk
M2FmNTg1MDAyMWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgK
QEAgLTExMiw2ICsxMTIsMTEgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFBh
aW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JikgPSAwOwogCisgICAgLy8gaW5saW5lLWJsb2Nr
IGVsZW1lbnRzIHBhaW50IGFsbCBwaGFzZXMgYXRvbWljYWxseS4gVGhpcyBmdW5jdGlvbiBlbnN1
cmVzIHRoYXQuIENlcnRhaW4gb3RoZXIgZWxlbWVudHMKKyAgICAvLyAoZ3JpZCBpdGVtcywgZmxl
eCBpdGVtcykgcmVxdWlyZSB0aGlzIGJlaGF2aW9yIGFzIHdlbGwsIGFuZCB0aGlzIGZ1bmN0aW9u
IGV4aXN0cyBhcyBhIGhlbHBlciBmb3IgdGhlbS4KKyAgICAvLyBJdCBpcyBleHBlY3RlZCB0aGF0
IHRoZSBjYWxsZXIgd2lsbCBjYWxsIHRoaXMgZnVuY3Rpb24gaW5kZXBlbmRlbnQgb2YgdGhlIHZh
bHVlIG9mIHBhaW50SW5mby5waGFzZS4KKyAgICB2b2lkIHBhaW50QXNJbmxpbmVCbG9jayhQYWlu
dEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOworCiAgICAgLy8gUmVjdXJzaXZlIGZ1bmN0aW9u
IHRoYXQgY29tcHV0ZXMgdGhlIHNpemUgYW5kIHBvc2l0aW9uIG9mIHRoaXMgb2JqZWN0IGFuZCBh
bGwgaXRzIGRlc2NlbmRhbnRzLgogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5kZXggZTkxMzli
ODA3OWFkZjBkOTJkOGM0ZGViOTkxMTFkZDQ2NmU3OGQwMy4uNDI3NDU4MDM3YmU2OTQ0YTZhMTJh
ZWE4MmJjZTlhMWY2NDU2MTc3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmxleGlibGVCb3guY3BwCkBAIC0zMzMsNyArMzMzLDcgQEAgdm9pZCBSZW5kZXJGbGV4aWJs
ZUJveDo6cmVwYWludENoaWxkcmVuRHVyaW5nTGF5b3V0SWZNb3ZlZChjb25zdCBDaGlsZEZyYW1l
UmVjdHMKIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OnBhaW50Q2hpbGRyZW4oUGFpbnRJbmZvJiBw
YWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwgUGFpbnRJbmZvJiBwYWlu
dEluZm9Gb3JDaGlsZCwgYm9vbCB1c2VQcmludFJlY3QpCiB7CiAgICAgZm9yIChSZW5kZXJCb3gq
IGNoaWxkID0gbV9vcmRlckl0ZXJhdG9yLmZpcnN0KCk7IGNoaWxkOyBjaGlsZCA9IG1fb3JkZXJJ
dGVyYXRvci5uZXh0KCkpIHsKLSAgICAgICAgaWYgKCFwYWludENoaWxkKCpjaGlsZCwgcGFpbnRJ
bmZvLCBwYWludE9mZnNldCwgcGFpbnRJbmZvRm9yQ2hpbGQsIHVzZVByaW50UmVjdCkpCisgICAg
ICAgIGlmICghcGFpbnRDaGlsZCgqY2hpbGQsIHBhaW50SW5mbywgcGFpbnRPZmZzZXQsIHBhaW50
SW5mb0ZvckNoaWxkLCB1c2VQcmludFJlY3QsIHRydWUpKQogICAgICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlk
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAppbmRleCA3MzYy
MDliZDVlZGQ2Y2IwY2U3ZTNlYmMwNzExM2E4NjY0NWM4MjQ1Li45ZTI0ZTUzYjY3MWZmZjQ0Y2Jm
YmQ2NjdjNWM1MzFmOGY1MGFhY2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdy
aWQuY3BwCkBAIC0xMDY2LDcgKzEwNjYsNyBAQCBMYXlvdXRQb2ludCBSZW5kZXJHcmlkOjpmaW5k
Q2hpbGRMb2dpY2FsUG9zaXRpb24oUmVuZGVyQm94JiBjaGlsZCwgY29uc3QgR3JpZFNpegogdm9p
ZCBSZW5kZXJHcmlkOjpwYWludENoaWxkcmVuKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBM
YXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsIFBhaW50SW5mbyYgZm9yQ2hpbGQsIGJvb2wgdXNlUHJp
bnRSZWN0KQogewogICAgIGZvciAoUmVuZGVyQm94KiBjaGlsZCA9IG1fb3JkZXJJdGVyYXRvci5m
aXJzdCgpOyBjaGlsZDsgY2hpbGQgPSBtX29yZGVySXRlcmF0b3IubmV4dCgpKQotICAgICAgICBw
YWludENoaWxkKCpjaGlsZCwgcGFpbnRJbmZvLCBwYWludE9mZnNldCwgZm9yQ2hpbGQsIHVzZVBy
aW50UmVjdCk7CisgICAgICAgIHBhaW50Q2hpbGQoKmNoaWxkLCBwYWludEluZm8sIHBhaW50T2Zm
c2V0LCBmb3JDaGlsZCwgdXNlUHJpbnRSZWN0LCB0cnVlKTsKIH0KIAogY29uc3QgY2hhciogUmVu
ZGVyR3JpZDo6cmVuZGVyTmFtZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGVlNmI5MjlmNjI1ZjhjZWU2Mjhm
NGE5MmJjNGM0YWU5NGNlMjJiYy4uMTE1MjdhZjdhZjdiYWNmMjc5ZmFjNDA1Y2ZhNTJiZDM1MjAx
YWZjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTAzLTE2ICBNYW51ZWwgUmVnbyBDYXNh
c25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEZsZXggYW5kIGdyaWQgaXRlbXMg
c2hvdWxkIGJlIHBhaW50ZWQgYXMgaW5saW5lLWJsb2NrcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyMjY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBjc3MzL2ZsZXhib3gvZmxleC1pdGVtLXRleHQt
YmFja2dyb3VuZC1ub3QtaW50ZXJsZWF2ZWQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogY3NzMy9mbGV4Ym94L2ZsZXgtaXRlbS10ZXh0LWJhY2tncm91bmQtbm90LWludGVybGVhdmVk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0L2Zsb2F0LW5vdC1w
cm90cnVkaW5nLWludG8tbmV4dC1ncmlkLWl0ZW0tZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgQWRk
IHNvbWUgdmVydGljYWwgc3BhY2UgdG8gYXZvaWQgaXNzdWVzIHdpdGggYmFja2dyb3VuZHMuCisg
ICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZmxvYXQtbm90LXByb3RydWRpbmctaW50by1u
ZXh0LWdyaWQtaXRlbS5odG1sOgorICAgICAgICBEaXR0by4KKyAgICAgICAgKiBmYXN0L2Nzcy1n
cmlkLWxheW91dC9ncmlkLWl0ZW0tdGV4dC1iYWNrZ3JvdW5kLW5vdC1pbnRlcmxlYXZlZC1leHBl
Y3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0
ZW0tdGV4dC1iYWNrZ3JvdW5kLW5vdC1pbnRlcmxlYXZlZC5odG1sOiBBZGRlZC4KKwogMjAxNS0w
My0xNiAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAg
IFtFRkxdIFVucmV2aWV3ZWQgRUZMIGdhcmRlbmluZyBvbiAxNnRoIE1hci4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NzczMvZmxleGJveC9mbGV4LWl0ZW0tdGV4dC1iYWNrZ3JvdW5kLW5vdC1p
bnRlcmxlYXZlZC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2ZsZXgt
aXRlbS10ZXh0LWJhY2tncm91bmQtbm90LWludGVybGVhdmVkLWV4cGVjdGVkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTQwMzI3N2FmZTU0Mjk0MTgzMjFjODIyYWFmNjFjNDE4MzJiOTMzYgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9mbGV4LWl0ZW0tdGV4dC1iYWNrZ3Jv
dW5kLW5vdC1pbnRlcmxlYXZlZC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9D
VFlQRSBodG1sPgorPHN0eWxlPgorLmZpcnN0IHsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
CisgICAgd2lkdGg6IDUwcHg7CisgICAgYmFja2dyb3VuZDogbGltZTsKK30KKworLnNlY29uZCB7
CisgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgIHdpZHRoOiA1MHB4OworICAgIGJhY2tn
cm91bmQ6IGN5YW47Cit9Cis8L3N0eWxlPgorCis8cD5UaGlzIHRlc3QgY2hlY2tzIHRoYXQgZmxl
eCBpdGVtcyB0ZXh0IGFuZCBiYWNrZ3JvdW5kIGFyZSBub3QgaW50ZXJsZWF2ZWQuPC9wPgorPHA+
VGhlIHRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgIkl0ZW0yIiBvbiB0b3Agb2YgIlZlcnlMb25nSXRl
bTEiLjwvcD4KKzxkaXY+CisgICAgPGRpdiBjbGFzcz0iZmlyc3QiPlZlcnlMb25nSXRlbTE8L2Rp
dj48ZGl2IGNsYXNzPSJzZWNvbmQiPkl0ZW0yPC9kaXY+Cis8L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NzczMvZmxleGJveC9mbGV4LWl0ZW0tdGV4dC1iYWNrZ3JvdW5kLW5vdC1pbnRl
cmxlYXZlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2ZsZXgtaXRlbS10ZXh0LWJh
Y2tncm91bmQtbm90LWludGVybGVhdmVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmRlN2RkYzc4NTVhMDI1
NDY3ZjI5ZTQzNTU0MGM1ZmNmYmUxYzg1ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NzczMvZmxleGJveC9mbGV4LWl0ZW0tdGV4dC1iYWNrZ3JvdW5kLW5vdC1pbnRlcmxlYXZlZC5o
dG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGxpbmsgaHJlZj0icmVzb3Vy
Y2VzL2ZsZXhib3guY3NzIiByZWw9InN0eWxlc2hlZXQiPgorPHN0eWxlPgorLmZpcnN0IHsKKyAg
ICB3aWR0aDogNTBweDsKKyAgICBiYWNrZ3JvdW5kOiBsaW1lOworfQorCisuc2Vjb25kIHsKKyAg
ICB3aWR0aDogNTBweDsKKyAgICBiYWNrZ3JvdW5kOiBjeWFuOworfQorPC9zdHlsZT4KKworPHA+
VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGZsZXggaXRlbXMgdGV4dCBhbmQgYmFja2dyb3VuZCBhcmUg
bm90IGludGVybGVhdmVkLjwvcD4KKzxwPlRoZSB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlICJJdGVt
MiIgb24gdG9wIG9mICJWZXJ5TG9uZ0l0ZW0xIi48L3A+Cis8ZGl2IGNsYXNzPSJmbGV4Ym94Ij4K
KyAgICA8ZGl2IGNsYXNzPSJmaXJzdCI+VmVyeUxvbmdJdGVtMTwvZGl2PgorICAgIDxkaXYgY2xh
c3M9InNlY29uZCI+SXRlbTI8L2Rpdj4KKzwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZmxvYXQtbm90LXByb3RydWRpbmctaW50by1uZXh0LWdyaWQt
aXRlbS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZmxv
YXQtbm90LXByb3RydWRpbmctaW50by1uZXh0LWdyaWQtaXRlbS1leHBlY3RlZC5odG1sCmluZGV4
IGEwY2NiZjA2NjA1NDNmNThiZTI5MTgwZGNhYTlkMjcwMTRhMTVmYmEuLjc1ZTQzNGE0MzFjZjMy
NWM3NDJmZGJlNzQ2ODE3NjRjMjk1YTE2OGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzLWdyaWQtbGF5b3V0L2Zsb2F0LW5vdC1wcm90cnVkaW5nLWludG8tbmV4dC1ncmlkLWl0ZW0t
ZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9mbG9h
dC1ub3QtcHJvdHJ1ZGluZy1pbnRvLW5leHQtZ3JpZC1pdGVtLWV4cGVjdGVkLmh0bWwKQEAgLTI1
LDcgKzI1LDcgQEAKIAogPGJvZHk+CiAKLTxkaXY+VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGdyaWQg
aXRlbSBzZXRzIGEgbmV3IGZvcm1hdHRpbmcgY29udGV4dCBmb3IgaXRzIGNvbnRlbnQsIHByZXZl
bnRpbmcgYW55ICdmbG9hdCcgcHJvdHJ1ZGluZyBjb250ZW50IG9uIHRoZSBhZGpvaW5pbmcgZ3Jp
ZCBpdGVtICgnRmxvYXQnIHRleHQgc2hvdWxkbid0IG92ZXJmbG93IHRoZSBmaXJzdCByb3cpLjwv
ZGl2PgorPHA+VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGdyaWQgaXRlbSBzZXRzIGEgbmV3IGZvcm1h
dHRpbmcgY29udGV4dCBmb3IgaXRzIGNvbnRlbnQsIHByZXZlbnRpbmcgYW55ICdmbG9hdCcgcHJv
dHJ1ZGluZyBjb250ZW50IG9uIHRoZSBhZGpvaW5pbmcgZ3JpZCBpdGVtICgnRmxvYXQnIHRleHQg
c2hvdWxkbid0IG92ZXJmbG93IHRoZSBmaXJzdCByb3cpLjwvcD4KIAogPGRpdj4KICAgPGRpdiBj
bGFzcz0iY2VsbCBmbG9hdExlZnQgZmlyc3RSb3dGaXJzdENvbHVtbiI+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9mbG9hdC1ub3QtcHJvdHJ1ZGluZy1pbnRv
LW5leHQtZ3JpZC1pdGVtLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9m
bG9hdC1ub3QtcHJvdHJ1ZGluZy1pbnRvLW5leHQtZ3JpZC1pdGVtLmh0bWwKaW5kZXggNTFmZTQ5
M2JiYmUxN2RkYmMxNTQyMGE1ZDQyNzBmZTdkYWNlMGZmZi4uOTA1MWY2N2IxMjU5MjczODczYTY3
N2VlMWE4YTIxYTYxOTQyYjFkMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3Jp
ZC1sYXlvdXQvZmxvYXQtbm90LXByb3RydWRpbmctaW50by1uZXh0LWdyaWQtaXRlbS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2Zsb2F0LW5vdC1wcm90cnVkaW5n
LWludG8tbmV4dC1ncmlkLWl0ZW0uaHRtbApAQCAtMjMsNyArMjMsNyBAQAogCiA8Ym9keT4KIAot
PGRpdj5UaGlzIHRlc3QgY2hlY2tzIHRoYXQgZ3JpZCBpdGVtIHNldHMgYSBuZXcgZm9ybWF0dGlu
ZyBjb250ZXh0IGZvciBpdHMgY29udGVudCwgcHJldmVudGluZyBhbnkgJ2Zsb2F0JyBwcm90cnVk
aW5nIGNvbnRlbnQgb24gdGhlIGFkam9pbmluZyBncmlkIGl0ZW0gKCdGbG9hdCcgdGV4dCBzaG91
bGRuJ3Qgb3ZlcmZsb3cgdGhlIGZpcnN0IHJvdykuPC9kaXY+Cis8cD5UaGlzIHRlc3QgY2hlY2tz
IHRoYXQgZ3JpZCBpdGVtIHNldHMgYSBuZXcgZm9ybWF0dGluZyBjb250ZXh0IGZvciBpdHMgY29u
dGVudCwgcHJldmVudGluZyBhbnkgJ2Zsb2F0JyBwcm90cnVkaW5nIGNvbnRlbnQgb24gdGhlIGFk
am9pbmluZyBncmlkIGl0ZW0gKCdGbG9hdCcgdGV4dCBzaG91bGRuJ3Qgb3ZlcmZsb3cgdGhlIGZp
cnN0IHJvdykuPC9wPgogCiA8ZGl2IGNsYXNzPSJncmlkIj4KICAgPGRpdiBjbGFzcz0iY2VsbCBm
aXJzdFJvd0ZpcnN0Q29sdW1uIj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdy
aWQtbGF5b3V0L2dyaWQtaXRlbS10ZXh0LWJhY2tncm91bmQtbm90LWludGVybGVhdmVkLWV4cGVj
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tdGV4
dC1iYWNrZ3JvdW5kLW5vdC1pbnRlcmxlYXZlZC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0
NWMzZjdhMzhiZGQ0NTlmODAwZDM0NTYzZTM2ZDAxNWFkMjk5ODAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tdGV4dC1iYWNrZ3Jv
dW5kLW5vdC1pbnRlcmxlYXZlZC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9D
VFlQRSBodG1sPgorPHN0eWxlPgorLmNvbnRhaW5lciB7CisgICAgYmFja2dyb3VuZC1jb2xvcjog
Z3JleTsKK30KKy5lbGVtZW50IHsKKyAgICBiYWNrZ3JvdW5kOiBsaW1lOworICAgIHdpZHRoOiAx
MDBweDsKK30KKzwvc3R5bGU+CisKKzxwPlRoaXMgdGVzdCBjaGVja3MgdGhhdCBncmlkIGl0ZW1z
IHRleHQgYW5kIGJhY2tncm91bmQgYXJlIG5vdCBpbnRlcmxlYXZlZC48L3A+Cis8cD5UaGUgdGVz
dCBwYXNzZXMgaWYgeW91IHNlZSBvbmx5ICJQQVNTIiB0ZXh0IGFuZCBub3QgIkZBSUwiLjwvcD4K
KzxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgPGRpdiBjbGFzcz0iZWxlbWVudCI+UEFTUzwv
ZGl2PgorPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91
dC9ncmlkLWl0ZW0tdGV4dC1iYWNrZ3JvdW5kLW5vdC1pbnRlcmxlYXZlZC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLXRleHQtYmFja2dyb3VuZC1ub3Qt
aW50ZXJsZWF2ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZjA3ZTZhNWYwMzA4MWYwYjQ0Y2QyY2U3YTUz
MGJmNjZkNjBmYjlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3Jp
ZC1sYXlvdXQvZ3JpZC1pdGVtLXRleHQtYmFja2dyb3VuZC1ub3QtaW50ZXJsZWF2ZWQuaHRtbApA
QCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxsaW5rIGhyZWY9InJlc291cmNlcy9n
cmlkLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KKzxzdHlsZT4KKy5ncmlkIHsKKyAgICAtd2Via2l0
LWdyaWQtdGVtcGxhdGUtY29sdW1uczogNTBweCA1MHB4OworfQorLmZpcnN0Um93Rmlyc3RDb2x1
bW5TcGFubmluZzIgeworICAgIGJhY2tncm91bmQ6IGxpbWU7CisgICAgLXdlYmtpdC1ncmlkLWNv
bHVtbjogMSAvIHNwYW4gMjsKKyAgICAtd2Via2l0LWdyaWQtcm93OiAxOworfQorPC9zdHlsZT4K
KworPHA+VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGdyaWQgaXRlbXMgdGV4dCBhbmQgYmFja2dyb3Vu
ZCBhcmUgbm90IGludGVybGVhdmVkLjwvcD4KKzxwPlRoZSB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2Vl
IG9ubHkgIlBBU1MiIHRleHQgYW5kIG5vdCAiRkFJTCIuPC9wPgorPGRpdiBjbGFzcz0iZ3JpZCI+
CisgICAgPGRpdiBjbGFzcz0iZmlyc3RSb3dTZWNvbmRDb2x1bW4iPkZBSUw8L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJmaXJzdFJvd0ZpcnN0Q29sdW1uU3Bhbm5pbmcyIj5QQVNTPC9kaXY+Cis8L2Rp
dj4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248923</attachid>
            <date>2015-03-18 04:59:18 -0700</date>
            <delta_ts>2015-03-18 06:48:28 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-142266-20150318125845.patch</filename>
            <type>text/plain</type>
            <size>18032</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxNjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTU4MDQzYjZiZTYzNTlj
NWFkOTIwMjQ0MmMzZjNkZDg0YjE3ODY5Yy4uOGI1NTQwNGVjMWYxOGJjNjdkNWMxMWYzMjgwMGI3
ZWE2MjY3MjgxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE1LTAzLTE4ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEZsZXggYW5k
IGdyaWQgaXRlbXMgc2hvdWxkIGJlIHBhaW50ZWQgYXMgaW5saW5lLWJsb2NrcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyMjY2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgQmFzZWQgb24gQmxpbmsgcjE1NzAw
NCBieSA8Y2JpZXNpbmdlckBjaHJvbWl1bS5vcmc+LgorICAgICAgICBodHRwczovL3NyYy5jaHJv
bWl1bS5vcmcvdmlld3ZjL2JsaW5rP3JldmlzaW9uPTE1NzAwNCZ2aWV3PXJldmlzaW9uCisKKyAg
ICAgICAgQm90aCBmbGV4Ym94IGFuZCBncmlkIHNwZWNzIGRlZmluZSB0aGF0IHRoZSBwYWludGlu
ZyBvcmRlciBvZiBmbGV4L2dyaWQKKyAgICAgICAgaXRlbXMgaXMgdGhlIHNhbWUgYXMgaW5saW5l
IGJsb2Nrcy4gU2VlCisgICAgICAgIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzcy1mbGV4Ym94
LyNwYWludGluZyBhbmQKKyAgICAgICAgaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzLWdyaWQv
I3otb3JkZXIuCisKKyAgICAgICAgRXh0cmFjdGVkIGlubGluZSBibG9ja3MgcGFpbnRpbmcgY29k
ZSBmcm9tIElubGluZUVsZW1lbnRCb3ggYW5kIG1vdmVkIHRvCisgICAgICAgIGEgaGVscGVyIG1l
dGhvZCB0aGF0IHdpbGwgYmUgcmV1c2VkIGZvciBmbGV4Ym94ZXMgYW5kIGdyaWRzLgorCisgICAg
ICAgIFRlc3RzOiBjc3MzL2ZsZXhib3gvZmxleC1pdGVtLXRleHQtYmFja2dyb3VuZC1ub3QtaW50
ZXJsZWF2ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1p
dGVtLXRleHQtYmFja2dyb3VuZC1ub3QtaW50ZXJsZWF2ZWQuaHRtbAorCisgICAgICAgICogcmVu
ZGVyaW5nL0lubGluZUVsZW1lbnRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRWxl
bWVudEJveDo6cGFpbnQpOiBNb3ZlIGNvZGUgdG8KKyAgICAgICAgUmVuZGVyRWxlbWVudDo6cGFp
bnRBc0lubGluZUJsb2NrKCkuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludENoaWxkKTogQWRkIG5ldyBhcmd1
bWVudCB0byBwYWludCBjaGlsZHJlbgorICAgICAgICBhcyBpbmxpbmUgYmxvY2tzLgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5oOiBEZWZpbmUgUGFpbnRUeXBlIGVubXUgYW5kIG1v
ZGlmeSBwYWludENoaWxkKCkKKyAgICAgICAgc2lnbmF0dXJlIHRvIGFkZCB0aGUgbmV3IGFyZ3Vt
ZW50LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnBhaW50UGhhc2UpOiBQYWludCBlbGVtZW50IGluIGEgcGhhc2UuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpwYWludEFzSW5saW5lQmxvY2spOiBDb2RlIGV4dHJhY3Rl
ZCBmcm9tCisgICAgICAgIElubGluZUVsZW1lbnRCb3g6OnBhaW50KCkuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckVsZW1lbnQuaDogQWRkIG5ldyBtZXRob2Qgc2lnbmF0dXJlLgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJGbGV4aWJsZUJveDo6cGFpbnRDaGlsZHJlbik6IENhbGwKKyAgICAgICAgUmVuZGVyQmxv
Y2s6OnBhaW50Q2hpbGQoKSB3aXRoIHRoZSBuZXcgYXJndW1lbnQuCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckdyaWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cGFpbnRD
aGlsZHJlbik6IERpdHRvLgorCiAyMDE1LTAzLTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgW1dLMl0gTG9nIHRvdGFsIG51bWJlciBvZiBuZXR3b3JrIGNhY2hl
IHF1ZXJpZXMgdXNpbmcgZGlhZ25vc3RpYyBsb2dnaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSW5saW5lRWxlbWVudEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSW5saW5lRWxlbWVudEJveC5jcHAKaW5kZXggNzYwZDMwYWI3MDhiZjY3OTYzNjMyZGZi
MTg1ZTAwZDE4ZDgyYTM5OC4uZWVmOTRkMzE1OTk4MDhlMTdkYWZkZDhlZmI5ZGFhNmFkYTRiY2Jj
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUVsZW1lbnRCb3gu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVFbGVtZW50Qm94LmNwcApA
QCAtNzIsMjMgKzcyLDcgQEAgdm9pZCBJbmxpbmVFbGVtZW50Qm94OjpwYWludChQYWludEluZm8m
IHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2UKICAgICBpZiAoaXM8UmVu
ZGVyQm94PihyZW5kZXJlcigpKSAmJiBwYXJlbnQoKS0+cmVuZGVyZXIoKS5zdHlsZSgpLmlzRmxp
cHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpIC8vIEZhc3RlciB0aGFuIGNhbGxpbmcgY29udGFpbmlu
Z0Jsb2NrKCkuCiAgICAgICAgIGNoaWxkUG9pbnQgPSByZW5kZXJlcigpLmNvbnRhaW5pbmdCbG9j
aygpLT5mbGlwRm9yV3JpdGluZ01vZGVGb3JDaGlsZCgmZG93bmNhc3Q8UmVuZGVyQm94PihyZW5k
ZXJlcigpKSwgY2hpbGRQb2ludCk7CiAKLSAgICAvLyBQYWludCBhbGwgcGhhc2VzIG9mIHJlcGxh
Y2VkIGVsZW1lbnRzIGF0b21pY2FsbHksIGFzIHRob3VnaCB0aGUgcmVwbGFjZWQgZWxlbWVudCBl
c3RhYmxpc2hlZCBpdHMKLSAgICAvLyBvd24gc3RhY2tpbmcgY29udGV4dC4gIChTZWUgQXBwZW5k
aXggRS4yLCBzZWN0aW9uIDYuNCBvbiBpbmxpbmUgYmxvY2svdGFibGUgZWxlbWVudHMgaW4gdGhl
IENTUzIuMQotICAgIC8vIHNwZWNpZmljYXRpb24uKQotICAgIGJvb2wgcHJlc2VydmVQaGFzZSA9
IHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlU2VsZWN0aW9uIHx8IHBhaW50SW5mby5waGFz
ZSA9PSBQYWludFBoYXNlVGV4dENsaXA7Ci0gICAgUGFpbnRJbmZvIGluZm8ocGFpbnRJbmZvKTsK
LSAgICBpbmZvLnBoYXNlID0gcHJlc2VydmVQaGFzZSA/IHBhaW50SW5mby5waGFzZSA6IFBhaW50
UGhhc2VCbG9ja0JhY2tncm91bmQ7Ci0gICAgcmVuZGVyZXIoKS5wYWludChpbmZvLCBjaGlsZFBv
aW50KTsKLSAgICBpZiAoIXByZXNlcnZlUGhhc2UpIHsKLSAgICAgICAgaW5mby5waGFzZSA9IFBh
aW50UGhhc2VDaGlsZEJsb2NrQmFja2dyb3VuZHM7Ci0gICAgICAgIHJlbmRlcmVyKCkucGFpbnQo
aW5mbywgY2hpbGRQb2ludCk7Ci0gICAgICAgIGluZm8ucGhhc2UgPSBQYWludFBoYXNlRmxvYXQ7
Ci0gICAgICAgIHJlbmRlcmVyKCkucGFpbnQoaW5mbywgY2hpbGRQb2ludCk7Ci0gICAgICAgIGlu
Zm8ucGhhc2UgPSBQYWludFBoYXNlRm9yZWdyb3VuZDsKLSAgICAgICAgcmVuZGVyZXIoKS5wYWlu
dChpbmZvLCBjaGlsZFBvaW50KTsKLSAgICAgICAgaW5mby5waGFzZSA9IFBhaW50UGhhc2VPdXRs
aW5lOwotICAgICAgICByZW5kZXJlcigpLnBhaW50KGluZm8sIGNoaWxkUG9pbnQpOwotICAgIH0K
KyAgICByZW5kZXJlcigpLnBhaW50QXNJbmxpbmVCbG9jayhwYWludEluZm8sIGNoaWxkUG9pbnQp
OwogfQogCiBib29sIElubGluZUVsZW1lbnRCb3g6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RS
ZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNvbnN0IEhpdFRlc3RMb2Nh
dGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVk
T2Zmc2V0LCBMYXlvdXRVbml0IC8qIGxpbmVUb3AgKi8sIExheW91dFVuaXQgLypsaW5lQm90dG9t
Ki8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCAyNDQ0MDMz
MmI3NGVjNzZmMzhlMTBjMDYzNTY2YjE1ODI1ODNiZTlkLi42NDU2OTc1MDAwM2EyMDJjYTViODA1
NDY3NDE1ZDEwMzU2NGI4MzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHAKQEAgLTE0NTIsNyArMTQ1Miw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnBhaW50Q2hpbGRy
ZW4oUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mCiAgICAg
fQogfQogCi1ib29sIFJlbmRlckJsb2NrOjpwYWludENoaWxkKFJlbmRlckJveCYgY2hpbGQsIFBh
aW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsIFBhaW50
SW5mbyYgcGFpbnRJbmZvRm9yQ2hpbGQsIGJvb2wgdXNlUHJpbnRSZWN0KQorYm9vbCBSZW5kZXJC
bG9jazo6cGFpbnRDaGlsZChSZW5kZXJCb3gmIGNoaWxkLCBQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBQYWludEluZm8mIHBhaW50SW5mb0ZvckNo
aWxkLCBib29sIHVzZVByaW50UmVjdCwgUGFpbnRCbG9ja1R5cGUgcGFpbnRUeXBlKQogewogICAg
IC8vIENoZWNrIGZvciBwYWdlLWJyZWFrLWJlZm9yZTogYWx3YXlzLCBhbmQgaWYgaXQncyBzZXQs
IGJyZWFrIGFuZCBiYWlsLgogICAgIGJvb2wgY2hlY2tCZWZvcmVBbHdheXMgPSAhY2hpbGRyZW5J
bmxpbmUoKSAmJiAodXNlUHJpbnRSZWN0ICYmIGNoaWxkLnN0eWxlKCkucGFnZUJyZWFrQmVmb3Jl
KCkgPT0gUEJBTFdBWVMpOwpAQCAtMTQ3Niw4ICsxNDc2LDEyIEBAIGJvb2wgUmVuZGVyQmxvY2s6
OnBhaW50Q2hpbGQoUmVuZGVyQm94JiBjaGlsZCwgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0
IExheW91CiAgICAgfQogCiAgICAgTGF5b3V0UG9pbnQgY2hpbGRQb2ludCA9IGZsaXBGb3JXcml0
aW5nTW9kZUZvckNoaWxkKCZjaGlsZCwgcGFpbnRPZmZzZXQpOwotICAgIGlmICghY2hpbGQuaGFz
U2VsZlBhaW50aW5nTGF5ZXIoKSAmJiAhY2hpbGQuaXNGbG9hdGluZygpKQotICAgICAgICBjaGls
ZC5wYWludChwYWludEluZm9Gb3JDaGlsZCwgY2hpbGRQb2ludCk7CisgICAgaWYgKCFjaGlsZC5o
YXNTZWxmUGFpbnRpbmdMYXllcigpICYmICFjaGlsZC5pc0Zsb2F0aW5nKCkpIHsKKyAgICAgICAg
aWYgKHBhaW50VHlwZSA9PSBQYWludEFzSW5saW5lQmxvY2spCisgICAgICAgICAgICBjaGlsZC5w
YWludEFzSW5saW5lQmxvY2socGFpbnRJbmZvRm9yQ2hpbGQsIGNoaWxkUG9pbnQpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBjaGlsZC5wYWludChwYWludEluZm9Gb3JDaGlsZCwgY2hpbGRQ
b2ludCk7CisgICAgfQogCiAgICAgLy8gQ2hlY2sgZm9yIHBhZ2UtYnJlYWstYWZ0ZXI6IGFsd2F5
cywgYW5kIGlmIGl0J3Mgc2V0LCBicmVhayBhbmQgYmFpbC4KICAgICBib29sIGNoZWNrQWZ0ZXJB
bHdheXMgPSAhY2hpbGRyZW5JbmxpbmUoKSAmJiAodXNlUHJpbnRSZWN0ICYmIGNoaWxkLnN0eWxl
KCkucGFnZUJyZWFrQWZ0ZXIoKSA9PSBQQkFMV0FZUyk7CkBAIC0xNDkxLDcgKzE0OTUsNiBAQCBi
b29sIFJlbmRlckJsb2NrOjpwYWludENoaWxkKFJlbmRlckJveCYgY2hpbGQsIFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjb25zdCBMYXlvdQogICAgIHJldHVybiB0cnVlOwogfQogCi0KIHZvaWQgUmVu
ZGVyQmxvY2s6OnBhaW50Q2FyZXQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBv
aW50JiBwYWludE9mZnNldCwgQ2FyZXRUeXBlIHR5cGUpCiB7CiAgICAgLy8gUGFpbnQgdGhlIGNh
cmV0IGlmIHRoZSBGcmFtZVNlbGVjdGlvbiBzYXlzIHNvIG9yIGlmIGNhcmV0IGJyb3dzaW5nIGlz
IGVuYWJsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKaW5kZXggZTY2MGE4
MDU3OGEzZTVmOWMxNjQ3YjYyNGYzMDJmZmMwOGRhNzI2OC4uNjk0MWE0Y2NmZDY3OGViYjQzMmVi
MDY5OTVjODVhM2RhMWU3ZGZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmgKQEAgLTMyNSw3ICszMjUsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50
KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50T2JqZWN0KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jikgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q2hpbGRyZW4oUGFpbnRJbmZvJiBmb3JTZWxmLCBjb25z
dCBMYXlvdXRQb2ludCYsIFBhaW50SW5mbyYgZm9yQ2hpbGQsIGJvb2wgdXNlUHJpbnRSZWN0KTsK
LSAgICBib29sIHBhaW50Q2hpbGQoUmVuZGVyQm94JiwgUGFpbnRJbmZvJiBmb3JTZWxmLCBjb25z
dCBMYXlvdXRQb2ludCYsIFBhaW50SW5mbyYgZm9yQ2hpbGQsIGJvb2wgdXNlUHJpbnRSZWN0KTsK
KyAgICBlbnVtIFBhaW50QmxvY2tUeXBlIHsgUGFpbnRBc0Jsb2NrLCBQYWludEFzSW5saW5lQmxv
Y2sgfTsKKyAgICBib29sIHBhaW50Q2hpbGQoUmVuZGVyQm94JiwgUGFpbnRJbmZvJiBmb3JTZWxm
LCBjb25zdCBMYXlvdXRQb2ludCYsIFBhaW50SW5mbyYgZm9yQ2hpbGQsIGJvb2wgdXNlUHJpbnRS
ZWN0LCBQYWludEJsb2NrVHlwZSBwYWludFR5cGUgPSBQYWludEFzQmxvY2spOwogICAgCiAgICAg
TGF5b3V0VW5pdCBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgbG9naWNhbFRv
cCwgTGF5b3V0VW5pdCBmaXhlZE9mZnNldCwgYm9vbCBhcHBseVRleHRJbmRlbnQsIExheW91dFVu
aXQgbG9naWNhbEhlaWdodCA9IDApIGNvbnN0CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVsZW1lbnQuY3BwCmluZGV4IDhlZGQ0OGJhNGU3YzZlOWM1YzEyZjdjNGFkNDIy
MTg5NWRkMzcxZTQuLjVjZDY0MzAwMTE3NzA0MzJiYmJiYWIzOTRlYzM2MzI0YzcxMDc3OTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTExNjQsNiAr
MTE2NCwzMSBAQCBSZW5kZXJFbGVtZW50KiBSZW5kZXJFbGVtZW50Ojpob3ZlckFuY2VzdG9yKCkg
Y29uc3QKICAgICByZXR1cm4gaG92ZXJBbmNlc3RvcjsKIH0KIAorc3RhdGljIGlubGluZSB2b2lk
IHBhaW50UGhhc2UoUmVuZGVyRWxlbWVudCYgZWxlbWVudCwgUGFpbnRQaGFzZSBwaGFzZSwgUGFp
bnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBjaGlsZFBvaW50KQoreworICAg
IHBhaW50SW5mby5waGFzZSA9IHBoYXNlOworICAgIGVsZW1lbnQucGFpbnQocGFpbnRJbmZvLCBj
aGlsZFBvaW50KTsKK30KKwordm9pZCBSZW5kZXJFbGVtZW50OjpwYWludEFzSW5saW5lQmxvY2so
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBjaGlsZFBvaW50KQorewor
ICAgIC8vIFBhaW50IGFsbCBwaGFzZXMgYXRvbWljYWxseSwgYXMgdGhvdWdoIHRoZSBlbGVtZW50
IGVzdGFibGlzaGVkIGl0cyBvd24gc3RhY2tpbmcgY29udGV4dC4KKyAgICAvLyAoU2VlIEFwcGVu
ZGl4IEUuMiwgc2VjdGlvbiA2LjQgb24gaW5saW5lIGJsb2NrL3RhYmxlL3JlcGxhY2VkIGVsZW1l
bnRzIGluIHRoZSBDU1MyLjEgc3BlY2lmaWNhdGlvbi4pCisgICAgLy8gVGhpcyBpcyBhbHNvIHVz
ZWQgYnkgb3RoZXIgZWxlbWVudHMgKGUuZy4gZmxleCBpdGVtcyBhbmQgZ3JpZCBpdGVtcykuCisg
ICAgaWYgKHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlU2VsZWN0aW9uKSB7CisgICAgICAg
IHBhaW50KHBhaW50SW5mbywgY2hpbGRQb2ludCk7CisgICAgfSBlbHNlIGlmIChwYWludEluZm8u
cGhhc2UgPT0gUGFpbnRQaGFzZUZvcmVncm91bmQpIHsKKyAgICAgICAgcGFpbnRQaGFzZSgqdGhp
cywgUGFpbnRQaGFzZUJsb2NrQmFja2dyb3VuZCwgcGFpbnRJbmZvLCBjaGlsZFBvaW50KTsKKyAg
ICAgICAgcGFpbnRQaGFzZSgqdGhpcywgUGFpbnRQaGFzZUNoaWxkQmxvY2tCYWNrZ3JvdW5kcywg
cGFpbnRJbmZvLCBjaGlsZFBvaW50KTsKKyAgICAgICAgcGFpbnRQaGFzZSgqdGhpcywgUGFpbnRQ
aGFzZUZsb2F0LCBwYWludEluZm8sIGNoaWxkUG9pbnQpOworICAgICAgICBwYWludFBoYXNlKCp0
aGlzLCBQYWludFBoYXNlRm9yZWdyb3VuZCwgcGFpbnRJbmZvLCBjaGlsZFBvaW50KTsKKyAgICAg
ICAgcGFpbnRQaGFzZSgqdGhpcywgUGFpbnRQaGFzZU91dGxpbmUsIHBhaW50SW5mbywgY2hpbGRQ
b2ludCk7CisKKyAgICAgICAgLy8gUmVzZXQgfHBhaW50SW5mb3wgdG8gdGhlIG9yaWdpbmFsIHBo
YXNlLgorICAgICAgICBwYWludEluZm8ucGhhc2UgPSBQYWludFBoYXNlRm9yZWdyb3VuZDsKKyAg
ICB9Cit9CisKIHZvaWQgUmVuZGVyRWxlbWVudDo6bGF5b3V0KCkKIHsKICAgICBTdGFja1N0YXRz
OjpMYXlvdXRDaGVja1BvaW50IGxheW91dENoZWNrUG9pbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVsZW1lbnQuaAppbmRleCAzMDZkZDYzNTA4MmU4NGFiZDVhZGE1YjMwMjg3N2Uy
ZTFiMzg1OTc0Li4zZWQ5YzZlM2Y5YmU4YWE5MjhhY2NjOTM4NjA4ZmFiYTRlMjQ1Y2RlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKQEAgLTExOCw2ICsxMTgsMTEg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExh
eW91dFBvaW50JikgPSAwOwogCisgICAgLy8gaW5saW5lLWJsb2NrIGVsZW1lbnRzIHBhaW50IGFs
bCBwaGFzZXMgYXRvbWljYWxseS4gVGhpcyBmdW5jdGlvbiBlbnN1cmVzIHRoYXQuIENlcnRhaW4g
b3RoZXIgZWxlbWVudHMKKyAgICAvLyAoZ3JpZCBpdGVtcywgZmxleCBpdGVtcykgcmVxdWlyZSB0
aGlzIGJlaGF2aW9yIGFzIHdlbGwsIGFuZCB0aGlzIGZ1bmN0aW9uIGV4aXN0cyBhcyBhIGhlbHBl
ciBmb3IgdGhlbS4KKyAgICAvLyBJdCBpcyBleHBlY3RlZCB0aGF0IHRoZSBjYWxsZXIgd2lsbCBj
YWxsIHRoaXMgZnVuY3Rpb24gaW5kZXBlbmRlbnQgb2YgdGhlIHZhbHVlIG9mIHBhaW50SW5mby5w
aGFzZS4KKyAgICB2b2lkIHBhaW50QXNJbmxpbmVCbG9jayhQYWludEluZm8mLCBjb25zdCBMYXlv
dXRQb2ludCYpOworCiAgICAgLy8gUmVjdXJzaXZlIGZ1bmN0aW9uIHRoYXQgY29tcHV0ZXMgdGhl
IHNpemUgYW5kIHBvc2l0aW9uIG9mIHRoaXMgb2JqZWN0IGFuZCBhbGwgaXRzIGRlc2NlbmRhbnRz
LgogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5kZXggZTkxMzliODA3OWFkZjBkOTJkOGM0ZGVi
OTkxMTFkZDQ2NmU3OGQwMy4uOTM0MzZkMmIxNjY4YTUyY2NhNTFlNmI3YjBjOGI1ZTkzMWI0ZTk0
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3Bw
CkBAIC0zMzMsNyArMzMzLDcgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6cmVwYWludENoaWxk
cmVuRHVyaW5nTGF5b3V0SWZNb3ZlZChjb25zdCBDaGlsZEZyYW1lUmVjdHMKIHZvaWQgUmVuZGVy
RmxleGlibGVCb3g6OnBhaW50Q2hpbGRyZW4oUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExh
eW91dFBvaW50JiBwYWludE9mZnNldCwgUGFpbnRJbmZvJiBwYWludEluZm9Gb3JDaGlsZCwgYm9v
bCB1c2VQcmludFJlY3QpCiB7CiAgICAgZm9yIChSZW5kZXJCb3gqIGNoaWxkID0gbV9vcmRlckl0
ZXJhdG9yLmZpcnN0KCk7IGNoaWxkOyBjaGlsZCA9IG1fb3JkZXJJdGVyYXRvci5uZXh0KCkpIHsK
LSAgICAgICAgaWYgKCFwYWludENoaWxkKCpjaGlsZCwgcGFpbnRJbmZvLCBwYWludE9mZnNldCwg
cGFpbnRJbmZvRm9yQ2hpbGQsIHVzZVByaW50UmVjdCkpCisgICAgICAgIGlmICghcGFpbnRDaGls
ZCgqY2hpbGQsIHBhaW50SW5mbywgcGFpbnRPZmZzZXQsIHBhaW50SW5mb0ZvckNoaWxkLCB1c2VQ
cmludFJlY3QsIFBhaW50QXNJbmxpbmVCbG9jaykpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
fQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4IDczNjIwOWJk
NWVkZDZjYjBjZTdlM2ViYzA3MTEzYTg2NjQ1YzgyNDUuLjljNmQxMzEwZGU1ZGYwODg2NWZmZTkw
Zjk3ZTNjNjliOGE4YjYxN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5j
cHAKQEAgLTEwNjYsNyArMTA2Niw3IEBAIExheW91dFBvaW50IFJlbmRlckdyaWQ6OmZpbmRDaGls
ZExvZ2ljYWxQb3NpdGlvbihSZW5kZXJCb3gmIGNoaWxkLCBjb25zdCBHcmlkU2l6CiB2b2lkIFJl
bmRlckdyaWQ6OnBhaW50Q2hpbGRyZW4oUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91
dFBvaW50JiBwYWludE9mZnNldCwgUGFpbnRJbmZvJiBmb3JDaGlsZCwgYm9vbCB1c2VQcmludFJl
Y3QpCiB7CiAgICAgZm9yIChSZW5kZXJCb3gqIGNoaWxkID0gbV9vcmRlckl0ZXJhdG9yLmZpcnN0
KCk7IGNoaWxkOyBjaGlsZCA9IG1fb3JkZXJJdGVyYXRvci5uZXh0KCkpCi0gICAgICAgIHBhaW50
Q2hpbGQoKmNoaWxkLCBwYWludEluZm8sIHBhaW50T2Zmc2V0LCBmb3JDaGlsZCwgdXNlUHJpbnRS
ZWN0KTsKKyAgICAgICAgcGFpbnRDaGlsZCgqY2hpbGQsIHBhaW50SW5mbywgcGFpbnRPZmZzZXQs
IGZvckNoaWxkLCB1c2VQcmludFJlY3QsIFBhaW50QXNJbmxpbmVCbG9jayk7CiB9CiAKIGNvbnN0
IGNoYXIqIFJlbmRlckdyaWQ6OnJlbmRlck5hbWUoKSBjb25zdApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNlODU2YmE0ZjVj
OTlmMWVlYjU2ZGE2MzA5ZWI0ZjRjOTc2MDcyYWQuLjc5MTUwYWE0N2I0MzgxYTg2OTdlNWUxZGZj
YjRhZTBmNjI0ODVkNDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNS0wMy0xOCAgTWFudWVs
IFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBGbGV4IGFuZCBn
cmlkIGl0ZW1zIHNob3VsZCBiZSBwYWludGVkIGFzIGlubGluZS1ibG9ja3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjI2NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogY3NzMy9mbGV4Ym94L2ZsZXgtaXRl
bS10ZXh0LWJhY2tncm91bmQtbm90LWludGVybGVhdmVkLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGNzczMvZmxleGJveC9mbGV4LWl0ZW0tdGV4dC1iYWNrZ3JvdW5kLW5vdC1pbnRl
cmxlYXZlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9mbG9h
dC1ub3QtcHJvdHJ1ZGluZy1pbnRvLW5leHQtZ3JpZC1pdGVtLWV4cGVjdGVkLmh0bWw6CisgICAg
ICAgIEFkZCBzb21lIHZlcnRpY2FsIHNwYWNlIHRvIGF2b2lkIGlzc3VlcyB3aXRoIGJhY2tncm91
bmRzLgorICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0L2Zsb2F0LW5vdC1wcm90cnVkaW5n
LWludG8tbmV4dC1ncmlkLWl0ZW0uaHRtbDoKKyAgICAgICAgRGl0dG8uCisgICAgICAgICogZmFz
dC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLXRleHQtYmFja2dyb3VuZC1ub3QtaW50ZXJsZWF2
ZWQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQv
Z3JpZC1pdGVtLXRleHQtYmFja2dyb3VuZC1ub3QtaW50ZXJsZWF2ZWQuaHRtbDogQWRkZWQuCisK
IDIwMTUtMDMtMTcgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxODE2NjcsIHIxODE2ODIsIGFuZCByMTgx
NjgzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2ZsZXgtaXRlbS10ZXh0
LWJhY2tncm91bmQtbm90LWludGVybGVhdmVkLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9j
c3MzL2ZsZXhib3gvZmxleC1pdGVtLXRleHQtYmFja2dyb3VuZC1ub3QtaW50ZXJsZWF2ZWQtZXhw
ZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNDAzMjc3YWZlNTQyOTQxODMyMWM4MjJhYWY2MWM0MTgz
MmI5MzNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2ZsZXgt
aXRlbS10ZXh0LWJhY2tncm91bmQtbm90LWludGVybGVhdmVkLWV4cGVjdGVkLmh0bWwKQEAgLTAs
MCArMSwyMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisuZmlyc3QgeworICAgIGRpc3Bs
YXk6IGlubGluZS1ibG9jazsKKyAgICB3aWR0aDogNTBweDsKKyAgICBiYWNrZ3JvdW5kOiBsaW1l
OworfQorCisuc2Vjb25kIHsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgd2lkdGg6
IDUwcHg7CisgICAgYmFja2dyb3VuZDogY3lhbjsKK30KKzwvc3R5bGU+CisKKzxwPlRoaXMgdGVz
dCBjaGVja3MgdGhhdCBmbGV4IGl0ZW1zIHRleHQgYW5kIGJhY2tncm91bmQgYXJlIG5vdCBpbnRl
cmxlYXZlZC48L3A+Cis8cD5UaGUgdGVzdCBwYXNzZXMgaWYgeW91IHNlZSAiSXRlbTIiIG9uIHRv
cCBvZiAiVmVyeUxvbmdJdGVtMSIuPC9wPgorPGRpdj4KKyAgICA8ZGl2IGNsYXNzPSJmaXJzdCI+
VmVyeUxvbmdJdGVtMTwvZGl2PjxkaXYgY2xhc3M9InNlY29uZCI+SXRlbTI8L2Rpdj4KKzwvZGl2
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2ZsZXgtaXRlbS10ZXh0LWJh
Y2tncm91bmQtbm90LWludGVybGVhdmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gv
ZmxleC1pdGVtLXRleHQtYmFja2dyb3VuZC1ub3QtaW50ZXJsZWF2ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yZGU3ZGRjNzg1NWEwMjU0NjdmMjllNDM1NTQwYzVmY2ZiZTFjODVmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2ZsZXgtaXRlbS10ZXh0LWJhY2tncm91bmQt
bm90LWludGVybGVhdmVkLmh0bWwKQEAgLTAsMCArMSwyMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
bGluayBocmVmPSJyZXNvdXJjZXMvZmxleGJveC5jc3MiIHJlbD0ic3R5bGVzaGVldCI+Cis8c3R5
bGU+CisuZmlyc3QgeworICAgIHdpZHRoOiA1MHB4OworICAgIGJhY2tncm91bmQ6IGxpbWU7Cit9
CisKKy5zZWNvbmQgeworICAgIHdpZHRoOiA1MHB4OworICAgIGJhY2tncm91bmQ6IGN5YW47Cit9
Cis8L3N0eWxlPgorCis8cD5UaGlzIHRlc3QgY2hlY2tzIHRoYXQgZmxleCBpdGVtcyB0ZXh0IGFu
ZCBiYWNrZ3JvdW5kIGFyZSBub3QgaW50ZXJsZWF2ZWQuPC9wPgorPHA+VGhlIHRlc3QgcGFzc2Vz
IGlmIHlvdSBzZWUgIkl0ZW0yIiBvbiB0b3Agb2YgIlZlcnlMb25nSXRlbTEiLjwvcD4KKzxkaXYg
Y2xhc3M9ImZsZXhib3giPgorICAgIDxkaXYgY2xhc3M9ImZpcnN0Ij5WZXJ5TG9uZ0l0ZW0xPC9k
aXY+CisgICAgPGRpdiBjbGFzcz0ic2Vjb25kIj5JdGVtMjwvZGl2PgorPC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9mbG9hdC1ub3QtcHJvdHJ1ZGlu
Zy1pbnRvLW5leHQtZ3JpZC1pdGVtLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy1ncmlkLWxheW91dC9mbG9hdC1ub3QtcHJvdHJ1ZGluZy1pbnRvLW5leHQtZ3JpZC1pdGVtLWV4
cGVjdGVkLmh0bWwKaW5kZXggYTBjY2JmMDY2MDU0M2Y1OGJlMjkxODBkY2FhOWQyNzAxNGExNWZi
YS4uNzVlNDM0YTQzMWNmMzI1Yzc0MmZkYmU3NDY4MTc2NGMyOTVhMTY4ZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZmxvYXQtbm90LXByb3RydWRpbmctaW50
by1uZXh0LWdyaWQtaXRlbS1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
LWdyaWQtbGF5b3V0L2Zsb2F0LW5vdC1wcm90cnVkaW5nLWludG8tbmV4dC1ncmlkLWl0ZW0tZXhw
ZWN0ZWQuaHRtbApAQCAtMjUsNyArMjUsNyBAQAogCiA8Ym9keT4KIAotPGRpdj5UaGlzIHRlc3Qg
Y2hlY2tzIHRoYXQgZ3JpZCBpdGVtIHNldHMgYSBuZXcgZm9ybWF0dGluZyBjb250ZXh0IGZvciBp
dHMgY29udGVudCwgcHJldmVudGluZyBhbnkgJ2Zsb2F0JyBwcm90cnVkaW5nIGNvbnRlbnQgb24g
dGhlIGFkam9pbmluZyBncmlkIGl0ZW0gKCdGbG9hdCcgdGV4dCBzaG91bGRuJ3Qgb3ZlcmZsb3cg
dGhlIGZpcnN0IHJvdykuPC9kaXY+Cis8cD5UaGlzIHRlc3QgY2hlY2tzIHRoYXQgZ3JpZCBpdGVt
IHNldHMgYSBuZXcgZm9ybWF0dGluZyBjb250ZXh0IGZvciBpdHMgY29udGVudCwgcHJldmVudGlu
ZyBhbnkgJ2Zsb2F0JyBwcm90cnVkaW5nIGNvbnRlbnQgb24gdGhlIGFkam9pbmluZyBncmlkIGl0
ZW0gKCdGbG9hdCcgdGV4dCBzaG91bGRuJ3Qgb3ZlcmZsb3cgdGhlIGZpcnN0IHJvdykuPC9wPgog
CiA8ZGl2PgogICA8ZGl2IGNsYXNzPSJjZWxsIGZsb2F0TGVmdCBmaXJzdFJvd0ZpcnN0Q29sdW1u
Ij4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2Zsb2F0LW5v
dC1wcm90cnVkaW5nLWludG8tbmV4dC1ncmlkLWl0ZW0uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzLWdyaWQtbGF5b3V0L2Zsb2F0LW5vdC1wcm90cnVkaW5nLWludG8tbmV4dC1ncmlkLWl0ZW0u
aHRtbAppbmRleCA1MWZlNDkzYmJiZTE3ZGRiYzE1NDIwYTVkNDI3MGZlN2RhY2UwZmZmLi45MDUx
ZjY3YjEyNTkyNzM4NzNhNjc3ZWUxYThhMjFhNjE5NDJiMWQxIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9mbG9hdC1ub3QtcHJvdHJ1ZGluZy1pbnRvLW5leHQt
Z3JpZC1pdGVtLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZmxv
YXQtbm90LXByb3RydWRpbmctaW50by1uZXh0LWdyaWQtaXRlbS5odG1sCkBAIC0yMyw3ICsyMyw3
IEBACiAKIDxib2R5PgogCi08ZGl2PlRoaXMgdGVzdCBjaGVja3MgdGhhdCBncmlkIGl0ZW0gc2V0
cyBhIG5ldyBmb3JtYXR0aW5nIGNvbnRleHQgZm9yIGl0cyBjb250ZW50LCBwcmV2ZW50aW5nIGFu
eSAnZmxvYXQnIHByb3RydWRpbmcgY29udGVudCBvbiB0aGUgYWRqb2luaW5nIGdyaWQgaXRlbSAo
J0Zsb2F0JyB0ZXh0IHNob3VsZG4ndCBvdmVyZmxvdyB0aGUgZmlyc3Qgcm93KS48L2Rpdj4KKzxw
PlRoaXMgdGVzdCBjaGVja3MgdGhhdCBncmlkIGl0ZW0gc2V0cyBhIG5ldyBmb3JtYXR0aW5nIGNv
bnRleHQgZm9yIGl0cyBjb250ZW50LCBwcmV2ZW50aW5nIGFueSAnZmxvYXQnIHByb3RydWRpbmcg
Y29udGVudCBvbiB0aGUgYWRqb2luaW5nIGdyaWQgaXRlbSAoJ0Zsb2F0JyB0ZXh0IHNob3VsZG4n
dCBvdmVyZmxvdyB0aGUgZmlyc3Qgcm93KS48L3A+CiAKIDxkaXYgY2xhc3M9ImdyaWQiPgogICA8
ZGl2IGNsYXNzPSJjZWxsIGZpcnN0Um93Rmlyc3RDb2x1bW4iPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLXRleHQtYmFja2dyb3VuZC1ub3Qt
aW50ZXJsZWF2ZWQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5
b3V0L2dyaWQtaXRlbS10ZXh0LWJhY2tncm91bmQtbm90LWludGVybGVhdmVkLWV4cGVjdGVkLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTQ1YzNmN2EzOGJkZDQ1OWY4MDBkMzQ1NjNlMzZkMDE1YWQyOTk4MAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQt
aXRlbS10ZXh0LWJhY2tncm91bmQtbm90LWludGVybGVhdmVkLWV4cGVjdGVkLmh0bWwKQEAgLTAs
MCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisuY29udGFpbmVyIHsKKyAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBncmV5OworfQorLmVsZW1lbnQgeworICAgIGJhY2tncm91bmQ6IGxp
bWU7CisgICAgd2lkdGg6IDEwMHB4OworfQorPC9zdHlsZT4KKworPHA+VGhpcyB0ZXN0IGNoZWNr
cyB0aGF0IGdyaWQgaXRlbXMgdGV4dCBhbmQgYmFja2dyb3VuZCBhcmUgbm90IGludGVybGVhdmVk
LjwvcD4KKzxwPlRoZSB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIG9ubHkgIlBBU1MiIHRleHQgYW5k
IG5vdCAiRkFJTCIuPC9wPgorPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICA8ZGl2IGNsYXNz
PSJlbGVtZW50Ij5QQVNTPC9kaXY+Cis8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS10ZXh0LWJhY2tncm91bmQtbm90LWludGVybGVh
dmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tdGV4
dC1iYWNrZ3JvdW5kLW5vdC1pbnRlcmxlYXZlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmMDdlNmE1ZjAz
MDgxZjBiNDRjZDJjZTdhNTMwYmY2NmQ2MGZiOWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tdGV4dC1iYWNrZ3JvdW5kLW5vdC1p
bnRlcmxlYXZlZC5odG1sCkBAIC0wLDAgKzEsMTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGxpbmsg
aHJlZj0icmVzb3VyY2VzL2dyaWQuY3NzIiByZWw9InN0eWxlc2hlZXQiPgorPHN0eWxlPgorLmdy
aWQgeworICAgIC13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA1MHB4IDUwcHg7Cit9Cisu
Zmlyc3RSb3dGaXJzdENvbHVtblNwYW5uaW5nMiB7CisgICAgYmFja2dyb3VuZDogbGltZTsKKyAg
ICAtd2Via2l0LWdyaWQtY29sdW1uOiAxIC8gc3BhbiAyOworICAgIC13ZWJraXQtZ3JpZC1yb3c6
IDE7Cit9Cis8L3N0eWxlPgorCis8cD5UaGlzIHRlc3QgY2hlY2tzIHRoYXQgZ3JpZCBpdGVtcyB0
ZXh0IGFuZCBiYWNrZ3JvdW5kIGFyZSBub3QgaW50ZXJsZWF2ZWQuPC9wPgorPHA+VGhlIHRlc3Qg
cGFzc2VzIGlmIHlvdSBzZWUgb25seSAiUEFTUyIgdGV4dCBhbmQgbm90ICJGQUlMIi48L3A+Cis8
ZGl2IGNsYXNzPSJncmlkIj4KKyAgICA8ZGl2IGNsYXNzPSJmaXJzdFJvd1NlY29uZENvbHVtbiI+
RkFJTDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImZpcnN0Um93Rmlyc3RDb2x1bW5TcGFubmluZzIi
PlBBU1M8L2Rpdj4KKzwvZGl2Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>