<?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>144320</bug_id>
          
          <creation_ts>2015-04-28 03:02:10 -0700</creation_ts>
          <short_desc>URL paths should not be normalized when encoded</short_desc>
          <delta_ts>2024-08-28 01:46:18 -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>Text</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>CONFIGURATION CHANGED</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="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ahmad.saleem792</cc>
    
    <cc>annevk</cc>
    
    <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1089450</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-04-28 03:02:10 -0700</bug_when>
    <thetext>I noticed that some files containing the character &apos;ñ&apos; were not loaded when used in img or object tags. The problem is that the character &apos;ñ&apos; is encoded in the filename as U+006E U+0303. The URL encodes the given path normalizing the string, which converts the &apos;ñ&apos; to U+00F1. When the network backend tries to load the URL, it fails because the resource is not found at the given path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089451</commentid>
    <comment_count>1</comment_count>
      <attachid>251834</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-04-28 03:11:45 -0700</bug_when>
    <thetext>Created attachment 251834
Patch

There was a FIXME in TextEncoding::encode() wondering if encode(9 is the best place for the normalization. This bug proves, it indeed depends on the caller, but I think it&apos;s very convenient that it happens in encode(), so we can add a parameter to let the caller decide. I&apos;ve added a text case to URL unit test.

**FAIL** URLTest.URLPathEnconding

../../Tools/TestWebKitAPI/Tests/WebCore/URL.cpp:97
Value of: url.lastPathComponent()
  Actual: test-ni%C3%B1o.png
Expected: encodeWithURLEscapeSequences(path)
Which is: test-nin%CC%83o.png

This is what happens without the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089516</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-28 08:15:36 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; but I think it&apos;s very convenient that it happens in encode()

Really? I’m not so sure. How many different call sites do we have for encode()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089517</commentid>
    <comment_count>3</comment_count>
      <attachid>251834</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-28 08:16:39 -0700</bug_when>
    <thetext>Comment on attachment 251834
Patch

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

&gt; Source/WebCore/platform/text/TextEncoding.h:73
&gt; +        enum EncodeNormalization { NormalizeBeforeEncoding, DoNotNormalizeBeforeEncoding };
&gt; +        CString encode(StringView, UnencodableHandling, EncodeNormalization = NormalizeBeforeEncoding) const;

This is OK, but I’d also like us to consider doing the normalization with a separate function as the comment suggested. I’d like to understand how many different call sites there are that do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089531</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-04-28 08:48:03 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; but I think it&apos;s very convenient that it happens in encode()
&gt; 
&gt; Really? I’m not so sure. How many different call sites do we have for
&gt; encode()?

Not because they are many, but because of StringView -&gt; Uchar conversions. Le me check all the callers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089537</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-04-28 08:57:36 -0700</bug_when>
    <thetext>WebCore/fileapi/WebKitBlobBuilder.cpp: BlobBuilder::append()
WebCore/html/FormDataList.cpp: FormDataList::appendString()
WebCore/page/PageSerializer.cpp: PageSerializer::serializeFrame() and PageSerializer::serializeCSSStyleSheet()
WebCore/platform/URL.cpp: 
WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource()
WebCore/platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp: harfBuzzGetGlyph()
WebCore/platform/network/DataURL.cpp: handleDataURL()
WebCore/platform/network/FormDataBuilder.cpp: FormDataBuilder::addFilenameToMultiPartHeader()
WebCore/xml/XMLHttpRequest.cpp: XMLHttpRequest::send()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089549</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-28 09:23:52 -0700</bug_when>
    <thetext>So I think we have two questions:

1) If we did want to make normalization separate, what is a good idiom that would keep things brief and efficient and just use the StringView as-is without memory allocation when no normalization is needed?

2) Is normalization helpful for all those other clients?

I suppose we can leave it inside encode for now, but we should make sure that all those other call sites want normalization and have someone write test cases for them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089574</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-04-28 09:59:03 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; So I think we have two questions:
&gt; 
&gt; 1) If we did want to make normalization separate, what is a good idiom that
&gt; would keep things brief and efficient and just use the StringView as-is
&gt; without memory allocation when no normalization is needed?
&gt; 
&gt; 2) Is normalization helpful for all those other clients?
&gt; 
&gt; I suppose we can leave it inside encode for now, but we should make sure
&gt; that all those other call sites want normalization and have someone write
&gt; test cases for them.

Ok, I&apos;ll add a FIXME then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089875</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-04-28 20:56:46 -0700</bug_when>
    <thetext>This keeps coming up as something that looks like unusual behavior at s first glance, however this is an intentional behavior for compatibility. 

I expect that this change will break more than it fixes, because NFC is s lot more common in general. You have an example of a file and a server that only accepts the decomposed form, but do we know that it&apos;s more common than the opposite?

Mac is special here, because the platform uses decomposed form. But consider the case where a user types into a search form, and the form is submitted as a GET. Currently, we normalize to NFC, and the server gets the same request from Safari as it gets from e.g. Firefox on Windows. With the proposed change, the request will be different, and a server that doesn&apos;t implement normalization will misbehave.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089900</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-04-28 23:04:57 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; This keeps coming up as something that looks like unusual behavior at s
&gt; first glance, however this is an intentional behavior for compatibility. 
&gt; 
&gt; I expect that this change will break more than it fixes, because NFC is s
&gt; lot more common in general. You have an example of a file and a server that
&gt; only accepts the decomposed form, but do we know that it&apos;s more common than
&gt; the opposite?

Not exactly, this is not about client/server normalizing or not. The file itself in the file system can be normalized or not, in the particular case of a filename containing a &apos;ñ&apos;, it can be encoded as U+006E U+0303, or U+00F1, but they end up being different files, because the bytes are different, even if the visual representation is the same. This was the problem I was having, a server containing files in the file system with &apos;ñ&apos; encoded as U+006E U+0303, but the URL in WebKit was normalized to U+00F1 and the files failed mto load by the network bacckend. The very same files worked in chrome and firefox.

&gt; Mac is special here, because the platform uses decomposed form. But consider
&gt; the case where a user types into a search form, and the form is submitted as
&gt; a GET. Currently, we normalize to NFC, and the server gets the same request
&gt; from Safari as it gets from e.g. Firefox on Windows. With the proposed
&gt; change, the request will be different, and a server that doesn&apos;t implement
&gt; normalization will misbehave.

Form data decoding hasn&apos;t changed, except for filenames, so what the user types in a search form is still normalized.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089903</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-04-28 23:22:48 -0700</bug_when>
    <thetext>&gt; The file itself in the file system can be normalized or not, in the particular case of a filename containing a &apos;ñ&apos;, it can be encoded as U+006E U+0303, or U+00F1, but they end up being different files, because the bytes are different, even if the visual representation is the same.

Yes, I understand that this is what you are saying. This is a bug in server&apos;s file system - everything that supports Unicode must treat different normalization forms as equivalent, so a filesystem may not have two files whose names only differ in normalization form.

&gt; The very same files worked in chrome and firefox.

Yes, they work for you in a test case, but they won&apos;t work in other scenarios, most notably those that involve user input on a Mac. This is as I said, the behavior in WebKit is intentionally different to have a more common Unicode form on the wire. Windows browsers have the luxury of letting the bytes through unchanged because their OS and Internet both use the same form, but for Safari, it is not as straightforward.

&gt; Form data decoding hasn&apos;t changed, except for filenames, so what the user types in a search form is still normalized.

The changes in encodeRelativeString() are quite confusing, I&apos;m not sure if that&apos;s correct. There is some &quot;otherDecoded&quot; string that is counter-intuitively a result of calling encode(), and that&apos;s separate from where the path is handled.

