<?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>156090</bug_id>
          
          <creation_ts>2016-03-31 16:30:11 -0700</creation_ts>
          <short_desc>Web Automation: add support for getting, deleting, and adding cookies</short_desc>
          <delta_ts>2016-07-22 21:09:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          <dependson>156091</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>bburg</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1179666</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-03-31 16:30:11 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1179673</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-03-31 16:36:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/25477678&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1179675</commentid>
    <comment_count>2</comment_count>
      <attachid>275355</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-03-31 16:37:49 -0700</bug_when>
    <thetext>Created attachment 275355
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181070</commentid>
    <comment_count>3</comment_count>
      <attachid>275721</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-04-05 17:00:31 -0700</bug_when>
    <thetext>Created attachment 275721
Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181079</commentid>
    <comment_count>4</comment_count>
      <attachid>275721</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2016-04-05 17:12:38 -0700</bug_when>
    <thetext>Comment on attachment 275721
Proposed Fix

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

&gt; Source/WebKit2/UIProcess/Automation/WebAutomationSession.cpp:753
&gt; +    // FIXME: if the incoming cookie&apos;s domain is the string &apos;(inherit)&apos;,
&gt; +    // then it should be inherited from the main frame&apos;s domain.

That seems like a detail that should be handled separate from the driver spec. Like should empty string imply inherit?

&gt; Source/WebKit2/WebProcess/Automation/WebAutomationSessionProxy.cpp:508
&gt; +    WebCore::Document* document = frame-&gt;coreFrame()-&gt;document();
&gt; +    // This returns the same list of cookies as when evaluating `document.cookies` in JavaScript.
&gt; +    Vector&lt;WebCore::Cookie&gt; foundCookies;

I don&apos;t like comments between lines like this. I would add a newline above the comment.

&gt; Source/WebKit2/WebProcess/Automation/WebAutomationSessionProxy.messages.in:39
&gt; +    GetCookiesForFrame(uint64_t frameID, uint64_t callbackID)
&gt; +    # Deletes any cookies matching cookieName if they are visible to the frame.
&gt; +    DeleteCookie(uint64_t frameID, String cookieName, uint64_t callbackID)

Newline above comment, or drop comment. No other commands have comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181089</commentid>
    <comment_count>5</comment_count>
      <attachid>275721</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-04-05 17:29:40 -0700</bug_when>
    <thetext>Comment on attachment 275721
Proposed Fix

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

&gt; Source/WebKit2/UIProcess/Automation/Automation.json:438
&gt; +            &quot;description&quot;: &quot;Returns all cookies visible to the specified browsing context.&quot;,

Nit: Move &quot;description&quot;s up under the name for all of these? It flows so much better.

&gt; Source/WebKit2/UIProcess/Automation/Automation.json:454
&gt; +                { &quot;name&quot;: &quot;data&quot;, &quot;type&quot;: &quot;Cookie&quot;, &quot;description&quot;: &quot;Data for the cookie that should be added.&quot; }

Hmm, shouldn&apos;t this be `&quot;$ref&quot;: &quot;Cookie&quot;`, not `&quot;type&quot;: &quot;Cookie&quot;`? I&apos;m surprised the code generator doesn&apos;t issue a warning about this.

&gt; Source/WebKit2/UIProcess/Automation/WebAutomationSession.cpp:698
&gt; +        cookies-&gt;addItem(buildObjectForCookie(cookie));

Nit: I think you can WTFMove(buildObjectForCookie(cookie)) here. But maybe not.

&gt; Source/WebKit2/WebProcess/Automation/WebAutomationSessionProxy.cpp:498
&gt; +    String frameNotFoundErrorType = Inspector::Protocol::AutomationHelpers::getEnumConstantValue(Inspector::Protocol::Automation::ErrorMessage::FrameNotFound);

I wonder if we should make a macro for these instead of making a local at the top of all of these methods and adding ~2 lines per method. We could also have something for the no error case.

    #define FRAME_NOT_FOUND_ERROR_STRING = Inspector::Protocol::AutomationHelpers::getEnumConstantValue(Inspector::Protocol::Automation::ErrorMessage::FrameNotFound)
    #define NO_ERROR_STRING = String()

Or a PREDEFINED_ERROR_STRING(enum) like the other case.

Just a thought, you don&apos;t need to do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181140</commentid>
    <comment_count>6</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-04-05 20:23:22 -0700</bug_when>
    <thetext>Committed r199091: &lt;http://trac.webkit.org/changeset/199091&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213827</commentid>
    <comment_count>7</comment_count>
      <attachid>275721</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-22 21:09:01 -0700</bug_when>
    <thetext>Comment on attachment 275721
Proposed Fix

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

&gt; Source/WebKit2/UIProcess/Automation/WebAutomationSession.cpp:760
&gt; +void WebAutomationSession::deleteAllCookies(ErrorString&amp; errorString, const String&amp; browsingContextHandle, Ref&lt;DeleteAllCookiesCallback&gt;&amp;&amp; callback)

This never calls the callback. Perhaps it shouldn&apos;t be async?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275355</attachid>
            <date>2016-03-31 16:37:49 -0700</date>
            <delta_ts>2016-04-05 17:00:28 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-156090-20160331163753.patch</filename>
            <type>text/plain</type>
            <size>5345</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4OTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24KaW5kZXggODUzYWIwMmIzOTkzMTYwOTcz
