<?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>61220</bug_id>
          
          <creation_ts>2011-05-20 16:07:22 -0700</creation_ts>
          <short_desc>Video looks squished when animating to full screen.</short_desc>
          <delta_ts>2011-05-23 15:22:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>407376</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-05-20 16:07:22 -0700</bug_when>
    <thetext>Video looks squished when animating to full screen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407411</commentid>
    <comment_count>1</comment_count>
      <attachid>94290</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-05-20 16:54:14 -0700</bug_when>
    <thetext>Created attachment 94290
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407448</commentid>
    <comment_count>2</comment_count>
      <attachid>94290</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-05-20 17:57:39 -0700</bug_when>
    <thetext>Comment on attachment 94290
Patch

This is the wrong patch; uploading a new one afresh.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407451</commentid>
    <comment_count>3</comment_count>
      <attachid>94302</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-05-20 18:01:22 -0700</bug_when>
    <thetext>Created attachment 94302
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407645</commentid>
    <comment_count>4</comment_count>
      <attachid>94302</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-05-22 08:57:44 -0700</bug_when>
    <thetext>Comment on attachment 94302
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        Added a new css pseudo-class: -webkit-animating-full-screen.  During the transition animation, this
&gt; +        pseudo-class will be applied to the current full-screen element.  Styles have been added to 
&gt; +        fullscreenQuickTime.css to hide the video element&apos;s built-in controller during the full-screen
&gt; +        animation.

How does removing the controller relate to “video looks squished”? I understand that all this new code makes the controller disappear during the transition to full screen, but I don’t have the slightest idea why that is a good idea, and the change log does not tell me.

&gt; Source/WebCore/css/CSSSelector.cpp:327
&gt; +    DEFINE_STATIC_LOCAL(AtomicString, animatingFullScreen, (&quot;-webkit-animating-full-screen&quot;));

The name “animating full screen” doesn’t seem like clear language to me. That term makes it sound like we’re animating something that’s covering an entire screen. To someone not working on this it does not immediately point to the full screen transition animation. Instead I would prefer a name that is explicitly mentions the transition into or out of full screen rather than simply mentioning full screen and also animation. Maybe even two different pseudo-classes, one for the animation into and the other for the animation out of the full screen state.

&gt; Source/WebCore/css/CSSStyleSelector.cpp:2909
&gt;                  if (e != e-&gt;document()-&gt;webkitCurrentFullScreenElement())
&gt;                      return false;
&gt;                  return true;

I think it&apos;s easier to read something like this as a boolean expression:

    return e == e-&gt;document()-&gt;webkitCurrentFullScreenElement();

&gt; Source/WebCore/css/CSSStyleSelector.cpp:2913
&gt; +                if (e != e-&gt;document()-&gt;webkitCurrentFullScreenElement())
&gt; +                    return false;
&gt; +                return e-&gt;document()-&gt;isAnimatingFullScreen();

I think it&apos;s easier to read something like this as a boolean expression:

    return e == e-&gt;document()-&gt;webkitCurrentFullScreenElement() &amp;&amp; e-&gt;document()-&gt;isAnimatingFullScreen();

&gt; Source/WebCore/dom/Document.cpp:4898
&gt; +    m_fullScreenElement-&gt;recalcStyle(Force);

Normally when a pseudo-style has changed we don’t call recalcStyle directly, and we certainly don’t call it directly on a single specific element. I’d expect to instead see a call here to scheduleStyleRecalc (or possibly scheduleForcedStyleRecalc, but I think that would be wrong). I’m surprised by this, and I think it’s probably wrong.

&gt; Source/WebKit2/ChangeLog:11
&gt; +        * WebProcess/FullScreen/mac/WebFullScreenManagerMac.mm:
&gt; +        (WebKit::WebFullScreenManagerMac::beginEnterFullScreenAnimation): Set the destination frame
&gt; +            to be the content box of the current full screen element.
&gt; +        (WebKit::WebFullScreenManagerMac::beginExitFullScreenAnimation): Ditto.

I don’t understand why these changes are here, and how they relate to the WebCore changes above. The change log states the change being made, but neither the change log nor the code touch on the *why* aspect. Was there something wrong before? What was the symptom? How does this change help?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407661</commentid>
    <comment_count>5</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-05-22 09:41:53 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 94302 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=94302&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:13
&gt; &gt; +        Added a new css pseudo-class: -webkit-animating-full-screen.  During the transition animation, this
&gt; &gt; +        pseudo-class will be applied to the current full-screen element.  Styles have been added to 
&gt; &gt; +        fullscreenQuickTime.css to hide the video element&apos;s built-in controller during the full-screen
&gt; &gt; +        animation.
&gt; 
&gt; How does removing the controller relate to “video looks squished”? I understand that all this new code makes the controller disappear during the transition to full screen, but I don’t have the slightest idea why that is a good idea, and the change log does not tell me.

Okay, I&apos;ll add more to the ChangeLog describing why this is necessary.

&gt; &gt; Source/WebCore/css/CSSSelector.cpp:327
&gt; &gt; +    DEFINE_STATIC_LOCAL(AtomicString, animatingFullScreen, (&quot;-webkit-animating-full-screen&quot;));
&gt; 
&gt; The name “animating full screen” doesn’t seem like clear language to me. That term makes it sound like we’re animating something that’s covering an entire screen. To someone not working on this it does not immediately point to the full screen transition animation. Instead I would prefer a name that is explicitly mentions the transition into or out of full screen rather than simply mentioning full screen and also animation. Maybe even two different pseudo-classes, one for the animation into and the other for the animation out of the full screen state.

I&apos;d be fine with that.  -webkit-animating-enter-full-screen and -webkit-animating-exit-full-screen.

&gt; &gt; Source/WebCore/css/CSSStyleSelector.cpp:2909
&gt; &gt;                  if (e != e-&gt;document()-&gt;webkitCurrentFullScreenElement())
&gt; &gt;                      return false;
&gt; &gt;                  return true;
&gt; 
&gt; I think it&apos;s easier to read something like this as a boolean expression:
&gt; 
&gt;     return e == e-&gt;document()-&gt;webkitCurrentFullScreenElement();

Sure thing.

&gt; &gt; Source/WebCore/css/CSSStyleSelector.cpp:2913
&gt; &gt; +                if (e != e-&gt;document()-&gt;webkitCurrentFullScreenElement())
&gt; &gt; +                    return false;
&gt; &gt; +                return e-&gt;document()-&gt;isAnimatingFullScreen();
&gt; 
&gt; I think it&apos;s easier to read something like this as a boolean expression:
&gt; 
&gt;     return e == e-&gt;document()-&gt;webkitCurrentFullScreenElement() &amp;&amp; e-&gt;document()-&gt;isAnimatingFullScreen();

On this one though, I actually think that the combined return statement is more difficult to parse.

&gt; &gt; Source/WebCore/dom/Document.cpp:4898
&gt; &gt; +    m_fullScreenElement-&gt;recalcStyle(Force);
&gt; 
&gt; Normally when a pseudo-style has changed we don’t call recalcStyle directly, and we certainly don’t call it directly on a single specific element. I’d expect to instead see a call here to scheduleStyleRecalc (or possibly scheduleForcedStyleRecalc, but I think that would be wrong). I’m surprised by this, and I think it’s probably wrong.

Okay, I&apos;ll try that.

&gt; &gt; Source/WebKit2/ChangeLog:11
&gt; &gt; +        * WebProcess/FullScreen/mac/WebFullScreenManagerMac.mm:
&gt; &gt; +        (WebKit::WebFullScreenManagerMac::beginEnterFullScreenAnimation): Set the destination frame
&gt; &gt; +            to be the content box of the current full screen element.
&gt; &gt; +        (WebKit::WebFullScreenManagerMac::beginExitFullScreenAnimation): Ditto.
&gt; 
&gt; I don’t understand why these changes are here, and how they relate to the WebCore changes above. The change log states the change being made, but neither the change log nor the code touch on the *why* aspect. Was there something wrong before? What was the symptom? How does this change help?

Okay, I&apos;ll add more to describe in the ChangeLog why this is necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408377</commentid>
    <comment_count>6</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-05-23 15:15:41 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; &gt; Source/WebCore/css/CSSSelector.cpp:327
&gt; &gt; &gt; +    DEFINE_STATIC_LOCAL(AtomicString, animatingFullScreen, (&quot;-webkit-animating-full-screen&quot;));
&gt; &gt; 
&gt; &gt; The name “animating full screen” doesn’t seem like clear language to me. That term makes it sound like we’re animating something that’s covering an entire screen. To someone not working on this it does not immediately point to the full screen transition animation. Instead I would prefer a name that is explicitly mentions the transition into or out of full screen rather than simply mentioning full screen and also animation. Maybe even two different pseudo-classes, one for the animation into and the other for the animation out of the full screen state.
&gt; 
&gt; I&apos;d be fine with that.  -webkit-animating-enter-full-screen and -webkit-animating-exit-full-screen.

In the end, I decided on -webkit-animating-full-screen-transition, because splitting the pseudo-class in twain would require a lot of record keeping for no functional reason.

