<?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>71306</bug_id>
          
          <creation_ts>2011-11-01 11:07:40 -0700</creation_ts>
          <short_desc>De-virtualize JSObject::getPropertyNames</short_desc>
          <delta_ts>2011-11-03 18:34:19 -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>JavaScriptCore</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>
          
          <blocked>70960</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>abarth</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>494035</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-11-01 11:07:40 -0700</bug_when>
    <thetext>We&apos;re de-virtualizing JSObject. getPropertyNames is a virtual method in JSObject.  Thus, we need to de-virtualize getPropertyNames.  We&apos;ll put it in the MethodTable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494266</commentid>
    <comment_count>1</comment_count>
      <attachid>113249</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-11-01 16:12:55 -0700</bug_when>
    <thetext>Created attachment 113249
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494305</commentid>
    <comment_count>2</comment_count>
      <attachid>113249</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-11-01 16:46:43 -0700</bug_when>
    <thetext>Comment on attachment 113249
Patch

Attachment 113249 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10257092</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495978</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-11-03 18:34:19 -0700</bug_when>
    <thetext>Committed r99256: &lt;http://trac.webkit.org/changeset/99256&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113249</attachid>
            <date>2011-11-01 16:12:55 -0700</date>
            <delta_ts>2011-11-01 16:46:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71306-20111101161254.patch</filename>
            <type>text/plain</type>
            <size>29283</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg5NzUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDhm
