<?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>127739</bug_id>
          
          <creation_ts>2014-01-27 17:22:59 -0800</creation_ts>
          <short_desc>Add a method for schemes to be registered as supporting cache partitioning</short_desc>
          <delta_ts>2014-01-30 14:58:11 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vicki Pfau">jeffrey+webkit</reporter>
          <assigned_to name="Vicki Pfau">jeffrey+webkit</assigned_to>
          <cc>mjs</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>972689</commentid>
    <comment_count>0</comment_count>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2014-01-27 17:22:59 -0800</bug_when>
    <thetext>Currently, only HTTP and HTTPS support cache partitioning. We should be able to register additional schemes as supporting cache partitioning at run time.

&lt;rdar://problem/15255247&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972700</commentid>
    <comment_count>1</comment_count>
      <attachid>222388</attachid>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2014-01-27 17:36:54 -0800</bug_when>
    <thetext>Created attachment 222388
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972976</commentid>
    <comment_count>2</comment_count>
      <attachid>222388</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-01-28 09:56:11 -0800</bug_when>
    <thetext>Comment on attachment 222388
Patch

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

&gt; Source/WebCore/page/SecurityOrigin.cpp:448
&gt; +    if (m_protocol == &quot;http&quot; || m_protocol == &quot;https&quot;)
&gt; +        return host();

Would be nice if this used an isHTTPFamily helper function.

&gt; Source/WebCore/platform/SchemeRegistry.cpp:168
&gt; +static URLSchemesMap&amp; CachePartitioningSchemes()

Function name should start with a lowercase letter.

&gt; Source/WebCore/platform/SchemeRegistry.cpp:170
&gt; +    DEFINE_STATIC_LOCAL(URLSchemesMap, schemes, ());

In new code, the way to write this is:

    static NeverDestroyed&lt;URLSchemesMap&gt; schemes;

There’s no need to use the DEFINE_STATIC_LOCAL macro.

&gt; Source/WebCore/platform/SchemeRegistry.h:98
&gt; +    static void registerURLSchemeAsCachePartitioned(const String&amp; scheme);
&gt; +    static bool schemeShouldPartitionCache(const String&amp; scheme);

Why does one of these have “URL” in its name but not the other?

&gt; Source/WebKit2/WebProcess/WebProcess.cpp:332
&gt; +    for (size_t i = 0; i &lt; parameters.urlSchemesRegisteredAsCachePartitioned.size(); ++i)
&gt; +        registerURLSchemeAsCORSEnabled(parameters.urlSchemesRegisteredAsCachePartitioned[i]);

Should use a C++11 for loop here:

    for (auto&amp; scheme : parameters.urlSchemesRegisteredAsCachePartitioned)
        registerURLSchemeAsCORSEnabled(scheme);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973153</commentid>
    <comment_count>3</comment_count>
      <attachid>222509</attachid>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2014-01-28 15:31:38 -0800</bug_when>
    <thetext>Created attachment 222509
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973155</commentid>
    <comment_count>4</comment_count>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2014-01-28 15:32:23 -0800</bug_when>
    <thetext>Uploaded a new patch just to make sure I&apos;ve addressed Darin&apos;s nitpicks, and would like a WK2 sign-off from an owner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973394</commentid>
    <comment_count>5</comment_count>
      <attachid>222509</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-01-29 10:04:24 -0800</bug_when>
    <thetext>Comment on attachment 222509
Patch

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

&gt; Source/WebCore/page/SecurityOrigin.h:210
&gt; +    // This method checks that the scheme for this origin is an HTTP-family
&gt; +    // scheme, e.g. HTTP and HTTPS.
&gt; +    bool isHTTPFamily() const { return m_protocol == &quot;http&quot; || m_protocol == &quot;https&quot;; }

The mix in terminology here between protocol and scheme is unnecessarily confusing.

Why is this function public instead of private?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973462</commentid>
    <comment_count>6</comment_count>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2014-01-29 13:50:28 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 222509 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=222509&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/SecurityOrigin.h:210
&gt; &gt; +    // This method checks that the scheme for this origin is an HTTP-family
&gt; &gt; +    // scheme, e.g. HTTP and HTTPS.
&gt; &gt; +    bool isHTTPFamily() const { return m_protocol == &quot;http&quot; || m_protocol == &quot;https&quot;; }
&gt; 
&gt; The mix in terminology here between protocol and scheme is unnecessarily confusing.

I&apos;ll change this to protocol before committing it.

&gt; Why is this function public instead of private?

Is there any reason it should be private? It might be useful in the future for code that isn&apos;t in SecurityOrigin. Or it might not be. It doesn&apos;t seem like code that makes more sense to be private to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974034</commentid>
    <comment_count>7</comment_count>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2014-01-30 14:58:11 -0800</bug_when>
    <thetext>Committed r163121: &lt;http://trac.webkit.org/changeset/163121&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222388</attachid>
            <date>2014-01-27 17:36:54 -0800</date>
            <delta_ts>2014-01-28 15:31:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127739-20140127173628.patch</filename>
            <type>text/plain</type>
            <size>15888</size>
            <attacher name="Vicki Pfau">jeffrey+webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyODcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGNlYTBjNTcyYzhkYTI1
NDFiNzc2MjhiOTEyNTk4MDEzODBlYjdlMC4uNjU4NjU1MjhjODkyMjdhODkxYWNkZjJkZjdmOGNj
MTY5MmQ1ZjViMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE0LTAxLTI3ICBKZWZm
cmV5IFBmYXUgIDxqcGZhdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgbWV0aG9kIGZvciBz
Y2hlbWVzIHRvIGJlIHJlZ2lzdGVyZWQgYXMgc3VwcG9ydGluZyBjYWNoZSBwYXJ0aXRpb25pbmcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzczOQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRs
eSwgdGhpcyBhc3N1bWVzIHRoYXQgc2NoZW1lcyBzdXBwb3J0aW5nIGNhY2hlIHBhcnRpdGlvbmlu
ZworICAgICAgICBhbHNvIHN1cHBvcnQgKHNjaGVtZSwgaG9zdCkgZG91YmxlcyBmb3IgdGhlIHNj
aGVtZS4gRnVydGhlcm1vcmUsCisgICAgICAgIHRoZSBzY2hlbWUgaXMgY3VycmVudGx5IGRpc2Nh
cmRlZCB3aGVuIHBhcnRpdGlvbmluZyBhbmQgaXMgb25seQorICAgICAgICBjaGVja2VkIHRvIGVu
c3VyZSB0aGF0IHBhcnRpdGlvbmluZyBpcyBzdXBwb3J0ZWQgZm9yIHRoYXQgc2NoZW1lOiBpdAor
ICAgICAgICBpcyBhc3N1bWVkIHRoYXQgYWxsIG9yaWdpbnMgd2l0aCB0aGUgc2FtZSBob3N0IGRv
dWJsZSBzaG91bGQgYmUgYmlubmVkCisgICAgICAgIHRvZ2V0aGVyLCByZWdhcmRsZXNzIG9mIHNj
aGVtZS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIHBhZ2UvU2VjdXJp
dHlPcmlnaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmNhY2hlUGFy
dGl0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZVBhcnRpdGlvbmluZ1NjaGVtZXMpOgorICAgICAgICAoV2ViQ29yZTo6
U2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNDYWNoZVBhcnRpdGlvbmVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjaGVtZVJlZ2lzdHJ5OjpzY2hlbWVTaG91bGRQYXJ0aXRpb25DYWNo
ZSk6CisgICAgICAgICogcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuaDoKKwogMjAxNC0wMS0yNyAg
RXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBw
cmVsb2FkPW5vbmUgcHJldmVudHMgcGxheSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTY2M2E1MWY0ODQ0MTFm
ODYxNDE1Yjk1ZWY0ZjY1ODU4NzVmZmVjNS4uYmE0YjViNmFlNzc4MGU3NDE3ZDI5ZWFjMzZiZWE1
YjViN2IyMmEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTAxLTI3ICBKZWZm
cmV5IFBmYXUgIDxqcGZhdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgbWV0aG9kIGZvciBz
Y2hlbWVzIHRvIGJlIHJlZ2lzdGVyZWQgYXMgc3VwcG9ydGluZyBjYWNoZSBwYXJ0aXRpb25pbmcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzczOQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBpcGUgaW5m
b3JtYXRpb24gYWJvdXQgY2FjaGUgcGFydGl0aW9uZWQgc2NoZW1lIHRocm91Z2ggV2ViS2l0Mi4K
KworICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAg
ICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgorICAgICAgICAoV0tDb250ZXh0UmVnaXN0
ZXJVUkxTY2hlbWVBc0NhY2hlUGFydGl0aW9uZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpjcmVhdGVOZXdXZWJQcm9jZXNzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6cmVnaXN0ZXJVUkxTY2hlbWVBc0NhY2hlUGFydGl0
aW9uZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0Lmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5p
dGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpyZWdpc3Rl
clVSTFNjaGVtZUFzQ2FjaGVQYXJ0aXRpb25lZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgor
CiAyMDE0LTAxLTI3ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBJREI6IExldmVsREIgYmFja2luZyBzdG9yZSBzaG91bGRuJ3Qga25vdyBhYm91dCBJREJDdXJz
b3Igb3IgSURCQ2FsbGJhY2tzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDg4MDc4M2YzM2FjMTQ2
MjRkMmEwOTFiZWIyNDY1MWYyYzI2ODE5MWEuLjcxNWIzYjEyNGM0ZDZmM2JhMzU3NTFhMzU1OTBl
YzUyZTdhNzYzOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0zODMsNiArMzgzLDcgQEAgX19a
TjdXZWJDb3JlMTRTY2hlbWVSZWdpc3RyeTMwcmVnaXN0ZXJVUkxTY2hlbWVBc0NPUlNFbmFibGVk
RVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTRTY2hlbWVSZWdpc3RyeTMycmVnaXN0ZXJV
UkxTY2hlbWVBc0VtcHR5RG9jdW1lbnRFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNFNj
aGVtZVJlZ2lzdHJ5MzRyZWdpc3RlclVSTFNjaGVtZUFzRGlzcGxheUlzb2xhdGVkRVJLTjNXVEY2
U3RyaW5nRQogX19aTjdXZWJDb3JlMTRTY2hlbWVSZWdpc3RyeTM0c2hvdWxkTG9hZFVSTFNjaGVt
ZUFzRW1wdHlEb2N1bWVudEVSS04zV1RGNlN0cmluZ0UKK19fWk43V2ViQ29yZTE0U2NoZW1lUmVn
aXN0cnkzNXJlZ2lzdGVyVVJMU2NoZW1lQXNDYWNoZVBhcnRpdGlvbmVkRVJLTjNXVEY2U3RyaW5n
RQogX19aTjdXZWJDb3JlMTRTY2hlbWVSZWdpc3RyeTQwc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJp
ZGRlbkZvclVSTFNjaGVtZUViUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNFNjaGVtZVJl
Z2lzdHJ5NDFhbGxvd3NMb2NhbFN0b3JhZ2VBY2Nlc3NJblByaXZhdGVCcm93c2luZ0VSS04zV1RG
NlN0cmluZ0UKIF9fWk43V2ViQ29yZTE0U2NoZW1lUmVnaXN0cnk0OXJlZ2lzdGVyVVJMU2NoZW1l
QXNCeXBhc3NpbmdDb250ZW50U2VjdXJpdHlQb2xpY3lFUktOM1dURjZTdHJpbmdFCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCmluZGV4IDJiZTMwZDQ0ZjQ3Y2QzNTU4OTZlZWFh
ZGZmYWQ3NGM1NjY0NzMxZjguLjA4MGYyNzVmYWNkNDQzMjVhYzQ0ODc5MTU5ZmQxYzc1ODM4NDI0
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCkBAIC00NDQsMTAgKzQ0
NCwxMyBAQCBTdHJpbmcgU2VjdXJpdHlPcmlnaW46OmNhY2hlUGFydGl0aW9uKCkgY29uc3QKICAg
ICBpZiAobV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgIT0gQmxvY2tUaGlyZFBhcnR5U3RvcmFnZSkK
ICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgaWYgKG1fcHJvdG9jb2wgIT0gImh0dHAi
ICYmIG1fcHJvdG9jb2wgIT0gImh0dHBzIikKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAg
IGlmIChtX3Byb3RvY29sID09ICJodHRwIiB8fCBtX3Byb3RvY29sID09ICJodHRwcyIpCisgICAg
ICAgIHJldHVybiBob3N0KCk7CisKKyAgICBpZiAoU2NoZW1lUmVnaXN0cnk6OnNjaGVtZVNob3Vs
ZFBhcnRpdGlvbkNhY2hlKG1fcHJvdG9jb2wpKQorICAgICAgICByZXR1cm4gaG9zdCgpOwogCi0g
ICAgcmV0dXJuIGhvc3QoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCmluZGV4IGYyYjYyYzhlNmZi
Yjk1NmZhN2UzNGNiZjIzMDE2Mjg2YzdiY2I4ODMuLjMzOGY0ZGYwNDFkY2FkOTM0YzZkZTQ4YjM2
ZmI4ZDIzODhhZmExMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVt
ZVJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3Ry
eS5jcHAKQEAgLTE2NCw2ICsxNjQsMTQgQEAgc3RhdGljIFVSTFNjaGVtZXNNYXAmIENvbnRlbnRT
ZWN1cml0eVBvbGljeUJ5cGFzc2luZ1NjaGVtZXMoKQogICAgIHJldHVybiBzY2hlbWVzOwogfQog
CisjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKK3N0YXRpYyBVUkxTY2hlbWVzTWFwJiBD
YWNoZVBhcnRpdGlvbmluZ1NjaGVtZXMoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoVVJM
U2NoZW1lc01hcCwgc2NoZW1lcywgKCkpOworICAgIHJldHVybiBzY2hlbWVzOworfQorI2VuZGlm
CisKIGJvb2wgU2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNMb2NhbChjb25z
dCBTdHJpbmcmIHNjaGVtZSkKIHsKICAgICBpZiAoc2NoZW1lLmlzRW1wdHkoKSkKQEAgLTMyMyw0
ICszMzEsMTggQEAgYm9vbCBTY2hlbWVSZWdpc3RyeTo6c2hvdWxkQ2FjaGVSZXNwb25zZXNGcm9t
VVJMU2NoZW1lSW5kZWZpbml0ZWx5KGNvbnN0IFN0cmluZyYKICAgICByZXR1cm4gZXF1YWxJZ25v
cmluZ0Nhc2Uoc2NoZW1lLCAiZGF0YSIpOwogfQogCisjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElP
TklORykKK3ZvaWQgU2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNDYWNoZVBhcnRp
dGlvbmVkKGNvbnN0IFN0cmluZyYgc2NoZW1lKQoreworICAgIENhY2hlUGFydGl0aW9uaW5nU2No
ZW1lcygpLmFkZChzY2hlbWUpOworfQorCitib29sIFNjaGVtZVJlZ2lzdHJ5OjpzY2hlbWVTaG91
bGRQYXJ0aXRpb25DYWNoZShjb25zdCBTdHJpbmcmIHNjaGVtZSkKK3sKKyAgICBpZiAoc2NoZW1l
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBDYWNoZVBhcnRp
dGlvbmluZ1NjaGVtZXMoKS5jb250YWlucyhzY2hlbWUpOworfQorI2VuZGlmCisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVt
ZVJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5oCmlu
ZGV4IDM3MDBiODFkZjYwYjYxNDExOTNhMzAyYTczZmRiNzg3OGUzYWJkYTIuLjkxZTQzYTgzMDVj
ZmQ3ZWVmMjA5NzBmN2FkMzc3Yjg4MGMwOWRjMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2NoZW1lUmVnaXN0cnkuaApAQCAtOTEsNiArOTEsMTIgQEAgcHVibGljOgogICAgIAogICAgIC8v
IFNjaGVtZXMgd2hvc2UgcmVzcG9uc2VzIGNhbiBiZSBjYWNoZWQgaW5kZWZpbml0ZWx5LgogICAg
IHN0YXRpYyBib29sIHNob3VsZENhY2hlUmVzcG9uc2VzRnJvbVVSTFNjaGVtZUluZGVmaW5pdGVs
eShjb25zdCBTdHJpbmcmIHNjaGVtZSk7CisKKyNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5H
KQorICAgIC8vIFNjaGVtZXMgd2hvc2UgcmVxdWVzdHMgc2hvdWxkIGJlIHBhcnRpdGlvbmVkIGlu
IHRoZSBjYWNoZQorICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNDYWNoZVBhcnRp
dGlvbmVkKGNvbnN0IFN0cmluZyYgc2NoZW1lKTsKKyAgICBzdGF0aWMgYm9vbCBzY2hlbWVTaG91
bGRQYXJ0aXRpb25DYWNoZShjb25zdCBTdHJpbmcmIHNjaGVtZSk7CisjZW5kaWYKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCA0ZGUwZThhNDNhMzRmM2FmNDgx
ODcyYTZmMjE5NzIzZmJmY2U1MmU4Li5mNDBkMTc0Y2YwMTMxM2IxNjkzNjhjMGNkMjExMTQxMzc4
OTY3MDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC02OSw2ICs2OSw5IEBAIHZvaWQgV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogICAgIGVuY29kZXIgPDwgdXJsU2NoZW1lc1JlZ2lzdGVyZWRBc05vQWNjZXNzOwogICAg
IGVuY29kZXIgPDwgdXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0Rpc3BsYXlJc29sYXRlZDsKICAgICBl
bmNvZGVyIDw8IHVybFNjaGVtZXNSZWdpc3RlcmVkQXNDT1JTRW5hYmxlZDsKKyNpZiBFTkFCTEUo
Q0FDSEVfUEFSVElUSU9OSU5HKQorICAgIGVuY29kZXIgPDwgdXJsU2NoZW1lc1JlZ2lzdGVyZWRB
c0NhY2hlUGFydGl0aW9uZWQ7CisjZW5kaWYKICNpZiBFTkFCTEUoQ1VTVE9NX1BST1RPQ09MUykK
ICAgICBlbmNvZGVyIDw8IHVybFNjaGVtZXNSZWdpc3RlcmVkRm9yQ3VzdG9tUHJvdG9jb2xzOwog
I2VuZGlmCkBAIC0xNjAsNiArMTYzLDEwIEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVyczo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudXJs
U2NoZW1lc1JlZ2lzdGVyZWRBc0NPUlNFbmFibGVkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwor
I2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShw
YXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkQXNDYWNoZVBhcnRpdGlvbmVkKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCiAjaWYgRU5BQkxFKENVU1RPTV9QUk9UT0NPTFMpCiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkRm9y
Q3VzdG9tUHJvdG9jb2xzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggZTRm
MmQ1MjUwOTg1NzE3MzBiMjI4ZWJkMDdkMjZkYWZmOTU3MDc0Ni4uZGMzYWMzZTg0NzY3MzM4YzA2
ZDc2ZDUxYTY4NDFmYTFkYWMxNThmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC03OCw2ICs3OCw5IEBAIHN0cnVj
dCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBWZWN0b3I8U3RyaW5nPiB1cmxT
Y2hlbWVzUmVnaXN0ZXJlZEFzTm9BY2Nlc3M7CiAgICAgVmVjdG9yPFN0cmluZz4gdXJsU2NoZW1l
c1JlZ2lzdGVyZWRBc0Rpc3BsYXlJc29sYXRlZDsKICAgICBWZWN0b3I8U3RyaW5nPiB1cmxTY2hl
bWVzUmVnaXN0ZXJlZEFzQ09SU0VuYWJsZWQ7CisjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklO
RykKKyAgICBWZWN0b3I8U3RyaW5nPiB1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzQ2FjaGVQYXJ0aXRp
b25lZDsKKyNlbmRpZgogI2lmIEVOQUJMRShDVVNUT01fUFJPVE9DT0xTKQogICAgIFZlY3RvcjxT
dHJpbmc+IHVybFNjaGVtZXNSZWdpc3RlcmVkRm9yQ3VzdG9tUHJvdG9jb2xzOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCmluZGV4IGU4ZDAw
ZjZhMWM0OGJmYWVkNzZjZjE4NmRkZDAzYjhiMTZjNjk4OWMuLjBjZDllZDk0YmExYmQxOTM4OGY0
YWY1OWVlY2YyNGRhODY0NDY1NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHQuY3BwCkBAIC0xODYsNiArMTg2LDE2IEBAIHZvaWQgV0tDb250ZXh0UmVnaXN0
ZXJVUkxTY2hlbWVBc1NlY3VyZShXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tTdHJpbmdSZWYg
dXJsCiAgICAgdG9JbXBsKGNvbnRleHRSZWYpLT5yZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlKHRv
SW1wbCh1cmxTY2hlbWUpLT5zdHJpbmcoKSk7CiB9CiAKK3ZvaWQgV0tDb250ZXh0UmVnaXN0ZXJV
UkxTY2hlbWVBc0NhY2hlUGFydGl0aW9uZWQoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLU3Ry
aW5nUmVmIHVybFNjaGVtZSkKK3sKKyNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQorICAg
IHRvSW1wbChjb250ZXh0UmVmKS0+cmVnaXN0ZXJVUkxTY2hlbWVBc0NhY2hlUGFydGl0aW9uZWQo
dG9JbXBsKHVybFNjaGVtZSktPnN0cmluZygpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGNv
bnRleHRSZWYpOworICAgIFVOVVNFRF9QQVJBTSh1cmxTY2hlbWUpOworI2VuZGlmCit9CisKIHZv
aWQgV0tDb250ZXh0U2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShXS0Nv
bnRleHRSZWYgY29udGV4dFJlZiwgV0tTdHJpbmdSZWYgdXJsU2NoZW1lKQogewogICAgIHRvSW1w
bChjb250ZXh0UmVmKS0+c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZSh0
b0ltcGwodXJsU2NoZW1lKS0+c3RyaW5nKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKaW5kZXggODE0ZTE1NjMxNzVkNmJlYWViZDVi
Y2Y2NjFhZGQ1MGNhOTUwZGE0NS4uMWVlMWNlM2IxNzJhNjBlNmZiZWJhZWM4MDEyOWY1YTQ2YzJh
NDRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
UHJpdmF0ZS5oCkBAIC01Miw2ICs1Miw4IEBAIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldFNo
b3VsZFVzZUZvbnRTbW9vdGhpbmcoV0tDb250ZXh0UmVmIGNvbnRleHQsIGJvb2wgdXNlCiAKIFdL
X0VYUE9SVCB2b2lkIFdLQ29udGV4dFJlZ2lzdGVyVVJMU2NoZW1lQXNTZWN1cmUoV0tDb250ZXh0
UmVmIGNvbnRleHQsIFdLU3RyaW5nUmVmIHVybFNjaGVtZSk7CiAKK1dLX0VYUE9SVCB2b2lkIFdL
Q29udGV4dFJlZ2lzdGVyVVJMU2NoZW1lQXNDYWNoZVBhcnRpdGlvbmVkKFdLQ29udGV4dFJlZiBj
b250ZXh0LCBXS1N0cmluZ1JlZiB1cmxTY2hlbWUpOworCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRl
eHRTZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKFdLQ29udGV4dFJlZiBj
b250ZXh0LCBXS1N0cmluZ1JlZiB1cmxTY2hlbWUpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRl
eHRTZXRJY29uRGF0YWJhc2VQYXRoKFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1N0cmluZ1JlZiBp
Y29uRGF0YWJhc2VQYXRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcApp
bmRleCBlMjI3NjJkYTEyOWYzM2FkNWEyNWVlNzExZmQ0MDJhYzg1MThjNmMxLi42NTQyMWJlOGE1
ZDVjNWI5YmJjOGZmY2NjMGQyZDdhNDM2MzI2MGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbnRleHQuY3BwCkBAIC01NzUsNiArNTc1LDkgQEAgV2ViUHJvY2Vzc1Byb3h5JiBXZWJD
b250ZXh0OjpjcmVhdGVOZXdXZWJQcm9jZXNzKCkKICAgICBjb3B5VG9WZWN0b3IobV9zY2hlbWVz
VG9SZWdpc3RlckFzTm9BY2Nlc3MsIHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc05v
QWNjZXNzKTsKICAgICBjb3B5VG9WZWN0b3IobV9zY2hlbWVzVG9SZWdpc3RlckFzRGlzcGxheUlz
b2xhdGVkLCBwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkQXNEaXNwbGF5SXNvbGF0ZWQp
OwogICAgIGNvcHlUb1ZlY3RvcihtX3NjaGVtZXNUb1JlZ2lzdGVyQXNDT1JTRW5hYmxlZCwgcGFy
YW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzQ09SU0VuYWJsZWQpOworI2lmIEVOQUJMRShD
QUNIRV9QQVJUSVRJT05JTkcpCisgICAgY29weVRvVmVjdG9yKG1fc2NoZW1lc1RvUmVnaXN0ZXJB
c0NhY2hlUGFydGl0aW9uZWQsIHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0NhY2hl
UGFydGl0aW9uZWQpOworI2VuZGlmCiAKICAgICBwYXJhbWV0ZXJzLnNob3VsZEFsd2F5c1VzZUNv
bXBsZXhUZXh0Q29kZVBhdGggPSBtX2Fsd2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRoOwogICAg
IHBhcmFtZXRlcnMuc2hvdWxkVXNlRm9udFNtb290aGluZyA9IG1fc2hvdWxkVXNlRm9udFNtb290
aGluZzsKQEAgLTkzNSw2ICs5MzgsMTQgQEAgdm9pZCBXZWJDb250ZXh0Ojp1bnJlZ2lzdGVyR2xv
YmFsVVJMU2NoZW1lQXNIYXZpbmdDdXN0b21Qcm90b2NvbEhhbmRsZXJzKGNvbnN0IFMKIH0KICNl
bmRpZgogCisjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKK3ZvaWQgV2ViQ29udGV4dDo6
cmVnaXN0ZXJVUkxTY2hlbWVBc0NhY2hlUGFydGl0aW9uZWQoY29uc3QgU3RyaW5nJiB1cmxTY2hl
bWUpCit7CisgICAgbV9zY2hlbWVzVG9SZWdpc3RlckFzQ2FjaGVQYXJ0aXRpb25lZC5hZGQodXJs
U2NoZW1lKTsKKyAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlJl
Z2lzdGVyVVJMU2NoZW1lQXNDYWNoZVBhcnRpdGlvbmVkKHVybFNjaGVtZSkpOworfQorI2VuZGlm
CisKIHZvaWQgV2ViQ29udGV4dDo6c2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsIGNhY2hlTW9kZWwp
CiB7CiAgICAgbV9jYWNoZU1vZGVsID0gY2FjaGVNb2RlbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29udGV4dC5oCmluZGV4IGY1YjBlNTRhNjcxMmJiZmIzNjMxODMxZWM5MmU3MWU2OWUxN2Zl
MTAuLmRiOWExYzAxNzU5NmM1MDNkMGNjNTY4NjcxZWIxNzQ5MTI2M2ZkZTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaApAQCAtMTg5LDYgKzE4OSw5IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNOb0FjY2Vzcyhjb25zdCBTdHJpbmcmKTsKICAgICB2
b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNEaXNwbGF5SXNvbGF0ZWQoY29uc3QgU3RyaW5nJik7CiAg
ICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzQ09SU0VuYWJsZWQoY29uc3QgU3RyaW5nJik7Cisj
aWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKKyAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1l
QXNDYWNoZVBhcnRpdGlvbmVkKGNvbnN0IFN0cmluZyYpOworI2VuZGlmCiAKICAgICB2b2lkIGFk
ZFZpc2l0ZWRMaW5rKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgYWRkVmlzaXRlZExpbmtIYXNo
KFdlYkNvcmU6OkxpbmtIYXNoKTsKQEAgLTQ1MCw2ICs0NTMsOSBAQCBwcml2YXRlOgogICAgIEhh
c2hTZXQ8U3RyaW5nPiBtX3NjaGVtZXNUb1JlZ2lzdGVyQXNOb0FjY2VzczsKICAgICBIYXNoU2V0
PFN0cmluZz4gbV9zY2hlbWVzVG9SZWdpc3RlckFzRGlzcGxheUlzb2xhdGVkOwogICAgIEhhc2hT
ZXQ8U3RyaW5nPiBtX3NjaGVtZXNUb1JlZ2lzdGVyQXNDT1JTRW5hYmxlZDsKKyNpZiBFTkFCTEUo
Q0FDSEVfUEFSVElUSU9OSU5HKQorICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3NjaGVtZXNUb1JlZ2lz
dGVyQXNDYWNoZVBhcnRpdGlvbmVkOworI2VuZGlmCiAKICAgICBib29sIG1fYWx3YXlzVXNlc0Nv
bXBsZXhUZXh0Q29kZVBhdGg7CiAgICAgYm9vbCBtX3Nob3VsZFVzZUZvbnRTbW9vdGhpbmc7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA3N2YzMDdhZjc1MGUz
OTFmNWY0MmM0NjRjYWNkNTFiMjVlN2YzMGM5Li4wMmQ1ZmVhOTllZDUwYzIyOGU2ZTIyY2I4NTUx
ODg1OGQwYWRhOTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
QEAgLTMyNyw2ICszMjcsMTEgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2Vz
cyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWUKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0NPUlNFbmFi
bGVkLnNpemUoKTsgKytpKQogICAgICAgICByZWdpc3RlclVSTFNjaGVtZUFzQ09SU0VuYWJsZWQo
cGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzQ09SU0VuYWJsZWRbaV0pOwogCisjaWYg
RU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBh
cmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0NhY2hlUGFydGl0aW9uZWQuc2l6ZSgpOyAr
K2kpCisgICAgICAgIHJlZ2lzdGVyVVJMU2NoZW1lQXNDT1JTRW5hYmxlZChwYXJhbWV0ZXJzLnVy
bFNjaGVtZXNSZWdpc3RlcmVkQXNDYWNoZVBhcnRpdGlvbmVkW2ldKTsKKyNlbmRpZgorCiAgICAg
c2V0RGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWwocGFyYW1ldGVycy5kZWZhdWx0UmVxdWVz
dFRpbWVvdXRJbnRlcnZhbCk7CiAKICAgICBpZiAocGFyYW1ldGVycy5zaG91bGRBbHdheXNVc2VD
b21wbGV4VGV4dENvZGVQYXRoKQpAQCAtNDI3LDYgKzQzMiwxMyBAQCB2b2lkIFdlYlByb2Nlc3M6
OnJlZ2lzdGVyVVJMU2NoZW1lQXNDT1JTRW5hYmxlZChjb25zdCBTdHJpbmcmIHVybFNjaGVtZSkg
Y29uc3QKICAgICBTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0NPUlNFbmFibGVk
KHVybFNjaGVtZSk7CiB9CiAKKyNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQordm9pZCBX
ZWJQcm9jZXNzOjpyZWdpc3RlclVSTFNjaGVtZUFzQ2FjaGVQYXJ0aXRpb25lZChjb25zdCBTdHJp
bmcmIHVybFNjaGVtZSkgY29uc3QKK3sKKyAgICBTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxT
Y2hlbWVBc0NhY2hlUGFydGl0aW9uZWQodXJsU2NoZW1lKTsKK30KKyNlbmRpZgorCiB2b2lkIFdl
YlByb2Nlc3M6OnNldERlZmF1bHRSZXF1ZXN0VGltZW91dEludGVydmFsKGRvdWJsZSB0aW1lb3V0
SW50ZXJ2YWwpCiB7CiAgICAgUmVzb3VyY2VSZXF1ZXN0OjpzZXREZWZhdWx0VGltZW91dEludGVy
dmFsKHRpbWVvdXRJbnRlcnZhbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
CmluZGV4IDJhODZmNzNiMDdmMmZjY2RlYTBhM2E0YTg5ZDkxMTQzOTQwMmQ3YzUuLjc3ZDI0ZWQz
OTNhMmY2YTcxMTFiMDZhMjc3MTU3OGNiMzVlMmFkYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oCkBAIC0yMDUsNiArMjA1LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJl
Z2lzdGVyVVJMU2NoZW1lQXNOb0FjY2Vzcyhjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICB2b2lk
IHJlZ2lzdGVyVVJMU2NoZW1lQXNEaXNwbGF5SXNvbGF0ZWQoY29uc3QgU3RyaW5nJikgY29uc3Q7
CiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzQ09SU0VuYWJsZWQoY29uc3QgU3RyaW5nJikg
Y29uc3Q7CisjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKKyAgICB2b2lkIHJlZ2lzdGVy
VVJMU2NoZW1lQXNDYWNoZVBhcnRpdGlvbmVkKGNvbnN0IFN0cmluZyYpIGNvbnN0OworI2VuZGlm
CiAgICAgdm9pZCBzZXREZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbChkb3VibGUpOwogICAg
IHZvaWQgc2V0QWx3YXlzVXNlc0NvbXBsZXhUZXh0Q29kZVBhdGgoYm9vbCk7CiAgICAgdm9pZCBz
ZXRTaG91bGRVc2VGb250U21vb3RoaW5nKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDQ3YjBhMWMxZDg1NzRhOTA0YWE3
NzRlNjQwODdkZjU1ZjNjMTEyYzMuLmRlNzlkM2ZlZmM4Njk1NTNiODE0YTI1NWU2OTM3NWRiMWRl
ZWVhZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4KQEAgLTQyLDYgKzQyLDkgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lS
ZWNlaXZlciB7CiAgICAgUmVnaXN0ZXJVUkxTY2hlbWVBc05vQWNjZXNzKFN0cmluZyBzY2hlbWUp
CiAgICAgUmVnaXN0ZXJVUkxTY2hlbWVBc0Rpc3BsYXlJc29sYXRlZChTdHJpbmcgc2NoZW1lKQog
ICAgIFJlZ2lzdGVyVVJMU2NoZW1lQXNDT1JTRW5hYmxlZChTdHJpbmcgc2NoZW1lKQorI2lmIEVO
QUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCisgICAgUmVnaXN0ZXJVUkxTY2hlbWVBc0NhY2hlUGFy
dGl0aW9uZWQoU3RyaW5nIHNjaGVtZSkKKyNlbmRpZgogICAgIFNldERlZmF1bHRSZXF1ZXN0VGlt
ZW91dEludGVydmFsKGRvdWJsZSB0aW1lb3V0SW50ZXJ2YWwpCiAgICAgU2V0QWx3YXlzVXNlc0Nv
bXBsZXhUZXh0Q29kZVBhdGgoYm9vbCBhbHdheXNVc2VDb21wbGV4VGV4dCkKICAgICBTZXRTaG91
bGRVc2VGb250U21vb3RoaW5nKGJvb2wgdXNlRm9udFNtb290aGluZykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222509</attachid>
            <date>2014-01-28 15:31:38 -0800</date>
            <delta_ts>2014-01-29 10:04:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127739-20140128153110.patch</filename>
            <type>text/plain</type>
            <size>16683</size>
            <attacher name="Vicki Pfau">jeffrey+webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyODcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGNlYTBjNTcyYzhkYTI1
