<?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>90301</bug_id>
          
          <creation_ts>2012-06-29 13:03:16 -0700</creation_ts>
          <short_desc>Can’t get basic element info from a WKRenderObject</short_desc>
          <delta_ts>2012-06-29 13:26:45 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>660726</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-06-29 13:03:16 -0700</bug_when>
    <thetext>While WKRenderLayer exposes its owner element’s tag name, id, and class list, WKRenderObject does not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660736</commentid>
    <comment_count>1</comment_count>
      <attachid>150243</attachid>
    <who name="">mitz</who>
    <bug_when>2012-06-29 13:20:13 -0700</bug_when>
    <thetext>Created attachment 150243
Move element info from WebRenderLayer to WebRenderObject and update API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660743</commentid>
    <comment_count>2</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-06-29 13:26:45 -0700</bug_when>
    <thetext>Fixed in &lt;http://trac.webkit.org/r121584&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150243</attachid>
            <date>2012-06-29 13:20:13 -0700</date>
            <delta_ts>2012-06-29 13:25:01 -0700</delta_ts>
            <desc>Move element info from WebRenderLayer to WebRenderObject and update API</desc>
            <filename>90301_r1.diff</filename>
            <type>text/plain</type>
            <size>24901</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMTU4MykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisyMDEyLTA2LTI5ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgQ2Fu4oCZdCBnZXQgYmFzaWMgZWxl
