<?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>124471</bug_id>
          
          <creation_ts>2013-11-17 15:23:36 -0800</creation_ts>
          <short_desc>LayoutStateMaintainer should use references where possible</short_desc>
          <delta_ts>2013-11-17 17:09:56 -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>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>WebkitBugTracker</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>951445</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-11-17 15:23:36 -0800</bug_when>
    <thetext>LayoutStateMaintainer should use references where possible</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951446</commentid>
    <comment_count>1</comment_count>
      <attachid>217156</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-11-17 15:24:03 -0800</bug_when>
    <thetext>Created attachment 217156
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951463</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-11-17 17:09:56 -0800</bug_when>
    <thetext>Committed r159391: &lt;http://trac.webkit.org/changeset/159391&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217156</attachid>
            <date>2013-11-17 15:24:03 -0800</date>
            <delta_ts>2013-11-17 17:05:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124471-20131117152402.patch</filename>
            <type>text/plain</type>
            <size>25274</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1OTM5MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDEzLTExLTE3ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTGF5b3V0U3RhdGVNYWludGFpbmVyIHNo
b3VsZCB1c2UgcmVmZXJlbmNlcyB3aGVyZSBwb3NzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAg
ICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6Omxh
eW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dFN0YXRlOjpMYXlvdXRTdGF0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL0xh
eW91dFN0YXRlLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpzaW1wbGlmaWVkTGF5b3V0KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrRmxvdzo6bGF5b3V0QmxvY2spOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpsYXlvdXQpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRCbG9jayk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckVtYmVkZGVkT2JqZWN0OjpsYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbGV4
aWJsZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0
QmxvY2spOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OnB1c2hGbG93VGhyZWFkTGF5b3V0U3RhdGUp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckdyaWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6bGF5
b3V0QmxvY2spOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJNZWRpYTo6bGF5b3V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OmxheW91dCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRhYmxlUm93OjpsYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJs
ZVNlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVTZWN0aW9uOjpjYWxj
Um93TG9naWNhbEhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246
OmxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmxheW91dFJv
d3MpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0VHJhY2tDdWUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGV4dFRyYWNrQ3VlOjpsYXlvdXQpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OnB1c2hM
YXlvdXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpwdXNoTGF5b3V0U3Rh
dGVGb3JDdXJyZW50Rmxvd1RocmVhZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dFN0YXRlTWFpbnRhaW5lcjo6TGF5b3V0U3RhdGVN
YWludGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dFN0YXRlTWFpbnRhaW5lcjo6cHVz
aCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRTdGF0ZU1haW50YWluZXI6OnBvcCk6CisKIDIw
MTMtMTEtMTYgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAg
VXNlIHVpbnQ4X3QgdmVjdG9ycyBmb3IgV2ViQ3J5cHRvIGRhdGEKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAJKHJldmlzaW9uIDE1OTM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI0Niw3ICsxMjQ2LDcgQEAgdm9pZCBG
cmFtZVZpZXc6OmxheW91dChib29sIGFsbG93U3VidHJlZQogICAgICAgICBib29sIGRpc2FibGVM
YXlvdXRTdGF0ZSA9IGZhbHNlOwogICAgICAgICBpZiAoc3VidHJlZSkgewogICAgICAgICAgICAg
ZGlzYWJsZUxheW91dFN0YXRlID0gcm9vdC0+dmlldygpLnNob3VsZERpc2FibGVMYXlvdXRTdGF0
ZUZvclN1YnRyZWUocm9vdCk7Ci0gICAgICAgICAgICByb290LT52aWV3KCkucHVzaExheW91dFN0
YXRlKHJvb3QpOworICAgICAgICAgICAgcm9vdC0+dmlldygpLnB1c2hMYXlvdXRTdGF0ZSgqcm9v
dCk7CiAgICAgICAgIH0KICAgICAgICAgTGF5b3V0U3RhdGVEaXNhYmxlciBsYXlvdXRTdGF0ZURp
c2FibGVyKGRpc2FibGVMYXlvdXRTdGF0ZSA/ICZyb290LT52aWV3KCkgOiAwKTsKIApAQCAtMTI3
OCw3ICsxMjc4LDcgQEAgdm9pZCBGcmFtZVZpZXc6OmxheW91dChib29sIGFsbG93U3VidHJlZQog
ICAgICAgICBBU1NFUlQobV9sYXlvdXRQaGFzZSA9PSBJbkxheW91dCk7CiAKICAgICAgICAgaWYg
KHN1YnRyZWUpCi0gICAgICAgICAgICByb290LT52aWV3KCkucG9wTGF5b3V0U3RhdGUocm9vdCk7
CisgICAgICAgICAgICByb290LT52aWV3KCkucG9wTGF5b3V0U3RhdGUoKnJvb3QpOwogCiAgICAg
ICAgIG1fbGF5b3V0Um9vdCA9IDA7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9M
YXlvdXRTdGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xh
eW91dFN0YXRlLmNwcAkocmV2aXNpb24gMTU5MzgxKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0xheW91dFN0YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDcgKzEzNiw3IEBAIExh
eW91dFN0YXRlOjpMYXlvdXRTdGF0ZShzdGQ6OnVuaXF1ZV9wdHIKICAgICAvLyBGSVhNRTogPGh0
dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDQzPiBBcHBseSBjb250cm9s
IGNsaXAgaWYgcHJlc2VudC4KIH0KIAotTGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKFJlbmRlck9i
amVjdCogcm9vdCkKK0xheW91dFN0YXRlOjpMYXlvdXRTdGF0ZShSZW5kZXJPYmplY3QmIHJvb3Qp
CiAgICAgOiBtX2NsaXBwZWQoZmFsc2UpCiAgICAgLCBtX2lzUGFnaW5hdGVkKGZhbHNlKQogICAg
ICwgbV9wYWdlTG9naWNhbEhlaWdodENoYW5nZWQoZmFsc2UpCkBAIC0xNTEsMTAgKzE1MSwxMCBA
QCBMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUoUmVuZGVyT2JqZWN0KiByCiAjZW5kaWYKICAgICAs
IG1fcGFnZUxvZ2ljYWxIZWlnaHQoMCkKICNpZm5kZWYgTkRFQlVHCi0gICAgLCBtX3JlbmRlcmVy
KHJvb3QpCisgICAgLCBtX3JlbmRlcmVyKCZyb290KQogI2VuZGlmCiB7Ci0gICAgUmVuZGVyRWxl
bWVudCogY29udGFpbmVyID0gcm9vdC0+Y29udGFpbmVyKCk7CisgICAgUmVuZGVyRWxlbWVudCog
Y29udGFpbmVyID0gcm9vdC5jb250YWluZXIoKTsKICAgICBGbG9hdFBvaW50IGFic0NvbnRlbnRQ
b2ludCA9IGNvbnRhaW5lci0+bG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQoKSwgVXNlVHJhbnNm
b3Jtcyk7CiAgICAgbV9wYWludE9mZnNldCA9IExheW91dFNpemUoYWJzQ29udGVudFBvaW50Lngo
KSwgYWJzQ29udGVudFBvaW50LnkoKSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9MYXlvdXRTdGF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9M
YXlvdXRTdGF0ZS5oCShyZXZpc2lvbiAxNTkzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvTGF5b3V0U3RhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6
CiAgICAgfQogCiAgICAgTGF5b3V0U3RhdGUoc3RkOjp1bmlxdWVfcHRyPExheW91dFN0YXRlPiBz
dGF0ZSwgUmVuZGVyQm94KiwgY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0LCBMYXlvdXRVbml0IHBh
Z2VIZWlnaHQsIGJvb2wgcGFnZUhlaWdodENoYW5nZWQsIENvbHVtbkluZm8qKTsKLSAgICBleHBs
aWNpdCBMYXlvdXRTdGF0ZShSZW5kZXJPYmplY3QqKTsKKyAgICBleHBsaWNpdCBMYXlvdXRTdGF0
ZShSZW5kZXJPYmplY3QmKTsKIAogICAgIHZvaWQgY2xlYXJQYWdpbmF0aW9uSW5mb3JtYXRpb24o
KTsKICAgICBib29sIGlzUGFnaW5hdGluZ0NvbHVtbnMoKSBjb25zdCB7IHJldHVybiBtX2NvbHVt
bkluZm8gJiYgbV9jb2x1bW5JbmZvLT5wYWdpbmF0aW9uVW5pdCgpID09IENvbHVtbkluZm86OkNv
bHVtbjsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCShy
ZXZpc2lvbiAxNTkzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDAzLDcgKzIwMDMsNyBAQCBib29sIFJlbmRlckJsb2Nr
OjpzaW1wbGlmaWVkTGF5b3V0KCkKICAgICBpZiAoKCFwb3NDaGlsZE5lZWRzTGF5b3V0KCkgJiYg
IW5lZWRzU2ltcGxpZmllZE5vcm1hbEZsb3dMYXlvdXQoKSkgfHwgbm9ybWFsQ2hpbGROZWVkc0xh
eW91dCgpIHx8IHNlbGZOZWVkc0xheW91dCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBMYXlvdXRTdGF0ZU1haW50YWluZXIgc3RhdGVQdXNoZXIoJnZpZXcoKSwgdGhpcywgbG9jYXRp
b25PZmZzZXQoKSwgaGFzQ29sdW1ucygpIHx8IGhhc1RyYW5zZm9ybSgpIHx8IGhhc1JlZmxlY3Rp
b24oKSB8fCBzdHlsZSgpLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpOworICAgIExheW91
dFN0YXRlTWFpbnRhaW5lciBzdGF0ZVB1c2hlcih2aWV3KCksICp0aGlzLCBsb2NhdGlvbk9mZnNl
dCgpLCBoYXNDb2x1bW5zKCkgfHwgaGFzVHJhbnNmb3JtKCkgfHwgaGFzUmVmbGVjdGlvbigpIHx8
IHN0eWxlKCkuaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSk7CiAgICAgCiAgICAgaWYgKG5l
ZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KCkgJiYgIXRyeUxheW91dERvaW5nUG9zaXRpb25l
ZE1vdmVtZW50T25seSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAkocmV2aXNpb24gMTU5MzgxKQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMyMiw3ICszMjIsNyBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6bGF5b3V0Qmxv
Y2soYm9vbCByCiAgICAgY2hlY2tGb3JQYWdpbmF0aW9uTG9naWNhbEhlaWdodENoYW5nZShwYWdl
TG9naWNhbEhlaWdodCwgcGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkLCBoYXNTcGVjaWZpZWRQYWdl
TG9naWNhbEhlaWdodCk7CiAKICAgICBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGVUb1VzZSA9IHN0
eWxlKCk7Ci0gICAgTGF5b3V0U3RhdGVNYWludGFpbmVyIHN0YXRlUHVzaGVyKCZ2aWV3KCksIHRo
aXMsIGxvY2F0aW9uT2Zmc2V0KCksIGhhc0NvbHVtbnMoKSB8fCBoYXNUcmFuc2Zvcm0oKSB8fCBo
YXNSZWZsZWN0aW9uKCkgfHwgc3R5bGVUb1VzZS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgp
LCBwYWdlTG9naWNhbEhlaWdodCwgcGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkLCBjb2x1bW5JbmZv
KCkpOworICAgIExheW91dFN0YXRlTWFpbnRhaW5lciBzdGF0ZVB1c2hlcih2aWV3KCksICp0aGlz
LCBsb2NhdGlvbk9mZnNldCgpLCBoYXNDb2x1bW5zKCkgfHwgaGFzVHJhbnNmb3JtKCkgfHwgaGFz
UmVmbGVjdGlvbigpIHx8IHN0eWxlVG9Vc2UuaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSwg
cGFnZUxvZ2ljYWxIZWlnaHQsIHBhZ2VMb2dpY2FsSGVpZ2h0Q2hhbmdlZCwgY29sdW1uSW5mbygp
KTsKIAogICAgIHByZXBhcmVTaGFwZXNBbmRQYWdpbmF0aW9uQmVmb3JlQmxvY2tMYXlvdXQocmVs
YXlvdXRDaGlsZHJlbik7CiAgICAgaWYgKCFyZWxheW91dENoaWxkcmVuKQpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHJldmlzaW9uIDE1OTM4MSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Njgs
NyArNDY4LDcgQEAgdm9pZCBSZW5kZXJCb3g6OmxheW91dCgpCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBMYXlvdXRTdGF0ZU1haW50YWluZXIgc3RhdGVQdXNoZXIoJnZpZXcoKSwgdGhp
cywgbG9jYXRpb25PZmZzZXQoKSwgc3R5bGUoKS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgp
KTsKKyAgICBMYXlvdXRTdGF0ZU1haW50YWluZXIgc3RhdGVQdXNoZXIodmlldygpLCAqdGhpcywg
bG9jYXRpb25PZmZzZXQoKSwgc3R5bGUoKS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKTsK
ICAgICB3aGlsZSAoY2hpbGQpIHsKICAgICAgICAgaWYgKGNoaWxkLT5uZWVkc0xheW91dCgpKQog
ICAgICAgICAgICAgdG9SZW5kZXJFbGVtZW50KGNoaWxkKS0+bGF5b3V0KCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhp
YmxlQm94LmNwcAkocmV2aXNpb24gMTU5MzgxKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4Myw3
ICsyODMsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0CiAgICAg
ICAgIHJldHVybjsKIAogICAgIExheW91dFJlcGFpbnRlciByZXBhaW50ZXIoKnRoaXMsIGNoZWNr
Rm9yUmVwYWludER1cmluZ0xheW91dCgpKTsKLSAgICBMYXlvdXRTdGF0ZU1haW50YWluZXIgc3Rh
dGVQdXNoZXIoJnZpZXcoKSwgdGhpcywgbG9jYXRpb25PZmZzZXQoKSwgaGFzVHJhbnNmb3JtKCkg
fHwgaGFzUmVmbGVjdGlvbigpIHx8IHN0eWxlKCkuaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUo
KSk7CisgICAgTGF5b3V0U3RhdGVNYWludGFpbmVyIHN0YXRlUHVzaGVyKHZpZXcoKSwgKnRoaXMs
IGxvY2F0aW9uT2Zmc2V0KCksIGhhc1RyYW5zZm9ybSgpIHx8IGhhc1JlZmxlY3Rpb24oKSB8fCBz
dHlsZSgpLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpOwogCiAgICAgcHJlcGFyZVNoYXBl
c0FuZFBhZ2luYXRpb25CZWZvcmVCbG9ja0xheW91dChyZWxheW91dENoaWxkcmVuKTsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3Qu
Y3BwCShyZXZpc2lvbiAxNTkzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RW1iZWRkZWRPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MTMsNyArNTEzLDcgQEAgdm9p
ZCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6bGF5b3V0KCkKICAgICAvLyBXaGVuIGNhbGxpbmcgbGF5
b3V0KCkgb24gYSBjaGlsZCBub2RlLCBhIHBhcmVudCBtdXN0IGVpdGhlciBwdXNoIGEgTGF5b3V0
U3RhdGVNYWludGFpbnRlciwgb3IKICAgICAvLyBpbnN0YW50aWF0ZSBMYXlvdXRTdGF0ZURpc2Fi
bGVyLiBTaW5jZSB1c2luZyBhIExheW91dFN0YXRlTWFpbnRhaW5lciBpcyBzbGlnaHRseSBtb3Jl
IGVmZmljaWVudCwKICAgICAvLyBhbmQgdGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgbWFueSB0
aW1lcyBwZXIgc2Vjb25kIGR1cmluZyBwbGF5YmFjaywgdXNlIGEgTGF5b3V0U3RhdGVNYWludGFp
bmVyOgotICAgIExheW91dFN0YXRlTWFpbnRhaW5lciBzdGF0ZVB1c2hlcigmdmlldygpLCB0aGlz
LCBsb2NhdGlvbk9mZnNldCgpLCBoYXNUcmFuc2Zvcm0oKSB8fCBoYXNSZWZsZWN0aW9uKCkgfHwg
c3R5bGUoKS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKTsKKyAgICBMYXlvdXRTdGF0ZU1h
aW50YWluZXIgc3RhdGVQdXNoZXIodmlldygpLCAqdGhpcywgbG9jYXRpb25PZmZzZXQoKSwgaGFz
VHJhbnNmb3JtKCkgfHwgaGFzUmVmbGVjdGlvbigpIHx8IHN0eWxlKCkuaXNGbGlwcGVkQmxvY2tz
V3JpdGluZ01vZGUoKSk7CiAgICAgCiAgICAgY2hpbGRCb3gtPnNldExvY2F0aW9uKExheW91dFBv
aW50KGJvcmRlckxlZnQoKSwgYm9yZGVyVG9wKCkpICsgTGF5b3V0U2l6ZShwYWRkaW5nTGVmdCgp
LCBwYWRkaW5nVG9wKCkpKTsKICAgICBjaGlsZEJveC0+c3R5bGUoKS5zZXRIZWlnaHQoTGVuZ3Ro
KG5ld1NpemUuaGVpZ2h0KCksIEZpeGVkKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRmxleGlibGVCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAJKHJldmlzaW9uIDE1OTM4MSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI4MCw3ICsyODAsNyBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRCbG9jayhi
b29sCiAgICAgTGF5b3V0VW5pdCBwcmV2aW91c0hlaWdodCA9IGxvZ2ljYWxIZWlnaHQoKTsKICAg
ICBzZXRMb2dpY2FsSGVpZ2h0KGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkgKyBzY3Jv
bGxiYXJMb2dpY2FsSGVpZ2h0KCkpOwogCi0gICAgTGF5b3V0U3RhdGVNYWludGFpbmVyIHN0YXRl
UHVzaGVyKCZ2aWV3KCksIHRoaXMsIGxvY2F0aW9uT2Zmc2V0KCksIGhhc1RyYW5zZm9ybSgpIHx8
IGhhc1JlZmxlY3Rpb24oKSB8fCBzdHlsZSgpLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkp
OworICAgIExheW91dFN0YXRlTWFpbnRhaW5lciBzdGF0ZVB1c2hlcih2aWV3KCksICp0aGlzLCBs
b2NhdGlvbk9mZnNldCgpLCBoYXNUcmFuc2Zvcm0oKSB8fCBoYXNSZWZsZWN0aW9uKCkgfHwgc3R5
bGUoKS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKTsKIAogICAgIHByZXBhcmVTaGFwZXNB
bmRQYWdpbmF0aW9uQmVmb3JlQmxvY2tMYXlvdXQocmVsYXlvdXRDaGlsZHJlbik7CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAJKHJldmlz
aW9uIDE1OTM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFk
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIxMyw3ICsxMjEzLDcgQEAgY29uc3QgUmVuZGVyQm94
KiBSZW5kZXJGbG93VGhyZWFkOjpjdXJyZQogICAgIHJldHVybiBjdXJyZW50T2JqZWN0LT5pc0Jv
eCgpID8gdG9SZW5kZXJCb3goY3VycmVudE9iamVjdCkgOiAwOwogfQogCi12b2lkIFJlbmRlckZs
b3dUaHJlYWQ6OnB1c2hGbG93VGhyZWFkTGF5b3V0U3RhdGUoY29uc3QgUmVuZGVyT2JqZWN0KiBv
YmplY3QpCit2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OnB1c2hGbG93VGhyZWFkTGF5b3V0U3RhdGUo
Y29uc3QgUmVuZGVyT2JqZWN0JiBvYmplY3QpCiB7CiAgICAgaWYgKGNvbnN0IFJlbmRlckJveCog
Y3VycmVudEJveERlc2NlbmRhbnQgPSBjdXJyZW50QWN0aXZlUmVuZGVyQm94KCkpIHsKICAgICAg
ICAgTGF5b3V0U3RhdGUqIGxheW91dFN0YXRlID0gY3VycmVudEJveERlc2NlbmRhbnQtPnZpZXco
KS5sYXlvdXRTdGF0ZSgpOwpAQCAtMTIyNCw3ICsxMjI0LDcgQEAgdm9pZCBSZW5kZXJGbG93VGhy
ZWFkOjpwdXNoRmxvd1RocmVhZExheQogICAgICAgICB9CiAgICAgfQogCi0gICAgbV9hY3RpdmVP
YmplY3RzU3RhY2suYWRkKG9iamVjdCk7CisgICAgbV9hY3RpdmVPYmplY3RzU3RhY2suYWRkKCZv
YmplY3QpOwogfQogCiB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OnBvcEZsb3dUaHJlYWRMYXlvdXRT
dGF0ZSgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFk
LmgJKHJldmlzaW9uIDE1OTM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bG93VGhyZWFkLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwMCw3ICsyMDAsNyBAQCBwdWJsaWM6CiAj
ZW5kaWYKICAgICB2aXJ0dWFsIGJvb2wgY29sbGVjdHNHcmFwaGljc0xheWVyc1VuZGVyUmVnaW9u
cygpIGNvbnN0OwogCi0gICAgdm9pZCBwdXNoRmxvd1RocmVhZExheW91dFN0YXRlKGNvbnN0IFJl
bmRlck9iamVjdCopOworICAgIHZvaWQgcHVzaEZsb3dUaHJlYWRMYXlvdXRTdGF0ZShjb25zdCBS
ZW5kZXJPYmplY3QmKTsKICAgICB2b2lkIHBvcEZsb3dUaHJlYWRMYXlvdXRTdGF0ZSgpOwogICAg
IExheW91dFVuaXQgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UmVnaW9uKGNvbnN0IFJlbmRl
ckJsb2NrKikgY29uc3Q7CiAgICAgdm9pZCBjbGVhclJlbmRlckJveFJlZ2lvbkluZm9BbmRDdXN0
b21TdHlsZShjb25zdCBSZW5kZXJCb3gqLCBjb25zdCBSZW5kZXJSZWdpb24qLCBjb25zdCBSZW5k
ZXJSZWdpb24qLCBjb25zdCBSZW5kZXJSZWdpb24qLCBjb25zdCBSZW5kZXJSZWdpb24qKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAJKHJldmlzaW9uIDE1OTM4
MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTYzLDcgKzE2Myw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6bGF5b3V0QmxvY2soYm9v
bCByZWxheW8KICAgICAvLyBGSVhNRTogTXVjaCBvZiB0aGlzIG1ldGhvZCBpcyBib2lsZXIgcGxh
dGUgdGhhdCBtYXRjaGVzIFJlbmRlckJveDo6bGF5b3V0QmxvY2sgYW5kIFJlbmRlcipGbGV4aWJs
ZUJveDo6bGF5b3V0QmxvY2suCiAgICAgLy8gSXQgd291bGQgYmUgbmljZSB0byByZWZhY3RvciBz
b21lIG9mIHRoZSBkdXBsaWNhdGUgY29kZS4KICAgICBMYXlvdXRSZXBhaW50ZXIgcmVwYWludGVy
KCp0aGlzLCBjaGVja0ZvclJlcGFpbnREdXJpbmdMYXlvdXQoKSk7Ci0gICAgTGF5b3V0U3RhdGVN
YWludGFpbmVyIHN0YXRlUHVzaGVyKCZ2aWV3KCksIHRoaXMsIGxvY2F0aW9uT2Zmc2V0KCksIGhh
c1RyYW5zZm9ybSgpIHx8IGhhc1JlZmxlY3Rpb24oKSB8fCBzdHlsZSgpLmlzRmxpcHBlZEJsb2Nr
c1dyaXRpbmdNb2RlKCkpOworICAgIExheW91dFN0YXRlTWFpbnRhaW5lciBzdGF0ZVB1c2hlcih2
aWV3KCksICp0aGlzLCBsb2NhdGlvbk9mZnNldCgpLCBoYXNUcmFuc2Zvcm0oKSB8fCBoYXNSZWZs
ZWN0aW9uKCkgfHwgc3R5bGUoKS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKTsKIAogICAg
IHByZXBhcmVTaGFwZXNBbmRQYWdpbmF0aW9uQmVmb3JlQmxvY2tMYXlvdXQocmVsYXlvdXRDaGls
ZHJlbik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmNwcAko
cmV2aXNpb24gMTU5MzgxKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlh
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsNyArNzgsNyBAQCB2b2lkIFJlbmRlck1lZGlhOjps
YXlvdXQoKQogICAgIC8vIFdoZW4gY2FsbGluZyBsYXlvdXQoKSBvbiBhIGNoaWxkIG5vZGUsIGEg
cGFyZW50IG11c3QgZWl0aGVyIHB1c2ggYSBMYXlvdXRTdGF0ZU1haW50YWludGVyLCBvciAKICAg
ICAvLyBpbnN0YW50aWF0ZSBMYXlvdXRTdGF0ZURpc2FibGVyLiBTaW5jZSB1c2luZyBhIExheW91
dFN0YXRlTWFpbnRhaW5lciBpcyBzbGlnaHRseSBtb3JlIGVmZmljaWVudCwKICAgICAvLyBhbmQg
dGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgbWFueSB0aW1lcyBwZXIgc2Vjb25kIGR1cmluZyBw
bGF5YmFjaywgdXNlIGEgTGF5b3V0U3RhdGVNYWludGFpbmVyOgotICAgIExheW91dFN0YXRlTWFp
bnRhaW5lciBzdGF0ZVB1c2hlcigmdmlldygpLCB0aGlzLCBsb2NhdGlvbk9mZnNldCgpLCBoYXNU
cmFuc2Zvcm0oKSB8fCBoYXNSZWZsZWN0aW9uKCkgfHwgc3R5bGUoKS5pc0ZsaXBwZWRCbG9ja3NX
cml0aW5nTW9kZSgpKTsKKyAgICBMYXlvdXRTdGF0ZU1haW50YWluZXIgc3RhdGVQdXNoZXIodmll
dygpLCAqdGhpcywgbG9jYXRpb25PZmZzZXQoKSwgaGFzVHJhbnNmb3JtKCkgfHwgaGFzUmVmbGVj
dGlvbigpIHx8IHN0eWxlKCkuaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSk7CiAKICAgICBj
b250cm9sc1JlbmRlcmVyLT5zZXRMb2NhdGlvbihMYXlvdXRQb2ludChib3JkZXJMZWZ0KCksIGJv
cmRlclRvcCgpKSArIExheW91dFNpemUocGFkZGluZ0xlZnQoKSwgcGFkZGluZ1RvcCgpKSk7CiAg
ICAgY29udHJvbHNSZW5kZXJlci0+c3R5bGUoKS5zZXRIZWlnaHQoTGVuZ3RoKG5ld1NpemUuaGVp
Z2h0KCksIEZpeGVkKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJs
ZS5jcHAJKHJldmlzaW9uIDE1OTM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyMyw3ICs0MjMsNyBAQCB2b2lkIFJlbmRl
clRhYmxlOjpsYXlvdXQoKQogICAgIHJlY2FsY0JvcmRlcnNJblJvd0RpcmVjdGlvbigpOwogICAg
ICAgICAKICAgICBMYXlvdXRSZXBhaW50ZXIgcmVwYWludGVyKCp0aGlzLCBjaGVja0ZvclJlcGFp
bnREdXJpbmdMYXlvdXQoKSk7Ci0gICAgTGF5b3V0U3RhdGVNYWludGFpbmVyIHN0YXRlUHVzaGVy
KCZ2aWV3KCksIHRoaXMsIGxvY2F0aW9uT2Zmc2V0KCksIGhhc1RyYW5zZm9ybSgpIHx8IGhhc1Jl
ZmxlY3Rpb24oKSB8fCBzdHlsZSgpLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpOworICAg
IExheW91dFN0YXRlTWFpbnRhaW5lciBzdGF0ZVB1c2hlcih2aWV3KCksICp0aGlzLCBsb2NhdGlv
bk9mZnNldCgpLCBoYXNUcmFuc2Zvcm0oKSB8fCBoYXNSZWZsZWN0aW9uKCkgfHwgc3R5bGUoKS5p
c0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKTsKIAogICAgIHNldExvZ2ljYWxIZWlnaHQoMCk7
CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5j
cHAJKHJldmlzaW9uIDE1OTM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZVJvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Myw3ICsxNjMsNyBAQCB2b2lkIFJlbmRl
clRhYmxlUm93OjpsYXlvdXQoKQogICAgIEFTU0VSVChuZWVkc0xheW91dCgpKTsKIAogICAgIC8v
IFRhYmxlIHJvd3MgZG8gbm90IGFkZCB0cmFuc2xhdGlvbi4KLSAgICBMYXlvdXRTdGF0ZU1haW50
YWluZXIgc3RhdGVQdXNoZXIoJnZpZXcoKSwgdGhpcywgTGF5b3V0U2l6ZSgpLCBoYXNUcmFuc2Zv
cm0oKSB8fCBoYXNSZWZsZWN0aW9uKCkgfHwgc3R5bGUoKS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5n
TW9kZSgpKTsKKyAgICBMYXlvdXRTdGF0ZU1haW50YWluZXIgc3RhdGVQdXNoZXIodmlldygpLCAq
dGhpcywgTGF5b3V0U2l6ZSgpLCBoYXNUcmFuc2Zvcm0oKSB8fCBoYXNSZWZsZWN0aW9uKCkgfHwg
c3R5bGUoKS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKTsKIAogICAgIGJvb2wgcGFnaW5h
dGVkID0gdmlldygpLmxheW91dFN0YXRlKCktPmlzUGFnaW5hdGVkKCk7CiAgICAgICAgICAgICAg
ICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0
aW9uLmNwcAkocmV2aXNpb24gMTU5MzgxKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlU2VjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3OCw3ICsyNzgsNyBAQCBp
bnQgUmVuZGVyVGFibGVTZWN0aW9uOjpjYWxjUm93TG9naWNhbEhlCiAKICAgICBpbnQgc3BhY2lu
ZyA9IHRhYmxlKCktPnZCb3JkZXJTcGFjaW5nKCk7CiAKLSAgICBMYXlvdXRTdGF0ZU1haW50YWlu
ZXIgc3RhdGVQdXNoZXIoJnZpZXcoKSk7CisgICAgTGF5b3V0U3RhdGVNYWludGFpbmVyIHN0YXRl
UHVzaGVyKHZpZXcoKSk7CiAKICAgICBtX3Jvd1Bvcy5yZXNpemUobV9ncmlkLnNpemUoKSArIDEp
OwogICAgIG1fcm93UG9zWzBdID0gc3BhY2luZzsKQEAgLTMzMiw3ICszMzIsNyBAQCBpbnQgUmVu
ZGVyVGFibGVTZWN0aW9uOjpjYWxjUm93TG9naWNhbEhlCiAgICAgICAgICAgICAgICAgICAgIGlm
ICghc3RhdGVQdXNoZXIuZGlkUHVzaCgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBU
ZWNobmljYWxseSwgd2Ugc2hvdWxkIGFsc28gcHVzaCBzdGF0ZSBmb3IgdGhlIHJvdywgYnV0IHNp
bmNlCiAgICAgICAgICAgICAgICAgICAgICAgICAvLyByb3dzIGRvbid0IHB1c2ggYSBjb29yZGlu
YXRlIHRyYW5zZm9ybSwgdGhhdCdzIG5vdCBuZWNlc3NhcnkuCi0gICAgICAgICAgICAgICAgICAg
ICAgICBzdGF0ZVB1c2hlci5wdXNoKHRoaXMsIGxvY2F0aW9uT2Zmc2V0KCkpOworICAgICAgICAg
ICAgICAgICAgICAgICAgc3RhdGVQdXNoZXIucHVzaCgqdGhpcywgbG9jYXRpb25PZmZzZXQoKSk7
CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgY2VsbC0+Y2xlYXJJ
bnRyaW5zaWNQYWRkaW5nKCk7CiAgICAgICAgICAgICAgICAgICAgIGNlbGwtPmNsZWFyT3ZlcnJp
ZGVTaXplKCk7CkBAIC0zODUsNyArMzg1LDcgQEAgdm9pZCBSZW5kZXJUYWJsZVNlY3Rpb246Omxh
eW91dCgpCiAgICAgLy8gY2FuIGJlIGNhbGxlZCBpbiBhIGxvb3AgKGUuZyBkdXJpbmcgcGFyc2lu
ZykuIERvaW5nIGl0IG5vdyBlbnN1cmVzIHdlIGhhdmUgYSBzdGFibGUtZW5vdWdoIHN0cnVjdHVy
ZS4KICAgICBtX2dyaWQuc2hyaW5rVG9GaXQoKTsKIAotICAgIExheW91dFN0YXRlTWFpbnRhaW5l
ciBzdGF0ZVB1c2hlcigmdmlldygpLCB0aGlzLCBsb2NhdGlvbk9mZnNldCgpLCBoYXNUcmFuc2Zv
cm0oKSB8fCBoYXNSZWZsZWN0aW9uKCkgfHwgc3R5bGUoKS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5n
TW9kZSgpKTsKKyAgICBMYXlvdXRTdGF0ZU1haW50YWluZXIgc3RhdGVQdXNoZXIodmlldygpLCAq
dGhpcywgbG9jYXRpb25PZmZzZXQoKSwgaGFzVHJhbnNmb3JtKCkgfHwgaGFzUmVmbGVjdGlvbigp
IHx8IHN0eWxlKCkuaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSk7CiAKICAgICBjb25zdCBW
ZWN0b3I8aW50PiYgY29sdW1uUG9zID0gdGFibGUoKS0+Y29sdW1uUG9zaXRpb25zKCk7CiAKQEAg
LTUzMCw3ICs1MzAsNyBAQCB2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6bGF5b3V0Um93cygpCiAg
ICAgaW50IHZzcGFjaW5nID0gdGFibGUoKS0+dkJvcmRlclNwYWNpbmcoKTsKICAgICB1bnNpZ25l
ZCBuRWZmQ29scyA9IHRhYmxlKCktPm51bUVmZkNvbHMoKTsKIAotICAgIExheW91dFN0YXRlTWFp
bnRhaW5lciBzdGF0ZVB1c2hlcigmdmlldygpLCB0aGlzLCBsb2NhdGlvbk9mZnNldCgpLCBoYXNU
cmFuc2Zvcm0oKSB8fCBzdHlsZSgpLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpOworICAg
IExheW91dFN0YXRlTWFpbnRhaW5lciBzdGF0ZVB1c2hlcih2aWV3KCksICp0aGlzLCBsb2NhdGlv
bk9mZnNldCgpLCBoYXNUcmFuc2Zvcm0oKSB8fCBzdHlsZSgpLmlzRmxpcHBlZEJsb2Nrc1dyaXRp
bmdNb2RlKCkpOwogCiAgICAgZm9yICh1bnNpZ25lZCByID0gMDsgciA8IHRvdGFsUm93czsgcisr
KSB7CiAgICAgICAgIC8vIFNldCB0aGUgcm93J3MgeC95IHBvc2l0aW9uIGFuZCB3aWR0aC9oZWln
aHQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dFRyYWNrQ3VlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dFRyYWNr
Q3VlLmNwcAkocmV2aXNpb24gMTU5MzgxKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHRUcmFja0N1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgdm9p
ZCBSZW5kZXJUZXh0VHJhY2tDdWU6OmxheW91dCgpCiAgICAgU3RhY2tTdGF0czo6TGF5b3V0Q2hl
Y2tQb2ludCBsYXlvdXRDaGVja1BvaW50OwogICAgIFJlbmRlckJsb2NrRmxvdzo6bGF5b3V0KCk7
CiAKLSAgICBMYXlvdXRTdGF0ZU1haW50YWluZXIgc3RhdGVQdXNoZXIoJnZpZXcoKSwgdGhpcywg
bG9jYXRpb25PZmZzZXQoKSwgaGFzVHJhbnNmb3JtKCkgfHwgaGFzUmVmbGVjdGlvbigpIHx8IHN0
eWxlKCkuaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSk7CisgICAgTGF5b3V0U3RhdGVNYWlu
dGFpbmVyIHN0YXRlUHVzaGVyKHZpZXcoKSwgKnRoaXMsIGxvY2F0aW9uT2Zmc2V0KCksIGhhc1Ry
YW5zZm9ybSgpIHx8IGhhc1JlZmxlY3Rpb24oKSB8fCBzdHlsZSgpLmlzRmxpcHBlZEJsb2Nrc1dy
aXRpbmdNb2RlKCkpOwogICAgIAogICAgIGlmIChtX2N1ZS0+Y3VlVHlwZSgpPT0gVGV4dFRyYWNr
Q3VlOjpXZWJWVFQpIHsKICAgICAgICAgaWYgKG1fY3VlLT5zbmFwVG9MaW5lcygpKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAkocmV2aXNpb24gMTU5MzgxKQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDI4LDcgKzEwMjgsNyBAQCBmbG9hdCBSZW5kZXJWaWV3Ojp6b29tRmFjdG9yKCkgY29u
c3QKICAgICByZXR1cm4gZnJhbWVWaWV3KCkuZnJhbWUoKS5wYWdlWm9vbUZhY3RvcigpOwogfQog
Ci12b2lkIFJlbmRlclZpZXc6OnB1c2hMYXlvdXRTdGF0ZShSZW5kZXJPYmplY3QqIHJvb3QpCit2
b2lkIFJlbmRlclZpZXc6OnB1c2hMYXlvdXRTdGF0ZShSZW5kZXJPYmplY3QmIHJvb3QpCiB7CiAg
ICAgQVNTRVJUKG1fbGF5b3V0U3RhdGVEaXNhYmxlQ291bnQgPT0gMCk7CiAgICAgQVNTRVJUKG1f
bGF5b3V0U3RhdGUgPT0gMCk7CkBAIC0xMTU1LDcgKzExNTUsNyBAQCBGbG93VGhyZWFkQ29udHJv
bGxlciYgUmVuZGVyVmlldzo6Zmxvd1RoCiAgICAgcmV0dXJuICptX2Zsb3dUaHJlYWRDb250cm9s
bGVyOwogfQogCi12b2lkIFJlbmRlclZpZXc6OnB1c2hMYXlvdXRTdGF0ZUZvckN1cnJlbnRGbG93
VGhyZWFkKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQordm9pZCBSZW5kZXJWaWV3OjpwdXNo
TGF5b3V0U3RhdGVGb3JDdXJyZW50Rmxvd1RocmVhZChjb25zdCBSZW5kZXJPYmplY3QmIG9iamVj
dCkKIHsKICAgICBpZiAoIW1fZmxvd1RocmVhZENvbnRyb2xsZXIpCiAgICAgICAgIHJldHVybjsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAkocmV2aXNpb24gMTU5Mzgx
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAkod29ya2luZyBjb3B5
KQpAQCAtMTQyLDggKzE0Miw4IEBAIHB1YmxpYzoKICAgICBib29sIGRvaW5nRnVsbFJlcGFpbnQo
KSBjb25zdCB7IHJldHVybiBmcmFtZVZpZXcoKS5uZWVkc0Z1bGxSZXBhaW50KCk7IH0KIAogICAg
IC8vIFN1YnRyZWUgcHVzaC9wb3AKLSAgICB2b2lkIHB1c2hMYXlvdXRTdGF0ZShSZW5kZXJPYmpl
Y3QqKTsKLSAgICB2b2lkIHBvcExheW91dFN0YXRlKFJlbmRlck9iamVjdCopIHsgcmV0dXJuIHBv
cExheW91dFN0YXRlKCk7IH0gLy8gSnVzdCBkb2luZyB0aGlzIHRvIGtlZXAgcG9wTGF5b3V0U3Rh
dGUoKSBwcml2YXRlIGFuZCB0byBtYWtlIHRoZSBzdWJ0cmVlIGNhbGxzIHN5bW1ldHJpY2FsLgor
ICAgIHZvaWQgcHVzaExheW91dFN0YXRlKFJlbmRlck9iamVjdCYpOworICAgIHZvaWQgcG9wTGF5
b3V0U3RhdGUoUmVuZGVyT2JqZWN0JikgeyByZXR1cm4gcG9wTGF5b3V0U3RhdGUoKTsgfSAvLyBK
dXN0IGRvaW5nIHRoaXMgdG8ga2VlcCBwb3BMYXlvdXRTdGF0ZSgpIHByaXZhdGUgYW5kIHRvIG1h
a2UgdGhlIHN1YnRyZWUgY2FsbHMgc3ltbWV0cmljYWwuCiAKICAgICBib29sIHNob3VsZERpc2Fi
bGVMYXlvdXRTdGF0ZUZvclN1YnRyZWUoUmVuZGVyT2JqZWN0KikgY29uc3Q7CiAKQEAgLTI0OSwx
OCArMjQ5LDE4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzaG91bGRSZXBhaW50KGNvbnN0IExheW91
dFJlY3QmKSBjb25zdDsKIAogICAgIC8vIFRoZXNlIGZ1bmN0aW9ucyBtYXkgb25seSBiZSBhY2Nl
c3NlZCBieSBMYXlvdXRTdGF0ZU1haW50YWluZXIuCi0gICAgYm9vbCBwdXNoTGF5b3V0U3RhdGUo
UmVuZGVyQm94KiByZW5kZXJlciwgY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0LCBMYXlvdXRVbml0
IHBhZ2VIZWlnaHQgPSAwLCBib29sIHBhZ2VIZWlnaHRDaGFuZ2VkID0gZmFsc2UsIENvbHVtbklu
Zm8qIGNvbEluZm8gPSAwKQorICAgIGJvb2wgcHVzaExheW91dFN0YXRlKFJlbmRlckJveCYgcmVu
ZGVyZXIsIGNvbnN0IExheW91dFNpemUmIG9mZnNldCwgTGF5b3V0VW5pdCBwYWdlSGVpZ2h0ID0g
MCwgYm9vbCBwYWdlSGVpZ2h0Q2hhbmdlZCA9IGZhbHNlLCBDb2x1bW5JbmZvKiBjb2xJbmZvID0g
bnVsbHB0cikKICAgICB7CiAgICAgICAgIC8vIFdlIHB1c2ggTGF5b3V0U3RhdGUgZXZlbiBpZiBs
YXlvdXRTdGF0ZSBpcyBkaXNhYmxlZCBiZWNhdXNlIGl0IHN0b3JlcyBsYXlvdXREZWx0YSB0b28u
Ci0gICAgICAgIGlmICghZG9pbmdGdWxsUmVwYWludCgpIHx8IG1fbGF5b3V0U3RhdGUtPmlzUGFn
aW5hdGVkKCkgfHwgcmVuZGVyZXItPmhhc0NvbHVtbnMoKSB8fCByZW5kZXJlci0+Zmxvd1RocmVh
ZENvbnRhaW5pbmdCbG9jaygpCi0gICAgICAgICAgICB8fCBtX2xheW91dFN0YXRlLT5saW5lR3Jp
ZCgpIHx8IChyZW5kZXJlci0+c3R5bGUoKS5saW5lR3JpZCgpICE9IFJlbmRlclN0eWxlOjppbml0
aWFsTGluZUdyaWQoKSAmJiByZW5kZXJlci0+aXNSZW5kZXJCbG9ja0Zsb3coKSkKKyAgICAgICAg
aWYgKCFkb2luZ0Z1bGxSZXBhaW50KCkgfHwgbV9sYXlvdXRTdGF0ZS0+aXNQYWdpbmF0ZWQoKSB8
fCByZW5kZXJlci5oYXNDb2x1bW5zKCkgfHwgcmVuZGVyZXIuZmxvd1RocmVhZENvbnRhaW5pbmdC
bG9jaygpCisgICAgICAgICAgICB8fCBtX2xheW91dFN0YXRlLT5saW5lR3JpZCgpIHx8IChyZW5k
ZXJlci5zdHlsZSgpLmxpbmVHcmlkKCkgIT0gUmVuZGVyU3R5bGU6OmluaXRpYWxMaW5lR3JpZCgp
ICYmIHJlbmRlcmVyLmlzUmVuZGVyQmxvY2tGbG93KCkpCiAjaWYgRU5BQkxFKENTU19TSEFQRVMp
Ci0gICAgICAgICAgICB8fCAocmVuZGVyZXItPmlzUmVuZGVyQmxvY2soKSAmJiB0b1JlbmRlckJs
b2NrKHJlbmRlcmVyKS0+c2hhcGVJbnNpZGVJbmZvKCkpCi0gICAgICAgICAgICB8fCAobV9sYXlv
dXRTdGF0ZS0+c2hhcGVJbnNpZGVJbmZvKCkgJiYgcmVuZGVyZXItPmlzUmVuZGVyQmxvY2soKSAm
JiAhdG9SZW5kZXJCbG9jayhyZW5kZXJlciktPmFsbG93c1NoYXBlSW5zaWRlSW5mb1NoYXJpbmco
KSkKKyAgICAgICAgICAgIHx8IChyZW5kZXJlci5pc1JlbmRlckJsb2NrKCkgJiYgdG9SZW5kZXJC
bG9jayhyZW5kZXJlcikuc2hhcGVJbnNpZGVJbmZvKCkpCisgICAgICAgICAgICB8fCAobV9sYXlv
dXRTdGF0ZS0+c2hhcGVJbnNpZGVJbmZvKCkgJiYgcmVuZGVyZXIuaXNSZW5kZXJCbG9jaygpICYm
ICF0b1JlbmRlckJsb2NrKHJlbmRlcmVyKS5hbGxvd3NTaGFwZUluc2lkZUluZm9TaGFyaW5nKCkp
CiAjZW5kaWYKICAgICAgICAgICAgICkgewogICAgICAgICAgICAgcHVzaExheW91dFN0YXRlRm9y
Q3VycmVudEZsb3dUaHJlYWQocmVuZGVyZXIpOwotICAgICAgICAgICAgbV9sYXlvdXRTdGF0ZSA9
IHN0ZDo6bWFrZV91bmlxdWU8TGF5b3V0U3RhdGU+KHN0ZDo6bW92ZShtX2xheW91dFN0YXRlKSwg
cmVuZGVyZXIsIG9mZnNldCwgcGFnZUhlaWdodCwgcGFnZUhlaWdodENoYW5nZWQsIGNvbEluZm8p
OworICAgICAgICAgICAgbV9sYXlvdXRTdGF0ZSA9IHN0ZDo6bWFrZV91bmlxdWU8TGF5b3V0U3Rh
dGU+KHN0ZDo6bW92ZShtX2xheW91dFN0YXRlKSwgJnJlbmRlcmVyLCBvZmZzZXQsIHBhZ2VIZWln
aHQsIHBhZ2VIZWlnaHRDaGFuZ2VkLCBjb2xJbmZvKTsKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI4Nyw3ICsyODcsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgY2hlY2tMYXlvdXRTdGF0ZShjb25zdCBMYXlvdXRTdGF0ZSYpOwog
I2VuZGlmCiAKLSAgICB2b2lkIHB1c2hMYXlvdXRTdGF0ZUZvckN1cnJlbnRGbG93VGhyZWFkKGNv
bnN0IFJlbmRlck9iamVjdCopOworICAgIHZvaWQgcHVzaExheW91dFN0YXRlRm9yQ3VycmVudEZs
b3dUaHJlYWQoY29uc3QgUmVuZGVyT2JqZWN0Jik7CiAgICAgdm9pZCBwb3BMYXlvdXRTdGF0ZUZv
ckN1cnJlbnRGbG93VGhyZWFkKCk7CiAgICAgCiAgICAgZnJpZW5kIGNsYXNzIExheW91dFN0YXRl
TWFpbnRhaW5lcjsKQEAgLTM1NCw4ICszNTQsOCBAQCBSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMo
UmVuZGVyVmlldywgaXNSCiBjbGFzcyBMYXlvdXRTdGF0ZU1haW50YWluZXIgewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKExheW91dFN0YXRlTWFpbnRhaW5lcik7CiBwdWJsaWM6Ci0gICAgLy8g
Y3RvciB0byBwdXNoIG5vdwotICAgIExheW91dFN0YXRlTWFpbnRhaW5lcihSZW5kZXJWaWV3KiB2
aWV3LCBSZW5kZXJCb3gqIHJvb3QsIExheW91dFNpemUgb2Zmc2V0LCBib29sIGRpc2FibGVTdGF0
ZSA9IGZhbHNlLCBMYXlvdXRVbml0IHBhZ2VIZWlnaHQgPSAwLCBib29sIHBhZ2VIZWlnaHRDaGFu
Z2VkID0gZmFsc2UsIENvbHVtbkluZm8qIGNvbEluZm8gPSAwKQorICAgIC8vIENvbnN0cnVjdG9y
IHRvIHB1c2ggbm93LgorICAgIGV4cGxpY2l0IExheW91dFN0YXRlTWFpbnRhaW5lcihSZW5kZXJW
aWV3JiB2aWV3LCBSZW5kZXJCb3gmIHJvb3QsIExheW91dFNpemUgb2Zmc2V0LCBib29sIGRpc2Fi
bGVTdGF0ZSA9IGZhbHNlLCBMYXlvdXRVbml0IHBhZ2VIZWlnaHQgPSAwLCBib29sIHBhZ2VIZWln
aHRDaGFuZ2VkID0gZmFsc2UsIENvbHVtbkluZm8qIGNvbEluZm8gPSBudWxscHRyKQogICAgICAg
ICA6IG1fdmlldyh2aWV3KQogICAgICAgICAsIG1fZGlzYWJsZWQoZGlzYWJsZVN0YXRlKQogICAg
ICAgICAsIG1fZGlkU3RhcnQoZmFsc2UpCkBAIC0zNjQsOSArMzY0LDkgQEAgcHVibGljOgogICAg
IHsKICAgICAgICAgcHVzaChyb290LCBvZmZzZXQsIHBhZ2VIZWlnaHQsIHBhZ2VIZWlnaHRDaGFu
Z2VkLCBjb2xJbmZvKTsKICAgICB9Ci0gICAgCi0gICAgLy8gY3RvciB0byBtYXliZSBwdXNoIGxh
dGVyCi0gICAgTGF5b3V0U3RhdGVNYWludGFpbmVyKFJlbmRlclZpZXcqIHZpZXcpCisKKyAgICAv
LyBDb25zdHJ1Y3RvciB0byBtYXliZSBwdXNoIGxhdGVyLgorICAgIGV4cGxpY2l0IExheW91dFN0
YXRlTWFpbnRhaW5lcihSZW5kZXJWaWV3JiB2aWV3KQogICAgICAgICA6IG1fdmlldyh2aWV3KQog
ICAgICAgICAsIG1fZGlzYWJsZWQoZmFsc2UpCiAgICAgICAgICwgbV9kaWRTdGFydChmYWxzZSkK
QEAgLTM4MCwxMyArMzgwLDEzIEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKG1fZGlkU3RhcnQg
PT0gbV9kaWRFbmQpOyAgIC8vIGlmIHRoaXMgZmlyZXMsIGl0IG1lYW5zIHRoYXQgc29tZW9uZSBk
aWQgYSBwdXNoKCksIGJ1dCBmb3Jnb3QgdG8gcG9wKCkuCiAgICAgfQogCi0gICAgdm9pZCBwdXNo
KFJlbmRlckJveCogcm9vdCwgTGF5b3V0U2l6ZSBvZmZzZXQsIExheW91dFVuaXQgcGFnZUhlaWdo
dCA9IDAsIGJvb2wgcGFnZUhlaWdodENoYW5nZWQgPSBmYWxzZSwgQ29sdW1uSW5mbyogY29sSW5m
byA9IDApCisgICAgdm9pZCBwdXNoKFJlbmRlckJveCYgcm9vdCwgTGF5b3V0U2l6ZSBvZmZzZXQs
IExheW91dFVuaXQgcGFnZUhlaWdodCA9IDAsIGJvb2wgcGFnZUhlaWdodENoYW5nZWQgPSBmYWxz
ZSwgQ29sdW1uSW5mbyogY29sSW5mbyA9IG51bGxwdHIpCiAgICAgewogICAgICAgICBBU1NFUlQo
IW1fZGlkU3RhcnQpOwogICAgICAgICAvLyBXZSBwdXNoIHN0YXRlIGV2ZW4gaWYgZGlzYWJsZWQs
IGJlY2F1c2Ugd2Ugc3RpbGwgbmVlZCB0byBzdG9yZSBsYXlvdXREZWx0YQotICAgICAgICBtX2Rp
ZENyZWF0ZUxheW91dFN0YXRlID0gbV92aWV3LT5wdXNoTGF5b3V0U3RhdGUocm9vdCwgb2Zmc2V0
LCBwYWdlSGVpZ2h0LCBwYWdlSGVpZ2h0Q2hhbmdlZCwgY29sSW5mbyk7CisgICAgICAgIG1fZGlk
Q3JlYXRlTGF5b3V0U3RhdGUgPSBtX3ZpZXcucHVzaExheW91dFN0YXRlKHJvb3QsIG9mZnNldCwg
cGFnZUhlaWdodCwgcGFnZUhlaWdodENoYW5nZWQsIGNvbEluZm8pOwogICAgICAgICBpZiAobV9k
aXNhYmxlZCAmJiBtX2RpZENyZWF0ZUxheW91dFN0YXRlKQotICAgICAgICAgICAgbV92aWV3LT5k
aXNhYmxlTGF5b3V0U3RhdGUoKTsKKyAgICAgICAgICAgIG1fdmlldy5kaXNhYmxlTGF5b3V0U3Rh
dGUoKTsKICAgICAgICAgbV9kaWRTdGFydCA9IHRydWU7CiAgICAgfQogCkBAIC0zOTUsOSArMzk1
LDkgQEAgcHVibGljOgogICAgICAgICBpZiAobV9kaWRTdGFydCkgewogICAgICAgICAgICAgQVNT
RVJUKCFtX2RpZEVuZCk7CiAgICAgICAgICAgICBpZiAobV9kaWRDcmVhdGVMYXlvdXRTdGF0ZSkg
ewotICAgICAgICAgICAgICAgIG1fdmlldy0+cG9wTGF5b3V0U3RhdGUoKTsKKyAgICAgICAgICAg
ICAgICBtX3ZpZXcucG9wTGF5b3V0U3RhdGUoKTsKICAgICAgICAgICAgICAgICBpZiAobV9kaXNh
YmxlZCkKLSAgICAgICAgICAgICAgICAgICAgbV92aWV3LT5lbmFibGVMYXlvdXRTdGF0ZSgpOwor
ICAgICAgICAgICAgICAgICAgICBtX3ZpZXcuZW5hYmxlTGF5b3V0U3RhdGUoKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9kaWRFbmQgPSB0cnVlOwpAQCAtNDA3
LDcgKzQwNyw3IEBAIHB1YmxpYzoKICAgICBib29sIGRpZFB1c2goKSBjb25zdCB7IHJldHVybiBt
X2RpZFN0YXJ0OyB9CiAKIHByaXZhdGU6Ci0gICAgUmVuZGVyVmlldyogbV92aWV3OworICAgIFJl
bmRlclZpZXcmIG1fdmlldzsKICAgICBib29sIG1fZGlzYWJsZWQgOiAxOyAgICAgICAgLy8gdHJ1
ZSBpZiB0aGUgb2Zmc2V0IGFuZCBjbGlwIHBhcnQgb2YgbGF5b3V0U3RhdGUgaXMgZGlzYWJsZWQK
ICAgICBib29sIG1fZGlkU3RhcnQgOiAxOyAgICAgICAgLy8gdHJ1ZSBpZiB3ZSBkaWQgYSBwdXNo
IG9yIGRpc2FibGUKICAgICBib29sIG1fZGlkRW5kIDogMTsgICAgICAgICAgLy8gdHJ1ZSBpZiB3
ZSBwb3BwZWQgb3IgcmUtZW5hYmxlZAo=
</data>
<flag name="review"
          id="240245"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>