MTVkNjJhNjUxMzFhMDM2MTlkMzcwYS4uZTZiNjNiNjkxYWVlMTFkZDEyZGQ3ZTlmMDMwZmMzZTVm
OGQzYWQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24v
QXV0b21hdGlvbi5qc29uCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9u
L0F1dG9tYXRpb24uanNvbgpAQCAtMTg3LDYgKzE4NywyMiBAQAogICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAia2V5IiwgIiRyZWYiOiAiVmlydHVhbEtleSIsICJvcHRpb25hbCI6IHRydWUsICJk
ZXNjcmlwdGlvbiI6ICJBIHZpcnR1YWwga2V5IHRvIGJlIHVzZWQgdG8gcGVyZm9ybSB0aGUgc3Bl
Y2lmaWVkIGludGVyYWN0aW9uLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInRleHQi
LCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQSB1
bmljb2RlIHN0cmluZyB0byBiZSBkZWxpdmVyZWQgdG8gdGhlIHBhZ2UuIFRoZSBzZXF1ZW5jZSBv
ZiBrZXkgZXZlbnRzIGlzIGRldGVybWluZWQgYnkgc3BsaXR0aW5nIHRoZSBzdHJpbmcgYXQgZ3Jh
cGhlbWUgY2x1c3RlciBib3VuZGFyaWVzLiIgfQogICAgICAgICAgICAgXQorICAgICAgICB9LAor
ICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiQ29va2llIiwKKyAgICAgICAgICAgICJ0eXBl
IjogIm9iamVjdCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQ29va2llIG9iamVjdCIs
CisgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
Im5hbWUiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiQ29va2llIG5hbWUuIiB9
LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidmFsdWUiLCAidHlwZSI6ICJzdHJpbmciLCAi
ZGVzY3JpcHRpb24iOiAiQ29va2llIHZhbHVlLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImRvbWFpbiIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJDb29raWUgZG9t
YWluLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBhdGgiLCAidHlwZSI6ICJzdHJp
bmciLCAiZGVzY3JpcHRpb24iOiAiQ29va2llIHBhdGguIiB9LAorICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiZXhwaXJlcyIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJDb29r
aWUgZXhwaXJlcy4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzaXplIiwgInR5cGUi
OiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJDb29raWUgc2l6ZS4iIH0sCisgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJodHRwT25seSIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRp
b24iOiAiVHJ1ZSBpZiBjb29raWUgaXMgaHR0cC1vbmx5LiIgfSwKKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInNlY3VyZSIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiVHJ1
ZSBpZiBjb29raWUgaXMgc2VjdXJlLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNl
c3Npb24iLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIlRydWUgaW4gY2FzZSBv
ZiBzZXNzaW9uIGNvb2tpZS4iIH0KKyAgICAgICAgICAgIF0KICAgICAgICAgfQogICAgIF0sCiAg
ICAgImNvbW1hbmRzIjogWwpAQCAtNDEwLDYgKzQyNiwzNiBAQAogICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0
SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250
ZXh0LiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVzZXJJbnB1dCIsICJ0eXBlIjog
InN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgdGV4dCB0byBlbnRlciBpbiB0aGUgcHJvbXB0
LiIgfQogICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAi
bmFtZSI6ICJnZXRBbGxDb29raWVzIiwKKyAgICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiY29va2llcyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjog
eyAiJHJlZiI6ICJDb29raWUiIH0sICJkZXNjcmlwdGlvbiI6ICJBcnJheSBvZiBjb29raWUgb2Jq
ZWN0cy4iIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmV0
dXJucyBhbGwgY29va2llcyB2aXNpYmxlIHRvIHRoZSBzcGVjaWZpZWQgYnJvd3NpbmcgY29udGV4
dC4iCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImRlbGV0ZVNp
bmdsZUNvb2tpZSIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29u
dGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3Npbmcg
Y29udGV4dC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb29raWVOYW1lIiwgInR5
cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIk5hbWUgb2YgdGhlIGNvb2tpZSB0byByZW1v
dmUuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRlbGV0
ZXMgYSBjb29raWUgd2l0aCB0aGUgZ2l2ZW4gbmFtZSBpZiB2aXNpYmxlIHRvIHRoZSBzcGVjaWZp
ZWQgYnJvd3NpbmcgY29udGV4dC4iCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAg
ICJuYW1lIjogImFkZFNpbmdsZUNvb2tpZSIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsK
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVm
IjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZv
ciB0aGUgYnJvd3NpbmcgY29udGV4dC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJk
YXRhIiwgInR5cGUiOiAiY29va2llIiwgImRlc2NyaXB0aW9uIjogIkRhdGEgZm9yIHRoZSBjb29r
aWUgdGhhdCBzaG91bGQgYmUgYWRkZWQuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogIkFkZCBhIGNvb2tpZSB3aXRoIHRoZSBnaXZlbiBkYXRhIHRvIGNvb2tp
ZSBzdG9yYWdlLiIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAi
ZGVsZXRlQWxsQ29va2llcyIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjogIkJyb3dz
aW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJv
d3NpbmcgY29udGV4dC4iIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiRGVsZXRlIGFsbCBjb29raWVzIHRoYXQgYXJlIHZpc2libGUgdG8gdGhlIHNwZWNpZmll
ZCBicm93c2luZyBjb250ZXh0LiIKICAgICAgICAgfQogICAgIF0KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNz
aW9uLmNwcAppbmRleCA2ZDNhYjMxN2NjMjJjZWY0NzdjZWJmNjI0MzE5NmYyOGEzY2MyMWE4Li43
NjM4MDk5ZjVkNWIwMDYyYjJiYjBmNTkyYWIyNzhiOTkxYWVkY2M1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNl
c3Npb24uY3BwCkBAIC02NTcsNiArNjU3LDMxIEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246
OnNldFVzZXJJbnB1dEZvckN1cnJlbnRKYXZhU2NyaXB0UHJvbXB0KEluc3BlY3Rvcjo6RXJyCiAg
ICAgbV9jbGllbnQtPnNldFVzZXJJbnB1dEZvckN1cnJlbnRKYXZhU2NyaXB0UHJvbXB0T25QYWdl
KHRoaXMsIHBhZ2UsIHByb21wdFZhbHVlKTsKIH0KIAorc3RhdGljIFJlZjxJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpDb29raWU+IGJ1aWxkT2JqZWN0Rm9yQ29va2llKGNvbnN0IENv
b2tpZSYgY29va2llKQoreworICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpDb29raWU6OmNyZWF0ZSgpCisgICAgICAgIC5zZXROYW1lKGNvb2tpZS5uYW1lKQorICAg
ICAgICAuc2V0VmFsdWUoY29va2llLnZhbHVlKQorICAgICAgICAuc2V0RG9tYWluKGNvb2tpZS5k
b21haW4pCisgICAgICAgIC5zZXRQYXRoKGNvb2tpZS5wYXRoKQorICAgICAgICAuc2V0RXhwaXJl
cyhjb29raWUuZXhwaXJlcykKKyAgICAgICAgLnNldFNpemUoKGNvb2tpZS5uYW1lLmxlbmd0aCgp
ICsgY29va2llLnZhbHVlLmxlbmd0aCgpKSkKKyAgICAgICAgLnNldEh0dHBPbmx5KGNvb2tpZS5o
dHRwT25seSkKKyAgICAgICAgLnNldFNlY3VyZShjb29raWUuc2VjdXJlKQorICAgICAgICAuc2V0
U2Vzc2lvbihjb29raWUuc2Vzc2lvbikKKyAgICAgICAgLnJlbGVhc2UoKTsKK30KKworc3RhdGlj
IFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpDb29raWU+PiBidWlsZEFycmF5Rm9yQ29va2llcyhMaXN0SGFzaFNldDxDb29raWU+
JiBjb29raWVzTGlzdCkKK3sKKyAgICBhdXRvIGNvb2tpZXMgPSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpDb29raWU+OjpjcmVhdGUo
KTsKKworICAgIGZvciAoY29uc3QgYXV0byYgY29va2llIDogY29va2llc0xpc3QpCisgICAgICAg
IGNvb2tpZXMtPmFkZEl0ZW0oYnVpbGRPYmplY3RGb3JDb29raWUoY29va2llKSk7CisKKyAgICBy
ZXR1cm4gY29va2llczsKK30KKwogI2lmIFVTRShBUFBLSVQpCiBzdGF0aWMgV2ViRXZlbnQ6Ok1v
ZGlmaWVycyBwcm90b2NvbE1vZGlmaWVyVG9XZWJFdmVudE1vZGlmaWVyKEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OktleU1vZGlmaWVyIG1vZGlmaWVyKQogewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275721</attachid>
            <date>2016-04-05 17:00:31 -0700</date>
            <delta_ts>2016-04-05 17:12:38 -0700</delta_ts>
            <desc>Proposed Fix</desc>
            <filename>bug-156090-20160405170031.patch</filename>
            <type>text/plain</type>
            <size>20058</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5MDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDhlZDQ3NWQ1NjgwNGI5
