<?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>124132</bug_id>
          
          <creation_ts>2013-11-10 19:53:32 -0800</creation_ts>
          <short_desc>Make childShouldCreateRenderer() take a Node reference</short_desc>
          <delta_ts>2013-11-10 20:00:02 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>949199</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-11-10 19:53:32 -0800</bug_when>
    <thetext>Make childShouldCreateRenderer() take a Node reference</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949200</commentid>
    <comment_count>1</comment_count>
      <attachid>216543</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-11-10 19:54:39 -0800</bug_when>
    <thetext>Created attachment 216543
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949201</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-11-10 20:00:02 -0800</bug_when>
    <thetext>Committed r159036: &lt;http://trac.webkit.org/changeset/159036&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216543</attachid>
            <date>2013-11-10 19:54:39 -0800</date>
            <delta_ts>2013-11-10 19:57:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124132-20131110195438.patch</filename>
            <type>text/plain</type>
            <size>40952</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1OTAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEzLTExLTEwICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTWFrZSBjaGlsZFNob3VsZENyZWF0ZVJl
bmRlcmVyKCkgdGFrZSBhIE5vZGUgcmVmZXJlbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQxMzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgTm9kZSBwYXNzZWQgdG8gY2hpbGRTaG91bGRDcmVh
dGVSZW5kZXJlcigpIGlzIG5ldmVyIG51bGwuCisKIDIwMTMtMTEtMTAgIEZyw6lkw6lyaWMgV2Fu
ZyAgPGZyZWQud2FuZ0BmcmVlLmZyPgogCiAgICAgICAgIENTUyBkaXJlY3Rpb24gbXVzdCBiZSBy
ZXNldCB0byBsdHIgb24gPG1hdGg+IGVsZW1lbnQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UmVzb2x2ZXIuY3BwCShyZXZpc2lvbiAxNTkwMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzMSw3ICs0MzEsNyBAQCBpbmxpbmUg
dm9pZCBTdHlsZVJlc29sdmVyOjpTdGF0ZTo6aW5pdEZvCiAKICAgICBpZiAoZSkgewogICAgICAg
ICBtX3BhcmVudE5vZGUgPSBOb2RlUmVuZGVyaW5nVHJhdmVyc2FsOjpwYXJlbnQoZSk7Ci0gICAg
ICAgIGJvb2wgcmVzZXRTdHlsZUluaGVyaXRhbmNlID0gaGFzU2hhZG93Um9vdFBhcmVudChlKSAm
JiB0b1NoYWRvd1Jvb3QoZS0+cGFyZW50Tm9kZSgpKS0+cmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7
CisgICAgICAgIGJvb2wgcmVzZXRTdHlsZUluaGVyaXRhbmNlID0gaGFzU2hhZG93Um9vdFBhcmVu
dCgqZSkgJiYgdG9TaGFkb3dSb290KGUtPnBhcmVudE5vZGUoKSktPnJlc2V0U3R5bGVJbmhlcml0
YW5jZSgpOwogICAgICAgICBtX3BhcmVudFN0eWxlID0gcmVzZXRTdHlsZUluaGVyaXRhbmNlID8g
MCA6CiAgICAgICAgICAgICBwYXJlbnRTdHlsZSA/IHBhcmVudFN0eWxlIDoKICAgICAgICAgICAg
IG1fcGFyZW50Tm9kZSA/IG1fcGFyZW50Tm9kZS0+cmVuZGVyU3R5bGUoKSA6IDA7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgJKHJldmlzaW9uIDE1OTAzMikKKysrIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMiw3ICsxMjIs
NyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpc2Nvbm5lY3REZXNjZW5kYW50RnJhbWVzKCk7CiAK
LSAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlKikg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0
ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB1c2lu
ZyBOb2RlOjpzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyOwogICAgIHZvaWQgc2V0QXR0cmlidXRl
RXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTkwMzIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2MDMsMTIgKzI2MDMsMTIgQEAg
Y29uc3QgQXRvbWljU3RyaW5nJiBFbGVtZW50OjpVSUFjdGlvbnMoKQogfQogI2VuZGlmCiAKLWJv
b2wgRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlKiBjaGlsZCkg
Y29uc3QKK2Jvb2wgRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2Rl
JiBjaGlsZCkgY29uc3QKIHsKICNpZiBFTkFCTEUoU1ZHKQogICAgIC8vIE9ubHkgY3JlYXRlIHJl
bmRlcmVycyBmb3IgU1ZHIGVsZW1lbnRzIHdob3NlIHBhcmVudHMgYXJlIFNWRyBlbGVtZW50cywg
b3IgZm9yIHByb3BlciA8c3ZnIHhtbG5zPSJzdmdOUyI+IHN1YmRvY3VtZW50cy4KLSAgICBpZiAo
Y2hpbGQtPmlzU1ZHRWxlbWVudCgpKQotICAgICAgICByZXR1cm4gY2hpbGQtPmhhc1RhZ05hbWUo
U1ZHTmFtZXM6OnN2Z1RhZykgfHwgaXNTVkdFbGVtZW50KCk7CisgICAgaWYgKGNoaWxkLmlzU1ZH
RWxlbWVudCgpKQorICAgICAgICByZXR1cm4gY2hpbGQuaGFzVGFnTmFtZShTVkdOYW1lczo6c3Zn
VGFnKSB8fCBpc1NWR0VsZW1lbnQoKTsKICNlbmRpZgogICAgIHJldHVybiBDb250YWluZXJOb2Rl
OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNoaWxkKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaAkocmV2aXNpb24gMTU5MDMyKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtNDc5LDcgKzQ3OSw3IEBAIHB1YmxpYzoKICAgICAvLyB0byBldmVu
dCBsaXN0ZW5lcnMsIGFuZCBwcmV2ZW50cyBET01BY3RpdmF0ZSBldmVudHMgZnJvbSBiZWluZyBz
ZW50IGF0IGFsbC4KICAgICB2aXJ0dWFsIGJvb2wgaXNEaXNhYmxlZEZvcm1Db250cm9sKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0
ZVJlbmRlcmVyKGNvbnN0IE5vZGUqKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wg
Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3QgT1ZFUlJJREU7CiAK
ICNpZiBFTkFCTEUoU1ZHKQogICAgIGJvb2wgaGFzUGVuZGluZ1Jlc291cmNlcygpIGNvbnN0OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCShyZXZpc2lvbiAxNTkwMzIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEsOSArMTMxLDkg
QEAgaW5saW5lIENvbnRhaW5lck5vZGUqIE5vZGU6OnBhcmVudE9yU2hhZAogICAgIHJldHVybiBw
YXJlbnROb2RlKCk7CiB9CiAKLWlubGluZSBib29sIGhhc1NoYWRvd1Jvb3RQYXJlbnQoY29uc3Qg
Tm9kZSogbm9kZSkKK2lubGluZSBib29sIGhhc1NoYWRvd1Jvb3RQYXJlbnQoY29uc3QgTm9kZSYg
bm9kZSkKIHsKLSAgICByZXR1cm4gbm9kZS0+cGFyZW50Tm9kZSgpICYmIG5vZGUtPnBhcmVudE5v
ZGUoKS0+aXNTaGFkb3dSb290KCk7CisgICAgcmV0dXJuIG5vZGUucGFyZW50Tm9kZSgpICYmIG5v
ZGUucGFyZW50Tm9kZSgpLT5pc1NoYWRvd1Jvb3QoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAJKHJldmlzaW9u
IDE1OTAzMikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTQyLDkgKzE0Miw5IEBAIHZvaWQgSFRNTERldGFpbHNFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZSgKICAgICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5h
bWUsIHZhbHVlKTsKIH0KIAotYm9vbCBIVE1MRGV0YWlsc0VsZW1lbnQ6OmNoaWxkU2hvdWxkQ3Jl
YXRlUmVuZGVyZXIoY29uc3QgTm9kZSogY2hpbGQpIGNvbnN0Citib29sIEhUTUxEZXRhaWxzRWxl
bWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJiBjaGlsZCkgY29uc3QK
IHsKLSAgICBpZiAoY2hpbGQtPmlzUHNldWRvRWxlbWVudCgpKQorICAgIGlmIChjaGlsZC5pc1Bz
ZXVkb0VsZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIEhUTUxFbGVtZW50OjpjaGlsZFNob3VsZENy
ZWF0ZVJlbmRlcmVyKGNoaWxkKTsKIAogICAgIGlmICghaGFzU2hhZG93Um9vdE9yQWN0aXZlSW5z
ZXJ0aW9uUG9pbnRQYXJlbnQoY2hpbGQpKQpAQCAtMTUzLDEwICsxNTMsMTAgQEAgYm9vbCBIVE1M
RGV0YWlsc0VsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYQogICAgIGlmIChtX2lzT3BlbikKICAgICAg
ICAgcmV0dXJuIEhUTUxFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNoaWxkKTsK
IAotICAgIGlmICghY2hpbGQtPmhhc1RhZ05hbWUoc3VtbWFyeVRhZykpCisgICAgaWYgKCFjaGls
ZC5oYXNUYWdOYW1lKHN1bW1hcnlUYWcpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBy
ZXR1cm4gY2hpbGQgPT0gZmluZE1haW5TdW1tYXJ5KCkgJiYgSFRNTEVsZW1lbnQ6OmNoaWxkU2hv
dWxkQ3JlYXRlUmVuZGVyZXIoY2hpbGQpOworICAgIHJldHVybiAmY2hpbGQgPT0gZmluZE1haW5T
dW1tYXJ5KCkgJiYgSFRNTEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY2hpbGQp
OwogfQogCiB2b2lkIEhUTUxEZXRhaWxzRWxlbWVudDo6dG9nZ2xlT3BlbigpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgJKHJldmlzaW9uIDE1OTAzMikKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTM2LDcgKzM2LDcgQEAgcHJpdmF0ZToKICAgICBIVE1MRGV0YWlsc0VsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQq
IGNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlKikgY29uc3QgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3Qg
Tm9kZSYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290KikgT1ZF
UlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5jcHAJKHJldmlzaW9uIDE1OTAzMikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZv
cm1Db250cm9sRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0OCw3ICs0NDgsNyBAQCB2
b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnNldEN1c3RvbVZhCiAgICAgc2V0TmVlZHNWYWxp
ZGl0eUNoZWNrKCk7CiB9CiAKLWJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6dmFsaWRhdGlv
bk1lc3NhZ2VTaGFkb3dUcmVlQ29udGFpbnMoY29uc3QgTm9kZSogbm9kZSkgY29uc3QKK2Jvb2wg
SFRNTEZvcm1Db250cm9sRWxlbWVudDo6dmFsaWRhdGlvbk1lc3NhZ2VTaGFkb3dUcmVlQ29udGFp
bnMoY29uc3QgTm9kZSYgbm9kZSkgY29uc3QKIHsKICAgICByZXR1cm4gbV92YWxpZGF0aW9uTWVz
c2FnZSAmJiBtX3ZhbGlkYXRpb25NZXNzYWdlLT5zaGFkb3dUcmVlQ29udGFpbnMobm9kZSk7CiB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAko
cmV2aXNpb24gMTU5MDMyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xF
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyNyw3ICsxMjcsNyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdm9pZCBzZXROZWVkc1dpbGxWYWxpZGF0ZUNoZWNrKCk7CiAgICAgdmlydHVhbCBib29sIHJl
Y2FsY1dpbGxWYWxpZGF0ZSgpIGNvbnN0OwogCi0gICAgYm9vbCB2YWxpZGF0aW9uTWVzc2FnZVNo
YWRvd1RyZWVDb250YWlucyhjb25zdCBOb2RlKikgY29uc3Q7CisgICAgYm9vbCB2YWxpZGF0aW9u
TWVzc2FnZVNoYWRvd1RyZWVDb250YWlucyhjb25zdCBOb2RlJikgY29uc3Q7CiAKIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIHJlZkZvcm1Bc3NvY2lhdGVkRWxlbWVudCgpIE9WRVJSSURFIHsg
cmVmKCk7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAko
cmV2aXNpb24gMTU5MDMyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTc2LDcgKzU3Niw3IEBAIFJlbmRlckVsZW1lbnQqIEhU
TUxNZWRpYUVsZW1lbnQ6OmNyZWF0ZVIKICAgICByZXR1cm4gbmV3IFJlbmRlck1lZGlhKCp0aGlz
LCBzdGQ6Om1vdmUoc3R5bGUpKTsKIH0KIAotYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpjaGlsZFNo
b3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUqIGNoaWxkKSBjb25zdAorYm9vbCBIVE1MTWVk
aWFFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmIGNoaWxkKSBj
b25zdAogewogI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19TQ1JJUFQpCiAgICAgcmV0dXJuIGhh
c1NoYWRvd1Jvb3RQYXJlbnQoY2hpbGQpICYmIEhUTUxFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0
ZVJlbmRlcmVyKGNoaWxkKTsKQEAgLTU4Nyw3ICs1ODcsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1l
bnQ6OmNoaWxkU2hvdWxkQ3JlYXRlCiAgICAgLy8gYmUgcmVuZGVyZWQuIFNvIHRoaXMgc2hvdWxk
IHJldHVybiBmYWxzZSBmb3IgbW9zdCBvZiB0aGUgY2hpbGRyZW4uCiAgICAgLy8gT25lIGV4Y2Vw
dGlvbiBpcyBhIHNoYWRvdyB0cmVlIGJ1aWx0IGZvciByZW5kZXJpbmcgY29udHJvbHMgd2hpY2gg
c2hvdWxkIGJlIHZpc2libGUuCiAgICAgLy8gU28gd2UgbGV0IHRoZW0gZ28gaGVyZSBieSBjb21w
YXJpbmcgaXRzIHN1YnRyZWUgcm9vdCB3aXRoIG9uZSBvZiB0aGUgY29udHJvbHMuCi0gICAgcmV0
dXJuICZtZWRpYUNvbnRyb2xzKCktPnRyZWVTY29wZSgpID09ICZjaGlsZC0+dHJlZVNjb3BlKCkK
KyAgICByZXR1cm4gJm1lZGlhQ29udHJvbHMoKS0+dHJlZVNjb3BlKCkgPT0gJmNoaWxkLnRyZWVT
Y29wZSgpCiAgICAgICAgICYmIGhhc1NoYWRvd1Jvb3RQYXJlbnQoY2hpbGQpCiAgICAgICAgICYm
IEhUTUxFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNoaWxkKTsKICNlbmRpZgpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgJKHJldmlzaW9uIDE1OTAz
MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC00NDEsNyArNDQxLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9y
dHNGb2N1cygpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc01vdXNlRm9jdXNh
YmxlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQo
Y29uc3QgUmVuZGVyU3R5bGUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91
bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlKikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IE9WRVJS
SURFOwogICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZElu
dG8oQ29udGFpbmVyTm9kZSYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJv
bShDb250YWluZXJOb2RlJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2FsY1N0
eWxlKFN0eWxlOjpDaGFuZ2UpIE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWV0ZXJFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZXRlckVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTkwMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBA
IFJlbmRlckVsZW1lbnQqIEhUTUxNZXRlckVsZW1lbnQ6OmNyZWF0ZVIKICAgICByZXR1cm4gbmV3
IFJlbmRlck1ldGVyKCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKIH0KIAotYm9vbCBIVE1MTWV0
ZXJFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUqIGNoaWxkKSBj
b25zdAorYm9vbCBIVE1MTWV0ZXJFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNv
bnN0IE5vZGUmIGNoaWxkKSBjb25zdAogewogICAgIHJldHVybiBoYXNTaGFkb3dSb290UGFyZW50
KGNoaWxkKSAmJiBIVE1MRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjaGlsZCk7
CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaAkocmV2aXNpb24g
MTU5MDMyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTczLDcgKzczLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCBy
ZWNhbGNXaWxsVmFsaWRhdGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwg
UmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5v
ZGUqKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVS
ZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBP
VkVSUklERTsKIAogICAgIHZvaWQgZGlkRWxlbWVudFN0YXRlQ2hhbmdlKCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1OTAz
MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTY2LDcgKzY2LDcgQEAgUmVuZGVyRWxlbWVudCogSFRNTFByb2dyZXNzRWxl
bWVudDo6Y3JlYQogICAgIHJldHVybiBuZXcgUmVuZGVyUHJvZ3Jlc3MoKnRoaXMsIHN0ZDo6bW92
ZShzdHlsZSkpOwogfQogCi1ib29sIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNoaWxkU2hvdWxkQ3Jl
YXRlUmVuZGVyZXIoY29uc3QgTm9kZSogY2hpbGQpIGNvbnN0Citib29sIEhUTUxQcm9ncmVzc0Vs
ZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIGhhc1NoYWRvd1Jvb3RQYXJlbnQoY2hpbGQpICYmIEhUTUxFbGVtZW50
OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNoaWxkKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCShyZXZpc2lvbiAxNTkwMzIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
NTUsNyArNTUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0TGFiZWxzKCkg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCBSZW5kZXJFbGVt
ZW50KiBjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSopIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNv
bnN0IE5vZGUmKSBjb25zdCBPVkVSUklERTsKICAgICBSZW5kZXJQcm9ncmVzcyogcmVuZGVyUHJv
Z3Jlc3MoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAkocmV2aXNpb24gMTU5MDMyKQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM1MCw3ICszNTAsNyBAQCBSZW5kZXJFbGVtZW50KiBIVE1MU2VsZWN0RWxlbWVudDo6
Y3JlYXRlCiAgICAgcmV0dXJuIG5ldyBSZW5kZXJMaXN0Qm94KCp0aGlzLCBzdGQ6Om1vdmUoc3R5
bGUpKTsKIH0KIAotYm9vbCBIVE1MU2VsZWN0RWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5k
ZXJlcihjb25zdCBOb2RlKiBjaGlsZCkgY29uc3QKK2Jvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OmNo
aWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0CiB7CiAgICAg
aWYgKCFIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpjaGlsZFNob3VsZENyZWF0ZVJl
bmRlcmVyKGNoaWxkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaAkocmV2aXNpb24gMTU5MDMyKQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEsNyAr
MTMxLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29u
c3QgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJl
cihjb25zdCBOb2RlKikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGNoaWxkU2hv
dWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1
YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmLCBi
b29sKSBPVkVSUklERTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlF
bGVtZW50LmNwcAkocmV2aXNpb24gMTU5MDMyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U3VtbWFyeUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OSw5ICs2OSw5IEBAIFJlbmRl
ckVsZW1lbnQqIEhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXQKICAgICByZXR1cm4gbmV3IFJlbmRl
ckJsb2NrRmxvdygqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CiB9CiAKLWJvb2wgSFRNTFN1bW1h
cnlFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUqIGNoaWxkKSBj
b25zdAorYm9vbCBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIo
Y29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0CiB7Ci0gICAgaWYgKGNoaWxkLT5pc1BzZXVkb0VsZW1l
bnQoKSkKKyAgICBpZiAoY2hpbGQuaXNQc2V1ZG9FbGVtZW50KCkpCiAgICAgICAgIHJldHVybiBI
VE1MRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjaGlsZCk7CiAKICAgICByZXR1
cm4gaGFzU2hhZG93Um9vdE9yQWN0aXZlSW5zZXJ0aW9uUG9pbnRQYXJlbnQoY2hpbGQpICYmIEhU
TUxFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNoaWxkKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuaAkocmV2aXNpb24gMTU5MDMyKQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMzcsNyArMzcsNyBAQCBwcml2YXRlOgogICAgIEhUTUxTdW1tYXJ5RWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCog
Y3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUqKSBjb25zdCBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBO
b2RlJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRs
ZXIoRXZlbnQqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290
KFNoYWRvd1Jvb3QqKSBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTkwMzIpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjUsMTEgKzY1LDExIEBAIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojp+
SFRNTFRleHRGb3IKIHsKIH0KIAotYm9vbCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y2hp
bGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlKiBjaGlsZCkgY29uc3QKK2Jvb2wgSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3Qg
Tm9kZSYgY2hpbGQpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCBmb3JjZSB0
aGUgcHNldWRvIGVsZW1lbnRzIGRvd24gaW50byB0aGUgc2hhZG93LCBidXQKICAgICAvLyB0aGlz
IHBlcnNlcnZlcyB0aGUgY3VycmVudCBiZWhhdmlvciBvZiBXZWJLaXQuCi0gICAgaWYgKGNoaWxk
LT5pc1BzZXVkb0VsZW1lbnQoKSkKKyAgICBpZiAoY2hpbGQuaXNQc2V1ZG9FbGVtZW50KCkpCiAg
ICAgICAgIHJldHVybiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpjaGlsZFNob3Vs
ZENyZWF0ZVJlbmRlcmVyKGNoaWxkKTsKICAgICByZXR1cm4gaGFzU2hhZG93Um9vdFBhcmVudChj
aGlsZCkgJiYgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6Y2hpbGRTaG91bGRDcmVh
dGVSZW5kZXJlcihjaGlsZCk7CiB9CkBAIC02MTIsNyArNjEyLDcgQEAgSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQqIGVuY2xvc2luZ1RleAogewogICAgIEFTU0VSVChwb3NpdGlvbi5pc051bGwo
KSB8fCBwb3NpdGlvbi5hbmNob3JUeXBlKCkgPT0gUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJ
bkFuY2hvcgogICAgICAgICB8fCBwb3NpdGlvbi5jb250YWluZXJOb2RlKCkgfHwgIXBvc2l0aW9u
LmFuY2hvck5vZGUoKS0+c2hhZG93SG9zdCgpCi0gICAgICAgIHx8IGhhc1NoYWRvd1Jvb3RQYXJl
bnQocG9zaXRpb24uYW5jaG9yTm9kZSgpKSk7CisgICAgICAgIHx8IGhhc1NoYWRvd1Jvb3RQYXJl
bnQoKnBvc2l0aW9uLmFuY2hvck5vZGUoKSkpOwogICAgICAgICAKICAgICBOb2RlKiBjb250YWlu
ZXIgPSBwb3NpdGlvbi5jb250YWluZXJOb2RlKCk7CiAgICAgaWYgKCFjb250YWluZXIpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5o
CShyZXZpc2lvbiAxNTkwMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTExOCw3ICsxMTgsNyBAQCBwcml2YXRl
OgogCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRm9jdXNFdmVudChQYXNzUmVmUHRyPEVsZW1l
bnQ+IG9sZEZvY3VzZWRFbGVtZW50LCBGb2N1c0RpcmVjdGlvbikgT1ZFUlJJREUgRklOQUw7CiAg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoQmx1ckV2ZW50KFBhc3NSZWZQdHI8RWxlbWVudD4gbmV3
Rm9jdXNlZEVsZW1lbnQpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNo
b3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUqKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3QgT1ZF
UlJJREU7CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdXNlci1lZGl0YWJsZSB2YWx1ZSBpcyBl
bXB0eS4gVXNlZCB0byBjaGVjayBwbGFjZWhvbGRlciB2aXNpYmlsaXR5LgogICAgIHZpcnR1YWwg
Ym9vbCBpc0VtcHR5VmFsdWUoKSBjb25zdCA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L1ZhbGlkYXRpb25NZXNzYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L1ZhbGlkYXRpb25NZXNzYWdlLmNwcAkocmV2aXNpb24gMTU5MDMyKQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyNiwxMSAr
MjI2LDExIEBAIHZvaWQgVmFsaWRhdGlvbk1lc3NhZ2U6OnJlcXVlc3RUb0hpZGVNZXMKICAgICBt
X3RpbWVyLT5zdGFydE9uZVNob3QoMCk7CiB9CiAKLWJvb2wgVmFsaWRhdGlvbk1lc3NhZ2U6OnNo
YWRvd1RyZWVDb250YWlucyhjb25zdCBOb2RlKiBub2RlKSBjb25zdAorYm9vbCBWYWxpZGF0aW9u
TWVzc2FnZTo6c2hhZG93VHJlZUNvbnRhaW5zKGNvbnN0IE5vZGUmIG5vZGUpIGNvbnN0CiB7CiAg
ICAgaWYgKHZhbGlkYXRpb25NZXNzYWdlQ2xpZW50KCkgfHwgIW1fYnViYmxlKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuICZtX2J1YmJsZS0+dHJlZVNjb3BlKCkgPT0gJm5vZGUt
PnRyZWVTY29wZSgpOworICAgIHJldHVybiAmbV9idWJibGUtPnRyZWVTY29wZSgpID09ICZub2Rl
LnRyZWVTY29wZSgpOwogfQogCiB2b2lkIFZhbGlkYXRpb25NZXNzYWdlOjpkZWxldGVCdWJibGVU
cmVlKFRpbWVyPFZhbGlkYXRpb25NZXNzYWdlPiopCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L1ZhbGlkYXRpb25NZXNzYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9W
YWxpZGF0aW9uTWVzc2FnZS5oCShyZXZpc2lvbiAxNTkwMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL1ZhbGlkYXRpb25NZXNzYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAg
cHVibGljOgogICAgIHZvaWQgdXBkYXRlVmFsaWRhdGlvbk1lc3NhZ2UoY29uc3QgU3RyaW5nJik7
CiAgICAgdm9pZCByZXF1ZXN0VG9IaWRlTWVzc2FnZSgpOwogICAgIGJvb2wgaXNWaXNpYmxlKCkg
Y29uc3Q7Ci0gICAgYm9vbCBzaGFkb3dUcmVlQ29udGFpbnMoY29uc3QgTm9kZSopIGNvbnN0Owor
ICAgIGJvb2wgc2hhZG93VHJlZUNvbnRhaW5zKGNvbnN0IE5vZGUmKSBjb25zdDsKIAogcHJpdmF0
ZToKICAgICBleHBsaWNpdCBWYWxpZGF0aW9uTWVzc2FnZShIVE1MRm9ybUNvbnRyb2xFbGVtZW50
Kik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNlcnRpb25Qb2ludC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmgJ
KHJldmlzaW9uIDE1OTAzMikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlv
blBvaW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyOSwxMSArMTI5LDExIEBAIGlubGluZSBTaGFk
b3dSb290KiBzaGFkb3dSb290T2ZQYXJlbnRGb3IKIAogSW5zZXJ0aW9uUG9pbnQqIGZpbmRJbnNl
cnRpb25Qb2ludE9mKGNvbnN0IE5vZGUqKTsKIAotaW5saW5lIGJvb2wgaGFzU2hhZG93Um9vdE9y
QWN0aXZlSW5zZXJ0aW9uUG9pbnRQYXJlbnQoY29uc3QgTm9kZSogbm9kZSkKK2lubGluZSBib29s
IGhhc1NoYWRvd1Jvb3RPckFjdGl2ZUluc2VydGlvblBvaW50UGFyZW50KGNvbnN0IE5vZGUmIG5v
ZGUpCiB7CiAgICAgcmV0dXJuIGhhc1NoYWRvd1Jvb3RQYXJlbnQobm9kZSkKLSAgICAgICAgfHwg
aXNBY3RpdmVJbnNlcnRpb25Qb2ludChmaW5kSW5zZXJ0aW9uUG9pbnRPZihub2RlKSkKLSAgICAg
ICAgfHwgaXNBY3RpdmVJbnNlcnRpb25Qb2ludChub2RlLT5wYXJlbnROb2RlKCkpOworICAgICAg
ICB8fCBpc0FjdGl2ZUluc2VydGlvblBvaW50KGZpbmRJbnNlcnRpb25Qb2ludE9mKCZub2RlKSkK
KyAgICAgICAgfHwgaXNBY3RpdmVJbnNlcnRpb25Qb2ludChub2RlLnBhcmVudE5vZGUoKSk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL21hdGhtbC9N
YXRoTUxFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0
aE1MRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1OTAzMikKKysrIFNvdXJjZS9XZWJDb3JlL21hdGht
bC9NYXRoTUxFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEzLDEwICsxMTMsMTAgQEAg
dm9pZCBNYXRoTUxFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZQogICAgIH0KIH0KIAotYm9v
bCBNYXRoTUxFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUqIGNo
aWxkKSBjb25zdAorYm9vbCBNYXRoTUxFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVy
KGNvbnN0IE5vZGUmIGNoaWxkKSBjb25zdAogewogICAgIC8vIE9ubHkgY3JlYXRlIHJlbmRlcmVy
cyBmb3IgTWF0aE1MIGVsZW1lbnRzIG9yIHRleHQuIE1hdGhNTCBwcm9oaWJpdHMgbm9uLU1hdGhN
TCBtYXJrdXAgaW5zaWRlIGEgPG1hdGg+IGVsZW1lbnQuCi0gICAgcmV0dXJuIGNoaWxkLT5pc1Rl
eHROb2RlKCkgfHwgY2hpbGQtPmlzTWF0aE1MRWxlbWVudCgpOworICAgIHJldHVybiBjaGlsZC5p
c1RleHROb2RlKCkgfHwgY2hpbGQuaXNNYXRoTUxFbGVtZW50KCk7CiB9CiAKIH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuaAkocmV2aXNpb24gMTU5MDMyKQorKysgU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDEs
OCArNDEsNiBAQCBwdWJsaWM6CiAgICAgaW50IGNvbFNwYW4oKSBjb25zdDsKICAgICBpbnQgcm93
U3BhbigpIGNvbnN0OwogCi0gICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVy
ZXIoY29uc3QgTm9kZSopIGNvbnN0IE9WRVJSSURFOwotCiBwcm90ZWN0ZWQ6CiAgICAgTWF0aE1M
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwogCkBAIC01
MSw2ICs0OSw4IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6ICAgIAogICAgIHZpcnR1YWwgYm9vbCBp
c1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxl
UHJvcGVydHlTZXQmKSBPVkVSUklERTsKKworICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENy
ZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBPVkVSUklERTsKIH07CiAKIHZvaWQgaXNN
YXRoTUxFbGVtZW50KGNvbnN0IE1hdGhNTEVsZW1lbnQmKTsgLy8gQ2F0Y2ggdW5uZWNlc3Nhcnkg
cnVudGltZSBjaGVjayBvZiB0eXBlIGtub3duIGF0IGNvbXBpbGUgdGltZS4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcAkocmV2aXNpb24gMTU5MDMy
KQorKysgU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzMsOSArNzMsOSBAQCBSZW5kZXJFbGVtZW50KiBNYXRoTUxUZXh0RWxlbWVu
dDo6Y3JlYXRlCiAgICAgcmV0dXJuIE1hdGhNTEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKHN0ZDo6
bW92ZShzdHlsZSkpOwogfQogCi1ib29sIE1hdGhNTFRleHRFbGVtZW50OjpjaGlsZFNob3VsZENy
ZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUqIGNoaWxkKSBjb25zdAorYm9vbCBNYXRoTUxUZXh0RWxl
bWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJiBjaGlsZCkgY29uc3QK
IHsKLSAgICByZXR1cm4gY2hpbGQtPmlzVGV4dE5vZGUoKTsKKyAgICByZXR1cm4gY2hpbGQuaXNU
ZXh0Tm9kZSgpOwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4
dEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4
dEVsZW1lbnQuaAkocmV2aXNpb24gMTU5MDMyKQorKysgU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTFRleHRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDEyICszNywxMiBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TWF0aE1MVGV4dEVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRBdHRhY2hSZW5kZXJlcnMoKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNo
b3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUqKSBjb25zdCBPVkVSUklERTsKLQogcHJpdmF0
ZToKICAgICBNYXRoTUxUZXh0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihQ
YXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGNoaWxkU2hv
dWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IE9WRVJSSURFOworCiAgICAgdmly
dHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIE9WRVJSSURFOwog
fTsKICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3Bw
CShyZXZpc2lvbiAxNTkwMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVU
cmVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU2LDcgKzE1Niw3IEBAIHN0YXRpYyBib29sIHNo
b3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IEUKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlm
ICghcGFyZW50UmVuZGVyZXItPmNhbkhhdmVDaGlsZHJlbigpICYmICEoZWxlbWVudC5pc1BzZXVk
b0VsZW1lbnQoKSAmJiBwYXJlbnRSZW5kZXJlci0+Y2FuSGF2ZUdlbmVyYXRlZENoaWxkcmVuKCkp
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFyZW5kZXJpbmdQYXJlbnQtPmNoaWxk
U2hvdWxkQ3JlYXRlUmVuZGVyZXIoJmVsZW1lbnQpKQorICAgIGlmICghcmVuZGVyaW5nUGFyZW50
LT5jaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGVsZW1lbnQpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0zNzUsNyArMzc1LDcgQEAgc3RhdGljIHZvaWQg
Y3JlYXRlVGV4dFJlbmRlcmVySWZOZWVkZWQoVAogICAgIFJlbmRlckVsZW1lbnQqIHBhcmVudFJl
bmRlcmVyID0gcmVuZGVyaW5nUGFyZW50Tm9kZS0+cmVuZGVyZXIoKTsKICAgICBpZiAoIXBhcmVu
dFJlbmRlcmVyIHx8ICFwYXJlbnRSZW5kZXJlci0+Y2FuSGF2ZUNoaWxkcmVuKCkpCiAgICAgICAg
IHJldHVybjsKLSAgICBpZiAoIXJlbmRlcmluZ1BhcmVudE5vZGUtPmNoaWxkU2hvdWxkQ3JlYXRl
UmVuZGVyZXIoJnRleHROb2RlKSkKKyAgICBpZiAoIXJlbmRlcmluZ1BhcmVudE5vZGUtPmNoaWxk
U2hvdWxkQ3JlYXRlUmVuZGVyZXIodGV4dE5vZGUpKQogICAgICAgICByZXR1cm47CiAKICAgICAv
LyBGSVhNRTogY29uc3RpZnkgdGhpcyBSZW5kZXJTdHlsZSYuCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1OTAzMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyMywxMSArMjIzLDExIEBAIGJvb2wg
U1ZHQUVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2UKICAgICByZXR1cm4gZG9jdW1lbnQo
KS5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS50YWJzVG9MaW5rcyhldmVudCk7CiB9CiAKLWJvb2wg
U1ZHQUVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSogY2hpbGQp
IGNvbnN0Citib29sIFNWR0FFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0
IE5vZGUmIGNoaWxkKSBjb25zdAogewogICAgIC8vIGh0dHA6Ly93d3cudzMub3JnLzIwMDMvMDEv
UkVDLVNWRzExLTIwMDMwMTE0LWVycmF0YSNsaW5raW5nLXRleHQtZW52aXJvbm1lbnQKICAgICAv
LyBUaGUgJ2EnIGVsZW1lbnQgbWF5IGNvbnRhaW4gYW55IGVsZW1lbnQgdGhhdCBpdHMgcGFyZW50
IG1heSBjb250YWluLCBleGNlcHQgaXRzZWxmLgotICAgIGlmIChjaGlsZC0+aGFzVGFnTmFtZShT
VkdOYW1lczo6YVRhZykpCisgICAgaWYgKGNoaWxkLmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmFUYWcp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKHBhcmVudE5vZGUoKSAmJiBwYXJlbnRO
b2RlKCktPmlzU1ZHRWxlbWVudCgpKQogICAgICAgICByZXR1cm4gcGFyZW50Tm9kZSgpLT5jaGls
ZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNoaWxkKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVu
dC5oCShyZXZpc2lvbiAxNTkwMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtNDksNiArNDksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKIAogICAgIHZp
cnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4p
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNv
bnN0IE5vZGUmKSBjb25zdCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZl
bnRIYW5kbGVyKEV2ZW50Kik7CiAgICAgCkBAIC01OCw4ICs1OSw2IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCBib29sIGlzRm9jdXNhYmxlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBi
b29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0OwogCi0gICAgdmlydHVh
bCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSopIGNvbnN0OwotCiAg
ICAgQkVHSU5fREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0FFbGVtZW50KQogICAgICAg
ICAvLyBUaGlzIGRlY2xhcmF0aW9uIHVzZWQgdG8gZGVmaW5lIGEgbm9uLXZpcnR1YWwgIlN0cmlu
ZyYgdGFyZ2V0KCkgY29uc3QiIG1ldGhvZCwgdGhhdCBjbGFzaGVzIHdpdGggInZpcnR1YWwgU3Ry
aW5nIEVsZW1lbnQ6OnRhcmdldCgpIGNvbnN0Ii4KICAgICAgICAgLy8gVGhhdCdzIHdoeSBpdCBo
YXMgYmVlbiByZW5hbWVkIHRvICJzdmdUYXJnZXQiLCB0aGUgQ29kZUdlbmVyYXRvcnMgdGFrZSBj
YXJlIG9mIGNhbGxpbmcgc3ZnVGFyZ2V0QW5pbWF0ZWQoKSBpbnN0ZWFkIG9mIHRhcmdldEFuaW1h
dGVkKCksIHNlZSBDb2RlR2VuZXJhdG9yLnBtLgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FsdEdseXBoRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FsdEdseXBoRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1OTAzMikKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NSw5ICs3NSw5
IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHQWx0R2x5cGhFbGVtZW50OjoKICAgICByZXR1cm4g
ZmFzdEdldEF0dHJpYnV0ZShTVkdOYW1lczo6Zm9ybWF0QXR0cik7CiB9CiAKLWJvb2wgU1ZHQWx0
R2x5cGhFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUqIGNoaWxk
KSBjb25zdAorYm9vbCBTVkdBbHRHbHlwaEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVy
ZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0CiB7Ci0gICAgaWYgKGNoaWxkLT5pc1RleHROb2Rl
KCkpCisgICAgaWYgKGNoaWxkLmlzVGV4dE5vZGUoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgcmV0dXJuIGZhbHNlOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBo
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVs
ZW1lbnQuaAkocmV2aXNpb24gMTU5MDMyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEds
eXBoRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIHByaXZhdGU6CiAg
ICAgU1ZHQWx0R2x5cGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwog
CiAgICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRl
clN0eWxlPikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVu
ZGVyZXIoY29uc3QgTm9kZSopIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENy
ZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBPVkVSUklERTsKIAogICAgIEJFR0lOX0RF
Q0xBUkVfQU5JTUFURURfUFJPUEVSVElFUyhTVkdBbHRHbHlwaEVsZW1lbnQpCiAgICAgICAgIERF
Q0xBUkVfQU5JTUFURURfU1RSSU5HKEhyZWYsIGhyZWYpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdE
b2N1bWVudC5jcHAJKHJldmlzaW9uIDE1OTAzMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdE
b2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkzLDEwICs5MywxMCBAQCB2b2lkIFNWR0Rv
Y3VtZW50Ojp1cGRhdGVQYW4oY29uc3QgRmxvYXRQCiAgICAgfQogfQogCi1ib29sIFNWR0RvY3Vt
ZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUqIGNoaWxkKSBjb25zdAor
Ym9vbCBTVkdEb2N1bWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJiBj
aGlsZCkgY29uc3QKIHsKICAgICBpZiAoaXNTVkdTVkdFbGVtZW50KGNoaWxkKSkKLSAgICAgICAg
cmV0dXJuIHRvU1ZHU1ZHRWxlbWVudChjaGlsZCktPmlzVmFsaWQoKTsKKyAgICAgICAgcmV0dXJu
IHRvU1ZHU1ZHRWxlbWVudChjaGlsZCkuaXNWYWxpZCgpOwogICAgIHJldHVybiB0cnVlOwogfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnQuaAkocmV2aXNpb24gMTU5MDMyKQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUx
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBTVkdEb2N1bWVudChGcmFtZSosIGNvbnN0IFVS
TCYpOwogCi0gICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3Qg
Tm9kZSopIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0
ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBPVkVSUklERTsKIAogICAgIEZsb2F0UG9pbnQg
bV90cmFuc2xhdGU7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAkocmV2aXNp
b24gMTU5MDMyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02NzksNyArNjc5LDcgQEAgdm9pZCBTVkdFbGVtZW50OjpmaW5pc2hQYXJzaW5n
Q2hpbGRyZW4oKQogICAgIHNlbmRTVkdMb2FkRXZlbnRJZlBvc3NpYmxlKCk7CiB9CiAKLWJvb2wg
U1ZHRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlKiBjaGlsZCkg
Y29uc3QKK2Jvb2wgU1ZHRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBO
b2RlJiBjaGlsZCkgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVh
bGlmaWVkTmFtZT4sIGludmFsaWRUZXh0Q29udGVudCwgKCkpOwogCkBAIC02OTEsMTIgKzY5MSwx
MiBAQCBib29sIFNWR0VsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyCiAgICAgICAgIGlu
dmFsaWRUZXh0Q29udGVudC5hZGQoU1ZHTmFtZXM6OnRyZWZUYWcpOwogICAgICAgICBpbnZhbGlk
VGV4dENvbnRlbnQuYWRkKFNWR05hbWVzOjp0c3BhblRhZyk7CiAgICAgfQotICAgIGlmIChjaGls
ZC0+aXNTVkdFbGVtZW50KCkpIHsKLSAgICAgICAgY29uc3QgU1ZHRWxlbWVudCogc3ZnQ2hpbGQg
PSB0b1NWR0VsZW1lbnQoY2hpbGQpOwotICAgICAgICBpZiAoaW52YWxpZFRleHRDb250ZW50LmNv
bnRhaW5zKHN2Z0NoaWxkLT50YWdRTmFtZSgpKSkKKyAgICBpZiAoY2hpbGQuaXNTVkdFbGVtZW50
KCkpIHsKKyAgICAgICAgY29uc3QgU1ZHRWxlbWVudCYgc3ZnQ2hpbGQgPSB0b1NWR0VsZW1lbnQo
Y2hpbGQpOworICAgICAgICBpZiAoaW52YWxpZFRleHRDb250ZW50LmNvbnRhaW5zKHN2Z0NoaWxk
LnRhZ1FOYW1lKCkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIHJldHVy
biBzdmdDaGlsZC0+aXNWYWxpZCgpOworICAgICAgICByZXR1cm4gc3ZnQ2hpbGQuaXNWYWxpZCgp
OwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50
LmgJKHJldmlzaW9uIDE1OTAzMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTE0OCw3ICsxNDgsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2aXJ0
dWFsIHZvaWQgZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2
b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0
cmluZyYsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiA9IE1vZGlmaWVkRGlyZWN0bHkpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0
IE5vZGUqKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVh
dGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3QgT1ZFUlJJREU7CiAKICAgICBTVkdFbGVtZW50
UmFyZURhdGEmIGVuc3VyZVNWR1JhcmVEYXRhKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRmlsdGVyRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1OTAzMikKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkzLDEyICsxOTMs
MTIgQEAgUmVuZGVyRWxlbWVudCogU1ZHRmlsdGVyRWxlbWVudDo6Y3JlYXRlUgogICAgIHJldHVy
biBuZXcgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIoKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOwog
fQogCi1ib29sIFNWR0ZpbHRlckVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29u
c3QgTm9kZSogY2hpbGQpIGNvbnN0Citib29sIFNWR0ZpbHRlckVsZW1lbnQ6OmNoaWxkU2hvdWxk
Q3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0CiB7Ci0gICAgaWYgKCFjaGls
ZC0+aXNTVkdFbGVtZW50KCkpCisgICAgaWYgKCFjaGlsZC5pc1NWR0VsZW1lbnQoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgY29uc3QgU1ZHRWxlbWVudCogc3ZnRWxlbWVudCA9IHRv
U1ZHRWxlbWVudChjaGlsZCk7CisgICAgY29uc3QgU1ZHRWxlbWVudCYgc3ZnRWxlbWVudCA9IHRv
U1ZHRWxlbWVudChjaGlsZCk7CiAKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVh
bGlmaWVkTmFtZT4sIGFsbG93ZWRDaGlsZEVsZW1lbnRUYWdzLCAoKSk7CiAgICAgaWYgKGFsbG93
ZWRDaGlsZEVsZW1lbnRUYWdzLmlzRW1wdHkoKSkgewpAQCAtMjI5LDcgKzIyOSw3IEBAIGJvb2wg
U1ZHRmlsdGVyRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGUKICAgICAgICAgYWxsb3dlZENoaWxk
RWxlbWVudFRhZ3MuYWRkKFNWR05hbWVzOjpmZVR1cmJ1bGVuY2VUYWcpOwogICAgIH0KIAotICAg
IHJldHVybiBhbGxvd2VkQ2hpbGRFbGVtZW50VGFncy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNo
VHJhbnNsYXRvcj4oc3ZnRWxlbWVudC0+dGFnUU5hbWUoKSk7CisgICAgcmV0dXJuIGFsbG93ZWRD
aGlsZEVsZW1lbnRUYWdzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihzdmdF
bGVtZW50LnRhZ1FOYW1lKCkpOwogfQogCiBib29sIFNWR0ZpbHRlckVsZW1lbnQ6OnNlbGZIYXNS
ZWxhdGl2ZUxlbmd0aHMoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRl
ckVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxl
bWVudC5oCShyZXZpc2lvbiAxNTkwMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVy
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIE9WRVJSSURF
OwogCiAgICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJl
bmRlclN0eWxlPikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRl
UmVuZGVyZXIoY29uc3QgTm9kZSopIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBj
aGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBPVkVSUklERTsKIAog
ICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Q7CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3Rh
bmRhcmRBdHRyaWJ1dGVzLmgJKHJldmlzaW9uIDE1OTAzMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaAkod29ya2luZyBjb3B5KQpA
QCAtNzAsNyArNzAsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBj
cmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlKikgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91
bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFs
c2U7IH0KIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUyhTVkdGaWx0ZXJQ
cmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMpCiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURfTEVO
R1RIKFgsIHgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0
RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1OTAzMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
b3JlaWduT2JqZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMSwxMSArMTMxLDEx
IEBAIFJlbmRlckVsZW1lbnQqIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjoKICAgICByZXR1cm4g
bmV3IFJlbmRlclNWR0ZvcmVpZ25PYmplY3QoKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOwogfQog
Ci1ib29sIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVy
KGNvbnN0IE5vZGUqIGNoaWxkKSBjb25zdAorYm9vbCBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6
Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJiBjaGlsZCkgY29uc3QKIHsKICAg
ICAvLyBEaXNhbGxvdyBhcmJpdGFyeSBTVkcgY29udGVudC4gT25seSBhbGxvdyBwcm9wZXIgPHN2
ZyB4bWxucz0ic3ZnTlMiPiBzdWJkb2N1bWVudHMuCi0gICAgaWYgKGNoaWxkLT5pc1NWR0VsZW1l
bnQoKSkKLSAgICAgICAgcmV0dXJuIGNoaWxkLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpzdmdUYWcp
OworICAgIGlmIChjaGlsZC5pc1NWR0VsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGNoaWxkLmhh
c1RhZ05hbWUoU1ZHTmFtZXM6OnN2Z1RhZyk7CiAKICAgICAvLyBTa2lwIG92ZXIgU1ZHIHJ1bGVz
IHdoaWNoIGRpc2FsbG93IG5vbi1TVkcga2lkcwogICAgIHJldHVybiBTdHlsZWRFbGVtZW50Ojpj
aGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNoaWxkKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oCShyZXZpc2lvbiAxNTkwMzIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtNDQsNyArNDQsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKIAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJl
cklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29s
IGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSopIGNvbnN0OworICAgIHZpcnR1
YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8
UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRp
dmVMZW5ndGhzKCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1l
bnQuY3BwCShyZXZpc2lvbiAxNTkwMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNo
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAgUGFzc1JlZlB0cjxT
VkdTd2l0Y2hFbGVtZW50PiBTVkdTd2l0Y2hFbAogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZH
U3dpdGNoRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi1ib29sIFNWR1N3aXRjaEVs
ZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSogY2hpbGQpIGNvbnN0
Citib29sIFNWR1N3aXRjaEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3Qg
Tm9kZSYgY2hpbGQpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24gZG9lcyBu
b3QgZG8gd2hhdCB0aGUgY29tbWVudCBiZWxvdyBpbXBsaWVzIGl0IGRvZXMuCiAgICAgLy8gSXQg
d2lsbCBjcmVhdGUgYSByZW5kZXJlciBmb3IgYW55IHZhbGlkIFNWRyBlbGVtZW50IGNoaWxkcmVu
LCBub3QganVzdCB0aGUgZmlyc3Qgb25lLgpAQCAtNTcsNyArNTcsNyBAQCBib29sIFNWR1N3aXRj
aEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlCiAgICAgZm9yIChhdXRvIGVsZW1lbnQgPSBzdmdD
aGlsZHJlbi5iZWdpbigpLCBlbmQgPSBzdmdDaGlsZHJlbi5lbmQoKTsgZWxlbWVudCAhPSBlbmQ7
ICsrZWxlbWVudCkgewogICAgICAgICBpZiAoIWVsZW1lbnQtPmlzVmFsaWQoKSkKICAgICAgICAg
ICAgIGNvbnRpbnVlOwotICAgICAgICByZXR1cm4gJiplbGVtZW50ID09IGNoaWxkOyAvLyBPbmx5
IGFsbG93IHRoaXMgY2hpbGQgaWYgaXQncyB0aGUgZmlyc3QgdmFsaWQgY2hpbGQKKyAgICAgICAg
cmV0dXJuICYqZWxlbWVudCA9PSAmY2hpbGQ7IC8vIE9ubHkgYWxsb3cgdGhpcyBjaGlsZCBpZiBp
dCdzIHRoZSBmaXJzdCB2YWxpZCBjaGlsZAogICAgIH0KIAogICAgIHJldHVybiBmYWxzZTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaAkocmV2aXNpb24gMTU5MDMyKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMzksOCArMzksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29u
c3QgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQogICAgIHZpcnR1YWwgYm9vbCBzdXBw
b3J0c0ZvY3VzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVh
bCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSopIGNvbnN0OwotCisg
ICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIo
UGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOwogCiAgICAgQkVHSU5fREVDTEFSRV9BTklN
QVRFRF9QUk9QRVJUSUVTKFNWR1N3aXRjaEVsZW1lbnQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVFJlZkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUUmVmRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1OTAzMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUUmVmRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyNSw5ICsyMjUsOSBAQCBS
ZW5kZXJFbGVtZW50KiBTVkdUUmVmRWxlbWVudDo6Y3JlYXRlUmVuCiAgICAgcmV0dXJuIG5ldyBS
ZW5kZXJTVkdJbmxpbmUoKnRoaXMsIHN0ZDo6bW92ZShzdHlsZSkpOwogfQogCi1ib29sIFNWR1RS
ZWZFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUqIGNoaWxkKSBj
b25zdAorYm9vbCBTVkdUUmVmRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25z
dCBOb2RlJiBjaGlsZCkgY29uc3QKIHsKLSAgICByZXR1cm4gY2hpbGQtPmlzSW5TaGFkb3dUcmVl
KCk7CisgICAgcmV0dXJuIGNoaWxkLmlzSW5TaGFkb3dUcmVlKCk7CiB9CiAKIGJvb2wgU1ZHVFJl
ZkVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmgJKHJldmlzaW9uIDE1OTAzMikKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3
ICs0NSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCiAgICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVh
dGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSopIGNvbnN0OworICAgIHZp
cnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJT
dHlsZSYpOwogCiAgICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2Vy
dGVkSW50byhDb250YWluZXJOb2RlJikgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVFNwYW5FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVFNwYW5FbGVtZW50LmNwcAkocmV2aXNpb24gMTU5MDMyKQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RTcGFuRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDE1ICs0NSwxNSBA
QCBSZW5kZXJFbGVtZW50KiBTVkdUU3BhbkVsZW1lbnQ6OmNyZWF0ZVJlCiAgICAgcmV0dXJuIG5l
dyBSZW5kZXJTVkdUU3BhbigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CiB9CiAKLWJvb2wgU1ZH
VFNwYW5FbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUqIGNoaWxk
KSBjb25zdAorYm9vbCBTVkdUU3BhbkVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIo
Y29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0CiB7Ci0gICAgaWYgKGNoaWxkLT5pc1RleHROb2RlKCkK
LSAgICAgICAgfHwgY2hpbGQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmFUYWcpCisgICAgaWYgKGNo
aWxkLmlzVGV4dE5vZGUoKQorICAgICAgICB8fCBjaGlsZC5oYXNUYWdOYW1lKFNWR05hbWVzOjph
VGFnKQogI2lmIEVOQUJMRShTVkdfRk9OVFMpCi0gICAgICAgIHx8IGNoaWxkLT5oYXNUYWdOYW1l
KFNWR05hbWVzOjphbHRHbHlwaFRhZykKKyAgICAgICAgfHwgY2hpbGQuaGFzVGFnTmFtZShTVkdO
YW1lczo6YWx0R2x5cGhUYWcpCiAjZW5kaWYKLSAgICAgICAgfHwgY2hpbGQtPmhhc1RhZ05hbWUo
U1ZHTmFtZXM6OnRyZWZUYWcpCi0gICAgICAgIHx8IGNoaWxkLT5oYXNUYWdOYW1lKFNWR05hbWVz
Ojp0c3BhblRhZykpCisgICAgICAgIHx8IGNoaWxkLmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRyZWZU
YWcpCisgICAgICAgIHx8IGNoaWxkLmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRzcGFuVGFnKSkKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RTcGFuRWxlbWVudC5oCShyZXZpc2lvbiAxNTkwMzIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAg
cHJpdmF0ZToKICAgICBTVkdUU3BhbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CiAgICAgICAgICAgICAKICAgICB2aXJ0dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJl
bmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wg
Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlKikgY29uc3Q7CisgICAgdmlydHVh
bCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IE9WRVJS
SURFOwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxl
Jik7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5jcHAJKHJldmlz
aW9uIDE1OTAzMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTczLDE2ICs3MywxNiBAQCBSZW5kZXJFbGVtZW50KiBTVkdUZXh0RWxl
bWVudDo6Y3JlYXRlUmVuCiAgICAgcmV0dXJuIG5ldyBSZW5kZXJTVkdUZXh0KCp0aGlzLCBzdGQ6
Om1vdmUoc3R5bGUpKTsKIH0KIAotYm9vbCBTVkdUZXh0RWxlbWVudDo6Y2hpbGRTaG91bGRDcmVh
dGVSZW5kZXJlcihjb25zdCBOb2RlKiBjaGlsZCkgY29uc3QKK2Jvb2wgU1ZHVGV4dEVsZW1lbnQ6
OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0CiB7Ci0g
ICAgaWYgKGNoaWxkLT5pc1RleHROb2RlKCkKLSAgICAgICAgfHwgY2hpbGQtPmhhc1RhZ05hbWUo
U1ZHTmFtZXM6OmFUYWcpCisgICAgaWYgKGNoaWxkLmlzVGV4dE5vZGUoKQorICAgICAgICB8fCBj
aGlsZC5oYXNUYWdOYW1lKFNWR05hbWVzOjphVGFnKQogI2lmIEVOQUJMRShTVkdfRk9OVFMpCi0g
ICAgICAgIHx8IGNoaWxkLT5oYXNUYWdOYW1lKFNWR05hbWVzOjphbHRHbHlwaFRhZykKKyAgICAg
ICAgfHwgY2hpbGQuaGFzVGFnTmFtZShTVkdOYW1lczo6YWx0R2x5cGhUYWcpCiAjZW5kaWYKLSAg
ICAgICAgfHwgY2hpbGQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRleHRQYXRoVGFnKQotICAgICAg
ICB8fCBjaGlsZC0+aGFzVGFnTmFtZShTVkdOYW1lczo6dHJlZlRhZykKLSAgICAgICAgfHwgY2hp
bGQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRzcGFuVGFnKSkKKyAgICAgICAgfHwgY2hpbGQuaGFz
VGFnTmFtZShTVkdOYW1lczo6dGV4dFBhdGhUYWcpCisgICAgICAgIHx8IGNoaWxkLmhhc1RhZ05h
bWUoU1ZHTmFtZXM6OnRyZWZUYWcpCisgICAgICAgIHx8IGNoaWxkLmhhc1RhZ05hbWUoU1ZHTmFt
ZXM6OnRzcGFuVGFnKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4gZmFsc2U7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaAkocmV2aXNpb24gMTU5MDMyKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTM4LDcgKzM4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwgUmVuZGVyRWxl
bWVudCogY3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUqKSBjb25z
dDsKKyAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2Rl
JikgY29uc3QgT1ZFUlJJREU7CiB9OwogCiBOT0RFX1RZUEVfQ0FTVFMoU1ZHVGV4dEVsZW1lbnQp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcAkocmV2aXNp
b24gMTU5MDMyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEzMiwxMiArMTMyLDEyIEBAIFJlbmRlckVsZW1lbnQqIFNWR1Rl
eHRQYXRoRWxlbWVudDo6Y3JlYXQKICAgICByZXR1cm4gbmV3IFJlbmRlclNWR1RleHRQYXRoKCp0
aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKIH0KIAotYm9vbCBTVkdUZXh0UGF0aEVsZW1lbnQ6OmNo
aWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSogY2hpbGQpIGNvbnN0Citib29sIFNW
R1RleHRQYXRoRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJiBj
aGlsZCkgY29uc3QKIHsKLSAgICBpZiAoY2hpbGQtPmlzVGV4dE5vZGUoKQotICAgICAgICB8fCBj
aGlsZC0+aGFzVGFnTmFtZShTVkdOYW1lczo6YVRhZykKLSAgICAgICAgfHwgY2hpbGQtPmhhc1Rh
Z05hbWUoU1ZHTmFtZXM6OnRyZWZUYWcpCi0gICAgICAgIHx8IGNoaWxkLT5oYXNUYWdOYW1lKFNW
R05hbWVzOjp0c3BhblRhZykpCisgICAgaWYgKGNoaWxkLmlzVGV4dE5vZGUoKQorICAgICAgICB8
fCBjaGlsZC5oYXNUYWdOYW1lKFNWR05hbWVzOjphVGFnKQorICAgICAgICB8fCBjaGlsZC5oYXNU
YWdOYW1lKFNWR05hbWVzOjp0cmVmVGFnKQorICAgICAgICB8fCBjaGlsZC5oYXNUYWdOYW1lKFNW
R05hbWVzOjp0c3BhblRhZykpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgcmV0dXJuIGZh
bHNlOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaAkocmV2aXNp
b24gMTU5MDMyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMjgsNyArMTI4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJik7CiAKICAgICB2aXJ0
dWFsIFJlbmRlckVsZW1lbnQqIGNyZWF0ZVJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25z
dCBOb2RlKikgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVy
ZXIoY29uc3QgTm9kZSYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJl
cklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJik7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhh
c1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0Owo=
</data>
<flag name="review"
          id="239521"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>