<?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>107190</bug_id>
          
          <creation_ts>2013-01-17 15:22:33 -0800</creation_ts>
          <short_desc>Use WeakPtrs to communicate between the HTMLDocumentParser and the BackgroundHTMLParser</short_desc>
          <delta_ts>2013-02-08 11:32:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          <dependson>107637</dependson>
          <blocked>106127</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>809874</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-17 15:22:33 -0800</bug_when>
    <thetext>Use WeakPtrs to communicate between the HTMLDocumentParser and the BackgroundHTMLParser</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809887</commentid>
    <comment_count>1</comment_count>
      <attachid>183299</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-17 15:29:14 -0800</bug_when>
    <thetext>Created attachment 183299
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810141</commentid>
    <comment_count>2</comment_count>
      <attachid>183299</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-17 19:48:38 -0800</bug_when>
    <thetext>Comment on attachment 183299
Patch

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

&gt; Source/WebCore/html/parser/BackgroundHTMLParser.cpp:88
&gt; +void BackgroundHTMLParser::stop()
&gt; +{
&gt; +    delete this;
&gt; +}

Shouldn&apos;t it clear itself from its weak ptr factry?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810188</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-17 21:04:24 -0800</bug_when>
    <thetext>That happens automatically.  The only reason we do it manually in HTMLDocumentParser is because we want to cancel all incoming messages before being destroyed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813662</commentid>
    <comment_count>4</comment_count>
      <attachid>183299</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-22 18:43:47 -0800</bug_when>
    <thetext>Comment on attachment 183299
Patch

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