&gt; &gt; &gt; Source/WebCore/dom/Document.cpp:4898
&gt; &gt; &gt; +    m_fullScreenElement-&gt;recalcStyle(Force);
&gt; &gt; 
&gt; &gt; Normally when a pseudo-style has changed we don’t call recalcStyle directly, and we certainly don’t call it directly on a single specific element. I’d expect to instead see a call here to scheduleStyleRecalc (or possibly scheduleForcedStyleRecalc, but I think that would be wrong). I’m surprised by this, and I think it’s probably wrong.
&gt; 
&gt; Okay, I&apos;ll try that.

Yes, all of these new recalcStyle(Force) instances can be replaced with setNeedsStyleRecalc() and scheduleStyleRecalc().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408388</commentid>
    <comment_count>7</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-05-23 15:22:37 -0700</bug_when>
    <thetext>Committed r87102: &lt;http://trac.webkit.org/changeset/87102&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94290</attachid>
            <date>2011-05-20 16:54:14 -0700</date>
            <delta_ts>2011-05-20 17:57:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61220-20110520165413.patch</filename>
            <type>text/plain</type>
            <size>4673</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODY5NjYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBhMGQxNzIwZTA3
ZTlhNzQ2YmM0NWRhMGQ3NmJiNjNlYTgxZmUyYmQ4Li4wYTMyOGExMDhmODU5ZGE2NDNjMjdiMmE3
NjM2OTAzMzBmYzI2Y2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEt
MDUtMjAgIEplcmVteSBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RhY2sgb3ZlcmZsb3cgaW4gV2Vi
RnVsbFNjcmVlbkNvbnRyb2xsZXIgd2hlbiBidWlsdCBvbiBMZW9wYXJkIGFuZCBydW4gb24gU25v
d0xlb3BhcmQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02MTIyNAorCisgICAgICAgIFJlbW92ZSB0aGUgQ0FUcmFuc2FjdGlvbihTbm93TGVvcGFyZENv
bnZlbmllbmNlKSBmdW5jdGlvbnMsIGFuZCByZXBsYWNlIHRoZW0gd2l0aCB0aGUgTGVvcGFyZAor
ICAgICAgICB2ZXJzaW9ucyBvZiBzYW1lLgorCisgICAgICAgICogV2ViVmlldy9XZWJGdWxsU2Ny
ZWVuQ29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIgd2lu
ZG93RGlkRW50ZXJGdWxsc2NyZWVuOl0pOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJv
bGxlciBlbnRlckZ1bGxzY3JlZW46XSk6CisgICAgICAgICgtW1dlYkZ1bGxTY3JlZW5Db250cm9s
bGVyIGV4aXRGdWxsc2NyZWVuXSk6CisgICAgICAgICgtW1dlYkZ1bGxzY3JlZW5XaW5kb3cgc2V0
UmVuZGVyZXJMYXllcjpdKToKKwogMjAxMS0wNS0xNyAgVGltb3RoeSBIYXRjaGVyICA8dGltb3Ro
eUBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIHRoZSB0aGUgY29udGV4dCBtZW51IHRvIHJl
ZmxlY3QgdGhlIHN5c3RlbSBzZWFyY2ggcHJvdmlkZXIgb24gTWFjLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbSBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KaW5kZXggZGE3
MDA5YTVkZGE1MzgzNzgyMDc5ZDQwMTllYWU3ZjdhOTdhZWZiZC4uMTJiZmM4YTgwOWZhNmZiYTg4
ZGVlOGE3YTdjMTJhNDljMjcyZTYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCkBAIC02MCwyNiArNjAsNiBAQCBzdGF0
aWMgTlNTdHJpbmcqIGNvbnN0IGlzRW50ZXJpbmdGdWxsc2NyZWVuS2V5ID0gQCJpc0VudGVyaW5n
RnVsbHNjcmVlbiI7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi0jaWYgZGVmaW5lZChC
VUlMRElOR19PTl9MRU9QQVJEKQotQGludGVyZmFjZSBDQVRyYW5zYWN0aW9uKFNub3dMZW9wYXJk
Q29udmVuaWVuY2VGdW5jdGlvbnMpCi0rICh2b2lkKXNldERpc2FibGVBY3Rpb25zOihCT09MKWZs
YWc7Ci0rICh2b2lkKXNldEFuaW1hdGlvbkR1cmF0aW9uOihDRlRpbWVJbnRlcnZhbClkdXI7Ci1A
ZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBDQVRyYW5zYWN0aW9uKFNub3dMZW9wYXJkQ29udmVuaWVu
Y2VGdW5jdGlvbnMpCi0rICh2b2lkKXNldERpc2FibGVBY3Rpb25zOihCT09MKWZsYWcKLXsKLSAg
ICBbc2VsZiBzZXRWYWx1ZTpbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6ZmxhZ10gZm9yS2V5OmtD
QVRyYW5zYWN0aW9uRGlzYWJsZUFjdGlvbnNdOwotfQotCi0rICh2b2lkKXNldEFuaW1hdGlvbkR1
cmF0aW9uOihDRlRpbWVJbnRlcnZhbClkdXIKLXsKLSAgICBbc2VsZiBzZXRWYWx1ZTpbTlNOdW1i
ZXIgbnVtYmVyV2l0aERvdWJsZTpkdXJdIGZvcktleTprQ0FUcmFuc2FjdGlvbkFuaW1hdGlvbkR1
cmF0aW9uXTsKLX0KLUBlbmQKLQotI2VuZGlmCi0KIEBpbnRlcmZhY2UgV2ViRnVsbHNjcmVlbldp
bmRvdyA6IE5TV2luZG93CiAjaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKIDxOU0FuaW1hdGlv
bkRlbGVnYXRlPgpAQCAtMzA0LDcgKzI4NCw3IEBAIHByaXZhdGU6CiAgICAgICAgIFt3aW5kb3cg
c2V0T3BhcXVlOllFU107CiAKICAgICAgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOwotICAgICAg
ICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworICAgICAgICBbQ0FUcmFu
c2FjdGlvbiBzZXRWYWx1ZTpbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSBmb3JLZXk6a0NB
VHJhbnNhY3Rpb25EaXNhYmxlQWN0aW9uc107CiAgICAgICAgIFtbW3dpbmRvdyBhbmltYXRpb25W
aWV3XSBsYXllcl0gc2V0T3BhY2l0eTowXTsKICAgICAgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0
XTsKICAgICB9CkBAIC00NjYsNyArNDQ2LDcgQEAgcHJpdmF0ZToKICAgICAvLyBTdGFydCB0aGUg
b3BhY2l0eSBhbmltYXRpb24uIFdlIGNhbiB1c2UgaW1wbGljaXQgYW5pbWF0aW9ucyBoZXJlIGJl
Y2F1c2Ugd2UgZG9uJ3QgY2FyZSB3aGVuCiAgICAgLy8gdGhlIGFuaW1hdGlvbiBmaW5pc2hlcy4K
ICAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07Ci0gICAgW0NBVHJhbnNhY3Rpb24gc2V0QW5pbWF0
aW9uRHVyYXRpb246ZHVyYXRpb25dOworICAgIFtDQVRyYW5zYWN0aW9uIHNldFZhbHVlOltOU051
bWJlciBudW1iZXJXaXRoRG91YmxlOmR1cmF0aW9uXSBmb3JLZXk6a0NBVHJhbnNhY3Rpb25Bbmlt
YXRpb25EdXJhdGlvbl07CiAgICAgW2JhY2tncm91bmRMYXllciBzZXRPcGFjaXR5OjFdOwogICAg
IFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CiAgICAgCkBAIC00ODMsNyArNDYzLDcgQEAgcHJpdmF0
ZToKICAgICAKICAgICAvLyBEaXNhYmxlIGltcGxpY2l0IGFuaW1hdGlvbnMgYW5kIHNldCB0aGUg
bGF5ZXIncyB0cmFuc2Zvcm1hdGlvbiBtYXRyaXggdG8gaXRzIGZpbmFsIHN0YXRlLgogICAgIFtD
QVRyYW5zYWN0aW9uIGJlZ2luXTsKLSAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9u
czpZRVNdOworICAgIFtDQVRyYW5zYWN0aW9uIHNldFZhbHVlOltOU051bWJlciBudW1iZXJXaXRo
Qm9vbDpZRVNdIGZvcktleTprQ0FUcmFuc2FjdGlvbkRpc2FibGVBY3Rpb25zXTsKICAgICBbcmVu
ZGVyZXJMYXllciBzZXRUcmFuc2Zvcm06Q0FUcmFuc2Zvcm0zRElkZW50aXR5XTsKICAgICBbcmVu
ZGVyZXJMYXllciBhZGRBbmltYXRpb246em9vbUFuaW1hdGlvbiBmb3JLZXk6QCJ6b29tIl07CiAg
ICAgW2JhY2tncm91bmRMYXllciBzZXRGcmFtZTpOU1JlY3RUb0NHUmVjdChiYWNrZ3JvdW5kQm91
bmRzKV07CkBAIC01NDksNyArNTI5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgLy8gZGlzYWJsZSBh
bmltYXRpb25zIHdoZW4gY2hhbmdpbmcgdGhlIGxheWVyJ3Mgb3BhY2l0eS4gT3RoZXItCiAgICAg
ICAgIC8vIHdpc2UsIHRoZSBjb250ZW50IHdpbGwgYXBwZWFyIHRvIGZhZGUgaW50byB2aWV3Lgog
ICAgICAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07Ci0gICAgICAgIFtDQVRyYW5zYWN0aW9uIHNl
dERpc2FibGVBY3Rpb25zOllFU107CisgICAgICAgIFtDQVRyYW5zYWN0aW9uIHNldFZhbHVlOltO
U051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdIGZvcktleTprQ0FUcmFuc2FjdGlvbkRpc2FibGVB
Y3Rpb25zXTsKICAgICAgICAgV2ViRnVsbHNjcmVlbldpbmRvdyogd2luZG93ID0gW3NlbGYgX2Z1
bGxzY3JlZW5XaW5kb3ddOwogICAgICAgICBbW1t3aW5kb3cgYW5pbWF0aW9uVmlld10gbGF5ZXJd
IHNldE9wYWNpdHk6MV07CiAgICAgICAgIFt3aW5kb3cgc2V0QmFja2dyb3VuZENvbG9yOltOU0Nv
bG9yIGNsZWFyQ29sb3JdXTsKQEAgLTYxMiw3ICs1OTIsNyBAQCBwcml2YXRlOgogCiAgICAgQ0FM
YXllciogYmFja2dyb3VuZExheWVyID0gW1tzZWxmIF9mdWxsc2NyZWVuV2luZG93XSBiYWNrZ3Jv
dW5kTGF5ZXJdOwogICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKLSAgICBbQ0FUcmFuc2FjdGlv
biBzZXRBbmltYXRpb25EdXJhdGlvbjpkdXJhdGlvbl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0
VmFsdWU6W05TTnVtYmVyIG51bWJlcldpdGhEb3VibGU6ZHVyYXRpb25dIGZvcktleTprQ0FUcmFu
c2FjdGlvbkFuaW1hdGlvbkR1cmF0aW9uXTsKICAgICBbYmFja2dyb3VuZExheWVyIHNldE9wYWNp
dHk6MF07CiAgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKICAgICAKQEAgLTg3Nyw3ICs4NTcs
NyBAQCBwcml2YXRlOgogLSAodm9pZClzZXRSZW5kZXJlckxheWVyOihDQUxheWVyICopcmVuZGVy
ZXJMYXllcgogewogICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKLSAgICBbQ0FUcmFuc2FjdGlv
biBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworICAgIFtDQVRyYW5zYWN0aW9uIHNldFZhbHVlOltO
U051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdIGZvcktleTprQ0FUcmFuc2FjdGlvbkRpc2FibGVB
Y3Rpb25zXTsKICAgICBbcmVuZGVyZXJMYXllciByZXRhaW5dOwogICAgIFtfcmVuZGVyZXJMYXll
ciByZW1vdmVGcm9tU3VwZXJsYXllcl07CiAgICAgW19yZW5kZXJlckxheWVyIHJlbGVhc2VdOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94302</attachid>
            <date>2011-05-20 18:01:22 -0700</date>
            <delta_ts>2011-05-22 08:57:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61220-20110520180121.patch</filename>
            <type>text/plain</type>
            <size>24206</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODcwMDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMjU0ZGU0NGQxODRlOGI4
