<?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>85414</bug_id>
          
          <creation_ts>2012-05-02 13:21:25 -0700</creation_ts>
          <short_desc>[chromium] Show borders for partial-draw-culled quads to visualize culling behaviour</short_desc>
          <delta_ts>2012-05-08 19:25:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dana Jansens">danakj</reporter>
          <assigned_to name="Dana Jansens">danakj</assigned_to>
          <cc>backer</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>piman</cc>
    
    <cc>shawnsingh</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>wjmaclean</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>614594</commentid>
    <comment_count>0</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-05-02 13:21:25 -0700</bug_when>
    <thetext>[chromium] Show brown borders for partial-draw-culled quads to visualize culling behaviour</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614611</commentid>
    <comment_count>1</comment_count>
      <attachid>139872</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-05-02 13:36:11 -0700</bug_when>
    <thetext>Created attachment 139872
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616471</commentid>
    <comment_count>2</comment_count>
      <attachid>139872</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-05-04 11:41:49 -0700</bug_when>
    <thetext>Comment on attachment 139872
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        The borders are brown, and are only shown when the quad&apos;s visible rect

(This is somewhat of an aside, but do you have any thoughts on how we can make the meanings of our rainbow salad of border colors more clear? Maybe we could put a link to a legend somewhere? Or even display a legend on the screen somehow?)

