<?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>88906</bug_id>
          
          <creation_ts>2012-06-12 13:28:32 -0700</creation_ts>
          <short_desc>Tiled drawing means some elements can disappear behind the page</short_desc>
          <delta_ts>2012-07-27 07:46:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>eric</cc>
    
    <cc>krit</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</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>647228</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-06-12 13:28:32 -0700</bug_when>
    <thetext>When tiled drawing (TileCache) is enabled on a page, and the page has preserve-3d, then elements can potentially disappear behind the tiles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647231</commentid>
    <comment_count>1</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-06-12 13:29:51 -0700</bug_when>
    <thetext>&lt;rdar://problem/11601834&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647234</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-06-12 13:30:52 -0700</bug_when>
    <thetext>&lt;rdar://problem/11649569&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647250</commentid>
    <comment_count>3</comment_count>
      <attachid>147146</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-06-12 13:39:06 -0700</bug_when>
    <thetext>Created attachment 147146
Test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649651</commentid>
    <comment_count>4</comment_count>
      <attachid>147683</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-06-14 17:10:51 -0700</bug_when>
    <thetext>Created attachment 147683
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664277</commentid>
    <comment_count>5</comment_count>
      <attachid>151121</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-07-06 15:42:13 -0700</bug_when>
    <thetext>Created attachment 151121
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664281</commentid>
    <comment_count>6</comment_count>
      <attachid>151121</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-07-06 15:52:46 -0700</bug_when>
    <thetext>Comment on attachment 151121
Patch

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

&gt; Source/WebCore/platform/graphics/ca/mac/TileCache.mm:67
&gt; +    [m_tileContainerLayer.get() setName:@&quot;TileCache Container Layer&quot;];

We normally only set layer names in debug.

&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:145
&gt; +        m_creatingPrimaryGraphicsLayer = true;

I think m_creatingPrimaryGraphicsLayer could just be a static.

&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:176
&gt; +    m_graphicsLayer = createGraphicsLayer(layerName, true);

Not a big fan of the &apos;true&apos; here.