ZTFmMzU1NjI0MmI4NWYxNjY1MzZmYmY0Li5iNWM1MDg1NTZmZmY4NTEwNDRhNmRhMGRiOWIxMDA3
ZjRhNDNkMWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTEtMDUtMjAgIEplcmVt
eSBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVmlkZW8gbG9va3Mgc3F1aXNoZWQgd2hlbiBhbmltYXRp
bmcgdG8gZnVsbCBzY3JlZW4uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02MTIyMAorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgYmVjYXVzZSBEdW1wUmVu
ZGVyVHJlZSBkb2VzIG5vdCBjdXJyZW50bHkgImFuaW1hdGUiIHRoZSBmdWxsLXNjcmVlbiB0cmFu
c2l0aW9uLgorCisgICAgICAgIEFkZGVkIGEgbmV3IGNzcyBwc2V1ZG8tY2xhc3M6IC13ZWJraXQt
YW5pbWF0aW5nLWZ1bGwtc2NyZWVuLiAgRHVyaW5nIHRoZSB0cmFuc2l0aW9uIGFuaW1hdGlvbiwg
dGhpcworICAgICAgICBwc2V1ZG8tY2xhc3Mgd2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBjdXJyZW50
IGZ1bGwtc2NyZWVuIGVsZW1lbnQuICBTdHlsZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIAorICAgICAg
ICBmdWxsc2NyZWVuUXVpY2tUaW1lLmNzcyB0byBoaWRlIHRoZSB2aWRlbyBlbGVtZW50J3MgYnVp
bHQtaW4gY29udHJvbGxlciBkdXJpbmcgdGhlIGZ1bGwtc2NyZWVuCisgICAgICAgIGFuaW1hdGlv
bi4KKworICAgICAgICBUbyBhY2NvbXBsaXNoIHRoaXMsIHRoZSBpdmFyIHRyYWNraW5nIHdoZXRo
ZXIgdGhlIGZ1bGwtc2NyZWVuIGFuaW1hdGlvbiBpcyB0YWtpbmcgcGxhY2UgaGFzIGJlZW4gbW92
ZWQKKyAgICAgICAgZnJvbSB0aGUgUmVuZGVyRnVsbFNjcmVlbiByZW5kZXJlciwgdG8gdGhlIGN1
cnJlbnQgZnVsbC1zY3JlZW4gRG9jdW1lbnQuICBCZWNhdXNlIGNoYW5naW5nIAorICAgICAgICBp
c0FuaW1hdGluZ0Z1bGxTY3JlZW4gY2F1c2VzIHN0eWxlIGNoYW5nZXMsIG1ha2Ugc3VyZSB0byBj
YWxsIHJlY2FsY1N0eWxlIG9uIHRoZSBmdWxsLXNjcmVlbiBlbGVtZW50CisgICAgICAgIGFmdGVy
IGNoYW5naW5nLgorCisgICAgICAgIFRoaXMgZXh0cmEgdHJhbnNpdGlvbiBjYXVzZWQgYXNzZXJ0
aW9ucyBpbiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVGcm9tRWxlbWVudENhbGxiYWNr
LiBBCisgICAgICAgIGZ1bGwtc2NyZWVuIG1lZGlhIGNvbnRyb2wncyByZW5kZXJlciBpcyBkaXNh
YmxlZCBkdXJpbmcgdGhlIHN0eWxlIHJlY2FsY3VsYXRpb24gd2hlbiBleGl0aW5nIGZ1bGwKKyAg
ICAgICAgc2NyZWVuLiBUaGlzIGFzc2VydGlvbiB3YXMgZXhwb3NlZCBieSB0aGUgZXh0cmEgcmVj
YWxjU3R5bGUoKSBpc3N1ZWQgZHVyaW5nIHRoZSBleGl0IHRyYW5zaXRpb24sIGFuZAorICAgICAg
ICBoYXMgYmVlbiByZW1vdmVkLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NT
ZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6cHNldWRvSWQpOgor
ICAgICAgICAoV2ViQ29yZTo6bmFtZVRvUHNldWRvVHlwZU1hcCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUpOgorICAgICAgICAqIGNzcy9DU1NTZWxl
Y3Rvci5oOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OlNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmVTZWxlY3Rv
cik6CisgICAgICAgICogY3NzL2Z1bGxzY3JlZW4uY3NzOgorICAgICAgICAodmlkZW86LXdlYmtp
dC1mdWxsLXNjcmVlbik6CisgICAgICAgICogY3NzL2Z1bGxzY3JlZW5RdWlja1RpbWUuY3NzOgor
ICAgICAgICAodmlkZW86LXdlYmtpdC1mdWxsLXNjcmVlbjo6LXdlYmtpdC1tZWRpYS1jb250cm9s
cy1wYW5lbCk6CisgICAgICAgICh2aWRlbzotd2Via2l0LWFuaW1hdGluZy1mdWxsLXNjcmVlbjo6
LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6d2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndlYmtpdERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndlYmtpdFdpbGxFeGl0RnVsbFNjcmVl
bkZvckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndlYmtpdERpZEV4aXRG
dWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aXNBbmlt
YXRpbmdGdWxsU2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRBbmltYXRp
bmdGdWxsU2NyZWVuKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dXBkYXRlRnJv
bUVsZW1lbnRDYWxsYmFjayk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6aXNEb2N1bWVudFJ1bm5pbmdGdWxsU2NyZWVuQW5pbWF0aW9uKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHA6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckZ1bGxTY3JlZW4uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVi
dWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Q29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0ZvckZ1bGxTY3JlZW4pOgorICAgICAgICAq
IHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOgorCiAyMDExLTA1LTE5ICBK
ZXJlbXkgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBjZDU5YTY2Mjk5NGUxNzAz
NGNjMzhjZjg5ZjU4NzFkNzBjNTk3MWE3Li4yZmY4NTE5OGEzMTlmYmIyOTM4YjU5OGU5MGQ1Y2Rl
MzFjZWM3NTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTQ3OSw2ICsxNDc5LDcgQEAgX1dl
YkNvcmVIYXMzRFJlbmRlcmluZwogX19aTjdXZWJDb3JlMTNHcmFwaGljc0xheWVyMTdyZW1vdmVB
bGxDaGlsZHJlbkV2CiBfX1pON1dlYkNvcmUxM0dyYXBoaWNzTGF5ZXI2Y3JlYXRlRVBOU18xOUdy
YXBoaWNzTGF5ZXJDbGllbnRFCiBfX1pOSzdXZWJDb3JlMThSZW5kZXJMYXllckJhY2tpbmcyMGNv
bXBvc2l0aW5nTGF5ZXJUeXBlRXYKK19fWk5LN1dlYkNvcmUxOFJlbmRlckxheWVyQmFja2luZzEx
Y29udGVudHNCb3hFdgogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0
Mjc4ZjNiOGY2NmJlZjkyMjk1Y2FkNDhmZWE3ZjJjMDhmMTc0NWIxLi4xYzE0ZWQ3M2IyNDJjY2M5
OGRlNDg5MWNkZDYxZjYzOTUzZTQyOGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NTY5LDcgKzU1NjksNyBAQAogCQlFNDQ2
MTNBNzBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFNvdXJjZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ0NjEzOTUwQ0Q2MzMxMDAwRkFE
QTc1IC8qIEhUTUxTb3VyY2VFbGVtZW50LmNwcCAqLzsgfTsKIAkJRTQ0NjEzQTgwQ0Q2MzMxMDAw
RkFEQTc1IC8qIEhUTUxTb3VyY2VFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNDQ2MTM5NjBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFNvdXJj
ZUVsZW1lbnQuaCAqLzsgfTsKIAkJRTQ0NjEzQUEwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxWaWRl
b0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTQ0NjEzOTgwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxWaWRlb0VsZW1lbnQuY3BwICovOyB9
OwotCQlFNDQ2MTNBQjBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFZpZGVvRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ0NjEzOTkwQ0Q2MzMx
MDAwRkFEQTc1IC8qIEhUTUxWaWRlb0VsZW1lbnQuaCAqLzsgfTsKKwkJRTQ0NjEzQUIwQ0Q2MzMx
MDAwRkFEQTc1IC8qIEhUTUxWaWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0NDYxMzk5MENENjMzMTAwMEZBREE3NSAvKiBIVE1MVmlk
ZW9FbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRTQ0NjEzQUQwQ0Q2MzMxMDAwRkFEQTc1IC8qIE1lZGlhRXJyb3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0NDYxMzlCMENENjMzMTAwMEZB
REE3NSAvKiBNZWRpYUVycm9yLmggKi87IH07CiAJCUU0NDYxM0FGMENENjMzMTAwMEZBREE3NSAv
KiBUaW1lUmFuZ2VzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEU0NDYxMzlEMENENjMzMTAwMEZBREE3NSAvKiBUaW1lUmFuZ2VzLmNwcCAqLzsgfTsK
IAkJRTQ0NjEzQjAwQ0Q2MzMxMDAwRkFEQTc1IC8qIFRpbWVSYW5nZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0NDYxMzlFMENENjMzMTAwMEZBREE3
NSAvKiBUaW1lUmFuZ2VzLmggKi87IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAppbmRl
eCA4YjA0YjUwMTYxNmQyMjMxZTg1ZDhiYmM5MzE3NGQ0ZTJkMWM3MTk0Li42NDVmZGJlNmE1NTgw
ZWE2NDc3ZDJmNjRiZDIwZWQwNjQzMWU2MTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5j
cHAKQEAgLTE2Nyw2ICsxNjcsOCBAQCBQc2V1ZG9JZCBDU1NTZWxlY3Rvcjo6cHNldWRvSWQoUHNl
dWRvVHlwZSB0eXBlKQogICAgICAgICByZXR1cm4gRlVMTF9TQ1JFRU5fRE9DVU1FTlQ7CiAgICAg
Y2FzZSBQc2V1ZG9GdWxsU2NyZWVuTWVkaWFEb2N1bWVudDoKICAgICAgICAgcmV0dXJuIEZVTExf
U0NSRUVOX01FRElBX0RPQ1VNRU5UOworICAgIGNhc2UgUHNldWRvQW5pbWF0aW5nRnVsbFNjcmVl
bjoKKyAgICAgICAgcmV0dXJuIEFOSU1BVElOR19GVUxMX1NDUkVFTjsKICNlbmRpZgogICAgICAg
ICAgICAgCiAgICAgY2FzZSBQc2V1ZG9JbnB1dExpc3RCdXR0b246CkBAIC0zMjIsNiArMzI0LDcg
QEAgc3RhdGljIEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIENTU1NlbGVjdG9yOjpQc2V1ZG9U
eXBlPiogbmFtZVRvUHNldWRvVHlwZU1hcCgKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgZnVsbFNjcmVlbiwgKCItd2Via2l0LWZ1bGwtc2NyZWVuIikpOwogICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmdWxsU2NyZWVuRG9jdW1lbnQsICgiLXdlYmtp
dC1mdWxsLXNjcmVlbi1kb2N1bWVudCIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgZnVsbFNjcmVlbk1lZGlhRG9jdW1lbnQsICgiLXdlYmtpdC1mdWxsLXNjcmVlbi1t
ZWRpYS1kb2N1bWVudCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
YW5pbWF0aW5nRnVsbFNjcmVlbiwgKCItd2Via2l0LWFuaW1hdGluZy1mdWxsLXNjcmVlbiIpKTsK
ICNlbmRpZgogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpblJhbmdlLCAo
ImluLXJhbmdlIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvdXRP
ZlJhbmdlLCAoIm91dC1vZi1yYW5nZSIpKTsKQEAgLTQxMCw2ICs0MTMsNyBAQCBzdGF0aWMgSGFz
aE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGU+KiBuYW1lVG9Q
c2V1ZG9UeXBlTWFwKAogICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBlLT5zZXQoZnVsbFNjcmVlbi5p
bXBsKCksIENTU1NlbGVjdG9yOjpQc2V1ZG9GdWxsU2NyZWVuKTsKICAgICAgICAgbmFtZVRvUHNl
dWRvVHlwZS0+c2V0KGZ1bGxTY3JlZW5Eb2N1bWVudC5pbXBsKCksIENTU1NlbGVjdG9yOjpQc2V1
ZG9GdWxsU2NyZWVuRG9jdW1lbnQpOwogICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBlLT5zZXQoZnVs
bFNjcmVlbk1lZGlhRG9jdW1lbnQuaW1wbCgpLCBDU1NTZWxlY3Rvcjo6UHNldWRvRnVsbFNjcmVl
bk1lZGlhRG9jdW1lbnQpOworICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBlLT5zZXQoYW5pbWF0aW5n
RnVsbFNjcmVlbi5pbXBsKCksIENTU1NlbGVjdG9yOjpQc2V1ZG9BbmltYXRpbmdGdWxsU2NyZWVu
KTsKICNlbmRpZgogICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBlLT5zZXQoaW5SYW5nZS5pbXBsKCks
IENTU1NlbGVjdG9yOjpQc2V1ZG9JblJhbmdlKTsKICAgICAgICAgbmFtZVRvUHNldWRvVHlwZS0+
c2V0KG91dE9mUmFuZ2UuaW1wbCgpLCBDU1NTZWxlY3Rvcjo6UHNldWRvT3V0T2ZSYW5nZSk7CkBA
IC01MjAsNiArNTI0LDcgQEAgdm9pZCBDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUoKSBj
b25zdAogICAgIGNhc2UgUHNldWRvRnVsbFNjcmVlbjoKICAgICBjYXNlIFBzZXVkb0Z1bGxTY3Jl
ZW5Eb2N1bWVudDoKICAgICBjYXNlIFBzZXVkb0Z1bGxTY3JlZW5NZWRpYURvY3VtZW50OgorICAg
IGNhc2UgUHNldWRvQW5pbWF0aW5nRnVsbFNjcmVlbjoKICNlbmRpZgogICAgIGNhc2UgUHNldWRv
SW5SYW5nZToKICAgICBjYXNlIFBzZXVkb091dE9mUmFuZ2U6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rv
ci5oCmluZGV4IGMxNzIyNzY3OTQ4MzczNDIwMzc0NTFkMWEyY2Q5MmI2ZWY5N2I0ZWQuLjVmMWQ4
YzlmMmRmMjUyZWIzZTBkY2U2NWYyZjc4ZDg2YzAyMWE5OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxl
Y3Rvci5oCkBAIC0xOTAsNiArMTkwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAg
ICAgUHNldWRvRnVsbFNjcmVlbiwKICAgICAgICAgICAgIFBzZXVkb0Z1bGxTY3JlZW5Eb2N1bWVu
dCwKICAgICAgICAgICAgIFBzZXVkb0Z1bGxTY3JlZW5NZWRpYURvY3VtZW50LAorICAgICAgICAg
ICAgUHNldWRvQW5pbWF0aW5nRnVsbFNjcmVlbiwKICNlbmRpZgogICAgICAgICAgICAgUHNldWRv
SW5SYW5nZSwKICAgICAgICAgICAgIFBzZXVkb091dE9mUmFuZ2UsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXggMGJmZGVlNTZjZDU1MTI2Yjk1YzkzMDZlZjlmMTA2
YjFkZjU0ODBlZi4uZWNhNDM0M2VmODZhZGY4ZGJhYzU1NDBlMTRkODA1N2IzMGVlMzA1MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtMjkwNyw2ICsyOTA3LDEw
IEBAIGJvb2wgQ1NTU3R5bGVTZWxlY3Rvcjo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVj
dG9yKENTU1NlbGVjdG9yKiBzZWwsIEVsZW1lCiAgICAgICAgICAgICAgICAgaWYgKGUgIT0gZS0+
ZG9jdW1lbnQoKS0+d2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkpCiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0FuaW1hdGluZ0Z1bGxTY3JlZW46Cisg
ICAgICAgICAgICAgICAgaWYgKGUgIT0gZS0+ZG9jdW1lbnQoKS0+d2Via2l0Q3VycmVudEZ1bGxT
Y3JlZW5FbGVtZW50KCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZS0+ZG9jdW1lbnQoKS0+aXNBbmltYXRpbmdGdWxsU2NyZWVuKCk7
CiAgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GdWxsU2NyZWVuTWVkaWFEb2N1
bWVudDoKICAgICAgICAgICAgICAgICBpZiAoIWUtPmRvY3VtZW50KCktPndlYmtpdElzRnVsbFNj
cmVlbigpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvZnVsbHNjcmVlbi5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvZnVs
bHNjcmVlbi5jc3MKaW5kZXggNTM1MDAzNTQwNTQxNjVmMDI5YTI0NzZmMDYwY2MzZjVkYmEzMDMw
Mi4uMTg2ZGQ3OWZhNmJiNDc5OGIxZGJmYzlhNTNkZTMyZWU4YTc5YjgzNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL2Z1bGxzY3JlZW4uY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9mdWxsc2NyZWVuLmNzcwpAQCAtMTMsNyArMTMsNyBAQAogfQogCiB2aWRlbzotd2Via2l0LWZ1
bGwtc2NyZWVuIHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjayAhaW1wb3J0YW50OworICAg
IGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7CiAgICAgcG9zaXRpb246
IHN0YXRpYyAhaW1wb3J0YW50OwogICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OwogICAgIGhlaWdo
dDogMTAwJSAhaW1wb3J0YW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL2Z1bGxz
Y3JlZW5RdWlja1RpbWUuY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL2Z1bGxzY3JlZW5RdWlja1Rp
bWUuY3NzCmluZGV4IDgwY2Y5ZTQ0NzRiODc1M2M4NzA0YzZlYzBjMWJiMmNkY2M4MzYwODguLmMy
ODA0ZDIyZmQxZjUzYjdhYjNkZDY4NWY4MzAxYTBiMmUxZjgzMjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9mdWxsc2NyZWVuUXVpY2tUaW1lLmNzcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvZnVsbHNjcmVlblF1aWNrVGltZS5jc3MKQEAgLTU0LDYgKzU0LDEzIEBAIHZpZGVvOi13
ZWJraXQtZnVsbC1zY3JlZW46Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwgewogICAgICAg
ICBpbnNldCAwIC0xcHggMCAwcHggICByZ2JhKDIwMiwgMjAyLCAyMDIsIDAuMDkpLAogICAgICAg
ICAwICAwICAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjUpOwogICAgIC13ZWJraXQtYm9yZGVyLXJh
ZGl1czogOHB4OworCisgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgbGluZWFy
OworfQorCit2aWRlbzotd2Via2l0LWFuaW1hdGluZy1mdWxsLXNjcmVlbjo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy1wYW5lbCB7CisgICAgb3BhY2l0eTogMDsKKyAgICAtd2Via2l0LXRyYW5zaXRp
b246IG9wYWNpdHkgMDsKIH0KIAogdmlkZW86LXdlYmtpdC1mdWxsLXNjcmVlbjo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy1tdXRlLWJ1dHRvbiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAz
ZDJiNmRkYjljM2FhOWEyYmM0ZGJlNWZhN2VjOTZlOGIxM2ViMTY5Li4yNzFlODQxMGYyYjQwYzE2
MWU1YTYwYThlOWQwMzcyZmM3MjhiMjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQx
NSw2ICs0MTUsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJM
JiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAgICAgLCBtX2FyZUtleXNFbmFibGVk
SW5GdWxsU2NyZWVuKDApCiAgICAgLCBtX2Z1bGxTY3JlZW5SZW5kZXJlcigwKQogICAgICwgbV9m
dWxsU2NyZWVuQ2hhbmdlRGVsYXlUaW1lcih0aGlzLCAmRG9jdW1lbnQ6OmZ1bGxTY3JlZW5DaGFu
Z2VEZWxheVRpbWVyRmlyZWQpCisgICAgLCBtX2lzQW5pbWF0aW5nRnVsbFNjcmVlbihmYWxzZSkK
ICNlbmRpZgogICAgICwgbV9sb2FkRXZlbnREZWxheUNvdW50KDApCiAgICAgLCBtX2xvYWRFdmVu
dERlbGF5VGltZXIodGhpcywgJkRvY3VtZW50Ojpsb2FkRXZlbnREZWxheVRpbWVyRmlyZWQpCkBA
IC00ODcyLDYgKzQ4NzMsNyBAQCB2b2lkIERvY3VtZW50Ojp3ZWJraXRXaWxsRW50ZXJGdWxsU2Ny
ZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQogICAgIEFTU0VSVChwYWdlKCkgJiYgcGFn
ZSgpLT5zZXR0aW5ncygpLT5mdWxsU2NyZWVuRW5hYmxlZCgpKTsKIAogICAgIG1fZnVsbFNjcmVl
bkVsZW1lbnQgPSBlbGVtZW50OworICAgIG1faXNBbmltYXRpbmdGdWxsU2NyZWVuID0gdHJ1ZTsK
ICAgICAKICAgICBpZiAobV9mdWxsU2NyZWVuRWxlbWVudCAhPSBkb2N1bWVudEVsZW1lbnQoKSkK
ICAgICAgICAgbV9mdWxsU2NyZWVuRWxlbWVudC0+ZGV0YWNoKCk7CkBAIC00ODgxLDcgKzQ4ODMs
NiBAQCB2b2lkIERvY3VtZW50Ojp3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChF
bGVtZW50KiBlbGVtZW50KQogICAgIHJlY2FsY1N0eWxlKEZvcmNlKTsKICAgICAKICAgICBpZiAo
bV9mdWxsU2NyZWVuUmVuZGVyZXIpIHsKLSAgICAgICAgbV9mdWxsU2NyZWVuUmVuZGVyZXItPnNl
dEFuaW1hdGluZyh0cnVlKTsKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
ICAgIHZpZXcoKS0+dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoKTsKICAgICAgICAgaWYgKG1fZnVs
bFNjcmVlblJlbmRlcmVyLT5sYXllcigpLT5pc0NvbXBvc2l0ZWQoKSkKQEAgLTQ4OTIsMTIgKzQ4
OTMsMTMgQEAgdm9pZCBEb2N1bWVudDo6d2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1l
bnQoRWxlbWVudCogZWxlbWVudCkKICAgICAKIHZvaWQgRG9jdW1lbnQ6OndlYmtpdERpZEVudGVy
RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopCiB7CisgICAgbV9pc0FuaW1hdGluZ0Z1bGxT
Y3JlZW4gPSBmYWxzZTsKKyAgICBBU1NFUlQobV9mdWxsU2NyZWVuRWxlbWVudCk7CisgICAgbV9m
dWxsU2NyZWVuRWxlbWVudC0+cmVjYWxjU3R5bGUoRm9yY2UpOworCiAgICAgaWYgKG1fZnVsbFNj
cmVlblJlbmRlcmVyKSB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAg
ICBwYWdlKCktPmNocm9tZSgpLT5jbGllbnQoKS0+c2V0Um9vdEZ1bGxTY3JlZW5MYXllcigwKTsK
LSNlbmRpZgotICAgICAgICBtX2Z1bGxTY3JlZW5SZW5kZXJlci0+c2V0QW5pbWF0aW5nKGZhbHNl
KTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIHZpZXcoKS0+dXBk
YXRlQ29tcG9zaXRpbmdMYXllcnMoKTsKICNlbmRpZgogICAgIH0KQEAgLTQ5MDgsOSArNDkxMCwx
MSBAQCB2b2lkIERvY3VtZW50Ojp3ZWJraXREaWRFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVs
ZW1lbnQqKQogdm9pZCBEb2N1bWVudDo6d2Via2l0V2lsbEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVu
dChFbGVtZW50KikKIHsKICAgICBzZXRDb250YWluc0Z1bGxTY3JlZW5FbGVtZW50UmVjdXJzaXZl
bHkob3duZXJFbGVtZW50KCksIGZhbHNlKTsKKyAgICBtX2lzQW5pbWF0aW5nRnVsbFNjcmVlbiA9
IHRydWU7CisgICAgQVNTRVJUKG1fZnVsbFNjcmVlbkVsZW1lbnQpOworICAgIG1fZnVsbFNjcmVl
bkVsZW1lbnQtPnJlY2FsY1N0eWxlKEZvcmNlKTsKICAgICAKICAgICBpZiAobV9mdWxsU2NyZWVu
UmVuZGVyZXIpIHsKLSAgICAgICAgbV9mdWxsU2NyZWVuUmVuZGVyZXItPnNldEFuaW1hdGluZyh0
cnVlKTsKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIHZpZXcoKS0+
dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoKTsKICAgICAgICAgaWYgKG1fZnVsbFNjcmVlblJlbmRl
cmVyLT5sYXllcigpLT5pc0NvbXBvc2l0ZWQoKSkKQEAgLTQ5MjIsNiArNDkyNiw3IEBAIHZvaWQg
RG9jdW1lbnQ6OndlYmtpdFdpbGxFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopCiB2
b2lkIERvY3VtZW50Ojp3ZWJraXREaWRFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCop
CiB7CiAgICAgbV9hcmVLZXlzRW5hYmxlZEluRnVsbFNjcmVlbiA9IGZhbHNlOworICAgIG1faXNB
bmltYXRpbmdGdWxsU2NyZWVuID0gZmFsc2U7CiAKICAgICBpZiAobV9mdWxsU2NyZWVuUmVuZGVy
ZXIpCiAgICAgICAgIG1fZnVsbFNjcmVlblJlbmRlcmVyLT5yZW1vdmUoKTsKQEAgLTUwMTQsNiAr
NTAxOSwyNyBAQCB2b2lkIERvY3VtZW50OjpyZW1vdmVGdWxsU2NyZWVuRWxlbWVudE9mU3VidHJl
ZShOb2RlKiBub2RlLCBib29sIGFtb25nQ2hpbGRyZW5PbgogICAgIGlmIChlbGVtZW50SW5TdWJ0
cmVlKQogICAgICAgICBmdWxsU2NyZWVuRWxlbWVudFJlbW92ZWQoKTsKIH0KKworYm9vbCBEb2N1
bWVudDo6aXNBbmltYXRpbmdGdWxsU2NyZWVuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pc0Fu
aW1hdGluZ0Z1bGxTY3JlZW47Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnNldEFuaW1hdGluZ0Z1bGxT
Y3JlZW4oYm9vbCBmbGFnKQoreworICAgIGlmIChtX2lzQW5pbWF0aW5nRnVsbFNjcmVlbiA9PSBm
bGFnKQorICAgICAgICByZXR1cm47CisgICAgbV9pc0FuaW1hdGluZ0Z1bGxTY3JlZW4gPSBmbGFn
OworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGlmIChtX2Z1bGxTY3Jl
ZW5SZW5kZXJlciAmJiBtX2Z1bGxTY3JlZW5SZW5kZXJlci0+bGF5ZXIoKSkgeworICAgICAgICBt
X2Z1bGxTY3JlZW5SZW5kZXJlci0+bGF5ZXIoKS0+Y29udGVudENoYW5nZWQoUmVuZGVyTGF5ZXI6
OkZ1bGxTY3JlZW5DaGFuZ2VkKTsKKyAgICAgICAgLy8gQ2xlYXJpbmcgdGhlIGxheWVyJ3MgYmFj
a2luZyB3aWxsIGZvcmNlIHRoZSBjb21wb3NpdG9yIHRvIHJlcGFyZW50CisgICAgICAgIC8vIHRo
ZSBsYXllciB0aGUgbmV4dCB0aW1lIGxheWVycyBhcmUgc3luY2hyb25pemVkLgorICAgICAgICBt
X2Z1bGxTY3JlZW5SZW5kZXJlci0+bGF5ZXIoKS0+Y2xlYXJCYWNraW5nKCk7CisgICAgfQorI2Vu
ZGlmCit9CiAjZW5kaWYKIAogdm9pZCBEb2N1bWVudDo6ZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlD
b3VudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDM2MmM0NTgyYzcyOGZjOTY1MjExZjExMjY3
ZTRlOGE1MTM3ZmY4NTkuLmM0MTVjYTA1NjM0ZDZjN2IyODMyZjhiMzUxZjIzMmE2Y2NkNWYyOTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMDczLDYgKzEwNzMsOCBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBmdWxsU2NyZWVuSXNBbGxvd2VkRm9yRWxlbWVudChFbGVtZW50KikgY29uc3Q7CiAgICAg
dm9pZCBmdWxsU2NyZWVuRWxlbWVudFJlbW92ZWQoKTsKICAgICB2b2lkIHJlbW92ZUZ1bGxTY3Jl
ZW5FbGVtZW50T2ZTdWJ0cmVlKE5vZGUqLCBib29sIGFtb25nQ2hpbGRyZW5Pbmx5ID0gZmFsc2Up
OworICAgIGJvb2wgaXNBbmltYXRpbmdGdWxsU2NyZWVuKCkgY29uc3Q7CisgICAgdm9pZCBzZXRB
bmltYXRpbmdGdWxsU2NyZWVuKGJvb2wpOwogI2VuZGlmCiAKICAgICAvLyBVc2VkIHRvIGFsbG93
IGVsZW1lbnQgdGhhdCBsb2FkcyBkYXRhIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCBhIEZyYW1lTG9h
ZGVyIHRvIGRlbGF5IHRoZSAnbG9hZCcgZXZlbnQuCkBAIC0xMzg4LDYgKzEzOTAsNyBAQCBwcml2
YXRlOgogICAgIFJlbmRlckZ1bGxTY3JlZW4qIG1fZnVsbFNjcmVlblJlbmRlcmVyOwogICAgIFRp
bWVyPERvY3VtZW50PiBtX2Z1bGxTY3JlZW5DaGFuZ2VEZWxheVRpbWVyOwogICAgIERlcXVlPFJl
ZlB0cjxFbGVtZW50PiA+IG1fZnVsbFNjcmVlbkNoYW5nZUV2ZW50VGFyZ2V0UXVldWU7CisgICAg
Ym9vbCBtX2lzQW5pbWF0aW5nRnVsbFNjcmVlbjsKICNlbmRpZgogCiAgICAgaW50IG1fbG9hZEV2
ZW50RGVsYXlDb3VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1D
b250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVs
ZW1lbnQuY3BwCmluZGV4IGFlMDJlYmVlZDc1MjNhNDk5OWE1MjBlNDgxMmNjOTIxNjUwYzllMDMu
LjEzNWQyZjBhMTcxMTdiZTAzNmIyNGNiNGQ1ZGMzNGFjMzQ4ZTVkY2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtMjYwLDcgKzI2MCw2
IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZUZyb21FbGVtZW50Q2FsbGJhY2soTm9kZSogbm9kZSkKIHsK
ICAgICBBU1NFUlRfQVJHKG5vZGUsIG5vZGUtPmlzRWxlbWVudE5vZGUoKSk7CiAgICAgQVNTRVJU
X0FSRyhub2RlLCBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSktPmlzRm9ybUNvbnRyb2xFbGVt
ZW50KCkpOwotICAgIEFTU0VSVChub2RlLT5yZW5kZXJlcigpKTsKICAgICBpZiAoUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCkpCiAgICAgICAgIHJlbmRlcmVyLT51cGRh
dGVGcm9tRWxlbWVudCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDlhMDU2
ODEyZDJjYjVjYjcxMGM4MjY2OGRiMjAyM2RhOWMzMDg1OTQuLmFjN2EyM2MyN2I1YTZlYTIwODE3
YTI1MTA5NmRiMDViMjk1ZGE5MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTU5
Niw3ICs1OTYsNyBAQCB2b2lkIEZyYW1lVmlldzo6Y2FsY3VsYXRlU2Nyb2xsYmFyTW9kZXNGb3JM
YXlvdXQoU2Nyb2xsYmFyTW9kZSYgaE1vZGUsIFNjcm9sbGJhcgogI2lmIEVOQUJMRShGVUxMU0NS
RUVOX0FQSSkgJiYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogc3RhdGljIGJvb2wgaXNE
b2N1bWVudFJ1bm5pbmdGdWxsU2NyZWVuQW5pbWF0aW9uKERvY3VtZW50KiBkb2N1bWVudCkKIHsK
LSAgICByZXR1cm4gZG9jdW1lbnQtPndlYmtpdElzRnVsbFNjcmVlbigpICYmIGRvY3VtZW50LT5m
dWxsU2NyZWVuUmVuZGVyZXIoKSAmJiBkb2N1bWVudC0+ZnVsbFNjcmVlblJlbmRlcmVyKCktPmlz
QW5pbWF0aW5nKCk7CisgICAgcmV0dXJuIGRvY3VtZW50LT53ZWJraXRJc0Z1bGxTY3JlZW4oKSAm
JiBkb2N1bWVudC0+ZnVsbFNjcmVlblJlbmRlcmVyKCkgJiYgZG9jdW1lbnQtPmlzQW5pbWF0aW5n
RnVsbFNjcmVlbigpOwogfQogI2VuZGlmCiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRnVsbFNjcmVlbi5jcHAKaW5kZXggNmMxM2I3NjdkNDBmZWY2NjU3MmY3MTgzYTRm
NDc1NDlmMmU0MzJmNC4uODI5MzU0MDgwN2JlOTQyYmEwMmY2YWUwYjk1NjAwNzFlYTE3ZDI1OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcApAQCAt
MzYsMjIgKzM2LDYgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLXZvaWQgUmVuZGVy
RnVsbFNjcmVlbjo6c2V0QW5pbWF0aW5nKGJvb2wgYW5pbWF0aW5nKQotewotICAgIGlmIChtX2lz
QW5pbWF0aW5nID09IGFuaW1hdGluZykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9pc0FuaW1h
dGluZyA9IGFuaW1hdGluZzsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAg
aWYgKGxheWVyKCkpIHsKLSAgICAgICAgbGF5ZXIoKS0+Y29udGVudENoYW5nZWQoUmVuZGVyTGF5
ZXI6OkZ1bGxTY3JlZW5DaGFuZ2VkKTsKLSAgICAgICAgLy8gQ2xlYXJpbmcgdGhlIGxheWVyJ3Mg
YmFja2luZyB3aWxsIGZvcmNlIHRoZSBjb21wb3NpdG9yIHRvIHJlcGFyZW50Ci0gICAgICAgIC8v
IHRoZSBsYXllciB0aGUgbmV4dCB0aW1lIGxheWVycyBhcmUgc3luY2hyb25pemVkLgotICAgICAg
ICBsYXllcigpLT5jbGVhckJhY2tpbmcoKTsKLSAgICB9Ci0jZW5kaWYKLX0KLQogUGFzc1JlZlB0
cjxSZW5kZXJTdHlsZT4gUmVuZGVyRnVsbFNjcmVlbjo6Y3JlYXRlRnVsbFNjcmVlblN0eWxlKCkK
IHsKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IGZ1bGxzY3JlZW5TdHlsZSA9IFJlbmRlclN0eWxl
OjpjcmVhdGVEZWZhdWx0U3R5bGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGdWxsU2NyZWVuLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RnVsbFNjcmVlbi5oCmluZGV4IDMwZjk1YzFhMzhmM2E4OWViZmZkODY1NDc2MTliNzE1NDIyNjRh
OGEuLmMyZTk2MDI3N2VmNDAyNTViMWUwOTdiMGFiMjg4ZGEyY2FhZGYyZGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uaApAQCAtMzcsOSArMzcsNiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVyRnVsbFNjcmVlbigpIGNvbnN0IHsgcmV0
dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7
IHJldHVybiAiUmVuZGVyRnVsbFNjcmVlbiI7IH0KICAgICAKLSAgICBib29sIGlzQW5pbWF0aW5n
KCkgY29uc3QgeyByZXR1cm4gbV9pc0FuaW1hdGluZzsgfQotICAgIHZvaWQgc2V0QW5pbWF0aW5n
KGJvb2wpOwotICAgIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBjcmVhdGVG
dWxsU2NyZWVuU3R5bGUoKTsKICAgICAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggNTkxZjYwN2FkODFk
OTQ0MWVjMWE5YTJiYzM5MzgyZmI3OTVlZDhhMy4uOGIwMmY3NDhkYjk5NmU5Y2NjMmNhZTIyYjJi
MjMyYmVjNmU2MTQ1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTg4NCw3ICs4ODQsNyBAQCB2b2lkIFJlbmRlckxheWVy
Q29tcG9zaXRvcjo6cmVidWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKFJlbmRlckxheWVyKiBsYXll
ciwgY29ucwogICAgICAgICAvLyBGb3IgdGhlIHNha2Ugb2YgY2xpZW50cyBvZiB0aGUgZnVsbCBz
Y3JlZW4gcmVuZGVyZXIsIGRvbid0IHJlcGFyZW50CiAgICAgICAgIC8vIHRoZSBmdWxsIHNjcmVl
biBsYXllciBvdXQgZnJvbSB1bmRlciB0aGVtIGlmIHRoZXkncmUgaW4gdGhlIG1pZGRsZSBvZgog
ICAgICAgICAvLyBhbmltYXRpbmcuCi0gICAgICAgIGlmIChsYXllci0+cmVuZGVyZXIoKS0+aXNS
ZW5kZXJGdWxsU2NyZWVuKCkgJiYgdG9SZW5kZXJGdWxsU2NyZWVuKGxheWVyLT5yZW5kZXJlcigp
KS0+aXNBbmltYXRpbmcoKSkKKyAgICAgICAgaWYgKGxheWVyLT5yZW5kZXJlcigpLT5pc1JlbmRl
ckZ1bGxTY3JlZW4oKSAmJiBtX3JlbmRlclZpZXctPmRvY3VtZW50KCktPmlzQW5pbWF0aW5nRnVs
bFNjcmVlbigpKQogICAgICAgICAgICAgcmV0dXJuOwogI2VuZGlmCiAgICAgICAgIGNoaWxkTGF5
ZXJzT2ZFbmNsb3NpbmdMYXllci5hcHBlbmQobGF5ZXJCYWNraW5nLT5jaGlsZEZvclN1cGVybGF5
ZXJzKCkpOwpAQCAtMTQxNCw3ICsxNDE0LDcgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnJlcXVpcmVzQ29tcG9zaXRpbmdXaGVuRGVzY2VuZGFudHNBcmVDb21wb3NpdGluZyhSZW4KIGJv
b2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yRnVsbFNjcmVl
bihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKSBjb25zdAogewogI2lmIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKLSAgICByZXR1cm4gcmVuZGVyZXItPmlzUmVuZGVyRnVsbFNjcmVlbigpICYmIHRvUmVu
ZGVyRnVsbFNjcmVlbihyZW5kZXJlciktPmlzQW5pbWF0aW5nKCk7CisgICAgcmV0dXJuIHJlbmRl
cmVyLT5pc1JlbmRlckZ1bGxTY3JlZW4oKSAmJiBtX3JlbmRlclZpZXctPmRvY3VtZW50KCktPmlz
QW5pbWF0aW5nRnVsbFNjcmVlbigpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0ocmVuZGVyZXIp
OwogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKaW5kZXggYzU0ZWNjZmE4MjZkYTliZDc1Mzg4
NGJiMmNhY2UwMjI5OWJlODQwYi4uZDM2Zjg2MTBmMTIzM2Q3YmJjMzYyMDkyMjQ0MDJmNmQxMGNl
NTRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlQ29uc3RhbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlQ29uc3RhbnRzLmgKQEAgLTc0LDcgKzc0LDcgQEAgZW51bSBQc2V1ZG9JZCB7CiAgICAg
SU5QVVRfTElTVF9CVVRUT04sIElOUFVUX1NQRUVDSF9CVVRUT04sIElOTkVSX1NQSU5fQlVUVE9O
LCBPVVRFUl9TUElOX0JVVFRPTiwgVklTSVRFRF9MSU5LLAogICAgIE1FVEVSX0JBUiwgTUVURVJf
T1BUSU1VTSwgTUVURVJfU1VCT1BUSU1BTCwgTUVURVJfRVZFTl9MRVNTX0dPT0QsCiAgICAgQUZU
RVJfTEFTVF9JTlRFUk5BTF9QU0VVRE9JRCwKLSAgICBGVUxMX1NDUkVFTiwgRlVMTF9TQ1JFRU5f
RE9DVU1FTlQsIEZVTExfU0NSRUVOX01FRElBX0RPQ1VNRU5ULAorICAgIEZVTExfU0NSRUVOLCBG
VUxMX1NDUkVFTl9ET0NVTUVOVCwgRlVMTF9TQ1JFRU5fTUVESUFfRE9DVU1FTlQsIEFOSU1BVElO
R19GVUxMX1NDUkVFTiwKICAgICBGSVJTVF9QVUJMSUNfUFNFVURPSUQgPSBGSVJTVF9MSU5FLAog
ICAgIEZJUlNUX0lOVEVSTkFMX1BTRVVET0lEID0gRklMRV9VUExPQURfQlVUVE9OLAogICAgIFBV
QkxJQ19QU0VVRE9JRF9NQVNLID0gKCgxIDw8IEZJUlNUX0lOVEVSTkFMX1BTRVVET0lEKSAtIDEp
ICYgfigoMSA8PCBGSVJTVF9QVUJMSUNfUFNFVURPSUQpIC0gMSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2MzNh
YmEyZGE5YmE4ZmI5MjgyMTk3YmU0NGZhNzU1NTQxNWM4NGI2Li4zYjg1YmRiNDJlZWY4Y2VlMzBi
NDJkMTQ0MmZhMTAxMmJmZWU4ZDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEt
MDUtMjAgIEplcmVteSBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVmlkZW8gbG9va3Mgc3F1aXNoZWQg
d2hlbiBhbmltYXRpbmcgdG8gZnVsbCBzY3JlZW4uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTIyMAorCisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxs
U2NyZWVuL21hYy9XZWJGdWxsU2NyZWVuTWFuYWdlck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViRnVsbFNjcmVlbk1hbmFnZXJNYWM6OmJlZ2luRW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9uKTog
U2V0IHRoZSBkZXN0aW5hdGlvbiBmcmFtZQorICAgICAgICAgICAgdG8gYmUgdGhlIGNvbnRlbnQg
Ym94IG9mIHRoZSBjdXJyZW50IGZ1bGwgc2NyZWVuIGVsZW1lbnQuCisgICAgICAgIChXZWJLaXQ6
OldlYkZ1bGxTY3JlZW5NYW5hZ2VyTWFjOjpiZWdpbkV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uKTog
RGl0dG8uCisKIDIwMTEtMDUtMTkgIEplcmVteSBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vbWFjL1dlYkZ1bGxTY3JlZW5NYW5hZ2Vy
TWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL21hYy9XZWJGdWxs
U2NyZWVuTWFuYWdlck1hYy5tbQppbmRleCA5Y2NjMTllMWQzYTAyYTE5MTc5YmUyODAwYjkzZjBh
YjljZTQwZmM2Li5jZjNmOTViODk1YjdmM2I3MDBmNGU5ZWY2ZjlhYmE1NWMxNWM4YTU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vbWFjL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNj
cmVlbi9tYWMvV2ViRnVsbFNjcmVlbk1hbmFnZXJNYWMubW0KQEAgLTM3LDcgKzM3LDExIEBACiAj
aW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lVmlldy5oPgog
I2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL0hUTUxW
aWRlb0VsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9SZW5kZXJMYXllci5oPgorI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJMYXllckJhY2tpbmcuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyT2JqZWN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NldHRp
bmdzLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KIApAQCAtMTk2LDYgKzIw
MCwxMSBAQCB2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWFjOjpiZWdpbkVudGVyRnVsbFNjcmVl
bkFuaW1hdGlvbihmbG9hdCBkdXJhdGlvbikKICAgICBtX2VsZW1lbnQtPmRvY3VtZW50KCktPnNl
dEZ1bGxTY3JlZW5SZW5kZXJlclNpemUoZGVzdGluYXRpb25GcmFtZS5zaXplKCkpOwogICAgIG1f
cm9vdExheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZSgpOwogCisgICAgUmVuZGVyTGF5ZXIqIGxh
eWVyID0gbV9lbGVtZW50LT5yZW5kZXJlcigpID8gbV9lbGVtZW50LT5yZW5kZXJlcigpLT5lbmNs
b3NpbmdMYXllcigpIDogMDsKKyAgICBSZW5kZXJMYXllckJhY2tpbmcqIGJhY2tpbmcgPSBsYXll
ciA/IGxheWVyLT5iYWNraW5nKCkgOiAwOworICAgIGlmIChiYWNraW5nKQorICAgICAgICBkZXN0
aW5hdGlvbkZyYW1lLnNldFNpemUoYmFja2luZy0+Y29udGVudHNCb3goKS5zaXplKCkpOworICAg
IAogICAgIC8vIEZJWE1FOiBPbmNlIHdlIGdhaW4gdGhlIGFiaWxpdHkgdG8gZG8gbmF0aXZlIFdl
YktpdCBhbmltYXRpb25zIG9mIGdlbmVyYXRlZAogICAgIC8vIGNvbnRlbnQsIHRoaXMgY2FuIGNo
YW5nZSB0byB1c2UgdGhlbS4gIE1lYW53aGlsZSwgd2UnbGwgaGF2ZSB0byBhbmltYXRlIHRoZQog
ICAgIC8vIENBTGF5ZXIgZGlyZWN0bHk6CkBAIC0yNTAsNiArMjU5LDExIEBAIHZvaWQgV2ViRnVs
bFNjcmVlbk1hbmFnZXJNYWM6OmJlZ2luRXhpdEZ1bGxTY3JlZW5BbmltYXRpb24oZmxvYXQgZHVy
YXRpb24pCiAgICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLT5zZXRGdWxsU2NyZWVuUmVuZGVyZXJT
aXplKGRlc3RpbmF0aW9uRnJhbWUuc2l6ZSgpKTsKICAgICBtX3Jvb3RMYXllci0+c3luY0NvbXBv
c2l0aW5nU3RhdGUoKTsKIAorICAgIFJlbmRlckxheWVyKiBsYXllciA9IG1fZWxlbWVudC0+cmVu
ZGVyZXIoKSA/IG1fZWxlbWVudC0+cmVuZGVyZXIoKS0+ZW5jbG9zaW5nTGF5ZXIoKSA6IDA7Cisg
ICAgUmVuZGVyTGF5ZXJCYWNraW5nKiBiYWNraW5nID0gbGF5ZXIgPyBsYXllci0+YmFja2luZygp
IDogMDsKKyAgICBpZiAoYmFja2luZykKKyAgICAgICAgZGVzdGluYXRpb25GcmFtZS5zZXRTaXpl
KGJhY2tpbmctPmNvbnRlbnRzQm94KCkuc2l6ZSgpKTsKKwogICAgIC8vIEZJWE1FOiBPbmNlIHdl
IGdhaW4gdGhlIGFiaWxpdHkgdG8gZG8gbmF0aXZlIFdlYktpdCBhbmltYXRpb25zIG9mIGdlbmVy
YXRlZAogICAgIC8vIGNvbnRlbnQsIHRoaXMgY2FuIGNoYW5nZSB0byB1c2UgdGhlbS4gIE1lYW53
aGlsZSwgd2UnbGwgaGF2ZSB0byBhbmltYXRlIHRoZQogICAgIC8vIENBTGF5ZXIgZGlyZWN0bHk6
CkBAIC0yNjAsMTQgKzI3NCwxMyBAQCB2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWFjOjpiZWdp
bkV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uKGZsb2F0IGR1cmF0aW9uKQogICAgIC8vIHRoZSBmdWxs
c2NyZWVuIGVsZW1lbnQgYXBwZWFycyB0byBtb3ZlIGZyb20gaXRzIHN0YXJ0aW5nIHBvc2l0aW9u
IGFuZCBzaXplIHRvIGl0cwogICAgIC8vIGZpbmFsIG9uZS4KICAgICBDR1BvaW50IGRlc3RpbmF0
aW9uUG9zaXRpb24gPSBbcHJlc2VudGF0aW9uTGF5ZXIgcG9zaXRpb25dOwotICAgIENHUmVjdCBk
ZXN0aW5hdGlvbkJvdW5kcyA9IFtwcmVzZW50YXRpb25MYXllciBib3VuZHNdOwogICAgIENHUG9p
bnQgbGF5ZXJBbmNob3IgPSBbY2FMYXllciBhbmNob3JQb2ludF07CiAgICAgQ0dQb2ludCBpbml0
aWFsUG9zaXRpb24gPSBDR1BvaW50TWFrZSgKICAgICAgICAgbV9pbml0aWFsRnJhbWUueCgpICsg
bV9pbml0aWFsRnJhbWUud2lkdGgoKSAqIGxheWVyQW5jaG9yLngsCiAgICAgICAgIG1faW5pdGlh
bEZyYW1lLnkoKSArIG1faW5pdGlhbEZyYW1lLmhlaWdodCgpICogbGF5ZXJBbmNob3IueSk7CiAg
ICAgQ0FUcmFuc2Zvcm0zRCBzaHJpbmtUcmFuc2Zvcm0gPSBDQVRyYW5zZm9ybTNETWFrZVNjYWxl
KAotICAgICAgICBzdGF0aWNfY2FzdDxDR0Zsb2F0PihtX2luaXRpYWxGcmFtZS53aWR0aCgpKSAv
IGRlc3RpbmF0aW9uQm91bmRzLnNpemUud2lkdGgsCi0gICAgICAgIHN0YXRpY19jYXN0PENHRmxv
YXQ+KG1faW5pdGlhbEZyYW1lLmhlaWdodCgpKSAvIGRlc3RpbmF0aW9uQm91bmRzLnNpemUuaGVp
Z2h0LCAxKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8Q0dGbG9hdD4obV9pbml0aWFsRnJhbWUud2lk
dGgoKSkgLyBkZXN0aW5hdGlvbkZyYW1lLndpZHRoKCksCisgICAgICAgIHN0YXRpY19jYXN0PENH
RmxvYXQ+KG1faW5pdGlhbEZyYW1lLmhlaWdodCgpKSAvIGRlc3RpbmF0aW9uRnJhbWUuaGVpZ2h0
KCksIDEpOwogICAgIENBVHJhbnNmb3JtM0Qgc2hpZnRUcmFuc2Zvcm0gPSBDQVRyYW5zZm9ybTNE
TWFrZVRyYW5zbGF0aW9uKAogICAgICAgICBpbml0aWFsUG9zaXRpb24ueCAtIGRlc3RpbmF0aW9u
UG9zaXRpb24ueCwKICAgICAgICAgLy8gRHJhd2luZyBpcyBmbGlwcGVkIGhlcmUsIGFuZCBzbyBt
dXN0IGJlIHRoZSB0cmFuc2xhdGlvbiB0cmFuc2Zvcm1hdGlvbgo=
</data>
<flag name="review"
          id="87590"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>