NGU0MGZjMjA5MTNmZDYwNjJmMjhhYWQzZi4uZTRmNmJhYWQ5ODJmMjU0NjQ1MjhmMWQ5NDExZDFj
N2ZiOWU2YzQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE2LTA0LTA1ICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBBdXRvbWF0aW9uOiBhZGQg
c3VwcG9ydCBmb3IgZ2V0dGluZywgZGVsZXRpbmcsIGFuZCBhZGRpbmcgY29va2llcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2MDkwCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8yNTQ3NzY3OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgcHJvdG9jb2wgY29tbWFuZHMgZm9yIG1hbmlwdWxhdGlu
ZyBjb29raWVzIHdpdGggcmVzcGVjdCB0byBhIGdpdmVuIHBhZ2UuCisgICAgICAgIEltcGxlbWVu
dCBhbGwgYnV0IHRoZSBhZGRTaW5nbGVDb29raWUgY29tbWFuZCwgd2hpY2ggbmVlZHMgYSBuZXcg
V2ViQ29yZSBBUEkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9u
Lmpzb246CisgICAgICAgIENvcHkgdGhlIFBhZ2UgZG9tYWluIENvb2tpZSBvYmplY3QuIEFkZCBu
ZXcgY29tbWFuZHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpn
ZXRBbGxDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6YnVpbGRPYmplY3RGb3JDb29raWUpOiBD
b3BpZWQgZnJvbSBJbnNwZWN0b3JQYWdlQWdlbnQuCisgICAgICAgIChXZWJLaXQ6OmJ1aWxkQXJy
YXlGb3JDb29raWVzKTogQ29waWVkIGZyb20gSW5zcGVjdG9yUGFnZUFnZW50LgorICAgICAgICAo
V2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6ZGlkR2V0Q29va2llc0ZvckZyYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmRlbGV0ZVNpbmdsZUNvb2tpZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpkaWREZWxldGVDb29raWUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6YWRkU2luZ2xlQ29va2ll
KTogQWRkZWQgYSBzdHViIGZvciBub3cuCisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25T
ZXNzaW9uOjpkZWxldGVBbGxDb29raWVzKToKKyAgICAgICAgVGhpcyBjb21tYW5kIGNhbiB1c2Ug
dGhlIFdlYkNvb2tpZU1hbmFnZXIgc3VwcGxlbWVudCBkaXJlY3RseSBpbnN0ZWFkIG9mCisgICAg
ICAgIHByb3h5aW5nIHRocm91Z2ggQXV0b21hdGlvblNlc3Npb24uIEl0IGRvZXNuJ3QgYmxvY2sg
dW50aWwgdGhlIGRlbGV0ZSBpcworICAgICAgICBwZXJmb3JtZWQgbGlrZSB0aGUgb3RoZXIgbWV0
aG9kcyBkbywgYnV0IHRoaXMgc2hvdWxkbid0IGJlIGEgcHJvYmxlbS4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24ubWVzc2FnZXMuaW46CisgICAg
ICAgICogV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpnZXRDb29raWVz
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpk
ZWxldGVDb29raWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHkubWVzc2FnZXMuaW46CisKIDIwMTYtMDQtMDUgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIE1vZGVybiBJREI6IFJlcGxhY2Ug
dXNlIG9mIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB3aXRoIElEQlZhbHVlLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uCmluZGV4IDg1
M2FiMDJiMzk5MzE2MDk3MzE1ZDYyYTY1MTMxYTAzNjE5ZDM3MGEuLmY1YjBiMzljZWRjNDE2NmI3
YjE3NDkyZWVjMjc1ZWY4NGE1OWI1MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRpb24uanNvbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24KQEAgLTE4Nyw2ICsxODcsMjIgQEAKICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImtleSIsICIkcmVmIjogIlZpcnR1YWxLZXkiLCAib3B0
aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQSB2aXJ0dWFsIGtleSB0byBiZSB1c2VkIHRv
IHBlcmZvcm0gdGhlIHNwZWNpZmllZCBpbnRlcmFjdGlvbi4iIH0sCiAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJ0ZXh0IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRl
c2NyaXB0aW9uIjogIkEgdW5pY29kZSBzdHJpbmcgdG8gYmUgZGVsaXZlcmVkIHRvIHRoZSBwYWdl
LiBUaGUgc2VxdWVuY2Ugb2Yga2V5IGV2ZW50cyBpcyBkZXRlcm1pbmVkIGJ5IHNwbGl0dGluZyB0
aGUgc3RyaW5nIGF0IGdyYXBoZW1lIGNsdXN0ZXIgYm91bmRhcmllcy4iIH0KICAgICAgICAgICAg
IF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIkNvb2tpZSIsCisg
ICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjog
IkNvb2tpZSBvYmplY3QiLAorICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJuYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjog
IkNvb2tpZSBuYW1lLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInZhbHVlIiwgInR5
cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIkNvb2tpZSB2YWx1ZS4iIH0sCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJkb21haW4iLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRp
b24iOiAiQ29va2llIGRvbWFpbi4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwYXRo
IiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIkNvb2tpZSBwYXRoLiIgfSwKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImV4cGlyZXMiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVz
Y3JpcHRpb24iOiAiQ29va2llIGV4cGlyZXMuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAic2l6ZSIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiQ29va2llIHNpemUu
IiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaHR0cE9ubHkiLCAidHlwZSI6ICJib29s
ZWFuIiwgImRlc2NyaXB0aW9uIjogIlRydWUgaWYgY29va2llIGlzIGh0dHAtb25seS4iIH0sCisg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzZWN1cmUiLCAidHlwZSI6ICJib29sZWFuIiwgImRl
c2NyaXB0aW9uIjogIlRydWUgaWYgY29va2llIGlzIHNlY3VyZS4iIH0sCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJzZXNzaW9uIiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6
ICJUcnVlIGluIGNhc2Ugb2Ygc2Vzc2lvbiBjb29raWUuIiB9CisgICAgICAgICAgICBdCiAgICAg
ICAgIH0KICAgICBdLAogICAgICJjb21tYW5kcyI6IFsKQEAgLTQxMCw2ICs0MjYsNDMgQEAKICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjog
IkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0
aGUgYnJvd3NpbmcgY29udGV4dC4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1c2Vy
SW5wdXQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiVGhlIHRleHQgdG8gZW50
ZXIgaW4gdGhlIHByb21wdC4iIH0KICAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAg
eworICAgICAgICAgICAgIm5hbWUiOiAiZ2V0QWxsQ29va2llcyIsCisgICAgICAgICAgICAicGFy
YW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJyb3dzaW5nQ29udGV4dEhh
bmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJU
aGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dC4iIH0KKyAgICAgICAgICAgIF0sCisg
ICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvb2tp
ZXMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiQ29va2llIiB9LCAiZGVz
Y3JpcHRpb24iOiAiQXJyYXkgb2YgY29va2llIG9iamVjdHMuIiB9CisgICAgICAgICAgICBdLAor
ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJldHVybnMgYWxsIGNvb2tpZXMgdmlzaWJsZSB0
byB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQuIiwKKyAgICAgICAgICAgICJhc3luYyI6
IHRydWUKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZGVsZXRl
U2luZ2xlQ29va2llIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdD
b250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2lu
ZyBjb250ZXh0LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvb2tpZU5hbWUiLCAi
dHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiTmFtZSBvZiB0aGUgY29va2llIHRvIHJl
bW92ZS4iIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGVs
ZXRlcyBhIGNvb2tpZSB3aXRoIHRoZSBnaXZlbiBuYW1lIGlmIHZpc2libGUgdG8gdGhlIHNwZWNp
ZmllZCBicm93c2luZyBjb250ZXh0LiIsCisgICAgICAgICAgICAiYXN5bmMiOiB0cnVlCisgICAg
ICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImFkZFNpbmdsZUNvb2tpZSIs
CisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIs
ICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dC4iIH0s
CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkYXRhIiwgInR5cGUiOiAiQ29va2llIiwgImRl
c2NyaXB0aW9uIjogIkRhdGEgZm9yIHRoZSBjb29raWUgdGhhdCBzaG91bGQgYmUgYWRkZWQuIiB9
CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNvb2tp
ZSB3aXRoIHRoZSBnaXZlbiBkYXRhIHRvIGNvb2tpZSBzdG9yYWdlLiIsCisgICAgICAgICAgICAi
YXN5bmMiOiB0cnVlCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjog
ImRlbGV0ZUFsbENvb2tpZXMiLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93
c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJy
b3dzaW5nIGNvbnRleHQuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogIkRlbGV0ZSBhbGwgY29va2llcyB0aGF0IGFyZSB2aXNpYmxlIHRvIHRoZSBzcGVjaWZp
ZWQgYnJvd3NpbmcgY29udGV4dC4iLAorICAgICAgICAgICAgImFzeW5jIjogdHJ1ZQogICAgICAg
ICB9CiAgICAgXQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9t
YXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCmluZGV4IDA5ZDc1M2NmNTU4NDRj
M2MyYWU2N2M5ZGU2Nzc5NTkwMGRkNGExNDkuLmE5M2I1ODdiMmI1MzFhODc4MWQxOGQzZDM0NzNl
ZDJmZDRiYWRlNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0
aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlICJBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmgiCiAjaW5jbHVkZSAiV2ViQXV0
b21hdGlvblNlc3Npb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgogI2lu
Y2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0
b3JGcm9udGVuZFJvdXRlci5oPgpAQCAtNjU3LDYgKzY1OCwxMTggQEAgdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvbjo6c2V0VXNlcklucHV0Rm9yQ3VycmVudEphdmFTY3JpcHRQcm9tcHQoSW5zcGVj
dG9yOjpFcnIKICAgICBtX2NsaWVudC0+c2V0VXNlcklucHV0Rm9yQ3VycmVudEphdmFTY3JpcHRQ
cm9tcHRPblBhZ2UodGhpcywgcGFnZSwgcHJvbXB0VmFsdWUpOwogfQogCit2b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uOjpnZXRBbGxDb29raWVzKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29u
c3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUsIFJlZjxHZXRBbGxDb29raWVzQ2FsbGJh
Y2s+JiYgY2FsbGJhY2spCit7CisgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gd2ViUGFnZVByb3h5
Rm9ySGFuZGxlKGJyb3dzaW5nQ29udGV4dEhhbmRsZSk7CisgICAgaWYgKCFwYWdlKQorICAgICAg
ICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9NRVNTQUdFKFdpbmRvd05vdEZvdW5kKTsKKwor
ICAgIFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpOworICAgIEFT
U0VSVChtYWluRnJhbWUpOworICAgIGlmICghbWFpbkZyYW1lKQorICAgICAgICBGQUlMX1dJVEhf
UFJFREVGSU5FRF9FUlJPUl9NRVNTQUdFKFdpbmRvd05vdEZvdW5kKTsKKworICAgIHVpbnQ2NF90
IGNhbGxiYWNrSUQgPSBtX25leHRHZXRDb29raWVzQ2FsbGJhY2tJRCsrOworICAgIG1fZ2V0Q29v
a2llQ2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBw
YWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6
R2V0Q29va2llc0ZvckZyYW1lKG1haW5GcmFtZS0+ZnJhbWVJRCgpLCBjYWxsYmFja0lEKSwgMCk7
Cit9CisKK3N0YXRpYyBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Q29va2ll
PiBidWlsZE9iamVjdEZvckNvb2tpZShjb25zdCBXZWJDb3JlOjpDb29raWUmIGNvb2tpZSkKK3sK
KyAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Q29va2llOjpjcmVh
dGUoKQorICAgICAgICAuc2V0TmFtZShjb29raWUubmFtZSkKKyAgICAgICAgLnNldFZhbHVlKGNv
b2tpZS52YWx1ZSkKKyAgICAgICAgLnNldERvbWFpbihjb29raWUuZG9tYWluKQorICAgICAgICAu
c2V0UGF0aChjb29raWUucGF0aCkKKyAgICAgICAgLnNldEV4cGlyZXMoY29va2llLmV4cGlyZXMp
CisgICAgICAgIC5zZXRTaXplKChjb29raWUubmFtZS5sZW5ndGgoKSArIGNvb2tpZS52YWx1ZS5s
ZW5ndGgoKSkpCisgICAgICAgIC5zZXRIdHRwT25seShjb29raWUuaHR0cE9ubHkpCisgICAgICAg
IC5zZXRTZWN1cmUoY29va2llLnNlY3VyZSkKKyAgICAgICAgLnNldFNlc3Npb24oY29va2llLnNl
c3Npb24pCisgICAgICAgIC5yZWxlYXNlKCk7Cit9CisKK3N0YXRpYyBSZWY8SW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Q29va2llPj4g
YnVpbGRBcnJheUZvckNvb2tpZXMoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mIGNvb2tpZXNMaXN0
KQoreworICAgIGF1dG8gY29va2llcyA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkNvb2tpZT46OmNyZWF0ZSgpOworCisgICAgZm9y
IChjb25zdCBhdXRvJiBjb29raWUgOiBjb29raWVzTGlzdCkKKyAgICAgICAgY29va2llcy0+YWRk
SXRlbShidWlsZE9iamVjdEZvckNvb2tpZShjb29raWUpKTsKKworICAgIHJldHVybiBjb29raWVz
OworfQorCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpkaWRHZXRDb29raWVzRm9yRnJhbWUo
dWludDY0X3QgY2FsbGJhY2tJRCwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcywgY29u
c3QgU3RyaW5nJiBlcnJvclR5cGUpCit7CisgICAgYXV0byBjYWxsYmFjayA9IG1fZ2V0Q29va2ll
Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7CisgICAgaWYgKCFjYWxsYmFjaykKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKCFlcnJvclR5cGUuaXNFbXB0eSgpKSB7CisgICAgICAgIGNhbGxi
YWNrLT5zZW5kRmFpbHVyZShlcnJvclR5cGUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgY2FsbGJhY2stPnNlbmRTdWNjZXNzKGJ1aWxkQXJyYXlGb3JDb29raWVzKGNvb2tpZXMpKTsK
K30KKwordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6ZGVsZXRlU2luZ2xlQ29va2llKEVycm9y
U3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUs
IGNvbnN0IFN0cmluZyYgY29va2llTmFtZSwgUmVmPERlbGV0ZVNpbmdsZUNvb2tpZUNhbGxiYWNr
PiYmIGNhbGxiYWNrKQoreworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IHdlYlBhZ2VQcm94eUZv
ckhhbmRsZShicm93c2luZ0NvbnRleHRIYW5kbGUpOworICAgIGlmICghcGFnZSkKKyAgICAgICAg
RkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfTUVTU0FHRShXaW5kb3dOb3RGb3VuZCk7CisKKyAg
ICBXZWJGcmFtZVByb3h5KiBtYWluRnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKTsKKyAgICBBU1NF
UlQobWFpbkZyYW1lKTsKKyAgICBpZiAoIW1haW5GcmFtZSkKKyAgICAgICAgRkFJTF9XSVRIX1BS
RURFRklORURfRVJST1JfTUVTU0FHRShXaW5kb3dOb3RGb3VuZCk7CisKKyAgICB1aW50NjRfdCBj
YWxsYmFja0lEID0gbV9uZXh0RGVsZXRlQ29va2llQ2FsbGJhY2tJRCsrOworICAgIG1fZGVsZXRl
Q29va2llQ2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAg
ICBwYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eTo6RGVsZXRlQ29va2llKG1haW5GcmFtZS0+ZnJhbWVJRCgpLCBjb29raWVOYW1lLCBjYWxsYmFj
a0lEKSwgMCk7Cit9CisKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmRpZERlbGV0ZUNvb2tp
ZSh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBTdHJpbmcmIGVycm9yVHlwZSkKK3sKKyAgICBh
dXRvIGNhbGxiYWNrID0gbV9kZWxldGVDb29raWVDYWxsYmFja3MudGFrZShjYWxsYmFja0lEKTsK
KyAgICBpZiAoIWNhbGxiYWNrKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIWVycm9yVHlw
ZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgY2FsbGJhY2stPnNlbmRGYWlsdXJlKGVycm9yVHlwZSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjYWxsYmFjay0+c2VuZFN1Y2Nlc3MoKTsK
K30KKwordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6YWRkU2luZ2xlQ29va2llKEVycm9yU3Ry
aW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUsIGNv
bnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0JiBjb29raWUsIFJlZjxBZGRTaW5nbGVDb29r
aWVDYWxsYmFjaz4mJiBjYWxsYmFjaykKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50aW5nIHRo
aXMgY29tbWFuZCByZXF1aXJlcyBhIG5ldyBDb29raWVKYXIgQVBJIDxodHRwczovL3dlYmtpdC5v
cmcvYi8xNTYwOTE+CisgICAgVU5VU0VEX1BBUkFNKGJyb3dzaW5nQ29udGV4dEhhbmRsZSk7Cisg
ICAgLy8gRklYTUU6IGlmIHRoZSBpbmNvbWluZyBjb29raWUncyBkb21haW4gaXMgdGhlIHN0cmlu
ZyAnKGluaGVyaXQpJywKKyAgICAvLyB0aGVuIGl0IHNob3VsZCBiZSBpbmhlcml0ZWQgZnJvbSB0
aGUgbWFpbiBmcmFtZSdzIGRvbWFpbi4KKyAgICBVTlVTRURfUEFSQU0oY29va2llKTsKKyAgICBV
TlVTRURfUEFSQU0oY2FsbGJhY2spOworCisgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1Jf
TUVTU0FHRShOb3RJbXBsZW1lbnRlZCk7Cit9CisKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246
OmRlbGV0ZUFsbENvb2tpZXMoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcm
IGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgUmVmPERlbGV0ZUFsbENvb2tpZXNDYWxsYmFjaz4mJiBj
YWxsYmFjaykKK3sKKyAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSB3ZWJQYWdlUHJveHlGb3JIYW5k
bGUoYnJvd3NpbmdDb250ZXh0SGFuZGxlKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIEZBSUxf
V0lUSF9QUkVERUZJTkVEX0VSUk9SX01FU1NBR0UoV2luZG93Tm90Rm91bmQpOworCisgICAgV2Vi
Q29yZTo6VVJMIGFjdGl2ZVVSTCA9IFdlYkNvcmU6OlVSTChXZWJDb3JlOjpVUkwoKSwgcGFnZS0+
cGFnZUxvYWRTdGF0ZSgpLmFjdGl2ZVVSTCgpKTsKKyAgICBBU1NFUlQoYWN0aXZlVVJMLmlzVmFs
aWQoKSk7CisKKyAgICBXZWJDb29raWVNYW5hZ2VyUHJveHkqIGNvb2tpZU1hbmFnZXIgPSBtX3By
b2Nlc3NQb29sLT5zdXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXJQcm94eT4oKTsKKyAgICBjb29r
aWVNYW5hZ2VyLT5kZWxldGVDb29raWVzRm9ySG9zdG5hbWUoYWN0aXZlVVJMLmhvc3QoKSk7Cit9
CisKICNpZiBVU0UoQVBQS0lUKQogc3RhdGljIFdlYkV2ZW50OjpNb2RpZmllcnMgcHJvdG9jb2xN
b2RpZmllclRvV2ViRXZlbnRNb2RpZmllcihJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpLZXlNb2RpZmllciBtb2RpZmllcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCmluZGV4IGM5N2Vl
ZjE0MzA0YTViN2NhNGYwMTBmYjkwN2ZhZGIwZDUyZTM3MmEuLjc2OTFmYmY0MmFkNWJlMmRlYjc4
NzQ2N2I3NTBmNTlmMTAxNzY1MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaApAQCAtNDYsMTEgKzQ2
LDEwIEBAIGNsYXNzIEZyb250ZW5kUm91dGVyOwogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Citj
bGFzcyBJbnRQb2ludDsKIGNsYXNzIEludFJlY3Q7Ci19CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LWNsYXNzIEludFBvaW50Oworc3RydWN0IENvb2tpZTsKIH0KIAogI2lmIFVTRShBUFBLSVQpCkBA
IC0xMTcsNyArMTE2LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGFjY2VwdEN1cnJlbnRKYXZhU2Ny
aXB0RGlhbG9nKEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGJyb3dzaW5n
Q29udGV4dEhhbmRsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBtZXNzYWdlT2ZDdXJyZW50SmF2YVNj
cmlwdERpYWxvZyhJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBicm93c2lu
Z0NvbnRleHRIYW5kbGUsIFN0cmluZyogdGV4dCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRVc2Vy
SW5wdXRGb3JDdXJyZW50SmF2YVNjcmlwdFByb21wdChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUsIGNvbnN0IFN0cmluZyYgdGV4dCkg
b3ZlcnJpZGU7Ci0KKyAgICB2b2lkIGdldEFsbENvb2tpZXMoSW5zcGVjdG9yOjpFcnJvclN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBSZWY8R2V0QWxsQ29va2ll
c0NhbGxiYWNrPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRlbGV0ZVNpbmdsZUNvb2tpZShJbnNw
ZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUs
IGNvbnN0IFN0cmluZyYgY29va2llTmFtZSwgUmVmPERlbGV0ZVNpbmdsZUNvb2tpZUNhbGxiYWNr
PiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGFkZFNpbmdsZUNvb2tpZShJbnNwZWN0b3I6OkVycm9y
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUsIGNvbnN0IEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yT2JqZWN0JiBjb29raWUsIFJlZjxBZGRTaW5nbGVDb29raWVDYWxsYmFj
az4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkZWxldGVBbGxDb29raWVzKEluc3BlY3Rvcjo6RXJy
b3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgUmVmPERlbGV0
ZUFsbENvb2tpZXNDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CiAjaWYgVVNFKEFQUEtJVCkKICAgICBi
b29sIHdhc0V2ZW50U3ludGhlc2l6ZWRGb3JBdXRvbWF0aW9uKE5TRXZlbnQgKik7CiAjZW5kaWYK
QEAgLTE0MCw2ICsxNDIsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVzb2x2ZVBhcmVudEZy
YW1lKHVpbnQ2NF90IGNhbGxiYWNrSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYg
ZXJyb3JUeXBlKTsKICAgICB2b2lkIGRpZENvbXB1dGVFbGVtZW50TGF5b3V0KHVpbnQ2NF90IGNh
bGxiYWNrSUQsIFdlYkNvcmU6OkludFJlY3QsIGNvbnN0IFN0cmluZyYgZXJyb3JUeXBlKTsKICAg
ICB2b2lkIGRpZFRha2VTY3JlZW5zaG90KHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFNoYXJl
YWJsZUJpdG1hcDo6SGFuZGxlJiwgY29uc3QgU3RyaW5nJiBlcnJvclR5cGUpOworICAgIHZvaWQg
ZGlkR2V0Q29va2llc0ZvckZyYW1lKHVpbnQ2NF90IGNhbGxiYWNrSUQsIFZlY3RvcjxXZWJDb3Jl
OjpDb29raWU+LCBjb25zdCBTdHJpbmcmIGVycm9yVHlwZSk7CisgICAgdm9pZCBkaWREZWxldGVD
b29raWUodWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgU3RyaW5nJiBlcnJvclR5cGUpOwogCiAg
ICAgLy8gUGxhdGZvcm0tc3BlY2lmaWMgaGVscGVyIG1ldGhvZHMuCiAgICAgdm9pZCBwbGF0Zm9y
bVNpbXVsYXRlTW91c2VJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgdmlld1Bvc2l0aW9uLCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpN
b3VzZUludGVyYWN0aW9uLCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpNb3VzZUJ1
dHRvbiwgV2ViRXZlbnQ6Ok1vZGlmaWVycyk7CkBAIC0xODYsNiArMTkwLDEyIEBAIHByaXZhdGU6
CiAgICAgdWludDY0X3QgbV9uZXh0U2NyZWVuc2hvdENhbGxiYWNrSUQgeyAxIH07CiAgICAgSGFz
aE1hcDx1aW50NjRfdCwgUmVmUHRyPEluc3BlY3Rvcjo6QXV0b21hdGlvbkJhY2tlbmREaXNwYXRj
aGVySGFuZGxlcjo6VGFrZVNjcmVlbnNob3RDYWxsYmFjaz4+IG1fc2NyZWVuc2hvdENhbGxiYWNr
czsKIAorICAgIHVpbnQ2NF90IG1fbmV4dEdldENvb2tpZXNDYWxsYmFja0lEIHsgMSB9OworICAg
IEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxJbnNwZWN0b3I6OkF1dG9tYXRpb25CYWNrZW5kRGlz
cGF0Y2hlckhhbmRsZXI6OkdldEFsbENvb2tpZXNDYWxsYmFjaz4+IG1fZ2V0Q29va2llQ2FsbGJh
Y2tzOworCisgICAgdWludDY0X3QgbV9uZXh0RGVsZXRlQ29va2llQ2FsbGJhY2tJRCB7IDEgfTsK
KyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8SW5zcGVjdG9yOjpBdXRvbWF0aW9uQmFja2Vu
ZERpc3BhdGNoZXJIYW5kbGVyOjpEZWxldGVTaW5nbGVDb29raWVDYWxsYmFjaz4+IG1fZGVsZXRl
Q29va2llQ2FsbGJhY2tzOworCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAgICAgSW5z
cGVjdG9yOjpGcm9udGVuZENoYW5uZWwqIG1fcmVtb3RlQ2hhbm5lbCB7IG51bGxwdHIgfTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2Vi
QXV0b21hdGlvblNlc3Npb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5tZXNzYWdlcy5pbgppbmRleCA1YzNiN2Ew
ZTJhMjM1MDFkN2FiNWFmNTZkZjcxNGNkMjdmMzZjNTAxLi5jYjRkNTYyODgzMDhjYjZmZjY3MmZh
NjNjMDlkZDU2ZmNkOTAxMTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5tZXNzYWdl
cy5pbgpAQCAtMjksNCArMjksNyBAQCBtZXNzYWdlcyAtPiBXZWJBdXRvbWF0aW9uU2Vzc2lvbiB7
CiAgICAgRGlkQ29tcHV0ZUVsZW1lbnRMYXlvdXQodWludDY0X3QgY2FsbGJhY2tJRCwgV2ViQ29y
ZTo6SW50UmVjdCByZWN0LCBTdHJpbmcgZXJyb3JUeXBlKQogCiAgICAgRGlkVGFrZVNjcmVlbnNo
b3QodWludDY0X3QgY2FsbGJhY2tJRCwgV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBp
bWFnZURhdGFIYW5kbGUsIFN0cmluZyBlcnJvclR5cGUpCisKKyAgICBEaWRHZXRDb29raWVzRm9y
RnJhbWUodWludDY0X3QgY2FsbGJhY2tJRCwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2ll
cywgU3RyaW5nIGVycm9yVHlwZSkKKyAgICBEaWREZWxldGVDb29raWUodWludDY0X3QgY2FsbGJh
Y2tJRCwgU3RyaW5nIGVycm9yVHlwZSkKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
LmNwcAppbmRleCA0MzcyZTQ4MTA4NjZhNWRmNDJhMWFlNjVmNTNiOTU1MGM4NzZkYzA2Li5hNjEy
ZjQyNjYzMTk5YmM5YTRkMTVlMThiZWU0ZjI3N2VhOTMxZDg2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHkuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSlNSZXRhaW5QdHIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1N0cmluZ1Jl
ZlByaXZhdGUuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9PcGFxdWVKU1N0cmluZy5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvQ29va2llSmFyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ET01XaW5k
b3cuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFt
ZVRyZWUuaD4KQEAgLTQ5Miw0ICs0OTMsMzggQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5Ojp0YWtlU2NyZWVuc2hvdCh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGNhbGxiYWMKICAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6RGlkVGFrZVNjcmVlbnNob3QoY2FsbGJh
Y2tJRCwgaGFuZGxlLCBTdHJpbmcoKSksIDApOyAgICAKIH0KIAordm9pZCBXZWJBdXRvbWF0aW9u
U2Vzc2lvblByb3h5OjpnZXRDb29raWVzRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0
X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBTdHJpbmcgZnJhbWVOb3RGb3VuZEVycm9yVHlwZSA9IElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1
ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OkZyYW1lTm90
Rm91bmQpOworCisgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
d2ViRnJhbWUoZnJhbWVJRCk7CisgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPmNvcmVGcmFtZSgp
IHx8ICFmcmFtZS0+Y29yZUZyYW1lKCktPmRvY3VtZW50KCkpIHsKKyAgICAgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6
V2ViQXV0b21hdGlvblNlc3Npb246OkRpZEdldENvb2tpZXNGb3JGcmFtZShjYWxsYmFja0lELCBW
ZWN0b3I8V2ViQ29yZTo6Q29va2llPigpLCBmcmFtZU5vdEZvdW5kRXJyb3JUeXBlKSwgMCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBXZWJDb3JlOjpEb2N1bWVudCogZG9jdW1lbnQg
PSBmcmFtZS0+Y29yZUZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgLy8gVGhpcyByZXR1cm5zIHRo
ZSBzYW1lIGxpc3Qgb2YgY29va2llcyBhcyB3aGVuIGV2YWx1YXRpbmcgYGRvY3VtZW50LmNvb2tp
ZXNgIGluIEphdmFTY3JpcHQuCisgICAgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gZm91bmRDb29r
aWVzOworICAgIFdlYkNvcmU6OmdldFJhd0Nvb2tpZXMoZG9jdW1lbnQsIGRvY3VtZW50LT5jb29r
aWVVUkwoKSwgZm91bmRDb29raWVzKTsKKworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNz
aW9uOjpEaWRHZXRDb29raWVzRm9yRnJhbWUoY2FsbGJhY2tJRCwgZm91bmRDb29raWVzLCBTdHJp
bmcoKSksIDApOworfQorCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRlbGV0ZUNv
b2tpZSh1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgY29va2llTmFtZSwgdWludDY0X3QgY2FsbGJh
Y2tJRCkKK3sKKyAgICBTdHJpbmcgZnJhbWVOb3RGb3VuZEVycm9yVHlwZSA9IEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OkZyYW1lTm90Rm91bmQpOwor
CisgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUo
ZnJhbWVJRCk7CisgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPmNvcmVGcmFtZSgpIHx8ICFmcmFt
ZS0+Y29yZUZyYW1lKCktPmRvY3VtZW50KCkpIHsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXV0b21h
dGlvblNlc3Npb246OkRpZERlbGV0ZUNvb2tpZShjYWxsYmFja0lELCBmcmFtZU5vdEZvdW5kRXJy
b3JUeXBlKSwgMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBXZWJDb3JlOjpEb2N1
bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+Y29yZUZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgV2Vi
Q29yZTo6ZGVsZXRlQ29va2llKGRvY3VtZW50LCBkb2N1bWVudC0+Y29va2llVVJMKCksIGNvb2tp
ZU5hbWUpOworCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb246OkRpZERlbGV0ZUNv
b2tpZShjYWxsYmFja0lELCBTdHJpbmcoKSksIDApOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dG9t
YXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oCmluZGV4IDIxZDY1ODBjOTQ0M2U0NmZi
ODI1MDA0YmQ1NmIyNDgzNzIzOGEzYjMuLmQwNGI0NzZmMGZmM2U2ZTk5ZWEzZTRmNzQ1ZTVkMGM5
NTRmNmZlZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0b21hdGlv
bi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaApAQCAtNjYsNiArNjYs
OCBAQCBwcml2YXRlOgogICAgIHZvaWQgZm9jdXNGcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKICAg
ICB2b2lkIGNvbXB1dGVFbGVtZW50TGF5b3V0KHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2Rl
SGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJvb2wgdXNlVmlld3BvcnRDb29y
ZGluYXRlcywgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCB0YWtlU2NyZWVuc2hvdCh1
aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZvaWQgZ2V0Q29va2ll
c0ZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZv
aWQgZGVsZXRlQ29va2llKHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBjb29raWVOYW1lLCB1aW50
NjRfdCBjYWxsYmFja0lEKTsKIAogICAgIFN0cmluZyBtX3Nlc3Npb25JZGVudGlmaWVyOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDg0
ZWEwMWI0ZmE4NGYzODVkM2VlZmY0MzE3ZWFmNjY1MzJiZTBlMWMuLmIzZWU3MGM4OWE0ODExYjVl
ZGZkY2FmZTFhMTA0NWRjMTJlODQ3YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMyw0ICszMyw4IEBAIG1lc3NhZ2VzIC0+IFdlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHkgewogICAgIENvbXB1dGVFbGVtZW50TGF5b3V0KHVpbnQ2NF90
IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQs
IGJvb2wgdXNlVmlld3BvcnRDb29yZGluYXRlcywgdWludDY0X3QgY2FsbGJhY2tJRCkKIAogICAg
IFRha2VTY3JlZW5zaG90KHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgY2FsbGJhY2tJRCkKKwor
ICAgIEdldENvb2tpZXNGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBjYWxsYmFj
a0lEKQorICAgICMgRGVsZXRlcyBhbnkgY29va2llcyBtYXRjaGluZyBjb29raWVOYW1lIGlmIHRo
ZXkgYXJlIHZpc2libGUgdG8gdGhlIGZyYW1lLgorICAgIERlbGV0ZUNvb2tpZSh1aW50NjRfdCBm
cmFtZUlELCBTdHJpbmcgY29va2llTmFtZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKIH0K
</data>
<flag name="review"
          id="300034"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>