<?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>64467</bug_id>
          
          <creation_ts>2011-07-13 11:08:18 -0700</creation_ts>
          <short_desc>[V8] Avoid memory leaks with hidden references.</short_desc>
          <delta_ts>2011-07-13 14:45:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Vitaly Repeshko">vitalyr</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ager</cc>
    
    <cc>dglazkov</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>436531</commentid>
    <comment_count>0</comment_count>
    <who name="Vitaly Repeshko">vitalyr</who>
    <bug_when>2011-07-13 11:08:18 -0700</bug_when>
    <thetext>[V8] Avoid memory leaks with hidden references.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436533</commentid>
    <comment_count>1</comment_count>
      <attachid>100689</attachid>
    <who name="Vitaly Repeshko">vitalyr</who>
    <bug_when>2011-07-13 11:13:57 -0700</bug_when>
    <thetext>Created attachment 100689
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436536</commentid>
    <comment_count>2</comment_count>
    <who name="Vitaly Repeshko">vitalyr</who>
    <bug_when>2011-07-13 11:20:15 -0700</bug_when>
    <thetext>See also http://crbug.com/84613</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436542</commentid>
    <comment_count>3</comment_count>
      <attachid>100689</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-13 11:23:34 -0700</bug_when>
    <thetext>Comment on attachment 100689
Patch

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

Looks reasonable, but I&apos;d like to see one more iteration with Vector and the namespace question questions addressed.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:861
&gt; -            push(@implContentDecls, &quot;            V8DOMWrapper::setHiddenReference(info.Holder(), wrapper);\n&quot;);
&gt; +            push(@implContentDecls, &quot;            V8DOMWrapper::setNamedHiddenReference(info.Holder(), \&quot;${attrName}\&quot;, wrapper);\n&quot;);

Do we want to put attribute names into their own namespace?

&gt; Source/WebCore/bindings/v8/V8DOMWrapper.cpp:193
&gt; +static const char hiddenPrefix[] = &quot;WebCore::&quot;;

Don&apos;t we have this constant already in V8HiddenPropertyNames somewhere?

&gt; Source/WebCore/bindings/v8/V8DOMWrapper.cpp:199
&gt; +    char* prefixedName = new char[prefixLength + nameLength + 1];

Can we use Vector&lt;char&gt; instead?  All this bare-handed lifting looks wrong.  Vector&lt;char&gt; also can have an inline capacity, which means we can avoid the malloc in the common case of a short name.

&gt; Source/WebCore/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:164
&gt; +    const char* referenceName;

I&apos;d initialize this to zero.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436571</commentid>
    <comment_count>4</comment_count>
      <attachid>100698</attachid>
    <who name="Vitaly Repeshko">vitalyr</who>
    <bug_when>2011-07-13 11:47:12 -0700</bug_when>
    <thetext>Created attachment 100698
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436580</commentid>
    <comment_count>5</comment_count>
      <attachid>100700</attachid>
    <who name="Vitaly Repeshko">vitalyr</who>
    <bug_when>2011-07-13 11:52:28 -0700</bug_when>
    <thetext>Created attachment 100700
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436621</commentid>
    <comment_count>6</comment_count>
      <attachid>100700</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-13 13:12:32 -0700</bug_when>
    <thetext>Comment on attachment 100700
Patch

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

Thanks.  Very nice.

&gt; Source/WebCore/bindings/v8/V8HiddenPropertyName.cpp:58
&gt; +    return v8::String::NewSymbol(prefixedName.data(), static_cast&lt;int&gt;(prefixedName.size()));

Beautiful, except for the int cast!  (but I presume that&apos;s a problem with the V8 API).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436624</commentid>
    <comment_count>7</comment_count>
      <attachid>100700</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-13 13:14:46 -0700</bug_when>
    <thetext>Comment on attachment 100700
Patch

Attachment 100700 did not pass cr-mac-ews (chromium):
Output: http://queues.webkit.org/results/9016662</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436673</commentid>
    <comment_count>8</comment_count>
    <who name="Vitaly Repeshko">vitalyr</who>
    <bug_when>2011-07-13 14:45:25 -0700</bug_when>
    <thetext>	M	Source/WebCore/ChangeLog
	M	Source/WebCore/bindings/scripts/CodeGeneratorV8.pm
	M	Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp
	M	Source/WebCore/bindings/v8/V8DOMWrapper.cpp
	M	Source/WebCore/bindings/v8/V8DOMWrapper.h
	M	Source/WebCore/bindings/v8/V8HiddenPropertyName.cpp
	M	Source/WebCore/bindings/v8/V8HiddenPropertyName.h
	M	Source/WebCore/bindings/v8/WrapperTypeInfo.h
	M	Source/WebCore/bindings/v8/custom/V8CSSStyleSheetCustom.cpp
	M	Source/WebCore/bindings/v8/custom/V8DOMStringMapCustom.cpp
	M	Source/WebCore/bindings/v8/custom/V8DOMTokenListCustom.cpp
	M	Source/WebCore/bindings/v8/custom/V8LocationCustom.cpp
	M	Source/WebCore/bindings/v8/custom/V8MessageChannelConstructor.cpp
	M	Source/WebCore/bindings/v8/custom/V8NamedNodeMapCustom.cpp
	M	Source/WebCore/bindings/v8/custom/V8StyleSheetCustom.cpp
	M	Source/WebCore/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp
Committed r90949</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100689</attachid>
            <date>2011-07-13 11:13:57 -0700</date>
            <delta_ts>2011-07-13 11:47:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64467-20110713221355.patch</filename>
            <type>text/plain</type>
            <size>15201</size>
            <attacher name="Vitaly Repeshko">vitalyr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA5MDYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhOTdiZDVmZmMyMDdiZmRi