MjAwMTExNzUzNmNmMWFiMDY0ZGU2OTYwNTQ1OWE2YmU4NGI5OTQuLmQ4N2FiNTllNzhiYWU5OTE3
MTA1NmEzMzNhZTFjOWNkYmIyNWVlY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM4IEBACisyMDExLTExLTAxICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CisKKyAgICAgICAgRGUtdmlydHVhbGl6ZSBKU09iamVjdDo6Z2V0UHJvcGVydHlOYW1l
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEzMDYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBn
ZXRQcm9wZXJ0eU5hbWVzIHRvIHRoZSBNZXRob2RUYWJsZSwgY2hhbmdlZCBhbGwgdGhlIHZpcnR1
YWwgCisgICAgICAgIGltcGxlbWVudGF0aW9ucyBvZiBnZXRQcm9wZXJ0eU5hbWVzIHRvIHN0YXRp
YyBvbmVzLCBhbmQgcmVwbGFjZWQgCisgICAgICAgIGFsbCBjYWxsIHNpdGVzIHdpdGggY29ycmVz
cG9uZGluZyBsb29rdXBzIGluIHRoZSBNZXRob2RUYWJsZS4KKworICAgICAgICAqIEFQSS9KU09i
amVjdFJlZi5jcHA6CisgICAgICAgIChKU09iamVjdENvcHlQcm9wZXJ0eU5hbWVzKToKKyAgICAg
ICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9q
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZjoKKyAgICAgICAgKiBkZWJ1Z2dlci9E
ZWJ1Z2dlckFjdGl2YXRpb24uY3BwOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckFjdGl2YXRpb246
OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIHJ1bnRpbWUvQ2xhc3NJbmZvLmg6Cisg
ICAgICAgICogcnVudGltZS9KU0NlbGwuY3BwOgorICAgICAgICAoSlNDOjpKU0NlbGw6OmdldFBy
b3BlcnR5TmFtZXMpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAgICAgICogcnVu
dGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXRQcm9wZXJ0eU5h
bWVzKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTUHJvcGVydHlO
YW1lSXRlcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpj
cmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvU2NvcGVDaGFpbi5jcHA6CisgICAgICAgIChKU0M6
OlNjb3BlQ2hhaW5Ob2RlOjpwcmludCk6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuY3Bw
OiBSZW5hbWVkIFN0cnVjdHVyZTo6Z2V0UHJvcGVydHlOYW1lcyBiZWNhdXNlIGl0IAorICAgICAg
ICBjb25mbGljdGVkIHdpdGggdGhlIGR1bW15IHZlcnNpb24gaW4gSlNDZWxsLCBhbmdlcmluZyB0
aGUgY29tcGlsZXIgd2hlbiBpdCAKKyAgICAgICAgdHJpZWQgdG8gdXNlIHRoZSBvbmUgZGVmaW5l
ZCBpbiBTdHJ1Y3R1cmUgaW4gdGhlIE1ldGhvZFRhYmxlLgorICAgICAgICAoSlNDOjpTdHJ1Y3R1
cmU6OmdldFByb3BlcnR5TmFtZXNGcm9tU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1N0
cnVjdHVyZS5oOgorCiAyMDExLTEwLTMxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+
CiAKICAgICAgICAgVGhlIEdDIHNob3VsZCBiZSBwYXJhbGxlbApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VM
b2cKaW5kZXggN2QyNDkyNGVlMWE5OGViZjM2ODgzYzZlM2M4MDNiZWNjMDNhMjk5Zi4uYjYzZjFj
ZWZmMTQ1OTk2MzMzNTBlNjVkNWQxZDIwNjY4Y2Q5MDUxMiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRHbHVlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMTEtMDEgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhu
ZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBEZS12aXJ0dWFsaXplIEpTT2JqZWN0OjpnZXRQ
cm9wZXJ0eU5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03MTMwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZGVkIGdldFByb3BlcnR5TmFtZXMgdG8gdGhlIE1ldGhvZFRhYmxlLCBjaGFuZ2VkIGFs
bCB0aGUgdmlydHVhbCAKKyAgICAgICAgaW1wbGVtZW50YXRpb25zIG9mIGdldFByb3BlcnR5TmFt
ZXMgdG8gc3RhdGljIG9uZXMsIGFuZCByZXBsYWNlZCAKKyAgICAgICAgYWxsIGNhbGwgc2l0ZXMg
d2l0aCBjb3JyZXNwb25kaW5nIGxvb2t1cHMgaW4gdGhlIE1ldGhvZFRhYmxlLgorCisgICAgICAg
ICogSlNVdGlscy5jcHA6CisgICAgICAgIChLSlNWYWx1ZVRvQ0ZUeXBlSW50ZXJuYWwpOgorICAg
ICAgICAqIEpTVmFsdWVXcmFwcGVyLmNwcDoKKyAgICAgICAgKEpTVmFsdWVXcmFwcGVyOjpKU09i
amVjdENvcHlQcm9wZXJ0eU5hbWVzKToKKwogMjAxMS0xMC0yNiAgTWFyayBIYWhuZW5iZXJnICA8
bWhhaG5lbmJlcmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBnZXRPd25Qcm9wZXJ0eVNs
b3RWaXJ0dWFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzM4NGVmOGI4N2E4MzJjYmEzMDdhYzAyOGI4NzU0MzI4
OWI4YWQ1Yi4uMGYyNWNlZWE5MDczOGFjY2E0MmIxNmJiMTkyMmI4YmRmY2M2Yjg0NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDExLTExLTAxICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFo
bmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgRGUtdmlydHVhbGl6ZSBKU09iamVjdDo6Z2V0
UHJvcGVydHlOYW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzEzMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgQWRkZWQgZ2V0UHJvcGVydHlOYW1lcyB0byB0
aGUgTWV0aG9kVGFibGUsIGNoYW5nZWQgYWxsIHRoZSB2aXJ0dWFsIAorICAgICAgICBpbXBsZW1l
bnRhdGlvbnMgb2YgZ2V0UHJvcGVydHlOYW1lcyB0byBzdGF0aWMgb25lcywgYW5kIHJlcGxhY2Vk
IAorICAgICAgICBhbGwgY2FsbCBzaXRlcyB3aXRoIGNvcnJlc3BvbmRpbmcgbG9va3VwcyBpbiB0
aGUgTWV0aG9kVGFibGUuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6Z2V0UHJvcGVydHlOYW1lcyk6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpnZXRQcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAg
ICogYnJpZGdlL05QX2pzb2JqZWN0LmNwcDoKKyAgICAgICAgKF9OUE5fRW51bWVyYXRlKToKKyAg
ICAgICAgKiBicmlkZ2UvcXQvcXRfcnVudGltZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdz
Ojpjb252ZXJ0VmFsdWVUb1FWYXJpYW50TWFwKToKKwogMjAxMS0xMS0wMSAgTWlrZSBSZWVkICA8
cmVlZEBnb29nbGUuY29tPgogCiAgICAgICAgIFtza2lhXSBjYWxsIHJlYWRQaXhlbHMgb24gY2Fu
dmFzIGluc3RlYWQgb2YgZGV2aWNlICh3aWxsIGJlIHByaXZhdGUgb24gZGV2aWNlIHNvb24pIGFu
ZCBjaGVjayBmb3IgZXJyb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBkMTk1YzJkNzI2MDZkMGVhYzlh
ZDdlNDc0MWQyNzYwNjA2ODQ3MWFkLi42ZTMyMGJlYTFlYWRlZjYxMGY1Y2IwZTVlZmY2Y2FjNmQw
ZDAzZWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMTEtMDEgIE1h
cmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBEZS12aXJ0
dWFsaXplIEpTT2JqZWN0OjpnZXRQcm9wZXJ0eU5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTMwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGdldFByb3BlcnR5TmFtZXMgdG8gdGhlIE1l
dGhvZFRhYmxlLCBjaGFuZ2VkIGFsbCB0aGUgdmlydHVhbCAKKyAgICAgICAgaW1wbGVtZW50YXRp
b25zIG9mIGdldFByb3BlcnR5TmFtZXMgdG8gc3RhdGljIG9uZXMsIGFuZCByZXBsYWNlZCAKKyAg
ICAgICAgYWxsIGNhbGwgc2l0ZXMgd2l0aCBjb3JyZXNwb25kaW5nIGxvb2t1cHMgaW4gdGhlIE1l
dGhvZFRhYmxlLgorCisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0
YW5jZVByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJv
eHk6OmVudW1lcmF0ZSk6CisKIDIwMTEtMTEtMDEgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIENyYXNoIGluIFBERiBjb2RlIHdoZW4gc2NyaXB0IGhhcyBpbGxlZ2Fs
IFVURi04IG9yIFVURi0xNiBzZXF1ZW5jZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAwNGI4YmYxNTE1ZjVmNjU4
NGVkYWQ4MWViNWE5ZGI2Mzg0ZjI1ZWY5Li5hODJlZmQ1MWM2MmMyYTc3ODk5Y2NkN2E4Yjk1MGMw
NGY5ZjhiZmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMTEtMDEgIE1hcmsg
SGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBEZS12aXJ0dWFs
aXplIEpTT2JqZWN0OjpnZXRQcm9wZXJ0eU5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTMwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGdldFByb3BlcnR5TmFtZXMgdG8gdGhlIE1ldGhv
ZFRhYmxlLCBjaGFuZ2VkIGFsbCB0aGUgdmlydHVhbCAKKyAgICAgICAgaW1wbGVtZW50YXRpb25z
IG9mIGdldFByb3BlcnR5TmFtZXMgdG8gc3RhdGljIG9uZXMsIGFuZCByZXBsYWNlZCAKKyAgICAg
ICAgYWxsIGNhbGwgc2l0ZXMgd2l0aCBjb3JyZXNwb25kaW5nIGxvb2t1cHMgaW4gdGhlIE1ldGhv
ZFRhYmxlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpOUEpTT2JqZWN0OjplbnVtZXJhdGUpOgorCiAyMDEx
LTExLTAxICBKb2NlbHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBub2tpYS5jb20+CiAK
ICAgICAgICAgW1F0XSBNZXJnZSBjb21tb24gZGVza3RvcCBhbmQgdG91Y2ggdmlldyBBUElzIHVu
ZGVyIGEgYmFzZSBjbGFzcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNPYmplY3RSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5j
cHAKaW5kZXggNzQwYjFhM2FkZmMxYjBmN2VhMTBjMzZiMGVkN2IwYTkyZWNhY2MxZS4uZjU4ZmJh
N2Y0MGY5OWY4ZGQ3OTZlYmQwNzdjZjJmMjcwZTIxMTgxMyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU09iamVjdFJlZi5jcHAKQEAgLTUwNiw3ICs1MDYsNyBAQCBKU1Byb3BlcnR5TmFt
ZUFycmF5UmVmIEpTT2JqZWN0Q29weVByb3BlcnR5TmFtZXMoSlNDb250ZXh0UmVmIGN0eCwgSlNP
YmplY3RSZWYgbwogCiAgICAgSlNQcm9wZXJ0eU5hbWVBcnJheVJlZiBwcm9wZXJ0eU5hbWVzID0g
bmV3IE9wYXF1ZUpTUHJvcGVydHlOYW1lQXJyYXkoZ2xvYmFsRGF0YSk7CiAgICAgUHJvcGVydHlO
YW1lQXJyYXkgYXJyYXkoZ2xvYmFsRGF0YSk7Ci0gICAganNPYmplY3QtPmdldFByb3BlcnR5TmFt
ZXMoZXhlYywgYXJyYXkpOworICAgIGpzT2JqZWN0LT5tZXRob2RUYWJsZSgpLT5nZXRQcm9wZXJ0
eU5hbWVzKGpzT2JqZWN0LCBleGVjLCBhcnJheSwgRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7
CiAKICAgICBzaXplX3Qgc2l6ZSA9IGFycmF5LnNpemUoKTsKICAgICBwcm9wZXJ0eU5hbWVzLT5h
cnJheS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5leHAKaW5kZXggMmI3ODkzMWY2YzNlMGZlNzNhZDRjMTEyM2E1ZDQ2YmVl
ZTU0MmE5Zi4uYTQzNmVhNDRiODczM2Q1ODczNTdlNjI0ZDI1N2I0ZThkMDIyYzQzYSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCkBAIC0zMTMsNyArMzEzLDcgQEAg
X19aTjNKU0M4SlNPYmplY3QxMmxvb2t1cFNldHRlckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRl
bnRpZmllckUKIF9fWk4zSlNDOEpTT2JqZWN0MTJ0b1RoaXNPYmplY3RFUE5TXzZKU0NlbGxFUE5T
XzlFeGVjU3RhdGVFCiBfX1pOM0pTQzhKU09iamVjdDEzdmlzaXRDaGlsZHJlbkVQTlNfNkpTQ2Vs
bEVSTlNfMTFTbG90VmlzaXRvckUKIF9fWk4zSlNDOEpTT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQ
TlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKLV9fWk4zSlNDOEpT
T2JqZWN0MTZnZXRQcm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFt
ZUFycmF5RU5TXzE1RW51bWVyYXRpb25Nb2RlRQorX19aTjNKU0M4SlNPYmplY3QxNmdldFByb3Bl
cnR5TmFtZXNFUFMwX1BOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5TXzE1
RW51bWVyYXRpb25Nb2RlRQogX19aTjNKU0M4SlNPYmplY3QxN2RlZmluZU93blByb3BlcnR5RVBO
U185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckVi
CiBfX1pOM0pTQzhKU09iamVjdDE3cHJldmVudEV4dGVuc2lvbnNFUk5TXzEySlNHbG9iYWxEYXRh
RQogX19aTjNKU0M4SlNPYmplY3QxN3B1dFdpdGhBdHRyaWJ1dGVzRVBOU18xMkpTR2xvYmFsRGF0
YUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVqCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmRlZiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ov
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCmluZGV4IDI3MDNkODNhNDFiMThhNjFm
ZTdhMDY5ODMwZDBhZGUyMTdkYjU4ZTMuLmE5YThhYzYxYzJkNjY1M2Q4ZDUwODRlOWQxMmY4YmRj
MjYxZWJlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZGVmCkBAIC0yMDMsNyArMjAzLDcgQEAgRVhQT1JUUwogICAgID9nZXRPd25Qcm9w
ZXJ0eVNsb3RCeUluZGV4QEpTQnl0ZUFycmF5QEpTQ0BAU0FfTlBBVkpTQ2VsbEAyQFBBVkV4ZWNT
dGF0ZUAyQElBQVZQcm9wZXJ0eVNsb3RAMkBAWgogICAgID9nZXRPd25Qcm9wZXJ0eVNsb3RCeUlu
ZGV4QEpTT2JqZWN0QEpTQ0BAU0FfTlBBVkpTQ2VsbEAyQFBBVkV4ZWNTdGF0ZUAyQElBQVZQcm9w
ZXJ0eVNsb3RAMkBAWgogICAgID9nZXRQcm9wZXJ0eURlc2NyaXB0b3JASlNPYmplY3RASlNDQEBR
QUVfTlBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBBQVZQcm9wZXJ0eURlc2NyaXB0b3JA
MkBAWgotICAgID9nZXRQcm9wZXJ0eU5hbWVzQEpTT2JqZWN0QEpTQ0BAVUFFWFBBVkV4ZWNTdGF0
ZUAyQEFBVlByb3BlcnR5TmFtZUFycmF5QDJAVzRFbnVtZXJhdGlvbk1vZGVAMkBAWgorICAgID9n
ZXRQcm9wZXJ0eU5hbWVzQEpTT2JqZWN0QEpTQ0BAU0FYUEFWMTJAUEFWRXhlY1N0YXRlQDJAQUFW
UHJvcGVydHlOYW1lQXJyYXlAMkBXNEVudW1lcmF0aW9uTW9kZUAyQEBaCiAgICAgP2dldFNsaWNl
QEFyZ0xpc3RASlNDQEBRQkVYSEFBVjEyQEBaCiAgICAgP2dldFN0cmluZ0BKU0NlbGxASlNDQEBR
QkU/QVZVU3RyaW5nQDJAUEFWRXhlY1N0YXRlQDJAQFoKICAgICA/Z2V0U3RyaW5nQEpTQ2VsbEBK
U0NAQFFCRV9OUEFWRXhlY1N0YXRlQDJAQUFWVVN0cmluZ0AyQEBaCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCmluZGV4IGJi
MzY3YzJlZGQ5YmE5YjhiMGUzZjcyYzliOGY3MjNjNmI4MjhiZjguLjA2NDMwYTFiNDczYmM5Mzc3
NTdlOTE5MmQxMDgwYjdmMGQ2MzQxY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCkBAIC04NSw3ICs4NSw3IEBAIGJv
b2wgRGVidWdnZXJBY3RpdmF0aW9uOjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqIGNlbGwsIEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlCiAKIHZvaWQgRGVidWdnZXJBY3RpdmF0aW9uOjpnZXRPd25Q
cm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5
TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewotICAgIG1fYWN0aXZhdGlvbi0+Z2V0UHJv
cGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAgICBtX2FjdGl2YXRpb24t
Pm1ldGhvZFRhYmxlKCktPmdldFByb3BlcnR5TmFtZXMobV9hY3RpdmF0aW9uLmdldCgpLCBleGVj
LCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogYm9vbCBEZWJ1Z2dlckFjdGl2YXRpb246Omdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2xhc3NJbmZvLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9DbGFzc0luZm8uaAppbmRleCBkOGU3MTcwOTAzZWNlMjdlNTI5
ZjRjZjdlNTVmMTdhMDc0NTU2MTk2Li4zYjNiNDEwMGFiODIxOGNlNzgwMTc1NjIyNjgzYzk5MWE4
OWQ2NzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DbGFzc0lu
Zm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DbGFzc0luZm8uaApAQCAt
MjUsNiArMjUsNyBAQAogCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiQ29uc3Ry
dWN0RGF0YS5oIgorI2luY2x1ZGUgIkpTQ2VsbC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAt
NjcsNiArNjgsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB0eXBlZGVmIEpTVmFsdWUg
KCpEZWZhdWx0VmFsdWVGdW5jdGlvblB0cikoY29uc3QgSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQ
cmVmZXJyZWRQcmltaXRpdmVUeXBlKTsKICAgICAgICAgRGVmYXVsdFZhbHVlRnVuY3Rpb25QdHIg
ZGVmYXVsdFZhbHVlOworCisgICAgICAgIHR5cGVkZWYgdm9pZCAoKkdldFByb3BlcnR5TmFtZXNG
dW5jdGlvblB0cikoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVu
dW1lcmF0aW9uTW9kZSk7CisgICAgICAgIEdldFByb3BlcnR5TmFtZXNGdW5jdGlvblB0ciBnZXRQ
cm9wZXJ0eU5hbWVzOwogICAgIH07CiAKICNkZWZpbmUgQ1JFQVRFX01FTUJFUl9DSEVDS0VSKG1l
bWJlcikgXApAQCAtMTAxLDYgKzEwNSw3IEBAIHN0cnVjdCBNZW1iZXJDaGVjayMjbWVtYmVyIHsg
XAogICAgICAgICAmQ2xhc3NOYW1lOjp0b1RoaXNPYmplY3QsIFwKICAgICAgICAgJkNsYXNzTmFt
ZTo6ZGVmaW5lR2V0dGVyLCBcCiAgICAgICAgICZDbGFzc05hbWU6OmRlZmF1bHRWYWx1ZSwgXAor
ICAgICAgICAmQ2xhc3NOYW1lOjpnZXRQcm9wZXJ0eU5hbWVzLCBcCiAgICAgfSwgXAogICAgIHNp
emVvZihDbGFzc05hbWUpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQ2VsbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3Bw
CmluZGV4IGZmZWNjZmNjM2FhODI3NjJiMzUzOWIzNzQ4OTk0MGVmODQ5NTY2NDMuLmJhMzM1Nzhm
ZTkwNGZjZDNkNDRiNTAyZmVkYWQ2Yjg5N2U3Mjc1MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDZWxsLmNwcApAQCAtMTY5LDQgKzE2OSw5IEBAIEpTVmFsdWUgSlNDZWxsOjpk
ZWZhdWx0VmFsdWUoY29uc3QgSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRp
dmVUeXBlCiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKK3ZvaWQgSlNDZWxsOjpnZXRQ
cm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBF
bnVtZXJhdGlvbk1vZGUpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDZWxsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAppbmRleCBh
YTc3Zjc5MTk5Zjg0MzFiNmNlNjVjNTQyMjUzOWZlNWM3MTZiNjA3Li4yZmM2NDllYWRlOTE2YzQ0
MDhjZDgzZjM1YzZlY2M0Mzc4ODEwOWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NlbGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NlbGwuaApAQCAtMzcsNiArMzcsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBK
U0dsb2JhbE9iamVjdDsKICAgICBjbGFzcyBTdHJ1Y3R1cmU7CisgICAgY2xhc3MgUHJvcGVydHlO
YW1lQXJyYXk7CisKKyAgICBlbnVtIEVudW1lcmF0aW9uTW9kZSB7CisgICAgICAgIEV4Y2x1ZGVE
b250RW51bVByb3BlcnRpZXMsCisgICAgICAgIEluY2x1ZGVEb250RW51bVByb3BlcnRpZXMKKyAg
ICB9OwogCiAgICAgY2xhc3MgSlNDZWxsIHsKICAgICAgICAgZnJpZW5kIGNsYXNzIEpTVmFsdWU7
CkBAIC0xMzYsNiArMTQyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIC8vIER1bW15IGlt
cGxlbWVudGF0aW9ucyBvZiBvdmVycmlkZS1hYmxlIHN0YXRpYyBmdW5jdGlvbnMgZm9yIGNsYXNz
ZXMgdG8gcHV0IGluIHRoZWlyIE1ldGhvZFRhYmxlCiAgICAgICAgIHN0YXRpYyBOT19SRVRVUk5f
RFVFX1RPX0FTU0VSVCB2b2lkIGRlZmluZUdldHRlcihKU09iamVjdCosIEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBKU09iamVjdCosIHVuc2lnbmVkKTsKICAgICAgICAgc3RhdGljIEpT
VmFsdWUgZGVmYXVsdFZhbHVlKGNvbnN0IEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJlZmVycmVk
UHJpbWl0aXZlVHlwZSk7CisgICAgICAgIHN0YXRpYyBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2
b2lkIGdldFByb3BlcnR5TmFtZXMoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVB
cnJheSYsIEVudW1lcmF0aW9uTW9kZSk7CiAKICAgICBwcml2YXRlOgogICAgICAgICBXcml0ZUJh
cnJpZXI8U3RydWN0dXJlPiBtX3N0cnVjdHVyZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmNwcAppbmRleCA3ZjEwOTNjNTEzNmUzODQ1NTY4ZGI0MGJlZTk3NjQ1NTlk
Nzk4YTA4Li45NmVhMWI0NzZkNzdjYWQzZDc1NDY3NjhkM2U1ODdmMjIxNjU1ZjYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC01MDksMTcgKzUwOSwx
NyBAQCBib29sIEpTT2JqZWN0OjpnZXRQcm9wZXJ0eVNwZWNpZmljVmFsdWUoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9p
ZCBKU09iamVjdDo6Z2V0UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFt
ZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKK3ZvaWQgSlNPYmpl
Y3Q6OmdldFByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQ
cm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7
Ci0gICAgZ2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAg
ICBvYmplY3QtPmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7
CiAKLSAgICBpZiAocHJvdG90eXBlKCkuaXNOdWxsKCkpCisgICAgaWYgKG9iamVjdC0+cHJvdG90
eXBlKCkuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEpTT2JqZWN0KiBwcm90b3R5
cGUgPSBhc09iamVjdCh0aGlzLT5wcm90b3R5cGUoKSk7CisgICAgSlNPYmplY3QqIHByb3RvdHlw
ZSA9IGFzT2JqZWN0KG9iamVjdC0+cHJvdG90eXBlKCkpOwogICAgIHdoaWxlKDEpIHsKICAgICAg
ICAgaWYgKHByb3RvdHlwZS0+c3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzR2V0UHJv
cGVydHlOYW1lcygpKSB7Ci0gICAgICAgICAgICBwcm90b3R5cGUtPmdldFByb3BlcnR5TmFtZXMo
ZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CisgICAgICAgICAgICBwcm90b3R5cGUtPm1ldGhv
ZFRhYmxlKCktPmdldFByb3BlcnR5TmFtZXMocHJvdG90eXBlLCBleGVjLCBwcm9wZXJ0eU5hbWVz
LCBtb2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIHByb3RvdHlw
ZS0+Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKQEAgLTUz
Miw3ICs1MzIsNyBAQCB2b2lkIEpTT2JqZWN0OjpnZXRQcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSog
ZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZQogCiB2b2lkIEpTT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHBy
b3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewotICAgIHN0cnVjdHVyZSgpLT5n
ZXRQcm9wZXJ0eU5hbWVzKGV4ZWMtPmdsb2JhbERhdGEoKSwgcHJvcGVydHlOYW1lcywgbW9kZSk7
CisgICAgc3RydWN0dXJlKCktPmdldFByb3BlcnR5TmFtZXNGcm9tU3RydWN0dXJlKGV4ZWMtPmds
b2JhbERhdGEoKSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CiAgICAgaWYgKCFzdGF0aWNGdW5jdGlv
bnNSZWlmaWVkKCkpCiAgICAgICAgIGdldENsYXNzUHJvcGVydHlOYW1lcyhleGVjLCBjbGFzc0lu
Zm8oKSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuaAppbmRleCBkNjVlNWFkMzU0OTQ0ZTNjOWFiODM2NWJlOTUwMWY2ZGIyYzIz
YmQwLi5lYzFmYjU3NTMwZGQ1Yjc1MzhhMWQ3MDQyYWU5YzgwNzE4MDhiYjNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTEyNiw3ICsxMjYsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaGFzSW5zdGFuY2UoRXhlY1N0YXRl
KiwgSlNWYWx1ZSwgSlNWYWx1ZSBwcm90b3R5cGVQcm9wZXJ0eSk7CiAKLSAgICAgICAgdmlydHVh
bCB2b2lkIGdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBF
bnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOworICAgICAg
ICBzdGF0aWMgdm9pZCBnZXRQcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJv
cGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUpOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1l
cmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAKICAgICAgICAg
SlNWYWx1ZSB0b1ByaW1pdGl2ZShFeGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBlID0g
Tm9QcmVmZXJlbmNlKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAKaW5kZXggYWJhYjc5ZWY3ZGVmMzQw
Yzc3ZTcwZjc5NThmMzhhMmE3OWU0ZTgwMC4uNTJiODJlNzhjODQ3MzFlNjZlMzc2NDU5M2I5MTgz
OGZlNDNhODZiYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQ
cm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgSlNQcm9wZXJ0
eU5hbWVJdGVyYXRvciogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6Y3JlYXRlKEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmplY3QKICAgICAgICAgICAgIG8tPnN0cnVjdHVyZSgpLT5lbnVtZXJhdGlvbkNh
Y2hlKCktPmNhY2hlZFByb3RvdHlwZUNoYWluKCkgIT0gby0+c3RydWN0dXJlKCktPnByb3RvdHlw
ZUNoYWluKGV4ZWMpKTsKIAogICAgIFByb3BlcnR5TmFtZUFycmF5IHByb3BlcnR5TmFtZXMoZXhl
Yyk7Ci0gICAgby0+Z2V0UHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzKTsKKyAgICBv
LT5tZXRob2RUYWJsZSgpLT5nZXRQcm9wZXJ0eU5hbWVzKG8sIGV4ZWMsIHByb3BlcnR5TmFtZXMs
IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwogICAgIHNpemVfdCBudW1DYWNoZWFibGVTbG90
cyA9IDA7CiAgICAgaWYgKCFvLT5zdHJ1Y3R1cmUoKS0+aGFzTm9uRW51bWVyYWJsZVByb3BlcnRp
ZXMoKSAmJiAhby0+c3RydWN0dXJlKCktPmhhc0dldHRlclNldHRlclByb3BlcnRpZXMoKQogICAg
ICAgICAmJiAhby0+c3RydWN0dXJlKCktPmlzVW5jYWNoZWFibGVEaWN0aW9uYXJ5KCkgJiYgIW8t
PnN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlQ2hhaW4uY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5jcHAKaW5kZXggNmUyZTAz
NGFmNmQ3ZmUxNzNiZGM2NDlmNWI5NTgyYjlmY2QzODg2MS4uODM2NjI0OGJjYTlkZWU2OTNhZWNj
NDE2ZGIzMmE3ZWRiYjk0ZGE3YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU2NvcGVDaGFpbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U2NvcGVDaGFpbi5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgdm9pZCBTY29wZUNoYWluTm9kZTo6cHJp
bnQoKQogICAgIGZvciAoU2NvcGVDaGFpbkl0ZXJhdG9yIHNjb3BlSXRlciA9IGJlZ2luKCk7IHNj
b3BlSXRlciAhPSBzY29wZUVuZDsgKytzY29wZUl0ZXIpIHsKICAgICAgICAgSlNPYmplY3QqIG8g
PSBzY29wZUl0ZXItPmdldCgpOwogICAgICAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0eU5h
bWVzKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpKTsKLSAgICAgICAgby0+Z2V0UHJvcGVydHlO
YW1lcyhnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1lcyk7CisgICAgICAg
IG8tPm1ldGhvZFRhYmxlKCktPmdldFByb3BlcnR5TmFtZXMobywgZ2xvYmFsT2JqZWN0LT5nbG9i
YWxFeGVjKCksIHByb3BlcnR5TmFtZXMsIEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwogICAg
ICAgICBQcm9wZXJ0eU5hbWVBcnJheTo6Y29uc3RfaXRlcmF0b3IgcHJvcEVuZCA9IHByb3BlcnR5
TmFtZXMuZW5kKCk7CiAKICAgICAgICAgZnByaW50ZihzdGRlcnIsICItLS0tLSBbc2NvcGUgJXBd
IC0tLS0tXG4iLCBvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUu
Y3BwCmluZGV4IDA1MjExZjNlMWIwOWE3NjM3NjFiYTdiZTg4OTdkNzUyNjZhMTI5NmYuLjA0MTBk
NGY4MGEzZGI3Yjk3YTg0MWY0ZDhlNGE5ODhlYjgyMWNkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcApAQCAtNzIwLDcgKzcyMCw3IEBAIHZvaWQgU3Ry
dWN0dXJlOjpjcmVhdGVQcm9wZXJ0eU1hcCh1bnNpZ25lZCBjYXBhY2l0eSkKICAgICBjaGVja0Nv
bnNpc3RlbmN5KCk7CiB9CiAKLXZvaWQgU3RydWN0dXJlOjpnZXRQcm9wZXJ0eU5hbWVzKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVu
dW1lcmF0aW9uTW9kZSBtb2RlKQordm9pZCBTdHJ1Y3R1cmU6OmdldFByb3BlcnR5TmFtZXNGcm9t
U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgUHJvcGVydHlOYW1lQXJyYXkmIHBy
b3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAgIG1hdGVyaWFsaXplUHJv
cGVydHlNYXBJZk5lY2Vzc2FyeShnbG9iYWxEYXRhKTsKICAgICBpZiAoIW1fcHJvcGVydHlUYWJs
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKaW5kZXggMGViYTY3
NTYzYTI4MmZmNjMzNTlhMjg0MTdhY2FiYzUzYTUzZjQ4MC4uN2JjMDAzMDA2Yjk5NjcxYzYyZDA4
ZjJhNjFkM2ZlNGM0MjA2YzRjMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RydWN0dXJlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
dWN0dXJlLmgKQEAgLTUwLDExICs1MCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIFN0
cnVjdHVyZUNoYWluOwogICAgIGNsYXNzIFNsb3RWaXNpdG9yOwogCi0gICAgZW51bSBFbnVtZXJh
dGlvbk1vZGUgewotICAgICAgICBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzLAotICAgICAgICBJ
bmNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzCi0gICAgfTsKLQogICAgIGNsYXNzIFN0cnVjdHVyZSA6
IHB1YmxpYyBKU0NlbGwgewogICAgIHB1YmxpYzoKICAgICAgICAgZnJpZW5kIGNsYXNzIFN0cnVj
dHVyZVRyYW5zaXRpb25UYWJsZTsKQEAgLTE2MSw3ICsxNTYsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgICAgICB2b2lkIHNldEVudW1lcmF0aW9uQ2FjaGUoSlNHbG9iYWxEYXRhJiwgSlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvciogZW51bWVyYXRpb25DYWNoZSk7IC8vIERlZmluZWQgaW4gSlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvci5oLgogICAgICAgICBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiBlbnVt
ZXJhdGlvbkNhY2hlKCk7IC8vIERlZmluZWQgaW4gSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oLgot
ICAgICAgICB2b2lkIGdldFByb3BlcnR5TmFtZXMoSlNHbG9iYWxEYXRhJiwgUHJvcGVydHlOYW1l
QXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSk7CisgICAgICAgIHZvaWQgZ2V0UHJvcGVydHlO
YW1lc0Zyb21TdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVt
ZXJhdGlvbk1vZGUpOwogCiAgICAgICAgIGJvb2wgc3RhdGljRnVuY3Rpb25zUmVpZmllZCgpCiAg
ICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1V0aWxzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1V0aWxzLmNwcAppbmRleCBiZDkyOWNjMTExNTM3Nzdm
NTkwNWRmZGE3MGYxNDQ0YTQ4MDZiZmVmLi40YmZiNDUwNzM3NjUwMGRhOTBjYjk5MWRmZGE4YjAz
MzJmNjE0YzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNVdGlscy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0pTVXRpbHMuY3BwCkBAIC0yNzcsNyArMjc3LDcg
QEAgQ0ZUeXBlUmVmIEtKU1ZhbHVlVG9DRlR5cGVJbnRlcm5hbChKU1ZhbHVlIGluVmFsdWUsIEV4
ZWNTdGF0ZSAqZXhlYywgT2JqZWN0SW1wTGkKICAgICAgICAgICAgICAgICAgICAgICAgIEpTR2x1
ZUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNHbHVlR2xvYmFsT2Jq
ZWN0Kj4oZXhlYy0+ZHluYW1pY0dsb2JhbE9iamVjdCgpKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChnbG9iYWxPYmplY3QgJiYgKGdsb2JhbE9iamVjdC0+RmxhZ3MoKSAmIGtKU0ZsYWdD
b252ZXJ0QXNzb2NpYXRpdmVBcnJheSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ
cm9wZXJ0eU5hbWVBcnJheSBwcm9wTmFtZXMoZXhlYyk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgb2JqZWN0LT5nZXRQcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BOYW1lcyk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgb2JqZWN0LT5tZXRob2RUYWJsZSgpLT5nZXRQcm9wZXJ0eU5h
bWVzKG9iamVjdCwgZXhlYywgcHJvcE5hbWVzLCBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm9wZXJ0eU5hbWVBcnJheTo6Y29uc3RfaXRl
cmF0b3IgaXRlciA9IHByb3BOYW1lcy5iZWdpbigpOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFByb3BlcnR5TmFtZUFycmF5Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBwcm9wTmFtZXMuZW5k
KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUoaXRlciAhPSBlbmQgJiYgaXNB
cnJheSkKQEAgLTMxNiw3ICszMTYsNyBAQCBDRlR5cGVSZWYgS0pTVmFsdWVUb0NGVHlwZUludGVy
bmFsKEpTVmFsdWUgaW5WYWx1ZSwgRXhlY1N0YXRlICpleGVjLCBPYmplY3RJbXBMaQogICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3QgYW4gYXJyYXks
IGp1c3QgdHJlYXQgaXQgbGlrZSBhIGRpY3Rpb25hcnkgd2hpY2ggY29udGFpbnMgKHByb3BlcnR5
IG5hbWUsIHByb3BlcnR5IHZhbHVlKSBwYWlycwogICAgICAgICAgICAgICAgICAgICAgICAgUHJv
cGVydHlOYW1lQXJyYXkgcHJvcE5hbWVzKGV4ZWMpOwotICAgICAgICAgICAgICAgICAgICAgICAg
b2JqZWN0LT5nZXRQcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BOYW1lcyk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBvYmplY3QtPm1ldGhvZFRhYmxlKCktPmdldFByb3BlcnR5TmFtZXMob2JqZWN0
LCBleGVjLCBwcm9wTmFtZXMsIEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IENG
RGljdGlvbmFyeUNyZWF0ZU11dGFibGUoMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdEdsdWUvSlNWYWx1ZVdyYXBwZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRHbHVl
L0pTVmFsdWVXcmFwcGVyLmNwcAppbmRleCA2MGQ5OTUxNjA2ZTFjZGUxM2M2NTQ2ODk1YTgxMDI2
MTcyZTA3N2I2Li5jMGFjZDI5Mjg1MWM0NGMzMWQyMWY5NmEwYmUyYWI4YzBiMzEwNjM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNWYWx1ZVdyYXBwZXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1ZhbHVlV3JhcHBlci5jcHAKQEAgLTc3LDcgKzc3LDcgQEAg
Q0ZBcnJheVJlZiBKU1ZhbHVlV3JhcHBlcjo6SlNPYmplY3RDb3B5UHJvcGVydHlOYW1lcyh2b2lk
ICpkYXRhKQogICAgICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnZXRUaHJlYWRHbG9iYWxFeGVjU3Rh
dGUoKTsKICAgICAgICAgSlNPYmplY3QqIG9iamVjdCA9IHB0ci0+R2V0VmFsdWUoKS50b09iamVj
dChleGVjKTsKICAgICAgICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcE5hbWVzKGV4ZWMpOwotICAg
ICAgICBvYmplY3QtPmdldFByb3BlcnR5TmFtZXMoZXhlYywgcHJvcE5hbWVzKTsKKyAgICAgICAg
b2JqZWN0LT5tZXRob2RUYWJsZSgpLT5nZXRQcm9wZXJ0eU5hbWVzKG9iamVjdCwgZXhlYywgcHJv
cE5hbWVzLCBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKICAgICAgICAgUHJvcGVydHlOYW1l
QXJyYXk6OmNvbnN0X2l0ZXJhdG9yIGl0ZXJhdG9yID0gcHJvcE5hbWVzLmJlZ2luKCk7CiAKICAg
ICAgICAgd2hpbGUgKGl0ZXJhdG9yICE9IHByb3BOYW1lcy5lbmQoKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCmluZGV4IDViOWNkODA4
YTViM2I5ZjBhOWI0YzE1NzI1ZTRhNWI1MGI2MjUzZTIuLjAxMTIwNTcxNzc1YmNmOTE1MTkyY2Jm
MDhjOGRiOTJiMzgxMmZmYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTM2OCwxMiArMzY4LDEzIEBAIGJvb2wgSlNET01XaW5k
b3c6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyCiAgICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5KHRoaXNPYmplY3QsIGV4
ZWMsIHByb3BlcnR5TmFtZSk7CiB9CiAKLXZvaWQgSlNET01XaW5kb3c6OmdldFByb3BlcnR5TmFt
ZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51
bWVyYXRpb25Nb2RlIG1vZGUpCit2b2lkIEpTRE9NV2luZG93OjpnZXRQcm9wZXJ0eU5hbWVzKEpT
T2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3Bl
cnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogeworICAgIEpTRE9NV2luZG93KiB0aGlz
T2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNET01XaW5kb3cqPihvYmplY3QpOwogICAgIC8vIE9ubHkg
YWxsb3cgdGhlIHdpbmRvdyB0byBlbnVtZXJhdGVkIGJ5IGZyYW1lcyBpbiB0aGUgc2FtZSBvcmln
aW4uCi0gICAgaWYgKCFhbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKQorICAgIGlmICghdGhpc09iamVj
dC0+YWxsb3dzQWNjZXNzRnJvbShleGVjKSkKICAgICAgICAgcmV0dXJuOwotICAgIEJhc2U6Omdl
dFByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CisgICAgQmFzZTo6Z2V0
UHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0K
IAogdm9pZCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMs
IFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKaW5k
ZXggOGY2ODc5OTMzMjAwNmE2NzFmNGVkNmNlYjY5YTY1N2JiZTZiOGQ3My4uMWVmNGU5ZDI1YmE2
MjgyNmUzNzRjMzM3MDMyZDUzZThkYmVhMGFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKQEAgLTEyMiw5ICsxMjIsMTAgQEAgYm9vbCBK
U0RPTVdpbmRvd1NoZWxsOjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnQKICAgICByZXR1cm4gdGhpc09iamVjdC0+d2luZG93KCktPm1ldGhv
ZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5KHRoaXNPYmplY3QtPndpbmRvdygpLCBleGVjLCBwcm9w
ZXJ0eU5hbWUpOwogfQogCi12b2lkIEpTRE9NV2luZG93U2hlbGw6OmdldFByb3BlcnR5TmFtZXMo
RXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVy
YXRpb25Nb2RlIG1vZGUpCit2b2lkIEpTRE9NV2luZG93U2hlbGw6OmdldFByb3BlcnR5TmFtZXMo
SlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJv
cGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7Ci0gICAgd2luZG93KCktPmdldFBy
b3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CisgICAgSlNET01XaW5kb3dT
aGVsbCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTRE9NV2luZG93U2hlbGwqPihvYmplY3Qp
OworICAgIHRoaXNPYmplY3QtPndpbmRvdygpLT5tZXRob2RUYWJsZSgpLT5nZXRQcm9wZXJ0eU5h
bWVzKHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiB2b2lkIEpT
RE9NV2luZG93U2hlbGw6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9w
ZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKaW5kZXggMTE4NTEz
MjZkMTVjNWY0NjdiNDNmN2RmMTFjMjM3Y2U4NDE4ZWY3Ni4uMGQ0ZDg1YjM4ZWI2NmI2ZWY4YWQ4
MzNjODg4MmUwOTE2NDNkMWVlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dTaGVsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93U2hlbGwuaApAQCAtODQsNyArODQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6
SlNWYWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7CiAgICAgICAgIHN0YXRpYyBib29sIGRlbGV0
ZVByb3BlcnR5KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50
aWZpZXImIHByb3BlcnR5TmFtZSk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBnZXRQcm9wZXJ0eU5h
bWVzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYsIEpTQzo6RW51bWVy
YXRpb25Nb2RlIG1vZGUgPSBKU0M6OkV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOworICAgICAg
ICBzdGF0aWMgdm9pZCBnZXRQcm9wZXJ0eU5hbWVzKEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmLCBKU0M6OkVudW1lcmF0aW9uTW9kZSk7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYsIEpTQzo6RW51bWVyYXRpb25Nb2RlIG1vZGUgPSBKU0M6
OkV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwogICAgICAgICBzdGF0aWMgdm9pZCBkZWZpbmVH
ZXR0ZXIoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqIGdldHRlckZ1bmN0aW9uLCB1bnNpZ25l
ZCBhdHRyaWJ1dGVzKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRlZmluZVNldHRlcihKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTT2Jq
ZWN0KiBzZXR0ZXJGdW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDI5ZWU1
NTRiMzhkNzM2ZWU3ZWM3MDkyODFlODUzNjkxYmE2NTI1YzMuLjkwODkxNTYzNjkwYTEwNDYzNGE0
NzZjNmI4YjA5YjkzMzU0ZGU4YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC04MjgsNyArODI4LDcgQEAgc3ViIEdlbmVy
YXRlSGVhZGVyCiAKICAgICAjIEN1c3RvbSBnZXRQcm9wZXJ0eU5hbWVzIGZ1bmN0aW9uIGV4aXN0
cyBvbiBET01XaW5kb3cKICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsK
LSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvcGVy
dHlOYW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmLCBKU0M6OkVu
dW1lcmF0aW9uTW9kZSBtb2RlID0gSlNDOjpFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTtcbiIp
OworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyB2b2lkIGdldFByb3Bl
cnR5TmFtZXMoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5h
bWVBcnJheSYsIEpTQzo6RW51bWVyYXRpb25Nb2RlIG1vZGUgPSBKU0M6OkV4Y2x1ZGVEb250RW51
bVByb3BlcnRpZXMpO1xuIik7CiAgICAgICAgICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpPdmVycmlk
ZXNHZXRQcm9wZXJ0eU5hbWVzIn0gPSAxOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9q
c29iamVjdC5jcHAKaW5kZXggMGJjMTg3YjJlNWEyYzRkMzcwNGYyYmJiZDJhZTViMTcwZTMzNDg3
My4uN2E0NWM0YTJkMzkzOTg0ZGU2NmI2NWJhOGE4ZTcwMDNkNmQ4MTY3OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwCkBAIC00NjAsNyArNDYwLDcgQEAgYm9vbCBfTlBOX0Vu
dW1lcmF0ZShOUFAsIE5QT2JqZWN0KiBvLCBOUElkZW50aWZpZXIqKiBpZGVudGlmaWVyLCB1aW50
MzJfdCogY291bnQKICAgICAgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsK
ICAgICAgICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydHlOYW1lcyhleGVjKTsKIAotICAgICAg
ICBvYmotPmltcC0+Z2V0UHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzKTsKKyAgICAg
ICAgb2JqLT5pbXAtPm1ldGhvZFRhYmxlKCktPmdldFByb3BlcnR5TmFtZXMob2JqLT5pbXAsIGV4
ZWMsIHByb3BlcnR5TmFtZXMsIEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwogICAgICAgICB1
bnNpZ25lZCBzaXplID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHByb3BlcnR5TmFtZXMuc2l6ZSgp
KTsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHJlYWxseSBjYWxsIE5QTl9NZW1BbGxv
YyBidXQgdGhhdCdzIGluIFdlYktpdAogICAgICAgICBOUElkZW50aWZpZXIqIGlkZW50aWZpZXJz
ID0gc3RhdGljX2Nhc3Q8TlBJZGVudGlmaWVyKj4obWFsbG9jKHNpemVvZihOUElkZW50aWZpZXIp
ICogc2l6ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRp
bWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCmluZGV4IDI0
NDY3YmY2ZmI4YjMwNmU3YjIyNzFhY2Y1MDQ3NTAxYmQwODJlNjMuLmE4MGYxOTY2YjlkMjc2MzNl
NmFhMjM2OGE3MTZhZGVlMGJjYjU4MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9xdC9xdF9ydW50aW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVu
dGltZS5jcHAKQEAgLTE4OSw3ICsxODksNyBAQCBzdGF0aWMgUVZhcmlhbnRNYXAgY29udmVydFZh
bHVlVG9RVmFyaWFudE1hcChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBvYmplY3QsCiAgICAg
UV9BU1NFUlQoIWV4ZWMtPmhhZEV4Y2VwdGlvbigpKTsKIAogICAgIFByb3BlcnR5TmFtZUFycmF5
IHByb3BlcnRpZXMoZXhlYyk7Ci0gICAgb2JqZWN0LT5nZXRQcm9wZXJ0eU5hbWVzKGV4ZWMsIHBy
b3BlcnRpZXMpOworICAgIG9iamVjdC0+bWV0aG9kVGFibGUoKS0+Z2V0UHJvcGVydHlOYW1lcyhv
YmplY3QsIGV4ZWMsIHByb3BlcnRpZXMpOwogICAgIFByb3BlcnR5TmFtZUFycmF5Ojpjb25zdF9p
dGVyYXRvciBpdCA9IHByb3BlcnRpZXMuYmVnaW4oKTsKICAgICBRVmFyaWFudE1hcCByZXN1bHQ7
CiAgICAgaW50IG9iamRpc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tIGIvU291cmNlL1dlYktp
dC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCmluZGV4
IDkzNzQzMWMxOTYzMjNkMTE2OGViZjgyZDNhODJmNGFiZTg1MTkxOTguLjE1MzdmMzk2MmVmZDFh
MTcxYTFhY2Q4OTA3ZDI4ZGU0YjkwMmVmM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHku
bW0KQEAgLTEyMzAsNyArMTIzMCw3IEBAIGJvb2wgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5
OjplbnVtZXJhdGUodWludDMyX3Qgb2JqZWN0SUQsIGRhdGFfdCYgcmVzdWx0RGF0CiAgICAgSlNM
b2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKICAKICAgICBQcm9wZXJ0eU5hbWVBcnJh
eSBwcm9wZXJ0eU5hbWVzKGV4ZWMpOwotICAgIG9iamVjdC0+Z2V0UHJvcGVydHlOYW1lcyhleGVj
LCBwcm9wZXJ0eU5hbWVzKTsKKyAgICBvYmplY3QtPm1ldGhvZFRhYmxlKCktPmdldFByb3BlcnR5
TmFtZXMob2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWVzLCBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0
aWVzKTsKIAogICAgIFJldGFpblB0cjxOU011dGFibGVBcnJheSo+IGFycmF5KEFkb3B0TlMsIFtb
TlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgcHJvcGVydHlOYW1lcy5zaXplKCk7IGkrKykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3QuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3QuY3BwCmluZGV4IGJh
OGZhM2RjYmEyNThiYjFjM2YzMjRkOTU3OTYzNjkxZTE5YWRkNWUuLmYwZWQ5Zjc0YzkwZWNjNDk4
MWJmOWRiODQxMzAyYzJmNWUxZjZiZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHAKQEAgLTIzNiw3ICsy
MzYsNyBAQCBib29sIE5QSlNPYmplY3Q6OmVudW1lcmF0ZShOUElkZW50aWZpZXIqKiBpZGVudGlm
aWVycywgdWludDMyX3QqIGlkZW50aWZpZXJDb3VudAogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VB
c3NlcnRpb25zT25seSk7CiAKICAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0eU5hbWVzKGV4
ZWMpOwotICAgIG1fanNPYmplY3QtPmdldFByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1l
cyk7CisgICAgbV9qc09iamVjdC0+bWV0aG9kVGFibGUoKS0+Z2V0UHJvcGVydHlOYW1lcyhtX2pz
T2JqZWN0LmdldCgpLCBleGVjLCBwcm9wZXJ0eU5hbWVzLCBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0
aWVzKTsKIAogICAgIE5QSWRlbnRpZmllciogbmFtZUlkZW50aWZpZXJzID0gbnBuTWVtTmV3QXJy
YXk8TlBJZGVudGlmaWVyPihwcm9wZXJ0eU5hbWVzLnNpemUoKSk7CiAK
</data>
<flag name="review"
          id="111538"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="111548"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
      

    </bug>

</bugzilla>