<?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>22635</bug_id>
          
          <creation_ts>2008-12-03 14:34:34 -0800</creation_ts>
          <short_desc>Crash when destroying element being animated in its start animation event</short_desc>
          <delta_ts>2008-12-05 17:42:35 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Chris Marrin">cmarrin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>101265</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-12-03 14:34:34 -0800</bug_when>
    <thetext>We should make LayoutTests for element destruction inside onAnimationStart/onAnimationIteration event handler callbacks (e.g. see bug 22499).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101278</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2008-12-03 17:40:38 -0800</bug_when>
    <thetext>In making the testcases for element destruction in the iteration and start events, I got a crash in the start event case. I&apos;m fixing it now. I&apos;ll send in the new tests along with the fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101282</commentid>
    <comment_count>2</comment_count>
      <attachid>25729</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2008-12-03 17:56:21 -0800</bug_when>
    <thetext>Created attachment 25729
Patch, including LayoutTest files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101551</commentid>
    <comment_count>3</comment_count>
      <attachid>25729</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-12-05 13:22:34 -0800</bug_when>
    <thetext>Comment on attachment 25729
Patch, including LayoutTest files

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101616</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2008-12-05 17:42:35 -0800</bug_when>
    <thetext>Sending        LayoutTests/ChangeLog
Adding         LayoutTests/animations/animation-iteration-event-destroy-renderer-expected.txt
Adding         LayoutTests/animations/animation-iteration-event-destroy-renderer.html
Adding         LayoutTests/animations/animation-start-event-destroy-renderer-expected.txt
Adding         LayoutTests/animations/animation-start-event-destroy-renderer.html
Sending        WebCore/ChangeLog
Sending        WebCore/page/animation/AnimationBase.cpp
Sending        WebCore/page/animation/AnimationController.cpp
Sending        WebCore/page/animation/CompositeAnimation.cpp
Sending        WebCore/page/animation/CompositeAnimation.h
Transmitting file data ..........
Committed revision 39059.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25729</attachid>
            <date>2008-12-03 17:56:21 -0800</date>
            <delta_ts>2008-12-05 13:22:34 -0800</delta_ts>
            <desc>Patch, including LayoutTest files</desc>
            <filename>22635.patch</filename>
            <type>text/plain</type>
            <size>23486</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzODk4MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTggQEAKKzIwMDgtMTItMDMgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZp
eCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjM1CisgICAg
ICAgIEZvciBpdGVyYXRpb24gYW5kIGVuZCBldmVudHMsIHByZXZpb3VzIGZpeGVzIHRvIHByZXZl
bnQgdGhlIGRlbGV0aW9uIG9mCisgICAgICAgIEFuaW1hdGlvbiBvYmplY3RzIChyZWYgY291bnRp
bmcgYW5kIGhhbmdpbmcgb250byBhIHJlZiBkdXJpbmcgZXZlbnQgY2FsbGJhY2tzKQorICAgICAg
ICB3YXMgc3VmZmljaWVudCB0byBwcmV2ZW50IGRhbmdsaW5nIHBvaW50ZXJzLiBCdXQgc3RhcnQg
ZXZlbnRzIGFyZSBzZW50IGluCisgICAgICAgIHRoZSBzdHlsZUF2YWlsYWJsZSgpIGNhbGwsIHdo
aWNoIGl0ZXJhdGVzIG92ZXIgQ29tcG9zaXRlQW5pbWF0aW9uIG9iamVjdHMsCisgICAgICAgIHdo
aWNoIGFyZSBub3QgcmVmIGNvdW50ZWQuIFNvIHRoYXQgb2JqZWN0IGNhbiBnZXQgZGVzdHJveWVk
IGluIHRoZSBldmVudAorICAgICAgICBoYW5kbGVyIHdoaWxlIHN0aWxsIGFjdGl2ZS4gU28gSSBh
ZGRlZCByZWZjb3VudGluZyBmb3IgQ29tcG9zaXRlQW5pbWF0aW9ucy4KKworICAgICAgICBBZGRp
dGlvbmFsbHksIHdoZW4gYW0gaXRlcmF0aW5nIG92ZXIgdGhlIENvbXBvc2l0aW5nQW5pbWF0aW9u
IGxpc3QsIGl0IGNhbgorICAgICAgICBiZSBkZWxldGVkLCB3aGljaCBtdXRhdGVzIHRoZSBsaXN0
LiBTbyBJIG5vdyBtYWtlIG9uZSBwYXNzIG92ZXIgdGhlIGxpc3QKKyAgICAgICAgYnVpbGRpbmcg
YSB2ZWN0b3Igb2YgQ29tcG9zaXRlQW5pbWF0aW9uIG9iamVjdHMgdGhhdCBuZWVkIHRvIGJlIGNh
bGxlZCBhbmQKKyAgICAgICAgdGhlbiBpdGVyYXRlIG92ZXIgdGhhdCB2ZWN0b3IgdG8gbWFrZSB0
aGUgYWN0dWFsIGNhbGxzLgorCisgICAgICAgIEZpbmFsbHksIHRvIG1ha2Ugc3VyZSB0aGUgbGlm
ZXRpbWUgb2YgdGhlIENvbXBvc2l0ZUFuaW1hdGlvbiBleGNlZWRzIHRoYXQgb2YKKyAgICAgICAg
dGhlIEFuaW1hdGlvbiBvYmplY3RzIGl0IG93bnMsIEkgbm93IGtlZXAgYSByZWYgdG8gdGhlIENv
bXBvc2l0ZUFuaW1hdGlvbgorICAgICAgICBpbiB0aGUgdGltZXIgY2FsbGJhY2sgZm9yIHRoZSBp
dGVyYXRpb24gYW5kIGVuZCBldmVudHMuIFRoYXQgbWVhbnMgSSBubworICAgICAgICBsb25nZXIg
bmVlZCB0byBrZWVwIGEgcmVmIHRvIHRoZSBBbmltYXRpb24gb2JqZWN0cyB0aGVtc2VsdmVzIGlu
IHRoYXQgdGltZXIKKyAgICAgICAgY2FsbGJhY2ssIHNpbmNlIHRoZSBDb21wb3NpdGVBbmltYXRp
b24gYWxyZWFkeSBoYXMgb25lLgorCisgICAgICAgIFRlc3RzOiBhbmltYXRpb25zL2FuaW1hdGlv
bi1pdGVyYXRpb24tZXZlbnQtZGVzdHJveS1yZW5kZXJlci5odG1sCisgICAgICAgICAgICAgICBh
bmltYXRpb25zL2FuaW1hdGlvbi1zdGFydC1ldmVudC1kZXN0cm95LXJlbmRlcmVyLmh0bWwKKwor
ICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QW5pbWF0aW9uQmFzZTo6dXBkYXRlU3RhdGVNYWNoaW5lKToKKyAgICAgICAgKFdlYkNv
cmU6OkFuaW1hdGlvbkJhc2U6OmFuaW1hdGlvblRpbWVyQ2FsbGJhY2tGaXJlZCk6CisgICAgICAg
ICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6fkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphY2Nl
c3NDb21wb3NpdGVBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJv
bGxlclByaXZhdGU6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkNvbnRyb2xs
ZXJQcml2YXRlOjpzdHlsZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25D
b250cm9sbGVyUHJpdmF0ZTo6dXBkYXRlQW5pbWF0aW9uVGltZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmFuaW1hdGlvblRpbWVyRmlyZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmlzQW5pbWF0aW5nUHJv
cGVydHlPblJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkNvbnRyb2xsZXJQ
cml2YXRlOjpzdXNwZW5kQW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25D
b250cm9sbGVyUHJpdmF0ZTo6cmVzdW1lQW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpB
bmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6cGF1c2VBbmltYXRpb25BdFRpbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OnBhdXNlVHJhbnNpdGlvbkF0
VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25Db250cm9sbGVyOjp1cGRhdGVBbmlt
YXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkNvbnRyb2xsZXI6OnNldEFuaW1h
dGlvblN0YXJ0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25Db250cm9sbGVyOjpz
ZXRUcmFuc2l0aW9uU3RhcnRUaW1lKToKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9Db21wb3Np
dGVBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlQW5pbWF0aW9uUHJp
dmF0ZTo6YW5pbWF0aW9uQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVB
bmltYXRpb25Qcml2YXRlOjppc1dhaXRpbmdGb3JTdHlsZUF2YWlsYWJsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wb3NpdGVBbmltYXRpb25Qcml2YXRlOjp+Q29tcG9zaXRlQW5pbWF0aW9uUHJp
dmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVBbmltYXRpb25Qcml2YXRlOjpjbGVh
clJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6Y2xlYXJS
ZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVBbmltYXRpb246OmFuaW1hdGlv
bkNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlQW5pbWF0aW9uOjppc1dh
aXRpbmdGb3JTdHlsZUF2YWlsYWJsZSk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9z
aXRlQW5pbWF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVBbmltYXRpb246OmNy
ZWF0ZSk6CisKIDIwMDgtMTItMDMgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IERhdmlkIEh5YXR0LgpJbmRleDogV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCShyZXZpc2lvbiAzODk3OSkKKysrIFdlYkNvcmUv
cGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwOSw4
ICs2MDksMTAgQEAgdm9pZCBBbmltYXRpb25CYXNlOjp1cGRhdGVTdGF0ZU1hY2hpbmUoQQogICAg
ICAgICAgICAgICAgIHByaW1lRXZlbnRUaW1lcnMoKTsKIAogICAgICAgICAgICAgICAgIC8vIFRy
aWdnZXIgYSByZW5kZXIgc28gd2UgY2FuIHN0YXJ0IHRoZSBhbmltYXRpb24KLSAgICAgICAgICAg
ICAgICBzZXRDaGFuZ2VkKG1fb2JqZWN0LT5lbGVtZW50KCkpOwotICAgICAgICAgICAgICAgIG1f
b2JqZWN0LT5hbmltYXRpb24oKS0+c3RhcnRVcGRhdGVSZW5kZXJpbmdEaXNwYXRjaGVyKCk7Cisg
ICAgICAgICAgICAgICAgaWYgKG1fb2JqZWN0KSB7CisgICAgICAgICAgICAgICAgICAgIHNldENo
YW5nZWQobV9vYmplY3QtPmVsZW1lbnQoKSk7CisgICAgICAgICAgICAgICAgICAgIG1fY29tcEFu
aW0tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS0+c3RhcnRVcGRhdGVSZW5kZXJpbmdEaXNwYXRjaGVy
KCk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
ICAgICAvLyBXZSBhcmUgcGF1c2luZyB3aGlsZSB3YWl0aW5nIGZvciBhIHN0YXJ0IHJlc3BvbnNl
LiBDYW5jZWwgdGhlIGFuaW1hdGlvbiBhbmQgd2FpdC4gV2hlbiAKICAgICAgICAgICAgICAgICAv
LyB3ZSB1bnBhdXNlLCB3ZSB3aWxsIGFjdCBhcyB0aG91Z2ggdGhlIHN0YXJ0IHRpbWVyIGp1c3Qg
ZmlyZWQKQEAgLTcwNiw4ICs3MDgsMTAgQEAgdm9pZCBBbmltYXRpb25CYXNlOjp1cGRhdGVTdGF0
ZU1hY2hpbmUoQQogdm9pZCBBbmltYXRpb25CYXNlOjphbmltYXRpb25UaW1lckNhbGxiYWNrRmly
ZWQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGRvdWJsZSBlbGFwc2VkVGltZSkKIHsK
ICAgICAvLyBXZSBoYXZlIHRvIG1ha2Ugc3VyZSB0byBrZWVwIGEgcmVmIHRvIHRoZSB0aGlzIHBv
aW50ZXIsIGJlY2F1c2UgaXQgY291bGQgZ2V0IGRlc3Ryb3llZAotICAgIC8vIGR1cmluZyBhbiBh
bmltYXRpb24gY2FsbGJhY2sgdGhhdCBtaWdodCBnZXQgY2FsbGVkLgotICAgIFJlZlB0cjxBbmlt
YXRpb25CYXNlPiBwcm90ZWN0b3IodGhpcyk7CisgICAgLy8gZHVyaW5nIGFuIGFuaW1hdGlvbiBj
YWxsYmFjayB0aGF0IG1pZ2h0IGdldCBjYWxsZWQuIFNpbmNlIHRoZSBvd25lciBpcyBhIENvbXBv
c2l0ZUFuaW1hdGlvbgorICAgIC8vIGFuZCBpdCByZWYgY291bnRzIHRoaXMgb2JqZWN0LCB3ZSB3
aWxsIGtlZXAgYSByZWYgdG8gdGhhdCBpbnN0ZWFkLiBUaGF0IHdheSB0aGUgQW5pbWF0aW9uQmFz
ZQorICAgIC8vIGNhbiBzdGlsbCBhY2Nlc3MgdGhlIHJlc291cmNlcyBvZiBpdHMgQ29tcG9zaXRl
QW5pbWF0aW9uIGFzIG5lZWRlZC4KKyAgICBSZWZQdHI8Q29tcG9zaXRlQW5pbWF0aW9uPiBwcm90
ZWN0b3IobV9jb21wQW5pbSk7CiAgICAgCiAgICAgQVNTRVJUKG1fb2JqZWN0LT5kb2N1bWVudCgp
ICYmICFtX29iamVjdC0+ZG9jdW1lbnQoKS0+aW5QYWdlQ2FjaGUoKSk7CiAKSW5kZXg6IFdlYkNv
cmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcAkocmV2aXNpb24g
Mzg5NzkpCisrKyBXZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw3IEBAIHB1YmxpYzoKICAgICBBbmltYXRpb25D
b250cm9sbGVyUHJpdmF0ZShGcmFtZSopOwogICAgIH5BbmltYXRpb25Db250cm9sbGVyUHJpdmF0
ZSgpOwogCi0gICAgQ29tcG9zaXRlQW5pbWF0aW9uKiBhY2Nlc3NDb21wb3NpdGVBbmltYXRpb24o
UmVuZGVyT2JqZWN0Kik7CisgICAgUGFzc1JlZlB0cjxDb21wb3NpdGVBbmltYXRpb24+IGFjY2Vz
c0NvbXBvc2l0ZUFuaW1hdGlvbihSZW5kZXJPYmplY3QqKTsKICAgICBib29sIGNsZWFyKFJlbmRl
ck9iamVjdCopOwogCiAgICAgdm9pZCBhbmltYXRpb25UaW1lckZpcmVkKFRpbWVyPEFuaW1hdGlv
bkNvbnRyb2xsZXJQcml2YXRlPiopOwpAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgYm9v
bCBwYXVzZVRyYW5zaXRpb25BdFRpbWUoUmVuZGVyT2JqZWN0KiwgY29uc3QgU3RyaW5nJiBwcm9w
ZXJ0eSwgZG91YmxlIHQpOwogCiBwcml2YXRlOgotICAgIHR5cGVkZWYgSGFzaE1hcDxSZW5kZXJP
YmplY3QqLCBDb21wb3NpdGVBbmltYXRpb24qPiBSZW5kZXJPYmplY3RBbmltYXRpb25NYXA7Cisg
ICAgdHlwZWRlZiBIYXNoTWFwPFJlbmRlck9iamVjdCosIFJlZlB0cjxDb21wb3NpdGVBbmltYXRp
b24+ID4gUmVuZGVyT2JqZWN0QW5pbWF0aW9uTWFwOwogCiAgICAgUmVuZGVyT2JqZWN0QW5pbWF0
aW9uTWFwIG1fY29tcG9zaXRlQW5pbWF0aW9uczsKICAgICBUaW1lcjxBbmltYXRpb25Db250cm9s
bGVyUHJpdmF0ZT4gbV9hbmltYXRpb25UaW1lcjsKQEAgLTgxLDE0ICs4MSwxMyBAQCBBbmltYXRp
b25Db250cm9sbGVyUHJpdmF0ZTo6QW5pbWF0aW9uQ29uCiAKIEFuaW1hdGlvbkNvbnRyb2xsZXJQ
cml2YXRlOjp+QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUoKQogewotICAgIGRlbGV0ZUFsbFZh
bHVlcyhtX2NvbXBvc2l0ZUFuaW1hdGlvbnMpOwogfQogCi1Db21wb3NpdGVBbmltYXRpb24qIEFu
aW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphY2Nlc3NDb21wb3NpdGVBbmltYXRpb24oUmVuZGVy
T2JqZWN0KiByZW5kZXJlcikKK1Bhc3NSZWZQdHI8Q29tcG9zaXRlQW5pbWF0aW9uPiBBbmltYXRp
b25Db250cm9sbGVyUHJpdmF0ZTo6YWNjZXNzQ29tcG9zaXRlQW5pbWF0aW9uKFJlbmRlck9iamVj
dCogcmVuZGVyZXIpCiB7Ci0gICAgQ29tcG9zaXRlQW5pbWF0aW9uKiBhbmltYXRpb24gPSBtX2Nv
bXBvc2l0ZUFuaW1hdGlvbnMuZ2V0KHJlbmRlcmVyKTsKKyAgICBSZWZQdHI8Q29tcG9zaXRlQW5p
bWF0aW9uPiBhbmltYXRpb24gPSBtX2NvbXBvc2l0ZUFuaW1hdGlvbnMuZ2V0KHJlbmRlcmVyKTsK
ICAgICBpZiAoIWFuaW1hdGlvbikgewotICAgICAgICBhbmltYXRpb24gPSBuZXcgQ29tcG9zaXRl
QW5pbWF0aW9uKG1fZnJhbWUtPmFuaW1hdGlvbigpKTsKKyAgICAgICAgYW5pbWF0aW9uID0gQ29t
cG9zaXRlQW5pbWF0aW9uOjpjcmVhdGUobV9mcmFtZS0+YW5pbWF0aW9uKCkpOwogICAgICAgICBt
X2NvbXBvc2l0ZUFuaW1hdGlvbnMuc2V0KHJlbmRlcmVyLCBhbmltYXRpb24pOwogICAgIH0KICAg
ICByZXR1cm4gYW5pbWF0aW9uOwpAQCAtOTgsMTkgKzk3LDI4IEBAIGJvb2wgQW5pbWF0aW9uQ29u
dHJvbGxlclByaXZhdGU6OmNsZWFyKFIKIHsKICAgICAvLyBSZXR1cm4gZmFsc2UgaWYgd2UgZGlk
bid0IGRvIGFueXRoaW5nIE9SIHdlIGFyZSBzdXNwZW5kZWQgKHNvIHdlIGRvbid0IHRyeSB0bwog
ICAgIC8vIGRvIGEgc2V0Q2hhbmdlZCgpIHdoZW4gc3VzcGVuZGVkKS4KLSAgICBDb21wb3NpdGVB
bmltYXRpb24qIGFuaW1hdGlvbiA9IG1fY29tcG9zaXRlQW5pbWF0aW9ucy50YWtlKHJlbmRlcmVy
KTsKKyAgICBQYXNzUmVmUHRyPENvbXBvc2l0ZUFuaW1hdGlvbj4gYW5pbWF0aW9uID0gbV9jb21w
b3NpdGVBbmltYXRpb25zLnRha2UocmVuZGVyZXIpOwogICAgIGlmICghYW5pbWF0aW9uKQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgYm9vbCB3YXNTdXNwZW5kZWQgPSBhbmltYXRpb24tPmlz
U3VzcGVuZGVkKCk7Ci0gICAgZGVsZXRlIGFuaW1hdGlvbjsKLSAgICByZXR1cm4gIXdhc1N1c3Bl
bmRlZDsKKyAgICBhbmltYXRpb24tPmNsZWFyUmVuZGVyZXIoKTsKKyAgICByZXR1cm4gYW5pbWF0
aW9uLT5pc1N1c3BlbmRlZCgpOwogfQogCiB2b2lkIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRl
OjpzdHlsZUF2YWlsYWJsZSgpCiB7CisgICAgLy8gc3R5bGVBdmFpbGFibGUoKSBjYW4gY2FsbCBl
dmVudCBoYW5kbGVycyB3aGljaCB3b3VsZCB1bHRpbWF0ZWx5IGRlbGV0ZSBhIENvbXBvc2l0ZUFu
aW1hdGlvbgorICAgIC8vIGZyb20gdGhlIG1fY29tcG9zaXRlQW5pbWF0aW9ucyB0YWJsZS4gU28g
d2UgY2FuJ3QgaXRlcmF0ZSBpdCBkaXJlY3RseS4gV2Ugd2lsbCBpbnN0ZWFkIGJ1aWxkCisgICAg
Ly8gYSBsaXN0IG9mIENvbXBvc2l0ZUFuaW1hdGlvbnMgd2hpY2ggbmVlZCB0aGUgc3R5bGVBdmFp
bGFibGUoKSBjYWxsIGl0ZXJhdGUgb3ZlciB0aGF0LgorICAgIFZlY3RvcjxSZWZQdHI8Q29tcG9z
aXRlQW5pbWF0aW9uPiA+IGxpc3Q7CisgICAgCiAgICAgUmVuZGVyT2JqZWN0QW5pbWF0aW9uTWFw
Ojpjb25zdF9pdGVyYXRvciBhbmltYXRpb25zRW5kID0gbV9jb21wb3NpdGVBbmltYXRpb25zLmVu
ZCgpOwogICAgIGZvciAoUmVuZGVyT2JqZWN0QW5pbWF0aW9uTWFwOjpjb25zdF9pdGVyYXRvciBp
dCA9IG1fY29tcG9zaXRlQW5pbWF0aW9ucy5iZWdpbigpOyBpdCAhPSBhbmltYXRpb25zRW5kOyAr
K2l0KQotICAgICAgICBpdC0+c2Vjb25kLT5zdHlsZUF2YWlsYWJsZSgpOworICAgICAgICBpZiAo
aXQtPnNlY29uZC0+aXNXYWl0aW5nRm9yU3R5bGVBdmFpbGFibGUoKSkKKyAgICAgICAgICAgIGxp
c3QuYXBwZW5kKGl0LT5zZWNvbmQpOworICAgIAorICAgIFZlY3RvcjxSZWZQdHI8Q29tcG9zaXRl
QW5pbWF0aW9uPiA+Ojpjb25zdF9pdGVyYXRvciBsaXN0RW5kID0gbGlzdC5lbmQoKTsKKyAgICBm
b3IgKFZlY3RvcjxSZWZQdHI8Q29tcG9zaXRlQW5pbWF0aW9uPiA+Ojpjb25zdF9pdGVyYXRvciBp
dCA9IGxpc3QuYmVnaW4oKTsgaXQgIT0gbGlzdEVuZDsgKytpdCkKKyAgICAgICAgKCppdCktPnN0
eWxlQXZhaWxhYmxlKCk7CiB9CiAKIHZvaWQgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OnVw
ZGF0ZUFuaW1hdGlvblRpbWVyKCkKQEAgLTExOSw3ICsxMjcsNyBAQCB2b2lkIEFuaW1hdGlvbkNv
bnRyb2xsZXJQcml2YXRlOjp1cGRhdGVBCiAKICAgICBSZW5kZXJPYmplY3RBbmltYXRpb25NYXA6
OmNvbnN0X2l0ZXJhdG9yIGFuaW1hdGlvbnNFbmQgPSBtX2NvbXBvc2l0ZUFuaW1hdGlvbnMuZW5k
KCk7CiAgICAgZm9yIChSZW5kZXJPYmplY3RBbmltYXRpb25NYXA6OmNvbnN0X2l0ZXJhdG9yIGl0
ID0gbV9jb21wb3NpdGVBbmltYXRpb25zLmJlZ2luKCk7IGl0ICE9IGFuaW1hdGlvbnNFbmQ7ICsr
aXQpIHsKLSAgICAgICAgQ29tcG9zaXRlQW5pbWF0aW9uKiBjb21wQW5pbSA9IGl0LT5zZWNvbmQ7
CisgICAgICAgIFJlZlB0cjxDb21wb3NpdGVBbmltYXRpb24+IGNvbXBBbmltID0gaXQtPnNlY29u
ZDsKICAgICAgICAgaWYgKCFjb21wQW5pbS0+aXNTdXNwZW5kZWQoKSAmJiBjb21wQW5pbS0+aXNB
bmltYXRpbmcoKSkgewogICAgICAgICAgICAgaXNBbmltYXRpbmcgPSB0cnVlOwogICAgICAgICAg
ICAgYnJlYWs7CkBAIC0xNTIsNyArMTYwLDcgQEAgdm9pZCBBbmltYXRpb25Db250cm9sbGVyUHJp
dmF0ZTo6YW5pbWF0aQogICAgIGJvb2wgaXNBbmltYXRpbmcgPSBmYWxzZTsKICAgICBSZW5kZXJP
YmplY3RBbmltYXRpb25NYXA6OmNvbnN0X2l0ZXJhdG9yIGFuaW1hdGlvbnNFbmQgPSBtX2NvbXBv
c2l0ZUFuaW1hdGlvbnMuZW5kKCk7CiAgICAgZm9yIChSZW5kZXJPYmplY3RBbmltYXRpb25NYXA6
OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9jb21wb3NpdGVBbmltYXRpb25zLmJlZ2luKCk7IGl0ICE9
IGFuaW1hdGlvbnNFbmQ7ICsraXQpIHsKLSAgICAgICAgQ29tcG9zaXRlQW5pbWF0aW9uKiBjb21w
QW5pbSA9IGl0LT5zZWNvbmQ7CisgICAgICAgIFJlZlB0cjxDb21wb3NpdGVBbmltYXRpb24+IGNv
bXBBbmltID0gaXQtPnNlY29uZDsKICAgICAgICAgaWYgKCFjb21wQW5pbS0+aXNTdXNwZW5kZWQo
KSAmJiBjb21wQW5pbS0+aXNBbmltYXRpbmcoKSkgewogICAgICAgICAgICAgaXNBbmltYXRpbmcg
PSB0cnVlOwogICAgICAgICAgICAgY29tcEFuaW0tPnNldEFuaW1hdGluZyhmYWxzZSk7CkBAIC0x
NzAsNyArMTc4LDcgQEAgdm9pZCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6YW5pbWF0aQog
CiBib29sIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjppc0FuaW1hdGluZ1Byb3BlcnR5T25S
ZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBpbnQgcHJvcGVydHksIGJvb2wgaXNSdW5u
aW5nTm93KSBjb25zdAogewotICAgIENvbXBvc2l0ZUFuaW1hdGlvbiogYW5pbWF0aW9uID0gbV9j
b21wb3NpdGVBbmltYXRpb25zLmdldChyZW5kZXJlcik7CisgICAgUmVmUHRyPENvbXBvc2l0ZUFu
aW1hdGlvbj4gYW5pbWF0aW9uID0gbV9jb21wb3NpdGVBbmltYXRpb25zLmdldChyZW5kZXJlcik7
CiAgICAgaWYgKCFhbmltYXRpb24pCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMTgyLDcg
KzE5MCw3IEBAIHZvaWQgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OnN1c3BlbmQKICAgICBS
ZW5kZXJPYmplY3RBbmltYXRpb25NYXA6OmNvbnN0X2l0ZXJhdG9yIGFuaW1hdGlvbnNFbmQgPSBt
X2NvbXBvc2l0ZUFuaW1hdGlvbnMuZW5kKCk7CiAgICAgZm9yIChSZW5kZXJPYmplY3RBbmltYXRp
b25NYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9jb21wb3NpdGVBbmltYXRpb25zLmJlZ2luKCk7
IGl0ICE9IGFuaW1hdGlvbnNFbmQ7ICsraXQpIHsKICAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5k
ZXJlciA9IGl0LT5maXJzdDsKLSAgICAgICAgQ29tcG9zaXRlQW5pbWF0aW9uKiBjb21wQW5pbSA9
IGl0LT5zZWNvbmQ7CisgICAgICAgIFJlZlB0cjxDb21wb3NpdGVBbmltYXRpb24+IGNvbXBBbmlt
ID0gaXQtPnNlY29uZDsKICAgICAgICAgaWYgKHJlbmRlcmVyLT5kb2N1bWVudCgpID09IGRvY3Vt
ZW50KQogICAgICAgICAgICAgY29tcEFuaW0tPnN1c3BlbmRBbmltYXRpb25zKCk7CiAgICAgfQpA
QCAtMTk1LDcgKzIwMyw3IEBAIHZvaWQgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OnJlc3Vt
ZUEKICAgICBSZW5kZXJPYmplY3RBbmltYXRpb25NYXA6OmNvbnN0X2l0ZXJhdG9yIGFuaW1hdGlv
bnNFbmQgPSBtX2NvbXBvc2l0ZUFuaW1hdGlvbnMuZW5kKCk7CiAgICAgZm9yIChSZW5kZXJPYmpl
Y3RBbmltYXRpb25NYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9jb21wb3NpdGVBbmltYXRpb25z
LmJlZ2luKCk7IGl0ICE9IGFuaW1hdGlvbnNFbmQ7ICsraXQpIHsKICAgICAgICAgUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciA9IGl0LT5maXJzdDsKLSAgICAgICAgQ29tcG9zaXRlQW5pbWF0aW9uKiBj
b21wQW5pbSA9IGl0LT5zZWNvbmQ7CisgICAgICAgIFJlZlB0cjxDb21wb3NpdGVBbmltYXRpb24+
IGNvbXBBbmltID0gaXQtPnNlY29uZDsKICAgICAgICAgaWYgKHJlbmRlcmVyLT5kb2N1bWVudCgp
ID09IGRvY3VtZW50KQogICAgICAgICAgICAgY29tcEFuaW0tPnJlc3VtZUFuaW1hdGlvbnMoKTsK
ICAgICB9CkBAIC0yMDgsNyArMjE2LDcgQEAgYm9vbCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0
ZTo6cGF1c2VBbgogICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIENvbXBvc2l0ZUFuaW1hdGlvbiogY29tcEFuaW0gPSBhY2Nlc3NDb21wb3NpdGVBbmltYXRp
b24ocmVuZGVyZXIpOworICAgIFJlZlB0cjxDb21wb3NpdGVBbmltYXRpb24+IGNvbXBBbmltID0g
YWNjZXNzQ29tcG9zaXRlQW5pbWF0aW9uKHJlbmRlcmVyKTsKICAgICBpZiAoIWNvbXBBbmltKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTIyNSw3ICsyMzMsNyBAQCBib29sIEFuaW1hdGlv
bkNvbnRyb2xsZXJQcml2YXRlOjpwYXVzZVRyCiAgICAgaWYgKCFyZW5kZXJlcikKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgQ29tcG9zaXRlQW5pbWF0aW9uKiBjb21wQW5pbSA9IGFjY2Vz
c0NvbXBvc2l0ZUFuaW1hdGlvbihyZW5kZXJlcik7CisgICAgUmVmUHRyPENvbXBvc2l0ZUFuaW1h
dGlvbj4gY29tcEFuaW0gPSBhY2Nlc3NDb21wb3NpdGVBbmltYXRpb24ocmVuZGVyZXIpOwogICAg
IGlmICghY29tcEFuaW0pCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMjc3LDcgKzI4NSw3
IEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IEFuaW1hdGlvbkNvbnRyb2wKICAgICAvLyBhIG5l
dyBzdHlsZS4KICAgICBBU1NFUlQocmVuZGVyZXItPmVsZW1lbnQoKSk7IC8vIEZJWE1FOiBXZSBk
byBub3QgYW5pbWF0ZSBnZW5lcmF0ZWQgY29udGVudCB5ZXQuCiAKLSAgICBDb21wb3NpdGVBbmlt
YXRpb24qIHJlbmRlcmVyQW5pbWF0aW9ucyA9IG1fZGF0YS0+YWNjZXNzQ29tcG9zaXRlQW5pbWF0
aW9uKHJlbmRlcmVyKTsKKyAgICBSZWZQdHI8Q29tcG9zaXRlQW5pbWF0aW9uPiByZW5kZXJlckFu
aW1hdGlvbnMgPSBtX2RhdGEtPmFjY2Vzc0NvbXBvc2l0ZUFuaW1hdGlvbihyZW5kZXJlcik7CiAg
ICAgUmVmUHRyPFJlbmRlclN0eWxlPiBibGVuZGVkU3R5bGUgPSByZW5kZXJlckFuaW1hdGlvbnMt
PmFuaW1hdGUocmVuZGVyZXIsIG9sZFN0eWxlLCBuZXdTdHlsZSk7CiAKICAgICBtX2RhdGEtPnVw
ZGF0ZUFuaW1hdGlvblRpbWVyKCk7CkBAIC0yOTQsMTMgKzMwMiwxMyBAQCBQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPiBBbmltYXRpb25Db250cm9sCiAKIHZvaWQgQW5pbWF0aW9uQ29udHJvbGxlcjo6
c2V0QW5pbWF0aW9uU3RhcnRUaW1lKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGRvdWJsZSB0KQog
ewotICAgIENvbXBvc2l0ZUFuaW1hdGlvbiogcmVuZGVyZXJBbmltYXRpb25zID0gbV9kYXRhLT5h
Y2Nlc3NDb21wb3NpdGVBbmltYXRpb24ocmVuZGVyZXIpOworICAgIFJlZlB0cjxDb21wb3NpdGVB
bmltYXRpb24+IHJlbmRlcmVyQW5pbWF0aW9ucyA9IG1fZGF0YS0+YWNjZXNzQ29tcG9zaXRlQW5p
bWF0aW9uKHJlbmRlcmVyKTsKICAgICByZW5kZXJlckFuaW1hdGlvbnMtPnNldEFuaW1hdGlvblN0
YXJ0VGltZSh0KTsKIH0KIAogdm9pZCBBbmltYXRpb25Db250cm9sbGVyOjpzZXRUcmFuc2l0aW9u
U3RhcnRUaW1lKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGludCBwcm9wZXJ0eSwgZG91YmxlIHQp
CiB7Ci0gICAgQ29tcG9zaXRlQW5pbWF0aW9uKiByZW5kZXJlckFuaW1hdGlvbnMgPSBtX2RhdGEt
PmFjY2Vzc0NvbXBvc2l0ZUFuaW1hdGlvbihyZW5kZXJlcik7CisgICAgUmVmUHRyPENvbXBvc2l0
ZUFuaW1hdGlvbj4gcmVuZGVyZXJBbmltYXRpb25zID0gbV9kYXRhLT5hY2Nlc3NDb21wb3NpdGVB
bmltYXRpb24ocmVuZGVyZXIpOwogICAgIHJlbmRlcmVyQW5pbWF0aW9ucy0+c2V0VHJhbnNpdGlv
blN0YXJ0VGltZShwcm9wZXJ0eSwgdCk7CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGFnZS9hbmltYXRp
b24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAJKHJldmlzaW9uIDM4OTc5KQorKysgV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01MCw4ICs1MCwxMiBAQCBwdWJsaWM6CiAgICAgCiAgICAgfkNvbXBvc2l0ZUFuaW1hdGlvblBy
aXZhdGUoKTsKIAorICAgIHZvaWQgY2xlYXJSZW5kZXJlcigpOworCiAgICAgUGFzc1JlZlB0cjxS
ZW5kZXJTdHlsZT4gYW5pbWF0ZShSZW5kZXJPYmplY3QqLCBSZW5kZXJTdHlsZSogY3VycmVudFN0
eWxlLCBSZW5kZXJTdHlsZSogdGFyZ2V0U3R5bGUpOwogCisgICAgQW5pbWF0aW9uQ29udHJvbGxl
ciogYW5pbWF0aW9uQ29udHJvbGxlcigpICB7IHJldHVybiBtX2FuaW1hdGlvbkNvbnRyb2xsZXI7
IH0KKwogICAgIHZvaWQgc2V0QW5pbWF0aW5nKGJvb2wpOwogICAgIGJvb2wgaXNBbmltYXRpbmco
KSBjb25zdDsKICAgICAKQEAgLTc0LDYgKzc4LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNBbmlt
YXRpbmdQcm9wZXJ0eShpbnQgcHJvcGVydHksIGJvb2wgaXNSdW5uaW5nTm93KSBjb25zdDsKIAog
ICAgIHZvaWQgc2V0V2FpdGluZ0ZvclN0eWxlQXZhaWxhYmxlKGJvb2wpOworICAgIGJvb2wgaXNX
YWl0aW5nRm9yU3R5bGVBdmFpbGFibGUoKSBjb25zdCAgICAgeyByZXR1cm4gbV9udW1TdHlsZUF2
YWlsYWJsZVdhaXRlcnMgPiAwOyB9CiAKICAgICBib29sIHBhdXNlQW5pbWF0aW9uQXRUaW1lKGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZSwgZG91YmxlIHQpOwogICAgIGJvb2wgcGF1c2VUcmFuc2l0
aW9uQXRUaW1lKGludCBwcm9wZXJ0eSwgZG91YmxlIHQpOwpAQCAtOTYsNiArMTAxLDEzIEBAIHBy
aXZhdGU6CiAKIENvbXBvc2l0ZUFuaW1hdGlvblByaXZhdGU6On5Db21wb3NpdGVBbmltYXRpb25Q
cml2YXRlKCkKIHsKKyAgICAvLyBUb3NzIHRoZSByZWZzIHRvIGFsbCBhbmltYXRpb25zCisgICAg
bV90cmFuc2l0aW9ucy5jbGVhcigpOworICAgIG1fa2V5ZnJhbWVBbmltYXRpb25zLmNsZWFyKCk7
Cit9CisKK3ZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uUHJpdmF0ZTo6Y2xlYXJSZW5kZXJlcigpCit7
CiAgICAgLy8gQ2xlYXIgdGhlIHJlbmRlcmVycyBmcm9tIGFsbCBydW5uaW5nIGFuaW1hdGlvbnMs
IGluIGNhc2Ugd2UgYXJlIGluIHRoZSBtaWRkbGUgb2YKICAgICAvLyBhbiBhbmltYXRpb24gY2Fs
bGJhY2sgKHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNTIp
CiAgICAgQ1NTUHJvcGVydHlUcmFuc2l0aW9uc01hcDo6Y29uc3RfaXRlcmF0b3IgdHJhbnNpdGlv
bnNFbmQgPSBtX3RyYW5zaXRpb25zLmVuZCgpOwpAQCAtMTEwLDkgKzEyMiw3IEBAIENvbXBvc2l0
ZUFuaW1hdGlvblByaXZhdGU6On5Db21wb3NpdGVBbmkKICAgICAgICAgYW5pbS0+Y2xlYXJSZW5k
ZXJlcigpOwogICAgIH0KICAgICAKLSAgICAvLyBUb3NzIHRoZSByZWZzIHRvIGFsbCBhbmltYXRp
b25zCi0gICAgbV90cmFuc2l0aW9ucy5jbGVhcigpOwotICAgIG1fa2V5ZnJhbWVBbmltYXRpb25z
LmNsZWFyKCk7CisKIH0KICAgICAKIHZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uUHJpdmF0ZTo6dXBk
YXRlVHJhbnNpdGlvbnMoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgUmVuZGVyU3R5bGUqIGN1cnJl
bnRTdHlsZSwgUmVuZGVyU3R5bGUqIHRhcmdldFN0eWxlKQpAQCAtNTU1LDExICs1NjUsMjEgQEAg
Q29tcG9zaXRlQW5pbWF0aW9uOjp+Q29tcG9zaXRlQW5pbWF0aW9uKAogICAgIGRlbGV0ZSBtX2Rh
dGE7CiB9CiAKK3ZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uOjpjbGVhclJlbmRlcmVyKCkKK3sKKyAg
ICBtX2RhdGEtPmNsZWFyUmVuZGVyZXIoKTsKK30KKwogUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4g
Q29tcG9zaXRlQW5pbWF0aW9uOjphbmltYXRlKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIFJlbmRl
clN0eWxlKiBjdXJyZW50U3R5bGUsIFJlbmRlclN0eWxlKiB0YXJnZXRTdHlsZSkKIHsKICAgICBy
ZXR1cm4gbV9kYXRhLT5hbmltYXRlKHJlbmRlcmVyLCBjdXJyZW50U3R5bGUsIHRhcmdldFN0eWxl
KTsKIH0KIAorQW5pbWF0aW9uQ29udHJvbGxlciogQ29tcG9zaXRlQW5pbWF0aW9uOjphbmltYXRp
b25Db250cm9sbGVyKCkKK3sKKyAgICByZXR1cm4gbV9kYXRhLT5hbmltYXRpb25Db250cm9sbGVy
KCk7Cit9CisKIGJvb2wgQ29tcG9zaXRlQW5pbWF0aW9uOjppc0FuaW1hdGluZygpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1fZGF0YS0+aXNBbmltYXRpbmcoKTsKQEAgLTU3MCw2ICs1OTAsMTEgQEAg
dm9pZCBDb21wb3NpdGVBbmltYXRpb246OnNldFdhaXRpbmdGb3JTdAogICAgIG1fZGF0YS0+c2V0
V2FpdGluZ0ZvclN0eWxlQXZhaWxhYmxlKGIpOwogfQogCitib29sIENvbXBvc2l0ZUFuaW1hdGlv
bjo6aXNXYWl0aW5nRm9yU3R5bGVBdmFpbGFibGUoKSBjb25zdAoreworICAgIHJldHVybiBtX2Rh
dGEtPmlzV2FpdGluZ0ZvclN0eWxlQXZhaWxhYmxlKCk7Cit9CisKIHZvaWQgQ29tcG9zaXRlQW5p
bWF0aW9uOjpzdXNwZW5kQW5pbWF0aW9ucygpCiB7CiAgICAgbV9kYXRhLT5zdXNwZW5kQW5pbWF0
aW9ucygpOwpJbmRleDogV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlv
bi5oCShyZXZpc2lvbiAzODk3OSkKKysrIFdlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRl
QW5pbWF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDE1ICs0MywyNCBAQCBjbGFzcyBSZW5k
ZXJTdHlsZTsKIAogLy8gQSBDb21wb3NpdGVBbmltYXRpb24gcmVwcmVzZW50cyBhIGNvbGxlY3Rp
b24gb2YgYW5pbWF0aW9ucyB0aGF0IGFyZSBydW5uaW5nCiAvLyBvbiBhIHNpbmdsZSBSZW5kZXJP
YmplY3QsIHN1Y2ggYXMgYSBudW1iZXIgb2YgcHJvcGVydGllcyB0cmFuc2l0aW9uaW5nIGF0IG9u
Y2UuCi1jbGFzcyBDb21wb3NpdGVBbmltYXRpb24gOiBwdWJsaWMgTm9uY29weWFibGUgeworY2xh
c3MgQ29tcG9zaXRlQW5pbWF0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8Q29tcG9zaXRlQW5pbWF0
aW9uPiB7CiBwdWJsaWM6Ci0gICAgQ29tcG9zaXRlQW5pbWF0aW9uKEFuaW1hdGlvbkNvbnRyb2xs
ZXIqIGFuaW1hdGlvbkNvbnRyb2xsZXIpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvbXBvc2l0
ZUFuaW1hdGlvbj4gY3JlYXRlKEFuaW1hdGlvbkNvbnRyb2xsZXIqIGFuaW1hdGlvbkNvbnRyb2xs
ZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENvbXBvc2l0ZUFuaW1hdGlv
bihhbmltYXRpb25Db250cm9sbGVyKSk7CisgICAgfTsKKwogICAgIH5Db21wb3NpdGVBbmltYXRp
b24oKTsKKyAgICAKKyAgICB2b2lkIGNsZWFyUmVuZGVyZXIoKTsKIAogICAgIFBhc3NSZWZQdHI8
UmVuZGVyU3R5bGU+IGFuaW1hdGUoUmVuZGVyT2JqZWN0KiwgUmVuZGVyU3R5bGUqIGN1cnJlbnRT
dHlsZSwgUmVuZGVyU3R5bGUqIHRhcmdldFN0eWxlKTsKICAgICBib29sIGlzQW5pbWF0aW5nKCkg
Y29uc3Q7CisgICAgCisgICAgQW5pbWF0aW9uQ29udHJvbGxlciogYW5pbWF0aW9uQ29udHJvbGxl
cigpOwogCiAgICAgdm9pZCBzZXRXYWl0aW5nRm9yU3R5bGVBdmFpbGFibGUoYm9vbCk7CisgICAg
Ym9vbCBpc1dhaXRpbmdGb3JTdHlsZUF2YWlsYWJsZSgpIGNvbnN0OwogCiAgICAgdm9pZCBzdXNw
ZW5kQW5pbWF0aW9ucygpOwogICAgIHZvaWQgcmVzdW1lQW5pbWF0aW9ucygpOwpAQCAtNzEsNiAr
ODAsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBwYXVzZVRyYW5zaXRpb25BdFRpbWUoaW50IHByb3Bl
cnR5LCBkb3VibGUgdCk7CiAKIHByaXZhdGU6CisgICAgQ29tcG9zaXRlQW5pbWF0aW9uKEFuaW1h
dGlvbkNvbnRyb2xsZXIqIGFuaW1hdGlvbkNvbnRyb2xsZXIpOworICAgIAogICAgIENvbXBvc2l0
ZUFuaW1hdGlvblByaXZhdGUqIG1fZGF0YTsKIH07CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDM4OTgw
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMDgtMTItMDMgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RjYXNlcyBmb3Ig
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjM1CisKKyAgICAgICAg
KiBhbmltYXRpb25zL2FuaW1hdGlvbi1pdGVyYXRpb24tZXZlbnQtZGVzdHJveS1yZW5kZXJlci1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWl0ZXJh
dGlvbi1ldmVudC1kZXN0cm95LXJlbmRlcmVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGFuaW1h
dGlvbnMvYW5pbWF0aW9uLXN0YXJ0LWV2ZW50LWRlc3Ryb3ktcmVuZGVyZXItZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1zdGFydC1ldmVudC1kZXN0
cm95LXJlbmRlcmVyLmh0bWw6IEFkZGVkLgorCiAyMDA4LTEyLTAzICBOaWtvbGFzIFppbW1lcm1h
bm4gIDxuaWtvbGFzLnppbW1lcm1hbm5AdG9yY2htb2JpbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEdlb3JnZSBTdGFpa29zLgpJbmRleDogTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmlt
YXRpb24taXRlcmF0aW9uLWV2ZW50LWRlc3Ryb3ktcmVuZGVyZXItZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWl0ZXJhdGlvbi1ldmVu
dC1kZXN0cm95LXJlbmRlcmVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWl0ZXJhdGlvbi1ldmVudC1kZXN0cm95LXJlbmRlcmVy
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACitUZXN0cyBlbGVtZW50
IHJlbW92YWwgYW5kIGhpZGluZyB3aXRoaW4gdGhlIHdlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbiBl
dmVudCBoYW5kbGVyLiBTaG91bGQgbm90IGNyYXNoLgorCitEaWQgbm90IGNyYXNoLCBzbyBQQVNT
RUQKSW5kZXg6IExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWl0ZXJhdGlvbi1ldmVu
dC1kZXN0cm95LXJlbmRlcmVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy9hbmltYXRpb24taXRlcmF0aW9uLWV2ZW50LWRlc3Ryb3ktcmVuZGVyZXIuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWl0ZXJhdGlvbi1l
dmVudC1kZXN0cm95LXJlbmRlcmVyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzAgQEAK
KzxodG1sPgorPGhlYWQ+CisgIDx0aXRsZT5EZXN0cm95IGFuZCBIaWRlIEVsZW1lbnQgaW4gQW5p
bWF0aW9uIEVuZCBFdmVudDwvdGl0bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9
InNjcmVlbiI+CisgICAgLmJveCB7CisgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgd2lkdGg6
IDEwMHB4OworICAgICAgbWFyZ2luOiAxMHB4OworICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1
ZTsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjJzOworICAgICAgLXdlYmtp
dC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAyOworICAgIH0KKyAgICAKKyAgICBALXdlYmtp
dC1rZXlmcmFtZXMgbW92ZSB7CisgICAgICBmcm9tIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5z
bGF0ZSgwcHgsIDBweCk7IH0KKyAgICAgIHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0
ZSgxMDBweCwgMHB4KTsgfQorICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKwor
ICAgIHZhciBudW1Eb25lID0gMDsKKyAgICBmdW5jdGlvbiBhbmltYXRpb25JdGVyYXRlZCgpCisg
ICAgeworICAgICAgKytudW1Eb25lOworICAgICAgaWYgKG51bURvbmUgPT0gMikgeworICAgICAg
ICBpZiAod2luZG93LkdDQ29udHJvbGxlcikKKyAgICAgICAgICBHQ0NvbnRyb2xsZXIuY29sbGVj
dCgpOworCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzJykuaW5uZXJI
VE1MID0gJ0RpZCBub3QgY3Jhc2gsIHNvIFBBU1NFRCc7CisKKyAgICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCk7CisgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RhcnRUZXN0KCkKKyAg
ICB7CisgICAgICB2YXIgYm94MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gxJyk7Cisg
ICAgICBib3gxLmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbicsIGZ1
bmN0aW9uKCkgeworICAgICAgICBib3gxLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYm94MSk7Cisg
ICAgICAgIGFuaW1hdGlvbkl0ZXJhdGVkKCk7CisgICAgICB9LCBmYWxzZSk7CisgICAgICBib3gx
LnN0eWxlLndlYmtpdEFuaW1hdGlvbk5hbWUgPSAnbW92ZSc7CisKKyAgICAgIHZhciBib3gyID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveDInKTsKKyAgICAgIGJveDIuYWRkRXZlbnRMaXN0
ZW5lcignd2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uJywgZnVuY3Rpb24oKSB7CisgICAgICAgIGJv
eDIuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICAgICAgYW5pbWF0aW9uSXRlcmF0ZWQoKTsK
KyAgICAgIH0sIGZhbHNlKTsKKyAgICAgIGJveDIuc3R5bGUud2Via2l0QW5pbWF0aW9uTmFtZSA9
ICdtb3ZlJzsKKyAgICB9CisgICAgCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQn
LCBzdGFydFRlc3QsIGZhbHNlKTsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPHA+
VGVzdHMgZWxlbWVudCByZW1vdmFsIGFuZCBoaWRpbmcgd2l0aGluIHRoZSB3ZWJraXRBbmltYXRp
b25JdGVyYXRpb24gZXZlbnQgaGFuZGxlci4gU2hvdWxkIG5vdCBjcmFzaC48L3A+CisKKzxkaXYg
aWQ9ImNvbnRhaW5lciI+CisgIDxkaXYgaWQ9ImJveDEiIGNsYXNzPSJib3giPjwvZGl2PgorICA8
ZGl2IGlkPSJib3gyIiBjbGFzcz0iYm94Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0
cyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9hbmltYXRpb25z
L2FuaW1hdGlvbi1zdGFydC1ldmVudC1kZXN0cm95LXJlbmRlcmVyLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1zdGFydC1ldmVudC1k
ZXN0cm95LXJlbmRlcmVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2FuaW1hdGlvbnMvYW5pbWF0aW9uLXN0YXJ0LWV2ZW50LWRlc3Ryb3ktcmVuZGVyZXItZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMgQEAKK1Rlc3RzIGVsZW1lbnQgcmVtb3Zh
bCBhbmQgaGlkaW5nIHdpdGhpbiB0aGUgd2Via2l0QW5pbWF0aW9uU3RhcnQgZXZlbnQgaGFuZGxl
ci4gU2hvdWxkIG5vdCBjcmFzaC4KKworRGlkIG5vdCBjcmFzaCwgc28gUEFTU0VECkluZGV4OiBM
YXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1zdGFydC1ldmVudC1kZXN0cm95LXJlbmRl
cmVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24t
c3RhcnQtZXZlbnQtZGVzdHJveS1yZW5kZXJlci5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tc3RhcnQtZXZlbnQtZGVzdHJveS1yZW5kZXJlci5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY5IEBACis8aHRtbD4KKzxoZWFkPgorICA8dGl0
bGU+RGVzdHJveSBhbmQgSGlkZSBFbGVtZW50IGluIEFuaW1hdGlvbiBFbmQgRXZlbnQ8L3RpdGxl
PgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgorICAgIC5ib3ggewor
ICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIG1hcmdpbjog
MTBweDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAtd2Via2l0LWFuaW1h
dGlvbi1kdXJhdGlvbjogMC4yczsKKyAgICB9CisgICAgCisgICAgQC13ZWJraXQta2V5ZnJhbWVz
IG1vdmUgeworICAgICAgZnJvbSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAw
cHgpOyB9CisgICAgICB0byB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTAwcHgsIDBw
eCk7IH0KKyAgICB9CisgIDwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICB2YXIgbnVt
RG9uZSA9IDA7CisgICAgZnVuY3Rpb24gYW5pbWF0aW9uU3RhcnRlZCgpCisgICAgeworICAgICAg
KytudW1Eb25lOworICAgICAgaWYgKG51bURvbmUgPT0gMikgeworICAgICAgICBpZiAod2luZG93
LkdDQ29udHJvbGxlcikKKyAgICAgICAgICBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOworCisgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzJykuaW5uZXJIVE1MID0gJ0RpZCBu
b3QgY3Jhc2gsIHNvIFBBU1NFRCc7CisKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cisg
ICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RhcnRUZXN0KCkKKyAgICB7CisgICAgICB2
YXIgYm94MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gxJyk7CisgICAgICBib3gxLmFk
ZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdEFuaW1hdGlvblN0YXJ0JywgZnVuY3Rpb24oKSB7CisgICAg
ICAgIGJveDEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChib3gxKTsKKyAgICAgICAgYW5pbWF0aW9u
U3RhcnRlZCgpOworICAgICAgfSwgZmFsc2UpOworICAgICAgYm94MS5zdHlsZS53ZWJraXRBbmlt
YXRpb25OYW1lID0gJ21vdmUnOworCisgICAgICB2YXIgYm94MiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdib3gyJyk7CisgICAgICBib3gyLmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdEFuaW1h
dGlvblN0YXJ0JywgZnVuY3Rpb24oKSB7CisgICAgICAgIGJveDIuc3R5bGUuZGlzcGxheSA9ICdu
b25lJzsKKyAgICAgICAgYW5pbWF0aW9uU3RhcnRlZCgpOworICAgICAgfSwgZmFsc2UpOworICAg
ICAgYm94Mi5zdHlsZS53ZWJraXRBbmltYXRpb25OYW1lID0gJ21vdmUnOworICAgIH0KKyAgICAK
KyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHN0YXJ0VGVzdCwgZmFsc2UpOwor
ICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8cD5UZXN0cyBlbGVtZW50IHJlbW92YWwg
YW5kIGhpZGluZyB3aXRoaW4gdGhlIHdlYmtpdEFuaW1hdGlvblN0YXJ0IGV2ZW50IGhhbmRsZXIu
IFNob3VsZCBub3QgY3Jhc2guPC9wPgorCis8ZGl2IGlkPSJjb250YWluZXIiPgorICA8ZGl2IGlk
PSJib3gxIiBjbGFzcz0iYm94Ij48L2Rpdj4KKyAgPGRpdiBpZD0iYm94MiIgY2xhc3M9ImJveCI+
PC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdHMiPjwvZGl2PgorPC9ib2R5PgorPC9odG1s
Pgo=
</data>
<flag name="review"
          id="12025"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>