<?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>104173</bug_id>
          
          <creation_ts>2012-12-05 14:48:06 -0800</creation_ts>
          <short_desc>Display the auto-start label image after a delay</short_desc>
          <delta_ts>2012-12-07 14:10:47 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.8</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>98318</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>beidson</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>mitz</cc>
    
    <cc>mjs</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>784138</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-12-05 14:48:06 -0800</bug_when>
    <thetext>Instead of showing the image right on hover, wait a little while beforehand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784139</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-12-05 14:48:32 -0800</bug_when>
    <thetext>&lt;rdar://problem/12820071&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784261</commentid>
    <comment_count>2</comment_count>
      <attachid>177864</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-12-05 16:42:22 -0800</bug_when>
    <thetext>Created attachment 177864
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784493</commentid>
    <comment_count>3</comment_count>
      <attachid>177864</attachid>
    <who name="">mitz</who>
    <bug_when>2012-12-05 19:22:36 -0800</bug_when>
    <thetext>Comment on attachment 177864
Patch

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

I suspect this implementation is relying on nothing else causing a repaint during the 1-second delay. If anything on the page caused the plug-in to repaint during that time, then it would paint with the button before the time is up. Also, the user experience of hovering the plug-in for half a second, clicking in the (still invisible) button rect, only to reveal that you have activated a button that wasn’t there when you clicked seems like it could be confusing.

Perhaps there should be a dedicated boolean tracking whether the button should be visible?

&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:59
&gt; +    if (m_hoverDelayTimer.isActive())
&gt; +        m_hoverDelayTimer.stop();

The DeferrableOneShotTimer is a member variable, so it will be destroyed and therefore stopped here anyway.

&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:208
&gt;          }

If I mouse down inside the button, then drag out of the button (but still inside the plug-in), then release, won’t the button maintain the pressed appearance?

&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:210
&gt; +        if (m_hoverDelayTimer.isActive())

How can this be true?

&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:219
&gt; +        event-&gt;setDefaultHandled();

Maybe the diff is confusing me, but it looks like you’re calling setDefaultEnabled() twice for mouseout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785364</commentid>
    <comment_count>4</comment_count>
      <attachid>177864</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-12-06 15:55:12 -0800</bug_when>
    <thetext>Comment on attachment 177864
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:59
&gt;&gt; +        m_hoverDelayTimer.stop();
&gt; 
&gt; The DeferrableOneShotTimer is a member variable, so it will be destroyed and therefore stopped here anyway.

Removed.

&gt;&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:208
&gt;&gt;          }
&gt; 
&gt; If I mouse down inside the button, then drag out of the button (but still inside the plug-in), then release, won’t the button maintain the pressed appearance?

Yes. This is similar to input buttons, I think. But I will amend this to let the click event prevent starting the plugin if you move the mouse away from the button.

&gt;&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:210
&gt;&gt; +        if (m_hoverDelayTimer.isActive())
&gt; 
&gt; How can this be true?

It shouldn&apos;t be true. Removed. I think this got mixed in when I was refactoring.

&gt;&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:219
&gt;&gt; +        event-&gt;setDefaultHandled();
&gt; 
&gt; Maybe the diff is confusing me, but it looks like you’re calling setDefaultEnabled() twice for mouseout.

Nice catch! Removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785376</commentid>
    <comment_count>5</comment_count>
      <attachid>178100</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-12-06 16:08:22 -0800</bug_when>
    <thetext>Created attachment 178100
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785970</commentid>
    <comment_count>6</comment_count>
      <attachid>178237</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-12-07 10:33:37 -0800</bug_when>
    <thetext>Created attachment 178237
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786115</commentid>
    <comment_count>7</comment_count>
      <attachid>178237</attachid>
    <who name="">mitz</who>
    <bug_when>2012-12-07 13:51:03 -0800</bug_when>
    <thetext>Comment on attachment 178237
Patch

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

&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.h:66
&gt; +    bool m_showLabel;

I think m_showsLabel, m_isShowingLabel or m_shouldShowLabel are all better names for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786134</commentid>
    <comment_count>8</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-12-07 14:09:35 -0800</bug_when>
    <thetext>Committed r136982: &lt;http://trac.webkit.org/changeset/136982&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786136</commentid>
    <comment_count>9</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-12-07 14:10:47 -0800</bug_when>
    <thetext>I opted for m_shouldShowLabel. Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177864</attachid>
            <date>2012-12-05 16:42:22 -0800</date>
            <delta_ts>2012-12-06 16:08:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104173-20121205163947.patch</filename>
            <type>text/plain</type>
            <size>7158</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGJhMjQzY2I1N2U5Y2Vk
ZDcwOTUzY2Q3OTY5NmRhOWMzMmZjMWE4NS4uMDBmMTRmODMxZWVmMzU3MWM1NWQ5OTljYzNmNzhh
YjMyMDY3MjE4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTEyLTA1ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBEaXNwbGF5IHRoZSBhdXRvLXN0YXJ0
IGJ1dHRvbiBpbWFnZSBhZnRlciBhIGRlbGF5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQxNzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyODIw
MDcxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9u
Y2UgdGhlIHVzZXIgaGFzIGhvdmVyZWQgb3ZlciB0aGUgcGx1Zy1pbiwgd2FpdCBhIGxpdHRsZSB3
aGlsZSBiZWZvcmUgc2hvd2luZyB0aGUgYnV0dG9uLgorCisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclNuYXBzaG90dGVkUGx1Z0luLmg6CisgICAgICAgIChSZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bik6IEFkZCBhIG9uZS1zaG90IHRpbWVyLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBs
dWdJbjo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4pOiBTZXQgdGhlIHRpbWUgdG8gYSBkZWxheSBv
ZiAxIHNlY29uZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp+
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4pOiBTdG9wIHRoZSB0aW1lciBpZiBpdCBpcyBwZW5kaW5n
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OmhvdmVyRGVsYXlU
aW1lckZpcmVkKTogUmVwYWludCB3aGVuIHRoZSB0aW1lciBmaXJlcy4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpoYW5kbGVFdmVudCk6IFVwZGF0ZSBldmVudCBo
YW5kbGluZy4gQ2xpY2sgZXZlbnQgaGFuZGxlciBpcyB0aGUKKyAgICAgICAgc2FtZSwgZXhjZXB0
IHdlIG1vdmUgdGhlIGJ1dHRvbiBjaGVjayBpbnNpZGUgc28gdGhhdCBpZiB0aGUgY2xpY2sgaXMg
bm90IHRoZSBsZWZ0IGJ1dHRvbiB3ZSBkb24ndAorICAgICAgICBmYWxsIHRocm91Z2ggdG8gdGhl
IG90aGVyIGlycmV2ZWxhbnQgaWYgY2xhdXNlcy4gVGhlIG1vdXNlIGRvd24gaGFuZGxlciBpcyB0
aGUgc2FtZSwgZXhjZXB0IHdlIGFsc28KKyAgICAgICAgY2hlY2sgZm9yIHRoZSBsZWZ0IGJ1dHRv
bi4gV2UgcmVkbyBtb3VzZSBvdmVyIGFuZCBvdXQuIE9uIG1vdXNlIG92ZXIgd2Ugc3RhcnQgdGhl
IGRlbGF5IHRpbWVyLgorICAgICAgICBPbiBtb3VzZSBvdXQgd2Ugc3RvcCB0aGUgZGVsYXkgdGlt
ZXIgaWYgaXQgaXMgc3RpbGwgcnVubmluZywgYW5kIHBhaW50IHRoZSBidXR0b24gb3V0LgorCiAy
MDEyLTEyLTA1ICBBbGVjIEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBJbmRleGVkREI6IFN0dWIgb3V0IHRyYW5zYWN0aW9uLWJhY2tlbmQgbWV0aG9kcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAK
aW5kZXggOTcyYjJiZjkwNDIyM2I1Yjc3NzVmMjQyOWRjMTYyODNhMGYxNjgxNS4uMmI4N2M0YjE4
NGVmYTdlOTNjNTA1ZGE3ZWYyMDZiNGNmNTAyYmRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCkBAIC00MCwxMSArNDAs
MTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIGNvbnN0IGludCBhdXRvU3RhcnRQbHVn
SW5TaXplVGhyZXNob2xkV2lkdGggPSAxOwogc3RhdGljIGNvbnN0IGludCBhdXRvU3RhcnRQbHVn
SW5TaXplVGhyZXNob2xkSGVpZ2h0ID0gMTsKIHN0YXRpYyBjb25zdCBpbnQgc3RhcnRCdXR0b25Q
YWRkaW5nID0gMTA7CitzdGF0aWMgY29uc3QgZG91YmxlIGhvdmVyRGVsYXkgPSAxOwogCiBSZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbjo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4oSFRNTFBsdWdJbklt
YWdlRWxlbWVudCogZWxlbWVudCkKICAgICA6IFJlbmRlckVtYmVkZGVkT2JqZWN0KGVsZW1lbnQp
CiAgICAgLCBtX3NuYXBzaG90UmVzb3VyY2UoUmVuZGVySW1hZ2VSZXNvdXJjZTo6Y3JlYXRlKCkp
CiAgICAgLCBtX2lzTW91c2VJbkJ1dHRvblJlY3QoZmFsc2UpCisgICAgLCBtX2hvdmVyRGVsYXlU
aW1lcih0aGlzLCAmUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OmhvdmVyRGVsYXlUaW1lckZpcmVk
LCBob3ZlckRlbGF5KQogewogICAgIG1fc25hcHNob3RSZXNvdXJjZS0+aW5pdGlhbGl6ZSh0aGlz
KTsKIH0KQEAgLTUzLDYgKzU1LDggQEAgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46On5SZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbigpCiB7CiAgICAgQVNTRVJUKG1fc25hcHNob3RSZXNvdXJjZSk7CiAg
ICAgbV9zbmFwc2hvdFJlc291cmNlLT5zaHV0ZG93bigpOworICAgIGlmIChtX2hvdmVyRGVsYXlU
aW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX2hvdmVyRGVsYXlUaW1lci5zdG9wKCk7CiB9CiAK
IEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpwbHVnSW5J
bWFnZUVsZW1lbnQoKSBjb25zdApAQCAtMTU3LDYgKzE2MSwxMSBAQCB2b2lkIFJlbmRlclNuYXBz
aG90dGVkUGx1Z0luOjpyZXBhaW50QnV0dG9uKCkKICAgICByZXBhaW50KCk7CiB9CiAKK3ZvaWQg
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OmhvdmVyRGVsYXlUaW1lckZpcmVkKERlZmVycmFibGVP
bmVTaG90VGltZXI8UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4+KikKK3sKKyAgICByZXBhaW50QnV0
dG9uKCk7Cit9CisKIEN1cnNvckRpcmVjdGl2ZSBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6Z2V0
Q3Vyc29yKGNvbnN0IExheW91dFBvaW50JiBwb2ludCwgQ3Vyc29yJiBvdmVycmlkZUN1cnNvcikg
Y29uc3QKIHsKICAgICBpZiAocGx1Z0luSW1hZ2VFbGVtZW50KCktPmRpc3BsYXlTdGF0ZSgpIDwg
SFRNTFBsdWdJbkVsZW1lbnQ6OlBsYXlpbmdXaXRoUGVuZGluZ01vdXNlQ2xpY2spIHsKQEAgLTE3
MywyNyArMTgyLDQxIEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OmhhbmRsZUV2ZW50
KEV2ZW50KiBldmVudCkKIAogICAgIE1vdXNlRXZlbnQqIG1vdXNlRXZlbnQgPSBzdGF0aWNfY2Fz
dDxNb3VzZUV2ZW50Kj4oZXZlbnQpOwogCi0gICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnRO
YW1lcygpLmNsaWNrRXZlbnQgJiYgbW91c2VFdmVudC0+YnV0dG9uKCkgPT0gTGVmdEJ1dHRvbikg
ewotICAgICAgICBpZiAobV9pc01vdXNlSW5CdXR0b25SZWN0KQotICAgICAgICAgICAgcGx1Z0lu
SW1hZ2VFbGVtZW50KCktPnNldERpc3BsYXlTdGF0ZShIVE1MUGx1Z0luRWxlbWVudDo6UGxheWlu
Zyk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgcGx1Z0luSW1hZ2VFbGVtZW50KCktPnNl
dERpc3BsYXlTdGF0ZShIVE1MUGx1Z0luRWxlbWVudDo6UGxheWluZ1dpdGhQZW5kaW5nTW91c2VD
bGljayk7Ci0gICAgICAgICAgICBwbHVnSW5JbWFnZUVsZW1lbnQoKS0+c2V0UGVuZGluZ0NsaWNr
RXZlbnQobW91c2VFdmVudCk7CisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygp
LmNsaWNrRXZlbnQpIHsKKyAgICAgICAgaWYgKG1vdXNlRXZlbnQtPmJ1dHRvbigpID09IExlZnRC
dXR0b24pIHsKKyAgICAgICAgICAgIGlmIChtX2lzTW91c2VJbkJ1dHRvblJlY3QpCisgICAgICAg
ICAgICAgICAgcGx1Z0luSW1hZ2VFbGVtZW50KCktPnNldERpc3BsYXlTdGF0ZShIVE1MUGx1Z0lu
RWxlbWVudDo6UGxheWluZyk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBw
bHVnSW5JbWFnZUVsZW1lbnQoKS0+c2V0RGlzcGxheVN0YXRlKEhUTUxQbHVnSW5FbGVtZW50OjpQ
bGF5aW5nV2l0aFBlbmRpbmdNb3VzZUNsaWNrKTsKKyAgICAgICAgICAgICAgICBwbHVnSW5JbWFn
ZUVsZW1lbnQoKS0+c2V0UGVuZGluZ0NsaWNrRXZlbnQobW91c2VFdmVudCk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBpZiAod2lkZ2V0KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoRnJh
bWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKSkKKyAgICAgICAgICAgICAgICAgICAgZnJh
bWUtPmxvYWRlcigpLT5jbGllbnQoKS0+cmVjcmVhdGVQbHVnaW4od2lkZ2V0KCkpOworICAgICAg
ICAgICAgICAgIHJlcGFpbnQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGV2ZW50LT5z
ZXREZWZhdWx0SGFuZGxlZCgpOwogICAgICAgICB9Ci0gICAgICAgIGlmICh3aWRnZXQoKSkgewot
ICAgICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCkpCi0gICAg
ICAgICAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+cmVjcmVhdGVQbHVnaW4od2lk
Z2V0KCkpOwotICAgICAgICAgICAgcmVwYWludCgpOworICAgIH0gZWxzZSBpZiAoZXZlbnQtPnR5
cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQpIHsKKyAgICAgICAgaWYgKG1vdXNl
RXZlbnQtPmJ1dHRvbigpID09IExlZnRCdXR0b24pIHsKKyAgICAgICAgICAgIGJvb2wgaXNNb3Vz
ZUluQnV0dG9uUmVjdCA9IG1fYnV0dG9uUmVjdC5jb250YWlucyhJbnRQb2ludChtb3VzZUV2ZW50
LT5vZmZzZXRYKCksIG1vdXNlRXZlbnQtPm9mZnNldFkoKSkpOworICAgICAgICAgICAgaWYgKGlz
TW91c2VJbkJ1dHRvblJlY3QgIT0gbV9pc01vdXNlSW5CdXR0b25SZWN0KSB7CisgICAgICAgICAg
ICAgICAgbV9pc01vdXNlSW5CdXR0b25SZWN0ID0gaXNNb3VzZUluQnV0dG9uUmVjdDsKKyAgICAg
ICAgICAgICAgICByZXBhaW50QnV0dG9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBl
dmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKICAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoZXZl
bnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2VvdmVyRXZlbnQpIHsKKyAgICAgICAgaWYg
KG1faG92ZXJEZWxheVRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAgICBtX2hvdmVyRGVsYXlU
aW1lci5zdG9wKCk7CisgICAgICAgIG1faG92ZXJEZWxheVRpbWVyLnJlc3RhcnQoKTsKKyAgICAg
ICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAgfSBlbHNlIGlmIChldmVudC0+dHlw
ZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZW91dEV2ZW50KSB7CiAgICAgICAgIGV2ZW50LT5zZXRE
ZWZhdWx0SGFuZGxlZCgpOwotICAgIH0gZWxzZSBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5h
bWVzKCkubW91c2VvdmVyRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91
c2VvdXRFdmVudCkKKyAgICAgICAgaWYgKG1faG92ZXJEZWxheVRpbWVyLmlzQWN0aXZlKCkpCisg
ICAgICAgICAgICBtX2hvdmVyRGVsYXlUaW1lci5zdG9wKCk7CiAgICAgICAgIHJlcGFpbnRCdXR0
b24oKTsKLSAgICBlbHNlIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZWRv
d25FdmVudCkgewotICAgICAgICBib29sIGlzTW91c2VJbkJ1dHRvblJlY3QgPSBtX2J1dHRvblJl
Y3QuY29udGFpbnMoSW50UG9pbnQobW91c2VFdmVudC0+b2Zmc2V0WCgpLCBtb3VzZUV2ZW50LT5v
ZmZzZXRZKCkpKTsKLSAgICAgICAgaWYgKGlzTW91c2VJbkJ1dHRvblJlY3QgIT0gbV9pc01vdXNl
SW5CdXR0b25SZWN0KSB7Ci0gICAgICAgICAgICBtX2lzTW91c2VJbkJ1dHRvblJlY3QgPSBpc01v
dXNlSW5CdXR0b25SZWN0OwotICAgICAgICAgICAgcmVwYWludEJ1dHRvbigpOwotICAgICAgICB9
CisgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaAppbmRl
eCAyYTFmODk2Yzc0NGMxNzNhODM3OGZkMWY0N2UxMTQyZTc2OWZmZGY3Li5hMmQ2NmQ0ZGRjN2Q0
ZTJkOTY0MTlhZDBlOGZkODE2NDE4N2Y5MzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaApAQCAtMzAsNiArMzAsNyBAQAogCiAj
aW5jbHVkZSAiUmVuZGVySW1hZ2VSZXNvdXJjZS5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgi
CisjaW5jbHVkZSAiVGltZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Myw2ICs0
NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQdHI8SW1hZ2U+
KTsKIAogICAgIHZvaWQgaGFuZGxlRXZlbnQoRXZlbnQqKTsKKyAgICB2b2lkIGhvdmVyRGVsYXlU
aW1lckZpcmVkKERlZmVycmFibGVPbmVTaG90VGltZXI8UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4+
Kik7CiAKIHByaXZhdGU6CiAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudCogcGx1Z0luSW1hZ2VF
bGVtZW50KCkgY29uc3Q7CkBAIC02Miw2ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPFJl
bmRlckltYWdlUmVzb3VyY2U+IG1fc25hcHNob3RSZXNvdXJjZTsKICAgICBMYXlvdXRSZWN0IG1f
YnV0dG9uUmVjdDsKICAgICBib29sIG1faXNNb3VzZUluQnV0dG9uUmVjdDsKKyAgICBEZWZlcnJh
YmxlT25lU2hvdFRpbWVyPFJlbmRlclNuYXBzaG90dGVkUGx1Z0luPiBtX2hvdmVyRGVsYXlUaW1l
cjsKIH07CiAKIGlubGluZSBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbiogdG9SZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbihSZW5kZXJPYmplY3QqIG9iamVjdCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178100</attachid>
            <date>2012-12-06 16:08:22 -0800</date>
            <delta_ts>2012-12-07 10:33:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104173-20121206160547.patch</filename>
            <type>text/plain</type>
            <size>7964</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2ODU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjlmMGRhMTRhMTI1Y2Jk
