<?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>183010</bug_id>
          
          <creation_ts>2018-02-21 11:48:05 -0800</creation_ts>
          <short_desc>[Curl] Remove unnecessary copied ResourceRequest member variable.</short_desc>
          <delta_ts>2018-03-06 16:33:34 -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>WebCore Misc.</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Basuke Suzuki">basuke</reporter>
          <assigned_to name="Basuke Suzuki">basuke</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>basuke</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>galpeter</cc>
    
    <cc>pvollan</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1401193</commentid>
    <comment_count>0</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-02-21 11:48:05 -0800</bug_when>
    <thetext>It was used when both redirect and authentication happens, but by adding const reference getter to CurlRequest, it is no longer needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401219</commentid>
    <comment_count>1</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-02-21 12:21:08 -0800</bug_when>
    <thetext>This is a successor bug for https://bugs.webkit.org/show_bug.cgi?id=181704.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401229</commentid>
    <comment_count>2</comment_count>
      <attachid>334406</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-02-21 12:50:42 -0800</bug_when>
    <thetext>Created attachment 334406
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1403351</commentid>
    <comment_count>3</comment_count>
      <attachid>334406</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-03-02 13:42:30 -0800</bug_when>
    <thetext>Comment on attachment 334406
patch

Some questions below.

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

