<?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>88193</bug_id>
          
          <creation_ts>2012-06-03 10:37:39 -0700</creation_ts>
          <short_desc>Duplicated CSP directives should throw a more accurate console error.</short_desc>
          <delta_ts>2012-06-04 11:13:15 -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>WebCore Misc.</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mike West">mkwst</reporter>
          <assigned_to name="Mike West">mkwst</assigned_to>
          <cc>abarth</cc>
    
    <cc>jochen</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>640198</commentid>
    <comment_count>0</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-06-03 10:37:39 -0700</bug_when>
    <thetext>Accidentally duplicating a CSP directive (by, for example, typoing `style-src` into `script-src`) leads to an error that reads &quot;Unrecognized Content-Security-Policy directive &apos;script-src&apos;.&quot; If, like me, you are slow witted, it might take you a half hour or so to figure out why things aren&apos;t working the way you expect them to, especially if the policy you expected to see active is in the second of the two. :)

I&apos;d like to add an error for this condition, something along the lines of &quot;Ignoring duplicate Content-Security-Policy directive: `script-src`.&quot;

WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640201</commentid>
    <comment_count>1</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-06-03 10:46:06 -0700</bug_when>
    <thetext>Seems reasonable</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640219</commentid>
    <comment_count>2</comment_count>
      <attachid>145490</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-06-03 12:14:31 -0700</bug_when>
    <thetext>Created attachment 145490
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640220</commentid>
    <comment_count>3</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-06-03 12:16:59 -0700</bug_when>
    <thetext>Based on sifting through http://www.webkit.org/coding/RefPtr.html, I&apos;m fairly certain I&apos;m doing something wrong by passing the `OwnPtr&lt;CSPDirective&gt;` around without converting to `PassOwnPtr`. It&apos;s not clear to me how I ought to do it correctly in this scenario. Feedback would be appreciated. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640222</commentid>
    <comment_count>4</comment_count>
      <attachid>145490</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-03 12:30:55 -0700</bug_when>
    <thetext>Comment on attachment 145490
Patch

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

This looks fine.  A bunch of style nits below.

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:520
&gt; -    PassOwnPtr&lt;CSPDirective&gt; createCSPDirective(const String&amp; name, const String&amp; value);
&gt; +    void setCSPDirective(OwnPtr&lt;CSPDirective&gt;&amp;, const String&amp; name, const String&amp; value);

This isn&apos;t a common pattern in WebKit, but it&apos;s fine.  In this case, the OwnPtr is an in/out parameter for this function.  We usually put output parameters at the end of the argument list.

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:830
&gt; +      logDuplicateDirective(name);
&gt; +      return;

Four-space indent.

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:852
&gt; +    else

Prefer early return.

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:859
&gt; +      logDuplicateDirective(name);

Four-space indent.

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:860
&gt; +    else {

Prefer early return.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640224</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-03 12:34:50 -0700</bug_when>
    <thetext>PassOwnPtr is useful when you want to pass around ownership of an object (e.g., as a return value of a function).  Here you&apos;re passing around an l-value into which you&apos;re going to store the result.  Another idiom you could use is the following:

m_scriptSrc = createDirective(m_scriptSrc.get(), ...,  ...)

where the m_scriptSrc argument would be purely an in-parameter and the result would be returned as a return value.  What you&apos;ve done instead is to have an in/out parameter, which can be trickier to read but removes the need to repeat m_scriptSrc twice (which can lead to an error if the two aren&apos;t the same).

Given that I&apos;d expect folks to copy/paste this code when adding new directives, using the in/out parameter makes sense so we don&apos;t have the error case of not editing both m_blah values when copy/pasting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640225</commentid>
    <comment_count>6</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-06-03 12:40:46 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; PassOwnPtr is useful when you want to pass around ownership of an object (e.g., as a return value of a function).  Here you&apos;re passing around an l-value into which you&apos;re going to store the result.  Another idiom you could use is the following:
&gt; 
&gt; m_scriptSrc = createDirective(m_scriptSrc.get(), ...,  ...)
&gt; 
&gt; where the m_scriptSrc argument would be purely an in-parameter and the result would be returned as a return value.  What you&apos;ve done instead is to have an in/out parameter, which can be trickier to read but removes the need to repeat m_scriptSrc twice (which can lead to an error if the two aren&apos;t the same).
&gt; 
&gt; Given that I&apos;d expect folks to copy/paste this code when adding new directives, using the in/out parameter makes sense so we don&apos;t have the error case of not editing both m_blah values when copy/pasting.

an alternative would be to return nullptr when you don&apos;t create an object to return</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640231</commentid>
    <comment_count>7</comment_count>
      <attachid>145492</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-06-03 13:16:16 -0700</bug_when>
    <thetext>Created attachment 145492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640232</commentid>
    <comment_count>8</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-06-03 13:18:41 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Given that I&apos;d expect folks to copy/paste this code when adding new directives, using the in/out parameter makes sense so we don&apos;t have the error case of not editing both m_blah values when copy/pasting.

Makes sense. That was certainly the idiom I was going for, but I&apos;d originally tried to pass a pointer to the pointer (which would have made it slightly more clear what was going on, or at least that *something* interesting was happening). That ran afoul of the style bot, which is understandable, as it was ugly. :)

I&apos;ve addressed the style nits, and uploaded a new patch. Thanks for the detailed feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640238</commentid>
    <comment_count>9</comment_count>
      <attachid>145492</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-03 15:15:37 -0700</bug_when>
    <thetext>Comment on attachment 145492
Patch

Thanks.  Let&apos;s give Jochen a chance to provide feedback before landing this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640389</commentid>
    <comment_count>10</comment_count>
      <attachid>145492</attachid>
    <who name="">jochen</who>
    <bug_when>2012-06-04 01:09:56 -0700</bug_when>
    <thetext>Comment on attachment 145492
Patch

To prove that I also read the patch, here&apos;s a nit

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

&gt; LayoutTests/http/tests/security/contentSecurityPolicy/duplicate-directive.html:3
&gt; +  &lt;head&gt;

can you please also indent 4 spaces in html/js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640401</commentid>
    <comment_count>11</comment_count>
      <attachid>145537</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-06-04 01:32:45 -0700</bug_when>
    <thetext>Created attachment 145537
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640402</commentid>
    <comment_count>12</comment_count>
      <attachid>145537</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-06-04 01:34:03 -0700</bug_when>
    <thetext>Comment on attachment 145537
Patch

Thanks for the nits. What are the odds that I can convince the entire webkit community to use two spaces instead of four? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640441</commentid>
    <comment_count>13</comment_count>
      <attachid>145537</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-04 03:10:14 -0700</bug_when>
    <thetext>Comment on attachment 145537
Patch

Clearing flags on attachment: 145537

Committed r119380: &lt;http://trac.webkit.org/changeset/119380&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640442</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-04 03:10:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640695</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-04 11:13:15 -0700</bug_when>
    <thetext>&gt; What are the odds that I can convince the entire webkit community to use two spaces instead of four? :)

Similar to the odds of convincing the community to abandon ChangeLogs.  ;)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145490</attachid>
            <date>2012-06-03 12:14:31 -0700</date>
            <delta_ts>2012-06-03 13:16:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88193-20120603211429.patch</filename>
            <type>text/plain</type>
            <size>10018</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5MjE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQ2NjlhM2FjMWFhOTQy
