<?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>182363</bug_id>
          
          <creation_ts>2018-01-31 16:47:53 -0800</creation_ts>
          <short_desc>WebAppManifest scope should default to the containing directory of start_url if &apos;scope&apos; is not specified</short_desc>
          <delta_ts>2018-02-02 16:50:02 -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="David Quesada">david_quesada</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1395241</commentid>
    <comment_count>0</comment_count>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2018-01-31 16:47:53 -0800</bug_when>
    <thetext>See https://github.com/w3c/manifest/issues/550#issuecomment-361129547

The spec is likely going to be updated to match Chrome&apos;s behavior, which some web apps rely on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395244</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-31 16:50:08 -0800</bug_when>
    <thetext>&lt;rdar://problem/37093498&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395632</commentid>
    <comment_count>2</comment_count>
      <attachid>332910</attachid>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2018-02-01 14:17:17 -0800</bug_when>
    <thetext>Created attachment 332910
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395668</commentid>
    <comment_count>3</comment_count>
      <attachid>332910</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-02-01 15:38:17 -0800</bug_when>
    <thetext>Comment on attachment 332910
Patch

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

&gt; Source/WebCore/Modules/applicationmanifest/ApplicationManifestParser.cpp:211
&gt; +    URL result { url };
&gt; +
&gt; +    result.removeQueryAndFragmentIdentifier();
&gt; +
&gt; +    auto path = result.path();
&gt; +    if (path.endsWith(&apos;/&apos;))
&gt; +        return result;
&gt; +
&gt; +    auto lastSlash = path.reverseFind(&apos;/&apos;);
&gt; +    if (lastSlash == WTF::notFound) {
&gt; +        result.setPath({ });
&gt; +        return result;
&gt; +    }
&gt; +
&gt; +    result.setPath(path.substring(0, lastSlash + 1));
&gt; +    return result;

Just do: URL(url, &quot;./&quot;). What&apos;s what service worker code does.
Also, we should this help function scopeURL or computeScopeURL or something.
&quot;containing URL&quot; is not really a nominal terminology.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395866</commentid>
    <comment_count>4</comment_count>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2018-02-02 08:36:29 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #3)