&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:570
&gt; +            if (m_containmentLayer &amp;&amp; !m_usingTiledCacheLayer) {

I think the m_containmentLayer &amp;&amp; !m_usingTiledCacheLayer thing everywhere is confusing.

Maybe add:
GraphicsLayer* tileCacheFlatteningLayer() const { return m_usingTiledCacheLayer ? m_containmentLayer : 0; }
GraphicsLayer* clippingLayer() const { return !m_usingTiledCacheLayer ? m_containmentLayer : 0; }

and use them like:

if (GraphicsLayer* clippingLayer = clippingLayer())
  clippingLayer-&gt;....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664513</commentid>
    <comment_count>7</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-07-08 16:54:23 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 151121 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=151121&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/ca/mac/TileCache.mm:67
&gt; &gt; +    [m_tileContainerLayer.get() setName:@&quot;TileCache Container Layer&quot;];
&gt; 
&gt; We normally only set layer names in debug.

Done.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayerBacking.cpp:145
&gt; &gt; +        m_creatingPrimaryGraphicsLayer = true;
&gt; 
&gt; I think m_creatingPrimaryGraphicsLayer could just be a static.

Done.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayerBacking.cpp:176
&gt; &gt; +    m_graphicsLayer = createGraphicsLayer(layerName, true);
&gt; 
&gt; Not a big fan of the &apos;true&apos; here.

I removed the default parameter, and had createPrimaryGraphicsLayer just wrap its call to createGraphicsLayer in the yucky setting of the static bool.


&gt; &gt; Source/WebCore/rendering/RenderLayerBacking.cpp:570
&gt; &gt; +            if (m_containmentLayer &amp;&amp; !m_usingTiledCacheLayer) {
&gt; 
&gt; I think the m_containmentLayer &amp;&amp; !m_usingTiledCacheLayer thing everywhere is confusing.
&gt; 
&gt; ...

I did this where I could. There are still come cases where we need to check m_usingTileCacheLayer directly, such as when we create the layers, but it&apos;s better now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664514</commentid>
    <comment_count>8</comment_count>
      <attachid>151167</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-07-08 17:04:18 -0700</bug_when>
    <thetext>Created attachment 151167
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664965</commentid>
    <comment_count>9</comment_count>
      <attachid>151167</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-07-09 10:30:15 -0700</bug_when>
    <thetext>Comment on attachment 151167
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        some 3d transforms, the elements could disappear behind the
&gt; +        page background (which is rendered into the tile cache). Fix

... and could intersect with the tile cache tiles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665125</commentid>
    <comment_count>10</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-07-09 13:39:27 -0700</bug_when>
    <thetext>Committed r122152: &lt;http://trac.webkit.org/changeset/122152&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>147146</attachid>
            <date>2012-06-12 13:39:06 -0700</date>
            <delta_ts>2012-06-12 13:39:06 -0700</delta_ts>
            <desc>Test case</desc>
            <filename>tiled-error.html</filename>
            <type>text/html</type>
            <size>424</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KI3Zp
ZXdwb3J0IHsKICB3aWR0aDogMzIwcHg7CiAgaGVpZ2h0OiAzMjBweDsKICAtd2Via2l0LXRyYW5z
Zm9ybTogdHJhbnNsYXRlWigxMDAwcHgpIHJvdGF0ZVgoNTBkZWcpIHJvdGF0ZVooMzBkZWcpOyAv
KiB3b3JrcyAqLwogIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVYKDUwZGVnKSByb3RhdGVaKDMw
ZGVnKTsgLyogZmFpbHMgKi8KICBib3JkZXI6IDFweCBzb2xpZCBibHVlOwp9CgojYm94IHsKICB3
aWR0aDogOTZweDsKICBoZWlnaHQ6IDk2cHg7CiAgYmFja2dyb3VuZDogIzAwMDsKfQo8L3N0eWxl
Pgo8L2hlYWQ+Cgo8Ym9keT4KICA8ZGl2IGlkPSJ2aWV3cG9ydCI+PGRpdiBpZD0iYm94Ij48L2Rp
dj48L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147683</attachid>
            <date>2012-06-14 17:10:51 -0700</date>
            <delta_ts>2012-07-06 15:42:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88906-20120614171051.patch</filename>
            <type>text/plain</type>
            <size>9859</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2VmNDJhMzMyNzA2YTcy
ZThmYzI0ZDI4NWNkOWIyNjI4NTZhY2JlNS4uZjJmZWIwMzE4YTMzMjU0NTRiYTM2ZDkxOWM5NWRh
M2EyY2M0Y2QxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA2LTE0ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBUaWxlZCBkcmF3aW5nIG1lYW5z
IHNvbWUgZWxlbWVudHMgY2FuIGRpc2FwcGVhciBiZWhpbmQgdGhlIHBhZ2UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4OTA2CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8xMTYwMTgzND4KKworICAgICAgICBBZGQgYSBuZXcgR3JhcGhpY3NMYXllciBi
ZXR3ZWVuIHRoZSBjb250ZW50IGFuZCB0aGUgVGlsZUNhY2hlCisgICAgICAgIHdoaWNoIGFjdHMg
YXMgYSBmbGF0dGVuZXIgLSBlbnN1cmluZyBub25lIG9mIHRoZSBwYWdlIGNvbnRlbnQKKyAgICAg
ICAgY2FuIHBhcnRpY2lwYXRlIGluIHRoZSBjb29yZGluYXRlIHN5c3RlbSBvZiB0aGUgdGlsZXMu
CisKKyAgICAgICAgQXQgdGhlIG1vbWVudCB0aGlzIGlzIGEgbmV3IEdyYXBoaWNzTGF5ZXIsIHdo
aWNoIGlzIG92ZXJraWxsCisgICAgICAgIGJlY2F1c2UgaXQgaXMgb25seSBuZWVkZWQgb24gdGhl
IFJlbmRlclZpZXcuIFBvc3RpbmcgYXMgYSBwcmVsaW1pbmFyeQorICAgICAgICBwYXRjaCwgYnV0
IEkgd2lsbCBpbnZlc3RpZ2F0ZSBpZiB3ZSBjYW4gcmV1c2Ugb25lIG9mIHRoZSBleGlzdGluZwor
ICAgICAgICBsYXllcnMgaW5zdGVhZC4gTWF5YmUgbV9jbGlwcGluZ0xheWVyLgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvbWFjL1RpbGVDYWNoZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVDYWNoZTo6VGls
ZUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVDYWNoZTo6Y3JlYXRlVGlsZUxheWVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvV2ViVGlsZUNhY2hlTGF5ZXIubW06
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6UmVuZGVyTGF5
ZXJCYWNraW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6Y3JlYXRl
R3JhcGhpY3NMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnNo
b3VsZFVzZVRpbGVDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6
OmNyZWF0ZVByaW1hcnlHcmFwaGljc0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQmFja2luZzo6ZGVzdHJveUdyYXBoaWNzTGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckNvbmZpZ3VyYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVJbnRlcm5hbEhpZXJhcmNo
eSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUNsaXBwaW5n
TGF5ZXJzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmg6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnBhcmVudEZvclN1YmxheWVycyk6Cisg
ICAgICAgIChSZW5kZXJMYXllckJhY2tpbmcpOgorCiAyMDEyLTA2LTEyICBTaGF3biBTaW5naCAg
PHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gTWFrZSBkYW1h
Z2UgdHJhY2tpbmcgbW9yZSByb2J1c3QgdG8gZWFybHkgZXhpdHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ2FjaGUubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNhY2hlLm1tCmluZGV4IDY2NmVh
Mzk0NmZlNzk5ZmYyNmNkZjBhYWRkMWRkYmRlOGZlNWEwOWEuLmZiMmFlZTRkMjJiMDIxZjc1NTY2
YWI4MDdiZmQzNGRiZTI3ZjZjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9UaWxlQ2FjaGUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNoZS5tbQpAQCAtNjQsNiArNjQsNyBAQCBUaWxlQ2Fj
aGU6OlRpbGVDYWNoZShXZWJUaWxlQ2FjaGVMYXllciogdGlsZUNhY2hlTGF5ZXIsIGNvbnN0IElu
dFNpemUmIHRpbGVTaXplKQogICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKICAgICBbQ0FUcmFu
c2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOwogICAgIFttX3RpbGVDYWNoZUxheWVyIGFk
ZFN1YmxheWVyOm1fdGlsZUNvbnRhaW5lckxheWVyLmdldCgpXTsKKyAgICBbbV90aWxlQ29udGFp
bmVyTGF5ZXIuZ2V0KCkgc2V0TmFtZTpAIlRpbGVDYWNoZSBDb250YWluZXIgTGF5ZXIiXTsKICAg
ICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwogfQogCkBAIC0zOTQsNiArMzk1LDcgQEAgUmV0YWlu
UHRyPFdlYlRpbGVMYXllcj4gVGlsZUNhY2hlOjpjcmVhdGVUaWxlTGF5ZXIoY29uc3QgSW50UmVj
dCYgdGlsZVJlY3QpCiAgICAgW2xheWVyLmdldCgpIHNldEJvcmRlcldpZHRoOm1fdGlsZURlYnVn
Qm9yZGVyV2lkdGhdOwogICAgIFtsYXllci5nZXQoKSBzZXRFZGdlQW50aWFsaWFzaW5nTWFzazow
XTsKICAgICBbbGF5ZXIuZ2V0KCkgc2V0T3BhcXVlOllFU107CisgICAgW2xheWVyLmdldCgpIHNl
dE5hbWU6QCJUaWxlIl07CiAKICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAgICAgW2xheWVyLmdldCgpIHNldENv
bnRlbnRzU2NhbGU6bV9kZXZpY2VTY2FsZUZhY3Rvcl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvV2ViVGlsZUNhY2hlTGF5ZXIubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvV2ViVGlsZUNhY2hlTGF5ZXIubW0K
aW5kZXggZDNlMjcyNzRiZmRiMGZiMDk0YzBlNjhjMGJiN2I3MjgxYzQwZDEyYi4uYWY1NzkxOTY2
YTRkNjhlMDJhMWQ2Yzk4Mzc4ZThkOTEyZmQ1YjQ0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1dlYlRpbGVDYWNoZUxheWVyLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9XZWJUaWxlQ2FjaGVMYXllci5t
bQpAQCAtNDIsNyArNDIsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogICAgIC8vIEZJ
WE1FOiBUaGUgdGlsZSBzaXplIHNob3VsZCBiZSBjb25maWd1cmFibGUuCiAgICAgX3RpbGVDYWNo
ZSA9IFRpbGVDYWNoZTo6Y3JlYXRlKHNlbGYsIEludFNpemUoNTEyLCA1MTIpKTsKLQorICAgIFtz
ZWxmIHNldE5hbWU6QCJXZWJUaWxlQ2FjaGVMYXllciJdOwogICAgIHJldHVybiBzZWxmOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmlu
ZGV4IGFkY2U0YzdlZWI4ODA5NTQ3NjU0MGIwZDczOGExNzRjZDUzMWFiZGYuLjFmOGIwYjU2Y2Ew
N2RkM2JlZmQzYmQ3M2VkMGEyNmZhYTM1ZDkyMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC05NCw2ICs5NCw3IEBAIFJlbmRlckxh
eWVyQmFja2luZzo6UmVuZGVyTGF5ZXJCYWNraW5nKFJlbmRlckxheWVyKiBsYXllcikKICAgICAs
IG1fYXJ0aWZpY2lhbGx5SW5mbGF0ZWRCb3VuZHMoZmFsc2UpCiAgICAgLCBtX2lzTWFpbkZyYW1l
UmVuZGVyVmlld0xheWVyKGZhbHNlKQogICAgICwgbV91c2luZ1RpbGVkQ2FjaGVMYXllcihmYWxz
ZSkKKyAgICAsIG1fY3JlYXRpbmdQcmltYXJ5R3JhcGhpY3NMYXllcihmYWxzZSkKICAgICAsIG1f
cmVxdWlyZXNPd25CYWNraW5nU3RvcmUodHJ1ZSkKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAg
ICAgLCBtX2NhbkNvbXBvc2l0ZUZpbHRlcnMoZmFsc2UpCkBAIC0xMzQsOSArMTM1LDE1IEBAIFJl
bmRlckxheWVyQmFja2luZzo6flJlbmRlckxheWVyQmFja2luZygpCiAgICAgZGVzdHJveUdyYXBo
aWNzTGF5ZXJzKCk7CiB9CiAKLVBhc3NPd25QdHI8R3JhcGhpY3NMYXllcj4gUmVuZGVyTGF5ZXJC
YWNraW5nOjpjcmVhdGVHcmFwaGljc0xheWVyKGNvbnN0IFN0cmluZyYgbmFtZSkKK1Bhc3NPd25Q
dHI8R3JhcGhpY3NMYXllcj4gUmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVHcmFwaGljc0xheWVy
KGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBwcmltYXJ5R3JhcGhpY3NMYXllcikKIHsKKyAgICBp
ZiAocHJpbWFyeUdyYXBoaWNzTGF5ZXIpCisgICAgICAgIG1fY3JlYXRpbmdQcmltYXJ5R3JhcGhp
Y3NMYXllciA9IHRydWU7CisKICAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gZ3JhcGhpY3NMYXll
ciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZSh0aGlzKTsKKworICAgIGlmIChwcmltYXJ5R3JhcGhp
Y3NMYXllcikKKyAgICAgICAgbV9jcmVhdGluZ1ByaW1hcnlHcmFwaGljc0xheWVyID0gZmFsc2U7
CiAjaWZuZGVmIE5ERUJVRwogICAgIGdyYXBoaWNzTGF5ZXItPnNldE5hbWUobmFtZSk7CiAjZWxz
ZQpAQCAtMTUzLDcgKzE2MCw3IEBAIFBhc3NPd25QdHI8R3JhcGhpY3NMYXllcj4gUmVuZGVyTGF5
ZXJCYWNraW5nOjpjcmVhdGVHcmFwaGljc0xheWVyKGNvbnN0IFN0cmluZyYKIAogYm9vbCBSZW5k
ZXJMYXllckJhY2tpbmc6OnNob3VsZFVzZVRpbGVDYWNoZShjb25zdCBHcmFwaGljc0xheWVyKikg
Y29uc3QKIHsKLSAgICByZXR1cm4gbV91c2luZ1RpbGVkQ2FjaGVMYXllcjsKKyAgICByZXR1cm4g
bV91c2luZ1RpbGVkQ2FjaGVMYXllciAmJiBtX2NyZWF0aW5nUHJpbWFyeUdyYXBoaWNzTGF5ZXI7
CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVQcmltYXJ5R3JhcGhpY3NMYXll
cigpCkBAIC0xNjIsNyArMTY5LDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVQ
cmltYXJ5R3JhcGhpY3NMYXllcigpCiAjaWZuZGVmIE5ERUJVRwogICAgIGxheWVyTmFtZSA9IG5h
bWVGb3JMYXllcigpOwogI2VuZGlmCi0gICAgbV9ncmFwaGljc0xheWVyID0gY3JlYXRlR3JhcGhp
Y3NMYXllcihsYXllck5hbWUpOworICAgIG1fZ3JhcGhpY3NMYXllciA9IGNyZWF0ZUdyYXBoaWNz
TGF5ZXIobGF5ZXJOYW1lLCB0cnVlKTsKKworICAgIGlmIChtX3VzaW5nVGlsZWRDYWNoZUxheWVy
KQorICAgICAgICBtX3RpbGVDYWNoZUZsYXR0ZW5pbmdMYXllciA9IGNyZWF0ZUdyYXBoaWNzTGF5
ZXIoIlRpbGVDYWNoZSBGbGF0dGVuaW5nIExheWVyIik7CiAKICAgICBpZiAobV9pc01haW5GcmFt
ZVJlbmRlclZpZXdMYXllcikgewogICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRz
T3BhcXVlKHRydWUpOwpAQCAtMTkzLDYgKzIwMyw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5n
OjpkZXN0cm95R3JhcGhpY3NMYXllcnMoKQogICAgIG1fZm9yZWdyb3VuZExheWVyID0gbnVsbHB0
cjsKICAgICBtX2NsaXBwaW5nTGF5ZXIgPSBudWxscHRyOwogICAgIG1fbWFza0xheWVyID0gbnVs
bHB0cjsKKyAgICBtX3RpbGVDYWNoZUZsYXR0ZW5pbmdMYXllciA9IG51bGxwdHI7CiB9CiAKIHZv
aWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVMYXllck9wYWNpdHkoY29uc3QgUmVuZGVyU3R5
bGUqIHN0eWxlKQpAQCAtMzQwLDYgKzM1MSwxMSBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6
dXBkYXRlR3JhcGhpY3NMYXllckNvbmZpZ3VyYXRpb24oKQogICAgIGlmIChsYXllckNvbmZpZ0No
YW5nZWQpCiAgICAgICAgIHVwZGF0ZUludGVybmFsSGllcmFyY2h5KCk7CiAKKyAgICBpZiAobV90
aWxlQ2FjaGVGbGF0dGVuaW5nTGF5ZXIgJiYgIW1fY2xpcHBpbmdMYXllcikgeworICAgICAgICBt
X3RpbGVDYWNoZUZsYXR0ZW5pbmdMYXllci0+cmVtb3ZlRnJvbVBhcmVudCgpOworICAgICAgICBt
X2dyYXBoaWNzTGF5ZXItPmFkZENoaWxkKG1fdGlsZUNhY2hlRmxhdHRlbmluZ0xheWVyLmdldCgp
KTsKKyAgICB9CisKICAgICBpZiAodXBkYXRlTWFza0xheWVyKHJlbmRlcmVyLT5oYXNNYXNrKCkp
KQogICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldE1hc2tMYXllcihtX21hc2tMYXllci5nZXQo
KSk7CiAKQEAgLTU5MCw2ICs2MDYsMTAgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0
ZUludGVybmFsSGllcmFyY2h5KCkKIAogICAgIGlmIChtX2NsaXBwaW5nTGF5ZXIpIHsKICAgICAg
ICAgbV9jbGlwcGluZ0xheWVyLT5yZW1vdmVGcm9tUGFyZW50KCk7CisgICAgICAgIGlmIChtX3Rp
bGVDYWNoZUZsYXR0ZW5pbmdMYXllcikgeworICAgICAgICAgICAgbV90aWxlQ2FjaGVGbGF0dGVu
aW5nTGF5ZXItPnJlbW92ZUZyb21QYXJlbnQoKTsKKyAgICAgICAgICAgIG1fY2xpcHBpbmdMYXll
ci0+YWRkQ2hpbGQobV90aWxlQ2FjaGVGbGF0dGVuaW5nTGF5ZXIuZ2V0KCkpOworICAgICAgICB9
CiAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+YWRkQ2hpbGQobV9jbGlwcGluZ0xheWVyLmdldCgp
KTsKIAogICAgICAgICAvLyBUaGUgY2xpcCBmb3IgY2hpbGQgbGF5ZXJzIGRvZXMgbm90IGluY2x1
ZGUgc3BhY2UgZm9yIG92ZXJmbG93IGNvbnRyb2xzLCBzbyB0aGV5IGV4aXN0IGFzCkBAIC02NDQs
NiArNjY0LDEwIEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDbGlwcGluZ0xheWVy
cyhib29sIG5lZWRzQW5jZXN0b3JDbGlwLCBib29sIG5lZWRzCiAgICAgICAgICAgICBsYXllcnND
aGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAobV9jbGlwcGluZ0xheWVy
KSB7CisgICAgICAgIGlmIChtX3RpbGVDYWNoZUZsYXR0ZW5pbmdMYXllcikgeworICAgICAgICAg
ICAgbV90aWxlQ2FjaGVGbGF0dGVuaW5nTGF5ZXItPnJlbW92ZUZyb21QYXJlbnQoKTsKKyAgICAg
ICAgICAgIG1fZ3JhcGhpY3NMYXllci0+YWRkQ2hpbGQobV90aWxlQ2FjaGVGbGF0dGVuaW5nTGF5
ZXIuZ2V0KCkpOworICAgICAgICB9CiAgICAgICAgIG1fY2xpcHBpbmdMYXllci0+cmVtb3ZlRnJv
bVBhcmVudCgpOwogICAgICAgICBtX2NsaXBwaW5nTGF5ZXIgPSBudWxscHRyOwogICAgICAgICBs
YXllcnNDaGFuZ2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuaAppbmRleCBkODcxODg1OGVhZjZiY2U0MTkwMDRiNjE5NDlmMmZlMTkwYjBk
MzgyLi4yYTMzNTI3Yjc5NmQ4NmU3MmEwNDQ3Zjg5ZTAyMGQzYzkyZjdmMTAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBAIC04Niw3ICs4Niwx
MyBAQCBwdWJsaWM6CiAgICAgCiAgICAgYm9vbCBoYXNNYXNrTGF5ZXIoKSBjb25zdCB7IHJldHVy
biBtX21hc2tMYXllciAhPSAwOyB9CiAKLSAgICBHcmFwaGljc0xheWVyKiBwYXJlbnRGb3JTdWJs
YXllcnMoKSBjb25zdCB7IHJldHVybiBtX2NsaXBwaW5nTGF5ZXIgPyBtX2NsaXBwaW5nTGF5ZXIu
Z2V0KCkgOiBtX2dyYXBoaWNzTGF5ZXIuZ2V0KCk7IH0KKyAgICBHcmFwaGljc0xheWVyKiBwYXJl
bnRGb3JTdWJsYXllcnMoKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKG1fdGlsZUNhY2hlRmxh
dHRlbmluZ0xheWVyKQorICAgICAgICAgICAgcmV0dXJuIG1fdGlsZUNhY2hlRmxhdHRlbmluZ0xh
eWVyLmdldCgpOworCisgICAgICAgIHJldHVybiBtX2NsaXBwaW5nTGF5ZXIgPyBtX2NsaXBwaW5n
TGF5ZXIuZ2V0KCkgOiBtX2dyYXBoaWNzTGF5ZXIuZ2V0KCk7CisgICAgfQogICAgIEdyYXBoaWNz
TGF5ZXIqIGNoaWxkRm9yU3VwZXJsYXllcnMoKSBjb25zdCB7IHJldHVybiBtX2FuY2VzdG9yQ2xp
cHBpbmdMYXllciA/IG1fYW5jZXN0b3JDbGlwcGluZ0xheWVyLmdldCgpIDogbV9ncmFwaGljc0xh
eWVyLmdldCgpOyB9CiAKICAgICAvLyBSZW5kZXJMYXllcnMgd2l0aCBiYWNraW5nIG5vcm1hbGx5
IHNob3J0LWNpcmN1aXQgcGFpbnRMYXllcigpIGJlY2F1c2UKQEAgLTE2OCw3ICsxNzQsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgY3JlYXRlUHJpbWFyeUdyYXBoaWNzTGF5ZXIoKTsKICAgICB2b2lk
IGRlc3Ryb3lHcmFwaGljc0xheWVycygpOwogICAgIAotICAgIFBhc3NPd25QdHI8R3JhcGhpY3NM
YXllcj4gY3JlYXRlR3JhcGhpY3NMYXllcihjb25zdCBTdHJpbmcmKTsKKyAgICBQYXNzT3duUHRy
PEdyYXBoaWNzTGF5ZXI+IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoY29uc3QgU3RyaW5nJiwgYm9vbCBw
b3RlbnRpYWxseVRpbGVDYWNoZWRMYXllciA9IGZhbHNlKTsKIAogICAgIFJlbmRlckJveE1vZGVs
T2JqZWN0KiByZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJuIG1fb3duaW5nTGF5ZXItPnJlbmRlcmVy
KCk7IH0KICAgICBSZW5kZXJMYXllckNvbXBvc2l0b3IqIGNvbXBvc2l0b3IoKSBjb25zdCB7IHJl
dHVybiBtX293bmluZ0xheWVyLT5jb21wb3NpdG9yKCk7IH0KQEAgLTIzMiw2ICsyMzgsNyBAQCBw
cml2YXRlOgogICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2ZvcmVncm91bmRMYXllcjsgICAg
ICAgLy8gb25seSB1c2VkIGluIGNhc2VzIHdoZXJlIHdlIG5lZWQgdG8gZHJhdyB0aGUgZm9yZWdy
b3VuZCBzZXBhcmF0ZWx5CiAgICAgT3duUHRyPEdyYXBoaWNzTGF5ZXI+IG1fY2xpcHBpbmdMYXll
cjsgICAgICAgICAvLyBvbmx5IHVzZWQgaWYgd2UgaGF2ZSBjbGlwcGluZyBvbiBhIHN0YWNraW5n
IGNvbnRleHQsIHdpdGggY29tcG9zaXRpbmcgY2hpbGRyZW4KICAgICBPd25QdHI8R3JhcGhpY3NM
YXllcj4gbV9tYXNrTGF5ZXI7ICAgICAgICAgICAgIC8vIG9ubHkgdXNlZCBpZiB3ZSBoYXZlIGEg
bWFzaworICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX3RpbGVDYWNoZUZsYXR0ZW5pbmdMYXll
cjsgLy8gb25seSB1c2VkIGlmIG91ciBsYXllciBoYXMgYSB0aWxlIGNhY2hlCiAKICAgICBPd25Q
dHI8R3JhcGhpY3NMYXllcj4gbV9sYXllckZvckhvcml6b250YWxTY3JvbGxiYXI7CiAgICAgT3du
UHRyPEdyYXBoaWNzTGF5ZXI+IG1fbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcjsKQEAgLTI0Miw2
ICsyNDksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hcnRpZmljaWFsbHlJbmZsYXRlZEJvdW5k
czsgICAgICAvLyBib3VuZHMgaGFkIHRvIGJlIG1hZGUgbm9uLXplcm8gdG8gbWFrZSB0cmFuc2Zv
cm0tb3JpZ2luIHdvcmsKICAgICBib29sIG1faXNNYWluRnJhbWVSZW5kZXJWaWV3TGF5ZXI7CiAg
ICAgYm9vbCBtX3VzaW5nVGlsZWRDYWNoZUxheWVyOworICAgIGJvb2wgbV9jcmVhdGluZ1ByaW1h
cnlHcmFwaGljc0xheWVyOwogICAgIGJvb2wgbV9yZXF1aXJlc093bkJhY2tpbmdTdG9yZTsKICNp
ZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgYm9vbCBtX2NhbkNvbXBvc2l0ZUZpbHRlcnM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151121</attachid>
            <date>2012-07-06 15:42:13 -0700</date>
            <delta_ts>2012-07-08 17:04:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88906-20120707084211.patch</filename>
            <type>text/plain</type>
            <size>17754</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxOTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjZjZjY3M2Y1N2NhYzlk
YTJjZGQ5N2Y4YWQ4NDJlNmZkN2MwN2JjMC4uOTgxOTM2ZTU3ZWJmMWZhMTUxNGY4NTM5NDkwODMx
ZGJkNjc4NTFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA3LTA2ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBUaWxlZCBkcmF3aW5nIG1lYW5z
IHNvbWUgZWxlbWVudHMgY2FuIGRpc2FwcGVhciBiZWhpbmQgdGhlIHBhZ2UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4OTA2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGNvbXBvc2l0aW5nIGxheWVy
cyBpbiB0aGUgdGlsZSBjYWNoZSBjb3VsZCBiZWNvbWUgc2libGluZ3MKKyAgICAgICAgb2YgdGhl
IGNvbXBvc2l0aW5nIGxheWVycyBmb3IgcGFnZSBlbGVtZW50cy4gVGhpcyBtZWFudCB0aGF0IGlu
CisgICAgICAgIHNvbWUgM2QgdHJhbnNmb3JtcywgdGhlIGVsZW1lbnRzIGNvdWxkIGRpc2FwcGVh
ciBiZWhpbmQgdGhlCisgICAgICAgIHBhZ2UgYmFja2dyb3VuZCAod2hpY2ggaXMgcmVuZGVyZWQg
aW50byB0aGUgdGlsZSBjYWNoZSkuIEZpeAorICAgICAgICB0aGlzIGJ5IGluc2VydGluZyBhIGZs
YXR0ZW5pbmcgbGF5ZXIgYmV0d2VlbiB0aGUgdGlsZSBjYWNoZQorICAgICAgICBhbmQgdGhlIHBh
Z2UsIGVuc3VyaW5nIHRoYXQgdGhlIGNhY2hlIHdpbGwgYWx3YXlzIGJlIHJlbmRlcmVkCisgICAg
ICAgIGZpcnN0LiBJIHdhcyBhYmxlIHRvIHJldXNlIHRoZSBjbGlwcGluZyBsYXllciBmb3IgdGhp
cywgYmVjYXVzZQorICAgICAgICB0aGUgdGlsZSBjYWNoZSBpcyBhdHRhY2hlZCB0byB0aGUgUmVu
ZGVyVmlldywgc28gdGhlcmUgc2hvdWxkIG5ldmVyCisgICAgICAgIGJlIGEgY2FzZSB3aGVyZSB3
ZSBoYXZlIGJvdGggYSBjbGlwcGluZyBsYXllciBhbmQgdGlsZXMuCisKKyAgICAgICAgVGhlIHVu
Zm9ydHVuYXRlIHBhcnQgb2YgdGhpcyBjb2RlIGlzIHRoZSB0ZW1wb3Jhcnkgc3RhdGUgdmFyaWFi
bGUKKyAgICAgICAgdGhhdCB3cmFwcyB0aGUgY2FsbCB0byBHcmFwaGljc0xheWVyOjpjcmVhdGUu
IEJlY2F1c2UgdGhhdCBtZXRob2QKKyAgICAgICAgY2FsbHMgYmFjayBpbnRvIHRoZSBvYmplY3Qs
IHdlIG5lZWQgdG8gbWFrZSBzdXJlIHdlIGRvbid0IGNyZWF0ZQorICAgICAgICBhbm90aGVyIHRp
bGUgY2FjaGUuCisKKyAgICAgICAgQWxzbyBhZGRlZCBzb21lIG9idmlvdXMgbmFtZXMgdG8gdGhl
IHRpbGUgY2FjaGUgbGF5ZXJzIHRvCisgICAgICAgIGhlbHAgd2l0aCBkZWJ1Z2dpbmcuCisKKyAg
ICAgICAgVGVzdDogY29tcG9zaXRpbmcvdGlsZS1jYWNoZS1tdXN0LWZsYXR0ZW4uaHRtbAorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNoZS5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlRpbGVDYWNoZTo6VGlsZUNhY2hlKTogZ2l2ZSB0aGUgdGlsZSBob3N0IGxheWVy
IGEgbmFtZS4KKyAgICAgICAgKFdlYkNvcmU6OlRpbGVDYWNoZTo6Y3JlYXRlVGlsZUxheWVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvV2ViVGlsZUNhY2hlTGF5ZXIubW06
IGdpdmUgZWFjaCB0aWxlIGxheWVyIGEgbmFtZS4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXJCYWNraW5nOjpSZW5kZXJMYXllckJhY2tpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVHcmFwaGljc0xheWVyKTogbmV3IHBhcmFtZXRl
ciB0byBndWFyZCBhZ2FpbnN0CisgICAgICAgIGNyZWF0aW5nIHVubmVjZXNzYXJ5IHRpbGUgY2Fj
aGVzLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpzaG91bGRVc2VUaWxl
Q2FjaGUpOiB0aGlzIGlzIHRoZSBHcmFwaGljc0xheWVyQ2xpZW50CisgICAgICAgIGNhbGwgdGhh
dCBub3cgaW52ZXN0aWdhdGVzIHRoZSBzdGF0ZSB2YXJpYWJsZS4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyQmFja2luZzo6Y3JlYXRlUHJpbWFyeUdyYXBoaWNzTGF5ZXIpOiBub3cgY3Jl
YXRlcyBhIGZsYXR0ZW5pbmcKKyAgICAgICAgbGF5ZXIgaWYgd2UncmUgdGhlIHRpbGUgY2FjaGUg
aG9zdC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6ZGVzdHJveUdyYXBo
aWNzTGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRl
R3JhcGhpY3NMYXllckNvbmZpZ3VyYXRpb24pOiBuZWVkcyB0byBtYWtlCisgICAgICAgIHN1cmUg
dGhlIGZsYXR0ZW5pbmcgbGF5ZXIgaXMgaW4gdGhlIHRyZWUuCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUludGVybmFsSGllcmFyY2h5KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlQ2xpcHBpbmdMYXll
cnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpiYWNraW5nU3RvcmVN
ZW1vcnlFc3RpbWF0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5o
OiByZW5hbWUgbV9jbGlwcGluZ0xheWVyIHRvIG1fY29udGFpbm1lbnRMYXllcgorICAgICAgICBi
ZWNhdXNlIGl0IGNhbiBub3cgZWl0aGVyIGJlIHRoZSBjbGlwIG9yIHRoZSB0aWxlIGNhY2hlIGZs
YXR0ZW5lci4gQWxzbworICAgICAgICBhIG5ldyBzdGF0ZSBwcm9wZXJ0eSB1c2VkIHdoZW4gY3Jl
YXRpbmcgdGhlIG1haW4gZ3JhcGhpY3MgbGF5ZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckJhY2tpbmc6Omhhc0NsaXBwaW5nTGF5ZXIpOiBuZWVkcyB0byBjaGVjayBpZiB3ZSdyZSBu
b3QgYSB0aWxlIGNhY2hlCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OmNs
aXBwaW5nTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpwYXJl
bnRGb3JTdWJsYXllcnMpOgorICAgICAgICAoUmVuZGVyTGF5ZXJCYWNraW5nKToKKwogMjAxMi0w
Ny0wNSAgSGF5YXRvIEl0byAgPGhheWF0b0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0NyYXNo
XSBDbGljayBhbiBlbGVtZW50IHdoaWNoIHdpbGwgYmUgJ2Rpc3BsYXk6IG5vbmUnIG9uIGZvY3Vz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1Rp
bGVDYWNoZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxl
Q2FjaGUubW0KaW5kZXggNTUwMjEwMjdkMWU5ZWJmNWU0MmQ2Njk5ZDE3ZDQzM2VlMWQxOTc3Ny4u
ODQ4NmE3ODgwMTRhMWI4ZWQ3ZmM2ZmM1MDRmZmMzZDc4YTM4ZjA0NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNoZS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNhY2hlLm1tCkBAIC02
NCw2ICs2NCw3IEBAIFRpbGVDYWNoZTo6VGlsZUNhY2hlKFdlYlRpbGVDYWNoZUxheWVyKiB0aWxl
Q2FjaGVMYXllciwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUpCiAgICAgW0NBVHJhbnNhY3Rpb24g
YmVnaW5dOwogICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2FibGVBY3Rpb25zOllFU107CiAgICAg
W21fdGlsZUNhY2hlTGF5ZXIgYWRkU3VibGF5ZXI6bV90aWxlQ29udGFpbmVyTGF5ZXIuZ2V0KCld
OworICAgIFttX3RpbGVDb250YWluZXJMYXllci5nZXQoKSBzZXROYW1lOkAiVGlsZUNhY2hlIENv
bnRhaW5lciBMYXllciJdOwogICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CiB9CiAKQEAgLTM5
NCw2ICszOTUsNyBAQCBSZXRhaW5QdHI8V2ViVGlsZUxheWVyPiBUaWxlQ2FjaGU6OmNyZWF0ZVRp
bGVMYXllcihjb25zdCBJbnRSZWN0JiB0aWxlUmVjdCkKICAgICBbbGF5ZXIuZ2V0KCkgc2V0Qm9y
ZGVyV2lkdGg6bV90aWxlRGVidWdCb3JkZXJXaWR0aF07CiAgICAgW2xheWVyLmdldCgpIHNldEVk
Z2VBbnRpYWxpYXNpbmdNYXNrOjBdOwogICAgIFtsYXllci5nZXQoKSBzZXRPcGFxdWU6WUVTXTsK
KyAgICBbbGF5ZXIuZ2V0KCkgc2V0TmFtZTpAIlRpbGUiXTsKIAogI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICBbbGF5ZXIuZ2V0KCkgc2V0Q29udGVudHNTY2FsZTpt
X2RldmljZVNjYWxlRmFjdG9yXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9XZWJUaWxlQ2FjaGVMYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL21hYy9XZWJUaWxlQ2FjaGVMYXllci5tbQppbmRleCBkM2UyNzI3
NGJmZGIwZmIwOTRjMGU2OGMwYmI3YjcyODFjNDBkMTJiLi5hMzgxZWE0OWVjYmY5NzBkNzRiMjM1
MDczZmExNDU1YjRkNGIwYTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9tYWMvV2ViVGlsZUNhY2hlTGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1dlYlRpbGVDYWNoZUxheWVyLm1tCkBAIC00Miw2ICs0
Miw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiAgICAgLy8gRklYTUU6IFRoZSB0aWxl
IHNpemUgc2hvdWxkIGJlIGNvbmZpZ3VyYWJsZS4KICAgICBfdGlsZUNhY2hlID0gVGlsZUNhY2hl
OjpjcmVhdGUoc2VsZiwgSW50U2l6ZSg1MTIsIDUxMikpOworICAgIFtzZWxmIHNldE5hbWU6QCJX
ZWJUaWxlQ2FjaGVMYXllciJdOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDc1MDczMjNhMjFl
YWI1OWJmNTM2N2Y1Yzc1ODZmM2I3YWI3YjM3ZDMuLjhjYWI1NjQxMDBkNGZiNmExNjhmMzAwMTM5
MDdhMTczZjQ4MzAxMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwCkBAIC05NSw2ICs5NSw3IEBAIFJlbmRlckxheWVyQmFja2luZzo6UmVu
ZGVyTGF5ZXJCYWNraW5nKFJlbmRlckxheWVyKiBsYXllcikKICAgICAsIG1fYXJ0aWZpY2lhbGx5
SW5mbGF0ZWRCb3VuZHMoZmFsc2UpCiAgICAgLCBtX2lzTWFpbkZyYW1lUmVuZGVyVmlld0xheWVy
KGZhbHNlKQogICAgICwgbV91c2luZ1RpbGVkQ2FjaGVMYXllcihmYWxzZSkKKyAgICAsIG1fY3Jl
YXRpbmdQcmltYXJ5R3JhcGhpY3NMYXllcihmYWxzZSkKICAgICAsIG1fcmVxdWlyZXNPd25CYWNr
aW5nU3RvcmUodHJ1ZSkKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgLCBtX2NhbkNvbXBv
c2l0ZUZpbHRlcnMoZmFsc2UpCkBAIC0xMzUsOSArMTM2LDE4IEBAIFJlbmRlckxheWVyQmFja2lu
Zzo6flJlbmRlckxheWVyQmFja2luZygpCiAgICAgZGVzdHJveUdyYXBoaWNzTGF5ZXJzKCk7CiB9
CiAKLVBhc3NPd25QdHI8R3JhcGhpY3NMYXllcj4gUmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVH
cmFwaGljc0xheWVyKGNvbnN0IFN0cmluZyYgbmFtZSkKK1Bhc3NPd25QdHI8R3JhcGhpY3NMYXll
cj4gUmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVHcmFwaGljc0xheWVyKGNvbnN0IFN0cmluZyYg
bmFtZSwgYm9vbCBwcmltYXJ5R3JhcGhpY3NMYXllcikKIHsKKyAgICAvLyBHcmFwaGljc0xheWVy
OjpjcmVhdGUgY2FsbHMgYmFjayBpbnRvIGhlcmUgKGFzIGEgR3JhcGhpY3NMYXllckNsaWVudCkg
dG8KKyAgICAvLyBhc2sgaWYgaXQgc2hvdWxkVXNlVGlsZUNhY2hlKCkuIFdlIG9ubHkgd2FudCB0
aGUgdGlsZSBjYWNoZSBvbiBvdXIgbWFpbiBsYXllci4KKyAgICAvLyBUaGlzIGlzIHByZXR0eSB1
Z2x5LCBidXQgc2F2ZXMgdXMgZnJvbSBleHBvc2luZyB0aGUgQVBJIHRvIGFsbCBjbGllbnRzLgor
ICAgIGlmIChwcmltYXJ5R3JhcGhpY3NMYXllcikKKyAgICAgICAgbV9jcmVhdGluZ1ByaW1hcnlH
cmFwaGljc0xheWVyID0gdHJ1ZTsKKwogICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBncmFwaGlj
c0xheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKHRoaXMpOworCisgICAgaWYgKHByaW1hcnlH
cmFwaGljc0xheWVyKQorICAgICAgICBtX2NyZWF0aW5nUHJpbWFyeUdyYXBoaWNzTGF5ZXIgPSBm
YWxzZTsKICNpZm5kZWYgTkRFQlVHCiAgICAgZ3JhcGhpY3NMYXllci0+c2V0TmFtZShuYW1lKTsK
ICNlbHNlCkBAIC0xNTQsNyArMTY0LDcgQEAgUGFzc093blB0cjxHcmFwaGljc0xheWVyPiBSZW5k
ZXJMYXllckJhY2tpbmc6OmNyZWF0ZUdyYXBoaWNzTGF5ZXIoY29uc3QgU3RyaW5nJgogCiBib29s
IFJlbmRlckxheWVyQmFja2luZzo6c2hvdWxkVXNlVGlsZUNhY2hlKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqKSBjb25zdAogewotICAgIHJldHVybiBtX3VzaW5nVGlsZWRDYWNoZUxheWVyOworICAgIHJl
dHVybiBtX3VzaW5nVGlsZWRDYWNoZUxheWVyICYmIG1fY3JlYXRpbmdQcmltYXJ5R3JhcGhpY3NM
YXllcjsKIH0KIAogdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OmNyZWF0ZVByaW1hcnlHcmFwaGlj
c0xheWVyKCkKQEAgLTE2Myw3ICsxNzMsMTAgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OmNy
ZWF0ZVByaW1hcnlHcmFwaGljc0xheWVyKCkKICNpZm5kZWYgTkRFQlVHCiAgICAgbGF5ZXJOYW1l
ID0gbmFtZUZvckxheWVyKCk7CiAjZW5kaWYKLSAgICBtX2dyYXBoaWNzTGF5ZXIgPSBjcmVhdGVH
cmFwaGljc0xheWVyKGxheWVyTmFtZSk7CisgICAgbV9ncmFwaGljc0xheWVyID0gY3JlYXRlR3Jh
cGhpY3NMYXllcihsYXllck5hbWUsIHRydWUpOworCisgICAgaWYgKG1fdXNpbmdUaWxlZENhY2hl
TGF5ZXIpCisgICAgICAgIG1fY29udGFpbm1lbnRMYXllciA9IGNyZWF0ZUdyYXBoaWNzTGF5ZXIo
IlRpbGVDYWNoZSBGbGF0dGVuaW5nIExheWVyIik7CiAKICAgICBpZiAobV9pc01haW5GcmFtZVJl
bmRlclZpZXdMYXllcikgewogICAgICAgICBib29sIGlzVHJhbnNwYXJlbnQgPSBmYWxzZTsKQEAg
LTE5Niw3ICsyMDksNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6ZGVzdHJveUdyYXBoaWNz
TGF5ZXJzKCkKIAogICAgIG1fZ3JhcGhpY3NMYXllciA9IG51bGxwdHI7CiAgICAgbV9mb3JlZ3Jv
dW5kTGF5ZXIgPSBudWxscHRyOwotICAgIG1fY2xpcHBpbmdMYXllciA9IG51bGxwdHI7CisgICAg
bV9jb250YWlubWVudExheWVyID0gbnVsbHB0cjsKICAgICBtX21hc2tMYXllciA9IG51bGxwdHI7
CiB9CiAKQEAgLTM0OSw2ICszNjIsMTEgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0
ZUdyYXBoaWNzTGF5ZXJDb25maWd1cmF0aW9uKCkKICAgICBpZiAobGF5ZXJDb25maWdDaGFuZ2Vk
KQogICAgICAgICB1cGRhdGVJbnRlcm5hbEhpZXJhcmNoeSgpOwogCisgICAgaWYgKG1fY29udGFp
bm1lbnRMYXllciAmJiBtX3VzaW5nVGlsZWRDYWNoZUxheWVyKSB7CisgICAgICAgIG1fY29udGFp
bm1lbnRMYXllci0+cmVtb3ZlRnJvbVBhcmVudCgpOworICAgICAgICBtX2dyYXBoaWNzTGF5ZXIt
PmFkZENoaWxkKG1fY29udGFpbm1lbnRMYXllci5nZXQoKSk7CisgICAgfQorCiAgICAgaWYgKHVw
ZGF0ZU1hc2tMYXllcihyZW5kZXJlci0+aGFzTWFzaygpKSkKICAgICAgICAgbV9ncmFwaGljc0xh
eWVyLT5zZXRNYXNrTGF5ZXIobV9tYXNrTGF5ZXIuZ2V0KCkpOwogCkBAIC01MTUsMTEgKzUzMywx
MSBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckdlb21ldHJ5
KCkKIAogICAgIC8vIElmIHdlIGhhdmUgYSBsYXllciB0aGF0IGNsaXBzIGNoaWxkcmVuLCBwb3Np
dGlvbiBpdC4KICAgICBJbnRSZWN0IGNsaXBwaW5nQm94OwotICAgIGlmIChtX2NsaXBwaW5nTGF5
ZXIpIHsKKyAgICBpZiAobV9jb250YWlubWVudExheWVyICYmICFtX3VzaW5nVGlsZWRDYWNoZUxh
eWVyKSB7CiAgICAgICAgIGNsaXBwaW5nQm94ID0gY2xpcEJveCh0b1JlbmRlckJveChyZW5kZXJl
cigpKSk7Ci0gICAgICAgIG1fY2xpcHBpbmdMYXllci0+c2V0UG9zaXRpb24oRmxvYXRQb2ludCgp
ICsgKGNsaXBwaW5nQm94LmxvY2F0aW9uKCkgLSBsb2NhbENvbXBvc2l0aW5nQm91bmRzLmxvY2F0
aW9uKCkpKTsKLSAgICAgICAgbV9jbGlwcGluZ0xheWVyLT5zZXRTaXplKGNsaXBwaW5nQm94LnNp
emUoKSk7Ci0gICAgICAgIG1fY2xpcHBpbmdMYXllci0+c2V0T2Zmc2V0RnJvbVJlbmRlcmVyKGNs
aXBwaW5nQm94LmxvY2F0aW9uKCkgLSBJbnRQb2ludCgpKTsKKyAgICAgICAgbV9jb250YWlubWVu
dExheWVyLT5zZXRQb3NpdGlvbihGbG9hdFBvaW50KCkgKyAoY2xpcHBpbmdCb3gubG9jYXRpb24o
KSAtIGxvY2FsQ29tcG9zaXRpbmdCb3VuZHMubG9jYXRpb24oKSkpOworICAgICAgICBtX2NvbnRh
aW5tZW50TGF5ZXItPnNldFNpemUoY2xpcHBpbmdCb3guc2l6ZSgpKTsKKyAgICAgICAgbV9jb250
YWlubWVudExheWVyLT5zZXRPZmZzZXRGcm9tUmVuZGVyZXIoY2xpcHBpbmdCb3gubG9jYXRpb24o
KSAtIEludFBvaW50KCkpOwogICAgIH0KICAgICAKICAgICBpZiAobV9tYXNrTGF5ZXIpIHsKQEAg
LTU0OSwxNSArNTY3LDE1IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGlj
c0xheWVyR2VvbWV0cnkoKQogICAgICAgICBpZiAoc3R5bGUtPmhhc1BlcnNwZWN0aXZlKCkpIHsK
ICAgICAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHQgPSBvd25pbmdMYXllcigpLT5wZXJz
cGVjdGl2ZVRyYW5zZm9ybSgpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAobV9jbGlw
cGluZ0xheWVyKSB7Ci0gICAgICAgICAgICAgICAgbV9jbGlwcGluZ0xheWVyLT5zZXRDaGlsZHJl
blRyYW5zZm9ybSh0KTsKKyAgICAgICAgICAgIGlmIChtX2NvbnRhaW5tZW50TGF5ZXIgJiYgIW1f
dXNpbmdUaWxlZENhY2hlTGF5ZXIpIHsKKyAgICAgICAgICAgICAgICBtX2NvbnRhaW5tZW50TGF5
ZXItPnNldENoaWxkcmVuVHJhbnNmb3JtKHQpOwogICAgICAgICAgICAgICAgIG1fZ3JhcGhpY3NM
YXllci0+c2V0Q2hpbGRyZW5UcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgoKSk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbV9ncmFwaGljc0xh
eWVyLT5zZXRDaGlsZHJlblRyYW5zZm9ybSh0KTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIGlmIChtX2NsaXBwaW5nTGF5ZXIpCi0gICAgICAgICAgICAgICAgbV9jbGlwcGluZ0xheWVy
LT5zZXRDaGlsZHJlblRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpKTsKKyAgICAgICAg
ICAgIGlmIChtX2NvbnRhaW5tZW50TGF5ZXIgJiYgIW1fdXNpbmdUaWxlZENhY2hlTGF5ZXIpCisg
ICAgICAgICAgICAgICAgbV9jb250YWlubWVudExheWVyLT5zZXRDaGlsZHJlblRyYW5zZm9ybShU
cmFuc2Zvcm1hdGlvbk1hdHJpeCgpKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICBtX2dyYXBoaWNzTGF5ZXItPnNldENoaWxkcmVuVHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0
cml4KCkpOwogICAgICAgICB9CkBAIC01NjksNyArNTg3LDcgQEAgdm9pZCBSZW5kZXJMYXllckJh
Y2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeSgpCiAgICAgICAgIEZsb2F0UG9pbnQg
Zm9yZWdyb3VuZFBvc2l0aW9uOwogICAgICAgICBGbG9hdFNpemUgZm9yZWdyb3VuZFNpemUgPSBu
ZXdTaXplOwogICAgICAgICBJbnRTaXplIGZvcmVncm91bmRPZmZzZXQgPSBtX2dyYXBoaWNzTGF5
ZXItPm9mZnNldEZyb21SZW5kZXJlcigpOwotICAgICAgICBpZiAobV9jbGlwcGluZ0xheWVyKSB7
CisgICAgICAgIGlmIChtX2NvbnRhaW5tZW50TGF5ZXIgJiYgIW1fdXNpbmdUaWxlZENhY2hlTGF5
ZXIpIHsKICAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgYSBjbGlwcGluZyBsYXllciAod2hpY2gg
Y2xpcHMgZGVzY2VuZGFudHMpLCB0aGVuIHRoZSBmb3JlZ3JvdW5kIGxheWVyIGlzIGEgY2hpbGQg
b2YgaXQsCiAgICAgICAgICAgICAvLyBzbyB0aGF0IGl0IGdldHMgY29ycmVjdGx5IHNvcnRlZCB3
aXRoIGNoaWxkcmVuLiBJbiB0aGF0IGNhc2UsIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBjbGlw
cGluZyBsYXllci4KICAgICAgICAgICAgIGZvcmVncm91bmRTaXplID0gRmxvYXRTaXplKGNsaXBw
aW5nQm94LnNpemUoKSk7CkBAIC02MTEsOSArNjI5LDkgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tp
bmc6OnVwZGF0ZUludGVybmFsSGllcmFyY2h5KCkKICAgICAgICAgbV9hbmNlc3RvckNsaXBwaW5n
TGF5ZXItPmFkZENoaWxkKG1fZ3JhcGhpY3NMYXllci5nZXQoKSk7CiAgICAgfQogCi0gICAgaWYg
KG1fY2xpcHBpbmdMYXllcikgewotICAgICAgICBtX2NsaXBwaW5nTGF5ZXItPnJlbW92ZUZyb21Q
YXJlbnQoKTsKLSAgICAgICAgbV9ncmFwaGljc0xheWVyLT5hZGRDaGlsZChtX2NsaXBwaW5nTGF5
ZXIuZ2V0KCkpOworICAgIGlmIChtX2NvbnRhaW5tZW50TGF5ZXIpIHsKKyAgICAgICAgbV9jb250
YWlubWVudExheWVyLT5yZW1vdmVGcm9tUGFyZW50KCk7CisgICAgICAgIG1fZ3JhcGhpY3NMYXll
ci0+YWRkQ2hpbGQobV9jb250YWlubWVudExheWVyLmdldCgpKTsKICAgICB9CiAKICAgICAvLyBU
aGUgY2xpcCBmb3IgY2hpbGQgbGF5ZXJzIGRvZXMgbm90IGluY2x1ZGUgc3BhY2UgZm9yIG92ZXJm
bG93IGNvbnRyb2xzLCBzbyB0aGV5IGV4aXN0IGFzCkBAIC02NjEsMTQgKzY3OSwxNCBAQCBib29s
IFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlQ2xpcHBpbmdMYXllcnMoYm9vbCBuZWVkc0FuY2Vz
dG9yQ2xpcCwgYm9vbCBuZWVkcwogICAgIH0KICAgICAKICAgICBpZiAobmVlZHNEZXNjZW5kYW50
Q2xpcCkgewotICAgICAgICBpZiAoIW1fY2xpcHBpbmdMYXllcikgewotICAgICAgICAgICAgbV9j
bGlwcGluZ0xheWVyID0gY3JlYXRlR3JhcGhpY3NMYXllcigiQ2hpbGQgY2xpcHBpbmcgTGF5ZXIi
KTsKLSAgICAgICAgICAgIG1fY2xpcHBpbmdMYXllci0+c2V0TWFza3NUb0JvdW5kcyh0cnVlKTsK
KyAgICAgICAgaWYgKCFtX2NvbnRhaW5tZW50TGF5ZXIgJiYgIW1fdXNpbmdUaWxlZENhY2hlTGF5
ZXIpIHsKKyAgICAgICAgICAgIG1fY29udGFpbm1lbnRMYXllciA9IGNyZWF0ZUdyYXBoaWNzTGF5
ZXIoIkNoaWxkIGNsaXBwaW5nIExheWVyIik7CisgICAgICAgICAgICBtX2NvbnRhaW5tZW50TGF5
ZXItPnNldE1hc2tzVG9Cb3VuZHModHJ1ZSk7CiAgICAgICAgICAgICBsYXllcnNDaGFuZ2VkID0g
dHJ1ZTsKICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAobV9jbGlwcGluZ0xheWVyKSB7Ci0gICAg
ICAgIG1fY2xpcHBpbmdMYXllci0+cmVtb3ZlRnJvbVBhcmVudCgpOwotICAgICAgICBtX2NsaXBw
aW5nTGF5ZXIgPSBudWxscHRyOworICAgIH0gZWxzZSBpZiAobV9jb250YWlubWVudExheWVyICYm
ICFtX3VzaW5nVGlsZWRDYWNoZUxheWVyKSB7CisgICAgICAgIG1fY29udGFpbm1lbnRMYXllci0+
cmVtb3ZlRnJvbVBhcmVudCgpOworICAgICAgICBtX2NvbnRhaW5tZW50TGF5ZXIgPSBudWxscHRy
OwogICAgICAgICBsYXllcnNDaGFuZ2VkID0gdHJ1ZTsKICAgICB9CiAgICAgCkBAIC0xNTc2LDcg
KzE1OTQsNyBAQCBkb3VibGUgUmVuZGVyTGF5ZXJCYWNraW5nOjpiYWNraW5nU3RvcmVNZW1vcnlF
c3RpbWF0ZSgpIGNvbnN0CiB7CiAgICAgZG91YmxlIGJhY2tpbmdNZW1vcnk7CiAgICAgCi0gICAg
Ly8gbV9hbmNlc3RvckNsaXBwaW5nTGF5ZXIgYW5kIG1fY2xpcHBpbmdMYXllciBhcmUganVzdCB1
c2VkIGZvciBtYXNraW5nLCBzbyBoYXZlIG5vIGJhY2tpbmcuCisgICAgLy8gbV9hbmNlc3RvckNs
aXBwaW5nTGF5ZXIgYW5kIG1fY29udGFpbm1lbnRMYXllciBhcmUganVzdCB1c2VkIGZvciBtYXNr
aW5nIG9yIGNvbnRhaW5tZW50LCBzbyBoYXZlIG5vIGJhY2tpbmcuCiAgICAgYmFja2luZ01lbW9y
eSA9IG1fZ3JhcGhpY3NMYXllci0+YmFja2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUoKTsKICAgICBp
ZiAobV9mb3JlZ3JvdW5kTGF5ZXIpCiAgICAgICAgIGJhY2tpbmdNZW1vcnkgKz0gbV9mb3JlZ3Jv
dW5kTGF5ZXItPmJhY2tpbmdTdG9yZU1lbW9yeUVzdGltYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKaW5kZXggZmUyNGJjM2ZhOGQ4N2NmNTYw
ZjcxMTQ4NjMwM2I0MGNhMzY3MDJkOC4uMGU4YjUwNWVjOGE3YWQ1ODc0ZTE2MTM3M2U5ZDlhZTdj
N2YwNGU1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuaApAQCAtNzQsOCArNzQsOCBAQCBwdWJsaWM6CiAgICAgR3JhcGhpY3NMYXllciogZ3JhcGhp
Y3NMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fZ3JhcGhpY3NMYXllci5nZXQoKTsgfQogCiAgICAg
Ly8gTGF5ZXIgdG8gY2xpcCBjaGlsZHJlbgotICAgIGJvb2wgaGFzQ2xpcHBpbmdMYXllcigpIGNv
bnN0IHsgcmV0dXJuIG1fY2xpcHBpbmdMYXllciAhPSAwOyB9Ci0gICAgR3JhcGhpY3NMYXllciog
Y2xpcHBpbmdMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fY2xpcHBpbmdMYXllci5nZXQoKTsgfQor
ICAgIGJvb2wgaGFzQ2xpcHBpbmdMYXllcigpIGNvbnN0IHsgcmV0dXJuIChtX2NvbnRhaW5tZW50
TGF5ZXIgJiYgIW1fdXNpbmdUaWxlZENhY2hlTGF5ZXIpOyB9CisgICAgR3JhcGhpY3NMYXllciog
Y2xpcHBpbmdMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fY29udGFpbm1lbnRMYXllci5nZXQoKTsg
fQogCiAgICAgLy8gTGF5ZXIgdG8gZ2V0IGNsaXBwZWQgYnkgYW5jZXN0b3IKICAgICBib29sIGhh
c0FuY2VzdG9yQ2xpcHBpbmdMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fYW5jZXN0b3JDbGlwcGlu
Z0xheWVyICE9IDA7IH0KQEAgLTg2LDcgKzg2LDcgQEAgcHVibGljOgogICAgIAogICAgIGJvb2wg
aGFzTWFza0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9tYXNrTGF5ZXIgIT0gMDsgfQogCi0gICAg
R3JhcGhpY3NMYXllciogcGFyZW50Rm9yU3VibGF5ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9jbGlw
cGluZ0xheWVyID8gbV9jbGlwcGluZ0xheWVyLmdldCgpIDogbV9ncmFwaGljc0xheWVyLmdldCgp
OyB9CisgICAgR3JhcGhpY3NMYXllciogcGFyZW50Rm9yU3VibGF5ZXJzKCkgY29uc3QgeyByZXR1
cm4gbV9jb250YWlubWVudExheWVyID8gbV9jb250YWlubWVudExheWVyLmdldCgpIDogbV9ncmFw
aGljc0xheWVyLmdldCgpOyB9CiAgICAgR3JhcGhpY3NMYXllciogY2hpbGRGb3JTdXBlcmxheWVy
cygpIGNvbnN0IHsgcmV0dXJuIG1fYW5jZXN0b3JDbGlwcGluZ0xheWVyID8gbV9hbmNlc3RvckNs
aXBwaW5nTGF5ZXIuZ2V0KCkgOiBtX2dyYXBoaWNzTGF5ZXIuZ2V0KCk7IH0KIAogICAgIC8vIFJl
bmRlckxheWVycyB3aXRoIGJhY2tpbmcgbm9ybWFsbHkgc2hvcnQtY2lyY3VpdCBwYWludExheWVy
KCkgYmVjYXVzZQpAQCAtMTY4LDcgKzE2OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVQ
cmltYXJ5R3JhcGhpY3NMYXllcigpOwogICAgIHZvaWQgZGVzdHJveUdyYXBoaWNzTGF5ZXJzKCk7
CiAgICAgCi0gICAgUGFzc093blB0cjxHcmFwaGljc0xheWVyPiBjcmVhdGVHcmFwaGljc0xheWVy
KGNvbnN0IFN0cmluZyYpOworICAgIFBhc3NPd25QdHI8R3JhcGhpY3NMYXllcj4gY3JlYXRlR3Jh
cGhpY3NMYXllcihjb25zdCBTdHJpbmcmLCBib29sIHBvdGVudGlhbGx5VGlsZUNhY2hlZExheWVy
ID0gZmFsc2UpOwogCiAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlbmRlcmVyKCkgY29uc3Qg
eyByZXR1cm4gbV9vd25pbmdMYXllci0+cmVuZGVyZXIoKTsgfQogICAgIFJlbmRlckxheWVyQ29t
cG9zaXRvciogY29tcG9zaXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fb3duaW5nTGF5ZXItPmNvbXBv
c2l0b3IoKTsgfQpAQCAtMjMwLDcgKzIzMCw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPEdyYXBo
aWNzTGF5ZXI+IG1fYW5jZXN0b3JDbGlwcGluZ0xheWVyOyAvLyBvbmx5IHVzZWQgaWYgd2UgYXJl
IGNsaXBwZWQgYnkgYW4gYW5jZXN0b3Igd2hpY2ggaXMgbm90IGEgc3RhY2tpbmcgY29udGV4dAog
ICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2dyYXBoaWNzTGF5ZXI7CiAgICAgT3duUHRyPEdy
YXBoaWNzTGF5ZXI+IG1fZm9yZWdyb3VuZExheWVyOyAgICAgICAvLyBvbmx5IHVzZWQgaW4gY2Fz
ZXMgd2hlcmUgd2UgbmVlZCB0byBkcmF3IHRoZSBmb3JlZ3JvdW5kIHNlcGFyYXRlbHkKLSAgICBP
d25QdHI8R3JhcGhpY3NMYXllcj4gbV9jbGlwcGluZ0xheWVyOyAgICAgICAgIC8vIG9ubHkgdXNl
ZCBpZiB3ZSBoYXZlIGNsaXBwaW5nIG9uIGEgc3RhY2tpbmcgY29udGV4dCwgd2l0aCBjb21wb3Np
dGluZyBjaGlsZHJlbgorICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2NvbnRhaW5tZW50TGF5
ZXI7IC8vIE9ubHkgdXNlZCBpZiB3ZSBoYXZlIGNsaXBwaW5nIG9uIGEgc3RhY2tpbmcgY29udGV4
dCB3aXRoIGNvbXBvc2l0aW5nIGNoaWxkcmVuLCBvciBpZiB0aGUgbGF5ZXIgaGFzIGEgdGlsZSBj
YWNoZS4KICAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9tYXNrTGF5ZXI7ICAgICAgICAgICAg
IC8vIG9ubHkgdXNlZCBpZiB3ZSBoYXZlIGEgbWFzawogCiAgICAgT3duUHRyPEdyYXBoaWNzTGF5
ZXI+IG1fbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyOwpAQCAtMjQyLDYgKzI0Miw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2FydGlmaWNpYWxseUluZmxhdGVkQm91bmRzOyAgICAgIC8vIGJv
dW5kcyBoYWQgdG8gYmUgbWFkZSBub24temVybyB0byBtYWtlIHRyYW5zZm9ybS1vcmlnaW4gd29y
awogICAgIGJvb2wgbV9pc01haW5GcmFtZVJlbmRlclZpZXdMYXllcjsKICAgICBib29sIG1fdXNp
bmdUaWxlZENhY2hlTGF5ZXI7CisgICAgYm9vbCBtX2NyZWF0aW5nUHJpbWFyeUdyYXBoaWNzTGF5
ZXI7CiAgICAgYm9vbCBtX3JlcXVpcmVzT3duQmFja2luZ1N0b3JlOwogI2lmIEVOQUJMRShDU1Nf
RklMVEVSUykKICAgICBib29sIG1fY2FuQ29tcG9zaXRlRmlsdGVyczsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjZjQ0OTAw
MjQ0NTBiYmEwZjFkMjRkNWQ1MWVjOTFhY2U0ZjliOWUxLi5lMmFlOTUwMDkyZWE4MzJiNDI0NTNi
Y2EwOWUyZDkxYzZjZDdjMDFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDctMDYgIERl
YW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFRpbGVkIGRyYXdpbmcgbWVh
bnMgc29tZSBlbGVtZW50cyBjYW4gZGlzYXBwZWFyIGJlaGluZCB0aGUgcGFnZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg5MDYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZ0ZXN0IHRvIG1ha2Ugc3Vy
ZSBlbGVtZW50cyBjYW4ndCBkaXNhcHBlYXIgYmVoaW5kIHRoZSB0aWxlIGNhY2hlLgorCisgICAg
ICAgICogY29tcG9zaXRpbmcvdGlsZS1jYWNoZS1tdXN0LWZsYXR0ZW4tZXhwZWN0ZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvdGlsZS1jYWNoZS1tdXN0LWZsYXR0ZW4uaHRt
bDogQWRkZWQuCisKIDIwMTItMDctMDUgIEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFtDcmFzaF0gQ2xpY2sgYW4gZWxlbWVudCB3aGljaCB3aWxsIGJlICdkaXNw
bGF5OiBub25lJyBvbiBmb2N1cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L3RpbGUtY2FjaGUtbXVzdC1mbGF0dGVuLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy90aWxlLWNhY2hlLW11c3QtZmxhdHRlbi1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM3ZDkwNmY1MTcyOTdkNzk3YzdhNzUxNmFkNmFkMDc2ZDgxZTUwMmQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy90aWxlLWNhY2hlLW11c3QtZmxhdHRlbi1leHBl
Y3RlZC5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitkaXYgeworICB3aWR0aDogOTZweDsKKyAgaGVp
Z2h0OiA5NnB4OworICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgbWFyZ2luOiAxMHB4Owor
fQorCisjb25lIHsKKyAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMXB4KTsKK30KKwor
I3R3byB7CisgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDFweCk7Cit9CisKKzwvc3R5
bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorICA8IS0tIGJvdGggc2hvdWxkIGJlIHZpc2libGUgLSB0
d28gZ3JlZW4gc3F1YXJlcyBpbiB0aGUgcGFnZSAtLT4KKyAgPGRpdiBpZD0ib25lIj48L2Rpdj4K
KyAgPGRpdiBpZD0idHdvIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL3RpbGUtY2FjaGUtbXVzdC1mbGF0dGVuLmh0bWwgYi9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy90aWxlLWNhY2hlLW11c3QtZmxhdHRlbi5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQ3YTlhMTAwZTI0YTAxNmQwNjc4YjUxYjk1MjU1MTIxYzU5M2U1ODYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy90aWxlLWNhY2hlLW11c3QtZmxhdHRlbi5o
dG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitkaXYgeworICB3aWR0aDogOTZweDsKKyAgaGVpZ2h0OiA5
NnB4OworICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgbWFyZ2luOiAxMHB4OworfQorCisj
b25lIHsKKyAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTFweCk7IC8qIHRoaXMgbW92
ZXMgdGhlIGVsZW1lbnQgImJlaGluZCIgdGhlIHBhZ2UgKi8KK30KKworI3R3byB7CisgIC13ZWJr
aXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDFweCk7Cit9CisKKzwvc3R5bGU+Cis8L2hlYWQ+CisK
Kzxib2R5PgorICA8IS0tIGJvdGggc2hvdWxkIGJlIHZpc2libGUgLSB0d28gZ3JlZW4gc3F1YXJl
cyBpbiB0aGUgcGFnZSAtLT4KKyAgPGRpdiBpZD0ib25lIj48L2Rpdj4KKyAgPGRpdiBpZD0idHdv
Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151167</attachid>
            <date>2012-07-08 17:04:18 -0700</date>
            <delta_ts>2012-07-09 10:30:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88906-20120709100415.patch</filename>
            <type>text/plain</type>
            <size>17169</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMDUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTk0NTEwNjIwZDdlNzg4
NWQ0MDY2YWM1NGVkOWE3YzFkNTEyZTYwNi4uMTdmZTgzNWM3ZDE2N2JkZWFkOGE0YTU3M2ViZDUy
YmQwOTZhOGQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEyLTA3LTA4ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBUaWxlZCBkcmF3aW5nIG1lYW5z
IHNvbWUgZWxlbWVudHMgY2FuIGRpc2FwcGVhciBiZWhpbmQgdGhlIHBhZ2UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4OTA2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGNvbXBvc2l0aW5nIGxheWVy
cyBpbiB0aGUgdGlsZSBjYWNoZSBjb3VsZCBiZWNvbWUgc2libGluZ3MKKyAgICAgICAgb2YgdGhl
IGNvbXBvc2l0aW5nIGxheWVycyBmb3IgcGFnZSBlbGVtZW50cy4gVGhpcyBtZWFudCB0aGF0IGlu
CisgICAgICAgIHNvbWUgM2QgdHJhbnNmb3JtcywgdGhlIGVsZW1lbnRzIGNvdWxkIGRpc2FwcGVh
ciBiZWhpbmQgdGhlCisgICAgICAgIHBhZ2UgYmFja2dyb3VuZCAod2hpY2ggaXMgcmVuZGVyZWQg
aW50byB0aGUgdGlsZSBjYWNoZSkuIEZpeAorICAgICAgICB0aGlzIGJ5IGluc2VydGluZyBhIGZs
YXR0ZW5pbmcgbGF5ZXIgYmV0d2VlbiB0aGUgdGlsZSBjYWNoZQorICAgICAgICBhbmQgdGhlIHBh
Z2UsIGVuc3VyaW5nIHRoYXQgdGhlIGNhY2hlIHdpbGwgYWx3YXlzIGJlIHJlbmRlcmVkCisgICAg
ICAgIGZpcnN0LiBJIHdhcyBhYmxlIHRvIHJldXNlIHRoZSBjbGlwcGluZyBsYXllciBmb3IgdGhp
cywgYmVjYXVzZQorICAgICAgICB0aGUgdGlsZSBjYWNoZSBpcyBhdHRhY2hlZCB0byB0aGUgUmVu
ZGVyVmlldywgc28gdGhlcmUgc2hvdWxkIG5ldmVyCisgICAgICAgIGJlIGEgY2FzZSB3aGVyZSB3
ZSBoYXZlIGJvdGggYSBjbGlwcGluZyBsYXllciBhbmQgdGlsZXMuCisKKyAgICAgICAgVGhlIHVu
Zm9ydHVuYXRlIHBhcnQgb2YgdGhpcyBjb2RlIGlzIHRoZSB0ZW1wb3Jhcnkgc3RhdGUgdmFyaWFi
bGUKKyAgICAgICAgdGhhdCB3cmFwcyB0aGUgY2FsbCB0byBHcmFwaGljc0xheWVyOjpjcmVhdGUu
IEJlY2F1c2UgdGhhdCBtZXRob2QKKyAgICAgICAgY2FsbHMgYmFjayBpbnRvIHRoZSBvYmplY3Qs
IHdlIG5lZWQgdG8gbWFrZSBzdXJlIHdlIGRvbid0IGNyZWF0ZQorICAgICAgICBhbm90aGVyIHRp
bGUgY2FjaGUuCisKKyAgICAgICAgQWxzbyBhZGRlZCBzb21lIG9idmlvdXMgbmFtZXMgdG8gdGhl
IHRpbGUgY2FjaGUgbGF5ZXJzIHRvCisgICAgICAgIGhlbHAgd2l0aCBkZWJ1Z2dpbmcuCisKKyAg
ICAgICAgVGVzdDogY29tcG9zaXRpbmcvdGlsZS1jYWNoZS1tdXN0LWZsYXR0ZW4uaHRtbAorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNoZS5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlRpbGVDYWNoZTo6VGlsZUNhY2hlKTogZ2l2ZSB0aGUgdGlsZSBob3N0IGxheWVy
IGEgbmFtZS4KKyAgICAgICAgKFdlYkNvcmU6OlRpbGVDYWNoZTo6Y3JlYXRlVGlsZUxheWVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvV2ViVGlsZUNhY2hlTGF5ZXIubW06
CisgICAgICAgIChXZWJDb3JlKTogZ2l2ZSBlYWNoIHRpbGUgbGF5ZXIgYSBuYW1lLgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnNob3VsZFVzZVRpbGVDYWNo
ZSk6IGNoZWNrIGlmIHdlJ3JlIGluIHRoZSBtaWRkbGUKKyAgICAgICAgb2YgY3JlYXRpbmcgdGhl
IHByaW1hcnkgZ3JhcGhpY3MgbGF5ZXIgYmVmb3JlIGFuc3dlcmluZy4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyQmFja2luZzo6Y3JlYXRlUHJpbWFyeUdyYXBoaWNzTGF5ZXIpOiB3cmFw
IG91ciBjYWxsIHRvCisgICAgICAgIGNyZWF0ZUdyYXBoaWNzTGF5ZXIgd2l0aCBhIG1lc3NhZ2Ug
dG8gaW5kaWNhdGUgd2UgYXJlIG1ha2luZyB0aGUgbGF5ZXIgdGhhdCBzaG91bGQKKyAgICAgICAg
Z2V0IGEgdGlsZSBjYWNoZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6
ZGVzdHJveUdyYXBoaWNzTGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFj
a2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckNvbmZpZ3VyYXRpb24pOiBuZWVkcyB0byBtYWtlCisg
ICAgICAgIHN1cmUgdGhlIGZsYXR0ZW5pbmcgbGF5ZXIgaXMgaW4gdGhlIHRyZWUuCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRy
eSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUludGVybmFs
SGllcmFyY2h5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRl
Q2xpcHBpbmdMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpi
YWNraW5nU3RvcmVNZW1vcnlFc3RpbWF0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5oOiByZW5hbWUgbV9jbGlwcGluZ0xheWVyIHRvIG1fY29udGFpbm1lbnRMYXll
cgorICAgICAgICBiZWNhdXNlIGl0IGNhbiBub3cgZWl0aGVyIGJlIHRoZSBjbGlwIG9yIHRoZSB0
aWxlIGNhY2hlIGZsYXR0ZW5lci4gQWxzbworICAgICAgICBhIG5ldyBzdGF0ZSBwcm9wZXJ0eSB1
c2VkIHdoZW4gY3JlYXRpbmcgdGhlIG1haW4gZ3JhcGhpY3MgbGF5ZXIuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMYXllckJhY2tpbmc6Omhhc0NsaXBwaW5nTGF5ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpjbGlwcGluZ0xheWVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyQmFja2luZzo6cGFyZW50Rm9yU3VibGF5ZXJzKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6aGFzVGlsZUNhY2hlRmxhdHRlbmluZ0xheWVyKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dGlsZUNhY2hlRmxhdHRlbmlu
Z0xheWVyKToKKyAgICAgICAgKFJlbmRlckxheWVyQmFja2luZyk6CisKIDIwMTItMDctMDYgIExh
dXJvIE5ldG8gIDxsYXVyby5uZXRvQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgW1F0XSBBdm9p
ZCBkZWVwIGNvcHkgb2YgUUltYWdlIGluIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1Rp
bGVDYWNoZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxl
Q2FjaGUubW0KaW5kZXggNTUwMjEwMjdkMWU5ZWJmNWU0MmQ2Njk5ZDE3ZDQzM2VlMWQxOTc3Ny4u
NTlkOGIxZjliMzA4NjVlMTM3YzU4MGI5YzliNGZlOTA1ZGRiNzNlYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNoZS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNhY2hlLm1tCkBAIC02
NCw2ICs2NCw5IEBAIFRpbGVDYWNoZTo6VGlsZUNhY2hlKFdlYlRpbGVDYWNoZUxheWVyKiB0aWxl
Q2FjaGVMYXllciwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUpCiAgICAgW0NBVHJhbnNhY3Rpb24g
YmVnaW5dOwogICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2FibGVBY3Rpb25zOllFU107CiAgICAg
W21fdGlsZUNhY2hlTGF5ZXIgYWRkU3VibGF5ZXI6bV90aWxlQ29udGFpbmVyTGF5ZXIuZ2V0KCld
OworI2lmbmRlZiBOREVCVUcKKyAgICBbbV90aWxlQ29udGFpbmVyTGF5ZXIuZ2V0KCkgc2V0TmFt
ZTpAIlRpbGVDYWNoZSBDb250YWluZXIgTGF5ZXIiXTsKKyNlbmRpZgogICAgIFtDQVRyYW5zYWN0
aW9uIGNvbW1pdF07CiB9CiAKQEAgLTM5NCw2ICszOTcsOSBAQCBSZXRhaW5QdHI8V2ViVGlsZUxh
eWVyPiBUaWxlQ2FjaGU6OmNyZWF0ZVRpbGVMYXllcihjb25zdCBJbnRSZWN0JiB0aWxlUmVjdCkK
ICAgICBbbGF5ZXIuZ2V0KCkgc2V0Qm9yZGVyV2lkdGg6bV90aWxlRGVidWdCb3JkZXJXaWR0aF07
CiAgICAgW2xheWVyLmdldCgpIHNldEVkZ2VBbnRpYWxpYXNpbmdNYXNrOjBdOwogICAgIFtsYXll
ci5nZXQoKSBzZXRPcGFxdWU6WUVTXTsKKyNpZm5kZWYgTkRFQlVHCisgICAgW2xheWVyLmdldCgp
IHNldE5hbWU6QCJUaWxlIl07CisjZW5kaWYKIAogI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkKICAgICBbbGF5ZXIuZ2V0KCkgc2V0Q29udGVudHNTY2FsZTptX2RldmljZVNj
YWxlRmFjdG9yXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL21hYy9XZWJUaWxlQ2FjaGVMYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL21hYy9XZWJUaWxlQ2FjaGVMYXllci5tbQppbmRleCBkM2UyNzI3NGJmZGIwZmIw
OTRjMGU2OGMwYmI3YjcyODFjNDBkMTJiLi43MmFlNmZiZDRhYjNlZWE5YjYxMzBiNjNjODhjYjgz
MTg3YmQyOWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9tYWMvV2ViVGlsZUNhY2hlTGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvbWFjL1dlYlRpbGVDYWNoZUxheWVyLm1tCkBAIC00Miw3ICs0Miw5IEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiAgICAgLy8gRklYTUU6IFRoZSB0aWxlIHNpemUgc2hv
dWxkIGJlIGNvbmZpZ3VyYWJsZS4KICAgICBfdGlsZUNhY2hlID0gVGlsZUNhY2hlOjpjcmVhdGUo
c2VsZiwgSW50U2l6ZSg1MTIsIDUxMikpOwotCisjaWZuZGVmIE5ERUJVRworICAgIFtzZWxmIHNl
dE5hbWU6QCJXZWJUaWxlQ2FjaGVMYXllciJdOworI2VuZGlmCiAgICAgcmV0dXJuIHNlbGY7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAK
aW5kZXggMWI2ZWExOTY3YmM3NjJmYWQwNGI1NDYwYjA1ZWMyYTY0OGJhOWFlYS4uZWUwYTQ0MmY3
NGRlYzA5NzkzNzgzZmJmNmFkMGNmMDU2ODUwZjhkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTkwLDYgKzkwLDggQEAgc3RhdGlj
IGlubGluZSBib29sIGlzQWNjZWxlcmF0ZWRDYW52YXMoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjptX2NyZWF0
aW5nUHJpbWFyeUdyYXBoaWNzTGF5ZXIgPSBmYWxzZTsKKwogUmVuZGVyTGF5ZXJCYWNraW5nOjpS
ZW5kZXJMYXllckJhY2tpbmcoUmVuZGVyTGF5ZXIqIGxheWVyKQogICAgIDogbV9vd25pbmdMYXll
cihsYXllcikKICAgICAsIG1fYXJ0aWZpY2lhbGx5SW5mbGF0ZWRCb3VuZHMoZmFsc2UpCkBAIC0x
NTQsNyArMTU2LDcgQEAgUGFzc093blB0cjxHcmFwaGljc0xheWVyPiBSZW5kZXJMYXllckJhY2tp
bmc6OmNyZWF0ZUdyYXBoaWNzTGF5ZXIoY29uc3QgU3RyaW5nJgogCiBib29sIFJlbmRlckxheWVy
QmFja2luZzo6c2hvdWxkVXNlVGlsZUNhY2hlKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAog
ewotICAgIHJldHVybiBtX3VzaW5nVGlsZWRDYWNoZUxheWVyOworICAgIHJldHVybiBtX3VzaW5n
VGlsZWRDYWNoZUxheWVyICYmIG1fY3JlYXRpbmdQcmltYXJ5R3JhcGhpY3NMYXllcjsKIH0KIAog
dm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OmNyZWF0ZVByaW1hcnlHcmFwaGljc0xheWVyKCkKQEAg
LTE2Myw3ICsxNjUsMTggQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OmNyZWF0ZVByaW1hcnlH
cmFwaGljc0xheWVyKCkKICNpZm5kZWYgTkRFQlVHCiAgICAgbGF5ZXJOYW1lID0gbmFtZUZvckxh
eWVyKCk7CiAjZW5kaWYKKyAgICAKKyAgICAvLyBUaGUgY2FsbCB0byBjcmVhdGVHcmFwaGljc0xh
eWVyIGVuZHMgY2FsbGluZyBiYWNrIGludG8gaGVyZSBhcworICAgIC8vIGEgR3JhcGhpY3NMYXll
ckNsaWVudCB0byBhc2sgaWYgaXQgc2hvdWxkVXNlVGlsZUNhY2hlKCkuIFdlIG9ubHkgd2FudAor
ICAgIC8vIHRoZSB0aWxlIGNhY2hlIG9uIG91ciBtYWluIGxheWVyLiBUaGlzIGlzIHByZXR0eSB1
Z2x5LCBidXQgc2F2ZXMgdXMgZnJvbQorICAgIC8vIGV4cG9zaW5nIHRoZSBBUEkgdG8gYWxsIGNs
aWVudHMuCisKKyAgICBtX2NyZWF0aW5nUHJpbWFyeUdyYXBoaWNzTGF5ZXIgPSB0cnVlOwogICAg
IG1fZ3JhcGhpY3NMYXllciA9IGNyZWF0ZUdyYXBoaWNzTGF5ZXIobGF5ZXJOYW1lKTsKKyAgICBt
X2NyZWF0aW5nUHJpbWFyeUdyYXBoaWNzTGF5ZXIgPSBmYWxzZTsKKworICAgIGlmIChtX3VzaW5n
VGlsZWRDYWNoZUxheWVyKQorICAgICAgICBtX2NvbnRhaW5tZW50TGF5ZXIgPSBjcmVhdGVHcmFw
aGljc0xheWVyKCJUaWxlQ2FjaGUgRmxhdHRlbmluZyBMYXllciIpOwogCiAgICAgaWYgKG1faXNN
YWluRnJhbWVSZW5kZXJWaWV3TGF5ZXIpIHsKICAgICAgICAgYm9vbCBpc1RyYW5zcGFyZW50ID0g
ZmFsc2U7CkBAIC0xOTYsNyArMjA5LDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OmRlc3Ry
b3lHcmFwaGljc0xheWVycygpCiAKICAgICBtX2dyYXBoaWNzTGF5ZXIgPSBudWxscHRyOwogICAg
IG1fZm9yZWdyb3VuZExheWVyID0gbnVsbHB0cjsKLSAgICBtX2NsaXBwaW5nTGF5ZXIgPSBudWxs
cHRyOworICAgIG1fY29udGFpbm1lbnRMYXllciA9IG51bGxwdHI7CiAgICAgbV9tYXNrTGF5ZXIg
PSBudWxscHRyOwogfQogCkBAIC0zNDksNiArMzYyLDExIEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNr
aW5nOjp1cGRhdGVHcmFwaGljc0xheWVyQ29uZmlndXJhdGlvbigpCiAgICAgaWYgKGxheWVyQ29u
ZmlnQ2hhbmdlZCkKICAgICAgICAgdXBkYXRlSW50ZXJuYWxIaWVyYXJjaHkoKTsKIAorICAgIGlm
IChHcmFwaGljc0xheWVyKiBmbGF0dGVuaW5nTGF5ZXIgPSB0aWxlQ2FjaGVGbGF0dGVuaW5nTGF5
ZXIoKSkgeworICAgICAgICBmbGF0dGVuaW5nTGF5ZXItPnJlbW92ZUZyb21QYXJlbnQoKTsKKyAg
ICAgICAgbV9ncmFwaGljc0xheWVyLT5hZGRDaGlsZChmbGF0dGVuaW5nTGF5ZXIpOworICAgIH0K
KwogICAgIGlmICh1cGRhdGVNYXNrTGF5ZXIocmVuZGVyZXItPmhhc01hc2soKSkpCiAgICAgICAg
IG1fZ3JhcGhpY3NMYXllci0+c2V0TWFza0xheWVyKG1fbWFza0xheWVyLmdldCgpKTsKIApAQCAt
NTE1LDExICs1MzMsMTEgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNz
TGF5ZXJHZW9tZXRyeSgpCiAKICAgICAvLyBJZiB3ZSBoYXZlIGEgbGF5ZXIgdGhhdCBjbGlwcyBj
aGlsZHJlbiwgcG9zaXRpb24gaXQuCiAgICAgSW50UmVjdCBjbGlwcGluZ0JveDsKLSAgICBpZiAo
bV9jbGlwcGluZ0xheWVyKSB7CisgICAgaWYgKEdyYXBoaWNzTGF5ZXIqIGNsaXBMYXllciA9IGNs
aXBwaW5nTGF5ZXIoKSkgewogICAgICAgICBjbGlwcGluZ0JveCA9IGNsaXBCb3godG9SZW5kZXJC
b3gocmVuZGVyZXIoKSkpOwotICAgICAgICBtX2NsaXBwaW5nTGF5ZXItPnNldFBvc2l0aW9uKEZs
b2F0UG9pbnQoKSArIChjbGlwcGluZ0JveC5sb2NhdGlvbigpIC0gbG9jYWxDb21wb3NpdGluZ0Jv
dW5kcy5sb2NhdGlvbigpKSk7Ci0gICAgICAgIG1fY2xpcHBpbmdMYXllci0+c2V0U2l6ZShjbGlw
cGluZ0JveC5zaXplKCkpOwotICAgICAgICBtX2NsaXBwaW5nTGF5ZXItPnNldE9mZnNldEZyb21S
ZW5kZXJlcihjbGlwcGluZ0JveC5sb2NhdGlvbigpIC0gSW50UG9pbnQoKSk7CisgICAgICAgIGNs
aXBMYXllci0+c2V0UG9zaXRpb24oRmxvYXRQb2ludCgpICsgKGNsaXBwaW5nQm94LmxvY2F0aW9u
KCkgLSBsb2NhbENvbXBvc2l0aW5nQm91bmRzLmxvY2F0aW9uKCkpKTsKKyAgICAgICAgY2xpcExh
eWVyLT5zZXRTaXplKGNsaXBwaW5nQm94LnNpemUoKSk7CisgICAgICAgIGNsaXBMYXllci0+c2V0
T2Zmc2V0RnJvbVJlbmRlcmVyKGNsaXBwaW5nQm94LmxvY2F0aW9uKCkgLSBJbnRQb2ludCgpKTsK
ICAgICB9CiAgICAgCiAgICAgaWYgKG1fbWFza0xheWVyKSB7CkBAIC01NDYsMTggKzU2NCwxOSBA
QCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckdlb21ldHJ5KCkK
ICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRBbmNob3JQb2ludChhbmNob3IpOwogCiAgICAg
ICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IHJlbmRlcmVyKCktPnN0eWxlKCk7CisgICAgICAgIEdy
YXBoaWNzTGF5ZXIqIGNsaXBMYXllciA9IGNsaXBwaW5nTGF5ZXIoKTsKICAgICAgICAgaWYgKHN0
eWxlLT5oYXNQZXJzcGVjdGl2ZSgpKSB7CiAgICAgICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCB0ID0gb3duaW5nTGF5ZXIoKS0+cGVyc3BlY3RpdmVUcmFuc2Zvcm0oKTsKICAgICAgICAgICAg
IAotICAgICAgICAgICAgaWYgKG1fY2xpcHBpbmdMYXllcikgewotICAgICAgICAgICAgICAgIG1f
Y2xpcHBpbmdMYXllci0+c2V0Q2hpbGRyZW5UcmFuc2Zvcm0odCk7CisgICAgICAgICAgICBpZiAo
Y2xpcExheWVyKSB7CisgICAgICAgICAgICAgICAgY2xpcExheWVyLT5zZXRDaGlsZHJlblRyYW5z
Zm9ybSh0KTsKICAgICAgICAgICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENoaWxkcmVuVHJh
bnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4KCkpOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q2hpbGRyZW5UcmFu
c2Zvcm0odCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAobV9jbGlwcGluZ0xh
eWVyKQotICAgICAgICAgICAgICAgIG1fY2xpcHBpbmdMYXllci0+c2V0Q2hpbGRyZW5UcmFuc2Zv
cm0oVHJhbnNmb3JtYXRpb25NYXRyaXgoKSk7CisgICAgICAgICAgICBpZiAoY2xpcExheWVyKQor
ICAgICAgICAgICAgICAgIGNsaXBMYXllci0+c2V0Q2hpbGRyZW5UcmFuc2Zvcm0oVHJhbnNmb3Jt
YXRpb25NYXRyaXgoKSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbV9ncmFw
aGljc0xheWVyLT5zZXRDaGlsZHJlblRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpKTsK
ICAgICAgICAgfQpAQCAtNTY5LDcgKzU4OCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1
cGRhdGVHcmFwaGljc0xheWVyR2VvbWV0cnkoKQogICAgICAgICBGbG9hdFBvaW50IGZvcmVncm91
bmRQb3NpdGlvbjsKICAgICAgICAgRmxvYXRTaXplIGZvcmVncm91bmRTaXplID0gbmV3U2l6ZTsK
ICAgICAgICAgSW50U2l6ZSBmb3JlZ3JvdW5kT2Zmc2V0ID0gbV9ncmFwaGljc0xheWVyLT5vZmZz
ZXRGcm9tUmVuZGVyZXIoKTsKLSAgICAgICAgaWYgKG1fY2xpcHBpbmdMYXllcikgeworICAgICAg
ICBpZiAoaGFzQ2xpcHBpbmdMYXllcigpKSB7CiAgICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIGEg
Y2xpcHBpbmcgbGF5ZXIgKHdoaWNoIGNsaXBzIGRlc2NlbmRhbnRzKSwgdGhlbiB0aGUgZm9yZWdy
b3VuZCBsYXllciBpcyBhIGNoaWxkIG9mIGl0LAogICAgICAgICAgICAgLy8gc28gdGhhdCBpdCBn
ZXRzIGNvcnJlY3RseSBzb3J0ZWQgd2l0aCBjaGlsZHJlbi4gSW4gdGhhdCBjYXNlLCBwb3NpdGlv
biByZWxhdGl2ZSB0byB0aGUgY2xpcHBpbmcgbGF5ZXIuCiAgICAgICAgICAgICBmb3JlZ3JvdW5k
U2l6ZSA9IEZsb2F0U2l6ZShjbGlwcGluZ0JveC5zaXplKCkpOwpAQCAtNjExLDkgKzYzMCw5IEBA
IHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVJbnRlcm5hbEhpZXJhcmNoeSgpCiAgICAg
ICAgIG1fYW5jZXN0b3JDbGlwcGluZ0xheWVyLT5hZGRDaGlsZChtX2dyYXBoaWNzTGF5ZXIuZ2V0
KCkpOwogICAgIH0KIAotICAgIGlmIChtX2NsaXBwaW5nTGF5ZXIpIHsKLSAgICAgICAgbV9jbGlw
cGluZ0xheWVyLT5yZW1vdmVGcm9tUGFyZW50KCk7Ci0gICAgICAgIG1fZ3JhcGhpY3NMYXllci0+
YWRkQ2hpbGQobV9jbGlwcGluZ0xheWVyLmdldCgpKTsKKyAgICBpZiAobV9jb250YWlubWVudExh
eWVyKSB7CisgICAgICAgIG1fY29udGFpbm1lbnRMYXllci0+cmVtb3ZlRnJvbVBhcmVudCgpOwor
ICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPmFkZENoaWxkKG1fY29udGFpbm1lbnRMYXllci5nZXQo
KSk7CiAgICAgfQogCiAgICAgLy8gVGhlIGNsaXAgZm9yIGNoaWxkIGxheWVycyBkb2VzIG5vdCBp
bmNsdWRlIHNwYWNlIGZvciBvdmVyZmxvdyBjb250cm9scywgc28gdGhleSBleGlzdCBhcwpAQCAt
NjYxLDE0ICs2ODAsMTQgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUNsaXBwaW5n
TGF5ZXJzKGJvb2wgbmVlZHNBbmNlc3RvckNsaXAsIGJvb2wgbmVlZHMKICAgICB9CiAgICAgCiAg
ICAgaWYgKG5lZWRzRGVzY2VuZGFudENsaXApIHsKLSAgICAgICAgaWYgKCFtX2NsaXBwaW5nTGF5
ZXIpIHsKLSAgICAgICAgICAgIG1fY2xpcHBpbmdMYXllciA9IGNyZWF0ZUdyYXBoaWNzTGF5ZXIo
IkNoaWxkIGNsaXBwaW5nIExheWVyIik7Ci0gICAgICAgICAgICBtX2NsaXBwaW5nTGF5ZXItPnNl
dE1hc2tzVG9Cb3VuZHModHJ1ZSk7CisgICAgICAgIGlmICghbV9jb250YWlubWVudExheWVyICYm
ICFtX3VzaW5nVGlsZWRDYWNoZUxheWVyKSB7CisgICAgICAgICAgICBtX2NvbnRhaW5tZW50TGF5
ZXIgPSBjcmVhdGVHcmFwaGljc0xheWVyKCJDaGlsZCBjbGlwcGluZyBMYXllciIpOworICAgICAg
ICAgICAgbV9jb250YWlubWVudExheWVyLT5zZXRNYXNrc1RvQm91bmRzKHRydWUpOwogICAgICAg
ICAgICAgbGF5ZXJzQ2hhbmdlZCA9IHRydWU7CiAgICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKG1f
Y2xpcHBpbmdMYXllcikgewotICAgICAgICBtX2NsaXBwaW5nTGF5ZXItPnJlbW92ZUZyb21QYXJl
bnQoKTsKLSAgICAgICAgbV9jbGlwcGluZ0xheWVyID0gbnVsbHB0cjsKKyAgICB9IGVsc2UgaWYg
KGhhc0NsaXBwaW5nTGF5ZXIoKSkgeworICAgICAgICBtX2NvbnRhaW5tZW50TGF5ZXItPnJlbW92
ZUZyb21QYXJlbnQoKTsKKyAgICAgICAgbV9jb250YWlubWVudExheWVyID0gbnVsbHB0cjsKICAg
ICAgICAgbGF5ZXJzQ2hhbmdlZCA9IHRydWU7CiAgICAgfQogICAgIApAQCAtMTU3Niw3ICsxNTk1
LDcgQEAgZG91YmxlIFJlbmRlckxheWVyQmFja2luZzo6YmFja2luZ1N0b3JlTWVtb3J5RXN0aW1h
dGUoKSBjb25zdAogewogICAgIGRvdWJsZSBiYWNraW5nTWVtb3J5OwogICAgIAotICAgIC8vIG1f
YW5jZXN0b3JDbGlwcGluZ0xheWVyIGFuZCBtX2NsaXBwaW5nTGF5ZXIgYXJlIGp1c3QgdXNlZCBm
b3IgbWFza2luZywgc28gaGF2ZSBubyBiYWNraW5nLgorICAgIC8vIG1fYW5jZXN0b3JDbGlwcGlu
Z0xheWVyIGFuZCBtX2NvbnRhaW5tZW50TGF5ZXIgYXJlIGp1c3QgdXNlZCBmb3IgbWFza2luZyBv
ciBjb250YWlubWVudCwgc28gaGF2ZSBubyBiYWNraW5nLgogICAgIGJhY2tpbmdNZW1vcnkgPSBt
X2dyYXBoaWNzTGF5ZXItPmJhY2tpbmdTdG9yZU1lbW9yeUVzdGltYXRlKCk7CiAgICAgaWYgKG1f
Zm9yZWdyb3VuZExheWVyKQogICAgICAgICBiYWNraW5nTWVtb3J5ICs9IG1fZm9yZWdyb3VuZExh
eWVyLT5iYWNraW5nU3RvcmVNZW1vcnlFc3RpbWF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4IGZlMjRiYzNmYThkODdjZjU2MGY3MTE0
ODYzMDNiNDBjYTM2NzAyZDguLjYyMmMzOGM4NTE4YmMwZGFhZDRmMzQ3Y2M2MDc1ZTRlNTA3OWZk
NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgK
QEAgLTc0LDggKzc0LDggQEAgcHVibGljOgogICAgIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5
ZXIoKSBjb25zdCB7IHJldHVybiBtX2dyYXBoaWNzTGF5ZXIuZ2V0KCk7IH0KIAogICAgIC8vIExh
eWVyIHRvIGNsaXAgY2hpbGRyZW4KLSAgICBib29sIGhhc0NsaXBwaW5nTGF5ZXIoKSBjb25zdCB7
IHJldHVybiBtX2NsaXBwaW5nTGF5ZXIgIT0gMDsgfQotICAgIEdyYXBoaWNzTGF5ZXIqIGNsaXBw
aW5nTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2NsaXBwaW5nTGF5ZXIuZ2V0KCk7IH0KKyAgICBi
b29sIGhhc0NsaXBwaW5nTGF5ZXIoKSBjb25zdCB7IHJldHVybiAobV9jb250YWlubWVudExheWVy
ICYmICFtX3VzaW5nVGlsZWRDYWNoZUxheWVyKTsgfQorICAgIEdyYXBoaWNzTGF5ZXIqIGNsaXBw
aW5nTGF5ZXIoKSBjb25zdCB7IHJldHVybiAhbV91c2luZ1RpbGVkQ2FjaGVMYXllciA/IG1fY29u
dGFpbm1lbnRMYXllci5nZXQoKSA6IDA7IH0KIAogICAgIC8vIExheWVyIHRvIGdldCBjbGlwcGVk
IGJ5IGFuY2VzdG9yCiAgICAgYm9vbCBoYXNBbmNlc3RvckNsaXBwaW5nTGF5ZXIoKSBjb25zdCB7
IHJldHVybiBtX2FuY2VzdG9yQ2xpcHBpbmdMYXllciAhPSAwOyB9CkBAIC04Niw3ICs4Niw3IEBA
IHB1YmxpYzoKICAgICAKICAgICBib29sIGhhc01hc2tMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1f
bWFza0xheWVyICE9IDA7IH0KIAotICAgIEdyYXBoaWNzTGF5ZXIqIHBhcmVudEZvclN1YmxheWVy
cygpIGNvbnN0IHsgcmV0dXJuIG1fY2xpcHBpbmdMYXllciA/IG1fY2xpcHBpbmdMYXllci5nZXQo
KSA6IG1fZ3JhcGhpY3NMYXllci5nZXQoKTsgfQorICAgIEdyYXBoaWNzTGF5ZXIqIHBhcmVudEZv
clN1YmxheWVycygpIGNvbnN0IHsgcmV0dXJuIG1fY29udGFpbm1lbnRMYXllciA/IG1fY29udGFp
bm1lbnRMYXllci5nZXQoKSA6IG1fZ3JhcGhpY3NMYXllci5nZXQoKTsgfQogICAgIEdyYXBoaWNz
TGF5ZXIqIGNoaWxkRm9yU3VwZXJsYXllcnMoKSBjb25zdCB7IHJldHVybiBtX2FuY2VzdG9yQ2xp
cHBpbmdMYXllciA/IG1fYW5jZXN0b3JDbGlwcGluZ0xheWVyLmdldCgpIDogbV9ncmFwaGljc0xh
eWVyLmdldCgpOyB9CiAKICAgICAvLyBSZW5kZXJMYXllcnMgd2l0aCBiYWNraW5nIG5vcm1hbGx5
IHNob3J0LWNpcmN1aXQgcGFpbnRMYXllcigpIGJlY2F1c2UKQEAgLTIyMCw2ICsyMjAsOSBAQCBw
cml2YXRlOgogCiAgICAgYm9vbCBzaG91bGRDbGlwQ29tcG9zaXRlZEJvdW5kcygpIGNvbnN0Owog
CisgICAgYm9vbCBoYXNUaWxlQ2FjaGVGbGF0dGVuaW5nTGF5ZXIoKSBjb25zdCB7IHJldHVybiAo
bV9jb250YWlubWVudExheWVyICYmIG1fdXNpbmdUaWxlZENhY2hlTGF5ZXIpOyB9CisgICAgR3Jh
cGhpY3NMYXllciogdGlsZUNhY2hlRmxhdHRlbmluZ0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV91
c2luZ1RpbGVkQ2FjaGVMYXllciA/IG1fY29udGFpbm1lbnRMYXllci5nZXQoKSA6IDA7IH0KKwog
ICAgIHZvaWQgcGFpbnRJbnRvTGF5ZXIoUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgR3JhcGhpY3ND
b250ZXh0KiwgY29uc3QgSW50UmVjdCYgcGFpbnREaXJ0eVJlY3QsIFBhaW50QmVoYXZpb3IsIEdy
YXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBSZW5kZXJPYmplY3QqIHBhaW50aW5nUm9vdCk7CiAK
ICAgICBzdGF0aWMgQ1NTUHJvcGVydHlJRCBncmFwaGljc0xheWVyVG9DU1NQcm9wZXJ0eShBbmlt
YXRlZFByb3BlcnR5SUQpOwpAQCAtMjMwLDcgKzIzMyw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRy
PEdyYXBoaWNzTGF5ZXI+IG1fYW5jZXN0b3JDbGlwcGluZ0xheWVyOyAvLyBvbmx5IHVzZWQgaWYg
d2UgYXJlIGNsaXBwZWQgYnkgYW4gYW5jZXN0b3Igd2hpY2ggaXMgbm90IGEgc3RhY2tpbmcgY29u
dGV4dAogICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2dyYXBoaWNzTGF5ZXI7CiAgICAgT3du
UHRyPEdyYXBoaWNzTGF5ZXI+IG1fZm9yZWdyb3VuZExheWVyOyAgICAgICAvLyBvbmx5IHVzZWQg
aW4gY2FzZXMgd2hlcmUgd2UgbmVlZCB0byBkcmF3IHRoZSBmb3JlZ3JvdW5kIHNlcGFyYXRlbHkK
LSAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9jbGlwcGluZ0xheWVyOyAgICAgICAgIC8vIG9u
bHkgdXNlZCBpZiB3ZSBoYXZlIGNsaXBwaW5nIG9uIGEgc3RhY2tpbmcgY29udGV4dCwgd2l0aCBj
b21wb3NpdGluZyBjaGlsZHJlbgorICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2NvbnRhaW5t
ZW50TGF5ZXI7IC8vIE9ubHkgdXNlZCBpZiB3ZSBoYXZlIGNsaXBwaW5nIG9uIGEgc3RhY2tpbmcg
Y29udGV4dCB3aXRoIGNvbXBvc2l0aW5nIGNoaWxkcmVuLCBvciBpZiB0aGUgbGF5ZXIgaGFzIGEg
dGlsZSBjYWNoZS4KICAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9tYXNrTGF5ZXI7ICAgICAg
ICAgICAgIC8vIG9ubHkgdXNlZCBpZiB3ZSBoYXZlIGEgbWFzawogCiAgICAgT3duUHRyPEdyYXBo
aWNzTGF5ZXI+IG1fbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyOwpAQCAtMjQ2LDYgKzI0OSw4
IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIGJvb2wgbV9jYW5Db21w
b3NpdGVGaWx0ZXJzOwogI2VuZGlmCisKKyAgICBzdGF0aWMgYm9vbCBtX2NyZWF0aW5nUHJpbWFy
eUdyYXBoaWNzTGF5ZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmRk
ODg3NzgwM2E1OWNhYjJjYzFhNDU1MjZlNGM2YmUwZTVlNTFmOS4uYWY2MmRjZjE0NTlhMGVkZDVh
MDM5YTNlODk5OGUwMjViNDFlMzhlYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA3LTA4
ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBUaWxlZCBkcmF3aW5n
IG1lYW5zIHNvbWUgZWxlbWVudHMgY2FuIGRpc2FwcGVhciBiZWhpbmQgdGhlIHBhZ2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4OTA2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmdGVzdCB0byBtYWtl
IHN1cmUgZWxlbWVudHMgY2FuJ3QgZGlzYXBwZWFyIGJlaGluZCB0aGUgdGlsZSBjYWNoZS4KKwor
ICAgICAgICAqIGNvbXBvc2l0aW5nL3RpbGUtY2FjaGUtbXVzdC1mbGF0dGVuLWV4cGVjdGVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL3RpbGUtY2FjaGUtbXVzdC1mbGF0dGVu
Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTA3LTA3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5j
b20+CiAKICAgICAgICAgbWVkaWEvbWVkaWEtYmxvY2tlZC1ieS1iZWZvcmVsb2FkLmh0bWwgaXMg
Zmxha3kKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3RpbGUtY2FjaGUtbXVz
dC1mbGF0dGVuLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy90aWxlLWNh
Y2hlLW11c3QtZmxhdHRlbi1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3ZDkwNmY1MTcyOTdk
Nzk3YzdhNzUxNmFkNmFkMDc2ZDgxZTUwMmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jb21wb3NpdGluZy90aWxlLWNhY2hlLW11c3QtZmxhdHRlbi1leHBlY3RlZC5odG1sCkBAIC0w
LDAgKzEsMjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZSB0eXBl
PSJ0ZXh0L2NzcyI+CitkaXYgeworICB3aWR0aDogOTZweDsKKyAgaGVpZ2h0OiA5NnB4OworICBi
YWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgbWFyZ2luOiAxMHB4OworfQorCisjb25lIHsKKyAg
LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMXB4KTsKK30KKworI3R3byB7CisgIC13ZWJr
aXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDFweCk7Cit9CisKKzwvc3R5bGU+Cis8L2hlYWQ+CisK
Kzxib2R5PgorICA8IS0tIGJvdGggc2hvdWxkIGJlIHZpc2libGUgLSB0d28gZ3JlZW4gc3F1YXJl
cyBpbiB0aGUgcGFnZSAtLT4KKyAgPGRpdiBpZD0ib25lIj48L2Rpdj4KKyAgPGRpdiBpZD0idHdv
Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL3RpbGUtY2FjaGUtbXVzdC1mbGF0dGVuLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy90aWxlLWNhY2hlLW11c3QtZmxhdHRlbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3YTlhMTAwZTI0
YTAxNmQwNjc4YjUxYjk1MjU1MTIxYzU5M2U1ODYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy90aWxlLWNhY2hlLW11c3QtZmxhdHRlbi5odG1sCkBAIC0wLDAgKzEs
MjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZSB0eXBlPSJ0ZXh0
L2NzcyI+CitkaXYgeworICB3aWR0aDogOTZweDsKKyAgaGVpZ2h0OiA5NnB4OworICBiYWNrZ3Jv
dW5kLWNvbG9yOiBncmVlbjsKKyAgbWFyZ2luOiAxMHB4OworfQorCisjb25lIHsKKyAgLXdlYmtp
dC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTFweCk7IC8qIHRoaXMgbW92ZXMgdGhlIGVsZW1lbnQg
ImJlaGluZCIgdGhlIHBhZ2UgKi8KK30KKworI3R3byB7CisgIC13ZWJraXQtdHJhbnNmb3JtOiB0
cmFuc2xhdGVaKDFweCk7Cit9CisKKzwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorICA8IS0t
IGJvdGggc2hvdWxkIGJlIHZpc2libGUgLSB0d28gZ3JlZW4gc3F1YXJlcyBpbiB0aGUgcGFnZSAt
LT4KKyAgPGRpdiBpZD0ib25lIj48L2Rpdj4KKyAgPGRpdiBpZD0idHdvIj48L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="159564"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>