<?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>154188</bug_id>
          
          <creation_ts>2016-02-12 12:57:03 -0800</creation_ts>
          <short_desc>[Mac] CORS-compliant videos throw security errors when painting to Canvas</short_desc>
          <delta_ts>2016-02-19 11:46:19 -0800</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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1164287</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-02-12 12:57:03 -0800</bug_when>
    <thetext>[Mac] CORS-compliant videos throw security errors when painting to Canvas</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1164333</commentid>
    <comment_count>1</comment_count>
      <attachid>271224</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-02-12 14:18:42 -0800</bug_when>
    <thetext>Created attachment 271224
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1164565</commentid>
    <comment_count>2</comment_count>
      <attachid>271224</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-02-13 12:28:32 -0800</bug_when>
    <thetext>Comment on attachment 271224
Patch

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

&gt; Source/WebCore/ChangeLog:4
&gt; +        [Mac] CORS-compliant videos throw security errors when painting to Canvas
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=154188

Please include the Radar number for posterity.

&gt; Source/WebCore/ChangeLog:9
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Pass the CORS access check results from WebCoreNSURLSession to it&apos;s client,
&gt; +        MediaPlayerPrivateAVFoundationObjC.

This should really have a test.

&gt; Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.h:52
&gt; +    Unknown,

Nit: Instead of including this unused value, can you make &quot;Fail&quot; zero?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1164788</commentid>
    <comment_count>3</comment_count>
      <attachid>271224</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-02-15 11:05:26 -0800</bug_when>
    <thetext>Comment on attachment 271224
Patch

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

&gt;&gt; Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.h:52
&gt;&gt; +    Unknown,
&gt; 
&gt; Nit: Instead of including this unused value, can you make &quot;Fail&quot; zero?

This value is used, right?  Could you explicitly initialize the value to Unknown?

&gt; Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.mm:167
&gt; +    return _corsResults == WebCoreNSURLSessionCORSAccessCheckResults::Pass;

ASSERT(_corsResults != WebCoreNSURLSessionCORSAccessCheckResults::Fail) before this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1164821</commentid>
    <comment_count>4</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-02-15 12:39:23 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 271224 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=271224&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:4
&gt; &gt; +        [Mac] CORS-compliant videos throw security errors when painting to Canvas
&gt; &gt; +        https://bugs.webkit.org/show_bug.cgi?id=154188
&gt; 
&gt; Please include the Radar number for posterity.

Ok.

&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        Reviewed by NOBODY (OOPS!).
&gt; &gt; +
&gt; &gt; +        Pass the CORS access check results from WebCoreNSURLSession to it&apos;s client,
&gt; &gt; +        MediaPlayerPrivateAVFoundationObjC.
&gt; 
&gt; This should really have a test.

Technically, there already are three tests in http/tests/security. We can&apos;t enable them because there are platform requirements to enable this feature.

&gt; &gt; Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.h:52
&gt; &gt; +    Unknown,
&gt; 
&gt; Nit: Instead of including this unused value, can you make &quot;Fail&quot; zero?

See below.