YTY2MjM3NDljYzI0NWU4ZGNmOTI4ODUyLi4yNjQ1OGI2ZmQ0ZGJkYzRlY2I2OWUzNjQzNTAwZTAz
OTUzYmIzMzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTEtMDctMTMgIFZpdGFs
eSBSZXBlc2hrbyAgPHZpdGFseXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtWOF0gQXZvaWQg
bWVtb3J5IGxlYWtzIHdpdGggaGlkZGVuIHJlZmVyZW5jZXMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDQ2NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHVzZWQgdG8gaGF2ZSBncm93aW5nIGFycmF5
cyBvZiBoaWRkZW4gcmVmZXJlbmNlcyBhc3NvY2lhdGVkCisgICAgICAgIHdpdGggb2JqZWN0cy4g
VGhlIGVudHJpZXMgaW4gdGhpcyBhcnJheSBoYWQgbm8ga2V5cyBhbmQgd2VyZSBuZXZlcgorICAg
ICAgICByZW1vdmVkLiBUaGlzIHBhdGNoIGNoYW5nZXMgdGhlIGludGVyZmFjZSB0byByZXF1aXJl
IGEgcmVmZXJlbmNlCisgICAgICAgIG5hbWUuIFRoaXMgd2F5IGl0J3MgaGFyZGVyIHRvIGxlYWsg
YW4gdW5ib3VuZGVkIG51bWJlciBvZgorICAgICAgICBvYmplY3RzLiBBbHNvIGl0IG1ha2VzIG91
ciB3cmFwcGVyIG9iamVjdCBvbmUgbWFjaGluZSB3b3JkCisgICAgICAgIHNtYWxsZXIuCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKEdl
bmVyYXRlTm9ybWFsQXR0ckdldHRlcik6IFN0YXJ0ZWQgdXNpbmcgbmV3IGludGVyZmFjZS4KKwor
ICAgICAgICBJbnRlcmZhY2UgY2hhbmdlczoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdy
YXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRl
blJlZmVyZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlk
ZGVuV2luZG93UmVmZXJlbmNlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdyYXBwZXIu
aDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9XcmFwcGVyVHlwZUluZm8uaDoKKworICAgICAgICBV
cGRhdGUgdXNhZ2VzIG9mIGhpZGRlbiByZWZlcmVuY2VzOgorICAgICAgICAqIGJpbmRpbmdzL3Y4
L2N1c3RvbS9WOENTU1N0eWxlU2hlZXRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9W
OCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVjgpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOERPTVRva2VuTGlzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4KToKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp0b1Y4KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdl
Q2hhbm5lbENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4TWVzc2FnZUNoYW5u
ZWw6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OE5hbWVkTm9kZU1hcEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4KToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnRvVjgpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4T2JqZWN0KToK
KwogMjAxMS0wNy0xMiAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IGZhY3RvciBOZXR3b3JrTG9nVmlldyBvdXQgb2YgTmV0d29y
ayBwYW5lbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbQppbmRleCA2NmY5NzBjMjg2MTA4M2IyOTlkM2JkODI5NTk4YTZjNDc5YWQ5ODA3
Li5jZjBlZGJlOTcxYmM3YWM5ODU3ZWVkMGQ1YWM4NjQ1Zjk4YTk0MzBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtODU2
LDkgKzg1Niw5IEBAIEVORAogICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAg
ICB3cmFwcGVyID0gdG9WOChyZXN1bHQuZ2V0KCkpO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50RGVjbHMsICIgICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpXG4iKTsKICAgICAg
ICAgaWYgKCRkYXRhTm9kZS0+bmFtZSBlcSAiRE9NV2luZG93IikgewotICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0SGlkZGVu
V2luZG93UmVmZXJlbmNlKGltcC0+ZnJhbWUoKSwgd3JhcHBlcik7XG4iKTsKKyAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgICAgICBWOERPTVdyYXBwZXI6OnNldE5h
bWVkSGlkZGVuV2luZG93UmVmZXJlbmNlKGltcC0+ZnJhbWUoKSwgXCIke2F0dHJOYW1lfVwiLCB3
cmFwcGVyKTtcbiIpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnREZWNscywgIiAgICAgICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0SGlkZGVuUmVmZXJlbmNl
KGluZm8uSG9sZGVyKCksIHdyYXBwZXIpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudERlY2xzLCAiICAgICAgICAgICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVy
ZW5jZShpbmZvLkhvbGRlcigpLCBcIiR7YXR0ck5hbWV9XCIsIHdyYXBwZXIpO1xuIik7CiAgICAg
ICAgIH0KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICB9XG4iKTsKICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICByZXR1cm4gd3JhcHBlcjtcbiIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKaW5kZXggYzYxMjdiYzhk
NDI5NDljNWE3MWMzMzI4ZjA5MDliODdlMzQwMDZkMS4uYmMzNmFiYzIyNDYyNDgzNDA2NGRlNzA0
YmM4MmE5MGExMjUxMWQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhET01XcmFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdy
YXBwZXIuY3BwCkBAIC05Myw2ICs5Myw3IEBACiAjZW5kaWYKIAogI2luY2x1ZGUgPGFsZ29yaXRo
bT4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDx1dGlsaXR5PgogI2luY2x1ZGUgPHY4
LWRlYnVnLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KQEAgLTE4OSwxOCArMTkwLDIw
IEBAIHY4OjpMb2NhbDx2ODo6RnVuY3Rpb24+IFY4RE9NV3JhcHBlcjo6Z2V0Q29uc3RydWN0b3Io
V3JhcHBlclR5cGVJbmZvKiB0eXBlLCBXb3JrCiB9CiAjZW5kaWYKIAotdm9pZCBWOERPTVdyYXBw
ZXI6OnNldEhpZGRlblJlZmVyZW5jZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHBhcmVudCwgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IGNoaWxkKQorc3RhdGljIGNvbnN0IGNoYXIgaGlkZGVuUHJlZml4
W10gPSAiV2ViQ29yZTo6IjsKKwordm9pZCBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVm
ZXJlbmNlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gcGFyZW50LCBjb25zdCBjaGFyKiBuYW1lLCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY2hpbGQpCiB7Ci0gICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4g
aGlkZGVuUmVmZXJlbmNlT2JqZWN0ID0gcGFyZW50LT5HZXRJbnRlcm5hbEZpZWxkKHY4RE9NSGlk
ZGVuUmVmZXJlbmNlQXJyYXlJbmRleCk7Ci0gICAgaWYgKGhpZGRlblJlZmVyZW5jZU9iamVjdC0+
SXNOdWxsKCkgfHwgaGlkZGVuUmVmZXJlbmNlT2JqZWN0LT5Jc1VuZGVmaW5lZCgpKSB7Ci0gICAg
ICAgIGhpZGRlblJlZmVyZW5jZU9iamVjdCA9IHY4OjpBcnJheTo6TmV3KCk7Ci0gICAgICAgIHBh
cmVudC0+U2V0SW50ZXJuYWxGaWVsZCh2OERPTUhpZGRlblJlZmVyZW5jZUFycmF5SW5kZXgsIGhp
ZGRlblJlZmVyZW5jZU9iamVjdCk7Ci0gICAgfQotICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IGhp
ZGRlblJlZmVyZW5jZUFycmF5ID0gdjg6OkxvY2FsPHY4OjpBcnJheT46OkNhc3QoaGlkZGVuUmVm
ZXJlbmNlT2JqZWN0KTsKLSAgICBoaWRkZW5SZWZlcmVuY2VBcnJheS0+U2V0KHY4OjpJbnRlZ2Vy
OjpOZXcoaGlkZGVuUmVmZXJlbmNlQXJyYXktPkxlbmd0aCgpKSwgY2hpbGQpOworICAgIHNpemVf
dCBwcmVmaXhMZW5ndGggPSBzaXplb2YoaGlkZGVuUHJlZml4KSAtIDE7CisgICAgc2l6ZV90IG5h
bWVMZW5ndGggPSBzdHJsZW4obmFtZSk7CisgICAgY2hhciogcHJlZml4ZWROYW1lID0gbmV3IGNo
YXJbcHJlZml4TGVuZ3RoICsgbmFtZUxlbmd0aCArIDFdOworICAgIG1lbWNweShwcmVmaXhlZE5h
bWUsIGhpZGRlblByZWZpeCwgcHJlZml4TGVuZ3RoKTsKKyAgICBtZW1jcHkocHJlZml4ZWROYW1l
ICsgcHJlZml4TGVuZ3RoLCBuYW1lLCBuYW1lTGVuZ3RoICsgMSk7CisgICAgcGFyZW50LT5TZXRI
aWRkZW5WYWx1ZSh2ODo6U3RyaW5nOjpOZXdTeW1ib2wocHJlZml4ZWROYW1lKSwgY2hpbGQpOwor
ICAgIGRlbGV0ZVtdIHByZWZpeGVkTmFtZTsKIH0KIAotdm9pZCBWOERPTVdyYXBwZXI6OnNldEhp
ZGRlbldpbmRvd1JlZmVyZW5jZShGcmFtZSogZnJhbWUsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBq
c09iamVjdCkKK3ZvaWQgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlbldpbmRvd1JlZmVyZW5j
ZShGcmFtZSogZnJhbWUsIGNvbnN0IGNoYXIqIG5hbWUsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBq
c09iamVjdCkKIHsKICAgICAvLyBHZXQgRE9NV2luZG93CiAgICAgaWYgKCFmcmFtZSkKQEAgLTIx
NCw3ICsyMTcsNyBAQCB2b2lkIFY4RE9NV3JhcHBlcjo6c2V0SGlkZGVuV2luZG93UmVmZXJlbmNl
KEZyYW1lKiBmcmFtZSwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+CiAgICAgZ2xvYmFsID0gVjhET01X
cmFwcGVyOjpsb29rdXBET01XcmFwcGVyKFY4RE9NV2luZG93OjpHZXRUZW1wbGF0ZSgpLCBnbG9i
YWwpOwogICAgIEFTU0VSVCghZ2xvYmFsLklzRW1wdHkoKSk7CiAKLSAgICBzZXRIaWRkZW5SZWZl
cmVuY2UoZ2xvYmFsLCBqc09iamVjdCk7CisgICAgc2V0TmFtZWRIaWRkZW5SZWZlcmVuY2UoZ2xv
YmFsLCBuYW1lLCBqc09iamVjdCk7CiB9CiAKIFdyYXBwZXJUeXBlSW5mbyogVjhET01XcmFwcGVy
Ojpkb21XcmFwcGVyVHlwZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IG9iamVjdCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgKaW5kZXggN2Y0NDkwYWQxY2YzNmQwNTE4
ZWE2ZGFiOWM1MWEzZGUyNGYyM2ViYi4uMGNhZTZkYjQwYmQwNGU5MTI4NTQ4MWRjNDgwZDUxY2Y0
MzY4NGFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFw
cGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgKQEAg
LTExNCwxMCArMTE0LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gQ2hlY2sg
d2hldGhlciBhIFY4IHZhbHVlIGlzIGEgd3JhcHBlciBvZiB0eXBlIHxjbGFzc1R5cGV8LgogICAg
ICAgICBzdGF0aWMgYm9vbCBpc1dyYXBwZXJPZlR5cGUodjg6OkhhbmRsZTx2ODo6VmFsdWU+LCBX
cmFwcGVyVHlwZUluZm8qKTsKIAotICAgICAgICBzdGF0aWMgdm9pZCBzZXRIaWRkZW5SZWZlcmVu
Y2Uodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBwYXJlbnQsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBj
aGlsZCk7Ci0KLSAgICAgICAgLy8gU2V0IGhpZGRlbiByZWZlcmVuY2VzIGluIGEgRE9NV2luZG93
IG9iamVjdCBvZiBhIGZyYW1lLgotICAgICAgICBzdGF0aWMgdm9pZCBzZXRIaWRkZW5XaW5kb3dS
ZWZlcmVuY2UoRnJhbWUqLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4pOworICAgICAgICAvLyBQcm9w
ZXIgb2JqZWN0IGxpZmV0aW1lIHN1cHBvcnQuCisgICAgICAgIC8vCisgICAgICAgIC8vIEhlbHBl
ciBmdW5jdGlvbnMgdG8gbWFrZSBzdXJlIHRoZSBjaGlsZCBvYmplY3Qgc3RheXMgYWxpdmUKKyAg
ICAgICAgLy8gd2hpbGUgdGhlIHBhcmVudCBpcyBhbGl2ZS4gVXNpbmcgdGhlIG5hbWUgbW9yZSB0
aGFuIG9uY2UKKyAgICAgICAgLy8gb3ZlcndyaXRlcyBwcmV2aW91cyByZWZlcmVuY2VzIG1ha2lu
ZyBpdCBwb3NzaWJsZSB0byBmcmVlCisgICAgICAgIC8vIG9sZCBjaGlsZHJlbi4KKyAgICAgICAg
c3RhdGljIHZvaWQgc2V0TmFtZWRIaWRkZW5SZWZlcmVuY2Uodjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiBwYXJlbnQsIGNvbnN0IGNoYXIqIG5hbWUsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjaGlsZCk7
CisgICAgICAgIHN0YXRpYyB2b2lkIHNldE5hbWVkSGlkZGVuV2luZG93UmVmZXJlbmNlKEZyYW1l
KiwgY29uc3QgY2hhciosIHY4OjpIYW5kbGU8djg6OlZhbHVlPik7CiAKICAgICAgICAgc3RhdGlj
IHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBpbnN0YW50aWF0ZVY4T2JqZWN0KFY4UHJveHkqIHByb3h5
LCBXcmFwcGVyVHlwZUluZm8qLCB2b2lkKiBpbXBsKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvV3JhcHBlclR5cGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9XcmFwcGVyVHlwZUluZm8uaAppbmRleCAxNjZkNjQyZTE1MDc3YTJkY2ZlZjBmYmY0
ZWYyN2I3NDdkMzBkOTZhLi5jMjY4NGQ2NmJlNjY3ZmIyMDkzN2Q0NWQ5M2FiY2Y3Mjc2YTE1Y2Nj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9XcmFwcGVyVHlwZUluZm8u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9XcmFwcGVyVHlwZUluZm8uaApAQCAt
MzksOCArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiAgICAgc3RhdGljIGNvbnN0
IGludCB2OERPTVdyYXBwZXJUeXBlSW5kZXggPSAwOwogICAgIHN0YXRpYyBjb25zdCBpbnQgdjhE
T01XcmFwcGVyT2JqZWN0SW5kZXggPSAxOwotICAgIHN0YXRpYyBjb25zdCBpbnQgdjhET01IaWRk
ZW5SZWZlcmVuY2VBcnJheUluZGV4ID0gMjsKLSAgICBzdGF0aWMgY29uc3QgaW50IHY4RGVmYXVs
dFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgPSAzOworICAgIHN0YXRpYyBjb25zdCBpbnQgdjhE
ZWZhdWx0V3JhcHBlckludGVybmFsRmllbGRDb3VudCA9IDI7CiAKICAgICBzdGF0aWMgY29uc3Qg
dWludDE2X3QgdjhET01TdWJ0cmVlQ2xhc3NJZCA9IDE7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1N0eWxlU2hlZXRDdXN0b20uY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTU3R5bGVTaGVldEN1c3RvbS5jcHAK
aW5kZXggOWVmZmNhMzlhNWNmNDE3NWFlNzFkYjAzODM4MTk1NzEyZjQxNTk1ZC4uOWIyOTg4Yjdl
YWVhM2I0YmIxNDgwOWJlZmQ4NTQ3MWVlMDk3YzJlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTU3R5bGVTaGVldEN1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTU3R5bGVTaGVldEN1c3RvbS5jcHAK
QEAgLTQ0LDcgKzQ0LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoQ1NTU3R5bGVTaGVl
dCogaW1wbCkKICAgICAvLyBBZGQgYSBoaWRkZW4gcmVmZXJlbmNlIGZyb20gc3R5bGVzaGVldCBv
YmplY3QgdG8gaXRzIG93bmVyIG5vZGUuCiAgICAgTm9kZSogb3duZXJOb2RlID0gaW1wbC0+b3du
ZXJOb2RlKCk7CiAgICAgaWYgKG93bmVyTm9kZSAmJiAhd3JhcHBlci5Jc0VtcHR5KCkpCi0gICAg
ICAgIFY4RE9NV3JhcHBlcjo6c2V0SGlkZGVuUmVmZXJlbmNlKHdyYXBwZXIsIHRvVjgob3duZXJO
b2RlKSk7CisgICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0TmFtZWRIaWRkZW5SZWZlcmVuY2Uod3Jh
cHBlciwgIm93bmVyTm9kZSIsIHRvVjgob3duZXJOb2RlKSk7CiAgICAgcmV0dXJuIHdyYXBwZXI7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERP
TVN0cmluZ01hcEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhET01TdHJpbmdNYXBDdXN0b20uY3BwCmluZGV4IDcxZmYzNTc2ZGE2MTMwMzA5MDUyYmU4NGNm
ZDU1ZDcyMGIwMmIwNjUuLjFkNjM5OGVjOTViYmIyZDJiMDVhOTliODYyYzBiOTE4NWI3N2ZiNjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmlu
Z01hcEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcApAQCAtMTA1LDcgKzEwNSw3IEBAIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiB0b1Y4KERPTVN0cmluZ01hcCogaW1wbCkKICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0
eSgpICYmIGVsZW1lbnQpIHsKICAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGVsZW1lbnRW
YWx1ZSA9IHRvVjgoZWxlbWVudCk7CiAgICAgICAgIGlmICghZWxlbWVudFZhbHVlLklzRW1wdHko
KSAmJiBlbGVtZW50VmFsdWUtPklzT2JqZWN0KCkpCi0gICAgICAgICAgICBWOERPTVdyYXBwZXI6
OnNldEhpZGRlblJlZmVyZW5jZShlbGVtZW50VmFsdWUuQXM8djg6Ok9iamVjdD4oKSwgd3JhcHBl
cik7CisgICAgICAgICAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKGVs
ZW1lbnRWYWx1ZS5Bczx2ODo6T2JqZWN0PigpLCAiZG9tU3RyaW5nTWFwIiwgd3JhcHBlcik7CiAg
ICAgfQogICAgIHJldHVybiB3cmFwcGVyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NVG9rZW5MaXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVRva2VuTGlzdEN1c3RvbS5jcHAKaW5kZXggMTcx
ZmY1YzI5ZGUwODY2Y2ZmZTk0ZDIwZjk0ODg3NzE4MTllZGIxZC4uMDgwNTFhYmQ1NThkZWYxYzZm
NjI5NjU3MTgyODAxMzIxMjMxOGUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4RE9NVG9rZW5MaXN0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01Ub2tlbkxpc3RDdXN0b20uY3BwCkBAIC00OCw3ICs0
OCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KERPTVRva2VuTGlzdCogaW1wbCkKICAg
ICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpICYmIGVsZW1lbnQpIHsKICAgICAgICAgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IGVsZW1lbnRWYWx1ZSA9IHRvVjgoZWxlbWVudCk7CiAgICAgICAgIGlmICgh
ZWxlbWVudFZhbHVlLklzRW1wdHkoKSAmJiBlbGVtZW50VmFsdWUtPklzT2JqZWN0KCkpCi0gICAg
ICAgICAgICBWOERPTVdyYXBwZXI6OnNldEhpZGRlblJlZmVyZW5jZShlbGVtZW50VmFsdWUuQXM8
djg6Ok9iamVjdD4oKSwgd3JhcHBlcik7CisgICAgICAgICAgICBWOERPTVdyYXBwZXI6OnNldE5h
bWVkSGlkZGVuUmVmZXJlbmNlKGVsZW1lbnRWYWx1ZS5Bczx2ODo6T2JqZWN0PigpLCAiZG9tVG9r
ZW5MaXN0Iiwgd3JhcHBlcik7CiAgICAgfQogICAgIHJldHVybiB3cmFwcGVyOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TG9jYXRpb25DdXN0b20u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TG9jYXRpb25DdXN0b20u
Y3BwCmluZGV4IGIyMjJhOTk2MDJhZTIwNzY2ZGMyZGM1ZjhiMjI4ODkwMmFlNzgyOGIuLjdkYjc0
ZTg1ODIyYjQxNjI5YzliMGUwZDg2NTIwZmRkNmNhY2M0MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAKQEAgLTI4
MCw3ICsyODAsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChMb2NhdGlvbiogaW1wbCkK
ICAgICBpZiAod3JhcHBlci5Jc0VtcHR5KCkpIHsKICAgICAgICAgd3JhcHBlciA9IFY4TG9jYXRp
b246OndyYXAoaW1wbCk7CiAgICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpCi0gICAgICAg
ICAgICBWOERPTVdyYXBwZXI6OnNldEhpZGRlbldpbmRvd1JlZmVyZW5jZShpbXBsLT5mcmFtZSgp
LCB3cmFwcGVyKTsKKyAgICAgICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0TmFtZWRIaWRkZW5XaW5k
b3dSZWZlcmVuY2UoaW1wbC0+ZnJhbWUoKSwgImxvY2F0aW9uIiwgd3JhcHBlcik7CiAgICAgfQog
ICAgIHJldHVybiB3cmFwcGVyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmNwcApp
bmRleCBiOTY2ZTQyMzA4ZWYwMTA2ZDBlMjdiZjE0NDkwYjc3ZTEwODFkMzk2Li43NzVlNzQ1ZWY4
MGE5MzI5NjQ0MzljYWVlYjkzNGZkMzY0NzQ3ZWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlQ2hhbm5lbENvbnN0
cnVjdG9yLmNwcApAQCAtNjcsOCArNjcsOCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhNZXNz
YWdlQ2hhbm5lbDo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJgogICAg
IC8vIENyZWF0ZSByZWZlcmVuY2VzIGZyb20gdGhlIE1lc3NhZ2VDaGFubmVsIHdyYXBwZXIgdG8g
dGhlIHR3bwogICAgIC8vIE1lc3NhZ2VQb3J0IHdyYXBwZXJzIHRvIG1ha2Ugc3VyZSB0aGF0IHRo
ZSBNZXNzYWdlUG9ydCB3cmFwcGVycwogICAgIC8vIHN0YXkgYWxpdmUgYXMgbG9uZyBhcyB0aGUg
TWVzc2FnZUNoYW5uZWwgd3JhcHBlciBpcyBhcm91bmQuCi0gICAgVjhET01XcmFwcGVyOjpzZXRI
aWRkZW5SZWZlcmVuY2UobWVzc2FnZUNoYW5uZWwsIHRvVjgob2JqLT5wb3J0MSgpKSk7Ci0gICAg
VjhET01XcmFwcGVyOjpzZXRIaWRkZW5SZWZlcmVuY2UobWVzc2FnZUNoYW5uZWwsIHRvVjgob2Jq
LT5wb3J0MigpKSk7CisgICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVyZW5jZSht
ZXNzYWdlQ2hhbm5lbCwgInBvcnQxIiwgdG9WOChvYmotPnBvcnQxKCkpKTsKKyAgICBWOERPTVdy
YXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKG1lc3NhZ2VDaGFubmVsLCAicG9ydDIiLCB0
b1Y4KG9iai0+cG9ydDIoKSkpOwogCiAgICAgLy8gU2V0dXAgdGhlIHN0YW5kYXJkIHdyYXBwZXIg
b2JqZWN0IGludGVybmFsIGZpZWxkcy4KICAgICBWOERPTVdyYXBwZXI6OnNldERPTVdyYXBwZXIo
bWVzc2FnZUNoYW5uZWwsICZpbmZvLCBvYmouZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2RlTWFwQ3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9kZU1hcEN1c3RvbS5jcHAKaW5k
ZXggZDllMWRlMDE0ZjlkOGY1MDk3NjVmNWVlYTY4MmUzOWRiNTJlYmY3Yi4uYzkwMTRjMDJiNjY4
OTdhMmY0YjkxNDQxODlkMmVjMDkwZmFkMDJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2RlTWFwQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVNYXBDdXN0b20uY3BwCkBAIC04
Myw3ICs4Myw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KE5hbWVkTm9kZU1hcCogaW1w
bCkKICAgICAvLyBBZGQgYSBoaWRkZW4gcmVmZXJlbmNlIGZyb20gbmFtZWQgbm9kZSBtYXAgdG8g
aXRzIG93bmVyIG5vZGUuCiAgICAgRWxlbWVudCogZWxlbWVudCA9IGltcGwtPmVsZW1lbnQoKTsK
ICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpICYmIGVsZW1lbnQpCi0gICAgICAgIFY4RE9NV3Jh
cHBlcjo6c2V0SGlkZGVuUmVmZXJlbmNlKHdyYXBwZXIsIHRvVjgoZWxlbWVudCkpOworICAgICAg
ICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKHdyYXBwZXIsICJvd25lck5v
ZGUiLCB0b1Y4KGVsZW1lbnQpKTsKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldEN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0Q3VzdG9t
LmNwcAppbmRleCBiM2Y2ZmY3NmI5OWM2ZGJjMjRlNDlmYjI5ODY3MzQxYzdjMzM3ZTcxLi4wZmU2
YWY4NTBhZDMzOTM4MzUwZGI2ZmFiZmJkMDNhYTFkNzdmOWFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0Q3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0Q3VzdG9tLmNwcApA
QCAtNDcsNyArNDcsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChTdHlsZVNoZWV0KiBp
bXBsKQogICAgIC8vIEFkZCBhIGhpZGRlbiByZWZlcmVuY2UgZnJvbSBzdHlsZXNoZWV0IG9iamVj
dCB0byBpdHMgb3duZXIgbm9kZS4KICAgICBOb2RlKiBvd25lck5vZGUgPSBpbXBsLT5vd25lck5v
ZGUoKTsKICAgICBpZiAob3duZXJOb2RlICYmICF3cmFwcGVyLklzRW1wdHkoKSkKLSAgICAgICAg
VjhET01XcmFwcGVyOjpzZXRIaWRkZW5SZWZlcmVuY2Uod3JhcHBlciwgdG9WOChvd25lck5vZGUp
KTsKKyAgICAgICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVyZW5jZSh3cmFwcGVy
LCAib3duZXJOb2RlIiwgdG9WOChvd25lck5vZGUpKTsKICAgICByZXR1cm4gd3JhcHBlcjsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xS
ZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggNDc0ZmY5MTUxOGY0
ODQ4ZGQ5NDg1YTg2NGU5ZTlhNzM1NDk2ZmYxNi4uMzVkOWM1OTVlZWMxZTI3NGUyOGQ2MTZkNTE1
YTljYjc1NjY0MDRkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCkBA
IC0xNjEsMjIgKzE2MSwyNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjhPYmpl
Y3QoV2ViR0xFeHRlbnNpb24qIGV4dGVuc2lvbiwgdjg6OkhhbmRsZTx2OAogICAgIGlmICghZXh0
ZW5zaW9uKQogICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKICAgICB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gZXh0ZW5zaW9uT2JqZWN0OworICAgIGNvbnN0IGNoYXIqIHJlZmVyZW5jZU5hbWU7CiAg
ICAgc3dpdGNoIChleHRlbnNpb24tPmdldE5hbWUoKSkgewogICAgIGNhc2UgV2ViR0xFeHRlbnNp
b246OldlYktpdExvc2VDb250ZXh0TmFtZToKICAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9W
OChzdGF0aWNfY2FzdDxXZWJLaXRMb3NlQ29udGV4dCo+KGV4dGVuc2lvbikpOworICAgICAgICBy
ZWZlcmVuY2VOYW1lID0gIndlYktpdExvc2VDb250ZXh0TmFtZSI7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1N0YW5kYXJkRGVyaXZhdGl2ZXNOYW1lOgogICAg
ICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PE9FU1N0YW5kYXJkRGVyaXZh
dGl2ZXMqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmVmZXJlbmNlTmFtZSA9ICJvZXNTdGFuZGFy
ZERlcml2YXRpdmVzTmFtZSI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViR0xFeHRlbnNp
b246Ok9FU1RleHR1cmVGbG9hdE5hbWU6CiAgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgo
c3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUZsb2F0Kj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJlZmVy
ZW5jZU5hbWUgPSAib2VzVGV4dHVyZUZsb2F0TmFtZSI7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgV2ViR0xFeHRlbnNpb246Ok9FU1ZlcnRleEFycmF5T2JqZWN0TmFtZToKICAgICAgICAgZXh0
ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxPRVNWZXJ0ZXhBcnJheU9iamVjdCo+KGV4
dGVuc2lvbikpOworICAgICAgICByZWZlcmVuY2VOYW1lID0gIm9lc1ZlcnRleEFycmF5T2JqZWN0
TmFtZSI7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBBU1NFUlQoIWV4dGVuc2lvbk9iamVj
dC5Jc0VtcHR5KCkpOwotICAgIFY4RE9NV3JhcHBlcjo6c2V0SGlkZGVuUmVmZXJlbmNlKGNvbnRl
eHRPYmplY3QsIGV4dGVuc2lvbk9iamVjdCk7CisgICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhp
ZGRlblJlZmVyZW5jZShjb250ZXh0T2JqZWN0LCByZWZlcmVuY2VOYW1lLCBleHRlbnNpb25PYmpl
Y3QpOwogICAgIHJldHVybiBleHRlbnNpb25PYmplY3Q7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100698</attachid>
            <date>2011-07-13 11:47:12 -0700</date>
            <delta_ts>2011-07-13 11:52:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64467-20110713224710.patch</filename>
            <type>text/plain</type>
            <size>18201</size>
            <attacher name="Vitaly Repeshko">vitalyr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA5MDYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhOTdiZDVmZmMyMDdiZmRi
