<?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>108205</bug_id>
          
          <creation_ts>2013-01-29 10:46:08 -0800</creation_ts>
          <short_desc>Text Autosizing: prevent oscillation of font sizes during autosizing</short_desc>
          <delta_ts>2013-02-24 16:24:59 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>84186</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter>timvolodine</reporter>
          <assigned_to>timvolodine</assigned_to>
          <cc>avayvod</cc>
    
    <cc>dongseong.hwang</cc>
    
    <cc>eric</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>johnme</cc>
    
    <cc>kenneth</cc>
    
    <cc>miguelg</cc>
    
    <cc>mikhail.pozdnyakov</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>timvolodine</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>819089</commentid>
    <comment_count>0</comment_count>
    <who name="">timvolodine</who>
    <bug_when>2013-01-29 10:46:08 -0800</bug_when>
    <thetext>Text Autosizing: prevent oscillation of font sizes during autosizing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819093</commentid>
    <comment_count>1</comment_count>
      <attachid>185266</attachid>
    <who name="">timvolodine</who>
    <bug_when>2013-01-29 10:54:16 -0800</bug_when>
    <thetext>Created attachment 185266
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819103</commentid>
    <comment_count>2</comment_count>
    <who name="">timvolodine</who>
    <bug_when>2013-01-29 11:03:32 -0800</bug_when>
    <thetext>will probably need to add an extra test for orientation-change (i.e. size change)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832055</commentid>
    <comment_count>3</comment_count>
      <attachid>188118</attachid>
    <who name="">timvolodine</who>
    <bug_when>2013-02-13 10:44:21 -0800</bug_when>
    <thetext>Created attachment 188118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834123</commentid>
    <comment_count>4</comment_count>
      <attachid>188593</attachid>
    <who name="">timvolodine</who>
    <bug_when>2013-02-15 10:01:30 -0800</bug_when>
    <thetext>Created attachment 188593
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834126</commentid>
    <comment_count>5</comment_count>
    <who name="">timvolodine</who>
    <bug_when>2013-02-15 10:05:09 -0800</bug_when>
    <thetext>in the last patch we decided to go with a simpler approach than in the previous two patches. Empirical tests suggest the approach of fixing the autosizing multiplier once it is set works sufficiently well for most webpages and in addition to preventing oscillation also results in faster layout times.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834190</commentid>
    <comment_count>6</comment_count>
      <attachid>188593</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-02-15 11:10:42 -0800</bug_when>
    <thetext>Comment on attachment 188593
Patch

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

Added some comments.

&gt; Source/WebCore/ChangeLog:8
&gt; +        On some websites font sizes appear to oscillate or grow very large due to

You can delete &quot;appear to&quot;, since they really do oscillate.
And it&apos;s not really a case of them growing very large, it&apos;s more that on some sites it takes many layouts before the font sizes settle to a steady size.

&gt; Source/WebCore/page/Settings.cpp:369
&gt; +    // TODO: I wonder if this needs to traverse frames like in WebViewImpl::resize, or whether there is only one document per Settings instance?

s/TODO/FIXME/ according to WebKit style.

&gt; Source/WebCore/rendering/TextAutosizer.cpp:99
&gt; +            setMultiplier(renderer, 1);

Please add a check for renderer-&gt;style()-&gt;textAutosizingMultiplier() != 1, as setting the multiplier unnecessarily is quite expensive.