bWVudCBpbmZvIGZyb20gYSBXS1JlbmRlck9iamVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTAzMDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlZCB0aGUgZWxlbWVudCBpbmZvICh0YWcgbmFtZSwg
aWQgYW5kIGNsYXNzIG5hbWVzKSBmcm9tIFdlYlJlbmRlckxheWVyIHRvIFdlYlJlbmRlck9iamVj
dCwKKyAgICAgICAgYW5kIGdhdmUgV2ViUmVuZGVyTGF5ZXIgYSByZWZlcmVuY2UgdG8gYSAoc2hh
bGxvdykgV2ViUmVuZGVyT2JqZWN0LiBBZGRlZCBXS1JlbmRlck9iamVjdCBBUEkKKyAgICAgICAg
Zm9yIGdldHRpbmcgZWxlbWVudCBpbmZvLCB3aGlsZSBsZWF2aW5nIHRoZSBXS1JlbmRlckxheWVy
IEFQSSBpbiBwbGFjZSBmb3Igbm93IGZvciBTYWZhcmkuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJ
L2MvV0tSZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXS1JlbmRlckxheWVyR2V0UmVuZGVyZXIp
OiBBZGRlZCB0aGlzIHdyYXBwZXIuCisgICAgICAgIChXS1JlbmRlckxheWVyQ29weVJlbmRlcmVy
TmFtZSk6IENoYW5nZWQgdG8gZ2V0IHRoZSBuYW1lIGZyb20gdGhlIHJlbmRlcmVyLgorICAgICAg
ICAoV0tSZW5kZXJMYXllckNvcHlFbGVtZW50VGFnTmFtZSk6IENoYW5nZWQgdG8gZ28gdGhyb3Vn
aCB0aGUgcmVuZGVyZXIuCisgICAgICAgIChXS1JlbmRlckxheWVyQ29weUVsZW1lbnRJRCk6IERp
dHRvLgorICAgICAgICAoV0tSZW5kZXJMYXllckdldEVsZW1lbnRDbGFzc05hbWVzKTogRGl0dG8u
CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLUmVuZGVyTGF5ZXIuaDogQWRkZWQgZGVjbGFyYXRp
b24gb2YgV0tSZW5kZXJMYXllckdldFJlbmRlcmVyKCkgYW5kIGNvbW1lbnRzCisgICAgICAgIGFi
b3V0IHJlbW92aW5nIG9sZGVyIEFQSS4KKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tSZW5kZXJP
YmplY3QuY3BwOgorICAgICAgICAoV0tSZW5kZXJPYmplY3RDb3B5RWxlbWVudFRhZ05hbWUpOiBB
ZGRlZCB0aGlzIHdyYXBwZXIuCisgICAgICAgIChXS1JlbmRlck9iamVjdENvcHlFbGVtZW50SUQp
OiBEaXR0by4KKyAgICAgICAgKFdLUmVuZGVyT2JqZWN0R2V0RWxlbWVudENsYXNzTmFtZXMpOiBE
aXR0by4KKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tSZW5kZXJPYmplY3QuaDoKKyAgICAgICAg
KiBTaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lc3Nh
Z2VFbmNvZGVyOjpiYXNlRW5jb2RlKTogUmVtb3ZlZCB0aGUgZWxlbWVudCBpbmZvIGZyb20gdGhl
IGVuY29kaW5nIG9mCisgICAgICAgIFdlYlJlbmRlckxheWVyLCBhbmQgYWRkZWQgdGhlIHJlbmRl
cmVyLiBBZGRlZCB0aGUgZWxlbWVudCBpbmZvIHRvIHRoZSBlbmNvZGluZyBvZgorICAgICAgICBX
ZWJSZW5kZXJPYmplY3QuCisgICAgICAgIChXZWJLaXQ6OlVzZXJNZXNzYWdlRGVjb2Rlcjo6YmFz
ZURlY29kZSk6IFVwZGF0ZWQgdG8gbWF0Y2ggdGhlIGVuY29kaW5nIGNoYW5nZXMuCisgICAgICAg
ICogU2hhcmVkL1dlYlJlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVuZGVy
TGF5ZXI6OldlYlJlbmRlckxheWVyKTogQ2hhbmdlZCB0byBpbml0aWFsaXplIHRoZSBtX3JlbmRl
cmVyIG1lbWJlcgorICAgICAgICB2YXJpYWJsZSB3aXRoIGEgV2ViUmVuZGVyT2JqZWN0IGZvciB0
aGUgbGF5ZXLigJlzIHJlbmRlcmVyLCBhbmQgcmVtb3ZlZCB0aGUgaW5pdGlhbGl6YXRpb24gb2YK
KyAgICAgICAgdGhlIGVsZW1lbnQtcmVsYXRlZCBtZW1iZXIgdmFyaWFibGVzIHRoYXQgd2VyZSBy
ZW1vdmVkLgorICAgICAgICAqIFNoYXJlZC9XZWJSZW5kZXJMYXllci5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZW5kZXJMYXllcjo6Y3JlYXRlKTogQ2hhbmdlZCB0byB0YWtlIGEgcmVuZGVyZXIg
aW5zdGVhZCBvZiByZW5kZXJlciBhbmQgZWxlbWVudAorICAgICAgICBpbmZvLgorICAgICAgICAo
V2ViS2l0OjpXZWJSZW5kZXJMYXllcjo6cmVuZGVyZXIpOiBBZGRlZCB0aGlzIGdldHRlci4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVuZGVyTGF5ZXI6OldlYlJlbmRlckxheWVyKTogQ2hhbmdlZCB0
byB0YWtlIGEgcmVuZGVyZXIgaW5zdGVhZCBvZiByZW5kZXJlciBhbmQKKyAgICAgICAgZWxlbWVu
dCBpbmZvLgorICAgICAgICAqIFNoYXJlZC9XZWJSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJSZW5kZXJPYmplY3Q6OmNyZWF0ZSk6IENoYW5nZWQgdG8gcGFzcyB0cnVlIGZv
ciB0aGUgc2hvdWxkSW5jbHVkZURlc2NlbmRhbnRzCisgICAgICAgIHBhcmFtZXRlci4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUmVuZGVyT2JqZWN0OjpXZWJSZW5kZXJPYmplY3QpOiBBZGRlZCBhIHNo
b3VsZEluY2x1ZGVEZXNjZGVuZGFudHMgYm9vbGVhbgorICAgICAgICBwYXJhbWV0ZXIuIFdoZW4g
aXQgaXMgZmFsc2UsIHRoZSBtX2NoaWxkcmVuIGFycmF5IHJlbWFpbnMgbnVsbC4gQWRkZWQgaW5p
dGlhbGl6YXRpb24gb2YKKyAgICAgICAgbWVtYmVyIHZhcmlhYmxlcyB3aXRoIHRoZSBlbGVtZW50
4oCZcyB0YWcgbmFtZSwgaWQgYW5kIGNsYXNzIGxpc3QuCisgICAgICAgICogU2hhcmVkL1dlYlJl
bmRlck9iamVjdC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW5kZXJPYmplY3Q6OmNyZWF0ZSk6
IEFkZGVkIGFuIG92ZXJsb2FkIHRoYXQgdGFrZXMgYSBSZW5kZXJPYmplY3QgYW5kIGNyZWF0ZXMK
KyAgICAgICAgYSBzaGFsbG93IFdlYlJlbmRlck9iamVjdC4KKyAgICAgICAgKFdlYlJlbmRlck9i
amVjdCk6IENoYW5nZWQgdG8gdGFrZSBlbGVtZW50IHRhZyBuYW1lLCBpZCBhbmQgY2xhc3MgbGlz
dC4KKyAgICAgICAgKFdlYktpdDo6V2ViUmVuZGVyT2JqZWN0OjplbGVtZW50VGFnTmFtZSk6IEFk
ZGVkIHRoaXMgZ2V0dGVyLgorICAgICAgICAoV2ViS2l0OjpXZWJSZW5kZXJPYmplY3Q6OmVsZW1l
bnRJRCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJSZW5kZXJPYmplY3Q6OmVsZW1lbnRD
bGFzc05hbWVzKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlJlbmRlck9iamVjdDo6V2Vi
UmVuZGVyT2JqZWN0KTogCisKIDIwMTItMDYtMjkgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTIxNTcyLgpJbmRleDog
U291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgJKHJldmlzaW9uIDEyMTU1
NikKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDUsMTAgKzE0NSw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgICAgICBj
YXNlIEFQSU9iamVjdDo6VHlwZVJlbmRlckxheWVyOiB7CiAgICAgICAgICAgICBXZWJSZW5kZXJM
YXllciogcmVuZGVyTGF5ZXIgPSBzdGF0aWNfY2FzdDxXZWJSZW5kZXJMYXllcio+KG1fcm9vdCk7
Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUocmVuZGVyTGF5ZXItPnJlbmRlck9iamVjdE5h
bWUoKSk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUocmVuZGVyTGF5ZXItPmVsZW1lbnRU
YWdOYW1lKCkpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHJlbmRlckxheWVyLT5lbGVt
ZW50SUQoKSk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUoT3duZXIocmVuZGVyTGF5ZXIt
PmVsZW1lbnRDbGFzc05hbWVzKCkpKTsKKyAgICAgICAgICAgIGVuY29kZXItPmVuY29kZShPd25l
cihyZW5kZXJMYXllci0+cmVuZGVyZXIoKSkpOwogICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2Rl
KHJlbmRlckxheWVyLT5pc1JlZmxlY3Rpb24oKSk7CiAgICAgICAgICAgICBlbmNvZGVyLT5lbmNv
ZGUocmVuZGVyTGF5ZXItPmlzQ2xpcHBpbmcoKSk7CiAgICAgICAgICAgICBlbmNvZGVyLT5lbmNv
ZGUocmVuZGVyTGF5ZXItPmlzQ2xpcHBlZCgpKTsKQEAgLTE2Miw2ICsxNTksOSBAQCBwdWJsaWM6
CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlUmVuZGVyT2JqZWN0OiB7CiAgICAgICAgICAg
ICBXZWJSZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCA9IHN0YXRpY19jYXN0PFdlYlJlbmRlck9i
amVjdCo+KG1fcm9vdCk7CiAgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUocmVuZGVyT2JqZWN0
LT5uYW1lKCkpOworICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHJlbmRlck9iamVjdC0+ZWxl
bWVudFRhZ05hbWUoKSk7CisgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUocmVuZGVyT2JqZWN0
LT5lbGVtZW50SUQoKSk7CisgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUoT3duZXIocmVuZGVy
T2JqZWN0LT5lbGVtZW50Q2xhc3NOYW1lcygpKSk7CiAgICAgICAgICAgICBlbmNvZGVyLT5lbmNv
ZGUocmVuZGVyT2JqZWN0LT5hYnNvbHV0ZVBvc2l0aW9uKCkpOwogICAgICAgICAgICAgZW5jb2Rl
ci0+ZW5jb2RlKHJlbmRlck9iamVjdC0+ZnJhbWVSZWN0KCkpOwogICAgICAgICAgICAgZW5jb2Rl
ci0+ZW5jb2RlKE93bmVyKHJlbmRlck9iamVjdC0+Y2hpbGRyZW4oKS5nZXQoKSkpOwpAQCAtMzY3
LDEwICszNjcsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
ICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZVJlbmRlckxheWVyOiB7Ci0gICAgICAgICAgICBTdHJp
bmcgcmVuZGVyT2JqZWN0TmFtZTsKLSAgICAgICAgICAgIFN0cmluZyBlbGVtZW50VGFnTmFtZTsK
LSAgICAgICAgICAgIFN0cmluZyBlbGVtZW50SUQ7Ci0gICAgICAgICAgICBSZWZQdHI8QVBJT2Jq
ZWN0PiBlbGVtZW50Q2xhc3NOYW1lczsKKyAgICAgICAgICAgIFJlZlB0cjxBUElPYmplY3Q+IHJl
bmRlcmVyOwogICAgICAgICAgICAgYm9vbCBpc1JlZmxlY3Rpb247CiAgICAgICAgICAgICBib29s
IGlzQ2xpcHBpbmc7CiAgICAgICAgICAgICBib29sIGlzQ2xpcHBlZDsKQEAgLTM4MCwxNCArMzc3
LDEwIEBAIHB1YmxpYzoKICAgICAgICAgICAgIFJlZlB0cjxBUElPYmplY3Q+IG5vcm1hbEZsb3dM
aXN0OwogICAgICAgICAgICAgUmVmUHRyPEFQSU9iamVjdD4gcG9zaXRpdmVaT3JkZXJMaXN0Owog
Ci0gICAgICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZW5kZXJPYmplY3ROYW1lKSkKLSAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBpZiAoIWRlY29kZXItPmRl
Y29kZShlbGVtZW50VGFnTmFtZSkpCisgICAgICAgICAgICBPd25lciByZW5kZXJlckNvZGVyKGNv
ZGVyLCByZW5kZXJlcik7CisgICAgICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZW5kZXJl
ckNvZGVyKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBpZiAo
IWRlY29kZXItPmRlY29kZShlbGVtZW50SUQpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgICAgIE93bmVyIGNsYXNzTmFtZXNDb2Rlcihjb2RlciwgZWxlbWVudENsYXNz
TmFtZXMpOwotICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoY2xhc3NOYW1lc0NvZGVy
KSkKKyAgICAgICAgICAgIGlmIChyZW5kZXJlci0+dHlwZSgpICE9IEFQSU9iamVjdDo6VHlwZVJl
bmRlck9iamVjdCkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBp
ZiAoIWRlY29kZXItPmRlY29kZUJvb2woaXNSZWZsZWN0aW9uKSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC00MDgsMjAgKzQwMSwyOSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBP
d25lciBwb3NpdGl2ZVpPcmRlckxpc3RDb2Rlcihjb2RlciwgcG9zaXRpdmVaT3JkZXJMaXN0KTsK
ICAgICAgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBvc2l0aXZlWk9yZGVyTGlzdENvZGVy
KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBjb2Rlci5tX3Jv
b3QgPSBXZWJSZW5kZXJMYXllcjo6Y3JlYXRlKHJlbmRlck9iamVjdE5hbWUsIGVsZW1lbnRUYWdO
YW1lLCBlbGVtZW50SUQsIHN0YXRpY19wb2ludGVyX2Nhc3Q8TXV0YWJsZUFycmF5PihlbGVtZW50
Q2xhc3NOYW1lcyksCi0gICAgICAgICAgICAgICAgaXNSZWZsZWN0aW9uLCBpc0NsaXBwaW5nLCBp
c0NsaXBwZWQsIHN0YXRpY19jYXN0PFdlYlJlbmRlckxheWVyOjpDb21wb3NpdGluZ0xheWVyVHlw
ZT4oY29tcG9zaXRpbmdMYXllclR5cGVBc1VJbnQzMiksCisgICAgICAgICAgICBjb2Rlci5tX3Jv
b3QgPSBXZWJSZW5kZXJMYXllcjo6Y3JlYXRlKHN0YXRpY19wb2ludGVyX2Nhc3Q8V2ViUmVuZGVy
T2JqZWN0PihyZW5kZXJlciksIGlzUmVmbGVjdGlvbiwgaXNDbGlwcGluZywgaXNDbGlwcGVkLCBz
dGF0aWNfY2FzdDxXZWJSZW5kZXJMYXllcjo6Q29tcG9zaXRpbmdMYXllclR5cGU+KGNvbXBvc2l0
aW5nTGF5ZXJUeXBlQXNVSW50MzIpLAogICAgICAgICAgICAgICAgIGFic29sdXRlQm91bmRpbmdC
b3gsIHN0YXRpY19wb2ludGVyX2Nhc3Q8TXV0YWJsZUFycmF5PihuZWdhdGl2ZVpPcmRlckxpc3Qp
LCBzdGF0aWNfcG9pbnRlcl9jYXN0PE11dGFibGVBcnJheT4obm9ybWFsRmxvd0xpc3QpLAogICAg
ICAgICAgICAgICAgIHN0YXRpY19wb2ludGVyX2Nhc3Q8TXV0YWJsZUFycmF5Pihwb3NpdGl2ZVpP
cmRlckxpc3QpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ug
QVBJT2JqZWN0OjpUeXBlUmVuZGVyT2JqZWN0OiB7CiAgICAgICAgICAgICBTdHJpbmcgbmFtZTsK
KyAgICAgICAgICAgIFN0cmluZyBlbGVtZW50VGFnTmFtZTsKKyAgICAgICAgICAgIFN0cmluZyBl
bGVtZW50SUQ7CisgICAgICAgICAgICBSZWZQdHI8QVBJT2JqZWN0PiBlbGVtZW50Q2xhc3NOYW1l
czsKICAgICAgICAgICAgIFdlYkNvcmU6OkludFBvaW50IGFic29sdXRlUG9zaXRpb247CiAgICAg
ICAgICAgICBXZWJDb3JlOjpJbnRSZWN0IGZyYW1lUmVjdDsKICAgICAgICAgICAgIFJlZlB0cjxB
UElPYmplY3Q+IGNoaWxkcmVuOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoIWRlY29k
ZXItPmRlY29kZShuYW1lKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
ICAgICBpZiAoIWRlY29kZXItPmRlY29kZShlbGVtZW50VGFnTmFtZSkpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoZWxlbWVu
dElEKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBPd25lciBj
bGFzc05hbWVzQ29kZXIoY29kZXIsIGVsZW1lbnRDbGFzc05hbWVzKTsKKyAgICAgICAgICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKGNsYXNzTmFtZXNDb2RlcikpCisgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoYWJzb2x1dGVQb3Np
dGlvbikpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGUoZnJhbWVSZWN0KSkKQEAgLTQyOSw5ICs0MzEsOSBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICBPd25lciBtZXNzYWdlQ29kZXIoY29kZXIsIGNoaWxkcmVuKTsKICAgICAgICAg
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKG1lc3NhZ2VDb2RlcikpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKGNoaWxkcmVuLT50eXBlKCkgIT0gQVBJT2Jq
ZWN0OjpUeXBlQXJyYXkpCisgICAgICAgICAgICBpZiAoY2hpbGRyZW4gJiYgY2hpbGRyZW4tPnR5
cGUoKSAhPSBBUElPYmplY3Q6OlR5cGVBcnJheSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgICAgICBjb2Rlci5tX3Jvb3QgPSBXZWJSZW5kZXJPYmplY3Q6OmNyZWF0ZShu
YW1lLCBhYnNvbHV0ZVBvc2l0aW9uLCBmcmFtZVJlY3QsIFdURjo6c3RhdGljX3BvaW50ZXJfY2Fz
dDxNdXRhYmxlQXJyYXk+KGNoaWxkcmVuKSk7CisgICAgICAgICAgICBjb2Rlci5tX3Jvb3QgPSBX
ZWJSZW5kZXJPYmplY3Q6OmNyZWF0ZShuYW1lLCBlbGVtZW50VGFnTmFtZSwgZWxlbWVudElELCBX
VEY6OnN0YXRpY19wb2ludGVyX2Nhc3Q8TXV0YWJsZUFycmF5PihlbGVtZW50Q2xhc3NOYW1lcyks
IGFic29sdXRlUG9zaXRpb24sIGZyYW1lUmVjdCwgV1RGOjpzdGF0aWNfcG9pbnRlcl9jYXN0PE11
dGFibGVBcnJheT4oY2hpbGRyZW4pKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlVVJMOiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUmVuZGVyTGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJSZW5kZXJMYXllci5jcHAJKHJldmlzaW9uIDEyMTU1NikKKysrIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJSZW5kZXJMYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1LDI3ICs3
NSw3IEBAIFBhc3NSZWZQdHI8TXV0YWJsZUFycmF5PiBXZWJSZW5kZXJMYXllcjoKIAogV2ViUmVu
ZGVyTGF5ZXI6OldlYlJlbmRlckxheWVyKFJlbmRlckxheWVyKiBsYXllcikKIHsKLSAgICBSZW5k
ZXJCb3hNb2RlbE9iamVjdCogcmVuZGVyZXIgPSBsYXllci0+cmVuZGVyZXIoKTsKLQotICAgIG1f
cmVuZGVyT2JqZWN0TmFtZSA9IHJlbmRlcmVyLT5yZW5kZXJOYW1lKCk7Ci0KLSAgICBpZiAoTm9k
ZSogbm9kZSA9IHJlbmRlcmVyLT5ub2RlKCkpIHsKLSAgICAgICAgaWYgKG5vZGUtPmlzRWxlbWVu
dE5vZGUoKSkgewotICAgICAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IHRvRWxlbWVudChub2Rl
KTsKLSAgICAgICAgICAgIG1fZWxlbWVudFRhZ05hbWUgPSBlbGVtZW50LT50YWdOYW1lKCk7Ci0g
ICAgICAgICAgICBtX2VsZW1lbnRJRCA9IGVsZW1lbnQtPmdldElkQXR0cmlidXRlKCk7Ci0gICAg
ICAgICAgICBpZiAoZWxlbWVudC0+aXNTdHlsZWRFbGVtZW50KCkgJiYgZWxlbWVudC0+aGFzQ2xh
c3MoKSkgewotICAgICAgICAgICAgICAgIFN0eWxlZEVsZW1lbnQqIHN0eWxlZEVsZW1lbnQgPSBz
dGF0aWNfY2FzdDxTdHlsZWRFbGVtZW50Kj4oZWxlbWVudCk7Ci0gICAgICAgICAgICAgICAgaWYg
KHNpemVfdCBjbGFzc05hbWVDb3VudCA9IHN0eWxlZEVsZW1lbnQtPmNsYXNzTmFtZXMoKS5zaXpl
KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgbV9lbGVtZW50Q2xhc3NOYW1lcyA9IE11dGFibGVB
cnJheTo6Y3JlYXRlKCk7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgY2xhc3NOYW1lQ291bnQ7ICsraSkKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fZWxlbWVu
dENsYXNzTmFtZXMtPmFwcGVuZChXZWJTdHJpbmc6OmNyZWF0ZShzdHlsZWRFbGVtZW50LT5jbGFz
c05hbWVzKClbaV0pLmdldCgpKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgfQotICAgIH0KLQorICAgIG1fcmVuZGVyZXIgPSBXZWJSZW5kZXJPYmplY3Q6OmNy
ZWF0ZShsYXllci0+cmVuZGVyZXIoKSk7CiAgICAgbV9pc1JlZmxlY3Rpb24gPSBsYXllci0+aXNS
ZWZsZWN0aW9uKCk7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVuZGVyTGF5ZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVuZGVyTGF5ZXIuaAkocmV2aXNpb24gMTIxNTU2KQorKysg
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlbmRlckxheWVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI2LDEyICsyNiw3IEBACiAjaWZuZGVmIFdlYlJlbmRlckxheWVyX2gKICNkZWZpbmUgV2ViUmVu
ZGVyTGF5ZXJfaAogCi0jaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVkZSAiTXV0YWJsZUFy
cmF5LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisjaW5jbHVkZSAiV2ViUmVuZGVyT2JqZWN0LmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBjbGFzcyBSZW5kZXJMYXllcjsKQEAgLTQ4LDIyICs0MywxNyBAQCBwdWJsaWM6
CiAgICAgZW51bSBDb21wb3NpdGluZ0xheWVyVHlwZSB7IE5vbmUsIE5vcm1hbCwgVGlsZWQsIE1l
ZGlhLCBDb250YWluZXIgfTsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlJlbmRlckxheWVy
PiBjcmVhdGUoV2ViUGFnZSopOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlJlbmRlckxheWVy
PiBjcmVhdGUoY29uc3QgU3RyaW5nJiByZW5kZXJPYmplY3ROYW1lLCBjb25zdCBTdHJpbmcmIGVs
ZW1lbnRUYWdOYW1lLCBjb25zdCBTdHJpbmcmIGVsZW1lbnRJRCwgUGFzc1JlZlB0cjxNdXRhYmxl
QXJyYXk+IGVsZW1lbnRDbGFzc05hbWVzLAotICAgICAgICBib29sIGlzUmVmbGVjdGlvbiwgYm9v
bCBpc0NsaXBwaW5nLCBib29sIGlzQ2xpcHBlZCwgQ29tcG9zaXRpbmdMYXllclR5cGUgdHlwZSwg
V2ViQ29yZTo6SW50UmVjdCBhYnNvbHV0ZUJvdW5kaW5nQm94LAotICAgICAgICBQYXNzUmVmUHRy
PE11dGFibGVBcnJheT4gbmVnYXRpdmVaT3JkZXJMaXN0LCBQYXNzUmVmUHRyPE11dGFibGVBcnJh
eT4gbm9ybWFsRmxvd0xpc3QsIFBhc3NSZWZQdHI8TXV0YWJsZUFycmF5PiBwb3NpdGl2ZVpPcmRl
ckxpc3QpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViUmVuZGVyTGF5ZXI+IGNyZWF0ZShQYXNz
UmVmUHRyPFdlYlJlbmRlck9iamVjdD4gcmVuZGVyZXIsIGJvb2wgaXNSZWZsZWN0aW9uLCBib29s
IGlzQ2xpcHBpbmcsIGJvb2wgaXNDbGlwcGVkLCBDb21wb3NpdGluZ0xheWVyVHlwZSB0eXBlLAor
ICAgICAgICBXZWJDb3JlOjpJbnRSZWN0IGFic29sdXRlQm91bmRpbmdCb3gsIFBhc3NSZWZQdHI8
TXV0YWJsZUFycmF5PiBuZWdhdGl2ZVpPcmRlckxpc3QsIFBhc3NSZWZQdHI8TXV0YWJsZUFycmF5
PiBub3JtYWxGbG93TGlzdCwgUGFzc1JlZlB0cjxNdXRhYmxlQXJyYXk+IHBvc2l0aXZlWk9yZGVy
TGlzdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViUmVuZGVyTGF5ZXIo
cmVuZGVyT2JqZWN0TmFtZSwgZWxlbWVudFRhZ05hbWUsIGVsZW1lbnRJRCwgZWxlbWVudENsYXNz
TmFtZXMsIGlzUmVmbGVjdGlvbiwgaXNDbGlwcGluZywgaXNDbGlwcGVkLAotICAgICAgICAgICAg
dHlwZSwgYWJzb2x1dGVCb3VuZGluZ0JveCwgbmVnYXRpdmVaT3JkZXJMaXN0LCBub3JtYWxGbG93
TGlzdCwgcG9zaXRpdmVaT3JkZXJMaXN0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
V2ViUmVuZGVyTGF5ZXIocmVuZGVyZXIsIGlzUmVmbGVjdGlvbiwgaXNDbGlwcGluZywgaXNDbGlw
cGVkLCB0eXBlLCBhYnNvbHV0ZUJvdW5kaW5nQm94LCBuZWdhdGl2ZVpPcmRlckxpc3QsIG5vcm1h
bEZsb3dMaXN0LCBwb3NpdGl2ZVpPcmRlckxpc3QpKTsKICAgICB9CiAKICAgICBJbW11dGFibGVB
cnJheSogbmVnYXRpdmVaT3JkZXJMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9uZWdhdGl2ZVpPcmRl
ckxpc3QuZ2V0KCk7IH0KICAgICBJbW11dGFibGVBcnJheSogbm9ybWFsRmxvd0xpc3QoKSBjb25z
dCB7IHJldHVybiBtX25vcm1hbEZsb3dMaXN0LmdldCgpOyB9CiAgICAgSW1tdXRhYmxlQXJyYXkq
IHBvc2l0aXZlWk9yZGVyTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpdmVaT3JkZXJMaXN0
LmdldCgpOyB9CiAKLSAgICBjb25zdCBTdHJpbmcmIHJlbmRlck9iamVjdE5hbWUoKSBjb25zdCB7
IHJldHVybiBtX3JlbmRlck9iamVjdE5hbWU7IH0KLSAgICBjb25zdCBTdHJpbmcmIGVsZW1lbnRU
YWdOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50VGFnTmFtZTsgfQotICAgIGNvbnN0IFN0
cmluZyYgZWxlbWVudElEKCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50SUQ7IH0KLSAgICBJbW11
dGFibGVBcnJheSogZWxlbWVudENsYXNzTmFtZXMoKSBjb25zdCB7IHJldHVybiBtX2VsZW1lbnRD
bGFzc05hbWVzLmdldCgpOyB9CisgICAgV2ViUmVuZGVyT2JqZWN0KiByZW5kZXJlcigpIGNvbnN0
IHsgcmV0dXJuIG1fcmVuZGVyZXIuZ2V0KCk7IH0KICAgICBib29sIGlzUmVmbGVjdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1faXNSZWZsZWN0aW9uOyB9CiAgICAgYm9vbCBpc0NsaXBwaW5nKCkgY29u
c3QgeyByZXR1cm4gbV9pc0NsaXBwaW5nOyB9CiAgICAgYm9vbCBpc0NsaXBwZWQoKSBjb25zdCB7
IHJldHVybiBtX2lzQ2xpcHBlZDsgfQpAQCAtNzIsMTMgKzYyLDkgQEAgcHVibGljOgogCiBwcml2
YXRlOgogICAgIFdlYlJlbmRlckxheWVyKFdlYkNvcmU6OlJlbmRlckxheWVyKik7Ci0gICAgV2Vi
UmVuZGVyTGF5ZXIoY29uc3QgU3RyaW5nJiByZW5kZXJPYmplY3ROYW1lLCBjb25zdCBTdHJpbmcm
IGVsZW1lbnRUYWdOYW1lLCBjb25zdCBTdHJpbmcmIGVsZW1lbnRJRCwgUGFzc1JlZlB0cjxNdXRh
YmxlQXJyYXk+IGVsZW1lbnRDbGFzc05hbWVzLAotICAgICAgICBib29sIGlzUmVmbGVjdGlvbiwg
Ym9vbCBpc0NsaXBwaW5nLCBib29sIGlzQ2xpcHBlZCwgQ29tcG9zaXRpbmdMYXllclR5cGUgdHlw
ZSwgV2ViQ29yZTo6SW50UmVjdCBhYnNvbHV0ZUJvdW5kaW5nQm94LAorICAgIFdlYlJlbmRlckxh
eWVyKFBhc3NSZWZQdHI8V2ViUmVuZGVyT2JqZWN0PiByZW5kZXJlciwgYm9vbCBpc1JlZmxlY3Rp
b24sIGJvb2wgaXNDbGlwcGluZywgYm9vbCBpc0NsaXBwZWQsIENvbXBvc2l0aW5nTGF5ZXJUeXBl
IHR5cGUsIFdlYkNvcmU6OkludFJlY3QgYWJzb2x1dGVCb3VuZGluZ0JveCwKICAgICAgICAgUGFz
c1JlZlB0cjxNdXRhYmxlQXJyYXk+IG5lZ2F0aXZlWk9yZGVyTGlzdCwgUGFzc1JlZlB0cjxNdXRh
YmxlQXJyYXk+IG5vcm1hbEZsb3dMaXN0LCBQYXNzUmVmUHRyPE11dGFibGVBcnJheT4gcG9zaXRp
dmVaT3JkZXJMaXN0KQotICAgICAgICA6IG1fcmVuZGVyT2JqZWN0TmFtZShyZW5kZXJPYmplY3RO
YW1lKQotICAgICAgICAsIG1fZWxlbWVudFRhZ05hbWUoZWxlbWVudFRhZ05hbWUpCi0gICAgICAg
ICwgbV9lbGVtZW50SUQoZWxlbWVudElEKQotICAgICAgICAsIG1fZWxlbWVudENsYXNzTmFtZXMo
ZWxlbWVudENsYXNzTmFtZXMpCisgICAgICAgIDogbV9yZW5kZXJlcihyZW5kZXJlcikKICAgICAg
ICAgLCBtX2lzUmVmbGVjdGlvbihpc1JlZmxlY3Rpb24pCiAgICAgICAgICwgbV9pc0NsaXBwaW5n
KGlzQ2xpcHBpbmcpCiAgICAgICAgICwgbV9pc0NsaXBwZWQoaXNDbGlwcGVkKQpAQCAtOTQsMTAg
KzgwLDcgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE11dGFibGVBcnJheT4g
Y3JlYXRlQXJyYXlGcm9tTGF5ZXJMaXN0KFZlY3RvcjxXZWJDb3JlOjpSZW5kZXJMYXllcio+Kik7
CiAKLSAgICBTdHJpbmcgbV9yZW5kZXJPYmplY3ROYW1lOwotICAgIFN0cmluZyBtX2VsZW1lbnRU
YWdOYW1lOwotICAgIFN0cmluZyBtX2VsZW1lbnRJRDsKLSAgICBSZWZQdHI8TXV0YWJsZUFycmF5
PiBtX2VsZW1lbnRDbGFzc05hbWVzOworICAgIFJlZlB0cjxXZWJSZW5kZXJPYmplY3Q+IG1fcmVu
ZGVyZXI7CiAgICAgYm9vbCBtX2lzUmVmbGVjdGlvbjsKICAgICBib29sIG1faXNDbGlwcGluZzsK
ICAgICBib29sIG1faXNDbGlwcGVkOwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJl
bmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJl
bmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDEyMTU1NikKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJSZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAj
aW5jbHVkZSAiV2ViUmVuZGVyT2JqZWN0LmgiCiAKICNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5j
bHVkZSAiV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvRnJhbWVMb2FkZXJDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlclRl
eHQuaD4KQEAgLTUwLDEzICs1MSwyOSBAQCBQYXNzUmVmUHRyPFdlYlJlbmRlck9iamVjdD4gV2Vi
UmVuZGVyT2JqCiAgICAgaWYgKCFjb250ZW50UmVuZGVyZXIpCiAgICAgICAgIHJldHVybiAwOwog
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJSZW5kZXJPYmplY3QoY29udGVudFJlbmRlcmVy
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJSZW5kZXJPYmplY3QoY29udGVudFJlbmRl
cmVyLCB0cnVlKSk7CiB9CiAKLVdlYlJlbmRlck9iamVjdDo6V2ViUmVuZGVyT2JqZWN0KFJlbmRl
ck9iamVjdCogcmVuZGVyZXIpCitXZWJSZW5kZXJPYmplY3Q6OldlYlJlbmRlck9iamVjdChSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyLCBib29sIHNob3VsZEluY2x1ZGVEZXNjZW5kYW50cykKIHsKICAg
ICBtX25hbWUgPSByZW5kZXJlci0+cmVuZGVyTmFtZSgpOwogCisgICAgaWYgKE5vZGUqIG5vZGUg
PSByZW5kZXJlci0+bm9kZSgpKSB7CisgICAgICAgIGlmIChub2RlLT5pc0VsZW1lbnROb2RlKCkp
IHsKKyAgICAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSB0b0VsZW1lbnQobm9kZSk7CisgICAg
ICAgICAgICBtX2VsZW1lbnRUYWdOYW1lID0gZWxlbWVudC0+dGFnTmFtZSgpOworICAgICAgICAg
ICAgbV9lbGVtZW50SUQgPSBlbGVtZW50LT5nZXRJZEF0dHJpYnV0ZSgpOworICAgICAgICAgICAg
aWYgKGVsZW1lbnQtPmlzU3R5bGVkRWxlbWVudCgpICYmIGVsZW1lbnQtPmhhc0NsYXNzKCkpIHsK
KyAgICAgICAgICAgICAgICBTdHlsZWRFbGVtZW50KiBzdHlsZWRFbGVtZW50ID0gc3RhdGljX2Nh
c3Q8U3R5bGVkRWxlbWVudCo+KGVsZW1lbnQpOworICAgICAgICAgICAgICAgIGlmIChzaXplX3Qg
Y2xhc3NOYW1lQ291bnQgPSBzdHlsZWRFbGVtZW50LT5jbGFzc05hbWVzKCkuc2l6ZSgpKSB7Cisg
ICAgICAgICAgICAgICAgICAgIG1fZWxlbWVudENsYXNzTmFtZXMgPSBNdXRhYmxlQXJyYXk6OmNy
ZWF0ZSgpOworICAgICAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNsYXNz
TmFtZUNvdW50OyArK2kpCisgICAgICAgICAgICAgICAgICAgICAgICBtX2VsZW1lbnRDbGFzc05h
bWVzLT5hcHBlbmQoV2ViU3RyaW5nOjpjcmVhdGUoc3R5bGVkRWxlbWVudC0+Y2xhc3NOYW1lcygp
W2ldKS5nZXQoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgfQorCiAgICAgLy8gRklYTUU6IGJyb2tlbiB3aXRoIHRyYW5zZm9ybXMKICAgICBtX2Fi
c29sdXRlUG9zaXRpb24gPSBmbG9vcmVkSW50UG9pbnQocmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0
ZShGbG9hdFBvaW50KCkpKTsKIApAQCAtNjksOSArODYsMTIgQEAgV2ViUmVuZGVyT2JqZWN0OjpX
ZWJSZW5kZXJPYmplY3QoUmVuZGVyTwogICAgIH0gZWxzZSBpZiAocmVuZGVyZXItPmlzUmVuZGVy
SW5saW5lKCkpCiAgICAgICAgIG1fZnJhbWVSZWN0ID0gdG9SZW5kZXJCb3hNb2RlbE9iamVjdChy
ZW5kZXJlciktPmJvcmRlckJvdW5kaW5nQm94KCk7CiAKKyAgICBpZiAoIXNob3VsZEluY2x1ZGVE
ZXNjZW5kYW50cykKKyAgICAgICAgcmV0dXJuOworCiAgICAgbV9jaGlsZHJlbiA9IE11dGFibGVB
cnJheTo6Y3JlYXRlKCk7CiAgICAgZm9yIChSZW5kZXJPYmplY3QqIGNvcmVDaGlsZCA9IHJlbmRl
cmVyLT5maXJzdENoaWxkKCk7IGNvcmVDaGlsZDsgY29yZUNoaWxkID0gY29yZUNoaWxkLT5uZXh0
U2libGluZygpKSB7Ci0gICAgICAgIFJlZlB0cjxXZWJSZW5kZXJPYmplY3Q+IGNoaWxkID0gYWRv
cHRSZWYobmV3IFdlYlJlbmRlck9iamVjdChjb3JlQ2hpbGQpKTsKKyAgICAgICAgUmVmUHRyPFdl
YlJlbmRlck9iamVjdD4gY2hpbGQgPSBhZG9wdFJlZihuZXcgV2ViUmVuZGVyT2JqZWN0KGNvcmVD
aGlsZCwgc2hvdWxkSW5jbHVkZURlc2NlbmRhbnRzKSk7CiAgICAgICAgIG1fY2hpbGRyZW4tPmFw
cGVuZChjaGlsZC5nZXQoKSk7CiAgICAgfQogCkBAIC04NCw3ICsxMDQsNyBAQCBXZWJSZW5kZXJP
YmplY3Q6OldlYlJlbmRlck9iamVjdChSZW5kZXJPCiAKICAgICBGcmFtZVZpZXcqIGZyYW1lVmll
dyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHdpZGdldCk7CiAgICAgaWYgKFJlbmRlclZpZXcq
IGNvcmVDb250ZW50UmVuZGVyZXIgPSBmcmFtZVZpZXctPmZyYW1lKCktPmNvbnRlbnRSZW5kZXJl
cigpKSB7Ci0gICAgICAgIFJlZlB0cjxXZWJSZW5kZXJPYmplY3Q+IGNvbnRlbnRSZW5kZXJlciA9
IGFkb3B0UmVmKG5ldyBXZWJSZW5kZXJPYmplY3QoY29yZUNvbnRlbnRSZW5kZXJlcikpOworICAg
ICAgICBSZWZQdHI8V2ViUmVuZGVyT2JqZWN0PiBjb250ZW50UmVuZGVyZXIgPSBhZG9wdFJlZihu
ZXcgV2ViUmVuZGVyT2JqZWN0KGNvcmVDb250ZW50UmVuZGVyZXIsIHNob3VsZEluY2x1ZGVEZXNj
ZW5kYW50cykpOwogICAgICAgICBtX2NoaWxkcmVuLT5hcHBlbmQoY29udGVudFJlbmRlcmVyLmdl
dCgpKTsKICAgICB9CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVuZGVyT2Jq
ZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlbmRlck9iamVj
dC5oCShyZXZpc2lvbiAxMjE1NTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVuZGVy
T2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJNdXRh
YmxlQXJyYXkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsMjIgKzQ1LDM1IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZVJlbmRlck9iamVj
dDsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlJlbmRlck9iamVjdD4gY3JlYXRlKFdlYlBh
Z2UqKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJSZW5kZXJPYmplY3Q+IGNyZWF0ZShjb25z
dCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkludFBvaW50IGFic29sdXRlUG9zaXRpb24sIFdlYkNv
cmU6OkludFJlY3QgZnJhbWVSZWN0LCBQYXNzUmVmUHRyPE11dGFibGVBcnJheT4gY2hpbGRyZW4p
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViUmVuZGVyT2JqZWN0PiBjcmVhdGUoV2ViQ29yZTo6
UmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgV2ViUmVuZGVyT2JqZWN0KG5hbWUsIGFic29sdXRlUG9zaXRpb24sIGZyYW1lUmVjdCwgY2hp
bGRyZW4pKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJSZW5kZXJPYmplY3QocmVu
ZGVyZXIsIGZhbHNlKSk7CisgICAgfQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViUmVuZGVy
T2JqZWN0PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGVsZW1lbnRU
YWdOYW1lLCBjb25zdCBTdHJpbmcmIGVsZW1lbnRJRCwKKyAgICAgICAgUGFzc1JlZlB0cjxNdXRh
YmxlQXJyYXk+IGVsZW1lbnRDbGFzc05hbWVzLCBXZWJDb3JlOjpJbnRQb2ludCBhYnNvbHV0ZVBv
c2l0aW9uLCBXZWJDb3JlOjpJbnRSZWN0IGZyYW1lUmVjdCwgUGFzc1JlZlB0cjxNdXRhYmxlQXJy
YXk+IGNoaWxkcmVuKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJSZW5k
ZXJPYmplY3QobmFtZSwgZWxlbWVudFRhZ05hbWUsIGVsZW1lbnRJRCwgZWxlbWVudENsYXNzTmFt
ZXMsIGFic29sdXRlUG9zaXRpb24sIGZyYW1lUmVjdCwgY2hpbGRyZW4pKTsKICAgICB9CiAKICAg
ICBSZWZQdHI8SW1tdXRhYmxlQXJyYXk+IGNoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gbV9jaGls
ZHJlbjsgfQogCiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1l
OyB9CisgICAgY29uc3QgU3RyaW5nJiBlbGVtZW50VGFnTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZWxlbWVudFRhZ05hbWU7IH0KKyAgICBjb25zdCBTdHJpbmcmIGVsZW1lbnRJRCgpIGNvbnN0IHsg
cmV0dXJuIG1fZWxlbWVudElEOyB9CisgICAgSW1tdXRhYmxlQXJyYXkqIGVsZW1lbnRDbGFzc05h
bWVzKCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50Q2xhc3NOYW1lcy5nZXQoKTsgfQogICAgIFdl
YkNvcmU6OkludFBvaW50IGFic29sdXRlUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2Fic29s
dXRlUG9zaXRpb247IH0KICAgICBXZWJDb3JlOjpJbnRSZWN0IGZyYW1lUmVjdCgpIGNvbnN0IHsg
cmV0dXJuIG1fZnJhbWVSZWN0OyB9CiAKIHByaXZhdGU6Ci0gICAgV2ViUmVuZGVyT2JqZWN0KFdl
YkNvcmU6OlJlbmRlck9iamVjdCopOwotICAgIFdlYlJlbmRlck9iamVjdChjb25zdCBTdHJpbmcm
IG5hbWUsIFdlYkNvcmU6OkludFBvaW50IGFic29sdXRlUG9zaXRpb24sIFdlYkNvcmU6OkludFJl
Y3QgZnJhbWVSZWN0LCBQYXNzUmVmUHRyPE11dGFibGVBcnJheT4gY2hpbGRyZW4pCisgICAgV2Vi
UmVuZGVyT2JqZWN0KFdlYkNvcmU6OlJlbmRlck9iamVjdCosIGJvb2wgc2hvdWxkSW5jbHVkZURl
c2NlbmRhbnRzKTsKKyAgICBXZWJSZW5kZXJPYmplY3QoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25z
dCBTdHJpbmcmIGVsZW1lbnRUYWdOYW1lLCBjb25zdCBTdHJpbmcmIGVsZW1lbnRJRCwgUGFzc1Jl
ZlB0cjxNdXRhYmxlQXJyYXk+IGVsZW1lbnRDbGFzc05hbWVzLAorICAgICAgICBXZWJDb3JlOjpJ
bnRQb2ludCBhYnNvbHV0ZVBvc2l0aW9uLCBXZWJDb3JlOjpJbnRSZWN0IGZyYW1lUmVjdCwgUGFz
c1JlZlB0cjxNdXRhYmxlQXJyYXk+IGNoaWxkcmVuKQogICAgICAgICA6IG1fY2hpbGRyZW4oY2hp
bGRyZW4pCiAgICAgICAgICwgbV9uYW1lKG5hbWUpCisgICAgICAgICwgbV9lbGVtZW50VGFnTmFt
ZShlbGVtZW50VGFnTmFtZSkKKyAgICAgICAgLCBtX2VsZW1lbnRJRChlbGVtZW50SUQpCisgICAg
ICAgICwgbV9lbGVtZW50Q2xhc3NOYW1lcyhlbGVtZW50Q2xhc3NOYW1lcykKICAgICAgICAgLCBt
X2Fic29sdXRlUG9zaXRpb24oYWJzb2x1dGVQb3NpdGlvbikKICAgICAgICAgLCBtX2ZyYW1lUmVj
dChmcmFtZVJlY3QpCiAgICAgewpAQCAtNzIsNiArODQsOSBAQCBwcml2YXRlOgogICAgIFJlZlB0
cjxNdXRhYmxlQXJyYXk+IG1fY2hpbGRyZW47CiAKICAgICBTdHJpbmcgbV9uYW1lOworICAgIFN0
cmluZyBtX2VsZW1lbnRUYWdOYW1lOworICAgIFN0cmluZyBtX2VsZW1lbnRJRDsKKyAgICBSZWZQ
dHI8TXV0YWJsZUFycmF5PiBtX2VsZW1lbnRDbGFzc05hbWVzOwogICAgIFdlYkNvcmU6OkludFBv
aW50IG1fYWJzb2x1dGVQb3NpdGlvbjsKICAgICBXZWJDb3JlOjpJbnRSZWN0IG1fZnJhbWVSZWN0
OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1JlbmRlckxheWVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tSZW5kZXJMYXll
ci5jcHAJKHJldmlzaW9uIDEyMTU1NikKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9X
S1JlbmRlckxheWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTYgKzM3LDIxIEBAIFdLVHlw
ZUlEIFdLUmVuZGVyTGF5ZXJHZXRUeXBlSUQoKQogICAgIHJldHVybiB0b0FQSShXZWJSZW5kZXJM
YXllcjo6QVBJVHlwZSk7CiB9CiAKK1dLUmVuZGVyT2JqZWN0UmVmIFdLUmVuZGVyTGF5ZXJHZXRS
ZW5kZXJlcihXS1JlbmRlckxheWVyUmVmIHJlbmRlckxheWVyUmVmKQoreworICAgIHJldHVybiB0
b0FQSSh0b0ltcGwocmVuZGVyTGF5ZXJSZWYpLT5yZW5kZXJlcigpKTsKK30KKwogV0tTdHJpbmdS
ZWYgV0tSZW5kZXJMYXllckNvcHlSZW5kZXJlck5hbWUoV0tSZW5kZXJMYXllclJlZiByZW5kZXJM
YXllclJlZikKIHsKLSAgICByZXR1cm4gdG9Db3BpZWRBUEkodG9JbXBsKHJlbmRlckxheWVyUmVm
KS0+cmVuZGVyT2JqZWN0TmFtZSgpKTsKKyAgICByZXR1cm4gdG9Db3BpZWRBUEkodG9JbXBsKHJl
bmRlckxheWVyUmVmKS0+cmVuZGVyZXIoKS0+bmFtZSgpKTsKIH0KIAogV0tTdHJpbmdSZWYgV0tS
ZW5kZXJMYXllckNvcHlFbGVtZW50VGFnTmFtZShXS1JlbmRlckxheWVyUmVmIHJlbmRlckxheWVy
UmVmKQogewogICAgIFdlYlJlbmRlckxheWVyKiByZW5kZXJMYXllciA9IHRvSW1wbChyZW5kZXJM
YXllclJlZik7Ci0gICAgaWYgKCFyZW5kZXJMYXllci0+ZWxlbWVudFRhZ05hbWUoKS5pc051bGwo
KSkKLSAgICAgICAgcmV0dXJuIHRvQ29waWVkQVBJKHRvSW1wbChyZW5kZXJMYXllclJlZiktPmVs
ZW1lbnRUYWdOYW1lKCkpOworICAgIGlmICghcmVuZGVyTGF5ZXItPnJlbmRlcmVyKCktPmVsZW1l
bnRUYWdOYW1lKCkuaXNOdWxsKCkpCisgICAgICAgIHJldHVybiB0b0NvcGllZEFQSShyZW5kZXJM
YXllci0+cmVuZGVyZXIoKS0+ZWxlbWVudFRhZ05hbWUoKSk7CiAKICAgICByZXR1cm4gMDsKIH0K
QEAgLTU0LDE1ICs1OSwxNSBAQCBXS1N0cmluZ1JlZiBXS1JlbmRlckxheWVyQ29weUVsZW1lbnRU
YWdOCiBXS1N0cmluZ1JlZiBXS1JlbmRlckxheWVyQ29weUVsZW1lbnRJRChXS1JlbmRlckxheWVy
UmVmIHJlbmRlckxheWVyUmVmKQogewogICAgIFdlYlJlbmRlckxheWVyKiByZW5kZXJMYXllciA9
IHRvSW1wbChyZW5kZXJMYXllclJlZik7Ci0gICAgaWYgKCFyZW5kZXJMYXllci0+ZWxlbWVudElE
KCkuaXNOdWxsKCkpCi0gICAgICAgIHJldHVybiB0b0NvcGllZEFQSSh0b0ltcGwocmVuZGVyTGF5
ZXJSZWYpLT5lbGVtZW50SUQoKSk7CisgICAgaWYgKCFyZW5kZXJMYXllci0+cmVuZGVyZXIoKS0+
ZWxlbWVudElEKCkuaXNOdWxsKCkpCisgICAgICAgIHJldHVybiB0b0NvcGllZEFQSShyZW5kZXJM
YXllci0+cmVuZGVyZXIoKS0+ZWxlbWVudElEKCkpOwogCiAgICAgcmV0dXJuIDA7CiB9CiAKIFdL
QXJyYXlSZWYgV0tSZW5kZXJMYXllckdldEVsZW1lbnRDbGFzc05hbWVzKFdLUmVuZGVyTGF5ZXJS
ZWYgcmVuZGVyTGF5ZXJSZWYpCiB7Ci0gICAgcmV0dXJuIHRvQVBJKHRvSW1wbChyZW5kZXJMYXll
clJlZiktPmVsZW1lbnRDbGFzc05hbWVzKCkpOworICAgIHJldHVybiB0b0FQSSh0b0ltcGwocmVu
ZGVyTGF5ZXJSZWYpLT5yZW5kZXJlcigpLT5lbGVtZW50Q2xhc3NOYW1lcygpKTsKIH0KIAogV0tS
ZWN0IFdLUmVuZGVyTGF5ZXJHZXRBYnNvbHV0ZUJvdW5kcyhXS1JlbmRlckxheWVyUmVmIHJlbmRl
ckxheWVyUmVmKQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLUmVuZGVyTGF5
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tSZW5kZXJM
YXllci5oCShyZXZpc2lvbiAxMjE1NTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
V0tSZW5kZXJMYXllci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw4ICszNiwxMiBAQCBleHRlcm4g
IkMiIHsKIAogV0tfRVhQT1JUIFdLVHlwZUlEIFdLUmVuZGVyTGF5ZXJHZXRUeXBlSUQoKTsKIAor
V0tfRVhQT1JUIFdLUmVuZGVyT2JqZWN0UmVmIFdLUmVuZGVyTGF5ZXJHZXRSZW5kZXJlcihXS1Jl
bmRlckxheWVyUmVmIHJlbmRlckxheWVyKTsKKworLy8gRklYTUU6IFJlbW92ZSB0aGlzIGZ1bmN0
aW9uIG9uY2UgU2FmYXJpIGRvZXMgbm90IHJlcXVpcmUgaXQuCiBXS19FWFBPUlQgV0tTdHJpbmdS
ZWYgV0tSZW5kZXJMYXllckNvcHlSZW5kZXJlck5hbWUoV0tSZW5kZXJMYXllclJlZiByZW5kZXJM
YXllcik7CiAKKy8vIEZJWE1FOiBSZW1vdmUgdGhlc2UgdGhyZWUgZnVuY3Rpb25zIG9uY2UgU2Fm
YXJpIGRvZXMgbm90IHJlcXVpcmUgdGhlbS4KIFdLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS1JlbmRl
ckxheWVyQ29weUVsZW1lbnRUYWdOYW1lKFdLUmVuZGVyTGF5ZXJSZWYgcmVuZGVyTGF5ZXIpOwog
V0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLUmVuZGVyTGF5ZXJDb3B5RWxlbWVudElEKFdLUmVuZGVy
TGF5ZXJSZWYgcmVuZGVyTGF5ZXIpOwogV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tSZW5kZXJMYXll
ckdldEVsZW1lbnRDbGFzc05hbWVzKFdLUmVuZGVyTGF5ZXJSZWYgcmVuZGVyTGF5ZXIpOwpJbmRl
eDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLUmVuZGVyT2JqZWN0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tSZW5kZXJPYmplY3QuY3BwCShy
ZXZpc2lvbiAxMjE1NTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tSZW5kZXJP
YmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0MiwyOSBAQCBXS1N0cmluZ1JlZiBX
S1JlbmRlck9iamVjdENvcHlOYW1lKFdLUmVuCiAgICAgcmV0dXJuIHRvQ29waWVkQVBJKHRvSW1w
bChyZW5kZXJPYmplY3RSZWYpLT5uYW1lKCkpOwogfQogCitXS1N0cmluZ1JlZiBXS1JlbmRlck9i
amVjdENvcHlFbGVtZW50VGFnTmFtZShXS1JlbmRlck9iamVjdFJlZiByZW5kZXJPYmplY3RSZWYp
Cit7CisgICAgV2ViUmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3QgPSB0b0ltcGwocmVuZGVyT2Jq
ZWN0UmVmKTsKKyAgICBpZiAoIXJlbmRlck9iamVjdC0+ZWxlbWVudFRhZ05hbWUoKS5pc051bGwo
KSkKKyAgICAgICAgcmV0dXJuIHRvQ29waWVkQVBJKHJlbmRlck9iamVjdC0+ZWxlbWVudFRhZ05h
bWUoKSk7CisKKyAgICByZXR1cm4gMDsKK30KKworV0tTdHJpbmdSZWYgV0tSZW5kZXJPYmplY3RD
b3B5RWxlbWVudElEKFdLUmVuZGVyT2JqZWN0UmVmIHJlbmRlck9iamVjdFJlZikKK3sKKyAgICBX
ZWJSZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCA9IHRvSW1wbChyZW5kZXJPYmplY3RSZWYpOwor
ICAgIGlmICghcmVuZGVyT2JqZWN0LT5lbGVtZW50SUQoKS5pc051bGwoKSkKKyAgICAgICAgcmV0
dXJuIHRvQ29waWVkQVBJKHJlbmRlck9iamVjdC0+ZWxlbWVudElEKCkpOworCisgICAgcmV0dXJu
IDA7Cit9CisKK1dLQXJyYXlSZWYgV0tSZW5kZXJPYmplY3RHZXRFbGVtZW50Q2xhc3NOYW1lcyhX
S1JlbmRlck9iamVjdFJlZiByZW5kZXJPYmplY3RSZWYpCit7CisgICAgcmV0dXJuIHRvQVBJKHRv
SW1wbChyZW5kZXJPYmplY3RSZWYpLT5lbGVtZW50Q2xhc3NOYW1lcygpKTsKK30KKwogV0tQb2lu
dCBXS1JlbmRlck9iamVjdEdldEFic29sdXRlUG9zaXRpb24oV0tSZW5kZXJPYmplY3RSZWYgcmVu
ZGVyT2JqZWN0UmVmKQogewogICAgIEludFBvaW50IGFic29sdXRlUG9zaXRpb24gPSB0b0ltcGwo
cmVuZGVyT2JqZWN0UmVmKS0+YWJzb2x1dGVQb3NpdGlvbigpOwpJbmRleDogU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLUmVuZGVyT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9jL1dLUmVuZGVyT2JqZWN0LmgJKHJldmlzaW9uIDEyMTU1NikKKysr
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1JlbmRlck9iamVjdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNiw2ICszNiwxMSBAQCBleHRlcm4gIkMiIHsKIFdLX0VYUE9SVCBXS1R5cGVJRCBX
S1JlbmRlck9iamVjdEdldFR5cGVJRCgpOwogCiBXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tSZW5k
ZXJPYmplY3RDb3B5TmFtZShXS1JlbmRlck9iamVjdFJlZiByZW5kZXJPYmplY3QpOworCitXS19F
WFBPUlQgV0tTdHJpbmdSZWYgV0tSZW5kZXJPYmplY3RDb3B5RWxlbWVudFRhZ05hbWUoV0tSZW5k
ZXJPYmplY3RSZWYgcmVuZGVyT2JqZWN0KTsKK1dLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS1JlbmRl
ck9iamVjdENvcHlFbGVtZW50SUQoV0tSZW5kZXJPYmplY3RSZWYgcmVuZGVyT2JqZWN0KTsKK1dL
X0VYUE9SVCBXS0FycmF5UmVmIFdLUmVuZGVyT2JqZWN0R2V0RWxlbWVudENsYXNzTmFtZXMoV0tS
ZW5kZXJPYmplY3RSZWYgcmVuZGVyT2JqZWN0KTsKKwogV0tfRVhQT1JUIFdLUG9pbnQgV0tSZW5k
ZXJPYmplY3RHZXRBYnNvbHV0ZVBvc2l0aW9uKFdLUmVuZGVyT2JqZWN0UmVmIHJlbmRlck9iamVj
dCk7CiBXS19FWFBPUlQgV0tSZWN0IFdLUmVuZGVyT2JqZWN0R2V0RnJhbWVSZWN0KFdLUmVuZGVy
T2JqZWN0UmVmIHJlbmRlck9iamVjdCk7CiBXS19FWFBPUlQgV0tBcnJheVJlZiBXS1JlbmRlck9i
amVjdEdldENoaWxkcmVuKFdLUmVuZGVyT2JqZWN0UmVmIHJlbmRlck9iamVjdCk7Cg==
</data>
<flag name="review"
          id="158461"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>