NDFiNzc2MjhiOTEyNTk4MDEzODBlYjdlMC4uODc4YzQ5MTgzMTc4YmIyYzRiMjZjYjkzOTcyMGFj
YzlmMDAzY2RlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE0LTAxLTI3ICBKZWZm
cmV5IFBmYXUgIDxqcGZhdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgbWV0aG9kIGZvciBz
Y2hlbWVzIHRvIGJlIHJlZ2lzdGVyZWQgYXMgc3VwcG9ydGluZyBjYWNoZSBwYXJ0aXRpb25pbmcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzczOQor
CisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIEN1cnJlbnRseSwg
dGhpcyBhc3N1bWVzIHRoYXQgc2NoZW1lcyBzdXBwb3J0aW5nIGNhY2hlIHBhcnRpdGlvbmluZwor
ICAgICAgICBhbHNvIHN1cHBvcnQgKHNjaGVtZSwgaG9zdCkgZG91YmxlcyBmb3IgdGhlIHNjaGVt
ZS4gRnVydGhlcm1vcmUsCisgICAgICAgIHRoZSBzY2hlbWUgaXMgY3VycmVudGx5IGRpc2NhcmRl
ZCB3aGVuIHBhcnRpdGlvbmluZyBhbmQgaXMgb25seQorICAgICAgICBjaGVja2VkIHRvIGVuc3Vy
ZSB0aGF0IHBhcnRpdGlvbmluZyBpcyBzdXBwb3J0ZWQgZm9yIHRoYXQgc2NoZW1lOiBpdAorICAg
ICAgICBpcyBhc3N1bWVkIHRoYXQgYWxsIG9yaWdpbnMgd2l0aCB0aGUgc2FtZSBob3N0IGRvdWJs
ZSBzaG91bGQgYmUgYmlubmVkCisgICAgICAgIHRvZ2V0aGVyLCByZWdhcmRsZXNzIG9mIHNjaGVt
ZS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIHBhZ2UvU2VjdXJpdHlP
cmlnaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmNhY2hlUGFydGl0
aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZVBhcnRpdGlvbmluZ1NjaGVtZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2No
ZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNDYWNoZVBhcnRpdGlvbmVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRQYXJ0aXRpb25DYWNoZUZvclVSTFNj
aGVtZSk6CisgICAgICAgICogcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuaDoKKwogMjAxNC0wMS0y
NyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9T
XSBwcmVsb2FkPW5vbmUgcHJldmVudHMgcGxheSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTY2M2E1MWY0ODQ0
MTFmODYxNDE1Yjk1ZWY0ZjY1ODU4NzVmZmVjNS4uYjQ1MzBjMzY0YzY5OWExZDJhNDdiZDk3MzAz
NTFjYmMyNGFjNzZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTAxLTI3ICBK
ZWZmcmV5IFBmYXUgIDxqcGZhdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgbWV0aG9kIGZv
ciBzY2hlbWVzIHRvIGJlIHJlZ2lzdGVyZWQgYXMgc3VwcG9ydGluZyBjYWNoZSBwYXJ0aXRpb25p
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzcz
OQorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFBpcGUgaW5m
b3JtYXRpb24gYWJvdXQgY2FjaGUgcGFydGl0aW9uZWQgc2NoZW1lIHRocm91Z2ggV2ViS2l0Mi4K
KworICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAg
ICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgorICAgICAgICAoV0tDb250ZXh0UmVnaXN0
ZXJVUkxTY2hlbWVBc0NhY2hlUGFydGl0aW9uZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpjcmVhdGVOZXdXZWJQcm9jZXNzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6cmVnaXN0ZXJVUkxTY2hlbWVBc0NhY2hlUGFydGl0
aW9uZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0Lmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5p
dGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpyZWdpc3Rl
clVSTFNjaGVtZUFzQ2FjaGVQYXJ0aXRpb25lZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgor
CiAyMDE0LTAxLTI3ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBJREI6IExldmVsREIgYmFja2luZyBzdG9yZSBzaG91bGRuJ3Qga25vdyBhYm91dCBJREJDdXJz
b3Igb3IgSURCQ2FsbGJhY2tzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDg4MDc4M2YzM2FjMTQ2
MjRkMmEwOTFiZWIyNDY1MWYyYzI2ODE5MWEuLjcxNWIzYjEyNGM0ZDZmM2JhMzU3NTFhMzU1OTBl
YzUyZTdhNzYzOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0zODMsNiArMzgzLDcgQEAgX19a
TjdXZWJDb3JlMTRTY2hlbWVSZWdpc3RyeTMwcmVnaXN0ZXJVUkxTY2hlbWVBc0NPUlNFbmFibGVk
RVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTRTY2hlbWVSZWdpc3RyeTMycmVnaXN0ZXJV
UkxTY2hlbWVBc0VtcHR5RG9jdW1lbnRFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNFNj
aGVtZVJlZ2lzdHJ5MzRyZWdpc3RlclVSTFNjaGVtZUFzRGlzcGxheUlzb2xhdGVkRVJLTjNXVEY2
U3RyaW5nRQogX19aTjdXZWJDb3JlMTRTY2hlbWVSZWdpc3RyeTM0c2hvdWxkTG9hZFVSTFNjaGVt
ZUFzRW1wdHlEb2N1bWVudEVSS04zV1RGNlN0cmluZ0UKK19fWk43V2ViQ29yZTE0U2NoZW1lUmVn
aXN0cnkzNXJlZ2lzdGVyVVJMU2NoZW1lQXNDYWNoZVBhcnRpdGlvbmVkRVJLTjNXVEY2U3RyaW5n
RQogX19aTjdXZWJDb3JlMTRTY2hlbWVSZWdpc3RyeTQwc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJp
ZGRlbkZvclVSTFNjaGVtZUViUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNFNjaGVtZVJl
Z2lzdHJ5NDFhbGxvd3NMb2NhbFN0b3JhZ2VBY2Nlc3NJblByaXZhdGVCcm93c2luZ0VSS04zV1RG
NlN0cmluZ0UKIF9fWk43V2ViQ29yZTE0U2NoZW1lUmVnaXN0cnk0OXJlZ2lzdGVyVVJMU2NoZW1l
QXNCeXBhc3NpbmdDb250ZW50U2VjdXJpdHlQb2xpY3lFUktOM1dURjZTdHJpbmdFCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCmluZGV4IDJiZTMwZDQ0ZjQ3Y2QzNTU4OTZlZWFh
ZGZmYWQ3NGM1NjY0NzMxZjguLmJhNDM4ZDA0M2IxM2M5NTUzZGQ2YWMxNGQ2YWQ0YWFkZTY3M2I1
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCkBAIC00NDQsMTAgKzQ0
NCwxMyBAQCBTdHJpbmcgU2VjdXJpdHlPcmlnaW46OmNhY2hlUGFydGl0aW9uKCkgY29uc3QKICAg
ICBpZiAobV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgIT0gQmxvY2tUaGlyZFBhcnR5U3RvcmFnZSkK
ICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgaWYgKG1fcHJvdG9jb2wgIT0gImh0dHAi
ICYmIG1fcHJvdG9jb2wgIT0gImh0dHBzIikKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAg
IGlmIChpc0hUVFBGYW1pbHkoKSkKKyAgICAgICAgcmV0dXJuIGhvc3QoKTsKKworICAgIGlmIChT
Y2hlbWVSZWdpc3RyeTo6c2hvdWxkUGFydGl0aW9uQ2FjaGVGb3JVUkxTY2hlbWUobV9wcm90b2Nv
bCkpCisgICAgICAgIHJldHVybiBob3N0KCk7CiAKLSAgICByZXR1cm4gaG9zdCgpOworICAgIHJl
dHVybiBTdHJpbmcoKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NlY3VyaXR5T3JpZ2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2lu
LmgKaW5kZXggZDExODY2ZGUwYmRhNTNkOTA4M2YwNjNkYTg0MzY4ODk4NmRiZWRlMi4uNjFhOTRl
MjY3NGEzZmFhYzQ4YTc2MjQ1NjZiNjUzOGUwODJlYjFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vj
dXJpdHlPcmlnaW4uaApAQCAtMjA1LDYgKzIwNSwxMCBAQCBwdWJsaWM6CiAgICAgLy8gKGFuZCB3
aGV0aGVyIGl0IHdhcyBzZXQpIGJ1dCBjb25zaWRlcmluZyB0aGUgaG9zdC4gSXQgaXMgdXNlZCBm
b3IgcG9zdE1lc3NhZ2UuCiAgICAgYm9vbCBpc1NhbWVTY2hlbWVIb3N0UG9ydChjb25zdCBTZWN1
cml0eU9yaWdpbiopIGNvbnN0OwogCisgICAgLy8gVGhpcyBtZXRob2QgY2hlY2tzIHRoYXQgdGhl
IHNjaGVtZSBmb3IgdGhpcyBvcmlnaW4gaXMgYW4gSFRUUC1mYW1pbHkKKyAgICAvLyBzY2hlbWUs
IGUuZy4gSFRUUCBhbmQgSFRUUFMuCisgICAgYm9vbCBpc0hUVFBGYW1pbHkoKSBjb25zdCB7IHJl
dHVybiBtX3Byb3RvY29sID09ICJodHRwIiB8fCBtX3Byb3RvY29sID09ICJodHRwcyI7IH0KKwog
ICAgIHN0YXRpYyBTdHJpbmcgdXJsV2l0aFVuaXF1ZVNlY3VyaXR5T3JpZ2luKCk7CiAKIHByaXZh
dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAKaW5kZXggZjJi
NjJjOGU2ZmJiOTU2ZmE3ZTM0Y2JmMjMwMTYyODZjN2JjYjg4My4uNzcxMzgwMjcyNmQ3MjExNzVl
MGMzZDM5N2E3ZGE4MWY3Y2QyODk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2NoZW1lUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVt
ZVJlZ2lzdHJ5LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC0xNjQsNiArMTY1LDE0IEBAIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBDb250ZW50U2VjdXJpdHlQ
b2xpY3lCeXBhc3NpbmdTY2hlbWVzKCkKICAgICByZXR1cm4gc2NoZW1lczsKIH0KIAorI2lmIEVO
QUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCitzdGF0aWMgVVJMU2NoZW1lc01hcCYgY2FjaGVQYXJ0
aXRpb25pbmdTY2hlbWVzKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VVJMU2NoZW1l
c01hcD4gc2NoZW1lczsKKyAgICByZXR1cm4gc2NoZW1lczsKK30KKyNlbmRpZgorCiBib29sIFNj
aGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzTG9jYWwoY29uc3QgU3RyaW5nJiBz
Y2hlbWUpCiB7CiAgICAgaWYgKHNjaGVtZS5pc0VtcHR5KCkpCkBAIC0zMjMsNCArMzMyLDE4IEBA
IGJvb2wgU2NoZW1lUmVnaXN0cnk6OnNob3VsZENhY2hlUmVzcG9uc2VzRnJvbVVSTFNjaGVtZUlu
ZGVmaW5pdGVseShjb25zdCBTdHJpbmcmCiAgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdDYXNlKHNj
aGVtZSwgImRhdGEiKTsKIH0KIAorI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCit2b2lk
IFNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzQ2FjaGVQYXJ0aXRpb25lZChjb25z
dCBTdHJpbmcmIHNjaGVtZSkKK3sKKyAgICBjYWNoZVBhcnRpdGlvbmluZ1NjaGVtZXMoKS5hZGQo
c2NoZW1lKTsKK30KKworYm9vbCBTY2hlbWVSZWdpc3RyeTo6c2hvdWxkUGFydGl0aW9uQ2FjaGVG
b3JVUkxTY2hlbWUoY29uc3QgU3RyaW5nJiBzY2hlbWUpCit7CisgICAgaWYgKHNjaGVtZS5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gY2FjaGVQYXJ0aXRpb25p
bmdTY2hlbWVzKCkuY29udGFpbnMoc2NoZW1lKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdp
c3RyeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuaAppbmRleCAz
NzAwYjgxZGY2MGI2MTQxMTkzYTMwMmE3M2ZkYjc4NzhlM2FiZGEyLi40M2VhM2JjOWI3ODcwMjg3
NjhkMDE2N2RmNTFkNDc2Y2U0ZWUxNjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY2hlbWVSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVt
ZVJlZ2lzdHJ5LmgKQEAgLTkxLDYgKzkxLDEyIEBAIHB1YmxpYzoKICAgICAKICAgICAvLyBTY2hl
bWVzIHdob3NlIHJlc3BvbnNlcyBjYW4gYmUgY2FjaGVkIGluZGVmaW5pdGVseS4KICAgICBzdGF0
aWMgYm9vbCBzaG91bGRDYWNoZVJlc3BvbnNlc0Zyb21VUkxTY2hlbWVJbmRlZmluaXRlbHkoY29u
c3QgU3RyaW5nJiBzY2hlbWUpOworCisjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKKyAg
ICAvLyBTY2hlbWVzIHdob3NlIHJlcXVlc3RzIHNob3VsZCBiZSBwYXJ0aXRpb25lZCBpbiB0aGUg
Y2FjaGUKKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzQ2FjaGVQYXJ0aXRpb25l
ZChjb25zdCBTdHJpbmcmIHNjaGVtZSk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkUGFydGl0aW9u
Q2FjaGVGb3JVUkxTY2hlbWUoY29uc3QgU3RyaW5nJiBzY2hlbWUpOworI2VuZGlmCiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggNGRlMGU4YTQzYTM0ZjNhZjQ4
MTg3MmE2ZjIxOTcyM2ZiZmNlNTJlOC4uZjQwZDE3NGNmMDEzMTNiMTY5MzY4YzBjZDIxMTE0MTM3
ODk2NzA4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNjksNiArNjksOSBAQCB2b2lkIFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKICAgICBlbmNvZGVyIDw8IHVybFNjaGVtZXNSZWdpc3RlcmVkQXNOb0FjY2VzczsKICAg
ICBlbmNvZGVyIDw8IHVybFNjaGVtZXNSZWdpc3RlcmVkQXNEaXNwbGF5SXNvbGF0ZWQ7CiAgICAg
ZW5jb2RlciA8PCB1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzQ09SU0VuYWJsZWQ7CisjaWYgRU5BQkxF
KENBQ0hFX1BBUlRJVElPTklORykKKyAgICBlbmNvZGVyIDw8IHVybFNjaGVtZXNSZWdpc3RlcmVk
QXNDYWNoZVBhcnRpdGlvbmVkOworI2VuZGlmCiAjaWYgRU5BQkxFKENVU1RPTV9QUk9UT0NPTFMp
CiAgICAgZW5jb2RlciA8PCB1cmxTY2hlbWVzUmVnaXN0ZXJlZEZvckN1c3RvbVByb3RvY29sczsK
ICNlbmRpZgpAQCAtMTYwLDYgKzE2MywxMCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnM6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvYwogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnVy
bFNjaGVtZXNSZWdpc3RlcmVkQXNDT1JTRW5hYmxlZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
KyNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzQ2FjaGVQYXJ0aXRpb25lZCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgogI2lmIEVOQUJMRShDVVNUT01fUFJPVE9DT0xTKQog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEZv
ckN1c3RvbVByb3RvY29scykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGU0
ZjJkNTI1MDk4NTcxNzMwYjIyOGViZDA3ZDI2ZGFmZjk1NzA3NDYuLmRjM2FjM2U4NDc2NzMzOGMw
NmQ3NmQ1MWE2ODQxZmExZGFjMTU4ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtNzgsNiArNzgsOSBAQCBzdHJ1
Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgVmVjdG9yPFN0cmluZz4gdXJs
U2NoZW1lc1JlZ2lzdGVyZWRBc05vQWNjZXNzOwogICAgIFZlY3RvcjxTdHJpbmc+IHVybFNjaGVt
ZXNSZWdpc3RlcmVkQXNEaXNwbGF5SXNvbGF0ZWQ7CiAgICAgVmVjdG9yPFN0cmluZz4gdXJsU2No
ZW1lc1JlZ2lzdGVyZWRBc0NPUlNFbmFibGVkOworI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05J
TkcpCisgICAgVmVjdG9yPFN0cmluZz4gdXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0NhY2hlUGFydGl0
aW9uZWQ7CisjZW5kaWYKICNpZiBFTkFCTEUoQ1VTVE9NX1BST1RPQ09MUykKICAgICBWZWN0b3I8
U3RyaW5nPiB1cmxTY2hlbWVzUmVnaXN0ZXJlZEZvckN1c3RvbVByb3RvY29sczsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAppbmRleCBlOGQw
MGY2YTFjNDhiZmFlZDc2Y2YxODZkZGQwM2I4YjE2YzY5ODljLi4wY2Q5ZWQ5NGJhMWJkMTkzODhm
NGFmNTllZWNmMjRkYTg2NDQ2NTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0LmNwcApAQCAtMTg2LDYgKzE4NiwxNiBAQCB2b2lkIFdLQ29udGV4dFJlZ2lz
dGVyVVJMU2NoZW1lQXNTZWN1cmUoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLU3RyaW5nUmVm
IHVybAogICAgIHRvSW1wbChjb250ZXh0UmVmKS0+cmVnaXN0ZXJVUkxTY2hlbWVBc1NlY3VyZSh0
b0ltcGwodXJsU2NoZW1lKS0+c3RyaW5nKCkpOwogfQogCit2b2lkIFdLQ29udGV4dFJlZ2lzdGVy
VVJMU2NoZW1lQXNDYWNoZVBhcnRpdGlvbmVkKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1N0
cmluZ1JlZiB1cmxTY2hlbWUpCit7CisjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKKyAg
ICB0b0ltcGwoY29udGV4dFJlZiktPnJlZ2lzdGVyVVJMU2NoZW1lQXNDYWNoZVBhcnRpdGlvbmVk
KHRvSW1wbCh1cmxTY2hlbWUpLT5zdHJpbmcoKSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShj
b250ZXh0UmVmKTsKKyAgICBVTlVTRURfUEFSQU0odXJsU2NoZW1lKTsKKyNlbmRpZgorfQorCiB2
b2lkIFdLQ29udGV4dFNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoV0tD
b250ZXh0UmVmIGNvbnRleHRSZWYsIFdLU3RyaW5nUmVmIHVybFNjaGVtZSkKIHsKICAgICB0b0lt
cGwoY29udGV4dFJlZiktPnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUo
dG9JbXBsKHVybFNjaGVtZSktPnN0cmluZygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oCmluZGV4IDgxNGUxNTYzMTc1ZDZiZWFlYmQ1
YmNmNjYxYWRkNTBjYTk1MGRhNDUuLjFlZTFjZTNiMTcyYTYwZTZmYmViYWVjODAxMjlmNWE0NmMy
YTQ0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHRQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dFByaXZhdGUuaApAQCAtNTIsNiArNTIsOCBAQCBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRT
aG91bGRVc2VGb250U21vb3RoaW5nKFdLQ29udGV4dFJlZiBjb250ZXh0LCBib29sIHVzZQogCiBX
S19FWFBPUlQgdm9pZCBXS0NvbnRleHRSZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlKFdLQ29udGV4
dFJlZiBjb250ZXh0LCBXS1N0cmluZ1JlZiB1cmxTY2hlbWUpOwogCitXS19FWFBPUlQgdm9pZCBX
S0NvbnRleHRSZWdpc3RlclVSTFNjaGVtZUFzQ2FjaGVQYXJ0aXRpb25lZChXS0NvbnRleHRSZWYg
Y29udGV4dCwgV0tTdHJpbmdSZWYgdXJsU2NoZW1lKTsKKwogV0tfRVhQT1JUIHZvaWQgV0tDb250
ZXh0U2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShXS0NvbnRleHRSZWYg
Y29udGV4dCwgV0tTdHJpbmdSZWYgdXJsU2NoZW1lKTsKIAogV0tfRVhQT1JUIHZvaWQgV0tDb250
ZXh0U2V0SWNvbkRhdGFiYXNlUGF0aChXS0NvbnRleHRSZWYgY29udGV4dCwgV0tTdHJpbmdSZWYg
aWNvbkRhdGFiYXNlUGF0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAK
aW5kZXggZTIyNzYyZGExMjlmMzNhZDVhMjVlZTcxMWZkNDAyYWM4NTE4YzZjMS4uNjU0MjFiZThh
NWQ1YzViOWJiYzhmZmNjYzBkMmQ3YTQzNjMyNjBlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb250ZXh0LmNwcApAQCAtNTc1LDYgKzU3NSw5IEBAIFdlYlByb2Nlc3NQcm94eSYgV2Vi
Q29udGV4dDo6Y3JlYXRlTmV3V2ViUHJvY2VzcygpCiAgICAgY29weVRvVmVjdG9yKG1fc2NoZW1l
c1RvUmVnaXN0ZXJBc05vQWNjZXNzLCBwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkQXNO
b0FjY2Vzcyk7CiAgICAgY29weVRvVmVjdG9yKG1fc2NoZW1lc1RvUmVnaXN0ZXJBc0Rpc3BsYXlJ
c29sYXRlZCwgcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzRGlzcGxheUlzb2xhdGVk
KTsKICAgICBjb3B5VG9WZWN0b3IobV9zY2hlbWVzVG9SZWdpc3RlckFzQ09SU0VuYWJsZWQsIHBh
cmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0NPUlNFbmFibGVkKTsKKyNpZiBFTkFCTEUo
Q0FDSEVfUEFSVElUSU9OSU5HKQorICAgIGNvcHlUb1ZlY3RvcihtX3NjaGVtZXNUb1JlZ2lzdGVy
QXNDYWNoZVBhcnRpdGlvbmVkLCBwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkQXNDYWNo
ZVBhcnRpdGlvbmVkKTsKKyNlbmRpZgogCiAgICAgcGFyYW1ldGVycy5zaG91bGRBbHdheXNVc2VD
b21wbGV4VGV4dENvZGVQYXRoID0gbV9hbHdheXNVc2VzQ29tcGxleFRleHRDb2RlUGF0aDsKICAg
ICBwYXJhbWV0ZXJzLnNob3VsZFVzZUZvbnRTbW9vdGhpbmcgPSBtX3Nob3VsZFVzZUZvbnRTbW9v
dGhpbmc7CkBAIC05MzUsNiArOTM4LDE0IEBAIHZvaWQgV2ViQ29udGV4dDo6dW5yZWdpc3Rlckds
b2JhbFVSTFNjaGVtZUFzSGF2aW5nQ3VzdG9tUHJvdG9jb2xIYW5kbGVycyhjb25zdCBTCiB9CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCit2b2lkIFdlYkNvbnRleHQ6
OnJlZ2lzdGVyVVJMU2NoZW1lQXNDYWNoZVBhcnRpdGlvbmVkKGNvbnN0IFN0cmluZyYgdXJsU2No
ZW1lKQoreworICAgIG1fc2NoZW1lc1RvUmVnaXN0ZXJBc0NhY2hlUGFydGl0aW9uZWQuYWRkKHVy
bFNjaGVtZSk7CisgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpS
ZWdpc3RlclVSTFNjaGVtZUFzQ2FjaGVQYXJ0aXRpb25lZCh1cmxTY2hlbWUpKTsKK30KKyNlbmRp
ZgorCiB2b2lkIFdlYkNvbnRleHQ6OnNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCBjYWNoZU1vZGVs
KQogewogICAgIG1fY2FjaGVNb2RlbCA9IGNhY2hlTW9kZWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbnRleHQuaAppbmRleCBmNWIwZTU0YTY3MTJiYmZiMzYzMTgzMWVjOTJlNzFlNjllMTdm
ZTEwLi5kYjlhMWMwMTc1OTZjNTAzZDBjYzU2ODY3MWViMTc0OTEyNjNmZGUxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKQEAgLTE4OSw2ICsxODksOSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzTm9BY2Nlc3MoY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCByZWdpc3RlclVSTFNjaGVtZUFzRGlzcGxheUlzb2xhdGVkKGNvbnN0IFN0cmluZyYpOwog
ICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0NPUlNFbmFibGVkKGNvbnN0IFN0cmluZyYpOwor
I2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCisgICAgdm9pZCByZWdpc3RlclVSTFNjaGVt
ZUFzQ2FjaGVQYXJ0aXRpb25lZChjb25zdCBTdHJpbmcmKTsKKyNlbmRpZgogCiAgICAgdm9pZCBh
ZGRWaXNpdGVkTGluayhjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGFkZFZpc2l0ZWRMaW5rSGFz
aChXZWJDb3JlOjpMaW5rSGFzaCk7CkBAIC00NTAsNiArNDUzLDkgQEAgcHJpdmF0ZToKICAgICBI
YXNoU2V0PFN0cmluZz4gbV9zY2hlbWVzVG9SZWdpc3RlckFzTm9BY2Nlc3M7CiAgICAgSGFzaFNl
dDxTdHJpbmc+IG1fc2NoZW1lc1RvUmVnaXN0ZXJBc0Rpc3BsYXlJc29sYXRlZDsKICAgICBIYXNo
U2V0PFN0cmluZz4gbV9zY2hlbWVzVG9SZWdpc3RlckFzQ09SU0VuYWJsZWQ7CisjaWYgRU5BQkxF
KENBQ0hFX1BBUlRJVElPTklORykKKyAgICBIYXNoU2V0PFN0cmluZz4gbV9zY2hlbWVzVG9SZWdp
c3RlckFzQ2FjaGVQYXJ0aXRpb25lZDsKKyNlbmRpZgogCiAgICAgYm9vbCBtX2Fsd2F5c1VzZXND
b21wbGV4VGV4dENvZGVQYXRoOwogICAgIGJvb2wgbV9zaG91bGRVc2VGb250U21vb3RoaW5nOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNzdmMzA3YWY3NTBl
MzkxZjVmNDJjNDY0Y2FjZDUxYjI1ZTdmMzBjOS4uNWFhMjkwMTE3NmQ2OWIzOWEyMjc5ZjU0MDI4
NjA1NmZhMzVlOWE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CkBAIC0zMjcsNiArMzI3LDExIEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nl
c3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1lCiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkQXNDT1JTRW5h
YmxlZC5zaXplKCk7ICsraSkKICAgICAgICAgcmVnaXN0ZXJVUkxTY2hlbWVBc0NPUlNFbmFibGVk
KHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0NPUlNFbmFibGVkW2ldKTsKIAorI2lm
IEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCisgICAgZm9yIChhdXRvJiBzY2hlbWUgOiBwYXJh
bWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkQXNDYWNoZVBhcnRpdGlvbmVkKQorICAgICAgICBy
ZWdpc3RlclVSTFNjaGVtZUFzQ09SU0VuYWJsZWQoc2NoZW1lKTsKKyNlbmRpZgorCiAgICAgc2V0
RGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWwocGFyYW1ldGVycy5kZWZhdWx0UmVxdWVzdFRp
bWVvdXRJbnRlcnZhbCk7CiAKICAgICBpZiAocGFyYW1ldGVycy5zaG91bGRBbHdheXNVc2VDb21w
bGV4VGV4dENvZGVQYXRoKQpAQCAtNDI3LDYgKzQzMiwxMyBAQCB2b2lkIFdlYlByb2Nlc3M6OnJl
Z2lzdGVyVVJMU2NoZW1lQXNDT1JTRW5hYmxlZChjb25zdCBTdHJpbmcmIHVybFNjaGVtZSkgY29u
c3QKICAgICBTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0NPUlNFbmFibGVkKHVy
bFNjaGVtZSk7CiB9CiAKKyNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQordm9pZCBXZWJQ
cm9jZXNzOjpyZWdpc3RlclVSTFNjaGVtZUFzQ2FjaGVQYXJ0aXRpb25lZChjb25zdCBTdHJpbmcm
IHVybFNjaGVtZSkgY29uc3QKK3sKKyAgICBTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hl
bWVBc0NhY2hlUGFydGl0aW9uZWQodXJsU2NoZW1lKTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlBy
b2Nlc3M6OnNldERlZmF1bHRSZXF1ZXN0VGltZW91dEludGVydmFsKGRvdWJsZSB0aW1lb3V0SW50
ZXJ2YWwpCiB7CiAgICAgUmVzb3VyY2VSZXF1ZXN0OjpzZXREZWZhdWx0VGltZW91dEludGVydmFs
KHRpbWVvdXRJbnRlcnZhbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmlu
ZGV4IDJhODZmNzNiMDdmMmZjY2RlYTBhM2E0YTg5ZDkxMTQzOTQwMmQ3YzUuLjc3ZDI0ZWQzOTNh
MmY2YTcxMTFiMDZhMjc3MTU3OGNiMzVlMmFkYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oCkBAIC0yMDUsNiArMjA1LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZ2lz
dGVyVVJMU2NoZW1lQXNOb0FjY2Vzcyhjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICB2b2lkIHJl
Z2lzdGVyVVJMU2NoZW1lQXNEaXNwbGF5SXNvbGF0ZWQoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAg
ICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzQ09SU0VuYWJsZWQoY29uc3QgU3RyaW5nJikgY29u
c3Q7CisjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKKyAgICB2b2lkIHJlZ2lzdGVyVVJM
U2NoZW1lQXNDYWNoZVBhcnRpdGlvbmVkKGNvbnN0IFN0cmluZyYpIGNvbnN0OworI2VuZGlmCiAg
ICAgdm9pZCBzZXREZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbChkb3VibGUpOwogICAgIHZv
aWQgc2V0QWx3YXlzVXNlc0NvbXBsZXhUZXh0Q29kZVBhdGgoYm9vbCk7CiAgICAgdm9pZCBzZXRT
aG91bGRVc2VGb250U21vb3RoaW5nKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDQ3YjBhMWMxZDg1NzRhOTA0YWE3NzRl
NjQwODdkZjU1ZjNjMTEyYzMuLmRlNzlkM2ZlZmM4Njk1NTNiODE0YTI1NWU2OTM3NWRiMWRlZWVh
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4KQEAgLTQyLDYgKzQyLDkgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNl
aXZlciB7CiAgICAgUmVnaXN0ZXJVUkxTY2hlbWVBc05vQWNjZXNzKFN0cmluZyBzY2hlbWUpCiAg
ICAgUmVnaXN0ZXJVUkxTY2hlbWVBc0Rpc3BsYXlJc29sYXRlZChTdHJpbmcgc2NoZW1lKQogICAg
IFJlZ2lzdGVyVVJMU2NoZW1lQXNDT1JTRW5hYmxlZChTdHJpbmcgc2NoZW1lKQorI2lmIEVOQUJM
RShDQUNIRV9QQVJUSVRJT05JTkcpCisgICAgUmVnaXN0ZXJVUkxTY2hlbWVBc0NhY2hlUGFydGl0
aW9uZWQoU3RyaW5nIHNjaGVtZSkKKyNlbmRpZgogICAgIFNldERlZmF1bHRSZXF1ZXN0VGltZW91
dEludGVydmFsKGRvdWJsZSB0aW1lb3V0SW50ZXJ2YWwpCiAgICAgU2V0QWx3YXlzVXNlc0NvbXBs
ZXhUZXh0Q29kZVBhdGgoYm9vbCBhbHdheXNVc2VDb21wbGV4VGV4dCkKICAgICBTZXRTaG91bGRV
c2VGb250U21vb3RoaW5nKGJvb2wgdXNlRm9udFNtb290aGluZykK
</data>
<flag name="review"
          id="246506"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>