&gt; Source/WebCore/rendering/TextAutosizer.cpp:199
&gt; +            if (localMultiplier != descendant-&gt;style()-&gt;textAutosizingMultiplier()

Nit: might be simpler/cheaper to write: localMultiplier != 1 &amp;&amp; descendant-&gt;style()-&gt;textAutosizingMultiplier() == 1

&gt; LayoutTests/ChangeLog:8
&gt; +        Changed old tests to layout without the scrollbar initially, because the

A little unclear. Perhaps change this sentence to &quot;Added overflow-y:hidden to some existing tests, since previously those tests would start off with incorrect multipliers (because mainFrame-&gt;view()-&gt;layoutSize() is initially 785 instead of 800 as ScrollView wrongly guesses a scrollbar will be needed), and then the multipliers would get corrected on a subsequent layout. Now that we don&apos;t allow the multiplier to change after being set, it needs to be right first time.&quot;

&gt; LayoutTests/fast/text-autosizing/oscillation-javascript-fontsize-change.html:42
&gt; +if(element.offsetHeight){

Nit: space before ( and { please (ditto below).

&gt; LayoutTests/fast/text-autosizing/oscillation-javascript-fontsize-change.html:43
&gt; +    // force layout (to computation of offsetHeight triggers reflow)

Nit: s/to //

&gt; LayoutTests/fast/text-autosizing/oscillation-javascript-fontsize-change.html:45
&gt; +element.className=&apos;largersize&apos;;

Nit: spaces around = please (ditto below).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834223</commentid>
    <comment_count>7</comment_count>
      <attachid>188593</attachid>
    <who name="">timvolodine</who>
    <bug_when>2013-02-15 11:46:09 -0800</bug_when>
    <thetext>Comment on attachment 188593
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        On some websites font sizes appear to oscillate or grow very large due to
&gt; 
&gt; You can delete &quot;appear to&quot;, since they really do oscillate.
&gt; And it&apos;s not really a case of them growing very large, it&apos;s more that on some sites it takes many layouts before the font sizes settle to a steady size.

On some websites autosized font-sizes oscillate due to layouts caused by hovering or incremental page loading (and on other sites font sizes do eventually stabilize, but it takes many layouts before they reach a steady size). To prevent all these cases, we no longer allow the autosizing multiplier to change after it has been set (to a value other than 1).

This won&apos;t always give exactly the same results, but testing on 2000 top sites shows that this makes little difference in practice, and it prevents these very jarring cases. As a happy side-effect, this speeds up layouts as font sizes change less.

&gt;&gt; Source/WebCore/page/Settings.cpp:369
&gt;&gt; +    // TODO: I wonder if this needs to traverse frames like in WebViewImpl::resize, or whether there is only one document per Settings instance?
&gt; 
&gt; s/TODO/FIXME/ according to WebKit style.

done

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:99
&gt;&gt; +            setMultiplier(renderer, 1);
&gt; 
&gt; Please add a check for renderer-&gt;style()-&gt;textAutosizingMultiplier() != 1, as setting the multiplier unnecessarily is quite expensive.

done

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:199
&gt;&gt; +            if (localMultiplier != descendant-&gt;style()-&gt;textAutosizingMultiplier()
&gt; 
&gt; Nit: might be simpler/cheaper to write: localMultiplier != 1 &amp;&amp; descendant-&gt;style()-&gt;textAutosizingMultiplier() == 1

done

&gt;&gt; LayoutTests/ChangeLog:8
&gt;&gt; +        Changed old tests to layout without the scrollbar initially, because the
&gt; 
&gt; A little unclear. Perhaps change this sentence to &quot;Added overflow-y:hidden to some existing tests, since previously those tests would start off with incorrect multipliers (because mainFrame-&gt;view()-&gt;layoutSize() is initially 785 instead of 800 as ScrollView wrongly guesses a scrollbar will be needed), and then the multipliers would get corrected on a subsequent layout. Now that we don&apos;t allow the multiplier to change after being set, it needs to be right first time.&quot;

done

&gt;&gt; LayoutTests/fast/text-autosizing/oscillation-javascript-fontsize-change.html:42
&gt;&gt; +if(element.offsetHeight){
&gt; 
&gt; Nit: space before ( and { please (ditto below).

done

&gt;&gt; LayoutTests/fast/text-autosizing/oscillation-javascript-fontsize-change.html:43
&gt;&gt; +    // force layout (to computation of offsetHeight triggers reflow)
&gt; 
&gt; Nit: s/to //

done

&gt;&gt; LayoutTests/fast/text-autosizing/oscillation-javascript-fontsize-change.html:45
&gt;&gt; +element.className=&apos;largersize&apos;;
&gt; 
&gt; Nit: spaces around = please (ditto below).

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834247</commentid>
    <comment_count>8</comment_count>
      <attachid>188611</attachid>
    <who name="">timvolodine</who>
    <bug_when>2013-02-15 12:01:41 -0800</bug_when>
    <thetext>Created attachment 188611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834255</commentid>
    <comment_count>9</comment_count>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-02-15 12:07:22 -0800</bug_when>
    <thetext>Latest patch looks good to me. Kenneth/Julien, WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835437</commentid>
    <comment_count>10</comment_count>
      <attachid>188611</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-18 06:36:19 -0800</bug_when>
    <thetext>Comment on attachment 188611
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        eventually stabilize, but it takes many layouts before they reach a steady
&gt; +        size). To prevent all these cases, we no longer allow the autosizing
&gt; +        multiplier to change after it has been set (to a value other than 1).

Sounds like an OK idea.

&gt; Source/WebCore/ChangeLog:17
&gt; +        This won&apos;t always give exactly the same results, but testing on 2000 top
&gt; +        sites shows that this makes little difference in practice, and it prevents
&gt; +        these very jarring cases. As a happy side-effect, this speeds up layouts
&gt; +        as font sizes change less.

What happens if you load the page in portrait, then rotate. in comparison with loading it in landscape and rotating to portrait? You get the same result?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835469</commentid>
    <comment_count>11</comment_count>
      <attachid>188611</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-02-18 07:28:09 -0800</bug_when>
    <thetext>Comment on attachment 188611
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:17
&gt;&gt; +        as font sizes change less.
&gt; 
&gt; What happens if you load the page in portrait, then rotate. in comparison with loading it in landscape and rotating to portrait? You get the same result?

Very perceptive - this was in fact a bug with an initial implementation of this :)
That&apos;s why the patch adds some code to chromium&apos;s WebViewImpl::resize which calls recalculateMultipliers if the page changes width, hence reseting the multiplier lock.
However it would probably be better if this was done automatically from WebCore. Can you think of a good place to hook this in? Perhaps in FrameView::contentsResized?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835471</commentid>
    <comment_count>12</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-18 07:30:16 -0800</bug_when>
    <thetext>
&gt; Very perceptive - this was in fact a bug with an initial implementation of this :)
&gt; That&apos;s why the patch adds some code to chromium&apos;s WebViewImpl::resize which calls recalculateMultipliers if the page changes width, hence reseting the multiplier lock.
&gt; However it would probably be better if this was done automatically from WebCore. Can you think of a good place to hook this in? Perhaps in FrameView::contentsResized?

Yeah, I suppose FrameView would be the right place. I guess that way is should also be easier to test for all ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835553</commentid>
    <comment_count>13</comment_count>
      <attachid>188903</attachid>
    <who name="">timvolodine</who>
    <bug_when>2013-02-18 09:21:20 -0800</bug_when>
    <thetext>Created attachment 188903
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835561</commentid>
    <comment_count>14</comment_count>
      <attachid>188903</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-18 09:31:57 -0800</bug_when>
    <thetext>Comment on attachment 188903
Patch

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

&gt; Source/WebCore/page/FrameView.cpp:450
&gt; +#if ENABLE(TEXT_AUTOSIZING)
&gt; +    // Autosized font sizes depend on the width of the viewing area.
&gt; +    if (newRect.width() != oldRect.width()) {
&gt; +        Page* page = m_frame ? m_frame-&gt;page() : 0;

I think we need to do this elsewhere. Some ports don&apos;t use the FrameView as the viewport. There much be another place where you can get the content size changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835650</commentid>
    <comment_count>15</comment_count>
      <attachid>188903</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-02-18 11:21:00 -0800</bug_when>
    <thetext>Comment on attachment 188903
Patch

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

&gt;&gt; Source/WebCore/page/FrameView.cpp:450
&gt;&gt; +        Page* page = m_frame ? m_frame-&gt;page() : 0;
&gt; 
&gt; I think we need to do this elsewhere. Some ports don&apos;t use the FrameView as the viewport. There much be another place where you can get the content size changes.

This isn&apos;t looking for content size changes, it&apos;s looking for changes in the browser window width (such as when a device is rotated from portrait to landscape). I think we agreed on IRC that specifically the unscaledVisibleContentSize of the main frame&apos;s FrameView is the width we want to watch, and indeed that matches how TextAutosizer::processSubtree calculates the windowSize.

Now ScrollView::unscaledVisibleContentSize is somewhat complicated, but it seems it primarily derives its value from Widget::width() and Widget::height(), which should always get changed via FrameView::setFrameRect. So perhaps this is a good place to detect width changes after all?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835652</commentid>
    <comment_count>16</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-18 11:26:56 -0800</bug_when>
    <thetext>I am adding Dongsung as he was looking into fixed layout and setViewportSize.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835965</commentid>
    <comment_count>17</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-02-18 22:30:52 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 188903 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=188903&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/page/FrameView.cpp:450
&gt; &gt;&gt; +        Page* page = m_frame ? m_frame-&gt;page() : 0;
&gt; &gt; 
&gt; &gt; I think we need to do this elsewhere. Some ports don&apos;t use the FrameView as the viewport. There much be another place where you can get the content size changes.
&gt; 
&gt; This isn&apos;t looking for content size changes, it&apos;s looking for changes in the browser window width (such as when a device is rotated from portrait to landscape). I think we agreed on IRC that specifically the unscaledVisibleContentSize of the main frame&apos;s FrameView is the width we want to watch, and indeed that matches how TextAutosizer::processSubtree calculates the windowSize.
&gt; 
&gt; Now ScrollView::unscaledVisibleContentSize is somewhat complicated, but it seems it primarily derives its value from Widget::width() and Widget::height(), which should always get changed via FrameView::setFrameRect. So perhaps this is a good place to detect width changes after all?

Hi! great work! and I have some questions.

Do we need to call TextAutosizer::recalculateMultipliers() when viewport is changed? If so, I think we need to check when page scale is changed as well as FrameView::setFrameRect.
I think the unscaledVisibleContentSize of the main frame&apos;s FrameView is nothing. the visibleContentRect of the main frame view said what is viewport rect in contents unit. the unscaledVisibleContentSize is just helper function for compositor. never mind unscaledVisibleContentSize.
There is two factors that affect the visibleContentRect: frameRect and pageScale. Chromium compositor will stretch the visibleContentRect in contents unit to the device viewport in window (may multiply pageScale x deviceScale). EFL and Qt will follow Chromium&apos;s way.

I&apos;m not familiar to font autosize, so I&apos;m not sure whether we should call TextAutosizer::recalculateMultipliers() when page scale is changed. WDYT? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836168</commentid>
    <comment_count>18</comment_count>
    <who name="">timvolodine</who>
    <bug_when>2013-02-19 02:43:50 -0800</bug_when>
    <thetext>from the http://trac.webkit.org/wiki/ScalesAndZooms:
&quot;Page scale is used to implement zooming gestures. [...]
Page scale affects the virtual viewport, not the CSS viewport, so layout is, generally speaking, not impacted by a changing page scale.&quot;

so if the layout is not impacted then we should not recompute autosizing when page scale changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836186</commentid>
    <comment_count>19</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-02-19 03:16:34 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; from the http://trac.webkit.org/wiki/ScalesAndZooms:
&gt; &quot;Page scale is used to implement zooming gestures. [...]
&gt; Page scale affects the virtual viewport, not the CSS viewport, so layout is, generally speaking, not impacted by a changing page scale.&quot;
&gt; 
&gt; so if the layout is not impacted then we should not recompute autosizing when page scale changes.

ah, thank you for explanation. Text Autosizing is related to layout rather than virtual viewport. I agree with you that FrameView::setFrameRect is relevant position. Frankly, I don&apos;t fully understand what is Text Autosizing and css viewport yet. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836319</commentid>
    <comment_count>20</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-19 06:27:25 -0800</bug_when>
    <thetext>
&gt; Do we need to call TextAutosizer::recalculateMultipliers() when viewport is changed?

It needs to be recalcuted whenever the visible native viewport changes width, disregarding scaling.

&gt; ah, thank you for explanation. Text Autosizing is related to layout rather than virtual viewport. I agree with you that FrameView::setFrameRect is relevant position. Frankly, I don&apos;t fully understand what is Text Autosizing and css viewport yet. :)

Not really, it is related to what we call the initial layout viewport (according to the css device adaptation spec). which means the visible viewport at css scale 1.0. If this changes, like as a result of an orientation change, then it needs to be recalculated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836344</commentid>
    <comment_count>21</comment_count>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-02-19 06:54:13 -0800</bug_when>
    <thetext>(In reply to comment #20)
Or to put it another way, Text Autosizing depends on the physical width of the device, measured in density-independent pixels (DIP). For example a portrait iPhone is 320 DIP wide (whether it&apos;s high dpi or low dpi), and a landscape iPhone 4 is 480 DIP wide. This is irrespective of the page&apos;s meta viewport tag or zoom level.

When the device gets rotated from portrait to landscape, and the window width switches from e.g. 320 DIP to 480 DIP, we need to call recalculateMultipliers.

TextAutosizer::processSubtree currently accesses this DIP window width using page-&gt;mainFrame()-&gt;view()-&gt;unscaledVisibleContentSize(true). That definitely works on chromium (both android and linux); if it turns out that doesn&apos;t work on other ports which do tiling outside of WebKit then we should change that, but it would probably be cleaner to do so as a separate bug/patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836520</commentid>
    <comment_count>22</comment_count>
      <attachid>188903</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-19 10:27:46 -0800</bug_when>
    <thetext>Comment on attachment 188903
Patch

I am ok with this, but it would be great if we could actually test by modifying the viewport. That can be done from testing already I believe, but we need to make sure it uses fixed layout for EFL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836554</commentid>
    <comment_count>23</comment_count>
      <attachid>188903</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-19 10:59:14 -0800</bug_when>
    <thetext>Comment on attachment 188903
Patch

Clearing flags on attachment: 188903

Committed r143356: &lt;http://trac.webkit.org/changeset/143356&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836555</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-19 10:59:20 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837048</commentid>
    <comment_count>25</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-02-19 18:25:54 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; TextAutosizer::processSubtree currently accesses this DIP window width using page-&gt;mainFrame()-&gt;view()-&gt;unscaledVisibleContentSize(true). That definitely works on chromium (both android and linux); if it turns out that doesn&apos;t work on other ports which do tiling outside of WebKit then we should change that, but it would probably be cleaner to do so as a separate bug/patch?

I understand now page-&gt;mainFrame()-&gt;view()-&gt;unscaledVisibleContentSize(true) returns css viewport, that http://trac.webkit.org/wiki/ScalesAndZooms and http://dev.w3.org/csswg/css-device-adapt/ said.
kenneth, when we use fixedLayoutSize, is css viewport determined by fixedLayoutSize instead of frameRect? If so, I think we need to call TextAutosizer::recalculateMultipliers() when fixedLayoutSize is changed..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840610</commentid>
    <comment_count>26</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-24 07:54:11 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; (In reply to comment #21)
&gt; &gt; (In reply to comment #20)
&gt; &gt; TextAutosizer::processSubtree currently accesses this DIP window width using page-&gt;mainFrame()-&gt;view()-&gt;unscaledVisibleContentSize(true). That definitely works on chromium (both android and linux); if it turns out that doesn&apos;t work on other ports which do tiling outside of WebKit then we should change that, but it would probably be cleaner to do so as a separate bug/patch?
&gt; 
&gt; I understand now page-&gt;mainFrame()-&gt;view()-&gt;unscaledVisibleContentSize(true) returns css viewport, that http://trac.webkit.org/wiki/ScalesAndZooms and http://dev.w3.org/csswg/css-device-adapt/ said.

CSS viewport at 1.0 scale, yes.

&gt; kenneth, when we use fixedLayoutSize, is css viewport determined by fixedLayoutSize instead of frameRect? If so, I think we need to call TextAutosizer::recalculateMultipliers() when fixedLayoutSize is changed..

fixed layout size is not equal to the viewport at 1.0 scale (only when width=device-width). Often the content is laid out so that it does not fit into the viewport, given fallback values (say 980 for desktop pages) or given values from the viewport meta tag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840669</commentid>
    <comment_count>27</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-02-24 16:24:59 -0800</bug_when>
    <thetext>(In reply to comment #26)
&gt; fixed layout size is not equal to the viewport at 1.0 scale (only when width=device-width). Often the content is laid out so that it does not fit into the viewport, given fallback values (say 980 for desktop pages) or given values from the viewport meta tag.

aha, Thanks for explanation. fixed layout size and css viewport makes me confused :) In detail, I&apos;m trying to understand which code of WebCore use fixed layout size, css viewport (unscaledVisibleContentSize) or just Widget::frameRect.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185266</attachid>
            <date>2013-01-29 10:54:16 -0800</date>
            <delta_ts>2013-02-13 10:44:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108205-20130129185101.patch</filename>
            <type>text/plain</type>
            <size>12861</size>
            <attacher>timvolodine</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNzMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTc2MGNhOTU1ZTg2YWQ1
NTgxMDkzN2RhNTlkMWE3ODhlNTUwNTQwOS4uNjZlMjU1NjM0ZDEzOWQwYmRlNTJlZjQwODY4MWQ0
MGU0MGQ1MTY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEzLTAxLTI5ICBUaW0g
Vm9sb2RpbmUgIDx0aW12b2xvZGluZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGV4dCBBdXRv
c2l6aW5nOiBwcmV2ZW50IG9zY2lsbGF0aW9uIG9mIGZvbnQgc2l6ZXMgZHVyaW5nIGF1dG9zaXpp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODIw
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9uIHNv
bWUgd2Vic2l0ZXMgZm9udCBzaXplcyBhcHBlYXIgdG8gb3NjaWxsYXRlIG9yIGdyb3cgdmVyeSBs
YXJnZSBkdXJpbmcKKyAgICAgICAgYXV0b3NpemluZy4gVG8gcHJldmVudCB0aGlzIHdlIGRldGVj
dCB3aGVuIHN1Y2ggYW4gb3NjaWxsYXRpb24gaXMgYWJvdXQgdG8KKyAgICAgICAgaGFwcGVuIGFu
ZCBwZXJmb3JtIGEgZnJlc2ggYXV0b3NpemluZyBhbmQgbGF5b3V0IHBhc3Mgd2hpY2ggaXMgZ3Vh
cmFudGVlZCB0bworICAgICAgICB5aWVsZCBzdGFibGUgcmVzdWx0cy4KKworICAgICAgICBUZXN0
OiBmYXN0L3RleHQtYXV0b3NpemluZy9vc2NpbGxhdGlvbi1qYXZhc2NyaXB0LWZvbnRzaXplLWNo
YW5nZS5odG1sCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6bGF5b3V0KToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNldHRpbmdzOjpzZXRUZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3Rvcik6CisgICAg
ICAgICogcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dEF1dG9zaXplcjo6VGV4dEF1dG9zaXplcik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0QXV0b3Np
emVyOjpyZWNhbGN1bGF0ZU11bHRpcGxpZXJzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6aXNPc2NpbGxhdGluZyk6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0QXV0b3NpemVyOjpwcm9jZXNzU3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpU
ZXh0QXV0b3NpemVyOjpwcm9jZXNzQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4
dEF1dG9zaXplci5oOgorICAgICAgICAoVGV4dEF1dG9zaXplcik6CisKIDIwMTMtMDEtMjQgIEph
bWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9O
KDE0MDU3MSk6IENyYXNoIGluIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjptYWluVGhyZWFkU2Nyb2xs
aW5nUmVhc29ucyBkdXJpbmcgRnJhbWU6OmNyZWF0ZVZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggNWRjYTZmMDBhNjcwMDhmMjUzMDk2Y2I4YzI3MjIzMGYyN2EyMTdhZS4uMTJjNTNm
YTJiZjRmNDc1ZWE4OTRiNzA1OGRmNzI0YzdiNzUyZTlhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMS0yOSAgVGltIFZvbG9kaW5lICA8dGltdm9s
b2RpbmVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFRleHQgQXV0b3NpemluZzogcHJldmVudCBv
c2NpbGxhdGlvbiBvZiBmb250IHNpemVzIGR1cmluZyBhdXRvc2l6aW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgyMDUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZXNpemUpOgorCiAyMDEzLTAxLTI0ICBK
YW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVt
XSBOdWxsIGNoZWNrIFdlYkxheWVyVHJlZVZpZXcgYmVmb3JlIGRlcmVmZmluZyBpbiBXZWJWaWV3
SW1wbDo6aW52YWxpZGF0ZVJlY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMGIyYmRkN2UyOGY2
Y2QxZDE1NGMxMjNjNGQ3YTZiMmU2MDRjZjk5My4uNzE0ZDg0NzI1YTk3Yjk1NjhiOTUwMTNlMzY3
MGI5NWJkMjkyMGQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTU1LDYgKzU1LDExIEBACiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCisj
aWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKKyNpbmNsdWRlICJUZXh0QXV0b3NpemVyLmgiCisj
ZW5kaWYKKworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFYT2JqZWN0Q2FjaGU7CkBA
IC0xNzgsMTAgKzE4Myw2IEBAIGNsYXNzIE1pY3JvRGF0YUl0ZW1MaXN0OwogY2xhc3MgUHJlcmVu
ZGVyZXI7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCi1jbGFzcyBUZXh0
QXV0b3NpemVyOwotI2VuZGlmCi0KICNpZiBFTkFCTEUoQ1NQX05FWFQpCiBjbGFzcyBET01TZWN1
cml0eVBvbGljeTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGViZmUx
YzgxZGNjMzkzMGQ0N2RkODVmNWU0NTVhYjIwNmQwNmIwYWYuLmE5OTM5OTU1MzdlNmE2MjFjMDM4
Nzg2YjZiNTgwNDdlNDEwNzVmYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTEy
MTAsOSArMTIxMCwxOSBAQCB2b2lkIEZyYW1lVmlldzo6bGF5b3V0KGJvb2wgYWxsb3dTdWJ0cmVl
KQogICAgICAgICAgICAgbV9pbkxheW91dCA9IHRydWU7CiAgICAgICAgICAgICBiZWdpbkRlZmVy
cmVkUmVwYWludHMoKTsKICAgICAgICAgICAgIGZvcmNlTGF5b3V0UGFyZW50Vmlld0lmTmVlZGVk
KCk7CisjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKKyAgICAgICAgICAgIGlmIChkb2N1bWVu
dC0+dGV4dEF1dG9zaXplcigpLT5pc09zY2lsbGF0aW5nKCkpCisgICAgICAgICAgICAgICAgZG9j
dW1lbnQtPnRleHRBdXRvc2l6ZXIoKS0+cmVjYWxjdWxhdGVNdWx0aXBsaWVycygpOworI2VuZGlm
CiAgICAgICAgICAgICByb290LT5sYXlvdXQoKTsKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5H
KQogICAgICAgICAgICAgYm9vbCBhdXRvc2l6ZWQgPSBkb2N1bWVudC0+dGV4dEF1dG9zaXplcigp
LT5wcm9jZXNzU3VidHJlZShyb290KTsKKyAgICAgICAgICAgIGlmIChkb2N1bWVudC0+dGV4dEF1
dG9zaXplcigpLT5pc09zY2lsbGF0aW5nKCkpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC0+
dGV4dEF1dG9zaXplcigpLT5yZWNhbGN1bGF0ZU11bHRpcGxpZXJzKCk7CisgICAgICAgICAgICAg
ICAgcm9vdC0+bGF5b3V0KCk7CisgICAgICAgICAgICAgICAgYXV0b3NpemVkID0gZG9jdW1lbnQt
PnRleHRBdXRvc2l6ZXIoKS0+cHJvY2Vzc1N1YnRyZWUocm9vdCk7CisgICAgICAgICAgICB9CisK
ICAgICAgICAgICAgIGlmIChhdXRvc2l6ZWQgJiYgcm9vdC0+bmVlZHNMYXlvdXQoKSkKICAgICAg
ICAgICAgICAgICByb290LT5sYXlvdXQoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNw
cAppbmRleCA3ZmY3YTk2MDViODZjM2Q5YmRjZWEwNThjNDYyMDEwNDRmOTk0NzFmLi44NTNjNmY1
Zjg4YzQ4NjY1MTA3ZTFmMDQ2NDA0NmJlMDI0ZTEyMTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmNwcApAQCAtMzYwLDYgKzM2MCwxMCBAQCB2b2lkIFNldHRpbmdzOjpzZXRUZXh0QXV0b3Npemlu
Z1dpbmRvd1NpemVPdmVycmlkZShjb25zdCBJbnRTaXplJiB0ZXh0QXV0b3NpemluZwogdm9pZCBT
ZXR0aW5nczo6c2V0VGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IoZmxvYXQgZm9udFNjYWxl
RmFjdG9yKQogewogICAgIG1fdGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IgPSBmb250U2Nh
bGVGYWN0b3I7CisgICAgLy8gVE9ETzogSSB3b25kZXIgaWYgdGhpcyBuZWVkcyB0byB0cmF2ZXJz
ZSBmcmFtZXMgbGlrZSBpbiBXZWJWaWV3SW1wbDo6cmVzaXplLCBvciB3aGV0aGVyIHRoZXJlIGlz
IG9ubHkgb25lIGRvY3VtZW50IHBlciBTZXR0aW5ncyBpbnN0YW5jZT8KKyAgICBmb3IgKEZyYW1l
KiBmcmFtZSA9IG1fcGFnZS0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVl
KCktPnRyYXZlcnNlTmV4dCgpKQorICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+dGV4dEF1dG9z
aXplcigpLT5yZWNhbGN1bGF0ZU11bHRpcGxpZXJzKCk7CisKICAgICBtX3BhZ2UtPnNldE5lZWRz
UmVjYWxjU3R5bGVJbkFsbEZyYW1lcygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
VGV4dEF1dG9zaXplci5jcHAKaW5kZXggYjE4YjcwMmI1MWIyZDFmYzA5ODhlM2VlZDM4YjYyZTNh
YmQ1MzQ0OS4uMzg3N2FmMTViODFlMGYwMTdiYmYyOGEwMmU4YzcwYjAzMTJmN2ZiYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcApAQCAtNjEsNyArNjEsNyBA
QCBzdGF0aWMgY29uc3QgVmVjdG9yPFF1YWxpZmllZE5hbWU+JiBmb3JtSW5wdXRUYWdzKCkKIH0K
IAogVGV4dEF1dG9zaXplcjo6VGV4dEF1dG9zaXplcihEb2N1bWVudCogZG9jdW1lbnQpCi0gICAg
OiBtX2RvY3VtZW50KGRvY3VtZW50KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCksIG1faXNP
c2NpbGxhdGluZyhmYWxzZSkKIHsKIH0KIApAQCAtNjksNiArNjksMjEgQEAgVGV4dEF1dG9zaXpl
cjo6flRleHRBdXRvc2l6ZXIoKQogewogfQogCit2b2lkIFRleHRBdXRvc2l6ZXI6OnJlY2FsY3Vs
YXRlTXVsdGlwbGllcnMoKQoreworICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBtX2RvY3Vt
ZW50LT5yZW5kZXJlcigpOworICAgIHdoaWxlIChyZW5kZXJlcikgeworICAgICAgICBpZiAocmVu
ZGVyZXItPnN0eWxlKCkpCisgICAgICAgICAgICBzZXRNdWx0aXBsaWVyKHJlbmRlcmVyLCAxKTsK
KyAgICAgICAgcmVuZGVyZXIgPSByZW5kZXJlci0+bmV4dEluUHJlT3JkZXIoKTsKKyAgICB9Cit9
CisKK2Jvb2wgVGV4dEF1dG9zaXplcjo6aXNPc2NpbGxhdGluZygpCit7CisgICAgcmV0dXJuIG1f
aXNPc2NpbGxhdGluZzsKK30KKwogYm9vbCBUZXh0QXV0b3NpemVyOjpwcm9jZXNzU3VidHJlZShS
ZW5kZXJPYmplY3QqIGxheW91dFJvb3QpCiB7CiAgICAgLy8gRklYTUU6IFRleHQgQXV0b3Npemlu
ZyBzaG91bGQgb25seSBiZSBlbmFibGVkIHdoZW4gbV9kb2N1bWVudC0+cGFnZSgpLT5tYWluRnJh
bWUoKS0+dmlldygpLT51c2VGaXhlZExheW91dCgpCkBAIC0xMDYsNyArMTIxLDkgQEAgYm9vbCBU
ZXh0QXV0b3NpemVyOjpwcm9jZXNzU3VidHJlZShSZW5kZXJPYmplY3QqIGxheW91dFJvb3QpCiAg
ICAgd2hpbGUgKGNsdXN0ZXIgJiYgIWlzQXV0b3NpemluZ0NsdXN0ZXIoY2x1c3RlcikpCiAgICAg
ICAgIGNsdXN0ZXIgPSBjbHVzdGVyLT5jb250YWluaW5nQmxvY2soKTsKIAorICAgIG1faXNPc2Np
bGxhdGluZyA9IGZhbHNlOwogICAgIHByb2Nlc3NDbHVzdGVyKGNsdXN0ZXIsIGNvbnRhaW5lciwg
bGF5b3V0Um9vdCwgd2luZG93SW5mbyk7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTQ0
LDcgKzE2MSw5IEBAIHZvaWQgVGV4dEF1dG9zaXplcjo6cHJvY2Vzc0NvbnRhaW5lcihmbG9hdCBt
dWx0aXBsaWVyLCBSZW5kZXJCbG9jayogY29udGFpbmVyLCBjCiAgICAgUmVuZGVyT2JqZWN0KiBk
ZXNjZW5kYW50ID0gbmV4dEluUHJlT3JkZXJTa2lwcGluZ0Rlc2NlbmRhbnRzT2ZDb250YWluZXJz
KHN1YnRyZWVSb290LCBzdWJ0cmVlUm9vdCk7CiAgICAgd2hpbGUgKGRlc2NlbmRhbnQpIHsKICAg
ICAgICAgaWYgKGRlc2NlbmRhbnQtPmlzVGV4dCgpKSB7Ci0gICAgICAgICAgICBpZiAobG9jYWxN
dWx0aXBsaWVyICE9IGRlc2NlbmRhbnQtPnN0eWxlKCktPnRleHRBdXRvc2l6aW5nTXVsdGlwbGll
cigpKSB7CisgICAgICAgICAgICBmbG9hdCBkZXNjZW5kYW50TXVsdGlwbGllciA9IGRlc2NlbmRh
bnQtPnN0eWxlKCktPnRleHRBdXRvc2l6aW5nTXVsdGlwbGllcigpOworICAgICAgICAgICAgbV9p
c09zY2lsbGF0aW5nIHw9IChkZXNjZW5kYW50TXVsdGlwbGllciAhPSAxICYmIGxvY2FsTXVsdGlw
bGllciAhPSBkZXNjZW5kYW50TXVsdGlwbGllcik7CisgICAgICAgICAgICBpZiAobG9jYWxNdWx0
aXBsaWVyID4gMSAmJiBkZXNjZW5kYW50TXVsdGlwbGllciA9PSAxKSB7CiAgICAgICAgICAgICAg
ICAgc2V0TXVsdGlwbGllcihkZXNjZW5kYW50LCBsb2NhbE11bHRpcGxpZXIpOwogICAgICAgICAg
ICAgICAgIHNldE11bHRpcGxpZXIoZGVzY2VuZGFudC0+cGFyZW50KCksIGxvY2FsTXVsdGlwbGll
cik7IC8vIFBhcmVudCBkb2VzIGxpbmUgc3BhY2luZy4KICAgICAgICAgICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5oCmluZGV4IGUxYzIyYWViOWRiM2JjOTljOGI3
M2UxYjA2ODljNGY2YTE3MDZjZmEuLmI2Mjk4ZDA1YjE5NjI0Y2IzYmRiNGQ0NzI1YTQ1MjQzYjJi
MmJiN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuaApAQCAtNTAs
NiArNTAsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIHByb2Nlc3NTdWJ0cmVlKFJlbmRlck9iamVj
dCogbGF5b3V0Um9vdCk7CiAKKyAgICB2b2lkIHJlY2FsY3VsYXRlTXVsdGlwbGllcnMoKTsKKyAg
ICBib29sIGlzT3NjaWxsYXRpbmcoKTsKKwogICAgIHN0YXRpYyBmbG9hdCBjb21wdXRlQXV0b3Np
emVkRm9udFNpemUoZmxvYXQgc3BlY2lmaWVkU2l6ZSwgZmxvYXQgbXVsdGlwbGllcik7CiAKIHBy
aXZhdGU6CkBAIC04Niw2ICs4OSw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IFJlbmRl
ck9iamVjdCogZmluZEZpcnN0VGV4dExlYWZOb3RJbkNsdXN0ZXIoY29uc3QgUmVuZGVyT2JqZWN0
Kiwgc2l6ZV90JiBkZXB0aCwgVHJhdmVyc2FsRGlyZWN0aW9uKTsKIAogICAgIERvY3VtZW50KiBt
X2RvY3VtZW50OworICAgIGJvb2wgbV9pc09zY2lsbGF0aW5nOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmlu
ZGV4IDdlYjhlYTdkYTMzODcyZmM5N2I0OGQ2NzRlMDNmMTNmNjY2YmViOTIuLjJiODBmYmRiNDEy
NjBiYTkxZmM5YTVjMWEwYjMzMjYxMmI4MGJhNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTE2MzEsNiArMTYzMSwxNCBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjpyZXNpemUoY29uc3QgV2ViU2l6ZSYgbmV3U2l6ZSkKICAgICBtX3BhZ2UtPmNocm9tZSgp
LT5jbGllbnQoKS0+ZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2Uodmlld3BvcnRB
cmd1bWVudHMpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQorICAgIC8v
IEF1dG9zaXplZCBmb250IHNpemVzIGRlcGVuZCBvbiB0aGUgd2lkdGggb2YgdGhlIHZpZXdpbmcg
YXJlYS4KKyAgICBpZiAobmV3U2l6ZS53aWR0aCAhPSBvbGRTaXplLndpZHRoICYmIG1fcGFnZS0+
c2V0dGluZ3MoKS0+dGV4dEF1dG9zaXppbmdFbmFibGVkKCkpIHsKKyAgICAgICAgZm9yIChGcmFt
ZSogZnJhbWUgPSBtX3BhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJl
ZSgpLT50cmF2ZXJzZU5leHQoKSkKKyAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT50ZXh0
QXV0b3NpemVyKCktPnJlY2FsY3VsYXRlTXVsdGlwbGllcnMoKTsKKyAgICB9CisjZW5kaWYKKwog
ICAgIFdlYkRldlRvb2xzQWdlbnRQcml2YXRlKiBhZ2VudFByaXZhdGUgPSBkZXZUb29sc0FnZW50
UHJpdmF0ZSgpOwogICAgIGlmIChhZ2VudFByaXZhdGUpCiAgICAgICAgIGFnZW50UHJpdmF0ZS0+
d2ViVmlld1Jlc2l6ZWQobmV3U2l6ZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMGRmZmQ3NjVlODdiOWMxNTNmMDUwNjEx
NmE1MTU5NDEzYzEyYTIyMC4uNjk4OWI2N2E3YjE2ZjFlYjNjZGEwMmVmMzkxNTJhZTRhODBjMGUw
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTAxLTI5ICBUaW0gVm9sb2RpbmUgIDx0aW12
b2xvZGluZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGV4dCBBdXRvc2l6aW5nOiBwcmV2ZW50
IG9zY2lsbGF0aW9uIG9mIGZvbnQgc2l6ZXMgZHVyaW5nIGF1dG9zaXppbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODIwNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC90ZXh0LWF1dG9zaXpp
bmcvb3NjaWxsYXRpb24tamF2YXNjcmlwdC1mb250c2l6ZS1jaGFuZ2UtZXhwZWN0ZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0LWF1dG9zaXppbmcvb3NjaWxsYXRpb24tamF2YXNj
cmlwdC1mb250c2l6ZS1jaGFuZ2UuaHRtbDogQWRkZWQuCisKIDIwMTMtMDEtMjQgIEVtaWwgQSBF
a2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtzdmddIFJlbW92ZSB1bm5lY2Vz
c2FyeSByb3VuZGluZyBpbiBTVkdSb290SW5saW5lQm94OjpsYXlvdXRSb290Qm94CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9vc2NpbGxhdGlvbi1qYXZhc2Ny
aXB0LWZvbnRzaXplLWNoYW5nZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
LWF1dG9zaXppbmcvb3NjaWxsYXRpb24tamF2YXNjcmlwdC1mb250c2l6ZS1jaGFuZ2UtZXhwZWN0
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wNGE3OTQ2YzQwMTczODU5N2M4Nzk4ZTQ5ZWQzMDAwNmNmYTIz
MTI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcv
b3NjaWxsYXRpb24tamF2YXNjcmlwdC1mb250c2l6ZS1jaGFuZ2UtZXhwZWN0ZWQuaHRtbApAQCAt
MCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIHN0eWxlPSJmb250LXNpemU6IDE2
cHgiPgorPGhlYWQ+CisKKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04MDAi
PgorPHN0eWxlPgorICBib2R5IHsKKyAgICB3aWR0aDogODAwcHg7CisgICAgbWFyZ2luOiAwOwor
ICAgIG92ZXJmbG93LXk6IGhpZGRlbjsKKyAgfQorPC9zdHlsZT4KKworPC9oZWFkPgorPGJvZHk+
CisKKzxkaXYgc3R5bGU9InRvcDo1MHB4O3Bvc2l0aW9uOmFic29sdXRlO2ZvbnQtc2l6ZToxOS44
cHgiPgorICAgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu
IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLjxici8+
CisgICAgVGhpcyBwYXJhZ3JhcGggc2hvdWxkIGJlIGF1dG9zaXplZCB0byAxOS44cHg8YnIvPgor
ICAgIGJlY2F1c2UgaXQgY29udGFpbnMgbGluZSBicmVha3MuPGJyLz4KKyAgICBUaGlzIHRlc3Qg
aXMgaW50ZW5kZWQgdG8gY2hlY2s8YnIvPgorICAgIHRoYXQgdGhlcmUgYXJlIG5vIG9zY2lsbGF0
aW9ucyBkdWUgdG8gamF2YXNjcmlwdDxici8+CisgICAgYnJpZWZseSBpbmNyZWFzaW5nIHRoZSBm
b250IHNpemUgb2YgYTxici8+CisgICAgc21hbGwgcGFyYWdyYXBoIGJlbG93LgorPC9kaXY+Cis8
ZGl2IGlkPSJzaXplY2hhbmdpbmciPgorICAgIFRoaXMgdGV4dCBjaGFuZ2VzIHNpemUgdXNpbmcg
amF2YXNjcmlwdCBiZWxvdy4KKzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9vc2NpbGxhdGlvbi1qYXZhc2NyaXB0
LWZvbnRzaXplLWNoYW5nZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcv
b3NjaWxsYXRpb24tamF2YXNjcmlwdC1mb250c2l6ZS1jaGFuZ2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
NDdmODBmYWJlY2FiODIxZGI1YjEyYjJkYWQ3NjMxZWM5ODZkNjczCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvb3NjaWxsYXRpb24tamF2YXNjcmlw
dC1mb250c2l6ZS1jaGFuZ2UuaHRtbApAQCAtMCwwICsxLDUzIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sIHN0eWxlPSJmb250LXNpemU6IDE2cHgiPgorPGhlYWQ+CisKKzxtZXRhIG5hbWU9InZp
ZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04MDAiPgorPHN0eWxlPgorICBib2R5IHsKKyAgICB3aWR0
aDogODAwcHg7CisgICAgbWFyZ2luOiAwOworICAgIG92ZXJmbG93LXk6IGhpZGRlbjsKKyAgfQor
ICAubGFyZ2Vyc2l6ZXtmb250LXNpemU6IDEuMWVtfQorPC9zdHlsZT4KKworPHNjcmlwdD4KK2lm
ICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRU
ZXh0QXV0b3NpemluZ0VuYWJsZWQodHJ1ZSk7CisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5n
cy5zZXRUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZSgzMjAsIDQ4MCk7Cit9IGVsc2Ug
aWYgKHdpbmRvdy5jb25zb2xlICYmIGNvbnNvbGUud2FybikgeworICAgIGNvbnNvbGUud2Fybigi
VGhpcyB0ZXN0IGRlcGVuZHMgb24gdGhlIFRleHQgQXV0b3NpemluZyBzZXR0aW5nIGJlaW5nIHRy
dWUsIHNvIHJ1biBpdCBpbiBEdW1wUmVuZGVyVHJlZSwgb3IgbWFudWFsbHkgZW5hYmxlIFRleHQg
QXV0b3NpemluZywgYW5kIGVpdGhlciB1c2UgYSBtb2JpbGUgZGV2aWNlIHdpdGggMzIwcHggZGV2
aWNlLXdpZHRoIChsaWtlIE5leHVzIFMgb3IgaVBob25lKSwgb3IgZGVmaW5lIEhBQ0tfRk9SQ0Vf
VEVYVF9BVVRPU0laSU5HX09OX0RFU0tUT1AuIik7Cit9Cis8L3NjcmlwdD4KKworPC9oZWFkPgor
PGJvZHk+CisKKzxkaXYgc3R5bGU9InRvcDo1MHB4O3Bvc2l0aW9uOmFic29sdXRlOyI+CisgICAg
LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu
IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuPGJyLz4KKyAgICBUaGlz
IHBhcmFncmFwaCBzaG91bGQgYmUgYXV0b3NpemVkIHRvIDE5LjhweDxici8+CisgICAgYmVjYXVz
ZSBpdCBjb250YWlucyBsaW5lIGJyZWFrcy48YnIvPgorICAgIFRoaXMgdGVzdCBpcyBpbnRlbmRl
ZCB0byBjaGVjazxici8+CisgICAgdGhhdCB0aGVyZSBhcmUgbm8gb3NjaWxsYXRpb25zIGR1ZSB0
byBqYXZhc2NyaXB0PGJyLz4KKyAgICBicmllZmx5IGluY3JlYXNpbmcgdGhlIGZvbnQgc2l6ZSBv
ZiBhPGJyLz4KKyAgICBzbWFsbCBwYXJhZ3JhcGggYmVsb3cuCis8L2Rpdj4KKzxkaXYgaWQ9InNp
emVjaGFuZ2luZyI+CisgICAgVGhpcyB0ZXh0IGNoYW5nZXMgc2l6ZSB1c2luZyBqYXZhc2NyaXB0
IGJlbG93LgorPC9kaXY+CisKKzxzY3JpcHQ+CitlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInNpemVjaGFuZ2luZyIpOworaWYoZWxlbWVudC5vZmZzZXRIZWlnaHQpeworICAgIC8v
IGZvcmNlIGxheW91dCAodG8gY29tcHV0YXRpb24gb2Ygb2Zmc2V0SGVpZ2h0IHRyaWdnZXJzIHJl
ZmxvdykKK30KK2VsZW1lbnQuY2xhc3NOYW1lPSdsYXJnZXJzaXplJzsKK2lmKGVsZW1lbnQub2Zm
c2V0SGVpZ2h0KXt9CitlbGVtZW50LmNsYXNzTmFtZT0nJzsKK2lmKGVsZW1lbnQub2Zmc2V0SGVp
Z2h0KXt9Cis8L3NjcmlwdD4KKzxub3NjcmlwdD5mYWlsIChubyBzdXBwb3J0IGZvciBqYXZhc2Ny
aXB0KTwvbm9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188118</attachid>
            <date>2013-02-13 10:44:21 -0800</date>
            <delta_ts>2013-02-15 10:01:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108205-20130213184049.patch</filename>
            <type>text/plain</type>
            <size>15172</size>
            <attacher>timvolodine</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNzMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTc2MGNhOTU1ZTg2YWQ1
NTgxMDkzN2RhNTlkMWE3ODhlNTUwNTQwOS4uM2I3ZGEyYzI4MjdkODBhNWMzMzM3YWY5ODgxMzEy
MWEzYzc4MTM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEzLTAyLTEzICBUaW0g
Vm9sb2RpbmUgIDx0aW12b2xvZGluZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGV4dCBBdXRv
c2l6aW5nOiBwcmV2ZW50IG9zY2lsbGF0aW9uIG9mIGZvbnQgc2l6ZXMgZHVyaW5nIGF1dG9zaXpp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODIw
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9uIHNv
bWUgd2Vic2l0ZXMgZm9udCBzaXplcyBhcHBlYXIgdG8gb3NjaWxsYXRlIG9yIGdyb3cgdmVyeSBs
YXJnZSBkdWUgdG8KKyAgICAgICAgYXV0b3NpemluZy4gVG8gcHJldmVudCB0aGlzIHdlIGRvbid0
IGFsbG93IHRoZSBhdXRvc2l6aW5nIG11bHRpcGxpZXIgdG8gY2hhbmdlCisgICAgICAgIG9uY2Ug
aXQgaXMgc2V0LiBIb3dldmVyIGZvciBzb21lIHdlYnBhZ2VzIHRvIGFsbG93IGZvciBjb3JyZWN0
IHJlbmRlcmluZyBvZiB0aGUKKyAgICAgICAgY29tcGxldGUgcGFnZSB0aGUgbXVsdGlwbGllcnMg
bmVlZCB0byBiZSByZWNvbXB1dGVkIG9uY2Ugd2UgaGF2ZQorICAgICAgICBhIGNvbXBsZXRlIHJl
bmRlcnRyZWUgYmVjYXVzZSB0aGUgbGF5b3V0IGNvdWxkIGhhdmUgY2hhbmdlZCBpbiB0aGUgZW5k
LgorICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgYW4gYXBwcm9hY2ggdG8gcmVjb21wdXRl
IHRoZSBhdXRvc2l6aW5nIG11bHRpcGxpZXJzIG9ubHkKKyAgICAgICAgd2hlbiBpdCBpcyBuZWNl
c3NhcnksIHdpdGhvdXQgY29tcHJvbWlzaW5nIHRoZSBwZXJmb3JtYW5jZS4KKworICAgICAgICBU
ZXN0OiBmYXN0L3RleHQtYXV0b3NpemluZy9vc2NpbGxhdGlvbi1qYXZhc2NyaXB0LWZvbnRzaXpl
LWNoYW5nZS5odG1sCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnNldFJlYWR5U3RhdGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5o
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpsYXlvdXQpOgorICAgICAgICAqIHBhZ2UvU2V0dGlu
Z3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnNldFRleHRBdXRvc2l6aW5nRm9u
dFNjYWxlRmFjdG9yKToKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0QXV0b3NpemVyOjpUZXh0QXV0b3NpemVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OnJlY2FsY3VsYXRlTXVsdGlwbGllcnMpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0QXV0b3NpemVyOjppc09zY2lsbGF0
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OnNldFNob3VsZFJlY2FsY3Vs
YXRlTXVsdGlwbGllcnNJZk9zY2lsbGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRv
c2l6ZXI6OnNob3VsZFJlY2FsY3VsYXRlTXVsdGlwbGllcnNJZk9zY2lsbGF0aW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OnByb2Nlc3NTdWJ0cmVlKToKKyAgICAgICAgKFdl
YkNvcmU6OlRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDb250YWluZXIpOgorICAgICAgICAqIHJlbmRl
cmluZy9UZXh0QXV0b3NpemVyLmg6CisgICAgICAgIChUZXh0QXV0b3NpemVyKToKKwogMjAxMy0w
MS0yNCAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJF
R1JFU1NJT04oMTQwNTcxKTogQ3Jhc2ggaW4gU2Nyb2xsaW5nQ29vcmRpbmF0b3I6Om1haW5UaHJl
YWRTY3JvbGxpbmdSZWFzb25zIGR1cmluZyBGcmFtZTo6Y3JlYXRlVmlldwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCA1ZGNhNmYwMGE2NzAwOGYyNTMwOTZjYjhjMjcyMjMwZjI3YTIxN2Fl
Li5lNDZlOTUzNDg2ZjhlMWMzNTgzNjU3Mzk1YTk1OWU3Njc2NTEwZDRkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAyLTEzICBUaW0gVm9sb2RpbmUg
IDx0aW12b2xvZGluZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGV4dCBBdXRvc2l6aW5nOiBw
cmV2ZW50IG9zY2lsbGF0aW9uIG9mIGZvbnQgc2l6ZXMgZHVyaW5nIGF1dG9zaXppbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODIwNQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvcmNlcyByZWNvbXB1
dGF0aW9uIG9mIHRleHQgYXV0b3NpemluZyBtdWx0aXBsaWVycyB3aGVuIGRldmljZSBzY3JlZW4g
b3JpZW50YXRpb24KKyAgICAgICAgb2NjdXJzLgorCisgICAgICAgICogc3JjL1dlYlZpZXdJbXBs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnJlc2l6ZSk6CisKIDIwMTMtMDEt
MjQgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hy
b21pdW1dIE51bGwgY2hlY2sgV2ViTGF5ZXJUcmVlVmlldyBiZWZvcmUgZGVyZWZmaW5nIGluIFdl
YlZpZXdJbXBsOjppbnZhbGlkYXRlUmVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYWFm
MTFhMzI1NWQ1NzQ4MTNkYWVlZmYzMDU1NzRiZDZiNDg1OWM2Zi4uM2Y0NWYxNWYyYWI5YTc3ZWY1
YTk2Y2ZjZmVhNTY3MTJiZjUzNWU1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMTg4
LDkgKzExODgsMjIgQEAgdm9pZCBEb2N1bWVudDo6c2V0UmVhZHlTdGF0ZShSZWFkeVN0YXRlIHJl
YWR5U3RhdGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorI2lmIEVOQUJMRShURVhUX0FVVE9T
SVpJTkcpCisgICAgLy8gVE9ETzogbm90IHN1cmUgaWYgdGhlIHtJbnRlcmFjdGl2ZSAtPiBDb21w
bGV0ZX0gdHJhbnNpdGlvbiBuZWVkcyB0byBiZSBhZGRlZCBoZXJlCisgICAgYm9vbCBzdGF0ZUZv
ckF1dG9zaXppbmdDaGFuZ2VkID0gKG1fcmVhZHlTdGF0ZSA9PSBMb2FkaW5nICYmIHJlYWR5U3Rh
dGUgPT0gQ29tcGxldGUpCisgICAgICAgIHx8IChtX3JlYWR5U3RhdGUgPT0gTG9hZGluZyAmJiBy
ZWFkeVN0YXRlID09IEludGVyYWN0aXZlKTsKKyAgICBpZiAoc3RhdGVGb3JBdXRvc2l6aW5nQ2hh
bmdlZCkgeworICAgICAgICB0ZXh0QXV0b3NpemVyKCktPnNldFNob3VsZFJlY2FsY3VsYXRlTXVs
dGlwbGllcnNJZk9zY2lsbGF0aW5nKHRydWUpOworICAgICAgICBpZiAodGV4dEF1dG9zaXplcigp
LT5pc09zY2lsbGF0aW5nKCkpIHsKKyAgICAgICAgICAgIHJlbmRlcmVyKCktPnNldE5lZWRzTGF5
b3V0KHRydWUpOworICAgICAgICAgICAgdXBkYXRlTGF5b3V0KCk7CisgICAgICAgIH0KKyAgICB9
CisjZW5kaWYKKwogICAgIG1fcmVhZHlTdGF0ZSA9IHJlYWR5U3RhdGU7CiAgICAgZGlzcGF0Y2hF
dmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5yZWFkeXN0YXRlY2hhbmdlRXZlbnQsIGZh
bHNlLCBmYWxzZSkpOwotICAgIAorCiAgICAgaWYgKHNldHRpbmdzKCkgJiYgc2V0dGluZ3MoKS0+
c3VwcHJlc3Nlc0luY3JlbWVudGFsUmVuZGVyaW5nKCkpCiAgICAgICAgIHNldFZpc3VhbFVwZGF0
ZXNBbGxvd2VkKHJlYWR5U3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAwYjJiZGQ3
ZTI4ZjZjZDFkMTU0YzEyM2M0ZDdhNmIyZTYwNGNmOTkzLi43MTRkODQ3MjVhOTdiOTU2OGI5NTAx
M2UzNjcwYjk1YmQyOTIwZDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNTUsNiArNTUsMTEg
QEAKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+
CiAKKyNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQorI2luY2x1ZGUgIlRleHRBdXRvc2l6ZXIu
aCIKKyNlbmRpZgorCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQVhPYmplY3RDYWNo
ZTsKQEAgLTE3OCwxMCArMTgzLDYgQEAgY2xhc3MgTWljcm9EYXRhSXRlbUxpc3Q7CiBjbGFzcyBQ
cmVyZW5kZXJlcjsKICNlbmRpZgogCi0jaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKLWNsYXNz
IFRleHRBdXRvc2l6ZXI7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShDU1BfTkVYVCkKIGNsYXNzIERP
TVNlY3VyaXR5UG9saWN5OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXgg
ZWJmZTFjODFkY2MzOTMwZDQ3ZGQ4NWY1ZTQ1NWFiMjA2ZDA2YjBhZi4uOTI0NWFkYTFiNDA1YmU0
MDcxODkxZTdiMjkzNDAwOGJjZjQ0ZjMzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApA
QCAtMTIxMyw2ICsxMjEzLDE0IEBAIHZvaWQgRnJhbWVWaWV3OjpsYXlvdXQoYm9vbCBhbGxvd1N1
YnRyZWUpCiAgICAgICAgICAgICByb290LT5sYXlvdXQoKTsKICNpZiBFTkFCTEUoVEVYVF9BVVRP
U0laSU5HKQogICAgICAgICAgICAgYm9vbCBhdXRvc2l6ZWQgPSBkb2N1bWVudC0+dGV4dEF1dG9z
aXplcigpLT5wcm9jZXNzU3VidHJlZShyb290KTsKKyAgICAgICAgICAgIGlmIChkb2N1bWVudC0+
dGV4dEF1dG9zaXplcigpLT5pc09zY2lsbGF0aW5nKCkKKyAgICAgICAgICAgICAgICAmJiBkb2N1
bWVudC0+dGV4dEF1dG9zaXplcigpLT5zaG91bGRSZWNhbGN1bGF0ZU11bHRpcGxpZXJzSWZPc2Np
bGxhdGluZygpKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQtPnRleHRBdXRvc2l6ZXIoKS0+
cmVjYWxjdWxhdGVNdWx0aXBsaWVycygpOworICAgICAgICAgICAgICAgIHJvb3QtPmxheW91dCgp
OworICAgICAgICAgICAgICAgIGF1dG9zaXplZCA9IGRvY3VtZW50LT50ZXh0QXV0b3NpemVyKCkt
PnByb2Nlc3NTdWJ0cmVlKHJvb3QpOworICAgICAgICAgICAgICAgIGRvY3VtZW50LT50ZXh0QXV0
b3NpemVyKCktPnNldFNob3VsZFJlY2FsY3VsYXRlTXVsdGlwbGllcnNJZk9zY2lsbGF0aW5nKGZh
bHNlKTsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgaWYgKGF1dG9zaXplZCAmJiByb290
LT5uZWVkc0xheW91dCgpKQogICAgICAgICAgICAgICAgIHJvb3QtPmxheW91dCgpOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IDdmZjdhOTYwNWI4NmMzZDliZGNlYTA1OGM0
NjIwMTA0NGY5OTQ3MWYuLjg1M2M2ZjVmODhjNDg2NjUxMDdlMWYwNDY0MDQ2YmUwMjRlMTIxOTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC0zNjAsNiArMzYwLDEwIEBAIHZvaWQgU2V0
dGluZ3M6OnNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKGNvbnN0IEludFNpemUm
IHRleHRBdXRvc2l6aW5nCiB2b2lkIFNldHRpbmdzOjpzZXRUZXh0QXV0b3NpemluZ0ZvbnRTY2Fs
ZUZhY3RvcihmbG9hdCBmb250U2NhbGVGYWN0b3IpCiB7CiAgICAgbV90ZXh0QXV0b3NpemluZ0Zv
bnRTY2FsZUZhY3RvciA9IGZvbnRTY2FsZUZhY3RvcjsKKyAgICAvLyBUT0RPOiBJIHdvbmRlciBp
ZiB0aGlzIG5lZWRzIHRvIHRyYXZlcnNlIGZyYW1lcyBsaWtlIGluIFdlYlZpZXdJbXBsOjpyZXNp
emUsIG9yIHdoZXRoZXIgdGhlcmUgaXMgb25seSBvbmUgZG9jdW1lbnQgcGVyIFNldHRpbmdzIGlu
c3RhbmNlPworICAgIGZvciAoRnJhbWUqIGZyYW1lID0gbV9wYWdlLT5tYWluRnJhbWUoKTsgZnJh
bWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpCisgICAgICAgIGZyYW1l
LT5kb2N1bWVudCgpLT50ZXh0QXV0b3NpemVyKCktPnJlY2FsY3VsYXRlTXVsdGlwbGllcnMoKTsK
KwogICAgIG1fcGFnZS0+c2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzKCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcAppbmRleCBiMThiNzAyYjUx
YjJkMWZjMDk4OGUzZWVkMzhiNjJlM2FiZDUzNDQ5Li40YjFlODQxOWY4Y2JkYjgwYzg5Yzg5NTIx
Y2RkZDNiNGE3NDczNDZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4
dEF1dG9zaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6
ZXIuY3BwCkBAIC02MSw3ICs2MSw3IEBAIHN0YXRpYyBjb25zdCBWZWN0b3I8UXVhbGlmaWVkTmFt
ZT4mIGZvcm1JbnB1dFRhZ3MoKQogfQogCiBUZXh0QXV0b3NpemVyOjpUZXh0QXV0b3NpemVyKERv
Y3VtZW50KiBkb2N1bWVudCkKLSAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCisgICAgOiBtX2Rv
Y3VtZW50KGRvY3VtZW50KSwgbV9pc09zY2lsbGF0aW5nKGZhbHNlKSwgbV9zaG91bGRSZWNhbGN1
bGF0ZU11bHRpcGxpZXJzKGZhbHNlKQogewogfQogCkBAIC02OSw4ICs2OSwzNCBAQCBUZXh0QXV0
b3NpemVyOjp+VGV4dEF1dG9zaXplcigpCiB7CiB9CiAKK3ZvaWQgVGV4dEF1dG9zaXplcjo6cmVj
YWxjdWxhdGVNdWx0aXBsaWVycygpCit7CisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG1f
ZG9jdW1lbnQtPnJlbmRlcmVyKCk7CisgICAgd2hpbGUgKHJlbmRlcmVyKSB7CisgICAgICAgIGlm
IChyZW5kZXJlci0+c3R5bGUoKSkKKyAgICAgICAgICAgIHNldE11bHRpcGxpZXIocmVuZGVyZXIs
IDEpOworICAgICAgICByZW5kZXJlciA9IHJlbmRlcmVyLT5uZXh0SW5QcmVPcmRlcigpOworICAg
IH0KK30KKworYm9vbCBUZXh0QXV0b3NpemVyOjppc09zY2lsbGF0aW5nKCkKK3sKKyAgICByZXR1
cm4gbV9pc09zY2lsbGF0aW5nOworfQorCit2b2lkIFRleHRBdXRvc2l6ZXI6OnNldFNob3VsZFJl
Y2FsY3VsYXRlTXVsdGlwbGllcnNJZk9zY2lsbGF0aW5nKGJvb2wgdmFsdWUpCit7CisgICAgbV9z
aG91bGRSZWNhbGN1bGF0ZU11bHRpcGxpZXJzID0gdmFsdWU7Cit9CisKK2Jvb2wgVGV4dEF1dG9z
aXplcjo6c2hvdWxkUmVjYWxjdWxhdGVNdWx0aXBsaWVyc0lmT3NjaWxsYXRpbmcoKQoreworICAg
IHJldHVybiBtX3Nob3VsZFJlY2FsY3VsYXRlTXVsdGlwbGllcnM7Cit9CisKIGJvb2wgVGV4dEF1
dG9zaXplcjo6cHJvY2Vzc1N1YnRyZWUoUmVuZGVyT2JqZWN0KiBsYXlvdXRSb290KQogeworICAg
IG1faXNPc2NpbGxhdGluZyA9IGZhbHNlOwogICAgIC8vIEZJWE1FOiBUZXh0IEF1dG9zaXppbmcg
c2hvdWxkIG9ubHkgYmUgZW5hYmxlZCB3aGVuIG1fZG9jdW1lbnQtPnBhZ2UoKS0+bWFpbkZyYW1l
KCktPnZpZXcoKS0+dXNlRml4ZWRMYXlvdXQoKQogICAgIC8vIGlzIHRydWUsIGJ1dCBmb3Igbm93
IGl0J3MgdXNlZnVsIHRvIGlnbm9yZSB0aGlzIHNvIHRoYXQgaXQgY2FuIGJlIHRlc3RlZCBvbiBk
ZXNrdG9wLgogICAgIGlmICghbV9kb2N1bWVudC0+c2V0dGluZ3MoKSB8fCAhbV9kb2N1bWVudC0+
c2V0dGluZ3MoKS0+dGV4dEF1dG9zaXppbmdFbmFibGVkKCkgfHwgbGF5b3V0Um9vdC0+dmlldygp
LT5wcmludGluZygpIHx8ICFtX2RvY3VtZW50LT5wYWdlKCkpCkBAIC0xMDcsNiArMTMzLDcgQEAg
Ym9vbCBUZXh0QXV0b3NpemVyOjpwcm9jZXNzU3VidHJlZShSZW5kZXJPYmplY3QqIGxheW91dFJv
b3QpCiAgICAgICAgIGNsdXN0ZXIgPSBjbHVzdGVyLT5jb250YWluaW5nQmxvY2soKTsKIAogICAg
IHByb2Nlc3NDbHVzdGVyKGNsdXN0ZXIsIGNvbnRhaW5lciwgbGF5b3V0Um9vdCwgd2luZG93SW5m
byk7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTQ0LDcgKzE3MSw5IEBAIHZvaWQgVGV4
dEF1dG9zaXplcjo6cHJvY2Vzc0NvbnRhaW5lcihmbG9hdCBtdWx0aXBsaWVyLCBSZW5kZXJCbG9j
ayogY29udGFpbmVyLCBjCiAgICAgUmVuZGVyT2JqZWN0KiBkZXNjZW5kYW50ID0gbmV4dEluUHJl
T3JkZXJTa2lwcGluZ0Rlc2NlbmRhbnRzT2ZDb250YWluZXJzKHN1YnRyZWVSb290LCBzdWJ0cmVl
Um9vdCk7CiAgICAgd2hpbGUgKGRlc2NlbmRhbnQpIHsKICAgICAgICAgaWYgKGRlc2NlbmRhbnQt
PmlzVGV4dCgpKSB7Ci0gICAgICAgICAgICBpZiAobG9jYWxNdWx0aXBsaWVyICE9IGRlc2NlbmRh
bnQtPnN0eWxlKCktPnRleHRBdXRvc2l6aW5nTXVsdGlwbGllcigpKSB7CisgICAgICAgICAgICBm
bG9hdCBkZXNjZW5kYW50TXVsdGlwbGllciA9IGRlc2NlbmRhbnQtPnN0eWxlKCktPnRleHRBdXRv
c2l6aW5nTXVsdGlwbGllcigpOworICAgICAgICAgICAgbV9pc09zY2lsbGF0aW5nIHw9IChkZXNj
ZW5kYW50TXVsdGlwbGllciAhPSAxICYmIGxvY2FsTXVsdGlwbGllciAhPSBkZXNjZW5kYW50TXVs
dGlwbGllcik7CisgICAgICAgICAgICBpZiAobG9jYWxNdWx0aXBsaWVyID4gMSAmJiBkZXNjZW5k
YW50TXVsdGlwbGllciA9PSAxKSB7CiAgICAgICAgICAgICAgICAgc2V0TXVsdGlwbGllcihkZXNj
ZW5kYW50LCBsb2NhbE11bHRpcGxpZXIpOwogICAgICAgICAgICAgICAgIHNldE11bHRpcGxpZXIo
ZGVzY2VuZGFudC0+cGFyZW50KCksIGxvY2FsTXVsdGlwbGllcik7IC8vIFBhcmVudCBkb2VzIGxp
bmUgc3BhY2luZy4KICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9UZXh0QXV0b3NpemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1
dG9zaXplci5oCmluZGV4IGUxYzIyYWViOWRiM2JjOTljOGI3M2UxYjA2ODljNGY2YTE3MDZjZmEu
Ljc0YjgwMDI1MTQ5NzU4MDM0NzA3MWU5YzhhZTJiNDNjMmFmMzJiNTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuaApAQCAtNTAsNiArNTAsMTEgQEAgcHVibGljOgog
CiAgICAgYm9vbCBwcm9jZXNzU3VidHJlZShSZW5kZXJPYmplY3QqIGxheW91dFJvb3QpOwogCisg
ICAgdm9pZCByZWNhbGN1bGF0ZU11bHRpcGxpZXJzKCk7CisgICAgYm9vbCBpc09zY2lsbGF0aW5n
KCk7CisgICAgYm9vbCBzaG91bGRSZWNhbGN1bGF0ZU11bHRpcGxpZXJzSWZPc2NpbGxhdGluZygp
OworICAgIHZvaWQgc2V0U2hvdWxkUmVjYWxjdWxhdGVNdWx0aXBsaWVyc0lmT3NjaWxsYXRpbmco
Ym9vbCB2YWx1ZSk7CisKICAgICBzdGF0aWMgZmxvYXQgY29tcHV0ZUF1dG9zaXplZEZvbnRTaXpl
KGZsb2F0IHNwZWNpZmllZFNpemUsIGZsb2F0IG11bHRpcGxpZXIpOwogCiBwcml2YXRlOgpAQCAt
ODYsNiArOTEsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBSZW5kZXJPYmplY3QqIGZp
bmRGaXJzdFRleHRMZWFmTm90SW5DbHVzdGVyKGNvbnN0IFJlbmRlck9iamVjdCosIHNpemVfdCYg
ZGVwdGgsIFRyYXZlcnNhbERpcmVjdGlvbik7CiAKICAgICBEb2N1bWVudCogbV9kb2N1bWVudDsK
KyAgICBib29sIG1faXNPc2NpbGxhdGluZzsKKyAgICBib29sIG1fc2hvdWxkUmVjYWxjdWxhdGVN
dWx0aXBsaWVyczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA3ZWI4ZWE3ZGEzMzg3MmZjOTdiNDhk
Njc0ZTAzZjEzZjY2NmJlYjkyLi4yYjgwZmJkYjQxMjYwYmE5MWZjOWE1YzFhMGIzMzI2MTJiODBi
YTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0x
NjMxLDYgKzE2MzEsMTQgQEAgdm9pZCBXZWJWaWV3SW1wbDo6cmVzaXplKGNvbnN0IFdlYlNpemUm
IG5ld1NpemUpCiAgICAgbV9wYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmRpc3BhdGNoVmlld3Bv
cnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKHZpZXdwb3J0QXJndW1lbnRzKTsKICNlbmRpZgogCisjaWYg
RU5BQkxFKFRFWFRfQVVUT1NJWklORykKKyAgICAvLyBBdXRvc2l6ZWQgZm9udCBzaXplcyBkZXBl
bmQgb24gdGhlIHdpZHRoIG9mIHRoZSB2aWV3aW5nIGFyZWEuCisgICAgaWYgKG5ld1NpemUud2lk
dGggIT0gb2xkU2l6ZS53aWR0aCAmJiBtX3BhZ2UtPnNldHRpbmdzKCktPnRleHRBdXRvc2l6aW5n
RW5hYmxlZCgpKSB7CisgICAgICAgIGZvciAoRnJhbWUqIGZyYW1lID0gbV9wYWdlLT5tYWluRnJh
bWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpCisgICAg
ICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+dGV4dEF1dG9zaXplcigpLT5yZWNhbGN1bGF0ZU11
bHRpcGxpZXJzKCk7CisgICAgfQorI2VuZGlmCisKICAgICBXZWJEZXZUb29sc0FnZW50UHJpdmF0
ZSogYWdlbnRQcml2YXRlID0gZGV2VG9vbHNBZ2VudFByaXZhdGUoKTsKICAgICBpZiAoYWdlbnRQ
cml2YXRlKQogICAgICAgICBhZ2VudFByaXZhdGUtPndlYlZpZXdSZXNpemVkKG5ld1NpemUpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDBkZmZkNzY1ZTg3YjljMTUzZjA1MDYxMTZhNTE1OTQxM2MxMmEyMjAuLjk5ZmMxZTNm
ZjAzOTVlZWY0YjQ0NGYxYjQ5NTBlNDJkMTUyNzg2ZGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxMy0wMi0xMyAgVGltIFZvbG9kaW5lICA8dGltdm9sb2RpbmVAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFRleHQgQXV0b3NpemluZzogcHJldmVudCBvc2NpbGxhdGlvbiBvZiBmb250IHNpemVz
IGR1cmluZyBhdXRvc2l6aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDgyMDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL29zY2lsbGF0aW9uLWphdmFzY3JpcHQt
Zm9udHNpemUtY2hhbmdlLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4
dC1hdXRvc2l6aW5nL29zY2lsbGF0aW9uLWphdmFzY3JpcHQtZm9udHNpemUtY2hhbmdlLmh0bWw6
IEFkZGVkLgorCiAyMDEzLTAxLTI0ICBFbWlsIEEgRWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbc3ZnXSBSZW1vdmUgdW5uZWNlc3Nhcnkgcm91bmRpbmcgaW4gU1ZHUm9vdElu
bGluZUJveDo6bGF5b3V0Um9vdEJveApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
LWF1dG9zaXppbmcvb3NjaWxsYXRpb24tamF2YXNjcmlwdC1mb250c2l6ZS1jaGFuZ2UtZXhwZWN0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL29zY2lsbGF0aW9uLWph
dmFzY3JpcHQtZm9udHNpemUtY2hhbmdlLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDRhNzk0
NmM0MDE3Mzg1OTdjODc5OGU0OWVkMzAwMDZjZmEyMzEyNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL29zY2lsbGF0aW9uLWphdmFzY3JpcHQtZm9u
dHNpemUtY2hhbmdlLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbCBzdHlsZT0iZm9udC1zaXplOiAxNnB4Ij4KKzxoZWFkPgorCis8bWV0YSBuYW1l
PSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4KKzxzdHlsZT4KKyAgYm9keSB7CisgICAg
d2lkdGg6IDgwMHB4OworICAgIG1hcmdpbjogMDsKKyAgICBvdmVyZmxvdy15OiBoaWRkZW47Cisg
IH0KKzwvc3R5bGU+CisKKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2IHN0eWxlPSJ0b3A6NTBweDtw
b3NpdGlvbjphYnNvbHV0ZTtmb250LXNpemU6MTkuOHB4Ij4KKyAgICAuIC4gLiAuIC4gLiAuIC4g
LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu
IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC48YnIvPgorICAgIFRoaXMgcGFyYWdyYXBoIHNob3Vs
ZCBiZSBhdXRvc2l6ZWQgdG8gMTkuOHB4PGJyLz4KKyAgICBiZWNhdXNlIGl0IGNvbnRhaW5zIGxp
bmUgYnJlYWtzLjxici8+CisgICAgVGhpcyB0ZXN0IGlzIGludGVuZGVkIHRvIGNoZWNrPGJyLz4K
KyAgICB0aGF0IHRoZXJlIGFyZSBubyBvc2NpbGxhdGlvbnMgZHVlIHRvIGphdmFzY3JpcHQ8YnIv
PgorICAgIGJyaWVmbHkgaW5jcmVhc2luZyB0aGUgZm9udCBzaXplIG9mIGE8YnIvPgorICAgIHNt
YWxsIHBhcmFncmFwaCBiZWxvdy4KKzwvZGl2PgorPGRpdiBpZD0ic2l6ZWNoYW5naW5nIj4KKyAg
ICBUaGlzIHRleHQgY2hhbmdlcyBzaXplIHVzaW5nIGphdmFzY3JpcHQgYmVsb3cuCis8L2Rpdj4K
KworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1
dG9zaXppbmcvb3NjaWxsYXRpb24tamF2YXNjcmlwdC1mb250c2l6ZS1jaGFuZ2UuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL29zY2lsbGF0aW9uLWphdmFzY3JpcHQtZm9u
dHNpemUtY2hhbmdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQ3ZjgwZmFiZWNhYjgyMWRiNWIxMmIyZGFk
NzYzMWVjOTg2ZDY3MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1h
dXRvc2l6aW5nL29zY2lsbGF0aW9uLWphdmFzY3JpcHQtZm9udHNpemUtY2hhbmdlLmh0bWwKQEAg
LTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBzdHlsZT0iZm9udC1zaXplOiAx
NnB4Ij4KKzxoZWFkPgorCis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAw
Ij4KKzxzdHlsZT4KKyAgYm9keSB7CisgICAgd2lkdGg6IDgwMHB4OworICAgIG1hcmdpbjogMDsK
KyAgICBvdmVyZmxvdy15OiBoaWRkZW47CisgIH0KKyAgLmxhcmdlcnNpemV7Zm9udC1zaXplOiAx
LjFlbX0KKzwvc3R5bGU+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykgeworICAg
IHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGV4dEF1dG9zaXppbmdFbmFibGVkKHRydWUp
OworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGV4dEF1dG9zaXppbmdXaW5kb3dT
aXplT3ZlcnJpZGUoMzIwLCA0ODApOworfSBlbHNlIGlmICh3aW5kb3cuY29uc29sZSAmJiBjb25z
b2xlLndhcm4pIHsKKyAgICBjb25zb2xlLndhcm4oIlRoaXMgdGVzdCBkZXBlbmRzIG9uIHRoZSBU
ZXh0IEF1dG9zaXppbmcgc2V0dGluZyBiZWluZyB0cnVlLCBzbyBydW4gaXQgaW4gRHVtcFJlbmRl
clRyZWUsIG9yIG1hbnVhbGx5IGVuYWJsZSBUZXh0IEF1dG9zaXppbmcsIGFuZCBlaXRoZXIgdXNl
IGEgbW9iaWxlIGRldmljZSB3aXRoIDMyMHB4IGRldmljZS13aWR0aCAobGlrZSBOZXh1cyBTIG9y
IGlQaG9uZSksIG9yIGRlZmluZSBIQUNLX0ZPUkNFX1RFWFRfQVVUT1NJWklOR19PTl9ERVNLVE9Q
LiIpOworfQorPC9zY3JpcHQ+CisKKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2IHN0eWxlPSJ0b3A6
NTBweDtwb3NpdGlvbjphYnNvbHV0ZTsiPgorICAgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g
LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu
IC4gLiAuIC4gLiAuIC4gLjxici8+CisgICAgVGhpcyBwYXJhZ3JhcGggc2hvdWxkIGJlIGF1dG9z
aXplZCB0byAxOS44cHg8YnIvPgorICAgIGJlY2F1c2UgaXQgY29udGFpbnMgbGluZSBicmVha3Mu
PGJyLz4KKyAgICBUaGlzIHRlc3QgaXMgaW50ZW5kZWQgdG8gY2hlY2s8YnIvPgorICAgIHRoYXQg
dGhlcmUgYXJlIG5vIG9zY2lsbGF0aW9ucyBkdWUgdG8gamF2YXNjcmlwdDxici8+CisgICAgYnJp
ZWZseSBpbmNyZWFzaW5nIHRoZSBmb250IHNpemUgb2YgYTxici8+CisgICAgc21hbGwgcGFyYWdy
YXBoIGJlbG93LgorPC9kaXY+Cis8ZGl2IGlkPSJzaXplY2hhbmdpbmciPgorICAgIFRoaXMgdGV4
dCBjaGFuZ2VzIHNpemUgdXNpbmcgamF2YXNjcmlwdCBiZWxvdy4KKzwvZGl2PgorCis8c2NyaXB0
PgorZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaXplY2hhbmdpbmciKTsKK2lm
KGVsZW1lbnQub2Zmc2V0SGVpZ2h0KXsKKyAgICAvLyBmb3JjZSBsYXlvdXQgKHRvIGNvbXB1dGF0
aW9uIG9mIG9mZnNldEhlaWdodCB0cmlnZ2VycyByZWZsb3cpCit9CitlbGVtZW50LmNsYXNzTmFt
ZT0nbGFyZ2Vyc2l6ZSc7CitpZihlbGVtZW50Lm9mZnNldEhlaWdodCl7fQorZWxlbWVudC5jbGFz
c05hbWU9Jyc7CitpZihlbGVtZW50Lm9mZnNldEhlaWdodCl7fQorPC9zY3JpcHQ+Cis8bm9zY3Jp
cHQ+ZmFpbCAobm8gc3VwcG9ydCBmb3IgamF2YXNjcmlwdCk8L25vc2NyaXB0PgorCis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188593</attachid>
            <date>2013-02-15 10:01:30 -0800</date>
            <delta_ts>2013-02-15 12:01:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108205-20130215175756.patch</filename>
            <type>text/plain</type>
            <size>21188</size>
            <attacher>timvolodine</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyOTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDkzZTVlNWE2MTdhN2U0
M2MyZGM2YTViNDBiMGE3ZWZmNDY5MGIyNy4uMjQ4ZjkxNjQ1MjA2OTNmMTg4OWVjODZjNjg1ZjIy
Y2Q0YTM4Y2U2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTAyLTE1ICBUaW0g
Vm9sb2RpbmUgIDx0aW12b2xvZGluZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGV4dCBBdXRv
c2l6aW5nOiBwcmV2ZW50IG9zY2lsbGF0aW9uIG9mIGZvbnQgc2l6ZXMgZHVyaW5nIGF1dG9zaXpp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODIw
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9uIHNv
bWUgd2Vic2l0ZXMgZm9udCBzaXplcyBhcHBlYXIgdG8gb3NjaWxsYXRlIG9yIGdyb3cgdmVyeSBs
YXJnZSBkdWUgdG8KKyAgICAgICAgdGV4dCBhdXRvc2l6aW5nLiBUbyBwcmV2ZW50IHRoaXMgd2Ug
ZG9uJ3QgYWxsb3cgdGhlIGF1dG9zaXppbmcgbXVsdGlwbGllcgorICAgICAgICB0byBjaGFuZ2Ug
b25jZSBpdCBpcyBzZXQuCisKKyAgICAgICAgVGVzdDogZmFzdC90ZXh0LWF1dG9zaXppbmcvb3Nj
aWxsYXRpb24tamF2YXNjcmlwdC1mb250c2l6ZS1jaGFuZ2UuaHRtbAorCisgICAgICAgICogcGFn
ZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0VGV4dEF1dG9z
aXppbmdGb250U2NhbGVGYWN0b3IpOgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0QXV0b3NpemVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OnJlY2FsY3VsYXRlTXVsdGlw
bGllcnMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0QXV0b3Np
emVyOjpwcm9jZXNzQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dEF1dG9zaXpl
ci5oOgorICAgICAgICAoVGV4dEF1dG9zaXplcik6CisKIDIwMTMtMDItMTQgIFl1cnkgU2VtaWto
YXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYWx3
YXlzIHNob3cgbWVtb3J5IHNpemUgaW4gTWIgb24gdGhlIG5hdGl2ZSBtZW1vcnkgZ3JhcGgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggM2I3YjkwOWQ0MTc0ZDAyOGNjNDY4MmIyYjY2NTFl
YmYzOTMzYzM4Zi4uZWNhNjZkOThkZTBkNTlmNzc2MjM4OTcwZjRjYWJiZGEzNTFjOGE4MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMy0wMi0xNSAgVGlt
IFZvbG9kaW5lICA8dGltdm9sb2RpbmVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFRleHQgQXV0
b3NpemluZzogcHJldmVudCBvc2NpbGxhdGlvbiBvZiBmb250IHNpemVzIGR1cmluZyBhdXRvc2l6
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgy
MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUcmln
Z2VyIHJlY2FsY3VsYXRpb24gb2YgdGhlIHRleHQgYXV0b3NpemluZyBtdWx0aXBsaWVycyBpZiB0
aGUgZGV2aWNlCisgICAgICAgIGNoYW5nZXMgb3JpZW50YXRpb24gYW5kIHRoZSByZXNpemUtbWV0
aG9kIGlzIGNhbGxlZC4KKworICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZXNpemUpOgorCiAyMDEzLTAyLTE0ICBWc2V2b2xvZCBW
bGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgY2hyb21p
dW0gdGVzdCBmaXg6IGluY29ycmVjdCBmaWVsZCB3YXMgdXNlZCBmb3IgVUlTb3VyY2VDb2RlIHVy
bC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggZmZjZGEzNDVlNmU0NWQ4ZTA5MTY5MzRh
NDI0ZWQ2NDhhODBjZGRmMi4uNjkwOGViNjBiNTBlM2FkN2IxYjBmN2RjNjliOGViYzUwNTNlMTk0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRl
ICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlN0
b3JhZ2VNYXAuaCIKKyNpbmNsdWRlICJUZXh0QXV0b3NpemVyLmgiCiAjaW5jbHVkZSA8bGltaXRz
PgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpAQCAtMzY0LDYgKzM2NSwxMSBAQCB2b2lkIFNldHRp
bmdzOjpzZXRUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZShjb25zdCBJbnRTaXplJiB0
ZXh0QXV0b3NpemluZwogdm9pZCBTZXR0aW5nczo6c2V0VGV4dEF1dG9zaXppbmdGb250U2NhbGVG
YWN0b3IoZmxvYXQgZm9udFNjYWxlRmFjdG9yKQogewogICAgIG1fdGV4dEF1dG9zaXppbmdGb250
U2NhbGVGYWN0b3IgPSBmb250U2NhbGVGYWN0b3I7CisKKyAgICAvLyBUT0RPOiBJIHdvbmRlciBp
ZiB0aGlzIG5lZWRzIHRvIHRyYXZlcnNlIGZyYW1lcyBsaWtlIGluIFdlYlZpZXdJbXBsOjpyZXNp
emUsIG9yIHdoZXRoZXIgdGhlcmUgaXMgb25seSBvbmUgZG9jdW1lbnQgcGVyIFNldHRpbmdzIGlu
c3RhbmNlPworICAgIGZvciAoRnJhbWUqIGZyYW1lID0gbV9wYWdlLT5tYWluRnJhbWUoKTsgZnJh
bWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpCisgICAgICAgIGZyYW1l
LT5kb2N1bWVudCgpLT50ZXh0QXV0b3NpemVyKCktPnJlY2FsY3VsYXRlTXVsdGlwbGllcnMoKTsK
KwogICAgIG1fcGFnZS0+c2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzKCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcAppbmRleCAzNDI2MzdhYWFi
ZWZhNWMxZGU2MjU0ZWQ2YTAzNzVkOTYxMjM5NzM1Li5hNDIyOTJlOGQ3MmY2NzMzOTVlOWViMjUy
NzYxODYyNWNjZjAxNGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4
dEF1dG9zaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6
ZXIuY3BwCkBAIC05MSw2ICs5MSwxNiBAQCBUZXh0QXV0b3NpemVyOjp+VGV4dEF1dG9zaXplcigp
CiB7CiB9CiAKK3ZvaWQgVGV4dEF1dG9zaXplcjo6cmVjYWxjdWxhdGVNdWx0aXBsaWVycygpCit7
CisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG1fZG9jdW1lbnQtPnJlbmRlcmVyKCk7Cisg
ICAgd2hpbGUgKHJlbmRlcmVyKSB7CisgICAgICAgIGlmIChyZW5kZXJlci0+c3R5bGUoKSkKKyAg
ICAgICAgICAgIHNldE11bHRpcGxpZXIocmVuZGVyZXIsIDEpOworICAgICAgICByZW5kZXJlciA9
IHJlbmRlcmVyLT5uZXh0SW5QcmVPcmRlcigpOworICAgIH0KK30KKwogYm9vbCBUZXh0QXV0b3Np
emVyOjpwcm9jZXNzU3VidHJlZShSZW5kZXJPYmplY3QqIGxheW91dFJvb3QpCiB7CiAgICAgLy8g
RklYTUU6IFRleHQgQXV0b3NpemluZyBzaG91bGQgb25seSBiZSBlbmFibGVkIHdoZW4gbV9kb2N1
bWVudC0+cGFnZSgpLT5tYWluRnJhbWUoKS0+dmlldygpLT51c2VGaXhlZExheW91dCgpCkBAIC0x
ODYsNyArMTk2LDggQEAgdm9pZCBUZXh0QXV0b3NpemVyOjpwcm9jZXNzQ29udGFpbmVyKGZsb2F0
IG11bHRpcGxpZXIsIFJlbmRlckJsb2NrKiBjb250YWluZXIsIFQKICAgICBSZW5kZXJPYmplY3Qq
IGRlc2NlbmRhbnQgPSBuZXh0SW5QcmVPcmRlclNraXBwaW5nRGVzY2VuZGFudHNPZkNvbnRhaW5l
cnMoc3VidHJlZVJvb3QsIHN1YnRyZWVSb290KTsKICAgICB3aGlsZSAoZGVzY2VuZGFudCkgewog
ICAgICAgICBpZiAoZGVzY2VuZGFudC0+aXNUZXh0KCkpIHsKLSAgICAgICAgICAgIGlmIChsb2Nh
bE11bHRpcGxpZXIgIT0gZGVzY2VuZGFudC0+c3R5bGUoKS0+dGV4dEF1dG9zaXppbmdNdWx0aXBs
aWVyKCkpIHsKKyAgICAgICAgICAgIGlmIChsb2NhbE11bHRpcGxpZXIgIT0gZGVzY2VuZGFudC0+
c3R5bGUoKS0+dGV4dEF1dG9zaXppbmdNdWx0aXBsaWVyKCkKKyAgICAgICAgICAgICAgICAmJiBk
ZXNjZW5kYW50LT5zdHlsZSgpLT50ZXh0QXV0b3NpemluZ011bHRpcGxpZXIoKSA9PSAxKSB7CiAg
ICAgICAgICAgICAgICAgc2V0TXVsdGlwbGllcihkZXNjZW5kYW50LCBsb2NhbE11bHRpcGxpZXIp
OwogICAgICAgICAgICAgICAgIHNldE11bHRpcGxpZXIoZGVzY2VuZGFudC0+cGFyZW50KCksIGxv
Y2FsTXVsdGlwbGllcik7IC8vIFBhcmVudCBkb2VzIGxpbmUgc3BhY2luZy4KICAgICAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5oCmluZGV4IDY0OTVhMzAy
YjA4N2U3N2M3ODA4ZWFiMjEzZjM2MmVlYzNmYmJhN2IuLjY5YmY1NTAzZWNmOGU0N2E4ZDY1MjRk
OGFmOWQzMDQxNmU3Y2YzNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9U
ZXh0QXV0b3NpemVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6
ZXIuaApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+VGV4dEF1dG9zaXpl
cigpOwogCiAgICAgYm9vbCBwcm9jZXNzU3VidHJlZShSZW5kZXJPYmplY3QqIGxheW91dFJvb3Qp
OworICAgIHZvaWQgcmVjYWxjdWxhdGVNdWx0aXBsaWVycygpOwogCiAgICAgc3RhdGljIGZsb2F0
IGNvbXB1dGVBdXRvc2l6ZWRGb250U2l6ZShmbG9hdCBzcGVjaWZpZWRTaXplLCBmbG9hdCBtdWx0
aXBsaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmlu
ZGV4IGQ3ZGU4Njk2MjZkZmY3YzZhNzkzMGFlYWUwZDcxMjE3Mzg3ZGQ1MWMuLmZhOTk3OGQxMTJk
MTc1MmM1ZTZlMzFlYzIyZjdlNDIzNDE4YjYzM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTExMSw2ICsxMTEsNyBAQAogI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uQ2xpZW50UHJveHkuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAj
aW5jbHVkZSAiVGV4dC5oIgorI2luY2x1ZGUgIlRleHRBdXRvc2l6ZXIuaCIKICNpbmNsdWRlICJU
ZXh0RmllbGREZWNvcmF0b3JJbXBsLmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5j
bHVkZSAiVGltZXIuaCIKQEAgLTE2NzUsNiArMTY3NiwxNCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpy
ZXNpemUoY29uc3QgV2ViU2l6ZSYgbmV3U2l6ZSkKICAgICBtX3BhZ2UtPmNocm9tZSgpLT5jbGll
bnQoKS0+ZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2Uodmlld3BvcnRBcmd1bWVu
dHMpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQorICAgIC8vIEF1dG9z
aXplZCBmb250IHNpemVzIGRlcGVuZCBvbiB0aGUgd2lkdGggb2YgdGhlIHZpZXdpbmcgYXJlYS4K
KyAgICBpZiAobmV3U2l6ZS53aWR0aCAhPSBvbGRTaXplLndpZHRoICYmIG1fcGFnZS0+c2V0dGlu
Z3MoKS0+dGV4dEF1dG9zaXppbmdFbmFibGVkKCkpIHsKKyAgICAgICAgZm9yIChGcmFtZSogZnJh
bWUgPSBtX3BhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50
cmF2ZXJzZU5leHQoKSkKKyAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT50ZXh0QXV0b3Np
emVyKCktPnJlY2FsY3VsYXRlTXVsdGlwbGllcnMoKTsKKyAgICB9CisjZW5kaWYKKwogICAgIFdl
YkRldlRvb2xzQWdlbnRQcml2YXRlKiBhZ2VudFByaXZhdGUgPSBkZXZUb29sc0FnZW50UHJpdmF0
ZSgpOwogICAgIGlmIChhZ2VudFByaXZhdGUpCiAgICAgICAgIGFnZW50UHJpdmF0ZS0+d2ViVmll
d1Jlc2l6ZWQobmV3U2l6ZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzVjZjUzMTZkMmI4ZmMwOWU3ZTRjY2I5MzIxNjdm
ZGZkMmYyZGRmZS4uMTM3NjM5OGU3YjQ1ZDEyMjE1NDRiMWQ5N2VmMmIyYTgwZDJhNjdiNSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDMzIEBACisyMDEzLTAyLTE1ICBUaW0gVm9sb2RpbmUgIDx0aW12b2xvZGlu
ZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGV4dCBBdXRvc2l6aW5nOiBwcmV2ZW50IG9zY2ls
bGF0aW9uIG9mIGZvbnQgc2l6ZXMgZHVyaW5nIGF1dG9zaXppbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODIwNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZWQgb2xkIHRlc3RzIHRvIGxheW91
dCB3aXRob3V0IHRoZSBzY3JvbGxiYXIgaW5pdGlhbGx5LCBiZWNhdXNlIHRoZQorICAgICAgICBh
dXRvc2l6ZXIgbXVsdGlwbGllciBpcyBmaXhlZCBhbmQgaGVuY2UgbGVzcyBsYXlvdXRzIGFyZSBw
ZXJmb3JtZWQuCisgICAgICAgIEFkZGVkIHNwZWNpZmljIG9zY2lsbGF0aW9uIHRlc3QgdHJpZ2dl
cmVkIGJ5IGphdmFzY3JpcHQuCisKKyAgICAgICAgKiBmYXN0L3RleHQtYXV0b3NpemluZy9jb25z
dHJhaW5lZC1oZWlnaHQtYm9keS1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGZhc3QvdGV4dC1h
dXRvc2l6aW5nL2NvbnN0cmFpbmVkLWhlaWdodC1ib2R5Lmh0bWw6CisgICAgICAgICogZmFzdC90
ZXh0LWF1dG9zaXppbmcvY29uc3RyYWluZWQtdGhlbi1mbG9hdC1hbmNlc3RvcnMtZXhwZWN0ZWQu
aHRtbDoKKyAgICAgICAgKiBmYXN0L3RleHQtYXV0b3NpemluZy9jb25zdHJhaW5lZC10aGVuLWZs
b2F0LWFuY2VzdG9ycy5odG1sOgorICAgICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL2NvbnN0
cmFpbmVkLXRoZW4tcG9zaXRpb24tZml4ZWQtYW5jZXN0b3JzLWV4cGVjdGVkLmh0bWw6CisgICAg
ICAgICogZmFzdC90ZXh0LWF1dG9zaXppbmcvY29uc3RyYWluZWQtdGhlbi1wb3NpdGlvbi1maXhl
ZC1hbmNlc3RvcnMuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RleHQtYXV0b3NpemluZy9uZXN0ZWQt
ZW0tbGluZS1oZWlnaHQtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RleHQtYXV0b3Np
emluZy9uZXN0ZWQtZW0tbGluZS1oZWlnaHQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RleHQtYXV0
b3NpemluZy9vc2NpbGxhdGlvbi1qYXZhc2NyaXB0LWZvbnRzaXplLWNoYW5nZS1leHBlY3RlZC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RleHQtYXV0b3NpemluZy9vc2NpbGxhdGlvbi1q
YXZhc2NyaXB0LWZvbnRzaXplLWNoYW5nZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Rl
eHQtYXV0b3NpemluZy9zaW1wbGUtcGFyYWdyYXBoLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICog
ZmFzdC90ZXh0LWF1dG9zaXppbmcvc2ltcGxlLXBhcmFncmFwaC5odG1sOgorICAgICAgICAqIGZh
c3QvdGV4dC1hdXRvc2l6aW5nL3NwYW4tY2hpbGQtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBm
YXN0L3RleHQtYXV0b3NpemluZy9zcGFuLWNoaWxkLmh0bWw6CisgICAgICAgICogZmFzdC90ZXh0
LWF1dG9zaXppbmcvdW53cmFwcGFibGUtYmxvY2tzLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICog
ZmFzdC90ZXh0LWF1dG9zaXppbmcvdW53cmFwcGFibGUtYmxvY2tzLmh0bWw6CisgICAgICAgICog
ZmFzdC90ZXh0LWF1dG9zaXppbmcvdW53cmFwcGFibGUtaW5saW5lcy1leHBlY3RlZC5odG1sOgor
ICAgICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL3Vud3JhcHBhYmxlLWlubGluZXMuaHRtbDoK
KwogMjAxMy0wMi0xNSAgS3dhbmdZb25nIENob2kgIDxreTAuY2hvaUBzYW1zdW5nLmNvbT4KIAog
ICAgICAgICBbRUZMXSBmYXN0L2Zvcm1zL2lucHV0LXRleHQtc2Nyb2xsLWxlZnQtb24tYmx1ci5o
dG1sIGlzIHBhc3Npbmcgbm93CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0
b3NpemluZy9jb25zdHJhaW5lZC1oZWlnaHQtYm9keS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvY29uc3RyYWluZWQtaGVpZ2h0LWJvZHktZXhwZWN0ZWQu
aHRtbAppbmRleCA1OWExMDgwYzgzNWQyMWJmYWRiMWJlY2EwZjk2YzE1MDVlN2EyMGMyLi5iZTNj
ZDJmMzg2Mjg0YWM4ZmNmYTU3Yjg4MTkzZmJmM2IxNzMxYzNjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9jb25zdHJhaW5lZC1oZWlnaHQtYm9keS1leHBlY3Rl
ZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2NvbnN0cmFpbmVk
LWhlaWdodC1ib2R5LWV4cGVjdGVkLmh0bWwKQEAgLTUsNyArNSw3IEBACiA8bWV0YSBuYW1lPSJ2
aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4KIDxzdHlsZT4KIGh0bWwgeyBmb250LXNpemU6
IDE2cHg7IH0KLWJvZHkgeyB3aWR0aDogODAwcHg7IG1hcmdpbjogMDsgfQorYm9keSB7IHdpZHRo
OiA4MDBweDsgbWFyZ2luOiAwOyBvdmVyZmxvdy15OiBoaWRkZW47IH0KIDwvc3R5bGU+CiAKIDwv
aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2NvbnN0
cmFpbmVkLWhlaWdodC1ib2R5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3Npemlu
Zy9jb25zdHJhaW5lZC1oZWlnaHQtYm9keS5odG1sCmluZGV4IDI2ZWM3MGEyYjkyMDNkM2Q5MjA3
MzAwZDMxZmVjZDk0ZDUwNzc3ODEuLmJjNDFmYmRjNmJmMTJmNzlkNmQ0YmExZmI5YTMzZWYyZjAw
NDZjMzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2NvbnN0
cmFpbmVkLWhlaWdodC1ib2R5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9z
aXppbmcvY29uc3RyYWluZWQtaGVpZ2h0LWJvZHkuaHRtbApAQCAtNSw3ICs1LDcgQEAKIDxtZXRh
IG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04MDAiPgogPHN0eWxlPgogaHRtbCB7IGZv
bnQtc2l6ZTogMTZweDsgfQotYm9keSB7IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAwOyB9Citib2R5
IHsgd2lkdGg6IDgwMHB4OyBtYXJnaW46IDA7IG92ZXJmbG93LXk6IGhpZGRlbjsgfQogPC9zdHls
ZT4KIAogPHNjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6
aW5nL2NvbnN0cmFpbmVkLXRoZW4tZmxvYXQtYW5jZXN0b3JzLWV4cGVjdGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9jb25zdHJhaW5lZC10aGVuLWZsb2F0LWFuY2Vz
dG9ycy1leHBlY3RlZC5odG1sCmluZGV4IDFlNjcxMDczM2VhY2YyYzdjMGEzNGE0OGFkMDI5MWUw
MmZkODE5YzAuLmE3ZTY2MjYxN2E0ZWQ0MzBiZmEyNzVhZTcyZmVkYjg3YzdjNDM4ZjMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2NvbnN0cmFpbmVkLXRoZW4t
ZmxvYXQtYW5jZXN0b3JzLWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
LWF1dG9zaXppbmcvY29uc3RyYWluZWQtdGhlbi1mbG9hdC1hbmNlc3RvcnMtZXhwZWN0ZWQuaHRt
bApAQCAtNSw3ICs1LDcgQEAKIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04
MDAiPgogPHN0eWxlPgogaHRtbCB7IGZvbnQtc2l6ZTogMTZweDsgfQotYm9keSB7IHdpZHRoOiA4
MDBweDsgbWFyZ2luOiAwOyB9Citib2R5IHsgd2lkdGg6IDgwMHB4OyBtYXJnaW46IDA7IG92ZXJm
bG93LXk6IGhpZGRlbjsgfQogPC9zdHlsZT4KIAogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvY29uc3RyYWluZWQtdGhlbi1mbG9hdC1hbmNlc3Rv
cnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2NvbnN0cmFpbmVkLXRo
ZW4tZmxvYXQtYW5jZXN0b3JzLmh0bWwKaW5kZXggODNjOWJiMmYzNjA2MjkwMDBjZjI5ZWUyNDIx
MTNiZDA0MGVjNDhiMC4uYjgyZDE4NTc3OGQ0NmRkMjI3ZTQ3YWZjYmVkN2EzMzA2MzM4M2QxOCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvY29uc3RyYWluZWQt
dGhlbi1mbG9hdC1hbmNlc3RvcnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0
b3NpemluZy9jb25zdHJhaW5lZC10aGVuLWZsb2F0LWFuY2VzdG9ycy5odG1sCkBAIC01LDcgKzUs
NyBAQAogPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPTgwMCI+CiA8c3R5bGU+
CiBodG1sIHsgZm9udC1zaXplOiAxNnB4OyB9Ci1ib2R5IHsgd2lkdGg6IDgwMHB4OyBtYXJnaW46
IDA7IH0KK2JvZHkgeyB3aWR0aDogODAwcHg7IG1hcmdpbjogMDsgb3ZlcmZsb3cteTogaGlkZGVu
OyB9CiA8L3N0eWxlPgogCiA8c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90
ZXh0LWF1dG9zaXppbmcvY29uc3RyYWluZWQtdGhlbi1wb3NpdGlvbi1maXhlZC1hbmNlc3RvcnMt
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2NvbnN0cmFp
bmVkLXRoZW4tcG9zaXRpb24tZml4ZWQtYW5jZXN0b3JzLWV4cGVjdGVkLmh0bWwKaW5kZXggNzgz
YTUxMmE0ZTJmOGIyMjkxNTYxYTNmMWQ4NDQ0ZDU0MWI2YjlhNC4uM2IyNGI0ZTRlYjA1Mjk0MjRm
MzhlMzZmZjljYzQ2NGZkOGU0ODRkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
LWF1dG9zaXppbmcvY29uc3RyYWluZWQtdGhlbi1wb3NpdGlvbi1maXhlZC1hbmNlc3RvcnMtZXhw
ZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9jb25zdHJh
aW5lZC10aGVuLXBvc2l0aW9uLWZpeGVkLWFuY2VzdG9ycy1leHBlY3RlZC5odG1sCkBAIC01LDcg
KzUsNyBAQAogPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPTgwMCI+CiA8c3R5
bGU+CiBodG1sIHsgZm9udC1zaXplOiAxNnB4OyB9Ci1ib2R5IHsgd2lkdGg6IDgwMHB4OyBtYXJn
aW46IDA7IH0KK2JvZHkgeyB3aWR0aDogODAwcHg7IG1hcmdpbjogMDsgb3ZlcmZsb3cteTogaGlk
ZGVuOyB9CiA8L3N0eWxlPgogCiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3RleHQtYXV0b3NpemluZy9jb25zdHJhaW5lZC10aGVuLXBvc2l0aW9uLWZpeGVkLWFuY2VzdG9y
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvY29uc3RyYWluZWQtdGhl
bi1wb3NpdGlvbi1maXhlZC1hbmNlc3RvcnMuaHRtbAppbmRleCAyNGM3N2Q0ZDhkYzdjYjE2ZDc0
ODYxNzUzODk2NTAwMmRmY2RhNWVlLi4wNjM4M2Q1ZDVkNTRlMGNlMjA1ZWE2MmFkODQ1ZjQ0NmZj
N2Q5N2Y3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9jb25z
dHJhaW5lZC10aGVuLXBvc2l0aW9uLWZpeGVkLWFuY2VzdG9ycy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2NvbnN0cmFpbmVkLXRoZW4tcG9zaXRpb24tZml4ZWQt
YW5jZXN0b3JzLmh0bWwKQEAgLTUsNyArNSw3IEBACiA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29u
dGVudD0id2lkdGg9ODAwIj4KIDxzdHlsZT4KIGh0bWwgeyBmb250LXNpemU6IDE2cHg7IH0KLWJv
ZHkgeyB3aWR0aDogODAwcHg7IG1hcmdpbjogMDsgfQorYm9keSB7IHdpZHRoOiA4MDBweDsgbWFy
Z2luOiAwOyBvdmVyZmxvdy15OiBoaWRkZW47IH0KIDwvc3R5bGU+CiAKIDxzY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9uZXN0ZWQtZW0tbGluZS1o
ZWlnaHQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL25l
c3RlZC1lbS1saW5lLWhlaWdodC1leHBlY3RlZC5odG1sCmluZGV4IGNhZmZiNjg0OWNlODM1MTkw
YWIzMGExMTdiMzIxMjg2NjRjMGQ5NjguLjMyNjM4YzQ1YzA5N2JkMThkOWEwMWRhNjczMzM4YzFj
MzhkODM3MmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL25l
c3RlZC1lbS1saW5lLWhlaWdodC1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC1hdXRvc2l6aW5nL25lc3RlZC1lbS1saW5lLWhlaWdodC1leHBlY3RlZC5odG1sCkBAIC01
LDcgKzUsNyBAQAogPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPTgwMCI+CiA8
c3R5bGU+CiBodG1sIHsgZm9udC1zaXplOiAxNnB4OyB9Ci1ib2R5IHsgd2lkdGg6IDgwMHB4OyBt
YXJnaW46IDA7IH0KK2JvZHkgeyB3aWR0aDogODAwcHg7IG1hcmdpbjogMDsgb3ZlcmZsb3cteTog
aGlkZGVuOyB9CiA8L3N0eWxlPgogCiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3RleHQtYXV0b3NpemluZy9uZXN0ZWQtZW0tbGluZS1oZWlnaHQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL25lc3RlZC1lbS1saW5lLWhlaWdodC5odG1sCmluZGV4
IDJiYWE1NWVhOWMyMWY5MWFjN2Y1NDFiOGM0MjFhYzM0YzgwZWUyOWIuLjJhYTM0NWVkYmQxOGQ2
N2YxNzkyOTM3NjRkN2UyYzA3MjYyMmE4ZWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC1hdXRvc2l6aW5nL25lc3RlZC1lbS1saW5lLWhlaWdodC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL25lc3RlZC1lbS1saW5lLWhlaWdodC5odG1sCkBAIC01
LDcgKzUsNyBAQAogPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPTgwMCI+CiA8
c3R5bGU+CiBodG1sIHsgZm9udC1zaXplOiAxNnB4OyB9Ci1ib2R5IHsgd2lkdGg6IDgwMHB4OyBt
YXJnaW46IDA7IH0KK2JvZHkgeyB3aWR0aDogODAwcHg7IG1hcmdpbjogMDsgb3ZlcmZsb3cteTog
aGlkZGVuOyB9CiA8L3N0eWxlPgogCiA8c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0LWF1dG9zaXppbmcvb3NjaWxsYXRpb24tamF2YXNjcmlwdC1mb250c2l6ZS1jaGFu
Z2UtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL29zY2ls
bGF0aW9uLWphdmFzY3JpcHQtZm9udHNpemUtY2hhbmdlLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDRhNzk0NmM0MDE3Mzg1OTdjODc5OGU0OWVkMzAwMDZjZmEyMzEyNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL29zY2lsbGF0aW9uLWphdmFz
Y3JpcHQtZm9udHNpemUtY2hhbmdlLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbCBzdHlsZT0iZm9udC1zaXplOiAxNnB4Ij4KKzxoZWFkPgorCis8
bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4KKzxzdHlsZT4KKyAgYm9k
eSB7CisgICAgd2lkdGg6IDgwMHB4OworICAgIG1hcmdpbjogMDsKKyAgICBvdmVyZmxvdy15OiBo
aWRkZW47CisgIH0KKzwvc3R5bGU+CisKKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2IHN0eWxlPSJ0
b3A6NTBweDtwb3NpdGlvbjphYnNvbHV0ZTtmb250LXNpemU6MTkuOHB4Ij4KKyAgICAuIC4gLiAu
IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g
LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC48YnIvPgorICAgIFRoaXMgcGFyYWdy
YXBoIHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gMTkuOHB4PGJyLz4KKyAgICBiZWNhdXNlIGl0IGNv
bnRhaW5zIGxpbmUgYnJlYWtzLjxici8+CisgICAgVGhpcyB0ZXN0IGlzIGludGVuZGVkIHRvIGNo
ZWNrPGJyLz4KKyAgICB0aGF0IHRoZXJlIGFyZSBubyBvc2NpbGxhdGlvbnMgZHVlIHRvIGphdmFz
Y3JpcHQ8YnIvPgorICAgIGJyaWVmbHkgaW5jcmVhc2luZyB0aGUgZm9udCBzaXplIG9mIGE8YnIv
PgorICAgIHNtYWxsIHBhcmFncmFwaCBiZWxvdy4KKzwvZGl2PgorPGRpdiBpZD0ic2l6ZWNoYW5n
aW5nIj4KKyAgICBUaGlzIHRleHQgY2hhbmdlcyBzaXplIHVzaW5nIGphdmFzY3JpcHQgYmVsb3cu
Cis8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC90ZXh0LWF1dG9zaXppbmcvb3NjaWxsYXRpb24tamF2YXNjcmlwdC1mb250c2l6ZS1jaGFuZ2Uu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL29zY2lsbGF0aW9uLWphdmFz
Y3JpcHQtZm9udHNpemUtY2hhbmdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQ3ZjgwZmFiZWNhYjgyMWRi
NWIxMmIyZGFkNzYzMWVjOTg2ZDY3MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvdGV4dC1hdXRvc2l6aW5nL29zY2lsbGF0aW9uLWphdmFzY3JpcHQtZm9udHNpemUtY2hhbmdl
Lmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBzdHlsZT0iZm9u
dC1zaXplOiAxNnB4Ij4KKzxoZWFkPgorCis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0i
d2lkdGg9ODAwIj4KKzxzdHlsZT4KKyAgYm9keSB7CisgICAgd2lkdGg6IDgwMHB4OworICAgIG1h
cmdpbjogMDsKKyAgICBvdmVyZmxvdy15OiBoaWRkZW47CisgIH0KKyAgLmxhcmdlcnNpemV7Zm9u
dC1zaXplOiAxLjFlbX0KKzwvc3R5bGU+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFs
cykgeworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGV4dEF1dG9zaXppbmdFbmFi
bGVkKHRydWUpOworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGV4dEF1dG9zaXpp
bmdXaW5kb3dTaXplT3ZlcnJpZGUoMzIwLCA0ODApOworfSBlbHNlIGlmICh3aW5kb3cuY29uc29s
ZSAmJiBjb25zb2xlLndhcm4pIHsKKyAgICBjb25zb2xlLndhcm4oIlRoaXMgdGVzdCBkZXBlbmRz
IG9uIHRoZSBUZXh0IEF1dG9zaXppbmcgc2V0dGluZyBiZWluZyB0cnVlLCBzbyBydW4gaXQgaW4g
RHVtcFJlbmRlclRyZWUsIG9yIG1hbnVhbGx5IGVuYWJsZSBUZXh0IEF1dG9zaXppbmcsIGFuZCBl
aXRoZXIgdXNlIGEgbW9iaWxlIGRldmljZSB3aXRoIDMyMHB4IGRldmljZS13aWR0aCAobGlrZSBO
ZXh1cyBTIG9yIGlQaG9uZSksIG9yIGRlZmluZSBIQUNLX0ZPUkNFX1RFWFRfQVVUT1NJWklOR19P
Tl9ERVNLVE9QLiIpOworfQorPC9zY3JpcHQ+CisKKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2IHN0
eWxlPSJ0b3A6NTBweDtwb3NpdGlvbjphYnNvbHV0ZTsiPgorICAgIC4gLiAuIC4gLiAuIC4gLiAu
IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g
LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLjxici8+CisgICAgVGhpcyBwYXJhZ3JhcGggc2hvdWxk
IGJlIGF1dG9zaXplZCB0byAxOS44cHg8YnIvPgorICAgIGJlY2F1c2UgaXQgY29udGFpbnMgbGlu
ZSBicmVha3MuPGJyLz4KKyAgICBUaGlzIHRlc3QgaXMgaW50ZW5kZWQgdG8gY2hlY2s8YnIvPgor
ICAgIHRoYXQgdGhlcmUgYXJlIG5vIG9zY2lsbGF0aW9ucyBkdWUgdG8gamF2YXNjcmlwdDxici8+
CisgICAgYnJpZWZseSBpbmNyZWFzaW5nIHRoZSBmb250IHNpemUgb2YgYTxici8+CisgICAgc21h
bGwgcGFyYWdyYXBoIGJlbG93LgorPC9kaXY+Cis8ZGl2IGlkPSJzaXplY2hhbmdpbmciPgorICAg
IFRoaXMgdGV4dCBjaGFuZ2VzIHNpemUgdXNpbmcgamF2YXNjcmlwdCBiZWxvdy4KKzwvZGl2Pgor
Cis8c2NyaXB0PgorZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaXplY2hhbmdp
bmciKTsKK2lmKGVsZW1lbnQub2Zmc2V0SGVpZ2h0KXsKKyAgICAvLyBmb3JjZSBsYXlvdXQgKHRv
IGNvbXB1dGF0aW9uIG9mIG9mZnNldEhlaWdodCB0cmlnZ2VycyByZWZsb3cpCit9CitlbGVtZW50
LmNsYXNzTmFtZT0nbGFyZ2Vyc2l6ZSc7CitpZihlbGVtZW50Lm9mZnNldEhlaWdodCl7fQorZWxl
bWVudC5jbGFzc05hbWU9Jyc7CitpZihlbGVtZW50Lm9mZnNldEhlaWdodCl7fQorPC9zY3JpcHQ+
Cis8bm9zY3JpcHQ+ZmFpbCAobm8gc3VwcG9ydCBmb3IgamF2YXNjcmlwdCk8L25vc2NyaXB0Pgor
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0
b3NpemluZy9zaW1wbGUtcGFyYWdyYXBoLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3RleHQtYXV0b3NpemluZy9zaW1wbGUtcGFyYWdyYXBoLWV4cGVjdGVkLmh0bWwKaW5kZXggM2Zk
NGEzYTQ3NzRjYWFhYTI1ZDMwMzAxYTFmNzkyODgxZjY3NGQ2NS4uZDE1YWIyMTIwN2FlNmY4Zjcy
MTVjY2IwNGRhY2M4MWRjNTc0MjgxOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
LWF1dG9zaXppbmcvc2ltcGxlLXBhcmFncmFwaC1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL3NpbXBsZS1wYXJhZ3JhcGgtZXhwZWN0ZWQuaHRtbApA
QCAtNSw3ICs1LDcgQEAKIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04MDAi
PgogPHN0eWxlPgogaHRtbCB7IGZvbnQtc2l6ZTogMTZweDsgfQotYm9keSB7IHdpZHRoOiA4MDBw
eDsgbWFyZ2luOiAwOyB9Citib2R5IHsgd2lkdGg6IDgwMHB4OyBtYXJnaW46IDA7IG92ZXJmbG93
LXk6IGhpZGRlbjsgfQogPC9zdHlsZT4KIAogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvc2ltcGxlLXBhcmFncmFwaC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvc2ltcGxlLXBhcmFncmFwaC5odG1sCmluZGV4IDg1MDkx
NmU4NzdmNTA1MDJlOTM3OWZlZmJjNzg4OThkZDhhOTI3MGUuLmM5NzRjNGIxZDUyYWY0OTA4Yjg4
NjcxY2M2MjA5ZDA5ZDAxMmU3YjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1h
dXRvc2l6aW5nL3NpbXBsZS1wYXJhZ3JhcGguaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Rl
eHQtYXV0b3NpemluZy9zaW1wbGUtcGFyYWdyYXBoLmh0bWwKQEAgLTUsNyArNSw3IEBACiA8bWV0
YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4KIDxzdHlsZT4KIGh0bWwgeyBm
b250LXNpemU6IDE2cHg7IH0KLWJvZHkgeyB3aWR0aDogODAwcHg7IG1hcmdpbjogMDsgfQorYm9k
eSB7IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAwOyBvdmVyZmxvdy15OiBoaWRkZW47IH0KIDwvc3R5
bGU+CiAKIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3Np
emluZy9zcGFuLWNoaWxkLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0
b3NpemluZy9zcGFuLWNoaWxkLWV4cGVjdGVkLmh0bWwKaW5kZXggY2M0NDIxNjNmMzdkNmFhMTM1
MWFmZDg2NWFiNDg5NjUzYWU2NmJiOC4uYzAyOTkxYTc2OGIyOTRjMzJmZjM0Y2Q3ODE3Njc2Mzhl
MmQyN2M5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvc3Bh
bi1jaGlsZC1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6
aW5nL3NwYW4tY2hpbGQtZXhwZWN0ZWQuaHRtbApAQCAtNSw3ICs1LDcgQEAKIDxtZXRhIG5hbWU9
InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04MDAiPgogPHN0eWxlPgogaHRtbCB7IGZvbnQtc2l6
ZTogMTZweDsgfQotYm9keSB7IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAwOyB9Citib2R5IHsgd2lk
dGg6IDgwMHB4OyBtYXJnaW46IDA7IG92ZXJmbG93LXk6IGhpZGRlbjsgfQogPC9zdHlsZT4KIAog
PC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvc3Bh
bi1jaGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvc3Bhbi1jaGls
ZC5odG1sCmluZGV4IDgyNWJmNDRmYTcxOWFjZDQwNDI4OGE3YjZlNTc4MDFiMDIwMDRlM2YuLjc3
NTQwNjM1NjdkYmFlM2NlZGNkMDk1MTljMjFhOThkOWJmYmY2MDIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL3NwYW4tY2hpbGQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9zcGFuLWNoaWxkLmh0bWwKQEAgLTUsNyArNSw3IEBA
CiA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4KIDxzdHlsZT4KIGh0
bWwgeyBmb250LXNpemU6IDE2cHg7IH0KLWJvZHkgeyB3aWR0aDogODAwcHg7IG1hcmdpbjogMDsg
fQorYm9keSB7IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAwOyBvdmVyZmxvdy15OiBoaWRkZW47IH0K
IDwvc3R5bGU+CiAKIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQt
YXV0b3NpemluZy91bndyYXBwYWJsZS1ibG9ja3MtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvdGV4dC1hdXRvc2l6aW5nL3Vud3JhcHBhYmxlLWJsb2Nrcy1leHBlY3RlZC5odG1sCmlu
ZGV4IDQ4ZDNiODg4YjE3OWFjMmZkZmEyZGQwNTg3NTA2NWNhY2QyYjhmMWMuLjdlZDE4ZGZhYWI3
MmU0ZTNhOTIzMWVlNzc0YzUyNzM4ZGY1OGZiN2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvdGV4dC1hdXRvc2l6aW5nL3Vud3JhcHBhYmxlLWJsb2Nrcy1leHBlY3RlZC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL3Vud3JhcHBhYmxlLWJsb2Nrcy1leHBl
Y3RlZC5odG1sCkBAIC01LDcgKzUsNyBAQAogPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9
IndpZHRoPTgwMCI+CiA8c3R5bGU+CiBodG1sIHsgZm9udC1zaXplOiAxNnB4OyB9Ci1ib2R5IHsg
d2lkdGg6IDgwMHB4OyBtYXJnaW46IDA7IH0KK2JvZHkgeyB3aWR0aDogODAwcHg7IG1hcmdpbjog
MDsgb3ZlcmZsb3cteTogaGlkZGVuOyB9CiBwcmUgeyBtYXJnaW46IDA7IH0KIDwvc3R5bGU+CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL3Vud3JhcHBhYmxl
LWJsb2Nrcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvdW53cmFwcGFi
bGUtYmxvY2tzLmh0bWwKaW5kZXggYjY2MDNhZWQ0NDdjOWMxNjg2MTgyMjIyZWFhNDg1NTJlZTE1
NTZjNS4uNzkyOTQ1NDk2Y2FjMTA2YjY1ZGY5NzA3NWJjMmY3NzhjODdjNWU4ZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvdW53cmFwcGFibGUtYmxvY2tzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvdW53cmFwcGFibGUtYmxv
Y2tzLmh0bWwKQEAgLTUsNyArNSw3IEBACiA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0i
d2lkdGg9ODAwIj4KIDxzdHlsZT4KIGh0bWwgeyBmb250LXNpemU6IDE2cHg7IH0KLWJvZHkgeyB3
aWR0aDogODAwcHg7IG1hcmdpbjogMDsgfQorYm9keSB7IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAw
OyBvdmVyZmxvdy15OiBoaWRkZW47IH0KIHByZSB7IG1hcmdpbjogMDsgfQogPC9zdHlsZT4KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvdW53cmFwcGFibGUt
aW5saW5lcy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcv
dW53cmFwcGFibGUtaW5saW5lcy1leHBlY3RlZC5odG1sCmluZGV4IDQ4ZmM5MDM5MDhkZjJhYmJm
ZTQ4ZmJjYTcyNjJjNTFiODgwYmQ2ZWUuLmE3MTg4MTQxZDkwMTI4OGFiNDk4YmI1NjA0MmExMmM0
ZDYyMjQ5YzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL3Vu
d3JhcHBhYmxlLWlubGluZXMtZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Rl
eHQtYXV0b3NpemluZy91bndyYXBwYWJsZS1pbmxpbmVzLWV4cGVjdGVkLmh0bWwKQEAgLTUsNyAr
NSw3IEBACiA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4KIDxzdHls
ZT4KIGh0bWwgeyBmb250LXNpemU6IDE2cHg7IH0KLWJvZHkgeyB3aWR0aDogODAwcHg7IG1hcmdp
bjogMDsgfQorYm9keSB7IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAwOyBvdmVyZmxvdy15OiBoaWRk
ZW47IH0KIHByZSB7IG1hcmdpbjogMDsgfQogPC9zdHlsZT4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvdW53cmFwcGFibGUtaW5saW5lcy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvdW53cmFwcGFibGUtaW5saW5lcy5odG1sCmlu
ZGV4IDliMDczMmVlODZjZDNiYTk2MDQ5YWNmOWUwNmEzMTcyOTJjNmRiZTEuLjE2NDM0Yzk4Zjc1
YTA1NDBiNWI3ZGQzMmExN2EzNTU0YTk0ZWI4OTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvdGV4dC1hdXRvc2l6aW5nL3Vud3JhcHBhYmxlLWlubGluZXMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy91bndyYXBwYWJsZS1pbmxpbmVzLmh0bWwKQEAgLTUs
NyArNSw3IEBACiA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4KIDxz
dHlsZT4KIGh0bWwgeyBmb250LXNpemU6IDE2cHg7IH0KLWJvZHkgeyB3aWR0aDogODAwcHg7IG1h
cmdpbjogMDsgfQorYm9keSB7IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAwOyBvdmVyZmxvdy15OiBo
aWRkZW47IH0KIHByZSB7IG1hcmdpbjogMDsgfQogPC9zdHlsZT4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188611</attachid>
            <date>2013-02-15 12:01:41 -0800</date>
            <delta_ts>2013-02-18 09:21:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108205-20130215195806.patch</filename>
            <type>text/plain</type>
            <size>21994</size>
            <attacher>timvolodine</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyOTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDkzZTVlNWE2MTdhN2U0
M2MyZGM2YTViNDBiMGE3ZWZmNDY5MGIyNy4uY2FmM2I1NGViMGQ3ZTU2ODA4MWY1Y2FmYTk2MDUx
MDM1MzlmZjM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTAyLTE1ICBUaW0g
Vm9sb2RpbmUgIDx0aW12b2xvZGluZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGV4dCBBdXRv
c2l6aW5nOiBwcmV2ZW50IG9zY2lsbGF0aW9uIG9mIGZvbnQgc2l6ZXMgZHVyaW5nIGF1dG9zaXpp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODIw
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9uIHNv
bWUgd2Vic2l0ZXMgYXV0b3NpemVkIGZvbnQtc2l6ZXMgb3NjaWxsYXRlIGR1ZSB0byBsYXlvdXRz
IGNhdXNlZCBieQorICAgICAgICBob3ZlcmluZyBvciBpbmNyZW1lbnRhbCBwYWdlIGxvYWRpbmcg
KGFuZCBvbiBvdGhlciBzaXRlcyBmb250IHNpemVzIGRvCisgICAgICAgIGV2ZW50dWFsbHkgc3Rh
YmlsaXplLCBidXQgaXQgdGFrZXMgbWFueSBsYXlvdXRzIGJlZm9yZSB0aGV5IHJlYWNoIGEgc3Rl
YWR5CisgICAgICAgIHNpemUpLiBUbyBwcmV2ZW50IGFsbCB0aGVzZSBjYXNlcywgd2Ugbm8gbG9u
Z2VyIGFsbG93IHRoZSBhdXRvc2l6aW5nCisgICAgICAgIG11bHRpcGxpZXIgdG8gY2hhbmdlIGFm
dGVyIGl0IGhhcyBiZWVuIHNldCAodG8gYSB2YWx1ZSBvdGhlciB0aGFuIDEpLgorCisgICAgICAg
IFRoaXMgd29uJ3QgYWx3YXlzIGdpdmUgZXhhY3RseSB0aGUgc2FtZSByZXN1bHRzLCBidXQgdGVz
dGluZyBvbiAyMDAwIHRvcAorICAgICAgICBzaXRlcyBzaG93cyB0aGF0IHRoaXMgbWFrZXMgbGl0
dGxlIGRpZmZlcmVuY2UgaW4gcHJhY3RpY2UsIGFuZCBpdCBwcmV2ZW50cworICAgICAgICB0aGVz
ZSB2ZXJ5IGphcnJpbmcgY2FzZXMuIEFzIGEgaGFwcHkgc2lkZS1lZmZlY3QsIHRoaXMgc3BlZWRz
IHVwIGxheW91dHMKKyAgICAgICAgYXMgZm9udCBzaXplcyBjaGFuZ2UgbGVzcy4KKworICAgICAg
ICBUZXN0OiBmYXN0L3RleHQtYXV0b3NpemluZy9vc2NpbGxhdGlvbi1qYXZhc2NyaXB0LWZvbnRz
aXplLWNoYW5nZS5odG1sCisKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNldHRpbmdzOjpzZXRUZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3Rvcik6Cisg
ICAgICAgICogcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dEF1dG9zaXplcjo6cmVjYWxjdWxhdGVNdWx0aXBsaWVycyk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDb250YWluZXIpOgor
ICAgICAgICAqIHJlbmRlcmluZy9UZXh0QXV0b3NpemVyLmg6CisgICAgICAgIChUZXh0QXV0b3Np
emVyKToKKwogMjAxMy0wMi0xNCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBhbHdheXMgc2hvdyBtZW1vcnkgc2l6ZSBpbiBN
YiBvbiB0aGUgbmF0aXZlIG1lbW9yeSBncmFwaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCAzYjdiOTA5ZDQxNzRkMDI4Y2M0NjgyYjJiNjY1MWViZjM5MzNjMzhmLi5lY2E2NmQ5OGRlMGQ1
OWY3NzYyMzg5NzBmNGNhYmJkYTM1MWM4YTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDEzLTAyLTE1ICBUaW0gVm9sb2RpbmUgIDx0aW12b2xvZGluZUBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGV4dCBBdXRvc2l6aW5nOiBwcmV2ZW50IG9zY2lsbGF0
aW9uIG9mIGZvbnQgc2l6ZXMgZHVyaW5nIGF1dG9zaXppbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODIwNQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRyaWdnZXIgcmVjYWxjdWxhdGlvbiBvZiB0aGUg
dGV4dCBhdXRvc2l6aW5nIG11bHRpcGxpZXJzIGlmIHRoZSBkZXZpY2UKKyAgICAgICAgY2hhbmdl
cyBvcmllbnRhdGlvbiBhbmQgdGhlIHJlc2l6ZS1tZXRob2QgaXMgY2FsbGVkLgorCisgICAgICAg
ICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnJl
c2l6ZSk6CisKIDIwMTMtMDItMTQgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBjaHJvbWl1bSB0ZXN0IGZpeDogaW5jb3JyZWN0IGZp
ZWxkIHdhcyB1c2VkIGZvciBVSVNvdXJjZUNvZGUgdXJsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNw
cAppbmRleCBmZmNkYTM0NWU2ZTQ1ZDhlMDkxNjkzNGE0MjRlZDY0OGE4MGNkZGYyLi5lODhhMDc1
ZDYxMDBiZDgwMzhmNjIxMzU0OGMwOWQwNjczZjRkNWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIlBhZ2VDYWNoZS5oIgogI2luY2x1ZGUg
IlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU1hcC5oIgorI2luY2x1ZGUgIlRl
eHRBdXRvc2l6ZXIuaCIKICNpbmNsdWRlIDxsaW1pdHM+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7
CkBAIC0zNjQsNiArMzY1LDExIEBAIHZvaWQgU2V0dGluZ3M6OnNldFRleHRBdXRvc2l6aW5nV2lu
ZG93U2l6ZU92ZXJyaWRlKGNvbnN0IEludFNpemUmIHRleHRBdXRvc2l6aW5nCiB2b2lkIFNldHRp
bmdzOjpzZXRUZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcihmbG9hdCBmb250U2NhbGVGYWN0
b3IpCiB7CiAgICAgbV90ZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvciA9IGZvbnRTY2FsZUZh
Y3RvcjsKKworICAgIC8vIEZJWE1FOiBJIHdvbmRlciBpZiB0aGlzIG5lZWRzIHRvIHRyYXZlcnNl
IGZyYW1lcyBsaWtlIGluIFdlYlZpZXdJbXBsOjpyZXNpemUsIG9yIHdoZXRoZXIgdGhlcmUgaXMg
b25seSBvbmUgZG9jdW1lbnQgcGVyIFNldHRpbmdzIGluc3RhbmNlPworICAgIGZvciAoRnJhbWUq
IGZyYW1lID0gbV9wYWdlLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUo
KS0+dHJhdmVyc2VOZXh0KCkpCisgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT50ZXh0QXV0b3Np
emVyKCktPnJlY2FsY3VsYXRlTXVsdGlwbGllcnMoKTsKKwogICAgIG1fcGFnZS0+c2V0TmVlZHNS
ZWNhbGNTdHlsZUluQWxsRnJhbWVzKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9U
ZXh0QXV0b3NpemVyLmNwcAppbmRleCAzNDI2MzdhYWFiZWZhNWMxZGU2MjU0ZWQ2YTAzNzVkOTYx
MjM5NzM1Li43YWU0M2U3YWVjZGM2Nzg0NzZiZDg5NmE5NTM1MzM1MWFjMjFjN2E2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwCkBAIC05MSw2ICs5MSwxNiBA
QCBUZXh0QXV0b3NpemVyOjp+VGV4dEF1dG9zaXplcigpCiB7CiB9CiAKK3ZvaWQgVGV4dEF1dG9z
aXplcjo6cmVjYWxjdWxhdGVNdWx0aXBsaWVycygpCit7CisgICAgUmVuZGVyT2JqZWN0KiByZW5k
ZXJlciA9IG1fZG9jdW1lbnQtPnJlbmRlcmVyKCk7CisgICAgd2hpbGUgKHJlbmRlcmVyKSB7Cisg
ICAgICAgIGlmIChyZW5kZXJlci0+c3R5bGUoKSAmJiByZW5kZXJlci0+c3R5bGUoKS0+dGV4dEF1
dG9zaXppbmdNdWx0aXBsaWVyKCkgIT0gMSkKKyAgICAgICAgICAgIHNldE11bHRpcGxpZXIocmVu
ZGVyZXIsIDEpOworICAgICAgICByZW5kZXJlciA9IHJlbmRlcmVyLT5uZXh0SW5QcmVPcmRlcigp
OworICAgIH0KK30KKwogYm9vbCBUZXh0QXV0b3NpemVyOjpwcm9jZXNzU3VidHJlZShSZW5kZXJP
YmplY3QqIGxheW91dFJvb3QpCiB7CiAgICAgLy8gRklYTUU6IFRleHQgQXV0b3NpemluZyBzaG91
bGQgb25seSBiZSBlbmFibGVkIHdoZW4gbV9kb2N1bWVudC0+cGFnZSgpLT5tYWluRnJhbWUoKS0+
dmlldygpLT51c2VGaXhlZExheW91dCgpCkBAIC0xODYsNyArMTk2LDcgQEAgdm9pZCBUZXh0QXV0
b3NpemVyOjpwcm9jZXNzQ29udGFpbmVyKGZsb2F0IG11bHRpcGxpZXIsIFJlbmRlckJsb2NrKiBj
b250YWluZXIsIFQKICAgICBSZW5kZXJPYmplY3QqIGRlc2NlbmRhbnQgPSBuZXh0SW5QcmVPcmRl
clNraXBwaW5nRGVzY2VuZGFudHNPZkNvbnRhaW5lcnMoc3VidHJlZVJvb3QsIHN1YnRyZWVSb290
KTsKICAgICB3aGlsZSAoZGVzY2VuZGFudCkgewogICAgICAgICBpZiAoZGVzY2VuZGFudC0+aXNU
ZXh0KCkpIHsKLSAgICAgICAgICAgIGlmIChsb2NhbE11bHRpcGxpZXIgIT0gZGVzY2VuZGFudC0+
c3R5bGUoKS0+dGV4dEF1dG9zaXppbmdNdWx0aXBsaWVyKCkpIHsKKyAgICAgICAgICAgIGlmIChs
b2NhbE11bHRpcGxpZXIgIT0gMSAmJiBkZXNjZW5kYW50LT5zdHlsZSgpLT50ZXh0QXV0b3Npemlu
Z011bHRpcGxpZXIoKSA9PSAxKSB7CiAgICAgICAgICAgICAgICAgc2V0TXVsdGlwbGllcihkZXNj
ZW5kYW50LCBsb2NhbE11bHRpcGxpZXIpOwogICAgICAgICAgICAgICAgIHNldE11bHRpcGxpZXIo
ZGVzY2VuZGFudC0+cGFyZW50KCksIGxvY2FsTXVsdGlwbGllcik7IC8vIFBhcmVudCBkb2VzIGxp
bmUgc3BhY2luZy4KICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9UZXh0QXV0b3NpemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1
dG9zaXplci5oCmluZGV4IDY0OTVhMzAyYjA4N2U3N2M3ODA4ZWFiMjEzZjM2MmVlYzNmYmJhN2Iu
LjY5YmY1NTAzZWNmOGU0N2E4ZDY1MjRkOGFmOWQzMDQxNmU3Y2YzNDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuaApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+VGV4dEF1dG9zaXplcigpOwogCiAgICAgYm9vbCBwcm9jZXNzU3VidHJlZShS
ZW5kZXJPYmplY3QqIGxheW91dFJvb3QpOworICAgIHZvaWQgcmVjYWxjdWxhdGVNdWx0aXBsaWVy
cygpOwogCiAgICAgc3RhdGljIGZsb2F0IGNvbXB1dGVBdXRvc2l6ZWRGb250U2l6ZShmbG9hdCBz
cGVjaWZpZWRTaXplLCBmbG9hdCBtdWx0aXBsaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGQ3ZGU4Njk2MjZkZmY3YzZhNzkzMGFlYWUwZDcx
MjE3Mzg3ZGQ1MWMuLmZhOTk3OGQxMTJkMTc1MmM1ZTZlMzFlYzIyZjdlNDIzNDE4YjYzM2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTExMSw2ICsx
MTEsNyBAQAogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50UHJveHkuaCIKICNpbmNs
dWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgorI2luY2x1ZGUgIlRleHRB
dXRvc2l6ZXIuaCIKICNpbmNsdWRlICJUZXh0RmllbGREZWNvcmF0b3JJbXBsLmgiCiAjaW5jbHVk
ZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAgLTE2NzUsNiArMTY3Niwx
NCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpyZXNpemUoY29uc3QgV2ViU2l6ZSYgbmV3U2l6ZSkKICAg
ICBtX3BhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+ZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNE
aWRDaGFuZ2Uodmlld3BvcnRBcmd1bWVudHMpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVEVYVF9B
VVRPU0laSU5HKQorICAgIC8vIEF1dG9zaXplZCBmb250IHNpemVzIGRlcGVuZCBvbiB0aGUgd2lk
dGggb2YgdGhlIHZpZXdpbmcgYXJlYS4KKyAgICBpZiAobmV3U2l6ZS53aWR0aCAhPSBvbGRTaXpl
LndpZHRoICYmIG1fcGFnZS0+c2V0dGluZ3MoKS0+dGV4dEF1dG9zaXppbmdFbmFibGVkKCkpIHsK
KyAgICAgICAgZm9yIChGcmFtZSogZnJhbWUgPSBtX3BhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsg
ZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkKKyAgICAgICAgICAgIGZyYW1l
LT5kb2N1bWVudCgpLT50ZXh0QXV0b3NpemVyKCktPnJlY2FsY3VsYXRlTXVsdGlwbGllcnMoKTsK
KyAgICB9CisjZW5kaWYKKwogICAgIFdlYkRldlRvb2xzQWdlbnRQcml2YXRlKiBhZ2VudFByaXZh
dGUgPSBkZXZUb29sc0FnZW50UHJpdmF0ZSgpOwogICAgIGlmIChhZ2VudFByaXZhdGUpCiAgICAg
ICAgIGFnZW50UHJpdmF0ZS0+d2ViVmlld1Jlc2l6ZWQobmV3U2l6ZSk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzVjZjUz
MTZkMmI4ZmMwOWU3ZTRjY2I5MzIxNjdmZGZkMmYyZGRmZS4uNzgyM2UwY2NhMWUzZGE1Njg4Mjc0
YTgwNDk3N2M3NzVhODUwNjcxYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEzLTAyLTE1ICBU
aW0gVm9sb2RpbmUgIDx0aW12b2xvZGluZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGV4dCBB
dXRvc2l6aW5nOiBwcmV2ZW50IG9zY2lsbGF0aW9uIG9mIGZvbnQgc2l6ZXMgZHVyaW5nIGF1dG9z
aXppbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
ODIwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZGVkIG92ZXJmbG93LXk6aGlkZGVuIHRvIHNvbWUgZXhpc3RpbmcgdGVzdHMsIHNpbmNlIHByZXZp
b3VzbHkgdGhvc2UgdGVzdHMKKyAgICAgICAgd291bGQgc3RhcnQgb2ZmIHdpdGggaW5jb3JyZWN0
IG11bHRpcGxpZXJzIChiZWNhdXNlIG1haW5GcmFtZS0+dmlldygpLWxheW91dFNpemUoKQorICAg
ICAgICBpcyBpbml0aWFsbHkgNzg1IGluc3RlYWQgb2YgODAwIGFzIFNjcm9sbFZpZXcgd3Jvbmds
eSBndWVzc2VzIGEgc2Nyb2xsYmFyIHdpbGwKKyAgICAgICAgYmUgbmVlZGVkKSwgYW5kIHRoZW4g
dGhlIG11bHRpcGxpZXJzIHdvdWxkIGdldCBjb3JyZWN0ZWQgb24gYSBzdWJzZXF1ZW50IGxheW91
dC4KKyAgICAgICAgTm93IHRoYXQgd2UgZG9uJ3QgYWxsb3cgdGhlIG11bHRpcGxpZXIgdG8gY2hh
bmdlIGFmdGVyIGJlaW5nIHNldCwgaXQgbmVlZHMgdG8gYmUKKyAgICAgICAgcmlnaHQgZmlyc3Qg
dGltZS4KKyAgICAgICAgQWxzbyBhZGRlZCBzcGVjaWZpYyBvc2NpbGxhdGlvbiB0ZXN0IHRyaWdn
ZXJlZCBieSBqYXZhc2NyaXB0LgorCisgICAgICAgICogZmFzdC90ZXh0LWF1dG9zaXppbmcvY29u
c3RyYWluZWQtaGVpZ2h0LWJvZHktZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RleHQt
YXV0b3NpemluZy9jb25zdHJhaW5lZC1oZWlnaHQtYm9keS5odG1sOgorICAgICAgICAqIGZhc3Qv
dGV4dC1hdXRvc2l6aW5nL2NvbnN0cmFpbmVkLXRoZW4tZmxvYXQtYW5jZXN0b3JzLWV4cGVjdGVk
Lmh0bWw6CisgICAgICAgICogZmFzdC90ZXh0LWF1dG9zaXppbmcvY29uc3RyYWluZWQtdGhlbi1m
bG9hdC1hbmNlc3RvcnMuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RleHQtYXV0b3NpemluZy9jb25z
dHJhaW5lZC10aGVuLXBvc2l0aW9uLWZpeGVkLWFuY2VzdG9ycy1leHBlY3RlZC5odG1sOgorICAg
ICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL2NvbnN0cmFpbmVkLXRoZW4tcG9zaXRpb24tZml4
ZWQtYW5jZXN0b3JzLmh0bWw6CisgICAgICAgICogZmFzdC90ZXh0LWF1dG9zaXppbmcvbmVzdGVk
LWVtLWxpbmUtaGVpZ2h0LWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFzdC90ZXh0LWF1dG9z
aXppbmcvbmVzdGVkLWVtLWxpbmUtaGVpZ2h0Lmh0bWw6CisgICAgICAgICogZmFzdC90ZXh0LWF1
dG9zaXppbmcvb3NjaWxsYXRpb24tamF2YXNjcmlwdC1mb250c2l6ZS1jaGFuZ2UtZXhwZWN0ZWQu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0LWF1dG9zaXppbmcvb3NjaWxsYXRpb24t
amF2YXNjcmlwdC1mb250c2l6ZS1jaGFuZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC90
ZXh0LWF1dG9zaXppbmcvc2ltcGxlLXBhcmFncmFwaC1leHBlY3RlZC5odG1sOgorICAgICAgICAq
IGZhc3QvdGV4dC1hdXRvc2l6aW5nL3NpbXBsZS1wYXJhZ3JhcGguaHRtbDoKKyAgICAgICAgKiBm
YXN0L3RleHQtYXV0b3NpemluZy9zcGFuLWNoaWxkLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICog
ZmFzdC90ZXh0LWF1dG9zaXppbmcvc3Bhbi1jaGlsZC5odG1sOgorICAgICAgICAqIGZhc3QvdGV4
dC1hdXRvc2l6aW5nL3Vud3JhcHBhYmxlLWJsb2Nrcy1leHBlY3RlZC5odG1sOgorICAgICAgICAq
IGZhc3QvdGV4dC1hdXRvc2l6aW5nL3Vud3JhcHBhYmxlLWJsb2Nrcy5odG1sOgorICAgICAgICAq
IGZhc3QvdGV4dC1hdXRvc2l6aW5nL3Vud3JhcHBhYmxlLWlubGluZXMtZXhwZWN0ZWQuaHRtbDoK
KyAgICAgICAgKiBmYXN0L3RleHQtYXV0b3NpemluZy91bndyYXBwYWJsZS1pbmxpbmVzLmh0bWw6
CisKIDIwMTMtMDItMTUgIEt3YW5nWW9uZyBDaG9pICA8a3kwLmNob2lAc2Ftc3VuZy5jb20+CiAK
ICAgICAgICAgW0VGTF0gZmFzdC9mb3Jtcy9pbnB1dC10ZXh0LXNjcm9sbC1sZWZ0LW9uLWJsdXIu
aHRtbCBpcyBwYXNzaW5nIG5vdwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1
dG9zaXppbmcvY29uc3RyYWluZWQtaGVpZ2h0LWJvZHktZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2NvbnN0cmFpbmVkLWhlaWdodC1ib2R5LWV4cGVjdGVk
Lmh0bWwKaW5kZXggNTlhMTA4MGM4MzVkMjFiZmFkYjFiZWNhMGY5NmMxNTA1ZTdhMjBjMi4uYmUz
Y2QyZjM4NjI4NGFjOGZjZmE1N2I4ODE5M2ZiZjNiMTczMWMzYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvY29uc3RyYWluZWQtaGVpZ2h0LWJvZHktZXhwZWN0
ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9jb25zdHJhaW5l
ZC1oZWlnaHQtYm9keS1leHBlY3RlZC5odG1sCkBAIC01LDcgKzUsNyBAQAogPG1ldGEgbmFtZT0i
dmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPTgwMCI+CiA8c3R5bGU+CiBodG1sIHsgZm9udC1zaXpl
OiAxNnB4OyB9Ci1ib2R5IHsgd2lkdGg6IDgwMHB4OyBtYXJnaW46IDA7IH0KK2JvZHkgeyB3aWR0
aDogODAwcHg7IG1hcmdpbjogMDsgb3ZlcmZsb3cteTogaGlkZGVuOyB9CiA8L3N0eWxlPgogCiA8
L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9jb25z
dHJhaW5lZC1oZWlnaHQtYm9keS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXpp
bmcvY29uc3RyYWluZWQtaGVpZ2h0LWJvZHkuaHRtbAppbmRleCAyNmVjNzBhMmI5MjAzZDNkOTIw
NzMwMGQzMWZlY2Q5NGQ1MDc3NzgxLi5iYzQxZmJkYzZiZjEyZjc5ZDZkNGJhMWZiOWEzM2VmMmYw
MDQ2YzM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9jb25z
dHJhaW5lZC1oZWlnaHQtYm9keS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRv
c2l6aW5nL2NvbnN0cmFpbmVkLWhlaWdodC1ib2R5Lmh0bWwKQEAgLTUsNyArNSw3IEBACiA8bWV0
YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4KIDxzdHlsZT4KIGh0bWwgeyBm
b250LXNpemU6IDE2cHg7IH0KLWJvZHkgeyB3aWR0aDogODAwcHg7IG1hcmdpbjogMDsgfQorYm9k
eSB7IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAwOyBvdmVyZmxvdy15OiBoaWRkZW47IH0KIDwvc3R5
bGU+CiAKIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3Np
emluZy9jb25zdHJhaW5lZC10aGVuLWZsb2F0LWFuY2VzdG9ycy1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvY29uc3RyYWluZWQtdGhlbi1mbG9hdC1hbmNl
c3RvcnMtZXhwZWN0ZWQuaHRtbAppbmRleCAxZTY3MTA3MzNlYWNmMmM3YzBhMzRhNDhhZDAyOTFl
MDJmZDgxOWMwLi5hN2U2NjI2MTdhNGVkNDMwYmZhMjc1YWU3MmZlZGI4N2M3YzQzOGYzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9jb25zdHJhaW5lZC10aGVu
LWZsb2F0LWFuY2VzdG9ycy1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4
dC1hdXRvc2l6aW5nL2NvbnN0cmFpbmVkLXRoZW4tZmxvYXQtYW5jZXN0b3JzLWV4cGVjdGVkLmh0
bWwKQEAgLTUsNyArNSw3IEBACiA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9
ODAwIj4KIDxzdHlsZT4KIGh0bWwgeyBmb250LXNpemU6IDE2cHg7IH0KLWJvZHkgeyB3aWR0aDog
ODAwcHg7IG1hcmdpbjogMDsgfQorYm9keSB7IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAwOyBvdmVy
Zmxvdy15OiBoaWRkZW47IH0KIDwvc3R5bGU+CiAKIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2NvbnN0cmFpbmVkLXRoZW4tZmxvYXQtYW5jZXN0
b3JzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9jb25zdHJhaW5lZC10
aGVuLWZsb2F0LWFuY2VzdG9ycy5odG1sCmluZGV4IDgzYzliYjJmMzYwNjI5MDAwY2YyOWVlMjQy
MTEzYmQwNDBlYzQ4YjAuLmI4MmQxODU3NzhkNDZkZDIyN2U0N2FmY2JlZDdhMzMwNjMzODNkMTgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2NvbnN0cmFpbmVk
LXRoZW4tZmxvYXQtYW5jZXN0b3JzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1
dG9zaXppbmcvY29uc3RyYWluZWQtdGhlbi1mbG9hdC1hbmNlc3RvcnMuaHRtbApAQCAtNSw3ICs1
LDcgQEAKIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04MDAiPgogPHN0eWxl
PgogaHRtbCB7IGZvbnQtc2l6ZTogMTZweDsgfQotYm9keSB7IHdpZHRoOiA4MDBweDsgbWFyZ2lu
OiAwOyB9Citib2R5IHsgd2lkdGg6IDgwMHB4OyBtYXJnaW46IDA7IG92ZXJmbG93LXk6IGhpZGRl
bjsgfQogPC9zdHlsZT4KIAogPHNjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC1hdXRvc2l6aW5nL2NvbnN0cmFpbmVkLXRoZW4tcG9zaXRpb24tZml4ZWQtYW5jZXN0b3Jz
LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9jb25zdHJh
aW5lZC10aGVuLXBvc2l0aW9uLWZpeGVkLWFuY2VzdG9ycy1leHBlY3RlZC5odG1sCmluZGV4IDc4
M2E1MTJhNGUyZjhiMjI5MTU2MWEzZjFkODQ0NGQ1NDFiNmI5YTQuLjNiMjRiNGU0ZWIwNTI5NDI0
ZjM4ZTM2ZmY5Y2M0NjRmZDhlNDg0ZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4
dC1hdXRvc2l6aW5nL2NvbnN0cmFpbmVkLXRoZW4tcG9zaXRpb24tZml4ZWQtYW5jZXN0b3JzLWV4
cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvY29uc3Ry
YWluZWQtdGhlbi1wb3NpdGlvbi1maXhlZC1hbmNlc3RvcnMtZXhwZWN0ZWQuaHRtbApAQCAtNSw3
ICs1LDcgQEAKIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04MDAiPgogPHN0
eWxlPgogaHRtbCB7IGZvbnQtc2l6ZTogMTZweDsgfQotYm9keSB7IHdpZHRoOiA4MDBweDsgbWFy
Z2luOiAwOyB9Citib2R5IHsgd2lkdGg6IDgwMHB4OyBtYXJnaW46IDA7IG92ZXJmbG93LXk6IGhp
ZGRlbjsgfQogPC9zdHlsZT4KIAogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC90ZXh0LWF1dG9zaXppbmcvY29uc3RyYWluZWQtdGhlbi1wb3NpdGlvbi1maXhlZC1hbmNlc3Rv
cnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2NvbnN0cmFpbmVkLXRo
ZW4tcG9zaXRpb24tZml4ZWQtYW5jZXN0b3JzLmh0bWwKaW5kZXggMjRjNzdkNGQ4ZGM3Y2IxNmQ3
NDg2MTc1Mzg5NjUwMDJkZmNkYTVlZS4uMDYzODNkNWQ1ZDU0ZTBjZTIwNWVhNjJhZDg0NWY0NDZm
YzdkOTdmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvY29u
c3RyYWluZWQtdGhlbi1wb3NpdGlvbi1maXhlZC1hbmNlc3RvcnMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9jb25zdHJhaW5lZC10aGVuLXBvc2l0aW9uLWZpeGVk
LWFuY2VzdG9ycy5odG1sCkBAIC01LDcgKzUsNyBAQAogPG1ldGEgbmFtZT0idmlld3BvcnQiIGNv
bnRlbnQ9IndpZHRoPTgwMCI+CiA8c3R5bGU+CiBodG1sIHsgZm9udC1zaXplOiAxNnB4OyB9Ci1i
b2R5IHsgd2lkdGg6IDgwMHB4OyBtYXJnaW46IDA7IH0KK2JvZHkgeyB3aWR0aDogODAwcHg7IG1h
cmdpbjogMDsgb3ZlcmZsb3cteTogaGlkZGVuOyB9CiA8L3N0eWxlPgogCiA8c2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvbmVzdGVkLWVtLWxpbmUt
aGVpZ2h0LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9u
ZXN0ZWQtZW0tbGluZS1oZWlnaHQtZXhwZWN0ZWQuaHRtbAppbmRleCBjYWZmYjY4NDljZTgzNTE5
MGFiMzBhMTE3YjMyMTI4NjY0YzBkOTY4Li4zMjYzOGM0NWMwOTdiZDE4ZDlhMDFkYTY3MzMzOGMx
YzM4ZDgzNzJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9u
ZXN0ZWQtZW0tbGluZS1oZWlnaHQtZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3RleHQtYXV0b3NpemluZy9uZXN0ZWQtZW0tbGluZS1oZWlnaHQtZXhwZWN0ZWQuaHRtbApAQCAt
NSw3ICs1LDcgQEAKIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04MDAiPgog
PHN0eWxlPgogaHRtbCB7IGZvbnQtc2l6ZTogMTZweDsgfQotYm9keSB7IHdpZHRoOiA4MDBweDsg
bWFyZ2luOiAwOyB9Citib2R5IHsgd2lkdGg6IDgwMHB4OyBtYXJnaW46IDA7IG92ZXJmbG93LXk6
IGhpZGRlbjsgfQogPC9zdHlsZT4KIAogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0LWF1dG9zaXppbmcvbmVzdGVkLWVtLWxpbmUtaGVpZ2h0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9uZXN0ZWQtZW0tbGluZS1oZWlnaHQuaHRtbAppbmRl
eCAyYmFhNTVlYTljMjFmOTFhYzdmNTQxYjhjNDIxYWMzNGM4MGVlMjliLi4yYWEzNDVlZGJkMThk
NjdmMTc5MjkzNzY0ZDdlMmMwNzI2MjJhOGVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L3RleHQtYXV0b3NpemluZy9uZXN0ZWQtZW0tbGluZS1oZWlnaHQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9uZXN0ZWQtZW0tbGluZS1oZWlnaHQuaHRtbApAQCAt
NSw3ICs1LDcgQEAKIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04MDAiPgog
PHN0eWxlPgogaHRtbCB7IGZvbnQtc2l6ZTogMTZweDsgfQotYm9keSB7IHdpZHRoOiA4MDBweDsg
bWFyZ2luOiAwOyB9Citib2R5IHsgd2lkdGg6IDgwMHB4OyBtYXJnaW46IDA7IG92ZXJmbG93LXk6
IGhpZGRlbjsgfQogPC9zdHlsZT4KIAogPHNjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvdGV4dC1hdXRvc2l6aW5nL29zY2lsbGF0aW9uLWphdmFzY3JpcHQtZm9udHNpemUtY2hh
bmdlLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9vc2Np
bGxhdGlvbi1qYXZhc2NyaXB0LWZvbnRzaXplLWNoYW5nZS1leHBlY3RlZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjA0YTc5NDZjNDAxNzM4NTk3Yzg3OThlNDllZDMwMDA2Y2ZhMjMxMjQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9vc2NpbGxhdGlvbi1qYXZh
c2NyaXB0LWZvbnRzaXplLWNoYW5nZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWwgc3R5bGU9ImZvbnQtc2l6ZTogMTZweCI+Cis8aGVhZD4KKwor
PG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPTgwMCI+Cis8c3R5bGU+CisgIGJv
ZHkgeworICAgIHdpZHRoOiA4MDBweDsKKyAgICBtYXJnaW46IDA7CisgICAgb3ZlcmZsb3cteTog
aGlkZGVuOworICB9Cis8L3N0eWxlPgorCis8L2hlYWQ+Cis8Ym9keT4KKworPGRpdiBzdHlsZT0i
dG9wOjUwcHg7cG9zaXRpb246YWJzb2x1dGU7Zm9udC1zaXplOjE5LjhweCI+CisgICAgLiAuIC4g
LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu
IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuPGJyLz4KKyAgICBUaGlzIHBhcmFn
cmFwaCBzaG91bGQgYmUgYXV0b3NpemVkIHRvIDE5LjhweDxici8+CisgICAgYmVjYXVzZSBpdCBj
b250YWlucyBsaW5lIGJyZWFrcy48YnIvPgorICAgIFRoaXMgdGVzdCBpcyBpbnRlbmRlZCB0byBj
aGVjazxici8+CisgICAgdGhhdCB0aGVyZSBhcmUgbm8gb3NjaWxsYXRpb25zIGR1ZSB0byBqYXZh
c2NyaXB0PGJyLz4KKyAgICBicmllZmx5IGluY3JlYXNpbmcgdGhlIGZvbnQgc2l6ZSBvZiBhPGJy
Lz4KKyAgICBzbWFsbCBwYXJhZ3JhcGggYmVsb3cuCis8L2Rpdj4KKzxkaXYgaWQ9InNpemVjaGFu
Z2luZyI+CisgICAgVGhpcyB0ZXh0IGNoYW5nZXMgc2l6ZSB1c2luZyBqYXZhc2NyaXB0IGJlbG93
LgorPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvdGV4dC1hdXRvc2l6aW5nL29zY2lsbGF0aW9uLWphdmFzY3JpcHQtZm9udHNpemUtY2hhbmdl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9vc2NpbGxhdGlvbi1qYXZh
c2NyaXB0LWZvbnRzaXplLWNoYW5nZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5MGNjZTQ0Y2FlZmMwNTJh
NTI5ZGU0NzcxZjYxOTgyZjZmMDFlOTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3RleHQtYXV0b3NpemluZy9vc2NpbGxhdGlvbi1qYXZhc2NyaXB0LWZvbnRzaXplLWNoYW5n
ZS5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgc3R5bGU9ImZv
bnQtc2l6ZTogMTZweCI+Cis8aGVhZD4KKworPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9
IndpZHRoPTgwMCI+Cis8c3R5bGU+CisgIGJvZHkgeworICAgIHdpZHRoOiA4MDBweDsKKyAgICBt
YXJnaW46IDA7CisgICAgb3ZlcmZsb3cteTogaGlkZGVuOworICB9CisgIC5sYXJnZXJzaXple2Zv
bnQtc2l6ZTogMS4xZW19Cis8L3N0eWxlPgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFRleHRBdXRvc2l6aW5nRW5h
YmxlZCh0cnVlKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFRleHRBdXRvc2l6
aW5nV2luZG93U2l6ZU92ZXJyaWRlKDMyMCwgNDgwKTsKK30gZWxzZSBpZiAod2luZG93LmNvbnNv
bGUgJiYgY29uc29sZS53YXJuKSB7CisgICAgY29uc29sZS53YXJuKCJUaGlzIHRlc3QgZGVwZW5k
cyBvbiB0aGUgVGV4dCBBdXRvc2l6aW5nIHNldHRpbmcgYmVpbmcgdHJ1ZSwgc28gcnVuIGl0IGlu
IER1bXBSZW5kZXJUcmVlLCBvciBtYW51YWxseSBlbmFibGUgVGV4dCBBdXRvc2l6aW5nLCBhbmQg
ZWl0aGVyIHVzZSBhIG1vYmlsZSBkZXZpY2Ugd2l0aCAzMjBweCBkZXZpY2Utd2lkdGggKGxpa2Ug
TmV4dXMgUyBvciBpUGhvbmUpLCBvciBkZWZpbmUgSEFDS19GT1JDRV9URVhUX0FVVE9TSVpJTkdf
T05fREVTS1RPUC4iKTsKK30KKzwvc2NyaXB0PgorCis8L2hlYWQ+Cis8Ym9keT4KKworPGRpdiBz
dHlsZT0idG9wOjUwcHg7cG9zaXRpb246YWJzb2x1dGU7Ij4KKyAgICAuIC4gLiAuIC4gLiAuIC4g
LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu
IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC48YnIvPgorICAgIFRoaXMgcGFyYWdyYXBoIHNob3Vs
ZCBiZSBhdXRvc2l6ZWQgdG8gMTkuOHB4PGJyLz4KKyAgICBiZWNhdXNlIGl0IGNvbnRhaW5zIGxp
bmUgYnJlYWtzLjxici8+CisgICAgVGhpcyB0ZXN0IGlzIGludGVuZGVkIHRvIGNoZWNrPGJyLz4K
KyAgICB0aGF0IHRoZXJlIGFyZSBubyBvc2NpbGxhdGlvbnMgZHVlIHRvIGphdmFzY3JpcHQ8YnIv
PgorICAgIGJyaWVmbHkgaW5jcmVhc2luZyB0aGUgZm9udCBzaXplIG9mIGE8YnIvPgorICAgIHNt
YWxsIHBhcmFncmFwaCBiZWxvdy4KKzwvZGl2PgorPGRpdiBpZD0ic2l6ZWNoYW5naW5nIj4KKyAg
ICBUaGlzIHRleHQgY2hhbmdlcyBzaXplIHVzaW5nIGphdmFzY3JpcHQgYmVsb3cuCis8L2Rpdj4K
KworPHNjcmlwdD4KK2VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2l6ZWNoYW5n
aW5nIik7CitpZiAoZWxlbWVudC5vZmZzZXRIZWlnaHQpIHsKKyAgICAvLyBmb3JjZSBsYXlvdXQg
KGNvbXB1dGF0aW9uIG9mIG9mZnNldEhlaWdodCB0cmlnZ2VycyByZWZsb3cpCit9CitlbGVtZW50
LmNsYXNzTmFtZSA9ICdsYXJnZXJzaXplJzsKK2lmIChlbGVtZW50Lm9mZnNldEhlaWdodCkge30K
K2VsZW1lbnQuY2xhc3NOYW1lID0gJyc7CitpZiAoZWxlbWVudC5vZmZzZXRIZWlnaHQpIHt9Cis8
L3NjcmlwdD4KKzxub3NjcmlwdD5mYWlsIChubyBzdXBwb3J0IGZvciBqYXZhc2NyaXB0KTwvbm9z
Y3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC1hdXRvc2l6aW5nL3NpbXBsZS1wYXJhZ3JhcGgtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL3NpbXBsZS1wYXJhZ3JhcGgtZXhwZWN0ZWQuaHRtbApp
bmRleCAzZmQ0YTNhNDc3NGNhYWFhMjVkMzAzMDFhMWY3OTI4ODFmNjc0ZDY1Li5kMTVhYjIxMjA3
YWU2ZjhmNzIxNWNjYjA0ZGFjYzgxZGM1NzQyODE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3RleHQtYXV0b3NpemluZy9zaW1wbGUtcGFyYWdyYXBoLWV4cGVjdGVkLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvc2ltcGxlLXBhcmFncmFwaC1leHBlY3Rl
ZC5odG1sCkBAIC01LDcgKzUsNyBAQAogPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9Indp
ZHRoPTgwMCI+CiA8c3R5bGU+CiBodG1sIHsgZm9udC1zaXplOiAxNnB4OyB9Ci1ib2R5IHsgd2lk
dGg6IDgwMHB4OyBtYXJnaW46IDA7IH0KK2JvZHkgeyB3aWR0aDogODAwcHg7IG1hcmdpbjogMDsg
b3ZlcmZsb3cteTogaGlkZGVuOyB9CiA8L3N0eWxlPgogCiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9zaW1wbGUtcGFyYWdyYXBoLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9zaW1wbGUtcGFyYWdyYXBoLmh0bWwKaW5k
ZXggODUwOTE2ZTg3N2Y1MDUwMmU5Mzc5ZmVmYmM3ODg5OGRkOGE5MjcwZS4uYzk3NGM0YjFkNTJh
ZjQ5MDhiODg2NzFjYzYyMDlkMDlkMDEyZTdiOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC90ZXh0LWF1dG9zaXppbmcvc2ltcGxlLXBhcmFncmFwaC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvdGV4dC1hdXRvc2l6aW5nL3NpbXBsZS1wYXJhZ3JhcGguaHRtbApAQCAtNSw3ICs1LDcg
QEAKIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04MDAiPgogPHN0eWxlPgog
aHRtbCB7IGZvbnQtc2l6ZTogMTZweDsgfQotYm9keSB7IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAw
OyB9Citib2R5IHsgd2lkdGg6IDgwMHB4OyBtYXJnaW46IDA7IG92ZXJmbG93LXk6IGhpZGRlbjsg
fQogPC9zdHlsZT4KIAogPHNjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4
dC1hdXRvc2l6aW5nL3NwYW4tY2hpbGQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC1hdXRvc2l6aW5nL3NwYW4tY2hpbGQtZXhwZWN0ZWQuaHRtbAppbmRleCBjYzQ0MjE2M2Yz
N2Q2YWExMzUxYWZkODY1YWI0ODk2NTNhZTY2YmI4Li5jMDI5OTFhNzY4YjI5NGMzMmZmMzRjZDc4
MTc2NzYzOGUyZDI3YzkwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3Np
emluZy9zcGFuLWNoaWxkLWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
LWF1dG9zaXppbmcvc3Bhbi1jaGlsZC1leHBlY3RlZC5odG1sCkBAIC01LDcgKzUsNyBAQAogPG1l
dGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPTgwMCI+CiA8c3R5bGU+CiBodG1sIHsg
Zm9udC1zaXplOiAxNnB4OyB9Ci1ib2R5IHsgd2lkdGg6IDgwMHB4OyBtYXJnaW46IDA7IH0KK2Jv
ZHkgeyB3aWR0aDogODAwcHg7IG1hcmdpbjogMDsgb3ZlcmZsb3cteTogaGlkZGVuOyB9CiA8L3N0
eWxlPgogCiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3Np
emluZy9zcGFuLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9z
cGFuLWNoaWxkLmh0bWwKaW5kZXggODI1YmY0NGZhNzE5YWNkNDA0Mjg4YTdiNmU1NzgwMWIwMjAw
NGUzZi4uNzc1NDA2MzU2N2RiYWUzY2VkY2QwOTUxOWMyMWE5OGQ5YmZiZjYwMiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvc3Bhbi1jaGlsZC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL3NwYW4tY2hpbGQuaHRtbApAQCAtNSw3
ICs1LDcgQEAKIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04MDAiPgogPHN0
eWxlPgogaHRtbCB7IGZvbnQtc2l6ZTogMTZweDsgfQotYm9keSB7IHdpZHRoOiA4MDBweDsgbWFy
Z2luOiAwOyB9Citib2R5IHsgd2lkdGg6IDgwMHB4OyBtYXJnaW46IDA7IG92ZXJmbG93LXk6IGhp
ZGRlbjsgfQogPC9zdHlsZT4KIAogPHNjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvdGV4dC1hdXRvc2l6aW5nL3Vud3JhcHBhYmxlLWJsb2Nrcy1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvdW53cmFwcGFibGUtYmxvY2tzLWV4cGVjdGVk
Lmh0bWwKaW5kZXggNDhkM2I4ODhiMTc5YWMyZmRmYTJkZDA1ODc1MDY1Y2FjZDJiOGYxYy4uN2Vk
MThkZmFhYjcyZTRlM2E5MjMxZWU3NzRjNTI3MzhkZjU4ZmI3YSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvdW53cmFwcGFibGUtYmxvY2tzLWV4cGVjdGVkLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvdW53cmFwcGFibGUtYmxv
Y2tzLWV4cGVjdGVkLmh0bWwKQEAgLTUsNyArNSw3IEBACiA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg
Y29udGVudD0id2lkdGg9ODAwIj4KIDxzdHlsZT4KIGh0bWwgeyBmb250LXNpemU6IDE2cHg7IH0K
LWJvZHkgeyB3aWR0aDogODAwcHg7IG1hcmdpbjogMDsgfQorYm9keSB7IHdpZHRoOiA4MDBweDsg
bWFyZ2luOiAwOyBvdmVyZmxvdy15OiBoaWRkZW47IH0KIHByZSB7IG1hcmdpbjogMDsgfQogPC9z
dHlsZT4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvdW53
cmFwcGFibGUtYmxvY2tzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy91
bndyYXBwYWJsZS1ibG9ja3MuaHRtbAppbmRleCBiNjYwM2FlZDQ0N2M5YzE2ODYxODIyMjJlYWE0
ODU1MmVlMTU1NmM1Li43OTI5NDU0OTZjYWMxMDZiNjVkZjk3MDc1YmMyZjc3OGM4N2M1ZThlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy91bndyYXBwYWJsZS1i
bG9ja3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy91bndyYXBw
YWJsZS1ibG9ja3MuaHRtbApAQCAtNSw3ICs1LDcgQEAKIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBj
b250ZW50PSJ3aWR0aD04MDAiPgogPHN0eWxlPgogaHRtbCB7IGZvbnQtc2l6ZTogMTZweDsgfQot
Ym9keSB7IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAwOyB9Citib2R5IHsgd2lkdGg6IDgwMHB4OyBt
YXJnaW46IDA7IG92ZXJmbG93LXk6IGhpZGRlbjsgfQogcHJlIHsgbWFyZ2luOiAwOyB9CiA8L3N0
eWxlPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy91bndy
YXBwYWJsZS1pbmxpbmVzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0
b3NpemluZy91bndyYXBwYWJsZS1pbmxpbmVzLWV4cGVjdGVkLmh0bWwKaW5kZXggNDhmYzkwMzkw
OGRmMmFiYmZlNDhmYmNhNzI2MmM1MWI4ODBiZDZlZS4uYTcxODgxNDFkOTAxMjg4YWI0OThiYjU2
MDQyYTEyYzRkNjIyNDljNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9z
aXppbmcvdW53cmFwcGFibGUtaW5saW5lcy1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvdGV4dC1hdXRvc2l6aW5nL3Vud3JhcHBhYmxlLWlubGluZXMtZXhwZWN0ZWQuaHRtbApA
QCAtNSw3ICs1LDcgQEAKIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04MDAi
PgogPHN0eWxlPgogaHRtbCB7IGZvbnQtc2l6ZTogMTZweDsgfQotYm9keSB7IHdpZHRoOiA4MDBw
eDsgbWFyZ2luOiAwOyB9Citib2R5IHsgd2lkdGg6IDgwMHB4OyBtYXJnaW46IDA7IG92ZXJmbG93
LXk6IGhpZGRlbjsgfQogcHJlIHsgbWFyZ2luOiAwOyB9CiA8L3N0eWxlPgogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy91bndyYXBwYWJsZS1pbmxpbmVzLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy91bndyYXBwYWJsZS1pbmxpbmVz
Lmh0bWwKaW5kZXggOWIwNzMyZWU4NmNkM2JhOTYwNDlhY2Y5ZTA2YTMxNzI5MmM2ZGJlMS4uMTY0
MzRjOThmNzVhMDU0MGI1YjdkZDMyYTE3YTM1NTRhOTRlYjg5NyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvdW53cmFwcGFibGUtaW5saW5lcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL3Vud3JhcHBhYmxlLWlubGluZXMuaHRt
bApAQCAtNSw3ICs1LDcgQEAKIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04
MDAiPgogPHN0eWxlPgogaHRtbCB7IGZvbnQtc2l6ZTogMTZweDsgfQotYm9keSB7IHdpZHRoOiA4
MDBweDsgbWFyZ2luOiAwOyB9Citib2R5IHsgd2lkdGg6IDgwMHB4OyBtYXJnaW46IDA7IG92ZXJm
bG93LXk6IGhpZGRlbjsgfQogcHJlIHsgbWFyZ2luOiAwOyB9CiA8L3N0eWxlPgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188903</attachid>
            <date>2013-02-18 09:21:20 -0800</date>
            <delta_ts>2013-02-19 10:59:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108205-20130218171742.patch</filename>
            <type>text/plain</type>
            <size>20963</size>
            <attacher>timvolodine</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyOTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDkzZTVlNWE2MTdhN2U0
M2MyZGM2YTViNDBiMGE3ZWZmNDY5MGIyNy4uNGU5NjI1YmRiZGMyZmVkNjM5N2FkNzNjMDVlZjA2
MjAzMWM4NzQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAyLTE4ICBUaW0g
Vm9sb2RpbmUgIDx0aW12b2xvZGluZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGV4dCBBdXRv
c2l6aW5nOiBwcmV2ZW50IG9zY2lsbGF0aW9uIG9mIGZvbnQgc2l6ZXMgZHVyaW5nIGF1dG9zaXpp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODIw
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9uIHNv
bWUgd2Vic2l0ZXMgYXV0b3NpemVkIGZvbnQtc2l6ZXMgb3NjaWxsYXRlIGR1ZSB0byBsYXlvdXRz
IGNhdXNlZCBieQorICAgICAgICBob3ZlcmluZyBvciBpbmNyZW1lbnRhbCBwYWdlIGxvYWRpbmcg
KGFuZCBvbiBvdGhlciBzaXRlcyBmb250IHNpemVzIGRvCisgICAgICAgIGV2ZW50dWFsbHkgc3Rh
YmlsaXplLCBidXQgaXQgdGFrZXMgbWFueSBsYXlvdXRzIGJlZm9yZSB0aGV5IHJlYWNoIGEgc3Rl
YWR5CisgICAgICAgIHNpemUpLiBUbyBwcmV2ZW50IGFsbCB0aGVzZSBjYXNlcywgd2Ugbm8gbG9u
Z2VyIGFsbG93IHRoZSBhdXRvc2l6aW5nCisgICAgICAgIG11bHRpcGxpZXIgdG8gY2hhbmdlIGFm
dGVyIGl0IGhhcyBiZWVuIHNldCAodG8gYSB2YWx1ZSBvdGhlciB0aGFuIDEpLgorCisgICAgICAg
IFRoaXMgd29uJ3QgYWx3YXlzIGdpdmUgZXhhY3RseSB0aGUgc2FtZSByZXN1bHRzLCBidXQgdGVz
dGluZyBvbiAyMDAwIHRvcAorICAgICAgICBzaXRlcyBzaG93cyB0aGF0IHRoaXMgbWFrZXMgbGl0
dGxlIGRpZmZlcmVuY2UgaW4gcHJhY3RpY2UsIGFuZCBpdCBwcmV2ZW50cworICAgICAgICB0aGVz
ZSB2ZXJ5IGphcnJpbmcgY2FzZXMuIEFzIGEgaGFwcHkgc2lkZS1lZmZlY3QsIHRoaXMgc3BlZWRz
IHVwIGxheW91dHMKKyAgICAgICAgYXMgZm9udCBzaXplcyBjaGFuZ2UgbGVzcy4KKworICAgICAg
ICBUZXN0OiBmYXN0L3RleHQtYXV0b3NpemluZy9vc2NpbGxhdGlvbi1qYXZhc2NyaXB0LWZvbnRz
aXplLWNoYW5nZS5odG1sCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVZpZXc6OnNldEZyYW1lUmVjdCk6CisgICAgICAgICogcGFnZS9TZXR0
aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0VGV4dEF1dG9zaXppbmdG
b250U2NhbGVGYWN0b3IpOgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OnJlY2FsY3VsYXRlTXVsdGlwbGllcnMp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0QXV0b3NpemVyOjpw
cm9jZXNzQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dEF1dG9zaXplci5oOgor
ICAgICAgICAoVGV4dEF1dG9zaXplcik6CisKIDIwMTMtMDItMTQgIFl1cnkgU2VtaWtoYXRza3kg
IDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYWx3YXlzIHNo
b3cgbWVtb3J5IHNpemUgaW4gTWIgb24gdGhlIG5hdGl2ZSBtZW1vcnkgZ3JhcGgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcAppbmRleCBkYWNhMDg4MTBjOTUxOGRmMzhjYmZjYmI0OGUyMjIzNDFl
YjYyOTQ5Li43NWY3YzI0NWE5YzljZGZkNzQ2MzVjODczYmFkYzc2ZDVhYjE5Mzg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC00NDQsNiArNDQ0LDE3IEBAIHZvaWQgRnJhbWVWaWV3
OjpzZXRGcmFtZVJlY3QoY29uc3QgSW50UmVjdCYgbmV3UmVjdCkKICAgICBpZiAobmV3UmVjdCA9
PSBvbGRSZWN0KQogICAgICAgICByZXR1cm47CiAKKyNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5H
KQorICAgIC8vIEF1dG9zaXplZCBmb250IHNpemVzIGRlcGVuZCBvbiB0aGUgd2lkdGggb2YgdGhl
IHZpZXdpbmcgYXJlYS4KKyAgICBpZiAobmV3UmVjdC53aWR0aCgpICE9IG9sZFJlY3Qud2lkdGgo
KSkgeworICAgICAgICBQYWdlKiBwYWdlID0gbV9mcmFtZSA/IG1fZnJhbWUtPnBhZ2UoKSA6IDA7
CisgICAgICAgIGlmIChwYWdlICYmIHBhZ2UtPm1haW5GcmFtZSgpID09IG1fZnJhbWUgJiYgcGFn
ZS0+c2V0dGluZ3MoKS0+dGV4dEF1dG9zaXppbmdFbmFibGVkKCkpIHsKKyAgICAgICAgICAgIGZv
ciAoRnJhbWUqIGZyYW1lID0gcGFnZS0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1l
LT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKQorICAgICAgICAgICAgICAgIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPnRleHRBdXRvc2l6ZXIoKS0+cmVjYWxjdWxhdGVNdWx0aXBsaWVycygpOworICAgICAg
ICB9CisgICAgfQorI2VuZGlmCisKICAgICBTY3JvbGxWaWV3OjpzZXRGcmFtZVJlY3QobmV3UmVj
dCk7CiAKICAgICB1cGRhdGVTY3JvbGxhYmxlQXJlYVNldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmNwcAppbmRleCBmZmNkYTM0NWU2ZTQ1ZDhlMDkxNjkzNGE0MjRlZDY0OGE4MGNkZGYyLi5lODhh
MDc1ZDYxMDBiZDgwMzhmNjIxMzU0OGMwOWQwNjczZjRkNWUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIlBhZ2VDYWNoZS5oIgogI2luY2x1
ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU1hcC5oIgorI2luY2x1ZGUg
IlRleHRBdXRvc2l6ZXIuaCIKICNpbmNsdWRlIDxsaW1pdHM+CiAKIHVzaW5nIG5hbWVzcGFjZSBz
dGQ7CkBAIC0zNjQsNiArMzY1LDExIEBAIHZvaWQgU2V0dGluZ3M6OnNldFRleHRBdXRvc2l6aW5n
V2luZG93U2l6ZU92ZXJyaWRlKGNvbnN0IEludFNpemUmIHRleHRBdXRvc2l6aW5nCiB2b2lkIFNl
dHRpbmdzOjpzZXRUZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcihmbG9hdCBmb250U2NhbGVG
YWN0b3IpCiB7CiAgICAgbV90ZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvciA9IGZvbnRTY2Fs
ZUZhY3RvcjsKKworICAgIC8vIEZJWE1FOiBJIHdvbmRlciBpZiB0aGlzIG5lZWRzIHRvIHRyYXZl
cnNlIGZyYW1lcyBsaWtlIGluIFdlYlZpZXdJbXBsOjpyZXNpemUsIG9yIHdoZXRoZXIgdGhlcmUg
aXMgb25seSBvbmUgZG9jdW1lbnQgcGVyIFNldHRpbmdzIGluc3RhbmNlPworICAgIGZvciAoRnJh
bWUqIGZyYW1lID0gbV9wYWdlLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRy
ZWUoKS0+dHJhdmVyc2VOZXh0KCkpCisgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT50ZXh0QXV0
b3NpemVyKCktPnJlY2FsY3VsYXRlTXVsdGlwbGllcnMoKTsKKwogICAgIG1fcGFnZS0+c2V0TmVl
ZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9UZXh0QXV0b3NpemVyLmNwcAppbmRleCAzNDI2MzdhYWFiZWZhNWMxZGU2MjU0ZWQ2YTAzNzVk
OTYxMjM5NzM1Li43YWU0M2U3YWVjZGM2Nzg0NzZiZDg5NmE5NTM1MzM1MWFjMjFjN2E2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwCkBAIC05MSw2ICs5MSwx
NiBAQCBUZXh0QXV0b3NpemVyOjp+VGV4dEF1dG9zaXplcigpCiB7CiB9CiAKK3ZvaWQgVGV4dEF1
dG9zaXplcjo6cmVjYWxjdWxhdGVNdWx0aXBsaWVycygpCit7CisgICAgUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlciA9IG1fZG9jdW1lbnQtPnJlbmRlcmVyKCk7CisgICAgd2hpbGUgKHJlbmRlcmVyKSB7
CisgICAgICAgIGlmIChyZW5kZXJlci0+c3R5bGUoKSAmJiByZW5kZXJlci0+c3R5bGUoKS0+dGV4
dEF1dG9zaXppbmdNdWx0aXBsaWVyKCkgIT0gMSkKKyAgICAgICAgICAgIHNldE11bHRpcGxpZXIo
cmVuZGVyZXIsIDEpOworICAgICAgICByZW5kZXJlciA9IHJlbmRlcmVyLT5uZXh0SW5QcmVPcmRl
cigpOworICAgIH0KK30KKwogYm9vbCBUZXh0QXV0b3NpemVyOjpwcm9jZXNzU3VidHJlZShSZW5k
ZXJPYmplY3QqIGxheW91dFJvb3QpCiB7CiAgICAgLy8gRklYTUU6IFRleHQgQXV0b3NpemluZyBz
aG91bGQgb25seSBiZSBlbmFibGVkIHdoZW4gbV9kb2N1bWVudC0+cGFnZSgpLT5tYWluRnJhbWUo
KS0+dmlldygpLT51c2VGaXhlZExheW91dCgpCkBAIC0xODYsNyArMTk2LDcgQEAgdm9pZCBUZXh0
QXV0b3NpemVyOjpwcm9jZXNzQ29udGFpbmVyKGZsb2F0IG11bHRpcGxpZXIsIFJlbmRlckJsb2Nr
KiBjb250YWluZXIsIFQKICAgICBSZW5kZXJPYmplY3QqIGRlc2NlbmRhbnQgPSBuZXh0SW5QcmVP
cmRlclNraXBwaW5nRGVzY2VuZGFudHNPZkNvbnRhaW5lcnMoc3VidHJlZVJvb3QsIHN1YnRyZWVS
b290KTsKICAgICB3aGlsZSAoZGVzY2VuZGFudCkgewogICAgICAgICBpZiAoZGVzY2VuZGFudC0+
aXNUZXh0KCkpIHsKLSAgICAgICAgICAgIGlmIChsb2NhbE11bHRpcGxpZXIgIT0gZGVzY2VuZGFu
dC0+c3R5bGUoKS0+dGV4dEF1dG9zaXppbmdNdWx0aXBsaWVyKCkpIHsKKyAgICAgICAgICAgIGlm
IChsb2NhbE11bHRpcGxpZXIgIT0gMSAmJiBkZXNjZW5kYW50LT5zdHlsZSgpLT50ZXh0QXV0b3Np
emluZ011bHRpcGxpZXIoKSA9PSAxKSB7CiAgICAgICAgICAgICAgICAgc2V0TXVsdGlwbGllcihk
ZXNjZW5kYW50LCBsb2NhbE11bHRpcGxpZXIpOwogICAgICAgICAgICAgICAgIHNldE11bHRpcGxp
ZXIoZGVzY2VuZGFudC0+cGFyZW50KCksIGxvY2FsTXVsdGlwbGllcik7IC8vIFBhcmVudCBkb2Vz
IGxpbmUgc3BhY2luZy4KICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4
dEF1dG9zaXplci5oCmluZGV4IDY0OTVhMzAyYjA4N2U3N2M3ODA4ZWFiMjEzZjM2MmVlYzNmYmJh
N2IuLjY5YmY1NTAzZWNmOGU0N2E4ZDY1MjRkOGFmOWQzMDQxNmU3Y2YzNDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuaApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB+VGV4dEF1dG9zaXplcigpOwogCiAgICAgYm9vbCBwcm9jZXNzU3VidHJl
ZShSZW5kZXJPYmplY3QqIGxheW91dFJvb3QpOworICAgIHZvaWQgcmVjYWxjdWxhdGVNdWx0aXBs
aWVycygpOwogCiAgICAgc3RhdGljIGZsb2F0IGNvbXB1dGVBdXRvc2l6ZWRGb250U2l6ZShmbG9h
dCBzcGVjaWZpZWRTaXplLCBmbG9hdCBtdWx0aXBsaWVyKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDM1Y2Y1MzE2ZDJi
OGZjMDllN2U0Y2NiOTMyMTY3ZmRmZDJmMmRkZmUuLjBlMmJjOGFmYjY3MzQxOTk1MmQxMTc5YWEy
ODNlODY2M2YzNzQ3YTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMy0wMi0xOCAgVGltIFZv
bG9kaW5lICA8dGltdm9sb2RpbmVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFRleHQgQXV0b3Np
emluZzogcHJldmVudCBvc2NpbGxhdGlvbiBvZiBmb250IHNpemVzIGR1cmluZyBhdXRvc2l6aW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgyMDUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBv
dmVyZmxvdy15OmhpZGRlbiB0byBzb21lIGV4aXN0aW5nIHRlc3RzLCBzaW5jZSBwcmV2aW91c2x5
IHRob3NlIHRlc3RzCisgICAgICAgIHdvdWxkIHN0YXJ0IG9mZiB3aXRoIGluY29ycmVjdCBtdWx0
aXBsaWVycyAoYmVjYXVzZSBtYWluRnJhbWUtPnZpZXcoKS1sYXlvdXRTaXplKCkKKyAgICAgICAg
aXMgaW5pdGlhbGx5IDc4NSBpbnN0ZWFkIG9mIDgwMCBhcyBTY3JvbGxWaWV3IHdyb25nbHkgZ3Vl
c3NlcyBhIHNjcm9sbGJhciB3aWxsCisgICAgICAgIGJlIG5lZWRlZCksIGFuZCB0aGVuIHRoZSBt
dWx0aXBsaWVycyB3b3VsZCBnZXQgY29ycmVjdGVkIG9uIGEgc3Vic2VxdWVudCBsYXlvdXQuCisg
ICAgICAgIE5vdyB0aGF0IHdlIGRvbid0IGFsbG93IHRoZSBtdWx0aXBsaWVyIHRvIGNoYW5nZSBh
ZnRlciBiZWluZyBzZXQsIGl0IG5lZWRzIHRvIGJlCisgICAgICAgIHJpZ2h0IGZpcnN0IHRpbWUu
CisgICAgICAgIEFsc28gYWRkZWQgc3BlY2lmaWMgb3NjaWxsYXRpb24gdGVzdCB0cmlnZ2VyZWQg
YnkgamF2YXNjcmlwdC4KKworICAgICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL2NvbnN0cmFp
bmVkLWhlaWdodC1ib2R5LWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFzdC90ZXh0LWF1dG9z
aXppbmcvY29uc3RyYWluZWQtaGVpZ2h0LWJvZHkuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RleHQt
YXV0b3NpemluZy9jb25zdHJhaW5lZC10aGVuLWZsb2F0LWFuY2VzdG9ycy1leHBlY3RlZC5odG1s
OgorICAgICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL2NvbnN0cmFpbmVkLXRoZW4tZmxvYXQt
YW5jZXN0b3JzLmh0bWw6CisgICAgICAgICogZmFzdC90ZXh0LWF1dG9zaXppbmcvY29uc3RyYWlu
ZWQtdGhlbi1wb3NpdGlvbi1maXhlZC1hbmNlc3RvcnMtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAg
KiBmYXN0L3RleHQtYXV0b3NpemluZy9jb25zdHJhaW5lZC10aGVuLXBvc2l0aW9uLWZpeGVkLWFu
Y2VzdG9ycy5odG1sOgorICAgICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL25lc3RlZC1lbS1s
aW5lLWhlaWdodC1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5n
L25lc3RlZC1lbS1saW5lLWhlaWdodC5odG1sOgorICAgICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6
aW5nL29zY2lsbGF0aW9uLWphdmFzY3JpcHQtZm9udHNpemUtY2hhbmdlLWV4cGVjdGVkLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL29zY2lsbGF0aW9uLWphdmFz
Y3JpcHQtZm9udHNpemUtY2hhbmdlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC1h
dXRvc2l6aW5nL3NpbXBsZS1wYXJhZ3JhcGgtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3RleHQtYXV0b3NpemluZy9zaW1wbGUtcGFyYWdyYXBoLmh0bWw6CisgICAgICAgICogZmFzdC90
ZXh0LWF1dG9zaXppbmcvc3Bhbi1jaGlsZC1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGZhc3Qv
dGV4dC1hdXRvc2l6aW5nL3NwYW4tY2hpbGQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RleHQtYXV0
b3NpemluZy91bndyYXBwYWJsZS1ibG9ja3MtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3RleHQtYXV0b3NpemluZy91bndyYXBwYWJsZS1ibG9ja3MuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3RleHQtYXV0b3NpemluZy91bndyYXBwYWJsZS1pbmxpbmVzLWV4cGVjdGVkLmh0bWw6CisgICAg
ICAgICogZmFzdC90ZXh0LWF1dG9zaXppbmcvdW53cmFwcGFibGUtaW5saW5lcy5odG1sOgorCiAy
MDEzLTAyLTE1ICBLd2FuZ1lvbmcgQ2hvaSAgPGt5MC5jaG9pQHNhbXN1bmcuY29tPgogCiAgICAg
ICAgIFtFRkxdIGZhc3QvZm9ybXMvaW5wdXQtdGV4dC1zY3JvbGwtbGVmdC1vbi1ibHVyLmh0bWwg
aXMgcGFzc2luZyBub3cKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6
aW5nL2NvbnN0cmFpbmVkLWhlaWdodC1ib2R5LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3RleHQtYXV0b3NpemluZy9jb25zdHJhaW5lZC1oZWlnaHQtYm9keS1leHBlY3RlZC5odG1s
CmluZGV4IDU5YTEwODBjODM1ZDIxYmZhZGIxYmVjYTBmOTZjMTUwNWU3YTIwYzIuLmJlM2NkMmYz
ODYyODRhYzhmY2ZhNTdiODgxOTNmYmYzYjE3MzFjM2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2NvbnN0cmFpbmVkLWhlaWdodC1ib2R5LWV4cGVjdGVkLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvY29uc3RyYWluZWQtaGVp
Z2h0LWJvZHktZXhwZWN0ZWQuaHRtbApAQCAtNSw3ICs1LDcgQEAKIDxtZXRhIG5hbWU9InZpZXdw
b3J0IiBjb250ZW50PSJ3aWR0aD04MDAiPgogPHN0eWxlPgogaHRtbCB7IGZvbnQtc2l6ZTogMTZw
eDsgfQotYm9keSB7IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAwOyB9Citib2R5IHsgd2lkdGg6IDgw
MHB4OyBtYXJnaW46IDA7IG92ZXJmbG93LXk6IGhpZGRlbjsgfQogPC9zdHlsZT4KIAogPC9oZWFk
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvY29uc3RyYWlu
ZWQtaGVpZ2h0LWJvZHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2Nv
bnN0cmFpbmVkLWhlaWdodC1ib2R5Lmh0bWwKaW5kZXggMjZlYzcwYTJiOTIwM2QzZDkyMDczMDBk
MzFmZWNkOTRkNTA3Nzc4MS4uYmM0MWZiZGM2YmYxMmY3OWQ2ZDRiYTFmYjlhMzNlZjJmMDA0NmMz
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvY29uc3RyYWlu
ZWQtaGVpZ2h0LWJvZHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3Npemlu
Zy9jb25zdHJhaW5lZC1oZWlnaHQtYm9keS5odG1sCkBAIC01LDcgKzUsNyBAQAogPG1ldGEgbmFt
ZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPTgwMCI+CiA8c3R5bGU+CiBodG1sIHsgZm9udC1z
aXplOiAxNnB4OyB9Ci1ib2R5IHsgd2lkdGg6IDgwMHB4OyBtYXJnaW46IDA7IH0KK2JvZHkgeyB3
aWR0aDogODAwcHg7IG1hcmdpbjogMDsgb3ZlcmZsb3cteTogaGlkZGVuOyB9CiA8L3N0eWxlPgog
CiA8c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcv
Y29uc3RyYWluZWQtdGhlbi1mbG9hdC1hbmNlc3RvcnMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2NvbnN0cmFpbmVkLXRoZW4tZmxvYXQtYW5jZXN0b3Jz
LWV4cGVjdGVkLmh0bWwKaW5kZXggMWU2NzEwNzMzZWFjZjJjN2MwYTM0YTQ4YWQwMjkxZTAyZmQ4
MTljMC4uYTdlNjYyNjE3YTRlZDQzMGJmYTI3NWFlNzJmZWRiODdjN2M0MzhmMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvY29uc3RyYWluZWQtdGhlbi1mbG9h
dC1hbmNlc3RvcnMtZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0
b3NpemluZy9jb25zdHJhaW5lZC10aGVuLWZsb2F0LWFuY2VzdG9ycy1leHBlY3RlZC5odG1sCkBA
IC01LDcgKzUsNyBAQAogPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPTgwMCI+
CiA8c3R5bGU+CiBodG1sIHsgZm9udC1zaXplOiAxNnB4OyB9Ci1ib2R5IHsgd2lkdGg6IDgwMHB4
OyBtYXJnaW46IDA7IH0KK2JvZHkgeyB3aWR0aDogODAwcHg7IG1hcmdpbjogMDsgb3ZlcmZsb3ct
eTogaGlkZGVuOyB9CiA8L3N0eWxlPgogCiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3RleHQtYXV0b3NpemluZy9jb25zdHJhaW5lZC10aGVuLWZsb2F0LWFuY2VzdG9ycy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvY29uc3RyYWluZWQtdGhlbi1m
bG9hdC1hbmNlc3RvcnMuaHRtbAppbmRleCA4M2M5YmIyZjM2MDYyOTAwMGNmMjllZTI0MjExM2Jk
MDQwZWM0OGIwLi5iODJkMTg1Nzc4ZDQ2ZGQyMjdlNDdhZmNiZWQ3YTMzMDYzMzgzZDE4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9jb25zdHJhaW5lZC10aGVu
LWZsb2F0LWFuY2VzdG9ycy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6
aW5nL2NvbnN0cmFpbmVkLXRoZW4tZmxvYXQtYW5jZXN0b3JzLmh0bWwKQEAgLTUsNyArNSw3IEBA
CiA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4KIDxzdHlsZT4KIGh0
bWwgeyBmb250LXNpemU6IDE2cHg7IH0KLWJvZHkgeyB3aWR0aDogODAwcHg7IG1hcmdpbjogMDsg
fQorYm9keSB7IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAwOyBvdmVyZmxvdy15OiBoaWRkZW47IH0K
IDwvc3R5bGU+CiAKIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQt
YXV0b3NpemluZy9jb25zdHJhaW5lZC10aGVuLXBvc2l0aW9uLWZpeGVkLWFuY2VzdG9ycy1leHBl
Y3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvY29uc3RyYWluZWQt
dGhlbi1wb3NpdGlvbi1maXhlZC1hbmNlc3RvcnMtZXhwZWN0ZWQuaHRtbAppbmRleCA3ODNhNTEy
YTRlMmY4YjIyOTE1NjFhM2YxZDg0NDRkNTQxYjZiOWE0Li4zYjI0YjRlNGViMDUyOTQyNGYzOGUz
NmZmOWNjNDY0ZmQ4ZTQ4NGRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0
b3NpemluZy9jb25zdHJhaW5lZC10aGVuLXBvc2l0aW9uLWZpeGVkLWFuY2VzdG9ycy1leHBlY3Rl
ZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2NvbnN0cmFpbmVk
LXRoZW4tcG9zaXRpb24tZml4ZWQtYW5jZXN0b3JzLWV4cGVjdGVkLmh0bWwKQEAgLTUsNyArNSw3
IEBACiA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4KIDxzdHlsZT4K
IGh0bWwgeyBmb250LXNpemU6IDE2cHg7IH0KLWJvZHkgeyB3aWR0aDogODAwcHg7IG1hcmdpbjog
MDsgfQorYm9keSB7IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAwOyBvdmVyZmxvdy15OiBoaWRkZW47
IH0KIDwvc3R5bGU+CiAKIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4
dC1hdXRvc2l6aW5nL2NvbnN0cmFpbmVkLXRoZW4tcG9zaXRpb24tZml4ZWQtYW5jZXN0b3JzLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9jb25zdHJhaW5lZC10aGVuLXBv
c2l0aW9uLWZpeGVkLWFuY2VzdG9ycy5odG1sCmluZGV4IDI0Yzc3ZDRkOGRjN2NiMTZkNzQ4NjE3
NTM4OTY1MDAyZGZjZGE1ZWUuLjA2MzgzZDVkNWQ1NGUwY2UyMDVlYTYyYWQ4NDVmNDQ2ZmM3ZDk3
ZjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2NvbnN0cmFp
bmVkLXRoZW4tcG9zaXRpb24tZml4ZWQtYW5jZXN0b3JzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0LWF1dG9zaXppbmcvY29uc3RyYWluZWQtdGhlbi1wb3NpdGlvbi1maXhlZC1hbmNl
c3RvcnMuaHRtbApAQCAtNSw3ICs1LDcgQEAKIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50
PSJ3aWR0aD04MDAiPgogPHN0eWxlPgogaHRtbCB7IGZvbnQtc2l6ZTogMTZweDsgfQotYm9keSB7
IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAwOyB9Citib2R5IHsgd2lkdGg6IDgwMHB4OyBtYXJnaW46
IDA7IG92ZXJmbG93LXk6IGhpZGRlbjsgfQogPC9zdHlsZT4KIAogPHNjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL25lc3RlZC1lbS1saW5lLWhlaWdo
dC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvbmVzdGVk
LWVtLWxpbmUtaGVpZ2h0LWV4cGVjdGVkLmh0bWwKaW5kZXggY2FmZmI2ODQ5Y2U4MzUxOTBhYjMw
YTExN2IzMjEyODY2NGMwZDk2OC4uMzI2MzhjNDVjMDk3YmQxOGQ5YTAxZGE2NzMzMzhjMWMzOGQ4
MzcyYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvbmVzdGVk
LWVtLWxpbmUtaGVpZ2h0LWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
LWF1dG9zaXppbmcvbmVzdGVkLWVtLWxpbmUtaGVpZ2h0LWV4cGVjdGVkLmh0bWwKQEAgLTUsNyAr
NSw3IEBACiA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4KIDxzdHls
ZT4KIGh0bWwgeyBmb250LXNpemU6IDE2cHg7IH0KLWJvZHkgeyB3aWR0aDogODAwcHg7IG1hcmdp
bjogMDsgfQorYm9keSB7IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAwOyBvdmVyZmxvdy15OiBoaWRk
ZW47IH0KIDwvc3R5bGU+CiAKIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC1hdXRvc2l6aW5nL25lc3RlZC1lbS1saW5lLWhlaWdodC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0LWF1dG9zaXppbmcvbmVzdGVkLWVtLWxpbmUtaGVpZ2h0Lmh0bWwKaW5kZXggMmJh
YTU1ZWE5YzIxZjkxYWM3ZjU0MWI4YzQyMWFjMzRjODBlZTI5Yi4uMmFhMzQ1ZWRiZDE4ZDY3ZjE3
OTI5Mzc2NGQ3ZTJjMDcyNjIyYThlYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
LWF1dG9zaXppbmcvbmVzdGVkLWVtLWxpbmUtaGVpZ2h0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0LWF1dG9zaXppbmcvbmVzdGVkLWVtLWxpbmUtaGVpZ2h0Lmh0bWwKQEAgLTUsNyAr
NSw3IEBACiA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4KIDxzdHls
ZT4KIGh0bWwgeyBmb250LXNpemU6IDE2cHg7IH0KLWJvZHkgeyB3aWR0aDogODAwcHg7IG1hcmdp
bjogMDsgfQorYm9keSB7IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAwOyBvdmVyZmxvdy15OiBoaWRk
ZW47IH0KIDwvc3R5bGU+CiAKIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3RleHQtYXV0b3NpemluZy9vc2NpbGxhdGlvbi1qYXZhc2NyaXB0LWZvbnRzaXplLWNoYW5nZS1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvb3NjaWxsYXRp
b24tamF2YXNjcmlwdC1mb250c2l6ZS1jaGFuZ2UtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
NGE3OTQ2YzQwMTczODU5N2M4Nzk4ZTQ5ZWQzMDAwNmNmYTIzMTI0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvb3NjaWxsYXRpb24tamF2YXNjcmlw
dC1mb250c2l6ZS1jaGFuZ2UtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sIHN0eWxlPSJmb250LXNpemU6IDE2cHgiPgorPGhlYWQ+CisKKzxtZXRh
IG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04MDAiPgorPHN0eWxlPgorICBib2R5IHsK
KyAgICB3aWR0aDogODAwcHg7CisgICAgbWFyZ2luOiAwOworICAgIG92ZXJmbG93LXk6IGhpZGRl
bjsKKyAgfQorPC9zdHlsZT4KKworPC9oZWFkPgorPGJvZHk+CisKKzxkaXYgc3R5bGU9InRvcDo1
MHB4O3Bvc2l0aW9uOmFic29sdXRlO2ZvbnQtc2l6ZToxOS44cHgiPgorICAgIC4gLiAuIC4gLiAu
IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g
LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLjxici8+CisgICAgVGhpcyBwYXJhZ3JhcGgg
c2hvdWxkIGJlIGF1dG9zaXplZCB0byAxOS44cHg8YnIvPgorICAgIGJlY2F1c2UgaXQgY29udGFp
bnMgbGluZSBicmVha3MuPGJyLz4KKyAgICBUaGlzIHRlc3QgaXMgaW50ZW5kZWQgdG8gY2hlY2s8
YnIvPgorICAgIHRoYXQgdGhlcmUgYXJlIG5vIG9zY2lsbGF0aW9ucyBkdWUgdG8gamF2YXNjcmlw
dDxici8+CisgICAgYnJpZWZseSBpbmNyZWFzaW5nIHRoZSBmb250IHNpemUgb2YgYTxici8+Cisg
ICAgc21hbGwgcGFyYWdyYXBoIGJlbG93LgorPC9kaXY+Cis8ZGl2IGlkPSJzaXplY2hhbmdpbmci
PgorICAgIFRoaXMgdGV4dCBjaGFuZ2VzIHNpemUgdXNpbmcgamF2YXNjcmlwdCBiZWxvdy4KKzwv
ZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Rl
eHQtYXV0b3NpemluZy9vc2NpbGxhdGlvbi1qYXZhc2NyaXB0LWZvbnRzaXplLWNoYW5nZS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvb3NjaWxsYXRpb24tamF2YXNjcmlw
dC1mb250c2l6ZS1jaGFuZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTBjY2U0NGNhZWZjMDUyYTUyOWRl
NDc3MWY2MTk4MmY2ZjAxZTkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90
ZXh0LWF1dG9zaXppbmcvb3NjaWxsYXRpb24tamF2YXNjcmlwdC1mb250c2l6ZS1jaGFuZ2UuaHRt
bApAQCAtMCwwICsxLDUzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIHN0eWxlPSJmb250LXNp
emU6IDE2cHgiPgorPGhlYWQ+CisKKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0
aD04MDAiPgorPHN0eWxlPgorICBib2R5IHsKKyAgICB3aWR0aDogODAwcHg7CisgICAgbWFyZ2lu
OiAwOworICAgIG92ZXJmbG93LXk6IGhpZGRlbjsKKyAgfQorICAubGFyZ2Vyc2l6ZXtmb250LXNp
emU6IDEuMWVtfQorPC9zdHlsZT4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQo
dHJ1ZSk7CisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRUZXh0QXV0b3NpemluZ1dp
bmRvd1NpemVPdmVycmlkZSgzMjAsIDQ4MCk7Cit9IGVsc2UgaWYgKHdpbmRvdy5jb25zb2xlICYm
IGNvbnNvbGUud2FybikgeworICAgIGNvbnNvbGUud2FybigiVGhpcyB0ZXN0IGRlcGVuZHMgb24g
dGhlIFRleHQgQXV0b3NpemluZyBzZXR0aW5nIGJlaW5nIHRydWUsIHNvIHJ1biBpdCBpbiBEdW1w
UmVuZGVyVHJlZSwgb3IgbWFudWFsbHkgZW5hYmxlIFRleHQgQXV0b3NpemluZywgYW5kIGVpdGhl
ciB1c2UgYSBtb2JpbGUgZGV2aWNlIHdpdGggMzIwcHggZGV2aWNlLXdpZHRoIChsaWtlIE5leHVz
IFMgb3IgaVBob25lKSwgb3IgZGVmaW5lIEhBQ0tfRk9SQ0VfVEVYVF9BVVRPU0laSU5HX09OX0RF
U0tUT1AuIik7Cit9Cis8L3NjcmlwdD4KKworPC9oZWFkPgorPGJvZHk+CisKKzxkaXYgc3R5bGU9
InRvcDo1MHB4O3Bvc2l0aW9uOmFic29sdXRlOyI+CisgICAgLiAuIC4gLiAuIC4gLiAuIC4gLiAu
IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g
LiAuIC4gLiAuIC4gLiAuIC4gLiAuPGJyLz4KKyAgICBUaGlzIHBhcmFncmFwaCBzaG91bGQgYmUg
YXV0b3NpemVkIHRvIDE5LjhweDxici8+CisgICAgYmVjYXVzZSBpdCBjb250YWlucyBsaW5lIGJy
ZWFrcy48YnIvPgorICAgIFRoaXMgdGVzdCBpcyBpbnRlbmRlZCB0byBjaGVjazxici8+CisgICAg
dGhhdCB0aGVyZSBhcmUgbm8gb3NjaWxsYXRpb25zIGR1ZSB0byBqYXZhc2NyaXB0PGJyLz4KKyAg
ICBicmllZmx5IGluY3JlYXNpbmcgdGhlIGZvbnQgc2l6ZSBvZiBhPGJyLz4KKyAgICBzbWFsbCBw
YXJhZ3JhcGggYmVsb3cuCis8L2Rpdj4KKzxkaXYgaWQ9InNpemVjaGFuZ2luZyI+CisgICAgVGhp
cyB0ZXh0IGNoYW5nZXMgc2l6ZSB1c2luZyBqYXZhc2NyaXB0IGJlbG93LgorPC9kaXY+CisKKzxz
Y3JpcHQ+CitlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpemVjaGFuZ2luZyIp
OworaWYgKGVsZW1lbnQub2Zmc2V0SGVpZ2h0KSB7CisgICAgLy8gZm9yY2UgbGF5b3V0IChjb21w
dXRhdGlvbiBvZiBvZmZzZXRIZWlnaHQgdHJpZ2dlcnMgcmVmbG93KQorfQorZWxlbWVudC5jbGFz
c05hbWUgPSAnbGFyZ2Vyc2l6ZSc7CitpZiAoZWxlbWVudC5vZmZzZXRIZWlnaHQpIHt9CitlbGVt
ZW50LmNsYXNzTmFtZSA9ICcnOworaWYgKGVsZW1lbnQub2Zmc2V0SGVpZ2h0KSB7fQorPC9zY3Jp
cHQ+Cis8bm9zY3JpcHQ+ZmFpbCAobm8gc3VwcG9ydCBmb3IgamF2YXNjcmlwdCk8L25vc2NyaXB0
PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQt
YXV0b3NpemluZy9zaW1wbGUtcGFyYWdyYXBoLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3RleHQtYXV0b3NpemluZy9zaW1wbGUtcGFyYWdyYXBoLWV4cGVjdGVkLmh0bWwKaW5kZXgg
M2ZkNGEzYTQ3NzRjYWFhYTI1ZDMwMzAxYTFmNzkyODgxZjY3NGQ2NS4uZDE1YWIyMTIwN2FlNmY4
ZjcyMTVjY2IwNGRhY2M4MWRjNTc0MjgxOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90
ZXh0LWF1dG9zaXppbmcvc2ltcGxlLXBhcmFncmFwaC1leHBlY3RlZC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL3NpbXBsZS1wYXJhZ3JhcGgtZXhwZWN0ZWQuaHRt
bApAQCAtNSw3ICs1LDcgQEAKIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04
MDAiPgogPHN0eWxlPgogaHRtbCB7IGZvbnQtc2l6ZTogMTZweDsgfQotYm9keSB7IHdpZHRoOiA4
MDBweDsgbWFyZ2luOiAwOyB9Citib2R5IHsgd2lkdGg6IDgwMHB4OyBtYXJnaW46IDA7IG92ZXJm
bG93LXk6IGhpZGRlbjsgfQogPC9zdHlsZT4KIAogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvc2ltcGxlLXBhcmFncmFwaC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvc2ltcGxlLXBhcmFncmFwaC5odG1sCmluZGV4IDg1
MDkxNmU4NzdmNTA1MDJlOTM3OWZlZmJjNzg4OThkZDhhOTI3MGUuLmM5NzRjNGIxZDUyYWY0OTA4
Yjg4NjcxY2M2MjA5ZDA5ZDAxMmU3YjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4
dC1hdXRvc2l6aW5nL3NpbXBsZS1wYXJhZ3JhcGguaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3RleHQtYXV0b3NpemluZy9zaW1wbGUtcGFyYWdyYXBoLmh0bWwKQEAgLTUsNyArNSw3IEBACiA8
bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4KIDxzdHlsZT4KIGh0bWwg
eyBmb250LXNpemU6IDE2cHg7IH0KLWJvZHkgeyB3aWR0aDogODAwcHg7IG1hcmdpbjogMDsgfQor
Ym9keSB7IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAwOyBvdmVyZmxvdy15OiBoaWRkZW47IH0KIDwv
c3R5bGU+CiAKIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0
b3NpemluZy9zcGFuLWNoaWxkLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQt
YXV0b3NpemluZy9zcGFuLWNoaWxkLWV4cGVjdGVkLmh0bWwKaW5kZXggY2M0NDIxNjNmMzdkNmFh
MTM1MWFmZDg2NWFiNDg5NjUzYWU2NmJiOC4uYzAyOTkxYTc2OGIyOTRjMzJmZjM0Y2Q3ODE3Njc2
MzhlMmQyN2M5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcv
c3Bhbi1jaGlsZC1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRv
c2l6aW5nL3NwYW4tY2hpbGQtZXhwZWN0ZWQuaHRtbApAQCAtNSw3ICs1LDcgQEAKIDxtZXRhIG5h
bWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04MDAiPgogPHN0eWxlPgogaHRtbCB7IGZvbnQt
c2l6ZTogMTZweDsgfQotYm9keSB7IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAwOyB9Citib2R5IHsg
d2lkdGg6IDgwMHB4OyBtYXJnaW46IDA7IG92ZXJmbG93LXk6IGhpZGRlbjsgfQogPC9zdHlsZT4K
IAogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcv
c3Bhbi1jaGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvc3Bhbi1j
aGlsZC5odG1sCmluZGV4IDgyNWJmNDRmYTcxOWFjZDQwNDI4OGE3YjZlNTc4MDFiMDIwMDRlM2Yu
Ljc3NTQwNjM1NjdkYmFlM2NlZGNkMDk1MTljMjFhOThkOWJmYmY2MDIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL3NwYW4tY2hpbGQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9zcGFuLWNoaWxkLmh0bWwKQEAgLTUsNyArNSw3
IEBACiA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4KIDxzdHlsZT4K
IGh0bWwgeyBmb250LXNpemU6IDE2cHg7IH0KLWJvZHkgeyB3aWR0aDogODAwcHg7IG1hcmdpbjog
MDsgfQorYm9keSB7IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAwOyBvdmVyZmxvdy15OiBoaWRkZW47
IH0KIDwvc3R5bGU+CiAKIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Rl
eHQtYXV0b3NpemluZy91bndyYXBwYWJsZS1ibG9ja3MtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL3Vud3JhcHBhYmxlLWJsb2Nrcy1leHBlY3RlZC5odG1s
CmluZGV4IDQ4ZDNiODg4YjE3OWFjMmZkZmEyZGQwNTg3NTA2NWNhY2QyYjhmMWMuLjdlZDE4ZGZh
YWI3MmU0ZTNhOTIzMWVlNzc0YzUyNzM4ZGY1OGZiN2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvdGV4dC1hdXRvc2l6aW5nL3Vud3JhcHBhYmxlLWJsb2Nrcy1leHBlY3RlZC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL3Vud3JhcHBhYmxlLWJsb2Nrcy1l
eHBlY3RlZC5odG1sCkBAIC01LDcgKzUsNyBAQAogPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRl
bnQ9IndpZHRoPTgwMCI+CiA8c3R5bGU+CiBodG1sIHsgZm9udC1zaXplOiAxNnB4OyB9Ci1ib2R5
IHsgd2lkdGg6IDgwMHB4OyBtYXJnaW46IDA7IH0KK2JvZHkgeyB3aWR0aDogODAwcHg7IG1hcmdp
bjogMDsgb3ZlcmZsb3cteTogaGlkZGVuOyB9CiBwcmUgeyBtYXJnaW46IDA7IH0KIDwvc3R5bGU+
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL3Vud3JhcHBh
YmxlLWJsb2Nrcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvdW53cmFw
cGFibGUtYmxvY2tzLmh0bWwKaW5kZXggYjY2MDNhZWQ0NDdjOWMxNjg2MTgyMjIyZWFhNDg1NTJl
ZTE1NTZjNS4uNzkyOTQ1NDk2Y2FjMTA2YjY1ZGY5NzA3NWJjMmY3NzhjODdjNWU4ZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvdW53cmFwcGFibGUtYmxvY2tz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvdW53cmFwcGFibGUt
YmxvY2tzLmh0bWwKQEAgLTUsNyArNSw3IEBACiA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVu
dD0id2lkdGg9ODAwIj4KIDxzdHlsZT4KIGh0bWwgeyBmb250LXNpemU6IDE2cHg7IH0KLWJvZHkg
eyB3aWR0aDogODAwcHg7IG1hcmdpbjogMDsgfQorYm9keSB7IHdpZHRoOiA4MDBweDsgbWFyZ2lu
OiAwOyBvdmVyZmxvdy15OiBoaWRkZW47IH0KIHByZSB7IG1hcmdpbjogMDsgfQogPC9zdHlsZT4K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvdW53cmFwcGFi
bGUtaW5saW5lcy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXpp
bmcvdW53cmFwcGFibGUtaW5saW5lcy1leHBlY3RlZC5odG1sCmluZGV4IDQ4ZmM5MDM5MDhkZjJh
YmJmZTQ4ZmJjYTcyNjJjNTFiODgwYmQ2ZWUuLmE3MTg4MTQxZDkwMTI4OGFiNDk4YmI1NjA0MmEx
MmM0ZDYyMjQ5YzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5n
L3Vud3JhcHBhYmxlLWlubGluZXMtZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3RleHQtYXV0b3NpemluZy91bndyYXBwYWJsZS1pbmxpbmVzLWV4cGVjdGVkLmh0bWwKQEAgLTUs
NyArNSw3IEBACiA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4KIDxz
dHlsZT4KIGh0bWwgeyBmb250LXNpemU6IDE2cHg7IH0KLWJvZHkgeyB3aWR0aDogODAwcHg7IG1h
cmdpbjogMDsgfQorYm9keSB7IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAwOyBvdmVyZmxvdy15OiBo
aWRkZW47IH0KIHByZSB7IG1hcmdpbjogMDsgfQogPC9zdHlsZT4KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvdW53cmFwcGFibGUtaW5saW5lcy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvdW53cmFwcGFibGUtaW5saW5lcy5odG1s
CmluZGV4IDliMDczMmVlODZjZDNiYTk2MDQ5YWNmOWUwNmEzMTcyOTJjNmRiZTEuLjE2NDM0Yzk4
Zjc1YTA1NDBiNWI3ZGQzMmExN2EzNTU0YTk0ZWI4OTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvdGV4dC1hdXRvc2l6aW5nL3Vud3JhcHBhYmxlLWlubGluZXMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy91bndyYXBwYWJsZS1pbmxpbmVzLmh0bWwKQEAg
LTUsNyArNSw3IEBACiA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4K
IDxzdHlsZT4KIGh0bWwgeyBmb250LXNpemU6IDE2cHg7IH0KLWJvZHkgeyB3aWR0aDogODAwcHg7
IG1hcmdpbjogMDsgfQorYm9keSB7IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAwOyBvdmVyZmxvdy15
OiBoaWRkZW47IH0KIHByZSB7IG1hcmdpbjogMDsgfQogPC9zdHlsZT4KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>