YjJlOWEyM2U0MmRiYjcwZjNmNGM1Y2ZmYy4uMjcxMmQ3Y2U4OTBmMTM4ZjJlZDNmYzZlMjE0Zjcw
NGVmNmVlNGJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA2LTAzICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkaW5nIGV4cGxpY2l0IGNv
bnNvbGUgZXJyb3IgZm9yIGR1cGxpY2F0ZWQgQ1NQIGRpcmVjdGl2ZXMuLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxOTMKKworICAgICAgICBUaGlz
IHBhdGNoIGFkZHMgYW4gZXhwbGljaXQgZXJyb3IgbWVzc2FnZSBmb3IgZHVwbGljYXRlZCBDU1AK
KyAgICAgICAgZGlyZWN0aXZlcyBpbnN0ZWFkIG9mIHJldXNpbmcgdGhlICJ1bnJlY29nbml6ZWQg
ZGlyZWN0aXZlIiBlcnJvci4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS9kdXBsaWNhdGUtZGlyZWN0aXZlLmh0bWwKKworICAgICAgICAqIHBhZ2UvQ29udGVudFNlY3Vy
aXR5UG9saWN5LmNwcDoKKyAgICAgICAgKENTUERpcmVjdGl2ZUxpc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6bG9nRHVwbGljYXRlRGlyZWN0aXZlKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6cGFyc2VSZXBv
cnRVUkkpOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6c2V0Q1NQRGlyZWN0
aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmFwcGx5U2FuZGJveFBv
bGljeSk6CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjphZGREaXJlY3RpdmUp
OgorCiAyMDEyLTA2LTAxICBQaWVycmUgUm9zc2kgIDxwaWVycmUucm9zc2lAZ21haWwuY29tPgog
CiAgICAgICAgIFtRdF0gU3VwcG9ydCBkcmF3aW5nIGEgcGF0dGVybiB3aXRoIGEgdHJhbnNsYXRp
b24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGlj
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKaW5k
ZXggMmQ3NWFkNWZhMTE4MmU2MDczMzY1M2VhNDM1Y2I3NGE5NmM0ODc3Mi4uMzQ3MzA0M2MxMWU2
MTZlMTczODU5ZGJkOTlkOWM3NzFmMGZkZTQwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q29udGVudFNlY3VyaXR5UG9saWN5LmNwcApAQCAtNTEzLDE1ICs1MTMsMTYgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHBhcnNlKGNvbnN0IFN0cmluZyYpOwogCiAgICAgYm9vbCBwYXJzZURpcmVjdGl2
ZShjb25zdCBVQ2hhciogYmVnaW4sIGNvbnN0IFVDaGFyKiBlbmQsIFN0cmluZyYgbmFtZSwgU3Ry
aW5nJiB2YWx1ZSk7Ci0gICAgdm9pZCBwYXJzZVJlcG9ydFVSSShjb25zdCBTdHJpbmcmKTsKKyAg
ICB2b2lkIHBhcnNlUmVwb3J0VVJJKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2
YWx1ZSk7CiAgICAgdm9pZCBhZGREaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBT
dHJpbmcmIHZhbHVlKTsKLSAgICB2b2lkIGFwcGx5U2FuZGJveFBvbGljeShjb25zdCBTdHJpbmcm
IHNhbmRib3hQb2xpY3kpOworICAgIHZvaWQgYXBwbHlTYW5kYm94UG9saWN5KGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBzYW5kYm94UG9saWN5KTsKIAotICAgIFBhc3NPd25QdHI8
Q1NQRGlyZWN0aXZlPiBjcmVhdGVDU1BEaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25z
dCBTdHJpbmcmIHZhbHVlKTsKKyAgICB2b2lkIHNldENTUERpcmVjdGl2ZShPd25QdHI8Q1NQRGly
ZWN0aXZlPiYsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAKICAg
ICBDU1BEaXJlY3RpdmUqIG9wZXJhdGl2ZURpcmVjdGl2ZShDU1BEaXJlY3RpdmUqKSBjb25zdDsK
ICAgICB2b2lkIHJlcG9ydFZpb2xhdGlvbihjb25zdCBTdHJpbmcmIGRpcmVjdGl2ZVRleHQsIGNv
bnN0IFN0cmluZyYgY29uc29sZU1lc3NhZ2UsIGNvbnN0IEtVUkwmIGJsb2NrZWRVUkwgPSBLVVJM
KCksIGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCA9IFN0cmluZygpLCBjb25zdCBXVEY6Ok9yZGlu
YWxOdW1iZXImIGNvbnRleHRMaW5lID0gV1RGOjpPcmRpbmFsTnVtYmVyOjpiZWZvcmVGaXJzdCgp
LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gPSAwKSBjb25zdDsKICAgICB2b2lkIGxvZ1Vu
cmVjb2duaXplZERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OworICAgIHZvaWQg
bG9nRHVwbGljYXRlRGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3Q7CiAgICAgYm9v
bCBjaGVja0V2YWwoQ1NQRGlyZWN0aXZlKikgY29uc3Q7CiAKICAgICBib29sIGNoZWNrSW5saW5l
QW5kUmVwb3J0VmlvbGF0aW9uKENTUERpcmVjdGl2ZSosIGNvbnN0IFN0cmluZyYgY29uc29sZU1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVy
JiBjb250ZXh0TGluZSkgY29uc3Q7CkBAIC02MzAsNiArNjMxLDEyIEBAIHZvaWQgQ1NQRGlyZWN0
aXZlTGlzdDo6bG9nVW5yZWNvZ25pemVkRGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgbmFtZSkgY29u
c3QKICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKEpTTWVz
c2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlKTsK
IH0KIAordm9pZCBDU1BEaXJlY3RpdmVMaXN0Ojpsb2dEdXBsaWNhdGVEaXJlY3RpdmUoY29uc3Qg
U3RyaW5nJiBuYW1lKSBjb25zdAoreworICAgIFN0cmluZyBtZXNzYWdlID0gbWFrZVN0cmluZygi
SWdub3JpbmcgZHVwbGljYXRlIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IGRpcmVjdGl2ZSAnIiwg
bmFtZSwgIicuXG4iKTsKKyAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVN
ZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVs
LCBtZXNzYWdlKTsKK30KKwogYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjpjaGVja0V2YWwoQ1NQRGly
ZWN0aXZlKiBkaXJlY3RpdmUpIGNvbnN0CiB7CiAgICAgcmV0dXJuICFkaXJlY3RpdmUgfHwgZGly
ZWN0aXZlLT5hbGxvd0V2YWwoKTsKQEAgLTgxNiw4ICs4MjMsMTIgQEAgYm9vbCBDU1BEaXJlY3Rp
dmVMaXN0OjpwYXJzZURpcmVjdGl2ZShjb25zdCBVQ2hhciogYmVnaW4sIGNvbnN0IFVDaGFyKiBl
bmQsIFN0cmkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBDU1BEaXJlY3RpdmVMaXN0Ojpw
YXJzZVJlcG9ydFVSSShjb25zdCBTdHJpbmcmIHZhbHVlKQordm9pZCBDU1BEaXJlY3RpdmVMaXN0
OjpwYXJzZVJlcG9ydFVSSShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUp
CiB7CisgICAgaWYgKCFtX3JlcG9ydFVSSXMuaXNFbXB0eSgpKSB7CisgICAgICBsb2dEdXBsaWNh
dGVEaXJlY3RpdmUobmFtZSk7CisgICAgICByZXR1cm47CisgICAgfQogICAgIGNvbnN0IFVDaGFy
KiBwb3NpdGlvbiA9IHZhbHVlLmNoYXJhY3RlcnMoKTsKICAgICBjb25zdCBVQ2hhciogZW5kID0g
cG9zaXRpb24gKyB2YWx1ZS5sZW5ndGgoKTsKIApAQCAtODM0LDE4ICs4NDUsMjYgQEAgdm9pZCBD
U1BEaXJlY3RpdmVMaXN0OjpwYXJzZVJlcG9ydFVSSShjb25zdCBTdHJpbmcmIHZhbHVlKQogICAg
IH0KIH0KIAotUGFzc093blB0cjxDU1BEaXJlY3RpdmU+IENTUERpcmVjdGl2ZUxpc3Q6OmNyZWF0
ZUNTUERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCit2
b2lkIENTUERpcmVjdGl2ZUxpc3Q6OnNldENTUERpcmVjdGl2ZShPd25QdHI8Q1NQRGlyZWN0aXZl
PiYgZGlyZWN0aXZlLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDU1BEaXJlY3RpdmUobmFtZSwgdmFsdWUsIG1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCkpOworICAgIGlmIChkaXJlY3RpdmUpCisgICAgICAgIGxvZ0R1
cGxpY2F0ZURpcmVjdGl2ZShuYW1lKTsKKyAgICBlbHNlCisgICAgICAgIGRpcmVjdGl2ZSA9IGFk
b3B0UHRyKG5ldyBDU1BEaXJlY3RpdmUobmFtZSwgdmFsdWUsIG1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCkpOwogfQogCi12b2lkIENTUERpcmVjdGl2ZUxpc3Q6OmFwcGx5U2FuZGJveFBvbGljeShj
b25zdCBTdHJpbmcmIHNhbmRib3hQb2xpY3kpCit2b2lkIENTUERpcmVjdGl2ZUxpc3Q6OmFwcGx5
U2FuZGJveFBvbGljeShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgc2FuZGJveFBv
bGljeSkKIHsKLSAgICBBU1NFUlQoIW1faGF2ZVNhbmRib3hQb2xpY3kpOwotICAgIG1faGF2ZVNh
bmRib3hQb2xpY3kgPSB0cnVlOwotICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+ZW5mb3Jj
ZVNhbmRib3hGbGFncyhTZWN1cml0eUNvbnRleHQ6OnBhcnNlU2FuZGJveFBvbGljeShzYW5kYm94
UG9saWN5KSk7CisgICAgaWYgKG1faGF2ZVNhbmRib3hQb2xpY3kpCisgICAgICBsb2dEdXBsaWNh
dGVEaXJlY3RpdmUobmFtZSk7CisgICAgZWxzZSB7CisgICAgICBtX2hhdmVTYW5kYm94UG9saWN5
ID0gdHJ1ZTsKKyAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+ZW5mb3JjZVNhbmRib3hG
bGFncyhTZWN1cml0eUNvbnRleHQ6OnBhcnNlU2FuZGJveFBvbGljeShzYW5kYm94UG9saWN5KSk7
CisgICAgfQogfQogCisKKwogdm9pZCBDU1BEaXJlY3RpdmVMaXN0OjphZGREaXJlY3RpdmUoY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewogICAgIERFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCBkZWZhdWx0U3JjLCAoImRlZmF1bHQtc3JjIikpOwpAQCAtODYyLDI4
ICs4ODEsMjggQEAgdm9pZCBDU1BEaXJlY3RpdmVMaXN0OjphZGREaXJlY3RpdmUoY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogCiAgICAgQVNTRVJUKCFuYW1lLmlzRW1w
dHkoKSk7CiAKLSAgICBpZiAoIW1fZGVmYXVsdFNyYyAmJiBlcXVhbElnbm9yaW5nQ2FzZShuYW1l
LCBkZWZhdWx0U3JjKSkKLSAgICAgICAgbV9kZWZhdWx0U3JjID0gY3JlYXRlQ1NQRGlyZWN0aXZl
KG5hbWUsIHZhbHVlKTsKLSAgICBlbHNlIGlmICghbV9zY3JpcHRTcmMgJiYgZXF1YWxJZ25vcmlu
Z0Nhc2UobmFtZSwgc2NyaXB0U3JjKSkKLSAgICAgICAgbV9zY3JpcHRTcmMgPSBjcmVhdGVDU1BE
aXJlY3RpdmUobmFtZSwgdmFsdWUpOwotICAgIGVsc2UgaWYgKCFtX29iamVjdFNyYyAmJiBlcXVh
bElnbm9yaW5nQ2FzZShuYW1lLCBvYmplY3RTcmMpKQotICAgICAgICBtX29iamVjdFNyYyA9IGNy
ZWF0ZUNTUERpcmVjdGl2ZShuYW1lLCB2YWx1ZSk7Ci0gICAgZWxzZSBpZiAoIW1fZnJhbWVTcmMg
JiYgZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgZnJhbWVTcmMpKQotICAgICAgICBtX2ZyYW1lU3Jj
ID0gY3JlYXRlQ1NQRGlyZWN0aXZlKG5hbWUsIHZhbHVlKTsKLSAgICBlbHNlIGlmICghbV9pbWdT
cmMgJiYgZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgaW1nU3JjKSkKLSAgICAgICAgbV9pbWdTcmMg
PSBjcmVhdGVDU1BEaXJlY3RpdmUobmFtZSwgdmFsdWUpOwotICAgIGVsc2UgaWYgKCFtX3N0eWxl
U3JjICYmIGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsIHN0eWxlU3JjKSkKLSAgICAgICAgbV9zdHls
ZVNyYyA9IGNyZWF0ZUNTUERpcmVjdGl2ZShuYW1lLCB2YWx1ZSk7Ci0gICAgZWxzZSBpZiAoIW1f
Zm9udFNyYyAmJiBlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCBmb250U3JjKSkKLSAgICAgICAgbV9m
b250U3JjID0gY3JlYXRlQ1NQRGlyZWN0aXZlKG5hbWUsIHZhbHVlKTsKLSAgICBlbHNlIGlmICgh
bV9tZWRpYVNyYyAmJiBlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCBtZWRpYVNyYykpCi0gICAgICAg
IG1fbWVkaWFTcmMgPSBjcmVhdGVDU1BEaXJlY3RpdmUobmFtZSwgdmFsdWUpOwotICAgIGVsc2Ug
aWYgKCFtX2Nvbm5lY3RTcmMgJiYgZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgY29ubmVjdFNyYykp
Ci0gICAgICAgIG1fY29ubmVjdFNyYyA9IGNyZWF0ZUNTUERpcmVjdGl2ZShuYW1lLCB2YWx1ZSk7
Ci0gICAgZWxzZSBpZiAoIW1faGF2ZVNhbmRib3hQb2xpY3kgJiYgZXF1YWxJZ25vcmluZ0Nhc2Uo
bmFtZSwgc2FuZGJveCkpCi0gICAgICAgIGFwcGx5U2FuZGJveFBvbGljeSh2YWx1ZSk7Ci0gICAg
ZWxzZSBpZiAobV9yZXBvcnRVUklzLmlzRW1wdHkoKSAmJiBlcXVhbElnbm9yaW5nQ2FzZShuYW1l
LCByZXBvcnRVUkkpKQotICAgICAgICBwYXJzZVJlcG9ydFVSSSh2YWx1ZSk7CisgICAgaWYgKGVx
dWFsSWdub3JpbmdDYXNlKG5hbWUsIGRlZmF1bHRTcmMpKQorICAgICAgICBzZXRDU1BEaXJlY3Rp
dmUobV9kZWZhdWx0U3JjLCBuYW1lLCB2YWx1ZSk7CisgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmlu
Z0Nhc2UobmFtZSwgc2NyaXB0U3JjKSkKKyAgICAgICAgc2V0Q1NQRGlyZWN0aXZlKG1fc2NyaXB0
U3JjLCBuYW1lLCB2YWx1ZSk7CisgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwg
b2JqZWN0U3JjKSkKKyAgICAgICAgc2V0Q1NQRGlyZWN0aXZlKG1fb2JqZWN0U3JjLCBuYW1lLCB2
YWx1ZSk7CisgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgZnJhbWVTcmMpKQor
ICAgICAgICBzZXRDU1BEaXJlY3RpdmUobV9mcmFtZVNyYywgbmFtZSwgdmFsdWUpOworICAgIGVs
c2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsIGltZ1NyYykpCisgICAgICAgIHNldENTUERp
cmVjdGl2ZShtX2ltZ1NyYywgbmFtZSwgdmFsdWUpOworICAgIGVsc2UgaWYgKGVxdWFsSWdub3Jp
bmdDYXNlKG5hbWUsIHN0eWxlU3JjKSkKKyAgICAgICAgc2V0Q1NQRGlyZWN0aXZlKG1fc3R5bGVT
cmMsIG5hbWUsIHZhbHVlKTsKKyAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCBm
b250U3JjKSkKKyAgICAgICAgc2V0Q1NQRGlyZWN0aXZlKG1fZm9udFNyYywgbmFtZSwgdmFsdWUp
OworICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsIG1lZGlhU3JjKSkKKyAgICAg
ICAgc2V0Q1NQRGlyZWN0aXZlKG1fbWVkaWFTcmMsIG5hbWUsIHZhbHVlKTsKKyAgICBlbHNlIGlm
IChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCBjb25uZWN0U3JjKSkKKyAgICAgICAgc2V0Q1NQRGly
ZWN0aXZlKG1fY29ubmVjdFNyYywgbmFtZSwgdmFsdWUpOworICAgIGVsc2UgaWYgKGVxdWFsSWdu
b3JpbmdDYXNlKG5hbWUsIHNhbmRib3gpKQorICAgICAgICBhcHBseVNhbmRib3hQb2xpY3kobmFt
ZSwgdmFsdWUpOworICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsIHJlcG9ydFVS
SSkpCisgICAgICAgIHBhcnNlUmVwb3J0VVJJKG5hbWUsIHZhbHVlKTsKICAgICBlbHNlCiAgICAg
ICAgIGxvZ1VucmVjb2duaXplZERpcmVjdGl2ZShuYW1lKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2YmZiMzE3MTE2
ZTQ5YzkxNjY4ZGRlMzZlNmZlNDRkODE1M2Q2N2Q1Li43ZDhhZDhlYzA3ZTI1YTFjN2M0N2FmNTUw
NzhkYjk3MjJiY2EzZWU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDYtMDMgIE1pa2Ug
V2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGRpbmcgZXhwbGljaXQgY29u
c29sZSBlcnJvciBmb3IgZHVwbGljYXRlZCBDU1AgZGlyZWN0aXZlcy4uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODE5MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvZHVwbGljYXRlLWRpcmVjdGl2ZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L2R1cGxpY2F0ZS1kaXJlY3RpdmUuaHRtbDogQWRkZWQuCisKIDIwMTItMDYtMDEgIFBpZXJyZSBS
b3NzaSAgPHBpZXJyZS5yb3NzaUBnbWFpbC5jb20+CiAKICAgICAgICAgW1F0XSBTdXBwb3J0IGRy
YXdpbmcgYSBwYXR0ZXJuIHdpdGggYSB0cmFuc2xhdGlvbi4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2R1cGxpY2F0ZS1k
aXJlY3RpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvZHVwbGljYXRlLWRpcmVjdGl2ZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjAyODczZWM4MGM3Y2YyOWM3NzU2MWRiOGZhZTI3YTViZGVlNzU4NQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L2R1cGxpY2F0ZS1kaXJlY3RpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBA
QAorQ09OU09MRSBNRVNTQUdFOiBJZ25vcmluZyBkdXBsaWNhdGUgQ29udGVudC1TZWN1cml0eS1Q
b2xpY3kgZGlyZWN0aXZlICdzY3JpcHQtc3JjJy4KKworQUxFUlQ6IFBBU1MgKDEvMSkKK1RoaXMg
dGVzdHMgdGhlIGVmZmVjdCBvZiBkdXBsaWNhdGVkIGRpcmVjdGl2ZXMuIEl0IHBhc3NlcyBpZiBh
IGNvbnNvbGUgd2FybmluZyBpcyB2aXNpYmxlLCBhbmQgdGhlIGFsZXJ0KCkgaXMgZXhlY3V0ZWQu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS9kdXBsaWNhdGUtZGlyZWN0aXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9kdXBsaWNhdGUtZGlyZWN0aXZlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzk2OTIzMTQ2ODc1ZDMyN2ZmMzI3ZDQxMTA3ZjE2N2Q4Mjc3ZTdiZgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L2R1cGxpY2F0ZS1kaXJlY3RpdmUuaHRtbApAQCAtMCwwICsxLDIwIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2
PSJYLVdlYktpdC1DU1AiIGNvbnRlbnQ9InNjcmlwdC1zcmMgJ3Vuc2FmZS1pbmxpbmUnOyBzY3Jp
cHQtc3JjICdub25lJyI+CisgICAgPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cisg
ICAgfQorICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICBhbGVydCgnUEFTUyAoMS8x
KScpOworICAgIDwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxwPgorICAgICAg
VGhpcyB0ZXN0cyB0aGUgZWZmZWN0IG9mIGR1cGxpY2F0ZWQgZGlyZWN0aXZlcy4gSXQgcGFzc2Vz
IGlmIGEgY29uc29sZQorICAgICAgd2FybmluZyBpcyB2aXNpYmxlLCBhbmQgdGhlIGFsZXJ0KCkg
aXMgZXhlY3V0ZWQuCisgICAgPC9wPgorICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145492</attachid>
            <date>2012-06-03 13:16:16 -0700</date>
            <delta_ts>2012-06-04 01:32:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88193-20120603221614.patch</filename>
            <type>text/plain</type>
            <size>9750</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5MjE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQ2NjlhM2FjMWFhOTQy
