<?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>95156</bug_id>
          
          <creation_ts>2012-08-27 17:19:35 -0700</creation_ts>
          <short_desc>[V8] ScriptController::matchesCurrentContext duplicates code from ScriptController::currentWorldContext</short_desc>
          <delta_ts>2012-08-29 23:24:18 -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>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>eric</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>705909</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-27 17:19:35 -0700</bug_when>
    <thetext>[V8] ScriptController::matchesCurrentContext duplicates code from ScriptController::currentWorldContext</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705912</commentid>
    <comment_count>1</comment_count>
      <attachid>160865</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-27 17:21:20 -0700</bug_when>
    <thetext>Created attachment 160865
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705915</commentid>
    <comment_count>2</comment_count>
      <attachid>160865</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-27 17:24:19 -0700</bug_when>
    <thetext>Comment on attachment 160865
Patch

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

&gt; Source/WebCore/bindings/v8/ScriptController.cpp:447
&gt; +    return v8::Context::GetCurrent() == contextForCurrentWorldPrivate();

CodeGeneratorV8.pm is the only caller site of matchesCurrentContext(). You might want to write this in CodeGeneratorV8.pm and remove matchesCurrentContext().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705919</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-27 17:31:13 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 160865 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=160865&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/v8/ScriptController.cpp:447
&gt; &gt; +    return v8::Context::GetCurrent() == contextForCurrentWorldPrivate();
&gt; 
&gt; CodeGeneratorV8.pm is the only caller site of matchesCurrentContext(). You might want to write this in CodeGeneratorV8.pm and remove matchesCurrentContext().

Good point...  The downside is that then I&apos;d need to make contextForCurrentWorldPrivate non-private.

Eric prefers the old names for these functions, so I&apos;m going to try another iteration of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705932</commentid>
    <comment_count>4</comment_count>
      <attachid>160869</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-27 17:47:33 -0700</bug_when>
    <thetext>Created attachment 160869
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705933</commentid>
    <comment_count>5</comment_count>
      <attachid>160869</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-08-27 17:49:31 -0700</bug_when>
    <thetext>Comment on attachment 160869
Patch

Maybe unsafeHandleToCurrentWorldContext()?  Otherwise looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707538</commentid>
    <comment_count>6</comment_count>
      <attachid>161250</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-29 09:46:12 -0700</bug_when>
    <thetext>Created attachment 161250
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708344</commentid>
    <comment_count>7</comment_count>
      <attachid>161250</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-29 23:24:14 -0700</bug_when>
    <thetext>Comment on attachment 161250
Patch for landing

Clearing flags on attachment: 161250

Committed r127106: &lt;http://trac.webkit.org/changeset/127106&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708345</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-29 23:24:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160865</attachid>
            <date>2012-08-27 17:21:20 -0700</date>
            <delta_ts>2012-08-27 17:47:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95156-20120827172112.patch</filename>
            <type>text/plain</type>
            <size>23105</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2Nzc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTZlZmRkYTAwNDRkMzUz
NjIzMDIxYjc0NDRlYmMzODVhNDVmZDQxNS4uM2ZlYWY0NjkyNGM4ZDE2NzEyZTkyNWRmOTAzMWFi
NDkzNjlkMTcyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU1IEBACiAyMDEyLTA4LTI3ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgW1Y4XSBTY3JpcHRDb250cm9s
bGVyOjptYXRjaGVzQ3VycmVudENvbnRleHQgZHVwbGljYXRlcyBjb2RlIGZyb20gU2NyaXB0Q29u
dHJvbGxlcjo6Y3VycmVudFdvcmxkQ29udGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUxNTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgY29udGV4dEZvckN1cnJl
bnRXb3JsZFByaXZhdGUsIHdoaWNoIHJldHVybnMgdGhlCisgICAgICAgIHVuZGVybHlpbmcgdjg6
OlBlcnNpc3RlbnQgaGFuZGxlIHNvIHRoYXQgbWF0Y2hlc0N1cnJlbnRDb250ZXh0IGRvZXNuJ3QK
KyAgICAgICAgbmVlZCB0byBjcmVhdGUgYW4gKHVubmVjZXNzYXJ5KSB2ODo6TG9jYWwgaGFuZGxl
LiBBcyBwYXJ0IG9mIHRoaXMKKyAgICAgICAgcGF0Y2gsIEkndmUgcmVuYW1lZCBjdXJyZW50V29y
bGRDb250ZXh0IGFuZCBtYWluV29ybGRDb250ZXh0IHRvCisgICAgICAgIGNvbnRleHRGb3JDdXJy
ZW50V29ybGQgYW5kIGNvbnRleHRGb3JNYWluV29ybGQsIHJlc3BlY3RpdmVseS4KKworICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJh
dGVUb1Y4Q29udmVydGVycyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdEFjdGl2ZURPTU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RBY3RpdmVE
T01PYmplY3Q6OndyYXBTbG93KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3ROb2RlOjp3cmFwU2xvdyk6
CisgICAgICAgICogYmluZGluZ3MvdjgvTlBWOE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp0b1Y4Q29udGV4dCk6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpjb250ZXh0Rm9yQ3VycmVudFdvcmxkUHJp
dmF0ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRy
b2xsZXI6OmNvbnRleHRGb3JDdXJyZW50V29ybGQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0
Q29udHJvbGxlcjo6Y29udGV4dEZvck1haW5Xb3JsZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRDb250cm9sbGVyOjptYXRjaGVzQ3VycmVudENvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0Q29udHJvbGxlcjo6YmluZFRvV2luZG93T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZVNjcmlwdE9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVy
OjpjcmVhdGVTY3JpcHRPYmplY3RGb3JQbHVnaW5FbGVtZW50KToKKyAgICAgICAgKiBiaW5kaW5n
cy92OC9TY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgIChTY3JpcHRDb250cm9sbGVyKToKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpt
YWluV29ybGRTY3JpcHRTdGF0ZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XcmFwcGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV3JhcHBlcjo6c2V0TmFtZWRIaWRkZW5XaW5k
b3dSZWZlcmVuY2UpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4SXNvbGF0ZWRDb250ZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SXNvbGF0ZWRDb250ZXh0OjpWOElzb2xhdGVkQ29udGV4
dCk6CisgICAgICAgICogYmluZGluZ3MvdjgvV29ybGRDb250ZXh0SGFuZGxlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldvcmxkQ29udGV4dEhhbmRsZTo6YWRqdXN0ZWRDb250ZXh0KToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V2luZG93U2V0VGltZW91dEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6VjhET01X
aW5kb3c6OmV2ZW50QWNjZXNzb3JHZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VjhET01XaW5k
b3c6OmV2ZW50QWNjZXNzb3JTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlhbG9nSGFuZGxl
cjo6ZGlhbG9nQ3JlYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4KToKKyAgICAgICAgKiBi
aW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRG9jdW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VjhIVE1MRG9jdW1lbnQ6Om9wZW5DYWxsYmFjayk6CisKKzIwMTItMDgtMjcgIEFkYW0g
QmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKwogICAgICAgICBbVjhdIFY4RE9NV2luZG93U2hl
bGw6Omluc3RhbGxET01XaW5kb3cgaXMgc3VidGxlIGFuZCBzaG91bGQgZXhwbGFpbiBpdHNlbGYg
bW9yZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUx
NTEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBiN2U0ZDUwM2EwNDJhNzYwYmIwODM5
MzNlNjNhMDQyZWUzYWIzNjEyLi4wOTQ0YzI4MDQ1MGI2NzE4OWUwOWY0MjMxZmJkZDdkYjQ5YTQz
ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA4
LTI3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1Y4XSBTY3Jp
cHRDb250cm9sbGVyOjptYXRjaGVzQ3VycmVudENvbnRleHQgZHVwbGljYXRlcyBjb2RlIGZyb20g
U2NyaXB0Q29udHJvbGxlcjo6Y3VycmVudFdvcmxkQ29udGV4dAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUxNTYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGhlc2UgY2FsbCBzaXRlcyB0byB0
aGUgbmV3IGZ1bmN0aW9uIG5hbWVzLgorCisgICAgICAgICogc3JjL0luc3BlY3RvckZyb250ZW5k
Q2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50
SW1wbDo6d2luZG93T2JqZWN0Q2xlYXJlZCk6CisgICAgICAgICogc3JjL1dlYkRldlRvb2xzRnJv
bnRlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRGV2VG9vbHNGcm9udGVuZEltcGw6
OmRpc3BhdGNoT25JbnNwZWN0b3JGcm9udGVuZCk6CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6bWFpbldvcmxkU2NyaXB0Q29u
dGV4dCk6CisKIDIwMTItMDgtMjcgIEp1c3RpbiBOb3Zvc2FkICA8anVub3ZAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFtDaHJvbWl1bV0gSW1wbGVtZW50aW5nIGEgZ2xvYmFsIGxpbWl0IG9uIG1l
bW9yeSBjb25zdW1lZCBieSBkZWZlcnJlZCAyRCBjYW52YXNlcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCAyZDc5NTdjZmI2
MmEwYzE3Y2U5YmFkNWMyMDg3ZGViZTQ3NTNjMjBiLi5jNDg1NDk2MjlmMWViNmNlZTNmMzI5NmQ2
ZDhhYmI4YTBjZTFlMjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMzQwMiw3ICszNDAyLDcgQEAgRU5ECiAgICAgaWYg
KGZyYW1lICYmICFmcmFtZS0+c2NyaXB0KCktPm1hdGNoZXNDdXJyZW50Q29udGV4dCgpKSB7CiAg
ICAgICAgIC8vIEZvciBwZXJmb3JtYW5jZSwgd2UgZW50ZXIgdGhlIGNvbnRleHQgb25seSBpZiB0
aGUgY3VycmVudGx5IHJ1bm5pbmcgY29udGV4dAogICAgICAgICAvLyBpcyBkaWZmZXJlbnQgZnJv
bSB0aGUgY29udGV4dCB0aGF0IHdlIGFyZSBhYm91dCB0byBlbnRlci4KLSAgICAgICAgY29udGV4
dCA9IGZyYW1lLT5zY3JpcHQoKS0+Y3VycmVudFdvcmxkQ29udGV4dCgpOworICAgICAgICBjb250
ZXh0ID0gZnJhbWUtPnNjcmlwdCgpLT5jb250ZXh0Rm9yQ3VycmVudFdvcmxkKCk7CiAgICAgICAg
IGlmICghY29udGV4dC5Jc0VtcHR5KCkpCiAgICAgICAgICAgICBjb250ZXh0LT5FbnRlcigpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKaW5kZXggYzJjOTk0MDQ1OWEz
MWRlYTYyNDlmNzFlZWZhZmY2YzJjMTA2MDJhZS4uMmVhM2IzYjQ1MDdiNjQ2NDA2NTMwNjJiYTBi
ZDgxNGE1YTRiZGU4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKQEAgLTE5
MCw3ICsxOTAsNyBAQCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdEFjdGl2ZURPTU9iamVj
dDo6d3JhcFNsb3coUGFzc1JlZlB0cjxUZXN0QWN0aXZlRE9NTwogICAgIGlmIChmcmFtZSAmJiAh
ZnJhbWUtPnNjcmlwdCgpLT5tYXRjaGVzQ3VycmVudENvbnRleHQoKSkgewogICAgICAgICAvLyBG
b3IgcGVyZm9ybWFuY2UsIHdlIGVudGVyIHRoZSBjb250ZXh0IG9ubHkgaWYgdGhlIGN1cnJlbnRs
eSBydW5uaW5nIGNvbnRleHQKICAgICAgICAgLy8gaXMgZGlmZmVyZW50IGZyb20gdGhlIGNvbnRl
eHQgdGhhdCB3ZSBhcmUgYWJvdXQgdG8gZW50ZXIuCi0gICAgICAgIGNvbnRleHQgPSBmcmFtZS0+
c2NyaXB0KCktPmN1cnJlbnRXb3JsZENvbnRleHQoKTsKKyAgICAgICAgY29udGV4dCA9IGZyYW1l
LT5zY3JpcHQoKS0+Y29udGV4dEZvckN1cnJlbnRXb3JsZCgpOwogICAgICAgICBpZiAoIWNvbnRl
eHQuSXNFbXB0eSgpKQogICAgICAgICAgICAgY29udGV4dC0+RW50ZXIoKTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Tm9k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Tm9k
ZS5jcHAKaW5kZXggY2U0MmY5MmVkOWY2OWY0NDkwZDYwYzY3MjFkZGE2OTA5ZDJhYzEzMC4uOWU3
YjQxOWYzNDkzZTk3NzMzNDE2NjNkYTY2OWNkNzUwMTkyNTU5OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5vZGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROb2RlLmNwcApAQCAt
MTIwLDcgKzEyMCw3IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0Tm9kZTo6d3JhcFNs
b3coUGFzc1JlZlB0cjxUZXN0Tm9kZT4gaW1wbCwgdjg6Oklzb2xhCiAgICAgaWYgKGZyYW1lICYm
ICFmcmFtZS0+c2NyaXB0KCktPm1hdGNoZXNDdXJyZW50Q29udGV4dCgpKSB7CiAgICAgICAgIC8v
IEZvciBwZXJmb3JtYW5jZSwgd2UgZW50ZXIgdGhlIGNvbnRleHQgb25seSBpZiB0aGUgY3VycmVu
dGx5IHJ1bm5pbmcgY29udGV4dAogICAgICAgICAvLyBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgY29u
dGV4dCB0aGF0IHdlIGFyZSBhYm91dCB0byBlbnRlci4KLSAgICAgICAgY29udGV4dCA9IGZyYW1l
LT5zY3JpcHQoKS0+Y3VycmVudFdvcmxkQ29udGV4dCgpOworICAgICAgICBjb250ZXh0ID0gZnJh
bWUtPnNjcmlwdCgpLT5jb250ZXh0Rm9yQ3VycmVudFdvcmxkKCk7CiAgICAgICAgIGlmICghY29u
dGV4dC5Jc0VtcHR5KCkpCiAgICAgICAgICAgICBjb250ZXh0LT5FbnRlcigpOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L05QVjhPYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvTlBWOE9iamVjdC5jcHAKaW5kZXggYTMyYjQ0ZWE1OTY5
MDQzNmM5NDUxNzM3MzVkM2U5NTkwOTRkNjBjZC4uYTVmNDdiODMzYzNkZmFhZDE3NmZmMWNmYzFj
OTdjZTFiODkyOTljNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvTlBW
OE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvTlBWOE9iamVjdC5j
cHAKQEAgLTY1LDcgKzY1LDcgQEAgc3RhdGljIHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gdG9WOENv
bnRleHQoTlBQIG5wcCwgTlBPYmplY3QqIG5wT2JqZWN0KQogICAgIERPTVdpbmRvdyogd2luZG93
ID0gb2JqZWN0LT5yb290T2JqZWN0OwogICAgIGlmICghd2luZG93IHx8ICF3aW5kb3ctPmlzQ3Vy
cmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQogICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpD
b250ZXh0PigpOwotICAgIHJldHVybiBTY3JpcHRDb250cm9sbGVyOjptYWluV29ybGRDb250ZXh0
KG9iamVjdC0+cm9vdE9iamVjdC0+ZnJhbWUoKSk7CisgICAgcmV0dXJuIFNjcmlwdENvbnRyb2xs
ZXI6OmNvbnRleHRGb3JNYWluV29ybGQob2JqZWN0LT5yb290T2JqZWN0LT5mcmFtZSgpKTsKIH0K
IAogc3RhdGljIFY4TlBPYmplY3RNYXAqIHN0YXRpY1Y4TlBPYmplY3RNYXAoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA2YTEzZGVh
YWMzOWY4ZTBhZWFiYjgxMTUwMmI5N2E2ZDZmMDA0NjExLi40Zjc5ZjM5MzJkOGEyNThlZDM5ODY2
MzA3YmJjYzQ4OGE3ZDRjN2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9T
Y3JpcHRDb250cm9sbGVyLmNwcApAQCAtMzA2LDcgKzMwNiw3IEBAIFNjcmlwdFZhbHVlIFNjcmlw
dENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUp
CiAgICAgbV9zb3VyY2VVUkwgPSAmc291cmNlVVJMOwogCiAgICAgdjg6OkhhbmRsZVNjb3BlIGhh
bmRsZVNjb3BlOwotICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IHY4Q29udGV4dCA9IFNjcmlw
dENvbnRyb2xsZXI6Om1haW5Xb3JsZENvbnRleHQobV9mcmFtZSk7CisgICAgdjg6OkhhbmRsZTx2
ODo6Q29udGV4dD4gdjhDb250ZXh0ID0gU2NyaXB0Q29udHJvbGxlcjo6Y29udGV4dEZvck1haW5X
b3JsZChtX2ZyYW1lKTsKICAgICBpZiAodjhDb250ZXh0LklzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuIFNjcmlwdFZhbHVlKCk7CiAKQEAgLTQxMSw3ICs0MTEsNyBAQCB2b2lkIFNjcmlwdENvbnRy
b2xsZXI6OmZpbmlzaGVkV2l0aEV2ZW50KEV2ZW50KiBldmVudCkKIHsKIH0KIAotdjg6OkxvY2Fs
PHY4OjpDb250ZXh0PiBTY3JpcHRDb250cm9sbGVyOjpjdXJyZW50V29ybGRDb250ZXh0KCkKK3Y4
OjpIYW5kbGU8djg6OkNvbnRleHQ+IFNjcmlwdENvbnRyb2xsZXI6OmNvbnRleHRGb3JDdXJyZW50
V29ybGRQcml2YXRlKCkKIHsKICAgICBpZiAoVjhJc29sYXRlZENvbnRleHQqIGlzb2xhdGVkQ29u
dGV4dCA9IFY4SXNvbGF0ZWRDb250ZXh0OjpnZXRFbnRlcmVkKCkpIHsKICAgICAgICAgUmVmUHRy
PFNoYXJlZFBlcnNpc3RlbnQ8djg6OkNvbnRleHQ+ID4gY29udGV4dCA9IGlzb2xhdGVkQ29udGV4
dC0+c2hhcmVkQ29udGV4dCgpOwpAQCAtNDE5LDM5ICs0MTksMzIgQEAgdjg6OkxvY2FsPHY4OjpD
b250ZXh0PiBTY3JpcHRDb250cm9sbGVyOjpjdXJyZW50V29ybGRDb250ZXh0KCkKICAgICAgICAg
ICAgIHJldHVybiB2ODo6TG9jYWw8djg6OkNvbnRleHQ+KCk7CiAgICAgICAgIHJldHVybiB2ODo6
TG9jYWw8djg6OkNvbnRleHQ+OjpOZXcoY29udGV4dC0+Z2V0KCkpOwogICAgIH0KLSAgICByZXR1
cm4gbWFpbldvcmxkQ29udGV4dCgpOworICAgIHdpbmRvd1NoZWxsKCktPmluaXRpYWxpemVJZk5l
ZWRlZCgpOworICAgIHJldHVybiB3aW5kb3dTaGVsbCgpLT5jb250ZXh0KCk7Cit9CisKK3Y4OjpM
b2NhbDx2ODo6Q29udGV4dD4gU2NyaXB0Q29udHJvbGxlcjo6Y29udGV4dEZvckN1cnJlbnRXb3Js
ZCgpCit7CisgICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6Q29udGV4dD46Ok5ldyhjb250ZXh0Rm9y
Q3VycmVudFdvcmxkUHJpdmF0ZSgpKTsKIH0KIAotdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBTY3Jp
cHRDb250cm9sbGVyOjptYWluV29ybGRDb250ZXh0KCkKK3Y4OjpMb2NhbDx2ODo6Q29udGV4dD4g
U2NyaXB0Q29udHJvbGxlcjo6Y29udGV4dEZvck1haW5Xb3JsZCgpCiB7CiAgICAgd2luZG93U2hl
bGwoKS0+aW5pdGlhbGl6ZUlmTmVlZGVkKCk7CiAgICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6Q29u
dGV4dD46Ok5ldyh3aW5kb3dTaGVsbCgpLT5jb250ZXh0KCkpOwogfQogCi12ODo6TG9jYWw8djg6
OkNvbnRleHQ+IFNjcmlwdENvbnRyb2xsZXI6Om1haW5Xb3JsZENvbnRleHQoRnJhbWUqIGZyYW1l
KQordjg6OkxvY2FsPHY4OjpDb250ZXh0PiBTY3JpcHRDb250cm9sbGVyOjpjb250ZXh0Rm9yTWFp
bldvcmxkKEZyYW1lKiBmcmFtZSkKIHsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4g
djg6OkxvY2FsPHY4OjpDb250ZXh0PigpOwogCi0gICAgcmV0dXJuIGZyYW1lLT5zY3JpcHQoKS0+
bWFpbldvcmxkQ29udGV4dCgpOworICAgIHJldHVybiBmcmFtZS0+c2NyaXB0KCktPmNvbnRleHRG
b3JNYWluV29ybGQoKTsKIH0KIAogYm9vbCBTY3JpcHRDb250cm9sbGVyOjptYXRjaGVzQ3VycmVu
dENvbnRleHQoKQogewotICAgIC8vIFRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8gJ3JldHVy
biB2ODo6Q29udGV4dDo6R2V0Q3VycmVudCgpID09IGNvbnRleHRGb3JDdXJyZW50V29ybGQoKScs
Ci0gICAgLy8gYnV0IGlzIHdyaXR0ZW4gd2l0aG91dCB1c2luZyBjb250ZXh0Rm9yQ3VycmVudFdv
cmxkKCkuCi0gICAgLy8gR2l2ZW4gdGhhdCB0aGlzIG1ldGhvZCBpcyB1c2VkIGJ5IGEgaG90IGNh
bGwgcGF0aCBvZiBET00gb2JqZWN0IGNvbnN0cnVjdG9yLAotICAgIC8vIHdlIHdhbnQgdG8gYXZv
aWQgdGhlIG92ZXJoZWFkIG9mIGNvbnRleHRGb3JDdXJyZW50V29ybGQoKSBjcmVhdGluZyBMb2Nh
bDxDb250ZXh0PiBldmVyeSB0aW1lLgotICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRl
eHQ7Ci0gICAgaWYgKFY4SXNvbGF0ZWRDb250ZXh0KiBpc29sYXRlZENvbnRleHQgPSBWOElzb2xh
dGVkQ29udGV4dDo6Z2V0RW50ZXJlZCgpKSB7Ci0gICAgICAgIGNvbnRleHQgPSBpc29sYXRlZENv
bnRleHQtPnNoYXJlZENvbnRleHQoKS0+Z2V0KCk7Ci0gICAgICAgIGlmIChtX2ZyYW1lICE9IHRv
RnJhbWVJZk5vdERldGFjaGVkKGNvbnRleHQpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0gZWxzZSB7Ci0gICAgICAgIHdpbmRvd1NoZWxsKCktPmluaXRpYWxpemVJZk5lZWRlZCgp
OwotICAgICAgICBjb250ZXh0ID0gd2luZG93U2hlbGwoKS0+Y29udGV4dCgpOwotICAgIH0KLSAg
ICByZXR1cm4gY29udGV4dCA9PSB2ODo6Q29udGV4dDo6R2V0Q3VycmVudCgpOworICAgIHJldHVy
biB2ODo6Q29udGV4dDo6R2V0Q3VycmVudCgpID09IGNvbnRleHRGb3JDdXJyZW50V29ybGRQcml2
YXRlKCk7CiB9CiAKIC8vIENyZWF0ZSBhIFY4IG9iamVjdCB3aXRoIGFuIGludGVyY2VwdG9yIG9m
IE5QT2JqZWN0UHJvcGVydHlHZXR0ZXIuCkBAIC00NTksNyArNDUyLDcgQEAgdm9pZCBTY3JpcHRD
b250cm9sbGVyOjpiaW5kVG9XaW5kb3dPYmplY3QoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcm
IGtleSwgTlBPYmoKIHsKICAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7CiAKLSAgICB2
ODo6SGFuZGxlPHY4OjpDb250ZXh0PiB2OENvbnRleHQgPSBTY3JpcHRDb250cm9sbGVyOjptYWlu
V29ybGRDb250ZXh0KGZyYW1lKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiB2OENvbnRl
eHQgPSBTY3JpcHRDb250cm9sbGVyOjpjb250ZXh0Rm9yTWFpbldvcmxkKGZyYW1lKTsKICAgICBp
ZiAodjhDb250ZXh0LklzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC01OTEsNyArNTg0
LDcgQEAgc3RhdGljIE5QT2JqZWN0KiBjcmVhdGVOb1NjcmlwdE9iamVjdCgpCiBzdGF0aWMgTlBP
YmplY3QqIGNyZWF0ZVNjcmlwdE9iamVjdChGcmFtZSogZnJhbWUpCiB7CiAgICAgdjg6OkhhbmRs
ZVNjb3BlIGhhbmRsZVNjb3BlOwotICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IHY4Q29udGV4
dCA9IFNjcmlwdENvbnRyb2xsZXI6Om1haW5Xb3JsZENvbnRleHQoZnJhbWUpOworICAgIHY4OjpI
YW5kbGU8djg6OkNvbnRleHQ+IHY4Q29udGV4dCA9IFNjcmlwdENvbnRyb2xsZXI6OmNvbnRleHRG
b3JNYWluV29ybGQoZnJhbWUpOwogICAgIGlmICh2OENvbnRleHQuSXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm4gY3JlYXRlTm9TY3JpcHRPYmplY3QoKTsKIApAQCAtNjMxLDcgKzYyNCw3IEBAIE5Q
T2JqZWN0KiBTY3JpcHRDb250cm9sbGVyOjpjcmVhdGVTY3JpcHRPYmplY3RGb3JQbHVnaW5FbGVt
ZW50KEhUTUxQbHVnSW5FbGVtZW50CiAgICAgICAgIHJldHVybiBjcmVhdGVOb1NjcmlwdE9iamVj
dCgpOwogCiAgICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwotICAgIHY4OjpIYW5kbGU8
djg6OkNvbnRleHQ+IHY4Q29udGV4dCA9IFNjcmlwdENvbnRyb2xsZXI6Om1haW5Xb3JsZENvbnRl
eHQobV9mcmFtZSk7CisgICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gdjhDb250ZXh0ID0gU2Ny
aXB0Q29udHJvbGxlcjo6Y29udGV4dEZvck1haW5Xb3JsZChtX2ZyYW1lKTsKICAgICBpZiAodjhD
b250ZXh0LklzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGNyZWF0ZU5vU2NyaXB0T2JqZWN0KCk7
CiAgICAgdjg6OkNvbnRleHQ6OlNjb3BlIHNjb3BlKHY4Q29udGV4dCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmgKaW5kZXggYWQ5YmY3MTE2YjJhMDgw
NGViNTVmOGY1YjRmZmM2NTBkZjNlODI0YS4uOGY4NDk3NDZmMDMwMjgxYTdlY2NmMGQzODM0ODA5
OWRmYmFjY2YzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0
Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRy
b2xsZXIuaApAQCAtMTY4LDkgKzE2OCw5IEBAIHB1YmxpYzoKIAogICAgIC8vIFJldHVybnMgVjgg
Q29udGV4dC4gSWYgbm9uZSBleGlzdHMsIGNyZWF0ZXMgYSBuZXcgY29udGV4dC4KICAgICAvLyBJ
dCBpcyBwb3RlbnRpYWxseSBzbG93IGFuZCBjb25zdW1lcyBtZW1vcnkuCi0gICAgc3RhdGljIHY4
OjpMb2NhbDx2ODo6Q29udGV4dD4gbWFpbldvcmxkQ29udGV4dChGcmFtZSopOwotICAgIHY4OjpM
b2NhbDx2ODo6Q29udGV4dD4gbWFpbldvcmxkQ29udGV4dCgpOwotICAgIHY4OjpMb2NhbDx2ODo6
Q29udGV4dD4gY3VycmVudFdvcmxkQ29udGV4dCgpOworICAgIHN0YXRpYyB2ODo6TG9jYWw8djg6
OkNvbnRleHQ+IGNvbnRleHRGb3JNYWluV29ybGQoRnJhbWUqKTsKKyAgICB2ODo6TG9jYWw8djg6
OkNvbnRleHQ+IGNvbnRleHRGb3JNYWluV29ybGQoKTsKKyAgICB2ODo6TG9jYWw8djg6OkNvbnRl
eHQ+IGNvbnRleHRGb3JDdXJyZW50V29ybGQoKTsKIAogICAgIGJvb2wgbWF0Y2hlc0N1cnJlbnRD
b250ZXh0KCk7CiAKQEAgLTIyMCw2ICsyMjAsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAg
dm9pZCByZXNldElzb2xhdGVkV29ybGRzKCk7CisgICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4g
Y29udGV4dEZvckN1cnJlbnRXb3JsZFByaXZhdGUoKTsKIAogICAgIEZyYW1lKiBtX2ZyYW1lOwog
ICAgIGNvbnN0IFN0cmluZyogbV9zb3VyY2VVUkw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9TY3JpcHRTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9TY3JpcHRTdGF0ZS5jcHAKaW5kZXggOGEwNTgwYmNkODNjNDUxZmZiNDgwMTdlYjViNzczZDUy
OGY4MzI1Zi4uZWYxOTZjZmFhNTkwYjk4Njk5YzY5YjJlYmZhNDdmZjQ0MmNkNmNmMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0U3RhdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFN0YXRlLmNwcApAQCAtMTIyLDcgKzEyMiw3
IEBAIHZvaWQgc2V0RXZhbEVuYWJsZWQoU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlLCBib29sIGVu
YWJsZWQpCiBTY3JpcHRTdGF0ZSogbWFpbldvcmxkU2NyaXB0U3RhdGUoRnJhbWUqIGZyYW1lKQog
ewogICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKLSAgICByZXR1cm4gU2NyaXB0U3Rh
dGU6OmZvckNvbnRleHQoZnJhbWUtPnNjcmlwdCgpLT5tYWluV29ybGRDb250ZXh0KCkpOworICAg
IHJldHVybiBTY3JpcHRTdGF0ZTo6Zm9yQ29udGV4dChmcmFtZS0+c2NyaXB0KCktPmNvbnRleHRG
b3JNYWluV29ybGQoKSk7CiB9CiAKIFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZUZyb21Ob2RlKERP
TVdyYXBwZXJXb3JsZCosIE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhET01XcmFwcGVyLmNwcAppbmRleCBmNTFiNjdiYmU3YzcyNjgxMDQwZjc0NjMzNTllZDhiYWU1
MWVmMjIxLi4zYTc3MzM2M2JhMzgxMTZjYTRmZjE3Y2EwZTI0NzVjYWVlZDNhZjk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKQEAgLTEyNiw3ICsxMjYs
NyBAQCB2b2lkIFY4RE9NV3JhcHBlcjo6c2V0TmFtZWRIaWRkZW5XaW5kb3dSZWZlcmVuY2UoRnJh
bWUqIGZyYW1lLCBjb25zdCBjaGFyKiBuYW1lLAogICAgIC8vIEdldCBET01XaW5kb3cKICAgICBp
ZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47IC8vIE9iamVjdCBtaWdodCBiZSBkZXRhY2hlZCBm
cm9tIHdpbmRvdwotICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQgPSBmcmFtZS0+
c2NyaXB0KCktPmN1cnJlbnRXb3JsZENvbnRleHQoKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpDb250
ZXh0PiBjb250ZXh0ID0gZnJhbWUtPnNjcmlwdCgpLT5jb250ZXh0Rm9yQ3VycmVudFdvcmxkKCk7
CiAgICAgaWYgKGNvbnRleHQuSXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SXNvbGF0ZWRDb250ZXh0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SXNvbGF0ZWRDb250ZXh0LmNwcAppbmRleCA5OGY4
ZWM5MTg5MzY1NDczYzU3OTBjNDE3Y2NmZDk3Njk4ODJkNjhiLi4zNGVhNmY1MjZlZjI4Njk3NWQ0
MDAzNDRlOTRkMTZiZDQxNDE5MzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOElzb2xhdGVkQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhJc29sYXRlZENvbnRleHQuY3BwCkBAIC02OSw4ICs2OSw4IEBAIFY4SXNvbGF0ZWRDb250
ZXh0OjpWOElzb2xhdGVkQ29udGV4dChGcmFtZSogZnJhbWUsIFBhc3NSZWZQdHI8RE9NV3JhcHBl
cldvcmxkPiB3CiAgICAgICBtX2ZyYW1lKGZyYW1lKQogewogICAgIHY4OjpIYW5kbGVTY29wZSBz
Y29wZTsKLSAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBtYWluV29ybGRDb250ZXh0ID0gZnJh
bWUtPnNjcmlwdCgpLT53aW5kb3dTaGVsbCgpLT5jb250ZXh0KCk7Ci0gICAgaWYgKG1haW5Xb3Js
ZENvbnRleHQuSXNFbXB0eSgpKQorICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHRG
b3JNYWluV29ybGQgPSBmcmFtZS0+c2NyaXB0KCktPndpbmRvd1NoZWxsKCktPmNvbnRleHQoKTsK
KyAgICBpZiAoY29udGV4dEZvck1haW5Xb3JsZC5Jc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsK
IAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYmUgY3JlYXRpbmcgYSBuZXcgVjhET01XaW5kb3dT
aGVsbCBoZXJlIGluc3RlYWQgb2YgcmlwaW5nIG91dCB0aGUgY29udGV4dC4KQEAgLTgxLDcgKzgx
LDcgQEAgVjhJc29sYXRlZENvbnRleHQ6OlY4SXNvbGF0ZWRDb250ZXh0KEZyYW1lKiBmcmFtZSwg
UGFzc1JlZlB0cjxET01XcmFwcGVyV29ybGQ+IHcKICAgICAvLyBSdW4gY29kZSBpbiB0aGUgbmV3
IGNvbnRleHQuCiAgICAgdjg6OkNvbnRleHQ6OlNjb3BlIGNvbnRleHRTY29wZShtX2NvbnRleHQt
PmdldCgpKTsKIAotICAgIHNldEluamVjdGVkU2NyaXB0Q29udGV4dERlYnVnSWQobV9jb250ZXh0
LT5nZXQoKSwgU2NyaXB0Q29udHJvbGxlcjo6Y29udGV4dERlYnVnSWQobWFpbldvcmxkQ29udGV4
dCkpOworICAgIHNldEluamVjdGVkU2NyaXB0Q29udGV4dERlYnVnSWQobV9jb250ZXh0LT5nZXQo
KSwgU2NyaXB0Q29udHJvbGxlcjo6Y29udGV4dERlYnVnSWQoY29udGV4dEZvck1haW5Xb3JsZCkp
OwogCiAgICAgZ2V0R2xvYmFsT2JqZWN0KG1fY29udGV4dC0+Z2V0KCkpLT5TZXRQb2ludGVySW5J
bnRlcm5hbEZpZWxkKFY4RE9NV2luZG93OjplbnRlcmVkSXNvbGF0ZWRXb3JsZEluZGV4LCB0aGlz
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ybGRDb250ZXh0
SGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmxkQ29udGV4dEhhbmRs
ZS5jcHAKaW5kZXggNDg4ZjNiNTI3YjY4MzE0MjZiNGY5ZDQwZDQ4NzExNzA5MTVlYTE0OC4uYTc5
NjExMWJmZWY4YzU3Y2MwZjNhOTBmZDQwMTlmMjhiNTMyOTJlYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvV29ybGRDb250ZXh0SGFuZGxlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JsZENvbnRleHRIYW5kbGUuY3BwCkBAIC00OSw3ICs0OSw3
IEBAIFdvcmxkQ29udGV4dEhhbmRsZTo6V29ybGRDb250ZXh0SGFuZGxlKFdvcmxkVG9Vc2Ugd29y
bGRUb1VzZSkKIHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gV29ybGRDb250ZXh0SGFuZGxlOjphZGp1
c3RlZENvbnRleHQoU2NyaXB0Q29udHJvbGxlciogc2NyaXB0KSBjb25zdAogewogICAgIGlmICht
X3dvcmxkVG9Vc2UgPT0gVXNlTWFpbldvcmxkIHx8ICFtX2NvbnRleHQgfHwgbV9jb250ZXh0LT5n
ZXQoKS5Jc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBzY3JpcHQtPm1haW5Xb3JsZENvbnRleHQo
KTsKKyAgICAgICAgcmV0dXJuIHNjcmlwdC0+Y29udGV4dEZvck1haW5Xb3JsZCgpOwogCiAgICAg
cmV0dXJuIHY4OjpMb2NhbDx2ODo6Q29udGV4dD46Ok5ldyhtX2NvbnRleHQtPmdldCgpKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRv
d0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5k
b3dDdXN0b20uY3BwCmluZGV4IDcyODBkOTFjNTc0OWFlYWFmNzM0OTllZTczNWJjMTIyNGMxZmQy
ODIuLmNhMDY2YjJlOWFmM2RmZTZhYmNjMjA1MGY4YmM5NmM0MGJiMDUwN2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9t
LmNwcApAQCAtMTIxLDcgKzEyMSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBXaW5kb3dTZXRU
aW1lb3V0SW1wbChjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzLCBib29sIHNpbmdsCiAKICAgICAg
ICAgLy8gcGFyYW1zIGlzIHBhc3NlZCB0byBhY3Rpb24sIGFuZCByZWxlYXNlZCBpbiBhY3Rpb24n
cyBkZXN0cnVjdG9yCiAgICAgICAgIEFTU0VSVChpbXAtPmZyYW1lKCkpOwotICAgICAgICBPd25Q
dHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24gPSBhZG9wdFB0cihuZXcgU2NoZWR1bGVkQWN0aW9u
KGltcC0+ZnJhbWUoKS0+c2NyaXB0KCktPmN1cnJlbnRXb3JsZENvbnRleHQoKSwgdjg6OkhhbmRs
ZTx2ODo6RnVuY3Rpb24+OjpDYXN0KGZ1bmN0aW9uKSwgcGFyYW1Db3VudCwgcGFyYW1zKSk7Cisg
ICAgICAgIE93blB0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlvbiA9IGFkb3B0UHRyKG5ldyBTY2hl
ZHVsZWRBY3Rpb24oaW1wLT5mcmFtZSgpLT5zY3JpcHQoKS0+Y29udGV4dEZvckN1cnJlbnRXb3Js
ZCgpLCB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj46OkNhc3QoZnVuY3Rpb24pLCBwYXJhbUNvdW50
LCBwYXJhbXMpKTsKIAogICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHVzZSBPd25BcnJheVB0
ciBmb3IgcGFyYW1zLgogICAgICAgICBkZWxldGVbXSBwYXJhbXM7CkBAIC0xMzIsNyArMTMyLDcg
QEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFdpbmRvd1NldFRpbWVvdXRJbXBsKGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyZ3MsIGJvb2wgc2luZ2wKICAgICAgICAgaWYgKGltcC0+ZG9jdW1lbnQoKSAm
JiAhaW1wLT5kb2N1bWVudCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dFdmFsKGNh
bGxTdGFjay5yZWxlYXNlKCkpKQogICAgICAgICAgICAgcmV0dXJuIHY4SW50ZWdlcigwLCBhcmdz
LkdldElzb2xhdGUoKSk7CiAgICAgICAgIEFTU0VSVChpbXAtPmZyYW1lKCkpOwotICAgICAgICBp
ZCA9IERPTVRpbWVyOjppbnN0YWxsKHNjcmlwdENvbnRleHQsIGFkb3B0UHRyKG5ldyBTY2hlZHVs
ZWRBY3Rpb24oaW1wLT5mcmFtZSgpLT5zY3JpcHQoKS0+Y3VycmVudFdvcmxkQ29udGV4dCgpLCBm
dW5jdGlvblN0cmluZykpLCB0aW1lb3V0LCBzaW5nbGVTaG90KTsKKyAgICAgICAgaWQgPSBET01U
aW1lcjo6aW5zdGFsbChzY3JpcHRDb250ZXh0LCBhZG9wdFB0cihuZXcgU2NoZWR1bGVkQWN0aW9u
KGltcC0+ZnJhbWUoKS0+c2NyaXB0KCktPmNvbnRleHRGb3JDdXJyZW50V29ybGQoKSwgZnVuY3Rp
b25TdHJpbmcpKSwgdGltZW91dCwgc2luZ2xlU2hvdCk7CiAgICAgfQogCiAgICAgLy8gVHJ5IHRv
IGRvIHRoZSBpZGxlIG5vdGlmaWNhdGlvbiBiZWZvcmUgdGhlIHRpbWVvdXQgZXhwaXJlcyB0byBn
ZXQgYmV0dGVyCkBAIC0xNTYsNyArMTU2LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RE9N
V2luZG93OjpldmVudEFjY2Vzc29yR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW0KICAg
ICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIAogICAgIEFTU0VSVChmcmFtZSk7Ci0gICAg
djg6OkxvY2FsPHY4OjpDb250ZXh0PiBjb250ZXh0ID0gZnJhbWUtPnNjcmlwdCgpLT5jdXJyZW50
V29ybGRDb250ZXh0KCk7CisgICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBjb250ZXh0ID0gZnJh
bWUtPnNjcmlwdCgpLT5jb250ZXh0Rm9yQ3VycmVudFdvcmxkKCk7CiAgICAgaWYgKGNvbnRleHQu
SXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogCkBAIC0xNzgsNyAr
MTc4LDcgQEAgdm9pZCBWOERPTVdpbmRvdzo6ZXZlbnRBY2Nlc3NvclNldHRlcih2ODo6TG9jYWw8
djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjoKICAgICAgICAgcmV0dXJuOwogCiAgICAg
QVNTRVJUKGZyYW1lKTsKLSAgICB2ODo6TG9jYWw8djg6OkNvbnRleHQ+IGNvbnRleHQgPSBmcmFt
ZS0+c2NyaXB0KCktPmN1cnJlbnRXb3JsZENvbnRleHQoKTsKKyAgICB2ODo6TG9jYWw8djg6OkNv
bnRleHQ+IGNvbnRleHQgPSBmcmFtZS0+c2NyaXB0KCktPmNvbnRleHRGb3JDdXJyZW50V29ybGQo
KTsKICAgICBpZiAoY29udGV4dC5Jc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtNDA1
LDcgKzQwNSw3IEBAIHByaXZhdGU6CiAKIGlubGluZSB2b2lkIERpYWxvZ0hhbmRsZXI6OmRpYWxv
Z0NyZWF0ZWQoRE9NV2luZG93KiBkaWFsb2dGcmFtZSkKIHsKLSAgICBtX2RpYWxvZ0NvbnRleHQg
PSBkaWFsb2dGcmFtZS0+ZnJhbWUoKSA/IGRpYWxvZ0ZyYW1lLT5mcmFtZSgpLT5zY3JpcHQoKS0+
Y3VycmVudFdvcmxkQ29udGV4dCgpIDogdjg6OkxvY2FsPHY4OjpDb250ZXh0PigpOworICAgIG1f
ZGlhbG9nQ29udGV4dCA9IGRpYWxvZ0ZyYW1lLT5mcmFtZSgpID8gZGlhbG9nRnJhbWUtPmZyYW1l
KCktPnNjcmlwdCgpLT5jb250ZXh0Rm9yQ3VycmVudFdvcmxkKCkgOiB2ODo6TG9jYWw8djg6OkNv
bnRleHQ+KCk7CiAgICAgaWYgKG1fZGlhbG9nQ29udGV4dC5Jc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybjsKICAgICBpZiAobV9kaWFsb2dBcmd1bWVudHMuSXNFbXB0eSgpKQpAQCAtNjI0LDcgKzYy
NCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KERPTVdpbmRvdyogd2luZG93LCB2ODo6
SXNvbGF0ZSogaXNvbGF0ZSkKICAgICB9CiAKICAgICAvLyBPdGhlcndpc2UsIHJldHVybiB0aGUg
Z2xvYmFsIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhpcyBmcmFtZS4KLSAgICB2ODo6SGFuZGxl
PHY4OjpDb250ZXh0PiBjb250ZXh0ID0gZnJhbWUtPnNjcmlwdCgpLT5jdXJyZW50V29ybGRDb250
ZXh0KCk7CisgICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gY29udGV4dCA9IGZyYW1lLT5zY3Jp
cHQoKS0+Y29udGV4dEZvckN1cnJlbnRXb3JsZCgpOwogICAgIGlmIChjb250ZXh0LklzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxEb2N1bWVudEN1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRG9jdW1lbnRDdXN0b20uY3BwCmlu
ZGV4IDNmMWNiYzFlZTc2OWU1MWQwMzFmMjMzZWI5ODBhZTY3NmNjNTRjZGQuLjFlYmVjNjg5NGRk
YWY1ZWViZTI1MWE0ODNmYTRiOTA4YmFhOTliNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxEb2N1bWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTERvY3VtZW50Q3VzdG9tLmNwcApAQCAt
MTQxLDcgKzE0MSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEhUTUxEb2N1bWVudDo6b3Bl
bkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFyZ3MuTGVuZ3Ro
KCkgPiAyKSB7CiAgICAgICAgIGlmIChSZWZQdHI8RnJhbWU+IGZyYW1lID0gaHRtbERvY3VtZW50
LT5mcmFtZSgpKSB7CiAgICAgICAgICAgICAvLyBGZXRjaCB0aGUgZ2xvYmFsIG9iamVjdCBmb3Ig
dGhlIGZyYW1lLgotICAgICAgICAgICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBjb250ZXh0ID0g
ZnJhbWUtPnNjcmlwdCgpLT5jdXJyZW50V29ybGRDb250ZXh0KCk7CisgICAgICAgICAgICB2ODo6
TG9jYWw8djg6OkNvbnRleHQ+IGNvbnRleHQgPSBmcmFtZS0+c2NyaXB0KCktPmNvbnRleHRGb3JD
dXJyZW50V29ybGQoKTsKICAgICAgICAgICAgIC8vIEJhaWwgb3V0IGlmIHdlIGNhbm5vdCBnZXQg
dGhlIGNvbnRleHQuCiAgICAgICAgICAgICBpZiAoY29udGV4dC5Jc0VtcHR5KCkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JGcm9udGVuZENsaWVudEltcGwuY3BwCmluZGV4
IDRmMjU3Yzc3YzE3Yjc2M2NkZWZlNjg3ZDBjOTIwYWE3M2M0MDQ2MWEuLjQ0N2EwOGZhNDg5MDhi
YmExZTQzYTY1YTU1ZGY5Y2RhOGVkMjBhOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBsLmNwcApAQCAtNjMs
NyArNjMsNyBAQCBJbnNwZWN0b3JGcm9udGVuZENsaWVudEltcGw6On5JbnNwZWN0b3JGcm9udGVu
ZENsaWVudEltcGwoKQogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudEltcGw6OndpbmRvd09i
amVjdENsZWFyZWQoKQogewogICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKLSAgICB2
ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBmcmFtZUNvbnRleHQgPSBtX2Zyb250ZW5kUGFnZS0+bWFp
bkZyYW1lKCkgPyBtX2Zyb250ZW5kUGFnZS0+bWFpbkZyYW1lKCktPnNjcmlwdCgpLT5jdXJyZW50
V29ybGRDb250ZXh0KCkgOiB2ODo6TG9jYWw8djg6OkNvbnRleHQ+KCk7CisgICAgdjg6OkhhbmRs
ZTx2ODo6Q29udGV4dD4gZnJhbWVDb250ZXh0ID0gbV9mcm9udGVuZFBhZ2UtPm1haW5GcmFtZSgp
ID8gbV9mcm9udGVuZFBhZ2UtPm1haW5GcmFtZSgpLT5zY3JpcHQoKS0+Y29udGV4dEZvckN1cnJl
bnRXb3JsZCgpIDogdjg6OkxvY2FsPHY4OjpDb250ZXh0PigpOwogICAgIHY4OjpDb250ZXh0OjpT
Y29wZSBjb250ZXh0U2NvcGUoZnJhbWVDb250ZXh0KTsKIAogICAgIEFTU0VSVCghbV9mcm9udGVu
ZEhvc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9v
bHNGcm9udGVuZEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9v
bHNGcm9udGVuZEltcGwuY3BwCmluZGV4IDgwMDU2OGE2MWI5Zjg2OGFjYTg3M2M1MWZkZjU2Mzhm
MDYzNDI0NDMuLmQyZTczMmJlNjA2NjJhOTZhMDdiZjJjZTllZWUxMDYwNTZiMDczNGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzRnJvbnRlbmRJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0Zyb250ZW5k
SW1wbC5jcHAKQEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lkIFdlYkRldlRvb2xzRnJvbnRlbmRJbXBs
OjpkaXNwYXRjaE9uSW5zcGVjdG9yRnJvbnRlbmQoY29uc3QgV2ViU3RyaW5nJiBtZXNzYQogewog
ICAgIFdlYkZyYW1lSW1wbCogZnJhbWUgPSBtX3dlYlZpZXdJbXBsLT5tYWluRnJhbWVJbXBsKCk7
CiAgICAgdjg6OkhhbmRsZVNjb3BlIHNjb3BlOwotICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+
IGZyYW1lQ29udGV4dCA9IGZyYW1lLT5mcmFtZSgpID8gZnJhbWUtPmZyYW1lKCktPnNjcmlwdCgp
LT5jdXJyZW50V29ybGRDb250ZXh0KCkgOiB2ODo6TG9jYWw8djg6OkNvbnRleHQ+KCk7CisgICAg
djg6OkhhbmRsZTx2ODo6Q29udGV4dD4gZnJhbWVDb250ZXh0ID0gZnJhbWUtPmZyYW1lKCkgPyBm
cmFtZS0+ZnJhbWUoKS0+c2NyaXB0KCktPmNvbnRleHRGb3JDdXJyZW50V29ybGQoKSA6IHY4OjpM
b2NhbDx2ODo6Q29udGV4dD4oKTsKICAgICB2ODo6Q29udGV4dDo6U2NvcGUgY29udGV4dFNjb3Bl
KGZyYW1lQ29udGV4dCk7CiAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGluc3BlY3RvckJhY2tl
bmRWYWx1ZSA9IGZyYW1lQ29udGV4dC0+R2xvYmFsKCktPkdldCh2ODo6U3RyaW5nOjpOZXcoIklu
c3BlY3RvckJhY2tlbmQiKSk7CiAgICAgaWYgKCFpbnNwZWN0b3JCYWNrZW5kVmFsdWUtPklzT2Jq
ZWN0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUlt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAppbmRl
eCBlYjNhZWY3NzVjYWU1N2Q0NjRiYTQzM2FmYzBmNDc3MzRlNmM5ZmUzLi41MGVhODAzODU4M2Vk
MGNkMDI1ZTNiMTg0NmY0ODE5NDJjMDg4OTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkZyYW1lSW1wbC5jcHAKQEAgLTk1NiwxMyArOTU2LDExIEBAIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBXZWJGcmFtZUltcGw6OmNhbGxGdW5jdGlvbkV2ZW5JZlNjcmlwdERpc2FibGVkKHY4
OjpIYW5kbGU8CiAgICAgcmV0dXJuIG1fZnJhbWUtPnNjcmlwdCgpLT5jYWxsRnVuY3Rpb25FdmVu
SWZTY3JpcHREaXNhYmxlZChmdW5jdGlvbiwgcmVjZWl2ZXIsIGFyZ2MsIGFyZ3YpLnY4VmFsdWUo
KTsKIH0KIAotLy8gUmV0dXJucyB0aGUgVjggY29udGV4dCBmb3IgdGhpcyBmcmFtZSwgb3IgYW4g
ZW1wdHkgaGFuZGxlIGlmIHRoZXJlIGlzIG5vbmUuCiB2ODo6TG9jYWw8djg6OkNvbnRleHQ+IFdl
YkZyYW1lSW1wbDo6bWFpbldvcmxkU2NyaXB0Q29udGV4dCgpIGNvbnN0CiB7CiAgICAgaWYgKCFt
X2ZyYW1lKQogICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpDb250ZXh0PigpOwotCi0gICAg
cmV0dXJuIFNjcmlwdENvbnRyb2xsZXI6Om1haW5Xb3JsZENvbnRleHQobV9mcmFtZSk7CisgICAg
cmV0dXJuIG1fZnJhbWUtPnNjcmlwdCgpLT5jb250ZXh0Rm9yTWFpbldvcmxkKCk7CiB9CiAKIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBXZWJGcmFtZUltcGw6OmNyZWF0ZUZpbGVTeXN0ZW0oV2ViRmls
ZVN5c3RlbTo6VHlwZSB0eXBlLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160869</attachid>
            <date>2012-08-27 17:47:33 -0700</date>
            <delta_ts>2012-08-29 09:46:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95156-20120827174725.patch</filename>
            <type>text/plain</type>
            <size>10089</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2Nzc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTZlZmRkYTAwNDRkMzUz
NjIzMDIxYjc0NDRlYmMzODVhNDVmZDQxNS4uNjllODc4MTllYWNjMjg2N2NiNjA4MmQyMzc0ZThk
MzQzNWRhNDQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMzIEBACiAyMDEyLTA4LTI3ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgW1Y4XSBTY3JpcHRDb250cm9s
bGVyOjptYXRjaGVzQ3VycmVudENvbnRleHQgZHVwbGljYXRlcyBjb2RlIGZyb20gU2NyaXB0Q29u
dHJvbGxlcjo6Y3VycmVudFdvcmxkQ29udGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUxNTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBtYXRjaGVzQ3VycmVudENvbnRleHQgZHVwbGljYXRlZCBjb2Rl
IGZyb20gY3VycmVudFdvcmxkQ29udGV4dCBpbiBvcmRlcgorICAgICAgICB0byBhdm9pZCBjcmVh
dGluZyBhIG5ldyB2ODo6TG9jYWwgaGFuZGxlIGluIHRoZSAoY29tbW9uKSBjYXNlIHRoYXQKKyAg
ICAgICAgd2UncmUgYWxyZWFkeSBpbiB0aGUgcmlnaHQgY29udGV4dC4gVGhpcyBwYXRjaCBqdXN0
IGV4cG9zZXMgYW4gYWNjZXNzb3IKKyAgICAgICAgZm9yIHRoZSB1bmRlcmx5aW5nIGhhbmRsZSBz
byB0aGF0IHRoZSBiaW5kaW5ncyBjb2RlIGNhbiBkbyB0aGlzIHdvcmsKKyAgICAgICAgaXRzZWxm
LgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAg
ICAgIChHZW5lcmF0ZVRvVjhDb252ZXJ0ZXJzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4
VGVzdEFjdGl2ZURPTU9iamVjdDo6d3JhcFNsb3cpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3ROb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdE5vZGU6
OndyYXBTbG93KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OnVuZGVybHlpbmdIYW5kbGVUb0N1
cnJlbnRXb3JsZENvbnRleHQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRDb250cm9sbGVyOjpjdXJyZW50V29ybGRDb250ZXh0KToKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgIChTY3JpcHRDb250cm9sbGVyKToK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmg6CisgICAgICAgIChXZWJD
b3JlOjpWOERPTVdpbmRvd1NoZWxsOjpjb250ZXh0KToKKworMjAxMi0wOC0yNyAgQWRhbSBCYXJ0
aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCiAgICAgICAgIFtWOF0gVjhET01XaW5kb3dTaGVsbDo6
aW5zdGFsbERPTVdpbmRvdyBpcyBzdWJ0bGUgYW5kIHNob3VsZCBleHBsYWluIGl0c2VsZiBtb3Jl
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTE1MQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4
LnBtCmluZGV4IDJkNzk1N2NmYjYyYTBjMTdjZTliYWQ1YzIwODdkZWJlNDc1M2MyMGIuLmY0YzFl
NjhiOTdlZDQwOWY0MzJmMDNhODljMmFiZDJjOGI1ZjdhOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC0zMzk5LDEyICsz
Mzk5LDE1IEBAIEVORAogCiAgICAgLy8gRW50ZXIgdGhlIG5vZGUncyBjb250ZXh0IGFuZCBjcmVh
dGUgdGhlIHdyYXBwZXIgaW4gdGhhdCBjb250ZXh0LgogICAgIHY4OjpIYW5kbGU8djg6OkNvbnRl
eHQ+IGNvbnRleHQ7Ci0gICAgaWYgKGZyYW1lICYmICFmcmFtZS0+c2NyaXB0KCktPm1hdGNoZXND
dXJyZW50Q29udGV4dCgpKSB7Ci0gICAgICAgIC8vIEZvciBwZXJmb3JtYW5jZSwgd2UgZW50ZXIg
dGhlIGNvbnRleHQgb25seSBpZiB0aGUgY3VycmVudGx5IHJ1bm5pbmcgY29udGV4dAotICAgICAg
ICAvLyBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgY29udGV4dCB0aGF0IHdlIGFyZSBhYm91dCB0byBl
bnRlci4KLSAgICAgICAgY29udGV4dCA9IGZyYW1lLT5zY3JpcHQoKS0+Y3VycmVudFdvcmxkQ29u
dGV4dCgpOwotICAgICAgICBpZiAoIWNvbnRleHQuSXNFbXB0eSgpKQotICAgICAgICAgICAgY29u
dGV4dC0+RW50ZXIoKTsKKyAgICBpZiAoZnJhbWUpIHsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6
Q29udGV4dD4gdW5kZXJseWluZ0hhbmRsZSA9IGZyYW1lLT5zY3JpcHQoKS0+dW5kZXJseWluZ0hh
bmRsZVRvQ3VycmVudFdvcmxkQ29udGV4dCgpOworICAgICAgICBpZiAodjg6OkNvbnRleHQ6Okdl
dEN1cnJlbnQoKSAhPSB1bmRlcmx5aW5nSGFuZGxlKSB7CisgICAgICAgICAgICAvLyBGb3IgcGVy
Zm9ybWFuY2UsIHdlIGVudGVyIHRoZSBjb250ZXh0IG9ubHkgaWYgdGhlIGN1cnJlbnRseSBydW5u
aW5nIGNvbnRleHQKKyAgICAgICAgICAgIC8vIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBjb250ZXh0
IHRoYXQgd2UgYXJlIGFib3V0IHRvIGVudGVyLgorICAgICAgICAgICAgY29udGV4dCA9IHY4OjpM
b2NhbDx2ODo6Q29udGV4dD46Ok5ldyh1bmRlcmx5aW5nSGFuZGxlKTsKKyAgICAgICAgICAgIGlm
ICghY29udGV4dC5Jc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgY29udGV4dC0+RW50ZXIoKTsK
KyAgICAgICAgfQogICAgIH0KIEVORAogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVj
dC5jcHAKaW5kZXggYzJjOTk0MDQ1OWEzMWRlYTYyNDlmNzFlZWZhZmY2YzJjMTA2MDJhZS4uNWRm
MGU3MjRhYmM3OGY3MjlmOTM4ZmNlMzg1NzJiYjU3NzA3MzFjYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFj
dGl2ZURPTU9iamVjdC5jcHAKQEAgLTE4NywxMiArMTg3LDE1IEBAIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gVjhUZXN0QWN0aXZlRE9NT2JqZWN0Ojp3cmFwU2xvdyhQYXNzUmVmUHRyPFRlc3RBY3Rp
dmVET01PCiAKICAgICAvLyBFbnRlciB0aGUgbm9kZSdzIGNvbnRleHQgYW5kIGNyZWF0ZSB0aGUg
d3JhcHBlciBpbiB0aGF0IGNvbnRleHQuCiAgICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gY29u
dGV4dDsKLSAgICBpZiAoZnJhbWUgJiYgIWZyYW1lLT5zY3JpcHQoKS0+bWF0Y2hlc0N1cnJlbnRD
b250ZXh0KCkpIHsKLSAgICAgICAgLy8gRm9yIHBlcmZvcm1hbmNlLCB3ZSBlbnRlciB0aGUgY29u
dGV4dCBvbmx5IGlmIHRoZSBjdXJyZW50bHkgcnVubmluZyBjb250ZXh0Ci0gICAgICAgIC8vIGlz
IGRpZmZlcmVudCBmcm9tIHRoZSBjb250ZXh0IHRoYXQgd2UgYXJlIGFib3V0IHRvIGVudGVyLgot
ICAgICAgICBjb250ZXh0ID0gZnJhbWUtPnNjcmlwdCgpLT5jdXJyZW50V29ybGRDb250ZXh0KCk7
Ci0gICAgICAgIGlmICghY29udGV4dC5Jc0VtcHR5KCkpCi0gICAgICAgICAgICBjb250ZXh0LT5F
bnRlcigpOworICAgIGlmIChmcmFtZSkgeworICAgICAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0
PiB1bmRlcmx5aW5nSGFuZGxlID0gZnJhbWUtPnNjcmlwdCgpLT51bmRlcmx5aW5nSGFuZGxlVG9D
dXJyZW50V29ybGRDb250ZXh0KCk7CisgICAgICAgIGlmICh2ODo6Q29udGV4dDo6R2V0Q3VycmVu
dCgpICE9IHVuZGVybHlpbmdIYW5kbGUpIHsKKyAgICAgICAgICAgIC8vIEZvciBwZXJmb3JtYW5j
ZSwgd2UgZW50ZXIgdGhlIGNvbnRleHQgb25seSBpZiB0aGUgY3VycmVudGx5IHJ1bm5pbmcgY29u
dGV4dAorICAgICAgICAgICAgLy8gaXMgZGlmZmVyZW50IGZyb20gdGhlIGNvbnRleHQgdGhhdCB3
ZSBhcmUgYWJvdXQgdG8gZW50ZXIuCisgICAgICAgICAgICBjb250ZXh0ID0gdjg6OkxvY2FsPHY4
OjpDb250ZXh0Pjo6TmV3KHVuZGVybHlpbmdIYW5kbGUpOworICAgICAgICAgICAgaWYgKCFjb250
ZXh0LklzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5FbnRlcigpOworICAgICAg
ICB9CiAgICAgfQogICAgIHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmpl
Y3QoZnJhbWUsICZpbmZvLCBpbXBsLmdldCgpKTsKICAgICAvLyBFeGl0IHRoZSBub2RlJ3MgY29u
dGV4dCBpZiBpdCB3YXMgZW50ZXJlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROb2RlLmNwcAppbmRleCBjZTQyZjkyZWQ5ZjY5ZjQ0
OTBkNjBjNjcyMWRkYTY5MDlkMmFjMTMwLi4wMmZhY2U5ZTBhYWFhM2U5MmIyNjQ4YWE5N2M0YTg5
N2MxMTM4NjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE5vZGUuY3BwCkBAIC0xMTcsMTIgKzExNywxNSBAQCB2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+IFY4VGVzdE5vZGU6OndyYXBTbG93KFBhc3NSZWZQdHI8VGVzdE5vZGU+IGlt
cGwsIHY4OjpJc29sYQogCiAgICAgLy8gRW50ZXIgdGhlIG5vZGUncyBjb250ZXh0IGFuZCBjcmVh
dGUgdGhlIHdyYXBwZXIgaW4gdGhhdCBjb250ZXh0LgogICAgIHY4OjpIYW5kbGU8djg6OkNvbnRl
eHQ+IGNvbnRleHQ7Ci0gICAgaWYgKGZyYW1lICYmICFmcmFtZS0+c2NyaXB0KCktPm1hdGNoZXND
dXJyZW50Q29udGV4dCgpKSB7Ci0gICAgICAgIC8vIEZvciBwZXJmb3JtYW5jZSwgd2UgZW50ZXIg
dGhlIGNvbnRleHQgb25seSBpZiB0aGUgY3VycmVudGx5IHJ1bm5pbmcgY29udGV4dAotICAgICAg
ICAvLyBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgY29udGV4dCB0aGF0IHdlIGFyZSBhYm91dCB0byBl
bnRlci4KLSAgICAgICAgY29udGV4dCA9IGZyYW1lLT5zY3JpcHQoKS0+Y3VycmVudFdvcmxkQ29u
dGV4dCgpOwotICAgICAgICBpZiAoIWNvbnRleHQuSXNFbXB0eSgpKQotICAgICAgICAgICAgY29u
dGV4dC0+RW50ZXIoKTsKKyAgICBpZiAoZnJhbWUpIHsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6
Q29udGV4dD4gdW5kZXJseWluZ0hhbmRsZSA9IGZyYW1lLT5zY3JpcHQoKS0+dW5kZXJseWluZ0hh
bmRsZVRvQ3VycmVudFdvcmxkQ29udGV4dCgpOworICAgICAgICBpZiAodjg6OkNvbnRleHQ6Okdl
dEN1cnJlbnQoKSAhPSB1bmRlcmx5aW5nSGFuZGxlKSB7CisgICAgICAgICAgICAvLyBGb3IgcGVy
Zm9ybWFuY2UsIHdlIGVudGVyIHRoZSBjb250ZXh0IG9ubHkgaWYgdGhlIGN1cnJlbnRseSBydW5u
aW5nIGNvbnRleHQKKyAgICAgICAgICAgIC8vIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBjb250ZXh0
IHRoYXQgd2UgYXJlIGFib3V0IHRvIGVudGVyLgorICAgICAgICAgICAgY29udGV4dCA9IHY4OjpM
b2NhbDx2ODo6Q29udGV4dD46Ok5ldyh1bmRlcmx5aW5nSGFuZGxlKTsKKyAgICAgICAgICAgIGlm
ICghY29udGV4dC5Jc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgY29udGV4dC0+RW50ZXIoKTsK
KyAgICAgICAgfQogICAgIH0KICAgICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0
ZVY4T2JqZWN0KGZyYW1lLCAmaW5mbywgaW1wbC5nZXQoKSk7CiAgICAgLy8gRXhpdCB0aGUgbm9k
ZSdzIGNvbnRleHQgaWYgaXQgd2FzIGVudGVyZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDZhMTNkZWFhYzM5ZjhlMGFlYWJiODEx
NTAyYjk3YTZkNmYwMDQ2MTEuLjE2MWM4ZDlhNTM0MjYwYTRiODY3MjNhZWUxNDFlYmRhZDc2MjQ3
ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIu
Y3BwCkBAIC00MTEsMTUgKzQxMSwyMSBAQCB2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmZpbmlzaGVk
V2l0aEV2ZW50KEV2ZW50KiBldmVudCkKIHsKIH0KIAotdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBT
Y3JpcHRDb250cm9sbGVyOjpjdXJyZW50V29ybGRDb250ZXh0KCkKK3Y4OjpQZXJzaXN0ZW50PHY4
OjpDb250ZXh0PiBTY3JpcHRDb250cm9sbGVyOjp1bmRlcmx5aW5nSGFuZGxlVG9DdXJyZW50V29y
bGRDb250ZXh0KCkKIHsKICAgICBpZiAoVjhJc29sYXRlZENvbnRleHQqIGlzb2xhdGVkQ29udGV4
dCA9IFY4SXNvbGF0ZWRDb250ZXh0OjpnZXRFbnRlcmVkKCkpIHsKICAgICAgICAgUmVmUHRyPFNo
YXJlZFBlcnNpc3RlbnQ8djg6OkNvbnRleHQ+ID4gY29udGV4dCA9IGlzb2xhdGVkQ29udGV4dC0+
c2hhcmVkQ29udGV4dCgpOwogICAgICAgICBpZiAobV9mcmFtZSAhPSB0b0ZyYW1lSWZOb3REZXRh
Y2hlZChjb250ZXh0LT5nZXQoKSkpCi0gICAgICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpD
b250ZXh0PigpOwotICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpDb250ZXh0Pjo6TmV3KGNv
bnRleHQtPmdldCgpKTsKKyAgICAgICAgICAgIHJldHVybiB2ODo6UGVyc2lzdGVudDx2ODo6Q29u
dGV4dD4oKTsKKyAgICAgICAgcmV0dXJuIGNvbnRleHQtPmdldCgpOwogICAgIH0KLSAgICByZXR1
cm4gbWFpbldvcmxkQ29udGV4dCgpOworICAgIHdpbmRvd1NoZWxsKCktPmluaXRpYWxpemVJZk5l
ZWRlZCgpOworICAgIHJldHVybiB3aW5kb3dTaGVsbCgpLT5jb250ZXh0KCk7Cit9CisKK3Y4OjpM
b2NhbDx2ODo6Q29udGV4dD4gU2NyaXB0Q29udHJvbGxlcjo6Y3VycmVudFdvcmxkQ29udGV4dCgp
Cit7CisgICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6Q29udGV4dD46Ok5ldyh1bmRlcmx5aW5nSGFu
ZGxlVG9DdXJyZW50V29ybGRDb250ZXh0KCkpOwogfQogCiB2ODo6TG9jYWw8djg6OkNvbnRleHQ+
IFNjcmlwdENvbnRyb2xsZXI6Om1haW5Xb3JsZENvbnRleHQoKQpAQCAtNDM2LDI0ICs0NDIsNiBA
QCB2ODo6TG9jYWw8djg6OkNvbnRleHQ+IFNjcmlwdENvbnRyb2xsZXI6Om1haW5Xb3JsZENvbnRl
eHQoRnJhbWUqIGZyYW1lKQogICAgIHJldHVybiBmcmFtZS0+c2NyaXB0KCktPm1haW5Xb3JsZENv
bnRleHQoKTsKIH0KIAotYm9vbCBTY3JpcHRDb250cm9sbGVyOjptYXRjaGVzQ3VycmVudENvbnRl
eHQoKQotewotICAgIC8vIFRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8gJ3JldHVybiB2ODo6
Q29udGV4dDo6R2V0Q3VycmVudCgpID09IGNvbnRleHRGb3JDdXJyZW50V29ybGQoKScsCi0gICAg
Ly8gYnV0IGlzIHdyaXR0ZW4gd2l0aG91dCB1c2luZyBjb250ZXh0Rm9yQ3VycmVudFdvcmxkKCku
Ci0gICAgLy8gR2l2ZW4gdGhhdCB0aGlzIG1ldGhvZCBpcyB1c2VkIGJ5IGEgaG90IGNhbGwgcGF0
aCBvZiBET00gb2JqZWN0IGNvbnN0cnVjdG9yLAotICAgIC8vIHdlIHdhbnQgdG8gYXZvaWQgdGhl
IG92ZXJoZWFkIG9mIGNvbnRleHRGb3JDdXJyZW50V29ybGQoKSBjcmVhdGluZyBMb2NhbDxDb250
ZXh0PiBldmVyeSB0aW1lLgotICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQ7Ci0g
ICAgaWYgKFY4SXNvbGF0ZWRDb250ZXh0KiBpc29sYXRlZENvbnRleHQgPSBWOElzb2xhdGVkQ29u
dGV4dDo6Z2V0RW50ZXJlZCgpKSB7Ci0gICAgICAgIGNvbnRleHQgPSBpc29sYXRlZENvbnRleHQt
PnNoYXJlZENvbnRleHQoKS0+Z2V0KCk7Ci0gICAgICAgIGlmIChtX2ZyYW1lICE9IHRvRnJhbWVJ
Zk5vdERldGFjaGVkKGNvbnRleHQpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIHdpbmRvd1NoZWxsKCktPmluaXRpYWxpemVJZk5lZWRlZCgpOwotICAg
ICAgICBjb250ZXh0ID0gd2luZG93U2hlbGwoKS0+Y29udGV4dCgpOwotICAgIH0KLSAgICByZXR1
cm4gY29udGV4dCA9PSB2ODo6Q29udGV4dDo6R2V0Q3VycmVudCgpOwotfQotCiAvLyBDcmVhdGUg
YSBWOCBvYmplY3Qgd2l0aCBhbiBpbnRlcmNlcHRvciBvZiBOUE9iamVjdFByb3BlcnR5R2V0dGVy
Lgogdm9pZCBTY3JpcHRDb250cm9sbGVyOjpiaW5kVG9XaW5kb3dPYmplY3QoRnJhbWUqIGZyYW1l
LCBjb25zdCBTdHJpbmcmIGtleSwgTlBPYmplY3QqIG9iamVjdCkKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuaAppbmRleCBhZDliZjcxMTZiMmEwODA0
ZWI1NWY4ZjViNGZmYzY1MGRmM2U4MjRhLi44YWJiN2JlMjg4MzFmNWM3N2UzYzc2ODVlOGY2MmUy
NTA4YWZlMzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRD
b250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJv
bGxlci5oCkBAIC0xNzIsNyArMTcyLDggQEAgcHVibGljOgogICAgIHY4OjpMb2NhbDx2ODo6Q29u
dGV4dD4gbWFpbldvcmxkQ29udGV4dCgpOwogICAgIHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gY3Vy
cmVudFdvcmxkQ29udGV4dCgpOwogCi0gICAgYm9vbCBtYXRjaGVzQ3VycmVudENvbnRleHQoKTsK
KyAgICAvLyBXQVJOSU5HISBUaGUgaGFuZGxlIHJldHVybmVkIGJ5IHRoaXMgZnVuY3Rpb24gbWln
aHQgYmUgRGlzcG9zZWQoKSB3aGVuIEphdmFTY3JpcHQgaXMgZXhlY3V0ZWQuCisgICAgdjg6OlBl
cnNpc3RlbnQ8djg6OkNvbnRleHQ+IHVuZGVybHlpbmdIYW5kbGVUb0N1cnJlbnRXb3JsZENvbnRl
eHQoKTsKIAogICAgIC8vIFBhc3MgY29tbWFuZC1saW5lIGZsYWdzIHRvIHRoZSBKUyBlbmdpbmUu
CiAgICAgc3RhdGljIHZvaWQgc2V0RmxhZ3MoY29uc3QgY2hhciogc3RyaW5nLCBpbnQgbGVuZ3Ro
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hl
bGwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuaAppbmRl
eCAwOTVmOTdlODRkNDJjNTdmZmNhNTRlZDA0YmEzNjA1YjlkZDAyM2FiLi41ZWVmMjg2ZjI4YThm
ZmFmMDVjNjUxZjA1ZWNhZmFkZDNmNDRkNGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhET01XaW5kb3dTaGVsbC5oCkBAIC01Myw3ICs1Myw3IEBAIGNsYXNzIFY4RE9NV2lu
ZG93U2hlbGwgOiBwdWJsaWMgUmVmQ291bnRlZDxWOERPTVdpbmRvd1NoZWxsPiB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8VjhET01XaW5kb3dTaGVsbD4gY3JlYXRlKEZyYW1lKik7
CiAKLSAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4g
bV9jb250ZXh0LmdldCgpOyB9CisgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkNvbnRleHQ+IGNvbnRl
eHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH0KIAogICAgIC8vIFVwZGF0ZSBk
b2N1bWVudCBvYmplY3Qgb2YgdGhlIGZyYW1lLgogICAgIHZvaWQgdXBkYXRlRG9jdW1lbnQoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161250</attachid>
            <date>2012-08-29 09:46:12 -0700</date>
            <delta_ts>2012-08-29 23:24:14 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-95156-20120829094602.patch</filename>
            <type>text/plain</type>
            <size>9964</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzM4Y2E1NTYxYzhiMTQ3