YTY2MjM3NDljYzI0NWU4ZGNmOTI4ODUyLi5jMzIzNTExMGVkYTFjNzU2NzU2MTNlNDQ2NWZmMDM3
NjhjN2YzNjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTEtMDctMTMgIFZpdGFs
eSBSZXBlc2hrbyAgPHZpdGFseXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtWOF0gQXZvaWQg
bWVtb3J5IGxlYWtzIHdpdGggaGlkZGVuIHJlZmVyZW5jZXMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDQ2NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHVzZWQgdG8gaGF2ZSBncm93aW5nIGFycmF5
cyBvZiBoaWRkZW4gcmVmZXJlbmNlcyBhc3NvY2lhdGVkCisgICAgICAgIHdpdGggb2JqZWN0cy4g
VGhlIGVudHJpZXMgaW4gdGhpcyBhcnJheSBoYWQgbm8ga2V5cyBhbmQgd2VyZSBuZXZlcgorICAg
ICAgICByZW1vdmVkLiBUaGlzIHBhdGNoIGNoYW5nZXMgdGhlIGludGVyZmFjZSB0byByZXF1aXJl
IGEgcmVmZXJlbmNlCisgICAgICAgIG5hbWUuIFRoaXMgd2F5IGl0J3MgaGFyZGVyIHRvIGxlYWsg
YW4gdW5ib3VuZGVkIG51bWJlciBvZgorICAgICAgICBvYmplY3RzLiBBbHNvIGl0IG1ha2VzIG91
ciB3cmFwcGVyIG9iamVjdCBvbmUgbWFjaGluZSB3b3JkCisgICAgICAgIHNtYWxsZXIuCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKEdl
bmVyYXRlTm9ybWFsQXR0ckdldHRlcik6IFN0YXJ0ZWQgdXNpbmcgbmV3IGludGVyZmFjZS4KKwor
ICAgICAgICBJbnRlcmZhY2UgY2hhbmdlczoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdy
YXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRl
blJlZmVyZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlk
ZGVuV2luZG93UmVmZXJlbmNlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdyYXBwZXIu
aDoKKworICAgICAgICBBZGRlZCBhIGhlbHBlciB0byBjb21wdXRlIGhpZGRlbiByZWZlcmVuY2Ug
bmFtZXMgYXMgVjggc3RyaW5nczoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOEhpZGRlblByb3Bl
cnR5TmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEhpZGRlblByb3BlcnR5TmFtZTo6aGlk
ZGVuUmVmZXJlbmNlTmFtZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0
eU5hbWUuaDoKKworICAgICAgICAqIGJpbmRpbmdzL3Y4L1dyYXBwZXJUeXBlSW5mby5oOiBSZW1v
dmVkIHRoZSBoaWRkZW4gcmVmZXJlbmNlCisgICAgICAgIGFycmF5IGludGVybmFsIGZpZWxkLgor
CisgICAgICAgIFVwZGF0ZSB1c2FnZXMgb2YgaGlkZGVuIHJlZmVyZW5jZXM6CisgICAgICAgICog
YmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTU3R5bGVTaGVldEN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjp0b1Y4KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJpbmdN
YXBDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9WOCk6CisgICAgICAgICogYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4RE9NVG9rZW5MaXN0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnRvVjgpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVjgpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOE1lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhN
ZXNzYWdlQ2hhbm5lbDo6Y29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3Mv
djgvY3VzdG9tL1Y4TmFtZWROb2RlTWFwQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRv
VjgpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6dG9WOCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9t
L1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRv
VjhPYmplY3QpOgorCiAyMDExLTA3LTEyICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogZmFjdG9yIE5ldHdvcmtMb2dWaWV3IG91
dCBvZiBOZXR3b3JrIHBhbmVsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IDY2Zjk3MGMyODYxMDgzYjI5OWQzYmQ4Mjk1OThh
NmM0NzlhZDk4MDcuLmNmMGVkYmU5NzFiYzdhYzk4NTdlZWQwZDVhYzg2NDVmOThhOTQzMGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4
LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4
LnBtCkBAIC04NTYsOSArODU2LDkgQEAgRU5ECiAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVj
bHMsICIgICAgICAgIHdyYXBwZXIgPSB0b1Y4KHJlc3VsdC5nZXQoKSk7XG4iKTsKICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSlc
biIpOwogICAgICAgICBpZiAoJGRhdGFOb2RlLT5uYW1lIGVxICJET01XaW5kb3ciKSB7Ci0gICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICAgICAgVjhET01XcmFwcGVy
OjpzZXRIaWRkZW5XaW5kb3dSZWZlcmVuY2UoaW1wLT5mcmFtZSgpLCB3cmFwcGVyKTtcbiIpOwor
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgICAgIFY4RE9NV3Jh
cHBlcjo6c2V0TmFtZWRIaWRkZW5XaW5kb3dSZWZlcmVuY2UoaW1wLT5mcmFtZSgpLCBcIiR7YXR0
ck5hbWV9XCIsIHdyYXBwZXIpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICAgICAgVjhET01XcmFwcGVyOjpzZXRIaWRk
ZW5SZWZlcmVuY2UoaW5mby5Ib2xkZXIoKSwgd3JhcHBlcik7XG4iKTsKKyAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgICAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVk
SGlkZGVuUmVmZXJlbmNlKGluZm8uSG9sZGVyKCksIFwiJHthdHRyTmFtZX1cIiwgd3JhcHBlcik7
XG4iKTsKICAgICAgICAgfQogICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIH1c
biIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIHJldHVybiB3cmFwcGVy
O1xuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBw
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcAppbmRl
eCBjNjEyN2JjOGQ0Mjk0OWM1YTcxYzMzMjhmMDkwOWI4N2UzNDAwNmQxLi40NmNmYmVkOTIxY2E3
ZDNmMTE2ZjQ5NWJiMTdiODAxNWZjYjcyOGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4RE9NV3JhcHBlci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJWOERPTVdyYXBwZXIuaCIKIAorI2luY2x1ZGUgIkFycmF5QnVmZmVyVmll
dy5oIgogI2luY2x1ZGUgIkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAi
RE9NRGF0YVN0b3JlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKQEAgLTM5LDEwICs0
MCwxMCBAQAogI2luY2x1ZGUgIlY4QWJzdHJhY3RFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSAi
VjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhDb2xsZWN0aW9uLmgiCi0jaW5jbHVkZSAiVjhEZWRp
Y2F0ZWRXb3JrZXJDb250ZXh0LmgiCiAjaW5jbHVkZSAiVjhET01BcHBsaWNhdGlvbkNhY2hlLmgi
CiAjaW5jbHVkZSAiVjhET01NYXAuaCIKICNpbmNsdWRlICJWOERPTVdpbmRvdy5oIgorI2luY2x1
ZGUgIlY4RGVkaWNhdGVkV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIlY4RXZlbnRMaXN0ZW5l
ci5oIgogI2luY2x1ZGUgIlY4RXZlbnRMaXN0ZW5lckxpc3QuaCIKICNpbmNsdWRlICJWOEV2ZW50
U291cmNlLmgiCkBAIC01MSw2ICs1Miw3IEBACiAjaW5jbHVkZSAiVjhGaWxlV3JpdGVyLmgiCiAj
aW5jbHVkZSAiVjhIVE1MQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIlY4SFRNTERvY3VtZW50Lmgi
CisjaW5jbHVkZSAiVjhIaWRkZW5Qcm9wZXJ0eU5hbWUuaCIKICNpbmNsdWRlICJWOElEQkRhdGFi
YXNlLmgiCiAjaW5jbHVkZSAiVjhJREJSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiVjhJREJUcmFuc2Fj
dGlvbi5oIgpAQCAtNzUsNyArNzcsNiBAQAogI2luY2x1ZGUgIlY4V29ya2VyQ29udGV4dC5oIgog
I2luY2x1ZGUgIlY4V29ya2VyQ29udGV4dEV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJWOFhN
TEh0dHBSZXF1ZXN0LmgiCi0jaW5jbHVkZSAiQXJyYXlCdWZmZXJWaWV3LmgiCiAjaW5jbHVkZSAi
V2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIgogI2luY2x1ZGUgIldlYkdMVW5pZm9ybUxvY2F0aW9u
LmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmgiCkBAIC0xODksMTgg
KzE5MCwxMyBAQCB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBWOERPTVdyYXBwZXI6OmdldENvbnN0
cnVjdG9yKFdyYXBwZXJUeXBlSW5mbyogdHlwZSwgV29yawogfQogI2VuZGlmCiAKLXZvaWQgVjhE
T01XcmFwcGVyOjpzZXRIaWRkZW5SZWZlcmVuY2Uodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBwYXJl
bnQsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjaGlsZCkKKwordm9pZCBWOERPTVdyYXBwZXI6OnNl
dE5hbWVkSGlkZGVuUmVmZXJlbmNlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gcGFyZW50LCBjb25z
dCBjaGFyKiBuYW1lLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY2hpbGQpCiB7Ci0gICAgdjg6Okxv
Y2FsPHY4OjpWYWx1ZT4gaGlkZGVuUmVmZXJlbmNlT2JqZWN0ID0gcGFyZW50LT5HZXRJbnRlcm5h
bEZpZWxkKHY4RE9NSGlkZGVuUmVmZXJlbmNlQXJyYXlJbmRleCk7Ci0gICAgaWYgKGhpZGRlblJl
ZmVyZW5jZU9iamVjdC0+SXNOdWxsKCkgfHwgaGlkZGVuUmVmZXJlbmNlT2JqZWN0LT5Jc1VuZGVm
aW5lZCgpKSB7Ci0gICAgICAgIGhpZGRlblJlZmVyZW5jZU9iamVjdCA9IHY4OjpBcnJheTo6TmV3
KCk7Ci0gICAgICAgIHBhcmVudC0+U2V0SW50ZXJuYWxGaWVsZCh2OERPTUhpZGRlblJlZmVyZW5j
ZUFycmF5SW5kZXgsIGhpZGRlblJlZmVyZW5jZU9iamVjdCk7Ci0gICAgfQotICAgIHY4OjpMb2Nh
bDx2ODo6QXJyYXk+IGhpZGRlblJlZmVyZW5jZUFycmF5ID0gdjg6OkxvY2FsPHY4OjpBcnJheT46
OkNhc3QoaGlkZGVuUmVmZXJlbmNlT2JqZWN0KTsKLSAgICBoaWRkZW5SZWZlcmVuY2VBcnJheS0+
U2V0KHY4OjpJbnRlZ2VyOjpOZXcoaGlkZGVuUmVmZXJlbmNlQXJyYXktPkxlbmd0aCgpKSwgY2hp
bGQpOworICAgIHBhcmVudC0+U2V0SGlkZGVuVmFsdWUoVjhIaWRkZW5Qcm9wZXJ0eU5hbWU6Omhp
ZGRlblJlZmVyZW5jZU5hbWUobmFtZSksIGNoaWxkKTsKIH0KIAotdm9pZCBWOERPTVdyYXBwZXI6
OnNldEhpZGRlbldpbmRvd1JlZmVyZW5jZShGcmFtZSogZnJhbWUsIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBqc09iamVjdCkKK3ZvaWQgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlbldpbmRvd1Jl
ZmVyZW5jZShGcmFtZSogZnJhbWUsIGNvbnN0IGNoYXIqIG5hbWUsIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBqc09iamVjdCkKIHsKICAgICAvLyBHZXQgRE9NV2luZG93CiAgICAgaWYgKCFmcmFtZSkK
QEAgLTIxNCw3ICsyMTAsNyBAQCB2b2lkIFY4RE9NV3JhcHBlcjo6c2V0SGlkZGVuV2luZG93UmVm
ZXJlbmNlKEZyYW1lKiBmcmFtZSwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+CiAgICAgZ2xvYmFsID0g
VjhET01XcmFwcGVyOjpsb29rdXBET01XcmFwcGVyKFY4RE9NV2luZG93OjpHZXRUZW1wbGF0ZSgp
LCBnbG9iYWwpOwogICAgIEFTU0VSVCghZ2xvYmFsLklzRW1wdHkoKSk7CiAKLSAgICBzZXRIaWRk
ZW5SZWZlcmVuY2UoZ2xvYmFsLCBqc09iamVjdCk7CisgICAgc2V0TmFtZWRIaWRkZW5SZWZlcmVu
Y2UoZ2xvYmFsLCBuYW1lLCBqc09iamVjdCk7CiB9CiAKIFdyYXBwZXJUeXBlSW5mbyogVjhET01X
cmFwcGVyOjpkb21XcmFwcGVyVHlwZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IG9iamVjdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgKaW5kZXggN2Y0NDkwYWQxY2Yz
NmQwNTE4ZWE2ZGFiOWM1MWEzZGUyNGYyM2ViYi4uMGNhZTZkYjQwYmQwNGU5MTI4NTQ4MWRjNDgw
ZDUxY2Y0MzY4NGFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhE
T01XcmFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVy
LmgKQEAgLTExNCwxMCArMTE0LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8g
Q2hlY2sgd2hldGhlciBhIFY4IHZhbHVlIGlzIGEgd3JhcHBlciBvZiB0eXBlIHxjbGFzc1R5cGV8
LgogICAgICAgICBzdGF0aWMgYm9vbCBpc1dyYXBwZXJPZlR5cGUodjg6OkhhbmRsZTx2ODo6VmFs
dWU+LCBXcmFwcGVyVHlwZUluZm8qKTsKIAotICAgICAgICBzdGF0aWMgdm9pZCBzZXRIaWRkZW5S
ZWZlcmVuY2Uodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBwYXJlbnQsIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBjaGlsZCk7Ci0KLSAgICAgICAgLy8gU2V0IGhpZGRlbiByZWZlcmVuY2VzIGluIGEgRE9N
V2luZG93IG9iamVjdCBvZiBhIGZyYW1lLgotICAgICAgICBzdGF0aWMgdm9pZCBzZXRIaWRkZW5X
aW5kb3dSZWZlcmVuY2UoRnJhbWUqLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4pOworICAgICAgICAv
LyBQcm9wZXIgb2JqZWN0IGxpZmV0aW1lIHN1cHBvcnQuCisgICAgICAgIC8vCisgICAgICAgIC8v
IEhlbHBlciBmdW5jdGlvbnMgdG8gbWFrZSBzdXJlIHRoZSBjaGlsZCBvYmplY3Qgc3RheXMgYWxp
dmUKKyAgICAgICAgLy8gd2hpbGUgdGhlIHBhcmVudCBpcyBhbGl2ZS4gVXNpbmcgdGhlIG5hbWUg
bW9yZSB0aGFuIG9uY2UKKyAgICAgICAgLy8gb3ZlcndyaXRlcyBwcmV2aW91cyByZWZlcmVuY2Vz
IG1ha2luZyBpdCBwb3NzaWJsZSB0byBmcmVlCisgICAgICAgIC8vIG9sZCBjaGlsZHJlbi4KKyAg
ICAgICAgc3RhdGljIHZvaWQgc2V0TmFtZWRIaWRkZW5SZWZlcmVuY2Uodjg6OkhhbmRsZTx2ODo6
T2JqZWN0PiBwYXJlbnQsIGNvbnN0IGNoYXIqIG5hbWUsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBj
aGlsZCk7CisgICAgICAgIHN0YXRpYyB2b2lkIHNldE5hbWVkSGlkZGVuV2luZG93UmVmZXJlbmNl
KEZyYW1lKiwgY29uc3QgY2hhciosIHY4OjpIYW5kbGU8djg6OlZhbHVlPik7CiAKICAgICAgICAg
c3RhdGljIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBpbnN0YW50aWF0ZVY4T2JqZWN0KFY4UHJveHkq
IHByb3h5LCBXcmFwcGVyVHlwZUluZm8qLCB2b2lkKiBpbXBsKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0eU5hbWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0eU5hbWUuY3BwCmluZGV4IGQ4MzU3
M2Y1NDFiMzZlYTEzMDViZGViZTgyNWUyMjkwNTM3MTlhMGQuLjI5MDkyNjllNzgzYjJiYTBkM2Zk
N2FkN2VlYjZlM2VkOTA4ZWZlNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOEhpZGRlblByb3BlcnR5TmFtZS5jcHAKQEAgLTMxLDYgKzMxLDkgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJWOEhpZGRlblByb3BlcnR5TmFtZS5oIgogCisjaW5jbHVk
ZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICNkZWZpbmUgVjhfQVNfU1RSSU5HKHgpIFY4X0FTX1NUUklOR19JTVBMKHgpCkBAIC0z
OSwxMiArNDIsMjIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2RlZmluZSBWOF9ERUZJTkVfUFJP
UEVSVFkobmFtZSkgXAogdjg6OkhhbmRsZTx2ODo6U3RyaW5nPiBWOEhpZGRlblByb3BlcnR5TmFt
ZTo6bmFtZSgpIFwKIHsgXAotICAgIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiog
c3RyaW5nID0gY3JlYXRlU3RyaW5nKCJXZWJDb3JlOjpWOEhpZGRlblByb3BlcnR5TmFtZTo6IiBW
OF9BU19TVFJJTkcobmFtZSkpOyBcCisgICAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJp
bmc+KiBzdHJpbmcgPSBjcmVhdGVTdHJpbmcoIldlYkNvcmU6OkhpZGRlblByb3BlcnR5OjoiIFY4
X0FTX1NUUklORyhuYW1lKSk7IFwKICAgICByZXR1cm4gKnN0cmluZzsgXAogfQogCiBWOF9ISURE
RU5fUFJPUEVSVElFUyhWOF9ERUZJTkVfUFJPUEVSVFkpOwogCitzdGF0aWMgY29uc3QgY2hhciBo
aWRkZW5SZWZlcmVuY2VOYW1lUHJlZml4W10gPSAiV2ViQ29yZTo6SGlkZGVuUmVmZXJlbmNlOjoi
OworCit2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IFY4SGlkZGVuUHJvcGVydHlOYW1lOjpoaWRkZW5S
ZWZlcmVuY2VOYW1lKGNvbnN0IGNoYXIqIG5hbWUpCit7CisgICAgVmVjdG9yPGNoYXIsIDY0PiBw
cmVmaXhlZE5hbWU7CisgICAgcHJlZml4ZWROYW1lLmFwcGVuZChoaWRkZW5SZWZlcmVuY2VOYW1l
UHJlZml4LCBzaXplb2YoaGlkZGVuUmVmZXJlbmNlTmFtZVByZWZpeCkgLSAxKTsKKyAgICBwcmVm
aXhlZE5hbWUuYXBwZW5kKG5hbWUsIHN0cmxlbihuYW1lKSk7CisgICAgcmV0dXJuIHY4OjpTdHJp
bmc6Ok5ld1N5bWJvbChwcmVmaXhlZE5hbWUuZGF0YSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHByZWZp
eGVkTmFtZS5zaXplKCkpKTsKK30KKwogdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4qIFY4SGlk
ZGVuUHJvcGVydHlOYW1lOjpjcmVhdGVTdHJpbmcoY29uc3QgY2hhcioga2V5KQogewogICAgIHY4
OjpIYW5kbGVTY29wZSBzY29wZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OEhpZGRlblByb3BlcnR5TmFtZS5oCmluZGV4IDc4NjdiMzYzYjE0ZWUyYzRiOWQzNDczNDFkY2Ex
MDM0NmQ2NWY0NmYuLjdjNGFhZTBkNTcwM2U3MDcwZmE0YWE0ZWZlNDQwZTk1NDIwN2JjNDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1l
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0eU5hbWUu
aApAQCAtNTIsNiArNTIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFY4X0hJRERF
Tl9QUk9QRVJUSUVTKFY4X0RFQ0xBUkVfUFJPUEVSVFkpOwogI3VuZGVmIFY4X0RFQ0xBUkVfUFJP
UEVSVFkKIAorICAgICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6U3RyaW5nPiBoaWRkZW5SZWZl
cmVuY2VOYW1lKGNvbnN0IGNoYXIqIG5hbWUpOworCiAgICAgcHJpdmF0ZToKICAgICAgICAgc3Rh
dGljIHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+KiBjcmVhdGVTdHJpbmcoY29uc3QgY2hhciog
a2V5KTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV3Jh
cHBlclR5cGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9XcmFwcGVyVHlwZUlu
Zm8uaAppbmRleCAxNjZkNjQyZTE1MDc3YTJkY2ZlZjBmYmY0ZWYyN2I3NDdkMzBkOTZhLi5jMjY4
NGQ2NmJlNjY3ZmIyMDkzN2Q0NWQ5M2FiY2Y3Mjc2YTE1Y2NjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9XcmFwcGVyVHlwZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9XcmFwcGVyVHlwZUluZm8uaApAQCAtMzksOCArMzksNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgCiAgICAgc3RhdGljIGNvbnN0IGludCB2OERPTVdyYXBwZXJUeXBl
SW5kZXggPSAwOwogICAgIHN0YXRpYyBjb25zdCBpbnQgdjhET01XcmFwcGVyT2JqZWN0SW5kZXgg
PSAxOwotICAgIHN0YXRpYyBjb25zdCBpbnQgdjhET01IaWRkZW5SZWZlcmVuY2VBcnJheUluZGV4
ID0gMjsKLSAgICBzdGF0aWMgY29uc3QgaW50IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxk
Q291bnQgPSAzOworICAgIHN0YXRpYyBjb25zdCBpbnQgdjhEZWZhdWx0V3JhcHBlckludGVybmFs
RmllbGRDb3VudCA9IDI7CiAKICAgICBzdGF0aWMgY29uc3QgdWludDE2X3QgdjhET01TdWJ0cmVl
Q2xhc3NJZCA9IDE7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOENTU1N0eWxlU2hlZXRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4Q1NTU3R5bGVTaGVldEN1c3RvbS5jcHAKaW5kZXggOWVmZmNhMzlhNWNmNDE3
NWFlNzFkYjAzODM4MTk1NzEyZjQxNTk1ZC4uOWIyOTg4YjdlYWVhM2I0YmIxNDgwOWJlZmQ4NTQ3
MWVlMDk3YzJlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4Q1NTU3R5bGVTaGVldEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4Q1NTU3R5bGVTaGVldEN1c3RvbS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoQ1NTU3R5bGVTaGVldCogaW1wbCkKICAgICAvLyBBZGQg
YSBoaWRkZW4gcmVmZXJlbmNlIGZyb20gc3R5bGVzaGVldCBvYmplY3QgdG8gaXRzIG93bmVyIG5v
ZGUuCiAgICAgTm9kZSogb3duZXJOb2RlID0gaW1wbC0+b3duZXJOb2RlKCk7CiAgICAgaWYgKG93
bmVyTm9kZSAmJiAhd3JhcHBlci5Jc0VtcHR5KCkpCi0gICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0
SGlkZGVuUmVmZXJlbmNlKHdyYXBwZXIsIHRvVjgob3duZXJOb2RlKSk7CisgICAgICAgIFY4RE9N
V3JhcHBlcjo6c2V0TmFtZWRIaWRkZW5SZWZlcmVuY2Uod3JhcHBlciwgIm93bmVyTm9kZSIsIHRv
Vjgob3duZXJOb2RlKSk7CiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmluZ01hcEN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJpbmdNYXBDdXN0b20u
Y3BwCmluZGV4IDcxZmYzNTc2ZGE2MTMwMzA5MDUyYmU4NGNmZDU1ZDcyMGIwMmIwNjUuLjFkNjM5
OGVjOTViYmIyZDJiMDVhOTliODYyYzBiOTE4NWI3N2ZiNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmluZ01hcEN1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3VzdG9tLmNw
cApAQCAtMTA1LDcgKzEwNSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KERPTVN0cmlu
Z01hcCogaW1wbCkKICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpICYmIGVsZW1lbnQpIHsKICAg
ICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGVsZW1lbnRWYWx1ZSA9IHRvVjgoZWxlbWVudCk7
CiAgICAgICAgIGlmICghZWxlbWVudFZhbHVlLklzRW1wdHkoKSAmJiBlbGVtZW50VmFsdWUtPklz
T2JqZWN0KCkpCi0gICAgICAgICAgICBWOERPTVdyYXBwZXI6OnNldEhpZGRlblJlZmVyZW5jZShl
bGVtZW50VmFsdWUuQXM8djg6Ok9iamVjdD4oKSwgd3JhcHBlcik7CisgICAgICAgICAgICBWOERP
TVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKGVsZW1lbnRWYWx1ZS5Bczx2ODo6T2Jq
ZWN0PigpLCAiZG9tU3RyaW5nTWFwIiwgd3JhcHBlcik7CiAgICAgfQogICAgIHJldHVybiB3cmFw
cGVyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RE9NVG9rZW5MaXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOERPTVRva2VuTGlzdEN1c3RvbS5jcHAKaW5kZXggMTcxZmY1YzI5ZGUwODY2Y2ZmZTk0ZDIw
Zjk0ODg3NzE4MTllZGIxZC4uMDgwNTFhYmQ1NThkZWYxYzZmNjI5NjU3MTgyODAxMzIxMjMxOGUz
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NVG9r
ZW5MaXN0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhET01Ub2tlbkxpc3RDdXN0b20uY3BwCkBAIC00OCw3ICs0OCw3IEBAIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiB0b1Y4KERPTVRva2VuTGlzdCogaW1wbCkKICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0
eSgpICYmIGVsZW1lbnQpIHsKICAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGVsZW1lbnRW
YWx1ZSA9IHRvVjgoZWxlbWVudCk7CiAgICAgICAgIGlmICghZWxlbWVudFZhbHVlLklzRW1wdHko
KSAmJiBlbGVtZW50VmFsdWUtPklzT2JqZWN0KCkpCi0gICAgICAgICAgICBWOERPTVdyYXBwZXI6
OnNldEhpZGRlblJlZmVyZW5jZShlbGVtZW50VmFsdWUuQXM8djg6Ok9iamVjdD4oKSwgd3JhcHBl
cik7CisgICAgICAgICAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKGVs
ZW1lbnRWYWx1ZS5Bczx2ODo6T2JqZWN0PigpLCAiZG9tVG9rZW5MaXN0Iiwgd3JhcHBlcik7CiAg
ICAgfQogICAgIHJldHVybiB3cmFwcGVyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TG9jYXRpb25DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TG9jYXRpb25DdXN0b20uY3BwCmluZGV4IGIyMjJhOTk2MDJh
ZTIwNzY2ZGMyZGM1ZjhiMjI4ODkwMmFlNzgyOGIuLjdkYjc0ZTg1ODIyYjQxNjI5YzliMGUwZDg2
NTIwZmRkNmNhY2M0MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAKQEAgLTI4MCw3ICsyODAsNyBAQCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gdG9WOChMb2NhdGlvbiogaW1wbCkKICAgICBpZiAod3JhcHBlci5Jc0Vt
cHR5KCkpIHsKICAgICAgICAgd3JhcHBlciA9IFY4TG9jYXRpb246OndyYXAoaW1wbCk7CiAgICAg
ICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpCi0gICAgICAgICAgICBWOERPTVdyYXBwZXI6OnNl
dEhpZGRlbldpbmRvd1JlZmVyZW5jZShpbXBsLT5mcmFtZSgpLCB3cmFwcGVyKTsKKyAgICAgICAg
ICAgIFY4RE9NV3JhcHBlcjo6c2V0TmFtZWRIaWRkZW5XaW5kb3dSZWZlcmVuY2UoaW1wbC0+ZnJh
bWUoKSwgImxvY2F0aW9uIiwgd3JhcHBlcik7CiAgICAgfQogICAgIHJldHVybiB3cmFwcGVyOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2Fn
ZUNoYW5uZWxDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmNwcAppbmRleCBiOTY2ZTQyMzA4ZWYwMTA2
ZDBlMjdiZjE0NDkwYjc3ZTEwODFkMzk2Li43NzVlNzQ1ZWY4MGE5MzI5NjQ0MzljYWVlYjkzNGZk
MzY0NzQ3ZWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmNwcApAQCAtNjcsOCAr
NjcsOCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhNZXNzYWdlQ2hhbm5lbDo6Y29uc3RydWN0
b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJgogICAgIC8vIENyZWF0ZSByZWZlcmVuY2Vz
IGZyb20gdGhlIE1lc3NhZ2VDaGFubmVsIHdyYXBwZXIgdG8gdGhlIHR3bwogICAgIC8vIE1lc3Nh
Z2VQb3J0IHdyYXBwZXJzIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBNZXNzYWdlUG9ydCB3cmFwcGVy
cwogICAgIC8vIHN0YXkgYWxpdmUgYXMgbG9uZyBhcyB0aGUgTWVzc2FnZUNoYW5uZWwgd3JhcHBl
ciBpcyBhcm91bmQuCi0gICAgVjhET01XcmFwcGVyOjpzZXRIaWRkZW5SZWZlcmVuY2UobWVzc2Fn
ZUNoYW5uZWwsIHRvVjgob2JqLT5wb3J0MSgpKSk7Ci0gICAgVjhET01XcmFwcGVyOjpzZXRIaWRk
ZW5SZWZlcmVuY2UobWVzc2FnZUNoYW5uZWwsIHRvVjgob2JqLT5wb3J0MigpKSk7CisgICAgVjhE
T01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVyZW5jZShtZXNzYWdlQ2hhbm5lbCwgInBvcnQx
IiwgdG9WOChvYmotPnBvcnQxKCkpKTsKKyAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVu
UmVmZXJlbmNlKG1lc3NhZ2VDaGFubmVsLCAicG9ydDIiLCB0b1Y4KG9iai0+cG9ydDIoKSkpOwog
CiAgICAgLy8gU2V0dXAgdGhlIHN0YW5kYXJkIHdyYXBwZXIgb2JqZWN0IGludGVybmFsIGZpZWxk
cy4KICAgICBWOERPTVdyYXBwZXI6OnNldERPTVdyYXBwZXIobWVzc2FnZUNoYW5uZWwsICZpbmZv
LCBvYmouZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4TmFtZWROb2RlTWFwQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOE5hbWVkTm9kZU1hcEN1c3RvbS5jcHAKaW5kZXggZDllMWRlMDE0ZjlkOGY1MDk3
NjVmNWVlYTY4MmUzOWRiNTJlYmY3Yi4uYzkwMTRjMDJiNjY4OTdhMmY0YjkxNDQxODlkMmVjMDkw
ZmFkMDJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
TmFtZWROb2RlTWFwQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhOYW1lZE5vZGVNYXBDdXN0b20uY3BwCkBAIC04Myw3ICs4Myw3IEBAIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiB0b1Y4KE5hbWVkTm9kZU1hcCogaW1wbCkKICAgICAvLyBBZGQgYSBoaWRk
ZW4gcmVmZXJlbmNlIGZyb20gbmFtZWQgbm9kZSBtYXAgdG8gaXRzIG93bmVyIG5vZGUuCiAgICAg
RWxlbWVudCogZWxlbWVudCA9IGltcGwtPmVsZW1lbnQoKTsKICAgICBpZiAoIXdyYXBwZXIuSXNF
bXB0eSgpICYmIGVsZW1lbnQpCi0gICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0SGlkZGVuUmVmZXJl
bmNlKHdyYXBwZXIsIHRvVjgoZWxlbWVudCkpOworICAgICAgICBWOERPTVdyYXBwZXI6OnNldE5h
bWVkSGlkZGVuUmVmZXJlbmNlKHdyYXBwZXIsICJvd25lck5vZGUiLCB0b1Y4KGVsZW1lbnQpKTsK
ICAgICByZXR1cm4gd3JhcHBlcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0Q3VzdG9tLmNwcAppbmRleCBiM2Y2ZmY3NmI5
OWM2ZGJjMjRlNDlmYjI5ODY3MzQxYzdjMzM3ZTcxLi4wZmU2YWY4NTBhZDMzOTM4MzUwZGI2ZmFi
ZmJkMDNhYTFkNzdmOWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhTdHlsZVNoZWV0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhTdHlsZVNoZWV0Q3VzdG9tLmNwcApAQCAtNDcsNyArNDcsNyBAQCB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChTdHlsZVNoZWV0KiBpbXBsKQogICAgIC8vIEFkZCBhIGhp
ZGRlbiByZWZlcmVuY2UgZnJvbSBzdHlsZXNoZWV0IG9iamVjdCB0byBpdHMgb3duZXIgbm9kZS4K
ICAgICBOb2RlKiBvd25lck5vZGUgPSBpbXBsLT5vd25lck5vZGUoKTsKICAgICBpZiAob3duZXJO
b2RlICYmICF3cmFwcGVyLklzRW1wdHkoKSkKLSAgICAgICAgVjhET01XcmFwcGVyOjpzZXRIaWRk
ZW5SZWZlcmVuY2Uod3JhcHBlciwgdG9WOChvd25lck5vZGUpKTsKKyAgICAgICAgVjhET01XcmFw
cGVyOjpzZXROYW1lZEhpZGRlblJlZmVyZW5jZSh3cmFwcGVyLCAib3duZXJOb2RlIiwgdG9WOChv
d25lck5vZGUpKTsKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5n
Q29udGV4dEN1c3RvbS5jcHAKaW5kZXggNDc0ZmY5MTUxOGY0ODQ4ZGQ5NDg1YTg2NGU5ZTlhNzM1
NDk2ZmYxNi4uMzVkOWM1OTVlZWMxZTI3NGUyOGQ2MTZkNTE1YTljYjc1NjY0MDRkMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdD
b250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCkBAIC0xNjEsMjIgKzE2MSwyNyBAQCBz
dGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjhPYmplY3QoV2ViR0xFeHRlbnNpb24qIGV4
dGVuc2lvbiwgdjg6OkhhbmRsZTx2OAogICAgIGlmICghZXh0ZW5zaW9uKQogICAgICAgICByZXR1
cm4gdjg6Ok51bGwoKTsKICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZXh0ZW5zaW9uT2JqZWN0
OworICAgIGNvbnN0IGNoYXIqIHJlZmVyZW5jZU5hbWU7CiAgICAgc3dpdGNoIChleHRlbnNpb24t
PmdldE5hbWUoKSkgewogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYktpdExvc2VDb250ZXh0
TmFtZToKICAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxXZWJLaXRM
b3NlQ29udGV4dCo+KGV4dGVuc2lvbikpOworICAgICAgICByZWZlcmVuY2VOYW1lID0gIndlYktp
dExvc2VDb250ZXh0TmFtZSI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViR0xFeHRlbnNp
b246Ok9FU1N0YW5kYXJkRGVyaXZhdGl2ZXNOYW1lOgogICAgICAgICBleHRlbnNpb25PYmplY3Qg
PSB0b1Y4KHN0YXRpY19jYXN0PE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMqPihleHRlbnNpb24pKTsK
KyAgICAgICAgcmVmZXJlbmNlTmFtZSA9ICJvZXNTdGFuZGFyZERlcml2YXRpdmVzTmFtZSI7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1RleHR1cmVGbG9hdE5h
bWU6CiAgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8T0VTVGV4dHVy
ZUZsb2F0Kj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJlZmVyZW5jZU5hbWUgPSAib2VzVGV4dHVy
ZUZsb2F0TmFtZSI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9F
U1ZlcnRleEFycmF5T2JqZWN0TmFtZToKICAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChz
dGF0aWNfY2FzdDxPRVNWZXJ0ZXhBcnJheU9iamVjdCo+KGV4dGVuc2lvbikpOworICAgICAgICBy
ZWZlcmVuY2VOYW1lID0gIm9lc1ZlcnRleEFycmF5T2JqZWN0TmFtZSI7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KICAgICBBU1NFUlQoIWV4dGVuc2lvbk9iamVjdC5Jc0VtcHR5KCkpOwotICAgIFY4
RE9NV3JhcHBlcjo6c2V0SGlkZGVuUmVmZXJlbmNlKGNvbnRleHRPYmplY3QsIGV4dGVuc2lvbk9i
amVjdCk7CisgICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVyZW5jZShjb250ZXh0
T2JqZWN0LCByZWZlcmVuY2VOYW1lLCBleHRlbnNpb25PYmplY3QpOwogICAgIHJldHVybiBleHRl
bnNpb25PYmplY3Q7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100700</attachid>
            <date>2011-07-13 11:52:28 -0700</date>
            <delta_ts>2011-07-13 13:14:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64467-20110713225226.patch</filename>
            <type>text/plain</type>
            <size>19073</size>
            <attacher name="Vitaly Repeshko">vitalyr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA5MDYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhOTdiZDVmZmMyMDdiZmRi