&gt; Source/WebCore/html/parser/BackgroundHTMLParser.h:45
&gt; +    struct Config {

You mentioned this isn&apos;t needed, maybe we should add a FIXME.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813803</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-22 21:52:32 -0800</bug_when>
    <thetext>I can break this patch into smaller pieces if that would be helpful.  Using WeakPtrs just for the background -&gt; foreground communication would be a much smaller patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813818</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-22 22:05:58 -0800</bug_when>
    <thetext>That would help me, yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828688</commentid>
    <comment_count>7</comment_count>
      <attachid>187339</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-08 11:16:16 -0800</bug_when>
    <thetext>Created attachment 187339
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828691</commentid>
    <comment_count>8</comment_count>
      <attachid>187339</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-08 11:23:51 -0800</bug_when>
    <thetext>Comment on attachment 187339
Patch

This is so much better.  Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828694</commentid>
    <comment_count>9</comment_count>
      <attachid>187339</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-08 11:32:21 -0800</bug_when>
    <thetext>Comment on attachment 187339
Patch

Clearing flags on attachment: 187339

Committed r142305: &lt;http://trac.webkit.org/changeset/142305&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828695</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-08 11:32:25 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183299</attachid>
            <date>2013-01-17 15:29:14 -0800</date>
            <delta_ts>2013-02-08 11:16:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107190-20130117152614.patch</filename>
            <type>text/plain</type>
            <size>21882</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMDM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDlkMmRjOTU2ODUyOWVlMDczNDUxZGM1
MGYyZDU2YjNjYzgyMTY1NDIuLjgxNmFhY2NmMzE1MGY3OGUzN2ZmOWZiOGI1NWJiMzk0NzQ4ZGFi
MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMzYgQEAKIDIwMTMtMDEtMTcgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KIAorICAgICAgICBVc2UgV2Vha1B0cnMgdG8gY29tbXVuaWNhdGUgYmV0d2Vl
biB0aGUgSFRNTERvY3VtZW50UGFyc2VyIGFuZCB0aGUgQmFja2dyb3VuZEhUTUxQYXJzZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzE5MAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1dlYWtQ
dHIuaDoKKyAgICAgICAgKFdURjo6V2Vha1JlZmVyZW5jZTo6Y3JlYXRlVW5ib3VuZCk6CisgICAg
ICAgIChXVEY6OldlYWtSZWZlcmVuY2U6OmJpbmRUbyk6CisgICAgICAgIChXZWFrUmVmZXJlbmNl
KToKKyAgICAgICAgKFdURjo6V2Vha1JlZmVyZW5jZTo6V2Vha1JlZmVyZW5jZSk6CisgICAgICAg
IChXVEY6OldlYWtQdHI6OldlYWtQdHIpOgorICAgICAgICAoV2Vha1B0cik6CisgICAgICAgIChX
VEY6OldlYWtQdHJGYWN0b3J5OjpXZWFrUHRyRmFjdG9yeSk6CisgICAgICAgIChXZWFrUHRyRmFj
dG9yeSk6CisgICAgICAgIChXVEY6OldlYWtQdHJGYWN0b3J5OjppbnZhbGlkYXRlQ3VycmVudEFu
ZEZ1dHVyZVdlYWtQdHJzKToKKyAgICAgICAgICAgIC0gQWRkIHRoZSBhYmlsaXR5IHRvIGNyZWF0
ZSBhIFdlYWtQdHIgdG8gYW4gb2JqZWN0IGJlZm9yZSB0aGUKKyAgICAgICAgICAgICAgb2JqZWN0
IGFjdHVhbGx5IGV4aXN0cy4gWW91IGZpcnN0IGNyZWF0ZSBhbiB1bmJvdW5kCisgICAgICAgICAg
ICAgIFdlYWtSZWZlcmVuY2UsIHdoaWNoIGxhdGVyIGdldHMgYm91bmQgdG8gYW4gYWN0dWFsIG9i
amVjdC4gVGhpcworICAgICAgICAgICAgICBmZWF0dXJlIGlzIHVzZWZ1bCBzbyB5b3UgY2FuIHNl
bmQgbWVzc2FnZXMgdG8gYW4gb2JqZWN0IG9uCisgICAgICAgICAgICAgIGFub3RoZXIgdGhyZWFk
IHdpdGhvdXQgbmVlZGluZyB0byB3YWl0IGZvciB0aGF0IG9iamVjdCB0bworICAgICAgICAgICAg
ICBhY3R1YWxseSBleGlzdC4KKyAgICAgICAgKiB3dGYvY2hyb21pdW0vTWFpblRocmVhZENocm9t
aXVtLmNwcDoKKyAgICAgICAgKFdURjo6Y2FsbEZ1bmN0aW9uT2JqZWN0KToKKyAgICAgICAgKFdU
Rik6CisgICAgICAgIChXVEY6OmNhbGxPbk1haW5UaHJlYWQpOgorICAgICAgICAgICAgLSBJbXBs
ZW1lbnQgRnVuY3Rpb25hbC5oIHN1cHBvcnQgaW4gQ2hyb21pdW0ncyBmb3JrIG9mCisgICAgICAg
ICAgICAgIE1haW5UaHJlYWQuY3BwLiBUaGlzIGZ1bmN0aW9uYWxpdHkgYWxyZWFkeSBleGlzdHMg
aW4gdGhlIG5vcm1hbAorICAgICAgICAgICAgICBNYWluVGhyZWFkLmNwcC4KKworMjAxMy0wMS0x
NyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCiAgICAgICAgIFRlYWNoIEZ1bmN0
aW9uYWwuaCBhYm91dCBXZWFrUHRyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDcxMDUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ1MDg4YTQyMjU5OTY0NzBkNDEy
OTEwMTA1YzNkOWY2Nzg0NjdlZDkuLjI3OTg5MDg5ZWFjM2QyZmUyM2EzOGM2YWE5ZDQ3Yzk3YWZk
OTFmNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAxMy0wMS0xNyAgQWRhbSBCYXJ0
aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFVzZSBXZWFrUHRycyB0byBjb21tdW5p
Y2F0ZSBiZXR3ZWVuIHRoZSBIVE1MRG9jdW1lbnRQYXJzZXIgYW5kIHRoZSBCYWNrZ3JvdW5kSFRN
TFBhcnNlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA3MTkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCByZXBsYWNlcyB0aGUgUGFyc2VyTWFwIG1lY2hhbmlzbSBmb3Igcm91dGluZyBt
ZXNzYWdlcworICAgICAgICBiZXR3ZWVuIHRoZSBIVE1MRG9jdW1lbnRQYXJzZXIgYW5kIHRoZSBC
YWNrZ3JvdW5kSFRNTFBhcnNlciB3aXRoIGEKKyAgICAgICAgV2Vha1B0ci1iYXNlZCBtZWNoYW5p
c20uIFRoZSBIVE1MRG9jdW1lbnRQYXJzZXIgYW5kIHRoZQorICAgICAgICBCYWNrZ3JvdW5kSFRN
TFBhcnNlciBob2xkIFdlYWtQdHJzIHRvIGVhY2ggb3RoZXIgdGhhdCB0aGV5IGNhbiB1c2UgdG8K
KyAgICAgICAgc2VuZCBlYWNoIG90aGVyIG1lc3NhZ2VzLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
aGFzIHRoZSBmb2xsb3cgdHdvIGFkdmFudGFnZXM6CisKKyAgICAgICAgMSkgV2UgY2FuIHJlbW92
ZSBhIGJ1bmNoIG9mIGJvaWxkZXJwbGF0ZSBjb2RlIGZvciBsb29rdXAgdXAgYW5kCisgICAgICAg
ICAgIHZhbGlkYXRlIHBhcnNlciBpZGVudGlmaWVycy4gKE5vdGljZSB0aGF0IHRoZSBhcHBlbmRQ
YXJ0aWFsLWxpa2UKKyAgICAgICAgICAgZnVuY3Rpb25zIGFyZSByZW1vdmVkIGluIHRoaXMgcGF0
Y2guKQorCisgICAgICAgIDIpIFRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUgYXNzdW1wdGlvbiB0aGF0
IGFsbCBCYWNrZ3JvdW5kSFRNTFBhcnNlcnMKKyAgICAgICAgICAgZXhpc3Qgb24gdGhlIHNhbWUg
dGhyZWFkIChhbmQgdGhlcmVmb3JlIGNhbiBzYWZlbHkgbXV0YXRlIHRoZSBoYXNoCisgICAgICAg
ICAgIG1hcCBvZiBwYXJzZXJzKS4KKworICAgICAgICAqIGh0bWwvcGFyc2VyL0JhY2tncm91bmRI
VE1MUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tncm91bmRIVE1MUGFyc2VyOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QmFja2dyb3VuZEhUTUxQYXJzZXI6OkJhY2tncm91
bmRIVE1MUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tncm91bmRIVE1MUGFyc2VyOjpz
dG9wKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6QmFja2dyb3VuZEhU
TUxQYXJzZXI6OnNlbmRUb2tlbnNUb01haW5UaHJlYWQpOgorICAgICAgICAqIGh0bWwvcGFyc2Vy
L0JhY2tncm91bmRIVE1MUGFyc2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpCYWNrZ3JvdW5kSFRN
TFBhcnNlcjo6Q29uZmlnOjpDb25maWcpOgorICAgICAgICAoQ29uZmlnKToKKyAgICAgICAgKEJh
Y2tncm91bmRIVE1MUGFyc2VyKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQ
YXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpIVE1MRG9j
dW1lbnRQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpkaWRS
ZWNlaXZlVG9rZW5zRnJvbUJhY2tncm91bmRQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TERvY3VtZW50UGFyc2VyOjpzdGFydEJhY2tncm91bmRQYXJzZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTERvY3VtZW50UGFyc2VyOjpzdG9wQmFja2dyb3VuZFBhcnNlcik6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OmFwcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MRG9jdW1lbnRQYXJzZXI6OmZpbmlzaCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1l
bnRQYXJzZXI6OnJlc3VtZVBhcnNpbmdBZnRlclNjcmlwdEV4ZWN1dGlvbik6CisgICAgICAgICog
aHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKEhUTUxEb2N1bWVudFBhcnNlcik6CisKIDIwMTMtMDEtMTcgIFRvbnkgR2VudGlsY29y
ZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIGZpbmlzaFdh
c0NhbGxlZCgpIG1ldGhvZApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV2Vha1B0ci5oIGIv
U291cmNlL1dURi93dGYvV2Vha1B0ci5oCmluZGV4IDBlNjQ1MDYyMDA2ZTc4NGMzZjk5MmEzZDM0
YjVlMjJjODkxMGM1YmIuLjdiYmUwNzY2YTVlOTk1MTQyNDU1OWFjYzdiYTkwNDE3YjczZmFhMDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9XZWFrUHRyLmgKQEAgLTM0LDE0ICszNCwxMyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotbmFt
ZXNwYWNlIEludGVybmFsIHsKLQogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIGNsYXNzIFdlYWtSZWZl
cmVuY2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2Vha1JlZmVyZW5jZTxUPiA+IHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWFrUmVmZXJlbmNlPFQ+KTsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWFrUmVm
ZXJlbmNlPFQ+ID4gY3JlYXRlKFQqIHB0cikgeyByZXR1cm4gYWRvcHRSZWYobmV3IFdlYWtSZWZl
cmVuY2UocHRyKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWFrUmVmZXJlbmNlPFQ+ID4g
Y3JlYXRlVW5ib3VuZCgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWFrUmVmZXJlbmNlKCkpOyB9
CiAKICAgICBUKiBnZXQoKSBjb25zdAogICAgIHsKQEAgLTU1LDcgKzU0LDE4IEBAIHB1YmxpYzoK
ICAgICAgICAgbV9wdHIgPSAwOwogICAgIH0KIAorICAgIHZvaWQgYmluZFRvKFQqIHB0cikKKyAg
ICB7CisgICAgICAgIEFTU0VSVCghbV9wdHIpOworI2lmbmRlZiBOREVCVUcKKyAgICAgICAgbV9i
b3VuZFRocmVhZCA9IGN1cnJlbnRUaHJlYWQoKTsKKyNlbmRpZgorICAgICAgICBtX3B0ciA9IHB0
cjsKKyAgICB9CisKIHByaXZhdGU6CisgICAgV2Vha1JlZmVyZW5jZSgpIDogbV9wdHIoMCkgeyB9
CisKICAgICBleHBsaWNpdCBXZWFrUmVmZXJlbmNlKFQqIHB0cikKICAgICAgICAgOiBtX3B0cihw
dHIpCiAjaWZuZGVmIE5ERUJVRwpAQCAtNzAsMTkgKzgwLDE3IEBAIHByaXZhdGU6CiAjZW5kaWYK
IH07CiAKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIGNsYXNzIFdlYWtQdHIgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIFdlYWtQdHIoKSB7IH0KLSAgICBX
ZWFrUHRyKFBhc3NSZWZQdHI8SW50ZXJuYWw6OldlYWtSZWZlcmVuY2U8VD4gPiByZWYpIDogbV9y
ZWYocmVmKSB7IH0KKyAgICBXZWFrUHRyKFBhc3NSZWZQdHI8V2Vha1JlZmVyZW5jZTxUPiA+IHJl
ZikgOiBtX3JlZihyZWYpIHsgfQogCiAgICAgVCogZ2V0KCkgY29uc3QgeyByZXR1cm4gbV9yZWYt
PmdldCgpOyB9CiAKIHByaXZhdGU6Ci0gICAgUmVmUHRyPEludGVybmFsOjpXZWFrUmVmZXJlbmNl
PFQ+ID4gbV9yZWY7CisgICAgUmVmUHRyPFdlYWtSZWZlcmVuY2U8VD4gPiBtX3JlZjsKIH07CiAK
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+CkBAIC05MCwxOCArOTgsMjggQEAgY2xhc3MgV2Vha1B0ckZh
Y3RvcnkgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYWtQdHJGYWN0b3J5PFQ+KTsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBXZWFrUHRy
RmFjdG9yeShUKiBwdHIpIHsgbV9yZWYgPSBJbnRlcm5hbDo6V2Vha1JlZmVyZW5jZTxUPjo6Y3Jl
YXRlKHB0cik7IH0KKyAgICBleHBsaWNpdCBXZWFrUHRyRmFjdG9yeShUKiBwdHIpIDogbV9yZWYo
V2Vha1JlZmVyZW5jZTxUPjo6Y3JlYXRlKHB0cikpIHsgfQorCisgICAgV2Vha1B0ckZhY3Rvcnko
UGFzc1JlZlB0cjxXZWFrUmVmZXJlbmNlPFQ+ID4gcmVmLCBUKiBwdHIpCisgICAgICAgIDogbV9y
ZWYocmVmKQorICAgIHsKKyAgICAgICAgbV9yZWYtPmJpbmRUbyhwdHIpOworICAgIH0KKwogICAg
IH5XZWFrUHRyRmFjdG9yeSgpIHsgbV9yZWYtPmNsZWFyKCk7IH0KIAorICAgIHZvaWQgaW52YWxp
ZGF0ZUN1cnJlbnRBbmRGdXR1cmVXZWFrUHRycygpIHsgbV9yZWYtPmNsZWFyKCk7IH0KKwogICAg
IC8vIFdlIHNob3VsZCBjb25zaWRlciBoYXZpbmcgY3JlYXRlV2Vha1B0ciBwb3B1bGF0ZSBtX3Jl
ZiB0aGUgZmlyc3QgdGltZSBjcmVhdGVXZWFrUHRyIGlzIGNhbGxlZC4KICAgICBXZWFrUHRyPFQ+
IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBXZWFrUHRyPFQ+KG1fcmVmKTsgfQogCiBwcml2YXRl
OgotICAgIFJlZlB0cjxJbnRlcm5hbDo6V2Vha1JlZmVyZW5jZTxUPiA+IG1fcmVmOworICAgIFJl
ZlB0cjxXZWFrUmVmZXJlbmNlPFQ+ID4gbV9yZWY7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYK
IAordXNpbmcgV1RGOjpXZWFrUmVmZXJlbmNlOwogdXNpbmcgV1RGOjpXZWFrUHRyOwogdXNpbmcg
V1RGOjpXZWFrUHRyRmFjdG9yeTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY2hyb21p
dW0vTWFpblRocmVhZENocm9taXVtLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2Nocm9taXVtL01haW5U
aHJlYWRDaHJvbWl1bS5jcHAKaW5kZXggOWU2NTkyYjU3MTU2NzlhZTJiYzlhNmQxYTBiNmYzYjhj
OWUxOGU4MS4uOTU3ZWFlNzAxZDE4ZTM5NzM4NDgxMjM0MTU3ZjNhMThkZTgyZTQxOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvY2hyb21pdW0vTWFpblRocmVhZENocm9taXVtLmNwcAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9jaHJvbWl1bS9NYWluVGhyZWFkQ2hyb21pdW0uY3BwCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSAiQXNzZXJ0aW9ucy5oIgogI2luY2x1ZGUgIkNocm9taXVtVGhy
ZWFkaW5nLmgiCiAjaW5jbHVkZSAiVGhyZWFkaW5nLmgiCisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9u
YWwuaD4KIAogbmFtZXNwYWNlIFdURiB7CiAKQEAgLTU0LDYgKzU1LDE4IEBAIHZvaWQgY2FsbE9u
TWFpblRocmVhZChNYWluVGhyZWFkRnVuY3Rpb24qIGZ1bmN0aW9uLCB2b2lkKiBjb250ZXh0KQog
ICAgIENocm9taXVtVGhyZWFkaW5nOjpjYWxsT25NYWluVGhyZWFkKGZ1bmN0aW9uLCBjb250ZXh0
KTsKIH0KIAorc3RhdGljIHZvaWQgY2FsbEZ1bmN0aW9uT2JqZWN0KHZvaWQqIGNvbnRleHQpCit7
CisgICAgRnVuY3Rpb248dm9pZCAoKT4qIGZ1bmN0aW9uID0gc3RhdGljX2Nhc3Q8RnVuY3Rpb248
dm9pZCAoKT4qPihjb250ZXh0KTsKKyAgICAoKmZ1bmN0aW9uKSgpOworICAgIGRlbGV0ZSBmdW5j
dGlvbjsKK30KKwordm9pZCBjYWxsT25NYWluVGhyZWFkKGNvbnN0IEZ1bmN0aW9uPHZvaWQgKCk+
JiBmdW5jdGlvbikKK3sKKyAgICBjYWxsT25NYWluVGhyZWFkKGNhbGxGdW5jdGlvbk9iamVjdCwg
bmV3IEZ1bmN0aW9uPHZvaWQgKCk+KGZ1bmN0aW9uKSk7Cit9CisKIHZvaWQgY2FsbE9uTWFpblRo
cmVhZEFuZFdhaXQoTWFpblRocmVhZEZ1bmN0aW9uKiwgdm9pZCopCiB7CiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNr
Z3JvdW5kSFRNTFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3Jv
dW5kSFRNTFBhcnNlci5jcHAKaW5kZXggN2Y1NmUxMmY5YThhM2Y4YThiNDI1OWQ0ZjZmMDY0ZTM3
NmRjMmFjNS4uN2MzNDdiYjY1YWU1ODNmYTNmZjdmNjBjYmMxMTZhYWIzZDk1NmU2MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNw
cApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkhUTUxEb2N1bWVudFBhcnNlci5oIgogI2lu
Y2x1ZGUgIkhUTUxQYXJzZXJUaHJlYWQuaCIKICNpbmNsdWRlICJIVE1MVG9rZW5pemVyLmgiCisj
aW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNDcsMzUgKzQ4LDE4IEBAIHN0YXRpYyB2b2lk
IGNoZWNrVGhhdFRva2Vuc0FyZVNhZmVUb1NlbmRUb0Fub3RoZXJUaHJlYWQoY29uc3QgVmVjdG9y
PENvbXBhY3RIVE1MCiAKICNlbmRpZgogCi10eXBlZGVmIGNvbnN0IHZvaWQqIFBhcnNlcklkZW50
aWZpZXI7Ci1jbGFzcyBIVE1MRG9jdW1lbnRQYXJzZXI7Ci0KLVBhcnNlck1hcCYgcGFyc2VyTWFw
KCkKLXsKLSAgICAvLyBUaGlzIGluaXRpYWxpemF0aW9uIGFzc3VtZXMgdGhhdCB0aGlzIHdpbGwg
YmUgaW5pdGlhbGl6ZSBvbiB0aGUgbWFpbiB0aHJlYWQgYmVmb3JlCi0gICAgLy8gYW55IHBhcnNl
ciB0aHJlYWQgaXMgc3RhcnRlZC4KLSAgICBzdGF0aWMgUGFyc2VyTWFwKiBzUGFyc2VyTWFwID0g
bmV3IFBhcnNlck1hcDsKLSAgICByZXR1cm4gKnNQYXJzZXJNYXA7Ci19Ci0KLVBhcnNlck1hcDo6
QmFja2dyb3VuZFBhcnNlck1hcCYgUGFyc2VyTWFwOjpiYWNrZ3JvdW5kUGFyc2VycygpCi17Ci0g
ICAgQVNTRVJUKEhUTUxQYXJzZXJUaHJlYWQ6OnNoYXJlZCgpLT50aHJlYWRJZCgpID09IGN1cnJl
bnRUaHJlYWQoKSk7Ci0gICAgcmV0dXJuIG1fYmFja2dyb3VuZFBhcnNlcnM7Ci19Ci0KLVBhcnNl
ck1hcDo6TWFpblRocmVhZFBhcnNlck1hcCYgUGFyc2VyTWFwOjptYWluVGhyZWFkUGFyc2Vycygp
Cit2b2lkIEJhY2tncm91bmRIVE1MUGFyc2VyOjpjcmVhdGUoY29uc3QgQ29uZmlnJiBjb25maWcp
CiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICByZXR1cm4gbV9tYWluVGhyZWFk
UGFyc2VyczsKKyAgICBuZXcgQmFja2dyb3VuZEhUTUxQYXJzZXIoY29uZmlnKTsgLy8gRGVsZXRl
ZCBpbiBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6c3RvcC4KIH0KIAotQmFja2dyb3VuZEhUTUxQYXJz
ZXI6OkJhY2tncm91bmRIVE1MUGFyc2VyKGNvbnN0IEhUTUxQYXJzZXJPcHRpb25zJiBvcHRpb25z
LCBQYXJzZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCitCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6QmFj
a2dyb3VuZEhUTUxQYXJzZXIoY29uc3QgQ29uZmlnJiBjb25maWcpCiAgICAgOiBtX2lzUGF1c2Vk
V2FpdGluZ0ZvclNjcmlwdHMoZmFsc2UpCiAgICAgLCBtX2luRm9yZWlnbkNvbnRlbnQoZmFsc2Up
Ci0gICAgLCBtX3Rva2VuaXplcihIVE1MVG9rZW5pemVyOjpjcmVhdGUob3B0aW9ucykpCi0gICAg
LCBtX29wdGlvbnMob3B0aW9ucykKLSAgICAsIG1fcGFyc2VySWRlbnRpZmVyKGlkZW50aWZpZXIp
CisgICAgLCBtX3Rva2VuaXplcihIVE1MVG9rZW5pemVyOjpjcmVhdGUoY29uZmlnLm1fb3B0aW9u
cykpCisgICAgLCBtX29wdGlvbnMoY29uZmlnLm1fb3B0aW9ucykKKyAgICAsIG1fd2Vha0ZhY3Rv
cnkoY29uZmlnLm1fcmVmZXJlbmNlLCB0aGlzKQorICAgICwgbV9wYXJzZXIoY29uZmlnLm1fcGFy
c2VyKQogewogfQogCkBAIC05OCw2ICs4MiwxMSBAQCB2b2lkIEJhY2tncm91bmRIVE1MUGFyc2Vy
OjpmaW5pc2goKQogICAgIHB1bXBUb2tlbml6ZXIoKTsKIH0KIAordm9pZCBCYWNrZ3JvdW5kSFRN
TFBhcnNlcjo6c3RvcCgpCit7CisgICAgZGVsZXRlIHRoaXM7Cit9CisKIHZvaWQgQmFja2dyb3Vu
ZEhUTUxQYXJzZXI6OnB1bXBUb2tlbml6ZXIoKQogewogICAgIGlmIChtX2lzUGF1c2VkV2FpdGlu
Z0ZvclNjcmlwdHMpCkBAIC0xNjYsNjMgKzE1NSwxMSBAQCB2b2lkIEJhY2tncm91bmRIVE1MUGFy
c2VyOjpwdW1wVG9rZW5pemVyKCkKICAgICBzZW5kVG9rZW5zVG9NYWluVGhyZWFkKCk7CiB9CiAK
LWNsYXNzIFRva2VuRGVsaXZlcnkgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRva2VuRGVs
aXZlcnkpOwotcHVibGljOgotICAgIFRva2VuRGVsaXZlcnkoKSB7IH0KLQotICAgIFBhcnNlcklk
ZW50aWZpZXIgaWRlbnRpZmllcjsKLSAgICBWZWN0b3I8Q29tcGFjdEhUTUxUb2tlbj4gdG9rZW5z
OwotCi0gICAgc3RhdGljIHZvaWQgZXhlY3V0ZSh2b2lkKiBjb250ZXh0KQotICAgIHsKLSAgICAg
ICAgVG9rZW5EZWxpdmVyeSogZGVsaXZlcnkgPSBzdGF0aWNfY2FzdDxUb2tlbkRlbGl2ZXJ5Kj4o
Y29udGV4dCk7Ci0gICAgICAgIEhUTUxEb2N1bWVudFBhcnNlciogcGFyc2VyID0gcGFyc2VyTWFw
KCkubWFpblRocmVhZFBhcnNlcnMoKS5nZXQoZGVsaXZlcnktPmlkZW50aWZpZXIpOwotICAgICAg
ICBpZiAocGFyc2VyKQotICAgICAgICAgICAgcGFyc2VyLT5kaWRSZWNlaXZlVG9rZW5zRnJvbUJh
Y2tncm91bmRQYXJzZXIoZGVsaXZlcnktPnRva2Vucyk7Ci0gICAgICAgIC8vIEZJWE1FOiBJZGVh
bGx5IHdlIHdvdWxkbid0IG5lZWQgdG8gY2FsbCBkZWxldGUgbWFudWFsbHkuIEluc3RlYWQKLSAg
ICAgICAgLy8gd2Ugd291bGQgbGlrZSBhbiBBUEkgd2hlcmUgdGhlIG1lc3NhZ2UgcXVldWUgb3du
cyB0aGUgdGFza3MgYW5kCi0gICAgICAgIC8vIHRha2VzIGNhcmUgb2YgZGVsZXRpbmcgdGhlbS4K
LSAgICAgICAgZGVsZXRlIGRlbGl2ZXJ5OwotICAgIH0KLX07Ci0KIHZvaWQgQmFja2dyb3VuZEhU
TUxQYXJzZXI6OnNlbmRUb2tlbnNUb01haW5UaHJlYWQoKQogewotICAgIFRva2VuRGVsaXZlcnkq
IGRlbGl2ZXJ5ID0gbmV3IFRva2VuRGVsaXZlcnk7Ci0gICAgZGVsaXZlcnktPmlkZW50aWZpZXIg
PSBtX3BhcnNlcklkZW50aWZlcjsKLSAgICBkZWxpdmVyeS0+dG9rZW5zLnN3YXAobV9wZW5kaW5n
VG9rZW5zKTsKLSAgICBjYWxsT25NYWluVGhyZWFkKFRva2VuRGVsaXZlcnk6OmV4ZWN1dGUsIGRl
bGl2ZXJ5KTsKLX0KLQotdm9pZCBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6Y3JlYXRlUGFydGlhbChQ
YXJzZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIEhUTUxQYXJzZXJPcHRpb25zIG9wdGlvbnMpCi17
Ci0gICAgQVNTRVJUKCFwYXJzZXJNYXAoKS5iYWNrZ3JvdW5kUGFyc2VycygpLmdldChpZGVudGlm
aWVyKSk7Ci0gICAgcGFyc2VyTWFwKCkuYmFja2dyb3VuZFBhcnNlcnMoKS5zZXQoaWRlbnRpZmll
ciwgQmFja2dyb3VuZEhUTUxQYXJzZXI6OmNyZWF0ZShvcHRpb25zLCBpZGVudGlmaWVyKSk7Ci19
Ci0KLXZvaWQgQmFja2dyb3VuZEhUTUxQYXJzZXI6OnN0b3BQYXJ0aWFsKFBhcnNlcklkZW50aWZp
ZXIgaWRlbnRpZmllcikKLXsKLSAgICBwYXJzZXJNYXAoKS5iYWNrZ3JvdW5kUGFyc2VycygpLnJl
bW92ZShpZGVudGlmaWVyKTsKLX0KLQotdm9pZCBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6YXBwZW5k
UGFydGlhbChQYXJzZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgaW5wdXQp
Ci17Ci0gICAgQVNTRVJUKCFpbnB1dC5pbXBsKCkgfHwgaW5wdXQuaW1wbCgpLT5oYXNPbmVSZWYo
KSB8fCBpbnB1dC5pc0VtcHR5KCkpOwotICAgIGlmIChCYWNrZ3JvdW5kSFRNTFBhcnNlciogcGFy
c2VyID0gcGFyc2VyTWFwKCkuYmFja2dyb3VuZFBhcnNlcnMoKS5nZXQoaWRlbnRpZmllcikpCi0g
ICAgICAgIHBhcnNlci0+YXBwZW5kKGlucHV0KTsKLX0KLQotdm9pZCBCYWNrZ3JvdW5kSFRNTFBh
cnNlcjo6Y29udGludWVQYXJ0aWFsKFBhcnNlcklkZW50aWZpZXIgaWRlbnRpZmllcikKLXsKLSAg
ICBpZiAoQmFja2dyb3VuZEhUTUxQYXJzZXIqIHBhcnNlciA9IHBhcnNlck1hcCgpLmJhY2tncm91
bmRQYXJzZXJzKCkuZ2V0KGlkZW50aWZpZXIpKQotICAgICAgICBwYXJzZXItPmNvbnRpbnVlUGFy
c2luZygpOwotfQotCi12b2lkIEJhY2tncm91bmRIVE1MUGFyc2VyOjpmaW5pc2hQYXJ0aWFsKFBh
cnNlcklkZW50aWZpZXIgaWRlbnRpZmllcikKLXsKLSAgICBpZiAoQmFja2dyb3VuZEhUTUxQYXJz
ZXIqIHBhcnNlciA9IHBhcnNlck1hcCgpLmJhY2tncm91bmRQYXJzZXJzKCkuZ2V0KGlkZW50aWZp
ZXIpKQotICAgICAgICBwYXJzZXItPmZpbmlzaCgpOworICAgIE93blB0cjxWZWN0b3I8Q29tcGFj
dEhUTUxUb2tlbj4gPiB0b2tlbnMgPSBhZG9wdFB0cihuZXcgVmVjdG9yPENvbXBhY3RIVE1MVG9r
ZW4+KTsKKyAgICB0b2tlbnMtPnN3YXAobV9wZW5kaW5nVG9rZW5zKTsKKyAgICBjYWxsT25NYWlu
VGhyZWFkKGJpbmQoJkhUTUxEb2N1bWVudFBhcnNlcjo6ZGlkUmVjZWl2ZVRva2Vuc0Zyb21CYWNr
Z3JvdW5kUGFyc2VyLCBtX3BhcnNlciwgdG9rZW5zLnJlbGVhc2UoKSkpOwogfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuaAppbmRl
eCA5NjgxNTYwNDE5MWZjYjE3NGQ5Mjg2NTc2MDMyMjBhOTBmZWYxYjM2Li44YjhjYTc1MDYxODc5
YzAzYTk4MjRlZjg0ZDc1ZTE1NTNjNmMzMzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmgKQEAgLTMzLDM1ICszMywzOCBAQAogI2lu
Y2x1ZGUgIkhUTUxQYXJzZXJPcHRpb25zLmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuLmgiCiAjaW5j
bHVkZSAiSFRNTFRva2VuaXplci5oIgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotdHlwZWRlZiBjb25zdCB2b2lkKiBQYXJzZXJJZGVudGlmaWVyOwog
Y2xhc3MgSFRNTERvY3VtZW50UGFyc2VyOwogCiBjbGFzcyBCYWNrZ3JvdW5kSFRNTFBhcnNlciB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CisgICAgc3RydWN0IENvbmZp
ZyB7CisgICAgICAgIENvbmZpZyhjb25zdCBIVE1MUGFyc2VyT3B0aW9ucyYgb3B0aW9ucywgY29u
c3QgV2Vha1B0cjxIVE1MRG9jdW1lbnRQYXJzZXI+JiBwYXJzZXIsIFBhc3NSZWZQdHI8V2Vha1Jl
ZmVyZW5jZTxCYWNrZ3JvdW5kSFRNTFBhcnNlcj4gPiByZWZlcmVuY2UpCisgICAgICAgICAgICA6
IG1fb3B0aW9ucyhvcHRpb25zKQorICAgICAgICAgICAgLCBtX3BhcnNlcihwYXJzZXIpCisgICAg
ICAgICAgICAsIG1fcmVmZXJlbmNlKHJlZmVyZW5jZSkKKyAgICAgICAgeworICAgICAgICB9CisK
KyAgICAgICAgSFRNTFBhcnNlck9wdGlvbnMgbV9vcHRpb25zOworICAgICAgICBXZWFrUHRyPEhU
TUxEb2N1bWVudFBhcnNlcj4gbV9wYXJzZXI7CisgICAgICAgIFJlZlB0cjxXZWFrUmVmZXJlbmNl
PEJhY2tncm91bmRIVE1MUGFyc2VyPiA+IG1fcmVmZXJlbmNlOworICAgIH07CisgICAgc3RhdGlj
IHZvaWQgY3JlYXRlKGNvbnN0IENvbmZpZyYpOworCiAgICAgdm9pZCBhcHBlbmQoY29uc3QgU3Ry
aW5nJik7CiAgICAgdm9pZCBjb250aW51ZVBhcnNpbmcoKTsKICAgICB2b2lkIGZpbmlzaCgpOwot
Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8QmFja2dyb3VuZEhUTUxQYXJzZXI+IGNyZWF0ZShjb25z
dCBIVE1MUGFyc2VyT3B0aW9ucyYgb3B0aW9ucywgUGFyc2VySWRlbnRpZmllciBpZGVudGlmaWVy
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBCYWNrZ3JvdW5kSFRNTFBhcnNl
cihvcHRpb25zLCBpZGVudGlmaWVyKSk7Ci0gICAgfQotCi0gICAgc3RhdGljIHZvaWQgY3JlYXRl
UGFydGlhbChQYXJzZXJJZGVudGlmaWVyLCBIVE1MUGFyc2VyT3B0aW9ucyk7Ci0gICAgc3RhdGlj
IHZvaWQgc3RvcFBhcnRpYWwoUGFyc2VySWRlbnRpZmllcik7Ci0gICAgc3RhdGljIHZvaWQgYXBw
ZW5kUGFydGlhbChQYXJzZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGlucHV0KTsKLSAgICBz
dGF0aWMgdm9pZCBjb250aW51ZVBhcnRpYWwoUGFyc2VySWRlbnRpZmllcik7Ci0gICAgc3RhdGlj
IHZvaWQgZmluaXNoUGFydGlhbChQYXJzZXJJZGVudGlmaWVyKTsKKyAgICB2b2lkIHN0b3AoKTsK
IAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBCYWNrZ3JvdW5kSFRNTFBhcnNlcihjb25zdCBIVE1M
UGFyc2VyT3B0aW9ucyYsIFBhcnNlcklkZW50aWZpZXIpOworICAgIGV4cGxpY2l0IEJhY2tncm91
bmRIVE1MUGFyc2VyKGNvbnN0IENvbmZpZyYpOwogCiAgICAgdm9pZCBwdW1wVG9rZW5pemVyKCk7
Ci0KICAgICB2b2lkIHNlbmRUb2tlbnNUb01haW5UaHJlYWQoKTsKIAogICAgIEhUTUxJbnB1dFN0
cmVhbSBtX2lucHV0OwpAQCAtNzAsMzAgKzczLDExIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lu
Rm9yZWlnbkNvbnRlbnQ7IC8vIEZJWE1FOiBXZSBuZWVkIGEgc3RhY2sgb2YgZm9yZWlnbiBjb250
ZW50IG1hcmtlcnMuCiAgICAgT3duUHRyPEhUTUxUb2tlbml6ZXI+IG1fdG9rZW5pemVyOwogICAg
IEhUTUxQYXJzZXJPcHRpb25zIG1fb3B0aW9uczsKLSAgICBQYXJzZXJJZGVudGlmaWVyIG1fcGFy
c2VySWRlbnRpZmVyOworICAgIFdlYWtQdHJGYWN0b3J5PEJhY2tncm91bmRIVE1MUGFyc2VyPiBt
X3dlYWtGYWN0b3J5OworICAgIFdlYWtQdHI8SFRNTERvY3VtZW50UGFyc2VyPiBtX3BhcnNlcjsK
ICAgICBWZWN0b3I8Q29tcGFjdEhUTUxUb2tlbj4gbV9wZW5kaW5nVG9rZW5zOwogfTsKIAotY2xh
c3MgUGFyc2VyTWFwIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFyc2VySWRlbnRpZmllciBpZGVu
dGlmaWVyRm9yUGFyc2VyKEhUTUxEb2N1bWVudFBhcnNlciogcGFyc2VyKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UGFyc2VySWRlbnRpZmllcj4ocGFyc2VyKTsKLSAg
ICB9Ci0KLSAgICB0eXBlZGVmIEhhc2hNYXA8UGFyc2VySWRlbnRpZmllciwgT3duUHRyPEJhY2tn
cm91bmRIVE1MUGFyc2VyPiA+IEJhY2tncm91bmRQYXJzZXJNYXA7Ci0gICAgdHlwZWRlZiBIYXNo
TWFwPFBhcnNlcklkZW50aWZpZXIsIEhUTUxEb2N1bWVudFBhcnNlcio+IE1haW5UaHJlYWRQYXJz
ZXJNYXA7Ci0KLSAgICBCYWNrZ3JvdW5kUGFyc2VyTWFwJiBiYWNrZ3JvdW5kUGFyc2VycygpOwot
ICAgIE1haW5UaHJlYWRQYXJzZXJNYXAmIG1haW5UaHJlYWRQYXJzZXJzKCk7Ci0KLXByaXZhdGU6
Ci0gICAgQmFja2dyb3VuZFBhcnNlck1hcCBtX2JhY2tncm91bmRQYXJzZXJzOwotICAgIE1haW5U
aHJlYWRQYXJzZXJNYXAgbV9tYWluVGhyZWFkUGFyc2VyczsKLX07Ci0KLVBhcnNlck1hcCYgcGFy
c2VyTWFwKCk7Ci0KIH0KIAogI2VuZGlmIC8vIEVOQUJMRShUSFJFQURFRF9IVE1MX1BBUlNFUikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3Bw
CmluZGV4IGFlNGI3OTAwZjcyOGY2ZDhiNzlkMzIxZDA1NGE1OTRhODVjY2QyMTguLmFlODc1YTBh
ZTQ3YjlmNDE4MzA1OWUwZGQ0OGQ0OTdhMzA1MWI2NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtODIsNiArODIsOSBAQCBI
VE1MRG9jdW1lbnRQYXJzZXI6OkhUTUxEb2N1bWVudFBhcnNlcihIVE1MRG9jdW1lbnQqIGRvY3Vt
ZW50LCBib29sIHJlcG9ydEVycm9ycwogICAgICwgbV90cmVlQnVpbGRlcihIVE1MVHJlZUJ1aWxk
ZXI6OmNyZWF0ZSh0aGlzLCBkb2N1bWVudCwgcmVwb3J0RXJyb3JzLCBtX29wdGlvbnMpKQogICAg
ICwgbV9wYXJzZXJTY2hlZHVsZXIoSFRNTFBhcnNlclNjaGVkdWxlcjo6Y3JlYXRlKHRoaXMpKQog
ICAgICwgbV94c3NBdWRpdG9yKHRoaXMpCisjaWYgRU5BQkxFKFRIUkVBREVEX0hUTUxfUEFSU0VS
KQorICAgICwgbV93ZWFrRmFjdG9yeSh0aGlzKQorI2VuZGlmCiAgICAgLCBtX2VuZFdhc0RlbGF5
ZWQoZmFsc2UpCiAgICAgLCBtX2hhdmVCYWNrZ3JvdW5kUGFyc2VyKGZhbHNlKQogICAgICwgbV9w
dW1wU2Vzc2lvbk5lc3RpbmdMZXZlbCgwKQpAQCAtOTYsNiArOTksOSBAQCBIVE1MRG9jdW1lbnRQ
YXJzZXI6OkhUTUxEb2N1bWVudFBhcnNlcihEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCwgRWxl
bWVudCogY29udAogICAgICwgbV90b2tlbml6ZXIoSFRNTFRva2VuaXplcjo6Y3JlYXRlKG1fb3B0
aW9ucykpCiAgICAgLCBtX3RyZWVCdWlsZGVyKEhUTUxUcmVlQnVpbGRlcjo6Y3JlYXRlKHRoaXMs
IGZyYWdtZW50LCBjb250ZXh0RWxlbWVudCwgc2NyaXB0aW5nUGVybWlzc2lvbiwgbV9vcHRpb25z
KSkKICAgICAsIG1feHNzQXVkaXRvcih0aGlzKQorI2lmIEVOQUJMRShUSFJFQURFRF9IVE1MX1BB
UlNFUikKKyAgICAsIG1fd2Vha0ZhY3RvcnkodGhpcykKKyNlbmRpZgogICAgICwgbV9lbmRXYXNE
ZWxheWVkKGZhbHNlKQogICAgICwgbV9oYXZlQmFja2dyb3VuZFBhcnNlcihmYWxzZSkKICAgICAs
IG1fcHVtcFNlc3Npb25OZXN0aW5nTGV2ZWwoMCkKQEAgLTI1NSw3ICsyNjEsNyBAQCBib29sIEhU
TUxEb2N1bWVudFBhcnNlcjo6Y2FuVGFrZU5leHRUb2tlbihTeW5jaHJvbm91c01vZGUgbW9kZSwg
UHVtcFNlc3Npb24mIHNlcwogCiAjaWYgRU5BQkxFKFRIUkVBREVEX0hUTUxfUEFSU0VSKQogCi12
b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6ZGlkUmVjZWl2ZVRva2Vuc0Zyb21CYWNrZ3JvdW5kUGFy
c2VyKGNvbnN0IFZlY3RvcjxDb21wYWN0SFRNTFRva2VuPiYgdG9rZW5zKQordm9pZCBIVE1MRG9j
dW1lbnRQYXJzZXI6OmRpZFJlY2VpdmVUb2tlbnNGcm9tQmFja2dyb3VuZFBhcnNlcihQYXNzT3du
UHRyPFZlY3RvcjxDb21wYWN0SFRNTFRva2VuPiA+IHRva2VucykKIHsKICAgICBBU1NFUlQoc2hv
dWxkVXNlVGhyZWFkaW5nKCkpOwogCkBAIC0yNjUsNyArMjcxLDcgQEAgdm9pZCBIVE1MRG9jdW1l
bnRQYXJzZXI6OmRpZFJlY2VpdmVUb2tlbnNGcm9tQmFja2dyb3VuZFBhcnNlcihjb25zdCBWZWN0
b3I8Q29tcGEKIAogICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLgogCi0gICAgZm9yIChWZWN0b3I8Q29tcGFjdEhUTUxUb2tlbj46OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gdG9rZW5zLmJlZ2luKCk7IGl0ICE9IHRva2Vucy5lbmQoKTsgKytpdCkgewor
ICAgIGZvciAoVmVjdG9yPENvbXBhY3RIVE1MVG9rZW4+Ojpjb25zdF9pdGVyYXRvciBpdCA9IHRv
a2Vucy0+YmVnaW4oKTsgaXQgIT0gdG9rZW5zLT5lbmQoKTsgKytpdCkgewogICAgICAgICBBU1NF
UlQoIWlzV2FpdGluZ0ZvclNjcmlwdHMoKSk7CiAKICAgICAgICAgLy8gRklYTUU6IENhbGwgbV94
c3NBdWRpdG9yLmZpbHRlclRva2VuKCppdCkuCkBAIC0yNzksMTAgKzI4NSw4IEBAIHZvaWQgSFRN
TERvY3VtZW50UGFyc2VyOjpkaWRSZWNlaXZlVG9rZW5zRnJvbUJhY2tncm91bmRQYXJzZXIoY29u
c3QgVmVjdG9yPENvbXBhCiAKICAgICAgICAgaWYgKGlzV2FpdGluZ0ZvclNjcmlwdHMoKSkgewog
ICAgICAgICAgICAgcnVuU2NyaXB0c0ZvclBhdXNlZFRyZWVCdWlsZGVyKCk7Ci0gICAgICAgICAg
ICBpZiAoIWlzV2FpdGluZ0ZvclNjcmlwdHMoKSkgewotICAgICAgICAgICAgICAgIFBhcnNlcklk
ZW50aWZpZXIgaWRlbnRpZmllciA9IFBhcnNlck1hcDo6aWRlbnRpZmllckZvclBhcnNlcih0aGlz
KTsKLSAgICAgICAgICAgICAgICBIVE1MUGFyc2VyVGhyZWFkOjpzaGFyZWQoKS0+cG9zdFRhc2so
YmluZCgmQmFja2dyb3VuZEhUTUxQYXJzZXI6OmNvbnRpbnVlUGFydGlhbCwgaWRlbnRpZmllcikp
OwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFpc1dhaXRpbmdGb3JTY3JpcHRzKCkp
CisgICAgICAgICAgICAgICAgSFRNTFBhcnNlclRocmVhZDo6c2hhcmVkKCktPnBvc3RUYXNrKGJp
bmQoJkJhY2tncm91bmRIVE1MUGFyc2VyOjpjb250aW51ZVBhcnNpbmcsIG1fYmFja2dyb3VuZFBh
cnNlcikpOwogICAgICAgICB9CiAKICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgdG9vIGFicnVw
dCBhIHdheSB0byBlbmQgcGFyc2luZyBiZWNhdXNlIHdlIG1pZ2h0CkBAIC00NDIsMjIgKzQ0Niwx
OCBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6c3RhcnRCYWNrZ3JvdW5kUGFyc2VyKCkKICAg
ICBBU1NFUlQoIW1faGF2ZUJhY2tncm91bmRQYXJzZXIpOwogICAgIG1faGF2ZUJhY2tncm91bmRQ
YXJzZXIgPSB0cnVlOwogCi0gICAgUGFyc2VySWRlbnRpZmllciBpZGVudGlmaWVyID0gUGFyc2Vy
TWFwOjppZGVudGlmaWVyRm9yUGFyc2VyKHRoaXMpOwotICAgIHBhcnNlck1hcCgpLm1haW5UaHJl
YWRQYXJzZXJzKCkuc2V0KGlkZW50aWZpZXIsIHRoaXMpOworICAgIFJlZlB0cjxXZWFrUmVmZXJl
bmNlPEJhY2tncm91bmRIVE1MUGFyc2VyPiA+IHJlZmVyZW5jZSA9IFdlYWtSZWZlcmVuY2U8QmFj
a2dyb3VuZEhUTUxQYXJzZXI+OjpjcmVhdGVVbmJvdW5kKCk7CisgICAgbV9iYWNrZ3JvdW5kUGFy
c2VyID0gV2Vha1B0cjxCYWNrZ3JvdW5kSFRNTFBhcnNlcj4ocmVmZXJlbmNlKTsKIAotICAgIEhU
TUxQYXJzZXJUaHJlYWQ6OnNoYXJlZCgpLT5wb3N0VGFzayhiaW5kKCZCYWNrZ3JvdW5kSFRNTFBh
cnNlcjo6Y3JlYXRlUGFydGlhbCwgaWRlbnRpZmllciwgbV9vcHRpb25zKSk7CisgICAgSFRNTFBh
cnNlclRocmVhZDo6c2hhcmVkKCktPnBvc3RUYXNrKGJpbmQoJkJhY2tncm91bmRIVE1MUGFyc2Vy
OjpjcmVhdGUsIEJhY2tncm91bmRIVE1MUGFyc2VyOjpDb25maWcobV9vcHRpb25zLCBtX3dlYWtG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKSwgcmVmZXJlbmNlLnJlbGVhc2UoKSkpKTsKIH0KIAogdm9p
ZCBIVE1MRG9jdW1lbnRQYXJzZXI6OnN0b3BCYWNrZ3JvdW5kUGFyc2VyKCkKIHsKICAgICBBU1NF
UlQobV9oYXZlQmFja2dyb3VuZFBhcnNlcik7CiAgICAgbV9oYXZlQmFja2dyb3VuZFBhcnNlciA9
IGZhbHNlOwotCi0gICAgUGFyc2VySWRlbnRpZmllciBpZGVudGlmaWVyID0gUGFyc2VyTWFwOjpp
ZGVudGlmaWVyRm9yUGFyc2VyKHRoaXMpOwotICAgIEhUTUxQYXJzZXJUaHJlYWQ6OnNoYXJlZCgp
LT5wb3N0VGFzayhiaW5kKCZCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6c3RvcFBhcnRpYWwsIGlkZW50
aWZpZXIpKTsKLQotICAgIHBhcnNlck1hcCgpLm1haW5UaHJlYWRQYXJzZXJzKCkuc2V0KGlkZW50
aWZpZXIsIDApOwotICAgIC8vIFdlIHdpbGwgbm90IHJlY2lldmUgYW55IG1lc3NhZ2VzIGZyb20g
dGhlIHBhcnNlciBhZnRlciB0aGlzIHBvaW50LgorICAgIEhUTUxQYXJzZXJUaHJlYWQ6OnNoYXJl
ZCgpLT5wb3N0VGFzayhiaW5kKCZCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6c3RvcCwgbV9iYWNrZ3Jv
dW5kUGFyc2VyKSk7CisgICAgbV93ZWFrRmFjdG9yeS5pbnZhbGlkYXRlQ3VycmVudEFuZEZ1dHVy
ZVdlYWtQdHJzKCk7CiB9CiAKICNlbmRpZgpAQCAtNDcxLDkgKzQ3MSw3IEBAIHZvaWQgSFRNTERv
Y3VtZW50UGFyc2VyOjphcHBlbmQoY29uc3QgU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UpCiAgICAg
aWYgKHNob3VsZFVzZVRocmVhZGluZygpKSB7CiAgICAgICAgIGlmICghbV9oYXZlQmFja2dyb3Vu
ZFBhcnNlcikKICAgICAgICAgICAgIHN0YXJ0QmFja2dyb3VuZFBhcnNlcigpOwotCi0gICAgICAg
IFBhcnNlcklkZW50aWZpZXIgaWRlbnRpZmllciA9IFBhcnNlck1hcDo6aWRlbnRpZmllckZvclBh
cnNlcih0aGlzKTsKLSAgICAgICAgSFRNTFBhcnNlclRocmVhZDo6c2hhcmVkKCktPnBvc3RUYXNr
KGJpbmQoJkJhY2tncm91bmRIVE1MUGFyc2VyOjphcHBlbmRQYXJ0aWFsLCBpZGVudGlmaWVyLCBz
b3VyY2UudG9TdHJpbmcoKS5pc29sYXRlZENvcHkoKSkpOworICAgICAgICBIVE1MUGFyc2VyVGhy
ZWFkOjpzaGFyZWQoKS0+cG9zdFRhc2soYmluZCgmQmFja2dyb3VuZEhUTUxQYXJzZXI6OmFwcGVu
ZCwgbV9iYWNrZ3JvdW5kUGFyc2VyLCBzb3VyY2UudG9TdHJpbmcoKS5pc29sYXRlZENvcHkoKSkp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCkBAIC01NjAsNyArNTU4LDcgQEAgdm9p
ZCBIVE1MRG9jdW1lbnRQYXJzZXI6OmZpbmlzaCgpCiB7CiAjaWYgRU5BQkxFKFRIUkVBREVEX0hU
TUxfUEFSU0VSKQogICAgIGlmIChzaG91bGRVc2VUaHJlYWRpbmcoKSkgewotICAgICAgICBIVE1M
UGFyc2VyVGhyZWFkOjpzaGFyZWQoKS0+cG9zdFRhc2soYmluZCgmQmFja2dyb3VuZEhUTUxQYXJz
ZXI6OmZpbmlzaFBhcnRpYWwsIFBhcnNlck1hcDo6aWRlbnRpZmllckZvclBhcnNlcih0aGlzKSkp
OworICAgICAgICBIVE1MUGFyc2VyVGhyZWFkOjpzaGFyZWQoKS0+cG9zdFRhc2soYmluZCgmQmFj
a2dyb3VuZEhUTUxQYXJzZXI6OmZpbmlzaCwgbV9iYWNrZ3JvdW5kUGFyc2VyKSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAjZW5kaWYKQEAgLTYyNiw4ICs2MjQsNyBAQCB2b2lkIEhUTUxEb2N1
bWVudFBhcnNlcjo6cmVzdW1lUGFyc2luZ0FmdGVyU2NyaXB0RXhlY3V0aW9uKCkKIAogI2lmIEVO
QUJMRShUSFJFQURFRF9IVE1MX1BBUlNFUikKICAgICBpZiAoc2hvdWxkVXNlVGhyZWFkaW5nKCkp
IHsKLSAgICAgICAgUGFyc2VySWRlbnRpZmllciBpZGVudGlmaWVyID0gUGFyc2VyTWFwOjppZGVu
dGlmaWVyRm9yUGFyc2VyKHRoaXMpOwotICAgICAgICBIVE1MUGFyc2VyVGhyZWFkOjpzaGFyZWQo
KS0+cG9zdFRhc2soYmluZCgmQmFja2dyb3VuZEhUTUxQYXJzZXI6OmNvbnRpbnVlUGFydGlhbCwg
aWRlbnRpZmllcikpOworICAgICAgICBIVE1MUGFyc2VyVGhyZWFkOjpzaGFyZWQoKS0+cG9zdFRh
c2soYmluZCgmQmFja2dyb3VuZEhUTUxQYXJzZXI6OmNvbnRpbnVlUGFyc2luZywgbV9iYWNrZ3Jv
dW5kUGFyc2VyKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmgKaW5kZXggNDFlYjcxOTVk
YjEzZjk2OTdhMjg1MGE2NWYyYTk2NzA3YmM3MDU4Mi4uZDM2NmFhM2MwYzA3NWVmM2VhZDhmYjJk
NDZjNDZkNjBmNGY5NDUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTERvY3VtZW50UGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TERvY3VtZW50UGFyc2VyLmgKQEAgLTM4LDkgKzM4LDExIEBACiAjaW5jbHVkZSAiVGltZXIuaCIK
ICNpbmNsdWRlICJYU1NBdWRpdG9yLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQmFja2dy
b3VuZEhUTUxQYXJzZXI7CiBjbGFzcyBDb21wYWN0SFRNTFRva2VuOwogY2xhc3MgRG9jdW1lbnQ7
CiBjbGFzcyBEb2N1bWVudEZyYWdtZW50OwpAQCAtNzksNyArODEsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHJlc3VtZVNjaGVkdWxlZFRhc2tzKCk7CiAKICNpZiBFTkFCTEUoVEhSRUFE
RURfSFRNTF9QQVJTRVIpCi0gICAgdm9pZCBkaWRSZWNlaXZlVG9rZW5zRnJvbUJhY2tncm91bmRQ
YXJzZXIoY29uc3QgVmVjdG9yPENvbXBhY3RIVE1MVG9rZW4+Jik7CisgICAgdm9pZCBkaWRSZWNl
aXZlVG9rZW5zRnJvbUJhY2tncm91bmRQYXJzZXIoUGFzc093blB0cjxWZWN0b3I8Q29tcGFjdEhU
TUxUb2tlbj4gPik7CiAjZW5kaWYKIAogcHJvdGVjdGVkOgpAQCAtMTY1LDYgKzE2NywxMSBAQCBw
cml2YXRlOgogICAgIEhUTUxTb3VyY2VUcmFja2VyIG1fc291cmNlVHJhY2tlcjsKICAgICBYU1NB
dWRpdG9yIG1feHNzQXVkaXRvcjsKIAorI2lmIEVOQUJMRShUSFJFQURFRF9IVE1MX1BBUlNFUikK
KyAgICBXZWFrUHRyRmFjdG9yeTxIVE1MRG9jdW1lbnRQYXJzZXI+IG1fd2Vha0ZhY3Rvcnk7Cisg
ICAgV2Vha1B0cjxCYWNrZ3JvdW5kSFRNTFBhcnNlcj4gbV9iYWNrZ3JvdW5kUGFyc2VyOworI2Vu
ZGlmCisKICAgICBib29sIG1fZW5kV2FzRGVsYXllZDsKICAgICBib29sIG1faGF2ZUJhY2tncm91
bmRQYXJzZXI7CiAgICAgdW5zaWduZWQgbV9wdW1wU2Vzc2lvbk5lc3RpbmdMZXZlbDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187339</attachid>
            <date>2013-02-08 11:16:16 -0800</date>
            <delta_ts>2013-02-08 11:32:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107190-20130208111254.patch</filename>
            <type>text/plain</type>
            <size>16169</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRiMzhkNTRmOTYxZTEwMWM1Y2QzNjNk
MDJkZDIwZmYwMTVlZTQ4MmYuLjkyMGI4NzQyMzYxNDc3Y2IwM2MyOGE2YWVhMTRiZTBjYWUyMTQx
YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTMtMDItMDggIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KKworICAgICAgICBVc2UgV2Vha1B0cnMgdG8gY29tbXVuaWNhdGUgYmV0d2Vl
biB0aGUgSFRNTERvY3VtZW50UGFyc2VyIGFuZCB0aGUgQmFja2dyb3VuZEhUTUxQYXJzZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzE5MAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0aGUgYWJp
bGl0eSB0byBjcmVhdGUgYW4gdW5ib3VuZCB3ZWFrIHJlZmVyZW5jZS4gVGhpcyBmYWNpbGl0eSBs
ZXRzCisgICAgICAgIHlvdSBzdGFydCBzZW5kaW5nIG1lc3NhZ2VzIHRvIGEgV2Vha1B0ciBvbiBh
bm90aGVyIHRocmVhZCBiZWZvcmUgdGhlCisgICAgICAgIG9iamVjdCBiYWNraW5nIHRoZSBXZWFr
UHRyIGhhcyBhY3R1YWxseSBiZWVuIGNyZWF0ZWQuCisKKyAgICAgICAgKiB3dGYvV2Vha1B0ci5o
OgorICAgICAgICAoV1RGOjpXZWFrUmVmZXJlbmNlOjpjcmVhdGVVbmJvdW5kKToKKyAgICAgICAg
KFdURjo6V2Vha1JlZmVyZW5jZTo6YmluZFRvKToKKyAgICAgICAgKFdlYWtSZWZlcmVuY2UpOgor
ICAgICAgICAoV1RGOjpXZWFrUmVmZXJlbmNlOjpXZWFrUmVmZXJlbmNlKToKKyAgICAgICAgKFdU
Rjo6V2Vha1B0cjo6V2Vha1B0cik6CisgICAgICAgIChXZWFrUHRyKToKKyAgICAgICAgKFdURjo6
V2Vha1B0ckZhY3Rvcnk6OldlYWtQdHJGYWN0b3J5KToKKyAgICAgICAgKFdlYWtQdHJGYWN0b3J5
KToKKyAgICAgICAgKFdURjo6V2Vha1B0ckZhY3Rvcnk6OnJldm9rZUFsbCk6CisKIDIwMTMtMDIt
MDcgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4
IGFuIGluY29ycmVjdCBjb21tZW50IGZyb20gcjE0MjE2MwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDE3YzYxNTlk
MTMyNzg1MDA3YTNiMDdkOWI1ZjYxOGYyNDE4NTQ5NDEuLjlmZmY3ZTJhODhiYmE1ZmNkYzE4MzI4
MTUxODNjMmVjMWJhMTYyYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMy0wMi0w
OCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFVzZSBXZWFrUHRy
cyB0byBjb21tdW5pY2F0ZSBiZXR3ZWVuIHRoZSBIVE1MRG9jdW1lbnRQYXJzZXIgYW5kIHRoZSBC
YWNrZ3JvdW5kSFRNTFBhcnNlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTA3MTkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBwYXRjaCByZXBsYWNlcyB0aGUgcGFyc2VyIG1hcCB3aXRoIFdlYWtQ
dHIuIFdlIG5vdyB1c2UgV2Vha1B0cnMgdG8KKyAgICAgICAgY29tbXVuaWNhdGUgZnJvbSB0aGUg
bWFpbiB0aHJlYWQgdG8gdGhlIGJhY2tncm91bmQgdGhyZWFkLiAoV2Ugd2VyZQorICAgICAgICBh
bHJlYWR5IHVzaW5nIFdlYWtQdHJzIHRvIGNvbW11bmljYXRlIGZyb20gdGhlIGJhY2tncm91bmQg
dGhyZWFkIHRvIHRoZQorICAgICAgICBtYWluIHRocmVhZC4pIFRoaXMgY2hhbmdlIGxldHMgdXMg
cmVtb3ZlIGEgYnVuY2ggb2YgYm9pbGVycGxhdGUgY29kZS4KKworICAgICAgICAqIGh0bWwvcGFy
c2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tncm91
bmRIVE1MUGFyc2VyOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpC
YWNrZ3JvdW5kSFRNTFBhcnNlcjo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBodG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5oOgorICAgICAgICAoV2ViQ29yZTo6
QmFja2dyb3VuZEhUTUxQYXJzZXI6OmNyZWF0ZSk6CisgICAgICAgIChCYWNrZ3JvdW5kSFRNTFBh
cnNlcik6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6ZGlkRmFpbFNwZWN1bGF0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6c3RhcnRCYWNrZ3JvdW5kUGFy
c2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6c3RvcEJhY2tncm91
bmRQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjphcHBlbmQp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpmaW5pc2gpOgorICAgICAg
ICAqIGh0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChIVE1MRG9jdW1lbnRQYXJzZXIpOgorCiAyMDEzLTAyLTA3ICBBZGFtIEJhcnRo
ICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTG9hZCBldmVudCBmaXJlcyB0b28gZWFy
bHkgd2l0aCB0aHJlYWRlZCBIVE1MIHBhcnNlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
V2Vha1B0ci5oIGIvU291cmNlL1dURi93dGYvV2Vha1B0ci5oCmluZGV4IDI4OWExMGMxOGNhZTA4
MDhlMzg5NDJkYmM5ZDIwNmIxODA2MTFkODguLmFhMTUzMThhNGI1MzQxMGNmOWJkMzAyNzEwOTg5
YWQzZTU0MjBiNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9XZWFrUHRyLmgKQEAgLTM0LDE0ICszNCwxMyBAQAogCiBuYW1lc3BhY2Ug
V1RGIHsKIAotbmFtZXNwYWNlIEludGVybmFsIHsKLQogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIGNs
YXNzIFdlYWtSZWZlcmVuY2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2Vha1JlZmVy
ZW5jZTxUPiA+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWFrUmVmZXJlbmNlPFQ+KTsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxXZWFrUmVmZXJlbmNlPFQ+ID4gY3JlYXRlKFQqIHB0cikgeyByZXR1cm4gYWRvcHRSZWYo
bmV3IFdlYWtSZWZlcmVuY2UocHRyKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWFrUmVm
ZXJlbmNlPFQ+ID4gY3JlYXRlVW5ib3VuZCgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWFrUmVm
ZXJlbmNlKCkpOyB9CiAKICAgICBUKiBnZXQoKSBjb25zdAogICAgIHsKQEAgLTU1LDcgKzU0LDE4
IEBAIHB1YmxpYzoKICAgICAgICAgbV9wdHIgPSAwOwogICAgIH0KIAorICAgIHZvaWQgYmluZFRv
KFQqIHB0cikKKyAgICB7CisgICAgICAgIEFTU0VSVCghbV9wdHIpOworI2lmbmRlZiBOREVCVUcK
KyAgICAgICAgbV9ib3VuZFRocmVhZCA9IGN1cnJlbnRUaHJlYWQoKTsKKyNlbmRpZgorICAgICAg
ICBtX3B0ciA9IHB0cjsKKyAgICB9CisKIHByaXZhdGU6CisgICAgV2Vha1JlZmVyZW5jZSgpIDog
bV9wdHIoMCkgeyB9CisKICAgICBleHBsaWNpdCBXZWFrUmVmZXJlbmNlKFQqIHB0cikKICAgICAg
ICAgOiBtX3B0cihwdHIpCiAjaWZuZGVmIE5ERUJVRwpAQCAtNzAsMTkgKzgwLDE3IEBAIHByaXZh
dGU6CiAjZW5kaWYKIH07CiAKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIGNsYXNzIFdlYWtQ
dHIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIFdlYWtQdHIo
KSB7IH0KLSAgICBXZWFrUHRyKFBhc3NSZWZQdHI8SW50ZXJuYWw6OldlYWtSZWZlcmVuY2U8VD4g
PiByZWYpIDogbV9yZWYocmVmKSB7IH0KKyAgICBXZWFrUHRyKFBhc3NSZWZQdHI8V2Vha1JlZmVy
ZW5jZTxUPiA+IHJlZikgOiBtX3JlZihyZWYpIHsgfQogCiAgICAgVCogZ2V0KCkgY29uc3QgeyBy
ZXR1cm4gbV9yZWYtPmdldCgpOyB9CiAKIHByaXZhdGU6Ci0gICAgUmVmUHRyPEludGVybmFsOjpX
ZWFrUmVmZXJlbmNlPFQ+ID4gbV9yZWY7CisgICAgUmVmUHRyPFdlYWtSZWZlcmVuY2U8VD4gPiBt
X3JlZjsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CkBAIC05MCw3ICs5OCwxNCBAQCBjbGFz
cyBXZWFrUHRyRmFjdG9yeSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2Vha1B0ckZhY3Rv
cnk8VD4pOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxp
Y2l0IFdlYWtQdHJGYWN0b3J5KFQqIHB0cikgeyBtX3JlZiA9IEludGVybmFsOjpXZWFrUmVmZXJl
bmNlPFQ+OjpjcmVhdGUocHRyKTsgfQorICAgIGV4cGxpY2l0IFdlYWtQdHJGYWN0b3J5KFQqIHB0
cikgOiBtX3JlZihXZWFrUmVmZXJlbmNlPFQ+OjpjcmVhdGUocHRyKSkgeyB9CisKKyAgICBXZWFr
UHRyRmFjdG9yeShQYXNzUmVmUHRyPFdlYWtSZWZlcmVuY2U8VD4gPiByZWYsIFQqIHB0cikKKyAg
ICAgICAgOiBtX3JlZihyZWYpCisgICAgeworICAgICAgICBtX3JlZi0+YmluZFRvKHB0cik7Cisg
ICAgfQorCiAgICAgfldlYWtQdHJGYWN0b3J5KCkgeyBtX3JlZi0+Y2xlYXIoKTsgfQogCiAgICAg
Ly8gV2Ugc2hvdWxkIGNvbnNpZGVyIGhhdmluZyBjcmVhdGVXZWFrUHRyIHBvcHVsYXRlIG1fcmVm
IHRoZSBmaXJzdCB0aW1lIGNyZWF0ZVdlYWtQdHIgaXMgY2FsbGVkLgpAQCAtMTAxLDE2ICsxMTYs
MTcgQEAgcHVibGljOgogICAgICAgICBUKiBwdHIgPSBtX3JlZi0+Z2V0KCk7CiAgICAgICAgIG1f
cmVmLT5jbGVhcigpOwogICAgICAgICAvLyBXZSBjcmVhdGUgYSBuZXcgV2Vha1JlZmVyZW5jZSBz
byB0aGF0IGZ1dHVyZSBjYWxscyB0byBjcmVhdGVXZWFrUHRyKCkgY3JlYXRlIG5vbnplcm8gV2Vh
a1B0cnMuCi0gICAgICAgIG1fcmVmID0gSW50ZXJuYWw6OldlYWtSZWZlcmVuY2U8VD46OmNyZWF0
ZShwdHIpOworICAgICAgICBtX3JlZiA9IFdlYWtSZWZlcmVuY2U8VD46OmNyZWF0ZShwdHIpOwog
ICAgIH0KIAogcHJpdmF0ZToKLSAgICBSZWZQdHI8SW50ZXJuYWw6OldlYWtSZWZlcmVuY2U8VD4g
PiBtX3JlZjsKKyAgICBSZWZQdHI8V2Vha1JlZmVyZW5jZTxUPiA+IG1fcmVmOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6V2Vha1B0cjsKIHVzaW5nIFdURjo6V2Vha1B0
ckZhY3Rvcnk7Cit1c2luZyBXVEY6OldlYWtSZWZlcmVuY2U7CiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwCmluZGV4
IGZlOGUzMzFiYjNjZmM4M2FlMzQ0OWUzYTBlZWIwYzg1NTQwZDI1MWEuLmMwNjc2YjUwOTU5NmI5
ZTVlN2JmOWE0YmJhYWRhOTlhMGQxYzE1NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAKQEAgLTU4LDIyICs1OCw5IEBAIHN0
YXRpYyB2b2lkIGNoZWNrVGhhdFRva2Vuc0FyZVNhZmVUb1NlbmRUb0Fub3RoZXJUaHJlYWQoY29u
c3QgQ29tcGFjdEhUTUxUb2tlblN0CiAvLyBGSVhNRTogVHVuZSB0aGlzIGNvbnN0YW50IGJhc2Vk
IG9uIGEgYmVuY2htYXJrLiBUaGUgY3VycmVudCB2YWx1ZSB3YXMgY2hvb3NlbiBhcmJpdHJhcmls
eS4KIHN0YXRpYyBjb25zdCBzaXplX3QgcGVuZGluZ1Rva2VuTGltaXQgPSA0MDAwOwogCi1QYXJz
ZXJNYXAmIHBhcnNlck1hcCgpCi17Ci0gICAgLy8gVGhpcyBpbml0aWFsaXphdGlvbiBhc3N1bWVz
IHRoYXQgdGhpcyB3aWxsIGJlIGluaXRpYWxpemUgb24gdGhlIG1haW4gdGhyZWFkIGJlZm9yZQot
ICAgIC8vIGFueSBwYXJzZXIgdGhyZWFkIGlzIHN0YXJ0ZWQuCi0gICAgc3RhdGljIFBhcnNlck1h
cCogc1BhcnNlck1hcCA9IG5ldyBQYXJzZXJNYXA7Ci0gICAgcmV0dXJuICpzUGFyc2VyTWFwOwot
fQotCi1QYXJzZXJNYXA6OkJhY2tncm91bmRQYXJzZXJNYXAmIFBhcnNlck1hcDo6YmFja2dyb3Vu
ZFBhcnNlcnMoKQotewotICAgIEFTU0VSVChIVE1MUGFyc2VyVGhyZWFkOjpzaGFyZWQoKS0+dGhy
ZWFkSWQoKSA9PSBjdXJyZW50VGhyZWFkKCkpOwotICAgIHJldHVybiBtX2JhY2tncm91bmRQYXJz
ZXJzOwotfQotCi1CYWNrZ3JvdW5kSFRNTFBhcnNlcjo6QmFja2dyb3VuZEhUTUxQYXJzZXIoY29u
c3QgSFRNTFBhcnNlck9wdGlvbnMmIG9wdGlvbnMsIGNvbnN0IFdlYWtQdHI8SFRNTERvY3VtZW50
UGFyc2VyPiYgcGFyc2VyLCBQYXNzT3duUHRyPFhTU0F1ZGl0b3I+IHhzc0F1ZGl0b3IpCitCYWNr
Z3JvdW5kSFRNTFBhcnNlcjo6QmFja2dyb3VuZEhUTUxQYXJzZXIoUGFzc1JlZlB0cjxXZWFrUmVm
ZXJlbmNlPEJhY2tncm91bmRIVE1MUGFyc2VyPiA+IHJlZmVyZW5jZSwgY29uc3QgSFRNTFBhcnNl
ck9wdGlvbnMmIG9wdGlvbnMsIGNvbnN0IFdlYWtQdHI8SFRNTERvY3VtZW50UGFyc2VyPiYgcGFy
c2VyLCBQYXNzT3duUHRyPFhTU0F1ZGl0b3I+IHhzc0F1ZGl0b3IpCiAgICAgOiBtX2luRm9yZWln
bkNvbnRlbnQoZmFsc2UpCisgICAgLCBtX3dlYWtGYWN0b3J5KHJlZmVyZW5jZSwgdGhpcykKICAg
ICAsIG1fdG9rZW4oYWRvcHRQdHIobmV3IEhUTUxUb2tlbikpCiAgICAgLCBtX3Rva2VuaXplcihI
VE1MVG9rZW5pemVyOjpjcmVhdGUob3B0aW9ucykpCiAgICAgLCBtX29wdGlvbnMob3B0aW9ucykK
QEAgLTEwNCw2ICs5MSwxMSBAQCB2b2lkIEJhY2tncm91bmRIVE1MUGFyc2VyOjpmaW5pc2goKQog
ICAgIHB1bXBUb2tlbml6ZXIoKTsKIH0KIAordm9pZCBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6c3Rv
cCgpCit7CisgICAgZGVsZXRlIHRoaXM7Cit9CisKIHZvaWQgQmFja2dyb3VuZEhUTUxQYXJzZXI6
Om1hcmtFbmRPZkZpbGUoKQogewogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCB1c2UgSW5wdXRT
dHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcgpAQCAtMTk0LDM2ICsxODYsNiBAQCB2
b2lkIEJhY2tncm91bmRIVE1MUGFyc2VyOjpzZW5kVG9rZW5zVG9NYWluVGhyZWFkKCkKICAgICBt
X3BlbmRpbmdUb2tlbnMgPSBhZG9wdFB0cihuZXcgQ29tcGFjdEhUTUxUb2tlblN0cmVhbSk7CiB9
CiAKLXZvaWQgQmFja2dyb3VuZEhUTUxQYXJzZXI6OmNyZWF0ZVBhcnRpYWwoUGFyc2VySWRlbnRp
ZmllciBpZGVudGlmaWVyLCBjb25zdCBIVE1MUGFyc2VyT3B0aW9ucyYgb3B0aW9ucywgY29uc3Qg
V2Vha1B0cjxIVE1MRG9jdW1lbnRQYXJzZXI+JiBwYXJzZXIsIFBhc3NPd25QdHI8WFNTQXVkaXRv
cj4geHNzQXVkaXRvcikKLXsKLSAgICBBU1NFUlQoIXBhcnNlck1hcCgpLmJhY2tncm91bmRQYXJz
ZXJzKCkuZ2V0KGlkZW50aWZpZXIpKTsKLSAgICBwYXJzZXJNYXAoKS5iYWNrZ3JvdW5kUGFyc2Vy
cygpLnNldChpZGVudGlmaWVyLCBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6Y3JlYXRlKG9wdGlvbnMs
IHBhcnNlciwgeHNzQXVkaXRvcikpOwotfQotCi12b2lkIEJhY2tncm91bmRIVE1MUGFyc2VyOjpz
dG9wUGFydGlhbChQYXJzZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCi17Ci0gICAgcGFyc2VyTWFw
KCkuYmFja2dyb3VuZFBhcnNlcnMoKS5yZW1vdmUoaWRlbnRpZmllcik7Ci19Ci0KLXZvaWQgQmFj
a2dyb3VuZEhUTUxQYXJzZXI6OmFwcGVuZFBhcnRpYWwoUGFyc2VySWRlbnRpZmllciBpZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIGlucHV0KQotewotICAgIEFTU0VSVCghaW5wdXQuaW1wbCgpIHx8
IGlucHV0LmltcGwoKS0+aGFzT25lUmVmKCkgfHwgaW5wdXQuaXNFbXB0eSgpKTsKLSAgICBpZiAo
QmFja2dyb3VuZEhUTUxQYXJzZXIqIHBhcnNlciA9IHBhcnNlck1hcCgpLmJhY2tncm91bmRQYXJz
ZXJzKCkuZ2V0KGlkZW50aWZpZXIpKQotICAgICAgICBwYXJzZXItPmFwcGVuZChpbnB1dCk7Ci19
Ci0KLXZvaWQgQmFja2dyb3VuZEhUTUxQYXJzZXI6OnJlc3VtZUZyb21QYXJ0aWFsKFBhcnNlcklk
ZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgV2Vha1B0cjxIVE1MRG9jdW1lbnRQYXJzZXI+JiBw
YXJzZXIsIFBhc3NPd25QdHI8SFRNTFRva2VuPiB0b2tlbiwgUGFzc093blB0cjxIVE1MVG9rZW5p
emVyPiB0b2tlbml6ZXIsIEhUTUxJbnB1dENoZWNrcG9pbnQgY2hlY2twb2ludCkKLXsKLSAgICBp
ZiAoQmFja2dyb3VuZEhUTUxQYXJzZXIqIGJhY2tncm91bmRQYXJzZXIgPSBwYXJzZXJNYXAoKS5i
YWNrZ3JvdW5kUGFyc2VycygpLmdldChpZGVudGlmaWVyKSkKLSAgICAgICAgYmFja2dyb3VuZFBh
cnNlci0+cmVzdW1lRnJvbShwYXJzZXIsIHRva2VuLCB0b2tlbml6ZXIsIGNoZWNrcG9pbnQpOwot
fQotCi12b2lkIEJhY2tncm91bmRIVE1MUGFyc2VyOjpmaW5pc2hQYXJ0aWFsKFBhcnNlcklkZW50
aWZpZXIgaWRlbnRpZmllcikKLXsKLSAgICBpZiAoQmFja2dyb3VuZEhUTUxQYXJzZXIqIHBhcnNl
ciA9IHBhcnNlck1hcCgpLmJhY2tncm91bmRQYXJzZXJzKCkuZ2V0KGlkZW50aWZpZXIpKQotICAg
ICAgICBwYXJzZXItPmZpbmlzaCgpOwotfQotCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoVEhSRUFE
RURfSFRNTF9QQVJTRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9C
YWNrZ3JvdW5kSFRNTFBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dy
b3VuZEhUTUxQYXJzZXIuaAppbmRleCA2ZDBkOGUzNjlhM2M4NTU3NGEzNGE1YzJhZmU5NWJkY2E1
MDVhZGZmLi42YTM5MzEwYjQwMTQ1ZGRjYTU3YzBmOTkzN2E5MTA5OWZjMDA5NjI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmgKQEAg
LTQ3LDIzICs0NywxOSBAQCBjbGFzcyBYU1NBdWRpdG9yOwogY2xhc3MgQmFja2dyb3VuZEhUTUxQ
YXJzZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHZvaWQg
YXBwZW5kKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgcmVzdW1lRnJvbShjb25zdCBXZWFrUHRy
PEhUTUxEb2N1bWVudFBhcnNlcj4mLCBQYXNzT3duUHRyPEhUTUxUb2tlbj4sIFBhc3NPd25QdHI8
SFRNTFRva2VuaXplcj4sIEhUTUxJbnB1dENoZWNrcG9pbnQpOwotICAgIHZvaWQgZmluaXNoKCk7
Ci0KLSAgICBzdGF0aWMgUGFzc093blB0cjxCYWNrZ3JvdW5kSFRNTFBhcnNlcj4gY3JlYXRlKGNv
bnN0IEhUTUxQYXJzZXJPcHRpb25zJiBvcHRpb25zLCBjb25zdCBXZWFrUHRyPEhUTUxEb2N1bWVu
dFBhcnNlcj4mIHBhcnNlciwgUGFzc093blB0cjxYU1NBdWRpdG9yPiB4c3NBdWRpdG9yKQorICAg
IHN0YXRpYyB2b2lkIGNyZWF0ZShQYXNzUmVmUHRyPFdlYWtSZWZlcmVuY2U8QmFja2dyb3VuZEhU
TUxQYXJzZXI+ID4gcmVmZXJlbmNlLCBjb25zdCBIVE1MUGFyc2VyT3B0aW9ucyYgb3B0aW9ucywg
Y29uc3QgV2Vha1B0cjxIVE1MRG9jdW1lbnRQYXJzZXI+JiBwYXJzZXIsIFBhc3NPd25QdHI8WFNT
QXVkaXRvcj4geHNzQXVkaXRvcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcg
QmFja2dyb3VuZEhUTUxQYXJzZXIob3B0aW9ucywgcGFyc2VyLCB4c3NBdWRpdG9yKSk7CisgICAg
ICAgIG5ldyBCYWNrZ3JvdW5kSFRNTFBhcnNlcihyZWZlcmVuY2UsIG9wdGlvbnMsIHBhcnNlciwg
eHNzQXVkaXRvcik7CisgICAgICAgIC8vIENhbGxlciBtdXN0IGZyZWUgYnkgY2FsbGluZyBzdG9w
KCkuCiAgICAgfQogCi0gICAgc3RhdGljIHZvaWQgY3JlYXRlUGFydGlhbChQYXJzZXJJZGVudGlm
aWVyLCBjb25zdCBIVE1MUGFyc2VyT3B0aW9ucyYsIGNvbnN0IFdlYWtQdHI8SFRNTERvY3VtZW50
UGFyc2VyPiYsIFBhc3NPd25QdHI8WFNTQXVkaXRvcj4pOwotICAgIHN0YXRpYyB2b2lkIHN0b3BQ
YXJ0aWFsKFBhcnNlcklkZW50aWZpZXIpOwotICAgIHN0YXRpYyB2b2lkIGFwcGVuZFBhcnRpYWwo
UGFyc2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBpbnB1dCk7Ci0gICAgc3RhdGljIHZvaWQg
cmVzdW1lRnJvbVBhcnRpYWwoUGFyc2VySWRlbnRpZmllciwgY29uc3QgV2Vha1B0cjxIVE1MRG9j
dW1lbnRQYXJzZXI+JiwgUGFzc093blB0cjxIVE1MVG9rZW4+LCBQYXNzT3duUHRyPEhUTUxUb2tl
bml6ZXI+LCBIVE1MSW5wdXRDaGVja3BvaW50KTsKLSAgICBzdGF0aWMgdm9pZCBmaW5pc2hQYXJ0
aWFsKFBhcnNlcklkZW50aWZpZXIpOworICAgIHZvaWQgYXBwZW5kKGNvbnN0IFN0cmluZyYpOwor
ICAgIHZvaWQgcmVzdW1lRnJvbShjb25zdCBXZWFrUHRyPEhUTUxEb2N1bWVudFBhcnNlcj4mLCBQ
YXNzT3duUHRyPEhUTUxUb2tlbj4sIFBhc3NPd25QdHI8SFRNTFRva2VuaXplcj4sIEhUTUxJbnB1
dENoZWNrcG9pbnQpOworICAgIHZvaWQgZmluaXNoKCk7CisgICAgdm9pZCBzdG9wKCk7CiAKIHBy
aXZhdGU6Ci0gICAgQmFja2dyb3VuZEhUTUxQYXJzZXIoY29uc3QgSFRNTFBhcnNlck9wdGlvbnMm
LCBjb25zdCBXZWFrUHRyPEhUTUxEb2N1bWVudFBhcnNlcj4mLCBQYXNzT3duUHRyPFhTU0F1ZGl0
b3I+KTsKKyAgICBCYWNrZ3JvdW5kSFRNTFBhcnNlcihQYXNzUmVmUHRyPFdlYWtSZWZlcmVuY2U8
QmFja2dyb3VuZEhUTUxQYXJzZXI+ID4sIGNvbnN0IEhUTUxQYXJzZXJPcHRpb25zJiwgY29uc3Qg
V2Vha1B0cjxIVE1MRG9jdW1lbnRQYXJzZXI+JiwgUGFzc093blB0cjxYU1NBdWRpdG9yPik7CiAK
ICAgICB2b2lkIG1hcmtFbmRPZkZpbGUoKTsKICAgICB2b2lkIHB1bXBUb2tlbml6ZXIoKTsKQEAg
LTcyLDYgKzY4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNlbmRUb2tlbnNUb01haW5UaHJlYWQo
KTsKIAogICAgIGJvb2wgbV9pbkZvcmVpZ25Db250ZW50OyAvLyBGSVhNRTogV2UgbmVlZCBhIHN0
YWNrIG9mIGZvcmVpZ24gY29udGVudCBtYXJrZXJzLgorICAgIFdlYWtQdHJGYWN0b3J5PEJhY2tn
cm91bmRIVE1MUGFyc2VyPiBtX3dlYWtGYWN0b3J5OwogICAgIEJhY2tncm91bmRIVE1MSW5wdXRT
dHJlYW0gbV9pbnB1dDsKICAgICBIVE1MU291cmNlVHJhY2tlciBtX3NvdXJjZVRyYWNrZXI7CiAg
ICAgT3duUHRyPEhUTUxUb2tlbj4gbV90b2tlbjsKQEAgLTgyLDIzICs3OSw2IEBAIHByaXZhdGU6
CiAgICAgT3duUHRyPFhTU0F1ZGl0b3I+IG1feHNzQXVkaXRvcjsKIH07CiAKLWNsYXNzIFBhcnNl
ck1hcCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhcnNlcklkZW50aWZpZXIgaWRlbnRpZmllckZv
clBhcnNlcihIVE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNlcikKLSAgICB7Ci0gICAgICAgIHJldHVy
biByZWludGVycHJldF9jYXN0PFBhcnNlcklkZW50aWZpZXI+KHBhcnNlcik7Ci0gICAgfQotCi0g
ICAgdHlwZWRlZiBIYXNoTWFwPFBhcnNlcklkZW50aWZpZXIsIE93blB0cjxCYWNrZ3JvdW5kSFRN
TFBhcnNlcj4gPiBCYWNrZ3JvdW5kUGFyc2VyTWFwOwotCi0gICAgQmFja2dyb3VuZFBhcnNlck1h
cCYgYmFja2dyb3VuZFBhcnNlcnMoKTsKLQotcHJpdmF0ZToKLSAgICBCYWNrZ3JvdW5kUGFyc2Vy
TWFwIG1fYmFja2dyb3VuZFBhcnNlcnM7Ci19OwotCi1QYXJzZXJNYXAmIHBhcnNlck1hcCgpOwot
CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoVEhSRUFERURfSFRNTF9QQVJTRVIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCBmYTIw
ODkyMWFkNTNhZmMxNWI3ZGM5M2JhM2NiZTcxMzU2ODA3YWExLi4zN2EzZDc3YjBlM2Y5NWE5ODU0
MjQ1NDc1NjEwMDgxODkwMWVlMTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKQEAgLTMwMSw5ICszMDEsOCBAQCB2b2lkIEhUTUxE
b2N1bWVudFBhcnNlcjo6ZGlkRmFpbFNwZWN1bGF0aW9uKFBhc3NPd25QdHI8SFRNTFRva2VuPiB0
b2tlbiwgUGFzc093bgogICAgIG1fd2Vha0ZhY3RvcnkucmV2b2tlQWxsKCk7CiAgICAgbV9zcGVj
dWxhdGlvbnMuY2xlYXIoKTsKIAotICAgIFBhcnNlcklkZW50aWZpZXIgaWRlbnRpZmllciA9IFBh
cnNlck1hcDo6aWRlbnRpZmllckZvclBhcnNlcih0aGlzKTsKLSAgICBIVE1MUGFyc2VyVGhyZWFk
OjpzaGFyZWQoKS0+cG9zdFRhc2soYmluZCgmQmFja2dyb3VuZEhUTUxQYXJzZXI6OnJlc3VtZUZy
b21QYXJ0aWFsLAotICAgICAgICBpZGVudGlmaWVyLCBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKSwgdG9rZW4sIHRva2VuaXplciwgbV9jdXJyZW50Q2h1bmstPmNoZWNrcG9pbnQpKTsKKyAg
ICBIVE1MUGFyc2VyVGhyZWFkOjpzaGFyZWQoKS0+cG9zdFRhc2soYmluZCgmQmFja2dyb3VuZEhU
TUxQYXJzZXI6OnJlc3VtZUZyb20sCisgICAgICAgIG1fYmFja2dyb3VuZFBhcnNlciwgbV93ZWFr
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCksIHRva2VuLCB0b2tlbml6ZXIsIG1fY3VycmVudENodW5r
LT5jaGVja3BvaW50KSk7CiB9CiAKIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpwcm9jZXNzUGFy
c2VkQ2h1bmtGcm9tQmFja2dyb3VuZFBhcnNlcihQYXNzT3duUHRyPFBhcnNlZENodW5rPiBjaHVu
aykKQEAgLTUxNCwxMiArNTEzLDE0IEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpzdGFydEJh
Y2tncm91bmRQYXJzZXIoKQogICAgIEFTU0VSVCghbV9oYXZlQmFja2dyb3VuZFBhcnNlcik7CiAg
ICAgbV9oYXZlQmFja2dyb3VuZFBhcnNlciA9IHRydWU7CiAKKyAgICBSZWZQdHI8V2Vha1JlZmVy
ZW5jZTxCYWNrZ3JvdW5kSFRNTFBhcnNlcj4gPiByZWZlcmVuY2UgPSBXZWFrUmVmZXJlbmNlPEJh
Y2tncm91bmRIVE1MUGFyc2VyPjo6Y3JlYXRlVW5ib3VuZCgpOworICAgIG1fYmFja2dyb3VuZFBh
cnNlciA9IFdlYWtQdHI8QmFja2dyb3VuZEhUTUxQYXJzZXI+KHJlZmVyZW5jZSk7CisKICAgICBX
ZWFrUHRyPEhUTUxEb2N1bWVudFBhcnNlcj4gcGFyc2VyID0gbV93ZWFrRmFjdG9yeS5jcmVhdGVX
ZWFrUHRyKCk7CiAgICAgT3duUHRyPFhTU0F1ZGl0b3I+IHhzc0F1ZGl0b3IgPSBhZG9wdFB0cihu
ZXcgWFNTQXVkaXRvcik7CiAgICAgeHNzQXVkaXRvci0+aW5pdChkb2N1bWVudCgpKTsKICAgICBB
U1NFUlQoeHNzQXVkaXRvci0+aXNTYWZlVG9TZW5kVG9Bbm90aGVyVGhyZWFkKCkpOwotICAgIFBh
cnNlcklkZW50aWZpZXIgaWRlbnRpZmllciA9IFBhcnNlck1hcDo6aWRlbnRpZmllckZvclBhcnNl
cih0aGlzKTsKLSAgICBIVE1MUGFyc2VyVGhyZWFkOjpzaGFyZWQoKS0+cG9zdFRhc2soYmluZCgm
QmFja2dyb3VuZEhUTUxQYXJzZXI6OmNyZWF0ZVBhcnRpYWwsIGlkZW50aWZpZXIsIG1fb3B0aW9u
cywgcGFyc2VyLCB4c3NBdWRpdG9yLnJlbGVhc2UoKSkpOworICAgIEhUTUxQYXJzZXJUaHJlYWQ6
OnNoYXJlZCgpLT5wb3N0VGFzayhiaW5kKCZCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6Y3JlYXRlLCBy
ZWZlcmVuY2UucmVsZWFzZSgpLCBtX29wdGlvbnMsIHBhcnNlciwgeHNzQXVkaXRvci5yZWxlYXNl
KCkpKTsKIH0KIAogdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OnN0b3BCYWNrZ3JvdW5kUGFyc2Vy
KCkKQEAgLTUyOCw4ICs1MjksNyBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6c3RvcEJhY2tn
cm91bmRQYXJzZXIoKQogICAgIEFTU0VSVChtX2hhdmVCYWNrZ3JvdW5kUGFyc2VyKTsKICAgICBt
X2hhdmVCYWNrZ3JvdW5kUGFyc2VyID0gZmFsc2U7CiAKLSAgICBQYXJzZXJJZGVudGlmaWVyIGlk
ZW50aWZpZXIgPSBQYXJzZXJNYXA6OmlkZW50aWZpZXJGb3JQYXJzZXIodGhpcyk7Ci0gICAgSFRN
TFBhcnNlclRocmVhZDo6c2hhcmVkKCktPnBvc3RUYXNrKGJpbmQoJkJhY2tncm91bmRIVE1MUGFy
c2VyOjpzdG9wUGFydGlhbCwgaWRlbnRpZmllcikpOworICAgIEhUTUxQYXJzZXJUaHJlYWQ6OnNo
YXJlZCgpLT5wb3N0VGFzayhiaW5kKCZCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6c3RvcCwgbV9iYWNr
Z3JvdW5kUGFyc2VyKSk7CiAgICAgbV93ZWFrRmFjdG9yeS5yZXZva2VBbGwoKTsKIH0KIApAQCAt
NTQ1LDkgKzU0NSw4IEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjphcHBlbmQoY29uc3QgU2Vn
bWVudGVkU3RyaW5nJiBzb3VyY2UpCiAgICAgICAgIGlmICghbV9oYXZlQmFja2dyb3VuZFBhcnNl
cikKICAgICAgICAgICAgIHN0YXJ0QmFja2dyb3VuZFBhcnNlcigpOwogCi0gICAgICAgIFBhcnNl
cklkZW50aWZpZXIgaWRlbnRpZmllciA9IFBhcnNlck1hcDo6aWRlbnRpZmllckZvclBhcnNlcih0
aGlzKTsKLSAgICAgICAgY29uc3QgQ2xvc3VyZSYgYXBwZW5kUGFydGlhbCA9IGJpbmQoJkJhY2tn
cm91bmRIVE1MUGFyc2VyOjphcHBlbmRQYXJ0aWFsLCBpZGVudGlmaWVyLCBzb3VyY2UudG9TdHJp
bmcoKS5pc29sYXRlZENvcHkoKSk7Ci0gICAgICAgIEhUTUxQYXJzZXJUaHJlYWQ6OnNoYXJlZCgp
LT5wb3N0VGFzayhhcHBlbmRQYXJ0aWFsKTsKKyAgICAgICAgSFRNTFBhcnNlclRocmVhZDo6c2hh
cmVkKCktPnBvc3RUYXNrKGJpbmQoCisgICAgICAgICAgICAmQmFja2dyb3VuZEhUTUxQYXJzZXI6
OmFwcGVuZCwgbV9iYWNrZ3JvdW5kUGFyc2VyLCBzb3VyY2UudG9TdHJpbmcoKS5pc29sYXRlZENv
cHkoKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCkBAIC02NDcsNyArNjQ2LDcg
QEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OmZpbmlzaCgpCiAgICAgLy8gYSBiYWNrZ3JvdW5k
IHBhcnNlci4gSW4gdGhvc2UgY2FzZXMsIHdlIGlnbm9yZSBzaG91bGRVc2VUaHJlYWRpbmcoKQog
ICAgIC8vIGFuZCBmYWxsIHRocm91Z2ggdG8gdGhlIG5vbi10aHJlYWRpbmcgY2FzZS4KICAgICBp
ZiAobV9oYXZlQmFja2dyb3VuZFBhcnNlcikgewotICAgICAgICBIVE1MUGFyc2VyVGhyZWFkOjpz
aGFyZWQoKS0+cG9zdFRhc2soYmluZCgmQmFja2dyb3VuZEhUTUxQYXJzZXI6OmZpbmlzaFBhcnRp
YWwsIFBhcnNlck1hcDo6aWRlbnRpZmllckZvclBhcnNlcih0aGlzKSkpOworICAgICAgICBIVE1M
UGFyc2VyVGhyZWFkOjpzaGFyZWQoKS0+cG9zdFRhc2soYmluZCgmQmFja2dyb3VuZEhUTUxQYXJz
ZXI6OmZpbmlzaCwgbV9iYWNrZ3JvdW5kUGFyc2VyKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgaWYgKHNob3VsZFVzZVRocmVhZGluZygpICYmICF3YXNDcmVhdGVkQnlTY3JpcHQoKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFy
c2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaApp
bmRleCA5NTcyMmYxYjhmOTU3MGE1NmY3NWE0ODA4MmVjZmY4NGZiYTk0NDc2Li43YzQyNzg1MjVk
ZTkyYzA1OTEyYmE0MmM0NDhiNzM1MGY2YTBmODc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaApAQCAtNDYsNiArNDYsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEJhY2tncm91bmRIVE1MUGFyc2VyOwogY2xhc3MgQ29t
cGFjdEhUTUxUb2tlbjsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRG9jdW1lbnRGcmFnbWVudDsK
QEAgLTE4Miw2ICsxODMsNyBAQCBwcml2YXRlOgogICAgIE93blB0cjxQYXJzZWRDaHVuaz4gbV9j
dXJyZW50Q2h1bms7CiAgICAgRGVxdWU8T3duUHRyPFBhcnNlZENodW5rPiA+IG1fc3BlY3VsYXRp
b25zOwogICAgIFdlYWtQdHJGYWN0b3J5PEhUTUxEb2N1bWVudFBhcnNlcj4gbV93ZWFrRmFjdG9y
eTsKKyAgICBXZWFrUHRyPEJhY2tncm91bmRIVE1MUGFyc2VyPiBtX2JhY2tncm91bmRQYXJzZXI7
CiAjZW5kaWYKIAogICAgIGJvb2wgbV9lbmRXYXNEZWxheWVkOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>