&gt; Source/WebCore/platform/network/ResourceHandle.h:300
&gt; +    enum class PreflightRequest {

I am not clear what PreflightRequest means in that context.
In the context of HTTP, preflight requests are used for CORS, but this does not seem related.
Would there be a better name to explicit the purpose. Is it a mechanism to do conditional requests?

&gt; Source/WebCore/platform/network/curl/ResourceHandleCurl.cpp:136
&gt; +Ref&lt;CurlRequest&gt; ResourceHandle::createCurlRequest(ResourceRequest&amp; request, PreflightRequest preflight)

Would it make sense to take a ResourceRequest&amp;&amp; in case CurlRequest is probably creating its own copy of the request?

&gt; Source/WebCore/platform/network/curl/ResourceHandleCurl.cpp:364
&gt; +    auto previousRequest = d-&gt;m_curlRequest-&gt;resourceRequest().isolatedCopy();

Is the isolatedCopy needed here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1403353</commentid>
    <comment_count>4</comment_count>
      <attachid>334406</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-03-02 13:46:47 -0800</bug_when>
    <thetext>Comment on attachment 334406
patch

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

Thanks for reviewing!

&gt;&gt; Source/WebCore/platform/network/ResourceHandle.h:300
&gt;&gt; +    enum class PreflightRequest {
&gt; 
&gt; I am not clear what PreflightRequest means in that context.
&gt; In the context of HTTP, preflight requests are used for CORS, but this does not seem related.
&gt; Would there be a better name to explicit the purpose. Is it a mechanism to do conditional requests?

Ah, right. I use preflight not meaning about CORS, but general meaning of preparation by parsing the headers or such info. Is `Preprocess` the better name?

&gt;&gt; Source/WebCore/platform/network/curl/ResourceHandleCurl.cpp:136
&gt;&gt; +Ref&lt;CurlRequest&gt; ResourceHandle::createCurlRequest(ResourceRequest&amp; request, PreflightRequest preflight)
&gt; 
&gt; Would it make sense to take a ResourceRequest&amp;&amp; in case CurlRequest is probably creating its own copy of the request?

Okay, i&apos;ll think about it.

&gt;&gt; Source/WebCore/platform/network/curl/ResourceHandleCurl.cpp:364
&gt;&gt; +    auto previousRequest = d-&gt;m_curlRequest-&gt;resourceRequest().isolatedCopy();
&gt; 
&gt; Is the isolatedCopy needed here?

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1403361</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-03-02 13:54:56 -0800</bug_when>
    <thetext>&gt; &gt; I am not clear what PreflightRequest means in that context.
&gt; &gt; In the context of HTTP, preflight requests are used for CORS, but this does not seem related.
&gt; &gt; Would there be a better name to explicit the purpose. Is it a mechanism to do conditional requests?
&gt; 
&gt; Ah, right. I use preflight not meaning about CORS, but general meaning of
&gt; preparation by parsing the headers or such info. Is `Preprocess` the better
&gt; name?

Preprocess is very generic as well and it seems that this is related to an existing cache so I would try to come up with a name inducing the notion of cache.

If this is related to HTTP conditional request/revalidation, I would try to make the name as specific as possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404145</commentid>
    <comment_count>6</comment_count>
      <attachid>335136</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-03-06 13:44:04 -0800</bug_when>
    <thetext>Created attachment 335136
Patch

Rename Preflight to RequestStatus which indicates it&apos;s new or reuse. Also stop isolateCopy, but simple copy. Move is not used here because original request need to be valid in m_firstRequest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404163</commentid>
    <comment_count>7</comment_count>
      <attachid>335136</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-06 14:37:01 -0800</bug_when>
    <thetext>Comment on attachment 335136
Patch

Rejecting attachment 335136 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 335136, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
=335136
Found no modified ChangeLogs, cannot create a commit message.
All changes require a ChangeLog.  See:
 http://webkit.org/coding/contributing.html
Found no modified ChangeLogs, cannot create a commit message.
All changes require a ChangeLog.  See:
 http://webkit.org/coding/contributing.html
Found no modified ChangeLogs, cannot create a commit message.
All changes require a ChangeLog.  See:
 http://webkit.org/coding/contributing.html
Updating OpenSource
Current branch master is up to date.

Full output: http://webkit-queues.webkit.org/results/6831883</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404166</commentid>
    <comment_count>8</comment_count>
      <attachid>335142</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-03-06 14:43:52 -0800</bug_when>
    <thetext>Created attachment 335142
changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404206</commentid>
    <comment_count>9</comment_count>
      <attachid>335142</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-06 16:32:53 -0800</bug_when>
    <thetext>Comment on attachment 335142
changelog

Clearing flags on attachment: 335142

Committed r229347: &lt;https://trac.webkit.org/changeset/229347&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404207</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-06 16:32:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404208</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-03-06 16:33:34 -0800</bug_when>
    <thetext>&lt;rdar://problem/38200401&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334406</attachid>
            <date>2018-02-21 12:50:42 -0800</date>
            <delta_ts>2018-03-06 13:44:04 -0800</delta_ts>
            <desc>patch</desc>
            <filename>183010.diff</filename>
            <type>text/plain</type>
            <size>8921</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxMDBjZWNjN2E1Yy4uMjQxNTc0NjE0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxOC0wMi0yMSAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29u
eS5jb20+CisKKyAgICAgICAgW0N1cmxdIFJlbW92ZSB1bm5lY2Vzc2FyeSBjb3BpZWQgUmVzb3Vy
Y2VSZXF1ZXN0IG1lbWJlciB2YXJpYWJsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4MzAxMAorCisgICAgICAgIEl0IHdhcyB1c2VkIHdoZW4gYm90
aCByZWRpcmVjdCBhbmQgYXV0aGVudGljYXRpb24gaGFwcGVucywgYnV0IGJ5IGFkZGluZworICAg
ICAgICBjb25zdCByZWZlcmVuY2UgZ2V0dGVyIHRvIEN1cmxSZXF1ZXN0LCBpdCBpcyBubyBsb25n
ZXIgbmVlZGVkLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoZXJlJ3Mgbm8gbmV3IGJlaGF2aW9yLgorCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpDdXJsUmVxdWVzdDo6cmVzb3VyY2VSZXF1ZXN0IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZTo6cHJlZmxpZ2h0Rm9yQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OmNyZWF0ZUN1cmxSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpy
ZXN0YXJ0UmVxdWVzdFdpdGhDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlQWZ0ZXJXaWxsU2VuZFJlcXVlc3QpOgorCiAy
MDE4LTAyLTIwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtpT1MgMTEuMyBCZXRhXSBDYW4ndCBjb3B5IGEgVVJMIGZyb20gU2FmYXJpIGFuZCBwYXN0
ZSBpdCBpbnRvIHRoZSBHbWFpbCBhcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuaAppbmRleCA0OWFhNzk5MzVlMi4uZTY0ODljYmJiNTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgK
QEAgLTI5Nyw3ICsyOTcsMTMgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgVVNFKENVUkwpCi0g
ICAgUmVmPEN1cmxSZXF1ZXN0PiBjcmVhdGVDdXJsUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmKTsK
KyAgICBlbnVtIGNsYXNzIFByZWZsaWdodFJlcXVlc3QgeworICAgICAgICBOb1ByZWZsaWdodCwK
KyAgICAgICAgTmVlZFByZWZsaWdodAorICAgIH07CisKKyAgICB2b2lkIHByZWZsaWdodEZvckNh
Y2hlKFJlc291cmNlUmVxdWVzdCYpOworICAgIFJlZjxDdXJsUmVxdWVzdD4gY3JlYXRlQ3VybFJl
cXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiwgUHJlZmxpZ2h0UmVxdWVzdCk7CiAKICAgICBib29sIHNo
b3VsZFJlZGlyZWN0QXNHRVQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjcm9zc09yaWdp
bik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZUludGVybmFsLmgKaW5kZXggMDA4NGI2MmNkYWMuLjBmMzhhNjcyMGJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50
ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFu
ZGxlSW50ZXJuYWwuaApAQCAtNzYsNyArNzYsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9kZWZl
cnNMb2FkaW5nKGRlZmVyc0xvYWRpbmcpCiAgICAgICAgICwgbV9zaG91bGRDb250ZW50U25pZmYo
c2hvdWxkQ29udGVudFNuaWZmKQogICAgICAgICAsIG1fc2hvdWxkQ29udGVudEVuY29kaW5nU25p
ZmYoc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpCi0jaWYgVVNFKENGVVJMQ09OTkVDVElPTikg
fHwgVVNFKENVUkwpCisjaWYgVVNFKENGVVJMQ09OTkVDVElPTikKICAgICAgICAgLCBtX2N1cnJl
bnRSZXF1ZXN0KHJlcXVlc3QpCiAjZW5kaWYKICNpZiBVU0UoU09VUCkKQEAgLTEyOSw3ICsxMjks
NiBAQCBwdWJsaWM6CiAjaWYgVVNFKENVUkwpCiAgICAgc3RkOjp1bmlxdWVfcHRyPEN1cmxSZXNv
dXJjZUhhbmRsZURlbGVnYXRlPiBtX2RlbGVnYXRlOwogICAgIAotICAgIFJlc291cmNlUmVxdWVz
dCBtX2N1cnJlbnRSZXF1ZXN0OwogICAgIGJvb2wgbV9jYW5jZWxsZWQgeyBmYWxzZSB9OwogICAg
IHVuc2lnbmVkIG1fcmVkaXJlY3RDb3VudCB7IDAgfTsKICAgICB1bnNpZ25lZCBtX2F1dGhGYWls
dXJlQ291bnQgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvQ3VybFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DdXJsUmVxdWVzdC5oCmluZGV4IGM0ZmI3MGMyYzg3Li5kNzkzNGEwNzFjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmgK
QEAgLTcxLDYgKzcxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc3VzcGVuZCgpOwogICAgIHZvaWQg
cmVzdW1lKCk7CiAKKyAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdDsgfQogICAgIGJvb2wgaXNTeW5jUmVxdWVzdCgpIGNv
bnN0IHsgcmV0dXJuIG1faXNTeW5jUmVxdWVzdDsgfQogICAgIGJvb2wgaXNDb21wbGV0ZWQoKSBj
b25zdCB7IHJldHVybiAhbV9jdXJsSGFuZGxlOyB9CiAgICAgYm9vbCBpc0NhbmNlbGxlZCgpIGNv
bnN0IHsgcmV0dXJuIG1fY2FuY2VsbGVkOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCmluZGV4IGU3
YTEzMDkzMzM0Li4xYzExNjBmZjY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKQEAgLTgxLDkg
KzgxLDkgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAKLSAgICBkLT5tX2N1cmxSZXF1ZXN0ID0gY3JlYXRlQ3VybFJlcXVlc3QoZC0+
bV9jdXJyZW50UmVxdWVzdCk7CisgICAgZC0+bV9jdXJsUmVxdWVzdCA9IGNyZWF0ZUN1cmxSZXF1
ZXN0KGQtPm1fZmlyc3RSZXF1ZXN0LCBQcmVmbGlnaHRSZXF1ZXN0OjpOZWVkUHJlZmxpZ2h0KTsK
IAotICAgIGlmIChhdXRvIGNyZWRlbnRpYWwgPSBnZXRDcmVkZW50aWFsKGQtPm1fY3VycmVudFJl
cXVlc3QsIGZhbHNlKSkKKyAgICBpZiAoYXV0byBjcmVkZW50aWFsID0gZ2V0Q3JlZGVudGlhbChk
LT5tX2ZpcnN0UmVxdWVzdCwgZmFsc2UpKQogICAgICAgICBkLT5tX2N1cmxSZXF1ZXN0LT5zZXRV
c2VyUGFzcyhjcmVkZW50aWFsLT5maXJzdCwgY3JlZGVudGlhbC0+c2Vjb25kKTsKIAogICAgIGQt
Pm1fY3VybFJlcXVlc3QtPnN0YXJ0KCk7CkBAIC0xMDksMjggKzEwOSwzNiBAQCBib29sIFJlc291
cmNlSGFuZGxlOjpjYW5jZWxsZWRPckNsaWVudGxlc3MoKQogICAgIHJldHVybiAhY2xpZW50KCk7
CiB9CiAKLVJlZjxDdXJsUmVxdWVzdD4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUN1cmxSZXF1ZXN0
KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OnByZWZsaWdo
dEZvckNhY2hlKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogCi0gICAgLy8gQ3VybENhY2hlIDogYXBwZW5kIGFkZGl0aW9uYWwgY2FjaGUg
aW5mb3JtYXRpb24KICAgICBkLT5tX2FkZGVkQ2FjaGVWYWxpZGF0aW9uSGVhZGVycyA9IGZhbHNl
OwogCi0gICAgYm9vbCBoYXNDYWNoZUhlYWRlcnMgPSByZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHMo
KS5jb250YWlucyhIVFRQSGVhZGVyTmFtZTo6SWZNb2RpZmllZFNpbmNlKSB8fCByZXF1ZXN0Lmh0
dHBIZWFkZXJGaWVsZHMoKS5jb250YWlucyhIVFRQSGVhZGVyTmFtZTo6SWZOb25lTWF0Y2gpOwot
ICAgIGlmICghaGFzQ2FjaGVIZWFkZXJzKSB7Ci0gICAgICAgIGF1dG8mIGNhY2hlID0gQ3VybENh
Y2hlTWFuYWdlcjo6c2luZ2xldG9uKCk7Ci0gICAgICAgIFVSTCBjYWNoZVVybCA9IHJlcXVlc3Qu
dXJsKCk7Ci0gICAgICAgIGNhY2hlVXJsLnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcigpOworICAg
IGF1dG8gaGFzQ2FjaGVIZWFkZXJzID0gcmVxdWVzdC5odHRwSGVhZGVyRmllbGRzKCkuY29udGFp
bnMoSFRUUEhlYWRlck5hbWU6OklmTW9kaWZpZWRTaW5jZSkgfHwgcmVxdWVzdC5odHRwSGVhZGVy
RmllbGRzKCkuY29udGFpbnMoSFRUUEhlYWRlck5hbWU6OklmTm9uZU1hdGNoKTsKKyAgICBpZiAo
aGFzQ2FjaGVIZWFkZXJzKQorICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKGNhY2hlLmlz
Q2FjaGVkKGNhY2hlVXJsKSkgewotICAgICAgICAgICAgY2FjaGUuYWRkQ2FjaGVFbnRyeUNsaWVu
dChjYWNoZVVybCwgdGhpcyk7CisgICAgYXV0byYgY2FjaGUgPSBDdXJsQ2FjaGVNYW5hZ2VyOjpz
aW5nbGV0b24oKTsKKyAgICBVUkwgY2FjaGVVcmwgPSByZXF1ZXN0LnVybCgpOworICAgIGNhY2hl
VXJsLnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcigpOwogCi0gICAgICAgICAgICBmb3IgKGNvbnN0
IGF1dG8mIGVudHJ5IDogY2FjaGUucmVxdWVzdEhlYWRlcnMoY2FjaGVVcmwpKQotICAgICAgICAg
ICAgICAgIHJlcXVlc3QuYWRkSFRUUEhlYWRlckZpZWxkKGVudHJ5LmtleSwgZW50cnkudmFsdWUp
OworICAgIGlmIChjYWNoZS5pc0NhY2hlZChjYWNoZVVybCkpIHsKKyAgICAgICAgY2FjaGUuYWRk
Q2FjaGVFbnRyeUNsaWVudChjYWNoZVVybCwgdGhpcyk7CiAKLSAgICAgICAgICAgIGQtPm1fYWRk
ZWRDYWNoZVZhbGlkYXRpb25IZWFkZXJzID0gdHJ1ZTsKLSAgICAgICAgfQorICAgICAgICBmb3Ig
KGNvbnN0IGF1dG8mIGVudHJ5IDogY2FjaGUucmVxdWVzdEhlYWRlcnMoY2FjaGVVcmwpKQorICAg
ICAgICAgICAgcmVxdWVzdC5hZGRIVFRQSGVhZGVyRmllbGQoZW50cnkua2V5LCBlbnRyeS52YWx1
ZSk7CisKKyAgICAgICAgZC0+bV9hZGRlZENhY2hlVmFsaWRhdGlvbkhlYWRlcnMgPSB0cnVlOwog
ICAgIH0KK30KKworUmVmPEN1cmxSZXF1ZXN0PiBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ3VybFJl
cXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBQcmVmbGlnaHRSZXF1ZXN0IHByZWZsaWdo
dCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKHByZWZsaWdodCA9
PSBQcmVmbGlnaHRSZXF1ZXN0OjpOZWVkUHJlZmxpZ2h0KQorICAgICAgICBwcmVmbGlnaHRGb3JD
YWNoZShyZXF1ZXN0KTsKIAogICAgIEN1cmxSZXF1ZXN0OjpTaG91bGRTdXNwZW5kIHNob3VsZFN1
c3BlbmQgPSBkLT5tX2RlZmVyc0xvYWRpbmcgPyBDdXJsUmVxdWVzdDo6U2hvdWxkU3VzcGVuZDo6
WWVzIDogQ3VybFJlcXVlc3Q6OlNob3VsZFN1c3BlbmQ6Ok5vOwogICAgIGF1dG8gY3VybFJlcXVl
c3QgPSBDdXJsUmVxdWVzdDo6Y3JlYXRlKHJlcXVlc3QsICpkZWxlZ2F0ZSgpLCBzaG91bGRTdXNw
ZW5kLCBDdXJsUmVxdWVzdDo6RW5hYmxlTXVsdGlwYXJ0OjpZZXMpOwpAQCAtMzUyLDEyICszNjAs
MTMgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVzdGFydFJlcXVlc3RXaXRoQ3JlZGVudGlhbChj
b25zdCBTdHJpbmcmIHVzZXIsIGNvbnN0IFN0cmkKICAgICBpZiAoIWQtPm1fY3VybFJlcXVlc3Qp
CiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBib29sIGlzU3luY1JlcXVlc3QgPSBkLT5tX2N1
cmxSZXF1ZXN0LT5pc1N5bmNSZXF1ZXN0KCk7CisgICAgYXV0byB3YXNTeW5jUmVxdWVzdCA9IGQt
Pm1fY3VybFJlcXVlc3QtPmlzU3luY1JlcXVlc3QoKTsKKyAgICBhdXRvIHByZXZpb3VzUmVxdWVz
dCA9IGQtPm1fY3VybFJlcXVlc3QtPnJlc291cmNlUmVxdWVzdCgpLmlzb2xhdGVkQ29weSgpOwog
ICAgIGQtPm1fY3VybFJlcXVlc3QtPmNhbmNlbCgpOwogCi0gICAgZC0+bV9jdXJsUmVxdWVzdCA9
IGNyZWF0ZUN1cmxSZXF1ZXN0KGQtPm1fY3VycmVudFJlcXVlc3QpOworICAgIGQtPm1fY3VybFJl
cXVlc3QgPSBjcmVhdGVDdXJsUmVxdWVzdChwcmV2aW91c1JlcXVlc3QsIFByZWZsaWdodFJlcXVl
c3Q6Ok5vUHJlZmxpZ2h0KTsKICAgICBkLT5tX2N1cmxSZXF1ZXN0LT5zZXRVc2VyUGFzcyh1c2Vy
LCBwYXNzd29yZCk7Ci0gICAgZC0+bV9jdXJsUmVxdWVzdC0+c3RhcnQoaXNTeW5jUmVxdWVzdCk7
CisgICAgZC0+bV9jdXJsUmVxdWVzdC0+c3RhcnQod2FzU3luY1JlcXVlc3QpOwogfQogCiB2b2lk
IFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29y
a2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhKQpAQCAtMzgxLDcgKzM5MCw3IEBAIHZv
aWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtTG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3
b3JraW5nQ29udGV4dCogY29udGV4CiAgICAgLy8gYW5kIHdlIHdvdWxkIGFzc2VydCBzbyBmb3Jj
ZSBkZWZlcnNMb2FkaW5nIHRvIGJlIGZhbHNlLgogICAgIGhhbmRsZS0+ZC0+bV9kZWZlcnNMb2Fk
aW5nID0gZmFsc2U7CiAKLSAgICBoYW5kbGUtPmQtPm1fY3VybFJlcXVlc3QgPSBoYW5kbGUtPmNy
ZWF0ZUN1cmxSZXF1ZXN0KGxvY2FsUmVxdWVzdCk7CisgICAgaGFuZGxlLT5kLT5tX2N1cmxSZXF1
ZXN0ID0gaGFuZGxlLT5jcmVhdGVDdXJsUmVxdWVzdChsb2NhbFJlcXVlc3QsIFByZWZsaWdodFJl
cXVlc3Q6Ok5lZWRQcmVmbGlnaHQpOwogICAgIGhhbmRsZS0+ZC0+bV9jdXJsUmVxdWVzdC0+c3Rh
cnQodHJ1ZSk7CiAKICAgICBlcnJvciA9IGNsaWVudC5lcnJvcigpOwpAQCAtNDgwLDE5ICs0ODks
MTcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y29udGludWVBZnRlcldpbGxTZW5kUmVxdWVzdChS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogICAgIGlmIChjYW5jZWxsZWRPckNsaWVudGxlc3Mo
KSB8fCAhZC0+bV9jdXJsUmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZC0+bV9jdXJy
ZW50UmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCk7Ci0KLSAgICBib29sIGlzU3luY1JlcXVlc3Qg
PSBkLT5tX2N1cmxSZXF1ZXN0LT5pc1N5bmNSZXF1ZXN0KCk7CisgICAgYXV0byB3YXNTeW5jUmVx
dWVzdCA9IGQtPm1fY3VybFJlcXVlc3QtPmlzU3luY1JlcXVlc3QoKTsKICAgICBkLT5tX2N1cmxS
ZXF1ZXN0LT5jYW5jZWwoKTsKIAotICAgIGQtPm1fY3VybFJlcXVlc3QgPSBjcmVhdGVDdXJsUmVx
dWVzdChkLT5tX2N1cnJlbnRSZXF1ZXN0KTsKKyAgICBkLT5tX2N1cmxSZXF1ZXN0ID0gY3JlYXRl
Q3VybFJlcXVlc3QocmVxdWVzdCwgUHJlZmxpZ2h0UmVxdWVzdDo6TmVlZFByZWZsaWdodCk7CiAK
LSAgICBpZiAocHJvdG9jb2xIb3N0QW5kUG9ydEFyZUVxdWFsKGQtPm1fY3VycmVudFJlcXVlc3Qu
dXJsKCksIGRlbGVnYXRlKCktPnJlc3BvbnNlKCkudXJsKCkpKSB7Ci0gICAgICAgIGlmIChhdXRv
IGNyZWRlbnRpYWwgPSBnZXRDcmVkZW50aWFsKGQtPm1fY3VycmVudFJlcXVlc3QsIHRydWUpKQor
ICAgIGlmIChwcm90b2NvbEhvc3RBbmRQb3J0QXJlRXF1YWwocmVxdWVzdC51cmwoKSwgZGVsZWdh
dGUoKS0+cmVzcG9uc2UoKS51cmwoKSkpIHsKKyAgICAgICAgaWYgKGF1dG8gY3JlZGVudGlhbCA9
IGdldENyZWRlbnRpYWwocmVxdWVzdCwgdHJ1ZSkpCiAgICAgICAgICAgICBkLT5tX2N1cmxSZXF1
ZXN0LT5zZXRVc2VyUGFzcyhjcmVkZW50aWFsLT5maXJzdCwgY3JlZGVudGlhbC0+c2Vjb25kKTsK
ICAgICB9CiAKLSAgICBkLT5tX2N1cmxSZXF1ZXN0LT5zdGFydChpc1N5bmNSZXF1ZXN0KTsKKyAg
ICBkLT5tX2N1cmxSZXF1ZXN0LT5zdGFydCh3YXNTeW5jUmVxdWVzdCk7CiB9CiAKIHZvaWQgUmVz
b3VyY2VIYW5kbGU6OmhhbmRsZURhdGFVUkwoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335136</attachid>
            <date>2018-03-06 13:44:04 -0800</date>
            <delta_ts>2018-03-06 14:43:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>183010-d6d68ac6465.diff</filename>
            <type>text/plain</type>
            <size>8123</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaApp
bmRleCA0OWFhNzk5MzVlMi4uMzA3YjAzNmQzODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKQEAgLTI5Nyw3ICsyOTcsMTMgQEAgcHJp
dmF0ZToKICNlbmRpZgogCiAjaWYgVVNFKENVUkwpCi0gICAgUmVmPEN1cmxSZXF1ZXN0PiBjcmVh
dGVDdXJsUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBlbnVtIGNsYXNzIFJlcXVlc3RT
dGF0dXMgeworICAgICAgICBOZXdSZXF1ZXN0LAorICAgICAgICBSZXVzZWRSZXF1ZXN0CisgICAg
fTsKKworICAgIHZvaWQgYWRkQ2FjaGVWYWxpZGF0aW9uSGVhZGVycyhSZXNvdXJjZVJlcXVlc3Qm
KTsKKyAgICBSZWY8Q3VybFJlcXVlc3Q+IGNyZWF0ZUN1cmxSZXF1ZXN0KFJlc291cmNlUmVxdWVz
dCYsIFJlcXVlc3RTdGF0dXMgPSBSZXF1ZXN0U3RhdHVzOjpOZXdSZXF1ZXN0KTsKIAogICAgIGJv
b2wgc2hvdWxkUmVkaXJlY3RBc0dFVChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNyb3Nz
T3JpZ2luKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZUludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaAppbmRleCAwMDg0YjYyY2RhYy4uMGYzOGE2NzIwYmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGVJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbC5oCkBAIC03Niw3ICs3Niw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBt
X2RlZmVyc0xvYWRpbmcoZGVmZXJzTG9hZGluZykKICAgICAgICAgLCBtX3Nob3VsZENvbnRlbnRT
bmlmZihzaG91bGRDb250ZW50U25pZmYpCiAgICAgICAgICwgbV9zaG91bGRDb250ZW50RW5jb2Rp
bmdTbmlmZihzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZikKLSNpZiBVU0UoQ0ZVUkxDT05ORUNU
SU9OKSB8fCBVU0UoQ1VSTCkKKyNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQogICAgICAgICAsIG1f
Y3VycmVudFJlcXVlc3QocmVxdWVzdCkKICNlbmRpZgogI2lmIFVTRShTT1VQKQpAQCAtMTI5LDcg
KzEyOSw2IEBAIHB1YmxpYzoKICNpZiBVU0UoQ1VSTCkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3Vy
bFJlc291cmNlSGFuZGxlRGVsZWdhdGU+IG1fZGVsZWdhdGU7CiAgICAgCi0gICAgUmVzb3VyY2VS
ZXF1ZXN0IG1fY3VycmVudFJlcXVlc3Q7CiAgICAgYm9vbCBtX2NhbmNlbGxlZCB7IGZhbHNlIH07
CiAgICAgdW5zaWduZWQgbV9yZWRpcmVjdENvdW50IHsgMCB9OwogICAgIHVuc2lnbmVkIG1fYXV0
aEZhaWx1cmVDb3VudCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL0N1cmxSZXF1ZXN0LmgKaW5kZXggYzRmYjcwYzJjODcuLmQ3OTM0YTA3MWNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVl
c3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVl
c3QuaApAQCAtNzEsNiArNzEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdXNwZW5kKCk7CiAgICAg
dm9pZCByZXN1bWUoKTsKIAorICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1
ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0OyB9CiAgICAgYm9vbCBpc1N5bmNSZXF1ZXN0
KCkgY29uc3QgeyByZXR1cm4gbV9pc1N5bmNSZXF1ZXN0OyB9CiAgICAgYm9vbCBpc0NvbXBsZXRl
ZCgpIGNvbnN0IHsgcmV0dXJuICFtX2N1cmxIYW5kbGU7IH0KICAgICBib29sIGlzQ2FuY2VsbGVk
KCkgY29uc3QgeyByZXR1cm4gbV9jYW5jZWxsZWQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKaW5k
ZXggYmRhM2YzN2ExZWMuLjY4NjIyZWFkZjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcApAQCAt
ODMsOSArODMsOSBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KIAotICAgIGQtPm1fY3VybFJlcXVlc3QgPSBjcmVhdGVDdXJsUmVxdWVz
dChkLT5tX2N1cnJlbnRSZXF1ZXN0KTsKKyAgICBkLT5tX2N1cmxSZXF1ZXN0ID0gY3JlYXRlQ3Vy
bFJlcXVlc3QoZC0+bV9maXJzdFJlcXVlc3QpOwogCi0gICAgaWYgKGF1dG8gY3JlZGVudGlhbCA9
IGdldENyZWRlbnRpYWwoZC0+bV9jdXJyZW50UmVxdWVzdCwgZmFsc2UpKQorICAgIGlmIChhdXRv
IGNyZWRlbnRpYWwgPSBnZXRDcmVkZW50aWFsKGQtPm1fZmlyc3RSZXF1ZXN0LCBmYWxzZSkpCiAg
ICAgICAgIGQtPm1fY3VybFJlcXVlc3QtPnNldFVzZXJQYXNzKGNyZWRlbnRpYWwtPmZpcnN0LCBj
cmVkZW50aWFsLT5zZWNvbmQpOwogCiAgICAgZC0+bV9jdXJsUmVxdWVzdC0+c3RhcnQoKTsKQEAg
LTExMSwzNSArMTExLDQ0IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OmNhbmNlbGxlZE9yQ2xpZW50
bGVzcygpCiAgICAgcmV0dXJuICFjbGllbnQoKTsKIH0KIAotUmVmPEN1cmxSZXF1ZXN0PiBSZXNv
dXJjZUhhbmRsZTo6Y3JlYXRlQ3VybFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQor
dm9pZCBSZXNvdXJjZUhhbmRsZTo6YWRkQ2FjaGVWYWxpZGF0aW9uSGVhZGVycyhSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIC8v
IEN1cmxDYWNoZSA6IGFwcGVuZCBhZGRpdGlvbmFsIGNhY2hlIGluZm9ybWF0aW9uCiAgICAgZC0+
bV9hZGRlZENhY2hlVmFsaWRhdGlvbkhlYWRlcnMgPSBmYWxzZTsKIAotICAgIGJvb2wgaGFzQ2Fj
aGVIZWFkZXJzID0gcmVxdWVzdC5odHRwSGVhZGVyRmllbGRzKCkuY29udGFpbnMoSFRUUEhlYWRl
ck5hbWU6OklmTW9kaWZpZWRTaW5jZSkgfHwgcmVxdWVzdC5odHRwSGVhZGVyRmllbGRzKCkuY29u
dGFpbnMoSFRUUEhlYWRlck5hbWU6OklmTm9uZU1hdGNoKTsKLSAgICBpZiAoIWhhc0NhY2hlSGVh
ZGVycykgewotICAgICAgICBhdXRvJiBjYWNoZSA9IEN1cmxDYWNoZU1hbmFnZXI6OnNpbmdsZXRv
bigpOwotICAgICAgICBVUkwgY2FjaGVVcmwgPSByZXF1ZXN0LnVybCgpOwotICAgICAgICBjYWNo
ZVVybC5yZW1vdmVGcmFnbWVudElkZW50aWZpZXIoKTsKKyAgICBhdXRvIGhhc0NhY2hlSGVhZGVy
cyA9IHJlcXVlc3QuaHR0cEhlYWRlckZpZWxkcygpLmNvbnRhaW5zKEhUVFBIZWFkZXJOYW1lOjpJ
Zk1vZGlmaWVkU2luY2UpIHx8IHJlcXVlc3QuaHR0cEhlYWRlckZpZWxkcygpLmNvbnRhaW5zKEhU
VFBIZWFkZXJOYW1lOjpJZk5vbmVNYXRjaCk7CisgICAgaWYgKGhhc0NhY2hlSGVhZGVycykKKyAg
ICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmIChjYWNoZS5pc0NhY2hlZChjYWNoZVVybCkpIHsK
LSAgICAgICAgICAgIGNhY2hlLmFkZENhY2hlRW50cnlDbGllbnQoY2FjaGVVcmwsIHRoaXMpOwor
ICAgIGF1dG8mIGNhY2hlID0gQ3VybENhY2hlTWFuYWdlcjo6c2luZ2xldG9uKCk7CisgICAgVVJM
IGNhY2hlVXJsID0gcmVxdWVzdC51cmwoKTsKKyAgICBjYWNoZVVybC5yZW1vdmVGcmFnbWVudElk
ZW50aWZpZXIoKTsKIAotICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBlbnRyeSA6IGNhY2hl
LnJlcXVlc3RIZWFkZXJzKGNhY2hlVXJsKSkKLSAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZEhU
VFBIZWFkZXJGaWVsZChlbnRyeS5rZXksIGVudHJ5LnZhbHVlKTsKKyAgICBpZiAoY2FjaGUuaXND
YWNoZWQoY2FjaGVVcmwpKSB7CisgICAgICAgIGNhY2hlLmFkZENhY2hlRW50cnlDbGllbnQoY2Fj
aGVVcmwsIHRoaXMpOwogCi0gICAgICAgICAgICBkLT5tX2FkZGVkQ2FjaGVWYWxpZGF0aW9uSGVh
ZGVycyA9IHRydWU7Ci0gICAgICAgIH0KKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBlbnRyeSA6
IGNhY2hlLnJlcXVlc3RIZWFkZXJzKGNhY2hlVXJsKSkKKyAgICAgICAgICAgIHJlcXVlc3QuYWRk
SFRUUEhlYWRlckZpZWxkKGVudHJ5LmtleSwgZW50cnkudmFsdWUpOworCisgICAgICAgIGQtPm1f
YWRkZWRDYWNoZVZhbGlkYXRpb25IZWFkZXJzID0gdHJ1ZTsKICAgICB9Cit9CisKK1JlZjxDdXJs
UmVxdWVzdD4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUN1cmxSZXF1ZXN0KFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgUmVxdWVzdFN0YXR1cyBzdGF0dXMpCit7CisgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKIAotICAgIGF1dG8mIHN0b3JhZ2VTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKTsKLSAgICBhdXRvJiBjb29raWVKYXIgPSBzdG9y
YWdlU2Vzc2lvbi5jb29raWVTdG9yYWdlKCk7Ci0gICAgYXV0byBpbmNsdWRlU2VjdXJlQ29va2ll
cyA9IHJlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiaHR0cHMiKSA/IEluY2x1ZGVTZWN1cmVDb29r
aWVzOjpZZXMgOiBJbmNsdWRlU2VjdXJlQ29va2llczo6Tm87Ci0gICAgU3RyaW5nIGNvb2tpZUhl
YWRlckZpZWxkID0gY29va2llSmFyLmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHN0b3Jh
Z2VTZXNzaW9uLCByZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCksIHJlcXVlc3QudXJsKCks
IHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0LCBpbmNsdWRlU2VjdXJlQ29va2llcykuZmlyc3Q7
Ci0gICAgaWYgKCFjb29raWVIZWFkZXJGaWVsZC5pc0VtcHR5KCkpCi0gICAgICAgIHJlcXVlc3Qu
YWRkSFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDb29raWUsIGNvb2tpZUhlYWRlckZp
ZWxkKTsKKyAgICBpZiAoc3RhdHVzID09IFJlcXVlc3RTdGF0dXM6Ok5ld1JlcXVlc3QpIHsKKyAg
ICAgICAgYWRkQ2FjaGVWYWxpZGF0aW9uSGVhZGVycyhyZXF1ZXN0KTsKKworICAgICAgICBhdXRv
JiBzdG9yYWdlU2Vzc2lvbiA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VT
ZXNzaW9uKCk7CisgICAgICAgIGF1dG8mIGNvb2tpZUphciA9IHN0b3JhZ2VTZXNzaW9uLmNvb2tp
ZVN0b3JhZ2UoKTsKKyAgICAgICAgYXV0byBpbmNsdWRlU2VjdXJlQ29va2llcyA9IHJlcXVlc3Qu
dXJsKCkucHJvdG9jb2xJcygiaHR0cHMiKSA/IEluY2x1ZGVTZWN1cmVDb29raWVzOjpZZXMgOiBJ
bmNsdWRlU2VjdXJlQ29va2llczo6Tm87CisgICAgICAgIFN0cmluZyBjb29raWVIZWFkZXJGaWVs
ZCA9IGNvb2tpZUphci5jb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShzdG9yYWdlU2Vzc2lv
biwgcmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygpLCByZXF1ZXN0LnVybCgpLCBzdGQ6Om51
bGxvcHQsIHN0ZDo6bnVsbG9wdCwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpLmZpcnN0OworICAgICAg
ICBpZiAoIWNvb2tpZUhlYWRlckZpZWxkLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJlcXVlc3Qu
YWRkSFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDb29raWUsIGNvb2tpZUhlYWRlckZp
ZWxkKTsKKyAgICB9CiAKICAgICBDdXJsUmVxdWVzdDo6U2hvdWxkU3VzcGVuZCBzaG91bGRTdXNw
ZW5kID0gZC0+bV9kZWZlcnNMb2FkaW5nID8gQ3VybFJlcXVlc3Q6OlNob3VsZFN1c3BlbmQ6Olll
cyA6IEN1cmxSZXF1ZXN0OjpTaG91bGRTdXNwZW5kOjpObzsKICAgICBhdXRvIGN1cmxSZXF1ZXN0
ID0gQ3VybFJlcXVlc3Q6OmNyZWF0ZShyZXF1ZXN0LCAqZGVsZWdhdGUoKSwgc2hvdWxkU3VzcGVu
ZCwgQ3VybFJlcXVlc3Q6OkVuYWJsZU11bHRpcGFydDo6WWVzKTsKQEAgLTM2MSwxMiArMzcwLDEz
IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlc3RhcnRSZXF1ZXN0V2l0aENyZWRlbnRpYWwoY29u
c3QgU3RyaW5nJiB1c2VyLCBjb25zdCBTdHJpCiAgICAgaWYgKCFkLT5tX2N1cmxSZXF1ZXN0KQog
ICAgICAgICByZXR1cm47CiAgICAgCi0gICAgYm9vbCBpc1N5bmNSZXF1ZXN0ID0gZC0+bV9jdXJs
UmVxdWVzdC0+aXNTeW5jUmVxdWVzdCgpOworICAgIGF1dG8gd2FzU3luY1JlcXVlc3QgPSBkLT5t
X2N1cmxSZXF1ZXN0LT5pc1N5bmNSZXF1ZXN0KCk7CisgICAgYXV0byBwcmV2aW91c1JlcXVlc3Qg
PSBkLT5tX2N1cmxSZXF1ZXN0LT5yZXNvdXJjZVJlcXVlc3QoKTsKICAgICBkLT5tX2N1cmxSZXF1
ZXN0LT5jYW5jZWwoKTsKIAotICAgIGQtPm1fY3VybFJlcXVlc3QgPSBjcmVhdGVDdXJsUmVxdWVz
dChkLT5tX2N1cnJlbnRSZXF1ZXN0KTsKKyAgICBkLT5tX2N1cmxSZXF1ZXN0ID0gY3JlYXRlQ3Vy
bFJlcXVlc3QocHJldmlvdXNSZXF1ZXN0LCBSZXF1ZXN0U3RhdHVzOjpSZXVzZWRSZXF1ZXN0KTsK
ICAgICBkLT5tX2N1cmxSZXF1ZXN0LT5zZXRVc2VyUGFzcyh1c2VyLCBwYXNzd29yZCk7Ci0gICAg
ZC0+bV9jdXJsUmVxdWVzdC0+c3RhcnQoaXNTeW5jUmVxdWVzdCk7CisgICAgZC0+bV9jdXJsUmVx
dWVzdC0+c3RhcnQod2FzU3luY1JlcXVlc3QpOwogfQogCiB2b2lkIFJlc291cmNlSGFuZGxlOjpw
bGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3ksIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVj
dG9yPGNoYXI+JiBkYXRhKQpAQCAtNDg5LDE5ICs0OTksMTcgQEAgdm9pZCBSZXNvdXJjZUhhbmRs
ZTo6Y29udGludWVBZnRlcldpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
KQogICAgIGlmIChjYW5jZWxsZWRPckNsaWVudGxlc3MoKSB8fCAhZC0+bV9jdXJsUmVxdWVzdCkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgZC0+bV9jdXJyZW50UmVxdWVzdCA9IFdURk1vdmUocmVx
dWVzdCk7Ci0KLSAgICBib29sIGlzU3luY1JlcXVlc3QgPSBkLT5tX2N1cmxSZXF1ZXN0LT5pc1N5
bmNSZXF1ZXN0KCk7CisgICAgYXV0byB3YXNTeW5jUmVxdWVzdCA9IGQtPm1fY3VybFJlcXVlc3Qt
PmlzU3luY1JlcXVlc3QoKTsKICAgICBkLT5tX2N1cmxSZXF1ZXN0LT5jYW5jZWwoKTsKIAotICAg
IGQtPm1fY3VybFJlcXVlc3QgPSBjcmVhdGVDdXJsUmVxdWVzdChkLT5tX2N1cnJlbnRSZXF1ZXN0
KTsKKyAgICBkLT5tX2N1cmxSZXF1ZXN0ID0gY3JlYXRlQ3VybFJlcXVlc3QocmVxdWVzdCk7CiAK
LSAgICBpZiAocHJvdG9jb2xIb3N0QW5kUG9ydEFyZUVxdWFsKGQtPm1fY3VycmVudFJlcXVlc3Qu
dXJsKCksIGRlbGVnYXRlKCktPnJlc3BvbnNlKCkudXJsKCkpKSB7Ci0gICAgICAgIGlmIChhdXRv
IGNyZWRlbnRpYWwgPSBnZXRDcmVkZW50aWFsKGQtPm1fY3VycmVudFJlcXVlc3QsIHRydWUpKQor
ICAgIGlmIChwcm90b2NvbEhvc3RBbmRQb3J0QXJlRXF1YWwocmVxdWVzdC51cmwoKSwgZGVsZWdh
dGUoKS0+cmVzcG9uc2UoKS51cmwoKSkpIHsKKyAgICAgICAgaWYgKGF1dG8gY3JlZGVudGlhbCA9
IGdldENyZWRlbnRpYWwocmVxdWVzdCwgdHJ1ZSkpCiAgICAgICAgICAgICBkLT5tX2N1cmxSZXF1
ZXN0LT5zZXRVc2VyUGFzcyhjcmVkZW50aWFsLT5maXJzdCwgY3JlZGVudGlhbC0+c2Vjb25kKTsK
ICAgICB9CiAKLSAgICBkLT5tX2N1cmxSZXF1ZXN0LT5zdGFydChpc1N5bmNSZXF1ZXN0KTsKKyAg
ICBkLT5tX2N1cmxSZXF1ZXN0LT5zdGFydCh3YXNTeW5jUmVxdWVzdCk7CiB9CiAKIHZvaWQgUmVz
b3VyY2VIYW5kbGU6OmhhbmRsZURhdGFVUkwoKQo=
</data>
<flag name="review"
          id="353808"
          type_id="1"
          status="+"
          setter="youennf"
    />
    <flag name="commit-queue"
          id="353809"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335142</attachid>
            <date>2018-03-06 14:43:52 -0800</date>
            <delta_ts>2018-03-06 16:32:53 -0800</delta_ts>
            <desc>changelog</desc>
            <filename>183010-d6d68ac6465.diff</filename>
            <type>text/plain</type>
            <size>9288</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlMzZiYzEzM2JmMC4uYmIzMmJmMWQ3YWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxOC0wMy0wNiAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29u
eS5jb20+CisKKyAgICAgICAgW0N1cmxdIFJlbW92ZSB1bm5lY2Vzc2FyeSBjb3BpZWQgUmVzb3Vy
Y2VSZXF1ZXN0IG1lbWJlciB2YXJpYWJsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4MzAxMAorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBG
YWJsZXQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmg6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFsOjpSZXNvdXJjZUhhbmRsZUludGVy
bmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkN1cmxSZXF1ZXN0OjpyZXNvdXJjZVJlcXVlc3QgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlOjphZGRDYWNoZVZhbGlkYXRpb25IZWFkZXJzKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVDdXJsUmVxdWVzdCk6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZTo6cmVzdGFydFJlcXVlc3RXaXRoQ3JlZGVudGlhbCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y29udGludWVBZnRlcldpbGxTZW5kUmVxdWVz
dCk6CisKIDIwMTgtMDMtMDYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNv
bT4KIAogICAgICAgICBDaGFuZ2UgdGhlIHR5cGUgb2YgU1ZHVG9PVEZGb250Q29udmVydGVyOjpt
X3dlaWdodCB0byBiZSBub3QgYSBjaGFyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKaW5kZXggNDlhYTc5OTM1ZTIuLjMwN2IwMzZkMzg2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5o
CkBAIC0yOTcsNyArMjk3LDEzIEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIFVTRShDVVJMKQot
ICAgIFJlZjxDdXJsUmVxdWVzdD4gY3JlYXRlQ3VybFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0Jik7
CisgICAgZW51bSBjbGFzcyBSZXF1ZXN0U3RhdHVzIHsKKyAgICAgICAgTmV3UmVxdWVzdCwKKyAg
ICAgICAgUmV1c2VkUmVxdWVzdAorICAgIH07CisKKyAgICB2b2lkIGFkZENhY2hlVmFsaWRhdGlv
bkhlYWRlcnMoUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgUmVmPEN1cmxSZXF1ZXN0PiBjcmVhdGVD
dXJsUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmLCBSZXF1ZXN0U3RhdHVzID0gUmVxdWVzdFN0YXR1
czo6TmV3UmVxdWVzdCk7CiAKICAgICBib29sIHNob3VsZFJlZGlyZWN0QXNHRVQoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiwgYm9vbCBjcm9zc09yaWdpbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKaW5kZXgg
MDA4NGI2MmNkYWMuLjBmMzhhNjcyMGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaApAQCAtNzYsNyArNzYs
NyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9kZWZlcnNMb2FkaW5nKGRlZmVyc0xvYWRpbmcpCiAg
ICAgICAgICwgbV9zaG91bGRDb250ZW50U25pZmYoc2hvdWxkQ29udGVudFNuaWZmKQogICAgICAg
ICAsIG1fc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYoc2hvdWxkQ29udGVudEVuY29kaW5nU25p
ZmYpCi0jaWYgVVNFKENGVVJMQ09OTkVDVElPTikgfHwgVVNFKENVUkwpCisjaWYgVVNFKENGVVJM
Q09OTkVDVElPTikKICAgICAgICAgLCBtX2N1cnJlbnRSZXF1ZXN0KHJlcXVlc3QpCiAjZW5kaWYK
ICNpZiBVU0UoU09VUCkKQEAgLTEyOSw3ICsxMjksNiBAQCBwdWJsaWM6CiAjaWYgVVNFKENVUkwp
CiAgICAgc3RkOjp1bmlxdWVfcHRyPEN1cmxSZXNvdXJjZUhhbmRsZURlbGVnYXRlPiBtX2RlbGVn
YXRlOwogICAgIAotICAgIFJlc291cmNlUmVxdWVzdCBtX2N1cnJlbnRSZXF1ZXN0OwogICAgIGJv
b2wgbV9jYW5jZWxsZWQgeyBmYWxzZSB9OwogICAgIHVuc2lnbmVkIG1fcmVkaXJlY3RDb3VudCB7
IDAgfTsKICAgICB1bnNpZ25lZCBtX2F1dGhGYWlsdXJlQ291bnQgeyAwIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5oCmluZGV4IGM0
ZmI3MGMyYzg3Li5kNzkzNGEwNzFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmgKQEAgLTcxLDYgKzcxLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc3VzcGVuZCgpOwogICAgIHZvaWQgcmVzdW1lKCk7CiAKKyAgICBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdDsg
fQogICAgIGJvb2wgaXNTeW5jUmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTeW5jUmVxdWVz
dDsgfQogICAgIGJvb2wgaXNDb21wbGV0ZWQoKSBjb25zdCB7IHJldHVybiAhbV9jdXJsSGFuZGxl
OyB9CiAgICAgYm9vbCBpc0NhbmNlbGxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FuY2VsbGVkOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3Vy
Y2VIYW5kbGVDdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9S
ZXNvdXJjZUhhbmRsZUN1cmwuY3BwCmluZGV4IGJkYTNmMzdhMWVjLi42ODYyMmVhZGYyZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFu
ZGxlQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jl
c291cmNlSGFuZGxlQ3VybC5jcHAKQEAgLTgzLDkgKzgzLDkgQEAgYm9vbCBSZXNvdXJjZUhhbmRs
ZTo6c3RhcnQoKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBkLT5tX2N1cmxS
ZXF1ZXN0ID0gY3JlYXRlQ3VybFJlcXVlc3QoZC0+bV9jdXJyZW50UmVxdWVzdCk7CisgICAgZC0+
bV9jdXJsUmVxdWVzdCA9IGNyZWF0ZUN1cmxSZXF1ZXN0KGQtPm1fZmlyc3RSZXF1ZXN0KTsKIAot
ICAgIGlmIChhdXRvIGNyZWRlbnRpYWwgPSBnZXRDcmVkZW50aWFsKGQtPm1fY3VycmVudFJlcXVl
c3QsIGZhbHNlKSkKKyAgICBpZiAoYXV0byBjcmVkZW50aWFsID0gZ2V0Q3JlZGVudGlhbChkLT5t
X2ZpcnN0UmVxdWVzdCwgZmFsc2UpKQogICAgICAgICBkLT5tX2N1cmxSZXF1ZXN0LT5zZXRVc2Vy
UGFzcyhjcmVkZW50aWFsLT5maXJzdCwgY3JlZGVudGlhbC0+c2Vjb25kKTsKIAogICAgIGQtPm1f
Y3VybFJlcXVlc3QtPnN0YXJ0KCk7CkBAIC0xMTEsMzUgKzExMSw0NCBAQCBib29sIFJlc291cmNl
SGFuZGxlOjpjYW5jZWxsZWRPckNsaWVudGxlc3MoKQogICAgIHJldHVybiAhY2xpZW50KCk7CiB9
CiAKLVJlZjxDdXJsUmVxdWVzdD4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUN1cmxSZXF1ZXN0KFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmFkZENhY2hlVmFs
aWRhdGlvbkhlYWRlcnMoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAKLSAgICAvLyBDdXJsQ2FjaGUgOiBhcHBlbmQgYWRkaXRpb25hbCBj
YWNoZSBpbmZvcm1hdGlvbgogICAgIGQtPm1fYWRkZWRDYWNoZVZhbGlkYXRpb25IZWFkZXJzID0g
ZmFsc2U7CiAKLSAgICBib29sIGhhc0NhY2hlSGVhZGVycyA9IHJlcXVlc3QuaHR0cEhlYWRlckZp
ZWxkcygpLmNvbnRhaW5zKEhUVFBIZWFkZXJOYW1lOjpJZk1vZGlmaWVkU2luY2UpIHx8IHJlcXVl
c3QuaHR0cEhlYWRlckZpZWxkcygpLmNvbnRhaW5zKEhUVFBIZWFkZXJOYW1lOjpJZk5vbmVNYXRj
aCk7Ci0gICAgaWYgKCFoYXNDYWNoZUhlYWRlcnMpIHsKLSAgICAgICAgYXV0byYgY2FjaGUgPSBD
dXJsQ2FjaGVNYW5hZ2VyOjpzaW5nbGV0b24oKTsKLSAgICAgICAgVVJMIGNhY2hlVXJsID0gcmVx
dWVzdC51cmwoKTsKLSAgICAgICAgY2FjaGVVcmwucmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVyKCk7
CisgICAgYXV0byBoYXNDYWNoZUhlYWRlcnMgPSByZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHMoKS5j
b250YWlucyhIVFRQSGVhZGVyTmFtZTo6SWZNb2RpZmllZFNpbmNlKSB8fCByZXF1ZXN0Lmh0dHBI
ZWFkZXJGaWVsZHMoKS5jb250YWlucyhIVFRQSGVhZGVyTmFtZTo6SWZOb25lTWF0Y2gpOworICAg
IGlmIChoYXNDYWNoZUhlYWRlcnMpCisgICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAoY2Fj
aGUuaXNDYWNoZWQoY2FjaGVVcmwpKSB7Ci0gICAgICAgICAgICBjYWNoZS5hZGRDYWNoZUVudHJ5
Q2xpZW50KGNhY2hlVXJsLCB0aGlzKTsKKyAgICBhdXRvJiBjYWNoZSA9IEN1cmxDYWNoZU1hbmFn
ZXI6OnNpbmdsZXRvbigpOworICAgIFVSTCBjYWNoZVVybCA9IHJlcXVlc3QudXJsKCk7CisgICAg
Y2FjaGVVcmwucmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVyKCk7CiAKLSAgICAgICAgICAgIGZvciAo
Y29uc3QgYXV0byYgZW50cnkgOiBjYWNoZS5yZXF1ZXN0SGVhZGVycyhjYWNoZVVybCkpCi0gICAg
ICAgICAgICAgICAgcmVxdWVzdC5hZGRIVFRQSGVhZGVyRmllbGQoZW50cnkua2V5LCBlbnRyeS52
YWx1ZSk7CisgICAgaWYgKGNhY2hlLmlzQ2FjaGVkKGNhY2hlVXJsKSkgeworICAgICAgICBjYWNo
ZS5hZGRDYWNoZUVudHJ5Q2xpZW50KGNhY2hlVXJsLCB0aGlzKTsKIAotICAgICAgICAgICAgZC0+
bV9hZGRlZENhY2hlVmFsaWRhdGlvbkhlYWRlcnMgPSB0cnVlOwotICAgICAgICB9CisgICAgICAg
IGZvciAoY29uc3QgYXV0byYgZW50cnkgOiBjYWNoZS5yZXF1ZXN0SGVhZGVycyhjYWNoZVVybCkp
CisgICAgICAgICAgICByZXF1ZXN0LmFkZEhUVFBIZWFkZXJGaWVsZChlbnRyeS5rZXksIGVudHJ5
LnZhbHVlKTsKKworICAgICAgICBkLT5tX2FkZGVkQ2FjaGVWYWxpZGF0aW9uSGVhZGVycyA9IHRy
dWU7CiAgICAgfQorfQorCitSZWY8Q3VybFJlcXVlc3Q+IFJlc291cmNlSGFuZGxlOjpjcmVhdGVD
dXJsUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlcXVlc3RTdGF0dXMgc3RhdHVz
KQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBhdXRvJiBzdG9yYWdlU2Vz
c2lvbiA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7Ci0g
ICAgYXV0byYgY29va2llSmFyID0gc3RvcmFnZVNlc3Npb24uY29va2llU3RvcmFnZSgpOwotICAg
IGF1dG8gaW5jbHVkZVNlY3VyZUNvb2tpZXMgPSByZXF1ZXN0LnVybCgpLnByb3RvY29sSXMoImh0
dHBzIikgPyBJbmNsdWRlU2VjdXJlQ29va2llczo6WWVzIDogSW5jbHVkZVNlY3VyZUNvb2tpZXM6
Ok5vOwotICAgIFN0cmluZyBjb29raWVIZWFkZXJGaWVsZCA9IGNvb2tpZUphci5jb29raWVSZXF1
ZXN0SGVhZGVyRmllbGRWYWx1ZShzdG9yYWdlU2Vzc2lvbiwgcmVxdWVzdC5maXJzdFBhcnR5Rm9y
Q29va2llcygpLCByZXF1ZXN0LnVybCgpLCBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCwgaW5j
bHVkZVNlY3VyZUNvb2tpZXMpLmZpcnN0OwotICAgIGlmICghY29va2llSGVhZGVyRmllbGQuaXNF
bXB0eSgpKQotICAgICAgICByZXF1ZXN0LmFkZEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFt
ZTo6Q29va2llLCBjb29raWVIZWFkZXJGaWVsZCk7CisgICAgaWYgKHN0YXR1cyA9PSBSZXF1ZXN0
U3RhdHVzOjpOZXdSZXF1ZXN0KSB7CisgICAgICAgIGFkZENhY2hlVmFsaWRhdGlvbkhlYWRlcnMo
cmVxdWVzdCk7CisKKyAgICAgICAgYXV0byYgc3RvcmFnZVNlc3Npb24gPSBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOworICAgICAgICBhdXRvJiBjb29raWVK
YXIgPSBzdG9yYWdlU2Vzc2lvbi5jb29raWVTdG9yYWdlKCk7CisgICAgICAgIGF1dG8gaW5jbHVk
ZVNlY3VyZUNvb2tpZXMgPSByZXF1ZXN0LnVybCgpLnByb3RvY29sSXMoImh0dHBzIikgPyBJbmNs
dWRlU2VjdXJlQ29va2llczo6WWVzIDogSW5jbHVkZVNlY3VyZUNvb2tpZXM6Ok5vOworICAgICAg
ICBTdHJpbmcgY29va2llSGVhZGVyRmllbGQgPSBjb29raWVKYXIuY29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUoc3RvcmFnZVNlc3Npb24sIHJlcXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMo
KSwgcmVxdWVzdC51cmwoKSwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQsIGluY2x1ZGVTZWN1
cmVDb29raWVzKS5maXJzdDsKKyAgICAgICAgaWYgKCFjb29raWVIZWFkZXJGaWVsZC5pc0VtcHR5
KCkpCisgICAgICAgICAgICByZXF1ZXN0LmFkZEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFt
ZTo6Q29va2llLCBjb29raWVIZWFkZXJGaWVsZCk7CisgICAgfQogCiAgICAgQ3VybFJlcXVlc3Q6
OlNob3VsZFN1c3BlbmQgc2hvdWxkU3VzcGVuZCA9IGQtPm1fZGVmZXJzTG9hZGluZyA/IEN1cmxS
ZXF1ZXN0OjpTaG91bGRTdXNwZW5kOjpZZXMgOiBDdXJsUmVxdWVzdDo6U2hvdWxkU3VzcGVuZDo6
Tm87CiAgICAgYXV0byBjdXJsUmVxdWVzdCA9IEN1cmxSZXF1ZXN0OjpjcmVhdGUocmVxdWVzdCwg
KmRlbGVnYXRlKCksIHNob3VsZFN1c3BlbmQsIEN1cmxSZXF1ZXN0OjpFbmFibGVNdWx0aXBhcnQ6
Olllcyk7CkBAIC0zNjEsMTIgKzM3MCwxMyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpyZXN0YXJ0
UmVxdWVzdFdpdGhDcmVkZW50aWFsKGNvbnN0IFN0cmluZyYgdXNlciwgY29uc3QgU3RyaQogICAg
IGlmICghZC0+bV9jdXJsUmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIGJvb2wg
aXNTeW5jUmVxdWVzdCA9IGQtPm1fY3VybFJlcXVlc3QtPmlzU3luY1JlcXVlc3QoKTsKKyAgICBh
dXRvIHdhc1N5bmNSZXF1ZXN0ID0gZC0+bV9jdXJsUmVxdWVzdC0+aXNTeW5jUmVxdWVzdCgpOwor
ICAgIGF1dG8gcHJldmlvdXNSZXF1ZXN0ID0gZC0+bV9jdXJsUmVxdWVzdC0+cmVzb3VyY2VSZXF1
ZXN0KCk7CiAgICAgZC0+bV9jdXJsUmVxdWVzdC0+Y2FuY2VsKCk7CiAKLSAgICBkLT5tX2N1cmxS
ZXF1ZXN0ID0gY3JlYXRlQ3VybFJlcXVlc3QoZC0+bV9jdXJyZW50UmVxdWVzdCk7CisgICAgZC0+
bV9jdXJsUmVxdWVzdCA9IGNyZWF0ZUN1cmxSZXF1ZXN0KHByZXZpb3VzUmVxdWVzdCwgUmVxdWVz
dFN0YXR1czo6UmV1c2VkUmVxdWVzdCk7CiAgICAgZC0+bV9jdXJsUmVxdWVzdC0+c2V0VXNlclBh
c3ModXNlciwgcGFzc3dvcmQpOwotICAgIGQtPm1fY3VybFJlcXVlc3QtPnN0YXJ0KGlzU3luY1Jl
cXVlc3QpOworICAgIGQtPm1fY3VybFJlcXVlc3QtPnN0YXJ0KHdhc1N5bmNSZXF1ZXN0KTsKIH0K
IAogdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1Mb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkKQEAgLTQ4OSwxOSArNDk5
LDE3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlQWZ0ZXJXaWxsU2VuZFJlcXVlc3Qo
UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKICAgICBpZiAoY2FuY2VsbGVkT3JDbGllbnRsZXNz
KCkgfHwgIWQtPm1fY3VybFJlcXVlc3QpCiAgICAgICAgIHJldHVybjsKIAotICAgIGQtPm1fY3Vy
cmVudFJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpOwotCi0gICAgYm9vbCBpc1N5bmNSZXF1ZXN0
ID0gZC0+bV9jdXJsUmVxdWVzdC0+aXNTeW5jUmVxdWVzdCgpOworICAgIGF1dG8gd2FzU3luY1Jl
cXVlc3QgPSBkLT5tX2N1cmxSZXF1ZXN0LT5pc1N5bmNSZXF1ZXN0KCk7CiAgICAgZC0+bV9jdXJs
UmVxdWVzdC0+Y2FuY2VsKCk7CiAKLSAgICBkLT5tX2N1cmxSZXF1ZXN0ID0gY3JlYXRlQ3VybFJl
cXVlc3QoZC0+bV9jdXJyZW50UmVxdWVzdCk7CisgICAgZC0+bV9jdXJsUmVxdWVzdCA9IGNyZWF0
ZUN1cmxSZXF1ZXN0KHJlcXVlc3QpOwogCi0gICAgaWYgKHByb3RvY29sSG9zdEFuZFBvcnRBcmVF
cXVhbChkLT5tX2N1cnJlbnRSZXF1ZXN0LnVybCgpLCBkZWxlZ2F0ZSgpLT5yZXNwb25zZSgpLnVy
bCgpKSkgewotICAgICAgICBpZiAoYXV0byBjcmVkZW50aWFsID0gZ2V0Q3JlZGVudGlhbChkLT5t
X2N1cnJlbnRSZXF1ZXN0LCB0cnVlKSkKKyAgICBpZiAocHJvdG9jb2xIb3N0QW5kUG9ydEFyZUVx
dWFsKHJlcXVlc3QudXJsKCksIGRlbGVnYXRlKCktPnJlc3BvbnNlKCkudXJsKCkpKSB7CisgICAg
ICAgIGlmIChhdXRvIGNyZWRlbnRpYWwgPSBnZXRDcmVkZW50aWFsKHJlcXVlc3QsIHRydWUpKQog
ICAgICAgICAgICAgZC0+bV9jdXJsUmVxdWVzdC0+c2V0VXNlclBhc3MoY3JlZGVudGlhbC0+Zmly
c3QsIGNyZWRlbnRpYWwtPnNlY29uZCk7CiAgICAgfQogCi0gICAgZC0+bV9jdXJsUmVxdWVzdC0+
c3RhcnQoaXNTeW5jUmVxdWVzdCk7CisgICAgZC0+bV9jdXJsUmVxdWVzdC0+c3RhcnQod2FzU3lu
Y1JlcXVlc3QpOwogfQogCiB2b2lkIFJlc291cmNlSGFuZGxlOjpoYW5kbGVEYXRhVVJMKCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>