YTY2MjM3NDljYzI0NWU4ZGNmOTI4ODUyLi5hZjhlMmE4MmQxN2FjYjQxODU5YzgxM2MyZTE5MmE3
MTMxZDAzNDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMTEtMDctMTMgIFZpdGFs
eSBSZXBlc2hrbyAgPHZpdGFseXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtWOF0gQXZvaWQg
bWVtb3J5IGxlYWtzIHdpdGggaGlkZGVuIHJlZmVyZW5jZXMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDQ2NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHVzZWQgdG8gaGF2ZSBncm93aW5nIGFycmF5
cyBvZiBoaWRkZW4gcmVmZXJlbmNlcyBhc3NvY2lhdGVkCisgICAgICAgIHdpdGggb2JqZWN0cy4g
VGhlIGVudHJpZXMgaW4gdGhpcyBhcnJheSBoYWQgbm8ga2V5cyBhbmQgd2VyZSBuZXZlcgorICAg
ICAgICByZW1vdmVkLiBUaGlzIHBhdGNoIGNoYW5nZXMgdGhlIGludGVyZmFjZSB0byByZXF1aXJl
IGEgcmVmZXJlbmNlCisgICAgICAgIG5hbWUuIFRoaXMgd2F5IGl0J3MgaGFyZGVyIHRvIGxlYWsg
YW4gdW5ib3VuZGVkIG51bWJlciBvZgorICAgICAgICBvYmplY3RzLiBBbHNvIGl0IG1ha2VzIG91
ciB3cmFwcGVyIG9iamVjdHMgb25lIG1hY2hpbmUgd29yZAorICAgICAgICBzbWFsbGVyLgorCisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgIChH
ZW5lcmF0ZU5vcm1hbEF0dHJHZXR0ZXIpOiBTdGFydGVkIHVzaW5nIG5ldyBpbnRlcmZhY2UuCisK
KyAgICAgICAgSW50ZXJmYWNlIGNoYW5nZXM6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01X
cmFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV3JhcHBlcjo6c2V0TmFtZWRIaWRk
ZW5SZWZlcmVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6VjhET01XcmFwcGVyOjpzZXROYW1lZEhp
ZGRlbldpbmRvd1JlZmVyZW5jZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XcmFwcGVy
Lmg6CisKKyAgICAgICAgQWRkZWQgYSBoZWxwZXIgdG8gY29tcHV0ZSBoaWRkZW4gcmVmZXJlbmNl
IG5hbWVzIGFzIFY4IHN0cmluZ3M6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9w
ZXJ0eU5hbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhIaWRkZW5Qcm9wZXJ0eU5hbWU6Omhp
ZGRlblJlZmVyZW5jZU5hbWUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVy
dHlOYW1lLmg6CisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9XcmFwcGVyVHlwZUluZm8uaDogUmVt
b3ZlZCB0aGUgaGlkZGVuIHJlZmVyZW5jZQorICAgICAgICBhcnJheSBpbnRlcm5hbCBmaWVsZC4K
KworICAgICAgICBVcGRhdGUgdXNhZ2VzIG9mIGhpZGRlbiByZWZlcmVuY2VzOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1N0eWxlU2hlZXRDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6dG9WOCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5n
TWFwQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVjgpOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOERPTVRva2VuTGlzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp0b1Y4KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0
b20vVjhNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4
TWVzc2FnZUNoYW5uZWw6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdz
L3Y4L2N1c3RvbS9WOE5hbWVkTm9kZU1hcEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0
b1Y4KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVjgpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0
b1Y4T2JqZWN0KToKKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RP
YmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9iakludGVybmFsOjpyZWFkT25seVRlc3RP
YmpBdHRyQXR0ckdldHRlcik6IFVwZGF0ZWQuCisKIDIwMTEtMDctMTIgIEFuZHJleSBLb3N5YWtv
diAgPGNhc2VxQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBmYWN0b3Ig
TmV0d29ya0xvZ1ZpZXcgb3V0IG9mIE5ldHdvcmsgcGFuZWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXggNjZmOTcwYzI4NjEw
ODNiMjk5ZDNiZDgyOTU5OGE2YzQ3OWFkOTgwNy4uY2YwZWRiZTk3MWJjN2FjOTg1N2VlZDBkNWFj
ODY0NWY5OGE5NDMwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTg1Niw5ICs4NTYsOSBAQCBFTkQKICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgd3JhcHBlciA9IHRvVjgocmVzdWx0LmdldCgp
KTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICBpZiAoIXdy
YXBwZXIuSXNFbXB0eSgpKVxuIik7CiAgICAgICAgIGlmICgkZGF0YU5vZGUtPm5hbWUgZXEgIkRP
TVdpbmRvdyIpIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAg
ICAgICBWOERPTVdyYXBwZXI6OnNldEhpZGRlbldpbmRvd1JlZmVyZW5jZShpbXAtPmZyYW1lKCks
IHdyYXBwZXIpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAg
ICAgICAgICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlbldpbmRvd1JlZmVyZW5jZShpbXAt
PmZyYW1lKCksIFwiJHthdHRyTmFtZX1cIiwgd3JhcHBlcik7XG4iKTsKICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgICAgICBWOERP
TVdyYXBwZXI6OnNldEhpZGRlblJlZmVyZW5jZShpbmZvLkhvbGRlcigpLCB3cmFwcGVyKTtcbiIp
OworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgICAgIFY4RE9N
V3JhcHBlcjo6c2V0TmFtZWRIaWRkZW5SZWZlcmVuY2UoaW5mby5Ib2xkZXIoKSwgXCIke2F0dHJO
YW1lfVwiLCB3cmFwcGVyKTtcbiIpOwogICAgICAgICB9CiAgICAgICAgIHB1c2goQGltcGxDb250
ZW50RGVjbHMsICIgICAgfVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIg
ICAgcmV0dXJuIHdyYXBwZXI7XG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKaW5kZXggNjFmODI2MmJiNmMxN2NkNThi
MjQ0NDkxYThlMWZmNTljYTRiMjQ4Yi4uOGIyZWI2YzA5MzBjMTI2MzY1NDFiYzU2M2I0MWI2M2E4
MmZiYmRkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiByZWFkT25seVRlc3RPYmpBdHRyQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0
cmluZz4KICAgICBpZiAod3JhcHBlci5Jc0VtcHR5KCkpIHsKICAgICAgICAgd3JhcHBlciA9IHRv
VjgocmVzdWx0LmdldCgpKTsKICAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKLSAgICAg
ICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0SGlkZGVuUmVmZXJlbmNlKGluZm8uSG9sZGVyKCksIHdy
YXBwZXIpOworICAgICAgICAgICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVyZW5j
ZShpbmZvLkhvbGRlcigpLCAicmVhZE9ubHlUZXN0T2JqQXR0ciIsIHdyYXBwZXIpOwogICAgIH0K
ICAgICByZXR1cm4gd3JhcHBlcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERP
TVdyYXBwZXIuY3BwCmluZGV4IGM2MTI3YmM4ZDQyOTQ5YzVhNzFjMzMyOGYwOTA5Yjg3ZTM0MDA2
ZDEuLjQ2Y2ZiZWQ5MjFjYTdkM2YxMTZmNDk1YmIxN2I4MDE1ZmNiNzI4YzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcApAQCAtMzEsNiArMzEsNyBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlY4RE9NV3JhcHBlci5oIgogCisjaW5jbHVk
ZSAiQXJyYXlCdWZmZXJWaWV3LmgiCiAjaW5jbHVkZSAiQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24uaCIKICNpbmNsdWRlICJET01EYXRhU3RvcmUuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRl
ci5oIgpAQCAtMzksMTAgKzQwLDEwIEBACiAjaW5jbHVkZSAiVjhBYnN0cmFjdEV2ZW50TGlzdGVu
ZXIuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJWOENvbGxlY3Rpb24uaCIK
LSNpbmNsdWRlICJWOERlZGljYXRlZFdvcmtlckNvbnRleHQuaCIKICNpbmNsdWRlICJWOERPTUFw
cGxpY2F0aW9uQ2FjaGUuaCIKICNpbmNsdWRlICJWOERPTU1hcC5oIgogI2luY2x1ZGUgIlY4RE9N
V2luZG93LmgiCisjaW5jbHVkZSAiVjhEZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmgiCiAjaW5jbHVk
ZSAiVjhFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiVjhFdmVudExpc3RlbmVyTGlzdC5oIgog
I2luY2x1ZGUgIlY4RXZlbnRTb3VyY2UuaCIKQEAgLTUxLDYgKzUyLDcgQEAKICNpbmNsdWRlICJW
OEZpbGVXcml0ZXIuaCIKICNpbmNsdWRlICJWOEhUTUxDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAi
VjhIVE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJWOEhpZGRlblByb3BlcnR5TmFtZS5oIgogI2lu
Y2x1ZGUgIlY4SURCRGF0YWJhc2UuaCIKICNpbmNsdWRlICJWOElEQlJlcXVlc3QuaCIKICNpbmNs
dWRlICJWOElEQlRyYW5zYWN0aW9uLmgiCkBAIC03NSw3ICs3Nyw2IEBACiAjaW5jbHVkZSAiVjhX
b3JrZXJDb250ZXh0LmgiCiAjaW5jbHVkZSAiVjhXb3JrZXJDb250ZXh0RXZlbnRMaXN0ZW5lci5o
IgogI2luY2x1ZGUgIlY4WE1MSHR0cFJlcXVlc3QuaCIKLSNpbmNsdWRlICJBcnJheUJ1ZmZlclZp
ZXcuaCIKICNpbmNsdWRlICJXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmgiCiAjaW5jbHVkZSAiV2Vi
R0xVbmlmb3JtTG9jYXRpb24uaCIKICNpbmNsdWRlICJXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJv
eHkuaCIKQEAgLTE4OSwxOCArMTkwLDEzIEBAIHY4OjpMb2NhbDx2ODo6RnVuY3Rpb24+IFY4RE9N
V3JhcHBlcjo6Z2V0Q29uc3RydWN0b3IoV3JhcHBlclR5cGVJbmZvKiB0eXBlLCBXb3JrCiB9CiAj
ZW5kaWYKIAotdm9pZCBWOERPTVdyYXBwZXI6OnNldEhpZGRlblJlZmVyZW5jZSh2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+IHBhcmVudCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNoaWxkKQorCit2b2lk
IFY4RE9NV3JhcHBlcjo6c2V0TmFtZWRIaWRkZW5SZWZlcmVuY2Uodjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiBwYXJlbnQsIGNvbnN0IGNoYXIqIG5hbWUsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjaGls
ZCkKIHsKLSAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiBoaWRkZW5SZWZlcmVuY2VPYmplY3QgPSBw
YXJlbnQtPkdldEludGVybmFsRmllbGQodjhET01IaWRkZW5SZWZlcmVuY2VBcnJheUluZGV4KTsK
LSAgICBpZiAoaGlkZGVuUmVmZXJlbmNlT2JqZWN0LT5Jc051bGwoKSB8fCBoaWRkZW5SZWZlcmVu
Y2VPYmplY3QtPklzVW5kZWZpbmVkKCkpIHsKLSAgICAgICAgaGlkZGVuUmVmZXJlbmNlT2JqZWN0
ID0gdjg6OkFycmF5OjpOZXcoKTsKLSAgICAgICAgcGFyZW50LT5TZXRJbnRlcm5hbEZpZWxkKHY4
RE9NSGlkZGVuUmVmZXJlbmNlQXJyYXlJbmRleCwgaGlkZGVuUmVmZXJlbmNlT2JqZWN0KTsKLSAg
ICB9Ci0gICAgdjg6OkxvY2FsPHY4OjpBcnJheT4gaGlkZGVuUmVmZXJlbmNlQXJyYXkgPSB2ODo6
TG9jYWw8djg6OkFycmF5Pjo6Q2FzdChoaWRkZW5SZWZlcmVuY2VPYmplY3QpOwotICAgIGhpZGRl
blJlZmVyZW5jZUFycmF5LT5TZXQodjg6OkludGVnZXI6Ok5ldyhoaWRkZW5SZWZlcmVuY2VBcnJh
eS0+TGVuZ3RoKCkpLCBjaGlsZCk7CisgICAgcGFyZW50LT5TZXRIaWRkZW5WYWx1ZShWOEhpZGRl
blByb3BlcnR5TmFtZTo6aGlkZGVuUmVmZXJlbmNlTmFtZShuYW1lKSwgY2hpbGQpOwogfQogCi12
b2lkIFY4RE9NV3JhcHBlcjo6c2V0SGlkZGVuV2luZG93UmVmZXJlbmNlKEZyYW1lKiBmcmFtZSwg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IGpzT2JqZWN0KQordm9pZCBWOERPTVdyYXBwZXI6OnNldE5h
bWVkSGlkZGVuV2luZG93UmVmZXJlbmNlKEZyYW1lKiBmcmFtZSwgY29uc3QgY2hhciogbmFtZSwg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IGpzT2JqZWN0KQogewogICAgIC8vIEdldCBET01XaW5kb3cK
ICAgICBpZiAoIWZyYW1lKQpAQCAtMjE0LDcgKzIxMCw3IEBAIHZvaWQgVjhET01XcmFwcGVyOjpz
ZXRIaWRkZW5XaW5kb3dSZWZlcmVuY2UoRnJhbWUqIGZyYW1lLCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4KICAgICBnbG9iYWwgPSBWOERPTVdyYXBwZXI6Omxvb2t1cERPTVdyYXBwZXIoVjhET01XaW5k
b3c6OkdldFRlbXBsYXRlKCksIGdsb2JhbCk7CiAgICAgQVNTRVJUKCFnbG9iYWwuSXNFbXB0eSgp
KTsKIAotICAgIHNldEhpZGRlblJlZmVyZW5jZShnbG9iYWwsIGpzT2JqZWN0KTsKKyAgICBzZXRO
YW1lZEhpZGRlblJlZmVyZW5jZShnbG9iYWwsIG5hbWUsIGpzT2JqZWN0KTsKIH0KIAogV3JhcHBl
clR5cGVJbmZvKiBWOERPTVdyYXBwZXI6OmRvbVdyYXBwZXJUeXBlKHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gb2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhE
T01XcmFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaApp
bmRleCA3ZjQ0OTBhZDFjZjM2ZDA1MThlYTZkYWI5YzUxYTNkZTI0ZjIzZWJiLi4wY2FlNmRiNDBi
ZDA0ZTkxMjg1NDgxZGM0ODBkNTFjZjQzNjg0YWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOERPTVdyYXBwZXIuaApAQCAtMTE0LDEwICsxMTQsMTQgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICAvLyBDaGVjayB3aGV0aGVyIGEgVjggdmFsdWUgaXMgYSB3cmFwcGVyIG9m
IHR5cGUgfGNsYXNzVHlwZXwuCiAgICAgICAgIHN0YXRpYyBib29sIGlzV3JhcHBlck9mVHlwZSh2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4sIFdyYXBwZXJUeXBlSW5mbyopOwogCi0gICAgICAgIHN0YXRp
YyB2b2lkIHNldEhpZGRlblJlZmVyZW5jZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHBhcmVudCwg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IGNoaWxkKTsKLQotICAgICAgICAvLyBTZXQgaGlkZGVuIHJl
ZmVyZW5jZXMgaW4gYSBET01XaW5kb3cgb2JqZWN0IG9mIGEgZnJhbWUuCi0gICAgICAgIHN0YXRp
YyB2b2lkIHNldEhpZGRlbldpbmRvd1JlZmVyZW5jZShGcmFtZSosIHY4OjpIYW5kbGU8djg6OlZh
bHVlPik7CisgICAgICAgIC8vIFByb3BlciBvYmplY3QgbGlmZXRpbWUgc3VwcG9ydC4KKyAgICAg
ICAgLy8KKyAgICAgICAgLy8gSGVscGVyIGZ1bmN0aW9ucyB0byBtYWtlIHN1cmUgdGhlIGNoaWxk
IG9iamVjdCBzdGF5cyBhbGl2ZQorICAgICAgICAvLyB3aGlsZSB0aGUgcGFyZW50IGlzIGFsaXZl
LiBVc2luZyB0aGUgbmFtZSBtb3JlIHRoYW4gb25jZQorICAgICAgICAvLyBvdmVyd3JpdGVzIHBy
ZXZpb3VzIHJlZmVyZW5jZXMgbWFraW5nIGl0IHBvc3NpYmxlIHRvIGZyZWUKKyAgICAgICAgLy8g
b2xkIGNoaWxkcmVuLgorICAgICAgICBzdGF0aWMgdm9pZCBzZXROYW1lZEhpZGRlblJlZmVyZW5j
ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHBhcmVudCwgY29uc3QgY2hhciogbmFtZSwgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IGNoaWxkKTsKKyAgICAgICAgc3RhdGljIHZvaWQgc2V0TmFtZWRIaWRk
ZW5XaW5kb3dSZWZlcmVuY2UoRnJhbWUqLCBjb25zdCBjaGFyKiwgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+KTsKIAogICAgICAgICBzdGF0aWMgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGluc3RhbnRpYXRl
VjhPYmplY3QoVjhQcm94eSogcHJveHksIFdyYXBwZXJUeXBlSW5mbyosIHZvaWQqIGltcGwpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEhpZGRlblByb3BlcnR5
TmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEhpZGRlblByb3BlcnR5TmFt
ZS5jcHAKaW5kZXggZDgzNTczZjU0MWIzNmVhMTMwNWJkZWJlODI1ZTIyOTA1MzcxOWEwZC4uMjkw
OTI2OWU3ODNiMmJhMGQzZmQ3YWQ3ZWViNmUzZWQ5MDhlZmU3MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0eU5hbWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1lLmNwcApAQCAtMzEsNiAr
MzEsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlY4SGlkZGVuUHJvcGVydHlO
YW1lLmgiCiAKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2RlZmluZSBWOF9BU19TVFJJTkcoeCkgVjhfQVNfU1RS
SU5HX0lNUEwoeCkKQEAgLTM5LDEyICs0MiwyMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZGVm
aW5lIFY4X0RFRklORV9QUk9QRVJUWShuYW1lKSBcCiB2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IFY4
SGlkZGVuUHJvcGVydHlOYW1lOjpuYW1lKCkgXAogeyBcCi0gICAgc3RhdGljIHY4OjpQZXJzaXN0
ZW50PHY4OjpTdHJpbmc+KiBzdHJpbmcgPSBjcmVhdGVTdHJpbmcoIldlYkNvcmU6OlY4SGlkZGVu
UHJvcGVydHlOYW1lOjoiIFY4X0FTX1NUUklORyhuYW1lKSk7IFwKKyAgICBzdGF0aWMgdjg6OlBl
cnNpc3RlbnQ8djg6OlN0cmluZz4qIHN0cmluZyA9IGNyZWF0ZVN0cmluZygiV2ViQ29yZTo6SGlk
ZGVuUHJvcGVydHk6OiIgVjhfQVNfU1RSSU5HKG5hbWUpKTsgXAogICAgIHJldHVybiAqc3RyaW5n
OyBcCiB9CiAKIFY4X0hJRERFTl9QUk9QRVJUSUVTKFY4X0RFRklORV9QUk9QRVJUWSk7CiAKK3N0
YXRpYyBjb25zdCBjaGFyIGhpZGRlblJlZmVyZW5jZU5hbWVQcmVmaXhbXSA9ICJXZWJDb3JlOjpI
aWRkZW5SZWZlcmVuY2U6OiI7CisKK3Y4OjpIYW5kbGU8djg6OlN0cmluZz4gVjhIaWRkZW5Qcm9w
ZXJ0eU5hbWU6OmhpZGRlblJlZmVyZW5jZU5hbWUoY29uc3QgY2hhciogbmFtZSkKK3sKKyAgICBW
ZWN0b3I8Y2hhciwgNjQ+IHByZWZpeGVkTmFtZTsKKyAgICBwcmVmaXhlZE5hbWUuYXBwZW5kKGhp
ZGRlblJlZmVyZW5jZU5hbWVQcmVmaXgsIHNpemVvZihoaWRkZW5SZWZlcmVuY2VOYW1lUHJlZml4
KSAtIDEpOworICAgIHByZWZpeGVkTmFtZS5hcHBlbmQobmFtZSwgc3RybGVuKG5hbWUpKTsKKyAg
ICByZXR1cm4gdjg6OlN0cmluZzo6TmV3U3ltYm9sKHByZWZpeGVkTmFtZS5kYXRhKCksIHN0YXRp
Y19jYXN0PGludD4ocHJlZml4ZWROYW1lLnNpemUoKSkpOworfQorCiB2ODo6UGVyc2lzdGVudDx2
ODo6U3RyaW5nPiogVjhIaWRkZW5Qcm9wZXJ0eU5hbWU6OmNyZWF0ZVN0cmluZyhjb25zdCBjaGFy
KiBrZXkpCiB7CiAgICAgdjg6OkhhbmRsZVNjb3BlIHNjb3BlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0eU5hbWUuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1lLmgKaW5kZXggNzg2N2IzNjNiMTRl
ZTJjNGI5ZDM0NzM0MWRjYTEwMzQ2ZDY1ZjQ2Zi4uN2M0YWFlMGQ1NzAzZTcwNzBmYTRhYTRlZmU0
NDBlOTU0MjA3YmM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhI
aWRkZW5Qcm9wZXJ0eU5hbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEhp
ZGRlblByb3BlcnR5TmFtZS5oCkBAIC01Miw2ICs1Miw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgVjhfSElEREVOX1BST1BFUlRJRVMoVjhfREVDTEFSRV9QUk9QRVJUWSk7CiAjdW5k
ZWYgVjhfREVDTEFSRV9QUk9QRVJUWQogCisgICAgICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpT
dHJpbmc+IGhpZGRlblJlZmVyZW5jZU5hbWUoY29uc3QgY2hhciogbmFtZSk7CisKICAgICBwcml2
YXRlOgogICAgICAgICBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4qIGNyZWF0ZVN0
cmluZyhjb25zdCBjaGFyKiBrZXkpOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9XcmFwcGVyVHlwZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1dyYXBwZXJUeXBlSW5mby5oCmluZGV4IDE2NmQ2NDJlMTUwNzdhMmRjZmVmMGZiZjRlZjI3
Yjc0N2QzMGQ5NmEuLmMyNjg0ZDY2YmU2NjdmYjIwOTM3ZDQ1ZDkzYWJjZjcyNzZhMTVjY2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dyYXBwZXJUeXBlSW5mby5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dyYXBwZXJUeXBlSW5mby5oCkBAIC0zOSw4
ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKICAgICBzdGF0aWMgY29uc3QgaW50
IHY4RE9NV3JhcHBlclR5cGVJbmRleCA9IDA7CiAgICAgc3RhdGljIGNvbnN0IGludCB2OERPTVdy
YXBwZXJPYmplY3RJbmRleCA9IDE7Ci0gICAgc3RhdGljIGNvbnN0IGludCB2OERPTUhpZGRlblJl
ZmVyZW5jZUFycmF5SW5kZXggPSAyOwotICAgIHN0YXRpYyBjb25zdCBpbnQgdjhEZWZhdWx0V3Jh
cHBlckludGVybmFsRmllbGRDb3VudCA9IDM7CisgICAgc3RhdGljIGNvbnN0IGludCB2OERlZmF1
bHRXcmFwcGVySW50ZXJuYWxGaWVsZENvdW50ID0gMjsKIAogICAgIHN0YXRpYyBjb25zdCB1aW50
MTZfdCB2OERPTVN1YnRyZWVDbGFzc0lkID0gMTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTU3R5bGVTaGVldEN1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDU1NTdHlsZVNoZWV0Q3VzdG9tLmNwcAppbmRl
eCA5ZWZmY2EzOWE1Y2Y0MTc1YWU3MWRiMDM4MzgxOTU3MTJmNDE1OTVkLi45YjI5ODhiN2VhZWEz
YjRiYjE0ODA5YmVmZDg1NDcxZWUwOTdjMmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhDU1NTdHlsZVNoZWV0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDU1NTdHlsZVNoZWV0Q3VzdG9tLmNwcApAQCAt
NDQsNyArNDQsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChDU1NTdHlsZVNoZWV0KiBp
bXBsKQogICAgIC8vIEFkZCBhIGhpZGRlbiByZWZlcmVuY2UgZnJvbSBzdHlsZXNoZWV0IG9iamVj
dCB0byBpdHMgb3duZXIgbm9kZS4KICAgICBOb2RlKiBvd25lck5vZGUgPSBpbXBsLT5vd25lck5v
ZGUoKTsKICAgICBpZiAob3duZXJOb2RlICYmICF3cmFwcGVyLklzRW1wdHkoKSkKLSAgICAgICAg
VjhET01XcmFwcGVyOjpzZXRIaWRkZW5SZWZlcmVuY2Uod3JhcHBlciwgdG9WOChvd25lck5vZGUp
KTsKKyAgICAgICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVyZW5jZSh3cmFwcGVy
LCAib3duZXJOb2RlIiwgdG9WOChvd25lck5vZGUpKTsKICAgICByZXR1cm4gd3JhcHBlcjsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3Ry
aW5nTWFwQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERP
TVN0cmluZ01hcEN1c3RvbS5jcHAKaW5kZXggNzFmZjM1NzZkYTYxMzAzMDkwNTJiZTg0Y2ZkNTVk
NzIwYjAyYjA2NS4uMWQ2Mzk4ZWM5NWJiYjJkMmIwNWE5OWI4NjJjMGI5MTg1Yjc3ZmI2OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFw
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01T
dHJpbmdNYXBDdXN0b20uY3BwCkBAIC0xMDUsNyArMTA1LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IHRvVjgoRE9NU3RyaW5nTWFwKiBpbXBsKQogICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkg
JiYgZWxlbWVudCkgewogICAgICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZWxlbWVudFZhbHVl
ID0gdG9WOChlbGVtZW50KTsKICAgICAgICAgaWYgKCFlbGVtZW50VmFsdWUuSXNFbXB0eSgpICYm
IGVsZW1lbnRWYWx1ZS0+SXNPYmplY3QoKSkKLSAgICAgICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0
SGlkZGVuUmVmZXJlbmNlKGVsZW1lbnRWYWx1ZS5Bczx2ODo6T2JqZWN0PigpLCB3cmFwcGVyKTsK
KyAgICAgICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0TmFtZWRIaWRkZW5SZWZlcmVuY2UoZWxlbWVu
dFZhbHVlLkFzPHY4OjpPYmplY3Q+KCksICJkb21TdHJpbmdNYXAiLCB3cmFwcGVyKTsKICAgICB9
CiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhET01Ub2tlbkxpc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NVG9rZW5MaXN0Q3VzdG9tLmNwcAppbmRleCAxNzFmZjVj
MjlkZTA4NjZjZmZlOTRkMjBmOTQ4ODc3MTgxOWVkYjFkLi4wODA1MWFiZDU1OGRlZjFjNmY2Mjk2
NTcxODI4MDEzMjEyMzE4ZTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhET01Ub2tlbkxpc3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOERPTVRva2VuTGlzdEN1c3RvbS5jcHAKQEAgLTQ4LDcgKzQ4LDcg
QEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoRE9NVG9rZW5MaXN0KiBpbXBsKQogICAgIGlm
ICghd3JhcHBlci5Jc0VtcHR5KCkgJiYgZWxlbWVudCkgewogICAgICAgICB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gZWxlbWVudFZhbHVlID0gdG9WOChlbGVtZW50KTsKICAgICAgICAgaWYgKCFlbGVt
ZW50VmFsdWUuSXNFbXB0eSgpICYmIGVsZW1lbnRWYWx1ZS0+SXNPYmplY3QoKSkKLSAgICAgICAg
ICAgIFY4RE9NV3JhcHBlcjo6c2V0SGlkZGVuUmVmZXJlbmNlKGVsZW1lbnRWYWx1ZS5Bczx2ODo6
T2JqZWN0PigpLCB3cmFwcGVyKTsKKyAgICAgICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0TmFtZWRI
aWRkZW5SZWZlcmVuY2UoZWxlbWVudFZhbHVlLkFzPHY4OjpPYmplY3Q+KCksICJkb21Ub2tlbkxp
c3QiLCB3cmFwcGVyKTsKICAgICB9CiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAK
aW5kZXggYjIyMmE5OTYwMmFlMjA3NjZkYzJkYzVmOGIyMjg4OTAyYWU3ODI4Yi4uN2RiNzRlODU4
MjJiNDE2MjljOWIwZTBkODY1MjBmZGQ2Y2FjYzQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TG9jYXRpb25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcApAQCAtMjgwLDcg
KzI4MCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KExvY2F0aW9uKiBpbXBsKQogICAg
IGlmICh3cmFwcGVyLklzRW1wdHkoKSkgewogICAgICAgICB3cmFwcGVyID0gVjhMb2NhdGlvbjo6
d3JhcChpbXBsKTsKICAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKLSAgICAgICAgICAg
IFY4RE9NV3JhcHBlcjo6c2V0SGlkZGVuV2luZG93UmVmZXJlbmNlKGltcGwtPmZyYW1lKCksIHdy
YXBwZXIpOworICAgICAgICAgICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlbldpbmRvd1Jl
ZmVyZW5jZShpbXBsLT5mcmFtZSgpLCAibG9jYXRpb24iLCB3cmFwcGVyKTsKICAgICB9CiAgICAg
cmV0dXJuIHdyYXBwZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwCmluZGV4
IGI5NjZlNDIzMDhlZjAxMDZkMGUyN2JmMTQ0OTBiNzdlMTA4MWQzOTYuLjc3NWU3NDVlZjgwYTkz
Mjk2NDQzOWNhZWViOTM0ZmQzNjQ3NDdlYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VDaGFubmVsQ29uc3RydWN0
b3IuY3BwCkBAIC02Nyw4ICs2Nyw4IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOE1lc3NhZ2VD
aGFubmVsOjpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmCiAgICAgLy8g
Q3JlYXRlIHJlZmVyZW5jZXMgZnJvbSB0aGUgTWVzc2FnZUNoYW5uZWwgd3JhcHBlciB0byB0aGUg
dHdvCiAgICAgLy8gTWVzc2FnZVBvcnQgd3JhcHBlcnMgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIE1l
c3NhZ2VQb3J0IHdyYXBwZXJzCiAgICAgLy8gc3RheSBhbGl2ZSBhcyBsb25nIGFzIHRoZSBNZXNz
YWdlQ2hhbm5lbCB3cmFwcGVyIGlzIGFyb3VuZC4KLSAgICBWOERPTVdyYXBwZXI6OnNldEhpZGRl
blJlZmVyZW5jZShtZXNzYWdlQ2hhbm5lbCwgdG9WOChvYmotPnBvcnQxKCkpKTsKLSAgICBWOERP
TVdyYXBwZXI6OnNldEhpZGRlblJlZmVyZW5jZShtZXNzYWdlQ2hhbm5lbCwgdG9WOChvYmotPnBv
cnQyKCkpKTsKKyAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKG1lc3Nh
Z2VDaGFubmVsLCAicG9ydDEiLCB0b1Y4KG9iai0+cG9ydDEoKSkpOworICAgIFY4RE9NV3JhcHBl
cjo6c2V0TmFtZWRIaWRkZW5SZWZlcmVuY2UobWVzc2FnZUNoYW5uZWwsICJwb3J0MiIsIHRvVjgo
b2JqLT5wb3J0MigpKSk7CiAKICAgICAvLyBTZXR1cCB0aGUgc3RhbmRhcmQgd3JhcHBlciBvYmpl
Y3QgaW50ZXJuYWwgZmllbGRzLgogICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcihtZXNz
YWdlQ2hhbm5lbCwgJmluZm8sIG9iai5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVNYXBDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2RlTWFwQ3VzdG9tLmNwcAppbmRleCBk
OWUxZGUwMTRmOWQ4ZjUwOTc2NWY1ZWVhNjgyZTM5ZGI1MmViZjdiLi5jOTAxNGMwMmI2Njg5N2Ey
ZjRiOTE0NDE4OWQyZWMwOTBmYWQwMmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVNYXBDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9kZU1hcEN1c3RvbS5jcHAKQEAgLTgzLDcg
KzgzLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoTmFtZWROb2RlTWFwKiBpbXBsKQog
ICAgIC8vIEFkZCBhIGhpZGRlbiByZWZlcmVuY2UgZnJvbSBuYW1lZCBub2RlIG1hcCB0byBpdHMg
b3duZXIgbm9kZS4KICAgICBFbGVtZW50KiBlbGVtZW50ID0gaW1wbC0+ZWxlbWVudCgpOwogICAg
IGlmICghd3JhcHBlci5Jc0VtcHR5KCkgJiYgZWxlbWVudCkKLSAgICAgICAgVjhET01XcmFwcGVy
OjpzZXRIaWRkZW5SZWZlcmVuY2Uod3JhcHBlciwgdG9WOChlbGVtZW50KSk7CisgICAgICAgIFY4
RE9NV3JhcHBlcjo6c2V0TmFtZWRIaWRkZW5SZWZlcmVuY2Uod3JhcHBlciwgIm93bmVyTm9kZSIs
IHRvVjgoZWxlbWVudCkpOwogICAgIHJldHVybiB3cmFwcGVyOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0Q3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRDdXN0b20uY3Bw
CmluZGV4IGIzZjZmZjc2Yjk5YzZkYmMyNGU0OWZiMjk4NjczNDFjN2MzMzdlNzEuLjBmZTZhZjg1
MGFkMzM5MzgzNTBkYjZmYWJmYmQwM2FhMWQ3N2Y5YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRDdXN0b20uY3BwCkBAIC00
Nyw3ICs0Nyw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KFN0eWxlU2hlZXQqIGltcGwp
CiAgICAgLy8gQWRkIGEgaGlkZGVuIHJlZmVyZW5jZSBmcm9tIHN0eWxlc2hlZXQgb2JqZWN0IHRv
IGl0cyBvd25lciBub2RlLgogICAgIE5vZGUqIG93bmVyTm9kZSA9IGltcGwtPm93bmVyTm9kZSgp
OwogICAgIGlmIChvd25lck5vZGUgJiYgIXdyYXBwZXIuSXNFbXB0eSgpKQotICAgICAgICBWOERP
TVdyYXBwZXI6OnNldEhpZGRlblJlZmVyZW5jZSh3cmFwcGVyLCB0b1Y4KG93bmVyTm9kZSkpOwor
ICAgICAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKHdyYXBwZXIsICJv
d25lck5vZGUiLCB0b1Y4KG93bmVyTm9kZSkpOwogICAgIHJldHVybiB3cmFwcGVyOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAppbmRleCA0NzRmZjkxNTE4ZjQ4NDhk
ZDk0ODVhODY0ZTllOWE3MzU0OTZmZjE2Li4zNWQ5YzU5NWVlYzFlMjc0ZTI4ZDYxNmQ1MTVhOWNi
NzU2NjQwNGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKQEAgLTE2
MSwyMiArMTYxLDI3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOE9iamVjdChX
ZWJHTEV4dGVuc2lvbiogZXh0ZW5zaW9uLCB2ODo6SGFuZGxlPHY4CiAgICAgaWYgKCFleHRlbnNp
b24pCiAgICAgICAgIHJldHVybiB2ODo6TnVsbCgpOwogICAgIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBleHRlbnNpb25PYmplY3Q7CisgICAgY29uc3QgY2hhciogcmVmZXJlbmNlTmFtZTsKICAgICBz
d2l0Y2ggKGV4dGVuc2lvbi0+Z2V0TmFtZSgpKSB7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6
V2ViS2l0TG9zZUNvbnRleHROYW1lOgogICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0
YXRpY19jYXN0PFdlYktpdExvc2VDb250ZXh0Kj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJlZmVy
ZW5jZU5hbWUgPSAid2ViS2l0TG9zZUNvbnRleHROYW1lIjsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTU3RhbmRhcmREZXJpdmF0aXZlc05hbWU6CiAgICAgICAg
IGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8T0VTU3RhbmRhcmREZXJpdmF0aXZl
cyo+KGV4dGVuc2lvbikpOworICAgICAgICByZWZlcmVuY2VOYW1lID0gIm9lc1N0YW5kYXJkRGVy
aXZhdGl2ZXNOYW1lIjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6
T0VTVGV4dHVyZUZsb2F0TmFtZToKICAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0
aWNfY2FzdDxPRVNUZXh0dXJlRmxvYXQqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmVmZXJlbmNl
TmFtZSA9ICJvZXNUZXh0dXJlRmxvYXROYW1lIjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBX
ZWJHTEV4dGVuc2lvbjo6T0VTVmVydGV4QXJyYXlPYmplY3ROYW1lOgogICAgICAgICBleHRlbnNp
b25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PE9FU1ZlcnRleEFycmF5T2JqZWN0Kj4oZXh0ZW5z
aW9uKSk7CisgICAgICAgIHJlZmVyZW5jZU5hbWUgPSAib2VzVmVydGV4QXJyYXlPYmplY3ROYW1l
IjsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIEFTU0VSVCghZXh0ZW5zaW9uT2JqZWN0Lklz
RW1wdHkoKSk7Ci0gICAgVjhET01XcmFwcGVyOjpzZXRIaWRkZW5SZWZlcmVuY2UoY29udGV4dE9i
amVjdCwgZXh0ZW5zaW9uT2JqZWN0KTsKKyAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVu
UmVmZXJlbmNlKGNvbnRleHRPYmplY3QsIHJlZmVyZW5jZU5hbWUsIGV4dGVuc2lvbk9iamVjdCk7
CiAgICAgcmV0dXJuIGV4dGVuc2lvbk9iamVjdDsKIH0KIAo=
</data>
<flag name="review"
          id="95413"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="95419"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>