<?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>134360</bug_id>
          
          <creation_ts>2014-06-26 13:43:01 -0700</creation_ts>
          <short_desc>Restrict network process sandbox</short_desc>
          <delta_ts>2014-07-02 16:03:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>134533</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>ap</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1018728</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-06-26 13:43:01 -0700</bug_when>
    <thetext>Restrict network process sandbox</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018730</commentid>
    <comment_count>1</comment_count>
      <attachid>233931</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-06-26 13:54:58 -0700</bug_when>
    <thetext>Created attachment 233931
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018731</commentid>
    <comment_count>2</comment_count>
      <attachid>233931</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-06-26 13:59:23 -0700</bug_when>
    <thetext>Comment on attachment 233931
Patch

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

You&apos;ve got inconsistent spacing in the profile.

&gt; Source/WebKit2/NetworkProcess/cocoa/NetworkProcessCocoa.mm:64
&gt;  {
&gt; +
&gt; +    m_diskCacheDirectory = parameters.diskCacheDirectory;

Extraneous newline.  How is this path validated? What prevents an app from passing in a path it should not have access to?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018733</commentid>
    <comment_count>3</comment_count>
      <attachid>233931</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-06-26 14:06:35 -0700</bug_when>
    <thetext>Comment on attachment 233931
Patch

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

&gt;&gt; Source/WebKit2/NetworkProcess/cocoa/NetworkProcessCocoa.mm:64
&gt;&gt; +    m_diskCacheDirectory = parameters.diskCacheDirectory;
&gt; 
&gt; Extraneous newline.  How is this path validated? What prevents an app from passing in a path it should not have access to?

Never mind about the validation. This is only allowed via an extension.

&gt; Source/WebKit2/Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:39
&gt; +;; Utility functions for home directory relative path filters
&gt; +(define (home-regex home-relative-regex)
&gt; +  (regex (string-append #&quot;^/private/var/mobile&quot; home-relative-regex)))
&gt; +
&gt; +(define (home-subpath home-relative-subpath)
&gt; +    (subpath (string-append &quot;/private/var/mobile&quot; home-relative-subpath)))
&gt; +
&gt; +(define (home-literal home-relative-literal)
&gt; +    (literal (string-append &quot;/private/var/mobile&quot; home-relative-literal)))

These seem unused.

&gt; Source/WebKit2/Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:43
&gt; +(apple-cookie-access &apos;with-read-write)

Does this allow any WebKit2 client to access the same cookies? I don&apos;t think we want that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018736</commentid>
    <comment_count>4</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-06-26 14:19:19 -0700</bug_when>
    <thetext>(In reply to comment #3)

&gt; 
&gt; &gt; Source/WebKit2/Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:39
&gt; &gt; +;; Utility functions for home directory relative path filters
&gt; &gt; +(define (home-regex home-relative-regex)
&gt; &gt; +  (regex (string-append #&quot;^/private/var/mobile&quot; home-relative-regex)))
&gt; &gt; +
&gt; &gt; +(define (home-subpath home-relative-subpath)
&gt; &gt; +    (subpath (string-append &quot;/private/var/mobile&quot; home-relative-subpath)))
&gt; &gt; +
&gt; &gt; +(define (home-literal home-relative-literal)
&gt; &gt; +    (literal (string-append &quot;/private/var/mobile&quot; home-relative-literal)))
&gt; 
&gt; These seem unused.
&gt;
Fixed
 
&gt; &gt; Source/WebKit2/Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:43
&gt; &gt; +(apple-cookie-access &apos;with-read-write)
&gt; 
&gt; Does this allow any WebKit2 client to access the same cookies? I don&apos;t think we want that.

That&apos;s current behaviour, this merely allows us to continue doing what we currently do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018774</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-06-26 15:48:45 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:39
&gt; &gt; &gt; +;; Utility functions for home directory relative path filters
&gt; &gt; &gt; +(define (home-regex home-relative-regex)
&gt; &gt; &gt; +  (regex (string-append #&quot;^/private/var/mobile&quot; home-relative-regex)))
&gt; &gt; &gt; +
&gt; &gt; &gt; +(define (home-subpath home-relative-subpath)
&gt; &gt; &gt; +    (subpath (string-append &quot;/private/var/mobile&quot; home-relative-subpath)))
&gt; &gt; &gt; +
&gt; &gt; &gt; +(define (home-literal home-relative-literal)
&gt; &gt; &gt; +    (literal (string-append &quot;/private/var/mobile&quot; home-relative-literal)))
&gt; &gt; 
&gt; &gt; These seem unused.
&gt; &gt;
&gt; Fixed

Thanks.

&gt; 
&gt; &gt; &gt; Source/WebKit2/Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:43
&gt; &gt; &gt; +(apple-cookie-access &apos;with-read-write)
&gt; &gt; 
&gt; &gt; Does this allow any WebKit2 client to access the same cookies? I don&apos;t think we want that.
&gt; 
&gt; That&apos;s current behaviour, this merely allows us to continue doing what we currently do.

Ok. Please file a bug on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018894</commentid>
    <comment_count>6</comment_count>
      <attachid>233931</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-06-26 23:08:31 -0700</bug_when>
    <thetext>Comment on attachment 233931
Patch

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

&gt; Source/WebKit2/Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:62
&gt; +;; Access to own cache &amp; temp folders.
&gt; +(allow file-read* file-write*
&gt; +       (extension &quot;com.apple.webkit.read-write&quot;))
&gt; +
&gt; +;; IOKit user clients
&gt; +(allow iokit-open
&gt; +    (iokit-user-client-class &quot;RootDomainUserClient&quot;))

Please fix the profile to use uniform indentation (4 spaces would be nice).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018968</commentid>
    <comment_count>7</comment_count>
      <attachid>233931</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-06-27 09:05:21 -0700</bug_when>
    <thetext>Comment on attachment 233931
Patch

I&apos;m making a few changes that will require re-review (not just reformatting :) )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1019217</commentid>
    <comment_count>8</comment_count>
      <attachid>234053</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-06-28 14:44:36 -0700</bug_when>
    <thetext>Created attachment 234053
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1019327</commentid>
    <comment_count>9</comment_count>
      <attachid>234053</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-06-30 08:10:07 -0700</bug_when>
    <thetext>Comment on attachment 234053
Patch

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

&gt; Source/WebKit2/NetworkProcess/cocoa/NetworkProcessCocoa.mm:67
&gt; +    SandboxExtension::consumePermanently(parameters.cookieStorageDirectoryExtensionHandle);
&gt; +    m_diskCacheDirectory = parameters.diskCacheDirectory;
&gt; +
&gt; +    if (!m_diskCacheDirectory.isNull()) {
&gt; +        if (!SandboxExtension::consumePermanently(parameters.diskCacheDirectoryExtensionHandle))

Why are we checking the return value from consuming diskCacheDirectoryExtensionHandle yet not doing the same for cookieStorageDirectoryExtensionHandle just above?

Code paragraphing here is peculiar. The code to set m_diskCacheDirectory is grouped with the code to work with cookieStorageDirectoryExtensionHandle instead of with the code for diskCacheDirectoryExtensionHandle. I’d move the blank line or remove it.

&gt; Source/WebKit2/Shared/mac/SandboxUtilities.cpp:74
&gt; +    char path[MAXPATHLEN + 1];
&gt; +    if (sandbox_container_path_for_pid(getpid(), path, MAXPATHLEN))
&gt; +        return String();

This is passing the wrong buffer size. It should not pass the size minus one, but rather the entire size. I suggest sizeof(path).

It’s a little strange that processHasContainer above is using std::array but we are opting not to use it here.

&gt; Source/WebKit2/Shared/mac/SandboxUtilities.cpp:77
&gt; +    if (!path[0])
&gt; +        return String();

Is there some reason it’s important to return a null string instead of an empty string in this case? If it’s not, I suggest just omitting this special case as the normal case below will work for the empty string.

&gt; Source/WebKit2/Shared/mac/SandboxUtilities.cpp:79
&gt; +    path[MAXPATHLEN] = 0;

Not needed. There’s no reason that sandbox_container_path_for_pid would return a non-terminated string and pretend to succeed.

&gt; Source/WebKit2/Shared/mac/SandboxUtilities.cpp:80
&gt; +    return String(path);

Since the path is a UTF-8 string, we should not be using the constructor that treats characters as Latin-1.

WebCore’s FileSystem.h code even goes so far as to use CFStringGetFileSystemRepresentation; the corresponding thing to do here would be to use CFStringCreateWithFileSystemRepresentation.

But it might be OK to call String::fromUTF8.

&gt; Source/WebKit2/Shared/mac/SandboxUtilities.h:30
&gt; +#include &lt;wtf/text/WTFString.h&gt;

No need to include this header just to return an object of type WTF::String. Instead, we could include wtf/Forward.h.

&gt; Source/WebKit2/Shared/mac/SandboxUtilities.h:37
&gt; +// Returns an empty string if the process is not in a container

The code seems to return a null string in this case, not an empty string.

We normally use a period at the end of these kinds of comments.

&gt; Source/WebKit2/UIProcess/WebContext.cpp:414
&gt; +    parameters.cookieStorageDirectory = (cookieStorageDirectory());

The extra parentheses here are a bit non-idiomatic. I’d leave them out.

&gt; Source/WebKit2/UIProcess/mac/WebContextMac.mm:276
&gt; +        path = [@&quot;~/&quot; stringByStandardizingPath];

Maybe use NSHomeDirectory() instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1019343</commentid>
    <comment_count>10</comment_count>
      <attachid>234053</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-06-30 10:46:37 -0700</bug_when>
    <thetext>Comment on attachment 234053
Patch

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

Whoops, sorry i should have removed the r? as i was still making changes :)

Thanks for the feedback though :D

&gt;&gt; Source/WebKit2/NetworkProcess/cocoa/NetworkProcessCocoa.mm:67
&gt;&gt; +        if (!SandboxExtension::consumePermanently(parameters.diskCacheDirectoryExtensionHandle))
&gt; 
&gt; Why are we checking the return value from consuming diskCacheDirectoryExtensionHandle yet not doing the same for cookieStorageDirectoryExtensionHandle just above?
&gt; 
&gt; Code paragraphing here is peculiar. The code to set m_diskCacheDirectory is grouped with the code to work with cookieStorageDirectoryExtensionHandle instead of with the code for diskCacheDirectoryExtensionHandle. I’d move the blank line or remove it.

Hmmm, i&apos;m looking at the diff and i think what happened is that i introduce the crash while debugging.

&gt;&gt; Source/WebKit2/Shared/mac/SandboxUtilities.cpp:74
&gt;&gt; +        return String();
&gt; 
&gt; This is passing the wrong buffer size. It should not pass the size minus one, but rather the entire size. I suggest sizeof(path).
&gt; 
&gt; It’s a little strange that processHasContainer above is using std::array but we are opting not to use it here.

Yeah, i didn&apos;t want to do the extra alloc, but guess this should be hot and i&apos;m doing an unnecessary premature optimisation.

&gt;&gt; Source/WebKit2/Shared/mac/SandboxUtilities.cpp:77
&gt;&gt; +        return String();
&gt; 
&gt; Is there some reason it’s important to return a null string instead of an empty string in this case? If it’s not, I suggest just omitting this special case as the normal case below will work for the empty string.

Ah, ok

&gt;&gt; Source/WebKit2/Shared/mac/SandboxUtilities.cpp:79
&gt;&gt; +    path[MAXPATHLEN] = 0;
&gt; 
&gt; Not needed. There’s no reason that sandbox_container_path_for_pid would return a non-terminated string and pretend to succeed.

Ah, ok, i&apos;m just super paranoid about such things

&gt;&gt; Source/WebKit2/Shared/mac/SandboxUtilities.cpp:80
&gt;&gt; +    return String(path);
&gt; 
&gt; Since the path is a UTF-8 string, we should not be using the constructor that treats characters as Latin-1.
&gt; 
&gt; WebCore’s FileSystem.h code even goes so far as to use CFStringGetFileSystemRepresentation; the corresponding thing to do here would be to use CFStringCreateWithFileSystemRepresentation.
&gt; 
&gt; But it might be OK to call String::fromUTF8.

I&apos;ll do CFString.... to be consistent with webcore

&gt;&gt; Source/WebKit2/Shared/mac/SandboxUtilities.h:30
&gt;&gt; +#include &lt;wtf/text/WTFString.h&gt;
&gt; 
&gt; No need to include this header just to return an object of type WTF::String. Instead, we could include wtf/Forward.h.

Even for value returns? a forward decl would not allow the surely? What am i missing?

&gt;&gt; Source/WebKit2/Shared/mac/SandboxUtilities.h:37
&gt;&gt; +// Returns an empty string if the process is not in a container
&gt; 
&gt; The code seems to return a null string in this case, not an empty string.
&gt; 
&gt; We normally use a period at the end of these kinds of comments.

oh right we have empty vs null. Sigh.

Also re periods: i can&apos;t grammar

&gt;&gt; Source/WebKit2/UIProcess/WebContext.cpp:414
&gt;&gt; +    parameters.cookieStorageDirectory = (cookieStorageDirectory());
&gt; 
&gt; The extra parentheses here are a bit non-idiomatic. I’d leave them out.

Yeah, whoops left over cruft

&gt;&gt; Source/WebKit2/UIProcess/mac/WebContextMac.mm:276
&gt;&gt; +        path = [@&quot;~/&quot; stringByStandardizingPath];
&gt; 
&gt; Maybe use NSHomeDirectory() instead?

Hmmmm, i knew there was an api like that (couldn&apos;t remember the name), but everywhere else was the awful ~ thing. Will switch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1019415</commentid>
    <comment_count>11</comment_count>
      <attachid>234100</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-06-30 15:11:45 -0700</bug_when>
    <thetext>Created attachment 234100
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1019443</commentid>
    <comment_count>12</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-06-30 15:54:53 -0700</bug_when>
    <thetext>Committed r170608: &lt;http://trac.webkit.org/changeset/170608&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1019868</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-01 18:18:38 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 134533</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020085</commentid>
    <comment_count>14</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-07-02 16:03:22 -0700</bug_when>
    <thetext>Committed r170733: &lt;http://trac.webkit.org/changeset/170733&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233931</attachid>
            <date>2014-06-26 13:54:58 -0700</date>
            <delta_ts>2014-06-28 14:44:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134360-20140626135446.patch</filename>
            <type>text/plain</type>
            <size>4937</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwNDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMGZjMWY1Mzc4N2RlNzI4
MmY3NDM4OTEyMGMxNTlmN2I3MTY2M2U2Yi4uY2YyNDRkNWNlNzkzMjUzNzM0MDM4OGM0ZWNkNzll
M2ZmNDgwOGViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE0LTA2LTI2ICBPbGl2
ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzdHJpY3QgbmV0d29yayBw
cm9jZXNzIHNhbmRib3gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzNDM2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBtb3JlIHJlc3RyaWN0aW9ucyB0byB0aGUgbmV0d29yayBwcm9jZXNzIHNhbmRi
b3guCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXpl
TmV0d29ya1Byb2Nlc3NDb2NvYSk6CisgICAgICAgICAgQWx3YXlzIHVzZSB0aGUgY2FjaGUgZGly
ZWN0b3J5IHByb3ZpZGVkIGluIHRoZSBpbml0aWFsaXphdGlvbiBwYXJhbWV0ZXJzCisgICAgICAg
ICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5OZXR3b3Jr
aW5nLnNiOgorICAgICAgICAgIE1ha2UgdGhlIHNhbmRib3ggcHJvZmlsZSBtdWNoIG1vcmUgcmVz
dHJpY3RpdmUuCisKIDIwMTQtMDYtMjUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgW2lPUyBXSzJdIFBhZ2UganVtcHMgd2hlbiBydWJiZXItYmFuZGlu
ZyBvbiBhenVyZW1hZ2F6aW5lLmNvbSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCmluZGV4IDlmOGMyOGNi
NWQyNDYwODI4M2Q3M2FkOTc5N2RlMzJiZTY0ZWU3NzQuLjQ1NDY2MmM2ZWM1ZDQzMmY3MWYyZTNi
MGFkZTQ0NmQ3OWY2MzNlZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQpAQCAtNjAsMjQgKzYwLDI0
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtTG93TWVtb3J5SGFuZGxlcihib29sKQog
CiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzc0Nv
Y29hKGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQog
eworCisgICAgbV9kaXNrQ2FjaGVEaXJlY3RvcnkgPSBwYXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVj
dG9yeTsKKworICAgIGlmICghbV9kaXNrQ2FjaGVEaXJlY3RvcnkuaXNOdWxsKCkpIHsKKyAgICAg
ICAgaWYgKCFTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5k
aXNrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpKQorICAgICAgICAgICAgQ1JBU0goKTsK
ICNpZiBQTEFURk9STShJT1MpCi0gICAgaWYgKCFwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlk
ZW50aWZpZXIuaXNOdWxsKCkpIHsKICAgICAgICAgW05TVVJMQ2FjaGUgc2V0U2hhcmVkVVJMQ2Fj
aGU6YWRvcHROUyhbW05TVVJMQ2FjaGUgYWxsb2NdCiAgICAgICAgICAgICBfaW5pdFdpdGhNZW1v
cnlDYXBhY2l0eTpwYXJhbWV0ZXJzLm5zVVJMQ2FjaGVNZW1vcnlDYXBhY2l0eQogICAgICAgICAg
ICAgZGlza0NhcGFjaXR5OnBhcmFtZXRlcnMubnNVUkxDYWNoZURpc2tDYXBhY2l0eQogICAgICAg
ICAgICAgcmVsYXRpdmVQYXRoOnBhcmFtZXRlcnMudWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcl0p
LmdldCgpXTsKLSAgICB9CiAjZWxzZQotICAgIG1fZGlza0NhY2hlRGlyZWN0b3J5ID0gcGFyYW1l
dGVycy5kaXNrQ2FjaGVEaXJlY3Rvcnk7Ci0KLSAgICBpZiAoIW1fZGlza0NhY2hlRGlyZWN0b3J5
LmlzTnVsbCgpKSB7Ci0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRs
eShwYXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAgICAgICAg
IFtOU1VSTENhY2hlIHNldFNoYXJlZFVSTENhY2hlOmFkb3B0TlMoW1tOU1VSTENhY2hlIGFsbG9j
XQogICAgICAgICAgICAgaW5pdFdpdGhNZW1vcnlDYXBhY2l0eTpwYXJhbWV0ZXJzLm5zVVJMQ2Fj
aGVNZW1vcnlDYXBhY2l0eQogICAgICAgICAgICAgZGlza0NhcGFjaXR5OnBhcmFtZXRlcnMubnNV
UkxDYWNoZURpc2tDYXBhY2l0eQogICAgICAgICAgICAgZGlza1BhdGg6cGFyYW1ldGVycy5kaXNr
Q2FjaGVEaXJlY3RvcnldKS5nZXQoKV07Ci0gICAgfQogI2VuZGlmCisgICAgfQogCiAjaWYgUExB
VEZPUk0oSU9TKSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKICAg
ICBSZXRhaW5QdHI8Q0ZVUkxDYWNoZVJlZj4gY2FjaGUgPSBhZG9wdENGKENGVVJMQ2FjaGVDb3B5
U2hhcmVkVVJMQ2FjaGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9SZXNvdXJjZXMv
U2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IgYi9Tb3Vy
Y2UvV2ViS2l0Mi9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0
Lk5ldHdvcmtpbmcuc2IKaW5kZXggODc5YzUyMDZiM2YzOTZhODdlNjhlNjdmNmNkZmE5NTFkOTZl
N2QwOC4uNDA2NTI3ODUyMWFmNDdlZWEwODczY2QxNWU3ZDU2NGMzZWZiZjM0OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxl
LldlYktpdC5OZXR3b3JraW5nLnNiCisrKyBiL1NvdXJjZS9XZWJLaXQyL1Jlc291cmNlcy9TYW5k
Ym94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYgpAQCAtMjIsNyAr
MjIsNTQgQEAKIDsgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiAodmVyc2lvbiAx
KQotKGFsbG93IGRlZmF1bHQpCisoZGVueSBkZWZhdWx0ICh3aXRoIHBhcnRpYWwtc3ltYm9saWNh
dGlvbikpCisoYWxsb3cgc3lzdGVtLWF1ZGl0IGZpbGUtcmVhZC1tZXRhZGF0YSkKIAogKGltcG9y
dCAiY29tbW9uLnNiIikKIChpbXBvcnQgInJlbW92ZWQtZGV2LW5vZGVzLnNiIikKKworOzsgVXRp
bGl0eSBmdW5jdGlvbnMgZm9yIGhvbWUgZGlyZWN0b3J5IHJlbGF0aXZlIHBhdGggZmlsdGVycwor
KGRlZmluZSAoaG9tZS1yZWdleCBob21lLXJlbGF0aXZlLXJlZ2V4KQorICAocmVnZXggKHN0cmlu
Zy1hcHBlbmQgIyJeL3ByaXZhdGUvdmFyL21vYmlsZSIgaG9tZS1yZWxhdGl2ZS1yZWdleCkpKQor
CisoZGVmaW5lIChob21lLXN1YnBhdGggaG9tZS1yZWxhdGl2ZS1zdWJwYXRoKQorICAgIChzdWJw
YXRoIChzdHJpbmctYXBwZW5kICIvcHJpdmF0ZS92YXIvbW9iaWxlIiBob21lLXJlbGF0aXZlLXN1
YnBhdGgpKSkKKworKGRlZmluZSAoaG9tZS1saXRlcmFsIGhvbWUtcmVsYXRpdmUtbGl0ZXJhbCkK
KyAgICAobGl0ZXJhbCAoc3RyaW5nLWFwcGVuZCAiL3ByaXZhdGUvdmFyL21vYmlsZSIgaG9tZS1y
ZWxhdGl2ZS1saXRlcmFsKSkpCisKKzs7IFJlYWQtb25seSBwcmVmZXJlbmNlcyBhbmQgZGF0YQor
KG1vYmlsZS1wcmVmZXJlbmNlcy1yZWFkICJjb20uYXBwbGUuV2ViRm91bmRhdGlvbiIpCisoYXBw
bGUtY29va2llLWFjY2VzcyAnd2l0aC1yZWFkLXdyaXRlKQorCis7OyBTYW5kYm94IGV4dGVuc2lv
bnMKKyhhbGxvdyBmaWxlLXJlYWQqCisgICAgICAgKGV4dGVuc2lvbiAiY29tLmFwcGxlLndlYmtp
dC5yZWFkIikpCisKKzs7IEFjY2VzcyB0byBjbGllbnQncyBjYWNoZSBmb2xkZXIgJiByZS12ZW5k
aW5nIHRvIENGTmV0d29yay4KKyhhbGxvdyBmaWxlLXJlYWQqIGZpbGUtd3JpdGUqCisgICAgICAg
KGV4dGVuc2lvbiAiY29tLmFwcGxlLm5zdXJsc3RvcmFnZS5leHRlbnNpb24tY2FjaGUiKSkKKwor
KGFsbG93IGZpbGUtcmVhZCogZmlsZS13cml0ZSogKGV4dGVuc2lvbiAiY29tLmFwcGxlLmFwcC1z
YW5kYm94LnJlYWQtd3JpdGUiKSkKKyhhbGxvdyBmaWxlLWlzc3VlLWV4dGVuc2lvbiAoZXh0ZW5z
aW9uICJjb20uYXBwbGUuYXBwLXNhbmRib3gucmVhZC13cml0ZSIpKQorCis7OyBBY2Nlc3MgdG8g
b3duIGNhY2hlICYgdGVtcCBmb2xkZXJzLgorKGFsbG93IGZpbGUtcmVhZCogZmlsZS13cml0ZSoK
KyAgICAgICAoZXh0ZW5zaW9uICJjb20uYXBwbGUud2Via2l0LnJlYWQtd3JpdGUiKSkKKworOzsg
SU9LaXQgdXNlciBjbGllbnRzCisoYWxsb3cgaW9raXQtb3BlbgorICAgIChpb2tpdC11c2VyLWNs
aWVudC1jbGFzcyAiUm9vdERvbWFpblVzZXJDbGllbnQiKSkKKworOzsgVmFyaW91cyBzZXJ2aWNl
cyByZXF1aXJlZCBieSBDRk5ldHdvcmsgYW5kIG90aGVyIGZyYW1ld29ya3MKKyhhbGxvdyBtYWNo
LWxvb2t1cAorICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLlBvd2VyTWFuYWdlbWVudC5jb250
cm9sIikpCisKKyhuZXR3b3JrLWNsaWVudCkKKworOzsgU2VjdXJpdHkgZnJhbWV3b3JrCisoYWxs
b3cgbWFjaC1sb29rdXAKKyAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5vY3NwZCIpCisg
ICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuc2VjdXJpdHlkIikpCisKKyhkZW55IGZpbGUt
d3JpdGUtY3JlYXRlICh2bm9kZS10eXBlIFNZTUxJTkspKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234053</attachid>
            <date>2014-06-28 14:44:36 -0700</date>
            <delta_ts>2014-06-30 15:11:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134360-20140628144417.patch</filename>
            <type>text/plain</type>
            <size>12255</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwNDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMGZjMWY1Mzc4N2RlNzI4
MmY3NDM4OTEyMGMxNTlmN2I3MTY2M2U2Yi4uNzAxMjY3ODI1ZWFmMThhOTZjNzAwYmQ0ZDQ0YTNh
MWMxOWE4NmYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE0LTA2LTI4ICBPbGl2
ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzdHJpY3QgbmV0d29yayBw
cm9jZXNzIHNhbmRib3gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzNDM2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBtb3JlIHJlc3RyaWN0aW9ucyB0byB0aGUgbmV0d29yayBwcm9jZXNzIHNhbmRi
b3guCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXpl
TmV0d29ya1Byb2Nlc3NDb2NvYSk6CisgICAgICAgICAgQWx3YXlzIHVzZSB0aGUgY2FjaGUgZGly
ZWN0b3J5IHByb3ZpZGVkIGluIHRoZSBpbml0aWFsaXphdGlvbiBwYXJhbWV0ZXJzLAorICAgICAg
ICAgIGFuZCBtYWtlIHN1cmUgd2UgY29uc3VtZSB0aGUgY29va2llIGRpcmVjdG9yeSBleHRlbnNp
b24uCisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldl
YktpdC5OZXR3b3JraW5nLnNiOgorICAgICAgICAgIE1ha2UgdGhlIHNhbmRib3ggcHJvZmlsZSBt
dWNoIG1vcmUgcmVzdHJpY3RpdmUuCisgICAgICAgICogU2hhcmVkL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgICBUaGUg
bmV0d29yayBwcm9jZXNzIG5vdyByZXF1aXJlcyBhbiBleHRlbnNpb24gdG8gYWNjZXNzCisgICAg
ICAgICAgaXRzIGNvb2tpZSBzdG9yYWdlLgorICAgICAgICAqIFNoYXJlZC9tYWMvU2FuZGJveFV0
aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OnBhdGhGb3JQcm9jZXNzQ29udGFpbmVyKToK
KyAgICAgICAgKiBTaGFyZWQvbWFjL1NhbmRib3hVdGlsaXRpZXMuaDoKKyAgICAgICAgICBXZSBu
ZWVkIHRvIGJlIGFibGUgdG8gZ2V0IGhvbGQgb2Ygb3VyIGNvbnRhaW5lciBzbworICAgICAgICAg
IHRoYXQgd2UgY2FuIGdldCB0aGUgY29ycmVjdCBjb29raWUgc3RvcmFnZSBkaXJlY3RvcnkuCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b250ZXh0OjplbnN1cmVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICAgV2UgaGF2ZSB0byBwYXNz
IGluIHRoZSBhbiBleHRlbnNpb24gZm9yIHRoZSBjb29raWUgc3RvcmFnZSBkaXJlY3Rvcnkgd2hl
bgorICAgICAgICBpbml0YWxpc2luZyB0aGUgbmV0d29yayBwcm9jZXNzCisgICAgICAgICogVUlQ
cm9jZXNzL21hYy9XZWJDb250ZXh0TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0
OjpwbGF0Zm9ybURlZmF1bHRDb29raWVTdG9yYWdlRGlyZWN0b3J5KToKKyAgICAgICAgICBNYWtl
IHN1cmUgd2UgcHJvdmlkZSB0aGUgY29ycmVjdCBsb2NhdGlvbiBvbiBJT1MKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICAgQ29uc3Vt
ZSB0aGUgY29va2llIHN0b3JhZ2UgZXh0ZW5zaW9uCisKIDIwMTQtMDYtMjUgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPUyBXSzJdIFBhZ2UganVt
cHMgd2hlbiBydWJiZXItYmFuZGluZyBvbiBhenVyZW1hZ2F6aW5lLmNvbSAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0Nv
Y29hLm1tCmluZGV4IDlmOGMyOGNiNWQyNDYwODI4M2Q3M2FkOTc5N2RlMzJiZTY0ZWU3NzQuLjQy
YWJkNGJlZjI4NjAyMjcxNjg1MTg1ZjlmMTFiOWMwMWQyMGIwZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2Nv
YS5tbQpAQCAtNjAsMjQgKzYwLDI0IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtTG93
TWVtb3J5SGFuZGxlcihib29sKQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRp
YWxpemVOZXR3b3JrUHJvY2Vzc0NvY29hKGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzKQogeworICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJt
YW5lbnRseShwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUp
OworICAgIG1fZGlza0NhY2hlRGlyZWN0b3J5ID0gcGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3Rv
cnk7CisKKyAgICBpZiAoIW1fZGlza0NhY2hlRGlyZWN0b3J5LmlzTnVsbCgpKSB7CisgICAgICAg
IGlmICghU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMuZGlz
a0NhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSkKKyAgICAgICAgICAgIENSQVNIKCk7CiAj
aWYgUExBVEZPUk0oSU9TKQotICAgIGlmICghcGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJZGVu
dGlmaWVyLmlzTnVsbCgpKSB7CiAgICAgICAgIFtOU1VSTENhY2hlIHNldFNoYXJlZFVSTENhY2hl
OmFkb3B0TlMoW1tOU1VSTENhY2hlIGFsbG9jXQogICAgICAgICAgICAgX2luaXRXaXRoTWVtb3J5
Q2FwYWNpdHk6cGFyYW1ldGVycy5uc1VSTENhY2hlTWVtb3J5Q2FwYWNpdHkKICAgICAgICAgICAg
IGRpc2tDYXBhY2l0eTpwYXJhbWV0ZXJzLm5zVVJMQ2FjaGVEaXNrQ2FwYWNpdHkKICAgICAgICAg
ICAgIHJlbGF0aXZlUGF0aDpwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXJdKS5n
ZXQoKV07Ci0gICAgfQogI2Vsc2UKLSAgICBtX2Rpc2tDYWNoZURpcmVjdG9yeSA9IHBhcmFtZXRl
cnMuZGlza0NhY2hlRGlyZWN0b3J5OwotCi0gICAgaWYgKCFtX2Rpc2tDYWNoZURpcmVjdG9yeS5p
c051bGwoKSkgewotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHko
cGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwogICAgICAgICBb
TlNVUkxDYWNoZSBzZXRTaGFyZWRVUkxDYWNoZTphZG9wdE5TKFtbTlNVUkxDYWNoZSBhbGxvY10K
ICAgICAgICAgICAgIGluaXRXaXRoTWVtb3J5Q2FwYWNpdHk6cGFyYW1ldGVycy5uc1VSTENhY2hl
TWVtb3J5Q2FwYWNpdHkKICAgICAgICAgICAgIGRpc2tDYXBhY2l0eTpwYXJhbWV0ZXJzLm5zVVJM
Q2FjaGVEaXNrQ2FwYWNpdHkKICAgICAgICAgICAgIGRpc2tQYXRoOnBhcmFtZXRlcnMuZGlza0Nh
Y2hlRGlyZWN0b3J5XSkuZ2V0KCldOwotICAgIH0KICNlbmRpZgorICAgIH0KIAogI2lmIFBMQVRG
T1JNKElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiAgICAg
UmV0YWluUHRyPENGVVJMQ2FjaGVSZWY+IGNhY2hlID0gYWRvcHRDRihDRlVSTENhY2hlQ29weVNo
YXJlZFVSTENhY2hlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUmVzb3VyY2VzL1Nh
bmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiIGIvU291cmNl
L1dlYktpdDIvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5O
ZXR3b3JraW5nLnNiCmluZGV4IDg3OWM1MjA2YjNmMzk2YTg3ZTY4ZTY3ZjZjZGZhOTUxZDk2ZTdk
MDguLjc3OGFlZWIxYmQ5OTk4OTgwNjM5MGM3ZGE5NjgyOTcxYzYzZWU2MjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5X
ZWJLaXQuTmV0d29ya2luZy5zYgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9SZXNvdXJjZXMvU2FuZGJv
eFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IKQEAgLTIyLDcgKzIy
LDUwIEBACiA7IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogKHZlcnNpb24gMSkK
LShhbGxvdyBkZWZhdWx0KQorKGRlbnkgZGVmYXVsdCAod2l0aCBwYXJ0aWFsLXN5bWJvbGljYXRp
b24pKQorKGFsbG93IHN5c3RlbS1hdWRpdCBmaWxlLXJlYWQtbWV0YWRhdGEpCiAKIChpbXBvcnQg
ImNvbW1vbi5zYiIpCiAoaW1wb3J0ICJyZW1vdmVkLWRldi1ub2Rlcy5zYiIpCisKKzs7IEFjY2Vz
cyBDRk5ldHdvcmsgc2hhcmVkIGNvb2tpZXMKKzs7IFRoaXMgaXMgdG9vIGdlbmVyb3VzIC0tIDxy
ZGFyOi8vcHJvYmxlbS8xNzQ5Njc1Nj4KKyhhcHBsZS1jb29raWUtYWNjZXNzICd3aXRoLXJlYWQt
d3JpdGUpCisKKzs7IFNhbmRib3ggZXh0ZW5zaW9ucworKGFsbG93IGZpbGUtcmVhZCoKKyAgICAg
ICAoZXh0ZW5zaW9uICJjb20uYXBwbGUud2Via2l0LnJlYWQiKSkKKworOzsgQWNjZXNzIHRvIGNs
aWVudCdzIGNhY2hlIGZvbGRlciAmIHJlLXZlbmRpbmcgdG8gQ0ZOZXR3b3JrLgorKGFsbG93IGZp
bGUtcmVhZCogZmlsZS13cml0ZSoKKyAgICAgICAoZXh0ZW5zaW9uICJjb20uYXBwbGUubnN1cmxz
dG9yYWdlLmV4dGVuc2lvbi1jYWNoZSIpKQorKGFsbG93IGZpbGUtaXNzdWUtZXh0ZW5zaW9uCisg
ICAgICAgKGV4dGVuc2lvbi1jbGFzcyAiY29tLmFwcGxlLm5zdXJsc3RvcmFnZS5leHRlbnNpb24t
Y2FjaGUiKSkKKworOzsgQXBwIHNhbmRib3ggZXh0ZW5zaW9ucworKGFsbG93IGZpbGUtcmVhZCog
ZmlsZS13cml0ZSoKKyAgICAgICAoZXh0ZW5zaW9uICJjb20uYXBwbGUuYXBwLXNhbmRib3gucmVh
ZC13cml0ZSIpKQorKGFsbG93IGZpbGUtaXNzdWUtZXh0ZW5zaW9uCisgICAgICAgKGV4dGVuc2lv
bi1jbGFzcyAiY29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQtd3JpdGUiKSkKKworOzsgQWNjZXNz
IHRvIG93biBjYWNoZSAmIHRlbXAgZm9sZGVycy4KKyhhbGxvdyBmaWxlLXJlYWQqIGZpbGUtd3Jp
dGUqCisgICAgICAgKGV4dGVuc2lvbiAiY29tLmFwcGxlLndlYmtpdC5yZWFkLXdyaXRlIikpCisK
Kzs7IElPS2l0IHVzZXIgY2xpZW50cworKGFsbG93IGlva2l0LW9wZW4KKyAgICAgICAoaW9raXQt
dXNlci1jbGllbnQtY2xhc3MgIlJvb3REb21haW5Vc2VyQ2xpZW50IikpCisKKzs7IFZhcmlvdXMg
c2VydmljZXMgcmVxdWlyZWQgYnkgQ0ZOZXR3b3JrIGFuZCBvdGhlciBmcmFtZXdvcmtzCisoYWxs
b3cgbWFjaC1sb29rdXAKKyAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5Qb3dlck1hbmFn
ZW1lbnQuY29udHJvbCIpKQorCisobmV0d29yay1jbGllbnQpCisKKzs7IFNlY3VyaXR5IGZyYW1l
d29yaworKGFsbG93IG1hY2gtbG9va3VwCisgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUu
b2NzcGQiKQorICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnNlY3VyaXR5ZCIpKQorCiso
ZGVueSBmaWxlLXdyaXRlLWNyZWF0ZQorICAgICAgICh2bm9kZS10eXBlIFNZTUxJTkspKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDE0MWJhN2E3OWViZDk5ZjQ4NWFh
OGIxNDg4NzQ4OGUzNGY0NWU4Y2IuLjNmYmM1N2EyMjgxZDdkYWVjNDRiMGFhOTBkYTg3NDFkMjQx
MThmMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTQyLDYgKzQy
LDggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb24KICAgICBlbmNvZGVyLmVuY29kZUVudW0oY2Fj
aGVNb2RlbCk7CiAgICAgZW5jb2RlciA8PCBkaXNrQ2FjaGVEaXJlY3Rvcnk7CiAgICAgZW5jb2Rl
ciA8PCBkaXNrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgZW5jb2RlciA8PCBj
b29raWVTdG9yYWdlRGlyZWN0b3J5OworICAgIGVuY29kZXIgPDwgY29va2llU3RvcmFnZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZTsKICAgICBlbmNvZGVyIDw8IHNob3VsZFVzZVRlc3RpbmdOZXR3
b3JrU2Vzc2lvbjsKICNpZiBFTkFCTEUoQ1VTVE9NX1BST1RPQ09MUykKICAgICBlbmNvZGVyIDw8
IHVybFNjaGVtZXNSZWdpc3RlcmVkRm9yQ3VzdG9tUHJvdG9jb2xzOwpAQCAtNzMsNiArNzUsMTAg
QEAgYm9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6QXJn
dW1lbnREZWNvZGVyJiBkZWNvZGVyLCBOZXQKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmRpc2tDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRs
ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3Vs
dC5jb29raWVTdG9yYWdlRGlyZWN0b3J5KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShy
ZXN1bHQuc2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogI2lmIEVOQUJMRShDVVNUT01fUFJPVE9DT0xTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmgKaW5kZXggNThhY2IzOTlmMzM5NThmMzNmMzFjOGUyODdjMjVjN2EwMDYzZGJlMC4u
OGJlNmJmZmNlNzdiMGRlMjU0M2U5YjViMGJmNWY5ZDkyZTVhODBjNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oCkBAIC01Niw2ICs1Niw5IEBAIHN0cnVjdCBOZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgU3RyaW5nIGRpc2tDYWNoZURpcmVjdG9yeTsKICAg
ICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgZGlza0NhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFu
ZGxlOwogCisgICAgU3RyaW5nIGNvb2tpZVN0b3JhZ2VEaXJlY3Rvcnk7CisgICAgU2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlIGNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisK
ICAgICBib29sIHNob3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbjsKIAogI2lmIEVOQUJMRShD
VVNUT01fUFJPVE9DT0xTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9T
YW5kYm94VXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2FuZGJveFV0
aWxpdGllcy5jcHAKaW5kZXggMGU5NTU4ZDRkMzE2YjFhMDg5NGZjMTQ0MDc2N2NiYzg2ZGI2ODIx
Mi4uNDVhZjgzMjk5ZDAyYzk1ZTY3NjYxYjhmYTc1OWE2Y2RiNjJmNzg0YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TYW5kYm94VXRpbGl0aWVzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NhbmRib3hVdGlsaXRpZXMuY3BwCkBAIC02Nyw0ICs2Nywx
NyBAQCBib29sIHByb2Nlc3NIYXNDb250YWluZXIoKQogICAgIHJldHVybiBoYXNDb250YWluZXI7
CiB9CiAKK1N0cmluZyBwYXRoRm9yUHJvY2Vzc0NvbnRhaW5lcigpCit7CisgICAgY2hhciBwYXRo
W01BWFBBVEhMRU4gKyAxXTsKKyAgICBpZiAoc2FuZGJveF9jb250YWluZXJfcGF0aF9mb3JfcGlk
KGdldHBpZCgpLCBwYXRoLCBNQVhQQVRITEVOKSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOwor
CisgICAgaWYgKCFwYXRoWzBdKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICBwYXRo
W01BWFBBVEhMRU5dID0gMDsKKyAgICByZXR1cm4gU3RyaW5nKHBhdGgpOworfQorCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NhbmRib3hVdGlsaXRpZXMuaCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2FuZGJveFV0aWxpdGllcy5oCmluZGV4IDkwM2FlMWJh
OGNhZTI0MTVlYzliZTIzYzlkZjUzZDZiNzViZjcyNDIuLjQ3NWYyYzI5OTQwNmVjZThjN2Y3NzEw
OGY5ZjVlYWVlMzg2YjcxZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
U2FuZGJveFV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2FuZGJv
eFV0aWxpdGllcy5oCkBAIC0yNywxMiArMjcsMTYgQEAKICNkZWZpbmUgU2FuZGJveFV0aWxpdGll
c19oCiAKICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGJvb2wgcHJvY2Vzc0lzU2FuZGJveGVkKHBp
ZF90KTsKIGJvb2wgcHJvY2Vzc0hhc0NvbnRhaW5lcigpOwogCisvLyBSZXR1cm5zIGFuIGVtcHR5
IHN0cmluZyBpZiB0aGUgcHJvY2VzcyBpcyBub3QgaW4gYSBjb250YWluZXIKK1N0cmluZyBwYXRo
Rm9yUHJvY2Vzc0NvbnRhaW5lcigpOworCiB9CiAKICNlbmRpZiAvLyBTYW5kYm94VXRpbGl0aWVz
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAppbmRleCAyY2M2MWE0N2Uz
NzJkMmYzYWY0NGNjNzE4NGQ4ZTc1ZmQ3MWI5YjlmLi5jNTU2MmMyMjI4YTE5YzY1OTExMGE2MWI3
Y2E2N2VlMTg5YTA1YTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3Bw
CkBAIC00MTEsNiArNDExLDEwIEBAIHZvaWQgV2ViQ29udGV4dDo6ZW5zdXJlTmV0d29ya1Byb2Nl
c3MoKQogICAgIGlmICghcGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3RvcnkuaXNFbXB0eSgpKQog
ICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3Rv
cnkocGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3RvcnksIHBhcmFtZXRlcnMuZGlza0NhY2hlRGly
ZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKIAorICAgIHBhcmFtZXRlcnMuY29va2llU3RvcmFnZURp
cmVjdG9yeSA9IChjb29raWVTdG9yYWdlRGlyZWN0b3J5KCkpOworICAgIGlmICghcGFyYW1ldGVy
cy5jb29raWVTdG9yYWdlRGlyZWN0b3J5LmlzRW1wdHkoKSkKKyAgICAgICAgU2FuZGJveEV4dGVu
c2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KHBhcmFtZXRlcnMuY29va2ll
U3RvcmFnZURpcmVjdG9yeSwgcGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlKTsKKwogICAgIHBhcmFtZXRlcnMuc2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNz
aW9uID0gbV9zaG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb247CiAKICAgICAvLyBBZGQgYW55
IHBsYXRmb3JtIHNwZWNpZmljIHBhcmFtZXRlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvV2ViQ29udGV4dE1hYy5tbQppbmRleCBlZGNmNDEwMWFmOWY4M2I1MTgzMzdiYjJiY2Y3
ZDE5Y2ZlY2Y1MTZkLi41YTAzZTRmYWM4ZjgwMTRjNDdlMmEzNzQyNDNlMjZmYTc0NjYwZTE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNYWMubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWFjLm1tCkBAIC0y
Nyw2ICsyNyw3IEBACiAjaW1wb3J0ICJXZWJDb250ZXh0LmgiCiAKICNpbXBvcnQgIlBsdWdpblBy
b2Nlc3NNYW5hZ2VyLmgiCisjaW1wb3J0ICJTYW5kYm94VXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJU
ZXh0Q2hlY2tlci5oIgogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVySW50ZXJu
YWwuaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckludGVybmFsLmgiCkBA
IC0yNjksOCArMjcwLDE3IEBAIFN0cmluZyBXZWJDb250ZXh0OjpwbGF0Zm9ybURlZmF1bHREaXNr
Q2FjaGVEaXJlY3RvcnkoKSBjb25zdAogCiBTdHJpbmcgV2ViQ29udGV4dDo6cGxhdGZvcm1EZWZh
dWx0Q29va2llU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0CiB7CisjaWYgUExBVEZPUk0oSU9TKQor
ICAgIFN0cmluZyBwYXRoID0gcGF0aEZvclByb2Nlc3NDb250YWluZXIoKTsKKyAgICBpZiAocGF0
aC5pc0VtcHR5KCkpCisgICAgICAgIHBhdGggPSBbQCJ+LyIgc3RyaW5nQnlTdGFuZGFyZGl6aW5n
UGF0aF07CisKKyAgICBwYXRoID0gcGF0aCArICIvTGlicmFyeS9Db29raWVzIjsKKyAgICByZXR1
cm4gc3RyaW5nQnlSZXNvbHZpbmdTeW1saW5rc0luUGF0aChwYXRoKTsKKyNlbHNlCiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gW0AiIiBzdHJpbmdCeVN0YW5kYXJkaXppbmdQYXRo
XTsKKyNlbmRpZgogfQogCiBTdHJpbmcgV2ViQ29udGV4dDo6cGxhdGZvcm1EZWZhdWx0V2ViU1FM
RGF0YWJhc2VEaXJlY3RvcnkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2Nv
Y29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCA4MGE5NjI2ZGNiYTgzMzliM2NkYmQ3NGFjNzdi
MmEzZTA0OTBiOTMxLi4xZTY4NzhmYWIxMTE1M2I4OTU4N2IwMGJjZjAzYmQ2N2FjZTMyOTE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2Nv
YS5tbQpAQCAtMTY3LDYgKzE2Nyw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFs
aXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzCiAgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMud2ViU1FMRGF0YWJh
c2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwogICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1
bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUpOwogICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJh
bWV0ZXJzLmRpc2tDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisgICAgU2FuZGJveEV4
dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAjZW5kaWYKIAogICAgIC8vIFdoZW4gdGhlIG5ldHdvcmsg
cHJvY2VzcyBpcyBlbmFibGVkLCBlYWNoIHdlYiBwcm9jZXNzIHdhbnRzIGEgc3RhbmQtYWxvbmUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234100</attachid>
            <date>2014-06-30 15:11:45 -0700</date>
            <delta_ts>2014-06-30 15:48:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134360-20140630151125.patch</filename>
            <type>text/plain</type>
            <size>12326</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwNTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYWY1NjI5N2RlNGJjYTgy
N2E2MGUwNDYwNWY0YmUxZjVmNTJiZjI2NC4uOTYxN2EwYTJkNTQwYjMwNWE0OWUxZTNlYzU0NTY3
MzhjYTZmYWQ1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE0LTA2LTI4ICBPbGl2
ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICBSZXN0cmljdCBuZXR3b3JrIHBy
b2Nlc3Mgc2FuZGJveAorICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzQzNjAKKworICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgQWRkIG1vcmUgcmVzdHJpY3Rpb25zIHRvIHRoZSBuZXR3b3JrIHByb2Nlc3Mgc2FuZGJveC4K
KworICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbToK
KyAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29y
a1Byb2Nlc3NDb2NvYSk6CisgICAgICAgICBBbHdheXMgdXNlIHRoZSBjYWNoZSBkaXJlY3Rvcnkg
cHJvdmlkZWQgaW4gdGhlIGluaXRpYWxpemF0aW9uIHBhcmFtZXRlcnMsCisgICAgICAgICBhbmQg
bWFrZSBzdXJlIHdlIGNvbnN1bWUgdGhlIGNvb2tpZSBkaXJlY3RvcnkgZXh0ZW5zaW9uLgorICAg
ICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5OZXR3
b3JraW5nLnNiOgorICAgICAgICAgTWFrZSB0aGUgc2FuZGJveCBwcm9maWxlIG11Y2ggbW9yZSBy
ZXN0cmljdGl2ZS4KKyAgICAgICAqIFNoYXJlZC9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAqIFNoYXJlZC9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICBUaGUgbmV0d29yayBwcm9jZXNz
IG5vdyByZXF1aXJlcyBhbiBleHRlbnNpb24gdG8gYWNjZXNzCisgICAgICAgICBpdHMgY29va2ll
IHN0b3JhZ2UuCisgICAgICAgKiBTaGFyZWQvbWFjL1NhbmRib3hVdGlsaXRpZXMuY3BwOgorICAg
ICAgIChXZWJLaXQ6OnBhdGhGb3JQcm9jZXNzQ29udGFpbmVyKToKKyAgICAgICAqIFNoYXJlZC9t
YWMvU2FuZGJveFV0aWxpdGllcy5oOgorICAgICAgICAgV2UgbmVlZCB0byBiZSBhYmxlIHRvIGdl
dCBob2xkIG9mIG91ciBjb250YWluZXIgc28KKyAgICAgICAgIHRoYXQgd2UgY2FuIGdldCB0aGUg
Y29ycmVjdCBjb29raWUgc3RvcmFnZSBkaXJlY3RvcnkuCisgICAgICAgKiBVSVByb2Nlc3MvV2Vi
Q29udGV4dC5jcHA6CisgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6ZW5zdXJlTmV0d29ya1By
b2Nlc3MpOgorICAgICAgICAgV2UgaGF2ZSB0byBwYXNzIGluIHRoZSBhbiBleHRlbnNpb24gZm9y
IHRoZSBjb29raWUgc3RvcmFnZSBkaXJlY3Rvcnkgd2hlbgorICAgICAgIGluaXRhbGlzaW5nIHRo
ZSBuZXR3b3JrIHByb2Nlc3MKKyAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1hYy5t
bToKKyAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9ybURlZmF1bHRDb29raWVTdG9y
YWdlRGlyZWN0b3J5KToKKyAgICAgICAgIE1ha2Ugc3VyZSB3ZSBwcm92aWRlIHRoZSBjb3JyZWN0
IGxvY2F0aW9uIG9uIElPUworICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29j
b2EubW06CisgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2Vi
UHJvY2Vzcyk6CisgICAgICAgICBDb25zdW1lIHRoZSBjb29raWUgc3RvcmFnZSBleHRlbnNpb24K
KwogMjAxNC0wNi0yOSAgWW9hdiBXZWlzcyAgPHlvYXZAeW9hdi53cz4KIAogICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgSFRNTEltYWdlRWxlbWVudCdzIHNpemVzIGF0dHJpYnV0ZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNz
Q29jb2EubW0KaW5kZXggOWY4YzI4Y2I1ZDI0NjA4MjgzZDczYWQ5Nzk3ZGUzMmJlNjRlZTc3NC4u
YjA3NjA0ZGQwNDlmNmNlOTc2YWZkZTZkODMzYzYxNWUwOTY1NzMwMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0Nv
Y29hLm1tCkBAIC02MCwyNCArNjAsMjMgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1M
b3dNZW1vcnlIYW5kbGVyKGJvb2wpCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5p
dGlhbGl6ZU5ldHdvcmtQcm9jZXNzQ29jb2EoY29uc3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CisgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBl
cm1hbmVudGx5KHBhcmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRs
ZSk7CisgICAgbV9kaXNrQ2FjaGVEaXJlY3RvcnkgPSBwYXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVj
dG9yeTsKKworICAgIGlmICghbV9kaXNrQ2FjaGVEaXJlY3RvcnkuaXNOdWxsKCkpIHsKKyAgICAg
ICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMuZGlza0Nh
Y2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKICNpZiBQTEFURk9STShJT1MpCi0gICAgaWYg
KCFwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIuaXNOdWxsKCkpIHsKICAgICAg
ICAgW05TVVJMQ2FjaGUgc2V0U2hhcmVkVVJMQ2FjaGU6YWRvcHROUyhbW05TVVJMQ2FjaGUgYWxs
b2NdCiAgICAgICAgICAgICBfaW5pdFdpdGhNZW1vcnlDYXBhY2l0eTpwYXJhbWV0ZXJzLm5zVVJM
Q2FjaGVNZW1vcnlDYXBhY2l0eQogICAgICAgICAgICAgZGlza0NhcGFjaXR5OnBhcmFtZXRlcnMu
bnNVUkxDYWNoZURpc2tDYXBhY2l0eQogICAgICAgICAgICAgcmVsYXRpdmVQYXRoOnBhcmFtZXRl
cnMudWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcl0pLmdldCgpXTsKLSAgICB9CiAjZWxzZQotICAg
IG1fZGlza0NhY2hlRGlyZWN0b3J5ID0gcGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3Rvcnk7Ci0K
LSAgICBpZiAoIW1fZGlza0NhY2hlRGlyZWN0b3J5LmlzTnVsbCgpKSB7Ci0gICAgICAgIFNhbmRi
b3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAgICAgICAgIFtOU1VSTENhY2hlIHNldFNoYXJlZFVSTENh
Y2hlOmFkb3B0TlMoW1tOU1VSTENhY2hlIGFsbG9jXQogICAgICAgICAgICAgaW5pdFdpdGhNZW1v
cnlDYXBhY2l0eTpwYXJhbWV0ZXJzLm5zVVJMQ2FjaGVNZW1vcnlDYXBhY2l0eQogICAgICAgICAg
ICAgZGlza0NhcGFjaXR5OnBhcmFtZXRlcnMubnNVUkxDYWNoZURpc2tDYXBhY2l0eQogICAgICAg
ICAgICAgZGlza1BhdGg6cGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3RvcnldKS5nZXQoKV07Ci0g
ICAgfQogI2VuZGlmCisgICAgfQogCiAjaWYgUExBVEZPUk0oSU9TKSB8fCBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKICAgICBSZXRhaW5QdHI8Q0ZVUkxDYWNoZVJlZj4g
Y2FjaGUgPSBhZG9wdENGKENGVVJMQ2FjaGVDb3B5U2hhcmVkVVJMQ2FjaGUoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBw
bGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IgYi9Tb3VyY2UvV2ViS2l0Mi9SZXNvdXJjZXMvU2FuZGJv
eFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IKaW5kZXggODc5YzUy
MDZiM2YzOTZhODdlNjhlNjdmNmNkZmE5NTFkOTZlN2QwOC4uNjA2MTBjZmFhNTgzYjg1ZGM5NDZj
ZTcwZGUyZTc4ZmI2YzNkYzlmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUmVzb3VyY2Vz
L1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5X
ZWJLaXQuTmV0d29ya2luZy5zYgpAQCAtMjIsNyArMjIsNDggQEAKIDsgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogCiAodmVyc2lvbiAxKQotKGFsbG93IGRlZmF1bHQpCisoZGVueSBk
ZWZhdWx0ICh3aXRoIHBhcnRpYWwtc3ltYm9saWNhdGlvbikpCisoYWxsb3cgc3lzdGVtLWF1ZGl0
IGZpbGUtcmVhZC1tZXRhZGF0YSkKIAogKGltcG9ydCAiY29tbW9uLnNiIikKIChpbXBvcnQgInJl
bW92ZWQtZGV2LW5vZGVzLnNiIikKKworOzsgQWNjZXNzIENGTmV0d29yayBzaGFyZWQgY29va2ll
cworOzsgVGhpcyBpcyB0b28gZ2VuZXJvdXMgLS0gPHJkYXI6Ly9wcm9ibGVtLzE3NDk2NzU2Pgor
KGFwcGxlLWNvb2tpZS1hY2Nlc3MgJ3dpdGgtcmVhZC13cml0ZSkKKworOzsgU2FuZGJveCBleHRl
bnNpb25zCisoYWxsb3cgZmlsZS1yZWFkKiAoY29udGFpbmVyLXN1YnBhdGggIkxpYnJhcnkvIikK
KyAgICAgICAoZXh0ZW5zaW9uICJjb20uYXBwbGUud2Via2l0LnJlYWQiKSkKKworOzsgQWNjZXNz
IHRvIGNsaWVudCdzIGNhY2hlIGZvbGRlciAmIHJlLXZlbmRpbmcgdG8gQ0ZOZXR3b3JrLgorKGFs
bG93IGZpbGUtcmVhZCogZmlsZS13cml0ZSogKGNvbnRhaW5lci1zdWJwYXRoICJMaWJyYXJ5LyIp
CisgICAgICAgKGV4dGVuc2lvbiAiY29tLmFwcGxlLm5zdXJsc3RvcmFnZS5leHRlbnNpb24tY2Fj
aGUiKSkKKyhhbGxvdyBmaWxlLWlzc3VlLWV4dGVuc2lvbiAgKGNvbnRhaW5lci1zdWJwYXRoICJM
aWJyYXJ5LyIpCisgICAgICAgKGV4dGVuc2lvbi1jbGFzcyAiY29tLmFwcGxlLm5zdXJsc3RvcmFn
ZS5leHRlbnNpb24tY2FjaGUiKSkKKworOzsgQXBwIHNhbmRib3ggZXh0ZW5zaW9ucworKGFsbG93
IGZpbGUtcmVhZCogZmlsZS13cml0ZSogKGNvbnRhaW5lci1zdWJwYXRoICJMaWJyYXJ5LyIpCisg
ICAgICAgKGV4dGVuc2lvbiAiY29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQtd3JpdGUiKSkKKwor
OzsgQWNjZXNzIHRvIG93biBjYWNoZSAmIHRlbXAgZm9sZGVycy4KKyhhbGxvdyBmaWxlLXJlYWQq
IGZpbGUtd3JpdGUqIChjb250YWluZXItc3VicGF0aCAiIikKKyAgICAgICAoZXh0ZW5zaW9uICJj
b20uYXBwbGUud2Via2l0LnJlYWQtd3JpdGUiKSkKKworOzsgSU9LaXQgdXNlciBjbGllbnRzCiso
YWxsb3cgaW9raXQtb3BlbgorICAgICAgIChpb2tpdC11c2VyLWNsaWVudC1jbGFzcyAiUm9vdERv
bWFpblVzZXJDbGllbnQiKSkKKworOzsgVmFyaW91cyBzZXJ2aWNlcyByZXF1aXJlZCBieSBDRk5l
dHdvcmsgYW5kIG90aGVyIGZyYW1ld29ya3MKKyhhbGxvdyBtYWNoLWxvb2t1cAorICAgICAgIChn
bG9iYWwtbmFtZSAiY29tLmFwcGxlLlBvd2VyTWFuYWdlbWVudC5jb250cm9sIikpCisKKyhuZXR3
b3JrLWNsaWVudCkKKworOzsgU2VjdXJpdHkgZnJhbWV3b3JrCisoYWxsb3cgbWFjaC1sb29rdXAK
KyAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5vY3NwZCIpCisgICAgICAgKGdsb2JhbC1u
YW1lICJjb20uYXBwbGUuc2VjdXJpdHlkIikpCisKKyhkZW55IGZpbGUtd3JpdGUtY3JlYXRlCisg
ICAgICAgKHZub2RlLXR5cGUgU1lNTElOSykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKaW5kZXggMTQxYmE3YTc5ZWJkOTlmNDg1YWE4YjE0ODg3NDg4ZTM0ZjQ1ZThjYi4uM2Zi
YzU3YTIyODFkN2RhZWM0NGIwYWE5MGRhODc0MWQyNDExOGYyOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNDIsNiArNDIsOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIp
IGNvbgogICAgIGVuY29kZXIuZW5jb2RlRW51bShjYWNoZU1vZGVsKTsKICAgICBlbmNvZGVyIDw8
IGRpc2tDYWNoZURpcmVjdG9yeTsKICAgICBlbmNvZGVyIDw8IGRpc2tDYWNoZURpcmVjdG9yeUV4
dGVuc2lvbkhhbmRsZTsKKyAgICBlbmNvZGVyIDw8IGNvb2tpZVN0b3JhZ2VEaXJlY3Rvcnk7Cisg
ICAgZW5jb2RlciA8PCBjb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogICAg
IGVuY29kZXIgPDwgc2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uOwogI2lmIEVOQUJMRShD
VVNUT01fUFJPVE9DT0xTKQogICAgIGVuY29kZXIgPDwgdXJsU2NoZW1lc1JlZ2lzdGVyZWRGb3JD
dXN0b21Qcm90b2NvbHM7CkBAIC03Myw2ICs3NSwxMCBAQCBib29sIE5ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIE5l
dAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
ZGlza0NhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmNvb2tpZVN0b3JhZ2VEaXJlY3Rvcnkp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
Y29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5zaG91bGRVc2VUZXN0aW5nTmV0
d29ya1Nlc3Npb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAjaWYgRU5BQkxFKENVU1RPTV9Q
Uk9UT0NPTFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA1OGFjYjM5OWYz
Mzk1OGYzM2YzMWM4ZTI4N2MyNWM3YTAwNjNkYmUwLi44YmU2YmZmY2U3N2IwZGUyNTQzZTliNWIw
YmY1ZjlkOTJlNWE4MGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTU2
LDYgKzU2LDkgQEAgc3RydWN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAg
ICBTdHJpbmcgZGlza0NhY2hlRGlyZWN0b3J5OwogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSBkaXNrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiAKKyAgICBTdHJpbmcgY29va2ll
U3RvcmFnZURpcmVjdG9yeTsKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgY29va2llU3Rv
cmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKwogICAgIGJvb2wgc2hvdWxkVXNlVGVzdGlu
Z05ldHdvcmtTZXNzaW9uOwogCiAjaWYgRU5BQkxFKENVU1RPTV9QUk9UT0NPTFMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NhbmRib3hVdGlsaXRpZXMuY3BwIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TYW5kYm94VXRpbGl0aWVzLmNwcAppbmRleCAwZTk1NThk
NGQzMTZiMWEwODk0ZmMxNDQwNzY3Y2JjODZkYjY4MjEyLi5lNzE0YTg2N2M2ZDkzN2UxMTExOGRh
ZWQwODdiY2FhNzQyMzQwNDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L1NhbmRib3hVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2Fu
ZGJveFV0aWxpdGllcy5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJTYW5kYm94VXRp
bGl0aWVzLmgiCiAKICNpbmNsdWRlIDxhcnJheT4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogI2lmIF9faGFzX2luY2x1ZGUoPHNhbmRib3gvcHJpdmF0ZS5oPikKICNpbXBvcnQg
PHNhbmRib3gvcHJpdmF0ZS5oPgpAQCAtNjcsNCArNjgsMTMgQEAgYm9vbCBwcm9jZXNzSGFzQ29u
dGFpbmVyKCkKICAgICByZXR1cm4gaGFzQ29udGFpbmVyOwogfQogCitTdHJpbmcgcGF0aEZvclBy
b2Nlc3NDb250YWluZXIoKQoreworICAgIHN0ZDo6YXJyYXk8Y2hhciwgTUFYUEFUSExFTj4gcGF0
aDsKKyAgICBwYXRoWzBdID0gMDsKKyAgICBzYW5kYm94X2NvbnRhaW5lcl9wYXRoX2Zvcl9waWQo
Z2V0cGlkKCksIHBhdGguZGF0YSgpLCBwYXRoLnNpemUoKSk7CisKKyAgICByZXR1cm4gU3RyaW5n
Ojpmcm9tVVRGOChwYXRoLmRhdGEoKSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvU2FuZGJveFV0aWxpdGllcy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9TYW5kYm94VXRpbGl0aWVzLmgKaW5kZXggOTAzYWUxYmE4Y2FlMjQxNWVjOWJlMjNjOWRm
NTNkNmI3NWJmNzI0Mi4uZGJjNGNiMzBhNjI5ZTIwNDA3ZjlmYzI3M2Y3OTExYWMwOTlkZTBkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TYW5kYm94VXRpbGl0aWVzLmgK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TYW5kYm94VXRpbGl0aWVzLmgKQEAgLTI3
LDEyICsyNywxNiBAQAogI2RlZmluZSBTYW5kYm94VXRpbGl0aWVzX2gKIAogI2luY2x1ZGUgPHN5
cy90eXBlcy5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBib29sIHByb2Nlc3NJc1NhbmRib3hlZChwaWRfdCk7CiBib29sIHByb2Nlc3NIYXNDb250
YWluZXIoKTsKIAorLy8gUmV0dXJucyBhbiBlbXB0eSBzdHJpbmcgaWYgdGhlIHByb2Nlc3MgaXMg
bm90IGluIGEgY29udGFpbmVyLgorU3RyaW5nIHBhdGhGb3JQcm9jZXNzQ29udGFpbmVyKCk7CisK
IH0KIAogI2VuZGlmIC8vIFNhbmRib3hVdGlsaXRpZXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbnRleHQuY3BwCmluZGV4IDJjYzYxYTQ3ZTM3MmQyZjNhZjQ0Y2M3MTg0ZDhlNzVmZDcx
YjliOWYuLjA1ODM2MWM2Y2QwNjliNzJkNTc3MDRjZmUwM2M4ZGUwMTMyOWFmZDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAgLTQxMSw2ICs0MTEsMTAgQEAgdm9p
ZCBXZWJDb250ZXh0OjplbnN1cmVOZXR3b3JrUHJvY2VzcygpCiAgICAgaWYgKCFwYXJhbWV0ZXJz
LmRpc2tDYWNoZURpcmVjdG9yeS5pc0VtcHR5KCkpCiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246
OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShwYXJhbWV0ZXJzLmRpc2tDYWNoZURp
cmVjdG9yeSwgcGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwog
CisgICAgcGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5ID0gY29va2llU3RvcmFnZURp
cmVjdG9yeSgpOworICAgIGlmICghcGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5Lmlz
RW1wdHkoKSkKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdy
aXRlRGlyZWN0b3J5KHBhcmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVjdG9yeSwgcGFyYW1ldGVy
cy5jb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKwogICAgIHBhcmFtZXRl
cnMuc2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uID0gbV9zaG91bGRVc2VUZXN0aW5nTmV0
d29ya1Nlc3Npb247CiAKICAgICAvLyBBZGQgYW55IHBsYXRmb3JtIHNwZWNpZmljIHBhcmFtZXRl
cnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1hYy5tbQppbmRl
eCBlZGNmNDEwMWFmOWY4M2I1MTgzMzdiYjJiY2Y3ZDE5Y2ZlY2Y1MTZkLi5mZTdjZDFlOGY3NDE1
MDA3ODRjOGM5ODg4Y2E2N2EyYzcxY2VkMTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9XZWJDb250ZXh0TWFjLm1tCkBAIC0yNyw2ICsyNyw3IEBACiAjaW1wb3J0ICJXZWJD
b250ZXh0LmgiCiAKICNpbXBvcnQgIlBsdWdpblByb2Nlc3NNYW5hZ2VyLmgiCisjaW1wb3J0ICJT
YW5kYm94VXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUZXh0Q2hlY2tlci5oIgogI2ltcG9ydCAiV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVySW50ZXJuYWwuaCIKICNpbXBvcnQgIldLQnJvd3NpbmdD
b250ZXh0Q29udHJvbGxlckludGVybmFsLmgiCkBAIC0yNjksOCArMjcwLDE3IEBAIFN0cmluZyBX
ZWJDb250ZXh0OjpwbGF0Zm9ybURlZmF1bHREaXNrQ2FjaGVEaXJlY3RvcnkoKSBjb25zdAogCiBT
dHJpbmcgV2ViQ29udGV4dDo6cGxhdGZvcm1EZWZhdWx0Q29va2llU3RvcmFnZURpcmVjdG9yeSgp
IGNvbnN0CiB7CisjaWYgUExBVEZPUk0oSU9TKQorICAgIFN0cmluZyBwYXRoID0gcGF0aEZvclBy
b2Nlc3NDb250YWluZXIoKTsKKyAgICBpZiAocGF0aC5pc0VtcHR5KCkpCisgICAgICAgIHBhdGgg
PSBOU0hvbWVEaXJlY3RvcnkoKTsKKworICAgIHBhdGggPSBwYXRoICsgIi9MaWJyYXJ5L0Nvb2tp
ZXMiOworICAgIHJldHVybiBzdHJpbmdCeVJlc29sdmluZ1N5bWxpbmtzSW5QYXRoKHBhdGgpOwor
I2Vsc2UKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBbQCIiIHN0cmluZ0J5U3Rh
bmRhcmRpemluZ1BhdGhdOworI2VuZGlmCiB9CiAKIFN0cmluZyBXZWJDb250ZXh0OjpwbGF0Zm9y
bURlZmF1bHRXZWJTUUxEYXRhYmFzZURpcmVjdG9yeSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDgwYTk2MjZkY2JhODMz
OWIzY2RiZDc0YWM3N2IyYTNlMDQ5MGI5MzEuLjFlNjg3OGZhYjExMTUzYjg5NTg3YjAwYmNmMDNi
ZDY3YWNlMzI5MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2Ev
V2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2Ev
V2ViUHJvY2Vzc0NvY29hLm1tCkBAIC0xNjcsNiArMTY3LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpw
bGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVy
cy53ZWJTUUxEYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAgICAgU2FuZGJveEV4
dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMuYXBwbGljYXRpb25DYWNoZURp
cmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBl
cm1hbmVudGx5KHBhcmFtZXRlcnMuZGlza0NhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsK
KyAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5jb29r
aWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKICNlbmRpZgogCiAgICAgLy8gV2hl
biB0aGUgbmV0d29yayBwcm9jZXNzIGlzIGVuYWJsZWQsIGVhY2ggd2ViIHByb2Nlc3Mgd2FudHMg
YSBzdGFuZC1hbG9uZQo=
</data>
<flag name="review"
          id="258635"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>