(In reply to comment #3)
&gt; Comment on attachment 271224 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=271224&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.h:52
&gt; &gt;&gt; +    Unknown,
&gt; &gt; 
&gt; &gt; Nit: Instead of including this unused value, can you make &quot;Fail&quot; zero?
&gt; 
&gt; This value is used, right?  Could you explicitly initialize the value to
&gt; Unknown?

Yes.

&gt; &gt; Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.mm:167
&gt; &gt; +    return _corsResults == WebCoreNSURLSessionCORSAccessCheckResults::Pass;
&gt; 
&gt; ASSERT(_corsResults != WebCoreNSURLSessionCORSAccessCheckResults::Fail)
&gt; before this.

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166451</commentid>
    <comment_count>5</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-02-19 10:23:51 -0800</bug_when>
    <thetext>Enabling tests are covered by &lt;https://bugs.webkit.org/show_bug.cgi?id=154462&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166452</commentid>
    <comment_count>6</comment_count>
      <attachid>271763</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-02-19 10:24:07 -0800</bug_when>
    <thetext>Created attachment 271763
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166453</commentid>
    <comment_count>7</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-02-19 10:25:10 -0800</bug_when>
    <thetext>rdar://problem/22959556</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166454</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-19 10:26:05 -0800</bug_when>
    <thetext>Attachment 271763 did not pass style-queue:


ERROR: Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.mm:522:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166473</commentid>
    <comment_count>9</comment_count>
      <attachid>271767</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-02-19 11:28:51 -0800</bug_when>
    <thetext>Created attachment 271767
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166474</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-19 11:30:59 -0800</bug_when>
    <thetext>Attachment 271767 did not pass style-queue:


ERROR: Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.mm:524:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166475</commentid>
    <comment_count>11</comment_count>
      <attachid>271767</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-02-19 11:32:47 -0800</bug_when>
    <thetext>Comment on attachment 271767
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:2168
&gt; +#if PLATFORM(IOS) || __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 101100

Should this be strictly greater than?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166478</commentid>
    <comment_count>12</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-02-19 11:46:19 -0800</bug_when>
    <thetext>Committed r196827: &lt;http://trac.webkit.org/changeset/196827&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271224</attachid>
            <date>2016-02-12 14:18:42 -0800</date>
            <delta_ts>2016-02-19 10:24:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154188-20160212141821.patch</filename>
            <type>text/plain</type>
            <size>7445</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2NTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmQ2NzRlZjBkNTM4NWEy
ZTdkMDYyMDRmZjZiZWVmNmFkYjNkNmFiYS4uZDllNGM0NGI3MzE4OTQ4MzY2ZTc5NTk4MjViNzZl
YWNhNjU2MTQxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2LTAyLTEyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIENPUlMtY29tcGxp
YW50IHZpZGVvcyB0aHJvdyBzZWN1cml0eSBlcnJvcnMgd2hlbiBwYWludGluZyB0byBDYW52YXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDE4OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhc3MgdGhl
IENPUlMgYWNjZXNzIGNoZWNrIHJlc3VsdHMgZnJvbSBXZWJDb3JlTlNVUkxTZXNzaW9uIHRvIGl0
J3MgY2xpZW50LAorICAgICAgICBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLgor
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGlkUGFzc0NPUlNB
Y2Nlc3NDaGVjayk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9XZWJDb3JlTlNV
UkxTZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9XZWJDb3JlTlNV
UkxTZXNzaW9uLm1tOgorICAgICAgICAoLVtXZWJDb3JlTlNVUkxTZXNzaW9uIHRhc2s6ZGlkUmVj
ZWl2ZUNPUlNBY2Nlc3NDaGVja1Jlc3VsdDpdKToKKyAgICAgICAgKC1bV2ViQ29yZU5TVVJMU2Vz
c2lvbiBkaWRQYXNzQ09SU0FjY2Vzc0NoZWNrc10pOgorICAgICAgICAoLVtXZWJDb3JlTlNVUkxT
ZXNzaW9uRGF0YVRhc2sgcmVzb3VyY2U6cmVjZWl2ZWRSZXNwb25zZTpdKToKKwogMjAxNi0wMS0y
NiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbRU1FXVtNYWNd
IE1lZGlhS2V5cy5jcmVhdGVTZXNzaW9uKCkgZmFpbHMgd2l0aCBpbml0RGF0YSBjb250YWluaW5n
IGEgY29udGVudElkIHdob3NlIGxlbmd0aCBpcyA+IDEvMiB0aGUgaW5pdERhdGEuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLmgKaW5kZXggM2ZmY2UxZWNhYzZkODQ4ZTdiNjIxZjY0YjA3ODI0YTI2ZTIwYWNk
My4uMjBmNjU3OTIyOWViODkzY2QwMTViYmZmZTk4YjI1MmIxYmZiZTc2NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMuaApAQCAtMjE2LDcgKzIxNiw4IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlVmlkZW9MYXllckdyYXZpdHkoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9v
bCBoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgaGFz
U2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGRpZFBhc3ND
T1JTQWNjZXNzQ2hlY2soKSBjb25zdCBvdmVycmlkZTsKIAogICAgIE1lZGlhVGltZSBnZXRTdGFy
dERhdGUoKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggODBl
ZTBiNzY4YjMyM2UzZDIyZWJjZTY3ZWZiYzc0ZWQ1ZGVhNWYyZS4uZGFjOTE5NzFkMjViYzUwOTQw
Y2MzYzFlYjY2Mjc5MGI5ZTQ1NDY2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0yMTYz
LDYgKzIxNjMsMjEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpo
YXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0CiAgICAgcmV0dXJuIHJlc29sdmVkT3JpZ2lu
LmdldCgpLmlzU2FtZVNjaGVtZUhvc3RQb3J0KCZyZXF1ZXN0ZWRPcmlnaW4uZ2V0KCkpOwogfQog
Citib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRpZFBhc3NDT1JTQWNj
ZXNzQ2hlY2soKSBjb25zdAoreworI2lmIFBMQVRGT1JNKElPUykgfHwgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKKyAgICBBVkFzc2V0UmVzb3VyY2VMb2FkZXIgKnJl
c291cmNlTG9hZGVyID0gbV9hdkFzc2V0LmdldCgpLnJlc291cmNlTG9hZGVyOworICAgIGlmICgh
U2V0dGluZ3M6OmlzQVZGb3VuZGF0aW9uTlNVUkxTZXNzaW9uRW5hYmxlZCgpCisgICAgICAgIHx8
ICFbcmVzb3VyY2VMb2FkZXIgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihVUkxTZXNzaW9u
KV0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFdlYkNvcmVOU1VSTFNlc3Npb24gKnNl
c3Npb24gPSAoV2ViQ29yZU5TVVJMU2Vzc2lvbiAqKXJlc291cmNlTG9hZGVyLlVSTFNlc3Npb247
CisgICAgaWYgKFtzZXNzaW9uIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoZGlkUGFzc0NP
UlNBY2Nlc3NDaGVja3MpXSkKKyAgICAgICAgcmV0dXJuIHNlc3Npb24uZGlkUGFzc0NPUlNBY2Nl
c3NDaGVja3M7CisjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKICNpZiBIQVZFKEFWRk9V
TkRBVElPTl9WSURFT19PVVRQVVQpCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OmNyZWF0ZVZpZGVvT3V0cHV0KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLmgKaW5kZXgg
ZjNhOGViMGEwMmU0YjIyYTBhM2ZmNzllYzQ2MTU1YzVjNWE3MDc3ZC4uOWViYTEyMGE2OWM3MDE3
MGViOTI5NTU5ZGI4MGUzZjEyMjlmZTk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLmgKQEAgLTQ4
LDYgKzQ4LDEyIEBAIGNsYXNzIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcjsKIGNsYXNzIFdl
YkNvcmVOU1VSTFNlc3Npb25EYXRhVGFza0NsaWVudDsKIH0KIAorZW51bSBjbGFzcyBXZWJDb3Jl
TlNVUkxTZXNzaW9uQ09SU0FjY2Vzc0NoZWNrUmVzdWx0cyB7CisgICAgVW5rbm93biwKKyAgICBQ
YXNzLAorICAgIEZhaWwsCit9OworCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiBXRUJDT1JF
X0VYUE9SVCBAaW50ZXJmYWNlIFdlYkNvcmVOU1VSTFNlc3Npb24gOiBOU09iamVjdCB7CkBAIC01
OSwxMiArNjUsMTQgQEAgV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBXZWJDb3JlTlNVUkxTZXNz
aW9uIDogTlNPYmplY3QgewogICAgIEJPT0wgX2ludmFsaWRhdGVkOwogICAgIE5TVUludGVnZXIg
X25leHRUYXNrSWRlbnRpZmllcjsKICAgICBPU09iamVjdFB0cjxkaXNwYXRjaF9xdWV1ZV90PiBf
aW50ZXJuYWxRdWV1ZTsKKyAgICBXZWJDb3JlTlNVUkxTZXNzaW9uQ09SU0FjY2Vzc0NoZWNrUmVz
dWx0cyBfY29yc1Jlc3VsdHM7CiB9CiAtIChpZClpbml0V2l0aFJlc291cmNlTG9hZGVyOihXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXImKWxvYWRlciBkZWxlZ2F0ZTooaWQ8TlNV
UkxTZXNzaW9uVGFza0RlbGVnYXRlPilkZWxlZ2F0ZSBkZWxlZ2F0ZVF1ZXVlOihOU09wZXJhdGlv
blF1ZXVlKilxdWV1ZTsKIEBwcm9wZXJ0eSAocmVhZG9ubHksIHJldGFpbikgTlNPcGVyYXRpb25R
dWV1ZSAqZGVsZWdhdGVRdWV1ZTsKIEBwcm9wZXJ0eSAobnVsbGFibGUsIHJlYWRvbmx5LCByZXRh
aW4pIGlkIDxOU1VSTFNlc3Npb25EZWxlZ2F0ZT4gZGVsZWdhdGU7CiBAcHJvcGVydHkgKHJlYWRv
bmx5LCBjb3B5KSBOU1VSTFNlc3Npb25Db25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uOwogQHBy
b3BlcnR5IChjb3B5KSBOU1N0cmluZyAqc2Vzc2lvbkRlc2NyaXB0aW9uOworQHByb3BlcnR5IChy
ZWFkb25seSkgQk9PTCBkaWRQYXNzQ09SU0FjY2Vzc0NoZWNrczsKIC0gKHZvaWQpZmluaXNoVGFz
a3NBbmRJbnZhbGlkYXRlOwogLSAodm9pZClpbnZhbGlkYXRlQW5kQ2FuY2VsOwogCkBAIC05Nyw3
ICsxMDUsNiBAQCBXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIFdlYkNvcmVOU1VSTFNlc3Npb24g
OiBOU09iamVjdCB7CiAKIEBpbnRlcmZhY2UgV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrIDog
TlNPYmplY3QgewogICAgIFdlYkNvcmVOU1VSTFNlc3Npb24gKl9zZXNzaW9uOwotICAgIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ+IF9j
bGllbnQ7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZT4gX3Jlc291
cmNlOwogICAgIFJldGFpblB0cjxOU1VSTFJlc3BvbnNlPiBfcmVzcG9uc2U7CiAgICAgTlNVSW50
ZWdlciBfdGFza0lkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0KaW5kZXggNDQ5NjVk
ZjVmNDUwYWYzNTk2NjA4NDhhYzc0ODVhMmIzZjYzNjAxZC4uYzQyMzU0ZWE0Zjg5ZjcxN2UwYzc0
OTQ0ZTE5MTIyYTQ2ODFlN2QwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbQpAQCAtNDMsNiAr
NDMsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogQHByb3BlcnR5IChyZWFkd3JpdGUsIHJl
dGFpbikgaWQ8TlNVUkxTZXNzaW9uVGFza0RlbGVnYXRlPiBkZWxlZ2F0ZTsKIC0gKHZvaWQpdGFz
a0NvbXBsZXRlZDooV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrICopdGFzazsKIC0gKHZvaWQp
YWRkRGVsZWdhdGVPcGVyYXRpb246KHZvaWQgKF4pKHZvaWQpKW9wZXJhdGlvbjsKKy0gKHZvaWQp
dGFzazooV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrICopdGFzayBkaWRSZWNlaXZlQ09SU0Fj
Y2Vzc0NoZWNrUmVzdWx0OihCT09MKXJlc3VsdDsKIEBlbmQKIAogQGludGVyZmFjZSBXZWJDb3Jl
TlNVUkxTZXNzaW9uRGF0YVRhc2sgKCkKQEAgLTEyMCw2ICsxMjEsMTUgQEAgTlNfQVNTVU1FX05P
Tk5VTExfRU5ECiAgICAgfSk7CiB9CiAKKy0gKHZvaWQpdGFzazooV2ViQ29yZU5TVVJMU2Vzc2lv
bkRhdGFUYXNrICopdGFzayBkaWRSZWNlaXZlQ09SU0FjY2Vzc0NoZWNrUmVzdWx0OihCT09MKXJl
c3VsdAoreworICAgIFVOVVNFRF9QQVJBTSh0YXNrKTsKKyAgICBpZiAoIXJlc3VsdCkKKyAgICAg
ICAgX2NvcnNSZXN1bHRzID0gV2ViQ29yZU5TVVJMU2Vzc2lvbkNPUlNBY2Nlc3NDaGVja1Jlc3Vs
dHM6OkZhaWw7CisgICAgZWxzZSBpZiAoX2NvcnNSZXN1bHRzICE9IFdlYkNvcmVOU1VSTFNlc3Np
b25DT1JTQWNjZXNzQ2hlY2tSZXN1bHRzOjpGYWlsKQorICAgICAgICBfY29yc1Jlc3VsdHMgPSBX
ZWJDb3JlTlNVUkxTZXNzaW9uQ09SU0FjY2Vzc0NoZWNrUmVzdWx0czo6UGFzczsKK30KKwogI3By
YWdtYSBtYXJrIC0gTlNVUkxTZXNzaW9uIEFQSQogQHN5bnRoZXNpemUgc2Vzc2lvbkRlc2NyaXB0
aW9uPV9zZXNzaW9uRGVzY3JpcHRpb247CiBAZHluYW1pYyBkZWxlZ2F0ZTsKQEAgLTE1MSw2ICsx
NjEsMTIgQEAgTlNfQVNTVU1FX05PTk5VTExfRU5ECiAgICAgcmV0dXJuICpfbG9hZGVyOwogfQog
CitAZHluYW1pYyBkaWRQYXNzQ09SU0FjY2Vzc0NoZWNrczsKKy0gKEJPT0wpZGlkUGFzc0NPUlNB
Y2Nlc3NDaGVja3MKK3sKKyAgICByZXR1cm4gX2NvcnNSZXN1bHRzID09IFdlYkNvcmVOU1VSTFNl
c3Npb25DT1JTQWNjZXNzQ2hlY2tSZXN1bHRzOjpQYXNzOworfQorCiAtICh2b2lkKWZpbmlzaFRh
c2tzQW5kSW52YWxpZGF0ZQogewogICAgIF9pbnZhbGlkYXRlZCA9IFlFUzsKQEAgLTQ3NCw2ICs0
OTAsNyBAQCB2b2lkIFdlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFza0NsaWVudDo6bG9hZEZpbmlz
aGVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYgcmVzbwogICAgIEFTU0VSVF9VTlVTRUQocmVzb3Vy
Y2UsICZyZXNvdXJjZSA9PSBfcmVzb3VyY2UpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CiAgICAgX3Jlc3BvbnNlID0gcmVzcG9uc2UubnNVUkxSZXNwb25zZSgpOworICAgIFtzZWxmLnNl
c3Npb24gdGFzazpzZWxmIGRpZFJlY2VpdmVDT1JTQWNjZXNzQ2hlY2tSZXN1bHQ6cmVzb3VyY2Uu
ZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjaygpXTsKICAgICBzZWxmLmNvdW50T2ZCeXRlc0V4cGVj
dGVkVG9SZWNlaXZlID0gcmVzcG9uc2UuZXhwZWN0ZWRDb250ZW50TGVuZ3RoKCk7CiAgICAgW3Nl
bGYgX3NldERlZmVyc0xvYWRpbmc6WUVTXTsKICAgICBSZXRhaW5QdHI8V2ViQ29yZU5TVVJMU2Vz
c2lvbkRhdGFUYXNrPiBzdHJvbmdTZWxmIHsgc2VsZiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271763</attachid>
            <date>2016-02-19 10:24:07 -0800</date>
            <delta_ts>2016-02-19 11:28:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154188-20160219102348.patch</filename>
            <type>text/plain</type>
            <size>13228</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2NzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDYxOGU3ZGExZGZlNGU0
MDU3NzIyYzVjNjVkOTJkNWQ3YzYxOGUzNC4uODZkNjI3NjYwY2MyNjNjODk2N2UwY2MxMGM5YTQ0
Yzk4MGRlZDNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE2LTAyLTEyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIENPUlMtY29tcGxp
YW50IHZpZGVvcyB0aHJvdyBzZWN1cml0eSBlcnJvcnMgd2hlbiBwYWludGluZyB0byBDYW52YXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDE4OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhc3MgdGhl
IENPUlMgYWNjZXNzIGNoZWNrIHJlc3VsdHMgZnJvbSBXZWJDb3JlTlNVUkxTZXNzaW9uIHRvIGl0
J3MgY2xpZW50LAorICAgICAgICBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLgor
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGlkUGFzc0NPUlNB
Y2Nlc3NDaGVjayk6IEFzayB0aGUgV2ViQ29yZU5TVVJMU2Vzc2lvbi4KKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW06CisgICAgICAgICgtW1dl
YkNvcmVOU1VSTFNlc3Npb24gdGFzazpkaWRSZWNlaXZlQ09SU0FjY2Vzc0NoZWNrUmVzdWx0Ol0p
OiBDb25kaXRpb25hbGx5IHNldCBfY29yc1Jlc3VsdHMuCisgICAgICAgICgtW1dlYkNvcmVOU1VS
TFNlc3Npb24gZGlkUGFzc0NPUlNBY2Nlc3NDaGVja3NdKTogUmV0dXJuIF9jb3JzUmVzdWx0cy4K
KyAgICAgICAgKFdlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFza0NsaWVudDo6YWNjZXNzQ29udHJv
bENoZWNrRmFpbGVkKTogQ2FsbCAtcmVzb3VyY2U6YWNjZXNzQ29udHJvbENoZWNrRmFpbGVkV2l0
aEVycm9yOi4KKyAgICAgICAgKFdlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFza0NsaWVudDo6bG9h
ZEZhaWxlZCk6IENhbGwgLXJlc291cmNlOmxvYWRGYWlsZWRXaXRoRXJyb3I6LgorICAgICAgICAo
LVtXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2sgcmVzb3VyY2U6cmVjZWl2ZWRSZXNwb25zZTpd
KTogU2V0IF9yZXNwb25zZSB3aXRoaW4gdGhlIGRlbGVnYXRlIHF1ZXVlLgorICAgICAgICAoLVtX
ZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2sgX3Jlc291cmNlOmxvYWRGaW5pc2hlZFdpdGhFcnJv
cjpdKTogUmVuYW1lZCBmcm9tIHJlc291cmNlRmluaXNoZWQ6CisgICAgICAgICgtW1dlYkNvcmVO
U1VSTFNlc3Npb25EYXRhVGFzayByZXNvdXJjZTphY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWRXaXRo
RXJyb3I6XSk6IERpdHRvLgorICAgICAgICAoLVtXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2sg
cmVzb3VyY2U6bG9hZEZhaWxlZFdpdGhFcnJvcjpdKTogRGl0dG8uCisgICAgICAgICgtW1dlYkNv
cmVOU1VSTFNlc3Npb25EYXRhVGFzayByZXNvdXJjZUZpbmlzaGVkOl0pOiBEaXR0by4KKwogMjAx
Ni0wMi0xOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxv
dyBDYWNoZWRSYXdSZXNvdXJjZSBjbGllbnRzIHRvIG9wdCBvdXQgb2YgY2FjaGluZyBvbiBhIHBl
ci1yZXNwb25zZSBiYXNpcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IDNmZmNlMWVjYWM2ZDg0
OGU3YjYyMWY2NGIwNzgyNGEyNmUyMGFjZDMuLjIwZjY1NzkyMjllYjg5M2NkMDE1YmJmZmU5OGIy
NTJiMWJmYmU3NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTIxNiw3ICsyMTYsOCBAQCBw
cml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVZpZGVvTGF5ZXJHcmF2aXR5KCkgb3Zl
cnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25z
dCBvdmVycmlkZTsKKyAgICBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgYm9vbCBkaWRQYXNzQ09SU0FjY2Vzc0NoZWNrKCkgY29uc3Qgb3ZlcnJpZGU7
CiAKICAgICBNZWRpYVRpbWUgZ2V0U3RhcnREYXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tCmluZGV4IDgwZWUwYjc2OGIzMjNlM2QyMmViY2U2N2VmYmM3NGVkNWRl
YTVmMmUuLmRhYzkxOTcxZDI1YmM1MDk0MGNjM2MxZWI2NjI3OTBiOWU0NTQ2NmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbQpAQCAtMjE2Myw2ICsyMTYzLDIxIEBAIGJvb2wgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6aGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdAog
ICAgIHJldHVybiByZXNvbHZlZE9yaWdpbi5nZXQoKS5pc1NhbWVTY2hlbWVIb3N0UG9ydCgmcmVx
dWVzdGVkT3JpZ2luLmdldCgpKTsKIH0KIAorYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpkaWRQYXNzQ09SU0FjY2Vzc0NoZWNrKCkgY29uc3QKK3sKKyNpZiBQTEFURk9S
TShJT1MpIHx8IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCisgICAg
QVZBc3NldFJlc291cmNlTG9hZGVyICpyZXNvdXJjZUxvYWRlciA9IG1fYXZBc3NldC5nZXQoKS5y
ZXNvdXJjZUxvYWRlcjsKKyAgICBpZiAoIVNldHRpbmdzOjppc0FWRm91bmRhdGlvbk5TVVJMU2Vz
c2lvbkVuYWJsZWQoKQorICAgICAgICB8fCAhW3Jlc291cmNlTG9hZGVyIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoVVJMU2Vzc2lvbildKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBXZWJDb3JlTlNVUkxTZXNzaW9uICpzZXNzaW9uID0gKFdlYkNvcmVOU1VSTFNlc3Npb24gKily
ZXNvdXJjZUxvYWRlci5VUkxTZXNzaW9uOworICAgIGlmIChbc2Vzc2lvbiByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKGRpZFBhc3NDT1JTQWNjZXNzQ2hlY2tzKV0pCisgICAgICAgIHJldHVy
biBzZXNzaW9uLmRpZFBhc3NDT1JTQWNjZXNzQ2hlY2tzOworI2VuZGlmCisgICAgcmV0dXJuIGZh
bHNlOworfQorCiAjaWYgSEFWRShBVkZPVU5EQVRJT05fVklERU9fT1VUUFVUKQogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVWaWRlb091dHB1dCgpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVO
U1VSTFNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2Vi
Q29yZU5TVVJMU2Vzc2lvbi5oCmluZGV4IGYzYThlYjBhMDJlNGIyMmEwYTNmZjc5ZWM0NjE1NWM1
YzVhNzA3N2QuLjllYmExMjBhNjljNzAxNzBlYjkyOTU1OWRiODBlM2YxMjI5ZmU5ODMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJM
U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2Vi
Q29yZU5TVVJMU2Vzc2lvbi5oCkBAIC00OCw2ICs0OCwxMiBAQCBjbGFzcyBQbGF0Zm9ybU1lZGlh
UmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ7
CiB9CiAKK2VudW0gY2xhc3MgV2ViQ29yZU5TVVJMU2Vzc2lvbkNPUlNBY2Nlc3NDaGVja1Jlc3Vs
dHMgeworICAgIFVua25vd24sCisgICAgUGFzcywKKyAgICBGYWlsLAorfTsKKwogTlNfQVNTVU1F
X05PTk5VTExfQkVHSU4KIAogV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBXZWJDb3JlTlNVUkxT
ZXNzaW9uIDogTlNPYmplY3QgewpAQCAtNTksMTIgKzY1LDE0IEBAIFdFQkNPUkVfRVhQT1JUIEBp
bnRlcmZhY2UgV2ViQ29yZU5TVVJMU2Vzc2lvbiA6IE5TT2JqZWN0IHsKICAgICBCT09MIF9pbnZh
bGlkYXRlZDsKICAgICBOU1VJbnRlZ2VyIF9uZXh0VGFza0lkZW50aWZpZXI7CiAgICAgT1NPYmpl
Y3RQdHI8ZGlzcGF0Y2hfcXVldWVfdD4gX2ludGVybmFsUXVldWU7CisgICAgV2ViQ29yZU5TVVJM
U2Vzc2lvbkNPUlNBY2Nlc3NDaGVja1Jlc3VsdHMgX2NvcnNSZXN1bHRzOwogfQogLSAoaWQpaW5p
dFdpdGhSZXNvdXJjZUxvYWRlcjooV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVy
Jilsb2FkZXIgZGVsZWdhdGU6KGlkPE5TVVJMU2Vzc2lvblRhc2tEZWxlZ2F0ZT4pZGVsZWdhdGUg
ZGVsZWdhdGVRdWV1ZTooTlNPcGVyYXRpb25RdWV1ZSopcXVldWU7CiBAcHJvcGVydHkgKHJlYWRv
bmx5LCByZXRhaW4pIE5TT3BlcmF0aW9uUXVldWUgKmRlbGVnYXRlUXVldWU7CiBAcHJvcGVydHkg
KG51bGxhYmxlLCByZWFkb25seSwgcmV0YWluKSBpZCA8TlNVUkxTZXNzaW9uRGVsZWdhdGU+IGRl
bGVnYXRlOwogQHByb3BlcnR5IChyZWFkb25seSwgY29weSkgTlNVUkxTZXNzaW9uQ29uZmlndXJh
dGlvbiAqY29uZmlndXJhdGlvbjsKIEBwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKnNlc3Npb25E
ZXNjcmlwdGlvbjsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wgZGlkUGFzc0NPUlNBY2Nlc3ND
aGVja3M7CiAtICh2b2lkKWZpbmlzaFRhc2tzQW5kSW52YWxpZGF0ZTsKIC0gKHZvaWQpaW52YWxp
ZGF0ZUFuZENhbmNlbDsKIApAQCAtOTcsNyArMTA1LDYgQEAgV0VCQ09SRV9FWFBPUlQgQGludGVy
ZmFjZSBXZWJDb3JlTlNVUkxTZXNzaW9uIDogTlNPYmplY3QgewogCiBAaW50ZXJmYWNlIFdlYkNv
cmVOU1VSTFNlc3Npb25EYXRhVGFzayA6IE5TT2JqZWN0IHsKICAgICBXZWJDb3JlTlNVUkxTZXNz
aW9uICpfc2Vzc2lvbjsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6V2ViQ29yZU5TVVJM
U2Vzc2lvbkRhdGFUYXNrQ2xpZW50PiBfY2xpZW50OwogICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0
Zm9ybU1lZGlhUmVzb3VyY2U+IF9yZXNvdXJjZTsKICAgICBSZXRhaW5QdHI8TlNVUkxSZXNwb25z
ZT4gX3Jlc3BvbnNlOwogICAgIE5TVUludGVnZXIgX3Rhc2tJZGVudGlmaWVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9XZWJDb3JlTlNVUkxTZXNz
aW9uLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9XZWJDb3JlTlNV
UkxTZXNzaW9uLm1tCmluZGV4IDQ0OTY1ZGY1ZjQ1MGFmMzU5NjYwODQ4YWM3NDg1YTJiM2Y2MzYw
MWQuLmNlMTIyNWJmYzYzOGM1Nzc0NmFhZDNiNWYwZGY0YjVhYTZlZDNiODYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lv
bi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVO
U1VSTFNlc3Npb24ubW0KQEAgLTQzLDYgKzQzLDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4K
IEBwcm9wZXJ0eSAocmVhZHdyaXRlLCByZXRhaW4pIGlkPE5TVVJMU2Vzc2lvblRhc2tEZWxlZ2F0
ZT4gZGVsZWdhdGU7CiAtICh2b2lkKXRhc2tDb21wbGV0ZWQ6KFdlYkNvcmVOU1VSTFNlc3Npb25E
YXRhVGFzayAqKXRhc2s7CiAtICh2b2lkKWFkZERlbGVnYXRlT3BlcmF0aW9uOih2b2lkICheKSh2
b2lkKSlvcGVyYXRpb247CistICh2b2lkKXRhc2s6KFdlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFz
ayAqKXRhc2sgZGlkUmVjZWl2ZUNPUlNBY2Nlc3NDaGVja1Jlc3VsdDooQk9PTClyZXN1bHQ7CiBA
ZW5kCiAKIEBpbnRlcmZhY2UgV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrICgpCkBAIC01OCw2
ICs1OSw4IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAtICh2b2lkKXJlc291cmNlOihQbGF0
Zm9ybU1lZGlhUmVzb3VyY2UmKXJlc291cmNlIHJlY2VpdmVkUmVzcG9uc2U6KGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKXJlc3BvbnNlOwogLSAodm9pZClyZXNvdXJjZTooUGxhdGZvcm1NZWRpYVJl
c291cmNlJilyZXNvdXJjZSByZWNlaXZlZERhdGE6KGNvbnN0IGNoYXIqKWRhdGEgbGVuZ3RoOihp
bnQpbGVuZ3RoOwogLSAodm9pZClyZXNvdXJjZTooUGxhdGZvcm1NZWRpYVJlc291cmNlJilyZXNv
dXJjZSByZWNlaXZlZFJlZGlyZWN0Oihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJilyZXNwb25zZSBy
ZXF1ZXN0OihSZXNvdXJjZVJlcXVlc3QmKXJlcXVlc3Q7CistICh2b2lkKXJlc291cmNlOihQbGF0
Zm9ybU1lZGlhUmVzb3VyY2UmKXJlc291cmNlIGFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZFdpdGhF
cnJvcjooY29uc3QgUmVzb3VyY2VFcnJvciYpZXJyb3I7CistICh2b2lkKXJlc291cmNlOihQbGF0
Zm9ybU1lZGlhUmVzb3VyY2UmKXJlc291cmNlIGxvYWRGYWlsZWRXaXRoRXJyb3I6KGNvbnN0IFJl
c291cmNlRXJyb3ImKWVycm9yOwogLSAodm9pZClyZXNvdXJjZUZpbmlzaGVkOihQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2UmKXJlc291cmNlOwogQGVuZAogCkBAIC0xMjAsNiArMTIzLDE1IEBAIE5TX0FT
U1VNRV9OT05OVUxMX0VORAogICAgIH0pOwogfQogCistICh2b2lkKXRhc2s6KFdlYkNvcmVOU1VS
TFNlc3Npb25EYXRhVGFzayAqKXRhc2sgZGlkUmVjZWl2ZUNPUlNBY2Nlc3NDaGVja1Jlc3VsdDoo
Qk9PTClyZXN1bHQKK3sKKyAgICBVTlVTRURfUEFSQU0odGFzayk7CisgICAgaWYgKCFyZXN1bHQp
CisgICAgICAgIF9jb3JzUmVzdWx0cyA9IFdlYkNvcmVOU1VSTFNlc3Npb25DT1JTQWNjZXNzQ2hl
Y2tSZXN1bHRzOjpGYWlsOworICAgIGVsc2UgaWYgKF9jb3JzUmVzdWx0cyAhPSBXZWJDb3JlTlNV
UkxTZXNzaW9uQ09SU0FjY2Vzc0NoZWNrUmVzdWx0czo6RmFpbCkKKyAgICAgICAgX2NvcnNSZXN1
bHRzID0gV2ViQ29yZU5TVVJMU2Vzc2lvbkNPUlNBY2Nlc3NDaGVja1Jlc3VsdHM6OlBhc3M7Cit9
CisKICNwcmFnbWEgbWFyayAtIE5TVVJMU2Vzc2lvbiBBUEkKIEBzeW50aGVzaXplIHNlc3Npb25E
ZXNjcmlwdGlvbj1fc2Vzc2lvbkRlc2NyaXB0aW9uOwogQGR5bmFtaWMgZGVsZWdhdGU7CkBAIC0x
NTEsNiArMTYzLDEyIEBAIE5TX0FTU1VNRV9OT05OVUxMX0VORAogICAgIHJldHVybiAqX2xvYWRl
cjsKIH0KIAorQGR5bmFtaWMgZGlkUGFzc0NPUlNBY2Nlc3NDaGVja3M7CistIChCT09MKWRpZFBh
c3NDT1JTQWNjZXNzQ2hlY2tzCit7CisgICAgcmV0dXJuIF9jb3JzUmVzdWx0cyA9PSBXZWJDb3Jl
TlNVUkxTZXNzaW9uQ09SU0FjY2Vzc0NoZWNrUmVzdWx0czo6UGFzczsKK30KKwogLSAodm9pZClm
aW5pc2hUYXNrc0FuZEludmFsaWRhdGUKIHsKICAgICBfaW52YWxpZGF0ZWQgPSBZRVM7CkBAIC0y
OTgsNiArMzE2LDggQEAgcHVibGljOgogICAgIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChQbGF0Zm9y
bU1lZGlhUmVzb3VyY2UmLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkYXRhU2VudChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCB1
bnNpZ25lZCBsb25nIGxvbmcsIHVuc2lnbmVkIGxvbmcgbG9uZykgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBkYXRhUmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgY2hhciogLyogZGF0
YSAqLywgaW50IC8qIGxlbmd0aCAqLykgb3ZlcnJpZGU7CisgICAgdm9pZCBhY2Nlc3NDb250cm9s
Q2hlY2tGYWlsZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VFcnJvciYp
IG92ZXJyaWRlOworICAgIHZvaWQgbG9hZEZhaWxlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBj
b25zdCBSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBsb2FkRmluaXNoZWQoUGxh
dGZvcm1NZWRpYVJlc291cmNlJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CkBAIC0zMjQsNiArMzQ0
LDE2IEBAIHZvaWQgV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50OjpyZWRpcmVjdFJl
Y2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYKICAgICBbbV90YXNrIHJlc291cmNlOnJlc291
cmNlIHJlY2VpdmVkUmVkaXJlY3Q6cmVzcG9uc2UgcmVxdWVzdDpyZXF1ZXN0XTsKIH0KIAordm9p
ZCBXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ6OmFjY2Vzc0NvbnRyb2xDaGVja0Zh
aWxlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmIHJlc291cmNlLCBjb25zdCBSZXNvdXJjZUVycm9y
JiBlcnJvcikKK3sKKyAgICBbbV90YXNrIHJlc291cmNlOnJlc291cmNlIGFjY2Vzc0NvbnRyb2xD
aGVja0ZhaWxlZFdpdGhFcnJvcjplcnJvcl07Cit9CisKK3ZvaWQgV2ViQ29yZU5TVVJMU2Vzc2lv
bkRhdGFUYXNrQ2xpZW50Ojpsb2FkRmFpbGVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYgcmVzb3Vy
Y2UsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAgIFttX3Rhc2sgcmVzb3VyY2U6
cmVzb3VyY2UgbG9hZEZhaWxlZFdpdGhFcnJvcjplcnJvcl07Cit9CisKIHZvaWQgV2ViQ29yZU5T
VVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50Ojpsb2FkRmluaXNoZWQoUGxhdGZvcm1NZWRpYVJlc291
cmNlJiByZXNvdXJjZSkKIHsKICAgICBbbV90YXNrIHJlc291cmNlRmluaXNoZWQ6cmVzb3VyY2Vd
OwpAQCAtNDczLDExICs1MDMsMTQgQEAgdm9pZCBXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tD
bGllbnQ6OmxvYWRGaW5pc2hlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmIHJlc28KIHsKICAgICBB
U1NFUlRfVU5VU0VEKHJlc291cmNlLCAmcmVzb3VyY2UgPT0gX3Jlc291cmNlKTsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwotICAgIF9yZXNwb25zZSA9IHJlc3BvbnNlLm5zVVJMUmVzcG9u
c2UoKTsKKyAgICBbc2VsZi5zZXNzaW9uIHRhc2s6c2VsZiBkaWRSZWNlaXZlQ09SU0FjY2Vzc0No
ZWNrUmVzdWx0OnJlc291cmNlLmRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2soKV07CiAgICAgc2Vs
Zi5jb3VudE9mQnl0ZXNFeHBlY3RlZFRvUmVjZWl2ZSA9IHJlc3BvbnNlLmV4cGVjdGVkQ29udGVu
dExlbmd0aCgpOwogICAgIFtzZWxmIF9zZXREZWZlcnNMb2FkaW5nOllFU107CisgICAgUmV0YWlu
UHRyPE5TVVJMUmVzcG9uc2U+IHN0cm9uZ1Jlc3BvbnNlIHsgcmVzcG9uc2UubnNVUkxSZXNwb25z
ZSgpIH07CiAgICAgUmV0YWluUHRyPFdlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFzaz4gc3Ryb25n
U2VsZiB7IHNlbGYgfTsKLSAgICBbc2VsZi5zZXNzaW9uIGFkZERlbGVnYXRlT3BlcmF0aW9uOltz
dHJvbmdTZWxmXSB7CisgICAgW3NlbGYuc2Vzc2lvbiBhZGREZWxlZ2F0ZU9wZXJhdGlvbjpbc3Ry
b25nU2VsZiwgc3Ryb25nUmVzcG9uc2VdIHsKKyAgICAgICAgc3Ryb25nU2VsZi0+X3Jlc3BvbnNl
ID0gc3Ryb25nUmVzcG9uc2UuZ2V0KCk7CisKICAgICAgICAgaWQ8TlNVUkxTZXNzaW9uRGF0YURl
bGVnYXRlPiBkYXRhRGVsZWdhdGUgPSAoaWQ8TlNVUkxTZXNzaW9uRGF0YURlbGVnYXRlPilzdHJv
bmdTZWxmLmdldCgpLnNlc3Npb24uZGVsZWdhdGU7CiAgICAgICAgIGlmICghW2RhdGFEZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKFVSTFNlc3Npb246ZGF0YVRhc2s6ZGlkUmVj
ZWl2ZVJlc3BvbnNlOmNvbXBsZXRpb25IYW5kbGVyOildKSB7CiAgICAgICAgICAgICBjYWxsT25N
YWluVGhyZWFkKFtzdHJvbmdTZWxmXSB7CkBAIC00ODYsNyArNTE5LDcgQEAgdm9pZCBXZWJDb3Jl
TlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ6OmxvYWRGaW5pc2hlZChQbGF0Zm9ybU1lZGlhUmVz
b3VyY2UmIHJlc28KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIFtk
YXRhRGVsZWdhdGUgVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9uICopc3Ryb25nU2VsZi5nZXQoKS5z
ZXNzaW9uIGRhdGFUYXNrOihOU1VSTFNlc3Npb25EYXRhVGFzayAqKXN0cm9uZ1NlbGYuZ2V0KCkg
ZGlkUmVjZWl2ZVJlc3BvbnNlOnN0cm9uZ1NlbGYuZ2V0KCkucmVzcG9uc2UgY29tcGxldGlvbkhh
bmRsZXI6W3N0cm9uZ1NlbGZdIChOU1VSTFNlc3Npb25SZXNwb25zZURpc3Bvc2l0aW9uIGRpc3Bv
c2l0aW9uKSB7CisgICAgICAgIFtkYXRhRGVsZWdhdGUgVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9u
ICopc3Ryb25nU2VsZi5nZXQoKS5zZXNzaW9uIGRhdGFUYXNrOihOU1VSTFNlc3Npb25EYXRhVGFz
ayAqKXN0cm9uZ1NlbGYuZ2V0KCkgZGlkUmVjZWl2ZVJlc3BvbnNlOnN0cm9uZ1Jlc3BvbnNlLmdl
dCgpIGNvbXBsZXRpb25IYW5kbGVyOltzdHJvbmdTZWxmXSAoTlNVUkxTZXNzaW9uUmVzcG9uc2VE
aXNwb3NpdGlvbiBkaXNwb3NpdGlvbikgewogICAgICAgICAgICAgaWYgKGRpc3Bvc2l0aW9uID09
IE5TVVJMU2Vzc2lvblJlc3BvbnNlQ2FuY2VsKQogICAgICAgICAgICAgICAgIFtzdHJvbmdTZWxm
IGNhbmNlbF07CiAgICAgICAgICAgICBlbHNlIGlmIChkaXNwb3NpdGlvbiA9PSBOU1VSTFNlc3Np
b25SZXNwb25zZUFsbG93KQpAQCAtNTMxLDIyICs1NjQsMzYgQEAgdm9pZCBXZWJDb3JlTlNVUkxT
ZXNzaW9uRGF0YVRhc2tDbGllbnQ6OmxvYWRGaW5pc2hlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2Um
IHJlc28KICAgICAvLyBBUEksIHRoaXMgY2FuIGJlIGltcGxlbWVudGVkLgogfQogCi0tICh2b2lk
KXJlc291cmNlRmluaXNoZWQ6KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpcmVzb3VyY2UKKy0gKHZv
aWQpX3Jlc291cmNlOihQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmKXJlc291cmNlIGxvYWRGaW5pc2hl
ZFdpdGhFcnJvcjooTlNFcnJvciAqKWVycm9yCiB7CiAgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJj
ZSwgJnJlc291cmNlID09IF9yZXNvdXJjZSk7Ci0gICAgc2VsZi5zdGF0ZSA9IE5TVVJMU2Vzc2lv
blRhc2tTdGF0ZUNvbXBsZXRlZDsKLQogICAgIFJldGFpblB0cjxXZWJDb3JlTlNVUkxTZXNzaW9u
RGF0YVRhc2s+IHN0cm9uZ1NlbGYgeyBzZWxmIH07Ci0gICAgW3NlbGYuc2Vzc2lvbiBhZGREZWxl
Z2F0ZU9wZXJhdGlvbjpbc3Ryb25nU2VsZl0geworICAgIFJldGFpblB0cjxOU0Vycm9yPiBzdHJv
bmdFcnJvciB7IGVycm9yIH07CisgICAgW3NlbGYuc2Vzc2lvbiBhZGREZWxlZ2F0ZU9wZXJhdGlv
bjpbc3Ryb25nU2VsZiwgc3Ryb25nRXJyb3JdIHsKICAgICAgICAgaWQ8TlNVUkxTZXNzaW9uVGFz
a0RlbGVnYXRlPiBkZWxlZ2F0ZSA9IChpZDxOU1VSTFNlc3Npb25UYXNrRGVsZWdhdGU+KXN0cm9u
Z1NlbGYuZ2V0KCkuc2Vzc2lvbi5kZWxlZ2F0ZTsKICAgICAgICAgaWYgKFtkZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKFVSTFNlc3Npb246dGFzazpkaWRDb21wbGV0ZVdpdGhF
cnJvcjopXSkKLSAgICAgICAgICAgIFtkZWxlZ2F0ZSBVUkxTZXNzaW9uOihOU1VSTFNlc3Npb24g
KilzdHJvbmdTZWxmLmdldCgpLnNlc3Npb24gdGFzazooTlNVUkxTZXNzaW9uRGF0YVRhc2sgKilz
dHJvbmdTZWxmLmdldCgpIGRpZENvbXBsZXRlV2l0aEVycm9yOm5pbF07CisgICAgICAgICAgICBb
ZGVsZWdhdGUgVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9uICopc3Ryb25nU2VsZi5nZXQoKS5zZXNz
aW9uIHRhc2s6KE5TVVJMU2Vzc2lvbkRhdGFUYXNrICopc3Ryb25nU2VsZi5nZXQoKSBkaWRDb21w
bGV0ZVdpdGhFcnJvcjpzdHJvbmdFcnJvci5nZXQoKV07CiAKICAgICAgICAgY2FsbE9uTWFpblRo
cmVhZChbc3Ryb25nU2VsZl0gewogICAgICAgICAgICAgW3N0cm9uZ1NlbGYuZ2V0KCkuc2Vzc2lv
biB0YXNrQ29tcGxldGVkOnN0cm9uZ1NlbGYuZ2V0KCldOwogICAgICAgICB9KTsKICAgICB9XTsK
IH0KKworLSAodm9pZClyZXNvdXJjZTooUGxhdGZvcm1NZWRpYVJlc291cmNlJilyZXNvdXJjZSBh
Y2Nlc3NDb250cm9sQ2hlY2tGYWlsZWRXaXRoRXJyb3I6KGNvbnN0IFJlc291cmNlRXJyb3ImKWVy
cm9yCit7CisgICAgW3NlbGYgX3Jlc291cmNlOnJlc291cmNlIGxvYWRGaW5pc2hlZFdpdGhFcnJv
cjplcnJvci5uc0Vycm9yKCldOworfQorCistICh2b2lkKXJlc291cmNlOihQbGF0Zm9ybU1lZGlh
UmVzb3VyY2UmKXJlc291cmNlIGxvYWRGYWlsZWRXaXRoRXJyb3I6KGNvbnN0IFJlc291cmNlRXJy
b3ImKWVycm9yCit7CisgICAgW3NlbGYgX3Jlc291cmNlOnJlc291cmNlIGxvYWRGaW5pc2hlZFdp
dGhFcnJvcjplcnJvci5uc0Vycm9yKCldOworfQorCistICh2b2lkKXJlc291cmNlRmluaXNoZWQ6
KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpcmVzb3VyY2UKK3sKKyAgICBbc2VsZiBfcmVzb3VyY2U6
cmVzb3VyY2UgbG9hZEZpbmlzaGVkV2l0aEVycm9yOm5pbF07Cit9CiBAZW5kCiAKICNlbmRpZiAv
LyBQTEFURk9STShJT1MpIHx8IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
MTAwCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271767</attachid>
            <date>2016-02-19 11:28:51 -0800</date>
            <delta_ts>2016-02-19 11:32:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154188-20160219112832.patch</filename>
            <type>text/plain</type>
            <size>13741</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2ODIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTkwN2JiNTNkMzM5MzA5
ZjY1ZmFjMjJmOGJiMzExODQ1NzhmMmE0Ni4uM2VjNTI5YjgwZmM4Mzc1MGY3MTNkYTcyNTkyMWY0
MzdmNzdiMzI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE2LTAyLTEyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIENPUlMtY29tcGxp
YW50IHZpZGVvcyB0aHJvdyBzZWN1cml0eSBlcnJvcnMgd2hlbiBwYWludGluZyB0byBDYW52YXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDE4OAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI5NTk1NTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFzcyB0aGUgQ09SUyBhY2Nlc3MgY2hlY2sgcmVz
dWx0cyBmcm9tIFdlYkNvcmVOU1VSTFNlc3Npb24gdG8gaXQncyBjbGllbnQsCisgICAgICAgIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkaWRQYXNzQ09SU0FjY2Vzc0NoZWNrKTogQXNrIHRoZSBX
ZWJDb3JlTlNVUkxTZXNzaW9uLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvV2Vi
Q29yZU5TVVJMU2Vzc2lvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvV2Vi
Q29yZU5TVVJMU2Vzc2lvbi5tbToKKyAgICAgICAgKC1bV2ViQ29yZU5TVVJMU2Vzc2lvbiB0YXNr
OmRpZFJlY2VpdmVDT1JTQWNjZXNzQ2hlY2tSZXN1bHQ6XSk6IENvbmRpdGlvbmFsbHkgc2V0IF9j
b3JzUmVzdWx0cy4KKyAgICAgICAgKC1bV2ViQ29yZU5TVVJMU2Vzc2lvbiBkaWRQYXNzQ09SU0Fj
Y2Vzc0NoZWNrc10pOiBSZXR1cm4gX2NvcnNSZXN1bHRzLgorICAgICAgICAoV2ViQ29yZU5TVVJM
U2Vzc2lvbkRhdGFUYXNrQ2xpZW50OjphY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQpOiBDYWxsIC1y
ZXNvdXJjZTphY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWRXaXRoRXJyb3I6LgorICAgICAgICAoV2Vi
Q29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50Ojpsb2FkRmFpbGVkKTogQ2FsbCAtcmVzb3Vy
Y2U6bG9hZEZhaWxlZFdpdGhFcnJvcjouCisgICAgICAgICgtW1dlYkNvcmVOU1VSTFNlc3Npb25E
YXRhVGFzayByZXNvdXJjZTpyZWNlaXZlZFJlc3BvbnNlOl0pOiBTZXQgX3Jlc3BvbnNlIHdpdGhp
biB0aGUgZGVsZWdhdGUgcXVldWUuCisgICAgICAgICgtW1dlYkNvcmVOU1VSTFNlc3Npb25EYXRh
VGFzayBfcmVzb3VyY2U6bG9hZEZpbmlzaGVkV2l0aEVycm9yOl0pOiBSZW5hbWVkIGZyb20gcmVz
b3VyY2VGaW5pc2hlZDoKKyAgICAgICAgKC1bV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrIHJl
c291cmNlOmFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZFdpdGhFcnJvcjpdKTogRGl0dG8uCisgICAg
ICAgICgtW1dlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFzayByZXNvdXJjZTpsb2FkRmFpbGVkV2l0
aEVycm9yOl0pOiBEaXR0by4KKyAgICAgICAgKC1bV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNr
IHJlc291cmNlRmluaXNoZWQ6XSk6IERpdHRvLgorCiAyMDE2LTAyLTE5ICBKZXIgTm9ibGUgIDxq
ZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIEFsbG93IENhY2hlZFJhd1Jlc291cmNlIGNs
aWVudHMgdG8gb3B0IG91dCBvZiBjYWNoaW5nIG9uIGEgcGVyLXJlc3BvbnNlIGJhc2lzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLmgKaW5kZXggM2ZmY2UxZWNhYzZkODQ4ZTdiNjIxZjY0YjA3ODI0YTI2ZTIw
YWNkMy4uMjBmNjU3OTIyOWViODkzY2QwMTViYmZmZTk4YjI1MmIxYmZiZTc2NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMuaApAQCAtMjE2LDcgKzIxNiw4IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlVmlkZW9MYXllckdyYXZpdHkoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwg
Ym9vbCBoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wg
aGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGRpZFBh
c3NDT1JTQWNjZXNzQ2hlY2soKSBjb25zdCBvdmVycmlkZTsKIAogICAgIE1lZGlhVGltZSBnZXRT
dGFydERhdGUoKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXgg
ODBlZTBiNzY4YjMyM2UzZDIyZWJjZTY3ZWZiYzc0ZWQ1ZGVhNWYyZS4uZGFjOTE5NzFkMjViYzUw
OTQwY2MzYzFlYjY2Mjc5MGI5ZTQ1NDY2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0y
MTYzLDYgKzIxNjMsMjEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0CiAgICAgcmV0dXJuIHJlc29sdmVkT3Jp
Z2luLmdldCgpLmlzU2FtZVNjaGVtZUhvc3RQb3J0KCZyZXF1ZXN0ZWRPcmlnaW4uZ2V0KCkpOwog
fQogCitib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRpZFBhc3NDT1JT
QWNjZXNzQ2hlY2soKSBjb25zdAoreworI2lmIFBMQVRGT1JNKElPUykgfHwgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKKyAgICBBVkFzc2V0UmVzb3VyY2VMb2FkZXIg
KnJlc291cmNlTG9hZGVyID0gbV9hdkFzc2V0LmdldCgpLnJlc291cmNlTG9hZGVyOworICAgIGlm
ICghU2V0dGluZ3M6OmlzQVZGb3VuZGF0aW9uTlNVUkxTZXNzaW9uRW5hYmxlZCgpCisgICAgICAg
IHx8ICFbcmVzb3VyY2VMb2FkZXIgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihVUkxTZXNz
aW9uKV0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFdlYkNvcmVOU1VSTFNlc3Npb24g
KnNlc3Npb24gPSAoV2ViQ29yZU5TVVJMU2Vzc2lvbiAqKXJlc291cmNlTG9hZGVyLlVSTFNlc3Np
b247CisgICAgaWYgKFtzZXNzaW9uIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoZGlkUGFz
c0NPUlNBY2Nlc3NDaGVja3MpXSkKKyAgICAgICAgcmV0dXJuIHNlc3Npb24uZGlkUGFzc0NPUlNB
Y2Nlc3NDaGVja3M7CisjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKICNpZiBIQVZFKEFW
Rk9VTkRBVElPTl9WSURFT19PVVRQVVQpCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OmNyZWF0ZVZpZGVvT3V0cHV0KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLmgKaW5k
ZXggZjNhOGViMGEwMmU0YjIyYTBhM2ZmNzllYzQ2MTU1YzVjNWE3MDc3ZC4uOWViYTEyMGE2OWM3
MDE3MGViOTI5NTU5ZGI4MGUzZjEyMjlmZTk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLmgKQEAg
LTQ4LDYgKzQ4LDEyIEBAIGNsYXNzIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcjsKIGNsYXNz
IFdlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFza0NsaWVudDsKIH0KIAorZW51bSBjbGFzcyBXZWJD
b3JlTlNVUkxTZXNzaW9uQ09SU0FjY2Vzc0NoZWNrUmVzdWx0cyB7CisgICAgVW5rbm93biwKKyAg
ICBQYXNzLAorICAgIEZhaWwsCit9OworCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiBXRUJD
T1JFX0VYUE9SVCBAaW50ZXJmYWNlIFdlYkNvcmVOU1VSTFNlc3Npb24gOiBOU09iamVjdCB7CkBA
IC01OSwxMiArNjUsMTQgQEAgV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBXZWJDb3JlTlNVUkxT
ZXNzaW9uIDogTlNPYmplY3QgewogICAgIEJPT0wgX2ludmFsaWRhdGVkOwogICAgIE5TVUludGVn
ZXIgX25leHRUYXNrSWRlbnRpZmllcjsKICAgICBPU09iamVjdFB0cjxkaXNwYXRjaF9xdWV1ZV90
PiBfaW50ZXJuYWxRdWV1ZTsKKyAgICBXZWJDb3JlTlNVUkxTZXNzaW9uQ09SU0FjY2Vzc0NoZWNr
UmVzdWx0cyBfY29yc1Jlc3VsdHM7CiB9CiAtIChpZClpbml0V2l0aFJlc291cmNlTG9hZGVyOihX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXImKWxvYWRlciBkZWxlZ2F0ZTooaWQ8
TlNVUkxTZXNzaW9uVGFza0RlbGVnYXRlPilkZWxlZ2F0ZSBkZWxlZ2F0ZVF1ZXVlOihOU09wZXJh
dGlvblF1ZXVlKilxdWV1ZTsKIEBwcm9wZXJ0eSAocmVhZG9ubHksIHJldGFpbikgTlNPcGVyYXRp
b25RdWV1ZSAqZGVsZWdhdGVRdWV1ZTsKIEBwcm9wZXJ0eSAobnVsbGFibGUsIHJlYWRvbmx5LCBy
ZXRhaW4pIGlkIDxOU1VSTFNlc3Npb25EZWxlZ2F0ZT4gZGVsZWdhdGU7CiBAcHJvcGVydHkgKHJl
YWRvbmx5LCBjb3B5KSBOU1VSTFNlc3Npb25Db25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uOwog
QHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqc2Vzc2lvbkRlc2NyaXB0aW9uOworQHByb3BlcnR5
IChyZWFkb25seSkgQk9PTCBkaWRQYXNzQ09SU0FjY2Vzc0NoZWNrczsKIC0gKHZvaWQpZmluaXNo
VGFza3NBbmRJbnZhbGlkYXRlOwogLSAodm9pZClpbnZhbGlkYXRlQW5kQ2FuY2VsOwogCkBAIC05
Nyw3ICsxMDUsNiBAQCBXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIFdlYkNvcmVOU1VSTFNlc3Np
b24gOiBOU09iamVjdCB7CiAKIEBpbnRlcmZhY2UgV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNr
IDogTlNPYmplY3QgewogICAgIFdlYkNvcmVOU1VSTFNlc3Npb24gKl9zZXNzaW9uOwotICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ+
IF9jbGllbnQ7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZT4gX3Jl
c291cmNlOwogICAgIFJldGFpblB0cjxOU1VSTFJlc3BvbnNlPiBfcmVzcG9uc2U7CiAgICAgTlNV
SW50ZWdlciBfdGFza0lkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0KaW5kZXggNDQ5
NjVkZjVmNDUwYWYzNTk2NjA4NDhhYzc0ODVhMmIzZjYzNjAxZC4uODk3MjQyYWM3NWFlMTM5YzJk
ZTcwMTIxMzAyY2VjM2RjNTAyNmYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbQpAQCAtNDMs
NiArNDMsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogQHByb3BlcnR5IChyZWFkd3JpdGUs
IHJldGFpbikgaWQ8TlNVUkxTZXNzaW9uVGFza0RlbGVnYXRlPiBkZWxlZ2F0ZTsKIC0gKHZvaWQp
dGFza0NvbXBsZXRlZDooV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrICopdGFzazsKIC0gKHZv
aWQpYWRkRGVsZWdhdGVPcGVyYXRpb246KHZvaWQgKF4pKHZvaWQpKW9wZXJhdGlvbjsKKy0gKHZv
aWQpdGFzazooV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrICopdGFzayBkaWRSZWNlaXZlQ09S
U0FjY2Vzc0NoZWNrUmVzdWx0OihCT09MKXJlc3VsdDsKIEBlbmQKIAogQGludGVyZmFjZSBXZWJD
b3JlTlNVUkxTZXNzaW9uRGF0YVRhc2sgKCkKQEAgLTU4LDYgKzU5LDggQEAgTlNfQVNTVU1FX05P
Tk5VTExfQkVHSU4KIC0gKHZvaWQpcmVzb3VyY2U6KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpcmVz
b3VyY2UgcmVjZWl2ZWRSZXNwb25zZTooY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpcmVzcG9uc2U7
CiAtICh2b2lkKXJlc291cmNlOihQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmKXJlc291cmNlIHJlY2Vp
dmVkRGF0YTooY29uc3QgY2hhciopZGF0YSBsZW5ndGg6KGludClsZW5ndGg7CiAtICh2b2lkKXJl
c291cmNlOihQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmKXJlc291cmNlIHJlY2VpdmVkUmVkaXJlY3Q6
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKXJlc3BvbnNlIHJlcXVlc3Q6KFJlc291cmNlUmVxdWVz
dCYpcmVxdWVzdDsKKy0gKHZvaWQpcmVzb3VyY2U6KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpcmVz
b3VyY2UgYWNjZXNzQ29udHJvbENoZWNrRmFpbGVkV2l0aEVycm9yOihjb25zdCBSZXNvdXJjZUVy
cm9yJillcnJvcjsKKy0gKHZvaWQpcmVzb3VyY2U6KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpcmVz
b3VyY2UgbG9hZEZhaWxlZFdpdGhFcnJvcjooY29uc3QgUmVzb3VyY2VFcnJvciYpZXJyb3I7CiAt
ICh2b2lkKXJlc291cmNlRmluaXNoZWQ6KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpcmVzb3VyY2U7
CiBAZW5kCiAKQEAgLTcyLDEwICs3NSwxMiBAQCBOU19BU1NVTUVfTk9OTlVMTF9FTkQKICAgICBp
ZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7CiAKKyAgICBBU1NFUlQoX2NvcnNSZXN1bHRz
ID09IFdlYkNvcmVOU1VSTFNlc3Npb25DT1JTQWNjZXNzQ2hlY2tSZXN1bHRzOjpVbmtub3duKTsK
KyAgICBBU1NFUlQoIV9pbnZhbGlkYXRlZCk7CisKICAgICBfbG9hZGVyID0gJmxvYWRlcjsKICAg
ICBzZWxmLmRlbGVnYXRlID0gaW5EZWxlZ2F0ZTsKICAgICBfcXVldWUgPSBpblF1ZXVlID8gaW5R
dWV1ZSA6IFtOU09wZXJhdGlvblF1ZXVlIG1haW5RdWV1ZV07Ci0gICAgX2ludmFsaWRhdGVkID0g
Tk87CiAgICAgX2ludGVybmFsUXVldWUgPSBhZG9wdE9TT2JqZWN0KGRpc3BhdGNoX3F1ZXVlX2Ny
ZWF0ZSgiV2ViQ29yZU5TVVJMU2Vzc2lvbiBfaW50ZXJuYWxRdWV1ZSIsIERJU1BBVENIX1FVRVVF
X1NFUklBTCkpOwogCiAgICAgcmV0dXJuIHNlbGY7CkBAIC0xMjAsNiArMTI1LDE1IEBAIE5TX0FT
U1VNRV9OT05OVUxMX0VORAogICAgIH0pOwogfQogCistICh2b2lkKXRhc2s6KFdlYkNvcmVOU1VS
TFNlc3Npb25EYXRhVGFzayAqKXRhc2sgZGlkUmVjZWl2ZUNPUlNBY2Nlc3NDaGVja1Jlc3VsdDoo
Qk9PTClyZXN1bHQKK3sKKyAgICBVTlVTRURfUEFSQU0odGFzayk7CisgICAgaWYgKCFyZXN1bHQp
CisgICAgICAgIF9jb3JzUmVzdWx0cyA9IFdlYkNvcmVOU1VSTFNlc3Npb25DT1JTQWNjZXNzQ2hl
Y2tSZXN1bHRzOjpGYWlsOworICAgIGVsc2UgaWYgKF9jb3JzUmVzdWx0cyAhPSBXZWJDb3JlTlNV
UkxTZXNzaW9uQ09SU0FjY2Vzc0NoZWNrUmVzdWx0czo6RmFpbCkKKyAgICAgICAgX2NvcnNSZXN1
bHRzID0gV2ViQ29yZU5TVVJMU2Vzc2lvbkNPUlNBY2Nlc3NDaGVja1Jlc3VsdHM6OlBhc3M7Cit9
CisKICNwcmFnbWEgbWFyayAtIE5TVVJMU2Vzc2lvbiBBUEkKIEBzeW50aGVzaXplIHNlc3Npb25E
ZXNjcmlwdGlvbj1fc2Vzc2lvbkRlc2NyaXB0aW9uOwogQGR5bmFtaWMgZGVsZWdhdGU7CkBAIC0x
NTEsNiArMTY1LDEyIEBAIE5TX0FTU1VNRV9OT05OVUxMX0VORAogICAgIHJldHVybiAqX2xvYWRl
cjsKIH0KIAorQGR5bmFtaWMgZGlkUGFzc0NPUlNBY2Nlc3NDaGVja3M7CistIChCT09MKWRpZFBh
c3NDT1JTQWNjZXNzQ2hlY2tzCit7CisgICAgcmV0dXJuIF9jb3JzUmVzdWx0cyA9PSBXZWJDb3Jl
TlNVUkxTZXNzaW9uQ09SU0FjY2Vzc0NoZWNrUmVzdWx0czo6UGFzczsKK30KKwogLSAodm9pZClm
aW5pc2hUYXNrc0FuZEludmFsaWRhdGUKIHsKICAgICBfaW52YWxpZGF0ZWQgPSBZRVM7CkBAIC0y
OTgsNiArMzE4LDggQEAgcHVibGljOgogICAgIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChQbGF0Zm9y
bU1lZGlhUmVzb3VyY2UmLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkYXRhU2VudChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCB1
bnNpZ25lZCBsb25nIGxvbmcsIHVuc2lnbmVkIGxvbmcgbG9uZykgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBkYXRhUmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgY2hhciogLyogZGF0
YSAqLywgaW50IC8qIGxlbmd0aCAqLykgb3ZlcnJpZGU7CisgICAgdm9pZCBhY2Nlc3NDb250cm9s
Q2hlY2tGYWlsZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VFcnJvciYp
IG92ZXJyaWRlOworICAgIHZvaWQgbG9hZEZhaWxlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBj
b25zdCBSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBsb2FkRmluaXNoZWQoUGxh
dGZvcm1NZWRpYVJlc291cmNlJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CkBAIC0zMjQsNiArMzQ2
LDE2IEBAIHZvaWQgV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50OjpyZWRpcmVjdFJl
Y2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYKICAgICBbbV90YXNrIHJlc291cmNlOnJlc291
cmNlIHJlY2VpdmVkUmVkaXJlY3Q6cmVzcG9uc2UgcmVxdWVzdDpyZXF1ZXN0XTsKIH0KIAordm9p
ZCBXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ6OmFjY2Vzc0NvbnRyb2xDaGVja0Zh
aWxlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmIHJlc291cmNlLCBjb25zdCBSZXNvdXJjZUVycm9y
JiBlcnJvcikKK3sKKyAgICBbbV90YXNrIHJlc291cmNlOnJlc291cmNlIGFjY2Vzc0NvbnRyb2xD
aGVja0ZhaWxlZFdpdGhFcnJvcjplcnJvcl07Cit9CisKK3ZvaWQgV2ViQ29yZU5TVVJMU2Vzc2lv
bkRhdGFUYXNrQ2xpZW50Ojpsb2FkRmFpbGVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYgcmVzb3Vy
Y2UsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAgIFttX3Rhc2sgcmVzb3VyY2U6
cmVzb3VyY2UgbG9hZEZhaWxlZFdpdGhFcnJvcjplcnJvcl07Cit9CisKIHZvaWQgV2ViQ29yZU5T
VVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50Ojpsb2FkRmluaXNoZWQoUGxhdGZvcm1NZWRpYVJlc291
cmNlJiByZXNvdXJjZSkKIHsKICAgICBbbV90YXNrIHJlc291cmNlRmluaXNoZWQ6cmVzb3VyY2Vd
OwpAQCAtNDczLDExICs1MDUsMTQgQEAgdm9pZCBXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tD
bGllbnQ6OmxvYWRGaW5pc2hlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmIHJlc28KIHsKICAgICBB
U1NFUlRfVU5VU0VEKHJlc291cmNlLCAmcmVzb3VyY2UgPT0gX3Jlc291cmNlKTsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwotICAgIF9yZXNwb25zZSA9IHJlc3BvbnNlLm5zVVJMUmVzcG9u
c2UoKTsKKyAgICBbc2VsZi5zZXNzaW9uIHRhc2s6c2VsZiBkaWRSZWNlaXZlQ09SU0FjY2Vzc0No
ZWNrUmVzdWx0OnJlc291cmNlLmRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2soKV07CiAgICAgc2Vs
Zi5jb3VudE9mQnl0ZXNFeHBlY3RlZFRvUmVjZWl2ZSA9IHJlc3BvbnNlLmV4cGVjdGVkQ29udGVu
dExlbmd0aCgpOwogICAgIFtzZWxmIF9zZXREZWZlcnNMb2FkaW5nOllFU107CisgICAgUmV0YWlu
UHRyPE5TVVJMUmVzcG9uc2U+IHN0cm9uZ1Jlc3BvbnNlIHsgcmVzcG9uc2UubnNVUkxSZXNwb25z
ZSgpIH07CiAgICAgUmV0YWluUHRyPFdlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFzaz4gc3Ryb25n
U2VsZiB7IHNlbGYgfTsKLSAgICBbc2VsZi5zZXNzaW9uIGFkZERlbGVnYXRlT3BlcmF0aW9uOltz
dHJvbmdTZWxmXSB7CisgICAgW3NlbGYuc2Vzc2lvbiBhZGREZWxlZ2F0ZU9wZXJhdGlvbjpbc3Ry
b25nU2VsZiwgc3Ryb25nUmVzcG9uc2VdIHsKKyAgICAgICAgc3Ryb25nU2VsZi0+X3Jlc3BvbnNl
ID0gc3Ryb25nUmVzcG9uc2UuZ2V0KCk7CisKICAgICAgICAgaWQ8TlNVUkxTZXNzaW9uRGF0YURl
bGVnYXRlPiBkYXRhRGVsZWdhdGUgPSAoaWQ8TlNVUkxTZXNzaW9uRGF0YURlbGVnYXRlPilzdHJv
bmdTZWxmLmdldCgpLnNlc3Npb24uZGVsZWdhdGU7CiAgICAgICAgIGlmICghW2RhdGFEZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKFVSTFNlc3Npb246ZGF0YVRhc2s6ZGlkUmVj
ZWl2ZVJlc3BvbnNlOmNvbXBsZXRpb25IYW5kbGVyOildKSB7CiAgICAgICAgICAgICBjYWxsT25N
YWluVGhyZWFkKFtzdHJvbmdTZWxmXSB7CkBAIC00ODYsNyArNTIxLDcgQEAgdm9pZCBXZWJDb3Jl
TlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ6OmxvYWRGaW5pc2hlZChQbGF0Zm9ybU1lZGlhUmVz
b3VyY2UmIHJlc28KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIFtk
YXRhRGVsZWdhdGUgVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9uICopc3Ryb25nU2VsZi5nZXQoKS5z
ZXNzaW9uIGRhdGFUYXNrOihOU1VSTFNlc3Npb25EYXRhVGFzayAqKXN0cm9uZ1NlbGYuZ2V0KCkg
ZGlkUmVjZWl2ZVJlc3BvbnNlOnN0cm9uZ1NlbGYuZ2V0KCkucmVzcG9uc2UgY29tcGxldGlvbkhh
bmRsZXI6W3N0cm9uZ1NlbGZdIChOU1VSTFNlc3Npb25SZXNwb25zZURpc3Bvc2l0aW9uIGRpc3Bv
c2l0aW9uKSB7CisgICAgICAgIFtkYXRhRGVsZWdhdGUgVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9u
ICopc3Ryb25nU2VsZi5nZXQoKS5zZXNzaW9uIGRhdGFUYXNrOihOU1VSTFNlc3Npb25EYXRhVGFz
ayAqKXN0cm9uZ1NlbGYuZ2V0KCkgZGlkUmVjZWl2ZVJlc3BvbnNlOnN0cm9uZ1Jlc3BvbnNlLmdl
dCgpIGNvbXBsZXRpb25IYW5kbGVyOltzdHJvbmdTZWxmXSAoTlNVUkxTZXNzaW9uUmVzcG9uc2VE
aXNwb3NpdGlvbiBkaXNwb3NpdGlvbikgewogICAgICAgICAgICAgaWYgKGRpc3Bvc2l0aW9uID09
IE5TVVJMU2Vzc2lvblJlc3BvbnNlQ2FuY2VsKQogICAgICAgICAgICAgICAgIFtzdHJvbmdTZWxm
IGNhbmNlbF07CiAgICAgICAgICAgICBlbHNlIGlmIChkaXNwb3NpdGlvbiA9PSBOU1VSTFNlc3Np
b25SZXNwb25zZUFsbG93KQpAQCAtNTMxLDIyICs1NjYsMzYgQEAgdm9pZCBXZWJDb3JlTlNVUkxT
ZXNzaW9uRGF0YVRhc2tDbGllbnQ6OmxvYWRGaW5pc2hlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2Um
IHJlc28KICAgICAvLyBBUEksIHRoaXMgY2FuIGJlIGltcGxlbWVudGVkLgogfQogCi0tICh2b2lk
KXJlc291cmNlRmluaXNoZWQ6KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpcmVzb3VyY2UKKy0gKHZv
aWQpX3Jlc291cmNlOihQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmKXJlc291cmNlIGxvYWRGaW5pc2hl
ZFdpdGhFcnJvcjooTlNFcnJvciAqKWVycm9yCiB7CiAgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJj
ZSwgJnJlc291cmNlID09IF9yZXNvdXJjZSk7Ci0gICAgc2VsZi5zdGF0ZSA9IE5TVVJMU2Vzc2lv
blRhc2tTdGF0ZUNvbXBsZXRlZDsKLQogICAgIFJldGFpblB0cjxXZWJDb3JlTlNVUkxTZXNzaW9u
RGF0YVRhc2s+IHN0cm9uZ1NlbGYgeyBzZWxmIH07Ci0gICAgW3NlbGYuc2Vzc2lvbiBhZGREZWxl
Z2F0ZU9wZXJhdGlvbjpbc3Ryb25nU2VsZl0geworICAgIFJldGFpblB0cjxOU0Vycm9yPiBzdHJv
bmdFcnJvciB7IGVycm9yIH07CisgICAgW3NlbGYuc2Vzc2lvbiBhZGREZWxlZ2F0ZU9wZXJhdGlv
bjpbc3Ryb25nU2VsZiwgc3Ryb25nRXJyb3JdIHsKICAgICAgICAgaWQ8TlNVUkxTZXNzaW9uVGFz
a0RlbGVnYXRlPiBkZWxlZ2F0ZSA9IChpZDxOU1VSTFNlc3Npb25UYXNrRGVsZWdhdGU+KXN0cm9u
Z1NlbGYuZ2V0KCkuc2Vzc2lvbi5kZWxlZ2F0ZTsKICAgICAgICAgaWYgKFtkZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKFVSTFNlc3Npb246dGFzazpkaWRDb21wbGV0ZVdpdGhF
cnJvcjopXSkKLSAgICAgICAgICAgIFtkZWxlZ2F0ZSBVUkxTZXNzaW9uOihOU1VSTFNlc3Npb24g
KilzdHJvbmdTZWxmLmdldCgpLnNlc3Npb24gdGFzazooTlNVUkxTZXNzaW9uRGF0YVRhc2sgKilz
dHJvbmdTZWxmLmdldCgpIGRpZENvbXBsZXRlV2l0aEVycm9yOm5pbF07CisgICAgICAgICAgICBb
ZGVsZWdhdGUgVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9uICopc3Ryb25nU2VsZi5nZXQoKS5zZXNz
aW9uIHRhc2s6KE5TVVJMU2Vzc2lvbkRhdGFUYXNrICopc3Ryb25nU2VsZi5nZXQoKSBkaWRDb21w
bGV0ZVdpdGhFcnJvcjpzdHJvbmdFcnJvci5nZXQoKV07CiAKICAgICAgICAgY2FsbE9uTWFpblRo
cmVhZChbc3Ryb25nU2VsZl0gewogICAgICAgICAgICAgW3N0cm9uZ1NlbGYuZ2V0KCkuc2Vzc2lv
biB0YXNrQ29tcGxldGVkOnN0cm9uZ1NlbGYuZ2V0KCldOwogICAgICAgICB9KTsKICAgICB9XTsK
IH0KKworLSAodm9pZClyZXNvdXJjZTooUGxhdGZvcm1NZWRpYVJlc291cmNlJilyZXNvdXJjZSBh
Y2Nlc3NDb250cm9sQ2hlY2tGYWlsZWRXaXRoRXJyb3I6KGNvbnN0IFJlc291cmNlRXJyb3ImKWVy
cm9yCit7CisgICAgW3NlbGYgX3Jlc291cmNlOnJlc291cmNlIGxvYWRGaW5pc2hlZFdpdGhFcnJv
cjplcnJvci5uc0Vycm9yKCldOworfQorCistICh2b2lkKXJlc291cmNlOihQbGF0Zm9ybU1lZGlh
UmVzb3VyY2UmKXJlc291cmNlIGxvYWRGYWlsZWRXaXRoRXJyb3I6KGNvbnN0IFJlc291cmNlRXJy
b3ImKWVycm9yCit7CisgICAgW3NlbGYgX3Jlc291cmNlOnJlc291cmNlIGxvYWRGaW5pc2hlZFdp
dGhFcnJvcjplcnJvci5uc0Vycm9yKCldOworfQorCistICh2b2lkKXJlc291cmNlRmluaXNoZWQ6
KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpcmVzb3VyY2UKK3sKKyAgICBbc2VsZiBfcmVzb3VyY2U6
cmVzb3VyY2UgbG9hZEZpbmlzaGVkV2l0aEVycm9yOm5pbF07Cit9CiBAZW5kCiAKICNlbmRpZiAv
LyBQTEFURk9STShJT1MpIHx8IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
MTAwCg==
</data>
<flag name="review"
          id="296593"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>