&gt; Comment on attachment 332910 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=332910&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/applicationmanifest/ApplicationManifestParser.cpp:211
&gt; &gt; +    URL result { url };
&gt; &gt; +
&gt; &gt; +    result.removeQueryAndFragmentIdentifier();
&gt; &gt; +
&gt; &gt; +    auto path = result.path();
&gt; &gt; +    if (path.endsWith(&apos;/&apos;))
&gt; &gt; +        return result;
&gt; &gt; +
&gt; &gt; +    auto lastSlash = path.reverseFind(&apos;/&apos;);
&gt; &gt; +    if (lastSlash == WTF::notFound) {
&gt; &gt; +        result.setPath({ });
&gt; &gt; +        return result;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    result.setPath(path.substring(0, lastSlash + 1));
&gt; &gt; +    return result;
&gt; 
&gt; Just do: URL(url, &quot;./&quot;). What&apos;s what service worker code does.

That&apos;s a lot cleaner. I&apos;ll use that instead.

&gt; Also, we should this help function scopeURL or computeScopeURL or something.
&gt; &quot;containing URL&quot; is not really a nominal terminology.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395870</commentid>
    <comment_count>5</comment_count>
      <attachid>332973</attachid>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2018-02-02 08:41:26 -0800</bug_when>
    <thetext>Created attachment 332973
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395996</commentid>
    <comment_count>6</comment_count>
      <attachid>332973</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-02-02 14:30:03 -0800</bug_when>
    <thetext>Comment on attachment 332973
Patch v2

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

&gt; Source/WebCore/Modules/applicationmanifest/ApplicationManifestParser.cpp:198
&gt; -        return { };
&gt; +        return { startURL, &quot;./&quot; };

Hm... I would have preferred to have a helper function like you did earlier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396000</commentid>
    <comment_count>7</comment_count>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2018-02-02 14:39:24 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #6)
&gt; Comment on attachment 332973 [details]
&gt; Patch v2
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=332973&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/applicationmanifest/ApplicationManifestParser.cpp:198
&gt; &gt; -        return { };
&gt; &gt; +        return { startURL, &quot;./&quot; };
&gt; 
&gt; Hm... I would have preferred to have a helper function like you did earlier.

I&apos;m open to adding back a helper function. How does `void defaultScopeURL(const URL&amp; startURL)` sound?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396017</commentid>
    <comment_count>8</comment_count>
      <attachid>332973</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-02-02 15:02:36 -0800</bug_when>
    <thetext>Comment on attachment 332973
Patch v2

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

&gt;&gt;&gt; Source/WebCore/Modules/applicationmanifest/ApplicationManifestParser.cpp:198
&gt;&gt;&gt; +        return { startURL, &quot;./&quot; };
&gt;&gt; 
&gt;&gt; Hm... I would have preferred to have a helper function like you did earlier.
&gt; 
&gt; I&apos;m open to adding back a helper function. How does `void defaultScopeURL(const URL&amp; startURL)` sound?

Sure that sounds good. Alternatively, you could just compute it once at the top of the function
as defaultScopeURL local variable since this isn&apos;t a perf sensitive code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396032</commentid>
    <comment_count>9</comment_count>
      <attachid>333011</attachid>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2018-02-02 15:47:48 -0800</bug_when>
    <thetext>Created attachment 333011
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396059</commentid>
    <comment_count>10</comment_count>
      <attachid>333011</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-02 16:50:00 -0800</bug_when>
    <thetext>Comment on attachment 333011
Patch for landing

Clearing flags on attachment: 333011

Committed r228036: &lt;https://trac.webkit.org/changeset/228036&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396060</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-02 16:50:02 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332910</attachid>
            <date>2018-02-01 14:17:17 -0800</date>
            <delta_ts>2018-02-02 08:41:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>scope.patch</filename>
            <type>text/plain</type>
            <size>8705</size>
            <attacher name="David Quesada">david_quesada</attacher>
            
              <data encoding="base64">Y29tbWl0IDEwODgwMGIyY2JhMjI0NDNhYzNjNWZlOTRjOGI1ZGU5Y2IyY2QwODcKQXV0aG9yOiBE
YXZpZCBRdWVzYWRhIDxkYXZpZF9xdWVzYWRhQGFwcGxlLmNvbT4KRGF0ZTogICBUaHUgRmViIDEg
MTQ6MTI6NTYgMjAxOCAtMDgwMAoKICAgIFdlYkFwcE1hbmlmZXN0IHNjb3BlIHNob3VsZCBkZWZh
dWx0IHRvIHRoZSBjb250YWluaW5nIGRpcmVjdG9yeSBvZiBzdGFydF91cmwgaWYgJ3Njb3BlJyBp
cyBub3Qgc3BlY2lmaWVkCiAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgyMzYzCiAgICByZGFyOi8vcHJvYmxlbS8zNzA5MzQ5OAogICAgCiAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KICAgIAogICAgU291cmNlL1dlYkNvcmU6CiAgICAKICAgIElmIGFu
IGFwcCBtYW5pZmVzdCBkb2Vzbid0IHNwZWNpZnkgYSBzY29wZSwgd2Ugc2hvdWxkIGRlZmF1bHQg
dG8gdGhlICJwYXJlbnQgZGlyZWN0b3J5IiBvZgogICAgdGhlIHN0YXJ0IFVSTCwgcmF0aGVyIHRo
YW4gbGVhdmluZyB0aGUgYXBwIHVuYm91bmRlZC4gVGhpcyBpcyBtb3JlIHJlYXNvbmFibGUgdGhh
biB1c2luZyB0aGUKICAgIGVudGlyZSBpbnRlcm5ldCBhcyB0aGUgYXBwIHNjb3BlLgogICAgCiAg
ICBObyBuZXcgdGVzdHMsIHVwZGF0ZXMgdG8gdGhlIGV4aXN0aW5nIHRlc3RzIHZlcmlmeSB0aGUg
bmV3IGJlaGF2aW9yLgogICAgCiAgICAqIE1vZHVsZXMvYXBwbGljYXRpb25tYW5pZmVzdC9BcHBs
aWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNwcDoKICAgIChXZWJDb3JlOjpjb250YWluaW5nVVJMKToK
ICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyOjpwYXJzZVNjb3BlKToKICAg
IAogICAgVG9vbHM6CiAgICAKICAgIFVwZGF0ZWQgQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlclRl
c3RzIHRvIGFjY291bnQgZm9yIHRoZSBuZXcgZGVmYXVsdCBzY29wZSBiZWhhdmlvci4KICAgIAog
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQXBwbGljYXRpb25NYW5pZmVzdFBhcnNl
ci5jcHA6CiAgICAoYXNzZXJ0TWFuaWZlc3RIYXNEZWZhdWx0VmFsdWVzKToKICAgIChURVNUX0Yp
OgoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCAyZDAwNmU0ZGY1Zi4uOTRkYTIxYTM5NDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMSBAQAorMjAxOC0wMi0wMSAgRGF2aWQgUXVlc2FkYSAgPGRhdmlkX3F1ZXNhZGFA
YXBwbGUuY29tPgorCisgICAgICAgIFdlYkFwcE1hbmlmZXN0IHNjb3BlIHNob3VsZCBkZWZhdWx0
IHRvIHRoZSBjb250YWluaW5nIGRpcmVjdG9yeSBvZiBzdGFydF91cmwgaWYgJ3Njb3BlJyBpcyBu
b3Qgc3BlY2lmaWVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODIzNjMKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMzcwOTM0OTgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiBhbiBhcHAgbWFuaWZlc3Qg
ZG9lc24ndCBzcGVjaWZ5IGEgc2NvcGUsIHdlIHNob3VsZCBkZWZhdWx0IHRvIHRoZSAicGFyZW50
IGRpcmVjdG9yeSIgb2YKKyAgICAgICAgdGhlIHN0YXJ0IFVSTCwgcmF0aGVyIHRoYW4gbGVhdmlu
ZyB0aGUgYXBwIHVuYm91bmRlZC4gVGhpcyBpcyBtb3JlIHJlYXNvbmFibGUgdGhhbiB1c2luZyB0
aGUKKyAgICAgICAgZW50aXJlIGludGVybmV0IGFzIHRoZSBhcHAgc2NvcGUuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCB1cGRhdGVzIHRvIHRoZSBleGlzdGluZyB0ZXN0cyB2ZXJpZnkgdGhlIG5l
dyBiZWhhdmlvci4KKworICAgICAgICAqIE1vZHVsZXMvYXBwbGljYXRpb25tYW5pZmVzdC9BcHBs
aWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRhaW5pbmdV
UkwpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25NYW5pZmVzdFBhcnNlcjo6cGFyc2VT
Y29wZSk6CisKIDIwMTgtMDEtMzEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFw
cGxlLmNvbT4KIAogICAgICAgICBCaXRtYXBJbWFnZTo6ZHJhd1BhdHRlcm4oKSBtYXkgbm90IGRy
YXcgYSBjb21wbGV0ZSBmcmFtZSBldmVuIGFmdGVyIGFsbCB0aGUgZGF0YSBpcyByZWNlaXZlZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsaWNhdGlvbm1hbmlmZXN0L0Fw
cGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBs
aWNhdGlvbm1hbmlmZXN0L0FwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwCmluZGV4IGYyMjg0
MmIxOTI4Li5mYTU1NzVkNGM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsaWNhdGlvbm1hbmlmZXN0L0FwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGljYXRpb25tYW5pZmVzdC9BcHBsaWNhdGlvbk1hbmlm
ZXN0UGFyc2VyLmNwcApAQCAtMTkxLDM3ICsxOTEsNTcgQEAgc3RhdGljIGJvb2wgaXNJblNjb3Bl
KGNvbnN0IFVSTCYgc2NvcGVVUkwsIGNvbnN0IFVSTCYgdGFyZ2V0VVJMKQogICAgIHJldHVybiBm
YWxzZTsKIH0KIAorc3RhdGljIFVSTCBjb250YWluaW5nVVJMKGNvbnN0IFVSTCYgdXJsKQorewor
ICAgIFVSTCByZXN1bHQgeyB1cmwgfTsKKworICAgIHJlc3VsdC5yZW1vdmVRdWVyeUFuZEZyYWdt
ZW50SWRlbnRpZmllcigpOworCisgICAgYXV0byBwYXRoID0gcmVzdWx0LnBhdGgoKTsKKyAgICBp
ZiAocGF0aC5lbmRzV2l0aCgnLycpKQorICAgICAgICByZXR1cm4gcmVzdWx0OworCisgICAgYXV0
byBsYXN0U2xhc2ggPSBwYXRoLnJldmVyc2VGaW5kKCcvJyk7CisgICAgaWYgKGxhc3RTbGFzaCA9
PSBXVEY6Om5vdEZvdW5kKSB7CisgICAgICAgIHJlc3VsdC5zZXRQYXRoKHsgfSk7CisgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcmVzdWx0LnNldFBhdGgocGF0aC5zdWJzdHJp
bmcoMCwgbGFzdFNsYXNoICsgMSkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIFVSTCBBcHBs
aWNhdGlvbk1hbmlmZXN0UGFyc2VyOjpwYXJzZVNjb3BlKGNvbnN0IEpTT046Ok9iamVjdCYgbWFu
aWZlc3QsIGNvbnN0IFVSTCYgZG9jdW1lbnRVUkwsIGNvbnN0IFVSTCYgc3RhcnRVUkwpCiB7CiAg
ICAgUmVmUHRyPEpTT046OlZhbHVlPiB2YWx1ZTsKICAgICBpZiAoIW1hbmlmZXN0LmdldFZhbHVl
KCJzY29wZSIsIHZhbHVlKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIGNv
bnRhaW5pbmdVUkwoc3RhcnRVUkwpOwogCiAgICAgU3RyaW5nIHN0cmluZ1ZhbHVlOwogICAgIGlm
ICghdmFsdWUtPmFzU3RyaW5nKHN0cmluZ1ZhbHVlKSkgewogICAgICAgICBsb2dNYW5pZmVzdFBy
b3BlcnR5Tm90QVN0cmluZyhBU0NJSUxpdGVyYWwoInNjb3BlIikpOwotICAgICAgICByZXR1cm4g
eyB9OworICAgICAgICByZXR1cm4gY29udGFpbmluZ1VSTChzdGFydFVSTCk7CiAgICAgfQogCiAg
ICAgaWYgKHN0cmluZ1ZhbHVlLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAg
ICAgcmV0dXJuIGNvbnRhaW5pbmdVUkwoc3RhcnRVUkwpOwogCiAgICAgVVJMIHNjb3BlVVJMKG1f
bWFuaWZlc3RVUkwsIHN0cmluZ1ZhbHVlKTsKICAgICBpZiAoIXNjb3BlVVJMLmlzVmFsaWQoKSkg
ewogICAgICAgICBsb2dNYW5pZmVzdFByb3BlcnR5SW52YWxpZFVSTChBU0NJSUxpdGVyYWwoInNj
b3BlIikpOwotICAgICAgICByZXR1cm4geyB9OworICAgICAgICByZXR1cm4gY29udGFpbmluZ1VS
TChzdGFydFVSTCk7CiAgICAgfQogCiAgICAgaWYgKCFwcm90b2NvbEhvc3RBbmRQb3J0QXJlRXF1
YWwoc2NvcGVVUkwsIGRvY3VtZW50VVJMKSkgewogICAgICAgICBhdXRvIHNjb3BlVVJMT3JpZ2lu
ID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShzY29wZVVSTCk7CiAgICAgICAgIGF1dG8gZG9jdW1l
bnRPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKGRvY3VtZW50VVJMKTsKICAgICAgICAg
bG9nRGV2ZWxvcGVyV2FybmluZyhBU0NJSUxpdGVyYWwoIlRoZSBzY29wZSdzIG9yaWdpbiBvZiBc
IiIpICsgc2NvcGVVUkxPcmlnaW4tPnRvU3RyaW5nKCkgKyBBU0NJSUxpdGVyYWwoIlwiIGlzIGRp
ZmZlcmVudCBmcm9tIHRoZSBkb2N1bWVudCdzIG9yaWdpbiBvZiBcIiIpICsgZG9jdW1lbnRPcmln
aW4tPnRvU3RyaW5nKCkgKyBBU0NJSUxpdGVyYWwoIlwiLiIpKTsKLSAgICAgICAgcmV0dXJuIHsg
fTsKKyAgICAgICAgcmV0dXJuIGNvbnRhaW5pbmdVUkwoc3RhcnRVUkwpOwogICAgIH0KIAogICAg
IGlmICghaXNJblNjb3BlKHNjb3BlVVJMLCBzdGFydFVSTCkpIHsKICAgICAgICAgbG9nRGV2ZWxv
cGVyV2FybmluZyhBU0NJSUxpdGVyYWwoIlRoZSBzdGFydCBVUkwgaXMgbm90IHdpdGhpbiBzY29w
ZSBvZiB0aGUgcHJvdmlkZWQgc2NvcGUgVVJMLiIpKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAg
ICAgICAgcmV0dXJuIGNvbnRhaW5pbmdVUkwoc3RhcnRVUkwpOwogICAgIH0KIAogICAgIHJldHVy
biBzY29wZVVSTDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCAzMzAyMjkwMzEzZC4uNjdlOGQ1ZTRhNmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0wMi0wMSAg
RGF2aWQgUXVlc2FkYSAgPGRhdmlkX3F1ZXNhZGFAYXBwbGUuY29tPgorCisgICAgICAgIFdlYkFw
cE1hbmlmZXN0IHNjb3BlIHNob3VsZCBkZWZhdWx0IHRvIHRoZSBjb250YWluaW5nIGRpcmVjdG9y
eSBvZiBzdGFydF91cmwgaWYgJ3Njb3BlJyBpcyBub3Qgc3BlY2lmaWVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODIzNjMKKyAgICAgICAgcmRhcjov
L3Byb2JsZW0vMzcwOTM0OTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVcGRhdGVkIEFwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXJUZXN0cyB0byBhY2Nv
dW50IGZvciB0aGUgbmV3IGRlZmF1bHQgc2NvcGUgYmVoYXZpb3IuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlci5jcHA6Cisg
ICAgICAgIChhc3NlcnRNYW5pZmVzdEhhc0RlZmF1bHRWYWx1ZXMpOgorICAgICAgICAoVEVTVF9G
KToKKwogMjAxOC0wMS0zMSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIyNzg3NS4KZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9BcHBsaWNhdGlvbk1hbmlmZXN0
UGFyc2VyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9BcHBsaWNhdGlv
bk1hbmlmZXN0UGFyc2VyLmNwcAppbmRleCAwYWMzNGMxYjQxYS4uMjYxNDMzZDU4NDkgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9BcHBsaWNhdGlvbk1hbmlm
ZXN0UGFyc2VyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQXBw
bGljYXRpb25NYW5pZmVzdFBhcnNlci5jcHAKQEAgLTEzNSw4ICsxMzUsOCBAQCBzdGF0aWMgdm9p
ZCBhc3NlcnRNYW5pZmVzdEhhc0RlZmF1bHRWYWx1ZXMoY29uc3QgVVJMJiBtYW5pZmVzdFVSTCwg
Y29uc3QgVVJMJiBkbwogICAgIEVYUEVDVF9UUlVFKG1hbmlmZXN0Lm5hbWUuaXNOdWxsKCkpOwog
ICAgIEVYUEVDVF9UUlVFKG1hbmlmZXN0LnNob3J0TmFtZS5pc051bGwoKSk7CiAgICAgRVhQRUNU
X1RSVUUobWFuaWZlc3QuZGVzY3JpcHRpb24uaXNOdWxsKCkpOwotICAgIEVYUEVDVF9UUlVFKG1h
bmlmZXN0LnNjb3BlLmlzRW1wdHkoKSk7Ci0gICAgRVhQRUNUX1NUUkVRKG1hbmlmZXN0LnN0YXJ0
VVJMLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIGRvY3VtZW50VVJMLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiaHR0cHM6Ly9leGFtcGxlLmNvbS8iLCBtYW5pZmVz
dC5zY29wZS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoZG9jdW1l
bnRVUkwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbWFuaWZlc3Quc3RhcnRVUkwuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7CiB9CiAKIFRFU1RfRihBcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyVGVz
dCwgRGVmYXVsdE1hbmlmZXN0KQpAQCAtMjQ3LDI3ICsyNDcsMzIgQEAgVEVTVF9GKEFwcGxpY2F0
aW9uTWFuaWZlc3RQYXJzZXJUZXN0LCBTaG9ydE5hbWUpCiAKIFRFU1RfRihBcHBsaWNhdGlvbk1h
bmlmZXN0UGFyc2VyVGVzdCwgU2NvcGUpCiB7Ci0gICAgdGVzdFNjb3BlKCIxMjMiLCBTdHJpbmco
KSk7Ci0gICAgdGVzdFNjb3BlKCJudWxsIiwgU3RyaW5nKCkpOwotICAgIHRlc3RTY29wZSgidHJ1
ZSIsIFN0cmluZygpKTsKLSAgICB0ZXN0U2NvcGUoInsgfSIsIFN0cmluZygpKTsKLSAgICB0ZXN0
U2NvcGUoIlsgXSIsIFN0cmluZygpKTsKLSAgICB0ZXN0U2NvcGUoIlwiXCIiLCBTdHJpbmcoKSk7
Ci0KLSAgICB0ZXN0U2NvcGUoIlwiaHR0cDo/XCIiLCBTdHJpbmcoKSk7Ci0KLSAgICAvLyBJZiBz
Y29wZSBVUkwgaXMgbm90IHNhbWUgb3JpZ2luIGFzIGRvY3VtZW50IFVSTCwgcmV0dXJuIHVuZGVm
aW5lZC4KKyAgICAvLyBJZiB0aGUgc2NvcGUgaXMgbm90IGEgc3RyaW5nIG9yIG5vdCBhIHZhbGlk
IFVSTCwgcmV0dXJuIHRoZSBkZWZhdWx0IHNjb3BlICh0aGUgcGFyZW50IHBhdGggb2YgdGhlIHN0
YXJ0IFVSTCkuCisgICAgbV9kb2N1bWVudFVSTCA9IHsgeyB9LCAiaHR0cHM6Ly9leGFtcGxlLmNv
bS9hL3BhZ2U/cXVlcnlQYXJhbT12YWx1ZSNmcmFnbWVudCIgfTsKKyAgICBtX21hbmlmZXN0VVJM
ID0geyB7IH0sICJodHRwczovL2V4YW1wbGUuY29tL21hbmlmZXN0Lmpzb24iIH07CisgICAgdGVz
dFNjb3BlKCIxMjMiLCAiaHR0cHM6Ly9leGFtcGxlLmNvbS9hLyIpOworICAgIHRlc3RTY29wZSgi
bnVsbCIsICJodHRwczovL2V4YW1wbGUuY29tL2EvIik7CisgICAgdGVzdFNjb3BlKCJ0cnVlIiwg
Imh0dHBzOi8vZXhhbXBsZS5jb20vYS8iKTsKKyAgICB0ZXN0U2NvcGUoInsgfSIsICJodHRwczov
L2V4YW1wbGUuY29tL2EvIik7CisgICAgdGVzdFNjb3BlKCJbIF0iLCAiaHR0cHM6Ly9leGFtcGxl
LmNvbS9hLyIpOworICAgIHRlc3RTY29wZSgiXCJcIiIsICJodHRwczovL2V4YW1wbGUuY29tL2Ev
Iik7CisgICAgdGVzdFNjb3BlKCJcImh0dHA6P1wiIiwgImh0dHBzOi8vZXhhbXBsZS5jb20vYS8i
KTsKKworICAgIG1fZG9jdW1lbnRVUkwgPSB7IHsgfSwgImh0dHBzOi8vZXhhbXBsZS5jb20vYS9w
YWdlRW5kaW5nV2l0aFNsYXNoLyIgfTsKKyAgICB0ZXN0U2NvcGUoIm51bGwiLCAiaHR0cHM6Ly9l
eGFtcGxlLmNvbS9hL3BhZ2VFbmRpbmdXaXRoU2xhc2gvIik7CisKKyAgICAvLyBJZiBzY29wZSBV
UkwgaXMgbm90IHNhbWUgb3JpZ2luIGFzIGRvY3VtZW50IFVSTCwgcmV0dXJuIHRoZSBkZWZhdWx0
IHNjb3BlLgogICAgIG1fZG9jdW1lbnRVUkwgPSB7IHsgfSwgImh0dHBzOi8vZXhhbXBsZS5jb20v
aG9tZSIgfTsKICAgICBtX21hbmlmZXN0VVJMID0geyB7IH0sICJodHRwczovL290aGVyLXNpdGUu
Y29tL21hbmlmZXN0Lmpzb24iIH07Ci0gICAgdGVzdFNjb3BlKCJcImh0dHBzOi8vb3RoZXItc2l0
ZS5jb20vc29tZS1zY29wZVwiIiwgU3RyaW5nKCkpOworICAgIHRlc3RTY29wZSgiXCJodHRwczov
L290aGVyLXNpdGUuY29tL3NvbWUtc2NvcGVcIiIsICJodHRwczovL2V4YW1wbGUuY29tLyIpOwog
CiAgICAgbV9kb2N1bWVudFVSTCA9IHsgeyB9LCAiaHR0cHM6Ly9leGFtcGxlLmNvbS9hcHAvaG9t
ZSIgfTsKICAgICBtX21hbmlmZXN0VVJMID0geyB7IH0sICJodHRwczovL2V4YW1wbGUuY29tL2Fw
cC9tYW5pZmVzdC5qc29uIiB9OwogCi0gICAgLy8gSWYgc3RhcnQgVVJMIGlzIG5vdCB3aXRoaW4g
c2NvcGUgb2Ygc2NvcGUgVVJMLCByZXR1cm4gdW5kZWZpbmVkCi0gICAgdGVzdFNjb3BlKCJcImh0
dHBzOi8vZXhhbXBsZS5jb20vc3ViZGlyZWN0b3J5XCIiLCBTdHJpbmcoKSk7CisgICAgLy8gSWYg
c3RhcnQgVVJMIGlzIG5vdCB3aXRoaW4gc2NvcGUgb2Ygc2NvcGUgVVJMLCByZXR1cm4gdGhlIGRl
ZmF1bHQgc2NvcGUuCisgICAgdGVzdFNjb3BlKCJcImh0dHBzOi8vZXhhbXBsZS5jb20vc3ViZGly
ZWN0b3J5XCIiLCAiaHR0cHM6Ly9leGFtcGxlLmNvbS9hcHAvIik7CiAgICAgdGVzdFNjb3BlKCJc
Imh0dHBzOi8vZXhhbXBsZS5jb20vYXBwXCIiLCAiaHR0cHM6Ly9leGFtcGxlLmNvbS9hcHAiKTsK
LSAgICB0ZXN0U2NvcGUoIlwiaHR0cHM6Ly9leGFtcGxlLmNvbS9BUFBcIiIsIFN0cmluZygpKTsK
KyAgICB0ZXN0U2NvcGUoIlwiaHR0cHM6Ly9leGFtcGxlLmNvbS9BUFBcIiIsICJodHRwczovL2V4
YW1wbGUuY29tL2FwcC8iKTsKICAgICB0ZXN0U2NvcGUoIlwiaHR0cHM6Ly9leGFtcGxlLmNvbS9h
XCIiLCAiaHR0cHM6Ly9leGFtcGxlLmNvbS9hIik7CiAKICAgICBtX2RvY3VtZW50VVJMID0geyB7
IH0sICJodHRwczovL2V4YW1wbGUuY29tL2EvYi9jL2luZGV4IiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332973</attachid>
            <date>2018-02-02 08:41:26 -0800</date>
            <delta_ts>2018-02-02 15:47:48 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>scope2.patch</filename>
            <type>text/plain</type>
            <size>8108</size>
            <attacher name="David Quesada">david_quesada</attacher>
            
              <data encoding="base64">Y29tbWl0IDhiZGI3MDkxZTFkMWNmZmU1YzdkZjgyNDU4M2RkM2NiNWMxMDhiMDEKQXV0aG9yOiBE
YXZpZCBRdWVzYWRhIDxkYXZpZF9xdWVzYWRhQGFwcGxlLmNvbT4KRGF0ZTogICBUaHUgRmViIDEg
MTQ6MTI6NTYgMjAxOCAtMDgwMAoKICAgIFdlYkFwcE1hbmlmZXN0IHNjb3BlIHNob3VsZCBkZWZh
dWx0IHRvIHRoZSBjb250YWluaW5nIGRpcmVjdG9yeSBvZiBzdGFydF91cmwgaWYgJ3Njb3BlJyBp
cyBub3Qgc3BlY2lmaWVkCiAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgyMzYzCiAgICByZGFyOi8vcHJvYmxlbS8zNzA5MzQ5OAogICAgCiAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KICAgIAogICAgU291cmNlL1dlYkNvcmU6CiAgICAKICAgIElmIGFu
IGFwcCBtYW5pZmVzdCBkb2Vzbid0IHNwZWNpZnkgYSBzY29wZSwgd2Ugc2hvdWxkIGRlZmF1bHQg
dG8gdGhlICJwYXJlbnQgZGlyZWN0b3J5IiBvZgogICAgdGhlIHN0YXJ0IFVSTCwgcmF0aGVyIHRo
YW4gbGVhdmluZyB0aGUgYXBwIHVuYm91bmRlZC4gVGhpcyBpcyBtb3JlIHJlYXNvbmFibGUgdGhh
biB1c2luZyB0aGUKICAgIGVudGlyZSBpbnRlcm5ldCBhcyB0aGUgYXBwIHNjb3BlLgogICAgCiAg
ICBObyBuZXcgdGVzdHMsIHVwZGF0ZXMgdG8gdGhlIGV4aXN0aW5nIHRlc3RzIHZlcmlmeSB0aGUg
bmV3IGJlaGF2aW9yLgogICAgCiAgICAqIE1vZHVsZXMvYXBwbGljYXRpb25tYW5pZmVzdC9BcHBs
aWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNwcDoKICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbk1hbmlm
ZXN0UGFyc2VyOjpwYXJzZVNjb3BlKToKICAgIAogICAgVG9vbHM6CiAgICAKICAgIFVwZGF0ZWQg
QXBwbGljYXRpb25NYW5pZmVzdFBhcnNlclRlc3RzIHRvIGFjY291bnQgZm9yIHRoZSBuZXcgZGVm
YXVsdCBzY29wZSBiZWhhdmlvci4KICAgIAogICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlci5jcHA6CiAgICAoYXNzZXJ0TWFuaWZlc3RIYXNE
ZWZhdWx0VmFsdWVzKToKICAgIChURVNUX0YpOgoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3NTVkNTZhNDNkYi4u
MTNhZjI4MWY0MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxOC0wMi0wMSAgRGF2
aWQgUXVlc2FkYSAgPGRhdmlkX3F1ZXNhZGFAYXBwbGUuY29tPgorCisgICAgICAgIFdlYkFwcE1h
bmlmZXN0IHNjb3BlIHNob3VsZCBkZWZhdWx0IHRvIHRoZSBjb250YWluaW5nIGRpcmVjdG9yeSBv
ZiBzdGFydF91cmwgaWYgJ3Njb3BlJyBpcyBub3Qgc3BlY2lmaWVkCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODIzNjMKKyAgICAgICAgcmRhcjovL3By
b2JsZW0vMzcwOTM0OTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJZiBhbiBhcHAgbWFuaWZlc3QgZG9lc24ndCBzcGVjaWZ5IGEgc2NvcGUsIHdlIHNo
b3VsZCBkZWZhdWx0IHRvIHRoZSAicGFyZW50IGRpcmVjdG9yeSIgb2YKKyAgICAgICAgdGhlIHN0
YXJ0IFVSTCwgcmF0aGVyIHRoYW4gbGVhdmluZyB0aGUgYXBwIHVuYm91bmRlZC4gVGhpcyBpcyBt
b3JlIHJlYXNvbmFibGUgdGhhbiB1c2luZyB0aGUKKyAgICAgICAgZW50aXJlIGludGVybmV0IGFz
IHRoZSBhcHAgc2NvcGUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1cGRhdGVzIHRvIHRoZSBl
eGlzdGluZyB0ZXN0cyB2ZXJpZnkgdGhlIG5ldyBiZWhhdmlvci4KKworICAgICAgICAqIE1vZHVs
ZXMvYXBwbGljYXRpb25tYW5pZmVzdC9BcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXI6OnBhcnNlU2NvcGUpOgor
CiAyMDE4LTAyLTAyICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAg
ICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gVHVybiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXBhbmVsIGFuZCBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQgYmFjayBvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsaWNh
dGlvbm1hbmlmZXN0L0FwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsaWNhdGlvbm1hbmlmZXN0L0FwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIu
Y3BwCmluZGV4IGYyMjg0MmIxOTI4Li4zOTAxNThlODkzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsaWNhdGlvbm1hbmlmZXN0L0FwcGxpY2F0aW9uTWFuaWZlc3RQYXJz
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGljYXRpb25tYW5pZmVzdC9B
cHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNwcApAQCAtMTk1LDMzICsxOTUsMzMgQEAgVVJMIEFw
cGxpY2F0aW9uTWFuaWZlc3RQYXJzZXI6OnBhcnNlU2NvcGUoY29uc3QgSlNPTjo6T2JqZWN0JiBt
YW5pZmVzdCwgY29uc3QgVVIKIHsKICAgICBSZWZQdHI8SlNPTjo6VmFsdWU+IHZhbHVlOwogICAg
IGlmICghbWFuaWZlc3QuZ2V0VmFsdWUoInNjb3BlIiwgdmFsdWUpKQotICAgICAgICByZXR1cm4g
eyB9OworICAgICAgICByZXR1cm4geyBzdGFydFVSTCwgIi4vIiB9OwogCiAgICAgU3RyaW5nIHN0
cmluZ1ZhbHVlOwogICAgIGlmICghdmFsdWUtPmFzU3RyaW5nKHN0cmluZ1ZhbHVlKSkgewogICAg
ICAgICBsb2dNYW5pZmVzdFByb3BlcnR5Tm90QVN0cmluZyhBU0NJSUxpdGVyYWwoInNjb3BlIikp
OwotICAgICAgICByZXR1cm4geyB9OworICAgICAgICByZXR1cm4geyBzdGFydFVSTCwgIi4vIiB9
OwogICAgIH0KIAogICAgIGlmIChzdHJpbmdWYWx1ZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVy
biB7IH07CisgICAgICAgIHJldHVybiB7IHN0YXJ0VVJMLCAiLi8iIH07CiAKICAgICBVUkwgc2Nv
cGVVUkwobV9tYW5pZmVzdFVSTCwgc3RyaW5nVmFsdWUpOwogICAgIGlmICghc2NvcGVVUkwuaXNW
YWxpZCgpKSB7CiAgICAgICAgIGxvZ01hbmlmZXN0UHJvcGVydHlJbnZhbGlkVVJMKEFTQ0lJTGl0
ZXJhbCgic2NvcGUiKSk7Ci0gICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVybiB7IHN0
YXJ0VVJMLCAiLi8iIH07CiAgICAgfQogCiAgICAgaWYgKCFwcm90b2NvbEhvc3RBbmRQb3J0QXJl
RXF1YWwoc2NvcGVVUkwsIGRvY3VtZW50VVJMKSkgewogICAgICAgICBhdXRvIHNjb3BlVVJMT3Jp
Z2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShzY29wZVVSTCk7CiAgICAgICAgIGF1dG8gZG9j
dW1lbnRPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKGRvY3VtZW50VVJMKTsKICAgICAg
ICAgbG9nRGV2ZWxvcGVyV2FybmluZyhBU0NJSUxpdGVyYWwoIlRoZSBzY29wZSdzIG9yaWdpbiBv
ZiBcIiIpICsgc2NvcGVVUkxPcmlnaW4tPnRvU3RyaW5nKCkgKyBBU0NJSUxpdGVyYWwoIlwiIGlz
IGRpZmZlcmVudCBmcm9tIHRoZSBkb2N1bWVudCdzIG9yaWdpbiBvZiBcIiIpICsgZG9jdW1lbnRP
cmlnaW4tPnRvU3RyaW5nKCkgKyBBU0NJSUxpdGVyYWwoIlwiLiIpKTsKLSAgICAgICAgcmV0dXJu
IHsgfTsKKyAgICAgICAgcmV0dXJuIHsgc3RhcnRVUkwsICIuLyIgfTsKICAgICB9CiAKICAgICBp
ZiAoIWlzSW5TY29wZShzY29wZVVSTCwgc3RhcnRVUkwpKSB7CiAgICAgICAgIGxvZ0RldmVsb3Bl
cldhcm5pbmcoQVNDSUlMaXRlcmFsKCJUaGUgc3RhcnQgVVJMIGlzIG5vdCB3aXRoaW4gc2NvcGUg
b2YgdGhlIHByb3ZpZGVkIHNjb3BlIFVSTC4iKSk7Ci0gICAgICAgIHJldHVybiB7IH07CisgICAg
ICAgIHJldHVybiB7IHN0YXJ0VVJMLCAiLi8iIH07CiAgICAgfQogCiAgICAgcmV0dXJuIHNjb3Bl
VVJMOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDBhOTIyYzgwMzE2Li42OTYwNTU2NDNlNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE4LTAyLTAxICBEYXZpZCBR
dWVzYWRhICA8ZGF2aWRfcXVlc2FkYUBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViQXBwTWFuaWZl
c3Qgc2NvcGUgc2hvdWxkIGRlZmF1bHQgdG8gdGhlIGNvbnRhaW5pbmcgZGlyZWN0b3J5IG9mIHN0
YXJ0X3VybCBpZiAnc2NvcGUnIGlzIG5vdCBzcGVjaWZpZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MjM2MworICAgICAgICByZGFyOi8vcHJvYmxl
bS8zNzA5MzQ5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVwZGF0ZWQgQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlclRlc3RzIHRvIGFjY291bnQgZm9y
IHRoZSBuZXcgZGVmYXVsdCBzY29wZSBiZWhhdmlvci4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9BcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNwcDoKKyAgICAgICAg
KGFzc2VydE1hbmlmZXN0SGFzRGVmYXVsdFZhbHVlcyk6CisgICAgICAgIChURVNUX0YpOgorCiAy
MDE4LTAyLTAyICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFN0YXJ0IHRpbWVvdXQgZm9yIHRoZSBydW4tYnVpbGRib3QtdGVzdCBzY3Jp
cHQgaXMgdG9vIGFnZ3Jlc3NpdmUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9BcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9BcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNwcAppbmRleCAw
YWMzNGMxYjQxYS4uMjYxNDMzZDU4NDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9BcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlci5jcHAK
QEAgLTEzNSw4ICsxMzUsOCBAQCBzdGF0aWMgdm9pZCBhc3NlcnRNYW5pZmVzdEhhc0RlZmF1bHRW
YWx1ZXMoY29uc3QgVVJMJiBtYW5pZmVzdFVSTCwgY29uc3QgVVJMJiBkbwogICAgIEVYUEVDVF9U
UlVFKG1hbmlmZXN0Lm5hbWUuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9UUlVFKG1hbmlmZXN0LnNo
b3J0TmFtZS5pc051bGwoKSk7CiAgICAgRVhQRUNUX1RSVUUobWFuaWZlc3QuZGVzY3JpcHRpb24u
aXNOdWxsKCkpOwotICAgIEVYUEVDVF9UUlVFKG1hbmlmZXN0LnNjb3BlLmlzRW1wdHkoKSk7Ci0g
ICAgRVhQRUNUX1NUUkVRKG1hbmlmZXN0LnN0YXJ0VVJMLnN0cmluZygpLnV0ZjgoKS5kYXRhKCks
IGRvY3VtZW50VVJMLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgi
aHR0cHM6Ly9leGFtcGxlLmNvbS8iLCBtYW5pZmVzdC5zY29wZS5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoZG9jdW1lbnRVUkwuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSwgbWFuaWZlc3Quc3RhcnRVUkwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiB9CiAKIFRFU1Rf
RihBcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyVGVzdCwgRGVmYXVsdE1hbmlmZXN0KQpAQCAtMjQ3
LDI3ICsyNDcsMzIgQEAgVEVTVF9GKEFwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXJUZXN0LCBTaG9y
dE5hbWUpCiAKIFRFU1RfRihBcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyVGVzdCwgU2NvcGUpCiB7
Ci0gICAgdGVzdFNjb3BlKCIxMjMiLCBTdHJpbmcoKSk7Ci0gICAgdGVzdFNjb3BlKCJudWxsIiwg
U3RyaW5nKCkpOwotICAgIHRlc3RTY29wZSgidHJ1ZSIsIFN0cmluZygpKTsKLSAgICB0ZXN0U2Nv
cGUoInsgfSIsIFN0cmluZygpKTsKLSAgICB0ZXN0U2NvcGUoIlsgXSIsIFN0cmluZygpKTsKLSAg
ICB0ZXN0U2NvcGUoIlwiXCIiLCBTdHJpbmcoKSk7Ci0KLSAgICB0ZXN0U2NvcGUoIlwiaHR0cDo/
XCIiLCBTdHJpbmcoKSk7Ci0KLSAgICAvLyBJZiBzY29wZSBVUkwgaXMgbm90IHNhbWUgb3JpZ2lu
IGFzIGRvY3VtZW50IFVSTCwgcmV0dXJuIHVuZGVmaW5lZC4KKyAgICAvLyBJZiB0aGUgc2NvcGUg
aXMgbm90IGEgc3RyaW5nIG9yIG5vdCBhIHZhbGlkIFVSTCwgcmV0dXJuIHRoZSBkZWZhdWx0IHNj
b3BlICh0aGUgcGFyZW50IHBhdGggb2YgdGhlIHN0YXJ0IFVSTCkuCisgICAgbV9kb2N1bWVudFVS
TCA9IHsgeyB9LCAiaHR0cHM6Ly9leGFtcGxlLmNvbS9hL3BhZ2U/cXVlcnlQYXJhbT12YWx1ZSNm
cmFnbWVudCIgfTsKKyAgICBtX21hbmlmZXN0VVJMID0geyB7IH0sICJodHRwczovL2V4YW1wbGUu
Y29tL21hbmlmZXN0Lmpzb24iIH07CisgICAgdGVzdFNjb3BlKCIxMjMiLCAiaHR0cHM6Ly9leGFt
cGxlLmNvbS9hLyIpOworICAgIHRlc3RTY29wZSgibnVsbCIsICJodHRwczovL2V4YW1wbGUuY29t
L2EvIik7CisgICAgdGVzdFNjb3BlKCJ0cnVlIiwgImh0dHBzOi8vZXhhbXBsZS5jb20vYS8iKTsK
KyAgICB0ZXN0U2NvcGUoInsgfSIsICJodHRwczovL2V4YW1wbGUuY29tL2EvIik7CisgICAgdGVz
dFNjb3BlKCJbIF0iLCAiaHR0cHM6Ly9leGFtcGxlLmNvbS9hLyIpOworICAgIHRlc3RTY29wZSgi
XCJcIiIsICJodHRwczovL2V4YW1wbGUuY29tL2EvIik7CisgICAgdGVzdFNjb3BlKCJcImh0dHA6
P1wiIiwgImh0dHBzOi8vZXhhbXBsZS5jb20vYS8iKTsKKworICAgIG1fZG9jdW1lbnRVUkwgPSB7
IHsgfSwgImh0dHBzOi8vZXhhbXBsZS5jb20vYS9wYWdlRW5kaW5nV2l0aFNsYXNoLyIgfTsKKyAg
ICB0ZXN0U2NvcGUoIm51bGwiLCAiaHR0cHM6Ly9leGFtcGxlLmNvbS9hL3BhZ2VFbmRpbmdXaXRo
U2xhc2gvIik7CisKKyAgICAvLyBJZiBzY29wZSBVUkwgaXMgbm90IHNhbWUgb3JpZ2luIGFzIGRv
Y3VtZW50IFVSTCwgcmV0dXJuIHRoZSBkZWZhdWx0IHNjb3BlLgogICAgIG1fZG9jdW1lbnRVUkwg
PSB7IHsgfSwgImh0dHBzOi8vZXhhbXBsZS5jb20vaG9tZSIgfTsKICAgICBtX21hbmlmZXN0VVJM
ID0geyB7IH0sICJodHRwczovL290aGVyLXNpdGUuY29tL21hbmlmZXN0Lmpzb24iIH07Ci0gICAg
dGVzdFNjb3BlKCJcImh0dHBzOi8vb3RoZXItc2l0ZS5jb20vc29tZS1zY29wZVwiIiwgU3RyaW5n
KCkpOworICAgIHRlc3RTY29wZSgiXCJodHRwczovL290aGVyLXNpdGUuY29tL3NvbWUtc2NvcGVc
IiIsICJodHRwczovL2V4YW1wbGUuY29tLyIpOwogCiAgICAgbV9kb2N1bWVudFVSTCA9IHsgeyB9
LCAiaHR0cHM6Ly9leGFtcGxlLmNvbS9hcHAvaG9tZSIgfTsKICAgICBtX21hbmlmZXN0VVJMID0g
eyB7IH0sICJodHRwczovL2V4YW1wbGUuY29tL2FwcC9tYW5pZmVzdC5qc29uIiB9OwogCi0gICAg
Ly8gSWYgc3RhcnQgVVJMIGlzIG5vdCB3aXRoaW4gc2NvcGUgb2Ygc2NvcGUgVVJMLCByZXR1cm4g
dW5kZWZpbmVkCi0gICAgdGVzdFNjb3BlKCJcImh0dHBzOi8vZXhhbXBsZS5jb20vc3ViZGlyZWN0
b3J5XCIiLCBTdHJpbmcoKSk7CisgICAgLy8gSWYgc3RhcnQgVVJMIGlzIG5vdCB3aXRoaW4gc2Nv
cGUgb2Ygc2NvcGUgVVJMLCByZXR1cm4gdGhlIGRlZmF1bHQgc2NvcGUuCisgICAgdGVzdFNjb3Bl
KCJcImh0dHBzOi8vZXhhbXBsZS5jb20vc3ViZGlyZWN0b3J5XCIiLCAiaHR0cHM6Ly9leGFtcGxl
LmNvbS9hcHAvIik7CiAgICAgdGVzdFNjb3BlKCJcImh0dHBzOi8vZXhhbXBsZS5jb20vYXBwXCIi
LCAiaHR0cHM6Ly9leGFtcGxlLmNvbS9hcHAiKTsKLSAgICB0ZXN0U2NvcGUoIlwiaHR0cHM6Ly9l
eGFtcGxlLmNvbS9BUFBcIiIsIFN0cmluZygpKTsKKyAgICB0ZXN0U2NvcGUoIlwiaHR0cHM6Ly9l
eGFtcGxlLmNvbS9BUFBcIiIsICJodHRwczovL2V4YW1wbGUuY29tL2FwcC8iKTsKICAgICB0ZXN0
U2NvcGUoIlwiaHR0cHM6Ly9leGFtcGxlLmNvbS9hXCIiLCAiaHR0cHM6Ly9leGFtcGxlLmNvbS9h
Iik7CiAKICAgICBtX2RvY3VtZW50VVJMID0geyB7IH0sICJodHRwczovL2V4YW1wbGUuY29tL2Ev
Yi9jL2luZGV4IiB9Owo=
</data>
<flag name="review"
          id="351897"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333011</attachid>
            <date>2018-02-02 15:47:48 -0800</date>
            <delta_ts>2018-02-02 16:50:00 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>patchforlanding.patch</filename>
            <type>text/plain</type>
            <size>8221</size>
            <attacher name="David Quesada">david_quesada</attacher>
            
              <data encoding="base64">Y29tbWl0IDFmODhhM2I3NWRmM2I3MjM3MDAyYTM0MzgyY2ZiZDIzM2U2MWQ3OGYKQXV0aG9yOiBE
YXZpZCBRdWVzYWRhIDxkYXZpZF9xdWVzYWRhQGFwcGxlLmNvbT4KRGF0ZTogICBUaHUgRmViIDEg
MTQ6MTI6NTYgMjAxOCAtMDgwMAoKICAgIFdlYkFwcE1hbmlmZXN0IHNjb3BlIHNob3VsZCBkZWZh
dWx0IHRvIHRoZSBjb250YWluaW5nIGRpcmVjdG9yeSBvZiBzdGFydF91cmwgaWYgJ3Njb3BlJyBp
cyBub3Qgc3BlY2lmaWVkCiAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgyMzYzCiAgICByZGFyOi8vcHJvYmxlbS8zNzA5MzQ5OAogICAgCiAgICBSZXZpZXdlZCBi
eSBSeW9zdWtlIE5pd2EuCiAgICAKICAgIFNvdXJjZS9XZWJDb3JlOgogICAgCiAgICBJZiBhbiBh
cHAgbWFuaWZlc3QgZG9lc24ndCBzcGVjaWZ5IGEgc2NvcGUsIHdlIHNob3VsZCBkZWZhdWx0IHRv
IHRoZSAicGFyZW50IGRpcmVjdG9yeSIgb2YKICAgIHRoZSBzdGFydCBVUkwsIHJhdGhlciB0aGFu
IGxlYXZpbmcgdGhlIGFwcCB1bmJvdW5kZWQuIFRoaXMgaXMgbW9yZSByZWFzb25hYmxlIHRoYW4g
dXNpbmcgdGhlCiAgICBlbnRpcmUgaW50ZXJuZXQgYXMgdGhlIGFwcCBzY29wZS4KICAgIAogICAg
Tm8gbmV3IHRlc3RzLCB1cGRhdGVzIHRvIHRoZSBleGlzdGluZyB0ZXN0cyB2ZXJpZnkgdGhlIG5l
dyBiZWhhdmlvci4KICAgIAogICAgKiBNb2R1bGVzL2FwcGxpY2F0aW9ubWFuaWZlc3QvQXBwbGlj
YXRpb25NYW5pZmVzdFBhcnNlci5jcHA6CiAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25NYW5pZmVz
dFBhcnNlcjo6cGFyc2VTY29wZSk6CiAgICAKICAgIFRvb2xzOgogICAgCiAgICBVcGRhdGVkIEFw
cGxpY2F0aW9uTWFuaWZlc3RQYXJzZXJUZXN0cyB0byBhY2NvdW50IGZvciB0aGUgbmV3IGRlZmF1
bHQgc2NvcGUgYmVoYXZpb3IuCiAgICAKICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0FwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwOgogICAgKGFzc2VydE1hbmlmZXN0SGFzRGVm
YXVsdFZhbHVlcyk6CiAgICAoVEVTVF9GKToKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWE5ZjgyOGY0YTAuLmUz
ZWE0MTA0YjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTgtMDItMDIgIERhdmlk
IFF1ZXNhZGEgIDxkYXZpZF9xdWVzYWRhQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJBcHBNYW5p
ZmVzdCBzY29wZSBzaG91bGQgZGVmYXVsdCB0byB0aGUgY29udGFpbmluZyBkaXJlY3Rvcnkgb2Yg
c3RhcnRfdXJsIGlmICdzY29wZScgaXMgbm90IHNwZWNpZmllZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyMzYzCisgICAgICAgIHJkYXI6Ly9wcm9i
bGVtLzM3MDkzNDk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAg
ICAgIElmIGFuIGFwcCBtYW5pZmVzdCBkb2Vzbid0IHNwZWNpZnkgYSBzY29wZSwgd2Ugc2hvdWxk
IGRlZmF1bHQgdG8gdGhlICJwYXJlbnQgZGlyZWN0b3J5IiBvZgorICAgICAgICB0aGUgc3RhcnQg
VVJMLCByYXRoZXIgdGhhbiBsZWF2aW5nIHRoZSBhcHAgdW5ib3VuZGVkLiBUaGlzIGlzIG1vcmUg
cmVhc29uYWJsZSB0aGFuIHVzaW5nIHRoZQorICAgICAgICBlbnRpcmUgaW50ZXJuZXQgYXMgdGhl
IGFwcCBzY29wZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHVwZGF0ZXMgdG8gdGhlIGV4aXN0
aW5nIHRlc3RzIHZlcmlmeSB0aGUgbmV3IGJlaGF2aW9yLgorCisgICAgICAgICogTW9kdWxlcy9h
cHBsaWNhdGlvbm1hbmlmZXN0L0FwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QXBwbGljYXRpb25NYW5pZmVzdFBhcnNlcjo6cGFyc2VTY29wZSk6CisKIDIw
MTgtMDItMDIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIENs
ZWFyaW5nIGFsbCBzZXJ2aWNlIHdvcmtlciByZWdpc3RyYXRpb25zIHNob3VsZCB3YWl0IGZvciBp
bXBvcnRpbmcgc2VydmljZSB3b3JrZXIgcmVnaXN0cmF0aW9uIHRvIGZpbmlzaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsaWNhdGlvbm1hbmlmZXN0L0FwcGxpY2F0aW9u
TWFuaWZlc3RQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsaWNhdGlvbm1h
bmlmZXN0L0FwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwCmluZGV4IGYyMjg0MmIxOTI4Li4x
MjY1MzhiMTQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsaWNhdGlv
bm1hbmlmZXN0L0FwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGljYXRpb25tYW5pZmVzdC9BcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2Vy
LmNwcApAQCAtMTkzLDM1ICsxOTMsMzcgQEAgc3RhdGljIGJvb2wgaXNJblNjb3BlKGNvbnN0IFVS
TCYgc2NvcGVVUkwsIGNvbnN0IFVSTCYgdGFyZ2V0VVJMKQogCiBVUkwgQXBwbGljYXRpb25NYW5p
ZmVzdFBhcnNlcjo6cGFyc2VTY29wZShjb25zdCBKU09OOjpPYmplY3QmIG1hbmlmZXN0LCBjb25z
dCBVUkwmIGRvY3VtZW50VVJMLCBjb25zdCBVUkwmIHN0YXJ0VVJMKQogeworICAgIFVSTCBkZWZh
dWx0U2NvcGUgeyBzdGFydFVSTCwgIi4vIiB9OworCiAgICAgUmVmUHRyPEpTT046OlZhbHVlPiB2
YWx1ZTsKICAgICBpZiAoIW1hbmlmZXN0LmdldFZhbHVlKCJzY29wZSIsIHZhbHVlKSkKLSAgICAg
ICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRTY29wZTsKIAogICAgIFN0cmlu
ZyBzdHJpbmdWYWx1ZTsKICAgICBpZiAoIXZhbHVlLT5hc1N0cmluZyhzdHJpbmdWYWx1ZSkpIHsK
ICAgICAgICAgbG9nTWFuaWZlc3RQcm9wZXJ0eU5vdEFTdHJpbmcoQVNDSUlMaXRlcmFsKCJzY29w
ZSIpKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRTY29wZTsK
ICAgICB9CiAKICAgICBpZiAoc3RyaW5nVmFsdWUuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4g
eyB9OworICAgICAgICByZXR1cm4gZGVmYXVsdFNjb3BlOwogCiAgICAgVVJMIHNjb3BlVVJMKG1f
bWFuaWZlc3RVUkwsIHN0cmluZ1ZhbHVlKTsKICAgICBpZiAoIXNjb3BlVVJMLmlzVmFsaWQoKSkg
ewogICAgICAgICBsb2dNYW5pZmVzdFByb3BlcnR5SW52YWxpZFVSTChBU0NJSUxpdGVyYWwoInNj
b3BlIikpOwotICAgICAgICByZXR1cm4geyB9OworICAgICAgICByZXR1cm4gZGVmYXVsdFNjb3Bl
OwogICAgIH0KIAogICAgIGlmICghcHJvdG9jb2xIb3N0QW5kUG9ydEFyZUVxdWFsKHNjb3BlVVJM
LCBkb2N1bWVudFVSTCkpIHsKICAgICAgICAgYXV0byBzY29wZVVSTE9yaWdpbiA9IFNlY3VyaXR5
T3JpZ2luOjpjcmVhdGUoc2NvcGVVUkwpOwogICAgICAgICBhdXRvIGRvY3VtZW50T3JpZ2luID0g
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShkb2N1bWVudFVSTCk7CiAgICAgICAgIGxvZ0RldmVsb3Bl
cldhcm5pbmcoQVNDSUlMaXRlcmFsKCJUaGUgc2NvcGUncyBvcmlnaW4gb2YgXCIiKSArIHNjb3Bl
VVJMT3JpZ2luLT50b1N0cmluZygpICsgQVNDSUlMaXRlcmFsKCJcIiBpcyBkaWZmZXJlbnQgZnJv
bSB0aGUgZG9jdW1lbnQncyBvcmlnaW4gb2YgXCIiKSArIGRvY3VtZW50T3JpZ2luLT50b1N0cmlu
ZygpICsgQVNDSUlMaXRlcmFsKCJcIi4iKSk7Ci0gICAgICAgIHJldHVybiB7IH07CisgICAgICAg
IHJldHVybiBkZWZhdWx0U2NvcGU7CiAgICAgfQogCiAgICAgaWYgKCFpc0luU2NvcGUoc2NvcGVV
UkwsIHN0YXJ0VVJMKSkgewogICAgICAgICBsb2dEZXZlbG9wZXJXYXJuaW5nKEFTQ0lJTGl0ZXJh
bCgiVGhlIHN0YXJ0IFVSTCBpcyBub3Qgd2l0aGluIHNjb3BlIG9mIHRoZSBwcm92aWRlZCBzY29w
ZSBVUkwuIikpOwotICAgICAgICByZXR1cm4geyB9OworICAgICAgICByZXR1cm4gZGVmYXVsdFNj
b3BlOwogICAgIH0KIAogICAgIHJldHVybiBzY29wZVVSTDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkZDYzZGYzZTMyMy4uMjhlMzUyM2NiYjAg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxOC0wMi0wMiAgRGF2aWQgUXVlc2FkYSAgPGRhdmlkX3F1ZXNhZGFAYXBw
bGUuY29tPgorCisgICAgICAgIFdlYkFwcE1hbmlmZXN0IHNjb3BlIHNob3VsZCBkZWZhdWx0IHRv
IHRoZSBjb250YWluaW5nIGRpcmVjdG9yeSBvZiBzdGFydF91cmwgaWYgJ3Njb3BlJyBpcyBub3Qg
c3BlY2lmaWVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODIzNjMKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMzcwOTM0OTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgVXBkYXRlZCBBcHBsaWNhdGlvbk1hbmlm
ZXN0UGFyc2VyVGVzdHMgdG8gYWNjb3VudCBmb3IgdGhlIG5ldyBkZWZhdWx0IHNjb3BlIGJlaGF2
aW9yLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0FwcGxpY2F0aW9u
TWFuaWZlc3RQYXJzZXIuY3BwOgorICAgICAgICAoYXNzZXJ0TWFuaWZlc3RIYXNEZWZhdWx0VmFs
dWVzKToKKyAgICAgICAgKFRFU1RfRik6CisKIDIwMTgtMDItMDIgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIENsZWFyaW5nIGFsbCBzZXJ2aWNlIHdvcmtlciBy
ZWdpc3RyYXRpb25zIHNob3VsZCB3YWl0IGZvciBpbXBvcnRpbmcgc2VydmljZSB3b3JrZXIgcmVn
aXN0cmF0aW9uIHRvIGZpbmlzaApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0FwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0FwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwCmluZGV4IDBh
YzM0YzFiNDFhLi4yNjE0MzNkNTg0OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0FwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9BcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNwcApA
QCAtMTM1LDggKzEzNSw4IEBAIHN0YXRpYyB2b2lkIGFzc2VydE1hbmlmZXN0SGFzRGVmYXVsdFZh
bHVlcyhjb25zdCBVUkwmIG1hbmlmZXN0VVJMLCBjb25zdCBVUkwmIGRvCiAgICAgRVhQRUNUX1RS
VUUobWFuaWZlc3QubmFtZS5pc051bGwoKSk7CiAgICAgRVhQRUNUX1RSVUUobWFuaWZlc3Quc2hv
cnROYW1lLmlzTnVsbCgpKTsKICAgICBFWFBFQ1RfVFJVRShtYW5pZmVzdC5kZXNjcmlwdGlvbi5p
c051bGwoKSk7Ci0gICAgRVhQRUNUX1RSVUUobWFuaWZlc3Quc2NvcGUuaXNFbXB0eSgpKTsKLSAg
ICBFWFBFQ1RfU1RSRVEobWFuaWZlc3Quc3RhcnRVUkwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwg
ZG9jdW1lbnRVUkwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJo
dHRwczovL2V4YW1wbGUuY29tLyIsIG1hbmlmZXN0LnNjb3BlLnN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOworICAgIEVYUEVDVF9TVFJFUShkb2N1bWVudFVSTC5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
LCBtYW5pZmVzdC5zdGFydFVSTC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIH0KIAogVEVTVF9G
KEFwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXJUZXN0LCBEZWZhdWx0TWFuaWZlc3QpCkBAIC0yNDcs
MjcgKzI0NywzMiBAQCBURVNUX0YoQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlclRlc3QsIFNob3J0
TmFtZSkKIAogVEVTVF9GKEFwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXJUZXN0LCBTY29wZSkKIHsK
LSAgICB0ZXN0U2NvcGUoIjEyMyIsIFN0cmluZygpKTsKLSAgICB0ZXN0U2NvcGUoIm51bGwiLCBT
dHJpbmcoKSk7Ci0gICAgdGVzdFNjb3BlKCJ0cnVlIiwgU3RyaW5nKCkpOwotICAgIHRlc3RTY29w
ZSgieyB9IiwgU3RyaW5nKCkpOwotICAgIHRlc3RTY29wZSgiWyBdIiwgU3RyaW5nKCkpOwotICAg
IHRlc3RTY29wZSgiXCJcIiIsIFN0cmluZygpKTsKLQotICAgIHRlc3RTY29wZSgiXCJodHRwOj9c
IiIsIFN0cmluZygpKTsKLQotICAgIC8vIElmIHNjb3BlIFVSTCBpcyBub3Qgc2FtZSBvcmlnaW4g
YXMgZG9jdW1lbnQgVVJMLCByZXR1cm4gdW5kZWZpbmVkLgorICAgIC8vIElmIHRoZSBzY29wZSBp
cyBub3QgYSBzdHJpbmcgb3Igbm90IGEgdmFsaWQgVVJMLCByZXR1cm4gdGhlIGRlZmF1bHQgc2Nv
cGUgKHRoZSBwYXJlbnQgcGF0aCBvZiB0aGUgc3RhcnQgVVJMKS4KKyAgICBtX2RvY3VtZW50VVJM
ID0geyB7IH0sICJodHRwczovL2V4YW1wbGUuY29tL2EvcGFnZT9xdWVyeVBhcmFtPXZhbHVlI2Zy
YWdtZW50IiB9OworICAgIG1fbWFuaWZlc3RVUkwgPSB7IHsgfSwgImh0dHBzOi8vZXhhbXBsZS5j
b20vbWFuaWZlc3QuanNvbiIgfTsKKyAgICB0ZXN0U2NvcGUoIjEyMyIsICJodHRwczovL2V4YW1w
bGUuY29tL2EvIik7CisgICAgdGVzdFNjb3BlKCJudWxsIiwgImh0dHBzOi8vZXhhbXBsZS5jb20v
YS8iKTsKKyAgICB0ZXN0U2NvcGUoInRydWUiLCAiaHR0cHM6Ly9leGFtcGxlLmNvbS9hLyIpOwor
ICAgIHRlc3RTY29wZSgieyB9IiwgImh0dHBzOi8vZXhhbXBsZS5jb20vYS8iKTsKKyAgICB0ZXN0
U2NvcGUoIlsgXSIsICJodHRwczovL2V4YW1wbGUuY29tL2EvIik7CisgICAgdGVzdFNjb3BlKCJc
IlwiIiwgImh0dHBzOi8vZXhhbXBsZS5jb20vYS8iKTsKKyAgICB0ZXN0U2NvcGUoIlwiaHR0cDo/
XCIiLCAiaHR0cHM6Ly9leGFtcGxlLmNvbS9hLyIpOworCisgICAgbV9kb2N1bWVudFVSTCA9IHsg
eyB9LCAiaHR0cHM6Ly9leGFtcGxlLmNvbS9hL3BhZ2VFbmRpbmdXaXRoU2xhc2gvIiB9OworICAg
IHRlc3RTY29wZSgibnVsbCIsICJodHRwczovL2V4YW1wbGUuY29tL2EvcGFnZUVuZGluZ1dpdGhT
bGFzaC8iKTsKKworICAgIC8vIElmIHNjb3BlIFVSTCBpcyBub3Qgc2FtZSBvcmlnaW4gYXMgZG9j
dW1lbnQgVVJMLCByZXR1cm4gdGhlIGRlZmF1bHQgc2NvcGUuCiAgICAgbV9kb2N1bWVudFVSTCA9
IHsgeyB9LCAiaHR0cHM6Ly9leGFtcGxlLmNvbS9ob21lIiB9OwogICAgIG1fbWFuaWZlc3RVUkwg
PSB7IHsgfSwgImh0dHBzOi8vb3RoZXItc2l0ZS5jb20vbWFuaWZlc3QuanNvbiIgfTsKLSAgICB0
ZXN0U2NvcGUoIlwiaHR0cHM6Ly9vdGhlci1zaXRlLmNvbS9zb21lLXNjb3BlXCIiLCBTdHJpbmco
KSk7CisgICAgdGVzdFNjb3BlKCJcImh0dHBzOi8vb3RoZXItc2l0ZS5jb20vc29tZS1zY29wZVwi
IiwgImh0dHBzOi8vZXhhbXBsZS5jb20vIik7CiAKICAgICBtX2RvY3VtZW50VVJMID0geyB7IH0s
ICJodHRwczovL2V4YW1wbGUuY29tL2FwcC9ob21lIiB9OwogICAgIG1fbWFuaWZlc3RVUkwgPSB7
IHsgfSwgImh0dHBzOi8vZXhhbXBsZS5jb20vYXBwL21hbmlmZXN0Lmpzb24iIH07CiAKLSAgICAv
LyBJZiBzdGFydCBVUkwgaXMgbm90IHdpdGhpbiBzY29wZSBvZiBzY29wZSBVUkwsIHJldHVybiB1
bmRlZmluZWQKLSAgICB0ZXN0U2NvcGUoIlwiaHR0cHM6Ly9leGFtcGxlLmNvbS9zdWJkaXJlY3Rv
cnlcIiIsIFN0cmluZygpKTsKKyAgICAvLyBJZiBzdGFydCBVUkwgaXMgbm90IHdpdGhpbiBzY29w
ZSBvZiBzY29wZSBVUkwsIHJldHVybiB0aGUgZGVmYXVsdCBzY29wZS4KKyAgICB0ZXN0U2NvcGUo
IlwiaHR0cHM6Ly9leGFtcGxlLmNvbS9zdWJkaXJlY3RvcnlcIiIsICJodHRwczovL2V4YW1wbGUu
Y29tL2FwcC8iKTsKICAgICB0ZXN0U2NvcGUoIlwiaHR0cHM6Ly9leGFtcGxlLmNvbS9hcHBcIiIs
ICJodHRwczovL2V4YW1wbGUuY29tL2FwcCIpOwotICAgIHRlc3RTY29wZSgiXCJodHRwczovL2V4
YW1wbGUuY29tL0FQUFwiIiwgU3RyaW5nKCkpOworICAgIHRlc3RTY29wZSgiXCJodHRwczovL2V4
YW1wbGUuY29tL0FQUFwiIiwgImh0dHBzOi8vZXhhbXBsZS5jb20vYXBwLyIpOwogICAgIHRlc3RT
Y29wZSgiXCJodHRwczovL2V4YW1wbGUuY29tL2FcIiIsICJodHRwczovL2V4YW1wbGUuY29tL2Ei
KTsKIAogICAgIG1fZG9jdW1lbnRVUkwgPSB7IHsgfSwgImh0dHBzOi8vZXhhbXBsZS5jb20vYS9i
L2MvaW5kZXgiIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>