NDNjMDY4NWIwOTM0MjI2MDZiYzkyMWQwYy4uY2JhNjM0MDNmM2Q1NjFmYTVmNTAzYzg2YThlNWU3
ZjhhMWM0NDQ4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA4LTI5ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1Y4XSBTY3JpcHRDb250cm9s
bGVyOjptYXRjaGVzQ3VycmVudENvbnRleHQgZHVwbGljYXRlcyBjb2RlIGZyb20gU2NyaXB0Q29u
dHJvbGxlcjo6Y3VycmVudFdvcmxkQ29udGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUxNTYKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNl
aWRlbC4KKworICAgICAgICBtYXRjaGVzQ3VycmVudENvbnRleHQgZHVwbGljYXRlZCBjb2RlIGZy
b20gY3VycmVudFdvcmxkQ29udGV4dCBpbiBvcmRlcgorICAgICAgICB0byBhdm9pZCBjcmVhdGlu
ZyBhIG5ldyB2ODo6TG9jYWwgaGFuZGxlIGluIHRoZSAoY29tbW9uKSBjYXNlIHRoYXQKKyAgICAg
ICAgd2UncmUgYWxyZWFkeSBpbiB0aGUgcmlnaHQgY29udGV4dC4gVGhpcyBwYXRjaCBqdXN0IGV4
cG9zZXMgYW4gYWNjZXNzb3IKKyAgICAgICAgZm9yIHRoZSB1bmRlcmx5aW5nIGhhbmRsZSBzbyB0
aGF0IHRoZSBiaW5kaW5ncyBjb2RlIGNhbiBkbyB0aGlzIHdvcmsKKyAgICAgICAgaXRzZWxmLgor
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAg
IChHZW5lcmF0ZVRvVjhDb252ZXJ0ZXJzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVz
dEFjdGl2ZURPTU9iamVjdDo6d3JhcFNsb3cpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3ROb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdE5vZGU6Ondy
YXBTbG93KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OnVuc2FmZUhhbmRsZVRvQ3VycmVudFdv
cmxkQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dENvbnRyb2xsZXI6OmN1cnJlbnRXb3JsZENvbnRleHQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4
L1NjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFNjcmlwdENvbnRyb2xsZXIpOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlY4
RE9NV2luZG93U2hlbGw6OmNvbnRleHQpOgorCiAyMDEyLTA4LTI5ICBTaGVyaWZmIEJvdCAgPHdl
YmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMTI2OTcyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JWOC5wbQppbmRleCAyZDc5NTdjZmI2MmEwYzE3Y2U5YmFkNWMyMDg3ZGViZTQ3
NTNjMjBiLi40ZWJlNjU0ZDBlODlhODEzMGUxZWQzMTliYmM0MzZmY2YyZjhiM2I5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpA
QCAtMzM5OSwxMiArMzM5OSwxNSBAQCBFTkQKIAogICAgIC8vIEVudGVyIHRoZSBub2RlJ3MgY29u
dGV4dCBhbmQgY3JlYXRlIHRoZSB3cmFwcGVyIGluIHRoYXQgY29udGV4dC4KICAgICB2ODo6SGFu
ZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0OwotICAgIGlmIChmcmFtZSAmJiAhZnJhbWUtPnNjcmlw
dCgpLT5tYXRjaGVzQ3VycmVudENvbnRleHQoKSkgewotICAgICAgICAvLyBGb3IgcGVyZm9ybWFu
Y2UsIHdlIGVudGVyIHRoZSBjb250ZXh0IG9ubHkgaWYgdGhlIGN1cnJlbnRseSBydW5uaW5nIGNv
bnRleHQKLSAgICAgICAgLy8gaXMgZGlmZmVyZW50IGZyb20gdGhlIGNvbnRleHQgdGhhdCB3ZSBh
cmUgYWJvdXQgdG8gZW50ZXIuCi0gICAgICAgIGNvbnRleHQgPSBmcmFtZS0+c2NyaXB0KCktPmN1
cnJlbnRXb3JsZENvbnRleHQoKTsKLSAgICAgICAgaWYgKCFjb250ZXh0LklzRW1wdHkoKSkKLSAg
ICAgICAgICAgIGNvbnRleHQtPkVudGVyKCk7CisgICAgaWYgKGZyYW1lKSB7CisgICAgICAgIHY4
OjpIYW5kbGU8djg6OkNvbnRleHQ+IHVuZGVybHlpbmdIYW5kbGUgPSBmcmFtZS0+c2NyaXB0KCkt
PnVuc2FmZUhhbmRsZVRvQ3VycmVudFdvcmxkQ29udGV4dCgpOworICAgICAgICBpZiAodjg6OkNv
bnRleHQ6OkdldEN1cnJlbnQoKSAhPSB1bmRlcmx5aW5nSGFuZGxlKSB7CisgICAgICAgICAgICAv
LyBGb3IgcGVyZm9ybWFuY2UsIHdlIGVudGVyIHRoZSBjb250ZXh0IG9ubHkgaWYgdGhlIGN1cnJl
bnRseSBydW5uaW5nIGNvbnRleHQKKyAgICAgICAgICAgIC8vIGlzIGRpZmZlcmVudCBmcm9tIHRo
ZSBjb250ZXh0IHRoYXQgd2UgYXJlIGFib3V0IHRvIGVudGVyLgorICAgICAgICAgICAgY29udGV4
dCA9IHY4OjpMb2NhbDx2ODo6Q29udGV4dD46Ok5ldyh1bmRlcmx5aW5nSGFuZGxlKTsKKyAgICAg
ICAgICAgIGlmICghY29udGV4dC5Jc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgY29udGV4dC0+
RW50ZXIoKTsKKyAgICAgICAgfQogICAgIH0KIEVORAogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2
ZURPTU9iamVjdC5jcHAKaW5kZXggYzJjOTk0MDQ1OWEzMWRlYTYyNDlmNzFlZWZhZmY2YzJjMTA2
MDJhZS4uZjM3MzNlZmZhNDVhN2ZhNDc4ZjYzM2ViNzEzZGMyZGVmNWViMWZlNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURP
TU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKQEAgLTE4NywxMiArMTg3LDE1IEBAIHY4OjpIYW5k
bGU8djg6Ok9iamVjdD4gVjhUZXN0QWN0aXZlRE9NT2JqZWN0Ojp3cmFwU2xvdyhQYXNzUmVmUHRy
PFRlc3RBY3RpdmVET01PCiAKICAgICAvLyBFbnRlciB0aGUgbm9kZSdzIGNvbnRleHQgYW5kIGNy
ZWF0ZSB0aGUgd3JhcHBlciBpbiB0aGF0IGNvbnRleHQuCiAgICAgdjg6OkhhbmRsZTx2ODo6Q29u
dGV4dD4gY29udGV4dDsKLSAgICBpZiAoZnJhbWUgJiYgIWZyYW1lLT5zY3JpcHQoKS0+bWF0Y2hl
c0N1cnJlbnRDb250ZXh0KCkpIHsKLSAgICAgICAgLy8gRm9yIHBlcmZvcm1hbmNlLCB3ZSBlbnRl
ciB0aGUgY29udGV4dCBvbmx5IGlmIHRoZSBjdXJyZW50bHkgcnVubmluZyBjb250ZXh0Ci0gICAg
ICAgIC8vIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBjb250ZXh0IHRoYXQgd2UgYXJlIGFib3V0IHRv
IGVudGVyLgotICAgICAgICBjb250ZXh0ID0gZnJhbWUtPnNjcmlwdCgpLT5jdXJyZW50V29ybGRD
b250ZXh0KCk7Ci0gICAgICAgIGlmICghY29udGV4dC5Jc0VtcHR5KCkpCi0gICAgICAgICAgICBj
b250ZXh0LT5FbnRlcigpOworICAgIGlmIChmcmFtZSkgeworICAgICAgICB2ODo6SGFuZGxlPHY4
OjpDb250ZXh0PiB1bmRlcmx5aW5nSGFuZGxlID0gZnJhbWUtPnNjcmlwdCgpLT51bnNhZmVIYW5k
bGVUb0N1cnJlbnRXb3JsZENvbnRleHQoKTsKKyAgICAgICAgaWYgKHY4OjpDb250ZXh0OjpHZXRD
dXJyZW50KCkgIT0gdW5kZXJseWluZ0hhbmRsZSkgeworICAgICAgICAgICAgLy8gRm9yIHBlcmZv
cm1hbmNlLCB3ZSBlbnRlciB0aGUgY29udGV4dCBvbmx5IGlmIHRoZSBjdXJyZW50bHkgcnVubmlu
ZyBjb250ZXh0CisgICAgICAgICAgICAvLyBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgY29udGV4dCB0
aGF0IHdlIGFyZSBhYm91dCB0byBlbnRlci4KKyAgICAgICAgICAgIGNvbnRleHQgPSB2ODo6TG9j
YWw8djg6OkNvbnRleHQ+OjpOZXcodW5kZXJseWluZ0hhbmRsZSk7CisgICAgICAgICAgICBpZiAo
IWNvbnRleHQuSXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGNvbnRleHQtPkVudGVyKCk7Cisg
ICAgICAgIH0KICAgICB9CiAgICAgd3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVW
OE9iamVjdChmcmFtZSwgJmluZm8sIGltcGwuZ2V0KCkpOwogICAgIC8vIEV4aXQgdGhlIG5vZGUn
cyBjb250ZXh0IGlmIGl0IHdhcyBlbnRlcmVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5vZGUuY3BwCmluZGV4IGNlNDJmOTJlZDlm
NjlmNDQ5MGQ2MGM2NzIxZGRhNjkwOWQyYWMxMzAuLjVhYjE3N2RkZDVmMDkxYmQzNjFhZTBhZGVl
MDNhYzVlMDYyZTg1MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3ROb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0Tm9kZS5jcHAKQEAgLTExNywxMiArMTE3LDE1IEBAIHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0Tm9kZTo6d3JhcFNsb3coUGFzc1JlZlB0cjxUZXN0Tm9k
ZT4gaW1wbCwgdjg6Oklzb2xhCiAKICAgICAvLyBFbnRlciB0aGUgbm9kZSdzIGNvbnRleHQgYW5k
IGNyZWF0ZSB0aGUgd3JhcHBlciBpbiB0aGF0IGNvbnRleHQuCiAgICAgdjg6OkhhbmRsZTx2ODo6
Q29udGV4dD4gY29udGV4dDsKLSAgICBpZiAoZnJhbWUgJiYgIWZyYW1lLT5zY3JpcHQoKS0+bWF0
Y2hlc0N1cnJlbnRDb250ZXh0KCkpIHsKLSAgICAgICAgLy8gRm9yIHBlcmZvcm1hbmNlLCB3ZSBl
bnRlciB0aGUgY29udGV4dCBvbmx5IGlmIHRoZSBjdXJyZW50bHkgcnVubmluZyBjb250ZXh0Ci0g
ICAgICAgIC8vIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBjb250ZXh0IHRoYXQgd2UgYXJlIGFib3V0
IHRvIGVudGVyLgotICAgICAgICBjb250ZXh0ID0gZnJhbWUtPnNjcmlwdCgpLT5jdXJyZW50V29y
bGRDb250ZXh0KCk7Ci0gICAgICAgIGlmICghY29udGV4dC5Jc0VtcHR5KCkpCi0gICAgICAgICAg
ICBjb250ZXh0LT5FbnRlcigpOworICAgIGlmIChmcmFtZSkgeworICAgICAgICB2ODo6SGFuZGxl
PHY4OjpDb250ZXh0PiB1bmRlcmx5aW5nSGFuZGxlID0gZnJhbWUtPnNjcmlwdCgpLT51bnNhZmVI
YW5kbGVUb0N1cnJlbnRXb3JsZENvbnRleHQoKTsKKyAgICAgICAgaWYgKHY4OjpDb250ZXh0OjpH
ZXRDdXJyZW50KCkgIT0gdW5kZXJseWluZ0hhbmRsZSkgeworICAgICAgICAgICAgLy8gRm9yIHBl
cmZvcm1hbmNlLCB3ZSBlbnRlciB0aGUgY29udGV4dCBvbmx5IGlmIHRoZSBjdXJyZW50bHkgcnVu
bmluZyBjb250ZXh0CisgICAgICAgICAgICAvLyBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgY29udGV4
dCB0aGF0IHdlIGFyZSBhYm91dCB0byBlbnRlci4KKyAgICAgICAgICAgIGNvbnRleHQgPSB2ODo6
TG9jYWw8djg6OkNvbnRleHQ+OjpOZXcodW5kZXJseWluZ0hhbmRsZSk7CisgICAgICAgICAgICBp
ZiAoIWNvbnRleHQuSXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGNvbnRleHQtPkVudGVyKCk7
CisgICAgICAgIH0KICAgICB9CiAgICAgd3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlh
dGVWOE9iamVjdChmcmFtZSwgJmluZm8sIGltcGwuZ2V0KCkpOwogICAgIC8vIEV4aXQgdGhlIG5v
ZGUncyBjb250ZXh0IGlmIGl0IHdhcyBlbnRlcmVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA2YTEzZGVhYWMzOWY4ZTBhZWFiYjgx
MTUwMmI5N2E2ZDZmMDA0NjExLi4yNmIxMjM3Mjg2ZDgxOWQwOTkwYTI0ZGI3OWUzNTU2OGFkMjM5
YWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVy
LmNwcApAQCAtNDExLDE1ICs0MTEsMjEgQEAgdm9pZCBTY3JpcHRDb250cm9sbGVyOjpmaW5pc2hl
ZFdpdGhFdmVudChFdmVudCogZXZlbnQpCiB7CiB9CiAKLXY4OjpMb2NhbDx2ODo6Q29udGV4dD4g
U2NyaXB0Q29udHJvbGxlcjo6Y3VycmVudFdvcmxkQ29udGV4dCgpCit2ODo6UGVyc2lzdGVudDx2
ODo6Q29udGV4dD4gU2NyaXB0Q29udHJvbGxlcjo6dW5zYWZlSGFuZGxlVG9DdXJyZW50V29ybGRD
b250ZXh0KCkKIHsKICAgICBpZiAoVjhJc29sYXRlZENvbnRleHQqIGlzb2xhdGVkQ29udGV4dCA9
IFY4SXNvbGF0ZWRDb250ZXh0OjpnZXRFbnRlcmVkKCkpIHsKICAgICAgICAgUmVmUHRyPFNoYXJl
ZFBlcnNpc3RlbnQ8djg6OkNvbnRleHQ+ID4gY29udGV4dCA9IGlzb2xhdGVkQ29udGV4dC0+c2hh
cmVkQ29udGV4dCgpOwogICAgICAgICBpZiAobV9mcmFtZSAhPSB0b0ZyYW1lSWZOb3REZXRhY2hl
ZChjb250ZXh0LT5nZXQoKSkpCi0gICAgICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpDb250
ZXh0PigpOwotICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpDb250ZXh0Pjo6TmV3KGNvbnRl
eHQtPmdldCgpKTsKKyAgICAgICAgICAgIHJldHVybiB2ODo6UGVyc2lzdGVudDx2ODo6Q29udGV4
dD4oKTsKKyAgICAgICAgcmV0dXJuIGNvbnRleHQtPmdldCgpOwogICAgIH0KLSAgICByZXR1cm4g
bWFpbldvcmxkQ29udGV4dCgpOworICAgIHdpbmRvd1NoZWxsKCktPmluaXRpYWxpemVJZk5lZWRl
ZCgpOworICAgIHJldHVybiB3aW5kb3dTaGVsbCgpLT5jb250ZXh0KCk7Cit9CisKK3Y4OjpMb2Nh
bDx2ODo6Q29udGV4dD4gU2NyaXB0Q29udHJvbGxlcjo6Y3VycmVudFdvcmxkQ29udGV4dCgpCit7
CisgICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6Q29udGV4dD46Ok5ldyh1bnNhZmVIYW5kbGVUb0N1
cnJlbnRXb3JsZENvbnRleHQoKSk7CiB9CiAKIHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gU2NyaXB0
Q29udHJvbGxlcjo6bWFpbldvcmxkQ29udGV4dCgpCkBAIC00MzYsMjQgKzQ0Miw2IEBAIHY4OjpM
b2NhbDx2ODo6Q29udGV4dD4gU2NyaXB0Q29udHJvbGxlcjo6bWFpbldvcmxkQ29udGV4dChGcmFt
ZSogZnJhbWUpCiAgICAgcmV0dXJuIGZyYW1lLT5zY3JpcHQoKS0+bWFpbldvcmxkQ29udGV4dCgp
OwogfQogCi1ib29sIFNjcmlwdENvbnRyb2xsZXI6Om1hdGNoZXNDdXJyZW50Q29udGV4dCgpCi17
Ci0gICAgLy8gVGhpcyBtZXRob2QgaXMgZXF1aXZhbGVudCB0byAncmV0dXJuIHY4OjpDb250ZXh0
OjpHZXRDdXJyZW50KCkgPT0gY29udGV4dEZvckN1cnJlbnRXb3JsZCgpJywKLSAgICAvLyBidXQg
aXMgd3JpdHRlbiB3aXRob3V0IHVzaW5nIGNvbnRleHRGb3JDdXJyZW50V29ybGQoKS4KLSAgICAv
LyBHaXZlbiB0aGF0IHRoaXMgbWV0aG9kIGlzIHVzZWQgYnkgYSBob3QgY2FsbCBwYXRoIG9mIERP
TSBvYmplY3QgY29uc3RydWN0b3IsCi0gICAgLy8gd2Ugd2FudCB0byBhdm9pZCB0aGUgb3Zlcmhl
YWQgb2YgY29udGV4dEZvckN1cnJlbnRXb3JsZCgpIGNyZWF0aW5nIExvY2FsPENvbnRleHQ+IGV2
ZXJ5IHRpbWUuCi0gICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gY29udGV4dDsKLSAgICBpZiAo
VjhJc29sYXRlZENvbnRleHQqIGlzb2xhdGVkQ29udGV4dCA9IFY4SXNvbGF0ZWRDb250ZXh0Ojpn
ZXRFbnRlcmVkKCkpIHsKLSAgICAgICAgY29udGV4dCA9IGlzb2xhdGVkQ29udGV4dC0+c2hhcmVk
Q29udGV4dCgpLT5nZXQoKTsKLSAgICAgICAgaWYgKG1fZnJhbWUgIT0gdG9GcmFtZUlmTm90RGV0
YWNoZWQoY29udGV4dCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgd2luZG93U2hlbGwoKS0+aW5pdGlhbGl6ZUlmTmVlZGVkKCk7Ci0gICAgICAgIGNv
bnRleHQgPSB3aW5kb3dTaGVsbCgpLT5jb250ZXh0KCk7Ci0gICAgfQotICAgIHJldHVybiBjb250
ZXh0ID09IHY4OjpDb250ZXh0OjpHZXRDdXJyZW50KCk7Ci19Ci0KIC8vIENyZWF0ZSBhIFY4IG9i
amVjdCB3aXRoIGFuIGludGVyY2VwdG9yIG9mIE5QT2JqZWN0UHJvcGVydHlHZXR0ZXIuCiB2b2lk
IFNjcmlwdENvbnRyb2xsZXI6OmJpbmRUb1dpbmRvd09iamVjdChGcmFtZSogZnJhbWUsIGNvbnN0
IFN0cmluZyYga2V5LCBOUE9iamVjdCogb2JqZWN0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IGFkOWJmNzExNmIyYTA4MDRlYjU1Zjhm
NWI0ZmZjNjUwZGYzZTgyNGEuLjM0YzdjNjRmMzFhMGVlYzE5MGI5NWYzNDRmNzlmY2EyMjQyYzg1
YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmgK
QEAgLTE3Miw3ICsxNzIsOCBAQCBwdWJsaWM6CiAgICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBt
YWluV29ybGRDb250ZXh0KCk7CiAgICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBjdXJyZW50V29y
bGRDb250ZXh0KCk7CiAKLSAgICBib29sIG1hdGNoZXNDdXJyZW50Q29udGV4dCgpOworICAgIC8v
IFdBUk5JTkchIFRoZSBoYW5kbGUgcmV0dXJuZWQgYnkgdGhpcyBmdW5jdGlvbiBtaWdodCBiZSBE
aXNwb3NlZCgpIHdoZW4gSmF2YVNjcmlwdCBpcyBleGVjdXRlZC4KKyAgICB2ODo6UGVyc2lzdGVu
dDx2ODo6Q29udGV4dD4gdW5zYWZlSGFuZGxlVG9DdXJyZW50V29ybGRDb250ZXh0KCk7CiAKICAg
ICAvLyBQYXNzIGNvbW1hbmQtbGluZSBmbGFncyB0byB0aGUgSlMgZW5naW5lLgogICAgIHN0YXRp
YyB2b2lkIHNldEZsYWdzKGNvbnN0IGNoYXIqIHN0cmluZywgaW50IGxlbmd0aCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmgKaW5kZXggMDk1Zjk3ZTg0
ZDQyYzU3ZmZjYTU0ZWQwNGJhMzYwNWI5ZGQwMjNhYi4uNWVlZjI4NmYyOGE4ZmZhZjA1YzY1MWYw
NWVjYWZhZGQzZjQ0ZDRkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhET01XaW5kb3dTaGVsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9N
V2luZG93U2hlbGwuaApAQCAtNTMsNyArNTMsNyBAQCBjbGFzcyBWOERPTVdpbmRvd1NoZWxsIDog
cHVibGljIFJlZkNvdW50ZWQ8VjhET01XaW5kb3dTaGVsbD4gewogcHVibGljOgogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFY4RE9NV2luZG93U2hlbGw+IGNyZWF0ZShGcmFtZSopOwogCi0gICAgdjg6
OkhhbmRsZTx2ODo6Q29udGV4dD4gY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5n
ZXQoKTsgfQorICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpDb250ZXh0PiBjb250ZXh0KCkgY29uc3Qg
eyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CiAKICAgICAvLyBVcGRhdGUgZG9jdW1lbnQgb2Jq
ZWN0IG9mIHRoZSBmcmFtZS4KICAgICB2b2lkIHVwZGF0ZURvY3VtZW50KCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>