<?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>138551</bug_id>
          
          <creation_ts>2014-11-09 15:37:23 -0800</creation_ts>
          <short_desc>Border-radius does not clip a composited descendant</short_desc>
          <delta_ts>2015-01-26 16:00:01 -0800</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>
          <dependson>140289</dependson>
    
    <dependson>140336</dependson>
    
    <dependson>140536</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Byungseon(Sun) Shin">sun.shin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>jaepark</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>mrobinson</cc>
    
    <cc>noam</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1047423</commentid>
    <comment_count>0</comment_count>
      <attachid>241264</attachid>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2014-11-09 15:37:23 -0800</bug_when>
    <thetext>Created attachment 241264
Clip compositing for animating decendent test

Clip compositing does not work for animating decendent on attached test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047445</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-11-09 19:35:22 -0800</bug_when>
    <thetext>Known issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047447</commentid>
    <comment_count>2</comment_count>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2014-11-09 20:13:35 -0800</bug_when>
    <thetext>Are you woring on the patch also?

We are about to upload a patch based on following Chromium&apos;s patches after rebasing lastest master branch.

http://src.chromium.org/viewvc/blink?view=revision&amp;revision=158258
http://src.chromium.org/viewvc/blink?view=revision&amp;revision=160578
http://src.chromium.org/viewvc/blink?view=revision&amp;revision=162463
http://src.chromium.org/viewvc/blink?view=revision&amp;revision=164833</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047449</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-11-09 20:26:12 -0800</bug_when>
    <thetext>I&apos;m not working on a patch, but please note that http://trac.webkit.org/changeset/175794 changed some code in this area.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047526</commentid>
    <comment_count>4</comment_count>
      <attachid>241288</attachid>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2014-11-10 06:33:00 -0800</bug_when>
    <thetext>Created attachment 241288
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047558</commentid>
    <comment_count>5</comment_count>
      <attachid>241288</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-11-10 10:44:35 -0800</bug_when>
    <thetext>Comment on attachment 241288
Patch

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

&gt; Source/WebCore/ChangeLog:18
&gt; +        If an element&apos;s layer with accelerated children and border-radius reaches 
&gt; +        the compositing state of |paintsIntoCompositedAncestor|, painting is 
&gt; +        no longer performed due to the early bail in CompositedLayerMapping::doPaintTask, 
&gt; +        which also triggers a debug assert.
&gt; +
&gt; +        The issue was caused by adding support for correctly rendering layers having 
&gt; +        border-radius and overflow-hidden using masks, by the time 
&gt; +        the |paintsIntoCompositedAncestor| compositing state was removed.
&gt; +        However, this compositing state was reintroduced, causing the problem at matter.

This comment seems to come before the relevant comments about support border-radius clip with compositing.

&gt; Source/WebCore/platform/graphics/GraphicsLayer.h:251
&gt; +    GraphicsLayer* contentsClippingMaskLayer() const { return m_contentsClippingMaskLayer; }
&gt; +    virtual void setContentsClippingMaskLayer(GraphicsLayer* layer) { m_contentsClippingMaskLayer = layer; }

You need to look at what I did for Mac in r175794.
On Mac/iOS we can use the existing contentsClippingLayer for border-radius clip, since CA supports clipping via a layer&apos;s corner radius. We use a mask shape layer in cases where that&apos;s not possible.

Because of that it&apos;s not appropriate to add a contentsClippingMaskLayer for all platforms here in the base class; you need to do this in a way that lets platforms optimally clip.

&gt; Source/WebCore/rendering/RenderBox.cpp:1490
&gt; +void RenderBox::paintClippingMask(PaintInfo&amp; paintInfo, const LayoutPoint&amp; paintOffset)
&gt; +{
&gt; +    if (!paintInfo.shouldPaintWithinRoot(*this) || style().visibility() != VISIBLE || paintInfo.phase != PaintPhaseClippingMask || paintInfo.context-&gt;paintingDisabled())
&gt; +        return;
&gt; +
&gt; +    LayoutRect paintRect = LayoutRect(paintOffset, size());
&gt; +    paintInfo.context-&gt;fillRect(snappedIntRect(paintRect), Color::black, ColorSpaceDeviceRGB);
&gt; +}

I don&apos;t understand why any new code in renderers is required.

&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:94
&gt; +static inline bool isAcceleratedContents(const RenderObject&amp; renderer)

This is a bad name: should be hasAcceleratedContents()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049168</commentid>
    <comment_count>6</comment_count>
      <attachid>241702</attachid>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2014-11-17 05:30:28 -0800</bug_when>
    <thetext>Created attachment 241702
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049171</commentid>
    <comment_count>7</comment_count>
      <attachid>241288</attachid>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2014-11-17 05:42:48 -0800</bug_when>
    <thetext>Comment on attachment 241288
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/GraphicsLayer.h:251
&gt;&gt; +    virtual void setContentsClippingMaskLayer(GraphicsLayer* layer) { m_contentsClippingMaskLayer = layer; }
&gt; 
&gt; You need to look at what I did for Mac in r175794.
&gt; On Mac/iOS we can use the existing contentsClippingLayer for border-radius clip, since CA supports clipping via a layer&apos;s corner radius. We use a mask shape layer in cases where that&apos;s not possible.
&gt; 
&gt; Because of that it&apos;s not appropriate to add a contentsClippingMaskLayer for all platforms here in the base class; you need to do this in a way that lets platforms optimally clip.

At this time, we only consider Fix clipping compositing decendents of an accelerated layer having border radius and clip overflow issue. So we removed contentsClippingMaskLayer.

&gt;&gt; Source/WebCore/rendering/RenderBox.cpp:1490
&gt;&gt; +}
&gt; 
&gt; I don&apos;t understand why any new code in renderers is required.

Please check following review history of https://codereview.chromium.org/19954010. 
=========================================================================================
On 2013/07/29 19:17:18, eseidel wrote:
&gt; I&apos;m confused by what this new paint-phase means.  It doesn&apos;t look like it
&gt; interacts with SVG at all (its RenderBlock specific?) is that OK?
&gt; 
&gt; Historically the PaintPhases were all defined by CSS paint order, but I guess 
&gt; that&apos;s no longer true:
&gt; http://www.w3.org/TR/CSS21/zindex.html#painting-order

This paint phase is valid only for hardware composited elements and it&apos;s called
on an auxiliary layer, so this phase is never mixed up with the main layer&apos;s
phases. The auxiliary layer is set up as a mask only for the composited elements
which should clip overflow using an irregular clip path (border-radius and,
later, clip-path), and only if there is any composited child to be clipped. I
think this is RenderBlock specific, isn&apos;t it? I should probably check that
renderer() is RenderBlock before painting this phase.

&gt;&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:94
&gt;&gt; +static inline bool isAcceleratedContents(const RenderObject&amp; renderer)
&gt; 
&gt; This is a bad name: should be hasAcceleratedContents()

It has been removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049223</commentid>
    <comment_count>8</comment_count>
      <attachid>241702</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-11-17 09:50:53 -0800</bug_when>
    <thetext>Comment on attachment 241702
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Fix Border-radius clipping issue on a composited decendent

&quot;descendant&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049232</commentid>
    <comment_count>9</comment_count>
      <attachid>241702</attachid>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2014-11-17 10:22:46 -0800</bug_when>
    <thetext>Comment on attachment 241702
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:3
&gt;&gt; +        Fix Border-radius clipping issue on a composited decendent
&gt; 
&gt; &quot;descendant&quot;

@Chris, thanks for the correction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049253</commentid>
    <comment_count>10</comment_count>
      <attachid>241725</attachid>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2014-11-17 11:05:31 -0800</bug_when>
    <thetext>Created attachment 241725
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055610</commentid>
    <comment_count>11</comment_count>
      <attachid>243292</attachid>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2014-12-15 06:29:28 -0800</bug_when>
    <thetext>Created attachment 243292
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055612</commentid>
    <comment_count>12</comment_count>
      <attachid>243293</attachid>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2014-12-15 06:52:30 -0800</bug_when>
    <thetext>Created attachment 243293
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055733</commentid>
    <comment_count>13</comment_count>
      <attachid>243293</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-12-15 13:56:18 -0800</bug_when>
    <thetext>Comment on attachment 243293
Patch

This is closer, but I still want a way to pass a Path down to GraphicsLayer for clipping, since on Mac/iOS we are able to clip to a path without a buffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055788</commentid>
    <comment_count>14</comment_count>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2014-12-15 16:00:57 -0800</bug_when>
    <thetext>I made it works without adding MaskLayer when GraphicsLayerCA::applyClippingBorder of clippingLayer returns true. And it uses setCornerRadius of GraphicsLayerCA.

Do you want make it works even without clippingLayer as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057414</commentid>
    <comment_count>15</comment_count>
      <attachid>243630</attachid>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2014-12-22 11:26:21 -0800</bug_when>
    <thetext>Created attachment 243630
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057475</commentid>
    <comment_count>16</comment_count>
      <attachid>243630</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-12-22 16:22:41 -0800</bug_when>
    <thetext>Comment on attachment 243630
Patch

This looks good, but need some tests. These tests should cover:
* adding and removing border-radius on some ancestor of a compositing layer
* changing between uniform to non-uniform corner radius
* nested ancestors with border radius, falling back to the mask code path.

It might be hard to get ref tests that work, but we should at least exercise all code paths.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058322</commentid>
    <comment_count>17</comment_count>
      <attachid>243860</attachid>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2015-01-01 03:17:30 -0800</bug_when>
    <thetext>Created attachment 243860
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058323</commentid>
    <comment_count>18</comment_count>
      <attachid>243861</attachid>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2015-01-01 03:20:11 -0800</bug_when>
    <thetext>Created attachment 243861
Test for changing between uniform to non-uniform corner radius &amp; removing border-radius.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058324</commentid>
    <comment_count>19</comment_count>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2015-01-01 03:24:35 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; Comment on attachment 243630 [details]
&gt; Patch
&gt; 
&gt; This looks good, but need some tests. These tests should cover:
&gt; * adding and removing border-radius on some ancestor of a compositing layer
&gt; * changing between uniform to non-uniform corner radius
&gt; * nested ancestors with border radius, falling back to the mask code path.
&gt; 
&gt; It might be hard to get ref tests that work, but we should at least exercise
&gt; all code paths.

@Simon, Happy Newyear!
I have created test case which covers your comments and updated patch as well.
Please refer &quot;Test for changing between uniform to non-uniform corner radius &amp; removing border-radius.&quot; 

I am now working on to convert this test case into refTest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058325</commentid>
    <comment_count>20</comment_count>
      <attachid>243862</attachid>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2015-01-01 03:52:57 -0800</bug_when>
    <thetext>Created attachment 243862
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059050</commentid>
    <comment_count>21</comment_count>
      <attachid>243862</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-01-06 10:40:17 -0800</bug_when>
    <thetext>Comment on attachment 243862
Patch

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

&gt; Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:2059
&gt; +    m_layer-&gt;setMask(nullptr);

This makes me wonder whether this new code plays nicely with masks (-webkit-mask etc). Have you tried masks and non-uniform rounded corners on the same element?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059217</commentid>
    <comment_count>22</comment_count>
      <attachid>243862</attachid>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2015-01-06 16:20:35 -0800</bug_when>
    <thetext>Comment on attachment 243862
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:2059
&gt;&gt; +    m_layer-&gt;setMask(nullptr);
&gt; 
&gt; This makes me wonder whether this new code plays nicely with masks (-webkit-mask etc). Have you tried masks and non-uniform rounded corners on the same element?

This code for clearing caMaskLayer of child(descendants)ClippingLayer, so it does not related with mask Layer itself. 
Yes, I have verified this code works well with non-uniform rounded corner and with mask layers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059358</commentid>
    <comment_count>23</comment_count>
      <attachid>243862</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-07 02:22:21 -0800</bug_when>
    <thetext>Comment on attachment 243862
Patch

Clearing flags on attachment: 243862

Committed r178029: &lt;http://trac.webkit.org/changeset/178029&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059359</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-07 02:22:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1060113</commentid>
    <comment_count>25</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-01-09 03:05:32 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; Comment on attachment 243862 [details]
&gt; Patch
&gt; 
&gt; Clearing flags on attachment: 243862
&gt; 
&gt; Committed r178029: &lt;http://trac.webkit.org/changeset/178029&gt;

It caused a serious regression on EFL: bug140289</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061762</commentid>
    <comment_count>26</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-01-15 20:25:01 -0800</bug_when>
    <thetext>This isn&apos;t working correctly at all. See bug 140536, bug 140535</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061765</commentid>
    <comment_count>27</comment_count>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2015-01-15 20:54:53 -0800</bug_when>
    <thetext>I will check those issues and update soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061985</commentid>
    <comment_count>28</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-01-16 15:10:51 -0800</bug_when>
    <thetext>What&apos;s the invalidation model for that mask layer? It needs to get repainted whenever any of the ancestors that affect the clip change, but I don&apos;t see that happening anywhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062002</commentid>
    <comment_count>29</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-01-16 15:41:19 -0800</bug_when>
    <thetext>There are also issues in the mac code path when an element has both CSS clip: and border-radius.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062012</commentid>
    <comment_count>30</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-01-16 15:58:33 -0800</bug_when>
    <thetext>Also, when I make Mac take the clipping mask code path, it asserts:
* thread #1: tid = 0xde2f, 0x000000010370ecca JavaScriptCore`WTFCrash + 42 at Assertions.cpp:321, queue = &apos;com.apple.main-thread&apos;, stop reason = EXC_BAD_ACCESS (code=1, address=0xbbadbeef)
    frame #0: 0x000000010370ecca JavaScriptCore`WTFCrash + 42 at Assertions.cpp:321
  * frame #1: 0x00000001065109d3 WebCore`WebCore::RenderLayerBacking::paintIntoLayer(this=0x0000000117ee1d20, graphicsLayer=0x0000000117748720, context=0x00007fff5fbfb078, paintDirtyRect=0x00007fff5fbfada0, paintBehavior=0, paintingPhase=32) + 131 at RenderLayerBacking.cpp:2178
    frame #2: 0x0000000106511001 WebCore`WebCore::RenderLayerBacking::paintContents(this=0x0000000117ee1d20, graphicsLayer=0x0000000117748720, context=0x00007fff5fbfb078, paintingPhase=32, clip=0x00007fff5fbfaec8) + 769 at RenderLayerBacking.cpp:2264
    frame #3: 0x000000010568f5db WebCore`WebCore::GraphicsLayer::paintGraphicsLayerContents(this=0x0000000117748720, context=0x00007fff5fbfb078, clip=0x00007fff5fbfb170) + 171 at GraphicsLayer.cpp:351
    frame #4: 0x000000010569f5ac WebCore`WebCore::GraphicsLayerCA::platformCALayerPaintContents(this=0x0000000117748720, (null)=0x0000000117ee2eb0, context=0x00007fff5fbfb078, clip=0x00007fff5fbfb170) + 44 at GraphicsLayerCA.cpp:1257
    frame #5: 0x000000010569f5ff WebCore`non-virtual thunk to WebCore::GraphicsLayerCA::platformCALayerPaintContents(this=0x0000000117748978, (null)=0x0000000117ee2eb0, context=0x00007fff5fbfb078, clip=0x00007fff5fbfb170) + 63 at GraphicsLayerCA.cpp:1258

This patch has too many problems. I&apos;m going to roll it out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062013</commentid>
    <comment_count>31</comment_count>
      <attachid>244814</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-01-16 15:59:03 -0800</bug_when>
    <thetext>Created attachment 244814
Testcase that asserts on non-Mac</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062053</commentid>
    <comment_count>32</comment_count>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2015-01-16 17:17:15 -0800</bug_when>
    <thetext>I have fixed same assertion issue of GTK and EFL on https://bugs.webkit.org/show_bug.cgi?id=140336.
It caused when the patch create childMaskLayer when there is border radius.
I will check on Mac using debug build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062054</commentid>
    <comment_count>33</comment_count>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2015-01-16 17:17:50 -0800</bug_when>
    <thetext>(In reply to comment #32)
&gt; I have fixed same assertion issue of GTK and EFL on
&gt; https://bugs.webkit.org/show_bug.cgi?id=140336.
&gt; It caused when the patch create childMaskLayer when there is no border radius.
&gt; I will check on Mac using debug build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062073</commentid>
    <comment_count>34</comment_count>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2015-01-16 18:40:21 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062074</commentid>
    <comment_count>35</comment_count>
      <attachid>244830</attachid>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2015-01-16 18:40:26 -0800</bug_when>
    <thetext>Created attachment 244830
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062080</commentid>
    <comment_count>36</comment_count>
      <attachid>244830</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-01-16 19:19:57 -0800</bug_when>
    <thetext>Comment on attachment 244830
Patch

Can this be tested?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062280</commentid>
    <comment_count>37</comment_count>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2015-01-18 23:18:43 -0800</bug_when>
    <thetext>(In reply to comment #36)
&gt; Comment on attachment 244830 [details]
&gt; Patch
&gt; 
&gt; Can this be tested?

Yes, I have verified it on GTK port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062393</commentid>
    <comment_count>38</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-01-19 10:35:44 -0800</bug_when>
    <thetext>(In reply to comment #37)
&gt; (In reply to comment #36)
&gt; &gt; Comment on attachment 244830 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Can this be tested?
&gt; 
&gt; Yes, I have verified it on GTK port.

What I meant was &quot;can you make a layout test for this&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062407</commentid>
    <comment_count>39</comment_count>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2015-01-19 10:51:14 -0800</bug_when>
    <thetext>Oh, I misunderstood. I will try it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064000</commentid>
    <comment_count>40</comment_count>
      <attachid>245307</attachid>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2015-01-25 09:00:50 -0800</bug_when>
    <thetext>Created attachment 245307
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064001</commentid>
    <comment_count>41</comment_count>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2015-01-25 09:03:44 -0800</bug_when>
    <thetext>I have added ref-test to verify this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064275</commentid>
    <comment_count>42</comment_count>
      <attachid>245307</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-26 14:59:42 -0800</bug_when>
    <thetext>Comment on attachment 245307
Patch

Clearing flags on attachment: 245307

Committed r179147: &lt;http://trac.webkit.org/changeset/179147&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064276</commentid>
    <comment_count>43</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-26 14:59:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>241264</attachid>
            <date>2014-11-09 15:37:23 -0800</date>
            <delta_ts>2014-11-09 15:37:23 -0800</delta_ts>
            <desc>Clip compositing for animating decendent test</desc>
            <filename>simple-overap-animation.html</filename>
            <type>text/html</type>
            <size>878</size>
            <attacher name="Byungseon(Sun) Shin">sun.shin</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+DQoNCjxodG1sPg0KPGhlYWQ+DQogIDxzdHlsZT4NCiAgICBib2R5ew0K
CSAgbWFyZ2luLXRvcDogMjAwcHg7DQoJfQ0KICAgIC5jb250YWluZXIgew0KICAgICAgaGVpZ2h0
OiAxMjBweDsNCiAgICAgIHdpZHRoOjE2MHB4Ow0KICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAg
ICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgIHotaW5kZXg6IC0xOyAvKiBjcmVhdGUgc3Rh
Y2tpbmcgY29udGV4dCAqLw0KCSAgYm9yZGVyLXJhZGl1czogMTAwcHg7DQoJICBiYWNrZ3JvdW5k
LWNvbG9yOiByZWQ7DQoJICBtYXJnaW4gOiAwIGF1dG87DQogICAgfQ0KICAgDQogICAgLmJveCB7
DQogICAgICB6LWluZGV4OiAxOw0KICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgd2lk
dGg6IDEwMHB4Ow0KICAgICAgaGVpZ2h0OiAxMDBweDsNCiAgICAgIG1hcmdpbjogMTBweDsNCiAg
ICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7DQogICAgfQ0KICAgDQogICAgLmFuaW1hdGluZyB7
DQoJIHotaW5kZXg6IDE7DQogICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogc3BpbiA1cyBpbmZp
bml0ZSBsaW5lYXI7DQogICAgfQ0KICAgDQogICAgQC13ZWJraXQta2V5ZnJhbWVzIHNwaW4gew0K
ICAgICAgZnJvbSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9DQogICAg
ICB0byAgIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7fQ0KICAgIH0NCiAg
PC9zdHlsZT4NCjwvaGVhZD4NCjxib2R5Pg0KICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPg0KICAg
IDxkaXYgaWQ9InRvLWFuaW1hdGUiIGNsYXNzPSJhbmltYXRpbmcgYm94Ij48L2Rpdj4NCiAgPC9k
aXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241288</attachid>
            <date>2014-11-10 06:33:00 -0800</date>
            <delta_ts>2014-11-17 05:30:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138551-20141110063301.patch</filename>
            <type>text/plain</type>
            <size>30449</size>
            <attacher name="Byungseon(Sun) Shin">sun.shin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1ODA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDcxMTFkZDIwODI5OTY0
M2M4NGM1MmRmMmUxZmE4NzI5OTk0MDA5Ny4uYTY3NWJlYjg2ZTZhOGY2YjhmMWU1ZDJmZjg0MzNi
M2RlMjI5MjRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDE0LTExLTEwICBCeXVu
Z3Nlb24gU2hpbiAgPHN1bi5zaGluQGxnZS5jb20+CisKKyAgICAgICAgRml4IEJvcmRlci1yYWRp
dXMgY2xpcHBpbmcgaXNzdWUgb24gYSBjb21wb3NpdGVkIGRlY2VuZGVudAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NTUxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVyZ2VkIGZyb20gQmxpbmsncyBy
MTY0ODMzIGJ5IDxtaXRpY2FAYWRvYmUuY29tPgorCisgICAgICAgIElmIGFuIGVsZW1lbnQncyBs
YXllciB3aXRoIGFjY2VsZXJhdGVkIGNoaWxkcmVuIGFuZCBib3JkZXItcmFkaXVzIHJlYWNoZXMg
CisgICAgICAgIHRoZSBjb21wb3NpdGluZyBzdGF0ZSBvZiB8cGFpbnRzSW50b0NvbXBvc2l0ZWRB
bmNlc3RvcnwsIHBhaW50aW5nIGlzIAorICAgICAgICBubyBsb25nZXIgcGVyZm9ybWVkIGR1ZSB0
byB0aGUgZWFybHkgYmFpbCBpbiBDb21wb3NpdGVkTGF5ZXJNYXBwaW5nOjpkb1BhaW50VGFzaywg
CisgICAgICAgIHdoaWNoIGFsc28gdHJpZ2dlcnMgYSBkZWJ1ZyBhc3NlcnQuCisKKyAgICAgICAg
VGhlIGlzc3VlIHdhcyBjYXVzZWQgYnkgYWRkaW5nIHN1cHBvcnQgZm9yIGNvcnJlY3RseSByZW5k
ZXJpbmcgbGF5ZXJzIGhhdmluZyAKKyAgICAgICAgYm9yZGVyLXJhZGl1cyBhbmQgb3ZlcmZsb3ct
aGlkZGVuIHVzaW5nIG1hc2tzLCBieSB0aGUgdGltZSAKKyAgICAgICAgdGhlIHxwYWludHNJbnRv
Q29tcG9zaXRlZEFuY2VzdG9yfCBjb21wb3NpdGluZyBzdGF0ZSB3YXMgcmVtb3ZlZC4KKyAgICAg
ICAgSG93ZXZlciwgdGhpcyBjb21wb3NpdGluZyBzdGF0ZSB3YXMgcmVpbnRyb2R1Y2VkLCBjYXVz
aW5nIHRoZSBwcm9ibGVtIGF0IG1hdHRlci4KKworICAgICAgICBUaGUgc29sdXRpb24gZm9yIHRo
aXMgY29uc2lzdHMgaW4gYXNzaWduaW5nIGEgYmFja2luZyBzdG9yZSB0byBsYXllcnMgd2l0aCAK
KyAgICAgICAgYm9yZGVyLXJhZGl1cyBhbmQgb3ZlcmZsb3cgaGlkZGVuLgorCisgICAgICAgIDxo
dHRwOi8vc3JjLmNocm9taXVtLm9yZy92aWV3dmMvYmxpbms/dmlldz1yZXZpc2lvbiZyZXZpc2lv
bj0xNjQ4MzM+CisKKyAgICAgICAgYW5kIHIxNTgyNTgsIHIxNjI0NjMgYnkgPHJvc2NhQGFkb2Jl
LmNvbT4KKworICAgICAgICBMYXJnZSBjYW52YXMgZG9lcyBub3QgaG9ub3IgY29udGFpbmluZyBk
aXYncyBib3JkZXIgcmFkaXVzLgorICAgICAgICBDbGlwIGFjY2VsZXJhdGVkIGRlc2NlbmRhbnRz
IG9mIGFuIGFjY2VsZXJhdGVkIGxheWVyIGhhdmluZyBib3JkZXIgcmFkaXVzIGFuZCBjbGlwIG92
ZXJmbG93LgorCisgICAgICAgIDxodHRwOi8vc3JjLmNocm9taXVtLm9yZy92aWV3dmMvYmxpbms/
dmlldz1yZXZpc2lvbiZyZXZpc2lvbj0xNTgyNTg+CisgICAgICAgIDxodHRwOi8vc3JjLmNocm9t
aXVtLm9yZy92aWV3dmMvYmxpbms/dmlldz1yZXZpc2lvbiZyZXZpc2lvbj0xNjI0NjM+CisKKyAg
ICAgICAgYW5kIHIxNjA1NzggYnkgPGp1bm92QGNocm9taXVtLm9yZz4KKworICAgICAgICBGaXgg
Zm9yIENTUyBjbGlwLXBhdGggd2l0aCBhY2NlbGVyYXRlZCAyRCBjYW52YXMuCisKKyAgICAgICAg
PGh0dHA6Ly9zcmMuY2hyb21pdW0ub3JnL3ZpZXd2Yy9ibGluaz92aWV3PXJldmlzaW9uJnJldmlz
aW9uPTE2MDU3OD4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6R3JhcGhpY3NMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpub3RlRGV2aWNlT3JQYWdlU2NhbGVGYWN0
b3JDaGFuZ2VkSW5jbHVkaW5nRGVzY2VuZGFudHMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllcjo6ZHVtcFByb3BlcnRpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmNvbnRlbnRz
Q2xpcHBpbmdNYXNrTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6c2V0
Q29udGVudHNDbGlwcGluZ01hc2tMYXllcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllckNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c0NsaXBwaW5nTWFza0xh
eWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1BhaW50UGhhc2Uu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQmxvY2s6OnBhaW50T2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6cGFpbnRDbGlwcGluZ01hc2sp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnBhaW50TGF5
ZXJDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRDaGlsZENs
aXBwaW5nTWFza0ZvckZyYWdtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
Y2FsY3VsYXRlQ2xpcFJlY3RzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmlzQWNjZWxlcmF0ZWRDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckJhY2tpbmc6On5SZW5kZXJMYXllckJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXJCYWNraW5nOjpkZXN0cm95R3JhcGhpY3NMYXllcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR2VvbWV0cnkpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDbGlwcGluZ01hc2tMYXllcnMpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpzZXRDb250ZW50c05lZWREaXNwbGF5
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6c2V0Q29udGVudHNOZWVk
RGlzcGxheUluUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnBh
aW50SW50b0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6cGFp
bnRDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OmJhY2tp
bmdTdG9yZU1lbW9yeUVzdGltYXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzT3duQmFj
a2luZ1N0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OnJlc2V0VHJhY2tlZFJlcGFpbnRSZWN0c1Jl
Y3Vyc2l2ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJSZXBsYWNlZDo6c2hvdWxkUGFpbnQpOgorCiAyMDE0LTExLTA5ICBHeXV5b3VuZyBLaW0g
IDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gUmVtb3ZlIEdhbWVw
YWREZXZpY2VFZmw6OmNyZWF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDYyZDI1MTYzZGQyOTBmMjY4M2EyYjM0Nzk2
Yzk5MDkyN2ViMzlmOTkuLjk2Yjg1NGU2ZGJhNTM0NGY4YzFhOTQ3ZmMwNTdiYjU0NjcwMGNlM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuY3BwCkBAIC05NSw2ICs5NSw3IEBAIEdyYXBoaWNzTGF5ZXI6OkdyYXBoaWNzTGF5ZXIoR3Jh
cGhpY3NMYXllckNsaWVudCYgY2xpZW50KQogICAgICwgbV9jb250ZW50c09yaWVudGF0aW9uKENv
bXBvc2l0aW5nQ29vcmRpbmF0ZXNUb3BEb3duKQogICAgICwgbV9wYXJlbnQobnVsbHB0cikKICAg
ICAsIG1fbWFza0xheWVyKG51bGxwdHIpCisgICAgLCBtX2NvbnRlbnRzQ2xpcHBpbmdNYXNrTGF5
ZXIobnVsbHB0cikKICAgICAsIG1fcmVwbGljYUxheWVyKG51bGxwdHIpCiAgICAgLCBtX3JlcGxp
Y2F0ZWRMYXllcihudWxscHRyKQogICAgICwgbV9yZXBhaW50Q291bnQoMCkKQEAgLTI4OSw2ICsy
OTAsOSBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6Om5vdGVEZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNo
YW5nZWRJbmNsdWRpbmdEZXNjZW5kYW50cygpCiAgICAgaWYgKG1fbWFza0xheWVyKQogICAgICAg
ICBtX21hc2tMYXllci0+ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CiAKKyAgICBp
ZiAobV9jb250ZW50c0NsaXBwaW5nTWFza0xheWVyKQorICAgICAgICBtX2NvbnRlbnRzQ2xpcHBp
bmdNYXNrTGF5ZXItPmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOworCiAgICAgaWYg
KG1fcmVwbGljYUxheWVyKQogICAgICAgICBtX3JlcGxpY2FMYXllci0+bm90ZURldmljZU9yUGFn
ZVNjYWxlRmFjdG9yQ2hhbmdlZEluY2x1ZGluZ0Rlc2NlbmRhbnRzKCk7CiAKQEAgLTc2MSw2ICs3
NjUsMTAgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0
cywgaW50IGluZGVudCwgTGF5ZXJUcmVlQXNUZXh0QmUKICAgICAgICAgICAgIHdyaXRlSW5kZW50
KHRzLCBpbmRlbnQgKyAyKTsKICAgICAgICAgICAgIHRzIDw8ICJHcmFwaGljc0xheWVyUGFpbnRN
YXNrXG4iOwogICAgICAgICB9CisgICAgICAgIGlmIChwYWludGluZ1BoYXNlKCkgJiBHcmFwaGlj
c0xheWVyUGFpbnRDaGlsZENsaXBwaW5nTWFzaykgeworICAgICAgICAgICAgd3JpdGVJbmRlbnQo
dHMsIGluZGVudCArIDIpOworICAgICAgICAgICAgdHMgPDwgIkdyYXBoaWNzTGF5ZXJQYWludENo
aWxkQ2xpcHBpbmdNYXNrXG4iOworICAgICAgICB9CiAgICAgICAgIGlmIChwYWludGluZ1BoYXNl
KCkgJiBHcmFwaGljc0xheWVyUGFpbnRPdmVyZmxvd0NvbnRlbnRzKSB7CiAgICAgICAgICAgICB3
cml0ZUluZGVudCh0cywgaW5kZW50ICsgMik7CiAgICAgICAgICAgICB0cyA8PCAiR3JhcGhpY3NM
YXllclBhaW50T3ZlcmZsb3dDb250ZW50c1xuIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCBhMGMzM2U0YzBhZDQ4MDNiZmM2YjVj
NGVhN2ZiNmVjOWQ4NjlhOTc5Li43ZWY3MzNiMWQ1OTFhZGZmYjAzZjI0N2MxMTQxMTUyZWUzZjM3
ZmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NM
YXllci5oCkBAIC0yNDYsNiArMjQ2LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRJc01hc2tM
YXllcihib29sIGlzTWFzaykgeyBtX2lzTWFza0xheWVyID0gaXNNYXNrOyB9CiAgICAgYm9vbCBp
c01hc2tMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1faXNNYXNrTGF5ZXI7IH0KKworICAgIEdyYXBo
aWNzTGF5ZXIqIGNvbnRlbnRzQ2xpcHBpbmdNYXNrTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2Nv
bnRlbnRzQ2xpcHBpbmdNYXNrTGF5ZXI7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHND
bGlwcGluZ01hc2tMYXllcihHcmFwaGljc0xheWVyKiBsYXllcikgeyBtX2NvbnRlbnRzQ2xpcHBp
bmdNYXNrTGF5ZXIgPSBsYXllcjsgfQogICAgIAogICAgIC8vIFRoZSBnaXZlbiBsYXllciB3aWxs
IHJlcGxpY2F0ZSB0aGlzIGxheWVyIGFuZCBpdHMgY2hpbGRyZW47IHRoZSByZXBsaWNhIHJlbmRl
cnMgYmVoaW5kIHRoaXMgbGF5ZXIuCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHNl
dFJlcGxpY2F0ZWRCeUxheWVyKEdyYXBoaWNzTGF5ZXIqKTsKQEAgLTU4MCw2ICs1ODMsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgR3JhcGhpY3NMYXllciogbV9wYXJlbnQ7CiAKICAgICBHcmFwaGljc0xh
eWVyKiBtX21hc2tMYXllcjsgLy8gUmVmZXJlbmNlIHRvIG1hc2sgbGF5ZXIuIFdlIGRvbid0IG93
biB0aGlzLgorICAgIEdyYXBoaWNzTGF5ZXIqIG1fY29udGVudHNDbGlwcGluZ01hc2tMYXllcjsg
Ly8gUmVmZXJlbmNlIHRvIGNsaXBwaW5nIG1hc2sgbGF5ZXIuIFdlIGRvbid0IG93biB0aGlzLgog
CiAgICAgR3JhcGhpY3NMYXllciogbV9yZXBsaWNhTGF5ZXI7IC8vIEEgbGF5ZXIgdGhhdCByZXBs
aWNhdGVzIHRoaXMgbGF5ZXIuIFdlIG9ubHkgYWxsb3cgb25lLCBmb3Igbm93LgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgcmVwbGljYSBpcyBub3QgcGFyZW50ZWQ7
IHRoaXMgaXMgdGhlIHByaW1hcnkgcmVmZXJlbmNlIHRvIGl0LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCmluZGV4IGI0
NWRmMWM4NzBhMDQxZmEyMWY5YmRkYjVmZGM1ZjFjMWVjNDA4ZDMuLjFkOWFlMWMxNjY2MjFjN2Vh
YjdmOTZiODAxYmYzMmRjNTk4MzBmN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKQEAgLTQ0LDYgKzQ0LDcgQEAg
ZW51bSBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZUZsYWdzIHsKICAgICBHcmFwaGljc0xheWVy
UGFpbnRNYXNrID0gKDEgPDwgMiksCiAgICAgR3JhcGhpY3NMYXllclBhaW50T3ZlcmZsb3dDb250
ZW50cyA9ICgxIDw8IDMpLAogICAgIEdyYXBoaWNzTGF5ZXJQYWludENvbXBvc2l0ZWRTY3JvbGwg
PSAoMSA8PCA0KSwKKyAgICBHcmFwaGljc0xheWVyUGFpbnRDaGlsZENsaXBwaW5nTWFzayA9ICgx
IDw8IDUpLAogICAgIEdyYXBoaWNzTGF5ZXJQYWludEFsbFdpdGhPdmVyZmxvd0NsaXAgPSAoR3Jh
cGhpY3NMYXllclBhaW50QmFja2dyb3VuZCB8IEdyYXBoaWNzTGF5ZXJQYWludEZvcmVncm91bmQg
fCBHcmFwaGljc0xheWVyUGFpbnRNYXNrKQogfTsKIHR5cGVkZWYgdW5zaWduZWQgR3JhcGhpY3NM
YXllclBhaW50aW5nUGhhc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDk5ZTkyYjU0NWM0NmM4YmI2OTk0ZDg4OTY2
ODRjN2FmMmZjMzIyYTkuLjI4ZDNiMzg5ODMyMTcyMjI0NGQyOGRmNmYyZDU4NjhkNThjOWM5ZWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIuY3BwCkBAIC01MDcsNiArNTA3LDE0IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjpzZXRNYXNrTGF5ZXIoR3JhcGhpY3NMYXllciogbGF5ZXIpCiAgICAgZGlkQ2hhbmdlTGF5
ZXJTdGF0ZSgpOwogfQogCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVu
dHNDbGlwcGluZ01hc2tMYXllcihHcmFwaGljc0xheWVyKiBsYXllcikKK3sKKyAgICBpZiAobGF5
ZXIgPT0gY29udGVudHNDbGlwcGluZ01hc2tMYXllcigpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c0NsaXBwaW5nTWFza0xheWVyKGxheWVyKTsKK30K
KwogYm9vbCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNob3VsZERpcmVjdGx5Q29tcG9zaXRl
SW1hZ2UoSW1hZ2UqIGltYWdlKSBjb25zdAogewogICAgIGlmICghaW1hZ2UgfHwgIWltYWdlLT5p
c0JpdG1hcEltYWdlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyLmgKaW5kZXggMDdjMjgxN2M0MjEwNjY5ZjVhOWQ5MzcwMjE1MWZjZTYy
NzBhOWUxNS4uMjU2ZjAxZTEzNTUwZDc5YzgyYmE5MmU1MjhhOTI5M2ZiMmZmZjJjMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaApA
QCAtOTQsNiArOTQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZERpcmVjdGx5
Q29tcG9zaXRlSW1hZ2UoSW1hZ2UqKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIoUGxhdGZvcm1MYXllciosIENvbnRlbnRzTGF5ZXJQ
dXJwb3NlKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TWFza0xheWVyKEdyYXBoaWNz
TGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNDbGlwcGluZ01h
c2tMYXllcihHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFJl
cGxpY2F0ZWRCeUxheWVyKEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0TmVlZHNEaXNwbGF5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRz
RGlzcGxheUluUmVjdChjb25zdCBGbG9hdFJlY3QmLCBTaG91bGRDbGlwVG9MYXllciA9IENsaXBU
b0xheWVyKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Q
YWludFBoYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUGFpbnRQaGFzZS5oCmluZGV4
IDBiYmY5OWE3ZDBjZjVhMDljYTg1YzMwZGYwNjFhMzZkN2NhYzAyNmIuLmE0NDhkOTIyZDk4Zjcx
Yzg3YjlkNjI5NjIzMWVhNGVhNzAzOWVmODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9QYWludFBoYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BhaW50
UGhhc2UuaApAQCAtNDksNyArNDksOCBAQCBlbnVtIFBhaW50UGhhc2UgewogICAgIFBhaW50UGhh
c2VTZWxlY3Rpb24sCiAgICAgUGFpbnRQaGFzZUNvbGxhcHNlZFRhYmxlQm9yZGVycywKICAgICBQ
YWludFBoYXNlVGV4dENsaXAsCi0gICAgUGFpbnRQaGFzZU1hc2sKKyAgICBQYWludFBoYXNlTWFz
aywKKyAgICBQYWludFBoYXNlQ2xpcHBpbmdNYXNrCiB9OwogCiBlbnVtIFBhaW50QmVoYXZpb3JG
bGFncyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCAzNTAy
MjA1YTNjMWMxY2M0MzE0NmZlMjZmNTgyMjFmMDJhNjEzZWRjLi4yYmMzNDkwYWZmYThlYjRhYWYy
MjNiMWY4N2E1ZDU3YzAyOTQyNTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAKQEAgLTE1NzYsNiArMTU3NiwxMSBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWludE9i
amVjdChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmcwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKHBhaW50UGhhc2UgPT0gUGFpbnRQaGFz
ZUNsaXBwaW5nTWFzayAmJiBzdHlsZSgpLnZpc2liaWxpdHkoKSA9PSBWSVNJQkxFKSB7CisgICAg
ICAgIHBhaW50Q2xpcHBpbmdNYXNrKHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCiAgICAgLy8gSWYganVzdCBwYWludGluZyB0aGUgcm9vdCBiYWNrZ3Jv
dW5kLCB0aGVuIHJldHVybi4KICAgICBpZiAocGFpbnRJbmZvLnBhaW50Um9vdEJhY2tncm91bmRP
bmx5KCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5j
cHAKaW5kZXggZTQ4ZWI5YjY3NWRjOWQyMTc1OTkyNGM4ODA1YWZhMGI4OWI0OTgzNy4uNGRlMzMy
NjVkZTQ0NDY5MTA1NzRmYzUwMDhlYzkzMDA0NWVkNDY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAKQEAgLTE0ODAsNiArMTQ4MCwxNSBAQCB2b2lkIFJlbmRlckJveDo6
cGFpbnRNYXNrKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRP
ZmZzZXQpCiAgICAgcGFpbnRNYXNrSW1hZ2VzKHBhaW50SW5mbywgcGFpbnRSZWN0KTsKIH0KIAor
dm9pZCBSZW5kZXJCb3g6OnBhaW50Q2xpcHBpbmdNYXNrKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBj
b25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCit7CisgICAgaWYgKCFwYWludEluZm8uc2hv
dWxkUGFpbnRXaXRoaW5Sb290KCp0aGlzKSB8fCBzdHlsZSgpLnZpc2liaWxpdHkoKSAhPSBWSVNJ
QkxFIHx8IHBhaW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlQ2xpcHBpbmdNYXNrIHx8IHBhaW50
SW5mby5jb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IExheW91dFJlY3QgcGFpbnRSZWN0ID0gTGF5b3V0UmVjdChwYWludE9mZnNldCwgc2l6ZSgpKTsK
KyAgICBwYWludEluZm8uY29udGV4dC0+ZmlsbFJlY3Qoc25hcHBlZEludFJlY3QocGFpbnRSZWN0
KSwgQ29sb3I6OmJsYWNrLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKK30KKwogdm9pZCBSZW5kZXJC
b3g6OnBhaW50TWFza0ltYWdlcyhjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5
b3V0UmVjdCYgcGFpbnRSZWN0KQogewogICAgIC8vIEZpZ3VyZSBvdXQgaWYgd2UgbmVlZCB0byBw
dXNoIGEgdHJhbnNwYXJlbmN5IGxheWVyIHRvIHJlbmRlciBvdXIgbWFzay4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guaAppbmRleCA3ZWYwYzI3YzkxMTI3ZDA1ZjJlZTEzYWU4MjBiMzkw
ZDBhODgxNDBhLi4yMjk0NThlZTZlYjYwNDgwNTQ2OGQ3MzQzNDgwNmM4NjhhN2FiMTBlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC00OTIsNiArNDkyLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBwYWludE9iamVjdChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQ
b2ludCYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRC
b3hEZWNvcmF0aW9ucyhQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwogICAgIHZpcnR1
YWwgdm9pZCBwYWludE1hc2soUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKKyAgICB2
aXJ0dWFsIHZvaWQgcGFpbnRDbGlwcGluZ01hc2soUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9p
bnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciwgY29u
c3QgSW50UmVjdCogPSAwKSBvdmVycmlkZTsKIAogICAgIC8vIENhbGxlZCB3aGVuIGEgcG9zaXRp
b25lZCBvYmplY3QgbW92ZXMgYnV0IGRvZXNuJ3QgbmVjZXNzYXJpbHkgY2hhbmdlIHNpemUuICBB
IHNpbXBsaWZpZWQgbGF5b3V0IGlzIGF0dGVtcHRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKaW5kZXggMDBhMDA5NzBkNjZhZmI5MmM5MjNmYzI5YzZmMTVmYTZlMDI1
OWQ1MC4uMTQ3YTJhM2RkZmViNDAxMmZjOTk4ZDg0MmU1NDk0NWI2ZmRjMDdjZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC00MTg5LDYgKzQxODksMTEgQEAg
dm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dCwgY29uc3QgTGF5ZXJQYWludGkKICAgICAgICAgcGFpbnRNYXNrRm9yRnJhZ21lbnRzKGxh
eWVyRnJhZ21lbnRzLCBjb250ZXh0LCBsb2NhbFBhaW50aW5nSW5mbywgc3VidHJlZVBhaW50Um9v
dEZvclJlbmRlcmVyKTsKICAgICB9CiAKKyAgICBpZiAoKGxvY2FsUGFpbnRGbGFncyAmIFBhaW50
TGF5ZXJQYWludGluZ0NoaWxkQ2xpcHBpbmdNYXNrUGhhc2UpICYmIHNob3VsZFBhaW50Q29udGVu
dCAmJiAhc2VsZWN0aW9uT25seSkgeworICAgICAgICAvLyBQYWludCB0aGUgYm9yZGVyIHJhZGl1
cyBtYXNrIGZvciB0aGUgZnJhZ21lbnRzLgorICAgICAgICBwYWludENoaWxkQ2xpcHBpbmdNYXNr
Rm9yRnJhZ21lbnRzKGxheWVyRnJhZ21lbnRzLCBjb250ZXh0LCBsb2NhbFBhaW50aW5nSW5mbywg
c3VidHJlZVBhaW50Um9vdEZvclJlbmRlcmVyKTsKKyAgICB9CisKICAgICAvLyBFbmQgb3VyIHRy
YW5zcGFyZW5jeSBsYXllcgogICAgIGlmIChoYXZlVHJhbnNwYXJlbmN5ICYmIG1fdXNlZFRyYW5z
cGFyZW5jeSAmJiAhbV9wYWludGluZ0luc2lkZVJlZmxlY3Rpb24pIHsKICAgICAgICAgY29udGV4
dC0+ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKQEAgLTQ2MDcsNiArNDYxMiwyNiBAQCB2b2lkIFJl
bmRlckxheWVyOjpwYWludE1hc2tGb3JGcmFnbWVudHMoY29uc3QgTGF5ZXJGcmFnbWVudHMmIGxh
eWVyRnJhZ21lbnRzLCBHcgogICAgIH0KIH0KIAordm9pZCBSZW5kZXJMYXllcjo6cGFpbnRDaGls
ZENsaXBwaW5nTWFza0ZvckZyYWdtZW50cyhjb25zdCBMYXllckZyYWdtZW50cyYgbGF5ZXJGcmFn
bWVudHMsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGluZ0luZm8m
IGxvY2FsUGFpbnRpbmdJbmZvLAorICAgIFJlbmRlck9iamVjdCogc3VidHJlZVBhaW50Um9vdEZv
clJlbmRlcmVyKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGF5ZXJGcmFnbWVudHMu
c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgY29uc3QgTGF5ZXJGcmFnbWVudCYgZnJhZ21lbnQgPSBs
YXllckZyYWdtZW50cy5hdChpKTsKKyAgICAgICAgaWYgKCFmcmFnbWVudC5zaG91bGRQYWludENv
bnRlbnQpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAobG9jYWxQYWludGlu
Z0luZm8uY2xpcFRvRGlydHlSZWN0KQorICAgICAgICAgICAgY2xpcFRvUmVjdChsb2NhbFBhaW50
aW5nSW5mbywgY29udGV4dCwgZnJhZ21lbnQuZm9yZWdyb3VuZFJlY3QsIEluY2x1ZGVTZWxmRm9y
Qm9yZGVyUmFkaXVzKTsgLy8gQ2hpbGQgY2xpcHBpbmcgbWFzayBwYWludGluZyB3aWxsIGhhbmRs
ZSBjbGlwcGluZyB0byBzZWxmLgorCisgICAgICAgIC8vIFBhaW50IHRoZSBjbGlwcGVkIG1hc2su
CisgICAgICAgIFBhaW50SW5mbyBwYWludEluZm8oY29udGV4dCwgc25hcHBlZEludFJlY3QoZnJh
Z21lbnQuYmFja2dyb3VuZFJlY3QucmVjdCgpKSwgUGFpbnRQaGFzZUNsaXBwaW5nTWFzaywgUGFp
bnRCZWhhdmlvck5vcm1hbCwgc3VidHJlZVBhaW50Um9vdEZvclJlbmRlcmVyLCBudWxscHRyLCBu
dWxscHRyLCAmbG9jYWxQYWludGluZ0luZm8ucm9vdExheWVyLT5yZW5kZXJlcigpKTsKKyAgICAg
ICAgcmVuZGVyZXIoKS5wYWludChwYWludEluZm8sIHRvTGF5b3V0UG9pbnQoZnJhZ21lbnQubGF5
ZXJCb3VuZHMubG9jYXRpb24oKSAtIHJlbmRlckJveExvY2F0aW9uKCkgKyBsb2NhbFBhaW50aW5n
SW5mby5zdWJwaXhlbEFjY3VtdWxhdGlvbikpOworCisgICAgICAgIGlmIChsb2NhbFBhaW50aW5n
SW5mby5jbGlwVG9EaXJ0eVJlY3QpCisgICAgICAgICAgICByZXN0b3JlQ2xpcChjb250ZXh0LCBs
b2NhbFBhaW50aW5nSW5mby5wYWludERpcnR5UmVjdCwgZnJhZ21lbnQuZm9yZWdyb3VuZFJlY3Qp
OworICAgIH0KK30KKwogdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRPdmVyZmxvd0NvbnRyb2xzRm9y
RnJhZ21lbnRzKGNvbnN0IExheWVyRnJhZ21lbnRzJiBsYXllckZyYWdtZW50cywgR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXllclBhaW50aW5nSW5mbyYgbG9jYWxQYWludGluZ0lu
Zm8pCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsYXllckZyYWdtZW50cy5zaXplKCk7
ICsraSkgewpAQCAtNTg3NSw2ICs1OTAwLDExIEBAIEdyYXBoaWNzTGF5ZXIqIFJlbmRlckxheWVy
OjpsYXllckZvclNjcm9sbENvcm5lcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fYmFja2luZyA/IG1f
YmFja2luZy0+bGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSA6IDA7CiB9CiAKK2Jvb2wgUmVuZGVyTGF5
ZXI6OmNsaXBzQ29tcG9zaXRpbmdEZXNjZW5kYW50c1dpdGhCb3JkZXJSYWRpdXMoKSBjb25zdAor
eworICAgIHJldHVybiBjb21wb3NpdG9yKCkuY2xpcHNDb21wb3NpdGluZ0Rlc2NlbmRhbnRzKCp0
aGlzKSAmJiByZW5kZXJlcigpLnN0eWxlKCkuaGFzQm9yZGVyUmFkaXVzKCk7Cit9CisKIGJvb2wg
UmVuZGVyTGF5ZXI6OnBhaW50c1dpdGhUcmFuc2Zvcm0oUGFpbnRCZWhhdmlvciBwYWludEJlaGF2
aW9yKSBjb25zdAogewogICAgIGJvb2wgcGFpbnRzVG9XaW5kb3cgPSAhaXNDb21wb3NpdGVkKCkg
fHwgYmFja2luZygpLT5wYWludHNJbnRvV2luZG93KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5oCmluZGV4IDQxMDkzODc3ZDU5ODMxOTIzMzMwYTgxOTZlN2M1NzRhZTgwZTZh
M2MuLjZiZDBkYjhjM2ViYzU1NmRjYTBlMGEyYjA1YjBiNzJjMjk3MmExNDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC02NjcsNiArNjY3LDcgQEAgcHVibGljOgog
ICAgICAgICBQYWludExheWVyUGFpbnRpbmdPdmVyZmxvd0NvbnRlbnRzID0gMSA8PCA5LAogICAg
ICAgICBQYWludExheWVyUGFpbnRpbmdSb290QmFja2dyb3VuZE9ubHkgPSAxIDw8IDEwLAogICAg
ICAgICBQYWludExheWVyUGFpbnRpbmdTa2lwUm9vdEJhY2tncm91bmQgPSAxIDw8IDExLAorICAg
ICAgICBQYWludExheWVyUGFpbnRpbmdDaGlsZENsaXBwaW5nTWFza1BoYXNlID0gMSA8PCAxMiwK
ICAgICAgICAgUGFpbnRMYXllclBhaW50aW5nQ29tcG9zaXRpbmdBbGxQaGFzZXMgPSAoUGFpbnRM
YXllclBhaW50aW5nQ29tcG9zaXRpbmdCYWNrZ3JvdW5kUGhhc2UgfCBQYWludExheWVyUGFpbnRp
bmdDb21wb3NpdGluZ0ZvcmVncm91bmRQaGFzZSB8IFBhaW50TGF5ZXJQYWludGluZ0NvbXBvc2l0
aW5nTWFza1BoYXNlKQogICAgIH07CiAgICAgCkBAIC04MjIsNiArODIzLDcgQEAgcHVibGljOgog
ICAgIGJvb2wgaXNvbGF0ZXNCbGVuZGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
Ym9vbCBoYXNOb3RJc29sYXRlZEJsZW5kaW5nRGVzY2VuZGFudHNTdGF0dXNEaXJ0eSgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKKyAgICBib29sIGNsaXBzQ29tcG9zaXRpbmdEZXNj
ZW5kYW50c1dpdGhCb3JkZXJSYWRpdXMoKSBjb25zdDsKIAogICAgIGJvb2wgaXNDb21wb3NpdGVk
KCkgY29uc3QgeyByZXR1cm4gbV9iYWNraW5nICE9IDA7IH0KICAgICBib29sIGhhc0NvbXBvc2l0
aW5nRGVzY2VuZGFudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzQ29tcG9zaXRpbmdEZXNjZW5kYW50
OyB9CkBAIC0xMDA5LDYgKzEwMTEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFpbnRPdXRsaW5l
Rm9yRnJhZ21lbnRzKGNvbnN0IExheWVyRnJhZ21lbnRzJiwgR3JhcGhpY3NDb250ZXh0KiwgY29u
c3QgTGF5ZXJQYWludGluZ0luZm8mLCBQYWludEJlaGF2aW9yLCBSZW5kZXJPYmplY3QqIHBhaW50
aW5nUm9vdEZvclJlbmRlcmVyKTsKICAgICB2b2lkIHBhaW50T3ZlcmZsb3dDb250cm9sc0ZvckZy
YWdtZW50cyhjb25zdCBMYXllckZyYWdtZW50cyYsIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExh
eWVyUGFpbnRpbmdJbmZvJik7CiAgICAgdm9pZCBwYWludE1hc2tGb3JGcmFnbWVudHMoY29uc3Qg
TGF5ZXJGcmFnbWVudHMmLCBHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXllclBhaW50aW5nSW5m
byYsIFJlbmRlck9iamVjdCogcGFpbnRpbmdSb290Rm9yUmVuZGVyZXIpOworICAgIHZvaWQgcGFp
bnRDaGlsZENsaXBwaW5nTWFza0ZvckZyYWdtZW50cyhjb25zdCBMYXllckZyYWdtZW50cyYsIEdy
YXBoaWNzQ29udGV4dCosIGNvbnN0IExheWVyUGFpbnRpbmdJbmZvJiwgUmVuZGVyT2JqZWN0KiBw
YWludGluZ1Jvb3RGb3JSZW5kZXJlcik7CiAgICAgdm9pZCBwYWludFRyYW5zZm9ybWVkTGF5ZXJJ
bnRvRnJhZ21lbnRzKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheWVyUGFpbnRpbmdJbmZvJiwg
UGFpbnRMYXllckZsYWdzKTsKIAogICAgIFJlbmRlckxheWVyKiB0cmFuc3BhcmVudFBhaW50aW5n
QW5jZXN0b3IoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAKaW5kZXggYTQ0N2Q5ZTUwZjIxYjlmY2Y3YTY0NDA2NTg1NmI3ZmEyYzI0ZmIzYi4u
NjZlMTFmMmE1YmM4NDIwNzQ2MmExMmUzMTg1M2NiMDZlN2QzNDI1NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTkxLDYgKzkxLDEz
IEBAIENhbnZhc0NvbXBvc2l0aW5nU3RyYXRlZ3kgY2FudmFzQ29tcG9zaXRpbmdTdHJhdGVneShj
b25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyCiAjZW5kaWYKIH0KIAorc3RhdGljIGlubGluZSBi
b29sIGlzQWNjZWxlcmF0ZWRDb250ZW50cyhjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQor
eworICAgIHJldHVybiBjYW52YXNDb21wb3NpdGluZ1N0cmF0ZWd5KHJlbmRlcmVyKSAhPSBVbmFj
Y2VsZXJhdGVkQ2FudmFzCisgICAgICAgIHx8IChpczxSZW5kZXJFbWJlZGRlZE9iamVjdD4ocmVu
ZGVyZXIpICYmIGRvd25jYXN0PFJlbmRlckVtYmVkZGVkT2JqZWN0PihyZW5kZXJlcikuYWxsb3dz
QWNjZWxlcmF0ZWRDb21wb3NpdGluZygpKQorICAgICAgICB8fCByZW5kZXJlci5pc1ZpZGVvKCk7
Cit9CisKIC8vIEdldCB0aGUgc2Nyb2xsaW5nIGNvb3JkaW5hdG9yIGluIGEgd2F5IHRoYXQgd29y
a3MgaW5zaWRlIFJlbmRlckxheWVyQmFja2luZydzIGRlc3RydWN0b3IuCiBzdGF0aWMgU2Nyb2xs
aW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yRnJvbUxheWVyKFJlbmRlckxheWVy
JiBsYXllcikKIHsKQEAgLTE0Nyw2ICsxNTQsNyBAQCBSZW5kZXJMYXllckJhY2tpbmc6On5SZW5k
ZXJMYXllckJhY2tpbmcoKQogICAgIHVwZGF0ZUZvcmVncm91bmRMYXllcihmYWxzZSk7CiAgICAg
dXBkYXRlQmFja2dyb3VuZExheWVyKGZhbHNlKTsKICAgICB1cGRhdGVNYXNrTGF5ZXIoZmFsc2Up
OworICAgIHVwZGF0ZUNsaXBwaW5nTWFza0xheWVycyhmYWxzZSk7CiAgICAgdXBkYXRlU2Nyb2xs
aW5nTGF5ZXJzKGZhbHNlKTsKICAgICBkZXRhY2hGcm9tU2Nyb2xsaW5nQ29vcmRpbmF0b3IoKTsK
ICAgICBkZXN0cm95R3JhcGhpY3NMYXllcnMoKTsKQEAgLTM0OCw2ICszNTYsNyBAQCB2b2lkIFJl
bmRlckxheWVyQmFja2luZzo6ZGVzdHJveUdyYXBoaWNzTGF5ZXJzKCkKICAgICBtX2JhY2tncm91
bmRMYXllciA9IG51bGxwdHI7CiAgICAgbV9jaGlsZENvbnRhaW5tZW50TGF5ZXIgPSBudWxscHRy
OwogICAgIG1fbWFza0xheWVyID0gbnVsbHB0cjsKKyAgICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5
ZXIgPSBudWxscHRyOwogCiAgICAgbV9zY3JvbGxpbmdMYXllciA9IG51bGxwdHI7CiAgICAgbV9z
Y3JvbGxpbmdDb250ZW50c0xheWVyID0gbnVsbHB0cjsKQEAgLTU2OSw2ICs1NzgsMTcgQEAgYm9v
bCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUNvbmZpZ3VyYXRpb24oKQogCiAgICAgdXBkYXRl
TWFza0xheWVyKHJlbmRlcmVyKCkuaGFzTWFzaygpKTsKIAorICAgIGJvb2wgaGFzQ2hpbGRDbGlw
cGluZ0xheWVyID0gbmVlZHNEZXNjZW5kZW50c0NsaXBwaW5nTGF5ZXIgJiYgKGhhc0NsaXBwaW5n
TGF5ZXIoKSB8fCBoYXNTY3JvbGxpbmdMYXllcigpKTsKKyAgICBib29sIG5lZWRzQ2hpbGRDbGlw
cGluZ01hc2sgPSAocmVuZGVyZXIoKS5zdHlsZSgpLmNsaXBQYXRoKCkgfHwgcmVuZGVyZXIoKS5z
dHlsZSgpLmhhc0JvcmRlclJhZGl1cygpKSAmJiAoaGFzQ2hpbGRDbGlwcGluZ0xheWVyIHx8IGlz
QWNjZWxlcmF0ZWRDb250ZW50cyhyZW5kZXJlcigpKSk7CisgICAgaWYgKHVwZGF0ZUNsaXBwaW5n
TWFza0xheWVycyhuZWVkc0NoaWxkQ2xpcHBpbmdNYXNrKSkgeworICAgICAgICBpZiAoaGFzQ2xp
cHBpbmdMYXllcigpKQorICAgICAgICAgICAgY2xpcHBpbmdMYXllcigpLT5zZXRNYXNrTGF5ZXIo
bV9jaGlsZENsaXBwaW5nTWFza0xheWVyLmdldCgpKTsKKyAgICAgICAgZWxzZSBpZiAoaGFzU2Ny
b2xsaW5nTGF5ZXIoKSkKKyAgICAgICAgICAgIHNjcm9sbGluZ0xheWVyKCktPnNldE1hc2tMYXll
cihtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIuZ2V0KCkpOworICAgICAgICBlbHNlIGlmIChpc0Fj
Y2VsZXJhdGVkQ29udGVudHMocmVuZGVyZXIoKSkpCisgICAgICAgICAgICBtX2dyYXBoaWNzTGF5
ZXItPnNldENvbnRlbnRzQ2xpcHBpbmdNYXNrTGF5ZXIobV9jaGlsZENsaXBwaW5nTWFza0xheWVy
LmdldCgpKTsKKyAgICB9CisKICAgICBpZiAobV9vd25pbmdMYXllci5oYXNSZWZsZWN0aW9uKCkp
IHsKICAgICAgICAgaWYgKG1fb3duaW5nTGF5ZXIucmVmbGVjdGlvbkxheWVyKCktPmJhY2tpbmco
KSkgewogICAgICAgICAgICAgR3JhcGhpY3NMYXllciogcmVmbGVjdGlvbkxheWVyID0gbV9vd25p
bmdMYXllci5yZWZsZWN0aW9uTGF5ZXIoKS0+YmFja2luZygpLT5ncmFwaGljc0xheWVyKCk7CkBA
IC04MTQsNiArODM0LDEyIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHZW9tZXRy
eSgpCiAgICAgICAgIGNsaXBMYXllci0+c2V0UG9zaXRpb24oRmxvYXRQb2ludChjbGlwcGluZ0Jv
eC5sb2NhdGlvbigpIC0gbG9jYWxDb21wb3NpdGluZ0JvdW5kcy5sb2NhdGlvbigpKSk7CiAgICAg
ICAgIGNsaXBMYXllci0+c2V0U2l6ZShjbGlwcGluZ0JveC5zaXplKCkpOwogICAgICAgICBjbGlw
TGF5ZXItPnNldE9mZnNldEZyb21SZW5kZXJlcih0b0Zsb2F0U2l6ZShjbGlwcGluZ0JveC5sb2Nh
dGlvbigpKSk7CisKKyAgICAgICAgaWYgKG1fY2hpbGRDbGlwcGluZ01hc2tMYXllciAmJiAhbV9z
Y3JvbGxpbmdMYXllcikgeworICAgICAgICAgICAgbV9jaGlsZENsaXBwaW5nTWFza0xheWVyLT5z
ZXRQb3NpdGlvbihjbGlwTGF5ZXItPnBvc2l0aW9uKCkpOworICAgICAgICAgICAgbV9jaGlsZENs
aXBwaW5nTWFza0xheWVyLT5zZXRTaXplKGNsaXBMYXllci0+c2l6ZSgpKTsKKyAgICAgICAgICAg
IG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci0+c2V0T2Zmc2V0RnJvbVJlbmRlcmVyKGNsaXBMYXll
ci0+b2Zmc2V0RnJvbVJlbmRlcmVyKCkpOworICAgICAgICB9CiAgICAgfQogICAgIAogICAgIGlm
IChtX21hc2tMYXllcikgewpAQCAtOTQyLDYgKzk2OCwxMiBAQCB2b2lkIFJlbmRlckxheWVyQmFj
a2luZzo6dXBkYXRlR2VvbWV0cnkoKQogICAgICAgICBGbG9hdFNpemUgb2xkU2Nyb2xsaW5nTGF5
ZXJPZmZzZXQgPSBtX3Njcm9sbGluZ0xheWVyLT5vZmZzZXRGcm9tUmVuZGVyZXIoKTsKICAgICAg
ICAgbV9zY3JvbGxpbmdMYXllci0+c2V0T2Zmc2V0RnJvbVJlbmRlcmVyKC10b0Zsb2F0U2l6ZShw
YWRkaW5nQm94LmxvY2F0aW9uKCkpKTsKIAorICAgICAgICBpZiAobV9jaGlsZENsaXBwaW5nTWFz
a0xheWVyKSB7CisgICAgICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPnNldFBvc2l0
aW9uKG1fc2Nyb2xsaW5nTGF5ZXItPnBvc2l0aW9uKCkpOworICAgICAgICAgICAgbV9jaGlsZENs
aXBwaW5nTWFza0xheWVyLT5zZXRTaXplKG1fc2Nyb2xsaW5nTGF5ZXItPnNpemUoKSk7CisgICAg
ICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPnNldE9mZnNldEZyb21SZW5kZXJlcih0
b0Zsb2F0U2l6ZShwYWRkaW5nQm94LmxvY2F0aW9uKCkpKTsKKyAgICAgICAgfQorCiAgICAgICAg
IGJvb2wgcGFkZGluZ0JveE9mZnNldENoYW5nZWQgPSBvbGRTY3JvbGxpbmdMYXllck9mZnNldCAh
PSBtX3Njcm9sbGluZ0xheWVyLT5vZmZzZXRGcm9tUmVuZGVyZXIoKTsKIAogICAgICAgICBJbnRT
aXplIHNjcm9sbFNpemUobV9vd25pbmdMYXllci5zY3JvbGxXaWR0aCgpLCBtX293bmluZ0xheWVy
LnNjcm9sbEhlaWdodCgpKTsKQEAgLTE0MTQsNiArMTQ0NiwyNCBAQCB2b2lkIFJlbmRlckxheWVy
QmFja2luZzo6dXBkYXRlTWFza0xheWVyKGJvb2wgbmVlZHNNYXNrTGF5ZXIpCiAgICAgICAgIG1f
Z3JhcGhpY3NMYXllci0+c2V0UGFpbnRpbmdQaGFzZShwYWludGluZ1BoYXNlRm9yUHJpbWFyeUxh
eWVyKCkpOwogfQogCitib29sIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlQ2xpcHBpbmdNYXNr
TGF5ZXJzKGJvb2wgbmVlZHNDaGlsZENsaXBwaW5nTWFza0xheWVyKQoreworICAgIGJvb2wgbGF5
ZXJDaGFuZ2VkID0gZmFsc2U7CisgICAgaWYgKG5lZWRzQ2hpbGRDbGlwcGluZ01hc2tMYXllcikg
eworICAgICAgICBpZiAoIW1fY2hpbGRDbGlwcGluZ01hc2tMYXllcikgeworICAgICAgICAgICAg
bV9jaGlsZENsaXBwaW5nTWFza0xheWVyID0gY3JlYXRlR3JhcGhpY3NMYXllcigiQ2hpbGQgQ2xp
cHBpbmcgTWFzayBMYXllciIpOworICAgICAgICAgICAgbV9jaGlsZENsaXBwaW5nTWFza0xheWVy
LT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7CisgICAgICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNr
TGF5ZXItPnNldFBhaW50aW5nUGhhc2UoR3JhcGhpY3NMYXllclBhaW50Q2hpbGRDbGlwcGluZ01h
c2spOworICAgICAgICAgICAgbGF5ZXJDaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0g
ZWxzZSBpZiAobV9jaGlsZENsaXBwaW5nTWFza0xheWVyKSB7CisgICAgICAgIG1fY2hpbGRDbGlw
cGluZ01hc2tMYXllciA9IG51bGxwdHI7CisgICAgICAgIGxheWVyQ2hhbmdlZCA9IHRydWU7Cisg
ICAgfQorCisgICAgcmV0dXJuIGxheWVyQ2hhbmdlZDsKK30KKwogYm9vbCBSZW5kZXJMYXllckJh
Y2tpbmc6OnVwZGF0ZVNjcm9sbGluZ0xheWVycyhib29sIG5lZWRzU2Nyb2xsaW5nTGF5ZXJzKQog
ewogICAgIGlmIChuZWVkc1Njcm9sbGluZ0xheWVycyA9PSAhIW1fc2Nyb2xsaW5nTGF5ZXIpCkBA
IC0yMDcyLDYgKzIxMjIsOSBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6c2V0Q29udGVudHNO
ZWVkRGlzcGxheShHcmFwaGljc0xheWVyOjpTaG91bGRDbGlwVG9MYXllcgogICAgIGlmIChtX21h
c2tMYXllciAmJiBtX21hc2tMYXllci0+ZHJhd3NDb250ZW50KCkpCiAgICAgICAgIG1fbWFza0xh
eWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKIAorICAgIGlmIChtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5
ZXIgJiYgbV9jaGlsZENsaXBwaW5nTWFza0xheWVyLT5kcmF3c0NvbnRlbnQoKSkKKyAgICAgICAg
bV9jaGlsZENsaXBwaW5nTWFza0xheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKKwogICAgIGlmICht
X3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIgJiYgbV9zY3JvbGxpbmdDb250ZW50c0xheWVyLT5kcmF3
c0NvbnRlbnQoKSkKICAgICAgICAgbV9zY3JvbGxpbmdDb250ZW50c0xheWVyLT5zZXROZWVkc0Rp
c3BsYXkoKTsKIH0KQEAgLTIxMTEsNiArMjE2NCwxMiBAQCB2b2lkIFJlbmRlckxheWVyQmFja2lu
Zzo6c2V0Q29udGVudHNOZWVkRGlzcGxheUluUmVjdChjb25zdCBMYXlvdXRSZWN0JiByLCBHcmFw
aAogICAgICAgICBtX21hc2tMYXllci0+c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGxheWVyRGlydHlS
ZWN0LCBzaG91bGRDbGlwKTsKICAgICB9CiAKKyAgICBpZiAobV9jaGlsZENsaXBwaW5nTWFza0xh
eWVyICYmIG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci0+ZHJhd3NDb250ZW50KCkpIHsKKyAgICAg
ICAgRmxvYXRSZWN0IGxheWVyRGlydHlSZWN0ID0gcjsKKyAgICAgICAgbGF5ZXJEaXJ0eVJlY3Qu
bW92ZSgtbV9jaGlsZENsaXBwaW5nTWFza0xheWVyLT5vZmZzZXRGcm9tUmVuZGVyZXIoKSk7Cisg
ICAgICAgIG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci0+c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGxh
eWVyRGlydHlSZWN0KTsKKyAgICB9CisKICAgICBpZiAobV9zY3JvbGxpbmdDb250ZW50c0xheWVy
ICYmIG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci0+ZHJhd3NDb250ZW50KCkpIHsKICAgICAgICAg
RmxvYXRSZWN0IGxheWVyRGlydHlSZWN0ID0gcGl4ZWxTbmFwcGVkUmVjdEZvclBhaW50aW5nOwog
ICAgICAgICBsYXllckRpcnR5UmVjdC5tb3ZlKC1tX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXItPm9m
ZnNldEZyb21SZW5kZXJlcigpICsgbV9kZXZpY2VQaXhlbEZyYWN0aW9uRnJvbVJlbmRlcmVyKTsK
QEAgLTIxNDUsNiArMjIwNCw4IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludEludG9M
YXllcihjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwCiAgICAgICAgIHBh
aW50RmxhZ3MgfD0gUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJQYWludGluZ0NvbXBvc2l0aW5nRm9y
ZWdyb3VuZFBoYXNlOwogICAgIGlmIChwYWludGluZ1BoYXNlICYgR3JhcGhpY3NMYXllclBhaW50
TWFzaykKICAgICAgICAgcGFpbnRGbGFncyB8PSBSZW5kZXJMYXllcjo6UGFpbnRMYXllclBhaW50
aW5nQ29tcG9zaXRpbmdNYXNrUGhhc2U7CisgICAgaWYgKHBhaW50aW5nUGhhc2UgJiBHcmFwaGlj
c0xheWVyUGFpbnRDaGlsZENsaXBwaW5nTWFzaykKKyAgICAgICAgcGFpbnRGbGFncyB8PSBSZW5k
ZXJMYXllcjo6UGFpbnRMYXllclBhaW50aW5nQ2hpbGRDbGlwcGluZ01hc2tQaGFzZTsKICAgICBp
ZiAocGFpbnRpbmdQaGFzZSAmIEdyYXBoaWNzTGF5ZXJQYWludE92ZXJmbG93Q29udGVudHMpCiAg
ICAgICAgIHBhaW50RmxhZ3MgfD0gUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJQYWludGluZ092ZXJm
bG93Q29udGVudHM7CiAgICAgaWYgKHBhaW50aW5nUGhhc2UgJiBHcmFwaGljc0xheWVyUGFpbnRD
b21wb3NpdGVkU2Nyb2xsKQpAQCAtMjIwOSw2ICsyMjcwLDcgQEAgdm9pZCBSZW5kZXJMYXllckJh
Y2tpbmc6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwg
R3JhcGgKICAgICAgICAgfHwgZ3JhcGhpY3NMYXllciA9PSBtX2ZvcmVncm91bmRMYXllci5nZXQo
KQogICAgICAgICB8fCBncmFwaGljc0xheWVyID09IG1fYmFja2dyb3VuZExheWVyLmdldCgpCiAg
ICAgICAgIHx8IGdyYXBoaWNzTGF5ZXIgPT0gbV9tYXNrTGF5ZXIuZ2V0KCkKKyAgICAgICAgfHwg
Z3JhcGhpY3NMYXllciA9PSBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIuZ2V0KCkKICAgICAgICAg
fHwgZ3JhcGhpY3NMYXllciA9PSBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIuZ2V0KCkpIHsKICAg
ICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUGFpbnQoJnJlbmRlcmVyKCkpOwog
CkBAIC0yNTg1LDYgKzI2NDcsOCBAQCBkb3VibGUgUmVuZGVyTGF5ZXJCYWNraW5nOjpiYWNraW5n
U3RvcmVNZW1vcnlFc3RpbWF0ZSgpIGNvbnN0CiAgICAgICAgIGJhY2tpbmdNZW1vcnkgKz0gbV9i
YWNrZ3JvdW5kTGF5ZXItPmJhY2tpbmdTdG9yZU1lbW9yeUVzdGltYXRlKCk7CiAgICAgaWYgKG1f
bWFza0xheWVyKQogICAgICAgICBiYWNraW5nTWVtb3J5ICs9IG1fbWFza0xheWVyLT5iYWNraW5n
U3RvcmVNZW1vcnlFc3RpbWF0ZSgpOworICAgIGlmIChtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIp
CisgICAgICAgIGJhY2tpbmdNZW1vcnkgKz0gbV9jaGlsZENsaXBwaW5nTWFza0xheWVyLT5iYWNr
aW5nU3RvcmVNZW1vcnlFc3RpbWF0ZSgpOwogCiAgICAgaWYgKG1fc2Nyb2xsaW5nQ29udGVudHNM
YXllcikKICAgICAgICAgYmFja2luZ01lbW9yeSArPSBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIt
PmJhY2tpbmdTdG9yZU1lbW9yeUVzdGltYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKaW5kZXggYmE5YTFmOWQ3Njk3NzVkZjg3OGUwNTk4ZWQw
YzUxNzRkOWQ3NjU3Mi4uZjc3MWRhNmFhZjVmNjY0NjViNGM1OWMxZDM1ZGI4YmRiNThiODE3MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaApAQCAt
MTM5LDYgKzEzOSw3IEBAIHB1YmxpYzoKICAgICBTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsaW5nTm9k
ZUlERm9yQ2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGluZ05vZGVJRCA/IG1fc2Ny
b2xsaW5nTm9kZUlEIDogbV92aWV3cG9ydENvbnN0cmFpbmVkTm9kZUlEOyB9CiAKICAgICBib29s
IGhhc01hc2tMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fbWFza0xheWVyICE9IDA7IH0KKyAgICBi
b29sIGhhc0NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2NoaWxkQ2xp
cHBpbmdNYXNrTGF5ZXIgIT0gbnVsbHB0cjsgfQogCiAgICAgR3JhcGhpY3NMYXllciogcGFyZW50
Rm9yU3VibGF5ZXJzKCkgY29uc3Q7CiAgICAgR3JhcGhpY3NMYXllciogY2hpbGRGb3JTdXBlcmxh
eWVycygpIGNvbnN0OwpAQCAtMjYzLDYgKzI2NCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCB1cGRh
dGVGb3JlZ3JvdW5kTGF5ZXIoYm9vbCBuZWVkc0ZvcmVncm91bmRMYXllcik7CiAgICAgYm9vbCB1
cGRhdGVCYWNrZ3JvdW5kTGF5ZXIoYm9vbCBuZWVkc0JhY2tncm91bmRMYXllcik7CiAgICAgdm9p
ZCB1cGRhdGVNYXNrTGF5ZXIoYm9vbCBuZWVkc01hc2tMYXllcik7CisgICAgYm9vbCB1cGRhdGVD
bGlwcGluZ01hc2tMYXllcnMoYm9vbCBuZWVkc0NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIpOwogICAg
IGJvb2wgcmVxdWlyZXNIb3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIoKSBjb25zdDsKICAgICBib29s
IHJlcXVpcmVzVmVydGljYWxTY3JvbGxiYXJMYXllcigpIGNvbnN0OwogICAgIGJvb2wgcmVxdWly
ZXNTY3JvbGxDb3JuZXJMYXllcigpIGNvbnN0OwpAQCAtMzM1LDYgKzMzNyw3IEBAIHByaXZhdGU6
CiAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fYmFja2dyb3VuZExheWVyOyAv
LyBPbmx5IHVzZWQgaW4gY2FzZXMgd2hlcmUgd2UgbmVlZCB0byBkcmF3IHRoZSBiYWNrZ3JvdW5k
IHNlcGFyYXRlbHkuCiAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fY2hpbGRD
b250YWlubWVudExheWVyOyAvLyBPbmx5IHVzZWQgaWYgd2UgaGF2ZSBjbGlwcGluZyBvbiBhIHN0
YWNraW5nIGNvbnRleHQgd2l0aCBjb21wb3NpdGluZyBjaGlsZHJlbiwgb3IgaWYgdGhlIGxheWVy
IGhhcyBhIHRpbGUgY2FjaGUuCiAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1f
bWFza0xheWVyOyAvLyBPbmx5IHVzZWQgaWYgd2UgaGF2ZSBhIG1hc2suCisgICAgc3RkOjp1bmlx
dWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fY2hpbGRDbGlwcGluZ01hc2tMYXllcjsgLy8gT25seSB1
c2VkIGlmIHdlIGhhdmUgdG8gY2xpcCBjaGlsZCBsYXllcnMgb3IgYWNjZWxlcmF0ZWQgY29udGVu
dHMgd2l0aCBib3JkZXIgcmFkaXVzIG9yIGNsaXAtcGF0aC4KIAogICAgIHN0ZDo6dW5pcXVlX3B0
cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcjsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cAppbmRleCAwZjljNDk1YjBjN2FhZTQxNzViN2FlOTQ2YjdjZTIxZThiMWJiMGFlLi40NGJhZGVm
YjE2YzE1YjA1NTUyZmRhYmI0YTgxOTdiYWViNzY4Y2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMjE2Nyw2ICsyMTY3
LDcgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzT3duQmFja2luZ1N0b3Jl
KGNvbnN0IFJlbmRlckxheWVyJiBsYXllciwgY28KIAogICAgIGlmIChsYXllci5pc1Jvb3RMYXll
cigpCiAgICAgICAgIHx8IGxheWVyLnRyYW5zZm9ybSgpIC8vIG5vdGU6IGV4Y2x1ZGVzIHBlcnNw
ZWN0aXZlIGFuZCB0cmFuc2Zvcm1TdHlsZTNELgorICAgICAgICB8fCBsYXllci5jbGlwc0NvbXBv
c2l0aW5nRGVzY2VuZGFudHNXaXRoQm9yZGVyUmFkaXVzKCkgLy8gRklYTUU6IFJldmlzaXQgdGhp
cyBpZiB0aGUgcGFpbnRzSW50b0NvbXBvc2l0ZWRBbmNlc3RvciBzdGF0ZSBpcyByZW1vdmVkLgog
ICAgICAgICB8fCByZXF1aXJlc0NvbXBvc2l0aW5nRm9yVmlkZW8ocmVuZGVyZXIpCiAgICAgICAg
IHx8IHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JDYW52YXMocmVuZGVyZXIpCiAgICAgICAgIHx8IHJl
cXVpcmVzQ29tcG9zaXRpbmdGb3JQbHVnaW4ocmVuZGVyZXIpCkBAIC0yODU2LDYgKzI4NTcsOSBA
QCBzdGF0aWMgdm9pZCByZXNldFRyYWNrZWRSZXBhaW50UmVjdHNSZWN1cnNpdmUoR3JhcGhpY3NM
YXllciYgZ3JhcGhpY3NMYXllcikKIAogICAgIGlmIChHcmFwaGljc0xheWVyKiBtYXNrTGF5ZXIg
PSBncmFwaGljc0xheWVyLm1hc2tMYXllcigpKQogICAgICAgICByZXNldFRyYWNrZWRSZXBhaW50
UmVjdHNSZWN1cnNpdmUoKm1hc2tMYXllcik7CisKKyAgICBpZiAoR3JhcGhpY3NMYXllciogY2xp
cHBpbmdNYXNrTGF5ZXIgPSBncmFwaGljc0xheWVyLmNvbnRlbnRzQ2xpcHBpbmdNYXNrTGF5ZXIo
KSkKKyAgICAgICAgcmVzZXRUcmFja2VkUmVwYWludFJlY3RzUmVjdXJzaXZlKCpjbGlwcGluZ01h
c2tMYXllcik7CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXNldFRyYWNrZWRS
ZXBhaW50UmVjdHMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJlcGxhY2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5j
cHAKaW5kZXggZjI3Zjc4ZWY1OTYyMTc3MTc4N2Y4YjZjNjUxZmJmMjhjYWMyZjdhNS4uZDc1MDJj
ZDZkOTU2MjAyMThjNDE5YzdiYTBkNzNmOTc1YWU4MjBkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBAIC0xMzcsNiArMTM3LDExIEBAIHZvaWQgUmVu
ZGVyUmVwbGFjZWQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2lu
dCYgcGFpbnRPZmZzZXQpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAocGFpbnRJ
bmZvLnBoYXNlID09IFBhaW50UGhhc2VDbGlwcGluZ01hc2sgJiYgc3R5bGUoKS52aXNpYmlsaXR5
KCkgPT0gVklTSUJMRSkgeworICAgICAgICBwYWludENsaXBwaW5nTWFzayhwYWludEluZm8sIHBh
aW50T2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIExheW91dFJlY3QgcGFp
bnRSZWN0ID0gTGF5b3V0UmVjdChhZGp1c3RlZFBhaW50T2Zmc2V0LCBzaXplKCkpOwogICAgIGlm
ICgocGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VPdXRsaW5lIHx8IHBhaW50SW5mby5waGFz
ZSA9PSBQYWludFBoYXNlU2VsZk91dGxpbmUpICYmIHN0eWxlKCkub3V0bGluZVdpZHRoKCkpCiAg
ICAgICAgIHBhaW50T3V0bGluZShwYWludEluZm8sIHBhaW50UmVjdCk7CkBAIC0xNzAsNyArMTc1
LDEwIEBAIHZvaWQgUmVuZGVyUmVwbGFjZWQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBj
b25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiAgICAgfQogCiAgICAgaWYgKCFjb21wbGV0
ZWx5Q2xpcHBlZE91dCkgewotICAgICAgICBwYWludFJlcGxhY2VkKHBhaW50SW5mbywgYWRqdXN0
ZWRQYWludE9mZnNldCk7CisgICAgICAgIGlmIChwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFz
ZUNsaXBwaW5nTWFzaykKKyAgICAgICAgICAgIHBhaW50Q2xpcHBpbmdNYXNrKHBhaW50SW5mbywg
YWRqdXN0ZWRQYWludE9mZnNldCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHBhaW50UmVw
bGFjZWQocGFpbnRJbmZvLCBhZGp1c3RlZFBhaW50T2Zmc2V0KTsKIAogICAgICAgICBpZiAoc3R5
bGUoKS5oYXNCb3JkZXJSYWRpdXMoKSkKICAgICAgICAgICAgIHBhaW50SW5mby5jb250ZXh0LT5y
ZXN0b3JlKCk7CkBAIC0xODgsNyArMTk2LDcgQEAgdm9pZCBSZW5kZXJSZXBsYWNlZDo6cGFpbnQo
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKIGJv
b2wgUmVuZGVyUmVwbGFjZWQ6OnNob3VsZFBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25z
dCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiB7CiAgICAgaWYgKHBhaW50SW5mby5waGFzZSAh
PSBQYWludFBoYXNlRm9yZWdyb3VuZCAmJiBwYWludEluZm8ucGhhc2UgIT0gUGFpbnRQaGFzZU91
dGxpbmUgJiYgcGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhhc2VTZWxmT3V0bGluZSAKLSAgICAg
ICAgICAgICYmIHBhaW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlU2VsZWN0aW9uICYmIHBhaW50
SW5mby5waGFzZSAhPSBQYWludFBoYXNlTWFzaykKKyAgICAgICAgJiYgcGFpbnRJbmZvLnBoYXNl
ICE9IFBhaW50UGhhc2VTZWxlY3Rpb24gJiYgcGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhhc2VN
YXNrICYmIHBhaW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlQ2xpcHBpbmdNYXNrKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIXBhaW50SW5mby5zaG91bGRQYWludFdpdGhpblJv
b3QoKnRoaXMpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241702</attachid>
            <date>2014-11-17 05:30:28 -0800</date>
            <delta_ts>2014-11-17 11:05:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138551-20141117153039.patch</filename>
            <type>text/plain</type>
            <size>20062</size>
            <attacher name="Byungseon(Sun) Shin">sun.shin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2MTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjU4M2Y0M2Y0YzIwYzNk
MzUwZjJkNjEwN2Q1NTk4NjAwMGNjNTU5Mi4uNmZmNDVmZjIyZDU3OTRmNDgxMmZhMTNkNzhmM2Qx
YjdhY2U4MTYzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE0LTExLTE3ICBCeXVu
Z3Nlb24gU2hpbiAgPHN1bi5zaGluQGxnZS5jb20+CisKKyAgICAgICAgRml4IEJvcmRlci1yYWRp
dXMgY2xpcHBpbmcgaXNzdWUgb24gYSBjb21wb3NpdGVkIGRlY2VuZGVudAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NTUxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGNsaXBwaW5nIGNvbXBvc2l0
aW5nIGRlY2VuZGVudHMgb2YgYW4gYWNjZWxlcmF0ZWQgbGF5ZXIgaGF2aW5nIAorICAgICAgICBi
b3JkZXIgcmFkaXVzIGFuZCBjbGlwIG92ZXJmbG93IGlzc3VlIGJ5IHNldHRpbmcgdXAgYSBtYXNr
IAorICAgICAgICBvbiB0aGUgY2hpbGRDb250YWlubWVudExheWVyLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggaXMgZXh0cmFjdGVkIGZyb20gZm9sbG93aW5nIEJsaW5rIHJldmlzaW9uczoKKyAgICAg
ICAgPGh0dHA6Ly9zcmMuY2hyb21pdW0ub3JnL3ZpZXd2Yy9ibGluaz92aWV3PXJldmlzaW9uJnJl
dmlzaW9uPTE2MjQ2Mz4gCisgICAgICAgIDxodHRwOi8vc3JjLmNocm9taXVtLm9yZy92aWV3dmMv
Ymxpbms/dmlldz1yZXZpc2lvbiZyZXZpc2lvbj0xNTgyNTg+CisgICAgICAgIGJ5IDxyb3NjYUBh
ZG9iZS5jb20+CisKKyAgICAgICAgQ2xpcCBhY2NlbGVyYXRlZCBkZXNjZW5kYW50cyBvZiBhbiBh
Y2NlbGVyYXRlZCBsYXllciBoYXZpbmcgYm9yZGVyIHJhZGl1cyBhbmQgY2xpcCBvdmVyZmxvdy4K
KyAgICAgICAgTGFyZ2UgY2FudmFzIGRvZXMgbm90IGhvbm9yIGNvbnRhaW5pbmcgZGl2J3MgYm9y
ZGVyIHJhZGl1cy4KKworICAgICAgICBhbmQgPGh0dHA6Ly9zcmMuY2hyb21pdW0ub3JnL3ZpZXd2
Yy9ibGluaz92aWV3PXJldmlzaW9uJnJldmlzaW9uPTE2MDU3OD4KKyAgICAgICAgYnkgPGp1bm92
QGNocm9taXVtLm9yZz4KKworICAgICAgICBGaXggZm9yIENTUyBjbGlwLXBhdGggd2l0aCBhY2Nl
bGVyYXRlZCAyRCBjYW52YXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmR1bXBQcm9wZXJ0
aWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50Lmg6
CisgICAgICAgICogcmVuZGVyaW5nL1BhaW50UGhhc2UuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnBhaW50T2Jq
ZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveDo6cGFpbnRDbGlwcGluZ01hc2spOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJDb250ZW50cyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRDaGlsZENsaXBwaW5nTWFza0ZvckZyYWdtZW50cyk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJh
Y2tpbmc6On5SZW5kZXJMYXllckJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJCYWNraW5nOjpkZXN0cm95R3JhcGhpY3NMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR2VvbWV0cnkpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDbGlwcGluZ01hc2tMYXllcnMpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpzZXRDb250ZW50c05lZWREaXNwbGF5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6c2V0Q29udGVudHNOZWVkRGlzcGxh
eUluUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50SW50
b0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6cGFpbnRDb250
ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OmJhY2tpbmdTdG9y
ZU1lbW9yeUVzdGltYXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
Lmg6CisKIDIwMTQtMTEtMTYgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgog
CiAgICAgICAgIFJlcGxhY2UgUmVuZGVyU1ZHUmVzb3VyY2U6OmNhc3Q8VD4oKSB3aXRoIGRvd25j
YXN0PFQ+KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllci5jcHAKaW5kZXggNjJkMjUxNjNkZDI5MGYyNjgzYTJiMzQ3OTZjOTkwOTI3ZWIzOWY5
OS4uZDYyODhiNzZkZTk2MjFiZmFiZWRmNGI3MzMzZTQ1Mjg5ZTBmY2U1OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKQEAgLTc2
MSw2ICs3NjEsMTAgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpkdW1wUHJvcGVydGllcyhUZXh0U3Ry
ZWFtJiB0cywgaW50IGluZGVudCwgTGF5ZXJUcmVlQXNUZXh0QmUKICAgICAgICAgICAgIHdyaXRl
SW5kZW50KHRzLCBpbmRlbnQgKyAyKTsKICAgICAgICAgICAgIHRzIDw8ICJHcmFwaGljc0xheWVy
UGFpbnRNYXNrXG4iOwogICAgICAgICB9CisgICAgICAgIGlmIChwYWludGluZ1BoYXNlKCkgJiBH
cmFwaGljc0xheWVyUGFpbnRDaGlsZENsaXBwaW5nTWFzaykgeworICAgICAgICAgICAgd3JpdGVJ
bmRlbnQodHMsIGluZGVudCArIDIpOworICAgICAgICAgICAgdHMgPDwgIkdyYXBoaWNzTGF5ZXJQ
YWludENoaWxkQ2xpcHBpbmdNYXNrXG4iOworICAgICAgICB9CiAgICAgICAgIGlmIChwYWludGlu
Z1BoYXNlKCkgJiBHcmFwaGljc0xheWVyUGFpbnRPdmVyZmxvd0NvbnRlbnRzKSB7CiAgICAgICAg
ICAgICB3cml0ZUluZGVudCh0cywgaW5kZW50ICsgMik7CiAgICAgICAgICAgICB0cyA8PCAiR3Jh
cGhpY3NMYXllclBhaW50T3ZlcmZsb3dDb250ZW50c1xuIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAppbmRleCBiNDVk
ZjFjODcwYTA0MWZhMjFmOWJkZGI1ZmRjNWYxYzFlYzQwOGQzLi4xZDlhZTFjMTY2NjIxYzdlYWI3
Zjk2YjgwMWJmMzJkYzU5ODMwZjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCkBAIC00NCw2ICs0NCw3IEBAIGVu
dW0gR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2VGbGFncyB7CiAgICAgR3JhcGhpY3NMYXllclBh
aW50TWFzayA9ICgxIDw8IDIpLAogICAgIEdyYXBoaWNzTGF5ZXJQYWludE92ZXJmbG93Q29udGVu
dHMgPSAoMSA8PCAzKSwKICAgICBHcmFwaGljc0xheWVyUGFpbnRDb21wb3NpdGVkU2Nyb2xsID0g
KDEgPDwgNCksCisgICAgR3JhcGhpY3NMYXllclBhaW50Q2hpbGRDbGlwcGluZ01hc2sgPSAoMSA8
PCA1KSwKICAgICBHcmFwaGljc0xheWVyUGFpbnRBbGxXaXRoT3ZlcmZsb3dDbGlwID0gKEdyYXBo
aWNzTGF5ZXJQYWludEJhY2tncm91bmQgfCBHcmFwaGljc0xheWVyUGFpbnRGb3JlZ3JvdW5kIHwg
R3JhcGhpY3NMYXllclBhaW50TWFzaykKIH07CiB0eXBlZGVmIHVuc2lnbmVkIEdyYXBoaWNzTGF5
ZXJQYWludGluZ1BoYXNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Bh
aW50UGhhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYWludFBoYXNlLmgKaW5kZXgg
MGJiZjk5YTdkMGNmNWEwOWNhODVjMzBkZjA2MWEzNmQ3Y2FjMDI2Yi4uYTQ0OGQ5MjJkOThmNzFj
ODdiOWQ2Mjk2MjMxZWE0ZWE3MDM5ZWY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1BhaW50UGhhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUGFpbnRQ
aGFzZS5oCkBAIC00OSw3ICs0OSw4IEBAIGVudW0gUGFpbnRQaGFzZSB7CiAgICAgUGFpbnRQaGFz
ZVNlbGVjdGlvbiwKICAgICBQYWludFBoYXNlQ29sbGFwc2VkVGFibGVCb3JkZXJzLAogICAgIFBh
aW50UGhhc2VUZXh0Q2xpcCwKLSAgICBQYWludFBoYXNlTWFzaworICAgIFBhaW50UGhhc2VNYXNr
LAorICAgIFBhaW50UGhhc2VDbGlwcGluZ01hc2sKIH07CiAKIGVudW0gUGFpbnRCZWhhdmlvckZs
YWdzIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IGI4NzFl
NjE1OThlYzYwODMzMjBhYmMwOTU2MzM5ZDEyZWE5YzhlNDEuLjczMDVlNjEyOGQ3NTI1N2U4YmUw
NGE3YjFkNmFiZjk3MTg2YzBlMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcApAQCAtMTU3Niw2ICsxNTc2LDExIEBAIHZvaWQgUmVuZGVyQmxvY2s6OnBhaW50T2Jq
ZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAocGFpbnRQaGFzZSA9PSBQYWludFBoYXNl
Q2xpcHBpbmdNYXNrICYmIHN0eWxlKCkudmlzaWJpbGl0eSgpID09IFZJU0lCTEUpIHsKKyAgICAg
ICAgcGFpbnRDbGlwcGluZ01hc2socGFpbnRJbmZvLCBwYWludE9mZnNldCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKICAgICAvLyBJZiBqdXN0IHBhaW50aW5nIHRoZSByb290IGJhY2tncm91
bmQsIHRoZW4gcmV0dXJuLgogICAgIGlmIChwYWludEluZm8ucGFpbnRSb290QmFja2dyb3VuZE9u
bHkoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNw
cAppbmRleCBlNDhlYjliNjc1ZGM5ZDIxNzU5OTI0Yzg4MDVhZmEwYjg5YjQ5ODM3Li4zZWEwZGYz
OTJiMGU0NmRhZGUwNjNjODQzYTAzMWQ2YWY4MGI5ZDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcApAQCAtMTQ4MCw2ICsxNDgwLDE1IEBAIHZvaWQgUmVuZGVyQm94Ojpw
YWludE1hc2soUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9m
ZnNldCkKICAgICBwYWludE1hc2tJbWFnZXMocGFpbnRJbmZvLCBwYWludFJlY3QpOwogfQogCit2
b2lkIFJlbmRlckJveDo6cGFpbnRDbGlwcGluZ01hc2soUGFpbnRJbmZvJiBwYWludEluZm8sIGNv
bnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKK3sKKyAgICBpZiAoIXBhaW50SW5mby5zaG91
bGRQYWludFdpdGhpblJvb3QoKnRoaXMpIHx8IHN0eWxlKCkudmlzaWJpbGl0eSgpICE9IFZJU0lC
TEUgfHwgcGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhhc2VDbGlwcGluZ01hc2sgfHwgcGFpbnRJ
bmZvLmNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
TGF5b3V0UmVjdCBwYWludFJlY3QgPSBMYXlvdXRSZWN0KHBhaW50T2Zmc2V0LCBzaXplKCkpOwor
ICAgIHBhaW50SW5mby5jb250ZXh0LT5maWxsUmVjdChzbmFwcGVkSW50UmVjdChwYWludFJlY3Qp
LCBDb2xvcjo6YmxhY2ssIHN0eWxlKCkuY29sb3JTcGFjZSgpKTsKK30KKwogdm9pZCBSZW5kZXJC
b3g6OnBhaW50TWFza0ltYWdlcyhjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5
b3V0UmVjdCYgcGFpbnRSZWN0KQogewogICAgIC8vIEZpZ3VyZSBvdXQgaWYgd2UgbmVlZCB0byBw
dXNoIGEgdHJhbnNwYXJlbmN5IGxheWVyIHRvIHJlbmRlciBvdXIgbWFzay4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guaAppbmRleCA3ZWYwYzI3YzkxMTI3ZDA1ZjJlZTEzYWU4MjBiMzkw
ZDBhODgxNDBhLi4yMjk0NThlZTZlYjYwNDgwNTQ2OGQ3MzQzNDgwNmM4NjhhN2FiMTBlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC00OTIsNiArNDkyLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBwYWludE9iamVjdChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQ
b2ludCYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRC
b3hEZWNvcmF0aW9ucyhQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwogICAgIHZpcnR1
YWwgdm9pZCBwYWludE1hc2soUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKKyAgICB2
aXJ0dWFsIHZvaWQgcGFpbnRDbGlwcGluZ01hc2soUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9p
bnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciwgY29u
c3QgSW50UmVjdCogPSAwKSBvdmVycmlkZTsKIAogICAgIC8vIENhbGxlZCB3aGVuIGEgcG9zaXRp
b25lZCBvYmplY3QgbW92ZXMgYnV0IGRvZXNuJ3QgbmVjZXNzYXJpbHkgY2hhbmdlIHNpemUuICBB
IHNpbXBsaWZpZWQgbGF5b3V0IGlzIGF0dGVtcHRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKaW5kZXggMDBhMDA5NzBkNjZhZmI5MmM5MjNmYzI5YzZmMTVmYTZlMDI1
OWQ1MC4uYmI4MTk2NWRhZmQyNmEzNDczODUzY2M5NWU2NzU3ODgwMmM2ZTEwOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC00MTg5LDYgKzQxODksMTEgQEAg
dm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dCwgY29uc3QgTGF5ZXJQYWludGkKICAgICAgICAgcGFpbnRNYXNrRm9yRnJhZ21lbnRzKGxh
eWVyRnJhZ21lbnRzLCBjb250ZXh0LCBsb2NhbFBhaW50aW5nSW5mbywgc3VidHJlZVBhaW50Um9v
dEZvclJlbmRlcmVyKTsKICAgICB9CiAKKyAgICBpZiAoKGxvY2FsUGFpbnRGbGFncyAmIFBhaW50
TGF5ZXJQYWludGluZ0NoaWxkQ2xpcHBpbmdNYXNrUGhhc2UpICYmIHNob3VsZFBhaW50Q29udGVu
dCAmJiAhc2VsZWN0aW9uT25seSkgeworICAgICAgICAvLyBQYWludCB0aGUgYm9yZGVyIHJhZGl1
cyBtYXNrIGZvciB0aGUgZnJhZ21lbnRzLgorICAgICAgICBwYWludENoaWxkQ2xpcHBpbmdNYXNr
Rm9yRnJhZ21lbnRzKGxheWVyRnJhZ21lbnRzLCBjb250ZXh0LCBsb2NhbFBhaW50aW5nSW5mbywg
c3VidHJlZVBhaW50Um9vdEZvclJlbmRlcmVyKTsKKyAgICB9CisKICAgICAvLyBFbmQgb3VyIHRy
YW5zcGFyZW5jeSBsYXllcgogICAgIGlmIChoYXZlVHJhbnNwYXJlbmN5ICYmIG1fdXNlZFRyYW5z
cGFyZW5jeSAmJiAhbV9wYWludGluZ0luc2lkZVJlZmxlY3Rpb24pIHsKICAgICAgICAgY29udGV4
dC0+ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKQEAgLTQ2MDcsNiArNDYxMiwyNiBAQCB2b2lkIFJl
bmRlckxheWVyOjpwYWludE1hc2tGb3JGcmFnbWVudHMoY29uc3QgTGF5ZXJGcmFnbWVudHMmIGxh
eWVyRnJhZ21lbnRzLCBHcgogICAgIH0KIH0KIAordm9pZCBSZW5kZXJMYXllcjo6cGFpbnRDaGls
ZENsaXBwaW5nTWFza0ZvckZyYWdtZW50cyhjb25zdCBMYXllckZyYWdtZW50cyYgbGF5ZXJGcmFn
bWVudHMsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGluZ0luZm8m
IGxvY2FsUGFpbnRpbmdJbmZvLAorICAgIFJlbmRlck9iamVjdCogc3VidHJlZVBhaW50Um9vdEZv
clJlbmRlcmVyKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGF5ZXJGcmFnbWVudHMu
c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgY29uc3QgTGF5ZXJGcmFnbWVudCYgZnJhZ21lbnQgPSBs
YXllckZyYWdtZW50cy5hdChpKTsKKyAgICAgICAgaWYgKCFmcmFnbWVudC5zaG91bGRQYWludENv
bnRlbnQpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAobG9jYWxQYWludGlu
Z0luZm8uY2xpcFRvRGlydHlSZWN0KQorICAgICAgICAgICAgY2xpcFRvUmVjdChsb2NhbFBhaW50
aW5nSW5mbywgY29udGV4dCwgZnJhZ21lbnQuZm9yZWdyb3VuZFJlY3QsIEluY2x1ZGVTZWxmRm9y
Qm9yZGVyUmFkaXVzKTsgLy8gQ2hpbGQgY2xpcHBpbmcgbWFzayBwYWludGluZyB3aWxsIGhhbmRs
ZSBjbGlwcGluZyB0byBzZWxmLgorCisgICAgICAgIC8vIFBhaW50IHRoZSBjbGlwcGVkIG1hc2su
CisgICAgICAgIFBhaW50SW5mbyBwYWludEluZm8oY29udGV4dCwgZnJhZ21lbnQuYmFja2dyb3Vu
ZFJlY3QucmVjdCgpLCBQYWludFBoYXNlQ2xpcHBpbmdNYXNrLCBQYWludEJlaGF2aW9yTm9ybWFs
LCBzdWJ0cmVlUGFpbnRSb290Rm9yUmVuZGVyZXIsIG51bGxwdHIsIG51bGxwdHIsICZsb2NhbFBh
aW50aW5nSW5mby5yb290TGF5ZXItPnJlbmRlcmVyKCkpOworICAgICAgICByZW5kZXJlcigpLnBh
aW50KHBhaW50SW5mbywgdG9MYXlvdXRQb2ludChmcmFnbWVudC5sYXllckJvdW5kcy5sb2NhdGlv
bigpIC0gcmVuZGVyQm94TG9jYXRpb24oKSArIGxvY2FsUGFpbnRpbmdJbmZvLnN1YnBpeGVsQWNj
dW11bGF0aW9uKSk7CisKKyAgICAgICAgaWYgKGxvY2FsUGFpbnRpbmdJbmZvLmNsaXBUb0RpcnR5
UmVjdCkKKyAgICAgICAgICAgIHJlc3RvcmVDbGlwKGNvbnRleHQsIGxvY2FsUGFpbnRpbmdJbmZv
LnBhaW50RGlydHlSZWN0LCBmcmFnbWVudC5mb3JlZ3JvdW5kUmVjdCk7CisgICAgfQorfQorCiB2
b2lkIFJlbmRlckxheWVyOjpwYWludE92ZXJmbG93Q29udHJvbHNGb3JGcmFnbWVudHMoY29uc3Qg
TGF5ZXJGcmFnbWVudHMmIGxheWVyRnJhZ21lbnRzLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQs
IGNvbnN0IExheWVyUGFpbnRpbmdJbmZvJiBsb2NhbFBhaW50aW5nSW5mbykKIHsKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGxheWVyRnJhZ21lbnRzLnNpemUoKTsgKytpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDQxMDkzODc3ZDU5ODMxOTIzMzMwYTgx
OTZlN2M1NzRhZTgwZTZhM2MuLjk2YTMzYjQ5NjU4ZTA1ZjlkMWE0ZjhmMGE2MDIyNjdhNWViYTA5
MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC02NjcsNiArNjY3
LDcgQEAgcHVibGljOgogICAgICAgICBQYWludExheWVyUGFpbnRpbmdPdmVyZmxvd0NvbnRlbnRz
ID0gMSA8PCA5LAogICAgICAgICBQYWludExheWVyUGFpbnRpbmdSb290QmFja2dyb3VuZE9ubHkg
PSAxIDw8IDEwLAogICAgICAgICBQYWludExheWVyUGFpbnRpbmdTa2lwUm9vdEJhY2tncm91bmQg
PSAxIDw8IDExLAorICAgICAgICBQYWludExheWVyUGFpbnRpbmdDaGlsZENsaXBwaW5nTWFza1Bo
YXNlID0gMSA8PCAxMiwKICAgICAgICAgUGFpbnRMYXllclBhaW50aW5nQ29tcG9zaXRpbmdBbGxQ
aGFzZXMgPSAoUGFpbnRMYXllclBhaW50aW5nQ29tcG9zaXRpbmdCYWNrZ3JvdW5kUGhhc2UgfCBQ
YWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ0ZvcmVncm91bmRQaGFzZSB8IFBhaW50TGF5ZXJQ
YWludGluZ0NvbXBvc2l0aW5nTWFza1BoYXNlKQogICAgIH07CiAgICAgCkBAIC0xMDA5LDYgKzEw
MTAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFpbnRPdXRsaW5lRm9yRnJhZ21lbnRzKGNvbnN0
IExheWVyRnJhZ21lbnRzJiwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5ZXJQYWludGluZ0lu
Zm8mLCBQYWludEJlaGF2aW9yLCBSZW5kZXJPYmplY3QqIHBhaW50aW5nUm9vdEZvclJlbmRlcmVy
KTsKICAgICB2b2lkIHBhaW50T3ZlcmZsb3dDb250cm9sc0ZvckZyYWdtZW50cyhjb25zdCBMYXll
ckZyYWdtZW50cyYsIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheWVyUGFpbnRpbmdJbmZvJik7
CiAgICAgdm9pZCBwYWludE1hc2tGb3JGcmFnbWVudHMoY29uc3QgTGF5ZXJGcmFnbWVudHMmLCBH
cmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXllclBhaW50aW5nSW5mbyYsIFJlbmRlck9iamVjdCog
cGFpbnRpbmdSb290Rm9yUmVuZGVyZXIpOworICAgIHZvaWQgcGFpbnRDaGlsZENsaXBwaW5nTWFz
a0ZvckZyYWdtZW50cyhjb25zdCBMYXllckZyYWdtZW50cyYsIEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IExheWVyUGFpbnRpbmdJbmZvJiwgUmVuZGVyT2JqZWN0KiBwYWludGluZ1Jvb3RGb3JSZW5k
ZXJlcik7CiAgICAgdm9pZCBwYWludFRyYW5zZm9ybWVkTGF5ZXJJbnRvRnJhZ21lbnRzKEdyYXBo
aWNzQ29udGV4dCosIGNvbnN0IExheWVyUGFpbnRpbmdJbmZvJiwgUGFpbnRMYXllckZsYWdzKTsK
IAogICAgIFJlbmRlckxheWVyKiB0cmFuc3BhcmVudFBhaW50aW5nQW5jZXN0b3IoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggNzkz
N2MxMWNjMzdiZGIyOTFhOWZkZTAxNzFlZDhmNDI0YjEzZDZhYi4uOTRkNTZjYmE2NDJlMmVhMmRk
YWNlMDQ4NzlmNzFkYzY4MzVlNWExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTE0Nyw2ICsxNDcsNyBAQCBSZW5kZXJMYXllckJh
Y2tpbmc6On5SZW5kZXJMYXllckJhY2tpbmcoKQogICAgIHVwZGF0ZUZvcmVncm91bmRMYXllcihm
YWxzZSk7CiAgICAgdXBkYXRlQmFja2dyb3VuZExheWVyKGZhbHNlKTsKICAgICB1cGRhdGVNYXNr
TGF5ZXIoZmFsc2UpOworICAgIHVwZGF0ZUNsaXBwaW5nTWFza0xheWVycyhmYWxzZSk7CiAgICAg
dXBkYXRlU2Nyb2xsaW5nTGF5ZXJzKGZhbHNlKTsKICAgICBkZXRhY2hGcm9tU2Nyb2xsaW5nQ29v
cmRpbmF0b3IoKTsKICAgICBkZXN0cm95R3JhcGhpY3NMYXllcnMoKTsKQEAgLTM0OCw2ICszNDks
NyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6ZGVzdHJveUdyYXBoaWNzTGF5ZXJzKCkKICAg
ICBtX2JhY2tncm91bmRMYXllciA9IG51bGxwdHI7CiAgICAgbV9jaGlsZENvbnRhaW5tZW50TGF5
ZXIgPSBudWxscHRyOwogICAgIG1fbWFza0xheWVyID0gbnVsbHB0cjsKKyAgICBtX2NoaWxkQ2xp
cHBpbmdNYXNrTGF5ZXIgPSBudWxscHRyOwogCiAgICAgbV9zY3JvbGxpbmdMYXllciA9IG51bGxw
dHI7CiAgICAgbV9zY3JvbGxpbmdDb250ZW50c0xheWVyID0gbnVsbHB0cjsKQEAgLTU2OSw2ICs1
NzEsMTUgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUNvbmZpZ3VyYXRpb24oKQog
CiAgICAgdXBkYXRlTWFza0xheWVyKHJlbmRlcmVyKCkuaGFzTWFzaygpKTsKIAorICAgIGJvb2wg
aGFzQ2hpbGRDbGlwcGluZ0xheWVyID0gbmVlZHNEZXNjZW5kZW50c0NsaXBwaW5nTGF5ZXIgJiYg
KGhhc0NsaXBwaW5nTGF5ZXIoKSB8fCBoYXNTY3JvbGxpbmdMYXllcigpKTsKKyAgICBib29sIG5l
ZWRzQ2hpbGRDbGlwcGluZ01hc2sgPSAocmVuZGVyZXIoKS5zdHlsZSgpLmNsaXBQYXRoKCkgfHwg
cmVuZGVyZXIoKS5zdHlsZSgpLmhhc0JvcmRlclJhZGl1cygpKSAmJiBoYXNDaGlsZENsaXBwaW5n
TGF5ZXI7CisgICAgaWYgKHVwZGF0ZUNsaXBwaW5nTWFza0xheWVycyhuZWVkc0NoaWxkQ2xpcHBp
bmdNYXNrKSkgeworICAgICAgICBpZiAoaGFzQ2xpcHBpbmdMYXllcigpKQorICAgICAgICAgICAg
Y2xpcHBpbmdMYXllcigpLT5zZXRNYXNrTGF5ZXIobV9jaGlsZENsaXBwaW5nTWFza0xheWVyLmdl
dCgpKTsKKyAgICAgICAgZWxzZSBpZiAoaGFzU2Nyb2xsaW5nTGF5ZXIoKSkKKyAgICAgICAgICAg
IHNjcm9sbGluZ0xheWVyKCktPnNldE1hc2tMYXllcihtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIu
Z2V0KCkpOworICAgIH0KKwogICAgIGlmIChtX293bmluZ0xheWVyLmhhc1JlZmxlY3Rpb24oKSkg
ewogICAgICAgICBpZiAobV9vd25pbmdMYXllci5yZWZsZWN0aW9uTGF5ZXIoKS0+YmFja2luZygp
KSB7CiAgICAgICAgICAgICBHcmFwaGljc0xheWVyKiByZWZsZWN0aW9uTGF5ZXIgPSBtX293bmlu
Z0xheWVyLnJlZmxlY3Rpb25MYXllcigpLT5iYWNraW5nKCktPmdyYXBoaWNzTGF5ZXIoKTsKQEAg
LTgxNCw2ICs4MjUsMTIgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdlb21ldHJ5
KCkKICAgICAgICAgY2xpcExheWVyLT5zZXRQb3NpdGlvbihGbG9hdFBvaW50KGNsaXBwaW5nQm94
LmxvY2F0aW9uKCkgLSBsb2NhbENvbXBvc2l0aW5nQm91bmRzLmxvY2F0aW9uKCkpKTsKICAgICAg
ICAgY2xpcExheWVyLT5zZXRTaXplKGNsaXBwaW5nQm94LnNpemUoKSk7CiAgICAgICAgIGNsaXBM
YXllci0+c2V0T2Zmc2V0RnJvbVJlbmRlcmVyKHRvRmxvYXRTaXplKGNsaXBwaW5nQm94LmxvY2F0
aW9uKCkpKTsKKworICAgICAgICBpZiAobV9jaGlsZENsaXBwaW5nTWFza0xheWVyICYmICFtX3Nj
cm9sbGluZ0xheWVyKSB7CisgICAgICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPnNl
dFBvc2l0aW9uKGNsaXBMYXllci0+cG9zaXRpb24oKSk7CisgICAgICAgICAgICBtX2NoaWxkQ2xp
cHBpbmdNYXNrTGF5ZXItPnNldFNpemUoY2xpcExheWVyLT5zaXplKCkpOworICAgICAgICAgICAg
bV9jaGlsZENsaXBwaW5nTWFza0xheWVyLT5zZXRPZmZzZXRGcm9tUmVuZGVyZXIoY2xpcExheWVy
LT5vZmZzZXRGcm9tUmVuZGVyZXIoKSk7CisgICAgICAgIH0KICAgICB9CiAgICAgCiAgICAgaWYg
KG1fbWFza0xheWVyKSB7CkBAIC05NDIsNiArOTU5LDEyIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNr
aW5nOjp1cGRhdGVHZW9tZXRyeSgpCiAgICAgICAgIEZsb2F0U2l6ZSBvbGRTY3JvbGxpbmdMYXll
ck9mZnNldCA9IG1fc2Nyb2xsaW5nTGF5ZXItPm9mZnNldEZyb21SZW5kZXJlcigpOwogICAgICAg
ICBtX3Njcm9sbGluZ0xheWVyLT5zZXRPZmZzZXRGcm9tUmVuZGVyZXIoLXRvRmxvYXRTaXplKHBh
ZGRpbmdCb3gubG9jYXRpb24oKSkpOwogCisgICAgICAgIGlmIChtX2NoaWxkQ2xpcHBpbmdNYXNr
TGF5ZXIpIHsKKyAgICAgICAgICAgIG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci0+c2V0UG9zaXRp
b24obV9zY3JvbGxpbmdMYXllci0+cG9zaXRpb24oKSk7CisgICAgICAgICAgICBtX2NoaWxkQ2xp
cHBpbmdNYXNrTGF5ZXItPnNldFNpemUobV9zY3JvbGxpbmdMYXllci0+c2l6ZSgpKTsKKyAgICAg
ICAgICAgIG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci0+c2V0T2Zmc2V0RnJvbVJlbmRlcmVyKHRv
RmxvYXRTaXplKHBhZGRpbmdCb3gubG9jYXRpb24oKSkpOworICAgICAgICB9CisKICAgICAgICAg
Ym9vbCBwYWRkaW5nQm94T2Zmc2V0Q2hhbmdlZCA9IG9sZFNjcm9sbGluZ0xheWVyT2Zmc2V0ICE9
IG1fc2Nyb2xsaW5nTGF5ZXItPm9mZnNldEZyb21SZW5kZXJlcigpOwogCiAgICAgICAgIEludFNp
emUgc2Nyb2xsU2l6ZShtX293bmluZ0xheWVyLnNjcm9sbFdpZHRoKCksIG1fb3duaW5nTGF5ZXIu
c2Nyb2xsSGVpZ2h0KCkpOwpAQCAtMTQxNCw2ICsxNDM3LDI0IEBAIHZvaWQgUmVuZGVyTGF5ZXJC
YWNraW5nOjp1cGRhdGVNYXNrTGF5ZXIoYm9vbCBuZWVkc01hc2tMYXllcikKICAgICAgICAgbV9n
cmFwaGljc0xheWVyLT5zZXRQYWludGluZ1BoYXNlKHBhaW50aW5nUGhhc2VGb3JQcmltYXJ5TGF5
ZXIoKSk7CiB9CiAKK2Jvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDbGlwcGluZ01hc2tM
YXllcnMoYm9vbCBuZWVkc0NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIpCit7CisgICAgYm9vbCBsYXll
ckNoYW5nZWQgPSBmYWxzZTsKKyAgICBpZiAobmVlZHNDaGlsZENsaXBwaW5nTWFza0xheWVyKSB7
CisgICAgICAgIGlmICghbV9jaGlsZENsaXBwaW5nTWFza0xheWVyKSB7CisgICAgICAgICAgICBt
X2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIgPSBjcmVhdGVHcmFwaGljc0xheWVyKCJDaGlsZCBDbGlw
cGluZyBNYXNrIExheWVyIik7CisgICAgICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIt
PnNldERyYXdzQ29udGVudCh0cnVlKTsKKyAgICAgICAgICAgIG1fY2hpbGRDbGlwcGluZ01hc2tM
YXllci0+c2V0UGFpbnRpbmdQaGFzZShHcmFwaGljc0xheWVyUGFpbnRDaGlsZENsaXBwaW5nTWFz
ayk7CisgICAgICAgICAgICBsYXllckNoYW5nZWQgPSB0cnVlOworICAgICAgICB9CisgICAgfSBl
bHNlIGlmIChtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIpIHsKKyAgICAgICAgbV9jaGlsZENsaXBw
aW5nTWFza0xheWVyID0gbnVsbHB0cjsKKyAgICAgICAgbGF5ZXJDaGFuZ2VkID0gdHJ1ZTsKKyAg
ICB9CisKKyAgICByZXR1cm4gbGF5ZXJDaGFuZ2VkOworfQorCiBib29sIFJlbmRlckxheWVyQmFj
a2luZzo6dXBkYXRlU2Nyb2xsaW5nTGF5ZXJzKGJvb2wgbmVlZHNTY3JvbGxpbmdMYXllcnMpCiB7
CiAgICAgaWYgKG5lZWRzU2Nyb2xsaW5nTGF5ZXJzID09ICEhbV9zY3JvbGxpbmdMYXllcikKQEAg
LTIwNjUsNiArMjEwNiw5IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpzZXRDb250ZW50c05l
ZWREaXNwbGF5KEdyYXBoaWNzTGF5ZXI6OlNob3VsZENsaXBUb0xheWVyCiAgICAgaWYgKG1fbWFz
a0xheWVyICYmIG1fbWFza0xheWVyLT5kcmF3c0NvbnRlbnQoKSkKICAgICAgICAgbV9tYXNrTGF5
ZXItPnNldE5lZWRzRGlzcGxheSgpOwogCisgICAgaWYgKG1fY2hpbGRDbGlwcGluZ01hc2tMYXll
ciAmJiBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPmRyYXdzQ29udGVudCgpKQorICAgICAgICBt
X2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOworCiAgICAgaWYgKG1f
c2Nyb2xsaW5nQ29udGVudHNMYXllciAmJiBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXItPmRyYXdz
Q29udGVudCgpKQogICAgICAgICBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXItPnNldE5lZWRzRGlz
cGxheSgpOwogfQpAQCAtMjEwNCw2ICsyMTQ4LDEyIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5n
OjpzZXRDb250ZW50c05lZWREaXNwbGF5SW5SZWN0KGNvbnN0IExheW91dFJlY3QmIHIsIEdyYXBo
CiAgICAgICAgIG1fbWFza0xheWVyLT5zZXROZWVkc0Rpc3BsYXlJblJlY3QobGF5ZXJEaXJ0eVJl
Y3QsIHNob3VsZENsaXApOwogICAgIH0KIAorICAgIGlmIChtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5
ZXIgJiYgbV9jaGlsZENsaXBwaW5nTWFza0xheWVyLT5kcmF3c0NvbnRlbnQoKSkgeworICAgICAg
ICBGbG9hdFJlY3QgbGF5ZXJEaXJ0eVJlY3QgPSByOworICAgICAgICBsYXllckRpcnR5UmVjdC5t
b3ZlKC1tX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPm9mZnNldEZyb21SZW5kZXJlcigpKTsKKyAg
ICAgICAgbV9jaGlsZENsaXBwaW5nTWFza0xheWVyLT5zZXROZWVkc0Rpc3BsYXlJblJlY3QobGF5
ZXJEaXJ0eVJlY3QpOworICAgIH0KKwogICAgIGlmIChtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIg
JiYgbV9zY3JvbGxpbmdDb250ZW50c0xheWVyLT5kcmF3c0NvbnRlbnQoKSkgewogICAgICAgICBG
bG9hdFJlY3QgbGF5ZXJEaXJ0eVJlY3QgPSBwaXhlbFNuYXBwZWRSZWN0Rm9yUGFpbnRpbmc7CiAg
ICAgICAgIGxheWVyRGlydHlSZWN0Lm1vdmUoLW1fc2Nyb2xsaW5nQ29udGVudHNMYXllci0+b2Zm
c2V0RnJvbVJlbmRlcmVyKCkgKyBtX2RldmljZVBpeGVsRnJhY3Rpb25Gcm9tUmVuZGVyZXIpOwpA
QCAtMjEzOCw2ICsyMTg4LDggQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50SW50b0xh
eWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXAKICAgICAgICAgcGFp
bnRGbGFncyB8PSBSZW5kZXJMYXllcjo6UGFpbnRMYXllclBhaW50aW5nQ29tcG9zaXRpbmdGb3Jl
Z3JvdW5kUGhhc2U7CiAgICAgaWYgKHBhaW50aW5nUGhhc2UgJiBHcmFwaGljc0xheWVyUGFpbnRN
YXNrKQogICAgICAgICBwYWludEZsYWdzIHw9IFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRp
bmdDb21wb3NpdGluZ01hc2tQaGFzZTsKKyAgICBpZiAocGFpbnRpbmdQaGFzZSAmIEdyYXBoaWNz
TGF5ZXJQYWludENoaWxkQ2xpcHBpbmdNYXNrKQorICAgICAgICBwYWludEZsYWdzIHw9IFJlbmRl
ckxheWVyOjpQYWludExheWVyUGFpbnRpbmdDaGlsZENsaXBwaW5nTWFza1BoYXNlOwogICAgIGlm
IChwYWludGluZ1BoYXNlICYgR3JhcGhpY3NMYXllclBhaW50T3ZlcmZsb3dDb250ZW50cykKICAg
ICAgICAgcGFpbnRGbGFncyB8PSBSZW5kZXJMYXllcjo6UGFpbnRMYXllclBhaW50aW5nT3ZlcmZs
b3dDb250ZW50czsKICAgICBpZiAocGFpbnRpbmdQaGFzZSAmIEdyYXBoaWNzTGF5ZXJQYWludENv
bXBvc2l0ZWRTY3JvbGwpCkBAIC0yMjAyLDYgKzIyNTQsNyBAQCB2b2lkIFJlbmRlckxheWVyQmFj
a2luZzo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBH
cmFwaAogICAgICAgICB8fCBncmFwaGljc0xheWVyID09IG1fZm9yZWdyb3VuZExheWVyLmdldCgp
CiAgICAgICAgIHx8IGdyYXBoaWNzTGF5ZXIgPT0gbV9iYWNrZ3JvdW5kTGF5ZXIuZ2V0KCkKICAg
ICAgICAgfHwgZ3JhcGhpY3NMYXllciA9PSBtX21hc2tMYXllci5nZXQoKQorICAgICAgICB8fCBn
cmFwaGljc0xheWVyID09IG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci5nZXQoKQogICAgICAgICB8
fCBncmFwaGljc0xheWVyID09IG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci5nZXQoKSkgewogICAg
ICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxQYWludCgmcmVuZGVyZXIoKSk7CiAK
QEAgLTI1NzgsNiArMjYzMSw4IEBAIGRvdWJsZSBSZW5kZXJMYXllckJhY2tpbmc6OmJhY2tpbmdT
dG9yZU1lbW9yeUVzdGltYXRlKCkgY29uc3QKICAgICAgICAgYmFja2luZ01lbW9yeSArPSBtX2Jh
Y2tncm91bmRMYXllci0+YmFja2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUoKTsKICAgICBpZiAobV9t
YXNrTGF5ZXIpCiAgICAgICAgIGJhY2tpbmdNZW1vcnkgKz0gbV9tYXNrTGF5ZXItPmJhY2tpbmdT
dG9yZU1lbW9yeUVzdGltYXRlKCk7CisgICAgaWYgKG1fY2hpbGRDbGlwcGluZ01hc2tMYXllcikK
KyAgICAgICAgYmFja2luZ01lbW9yeSArPSBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPmJhY2tp
bmdTdG9yZU1lbW9yeUVzdGltYXRlKCk7CiAKICAgICBpZiAobV9zY3JvbGxpbmdDb250ZW50c0xh
eWVyKQogICAgICAgICBiYWNraW5nTWVtb3J5ICs9IG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci0+
YmFja2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuaAppbmRleCBjY2JiZjVlNmRiN2E0YzQ4ZTUyODU0MmE5MTgz
MjdkMjdlMGMzMGZiLi44ZTdhYzdiMzEzNmI3OWYxN2Q2NjM1MTgxMmU0NWY3ODdkMGI2YjQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBAIC0x
MzksNiArMTM5LDcgQEAgcHVibGljOgogICAgIFNjcm9sbGluZ05vZGVJRCBzY3JvbGxpbmdOb2Rl
SURGb3JDaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsaW5nTm9kZUlEID8gbV9zY3Jv
bGxpbmdOb2RlSUQgOiBtX3ZpZXdwb3J0Q29uc3RyYWluZWROb2RlSUQ7IH0KIAogICAgIGJvb2wg
aGFzTWFza0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9tYXNrTGF5ZXIgIT0gMDsgfQorICAgIGJv
b2wgaGFzQ2hpbGRDbGlwcGluZ01hc2tMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRDbGlw
cGluZ01hc2tMYXllciAhPSBudWxscHRyOyB9CiAKICAgICBHcmFwaGljc0xheWVyKiBwYXJlbnRG
b3JTdWJsYXllcnMoKSBjb25zdDsKICAgICBHcmFwaGljc0xheWVyKiBjaGlsZEZvclN1cGVybGF5
ZXJzKCkgY29uc3Q7CkBAIC0yNjMsNiArMjY0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHVwZGF0
ZUZvcmVncm91bmRMYXllcihib29sIG5lZWRzRm9yZWdyb3VuZExheWVyKTsKICAgICBib29sIHVw
ZGF0ZUJhY2tncm91bmRMYXllcihib29sIG5lZWRzQmFja2dyb3VuZExheWVyKTsKICAgICB2b2lk
IHVwZGF0ZU1hc2tMYXllcihib29sIG5lZWRzTWFza0xheWVyKTsKKyAgICBib29sIHVwZGF0ZUNs
aXBwaW5nTWFza0xheWVycyhib29sIG5lZWRzQ2hpbGRDbGlwcGluZ01hc2tMYXllcik7CiAgICAg
Ym9vbCByZXF1aXJlc0hvcml6b250YWxTY3JvbGxiYXJMYXllcigpIGNvbnN0OwogICAgIGJvb2wg
cmVxdWlyZXNWZXJ0aWNhbFNjcm9sbGJhckxheWVyKCkgY29uc3Q7CiAgICAgYm9vbCByZXF1aXJl
c1Njcm9sbENvcm5lckxheWVyKCkgY29uc3Q7CkBAIC0zMzUsNiArMzM3LDcgQEAgcHJpdmF0ZToK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9iYWNrZ3JvdW5kTGF5ZXI7IC8v
IE9ubHkgdXNlZCBpbiBjYXNlcyB3aGVyZSB3ZSBuZWVkIHRvIGRyYXcgdGhlIGJhY2tncm91bmQg
c2VwYXJhdGVseS4KICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9jaGlsZENv
bnRhaW5tZW50TGF5ZXI7IC8vIE9ubHkgdXNlZCBpZiB3ZSBoYXZlIGNsaXBwaW5nIG9uIGEgc3Rh
Y2tpbmcgY29udGV4dCB3aXRoIGNvbXBvc2l0aW5nIGNoaWxkcmVuLCBvciBpZiB0aGUgbGF5ZXIg
aGFzIGEgdGlsZSBjYWNoZS4KICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9t
YXNrTGF5ZXI7IC8vIE9ubHkgdXNlZCBpZiB3ZSBoYXZlIGEgbWFzay4KKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9jaGlsZENsaXBwaW5nTWFza0xheWVyOyAvLyBPbmx5IHVz
ZWQgaWYgd2UgaGF2ZSB0byBjbGlwIGNoaWxkIGxheWVycyBvciBhY2NlbGVyYXRlZCBjb250ZW50
cyB3aXRoIGJvcmRlciByYWRpdXMgb3IgY2xpcC1wYXRoLgogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PEdyYXBoaWNzTGF5ZXI+IG1fbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyOwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9yVmVydGljYWxTY3JvbGxiYXI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241725</attachid>
            <date>2014-11-17 11:05:31 -0800</date>
            <delta_ts>2014-12-15 06:29:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138551-20141117110542.patch</filename>
            <type>text/plain</type>
            <size>20083</size>
            <attacher name="Byungseon(Sun) Shin">sun.shin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2MjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjY1ZmZkMDQxMDAyM2Mw
ZmU3Y2ViMDY0NDc5OWY1NjY2YTMxNzQyNi4uNDQ0ZWJiZjg4YWViOGI4YTY1ZGNlMzRmZDBmYjQx
MzgyNTczMTlkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE0LTExLTE3ICBCeXVu
Z3Nlb24gU2hpbiAgPHN1bi5zaGluQGxnZS5jb20+CisKKyAgICAgICAgRml4IEJvcmRlci1yYWRp
dXMgY2xpcHBpbmcgaXNzdWUgb24gYSBjb21wb3NpdGVkIGRlc2NlbmRlbnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODU1MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBjbGlwcGluZyBjb21wb3Np
dGluZyBkZXNjZW5kZW50cyBvZiBhbiBhY2NlbGVyYXRlZCBsYXllciBoYXZpbmcgCisgICAgICAg
IGJvcmRlciByYWRpdXMgYW5kIGNsaXAgb3ZlcmZsb3cgaXNzdWUgYnkgc2V0dGluZyB1cCBhIG1h
c2sgCisgICAgICAgIG9uIHRoZSBjaGlsZENvbnRhaW5tZW50TGF5ZXIuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBpcyBleHRyYWN0ZWQgZnJvbSBmb2xsb3dpbmcgQmxpbmsgcmV2aXNpb25zOgorICAg
ICAgICA8aHR0cDovL3NyYy5jaHJvbWl1bS5vcmcvdmlld3ZjL2JsaW5rP3ZpZXc9cmV2aXNpb24m
cmV2aXNpb249MTYyNDYzPiAKKyAgICAgICAgPGh0dHA6Ly9zcmMuY2hyb21pdW0ub3JnL3ZpZXd2
Yy9ibGluaz92aWV3PXJldmlzaW9uJnJldmlzaW9uPTE1ODI1OD4KKyAgICAgICAgYnkgPHJvc2Nh
QGFkb2JlLmNvbT4KKworICAgICAgICBDbGlwIGFjY2VsZXJhdGVkIGRlc2NlbmRhbnRzIG9mIGFu
IGFjY2VsZXJhdGVkIGxheWVyIGhhdmluZyBib3JkZXIgcmFkaXVzIGFuZCBjbGlwIG92ZXJmbG93
LgorICAgICAgICBMYXJnZSBjYW52YXMgZG9lcyBub3QgaG9ub3IgY29udGFpbmluZyBkaXYncyBi
b3JkZXIgcmFkaXVzLgorCisgICAgICAgIGFuZCA8aHR0cDovL3NyYy5jaHJvbWl1bS5vcmcvdmll
d3ZjL2JsaW5rP3ZpZXc9cmV2aXNpb24mcmV2aXNpb249MTYwNTc4PgorICAgICAgICBieSA8anVu
b3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEZpeCBmb3IgQ1NTIGNsaXAtcGF0aCB3aXRoIGFj
Y2VsZXJhdGVkIDJEIGNhbnZhcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6ZHVtcFByb3Bl
cnRpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUGFpbnRQaGFzZS5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6cGFpbnRP
YmplY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94OjpwYWludENsaXBwaW5nTWFzayk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludENoaWxkQ2xpcHBpbmdNYXNrRm9yRnJhZ21lbnRz
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
QmFja2luZzo6flJlbmRlckxheWVyQmFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckJhY2tpbmc6OmRlc3Ryb3lHcmFwaGljc0xheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUNsaXBwaW5nTWFza0xheWVycyk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnNldENvbnRlbnRzTmVlZERpc3BsYXkpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpzZXRDb250ZW50c05lZWREaXNw
bGF5SW5SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6cGFpbnRJ
bnRvTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludENv
bnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6YmFja2luZ1N0
b3JlTWVtb3J5RXN0aW1hdGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuaDoKKwogMjAxNC0xMS0xNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAK
ICAgICAgICAgQXR0ZW1wdCB0byBmaXggdGhlIE1hYyBidWlsZCBhZnRlciA8aHR0cHM6Ly90cmFj
LndlYmtpdC5vcmcvY2hhbmdlc2V0LzE3NjIwND4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggNjJkMjUxNjNkZDI5MGYyNjgz
YTJiMzQ3OTZjOTkwOTI3ZWIzOWY5OS4uZDYyODhiNzZkZTk2MjFiZmFiZWRmNGI3MzMzZTQ1Mjg5
ZTBmY2U1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NMYXllci5jcHAKQEAgLTc2MSw2ICs3NjEsMTAgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpk
dW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgaW50IGluZGVudCwgTGF5ZXJUcmVlQXNUZXh0
QmUKICAgICAgICAgICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQgKyAyKTsKICAgICAgICAgICAg
IHRzIDw8ICJHcmFwaGljc0xheWVyUGFpbnRNYXNrXG4iOwogICAgICAgICB9CisgICAgICAgIGlm
IChwYWludGluZ1BoYXNlKCkgJiBHcmFwaGljc0xheWVyUGFpbnRDaGlsZENsaXBwaW5nTWFzaykg
eworICAgICAgICAgICAgd3JpdGVJbmRlbnQodHMsIGluZGVudCArIDIpOworICAgICAgICAgICAg
dHMgPDwgIkdyYXBoaWNzTGF5ZXJQYWludENoaWxkQ2xpcHBpbmdNYXNrXG4iOworICAgICAgICB9
CiAgICAgICAgIGlmIChwYWludGluZ1BoYXNlKCkgJiBHcmFwaGljc0xheWVyUGFpbnRPdmVyZmxv
d0NvbnRlbnRzKSB7CiAgICAgICAgICAgICB3cml0ZUluZGVudCh0cywgaW5kZW50ICsgMik7CiAg
ICAgICAgICAgICB0cyA8PCAiR3JhcGhpY3NMYXllclBhaW50T3ZlcmZsb3dDb250ZW50c1xuIjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXJDbGllbnQuaAppbmRleCBiNDVkZjFjODcwYTA0MWZhMjFmOWJkZGI1ZmRjNWYxYzFlYzQwOGQz
Li4xZDlhZTFjMTY2NjIxYzdlYWI3Zjk2YjgwMWJmMzJkYzU5ODMwZjdjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5o
CkBAIC00NCw2ICs0NCw3IEBAIGVudW0gR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2VGbGFncyB7
CiAgICAgR3JhcGhpY3NMYXllclBhaW50TWFzayA9ICgxIDw8IDIpLAogICAgIEdyYXBoaWNzTGF5
ZXJQYWludE92ZXJmbG93Q29udGVudHMgPSAoMSA8PCAzKSwKICAgICBHcmFwaGljc0xheWVyUGFp
bnRDb21wb3NpdGVkU2Nyb2xsID0gKDEgPDwgNCksCisgICAgR3JhcGhpY3NMYXllclBhaW50Q2hp
bGRDbGlwcGluZ01hc2sgPSAoMSA8PCA1KSwKICAgICBHcmFwaGljc0xheWVyUGFpbnRBbGxXaXRo
T3ZlcmZsb3dDbGlwID0gKEdyYXBoaWNzTGF5ZXJQYWludEJhY2tncm91bmQgfCBHcmFwaGljc0xh
eWVyUGFpbnRGb3JlZ3JvdW5kIHwgR3JhcGhpY3NMYXllclBhaW50TWFzaykKIH07CiB0eXBlZGVm
IHVuc2lnbmVkIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1BhaW50UGhhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9QYWludFBoYXNlLmgKaW5kZXggMGJiZjk5YTdkMGNmNWEwOWNhODVjMzBkZjA2MWEzNmQ3Y2Fj
MDI2Yi4uYTQ0OGQ5MjJkOThmNzFjODdiOWQ2Mjk2MjMxZWE0ZWE3MDM5ZWY4NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BhaW50UGhhc2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUGFpbnRQaGFzZS5oCkBAIC00OSw3ICs0OSw4IEBAIGVudW0gUGFpbnRQ
aGFzZSB7CiAgICAgUGFpbnRQaGFzZVNlbGVjdGlvbiwKICAgICBQYWludFBoYXNlQ29sbGFwc2Vk
VGFibGVCb3JkZXJzLAogICAgIFBhaW50UGhhc2VUZXh0Q2xpcCwKLSAgICBQYWludFBoYXNlTWFz
aworICAgIFBhaW50UGhhc2VNYXNrLAorICAgIFBhaW50UGhhc2VDbGlwcGluZ01hc2sKIH07CiAK
IGVudW0gUGFpbnRCZWhhdmlvckZsYWdzIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwCmluZGV4IGI4NzFlNjE1OThlYzYwODMzMjBhYmMwOTU2MzM5ZDEyZWE5YzhlNDEu
LjczMDVlNjEyOGQ3NTI1N2U4YmUwNGE3YjFkNmFiZjk3MTg2YzBlMjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMTU3Niw2ICsxNTc2LDExIEBAIHZvaWQg
UmVuZGVyQmxvY2s6OnBhaW50T2JqZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlv
dXRQb2ludCYgcGFpbnRPZmZzCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAocGFp
bnRQaGFzZSA9PSBQYWludFBoYXNlQ2xpcHBpbmdNYXNrICYmIHN0eWxlKCkudmlzaWJpbGl0eSgp
ID09IFZJU0lCTEUpIHsKKyAgICAgICAgcGFpbnRDbGlwcGluZ01hc2socGFpbnRJbmZvLCBwYWlu
dE9mZnNldCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICAvLyBJZiBqdXN0IHBhaW50
aW5nIHRoZSByb290IGJhY2tncm91bmQsIHRoZW4gcmV0dXJuLgogICAgIGlmIChwYWludEluZm8u
cGFpbnRSb290QmFja2dyb3VuZE9ubHkoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCBlNDhlYjliNjc1ZGM5ZDIxNzU5OTI0Yzg4MDVh
ZmEwYjg5YjQ5ODM3Li4zZWEwZGYzOTJiMGU0NmRhZGUwNjNjODQzYTAzMWQ2YWY4MGI5ZDgyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMTQ4MCw2ICsxNDgwLDE1
IEBAIHZvaWQgUmVuZGVyQm94OjpwYWludE1hc2soUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0
IExheW91dFBvaW50JiBwYWludE9mZnNldCkKICAgICBwYWludE1hc2tJbWFnZXMocGFpbnRJbmZv
LCBwYWludFJlY3QpOwogfQogCit2b2lkIFJlbmRlckJveDo6cGFpbnRDbGlwcGluZ01hc2soUGFp
bnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKK3sKKyAg
ICBpZiAoIXBhaW50SW5mby5zaG91bGRQYWludFdpdGhpblJvb3QoKnRoaXMpIHx8IHN0eWxlKCku
dmlzaWJpbGl0eSgpICE9IFZJU0lCTEUgfHwgcGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhhc2VD
bGlwcGluZ01hc2sgfHwgcGFpbnRJbmZvLmNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgTGF5b3V0UmVjdCBwYWludFJlY3QgPSBMYXlvdXRSZWN0KHBh
aW50T2Zmc2V0LCBzaXplKCkpOworICAgIHBhaW50SW5mby5jb250ZXh0LT5maWxsUmVjdChzbmFw
cGVkSW50UmVjdChwYWludFJlY3QpLCBDb2xvcjo6YmxhY2ssIHN0eWxlKCkuY29sb3JTcGFjZSgp
KTsKK30KKwogdm9pZCBSZW5kZXJCb3g6OnBhaW50TWFza0ltYWdlcyhjb25zdCBQYWludEluZm8m
IHBhaW50SW5mbywgY29uc3QgTGF5b3V0UmVjdCYgcGFpbnRSZWN0KQogewogICAgIC8vIEZpZ3Vy
ZSBvdXQgaWYgd2UgbmVlZCB0byBwdXNoIGEgdHJhbnNwYXJlbmN5IGxheWVyIHRvIHJlbmRlciBv
dXIgbWFzay4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCA3ZWYwYzI3Yzkx
MTI3ZDA1ZjJlZTEzYWU4MjBiMzkwZDBhODgxNDBhLi4yMjk0NThlZTZlYjYwNDgwNTQ2OGQ3MzQz
NDgwNmM4NjhhN2FiMTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC00
OTIsNiArNDkyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwYWludE9iamVjdChQYWlu
dEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnRCb3hEZWNvcmF0aW9ucyhQYWludEluZm8mLCBjb25zdCBMYXlv
dXRQb2ludCYpOwogICAgIHZpcnR1YWwgdm9pZCBwYWludE1hc2soUGFpbnRJbmZvJiwgY29uc3Qg
TGF5b3V0UG9pbnQmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDbGlwcGluZ01hc2soUGFpbnRJ
bmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFuZ2Vk
KFdyYXBwZWRJbWFnZVB0ciwgY29uc3QgSW50UmVjdCogPSAwKSBvdmVycmlkZTsKIAogICAgIC8v
IENhbGxlZCB3aGVuIGEgcG9zaXRpb25lZCBvYmplY3QgbW92ZXMgYnV0IGRvZXNuJ3QgbmVjZXNz
YXJpbHkgY2hhbmdlIHNpemUuICBBIHNpbXBsaWZpZWQgbGF5b3V0IGlzIGF0dGVtcHRlZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggMDBhMDA5NzBkNjZhZmI5
MmM5MjNmYzI5YzZmMTVmYTZlMDI1OWQ1MC4uYmI4MTk2NWRhZmQyNmEzNDczODUzY2M5NWU2NzU3
ODgwMmM2ZTEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBA
IC00MTg5LDYgKzQxODksMTEgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRz
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGkKICAgICAgICAgcGFp
bnRNYXNrRm9yRnJhZ21lbnRzKGxheWVyRnJhZ21lbnRzLCBjb250ZXh0LCBsb2NhbFBhaW50aW5n
SW5mbywgc3VidHJlZVBhaW50Um9vdEZvclJlbmRlcmVyKTsKICAgICB9CiAKKyAgICBpZiAoKGxv
Y2FsUGFpbnRGbGFncyAmIFBhaW50TGF5ZXJQYWludGluZ0NoaWxkQ2xpcHBpbmdNYXNrUGhhc2Up
ICYmIHNob3VsZFBhaW50Q29udGVudCAmJiAhc2VsZWN0aW9uT25seSkgeworICAgICAgICAvLyBQ
YWludCB0aGUgYm9yZGVyIHJhZGl1cyBtYXNrIGZvciB0aGUgZnJhZ21lbnRzLgorICAgICAgICBw
YWludENoaWxkQ2xpcHBpbmdNYXNrRm9yRnJhZ21lbnRzKGxheWVyRnJhZ21lbnRzLCBjb250ZXh0
LCBsb2NhbFBhaW50aW5nSW5mbywgc3VidHJlZVBhaW50Um9vdEZvclJlbmRlcmVyKTsKKyAgICB9
CisKICAgICAvLyBFbmQgb3VyIHRyYW5zcGFyZW5jeSBsYXllcgogICAgIGlmIChoYXZlVHJhbnNw
YXJlbmN5ICYmIG1fdXNlZFRyYW5zcGFyZW5jeSAmJiAhbV9wYWludGluZ0luc2lkZVJlZmxlY3Rp
b24pIHsKICAgICAgICAgY29udGV4dC0+ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKQEAgLTQ2MDcs
NiArNDYxMiwyNiBAQCB2b2lkIFJlbmRlckxheWVyOjpwYWludE1hc2tGb3JGcmFnbWVudHMoY29u
c3QgTGF5ZXJGcmFnbWVudHMmIGxheWVyRnJhZ21lbnRzLCBHcgogICAgIH0KIH0KIAordm9pZCBS
ZW5kZXJMYXllcjo6cGFpbnRDaGlsZENsaXBwaW5nTWFza0ZvckZyYWdtZW50cyhjb25zdCBMYXll
ckZyYWdtZW50cyYgbGF5ZXJGcmFnbWVudHMsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29u
c3QgTGF5ZXJQYWludGluZ0luZm8mIGxvY2FsUGFpbnRpbmdJbmZvLAorICAgIFJlbmRlck9iamVj
dCogc3VidHJlZVBhaW50Um9vdEZvclJlbmRlcmVyKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbGF5ZXJGcmFnbWVudHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgY29uc3QgTGF5ZXJG
cmFnbWVudCYgZnJhZ21lbnQgPSBsYXllckZyYWdtZW50cy5hdChpKTsKKyAgICAgICAgaWYgKCFm
cmFnbWVudC5zaG91bGRQYWludENvbnRlbnQpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAg
ICAgICBpZiAobG9jYWxQYWludGluZ0luZm8uY2xpcFRvRGlydHlSZWN0KQorICAgICAgICAgICAg
Y2xpcFRvUmVjdChsb2NhbFBhaW50aW5nSW5mbywgY29udGV4dCwgZnJhZ21lbnQuZm9yZWdyb3Vu
ZFJlY3QsIEluY2x1ZGVTZWxmRm9yQm9yZGVyUmFkaXVzKTsgLy8gQ2hpbGQgY2xpcHBpbmcgbWFz
ayBwYWludGluZyB3aWxsIGhhbmRsZSBjbGlwcGluZyB0byBzZWxmLgorCisgICAgICAgIC8vIFBh
aW50IHRoZSBjbGlwcGVkIG1hc2suCisgICAgICAgIFBhaW50SW5mbyBwYWludEluZm8oY29udGV4
dCwgZnJhZ21lbnQuYmFja2dyb3VuZFJlY3QucmVjdCgpLCBQYWludFBoYXNlQ2xpcHBpbmdNYXNr
LCBQYWludEJlaGF2aW9yTm9ybWFsLCBzdWJ0cmVlUGFpbnRSb290Rm9yUmVuZGVyZXIsIG51bGxw
dHIsIG51bGxwdHIsICZsb2NhbFBhaW50aW5nSW5mby5yb290TGF5ZXItPnJlbmRlcmVyKCkpOwor
ICAgICAgICByZW5kZXJlcigpLnBhaW50KHBhaW50SW5mbywgdG9MYXlvdXRQb2ludChmcmFnbWVu
dC5sYXllckJvdW5kcy5sb2NhdGlvbigpIC0gcmVuZGVyQm94TG9jYXRpb24oKSArIGxvY2FsUGFp
bnRpbmdJbmZvLnN1YnBpeGVsQWNjdW11bGF0aW9uKSk7CisKKyAgICAgICAgaWYgKGxvY2FsUGFp
bnRpbmdJbmZvLmNsaXBUb0RpcnR5UmVjdCkKKyAgICAgICAgICAgIHJlc3RvcmVDbGlwKGNvbnRl
eHQsIGxvY2FsUGFpbnRpbmdJbmZvLnBhaW50RGlydHlSZWN0LCBmcmFnbWVudC5mb3JlZ3JvdW5k
UmVjdCk7CisgICAgfQorfQorCiB2b2lkIFJlbmRlckxheWVyOjpwYWludE92ZXJmbG93Q29udHJv
bHNGb3JGcmFnbWVudHMoY29uc3QgTGF5ZXJGcmFnbWVudHMmIGxheWVyRnJhZ21lbnRzLCBHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheWVyUGFpbnRpbmdJbmZvJiBsb2NhbFBhaW50
aW5nSW5mbykKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxheWVyRnJhZ21lbnRzLnNp
emUoKTsgKytpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDQx
MDkzODc3ZDU5ODMxOTIzMzMwYTgxOTZlN2M1NzRhZTgwZTZhM2MuLjk2YTMzYjQ5NjU4ZTA1Zjlk
MWE0ZjhmMGE2MDIyNjdhNWViYTA5MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5oCkBAIC02NjcsNiArNjY3LDcgQEAgcHVibGljOgogICAgICAgICBQYWludExheWVyUGFp
bnRpbmdPdmVyZmxvd0NvbnRlbnRzID0gMSA8PCA5LAogICAgICAgICBQYWludExheWVyUGFpbnRp
bmdSb290QmFja2dyb3VuZE9ubHkgPSAxIDw8IDEwLAogICAgICAgICBQYWludExheWVyUGFpbnRp
bmdTa2lwUm9vdEJhY2tncm91bmQgPSAxIDw8IDExLAorICAgICAgICBQYWludExheWVyUGFpbnRp
bmdDaGlsZENsaXBwaW5nTWFza1BoYXNlID0gMSA8PCAxMiwKICAgICAgICAgUGFpbnRMYXllclBh
aW50aW5nQ29tcG9zaXRpbmdBbGxQaGFzZXMgPSAoUGFpbnRMYXllclBhaW50aW5nQ29tcG9zaXRp
bmdCYWNrZ3JvdW5kUGhhc2UgfCBQYWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ0ZvcmVncm91
bmRQaGFzZSB8IFBhaW50TGF5ZXJQYWludGluZ0NvbXBvc2l0aW5nTWFza1BoYXNlKQogICAgIH07
CiAgICAgCkBAIC0xMDA5LDYgKzEwMTAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFpbnRPdXRs
aW5lRm9yRnJhZ21lbnRzKGNvbnN0IExheWVyRnJhZ21lbnRzJiwgR3JhcGhpY3NDb250ZXh0Kiwg
Y29uc3QgTGF5ZXJQYWludGluZ0luZm8mLCBQYWludEJlaGF2aW9yLCBSZW5kZXJPYmplY3QqIHBh
aW50aW5nUm9vdEZvclJlbmRlcmVyKTsKICAgICB2b2lkIHBhaW50T3ZlcmZsb3dDb250cm9sc0Zv
ckZyYWdtZW50cyhjb25zdCBMYXllckZyYWdtZW50cyYsIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0
IExheWVyUGFpbnRpbmdJbmZvJik7CiAgICAgdm9pZCBwYWludE1hc2tGb3JGcmFnbWVudHMoY29u
c3QgTGF5ZXJGcmFnbWVudHMmLCBHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXllclBhaW50aW5n
SW5mbyYsIFJlbmRlck9iamVjdCogcGFpbnRpbmdSb290Rm9yUmVuZGVyZXIpOworICAgIHZvaWQg
cGFpbnRDaGlsZENsaXBwaW5nTWFza0ZvckZyYWdtZW50cyhjb25zdCBMYXllckZyYWdtZW50cyYs
IEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheWVyUGFpbnRpbmdJbmZvJiwgUmVuZGVyT2JqZWN0
KiBwYWludGluZ1Jvb3RGb3JSZW5kZXJlcik7CiAgICAgdm9pZCBwYWludFRyYW5zZm9ybWVkTGF5
ZXJJbnRvRnJhZ21lbnRzKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheWVyUGFpbnRpbmdJbmZv
JiwgUGFpbnRMYXllckZsYWdzKTsKIAogICAgIFJlbmRlckxheWVyKiB0cmFuc3BhcmVudFBhaW50
aW5nQW5jZXN0b3IoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAKaW5kZXggNzkzN2MxMWNjMzdiZGIyOTFhOWZkZTAxNzFlZDhmNDI0YjEzZDZh
Yi4uOTRkNTZjYmE2NDJlMmVhMmRkYWNlMDQ4NzlmNzFkYzY4MzVlNWExNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTE0Nyw2ICsx
NDcsNyBAQCBSZW5kZXJMYXllckJhY2tpbmc6On5SZW5kZXJMYXllckJhY2tpbmcoKQogICAgIHVw
ZGF0ZUZvcmVncm91bmRMYXllcihmYWxzZSk7CiAgICAgdXBkYXRlQmFja2dyb3VuZExheWVyKGZh
bHNlKTsKICAgICB1cGRhdGVNYXNrTGF5ZXIoZmFsc2UpOworICAgIHVwZGF0ZUNsaXBwaW5nTWFz
a0xheWVycyhmYWxzZSk7CiAgICAgdXBkYXRlU2Nyb2xsaW5nTGF5ZXJzKGZhbHNlKTsKICAgICBk
ZXRhY2hGcm9tU2Nyb2xsaW5nQ29vcmRpbmF0b3IoKTsKICAgICBkZXN0cm95R3JhcGhpY3NMYXll
cnMoKTsKQEAgLTM0OCw2ICszNDksNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6ZGVzdHJv
eUdyYXBoaWNzTGF5ZXJzKCkKICAgICBtX2JhY2tncm91bmRMYXllciA9IG51bGxwdHI7CiAgICAg
bV9jaGlsZENvbnRhaW5tZW50TGF5ZXIgPSBudWxscHRyOwogICAgIG1fbWFza0xheWVyID0gbnVs
bHB0cjsKKyAgICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIgPSBudWxscHRyOwogCiAgICAgbV9z
Y3JvbGxpbmdMYXllciA9IG51bGxwdHI7CiAgICAgbV9zY3JvbGxpbmdDb250ZW50c0xheWVyID0g
bnVsbHB0cjsKQEAgLTU2OSw2ICs1NzEsMTUgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnVw
ZGF0ZUNvbmZpZ3VyYXRpb24oKQogCiAgICAgdXBkYXRlTWFza0xheWVyKHJlbmRlcmVyKCkuaGFz
TWFzaygpKTsKIAorICAgIGJvb2wgaGFzQ2hpbGRDbGlwcGluZ0xheWVyID0gbmVlZHNEZXNjZW5k
ZW50c0NsaXBwaW5nTGF5ZXIgJiYgKGhhc0NsaXBwaW5nTGF5ZXIoKSB8fCBoYXNTY3JvbGxpbmdM
YXllcigpKTsKKyAgICBib29sIG5lZWRzQ2hpbGRDbGlwcGluZ01hc2sgPSAocmVuZGVyZXIoKS5z
dHlsZSgpLmNsaXBQYXRoKCkgfHwgcmVuZGVyZXIoKS5zdHlsZSgpLmhhc0JvcmRlclJhZGl1cygp
KSAmJiBoYXNDaGlsZENsaXBwaW5nTGF5ZXI7CisgICAgaWYgKHVwZGF0ZUNsaXBwaW5nTWFza0xh
eWVycyhuZWVkc0NoaWxkQ2xpcHBpbmdNYXNrKSkgeworICAgICAgICBpZiAoaGFzQ2xpcHBpbmdM
YXllcigpKQorICAgICAgICAgICAgY2xpcHBpbmdMYXllcigpLT5zZXRNYXNrTGF5ZXIobV9jaGls
ZENsaXBwaW5nTWFza0xheWVyLmdldCgpKTsKKyAgICAgICAgZWxzZSBpZiAoaGFzU2Nyb2xsaW5n
TGF5ZXIoKSkKKyAgICAgICAgICAgIHNjcm9sbGluZ0xheWVyKCktPnNldE1hc2tMYXllcihtX2No
aWxkQ2xpcHBpbmdNYXNrTGF5ZXIuZ2V0KCkpOworICAgIH0KKwogICAgIGlmIChtX293bmluZ0xh
eWVyLmhhc1JlZmxlY3Rpb24oKSkgewogICAgICAgICBpZiAobV9vd25pbmdMYXllci5yZWZsZWN0
aW9uTGF5ZXIoKS0+YmFja2luZygpKSB7CiAgICAgICAgICAgICBHcmFwaGljc0xheWVyKiByZWZs
ZWN0aW9uTGF5ZXIgPSBtX293bmluZ0xheWVyLnJlZmxlY3Rpb25MYXllcigpLT5iYWNraW5nKCkt
PmdyYXBoaWNzTGF5ZXIoKTsKQEAgLTgxNCw2ICs4MjUsMTIgQEAgdm9pZCBSZW5kZXJMYXllckJh
Y2tpbmc6OnVwZGF0ZUdlb21ldHJ5KCkKICAgICAgICAgY2xpcExheWVyLT5zZXRQb3NpdGlvbihG
bG9hdFBvaW50KGNsaXBwaW5nQm94LmxvY2F0aW9uKCkgLSBsb2NhbENvbXBvc2l0aW5nQm91bmRz
LmxvY2F0aW9uKCkpKTsKICAgICAgICAgY2xpcExheWVyLT5zZXRTaXplKGNsaXBwaW5nQm94LnNp
emUoKSk7CiAgICAgICAgIGNsaXBMYXllci0+c2V0T2Zmc2V0RnJvbVJlbmRlcmVyKHRvRmxvYXRT
aXplKGNsaXBwaW5nQm94LmxvY2F0aW9uKCkpKTsKKworICAgICAgICBpZiAobV9jaGlsZENsaXBw
aW5nTWFza0xheWVyICYmICFtX3Njcm9sbGluZ0xheWVyKSB7CisgICAgICAgICAgICBtX2NoaWxk
Q2xpcHBpbmdNYXNrTGF5ZXItPnNldFBvc2l0aW9uKGNsaXBMYXllci0+cG9zaXRpb24oKSk7Cisg
ICAgICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPnNldFNpemUoY2xpcExheWVyLT5z
aXplKCkpOworICAgICAgICAgICAgbV9jaGlsZENsaXBwaW5nTWFza0xheWVyLT5zZXRPZmZzZXRG
cm9tUmVuZGVyZXIoY2xpcExheWVyLT5vZmZzZXRGcm9tUmVuZGVyZXIoKSk7CisgICAgICAgIH0K
ICAgICB9CiAgICAgCiAgICAgaWYgKG1fbWFza0xheWVyKSB7CkBAIC05NDIsNiArOTU5LDEyIEBA
IHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHZW9tZXRyeSgpCiAgICAgICAgIEZsb2F0
U2l6ZSBvbGRTY3JvbGxpbmdMYXllck9mZnNldCA9IG1fc2Nyb2xsaW5nTGF5ZXItPm9mZnNldEZy
b21SZW5kZXJlcigpOwogICAgICAgICBtX3Njcm9sbGluZ0xheWVyLT5zZXRPZmZzZXRGcm9tUmVu
ZGVyZXIoLXRvRmxvYXRTaXplKHBhZGRpbmdCb3gubG9jYXRpb24oKSkpOwogCisgICAgICAgIGlm
IChtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIpIHsKKyAgICAgICAgICAgIG1fY2hpbGRDbGlwcGlu
Z01hc2tMYXllci0+c2V0UG9zaXRpb24obV9zY3JvbGxpbmdMYXllci0+cG9zaXRpb24oKSk7Cisg
ICAgICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPnNldFNpemUobV9zY3JvbGxpbmdM
YXllci0+c2l6ZSgpKTsKKyAgICAgICAgICAgIG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci0+c2V0
T2Zmc2V0RnJvbVJlbmRlcmVyKHRvRmxvYXRTaXplKHBhZGRpbmdCb3gubG9jYXRpb24oKSkpOwor
ICAgICAgICB9CisKICAgICAgICAgYm9vbCBwYWRkaW5nQm94T2Zmc2V0Q2hhbmdlZCA9IG9sZFNj
cm9sbGluZ0xheWVyT2Zmc2V0ICE9IG1fc2Nyb2xsaW5nTGF5ZXItPm9mZnNldEZyb21SZW5kZXJl
cigpOwogCiAgICAgICAgIEludFNpemUgc2Nyb2xsU2l6ZShtX293bmluZ0xheWVyLnNjcm9sbFdp
ZHRoKCksIG1fb3duaW5nTGF5ZXIuc2Nyb2xsSGVpZ2h0KCkpOwpAQCAtMTQxNCw2ICsxNDM3LDI0
IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVNYXNrTGF5ZXIoYm9vbCBuZWVkc01h
c2tMYXllcikKICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRQYWludGluZ1BoYXNlKHBhaW50
aW5nUGhhc2VGb3JQcmltYXJ5TGF5ZXIoKSk7CiB9CiAKK2Jvb2wgUmVuZGVyTGF5ZXJCYWNraW5n
Ojp1cGRhdGVDbGlwcGluZ01hc2tMYXllcnMoYm9vbCBuZWVkc0NoaWxkQ2xpcHBpbmdNYXNrTGF5
ZXIpCit7CisgICAgYm9vbCBsYXllckNoYW5nZWQgPSBmYWxzZTsKKyAgICBpZiAobmVlZHNDaGls
ZENsaXBwaW5nTWFza0xheWVyKSB7CisgICAgICAgIGlmICghbV9jaGlsZENsaXBwaW5nTWFza0xh
eWVyKSB7CisgICAgICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIgPSBjcmVhdGVHcmFw
aGljc0xheWVyKCJDaGlsZCBDbGlwcGluZyBNYXNrIExheWVyIik7CisgICAgICAgICAgICBtX2No
aWxkQ2xpcHBpbmdNYXNrTGF5ZXItPnNldERyYXdzQ29udGVudCh0cnVlKTsKKyAgICAgICAgICAg
IG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci0+c2V0UGFpbnRpbmdQaGFzZShHcmFwaGljc0xheWVy
UGFpbnRDaGlsZENsaXBwaW5nTWFzayk7CisgICAgICAgICAgICBsYXllckNoYW5nZWQgPSB0cnVl
OworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIpIHsK
KyAgICAgICAgbV9jaGlsZENsaXBwaW5nTWFza0xheWVyID0gbnVsbHB0cjsKKyAgICAgICAgbGF5
ZXJDaGFuZ2VkID0gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gbGF5ZXJDaGFuZ2VkOworfQor
CiBib29sIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlU2Nyb2xsaW5nTGF5ZXJzKGJvb2wgbmVl
ZHNTY3JvbGxpbmdMYXllcnMpCiB7CiAgICAgaWYgKG5lZWRzU2Nyb2xsaW5nTGF5ZXJzID09ICEh
bV9zY3JvbGxpbmdMYXllcikKQEAgLTIwNjUsNiArMjEwNiw5IEBAIHZvaWQgUmVuZGVyTGF5ZXJC
YWNraW5nOjpzZXRDb250ZW50c05lZWREaXNwbGF5KEdyYXBoaWNzTGF5ZXI6OlNob3VsZENsaXBU
b0xheWVyCiAgICAgaWYgKG1fbWFza0xheWVyICYmIG1fbWFza0xheWVyLT5kcmF3c0NvbnRlbnQo
KSkKICAgICAgICAgbV9tYXNrTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwogCisgICAgaWYgKG1f
Y2hpbGRDbGlwcGluZ01hc2tMYXllciAmJiBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPmRyYXdz
Q29udGVudCgpKQorICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPnNldE5lZWRzRGlz
cGxheSgpOworCiAgICAgaWYgKG1fc2Nyb2xsaW5nQ29udGVudHNMYXllciAmJiBtX3Njcm9sbGlu
Z0NvbnRlbnRzTGF5ZXItPmRyYXdzQ29udGVudCgpKQogICAgICAgICBtX3Njcm9sbGluZ0NvbnRl
bnRzTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwogfQpAQCAtMjEwNCw2ICsyMTQ4LDEyIEBAIHZv
aWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpzZXRDb250ZW50c05lZWREaXNwbGF5SW5SZWN0KGNvbnN0
IExheW91dFJlY3QmIHIsIEdyYXBoCiAgICAgICAgIG1fbWFza0xheWVyLT5zZXROZWVkc0Rpc3Bs
YXlJblJlY3QobGF5ZXJEaXJ0eVJlY3QsIHNob3VsZENsaXApOwogICAgIH0KIAorICAgIGlmICht
X2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIgJiYgbV9jaGlsZENsaXBwaW5nTWFza0xheWVyLT5kcmF3
c0NvbnRlbnQoKSkgeworICAgICAgICBGbG9hdFJlY3QgbGF5ZXJEaXJ0eVJlY3QgPSByOworICAg
ICAgICBsYXllckRpcnR5UmVjdC5tb3ZlKC1tX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPm9mZnNl
dEZyb21SZW5kZXJlcigpKTsKKyAgICAgICAgbV9jaGlsZENsaXBwaW5nTWFza0xheWVyLT5zZXRO
ZWVkc0Rpc3BsYXlJblJlY3QobGF5ZXJEaXJ0eVJlY3QpOworICAgIH0KKwogICAgIGlmIChtX3Nj
cm9sbGluZ0NvbnRlbnRzTGF5ZXIgJiYgbV9zY3JvbGxpbmdDb250ZW50c0xheWVyLT5kcmF3c0Nv
bnRlbnQoKSkgewogICAgICAgICBGbG9hdFJlY3QgbGF5ZXJEaXJ0eVJlY3QgPSBwaXhlbFNuYXBw
ZWRSZWN0Rm9yUGFpbnRpbmc7CiAgICAgICAgIGxheWVyRGlydHlSZWN0Lm1vdmUoLW1fc2Nyb2xs
aW5nQ29udGVudHNMYXllci0+b2Zmc2V0RnJvbVJlbmRlcmVyKCkgKyBtX2RldmljZVBpeGVsRnJh
Y3Rpb25Gcm9tUmVuZGVyZXIpOwpAQCAtMjEzOCw2ICsyMTg4LDggQEAgdm9pZCBSZW5kZXJMYXll
ckJhY2tpbmc6OnBhaW50SW50b0xheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5
ZXIsIEdyYXAKICAgICAgICAgcGFpbnRGbGFncyB8PSBSZW5kZXJMYXllcjo6UGFpbnRMYXllclBh
aW50aW5nQ29tcG9zaXRpbmdGb3JlZ3JvdW5kUGhhc2U7CiAgICAgaWYgKHBhaW50aW5nUGhhc2Ug
JiBHcmFwaGljc0xheWVyUGFpbnRNYXNrKQogICAgICAgICBwYWludEZsYWdzIHw9IFJlbmRlckxh
eWVyOjpQYWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ01hc2tQaGFzZTsKKyAgICBpZiAocGFp
bnRpbmdQaGFzZSAmIEdyYXBoaWNzTGF5ZXJQYWludENoaWxkQ2xpcHBpbmdNYXNrKQorICAgICAg
ICBwYWludEZsYWdzIHw9IFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRpbmdDaGlsZENsaXBw
aW5nTWFza1BoYXNlOwogICAgIGlmIChwYWludGluZ1BoYXNlICYgR3JhcGhpY3NMYXllclBhaW50
T3ZlcmZsb3dDb250ZW50cykKICAgICAgICAgcGFpbnRGbGFncyB8PSBSZW5kZXJMYXllcjo6UGFp
bnRMYXllclBhaW50aW5nT3ZlcmZsb3dDb250ZW50czsKICAgICBpZiAocGFpbnRpbmdQaGFzZSAm
IEdyYXBoaWNzTGF5ZXJQYWludENvbXBvc2l0ZWRTY3JvbGwpCkBAIC0yMjAyLDYgKzIyNTQsNyBA
QCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xh
eWVyKiBncmFwaGljc0xheWVyLCBHcmFwaAogICAgICAgICB8fCBncmFwaGljc0xheWVyID09IG1f
Zm9yZWdyb3VuZExheWVyLmdldCgpCiAgICAgICAgIHx8IGdyYXBoaWNzTGF5ZXIgPT0gbV9iYWNr
Z3JvdW5kTGF5ZXIuZ2V0KCkKICAgICAgICAgfHwgZ3JhcGhpY3NMYXllciA9PSBtX21hc2tMYXll
ci5nZXQoKQorICAgICAgICB8fCBncmFwaGljc0xheWVyID09IG1fY2hpbGRDbGlwcGluZ01hc2tM
YXllci5nZXQoKQogICAgICAgICB8fCBncmFwaGljc0xheWVyID09IG1fc2Nyb2xsaW5nQ29udGVu
dHNMYXllci5nZXQoKSkgewogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxQ
YWludCgmcmVuZGVyZXIoKSk7CiAKQEAgLTI1NzgsNiArMjYzMSw4IEBAIGRvdWJsZSBSZW5kZXJM
YXllckJhY2tpbmc6OmJhY2tpbmdTdG9yZU1lbW9yeUVzdGltYXRlKCkgY29uc3QKICAgICAgICAg
YmFja2luZ01lbW9yeSArPSBtX2JhY2tncm91bmRMYXllci0+YmFja2luZ1N0b3JlTWVtb3J5RXN0
aW1hdGUoKTsKICAgICBpZiAobV9tYXNrTGF5ZXIpCiAgICAgICAgIGJhY2tpbmdNZW1vcnkgKz0g
bV9tYXNrTGF5ZXItPmJhY2tpbmdTdG9yZU1lbW9yeUVzdGltYXRlKCk7CisgICAgaWYgKG1fY2hp
bGRDbGlwcGluZ01hc2tMYXllcikKKyAgICAgICAgYmFja2luZ01lbW9yeSArPSBtX2NoaWxkQ2xp
cHBpbmdNYXNrTGF5ZXItPmJhY2tpbmdTdG9yZU1lbW9yeUVzdGltYXRlKCk7CiAKICAgICBpZiAo
bV9zY3JvbGxpbmdDb250ZW50c0xheWVyKQogICAgICAgICBiYWNraW5nTWVtb3J5ICs9IG1fc2Ny
b2xsaW5nQ29udGVudHNMYXllci0+YmFja2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAppbmRleCBjY2JiZjVl
NmRiN2E0YzQ4ZTUyODU0MmE5MTgzMjdkMjdlMGMzMGZiLi44ZTdhYzdiMzEzNmI3OWYxN2Q2NjM1
MTgxMmU0NWY3ODdkMGI2YjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5oCkBAIC0xMzksNiArMTM5LDcgQEAgcHVibGljOgogICAgIFNjcm9sbGlu
Z05vZGVJRCBzY3JvbGxpbmdOb2RlSURGb3JDaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Ny
b2xsaW5nTm9kZUlEID8gbV9zY3JvbGxpbmdOb2RlSUQgOiBtX3ZpZXdwb3J0Q29uc3RyYWluZWRO
b2RlSUQ7IH0KIAogICAgIGJvb2wgaGFzTWFza0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9tYXNr
TGF5ZXIgIT0gMDsgfQorICAgIGJvb2wgaGFzQ2hpbGRDbGlwcGluZ01hc2tMYXllcigpIGNvbnN0
IHsgcmV0dXJuIG1fY2hpbGRDbGlwcGluZ01hc2tMYXllciAhPSBudWxscHRyOyB9CiAKICAgICBH
cmFwaGljc0xheWVyKiBwYXJlbnRGb3JTdWJsYXllcnMoKSBjb25zdDsKICAgICBHcmFwaGljc0xh
eWVyKiBjaGlsZEZvclN1cGVybGF5ZXJzKCkgY29uc3Q7CkBAIC0yNjMsNiArMjY0LDcgQEAgcHJp
dmF0ZToKICAgICBib29sIHVwZGF0ZUZvcmVncm91bmRMYXllcihib29sIG5lZWRzRm9yZWdyb3Vu
ZExheWVyKTsKICAgICBib29sIHVwZGF0ZUJhY2tncm91bmRMYXllcihib29sIG5lZWRzQmFja2dy
b3VuZExheWVyKTsKICAgICB2b2lkIHVwZGF0ZU1hc2tMYXllcihib29sIG5lZWRzTWFza0xheWVy
KTsKKyAgICBib29sIHVwZGF0ZUNsaXBwaW5nTWFza0xheWVycyhib29sIG5lZWRzQ2hpbGRDbGlw
cGluZ01hc2tMYXllcik7CiAgICAgYm9vbCByZXF1aXJlc0hvcml6b250YWxTY3JvbGxiYXJMYXll
cigpIGNvbnN0OwogICAgIGJvb2wgcmVxdWlyZXNWZXJ0aWNhbFNjcm9sbGJhckxheWVyKCkgY29u
c3Q7CiAgICAgYm9vbCByZXF1aXJlc1Njcm9sbENvcm5lckxheWVyKCkgY29uc3Q7CkBAIC0zMzUs
NiArMzM3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4g
bV9iYWNrZ3JvdW5kTGF5ZXI7IC8vIE9ubHkgdXNlZCBpbiBjYXNlcyB3aGVyZSB3ZSBuZWVkIHRv
IGRyYXcgdGhlIGJhY2tncm91bmQgc2VwYXJhdGVseS4KICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3Jh
cGhpY3NMYXllcj4gbV9jaGlsZENvbnRhaW5tZW50TGF5ZXI7IC8vIE9ubHkgdXNlZCBpZiB3ZSBo
YXZlIGNsaXBwaW5nIG9uIGEgc3RhY2tpbmcgY29udGV4dCB3aXRoIGNvbXBvc2l0aW5nIGNoaWxk
cmVuLCBvciBpZiB0aGUgbGF5ZXIgaGFzIGEgdGlsZSBjYWNoZS4KICAgICBzdGQ6OnVuaXF1ZV9w
dHI8R3JhcGhpY3NMYXllcj4gbV9tYXNrTGF5ZXI7IC8vIE9ubHkgdXNlZCBpZiB3ZSBoYXZlIGEg
bWFzay4KKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9jaGlsZENsaXBwaW5n
TWFza0xheWVyOyAvLyBPbmx5IHVzZWQgaWYgd2UgaGF2ZSB0byBjbGlwIGNoaWxkIGxheWVycyBv
ciBhY2NlbGVyYXRlZCBjb250ZW50cyB3aXRoIGJvcmRlciByYWRpdXMgb3IgY2xpcC1wYXRoLgog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fbGF5ZXJGb3JIb3Jpem9udGFs
U2Nyb2xsYmFyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9y
VmVydGljYWxTY3JvbGxiYXI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243292</attachid>
            <date>2014-12-15 06:29:28 -0800</date>
            <delta_ts>2014-12-15 06:52:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138551-20141215163018.patch</filename>
            <type>text/plain</type>
            <size>24746</size>
            <attacher name="Byungseon(Sun) Shin">sun.shin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3Mjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzg5ZDcxY2FjZWEwOGQy
MDRhNTgyNWNjMzY1ZjliM2RmNmUwYmU4MS4uY2E0ZGNkZjFlYTMxNTgwODA0OGY3MDExNGY2MzRl
YmNiYzY0NTIzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE0LTEyLTE1ICBCeXVu
Z3Nlb24gU2hpbiAgPHN1bi5zaGluQGxnZS5jb20+CisKKyAgICAgICAgRml4IEJvcmRlci1yYWRp
dXMgY2xpcHBpbmcgaXNzdWUgb24gYSBjb21wb3NpdGVkIGRlY2VuZGVudAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NTUxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGNsaXBwaW5nIGNvbXBvc2l0
aW5nIGRlY2VuZGVudHMgb2YgYW4gYWNjZWxlcmF0ZWQgbGF5ZXIgaGF2aW5nIAorICAgICAgICBi
b3JkZXIgcmFkaXVzIGFuZCBjbGlwIG92ZXJmbG93IGlzc3VlIGJ5IHVzaW5nIGxheWVyIGNvcm5l
ci1yYWRpdXMgb24gTWFjLAorICAgICAgICBhbmQgc2V0dGluZyB1cCBhIG1hc2sgb24gb3RoZXIg
cGxhdGZvcm1zIG9uIHRoZSBjaGlsZENvbnRhaW5tZW50TGF5ZXIuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBpcyBleHRyYWN0ZWQgZnJvbSBmb2xsb3dpbmcgQmxpbmsgcmV2aXNpb25zOgorICAgICAg
ICA8aHR0cDovL3NyYy5jaHJvbWl1bS5vcmcvdmlld3ZjL2JsaW5rP3ZpZXc9cmV2aXNpb24mcmV2
aXNpb249MTYyNDYzPiAKKyAgICAgICAgPGh0dHA6Ly9zcmMuY2hyb21pdW0ub3JnL3ZpZXd2Yy9i
bGluaz92aWV3PXJldmlzaW9uJnJldmlzaW9uPTE1ODI1OD4KKyAgICAgICAgYnkgPHJvc2NhQGFk
b2JlLmNvbT4KKworICAgICAgICBDbGlwIGFjY2VsZXJhdGVkIGRlc2NlbmRhbnRzIG9mIGFuIGFj
Y2VsZXJhdGVkIGxheWVyIGhhdmluZyBib3JkZXIgcmFkaXVzIGFuZCBjbGlwIG92ZXJmbG93Lgor
ICAgICAgICBMYXJnZSBjYW52YXMgZG9lcyBub3QgaG9ub3IgY29udGFpbmluZyBkaXYncyBib3Jk
ZXIgcmFkaXVzLgorCisgICAgICAgIGFuZCA8aHR0cDovL3NyYy5jaHJvbWl1bS5vcmcvdmlld3Zj
L2JsaW5rP3ZpZXc9cmV2aXNpb24mcmV2aXNpb249MTYwNTc4PgorICAgICAgICBieSA8anVub3ZA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIEZpeCBmb3IgQ1NTIGNsaXAtcGF0aCB3aXRoIGFjY2Vs
ZXJhdGVkIDJEIGNhbnZhcy4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NMYXllcjo6ZHVtcFByb3BlcnRpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmFw
cGx5Q2xpcHBpbmdCb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6Y2xl
YXJDbGlwcGluZ0JvcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpuZWVk
c0NsaXBwaW5nTWFza0xheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NM
YXllckNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6YXBwbHlDbGlw
cGluZ0JvcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNsZWFyQ2xp
cHBpbmdCb3JkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5oOgorICAgICAgICAqIHJlbmRlcmluZy9QYWludFBoYXNlLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpw
YWludE9iamVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCb3g6OnBhaW50Q2xpcHBpbmdNYXNrKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludExheWVyQ29udGVudHMpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnBhaW50Q2hpbGRDbGlwcGluZ01hc2tGb3JGcmFn
bWVudHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJCYWNraW5nOjp+UmVuZGVyTGF5ZXJCYWNraW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyQmFja2luZzo6ZGVzdHJveUdyYXBoaWNzTGF5ZXJzKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlQ29uZmlndXJhdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdlb21ldHJ5KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlQ2hpbGRDbGlwcGluZ1N0cmF0ZWd5KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6c2V0Q29udGVudHNOZWVkRGlz
cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnNldENvbnRlbnRz
TmVlZERpc3BsYXlJblJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5n
OjpwYWludEludG9MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6
OnBhaW50Q29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpi
YWNraW5nU3RvcmVNZW1vcnlFc3RpbWF0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5oOgorCiAyMDE0LTEyLTE1ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1A
c2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0dUS10gUmVtb3ZlIEdhbWVwYWREZXZpY2VHdGs6OmNy
ZWF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDMxZDdmYzAxY2ZhNzhmY2IyMzJjNDllMTg4
ZDM0MDg5NTZmMjJmMGMuLmFiOTg0NGViYjdkNjQxNDg5ZDhiN2Q2OTI3ZjA2NWY3MDczYzc0ZDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC01OTMsNiArNTkzLDggQEAgX19aTjdXZWJDb3JlMTVH
cmFwaGljc0xheWVyQ0ExOHNldENvbnRlbnRzVmlzaWJsZUViCiBfX1pON1dlYkNvcmUxNUdyYXBo
aWNzTGF5ZXJDQTE4c2V0T3BhY2l0eUludGVybmFsRWYKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NM
YXllckNBMThzZXRSZXBsaWNhdGVkTGF5ZXJFUE5TXzEzR3JhcGhpY3NMYXllckUKIF9fWk43V2Vi
Q29yZTE1R3JhcGhpY3NMYXllckNBMThzZXRTaG93RGVidWdCb3JkZXJFYgorX19aTjdXZWJDb3Jl
MTVHcmFwaGljc0xheWVyQ0ExOWFwcGx5Q2xpcHBpbmdCb3JkZXJFUktOU18xNkZsb2F0Um91bmRl
ZFJlY3RFCitfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE5Y2xlYXJDbGlwcGluZ0JvcmRl
ckV2CiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE5c2V0Q3VzdG9tQXBwZWFyYW5jZUVO
U18xM0dyYXBoaWNzTGF5ZXIxNkN1c3RvbUFwcGVhcmFuY2VFCiBfX1pON1dlYkNvcmUxNUdyYXBo
aWNzTGF5ZXJDQTIwc2V0Q2hpbGRyZW5UcmFuc2Zvcm1FUktOU18yMFRyYW5zZm9ybWF0aW9uTWF0
cml4RQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0EyMHNldFJlcGxpY2F0ZWRCeUxheWVy
RVBOU18xM0dyYXBoaWNzTGF5ZXJFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDYyZDI1MTYzZGQyOTBmMjY4M2EyYjM0Nzk2
Yzk5MDkyN2ViMzlmOTkuLmQ2Mjg4Yjc2ZGU5NjIxYmZhYmVkZjRiNzMzM2U0NTI4OWUwZmNlNTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuY3BwCkBAIC03NjEsNiArNzYxLDEwIEBAIHZvaWQgR3JhcGhpY3NMYXllcjo6ZHVtcFByb3Bl
cnRpZXMoVGV4dFN0cmVhbSYgdHMsIGludCBpbmRlbnQsIExheWVyVHJlZUFzVGV4dEJlCiAgICAg
ICAgICAgICB3cml0ZUluZGVudCh0cywgaW5kZW50ICsgMik7CiAgICAgICAgICAgICB0cyA8PCAi
R3JhcGhpY3NMYXllclBhaW50TWFza1xuIjsKICAgICAgICAgfQorICAgICAgICBpZiAocGFpbnRp
bmdQaGFzZSgpICYgR3JhcGhpY3NMYXllclBhaW50Q2hpbGRDbGlwcGluZ01hc2spIHsKKyAgICAg
ICAgICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQgKyAyKTsKKyAgICAgICAgICAgIHRzIDw8ICJH
cmFwaGljc0xheWVyUGFpbnRDaGlsZENsaXBwaW5nTWFza1xuIjsKKyAgICAgICAgfQogICAgICAg
ICBpZiAocGFpbnRpbmdQaGFzZSgpICYgR3JhcGhpY3NMYXllclBhaW50T3ZlcmZsb3dDb250ZW50
cykgewogICAgICAgICAgICAgd3JpdGVJbmRlbnQodHMsIGluZGVudCArIDIpOwogICAgICAgICAg
ICAgdHMgPDwgIkdyYXBoaWNzTGF5ZXJQYWludE92ZXJmbG93Q29udGVudHNcbiI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXggODMz
MzMyMjBjYzI5MjdmOTU4MzA1YjZkNzJjODVjYTBiMTIxMDc5NS4uNzM3MTNmMjJmMDk2NWMxZTE1
NDA2NmEwNDdmMTFkOGU2NDVhNDU4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApAQCAtMzcwLDYgKzM3MCw5IEBAIHB1YmxpYzoKICAg
ICBGbG9hdFJvdW5kZWRSZWN0IGNvbnRlbnRzQ2xpcHBpbmdSZWN0KCkgY29uc3QgeyByZXR1cm4g
bV9jb250ZW50c0NsaXBwaW5nUmVjdDsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c0Ns
aXBwaW5nUmVjdChjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByb3VuZGVkUmVjdCkgeyBtX2NvbnRl
bnRzQ2xpcHBpbmdSZWN0ID0gcm91bmRlZFJlY3Q7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBhcHBs
eUNsaXBwaW5nQm9yZGVyKGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmKSB7IHJldHVybiBmYWxzZTsg
fQorICAgIHZpcnR1YWwgdm9pZCBjbGVhckNsaXBwaW5nQm9yZGVyKCkgeyByZXR1cm47IH0KKwog
ICAgIC8vIFRyYW5zaXRpb25zIGFyZSBpZGVudGlmaWVkIGJ5IGEgc3BlY2lhbCBhbmltYXRpb24g
bmFtZSB0aGF0IGNhbm5vdCBjbGFzaCB3aXRoIGEga2V5ZnJhbWUgaWRlbnRpZmllci4KICAgICBz
dGF0aWMgU3RyaW5nIGFuaW1hdGlvbk5hbWVGb3JUcmFuc2l0aW9uKEFuaW1hdGVkUHJvcGVydHlJ
RCk7CiAgICAgCkBAIC01MDAsNiArNTAzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBp
c0dyYXBoaWNzTGF5ZXJDQVJlbW90ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCBib29sIGlzR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogCisgICAgdmlydHVhbCBib29sIG5lZWRzQ2xpcHBpbmdNYXNrTGF5ZXIoKSB7IHJl
dHVybiB0cnVlOyB9OworCiBwcm90ZWN0ZWQ6CiAgICAgLy8gU2hvdWxkIGJlIGNhbGxlZCBmcm9t
IGRlcml2ZWQgY2xhc3MgZGVzdHJ1Y3RvcnMuIFNob3VsZCBjYWxsIHdpbGxCZURlc3Ryb3llZCgp
IG9uIHN1cGVyLgogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95
ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXJDbGllbnQuaAppbmRleCBiNDVkZjFjODcwYTA0MWZhMjFmOWJkZGI1ZmRjNWYxYzFl
YzQwOGQzLi4xZDlhZTFjMTY2NjIxYzdlYWI3Zjk2YjgwMWJmMzJkYzU5ODMwZjdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNs
aWVudC5oCkBAIC00NCw2ICs0NCw3IEBAIGVudW0gR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2VG
bGFncyB7CiAgICAgR3JhcGhpY3NMYXllclBhaW50TWFzayA9ICgxIDw8IDIpLAogICAgIEdyYXBo
aWNzTGF5ZXJQYWludE92ZXJmbG93Q29udGVudHMgPSAoMSA8PCAzKSwKICAgICBHcmFwaGljc0xh
eWVyUGFpbnRDb21wb3NpdGVkU2Nyb2xsID0gKDEgPDwgNCksCisgICAgR3JhcGhpY3NMYXllclBh
aW50Q2hpbGRDbGlwcGluZ01hc2sgPSAoMSA8PCA1KSwKICAgICBHcmFwaGljc0xheWVyUGFpbnRB
bGxXaXRoT3ZlcmZsb3dDbGlwID0gKEdyYXBoaWNzTGF5ZXJQYWludEJhY2tncm91bmQgfCBHcmFw
aGljc0xheWVyUGFpbnRGb3JlZ3JvdW5kIHwgR3JhcGhpY3NMYXllclBhaW50TWFzaykKIH07CiB0
eXBlZGVmIHVuc2lnbmVkIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAK
aW5kZXggYTA1MTdjZjExMTM3YWYwMmIzYTg2YjhlZDM5NmU3MzNkNjJlZmM3NS4uNDMzYzBkYmVi
MzU0MzhkNTY3ZWEwYjFjOTNjZjUyMzkzYmE3MjE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC0yMDIx
LDYgKzIwMjEsMjUgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzQ29sb3JM
YXllcigpCiAgICAgfQogfQogCitib29sIEdyYXBoaWNzTGF5ZXJDQTo6YXBwbHlDbGlwcGluZ0Jv
cmRlcihjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByb3VuZGVkUmVjdCkKK3sKKyAgICBpZiAocm91
bmRlZFJlY3QucmFkaWkoKS5pc1VuaWZvcm1Db3JuZXJSYWRpdXMoKSkgeworICAgICAgICBtX2xh
eWVyLT5zZXRNYXNrKG51bGxwdHIpOworICAgICAgICBtX2xheWVyLT5zZXRNYXNrc1RvQm91bmRz
KHRydWUpOworICAgICAgICBtX2xheWVyLT5zZXRDb3JuZXJSYWRpdXMocm91bmRlZFJlY3QucmFk
aWkoKS50b3BMZWZ0KCkud2lkdGgoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwor
ICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBHcmFwaGljc0xheWVyQ0E6OmNsZWFyQ2xpcHBp
bmdCb3JkZXIoKQoreworICAgIG1fbGF5ZXItPnNldENvcm5lclJhZGl1cygwKTsKKyAgICBtX2xh
eWVyLT5zZXRNYXNrc1RvQm91bmRzKGZhbHNlKTsKKyAgICBtX2xheWVyLT5zZXRNYXNrKG51bGxw
dHIpOworfQorCiAvLyBUaGUgY2xpcHBpbmcgc3RyYXRlZ3kgZGVwZW5kcyBvbiB3aGV0aGVyIHRo
ZSByb3VuZGVkIHJlY3QgaGFzIGVxdWFsIGNvcm5lciByYWRpaS4KIHZvaWQgR3JhcGhpY3NMYXll
ckNBOjp1cGRhdGVDbGlwcGluZ1N0cmF0ZWd5KFBsYXRmb3JtQ0FMYXllciYgY2xpcHBpbmdMYXll
ciwgUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4mIHNoYXBlTWFza0xheWVyLCBjb25zdCBGbG9hdFJv
dW5kZWRSZWN0JiByb3VuZGVkUmVjdCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKaW5kZXggODQyNDQ3Mjc0Y2VlNWZi
Yzc0ZmFmOTI1ODNjN2RkOTY0NzlmZWM0ZC4uNDk1ZjU3OGYzNmRmZDBkYmM0OGZmMzc2MGQ1ODY4
ODc2ZTZlOGM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvR3JhcGhpY3NMYXllckNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvR3JhcGhpY3NMYXllckNBLmgKQEAgLTE3Myw2ICsxNzMsOSBAQCBwcm90ZWN0ZWQ6CiBw
cml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0dyYXBoaWNzTGF5ZXJDQSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBhcHBseUNsaXBwaW5nQm9y
ZGVyKGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
Y2xlYXJDbGlwcGluZ0JvcmRlcigpIG92ZXJyaWRlOworCiAgICAgV0VCQ09SRV9FWFBPUlQgdmly
dHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlOwogCiAgICAgLy8gUGxhdGZvcm1D
QUxheWVyQ2xpZW50IG92ZXJyaWRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1BhaW50UGhhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYWludFBoYXNlLmgK
aW5kZXggMGJiZjk5YTdkMGNmNWEwOWNhODVjMzBkZjA2MWEzNmQ3Y2FjMDI2Yi4uYTQ0OGQ5MjJk
OThmNzFjODdiOWQ2Mjk2MjMxZWE0ZWE3MDM5ZWY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1BhaW50UGhhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UGFpbnRQaGFzZS5oCkBAIC00OSw3ICs0OSw4IEBAIGVudW0gUGFpbnRQaGFzZSB7CiAgICAgUGFp
bnRQaGFzZVNlbGVjdGlvbiwKICAgICBQYWludFBoYXNlQ29sbGFwc2VkVGFibGVCb3JkZXJzLAog
ICAgIFBhaW50UGhhc2VUZXh0Q2xpcCwKLSAgICBQYWludFBoYXNlTWFzaworICAgIFBhaW50UGhh
c2VNYXNrLAorICAgIFBhaW50UGhhc2VDbGlwcGluZ01hc2sKIH07CiAKIGVudW0gUGFpbnRCZWhh
dmlvckZsYWdzIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4
IDdmZTZiMGM4NGE1NDg0NzZjZDM2NGQ2ZWFjNTg1YmQ5NTkyOTVmZWQuLmVjMTA1NWVlMjdiNTJj
NGI2ZWYxNThhNjNlM2RkYWNhNDY5N2MyOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcApAQCAtMTU3Niw2ICsxNTc2LDExIEBAIHZvaWQgUmVuZGVyQmxvY2s6OnBh
aW50T2JqZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRP
ZmZzCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAocGFpbnRQaGFzZSA9PSBQYWlu
dFBoYXNlQ2xpcHBpbmdNYXNrICYmIHN0eWxlKCkudmlzaWJpbGl0eSgpID09IFZJU0lCTEUpIHsK
KyAgICAgICAgcGFpbnRDbGlwcGluZ01hc2socGFpbnRJbmZvLCBwYWludE9mZnNldCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKICAgICAvLyBJZiBqdXN0IHBhaW50aW5nIHRoZSByb290IGJh
Y2tncm91bmQsIHRoZW4gcmV0dXJuLgogICAgIGlmIChwYWludEluZm8ucGFpbnRSb290QmFja2dy
b3VuZE9ubHkoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcAppbmRleCA0MmNhNzRmNGE0YzM1NjMzMGQwOWE4NzQ2YTJiMDBiYjdmM2I3OTE4Li45
MjUwM2U1YjRjYTQ5ZDcxMzgwZDVjNzkzOGY3Y2FlMGJjODFmOGM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMTQ4MCw2ICsxNDgwLDE1IEBAIHZvaWQgUmVuZGVy
Qm94OjpwYWludE1hc2soUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBw
YWludE9mZnNldCkKICAgICBwYWludE1hc2tJbWFnZXMocGFpbnRJbmZvLCBwYWludFJlY3QpOwog
fQogCit2b2lkIFJlbmRlckJveDo6cGFpbnRDbGlwcGluZ01hc2soUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKK3sKKyAgICBpZiAoIXBhaW50SW5m
by5zaG91bGRQYWludFdpdGhpblJvb3QoKnRoaXMpIHx8IHN0eWxlKCkudmlzaWJpbGl0eSgpICE9
IFZJU0lCTEUgfHwgcGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhhc2VDbGlwcGluZ01hc2sgfHwg
cGFpbnRJbmZvLmNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgTGF5b3V0UmVjdCBwYWludFJlY3QgPSBMYXlvdXRSZWN0KHBhaW50T2Zmc2V0LCBzaXpl
KCkpOworICAgIHBhaW50SW5mby5jb250ZXh0LT5maWxsUmVjdChzbmFwcGVkSW50UmVjdChwYWlu
dFJlY3QpLCBDb2xvcjo6YmxhY2ssIHN0eWxlKCkuY29sb3JTcGFjZSgpKTsKK30KKwogdm9pZCBS
ZW5kZXJCb3g6OnBhaW50TWFza0ltYWdlcyhjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29u
c3QgTGF5b3V0UmVjdCYgcGFpbnRSZWN0KQogewogICAgIC8vIEZpZ3VyZSBvdXQgaWYgd2UgbmVl
ZCB0byBwdXNoIGEgdHJhbnNwYXJlbmN5IGxheWVyIHRvIHJlbmRlciBvdXIgbWFzay4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBmMDZjODAzMjI4ZDZmMWQwMjk5ZThjMjI4
ZWJjZjExMjNjMjk4NDU0Li4yZjg5YmIwNDFlZDJlYzVmMjBiYWNjNzc2NDhlOWY1NDNiZjQ1M2I4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC00OTIsNiArNDkyLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwYWludE9iamVjdChQYWludEluZm8mLCBjb25zdCBM
YXlvdXRQb2ludCYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQg
cGFpbnRCb3hEZWNvcmF0aW9ucyhQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwogICAg
IHZpcnR1YWwgdm9pZCBwYWludE1hc2soUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsK
KyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDbGlwcGluZ01hc2soUGFpbnRJbmZvJiwgY29uc3QgTGF5
b3V0UG9pbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0
ciwgY29uc3QgSW50UmVjdCogPSAwKSBvdmVycmlkZTsKIAogICAgIC8vIENhbGxlZCB3aGVuIGEg
cG9zaXRpb25lZCBvYmplY3QgbW92ZXMgYnV0IGRvZXNuJ3QgbmVjZXNzYXJpbHkgY2hhbmdlIHNp
emUuICBBIHNpbXBsaWZpZWQgbGF5b3V0IGlzIGF0dGVtcHRlZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggZmY1MDllNjUxYzhlMjk0YTAyYWYwZjQ0M2ZhY2Q5
NzMwMTY2NGVjZi4uYTE0NTE2NzYyMjBjNzQwMTYxZjkxMmU5MDBkYzdkMjk5NmMwNzU3ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC00MTk1LDYgKzQxOTUs
MTEgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzKEdyYXBoaWNzQ29udGV4
dCogY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGkKICAgICAgICAgcGFpbnRNYXNrRm9yRnJhZ21l
bnRzKGxheWVyRnJhZ21lbnRzLCBjb250ZXh0LCBsb2NhbFBhaW50aW5nSW5mbywgc3VidHJlZVBh
aW50Um9vdEZvclJlbmRlcmVyKTsKICAgICB9CiAKKyAgICBpZiAoKGxvY2FsUGFpbnRGbGFncyAm
IFBhaW50TGF5ZXJQYWludGluZ0NoaWxkQ2xpcHBpbmdNYXNrUGhhc2UpICYmIHNob3VsZFBhaW50
Q29udGVudCAmJiAhc2VsZWN0aW9uT25seSkgeworICAgICAgICAvLyBQYWludCB0aGUgYm9yZGVy
IHJhZGl1cyBtYXNrIGZvciB0aGUgZnJhZ21lbnRzLgorICAgICAgICBwYWludENoaWxkQ2xpcHBp
bmdNYXNrRm9yRnJhZ21lbnRzKGxheWVyRnJhZ21lbnRzLCBjb250ZXh0LCBsb2NhbFBhaW50aW5n
SW5mbywgc3VidHJlZVBhaW50Um9vdEZvclJlbmRlcmVyKTsKKyAgICB9CisKICAgICAvLyBFbmQg
b3VyIHRyYW5zcGFyZW5jeSBsYXllcgogICAgIGlmIChoYXZlVHJhbnNwYXJlbmN5ICYmIG1fdXNl
ZFRyYW5zcGFyZW5jeSAmJiAhbV9wYWludGluZ0luc2lkZVJlZmxlY3Rpb24pIHsKICAgICAgICAg
Y29udGV4dC0+ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKQEAgLTQ2MTMsNiArNDYxOCwyNiBAQCB2
b2lkIFJlbmRlckxheWVyOjpwYWludE1hc2tGb3JGcmFnbWVudHMoY29uc3QgTGF5ZXJGcmFnbWVu
dHMmIGxheWVyRnJhZ21lbnRzLCBHcgogICAgIH0KIH0KIAordm9pZCBSZW5kZXJMYXllcjo6cGFp
bnRDaGlsZENsaXBwaW5nTWFza0ZvckZyYWdtZW50cyhjb25zdCBMYXllckZyYWdtZW50cyYgbGF5
ZXJGcmFnbWVudHMsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGlu
Z0luZm8mIGxvY2FsUGFpbnRpbmdJbmZvLAorICAgIFJlbmRlck9iamVjdCogc3VidHJlZVBhaW50
Um9vdEZvclJlbmRlcmVyKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGF5ZXJGcmFn
bWVudHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgY29uc3QgTGF5ZXJGcmFnbWVudCYgZnJhZ21l
bnQgPSBsYXllckZyYWdtZW50cy5hdChpKTsKKyAgICAgICAgaWYgKCFmcmFnbWVudC5zaG91bGRQ
YWludENvbnRlbnQpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAobG9jYWxQ
YWludGluZ0luZm8uY2xpcFRvRGlydHlSZWN0KQorICAgICAgICAgICAgY2xpcFRvUmVjdChsb2Nh
bFBhaW50aW5nSW5mbywgY29udGV4dCwgZnJhZ21lbnQuZm9yZWdyb3VuZFJlY3QsIEluY2x1ZGVT
ZWxmRm9yQm9yZGVyUmFkaXVzKTsgLy8gQ2hpbGQgY2xpcHBpbmcgbWFzayBwYWludGluZyB3aWxs
IGhhbmRsZSBjbGlwcGluZyB0byBzZWxmLgorCisgICAgICAgIC8vIFBhaW50IHRoZSBjbGlwcGVk
IG1hc2suCisgICAgICAgIFBhaW50SW5mbyBwYWludEluZm8oY29udGV4dCwgZnJhZ21lbnQuYmFj
a2dyb3VuZFJlY3QucmVjdCgpLCBQYWludFBoYXNlQ2xpcHBpbmdNYXNrLCBQYWludEJlaGF2aW9y
Tm9ybWFsLCBzdWJ0cmVlUGFpbnRSb290Rm9yUmVuZGVyZXIsIG51bGxwdHIsIG51bGxwdHIsICZs
b2NhbFBhaW50aW5nSW5mby5yb290TGF5ZXItPnJlbmRlcmVyKCkpOworICAgICAgICByZW5kZXJl
cigpLnBhaW50KHBhaW50SW5mbywgdG9MYXlvdXRQb2ludChmcmFnbWVudC5sYXllckJvdW5kcy5s
b2NhdGlvbigpIC0gcmVuZGVyQm94TG9jYXRpb24oKSArIGxvY2FsUGFpbnRpbmdJbmZvLnN1YnBp
eGVsQWNjdW11bGF0aW9uKSk7CisKKyAgICAgICAgaWYgKGxvY2FsUGFpbnRpbmdJbmZvLmNsaXBU
b0RpcnR5UmVjdCkKKyAgICAgICAgICAgIHJlc3RvcmVDbGlwKGNvbnRleHQsIGxvY2FsUGFpbnRp
bmdJbmZvLnBhaW50RGlydHlSZWN0LCBmcmFnbWVudC5mb3JlZ3JvdW5kUmVjdCk7CisgICAgfQor
fQorCiB2b2lkIFJlbmRlckxheWVyOjpwYWludE92ZXJmbG93Q29udHJvbHNGb3JGcmFnbWVudHMo
Y29uc3QgTGF5ZXJGcmFnbWVudHMmIGxheWVyRnJhZ21lbnRzLCBHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IExheWVyUGFpbnRpbmdJbmZvJiBsb2NhbFBhaW50aW5nSW5mbykKIHsKICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxheWVyRnJhZ21lbnRzLnNpemUoKTsgKytpKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDNmMTE5MDk1N2NjZTA1ZGEw
MjM3YTkwN2E3ZDgzYmMzY2Q5NjkyYjUuLjIxZmU0OGE0Y2MzMTM3YmZjNGIzOGM3MTRiNzgxZWUx
YmYzN2JjMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC02Njcs
NiArNjY3LDcgQEAgcHVibGljOgogICAgICAgICBQYWludExheWVyUGFpbnRpbmdPdmVyZmxvd0Nv
bnRlbnRzID0gMSA8PCA5LAogICAgICAgICBQYWludExheWVyUGFpbnRpbmdSb290QmFja2dyb3Vu
ZE9ubHkgPSAxIDw8IDEwLAogICAgICAgICBQYWludExheWVyUGFpbnRpbmdTa2lwUm9vdEJhY2tn
cm91bmQgPSAxIDw8IDExLAorICAgICAgICBQYWludExheWVyUGFpbnRpbmdDaGlsZENsaXBwaW5n
TWFza1BoYXNlID0gMSA8PCAxMiwKICAgICAgICAgUGFpbnRMYXllclBhaW50aW5nQ29tcG9zaXRp
bmdBbGxQaGFzZXMgPSAoUGFpbnRMYXllclBhaW50aW5nQ29tcG9zaXRpbmdCYWNrZ3JvdW5kUGhh
c2UgfCBQYWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ0ZvcmVncm91bmRQaGFzZSB8IFBhaW50
TGF5ZXJQYWludGluZ0NvbXBvc2l0aW5nTWFza1BoYXNlKQogICAgIH07CiAgICAgCkBAIC0xMDA5
LDYgKzEwMTAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFpbnRPdXRsaW5lRm9yRnJhZ21lbnRz
KGNvbnN0IExheWVyRnJhZ21lbnRzJiwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5ZXJQYWlu
dGluZ0luZm8mLCBQYWludEJlaGF2aW9yLCBSZW5kZXJPYmplY3QqIHBhaW50aW5nUm9vdEZvclJl
bmRlcmVyKTsKICAgICB2b2lkIHBhaW50T3ZlcmZsb3dDb250cm9sc0ZvckZyYWdtZW50cyhjb25z
dCBMYXllckZyYWdtZW50cyYsIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheWVyUGFpbnRpbmdJ
bmZvJik7CiAgICAgdm9pZCBwYWludE1hc2tGb3JGcmFnbWVudHMoY29uc3QgTGF5ZXJGcmFnbWVu
dHMmLCBHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXllclBhaW50aW5nSW5mbyYsIFJlbmRlck9i
amVjdCogcGFpbnRpbmdSb290Rm9yUmVuZGVyZXIpOworICAgIHZvaWQgcGFpbnRDaGlsZENsaXBw
aW5nTWFza0ZvckZyYWdtZW50cyhjb25zdCBMYXllckZyYWdtZW50cyYsIEdyYXBoaWNzQ29udGV4
dCosIGNvbnN0IExheWVyUGFpbnRpbmdJbmZvJiwgUmVuZGVyT2JqZWN0KiBwYWludGluZ1Jvb3RG
b3JSZW5kZXJlcik7CiAgICAgdm9pZCBwYWludFRyYW5zZm9ybWVkTGF5ZXJJbnRvRnJhZ21lbnRz
KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheWVyUGFpbnRpbmdJbmZvJiwgUGFpbnRMYXllckZs
YWdzKTsKIAogICAgIFJlbmRlckxheWVyKiB0cmFuc3BhcmVudFBhaW50aW5nQW5jZXN0b3IoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5k
ZXggOWJlYjRlZmNkMjlmZWMzODMzNjQ1NzIyMmM0NWRiZGEyYTNmMDM4Zi4uZjMwOWE0ODE1YTYx
OWRmMTY0YTNmMzNhYmE2ZWYwNTgzNDg5OTQyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTE0Nyw2ICsxNDcsNyBAQCBSZW5kZXJM
YXllckJhY2tpbmc6On5SZW5kZXJMYXllckJhY2tpbmcoKQogICAgIHVwZGF0ZUZvcmVncm91bmRM
YXllcihmYWxzZSk7CiAgICAgdXBkYXRlQmFja2dyb3VuZExheWVyKGZhbHNlKTsKICAgICB1cGRh
dGVNYXNrTGF5ZXIoZmFsc2UpOworICAgIHVwZGF0ZUNoaWxkQ2xpcHBpbmdTdHJhdGVneShmYWxz
ZSk7CiAgICAgdXBkYXRlU2Nyb2xsaW5nTGF5ZXJzKGZhbHNlKTsKICAgICBkZXRhY2hGcm9tU2Ny
b2xsaW5nQ29vcmRpbmF0b3IoKTsKICAgICBkZXN0cm95R3JhcGhpY3NMYXllcnMoKTsKQEAgLTM0
OCw2ICszNDksNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6ZGVzdHJveUdyYXBoaWNzTGF5
ZXJzKCkKICAgICBtX2JhY2tncm91bmRMYXllciA9IG51bGxwdHI7CiAgICAgbV9jaGlsZENvbnRh
aW5tZW50TGF5ZXIgPSBudWxscHRyOwogICAgIG1fbWFza0xheWVyID0gbnVsbHB0cjsKKyAgICBt
X2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIgPSBudWxscHRyOwogCiAgICAgbV9zY3JvbGxpbmdMYXll
ciA9IG51bGxwdHI7CiAgICAgbV9zY3JvbGxpbmdDb250ZW50c0xheWVyID0gbnVsbHB0cjsKQEAg
LTU2OSw2ICs1NzEsOCBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlQ29uZmlndXJh
dGlvbigpCiAKICAgICB1cGRhdGVNYXNrTGF5ZXIocmVuZGVyZXIoKS5oYXNNYXNrKCkpOwogCisg
ICAgdXBkYXRlQ2hpbGRDbGlwcGluZ1N0cmF0ZWd5KG5lZWRzRGVzY2VuZGVudHNDbGlwcGluZ0xh
eWVyKTsKKwogICAgIGlmIChtX293bmluZ0xheWVyLmhhc1JlZmxlY3Rpb24oKSkgewogICAgICAg
ICBpZiAobV9vd25pbmdMYXllci5yZWZsZWN0aW9uTGF5ZXIoKS0+YmFja2luZygpKSB7CiAgICAg
ICAgICAgICBHcmFwaGljc0xheWVyKiByZWZsZWN0aW9uTGF5ZXIgPSBtX293bmluZ0xheWVyLnJl
ZmxlY3Rpb25MYXllcigpLT5iYWNraW5nKCktPmdyYXBoaWNzTGF5ZXIoKTsKQEAgLTgxNCw2ICs4
MTgsMTIgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdlb21ldHJ5KCkKICAgICAg
ICAgY2xpcExheWVyLT5zZXRQb3NpdGlvbihGbG9hdFBvaW50KGNsaXBwaW5nQm94LmxvY2F0aW9u
KCkgLSBsb2NhbENvbXBvc2l0aW5nQm91bmRzLmxvY2F0aW9uKCkpKTsKICAgICAgICAgY2xpcExh
eWVyLT5zZXRTaXplKGNsaXBwaW5nQm94LnNpemUoKSk7CiAgICAgICAgIGNsaXBMYXllci0+c2V0
T2Zmc2V0RnJvbVJlbmRlcmVyKHRvRmxvYXRTaXplKGNsaXBwaW5nQm94LmxvY2F0aW9uKCkpKTsK
KworICAgICAgICBpZiAobV9jaGlsZENsaXBwaW5nTWFza0xheWVyICYmICFtX3Njcm9sbGluZ0xh
eWVyKSB7CisgICAgICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPnNldFBvc2l0aW9u
KGNsaXBMYXllci0+cG9zaXRpb24oKSk7CisgICAgICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNr
TGF5ZXItPnNldFNpemUoY2xpcExheWVyLT5zaXplKCkpOworICAgICAgICAgICAgbV9jaGlsZENs
aXBwaW5nTWFza0xheWVyLT5zZXRPZmZzZXRGcm9tUmVuZGVyZXIoY2xpcExheWVyLT5vZmZzZXRG
cm9tUmVuZGVyZXIoKSk7CisgICAgICAgIH0KICAgICB9CiAgICAgCiAgICAgaWYgKG1fbWFza0xh
eWVyKSB7CkBAIC05NDIsNiArOTUyLDEyIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRh
dGVHZW9tZXRyeSgpCiAgICAgICAgIEZsb2F0U2l6ZSBvbGRTY3JvbGxpbmdMYXllck9mZnNldCA9
IG1fc2Nyb2xsaW5nTGF5ZXItPm9mZnNldEZyb21SZW5kZXJlcigpOwogICAgICAgICBtX3Njcm9s
bGluZ0xheWVyLT5zZXRPZmZzZXRGcm9tUmVuZGVyZXIoLXRvRmxvYXRTaXplKHBhZGRpbmdCb3gu
bG9jYXRpb24oKSkpOwogCisgICAgICAgIGlmIChtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIpIHsK
KyAgICAgICAgICAgIG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci0+c2V0UG9zaXRpb24obV9zY3Jv
bGxpbmdMYXllci0+cG9zaXRpb24oKSk7CisgICAgICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNr
TGF5ZXItPnNldFNpemUobV9zY3JvbGxpbmdMYXllci0+c2l6ZSgpKTsKKyAgICAgICAgICAgIG1f
Y2hpbGRDbGlwcGluZ01hc2tMYXllci0+c2V0T2Zmc2V0RnJvbVJlbmRlcmVyKHRvRmxvYXRTaXpl
KHBhZGRpbmdCb3gubG9jYXRpb24oKSkpOworICAgICAgICB9CisKICAgICAgICAgYm9vbCBwYWRk
aW5nQm94T2Zmc2V0Q2hhbmdlZCA9IG9sZFNjcm9sbGluZ0xheWVyT2Zmc2V0ICE9IG1fc2Nyb2xs
aW5nTGF5ZXItPm9mZnNldEZyb21SZW5kZXJlcigpOwogCiAgICAgICAgIEludFNpemUgc2Nyb2xs
U2l6ZShtX293bmluZ0xheWVyLnNjcm9sbFdpZHRoKCksIG1fb3duaW5nTGF5ZXIuc2Nyb2xsSGVp
Z2h0KCkpOwpAQCAtMTQxNCw2ICsxNDMwLDM5IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1
cGRhdGVNYXNrTGF5ZXIoYm9vbCBuZWVkc01hc2tMYXllcikKICAgICAgICAgbV9ncmFwaGljc0xh
eWVyLT5zZXRQYWludGluZ1BoYXNlKHBhaW50aW5nUGhhc2VGb3JQcmltYXJ5TGF5ZXIoKSk7CiB9
CiAKK3ZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDaGlsZENsaXBwaW5nU3RyYXRlZ3ko
Ym9vbCBuZWVkc0Rlc2NlbmRlbnRzQ2xpcHBpbmdMYXllcikKK3sKKyAgICBpZiAoIWhhc0NsaXBw
aW5nTGF5ZXIoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG5lZWRzRGVzY2VuZGVudHND
bGlwcGluZ0xheWVyKSB7CisgICAgICAgIGlmIChpczxSZW5kZXJCb3g+KHJlbmRlcmVyKCkpKSB7
CisgICAgICAgICAgICBMYXlvdXRSZWN0IGJveFJlY3QoTGF5b3V0UG9pbnQoKSwgZG93bmNhc3Q8
UmVuZGVyQm94PihyZW5kZXJlcigpKS5zaXplKCkpOworICAgICAgICAgICAgRmxvYXRSb3VuZGVk
UmVjdCBjb250ZW50c0NsaXBwaW5nUmVjdCA9IHJlbmRlcmVyKCkuc3R5bGUoKS5nZXRSb3VuZGVk
SW5uZXJCb3JkZXJGb3IoYm94UmVjdCkucGl4ZWxTbmFwcGVkUm91bmRlZFJlY3RGb3JQYWludGlu
ZyhkZXZpY2VTY2FsZUZhY3RvcigpKTsKKyAgICAgICAgICAgIGNvbnRlbnRzQ2xpcHBpbmdSZWN0
Lm1vdmUoY29udGVudE9mZnNldEluQ29tcG9zdGluZ0xheWVyKCkpOworICAgICAgICAgICAgaWYg
KGNsaXBwaW5nTGF5ZXIoKS0+YXBwbHlDbGlwcGluZ0JvcmRlcihjb250ZW50c0NsaXBwaW5nUmVj
dCkpIHsKKyAgICAgICAgICAgICAgICBpZiAobV9jaGlsZENsaXBwaW5nTWFza0xheWVyKSAKKyAg
ICAgICAgICAgICAgICAgICAgbV9jaGlsZENsaXBwaW5nTWFza0xheWVyID0gbnVsbHB0cjsKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAg
ICBpZiAoIW1fY2hpbGRDbGlwcGluZ01hc2tMYXllcikgeworICAgICAgICAgICAgbV9jaGlsZENs
aXBwaW5nTWFza0xheWVyID0gY3JlYXRlR3JhcGhpY3NMYXllcigiQ2hpbGQgQ2xpcHBpbmcgTWFz
ayBMYXllciIpOworICAgICAgICAgICAgbV9jaGlsZENsaXBwaW5nTWFza0xheWVyLT5zZXREcmF3
c0NvbnRlbnQodHJ1ZSk7CisgICAgICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPnNl
dFBhaW50aW5nUGhhc2UoR3JhcGhpY3NMYXllclBhaW50Q2hpbGRDbGlwcGluZ01hc2spOworICAg
ICAgICAgICAgY2xpcHBpbmdMYXllcigpLT5zZXRNYXNrTGF5ZXIobV9jaGlsZENsaXBwaW5nTWFz
a0xheWVyLmdldCgpKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChtX2No
aWxkQ2xpcHBpbmdNYXNrTGF5ZXIpIHsKKyAgICAgICAgICAgIG1fY2hpbGRDbGlwcGluZ01hc2tM
YXllciA9IG51bGxwdHI7CisgICAgICAgICAgICBjbGlwcGluZ0xheWVyKCktPnNldE1hc2tMYXll
cihudWxscHRyKTsKKyAgICAgICAgfSBlbHNlIAorICAgICAgICAgICAgY2xpcHBpbmdMYXllcigp
LT5jbGVhckNsaXBwaW5nQm9yZGVyKCk7CisgICAgfQorCit9CisKIGJvb2wgUmVuZGVyTGF5ZXJC
YWNraW5nOjp1cGRhdGVTY3JvbGxpbmdMYXllcnMoYm9vbCBuZWVkc1Njcm9sbGluZ0xheWVycykK
IHsKICAgICBpZiAobmVlZHNTY3JvbGxpbmdMYXllcnMgPT0gISFtX3Njcm9sbGluZ0xheWVyKQpA
QCAtMjA2NSw2ICsyMTE0LDkgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnNldENvbnRlbnRz
TmVlZERpc3BsYXkoR3JhcGhpY3NMYXllcjo6U2hvdWxkQ2xpcFRvTGF5ZXIKICAgICBpZiAobV9t
YXNrTGF5ZXIgJiYgbV9tYXNrTGF5ZXItPmRyYXdzQ29udGVudCgpKQogICAgICAgICBtX21hc2tM
YXllci0+c2V0TmVlZHNEaXNwbGF5KCk7CiAKKyAgICBpZiAobV9jaGlsZENsaXBwaW5nTWFza0xh
eWVyICYmIG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci0+ZHJhd3NDb250ZW50KCkpCisgICAgICAg
IG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7CisKICAgICBpZiAo
bV9zY3JvbGxpbmdDb250ZW50c0xheWVyICYmIG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci0+ZHJh
d3NDb250ZW50KCkpCiAgICAgICAgIG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci0+c2V0TmVlZHNE
aXNwbGF5KCk7CiB9CkBAIC0yMTA0LDYgKzIxNTYsMTIgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tp
bmc6OnNldENvbnRlbnRzTmVlZERpc3BsYXlJblJlY3QoY29uc3QgTGF5b3V0UmVjdCYgciwgR3Jh
cGgKICAgICAgICAgbV9tYXNrTGF5ZXItPnNldE5lZWRzRGlzcGxheUluUmVjdChsYXllckRpcnR5
UmVjdCwgc2hvdWxkQ2xpcCk7CiAgICAgfQogCisgICAgaWYgKG1fY2hpbGRDbGlwcGluZ01hc2tM
YXllciAmJiBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPmRyYXdzQ29udGVudCgpKSB7CisgICAg
ICAgIEZsb2F0UmVjdCBsYXllckRpcnR5UmVjdCA9IHI7CisgICAgICAgIGxheWVyRGlydHlSZWN0
Lm1vdmUoLW1fY2hpbGRDbGlwcGluZ01hc2tMYXllci0+b2Zmc2V0RnJvbVJlbmRlcmVyKCkpOwor
ICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPnNldE5lZWRzRGlzcGxheUluUmVjdChs
YXllckRpcnR5UmVjdCk7CisgICAgfQorCiAgICAgaWYgKG1fc2Nyb2xsaW5nQ29udGVudHNMYXll
ciAmJiBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXItPmRyYXdzQ29udGVudCgpKSB7CiAgICAgICAg
IEZsb2F0UmVjdCBsYXllckRpcnR5UmVjdCA9IHBpeGVsU25hcHBlZFJlY3RGb3JQYWludGluZzsK
ICAgICAgICAgbGF5ZXJEaXJ0eVJlY3QubW92ZSgtbV9zY3JvbGxpbmdDb250ZW50c0xheWVyLT5v
ZmZzZXRGcm9tUmVuZGVyZXIoKSArIG1fZGV2aWNlUGl4ZWxGcmFjdGlvbkZyb21SZW5kZXJlcik7
CkBAIC0yMTM4LDYgKzIxOTYsOCBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRJbnRv
TGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcAogICAgICAgICBw
YWludEZsYWdzIHw9IFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ0Zv
cmVncm91bmRQaGFzZTsKICAgICBpZiAocGFpbnRpbmdQaGFzZSAmIEdyYXBoaWNzTGF5ZXJQYWlu
dE1hc2spCiAgICAgICAgIHBhaW50RmxhZ3MgfD0gUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJQYWlu
dGluZ0NvbXBvc2l0aW5nTWFza1BoYXNlOworICAgIGlmIChwYWludGluZ1BoYXNlICYgR3JhcGhp
Y3NMYXllclBhaW50Q2hpbGRDbGlwcGluZ01hc2spCisgICAgICAgIHBhaW50RmxhZ3MgfD0gUmVu
ZGVyTGF5ZXI6OlBhaW50TGF5ZXJQYWludGluZ0NoaWxkQ2xpcHBpbmdNYXNrUGhhc2U7CiAgICAg
aWYgKHBhaW50aW5nUGhhc2UgJiBHcmFwaGljc0xheWVyUGFpbnRPdmVyZmxvd0NvbnRlbnRzKQog
ICAgICAgICBwYWludEZsYWdzIHw9IFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRpbmdPdmVy
Zmxvd0NvbnRlbnRzOwogICAgIGlmIChwYWludGluZ1BoYXNlICYgR3JhcGhpY3NMYXllclBhaW50
Q29tcG9zaXRlZFNjcm9sbCkKQEAgLTIyMDIsNiArMjI2Miw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJC
YWNraW5nOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIs
IEdyYXBoCiAgICAgICAgIHx8IGdyYXBoaWNzTGF5ZXIgPT0gbV9mb3JlZ3JvdW5kTGF5ZXIuZ2V0
KCkKICAgICAgICAgfHwgZ3JhcGhpY3NMYXllciA9PSBtX2JhY2tncm91bmRMYXllci5nZXQoKQog
ICAgICAgICB8fCBncmFwaGljc0xheWVyID09IG1fbWFza0xheWVyLmdldCgpCisgICAgICAgIHx8
IGdyYXBoaWNzTGF5ZXIgPT0gbV9jaGlsZENsaXBwaW5nTWFza0xheWVyLmdldCgpCiAgICAgICAg
IHx8IGdyYXBoaWNzTGF5ZXIgPT0gbV9zY3JvbGxpbmdDb250ZW50c0xheWVyLmdldCgpKSB7CiAg
ICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBhaW50KCZyZW5kZXJlcigpKTsK
IApAQCAtMjU3OCw2ICsyNjM5LDggQEAgZG91YmxlIFJlbmRlckxheWVyQmFja2luZzo6YmFja2lu
Z1N0b3JlTWVtb3J5RXN0aW1hdGUoKSBjb25zdAogICAgICAgICBiYWNraW5nTWVtb3J5ICs9IG1f
YmFja2dyb3VuZExheWVyLT5iYWNraW5nU3RvcmVNZW1vcnlFc3RpbWF0ZSgpOwogICAgIGlmICht
X21hc2tMYXllcikKICAgICAgICAgYmFja2luZ01lbW9yeSArPSBtX21hc2tMYXllci0+YmFja2lu
Z1N0b3JlTWVtb3J5RXN0aW1hdGUoKTsKKyAgICBpZiAobV9jaGlsZENsaXBwaW5nTWFza0xheWVy
KQorICAgICAgICBiYWNraW5nTWVtb3J5ICs9IG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci0+YmFj
a2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUoKTsKIAogICAgIGlmIChtX3Njcm9sbGluZ0NvbnRlbnRz
TGF5ZXIpCiAgICAgICAgIGJhY2tpbmdNZW1vcnkgKz0gbV9zY3JvbGxpbmdDb250ZW50c0xheWVy
LT5iYWNraW5nU3RvcmVNZW1vcnlFc3RpbWF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4IGNjYmJmNWU2ZGI3YTRjNDhlNTI4NTQyYTkx
ODMyN2QyN2UwYzMwZmIuLmY5NGZiYWVjM2ZmODcyMTdiYjY2ODBhMWM0YzJhMjdkNDhjMWRiNDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKQEAg
LTEzOSw2ICsxMzksNyBAQCBwdWJsaWM6CiAgICAgU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05v
ZGVJREZvckNoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxpbmdOb2RlSUQgPyBtX3Nj
cm9sbGluZ05vZGVJRCA6IG1fdmlld3BvcnRDb25zdHJhaW5lZE5vZGVJRDsgfQogCiAgICAgYm9v
bCBoYXNNYXNrTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX21hc2tMYXllciAhPSAwOyB9CisgICAg
Ym9vbCBoYXNDaGlsZENsaXBwaW5nTWFza0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9jaGlsZENs
aXBwaW5nTWFza0xheWVyICE9IG51bGxwdHI7IH0KIAogICAgIEdyYXBoaWNzTGF5ZXIqIHBhcmVu
dEZvclN1YmxheWVycygpIGNvbnN0OwogICAgIEdyYXBoaWNzTGF5ZXIqIGNoaWxkRm9yU3VwZXJs
YXllcnMoKSBjb25zdDsKQEAgLTI2OCw2ICsyNjksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgcmVx
dWlyZXNTY3JvbGxDb3JuZXJMYXllcigpIGNvbnN0OwogICAgIGJvb2wgdXBkYXRlU2Nyb2xsaW5n
TGF5ZXJzKGJvb2wgc2Nyb2xsaW5nTGF5ZXJzKTsKICAgICB2b2lkIHVwZGF0ZURyYXdzQ29udGVu
dChib29sIGlzU2ltcGxlQ29udGFpbmVyKTsKKyAgICB2b2lkIHVwZGF0ZUNoaWxkQ2xpcHBpbmdT
dHJhdGVneShib29sIG5lZWRzRGVzY2VuZGVudHNDbGlwcGluZ0xheWVyKTsKICAgICAKICAgICB2
b2lkIHVwZGF0ZVJvb3RMYXllckNvbmZpZ3VyYXRpb24oKTsKIApAQCAtMzM1LDYgKzMzNyw3IEBA
IHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fYmFja2dyb3Vu
ZExheWVyOyAvLyBPbmx5IHVzZWQgaW4gY2FzZXMgd2hlcmUgd2UgbmVlZCB0byBkcmF3IHRoZSBi
YWNrZ3JvdW5kIHNlcGFyYXRlbHkuCiAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+
IG1fY2hpbGRDb250YWlubWVudExheWVyOyAvLyBPbmx5IHVzZWQgaWYgd2UgaGF2ZSBjbGlwcGlu
ZyBvbiBhIHN0YWNraW5nIGNvbnRleHQgd2l0aCBjb21wb3NpdGluZyBjaGlsZHJlbiwgb3IgaWYg
dGhlIGxheWVyIGhhcyBhIHRpbGUgY2FjaGUuCiAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNz
TGF5ZXI+IG1fbWFza0xheWVyOyAvLyBPbmx5IHVzZWQgaWYgd2UgaGF2ZSBhIG1hc2suCisgICAg
c3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fY2hpbGRDbGlwcGluZ01hc2tMYXllcjsg
Ly8gT25seSB1c2VkIGlmIHdlIGhhdmUgdG8gY2xpcCBjaGlsZCBsYXllcnMgb3IgYWNjZWxlcmF0
ZWQgY29udGVudHMgd2l0aCBib3JkZXIgcmFkaXVzIG9yIGNsaXAtcGF0aC4KIAogICAgIHN0ZDo6
dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcjsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9sYXllckZvclZlcnRpY2FsU2Ny
b2xsYmFyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243293</attachid>
            <date>2014-12-15 06:52:30 -0800</date>
            <delta_ts>2014-12-22 11:26:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138551-20141215165320.patch</filename>
            <type>text/plain</type>
            <size>24749</size>
            <attacher name="Byungseon(Sun) Shin">sun.shin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3Mjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzg5ZDcxY2FjZWEwOGQy
MDRhNTgyNWNjMzY1ZjliM2RmNmUwYmU4MS4uNDUzOTE0ZTc0MDc1YmI1YTE3MDk2OWVmZTRhNjcx
YjE0ZjA0ZDMwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE0LTEyLTE1ICBCeXVu
Z3Nlb24gU2hpbiAgPHN1bi5zaGluQGxnZS5jb20+CisKKyAgICAgICAgRml4IEJvcmRlci1yYWRp
dXMgY2xpcHBpbmcgaXNzdWUgb24gYSBjb21wb3NpdGVkIGRlc2NlbmRhbnRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg1NTEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggY2xpcHBpbmcgY29tcG9z
aXRpbmcgZGVzY2VuZGFudHMgb2YgYW4gYWNjZWxlcmF0ZWQgbGF5ZXIgaGF2aW5nIAorICAgICAg
ICBib3JkZXIgcmFkaXVzIGFuZCBjbGlwIG92ZXJmbG93IGlzc3VlIGJ5IHVzaW5nIGxheWVyIGNv
cm5lci1yYWRpdXMgb24gTWFjLAorICAgICAgICBhbmQgc2V0dGluZyB1cCBhIG1hc2sgb24gb3Ro
ZXIgcGxhdGZvcm1zIG9uIHRoZSBjaGlsZENvbnRhaW5tZW50TGF5ZXIuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBpcyBleHRyYWN0ZWQgZnJvbSBmb2xsb3dpbmcgQmxpbmsgcmV2aXNpb25zOgorICAg
ICAgICA8aHR0cDovL3NyYy5jaHJvbWl1bS5vcmcvdmlld3ZjL2JsaW5rP3ZpZXc9cmV2aXNpb24m
cmV2aXNpb249MTYyNDYzPiAKKyAgICAgICAgPGh0dHA6Ly9zcmMuY2hyb21pdW0ub3JnL3ZpZXd2
Yy9ibGluaz92aWV3PXJldmlzaW9uJnJldmlzaW9uPTE1ODI1OD4KKyAgICAgICAgYnkgPHJvc2Nh
QGFkb2JlLmNvbT4KKworICAgICAgICBDbGlwIGFjY2VsZXJhdGVkIGRlc2NlbmRhbnRzIG9mIGFu
IGFjY2VsZXJhdGVkIGxheWVyIGhhdmluZyBib3JkZXIgcmFkaXVzIGFuZCBjbGlwIG92ZXJmbG93
LgorICAgICAgICBMYXJnZSBjYW52YXMgZG9lcyBub3QgaG9ub3IgY29udGFpbmluZyBkaXYncyBi
b3JkZXIgcmFkaXVzLgorCisgICAgICAgIGFuZCA8aHR0cDovL3NyYy5jaHJvbWl1bS5vcmcvdmll
d3ZjL2JsaW5rP3ZpZXc9cmV2aXNpb24mcmV2aXNpb249MTYwNTc4PgorICAgICAgICBieSA8anVu
b3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEZpeCBmb3IgQ1NTIGNsaXAtcGF0aCB3aXRoIGFj
Y2VsZXJhdGVkIDJEIGNhbnZhcy4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllcjo6ZHVtcFByb3BlcnRpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6
OmFwcGx5Q2xpcHBpbmdCb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6
Y2xlYXJDbGlwcGluZ0JvcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpu
ZWVkc0NsaXBwaW5nTWFza0xheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0xheWVyQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhp
Y3NMYXllckNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6YXBwbHlD
bGlwcGluZ0JvcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNsZWFy
Q2xpcHBpbmdCb3JkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5oOgorICAgICAgICAqIHJlbmRlcmluZy9QYWludFBoYXNlLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
OjpwYWludE9iamVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnBhaW50Q2xpcHBpbmdNYXNrKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludExheWVyQ29udGVudHMpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnBhaW50Q2hpbGRDbGlwcGluZ01hc2tGb3JG
cmFnbWVudHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXJCYWNraW5nOjp+UmVuZGVyTGF5ZXJCYWNraW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyQmFja2luZzo6ZGVzdHJveUdyYXBoaWNzTGF5ZXJzKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlQ29uZmlndXJhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdlb21ldHJ5KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlQ2hpbGRDbGlwcGluZ1N0cmF0ZWd5
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6c2V0Q29udGVudHNOZWVk
RGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnNldENvbnRl
bnRzTmVlZERpc3BsYXlJblJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNr
aW5nOjpwYWludEludG9MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tp
bmc6OnBhaW50Q29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5n
OjpiYWNraW5nU3RvcmVNZW1vcnlFc3RpbWF0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5oOgorCiAyMDE0LTEyLTE1ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5r
aW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0dUS10gUmVtb3ZlIEdhbWVwYWREZXZpY2VHdGs6
OmNyZWF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDMxZDdmYzAxY2ZhNzhmY2IyMzJjNDll
MTg4ZDM0MDg5NTZmMjJmMGMuLmFiOTg0NGViYjdkNjQxNDg5ZDhiN2Q2OTI3ZjA2NWY3MDczYzc0
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC01OTMsNiArNTkzLDggQEAgX19aTjdXZWJDb3Jl
MTVHcmFwaGljc0xheWVyQ0ExOHNldENvbnRlbnRzVmlzaWJsZUViCiBfX1pON1dlYkNvcmUxNUdy
YXBoaWNzTGF5ZXJDQTE4c2V0T3BhY2l0eUludGVybmFsRWYKIF9fWk43V2ViQ29yZTE1R3JhcGhp
Y3NMYXllckNBMThzZXRSZXBsaWNhdGVkTGF5ZXJFUE5TXzEzR3JhcGhpY3NMYXllckUKIF9fWk43
V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMThzZXRTaG93RGVidWdCb3JkZXJFYgorX19aTjdXZWJD
b3JlMTVHcmFwaGljc0xheWVyQ0ExOWFwcGx5Q2xpcHBpbmdCb3JkZXJFUktOU18xNkZsb2F0Um91
bmRlZFJlY3RFCitfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE5Y2xlYXJDbGlwcGluZ0Jv
cmRlckV2CiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE5c2V0Q3VzdG9tQXBwZWFyYW5j
ZUVOU18xM0dyYXBoaWNzTGF5ZXIxNkN1c3RvbUFwcGVhcmFuY2VFCiBfX1pON1dlYkNvcmUxNUdy
YXBoaWNzTGF5ZXJDQTIwc2V0Q2hpbGRyZW5UcmFuc2Zvcm1FUktOU18yMFRyYW5zZm9ybWF0aW9u
TWF0cml4RQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0EyMHNldFJlcGxpY2F0ZWRCeUxh
eWVyRVBOU18xM0dyYXBoaWNzTGF5ZXJFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDYyZDI1MTYzZGQyOTBmMjY4M2EyYjM0
Nzk2Yzk5MDkyN2ViMzlmOTkuLmQ2Mjg4Yjc2ZGU5NjIxYmZhYmVkZjRiNzMzM2U0NTI4OWUwZmNl
NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuY3BwCkBAIC03NjEsNiArNzYxLDEwIEBAIHZvaWQgR3JhcGhpY3NMYXllcjo6ZHVtcFBy
b3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIGludCBpbmRlbnQsIExheWVyVHJlZUFzVGV4dEJlCiAg
ICAgICAgICAgICB3cml0ZUluZGVudCh0cywgaW5kZW50ICsgMik7CiAgICAgICAgICAgICB0cyA8
PCAiR3JhcGhpY3NMYXllclBhaW50TWFza1xuIjsKICAgICAgICAgfQorICAgICAgICBpZiAocGFp
bnRpbmdQaGFzZSgpICYgR3JhcGhpY3NMYXllclBhaW50Q2hpbGRDbGlwcGluZ01hc2spIHsKKyAg
ICAgICAgICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQgKyAyKTsKKyAgICAgICAgICAgIHRzIDw8
ICJHcmFwaGljc0xheWVyUGFpbnRDaGlsZENsaXBwaW5nTWFza1xuIjsKKyAgICAgICAgfQogICAg
ICAgICBpZiAocGFpbnRpbmdQaGFzZSgpICYgR3JhcGhpY3NMYXllclBhaW50T3ZlcmZsb3dDb250
ZW50cykgewogICAgICAgICAgICAgd3JpdGVJbmRlbnQodHMsIGluZGVudCArIDIpOwogICAgICAg
ICAgICAgdHMgPDwgIkdyYXBoaWNzTGF5ZXJQYWludE92ZXJmbG93Q29udGVudHNcbiI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXgg
ODMzMzMyMjBjYzI5MjdmOTU4MzA1YjZkNzJjODVjYTBiMTIxMDc5NS4uNzM3MTNmMjJmMDk2NWMx
ZTE1NDA2NmEwNDdmMTFkOGU2NDVhNDU4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApAQCAtMzcwLDYgKzM3MCw5IEBAIHB1YmxpYzoK
ICAgICBGbG9hdFJvdW5kZWRSZWN0IGNvbnRlbnRzQ2xpcHBpbmdSZWN0KCkgY29uc3QgeyByZXR1
cm4gbV9jb250ZW50c0NsaXBwaW5nUmVjdDsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50
c0NsaXBwaW5nUmVjdChjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByb3VuZGVkUmVjdCkgeyBtX2Nv
bnRlbnRzQ2xpcHBpbmdSZWN0ID0gcm91bmRlZFJlY3Q7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBh
cHBseUNsaXBwaW5nQm9yZGVyKGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmKSB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBjbGVhckNsaXBwaW5nQm9yZGVyKCkgeyByZXR1cm47IH0K
KwogICAgIC8vIFRyYW5zaXRpb25zIGFyZSBpZGVudGlmaWVkIGJ5IGEgc3BlY2lhbCBhbmltYXRp
b24gbmFtZSB0aGF0IGNhbm5vdCBjbGFzaCB3aXRoIGEga2V5ZnJhbWUgaWRlbnRpZmllci4KICAg
ICBzdGF0aWMgU3RyaW5nIGFuaW1hdGlvbk5hbWVGb3JUcmFuc2l0aW9uKEFuaW1hdGVkUHJvcGVy
dHlJRCk7CiAgICAgCkBAIC01MDAsNiArNTAzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBpc0dyYXBoaWNzTGF5ZXJDQVJlbW90ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
dmlydHVhbCBib29sIGlzR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogCisgICAgdmlydHVhbCBib29sIG5lZWRzQ2xpcHBpbmdNYXNrTGF5ZXIoKSB7
IHJldHVybiB0cnVlOyB9OworCiBwcm90ZWN0ZWQ6CiAgICAgLy8gU2hvdWxkIGJlIGNhbGxlZCBm
cm9tIGRlcml2ZWQgY2xhc3MgZGVzdHJ1Y3RvcnMuIFNob3VsZCBjYWxsIHdpbGxCZURlc3Ryb3ll
ZCgpIG9uIHN1cGVyLgogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0
cm95ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXJDbGllbnQuaAppbmRleCBiNDVkZjFjODcwYTA0MWZhMjFmOWJkZGI1ZmRjNWYx
YzFlYzQwOGQzLi4xZDlhZTFjMTY2NjIxYzdlYWI3Zjk2YjgwMWJmMzJkYzU5ODMwZjdjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ckNsaWVudC5oCkBAIC00NCw2ICs0NCw3IEBAIGVudW0gR3JhcGhpY3NMYXllclBhaW50aW5nUGhh
c2VGbGFncyB7CiAgICAgR3JhcGhpY3NMYXllclBhaW50TWFzayA9ICgxIDw8IDIpLAogICAgIEdy
YXBoaWNzTGF5ZXJQYWludE92ZXJmbG93Q29udGVudHMgPSAoMSA8PCAzKSwKICAgICBHcmFwaGlj
c0xheWVyUGFpbnRDb21wb3NpdGVkU2Nyb2xsID0gKDEgPDwgNCksCisgICAgR3JhcGhpY3NMYXll
clBhaW50Q2hpbGRDbGlwcGluZ01hc2sgPSAoMSA8PCA1KSwKICAgICBHcmFwaGljc0xheWVyUGFp
bnRBbGxXaXRoT3ZlcmZsb3dDbGlwID0gKEdyYXBoaWNzTGF5ZXJQYWludEJhY2tncm91bmQgfCBH
cmFwaGljc0xheWVyUGFpbnRGb3JlZ3JvdW5kIHwgR3JhcGhpY3NMYXllclBhaW50TWFzaykKIH07
CiB0eXBlZGVmIHVuc2lnbmVkIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5j
cHAKaW5kZXggYTA1MTdjZjExMTM3YWYwMmIzYTg2YjhlZDM5NmU3MzNkNjJlZmM3NS4uNDMzYzBk
YmViMzU0MzhkNTY3ZWEwYjFjOTNjZjUyMzkzYmE3MjE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC0y
MDIxLDYgKzIwMjEsMjUgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzQ29s
b3JMYXllcigpCiAgICAgfQogfQogCitib29sIEdyYXBoaWNzTGF5ZXJDQTo6YXBwbHlDbGlwcGlu
Z0JvcmRlcihjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByb3VuZGVkUmVjdCkKK3sKKyAgICBpZiAo
cm91bmRlZFJlY3QucmFkaWkoKS5pc1VuaWZvcm1Db3JuZXJSYWRpdXMoKSkgeworICAgICAgICBt
X2xheWVyLT5zZXRNYXNrKG51bGxwdHIpOworICAgICAgICBtX2xheWVyLT5zZXRNYXNrc1RvQm91
bmRzKHRydWUpOworICAgICAgICBtX2xheWVyLT5zZXRDb3JuZXJSYWRpdXMocm91bmRlZFJlY3Qu
cmFkaWkoKS50b3BMZWZ0KCkud2lkdGgoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBHcmFwaGljc0xheWVyQ0E6OmNsZWFyQ2xp
cHBpbmdCb3JkZXIoKQoreworICAgIG1fbGF5ZXItPnNldENvcm5lclJhZGl1cygwKTsKKyAgICBt
X2xheWVyLT5zZXRNYXNrc1RvQm91bmRzKGZhbHNlKTsKKyAgICBtX2xheWVyLT5zZXRNYXNrKG51
bGxwdHIpOworfQorCiAvLyBUaGUgY2xpcHBpbmcgc3RyYXRlZ3kgZGVwZW5kcyBvbiB3aGV0aGVy
IHRoZSByb3VuZGVkIHJlY3QgaGFzIGVxdWFsIGNvcm5lciByYWRpaS4KIHZvaWQgR3JhcGhpY3NM
YXllckNBOjp1cGRhdGVDbGlwcGluZ1N0cmF0ZWd5KFBsYXRmb3JtQ0FMYXllciYgY2xpcHBpbmdM
YXllciwgUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4mIHNoYXBlTWFza0xheWVyLCBjb25zdCBGbG9h
dFJvdW5kZWRSZWN0JiByb3VuZGVkUmVjdCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKaW5kZXggODQyNDQ3Mjc0Y2Vl
NWZiYzc0ZmFmOTI1ODNjN2RkOTY0NzlmZWM0ZC4uNDk1ZjU3OGYzNmRmZDBkYmM0OGZmMzc2MGQ1
ODY4ODc2ZTZlOGM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvR3JhcGhpY3NMYXllckNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKQEAgLTE3Myw2ICsxNzMsOSBAQCBwcm90ZWN0ZWQ6
CiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0dyYXBoaWNzTGF5ZXJDQSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBhcHBseUNsaXBwaW5n
Qm9yZGVyKGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgY2xlYXJDbGlwcGluZ0JvcmRlcigpIG92ZXJyaWRlOworCiAgICAgV0VCQ09SRV9FWFBPUlQg
dmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlOwogCiAgICAgLy8gUGxhdGZv
cm1DQUxheWVyQ2xpZW50IG92ZXJyaWRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1BhaW50UGhhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYWludFBoYXNl
LmgKaW5kZXggMGJiZjk5YTdkMGNmNWEwOWNhODVjMzBkZjA2MWEzNmQ3Y2FjMDI2Yi4uYTQ0OGQ5
MjJkOThmNzFjODdiOWQ2Mjk2MjMxZWE0ZWE3MDM5ZWY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1BhaW50UGhhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUGFpbnRQaGFzZS5oCkBAIC00OSw3ICs0OSw4IEBAIGVudW0gUGFpbnRQaGFzZSB7CiAgICAg
UGFpbnRQaGFzZVNlbGVjdGlvbiwKICAgICBQYWludFBoYXNlQ29sbGFwc2VkVGFibGVCb3JkZXJz
LAogICAgIFBhaW50UGhhc2VUZXh0Q2xpcCwKLSAgICBQYWludFBoYXNlTWFzaworICAgIFBhaW50
UGhhc2VNYXNrLAorICAgIFBhaW50UGhhc2VDbGlwcGluZ01hc2sKIH07CiAKIGVudW0gUGFpbnRC
ZWhhdmlvckZsYWdzIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmlu
ZGV4IDdmZTZiMGM4NGE1NDg0NzZjZDM2NGQ2ZWFjNTg1YmQ5NTkyOTVmZWQuLmVjMTA1NWVlMjdi
NTJjNGI2ZWYxNThhNjNlM2RkYWNhNDY5N2MyOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcApAQCAtMTU3Niw2ICsxNTc2LDExIEBAIHZvaWQgUmVuZGVyQmxvY2s6
OnBhaW50T2JqZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFp
bnRPZmZzCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAocGFpbnRQaGFzZSA9PSBQ
YWludFBoYXNlQ2xpcHBpbmdNYXNrICYmIHN0eWxlKCkudmlzaWJpbGl0eSgpID09IFZJU0lCTEUp
IHsKKyAgICAgICAgcGFpbnRDbGlwcGluZ01hc2socGFpbnRJbmZvLCBwYWludE9mZnNldCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICAvLyBJZiBqdXN0IHBhaW50aW5nIHRoZSByb290
IGJhY2tncm91bmQsIHRoZW4gcmV0dXJuLgogICAgIGlmIChwYWludEluZm8ucGFpbnRSb290QmFj
a2dyb3VuZE9ubHkoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmNwcAppbmRleCA0MmNhNzRmNGE0YzM1NjMzMGQwOWE4NzQ2YTJiMDBiYjdmM2I3OTE4
Li45MjUwM2U1YjRjYTQ5ZDcxMzgwZDVjNzkzOGY3Y2FlMGJjODFmOGM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMTQ4MCw2ICsxNDgwLDE1IEBAIHZvaWQgUmVu
ZGVyQm94OjpwYWludE1hc2soUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50
JiBwYWludE9mZnNldCkKICAgICBwYWludE1hc2tJbWFnZXMocGFpbnRJbmZvLCBwYWludFJlY3Qp
OwogfQogCit2b2lkIFJlbmRlckJveDo6cGFpbnRDbGlwcGluZ01hc2soUGFpbnRJbmZvJiBwYWlu
dEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKK3sKKyAgICBpZiAoIXBhaW50
SW5mby5zaG91bGRQYWludFdpdGhpblJvb3QoKnRoaXMpIHx8IHN0eWxlKCkudmlzaWJpbGl0eSgp
ICE9IFZJU0lCTEUgfHwgcGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhhc2VDbGlwcGluZ01hc2sg
fHwgcGFpbnRJbmZvLmNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgTGF5b3V0UmVjdCBwYWludFJlY3QgPSBMYXlvdXRSZWN0KHBhaW50T2Zmc2V0LCBz
aXplKCkpOworICAgIHBhaW50SW5mby5jb250ZXh0LT5maWxsUmVjdChzbmFwcGVkSW50UmVjdChw
YWludFJlY3QpLCBDb2xvcjo6YmxhY2ssIHN0eWxlKCkuY29sb3JTcGFjZSgpKTsKK30KKwogdm9p
ZCBSZW5kZXJCb3g6OnBhaW50TWFza0ltYWdlcyhjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgTGF5b3V0UmVjdCYgcGFpbnRSZWN0KQogewogICAgIC8vIEZpZ3VyZSBvdXQgaWYgd2Ug
bmVlZCB0byBwdXNoIGEgdHJhbnNwYXJlbmN5IGxheWVyIHRvIHJlbmRlciBvdXIgbWFzay4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBmMDZjODAzMjI4ZDZmMWQwMjk5ZThj
MjI4ZWJjZjExMjNjMjk4NDU0Li4yZjg5YmIwNDFlZDJlYzVmMjBiYWNjNzc2NDhlOWY1NDNiZjQ1
M2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC00OTIsNiArNDkyLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwYWludE9iamVjdChQYWludEluZm8mLCBjb25z
dCBMYXlvdXRQb2ludCYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZv
aWQgcGFpbnRCb3hEZWNvcmF0aW9ucyhQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwog
ICAgIHZpcnR1YWwgdm9pZCBwYWludE1hc2soUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQm
KTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDbGlwcGluZ01hc2soUGFpbnRJbmZvJiwgY29uc3Qg
TGF5b3V0UG9pbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFn
ZVB0ciwgY29uc3QgSW50UmVjdCogPSAwKSBvdmVycmlkZTsKIAogICAgIC8vIENhbGxlZCB3aGVu
IGEgcG9zaXRpb25lZCBvYmplY3QgbW92ZXMgYnV0IGRvZXNuJ3QgbmVjZXNzYXJpbHkgY2hhbmdl
IHNpemUuICBBIHNpbXBsaWZpZWQgbGF5b3V0IGlzIGF0dGVtcHRlZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggZmY1MDllNjUxYzhlMjk0YTAyYWYwZjQ0M2Zh
Y2Q5NzMwMTY2NGVjZi4uYTE0NTE2NzYyMjBjNzQwMTYxZjkxMmU5MDBkYzdkMjk5NmMwNzU3ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC00MTk1LDYgKzQx
OTUsMTEgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzKEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGkKICAgICAgICAgcGFpbnRNYXNrRm9yRnJh
Z21lbnRzKGxheWVyRnJhZ21lbnRzLCBjb250ZXh0LCBsb2NhbFBhaW50aW5nSW5mbywgc3VidHJl
ZVBhaW50Um9vdEZvclJlbmRlcmVyKTsKICAgICB9CiAKKyAgICBpZiAoKGxvY2FsUGFpbnRGbGFn
cyAmIFBhaW50TGF5ZXJQYWludGluZ0NoaWxkQ2xpcHBpbmdNYXNrUGhhc2UpICYmIHNob3VsZFBh
aW50Q29udGVudCAmJiAhc2VsZWN0aW9uT25seSkgeworICAgICAgICAvLyBQYWludCB0aGUgYm9y
ZGVyIHJhZGl1cyBtYXNrIGZvciB0aGUgZnJhZ21lbnRzLgorICAgICAgICBwYWludENoaWxkQ2xp
cHBpbmdNYXNrRm9yRnJhZ21lbnRzKGxheWVyRnJhZ21lbnRzLCBjb250ZXh0LCBsb2NhbFBhaW50
aW5nSW5mbywgc3VidHJlZVBhaW50Um9vdEZvclJlbmRlcmVyKTsKKyAgICB9CisKICAgICAvLyBF
bmQgb3VyIHRyYW5zcGFyZW5jeSBsYXllcgogICAgIGlmIChoYXZlVHJhbnNwYXJlbmN5ICYmIG1f
dXNlZFRyYW5zcGFyZW5jeSAmJiAhbV9wYWludGluZ0luc2lkZVJlZmxlY3Rpb24pIHsKICAgICAg
ICAgY29udGV4dC0+ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKQEAgLTQ2MTMsNiArNDYxOCwyNiBA
QCB2b2lkIFJlbmRlckxheWVyOjpwYWludE1hc2tGb3JGcmFnbWVudHMoY29uc3QgTGF5ZXJGcmFn
bWVudHMmIGxheWVyRnJhZ21lbnRzLCBHcgogICAgIH0KIH0KIAordm9pZCBSZW5kZXJMYXllcjo6
cGFpbnRDaGlsZENsaXBwaW5nTWFza0ZvckZyYWdtZW50cyhjb25zdCBMYXllckZyYWdtZW50cyYg
bGF5ZXJGcmFnbWVudHMsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5ZXJQYWlu
dGluZ0luZm8mIGxvY2FsUGFpbnRpbmdJbmZvLAorICAgIFJlbmRlck9iamVjdCogc3VidHJlZVBh
aW50Um9vdEZvclJlbmRlcmVyKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGF5ZXJG
cmFnbWVudHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgY29uc3QgTGF5ZXJGcmFnbWVudCYgZnJh
Z21lbnQgPSBsYXllckZyYWdtZW50cy5hdChpKTsKKyAgICAgICAgaWYgKCFmcmFnbWVudC5zaG91
bGRQYWludENvbnRlbnQpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAobG9j
YWxQYWludGluZ0luZm8uY2xpcFRvRGlydHlSZWN0KQorICAgICAgICAgICAgY2xpcFRvUmVjdChs
b2NhbFBhaW50aW5nSW5mbywgY29udGV4dCwgZnJhZ21lbnQuZm9yZWdyb3VuZFJlY3QsIEluY2x1
ZGVTZWxmRm9yQm9yZGVyUmFkaXVzKTsgLy8gQ2hpbGQgY2xpcHBpbmcgbWFzayBwYWludGluZyB3
aWxsIGhhbmRsZSBjbGlwcGluZyB0byBzZWxmLgorCisgICAgICAgIC8vIFBhaW50IHRoZSBjbGlw
cGVkIG1hc2suCisgICAgICAgIFBhaW50SW5mbyBwYWludEluZm8oY29udGV4dCwgZnJhZ21lbnQu
YmFja2dyb3VuZFJlY3QucmVjdCgpLCBQYWludFBoYXNlQ2xpcHBpbmdNYXNrLCBQYWludEJlaGF2
aW9yTm9ybWFsLCBzdWJ0cmVlUGFpbnRSb290Rm9yUmVuZGVyZXIsIG51bGxwdHIsIG51bGxwdHIs
ICZsb2NhbFBhaW50aW5nSW5mby5yb290TGF5ZXItPnJlbmRlcmVyKCkpOworICAgICAgICByZW5k
ZXJlcigpLnBhaW50KHBhaW50SW5mbywgdG9MYXlvdXRQb2ludChmcmFnbWVudC5sYXllckJvdW5k
cy5sb2NhdGlvbigpIC0gcmVuZGVyQm94TG9jYXRpb24oKSArIGxvY2FsUGFpbnRpbmdJbmZvLnN1
YnBpeGVsQWNjdW11bGF0aW9uKSk7CisKKyAgICAgICAgaWYgKGxvY2FsUGFpbnRpbmdJbmZvLmNs
aXBUb0RpcnR5UmVjdCkKKyAgICAgICAgICAgIHJlc3RvcmVDbGlwKGNvbnRleHQsIGxvY2FsUGFp
bnRpbmdJbmZvLnBhaW50RGlydHlSZWN0LCBmcmFnbWVudC5mb3JlZ3JvdW5kUmVjdCk7CisgICAg
fQorfQorCiB2b2lkIFJlbmRlckxheWVyOjpwYWludE92ZXJmbG93Q29udHJvbHNGb3JGcmFnbWVu
dHMoY29uc3QgTGF5ZXJGcmFnbWVudHMmIGxheWVyRnJhZ21lbnRzLCBHcmFwaGljc0NvbnRleHQq
IGNvbnRleHQsIGNvbnN0IExheWVyUGFpbnRpbmdJbmZvJiBsb2NhbFBhaW50aW5nSW5mbykKIHsK
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxheWVyRnJhZ21lbnRzLnNpemUoKTsgKytpKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDNmMTE5MDk1N2NjZTA1
ZGEwMjM3YTkwN2E3ZDgzYmMzY2Q5NjkyYjUuLjIxZmU0OGE0Y2MzMTM3YmZjNGIzOGM3MTRiNzgx
ZWUxYmYzN2JjMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC02
NjcsNiArNjY3LDcgQEAgcHVibGljOgogICAgICAgICBQYWludExheWVyUGFpbnRpbmdPdmVyZmxv
d0NvbnRlbnRzID0gMSA8PCA5LAogICAgICAgICBQYWludExheWVyUGFpbnRpbmdSb290QmFja2dy
b3VuZE9ubHkgPSAxIDw8IDEwLAogICAgICAgICBQYWludExheWVyUGFpbnRpbmdTa2lwUm9vdEJh
Y2tncm91bmQgPSAxIDw8IDExLAorICAgICAgICBQYWludExheWVyUGFpbnRpbmdDaGlsZENsaXBw
aW5nTWFza1BoYXNlID0gMSA8PCAxMiwKICAgICAgICAgUGFpbnRMYXllclBhaW50aW5nQ29tcG9z
aXRpbmdBbGxQaGFzZXMgPSAoUGFpbnRMYXllclBhaW50aW5nQ29tcG9zaXRpbmdCYWNrZ3JvdW5k
UGhhc2UgfCBQYWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ0ZvcmVncm91bmRQaGFzZSB8IFBh
aW50TGF5ZXJQYWludGluZ0NvbXBvc2l0aW5nTWFza1BoYXNlKQogICAgIH07CiAgICAgCkBAIC0x
MDA5LDYgKzEwMTAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFpbnRPdXRsaW5lRm9yRnJhZ21l
bnRzKGNvbnN0IExheWVyRnJhZ21lbnRzJiwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5ZXJQ
YWludGluZ0luZm8mLCBQYWludEJlaGF2aW9yLCBSZW5kZXJPYmplY3QqIHBhaW50aW5nUm9vdEZv
clJlbmRlcmVyKTsKICAgICB2b2lkIHBhaW50T3ZlcmZsb3dDb250cm9sc0ZvckZyYWdtZW50cyhj
b25zdCBMYXllckZyYWdtZW50cyYsIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheWVyUGFpbnRp
bmdJbmZvJik7CiAgICAgdm9pZCBwYWludE1hc2tGb3JGcmFnbWVudHMoY29uc3QgTGF5ZXJGcmFn
bWVudHMmLCBHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXllclBhaW50aW5nSW5mbyYsIFJlbmRl
ck9iamVjdCogcGFpbnRpbmdSb290Rm9yUmVuZGVyZXIpOworICAgIHZvaWQgcGFpbnRDaGlsZENs
aXBwaW5nTWFza0ZvckZyYWdtZW50cyhjb25zdCBMYXllckZyYWdtZW50cyYsIEdyYXBoaWNzQ29u
dGV4dCosIGNvbnN0IExheWVyUGFpbnRpbmdJbmZvJiwgUmVuZGVyT2JqZWN0KiBwYWludGluZ1Jv
b3RGb3JSZW5kZXJlcik7CiAgICAgdm9pZCBwYWludFRyYW5zZm9ybWVkTGF5ZXJJbnRvRnJhZ21l
bnRzKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheWVyUGFpbnRpbmdJbmZvJiwgUGFpbnRMYXll
ckZsYWdzKTsKIAogICAgIFJlbmRlckxheWVyKiB0cmFuc3BhcmVudFBhaW50aW5nQW5jZXN0b3Io
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAK
aW5kZXggOWJlYjRlZmNkMjlmZWMzODMzNjQ1NzIyMmM0NWRiZGEyYTNmMDM4Zi4uZjMwOWE0ODE1
YTYxOWRmMTY0YTNmMzNhYmE2ZWYwNTgzNDg5OTQyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTE0Nyw2ICsxNDcsNyBAQCBSZW5k
ZXJMYXllckJhY2tpbmc6On5SZW5kZXJMYXllckJhY2tpbmcoKQogICAgIHVwZGF0ZUZvcmVncm91
bmRMYXllcihmYWxzZSk7CiAgICAgdXBkYXRlQmFja2dyb3VuZExheWVyKGZhbHNlKTsKICAgICB1
cGRhdGVNYXNrTGF5ZXIoZmFsc2UpOworICAgIHVwZGF0ZUNoaWxkQ2xpcHBpbmdTdHJhdGVneShm
YWxzZSk7CiAgICAgdXBkYXRlU2Nyb2xsaW5nTGF5ZXJzKGZhbHNlKTsKICAgICBkZXRhY2hGcm9t
U2Nyb2xsaW5nQ29vcmRpbmF0b3IoKTsKICAgICBkZXN0cm95R3JhcGhpY3NMYXllcnMoKTsKQEAg
LTM0OCw2ICszNDksNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6ZGVzdHJveUdyYXBoaWNz
TGF5ZXJzKCkKICAgICBtX2JhY2tncm91bmRMYXllciA9IG51bGxwdHI7CiAgICAgbV9jaGlsZENv
bnRhaW5tZW50TGF5ZXIgPSBudWxscHRyOwogICAgIG1fbWFza0xheWVyID0gbnVsbHB0cjsKKyAg
ICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIgPSBudWxscHRyOwogCiAgICAgbV9zY3JvbGxpbmdM
YXllciA9IG51bGxwdHI7CiAgICAgbV9zY3JvbGxpbmdDb250ZW50c0xheWVyID0gbnVsbHB0cjsK
QEAgLTU2OSw2ICs1NzEsOCBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlQ29uZmln
dXJhdGlvbigpCiAKICAgICB1cGRhdGVNYXNrTGF5ZXIocmVuZGVyZXIoKS5oYXNNYXNrKCkpOwog
CisgICAgdXBkYXRlQ2hpbGRDbGlwcGluZ1N0cmF0ZWd5KG5lZWRzRGVzY2VuZGVudHNDbGlwcGlu
Z0xheWVyKTsKKwogICAgIGlmIChtX293bmluZ0xheWVyLmhhc1JlZmxlY3Rpb24oKSkgewogICAg
ICAgICBpZiAobV9vd25pbmdMYXllci5yZWZsZWN0aW9uTGF5ZXIoKS0+YmFja2luZygpKSB7CiAg
ICAgICAgICAgICBHcmFwaGljc0xheWVyKiByZWZsZWN0aW9uTGF5ZXIgPSBtX293bmluZ0xheWVy
LnJlZmxlY3Rpb25MYXllcigpLT5iYWNraW5nKCktPmdyYXBoaWNzTGF5ZXIoKTsKQEAgLTgxNCw2
ICs4MTgsMTIgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdlb21ldHJ5KCkKICAg
ICAgICAgY2xpcExheWVyLT5zZXRQb3NpdGlvbihGbG9hdFBvaW50KGNsaXBwaW5nQm94LmxvY2F0
aW9uKCkgLSBsb2NhbENvbXBvc2l0aW5nQm91bmRzLmxvY2F0aW9uKCkpKTsKICAgICAgICAgY2xp
cExheWVyLT5zZXRTaXplKGNsaXBwaW5nQm94LnNpemUoKSk7CiAgICAgICAgIGNsaXBMYXllci0+
c2V0T2Zmc2V0RnJvbVJlbmRlcmVyKHRvRmxvYXRTaXplKGNsaXBwaW5nQm94LmxvY2F0aW9uKCkp
KTsKKworICAgICAgICBpZiAobV9jaGlsZENsaXBwaW5nTWFza0xheWVyICYmICFtX3Njcm9sbGlu
Z0xheWVyKSB7CisgICAgICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPnNldFBvc2l0
aW9uKGNsaXBMYXllci0+cG9zaXRpb24oKSk7CisgICAgICAgICAgICBtX2NoaWxkQ2xpcHBpbmdN
YXNrTGF5ZXItPnNldFNpemUoY2xpcExheWVyLT5zaXplKCkpOworICAgICAgICAgICAgbV9jaGls
ZENsaXBwaW5nTWFza0xheWVyLT5zZXRPZmZzZXRGcm9tUmVuZGVyZXIoY2xpcExheWVyLT5vZmZz
ZXRGcm9tUmVuZGVyZXIoKSk7CisgICAgICAgIH0KICAgICB9CiAgICAgCiAgICAgaWYgKG1fbWFz
a0xheWVyKSB7CkBAIC05NDIsNiArOTUyLDEyIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1
cGRhdGVHZW9tZXRyeSgpCiAgICAgICAgIEZsb2F0U2l6ZSBvbGRTY3JvbGxpbmdMYXllck9mZnNl
dCA9IG1fc2Nyb2xsaW5nTGF5ZXItPm9mZnNldEZyb21SZW5kZXJlcigpOwogICAgICAgICBtX3Nj
cm9sbGluZ0xheWVyLT5zZXRPZmZzZXRGcm9tUmVuZGVyZXIoLXRvRmxvYXRTaXplKHBhZGRpbmdC
b3gubG9jYXRpb24oKSkpOwogCisgICAgICAgIGlmIChtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIp
IHsKKyAgICAgICAgICAgIG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci0+c2V0UG9zaXRpb24obV9z
Y3JvbGxpbmdMYXllci0+cG9zaXRpb24oKSk7CisgICAgICAgICAgICBtX2NoaWxkQ2xpcHBpbmdN
YXNrTGF5ZXItPnNldFNpemUobV9zY3JvbGxpbmdMYXllci0+c2l6ZSgpKTsKKyAgICAgICAgICAg
IG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci0+c2V0T2Zmc2V0RnJvbVJlbmRlcmVyKHRvRmxvYXRT
aXplKHBhZGRpbmdCb3gubG9jYXRpb24oKSkpOworICAgICAgICB9CisKICAgICAgICAgYm9vbCBw
YWRkaW5nQm94T2Zmc2V0Q2hhbmdlZCA9IG9sZFNjcm9sbGluZ0xheWVyT2Zmc2V0ICE9IG1fc2Ny
b2xsaW5nTGF5ZXItPm9mZnNldEZyb21SZW5kZXJlcigpOwogCiAgICAgICAgIEludFNpemUgc2Ny
b2xsU2l6ZShtX293bmluZ0xheWVyLnNjcm9sbFdpZHRoKCksIG1fb3duaW5nTGF5ZXIuc2Nyb2xs
SGVpZ2h0KCkpOwpAQCAtMTQxNCw2ICsxNDMwLDM5IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5n
Ojp1cGRhdGVNYXNrTGF5ZXIoYm9vbCBuZWVkc01hc2tMYXllcikKICAgICAgICAgbV9ncmFwaGlj
c0xheWVyLT5zZXRQYWludGluZ1BoYXNlKHBhaW50aW5nUGhhc2VGb3JQcmltYXJ5TGF5ZXIoKSk7
CiB9CiAKK3ZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDaGlsZENsaXBwaW5nU3RyYXRl
Z3koYm9vbCBuZWVkc0Rlc2NlbmRlbnRzQ2xpcHBpbmdMYXllcikKK3sKKyAgICBpZiAoIWhhc0Ns
aXBwaW5nTGF5ZXIoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG5lZWRzRGVzY2VuZGVu
dHNDbGlwcGluZ0xheWVyKSB7CisgICAgICAgIGlmIChpczxSZW5kZXJCb3g+KHJlbmRlcmVyKCkp
KSB7CisgICAgICAgICAgICBMYXlvdXRSZWN0IGJveFJlY3QoTGF5b3V0UG9pbnQoKSwgZG93bmNh
c3Q8UmVuZGVyQm94PihyZW5kZXJlcigpKS5zaXplKCkpOworICAgICAgICAgICAgRmxvYXRSb3Vu
ZGVkUmVjdCBjb250ZW50c0NsaXBwaW5nUmVjdCA9IHJlbmRlcmVyKCkuc3R5bGUoKS5nZXRSb3Vu
ZGVkSW5uZXJCb3JkZXJGb3IoYm94UmVjdCkucGl4ZWxTbmFwcGVkUm91bmRlZFJlY3RGb3JQYWlu
dGluZyhkZXZpY2VTY2FsZUZhY3RvcigpKTsKKyAgICAgICAgICAgIGNvbnRlbnRzQ2xpcHBpbmdS
ZWN0Lm1vdmUoY29udGVudE9mZnNldEluQ29tcG9zdGluZ0xheWVyKCkpOworICAgICAgICAgICAg
aWYgKGNsaXBwaW5nTGF5ZXIoKS0+YXBwbHlDbGlwcGluZ0JvcmRlcihjb250ZW50c0NsaXBwaW5n
UmVjdCkpIHsKKyAgICAgICAgICAgICAgICBpZiAobV9jaGlsZENsaXBwaW5nTWFza0xheWVyKSAK
KyAgICAgICAgICAgICAgICAgICAgbV9jaGlsZENsaXBwaW5nTWFza0xheWVyID0gbnVsbHB0cjsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBpZiAoIW1fY2hpbGRDbGlwcGluZ01hc2tMYXllcikgeworICAgICAgICAgICAgbV9jaGls
ZENsaXBwaW5nTWFza0xheWVyID0gY3JlYXRlR3JhcGhpY3NMYXllcigiQ2hpbGQgQ2xpcHBpbmcg
TWFzayBMYXllciIpOworICAgICAgICAgICAgbV9jaGlsZENsaXBwaW5nTWFza0xheWVyLT5zZXRE
cmF3c0NvbnRlbnQodHJ1ZSk7CisgICAgICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIt
PnNldFBhaW50aW5nUGhhc2UoR3JhcGhpY3NMYXllclBhaW50Q2hpbGRDbGlwcGluZ01hc2spOwor
ICAgICAgICAgICAgY2xpcHBpbmdMYXllcigpLT5zZXRNYXNrTGF5ZXIobV9jaGlsZENsaXBwaW5n
TWFza0xheWVyLmdldCgpKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGlmICht
X2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIpIHsKKyAgICAgICAgICAgIG1fY2hpbGRDbGlwcGluZ01h
c2tMYXllciA9IG51bGxwdHI7CisgICAgICAgICAgICBjbGlwcGluZ0xheWVyKCktPnNldE1hc2tM
YXllcihudWxscHRyKTsKKyAgICAgICAgfSBlbHNlIAorICAgICAgICAgICAgY2xpcHBpbmdMYXll
cigpLT5jbGVhckNsaXBwaW5nQm9yZGVyKCk7CisgICAgfQorCit9CisKIGJvb2wgUmVuZGVyTGF5
ZXJCYWNraW5nOjp1cGRhdGVTY3JvbGxpbmdMYXllcnMoYm9vbCBuZWVkc1Njcm9sbGluZ0xheWVy
cykKIHsKICAgICBpZiAobmVlZHNTY3JvbGxpbmdMYXllcnMgPT0gISFtX3Njcm9sbGluZ0xheWVy
KQpAQCAtMjA2NSw2ICsyMTE0LDkgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnNldENvbnRl
bnRzTmVlZERpc3BsYXkoR3JhcGhpY3NMYXllcjo6U2hvdWxkQ2xpcFRvTGF5ZXIKICAgICBpZiAo
bV9tYXNrTGF5ZXIgJiYgbV9tYXNrTGF5ZXItPmRyYXdzQ29udGVudCgpKQogICAgICAgICBtX21h
c2tMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7CiAKKyAgICBpZiAobV9jaGlsZENsaXBwaW5nTWFz
a0xheWVyICYmIG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci0+ZHJhd3NDb250ZW50KCkpCisgICAg
ICAgIG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7CisKICAgICBp
ZiAobV9zY3JvbGxpbmdDb250ZW50c0xheWVyICYmIG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci0+
ZHJhd3NDb250ZW50KCkpCiAgICAgICAgIG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci0+c2V0TmVl
ZHNEaXNwbGF5KCk7CiB9CkBAIC0yMTA0LDYgKzIxNTYsMTIgQEAgdm9pZCBSZW5kZXJMYXllckJh
Y2tpbmc6OnNldENvbnRlbnRzTmVlZERpc3BsYXlJblJlY3QoY29uc3QgTGF5b3V0UmVjdCYgciwg
R3JhcGgKICAgICAgICAgbV9tYXNrTGF5ZXItPnNldE5lZWRzRGlzcGxheUluUmVjdChsYXllckRp
cnR5UmVjdCwgc2hvdWxkQ2xpcCk7CiAgICAgfQogCisgICAgaWYgKG1fY2hpbGRDbGlwcGluZ01h
c2tMYXllciAmJiBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPmRyYXdzQ29udGVudCgpKSB7Cisg
ICAgICAgIEZsb2F0UmVjdCBsYXllckRpcnR5UmVjdCA9IHI7CisgICAgICAgIGxheWVyRGlydHlS
ZWN0Lm1vdmUoLW1fY2hpbGRDbGlwcGluZ01hc2tMYXllci0+b2Zmc2V0RnJvbVJlbmRlcmVyKCkp
OworICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPnNldE5lZWRzRGlzcGxheUluUmVj
dChsYXllckRpcnR5UmVjdCk7CisgICAgfQorCiAgICAgaWYgKG1fc2Nyb2xsaW5nQ29udGVudHNM
YXllciAmJiBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXItPmRyYXdzQ29udGVudCgpKSB7CiAgICAg
ICAgIEZsb2F0UmVjdCBsYXllckRpcnR5UmVjdCA9IHBpeGVsU25hcHBlZFJlY3RGb3JQYWludGlu
ZzsKICAgICAgICAgbGF5ZXJEaXJ0eVJlY3QubW92ZSgtbV9zY3JvbGxpbmdDb250ZW50c0xheWVy
LT5vZmZzZXRGcm9tUmVuZGVyZXIoKSArIG1fZGV2aWNlUGl4ZWxGcmFjdGlvbkZyb21SZW5kZXJl
cik7CkBAIC0yMTM4LDYgKzIxOTYsOCBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRJ
bnRvTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcAogICAgICAg
ICBwYWludEZsYWdzIHw9IFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRpbmdDb21wb3NpdGlu
Z0ZvcmVncm91bmRQaGFzZTsKICAgICBpZiAocGFpbnRpbmdQaGFzZSAmIEdyYXBoaWNzTGF5ZXJQ
YWludE1hc2spCiAgICAgICAgIHBhaW50RmxhZ3MgfD0gUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJQ
YWludGluZ0NvbXBvc2l0aW5nTWFza1BoYXNlOworICAgIGlmIChwYWludGluZ1BoYXNlICYgR3Jh
cGhpY3NMYXllclBhaW50Q2hpbGRDbGlwcGluZ01hc2spCisgICAgICAgIHBhaW50RmxhZ3MgfD0g
UmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJQYWludGluZ0NoaWxkQ2xpcHBpbmdNYXNrUGhhc2U7CiAg
ICAgaWYgKHBhaW50aW5nUGhhc2UgJiBHcmFwaGljc0xheWVyUGFpbnRPdmVyZmxvd0NvbnRlbnRz
KQogICAgICAgICBwYWludEZsYWdzIHw9IFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRpbmdP
dmVyZmxvd0NvbnRlbnRzOwogICAgIGlmIChwYWludGluZ1BoYXNlICYgR3JhcGhpY3NMYXllclBh
aW50Q29tcG9zaXRlZFNjcm9sbCkKQEAgLTIyMDIsNiArMjI2Miw3IEBAIHZvaWQgUmVuZGVyTGF5
ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5
ZXIsIEdyYXBoCiAgICAgICAgIHx8IGdyYXBoaWNzTGF5ZXIgPT0gbV9mb3JlZ3JvdW5kTGF5ZXIu
Z2V0KCkKICAgICAgICAgfHwgZ3JhcGhpY3NMYXllciA9PSBtX2JhY2tncm91bmRMYXllci5nZXQo
KQogICAgICAgICB8fCBncmFwaGljc0xheWVyID09IG1fbWFza0xheWVyLmdldCgpCisgICAgICAg
IHx8IGdyYXBoaWNzTGF5ZXIgPT0gbV9jaGlsZENsaXBwaW5nTWFza0xheWVyLmdldCgpCiAgICAg
ICAgIHx8IGdyYXBoaWNzTGF5ZXIgPT0gbV9zY3JvbGxpbmdDb250ZW50c0xheWVyLmdldCgpKSB7
CiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBhaW50KCZyZW5kZXJlcigp
KTsKIApAQCAtMjU3OCw2ICsyNjM5LDggQEAgZG91YmxlIFJlbmRlckxheWVyQmFja2luZzo6YmFj
a2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUoKSBjb25zdAogICAgICAgICBiYWNraW5nTWVtb3J5ICs9
IG1fYmFja2dyb3VuZExheWVyLT5iYWNraW5nU3RvcmVNZW1vcnlFc3RpbWF0ZSgpOwogICAgIGlm
IChtX21hc2tMYXllcikKICAgICAgICAgYmFja2luZ01lbW9yeSArPSBtX21hc2tMYXllci0+YmFj
a2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUoKTsKKyAgICBpZiAobV9jaGlsZENsaXBwaW5nTWFza0xh
eWVyKQorICAgICAgICBiYWNraW5nTWVtb3J5ICs9IG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci0+
YmFja2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUoKTsKIAogICAgIGlmIChtX3Njcm9sbGluZ0NvbnRl
bnRzTGF5ZXIpCiAgICAgICAgIGJhY2tpbmdNZW1vcnkgKz0gbV9zY3JvbGxpbmdDb250ZW50c0xh
eWVyLT5iYWNraW5nU3RvcmVNZW1vcnlFc3RpbWF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4IGNjYmJmNWU2ZGI3YTRjNDhlNTI4NTQy
YTkxODMyN2QyN2UwYzMwZmIuLmY5NGZiYWVjM2ZmODcyMTdiYjY2ODBhMWM0YzJhMjdkNDhjMWRi
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgK
QEAgLTEzOSw2ICsxMzksNyBAQCBwdWJsaWM6CiAgICAgU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGlu
Z05vZGVJREZvckNoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxpbmdOb2RlSUQgPyBt
X3Njcm9sbGluZ05vZGVJRCA6IG1fdmlld3BvcnRDb25zdHJhaW5lZE5vZGVJRDsgfQogCiAgICAg
Ym9vbCBoYXNNYXNrTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX21hc2tMYXllciAhPSAwOyB9Cisg
ICAgYm9vbCBoYXNDaGlsZENsaXBwaW5nTWFza0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9jaGls
ZENsaXBwaW5nTWFza0xheWVyICE9IG51bGxwdHI7IH0KIAogICAgIEdyYXBoaWNzTGF5ZXIqIHBh
cmVudEZvclN1YmxheWVycygpIGNvbnN0OwogICAgIEdyYXBoaWNzTGF5ZXIqIGNoaWxkRm9yU3Vw
ZXJsYXllcnMoKSBjb25zdDsKQEAgLTI2OCw2ICsyNjksNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
cmVxdWlyZXNTY3JvbGxDb3JuZXJMYXllcigpIGNvbnN0OwogICAgIGJvb2wgdXBkYXRlU2Nyb2xs
aW5nTGF5ZXJzKGJvb2wgc2Nyb2xsaW5nTGF5ZXJzKTsKICAgICB2b2lkIHVwZGF0ZURyYXdzQ29u
dGVudChib29sIGlzU2ltcGxlQ29udGFpbmVyKTsKKyAgICB2b2lkIHVwZGF0ZUNoaWxkQ2xpcHBp
bmdTdHJhdGVneShib29sIG5lZWRzRGVzY2VuZGVudHNDbGlwcGluZ0xheWVyKTsKICAgICAKICAg
ICB2b2lkIHVwZGF0ZVJvb3RMYXllckNvbmZpZ3VyYXRpb24oKTsKIApAQCAtMzM1LDYgKzMzNyw3
IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fYmFja2dy
b3VuZExheWVyOyAvLyBPbmx5IHVzZWQgaW4gY2FzZXMgd2hlcmUgd2UgbmVlZCB0byBkcmF3IHRo
ZSBiYWNrZ3JvdW5kIHNlcGFyYXRlbHkuCiAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5
ZXI+IG1fY2hpbGRDb250YWlubWVudExheWVyOyAvLyBPbmx5IHVzZWQgaWYgd2UgaGF2ZSBjbGlw
cGluZyBvbiBhIHN0YWNraW5nIGNvbnRleHQgd2l0aCBjb21wb3NpdGluZyBjaGlsZHJlbiwgb3Ig
aWYgdGhlIGxheWVyIGhhcyBhIHRpbGUgY2FjaGUuCiAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBo
aWNzTGF5ZXI+IG1fbWFza0xheWVyOyAvLyBPbmx5IHVzZWQgaWYgd2UgaGF2ZSBhIG1hc2suCisg
ICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fY2hpbGRDbGlwcGluZ01hc2tMYXll
cjsgLy8gT25seSB1c2VkIGlmIHdlIGhhdmUgdG8gY2xpcCBjaGlsZCBsYXllcnMgb3IgYWNjZWxl
cmF0ZWQgY29udGVudHMgd2l0aCBib3JkZXIgcmFkaXVzIG9yIGNsaXAtcGF0aC4KIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJh
cjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9sYXllckZvclZlcnRpY2Fs
U2Nyb2xsYmFyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243630</attachid>
            <date>2014-12-22 11:26:21 -0800</date>
            <delta_ts>2015-01-01 03:17:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>23547</size>
            <attacher name="Byungseon(Sun) Shin">sun.shin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3NjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjgxZTVjNC4uMTc3YWNh
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE0LTEyLTIyICBCeXVuZ3Nlb24gU2hp
biAgPHN1bi5zaGluQGxnZS5jb20+CisKKyAgICAgICAgRml4IEJvcmRlci1yYWRpdXMgY2xpcHBp
bmcgaXNzdWUgb24gYSBjb21wb3NpdGVkIGRlc2NlbmRhbnRzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg1NTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggY2xpcHBpbmcgY29tcG9zaXRpbmcgZGVz
Y2VuZGFudHMgb2YgYW4gYWNjZWxlcmF0ZWQgbGF5ZXIgaGF2aW5nCisgICAgICAgIGJvcmRlciBy
YWRpdXMgYW5kIGNsaXAgb3ZlcmZsb3cgaXNzdWUgYnkgdXNpbmcgbGF5ZXIgY29ybmVyLXJhZGl1
cworICAgICAgICBvciBhIENBU2hhcGVMYXllciBtYXNrIG9uIE1hYywgYW5kIHNldHRpbmcgdXAg
YSBzZXBhcmF0ZSBtYXNrIGxheWVyCisgICAgICAgIG9uIHRoZSBjaGlsZENvbnRhaW5tZW50TGF5
ZXIgb24gb3RoZXIgcGxhdGZvcm1zLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgZXh0cmFjdGVk
IGZyb20gZm9sbG93aW5nIEJsaW5rIHJldmlzaW9uczoKKyAgICAgICAgPGh0dHA6Ly9zcmMuY2hy
b21pdW0ub3JnL3ZpZXd2Yy9ibGluaz92aWV3PXJldmlzaW9uJnJldmlzaW9uPTE2MjQ2Mz4KKyAg
ICAgICAgPGh0dHA6Ly9zcmMuY2hyb21pdW0ub3JnL3ZpZXd2Yy9ibGluaz92aWV3PXJldmlzaW9u
JnJldmlzaW9uPTE1ODI1OD4KKyAgICAgICAgYnkgPHJvc2NhQGFkb2JlLmNvbT4KKworICAgICAg
ICBDbGlwIGFjY2VsZXJhdGVkIGRlc2NlbmRhbnRzIG9mIGFuIGFjY2VsZXJhdGVkIGxheWVyIGhh
dmluZyBib3JkZXIgcmFkaXVzIGFuZCBjbGlwIG92ZXJmbG93LgorICAgICAgICBMYXJnZSBjYW52
YXMgZG9lcyBub3QgaG9ub3IgY29udGFpbmluZyBkaXYncyBib3JkZXIgcmFkaXVzLgorCisgICAg
ICAgIGFuZCA8aHR0cDovL3NyYy5jaHJvbWl1bS5vcmcvdmlld3ZjL2JsaW5rP3ZpZXc9cmV2aXNp
b24mcmV2aXNpb249MTYwNTc4PgorICAgICAgICBieSA8anVub3ZAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIEZpeCBmb3IgQ1NTIGNsaXAtcGF0aCB3aXRoIGFjY2VsZXJhdGVkIDJEIGNhbnZhcy4K
KworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6ZHVt
cFByb3BlcnRpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmFwcGx5Q2xpcHBpbmdCb3JkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6Y2xlYXJDbGlwcGluZ0JvcmRlcik6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpuZWVkc0NsaXBwaW5nTWFza0xheWVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6YXBwbHlDbGlwcGluZ0JvcmRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNsZWFyQ2xpcHBpbmdCb3JkZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICAq
IHJlbmRlcmluZy9QYWludFBoYXNlLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludE9iamVjdCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
b3g6OnBhaW50Q2xpcHBpbmdNYXNrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyOjpwYWludExheWVyQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnBhaW50Q2hpbGRDbGlwcGluZ01hc2tGb3JGcmFnbWVudHMpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp+UmVu
ZGVyTGF5ZXJCYWNraW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6
ZGVzdHJveUdyYXBoaWNzTGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFj
a2luZzo6dXBkYXRlQ29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckJhY2tpbmc6OnVwZGF0ZUdlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
QmFja2luZzo6dXBkYXRlQ2hpbGRDbGlwcGluZ1N0cmF0ZWd5KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyQmFja2luZzo6c2V0Q29udGVudHNOZWVkRGlzcGxheSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnNldENvbnRlbnRzTmVlZERpc3BsYXlJblJlY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludEludG9MYXllcik6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50Q29udGVudHMpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpiYWNraW5nU3RvcmVNZW1vcnlF
c3RpbWF0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oOgorCiAy
MDE0LTEyLTIyICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBH
ZW5lcmljIGZvbnQgY29kZSBzaG91bGQgbm90IGtub3cgYWJvdXQgU1ZHIGZvbnQgbWlzc2luZyBn
bHlwaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBhYTk5ZDQ3Li45ZDE5NDY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgpAQCAtNTk1LDYgKzU5NSw4IEBAIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXll
ckNBMThzZXRDb250ZW50c1Zpc2libGVFYgogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0Ex
OHNldE9wYWNpdHlJbnRlcm5hbEVmCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE4c2V0
UmVwbGljYXRlZExheWVyRVBOU18xM0dyYXBoaWNzTGF5ZXJFCiBfX1pON1dlYkNvcmUxNUdyYXBo
aWNzTGF5ZXJDQTE4c2V0U2hvd0RlYnVnQm9yZGVyRWIKK19fWk43V2ViQ29yZTE1R3JhcGhpY3NM
YXllckNBMTlhcHBseUNsaXBwaW5nQm9yZGVyRVJLTlNfMTZGbG9hdFJvdW5kZWRSZWN0RQorX19a
TjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExOWNsZWFyQ2xpcHBpbmdCb3JkZXJFdgogX19aTjdX
ZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExOXNldEN1c3RvbUFwcGVhcmFuY2VFTlNfMTNHcmFwaGlj
c0xheWVyMTZDdXN0b21BcHBlYXJhbmNlRQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0Ey
MHNldENoaWxkcmVuVHJhbnNmb3JtRVJLTlNfMjBUcmFuc2Zvcm1hdGlvbk1hdHJpeEUKIF9fWk43
V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMjBzZXRSZXBsaWNhdGVkQnlMYXllckVQTlNfMTNHcmFw
aGljc0xheWVyRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0xheWVyLmNwcAppbmRleCA2MmQyNTE2Li5kNjI4OGI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcApAQCAtNzYxLDYgKzc2
MSwxMCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OmR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRz
LCBpbnQgaW5kZW50LCBMYXllclRyZWVBc1RleHRCZQogICAgICAgICAgICAgd3JpdGVJbmRlbnQo
dHMsIGluZGVudCArIDIpOwogICAgICAgICAgICAgdHMgPDwgIkdyYXBoaWNzTGF5ZXJQYWludE1h
c2tcbiI7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKHBhaW50aW5nUGhhc2UoKSAmIEdyYXBoaWNz
TGF5ZXJQYWludENoaWxkQ2xpcHBpbmdNYXNrKSB7CisgICAgICAgICAgICB3cml0ZUluZGVudCh0
cywgaW5kZW50ICsgMik7CisgICAgICAgICAgICB0cyA8PCAiR3JhcGhpY3NMYXllclBhaW50Q2hp
bGRDbGlwcGluZ01hc2tcbiI7CisgICAgICAgIH0KICAgICAgICAgaWYgKHBhaW50aW5nUGhhc2Uo
KSAmIEdyYXBoaWNzTGF5ZXJQYWludE92ZXJmbG93Q29udGVudHMpIHsKICAgICAgICAgICAgIHdy
aXRlSW5kZW50KHRzLCBpbmRlbnQgKyAyKTsKICAgICAgICAgICAgIHRzIDw8ICJHcmFwaGljc0xh
eWVyUGFpbnRPdmVyZmxvd0NvbnRlbnRzXG4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCmluZGV4IDgzMzMzMjIuLjczNzEzZjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKQEAg
LTM3MCw2ICszNzAsOSBAQCBwdWJsaWM6CiAgICAgRmxvYXRSb3VuZGVkUmVjdCBjb250ZW50c0Ns
aXBwaW5nUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudHNDbGlwcGluZ1JlY3Q7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNDbGlwcGluZ1JlY3QoY29uc3QgRmxvYXRSb3VuZGVk
UmVjdCYgcm91bmRlZFJlY3QpIHsgbV9jb250ZW50c0NsaXBwaW5nUmVjdCA9IHJvdW5kZWRSZWN0
OyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgYXBwbHlDbGlwcGluZ0JvcmRlcihjb25zdCBGbG9hdFJv
dW5kZWRSZWN0JikgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJDbGlw
cGluZ0JvcmRlcigpIHsgcmV0dXJuOyB9CisKICAgICAvLyBUcmFuc2l0aW9ucyBhcmUgaWRlbnRp
ZmllZCBieSBhIHNwZWNpYWwgYW5pbWF0aW9uIG5hbWUgdGhhdCBjYW5ub3QgY2xhc2ggd2l0aCBh
IGtleWZyYW1lIGlkZW50aWZpZXIuCiAgICAgc3RhdGljIFN0cmluZyBhbmltYXRpb25OYW1lRm9y
VHJhbnNpdGlvbihBbmltYXRlZFByb3BlcnR5SUQpOwogICAgIApAQCAtNTAwLDYgKzUwMyw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNHcmFwaGljc0xheWVyQ0FSZW1vdGUoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0dyYXBoaWNzTGF5ZXJUZXh0
dXJlTWFwcGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBu
ZWVkc0NsaXBwaW5nTWFza0xheWVyKCkgeyByZXR1cm4gdHJ1ZTsgfTsKKwogcHJvdGVjdGVkOgog
ICAgIC8vIFNob3VsZCBiZSBjYWxsZWQgZnJvbSBkZXJpdmVkIGNsYXNzIGRlc3RydWN0b3JzLiBT
aG91bGQgY2FsbCB3aWxsQmVEZXN0cm95ZWQoKSBvbiBzdXBlci4KICAgICBXRUJDT1JFX0VYUE9S
VCB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKaW5kZXggYjQ1ZGYx
Yy4uMWQ5YWUxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaApAQCAtNDQsNiArNDQsNyBAQCBlbnVtIEdyYXBoaWNz
TGF5ZXJQYWludGluZ1BoYXNlRmxhZ3MgewogICAgIEdyYXBoaWNzTGF5ZXJQYWludE1hc2sgPSAo
MSA8PCAyKSwKICAgICBHcmFwaGljc0xheWVyUGFpbnRPdmVyZmxvd0NvbnRlbnRzID0gKDEgPDwg
MyksCiAgICAgR3JhcGhpY3NMYXllclBhaW50Q29tcG9zaXRlZFNjcm9sbCA9ICgxIDw8IDQpLAor
ICAgIEdyYXBoaWNzTGF5ZXJQYWludENoaWxkQ2xpcHBpbmdNYXNrID0gKDEgPDwgNSksCiAgICAg
R3JhcGhpY3NMYXllclBhaW50QWxsV2l0aE92ZXJmbG93Q2xpcCA9IChHcmFwaGljc0xheWVyUGFp
bnRCYWNrZ3JvdW5kIHwgR3JhcGhpY3NMYXllclBhaW50Rm9yZWdyb3VuZCB8IEdyYXBoaWNzTGF5
ZXJQYWludE1hc2spCiB9OwogdHlwZWRlZiB1bnNpZ25lZCBHcmFwaGljc0xheWVyUGFpbnRpbmdQ
aGFzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IGZjZTk2MGYuLjIwZTU2NjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNw
cApAQCAtMjAyNyw2ICsyMDI3LDM3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250
ZW50c0NvbG9yTGF5ZXIoKQogICAgIH0KIH0KIAorYm9vbCBHcmFwaGljc0xheWVyQ0E6OmFwcGx5
Q2xpcHBpbmdCb3JkZXIoY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcm91bmRlZFJlY3QpCit7Cisg
ICAgaWYgKHJvdW5kZWRSZWN0LnJhZGlpKCkuaXNVbmlmb3JtQ29ybmVyUmFkaXVzKCkpIHsKKyAg
ICAgICAgbV9sYXllci0+c2V0TWFzayhudWxscHRyKTsKKyAgICAgICAgbV9sYXllci0+c2V0TWFz
a3NUb0JvdW5kcyh0cnVlKTsKKyAgICAgICAgbV9sYXllci0+c2V0Q29ybmVyUmFkaXVzKHJvdW5k
ZWRSZWN0LnJhZGlpKCkudG9wTGVmdCgpLndpZHRoKCkpOworICAgIH0gZWxzZSB7CisgICAgICAg
IGlmICghbV9zaGFwZU1hc2tMYXllcikgeworICAgICAgICAgICAgbV9zaGFwZU1hc2tMYXllciA9
IGNyZWF0ZVBsYXRmb3JtQ0FMYXllcihQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVNoYXBlTGF5
ZXIsIHRoaXMpOworICAgICAgICAgICAgbV9zaGFwZU1hc2tMYXllci0+c2V0QW5jaG9yUG9pbnQo
RmxvYXRQb2ludDNEKCkpOworICAgICAgICB9CisKKyAgICAgICAgbV9zaGFwZU1hc2tMYXllci0+
c2V0UG9zaXRpb24oRmxvYXRQb2ludCgpKTsKKyAgICAgICAgbV9zaGFwZU1hc2tMYXllci0+c2V0
Qm91bmRzKG1fbGF5ZXItPmJvdW5kcygpKTsKKyAgICAKKyAgICAgICAgbV9sYXllci0+c2V0Q29y
bmVyUmFkaXVzKDApOworICAgICAgICBtX2xheWVyLT5zZXRNYXNrKG1fc2hhcGVNYXNrTGF5ZXIu
Z2V0KCkpOworCisgICAgICAgIG1fc2hhcGVNYXNrTGF5ZXItPnNldFNoYXBlUm91bmRlZFJlY3Qo
cm91bmRlZFJlY3QpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEdyYXBo
aWNzTGF5ZXJDQTo6Y2xlYXJDbGlwcGluZ0JvcmRlcigpCit7CisgICAgbV9sYXllci0+c2V0Q29y
bmVyUmFkaXVzKDApOworICAgIG1fbGF5ZXItPnNldE1hc2tzVG9Cb3VuZHMoZmFsc2UpOworICAg
IG1fbGF5ZXItPnNldE1hc2sobnVsbHB0cik7Cit9CisKIC8vIFRoZSBjbGlwcGluZyBzdHJhdGVn
eSBkZXBlbmRzIG9uIHdoZXRoZXIgdGhlIHJvdW5kZWQgcmVjdCBoYXMgZXF1YWwgY29ybmVyIHJh
ZGlpLgogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNsaXBwaW5nU3RyYXRlZ3koUGxhdGZv
cm1DQUxheWVyJiBjbGlwcGluZ0xheWVyLCBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiYgc2hhcGVN
YXNrTGF5ZXIsIGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIHJvdW5kZWRSZWN0KQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
aAppbmRleCA4NDI0NDcyLi40OTVmNTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaApAQCAtMTczLDYgKzE3Myw5IEBA
IHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzR3JhcGhpY3NMYXllckNB
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCisgICAgdmlydHVhbCBib29sIGFw
cGx5Q2xpcHBpbmdCb3JkZXIoY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBjbGVhckNsaXBwaW5nQm9yZGVyKCkgb3ZlcnJpZGU7CisKICAgICBXRUJD
T1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAKICAg
ICAvLyBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQgb3ZlcnJpZGVzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUGFpbnRQaGFzZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1BhaW50UGhhc2UuaAppbmRleCAwYmJmOTlhLi5hNDQ4ZDkyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUGFpbnRQaGFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9QYWludFBoYXNlLmgKQEAgLTQ5LDcgKzQ5LDggQEAgZW51bSBQYWludFBoYXNlIHsKICAg
ICBQYWludFBoYXNlU2VsZWN0aW9uLAogICAgIFBhaW50UGhhc2VDb2xsYXBzZWRUYWJsZUJvcmRl
cnMsCiAgICAgUGFpbnRQaGFzZVRleHRDbGlwLAotICAgIFBhaW50UGhhc2VNYXNrCisgICAgUGFp
bnRQaGFzZU1hc2ssCisgICAgUGFpbnRQaGFzZUNsaXBwaW5nTWFzawogfTsKIAogZW51bSBQYWlu
dEJlaGF2aW9yRmxhZ3MgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAK
aW5kZXggN2ZlNmIwYy4uZWMxMDU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwCkBAIC0xNTc2LDYgKzE1NzYsMTEgQEAgdm9pZCBSZW5kZXJCbG9jazo6cGFpbnRP
YmplY3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnMK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChwYWludFBoYXNlID09IFBhaW50UGhh
c2VDbGlwcGluZ01hc2sgJiYgc3R5bGUoKS52aXNpYmlsaXR5KCkgPT0gVklTSUJMRSkgeworICAg
ICAgICBwYWludENsaXBwaW5nTWFzayhwYWludEluZm8sIHBhaW50T2Zmc2V0KTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKwogICAgIC8vIElmIGp1c3QgcGFpbnRpbmcgdGhlIHJvb3QgYmFja2dy
b3VuZCwgdGhlbiByZXR1cm4uCiAgICAgaWYgKHBhaW50SW5mby5wYWludFJvb3RCYWNrZ3JvdW5k
T25seSgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwCmluZGV4IGY0NjQzMTAuLjYzOTk4YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwCkBAIC0xNDgwLDYgKzE0ODAsMTUgQEAgdm9pZCBSZW5kZXJCb3g6OnBhaW50TWFz
ayhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQog
ICAgIHBhaW50TWFza0ltYWdlcyhwYWludEluZm8sIHBhaW50UmVjdCk7CiB9CiAKK3ZvaWQgUmVu
ZGVyQm94OjpwYWludENsaXBwaW5nTWFzayhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5
b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQoreworICAgIGlmICghcGFpbnRJbmZvLnNob3VsZFBhaW50
V2l0aGluUm9vdCgqdGhpcykgfHwgc3R5bGUoKS52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSB8fCBw
YWludEluZm8ucGhhc2UgIT0gUGFpbnRQaGFzZUNsaXBwaW5nTWFzayB8fCBwYWludEluZm8uY29u
dGV4dC0+cGFpbnRpbmdEaXNhYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBMYXlvdXRS
ZWN0IHBhaW50UmVjdCA9IExheW91dFJlY3QocGFpbnRPZmZzZXQsIHNpemUoKSk7CisgICAgcGFp
bnRJbmZvLmNvbnRleHQtPmZpbGxSZWN0KHNuYXBwZWRJbnRSZWN0KHBhaW50UmVjdCksIENvbG9y
OjpibGFjaywgc3R5bGUoKS5jb2xvclNwYWNlKCkpOworfQorCiB2b2lkIFJlbmRlckJveDo6cGFp
bnRNYXNrSW1hZ2VzKGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRSZWN0
JiBwYWludFJlY3QpCiB7CiAgICAgLy8gRmlndXJlIG91dCBpZiB3ZSBuZWVkIHRvIHB1c2ggYSB0
cmFuc3BhcmVuY3kgbGF5ZXIgdG8gcmVuZGVyIG91ciBtYXNrLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5oCmluZGV4IGI1NDhkZTkuLjVjN2RiYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmgKQEAgLTQ5NSw2ICs0OTUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50T2JqZWN0KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JikgeyBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBwYWludEJveERlY29yYXRpb25zKFBh
aW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50TWFz
ayhQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOworICAgIHZpcnR1YWwgdm9pZCBwYWlu
dENsaXBwaW5nTWFzayhQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwogICAgIHZpcnR1
YWwgdm9pZCBpbWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRyLCBjb25zdCBJbnRSZWN0KiA9IDAp
IG92ZXJyaWRlOwogCiAgICAgLy8gQ2FsbGVkIHdoZW4gYSBwb3NpdGlvbmVkIG9iamVjdCBtb3Zl
cyBidXQgZG9lc24ndCBuZWNlc3NhcmlseSBjaGFuZ2Ugc2l6ZS4gIEEgc2ltcGxpZmllZCBsYXlv
dXQgaXMgYXR0ZW1wdGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApp
bmRleCA5MDI1NTc0Li41MmM1MDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAKQEAgLTQxOTUsNiArNDE5NSwxMSBAQCB2b2lkIFJlbmRlckxheWVyOjpwYWludExh
eWVyQ29udGVudHMoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXllclBhaW50aQog
ICAgICAgICBwYWludE1hc2tGb3JGcmFnbWVudHMobGF5ZXJGcmFnbWVudHMsIGNvbnRleHQsIGxv
Y2FsUGFpbnRpbmdJbmZvLCBzdWJ0cmVlUGFpbnRSb290Rm9yUmVuZGVyZXIpOwogICAgIH0KIAor
ICAgIGlmICgobG9jYWxQYWludEZsYWdzICYgUGFpbnRMYXllclBhaW50aW5nQ2hpbGRDbGlwcGlu
Z01hc2tQaGFzZSkgJiYgc2hvdWxkUGFpbnRDb250ZW50ICYmICFzZWxlY3Rpb25Pbmx5KSB7Cisg
ICAgICAgIC8vIFBhaW50IHRoZSBib3JkZXIgcmFkaXVzIG1hc2sgZm9yIHRoZSBmcmFnbWVudHMu
CisgICAgICAgIHBhaW50Q2hpbGRDbGlwcGluZ01hc2tGb3JGcmFnbWVudHMobGF5ZXJGcmFnbWVu
dHMsIGNvbnRleHQsIGxvY2FsUGFpbnRpbmdJbmZvLCBzdWJ0cmVlUGFpbnRSb290Rm9yUmVuZGVy
ZXIpOworICAgIH0KKwogICAgIC8vIEVuZCBvdXIgdHJhbnNwYXJlbmN5IGxheWVyCiAgICAgaWYg
KGhhdmVUcmFuc3BhcmVuY3kgJiYgbV91c2VkVHJhbnNwYXJlbmN5ICYmICFtX3BhaW50aW5nSW5z
aWRlUmVmbGVjdGlvbikgewogICAgICAgICBjb250ZXh0LT5lbmRUcmFuc3BhcmVuY3lMYXllcigp
OwpAQCAtNDYxMyw2ICs0NjE4LDI2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TWFza0ZvckZy
YWdtZW50cyhjb25zdCBMYXllckZyYWdtZW50cyYgbGF5ZXJGcmFnbWVudHMsIEdyCiAgICAgfQog
fQogCit2b2lkIFJlbmRlckxheWVyOjpwYWludENoaWxkQ2xpcHBpbmdNYXNrRm9yRnJhZ21lbnRz
KGNvbnN0IExheWVyRnJhZ21lbnRzJiBsYXllckZyYWdtZW50cywgR3JhcGhpY3NDb250ZXh0KiBj
b250ZXh0LCBjb25zdCBMYXllclBhaW50aW5nSW5mbyYgbG9jYWxQYWludGluZ0luZm8sCisgICAg
UmVuZGVyT2JqZWN0KiBzdWJ0cmVlUGFpbnRSb290Rm9yUmVuZGVyZXIpCit7CisgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBsYXllckZyYWdtZW50cy5zaXplKCk7ICsraSkgeworICAgICAgICBj
b25zdCBMYXllckZyYWdtZW50JiBmcmFnbWVudCA9IGxheWVyRnJhZ21lbnRzLmF0KGkpOworICAg
ICAgICBpZiAoIWZyYWdtZW50LnNob3VsZFBhaW50Q29udGVudCkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworCisgICAgICAgIGlmIChsb2NhbFBhaW50aW5nSW5mby5jbGlwVG9EaXJ0eVJlY3QpCisg
ICAgICAgICAgICBjbGlwVG9SZWN0KGxvY2FsUGFpbnRpbmdJbmZvLCBjb250ZXh0LCBmcmFnbWVu
dC5mb3JlZ3JvdW5kUmVjdCwgSW5jbHVkZVNlbGZGb3JCb3JkZXJSYWRpdXMpOyAvLyBDaGlsZCBj
bGlwcGluZyBtYXNrIHBhaW50aW5nIHdpbGwgaGFuZGxlIGNsaXBwaW5nIHRvIHNlbGYuCisKKyAg
ICAgICAgLy8gUGFpbnQgdGhlIGNsaXBwZWQgbWFzay4KKyAgICAgICAgUGFpbnRJbmZvIHBhaW50
SW5mbyhjb250ZXh0LCBmcmFnbWVudC5iYWNrZ3JvdW5kUmVjdC5yZWN0KCksIFBhaW50UGhhc2VD
bGlwcGluZ01hc2ssIFBhaW50QmVoYXZpb3JOb3JtYWwsIHN1YnRyZWVQYWludFJvb3RGb3JSZW5k
ZXJlciwgbnVsbHB0ciwgbnVsbHB0ciwgJmxvY2FsUGFpbnRpbmdJbmZvLnJvb3RMYXllci0+cmVu
ZGVyZXIoKSk7CisgICAgICAgIHJlbmRlcmVyKCkucGFpbnQocGFpbnRJbmZvLCB0b0xheW91dFBv
aW50KGZyYWdtZW50LmxheWVyQm91bmRzLmxvY2F0aW9uKCkgLSByZW5kZXJCb3hMb2NhdGlvbigp
ICsgbG9jYWxQYWludGluZ0luZm8uc3VicGl4ZWxBY2N1bXVsYXRpb24pKTsKKworICAgICAgICBp
ZiAobG9jYWxQYWludGluZ0luZm8uY2xpcFRvRGlydHlSZWN0KQorICAgICAgICAgICAgcmVzdG9y
ZUNsaXAoY29udGV4dCwgbG9jYWxQYWludGluZ0luZm8ucGFpbnREaXJ0eVJlY3QsIGZyYWdtZW50
LmZvcmVncm91bmRSZWN0KTsKKyAgICB9Cit9CisKIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50T3Zl
cmZsb3dDb250cm9sc0ZvckZyYWdtZW50cyhjb25zdCBMYXllckZyYWdtZW50cyYgbGF5ZXJGcmFn
bWVudHMsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGluZ0luZm8m
IGxvY2FsUGFpbnRpbmdJbmZvKQogewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGF5ZXJG
cmFnbWVudHMuc2l6ZSgpOyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmgKaW5kZXggMjI2MzBhMi4uZTA5ZGY5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmgKQEAgLTY2Nyw2ICs2NjcsNyBAQCBwdWJsaWM6CiAgICAgICAgIFBhaW50TGF5ZXJQ
YWludGluZ092ZXJmbG93Q29udGVudHMgPSAxIDw8IDksCiAgICAgICAgIFBhaW50TGF5ZXJQYWlu
dGluZ1Jvb3RCYWNrZ3JvdW5kT25seSA9IDEgPDwgMTAsCiAgICAgICAgIFBhaW50TGF5ZXJQYWlu
dGluZ1NraXBSb290QmFja2dyb3VuZCA9IDEgPDwgMTEsCisgICAgICAgIFBhaW50TGF5ZXJQYWlu
dGluZ0NoaWxkQ2xpcHBpbmdNYXNrUGhhc2UgPSAxIDw8IDEyLAogICAgICAgICBQYWludExheWVy
UGFpbnRpbmdDb21wb3NpdGluZ0FsbFBoYXNlcyA9IChQYWludExheWVyUGFpbnRpbmdDb21wb3Np
dGluZ0JhY2tncm91bmRQaGFzZSB8IFBhaW50TGF5ZXJQYWludGluZ0NvbXBvc2l0aW5nRm9yZWdy
b3VuZFBoYXNlIHwgUGFpbnRMYXllclBhaW50aW5nQ29tcG9zaXRpbmdNYXNrUGhhc2UpCiAgICAg
fTsKICAgICAKQEAgLTEwMDksNiArMTAxMCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYWludE91
dGxpbmVGb3JGcmFnbWVudHMoY29uc3QgTGF5ZXJGcmFnbWVudHMmLCBHcmFwaGljc0NvbnRleHQq
LCBjb25zdCBMYXllclBhaW50aW5nSW5mbyYsIFBhaW50QmVoYXZpb3IsIFJlbmRlck9iamVjdCog
cGFpbnRpbmdSb290Rm9yUmVuZGVyZXIpOwogICAgIHZvaWQgcGFpbnRPdmVyZmxvd0NvbnRyb2xz
Rm9yRnJhZ21lbnRzKGNvbnN0IExheWVyRnJhZ21lbnRzJiwgR3JhcGhpY3NDb250ZXh0KiwgY29u
c3QgTGF5ZXJQYWludGluZ0luZm8mKTsKICAgICB2b2lkIHBhaW50TWFza0ZvckZyYWdtZW50cyhj
b25zdCBMYXllckZyYWdtZW50cyYsIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheWVyUGFpbnRp
bmdJbmZvJiwgUmVuZGVyT2JqZWN0KiBwYWludGluZ1Jvb3RGb3JSZW5kZXJlcik7CisgICAgdm9p
ZCBwYWludENoaWxkQ2xpcHBpbmdNYXNrRm9yRnJhZ21lbnRzKGNvbnN0IExheWVyRnJhZ21lbnRz
JiwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5ZXJQYWludGluZ0luZm8mLCBSZW5kZXJPYmpl
Y3QqIHBhaW50aW5nUm9vdEZvclJlbmRlcmVyKTsKICAgICB2b2lkIHBhaW50VHJhbnNmb3JtZWRM
YXllckludG9GcmFnbWVudHMoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5ZXJQYWludGluZ0lu
Zm8mLCBQYWludExheWVyRmxhZ3MpOwogCiAgICAgUmVuZGVyTGF5ZXIqIHRyYW5zcGFyZW50UGFp
bnRpbmdBbmNlc3RvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcAppbmRleCA5YmViNGVmLi44MDJhNzBjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMTQ3LDYgKzE0Nyw3IEBA
IFJlbmRlckxheWVyQmFja2luZzo6flJlbmRlckxheWVyQmFja2luZygpCiAgICAgdXBkYXRlRm9y
ZWdyb3VuZExheWVyKGZhbHNlKTsKICAgICB1cGRhdGVCYWNrZ3JvdW5kTGF5ZXIoZmFsc2UpOwog
ICAgIHVwZGF0ZU1hc2tMYXllcihmYWxzZSk7CisgICAgdXBkYXRlQ2hpbGRDbGlwcGluZ1N0cmF0
ZWd5KGZhbHNlKTsKICAgICB1cGRhdGVTY3JvbGxpbmdMYXllcnMoZmFsc2UpOwogICAgIGRldGFj
aEZyb21TY3JvbGxpbmdDb29yZGluYXRvcigpOwogICAgIGRlc3Ryb3lHcmFwaGljc0xheWVycygp
OwpAQCAtMzQ4LDYgKzM0OSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpkZXN0cm95R3Jh
cGhpY3NMYXllcnMoKQogICAgIG1fYmFja2dyb3VuZExheWVyID0gbnVsbHB0cjsKICAgICBtX2No
aWxkQ29udGFpbm1lbnRMYXllciA9IG51bGxwdHI7CiAgICAgbV9tYXNrTGF5ZXIgPSBudWxscHRy
OworICAgIG1fY2hpbGRDbGlwcGluZ01hc2tMYXllciA9IG51bGxwdHI7CiAKICAgICBtX3Njcm9s
bGluZ0xheWVyID0gbnVsbHB0cjsKICAgICBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIgPSBudWxs
cHRyOwpAQCAtNTY5LDYgKzU3MSw4IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVD
b25maWd1cmF0aW9uKCkKIAogICAgIHVwZGF0ZU1hc2tMYXllcihyZW5kZXJlcigpLmhhc01hc2so
KSk7CiAKKyAgICB1cGRhdGVDaGlsZENsaXBwaW5nU3RyYXRlZ3kobmVlZHNEZXNjZW5kZW50c0Ns
aXBwaW5nTGF5ZXIpOworCiAgICAgaWYgKG1fb3duaW5nTGF5ZXIuaGFzUmVmbGVjdGlvbigpKSB7
CiAgICAgICAgIGlmIChtX293bmluZ0xheWVyLnJlZmxlY3Rpb25MYXllcigpLT5iYWNraW5nKCkp
IHsKICAgICAgICAgICAgIEdyYXBoaWNzTGF5ZXIqIHJlZmxlY3Rpb25MYXllciA9IG1fb3duaW5n
TGF5ZXIucmVmbGVjdGlvbkxheWVyKCktPmJhY2tpbmcoKS0+Z3JhcGhpY3NMYXllcigpOwpAQCAt
ODE0LDYgKzgxOCwxMiBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR2VvbWV0cnko
KQogICAgICAgICBjbGlwTGF5ZXItPnNldFBvc2l0aW9uKEZsb2F0UG9pbnQoY2xpcHBpbmdCb3gu
bG9jYXRpb24oKSAtIGxvY2FsQ29tcG9zaXRpbmdCb3VuZHMubG9jYXRpb24oKSkpOwogICAgICAg
ICBjbGlwTGF5ZXItPnNldFNpemUoY2xpcHBpbmdCb3guc2l6ZSgpKTsKICAgICAgICAgY2xpcExh
eWVyLT5zZXRPZmZzZXRGcm9tUmVuZGVyZXIodG9GbG9hdFNpemUoY2xpcHBpbmdCb3gubG9jYXRp
b24oKSkpOworCisgICAgICAgIGlmIChtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIgJiYgIW1fc2Ny
b2xsaW5nTGF5ZXIpIHsKKyAgICAgICAgICAgIG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci0+c2V0
UG9zaXRpb24oY2xpcExheWVyLT5wb3NpdGlvbigpKTsKKyAgICAgICAgICAgIG1fY2hpbGRDbGlw
cGluZ01hc2tMYXllci0+c2V0U2l6ZShjbGlwTGF5ZXItPnNpemUoKSk7CisgICAgICAgICAgICBt
X2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPnNldE9mZnNldEZyb21SZW5kZXJlcihjbGlwTGF5ZXIt
Pm9mZnNldEZyb21SZW5kZXJlcigpKTsKKyAgICAgICAgfQogICAgIH0KICAgICAKICAgICBpZiAo
bV9tYXNrTGF5ZXIpIHsKQEAgLTE0MTQsNiArMTQyNCwzOSBAQCB2b2lkIFJlbmRlckxheWVyQmFj
a2luZzo6dXBkYXRlTWFza0xheWVyKGJvb2wgbmVlZHNNYXNrTGF5ZXIpCiAgICAgICAgIG1fZ3Jh
cGhpY3NMYXllci0+c2V0UGFpbnRpbmdQaGFzZShwYWludGluZ1BoYXNlRm9yUHJpbWFyeUxheWVy
KCkpOwogfQogCit2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlQ2hpbGRDbGlwcGluZ1N0
cmF0ZWd5KGJvb2wgbmVlZHNEZXNjZW5kZW50c0NsaXBwaW5nTGF5ZXIpCit7CisgICAgaWYgKCFo
YXNDbGlwcGluZ0xheWVyKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChuZWVkc0Rlc2Nl
bmRlbnRzQ2xpcHBpbmdMYXllcikgeworICAgICAgICBpZiAoaXM8UmVuZGVyQm94PihyZW5kZXJl
cigpKSkgeworICAgICAgICAgICAgTGF5b3V0UmVjdCBib3hSZWN0KExheW91dFBvaW50KCksIGRv
d25jYXN0PFJlbmRlckJveD4ocmVuZGVyZXIoKSkuc2l6ZSgpKTsKKyAgICAgICAgICAgIEZsb2F0
Um91bmRlZFJlY3QgY29udGVudHNDbGlwcGluZ1JlY3QgPSByZW5kZXJlcigpLnN0eWxlKCkuZ2V0
Um91bmRlZElubmVyQm9yZGVyRm9yKGJveFJlY3QpLnBpeGVsU25hcHBlZFJvdW5kZWRSZWN0Rm9y
UGFpbnRpbmcoZGV2aWNlU2NhbGVGYWN0b3IoKSk7CisgICAgICAgICAgICBjb250ZW50c0NsaXBw
aW5nUmVjdC5tb3ZlKGNvbnRlbnRPZmZzZXRJbkNvbXBvc3RpbmdMYXllcigpKTsKKyAgICAgICAg
ICAgIGlmIChjbGlwcGluZ0xheWVyKCktPmFwcGx5Q2xpcHBpbmdCb3JkZXIoY29udGVudHNDbGlw
cGluZ1JlY3QpKSB7CisgICAgICAgICAgICAgICAgaWYgKG1fY2hpbGRDbGlwcGluZ01hc2tMYXll
cikgCisgICAgICAgICAgICAgICAgICAgIG1fY2hpbGRDbGlwcGluZ01hc2tMYXllciA9IG51bGxw
dHI7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisK
KyAgICAgICAgaWYgKCFtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIpIHsKKyAgICAgICAgICAgIG1f
Y2hpbGRDbGlwcGluZ01hc2tMYXllciA9IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoIkNoaWxkIENsaXBw
aW5nIE1hc2sgTGF5ZXIiKTsKKyAgICAgICAgICAgIG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci0+
c2V0RHJhd3NDb250ZW50KHRydWUpOworICAgICAgICAgICAgbV9jaGlsZENsaXBwaW5nTWFza0xh
eWVyLT5zZXRQYWludGluZ1BoYXNlKEdyYXBoaWNzTGF5ZXJQYWludENoaWxkQ2xpcHBpbmdNYXNr
KTsKKyAgICAgICAgICAgIGNsaXBwaW5nTGF5ZXIoKS0+c2V0TWFza0xheWVyKG1fY2hpbGRDbGlw
cGluZ01hc2tMYXllci5nZXQoKSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBp
ZiAobV9jaGlsZENsaXBwaW5nTWFza0xheWVyKSB7CisgICAgICAgICAgICBtX2NoaWxkQ2xpcHBp
bmdNYXNrTGF5ZXIgPSBudWxscHRyOworICAgICAgICAgICAgY2xpcHBpbmdMYXllcigpLT5zZXRN
YXNrTGF5ZXIobnVsbHB0cik7CisgICAgICAgIH0gZWxzZSAKKyAgICAgICAgICAgIGNsaXBwaW5n
TGF5ZXIoKS0+Y2xlYXJDbGlwcGluZ0JvcmRlcigpOworICAgIH0KKworfQorCiBib29sIFJlbmRl
ckxheWVyQmFja2luZzo6dXBkYXRlU2Nyb2xsaW5nTGF5ZXJzKGJvb2wgbmVlZHNTY3JvbGxpbmdM
YXllcnMpCiB7CiAgICAgaWYgKG5lZWRzU2Nyb2xsaW5nTGF5ZXJzID09ICEhbV9zY3JvbGxpbmdM
YXllcikKQEAgLTIwNjUsNiArMjEwOCw5IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpzZXRD
b250ZW50c05lZWREaXNwbGF5KEdyYXBoaWNzTGF5ZXI6OlNob3VsZENsaXBUb0xheWVyCiAgICAg
aWYgKG1fbWFza0xheWVyICYmIG1fbWFza0xheWVyLT5kcmF3c0NvbnRlbnQoKSkKICAgICAgICAg
bV9tYXNrTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwogCisgICAgaWYgKG1fY2hpbGRDbGlwcGlu
Z01hc2tMYXllciAmJiBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPmRyYXdzQ29udGVudCgpKQor
ICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOworCiAg
ICAgaWYgKG1fc2Nyb2xsaW5nQ29udGVudHNMYXllciAmJiBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5
ZXItPmRyYXdzQ29udGVudCgpKQogICAgICAgICBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXItPnNl
dE5lZWRzRGlzcGxheSgpOwogfQpAQCAtMjEwNCw2ICsyMTUwLDEyIEBAIHZvaWQgUmVuZGVyTGF5
ZXJCYWNraW5nOjpzZXRDb250ZW50c05lZWREaXNwbGF5SW5SZWN0KGNvbnN0IExheW91dFJlY3Qm
IHIsIEdyYXBoCiAgICAgICAgIG1fbWFza0xheWVyLT5zZXROZWVkc0Rpc3BsYXlJblJlY3QobGF5
ZXJEaXJ0eVJlY3QsIHNob3VsZENsaXApOwogICAgIH0KIAorICAgIGlmIChtX2NoaWxkQ2xpcHBp
bmdNYXNrTGF5ZXIgJiYgbV9jaGlsZENsaXBwaW5nTWFza0xheWVyLT5kcmF3c0NvbnRlbnQoKSkg
eworICAgICAgICBGbG9hdFJlY3QgbGF5ZXJEaXJ0eVJlY3QgPSByOworICAgICAgICBsYXllckRp
cnR5UmVjdC5tb3ZlKC1tX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPm9mZnNldEZyb21SZW5kZXJl
cigpKTsKKyAgICAgICAgbV9jaGlsZENsaXBwaW5nTWFza0xheWVyLT5zZXROZWVkc0Rpc3BsYXlJ
blJlY3QobGF5ZXJEaXJ0eVJlY3QpOworICAgIH0KKwogICAgIGlmIChtX3Njcm9sbGluZ0NvbnRl
bnRzTGF5ZXIgJiYgbV9zY3JvbGxpbmdDb250ZW50c0xheWVyLT5kcmF3c0NvbnRlbnQoKSkgewog
ICAgICAgICBGbG9hdFJlY3QgbGF5ZXJEaXJ0eVJlY3QgPSBwaXhlbFNuYXBwZWRSZWN0Rm9yUGFp
bnRpbmc7CiAgICAgICAgIGxheWVyRGlydHlSZWN0Lm1vdmUoLW1fc2Nyb2xsaW5nQ29udGVudHNM
YXllci0+b2Zmc2V0RnJvbVJlbmRlcmVyKCkgKyBtX2RldmljZVBpeGVsRnJhY3Rpb25Gcm9tUmVu
ZGVyZXIpOwpAQCAtMjEzOCw2ICsyMTkwLDggQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnBh
aW50SW50b0xheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXAKICAg
ICAgICAgcGFpbnRGbGFncyB8PSBSZW5kZXJMYXllcjo6UGFpbnRMYXllclBhaW50aW5nQ29tcG9z
aXRpbmdGb3JlZ3JvdW5kUGhhc2U7CiAgICAgaWYgKHBhaW50aW5nUGhhc2UgJiBHcmFwaGljc0xh
eWVyUGFpbnRNYXNrKQogICAgICAgICBwYWludEZsYWdzIHw9IFJlbmRlckxheWVyOjpQYWludExh
eWVyUGFpbnRpbmdDb21wb3NpdGluZ01hc2tQaGFzZTsKKyAgICBpZiAocGFpbnRpbmdQaGFzZSAm
IEdyYXBoaWNzTGF5ZXJQYWludENoaWxkQ2xpcHBpbmdNYXNrKQorICAgICAgICBwYWludEZsYWdz
IHw9IFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRpbmdDaGlsZENsaXBwaW5nTWFza1BoYXNl
OwogICAgIGlmIChwYWludGluZ1BoYXNlICYgR3JhcGhpY3NMYXllclBhaW50T3ZlcmZsb3dDb250
ZW50cykKICAgICAgICAgcGFpbnRGbGFncyB8PSBSZW5kZXJMYXllcjo6UGFpbnRMYXllclBhaW50
aW5nT3ZlcmZsb3dDb250ZW50czsKICAgICBpZiAocGFpbnRpbmdQaGFzZSAmIEdyYXBoaWNzTGF5
ZXJQYWludENvbXBvc2l0ZWRTY3JvbGwpCkBAIC0yMjAyLDYgKzIyNTYsNyBAQCB2b2lkIFJlbmRl
ckxheWVyQmFja2luZzo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGlj
c0xheWVyLCBHcmFwaAogICAgICAgICB8fCBncmFwaGljc0xheWVyID09IG1fZm9yZWdyb3VuZExh
eWVyLmdldCgpCiAgICAgICAgIHx8IGdyYXBoaWNzTGF5ZXIgPT0gbV9iYWNrZ3JvdW5kTGF5ZXIu
Z2V0KCkKICAgICAgICAgfHwgZ3JhcGhpY3NMYXllciA9PSBtX21hc2tMYXllci5nZXQoKQorICAg
ICAgICB8fCBncmFwaGljc0xheWVyID09IG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci5nZXQoKQog
ICAgICAgICB8fCBncmFwaGljc0xheWVyID09IG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci5nZXQo
KSkgewogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxQYWludCgmcmVuZGVy
ZXIoKSk7CiAKQEAgLTI1NzgsNiArMjYzMyw4IEBAIGRvdWJsZSBSZW5kZXJMYXllckJhY2tpbmc6
OmJhY2tpbmdTdG9yZU1lbW9yeUVzdGltYXRlKCkgY29uc3QKICAgICAgICAgYmFja2luZ01lbW9y
eSArPSBtX2JhY2tncm91bmRMYXllci0+YmFja2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUoKTsKICAg
ICBpZiAobV9tYXNrTGF5ZXIpCiAgICAgICAgIGJhY2tpbmdNZW1vcnkgKz0gbV9tYXNrTGF5ZXIt
PmJhY2tpbmdTdG9yZU1lbW9yeUVzdGltYXRlKCk7CisgICAgaWYgKG1fY2hpbGRDbGlwcGluZ01h
c2tMYXllcikKKyAgICAgICAgYmFja2luZ01lbW9yeSArPSBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5
ZXItPmJhY2tpbmdTdG9yZU1lbW9yeUVzdGltYXRlKCk7CiAKICAgICBpZiAobV9zY3JvbGxpbmdD
b250ZW50c0xheWVyKQogICAgICAgICBiYWNraW5nTWVtb3J5ICs9IG1fc2Nyb2xsaW5nQ29udGVu
dHNMYXllci0+YmFja2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAppbmRleCBjY2JiZjVlLi5mOTRmYmFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBAIC0x
MzksNiArMTM5LDcgQEAgcHVibGljOgogICAgIFNjcm9sbGluZ05vZGVJRCBzY3JvbGxpbmdOb2Rl
SURGb3JDaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsaW5nTm9kZUlEID8gbV9zY3Jv
bGxpbmdOb2RlSUQgOiBtX3ZpZXdwb3J0Q29uc3RyYWluZWROb2RlSUQ7IH0KIAogICAgIGJvb2wg
aGFzTWFza0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9tYXNrTGF5ZXIgIT0gMDsgfQorICAgIGJv
b2wgaGFzQ2hpbGRDbGlwcGluZ01hc2tMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRDbGlw
cGluZ01hc2tMYXllciAhPSBudWxscHRyOyB9CiAKICAgICBHcmFwaGljc0xheWVyKiBwYXJlbnRG
b3JTdWJsYXllcnMoKSBjb25zdDsKICAgICBHcmFwaGljc0xheWVyKiBjaGlsZEZvclN1cGVybGF5
ZXJzKCkgY29uc3Q7CkBAIC0yNjgsNiArMjY5LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHJlcXVp
cmVzU2Nyb2xsQ29ybmVyTGF5ZXIoKSBjb25zdDsKICAgICBib29sIHVwZGF0ZVNjcm9sbGluZ0xh
eWVycyhib29sIHNjcm9sbGluZ0xheWVycyk7CiAgICAgdm9pZCB1cGRhdGVEcmF3c0NvbnRlbnQo
Ym9vbCBpc1NpbXBsZUNvbnRhaW5lcik7CisgICAgdm9pZCB1cGRhdGVDaGlsZENsaXBwaW5nU3Ry
YXRlZ3koYm9vbCBuZWVkc0Rlc2NlbmRlbnRzQ2xpcHBpbmdMYXllcik7CiAgICAgCiAgICAgdm9p
ZCB1cGRhdGVSb290TGF5ZXJDb25maWd1cmF0aW9uKCk7CiAKQEAgLTMzNSw2ICszMzcsNyBAQCBw
cml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2JhY2tncm91bmRM
YXllcjsgLy8gT25seSB1c2VkIGluIGNhc2VzIHdoZXJlIHdlIG5lZWQgdG8gZHJhdyB0aGUgYmFj
a2dyb3VuZCBzZXBhcmF0ZWx5LgogICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBt
X2NoaWxkQ29udGFpbm1lbnRMYXllcjsgLy8gT25seSB1c2VkIGlmIHdlIGhhdmUgY2xpcHBpbmcg
b24gYSBzdGFja2luZyBjb250ZXh0IHdpdGggY29tcG9zaXRpbmcgY2hpbGRyZW4sIG9yIGlmIHRo
ZSBsYXllciBoYXMgYSB0aWxlIGNhY2hlLgogICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xh
eWVyPiBtX21hc2tMYXllcjsgLy8gT25seSB1c2VkIGlmIHdlIGhhdmUgYSBtYXNrLgorICAgIHN0
ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXI7IC8v
IE9ubHkgdXNlZCBpZiB3ZSBoYXZlIHRvIGNsaXAgY2hpbGQgbGF5ZXJzIG9yIGFjY2VsZXJhdGVk
IGNvbnRlbnRzIHdpdGggYm9yZGVyIHJhZGl1cyBvciBjbGlwLXBhdGguCiAKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9sYXllckZvckhvcml6b250YWxTY3JvbGxiYXI7CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fbGF5ZXJGb3JWZXJ0aWNhbFNjcm9s
bGJhcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243860</attachid>
            <date>2015-01-01 03:17:30 -0800</date>
            <delta_ts>2015-01-01 03:52:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138551-20150101031732.patch</filename>
            <type>text/plain</type>
            <size>25368</size>
            <attacher name="Byungseon(Sun) Shin">sun.shin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3ODQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjE4OTczNjA3MGY3ZWQ3
ZmZlZWRlNDA1ZTI5ZjA1YmNhZTI1NDMxMS4uYmNlZGExMTQwOTkwZjFmYzFiMzdiYTIwMzViMTEw
YzdhYzViNTg1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE1LTAxLTAxICBCeXVu
Z3Nlb24gU2hpbiAgPHN1bi5zaGluQGxnZS5jb20+CisKKyAgICAgICAgRml4IEJvcmRlci1yYWRp
dXMgY2xpcHBpbmcgaXNzdWUgb24gYSBjb21wb3NpdGVkIGRlc2NlbmRhbnRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg1NTEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggY2xpcHBpbmcgY29tcG9z
aXRpbmcgZGVzY2VuZGFudHMgb2YgYW4gYWNjZWxlcmF0ZWQgbGF5ZXIgaGF2aW5nCisgICAgICAg
IGJvcmRlciByYWRpdXMgYW5kIGNsaXAgb3ZlcmZsb3cgaXNzdWUgYnkgdXNpbmcgbGF5ZXIgY29y
bmVyLXJhZGl1cworICAgICAgICBvciBhIENBU2hhcGVMYXllciBtYXNrIG9uIE1hYywgYW5kIHNl
dHRpbmcgdXAgYSBzZXBhcmF0ZSBtYXNrIGxheWVyCisgICAgICAgIG9uIHRoZSBjaGlsZENvbnRh
aW5tZW50TGF5ZXIgb24gb3RoZXIgcGxhdGZvcm1zLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMg
ZXh0cmFjdGVkIGZyb20gZm9sbG93aW5nIEJsaW5rIHJldmlzaW9uczoKKyAgICAgICAgPGh0dHA6
Ly9zcmMuY2hyb21pdW0ub3JnL3ZpZXd2Yy9ibGluaz92aWV3PXJldmlzaW9uJnJldmlzaW9uPTE2
MjQ2Mz4KKyAgICAgICAgPGh0dHA6Ly9zcmMuY2hyb21pdW0ub3JnL3ZpZXd2Yy9ibGluaz92aWV3
PXJldmlzaW9uJnJldmlzaW9uPTE1ODI1OD4KKyAgICAgICAgYnkgPHJvc2NhQGFkb2JlLmNvbT4K
KworICAgICAgICBDbGlwIGFjY2VsZXJhdGVkIGRlc2NlbmRhbnRzIG9mIGFuIGFjY2VsZXJhdGVk
IGxheWVyIGhhdmluZyBib3JkZXIgcmFkaXVzIGFuZCBjbGlwIG92ZXJmbG93LgorICAgICAgICBM
YXJnZSBjYW52YXMgZG9lcyBub3QgaG9ub3IgY29udGFpbmluZyBkaXYncyBib3JkZXIgcmFkaXVz
LgorCisgICAgICAgIGFuZCA8aHR0cDovL3NyYy5jaHJvbWl1bS5vcmcvdmlld3ZjL2JsaW5rP3Zp
ZXc9cmV2aXNpb24mcmV2aXNpb249MTYwNTc4PgorICAgICAgICBieSA8anVub3ZAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIEZpeCBmb3IgQ1NTIGNsaXAtcGF0aCB3aXRoIGFjY2VsZXJhdGVkIDJE
IGNhbnZhcy4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NM
YXllcjo6ZHVtcFByb3BlcnRpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmFwcGx5Q2xpcHBp
bmdCb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6Y2xlYXJDbGlwcGlu
Z0JvcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpuZWVkc0NsaXBwaW5n
TWFza0xheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xp
ZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6YXBwbHlDbGlwcGluZ0JvcmRl
cik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNsZWFyQ2xpcHBpbmdCb3Jk
ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9QYWludFBoYXNlLmg6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludE9iamVj
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3g6OnBhaW50Q2xpcHBpbmdNYXNrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyQm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludExheWVyQ29udGVudHMpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OnBhaW50Q2hpbGRDbGlwcGluZ01hc2tGb3JGcmFnbWVudHMpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNr
aW5nOjp+UmVuZGVyTGF5ZXJCYWNraW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
QmFja2luZzo6ZGVzdHJveUdyYXBoaWNzTGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyQmFja2luZzo6dXBkYXRlQ29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyQmFja2luZzo6dXBkYXRlQ2hpbGRDbGlwcGluZ1N0cmF0ZWd5KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6c2V0Q29udGVudHNOZWVkRGlzcGxheSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnNldENvbnRlbnRzTmVlZERpc3Bs
YXlJblJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludElu
dG9MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50Q29u
dGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpiYWNraW5nU3Rv
cmVNZW1vcnlFc3RpbWF0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5oOgorCiAyMDE1LTAxLTAxICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgU2F0dXJhdGVkIGFyaXRobWV0aWNzOiBJbmNvcnJlY3QgZmxvYXQvZG91YmxlIGNsYW1w
aW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAzN2M3YjZjNGMwNjUwYzU0ZWNlNmM4Y2QzMWZl
NTZiNzQwYjk2NzkzLi5mOGQwZDE0ODkwY2E1YjNkNzExNmRhNGM5ODM3ZmM1MGY3MTEwODJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNTg5LDYgKzU4OSw4IEBAIF9fWk43V2ViQ29yZTE1R3Jh
cGhpY3NMYXllckNBMThzZXRDb250ZW50c1Zpc2libGVFYgogX19aTjdXZWJDb3JlMTVHcmFwaGlj
c0xheWVyQ0ExOHNldE9wYWNpdHlJbnRlcm5hbEVmCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5
ZXJDQTE4c2V0UmVwbGljYXRlZExheWVyRVBOU18xM0dyYXBoaWNzTGF5ZXJFCiBfX1pON1dlYkNv
cmUxNUdyYXBoaWNzTGF5ZXJDQTE4c2V0U2hvd0RlYnVnQm9yZGVyRWIKK19fWk43V2ViQ29yZTE1
R3JhcGhpY3NMYXllckNBMTlhcHBseUNsaXBwaW5nQm9yZGVyRVJLTlNfMTZGbG9hdFJvdW5kZWRS
ZWN0RQorX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExOWNsZWFyQ2xpcHBpbmdCb3JkZXJF
dgogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExOXNldEN1c3RvbUFwcGVhcmFuY2VFTlNf
MTNHcmFwaGljc0xheWVyMTZDdXN0b21BcHBlYXJhbmNlRQogX19aTjdXZWJDb3JlMTVHcmFwaGlj
c0xheWVyQ0EyMHNldENoaWxkcmVuVHJhbnNmb3JtRVJLTlNfMjBUcmFuc2Zvcm1hdGlvbk1hdHJp
eEUKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMjBzZXRSZXBsaWNhdGVkQnlMYXllckVQ
TlNfMTNHcmFwaGljc0xheWVyRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyLmNwcAppbmRleCA2MmQyNTE2M2RkMjkwZjI2ODNhMmIzNDc5NmM5
OTA5MjdlYjM5Zjk5Li5kNjI4OGI3NmRlOTYyMWJmYWJlZGY0YjczMzNlNDUyODllMGZjZTU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
LmNwcApAQCAtNzYxLDYgKzc2MSwxMCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OmR1bXBQcm9wZXJ0
aWVzKFRleHRTdHJlYW0mIHRzLCBpbnQgaW5kZW50LCBMYXllclRyZWVBc1RleHRCZQogICAgICAg
ICAgICAgd3JpdGVJbmRlbnQodHMsIGluZGVudCArIDIpOwogICAgICAgICAgICAgdHMgPDwgIkdy
YXBoaWNzTGF5ZXJQYWludE1hc2tcbiI7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKHBhaW50aW5n
UGhhc2UoKSAmIEdyYXBoaWNzTGF5ZXJQYWludENoaWxkQ2xpcHBpbmdNYXNrKSB7CisgICAgICAg
ICAgICB3cml0ZUluZGVudCh0cywgaW5kZW50ICsgMik7CisgICAgICAgICAgICB0cyA8PCAiR3Jh
cGhpY3NMYXllclBhaW50Q2hpbGRDbGlwcGluZ01hc2tcbiI7CisgICAgICAgIH0KICAgICAgICAg
aWYgKHBhaW50aW5nUGhhc2UoKSAmIEdyYXBoaWNzTGF5ZXJQYWludE92ZXJmbG93Q29udGVudHMp
IHsKICAgICAgICAgICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQgKyAyKTsKICAgICAgICAgICAg
IHRzIDw8ICJHcmFwaGljc0xheWVyUGFpbnRPdmVyZmxvd0NvbnRlbnRzXG4iOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCmluZGV4IDdiZTZh
OWY2OWZhMTI3MDVkNTA1ZmYzZDZiYzA1M2VkYjVjNTQzNTguLmM0ZDIyYjY1ZDEyYTg4Zjk0NWFl
NDdiNTEwNTcwNGYzZTc0MGYxNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyLmgKQEAgLTM2OCw2ICszNjgsOSBAQCBwdWJsaWM6CiAgICAg
RmxvYXRSb3VuZGVkUmVjdCBjb250ZW50c0NsaXBwaW5nUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1f
Y29udGVudHNDbGlwcGluZ1JlY3Q7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNDbGlw
cGluZ1JlY3QoY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcm91bmRlZFJlY3QpIHsgbV9jb250ZW50
c0NsaXBwaW5nUmVjdCA9IHJvdW5kZWRSZWN0OyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgYXBwbHlD
bGlwcGluZ0JvcmRlcihjb25zdCBGbG9hdFJvdW5kZWRSZWN0JikgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJDbGlwcGluZ0JvcmRlcigpIHsgcmV0dXJuOyB9CisKICAg
ICAvLyBUcmFuc2l0aW9ucyBhcmUgaWRlbnRpZmllZCBieSBhIHNwZWNpYWwgYW5pbWF0aW9uIG5h
bWUgdGhhdCBjYW5ub3QgY2xhc2ggd2l0aCBhIGtleWZyYW1lIGlkZW50aWZpZXIuCiAgICAgc3Rh
dGljIFN0cmluZyBhbmltYXRpb25OYW1lRm9yVHJhbnNpdGlvbihBbmltYXRlZFByb3BlcnR5SUQp
OwogICAgIApAQCAtNDk4LDYgKzUwMSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNH
cmFwaGljc0xheWVyQ0FSZW1vdGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1
YWwgYm9vbCBpc0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBuZWVkc0NsaXBwaW5nTWFza0xheWVyKCkgeyByZXR1
cm4gdHJ1ZTsgfTsKKwogcHJvdGVjdGVkOgogICAgIC8vIFNob3VsZCBiZSBjYWxsZWQgZnJvbSBk
ZXJpdmVkIGNsYXNzIGRlc3RydWN0b3JzLiBTaG91bGQgY2FsbCB3aWxsQmVEZXN0cm95ZWQoKSBv
biBzdXBlci4KICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVk
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyQ2xpZW50LmgKaW5kZXggYjQ1ZGYxYzg3MGEwNDFmYTIxZjliZGRiNWZkYzVmMWMxZWM0
MDhkMy4uMWQ5YWUxYzE2NjYyMWM3ZWFiN2Y5NmI4MDFiZjMyZGM1OTgzMGY3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGll
bnQuaApAQCAtNDQsNiArNDQsNyBAQCBlbnVtIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlRmxh
Z3MgewogICAgIEdyYXBoaWNzTGF5ZXJQYWludE1hc2sgPSAoMSA8PCAyKSwKICAgICBHcmFwaGlj
c0xheWVyUGFpbnRPdmVyZmxvd0NvbnRlbnRzID0gKDEgPDwgMyksCiAgICAgR3JhcGhpY3NMYXll
clBhaW50Q29tcG9zaXRlZFNjcm9sbCA9ICgxIDw8IDQpLAorICAgIEdyYXBoaWNzTGF5ZXJQYWlu
dENoaWxkQ2xpcHBpbmdNYXNrID0gKDEgPDwgNSksCiAgICAgR3JhcGhpY3NMYXllclBhaW50QWxs
V2l0aE92ZXJmbG93Q2xpcCA9IChHcmFwaGljc0xheWVyUGFpbnRCYWNrZ3JvdW5kIHwgR3JhcGhp
Y3NMYXllclBhaW50Rm9yZWdyb3VuZCB8IEdyYXBoaWNzTGF5ZXJQYWludE1hc2spCiB9OwogdHlw
ZWRlZiB1bnNpZ25lZCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmlu
ZGV4IGZjZTk2MGYwZjMxZDA5OWQ2ZTMyNzFlMDJhNjNmNTBmNWE1OWQ3NjcuLjgyNDhhMTgzZDcy
MjYzZTkxZjI2YzBjYWQ1YTI2ZTA5MjlmNzUzMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtMjAyNyw2
ICsyMDI3LDM4IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250ZW50c0NvbG9yTGF5
ZXIoKQogICAgIH0KIH0KIAorYm9vbCBHcmFwaGljc0xheWVyQ0E6OmFwcGx5Q2xpcHBpbmdCb3Jk
ZXIoY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcm91bmRlZFJlY3QpCit7CisgICAgaWYgKHJvdW5k
ZWRSZWN0LnJhZGlpKCkuaXNVbmlmb3JtQ29ybmVyUmFkaXVzKCkpIHsKKyAgICAgICAgbV9sYXll
ci0+c2V0TWFzayhudWxscHRyKTsKKyAgICAgICAgbV9sYXllci0+c2V0TWFza3NUb0JvdW5kcyh0
cnVlKTsKKyAgICAgICAgbV9sYXllci0+c2V0Q29ybmVyUmFkaXVzKHJvdW5kZWRSZWN0LnJhZGlp
KCkudG9wTGVmdCgpLndpZHRoKCkpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmICghbV9zaGFw
ZU1hc2tMYXllcikgeworICAgICAgICAgICAgbV9zaGFwZU1hc2tMYXllciA9IGNyZWF0ZVBsYXRm
b3JtQ0FMYXllcihQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVNoYXBlTGF5ZXIsIHRoaXMpOwor
ICAgICAgICAgICAgbV9zaGFwZU1hc2tMYXllci0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludDNE
KCkpOworICAgICAgICB9CisKKyAgICAgICAgbV9zaGFwZU1hc2tMYXllci0+c2V0UG9zaXRpb24o
RmxvYXRQb2ludCgpKTsKKyAgICAgICAgbV9zaGFwZU1hc2tMYXllci0+c2V0Qm91bmRzKG1fbGF5
ZXItPmJvdW5kcygpKTsKKyAgICAKKyAgICAgICAgbV9sYXllci0+c2V0Q29ybmVyUmFkaXVzKDAp
OworICAgICAgICBtX2xheWVyLT5zZXRNYXNrKG1fc2hhcGVNYXNrTGF5ZXIuZ2V0KCkpOworCisg
ICAgICAgIEZsb2F0Um91bmRlZFJlY3Qgb2Zmc2V0Q2xpcHBpbmdSb3VuZGVkUmVjdChtX2xheWVy
LT5ib3VuZHMoKSwgcm91bmRlZFJlY3QucmFkaWkoKSk7CisgICAgICAgIG1fc2hhcGVNYXNrTGF5
ZXItPnNldFNoYXBlUm91bmRlZFJlY3Qob2Zmc2V0Q2xpcHBpbmdSb3VuZGVkUmVjdCk7CisgICAg
fQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpjbGVhckNs
aXBwaW5nQm9yZGVyKCkKK3sKKyAgICBtX2xheWVyLT5zZXRDb3JuZXJSYWRpdXMoMCk7CisgICAg
bV9sYXllci0+c2V0TWFza3NUb0JvdW5kcyhmYWxzZSk7CisgICAgbV9sYXllci0+c2V0TWFzayhu
dWxscHRyKTsKK30KKwogLy8gVGhlIGNsaXBwaW5nIHN0cmF0ZWd5IGRlcGVuZHMgb24gd2hldGhl
ciB0aGUgcm91bmRlZCByZWN0IGhhcyBlcXVhbCBjb3JuZXIgcmFkaWkuCiB2b2lkIEdyYXBoaWNz
TGF5ZXJDQTo6dXBkYXRlQ2xpcHBpbmdTdHJhdGVneShQbGF0Zm9ybUNBTGF5ZXImIGNsaXBwaW5n
TGF5ZXIsIFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+JiBzaGFwZU1hc2tMYXllciwgY29uc3QgRmxv
YXRSb3VuZGVkUmVjdCYgcm91bmRlZFJlY3QpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCmluZGV4IDg0MjQ0NzI3NGNl
ZTVmYmM3NGZhZjkyNTgzYzdkZDk2NDc5ZmVjNGQuLjQ5NWY1NzhmMzZkZmQwZGJjNDhmZjM3NjBk
NTg2ODg3NmU2ZThjNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBAIC0xNzMsNiArMTczLDkgQEAgcHJvdGVjdGVk
OgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNHcmFwaGljc0xheWVyQ0EoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgYXBwbHlDbGlwcGlu
Z0JvcmRlcihjb25zdCBGbG9hdFJvdW5kZWRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGNsZWFyQ2xpcHBpbmdCb3JkZXIoKSBvdmVycmlkZTsKKwogICAgIFdFQkNPUkVfRVhQT1JU
IHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVycmlkZTsKIAogICAgIC8vIFBsYXRm
b3JtQ0FMYXllckNsaWVudCBvdmVycmlkZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9QYWludFBoYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUGFpbnRQaGFz
ZS5oCmluZGV4IDBiYmY5OWE3ZDBjZjVhMDljYTg1YzMwZGYwNjFhMzZkN2NhYzAyNmIuLmE0NDhk
OTIyZDk4ZjcxYzg3YjlkNjI5NjIzMWVhNGVhNzAzOWVmODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9QYWludFBoYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1BhaW50UGhhc2UuaApAQCAtNDksNyArNDksOCBAQCBlbnVtIFBhaW50UGhhc2UgewogICAg
IFBhaW50UGhhc2VTZWxlY3Rpb24sCiAgICAgUGFpbnRQaGFzZUNvbGxhcHNlZFRhYmxlQm9yZGVy
cywKICAgICBQYWludFBoYXNlVGV4dENsaXAsCi0gICAgUGFpbnRQaGFzZU1hc2sKKyAgICBQYWlu
dFBoYXNlTWFzaywKKyAgICBQYWludFBoYXNlQ2xpcHBpbmdNYXNrCiB9OwogCiBlbnVtIFBhaW50
QmVoYXZpb3JGbGFncyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApp
bmRleCA1MjRiZDk3NjM2OWM4ZGEzNmE5ZmM3ZGUwMjI4N2U4NmVlZjljNjc1Li5iNWZjNzRiMDU1
NjljZjc4NGVmNzY3ZWE2NDI0NjgwYWZmMGM4NzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAKQEAgLTE1NzUsNiArMTU3NSwxMSBAQCB2b2lkIFJlbmRlckJsb2Nr
OjpwYWludE9iamVjdChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBh
aW50T2ZmcwogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKHBhaW50UGhhc2UgPT0g
UGFpbnRQaGFzZUNsaXBwaW5nTWFzayAmJiBzdHlsZSgpLnZpc2liaWxpdHkoKSA9PSBWSVNJQkxF
KSB7CisgICAgICAgIHBhaW50Q2xpcHBpbmdNYXNrKHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgLy8gSWYganVzdCBwYWludGluZyB0aGUgcm9v
dCBiYWNrZ3JvdW5kLCB0aGVuIHJldHVybi4KICAgICBpZiAocGFpbnRJbmZvLnBhaW50Um9vdEJh
Y2tncm91bmRPbmx5KCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5jcHAKaW5kZXggZjQ2NDMxMGU1MWVhMjhlZmZhZDQ3NzFiZjllMjY3ZTk5ZmIwOTg3
Yi4uNjM5OThhMTk3OTY5MGZhMDA1YzBmNjYwZjE1MGY4MjU3NGUzYzc0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTE0ODAsNiArMTQ4MCwxNSBAQCB2b2lkIFJl
bmRlckJveDo6cGFpbnRNYXNrKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2lu
dCYgcGFpbnRPZmZzZXQpCiAgICAgcGFpbnRNYXNrSW1hZ2VzKHBhaW50SW5mbywgcGFpbnRSZWN0
KTsKIH0KIAordm9pZCBSZW5kZXJCb3g6OnBhaW50Q2xpcHBpbmdNYXNrKFBhaW50SW5mbyYgcGFp
bnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCit7CisgICAgaWYgKCFwYWlu
dEluZm8uc2hvdWxkUGFpbnRXaXRoaW5Sb290KCp0aGlzKSB8fCBzdHlsZSgpLnZpc2liaWxpdHko
KSAhPSBWSVNJQkxFIHx8IHBhaW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlQ2xpcHBpbmdNYXNr
IHx8IHBhaW50SW5mby5jb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIExheW91dFJlY3QgcGFpbnRSZWN0ID0gTGF5b3V0UmVjdChwYWludE9mZnNldCwg
c2l6ZSgpKTsKKyAgICBwYWludEluZm8uY29udGV4dC0+ZmlsbFJlY3Qoc25hcHBlZEludFJlY3Qo
cGFpbnRSZWN0KSwgQ29sb3I6OmJsYWNrLCBzdHlsZSgpLmNvbG9yU3BhY2UoKSk7Cit9CisKIHZv
aWQgUmVuZGVyQm94OjpwYWludE1hc2tJbWFnZXMoY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8s
IGNvbnN0IExheW91dFJlY3QmIHBhaW50UmVjdCkKIHsKICAgICAvLyBGaWd1cmUgb3V0IGlmIHdl
IG5lZWQgdG8gcHVzaCBhIHRyYW5zcGFyZW5jeSBsYXllciB0byByZW5kZXIgb3VyIG1hc2suCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggYjU0OGRlOTkxZTJlYTdjNDRlZTdi
ZjRjMTE3NGJjZGMzZjM3M2JiMC4uNWM3ZGJhYjMwYWQwNDc2MjFjN2Q1MTc1NDBmYzdhYjlkN2Iw
MGM2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtNDk1LDYgKzQ5NSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRPYmplY3QoUGFpbnRJbmZvJiwgY29u
c3QgTGF5b3V0UG9pbnQmKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsK
ICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRNYXNrKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50
Jik7CisgICAgdmlydHVhbCB2b2lkIHBhaW50Q2xpcHBpbmdNYXNrKFBhaW50SW5mbyYsIGNvbnN0
IExheW91dFBvaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIGltYWdlQ2hhbmdlZChXcmFwcGVkSW1h
Z2VQdHIsIGNvbnN0IEludFJlY3QqID0gMCkgb3ZlcnJpZGU7CiAKICAgICAvLyBDYWxsZWQgd2hl
biBhIHBvc2l0aW9uZWQgb2JqZWN0IG1vdmVzIGJ1dCBkb2Vzbid0IG5lY2Vzc2FyaWx5IGNoYW5n
ZSBzaXplLiAgQSBzaW1wbGlmaWVkIGxheW91dCBpcyBhdHRlbXB0ZWQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDkwMjU1NzQwMjczNmJkMzNlMTgxYjM2ZWU3
OGM4MjUxNTNmYmEzNGMuLjUyYzUwOTA4YWZmOGM0NjgwYjY1MDE0Njg1ZTYzYTlkMjEwNzM1Yzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtNDE5NSw2ICs0
MTk1LDExIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJDb250ZW50cyhHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQsIGNvbnN0IExheWVyUGFpbnRpCiAgICAgICAgIHBhaW50TWFza0ZvckZy
YWdtZW50cyhsYXllckZyYWdtZW50cywgY29udGV4dCwgbG9jYWxQYWludGluZ0luZm8sIHN1YnRy
ZWVQYWludFJvb3RGb3JSZW5kZXJlcik7CiAgICAgfQogCisgICAgaWYgKChsb2NhbFBhaW50Rmxh
Z3MgJiBQYWludExheWVyUGFpbnRpbmdDaGlsZENsaXBwaW5nTWFza1BoYXNlKSAmJiBzaG91bGRQ
YWludENvbnRlbnQgJiYgIXNlbGVjdGlvbk9ubHkpIHsKKyAgICAgICAgLy8gUGFpbnQgdGhlIGJv
cmRlciByYWRpdXMgbWFzayBmb3IgdGhlIGZyYWdtZW50cy4KKyAgICAgICAgcGFpbnRDaGlsZENs
aXBwaW5nTWFza0ZvckZyYWdtZW50cyhsYXllckZyYWdtZW50cywgY29udGV4dCwgbG9jYWxQYWlu
dGluZ0luZm8sIHN1YnRyZWVQYWludFJvb3RGb3JSZW5kZXJlcik7CisgICAgfQorCiAgICAgLy8g
RW5kIG91ciB0cmFuc3BhcmVuY3kgbGF5ZXIKICAgICBpZiAoaGF2ZVRyYW5zcGFyZW5jeSAmJiBt
X3VzZWRUcmFuc3BhcmVuY3kgJiYgIW1fcGFpbnRpbmdJbnNpZGVSZWZsZWN0aW9uKSB7CiAgICAg
ICAgIGNvbnRleHQtPmVuZFRyYW5zcGFyZW5jeUxheWVyKCk7CkBAIC00NjEzLDYgKzQ2MTgsMjYg
QEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRNYXNrRm9yRnJhZ21lbnRzKGNvbnN0IExheWVyRnJh
Z21lbnRzJiBsYXllckZyYWdtZW50cywgR3IKICAgICB9CiB9CiAKK3ZvaWQgUmVuZGVyTGF5ZXI6
OnBhaW50Q2hpbGRDbGlwcGluZ01hc2tGb3JGcmFnbWVudHMoY29uc3QgTGF5ZXJGcmFnbWVudHMm
IGxheWVyRnJhZ21lbnRzLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheWVyUGFp
bnRpbmdJbmZvJiBsb2NhbFBhaW50aW5nSW5mbywKKyAgICBSZW5kZXJPYmplY3QqIHN1YnRyZWVQ
YWludFJvb3RGb3JSZW5kZXJlcikKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxheWVy
RnJhZ21lbnRzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGNvbnN0IExheWVyRnJhZ21lbnQmIGZy
YWdtZW50ID0gbGF5ZXJGcmFnbWVudHMuYXQoaSk7CisgICAgICAgIGlmICghZnJhZ21lbnQuc2hv
dWxkUGFpbnRDb250ZW50KQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKGxv
Y2FsUGFpbnRpbmdJbmZvLmNsaXBUb0RpcnR5UmVjdCkKKyAgICAgICAgICAgIGNsaXBUb1JlY3Qo
bG9jYWxQYWludGluZ0luZm8sIGNvbnRleHQsIGZyYWdtZW50LmZvcmVncm91bmRSZWN0LCBJbmNs
dWRlU2VsZkZvckJvcmRlclJhZGl1cyk7IC8vIENoaWxkIGNsaXBwaW5nIG1hc2sgcGFpbnRpbmcg
d2lsbCBoYW5kbGUgY2xpcHBpbmcgdG8gc2VsZi4KKworICAgICAgICAvLyBQYWludCB0aGUgY2xp
cHBlZCBtYXNrLgorICAgICAgICBQYWludEluZm8gcGFpbnRJbmZvKGNvbnRleHQsIGZyYWdtZW50
LmJhY2tncm91bmRSZWN0LnJlY3QoKSwgUGFpbnRQaGFzZUNsaXBwaW5nTWFzaywgUGFpbnRCZWhh
dmlvck5vcm1hbCwgc3VidHJlZVBhaW50Um9vdEZvclJlbmRlcmVyLCBudWxscHRyLCBudWxscHRy
LCAmbG9jYWxQYWludGluZ0luZm8ucm9vdExheWVyLT5yZW5kZXJlcigpKTsKKyAgICAgICAgcmVu
ZGVyZXIoKS5wYWludChwYWludEluZm8sIHRvTGF5b3V0UG9pbnQoZnJhZ21lbnQubGF5ZXJCb3Vu
ZHMubG9jYXRpb24oKSAtIHJlbmRlckJveExvY2F0aW9uKCkgKyBsb2NhbFBhaW50aW5nSW5mby5z
dWJwaXhlbEFjY3VtdWxhdGlvbikpOworCisgICAgICAgIGlmIChsb2NhbFBhaW50aW5nSW5mby5j
bGlwVG9EaXJ0eVJlY3QpCisgICAgICAgICAgICByZXN0b3JlQ2xpcChjb250ZXh0LCBsb2NhbFBh
aW50aW5nSW5mby5wYWludERpcnR5UmVjdCwgZnJhZ21lbnQuZm9yZWdyb3VuZFJlY3QpOworICAg
IH0KK30KKwogdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRPdmVyZmxvd0NvbnRyb2xzRm9yRnJhZ21l
bnRzKGNvbnN0IExheWVyRnJhZ21lbnRzJiBsYXllckZyYWdtZW50cywgR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBMYXllclBhaW50aW5nSW5mbyYgbG9jYWxQYWludGluZ0luZm8pCiB7
CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsYXllckZyYWdtZW50cy5zaXplKCk7ICsraSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCAyMjYzMGEyMGFjOWJm
MTA4ZWJlMjg5ZDU3ZTM3ZTQ5NjVlNjlhNTJlLi5lMDlkZjkxZDJmZDhmNTE2MGEyOTEzYTM3MzMx
ZTExNmUyYmY3ZTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAt
NjY3LDYgKzY2Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgUGFpbnRMYXllclBhaW50aW5nT3ZlcmZs
b3dDb250ZW50cyA9IDEgPDwgOSwKICAgICAgICAgUGFpbnRMYXllclBhaW50aW5nUm9vdEJhY2tn
cm91bmRPbmx5ID0gMSA8PCAxMCwKICAgICAgICAgUGFpbnRMYXllclBhaW50aW5nU2tpcFJvb3RC
YWNrZ3JvdW5kID0gMSA8PCAxMSwKKyAgICAgICAgUGFpbnRMYXllclBhaW50aW5nQ2hpbGRDbGlw
cGluZ01hc2tQaGFzZSA9IDEgPDwgMTIsCiAgICAgICAgIFBhaW50TGF5ZXJQYWludGluZ0NvbXBv
c2l0aW5nQWxsUGhhc2VzID0gKFBhaW50TGF5ZXJQYWludGluZ0NvbXBvc2l0aW5nQmFja2dyb3Vu
ZFBoYXNlIHwgUGFpbnRMYXllclBhaW50aW5nQ29tcG9zaXRpbmdGb3JlZ3JvdW5kUGhhc2UgfCBQ
YWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ01hc2tQaGFzZSkKICAgICB9OwogICAgIApAQCAt
MTAwOSw2ICsxMDEwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhaW50T3V0bGluZUZvckZyYWdt
ZW50cyhjb25zdCBMYXllckZyYWdtZW50cyYsIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheWVy
UGFpbnRpbmdJbmZvJiwgUGFpbnRCZWhhdmlvciwgUmVuZGVyT2JqZWN0KiBwYWludGluZ1Jvb3RG
b3JSZW5kZXJlcik7CiAgICAgdm9pZCBwYWludE92ZXJmbG93Q29udHJvbHNGb3JGcmFnbWVudHMo
Y29uc3QgTGF5ZXJGcmFnbWVudHMmLCBHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXllclBhaW50
aW5nSW5mbyYpOwogICAgIHZvaWQgcGFpbnRNYXNrRm9yRnJhZ21lbnRzKGNvbnN0IExheWVyRnJh
Z21lbnRzJiwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5ZXJQYWludGluZ0luZm8mLCBSZW5k
ZXJPYmplY3QqIHBhaW50aW5nUm9vdEZvclJlbmRlcmVyKTsKKyAgICB2b2lkIHBhaW50Q2hpbGRD
bGlwcGluZ01hc2tGb3JGcmFnbWVudHMoY29uc3QgTGF5ZXJGcmFnbWVudHMmLCBHcmFwaGljc0Nv
bnRleHQqLCBjb25zdCBMYXllclBhaW50aW5nSW5mbyYsIFJlbmRlck9iamVjdCogcGFpbnRpbmdS
b290Rm9yUmVuZGVyZXIpOwogICAgIHZvaWQgcGFpbnRUcmFuc2Zvcm1lZExheWVySW50b0ZyYWdt
ZW50cyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXllclBhaW50aW5nSW5mbyYsIFBhaW50TGF5
ZXJGbGFncyk7CiAKICAgICBSZW5kZXJMYXllciogdHJhbnNwYXJlbnRQYWludGluZ0FuY2VzdG9y
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
CmluZGV4IDliZWI0ZWZjZDI5ZmVjMzgzMzY0NTcyMjJjNDVkYmRhMmEzZjAzOGYuLjZhYTBlYzE5
MDAwYjlkMjVlZTQzNDA3NGU0MzcwZTdkNjg3ZTdkYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0xNDcsNiArMTQ3LDcgQEAgUmVu
ZGVyTGF5ZXJCYWNraW5nOjp+UmVuZGVyTGF5ZXJCYWNraW5nKCkKICAgICB1cGRhdGVGb3JlZ3Jv
dW5kTGF5ZXIoZmFsc2UpOwogICAgIHVwZGF0ZUJhY2tncm91bmRMYXllcihmYWxzZSk7CiAgICAg
dXBkYXRlTWFza0xheWVyKGZhbHNlKTsKKyAgICB1cGRhdGVDaGlsZENsaXBwaW5nU3RyYXRlZ3ko
ZmFsc2UpOwogICAgIHVwZGF0ZVNjcm9sbGluZ0xheWVycyhmYWxzZSk7CiAgICAgZGV0YWNoRnJv
bVNjcm9sbGluZ0Nvb3JkaW5hdG9yKCk7CiAgICAgZGVzdHJveUdyYXBoaWNzTGF5ZXJzKCk7CkBA
IC0zNDgsNiArMzQ5LDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OmRlc3Ryb3lHcmFwaGlj
c0xheWVycygpCiAgICAgbV9iYWNrZ3JvdW5kTGF5ZXIgPSBudWxscHRyOwogICAgIG1fY2hpbGRD
b250YWlubWVudExheWVyID0gbnVsbHB0cjsKICAgICBtX21hc2tMYXllciA9IG51bGxwdHI7Cisg
ICAgbV9jaGlsZENsaXBwaW5nTWFza0xheWVyID0gbnVsbHB0cjsKIAogICAgIG1fc2Nyb2xsaW5n
TGF5ZXIgPSBudWxscHRyOwogICAgIG1fc2Nyb2xsaW5nQ29udGVudHNMYXllciA9IG51bGxwdHI7
CkBAIC01NjksNiArNTcxLDggQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUNvbmZp
Z3VyYXRpb24oKQogCiAgICAgdXBkYXRlTWFza0xheWVyKHJlbmRlcmVyKCkuaGFzTWFzaygpKTsK
IAorICAgIHVwZGF0ZUNoaWxkQ2xpcHBpbmdTdHJhdGVneShuZWVkc0Rlc2NlbmRlbnRzQ2xpcHBp
bmdMYXllcik7CisKICAgICBpZiAobV9vd25pbmdMYXllci5oYXNSZWZsZWN0aW9uKCkpIHsKICAg
ICAgICAgaWYgKG1fb3duaW5nTGF5ZXIucmVmbGVjdGlvbkxheWVyKCktPmJhY2tpbmcoKSkgewog
ICAgICAgICAgICAgR3JhcGhpY3NMYXllciogcmVmbGVjdGlvbkxheWVyID0gbV9vd25pbmdMYXll
ci5yZWZsZWN0aW9uTGF5ZXIoKS0+YmFja2luZygpLT5ncmFwaGljc0xheWVyKCk7CkBAIC04MTQs
NiArODE4LDEyIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHZW9tZXRyeSgpCiAg
ICAgICAgIGNsaXBMYXllci0+c2V0UG9zaXRpb24oRmxvYXRQb2ludChjbGlwcGluZ0JveC5sb2Nh
dGlvbigpIC0gbG9jYWxDb21wb3NpdGluZ0JvdW5kcy5sb2NhdGlvbigpKSk7CiAgICAgICAgIGNs
aXBMYXllci0+c2V0U2l6ZShjbGlwcGluZ0JveC5zaXplKCkpOwogICAgICAgICBjbGlwTGF5ZXIt
PnNldE9mZnNldEZyb21SZW5kZXJlcih0b0Zsb2F0U2l6ZShjbGlwcGluZ0JveC5sb2NhdGlvbigp
KSk7CisKKyAgICAgICAgaWYgKG1fY2hpbGRDbGlwcGluZ01hc2tMYXllciAmJiAhbV9zY3JvbGxp
bmdMYXllcikgeworICAgICAgICAgICAgbV9jaGlsZENsaXBwaW5nTWFza0xheWVyLT5zZXRTaXpl
KGNsaXBMYXllci0+c2l6ZSgpKTsKKyAgICAgICAgICAgIG1fY2hpbGRDbGlwcGluZ01hc2tMYXll
ci0+c2V0UG9zaXRpb24oRmxvYXRQb2ludCgpKTsKKyAgICAgICAgICAgIG1fY2hpbGRDbGlwcGlu
Z01hc2tMYXllci0+c2V0T2Zmc2V0RnJvbVJlbmRlcmVyKGNsaXBMYXllci0+b2Zmc2V0RnJvbVJl
bmRlcmVyKCkpOworICAgICAgICB9CiAgICAgfQogICAgIAogICAgIGlmIChtX21hc2tMYXllcikg
ewpAQCAtOTQyLDYgKzk1MiwxMiBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR2Vv
bWV0cnkoKQogICAgICAgICBGbG9hdFNpemUgb2xkU2Nyb2xsaW5nTGF5ZXJPZmZzZXQgPSBtX3Nj
cm9sbGluZ0xheWVyLT5vZmZzZXRGcm9tUmVuZGVyZXIoKTsKICAgICAgICAgbV9zY3JvbGxpbmdM
YXllci0+c2V0T2Zmc2V0RnJvbVJlbmRlcmVyKC10b0Zsb2F0U2l6ZShwYWRkaW5nQm94LmxvY2F0
aW9uKCkpKTsKIAorICAgICAgICBpZiAobV9jaGlsZENsaXBwaW5nTWFza0xheWVyKSB7CisgICAg
ICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPnNldFBvc2l0aW9uKG1fc2Nyb2xsaW5n
TGF5ZXItPnBvc2l0aW9uKCkpOworICAgICAgICAgICAgbV9jaGlsZENsaXBwaW5nTWFza0xheWVy
LT5zZXRTaXplKG1fc2Nyb2xsaW5nTGF5ZXItPnNpemUoKSk7CisgICAgICAgICAgICBtX2NoaWxk
Q2xpcHBpbmdNYXNrTGF5ZXItPnNldE9mZnNldEZyb21SZW5kZXJlcih0b0Zsb2F0U2l6ZShwYWRk
aW5nQm94LmxvY2F0aW9uKCkpKTsKKyAgICAgICAgfQorCiAgICAgICAgIGJvb2wgcGFkZGluZ0Jv
eE9mZnNldENoYW5nZWQgPSBvbGRTY3JvbGxpbmdMYXllck9mZnNldCAhPSBtX3Njcm9sbGluZ0xh
eWVyLT5vZmZzZXRGcm9tUmVuZGVyZXIoKTsKIAogICAgICAgICBJbnRTaXplIHNjcm9sbFNpemUo
bV9vd25pbmdMYXllci5zY3JvbGxXaWR0aCgpLCBtX293bmluZ0xheWVyLnNjcm9sbEhlaWdodCgp
KTsKQEAgLTE0MTQsNiArMTQzMCwzOSBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRl
TWFza0xheWVyKGJvb2wgbmVlZHNNYXNrTGF5ZXIpCiAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+
c2V0UGFpbnRpbmdQaGFzZShwYWludGluZ1BoYXNlRm9yUHJpbWFyeUxheWVyKCkpOwogfQogCit2
b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlQ2hpbGRDbGlwcGluZ1N0cmF0ZWd5KGJvb2wg
bmVlZHNEZXNjZW5kZW50c0NsaXBwaW5nTGF5ZXIpCit7CisgICAgaWYgKCFoYXNDbGlwcGluZ0xh
eWVyKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChuZWVkc0Rlc2NlbmRlbnRzQ2xpcHBp
bmdMYXllcikgeworICAgICAgICBpZiAoaXM8UmVuZGVyQm94PihyZW5kZXJlcigpKSkgeworICAg
ICAgICAgICAgTGF5b3V0UmVjdCBib3hSZWN0KExheW91dFBvaW50KCksIGRvd25jYXN0PFJlbmRl
ckJveD4ocmVuZGVyZXIoKSkuc2l6ZSgpKTsKKyAgICAgICAgICAgIEZsb2F0Um91bmRlZFJlY3Qg
Y29udGVudHNDbGlwcGluZ1JlY3QgPSByZW5kZXJlcigpLnN0eWxlKCkuZ2V0Um91bmRlZElubmVy
Qm9yZGVyRm9yKGJveFJlY3QpLnBpeGVsU25hcHBlZFJvdW5kZWRSZWN0Rm9yUGFpbnRpbmcoZGV2
aWNlU2NhbGVGYWN0b3IoKSk7CisgICAgICAgICAgICBjb250ZW50c0NsaXBwaW5nUmVjdC5tb3Zl
KGNvbnRlbnRPZmZzZXRJbkNvbXBvc3RpbmdMYXllcigpKTsKKyAgICAgICAgICAgIGlmIChjbGlw
cGluZ0xheWVyKCktPmFwcGx5Q2xpcHBpbmdCb3JkZXIoY29udGVudHNDbGlwcGluZ1JlY3QpKSB7
CisgICAgICAgICAgICAgICAgaWYgKG1fY2hpbGRDbGlwcGluZ01hc2tMYXllcikgCisgICAgICAg
ICAgICAgICAgICAgIG1fY2hpbGRDbGlwcGluZ01hc2tMYXllciA9IG51bGxwdHI7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYg
KCFtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIpIHsKKyAgICAgICAgICAgIG1fY2hpbGRDbGlwcGlu
Z01hc2tMYXllciA9IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoIkNoaWxkIENsaXBwaW5nIE1hc2sgTGF5
ZXIiKTsKKyAgICAgICAgICAgIG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci0+c2V0RHJhd3NDb250
ZW50KHRydWUpOworICAgICAgICAgICAgbV9jaGlsZENsaXBwaW5nTWFza0xheWVyLT5zZXRQYWlu
dGluZ1BoYXNlKEdyYXBoaWNzTGF5ZXJQYWludENoaWxkQ2xpcHBpbmdNYXNrKTsKKyAgICAgICAg
ICAgIGNsaXBwaW5nTGF5ZXIoKS0+c2V0TWFza0xheWVyKG1fY2hpbGRDbGlwcGluZ01hc2tMYXll
ci5nZXQoKSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBpZiAobV9jaGlsZENs
aXBwaW5nTWFza0xheWVyKSB7CisgICAgICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIg
PSBudWxscHRyOworICAgICAgICAgICAgY2xpcHBpbmdMYXllcigpLT5zZXRNYXNrTGF5ZXIobnVs
bHB0cik7CisgICAgICAgIH0gZWxzZSAKKyAgICAgICAgICAgIGNsaXBwaW5nTGF5ZXIoKS0+Y2xl
YXJDbGlwcGluZ0JvcmRlcigpOworICAgIH0KKworfQorCiBib29sIFJlbmRlckxheWVyQmFja2lu
Zzo6dXBkYXRlU2Nyb2xsaW5nTGF5ZXJzKGJvb2wgbmVlZHNTY3JvbGxpbmdMYXllcnMpCiB7CiAg
ICAgaWYgKG5lZWRzU2Nyb2xsaW5nTGF5ZXJzID09ICEhbV9zY3JvbGxpbmdMYXllcikKQEAgLTIw
NjUsNiArMjExNCw5IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpzZXRDb250ZW50c05lZWRE
aXNwbGF5KEdyYXBoaWNzTGF5ZXI6OlNob3VsZENsaXBUb0xheWVyCiAgICAgaWYgKG1fbWFza0xh
eWVyICYmIG1fbWFza0xheWVyLT5kcmF3c0NvbnRlbnQoKSkKICAgICAgICAgbV9tYXNrTGF5ZXIt
PnNldE5lZWRzRGlzcGxheSgpOwogCisgICAgaWYgKG1fY2hpbGRDbGlwcGluZ01hc2tMYXllciAm
JiBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPmRyYXdzQ29udGVudCgpKQorICAgICAgICBtX2No
aWxkQ2xpcHBpbmdNYXNrTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOworCiAgICAgaWYgKG1fc2Ny
b2xsaW5nQ29udGVudHNMYXllciAmJiBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXItPmRyYXdzQ29u
dGVudCgpKQogICAgICAgICBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXItPnNldE5lZWRzRGlzcGxh
eSgpOwogfQpAQCAtMjEwNCw2ICsyMTU2LDEyIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpz
ZXRDb250ZW50c05lZWREaXNwbGF5SW5SZWN0KGNvbnN0IExheW91dFJlY3QmIHIsIEdyYXBoCiAg
ICAgICAgIG1fbWFza0xheWVyLT5zZXROZWVkc0Rpc3BsYXlJblJlY3QobGF5ZXJEaXJ0eVJlY3Qs
IHNob3VsZENsaXApOwogICAgIH0KIAorICAgIGlmIChtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIg
JiYgbV9jaGlsZENsaXBwaW5nTWFza0xheWVyLT5kcmF3c0NvbnRlbnQoKSkgeworICAgICAgICBG
bG9hdFJlY3QgbGF5ZXJEaXJ0eVJlY3QgPSByOworICAgICAgICBsYXllckRpcnR5UmVjdC5tb3Zl
KC1tX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPm9mZnNldEZyb21SZW5kZXJlcigpKTsKKyAgICAg
ICAgbV9jaGlsZENsaXBwaW5nTWFza0xheWVyLT5zZXROZWVkc0Rpc3BsYXlJblJlY3QobGF5ZXJE
aXJ0eVJlY3QpOworICAgIH0KKwogICAgIGlmIChtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIgJiYg
bV9zY3JvbGxpbmdDb250ZW50c0xheWVyLT5kcmF3c0NvbnRlbnQoKSkgewogICAgICAgICBGbG9h
dFJlY3QgbGF5ZXJEaXJ0eVJlY3QgPSBwaXhlbFNuYXBwZWRSZWN0Rm9yUGFpbnRpbmc7CiAgICAg
ICAgIGxheWVyRGlydHlSZWN0Lm1vdmUoLW1fc2Nyb2xsaW5nQ29udGVudHNMYXllci0+b2Zmc2V0
RnJvbVJlbmRlcmVyKCkgKyBtX2RldmljZVBpeGVsRnJhY3Rpb25Gcm9tUmVuZGVyZXIpOwpAQCAt
MjEzOCw2ICsyMTk2LDggQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50SW50b0xheWVy
KGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXAKICAgICAgICAgcGFpbnRG
bGFncyB8PSBSZW5kZXJMYXllcjo6UGFpbnRMYXllclBhaW50aW5nQ29tcG9zaXRpbmdGb3JlZ3Jv
dW5kUGhhc2U7CiAgICAgaWYgKHBhaW50aW5nUGhhc2UgJiBHcmFwaGljc0xheWVyUGFpbnRNYXNr
KQogICAgICAgICBwYWludEZsYWdzIHw9IFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRpbmdD
b21wb3NpdGluZ01hc2tQaGFzZTsKKyAgICBpZiAocGFpbnRpbmdQaGFzZSAmIEdyYXBoaWNzTGF5
ZXJQYWludENoaWxkQ2xpcHBpbmdNYXNrKQorICAgICAgICBwYWludEZsYWdzIHw9IFJlbmRlckxh
eWVyOjpQYWludExheWVyUGFpbnRpbmdDaGlsZENsaXBwaW5nTWFza1BoYXNlOwogICAgIGlmIChw
YWludGluZ1BoYXNlICYgR3JhcGhpY3NMYXllclBhaW50T3ZlcmZsb3dDb250ZW50cykKICAgICAg
ICAgcGFpbnRGbGFncyB8PSBSZW5kZXJMYXllcjo6UGFpbnRMYXllclBhaW50aW5nT3ZlcmZsb3dD
b250ZW50czsKICAgICBpZiAocGFpbnRpbmdQaGFzZSAmIEdyYXBoaWNzTGF5ZXJQYWludENvbXBv
c2l0ZWRTY3JvbGwpCkBAIC0yMjAyLDYgKzIyNjIsNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2lu
Zzo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFw
aAogICAgICAgICB8fCBncmFwaGljc0xheWVyID09IG1fZm9yZWdyb3VuZExheWVyLmdldCgpCiAg
ICAgICAgIHx8IGdyYXBoaWNzTGF5ZXIgPT0gbV9iYWNrZ3JvdW5kTGF5ZXIuZ2V0KCkKICAgICAg
ICAgfHwgZ3JhcGhpY3NMYXllciA9PSBtX21hc2tMYXllci5nZXQoKQorICAgICAgICB8fCBncmFw
aGljc0xheWVyID09IG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci5nZXQoKQogICAgICAgICB8fCBn
cmFwaGljc0xheWVyID09IG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci5nZXQoKSkgewogICAgICAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxQYWludCgmcmVuZGVyZXIoKSk7CiAKQEAg
LTI1NzgsNiArMjYzOSw4IEBAIGRvdWJsZSBSZW5kZXJMYXllckJhY2tpbmc6OmJhY2tpbmdTdG9y
ZU1lbW9yeUVzdGltYXRlKCkgY29uc3QKICAgICAgICAgYmFja2luZ01lbW9yeSArPSBtX2JhY2tn
cm91bmRMYXllci0+YmFja2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUoKTsKICAgICBpZiAobV9tYXNr
TGF5ZXIpCiAgICAgICAgIGJhY2tpbmdNZW1vcnkgKz0gbV9tYXNrTGF5ZXItPmJhY2tpbmdTdG9y
ZU1lbW9yeUVzdGltYXRlKCk7CisgICAgaWYgKG1fY2hpbGRDbGlwcGluZ01hc2tMYXllcikKKyAg
ICAgICAgYmFja2luZ01lbW9yeSArPSBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPmJhY2tpbmdT
dG9yZU1lbW9yeUVzdGltYXRlKCk7CiAKICAgICBpZiAobV9zY3JvbGxpbmdDb250ZW50c0xheWVy
KQogICAgICAgICBiYWNraW5nTWVtb3J5ICs9IG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci0+YmFj
a2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuaAppbmRleCAxZmY4ZjU0YzZkOTY1NzgzNjU5NzI0YTc1MmZlYTVi
NzAzNzY1MmRkLi40YTcyYWE3YTRmNDBmMGUxOTViMTBiYTJjYjkzYjNkZGQzMGM2Y2M0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBAIC0xMzks
NiArMTM5LDcgQEAgcHVibGljOgogICAgIFNjcm9sbGluZ05vZGVJRCBzY3JvbGxpbmdOb2RlSURG
b3JDaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsaW5nTm9kZUlEID8gbV9zY3JvbGxp
bmdOb2RlSUQgOiBtX3ZpZXdwb3J0Q29uc3RyYWluZWROb2RlSUQ7IH0KIAogICAgIGJvb2wgaGFz
TWFza0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9tYXNrTGF5ZXIgIT0gMDsgfQorICAgIGJvb2wg
aGFzQ2hpbGRDbGlwcGluZ01hc2tMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRDbGlwcGlu
Z01hc2tMYXllciAhPSBudWxscHRyOyB9CiAKICAgICBHcmFwaGljc0xheWVyKiBwYXJlbnRGb3JT
dWJsYXllcnMoKSBjb25zdDsKICAgICBHcmFwaGljc0xheWVyKiBjaGlsZEZvclN1cGVybGF5ZXJz
KCkgY29uc3Q7CkBAIC0yNjgsNiArMjY5LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHJlcXVpcmVz
U2Nyb2xsQ29ybmVyTGF5ZXIoKSBjb25zdDsKICAgICBib29sIHVwZGF0ZVNjcm9sbGluZ0xheWVy
cyhib29sIHNjcm9sbGluZ0xheWVycyk7CiAgICAgdm9pZCB1cGRhdGVEcmF3c0NvbnRlbnQoYm9v
bCBpc1NpbXBsZUNvbnRhaW5lcik7CisgICAgdm9pZCB1cGRhdGVDaGlsZENsaXBwaW5nU3RyYXRl
Z3koYm9vbCBuZWVkc0Rlc2NlbmRlbnRzQ2xpcHBpbmdMYXllcik7CiAgICAgCiAgICAgdm9pZCB1
cGRhdGVSb290TGF5ZXJDb25maWd1cmF0aW9uKCk7CiAKQEAgLTMzNSw2ICszMzcsNyBAQCBwcml2
YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2JhY2tncm91bmRMYXll
cjsgLy8gT25seSB1c2VkIGluIGNhc2VzIHdoZXJlIHdlIG5lZWQgdG8gZHJhdyB0aGUgYmFja2dy
b3VuZCBzZXBhcmF0ZWx5LgogICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2No
aWxkQ29udGFpbm1lbnRMYXllcjsgLy8gT25seSB1c2VkIGlmIHdlIGhhdmUgY2xpcHBpbmcgb24g
YSBzdGFja2luZyBjb250ZXh0IHdpdGggY29tcG9zaXRpbmcgY2hpbGRyZW4sIG9yIGlmIHRoZSBs
YXllciBoYXMgYSB0aWxlIGNhY2hlLgogICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVy
PiBtX21hc2tMYXllcjsgLy8gT25seSB1c2VkIGlmIHdlIGhhdmUgYSBtYXNrLgorICAgIHN0ZDo6
dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXI7IC8vIE9u
bHkgdXNlZCBpZiB3ZSBoYXZlIHRvIGNsaXAgY2hpbGQgbGF5ZXJzIG9yIGFjY2VsZXJhdGVkIGNv
bnRlbnRzIHdpdGggYm9yZGVyIHJhZGl1cyBvciBjbGlwLXBhdGguCiAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9sYXllckZvckhvcml6b250YWxTY3JvbGxiYXI7CiAgICAg
c3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJh
cjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>243861</attachid>
            <date>2015-01-01 03:20:11 -0800</date>
            <delta_ts>2015-01-01 03:20:11 -0800</delta_ts>
            <desc>Test for changing between uniform to non-uniform corner radius &amp; removing border-radius.</desc>
            <filename>clippingBorderSwitching.html</filename>
            <type>text/html</type>
            <size>1609</size>
            <attacher name="Byungseon(Sun) Shin">sun.shin</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8c3R5bGU+Ci5vdXRlciB7CiAgICBib3JkZXI6IDEwcHggc29saWQgYmxh
Y2s7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgd2lkdGg6IDIwMHB4OwogICAgaGVpZ2h0OiAx
MDBweDsKICAgIG1hcmdpbjogMTBweDsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIC13
ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApOwp9CiAgIAouYW5pbWF0aW5nIHsKICAgICAt
d2Via2l0LWFuaW1hdGlvbjogc3BpbiAxMHMgaW5maW5pdGUgbGluZWFyOwp9CiAgIApALXdlYmtp
dC1rZXlmcmFtZXMgc3BpbiB7CiAgICAwJSB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMHB4Owog
ICAgfQogICAgMzAlIHsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMDBweCA1MHB4IDBweCAwcHg7
CiAgICB9CiAgICA3MCUgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7CiAgICB9CiAgICAx
MDAlIHsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMDBweDsKICAgIH0KfQogICAKLmlubmVyIHsK
ICAgIGJhY2tncm91bmQ6ICM4MDgwODA7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAw
JTsKICAgIGNvbG9yOiAjRkZGRkZGOwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRl
ZykgdHJhbnNsYXRlWigwKTsKfQo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgpUaGUgd2hpdGUgdGV4
dCBhbmQgZ3JleSBiYWNrZ3JvdW5kcyBzaG91bGQgYWxsIGNsaXAgdG8gdGhlIGJvcmRlci1yYWRp
dXMuCjxicj4KCjwhLS0gc3RhdGljIGNvbnRhaW5lciAtLT4KPGRpdiBjbGFzcz0iYW5pbWF0aW5n
IG91dGVyIiBzdHlsZT0icG9zaXRpb246IHN0YXRpYzsiPgogICAgPGRpdiBjbGFzcz0iaW5uZXIi
IHN0eWxlPSJwb3NpdGlvbjogc3RhdGljOyI+CiAgICAgICAgc3RhdGljICZndDsgc3RhdGljCiAg
ICA8L2Rpdj4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJhbmltYXRpbmcgb3V0ZXIiIHN0eWxlPSJwb3Np
dGlvbjogc3RhdGljOyI+CiAgICA8ZGl2IGNsYXNzPSJpbm5lciIgc3R5bGU9InBvc2l0aW9uOiBy
ZWxhdGl2ZTsiPgogICAgICAgIHN0YXRpYyAmZ3Q7IHJlbGF0aXZlCiAgICA8L2Rpdj4KPC9kaXY+
Cgo8IS0tIHJlbGF0aXZlIGNvbnRhaW5lciAtLT4KPGRpdiBjbGFzcz0iYW5pbWF0aW5nIG91dGVy
IiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyI+CiAgICA8ZGl2IGNsYXNzPSJpbm5lciIgc3R5
bGU9InBvc2l0aW9uOiBzdGF0aWM7Ij4KICAgICAgICByZWxhdGl2ZSAmZ3Q7IHN0YXRpYwogICAg
PC9kaXY+CjwvZGl2PgoKPGRpdiBjbGFzcz0iYW5pbWF0aW5nIG91dGVyIiBzdHlsZT0icG9zaXRp
b246IHJlbGF0aXZlOyI+CiAgICA8ZGl2IGNsYXNzPSJpbm5lciIgc3R5bGU9InBvc2l0aW9uOiBy
ZWxhdGl2ZTsiPgogICAgICAgIHJlbGF0aXZlICZndDsgcmVsYXRpdmUKICAgIDwvZGl2Pgo8L2Rp
dj4KPGJyPgo8ZGl2IGNsYXNzPSJhbmltYXRpbmcgb3V0ZXIiIHN0eWxlPSJwb3NpdGlvbjogcmVs
YXRpdmU7Ij4KICAgIDxkaXYgY2xhc3M9ImlubmVyIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRl
OyI+CiAgICAgICAgcmVsYXRpdmUgJmd0OyBhYnNvbHV0ZQogICAgPC9kaXY+CjwvZGl2PgoKPC9i
b2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243862</attachid>
            <date>2015-01-01 03:52:57 -0800</date>
            <delta_ts>2015-01-16 18:40:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138551-20150101035259.patch</filename>
            <type>text/plain</type>
            <size>25421</size>
            <attacher name="Byungseon(Sun) Shin">sun.shin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3ODQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjE4OTczNjA3MGY3ZWQ3
ZmZlZWRlNDA1ZTI5ZjA1YmNhZTI1NDMxMS4uYmNlZGExMTQwOTkwZjFmYzFiMzdiYTIwMzViMTEw
YzdhYzViNTg1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE1LTAxLTAxICBCeXVu
Z3Nlb24gU2hpbiAgPHN1bi5zaGluQGxnZS5jb20+CisKKyAgICAgICAgRml4IEJvcmRlci1yYWRp
dXMgY2xpcHBpbmcgaXNzdWUgb24gYSBjb21wb3NpdGVkIGRlc2NlbmRhbnRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg1NTEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggY2xpcHBpbmcgY29tcG9z
aXRpbmcgZGVzY2VuZGFudHMgb2YgYW4gYWNjZWxlcmF0ZWQgbGF5ZXIgaGF2aW5nCisgICAgICAg
IGJvcmRlciByYWRpdXMgYW5kIGNsaXAgb3ZlcmZsb3cgaXNzdWUgYnkgdXNpbmcgbGF5ZXIgY29y
bmVyLXJhZGl1cworICAgICAgICBvciBhIENBU2hhcGVMYXllciBtYXNrIG9uIE1hYywgYW5kIHNl
dHRpbmcgdXAgYSBzZXBhcmF0ZSBtYXNrIGxheWVyCisgICAgICAgIG9uIHRoZSBjaGlsZENvbnRh
aW5tZW50TGF5ZXIgb24gb3RoZXIgcGxhdGZvcm1zLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMg
ZXh0cmFjdGVkIGZyb20gZm9sbG93aW5nIEJsaW5rIHJldmlzaW9uczoKKyAgICAgICAgPGh0dHA6
Ly9zcmMuY2hyb21pdW0ub3JnL3ZpZXd2Yy9ibGluaz92aWV3PXJldmlzaW9uJnJldmlzaW9uPTE2
MjQ2Mz4KKyAgICAgICAgPGh0dHA6Ly9zcmMuY2hyb21pdW0ub3JnL3ZpZXd2Yy9ibGluaz92aWV3
PXJldmlzaW9uJnJldmlzaW9uPTE1ODI1OD4KKyAgICAgICAgYnkgPHJvc2NhQGFkb2JlLmNvbT4K
KworICAgICAgICBDbGlwIGFjY2VsZXJhdGVkIGRlc2NlbmRhbnRzIG9mIGFuIGFjY2VsZXJhdGVk
IGxheWVyIGhhdmluZyBib3JkZXIgcmFkaXVzIGFuZCBjbGlwIG92ZXJmbG93LgorICAgICAgICBM
YXJnZSBjYW52YXMgZG9lcyBub3QgaG9ub3IgY29udGFpbmluZyBkaXYncyBib3JkZXIgcmFkaXVz
LgorCisgICAgICAgIGFuZCA8aHR0cDovL3NyYy5jaHJvbWl1bS5vcmcvdmlld3ZjL2JsaW5rP3Zp
ZXc9cmV2aXNpb24mcmV2aXNpb249MTYwNTc4PgorICAgICAgICBieSA8anVub3ZAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIEZpeCBmb3IgQ1NTIGNsaXAtcGF0aCB3aXRoIGFjY2VsZXJhdGVkIDJE
IGNhbnZhcy4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NM
YXllcjo6ZHVtcFByb3BlcnRpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmFwcGx5Q2xpcHBp
bmdCb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6Y2xlYXJDbGlwcGlu
Z0JvcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpuZWVkc0NsaXBwaW5n
TWFza0xheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xp
ZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6YXBwbHlDbGlwcGluZ0JvcmRl
cik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNsZWFyQ2xpcHBpbmdCb3Jk
ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9QYWludFBoYXNlLmg6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludE9iamVj
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3g6OnBhaW50Q2xpcHBpbmdNYXNrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyQm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludExheWVyQ29udGVudHMpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OnBhaW50Q2hpbGRDbGlwcGluZ01hc2tGb3JGcmFnbWVudHMpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNr
aW5nOjp+UmVuZGVyTGF5ZXJCYWNraW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
QmFja2luZzo6ZGVzdHJveUdyYXBoaWNzTGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyQmFja2luZzo6dXBkYXRlQ29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyQmFja2luZzo6dXBkYXRlQ2hpbGRDbGlwcGluZ1N0cmF0ZWd5KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6c2V0Q29udGVudHNOZWVkRGlzcGxheSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnNldENvbnRlbnRzTmVlZERpc3Bs
YXlJblJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludElu
dG9MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50Q29u
dGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpiYWNraW5nU3Rv
cmVNZW1vcnlFc3RpbWF0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5oOgorCiAyMDE1LTAxLTAxICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgU2F0dXJhdGVkIGFyaXRobWV0aWNzOiBJbmNvcnJlY3QgZmxvYXQvZG91YmxlIGNsYW1w
aW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAzN2M3YjZjNGMwNjUwYzU0ZWNlNmM4Y2QzMWZl
NTZiNzQwYjk2NzkzLi5mOGQwZDE0ODkwY2E1YjNkNzExNmRhNGM5ODM3ZmM1MGY3MTEwODJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNTg5LDYgKzU4OSw4IEBAIF9fWk43V2ViQ29yZTE1R3Jh
cGhpY3NMYXllckNBMThzZXRDb250ZW50c1Zpc2libGVFYgogX19aTjdXZWJDb3JlMTVHcmFwaGlj
c0xheWVyQ0ExOHNldE9wYWNpdHlJbnRlcm5hbEVmCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5
ZXJDQTE4c2V0UmVwbGljYXRlZExheWVyRVBOU18xM0dyYXBoaWNzTGF5ZXJFCiBfX1pON1dlYkNv
cmUxNUdyYXBoaWNzTGF5ZXJDQTE4c2V0U2hvd0RlYnVnQm9yZGVyRWIKK19fWk43V2ViQ29yZTE1
R3JhcGhpY3NMYXllckNBMTlhcHBseUNsaXBwaW5nQm9yZGVyRVJLTlNfMTZGbG9hdFJvdW5kZWRS
ZWN0RQorX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExOWNsZWFyQ2xpcHBpbmdCb3JkZXJF
dgogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExOXNldEN1c3RvbUFwcGVhcmFuY2VFTlNf
MTNHcmFwaGljc0xheWVyMTZDdXN0b21BcHBlYXJhbmNlRQogX19aTjdXZWJDb3JlMTVHcmFwaGlj
c0xheWVyQ0EyMHNldENoaWxkcmVuVHJhbnNmb3JtRVJLTlNfMjBUcmFuc2Zvcm1hdGlvbk1hdHJp
eEUKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMjBzZXRSZXBsaWNhdGVkQnlMYXllckVQ
TlNfMTNHcmFwaGljc0xheWVyRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyLmNwcAppbmRleCA2MmQyNTE2M2RkMjkwZjI2ODNhMmIzNDc5NmM5
OTA5MjdlYjM5Zjk5Li5kNjI4OGI3NmRlOTYyMWJmYWJlZGY0YjczMzNlNDUyODllMGZjZTU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
LmNwcApAQCAtNzYxLDYgKzc2MSwxMCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OmR1bXBQcm9wZXJ0
aWVzKFRleHRTdHJlYW0mIHRzLCBpbnQgaW5kZW50LCBMYXllclRyZWVBc1RleHRCZQogICAgICAg
ICAgICAgd3JpdGVJbmRlbnQodHMsIGluZGVudCArIDIpOwogICAgICAgICAgICAgdHMgPDwgIkdy
YXBoaWNzTGF5ZXJQYWludE1hc2tcbiI7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKHBhaW50aW5n
UGhhc2UoKSAmIEdyYXBoaWNzTGF5ZXJQYWludENoaWxkQ2xpcHBpbmdNYXNrKSB7CisgICAgICAg
ICAgICB3cml0ZUluZGVudCh0cywgaW5kZW50ICsgMik7CisgICAgICAgICAgICB0cyA8PCAiR3Jh
cGhpY3NMYXllclBhaW50Q2hpbGRDbGlwcGluZ01hc2tcbiI7CisgICAgICAgIH0KICAgICAgICAg
aWYgKHBhaW50aW5nUGhhc2UoKSAmIEdyYXBoaWNzTGF5ZXJQYWludE92ZXJmbG93Q29udGVudHMp
IHsKICAgICAgICAgICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQgKyAyKTsKICAgICAgICAgICAg
IHRzIDw8ICJHcmFwaGljc0xheWVyUGFpbnRPdmVyZmxvd0NvbnRlbnRzXG4iOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCmluZGV4IDdiZTZh
OWY2OWZhMTI3MDVkNTA1ZmYzZDZiYzA1M2VkYjVjNTQzNTguLmM0ZDIyYjY1ZDEyYTg4Zjk0NWFl
NDdiNTEwNTcwNGYzZTc0MGYxNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyLmgKQEAgLTM2OCw2ICszNjgsOSBAQCBwdWJsaWM6CiAgICAg
RmxvYXRSb3VuZGVkUmVjdCBjb250ZW50c0NsaXBwaW5nUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1f
Y29udGVudHNDbGlwcGluZ1JlY3Q7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNDbGlw
cGluZ1JlY3QoY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcm91bmRlZFJlY3QpIHsgbV9jb250ZW50
c0NsaXBwaW5nUmVjdCA9IHJvdW5kZWRSZWN0OyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgYXBwbHlD
bGlwcGluZ0JvcmRlcihjb25zdCBGbG9hdFJvdW5kZWRSZWN0JikgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJDbGlwcGluZ0JvcmRlcigpIHsgcmV0dXJuOyB9CisKICAg
ICAvLyBUcmFuc2l0aW9ucyBhcmUgaWRlbnRpZmllZCBieSBhIHNwZWNpYWwgYW5pbWF0aW9uIG5h
bWUgdGhhdCBjYW5ub3QgY2xhc2ggd2l0aCBhIGtleWZyYW1lIGlkZW50aWZpZXIuCiAgICAgc3Rh
dGljIFN0cmluZyBhbmltYXRpb25OYW1lRm9yVHJhbnNpdGlvbihBbmltYXRlZFByb3BlcnR5SUQp
OwogICAgIApAQCAtNDk4LDYgKzUwMSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNH
cmFwaGljc0xheWVyQ0FSZW1vdGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1
YWwgYm9vbCBpc0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBuZWVkc0NsaXBwaW5nTWFza0xheWVyKCkgeyByZXR1
cm4gdHJ1ZTsgfTsKKwogcHJvdGVjdGVkOgogICAgIC8vIFNob3VsZCBiZSBjYWxsZWQgZnJvbSBk
ZXJpdmVkIGNsYXNzIGRlc3RydWN0b3JzLiBTaG91bGQgY2FsbCB3aWxsQmVEZXN0cm95ZWQoKSBv
biBzdXBlci4KICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVk
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyQ2xpZW50LmgKaW5kZXggYjQ1ZGYxYzg3MGEwNDFmYTIxZjliZGRiNWZkYzVmMWMxZWM0
MDhkMy4uMWQ5YWUxYzE2NjYyMWM3ZWFiN2Y5NmI4MDFiZjMyZGM1OTgzMGY3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGll
bnQuaApAQCAtNDQsNiArNDQsNyBAQCBlbnVtIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlRmxh
Z3MgewogICAgIEdyYXBoaWNzTGF5ZXJQYWludE1hc2sgPSAoMSA8PCAyKSwKICAgICBHcmFwaGlj
c0xheWVyUGFpbnRPdmVyZmxvd0NvbnRlbnRzID0gKDEgPDwgMyksCiAgICAgR3JhcGhpY3NMYXll
clBhaW50Q29tcG9zaXRlZFNjcm9sbCA9ICgxIDw8IDQpLAorICAgIEdyYXBoaWNzTGF5ZXJQYWlu
dENoaWxkQ2xpcHBpbmdNYXNrID0gKDEgPDwgNSksCiAgICAgR3JhcGhpY3NMYXllclBhaW50QWxs
V2l0aE92ZXJmbG93Q2xpcCA9IChHcmFwaGljc0xheWVyUGFpbnRCYWNrZ3JvdW5kIHwgR3JhcGhp
Y3NMYXllclBhaW50Rm9yZWdyb3VuZCB8IEdyYXBoaWNzTGF5ZXJQYWludE1hc2spCiB9OwogdHlw
ZWRlZiB1bnNpZ25lZCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmlu
ZGV4IGZjZTk2MGYwZjMxZDA5OWQ2ZTMyNzFlMDJhNjNmNTBmNWE1OWQ3NjcuLjgyNDhhMTgzZDcy
MjYzZTkxZjI2YzBjYWQ1YTI2ZTA5MjlmNzUzMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtMjAyNyw2
ICsyMDI3LDM4IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250ZW50c0NvbG9yTGF5
ZXIoKQogICAgIH0KIH0KIAorYm9vbCBHcmFwaGljc0xheWVyQ0E6OmFwcGx5Q2xpcHBpbmdCb3Jk
ZXIoY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcm91bmRlZFJlY3QpCit7CisgICAgaWYgKHJvdW5k
ZWRSZWN0LnJhZGlpKCkuaXNVbmlmb3JtQ29ybmVyUmFkaXVzKCkpIHsKKyAgICAgICAgbV9sYXll
ci0+c2V0TWFzayhudWxscHRyKTsKKyAgICAgICAgbV9sYXllci0+c2V0TWFza3NUb0JvdW5kcyh0
cnVlKTsKKyAgICAgICAgbV9sYXllci0+c2V0Q29ybmVyUmFkaXVzKHJvdW5kZWRSZWN0LnJhZGlp
KCkudG9wTGVmdCgpLndpZHRoKCkpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmICghbV9zaGFw
ZU1hc2tMYXllcikgeworICAgICAgICAgICAgbV9zaGFwZU1hc2tMYXllciA9IGNyZWF0ZVBsYXRm
b3JtQ0FMYXllcihQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVNoYXBlTGF5ZXIsIHRoaXMpOwor
ICAgICAgICAgICAgbV9zaGFwZU1hc2tMYXllci0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludDNE
KCkpOworICAgICAgICB9CisKKyAgICAgICAgbV9zaGFwZU1hc2tMYXllci0+c2V0UG9zaXRpb24o
RmxvYXRQb2ludCgpKTsKKyAgICAgICAgbV9zaGFwZU1hc2tMYXllci0+c2V0Qm91bmRzKG1fbGF5
ZXItPmJvdW5kcygpKTsKKyAgICAKKyAgICAgICAgbV9sYXllci0+c2V0Q29ybmVyUmFkaXVzKDAp
OworICAgICAgICBtX2xheWVyLT5zZXRNYXNrKG1fc2hhcGVNYXNrTGF5ZXIuZ2V0KCkpOworCisg
ICAgICAgIEZsb2F0Um91bmRlZFJlY3Qgb2Zmc2V0Q2xpcHBpbmdSb3VuZGVkUmVjdChtX2xheWVy
LT5ib3VuZHMoKSwgcm91bmRlZFJlY3QucmFkaWkoKSk7CisgICAgICAgIG1fc2hhcGVNYXNrTGF5
ZXItPnNldFNoYXBlUm91bmRlZFJlY3Qob2Zmc2V0Q2xpcHBpbmdSb3VuZGVkUmVjdCk7CisgICAg
fQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpjbGVhckNs
aXBwaW5nQm9yZGVyKCkKK3sKKyAgICBtX2xheWVyLT5zZXRDb3JuZXJSYWRpdXMoMCk7CisgICAg
bV9sYXllci0+c2V0TWFza3NUb0JvdW5kcyhmYWxzZSk7CisgICAgbV9sYXllci0+c2V0TWFzayhu
dWxscHRyKTsKK30KKwogLy8gVGhlIGNsaXBwaW5nIHN0cmF0ZWd5IGRlcGVuZHMgb24gd2hldGhl
ciB0aGUgcm91bmRlZCByZWN0IGhhcyBlcXVhbCBjb3JuZXIgcmFkaWkuCiB2b2lkIEdyYXBoaWNz
TGF5ZXJDQTo6dXBkYXRlQ2xpcHBpbmdTdHJhdGVneShQbGF0Zm9ybUNBTGF5ZXImIGNsaXBwaW5n
TGF5ZXIsIFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+JiBzaGFwZU1hc2tMYXllciwgY29uc3QgRmxv
YXRSb3VuZGVkUmVjdCYgcm91bmRlZFJlY3QpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCmluZGV4IDg0MjQ0NzI3NGNl
ZTVmYmM3NGZhZjkyNTgzYzdkZDk2NDc5ZmVjNGQuLjQ5NWY1NzhmMzZkZmQwZGJjNDhmZjM3NjBk
NTg2ODg3NmU2ZThjNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBAIC0xNzMsNiArMTczLDkgQEAgcHJvdGVjdGVk
OgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNHcmFwaGljc0xheWVyQ0EoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgYXBwbHlDbGlwcGlu
Z0JvcmRlcihjb25zdCBGbG9hdFJvdW5kZWRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGNsZWFyQ2xpcHBpbmdCb3JkZXIoKSBvdmVycmlkZTsKKwogICAgIFdFQkNPUkVfRVhQT1JU
IHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVycmlkZTsKIAogICAgIC8vIFBsYXRm
b3JtQ0FMYXllckNsaWVudCBvdmVycmlkZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9QYWludFBoYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUGFpbnRQaGFz
ZS5oCmluZGV4IDBiYmY5OWE3ZDBjZjVhMDljYTg1YzMwZGYwNjFhMzZkN2NhYzAyNmIuLmE0NDhk
OTIyZDk4ZjcxYzg3YjlkNjI5NjIzMWVhNGVhNzAzOWVmODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9QYWludFBoYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1BhaW50UGhhc2UuaApAQCAtNDksNyArNDksOCBAQCBlbnVtIFBhaW50UGhhc2UgewogICAg
IFBhaW50UGhhc2VTZWxlY3Rpb24sCiAgICAgUGFpbnRQaGFzZUNvbGxhcHNlZFRhYmxlQm9yZGVy
cywKICAgICBQYWludFBoYXNlVGV4dENsaXAsCi0gICAgUGFpbnRQaGFzZU1hc2sKKyAgICBQYWlu
dFBoYXNlTWFzaywKKyAgICBQYWludFBoYXNlQ2xpcHBpbmdNYXNrCiB9OwogCiBlbnVtIFBhaW50
QmVoYXZpb3JGbGFncyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApp
bmRleCA1MjRiZDk3NjM2OWM4ZGEzNmE5ZmM3ZGUwMjI4N2U4NmVlZjljNjc1Li5iNWZjNzRiMDU1
NjljZjc4NGVmNzY3ZWE2NDI0NjgwYWZmMGM4NzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAKQEAgLTE1NzUsNiArMTU3NSwxMSBAQCB2b2lkIFJlbmRlckJsb2Nr
OjpwYWludE9iamVjdChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBh
aW50T2ZmcwogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKHBhaW50UGhhc2UgPT0g
UGFpbnRQaGFzZUNsaXBwaW5nTWFzayAmJiBzdHlsZSgpLnZpc2liaWxpdHkoKSA9PSBWSVNJQkxF
KSB7CisgICAgICAgIHBhaW50Q2xpcHBpbmdNYXNrKHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgLy8gSWYganVzdCBwYWludGluZyB0aGUgcm9v
dCBiYWNrZ3JvdW5kLCB0aGVuIHJldHVybi4KICAgICBpZiAocGFpbnRJbmZvLnBhaW50Um9vdEJh
Y2tncm91bmRPbmx5KCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5jcHAKaW5kZXggZjQ2NDMxMGU1MWVhMjhlZmZhZDQ3NzFiZjllMjY3ZTk5ZmIwOTg3
Yi4uNjM5OThhMTk3OTY5MGZhMDA1YzBmNjYwZjE1MGY4MjU3NGUzYzc0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTE0ODAsNiArMTQ4MCwxNSBAQCB2b2lkIFJl
bmRlckJveDo6cGFpbnRNYXNrKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2lu
dCYgcGFpbnRPZmZzZXQpCiAgICAgcGFpbnRNYXNrSW1hZ2VzKHBhaW50SW5mbywgcGFpbnRSZWN0
KTsKIH0KIAordm9pZCBSZW5kZXJCb3g6OnBhaW50Q2xpcHBpbmdNYXNrKFBhaW50SW5mbyYgcGFp
bnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCit7CisgICAgaWYgKCFwYWlu
dEluZm8uc2hvdWxkUGFpbnRXaXRoaW5Sb290KCp0aGlzKSB8fCBzdHlsZSgpLnZpc2liaWxpdHko
KSAhPSBWSVNJQkxFIHx8IHBhaW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlQ2xpcHBpbmdNYXNr
IHx8IHBhaW50SW5mby5jb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIExheW91dFJlY3QgcGFpbnRSZWN0ID0gTGF5b3V0UmVjdChwYWludE9mZnNldCwg
c2l6ZSgpKTsKKyAgICBwYWludEluZm8uY29udGV4dC0+ZmlsbFJlY3Qoc25hcHBlZEludFJlY3Qo
cGFpbnRSZWN0KSwgQ29sb3I6OmJsYWNrLCBzdHlsZSgpLmNvbG9yU3BhY2UoKSk7Cit9CisKIHZv
aWQgUmVuZGVyQm94OjpwYWludE1hc2tJbWFnZXMoY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8s
IGNvbnN0IExheW91dFJlY3QmIHBhaW50UmVjdCkKIHsKICAgICAvLyBGaWd1cmUgb3V0IGlmIHdl
IG5lZWQgdG8gcHVzaCBhIHRyYW5zcGFyZW5jeSBsYXllciB0byByZW5kZXIgb3VyIG1hc2suCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggYjU0OGRlOTkxZTJlYTdjNDRlZTdi
ZjRjMTE3NGJjZGMzZjM3M2JiMC4uNWM3ZGJhYjMwYWQwNDc2MjFjN2Q1MTc1NDBmYzdhYjlkN2Iw
MGM2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtNDk1LDYgKzQ5NSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRPYmplY3QoUGFpbnRJbmZvJiwgY29u
c3QgTGF5b3V0UG9pbnQmKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsK
ICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRNYXNrKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50
Jik7CisgICAgdmlydHVhbCB2b2lkIHBhaW50Q2xpcHBpbmdNYXNrKFBhaW50SW5mbyYsIGNvbnN0
IExheW91dFBvaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIGltYWdlQ2hhbmdlZChXcmFwcGVkSW1h
Z2VQdHIsIGNvbnN0IEludFJlY3QqID0gMCkgb3ZlcnJpZGU7CiAKICAgICAvLyBDYWxsZWQgd2hl
biBhIHBvc2l0aW9uZWQgb2JqZWN0IG1vdmVzIGJ1dCBkb2Vzbid0IG5lY2Vzc2FyaWx5IGNoYW5n
ZSBzaXplLiAgQSBzaW1wbGlmaWVkIGxheW91dCBpcyBhdHRlbXB0ZWQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDkwMjU1NzQwMjczNmJkMzNlMTgxYjM2ZWU3
OGM4MjUxNTNmYmEzNGMuLjUyYzUwOTA4YWZmOGM0NjgwYjY1MDE0Njg1ZTYzYTlkMjEwNzM1Yzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtNDE5NSw2ICs0
MTk1LDExIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJDb250ZW50cyhHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQsIGNvbnN0IExheWVyUGFpbnRpCiAgICAgICAgIHBhaW50TWFza0ZvckZy
YWdtZW50cyhsYXllckZyYWdtZW50cywgY29udGV4dCwgbG9jYWxQYWludGluZ0luZm8sIHN1YnRy
ZWVQYWludFJvb3RGb3JSZW5kZXJlcik7CiAgICAgfQogCisgICAgaWYgKChsb2NhbFBhaW50Rmxh
Z3MgJiBQYWludExheWVyUGFpbnRpbmdDaGlsZENsaXBwaW5nTWFza1BoYXNlKSAmJiBzaG91bGRQ
YWludENvbnRlbnQgJiYgIXNlbGVjdGlvbk9ubHkpIHsKKyAgICAgICAgLy8gUGFpbnQgdGhlIGJv
cmRlciByYWRpdXMgbWFzayBmb3IgdGhlIGZyYWdtZW50cy4KKyAgICAgICAgcGFpbnRDaGlsZENs
aXBwaW5nTWFza0ZvckZyYWdtZW50cyhsYXllckZyYWdtZW50cywgY29udGV4dCwgbG9jYWxQYWlu
dGluZ0luZm8sIHN1YnRyZWVQYWludFJvb3RGb3JSZW5kZXJlcik7CisgICAgfQorCiAgICAgLy8g
RW5kIG91ciB0cmFuc3BhcmVuY3kgbGF5ZXIKICAgICBpZiAoaGF2ZVRyYW5zcGFyZW5jeSAmJiBt
X3VzZWRUcmFuc3BhcmVuY3kgJiYgIW1fcGFpbnRpbmdJbnNpZGVSZWZsZWN0aW9uKSB7CiAgICAg
ICAgIGNvbnRleHQtPmVuZFRyYW5zcGFyZW5jeUxheWVyKCk7CkBAIC00NjEzLDYgKzQ2MTgsMjYg
QEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRNYXNrRm9yRnJhZ21lbnRzKGNvbnN0IExheWVyRnJh
Z21lbnRzJiBsYXllckZyYWdtZW50cywgR3IKICAgICB9CiB9CiAKK3ZvaWQgUmVuZGVyTGF5ZXI6
OnBhaW50Q2hpbGRDbGlwcGluZ01hc2tGb3JGcmFnbWVudHMoY29uc3QgTGF5ZXJGcmFnbWVudHMm
IGxheWVyRnJhZ21lbnRzLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheWVyUGFp
bnRpbmdJbmZvJiBsb2NhbFBhaW50aW5nSW5mbywKKyAgICBSZW5kZXJPYmplY3QqIHN1YnRyZWVQ
YWludFJvb3RGb3JSZW5kZXJlcikKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxheWVy
RnJhZ21lbnRzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGNvbnN0IExheWVyRnJhZ21lbnQmIGZy
YWdtZW50ID0gbGF5ZXJGcmFnbWVudHMuYXQoaSk7CisgICAgICAgIGlmICghZnJhZ21lbnQuc2hv
dWxkUGFpbnRDb250ZW50KQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKGxv
Y2FsUGFpbnRpbmdJbmZvLmNsaXBUb0RpcnR5UmVjdCkKKyAgICAgICAgICAgIGNsaXBUb1JlY3Qo
bG9jYWxQYWludGluZ0luZm8sIGNvbnRleHQsIGZyYWdtZW50LmZvcmVncm91bmRSZWN0LCBJbmNs
dWRlU2VsZkZvckJvcmRlclJhZGl1cyk7IC8vIENoaWxkIGNsaXBwaW5nIG1hc2sgcGFpbnRpbmcg
d2lsbCBoYW5kbGUgY2xpcHBpbmcgdG8gc2VsZi4KKworICAgICAgICAvLyBQYWludCB0aGUgY2xp
cHBlZCBtYXNrLgorICAgICAgICBQYWludEluZm8gcGFpbnRJbmZvKGNvbnRleHQsIGZyYWdtZW50
LmJhY2tncm91bmRSZWN0LnJlY3QoKSwgUGFpbnRQaGFzZUNsaXBwaW5nTWFzaywgUGFpbnRCZWhh
dmlvck5vcm1hbCwgc3VidHJlZVBhaW50Um9vdEZvclJlbmRlcmVyLCBudWxscHRyLCBudWxscHRy
LCAmbG9jYWxQYWludGluZ0luZm8ucm9vdExheWVyLT5yZW5kZXJlcigpKTsKKyAgICAgICAgcmVu
ZGVyZXIoKS5wYWludChwYWludEluZm8sIHRvTGF5b3V0UG9pbnQoZnJhZ21lbnQubGF5ZXJCb3Vu
ZHMubG9jYXRpb24oKSAtIHJlbmRlckJveExvY2F0aW9uKCkgKyBsb2NhbFBhaW50aW5nSW5mby5z
dWJwaXhlbEFjY3VtdWxhdGlvbikpOworCisgICAgICAgIGlmIChsb2NhbFBhaW50aW5nSW5mby5j
bGlwVG9EaXJ0eVJlY3QpCisgICAgICAgICAgICByZXN0b3JlQ2xpcChjb250ZXh0LCBsb2NhbFBh
aW50aW5nSW5mby5wYWludERpcnR5UmVjdCwgZnJhZ21lbnQuZm9yZWdyb3VuZFJlY3QpOworICAg
IH0KK30KKwogdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRPdmVyZmxvd0NvbnRyb2xzRm9yRnJhZ21l
bnRzKGNvbnN0IExheWVyRnJhZ21lbnRzJiBsYXllckZyYWdtZW50cywgR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBMYXllclBhaW50aW5nSW5mbyYgbG9jYWxQYWludGluZ0luZm8pCiB7
CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsYXllckZyYWdtZW50cy5zaXplKCk7ICsraSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCAyMjYzMGEyMGFjOWJm
MTA4ZWJlMjg5ZDU3ZTM3ZTQ5NjVlNjlhNTJlLi5lMDlkZjkxZDJmZDhmNTE2MGEyOTEzYTM3MzMx
ZTExNmUyYmY3ZTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAt
NjY3LDYgKzY2Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgUGFpbnRMYXllclBhaW50aW5nT3ZlcmZs
b3dDb250ZW50cyA9IDEgPDwgOSwKICAgICAgICAgUGFpbnRMYXllclBhaW50aW5nUm9vdEJhY2tn
cm91bmRPbmx5ID0gMSA8PCAxMCwKICAgICAgICAgUGFpbnRMYXllclBhaW50aW5nU2tpcFJvb3RC
YWNrZ3JvdW5kID0gMSA8PCAxMSwKKyAgICAgICAgUGFpbnRMYXllclBhaW50aW5nQ2hpbGRDbGlw
cGluZ01hc2tQaGFzZSA9IDEgPDwgMTIsCiAgICAgICAgIFBhaW50TGF5ZXJQYWludGluZ0NvbXBv
c2l0aW5nQWxsUGhhc2VzID0gKFBhaW50TGF5ZXJQYWludGluZ0NvbXBvc2l0aW5nQmFja2dyb3Vu
ZFBoYXNlIHwgUGFpbnRMYXllclBhaW50aW5nQ29tcG9zaXRpbmdGb3JlZ3JvdW5kUGhhc2UgfCBQ
YWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ01hc2tQaGFzZSkKICAgICB9OwogICAgIApAQCAt
MTAwOSw2ICsxMDEwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhaW50T3V0bGluZUZvckZyYWdt
ZW50cyhjb25zdCBMYXllckZyYWdtZW50cyYsIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheWVy
UGFpbnRpbmdJbmZvJiwgUGFpbnRCZWhhdmlvciwgUmVuZGVyT2JqZWN0KiBwYWludGluZ1Jvb3RG
b3JSZW5kZXJlcik7CiAgICAgdm9pZCBwYWludE92ZXJmbG93Q29udHJvbHNGb3JGcmFnbWVudHMo
Y29uc3QgTGF5ZXJGcmFnbWVudHMmLCBHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXllclBhaW50
aW5nSW5mbyYpOwogICAgIHZvaWQgcGFpbnRNYXNrRm9yRnJhZ21lbnRzKGNvbnN0IExheWVyRnJh
Z21lbnRzJiwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5ZXJQYWludGluZ0luZm8mLCBSZW5k
ZXJPYmplY3QqIHBhaW50aW5nUm9vdEZvclJlbmRlcmVyKTsKKyAgICB2b2lkIHBhaW50Q2hpbGRD
bGlwcGluZ01hc2tGb3JGcmFnbWVudHMoY29uc3QgTGF5ZXJGcmFnbWVudHMmLCBHcmFwaGljc0Nv
bnRleHQqLCBjb25zdCBMYXllclBhaW50aW5nSW5mbyYsIFJlbmRlck9iamVjdCogcGFpbnRpbmdS
b290Rm9yUmVuZGVyZXIpOwogICAgIHZvaWQgcGFpbnRUcmFuc2Zvcm1lZExheWVySW50b0ZyYWdt
ZW50cyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXllclBhaW50aW5nSW5mbyYsIFBhaW50TGF5
ZXJGbGFncyk7CiAKICAgICBSZW5kZXJMYXllciogdHJhbnNwYXJlbnRQYWludGluZ0FuY2VzdG9y
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
CmluZGV4IDliZWI0ZWZjZDI5ZmVjMzgzMzY0NTcyMjJjNDVkYmRhMmEzZjAzOGYuLjE3MTA5MDNi
NzViOTFmYmU2ZGMyODYzYTNlYTEwYjYyZjM4M2U2N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0xNDcsNiArMTQ3LDcgQEAgUmVu
ZGVyTGF5ZXJCYWNraW5nOjp+UmVuZGVyTGF5ZXJCYWNraW5nKCkKICAgICB1cGRhdGVGb3JlZ3Jv
dW5kTGF5ZXIoZmFsc2UpOwogICAgIHVwZGF0ZUJhY2tncm91bmRMYXllcihmYWxzZSk7CiAgICAg
dXBkYXRlTWFza0xheWVyKGZhbHNlKTsKKyAgICB1cGRhdGVDaGlsZENsaXBwaW5nU3RyYXRlZ3ko
ZmFsc2UpOwogICAgIHVwZGF0ZVNjcm9sbGluZ0xheWVycyhmYWxzZSk7CiAgICAgZGV0YWNoRnJv
bVNjcm9sbGluZ0Nvb3JkaW5hdG9yKCk7CiAgICAgZGVzdHJveUdyYXBoaWNzTGF5ZXJzKCk7CkBA
IC0zNDgsNiArMzQ5LDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OmRlc3Ryb3lHcmFwaGlj
c0xheWVycygpCiAgICAgbV9iYWNrZ3JvdW5kTGF5ZXIgPSBudWxscHRyOwogICAgIG1fY2hpbGRD
b250YWlubWVudExheWVyID0gbnVsbHB0cjsKICAgICBtX21hc2tMYXllciA9IG51bGxwdHI7Cisg
ICAgbV9jaGlsZENsaXBwaW5nTWFza0xheWVyID0gbnVsbHB0cjsKIAogICAgIG1fc2Nyb2xsaW5n
TGF5ZXIgPSBudWxscHRyOwogICAgIG1fc2Nyb2xsaW5nQ29udGVudHNMYXllciA9IG51bGxwdHI7
CkBAIC01NjksNiArNTcxLDggQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUNvbmZp
Z3VyYXRpb24oKQogCiAgICAgdXBkYXRlTWFza0xheWVyKHJlbmRlcmVyKCkuaGFzTWFzaygpKTsK
IAorICAgIHVwZGF0ZUNoaWxkQ2xpcHBpbmdTdHJhdGVneShuZWVkc0Rlc2NlbmRlbnRzQ2xpcHBp
bmdMYXllcik7CisKICAgICBpZiAobV9vd25pbmdMYXllci5oYXNSZWZsZWN0aW9uKCkpIHsKICAg
ICAgICAgaWYgKG1fb3duaW5nTGF5ZXIucmVmbGVjdGlvbkxheWVyKCktPmJhY2tpbmcoKSkgewog
ICAgICAgICAgICAgR3JhcGhpY3NMYXllciogcmVmbGVjdGlvbkxheWVyID0gbV9vd25pbmdMYXll
ci5yZWZsZWN0aW9uTGF5ZXIoKS0+YmFja2luZygpLT5ncmFwaGljc0xheWVyKCk7CkBAIC04MTQs
NiArODE4LDEyIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHZW9tZXRyeSgpCiAg
ICAgICAgIGNsaXBMYXllci0+c2V0UG9zaXRpb24oRmxvYXRQb2ludChjbGlwcGluZ0JveC5sb2Nh
dGlvbigpIC0gbG9jYWxDb21wb3NpdGluZ0JvdW5kcy5sb2NhdGlvbigpKSk7CiAgICAgICAgIGNs
aXBMYXllci0+c2V0U2l6ZShjbGlwcGluZ0JveC5zaXplKCkpOwogICAgICAgICBjbGlwTGF5ZXIt
PnNldE9mZnNldEZyb21SZW5kZXJlcih0b0Zsb2F0U2l6ZShjbGlwcGluZ0JveC5sb2NhdGlvbigp
KSk7CisKKyAgICAgICAgaWYgKG1fY2hpbGRDbGlwcGluZ01hc2tMYXllciAmJiAhbV9zY3JvbGxp
bmdMYXllcikgeworICAgICAgICAgICAgbV9jaGlsZENsaXBwaW5nTWFza0xheWVyLT5zZXRTaXpl
KGNsaXBMYXllci0+c2l6ZSgpKTsKKyAgICAgICAgICAgIG1fY2hpbGRDbGlwcGluZ01hc2tMYXll
ci0+c2V0UG9zaXRpb24oRmxvYXRQb2ludCgpKTsKKyAgICAgICAgICAgIG1fY2hpbGRDbGlwcGlu
Z01hc2tMYXllci0+c2V0T2Zmc2V0RnJvbVJlbmRlcmVyKGNsaXBMYXllci0+b2Zmc2V0RnJvbVJl
bmRlcmVyKCkpOworICAgICAgICB9CiAgICAgfQogICAgIAogICAgIGlmIChtX21hc2tMYXllcikg
ewpAQCAtOTQyLDYgKzk1MiwxMiBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR2Vv
bWV0cnkoKQogICAgICAgICBGbG9hdFNpemUgb2xkU2Nyb2xsaW5nTGF5ZXJPZmZzZXQgPSBtX3Nj
cm9sbGluZ0xheWVyLT5vZmZzZXRGcm9tUmVuZGVyZXIoKTsKICAgICAgICAgbV9zY3JvbGxpbmdM
YXllci0+c2V0T2Zmc2V0RnJvbVJlbmRlcmVyKC10b0Zsb2F0U2l6ZShwYWRkaW5nQm94LmxvY2F0
aW9uKCkpKTsKIAorICAgICAgICBpZiAobV9jaGlsZENsaXBwaW5nTWFza0xheWVyKSB7CisgICAg
ICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPnNldFBvc2l0aW9uKG1fc2Nyb2xsaW5n
TGF5ZXItPnBvc2l0aW9uKCkpOworICAgICAgICAgICAgbV9jaGlsZENsaXBwaW5nTWFza0xheWVy
LT5zZXRTaXplKG1fc2Nyb2xsaW5nTGF5ZXItPnNpemUoKSk7CisgICAgICAgICAgICBtX2NoaWxk
Q2xpcHBpbmdNYXNrTGF5ZXItPnNldE9mZnNldEZyb21SZW5kZXJlcih0b0Zsb2F0U2l6ZShwYWRk
aW5nQm94LmxvY2F0aW9uKCkpKTsKKyAgICAgICAgfQorCiAgICAgICAgIGJvb2wgcGFkZGluZ0Jv
eE9mZnNldENoYW5nZWQgPSBvbGRTY3JvbGxpbmdMYXllck9mZnNldCAhPSBtX3Njcm9sbGluZ0xh
eWVyLT5vZmZzZXRGcm9tUmVuZGVyZXIoKTsKIAogICAgICAgICBJbnRTaXplIHNjcm9sbFNpemUo
bV9vd25pbmdMYXllci5zY3JvbGxXaWR0aCgpLCBtX293bmluZ0xheWVyLnNjcm9sbEhlaWdodCgp
KTsKQEAgLTE0MTQsNiArMTQzMCwzNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRl
TWFza0xheWVyKGJvb2wgbmVlZHNNYXNrTGF5ZXIpCiAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+
c2V0UGFpbnRpbmdQaGFzZShwYWludGluZ1BoYXNlRm9yUHJpbWFyeUxheWVyKCkpOwogfQogCit2
b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlQ2hpbGRDbGlwcGluZ1N0cmF0ZWd5KGJvb2wg
bmVlZHNEZXNjZW5kZW50c0NsaXBwaW5nTGF5ZXIpCit7CisgICAgaWYgKGhhc0NsaXBwaW5nTGF5
ZXIoKSAmJiBuZWVkc0Rlc2NlbmRlbnRzQ2xpcHBpbmdMYXllcikgeworICAgICAgICBpZiAoaXM8
UmVuZGVyQm94PihyZW5kZXJlcigpKSkgeworICAgICAgICAgICAgTGF5b3V0UmVjdCBib3hSZWN0
KExheW91dFBvaW50KCksIGRvd25jYXN0PFJlbmRlckJveD4ocmVuZGVyZXIoKSkuc2l6ZSgpKTsK
KyAgICAgICAgICAgIEZsb2F0Um91bmRlZFJlY3QgY29udGVudHNDbGlwcGluZ1JlY3QgPSByZW5k
ZXJlcigpLnN0eWxlKCkuZ2V0Um91bmRlZElubmVyQm9yZGVyRm9yKGJveFJlY3QpLnBpeGVsU25h
cHBlZFJvdW5kZWRSZWN0Rm9yUGFpbnRpbmcoZGV2aWNlU2NhbGVGYWN0b3IoKSk7CisgICAgICAg
ICAgICBjb250ZW50c0NsaXBwaW5nUmVjdC5tb3ZlKGNvbnRlbnRPZmZzZXRJbkNvbXBvc3RpbmdM
YXllcigpKTsKKyAgICAgICAgICAgIGlmIChjbGlwcGluZ0xheWVyKCktPmFwcGx5Q2xpcHBpbmdC
b3JkZXIoY29udGVudHNDbGlwcGluZ1JlY3QpKSB7CisgICAgICAgICAgICAgICAgaWYgKG1fY2hp
bGRDbGlwcGluZ01hc2tMYXllcikgCisgICAgICAgICAgICAgICAgICAgIG1fY2hpbGRDbGlwcGlu
Z01hc2tMYXllciA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKCFtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIp
IHsKKyAgICAgICAgICAgIG1fY2hpbGRDbGlwcGluZ01hc2tMYXllciA9IGNyZWF0ZUdyYXBoaWNz
TGF5ZXIoIkNoaWxkIENsaXBwaW5nIE1hc2sgTGF5ZXIiKTsKKyAgICAgICAgICAgIG1fY2hpbGRD
bGlwcGluZ01hc2tMYXllci0+c2V0RHJhd3NDb250ZW50KHRydWUpOworICAgICAgICAgICAgbV9j
aGlsZENsaXBwaW5nTWFza0xheWVyLT5zZXRQYWludGluZ1BoYXNlKEdyYXBoaWNzTGF5ZXJQYWlu
dENoaWxkQ2xpcHBpbmdNYXNrKTsKKyAgICAgICAgICAgIGNsaXBwaW5nTGF5ZXIoKS0+c2V0TWFz
a0xheWVyKG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci5nZXQoKSk7CisgICAgICAgIH0KKyAgICB9
IGVsc2UgeworICAgICAgICBpZiAobV9jaGlsZENsaXBwaW5nTWFza0xheWVyKSB7CisgICAgICAg
ICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIgPSBudWxscHRyOworICAgICAgICAgICAgaWYg
KGhhc0NsaXBwaW5nTGF5ZXIoKSkKKyAgICAgICAgICAgICAgICBjbGlwcGluZ0xheWVyKCktPnNl
dE1hc2tMYXllcihudWxscHRyKTsKKyAgICAgICAgfSBlbHNlIAorICAgICAgICAgICAgaWYgKGhh
c0NsaXBwaW5nTGF5ZXIoKSkKKyAgICAgICAgICAgICAgICBjbGlwcGluZ0xheWVyKCktPmNsZWFy
Q2xpcHBpbmdCb3JkZXIoKTsKKyAgICB9Cit9CisKIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjp1
cGRhdGVTY3JvbGxpbmdMYXllcnMoYm9vbCBuZWVkc1Njcm9sbGluZ0xheWVycykKIHsKICAgICBp
ZiAobmVlZHNTY3JvbGxpbmdMYXllcnMgPT0gISFtX3Njcm9sbGluZ0xheWVyKQpAQCAtMjA2NSw2
ICsyMTEyLDkgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnNldENvbnRlbnRzTmVlZERpc3Bs
YXkoR3JhcGhpY3NMYXllcjo6U2hvdWxkQ2xpcFRvTGF5ZXIKICAgICBpZiAobV9tYXNrTGF5ZXIg
JiYgbV9tYXNrTGF5ZXItPmRyYXdzQ29udGVudCgpKQogICAgICAgICBtX21hc2tMYXllci0+c2V0
TmVlZHNEaXNwbGF5KCk7CiAKKyAgICBpZiAobV9jaGlsZENsaXBwaW5nTWFza0xheWVyICYmIG1f
Y2hpbGRDbGlwcGluZ01hc2tMYXllci0+ZHJhd3NDb250ZW50KCkpCisgICAgICAgIG1fY2hpbGRD
bGlwcGluZ01hc2tMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7CisKICAgICBpZiAobV9zY3JvbGxp
bmdDb250ZW50c0xheWVyICYmIG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci0+ZHJhd3NDb250ZW50
KCkpCiAgICAgICAgIG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7
CiB9CkBAIC0yMTA0LDYgKzIxNTQsMTIgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnNldENv
bnRlbnRzTmVlZERpc3BsYXlJblJlY3QoY29uc3QgTGF5b3V0UmVjdCYgciwgR3JhcGgKICAgICAg
ICAgbV9tYXNrTGF5ZXItPnNldE5lZWRzRGlzcGxheUluUmVjdChsYXllckRpcnR5UmVjdCwgc2hv
dWxkQ2xpcCk7CiAgICAgfQogCisgICAgaWYgKG1fY2hpbGRDbGlwcGluZ01hc2tMYXllciAmJiBt
X2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPmRyYXdzQ29udGVudCgpKSB7CisgICAgICAgIEZsb2F0
UmVjdCBsYXllckRpcnR5UmVjdCA9IHI7CisgICAgICAgIGxheWVyRGlydHlSZWN0Lm1vdmUoLW1f
Y2hpbGRDbGlwcGluZ01hc2tMYXllci0+b2Zmc2V0RnJvbVJlbmRlcmVyKCkpOworICAgICAgICBt
X2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXItPnNldE5lZWRzRGlzcGxheUluUmVjdChsYXllckRpcnR5
UmVjdCk7CisgICAgfQorCiAgICAgaWYgKG1fc2Nyb2xsaW5nQ29udGVudHNMYXllciAmJiBtX3Nj
cm9sbGluZ0NvbnRlbnRzTGF5ZXItPmRyYXdzQ29udGVudCgpKSB7CiAgICAgICAgIEZsb2F0UmVj
dCBsYXllckRpcnR5UmVjdCA9IHBpeGVsU25hcHBlZFJlY3RGb3JQYWludGluZzsKICAgICAgICAg
bGF5ZXJEaXJ0eVJlY3QubW92ZSgtbV9zY3JvbGxpbmdDb250ZW50c0xheWVyLT5vZmZzZXRGcm9t
UmVuZGVyZXIoKSArIG1fZGV2aWNlUGl4ZWxGcmFjdGlvbkZyb21SZW5kZXJlcik7CkBAIC0yMTM4
LDYgKzIxOTQsOCBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIoY29u
c3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcAogICAgICAgICBwYWludEZsYWdz
IHw9IFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ0ZvcmVncm91bmRQ
aGFzZTsKICAgICBpZiAocGFpbnRpbmdQaGFzZSAmIEdyYXBoaWNzTGF5ZXJQYWludE1hc2spCiAg
ICAgICAgIHBhaW50RmxhZ3MgfD0gUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJQYWludGluZ0NvbXBv
c2l0aW5nTWFza1BoYXNlOworICAgIGlmIChwYWludGluZ1BoYXNlICYgR3JhcGhpY3NMYXllclBh
aW50Q2hpbGRDbGlwcGluZ01hc2spCisgICAgICAgIHBhaW50RmxhZ3MgfD0gUmVuZGVyTGF5ZXI6
OlBhaW50TGF5ZXJQYWludGluZ0NoaWxkQ2xpcHBpbmdNYXNrUGhhc2U7CiAgICAgaWYgKHBhaW50
aW5nUGhhc2UgJiBHcmFwaGljc0xheWVyUGFpbnRPdmVyZmxvd0NvbnRlbnRzKQogICAgICAgICBw
YWludEZsYWdzIHw9IFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRpbmdPdmVyZmxvd0NvbnRl
bnRzOwogICAgIGlmIChwYWludGluZ1BoYXNlICYgR3JhcGhpY3NMYXllclBhaW50Q29tcG9zaXRl
ZFNjcm9sbCkKQEAgLTIyMDIsNiArMjI2MCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpw
YWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoCiAg
ICAgICAgIHx8IGdyYXBoaWNzTGF5ZXIgPT0gbV9mb3JlZ3JvdW5kTGF5ZXIuZ2V0KCkKICAgICAg
ICAgfHwgZ3JhcGhpY3NMYXllciA9PSBtX2JhY2tncm91bmRMYXllci5nZXQoKQogICAgICAgICB8
fCBncmFwaGljc0xheWVyID09IG1fbWFza0xheWVyLmdldCgpCisgICAgICAgIHx8IGdyYXBoaWNz
TGF5ZXIgPT0gbV9jaGlsZENsaXBwaW5nTWFza0xheWVyLmdldCgpCiAgICAgICAgIHx8IGdyYXBo
aWNzTGF5ZXIgPT0gbV9zY3JvbGxpbmdDb250ZW50c0xheWVyLmdldCgpKSB7CiAgICAgICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBhaW50KCZyZW5kZXJlcigpKTsKIApAQCAtMjU3
OCw2ICsyNjM3LDggQEAgZG91YmxlIFJlbmRlckxheWVyQmFja2luZzo6YmFja2luZ1N0b3JlTWVt
b3J5RXN0aW1hdGUoKSBjb25zdAogICAgICAgICBiYWNraW5nTWVtb3J5ICs9IG1fYmFja2dyb3Vu
ZExheWVyLT5iYWNraW5nU3RvcmVNZW1vcnlFc3RpbWF0ZSgpOwogICAgIGlmIChtX21hc2tMYXll
cikKICAgICAgICAgYmFja2luZ01lbW9yeSArPSBtX21hc2tMYXllci0+YmFja2luZ1N0b3JlTWVt
b3J5RXN0aW1hdGUoKTsKKyAgICBpZiAobV9jaGlsZENsaXBwaW5nTWFza0xheWVyKQorICAgICAg
ICBiYWNraW5nTWVtb3J5ICs9IG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci0+YmFja2luZ1N0b3Jl
TWVtb3J5RXN0aW1hdGUoKTsKIAogICAgIGlmIChtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIpCiAg
ICAgICAgIGJhY2tpbmdNZW1vcnkgKz0gbV9zY3JvbGxpbmdDb250ZW50c0xheWVyLT5iYWNraW5n
U3RvcmVNZW1vcnlFc3RpbWF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5oCmluZGV4IDFmZjhmNTRjNmQ5NjU3ODM2NTk3MjRhNzUyZmVhNWI3MDM3
NjUyZGQuLjRhNzJhYTdhNGY0MGYwZTE5NWIxMGJhMmNiOTNiM2RkZDMwYzZjYzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKQEAgLTEzOSw2ICsx
MzksNyBAQCBwdWJsaWM6CiAgICAgU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJREZvckNo
aWxkcmVuKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxpbmdOb2RlSUQgPyBtX3Njcm9sbGluZ05v
ZGVJRCA6IG1fdmlld3BvcnRDb25zdHJhaW5lZE5vZGVJRDsgfQogCiAgICAgYm9vbCBoYXNNYXNr
TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX21hc2tMYXllciAhPSAwOyB9CisgICAgYm9vbCBoYXND
aGlsZENsaXBwaW5nTWFza0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9jaGlsZENsaXBwaW5nTWFz
a0xheWVyICE9IG51bGxwdHI7IH0KIAogICAgIEdyYXBoaWNzTGF5ZXIqIHBhcmVudEZvclN1Ymxh
eWVycygpIGNvbnN0OwogICAgIEdyYXBoaWNzTGF5ZXIqIGNoaWxkRm9yU3VwZXJsYXllcnMoKSBj
b25zdDsKQEAgLTI2OCw2ICsyNjksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgcmVxdWlyZXNTY3Jv
bGxDb3JuZXJMYXllcigpIGNvbnN0OwogICAgIGJvb2wgdXBkYXRlU2Nyb2xsaW5nTGF5ZXJzKGJv
b2wgc2Nyb2xsaW5nTGF5ZXJzKTsKICAgICB2b2lkIHVwZGF0ZURyYXdzQ29udGVudChib29sIGlz
U2ltcGxlQ29udGFpbmVyKTsKKyAgICB2b2lkIHVwZGF0ZUNoaWxkQ2xpcHBpbmdTdHJhdGVneShi
b29sIG5lZWRzRGVzY2VuZGVudHNDbGlwcGluZ0xheWVyKTsKICAgICAKICAgICB2b2lkIHVwZGF0
ZVJvb3RMYXllckNvbmZpZ3VyYXRpb24oKTsKIApAQCAtMzM1LDYgKzMzNyw3IEBAIHByaXZhdGU6
CiAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fYmFja2dyb3VuZExheWVyOyAv
LyBPbmx5IHVzZWQgaW4gY2FzZXMgd2hlcmUgd2UgbmVlZCB0byBkcmF3IHRoZSBiYWNrZ3JvdW5k
IHNlcGFyYXRlbHkuCiAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fY2hpbGRD
b250YWlubWVudExheWVyOyAvLyBPbmx5IHVzZWQgaWYgd2UgaGF2ZSBjbGlwcGluZyBvbiBhIHN0
YWNraW5nIGNvbnRleHQgd2l0aCBjb21wb3NpdGluZyBjaGlsZHJlbiwgb3IgaWYgdGhlIGxheWVy
IGhhcyBhIHRpbGUgY2FjaGUuCiAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1f
bWFza0xheWVyOyAvLyBPbmx5IHVzZWQgaWYgd2UgaGF2ZSBhIG1hc2suCisgICAgc3RkOjp1bmlx
dWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fY2hpbGRDbGlwcGluZ01hc2tMYXllcjsgLy8gT25seSB1
c2VkIGlmIHdlIGhhdmUgdG8gY2xpcCBjaGlsZCBsYXllcnMgb3IgYWNjZWxlcmF0ZWQgY29udGVu
dHMgd2l0aCBib3JkZXIgcmFkaXVzIG9yIGNsaXAtcGF0aC4KIAogICAgIHN0ZDo6dW5pcXVlX3B0
cjxHcmFwaGljc0xheWVyPiBtX2xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcjsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>244814</attachid>
            <date>2015-01-16 15:59:03 -0800</date>
            <delta_ts>2015-01-16 15:59:03 -0800</delta_ts>
            <desc>Testcase that asserts on non-Mac</desc>
            <filename>clip-and-border-sc-radius.html</filename>
            <type>text/html</type>
            <size>818</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+Cgo8aHRtbD4KPGhlYWQ+CiAgICA8c3R5bGU+CiAgICAgICAgLmNvbnRh
aW5lciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgei1pbmRl
eDogMDsKICAgICAgICAgICAgbWFyZ2luOiAxMHB4OwogICAgICAgICAgICB3aWR0aDogMzAwcHg7
CiAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgICAgICAgIGJvcmRlcjogMjBweCBzb2xp
ZCBibGFjazsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMzAlOwogICAgICAgICAgICBjbGlw
OiByZWN0KDYwcHgsIDIwMHB4LCAzMDBweCwgMHB4KTsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhp
ZGRlbjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNoaWxkIHsKICAgICAgICAgICAgaGVp
Z2h0OiAxMDAlOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogYmx1ZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbXBvc2l0ZWQgewog
ICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTsKICAgICAgICB9CiAg
ICAgICAgCiAgICA8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoKICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2hpbGQiPgogICAgICAgIDwvZGl2PgogICAgPC9k
aXY+CgogICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIiBzdHlsZT0idG9wOiAzMDBweCI+CiAgICAg
ICAgPGRpdiBjbGFzcz0iY29tcG9zaXRlZCBjaGlsZCI+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rp
dj4KCjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244830</attachid>
            <date>2015-01-16 18:40:26 -0800</date>
            <delta_ts>2015-01-25 09:00:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138551-20150116184032.patch</filename>
            <type>text/plain</type>
            <size>1828</size>
            <attacher name="Byungseon(Sun) Shin">sun.shin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4NjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDliMGExNzRlMmExYjVj
ODM5NTZjN2UwNzU2MTAyZWY2NWNkZGJhNS4uMjFiOTA1NDhiNGY5ZDk4NWVkNmNhYTJmODhiZWIz
MTQ4N2M2ODAwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTAxLTE2ICBCeXVu
Z3Nlb24gU2hpbiAgPHN1bi5zaGluQGxnZS5jb20+CisKKyAgICAgICAgRml4IEJvcmRlci1yYWRp
dXMgY2xpcHBpbmcgaXNzdWUgb24gYSBjb21wb3NpdGVkIGRlc2NlbmRhbnRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg1NTEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggYXNzZXJ0aW9uIGluIFJl
bmRlckxheWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIKKyAgICAgICAgYnkgbm90IGNoZWNraW5n
IG91dCBvZiBzeW5jIHdpdGggdGhlIEdyYXBoaWNzTGF5ZXIgaGVpcmFyY2h5CisgICAgICAgIGlu
IEdyYXBoaWNzTGF5ZXJQYWludENoaWxkQ2xpcHBpbmdNYXNrIHBoYXNlLgorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyKToKKwogMjAxNS0wMS0xNiAgQnJlbnQgRnVs
Z2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBDb3JyZWN0IGluZmlu
aXRlIGxvb3AgaW4gV2hlZWwgSGFuZGxlciBjb2RlIGluIEV2ZW50SGFuZGxlck1hYwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCA1OTMz
YTcxNGMxYTkxZGVlZGJjYjM0YjM0NjI4OGJmNDgzMzZmZDI5Li45OWU0MzliMzBjY2ZjYWM4NTcy
YjQ5NDE2MDU5YmExNGY4MDk1YWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMjE3NCw3ICsyMTc0LDcgQEAgdm9pZCBSZW5kZXJM
YXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNz
TGF5ZXIsIEdyYXAKICAgICBjb25zdCBJbnRSZWN0JiBwYWludERpcnR5UmVjdCwgLy8gSW4gdGhl
IGNvb3JkcyBvZiByb290TGF5ZXIuCiAgICAgUGFpbnRCZWhhdmlvciBwYWludEJlaGF2aW9yLCBH
cmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSBwYWludGluZ1BoYXNlKQogewotICAgIGlmIChwYWlu
dHNJbnRvV2luZG93KCkgfHwgcGFpbnRzSW50b0NvbXBvc2l0ZWRBbmNlc3RvcigpKSB7CisgICAg
aWYgKChwYWludHNJbnRvV2luZG93KCkgfHwgcGFpbnRzSW50b0NvbXBvc2l0ZWRBbmNlc3Rvcigp
KSAmJiBwYWludGluZ1BoYXNlICE9IEdyYXBoaWNzTGF5ZXJQYWludENoaWxkQ2xpcHBpbmdNYXNr
KSB7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICAgICAgLy8gRklYTUU6IExvb2tzIGxpa2UgdGhl
IENBTGF5ZXIgdHJlZSBpcyBvdXQgb2Ygc3luYyB3aXRoIHRoZSBHcmFwaGljc0xheWVyIGhlaXJh
cmNoeQogICAgICAgICAvLyB3aGVuIHBhZ2VzIGFyZSByZXN0b3JlZCBmcm9tIHRoZSBQYWdlQ2Fj
aGUuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245307</attachid>
            <date>2015-01-25 09:00:50 -0800</date>
            <delta_ts>2015-01-26 14:59:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138551-20150125090051.patch</filename>
            <type>text/plain</type>
            <size>5803</size>
            <attacher name="Byungseon(Sun) Shin">sun.shin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5MDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDJiMzRkYTczNGZjMGY2
YjI1YWJiYTAyMmQ2NDBhMWZhMDI5ZGMzZS4uMWE2YTNhMzI0ZDUxODdhYWZhMTE4YWEyNTAwZjM4
ZTRmMjQ4MDUzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTAxLTI1ICBCeXVu
Z3Nlb24gU2hpbiAgPHN1bi5zaGluQGxnZS5jb20+CisKKyAgICAgICAgRml4IEJvcmRlci1yYWRp
dXMgY2xpcHBpbmcgaXNzdWUgb24gYSBjb21wb3NpdGVkIGRlc2NlbmRhbnRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg1NTEgCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGFzc2VydGlvbiBpbiBS
ZW5kZXJMYXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyCisgICAgICAgIGJ5IG5vdCBjaGVja2lu
ZyBvdXQgb2Ygc3luYyB3aXRoIHRoZSBHcmFwaGljc0xheWVyIGhlaXJhcmNoeQorICAgICAgICBp
biBHcmFwaGljc0xheWVyUGFpbnRDaGlsZENsaXBwaW5nTWFzayBwaGFzZS4KKworICAgICAgICBU
ZXN0OiBjb21wb3NpdGluZy9jbGlwcGluZy9ib3JkZXItcmFkaXVzLW92ZXJmbG93LWhpZGRlbi1z
dGFja2luZy1jb250ZXh0Lmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludElu
dG9MYXllcik6CisKIDIwMTUtMDEtMjUgIFRpbW90aHkgSG9ydG9uICA8dGltb3RoeV9ob3J0b25A
YXBwbGUuY29tPgogCiAgICAgICAgIExvbmcgc3BpbnMgdW5kZXIgRnJhbWU6OnJhbmdlRm9yUG9p
bnQgd2hlbiBkb2luZyBMb29rdXAgb24gZmVlZGx5LmNvbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCBlZDJhY2M4ZGYzNGYxOTE0MWI2
YTY0OTNlOWExZjhkZDQzMmM4Yjk5Li5jOWFjOTM1Y2NjYTM5YTE5ODhmZWYxZWQ2NTgxMjEwZDlk
YTI4YWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcApAQCAtMjE4OSw3ICsyMTg5LDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnBh
aW50SW50b0xheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXAKICAg
ICBjb25zdCBJbnRSZWN0JiBwYWludERpcnR5UmVjdCwgLy8gSW4gdGhlIGNvb3JkcyBvZiByb290
TGF5ZXIuCiAgICAgUGFpbnRCZWhhdmlvciBwYWludEJlaGF2aW9yLCBHcmFwaGljc0xheWVyUGFp
bnRpbmdQaGFzZSBwYWludGluZ1BoYXNlKQogewotICAgIGlmIChwYWludHNJbnRvV2luZG93KCkg
fHwgcGFpbnRzSW50b0NvbXBvc2l0ZWRBbmNlc3RvcigpKSB7CisgICAgaWYgKChwYWludHNJbnRv
V2luZG93KCkgfHwgcGFpbnRzSW50b0NvbXBvc2l0ZWRBbmNlc3RvcigpKSAmJiBwYWludGluZ1Bo
YXNlICE9IEdyYXBoaWNzTGF5ZXJQYWludENoaWxkQ2xpcHBpbmdNYXNrKSB7CiAjaWYgIVBMQVRG
T1JNKElPUykKICAgICAgICAgLy8gRklYTUU6IExvb2tzIGxpa2UgdGhlIENBTGF5ZXIgdHJlZSBp
cyBvdXQgb2Ygc3luYyB3aXRoIHRoZSBHcmFwaGljc0xheWVyIGhlaXJhcmNoeQogICAgICAgICAv
LyB3aGVuIHBhZ2VzIGFyZSByZXN0b3JlZCBmcm9tIHRoZSBQYWdlQ2FjaGUuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDY3
N2U1M2Y4MGQ2MjUyMWE4MWViMzRjNjIyODYzOTYwODA5ZDc0Mi4uNGI0ODAyMWRhY2UzOTZmYjMw
MjgwMWZlZmFmM2MzOTMzMTM3ZjRlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE1LTAxLTI1
ICBCeXVuZ3Nlb24gU2hpbiAgPHN1bi5zaGluQGxnZS5jb20+CisKKyAgICAgICAgRml4IEJvcmRl
ci1yYWRpdXMgY2xpcHBpbmcgaXNzdWUgb24gYSBjb21wb3NpdGVkIGRlc2NlbmRhbnRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg1NTEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWYgdGVzdCB0aGF0
IGNsaXBzIGNvbXBvc2l0ZWQgZGVzY2VuZGFudCBieSBzdGFja2luZyBjb250ZXh0IHdpdGggYm9y
ZGVyLXJhZGl1cyBhbmQgb3ZlcmZsb3cgaGlkZGVuIGVsZW1lbnQuCisKKyAgICAgICAgKiBjb21w
b3NpdGluZy9jbGlwcGluZy9ib3JkZXItcmFkaXVzLW92ZXJmbG93LWhpZGRlbi1zdGFja2luZy1j
b250ZXh0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvY2xpcHBp
bmcvYm9yZGVyLXJhZGl1cy1vdmVyZmxvdy1oaWRkZW4tc3RhY2tpbmctY29udGV4dC5odG1sOiBB
ZGRlZC4KKwogMjAxNS0wMS0yNSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGdhcmRlbmluZyBmb3IgRUZMIHBvcnQuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9jbGlwcGluZy9ib3JkZXItcmFkaXVzLW92
ZXJmbG93LWhpZGRlbi1zdGFja2luZy1jb250ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL2NsaXBwaW5nL2JvcmRlci1yYWRpdXMtb3ZlcmZsb3ctaGlkZGVuLXN0YWNr
aW5nLWNvbnRleHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2MzU2MTVhY2NlYTFkYjA0YTFi
OTNlY2FlZDRlZWQ5M2VmNzI3OGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9jbGlwcGluZy9ib3JkZXItcmFkaXVzLW92ZXJmbG93LWhpZGRlbi1zdGFja2luZy1j
b250ZXh0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMwIEBACitUZXN0IENTUyBjbGlwIHdpdGgg
Y29tcG9zaXRlZCBsYXllcnMuIExlZnQgYW5kIHJpZ2h0IHNpZGVzIHNob3VsZCBsb29rIHRoZSBz
YW1lLiBUaGlzIHRlc3Qgc2hvdWxkIG5vdCBBU1NFUlQgaW4gZGVidWcgYnVpbGRzLgorCisoR3Jh
cGhpY3NMYXllcgorICAoYW5jaG9yIDAuMDAgMC4wMCkKKyAgKGJvdW5kcyA4MDAuMDAgNjAwLjAw
KQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDgwMC4w
MCA2MDAuMDApCisgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgIChjaGlsZHJlbiAxCisg
ICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDIwLjAwIDIwLjAwKQor
ICAgICAgICAgIChib3VuZHMgMTAwLjAwIDEwMC4wMCkKKyAgICAgICAgICAoY2hpbGRyZW4gMQor
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKGJvdW5kcyAxMDAuMDAg
MTAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAuMDApCisgICAg
ICAgICAgICAgICAgICAodHJhbnNmb3JtIFsxLjAwIDAuMDAgMC4wMCAwLjAwXSBbMC4wMCAxLjAw
IDAuMDAgMC4wMF0gWzAuMDAgMC4wMCAxLjAwIDAuMDBdIFswLjAwIDAuMDAgMS4wMCAxLjAwXSkK
KyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAg
ICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvY2xpcHBpbmcvYm9yZGVyLXJhZGl1cy1vdmVyZmxvdy1o
aWRkZW4tc3RhY2tpbmctY29udGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvY2xp
cHBpbmcvYm9yZGVyLXJhZGl1cy1vdmVyZmxvdy1oaWRkZW4tc3RhY2tpbmctY29udGV4dC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjhmZmNiMGI2ZDRlNDIwN2YxYTgwZTNlOTY2M2YyZjc3NzMxYjcyYmQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9jbGlwcGluZy9ib3JkZXIt
cmFkaXVzLW92ZXJmbG93LWhpZGRlbi1zdGFja2luZy1jb250ZXh0Lmh0bWwKQEAgLTAsMCArMSw1
OSBAQAorPGh0bWw+Cis8aGVhZD4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2Ny
ZWVuIj4KKyAgICAuYm94IHsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIHdpZHRo
OiAxMDBweDsKKyAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICB0b3A6IDIwcHg7CisgICAgICBs
ZWZ0OiAyMHB4OworICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JheTsKKyAgICAgIGJvcmRlci1y
YWRpdXM6IDMwJTsKKyAgICAgIG92ZXJmbG93OiBoaWRkZW47CisgICAgICB6LWluZGV4OiAwOwor
ICAgIH0KKworICAgIC5pbm5lciB7CisgICAgICB3aWR0aDogMjAwcHg7CisgICAgICBoZWlnaHQ6
IDIwMHB4OworICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpOworICAg
IH0KKworICAgIC5jb21wb3NpdGVkIHsKKyAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xh
dGVaKDFweCk7CisgICAgfQorCisgICAgcCB7CisgICAgICBtYXJnaW4tdG9wOiAxNDBweDsKKyAg
ICB9CisgIDwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0
PSJ1dGYtOCI+CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKyAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIGRvVGVzdCgpIHsKKyAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykuaW5uZXJUZXh0ID0g
d2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOworICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgIH0KKyAgICB9CisgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ2xvYWQnLCBkb1Rlc3QsIGZhbHNlKTsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgPGRpdiBjbGFzcz0iYm94Ij4KKyAgICA8ZGl2IGNsYXNzPSJjb21wb3NpdGVkIGlu
bmVyIj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+CisKKyAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0i
bGVmdDogMjIwcHg7Ij4KKyAgICA8ZGl2IGNsYXNzPSJpbm5lciI+CisgICAgPC9kaXY+CisgIDwv
ZGl2PgorCisgIDxwPlRlc3QgQ1NTIGNsaXAgd2l0aCBjb21wb3NpdGVkIGxheWVycy4gTGVmdCBh
bmQgcmlnaHQgc2lkZXMgc2hvdWxkIGxvb2sgdGhlIHNhbWUuIFRoaXMgdGVzdCBzaG91bGQgbm90
IEFTU0VSVCBpbiBkZWJ1ZyBidWlsZHMuPC9wPgorICA8cHJlIGlkPSJsYXllcnMiPkluIERSVCwg
bGF5ZXIgdHJlZSBnb2VzIGhlcmUuPC9wcmU+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>