Another change in this patch is that filenames in form data are not encoded. This means that a file uploaded from Mac will retain the custom HFS normalization form that is not used anywhere else - how if that the right thing to do?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089904</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-04-28 23:23:47 -0700</bug_when>
    <thetext>&gt; filenames in form data are not encoded

I meant, not normalized.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089908</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-04-28 23:49:10 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; &gt; The file itself in the file system can be normalized or not, in the particular case of a filename containing a &apos;ñ&apos;, it can be encoded as U+006E U+0303, or U+00F1, but they end up being different files, because the bytes are different, even if the visual representation is the same.
&gt; 
&gt; Yes, I understand that this is what you are saying. This is a bug in
&gt; server&apos;s file system - everything that supports Unicode must treat different
&gt; normalization forms as equivalent, so a filesystem may not have two files
&gt; whose names only differ in normalization form.

I don&apos;t think Linux and the most common file systems used in Linux know anything about encoding, filenames are just bytes (only exceptions are 0 and /, I think), so two files with different bytes in their name are just different. It seems HFS does care about encodings and normalization, I didn&apos;t know it. So, maybe this change should be made specific to Linux (or other unix systems, except mac)

&gt; &gt; The very same files worked in chrome and firefox.
&gt; 
&gt; Yes, they work for you in a test case, but they won&apos;t work in other
&gt; scenarios, most notably those that involve user input on a Mac. This is as I
&gt; said, the behavior in WebKit is intentionally different to have a more
&gt; common Unicode form on the wire. Windows browsers have the luxury of letting
&gt; the bytes through unchanged because their OS and Internet both use the same
&gt; form, but for Safari, it is not as straightforward.

Well, I isolated the problem in a test case, but the issue was happening in real cases. It&apos;s not that the server doesn&apos;t normalize the filenames, the server just uses what there&apos;s in the filesystem.

&gt; &gt; Form data decoding hasn&apos;t changed, except for filenames, so what the user types in a search form is still normalized.
&gt; 
&gt; The changes in encodeRelativeString() are quite confusing, I&apos;m not sure if
&gt; that&apos;s correct. There is some &quot;otherDecoded&quot; string that is
&gt; counter-intuitively a result of calling encode(), and that&apos;s separate from
&gt; where the path is handled.
&gt; 
&gt; Another change in this patch is that filenames in form data are not encoded.
&gt; This means that a file uploaded from Mac will retain the custom HFS
&gt; normalization form that is not used anywhere else - how if that the right
&gt; thing to do?

I assumed all file systems handled files as just bytes, I didn&apos;t know HFS worked differently. We need to make this depending on the platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089911</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-04-29 00:11:05 -0700</bug_when>
    <thetext>With a quick web search, it appears that on Windows and Linux, normalization is basically left to input methods, and they don&apos;t consistently produce NFC. This means that a filename typed on one system will not necessarily match the same filename typed on another.

This makes me wonder if we actually need to standardize on WebKit behavior of having a well defined normalization form on the wire. It doesn&apos;t seem all that Mac specific any more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111232</commentid>
    <comment_count>14</comment_count>
      <attachid>257254</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-22 02:07:33 -0700</bug_when>
    <thetext>Created attachment 257254
Updated patch

Updated patch to do the normalization or not depending on the platform. Also removed the form data filename, as I&apos;m not sure about that case. Darin, is it correct to assume that PLATFORM(COCOA) means HFS?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111411</commentid>
    <comment_count>15</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-07-22 13:56:21 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Updated patch to do the normalization or not depending on the platform. Also
&gt; removed the form data filename, as I&apos;m not sure about that case. Darin, is
&gt; it correct to assume that PLATFORM(COCOA) means HFS?

It’s not correct to assume that. Macs support NFS, for example.

It’s true that most older Unix systems have filenames that are an arbitrary string of bytes; the typical restriction is simply that none of the bytes can be &apos;\0&apos; or &apos;/&apos;. But note that the string of bytes can’t necessarily be converted into a sequence of UTF-16 code points. There could easily be a filename that’s not a valid UTF-8 sequence. How would we handle that?

When we are talking about URLs, what matters is the file system on the server, not on the client.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111609</commentid>
    <comment_count>16</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-23 01:15:54 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; Updated patch to do the normalization or not depending on the platform. Also
&gt; &gt; removed the form data filename, as I&apos;m not sure about that case. Darin, is
&gt; &gt; it correct to assume that PLATFORM(COCOA) means HFS?
&gt; 
&gt; It’s not correct to assume that. Macs support NFS, for example.
&gt; 
&gt; It’s true that most older Unix systems have filenames that are an arbitrary
&gt; string of bytes; the typical restriction is simply that none of the bytes
&gt; can be &apos;\0&apos; or &apos;/&apos;. But note that the string of bytes can’t necessarily be
&gt; converted into a sequence of UTF-16 code points. There could easily be a
&gt; filename that’s not a valid UTF-8 sequence. How would we handle that?
&gt; 

So, that&apos;s another reason not to normalize filenames in URL, no?

&gt; When we are talking about URLs, what matters is the file system on the
&gt; server, not on the client.

Oops, of course, you are right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125675</commentid>
    <comment_count>17</comment_count>
      <attachid>251834</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-09-14 11:14:27 -0700</bug_when>
    <thetext>Comment on attachment 251834
Patch

Cleared Darin Adler&apos;s review+ from obsolete attachment 251834 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874126</commentid>
    <comment_count>18</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2022-06-04 04:34:20 -0700</bug_when>
    <thetext>I think Darin&apos;s patch based on last Comment got landed.

https://github.com/WebKit/WebKit/commit/7e077530d958327a7716853db6dade3e6f0e7ff5

Do we need this or it is about something else? Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874194</commentid>
    <comment_count>19</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2022-06-05 13:37:25 -0700</bug_when>
    <thetext>That patch landed in 2006, so it was a different change.

We had other discussions about the trade-offs of matching Windows behavior vs. round-tripping cleanliness in various contexts, and even something like a plan (normalizing text as it enters WebKit via system APIs including text input and file names), but I don&apos;t think that anything systemic got implemented yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2055872</commentid>
    <comment_count>20</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2024-08-28 01:46:18 -0700</bug_when>
    <thetext>This patch is attempting to change the URL parser which got substantially rewritten since 2015. Pretty sure we have a separate bug tracking the Unicode normalization that happens here and there.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251834</attachid>
            <date>2015-04-28 03:11:45 -0700</date>
            <delta_ts>2015-09-14 11:14:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>url-normalized.diff</filename>
            <type>text/plain</type>
            <size>9861</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjYWY0OGE3Li4xYjhjMTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTUtMDQtMjggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFVSTCBwYXRocyBzaG91bGQgbm90IGJlIG5vcm1hbGl6ZWQgd2hlbiBlbmNv
ZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQz
MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJIG5v
dGljZWQgdGhhdCBzb21lIGZpbGVzIGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlciAnw7EnIHdlcmUg
bm90CisgICAgICAgIGxvYWRlZCB3aGVuIHVzZWQgaW4gaW1nIG9yIG9iamVjdCB0YWdzLiBUaGUg
cHJvYmxlbSBpcyB0aGF0IHRoZQorICAgICAgICBjaGFyYWN0ZXIgJ8OxJyBpcyBlbmNvZGVkIGlu
IHRoZSBmaWxlbmFtZSBhcyBVKzAwNkUgVSswMzAzLiBUaGUgVVJMCisgICAgICAgIGVuY29kZXMg
dGhlIGdpdmVuIHBhdGggbm9ybWFsaXppbmcgdGhlIHN0cmluZywgd2hpY2ggY29udmVydHMgdGhl
CisgICAgICAgICfDsScgdG8gVSswMEYxLiBXaGVuIHRoZSBuZXR3b3JrIGJhY2tlbmQgdHJpZXMg
dG8gbG9hZCB0aGUgVVJMLCBpdAorICAgICAgICBmYWlscyBiZWNhdXNlIHRoZSByZXNvdXJjZSBp
cyBub3QgZm91bmQgYXQgdGhlIGdpdmVuIHBhdGguIFRoaXMKKyAgICAgICAgcGF0Y2ggYWRkcyBh
biBvcHRpb24gdG8gY2FsbCBUZXh0RW5jb2Rpbmc6OmVuY29kZSgpIHdpdGhvdXQgZG9pbmcKKyAg
ICAgICAgYW55IG5vcm1hbGl6YXRpb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9VUkwuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6ZW5jb2RlUmVsYXRpdmVTdHJpbmcpOiBQYXNzIERvTm90Tm9ybWFs
aXplQmVmb3JlRW5jb2RpbmcKKyAgICAgICAgb3B0aW9uIHRvIFRleHRFbmNvZGluZzo6ZW5jb2Rl
KCkuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YUJ1aWxkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9ybURhdGFCdWlsZGVyOjphZGRGaWxlbmFtZVRvTXVsdGlQYXJ0SGVh
ZGVyKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dEVuY29kaW5nOjplbmNvZGUpOiBEbyB0aGUgbm9ybWFsaXph
dGlvbiBvciBub3QgZGVwZW5kaW5nIG9uCisgICAgICAgIHRoZSBnaXZlbiBFbmNvZGVOb3JtYWxp
emF0aW9uIG9wdGlvbi4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5oOgor
CiAyMDE1LTA0LTE3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbU09VUF0gQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgTmV0d29ya1By
b2Nlc3MgZGlzayBjYWNoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJM
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAKaW5kZXggZDE5ZTM4ZS4uOTdh
NjAzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCkBAIC0xODMyLDE0ICsxODMyLDE0IEBAIHN0
YXRpYyB2b2lkIGVuY29kZVJlbGF0aXZlU3RyaW5nKGNvbnN0IFN0cmluZyYgcmVsLCBjb25zdCBU
ZXh0RW5jb2RpbmcmIGVuY29kaW5nCiAgICAgfQogCiAgICAgaWYgKHBhdGhFbmQgPT0gLTEpIHsK
LSAgICAgICAgQ1N0cmluZyBkZWNvZGVkID0gcGF0aEVuY29kaW5nLmVuY29kZShTdHJpbmdWaWV3
KHMuZGF0YSgpLCBzLnNpemUoKSksIFVSTEVuY29kZWRFbnRpdGllc0ZvclVuZW5jb2RhYmxlcyk7
CisgICAgICAgIENTdHJpbmcgZGVjb2RlZCA9IHBhdGhFbmNvZGluZy5lbmNvZGUoU3RyaW5nVmll
dyhzLmRhdGEoKSwgcy5zaXplKCkpLCBVUkxFbmNvZGVkRW50aXRpZXNGb3JVbmVuY29kYWJsZXMs
IFRleHRFbmNvZGluZzo6RG9Ob3ROb3JtYWxpemVCZWZvcmVFbmNvZGluZyk7CiAgICAgICAgIG91
dHB1dC5yZXNpemUoZGVjb2RlZC5sZW5ndGgoKSk7CiAgICAgICAgIG1lbWNweShvdXRwdXQuZGF0
YSgpLCBkZWNvZGVkLmRhdGEoKSwgZGVjb2RlZC5sZW5ndGgoKSk7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgQ1N0cmluZyBwYXRoRGVjb2RlZCA9IHBhdGhFbmNvZGluZy5lbmNvZGUoU3RyaW5nVmll
dyhzLmRhdGEoKSwgcGF0aEVuZCksIFVSTEVuY29kZWRFbnRpdGllc0ZvclVuZW5jb2RhYmxlcyk7
CisgICAgICAgIENTdHJpbmcgcGF0aERlY29kZWQgPSBwYXRoRW5jb2RpbmcuZW5jb2RlKFN0cmlu
Z1ZpZXcocy5kYXRhKCksIHBhdGhFbmQpLCBVUkxFbmNvZGVkRW50aXRpZXNGb3JVbmVuY29kYWJs
ZXMsIFRleHRFbmNvZGluZzo6RG9Ob3ROb3JtYWxpemVCZWZvcmVFbmNvZGluZyk7CiAgICAgICAg
IC8vIFVuZW5jb2RhYmxlIGNoYXJhY3RlcnMgaW4gVVJMcyBhcmUgcmVwcmVzZW50ZWQgYnkgY29u
dmVydGluZwogICAgICAgICAvLyB0aGVtIHRvIFhNTCBlbnRpdGllcyBhbmQgZXNjYXBpbmcgbm9u
LWFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLgotICAgICAgICBDU3RyaW5nIG90aGVyRGVjb2RlZCA9
IGVuY29kaW5nLmVuY29kZShTdHJpbmdWaWV3KHMuZGF0YSgpICsgcGF0aEVuZCwgcy5zaXplKCkg
LSBwYXRoRW5kKSwgVVJMRW5jb2RlZEVudGl0aWVzRm9yVW5lbmNvZGFibGVzKTsKKyAgICAgICAg
Q1N0cmluZyBvdGhlckRlY29kZWQgPSBlbmNvZGluZy5lbmNvZGUoU3RyaW5nVmlldyhzLmRhdGEo
KSArIHBhdGhFbmQsIHMuc2l6ZSgpIC0gcGF0aEVuZCksIFVSTEVuY29kZWRFbnRpdGllc0ZvclVu
ZW5jb2RhYmxlcywgVGV4dEVuY29kaW5nOjpEb05vdE5vcm1hbGl6ZUJlZm9yZUVuY29kaW5nKTsK
IAogICAgICAgICBvdXRwdXQucmVzaXplKHBhdGhEZWNvZGVkLmxlbmd0aCgpICsgb3RoZXJEZWNv
ZGVkLmxlbmd0aCgpKTsKICAgICAgICAgbWVtY3B5KG91dHB1dC5kYXRhKCksIHBhdGhEZWNvZGVk
LmRhdGEoKSwgcGF0aERlY29kZWQubGVuZ3RoKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YUJ1aWxkZXIuY3BwCmluZGV4IDIxZmY1OGMuLjU4YjU0
ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGFC
dWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRh
QnVpbGRlci5jcHAKQEAgLTE0NCw3ICsxNDQsNyBAQCB2b2lkIEZvcm1EYXRhQnVpbGRlcjo6YWRk
RmlsZW5hbWVUb011bHRpUGFydEhlYWRlcihWZWN0b3I8Y2hhcj4mIGJ1ZmZlciwgY29uc3QgVAog
ICAgIC8vIEZJWE1FOiBUaGlzIGxvc2VzIGRhdGEgaXJyZXZlcnNpYmx5IGlmIHRoZSBmaWxlbmFt
ZSBpbmNsdWRlcyBjaGFyYWN0ZXJzIHlvdSBjYW4ndCBlbmNvZGUKICAgICAvLyBpbiB0aGUgd2Vi
c2l0ZSdzIGNoYXJhY3RlciBzZXQuCiAgICAgYXBwZW5kKGJ1ZmZlciwgIjsgZmlsZW5hbWU9XCIi
KTsKLSAgICBhcHBlbmRRdW90ZWRTdHJpbmcoYnVmZmVyLCBlbmNvZGluZy5lbmNvZGUoZmlsZW5h
bWUsIFF1ZXN0aW9uTWFya3NGb3JVbmVuY29kYWJsZXMpKTsKKyAgICBhcHBlbmRRdW90ZWRTdHJp
bmcoYnVmZmVyLCBlbmNvZGluZy5lbmNvZGUoZmlsZW5hbWUsIFF1ZXN0aW9uTWFya3NGb3JVbmVu
Y29kYWJsZXMsIFRleHRFbmNvZGluZzo6RG9Ob3ROb3JtYWxpemVCZWZvcmVFbmNvZGluZykpOwog
ICAgIGFwcGVuZChidWZmZXIsICciJyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvVGV4dEVuY29kaW5nLmNwcAppbmRleCAwNWRhODRiLi4wZjYzMGE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuY3BwCkBAIC02Myw3ICs2Myw3
IEBAIFN0cmluZyBUZXh0RW5jb2Rpbmc6OmRlY29kZShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3Qg
bGVuZ3RoLCBib29sIHN0b3BPbkVycm9yLCBiCiAgICAgcmV0dXJuIG5ld1RleHRDb2RlYygqdGhp
cyktPmRlY29kZShkYXRhLCBsZW5ndGgsIHRydWUsIHN0b3BPbkVycm9yLCBzYXdFcnJvcik7CiB9
CiAKLUNTdHJpbmcgVGV4dEVuY29kaW5nOjplbmNvZGUoU3RyaW5nVmlldyB0ZXh0LCBVbmVuY29k
YWJsZUhhbmRsaW5nIGhhbmRsaW5nKSBjb25zdAorQ1N0cmluZyBUZXh0RW5jb2Rpbmc6OmVuY29k
ZShTdHJpbmdWaWV3IHRleHQsIFVuZW5jb2RhYmxlSGFuZGxpbmcgaGFuZGxpbmcsIEVuY29kZU5v
cm1hbGl6YXRpb24gbm9ybWFsaXphdGlvbikgY29uc3QKIHsKICAgICBpZiAoIW1fbmFtZSkKICAg
ICAgICAgcmV0dXJuIENTdHJpbmcoKTsKQEAgLTcxLDMxICs3MSwyOCBAQCBDU3RyaW5nIFRleHRF
bmNvZGluZzo6ZW5jb2RlKFN0cmluZ1ZpZXcgdGV4dCwgVW5lbmNvZGFibGVIYW5kbGluZyBoYW5k
bGluZykgY29ucwogICAgIGlmICh0ZXh0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuICIiOwog
Ci0gICAgLy8gRklYTUU6IFdoYXQncyB0aGUgcmlnaHQgcGxhY2UgdG8gZG8gbm9ybWFsaXphdGlv
bj8KLSAgICAvLyBJdCdzIGEgbGl0dGxlIHN0cmFuZ2UgdG8gZG8gaXQgaW5zaWRlIHRoZSBlbmNv
ZGUgZnVuY3Rpb24uCi0gICAgLy8gUGVyaGFwcyBub3JtYWxpemF0aW9uIHNob3VsZCBiZSBhbiBl
eHBsaWNpdCBzdGVwIGRvbmUgYmVmb3JlIGNhbGxpbmcgZW5jb2RlLgotCiAgICAgYXV0byB1cGNv
bnZlcnRlZENoYXJhY3RlcnMgPSB0ZXh0LnVwY29udmVydGVkQ2hhcmFjdGVycygpOwogCiAgICAg
Y29uc3QgVUNoYXIqIHNvdXJjZSA9IHVwY29udmVydGVkQ2hhcmFjdGVyczsKICAgICBzaXplX3Qg
c291cmNlTGVuZ3RoID0gdGV4dC5sZW5ndGgoKTsKIAogICAgIFZlY3RvcjxVQ2hhcj4gbm9ybWFs
aXplZENoYXJhY3RlcnM7Ci0KLSAgICBVRXJyb3JDb2RlIGVyciA9IFVfWkVST19FUlJPUjsKLSAg
ICBpZiAodW5vcm1fcXVpY2tDaGVjayhzb3VyY2UsIHNvdXJjZUxlbmd0aCwgVU5PUk1fTkZDLCAm
ZXJyKSAhPSBVTk9STV9ZRVMpIHsKLSAgICAgICAgLy8gRmlyc3QgdHJ5IHVzaW5nIHRoZSBsZW5n
dGggb2YgdGhlIG9yaWdpbmFsIHN0cmluZywgc2luY2Ugbm9ybWFsaXphdGlvbiB0byBORkMgcmFy
ZWx5IGluY3JlYXNlcyBsZW5ndGguCi0gICAgICAgIG5vcm1hbGl6ZWRDaGFyYWN0ZXJzLmdyb3co
c291cmNlTGVuZ3RoKTsKLSAgICAgICAgaW50MzJfdCBub3JtYWxpemVkTGVuZ3RoID0gdW5vcm1f
bm9ybWFsaXplKHNvdXJjZSwgc291cmNlTGVuZ3RoLCBVTk9STV9ORkMsIDAsIG5vcm1hbGl6ZWRD
aGFyYWN0ZXJzLmRhdGEoKSwgc291cmNlTGVuZ3RoLCAmZXJyKTsKLSAgICAgICAgaWYgKGVyciA9
PSBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUikgewotICAgICAgICAgICAgZXJyID0gVV9aRVJPX0VS
Uk9SOwotICAgICAgICAgICAgbm9ybWFsaXplZENoYXJhY3RlcnMucmVzaXplKG5vcm1hbGl6ZWRM
ZW5ndGgpOwotICAgICAgICAgICAgbm9ybWFsaXplZExlbmd0aCA9IHVub3JtX25vcm1hbGl6ZShz
b3VyY2UsIHNvdXJjZUxlbmd0aCwgVU5PUk1fTkZDLCAwLCBub3JtYWxpemVkQ2hhcmFjdGVycy5k
YXRhKCksIG5vcm1hbGl6ZWRMZW5ndGgsICZlcnIpOworICAgIGlmIChub3JtYWxpemF0aW9uID09
IE5vcm1hbGl6ZUJlZm9yZUVuY29kaW5nKSB7CisgICAgICAgIFVFcnJvckNvZGUgZXJyID0gVV9a
RVJPX0VSUk9SOworICAgICAgICBpZiAodW5vcm1fcXVpY2tDaGVjayhzb3VyY2UsIHNvdXJjZUxl
bmd0aCwgVU5PUk1fTkZDLCAmZXJyKSAhPSBVTk9STV9ZRVMpIHsKKyAgICAgICAgICAgIC8vIEZp
cnN0IHRyeSB1c2luZyB0aGUgbGVuZ3RoIG9mIHRoZSBvcmlnaW5hbCBzdHJpbmcsIHNpbmNlIG5v
cm1hbGl6YXRpb24gdG8gTkZDIHJhcmVseSBpbmNyZWFzZXMgbGVuZ3RoLgorICAgICAgICAgICAg
bm9ybWFsaXplZENoYXJhY3RlcnMuZ3Jvdyhzb3VyY2VMZW5ndGgpOworICAgICAgICAgICAgaW50
MzJfdCBub3JtYWxpemVkTGVuZ3RoID0gdW5vcm1fbm9ybWFsaXplKHNvdXJjZSwgc291cmNlTGVu
Z3RoLCBVTk9STV9ORkMsIDAsIG5vcm1hbGl6ZWRDaGFyYWN0ZXJzLmRhdGEoKSwgc291cmNlTGVu
Z3RoLCAmZXJyKTsKKyAgICAgICAgICAgIGlmIChlcnIgPT0gVV9CVUZGRVJfT1ZFUkZMT1dfRVJS
T1IpIHsKKyAgICAgICAgICAgICAgICBlcnIgPSBVX1pFUk9fRVJST1I7CisgICAgICAgICAgICAg
ICAgbm9ybWFsaXplZENoYXJhY3RlcnMucmVzaXplKG5vcm1hbGl6ZWRMZW5ndGgpOworICAgICAg
ICAgICAgICAgIG5vcm1hbGl6ZWRMZW5ndGggPSB1bm9ybV9ub3JtYWxpemUoc291cmNlLCBzb3Vy
Y2VMZW5ndGgsIFVOT1JNX05GQywgMCwgbm9ybWFsaXplZENoYXJhY3RlcnMuZGF0YSgpLCBub3Jt
YWxpemVkTGVuZ3RoLCAmZXJyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEFTU0VSVChV
X1NVQ0NFU1MoZXJyKSk7CisKKyAgICAgICAgICAgIHNvdXJjZSA9IG5vcm1hbGl6ZWRDaGFyYWN0
ZXJzLmRhdGEoKTsKKyAgICAgICAgICAgIHNvdXJjZUxlbmd0aCA9IG5vcm1hbGl6ZWRMZW5ndGg7
CiAgICAgICAgIH0KLSAgICAgICAgQVNTRVJUKFVfU1VDQ0VTUyhlcnIpKTsKLQotICAgICAgICBz
b3VyY2UgPSBub3JtYWxpemVkQ2hhcmFjdGVycy5kYXRhKCk7Ci0gICAgICAgIHNvdXJjZUxlbmd0
aCA9IG5vcm1hbGl6ZWRMZW5ndGg7CiAgICAgfQogCiAgICAgcmV0dXJuIG5ld1RleHRDb2RlYygq
dGhpcyktPmVuY29kZShzb3VyY2UsIHNvdXJjZUxlbmd0aCwgaGFuZGxpbmcpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmgKaW5kZXggNGNiNzg5MC4uYTVlOWEz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2Rpbmcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5oCkBAIC02
OSw3ICs2OSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIHJldHVybiBkZWNv
ZGUoc3RyLCBsZW5ndGgsIGZhbHNlLCBpZ25vcmVkKTsKICAgICAgICAgfQogICAgICAgICBXRUJD
T1JFX0VYUE9SVCBTdHJpbmcgZGVjb2RlKGNvbnN0IGNoYXIqLCBzaXplX3QgbGVuZ3RoLCBib29s
IHN0b3BPbkVycm9yLCBib29sJiBzYXdFcnJvcikgY29uc3Q7Ci0gICAgICAgIENTdHJpbmcgZW5j
b2RlKFN0cmluZ1ZpZXcsIFVuZW5jb2RhYmxlSGFuZGxpbmcpIGNvbnN0OworICAgICAgICBlbnVt
IEVuY29kZU5vcm1hbGl6YXRpb24geyBOb3JtYWxpemVCZWZvcmVFbmNvZGluZywgRG9Ob3ROb3Jt
YWxpemVCZWZvcmVFbmNvZGluZyB9OworICAgICAgICBDU3RyaW5nIGVuY29kZShTdHJpbmdWaWV3
LCBVbmVuY29kYWJsZUhhbmRsaW5nLCBFbmNvZGVOb3JtYWxpemF0aW9uID0gTm9ybWFsaXplQmVm
b3JlRW5jb2RpbmcpIGNvbnN0OwogCiAgICAgICAgIFVDaGFyIGJhY2tzbGFzaEFzQ3VycmVuY3lT
eW1ib2woKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGQ5ZjRhMTUuLjBiMDVmYjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNS0wNC0yOCAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgVVJMIHBh
dGhzIHNob3VsZCBub3QgYmUgbm9ybWFsaXplZCB3aGVuIGVuY29kZWQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDMyMAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3QgY2FzZSB0byBVUkwg
dW5pdCB0ZXN0IHRvIGNoZWNrIHRoYXQgcGF0aHMgYXJlIG5vdAorICAgICAgICBub3JtYWxpemVk
IHdoZW4gYnVpbGRpbmcgYSBVUkwuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvVVJMLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisKIDIwMTUt
MDQtMjYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAg
W0VTNl0gSW1wbGVtZW50IEVTNiB0ZW1wbGF0ZSBsaXRlcmFscwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvVVJMLmNwcAppbmRleCA0YTdmNTM5Li5iMGIyMDkzIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMLmNwcApAQCAtNzksNCArNzksMzQgQEAgVEVT
VF9GKFVSTFRlc3QsIFVSTERhdGFVUklTdHJpbmdTaGFyaW5nKQogICAgIEVYUEVDVF9FUSh0aHJl
ZUFwcGxlcy5pbXBsKCksIHVybC5zdHJpbmcoKS5pbXBsKCkpOwogfQogCitURVNUX0YoVVJMVGVz
dCwgVVJMUGF0aEVuY29uZGluZykKK3sKKyAgICBVUkwgYmFzZVVSTChQYXJzZWRVUkxTdHJpbmcs
ICJodHRwOi8vd3d3LndlYmtpdC5vcmcvIik7CisKKyAgICAvLyBVVEY4IHN0cmluZyBpcyBjcmVh
dGVkIG5vcm1hbGl6ZWQuCisgICAgU3RyaW5nIHV0ZjhQYXRoID0gU3RyaW5nOjpmcm9tVVRGOCgi
dGVzdC1uacOxby5wbmciKTsKKworICAgIC8vIENyZWF0ZSB0aGUgc2FtZSBwYXRoIGJ1dCB1c2lu
ZyBVKzAwNkUgVSswMzAzIGZvciB0aGUgJ8OxJy4KKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7
CisgICAgYnVpbGRlci5hcHBlbmQoInRlc3QtbmkiKTsKKyAgICBidWlsZGVyLmFwcGVuZChVQ2hh
cigweDAwNkUpKTsKKyAgICBidWlsZGVyLmFwcGVuZChVQ2hhcigweDAzMDMpKTsKKyAgICBidWls
ZGVyLmFwcGVuZCgiby5wbmciKTsKKyAgICBTdHJpbmcgcGF0aCA9IGJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBVUkwgdXJsKGJhc2VVUkwsIHBhdGgpOworICAgIEVYUEVDVF9FUShlbmNvZGVXaXRo
VVJMRXNjYXBlU2VxdWVuY2VzKHBhdGgpLCB1cmwubGFzdFBhdGhDb21wb25lbnQoKSk7CisgICAg
RVhQRUNUX1RSVUUocGF0aCAhPSB1dGY4UGF0aCk7CisKKyAgICAvLyBBbmQgbm93IHVzZSBVKzAw
RjEgZm9yIHRoZSAnw7EnLgorICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjI7CisgICAgYnVpbGRl
cjIuYXBwZW5kKCJ0ZXN0LW5pIik7CisgICAgYnVpbGRlcjIuYXBwZW5kKFVDaGFyKDB4MDBGMSkp
OworICAgIGJ1aWxkZXIyLmFwcGVuZCgiby5wbmciKTsKKyAgICBTdHJpbmcgcGF0aDIgPSBidWls
ZGVyMi50b1N0cmluZygpOworICAgIFVSTCB1cmwyKGJhc2VVUkwsIHBhdGgyKTsKKyAgICBFWFBF
Q1RfRVEoZW5jb2RlV2l0aFVSTEVzY2FwZVNlcXVlbmNlcyhwYXRoMiksIHVybDIubGFzdFBhdGhD
b21wb25lbnQoKSk7CisgICAgRVhQRUNUX0VRKHBhdGgyLCB1dGY4UGF0aCk7CisgICAgRVhQRUNU
X1RSVUUocGF0aCAhPSBwYXRoMik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257254</attachid>
            <date>2015-07-22 02:07:33 -0700</date>
            <delta_ts>2015-07-22 02:07:33 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>wk-filename-encoding.diff</filename>
            <type>text/plain</type>
            <size>9409</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1OTZmMGE3Li5mNWE4ZjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjgg
QEAKKzIwMTUtMDctMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFVSTCBwYXRocyBzaG91bGQgbm90IGJlIG5vcm1hbGl6ZWQgd2hlbiBlbmNv
ZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQz
MjAKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBJIG5vdGlj
ZWQgdGhhdCBzb21lIGZpbGVzIGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlciAnw7EnIHdlcmUgbm90
CisgICAgICAgIGxvYWRlZCB3aGVuIHVzZWQgaW4gaW1nIG9yIG9iamVjdCB0YWdzLiBUaGUgcHJv
YmxlbSBpcyB0aGF0IHRoZQorICAgICAgICBjaGFyYWN0ZXIgJ8OxJyBpcyBlbmNvZGVkIGluIHRo
ZSBmaWxlbmFtZSBhcyBVKzAwNkUgVSswMzAzLiBUaGUgVVJMCisgICAgICAgIGVuY29kZXMgdGhl
IGdpdmVuIHBhdGggbm9ybWFsaXppbmcgdGhlIHN0cmluZywgd2hpY2ggY29udmVydHMgdGhlCisg
ICAgICAgICfDsScgdG8gVSswMEYxLiBXaGVuIHRoZSBuZXR3b3JrIGJhY2tlbmQgdHJpZXMgdG8g
bG9hZCB0aGUgVVJMLCBpdAorICAgICAgICBmYWlscyBiZWNhdXNlIHRoZSByZXNvdXJjZSBpcyBu
b3QgZm91bmQgYXQgdGhlIGdpdmVuIHBhdGguIFRoaXMKKyAgICAgICAgcGF0Y2ggYWRkcyBhbiBv
cHRpb24gdG8gY2FsbCBUZXh0RW5jb2Rpbmc6OmVuY29kZSgpIHdpdGhvdXQgZG9pbmcKKyAgICAg
ICAgYW55IG5vcm1hbGl6YXRpb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9VUkwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6ZW5jb2RlUmVsYXRpdmVTdHJpbmcpOiBQYXNzIERvTm90Tm9ybWFsaXpl
QmVmb3JlRW5jb2RpbmcKKyAgICAgICAgb3B0aW9uIHRvIFRleHRFbmNvZGluZzo6ZW5jb2RlKCkg
ZXhjZXB0IGZvciBDb2NvYSBwbGF0Zm9ybSwgc2luY2UKKyAgICAgICAgSEZTIGRvIG5vcm1hbGl6
ZSBmaWxlIG5hbWVzLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRleHRFbmNvZGluZzo6ZW5jb2RlKTogRG8gdGhlIG5vcm1hbGl6
YXRpb24gb3Igbm90IGRlcGVuZGluZyBvbgorICAgICAgICB0aGUgZ2l2ZW4gRW5jb2RlTm9ybWFs
aXphdGlvbiBvcHRpb24uCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuaDoK
KwogMjAxNS0wNy0yMSAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbQ1NTIFNlbGVjdG9ycyBMZXZlbCA0XSBBZGQgI2lmZGVmcyB0byB0aGUgbmV3ICc+
PicgZGVzY2VuZGFudCBjb21iaW5hdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9VUkwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcAppbmRleCA1M2Jl
NjE3Li40MjYwMWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAKQEAgLTE4MzEsMTUgKzE4MzEs
MjEgQEAgc3RhdGljIHZvaWQgZW5jb2RlUmVsYXRpdmVTdHJpbmcoY29uc3QgU3RyaW5nJiByZWws
IGNvbnN0IFRleHRFbmNvZGluZyYgZW5jb2RpbmcKICAgICAgICAgcGF0aEVuZCA9IGZpbmRGaXJz
dE9mKFN0cmluZ1ZpZXcocy5kYXRhKCksIHMuc2l6ZSgpKSwgMCwgIiM/Iik7CiAgICAgfQogCisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgc3RhdGljIGNvbnN0IFRleHRFbmNvZGluZzo6RW5jb2Rl
Tm9ybWFsaXphdGlvbiBub3JtYWxpemF0aW9uID0gVGV4dEVuY29kaW5nOjpOb3JtYWxpemVCZWZv
cmVFbmNvZGluZzsKKyNlbHNlCisgICAgc3RhdGljIGNvbnN0IFRleHRFbmNvZGluZzo6RW5jb2Rl
Tm9ybWFsaXphdGlvbiBub3JtYWxpemF0aW9uID0gVGV4dEVuY29kaW5nOjpEb05vdE5vcm1hbGl6
ZUJlZm9yZUVuY29kaW5nOworI2VuZGlmCisKICAgICBpZiAocGF0aEVuZCA9PSAtMSkgewotICAg
ICAgICBDU3RyaW5nIGRlY29kZWQgPSBwYXRoRW5jb2RpbmcuZW5jb2RlKFN0cmluZ1ZpZXcocy5k
YXRhKCksIHMuc2l6ZSgpKSwgVVJMRW5jb2RlZEVudGl0aWVzRm9yVW5lbmNvZGFibGVzKTsKKyAg
ICAgICAgQ1N0cmluZyBkZWNvZGVkID0gcGF0aEVuY29kaW5nLmVuY29kZShTdHJpbmdWaWV3KHMu
ZGF0YSgpLCBzLnNpemUoKSksIFVSTEVuY29kZWRFbnRpdGllc0ZvclVuZW5jb2RhYmxlcywgbm9y
bWFsaXphdGlvbik7CiAgICAgICAgIG91dHB1dC5yZXNpemUoZGVjb2RlZC5sZW5ndGgoKSk7CiAg
ICAgICAgIG1lbWNweShvdXRwdXQuZGF0YSgpLCBkZWNvZGVkLmRhdGEoKSwgZGVjb2RlZC5sZW5n
dGgoKSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgQ1N0cmluZyBwYXRoRGVjb2RlZCA9IHBhdGhF
bmNvZGluZy5lbmNvZGUoU3RyaW5nVmlldyhzLmRhdGEoKSwgcGF0aEVuZCksIFVSTEVuY29kZWRF
bnRpdGllc0ZvclVuZW5jb2RhYmxlcyk7CisgICAgICAgIENTdHJpbmcgcGF0aERlY29kZWQgPSBw
YXRoRW5jb2RpbmcuZW5jb2RlKFN0cmluZ1ZpZXcocy5kYXRhKCksIHBhdGhFbmQpLCBVUkxFbmNv
ZGVkRW50aXRpZXNGb3JVbmVuY29kYWJsZXMsIG5vcm1hbGl6YXRpb24pOwogICAgICAgICAvLyBV
bmVuY29kYWJsZSBjaGFyYWN0ZXJzIGluIFVSTHMgYXJlIHJlcHJlc2VudGVkIGJ5IGNvbnZlcnRp
bmcKICAgICAgICAgLy8gdGhlbSB0byBYTUwgZW50aXRpZXMgYW5kIGVzY2FwaW5nIG5vbi1hbHBo
YW51bWVyaWMgY2hhcmFjdGVycy4KLSAgICAgICAgQ1N0cmluZyBvdGhlckRlY29kZWQgPSBlbmNv
ZGluZy5lbmNvZGUoU3RyaW5nVmlldyhzLmRhdGEoKSArIHBhdGhFbmQsIHMuc2l6ZSgpIC0gcGF0
aEVuZCksIFVSTEVuY29kZWRFbnRpdGllc0ZvclVuZW5jb2RhYmxlcyk7CisgICAgICAgIENTdHJp
bmcgb3RoZXJEZWNvZGVkID0gZW5jb2RpbmcuZW5jb2RlKFN0cmluZ1ZpZXcocy5kYXRhKCkgKyBw
YXRoRW5kLCBzLnNpemUoKSAtIHBhdGhFbmQpLCBVUkxFbmNvZGVkRW50aXRpZXNGb3JVbmVuY29k
YWJsZXMsIG5vcm1hbGl6YXRpb24pOwogCiAgICAgICAgIG91dHB1dC5yZXNpemUocGF0aERlY29k
ZWQubGVuZ3RoKCkgKyBvdGhlckRlY29kZWQubGVuZ3RoKCkpOwogICAgICAgICBtZW1jcHkob3V0
cHV0LmRhdGEoKSwgcGF0aERlY29kZWQuZGF0YSgpLCBwYXRoRGVjb2RlZC5sZW5ndGgoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHAKaW5kZXggMDVk
YTg0Yi4uMGY2MzBhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9U
ZXh0RW5jb2RpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVu
Y29kaW5nLmNwcApAQCAtNjMsNyArNjMsNyBAQCBTdHJpbmcgVGV4dEVuY29kaW5nOjpkZWNvZGUo
Y29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCwgYm9vbCBzdG9wT25FcnJvciwgYgogICAg
IHJldHVybiBuZXdUZXh0Q29kZWMoKnRoaXMpLT5kZWNvZGUoZGF0YSwgbGVuZ3RoLCB0cnVlLCBz
dG9wT25FcnJvciwgc2F3RXJyb3IpOwogfQogCi1DU3RyaW5nIFRleHRFbmNvZGluZzo6ZW5jb2Rl
KFN0cmluZ1ZpZXcgdGV4dCwgVW5lbmNvZGFibGVIYW5kbGluZyBoYW5kbGluZykgY29uc3QKK0NT
dHJpbmcgVGV4dEVuY29kaW5nOjplbmNvZGUoU3RyaW5nVmlldyB0ZXh0LCBVbmVuY29kYWJsZUhh
bmRsaW5nIGhhbmRsaW5nLCBFbmNvZGVOb3JtYWxpemF0aW9uIG5vcm1hbGl6YXRpb24pIGNvbnN0
CiB7CiAgICAgaWYgKCFtX25hbWUpCiAgICAgICAgIHJldHVybiBDU3RyaW5nKCk7CkBAIC03MSwz
MSArNzEsMjggQEAgQ1N0cmluZyBUZXh0RW5jb2Rpbmc6OmVuY29kZShTdHJpbmdWaWV3IHRleHQs
IFVuZW5jb2RhYmxlSGFuZGxpbmcgaGFuZGxpbmcpIGNvbnMKICAgICBpZiAodGV4dC5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybiAiIjsKIAotICAgIC8vIEZJWE1FOiBXaGF0J3MgdGhlIHJpZ2h0
IHBsYWNlIHRvIGRvIG5vcm1hbGl6YXRpb24/Ci0gICAgLy8gSXQncyBhIGxpdHRsZSBzdHJhbmdl
IHRvIGRvIGl0IGluc2lkZSB0aGUgZW5jb2RlIGZ1bmN0aW9uLgotICAgIC8vIFBlcmhhcHMgbm9y
bWFsaXphdGlvbiBzaG91bGQgYmUgYW4gZXhwbGljaXQgc3RlcCBkb25lIGJlZm9yZSBjYWxsaW5n
IGVuY29kZS4KLQogICAgIGF1dG8gdXBjb252ZXJ0ZWRDaGFyYWN0ZXJzID0gdGV4dC51cGNvbnZl
cnRlZENoYXJhY3RlcnMoKTsKIAogICAgIGNvbnN0IFVDaGFyKiBzb3VyY2UgPSB1cGNvbnZlcnRl
ZENoYXJhY3RlcnM7CiAgICAgc2l6ZV90IHNvdXJjZUxlbmd0aCA9IHRleHQubGVuZ3RoKCk7CiAK
ICAgICBWZWN0b3I8VUNoYXI+IG5vcm1hbGl6ZWRDaGFyYWN0ZXJzOwotCi0gICAgVUVycm9yQ29k
ZSBlcnIgPSBVX1pFUk9fRVJST1I7Ci0gICAgaWYgKHVub3JtX3F1aWNrQ2hlY2soc291cmNlLCBz
b3VyY2VMZW5ndGgsIFVOT1JNX05GQywgJmVycikgIT0gVU5PUk1fWUVTKSB7Ci0gICAgICAgIC8v
IEZpcnN0IHRyeSB1c2luZyB0aGUgbGVuZ3RoIG9mIHRoZSBvcmlnaW5hbCBzdHJpbmcsIHNpbmNl
IG5vcm1hbGl6YXRpb24gdG8gTkZDIHJhcmVseSBpbmNyZWFzZXMgbGVuZ3RoLgotICAgICAgICBu
b3JtYWxpemVkQ2hhcmFjdGVycy5ncm93KHNvdXJjZUxlbmd0aCk7Ci0gICAgICAgIGludDMyX3Qg
bm9ybWFsaXplZExlbmd0aCA9IHVub3JtX25vcm1hbGl6ZShzb3VyY2UsIHNvdXJjZUxlbmd0aCwg
VU5PUk1fTkZDLCAwLCBub3JtYWxpemVkQ2hhcmFjdGVycy5kYXRhKCksIHNvdXJjZUxlbmd0aCwg
JmVycik7Ci0gICAgICAgIGlmIChlcnIgPT0gVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IpIHsKLSAg
ICAgICAgICAgIGVyciA9IFVfWkVST19FUlJPUjsKLSAgICAgICAgICAgIG5vcm1hbGl6ZWRDaGFy
YWN0ZXJzLnJlc2l6ZShub3JtYWxpemVkTGVuZ3RoKTsKLSAgICAgICAgICAgIG5vcm1hbGl6ZWRM
ZW5ndGggPSB1bm9ybV9ub3JtYWxpemUoc291cmNlLCBzb3VyY2VMZW5ndGgsIFVOT1JNX05GQywg
MCwgbm9ybWFsaXplZENoYXJhY3RlcnMuZGF0YSgpLCBub3JtYWxpemVkTGVuZ3RoLCAmZXJyKTsK
KyAgICBpZiAobm9ybWFsaXphdGlvbiA9PSBOb3JtYWxpemVCZWZvcmVFbmNvZGluZykgeworICAg
ICAgICBVRXJyb3JDb2RlIGVyciA9IFVfWkVST19FUlJPUjsKKyAgICAgICAgaWYgKHVub3JtX3F1
aWNrQ2hlY2soc291cmNlLCBzb3VyY2VMZW5ndGgsIFVOT1JNX05GQywgJmVycikgIT0gVU5PUk1f
WUVTKSB7CisgICAgICAgICAgICAvLyBGaXJzdCB0cnkgdXNpbmcgdGhlIGxlbmd0aCBvZiB0aGUg
b3JpZ2luYWwgc3RyaW5nLCBzaW5jZSBub3JtYWxpemF0aW9uIHRvIE5GQyByYXJlbHkgaW5jcmVh
c2VzIGxlbmd0aC4KKyAgICAgICAgICAgIG5vcm1hbGl6ZWRDaGFyYWN0ZXJzLmdyb3coc291cmNl
TGVuZ3RoKTsKKyAgICAgICAgICAgIGludDMyX3Qgbm9ybWFsaXplZExlbmd0aCA9IHVub3JtX25v
cm1hbGl6ZShzb3VyY2UsIHNvdXJjZUxlbmd0aCwgVU5PUk1fTkZDLCAwLCBub3JtYWxpemVkQ2hh
cmFjdGVycy5kYXRhKCksIHNvdXJjZUxlbmd0aCwgJmVycik7CisgICAgICAgICAgICBpZiAoZXJy
ID09IFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SKSB7CisgICAgICAgICAgICAgICAgZXJyID0gVV9a
RVJPX0VSUk9SOworICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRDaGFyYWN0ZXJzLnJlc2l6ZShu
b3JtYWxpemVkTGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBub3JtYWxpemVkTGVuZ3RoID0gdW5v
cm1fbm9ybWFsaXplKHNvdXJjZSwgc291cmNlTGVuZ3RoLCBVTk9STV9ORkMsIDAsIG5vcm1hbGl6
ZWRDaGFyYWN0ZXJzLmRhdGEoKSwgbm9ybWFsaXplZExlbmd0aCwgJmVycik7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBBU1NFUlQoVV9TVUNDRVNTKGVycikpOworCisgICAgICAgICAgICBz
b3VyY2UgPSBub3JtYWxpemVkQ2hhcmFjdGVycy5kYXRhKCk7CisgICAgICAgICAgICBzb3VyY2VM
ZW5ndGggPSBub3JtYWxpemVkTGVuZ3RoOwogICAgICAgICB9Ci0gICAgICAgIEFTU0VSVChVX1NV
Q0NFU1MoZXJyKSk7Ci0KLSAgICAgICAgc291cmNlID0gbm9ybWFsaXplZENoYXJhY3RlcnMuZGF0
YSgpOwotICAgICAgICBzb3VyY2VMZW5ndGggPSBub3JtYWxpemVkTGVuZ3RoOwogICAgIH0KIAog
ICAgIHJldHVybiBuZXdUZXh0Q29kZWMoKnRoaXMpLT5lbmNvZGUoc291cmNlLCBzb3VyY2VMZW5n
dGgsIGhhbmRsaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
VGV4dEVuY29kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGlu
Zy5oCmluZGV4IDRjYjc4OTAuLmE1ZTlhMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9UZXh0RW5jb2RpbmcuaApAQCAtNjksNyArNjksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgICAgICByZXR1cm4gZGVjb2RlKHN0ciwgbGVuZ3RoLCBmYWxzZSwgaWdub3JlZCk7
CiAgICAgICAgIH0KICAgICAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGRlY29kZShjb25zdCBj
aGFyKiwgc2l6ZV90IGxlbmd0aCwgYm9vbCBzdG9wT25FcnJvciwgYm9vbCYgc2F3RXJyb3IpIGNv
bnN0OwotICAgICAgICBDU3RyaW5nIGVuY29kZShTdHJpbmdWaWV3LCBVbmVuY29kYWJsZUhhbmRs
aW5nKSBjb25zdDsKKyAgICAgICAgZW51bSBFbmNvZGVOb3JtYWxpemF0aW9uIHsgTm9ybWFsaXpl
QmVmb3JlRW5jb2RpbmcsIERvTm90Tm9ybWFsaXplQmVmb3JlRW5jb2RpbmcgfTsKKyAgICAgICAg
Q1N0cmluZyBlbmNvZGUoU3RyaW5nVmlldywgVW5lbmNvZGFibGVIYW5kbGluZywgRW5jb2RlTm9y
bWFsaXphdGlvbiA9IE5vcm1hbGl6ZUJlZm9yZUVuY29kaW5nKSBjb25zdDsKIAogICAgICAgICBV
Q2hhciBiYWNrc2xhc2hBc0N1cnJlbmN5U3ltYm9sKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5Y2NjNmQ3Li5iM2NhMGRiIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTUtMDctMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFVSTCBwYXRocyBzaG91bGQgbm90IGJlIG5vcm1hbGl6ZWQgd2hl
biBlbmNvZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDQzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBB
ZGQgYSB0ZXN0IGNhc2UgdG8gVVJMIHVuaXQgdGVzdCB0byBjaGVjayB0aGF0IHBhdGhzIGFyZSBu
b3QKKyAgICAgICAgbm9ybWFsaXplZCB3aGVuIGJ1aWxkaW5nIGEgVVJMLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUX0YpOgorCiAyMDE1LTA3LTIyICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNh
bHZhcmlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgW2NoZWNrLXdlYmtpdC1zdHlsZV0gLmx1dC5o
IGZpbGVzIHNob3VsZG4ndCByYWlzZSBhIHNvcnRpbmcgaXNzdWUKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkwuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL1VSTC5jcHAKaW5kZXggNGE3ZjUzOS4uMzFhMmVjNiAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTC5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTC5jcHAKQEAgLTc5LDQgKzc5LDM4IEBAIFRF
U1RfRihVUkxUZXN0LCBVUkxEYXRhVVJJU3RyaW5nU2hhcmluZykKICAgICBFWFBFQ1RfRVEodGhy
ZWVBcHBsZXMuaW1wbCgpLCB1cmwuc3RyaW5nKCkuaW1wbCgpKTsKIH0KIAorVEVTVF9GKFVSTFRl
c3QsIFVSTFBhdGhFbmNvbmRpbmcpCit7CisgICAgVVJMIGJhc2VVUkwoUGFyc2VkVVJMU3RyaW5n
LCAiaHR0cDovL3d3dy53ZWJraXQub3JnLyIpOworCisgICAgLy8gVVRGOCBzdHJpbmcgaXMgY3Jl
YXRlZCBub3JtYWxpemVkLgorICAgIFN0cmluZyB1dGY4UGF0aCA9IFN0cmluZzo6ZnJvbVVURjgo
InRlc3QtbmnDsW8ucG5nIik7CisKKyAgICAvLyBDcmVhdGUgdGhlIHNhbWUgcGF0aCBidXQgdXNp
bmcgVSswMDZFIFUrMDMwMyBmb3IgdGhlICfDsScuCisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OworICAgIGJ1aWxkZXIuYXBwZW5kKCJ0ZXN0LW5pIik7CisgICAgYnVpbGRlci5hcHBlbmQoVUNo
YXIoMHgwMDZFKSk7CisgICAgYnVpbGRlci5hcHBlbmQoVUNoYXIoMHgwMzAzKSk7CisgICAgYnVp
bGRlci5hcHBlbmQoIm8ucG5nIik7CisgICAgU3RyaW5nIHBhdGggPSBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgVVJMIHVybChiYXNlVVJMLCBwYXRoKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICBFWFBFQ1RfVFJVRShlbmNvZGVXaXRoVVJMRXNjYXBlU2VxdWVuY2VzKHBhdGgpICE9IHVybC5s
YXN0UGF0aENvbXBvbmVudCgpKTsKKyNlbHNlCisgICAgRVhQRUNUX0VRKGVuY29kZVdpdGhVUkxF
c2NhcGVTZXF1ZW5jZXMocGF0aCksIHVybC5sYXN0UGF0aENvbXBvbmVudCgpKTsKKyNlbmRpZgor
ICAgIEVYUEVDVF9UUlVFKHBhdGggIT0gdXRmOFBhdGgpOworCisgICAgLy8gQW5kIG5vdyB1c2Ug
VSswMEYxIGZvciB0aGUgJ8OxJy4KKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXIyOworICAgIGJ1
aWxkZXIyLmFwcGVuZCgidGVzdC1uaSIpOworICAgIGJ1aWxkZXIyLmFwcGVuZChVQ2hhcigweDAw
RjEpKTsKKyAgICBidWlsZGVyMi5hcHBlbmQoIm8ucG5nIik7CisgICAgU3RyaW5nIHBhdGgyID0g
YnVpbGRlcjIudG9TdHJpbmcoKTsKKyAgICBVUkwgdXJsMihiYXNlVVJMLCBwYXRoMik7CisgICAg
RVhQRUNUX0VRKGVuY29kZVdpdGhVUkxFc2NhcGVTZXF1ZW5jZXMocGF0aDIpLCB1cmwyLmxhc3RQ
YXRoQ29tcG9uZW50KCkpOworICAgIEVYUEVDVF9FUShwYXRoMiwgdXRmOFBhdGgpOworICAgIEVY
UEVDVF9UUlVFKHBhdGggIT0gcGF0aDIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>