YTc5MGE1ZjhmYjczMDU1ZWRiYmNhYWQ3Yi4uYjk3NTgxNzI1MzU4ZTU0ODY0YmE3NWQ4YzhkODNj
MGE3NTZmN2Q4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTEyLTA2ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBEaXNwbGF5IHRoZSBhdXRvLXN0YXJ0
IGJ1dHRvbiBpbWFnZSBhZnRlciBhIGRlbGF5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQxNzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyODIw
MDcxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9u
Y2UgdGhlIHVzZXIgaGFzIGhvdmVyZWQgb3ZlciB0aGUgcGx1Zy1pbiwgd2FpdCBhIGxpdHRsZSB3
aGlsZSBiZWZvcmUgc2hvd2luZyB0aGUgYnV0dG9uLgorCisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclNuYXBzaG90dGVkUGx1Z0luLmg6CisgICAgICAgIChSZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bik6IEFkZCBhIG9uZS1zaG90IHRpbWVyLCBhbmQgYSB2YXJpYWJsZSByZXByZXNlbnRpbmcgd2hl
dGhlciB0aGUgYnV0dG9uIHNob3VsZAorICAgICAgICBiZSBkcmF3bi4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW46OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luKTogU2V0IHRoZSB0
aW1lIHRvIGEgZGVsYXkgb2YgMSBzZWNvbmQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbjo6cGFpbnRSZXBsYWNlZCk6IFBhaW50IHRoZSBidXR0b24gb25seSB3aGVu
IHdlIHNob3VsZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpw
YWludEJ1dHRvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6
aG92ZXJEZWxheVRpbWVyRmlyZWQpOiBOb3cgdGhhdCB0aGUgdGltZXIgaGFzIGZpcmVkLCB3ZSBz
aG91bGQgcGFpbnQKKyAgICAgICAgdGhlIGJ1dHRvbi4gUmVwYWludC4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpoYW5kbGVFdmVudCk6IFVwZGF0ZSBldmVudCBo
YW5kbGluZy4gQ2xpY2sgZXZlbnQgaGFuZGxlciBpcyB0aGUKKyAgICAgICAgc2FtZSwgZXhjZXB0
IHdlIG1vdmUgdGhlIGJ1dHRvbiBjaGVjayBpbnNpZGUgc28gdGhhdCBpZiB0aGUgY2xpY2sgaXMg
bm90IHRoZSBsZWZ0IGJ1dHRvbiB3ZSBkb24ndAorICAgICAgICBmYWxsIHRocm91Z2ggdG8gdGhl
IG90aGVyIGlycmV2ZWxhbnQgaWYgY2xhdXNlcy4gSWYgdGhlIHVzZXIgdWx0aW1hdGVseSBjbGlj
a3Mgb3V0c2lkZSBvZiB0aGUgYnV0dG9uLCBidXQKKyAgICAgICAgaW5pdGlhbGx5IG1vdXNlZCBk
b3duIGluIHRoZSBidXR0b24sIHdlIGNhbmNlbCB0aGUgYWN0aXZhdGlvbiwgc2ltaWxhciB0byBj
YW5jZWxpbmcgaW5wdXQgYnV0dG9ucy4KKyAgICAgICAgICAgIEZvciB0aGUgbW91c2UgZG93biBo
YW5kbGVyLCBtYWtlIHN1cmUgdG8gY2hlY2sgZm9yIHRoZSBsZWZ0IGJ1dHRvbi4gSWYgdGhlIGhv
dmVyIHRpbWVyIGlzIHN0aWxsIHJ1bm5pbmcsCisgICAgICAgIHN0b3AgaXQsIHNvIHRoYXQgd2Ug
ZG9uJ3QgZHJhdyBhIGJ1dHRvbiB3aGlsZSB0aGUgdXNlciBpcyBpbiB0aGUgbWlkZGxlIG9mIGEg
bW91c2UgZ2VzdHVyZS4KKyAgICAgICAgICAgIFJlZG8gbW91c2Ugb3ZlciBhbmQgb3V0LiBPbiBt
b3VzZSBvdmVyIHdlIHN0YXJ0IHRoZSBkZWxheSB0aW1lci4gT24gbW91c2Ugb3V0IHdlIHN0b3Ag
dGhlIGRlbGF5IHRpbWVyCisgICAgICAgIGlmIGl0IGlzIHN0aWxsIHJ1bm5pbmcsIHJlc2V0IHN0
YXRlLCBhbmQgcGFpbnQgdGhlIGJ1dHRvbiBvdXQuCisKIDIwMTItMTItMDYgIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXNlIG93bmVyTm9kZSgpIGluc3RlYWQg
b2YgYmFzZSgpIGluIEhUTUxDb2xsZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcAppbmRleCA5NzJiMmJmOTA0MjIzYjVi
Nzc3NWYyNDI5ZGMxNjI4M2EwZjE2ODE1Li40Nzk5YzhjNzEzMWIwZWQyNjM3ZTMzZmQ5N2RhNjI4
YzY0MThmYmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25h
cHNob3R0ZWRQbHVnSW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbi5jcHAKQEAgLTQwLDExICs0MCwxNCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBzdGF0aWMgY29uc3QgaW50IGF1dG9TdGFydFBsdWdJblNpemVUaHJlc2hvbGRXaWR0aCA9
IDE7CiBzdGF0aWMgY29uc3QgaW50IGF1dG9TdGFydFBsdWdJblNpemVUaHJlc2hvbGRIZWlnaHQg
PSAxOwogc3RhdGljIGNvbnN0IGludCBzdGFydEJ1dHRvblBhZGRpbmcgPSAxMDsKK3N0YXRpYyBj
b25zdCBkb3VibGUgaG92ZXJEZWxheSA9IDE7CiAKIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpS
ZW5kZXJTbmFwc2hvdHRlZFBsdWdJbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KiBlbGVtZW50KQog
ICAgIDogUmVuZGVyRW1iZWRkZWRPYmplY3QoZWxlbWVudCkKICAgICAsIG1fc25hcHNob3RSZXNv
dXJjZShSZW5kZXJJbWFnZVJlc291cmNlOjpjcmVhdGUoKSkKLSAgICAsIG1faXNNb3VzZUluQnV0
dG9uUmVjdChmYWxzZSkKKyAgICAsIG1fd2FzTW91c2VEb3duSW5CdXR0b24oZmFsc2UpCisgICAg
LCBtX3Nob3dCdXR0b24oZmFsc2UpCisgICAgLCBtX2hvdmVyRGVsYXlUaW1lcih0aGlzLCAmUmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW46OmhvdmVyRGVsYXlUaW1lckZpcmVkLCBob3ZlckRlbGF5KQog
ewogICAgIG1fc25hcHNob3RSZXNvdXJjZS0+aW5pdGlhbGl6ZSh0aGlzKTsKIH0KQEAgLTg0LDcg
Kzg3LDggQEAgdm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6cGFpbnRSZXBsYWNlZChQYWlu
dEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG8KIHsKICAgICBpZiAocGx1Z0luSW1hZ2VF
bGVtZW50KCktPmRpc3BsYXlTdGF0ZSgpIDwgSFRNTFBsdWdJbkVsZW1lbnQ6OlBsYXlpbmdXaXRo
UGVuZGluZ01vdXNlQ2xpY2spIHsKICAgICAgICAgcGFpbnRSZXBsYWNlZFNuYXBzaG90KHBhaW50
SW5mbywgcGFpbnRPZmZzZXQpOwotICAgICAgICBwYWludEJ1dHRvbihwYWludEluZm8sIHBhaW50
T2Zmc2V0KTsKKyAgICAgICAgaWYgKG1fc2hvd0J1dHRvbikKKyAgICAgICAgICAgIHBhaW50QnV0
dG9uKHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBA
IC0xNDIsNyArMTQ2LDcgQEAgdm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6cGFpbnRCdXR0
b24oUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW4KIAogICAgIEltYWdlKiBi
dXR0b25JbWFnZSA9IHN0YXJ0QnV0dG9uSW1hZ2UoKTsKICAgICBpZiAocGx1Z0luSW1hZ2VFbGVt
ZW50KCktPmFjdGl2ZSgpKSB7Ci0gICAgICAgIGlmIChtX2lzTW91c2VJbkJ1dHRvblJlY3QpCisg
ICAgICAgIGlmIChtX3dhc01vdXNlRG93bkluQnV0dG9uKQogICAgICAgICAgICAgYnV0dG9uSW1h
Z2UgPSBzdGFydEJ1dHRvblByZXNzZWRJbWFnZSgpOwogICAgIH0gZWxzZSBpZiAoIXBsdWdJbklt
YWdlRWxlbWVudCgpLT5ob3ZlcmVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTE1Nyw2ICsxNjEs
MTIgQEAgdm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6cmVwYWludEJ1dHRvbigpCiAgICAg
cmVwYWludCgpOwogfQogCit2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpob3ZlckRlbGF5
VGltZXJGaXJlZChEZWZlcnJhYmxlT25lU2hvdFRpbWVyPFJlbmRlclNuYXBzaG90dGVkUGx1Z0lu
PiopCit7CisgICAgbV9zaG93QnV0dG9uID0gdHJ1ZTsKKyAgICByZXBhaW50QnV0dG9uKCk7Cit9
CisKIEN1cnNvckRpcmVjdGl2ZSBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6Z2V0Q3Vyc29yKGNv
bnN0IExheW91dFBvaW50JiBwb2ludCwgQ3Vyc29yJiBvdmVycmlkZUN1cnNvcikgY29uc3QKIHsK
ICAgICBpZiAocGx1Z0luSW1hZ2VFbGVtZW50KCktPmRpc3BsYXlTdGF0ZSgpIDwgSFRNTFBsdWdJ
bkVsZW1lbnQ6OlBsYXlpbmdXaXRoUGVuZGluZ01vdXNlQ2xpY2spIHsKQEAgLTE3MywxMCArMTgz
LDIwIEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OmhhbmRsZUV2ZW50KEV2ZW50KiBl
dmVudCkKIAogICAgIE1vdXNlRXZlbnQqIG1vdXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxNb3VzZUV2
ZW50Kj4oZXZlbnQpOwogCi0gICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmNs
aWNrRXZlbnQgJiYgbW91c2VFdmVudC0+YnV0dG9uKCkgPT0gTGVmdEJ1dHRvbikgewotICAgICAg
ICBpZiAobV9pc01vdXNlSW5CdXR0b25SZWN0KQorICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2
ZW50TmFtZXMoKS5jbGlja0V2ZW50KSB7CisgICAgICAgIGlmIChtb3VzZUV2ZW50LT5idXR0b24o
KSAhPSBMZWZ0QnV0dG9uKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChtX3dh
c01vdXNlRG93bkluQnV0dG9uKSB7CisgICAgICAgICAgICBpZiAoIW1fYnV0dG9uUmVjdC5jb250
YWlucyhJbnRQb2ludChtb3VzZUV2ZW50LT5vZmZzZXRYKCksIG1vdXNlRXZlbnQtPm9mZnNldFko
KSkpKSB7CisgICAgICAgICAgICAgICAgbV93YXNNb3VzZURvd25JbkJ1dHRvbiA9IGZhbHNlOwor
ICAgICAgICAgICAgICAgIHJlcGFpbnRCdXR0b24oKTsKKyAgICAgICAgICAgICAgICBldmVudC0+
c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICB9CisKICAgICAgICAgICAgIHBsdWdJbkltYWdlRWxlbWVudCgpLT5zZXREaXNwbGF5U3RhdGUo
SFRNTFBsdWdJbkVsZW1lbnQ6OlBsYXlpbmcpOwotICAgICAgICBlbHNlIHsKKyAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgIHBsdWdJbkltYWdlRWxlbWVudCgpLT5zZXREaXNwbGF5U3RhdGUo
SFRNTFBsdWdJbkVsZW1lbnQ6OlBsYXlpbmdXaXRoUGVuZGluZ01vdXNlQ2xpY2spOwogICAgICAg
ICAgICAgcGx1Z0luSW1hZ2VFbGVtZW50KCktPnNldFBlbmRpbmdDbGlja0V2ZW50KG1vdXNlRXZl
bnQpOwogICAgICAgICB9CkBAIC0xODYsMTQgKzIwNiwyOCBAQCB2b2lkIFJlbmRlclNuYXBzaG90
dGVkUGx1Z0luOjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQpCiAgICAgICAgICAgICByZXBhaW50
KCk7CiAgICAgICAgIH0KICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Ci0gICAg
fSBlbHNlIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZW92ZXJFdmVudCB8
fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZW91dEV2ZW50KQotICAgICAgICBy
ZXBhaW50QnV0dG9uKCk7Ci0gICAgZWxzZSBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVz
KCkubW91c2Vkb3duRXZlbnQpIHsKLSAgICAgICAgYm9vbCBpc01vdXNlSW5CdXR0b25SZWN0ID0g
bV9idXR0b25SZWN0LmNvbnRhaW5zKEludFBvaW50KG1vdXNlRXZlbnQtPm9mZnNldFgoKSwgbW91
c2VFdmVudC0+b2Zmc2V0WSgpKSk7Ci0gICAgICAgIGlmIChpc01vdXNlSW5CdXR0b25SZWN0ICE9
IG1faXNNb3VzZUluQnV0dG9uUmVjdCkgewotICAgICAgICAgICAgbV9pc01vdXNlSW5CdXR0b25S
ZWN0ID0gaXNNb3VzZUluQnV0dG9uUmVjdDsKKyAgICB9IGVsc2UgaWYgKGV2ZW50LT50eXBlKCkg
PT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50KSB7CisgICAgICAgIGlmIChtb3VzZUV2ZW50
LT5idXR0b24oKSAhPSBMZWZ0QnV0dG9uKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IGlmIChtX2hvdmVyRGVsYXlUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgbV9ob3ZlckRl
bGF5VGltZXIuc3RvcCgpOworCisgICAgICAgIGlmIChtX3Nob3dCdXR0b24gJiYgbV9idXR0b25S
ZWN0LmNvbnRhaW5zKEludFBvaW50KG1vdXNlRXZlbnQtPm9mZnNldFgoKSwgbW91c2VFdmVudC0+
b2Zmc2V0WSgpKSkpIHsKKyAgICAgICAgICAgIG1fd2FzTW91c2VEb3duSW5CdXR0b24gPSB0cnVl
OwogICAgICAgICAgICAgcmVwYWludEJ1dHRvbigpOwogICAgICAgICB9CisgICAgICAgIGV2ZW50
LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgIH0gZWxzZSBpZiAoZXZlbnQtPnR5cGUoKSA9PSBl
dmVudE5hbWVzKCkubW91c2VvdmVyRXZlbnQpIHsKKyAgICAgICAgbV9ob3ZlckRlbGF5VGltZXIu
cmVzdGFydCgpOworICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAgICB9IGVs
c2UgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3V0RXZlbnQpIHsKKyAg
ICAgICAgaWYgKG1faG92ZXJEZWxheVRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAgICBtX2hv
dmVyRGVsYXlUaW1lci5zdG9wKCk7CisgICAgICAgIG1fd2FzTW91c2VEb3duSW5CdXR0b24gPSBm
YWxzZTsKKyAgICAgICAgbV9zaG93QnV0dG9uID0gZmFsc2U7CisgICAgICAgIHJlcGFpbnRCdXR0
b24oKTsKKyAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiAgICAgfQogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVn
SW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5o
CmluZGV4IDJhMWY4OTZjNzQ0YzE3M2E4Mzc4ZmQxZjQ3ZTExNDJlNzY5ZmZkZjcuLjIwOGU0MmRl
ZWUxNTJkZGZmYjNiMWM0ZTFhYzJhOTdkMjZlMjRkM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oCkBAIC0zMCw2ICszMCw3IEBA
CiAKICNpbmNsdWRlICJSZW5kZXJJbWFnZVJlc291cmNlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhl
bWUuaCIKKyNpbmNsdWRlICJUaW1lci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQz
LDYgKzQ0LDcgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlU25hcHNob3QoUGFzc1JlZlB0cjxJ
bWFnZT4pOwogCiAgICAgdm9pZCBoYW5kbGVFdmVudChFdmVudCopOworICAgIHZvaWQgaG92ZXJE
ZWxheVRpbWVyRmlyZWQoRGVmZXJyYWJsZU9uZVNob3RUaW1lcjxSZW5kZXJTbmFwc2hvdHRlZFBs
dWdJbj4qKTsKIAogcHJpdmF0ZToKICAgICBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KiBwbHVnSW5J
bWFnZUVsZW1lbnQoKSBjb25zdDsKQEAgLTYxLDcgKzYzLDkgQEAgcHJpdmF0ZToKIAogICAgIE93
blB0cjxSZW5kZXJJbWFnZVJlc291cmNlPiBtX3NuYXBzaG90UmVzb3VyY2U7CiAgICAgTGF5b3V0
UmVjdCBtX2J1dHRvblJlY3Q7Ci0gICAgYm9vbCBtX2lzTW91c2VJbkJ1dHRvblJlY3Q7CisgICAg
Ym9vbCBtX3dhc01vdXNlRG93bkluQnV0dG9uOworICAgIGJvb2wgbV9zaG93QnV0dG9uOworICAg
IERlZmVycmFibGVPbmVTaG90VGltZXI8UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4+IG1faG92ZXJE
ZWxheVRpbWVyOwogfTsKIAogaW5saW5lIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luKiB0b1JlbmRl
clNuYXBzaG90dGVkUGx1Z0luKFJlbmRlck9iamVjdCogb2JqZWN0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178237</attachid>
            <date>2012-12-07 10:33:37 -0800</date>
            <delta_ts>2012-12-07 13:51:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104173-20121207103101.patch</filename>
            <type>text/plain</type>
            <size>26186</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2OTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY0YmMxOTE2M2Q1YjA5
