<?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>24988</bug_id>
          
          <creation_ts>2009-04-01 09:43:04 -0700</creation_ts>
          <short_desc>The Webkit plugin mime type matching code should allow the wildcards</short_desc>
          <delta_ts>2022-06-23 18:25:19 -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>Plug-ins</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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="Ananta Iyengar">ananta</reporter>
          <assigned_to name="Ananta Iyengar">ananta</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>ap</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>116177</commentid>
    <comment_count>0</comment_count>
    <who name="Ananta Iyengar">ananta</who>
    <bug_when>2009-04-01 09:43:04 -0700</bug_when>
    <thetext>The Webkit plugin mime type matching code should allow plugins to specify the wildcard mime type (*) on the same lines as Firefox and Chromium. Firefox uses the npnul32 plugin which specifies its mime type as * for NPAPI plugin installation. Chromium does the same. The wildcard mime type is also useful for NPAPI spy applications, which would be very useful for debugging.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116187</commentid>
    <comment_count>1</comment_count>
      <attachid>29166</attachid>
    <who name="Ananta Iyengar">ananta</who>
    <bug_when>2009-04-01 11:28:28 -0700</bug_when>
    <thetext>Created attachment 29166
Patch for supporting wildcards in the plugin mime type matching code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116299</commentid>
    <comment_count>2</comment_count>
      <attachid>29166</attachid>
    <who name="Ananta Iyengar">ananta</who>
    <bug_when>2009-04-02 10:21:18 -0700</bug_when>
    <thetext>Comment on attachment 29166
Patch for supporting wildcards in the plugin mime type matching code

Will upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116300</commentid>
    <comment_count>3</comment_count>
      <attachid>29194</attachid>
    <who name="Ananta Iyengar">ananta</who>
    <bug_when>2009-04-02 10:22:03 -0700</bug_when>
    <thetext>Created attachment 29194
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116305</commentid>
    <comment_count>4</comment_count>
      <attachid>29194</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-04-02 10:32:08 -0700</bug_when>
    <thetext>Comment on attachment 29194
Updated patch

&gt; -bool PluginData::supportsMimeType(const String&amp; mimeType) const
&gt; +bool PluginData::supportsMimeType(const String&amp; mimeType, bool allowWildCard) const

I suggest two separate functions rather than adding a boolean argument to this function. The boolean is extremely unclear at the call site. You see a &quot;false&quot; or &quot;true&quot; and have no idea what it means, requiring a comment at the call site. Instead the version that doesn&apos;t allow wild cards could be named supportsMimeTypeWithoutConsideringWildCards, perhaps.

Other aspects of this patch look good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116306</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-04-02 10:32:40 -0700</bug_when>
    <thetext>There&apos;s a tab in the ChangeLog too. That should be fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116308</commentid>
    <comment_count>6</comment_count>
      <attachid>29194</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-04-02 10:36:42 -0700</bug_when>
    <thetext>Comment on attachment 29194
Updated patch

&gt; +        if (m_mimes[i]-&gt;type == mimeType) {
&gt; +            return true;
&gt; +        } else if (allowWildCard &amp;&amp; m_mimes[i]-&gt;type == &quot;*&quot;) {
&gt;              return true;
&gt; +        }

Single line if statements bodies don&apos;t get braces in the WebKit coding style (documented in the style document).

No else after return in the WebKit coding style.

&gt; +    PluginPackage* pluginPackageSupportingWildcards = NULL;

WebKit coding style uses 0, not NULL.

&gt; +            // We check for exact mime type matches and wildcard (*) matches. 
&gt; +            if ((mimeiter-&gt;first == key) || (mimeiter-&gt;first == &quot;*&quot;))

We normally don&apos;t use the extra parentheses as done here.

&gt; -    if (pluginChoices.isEmpty())
&gt; +    if (pluginChoices.isEmpty()) {
&gt;          return 0;
&gt; +    }

This changes code that&apos;s correct according to the WebKit style to a different style, perhaps one you prefer. But we have a standard you should adhere to.

&gt;      } else if (fileName() == &quot;npmozax.dll&quot;)
&gt;          // Bug 15217: Mozilla ActiveX control complains about missing xpcom_core.dll
&gt;          return true;
&gt; +      else if (fileName() == &quot;npnul32.dll&quot;)
&gt; +        // We don&apos;t want to load the Mozilla NULL plugin, which is used to install
&gt; +        // NPAPI plugins.
&gt; +        return true;

These multiple line bodies need braces to fit the style. Both the npmozax.dll case that&apos;s already.

I don&apos;t think the name of the plug-in is &quot;NULL&quot;. You can call it the &quot;null plug-in&quot; instead of the &quot;NULL plugin&quot;.

&gt; -    return pluginData &amp;&amp; !type.isEmpty() &amp;&amp; pluginData-&gt;supportsMimeType(type);
&gt; +    // We pass in true to the supportsMimeType function in PluginData to allow
&gt; +    // plugins which support the wildcard mime type * to be instantiated.
&gt; +    return pluginData &amp;&amp; !type.isEmpty() &amp;&amp; pluginData-&gt;supportsMimeType(type, true);

We want to avoid having to write two-line comments just to explain the boolean, so please take my suggestion about not using a boolean.