&gt; Source/WebCore/platform/graphics/chromium/cc/CCQuadCuller.cpp:68
&gt; +    if (keepQuad) {

...so this only applies for partially culled quads and not fully culled ones? Is that just to prevent too many debug borders on screen?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.cpp:68
&gt; +    if (layer-&gt;hasDebugBorders())

(I keep thinking this should be a setting somewhere and not a per-layer flag.  Or, better yet, a bag of settings so you could turn on the things you cared about, since we seem to keep adding more and more border types.  Not in this patch, I guess.)

&gt; Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.cpp:91
&gt; +        quadCuller.createCulledDebugBordersWithSharedQuadState(sharedQuadState.get());
&gt;      quadCuller.appendSurface(CCRenderSurfaceDrawQuad::create(sharedQuadState.get(), surface-&gt;contentRect(), layer, surfaceDamageRect(), isReplica));
&gt; +    quadCuller.createCulledDebugBordersWithSharedQuadState(0);

Whoa there, spooky action at a distance.  Also, this has bad ownership issues--quads have naked pointers to shared quad state and the owner of the shared quad state is CCRenderPass::m_sharedQuadStateList.  You can&apos;t just stick any old pointer to an shared object state into a quad that you then delete.

Why can&apos;t the partially culled border quad re-use the same shared quad state and just get that from the quad itself? It looks like you&apos;re using the border shared quad state as a boolean.  Maybe CCQuadCuller::appendFoo should just take an enum about whether or not to append culling quads, rather than depending on the nullness of a member variable set elsewhere?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616479</commentid>
    <comment_count>3</comment_count>
      <attachid>139872</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-05-04 11:50:31 -0700</bug_when>
    <thetext>Comment on attachment 139872
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        The borders are brown, and are only shown when the quad&apos;s visible rect
&gt; 
&gt; (This is somewhat of an aside, but do you have any thoughts on how we can make the meanings of our rainbow salad of border colors more clear? Maybe we could put a link to a legend somewhere? Or even display a legend on the screen somehow?)

http://code.google.com/p/chromium/issues/detail?id=122487

But maybe we could do more on-screen..

&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCQuadCuller.cpp:68
&gt;&gt; +    if (keepQuad) {
&gt; 
&gt; ...so this only applies for partially culled quads and not fully culled ones? Is that just to prevent too many debug borders on screen?

A fully culled quad would be an empty rect, not very interesting to display. This is putting a rect around what is left after culling.

&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.cpp:91
&gt;&gt; +    quadCuller.createCulledDebugBordersWithSharedQuadState(0);
&gt; 
&gt; Whoa there, spooky action at a distance.  Also, this has bad ownership issues--quads have naked pointers to shared quad state and the owner of the shared quad state is CCRenderPass::m_sharedQuadStateList.  You can&apos;t just stick any old pointer to an shared object state into a quad that you then delete.
&gt; 
&gt; Why can&apos;t the partially culled border quad re-use the same shared quad state and just get that from the quad itself? It looks like you&apos;re using the border shared quad state as a boolean.  Maybe CCQuadCuller::appendFoo should just take an enum about whether or not to append culling quads, rather than depending on the nullness of a member variable set elsewhere?

So I had at first added sharedQuadState() on CCDrawQuad, but I thought you would not like that, as there are all the helper methods on CCDrawQuad to avoid accessing it directly. I&apos;m happy to do that instead.

I don&apos;t see the ownership issue here though.. The shared quad state is owned by the RenderPass, and it gives it to the quad culler to stick on quads it creates. Those quads also end up in this RenderPass&apos;s quadList.

I had a bool instead of a pointer here, when I got the sharedQuadState from the quad directly, I can do that again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616480</commentid>
    <comment_count>4</comment_count>
      <attachid>139872</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-05-04 11:50:51 -0700</bug_when>
    <thetext>Comment on attachment 139872
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.cpp:68
&gt;&gt; +    if (layer-&gt;hasDebugBorders())
&gt; 
&gt; (I keep thinking this should be a setting somewhere and not a per-layer flag.  Or, better yet, a bag of settings so you could turn on the things you cared about, since we seem to keep adding more and more border types.  Not in this patch, I guess.)

I think so too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616490</commentid>
    <comment_count>5</comment_count>
      <attachid>140291</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-05-04 12:01:14 -0700</bug_when>
    <thetext>Created attachment 140291
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616492</commentid>
    <comment_count>6</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-05-04 12:03:22 -0700</bug_when>
    <thetext>I&apos;d rather not pass in something with appendFoo() because then we have to push that down to all the layer classes as well. This way the RenderPass can make the decision and the layers don&apos;t need to know about it. Wdyt?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616506</commentid>
    <comment_count>7</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-05-04 12:15:30 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I don&apos;t see the ownership issue here though.. The shared quad state is owned by the RenderPass, and it gives it to the quad culler to stick on quads it creates. Those quads also end up in this RenderPass&apos;s quadList.

Oh, I see.  The &quot;create&quot; function was really just a &quot;hang on to this pointer&quot; function and not a &quot;make a copy&quot; function.  My mistake.

(In reply to comment #6)
&gt; I&apos;d rather not pass in something with appendFoo() because then we have to push that down to all the layer classes as well. This way the RenderPass can make the decision and the layers don&apos;t need to know about it. Wdyt?

There&apos;s some code smell for me in setting and unsetting a flag in calling code to cause behavior elsewhere.

I guess the real fix is to instantiate the quad culler with a flag from CCSettings about layer borders.  So, in the short term, I guess this is ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616509</commentid>
    <comment_count>8</comment_count>
      <attachid>140291</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-05-04 12:17:33 -0700</bug_when>
    <thetext>Comment on attachment 140291
Patch

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

R=me.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCQuadCuller.h:46
&gt; +    void createCulledDebugBorderQuads(bool debug) { m_createCulledDebugBorderQuads = debug; }

&quot;create&quot; here sounds like this function is doing something, rather than setting a flag.  setCreateCulledDebugBorderQuads, maybe?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616510</commentid>
    <comment_count>9</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-05-04 12:18:10 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; 
&gt; There&apos;s some code smell for me in setting and unsetting a flag in calling code to cause behavior elsewhere.
&gt; 
&gt; I guess the real fix is to instantiate the quad culler with a flag from CCSettings about layer borders.  So, in the short term, I guess this is ok.

We could instantiate the quadCuller with a flag from the layer, and not do this set/unset dance, if quadCuller can tell if the quad being added is already a debug quad.

CCDrawQuad::isDebugQuad() const { return material() == DebugWhatever; } ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618967</commentid>
    <comment_count>10</comment_count>
      <attachid>140818</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-05-08 16:53:44 -0700</bug_when>
    <thetext>Created attachment 140818
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618969</commentid>
    <comment_count>11</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-05-08 16:54:27 -0700</bug_when>
    <thetext>Added CCDrawQuad::isDebugQuad() and put the &quot;showCullingWithDebugBorderQuads&quot; flag into CCQuadCuller constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619039</commentid>
    <comment_count>12</comment_count>
      <attachid>140818</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-05-08 18:09:24 -0700</bug_when>
    <thetext>Comment on attachment 140818
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCDrawQuad.h:78
&gt; +    bool isDebugQuad() const { return m_material != DebugBorder; }

ಠ_ಠ</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619041</commentid>
    <comment_count>13</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-05-08 18:13:57 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 140818 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=140818&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCDrawQuad.h:78
&gt; &gt; +    bool isDebugQuad() const { return m_material != DebugBorder; }
&gt; 
&gt; ಠ_ಠ

Hah.. oops.

I guess you can&apos;t tell this apart in use, because the culling debug quads are only there if the other debug quads are, and as long as you show it for one and not the other, you get the same result. :P Fixing...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619042</commentid>
    <comment_count>14</comment_count>
      <attachid>140836</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-05-08 18:14:51 -0700</bug_when>
    <thetext>Created attachment 140836
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619045</commentid>
    <comment_count>15</comment_count>
      <attachid>140836</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-05-08 18:19:27 -0700</bug_when>
    <thetext>Comment on attachment 140836
Patch

Thanks.  R=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619050</commentid>
    <comment_count>16</comment_count>
      <attachid>140836</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-05-08 18:26:17 -0700</bug_when>
    <thetext>Comment on attachment 140836
Patch

Thanks too :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619106</commentid>
    <comment_count>17</comment_count>
      <attachid>140836</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-08 19:25:39 -0700</bug_when>
    <thetext>Comment on attachment 140836
Patch

Clearing flags on attachment: 140836

Committed r116481: &lt;http://trac.webkit.org/changeset/116481&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619107</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-08 19:25:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139872</attachid>
            <date>2012-05-02 13:36:11 -0700</date>
            <delta_ts>2012-05-04 12:01:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85414-20120502163610.patch</filename>
            <type>text/plain</type>
            <size>8927</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1ODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDgyYzQzZDU0YTkxNGI3
MjZiNzJiMjFkNmVhYjlkZTg2NTk1OTliNC4uMzk0OTg5M2IzZjFiZWYxYjdiMmRlM2EyM2I5ZmRj
ZTNhNmEyNmNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA1LTAyICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gU2hv
dyBib3JkZXJzIGZvciBwYXJ0aWFsLWRyYXctY3VsbGVkIHF1YWRzIHRvIHZpc3VhbGl6ZSBjdWxs
aW5nIGJlaGF2aW91cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODU0MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGUgYm9yZGVycyBhcmUgYnJvd24sIGFuZCBhcmUgb25seSBzaG93biB3aGVuIHRoZSBx
dWFkJ3MgdmlzaWJsZSByZWN0CisgICAgICAgIGlzIG5vbi1lbXB0eSBhbmQgaXMgZGlmZmVyZW50
IGZyb20gdGhlIHF1YWQncyBvcmlnaW5hbCByZWN0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NRdWFkQ3VsbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NRdWFkQ3VsbGVyOjpDQ1F1YWRDdWxsZXIpOgorICAgICAgICAo
V2ViQ29yZTo6YXBwZW5kUXVhZEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNDUXVhZEN1
bGxlcjo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNDUXVhZEN1bGxlcjo6YXBwZW5kU3Vy
ZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1F1YWRDdWxsZXI6OmFwcGVuZFJlcGxpY2EpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUXVhZEN1bGxlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NRdWFkQ3VsbGVyOjpjcmVhdGVDdWxsZWREZWJ1Z0JvcmRlcnNX
aXRoU2hhcmVkUXVhZFN0YXRlKToKKyAgICAgICAgKENDUXVhZEN1bGxlcik6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNDUmVuZGVyUGFzczo6YXBwZW5kUXVhZHNGb3JMYXllcik6CisgICAgICAgIChX
ZWJDb3JlOjpDQ1JlbmRlclBhc3M6OmFwcGVuZFF1YWRzRm9yUmVuZGVyU3VyZmFjZUxheWVyKToK
KwogMjAxMi0wNS0wMiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAg
ICAgTW92ZSB0aXRsZSBhbmQgbWVkaWEgcXVlcmllcyBmcm9tIFN0eWxlU2hlZXRJbnRlcm5hbCB0
byBDU1NTdHlsZVNoZWV0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1F1YWRDdWxsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NRdWFkQ3VsbGVyLmNwcAppbmRleCA5NGQxZDY3MDRm
MjEyZDc0OTFjNDUyMmY4YjZjNTBhM2I2YjdiY2MzLi4yYTRiMzU3YjQyZTlkZTVhNWI0NDk5NmJh
NGRmN2Q5MGNiOWY0MDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1F1YWRDdWxsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUXVhZEN1bGxlci5jcHAKQEAgLTMxLDYgKzMx
LDcgQEAKIAogI2luY2x1ZGUgIlJlZ2lvbi5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0
cml4LmgiCisjaW5jbHVkZSAiY2MvQ0NEZWJ1Z0JvcmRlckRyYXdRdWFkLmgiCiAjaW5jbHVkZSAi
Y2MvQ0NMYXllckltcGwuaCIKICNpbmNsdWRlICJjYy9DQ092ZXJkcmF3TWV0cmljcy5oIgogI2lu
Y2x1ZGUgImNjL0NDUmVuZGVyUGFzcy5oIgpAQCAtNDAsMTQgKzQxLDIxIEBAIHVzaW5nIG5hbWVz
cGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIGNvbnN0IGludCBkZWJ1
Z1RpbGVCb3JkZXJXaWR0aCA9IDE7CitzdGF0aWMgY29uc3QgaW50IGRlYnVnVGlsZUJvcmRlckFs
cGhhID0gMTIwOworc3RhdGljIGNvbnN0IGludCBkZWJ1Z1RpbGVCb3JkZXJDb2xvclJlZCA9IDE2
MDsKK3N0YXRpYyBjb25zdCBpbnQgZGVidWdUaWxlQm9yZGVyQ29sb3JHcmVlbiA9IDEwMDsKK3N0
YXRpYyBjb25zdCBpbnQgZGVidWdUaWxlQm9yZGVyQ29sb3JCbHVlID0gMDsKKwogQ0NRdWFkQ3Vs
bGVyOjpDQ1F1YWRDdWxsZXIoQ0NRdWFkTGlzdCYgcXVhZExpc3QsIENDTGF5ZXJJbXBsKiBsYXll
ciwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VySW1wbCogb2NjbHVzaW9uVHJhY2tlcikKICAgICA6
IG1fcXVhZExpc3QocXVhZExpc3QpCiAgICAgLCBtX2xheWVyKGxheWVyKQogICAgICwgbV9vY2Ns
dXNpb25UcmFja2VyKG9jY2x1c2lvblRyYWNrZXIpCisgICAgLCBtX2N1bGxlZERlYnVnQm9yZGVy
c1NoYXJlZFF1YWRTdGF0ZSgwKQogewogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgYXBwZW5kUXVh
ZEludGVybmFsKFBhc3NPd25QdHI8Q0NEcmF3UXVhZD4gcGFzc0RyYXdRdWFkLCBjb25zdCBJbnRS
ZWN0JiBjdWxsZWRSZWN0LCBDQ1F1YWRMaXN0JiBxdWFkTGlzdCwgY29uc3QgQ0NPY2NsdXNpb25U
cmFja2VySW1wbCYgb2NjbHVzaW9uVHJhY2tlcikKK3N0YXRpYyBpbmxpbmUgYm9vbCBhcHBlbmRR
dWFkSW50ZXJuYWwoUGFzc093blB0cjxDQ0RyYXdRdWFkPiBwYXNzRHJhd1F1YWQsIGNvbnN0IElu
dFJlY3QmIGN1bGxlZFJlY3QsIENDUXVhZExpc3QmIHF1YWRMaXN0LCBjb25zdCBDQ09jY2x1c2lv
blRyYWNrZXJJbXBsJiBvY2NsdXNpb25UcmFja2VyLCBjb25zdCBDQ1NoYXJlZFF1YWRTdGF0ZSog
ZGVidWdRdWFkU2hhcmVkU3RhdGUpCiB7CiAgICAgT3duUHRyPENDRHJhd1F1YWQ+IGRyYXdRdWFk
KHBhc3NEcmF3UXVhZCk7CiAgICAgYm9vbCBrZWVwUXVhZCA9ICFjdWxsZWRSZWN0LmlzRW1wdHko
KTsKQEAgLTU3LDI4ICs2NSwzNCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgYXBwZW5kUXVhZEludGVy
bmFsKFBhc3NPd25QdHI8Q0NEcmF3UXVhZD4gcGFzc0RyYXdRdWFkLCBjb25zdAogICAgIG9jY2x1
c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkuZGlkQ3VsbEZvckRyYXdpbmcoZHJhd1F1YWQt
PnF1YWRUcmFuc2Zvcm0oKSwgZHJhd1F1YWQtPnF1YWRSZWN0KCksIGN1bGxlZFJlY3QpOwogICAg
IG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkuZGlkRHJhdyhkcmF3UXVhZC0+cXVh
ZFRyYW5zZm9ybSgpLCBjdWxsZWRSZWN0LCBkcmF3UXVhZC0+b3BhcXVlUmVjdCgpKTsKIAotICAg
IC8vIFJlbGVhc2UgdGhlIHF1YWQgYWZ0ZXIgd2UncmUgZG9uZSB1c2luZyBpdC4KLSAgICBpZiAo
a2VlcFF1YWQpCisgICAgaWYgKGtlZXBRdWFkKSB7CisgICAgICAgIGlmIChkZWJ1Z1F1YWRTaGFy
ZWRTdGF0ZSAmJiBkcmF3UXVhZC0+cXVhZFZpc2libGVSZWN0KCkgIT0gZHJhd1F1YWQtPnF1YWRS
ZWN0KCkpIHsKKyAgICAgICAgICAgIENvbG9yIGJvcmRlckNvbG9yID0gQ29sb3IoZGVidWdUaWxl
Qm9yZGVyQ29sb3JSZWQsIGRlYnVnVGlsZUJvcmRlckNvbG9yR3JlZW4sIGRlYnVnVGlsZUJvcmRl
ckNvbG9yQmx1ZSwgZGVidWdUaWxlQm9yZGVyQWxwaGEpOworICAgICAgICAgICAgcXVhZExpc3Qu
YXBwZW5kKENDRGVidWdCb3JkZXJEcmF3UXVhZDo6Y3JlYXRlKGRlYnVnUXVhZFNoYXJlZFN0YXRl
LCBkcmF3UXVhZC0+cXVhZFZpc2libGVSZWN0KCksIGJvcmRlckNvbG9yLCBkZWJ1Z1RpbGVCb3Jk
ZXJXaWR0aCkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gUmVsZWFzZSB0aGUgcXVhZCBhZnRl
ciB3ZSdyZSBkb25lIHVzaW5nIGl0LgogICAgICAgICBxdWFkTGlzdC5hcHBlbmQoZHJhd1F1YWQu
cmVsZWFzZSgpKTsKKyAgICB9CiAgICAgcmV0dXJuIGtlZXBRdWFkOwogfQogCiBib29sIENDUXVh
ZEN1bGxlcjo6YXBwZW5kKFBhc3NPd25QdHI8Q0NEcmF3UXVhZD4gcGFzc0RyYXdRdWFkKQogewog
ICAgIEludFJlY3QgY3VsbGVkUmVjdCA9IG1fb2NjbHVzaW9uVHJhY2tlci0+dW5vY2NsdWRlZENv
bnRlbnRSZWN0KG1fbGF5ZXIsIHBhc3NEcmF3UXVhZC0+cXVhZFJlY3QoKSk7Ci0gICAgcmV0dXJu
IGFwcGVuZFF1YWRJbnRlcm5hbChwYXNzRHJhd1F1YWQsIGN1bGxlZFJlY3QsIG1fcXVhZExpc3Qs
ICptX29jY2x1c2lvblRyYWNrZXIpOworICAgIHJldHVybiBhcHBlbmRRdWFkSW50ZXJuYWwocGFz
c0RyYXdRdWFkLCBjdWxsZWRSZWN0LCBtX3F1YWRMaXN0LCAqbV9vY2NsdXNpb25UcmFja2VyLCBt
X2N1bGxlZERlYnVnQm9yZGVyc1NoYXJlZFF1YWRTdGF0ZSk7CiB9CiAKIGJvb2wgQ0NRdWFkQ3Vs
bGVyOjphcHBlbmRTdXJmYWNlKFBhc3NPd25QdHI8Q0NEcmF3UXVhZD4gcGFzc0RyYXdRdWFkKQog
ewogICAgIEludFJlY3QgY3VsbGVkUmVjdCA9IG1fb2NjbHVzaW9uVHJhY2tlci0+dW5vY2NsdWRl
ZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250ZW50UmVjdChtX2xheWVyLCBmYWxzZSwgcGFzc0RyYXdR
dWFkLT5xdWFkUmVjdCgpKTsKLSAgICByZXR1cm4gYXBwZW5kUXVhZEludGVybmFsKHBhc3NEcmF3
UXVhZCwgY3VsbGVkUmVjdCwgbV9xdWFkTGlzdCwgKm1fb2NjbHVzaW9uVHJhY2tlcik7CisgICAg
cmV0dXJuIGFwcGVuZFF1YWRJbnRlcm5hbChwYXNzRHJhd1F1YWQsIGN1bGxlZFJlY3QsIG1fcXVh
ZExpc3QsICptX29jY2x1c2lvblRyYWNrZXIsIG1fY3VsbGVkRGVidWdCb3JkZXJzU2hhcmVkUXVh
ZFN0YXRlKTsKIH0KIAogYm9vbCBDQ1F1YWRDdWxsZXI6OmFwcGVuZFJlcGxpY2EoUGFzc093blB0
cjxDQ0RyYXdRdWFkPiBwYXNzRHJhd1F1YWQpCiB7CiAgICAgSW50UmVjdCBjdWxsZWRSZWN0ID0g
bV9vY2NsdXNpb25UcmFja2VyLT51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRS
ZWN0KG1fbGF5ZXIsIHRydWUsIHBhc3NEcmF3UXVhZC0+cXVhZFJlY3QoKSk7Ci0gICAgcmV0dXJu
IGFwcGVuZFF1YWRJbnRlcm5hbChwYXNzRHJhd1F1YWQsIGN1bGxlZFJlY3QsIG1fcXVhZExpc3Qs
ICptX29jY2x1c2lvblRyYWNrZXIpOworICAgIHJldHVybiBhcHBlbmRRdWFkSW50ZXJuYWwocGFz
c0RyYXdRdWFkLCBjdWxsZWRSZWN0LCBtX3F1YWRMaXN0LCAqbV9vY2NsdXNpb25UcmFja2VyLCBt
X2N1bGxlZERlYnVnQm9yZGVyc1NoYXJlZFF1YWRTdGF0ZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDUXVhZEN1bGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NRdWFkQ3VsbGVyLmgKaW5kZXggNWRiMGE5OGM1NGNhNDEwZGZjNDFm
ODE2MjVmNTgzZjdlOWIxOWYxYy4uOTJiY2UyMjA4OThmMWRjM2M1YWM5MDYxMzNmNzUwMzZkZWI5
MDY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NRdWFkQ3VsbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NRdWFkQ3VsbGVyLmgKQEAgLTQzLDEwICs0MywxMyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIGFwcGVuZFN1cmZhY2UoUGFzc093blB0cjxDQ0RyYXdRdWFkPiBw
YXNzRHJhd1F1YWQpOwogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRSZXBsaWNhKFBhc3NPd25QdHI8
Q0NEcmF3UXVhZD4gcGFzc0RyYXdRdWFkKTsKIAorICAgIHZvaWQgY3JlYXRlQ3VsbGVkRGVidWdC
b3JkZXJzV2l0aFNoYXJlZFF1YWRTdGF0ZShjb25zdCBDQ1NoYXJlZFF1YWRTdGF0ZSogc3RhdGUp
IHsgbV9jdWxsZWREZWJ1Z0JvcmRlcnNTaGFyZWRRdWFkU3RhdGUgPSBzdGF0ZTsgfQorCiBwcml2
YXRlOgogICAgIENDUXVhZExpc3QmIG1fcXVhZExpc3Q7CiAgICAgQ0NMYXllckltcGwqIG1fbGF5
ZXI7CiAgICAgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VySW1wbCogbV9vY2NsdXNpb25UcmFja2Vy
OworICAgIGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKiBtX2N1bGxlZERlYnVnQm9yZGVyc1NoYXJl
ZFF1YWRTdGF0ZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBhc3MuY3BwCmluZGV4IDMzYjVl
NzMxMDE4NTRlZDEwYzhhZWY4ZjRhZTVlNzBlM2FkYmY5N2YuLmI4MDMxZDQ3NWQ5ZTY0NzcwNWEz
Y2EyZDJkMDRkMTJiMjUyZTI5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNzLmNwcApAQCAtNjEs
OSArNjEsMTIgQEAgQ0NSZW5kZXJQYXNzOjpDQ1JlbmRlclBhc3MoQ0NSZW5kZXJTdXJmYWNlKiB0
YXJnZXRTdXJmYWNlKQogdm9pZCBDQ1JlbmRlclBhc3M6OmFwcGVuZFF1YWRzRm9yTGF5ZXIoQ0NM
YXllckltcGwqIGxheWVyLCBDQ09jY2x1c2lvblRyYWNrZXJJbXBsKiBvY2NsdXNpb25UcmFja2Vy
LCBib29sJiBoYWRNaXNzaW5nVGlsZXMpCiB7CiAgICAgQ0NRdWFkQ3VsbGVyIHF1YWRDdWxsZXIo
bV9xdWFkTGlzdCwgbGF5ZXIsIG9jY2x1c2lvblRyYWNrZXIpOwotCiAgICAgT3duUHRyPENDU2hh
cmVkUXVhZFN0YXRlPiBzaGFyZWRRdWFkU3RhdGUgPSBsYXllci0+Y3JlYXRlU2hhcmVkUXVhZFN0
YXRlKCk7CisKICAgICBsYXllci0+YXBwZW5kRGVidWdCb3JkZXJRdWFkKHF1YWRDdWxsZXIsIHNo
YXJlZFF1YWRTdGF0ZS5nZXQoKSk7CisKKyAgICBpZiAobGF5ZXItPmhhc0RlYnVnQm9yZGVycygp
KQorICAgICAgICBxdWFkQ3VsbGVyLmNyZWF0ZUN1bGxlZERlYnVnQm9yZGVyc1dpdGhTaGFyZWRR
dWFkU3RhdGUoc2hhcmVkUXVhZFN0YXRlLmdldCgpKTsKICAgICBsYXllci0+YXBwZW5kUXVhZHMo
cXVhZEN1bGxlciwgc2hhcmVkUXVhZFN0YXRlLmdldCgpLCBoYWRNaXNzaW5nVGlsZXMpOwogICAg
IG1fc2hhcmVkUXVhZFN0YXRlTGlzdC5hcHBlbmQoc2hhcmVkUXVhZFN0YXRlLnJlbGVhc2UoKSk7
CiB9CkBAIC04MCw4ICs4MywxMiBAQCB2b2lkIENDUmVuZGVyUGFzczo6YXBwZW5kUXVhZHNGb3JS
ZW5kZXJTdXJmYWNlTGF5ZXIoQ0NMYXllckltcGwqIGxheWVyLCBDQ09jY2x1cwogICAgICAgICBD
b2xvciBjb2xvcihkZWJ1Z1N1cmZhY2VCb3JkZXJDb2xvclJlZCwgZGVidWdTdXJmYWNlQm9yZGVy
Q29sb3JHcmVlbiwgZGVidWdTdXJmYWNlQm9yZGVyQ29sb3JCbHVlLCBkZWJ1Z1N1cmZhY2VCb3Jk
ZXJBbHBoYSk7CiAgICAgICAgIHF1YWRDdWxsZXIuYXBwZW5kU3VyZmFjZShDQ0RlYnVnQm9yZGVy
RHJhd1F1YWQ6OmNyZWF0ZShzaGFyZWRRdWFkU3RhdGUuZ2V0KCksIHN1cmZhY2UtPmNvbnRlbnRS
ZWN0KCksIGNvbG9yLCBkZWJ1Z1N1cmZhY2VCb3JkZXJXaWR0aCkpOwogICAgIH0KKwogICAgIGJv
b2wgaXNSZXBsaWNhID0gZmFsc2U7CisgICAgaWYgKGxheWVyLT5oYXNEZWJ1Z0JvcmRlcnMoKSkK
KyAgICAgICAgcXVhZEN1bGxlci5jcmVhdGVDdWxsZWREZWJ1Z0JvcmRlcnNXaXRoU2hhcmVkUXVh
ZFN0YXRlKHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSk7CiAgICAgcXVhZEN1bGxlci5hcHBlbmRTdXJm
YWNlKENDUmVuZGVyU3VyZmFjZURyYXdRdWFkOjpjcmVhdGUoc2hhcmVkUXVhZFN0YXRlLmdldCgp
LCBzdXJmYWNlLT5jb250ZW50UmVjdCgpLCBsYXllciwgc3VyZmFjZURhbWFnZVJlY3QoKSwgaXNS
ZXBsaWNhKSk7CisgICAgcXVhZEN1bGxlci5jcmVhdGVDdWxsZWREZWJ1Z0JvcmRlcnNXaXRoU2hh
cmVkUXVhZFN0YXRlKDApOwogICAgIG1fc2hhcmVkUXVhZFN0YXRlTGlzdC5hcHBlbmQoc2hhcmVk
UXVhZFN0YXRlLnJlbGVhc2UoKSk7CiAKICAgICAvLyBBZGQgcmVwbGljYSBhZnRlciB0aGUgc3Vy
ZmFjZSBzbyB0aGF0IGl0IGFwcGVhcnMgYmVsb3cgdGhlIHN1cmZhY2UuCkBAIC05MSw3ICs5OCwx
MCBAQCB2b2lkIENDUmVuZGVyUGFzczo6YXBwZW5kUXVhZHNGb3JSZW5kZXJTdXJmYWNlTGF5ZXIo
Q0NMYXllckltcGwqIGxheWVyLCBDQ09jY2x1cwogICAgICAgICAgICAgQ29sb3IgY29sb3IoZGVi
dWdSZXBsaWNhQm9yZGVyQ29sb3JSZWQsIGRlYnVnUmVwbGljYUJvcmRlckNvbG9yR3JlZW4sIGRl
YnVnUmVwbGljYUJvcmRlckNvbG9yQmx1ZSwgZGVidWdTdXJmYWNlQm9yZGVyQWxwaGEpOwogICAg
ICAgICAgICAgcXVhZEN1bGxlci5hcHBlbmRSZXBsaWNhKENDRGVidWdCb3JkZXJEcmF3UXVhZDo6
Y3JlYXRlKHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSwgc3VyZmFjZS0+Y29udGVudFJlY3QoKSwgY29s
b3IsIGRlYnVnU3VyZmFjZUJvcmRlcldpZHRoKSk7CiAgICAgICAgIH0KKwogICAgICAgICBib29s
IGlzUmVwbGljYSA9IHRydWU7CisgICAgICAgIGlmIChsYXllci0+aGFzRGVidWdCb3JkZXJzKCkp
CisgICAgICAgICAgICBxdWFkQ3VsbGVyLmNyZWF0ZUN1bGxlZERlYnVnQm9yZGVyc1dpdGhTaGFy
ZWRRdWFkU3RhdGUoc2hhcmVkUXVhZFN0YXRlLmdldCgpKTsKICAgICAgICAgcXVhZEN1bGxlci5h
cHBlbmRSZXBsaWNhKENDUmVuZGVyU3VyZmFjZURyYXdRdWFkOjpjcmVhdGUoc2hhcmVkUXVhZFN0
YXRlLmdldCgpLCBzdXJmYWNlLT5jb250ZW50UmVjdCgpLCBsYXllciwgc3VyZmFjZURhbWFnZVJl
Y3QoKSwgaXNSZXBsaWNhKSk7CiAgICAgICAgIG1fc2hhcmVkUXVhZFN0YXRlTGlzdC5hcHBlbmQo
c2hhcmVkUXVhZFN0YXRlLnJlbGVhc2UoKSk7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140291</attachid>
            <date>2012-05-04 12:01:14 -0700</date>
            <delta_ts>2012-05-08 16:53:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85414-20120504150112.patch</filename>
            <type>text/plain</type>
            <size>9447</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2MTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTQ5YjMxMzM1Y2E1NTFl
ODkxYzRmZjQzYWIzZTQ0NTVlMDUwZWRmNS4uMDFjMDI0ZTRmN2NiZjgwMjBkZjZlZDc4NzZmYWU2
MTdlMjliYTdmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA1LTAyICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gU2hv
dyBib3JkZXJzIGZvciBwYXJ0aWFsLWRyYXctY3VsbGVkIHF1YWRzIHRvIHZpc3VhbGl6ZSBjdWxs
aW5nIGJlaGF2aW91cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODU0MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGUgYm9yZGVycyBhcmUgYnJvd24sIGFuZCBhcmUgb25seSBzaG93biB3aGVuIHRoZSBx
dWFkJ3MgdmlzaWJsZSByZWN0CisgICAgICAgIGlzIG5vbi1lbXB0eSBhbmQgaXMgZGlmZmVyZW50
IGZyb20gdGhlIHF1YWQncyBvcmlnaW5hbCByZWN0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NRdWFkQ3VsbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NRdWFkQ3VsbGVyOjpDQ1F1YWRDdWxsZXIpOgorICAgICAgICAo
V2ViQ29yZTo6YXBwZW5kUXVhZEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNDUXVhZEN1
bGxlcjo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNDUXVhZEN1bGxlcjo6YXBwZW5kU3Vy
ZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1F1YWRDdWxsZXI6OmFwcGVuZFJlcGxpY2EpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUXVhZEN1bGxlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NRdWFkQ3VsbGVyOjpjcmVhdGVDdWxsZWREZWJ1Z0JvcmRlcnNX
aXRoU2hhcmVkUXVhZFN0YXRlKToKKyAgICAgICAgKENDUXVhZEN1bGxlcik6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNDUmVuZGVyUGFzczo6YXBwZW5kUXVhZHNGb3JMYXllcik6CisgICAgICAgIChX
ZWJDb3JlOjpDQ1JlbmRlclBhc3M6OmFwcGVuZFF1YWRzRm9yUmVuZGVyU3VyZmFjZUxheWVyKToK
KwogMjAxMi0wNS0wNCAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBDb3JyZWN0bHkgdXBkYXRlIHRoZSBvdXRnb2luZyByZWZlcnJlciB3aGVuIG5hdmln
YXRpbmcgYmFjayBmcm9tIGFuIGhpc3RvcnkgaXRlbSBjcmVhdGVkIGJ5IHB1c2hTdGF0ZS9yZXBs
YWNlU3RhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDRHJhd1F1YWQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDRHJhd1F1YWQuaAppbmRleCBiNzg4ODJlNmE5YmJkMTQwYTE2MTMxYzIw
Y2E0MzEzMTQ5OTRmMGRkLi5kMDg2Zjk4ZTllNTU0Y2M4YmNhOTEyMTJlNzE3ZThiMWI4ZWUxMDk1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0RyYXdRdWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NEcmF3UXVhZC5oCkBAIC04NSw2ICs4NSw4IEBAIHB1YmxpYzoKICAgICBjb25z
dCBDQ1RpbGVEcmF3UXVhZCogdG9UaWxlRHJhd1F1YWQoKSBjb25zdDsKICAgICBjb25zdCBDQ1Zp
ZGVvRHJhd1F1YWQqIHRvVmlkZW9EcmF3UXVhZCgpIGNvbnN0OwogCisgICAgY29uc3QgQ0NTaGFy
ZWRRdWFkU3RhdGUqIHNoYXJlZFF1YWRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcmVkUXVh
ZFN0YXRlOyB9CisKIHByb3RlY3RlZDoKICAgICBDQ0RyYXdRdWFkKGNvbnN0IENDU2hhcmVkUXVh
ZFN0YXRlKiwgTWF0ZXJpYWwsIGNvbnN0IEludFJlY3QmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NRdWFkQ3VsbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUXVhZEN1bGxl
ci5jcHAKaW5kZXggZTVmZDY5MGNjZWEyMGEzODVmNTIyZTlhNTNmYzYwMGIzMjU2OTA3Ni4uNTM0
ODg0ZWFlMTY2ZDE2MjVlZDAzMTQ0Y2YzYTY4N2IwMDFiZmI3ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NRdWFkQ3VsbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1F1YWRD
dWxsZXIuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbmNsdWRlICJSZWdpb24uaCIKICNpbmNs
dWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgorI2luY2x1ZGUgImNjL0NDRGVidWdCb3JkZXJE
cmF3UXVhZC5oIgogI2luY2x1ZGUgImNjL0NDTGF5ZXJJbXBsLmgiCiAjaW5jbHVkZSAiY2MvQ0NP
dmVyZHJhd01ldHJpY3MuaCIKICNpbmNsdWRlICJjYy9DQ1JlbmRlclBhc3MuaCIKQEAgLTQwLDE0
ICs0MSwyMSBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K3N0YXRpYyBjb25zdCBpbnQgZGVidWdUaWxlQm9yZGVyV2lkdGggPSAxOworc3RhdGljIGNvbnN0
IGludCBkZWJ1Z1RpbGVCb3JkZXJBbHBoYSA9IDEyMDsKK3N0YXRpYyBjb25zdCBpbnQgZGVidWdU
aWxlQm9yZGVyQ29sb3JSZWQgPSAxNjA7CitzdGF0aWMgY29uc3QgaW50IGRlYnVnVGlsZUJvcmRl
ckNvbG9yR3JlZW4gPSAxMDA7CitzdGF0aWMgY29uc3QgaW50IGRlYnVnVGlsZUJvcmRlckNvbG9y
Qmx1ZSA9IDA7CisKIENDUXVhZEN1bGxlcjo6Q0NRdWFkQ3VsbGVyKENDUXVhZExpc3QmIHF1YWRM
aXN0LCBDQ0xheWVySW1wbCogbGF5ZXIsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlckltcGwqIG9j
Y2x1c2lvblRyYWNrZXIpCiAgICAgOiBtX3F1YWRMaXN0KHF1YWRMaXN0KQogICAgICwgbV9sYXll
cihsYXllcikKICAgICAsIG1fb2NjbHVzaW9uVHJhY2tlcihvY2NsdXNpb25UcmFja2VyKQorICAg
ICwgbV9jcmVhdGVDdWxsZWREZWJ1Z0JvcmRlclF1YWRzKGZhbHNlKQogewogfQogCi1zdGF0aWMg
aW5saW5lIGJvb2wgYXBwZW5kUXVhZEludGVybmFsKFBhc3NPd25QdHI8Q0NEcmF3UXVhZD4gcGFz
c0RyYXdRdWFkLCBjb25zdCBJbnRSZWN0JiBjdWxsZWRSZWN0LCBDQ1F1YWRMaXN0JiBxdWFkTGlz
dCwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VySW1wbCYgb2NjbHVzaW9uVHJhY2tlcikKK3N0YXRp
YyBpbmxpbmUgYm9vbCBhcHBlbmRRdWFkSW50ZXJuYWwoUGFzc093blB0cjxDQ0RyYXdRdWFkPiBw
YXNzRHJhd1F1YWQsIGNvbnN0IEludFJlY3QmIGN1bGxlZFJlY3QsIENDUXVhZExpc3QmIHF1YWRM
aXN0LCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXJJbXBsJiBvY2NsdXNpb25UcmFja2VyLCBib29s
IGNyZWF0ZUN1bGxlZERlYnVnQm9yZGVyUXVhZHMpCiB7CiAgICAgT3duUHRyPENDRHJhd1F1YWQ+
IGRyYXdRdWFkKHBhc3NEcmF3UXVhZCk7CiAgICAgYm9vbCBrZWVwUXVhZCA9ICFjdWxsZWRSZWN0
LmlzRW1wdHkoKTsKQEAgLTU3LDI4ICs2NSwzNCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgYXBwZW5k
UXVhZEludGVybmFsKFBhc3NPd25QdHI8Q0NEcmF3UXVhZD4gcGFzc0RyYXdRdWFkLCBjb25zdAog
ICAgIG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkuZGlkQ3VsbEZvckRyYXdpbmco
ZHJhd1F1YWQtPnF1YWRUcmFuc2Zvcm0oKSwgZHJhd1F1YWQtPnF1YWRSZWN0KCksIGN1bGxlZFJl
Y3QpOwogICAgIG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkuZGlkRHJhdyhkcmF3
UXVhZC0+cXVhZFRyYW5zZm9ybSgpLCBjdWxsZWRSZWN0LCBkcmF3UXVhZC0+b3BhcXVlUmVjdCgp
KTsKIAotICAgIC8vIFJlbGVhc2UgdGhlIHF1YWQgYWZ0ZXIgd2UncmUgZG9uZSB1c2luZyBpdC4K
LSAgICBpZiAoa2VlcFF1YWQpCisgICAgaWYgKGtlZXBRdWFkKSB7CisgICAgICAgIGlmIChjcmVh
dGVDdWxsZWREZWJ1Z0JvcmRlclF1YWRzICYmIGRyYXdRdWFkLT5xdWFkVmlzaWJsZVJlY3QoKSAh
PSBkcmF3UXVhZC0+cXVhZFJlY3QoKSkgeworICAgICAgICAgICAgQ29sb3IgYm9yZGVyQ29sb3Ig
PSBDb2xvcihkZWJ1Z1RpbGVCb3JkZXJDb2xvclJlZCwgZGVidWdUaWxlQm9yZGVyQ29sb3JHcmVl
biwgZGVidWdUaWxlQm9yZGVyQ29sb3JCbHVlLCBkZWJ1Z1RpbGVCb3JkZXJBbHBoYSk7CisgICAg
ICAgICAgICBxdWFkTGlzdC5hcHBlbmQoQ0NEZWJ1Z0JvcmRlckRyYXdRdWFkOjpjcmVhdGUoZHJh
d1F1YWQtPnNoYXJlZFF1YWRTdGF0ZSgpLCBkcmF3UXVhZC0+cXVhZFZpc2libGVSZWN0KCksIGJv
cmRlckNvbG9yLCBkZWJ1Z1RpbGVCb3JkZXJXaWR0aCkpOworICAgICAgICB9CisKKyAgICAgICAg
Ly8gUmVsZWFzZSB0aGUgcXVhZCBhZnRlciB3ZSdyZSBkb25lIHVzaW5nIGl0LgogICAgICAgICBx
dWFkTGlzdC5hcHBlbmQoZHJhd1F1YWQucmVsZWFzZSgpKTsKKyAgICB9CiAgICAgcmV0dXJuIGtl
ZXBRdWFkOwogfQogCiBib29sIENDUXVhZEN1bGxlcjo6YXBwZW5kKFBhc3NPd25QdHI8Q0NEcmF3
UXVhZD4gcGFzc0RyYXdRdWFkKQogewogICAgIEludFJlY3QgY3VsbGVkUmVjdCA9IG1fb2NjbHVz
aW9uVHJhY2tlci0+dW5vY2NsdWRlZENvbnRlbnRSZWN0KG1fbGF5ZXIsIHBhc3NEcmF3UXVhZC0+
cXVhZFJlY3QoKSk7Ci0gICAgcmV0dXJuIGFwcGVuZFF1YWRJbnRlcm5hbChwYXNzRHJhd1F1YWQs
IGN1bGxlZFJlY3QsIG1fcXVhZExpc3QsICptX29jY2x1c2lvblRyYWNrZXIpOworICAgIHJldHVy
biBhcHBlbmRRdWFkSW50ZXJuYWwocGFzc0RyYXdRdWFkLCBjdWxsZWRSZWN0LCBtX3F1YWRMaXN0
LCAqbV9vY2NsdXNpb25UcmFja2VyLCBtX2NyZWF0ZUN1bGxlZERlYnVnQm9yZGVyUXVhZHMpOwog
fQogCiBib29sIENDUXVhZEN1bGxlcjo6YXBwZW5kU3VyZmFjZShQYXNzT3duUHRyPENDRHJhd1F1
YWQ+IHBhc3NEcmF3UXVhZCkKIHsKICAgICBJbnRSZWN0IGN1bGxlZFJlY3QgPSBtX29jY2x1c2lv
blRyYWNrZXItPnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3QobV9sYXll
ci0+cmVuZGVyU3VyZmFjZSgpLCBmYWxzZSwgcGFzc0RyYXdRdWFkLT5xdWFkUmVjdCgpKTsKLSAg
ICByZXR1cm4gYXBwZW5kUXVhZEludGVybmFsKHBhc3NEcmF3UXVhZCwgY3VsbGVkUmVjdCwgbV9x
dWFkTGlzdCwgKm1fb2NjbHVzaW9uVHJhY2tlcik7CisgICAgcmV0dXJuIGFwcGVuZFF1YWRJbnRl
cm5hbChwYXNzRHJhd1F1YWQsIGN1bGxlZFJlY3QsIG1fcXVhZExpc3QsICptX29jY2x1c2lvblRy
YWNrZXIsIG1fY3JlYXRlQ3VsbGVkRGVidWdCb3JkZXJRdWFkcyk7CiB9CiAKIGJvb2wgQ0NRdWFk
Q3VsbGVyOjphcHBlbmRSZXBsaWNhKFBhc3NPd25QdHI8Q0NEcmF3UXVhZD4gcGFzc0RyYXdRdWFk
KQogewogICAgIEludFJlY3QgY3VsbGVkUmVjdCA9IG1fb2NjbHVzaW9uVHJhY2tlci0+dW5vY2Ns
dWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250ZW50UmVjdChtX2xheWVyLT5yZW5kZXJTdXJmYWNl
KCksIHRydWUsIHBhc3NEcmF3UXVhZC0+cXVhZFJlY3QoKSk7Ci0gICAgcmV0dXJuIGFwcGVuZFF1
YWRJbnRlcm5hbChwYXNzRHJhd1F1YWQsIGN1bGxlZFJlY3QsIG1fcXVhZExpc3QsICptX29jY2x1
c2lvblRyYWNrZXIpOworICAgIHJldHVybiBhcHBlbmRRdWFkSW50ZXJuYWwocGFzc0RyYXdRdWFk
LCBjdWxsZWRSZWN0LCBtX3F1YWRMaXN0LCAqbV9vY2NsdXNpb25UcmFja2VyLCBtX2NyZWF0ZUN1
bGxlZERlYnVnQm9yZGVyUXVhZHMpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1F1
YWRDdWxsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDUXVhZEN1bGxlci5oCmluZGV4IDVkYjBhOThjNTRjYTQxMGRmYzQxZjgxNjI1ZjU4M2Y3ZTli
MTlmMWMuLjhkNTVjYTc2Mzk0NTIzOGY2YjJkMWEyMjAzYWIyNTQ1YTczYjVmMzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUXVhZEN1
bGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDUXVhZEN1bGxlci5oCkBAIC00MywxMCArNDMsMTMgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Ym9vbCBhcHBlbmRTdXJmYWNlKFBhc3NPd25QdHI8Q0NEcmF3UXVhZD4gcGFzc0RyYXdRdWFkKTsK
ICAgICB2aXJ0dWFsIGJvb2wgYXBwZW5kUmVwbGljYShQYXNzT3duUHRyPENDRHJhd1F1YWQ+IHBh
c3NEcmF3UXVhZCk7CiAKKyAgICB2b2lkIGNyZWF0ZUN1bGxlZERlYnVnQm9yZGVyUXVhZHMoYm9v
bCBkZWJ1ZykgeyBtX2NyZWF0ZUN1bGxlZERlYnVnQm9yZGVyUXVhZHMgPSBkZWJ1ZzsgfQorCiBw
cml2YXRlOgogICAgIENDUXVhZExpc3QmIG1fcXVhZExpc3Q7CiAgICAgQ0NMYXllckltcGwqIG1f
bGF5ZXI7CiAgICAgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VySW1wbCogbV9vY2NsdXNpb25UcmFj
a2VyOworICAgIGJvb2wgbV9jcmVhdGVDdWxsZWREZWJ1Z0JvcmRlclF1YWRzOwogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NSZW5kZXJQYXNzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDUmVuZGVyUGFzcy5jcHAKaW5kZXggMzNiNWU3MzEwMTg1NGVkMTBjOGFlZjhmNGFl
NWU3MGUzYWRiZjk3Zi4uZTI5ODIzMmFlYjIzOWFlMzJlOGZjN2Q4ZWVmNzVmMDllYjg2MTJlOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NSZW5kZXJQYXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1JlbmRlclBhc3MuY3BwCkBAIC02MSw5ICs2MSwxMSBAQCBDQ1JlbmRlclBh
c3M6OkNDUmVuZGVyUGFzcyhDQ1JlbmRlclN1cmZhY2UqIHRhcmdldFN1cmZhY2UpCiB2b2lkIEND
UmVuZGVyUGFzczo6YXBwZW5kUXVhZHNGb3JMYXllcihDQ0xheWVySW1wbCogbGF5ZXIsIENDT2Nj
bHVzaW9uVHJhY2tlckltcGwqIG9jY2x1c2lvblRyYWNrZXIsIGJvb2wmIGhhZE1pc3NpbmdUaWxl
cykKIHsKICAgICBDQ1F1YWRDdWxsZXIgcXVhZEN1bGxlcihtX3F1YWRMaXN0LCBsYXllciwgb2Nj
bHVzaW9uVHJhY2tlcik7Ci0KICAgICBPd25QdHI8Q0NTaGFyZWRRdWFkU3RhdGU+IHNoYXJlZFF1
YWRTdGF0ZSA9IGxheWVyLT5jcmVhdGVTaGFyZWRRdWFkU3RhdGUoKTsKKwogICAgIGxheWVyLT5h
cHBlbmREZWJ1Z0JvcmRlclF1YWQocXVhZEN1bGxlciwgc2hhcmVkUXVhZFN0YXRlLmdldCgpKTsK
KworICAgIHF1YWRDdWxsZXIuY3JlYXRlQ3VsbGVkRGVidWdCb3JkZXJRdWFkcyhsYXllci0+aGFz
RGVidWdCb3JkZXJzKCkpOwogICAgIGxheWVyLT5hcHBlbmRRdWFkcyhxdWFkQ3VsbGVyLCBzaGFy
ZWRRdWFkU3RhdGUuZ2V0KCksIGhhZE1pc3NpbmdUaWxlcyk7CiAgICAgbV9zaGFyZWRRdWFkU3Rh
dGVMaXN0LmFwcGVuZChzaGFyZWRRdWFkU3RhdGUucmVsZWFzZSgpKTsKIH0KQEAgLTgwLDkgKzgy
LDEyIEBAIHZvaWQgQ0NSZW5kZXJQYXNzOjphcHBlbmRRdWFkc0ZvclJlbmRlclN1cmZhY2VMYXll
cihDQ0xheWVySW1wbCogbGF5ZXIsIENDT2NjbHVzCiAgICAgICAgIENvbG9yIGNvbG9yKGRlYnVn
U3VyZmFjZUJvcmRlckNvbG9yUmVkLCBkZWJ1Z1N1cmZhY2VCb3JkZXJDb2xvckdyZWVuLCBkZWJ1
Z1N1cmZhY2VCb3JkZXJDb2xvckJsdWUsIGRlYnVnU3VyZmFjZUJvcmRlckFscGhhKTsKICAgICAg
ICAgcXVhZEN1bGxlci5hcHBlbmRTdXJmYWNlKENDRGVidWdCb3JkZXJEcmF3UXVhZDo6Y3JlYXRl
KHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSwgc3VyZmFjZS0+Y29udGVudFJlY3QoKSwgY29sb3IsIGRl
YnVnU3VyZmFjZUJvcmRlcldpZHRoKSk7CiAgICAgfQorCisgICAgcXVhZEN1bGxlci5jcmVhdGVD
dWxsZWREZWJ1Z0JvcmRlclF1YWRzKGxheWVyLT5oYXNEZWJ1Z0JvcmRlcnMoKSk7CiAgICAgYm9v
bCBpc1JlcGxpY2EgPSBmYWxzZTsKICAgICBxdWFkQ3VsbGVyLmFwcGVuZFN1cmZhY2UoQ0NSZW5k
ZXJTdXJmYWNlRHJhd1F1YWQ6OmNyZWF0ZShzaGFyZWRRdWFkU3RhdGUuZ2V0KCksIHN1cmZhY2Ut
PmNvbnRlbnRSZWN0KCksIGxheWVyLCBzdXJmYWNlRGFtYWdlUmVjdCgpLCBpc1JlcGxpY2EpKTsK
ICAgICBtX3NoYXJlZFF1YWRTdGF0ZUxpc3QuYXBwZW5kKHNoYXJlZFF1YWRTdGF0ZS5yZWxlYXNl
KCkpOworICAgIHF1YWRDdWxsZXIuY3JlYXRlQ3VsbGVkRGVidWdCb3JkZXJRdWFkcyhmYWxzZSk7
CiAKICAgICAvLyBBZGQgcmVwbGljYSBhZnRlciB0aGUgc3VyZmFjZSBzbyB0aGF0IGl0IGFwcGVh
cnMgYmVsb3cgdGhlIHN1cmZhY2UuCiAgICAgaWYgKHN1cmZhY2UtPmhhc1JlcGxpY2EoKSkgewpA
QCAtOTEsNiArOTYsOCBAQCB2b2lkIENDUmVuZGVyUGFzczo6YXBwZW5kUXVhZHNGb3JSZW5kZXJT
dXJmYWNlTGF5ZXIoQ0NMYXllckltcGwqIGxheWVyLCBDQ09jY2x1cwogICAgICAgICAgICAgQ29s
b3IgY29sb3IoZGVidWdSZXBsaWNhQm9yZGVyQ29sb3JSZWQsIGRlYnVnUmVwbGljYUJvcmRlckNv
bG9yR3JlZW4sIGRlYnVnUmVwbGljYUJvcmRlckNvbG9yQmx1ZSwgZGVidWdTdXJmYWNlQm9yZGVy
QWxwaGEpOwogICAgICAgICAgICAgcXVhZEN1bGxlci5hcHBlbmRSZXBsaWNhKENDRGVidWdCb3Jk
ZXJEcmF3UXVhZDo6Y3JlYXRlKHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSwgc3VyZmFjZS0+Y29udGVu
dFJlY3QoKSwgY29sb3IsIGRlYnVnU3VyZmFjZUJvcmRlcldpZHRoKSk7CiAgICAgICAgIH0KKwor
ICAgICAgICBxdWFkQ3VsbGVyLmNyZWF0ZUN1bGxlZERlYnVnQm9yZGVyUXVhZHMobGF5ZXItPmhh
c0RlYnVnQm9yZGVycygpKTsKICAgICAgICAgYm9vbCBpc1JlcGxpY2EgPSB0cnVlOwogICAgICAg
ICBxdWFkQ3VsbGVyLmFwcGVuZFJlcGxpY2EoQ0NSZW5kZXJTdXJmYWNlRHJhd1F1YWQ6OmNyZWF0
ZShzaGFyZWRRdWFkU3RhdGUuZ2V0KCksIHN1cmZhY2UtPmNvbnRlbnRSZWN0KCksIGxheWVyLCBz
dXJmYWNlRGFtYWdlUmVjdCgpLCBpc1JlcGxpY2EpKTsKICAgICAgICAgbV9zaGFyZWRRdWFkU3Rh
dGVMaXN0LmFwcGVuZChzaGFyZWRRdWFkU3RhdGUucmVsZWFzZSgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140818</attachid>
            <date>2012-05-08 16:53:44 -0700</date>
            <delta_ts>2012-05-08 18:14:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85414-20120508195342.patch</filename>
            <type>text/plain</type>
            <size>11905</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTdiMTVkN2M0MzFmYjc2
OGMzYTY5MmRiY2M2YjAzMzBkNDhiZDRhMy4uZTRkMDA0MGNiOWE3ZTU2ODEwNWJmYjU1N2IwMDY5
ZWM5MjVkNTEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA1LTA4ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gU2hv
dyBib3JkZXJzIGZvciBwYXJ0aWFsLWRyYXctY3VsbGVkIHF1YWRzIHRvIHZpc3VhbGl6ZSBjdWxs
aW5nIGJlaGF2aW91cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODU0MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGUgYm9yZGVycyBhcmUgYnJvd24sIGFuZCBhcmUgb25seSBzaG93biB3aGVuIHRoZSBx
dWFkJ3MgdmlzaWJsZSByZWN0CisgICAgICAgIGlzIG5vbi1lbXB0eSBhbmQgaXMgZGlmZmVyZW50
IGZyb20gdGhlIHF1YWQncyBvcmlnaW5hbCByZWN0LgorCisgICAgICAgIEFkZHMgYSBmbGFnIHRv
IENDUXVhZEN1bGxlciBjb25zdHJ1Y3RvciwgdG8gZW5hYmxlIHNob3dpbmcgZGVidWcgYm9yZGVy
cworICAgICAgICBhcm91bmQgd2hhdCBpdCBsZWF2ZXMgYWZ0ZXIgY3VsbGluZyAod2hlbiBpdCBj
dWxscyBhbnl0aGluZyBpbiBhIHF1YWQKKyAgICAgICAgYXQgYWxsKS4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRHJhd1F1YWQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkNDRHJhd1F1YWQ6OmlzRGVidWdRdWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkNDRHJhd1F1
YWQ6OnNoYXJlZFF1YWRTdGF0ZSk6CisgICAgICAgIChDQ0RyYXdRdWFkKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1F1YWRDdWxsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1F1YWRDdWxsZXI6OkNDUXVhZEN1bGxlcik6
CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRRdWFkSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29y
ZTo6Q0NRdWFkQ3VsbGVyOjphcHBlbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NRdWFkQ3VsbGVy
OjphcHBlbmRTdXJmYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDUXVhZEN1bGxlcjo6YXBwZW5k
UmVwbGljYSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NRdWFk
Q3VsbGVyLmg6CisgICAgICAgIChDQ1F1YWRDdWxsZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
Q1JlbmRlclBhc3M6OmFwcGVuZFF1YWRzRm9yTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q0NS
ZW5kZXJQYXNzOjphcHBlbmRRdWFkc0ZvclJlbmRlclN1cmZhY2VMYXllcik6CisKIDIwMTItMDUt
MDggIFJheW1vbmQgVG95ICA8cnRveUBnb29nbGUuY29tPgogCiAgICAgICAgIEphdmFTY3JpcHRB
dWRpb05vZGUgc2hvdWxkIG5vdCBBU1NFUlQgaWYgbnVtYmVyIG9mIGlucHV0IGNoYW5uZWxzIGlz
IDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYmIyMDk5MThkOWNmYzkyMmM1YjgwMzdh
ZDgzNTA1ZjU0MWIwNjZmZS4uZTYxYWQ1NTYxM2Q5MzExOTdlMTJkOTgwZmNlODc3MDBjNWY0Mzc5
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNyBAQAogMjAxMi0wNS0w
OCAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbY2hyb21p
dW1dIFNob3cgYm9yZGVycyBmb3IgcGFydGlhbC1kcmF3LWN1bGxlZCBxdWFkcyB0byB2aXN1YWxp
emUgY3VsbGluZyBiZWhhdmlvdXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg1NDE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiB0ZXN0cy9DQ1F1YWRDdWxsZXJUZXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmFwcGVuZFF1YWRzKToKKyAgICAgICAgKiB0ZXN0cy9Nb2NrQ0NRdWFkQ3VsbGVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpNb2NrQ0NRdWFkQ3VsbGVyOjpNb2NrQ0NRdWFkQ3VsbGVyKToKKwor
MjAxMi0wNS0wOCAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKwogICAgICAg
ICBSZWdpb24gcmVhZHMgcGFzdCBlbmQgb2Ygc3BhbnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1OTA5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRHJhd1F1YWQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRHJhd1F1YWQuaAppbmRleCBi
Nzg4ODJlNmE5YmJkMTQwYTE2MTMxYzIwY2E0MzEzMTQ5OTRmMGRkLi4wMzcxMmQ2ZjRjZDE5MmVm
MzAxYzc0Y2ViZTlkOWRlNTM5NWRlZTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RyYXdRdWFkLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEcmF3UXVhZC5oCkBAIC03NSw2ICs3
NSw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgTWF0ZXJpYWwgbWF0ZXJpYWwoKSBjb25zdCB7
IHJldHVybiBtX21hdGVyaWFsOyB9CisgICAgYm9vbCBpc0RlYnVnUXVhZCgpIGNvbnN0IHsgcmV0
dXJuIG1fbWF0ZXJpYWwgIT0gRGVidWdCb3JkZXI7IH0KIAogICAgIGNvbnN0IENDQ2hlY2tlcmJv
YXJkRHJhd1F1YWQqIHRvQ2hlY2tlcmJvYXJkRHJhd1F1YWQoKSBjb25zdDsKICAgICBjb25zdCBD
Q0RlYnVnQm9yZGVyRHJhd1F1YWQqIHRvRGVidWdCb3JkZXJEcmF3UXVhZCgpIGNvbnN0OwpAQCAt
ODUsNiArODYsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgQ0NUaWxlRHJhd1F1YWQqIHRvVGlsZURy
YXdRdWFkKCkgY29uc3Q7CiAgICAgY29uc3QgQ0NWaWRlb0RyYXdRdWFkKiB0b1ZpZGVvRHJhd1F1
YWQoKSBjb25zdDsKIAorICAgIGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKiBzaGFyZWRRdWFkU3Rh
dGUoKSBjb25zdCB7IHJldHVybiBtX3NoYXJlZFF1YWRTdGF0ZTsgfQorCiBwcm90ZWN0ZWQ6CiAg
ICAgQ0NEcmF3UXVhZChjb25zdCBDQ1NoYXJlZFF1YWRTdGF0ZSosIE1hdGVyaWFsLCBjb25zdCBJ
bnRSZWN0Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDUXVhZEN1bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1F1YWRDdWxsZXIuY3BwCmluZGV4IGU1ZmQ2OTBjY2VhMjBh
Mzg1ZjUyMmU5YTUzZmM2MDBiMzI1NjkwNzYuLjM2NDYyNDg2NjI0NTY2OTBiNWJmYmNlMmE5Yzhj
MWViMzU4NzQ4YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDUXVhZEN1bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NRdWFkQ3VsbGVyLmNwcApAQCAtMzEsNiArMzEsNyBA
QAogCiAjaW5jbHVkZSAiUmVnaW9uLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXgu
aCIKKyNpbmNsdWRlICJjYy9DQ0RlYnVnQm9yZGVyRHJhd1F1YWQuaCIKICNpbmNsdWRlICJjYy9D
Q0xheWVySW1wbC5oIgogI2luY2x1ZGUgImNjL0NDT3ZlcmRyYXdNZXRyaWNzLmgiCiAjaW5jbHVk
ZSAiY2MvQ0NSZW5kZXJQYXNzLmgiCkBAIC00MCwxNCArNDEsMjEgQEAgdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DQ1F1YWRDdWxsZXI6OkNDUXVhZEN1bGxl
cihDQ1F1YWRMaXN0JiBxdWFkTGlzdCwgQ0NMYXllckltcGwqIGxheWVyLCBjb25zdCBDQ09jY2x1
c2lvblRyYWNrZXJJbXBsKiBvY2NsdXNpb25UcmFja2VyKQorc3RhdGljIGNvbnN0IGludCBkZWJ1
Z1RpbGVCb3JkZXJXaWR0aCA9IDE7CitzdGF0aWMgY29uc3QgaW50IGRlYnVnVGlsZUJvcmRlckFs
cGhhID0gMTIwOworc3RhdGljIGNvbnN0IGludCBkZWJ1Z1RpbGVCb3JkZXJDb2xvclJlZCA9IDE2
MDsKK3N0YXRpYyBjb25zdCBpbnQgZGVidWdUaWxlQm9yZGVyQ29sb3JHcmVlbiA9IDEwMDsKK3N0
YXRpYyBjb25zdCBpbnQgZGVidWdUaWxlQm9yZGVyQ29sb3JCbHVlID0gMDsKKworQ0NRdWFkQ3Vs
bGVyOjpDQ1F1YWRDdWxsZXIoQ0NRdWFkTGlzdCYgcXVhZExpc3QsIENDTGF5ZXJJbXBsKiBsYXll
ciwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VySW1wbCogb2NjbHVzaW9uVHJhY2tlciwgYm9vbCBz
aG93Q3VsbGluZ1dpdGhEZWJ1Z0JvcmRlclF1YWRzKQogICAgIDogbV9xdWFkTGlzdChxdWFkTGlz
dCkKICAgICAsIG1fbGF5ZXIobGF5ZXIpCiAgICAgLCBtX29jY2x1c2lvblRyYWNrZXIob2NjbHVz
aW9uVHJhY2tlcikKKyAgICAsIG1fc2hvd0N1bGxpbmdXaXRoRGVidWdCb3JkZXJRdWFkcyhzaG93
Q3VsbGluZ1dpdGhEZWJ1Z0JvcmRlclF1YWRzKQogewogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wg
YXBwZW5kUXVhZEludGVybmFsKFBhc3NPd25QdHI8Q0NEcmF3UXVhZD4gcGFzc0RyYXdRdWFkLCBj
b25zdCBJbnRSZWN0JiBjdWxsZWRSZWN0LCBDQ1F1YWRMaXN0JiBxdWFkTGlzdCwgY29uc3QgQ0NP
Y2NsdXNpb25UcmFja2VySW1wbCYgb2NjbHVzaW9uVHJhY2tlcikKK3N0YXRpYyBpbmxpbmUgYm9v
bCBhcHBlbmRRdWFkSW50ZXJuYWwoUGFzc093blB0cjxDQ0RyYXdRdWFkPiBwYXNzRHJhd1F1YWQs
IGNvbnN0IEludFJlY3QmIGN1bGxlZFJlY3QsIENDUXVhZExpc3QmIHF1YWRMaXN0LCBjb25zdCBD
Q09jY2x1c2lvblRyYWNrZXJJbXBsJiBvY2NsdXNpb25UcmFja2VyLCBib29sIGNyZWF0ZURlYnVn
Qm9yZGVyUXVhZHMpCiB7CiAgICAgT3duUHRyPENDRHJhd1F1YWQ+IGRyYXdRdWFkKHBhc3NEcmF3
UXVhZCk7CiAgICAgYm9vbCBrZWVwUXVhZCA9ICFjdWxsZWRSZWN0LmlzRW1wdHkoKTsKQEAgLTU3
LDI4ICs2NSwzNCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgYXBwZW5kUXVhZEludGVybmFsKFBhc3NP
d25QdHI8Q0NEcmF3UXVhZD4gcGFzc0RyYXdRdWFkLCBjb25zdAogICAgIG9jY2x1c2lvblRyYWNr
ZXIub3ZlcmRyYXdNZXRyaWNzKCkuZGlkQ3VsbEZvckRyYXdpbmcoZHJhd1F1YWQtPnF1YWRUcmFu
c2Zvcm0oKSwgZHJhd1F1YWQtPnF1YWRSZWN0KCksIGN1bGxlZFJlY3QpOwogICAgIG9jY2x1c2lv
blRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkuZGlkRHJhdyhkcmF3UXVhZC0+cXVhZFRyYW5zZm9y
bSgpLCBjdWxsZWRSZWN0LCBkcmF3UXVhZC0+b3BhcXVlUmVjdCgpKTsKIAotICAgIC8vIFJlbGVh
c2UgdGhlIHF1YWQgYWZ0ZXIgd2UncmUgZG9uZSB1c2luZyBpdC4KLSAgICBpZiAoa2VlcFF1YWQp
CisgICAgaWYgKGtlZXBRdWFkKSB7CisgICAgICAgIGlmIChjcmVhdGVEZWJ1Z0JvcmRlclF1YWRz
ICYmICFkcmF3UXVhZC0+aXNEZWJ1Z1F1YWQoKSAmJiBkcmF3UXVhZC0+cXVhZFZpc2libGVSZWN0
KCkgIT0gZHJhd1F1YWQtPnF1YWRSZWN0KCkpIHsKKyAgICAgICAgICAgIENvbG9yIGJvcmRlckNv
bG9yID0gQ29sb3IoZGVidWdUaWxlQm9yZGVyQ29sb3JSZWQsIGRlYnVnVGlsZUJvcmRlckNvbG9y
R3JlZW4sIGRlYnVnVGlsZUJvcmRlckNvbG9yQmx1ZSwgZGVidWdUaWxlQm9yZGVyQWxwaGEpOwor
ICAgICAgICAgICAgcXVhZExpc3QuYXBwZW5kKENDRGVidWdCb3JkZXJEcmF3UXVhZDo6Y3JlYXRl
KGRyYXdRdWFkLT5zaGFyZWRRdWFkU3RhdGUoKSwgZHJhd1F1YWQtPnF1YWRWaXNpYmxlUmVjdCgp
LCBib3JkZXJDb2xvciwgZGVidWdUaWxlQm9yZGVyV2lkdGgpKTsKKyAgICAgICAgfQorCisgICAg
ICAgIC8vIFJlbGVhc2UgdGhlIHF1YWQgYWZ0ZXIgd2UncmUgZG9uZSB1c2luZyBpdC4KICAgICAg
ICAgcXVhZExpc3QuYXBwZW5kKGRyYXdRdWFkLnJlbGVhc2UoKSk7CisgICAgfQogICAgIHJldHVy
biBrZWVwUXVhZDsKIH0KIAogYm9vbCBDQ1F1YWRDdWxsZXI6OmFwcGVuZChQYXNzT3duUHRyPEND
RHJhd1F1YWQ+IHBhc3NEcmF3UXVhZCkKIHsKICAgICBJbnRSZWN0IGN1bGxlZFJlY3QgPSBtX29j
Y2x1c2lvblRyYWNrZXItPnVub2NjbHVkZWRDb250ZW50UmVjdChtX2xheWVyLCBwYXNzRHJhd1F1
YWQtPnF1YWRSZWN0KCkpOwotICAgIHJldHVybiBhcHBlbmRRdWFkSW50ZXJuYWwocGFzc0RyYXdR
dWFkLCBjdWxsZWRSZWN0LCBtX3F1YWRMaXN0LCAqbV9vY2NsdXNpb25UcmFja2VyKTsKKyAgICBy
ZXR1cm4gYXBwZW5kUXVhZEludGVybmFsKHBhc3NEcmF3UXVhZCwgY3VsbGVkUmVjdCwgbV9xdWFk
TGlzdCwgKm1fb2NjbHVzaW9uVHJhY2tlciwgbV9zaG93Q3VsbGluZ1dpdGhEZWJ1Z0JvcmRlclF1
YWRzKTsKIH0KIAogYm9vbCBDQ1F1YWRDdWxsZXI6OmFwcGVuZFN1cmZhY2UoUGFzc093blB0cjxD
Q0RyYXdRdWFkPiBwYXNzRHJhd1F1YWQpCiB7CiAgICAgSW50UmVjdCBjdWxsZWRSZWN0ID0gbV9v
Y2NsdXNpb25UcmFja2VyLT51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0
KG1fbGF5ZXItPnJlbmRlclN1cmZhY2UoKSwgZmFsc2UsIHBhc3NEcmF3UXVhZC0+cXVhZFJlY3Qo
KSk7Ci0gICAgcmV0dXJuIGFwcGVuZFF1YWRJbnRlcm5hbChwYXNzRHJhd1F1YWQsIGN1bGxlZFJl
Y3QsIG1fcXVhZExpc3QsICptX29jY2x1c2lvblRyYWNrZXIpOworICAgIHJldHVybiBhcHBlbmRR
dWFkSW50ZXJuYWwocGFzc0RyYXdRdWFkLCBjdWxsZWRSZWN0LCBtX3F1YWRMaXN0LCAqbV9vY2Ns
dXNpb25UcmFja2VyLCBtX3Nob3dDdWxsaW5nV2l0aERlYnVnQm9yZGVyUXVhZHMpOwogfQogCiBi
b29sIENDUXVhZEN1bGxlcjo6YXBwZW5kUmVwbGljYShQYXNzT3duUHRyPENDRHJhd1F1YWQ+IHBh
c3NEcmF3UXVhZCkKIHsKICAgICBJbnRSZWN0IGN1bGxlZFJlY3QgPSBtX29jY2x1c2lvblRyYWNr
ZXItPnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3QobV9sYXllci0+cmVu
ZGVyU3VyZmFjZSgpLCB0cnVlLCBwYXNzRHJhd1F1YWQtPnF1YWRSZWN0KCkpOwotICAgIHJldHVy
biBhcHBlbmRRdWFkSW50ZXJuYWwocGFzc0RyYXdRdWFkLCBjdWxsZWRSZWN0LCBtX3F1YWRMaXN0
LCAqbV9vY2NsdXNpb25UcmFja2VyKTsKKyAgICByZXR1cm4gYXBwZW5kUXVhZEludGVybmFsKHBh
c3NEcmF3UXVhZCwgY3VsbGVkUmVjdCwgbV9xdWFkTGlzdCwgKm1fb2NjbHVzaW9uVHJhY2tlciwg
bV9zaG93Q3VsbGluZ1dpdGhEZWJ1Z0JvcmRlclF1YWRzKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NRdWFkQ3VsbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1F1YWRDdWxsZXIuaAppbmRleCA1ZGIwYTk4YzU0Y2E0MTBkZmM0MWY4
MTYyNWY1ODNmN2U5YjE5ZjFjLi4yZDJkODAxNjYzZTZmMDYxMzgzNTNmMmM1NjVkYTdkMDkwZDIz
YjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1F1YWRDdWxsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1F1YWRDdWxsZXIuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBDQ1F1
YWRDdWxsZXIgewogcHVibGljOgogICAgIC8vIFBhc3NpbmcgMCBmb3IgQ0NPdmVyZHJhd0NvdW50
cyogaXMgdmFsaWQsIGFuZCBkaXNhYmxlIHRoZSBleHRyYSBjb21wdXRhdGlvbgogICAgIC8vIGRv
bmUgdG8gZXN0aW1hdGUgb3ZlciBkcmF3IHN0YXRpc3RpY3MuCi0gICAgQ0NRdWFkQ3VsbGVyKEND
UXVhZExpc3QmLCBDQ0xheWVySW1wbCosIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlckltcGwqKTsK
KyAgICBDQ1F1YWRDdWxsZXIoQ0NRdWFkTGlzdCYsIENDTGF5ZXJJbXBsKiwgY29uc3QgQ0NPY2Ns
dXNpb25UcmFja2VySW1wbCosIGJvb2wgc2hvd0N1bGxpbmdXaXRoRGVidWdCb3JkZXJRdWFkcyk7
CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHF1YWQgaXMgYWRkZWQgdG8gdGhlIGxpc3Qs
IGFuZCBmYWxzZSBpZiB0aGUgcXVhZCBpcyBlbnRpcmVseSBjdWxsZWQuCiAgICAgdmlydHVhbCBi
b29sIGFwcGVuZChQYXNzT3duUHRyPENDRHJhd1F1YWQ+IHBhc3NEcmF3UXVhZCk7CkBAIC00Nyw2
ICs0Nyw3IEBAIHByaXZhdGU6CiAgICAgQ0NRdWFkTGlzdCYgbV9xdWFkTGlzdDsKICAgICBDQ0xh
eWVySW1wbCogbV9sYXllcjsKICAgICBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXJJbXBsKiBtX29j
Y2x1c2lvblRyYWNrZXI7CisgICAgYm9vbCBtX3Nob3dDdWxsaW5nV2l0aERlYnVnQm9yZGVyUXVh
ZHM7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBhc3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNzLmNwcAppbmRleCAzM2I1ZTczMTAxODU0
ZWQxMGM4YWVmOGY0YWU1ZTcwZTNhZGJmOTdmLi44NDg3MzBhMmM3YjYwYjc2MjM4OTlmZDdmOWI0
MTMzMGEyZTk3Y2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBhc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5jcHAKQEAgLTYwLDcgKzYwLDcg
QEAgQ0NSZW5kZXJQYXNzOjpDQ1JlbmRlclBhc3MoQ0NSZW5kZXJTdXJmYWNlKiB0YXJnZXRTdXJm
YWNlKQogCiB2b2lkIENDUmVuZGVyUGFzczo6YXBwZW5kUXVhZHNGb3JMYXllcihDQ0xheWVySW1w
bCogbGF5ZXIsIENDT2NjbHVzaW9uVHJhY2tlckltcGwqIG9jY2x1c2lvblRyYWNrZXIsIGJvb2wm
IGhhZE1pc3NpbmdUaWxlcykKIHsKLSAgICBDQ1F1YWRDdWxsZXIgcXVhZEN1bGxlcihtX3F1YWRM
aXN0LCBsYXllciwgb2NjbHVzaW9uVHJhY2tlcik7CisgICAgQ0NRdWFkQ3VsbGVyIHF1YWRDdWxs
ZXIobV9xdWFkTGlzdCwgbGF5ZXIsIG9jY2x1c2lvblRyYWNrZXIsIGxheWVyLT5oYXNEZWJ1Z0Jv
cmRlcnMoKSk7CiAKICAgICBPd25QdHI8Q0NTaGFyZWRRdWFkU3RhdGU+IHNoYXJlZFF1YWRTdGF0
ZSA9IGxheWVyLT5jcmVhdGVTaGFyZWRRdWFkU3RhdGUoKTsKICAgICBsYXllci0+YXBwZW5kRGVi
dWdCb3JkZXJRdWFkKHF1YWRDdWxsZXIsIHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSk7CkBAIC03Miw3
ICs3Miw3IEBAIHZvaWQgQ0NSZW5kZXJQYXNzOjphcHBlbmRRdWFkc0ZvclJlbmRlclN1cmZhY2VM
YXllcihDQ0xheWVySW1wbCogbGF5ZXIsIENDT2NjbHVzCiB7CiAgICAgLy8gRklYTUU6IHJlbmRl
ciBzdXJmYWNlIGxheWVycyBzaG91bGQgYmUgYSBDQ0xheWVySW1wbC1kZXJpdmVkIGNsYXNzIGFu
ZAogICAgIC8vIG5vdCBiZSBoYW5kbGVkIHNwZWNpYWxseSBoZXJlLgotICAgIENDUXVhZEN1bGxl
ciBxdWFkQ3VsbGVyKG1fcXVhZExpc3QsIGxheWVyLCBvY2NsdXNpb25UcmFja2VyKTsKKyAgICBD
Q1F1YWRDdWxsZXIgcXVhZEN1bGxlcihtX3F1YWRMaXN0LCBsYXllciwgb2NjbHVzaW9uVHJhY2tl
ciwgbGF5ZXItPmhhc0RlYnVnQm9yZGVycygpKTsKIAogICAgIENDUmVuZGVyU3VyZmFjZSogc3Vy
ZmFjZSA9IGxheWVyLT5yZW5kZXJTdXJmYWNlKCk7CiAgICAgT3duUHRyPENDU2hhcmVkUXVhZFN0
YXRlPiBzaGFyZWRRdWFkU3RhdGUgPSBzdXJmYWNlLT5jcmVhdGVTaGFyZWRRdWFkU3RhdGUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NRdWFkQ3VsbGVyVGVz
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDUXVhZEN1bGxlclRlc3QuY3Bw
CmluZGV4IDk5MWNkZGM0NjRhYjI3MTQ0MGJiNzVjZmU4OTExMzQ3ZTZkYzFmNzMuLjYzNGEyNWM3
YTgzYWJmYjZlZGIwM2UyNzU0YTQxOTRhZWIzNTQ2NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvQ0NRdWFkQ3VsbGVyVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9DQ1F1YWRDdWxsZXJUZXN0LmNwcApAQCAtOTEsNyArOTEsNyBAQCBz
dGF0aWMgUGFzc093blB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiBtYWtlTGF5ZXIoQ0NUaWxlZExheWVy
SW1wbCogcGFyZW50LCBjb25zdCBUcgogc3RhdGljIHZvaWQgYXBwZW5kUXVhZHMoQ0NRdWFkTGlz
dCYgcXVhZExpc3QsIFZlY3RvcjxPd25QdHI8Q0NTaGFyZWRRdWFkU3RhdGU+ID4mIHNoYXJlZFN0
YXRlTGlzdCwgQ0NUaWxlZExheWVySW1wbCogbGF5ZXIsIENDTGF5ZXJJdGVyYXRvclR5cGUmIGl0
LCBDQ09jY2x1c2lvblRyYWNrZXJJbXBsJiBvY2NsdXNpb25UcmFja2VyKQogewogICAgIG9jY2x1
c2lvblRyYWNrZXIuZW50ZXJMYXllcihpdCk7Ci0gICAgQ0NRdWFkQ3VsbGVyIHF1YWRDdWxsZXIo
cXVhZExpc3QsIGxheWVyLCAmb2NjbHVzaW9uVHJhY2tlcik7CisgICAgQ0NRdWFkQ3VsbGVyIHF1
YWRDdWxsZXIocXVhZExpc3QsIGxheWVyLCAmb2NjbHVzaW9uVHJhY2tlciwgZmFsc2UpOwogICAg
IE93blB0cjxDQ1NoYXJlZFF1YWRTdGF0ZT4gc2hhcmVkUXVhZFN0YXRlID0gbGF5ZXItPmNyZWF0
ZVNoYXJlZFF1YWRTdGF0ZSgpOwogICAgIGJvb2wgaGFkTWlzc2luZ1RpbGVzID0gZmFsc2U7CiAg
ICAgbGF5ZXItPmFwcGVuZFF1YWRzKHF1YWRDdWxsZXIsIHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSwg
aGFkTWlzc2luZ1RpbGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvTW9ja0NDUXVhZEN1bGxlci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Nb2Nr
Q0NRdWFkQ3VsbGVyLmgKaW5kZXggZDljZDMxMzI2ODMwYmQxMjIwMzFjZjBjOGUxOGVkY2Q5MGVj
OTVjNy4uMzg1NTA3ZTJjN2M0MWQyYTU5MWZiZTMzNmQwODcyMjUyNTkyOWMyYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Nb2NrQ0NRdWFkQ3VsbGVyLmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Nb2NrQ0NRdWFkQ3VsbGVyLmgKQEAgLTM1LDEy
ICszNSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBNb2NrQ0NRdWFkQ3VsbGVyIDog
cHVibGljIFdlYkNvcmU6OkNDUXVhZEN1bGxlciB7CiBwdWJsaWM6CiAgICAgTW9ja0NDUXVhZEN1
bGxlcigpCi0gICAgICAgIDogQ0NRdWFkQ3VsbGVyKG1fcXVhZExpc3RTdG9yYWdlLCAwLCAwKQor
ICAgICAgICA6IENDUXVhZEN1bGxlcihtX3F1YWRMaXN0U3RvcmFnZSwgMCwgMCwgZmFsc2UpCiAg
ICAgICAgICwgbV9hY3RpdmVRdWFkTGlzdChtX3F1YWRMaXN0U3RvcmFnZSkKICAgICB7IH0KIAog
ICAgIGV4cGxpY2l0IE1vY2tDQ1F1YWRDdWxsZXIoQ0NRdWFkTGlzdCYgZXh0ZXJuYWxRdWFkTGlz
dCkKLSAgICAgICAgOiBDQ1F1YWRDdWxsZXIoZXh0ZXJuYWxRdWFkTGlzdCwgMCwgMCkKKyAgICAg
ICAgOiBDQ1F1YWRDdWxsZXIoZXh0ZXJuYWxRdWFkTGlzdCwgMCwgMCwgZmFsc2UpCiAgICAgICAg
ICwgbV9hY3RpdmVRdWFkTGlzdChleHRlcm5hbFF1YWRMaXN0KQogICAgIHsgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140836</attachid>
            <date>2012-05-08 18:14:51 -0700</date>
            <delta_ts>2012-05-08 19:25:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85414-20120508211449.patch</filename>
            <type>text/plain</type>
            <size>11905</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTdiMTVkN2M0MzFmYjc2
OGMzYTY5MmRiY2M2YjAzMzBkNDhiZDRhMy4uZTRkMDA0MGNiOWE3ZTU2ODEwNWJmYjU1N2IwMDY5
ZWM5MjVkNTEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA1LTA4ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gU2hv
dyBib3JkZXJzIGZvciBwYXJ0aWFsLWRyYXctY3VsbGVkIHF1YWRzIHRvIHZpc3VhbGl6ZSBjdWxs
aW5nIGJlaGF2aW91cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODU0MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGUgYm9yZGVycyBhcmUgYnJvd24sIGFuZCBhcmUgb25seSBzaG93biB3aGVuIHRoZSBx
dWFkJ3MgdmlzaWJsZSByZWN0CisgICAgICAgIGlzIG5vbi1lbXB0eSBhbmQgaXMgZGlmZmVyZW50
IGZyb20gdGhlIHF1YWQncyBvcmlnaW5hbCByZWN0LgorCisgICAgICAgIEFkZHMgYSBmbGFnIHRv
IENDUXVhZEN1bGxlciBjb25zdHJ1Y3RvciwgdG8gZW5hYmxlIHNob3dpbmcgZGVidWcgYm9yZGVy
cworICAgICAgICBhcm91bmQgd2hhdCBpdCBsZWF2ZXMgYWZ0ZXIgY3VsbGluZyAod2hlbiBpdCBj
dWxscyBhbnl0aGluZyBpbiBhIHF1YWQKKyAgICAgICAgYXQgYWxsKS4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRHJhd1F1YWQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkNDRHJhd1F1YWQ6OmlzRGVidWdRdWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkNDRHJhd1F1
YWQ6OnNoYXJlZFF1YWRTdGF0ZSk6CisgICAgICAgIChDQ0RyYXdRdWFkKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1F1YWRDdWxsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1F1YWRDdWxsZXI6OkNDUXVhZEN1bGxlcik6
CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRRdWFkSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29y
ZTo6Q0NRdWFkQ3VsbGVyOjphcHBlbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NRdWFkQ3VsbGVy
OjphcHBlbmRTdXJmYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDUXVhZEN1bGxlcjo6YXBwZW5k
UmVwbGljYSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NRdWFk
Q3VsbGVyLmg6CisgICAgICAgIChDQ1F1YWRDdWxsZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
Q1JlbmRlclBhc3M6OmFwcGVuZFF1YWRzRm9yTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q0NS
ZW5kZXJQYXNzOjphcHBlbmRRdWFkc0ZvclJlbmRlclN1cmZhY2VMYXllcik6CisKIDIwMTItMDUt
MDggIFJheW1vbmQgVG95ICA8cnRveUBnb29nbGUuY29tPgogCiAgICAgICAgIEphdmFTY3JpcHRB
dWRpb05vZGUgc2hvdWxkIG5vdCBBU1NFUlQgaWYgbnVtYmVyIG9mIGlucHV0IGNoYW5uZWxzIGlz
IDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYmIyMDk5MThkOWNmYzkyMmM1YjgwMzdh
ZDgzNTA1ZjU0MWIwNjZmZS4uZTYxYWQ1NTYxM2Q5MzExOTdlMTJkOTgwZmNlODc3MDBjNWY0Mzc5
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNyBAQAogMjAxMi0wNS0w
OCAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbY2hyb21p
dW1dIFNob3cgYm9yZGVycyBmb3IgcGFydGlhbC1kcmF3LWN1bGxlZCBxdWFkcyB0byB2aXN1YWxp
emUgY3VsbGluZyBiZWhhdmlvdXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg1NDE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiB0ZXN0cy9DQ1F1YWRDdWxsZXJUZXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmFwcGVuZFF1YWRzKToKKyAgICAgICAgKiB0ZXN0cy9Nb2NrQ0NRdWFkQ3VsbGVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpNb2NrQ0NRdWFkQ3VsbGVyOjpNb2NrQ0NRdWFkQ3VsbGVyKToKKwor
MjAxMi0wNS0wOCAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKwogICAgICAg
ICBSZWdpb24gcmVhZHMgcGFzdCBlbmQgb2Ygc3BhbnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1OTA5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRHJhd1F1YWQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRHJhd1F1YWQuaAppbmRleCBi
Nzg4ODJlNmE5YmJkMTQwYTE2MTMxYzIwY2E0MzEzMTQ5OTRmMGRkLi5mNGVmMmQzZjIxYzFmYWU1
NzY2NjNjZDMyMmZjYjEyN2I4N2NiZmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RyYXdRdWFkLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEcmF3UXVhZC5oCkBAIC03NSw2ICs3
NSw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgTWF0ZXJpYWwgbWF0ZXJpYWwoKSBjb25zdCB7
IHJldHVybiBtX21hdGVyaWFsOyB9CisgICAgYm9vbCBpc0RlYnVnUXVhZCgpIGNvbnN0IHsgcmV0
dXJuIG1fbWF0ZXJpYWwgPT0gRGVidWdCb3JkZXI7IH0KIAogICAgIGNvbnN0IENDQ2hlY2tlcmJv
YXJkRHJhd1F1YWQqIHRvQ2hlY2tlcmJvYXJkRHJhd1F1YWQoKSBjb25zdDsKICAgICBjb25zdCBD
Q0RlYnVnQm9yZGVyRHJhd1F1YWQqIHRvRGVidWdCb3JkZXJEcmF3UXVhZCgpIGNvbnN0OwpAQCAt
ODUsNiArODYsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgQ0NUaWxlRHJhd1F1YWQqIHRvVGlsZURy
YXdRdWFkKCkgY29uc3Q7CiAgICAgY29uc3QgQ0NWaWRlb0RyYXdRdWFkKiB0b1ZpZGVvRHJhd1F1
YWQoKSBjb25zdDsKIAorICAgIGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKiBzaGFyZWRRdWFkU3Rh
dGUoKSBjb25zdCB7IHJldHVybiBtX3NoYXJlZFF1YWRTdGF0ZTsgfQorCiBwcm90ZWN0ZWQ6CiAg
ICAgQ0NEcmF3UXVhZChjb25zdCBDQ1NoYXJlZFF1YWRTdGF0ZSosIE1hdGVyaWFsLCBjb25zdCBJ
bnRSZWN0Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDUXVhZEN1bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1F1YWRDdWxsZXIuY3BwCmluZGV4IGU1ZmQ2OTBjY2VhMjBh
Mzg1ZjUyMmU5YTUzZmM2MDBiMzI1NjkwNzYuLjM2NDYyNDg2NjI0NTY2OTBiNWJmYmNlMmE5Yzhj
MWViMzU4NzQ4YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDUXVhZEN1bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NRdWFkQ3VsbGVyLmNwcApAQCAtMzEsNiArMzEsNyBA
QAogCiAjaW5jbHVkZSAiUmVnaW9uLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXgu
aCIKKyNpbmNsdWRlICJjYy9DQ0RlYnVnQm9yZGVyRHJhd1F1YWQuaCIKICNpbmNsdWRlICJjYy9D
Q0xheWVySW1wbC5oIgogI2luY2x1ZGUgImNjL0NDT3ZlcmRyYXdNZXRyaWNzLmgiCiAjaW5jbHVk
ZSAiY2MvQ0NSZW5kZXJQYXNzLmgiCkBAIC00MCwxNCArNDEsMjEgQEAgdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DQ1F1YWRDdWxsZXI6OkNDUXVhZEN1bGxl
cihDQ1F1YWRMaXN0JiBxdWFkTGlzdCwgQ0NMYXllckltcGwqIGxheWVyLCBjb25zdCBDQ09jY2x1
c2lvblRyYWNrZXJJbXBsKiBvY2NsdXNpb25UcmFja2VyKQorc3RhdGljIGNvbnN0IGludCBkZWJ1
Z1RpbGVCb3JkZXJXaWR0aCA9IDE7CitzdGF0aWMgY29uc3QgaW50IGRlYnVnVGlsZUJvcmRlckFs
cGhhID0gMTIwOworc3RhdGljIGNvbnN0IGludCBkZWJ1Z1RpbGVCb3JkZXJDb2xvclJlZCA9IDE2
MDsKK3N0YXRpYyBjb25zdCBpbnQgZGVidWdUaWxlQm9yZGVyQ29sb3JHcmVlbiA9IDEwMDsKK3N0
YXRpYyBjb25zdCBpbnQgZGVidWdUaWxlQm9yZGVyQ29sb3JCbHVlID0gMDsKKworQ0NRdWFkQ3Vs
bGVyOjpDQ1F1YWRDdWxsZXIoQ0NRdWFkTGlzdCYgcXVhZExpc3QsIENDTGF5ZXJJbXBsKiBsYXll
ciwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VySW1wbCogb2NjbHVzaW9uVHJhY2tlciwgYm9vbCBz
aG93Q3VsbGluZ1dpdGhEZWJ1Z0JvcmRlclF1YWRzKQogICAgIDogbV9xdWFkTGlzdChxdWFkTGlz
dCkKICAgICAsIG1fbGF5ZXIobGF5ZXIpCiAgICAgLCBtX29jY2x1c2lvblRyYWNrZXIob2NjbHVz
aW9uVHJhY2tlcikKKyAgICAsIG1fc2hvd0N1bGxpbmdXaXRoRGVidWdCb3JkZXJRdWFkcyhzaG93
Q3VsbGluZ1dpdGhEZWJ1Z0JvcmRlclF1YWRzKQogewogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wg
YXBwZW5kUXVhZEludGVybmFsKFBhc3NPd25QdHI8Q0NEcmF3UXVhZD4gcGFzc0RyYXdRdWFkLCBj
b25zdCBJbnRSZWN0JiBjdWxsZWRSZWN0LCBDQ1F1YWRMaXN0JiBxdWFkTGlzdCwgY29uc3QgQ0NP
Y2NsdXNpb25UcmFja2VySW1wbCYgb2NjbHVzaW9uVHJhY2tlcikKK3N0YXRpYyBpbmxpbmUgYm9v
bCBhcHBlbmRRdWFkSW50ZXJuYWwoUGFzc093blB0cjxDQ0RyYXdRdWFkPiBwYXNzRHJhd1F1YWQs
IGNvbnN0IEludFJlY3QmIGN1bGxlZFJlY3QsIENDUXVhZExpc3QmIHF1YWRMaXN0LCBjb25zdCBD
Q09jY2x1c2lvblRyYWNrZXJJbXBsJiBvY2NsdXNpb25UcmFja2VyLCBib29sIGNyZWF0ZURlYnVn
Qm9yZGVyUXVhZHMpCiB7CiAgICAgT3duUHRyPENDRHJhd1F1YWQ+IGRyYXdRdWFkKHBhc3NEcmF3
UXVhZCk7CiAgICAgYm9vbCBrZWVwUXVhZCA9ICFjdWxsZWRSZWN0LmlzRW1wdHkoKTsKQEAgLTU3
LDI4ICs2NSwzNCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgYXBwZW5kUXVhZEludGVybmFsKFBhc3NP
d25QdHI8Q0NEcmF3UXVhZD4gcGFzc0RyYXdRdWFkLCBjb25zdAogICAgIG9jY2x1c2lvblRyYWNr
ZXIub3ZlcmRyYXdNZXRyaWNzKCkuZGlkQ3VsbEZvckRyYXdpbmcoZHJhd1F1YWQtPnF1YWRUcmFu
c2Zvcm0oKSwgZHJhd1F1YWQtPnF1YWRSZWN0KCksIGN1bGxlZFJlY3QpOwogICAgIG9jY2x1c2lv
blRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkuZGlkRHJhdyhkcmF3UXVhZC0+cXVhZFRyYW5zZm9y
bSgpLCBjdWxsZWRSZWN0LCBkcmF3UXVhZC0+b3BhcXVlUmVjdCgpKTsKIAotICAgIC8vIFJlbGVh
c2UgdGhlIHF1YWQgYWZ0ZXIgd2UncmUgZG9uZSB1c2luZyBpdC4KLSAgICBpZiAoa2VlcFF1YWQp
CisgICAgaWYgKGtlZXBRdWFkKSB7CisgICAgICAgIGlmIChjcmVhdGVEZWJ1Z0JvcmRlclF1YWRz
ICYmICFkcmF3UXVhZC0+aXNEZWJ1Z1F1YWQoKSAmJiBkcmF3UXVhZC0+cXVhZFZpc2libGVSZWN0
KCkgIT0gZHJhd1F1YWQtPnF1YWRSZWN0KCkpIHsKKyAgICAgICAgICAgIENvbG9yIGJvcmRlckNv
bG9yID0gQ29sb3IoZGVidWdUaWxlQm9yZGVyQ29sb3JSZWQsIGRlYnVnVGlsZUJvcmRlckNvbG9y
R3JlZW4sIGRlYnVnVGlsZUJvcmRlckNvbG9yQmx1ZSwgZGVidWdUaWxlQm9yZGVyQWxwaGEpOwor
ICAgICAgICAgICAgcXVhZExpc3QuYXBwZW5kKENDRGVidWdCb3JkZXJEcmF3UXVhZDo6Y3JlYXRl
KGRyYXdRdWFkLT5zaGFyZWRRdWFkU3RhdGUoKSwgZHJhd1F1YWQtPnF1YWRWaXNpYmxlUmVjdCgp
LCBib3JkZXJDb2xvciwgZGVidWdUaWxlQm9yZGVyV2lkdGgpKTsKKyAgICAgICAgfQorCisgICAg
ICAgIC8vIFJlbGVhc2UgdGhlIHF1YWQgYWZ0ZXIgd2UncmUgZG9uZSB1c2luZyBpdC4KICAgICAg
ICAgcXVhZExpc3QuYXBwZW5kKGRyYXdRdWFkLnJlbGVhc2UoKSk7CisgICAgfQogICAgIHJldHVy
biBrZWVwUXVhZDsKIH0KIAogYm9vbCBDQ1F1YWRDdWxsZXI6OmFwcGVuZChQYXNzT3duUHRyPEND
RHJhd1F1YWQ+IHBhc3NEcmF3UXVhZCkKIHsKICAgICBJbnRSZWN0IGN1bGxlZFJlY3QgPSBtX29j
Y2x1c2lvblRyYWNrZXItPnVub2NjbHVkZWRDb250ZW50UmVjdChtX2xheWVyLCBwYXNzRHJhd1F1
YWQtPnF1YWRSZWN0KCkpOwotICAgIHJldHVybiBhcHBlbmRRdWFkSW50ZXJuYWwocGFzc0RyYXdR
dWFkLCBjdWxsZWRSZWN0LCBtX3F1YWRMaXN0LCAqbV9vY2NsdXNpb25UcmFja2VyKTsKKyAgICBy
ZXR1cm4gYXBwZW5kUXVhZEludGVybmFsKHBhc3NEcmF3UXVhZCwgY3VsbGVkUmVjdCwgbV9xdWFk
TGlzdCwgKm1fb2NjbHVzaW9uVHJhY2tlciwgbV9zaG93Q3VsbGluZ1dpdGhEZWJ1Z0JvcmRlclF1
YWRzKTsKIH0KIAogYm9vbCBDQ1F1YWRDdWxsZXI6OmFwcGVuZFN1cmZhY2UoUGFzc093blB0cjxD
Q0RyYXdRdWFkPiBwYXNzRHJhd1F1YWQpCiB7CiAgICAgSW50UmVjdCBjdWxsZWRSZWN0ID0gbV9v
Y2NsdXNpb25UcmFja2VyLT51bm9jY2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0
KG1fbGF5ZXItPnJlbmRlclN1cmZhY2UoKSwgZmFsc2UsIHBhc3NEcmF3UXVhZC0+cXVhZFJlY3Qo
KSk7Ci0gICAgcmV0dXJuIGFwcGVuZFF1YWRJbnRlcm5hbChwYXNzRHJhd1F1YWQsIGN1bGxlZFJl
Y3QsIG1fcXVhZExpc3QsICptX29jY2x1c2lvblRyYWNrZXIpOworICAgIHJldHVybiBhcHBlbmRR
dWFkSW50ZXJuYWwocGFzc0RyYXdRdWFkLCBjdWxsZWRSZWN0LCBtX3F1YWRMaXN0LCAqbV9vY2Ns
dXNpb25UcmFja2VyLCBtX3Nob3dDdWxsaW5nV2l0aERlYnVnQm9yZGVyUXVhZHMpOwogfQogCiBi
b29sIENDUXVhZEN1bGxlcjo6YXBwZW5kUmVwbGljYShQYXNzT3duUHRyPENDRHJhd1F1YWQ+IHBh
c3NEcmF3UXVhZCkKIHsKICAgICBJbnRSZWN0IGN1bGxlZFJlY3QgPSBtX29jY2x1c2lvblRyYWNr
ZXItPnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3QobV9sYXllci0+cmVu
ZGVyU3VyZmFjZSgpLCB0cnVlLCBwYXNzRHJhd1F1YWQtPnF1YWRSZWN0KCkpOwotICAgIHJldHVy
biBhcHBlbmRRdWFkSW50ZXJuYWwocGFzc0RyYXdRdWFkLCBjdWxsZWRSZWN0LCBtX3F1YWRMaXN0
LCAqbV9vY2NsdXNpb25UcmFja2VyKTsKKyAgICByZXR1cm4gYXBwZW5kUXVhZEludGVybmFsKHBh
c3NEcmF3UXVhZCwgY3VsbGVkUmVjdCwgbV9xdWFkTGlzdCwgKm1fb2NjbHVzaW9uVHJhY2tlciwg
bV9zaG93Q3VsbGluZ1dpdGhEZWJ1Z0JvcmRlclF1YWRzKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NRdWFkQ3VsbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1F1YWRDdWxsZXIuaAppbmRleCA1ZGIwYTk4YzU0Y2E0MTBkZmM0MWY4
MTYyNWY1ODNmN2U5YjE5ZjFjLi4yZDJkODAxNjYzZTZmMDYxMzgzNTNmMmM1NjVkYTdkMDkwZDIz
YjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1F1YWRDdWxsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1F1YWRDdWxsZXIuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBDQ1F1
YWRDdWxsZXIgewogcHVibGljOgogICAgIC8vIFBhc3NpbmcgMCBmb3IgQ0NPdmVyZHJhd0NvdW50
cyogaXMgdmFsaWQsIGFuZCBkaXNhYmxlIHRoZSBleHRyYSBjb21wdXRhdGlvbgogICAgIC8vIGRv
bmUgdG8gZXN0aW1hdGUgb3ZlciBkcmF3IHN0YXRpc3RpY3MuCi0gICAgQ0NRdWFkQ3VsbGVyKEND
UXVhZExpc3QmLCBDQ0xheWVySW1wbCosIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlckltcGwqKTsK
KyAgICBDQ1F1YWRDdWxsZXIoQ0NRdWFkTGlzdCYsIENDTGF5ZXJJbXBsKiwgY29uc3QgQ0NPY2Ns
dXNpb25UcmFja2VySW1wbCosIGJvb2wgc2hvd0N1bGxpbmdXaXRoRGVidWdCb3JkZXJRdWFkcyk7
CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHF1YWQgaXMgYWRkZWQgdG8gdGhlIGxpc3Qs
IGFuZCBmYWxzZSBpZiB0aGUgcXVhZCBpcyBlbnRpcmVseSBjdWxsZWQuCiAgICAgdmlydHVhbCBi
b29sIGFwcGVuZChQYXNzT3duUHRyPENDRHJhd1F1YWQ+IHBhc3NEcmF3UXVhZCk7CkBAIC00Nyw2
ICs0Nyw3IEBAIHByaXZhdGU6CiAgICAgQ0NRdWFkTGlzdCYgbV9xdWFkTGlzdDsKICAgICBDQ0xh
eWVySW1wbCogbV9sYXllcjsKICAgICBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXJJbXBsKiBtX29j
Y2x1c2lvblRyYWNrZXI7CisgICAgYm9vbCBtX3Nob3dDdWxsaW5nV2l0aERlYnVnQm9yZGVyUXVh
ZHM7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBhc3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNzLmNwcAppbmRleCAzM2I1ZTczMTAxODU0
ZWQxMGM4YWVmOGY0YWU1ZTcwZTNhZGJmOTdmLi44NDg3MzBhMmM3YjYwYjc2MjM4OTlmZDdmOWI0
MTMzMGEyZTk3Y2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBhc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5jcHAKQEAgLTYwLDcgKzYwLDcg
QEAgQ0NSZW5kZXJQYXNzOjpDQ1JlbmRlclBhc3MoQ0NSZW5kZXJTdXJmYWNlKiB0YXJnZXRTdXJm
YWNlKQogCiB2b2lkIENDUmVuZGVyUGFzczo6YXBwZW5kUXVhZHNGb3JMYXllcihDQ0xheWVySW1w
bCogbGF5ZXIsIENDT2NjbHVzaW9uVHJhY2tlckltcGwqIG9jY2x1c2lvblRyYWNrZXIsIGJvb2wm
IGhhZE1pc3NpbmdUaWxlcykKIHsKLSAgICBDQ1F1YWRDdWxsZXIgcXVhZEN1bGxlcihtX3F1YWRM
aXN0LCBsYXllciwgb2NjbHVzaW9uVHJhY2tlcik7CisgICAgQ0NRdWFkQ3VsbGVyIHF1YWRDdWxs
ZXIobV9xdWFkTGlzdCwgbGF5ZXIsIG9jY2x1c2lvblRyYWNrZXIsIGxheWVyLT5oYXNEZWJ1Z0Jv
cmRlcnMoKSk7CiAKICAgICBPd25QdHI8Q0NTaGFyZWRRdWFkU3RhdGU+IHNoYXJlZFF1YWRTdGF0
ZSA9IGxheWVyLT5jcmVhdGVTaGFyZWRRdWFkU3RhdGUoKTsKICAgICBsYXllci0+YXBwZW5kRGVi
dWdCb3JkZXJRdWFkKHF1YWRDdWxsZXIsIHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSk7CkBAIC03Miw3
ICs3Miw3IEBAIHZvaWQgQ0NSZW5kZXJQYXNzOjphcHBlbmRRdWFkc0ZvclJlbmRlclN1cmZhY2VM
YXllcihDQ0xheWVySW1wbCogbGF5ZXIsIENDT2NjbHVzCiB7CiAgICAgLy8gRklYTUU6IHJlbmRl
ciBzdXJmYWNlIGxheWVycyBzaG91bGQgYmUgYSBDQ0xheWVySW1wbC1kZXJpdmVkIGNsYXNzIGFu
ZAogICAgIC8vIG5vdCBiZSBoYW5kbGVkIHNwZWNpYWxseSBoZXJlLgotICAgIENDUXVhZEN1bGxl
ciBxdWFkQ3VsbGVyKG1fcXVhZExpc3QsIGxheWVyLCBvY2NsdXNpb25UcmFja2VyKTsKKyAgICBD
Q1F1YWRDdWxsZXIgcXVhZEN1bGxlcihtX3F1YWRMaXN0LCBsYXllciwgb2NjbHVzaW9uVHJhY2tl
ciwgbGF5ZXItPmhhc0RlYnVnQm9yZGVycygpKTsKIAogICAgIENDUmVuZGVyU3VyZmFjZSogc3Vy
ZmFjZSA9IGxheWVyLT5yZW5kZXJTdXJmYWNlKCk7CiAgICAgT3duUHRyPENDU2hhcmVkUXVhZFN0
YXRlPiBzaGFyZWRRdWFkU3RhdGUgPSBzdXJmYWNlLT5jcmVhdGVTaGFyZWRRdWFkU3RhdGUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NRdWFkQ3VsbGVyVGVz
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDUXVhZEN1bGxlclRlc3QuY3Bw
CmluZGV4IDk5MWNkZGM0NjRhYjI3MTQ0MGJiNzVjZmU4OTExMzQ3ZTZkYzFmNzMuLjYzNGEyNWM3
YTgzYWJmYjZlZGIwM2UyNzU0YTQxOTRhZWIzNTQ2NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvQ0NRdWFkQ3VsbGVyVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9DQ1F1YWRDdWxsZXJUZXN0LmNwcApAQCAtOTEsNyArOTEsNyBAQCBz
dGF0aWMgUGFzc093blB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiBtYWtlTGF5ZXIoQ0NUaWxlZExheWVy
SW1wbCogcGFyZW50LCBjb25zdCBUcgogc3RhdGljIHZvaWQgYXBwZW5kUXVhZHMoQ0NRdWFkTGlz
dCYgcXVhZExpc3QsIFZlY3RvcjxPd25QdHI8Q0NTaGFyZWRRdWFkU3RhdGU+ID4mIHNoYXJlZFN0
YXRlTGlzdCwgQ0NUaWxlZExheWVySW1wbCogbGF5ZXIsIENDTGF5ZXJJdGVyYXRvclR5cGUmIGl0
LCBDQ09jY2x1c2lvblRyYWNrZXJJbXBsJiBvY2NsdXNpb25UcmFja2VyKQogewogICAgIG9jY2x1
c2lvblRyYWNrZXIuZW50ZXJMYXllcihpdCk7Ci0gICAgQ0NRdWFkQ3VsbGVyIHF1YWRDdWxsZXIo
cXVhZExpc3QsIGxheWVyLCAmb2NjbHVzaW9uVHJhY2tlcik7CisgICAgQ0NRdWFkQ3VsbGVyIHF1
YWRDdWxsZXIocXVhZExpc3QsIGxheWVyLCAmb2NjbHVzaW9uVHJhY2tlciwgZmFsc2UpOwogICAg
IE93blB0cjxDQ1NoYXJlZFF1YWRTdGF0ZT4gc2hhcmVkUXVhZFN0YXRlID0gbGF5ZXItPmNyZWF0
ZVNoYXJlZFF1YWRTdGF0ZSgpOwogICAgIGJvb2wgaGFkTWlzc2luZ1RpbGVzID0gZmFsc2U7CiAg
ICAgbGF5ZXItPmFwcGVuZFF1YWRzKHF1YWRDdWxsZXIsIHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSwg
aGFkTWlzc2luZ1RpbGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvTW9ja0NDUXVhZEN1bGxlci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Nb2Nr
Q0NRdWFkQ3VsbGVyLmgKaW5kZXggZDljZDMxMzI2ODMwYmQxMjIwMzFjZjBjOGUxOGVkY2Q5MGVj
OTVjNy4uMzg1NTA3ZTJjN2M0MWQyYTU5MWZiZTMzNmQwODcyMjUyNTkyOWMyYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Nb2NrQ0NRdWFkQ3VsbGVyLmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Nb2NrQ0NRdWFkQ3VsbGVyLmgKQEAgLTM1LDEy
ICszNSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBNb2NrQ0NRdWFkQ3VsbGVyIDog
cHVibGljIFdlYkNvcmU6OkNDUXVhZEN1bGxlciB7CiBwdWJsaWM6CiAgICAgTW9ja0NDUXVhZEN1
bGxlcigpCi0gICAgICAgIDogQ0NRdWFkQ3VsbGVyKG1fcXVhZExpc3RTdG9yYWdlLCAwLCAwKQor
ICAgICAgICA6IENDUXVhZEN1bGxlcihtX3F1YWRMaXN0U3RvcmFnZSwgMCwgMCwgZmFsc2UpCiAg
ICAgICAgICwgbV9hY3RpdmVRdWFkTGlzdChtX3F1YWRMaXN0U3RvcmFnZSkKICAgICB7IH0KIAog
ICAgIGV4cGxpY2l0IE1vY2tDQ1F1YWRDdWxsZXIoQ0NRdWFkTGlzdCYgZXh0ZXJuYWxRdWFkTGlz
dCkKLSAgICAgICAgOiBDQ1F1YWRDdWxsZXIoZXh0ZXJuYWxRdWFkTGlzdCwgMCwgMCkKKyAgICAg
ICAgOiBDQ1F1YWRDdWxsZXIoZXh0ZXJuYWxRdWFkTGlzdCwgMCwgMCwgZmFsc2UpCiAgICAgICAg
ICwgbV9hY3RpdmVRdWFkTGlzdChleHRlcm5hbFF1YWRMaXN0KQogICAgIHsgfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>