YjJlOWEyM2U0MmRiYjcwZjNmNGM1Y2ZmYy4uNGEzYWViYjcwZTc3M2NiY2MyZDY1YzZjYTQ1OWU4
MjUxMjRkMDlkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA2LTAzICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkaW5nIGV4cGxpY2l0IGNv
bnNvbGUgZXJyb3IgZm9yIGR1cGxpY2F0ZWQgQ1NQIGRpcmVjdGl2ZXMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODE5MworCisgICAgICAgIFRoaXMg
cGF0Y2ggYWRkcyBhbiBleHBsaWNpdCBlcnJvciBtZXNzYWdlIGZvciBkdXBsaWNhdGVkIENTUAor
ICAgICAgICBkaXJlY3RpdmVzIGluc3RlYWQgb2YgcmV1c2luZyB0aGUgInVucmVjb2duaXplZCBk
aXJlY3RpdmUiIGVycm9yLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L2R1cGxpY2F0ZS1kaXJlY3RpdmUuaHRtbAorCisgICAgICAgICogcGFnZS9Db250ZW50U2VjdXJp
dHlQb2xpY3kuY3BwOgorICAgICAgICAoQ1NQRGlyZWN0aXZlTGlzdCk6CisgICAgICAgIChXZWJD
b3JlOjpDU1BEaXJlY3RpdmVMaXN0Ojpsb2dEdXBsaWNhdGVEaXJlY3RpdmUpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjpwYXJzZVJlcG9y
dFVSSSk6CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjpzZXRDU1BEaXJlY3Rp
dmUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YXBwbHlTYW5kYm94UG9s
aWN5KToKKyAgICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmFkZERpcmVjdGl2ZSk6
CisKIDIwMTItMDYtMDEgIFBpZXJyZSBSb3NzaSAgPHBpZXJyZS5yb3NzaUBnbWFpbC5jb20+CiAK
ICAgICAgICAgW1F0XSBTdXBwb3J0IGRyYXdpbmcgYSBwYXR0ZXJuIHdpdGggYSB0cmFuc2xhdGlv
bi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAppbmRl
eCAyZDc1YWQ1ZmExMTgyZTYwNzMzNjUzZWE0MzVjYjc0YTk2YzQ4NzcyLi43ZGFhOWE5YTg2NGIx
Nzk4YmE1NTMzOTQ4M2FhODQ0MmQwYWU4ODQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
b250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCkBAIC01MTMsMTUgKzUxMywxNiBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcGFyc2UoY29uc3QgU3RyaW5nJik7CiAKICAgICBib29sIHBhcnNlRGlyZWN0aXZl
KGNvbnN0IFVDaGFyKiBiZWdpbiwgY29uc3QgVUNoYXIqIGVuZCwgU3RyaW5nJiBuYW1lLCBTdHJp
bmcmIHZhbHVlKTsKLSAgICB2b2lkIHBhcnNlUmVwb3J0VVJJKGNvbnN0IFN0cmluZyYpOworICAg
IHZvaWQgcGFyc2VSZXBvcnRVUkkoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZh
bHVlKTsKICAgICB2b2lkIGFkZERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0
cmluZyYgdmFsdWUpOwotICAgIHZvaWQgYXBwbHlTYW5kYm94UG9saWN5KGNvbnN0IFN0cmluZyYg
c2FuZGJveFBvbGljeSk7CisgICAgdm9pZCBhcHBseVNhbmRib3hQb2xpY3koY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBTdHJpbmcmIHNhbmRib3hQb2xpY3kpOwogCi0gICAgUGFzc093blB0cjxD
U1BEaXJlY3RpdmU+IGNyZWF0ZUNTUERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IFN0cmluZyYgdmFsdWUpOworICAgIHZvaWQgc2V0Q1NQRGlyZWN0aXZlKGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgT3duUHRyPENTUERpcmVjdGl2ZT4mKTsKIAogICAg
IENTUERpcmVjdGl2ZSogb3BlcmF0aXZlRGlyZWN0aXZlKENTUERpcmVjdGl2ZSopIGNvbnN0Owog
ICAgIHZvaWQgcmVwb3J0VmlvbGF0aW9uKGNvbnN0IFN0cmluZyYgZGlyZWN0aXZlVGV4dCwgY29u
c3QgU3RyaW5nJiBjb25zb2xlTWVzc2FnZSwgY29uc3QgS1VSTCYgYmxvY2tlZFVSTCA9IEtVUkwo
KSwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMID0gU3RyaW5nKCksIGNvbnN0IFdURjo6T3JkaW5h
bE51bWJlciYgY29udGV4dExpbmUgPSBXVEY6Ok9yZGluYWxOdW1iZXI6OmJlZm9yZUZpcnN0KCks
IFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiA9IDApIGNvbnN0OwogICAgIHZvaWQgbG9nVW5y
ZWNvZ25pemVkRGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3Q7CisgICAgdm9pZCBs
b2dEdXBsaWNhdGVEaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdDsKICAgICBib29s
IGNoZWNrRXZhbChDU1BEaXJlY3RpdmUqKSBjb25zdDsKIAogICAgIGJvb2wgY2hlY2tJbmxpbmVB
bmRSZXBvcnRWaW9sYXRpb24oQ1NQRGlyZWN0aXZlKiwgY29uc3QgU3RyaW5nJiBjb25zb2xlTWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXIm
IGNvbnRleHRMaW5lKSBjb25zdDsKQEAgLTYzMCw2ICs2MzEsMTIgQEAgdm9pZCBDU1BEaXJlY3Rp
dmVMaXN0Ojpsb2dVbnJlY29nbml6ZWREaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25z
dAogICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoSlNNZXNz
YWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UpOwog
fQogCit2b2lkIENTUERpcmVjdGl2ZUxpc3Q6OmxvZ0R1cGxpY2F0ZURpcmVjdGl2ZShjb25zdCBT
dHJpbmcmIG5hbWUpIGNvbnN0Cit7CisgICAgU3RyaW5nIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJJ
Z25vcmluZyBkdXBsaWNhdGUgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICciLCBu
YW1lLCAiJy5cbiIpOworICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1l
c3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWws
IG1lc3NhZ2UpOworfQorCiBib29sIENTUERpcmVjdGl2ZUxpc3Q6OmNoZWNrRXZhbChDU1BEaXJl
Y3RpdmUqIGRpcmVjdGl2ZSkgY29uc3QKIHsKICAgICByZXR1cm4gIWRpcmVjdGl2ZSB8fCBkaXJl
Y3RpdmUtPmFsbG93RXZhbCgpOwpAQCAtODE2LDggKzgyMywxMiBAQCBib29sIENTUERpcmVjdGl2
ZUxpc3Q6OnBhcnNlRGlyZWN0aXZlKGNvbnN0IFVDaGFyKiBiZWdpbiwgY29uc3QgVUNoYXIqIGVu
ZCwgU3RyaQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIENTUERpcmVjdGl2ZUxpc3Q6OnBh
cnNlUmVwb3J0VVJJKGNvbnN0IFN0cmluZyYgdmFsdWUpCit2b2lkIENTUERpcmVjdGl2ZUxpc3Q6
OnBhcnNlUmVwb3J0VVJJKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkK
IHsKKyAgICBpZiAoIW1fcmVwb3J0VVJJcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgbG9nRHVwbGlj
YXRlRGlyZWN0aXZlKG5hbWUpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIGNvbnN0IFVD
aGFyKiBwb3NpdGlvbiA9IHZhbHVlLmNoYXJhY3RlcnMoKTsKICAgICBjb25zdCBVQ2hhciogZW5k
ID0gcG9zaXRpb24gKyB2YWx1ZS5sZW5ndGgoKTsKIApAQCAtODM0LDE0ICs4NDUsMjEgQEAgdm9p
ZCBDU1BEaXJlY3RpdmVMaXN0OjpwYXJzZVJlcG9ydFVSSShjb25zdCBTdHJpbmcmIHZhbHVlKQog
ICAgIH0KIH0KIAotUGFzc093blB0cjxDU1BEaXJlY3RpdmU+IENTUERpcmVjdGl2ZUxpc3Q6OmNy
ZWF0ZUNTUERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUp
Cit2b2lkIENTUERpcmVjdGl2ZUxpc3Q6OnNldENTUERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIE93blB0cjxDU1BEaXJlY3RpdmU+JiBkaXJlY3RpdmUp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDU1BEaXJlY3RpdmUobmFtZSwgdmFsdWUsIG1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpOworICAgIGlmIChkaXJlY3RpdmUpIHsKKyAgICAgICAg
bG9nRHVwbGljYXRlRGlyZWN0aXZlKG5hbWUpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IGRpcmVjdGl2ZSA9IGFkb3B0UHRyKG5ldyBDU1BEaXJlY3RpdmUobmFtZSwgdmFsdWUsIG1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCkpOwogfQogCi12b2lkIENTUERpcmVjdGl2ZUxpc3Q6OmFwcGx5
U2FuZGJveFBvbGljeShjb25zdCBTdHJpbmcmIHNhbmRib3hQb2xpY3kpCit2b2lkIENTUERpcmVj
dGl2ZUxpc3Q6OmFwcGx5U2FuZGJveFBvbGljeShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0
cmluZyYgc2FuZGJveFBvbGljeSkKIHsKLSAgICBBU1NFUlQoIW1faGF2ZVNhbmRib3hQb2xpY3kp
OworICAgIGlmIChtX2hhdmVTYW5kYm94UG9saWN5KSB7CisgICAgICAgIGxvZ0R1cGxpY2F0ZURp
cmVjdGl2ZShuYW1lKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBtX2hhdmVTYW5kYm94
UG9saWN5ID0gdHJ1ZTsKICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmVuZm9yY2VTYW5k
Ym94RmxhZ3MoU2VjdXJpdHlDb250ZXh0OjpwYXJzZVNhbmRib3hQb2xpY3koc2FuZGJveFBvbGlj
eSkpOwogfQpAQCAtODYyLDI4ICs4ODAsMjggQEAgdm9pZCBDU1BEaXJlY3RpdmVMaXN0OjphZGRE
aXJlY3RpdmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogCiAgICAg
QVNTRVJUKCFuYW1lLmlzRW1wdHkoKSk7CiAKLSAgICBpZiAoIW1fZGVmYXVsdFNyYyAmJiBlcXVh
bElnbm9yaW5nQ2FzZShuYW1lLCBkZWZhdWx0U3JjKSkKLSAgICAgICAgbV9kZWZhdWx0U3JjID0g
Y3JlYXRlQ1NQRGlyZWN0aXZlKG5hbWUsIHZhbHVlKTsKLSAgICBlbHNlIGlmICghbV9zY3JpcHRT
cmMgJiYgZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgc2NyaXB0U3JjKSkKLSAgICAgICAgbV9zY3Jp
cHRTcmMgPSBjcmVhdGVDU1BEaXJlY3RpdmUobmFtZSwgdmFsdWUpOwotICAgIGVsc2UgaWYgKCFt
X29iamVjdFNyYyAmJiBlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCBvYmplY3RTcmMpKQotICAgICAg
ICBtX29iamVjdFNyYyA9IGNyZWF0ZUNTUERpcmVjdGl2ZShuYW1lLCB2YWx1ZSk7Ci0gICAgZWxz
ZSBpZiAoIW1fZnJhbWVTcmMgJiYgZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgZnJhbWVTcmMpKQot
ICAgICAgICBtX2ZyYW1lU3JjID0gY3JlYXRlQ1NQRGlyZWN0aXZlKG5hbWUsIHZhbHVlKTsKLSAg
ICBlbHNlIGlmICghbV9pbWdTcmMgJiYgZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgaW1nU3JjKSkK
LSAgICAgICAgbV9pbWdTcmMgPSBjcmVhdGVDU1BEaXJlY3RpdmUobmFtZSwgdmFsdWUpOwotICAg
IGVsc2UgaWYgKCFtX3N0eWxlU3JjICYmIGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsIHN0eWxlU3Jj
KSkKLSAgICAgICAgbV9zdHlsZVNyYyA9IGNyZWF0ZUNTUERpcmVjdGl2ZShuYW1lLCB2YWx1ZSk7
Ci0gICAgZWxzZSBpZiAoIW1fZm9udFNyYyAmJiBlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCBmb250
U3JjKSkKLSAgICAgICAgbV9mb250U3JjID0gY3JlYXRlQ1NQRGlyZWN0aXZlKG5hbWUsIHZhbHVl
KTsKLSAgICBlbHNlIGlmICghbV9tZWRpYVNyYyAmJiBlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCBt
ZWRpYVNyYykpCi0gICAgICAgIG1fbWVkaWFTcmMgPSBjcmVhdGVDU1BEaXJlY3RpdmUobmFtZSwg
dmFsdWUpOwotICAgIGVsc2UgaWYgKCFtX2Nvbm5lY3RTcmMgJiYgZXF1YWxJZ25vcmluZ0Nhc2Uo
bmFtZSwgY29ubmVjdFNyYykpCi0gICAgICAgIG1fY29ubmVjdFNyYyA9IGNyZWF0ZUNTUERpcmVj
dGl2ZShuYW1lLCB2YWx1ZSk7Ci0gICAgZWxzZSBpZiAoIW1faGF2ZVNhbmRib3hQb2xpY3kgJiYg
ZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgc2FuZGJveCkpCi0gICAgICAgIGFwcGx5U2FuZGJveFBv
bGljeSh2YWx1ZSk7Ci0gICAgZWxzZSBpZiAobV9yZXBvcnRVUklzLmlzRW1wdHkoKSAmJiBlcXVh
bElnbm9yaW5nQ2FzZShuYW1lLCByZXBvcnRVUkkpKQotICAgICAgICBwYXJzZVJlcG9ydFVSSSh2
YWx1ZSk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsIGRlZmF1bHRTcmMpKQorICAg
ICAgICBzZXRDU1BEaXJlY3RpdmUobmFtZSwgdmFsdWUsIG1fZGVmYXVsdFNyYyk7CisgICAgZWxz
ZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgc2NyaXB0U3JjKSkKKyAgICAgICAgc2V0Q1NQ
RGlyZWN0aXZlKG5hbWUsIHZhbHVlLCBtX3NjcmlwdFNyYyk7CisgICAgZWxzZSBpZiAoZXF1YWxJ
Z25vcmluZ0Nhc2UobmFtZSwgb2JqZWN0U3JjKSkKKyAgICAgICAgc2V0Q1NQRGlyZWN0aXZlKG5h
bWUsIHZhbHVlLCBtX29iamVjdFNyYyk7CisgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uo
bmFtZSwgZnJhbWVTcmMpKQorICAgICAgICBzZXRDU1BEaXJlY3RpdmUobmFtZSwgdmFsdWUsIG1f
ZnJhbWVTcmMpOworICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsIGltZ1NyYykp
CisgICAgICAgIHNldENTUERpcmVjdGl2ZShuYW1lLCB2YWx1ZSwgbV9pbWdTcmMpOworICAgIGVs
c2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsIHN0eWxlU3JjKSkKKyAgICAgICAgc2V0Q1NQ
RGlyZWN0aXZlKG5hbWUsIHZhbHVlLCBtX3N0eWxlU3JjKTsKKyAgICBlbHNlIGlmIChlcXVhbEln
bm9yaW5nQ2FzZShuYW1lLCBmb250U3JjKSkKKyAgICAgICAgc2V0Q1NQRGlyZWN0aXZlKG5hbWUs
IHZhbHVlLCBtX2ZvbnRTcmMpOworICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUs
IG1lZGlhU3JjKSkKKyAgICAgICAgc2V0Q1NQRGlyZWN0aXZlKG5hbWUsIHZhbHVlLCBtX21lZGlh
U3JjKTsKKyAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCBjb25uZWN0U3JjKSkK
KyAgICAgICAgc2V0Q1NQRGlyZWN0aXZlKG5hbWUsIHZhbHVlLCBtX2Nvbm5lY3RTcmMpOworICAg
IGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsIHNhbmRib3gpKQorICAgICAgICBhcHBs
eVNhbmRib3hQb2xpY3kobmFtZSwgdmFsdWUpOworICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdD
YXNlKG5hbWUsIHJlcG9ydFVSSSkpCisgICAgICAgIHBhcnNlUmVwb3J0VVJJKG5hbWUsIHZhbHVl
KTsKICAgICBlbHNlCiAgICAgICAgIGxvZ1VucmVjb2duaXplZERpcmVjdGl2ZShuYW1lKTsKIH0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2YmZiMzE3MTE2ZTQ5YzkxNjY4ZGRlMzZlNmZlNDRkODE1M2Q2N2Q1Li4wNGQ2YWE2
ZjRlYTU2OWE1N2ZhMzRjZWI1NGZhMzNjMTkzYzhiMWUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTItMDYtMDMgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KKworICAgICAgICBB
ZGRpbmcgZXhwbGljaXQgY29uc29sZSBlcnJvciBmb3IgZHVwbGljYXRlZCBDU1AgZGlyZWN0aXZl
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MTkz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9kdXBsaWNhdGUtZGlyZWN0aXZl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvZHVwbGljYXRlLWRpcmVjdGl2ZS5odG1sOiBBZGRlZC4KKwogMjAx
Mi0wNi0wMSAgUGllcnJlIFJvc3NpICA8cGllcnJlLnJvc3NpQGdtYWlsLmNvbT4KIAogICAgICAg
ICBbUXRdIFN1cHBvcnQgZHJhd2luZyBhIHBhdHRlcm4gd2l0aCBhIHRyYW5zbGF0aW9uLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvZHVwbGljYXRlLWRpcmVjdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9kdXBsaWNhdGUtZGlyZWN0aXZl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMDI4NzNlYzgwYzdjZjI5Yzc3NTYxZGI4ZmFlMjdh
NWJkZWU3NTg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZHVwbGljYXRlLWRpcmVjdGl2ZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw0IEBACitDT05TT0xFIE1FU1NBR0U6IElnbm9yaW5nIGR1cGxpY2F0ZSBD
b250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3NjcmlwdC1zcmMnLgorCitBTEVSVDog
UEFTUyAoMS8xKQorVGhpcyB0ZXN0cyB0aGUgZWZmZWN0IG9mIGR1cGxpY2F0ZWQgZGlyZWN0aXZl
cy4gSXQgcGFzc2VzIGlmIGEgY29uc29sZSB3YXJuaW5nIGlzIHZpc2libGUsIGFuZCB0aGUgYWxl
cnQoKSBpcyBleGVjdXRlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2R1cGxpY2F0ZS1kaXJlY3RpdmUuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2R1cGxp
Y2F0ZS1kaXJlY3RpdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTY5MjMxNDY4NzVkMzI3ZmYzMjdkNDEx
MDdmMTY3ZDgyNzdlN2JmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZHVwbGljYXRlLWRpcmVjdGl2ZS5odG1s
CkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAg
IDxtZXRhIGh0dHAtZXF1aXY9IlgtV2ViS2l0LUNTUCIgY29udGVudD0ic2NyaXB0LXNyYyAndW5z
YWZlLWlubGluZSc7IHNjcmlwdC1zcmMgJ25vbmUnIj4KKyAgICA8c2NyaXB0PgorICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKyAgICB9CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAg
IGFsZXJ0KCdQQVNTICgxLzEpJyk7CisgICAgPC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+
CisgICAgPHA+CisgICAgICBUaGlzIHRlc3RzIHRoZSBlZmZlY3Qgb2YgZHVwbGljYXRlZCBkaXJl
Y3RpdmVzLiBJdCBwYXNzZXMgaWYgYSBjb25zb2xlCisgICAgICB3YXJuaW5nIGlzIHZpc2libGUs
IGFuZCB0aGUgYWxlcnQoKSBpcyBleGVjdXRlZC4KKyAgICA8L3A+CisgIDwvYm9keT4KKzwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145537</attachid>
            <date>2012-06-04 01:32:45 -0700</date>
            <delta_ts>2012-06-04 03:10:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88193-20120604103244.patch</filename>
            <type>text/plain</type>
            <size>9866</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5MzczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmVjOGRlMmRmODgwNjYy
NDUxOWQ3ZjFhMmM0YTJmMzUwMjZiYWRhOC4uNDk1NThmN2MzNWQ4MjlkYjMwZTdhZTgyOWM1YTUw
YTM0MjUzOTMzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA2LTA0ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkaW5nIGV4cGxpY2l0IGNv
bnNvbGUgZXJyb3IgZm9yIGR1cGxpY2F0ZWQgQ1NQIGRpcmVjdGl2ZXMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODE5MworCisgICAgICAgIFRoaXMg
cGF0Y2ggYWRkcyBhbiBleHBsaWNpdCBlcnJvciBtZXNzYWdlIGZvciBkdXBsaWNhdGVkIENTUAor
ICAgICAgICBkaXJlY3RpdmVzIGluc3RlYWQgb2YgcmV1c2luZyB0aGUgInVucmVjb2duaXplZCBk
aXJlY3RpdmUiIGVycm9yLgorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAg
ICAgICAgVGVzdDogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZHVw
bGljYXRlLWRpcmVjdGl2ZS5odG1sCisKKyAgICAgICAgKiBwYWdlL0NvbnRlbnRTZWN1cml0eVBv
bGljeS5jcHA6CisgICAgICAgIChDU1BEaXJlY3RpdmVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTUERpcmVjdGl2ZUxpc3Q6OmxvZ0R1cGxpY2F0ZURpcmVjdGl2ZSk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OnBhcnNlUmVwb3J0VVJJ
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OnNldENTUERpcmVjdGl2ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjphcHBseVNhbmRib3hQb2xpY3kp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWRkRGlyZWN0aXZlKToKKwog
MjAxMi0wNS0zMSAgS2ludWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW2Nocm9taXVtXSBEYXRhVHJhbnNmZXJJdGVtLndlYmtpdEdldEFzRW50cnkoKSBzaG91bGQg
c3luY2hyb25vdXNseSByZXR1cm4gZW50cnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVu
dFNlY3VyaXR5UG9saWN5LmNwcAppbmRleCAyZDc1YWQ1ZmExMTgyZTYwNzMzNjUzZWE0MzVjYjc0
YTk2YzQ4NzcyLi43ZGFhOWE5YTg2NGIxNzk4YmE1NTMzOTQ4M2FhODQ0MmQwYWU4ODQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCkBAIC01MTMs
MTUgKzUxMywxNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFyc2UoY29uc3QgU3RyaW5nJik7CiAK
ICAgICBib29sIHBhcnNlRGlyZWN0aXZlKGNvbnN0IFVDaGFyKiBiZWdpbiwgY29uc3QgVUNoYXIq
IGVuZCwgU3RyaW5nJiBuYW1lLCBTdHJpbmcmIHZhbHVlKTsKLSAgICB2b2lkIHBhcnNlUmVwb3J0
VVJJKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgcGFyc2VSZXBvcnRVUkkoY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKICAgICB2b2lkIGFkZERpcmVjdGl2ZShjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpOwotICAgIHZvaWQgYXBwbHlTYW5k
Ym94UG9saWN5KGNvbnN0IFN0cmluZyYgc2FuZGJveFBvbGljeSk7CisgICAgdm9pZCBhcHBseVNh
bmRib3hQb2xpY3koY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHNhbmRib3hQb2xp
Y3kpOwogCi0gICAgUGFzc093blB0cjxDU1BEaXJlY3RpdmU+IGNyZWF0ZUNTUERpcmVjdGl2ZShj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpOworICAgIHZvaWQgc2V0Q1NQ
RGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgT3duUHRy
PENTUERpcmVjdGl2ZT4mKTsKIAogICAgIENTUERpcmVjdGl2ZSogb3BlcmF0aXZlRGlyZWN0aXZl
KENTUERpcmVjdGl2ZSopIGNvbnN0OwogICAgIHZvaWQgcmVwb3J0VmlvbGF0aW9uKGNvbnN0IFN0
cmluZyYgZGlyZWN0aXZlVGV4dCwgY29uc3QgU3RyaW5nJiBjb25zb2xlTWVzc2FnZSwgY29uc3Qg
S1VSTCYgYmxvY2tlZFVSTCA9IEtVUkwoKSwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMID0gU3Ry
aW5nKCksIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUgPSBXVEY6Ok9yZGlu
YWxOdW1iZXI6OmJlZm9yZUZpcnN0KCksIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiA9IDAp
IGNvbnN0OwogICAgIHZvaWQgbG9nVW5yZWNvZ25pemVkRGlyZWN0aXZlKGNvbnN0IFN0cmluZyYg
bmFtZSkgY29uc3Q7CisgICAgdm9pZCBsb2dEdXBsaWNhdGVEaXJlY3RpdmUoY29uc3QgU3RyaW5n
JiBuYW1lKSBjb25zdDsKICAgICBib29sIGNoZWNrRXZhbChDU1BEaXJlY3RpdmUqKSBjb25zdDsK
IAogICAgIGJvb2wgY2hlY2tJbmxpbmVBbmRSZXBvcnRWaW9sYXRpb24oQ1NQRGlyZWN0aXZlKiwg
Y29uc3QgU3RyaW5nJiBjb25zb2xlTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBj
b25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lKSBjb25zdDsKQEAgLTYzMCw2ICs2
MzEsMTIgQEAgdm9pZCBDU1BEaXJlY3RpdmVMaXN0Ojpsb2dVbnJlY29nbml6ZWREaXJlY3RpdmUo
Y29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdAogICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+
YWRkQ29uc29sZU1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JN
ZXNzYWdlTGV2ZWwsIG1lc3NhZ2UpOwogfQogCit2b2lkIENTUERpcmVjdGl2ZUxpc3Q6OmxvZ0R1
cGxpY2F0ZURpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0Cit7CisgICAgU3RyaW5n
IG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJJZ25vcmluZyBkdXBsaWNhdGUgQ29udGVudC1TZWN1cml0
eS1Qb2xpY3kgZGlyZWN0aXZlICciLCBuYW1lLCAiJy5cbiIpOworICAgIG1fc2NyaXB0RXhlY3V0
aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdl
VHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UpOworfQorCiBib29sIENTUERpcmVjdGl2
ZUxpc3Q6OmNoZWNrRXZhbChDU1BEaXJlY3RpdmUqIGRpcmVjdGl2ZSkgY29uc3QKIHsKICAgICBy
ZXR1cm4gIWRpcmVjdGl2ZSB8fCBkaXJlY3RpdmUtPmFsbG93RXZhbCgpOwpAQCAtODE2LDggKzgy
MywxMiBAQCBib29sIENTUERpcmVjdGl2ZUxpc3Q6OnBhcnNlRGlyZWN0aXZlKGNvbnN0IFVDaGFy
KiBiZWdpbiwgY29uc3QgVUNoYXIqIGVuZCwgU3RyaQogICAgIHJldHVybiB0cnVlOwogfQogCi12
b2lkIENTUERpcmVjdGl2ZUxpc3Q6OnBhcnNlUmVwb3J0VVJJKGNvbnN0IFN0cmluZyYgdmFsdWUp
Cit2b2lkIENTUERpcmVjdGl2ZUxpc3Q6OnBhcnNlUmVwb3J0VVJJKGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKKyAgICBpZiAoIW1fcmVwb3J0VVJJcy5pc0VtcHR5
KCkpIHsKKyAgICAgICAgbG9nRHVwbGljYXRlRGlyZWN0aXZlKG5hbWUpOworICAgICAgICByZXR1
cm47CisgICAgfQogICAgIGNvbnN0IFVDaGFyKiBwb3NpdGlvbiA9IHZhbHVlLmNoYXJhY3RlcnMo
KTsKICAgICBjb25zdCBVQ2hhciogZW5kID0gcG9zaXRpb24gKyB2YWx1ZS5sZW5ndGgoKTsKIApA
QCAtODM0LDE0ICs4NDUsMjEgQEAgdm9pZCBDU1BEaXJlY3RpdmVMaXN0OjpwYXJzZVJlcG9ydFVS
SShjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgIH0KIH0KIAotUGFzc093blB0cjxDU1BEaXJlY3Rp
dmU+IENTUERpcmVjdGl2ZUxpc3Q6OmNyZWF0ZUNTUERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCit2b2lkIENTUERpcmVjdGl2ZUxpc3Q6OnNldENTUERp
cmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIE93blB0cjxD
U1BEaXJlY3RpdmU+JiBkaXJlY3RpdmUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDU1BE
aXJlY3RpdmUobmFtZSwgdmFsdWUsIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpOworICAgIGlm
IChkaXJlY3RpdmUpIHsKKyAgICAgICAgbG9nRHVwbGljYXRlRGlyZWN0aXZlKG5hbWUpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIGRpcmVjdGl2ZSA9IGFkb3B0UHRyKG5ldyBDU1BEaXJl
Y3RpdmUobmFtZSwgdmFsdWUsIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpOwogfQogCi12b2lk
IENTUERpcmVjdGl2ZUxpc3Q6OmFwcGx5U2FuZGJveFBvbGljeShjb25zdCBTdHJpbmcmIHNhbmRi
b3hQb2xpY3kpCit2b2lkIENTUERpcmVjdGl2ZUxpc3Q6OmFwcGx5U2FuZGJveFBvbGljeShjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgc2FuZGJveFBvbGljeSkKIHsKLSAgICBBU1NF
UlQoIW1faGF2ZVNhbmRib3hQb2xpY3kpOworICAgIGlmIChtX2hhdmVTYW5kYm94UG9saWN5KSB7
CisgICAgICAgIGxvZ0R1cGxpY2F0ZURpcmVjdGl2ZShuYW1lKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KICAgICBtX2hhdmVTYW5kYm94UG9saWN5ID0gdHJ1ZTsKICAgICBtX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQtPmVuZm9yY2VTYW5kYm94RmxhZ3MoU2VjdXJpdHlDb250ZXh0OjpwYXJzZVNh
bmRib3hQb2xpY3koc2FuZGJveFBvbGljeSkpOwogfQpAQCAtODYyLDI4ICs4ODAsMjggQEAgdm9p
ZCBDU1BEaXJlY3RpdmVMaXN0OjphZGREaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25z
dCBTdHJpbmcmIHZhbHVlKQogCiAgICAgQVNTRVJUKCFuYW1lLmlzRW1wdHkoKSk7CiAKLSAgICBp
ZiAoIW1fZGVmYXVsdFNyYyAmJiBlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCBkZWZhdWx0U3JjKSkK
LSAgICAgICAgbV9kZWZhdWx0U3JjID0gY3JlYXRlQ1NQRGlyZWN0aXZlKG5hbWUsIHZhbHVlKTsK
LSAgICBlbHNlIGlmICghbV9zY3JpcHRTcmMgJiYgZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgc2Ny
aXB0U3JjKSkKLSAgICAgICAgbV9zY3JpcHRTcmMgPSBjcmVhdGVDU1BEaXJlY3RpdmUobmFtZSwg
dmFsdWUpOwotICAgIGVsc2UgaWYgKCFtX29iamVjdFNyYyAmJiBlcXVhbElnbm9yaW5nQ2FzZShu
YW1lLCBvYmplY3RTcmMpKQotICAgICAgICBtX29iamVjdFNyYyA9IGNyZWF0ZUNTUERpcmVjdGl2
ZShuYW1lLCB2YWx1ZSk7Ci0gICAgZWxzZSBpZiAoIW1fZnJhbWVTcmMgJiYgZXF1YWxJZ25vcmlu
Z0Nhc2UobmFtZSwgZnJhbWVTcmMpKQotICAgICAgICBtX2ZyYW1lU3JjID0gY3JlYXRlQ1NQRGly
ZWN0aXZlKG5hbWUsIHZhbHVlKTsKLSAgICBlbHNlIGlmICghbV9pbWdTcmMgJiYgZXF1YWxJZ25v
cmluZ0Nhc2UobmFtZSwgaW1nU3JjKSkKLSAgICAgICAgbV9pbWdTcmMgPSBjcmVhdGVDU1BEaXJl
Y3RpdmUobmFtZSwgdmFsdWUpOwotICAgIGVsc2UgaWYgKCFtX3N0eWxlU3JjICYmIGVxdWFsSWdu
b3JpbmdDYXNlKG5hbWUsIHN0eWxlU3JjKSkKLSAgICAgICAgbV9zdHlsZVNyYyA9IGNyZWF0ZUNT
UERpcmVjdGl2ZShuYW1lLCB2YWx1ZSk7Ci0gICAgZWxzZSBpZiAoIW1fZm9udFNyYyAmJiBlcXVh
bElnbm9yaW5nQ2FzZShuYW1lLCBmb250U3JjKSkKLSAgICAgICAgbV9mb250U3JjID0gY3JlYXRl
Q1NQRGlyZWN0aXZlKG5hbWUsIHZhbHVlKTsKLSAgICBlbHNlIGlmICghbV9tZWRpYVNyYyAmJiBl
cXVhbElnbm9yaW5nQ2FzZShuYW1lLCBtZWRpYVNyYykpCi0gICAgICAgIG1fbWVkaWFTcmMgPSBj
cmVhdGVDU1BEaXJlY3RpdmUobmFtZSwgdmFsdWUpOwotICAgIGVsc2UgaWYgKCFtX2Nvbm5lY3RT
cmMgJiYgZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgY29ubmVjdFNyYykpCi0gICAgICAgIG1fY29u
bmVjdFNyYyA9IGNyZWF0ZUNTUERpcmVjdGl2ZShuYW1lLCB2YWx1ZSk7Ci0gICAgZWxzZSBpZiAo
IW1faGF2ZVNhbmRib3hQb2xpY3kgJiYgZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgc2FuZGJveCkp
Ci0gICAgICAgIGFwcGx5U2FuZGJveFBvbGljeSh2YWx1ZSk7Ci0gICAgZWxzZSBpZiAobV9yZXBv
cnRVUklzLmlzRW1wdHkoKSAmJiBlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCByZXBvcnRVUkkpKQot
ICAgICAgICBwYXJzZVJlcG9ydFVSSSh2YWx1ZSk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNl
KG5hbWUsIGRlZmF1bHRTcmMpKQorICAgICAgICBzZXRDU1BEaXJlY3RpdmUobmFtZSwgdmFsdWUs
IG1fZGVmYXVsdFNyYyk7CisgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgc2Ny
aXB0U3JjKSkKKyAgICAgICAgc2V0Q1NQRGlyZWN0aXZlKG5hbWUsIHZhbHVlLCBtX3NjcmlwdFNy
Yyk7CisgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgb2JqZWN0U3JjKSkKKyAg
ICAgICAgc2V0Q1NQRGlyZWN0aXZlKG5hbWUsIHZhbHVlLCBtX29iamVjdFNyYyk7CisgICAgZWxz
ZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgZnJhbWVTcmMpKQorICAgICAgICBzZXRDU1BE
aXJlY3RpdmUobmFtZSwgdmFsdWUsIG1fZnJhbWVTcmMpOworICAgIGVsc2UgaWYgKGVxdWFsSWdu
b3JpbmdDYXNlKG5hbWUsIGltZ1NyYykpCisgICAgICAgIHNldENTUERpcmVjdGl2ZShuYW1lLCB2
YWx1ZSwgbV9pbWdTcmMpOworICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsIHN0
eWxlU3JjKSkKKyAgICAgICAgc2V0Q1NQRGlyZWN0aXZlKG5hbWUsIHZhbHVlLCBtX3N0eWxlU3Jj
KTsKKyAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCBmb250U3JjKSkKKyAgICAg
ICAgc2V0Q1NQRGlyZWN0aXZlKG5hbWUsIHZhbHVlLCBtX2ZvbnRTcmMpOworICAgIGVsc2UgaWYg
KGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsIG1lZGlhU3JjKSkKKyAgICAgICAgc2V0Q1NQRGlyZWN0
aXZlKG5hbWUsIHZhbHVlLCBtX21lZGlhU3JjKTsKKyAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5n
Q2FzZShuYW1lLCBjb25uZWN0U3JjKSkKKyAgICAgICAgc2V0Q1NQRGlyZWN0aXZlKG5hbWUsIHZh
bHVlLCBtX2Nvbm5lY3RTcmMpOworICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUs
IHNhbmRib3gpKQorICAgICAgICBhcHBseVNhbmRib3hQb2xpY3kobmFtZSwgdmFsdWUpOworICAg
IGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsIHJlcG9ydFVSSSkpCisgICAgICAgIHBh
cnNlUmVwb3J0VVJJKG5hbWUsIHZhbHVlKTsKICAgICBlbHNlCiAgICAgICAgIGxvZ1VucmVjb2du
aXplZERpcmVjdGl2ZShuYW1lKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzNmE2ZmQ5ZjAzZjI3MzdkMTI1Nzc5MmQ5
Zjk5ZDUxNDk4MDU2NjIyLi5iNTdmYzU5MDViZmYzMDk1ZmJmOTRiZTAyMzZmNjY5YWY2NjIwMGZh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDYtMDQgIE1pa2UgV2VzdCAgPG1rd3N0QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBBZGRpbmcgZXhwbGljaXQgY29uc29sZSBlcnJvciBmb3Ig
ZHVwbGljYXRlZCBDU1AgZGlyZWN0aXZlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg4MTkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0
aC4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L2R1cGxpY2F0ZS1kaXJlY3RpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9kdXBsaWNhdGUtZGlyZWN0aXZl
Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTA1LTMxICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIERhdGFUcmFuc2Zlckl0ZW0ud2Via2l0R2V0
QXNFbnRyeSgpIHNob3VsZCBzeW5jaHJvbm91c2x5IHJldHVybiBlbnRyeQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZHVw
bGljYXRlLWRpcmVjdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9kdXBsaWNhdGUtZGlyZWN0aXZlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yMDI4NzNlYzgwYzdjZjI5Yzc3NTYxZGI4ZmFlMjdhNWJkZWU3NTg1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvZHVwbGljYXRlLWRpcmVjdGl2ZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw0IEBACitDT05TT0xFIE1FU1NBR0U6IElnbm9yaW5nIGR1cGxpY2F0ZSBDb250ZW50LVNl
Y3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3NjcmlwdC1zcmMnLgorCitBTEVSVDogUEFTUyAoMS8x
KQorVGhpcyB0ZXN0cyB0aGUgZWZmZWN0IG9mIGR1cGxpY2F0ZWQgZGlyZWN0aXZlcy4gSXQgcGFz
c2VzIGlmIGEgY29uc29sZSB3YXJuaW5nIGlzIHZpc2libGUsIGFuZCB0aGUgYWxlcnQoKSBpcyBl
eGVjdXRlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29u
dGVudFNlY3VyaXR5UG9saWN5L2R1cGxpY2F0ZS1kaXJlY3RpdmUuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2R1cGxpY2F0ZS1kaXJl
Y3RpdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMTExYmZkMWYxNmQ2NTMzYjcxYjExOTNjZDY2MThlODIx
ZTZmZDJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZHVwbGljYXRlLWRpcmVjdGl2ZS5odG1sCkBAIC0wLDAg
KzEsMjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxt
ZXRhIGh0dHAtZXF1aXY9IlgtV2ViS2l0LUNTUCIgY29udGVudD0ic2NyaXB0LXNyYyAndW5zYWZl
LWlubGluZSc7IHNjcmlwdC1zcmMgJ25vbmUnIj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0Pgor
ICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgYWxlcnQoJ1BBU1MgKDEvMSknKTsKKyAgICAg
ICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD4KKyAgICAg
ICAgICAgIFRoaXMgdGVzdHMgdGhlIGVmZmVjdCBvZiBkdXBsaWNhdGVkIGRpcmVjdGl2ZXMuIEl0
IHBhc3NlcyBpZiBhCisgICAgICAgICAgICBjb25zb2xlIHdhcm5pbmcgaXMgdmlzaWJsZSwgYW5k
IHRoZSBhbGVydCgpIGlzIGV4ZWN1dGVkLgorICAgICAgICA8L3A+CisgICAgPC9ib2R5PgorPC9o
dG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>