ZGUxNjFjMDgxY2I2NDQyOTE4MWUyNzMyZC4uYjk1NjgwMDNlYmRmMDAyOWZkNjdhYjE3NmU1MDQy
NTA3MjA3OTlkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQwIEBACiAyMDEyLTEyLTA3ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAorICAgICAgICBEaXNwbGF5IHRoZSBhdXRvLXN0YXJ0
IGxhYmVsIGltYWdlIGFmdGVyIGEgZGVsYXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwNDE3MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTI4MjAw
NzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJl
YXQgdGhlIGJ1dHRvbiBub3cgYXMgYSBsYWJlbC4gT25jZSB0aGUgdXNlciBoYXMgaG92ZXJlZCBv
dmVyIHRoZSBwbHVnLWluLCB3YWl0IGEgbGl0dGxlIHdoaWxlIGJlZm9yZSBzaG93aW5nIHRoZSBs
YWJlbC4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oOgor
ICAgICAgICAoUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4pOiBBZGQgYSBvbmUtc2hvdCB0aW1lciwg
YW5kIGEgdmFyaWFibGUgcmVwcmVzZW50aW5nIHdoZXRoZXIgdGhlIGxhYmVsIHNob3VsZAorICAg
ICAgICBiZSBkcmF3bi4gUmVtb3ZlIHRoZSB2YXJpYWJsZSB0aGF0IGRldGVybWluZXMgd2hldGhl
ciB0aGUgbGFiZWwgaXMgYWN0aXZlLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNuYXBz
aG90dGVkUGx1Z0luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1
Z0luOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbik6IFNldCB0aGUgdGltZSB0byBhIGRlbGF5IG9m
IDEgc2Vjb25kLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBh
aW50UmVwbGFjZWQpOiBQYWludCB0aGUgbGFiZWwgb25seSB3aGVuIHdlIHNob3VsZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpwYWludExhYmVsKTogVGhlIGxh
YmVsIHNob3VsZCBvbmx5IHBhaW50IGluIGl0cyBob3ZlcmVkIHN0YXRlLgorICAgICAgICAoV2Vi
Q29yZTo6c3RhcnRMYWJlbEltYWdlKTogUmVuYW1lZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clNuYXBzaG90dGVkUGx1Z0luOjpyZXBhaW50TGFiZWwpOiBSZW5hbWVkLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OmhvdmVyRGVsYXlUaW1lckZpcmVkKTogTm93
IHRoYXQgdGhlIHRpbWVyIGhhcyBmaXJlZCwgd2Ugc2hvdWxkIHBhaW50CisgICAgICAgIHRoZSBs
YWJlbC4gUmVwYWludC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0lu
OjpoYW5kbGVFdmVudCk6IFVwZGF0ZSBldmVudCBoYW5kbGluZy4gQ2xpY2sgZXZlbnQgaGFuZGxl
ciBpcyB0aGUKKyAgICAgICAgc2FtZSwgZXhjZXB0IHdlIG1vdmUgdGhlIGxhYmVsIGNoZWNrIGlu
c2lkZSBzbyB0aGF0IGlmIHRoZSBjbGljayBpcyBub3QgdGhlIGxlZnQgbGFiZWwgd2UgZG9uJ3QK
KyAgICAgICAgZmFsbCB0aHJvdWdoIHRvIHRoZSBvdGhlciBpcnJldmVsYW50IGlmIGNsYXVzZXMu
CisgICAgICAgICAgICBGb3IgdGhlIG1vdXNlIGRvd24gaGFuZGxlciwgbWFrZSBzdXJlIHRvIGNo
ZWNrIGZvciB0aGUgbGVmdCBsYWJlbC4gSWYgdGhlIGhvdmVyIHRpbWVyIGlzIHN0aWxsIHJ1bm5p
bmcsCisgICAgICAgIHN0b3AgaXQsIHNvIHRoYXQgd2UgZG9uJ3QgZHJhdyBhIGxhYmVsIHdoaWxl
IHRoZSB1c2VyIGlzIGluIHRoZSBtaWRkbGUgb2YgYSBtb3VzZSBnZXN0dXJlLgorICAgICAgICAg
ICAgUmVkbyBtb3VzZSBvdmVyIGFuZCBvdXQuIE9uIG1vdXNlIG92ZXIgd2Ugc3RhcnQgdGhlIGRl
bGF5IHRpbWVyLiBPbiBtb3VzZSBvdXQgd2Ugc3RvcCB0aGUgZGVsYXkgdGltZXIKKyAgICAgICAg
aWYgaXQgaXMgc3RpbGwgcnVubmluZywgcmVzZXQgc3RhdGUsIGFuZCBwYWludCB0aGUgbGFiZWwg
b3V0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OmxheW91dCk6
IFJlZmFjdG9yLgorCisgICAgICAgICogUmVzb3VyY2VzL3N0YXJ0QnV0dG9uUHJlc3NlZC5wbmc6
IFJlbW92ZWQuCisgICAgICAgICogUmVzb3VyY2VzL3N0YXJ0QnV0dG9uUHJlc3NlZEAyeC5wbmc6
IFJlbW92ZWQuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
CisyMDEyLTEyLTA3ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKwogICAgICAgICBCdWls
ZCBmaXguCiAKICAgICAgICAgKiBwbHVnaW5zL1BsdWdJbk9yaWdpbkhhc2guY3BwOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3N0YXJ0QnV0dG9uUHJlc3NlZC5wbmcgYi9T
b3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvc3RhcnRCdXR0b25QcmVzc2VkLnBuZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZDU4MmVhZmNmN2JkM2VhNzFhN2M3MGU4MzY3OTFiYjE4YmZj
YWNlYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5
IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAyMjgwCnpjbVY8RTJwOUs+UCk8
aDszS3xMazAwMGUxTkpMVHEwMDFaZTAwMVptMV5AczZqUStUNzAwMFFETmtsPFpTUDhZNQp6K2l6
OVg3Ukp9VV5zLUFeMyNvO0kwJT9VdjFPaWZzN3NPTmgyWTQoUGc5UlJ9I14/aG9OQ2FRUjJPZi0p
czFNP1cKeitGLSp1SVM9cGBOSDlrTzQ8dE41MHR2UTt3djtMcWx3TjV8X2pkZnxUSG9zMnlSR2A1
dnpkRiRKO3hafF9+d3tuCnomYjQrRXhtKyZyVFhsOHlsOWVsMD96SChRbEY4KSNycHgmSGVfJVhq
djJHZ2ZuSlpWV2JQTm0oXiFZSW9CQTdAZAp6a19gPEZkckx9NlRGYzdIRHBSUmNLc1M9VXtvZ3Z5
WDBya0RrQHhRMTMmeklBMkNjVzlLWSN3UCYxVlZiMnRzYi0KeiMqTHFybXpPdFpHTVMqWHdBN0o8
cHl+Y3JRaVdnO29TSz8pe3FFaG5rUEw+MGhma2g2Y1d5VCUoPlFGe3V3Zjc2CnpEaz5AaCViQEVK
UX0rSFRsOH5iKmxPIWFhYzlmY3AoXlhTX2wmMG9adHk9WjZaTDc7JWFkRU5CLWZSUWBXTTA2NAp6
YCVPQTY9K0VyJmcmZjROVyNAIXBUbUdfZmApX0tebmwtT2lSI3JZZVp7OXFZSWdEdS0oZzlGRnJ8
PkA1OFg4aHIKekQzazxORlR9JV5UfCUjPkAxYHJVcT5XaWQofnEmT01NWHQzd2lFIUdxKEZSMGFh
K3lJdXB5OUBPfXJaKzRodiRACno7bGlmSlZLVDc2azZrMzJhNylgbjRmfkVsJjBtcWBXfEkmbmRs
ZEhae35TKiRgXj5leCpwbFZJa3VASlgyJlNfJgp6SkApNTlrYGJxeHcye2RHRnhOS3YjMn04SDdK
d3YhNkI4M2JSYUk0MUw/RiZRTDx5dTs9JnlONlZRVyFscFBCWUgKekR9Vl9pMCYrd085MilAV254
RC1jZzRtKy15SENPJmdOMXp8clgjMlRhJlQ3T2h4N3p4T2piMDkpWXgtekwoTUJOCnp7PjBGIW1B
JmxyOVVDPmFJOXtPJCUwUTBEQCR2RCVFPmF1anZVYSpzNmZ6QVJ5fDhJc0k/QkxtbUQ3PjUrRHZk
VAp6KEo3fHlAQjc5bEx6NVY0akFacDNmfXg/SSs+UllQZGVeVUNlYCNjN0IpblJ9cjsoMzZWKztu
aGh8anVwPm4/I1kKekk1P09hOVVYUHAlSSp4dVhkPHIkZUl0PSU8cCFRPmVXa1Q7K3R6Sk13PmBm
dHlSfl8xanxFdCZFY2t4QDchMDxSCnpOMD9uPkpxTz1FXz13ZWJHTVA/Wll4fUJnaUgjRTQzR0V2
R19eRylKaWNGeWRvUnpPI3lTQiYzSiVBSlZBMEdaTgp6VisyUTRsTDlOMDs3dnxXMkg0XypGRShJ
LTNBUWlfV0FtTXNvSn5SNndRXmg4O0NseihUazVRJWtBYSY1IXhuZ28Kej48WS0mWVlZeEgpfkUy
JUpRN1Q+JHU0JXtmbGd5JlQhVF9iUWEzcDcrTz0hWTRuPSZkSXkqYzJfcT9eSStEPnU+CnpyfTxC
NyRaVHZJRThnRHdiflYxPik0KiltKn4wNzlqNGIrP0Yrb2l0PjE1RElQQ1diWFhXaUNAdXREKFY4
KmgjZgp6UF9KYU9va0REZCRGNVNWRUNecldBZSowU2V0O08xMFNRcyZlNDgwSDJyJE42RD1TdjQ9
bSVXdytmKDJFYzwwV1kKemhpdnVrZDh4dCVjJi1MUDRneDstZisxVjU/ZGBwdlNpfmZATkQ0Q35Y
d09JZlhqIXtEUD9FdC1uPk5LO2k+fjlGCnpqdFJFYWYzYVlHJks3d21RXn15SHhYNH1iOVVVREx6
SjBeU2hOS1JQdk0hUj9nI0AhayYtIz9UV2tebTtQNlE3dwp6ZUs3QyROS2JjOUM5Q0YxSz0kVV4t
azUtYCsxYzN9T2dmY3pUaXRXRHIhdjt0VkEtLXxyRUlhdE55XjVaVnR2dHoKejF8O2NxYiMtfVFi
e2Ztc3ZnbyNPblp7UWMyYmB7cTZ4SjFmd3c+ajFKUjE7MGVuX3k4QD1aJkwhYV93c2s/eTQrCnpL
MTJ+eyZhYj1CQyk4fHlhJnpQeFd7cGZrMnBlVHZHUXg3ZzxgTj50Z3BiTDVkPUh8YFRHblYmUT4t
S2lkYXZ+awp6eHsydCtZSHRKcGIqMmYqaXomWm5lOTBSK0ktMlp9aExMdzRUOHRzdElwZ1I5VFV1
ZDtCNlMkSl5UKkQrQHFgV1AKej5nI0AwPk5RVjJhIVBxUWdfTllPQT13ZC10cGBKTU5XfnlxRyFm
R3tKUzFMTFdXZUAoY2x4Xzw4T304YlQzVDkpCnp4ZV9SOUhDQTYjbCh0diZAWWk0X1F8YnVvQWp1
OU5vK0BCeTRvTThacmlyaFBLTDMhfDFPYWclZlpoQnhXSzZCOAp6c3AoPCtmcHdXY2BJJSVaXiU1
SU9mN2BJZDJWWEZSJDl6eztSfUhhNTU/dmxhTyg/fWt6fVlxZkQ3TCVyeCZWPE0KemZBYUJ0XzZX
UjlDYjFSUlRvTXg0OyR5eTVKe0gpLTs5Z1kmTX4haF80TjNfP0koNXxFLWhMa2UpYStWVmVDV2Bq
CnowZWVCWSNqeyNoJTRgSkRWU19DYD0zNlRxRnV+U29DeGVQRmlFVnN9NitpJHU2cWdqVWBnc1Q1
SiNiQykkandofQp6VWZGKUVlY1pCcShPeTI/M29RWXVHZGcybDA/PVZ8P0FXbiFlMCtAa2B9ZztP
JX15Mjh0R0ZPandZOWFjK1VZQ2oKejVrQDAoRDRkTTA5WG5+MnNkVEZVKGU7bTNEOUhTKGA0IXVA
WihuRnh4IWx7KytrTlpTdHg/Tz9xeS0oWmZJbHheCnp6V2tAJVp8dUhmTD57cVVlNmIoP1pDfChi
cEZEQUxHMCRmKlNRcn17TzJnaDRodlBUdW17ZGQjQmVEbnAjLUQlbwp6ZDV1bD14NHpVR1p4YzNL
d3JwOHRvdVNfcmBkfEY8KFc2S0V6eD85TThwPW84dENDWHY2QXdQTClTXldUY1Y7cVcKel5aaXFW
TEkjWVpgYmVIVmJHRzhyPHg3Mnl8N3h0JXM/cTxJTWxKNSF4M0JOU2k0JSlVT0deM1M8VDN7fjFs
NVIzCnprMX18fVlCMEQjRn5pPEpse254YD1hbElKS0omd3dDQ0BaSUd0emRuP2ZUQHM+SEFPdDNN
RHEhO2A5Q2d6aDY/OAp6M0FZdFl1K0B8aGFYP3pUa3l5UVlfMSo7dzdWTT1TM2gkJUhDPz9OQnhY
Kk1URVFeISVfNFBMIW47TFdWYkBkczAKekdqWC1uLVE3TFpeOzZmXz1+SmZAY0YpfiFlI1dRQi0z
bEJFdk0rTVBSMj01VzlOK0VhMmUpdEVLQWJST3dlfXliCnpRfSEmYTB6fnpvbF84YU9ySmo9dDVK
VXdpOHw7TmFLblBINE5iciU7YCY7WUIwcEVWK3smdy09I2lxMktsenQ8NAp6IzghMWNmQ0xrVyNz
Slc/ZFdkUUR0UWIyUTUqK3pzcXBtcTs3fUAkYF54I3NqI19JXiY7KHIwI2tMbk5YeEBwbD8KejxB
e1NWOFQmKlMoP3QrX3pXWVFWciZmc1BWX2AhSE1nSnI/ZSZORH1jVEF0bmB6TnwoQC0tdil4P0tW
RCokeSY2Cnp8RCZjTGJKPlgwVHpWRXFYSW18RXpncTJtVz9PcCVhYD9tcTF6XylWMyQ1Xjl1KTJC
TiRTdHpAYXRrdjNmUnJLNQp6VWRFVil0bVp0a0lmcko7JWomVDhwUkp6SCtKWDk/e1dKNnote0Ul
QFl5KlVtLUNyUjkwMDAwPE1OVU1uTFNUWkUKQ1EpN1BzCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUmVzb3VyY2VzL3N0YXJ0QnV0dG9uUHJlc3NlZEAyeC5wbmcgYi9Tb3VyY2UvV2ViQ29y
ZS9SZXNvdXJjZXMvc3RhcnRCdXR0b25QcmVzc2VkQDJ4LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMzE2Y2Q2ODNlOTE1MzkxN2ZkZWZiNWEwZDU2NTExMTVkYTVjNzU4MC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCA2MjAyCnpjbVYtQTd7JXZfUCk8aDszS3xMazAw
MGUxTkpMVHEwMDIrYDAwMi0zMV5AczZqdUc7JDAwMDtQTmtsPFpjbWRVJgp6WF5eRT1kQj1PMz43
SXRebygrJXolbTZgezF3SjR1SXhfP19ENVFjWiRtbDNhQzAyPn41THgwVXRxTSE+Z35kPTYKejVo
LUtmOCQlSmNOLT5afnJFbSRPQiRnPjkwem5hbXAjJXxfZWVJZHZeOERWdXpkS0sjZSgmd2VRZX1E
SSt+K3laCnpkRGowcT97ZVJKWiVfQis8WVpTVHQtSElzQy1oRXUtfX5QOCQ0NEsxXnZiWVg5SV89
TEpGMklMc28mMndGKV5ffQp6R1QjPGBgQFZocW9fK3JMPWY0O0h0NU0lWENseihpMjRIfFI3QCst
R2ZjQnxAYz59QlpkaSY7Zztgc01mWEtaWTIKekA0PHJ5cFZfbCMmalQ7TV9+TkYoPVJtdCFTXn4o
OUpOZXwzRkljIzY7Z3ZAbmI8e2FBP3hOM2BHcENDaz1OUlgyCnpjTCVhfl87Q15DcTM9ZDN7bno8
SyROMXlwPDZXYnBxdHpKTXt7OCNeWFhubkgtK2J3JW1tWklDP1QpTWtGYld0dgp6e3Epbm5lOVNT
JmRAO2I4K3VQZ1FIRnhnWkUtMXhHTnZLYFg8czM7VnRGdFpWJVl3Q3EoJXktRlkwSD1uaDtka1YK
ejlYZlBLe192WWB6SW8+X2ZCRE9RalFKVjZ2OUJoe01RNUZMKS00TWJFY2pDcjlUKnRzPmcoJlBL
eDMhbi1EZV5DCnpwc3ZVdkskPz1zTHB5NU5xMSYpO0B9MWd1NmxBODc7NmQzTzAwQG80eG9jIShX
YlNkdDlydmFGe3tDZkE/XmktKwp6TkFAcmN6KSU8ekpiOz12WihhbyswNVptQHlBU1hQaCNYMiYy
QmpmYSMjcjhZV1Z4MDRjQERtYEZaSWokKCFOZH4KenUoWDR4MUR5M1QkOEthcDF2Y25qNk1tWEl1
P2IqSV5la1Yje0wzaEVvKHNnUV5QUypIYVkobklHUlp0ZjRRdzBnCnpPfT5HNVI7X3NhU3xrRV9D
fmRhK05+ejZEb3hNOF9HZEJhWjAtYGAtN2R4PjZGKS1SMTxDYEw8PllVZ0ZAVDhNWQp6eD9zdFlD
MEYxQ0BIcHFlZChuV1c4Pm5KQmNvOTVRPCl3QXpCeHtxRzB3ZyZJc0p3WTsqTlYyWDJTZ2g0YmFv
K2kKeig+TiFCMXVkQDVVMEBWZ3tVbkN9ZnZmXkI1KiQzfG9PQXY8WGd9dlgzfEl4NjtHNl80QkNp
K0BYY21BRDM4Kl9ZCnpkKnN6UVh3fD85d3QtcGY/SEdvQUxzMDYhUnNXQGE+NW0pJCVsc1dASXs7
Kj8/NylFb3tjJW5Oc34/OEgwfkxVJAp6b19ndmgxX3VXfTJ5cEheMDBiPEpwJDBJWlBNeGJ1dXJm
Kzc9cm8mYmc5MDgrVEpjRj1UV09fU3l5UTd+WTNZeCMKendaSD09JjNkMzxmSVZ8eSEoa29tZ0oy
Zil6TWZGKDg1JGI7NncyJjRmWG08IUshQC0tcG91ezxQbFFleU50Sy15CnpaYFZ0RyM7dXhqK011
VmImTC1ESyZESVd4O3NRcEBIOEFVODJRSDE+dythUSRlTjRoQCVvdVE+RyFoVSpgRjJURgp6TXZX
S2p2VzxTVEotbzQ7Y1g0cFRvYnlyLXZtQzQ5PENJPGImaElvNnBMMFJLJXVnQmRKJDExUTQ8QTA8
Nj5sejkKeiNyKUV+eE00bSZDV2t+OE1IN1FzMWtObH1ucX1+X0hTTTUrMCNBPX5PQz9qQCRgPzcm
VzZfKDcrKTZpJm0jKiswCnp1VCFXSU4wNzhaV3xObUhDbXdjb3UhP3NxTHR4aHppTEFeRDAqSV9e
ZzR3RF9ZfUNQNFVqNGR4bDRUeXNQSTZwbAp6UFhST3YmXyleWigqTU43SU1WUDVCX0I0eWN0c2hQ
YHBEYFVkVU9HRjQwZTRYVCozczB0eDdzNjBZRU1vPmE/VHkKenFlLShyY3NzeXhTT0RKYi1ASldK
PGxeT0puKV42YGNWQmhvUmlnO2UmRU8kM0h6fjReUExha2RBaHY0UWshIVprCnpKbkApTVNTeyVi
ITZGPG9MNl5fODVfYSVuRmxuN2hvYGFgeldkbzRXdkMqISQjflM1NFFgWjJ3YVRUb0lecktlPwp6
V1N3b0Qldl99Q1dTJWpZQVFLO2BLbkF9a19AMyV7OXpxKWlJKzhMYy0pZGdfdz9nIz01TSFnJkVr
YXYhIU52fDcKem5tKighO29FcUBrM0tUNURgV3pSNEQ5KztNOElVYj1EYnZnKispRDNKWkpHN3pT
dU1GIzFER3Y+WjhufjZGKWhaCnolKHReO2xpOWdlcHhiO2FDbiEyJnRnfXFCOUcpVWRUWWRibERT
Nzk3JVkyK2BtQWBkazJjSCt1eGg4PDZiQnpxYgp6U2wpbmozRl4zJkp9YTFZKDBlelV4cyhmPFc1
S19iYDE7Z2BieFg7Y2klNkJmTiozYy1pZDxmclchZ2RVaUg8JGIKejxwVDlucjxaTD9LSV85PDFI
TmhjV2VpfXN3VGhwMEdPdz5YOEY4bmIxNjdzXmdiOExSQGFVPUk5NU9xUGZaJXlSCnpLX1U3PF9I
SCEmTmJ3MHo5RHc1SzMyfVhnI2VCfEpLSWYkQD5wRzd0SCkyJmdrWUVPZVQ1T2hPTC1geUc4VHZH
Qwp6SHxVSiUwMTFmYnlDYTtGbEVYVn4qJSNuKGZ1ZUVjPTlZKCFqKTJIUlkxVUlXdVd6WTR4JE8/
YnNtfGZjbWdqVH4KemE2R31+ITxsJTs1Vj87WGloZE1IdUBlWF5oXjQ8eSRLJnlDVnhzWEc1NDVO
SCNDMGxIQCpxQXYrV3hyZD9HTGBzCnpQMnhSZjJGYllBQlNrSj5RcztXISQ7I3VEfEx7UXZKbEBr
bkJoaUM1LUVgQzgmd2xvXlRpNk5nMiNVaFNWay1OXwp6PlJVdTdHO2FCdSZrVEt8cDxpPCNDYjRo
NEB5NWdDcTh3X3pnM3dYUypafGE4P2IzPnlzLXJyP1QxY2p5STwpfEgKejlOPnw3OUlwR25eLXRm
THZ0czNuIU92YSh4aWdQSHtgbWpuRnljX285fiU8U0I4KXYtVHkzPDIzSjVWZ2Jjc3BxCnptOChf
YGtfJFBKOCMkVC1jRyp1Z1h6QFpebVE0IUprdT8xaCl4eCtHVGRhdl5AWnlqZXgkVTt3PTAqWHtU
Y29ldwp6X1ZzMTRhJkolfEpBZ3QyTFIhWFhII1VCel97MjljaCglMCZrUEE3SDh9b24mKWdIWjBA
PSEtUj5ZbzlpTzQrRmYKeiRudlZlbFE9c0k4ZzE7QnVpWX5GLWFtTm4pQ1VTa3E3NHJaNF88clN3
ZmgzLUYlRHdAKk92SmxsWDFKSXU5VWQ9CnohZV8oeCptYyltd352X0Y0Pl4lcj8zeXViJj1vfU50
eD48JiR+JXszYGtuQDBDazdmcVAyODJnOykqTnd0WFEjUAp6VWU9TGN2dTRkSChXXnQ1IV80SUNW
cm8tTTxGPlc1IUl3VVh2M205RFF8ZkhWP0YoUHshWEVUcCRpfjd+PlpNPFYKeiVJZj9mbis5TWpD
RktBe2dPWUBhMUtfR3Z0S01BeSRAU0hmOXJhNmshezZQb0R4UlRqQzI0bDh7enw9ZTxIP0M1Cnpf
bUM4YTU1ZERYRzF9UmFCZXt8QElaeS1uMiRaeldOOFF7czA5QW4yYikwNTd0NFEjOyU4bE9lX2N0
Nns3Y3xRdgp6PjU7SE1WQTlhK0ZZQ182WWUjJX4hYEFefiV3fksyNGM4d18mZSYwZHpNIS1gJmIp
SiNRc2JvcFAkZ3VvYzctfW4KemxqZ2liLT5fbEI/Z2hnT2olPHdfcH18TEAyaU8xa2BtTVduP19Q
bHFvQFFfckJjM3NsY2hiPHEyRmgmKDQ+KVB+Cnp7XmFea3pDXjVjZSZQI0xsakxtdilgTEhMb3Fm
JnxKPShNI3NGQkdyUiNCY2d4KStXKFNzJUZrRkR+Yk1mLVQkRgp6X31FQip3YEpGXlRgTiRFKXZv
fC1ZMCUrPnhkOT9SWTFfQU5VcjgpdHdzUyt5PFBMYkFQVCZQbC1fbG1UWDYoUV4KemdEaXN3S25A
dkpAWnlVdi1hbl5yK0NfSXB0Z245TXQ1MHYrd3lwWj9nK2t4eUl9cm91aHV1dGZWVGVVY18zOWAm
CnpsWThFVSlgb3RyeHoxaSQ/R0FLT0Nyfjx8MFVxWktQUXZsbFoyVThxZVd2WlhANDRybStxKElR
JjhzWXM0fT5oMwp6b2tNPm80U1JzMzw2OTdrTiRoc00kKDxWOTRBIVlsdUhQZSVJZD58MlRMNGs4
O2VkdXk5bUUlSHcjRGI4RWwqc2IKeko5K2gwU0MyJC1eREtAK0ljTD5AWFRydjtxb3QwMUBRSDUj
Qm87QlJ4JXdJfFN9cFM8X3FlcyQ8YElQfC1DRTF8CnpFO2V5Jk8lNVgrTkt0fmZwI3lsMERfKyt7
ZXsje1puXnBDc247emN1end5MX1HdShZcDNXZXEqKUhneExvbHREPgp6bTNfTWw8Nz5LU0ppT2BR
cFNTYUs7WUFrP1FYQDVhZ2ZTTXhUKShfP18tejdNN2VxJUdYaztLKGBNbVNhOD4rS1kKemNLMURa
Y1QqZz83UmNDTEJVUnJSaiVUR0Z7bXwmdSF0X247YUFSKVZ4VXNEcFlDeEJ8KmM+IzAlNDIweG93
ZnpnCnpmfW4hdztUenYwKyNOVHJONEJSUDgjSnpMZHRkJGF0SUdoJTlSWVgoc0NySGEtUHV+IV9k
IVBXI3klY3RWYyE/dQp6UnZgdjQ4SXVGS3dETDwwKVBpNFlMemw2IXRZNFhPXm0taVJOcUU2ND1V
dFQoUEJAfE1aTmZicD98REFfNHx+WFoKeiprK0ktTVJLU2Y0cGxWYmNHX31ZK1BGWipnaG1Afjxm
N1VQWUF3YDgtMiNUOUlMdDY9Mi1AenoobncmVEB0Q05zCno/ZEh2ISQwLVFsMExgNzMwcmNeWkpF
QEc8JHlrMy03Tmk9ZEx6PEhteHdQe3xFeEVSS3hfSig4bkBeKyhqKn17aAp6IyZhKX1EO2VAZT1V
ZjRROyl5NXJYSjtrPCR9NncqUWpFTDhMUUIxT0dBMGlqZTY9N14wWip1XyZIe0cjY0Q/JVEKenQ1
YVY9UmtAJWBQaDhzMWxXbDlXKTxVZnM9OXBEfGJ4Tmc3aGkrfT97R3NgNjBnUzhmSk9SV1hkPG1r
LU5YeGtHCnojQGF+TEhJQXtOZC12fEdlTHwkb0BYJkJTZSZ9JWtII2R2KFFlJE9Xb2ded19wS2BG
TWpkUXQqSUgre2VpWjVRWQp6eEdqSklAe3EtTl8/aWd2Uj0ocSUwbnZ8YUVzY1VZU0xUOUJfNmVW
TktEaV99R3VUQjc3eGg8OWQxOVlWakslJEsKelc0e3RkenZlNSYyXio7byNCRU1XayFSajxMKU5s
VF55MXVDRWtnem15U2p2cyoqPCN5TT1TOGt4REIwMlphSFkjCnpNcTYjOSN4Zlc2TiphM0kwWTtj
anQoejNSJSRJaElgMzdSZ089bG48SD51VWZVYWdHZEhpOTRWSExxeWVPMF5SUgp6Qz5fOVFqLXwr
NDN9bV9DUUA+Sz8kckR8MyR1Xm12dChMM3twV3t0RTJXbl4tVCQrYCQ0RWZHb0l9Wm5ge35sVVEK
eiNFJW40O0BwRjMlWjUoQDsmV3FlQlJyQVU4Mzc8eWIjNn10dnJleStreE1EZDxGWGQ9RChpSkQp
eEtLcEVYPSUwCnpuWSNMMFVmOXoxbmNJOGJeUFdUYV40PzBuUGBrZG9adnp9fGZIX1FDYiMkPCsx
MkQmNl9Zb1R6eCNTdjMtZGdhaAp6azVaQEFjLXAtakwyWSU4dmd9dkNgcWRGLWpTfklYZyYoVmEk
akZYcipHUVRVaHl2TFRKYW1gYEs9WGxgeUUwPEIKem4/SFd4JEVWZDw9Mk87ITVCKjU3c3BGXlp6
Pz45Q2w/QHA+dzU/bVd3IUptRF5wWjxZaXlnMnQ/KnRRJj5SLVBDCno9UHFRb0EoTyVicHU1anBe
YUk3MEYmbEt9QzZgP0NoZ3FsT3R3biRNcHdwektqcEohNjwwPipxayE3TENhWSYlfQp6M0Z2fmoq
UERxbE8zfnN1K2k/NmBifUskU2x2P0BJQ2xzKm80K1RpNnlWTG5yZ18qWjgkJD95XnZZUG95NGIo
elIKemUzcExvaGI2b2lTPDVzNFhTJHkkcCU3WDtQQFE9NCR0U0JUP00kc0gkdS13cDZZKFl7Yz0q
YmJVeEomRTJ8IUpwCnpCNjd6SVcxR0RDJUJBPXMyOFMqJmlBQGc5KkhMUHE3VXJ6MlBPcGAkJH1T
ZnJ1S3tENE5tQiY3ZmNEQDY0Pm9gSAp6U3FYfWxici1DQWU+fn1VJUEoajZAVlMqTVVOPmlLPUla
cCMqKkV8UUFEPztyajJ5RGhsRDd0RyU1a2hhPm5rJUoKemJKZCZaWSo/M3xQTXFeRmlidio0OyVE
KEs0YGJ9JjNyNiF8X3I8M0dReStudjFpc3w7fDh9VDhycyZrXmY+Pmk/CnpxbGEkM2BSMjl7ZTk0
Xn0rIVcjPClpLSY7bnslRkB3Z1hrUDVGSjQyMWozbEQ0a2dqTT8hMFRlYGdRY292KDgrOwp6X1Bu
KH1XPUhTPUlFT01qZ3h5RmhjVndOOVI8ZktRZWh3Y1ZaR09WR1g2QFBeNlQ2aXlhJm83SlQkODU+
PUNnaz4KelEwYHB3MWZ4SmojfjlFRVZqfkR3TUF9MFNKdjFENUA8JTNCTjtHIURuKXIkNmUraTx1
N3NlPUtJPnY9TW5hMjtFCnpJZThZd2s2TVhFJSNefG1tWW02KjMyTW99QTtVS3sqVHY3V0NWJntW
WWRFOTMzcTZjdVNNYDRGbWFwLTVTNmE1UAp6PilDa0UjKzdrWntrYjQ9bEpgblVMVSFoRENoOG90
b00oKExifnBacktgZGhHcjtkXnt4bEBubEtXbjRUUFRSQ0UKelNrQCgrbGgta1VTVCR9bGtVanFS
PEJRfEBVK29oVjZOeWBpcC0yRGkoUGk8QT88WG5MRkpoS2dYWT5LM3R9fHlvCnold3IzOWVsSFE8
IzJeO0J0czEkS0dyM2JvLWhzJUJRQndSTiVkUER5V2txPDUxcmgzczBteWFOVVJRbXRQfTx9JQp6
ZysxYCMxTHYrQHYtJF5OR3MzUm45N0dwTGZIODRuPk8ob0YwQm8/UWh3YUZSU0FYfmlfP2Bfc2R8
ZG10Klh8fX4KemNifDF3b0FGQURFekxhMHdmRVIja0codjAoc0FyMjlNdzZ+dX5mJjdEZF9kclVt
dTlgJUM3aW8qP3t3UEc7RiVwCnp0eXtQMyt6Kn1tZF5+RjM2MShVNHU8djBma3I7KVF5QUsmTD07
KDItWVhDa1R3PDxzUiN5N3JrO0loanVgdkFWewp6VnJKUWB4OEF6emBgYFFpMCN0Y2BMRVdCP0pl
MUx8YjQ3bVVNanB7JFp+SFVgQ20zYUNATmAjP0Q+NnlvQFBZZHUKelNoKU8qPCRFdncjS2xNRnIw
ZStqYHRPUU9rOEo5Qzt5PDROZmJyS31kK3BURkl8Zn4yV0lJPEtTJUNMdWVDemJaCnp0Rk9NZ19x
O3prPz9ZTHk5c2xTZmtNMU1LQElPaDs8U3V4YHY9TkpqdGdLJWhYP0p7QT95PnB2PWJzZ2lkQDUo
MAp6ND1rV2AwUSQoRj48VmBWeU1hVEFhVT9jej1Vc1BCdFgjUXIrVHN8bjZeI1loe24lclZKQD1o
fHxJVFJhPUQ5cUUKejUxLVpoP2ZDbU8yUDRPV0BsPDZyS0ZzZ0M9JVMwM04xVD4jJisxfTRgfFB1
MFUlY1hyP0RRVCQ8OFJec0IwU3g5CnpBPUdFZl4jZGVGMEpUI3VrTHV6K141KyRSQGZDLSZCRWph
MDs0bk1WcChfSXdMPj1OQjVFK05CTC1EKWMtZExRcwp6MWZwQD9aVGllSiZ5MjxJaktgenNldlRh
ZnBwWHwyPmg7dGA+e2hrc08oVEgoKFRUdzAkYiRueCFqWmk1Y3x7RTkKenAkdkBeY29qVShoNWZB
ZEJieSVDaG85ZU5CTHtMSkMtTnNwY059QiNacT5eQU9GZ2piamkoaXQjI1RPdykka24jCnpqeXIw
Xmo/K2JWUHcyPTAxU0drfXEyMncmNkhvTi0rUFExak1ePUFpcGt0cE0xKWcxclR5RmhgVFgpQFkj
fnM2dwp6UHhUY09FKmpLbXQkPTZFZFRmXmBNO0NyTWdnTkkmLXZSe0hUUU1mK3YkWSVgdUchVSZp
XzF6Xns5VkRXLVpAan0KemxtM0RKdUFiaU4rb3pORns+IX0hS0wzfVctfVRDYCt1dFk3N1die3A2
TntNbC1oMXpZc0EtWiMxdzN+aWwkTDkkCno4Jl51ak9NJW4mbz4tbWowX1VYWEheKEsjQ3B0RChs
NFNUXk8wfktIPTBOe2MhaHJrcShAIXMwemtZcEJlQ2NzVgp6ZUUhaC1uOTw/ZXIxJk5WdjUxS3Eh
MUF6I0gmXm5kVEwqbEpnTFFMNnglLXFzIUxCI3tmWHVPUlFvUnU4VCROfTkKenEwP3wmKjlATkw7
cHJ5Z047aVVhejN7PmReWHxYentfITA8Y2tEaiUlcm9hdip0XmtxVW1MZVZ5VyhiayZNJHVQCnpp
JFJKZGY5ZkdkSzVXVSFKazMyKmEmP35FO0YwQ2RBeHd7bHYzRztjKHpETSNgQDBjbipqcEpfTmYw
ZzQjOVRHegp6UylEUW5eVEBzSSF4TkNQaUEyMmFfYDU0UkhoZy0ren1odXkyWng0LVc8UChKTllG
aklfakdVbTtwUExlQVMzYXwKejVme1pmbGdnZikwTGsrbHh4cGl8RSYoREo8aGRTZU9yZV4pJiQ8
RlEtVTtwZz19JipVakB5amkjXjdmVzxhfjxNCnpBO0dkXjkzc248ZEdyQkBDWGduSU9ue2tWQ3Zm
dGBGNmlWX1BkJjlUSXk8RmpAIzRqTW16fSlxOzM9bl4odFgtIwp6cnd6bi0mZH5nIT5YNnY4Y2hC
TVleN3ZAJTtGMCpkcmpzdmtlUjx4RjlYc2E3SkNiPTNpK2phTXtnViVYa3ByRVcKeiRlNT18R2tF
Q0gkT31II1pUeyVmKyFTQ0khezFoKW9HbnxuPzkjWHotQCpNNjlWWX1ibjYmY0g7Pjc/PSFgbiVL
CnpQRXZOMGExSS1qaE5vcUpqQl5nPWhZa1FTcmV+ZnB6ekpUaXJ9VzNUdTk8X2lrUiRpSF4hT2Eq
T0l4Pll7bnpTNwp6X3ZNI2dla3smfktaPSFHJWBXOEpLfGw8cDFkeFo4JXtsZCl3PHYtTzd7JWRS
OEkqM0tRaFhwcy08YX1AMFl7KTEKekRedCFLJXtsOHFDTkQpK0hzXyReMFg3XiN2SE59bVg2UlB7
aFFoKDZPUEFncnlZS3k+RyhnYj8paFhsYlA8Zns0Cno1SisyWCVBKHpZJG0jZnspMT5oRCVCPX1W
KztgJWV1ZG8/UVV3fXRyJXA2VEJwSlAtQ0g4MUYzciFFeG1me3coYAp6Q35nbTBlWCplVlJ4OTRq
fDFkNWh4NWNrYHpKZm12V3M8PkFNXmZXQ2hTSmIyMG0tYGYwfkYzdD0mfmJBZWRQS1EKejQ5M1JE
NnJQVHJKcFJnTjRlMDB9OWVKc0NqLX0rdVZhcERUS1p8QERTZ0czdEZxOWBFel87VzU+JmNQTzF8
QXVDCnpeTkZKejlHKyRYWF9qVDMldiZIZjg5YVRzPmx7fnM7emJ8WUdjSjNuVGdFXmluWkRHUT05
dXo7PVNLemM9PFdYYQp6N1E/cT11NmJ4UTBtTW02akQrKis7fnM0P3pJXj5Ab0N1O3BHRylHMUdO
bTVseCZpPkMyXiF4bldlM0lqO0pmO2sKekFacnpEanc0QEVWXisyKXA3TjNzKlBOS2tKbVlsRTxI
XmY/QGtIbF9ASUNFfE8wRTc3X2R3akV7WiV9eXtGXnUqCnpSXzg8eEl9YmUqdU0zTG8/S0YkLSlI
ZGhQJTBAdWNDNUV5KDgqfF9zNFMzTSNCaz8xfnVnQVVTS2JQUilxWll0dwp6QjBpTGYzKEw5aiNR
TXMoPXs/YDhEZCF1e1AzI3R2WXVIUlhNOVBGc0tIRmZ8czx9ZylGWVZ1fHwybG5RQWc2aDgKejxG
Skt+dEwrY29jO2soNHtebUVvYFJ+d2E5PTdIS1ozJj1DayN2OUQrXiZsWSUhYXRJZD8zSkUkUlMy
Q3tLeDsqCnpwQHk+IyZOMXJmS1UzJFJ3N1A8b3lgQX5XWD9paTl6VklGMz9UaWI/UHZZSWl7YWR6
ZGBFSlBDZWw+MVowRjQqSAp6c0FfVGklTU5RfU4zTSorblYrflczR3E9dXJ6JSRZX2xFe1BsaHI/
bTVyXiF5Km0zLUc3QEgkfjk8V1NwJVVOcHEKWWUtIyl+blFtS05nOCU+azA3KnFvTTZOPCRmPGZ0
S29kNXM7CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDdlNmI2NmQ1ZWYxYzQzOWU3MTEyN2VjMTM3MDI3YWUzMTRhZTU2NjUuLjlm
NzU1YzZkMTRjMTRkZTcxYzBjN2I2YjJiMWU2ODdjZGVjMzVlNGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkzMyw4ICs5MzMs
NiBAQAogCQkzMTlGQkQ1RjE1RDJGNDY0MDA5NjQwQTYgLyogQ2FjaGVkSW1hZ2VDbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOUZCRDVEMTVE
MkY0NDQwMDk2NDBBNiAvKiBDYWNoZWRJbWFnZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTMxQTk2M0E1MTY1NUQ0MjYwMDBENDY0NSAv
KiBzdGFydEJ1dHRvbi5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxQTk2M0ExMTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvbi5wbmcgKi87
IH07CiAJCTMxQTk2M0E2MTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvbkAyeC5wbmcgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTk2M0EyMTY1
NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvbkAyeC5wbmcgKi87IH07Ci0JCTMxQTk2M0E3MTY1
NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvblByZXNzZWQucG5nIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUE5NjNBMzE2NTVENDI2MDAwRDQ2NDUg
Lyogc3RhcnRCdXR0b25QcmVzc2VkLnBuZyAqLzsgfTsKLQkJMzFBOTYzQTgxNjU1RDQyNjAwMEQ0
NjQ1IC8qIHN0YXJ0QnV0dG9uUHJlc3NlZEAyeC5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTk2M0E0MTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFy
dEJ1dHRvblByZXNzZWRAMngucG5nICovOyB9OwogCQkzMUMwRkYyMTBFNENFQjZFMDA3RDZGRTUg
LyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGMUIwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1h
dGlvbkV2ZW50LmNwcCAqLzsgfTsKIAkJMzFDMEZGMjIwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktp
dEFuaW1hdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMUMwRkYxQzBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQu
aCAqLzsgfTsKIAkJMzFDMEZGMjQwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRpb25F
dmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MUMwRkYxRTBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCAqLzsg
fTsKQEAgLTgxMjksOCArODEyNyw2IEBACiAJCTMxOUZCRDVEMTVEMkY0NDQwMDk2NDBBNiAvKiBD
YWNoZWRJbWFnZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNo
ZWRJbWFnZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUE5NjNBMTE2
NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b24ucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gc3RhcnRCdXR0b24u
cG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUE5NjNBMjE2NTVENDI2MDAwRDQ2
NDUgLyogc3RhcnRCdXR0b25AMngucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gInN0YXJ0QnV0dG9uQDJ4LnBuZyI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMxQTk2M0EzMTY1NUQ0MjYwMDBENDY0NSAv
KiBzdGFydEJ1dHRvblByZXNzZWQucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gc3RhcnRCdXR0b25QcmVzc2VkLnBu
Zzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFBOTYzQTQxNjU1RDQyNjAwMEQ0NjQ1
IC8qIHN0YXJ0QnV0dG9uUHJlc3NlZEAyeC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSAic3RhcnRCdXR0b25QcmVz
c2VkQDJ4LnBuZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQzBGRjFCMEU0Q0VC
NkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLaXRBbmltYXRpb25FdmVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTMxQzBGRjFDMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmlt
YXRpb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRBbmlt
YXRpb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUMwRkYxRDBFNENF
QjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFdlYktpdEFuaW1hdGlvbkV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE0NTM3LDggKzE0NTMzLDYgQEAKIAkJCQk4NTEzNkM5NjBBRUQ2NjU5MDBGOTBBM0Qg
Lyogc291dGhXZXN0UmVzaXplQ3Vyc29yLnBuZyAqLywKIAkJCQkzMUE5NjNBMTE2NTVENDI2MDAw
RDQ2NDUgLyogc3RhcnRCdXR0b24ucG5nICovLAogCQkJCTMxQTk2M0EyMTY1NUQ0MjYwMDBENDY0
NSAvKiBzdGFydEJ1dHRvbkAyeC5wbmcgKi8sCi0JCQkJMzFBOTYzQTMxNjU1RDQyNjAwMEQ0NjQ1
IC8qIHN0YXJ0QnV0dG9uUHJlc3NlZC5wbmcgKi8sCi0JCQkJMzFBOTYzQTQxNjU1RDQyNjAwMEQ0
NjQ1IC8qIHN0YXJ0QnV0dG9uUHJlc3NlZEAyeC5wbmcgKi8sCiAJCQkJOTMxNTNCREIxNDE5NTlC
QjAwRkNGNUJFIC8qIHRleHRBcmVhUmVzaXplQ29ybmVyLnBuZyAqLywKIAkJCQk5MzcwOTE4QzE0
MTZEODZCMDA0NzczMzMgLyogdGV4dEFyZWFSZXNpemVDb3JuZXJAMngucG5nICovLAogCQkJCTQ2
RDRGMjQ4MEFGOTdFODEwMDM1Mzg1QSAvKiB2ZXJ0aWNhbFRleHRDdXJzb3IucG5nICovLApAQCAt
MjYwNDgsOCArMjYwNDIsNiBAQAogCQkJCTFBQjFBRTdCMEMwNTFGREUwMDEzOUY0RiAvKiB6b29t
T3V0Q3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJMzFBOTYzQTUxNjU1RDQyNjAwMEQ0
NjQ1IC8qIHN0YXJ0QnV0dG9uLnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJMzFBOTYzQTYxNjU1
RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uQDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJ
MzFBOTYzQTcxNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uUHJlc3NlZC5wbmcgaW4gUmVz
b3VyY2VzICovLAotCQkJCTMxQTk2M0E4MTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvblBy
ZXNzZWRAMngucG5nIGluIFJlc291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCmluZGV4IDk3MmIyYmY5MDQyMjNi
NWI3Nzc1ZjI0MjlkYzE2MjgzYTBmMTY4MTUuLjJhYjU5YzE5ZTc2OTk3MjhjZTIyNTAwZWRlMDIy
NzQ3NzNmZjM1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNuYXBzaG90dGVkUGx1Z0luLmNwcApAQCAtMzksMTIgKzM5LDE0IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogc3RhdGljIGNvbnN0IGludCBhdXRvU3RhcnRQbHVnSW5TaXplVGhyZXNob2xkV2lk
dGggPSAxOwogc3RhdGljIGNvbnN0IGludCBhdXRvU3RhcnRQbHVnSW5TaXplVGhyZXNob2xkSGVp
Z2h0ID0gMTsKLXN0YXRpYyBjb25zdCBpbnQgc3RhcnRCdXR0b25QYWRkaW5nID0gMTA7CitzdGF0
aWMgY29uc3QgaW50IHN0YXJ0TGFiZWxQYWRkaW5nID0gMTA7CitzdGF0aWMgY29uc3QgZG91Ymxl
IGhvdmVyRGVsYXkgPSAxOwogCiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6UmVuZGVyU25hcHNo
b3R0ZWRQbHVnSW4oSFRNTFBsdWdJbkltYWdlRWxlbWVudCogZWxlbWVudCkKICAgICA6IFJlbmRl
ckVtYmVkZGVkT2JqZWN0KGVsZW1lbnQpCiAgICAgLCBtX3NuYXBzaG90UmVzb3VyY2UoUmVuZGVy
SW1hZ2VSZXNvdXJjZTo6Y3JlYXRlKCkpCi0gICAgLCBtX2lzTW91c2VJbkJ1dHRvblJlY3QoZmFs
c2UpCisgICAgLCBtX3Nob3dMYWJlbChmYWxzZSkKKyAgICAsIG1faG92ZXJEZWxheVRpbWVyKHRo
aXMsICZSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6aG92ZXJEZWxheVRpbWVyRmlyZWQsIGhvdmVy
RGVsYXkpCiB7CiAgICAgbV9zbmFwc2hvdFJlc291cmNlLT5pbml0aWFsaXplKHRoaXMpOwogfQpA
QCAtODQsNyArODYsOCBAQCB2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpwYWludFJlcGxh
Y2VkKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQbwogewogICAgIGlmIChwbHVn
SW5JbWFnZUVsZW1lbnQoKS0+ZGlzcGxheVN0YXRlKCkgPCBIVE1MUGx1Z0luRWxlbWVudDo6UGxh
eWluZ1dpdGhQZW5kaW5nTW91c2VDbGljaykgewogICAgICAgICBwYWludFJlcGxhY2VkU25hcHNo
b3QocGFpbnRJbmZvLCBwYWludE9mZnNldCk7Ci0gICAgICAgIHBhaW50QnV0dG9uKHBhaW50SW5m
bywgcGFpbnRPZmZzZXQpOworICAgICAgICBpZiAobV9zaG93TGFiZWwpCisgICAgICAgICAgICBw
YWludExhYmVsKHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0xMjIsNDEgKzEyNSwzOCBAQCB2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpw
YWludFJlcGxhY2VkU25hcHNob3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0CiAgICAgY29u
dGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBzdHlsZSgpLT5jb2xvclNwYWNlKCksIGFsaWdu
ZWRSZWN0LCBDb21wb3NpdGVTb3VyY2VPdmVyLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
bigpLCB1c2VMb3dRdWFsaXR5U2NhbGluZyk7CiB9CiAKLXN0YXRpYyBJbWFnZSogc3RhcnRCdXR0
b25JbWFnZSgpCitzdGF0aWMgSW1hZ2UqIHN0YXJ0TGFiZWxJbWFnZSgpCiB7Ci0gICAgc3RhdGlj
IEltYWdlKiBidXR0b25JbWFnZSA9IEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZSgic3RhcnRC
dXR0b24iKS5sZWFrUmVmKCk7Ci0gICAgcmV0dXJuIGJ1dHRvbkltYWdlOworICAgIHN0YXRpYyBJ
bWFnZSogbGFiZWxJbWFnZSA9IEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZSgic3RhcnRCdXR0
b24iKS5sZWFrUmVmKCk7CisgICAgcmV0dXJuIGxhYmVsSW1hZ2U7CiB9CiAKLXN0YXRpYyBJbWFn
ZSogc3RhcnRCdXR0b25QcmVzc2VkSW1hZ2UoKQotewotICAgIHN0YXRpYyBJbWFnZSogYnV0dG9u
SW1hZ2UgPSBJbWFnZTo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoInN0YXJ0QnV0dG9uUHJlc3NlZCIp
LmxlYWtSZWYoKTsKLSAgICByZXR1cm4gYnV0dG9uSW1hZ2U7Ci19Ci0KLXZvaWQgUmVuZGVyU25h
cHNob3R0ZWRQbHVnSW46OnBhaW50QnV0dG9uKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBM
YXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCit2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpw
YWludExhYmVsKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRP
ZmZzZXQpCiB7CiAgICAgTGF5b3V0UmVjdCBjb250ZW50UmVjdCA9IGNvbnRlbnRCb3hSZWN0KCk7
CiAgICAgaWYgKGNvbnRlbnRSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
SW1hZ2UqIGJ1dHRvbkltYWdlID0gc3RhcnRCdXR0b25JbWFnZSgpOwotICAgIGlmIChwbHVnSW5J
bWFnZUVsZW1lbnQoKS0+YWN0aXZlKCkpIHsKLSAgICAgICAgaWYgKG1faXNNb3VzZUluQnV0dG9u
UmVjdCkKLSAgICAgICAgICAgIGJ1dHRvbkltYWdlID0gc3RhcnRCdXR0b25QcmVzc2VkSW1hZ2Uo
KTsKLSAgICB9IGVsc2UgaWYgKCFwbHVnSW5JbWFnZUVsZW1lbnQoKS0+aG92ZXJlZCgpKQorICAg
IGlmICghcGx1Z0luSW1hZ2VFbGVtZW50KCktPmhvdmVyZWQoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgTGF5b3V0UG9pbnQgY29udGVudExvY2F0aW9uID0gcGFpbnRPZmZzZXQgKyBjb250ZW50
UmVjdC5tYXhYTWF4WUNvcm5lcigpIC0gYnV0dG9uSW1hZ2UtPnNpemUoKSAtIExheW91dFNpemUo
c3RhcnRCdXR0b25QYWRkaW5nLCBzdGFydEJ1dHRvblBhZGRpbmcpOwotICAgIHBhaW50SW5mby5j
b250ZXh0LT5kcmF3SW1hZ2UoYnV0dG9uSW1hZ2UsIENvbG9yU3BhY2VEZXZpY2VSR0IsIHJvdW5k
ZWRJbnRQb2ludChjb250ZW50TG9jYXRpb24pLCBidXR0b25JbWFnZS0+cmVjdCgpKTsKKyAgICBJ
bWFnZSogbGFiZWxJbWFnZSA9IHN0YXJ0TGFiZWxJbWFnZSgpOworICAgIExheW91dFBvaW50IGNv
bnRlbnRMb2NhdGlvbiA9IHBhaW50T2Zmc2V0ICsgY29udGVudFJlY3QubWF4WE1heFlDb3JuZXIo
KSAtIGxhYmVsSW1hZ2UtPnNpemUoKSAtIExheW91dFNpemUoc3RhcnRMYWJlbFBhZGRpbmcsIHN0
YXJ0TGFiZWxQYWRkaW5nKTsKKyAgICBwYWludEluZm8uY29udGV4dC0+ZHJhd0ltYWdlKGxhYmVs
SW1hZ2UsIENvbG9yU3BhY2VEZXZpY2VSR0IsIHJvdW5kZWRJbnRQb2ludChjb250ZW50TG9jYXRp
b24pLCBsYWJlbEltYWdlLT5yZWN0KCkpOwogfQogCi12b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1
Z0luOjpyZXBhaW50QnV0dG9uKCkKK3ZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnJlcGFp
bnRMYWJlbCgpCiB7Ci0gICAgLy8gRklYTUU6IFRoaXMgaXMgdW5mb3J0dW5hdGUuIFdlIHNob3Vs
ZCBqdXN0IHJlcGFpbnQgdGhlIGJ1dHRvbi4KKyAgICAvLyBGSVhNRTogVGhpcyBpcyB1bmZvcnR1
bmF0ZS4gV2Ugc2hvdWxkIGp1c3QgcmVwYWludCB0aGUgbGFiZWwuCiAgICAgcmVwYWludCgpOwog
fQogCit2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpob3ZlckRlbGF5VGltZXJGaXJlZChE
ZWZlcnJhYmxlT25lU2hvdFRpbWVyPFJlbmRlclNuYXBzaG90dGVkUGx1Z0luPiopCit7CisgICAg
bV9zaG93TGFiZWwgPSB0cnVlOworICAgIHJlcGFpbnRMYWJlbCgpOworfQorCiBDdXJzb3JEaXJl
Y3RpdmUgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OmdldEN1cnNvcihjb25zdCBMYXlvdXRQb2lu
dCYgcG9pbnQsIEN1cnNvciYgb3ZlcnJpZGVDdXJzb3IpIGNvbnN0CiB7CiAgICAgaWYgKHBsdWdJ
bkltYWdlRWxlbWVudCgpLT5kaXNwbGF5U3RhdGUoKSA8IEhUTUxQbHVnSW5FbGVtZW50OjpQbGF5
aW5nV2l0aFBlbmRpbmdNb3VzZUNsaWNrKSB7CkBAIC0xNzMsMjcgKzE3MywzNiBAQCB2b2lkIFJl
bmRlclNuYXBzaG90dGVkUGx1Z0luOjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQpCiAKICAgICBN
b3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KTsK
IAotICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50ICYmIG1v
dXNlRXZlbnQtPmJ1dHRvbigpID09IExlZnRCdXR0b24pIHsKLSAgICAgICAgaWYgKG1faXNNb3Vz
ZUluQnV0dG9uUmVjdCkKLSAgICAgICAgICAgIHBsdWdJbkltYWdlRWxlbWVudCgpLT5zZXREaXNw
bGF5U3RhdGUoSFRNTFBsdWdJbkVsZW1lbnQ6OlBsYXlpbmcpOwotICAgICAgICBlbHNlIHsKLSAg
ICAgICAgICAgIHBsdWdJbkltYWdlRWxlbWVudCgpLT5zZXREaXNwbGF5U3RhdGUoSFRNTFBsdWdJ
bkVsZW1lbnQ6OlBsYXlpbmdXaXRoUGVuZGluZ01vdXNlQ2xpY2spOwotICAgICAgICAgICAgcGx1
Z0luSW1hZ2VFbGVtZW50KCktPnNldFBlbmRpbmdDbGlja0V2ZW50KG1vdXNlRXZlbnQpOwotICAg
ICAgICB9CisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmNsaWNrRXZlbnQp
IHsKKyAgICAgICAgaWYgKG1vdXNlRXZlbnQtPmJ1dHRvbigpICE9IExlZnRCdXR0b24pCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgcGx1Z0luSW1hZ2VFbGVtZW50KCktPnNldERpc3Bs
YXlTdGF0ZShIVE1MUGx1Z0luRWxlbWVudDo6UGxheWluZ1dpdGhQZW5kaW5nTW91c2VDbGljayk7
CisgICAgICAgIHBsdWdJbkltYWdlRWxlbWVudCgpLT5zZXRQZW5kaW5nQ2xpY2tFdmVudChtb3Vz
ZUV2ZW50KTsKKwogICAgICAgICBpZiAod2lkZ2V0KCkpIHsKICAgICAgICAgICAgIGlmIChGcmFt
ZSogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpKQogICAgICAgICAgICAgICAgIGZyYW1lLT5s
b2FkZXIoKS0+Y2xpZW50KCktPnJlY3JlYXRlUGx1Z2luKHdpZGdldCgpKTsKICAgICAgICAgICAg
IHJlcGFpbnQoKTsKICAgICAgICAgfQogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQo
KTsKLSAgICB9IGVsc2UgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3Zl
ckV2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3V0RXZlbnQpCi0g
ICAgICAgIHJlcGFpbnRCdXR0b24oKTsKLSAgICBlbHNlIGlmIChldmVudC0+dHlwZSgpID09IGV2
ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCkgewotICAgICAgICBib29sIGlzTW91c2VJbkJ1dHRv
blJlY3QgPSBtX2J1dHRvblJlY3QuY29udGFpbnMoSW50UG9pbnQobW91c2VFdmVudC0+b2Zmc2V0
WCgpLCBtb3VzZUV2ZW50LT5vZmZzZXRZKCkpKTsKLSAgICAgICAgaWYgKGlzTW91c2VJbkJ1dHRv
blJlY3QgIT0gbV9pc01vdXNlSW5CdXR0b25SZWN0KSB7Ci0gICAgICAgICAgICBtX2lzTW91c2VJ
bkJ1dHRvblJlY3QgPSBpc01vdXNlSW5CdXR0b25SZWN0OwotICAgICAgICAgICAgcmVwYWludEJ1
dHRvbigpOwotICAgICAgICB9CisgICAgfSBlbHNlIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50
TmFtZXMoKS5tb3VzZWRvd25FdmVudCkgeworICAgICAgICBpZiAobW91c2VFdmVudC0+YnV0dG9u
KCkgIT0gTGVmdEJ1dHRvbikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAobV9o
b3ZlckRlbGF5VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgIG1faG92ZXJEZWxheVRpbWVy
LnN0b3AoKTsKKworICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAgICB9IGVs
c2UgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3ZlckV2ZW50KSB7Cisg
ICAgICAgIG1faG92ZXJEZWxheVRpbWVyLnJlc3RhcnQoKTsKKyAgICAgICAgZXZlbnQtPnNldERl
ZmF1bHRIYW5kbGVkKCk7CisgICAgfSBlbHNlIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFt
ZXMoKS5tb3VzZW91dEV2ZW50KSB7CisgICAgICAgIGlmIChtX2hvdmVyRGVsYXlUaW1lci5pc0Fj
dGl2ZSgpKQorICAgICAgICAgICAgbV9ob3ZlckRlbGF5VGltZXIuc3RvcCgpOworICAgICAgICBt
X3Nob3dMYWJlbCA9IGZhbHNlOworICAgICAgICByZXBhaW50TGFiZWwoKTsKKyAgICAgICAgZXZl
bnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiAgICAgfQogfQogCkBAIC0yMDgsOCArMjE3LDggQEAg
dm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6bGF5b3V0KCkKICAgICAgICAgICAgIHBsdWdJ
bkltYWdlRWxlbWVudCgpLT5zZXREaXNwbGF5U3RhdGUoSFRNTFBsdWdJbkVsZW1lbnQ6OlBsYXlp
bmcpOwogICAgIH0KIAotICAgIExheW91dFNpemUgYnV0dG9uU2l6ZSA9IHN0YXJ0QnV0dG9uSW1h
Z2UoKS0+c2l6ZSgpOwotICAgIG1fYnV0dG9uUmVjdCA9IExheW91dFJlY3QoY29udGVudEJveFJl
Y3QoKS5tYXhYTWF4WUNvcm5lcigpIC0gTGF5b3V0U2l6ZShzdGFydEJ1dHRvblBhZGRpbmcsIHN0
YXJ0QnV0dG9uUGFkZGluZykgLSBidXR0b25TaXplLCBidXR0b25TaXplKTsKKyAgICBMYXlvdXRT
aXplIGxhYmVsU2l6ZSA9IHN0YXJ0TGFiZWxJbWFnZSgpLT5zaXplKCk7CisgICAgbV9sYWJlbFJl
Y3QgPSBMYXlvdXRSZWN0KGNvbnRlbnRCb3hSZWN0KCkubWF4WE1heFlDb3JuZXIoKSAtIExheW91
dFNpemUoc3RhcnRMYWJlbFBhZGRpbmcsIHN0YXJ0TGFiZWxQYWRkaW5nKSAtIGxhYmVsU2l6ZSwg
bGFiZWxTaXplKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaAppbmRleCAyYTFmODk2
Yzc0NGMxNzNhODM3OGZkMWY0N2UxMTQyZTc2OWZmZGY3Li4zNWE0Yzk4Nzk3OWMwOTY5MDE1NjI3
YzIzNzhmM2QwZDQzN2U0MmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAi
UmVuZGVySW1hZ2VSZXNvdXJjZS5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCisjaW5jbHVk
ZSAiVGltZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Myw2ICs0NCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQdHI8SW1hZ2U+KTsKIAogICAg
IHZvaWQgaGFuZGxlRXZlbnQoRXZlbnQqKTsKKyAgICB2b2lkIGhvdmVyRGVsYXlUaW1lckZpcmVk
KERlZmVycmFibGVPbmVTaG90VGltZXI8UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4+Kik7CiAKIHBy
aXZhdGU6CiAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudCogcGx1Z0luSW1hZ2VFbGVtZW50KCkg
Y29uc3Q7CkBAIC01NCwxNCArNTYsMTUgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcGFp
bnRSZXBsYWNlZChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIE9WRVJSSURFOwogCiAg
ICAgdm9pZCBwYWludFJlcGxhY2VkU25hcHNob3QoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9p
bnQmKTsKLSAgICB2b2lkIHBhaW50QnV0dG9uKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50
Jik7Ci0gICAgdm9pZCByZXBhaW50QnV0dG9uKCk7CisgICAgdm9pZCBwYWludExhYmVsKFBhaW50
SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CisgICAgdm9pZCByZXBhaW50TGFiZWwoKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBPVkVSUklERTsKIAogICAgIE93blB0cjxSZW5kZXJJ
bWFnZVJlc291cmNlPiBtX3NuYXBzaG90UmVzb3VyY2U7Ci0gICAgTGF5b3V0UmVjdCBtX2J1dHRv
blJlY3Q7Ci0gICAgYm9vbCBtX2lzTW91c2VJbkJ1dHRvblJlY3Q7CisgICAgTGF5b3V0UmVjdCBt
X2xhYmVsUmVjdDsKKyAgICBib29sIG1fc2hvd0xhYmVsOworICAgIERlZmVycmFibGVPbmVTaG90
VGltZXI8UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4+IG1faG92ZXJEZWxheVRpbWVyOwogfTsKIAog
aW5saW5lIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luKiB0b1JlbmRlclNuYXBzaG90dGVkUGx1Z0lu
KFJlbmRlck9iamVjdCogb2JqZWN0KQo=
</data>
<flag name="review"
          id="194688"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>