Do we want other styles of wildcard to work, such as &quot;text/*&quot;, or is it just &quot;*&quot; that we need?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116342</commentid>
    <comment_count>7</comment_count>
      <attachid>29194</attachid>
    <who name="Ananta Iyengar">ananta</who>
    <bug_when>2009-04-02 13:23:40 -0700</bug_when>
    <thetext>Comment on attachment 29194
Updated patch

Will upload a new patch addressing the comments on this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116343</commentid>
    <comment_count>8</comment_count>
      <attachid>29206</attachid>
    <who name="Ananta Iyengar">ananta</who>
    <bug_when>2009-04-02 13:25:15 -0700</bug_when>
    <thetext>Created attachment 29206
Updated patch

Hi Darin

Thanks for the review. I have uploaded a new patch which addresses your comments. We only need to match the * mime type on the same lines as Firefox.

Thanks
Ananta</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116363</commentid>
    <comment_count>9</comment_count>
      <attachid>29206</attachid>
    <who name="Ananta Iyengar">ananta</who>
    <bug_when>2009-04-02 17:35:08 -0700</bug_when>
    <thetext>Comment on attachment 29206
Updated patch

Will upload a new patch emulating the wildcard plugin matching behavior on the Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116364</commentid>
    <comment_count>10</comment_count>
      <attachid>29209</attachid>
    <who name="Ananta Iyengar">ananta</who>
    <bug_when>2009-04-02 17:36:25 -0700</bug_when>
    <thetext>Created attachment 29209
Updated patch with the wildcard mime type matching behavior on the mac.

Hi Darin

I have uploaded a new patch containing similar changes on the Mac plugin branch.

Thanks
Ananta</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116366</commentid>
    <comment_count>11</comment_count>
      <attachid>29209</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-04-02 17:38:34 -0700</bug_when>
    <thetext>Comment on attachment 29209
Updated patch with the wildcard mime type matching behavior on the mac.

&gt; -        if ([[[plugin performSelector:enumeratorSelector] allObjects] containsObject:key]) {
&gt; +        if ([[[plugin performSelector:enumeratorSelector] allObjects] containsObject:key] ||
&gt; +            [[[plugin performSelector:enumeratorSelector] allObjects] containsObject:@&quot;*&quot;]) {

This is inefficient. We don&apos;t want to call allObjects twice. We should put the result of allObjects into a local variable and then use it twice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116397</commentid>
    <comment_count>12</comment_count>
      <attachid>29221</attachid>
    <who name="Ananta Iyengar">ananta</who>
    <bug_when>2009-04-02 23:07:13 -0700</bug_when>
    <thetext>Created attachment 29221
Updated patch with review comments addressed

I have uploaded a new patch which addresses the comments on the earlier patch.

-Ananta</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116490</commentid>
    <comment_count>13</comment_count>
      <attachid>29244</attachid>
    <who name="Ananta Iyengar">ananta</who>
    <bug_when>2009-04-03 14:46:09 -0700</bug_when>
    <thetext>Created attachment 29244
Updated patch with the layout test LayoutTests/plugins/plugin-javascript-access.html rebaselined

Hi Darin

Please take a look at the updated patch. I had to rebaseline the LayoutTests/plugins/plugin-javascript-access.html file as we support an additional mime type * in the layout test plugin.

Thanks
Ananta</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116808</commentid>
    <comment_count>14</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-04-07 15:15:08 -0700</bug_when>
    <thetext>How about the slightly shorter name supportsMimeTypeIgnoringWildCards instead of supportsMimeTypeWithoutConsideringWildCards?

nit: &quot;mimeiter&quot; should probably be &quot;mimeIter&quot; or maybe just &quot;iter&quot;

otherwise, LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116820</commentid>
    <comment_count>15</comment_count>
      <attachid>29320</attachid>
    <who name="Ananta Iyengar">ananta</who>
    <bug_when>2009-04-07 16:28:04 -0700</bug_when>
    <thetext>Created attachment 29320
Updated patch with review comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116884</commentid>
    <comment_count>16</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-04-08 09:05:27 -0700</bug_when>
    <thetext>Landed as:  http://trac.webkit.org/changeset/42321</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116897</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-04-08 10:09:05 -0700</bug_when>
    <thetext>Reverted because layout tests broke

http://build.webkit.org/builders/Tiger%20Intel%20Release/builds/205/steps/layout-test/logs/stdio
http://build.webkit.org/builders/Leopard%20Intel%20Debug%20%28Tests%29/builds/163/steps/layout-test/logs/stdio
http://build.webkit.org/builders/Windows%20Release%20%28Tests%29/builds/46/steps/layout-test/logs/stdio
http://build.webkit.org/builders/Windows%20Debug%20%28Tests%29/builds/52/steps/layout-test/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116898</commentid>
    <comment_count>18</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-04-08 10:09:31 -0700</bug_when>
    <thetext>The revert was http://trac.webkit.org/changeset/42324</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116955</commentid>
    <comment_count>19</comment_count>
      <attachid>29320</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-04-08 16:48:46 -0700</bug_when>
    <thetext>Comment on attachment 29320
Updated patch with review comments addressed

Cleared r+ to move out of commit queue (since it was landed and then backed out due to layout tests regressions).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116959</commentid>
    <comment_count>20</comment_count>
      <attachid>29206</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-04-08 16:51:18 -0700</bug_when>
    <thetext>Comment on attachment 29206
Updated patch

Clear r+ to move out of commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1877625</commentid>
    <comment_count>21</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2022-06-23 04:14:07 -0700</bug_when>
    <thetext>NPAPI Plugin support has been removed from Safari 14 onward (and for JAVA, it was dropped in 12). Further, Webkit Plugin is not support since Safari 5.1 (based on below link).

Can this be marked as &quot;RESOLVED WONTFIX&quot;? If I am wrong, please ignore my comment. Thanks!

Link - https://developer.apple.com/library/archive/documentation/InternetWeb/Conceptual/WebKit_PluginProgTopic/WebKitPluginTopics.html

Although - if I search Webkit GitHub, I do see &quot;PluginData.cpp&quot;:

https://github.com/WebKit/WebKit/blob/c68178ddc01939b4bce3cdb9718c62087649dad4/Source/WebCore/plugins/PluginData.cpp

and &quot;SupportsMIMEType&quot; etc.

Is it something which can be enhanced via this patch in current code? If yes, please ignore my &quot;WONTFIX&quot; suggestion. Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29166</attachid>
            <date>2009-04-01 11:28:28 -0700</date>
            <delta_ts>2009-04-02 10:21:18 -0700</delta_ts>
            <desc>Patch for supporting wildcards in the plugin mime type matching code</desc>
            <filename>AllowWildcardPlugins.txt</filename>
            <type>text/plain</type>
            <size>14881</size>
            <attacher name="Ananta Iyengar">ananta</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDQyMTUwKQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDM3IEBADQorMjAwOS0wNC0wMSAgQW5hbnRhbmFyYXlhbmFuIEl5ZW5nYXIg
IDxhbmFudGFAY2hyb21pdW0ub3JnPg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuDQorICAgICAgICBUaGUgV2Via2l0IGNvZGUgd2hpY2ggbWF0Y2hlcyBtaW1lIHR5cGVz
IHdpdGggcGx1Z2lucyBzaG91bGQgYWxsb3cgdGhlIHdpbGRjYXJkDQorICAgICAgICBtaW1lIHR5
cGUgKCopLiBUaGlzIGlzIG9uIHRoZSBzYW1lIGxpbmVzIGFzIEZpcmVmb3gsIHdoaWNoIHVzZXMg
YSB3aWxkY2FyZCBwbHVnaW4NCisgICAgICAgIChucG51bDMyLmRsbCkgZm9yIHBsdWdpbiBpbnN0
YWxsYXRpb24uIEEgd2lsZGNhcmQgcGx1Z2luIGNhbiBhbHNvIGJlIHVzZWZ1bCB0bw0KKyAgICAg
ICAgaW1wbGVtZW50IGEgTlBBUEkgc3B5IHBsdWdpbiB1c2VmdWwgZm9yIGRlYnVnZ2luZy4gVGhp
cyBjaGFuZ2UgYnJhbmNoIGFjaGlldmVzIHRoaXMNCisgICAgICAgIFRoZSBjaGFuZ2VzIHRvIHN1
cHBvcnQgd2lsZGNhcmQgbWltZSB0eXBlIG1hdGNoaW5nIGFyZSBpbiBQbHVnaW5EYXRhYmFzZS5j
cHAgd2hpY2gNCisgICAgICAgIGlzIHVzZWQgYnkgV2Via2l0J3MgcGx1Z2luIGltcGxlbWVudGF0
aW9uLCBhbmQgUGx1Z2luRGF0YS5jcHAvLmggd2hpY2ggaXMgdXNlZCBieQ0KKyAgICAgICAgQ2hy
b21pdW0uIFRoZSBQbHVnaW5EYXRhIGNsYXNzIGlzIGFsc28gdXNlZCBkdXJpbmcgZG9jdW1lbnQg
bG9hZCBmb3IgbWF0Y2hpbmcNCisgICAgICAgIHRoZSBtaW1lIHR5cGUgd2l0aCBhIHBsdWdpbi4g
V2UgZG9uJ3Qgd2FudCB0byBhbGxvdyB3aWxkY2FyZCBwbHVnaW5zIGluIHRoaXMgY2FzZS4NCisg
ICAgICAgIFRvIGFjaGlldmUgdGhpcyB3ZSBwYXNzIGluIGEgZmxhZyB3aGljaCBjb250cm9scyB3
aGV0aGVyIGEgd2lsZGNhcmQgcGx1Z2luIHNob3VsZA0KKyAgICAgICAgYmUgbWF0Y2hlZC4NCisg
ICAgICAgIEFkZGVkIGEgbGF5b3V0IHRlc3Qgd2hpY2ggdmVyaWZpZXMgd2hldGhlciB0aGUgd2ls
ZGNhcmQgcGx1Z2luIG1pbWUgdHlwZSBtYXRjaA0KKyAgICAgICAgc3VjY2VlZGVkLiBUaGUgbGF5
b3V0IHRlc3QgcGx1Z2luIGFkZHMgKiB0byBpdHMgbGlzdCBvZiBtaW1lIHR5cGVzLg0KKw0KKyAg
ICAgICAgVGVzdDogcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4td2lsZGNhcmQtcGx1Z2luLmh0bWwN
CisNCisgICAgICAgICogZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcDoNCisgICAgICAgIChXZWJD
b3JlOjpET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQpOg0KKyAgICAgICAgKiBwbHVn
aW5zL1BsdWdpbkRhdGEuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRhdGE6OnN1cHBv
cnRzTWltZVR5cGUpOg0KKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRhdGEuaDoNCisgICAgICAg
ICogcGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
RGF0YWJhc2U6OnBsdWdpbkZvck1JTUVUeXBlKToNCisgICAgICAgICogcGx1Z2lucy93aW4vUGx1
Z2luUGFja2FnZVdpbi5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luUGFja2FnZTo6aXNQ
bHVnaW5CbGFja2xpc3RlZCk6DQorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJQYXJ0T2JqZWN0
LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpoYXZlUGx1Z2luKToNCisNCiAyMDA5LTAzLTMxICBE
YXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIFJvbGxlZCBvdXQgdGhh
dCBsYXN0IGNoYW5nZSB1bnRpbCBJIGNhbiBpbnZlc3RpZ2F0ZSB0aGUgcmVncmVzc2lvbiB0ZXN0
IGZhaWx1cmVzIGl0IHNlZW1zDQpJbmRleDogV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24u
Y3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCShy
ZXZpc2lvbiA0MjE1MCkNCisrKyBXZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAJKHdv
cmtpbmcgY29weSkNCkBAIC0zNDEsNyArMzQxLDggQEAgUGFzc1JlZlB0cjxEb2N1bWVudD4gRE9N
SW1wbGVtZW50YXRpb246Og0KIA0KICAgICAvLyBQREYgaXMgb25lIGltYWdlIHR5cGUgZm9yIHdo
aWNoIGEgcGx1Z2luIGNhbiBvdmVycmlkZSBidWlsdC1pbiBzdXBwb3J0Lg0KICAgICAvLyBXZSBk
byBub3Qgd2FudCBRdWlja1RpbWUgdG8gdGFrZSBvdmVyIGFsbCBpbWFnZSB0eXBlcywgb2J2aW91
c2x5Lg0KLSAgICBpZiAoKHR5cGUgPT0gImFwcGxpY2F0aW9uL3BkZiIgfHwgdHlwZSA9PSAidGV4
dC9wZGYiKSAmJiBwbHVnaW5EYXRhICYmIHBsdWdpbkRhdGEtPnN1cHBvcnRzTWltZVR5cGUodHlw
ZSkpDQorICAgIC8vIFdlIHBhc3MgaW4gZmFsc2UgdG8gdGhlIHN1cHBvcnRzTWltZVR5cGUgZnVu
Y3Rpb24gaW4gUGx1Z2luRGF0YSBhcyB3ZSBkb24ndCB3YW50IHRvIG1hdGNoIHdpbGRjYXJkIHBs
dWdpbnMgaGVyZS4NCisgICAgaWYgKCh0eXBlID09ICJhcHBsaWNhdGlvbi9wZGYiIHx8IHR5cGUg
PT0gInRleHQvcGRmIikgJiYgcGx1Z2luRGF0YSAmJiBwbHVnaW5EYXRhLT5zdXBwb3J0c01pbWVU
eXBlKHR5cGUsIGZhbHNlKSkNCiAgICAgICAgIHJldHVybiBQbHVnaW5Eb2N1bWVudDo6Y3JlYXRl
KGZyYW1lKTsNCiAgICAgaWYgKEltYWdlOjpzdXBwb3J0c1R5cGUodHlwZSkpDQogICAgICAgICBy
ZXR1cm4gSW1hZ2VEb2N1bWVudDo6Y3JlYXRlKGZyYW1lKTsNCkBAIC0zNTUsNyArMzU2LDggQEAg
UGFzc1JlZlB0cjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246Og0KICAgICAvLyBFdmVyeXRo
aW5nIGVsc2UgZXhjZXB0IHRleHQvcGxhaW4gY2FuIGJlIG92ZXJyaWRkZW4gYnkgcGx1Z2lucy4g
SW4gcGFydGljdWxhciwgQWRvYmUgU1ZHIFZpZXdlciBzaG91bGQgYmUgdXNlZCBmb3IgU1ZHLCBp
ZiBpbnN0YWxsZWQuDQogICAgIC8vIERpc2FsbG93aW5nIHBsdWctaW5zIHRvIHVzZSB0ZXh0L3Bs
YWluIHByZXZlbnRzIHBsdWctaW5zIGZyb20gaGlqYWNraW5nIGEgZnVuZGFtZW50YWwgdHlwZSB0
aGF0IHRoZSBicm93c2VyIGlzIGV4cGVjdGVkIHRvIGhhbmRsZSwNCiAgICAgLy8gYW5kIGFsc28g
c2VydmVzIGFzIGFuIG9wdGltaXphdGlvbiB0byBwcmV2ZW50IGxvYWRpbmcgdGhlIHBsdWctaW4g
ZGF0YWJhc2UgaW4gdGhlIGNvbW1vbiBjYXNlLg0KLSAgICBpZiAodHlwZSAhPSAidGV4dC9wbGFp
biIgJiYgcGx1Z2luRGF0YSAmJiBwbHVnaW5EYXRhLT5zdXBwb3J0c01pbWVUeXBlKHR5cGUpKSAN
CisgICAgLy8gV2UgcGFzcyBpbiBmYWxzZSB0byB0aGUgc3VwcG9ydHNNaW1lVHlwZSBmdW5jdGlv
biBpbiBQbHVnaW5EYXRhIGFzIHdlIGRvbid0IHdhbnQgdG8gbWF0Y2ggd2lsZGNhcmQgcGx1Z2lu
cyBoZXJlLg0KKyAgICBpZiAodHlwZSAhPSAidGV4dC9wbGFpbiIgJiYgcGx1Z2luRGF0YSAmJiBw
bHVnaW5EYXRhLT5zdXBwb3J0c01pbWVUeXBlKHR5cGUsIGZhbHNlKSkgDQogICAgICAgICByZXR1
cm4gUGx1Z2luRG9jdW1lbnQ6OmNyZWF0ZShmcmFtZSk7DQogICAgIGlmIChpc1RleHRNSU1FVHlw
ZSh0eXBlKSkNCiAgICAgICAgIHJldHVybiBUZXh0RG9jdW1lbnQ6OmNyZWF0ZShmcmFtZSk7DQpA
QCAtMzc2LDMgKzM3OCw1IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9u
OjoNCiB9DQogDQogfQ0KKw0KKw0KSW5kZXg6IFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhLmNw
cA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhLmNwcAkocmV2aXNp
b24gNDIxNTApDQorKysgV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGEuY3BwCSh3b3JraW5nIGNv
cHkpDQpAQCAtNDQsMTEgKzQ0LDE1IEBAIFBsdWdpbkRhdGE6On5QbHVnaW5EYXRhKCkNCiAgICAg
ZGVsZXRlQWxsVmFsdWVzKG1fbWltZXMpOw0KIH0NCiANCi1ib29sIFBsdWdpbkRhdGE6OnN1cHBv
cnRzTWltZVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgY29uc3QNCitib29sIFBsdWdpbkRh
dGE6OnN1cHBvcnRzTWltZVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBhbGxvd1dp
bGRDYXJkKSBjb25zdA0KIHsNCi0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fbWltZXMu
c2l6ZSgpOyArK2kpDQotICAgICAgICBpZiAobV9taW1lc1tpXS0+dHlwZSA9PSBtaW1lVHlwZSkN
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fbWltZXMuc2l6ZSgpOyArK2kpIHsNCisg
ICAgICAgIGlmIChtX21pbWVzW2ldLT50eXBlID09IG1pbWVUeXBlKSB7DQorICAgICAgICAgICAg
cmV0dXJuIHRydWU7DQorICAgICAgICB9IGVsc2UgaWYgKGFsbG93V2lsZENhcmQgJiYgbV9taW1l
c1tpXS0+dHlwZSA9PSAiKiIpIHsNCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCisgICAgICAg
IH0NCisgICAgfQ0KICAgICByZXR1cm4gZmFsc2U7DQogfQ0KIA0KSW5kZXg6IFdlYkNvcmUvcGx1
Z2lucy9QbHVnaW5EYXRhLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL3BsdWdpbnMvUGx1Z2lu
RGF0YS5oCShyZXZpc2lvbiA0MjE1MCkNCisrKyBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YS5o
CSh3b3JraW5nIGNvcHkpDQpAQCAtNTUsNyArNTUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7DQog
ICAgICAgICBjb25zdCBWZWN0b3I8UGx1Z2luSW5mbyo+JiBwbHVnaW5zKCkgY29uc3QgeyByZXR1
cm4gbV9wbHVnaW5zOyB9DQogICAgICAgICBjb25zdCBWZWN0b3I8TWltZUNsYXNzSW5mbyo+JiBt
aW1lcygpIGNvbnN0IHsgcmV0dXJuIG1fbWltZXM7IH0NCiANCi0gICAgICAgIGJvb2wgc3VwcG9y
dHNNaW1lVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdDsNCisgICAgICAgIGJvb2wg
c3VwcG9ydHNNaW1lVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGFsbG93V2lsZENh
cmQpIGNvbnN0Ow0KICAgICAgICAgU3RyaW5nIHBsdWdpbk5hbWVGb3JNaW1lVHlwZShjb25zdCBT
dHJpbmcmIG1pbWVUeXBlKSBjb25zdDsNCiANCiAgICAgICAgIHN0YXRpYyB2b2lkIHJlZnJlc2go
KTsNCkluZGV4OiBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwDQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQotLS0gV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcAkocmV2aXNpb24gNDIxNTAp
DQorKysgV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQ0K
QEAgLTE2MSwxMyArMTYxLDI1IEBAIFBsdWdpblBhY2thZ2UqIFBsdWdpbkRhdGFiYXNlOjpwbHVn
aW5Gb3INCiANCiAgICAgVmVjdG9yPFBsdWdpblBhY2thZ2UqLCAyPiBwbHVnaW5DaG9pY2VzOw0K
IA0KKyAgICBQbHVnaW5QYWNrYWdlKiBwbHVnaW5QYWNrYWdlU3VwcG9ydGluZ1dpbGRjYXJkcyA9
IE5VTEw7DQorDQogICAgIGZvciAoUGx1Z2luU2V0Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGx1
Z2lucy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsNCi0gICAgICAgIGlmICgoKml0KS0+bWlt
ZVRvRGVzY3JpcHRpb25zKCkuY29udGFpbnMoa2V5KSkNCi0gICAgICAgICAgICBwbHVnaW5DaG9p
Y2VzLmFwcGVuZCgoKml0KS5nZXQoKSk7DQorICAgICAgICBQbHVnaW5QYWNrYWdlKiBwYWNrYWdl
ID0gKCppdCkuZ2V0KCk7DQorDQorICAgICAgICBjb25zdCBNSU1FVG9EZXNjcmlwdGlvbnNNYXAm
IG1pbWVUb0Rlc2NyaXB0aW9ucyA9IHBhY2thZ2UtPm1pbWVUb0Rlc2NyaXB0aW9ucygpOw0KKw0K
KyAgICAgICAgTUlNRVRvRGVzY3JpcHRpb25zTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBtaW1l
VG9EZXNjcmlwdGlvbnMuZW5kKCk7DQorICAgICAgICANCisgICAgICAgIGZvciAoTUlNRVRvRGVz
Y3JpcHRpb25zTWFwOjpjb25zdF9pdGVyYXRvciBtaW1laXRlciA9IG1pbWVUb0Rlc2NyaXB0aW9u
cy5iZWdpbigpOyBtaW1laXRlciAhPSBlbmQ7ICsrbWltZWl0ZXIpIHsNCisgICAgICAgICAgICAv
LyBXZSBjaGVjayBmb3IgZXhhY3QgbWltZSB0eXBlIG1hdGNoZXMgYW5kIHdpbGRjYXJkICgqKSBt
YXRjaGVzLiANCisgICAgICAgICAgICBpZiAoKG1pbWVpdGVyLT5maXJzdCA9PSBrZXkpIHx8ICht
aW1laXRlci0+Zmlyc3QgPT0gIioiKSkNCisgICAgICAgICAgICAgICAgcGx1Z2luQ2hvaWNlcy5h
cHBlbmQocGFja2FnZSk7DQorICAgICAgICB9DQogICAgIH0NCiANCi0gICAgaWYgKHBsdWdpbkNo
b2ljZXMuaXNFbXB0eSgpKQ0KKyAgICBpZiAocGx1Z2luQ2hvaWNlcy5pc0VtcHR5KCkpIHsNCiAg
ICAgICAgIHJldHVybiAwOw0KKyAgICB9DQogDQogICAgIHFzb3J0KHBsdWdpbkNob2ljZXMuZGF0
YSgpLCBwbHVnaW5DaG9pY2VzLnNpemUoKSwgc2l6ZW9mKFBsdWdpblBhY2thZ2UqKSwgUGx1Z2lu
RGF0YWJhc2U6OnByZWZlcnJlZFBsdWdpbkNvbXBhcmUpOw0KIA0KSW5kZXg6IFdlYkNvcmUvcGx1
Z2lucy93aW4vUGx1Z2luUGFja2FnZVdpbi5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL3Bs
dWdpbnMvd2luL1BsdWdpblBhY2thZ2VXaW4uY3BwCShyZXZpc2lvbiA0MjE1MCkNCisrKyBXZWJD
b3JlL3BsdWdpbnMvd2luL1BsdWdpblBhY2thZ2VXaW4uY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAt
ODQsNiArODQsMTAgQEAgYm9vbCBQbHVnaW5QYWNrYWdlOjppc1BsdWdpbkJsYWNrbGlzdGVkKA0K
ICAgICB9IGVsc2UgaWYgKGZpbGVOYW1lKCkgPT0gIm5wbW96YXguZGxsIikNCiAgICAgICAgIC8v
IEJ1ZyAxNTIxNzogTW96aWxsYSBBY3RpdmVYIGNvbnRyb2wgY29tcGxhaW5zIGFib3V0IG1pc3Np
bmcgeHBjb21fY29yZS5kbGwNCiAgICAgICAgIHJldHVybiB0cnVlOw0KKyAgICAgIGVsc2UgaWYg
KGZpbGVOYW1lKCkgPT0gIm5wbnVsMzIuZGxsIikNCisgICAgICAgIC8vIFdlIGRvbid0IHdhbnQg
dG8gbG9hZCB0aGUgTW96aWxsYSBOVUxMIHBsdWdpbiwgd2hpY2ggaXMgdXNlZCB0byBpbnN0YWxs
DQorICAgICAgICAvLyBOUEFQSSBwbHVnaW5zLg0KKyAgICAgICAgcmV0dXJuIHRydWU7DQogDQog
ICAgIHJldHVybiBmYWxzZTsNCiB9DQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFy
dE9iamVjdC5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXJ0
T2JqZWN0LmNwcAkocmV2aXNpb24gNDIxNTApDQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UGFydE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0xMDgsNyArMTA4LDkgQEAgc3RhdGlj
IGNvbnN0IFN0cmluZyYgYWN0aXZlWFR5cGUoKQ0KIA0KIHN0YXRpYyBpbmxpbmUgYm9vbCBoYXZl
UGx1Z2luKGNvbnN0IFBsdWdpbkRhdGEqIHBsdWdpbkRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSkN
CiB7DQotICAgIHJldHVybiBwbHVnaW5EYXRhICYmICF0eXBlLmlzRW1wdHkoKSAmJiBwbHVnaW5E
YXRhLT5zdXBwb3J0c01pbWVUeXBlKHR5cGUpOw0KKyAgICAvLyBXZSBwYXNzIGluIHRydWUgdG8g
dGhlIHN1cHBvcnRzTWltZVR5cGUgZnVuY3Rpb24gaW4gUGx1Z2luRGF0YSB0byBhbGxvdw0KKyAg
ICAvLyBwbHVnaW5zIHdoaWNoIHN1cHBvcnQgdGhlIHdpbGRjYXJkIG1pbWUgdHlwZSAqIHRvIGJl
IGluc3RhbnRpYXRlZC4NCisgICAgcmV0dXJuIHBsdWdpbkRhdGEgJiYgIXR5cGUuaXNFbXB0eSgp
ICYmIHBsdWdpbkRhdGEtPnN1cHBvcnRzTWltZVR5cGUodHlwZSwgdHJ1ZSk7DQogfQ0KIA0KIHN0
YXRpYyBTdHJpbmcgc2VydmljZVR5cGVGb3JDbGFzc0lkKGNvbnN0IFN0cmluZyYgY2xhc3NJZCwg
Y29uc3QgUGx1Z2luRGF0YSogcGx1Z2luRGF0YSkNCkluZGV4OiBXZWJLaXRUb29scy9DaGFuZ2VM
b2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQyMTUw
KQ0KKysrIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQ0KQEAgLTEsMyArMSwy
NSBAQA0KKzIwMDktMDQtMDEgIGl5ZW5nYXIgIDxhbmFudGFAY2hyb21pdW0ub3JnPg0KKw0KKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi5zdWJwcm9qL0luZm8ucGxpc3Q6DQorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi5zdWJwcm9qL21haW4uY3BwOg0KKyAg
ICAgICAgKE5QUF9OZXcpOg0KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vVGVzdE5ldHNj
YXBlUGx1Z2luL1Rlc3ROZXRzY2FwZVBsdWdpbi5yYzoNCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9tYWluLmNwcDoNCisgICAgICAgIChOUFBfTmV3KToN
CisNCisyMDA5LTA0LTAxICBpeWVuZ2FyICA8YW5hbnRhQGNocm9taXVtLm9yZz4NCisNCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4uc3VicHJvai9JbmZvLnBsaXN0Og0KKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4uc3VicHJvai9tYWluLmNwcDoNCisgICAg
ICAgIChOUFBfTmV3KToNCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3ROZXRzY2Fw
ZVBsdWdpbi9UZXN0TmV0c2NhcGVQbHVnaW4ucmM6DQorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHA6DQorICAgICAgICAoTlBQX05ldyk6DQor
DQogMjAwOS0wMy0zMSAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+DQogDQogICAgICAg
ICBNYWtlIHJlc29sdmUtQ2hhbmdlTG9ncyAtZiB3b3JrIHdoZW4gdGhlIHdvcmtpbmcgdHJlZSBo
YXMgc3BhY2VzIGluDQpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNj
YXBlUGx1Z0luLnN1YnByb2ovSW5mby5wbGlzdA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi5zdWJwcm9qL0luZm8ucGxpc3QJKHJl
dmlzaW9uIDQyMTUwKQ0KKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2Fw
ZVBsdWdJbi5zdWJwcm9qL0luZm8ucGxpc3QJKHdvcmtpbmcgY29weSkNCkBAIC01Myw2ICs1Mywx
NSBAQA0KIAkJCTxrZXk+V2ViUGx1Z2luVHlwZURlc2NyaXB0aW9uPC9rZXk+DQogCQkJPHN0cmlu
Zz50ZXN0IG5ldHNjYXBlIGNvbnRlbnQ8L3N0cmluZz4NCiAJCTwvZGljdD4NCisJCTxrZXk+Kjwv
a2V5Pg0KKwkJPGRpY3Q+DQorCQkJPGtleT5XZWJQbHVnaW5FeHRlbnNpb25zPC9rZXk+DQorCQkJ
PGFycmF5Pg0KKwkJCQk8c3RyaW5nPndpbGRjYXJkIHBsdWdpbjwvc3RyaW5nPg0KKwkJCTwvYXJy
YXk+DQorCQkJPGtleT5XZWJQbHVnaW5UeXBlRGVzY3JpcHRpb248L2tleT4NCisJCQk8c3RyaW5n
PnRlc3QgbmV0c2NhcGUgd2lsZGNhcmQgcGx1Z2luPC9zdHJpbmc+DQorCQk8L2RpY3Q+DQogCTwv
ZGljdD4NCiAJPGtleT5XZWJQbHVnaW5OYW1lPC9rZXk+DQogCTxzdHJpbmc+V2ViS2l0IFRlc3Qg
UGx1Z0luPC9zdHJpbmc+DQpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5l
dHNjYXBlUGx1Z0luLnN1YnByb2ovbWFpbi5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4uc3VicHJvai9tYWluLmNwcAkocmV2
aXNpb24gNDIxNTApDQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBl
UGx1Z0luLnN1YnByb2ovbWFpbi5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0xNjUsNiArMTY1LDEx
IEBAIE5QRXJyb3IgTlBQX05ldyhOUE1JTUVUeXBlIHBsdWdpblR5cGUsIE4NCiAgICAgICAgIA0K
ICAgICAgICAgb2JqLT5ldmVudE1vZGVsID0gTlBFdmVudE1vZGVsQ29jb2E7DQogICAgIH0NCisN
CisgICAgaWYgKF9zdHJjYXNlY21wKHBsdWdpblR5cGUsICJhcHBsaWNhdGlvbi94LXdlYmtpdC10
ZXN0LW5ldHNjYXBlLXdpbGRjYXJkLXBsdWdpbiIpID09IDApIHsNCisgICAgICAgIGxvZyhpbnN0
YW5jZSwgIlBMVUdJTjogTlBBUEkgV2lsZGNhcmQgcGx1Z2luIGluc3RhbmNlIGxvYWRlZFxuIik7
DQorICAgICAgICBmZmx1c2goc3Rkb3V0KTsNCisgICAgfQ0KICAgICANCiAgICAgYnJvd3Nlci0+
c2V0dmFsdWUoaW5zdGFuY2UsIE5QUFZwbHVnaW5FdmVudE1vZGVsLCAodm9pZCAqKW9iai0+ZXZl
bnRNb2RlbCk7DQogICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsNCkluZGV4OiBXZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL1Rlc3ROZXRzY2FwZVBsdWdp
bi5yYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0
TmV0c2NhcGVQbHVnaW4vVGVzdE5ldHNjYXBlUGx1Z2luLnJjCShyZXZpc2lvbiA0MjE1MCkNCisr
KyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL1Rlc3RO
ZXRzY2FwZVBsdWdpbi5yYwkod29ya2luZyBjb3B5KQ0KQEAgLTczLDcgKzczLDcgQEAgQkVHSU4N
CiAgICAgICAgICAgICBWQUxVRSAiRmlsZURlc2NyaXB0aW9uIiwgIlRlc3ROZXRzY2FwZVBsdWdJ
biINCiAgICAgICAgICAgICBWQUxVRSAiRmlsZU9wZW5OYW1lIiwgInRlc3QgbmV0c2NhcGUgY29u
dGVudCINCiAgICAgICAgICAgICBWQUxVRSAiTGVnYWxDb3B5cmlnaHQiLCAiQ29weXJpZ2h0IEFw
cGxlIEluYy4gMjAwNy0yMDA5Ig0KLSAgICAgICAgICAgIFZBTFVFICJNSU1FVHlwZSIsICJhcHBs
aWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlIg0KKyAgICAgICAgICAgIFZBTFVFICJNSU1F
VHlwZSIsICJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlfCoiDQogICAgICAgICAg
ICAgVkFMVUUgIk9yaWdpbmFsRmlsZW5hbWUiLCAibnBUZXN0TmV0c2NhcGVQbHVnaW4uZGxsIg0K
ICAgICAgICAgICAgIFZBTFVFICJQcm9kdWN0TmFtZSIsICJUZXN0TmV0c2NhcGVQbHVnSW4iDQog
ICAgICAgICBFTkQNCkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdE5l
dHNjYXBlUGx1Z2luL21haW4uY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9tYWluLmNwcAkocmV2aXNpb24gNDIxNTAp
DQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9t
YWluLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTg1LDcgKzg1LDEyIEBAIE5QRXJyb3IgTlBQX05l
dyhOUE1JTUVUeXBlIHBsdWdpblR5cGUsIE4NCiAgICAgICAgICAgICBlbHNlIGlmIChfc3RyaWNt
cChhcmduW2ldLCAib25VUkxOb3RpZnkiKSA9PSAwICYmICFvYmotPm9uVVJMTm90aWZ5KQ0KICAg
ICAgICAgICAgICAgICBvYmotPm9uVVJMTm90aWZ5ID0gX3N0cmR1cChhcmd2W2ldKTsNCiAgICAg
ICAgIH0NCi0gICAgICAgIA0KKw0KKyAgICAgICAgaWYgKF9zdHJpY21wKHBsdWdpblR5cGUsICJh
cHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlLXdpbGRjYXJkLXBsdWdpbiIpID09IDAp
IHsNCisgICAgICAgICAgICBwcmludGYoIkNPTlNPTEUgTUVTU0FHRTogbGluZSAwOiBQTFVHSU46
IE5QQVBJIFdpbGRjYXJkIHBsdWdpbiBpbnN0YW5jZSBsb2FkZWRcbiIpOw0KKyAgICAgICAgICAg
IGZmbHVzaChzdGRvdXQpOw0KKyAgICAgICAgfQ0KKw0KICAgICAgICAgaW5zdGFuY2UtPnBkYXRh
ID0gb2JqOw0KICAgICB9DQogICAgIA0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZw0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNDIxNTApDQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpAQCAtMSwzICsxLDE3IEBADQor
MjAwOS0wNC0wMSAgaXllbmdhciAgPGFuYW50YUBjaHJvbWl1bS5vcmc+DQorDQorICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgICogcGx1Z2lucy9uZXRzY2Fw
ZS1wbHVnaW4td2lsZGNhcmQtcGx1Z2luLWV4cGVjdGVkLnR4dDogQWRkZWQuDQorICAgICAgICAq
IHBsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXdpbGRjYXJkLXBsdWdpbi5odG1sOiBBZGRlZC4NCisN
CisyMDA5LTA0LTAxICBpeWVuZ2FyICA8YW5hbnRhQGNocm9taXVtLm9yZz4NCisNCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBwbHVnaW5zL25ldHNj
YXBlLXBsdWdpbi13aWxkY2FyZC1wbHVnaW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4NCisgICAgICAg
ICogcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4td2lsZGNhcmQtcGx1Z2luLmh0bWw6IEFkZGVkLg0K
Kw0KIDIwMDktMDMtMzEgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+DQog
DQogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4NCkluZGV4OiBMYXlvdXRUZXN0cy9w
bHVnaW5zL25ldHNjYXBlLXBsdWdpbi13aWxkY2FyZC1wbHVnaW4tZXhwZWN0ZWQudHh0DQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09DQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4td2lsZGNhcmQt
cGx1Z2luLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkNCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5z
L25ldHNjYXBlLXBsdWdpbi13aWxkY2FyZC1wbHVnaW4tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQ0KQEAgLTAsMCArMSwzIEBADQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IFBMVUdJTjogTlBB
UEkgV2lsZGNhcmQgcGx1Z2luIGluc3RhbmNlIGxvYWRlZA0KKw0KK1RoaXMgdGVzdHMgdGhhdCBh
IHBsdWdpbiB3aGljaCBzdXBwb3J0cyB0aGUgd2lsZGNhcmQgbWltZSB0eXBlICogaXMgbG9hZGVk
IGNvcnJlY3RseS4NCg0KUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGx1Z2lucy9u
ZXRzY2FwZS1wbHVnaW4td2lsZGNhcmQtcGx1Z2luLWV4cGVjdGVkLnR4dA0KX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0K
QWRkZWQ6IHN2bjplb2wtc3R5bGUNCiAgICsgbmF0aXZlDQoNCkluZGV4OiBMYXlvdXRUZXN0cy9w
bHVnaW5zL25ldHNjYXBlLXBsdWdpbi13aWxkY2FyZC1wbHVnaW4uaHRtbA0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIExheW91dFRlc3RzL3BsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXdpbGRjYXJkLXBsdWdpbi5o
dG1sCShyZXZpc2lvbiAwKQ0KKysrIExheW91dFRlc3RzL3BsdWdpbnMvbmV0c2NhcGUtcGx1Z2lu
LXdpbGRjYXJkLXBsdWdpbi5odG1sCShyZXZpc2lvbiAwKQ0KQEAgLTAsMCArMSwxNiBAQA0KKzxo
dG1sPg0KKzxoZWFkPg0KKzxzY3JpcHQ+DQorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsNCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsNCisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFdpbmRvd0lzS2V5KGZhbHNlKTsNCisgICAg
fQ0KKyAgICANCis8L3NjcmlwdD4NCis8Ym9keT4NCis8ZW1iZWQgaWQ9InRlc3RQbHVnaW4iIHR5
cGU9ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUtd2lsZGNhcmQtcGx1Z2luIiB3
aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PC9lbWJlZD4NCis8ZGl2Pg0KKyAgICBUaGlzIHRlc3Rz
IHRoYXQgYSBwbHVnaW4gd2hpY2ggc3VwcG9ydHMgdGhlIHdpbGRjYXJkIG1pbWUgdHlwZSAqIGlz
IGxvYWRlZCBjb3JyZWN0bHkuDQorPC9kaXY+DQorPC9ib2R5Pg0KKzwvaHRtbD4NCg0KUHJvcGVy
dHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4td2lsZGNh
cmQtcGx1Z2luLmh0bWwNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18NCkFkZGVkOiBzdm46ZW9sLXN0eWxlDQogICArIExG
DQoNCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29194</attachid>
            <date>2009-04-02 10:22:03 -0700</date>
            <delta_ts>2009-04-02 13:23:40 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>SupportWildcardPlugins.txt</filename>
            <type>text/plain</type>
            <size>13948</size>
            <attacher name="Ananta Iyengar">ananta</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MjE3NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMDktMDQtMDIgIEFuYW50YW5hcmF5YW5hbiBJeWVuZ2FyICA8YW5h
bnRhQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworCSAgIEFkZGVkIHN1cHBvcnQgZm9yIHJldHVybmluZyBwbHVnaW5zIHdoaWNoIHN1cHBvcnQg
dGhlIHdpbGRjYXJkIG1pbWUgdHlwZSAoKikuCisgICAgICAgIFRoaXMgaXMgb24gdGhlIHNhbWUg
bGluZXMgYXMgRmlyZWZveCwgd2hpY2ggdXNlcyBhIHdpbGRjYXJkIHBsdWdpbiAobnBudWwzMi5k
bGwpIGZvcgorICAgICAgICBwbHVnaW4gaW5zdGFsbGF0aW9uLiBUaGUgY2hhbmdlcyB0byBzdXBw
b3J0IHdpbGRjYXJkIG1pbWUgdHlwZSBtYXRjaGluZyBhcmUgaW4KKyAgICAgICAgUGx1Z2luRGF0
YWJhc2UuY3BwIHdoaWNoIGlzIHVzZWQgYnkgV2Via2l0J3MgcGx1Z2luIGltcGxlbWVudGF0aW9u
LCBhbmQKKyAgICAgICAgUGx1Z2luRGF0YS5jcHAvLmggd2hpY2ggaXMgdXNlZCBieSBDaHJvbWl1
bS4gCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0
OTg4CisKKyAgICAgICAgVGVzdDogcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4td2lsZGNhcmQtcGx1
Z2luLmh0bWwKKworICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQpOgorICAgICAgICAq
IHBsdWdpbnMvUGx1Z2luRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5EYXRhOjpz
dXBwb3J0c01pbWVUeXBlKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRhdGEuaDoKKyAgICAg
ICAgKiBwbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdp
bkRhdGFiYXNlOjpwbHVnaW5Gb3JNSU1FVHlwZSk6CisgICAgICAgICogcGx1Z2lucy93aW4vUGx1
Z2luUGFja2FnZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5QYWNrYWdlOjppc1Bs
dWdpbkJsYWNrbGlzdGVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUGFydE9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpoYXZlUGx1Z2luKToKKwogMjAwOS0wNC0wMiAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlcgpJbmRleDogV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAkocmV2aXNpb24gNDIx
NzEpCisrKyBXZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM0MSw3ICszNDEsOCBAQCBQYXNzUmVmUHRyPERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlv
bjo6CiAKICAgICAvLyBQREYgaXMgb25lIGltYWdlIHR5cGUgZm9yIHdoaWNoIGEgcGx1Z2luIGNh
biBvdmVycmlkZSBidWlsdC1pbiBzdXBwb3J0LgogICAgIC8vIFdlIGRvIG5vdCB3YW50IFF1aWNr
VGltZSB0byB0YWtlIG92ZXIgYWxsIGltYWdlIHR5cGVzLCBvYnZpb3VzbHkuCi0gICAgaWYgKCh0
eXBlID09ICJhcHBsaWNhdGlvbi9wZGYiIHx8IHR5cGUgPT0gInRleHQvcGRmIikgJiYgcGx1Z2lu
RGF0YSAmJiBwbHVnaW5EYXRhLT5zdXBwb3J0c01pbWVUeXBlKHR5cGUpKQorICAgIC8vIFdlIHBh
c3MgaW4gZmFsc2UgdG8gdGhlIHN1cHBvcnRzTWltZVR5cGUgZnVuY3Rpb24gaW4gUGx1Z2luRGF0
YSBhcyB3ZSBkb24ndCB3YW50IHRvIG1hdGNoIHdpbGRjYXJkIHBsdWdpbnMgaGVyZS4KKyAgICBp
ZiAoKHR5cGUgPT0gImFwcGxpY2F0aW9uL3BkZiIgfHwgdHlwZSA9PSAidGV4dC9wZGYiKSAmJiBw
bHVnaW5EYXRhICYmIHBsdWdpbkRhdGEtPnN1cHBvcnRzTWltZVR5cGUodHlwZSwgZmFsc2UpKQog
ICAgICAgICByZXR1cm4gUGx1Z2luRG9jdW1lbnQ6OmNyZWF0ZShmcmFtZSk7CiAgICAgaWYgKElt
YWdlOjpzdXBwb3J0c1R5cGUodHlwZSkpCiAgICAgICAgIHJldHVybiBJbWFnZURvY3VtZW50Ojpj
cmVhdGUoZnJhbWUpOwpAQCAtMzU1LDcgKzM1Niw4IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IERP
TUltcGxlbWVudGF0aW9uOjoKICAgICAvLyBFdmVyeXRoaW5nIGVsc2UgZXhjZXB0IHRleHQvcGxh
aW4gY2FuIGJlIG92ZXJyaWRkZW4gYnkgcGx1Z2lucy4gSW4gcGFydGljdWxhciwgQWRvYmUgU1ZH
IFZpZXdlciBzaG91bGQgYmUgdXNlZCBmb3IgU1ZHLCBpZiBpbnN0YWxsZWQuCiAgICAgLy8gRGlz
YWxsb3dpbmcgcGx1Zy1pbnMgdG8gdXNlIHRleHQvcGxhaW4gcHJldmVudHMgcGx1Zy1pbnMgZnJv
bSBoaWphY2tpbmcgYSBmdW5kYW1lbnRhbCB0eXBlIHRoYXQgdGhlIGJyb3dzZXIgaXMgZXhwZWN0
ZWQgdG8gaGFuZGxlLAogICAgIC8vIGFuZCBhbHNvIHNlcnZlcyBhcyBhbiBvcHRpbWl6YXRpb24g
dG8gcHJldmVudCBsb2FkaW5nIHRoZSBwbHVnLWluIGRhdGFiYXNlIGluIHRoZSBjb21tb24gY2Fz
ZS4KLSAgICBpZiAodHlwZSAhPSAidGV4dC9wbGFpbiIgJiYgcGx1Z2luRGF0YSAmJiBwbHVnaW5E
YXRhLT5zdXBwb3J0c01pbWVUeXBlKHR5cGUpKSAKKyAgICAvLyBXZSBwYXNzIGluIGZhbHNlIHRv
IHRoZSBzdXBwb3J0c01pbWVUeXBlIGZ1bmN0aW9uIGluIFBsdWdpbkRhdGEgYXMgd2UgZG9uJ3Qg
d2FudCB0byBtYXRjaCB3aWxkY2FyZCBwbHVnaW5zIGhlcmUuCisgICAgaWYgKHR5cGUgIT0gInRl
eHQvcGxhaW4iICYmIHBsdWdpbkRhdGEgJiYgcGx1Z2luRGF0YS0+c3VwcG9ydHNNaW1lVHlwZSh0
eXBlLCBmYWxzZSkpIAogICAgICAgICByZXR1cm4gUGx1Z2luRG9jdW1lbnQ6OmNyZWF0ZShmcmFt
ZSk7CiAgICAgaWYgKGlzVGV4dE1JTUVUeXBlKHR5cGUpKQogICAgICAgICByZXR1cm4gVGV4dERv
Y3VtZW50OjpjcmVhdGUoZnJhbWUpOwpAQCAtMzc2LDMgKzM3OCw1IEBAIFBhc3NSZWZQdHI8RG9j
dW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjoKIH0KIAogfQorCisKSW5kZXg6IFdlYkNvcmUvcGx1
Z2lucy9QbHVnaW5EYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsdWdpbnMvUGx1Z2lu
RGF0YS5jcHAJKHJldmlzaW9uIDQyMTcxKQorKysgV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGEu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCwxMSArNDQsMTUgQEAgUGx1Z2luRGF0YTo6flBsdWdp
bkRhdGEoKQogICAgIGRlbGV0ZUFsbFZhbHVlcyhtX21pbWVzKTsKIH0KIAotYm9vbCBQbHVnaW5E
YXRhOjpzdXBwb3J0c01pbWVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0Citib29s
IFBsdWdpbkRhdGE6OnN1cHBvcnRzTWltZVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9v
bCBhbGxvd1dpbGRDYXJkKSBjb25zdAogewotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBt
X21pbWVzLnNpemUoKTsgKytpKQotICAgICAgICBpZiAobV9taW1lc1tpXS0+dHlwZSA9PSBtaW1l
VHlwZSkKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9taW1lcy5zaXplKCk7ICsraSkg
eworICAgICAgICBpZiAobV9taW1lc1tpXS0+dHlwZSA9PSBtaW1lVHlwZSkgeworICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0gZWxzZSBpZiAoYWxsb3dXaWxkQ2FyZCAmJiBtX21p
bWVzW2ldLT50eXBlID09ICIqIikgewogICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
IH0KKyAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkluZGV4OiBXZWJDb3JlL3BsdWdpbnMv
UGx1Z2luRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhLmgJ
KHJldmlzaW9uIDQyMTcxKQorKysgV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGEuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTUsNyArNTUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGNv
bnN0IFZlY3RvcjxQbHVnaW5JbmZvKj4mIHBsdWdpbnMoKSBjb25zdCB7IHJldHVybiBtX3BsdWdp
bnM7IH0KICAgICAgICAgY29uc3QgVmVjdG9yPE1pbWVDbGFzc0luZm8qPiYgbWltZXMoKSBjb25z
dCB7IHJldHVybiBtX21pbWVzOyB9CiAKLSAgICAgICAgYm9vbCBzdXBwb3J0c01pbWVUeXBlKGNv
bnN0IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0OworICAgICAgICBib29sIHN1cHBvcnRzTWltZVR5
cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBhbGxvd1dpbGRDYXJkKSBjb25zdDsKICAg
ICAgICAgU3RyaW5nIHBsdWdpbk5hbWVGb3JNaW1lVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBl
KSBjb25zdDsKIAogICAgICAgICBzdGF0aWMgdm9pZCByZWZyZXNoKCk7CkluZGV4OiBXZWJDb3Jl
L3BsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGx1Z2lu
cy9QbHVnaW5EYXRhYmFzZS5jcHAJKHJldmlzaW9uIDQyMTcxKQorKysgV2ViQ29yZS9wbHVnaW5z
L1BsdWdpbkRhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYxLDEzICsxNjEsMjUgQEAg
UGx1Z2luUGFja2FnZSogUGx1Z2luRGF0YWJhc2U6OnBsdWdpbkZvcgogCiAgICAgVmVjdG9yPFBs
dWdpblBhY2thZ2UqLCAyPiBwbHVnaW5DaG9pY2VzOwogCisgICAgUGx1Z2luUGFja2FnZSogcGx1
Z2luUGFja2FnZVN1cHBvcnRpbmdXaWxkY2FyZHMgPSBOVUxMOworCiAgICAgZm9yIChQbHVnaW5T
ZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9wbHVnaW5zLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytp
dCkgewotICAgICAgICBpZiAoKCppdCktPm1pbWVUb0Rlc2NyaXB0aW9ucygpLmNvbnRhaW5zKGtl
eSkpCi0gICAgICAgICAgICBwbHVnaW5DaG9pY2VzLmFwcGVuZCgoKml0KS5nZXQoKSk7CisgICAg
ICAgIFBsdWdpblBhY2thZ2UqIHBhY2thZ2UgPSAoKml0KS5nZXQoKTsKKworICAgICAgICBjb25z
dCBNSU1FVG9EZXNjcmlwdGlvbnNNYXAmIG1pbWVUb0Rlc2NyaXB0aW9ucyA9IHBhY2thZ2UtPm1p
bWVUb0Rlc2NyaXB0aW9ucygpOworCisgICAgICAgIE1JTUVUb0Rlc2NyaXB0aW9uc01hcDo6Y29u
c3RfaXRlcmF0b3IgZW5kID0gbWltZVRvRGVzY3JpcHRpb25zLmVuZCgpOworICAgICAgICAKKyAg
ICAgICAgZm9yIChNSU1FVG9EZXNjcmlwdGlvbnNNYXA6OmNvbnN0X2l0ZXJhdG9yIG1pbWVpdGVy
ID0gbWltZVRvRGVzY3JpcHRpb25zLmJlZ2luKCk7IG1pbWVpdGVyICE9IGVuZDsgKyttaW1laXRl
cikgeworICAgICAgICAgICAgLy8gV2UgY2hlY2sgZm9yIGV4YWN0IG1pbWUgdHlwZSBtYXRjaGVz
IGFuZCB3aWxkY2FyZCAoKikgbWF0Y2hlcy4gCisgICAgICAgICAgICBpZiAoKG1pbWVpdGVyLT5m
aXJzdCA9PSBrZXkpIHx8IChtaW1laXRlci0+Zmlyc3QgPT0gIioiKSkKKyAgICAgICAgICAgICAg
ICBwbHVnaW5DaG9pY2VzLmFwcGVuZChwYWNrYWdlKTsKKyAgICAgICAgfQogICAgIH0KIAotICAg
IGlmIChwbHVnaW5DaG9pY2VzLmlzRW1wdHkoKSkKKyAgICBpZiAocGx1Z2luQ2hvaWNlcy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgcmV0dXJuIDA7CisgICAgfQogCiAgICAgcXNvcnQocGx1Z2luQ2hv
aWNlcy5kYXRhKCksIHBsdWdpbkNob2ljZXMuc2l6ZSgpLCBzaXplb2YoUGx1Z2luUGFja2FnZSop
LCBQbHVnaW5EYXRhYmFzZTo6cHJlZmVycmVkUGx1Z2luQ29tcGFyZSk7CiAKSW5kZXg6IFdlYkNv
cmUvcGx1Z2lucy93aW4vUGx1Z2luUGFja2FnZVdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbHVnaW5zL3dpbi9QbHVnaW5QYWNrYWdlV2luLmNwcAkocmV2aXNpb24gNDIxNzEpCisrKyBX
ZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblBhY2thZ2VXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC04NCw2ICs4NCwxMCBAQCBib29sIFBsdWdpblBhY2thZ2U6OmlzUGx1Z2luQmxhY2tsaXN0ZWQo
CiAgICAgfSBlbHNlIGlmIChmaWxlTmFtZSgpID09ICJucG1vemF4LmRsbCIpCiAgICAgICAgIC8v
IEJ1ZyAxNTIxNzogTW96aWxsYSBBY3RpdmVYIGNvbnRyb2wgY29tcGxhaW5zIGFib3V0IG1pc3Np
bmcgeHBjb21fY29yZS5kbGwKICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICBlbHNlIGlmIChm
aWxlTmFtZSgpID09ICJucG51bDMyLmRsbCIpCisgICAgICAgIC8vIFdlIGRvbid0IHdhbnQgdG8g
bG9hZCB0aGUgTW96aWxsYSBOVUxMIHBsdWdpbiwgd2hpY2ggaXMgdXNlZCB0byBpbnN0YWxsCisg
ICAgICAgIC8vIE5QQVBJIHBsdWdpbnMuCisgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgcmV0
dXJuIGZhbHNlOwogfQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydE9iamVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydE9iamVjdC5jcHAJ
KHJldmlzaW9uIDQyMTcxKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydE9iamVjdC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOCw3ICsxMDgsOSBAQCBzdGF0aWMgY29uc3QgU3RyaW5n
JiBhY3RpdmVYVHlwZSgpCiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBoYXZlUGx1Z2luKGNvbnN0IFBs
dWdpbkRhdGEqIHBsdWdpbkRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKLSAgICByZXR1cm4g
cGx1Z2luRGF0YSAmJiAhdHlwZS5pc0VtcHR5KCkgJiYgcGx1Z2luRGF0YS0+c3VwcG9ydHNNaW1l
VHlwZSh0eXBlKTsKKyAgICAvLyBXZSBwYXNzIGluIHRydWUgdG8gdGhlIHN1cHBvcnRzTWltZVR5
cGUgZnVuY3Rpb24gaW4gUGx1Z2luRGF0YSB0byBhbGxvdworICAgIC8vIHBsdWdpbnMgd2hpY2gg
c3VwcG9ydCB0aGUgd2lsZGNhcmQgbWltZSB0eXBlICogdG8gYmUgaW5zdGFudGlhdGVkLgorICAg
IHJldHVybiBwbHVnaW5EYXRhICYmICF0eXBlLmlzRW1wdHkoKSAmJiBwbHVnaW5EYXRhLT5zdXBw
b3J0c01pbWVUeXBlKHR5cGUsIHRydWUpOwogfQogCiBzdGF0aWMgU3RyaW5nIHNlcnZpY2VUeXBl
Rm9yQ2xhc3NJZChjb25zdCBTdHJpbmcmIGNsYXNzSWQsIGNvbnN0IFBsdWdpbkRhdGEqIHBsdWdp
bkRhdGEpCkluZGV4OiBXZWJLaXRUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0MjE3NCkKKysrIFdlYktpdFRvb2xzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDA5LTA0LTAyICBBbmFudGFuYXJh
eWFuYW4gSXllbmdhciAgPGFuYW50YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBBZGRlZCB0aGUgd2lsZGNhcmQg
bWltZSB0eXBlICgqKSB0byB0aGUgbGlzdCBvZiBtaW1lIHR5cGVzIHN1cHBvcnRlZCBieSB0aGUK
KyAgICAgICAgbGF5b3V0IHRlc3QgcGx1Z2luLiBUaGUgcGx1Z2luIGVtaXRzIGEgdHJhY2UgaW4g
aXRzIE5QUF9OZXcgaW1wbGVtZW50YXRpb24KKyAgICAgICAgb24gcmVjZWl2aW5nIHRoZSBhcHBs
aWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlLXdpbGRjYXJkLXBsdWdpbiBtaW1lIHR5cGUs
CisgICAgICAgIGluZGljYXRpbmcgdGhhdCB0aGUgd2lsZGNhcmQgcGx1Z2luIG1pbWUgdHlwZSBt
YXRjaCBzdWNjZWVkZWQuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI0OTg4CisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQ
bHVnSW4uc3VicHJvai9JbmZvLnBsaXN0OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RO
ZXRzY2FwZVBsdWdJbi5zdWJwcm9qL21haW4uY3BwOgorICAgICAgICAoTlBQX05ldyk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9UZXN0TmV0c2NhcGVQ
bHVnaW4ucmM6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdp
bi9tYWluLmNwcDoKKyAgICAgICAgKE5QUF9OZXcpOgorCiAyMDA5LTA0LTAxICBNYXJrIFJvd2Ug
IDxtcm93ZUBhcHBsZS5jb20+CiAKICAgICAgICAgV2luZG93cyBzdXBwb3J0IGZvciBidWlsdC1w
cm9kdWN0LWFyY2hpdmUuCkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0
c2NhcGVQbHVnSW4uc3VicHJvai9JbmZvLnBsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi5zdWJwcm9qL0luZm8ucGxpc3QJKHJl
dmlzaW9uIDQyMTcxKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBl
UGx1Z0luLnN1YnByb2ovSW5mby5wbGlzdAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsMTUg
QEAKIAkJCTxrZXk+V2ViUGx1Z2luVHlwZURlc2NyaXB0aW9uPC9rZXk+CiAJCQk8c3RyaW5nPnRl
c3QgbmV0c2NhcGUgY29udGVudDwvc3RyaW5nPgogCQk8L2RpY3Q+CisJCTxrZXk+Kjwva2V5Pgor
CQk8ZGljdD4KKwkJCTxrZXk+V2ViUGx1Z2luRXh0ZW5zaW9uczwva2V5PgorCQkJPGFycmF5Pgor
CQkJCTxzdHJpbmc+d2lsZGNhcmQgcGx1Z2luPC9zdHJpbmc+CisJCQk8L2FycmF5PgorCQkJPGtl
eT5XZWJQbHVnaW5UeXBlRGVzY3JpcHRpb248L2tleT4KKwkJCTxzdHJpbmc+dGVzdCBuZXRzY2Fw
ZSB3aWxkY2FyZCBwbHVnaW48L3N0cmluZz4KKwkJPC9kaWN0PgogCTwvZGljdD4KIAk8a2V5Pldl
YlBsdWdpbk5hbWU8L2tleT4KIAk8c3RyaW5nPldlYktpdCBUZXN0IFBsdWdJbjwvc3RyaW5nPgpJ
bmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnBy
b2ovbWFpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovbWFpbi5jcHAJKHJldmlzaW9uIDQyMTcxKQorKysgV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovbWFpbi5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE2NSw2ICsxNjUsMTEgQEAgTlBFcnJvciBOUFBfTmV3KE5Q
TUlNRVR5cGUgcGx1Z2luVHlwZSwgTgogICAgICAgICAKICAgICAgICAgb2JqLT5ldmVudE1vZGVs
ID0gTlBFdmVudE1vZGVsQ29jb2E7CiAgICAgfQorCisgICAgaWYgKF9zdHJjYXNlY21wKHBsdWdp
blR5cGUsICJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlLXdpbGRjYXJkLXBsdWdp
biIpID09IDApIHsKKyAgICAgICAgbG9nKGluc3RhbmNlLCAiUExVR0lOOiBOUEFQSSBXaWxkY2Fy
ZCBwbHVnaW4gaW5zdGFuY2UgbG9hZGVkXG4iKTsKKyAgICAgICAgZmZsdXNoKHN0ZG91dCk7Cisg
ICAgfQogICAgIAogICAgIGJyb3dzZXItPnNldHZhbHVlKGluc3RhbmNlLCBOUFBWcGx1Z2luRXZl
bnRNb2RlbCwgKHZvaWQgKilvYmotPmV2ZW50TW9kZWwpOwogICAgIHJldHVybiBOUEVSUl9OT19F
UlJPUjsKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQ
bHVnaW4vVGVzdE5ldHNjYXBlUGx1Z2luLnJjCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vVGVzdE5ldHNjYXBlUGx1Z2luLnJj
CShyZXZpc2lvbiA0MjE3MSkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0
TmV0c2NhcGVQbHVnaW4vVGVzdE5ldHNjYXBlUGx1Z2luLnJjCSh3b3JraW5nIGNvcHkpCkBAIC03
Myw3ICs3Myw3IEBAIEJFR0lOCiAgICAgICAgICAgICBWQUxVRSAiRmlsZURlc2NyaXB0aW9uIiwg
IlRlc3ROZXRzY2FwZVBsdWdJbiIKICAgICAgICAgICAgIFZBTFVFICJGaWxlT3Blbk5hbWUiLCAi
dGVzdCBuZXRzY2FwZSBjb250ZW50IgogICAgICAgICAgICAgVkFMVUUgIkxlZ2FsQ29weXJpZ2h0
IiwgIkNvcHlyaWdodCBBcHBsZSBJbmMuIDIwMDctMjAwOSIKLSAgICAgICAgICAgIFZBTFVFICJN
SU1FVHlwZSIsICJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlIgorICAgICAgICAg
ICAgVkFMVUUgIk1JTUVUeXBlIiwgImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGV8
KiIKICAgICAgICAgICAgIFZBTFVFICJPcmlnaW5hbEZpbGVuYW1lIiwgIm5wVGVzdE5ldHNjYXBl
UGx1Z2luLmRsbCIKICAgICAgICAgICAgIFZBTFVFICJQcm9kdWN0TmFtZSIsICJUZXN0TmV0c2Nh
cGVQbHVnSW4iCiAgICAgICAgIEVORApJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
d2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9tYWluLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL21haW4uY3BwCShyZXZpc2lv
biA0MjE3MSkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQ
bHVnaW4vbWFpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg1LDcgKzg1LDEyIEBAIE5QRXJyb3Ig
TlBQX05ldyhOUE1JTUVUeXBlIHBsdWdpblR5cGUsIE4KICAgICAgICAgICAgIGVsc2UgaWYgKF9z
dHJpY21wKGFyZ25baV0sICJvblVSTE5vdGlmeSIpID09IDAgJiYgIW9iai0+b25VUkxOb3RpZnkp
CiAgICAgICAgICAgICAgICAgb2JqLT5vblVSTE5vdGlmeSA9IF9zdHJkdXAoYXJndltpXSk7CiAg
ICAgICAgIH0KLSAgICAgICAgCisKKyAgICAgICAgaWYgKF9zdHJpY21wKHBsdWdpblR5cGUsICJh
cHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlLXdpbGRjYXJkLXBsdWdpbiIpID09IDAp
IHsKKyAgICAgICAgICAgIHByaW50ZigiQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IFBMVUdJTjog
TlBBUEkgV2lsZGNhcmQgcGx1Z2luIGluc3RhbmNlIGxvYWRlZFxuIik7CisgICAgICAgICAgICBm
Zmx1c2goc3Rkb3V0KTsKKyAgICAgICAgfQorCiAgICAgICAgIGluc3RhbmNlLT5wZGF0YSA9IG9i
ajsKICAgICB9CiAgICAgCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0MjE3NCkKKysrIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDA5LTA0LTAyICBB
bmFudGFuYXJheWFuYW4gSXllbmdhciAgPGFuYW50YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSBsYXlvdXQgdGVz
dCB3aGljaCB2ZXJpZmllcyB3aGV0aGVyIHRoZSB3aWxkY2FyZCBwbHVnaW4gbWltZSB0eXBlIG1h
dGNoCisgICAgICAgIHN1Y2NlZWRlZC4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5ODgKKworICAgICAgICAqIHBsdWdpbnMvbmV0c2NhcGUtcGx1
Z2luLXdpbGRjYXJkLXBsdWdpbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsdWdp
bnMvbmV0c2NhcGUtcGx1Z2luLXdpbGRjYXJkLXBsdWdpbi5odG1sOiBBZGRlZC4KKwogMjAwOS0w
NC0wMSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuIEJhc2VkIG9uIHdvcmsgb2YgSnVsaWVuIENoYWZmcmFpeC4K
SW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXdpbGRjYXJkLXBsdWdp
bi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9uZXRzY2Fw
ZS1wbHVnaW4td2lsZGNhcmQtcGx1Z2luLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL3BsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXdpbGRjYXJkLXBsdWdpbi1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMyBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDA6IFBMVUdJTjogTlBBUEkgV2lsZGNhcmQgcGx1Z2luIGluc3RhbmNlIGxvYWRlZAorCitUaGlz
IHRlc3RzIHRoYXQgYSBwbHVnaW4gd2hpY2ggc3VwcG9ydHMgdGhlIHdpbGRjYXJkIG1pbWUgdHlw
ZSAqIGlzIGxvYWRlZCBjb3JyZWN0bHkuCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0
cy9wbHVnaW5zL25ldHNjYXBlLXBsdWdpbi13aWxkY2FyZC1wbHVnaW4tZXhwZWN0ZWQudHh0Cl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbHVnaW5zL25ldHNjYXBlLXBsdWdpbi13aWxkY2FyZC1wbHVnaW4uaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL25ldHNjYXBlLXBsdWdpbi13aWxkY2FyZC1wbHVn
aW4uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvbmV0c2NhcGUtcGx1
Z2luLXdpbGRjYXJkLXBsdWdpbi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE2IEBACis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0V2luZG93SXNLZXkoZmFsc2UpOworICAgIH0KKyAg
ICAKKzwvc2NyaXB0PgorPGJvZHk+Cis8ZW1iZWQgaWQ9InRlc3RQbHVnaW4iIHR5cGU9ImFwcGxp
Y2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUtd2lsZGNhcmQtcGx1Z2luIiB3aWR0aD0iMjAw
IiBoZWlnaHQ9IjIwMCI+PC9lbWJlZD4KKzxkaXY+CisgICAgVGhpcyB0ZXN0cyB0aGF0IGEgcGx1
Z2luIHdoaWNoIHN1cHBvcnRzIHRoZSB3aWxkY2FyZCBtaW1lIHR5cGUgKiBpcyBsb2FkZWQgY29y
cmVjdGx5LgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBM
YXlvdXRUZXN0cy9wbHVnaW5zL25ldHNjYXBlLXBsdWdpbi13aWxkY2FyZC1wbHVnaW4uaHRtbApf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCg==
</data>
<flag name="review"
          id="14476"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29206</attachid>
            <date>2009-04-02 13:25:15 -0700</date>
            <delta_ts>2009-04-08 16:51:18 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>SupportWildcardPlugins.txt</filename>
            <type>text/plain</type>
            <size>12981</size>
            <attacher name="Ananta Iyengar">ananta</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MjE3NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMDktMDQtMDIgIEFuYW50YW5hcmF5YW5hbiBJeWVuZ2FyICA8YW5h
bnRhQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGRlZCBzdXBwb3J0IGZvciByZXR1cm5pbmcgcGx1Z2lucyB3aGljaCBzdXBw
b3J0IHRoZSB3aWxkY2FyZCBtaW1lIHR5cGUgKCopLgorICAgICAgICBUaGlzIGlzIG9uIHRoZSBz
YW1lIGxpbmVzIGFzIEZpcmVmb3gsIHdoaWNoIHVzZXMgYSB3aWxkY2FyZCBwbHVnaW4gKG5wbnVs
MzIuZGxsKSBmb3IKKyAgICAgICAgcGx1Z2luIGluc3RhbGxhdGlvbi4gVGhlIGNoYW5nZXMgdG8g
c3VwcG9ydCB3aWxkY2FyZCBtaW1lIHR5cGUgbWF0Y2hpbmcgYXJlIGluCisgICAgICAgIFBsdWdp
bkRhdGFiYXNlLmNwcCB3aGljaCBpcyB1c2VkIGJ5IFdlYmtpdCdzIHBsdWdpbiBpbXBsZW1lbnRh
dGlvbiwgYW5kCisgICAgICAgIFBsdWdpbkRhdGEuY3BwLy5oIHdoaWNoIGlzIHVzZWQgYnkgQ2hy
b21pdW0uIAorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yNDk4OAorCisgICAgICAgIFRlc3Q6IHBsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXdpbGRjYXJk
LXBsdWdpbi5odG1sCisKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KToKKyAgICAg
ICAgKiBwbHVnaW5zL1BsdWdpbkRhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luRGF0
YTo6c3VwcG9ydHNNaW1lVHlwZSk6CisgICAgICAgICogcGx1Z2lucy9QbHVnaW5EYXRhLmg6Cisg
ICAgICAgICogcGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
bHVnaW5EYXRhYmFzZTo6cGx1Z2luRm9yTUlNRVR5cGUpOgorICAgICAgICAqIHBsdWdpbnMvd2lu
L1BsdWdpblBhY2thZ2VXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luUGFja2FnZTo6
aXNQbHVnaW5CbGFja2xpc3RlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclBhcnRPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aGF2ZVBsdWdpbik6CisKIDIwMDktMDQtMDIgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gQWRsZXIKSW5kZXg6IFdlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAJKHJldmlzaW9u
IDQyMTcxKQorKysgV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNDEsNyArMzQxLDcgQEAgUGFzc1JlZlB0cjxEb2N1bWVudD4gRE9NSW1wbGVtZW50
YXRpb246OgogCiAgICAgLy8gUERGIGlzIG9uZSBpbWFnZSB0eXBlIGZvciB3aGljaCBhIHBsdWdp
biBjYW4gb3ZlcnJpZGUgYnVpbHQtaW4gc3VwcG9ydC4KICAgICAvLyBXZSBkbyBub3Qgd2FudCBR
dWlja1RpbWUgdG8gdGFrZSBvdmVyIGFsbCBpbWFnZSB0eXBlcywgb2J2aW91c2x5LgotICAgIGlm
ICgodHlwZSA9PSAiYXBwbGljYXRpb24vcGRmIiB8fCB0eXBlID09ICJ0ZXh0L3BkZiIpICYmIHBs
dWdpbkRhdGEgJiYgcGx1Z2luRGF0YS0+c3VwcG9ydHNNaW1lVHlwZSh0eXBlKSkKKyAgICBpZiAo
KHR5cGUgPT0gImFwcGxpY2F0aW9uL3BkZiIgfHwgdHlwZSA9PSAidGV4dC9wZGYiKSAmJiBwbHVn
aW5EYXRhICYmIHBsdWdpbkRhdGEtPnN1cHBvcnRzTWltZVR5cGVXaXRob3V0Q29uc2lkZXJpbmdX
aWxkY2FyZHModHlwZSkpCiAgICAgICAgIHJldHVybiBQbHVnaW5Eb2N1bWVudDo6Y3JlYXRlKGZy
YW1lKTsKICAgICBpZiAoSW1hZ2U6OnN1cHBvcnRzVHlwZSh0eXBlKSkKICAgICAgICAgcmV0dXJu
IEltYWdlRG9jdW1lbnQ6OmNyZWF0ZShmcmFtZSk7CkBAIC0zNTUsNyArMzU1LDcgQEAgUGFzc1Jl
ZlB0cjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OgogICAgIC8vIEV2ZXJ5dGhpbmcgZWxz
ZSBleGNlcHQgdGV4dC9wbGFpbiBjYW4gYmUgb3ZlcnJpZGRlbiBieSBwbHVnaW5zLiBJbiBwYXJ0
aWN1bGFyLCBBZG9iZSBTVkcgVmlld2VyIHNob3VsZCBiZSB1c2VkIGZvciBTVkcsIGlmIGluc3Rh
bGxlZC4KICAgICAvLyBEaXNhbGxvd2luZyBwbHVnLWlucyB0byB1c2UgdGV4dC9wbGFpbiBwcmV2
ZW50cyBwbHVnLWlucyBmcm9tIGhpamFja2luZyBhIGZ1bmRhbWVudGFsIHR5cGUgdGhhdCB0aGUg
YnJvd3NlciBpcyBleHBlY3RlZCB0byBoYW5kbGUsCiAgICAgLy8gYW5kIGFsc28gc2VydmVzIGFz
IGFuIG9wdGltaXphdGlvbiB0byBwcmV2ZW50IGxvYWRpbmcgdGhlIHBsdWctaW4gZGF0YWJhc2Ug
aW4gdGhlIGNvbW1vbiBjYXNlLgotICAgIGlmICh0eXBlICE9ICJ0ZXh0L3BsYWluIiAmJiBwbHVn
aW5EYXRhICYmIHBsdWdpbkRhdGEtPnN1cHBvcnRzTWltZVR5cGUodHlwZSkpIAorICAgIGlmICh0
eXBlICE9ICJ0ZXh0L3BsYWluIiAmJiBwbHVnaW5EYXRhICYmIHBsdWdpbkRhdGEtPnN1cHBvcnRz
TWltZVR5cGVXaXRob3V0Q29uc2lkZXJpbmdXaWxkY2FyZHModHlwZSkpIAogICAgICAgICByZXR1
cm4gUGx1Z2luRG9jdW1lbnQ6OmNyZWF0ZShmcmFtZSk7CiAgICAgaWYgKGlzVGV4dE1JTUVUeXBl
KHR5cGUpKQogICAgICAgICByZXR1cm4gVGV4dERvY3VtZW50OjpjcmVhdGUoZnJhbWUpOwpAQCAt
Mzc2LDMgKzM3Niw1IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjoK
IH0KIAogfQorCisKSW5kZXg6IFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YS5jcHAJKHJldmlzaW9uIDQyMTcxKQor
KysgV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw5
ICs0NiwxOSBAQCBQbHVnaW5EYXRhOjp+UGx1Z2luRGF0YSgpCiAKIGJvb2wgUGx1Z2luRGF0YTo6
c3VwcG9ydHNNaW1lVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdAogewotICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX21pbWVzLnNpemUoKTsgKytpKQorICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBtX21pbWVzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChtX21p
bWVzW2ldLT50eXBlID09IG1pbWVUeXBlIHx8IG1fbWltZXNbaV0tPnR5cGUgPT0gIioiKQorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9v
bCBQbHVnaW5EYXRhOjpzdXBwb3J0c01pbWVUeXBlV2l0aG91dENvbnNpZGVyaW5nV2lsZGNhcmRz
KGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0Cit7CisgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IG1fbWltZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgaWYgKG1fbWltZXNbaV0tPnR5
cGUgPT0gbWltZVR5cGUpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCkluZGV4OiBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhLmgJKHJldmlzaW9uIDQyMTcxKQor
KysgV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNTYsNiAr
NTYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGNvbnN0IFZlY3RvcjxNaW1lQ2xh
c3NJbmZvKj4mIG1pbWVzKCkgY29uc3QgeyByZXR1cm4gbV9taW1lczsgfQogCiAgICAgICAgIGJv
b2wgc3VwcG9ydHNNaW1lVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdDsKKyAgICAg
ICAgYm9vbCBzdXBwb3J0c01pbWVUeXBlV2l0aG91dENvbnNpZGVyaW5nV2lsZGNhcmRzKGNvbnN0
IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0OwogICAgICAgICBTdHJpbmcgcGx1Z2luTmFtZUZvck1p
bWVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0OwogCiAgICAgICAgIHN0YXRpYyB2
b2lkIHJlZnJlc2goKTsKSW5kZXg6IFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcAkocmV2aXNp
b24gNDIxNzEpCisrKyBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNjIsOCArMTYyLDE3IEBAIFBsdWdpblBhY2thZ2UqIFBsdWdpbkRhdGFiYXNl
OjpwbHVnaW5Gb3IKICAgICBWZWN0b3I8UGx1Z2luUGFja2FnZSosIDI+IHBsdWdpbkNob2ljZXM7
CiAKICAgICBmb3IgKFBsdWdpblNldDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3BsdWdpbnMuYmVn
aW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgIGlmICgoKml0KS0+bWltZVRvRGVzY3Jp
cHRpb25zKCkuY29udGFpbnMoa2V5KSkKLSAgICAgICAgICAgIHBsdWdpbkNob2ljZXMuYXBwZW5k
KCgqaXQpLmdldCgpKTsKKyAgICAgICAgUGx1Z2luUGFja2FnZSogcGFja2FnZSA9ICgqaXQpLmdl
dCgpOworCisgICAgICAgIGNvbnN0IE1JTUVUb0Rlc2NyaXB0aW9uc01hcCYgbWltZVRvRGVzY3Jp
cHRpb25zID0gcGFja2FnZS0+bWltZVRvRGVzY3JpcHRpb25zKCk7CisKKyAgICAgICAgTUlNRVRv
RGVzY3JpcHRpb25zTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBtaW1lVG9EZXNjcmlwdGlvbnMu
ZW5kKCk7CisgICAgICAgIAorICAgICAgICBmb3IgKE1JTUVUb0Rlc2NyaXB0aW9uc01hcDo6Y29u
c3RfaXRlcmF0b3IgbWltZWl0ZXIgPSBtaW1lVG9EZXNjcmlwdGlvbnMuYmVnaW4oKTsgbWltZWl0
ZXIgIT0gZW5kOyArK21pbWVpdGVyKSB7CisgICAgICAgICAgICAvLyBXZSBjaGVjayBmb3IgZXhh
Y3QgbWltZSB0eXBlIG1hdGNoZXMgYW5kIHdpbGRjYXJkICgqKSBtYXRjaGVzLiAKKyAgICAgICAg
ICAgIGlmIChtaW1laXRlci0+Zmlyc3QgPT0ga2V5IHx8IG1pbWVpdGVyLT5maXJzdCA9PSAiKiIp
CisgICAgICAgICAgICAgICAgcGx1Z2luQ2hvaWNlcy5hcHBlbmQocGFja2FnZSk7CisgICAgICAg
IH0KICAgICB9CiAKICAgICBpZiAocGx1Z2luQ2hvaWNlcy5pc0VtcHR5KCkpCkluZGV4OiBXZWJD
b3JlL3BsdWdpbnMvd2luL1BsdWdpblBhY2thZ2VXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGx1Z2lucy93aW4vUGx1Z2luUGFja2FnZVdpbi5jcHAJKHJldmlzaW9uIDQyMTcxKQorKysg
V2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5QYWNrYWdlV2luLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtODEsOSArODEsMTQgQEAgYm9vbCBQbHVnaW5QYWNrYWdlOjppc1BsdWdpbkJsYWNrbGlzdGVk
KAogCiAgICAgICAgIGlmIChjb21wYXJlRmlsZVZlcnNpb24oc2xQbHVnaW5NaW5SZXF1aXJlZCkg
PCAwKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSBlbHNlIGlmIChmaWxlTmFtZSgp
ID09ICJucG1vemF4LmRsbCIpCisgICAgfSBlbHNlIGlmIChmaWxlTmFtZSgpID09ICJucG1vemF4
LmRsbCIpIHsKICAgICAgICAgLy8gQnVnIDE1MjE3OiBNb3ppbGxhIEFjdGl2ZVggY29udHJvbCBj
b21wbGFpbnMgYWJvdXQgbWlzc2luZyB4cGNvbV9jb3JlLmRsbAogICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9IGVsc2UgaWYgKGZpbGVOYW1lKCkgPT0gIm5wbnVsMzIuZGxsIikgeworICAgICAg
ICAvLyBXZSBkb24ndCB3YW50IHRvIGxvYWQgdGhlIE1vemlsbGEgbnVsbCBwbHVnaW4sIHdoaWNo
IGlzIHVzZWQgdG8gaW5zdGFsbAorICAgICAgICAvLyBOUEFQSSBwbHVnaW5zLgorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CkluZGV4OiBXZWJLaXRU
b29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCShyZXZp
c2lvbiA0MjE3NCkKKysrIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDIxIEBACisyMDA5LTA0LTAyICBBbmFudGFuYXJheWFuYW4gSXllbmdhciAgPGFuYW50
YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisg
ICAgICAgIAorICAgICAgICBBZGRlZCB0aGUgd2lsZGNhcmQgbWltZSB0eXBlICgqKSB0byB0aGUg
bGlzdCBvZiBtaW1lIHR5cGVzIHN1cHBvcnRlZCBieSB0aGUKKyAgICAgICAgbGF5b3V0IHRlc3Qg
cGx1Z2luLiBUaGUgcGx1Z2luIGVtaXRzIGEgdHJhY2UgaW4gaXRzIE5QUF9OZXcgaW1wbGVtZW50
YXRpb24KKyAgICAgICAgb24gcmVjZWl2aW5nIHRoZSBhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0
LW5ldHNjYXBlLXdpbGRjYXJkLXBsdWdpbiBtaW1lIHR5cGUsCisgICAgICAgIGluZGljYXRpbmcg
dGhhdCB0aGUgd2lsZGNhcmQgcGx1Z2luIG1pbWUgdHlwZSBtYXRjaCBzdWNjZWVkZWQuCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0OTg4CisKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4uc3VicHJvai9JbmZvLnBs
aXN0OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi5zdWJwcm9q
L21haW4uY3BwOgorICAgICAgICAoTlBQX05ldyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
d2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9UZXN0TmV0c2NhcGVQbHVnaW4ucmM6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9tYWluLmNwcDoKKyAgICAgICAg
KE5QUF9OZXcpOgorCiAyMDA5LTA0LTAxICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAK
ICAgICAgICAgV2luZG93cyBzdXBwb3J0IGZvciBidWlsdC1wcm9kdWN0LWFyY2hpdmUuCkluZGV4
OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4uc3VicHJvai9J
bmZvLnBsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RO
ZXRzY2FwZVBsdWdJbi5zdWJwcm9qL0luZm8ucGxpc3QJKHJldmlzaW9uIDQyMTcxKQorKysgV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovSW5mby5w
bGlzdAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsMTUgQEAKIAkJCTxrZXk+V2ViUGx1Z2lu
VHlwZURlc2NyaXB0aW9uPC9rZXk+CiAJCQk8c3RyaW5nPnRlc3QgbmV0c2NhcGUgY29udGVudDwv
c3RyaW5nPgogCQk8L2RpY3Q+CisJCTxrZXk+Kjwva2V5PgorCQk8ZGljdD4KKwkJCTxrZXk+V2Vi
UGx1Z2luRXh0ZW5zaW9uczwva2V5PgorCQkJPGFycmF5PgorCQkJCTxzdHJpbmc+d2lsZGNhcmQg
cGx1Z2luPC9zdHJpbmc+CisJCQk8L2FycmF5PgorCQkJPGtleT5XZWJQbHVnaW5UeXBlRGVzY3Jp
cHRpb248L2tleT4KKwkJCTxzdHJpbmc+dGVzdCBuZXRzY2FwZSB3aWxkY2FyZCBwbHVnaW48L3N0
cmluZz4KKwkJPC9kaWN0PgogCTwvZGljdD4KIAk8a2V5PldlYlBsdWdpbk5hbWU8L2tleT4KIAk8
c3RyaW5nPldlYktpdCBUZXN0IFBsdWdJbjwvc3RyaW5nPgpJbmRleDogV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovbWFpbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnBy
b2ovbWFpbi5jcHAJKHJldmlzaW9uIDQyMTcxKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovbWFpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE2NSw2ICsxNjUsMTEgQEAgTlBFcnJvciBOUFBfTmV3KE5QTUlNRVR5cGUgcGx1Z2luVHlwZSwg
TgogICAgICAgICAKICAgICAgICAgb2JqLT5ldmVudE1vZGVsID0gTlBFdmVudE1vZGVsQ29jb2E7
CiAgICAgfQorCisgICAgaWYgKF9zdHJjYXNlY21wKHBsdWdpblR5cGUsICJhcHBsaWNhdGlvbi94
LXdlYmtpdC10ZXN0LW5ldHNjYXBlLXdpbGRjYXJkLXBsdWdpbiIpID09IDApIHsKKyAgICAgICAg
bG9nKGluc3RhbmNlLCAiUExVR0lOOiBOUEFQSSBXaWxkY2FyZCBwbHVnaW4gaW5zdGFuY2UgbG9h
ZGVkXG4iKTsKKyAgICAgICAgZmZsdXNoKHN0ZG91dCk7CisgICAgfQogICAgIAogICAgIGJyb3dz
ZXItPnNldHZhbHVlKGluc3RhbmNlLCBOUFBWcGx1Z2luRXZlbnRNb2RlbCwgKHZvaWQgKilvYmot
PmV2ZW50TW9kZWwpOwogICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsKSW5kZXg6IFdlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vVGVzdE5ldHNjYXBlUGx1
Z2luLnJjCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0
TmV0c2NhcGVQbHVnaW4vVGVzdE5ldHNjYXBlUGx1Z2luLnJjCShyZXZpc2lvbiA0MjE3MSkKKysr
IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vVGVzdE5l
dHNjYXBlUGx1Z2luLnJjCSh3b3JraW5nIGNvcHkpCkBAIC03MiwxMCArNzIsMTIgQEAgQkVHSU4N
CiAgICAgICAgICAgICBWQUxVRSAiQ29tcGFueU5hbWUiLCAiQXBwbGUgSW5jLiINCiAgICAgICAg
ICAgICBWQUxVRSAiRmlsZURlc2NyaXB0aW9uIiwgIlRlc3ROZXRzY2FwZVBsdWdJbiINCiAgICAg
ICAgICAgICBWQUxVRSAiRmlsZU9wZW5OYW1lIiwgInRlc3QgbmV0c2NhcGUgY29udGVudCINCisg
ICAgICAgICAgICBWQUxVRSAiRmlsZVZlcnNpb24iLCAiMSwgMCwgMCwgMSINCiAgICAgICAgICAg
ICBWQUxVRSAiTGVnYWxDb3B5cmlnaHQiLCAiQ29weXJpZ2h0IEFwcGxlIEluYy4gMjAwNy0yMDA5
Ig0KLSAgICAgICAgICAgIFZBTFVFICJNSU1FVHlwZSIsICJhcHBsaWNhdGlvbi94LXdlYmtpdC10
ZXN0LW5ldHNjYXBlIg0KKyAgICAgICAgICAgIFZBTFVFICJNSU1FVHlwZSIsICJhcHBsaWNhdGlv
bi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlfCoiDQogICAgICAgICAgICAgVkFMVUUgIk9yaWdpbmFs
RmlsZW5hbWUiLCAibnBUZXN0TmV0c2NhcGVQbHVnaW4uZGxsIg0KICAgICAgICAgICAgIFZBTFVF
ICJQcm9kdWN0TmFtZSIsICJUZXN0TmV0c2NhcGVQbHVnSW4iDQorICAgICAgICAgICAgVkFMVUUg
IlByb2R1Y3RWZXJzaW9uIiwgIjEsIDAsIDAsIDEiDQogICAgICAgICBFTkQNCiAgICAgRU5EDQog
ICAgIEJMT0NLICJWYXJGaWxlSW5mbyINCkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL21haW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHAJKHJldmlz
aW9uIDQyMTcxKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3ROZXRzY2Fw
ZVBsdWdpbi9tYWluLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODUsNyArODUsMTIgQEAgTlBFcnJv
ciBOUFBfTmV3KE5QTUlNRVR5cGUgcGx1Z2luVHlwZSwgTgogICAgICAgICAgICAgZWxzZSBpZiAo
X3N0cmljbXAoYXJnbltpXSwgIm9uVVJMTm90aWZ5IikgPT0gMCAmJiAhb2JqLT5vblVSTE5vdGlm
eSkKICAgICAgICAgICAgICAgICBvYmotPm9uVVJMTm90aWZ5ID0gX3N0cmR1cChhcmd2W2ldKTsK
ICAgICAgICAgfQotICAgICAgICAKKworICAgICAgICBpZiAoX3N0cmljbXAocGx1Z2luVHlwZSwg
ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUtd2lsZGNhcmQtcGx1Z2luIikgPT0g
MCkgeworICAgICAgICAgICAgcHJpbnRmKCJDT05TT0xFIE1FU1NBR0U6IGxpbmUgMDogUExVR0lO
OiBOUEFQSSBXaWxkY2FyZCBwbHVnaW4gaW5zdGFuY2UgbG9hZGVkXG4iKTsKKyAgICAgICAgICAg
IGZmbHVzaChzdGRvdXQpOworICAgICAgICB9CisKICAgICAgICAgaW5zdGFuY2UtPnBkYXRhID0g
b2JqOwogICAgIH0KICAgICAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQyMTc0KQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMDQtMDIg
IEFuYW50YW5hcmF5YW5hbiBJeWVuZ2FyICA8YW5hbnRhQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIGxheW91dCB0
ZXN0IHdoaWNoIHZlcmlmaWVzIHdoZXRoZXIgdGhlIHdpbGRjYXJkIHBsdWdpbiBtaW1lIHR5cGUg
bWF0Y2gKKyAgICAgICAgc3VjY2VlZGVkLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNDk4OAorCisgICAgICAgICogcGx1Z2lucy9uZXRzY2FwZS1w
bHVnaW4td2lsZGNhcmQtcGx1Z2luLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGx1
Z2lucy9uZXRzY2FwZS1wbHVnaW4td2lsZGNhcmQtcGx1Z2luLmh0bWw6IEFkZGVkLgorCiAyMDA5
LTA0LTAxICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4gQmFzZWQgb24gd29yayBvZiBKdWxpZW4gQ2hhZmZyYWl4
LgpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4td2lsZGNhcmQtcGx1
Z2luLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL25ldHNj
YXBlLXBsdWdpbi13aWxkY2FyZC1wbHVnaW4tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4td2lsZGNhcmQtcGx1Z2luLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMDogUExVR0lOOiBOUEFQSSBXaWxkY2FyZCBwbHVnaW4gaW5zdGFuY2UgbG9hZGVkCisKK1Ro
aXMgdGVzdHMgdGhhdCBhIHBsdWdpbiB3aGljaCBzdXBwb3J0cyB0aGUgd2lsZGNhcmQgbWltZSB0
eXBlICogaXMgbG9hZGVkIGNvcnJlY3RseS4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRl
c3RzL3BsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXdpbGRjYXJkLXBsdWdpbi1leHBlY3RlZC50eHQK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IExheW91
dFRlc3RzL3BsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXdpbGRjYXJkLXBsdWdpbi5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXdpbGRjYXJkLXBs
dWdpbi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9uZXRzY2FwZS1w
bHVnaW4td2lsZGNhcmQtcGx1Z2luLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTYgQEAK
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRXaW5kb3dJc0tleShmYWxzZSk7CisgICAgfQor
ICAgIAorPC9zY3JpcHQ+Cis8Ym9keT4KKzxlbWJlZCBpZD0idGVzdFBsdWdpbiIgdHlwZT0iYXBw
bGljYXRpb24veC13ZWJraXQtdGVzdC1uZXRzY2FwZS13aWxkY2FyZC1wbHVnaW4iIHdpZHRoPSIy
MDAiIGhlaWdodD0iMjAwIj48L2VtYmVkPgorPGRpdj4KKyAgICBUaGlzIHRlc3RzIHRoYXQgYSBw
bHVnaW4gd2hpY2ggc3VwcG9ydHMgdGhlIHdpbGRjYXJkIG1pbWUgdHlwZSAqIGlzIGxvYWRlZCBj
b3JyZWN0bHkuCis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246
IExheW91dFRlc3RzL3BsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXdpbGRjYXJkLXBsdWdpbi5odG1s
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29209</attachid>
            <date>2009-04-02 17:36:25 -0700</date>
            <delta_ts>2009-04-02 23:07:13 -0700</delta_ts>
            <desc>Updated patch with the wildcard mime type matching behavior on the mac.</desc>
            <filename>SupportWildcardPlugins.txt</filename>
            <type>text/plain</type>
            <size>14599</size>
            <attacher name="Ananta Iyengar">ananta</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MjE4OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjggQEAKKzIwMDktMDQtMDIgIGl5ZW5nYXIgIDxhbmFudGFAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVk
IHN1cHBvcnQgZm9yIHJldHVybmluZyBwbHVnaW5zIHdoaWNoIHN1cHBvcnQgdGhlIHdpbGRjYXJk
IG1pbWUgdHlwZSAoKikuCisgICAgICAgIFRoaXMgaXMgb24gdGhlIHNhbWUgbGluZXMgYXMgRmly
ZWZveCwgd2hpY2ggdXNlcyBhIHdpbGRjYXJkIHBsdWdpbiAobnBudWwzMi5kbGwpIGZvcgorICAg
ICAgICBwbHVnaW4gaW5zdGFsbGF0aW9uLiBUaGUgY2hhbmdlcyB0byBzdXBwb3J0IHdpbGRjYXJk
IG1pbWUgdHlwZSBtYXRjaGluZyBhcmUgaW4KKyAgICAgICAgUGx1Z2luRGF0YWJhc2UuY3BwIHdo
aWNoIGlzIHVzZWQgYnkgV2Via2l0J3MgcGx1Z2luIGltcGxlbWVudGF0aW9uLCBhbmQKKyAgICAg
ICAgUGx1Z2luRGF0YS5jcHAvLmggd2hpY2ggaXMgdXNlZCBieSBDaHJvbWl1bS4gCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0OTg4CisKKyAgICAg
ICAgVGVzdDogcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4td2lsZGNhcmQtcGx1Z2luLmh0bWwKKwor
ICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
T01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQpOgorICAgICAgICAqIHBsdWdpbnMvUGx1
Z2luRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5EYXRhOjpzdXBwb3J0c01pbWVU
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRhdGE6OnN1cHBvcnRzTWltZVR5cGVXaXRo
b3V0Q29uc2lkZXJpbmdXaWxkY2FyZHMpOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luRGF0YS5o
OgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGx1Z2luRGF0YWJhc2U6OnBsdWdpbkZvck1JTUVUeXBlKToKKyAgICAgICAgKiBwbHVnaW5z
L3dpbi9QbHVnaW5QYWNrYWdlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblBhY2th
Z2U6OmlzUGx1Z2luQmxhY2tsaXN0ZWQpOgorCiAyMDA5LTA0LTAyICBEYXZpZCBIeWF0dCAgPGh5
YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4KSW5kZXg6
IFdlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAJKHJldmlzaW9uIDQyMTcxKQorKysgV2ViQ29yZS9k
b20vRE9NSW1wbGVtZW50YXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDEsNyArMzQxLDcg
QEAgUGFzc1JlZlB0cjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OgogCiAgICAgLy8gUERG
IGlzIG9uZSBpbWFnZSB0eXBlIGZvciB3aGljaCBhIHBsdWdpbiBjYW4gb3ZlcnJpZGUgYnVpbHQt
aW4gc3VwcG9ydC4KICAgICAvLyBXZSBkbyBub3Qgd2FudCBRdWlja1RpbWUgdG8gdGFrZSBvdmVy
IGFsbCBpbWFnZSB0eXBlcywgb2J2aW91c2x5LgotICAgIGlmICgodHlwZSA9PSAiYXBwbGljYXRp
b24vcGRmIiB8fCB0eXBlID09ICJ0ZXh0L3BkZiIpICYmIHBsdWdpbkRhdGEgJiYgcGx1Z2luRGF0
YS0+c3VwcG9ydHNNaW1lVHlwZSh0eXBlKSkKKyAgICBpZiAoKHR5cGUgPT0gImFwcGxpY2F0aW9u
L3BkZiIgfHwgdHlwZSA9PSAidGV4dC9wZGYiKSAmJiBwbHVnaW5EYXRhICYmIHBsdWdpbkRhdGEt
PnN1cHBvcnRzTWltZVR5cGVXaXRob3V0Q29uc2lkZXJpbmdXaWxkY2FyZHModHlwZSkpCiAgICAg
ICAgIHJldHVybiBQbHVnaW5Eb2N1bWVudDo6Y3JlYXRlKGZyYW1lKTsKICAgICBpZiAoSW1hZ2U6
OnN1cHBvcnRzVHlwZSh0eXBlKSkKICAgICAgICAgcmV0dXJuIEltYWdlRG9jdW1lbnQ6OmNyZWF0
ZShmcmFtZSk7CkBAIC0zNTUsNyArMzU1LDcgQEAgUGFzc1JlZlB0cjxEb2N1bWVudD4gRE9NSW1w
bGVtZW50YXRpb246OgogICAgIC8vIEV2ZXJ5dGhpbmcgZWxzZSBleGNlcHQgdGV4dC9wbGFpbiBj
YW4gYmUgb3ZlcnJpZGRlbiBieSBwbHVnaW5zLiBJbiBwYXJ0aWN1bGFyLCBBZG9iZSBTVkcgVmll
d2VyIHNob3VsZCBiZSB1c2VkIGZvciBTVkcsIGlmIGluc3RhbGxlZC4KICAgICAvLyBEaXNhbGxv
d2luZyBwbHVnLWlucyB0byB1c2UgdGV4dC9wbGFpbiBwcmV2ZW50cyBwbHVnLWlucyBmcm9tIGhp
amFja2luZyBhIGZ1bmRhbWVudGFsIHR5cGUgdGhhdCB0aGUgYnJvd3NlciBpcyBleHBlY3RlZCB0
byBoYW5kbGUsCiAgICAgLy8gYW5kIGFsc28gc2VydmVzIGFzIGFuIG9wdGltaXphdGlvbiB0byBw
cmV2ZW50IGxvYWRpbmcgdGhlIHBsdWctaW4gZGF0YWJhc2UgaW4gdGhlIGNvbW1vbiBjYXNlLgot
ICAgIGlmICh0eXBlICE9ICJ0ZXh0L3BsYWluIiAmJiBwbHVnaW5EYXRhICYmIHBsdWdpbkRhdGEt
PnN1cHBvcnRzTWltZVR5cGUodHlwZSkpIAorICAgIGlmICh0eXBlICE9ICJ0ZXh0L3BsYWluIiAm
JiBwbHVnaW5EYXRhICYmIHBsdWdpbkRhdGEtPnN1cHBvcnRzTWltZVR5cGVXaXRob3V0Q29uc2lk
ZXJpbmdXaWxkY2FyZHModHlwZSkpIAogICAgICAgICByZXR1cm4gUGx1Z2luRG9jdW1lbnQ6OmNy
ZWF0ZShmcmFtZSk7CiAgICAgaWYgKGlzVGV4dE1JTUVUeXBlKHR5cGUpKQogICAgICAgICByZXR1
cm4gVGV4dERvY3VtZW50OjpjcmVhdGUoZnJhbWUpOwpAQCAtMzc2LDMgKzM3Niw1IEBAIFBhc3NS
ZWZQdHI8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjoKIH0KIAogfQorCisKSW5kZXg6IFdl
YkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsdWdp
bnMvUGx1Z2luRGF0YS5jcHAJKHJldmlzaW9uIDQyMTcxKQorKysgV2ViQ29yZS9wbHVnaW5zL1Bs
dWdpbkRhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0NywxNCBAQCBQbHVnaW5EYXRh
Ojp+UGx1Z2luRGF0YSgpCiBib29sIFBsdWdpbkRhdGE6OnN1cHBvcnRzTWltZVR5cGUoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSkgY29uc3QKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
bV9taW1lcy5zaXplKCk7ICsraSkKKyAgICAgICAgaWYgKG1fbWltZXNbaV0tPnR5cGUgPT0gbWlt
ZVR5cGUgfHwgbV9taW1lc1tpXS0+dHlwZSA9PSAiKiIpCisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUGx1Z2luRGF0YTo6c3VwcG9ydHNNaW1l
VHlwZVdpdGhvdXRDb25zaWRlcmluZ1dpbGRjYXJkcyhjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBj
b25zdAoreworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX21pbWVzLnNpemUoKTsgKytp
KQogICAgICAgICBpZiAobV9taW1lc1tpXS0+dHlwZSA9PSBtaW1lVHlwZSkKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFdlYkNvcmUvcGx1Z2lucy9Q
bHVnaW5EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGEuaAko
cmV2aXNpb24gNDIxNzEpCisrKyBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YS5oCSh3b3JraW5n
IGNvcHkpCkBAIC01Niw2ICs1Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgY29u
c3QgVmVjdG9yPE1pbWVDbGFzc0luZm8qPiYgbWltZXMoKSBjb25zdCB7IHJldHVybiBtX21pbWVz
OyB9CiAKICAgICAgICAgYm9vbCBzdXBwb3J0c01pbWVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5
cGUpIGNvbnN0OworICAgICAgICBib29sIHN1cHBvcnRzTWltZVR5cGVXaXRob3V0Q29uc2lkZXJp
bmdXaWxkY2FyZHMoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgY29uc3Q7CiAgICAgICAgIFN0cmlu
ZyBwbHVnaW5OYW1lRm9yTWltZVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgY29uc3Q7CiAK
ICAgICAgICAgc3RhdGljIHZvaWQgcmVmcmVzaCgpOwpJbmRleDogV2ViQ29yZS9wbHVnaW5zL1Bs
dWdpbkRhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0
YWJhc2UuY3BwCShyZXZpc2lvbiA0MjE3MSkKKysrIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRh
YmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Miw4ICsxNjIsMTcgQEAgUGx1Z2luUGFja2Fn
ZSogUGx1Z2luRGF0YWJhc2U6OnBsdWdpbkZvcgogICAgIFZlY3RvcjxQbHVnaW5QYWNrYWdlKiwg
Mj4gcGx1Z2luQ2hvaWNlczsKIAogICAgIGZvciAoUGx1Z2luU2V0Ojpjb25zdF9pdGVyYXRvciBp
dCA9IG1fcGx1Z2lucy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgaWYgKCgq
aXQpLT5taW1lVG9EZXNjcmlwdGlvbnMoKS5jb250YWlucyhrZXkpKQotICAgICAgICAgICAgcGx1
Z2luQ2hvaWNlcy5hcHBlbmQoKCppdCkuZ2V0KCkpOworICAgICAgICBQbHVnaW5QYWNrYWdlKiBw
YWNrYWdlID0gKCppdCkuZ2V0KCk7CisKKyAgICAgICAgY29uc3QgTUlNRVRvRGVzY3JpcHRpb25z
TWFwJiBtaW1lVG9EZXNjcmlwdGlvbnMgPSBwYWNrYWdlLT5taW1lVG9EZXNjcmlwdGlvbnMoKTsK
KworICAgICAgICBNSU1FVG9EZXNjcmlwdGlvbnNNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1p
bWVUb0Rlc2NyaXB0aW9ucy5lbmQoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoTUlNRVRvRGVz
Y3JpcHRpb25zTWFwOjpjb25zdF9pdGVyYXRvciBtaW1laXRlciA9IG1pbWVUb0Rlc2NyaXB0aW9u
cy5iZWdpbigpOyBtaW1laXRlciAhPSBlbmQ7ICsrbWltZWl0ZXIpIHsKKyAgICAgICAgICAgIC8v
IFdlIGNoZWNrIGZvciBleGFjdCBtaW1lIHR5cGUgbWF0Y2hlcyBhbmQgd2lsZGNhcmQgKCopIG1h
dGNoZXMuIAorICAgICAgICAgICAgaWYgKG1pbWVpdGVyLT5maXJzdCA9PSBrZXkgfHwgbWltZWl0
ZXItPmZpcnN0ID09ICIqIikKKyAgICAgICAgICAgICAgICBwbHVnaW5DaG9pY2VzLmFwcGVuZChw
YWNrYWdlKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChwbHVnaW5DaG9pY2VzLmlzRW1w
dHkoKSkKSW5kZXg6IFdlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luUGFja2FnZVdpbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5QYWNrYWdlV2luLmNwcAkocmV2
aXNpb24gNDIxNzEpCisrKyBXZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblBhY2thZ2VXaW4uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC04MSw5ICs4MSwxNCBAQCBib29sIFBsdWdpblBhY2thZ2U6Omlz
UGx1Z2luQmxhY2tsaXN0ZWQoCiAKICAgICAgICAgaWYgKGNvbXBhcmVGaWxlVmVyc2lvbihzbFBs
dWdpbk1pblJlcXVpcmVkKSA8IDApCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9IGVs
c2UgaWYgKGZpbGVOYW1lKCkgPT0gIm5wbW96YXguZGxsIikKKyAgICB9IGVsc2UgaWYgKGZpbGVO
YW1lKCkgPT0gIm5wbW96YXguZGxsIikgewogICAgICAgICAvLyBCdWcgMTUyMTc6IE1vemlsbGEg
QWN0aXZlWCBjb250cm9sIGNvbXBsYWlucyBhYm91dCBtaXNzaW5nIHhwY29tX2NvcmUuZGxsCiAg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0gZWxzZSBpZiAoZmlsZU5hbWUoKSA9PSAibnBudWwz
Mi5kbGwiKSB7CisgICAgICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gbG9hZCB0aGUgTW96aWxsYSBu
dWxsIHBsdWdpbiwgd2hpY2ggaXMgdXNlZCB0byBpbnN0YWxsCisgICAgICAgIC8vIE5QQVBJIHBs
dWdpbnMuCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KIAogICAgIHJldHVybiBmYWxzZTsK
IH0KSW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA0MjE4OSkKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMDQtMDIgIGl5ZW5nYXIgIDxhbmFudGFA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZGVkIHN1cHBvcnQgZm9yIHJldHVybmluZyBwbHVnaW5zIHdoaWNoIHN1cHBvcnQg
dGhlIHdpbGRjYXJkIG1pbWUgdHlwZSAoKikuCisgICAgICAgIFRoaXMgaXMgb24gdGhlIHNhbWUg
bGluZXMgYXMgRmlyZWZveCwgd2hpY2ggdXNlcyBhIHdpbGRjYXJkIHBsdWdpbiAobnBudWwzMi5k
bGwpIGZvcgorICAgICAgICBwbHVnaW4gaW5zdGFsbGF0aW9uLiBUaGUgY2hhbmdlcyB0byBzdXBw
b3J0IHdpbGRjYXJkIG1pbWUgdHlwZSBtYXRjaGluZyBhcmUgaW4KKyAgICAgICAgUGx1Z2luRGF0
YWJhc2UuY3BwIHdoaWNoIGlzIHVzZWQgYnkgV2Via2l0J3MgcGx1Z2luIGltcGxlbWVudGF0aW9u
LCBhbmQKKyAgICAgICAgUGx1Z2luRGF0YS5jcHAvLmggd2hpY2ggaXMgdXNlZCBieSBDaHJvbWl1
bS4gCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0
OTg4CisKKyAgICAgICAgKiBQbHVnaW5zL1dlYlBsdWdpbkRhdGFiYXNlLm1tOgorICAgICAgICAo
LVtXZWJQbHVnaW5EYXRhYmFzZSBwbHVnaW5Gb3JLZXk6d2l0aEVudW1lcmF0b3JTZWxlY3Rvcjpd
KToKKwogMjAwOS0wNC0wMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgR2VvZmYgR2FyZW4uCkluZGV4OiBXZWJLaXQvbWFjL1BsdWdpbnMvV2Vi
UGx1Z2luRGF0YWJhc2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9QbHVnaW5zL1dlYlBs
dWdpbkRhdGFiYXNlLm1tCShyZXZpc2lvbiA0MjE3MSkKKysrIFdlYktpdC9tYWMvUGx1Z2lucy9X
ZWJQbHVnaW5EYXRhYmFzZS5tbQkod29ya2luZyBjb3B5KQpAQCAtOTksNyArOTksOCBAQCBzdGF0
aWMgdm9pZCBjaGVja0NhbmRpZGF0ZShXZWJCYXNlUGx1Z2luCiAgICAga2V5ID0gW2tleSBsb3dl
cmNhc2VTdHJpbmddOwogCiAgICAgd2hpbGUgKChwbHVnaW4gPSBbcGx1Z2luRW51bWVyYXRvciBu
ZXh0T2JqZWN0XSkgIT0gbmlsKSB7Ci0gICAgICAgIGlmIChbW1twbHVnaW4gcGVyZm9ybVNlbGVj
dG9yOmVudW1lcmF0b3JTZWxlY3Rvcl0gYWxsT2JqZWN0c10gY29udGFpbnNPYmplY3Q6a2V5XSkg
eworICAgICAgICBpZiAoW1tbcGx1Z2luIHBlcmZvcm1TZWxlY3RvcjplbnVtZXJhdG9yU2VsZWN0
b3JdIGFsbE9iamVjdHNdIGNvbnRhaW5zT2JqZWN0OmtleV0gfHwKKyAgICAgICAgICAgIFtbW3Bs
dWdpbiBwZXJmb3JtU2VsZWN0b3I6ZW51bWVyYXRvclNlbGVjdG9yXSBhbGxPYmplY3RzXSBjb250
YWluc09iamVjdDpAIioiXSkgewogICAgICAgICAgICAgaWYgKFtwbHVnaW4gaXNLaW5kT2ZDbGFz
czpbV2ViUGx1Z2luUGFja2FnZSBjbGFzc11dKSAKICAgICAgICAgICAgICAgICBjaGVja0NhbmRp
ZGF0ZSgmd2ViUGx1Z2luLCAmcGx1Z2luKTsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQ
SSkKSW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29s
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQyMTg5KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDktMDQtMDIgIGl5ZW5nYXIgIDxhbmFu
dGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZGVkIHRoZSB3aWxkY2FyZCBtaW1lIHR5cGUgKCopIHRvIHRoZSBsaXN0IG9m
IG1pbWUgdHlwZXMgc3VwcG9ydGVkIGJ5IHRoZQorICAgICAgICBsYXlvdXQgdGVzdCBwbHVnaW4u
IFRoZSBwbHVnaW4gZW1pdHMgYSB0cmFjZSBpbiBpdHMgTlBQX05ldyBpbXBsZW1lbnRhdGlvbgor
ICAgICAgICBvbiByZWNlaXZpbmcgdGhlIGFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2Nh
cGUtd2lsZGNhcmQtcGx1Z2luIG1pbWUgdHlwZSwKKyAgICAgICAgaW5kaWNhdGluZyB0aGF0IHRo
ZSB3aWxkY2FyZCBwbHVnaW4gbWltZSB0eXBlIG1hdGNoIHN1Y2NlZWRlZC4KKworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5ODgKKworICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi5zdWJwcm9qL0luZm8ucGxpc3Q6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovbWFpbi5j
cHA6CisgICAgICAgIChOUFBfTmV3KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vVGVz
dE5ldHNjYXBlUGx1Z2luL1Rlc3ROZXRzY2FwZVBsdWdpbi5yYzoKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL21haW4uY3BwOgorICAgICAgICAoTlBQX05l
dyk6CisKIDIwMDktMDQtMDIgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEJ1aWxkIGZpeCBmb3IgV2luZG93cyBtYWNoaW5lcyB0aGF0IGRvbid0IGhhdmUgV2ViS2l0
VG9vbHMvU2NpcHRzIGluCkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0
c2NhcGVQbHVnSW4uc3VicHJvai9JbmZvLnBsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi5zdWJwcm9qL0luZm8ucGxpc3QJKHJl
dmlzaW9uIDQyMTcxKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBl
UGx1Z0luLnN1YnByb2ovSW5mby5wbGlzdAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsMTUg
QEAKIAkJCTxrZXk+V2ViUGx1Z2luVHlwZURlc2NyaXB0aW9uPC9rZXk+CiAJCQk8c3RyaW5nPnRl
c3QgbmV0c2NhcGUgY29udGVudDwvc3RyaW5nPgogCQk8L2RpY3Q+CisJCTxrZXk+Kjwva2V5Pgor
CQk8ZGljdD4KKwkJCTxrZXk+V2ViUGx1Z2luRXh0ZW5zaW9uczwva2V5PgorCQkJPGFycmF5Pgor
CQkJCTxzdHJpbmc+d2lsZGNhcmRwbHVnaW48L3N0cmluZz4KKwkJCTwvYXJyYXk+CisJCQk8a2V5
PldlYlBsdWdpblR5cGVEZXNjcmlwdGlvbjwva2V5PgorCQkJPHN0cmluZz50ZXN0IG5ldHNjYXBl
IHdpbGRjYXJkIHBsdWdpbjwvc3RyaW5nPgorCQk8L2RpY3Q+CiAJPC9kaWN0PgogCTxrZXk+V2Vi
UGx1Z2luTmFtZTwva2V5PgogCTxzdHJpbmc+V2ViS2l0IFRlc3QgUGx1Z0luPC9zdHJpbmc+Cklu
ZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4uc3VicHJv
ai9tYWluLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
TmV0c2NhcGVQbHVnSW4uc3VicHJvai9tYWluLmNwcAkocmV2aXNpb24gNDIxNzEpCisrKyBXZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4uc3VicHJvai9tYWluLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTY1LDYgKzE2NSwxMSBAQCBOUEVycm9yIE5QUF9OZXcoTlBN
SU1FVHlwZSBwbHVnaW5UeXBlLCBOCiAgICAgICAgIAogICAgICAgICBvYmotPmV2ZW50TW9kZWwg
PSBOUEV2ZW50TW9kZWxDb2NvYTsKICAgICB9CisKKyAgICBpZiAoc3RyY2FzZWNtcChwbHVnaW5U
eXBlLCAiYXBwbGljYXRpb24veC13ZWJraXQtdGVzdC1uZXRzY2FwZS13aWxkY2FyZC1wbHVnaW4i
KSA9PSAwKSB7CisgICAgICAgIGxvZyhpbnN0YW5jZSwgIlBMVUdJTjogTlBBUEkgV2lsZGNhcmQg
cGx1Z2luIGluc3RhbmNlIGxvYWRlZFxuIik7CisgICAgICAgIGZmbHVzaChzdGRvdXQpOworICAg
IH0KICAgICAKICAgICBicm93c2VyLT5zZXR2YWx1ZShpbnN0YW5jZSwgTlBQVnBsdWdpbkV2ZW50
TW9kZWwsICh2b2lkICopb2JqLT5ldmVudE1vZGVsKTsKICAgICByZXR1cm4gTlBFUlJfTk9fRVJS
T1I7CkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1
Z2luL1Rlc3ROZXRzY2FwZVBsdWdpbi5yYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL1Rlc3ROZXRzY2FwZVBsdWdpbi5yYwko
cmV2aXNpb24gNDIxNzEpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdE5l
dHNjYXBlUGx1Z2luL1Rlc3ROZXRzY2FwZVBsdWdpbi5yYwkod29ya2luZyBjb3B5KQpAQCAtNzIs
MTAgKzcyLDEyIEBAIEJFR0lODQogICAgICAgICAgICAgVkFMVUUgIkNvbXBhbnlOYW1lIiwgIkFw
cGxlIEluYy4iDQogICAgICAgICAgICAgVkFMVUUgIkZpbGVEZXNjcmlwdGlvbiIsICJUZXN0TmV0
c2NhcGVQbHVnSW4iDQogICAgICAgICAgICAgVkFMVUUgIkZpbGVPcGVuTmFtZSIsICJ0ZXN0IG5l
dHNjYXBlIGNvbnRlbnQiDQorICAgICAgICAgICAgVkFMVUUgIkZpbGVWZXJzaW9uIiwgIjEsIDAs
IDAsIDEiDQogICAgICAgICAgICAgVkFMVUUgIkxlZ2FsQ29weXJpZ2h0IiwgIkNvcHlyaWdodCBB
cHBsZSBJbmMuIDIwMDctMjAwOSINCi0gICAgICAgICAgICBWQUxVRSAiTUlNRVR5cGUiLCAiYXBw
bGljYXRpb24veC13ZWJraXQtdGVzdC1uZXRzY2FwZSINCisgICAgICAgICAgICBWQUxVRSAiTUlN
RVR5cGUiLCAiYXBwbGljYXRpb24veC13ZWJraXQtdGVzdC1uZXRzY2FwZXwqIg0KICAgICAgICAg
ICAgIFZBTFVFICJPcmlnaW5hbEZpbGVuYW1lIiwgIm5wVGVzdE5ldHNjYXBlUGx1Z2luLmRsbCIN
CiAgICAgICAgICAgICBWQUxVRSAiUHJvZHVjdE5hbWUiLCAiVGVzdE5ldHNjYXBlUGx1Z0luIg0K
KyAgICAgICAgICAgIFZBTFVFICJQcm9kdWN0VmVyc2lvbiIsICIxLCAwLCAwLCAxIg0KICAgICAg
ICAgRU5EDQogICAgIEVORA0KICAgICBCTE9DSyAiVmFyRmlsZUluZm8iDQpJbmRleDogV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9tYWluLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1
Z2luL21haW4uY3BwCShyZXZpc2lvbiA0MjE3MSkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg1
LDcgKzg1LDEyIEBAIE5QRXJyb3IgTlBQX05ldyhOUE1JTUVUeXBlIHBsdWdpblR5cGUsIE4KICAg
ICAgICAgICAgIGVsc2UgaWYgKF9zdHJpY21wKGFyZ25baV0sICJvblVSTE5vdGlmeSIpID09IDAg
JiYgIW9iai0+b25VUkxOb3RpZnkpCiAgICAgICAgICAgICAgICAgb2JqLT5vblVSTE5vdGlmeSA9
IF9zdHJkdXAoYXJndltpXSk7CiAgICAgICAgIH0KLSAgICAgICAgCisKKyAgICAgICAgaWYgKF9z
dHJpY21wKHBsdWdpblR5cGUsICJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlLXdp
bGRjYXJkLXBsdWdpbiIpID09IDApIHsKKyAgICAgICAgICAgIHByaW50ZigiQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDA6IFBMVUdJTjogTlBBUEkgV2lsZGNhcmQgcGx1Z2luIGluc3RhbmNlIGxvYWRl
ZFxuIik7CisgICAgICAgICAgICBmZmx1c2goc3Rkb3V0KTsKKyAgICAgICAgfQorCiAgICAgICAg
IGluc3RhbmNlLT5wZGF0YSA9IG9iajsKICAgICB9CiAgICAgCkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0
MjE4OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE1IEBACisyMDA5LTA0LTAyICBpeWVuZ2FyICA8YW5hbnRhQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIGxheW91
dCB0ZXN0IHdoaWNoIHZlcmlmaWVzIHdoZXRoZXIgdGhlIHdpbGRjYXJkIHBsdWdpbiBtaW1lIHR5
cGUgbWF0Y2gKKyAgICAgICAgc3VjY2VlZGVkLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDk4OAorCisgICAgICAgICogcGx1Z2lucy9uZXRzY2Fw
ZS1wbHVnaW4td2lsZGNhcmQtcGx1Z2luLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
cGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4td2lsZGNhcmQtcGx1Z2luLmh0bWw6IEFkZGVkLgorCiAy
MDA5LTA0LTAyICBQYW1lbGEgR3JlZW5lICA8cGFtQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMvbmV0c2Nh
cGUtcGx1Z2luLXdpbGRjYXJkLXBsdWdpbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4td2lsZGNhcmQtcGx1Z2luLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvbmV0c2NhcGUtcGx1Z2lu
LXdpbGRjYXJkLXBsdWdpbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMyBA
QAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IFBMVUdJTjogTlBBUEkgV2lsZGNhcmQgcGx1Z2lu
IGluc3RhbmNlIGxvYWRlZAorCitUaGlzIHRlc3RzIHRoYXQgYSBwbHVnaW4gd2hpY2ggc3VwcG9y
dHMgdGhlIHdpbGRjYXJkIG1pbWUgdHlwZSAqIGlzIGxvYWRlZCBjb3JyZWN0bHkuCgpQcm9wZXJ0
eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9wbHVnaW5zL25ldHNjYXBlLXBsdWdpbi13aWxkY2Fy
ZC1wbHVnaW4tZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAg
KyBuYXRpdmUKCkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL25ldHNjYXBlLXBsdWdpbi13aWxk
Y2FyZC1wbHVnaW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL25ldHNj
YXBlLXBsdWdpbi13aWxkY2FyZC1wbHVnaW4uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL3BsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXdpbGRjYXJkLXBsdWdpbi5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDE2IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KKyAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0V2luZG93
SXNLZXkoZmFsc2UpOworICAgIH0KKyAgICAKKzwvc2NyaXB0PgorPGJvZHk+Cis8ZW1iZWQgaWQ9
InRlc3RQbHVnaW4iIHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUtd2ls
ZGNhcmQtcGx1Z2luIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PC9lbWJlZD4KKzxkaXY+Cisg
ICAgVGhpcyB0ZXN0cyB0aGF0IGEgcGx1Z2luIHdoaWNoIHN1cHBvcnRzIHRoZSB3aWxkY2FyZCBt
aW1lIHR5cGUgKiBpcyBsb2FkZWQgY29ycmVjdGx5LgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9wbHVnaW5zL25ldHNjYXBlLXBsdWdp
bi13aWxkY2FyZC1wbHVnaW4uaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAg
ICsgTEYKCg==
</data>
<flag name="review"
          id="14489"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29221</attachid>
            <date>2009-04-02 23:07:13 -0700</date>
            <delta_ts>2009-04-03 14:46:09 -0700</delta_ts>
            <desc>Updated patch with review comments addressed</desc>
            <filename>SupportWildcardPlugins.txt</filename>
            <type>text/plain</type>
            <size>14604</size>
            <attacher name="Ananta Iyengar">ananta</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MjE4OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjggQEAKKzIwMDktMDQtMDIgIGl5ZW5nYXIgIDxhbmFudGFAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVk
IHN1cHBvcnQgZm9yIHJldHVybmluZyBwbHVnaW5zIHdoaWNoIHN1cHBvcnQgdGhlIHdpbGRjYXJk
IG1pbWUgdHlwZSAoKikuCisgICAgICAgIFRoaXMgaXMgb24gdGhlIHNhbWUgbGluZXMgYXMgRmly
ZWZveCwgd2hpY2ggdXNlcyBhIHdpbGRjYXJkIHBsdWdpbiAobnBudWwzMi5kbGwpIGZvcgorICAg
ICAgICBwbHVnaW4gaW5zdGFsbGF0aW9uLiBUaGUgY2hhbmdlcyB0byBzdXBwb3J0IHdpbGRjYXJk
IG1pbWUgdHlwZSBtYXRjaGluZyBhcmUgaW4KKyAgICAgICAgUGx1Z2luRGF0YWJhc2UuY3BwIHdo
aWNoIGlzIHVzZWQgYnkgV2Via2l0J3MgcGx1Z2luIGltcGxlbWVudGF0aW9uLCBhbmQKKyAgICAg
ICAgUGx1Z2luRGF0YS5jcHAvLmggd2hpY2ggaXMgdXNlZCBieSBDaHJvbWl1bS4gCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0OTg4CisKKyAgICAg
ICAgVGVzdDogcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4td2lsZGNhcmQtcGx1Z2luLmh0bWwKKwor
ICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
T01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQpOgorICAgICAgICAqIHBsdWdpbnMvUGx1
Z2luRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5EYXRhOjpzdXBwb3J0c01pbWVU
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRhdGE6OnN1cHBvcnRzTWltZVR5cGVXaXRo
b3V0Q29uc2lkZXJpbmdXaWxkY2FyZHMpOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luRGF0YS5o
OgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGx1Z2luRGF0YWJhc2U6OnBsdWdpbkZvck1JTUVUeXBlKToKKyAgICAgICAgKiBwbHVnaW5z
L3dpbi9QbHVnaW5QYWNrYWdlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblBhY2th
Z2U6OmlzUGx1Z2luQmxhY2tsaXN0ZWQpOgorCiAyMDA5LTA0LTAyICBEYXZpZCBIeWF0dCAgPGh5
YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4KSW5kZXg6
IFdlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAJKHJldmlzaW9uIDQyMTcxKQorKysgV2ViQ29yZS9k
b20vRE9NSW1wbGVtZW50YXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDEsNyArMzQxLDcg
QEAgUGFzc1JlZlB0cjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OgogCiAgICAgLy8gUERG
IGlzIG9uZSBpbWFnZSB0eXBlIGZvciB3aGljaCBhIHBsdWdpbiBjYW4gb3ZlcnJpZGUgYnVpbHQt
aW4gc3VwcG9ydC4KICAgICAvLyBXZSBkbyBub3Qgd2FudCBRdWlja1RpbWUgdG8gdGFrZSBvdmVy
IGFsbCBpbWFnZSB0eXBlcywgb2J2aW91c2x5LgotICAgIGlmICgodHlwZSA9PSAiYXBwbGljYXRp
b24vcGRmIiB8fCB0eXBlID09ICJ0ZXh0L3BkZiIpICYmIHBsdWdpbkRhdGEgJiYgcGx1Z2luRGF0
YS0+c3VwcG9ydHNNaW1lVHlwZSh0eXBlKSkKKyAgICBpZiAoKHR5cGUgPT0gImFwcGxpY2F0aW9u
L3BkZiIgfHwgdHlwZSA9PSAidGV4dC9wZGYiKSAmJiBwbHVnaW5EYXRhICYmIHBsdWdpbkRhdGEt
PnN1cHBvcnRzTWltZVR5cGVXaXRob3V0Q29uc2lkZXJpbmdXaWxkY2FyZHModHlwZSkpCiAgICAg
ICAgIHJldHVybiBQbHVnaW5Eb2N1bWVudDo6Y3JlYXRlKGZyYW1lKTsKICAgICBpZiAoSW1hZ2U6
OnN1cHBvcnRzVHlwZSh0eXBlKSkKICAgICAgICAgcmV0dXJuIEltYWdlRG9jdW1lbnQ6OmNyZWF0
ZShmcmFtZSk7CkBAIC0zNTUsNyArMzU1LDcgQEAgUGFzc1JlZlB0cjxEb2N1bWVudD4gRE9NSW1w
bGVtZW50YXRpb246OgogICAgIC8vIEV2ZXJ5dGhpbmcgZWxzZSBleGNlcHQgdGV4dC9wbGFpbiBj
YW4gYmUgb3ZlcnJpZGRlbiBieSBwbHVnaW5zLiBJbiBwYXJ0aWN1bGFyLCBBZG9iZSBTVkcgVmll
d2VyIHNob3VsZCBiZSB1c2VkIGZvciBTVkcsIGlmIGluc3RhbGxlZC4KICAgICAvLyBEaXNhbGxv
d2luZyBwbHVnLWlucyB0byB1c2UgdGV4dC9wbGFpbiBwcmV2ZW50cyBwbHVnLWlucyBmcm9tIGhp
amFja2luZyBhIGZ1bmRhbWVudGFsIHR5cGUgdGhhdCB0aGUgYnJvd3NlciBpcyBleHBlY3RlZCB0
byBoYW5kbGUsCiAgICAgLy8gYW5kIGFsc28gc2VydmVzIGFzIGFuIG9wdGltaXphdGlvbiB0byBw
cmV2ZW50IGxvYWRpbmcgdGhlIHBsdWctaW4gZGF0YWJhc2UgaW4gdGhlIGNvbW1vbiBjYXNlLgot
ICAgIGlmICh0eXBlICE9ICJ0ZXh0L3BsYWluIiAmJiBwbHVnaW5EYXRhICYmIHBsdWdpbkRhdGEt
PnN1cHBvcnRzTWltZVR5cGUodHlwZSkpIAorICAgIGlmICh0eXBlICE9ICJ0ZXh0L3BsYWluIiAm
JiBwbHVnaW5EYXRhICYmIHBsdWdpbkRhdGEtPnN1cHBvcnRzTWltZVR5cGVXaXRob3V0Q29uc2lk
ZXJpbmdXaWxkY2FyZHModHlwZSkpIAogICAgICAgICByZXR1cm4gUGx1Z2luRG9jdW1lbnQ6OmNy
ZWF0ZShmcmFtZSk7CiAgICAgaWYgKGlzVGV4dE1JTUVUeXBlKHR5cGUpKQogICAgICAgICByZXR1
cm4gVGV4dERvY3VtZW50OjpjcmVhdGUoZnJhbWUpOwpAQCAtMzc2LDMgKzM3Niw1IEBAIFBhc3NS
ZWZQdHI8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjoKIH0KIAogfQorCisKSW5kZXg6IFdl
YkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsdWdp
bnMvUGx1Z2luRGF0YS5jcHAJKHJldmlzaW9uIDQyMTcxKQorKysgV2ViQ29yZS9wbHVnaW5zL1Bs
dWdpbkRhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0NywxNCBAQCBQbHVnaW5EYXRh
Ojp+UGx1Z2luRGF0YSgpCiBib29sIFBsdWdpbkRhdGE6OnN1cHBvcnRzTWltZVR5cGUoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSkgY29uc3QKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
bV9taW1lcy5zaXplKCk7ICsraSkKKyAgICAgICAgaWYgKG1fbWltZXNbaV0tPnR5cGUgPT0gbWlt
ZVR5cGUgfHwgbV9taW1lc1tpXS0+dHlwZSA9PSAiKiIpCisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUGx1Z2luRGF0YTo6c3VwcG9ydHNNaW1l
VHlwZVdpdGhvdXRDb25zaWRlcmluZ1dpbGRjYXJkcyhjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBj
b25zdAoreworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX21pbWVzLnNpemUoKTsgKytp
KQogICAgICAgICBpZiAobV9taW1lc1tpXS0+dHlwZSA9PSBtaW1lVHlwZSkKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFdlYkNvcmUvcGx1Z2lucy9Q
bHVnaW5EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGEuaAko
cmV2aXNpb24gNDIxNzEpCisrKyBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YS5oCSh3b3JraW5n
IGNvcHkpCkBAIC01Niw2ICs1Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgY29u
c3QgVmVjdG9yPE1pbWVDbGFzc0luZm8qPiYgbWltZXMoKSBjb25zdCB7IHJldHVybiBtX21pbWVz
OyB9CiAKICAgICAgICAgYm9vbCBzdXBwb3J0c01pbWVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5
cGUpIGNvbnN0OworICAgICAgICBib29sIHN1cHBvcnRzTWltZVR5cGVXaXRob3V0Q29uc2lkZXJp
bmdXaWxkY2FyZHMoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgY29uc3Q7CiAgICAgICAgIFN0cmlu
ZyBwbHVnaW5OYW1lRm9yTWltZVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgY29uc3Q7CiAK
ICAgICAgICAgc3RhdGljIHZvaWQgcmVmcmVzaCgpOwpJbmRleDogV2ViQ29yZS9wbHVnaW5zL1Bs
dWdpbkRhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0
YWJhc2UuY3BwCShyZXZpc2lvbiA0MjE3MSkKKysrIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRh
YmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Miw4ICsxNjIsMTcgQEAgUGx1Z2luUGFja2Fn
ZSogUGx1Z2luRGF0YWJhc2U6OnBsdWdpbkZvcgogICAgIFZlY3RvcjxQbHVnaW5QYWNrYWdlKiwg
Mj4gcGx1Z2luQ2hvaWNlczsKIAogICAgIGZvciAoUGx1Z2luU2V0Ojpjb25zdF9pdGVyYXRvciBp
dCA9IG1fcGx1Z2lucy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgaWYgKCgq
aXQpLT5taW1lVG9EZXNjcmlwdGlvbnMoKS5jb250YWlucyhrZXkpKQotICAgICAgICAgICAgcGx1
Z2luQ2hvaWNlcy5hcHBlbmQoKCppdCkuZ2V0KCkpOworICAgICAgICBQbHVnaW5QYWNrYWdlKiBw
YWNrYWdlID0gKCppdCkuZ2V0KCk7CisKKyAgICAgICAgY29uc3QgTUlNRVRvRGVzY3JpcHRpb25z
TWFwJiBtaW1lVG9EZXNjcmlwdGlvbnMgPSBwYWNrYWdlLT5taW1lVG9EZXNjcmlwdGlvbnMoKTsK
KworICAgICAgICBNSU1FVG9EZXNjcmlwdGlvbnNNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1p
bWVUb0Rlc2NyaXB0aW9ucy5lbmQoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoTUlNRVRvRGVz
Y3JpcHRpb25zTWFwOjpjb25zdF9pdGVyYXRvciBtaW1laXRlciA9IG1pbWVUb0Rlc2NyaXB0aW9u
cy5iZWdpbigpOyBtaW1laXRlciAhPSBlbmQ7ICsrbWltZWl0ZXIpIHsKKyAgICAgICAgICAgIC8v
IFdlIGNoZWNrIGZvciBleGFjdCBtaW1lIHR5cGUgbWF0Y2hlcyBhbmQgd2lsZGNhcmQgKCopIG1h
dGNoZXMuIAorICAgICAgICAgICAgaWYgKG1pbWVpdGVyLT5maXJzdCA9PSBrZXkgfHwgbWltZWl0
ZXItPmZpcnN0ID09ICIqIikKKyAgICAgICAgICAgICAgICBwbHVnaW5DaG9pY2VzLmFwcGVuZChw
YWNrYWdlKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChwbHVnaW5DaG9pY2VzLmlzRW1w
dHkoKSkKSW5kZXg6IFdlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luUGFja2FnZVdpbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5QYWNrYWdlV2luLmNwcAkocmV2
aXNpb24gNDIxNzEpCisrKyBXZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblBhY2thZ2VXaW4uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC04MSw5ICs4MSwxNCBAQCBib29sIFBsdWdpblBhY2thZ2U6Omlz
UGx1Z2luQmxhY2tsaXN0ZWQoCiAKICAgICAgICAgaWYgKGNvbXBhcmVGaWxlVmVyc2lvbihzbFBs
dWdpbk1pblJlcXVpcmVkKSA8IDApCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9IGVs
c2UgaWYgKGZpbGVOYW1lKCkgPT0gIm5wbW96YXguZGxsIikKKyAgICB9IGVsc2UgaWYgKGZpbGVO
YW1lKCkgPT0gIm5wbW96YXguZGxsIikgewogICAgICAgICAvLyBCdWcgMTUyMTc6IE1vemlsbGEg
QWN0aXZlWCBjb250cm9sIGNvbXBsYWlucyBhYm91dCBtaXNzaW5nIHhwY29tX2NvcmUuZGxsCiAg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0gZWxzZSBpZiAoZmlsZU5hbWUoKSA9PSAibnBudWwz
Mi5kbGwiKSB7CisgICAgICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gbG9hZCB0aGUgTW96aWxsYSBu
dWxsIHBsdWdpbiwgd2hpY2ggaXMgdXNlZCB0byBpbnN0YWxsCisgICAgICAgIC8vIE5QQVBJIHBs
dWdpbnMuCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KIAogICAgIHJldHVybiBmYWxzZTsK
IH0KSW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA0MjE4OSkKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMDQtMDIgIGl5ZW5nYXIgIDxhbmFudGFA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZGVkIHN1cHBvcnQgZm9yIHJldHVybmluZyBwbHVnaW5zIHdoaWNoIHN1cHBvcnQg
dGhlIHdpbGRjYXJkIG1pbWUgdHlwZSAoKikuCisgICAgICAgIFRoaXMgaXMgb24gdGhlIHNhbWUg
bGluZXMgYXMgRmlyZWZveCwgd2hpY2ggdXNlcyBhIHdpbGRjYXJkIHBsdWdpbiAobnBudWwzMi5k
bGwpIGZvcgorICAgICAgICBwbHVnaW4gaW5zdGFsbGF0aW9uLiBUaGUgY2hhbmdlcyB0byBzdXBw
b3J0IHdpbGRjYXJkIG1pbWUgdHlwZSBtYXRjaGluZyBhcmUgaW4KKyAgICAgICAgUGx1Z2luRGF0
YWJhc2UuY3BwIHdoaWNoIGlzIHVzZWQgYnkgV2Via2l0J3MgcGx1Z2luIGltcGxlbWVudGF0aW9u
LCBhbmQKKyAgICAgICAgUGx1Z2luRGF0YS5jcHAvLmggd2hpY2ggaXMgdXNlZCBieSBDaHJvbWl1
bS4gCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0
OTg4CisKKyAgICAgICAgKiBQbHVnaW5zL1dlYlBsdWdpbkRhdGFiYXNlLm1tOgorICAgICAgICAo
LVtXZWJQbHVnaW5EYXRhYmFzZSBwbHVnaW5Gb3JLZXk6d2l0aEVudW1lcmF0b3JTZWxlY3Rvcjpd
KToKKwogMjAwOS0wNC0wMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgR2VvZmYgR2FyZW4uCkluZGV4OiBXZWJLaXQvbWFjL1BsdWdpbnMvV2Vi
UGx1Z2luRGF0YWJhc2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9QbHVnaW5zL1dlYlBs
dWdpbkRhdGFiYXNlLm1tCShyZXZpc2lvbiA0MjE3MSkKKysrIFdlYktpdC9tYWMvUGx1Z2lucy9X
ZWJQbHVnaW5EYXRhYmFzZS5tbQkod29ya2luZyBjb3B5KQpAQCAtOTksNyArOTksOSBAQCBzdGF0
aWMgdm9pZCBjaGVja0NhbmRpZGF0ZShXZWJCYXNlUGx1Z2luCiAgICAga2V5ID0gW2tleSBsb3dl
cmNhc2VTdHJpbmddOwogCiAgICAgd2hpbGUgKChwbHVnaW4gPSBbcGx1Z2luRW51bWVyYXRvciBu
ZXh0T2JqZWN0XSkgIT0gbmlsKSB7Ci0gICAgICAgIGlmIChbW1twbHVnaW4gcGVyZm9ybVNlbGVj
dG9yOmVudW1lcmF0b3JTZWxlY3Rvcl0gYWxsT2JqZWN0c10gY29udGFpbnNPYmplY3Q6a2V5XSkg
eworICAgICAgICBOU0FycmF5ICpwbHVnaW5NaW1lVHlwZXMgPSBbW3BsdWdpbiBwZXJmb3JtU2Vs
ZWN0b3I6ZW51bWVyYXRvclNlbGVjdG9yXSBhbGxPYmplY3RzXTsKKyAgICAKKyAgICAgICAgaWYg
KFtwbHVnaW5NaW1lVHlwZXMgY29udGFpbnNPYmplY3Q6a2V5XSB8fCBbcGx1Z2luTWltZVR5cGVz
IGNvbnRhaW5zT2JqZWN0OkAiKiJdKSB7CiAgICAgICAgICAgICBpZiAoW3BsdWdpbiBpc0tpbmRP
ZkNsYXNzOltXZWJQbHVnaW5QYWNrYWdlIGNsYXNzXV0pIAogICAgICAgICAgICAgICAgIGNoZWNr
Q2FuZGlkYXRlKCZ3ZWJQbHVnaW4sICZwbHVnaW4pOwogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVH
SU5fQVBJKQpJbmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gNDIxODkpCisrKyBXZWJLaXRUb29scy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAwOS0wNC0wMiAgaXllbmdhciAg
PGFuYW50YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkZWQgdGhlIHdpbGRjYXJkIG1pbWUgdHlwZSAoKikgdG8gdGhlIGxp
c3Qgb2YgbWltZSB0eXBlcyBzdXBwb3J0ZWQgYnkgdGhlCisgICAgICAgIGxheW91dCB0ZXN0IHBs
dWdpbi4gVGhlIHBsdWdpbiBlbWl0cyBhIHRyYWNlIGluIGl0cyBOUFBfTmV3IGltcGxlbWVudGF0
aW9uCisgICAgICAgIG9uIHJlY2VpdmluZyB0aGUgYXBwbGljYXRpb24veC13ZWJraXQtdGVzdC1u
ZXRzY2FwZS13aWxkY2FyZC1wbHVnaW4gbWltZSB0eXBlLAorICAgICAgICBpbmRpY2F0aW5nIHRo
YXQgdGhlIHdpbGRjYXJkIHBsdWdpbiBtaW1lIHR5cGUgbWF0Y2ggc3VjY2VlZGVkLgorCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDk4OAorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovSW5mby5wbGlz
dDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4uc3VicHJvai9t
YWluLmNwcDoKKyAgICAgICAgKE5QUF9OZXcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dp
bi9UZXN0TmV0c2NhcGVQbHVnaW4vVGVzdE5ldHNjYXBlUGx1Z2luLnJjOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHA6CisgICAgICAgIChO
UFBfTmV3KToKKwogMjAwOS0wNC0wMiAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgQnVpbGQgZml4IGZvciBXaW5kb3dzIG1hY2hpbmVzIHRoYXQgZG9uJ3QgaGF2ZSBX
ZWJLaXRUb29scy9TY2lwdHMgaW4KSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3ROZXRzY2FwZVBsdWdJbi5zdWJwcm9qL0luZm8ucGxpc3QKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovSW5mby5wbGlz
dAkocmV2aXNpb24gNDIxNzEpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0
c2NhcGVQbHVnSW4uc3VicHJvai9JbmZvLnBsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1
MywxNSBAQAogCQkJPGtleT5XZWJQbHVnaW5UeXBlRGVzY3JpcHRpb248L2tleT4KIAkJCTxzdHJp
bmc+dGVzdCBuZXRzY2FwZSBjb250ZW50PC9zdHJpbmc+CiAJCTwvZGljdD4KKwkJPGtleT4qPC9r
ZXk+CisJCTxkaWN0PgorCQkJPGtleT5XZWJQbHVnaW5FeHRlbnNpb25zPC9rZXk+CisJCQk8YXJy
YXk+CisJCQkJPHN0cmluZz53aWxkY2FyZHBsdWdpbjwvc3RyaW5nPgorCQkJPC9hcnJheT4KKwkJ
CTxrZXk+V2ViUGx1Z2luVHlwZURlc2NyaXB0aW9uPC9rZXk+CisJCQk8c3RyaW5nPnRlc3QgbmV0
c2NhcGUgd2lsZGNhcmQgcGx1Z2luPC9zdHJpbmc+CisJCTwvZGljdD4KIAk8L2RpY3Q+CiAJPGtl
eT5XZWJQbHVnaW5OYW1lPC9rZXk+CiAJPHN0cmluZz5XZWJLaXQgVGVzdCBQbHVnSW48L3N0cmlu
Zz4KSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi5z
dWJwcm9qL21haW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L1Rlc3ROZXRzY2FwZVBsdWdJbi5zdWJwcm9qL21haW4uY3BwCShyZXZpc2lvbiA0MjE3MSkKKysr
IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi5zdWJwcm9qL21h
aW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjUsNiArMTY1LDExIEBAIE5QRXJyb3IgTlBQX05l
dyhOUE1JTUVUeXBlIHBsdWdpblR5cGUsIE4KICAgICAgICAgCiAgICAgICAgIG9iai0+ZXZlbnRN
b2RlbCA9IE5QRXZlbnRNb2RlbENvY29hOwogICAgIH0KKworICAgIGlmIChzdHJjYXNlY21wKHBs
dWdpblR5cGUsICJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlLXdpbGRjYXJkLXBs
dWdpbiIpID09IDApIHsKKyAgICAgICAgbG9nKGluc3RhbmNlLCAiUExVR0lOOiBOUEFQSSBXaWxk
Y2FyZCBwbHVnaW4gaW5zdGFuY2UgbG9hZGVkXG4iKTsKKyAgICAgICAgZmZsdXNoKHN0ZG91dCk7
CisgICAgfQogICAgIAogICAgIGJyb3dzZXItPnNldHZhbHVlKGluc3RhbmNlLCBOUFBWcGx1Z2lu
RXZlbnRNb2RlbCwgKHZvaWQgKilvYmotPmV2ZW50TW9kZWwpOwogICAgIHJldHVybiBOUEVSUl9O
T19FUlJPUjsKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2Nh
cGVQbHVnaW4vVGVzdE5ldHNjYXBlUGx1Z2luLnJjCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vVGVzdE5ldHNjYXBlUGx1Z2lu
LnJjCShyZXZpc2lvbiA0MjE3MSkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9U
ZXN0TmV0c2NhcGVQbHVnaW4vVGVzdE5ldHNjYXBlUGx1Z2luLnJjCSh3b3JraW5nIGNvcHkpCkBA
IC03MiwxMCArNzIsMTIgQEAgQkVHSU4NCiAgICAgICAgICAgICBWQUxVRSAiQ29tcGFueU5hbWUi
LCAiQXBwbGUgSW5jLiINCiAgICAgICAgICAgICBWQUxVRSAiRmlsZURlc2NyaXB0aW9uIiwgIlRl
c3ROZXRzY2FwZVBsdWdJbiINCiAgICAgICAgICAgICBWQUxVRSAiRmlsZU9wZW5OYW1lIiwgInRl
c3QgbmV0c2NhcGUgY29udGVudCINCisgICAgICAgICAgICBWQUxVRSAiRmlsZVZlcnNpb24iLCAi
MSwgMCwgMCwgMSINCiAgICAgICAgICAgICBWQUxVRSAiTGVnYWxDb3B5cmlnaHQiLCAiQ29weXJp
Z2h0IEFwcGxlIEluYy4gMjAwNy0yMDA5Ig0KLSAgICAgICAgICAgIFZBTFVFICJNSU1FVHlwZSIs
ICJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlIg0KKyAgICAgICAgICAgIFZBTFVF
ICJNSU1FVHlwZSIsICJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlfCoiDQogICAg
ICAgICAgICAgVkFMVUUgIk9yaWdpbmFsRmlsZW5hbWUiLCAibnBUZXN0TmV0c2NhcGVQbHVnaW4u
ZGxsIg0KICAgICAgICAgICAgIFZBTFVFICJQcm9kdWN0TmFtZSIsICJUZXN0TmV0c2NhcGVQbHVn
SW4iDQorICAgICAgICAgICAgVkFMVUUgIlByb2R1Y3RWZXJzaW9uIiwgIjEsIDAsIDAsIDEiDQog
ICAgICAgICBFTkQNCiAgICAgRU5EDQogICAgIEJMT0NLICJWYXJGaWxlSW5mbyINCkluZGV4OiBX
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL21haW4uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2Nh
cGVQbHVnaW4vbWFpbi5jcHAJKHJldmlzaW9uIDQyMTcxKQorKysgV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9tYWluLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtODUsNyArODUsMTIgQEAgTlBFcnJvciBOUFBfTmV3KE5QTUlNRVR5cGUgcGx1Z2luVHlwZSwg
TgogICAgICAgICAgICAgZWxzZSBpZiAoX3N0cmljbXAoYXJnbltpXSwgIm9uVVJMTm90aWZ5Iikg
PT0gMCAmJiAhb2JqLT5vblVSTE5vdGlmeSkKICAgICAgICAgICAgICAgICBvYmotPm9uVVJMTm90
aWZ5ID0gX3N0cmR1cChhcmd2W2ldKTsKICAgICAgICAgfQotICAgICAgICAKKworICAgICAgICBp
ZiAoX3N0cmljbXAocGx1Z2luVHlwZSwgImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2Nh
cGUtd2lsZGNhcmQtcGx1Z2luIikgPT0gMCkgeworICAgICAgICAgICAgcHJpbnRmKCJDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMDogUExVR0lOOiBOUEFQSSBXaWxkY2FyZCBwbHVnaW4gaW5zdGFuY2Ug
bG9hZGVkXG4iKTsKKyAgICAgICAgICAgIGZmbHVzaChzdGRvdXQpOworICAgICAgICB9CisKICAg
ICAgICAgaW5zdGFuY2UtPnBkYXRhID0gb2JqOwogICAgIH0KICAgICAKSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDQyMTg5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMDktMDQtMDIgIGl5ZW5nYXIgIDxhbmFudGFAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGEg
bGF5b3V0IHRlc3Qgd2hpY2ggdmVyaWZpZXMgd2hldGhlciB0aGUgd2lsZGNhcmQgcGx1Z2luIG1p
bWUgdHlwZSBtYXRjaAorICAgICAgICBzdWNjZWVkZWQuCisKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0OTg4CisKKyAgICAgICAgKiBwbHVnaW5zL25l
dHNjYXBlLXBsdWdpbi13aWxkY2FyZC1wbHVnaW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBwbHVnaW5zL25ldHNjYXBlLXBsdWdpbi13aWxkY2FyZC1wbHVnaW4uaHRtbDogQWRkZWQu
CisKIDIwMDktMDQtMDIgIFBhbWVsYSBHcmVlbmUgIDxwYW1AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy9u
ZXRzY2FwZS1wbHVnaW4td2lsZGNhcmQtcGx1Z2luLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbHVnaW5zL25ldHNjYXBlLXBsdWdpbi13aWxkY2FyZC1wbHVnaW4tZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9uZXRzY2FwZS1w
bHVnaW4td2lsZGNhcmQtcGx1Z2luLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwzIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMDogUExVR0lOOiBOUEFQSSBXaWxkY2FyZCBw
bHVnaW4gaW5zdGFuY2UgbG9hZGVkCisKK1RoaXMgdGVzdHMgdGhhdCBhIHBsdWdpbiB3aGljaCBz
dXBwb3J0cyB0aGUgd2lsZGNhcmQgbWltZSB0eXBlICogaXMgbG9hZGVkIGNvcnJlY3RseS4KClBy
b3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXdp
bGRjYXJkLXBsdWdpbi1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHls
ZQogICArIG5hdGl2ZQoKSW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMvbmV0c2NhcGUtcGx1Z2lu
LXdpbGRjYXJkLXBsdWdpbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMv
bmV0c2NhcGUtcGx1Z2luLXdpbGRjYXJkLXBsdWdpbi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4td2lsZGNhcmQtcGx1Z2luLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTYgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRX
aW5kb3dJc0tleShmYWxzZSk7CisgICAgfQorICAgIAorPC9zY3JpcHQ+Cis8Ym9keT4KKzxlbWJl
ZCBpZD0idGVzdFBsdWdpbiIgdHlwZT0iYXBwbGljYXRpb24veC13ZWJraXQtdGVzdC1uZXRzY2Fw
ZS13aWxkY2FyZC1wbHVnaW4iIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIj48L2VtYmVkPgorPGRp
dj4KKyAgICBUaGlzIHRlc3RzIHRoYXQgYSBwbHVnaW4gd2hpY2ggc3VwcG9ydHMgdGhlIHdpbGRj
YXJkIG1pbWUgdHlwZSAqIGlzIGxvYWRlZCBjb3JyZWN0bHkuCis8L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsdWdpbnMvbmV0c2NhcGUt
cGx1Z2luLXdpbGRjYXJkLXBsdWdpbi5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5
bGUKICAgKyBMRgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29244</attachid>
            <date>2009-04-03 14:46:09 -0700</date>
            <delta_ts>2009-04-07 16:28:04 -0700</delta_ts>
            <desc>Updated patch with the layout test LayoutTests/plugins/plugin-javascript-access.html rebaselined</desc>
            <filename>SupportWildcardPlugins.txt</filename>
            <type>text/plain</type>
            <size>15218</size>
            <attacher name="Ananta Iyengar">ananta</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MjIwOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjggQEAKKzIwMDktMDQtMDMgIGl5ZW5nYXIgIDxhbmFudGFAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVk
IHN1cHBvcnQgZm9yIHJldHVybmluZyBwbHVnaW5zIHdoaWNoIHN1cHBvcnQgdGhlIHdpbGRjYXJk
IG1pbWUgdHlwZSAoKikuCisgICAgICAgIFRoaXMgaXMgb24gdGhlIHNhbWUgbGluZXMgYXMgRmly
ZWZveCwgd2hpY2ggdXNlcyBhIHdpbGRjYXJkIHBsdWdpbiAobnBudWwzMi5kbGwpIGZvcgorICAg
ICAgICBwbHVnaW4gaW5zdGFsbGF0aW9uLiBUaGUgY2hhbmdlcyB0byBzdXBwb3J0IHdpbGRjYXJk
IG1pbWUgdHlwZSBtYXRjaGluZyBhcmUgaW4KKyAgICAgICAgUGx1Z2luRGF0YWJhc2UuY3BwIHdo
aWNoIGlzIHVzZWQgYnkgV2Via2l0J3MgcGx1Z2luIGltcGxlbWVudGF0aW9uLCBhbmQKKyAgICAg
ICAgUGx1Z2luRGF0YS5jcHAvLmggd2hpY2ggaXMgdXNlZCBieSBDaHJvbWl1bS4gCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0OTg4CisKKyAgICAg
ICAgVGVzdDogcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4td2lsZGNhcmQtcGx1Z2luLmh0bWwKKwor
ICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
T01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQpOgorICAgICAgICAqIHBsdWdpbnMvUGx1
Z2luRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5EYXRhOjpzdXBwb3J0c01pbWVU
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRhdGE6OnN1cHBvcnRzTWltZVR5cGVXaXRo
b3V0Q29uc2lkZXJpbmdXaWxkY2FyZHMpOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luRGF0YS5o
OgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGx1Z2luRGF0YWJhc2U6OnBsdWdpbkZvck1JTUVUeXBlKToKKyAgICAgICAgKiBwbHVnaW5z
L3dpbi9QbHVnaW5QYWNrYWdlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblBhY2th
Z2U6OmlzUGx1Z2luQmxhY2tsaXN0ZWQpOgorCiAyMDA5LTA0LTAzICBDaHJpcyBNYXJyaW4gIDxj
bWFycmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBIeWF0dC4KSW5k
ZXg6IFdlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAJKHJldmlzaW9uIDQyMTcxKQorKysgV2ViQ29y
ZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDEsNyArMzQx
LDcgQEAgUGFzc1JlZlB0cjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OgogCiAgICAgLy8g
UERGIGlzIG9uZSBpbWFnZSB0eXBlIGZvciB3aGljaCBhIHBsdWdpbiBjYW4gb3ZlcnJpZGUgYnVp
bHQtaW4gc3VwcG9ydC4KICAgICAvLyBXZSBkbyBub3Qgd2FudCBRdWlja1RpbWUgdG8gdGFrZSBv
dmVyIGFsbCBpbWFnZSB0eXBlcywgb2J2aW91c2x5LgotICAgIGlmICgodHlwZSA9PSAiYXBwbGlj
YXRpb24vcGRmIiB8fCB0eXBlID09ICJ0ZXh0L3BkZiIpICYmIHBsdWdpbkRhdGEgJiYgcGx1Z2lu
RGF0YS0+c3VwcG9ydHNNaW1lVHlwZSh0eXBlKSkKKyAgICBpZiAoKHR5cGUgPT0gImFwcGxpY2F0
aW9uL3BkZiIgfHwgdHlwZSA9PSAidGV4dC9wZGYiKSAmJiBwbHVnaW5EYXRhICYmIHBsdWdpbkRh
dGEtPnN1cHBvcnRzTWltZVR5cGVXaXRob3V0Q29uc2lkZXJpbmdXaWxkY2FyZHModHlwZSkpCiAg
ICAgICAgIHJldHVybiBQbHVnaW5Eb2N1bWVudDo6Y3JlYXRlKGZyYW1lKTsKICAgICBpZiAoSW1h
Z2U6OnN1cHBvcnRzVHlwZSh0eXBlKSkKICAgICAgICAgcmV0dXJuIEltYWdlRG9jdW1lbnQ6OmNy
ZWF0ZShmcmFtZSk7CkBAIC0zNTUsNyArMzU1LDcgQEAgUGFzc1JlZlB0cjxEb2N1bWVudD4gRE9N
SW1wbGVtZW50YXRpb246OgogICAgIC8vIEV2ZXJ5dGhpbmcgZWxzZSBleGNlcHQgdGV4dC9wbGFp
biBjYW4gYmUgb3ZlcnJpZGRlbiBieSBwbHVnaW5zLiBJbiBwYXJ0aWN1bGFyLCBBZG9iZSBTVkcg
Vmlld2VyIHNob3VsZCBiZSB1c2VkIGZvciBTVkcsIGlmIGluc3RhbGxlZC4KICAgICAvLyBEaXNh
bGxvd2luZyBwbHVnLWlucyB0byB1c2UgdGV4dC9wbGFpbiBwcmV2ZW50cyBwbHVnLWlucyBmcm9t
IGhpamFja2luZyBhIGZ1bmRhbWVudGFsIHR5cGUgdGhhdCB0aGUgYnJvd3NlciBpcyBleHBlY3Rl
ZCB0byBoYW5kbGUsCiAgICAgLy8gYW5kIGFsc28gc2VydmVzIGFzIGFuIG9wdGltaXphdGlvbiB0
byBwcmV2ZW50IGxvYWRpbmcgdGhlIHBsdWctaW4gZGF0YWJhc2UgaW4gdGhlIGNvbW1vbiBjYXNl
LgotICAgIGlmICh0eXBlICE9ICJ0ZXh0L3BsYWluIiAmJiBwbHVnaW5EYXRhICYmIHBsdWdpbkRh
dGEtPnN1cHBvcnRzTWltZVR5cGUodHlwZSkpIAorICAgIGlmICh0eXBlICE9ICJ0ZXh0L3BsYWlu
IiAmJiBwbHVnaW5EYXRhICYmIHBsdWdpbkRhdGEtPnN1cHBvcnRzTWltZVR5cGVXaXRob3V0Q29u
c2lkZXJpbmdXaWxkY2FyZHModHlwZSkpIAogICAgICAgICByZXR1cm4gUGx1Z2luRG9jdW1lbnQ6
OmNyZWF0ZShmcmFtZSk7CiAgICAgaWYgKGlzVGV4dE1JTUVUeXBlKHR5cGUpKQogICAgICAgICBy
ZXR1cm4gVGV4dERvY3VtZW50OjpjcmVhdGUoZnJhbWUpOwpAQCAtMzc2LDMgKzM3Niw1IEBAIFBh
c3NSZWZQdHI8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjoKIH0KIAogfQorCisKSW5kZXg6
IFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luRGF0YS5jcHAJKHJldmlzaW9uIDQyMTcxKQorKysgV2ViQ29yZS9wbHVnaW5z
L1BsdWdpbkRhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0NywxNCBAQCBQbHVnaW5E
YXRhOjp+UGx1Z2luRGF0YSgpCiBib29sIFBsdWdpbkRhdGE6OnN1cHBvcnRzTWltZVR5cGUoY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSkgY29uc3QKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbV9taW1lcy5zaXplKCk7ICsraSkKKyAgICAgICAgaWYgKG1fbWltZXNbaV0tPnR5cGUgPT0g
bWltZVR5cGUgfHwgbV9taW1lc1tpXS0+dHlwZSA9PSAiKiIpCisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUGx1Z2luRGF0YTo6c3VwcG9ydHNN
aW1lVHlwZVdpdGhvdXRDb25zaWRlcmluZ1dpbGRjYXJkcyhjb25zdCBTdHJpbmcmIG1pbWVUeXBl
KSBjb25zdAoreworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX21pbWVzLnNpemUoKTsg
KytpKQogICAgICAgICBpZiAobV9taW1lc1tpXS0+dHlwZSA9PSBtaW1lVHlwZSkKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFdlYkNvcmUvcGx1Z2lu
cy9QbHVnaW5EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGEu
aAkocmV2aXNpb24gNDIxNzEpCisrKyBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01Niw2ICs1Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
Y29uc3QgVmVjdG9yPE1pbWVDbGFzc0luZm8qPiYgbWltZXMoKSBjb25zdCB7IHJldHVybiBtX21p
bWVzOyB9CiAKICAgICAgICAgYm9vbCBzdXBwb3J0c01pbWVUeXBlKGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUpIGNvbnN0OworICAgICAgICBib29sIHN1cHBvcnRzTWltZVR5cGVXaXRob3V0Q29uc2lk
ZXJpbmdXaWxkY2FyZHMoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgY29uc3Q7CiAgICAgICAgIFN0
cmluZyBwbHVnaW5OYW1lRm9yTWltZVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgY29uc3Q7
CiAKICAgICAgICAgc3RhdGljIHZvaWQgcmVmcmVzaCgpOwpJbmRleDogV2ViQ29yZS9wbHVnaW5z
L1BsdWdpbkRhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsdWdpbnMvUGx1Z2lu
RGF0YWJhc2UuY3BwCShyZXZpc2lvbiA0MjE3MSkKKysrIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5E
YXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Miw4ICsxNjIsMTcgQEAgUGx1Z2luUGFj
a2FnZSogUGx1Z2luRGF0YWJhc2U6OnBsdWdpbkZvcgogICAgIFZlY3RvcjxQbHVnaW5QYWNrYWdl
KiwgMj4gcGx1Z2luQ2hvaWNlczsKIAogICAgIGZvciAoUGx1Z2luU2V0Ojpjb25zdF9pdGVyYXRv
ciBpdCA9IG1fcGx1Z2lucy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgaWYg
KCgqaXQpLT5taW1lVG9EZXNjcmlwdGlvbnMoKS5jb250YWlucyhrZXkpKQotICAgICAgICAgICAg
cGx1Z2luQ2hvaWNlcy5hcHBlbmQoKCppdCkuZ2V0KCkpOworICAgICAgICBQbHVnaW5QYWNrYWdl
KiBwYWNrYWdlID0gKCppdCkuZ2V0KCk7CisKKyAgICAgICAgY29uc3QgTUlNRVRvRGVzY3JpcHRp
b25zTWFwJiBtaW1lVG9EZXNjcmlwdGlvbnMgPSBwYWNrYWdlLT5taW1lVG9EZXNjcmlwdGlvbnMo
KTsKKworICAgICAgICBNSU1FVG9EZXNjcmlwdGlvbnNNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9
IG1pbWVUb0Rlc2NyaXB0aW9ucy5lbmQoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoTUlNRVRv
RGVzY3JpcHRpb25zTWFwOjpjb25zdF9pdGVyYXRvciBtaW1laXRlciA9IG1pbWVUb0Rlc2NyaXB0
aW9ucy5iZWdpbigpOyBtaW1laXRlciAhPSBlbmQ7ICsrbWltZWl0ZXIpIHsKKyAgICAgICAgICAg
IC8vIFdlIGNoZWNrIGZvciBleGFjdCBtaW1lIHR5cGUgbWF0Y2hlcyBhbmQgd2lsZGNhcmQgKCop
IG1hdGNoZXMuIAorICAgICAgICAgICAgaWYgKG1pbWVpdGVyLT5maXJzdCA9PSBrZXkgfHwgbWlt
ZWl0ZXItPmZpcnN0ID09ICIqIikKKyAgICAgICAgICAgICAgICBwbHVnaW5DaG9pY2VzLmFwcGVu
ZChwYWNrYWdlKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChwbHVnaW5DaG9pY2VzLmlz
RW1wdHkoKSkKSW5kZXg6IFdlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luUGFja2FnZVdpbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5QYWNrYWdlV2luLmNwcAko
cmV2aXNpb24gNDIxNzEpCisrKyBXZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblBhY2thZ2VXaW4u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MSw5ICs4MSwxNCBAQCBib29sIFBsdWdpblBhY2thZ2U6
OmlzUGx1Z2luQmxhY2tsaXN0ZWQoCiAKICAgICAgICAgaWYgKGNvbXBhcmVGaWxlVmVyc2lvbihz
bFBsdWdpbk1pblJlcXVpcmVkKSA8IDApCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9
IGVsc2UgaWYgKGZpbGVOYW1lKCkgPT0gIm5wbW96YXguZGxsIikKKyAgICB9IGVsc2UgaWYgKGZp
bGVOYW1lKCkgPT0gIm5wbW96YXguZGxsIikgewogICAgICAgICAvLyBCdWcgMTUyMTc6IE1vemls
bGEgQWN0aXZlWCBjb250cm9sIGNvbXBsYWlucyBhYm91dCBtaXNzaW5nIHhwY29tX2NvcmUuZGxs
CiAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0gZWxzZSBpZiAoZmlsZU5hbWUoKSA9PSAibnBu
dWwzMi5kbGwiKSB7CisgICAgICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gbG9hZCB0aGUgTW96aWxs
YSBudWxsIHBsdWdpbiwgd2hpY2ggaXMgdXNlZCB0byBpbnN0YWxsCisgICAgICAgIC8vIE5QQVBJ
IHBsdWdpbnMuCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KIAogICAgIHJldHVybiBmYWxz
ZTsKIH0KSW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9t
YWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0MjIwOCkKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMDQtMDMgIGl5ZW5nYXIgIDxhbmFu
dGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZGVkIHN1cHBvcnQgZm9yIHJldHVybmluZyBwbHVnaW5zIHdoaWNoIHN1cHBv
cnQgdGhlIHdpbGRjYXJkIG1pbWUgdHlwZSAoKikuCisgICAgICAgIFRoaXMgaXMgb24gdGhlIHNh
bWUgbGluZXMgYXMgRmlyZWZveCwgd2hpY2ggdXNlcyBhIHdpbGRjYXJkIHBsdWdpbiAobnBudWwz
Mi5kbGwpIGZvcgorICAgICAgICBwbHVnaW4gaW5zdGFsbGF0aW9uLiBUaGUgY2hhbmdlcyB0byBz
dXBwb3J0IHdpbGRjYXJkIG1pbWUgdHlwZSBtYXRjaGluZyBhcmUgaW4KKyAgICAgICAgUGx1Z2lu
RGF0YWJhc2UuY3BwIHdoaWNoIGlzIHVzZWQgYnkgV2Via2l0J3MgcGx1Z2luIGltcGxlbWVudGF0
aW9uLCBhbmQKKyAgICAgICAgUGx1Z2luRGF0YS5jcHAvLmggd2hpY2ggaXMgdXNlZCBieSBDaHJv
bWl1bS4gCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI0OTg4CisKKyAgICAgICAgKiBQbHVnaW5zL1dlYlBsdWdpbkRhdGFiYXNlLm1tOgorICAgICAg
ICAoLVtXZWJQbHVnaW5EYXRhYmFzZSBwbHVnaW5Gb3JLZXk6d2l0aEVudW1lcmF0b3JTZWxlY3Rv
cjpdKToKKwogMjAwOS0wNC0wMyAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgSHlhdHQuCkluZGV4OiBXZWJLaXQvbWFjL1BsdWdp
bnMvV2ViUGx1Z2luRGF0YWJhc2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9QbHVnaW5z
L1dlYlBsdWdpbkRhdGFiYXNlLm1tCShyZXZpc2lvbiA0MjE3MSkKKysrIFdlYktpdC9tYWMvUGx1
Z2lucy9XZWJQbHVnaW5EYXRhYmFzZS5tbQkod29ya2luZyBjb3B5KQpAQCAtOTksNyArOTksOSBA
QCBzdGF0aWMgdm9pZCBjaGVja0NhbmRpZGF0ZShXZWJCYXNlUGx1Z2luCiAgICAga2V5ID0gW2tl
eSBsb3dlcmNhc2VTdHJpbmddOwogCiAgICAgd2hpbGUgKChwbHVnaW4gPSBbcGx1Z2luRW51bWVy
YXRvciBuZXh0T2JqZWN0XSkgIT0gbmlsKSB7Ci0gICAgICAgIGlmIChbW1twbHVnaW4gcGVyZm9y
bVNlbGVjdG9yOmVudW1lcmF0b3JTZWxlY3Rvcl0gYWxsT2JqZWN0c10gY29udGFpbnNPYmplY3Q6
a2V5XSkgeworICAgICAgICBOU0FycmF5ICpwbHVnaW5NaW1lVHlwZXMgPSBbW3BsdWdpbiBwZXJm
b3JtU2VsZWN0b3I6ZW51bWVyYXRvclNlbGVjdG9yXSBhbGxPYmplY3RzXTsKKyAgICAKKyAgICAg
ICAgaWYgKFtwbHVnaW5NaW1lVHlwZXMgY29udGFpbnNPYmplY3Q6a2V5XSB8fCBbcGx1Z2luTWlt
ZVR5cGVzIGNvbnRhaW5zT2JqZWN0OkAiKiJdKSB7CiAgICAgICAgICAgICBpZiAoW3BsdWdpbiBp
c0tpbmRPZkNsYXNzOltXZWJQbHVnaW5QYWNrYWdlIGNsYXNzXV0pIAogICAgICAgICAgICAgICAg
IGNoZWNrQ2FuZGlkYXRlKCZ3ZWJQbHVnaW4sICZwbHVnaW4pOwogI2lmIEVOQUJMRShORVRTQ0FQ
RV9QTFVHSU5fQVBJKQpJbmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gNDIyMDgpCisrKyBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAwOS0wNC0wMyAgaXll
bmdhciAgPGFuYW50YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGhlIHdpbGRjYXJkIG1pbWUgdHlwZSAoKikgdG8g
dGhlIGxpc3Qgb2YgbWltZSB0eXBlcyBzdXBwb3J0ZWQgYnkgdGhlCisgICAgICAgIGxheW91dCB0
ZXN0IHBsdWdpbi4gVGhlIHBsdWdpbiBlbWl0cyBhIHRyYWNlIGluIGl0cyBOUFBfTmV3IGltcGxl
bWVudGF0aW9uCisgICAgICAgIG9uIHJlY2VpdmluZyB0aGUgYXBwbGljYXRpb24veC13ZWJraXQt
dGVzdC1uZXRzY2FwZS13aWxkY2FyZC1wbHVnaW4gbWltZSB0eXBlLAorICAgICAgICBpbmRpY2F0
aW5nIHRoYXQgdGhlIHdpbGRjYXJkIHBsdWdpbiBtaW1lIHR5cGUgbWF0Y2ggc3VjY2VlZGVkLgor
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDk4OAor
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovSW5m
by5wbGlzdDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4uc3Vi
cHJvai9tYWluLmNwcDoKKyAgICAgICAgKE5QUF9OZXcpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vVGVzdE5ldHNjYXBlUGx1Z2luLnJjOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHA6CisgICAg
ICAgIChOUFBfTmV3KToKKwogMjAwOS0wNC0wMiAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5j
b20+CiAKICAgICAgICAgQnVpbGQgZml4IGZvciBXaW5kb3dzIG1hY2hpbmVzIHRoYXQgZG9uJ3Qg
aGF2ZSBXZWJLaXRUb29scy9TY2lwdHMgaW4KSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi5zdWJwcm9qL0luZm8ucGxpc3QKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovSW5m
by5wbGlzdAkocmV2aXNpb24gNDIxNzEpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0TmV0c2NhcGVQbHVnSW4uc3VicHJvai9JbmZvLnBsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC01
Myw2ICs1MywxNSBAQAogCQkJPGtleT5XZWJQbHVnaW5UeXBlRGVzY3JpcHRpb248L2tleT4KIAkJ
CTxzdHJpbmc+dGVzdCBuZXRzY2FwZSBjb250ZW50PC9zdHJpbmc+CiAJCTwvZGljdD4KKwkJPGtl
eT4qPC9rZXk+CisJCTxkaWN0PgorCQkJPGtleT5XZWJQbHVnaW5FeHRlbnNpb25zPC9rZXk+CisJ
CQk8YXJyYXk+CisJCQkJPHN0cmluZz53aWxkY2FyZHBsdWdpbjwvc3RyaW5nPgorCQkJPC9hcnJh
eT4KKwkJCTxrZXk+V2ViUGx1Z2luVHlwZURlc2NyaXB0aW9uPC9rZXk+CisJCQk8c3RyaW5nPnRl
c3QgbmV0c2NhcGUgd2lsZGNhcmQgcGx1Z2luPC9zdHJpbmc+CisJCTwvZGljdD4KIAk8L2RpY3Q+
CiAJPGtleT5XZWJQbHVnaW5OYW1lPC9rZXk+CiAJPHN0cmluZz5XZWJLaXQgVGVzdCBQbHVnSW48
L3N0cmluZz4KSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBs
dWdJbi5zdWJwcm9qL21haW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi5zdWJwcm9qL21haW4uY3BwCShyZXZpc2lvbiA0MjE3
MSkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi5zdWJw
cm9qL21haW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjUsNiArMTY1LDExIEBAIE5QRXJyb3Ig
TlBQX05ldyhOUE1JTUVUeXBlIHBsdWdpblR5cGUsIE4KICAgICAgICAgCiAgICAgICAgIG9iai0+
ZXZlbnRNb2RlbCA9IE5QRXZlbnRNb2RlbENvY29hOwogICAgIH0KKworICAgIGlmIChzdHJjYXNl
Y21wKHBsdWdpblR5cGUsICJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlLXdpbGRj
YXJkLXBsdWdpbiIpID09IDApIHsKKyAgICAgICAgbG9nKGluc3RhbmNlLCAiTlBBUEkgV2lsZGNh
cmQgcGx1Z2luIGluc3RhbmNlIGxvYWRlZCIpOworICAgICAgICBmZmx1c2goc3Rkb3V0KTsKKyAg
ICB9CiAgICAgCiAgICAgYnJvd3Nlci0+c2V0dmFsdWUoaW5zdGFuY2UsIE5QUFZwbHVnaW5FdmVu
dE1vZGVsLCAodm9pZCAqKW9iai0+ZXZlbnRNb2RlbCk7CiAgICAgcmV0dXJuIE5QRVJSX05PX0VS
Uk9SOwpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBs
dWdpbi9UZXN0TmV0c2NhcGVQbHVnaW4ucmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9UZXN0TmV0c2NhcGVQbHVnaW4ucmMJ
KHJldmlzaW9uIDQyMTcxKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RO
ZXRzY2FwZVBsdWdpbi9UZXN0TmV0c2NhcGVQbHVnaW4ucmMJKHdvcmtpbmcgY29weSkKQEAgLTcz
LDcgKzczLDcgQEAgQkVHSU4NCiAgICAgICAgICAgICBWQUxVRSAiRmlsZURlc2NyaXB0aW9uIiwg
IlRlc3ROZXRzY2FwZVBsdWdJbiINCiAgICAgICAgICAgICBWQUxVRSAiRmlsZU9wZW5OYW1lIiwg
InRlc3QgbmV0c2NhcGUgY29udGVudCINCiAgICAgICAgICAgICBWQUxVRSAiTGVnYWxDb3B5cmln
aHQiLCAiQ29weXJpZ2h0IEFwcGxlIEluYy4gMjAwNy0yMDA5Ig0KLSAgICAgICAgICAgIFZBTFVF
ICJNSU1FVHlwZSIsICJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlIg0KKyAgICAg
ICAgICAgIFZBTFVFICJNSU1FVHlwZSIsICJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNj
YXBlfCoiDQogICAgICAgICAgICAgVkFMVUUgIk9yaWdpbmFsRmlsZW5hbWUiLCAibnBUZXN0TmV0
c2NhcGVQbHVnaW4uZGxsIg0KICAgICAgICAgICAgIFZBTFVFICJQcm9kdWN0TmFtZSIsICJUZXN0
TmV0c2NhcGVQbHVnSW4iDQogICAgICAgICBFTkQNCkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL21haW4uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHAJ
KHJldmlzaW9uIDQyMTcxKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RO
ZXRzY2FwZVBsdWdpbi9tYWluLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODUsNyArODUsMTIgQEAg
TlBFcnJvciBOUFBfTmV3KE5QTUlNRVR5cGUgcGx1Z2luVHlwZSwgTgogICAgICAgICAgICAgZWxz
ZSBpZiAoX3N0cmljbXAoYXJnbltpXSwgIm9uVVJMTm90aWZ5IikgPT0gMCAmJiAhb2JqLT5vblVS
TE5vdGlmeSkKICAgICAgICAgICAgICAgICBvYmotPm9uVVJMTm90aWZ5ID0gX3N0cmR1cChhcmd2
W2ldKTsKICAgICAgICAgfQotICAgICAgICAKKworICAgICAgICBpZiAoX3N0cmljbXAocGx1Z2lu
VHlwZSwgImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUtd2lsZGNhcmQtcGx1Z2lu
IikgPT0gMCkgeworICAgICAgICAgICAgcHJpbnRmKCJDT05TT0xFIE1FU1NBR0U6IGxpbmUgMDog
UExVR0lOOiBOUEFQSSBXaWxkY2FyZCBwbHVnaW4gaW5zdGFuY2UgbG9hZGVkXG4iKTsKKyAgICAg
ICAgICAgIGZmbHVzaChzdGRvdXQpOworICAgICAgICB9CisKICAgICAgICAgaW5zdGFuY2UtPnBk
YXRhID0gb2JqOwogICAgIH0KICAgICAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQyMjA4KQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMDkt
MDQtMDMgIGl5ZW5nYXIgIDxhbmFudGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGEgbGF5b3V0IHRlc3Qgd2hpY2gg
dmVyaWZpZXMgd2hldGhlciB0aGUgd2lsZGNhcmQgcGx1Z2luIG1pbWUgdHlwZSBtYXRjaAorICAg
ICAgICBzdWNjZWVkZWQuIFRoZSBwbHVnaW5zL3BsdWdpbi1qYXZhc2NyaXB0LWFjY2Vzcy5odG1s
IGxheW91dCB0ZXN0IGhhZCB0byBiZQorICAgICAgICByZS1iYXNlbGluZWQgdG8gYWNjb3VudCBm
b3IgdGhlIHdpbGRjYXJkIG1pbWUgdHlwZSBzdXBwb3J0ZWQgYnkgdGhlIGxheW91dCB0ZXN0Cisg
ICAgICAgIHBsdWdpbi4KKyAgICAgICAgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNDk4OAorCisgICAgICAgICogcGx1Z2lucy9uZXRzY2FwZS1wbHVn
aW4td2lsZGNhcmQtcGx1Z2luLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGx1Z2lu
cy9uZXRzY2FwZS1wbHVnaW4td2lsZGNhcmQtcGx1Z2luLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHBsdWdpbnMvcGx1Z2luLWphdmFzY3JpcHQtYWNjZXNzLWV4cGVjdGVkLnR4dDoKKwogMjAwOS0w
NC0wMyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL25ldHNj
YXBlLXBsdWdpbi13aWxkY2FyZC1wbHVnaW4tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXdpbGRjYXJkLXBsdWdpbi1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL25ldHNjYXBlLXBsdWdp
bi13aWxkY2FyZC1wbHVnaW4tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMg
QEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiBQTFVHSU46IE5QQVBJIFdpbGRjYXJkIHBsdWdp
biBpbnN0YW5jZSBsb2FkZWQKKworVGhpcyB0ZXN0cyB0aGF0IGEgcGx1Z2luIHdoaWNoIHN1cHBv
cnRzIHRoZSB3aWxkY2FyZCBtaW1lIHR5cGUgKiBpcyBsb2FkZWQgY29ycmVjdGx5LgoKUHJvcGVy
dHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4td2lsZGNh
cmQtcGx1Z2luLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAg
ICsgbmF0aXZlCgpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4td2ls
ZGNhcmQtcGx1Z2luLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9uZXRz
Y2FwZS1wbHVnaW4td2lsZGNhcmQtcGx1Z2luLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9wbHVnaW5zL25ldHNjYXBlLXBsdWdpbi13aWxkY2FyZC1wbHVnaW4uaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxNiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CisgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFdpbmRv
d0lzS2V5KGZhbHNlKTsKKyAgICB9CisgICAgCis8L3NjcmlwdD4KKzxib2R5PgorPGVtYmVkIGlk
PSJ0ZXN0UGx1Z2luIiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlLXdp
bGRjYXJkLXBsdWdpbiIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiPjwvZW1iZWQ+Cis8ZGl2Pgor
ICAgIFRoaXMgdGVzdHMgdGhhdCBhIHBsdWdpbiB3aGljaCBzdXBwb3J0cyB0aGUgd2lsZGNhcmQg
bWltZSB0eXBlICogaXMgbG9hZGVkIGNvcnJlY3RseS4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGx1Z2lucy9uZXRzY2FwZS1wbHVn
aW4td2lsZGNhcmQtcGx1Z2luLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQog
ICArIExGCgpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy9wbHVnaW4tamF2YXNjcmlwdC1hY2Nl
c3MtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvcGx1Z2lu
LWphdmFzY3JpcHQtYWNjZXNzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDIxNzEpCisrKyBMYXlv
dXRUZXN0cy9wbHVnaW5zL3BsdWdpbi1qYXZhc2NyaXB0LWFjY2Vzcy1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTE3LDYgKzE3LDE3IEBAIFBsdWdpbi5pdGVtKCkgd29ya3MuCiAKIFBs
dWdpbi5uYW1lZEl0ZW0oKSB3b3Jrcy4KIAorVHlwZTogKgorCitEZXNjcmlwdGlvbjogdGVzdCBu
ZXRzY2FwZSB3aWxkY2FyZCBwbHVnaW4KKworU3VmZml4ZXM6IHdpbGRjYXJkcGx1Z2luCisKKwor
UGx1Z2luLml0ZW0oKSB3b3Jrcy4KKworUGx1Z2luLm5hbWVkSXRlbSgpIHdvcmtzLgorCiBQbHVn
aW5BcnJheS5pdGVtKCkgd29ya3MuCiAKIFBsdWdpbkFycmF5Lm5hbWVkSXRlbSgpIHdvcmtzLgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29320</attachid>
            <date>2009-04-07 16:28:04 -0700</date>
            <delta_ts>2010-06-10 16:56:55 -0700</delta_ts>
            <desc>Updated patch with review comments addressed</desc>
            <filename>SupportWildcardPlugins.txt</filename>
            <type>text/plain</type>
            <size>15512</size>
            <attacher name="Ananta Iyengar">ananta</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDQyMjA4KQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDI4IEBADQorMjAwOS0wNC0wNyAgaXllbmdhciAgPGFuYW50YUBjaHJvbWl1
bS5vcmc+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAg
ICAgIEFkZGVkIHN1cHBvcnQgZm9yIHJldHVybmluZyBwbHVnaW5zIHdoaWNoIHN1cHBvcnQgdGhl
IHdpbGRjYXJkIG1pbWUgdHlwZSAoKikuDQorICAgICAgICBUaGlzIGlzIG9uIHRoZSBzYW1lIGxp
bmVzIGFzIEZpcmVmb3gsIHdoaWNoIHVzZXMgYSB3aWxkY2FyZCBwbHVnaW4gKG5wbnVsMzIuZGxs
KSBmb3INCisgICAgICAgIHBsdWdpbiBpbnN0YWxsYXRpb24uIFRoZSBjaGFuZ2VzIHRvIHN1cHBv
cnQgd2lsZGNhcmQgbWltZSB0eXBlIG1hdGNoaW5nIGFyZSBpbg0KKyAgICAgICAgUGx1Z2luRGF0
YWJhc2UuY3BwIHdoaWNoIGlzIHVzZWQgYnkgV2Via2l0J3MgcGx1Z2luIGltcGxlbWVudGF0aW9u
LCBhbmQNCisgICAgICAgIFBsdWdpbkRhdGEuY3BwLy5oIHdoaWNoIGlzIHVzZWQgYnkgQ2hyb21p
dW0uIA0KKw0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI0OTg4DQorDQorICAgICAgICBUZXN0OiBwbHVnaW5zL25ldHNjYXBlLXBsdWdpbi13aWxkY2Fy
ZC1wbHVnaW4uaHRtbA0KKw0KKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRpb24uY3BwOg0K
KyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudCk6DQor
ICAgICAgICAqIHBsdWdpbnMvUGx1Z2luRGF0YS5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6UGx1
Z2luRGF0YTo6c3VwcG9ydHNNaW1lVHlwZSk6DQorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luRGF0
YTo6c3VwcG9ydHNNaW1lVHlwZUlnbm9yaW5nV2lsZENhcmRzKToNCisgICAgICAgICogcGx1Z2lu
cy9QbHVnaW5EYXRhLmg6DQorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwOg0K
KyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRhdGFiYXNlOjpwbHVnaW5Gb3JNSU1FVHlwZSk6DQor
ICAgICAgICAqIHBsdWdpbnMvd2luL1BsdWdpblBhY2thZ2VXaW4uY3BwOg0KKyAgICAgICAgKFdl
YkNvcmU6OlBsdWdpblBhY2thZ2U6OmlzUGx1Z2luQmxhY2tsaXN0ZWQpOg0KKw0KIDIwMDktMDQt
MDMgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPg0KIA0KICAgICAgICAgUmV2aWV3
ZWQgYnkgRGF2aWQgSHlhdHQuDQpJbmRleDogV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24u
Y3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCShy
ZXZpc2lvbiA0MjE3MSkNCisrKyBXZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAJKHdv
cmtpbmcgY29weSkNCkBAIC0zNDEsNyArMzQxLDcgQEAgUGFzc1JlZlB0cjxEb2N1bWVudD4gRE9N
SW1wbGVtZW50YXRpb246Og0KIA0KICAgICAvLyBQREYgaXMgb25lIGltYWdlIHR5cGUgZm9yIHdo
aWNoIGEgcGx1Z2luIGNhbiBvdmVycmlkZSBidWlsdC1pbiBzdXBwb3J0Lg0KICAgICAvLyBXZSBk
byBub3Qgd2FudCBRdWlja1RpbWUgdG8gdGFrZSBvdmVyIGFsbCBpbWFnZSB0eXBlcywgb2J2aW91
c2x5Lg0KLSAgICBpZiAoKHR5cGUgPT0gImFwcGxpY2F0aW9uL3BkZiIgfHwgdHlwZSA9PSAidGV4
dC9wZGYiKSAmJiBwbHVnaW5EYXRhICYmIHBsdWdpbkRhdGEtPnN1cHBvcnRzTWltZVR5cGUodHlw
ZSkpDQorICAgIGlmICgodHlwZSA9PSAiYXBwbGljYXRpb24vcGRmIiB8fCB0eXBlID09ICJ0ZXh0
L3BkZiIpICYmIHBsdWdpbkRhdGEgJiYgcGx1Z2luRGF0YS0+c3VwcG9ydHNNaW1lVHlwZUlnbm9y
aW5nV2lsZENhcmRzKHR5cGUpKQ0KICAgICAgICAgcmV0dXJuIFBsdWdpbkRvY3VtZW50OjpjcmVh
dGUoZnJhbWUpOw0KICAgICBpZiAoSW1hZ2U6OnN1cHBvcnRzVHlwZSh0eXBlKSkNCiAgICAgICAg
IHJldHVybiBJbWFnZURvY3VtZW50OjpjcmVhdGUoZnJhbWUpOw0KQEAgLTM1NSw3ICszNTUsNyBA
QCBQYXNzUmVmUHRyPERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6DQogICAgIC8vIEV2ZXJ5
dGhpbmcgZWxzZSBleGNlcHQgdGV4dC9wbGFpbiBjYW4gYmUgb3ZlcnJpZGRlbiBieSBwbHVnaW5z
LiBJbiBwYXJ0aWN1bGFyLCBBZG9iZSBTVkcgVmlld2VyIHNob3VsZCBiZSB1c2VkIGZvciBTVkcs
IGlmIGluc3RhbGxlZC4NCiAgICAgLy8gRGlzYWxsb3dpbmcgcGx1Zy1pbnMgdG8gdXNlIHRleHQv
cGxhaW4gcHJldmVudHMgcGx1Zy1pbnMgZnJvbSBoaWphY2tpbmcgYSBmdW5kYW1lbnRhbCB0eXBl
IHRoYXQgdGhlIGJyb3dzZXIgaXMgZXhwZWN0ZWQgdG8gaGFuZGxlLA0KICAgICAvLyBhbmQgYWxz
byBzZXJ2ZXMgYXMgYW4gb3B0aW1pemF0aW9uIHRvIHByZXZlbnQgbG9hZGluZyB0aGUgcGx1Zy1p
biBkYXRhYmFzZSBpbiB0aGUgY29tbW9uIGNhc2UuDQotICAgIGlmICh0eXBlICE9ICJ0ZXh0L3Bs
YWluIiAmJiBwbHVnaW5EYXRhICYmIHBsdWdpbkRhdGEtPnN1cHBvcnRzTWltZVR5cGUodHlwZSkp
IA0KKyAgICBpZiAodHlwZSAhPSAidGV4dC9wbGFpbiIgJiYgcGx1Z2luRGF0YSAmJiBwbHVnaW5E
YXRhLT5zdXBwb3J0c01pbWVUeXBlSWdub3JpbmdXaWxkQ2FyZHModHlwZSkpIA0KICAgICAgICAg
cmV0dXJuIFBsdWdpbkRvY3VtZW50OjpjcmVhdGUoZnJhbWUpOw0KICAgICBpZiAoaXNUZXh0TUlN
RVR5cGUodHlwZSkpDQogICAgICAgICByZXR1cm4gVGV4dERvY3VtZW50OjpjcmVhdGUoZnJhbWUp
Ow0KQEAgLTM3NiwzICszNzYsNSBAQCBQYXNzUmVmUHRyPERvY3VtZW50PiBET01JbXBsZW1lbnRh
dGlvbjo6DQogfQ0KIA0KIH0NCisNCisNCkluZGV4OiBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0
YS5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YS5jcHAJKHJl
dmlzaW9uIDQyMTcxKQ0KKysrIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhLmNwcAkod29ya2lu
ZyBjb3B5KQ0KQEAgLTQ3LDYgKzQ3LDE0IEBAIFBsdWdpbkRhdGE6On5QbHVnaW5EYXRhKCkNCiBi
b29sIFBsdWdpbkRhdGE6OnN1cHBvcnRzTWltZVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkg
Y29uc3QNCiB7DQogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX21pbWVzLnNpemUoKTsg
KytpKQ0KKyAgICAgICAgaWYgKG1fbWltZXNbaV0tPnR5cGUgPT0gbWltZVR5cGUgfHwgbV9taW1l
c1tpXS0+dHlwZSA9PSAiKiIpDQorICAgICAgICAgICAgcmV0dXJuIHRydWU7DQorICAgIHJldHVy
biBmYWxzZTsNCit9DQorDQorYm9vbCBQbHVnaW5EYXRhOjpzdXBwb3J0c01pbWVUeXBlSWdub3Jp
bmdXaWxkQ2FyZHMoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgY29uc3QNCit7DQorICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBtX21pbWVzLnNpemUoKTsgKytpKQ0KICAgICAgICAgaWYgKG1f
bWltZXNbaV0tPnR5cGUgPT0gbWltZVR5cGUpDQogICAgICAgICAgICAgcmV0dXJuIHRydWU7DQog
ICAgIHJldHVybiBmYWxzZTsNCkluZGV4OiBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YS5oDQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09DQotLS0gV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGEuaAkocmV2aXNpb24gNDIx
NzEpDQorKysgV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGEuaAkod29ya2luZyBjb3B5KQ0KQEAg
LTU2LDYgKzU2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgew0KICAgICAgICAgY29uc3QgVmVjdG9y
PE1pbWVDbGFzc0luZm8qPiYgbWltZXMoKSBjb25zdCB7IHJldHVybiBtX21pbWVzOyB9DQogDQog
ICAgICAgICBib29sIHN1cHBvcnRzTWltZVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgY29u
c3Q7DQorICAgICAgICBib29sIHN1cHBvcnRzTWltZVR5cGVJZ25vcmluZ1dpbGRDYXJkcyhjb25z
dCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdDsNCiAgICAgICAgIFN0cmluZyBwbHVnaW5OYW1lRm9y
TWltZVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgY29uc3Q7DQogDQogICAgICAgICBzdGF0
aWMgdm9pZCByZWZyZXNoKCk7DQpJbmRleDogV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGFiYXNl
LmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHAJ
KHJldmlzaW9uIDQyMTcxKQ0KKysrIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHAJ
KHdvcmtpbmcgY29weSkNCkBAIC0xNjIsOCArMTYyLDE3IEBAIFBsdWdpblBhY2thZ2UqIFBsdWdp
bkRhdGFiYXNlOjpwbHVnaW5Gb3INCiAgICAgVmVjdG9yPFBsdWdpblBhY2thZ2UqLCAyPiBwbHVn
aW5DaG9pY2VzOw0KIA0KICAgICBmb3IgKFBsdWdpblNldDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBt
X3BsdWdpbnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7DQotICAgICAgICBpZiAoKCppdCkt
Pm1pbWVUb0Rlc2NyaXB0aW9ucygpLmNvbnRhaW5zKGtleSkpDQotICAgICAgICAgICAgcGx1Z2lu
Q2hvaWNlcy5hcHBlbmQoKCppdCkuZ2V0KCkpOw0KKyAgICAgICAgUGx1Z2luUGFja2FnZSogcGFj
a2FnZSA9ICgqaXQpLmdldCgpOw0KKw0KKyAgICAgICAgY29uc3QgTUlNRVRvRGVzY3JpcHRpb25z
TWFwJiBtaW1lVG9EZXNjcmlwdGlvbnMgPSBwYWNrYWdlLT5taW1lVG9EZXNjcmlwdGlvbnMoKTsN
CisNCisgICAgICAgIE1JTUVUb0Rlc2NyaXB0aW9uc01hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0g
bWltZVRvRGVzY3JpcHRpb25zLmVuZCgpOw0KKyAgICAgICAgDQorICAgICAgICBmb3IgKE1JTUVU
b0Rlc2NyaXB0aW9uc01hcDo6Y29uc3RfaXRlcmF0b3IgbWltZUl0ZXIgPSBtaW1lVG9EZXNjcmlw
dGlvbnMuYmVnaW4oKTsgbWltZUl0ZXIgIT0gZW5kOyArK21pbWVJdGVyKSB7DQorICAgICAgICAg
ICAgLy8gV2UgY2hlY2sgZm9yIGV4YWN0IG1pbWUgdHlwZSBtYXRjaGVzIGFuZCB3aWxkY2FyZCAo
KikgbWF0Y2hlcy4gDQorICAgICAgICAgICAgaWYgKG1pbWVJdGVyLT5maXJzdCA9PSBrZXkgfHwg
bWltZUl0ZXItPmZpcnN0ID09ICIqIikNCisgICAgICAgICAgICAgICAgcGx1Z2luQ2hvaWNlcy5h
cHBlbmQocGFja2FnZSk7DQorICAgICAgICB9DQogICAgIH0NCiANCiAgICAgaWYgKHBsdWdpbkNo
b2ljZXMuaXNFbXB0eSgpKQ0KSW5kZXg6IFdlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luUGFja2Fn
ZVdpbi5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblBhY2th
Z2VXaW4uY3BwCShyZXZpc2lvbiA0MjE3MSkNCisrKyBXZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdp
blBhY2thZ2VXaW4uY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtODEsOSArODEsMTQgQEAgYm9vbCBQ
bHVnaW5QYWNrYWdlOjppc1BsdWdpbkJsYWNrbGlzdGVkKA0KIA0KICAgICAgICAgaWYgKGNvbXBh
cmVGaWxlVmVyc2lvbihzbFBsdWdpbk1pblJlcXVpcmVkKSA8IDApDQogICAgICAgICAgICAgcmV0
dXJuIHRydWU7DQotICAgIH0gZWxzZSBpZiAoZmlsZU5hbWUoKSA9PSAibnBtb3pheC5kbGwiKQ0K
KyAgICB9IGVsc2UgaWYgKGZpbGVOYW1lKCkgPT0gIm5wbW96YXguZGxsIikgew0KICAgICAgICAg
Ly8gQnVnIDE1MjE3OiBNb3ppbGxhIEFjdGl2ZVggY29udHJvbCBjb21wbGFpbnMgYWJvdXQgbWlz
c2luZyB4cGNvbV9jb3JlLmRsbA0KICAgICAgICAgcmV0dXJuIHRydWU7DQorICAgIH0gZWxzZSBp
ZiAoZmlsZU5hbWUoKSA9PSAibnBudWwzMi5kbGwiKSB7DQorICAgICAgICAvLyBXZSBkb24ndCB3
YW50IHRvIGxvYWQgdGhlIE1vemlsbGEgbnVsbCBwbHVnaW4sIHdoaWNoIGlzIHVzZWQgdG8gaW5z
dGFsbA0KKyAgICAgICAgLy8gTlBBUEkgcGx1Z2lucy4NCisgICAgICAgIHJldHVybiB0cnVlOw0K
KyAgICB9DQogDQogICAgIHJldHVybiBmYWxzZTsNCiB9DQpJbmRleDogV2ViS2l0L21hYy9DaGFu
Z2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gNDIy
MDgpDQorKysgV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkNCkBAIC0xLDMgKzEs
MTggQEANCisyMDA5LTA0LTAzICBpeWVuZ2FyICA8YW5hbnRhQGNocm9taXVtLm9yZz4NCisNCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgQWRkZWQgc3Vw
cG9ydCBmb3IgcmV0dXJuaW5nIHBsdWdpbnMgd2hpY2ggc3VwcG9ydCB0aGUgd2lsZGNhcmQgbWlt
ZSB0eXBlICgqKS4NCisgICAgICAgIFRoaXMgaXMgb24gdGhlIHNhbWUgbGluZXMgYXMgRmlyZWZv
eCwgd2hpY2ggdXNlcyBhIHdpbGRjYXJkIHBsdWdpbiAobnBudWwzMi5kbGwpIGZvcg0KKyAgICAg
ICAgcGx1Z2luIGluc3RhbGxhdGlvbi4gVGhlIGNoYW5nZXMgdG8gc3VwcG9ydCB3aWxkY2FyZCBt
aW1lIHR5cGUgbWF0Y2hpbmcgYXJlIGluDQorICAgICAgICBQbHVnaW5EYXRhYmFzZS5jcHAgd2hp
Y2ggaXMgdXNlZCBieSBXZWJraXQncyBwbHVnaW4gaW1wbGVtZW50YXRpb24sIGFuZA0KKyAgICAg
ICAgUGx1Z2luRGF0YS5jcHAvLmggd2hpY2ggaXMgdXNlZCBieSBDaHJvbWl1bS4gDQorDQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5ODgNCisNCisg
ICAgICAgICogUGx1Z2lucy9XZWJQbHVnaW5EYXRhYmFzZS5tbToNCisgICAgICAgICgtW1dlYlBs
dWdpbkRhdGFiYXNlIHBsdWdpbkZvcktleTp3aXRoRW51bWVyYXRvclNlbGVjdG9yOl0pOg0KKw0K
IDIwMDktMDQtMDMgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPg0KIA0KICAgICAg
ICAgUmV2aWV3ZWQgYnkgRGF2aWQgSHlhdHQuDQpJbmRleDogV2ViS2l0L21hYy9QbHVnaW5zL1dl
YlBsdWdpbkRhdGFiYXNlLm1tDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L21hYy9QbHVnaW5zL1dl
YlBsdWdpbkRhdGFiYXNlLm1tCShyZXZpc2lvbiA0MjE3MSkNCisrKyBXZWJLaXQvbWFjL1BsdWdp
bnMvV2ViUGx1Z2luRGF0YWJhc2UubW0JKHdvcmtpbmcgY29weSkNCkBAIC05OSw3ICs5OSw5IEBA
IHN0YXRpYyB2b2lkIGNoZWNrQ2FuZGlkYXRlKFdlYkJhc2VQbHVnaW4NCiAgICAga2V5ID0gW2tl
eSBsb3dlcmNhc2VTdHJpbmddOw0KIA0KICAgICB3aGlsZSAoKHBsdWdpbiA9IFtwbHVnaW5FbnVt
ZXJhdG9yIG5leHRPYmplY3RdKSAhPSBuaWwpIHsNCi0gICAgICAgIGlmIChbW1twbHVnaW4gcGVy
Zm9ybVNlbGVjdG9yOmVudW1lcmF0b3JTZWxlY3Rvcl0gYWxsT2JqZWN0c10gY29udGFpbnNPYmpl
Y3Q6a2V5XSkgew0KKyAgICAgICAgTlNBcnJheSAqcGx1Z2luTWltZVR5cGVzID0gW1twbHVnaW4g
cGVyZm9ybVNlbGVjdG9yOmVudW1lcmF0b3JTZWxlY3Rvcl0gYWxsT2JqZWN0c107DQorICAgIA0K
KyAgICAgICAgaWYgKFtwbHVnaW5NaW1lVHlwZXMgY29udGFpbnNPYmplY3Q6a2V5XSB8fCBbcGx1
Z2luTWltZVR5cGVzIGNvbnRhaW5zT2JqZWN0OkAiKiJdKSB7DQogICAgICAgICAgICAgaWYgKFtw
bHVnaW4gaXNLaW5kT2ZDbGFzczpbV2ViUGx1Z2luUGFja2FnZSBjbGFzc11dKSANCiAgICAgICAg
ICAgICAgICAgY2hlY2tDYW5kaWRhdGUoJndlYlBsdWdpbiwgJnBsdWdpbik7DQogI2lmIEVOQUJM
RShORVRTQ0FQRV9QTFVHSU5fQVBJKQ0KSW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZw0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KLS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gNDIyMDgpDQorKysg
V2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpAQCAtMSwzICsxLDIxIEBADQor
MjAwOS0wNC0wMyAgaXllbmdhciAgPGFuYW50YUBjaHJvbWl1bS5vcmc+DQorDQorICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgIEFkZGVkIHRoZSB3aWxkY2Fy
ZCBtaW1lIHR5cGUgKCopIHRvIHRoZSBsaXN0IG9mIG1pbWUgdHlwZXMgc3VwcG9ydGVkIGJ5IHRo
ZQ0KKyAgICAgICAgbGF5b3V0IHRlc3QgcGx1Z2luLiBUaGUgcGx1Z2luIGVtaXRzIGEgdHJhY2Ug
aW4gaXRzIE5QUF9OZXcgaW1wbGVtZW50YXRpb24NCisgICAgICAgIG9uIHJlY2VpdmluZyB0aGUg
YXBwbGljYXRpb24veC13ZWJraXQtdGVzdC1uZXRzY2FwZS13aWxkY2FyZC1wbHVnaW4gbWltZSB0
eXBlLA0KKyAgICAgICAgaW5kaWNhdGluZyB0aGF0IHRoZSB3aWxkY2FyZCBwbHVnaW4gbWltZSB0
eXBlIG1hdGNoIHN1Y2NlZWRlZC4NCisNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNDk4OA0KKw0KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0
TmV0c2NhcGVQbHVnSW4uc3VicHJvai9JbmZvLnBsaXN0Og0KKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4uc3VicHJvai9tYWluLmNwcDoNCisgICAgICAgIChOUFBf
TmV3KToNCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9U
ZXN0TmV0c2NhcGVQbHVnaW4ucmM6DQorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0
TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHA6DQorICAgICAgICAoTlBQX05ldyk6DQorDQogMjAwOS0w
NC0wMiAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+DQogDQogICAgICAgICBCdWlsZCBm
aXggZm9yIFdpbmRvd3MgbWFjaGluZXMgdGhhdCBkb24ndCBoYXZlIFdlYktpdFRvb2xzL1NjaXB0
cyBpbg0KSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJ
bi5zdWJwcm9qL0luZm8ucGxpc3QNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4uc3VicHJvai9JbmZvLnBsaXN0CShyZXZpc2lvbiA0
MjE3MSkNCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4u
c3VicHJvai9JbmZvLnBsaXN0CSh3b3JraW5nIGNvcHkpDQpAQCAtNTMsNiArNTMsMTUgQEANCiAJ
CQk8a2V5PldlYlBsdWdpblR5cGVEZXNjcmlwdGlvbjwva2V5Pg0KIAkJCTxzdHJpbmc+dGVzdCBu
ZXRzY2FwZSBjb250ZW50PC9zdHJpbmc+DQogCQk8L2RpY3Q+DQorCQk8a2V5Pio8L2tleT4NCisJ
CTxkaWN0Pg0KKwkJCTxrZXk+V2ViUGx1Z2luRXh0ZW5zaW9uczwva2V5Pg0KKwkJCTxhcnJheT4N
CisJCQkJPHN0cmluZz53aWxkY2FyZHBsdWdpbjwvc3RyaW5nPg0KKwkJCTwvYXJyYXk+DQorCQkJ
PGtleT5XZWJQbHVnaW5UeXBlRGVzY3JpcHRpb248L2tleT4NCisJCQk8c3RyaW5nPnRlc3QgbmV0
c2NhcGUgd2lsZGNhcmQgcGx1Z2luPC9zdHJpbmc+DQorCQk8L2RpY3Q+DQogCTwvZGljdD4NCiAJ
PGtleT5XZWJQbHVnaW5OYW1lPC9rZXk+DQogCTxzdHJpbmc+V2ViS2l0IFRlc3QgUGx1Z0luPC9z
dHJpbmc+DQpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1
Z0luLnN1YnByb2ovbWFpbi5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4uc3VicHJvai9tYWluLmNwcAkocmV2aXNpb24gNDIx
NzEpDQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1
YnByb2ovbWFpbi5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0xNjUsNiArMTY1LDExIEBAIE5QRXJy
b3IgTlBQX05ldyhOUE1JTUVUeXBlIHBsdWdpblR5cGUsIE4NCiAgICAgICAgIA0KICAgICAgICAg
b2JqLT5ldmVudE1vZGVsID0gTlBFdmVudE1vZGVsQ29jb2E7DQogICAgIH0NCisNCisgICAgaWYg
KHN0cmNhc2VjbXAocGx1Z2luVHlwZSwgImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2Nh
cGUtd2lsZGNhcmQtcGx1Z2luIikgPT0gMCkgew0KKyAgICAgICAgbG9nKGluc3RhbmNlLCAiTlBB
UEkgV2lsZGNhcmQgcGx1Z2luIGluc3RhbmNlIGxvYWRlZCIpOw0KKyAgICAgICAgZmZsdXNoKHN0
ZG91dCk7DQorICAgIH0NCiAgICAgDQogICAgIGJyb3dzZXItPnNldHZhbHVlKGluc3RhbmNlLCBO
UFBWcGx1Z2luRXZlbnRNb2RlbCwgKHZvaWQgKilvYmotPmV2ZW50TW9kZWwpOw0KICAgICByZXR1
cm4gTlBFUlJfTk9fRVJST1I7DQpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L1Rlc3ROZXRzY2FwZVBsdWdpbi9UZXN0TmV0c2NhcGVQbHVnaW4ucmMNCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0t
LSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL1Rlc3RO
ZXRzY2FwZVBsdWdpbi5yYwkocmV2aXNpb24gNDIxNzEpDQorKysgV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9UZXN0TmV0c2NhcGVQbHVnaW4ucmMJKHdv
cmtpbmcgY29weSkNCkBAIC03Myw3ICs3Myw3IEBAIEJFR0lODQogICAgICAgICAgICAgVkFMVUUg
IkZpbGVEZXNjcmlwdGlvbiIsICJUZXN0TmV0c2NhcGVQbHVnSW4iDQogICAgICAgICAgICAgVkFM
VUUgIkZpbGVPcGVuTmFtZSIsICJ0ZXN0IG5ldHNjYXBlIGNvbnRlbnQiDQogICAgICAgICAgICAg
VkFMVUUgIkxlZ2FsQ29weXJpZ2h0IiwgIkNvcHlyaWdodCBBcHBsZSBJbmMuIDIwMDctMjAwOSIN
Ci0gICAgICAgICAgICBWQUxVRSAiTUlNRVR5cGUiLCAiYXBwbGljYXRpb24veC13ZWJraXQtdGVz
dC1uZXRzY2FwZSINCisgICAgICAgICAgICBWQUxVRSAiTUlNRVR5cGUiLCAiYXBwbGljYXRpb24v
eC13ZWJraXQtdGVzdC1uZXRzY2FwZXwqIg0KICAgICAgICAgICAgIFZBTFVFICJPcmlnaW5hbEZp
bGVuYW1lIiwgIm5wVGVzdE5ldHNjYXBlUGx1Z2luLmRsbCINCiAgICAgICAgICAgICBWQUxVRSAi
UHJvZHVjdE5hbWUiLCAiVGVzdE5ldHNjYXBlUGx1Z0luIg0KICAgICAgICAgRU5EDQpJbmRleDog
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9tYWluLmNw
cA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0
c2NhcGVQbHVnaW4vbWFpbi5jcHAJKHJldmlzaW9uIDQyMTcxKQ0KKysrIFdlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHAJKHdvcmtpbmcgY29w
eSkNCkBAIC04NSw3ICs4NSwxMiBAQCBOUEVycm9yIE5QUF9OZXcoTlBNSU1FVHlwZSBwbHVnaW5U
eXBlLCBODQogICAgICAgICAgICAgZWxzZSBpZiAoX3N0cmljbXAoYXJnbltpXSwgIm9uVVJMTm90
aWZ5IikgPT0gMCAmJiAhb2JqLT5vblVSTE5vdGlmeSkNCiAgICAgICAgICAgICAgICAgb2JqLT5v
blVSTE5vdGlmeSA9IF9zdHJkdXAoYXJndltpXSk7DQogICAgICAgICB9DQotICAgICAgICANCisN
CisgICAgICAgIGlmIChfc3RyaWNtcChwbHVnaW5UeXBlLCAiYXBwbGljYXRpb24veC13ZWJraXQt
dGVzdC1uZXRzY2FwZS13aWxkY2FyZC1wbHVnaW4iKSA9PSAwKSB7DQorICAgICAgICAgICAgcHJp
bnRmKCJDT05TT0xFIE1FU1NBR0U6IGxpbmUgMDogUExVR0lOOiBOUEFQSSBXaWxkY2FyZCBwbHVn
aW4gaW5zdGFuY2UgbG9hZGVkXG4iKTsNCisgICAgICAgICAgICBmZmx1c2goc3Rkb3V0KTsNCisg
ICAgICAgIH0NCisNCiAgICAgICAgIGluc3RhbmNlLT5wZGF0YSA9IG9iajsNCiAgICAgfQ0KICAg
ICANCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQyMjA4KQ0KKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQ0KQEAgLTEsMyArMSwxOCBAQA0KKzIwMDktMDQtMDMgIGl5ZW5nYXIg
IDxhbmFudGFAY2hyb21pdW0ub3JnPg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuDQorDQorICAgICAgICBBZGRlZCBhIGxheW91dCB0ZXN0IHdoaWNoIHZlcmlmaWVzIHdo
ZXRoZXIgdGhlIHdpbGRjYXJkIHBsdWdpbiBtaW1lIHR5cGUgbWF0Y2gNCisgICAgICAgIHN1Y2Nl
ZWRlZC4gVGhlIHBsdWdpbnMvcGx1Z2luLWphdmFzY3JpcHQtYWNjZXNzLmh0bWwgbGF5b3V0IHRl
c3QgaGFkIHRvIGJlDQorICAgICAgICByZS1iYXNlbGluZWQgdG8gYWNjb3VudCBmb3IgdGhlIHdp
bGRjYXJkIG1pbWUgdHlwZSBzdXBwb3J0ZWQgYnkgdGhlIGxheW91dCB0ZXN0DQorICAgICAgICBw
bHVnaW4uDQorICAgICAgICANCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yNDk4OA0KKw0KKyAgICAgICAgKiBwbHVnaW5zL25ldHNjYXBlLXBsdWdpbi13
aWxkY2FyZC1wbHVnaW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4NCisgICAgICAgICogcGx1Z2lucy9u
ZXRzY2FwZS1wbHVnaW4td2lsZGNhcmQtcGx1Z2luLmh0bWw6IEFkZGVkLg0KKyAgICAgICAgKiBw
bHVnaW5zL3BsdWdpbi1qYXZhc2NyaXB0LWFjY2Vzcy1leHBlY3RlZC50eHQ6DQorDQogMjAwOS0w
NC0wMyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4NCiANCiAgICAgICAg
IFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4NCkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL25l
dHNjYXBlLXBsdWdpbi13aWxkY2FyZC1wbHVnaW4tZXhwZWN0ZWQudHh0DQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot
LS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4td2lsZGNhcmQtcGx1Z2luLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkNCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL25ldHNjYXBl
LXBsdWdpbi13aWxkY2FyZC1wbHVnaW4tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQ0KQEAgLTAs
MCArMSwzIEBADQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IFBMVUdJTjogTlBBUEkgV2lsZGNh
cmQgcGx1Z2luIGluc3RhbmNlIGxvYWRlZA0KKw0KK1RoaXMgdGVzdHMgdGhhdCBhIHBsdWdpbiB3
aGljaCBzdXBwb3J0cyB0aGUgd2lsZGNhcmQgbWltZSB0eXBlICogaXMgbG9hZGVkIGNvcnJlY3Rs
eS4NCg0KUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGx1Z2lucy9uZXRzY2FwZS1w
bHVnaW4td2lsZGNhcmQtcGx1Z2luLWV4cGVjdGVkLnR4dA0KX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KQWRkZWQ6IHN2
bjplb2wtc3R5bGUNCiAgICsgbmF0aXZlDQoNCkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL25l
dHNjYXBlLXBsdWdpbi13aWxkY2FyZC1wbHVnaW4uaHRtbA0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIExheW91
dFRlc3RzL3BsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXdpbGRjYXJkLXBsdWdpbi5odG1sCShyZXZp
c2lvbiAwKQ0KKysrIExheW91dFRlc3RzL3BsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXdpbGRjYXJk
LXBsdWdpbi5odG1sCShyZXZpc2lvbiAwKQ0KQEAgLTAsMCArMSwxNiBAQA0KKzxodG1sPg0KKzxo
ZWFkPg0KKzxzY3JpcHQ+DQorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsN
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsNCisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLnNldFdpbmRvd0lzS2V5KGZhbHNlKTsNCisgICAgfQ0KKyAgICAN
Cis8L3NjcmlwdD4NCis8Ym9keT4NCis8ZW1iZWQgaWQ9InRlc3RQbHVnaW4iIHR5cGU9ImFwcGxp
Y2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUtd2lsZGNhcmQtcGx1Z2luIiB3aWR0aD0iMjAw
IiBoZWlnaHQ9IjIwMCI+PC9lbWJlZD4NCis8ZGl2Pg0KKyAgICBUaGlzIHRlc3RzIHRoYXQgYSBw
bHVnaW4gd2hpY2ggc3VwcG9ydHMgdGhlIHdpbGRjYXJkIG1pbWUgdHlwZSAqIGlzIGxvYWRlZCBj
b3JyZWN0bHkuDQorPC9kaXY+DQorPC9ib2R5Pg0KKzwvaHRtbD4NCg0KUHJvcGVydHkgY2hhbmdl
cyBvbjogTGF5b3V0VGVzdHMvcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4td2lsZGNhcmQtcGx1Z2lu
Lmh0bWwNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18NCkFkZGVkOiBzdm46ZW9sLXN0eWxlDQogICArIExGDQoNCkluZGV4
OiBMYXlvdXRUZXN0cy9wbHVnaW5zL3BsdWdpbi1qYXZhc2NyaXB0LWFjY2Vzcy1leHBlY3RlZC50
eHQNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NCi0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL3BsdWdpbi1qYXZhc2NyaXB0
LWFjY2Vzcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQyMTcxKQ0KKysrIExheW91dFRlc3RzL3Bs
dWdpbnMvcGx1Z2luLWphdmFzY3JpcHQtYWNjZXNzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQ0KQEAgLTE3LDYgKzE3LDE3IEBAIFBsdWdpbi5pdGVtKCkgd29ya3MuDQogDQogUGx1Z2luLm5h
bWVkSXRlbSgpIHdvcmtzLg0KIA0KK1R5cGU6ICoNCisNCitEZXNjcmlwdGlvbjogdGVzdCBuZXRz
Y2FwZSB3aWxkY2FyZCBwbHVnaW4NCisNCitTdWZmaXhlczogd2lsZGNhcmRwbHVnaW4NCisNCisN
CitQbHVnaW4uaXRlbSgpIHdvcmtzLg0KKw0KK1BsdWdpbi5uYW1lZEl0ZW0oKSB3b3Jrcy4NCisN
CiBQbHVnaW5BcnJheS5pdGVtKCkgd29ya3MuDQogDQogUGx1Z2luQXJyYXkubmFtZWRJdGVtKCkg
d29ya3MuDQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>