<?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>64373</bug_id>
          
          <creation_ts>2011-07-12 11:13:40 -0700</creation_ts>
          <short_desc>[Qt][WK2] Add a basic pinch gesture recognizer for WebKit2.</short_desc>
          <delta_ts>2011-07-12 12:16:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>jturcotte</cc>
    
    <cc>kling</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>435789</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-07-12 11:13:40 -0700</bug_when>
    <thetext>Jocelyn needs pinch zoom for testing. Let&apos;s add something simple to get him started :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435805</commentid>
    <comment_count>1</comment_count>
      <attachid>100528</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-07-12 11:26:58 -0700</bug_when>
    <thetext>Created attachment 100528
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435833</commentid>
    <comment_count>2</comment_count>
      <attachid>100528</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-07-12 11:51:29 -0700</bug_when>
    <thetext>Comment on attachment 100528
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=100528&amp;action=review

r=me with some itches.

&gt; Source/WebKit2/UIProcess/qt/QtPinchGestureRecognizer.cpp:68
&gt; +    case QEvent::TouchBegin:
&gt; +    case QEvent::TouchUpdate:

Would be neat with a comment here explaining that the ultimate plan is to only initiate the gesture upon TouchBegin.

&gt; Source/WebKit2/UIProcess/qt/QtPinchGestureRecognizer.h:42
&gt; +const qreal pinchInitialTriggerDistanceThreshold = 5.;

Why not put this in the cpp file?

&gt; Source/WebKit2/UIProcess/qt/TouchViewInterface.cpp:34
&gt; +    , m_pinchStartScale(1.f)

Coding style, unnecessary .f suffix.

&gt; Source/WebKit2/UIProcess/qt/TouchViewInterface.cpp:69
&gt; +void TouchViewInterface::pinchGestureRequestScale(const QPointF&amp; pinchCenterInPageViewCoordinate, qreal totalScaleFactor)

The name of this function is a bit weird. setScaleFromPinchGesture() perhaps?

&gt; Source/WebKit2/UIProcess/qt/TouchViewInterface.h:44
&gt; +    void pinchGestureStarted();
&gt; +    void pinchGestureRequestScale(const QPointF&amp;, qreal);
&gt; +    void pinchGestureEnded();

I would have used did* style naming for these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435834</commentid>
    <comment_count>3</comment_count>
      <attachid>100528</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-07-12 11:52:09 -0700</bug_when>
    <thetext>Comment on attachment 100528
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=100528&amp;action=review

&gt; Source/WebKit2/ChangeLog:3
&gt; +        [Qt][WK2] Add a basic Pinch gesture recognizer for WebKit 2

WebKit 2 -&gt; WebKit2 ;D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435848</commentid>
    <comment_count>4</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-07-12 12:16:38 -0700</bug_when>
    <thetext>Committed r90838: &lt;http://trac.webkit.org/changeset/90838&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100528</attachid>
            <date>2011-07-12 11:26:58 -0700</date>
            <delta_ts>2011-07-12 11:52:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64373-20110712203344.patch</filename>
            <type>text/plain</type>
            <size>24823</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA4MTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBiNzZmMjYwY2U0N2E2OTFk
YTA5OTA3ZGQzZDY4M2ZmMWMzNzlhNjIzLi4wYTM4ZDAxZjQzZThmYjQzNTcwZDkxZmVmNzFkYmYw
MjY4ODJkMDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTEtMDctMTIgIEJlbmph
bWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIFtRdF1bV0syXSBB
ZGQgYSBiYXNpYyBQaW5jaCBnZXN0dXJlIHJlY29nbml6ZXIgZm9yIFdlYktpdCAyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDM3MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBR
dFBpbmNoR2VzdHVyZVJlY29nbml6ZXIgdG8gcmVjb2duaXplIHBpbmNoIGdlc3R1cmUgb3V0IG9m
CisgICAgICAgIHRoZSBldmVudHMgbm90IGhhbmRsZWQgYnkgdGhlIFdlYlByb2Nlc3MuCisKKyAg
ICAgICAgVG91Y2hWaWV3SW50ZXJmYWNlOjpwaW5jaEdlc3R1cmVSZXF1ZXN0U2NhbGUoKSBoYXMg
YSBiYXNpYyBkZWZhdWx0IGltcGxlbWVudGF0aW9uCisgICAgICAgIHNvIHRoZSBmZWF0dXJlIGNh
biBiZSB0ZXN0ZWQgbWFudWFsbHkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRHZXN0dXJl
UmVjb2duaXplci5jcHA6CisgICAgICAgIFF0R2VzdHVyZVJlY29nbml6ZXIgaXMgdGhlIHByaXZh
dGUgYmFzZSBjbGFzcyBmb3IgYm90aCBnZXN0dXJlIHJlY29nbml6ZXIKKyAgICAgICAgaW4gb3Jk
ZXIgdG8gYmUgYWJsZSB0byBzaGFyZSBzb21lIGNvZGUuCisgICAgICAgIChXZWJLaXQ6OlF0R2Vz
dHVyZVJlY29nbml6ZXI6OlF0R2VzdHVyZVJlY29nbml6ZXIpOgorICAgICAgICAoV2ViS2l0OjpR
dEdlc3R1cmVSZWNvZ25pemVyOjpyZXNldCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0R2Vz
dHVyZVJlY29nbml6ZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRQYW5HZXN0dXJlUmVj
b2duaXplci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlF0UGFuR2VzdHVyZVJlY29nbml6ZXI6OlF0
UGFuR2VzdHVyZVJlY29nbml6ZXIpOgorICAgICAgICAoV2ViS2l0OjpRdFBhbkdlc3R1cmVSZWNv
Z25pemVyOjpyZXNldCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0UGFuR2VzdHVyZVJlY29n
bml6ZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRQaW5jaEdlc3R1cmVSZWNvZ25pemVy
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OmZpbmRUb3VjaFBvaW50SW5kZXgpOgorICAg
ICAgICAoV2ViS2l0Ojpjb21wdXRlVG91Y2hDZW50ZXIpOgorICAgICAgICAoV2ViS2l0OjpRdFBp
bmNoR2VzdHVyZVJlY29nbml6ZXI6OlF0UGluY2hHZXN0dXJlUmVjb2duaXplcik6CisgICAgICAg
IChXZWJLaXQ6OlF0UGluY2hHZXN0dXJlUmVjb2duaXplcjo6cmVjb2duaXplKToKKyAgICAgICAg
KFdlYktpdDo6UXRQaW5jaEdlc3R1cmVSZWNvZ25pemVyOjpyZXNldCk6CisgICAgICAgIChXZWJL
aXQ6OlF0UGluY2hHZXN0dXJlUmVjb2duaXplcjo6aW5pdGlhbGl6ZUdlc3R1cmUpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9xdC9RdFBpbmNoR2VzdHVyZVJlY29nbml6ZXIuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFuR2VzdHVyZVJlY29nbml6ZXIuaC4KKyAg
ICAgICAgKFdlYktpdDo6UXRQaW5jaEdlc3R1cmVSZWNvZ25pemVyOjpUb3VjaFBvaW50SW5mb3Jt
YXRpb246OlRvdWNoUG9pbnRJbmZvcm1hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlF0UGluY2hH
ZXN0dXJlUmVjb2duaXplcjo6VG91Y2hQb2ludEluZm9ybWF0aW9uOjppc1ZhbGlkKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvcXQvVG91Y2hWaWV3SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6VG91Y2hWaWV3SW50ZXJmYWNlOjpUb3VjaFZpZXdJbnRlcmZhY2UpOgorICAgICAgICAoV2Vi
S2l0OjpUb3VjaFZpZXdJbnRlcmZhY2U6OnBpbmNoR2VzdHVyZVN0YXJ0ZWQpOgorICAgICAgICAo
V2ViS2l0OjpUb3VjaFZpZXdJbnRlcmZhY2U6OnBpbmNoR2VzdHVyZVJlcXVlc3RTY2FsZSk6Cisg
ICAgICAgIFRoZSBzY2FsZSBmYWN0b3IgcmVwb3J0ZWQgYnkgdGhlIHJlY29nbml6ZXIgdG8gdGhl
IFRvdWNoVmlld0ludGVyZmFjZSBpcyB0aGUgdG90YWwgc2NhbGUgc2luY2UgdGhlIHN0YXJ0Cisg
ICAgICAgIG9mIHRoZSBnZXN0dXJlIGluIG9yZGVyIHRvIGF2b2lkIG51bWVyaWNhbCBpbnN0YWJp
bGl0aWVzLgorICAgICAgICAoV2ViS2l0OjpUb3VjaFZpZXdJbnRlcmZhY2U6OnBpbmNoR2VzdHVy
ZUVuZGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvVG91Y2hWaWV3SW50ZXJmYWNlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL3F0L3F0b3VjaHdlYnBhZ2Vwcm94eS5jcHA6CisgICAgICAgIChR
VG91Y2hXZWJQYWdlUHJveHk6OlFUb3VjaFdlYlBhZ2VQcm94eSk6CisgICAgICAgIChRVG91Y2hX
ZWJQYWdlUHJveHk6OnByb2Nlc3NEaWRDcmFzaCk6CisgICAgICAgIChRVG91Y2hXZWJQYWdlUHJv
eHk6OmRvbmVXaXRoVG91Y2hFdmVudCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L3F0b3VjaHdl
YnBhZ2Vwcm94eS5oOgorICAgICAgICAqIFdlYktpdDIucHJvOgorCiAyMDExLTA3LTExICBIaXJv
bm9yaSBCb25vICA8aGJvbm9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFk
YW0gUm9iZW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRHZXN0
dXJlUmVjb2duaXplci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRHZXN0dXJl
UmVjb2duaXplci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjQzZjkyYjQwZGE1YjdjZGZhYTZjM2U0MjExNGMw
Y2QyOTVhNDc3MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9RdEdlc3R1cmVSZWNvZ25pemVyLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEJlbmphbWluIFBvdWxhaW4gPGJlbmphbWluQHdlYmtpdC5vcmc+CisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJRdEdlc3R1cmVSZWNvZ25pemVy
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitRdEdlc3R1cmVSZWNvZ25pemVyOjpRdEdlc3R1
cmVSZWNvZ25pemVyKFRvdWNoVmlld0ludGVyZmFjZSogdG91Y2hWaWV3SW50ZXJmYWNlKQorICAg
IDogbV90b3VjaFZpZXdJbnRlcmZhY2UodG91Y2hWaWV3SW50ZXJmYWNlKQorICAgICwgbV9zdGF0
ZShOb0dlc3R1cmUpCit7CisgICAgQVNTRVJUKHRvdWNoVmlld0ludGVyZmFjZSk7Cit9CisKK3Zv
aWQgUXRHZXN0dXJlUmVjb2duaXplcjo6cmVzZXQoKQoreworICAgIG1fc3RhdGUgPSBOb0dlc3R1
cmU7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdEdl
c3R1cmVSZWNvZ25pemVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRHZXN0dXJl
UmVjb2duaXplci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkYzYwZTAxZDY0ZTcyNzQ1MDQ4Y2EyMTM3ZWJhNzg3
OThlZTRhZTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
UXRHZXN0dXJlUmVjb2duaXplci5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgQmVuamFtaW4gUG91bGFpbiA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBRdEdlc3R1cmVSZWNvZ25pemVyX2gKKyNkZWZpbmUgUXRHZXN0dXJlUmVjb2du
aXplcl9oCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBUb3VjaFZpZXdJbnRlcmZhY2U7
CisKK2NsYXNzIFF0R2VzdHVyZVJlY29nbml6ZXIgeworcHJvdGVjdGVkOgorICAgIFF0R2VzdHVy
ZVJlY29nbml6ZXIoVG91Y2hWaWV3SW50ZXJmYWNlKik7CisgICAgdm9pZCByZXNldCgpOworCisg
ICAgVG91Y2hWaWV3SW50ZXJmYWNlKiBjb25zdCBtX3RvdWNoVmlld0ludGVyZmFjZTsKKyAgICBl
bnVtIFN0YXRlIHsKKyAgICAgICAgTm9HZXN0dXJlLAorICAgICAgICBHZXN0dXJlUmVjb2duaXRp
b25TdGFydGVkLAorICAgICAgICBHZXN0dXJlUmVjb2duaXplZAorICAgIH0gbV9zdGF0ZTsKK307
CisKK30KKworI2VuZGlmIC8qIFF0R2VzdHVyZVJlY29nbml6ZXJfaCAqLwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFuR2VzdHVyZVJlY29nbml6ZXIuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFuR2VzdHVyZVJlY29nbml6ZXIuY3BwCmlu
ZGV4IGM2Njg1ODk5MDdlNmU0YjE5YTRhOTMzN2QyNzI3OWI5MDcyZWE3NTIuLmJhZGY2MGQ3ZmEx
ZmNjNzBjMzM0N2MwNzVjYTBjYjg4ODk4MGE2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9RdFBhbkdlc3R1cmVSZWNvZ25pemVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvcXQvUXRQYW5HZXN0dXJlUmVjb2duaXplci5jcHAKQEAgLTMxLDcgKzMx
LDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBRdFBhbkdlc3R1cmVSZWNvZ25pemVyOjpRdFBh
bkdlc3R1cmVSZWNvZ25pemVyKFRvdWNoVmlld0ludGVyZmFjZSogdG91Y2hWaWV3SW50ZXJmYWNl
KQotICAgIDogbV90b3VjaFZpZXdJbnRlcmZhY2UodG91Y2hWaWV3SW50ZXJmYWNlKQorICAgIDog
UXRHZXN0dXJlUmVjb2duaXplcih0b3VjaFZpZXdJbnRlcmZhY2UpCiB7CiAgICAgcmVzZXQoKTsK
IH0KQEAgLTk0LDcgKzk0LDcgQEAgYm9vbCBRdFBhbkdlc3R1cmVSZWNvZ25pemVyOjpyZWNvZ25p
emUoY29uc3QgUVRvdWNoRXZlbnQqIGV2ZW50KQogCiB2b2lkIFF0UGFuR2VzdHVyZVJlY29nbml6
ZXI6OnJlc2V0KCkKIHsKLSAgICBtX3N0YXRlID0gTm9HZXN0dXJlOworICAgIFF0R2VzdHVyZVJl
Y29nbml6ZXI6OnJlc2V0KCk7CiAgICAgbV9maXJzdFBvc2l0aW9uID0gUVBvaW50RigpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQYW5HZXN0dXJlUmVj
b2duaXplci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFuR2VzdHVyZVJlY29n
bml6ZXIuaAppbmRleCBmMWVkNDFlYzE3ZDE3MDM1YmI0OWY5ZjMxMTFjYzBlNjk2ZjNjZmIyLi44
MDc5NTkzNDdjMjcyM2ZmMTE5ZjgzNDgyZjEzZDM1MDczOThlMTdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQYW5HZXN0dXJlUmVjb2duaXplci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFBhbkdlc3R1cmVSZWNvZ25pemVyLmgKQEAgLTI2
LDYgKzI2LDggQEAKICNpZm5kZWYgUXRQYW5HZXN0dXJlUmVjb2duaXplcl9oCiAjZGVmaW5lIFF0
UGFuR2VzdHVyZVJlY29nbml6ZXJfaAogCisjaW5jbHVkZSAiUXRHZXN0dXJlUmVjb2duaXplci5o
IgorCiAjaW5jbHVkZSA8UVBvaW50Rj4KICNpbmNsdWRlIDxRdENvcmUvUXRHbG9iYWw+CiAKQEAg
LTM1LDIyICszNywxNSBAQCBRVF9FTkRfTkFNRVNQQUNFCiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
Ci1jbGFzcyBUb3VjaFZpZXdJbnRlcmZhY2U7CiBjb25zdCBxcmVhbCBwYW5uaW5nSW5pdGlhbFRy
aWdnZXJEaXN0YW5jZVRocmVzaG9sZCA9IDUuOwogCi1jbGFzcyBRdFBhbkdlc3R1cmVSZWNvZ25p
emVyIHsKK2NsYXNzIFF0UGFuR2VzdHVyZVJlY29nbml6ZXIgOiBwcml2YXRlIFF0R2VzdHVyZVJl
Y29nbml6ZXIgewogcHVibGljOgogICAgIFF0UGFuR2VzdHVyZVJlY29nbml6ZXIoVG91Y2hWaWV3
SW50ZXJmYWNlKik7CiAgICAgYm9vbCByZWNvZ25pemUoY29uc3QgUVRvdWNoRXZlbnQqKTsKICAg
ICB2b2lkIHJlc2V0KCk7CiAKIHByaXZhdGU6Ci0gICAgVG91Y2hWaWV3SW50ZXJmYWNlKiBjb25z
dCBtX3RvdWNoVmlld0ludGVyZmFjZTsKLSAgICBlbnVtIHsKLSAgICAgICAgTm9HZXN0dXJlLAot
ICAgICAgICBHZXN0dXJlUmVjb2duaXRpb25TdGFydGVkLAotICAgICAgICBHZXN0dXJlUmVjb2du
aXplZAotICAgIH0gbV9zdGF0ZTsKICAgICBRUG9pbnRGIG1fZmlyc3RQb3NpdGlvbjsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFBpbmNoR2VzdHVyZVJl
Y29nbml6ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGluY2hHZXN0dXJl
UmVjb2duaXplci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzhkNzNlN2FmZDkyZDQ2NThhM2FlOWZmMjM5MDQw
MjE4MDQ2MGVjNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9RdFBpbmNoR2VzdHVyZVJlY29nbml6ZXIuY3BwCkBAIC0wLDAgKzEsMTUxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEJlbmphbWluIFBvdWxhaW4gPGJlbmphbWluQHdlYmtpdC5vcmc+
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJRdFBpbmNoR2VzdHVy
ZVJlY29nbml6ZXIuaCIKKworI2luY2x1ZGUgIlRvdWNoVmlld0ludGVyZmFjZS5oIgorI2luY2x1
ZGUgPFF0Q29yZS9RTGluZUY+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgaW5saW5l
IGludCBmaW5kVG91Y2hQb2ludEluZGV4KGNvbnN0IFFMaXN0PFFUb3VjaEV2ZW50OjpUb3VjaFBv
aW50PiYgdG91Y2hQb2ludHMsIGNvbnN0IFF0UGluY2hHZXN0dXJlUmVjb2duaXplcjo6VG91Y2hQ
b2ludEluZm9ybWF0aW9uJiBwb2ludEluZm9ybWF0aW9uKQoreworICAgIGNvbnN0IGludCB0b3Vj
aENvdW50ID0gdG91Y2hQb2ludHMuc2l6ZSgpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdG91
Y2hDb3VudDsgKytpKSB7CisgICAgICAgIGNvbnN0IFFUb3VjaEV2ZW50OjpUb3VjaFBvaW50JiB0
b3VjaFBvaW50ID0gdG91Y2hQb2ludHMuYXQoaSk7CisgICAgICAgIGlmICh0b3VjaFBvaW50Lmlk
KCkgPT0gcG9pbnRJbmZvcm1hdGlvbi5pZCkKKyAgICAgICAgICAgIHJldHVybiBpOworICAgIH0K
KyAgICByZXR1cm4gLTE7Cit9CisKK3N0YXRpYyBpbmxpbmUgUVBvaW50RiBjb21wdXRlVG91Y2hD
ZW50ZXIoY29uc3QgUVRvdWNoRXZlbnQ6OlRvdWNoUG9pbnQmIHBvaW50MSwgY29uc3QgUVRvdWNo
RXZlbnQ6OlRvdWNoUG9pbnQmIHBvaW50MikKK3sKKyAgICByZXR1cm4gKHBvaW50MS5wb3MoKSAr
IHBvaW50Mi5wb3MoKSkgLyAyLjBmOworfQorCitRdFBpbmNoR2VzdHVyZVJlY29nbml6ZXI6OlF0
UGluY2hHZXN0dXJlUmVjb2duaXplcihUb3VjaFZpZXdJbnRlcmZhY2UqIHRvdWNoVmlld0ludGVy
ZmFjZSkKKyAgICA6IFF0R2VzdHVyZVJlY29nbml6ZXIodG91Y2hWaWV3SW50ZXJmYWNlKQorewor
ICAgIHJlc2V0KCk7Cit9CisKK2Jvb2wgUXRQaW5jaEdlc3R1cmVSZWNvZ25pemVyOjpyZWNvZ25p
emUoY29uc3QgUVRvdWNoRXZlbnQqIGV2ZW50KQoreworICAgIGNvbnN0IFFMaXN0PFFUb3VjaEV2
ZW50OjpUb3VjaFBvaW50PiYgdG91Y2hQb2ludHMgPSBldmVudC0+dG91Y2hQb2ludHMoKTsKKyAg
ICBpZiAodG91Y2hQb2ludHMuc2l6ZSgpIDwgMikgeworICAgICAgICBpZiAobV9zdGF0ZSA9PSBH
ZXN0dXJlUmVjb2duaXplZCkKKyAgICAgICAgICAgIG1fdG91Y2hWaWV3SW50ZXJmYWNlLT5waW5j
aEdlc3R1cmVFbmRlZCgpOworICAgICAgICByZXNldCgpOworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgc3dpdGNoIChldmVudC0+dHlwZSgpKSB7CisgICAgY2FzZSBRRXZlbnQ6
OlRvdWNoQmVnaW46CisgICAgY2FzZSBRRXZlbnQ6OlRvdWNoVXBkYXRlOgorICAgICAgICBzd2l0
Y2ggKG1fc3RhdGUpIHsKKyAgICAgICAgY2FzZSBOb0dlc3R1cmU6CisgICAgICAgICAgICBpbml0
aWFsaXplR2VzdHVyZSh0b3VjaFBvaW50cyk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIGNhc2UgR2VzdHVyZVJlY29nbml0aW9uU3RhcnRlZDoKKyAgICAgICAgY2FzZSBHZXN0
dXJlUmVjb2duaXplZDoKKyAgICAgICAgICAgIEFTU0VSVChtX3BvaW50MS5pc1ZhbGlkKCkpOwor
ICAgICAgICAgICAgQVNTRVJUKG1fcG9pbnQyLmlzVmFsaWQoKSk7CisKKyAgICAgICAgICAgIGNv
bnN0IGludCBwb2ludDFJbmRleCA9IGZpbmRUb3VjaFBvaW50SW5kZXgodG91Y2hQb2ludHMsIG1f
cG9pbnQxKTsKKyAgICAgICAgICAgIGlmIChwb2ludDFJbmRleCA8IDApIHsKKyAgICAgICAgICAg
ICAgICByZXNldCgpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGNvbnN0IGludCBwb2ludDJJbmRleCA9IGZpbmRUb3VjaFBvaW50SW5k
ZXgodG91Y2hQb2ludHMsIG1fcG9pbnQyKTsKKyAgICAgICAgICAgIGlmIChwb2ludDJJbmRleCA8
IDApIHsKKyAgICAgICAgICAgICAgICByZXNldCgpOworICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY29uc3QgUVRvdWNoRXZlbnQ6OlRv
dWNoUG9pbnQmIHBvaW50MSA9IHRvdWNoUG9pbnRzLmF0KHBvaW50MUluZGV4KTsKKyAgICAgICAg
ICAgIGNvbnN0IFFUb3VjaEV2ZW50OjpUb3VjaFBvaW50JiBwb2ludDIgPSB0b3VjaFBvaW50cy5h
dChwb2ludDJJbmRleCk7CisgICAgICAgICAgICBpZiAobV9zdGF0ZSA9PSBHZXN0dXJlUmVjb2du
aXRpb25TdGFydGVkKSB7CisgICAgICAgICAgICAgICAgY29uc3QgcXJlYWwgcGluY2hEaXN0YW5j
ZSA9IHFBYnMoUUxpbmVGKHBvaW50MS5zY3JlZW5Qb3MoKSwgcG9pbnQyLnNjcmVlblBvcygpKS5s
ZW5ndGgoKSAtIFFMaW5lRihtX3BvaW50MS5pbml0aWFsU2NyZWVuUG9zaXRpb24sIG1fcG9pbnQy
LmluaXRpYWxTY3JlZW5Qb3NpdGlvbikubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIGlmIChw
aW5jaERpc3RhbmNlIDwgcGluY2hJbml0aWFsVHJpZ2dlckRpc3RhbmNlVGhyZXNob2xkKQorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgbV9zdGF0ZSA9
IEdlc3R1cmVSZWNvZ25pemVkOworICAgICAgICAgICAgICAgIG1fdG91Y2hWaWV3SW50ZXJmYWNl
LT5waW5jaEdlc3R1cmVTdGFydGVkKCk7CisKKyAgICAgICAgICAgICAgICAvLyBXZSByZXNldCB0
aGUgaW5pdGlhbCBwb3NpdGlvbiB0byB0aGUgcHJldmlvdXMgcG9zaXRpb24gaW4gb3JkZXIgdG8g
YXZvaWQgdGhlIGp1bXAgY2F1c2VkCisgICAgICAgICAgICAgICAgLy8gYnkgc2tpcHBpbmcgYWxs
IHRoZSBldmVudHMgYmV0d2VlbiB0aGUgYmVnaW5uaW5nIGFuZCB3aGVuIHRoZSB0aHJlc2hvbGQg
aXMgaGl0LgorICAgICAgICAgICAgICAgIG1fcG9pbnQxLmluaXRpYWxQb3NpdGlvbiA9IHBvaW50
MS5sYXN0UG9zKCk7CisgICAgICAgICAgICAgICAgbV9wb2ludDEuaW5pdGlhbFNjcmVlblBvc2l0
aW9uID0gcG9pbnQxLmxhc3RTY3JlZW5Qb3MoKTsKKyAgICAgICAgICAgICAgICBtX3BvaW50Mi5p
bml0aWFsUG9zaXRpb24gPSBwb2ludDIubGFzdFBvcygpOworICAgICAgICAgICAgICAgIG1fcG9p
bnQyLmluaXRpYWxTY3JlZW5Qb3NpdGlvbiA9IHBvaW50Mi5sYXN0U2NyZWVuUG9zKCk7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBBU1NFUlQobV9zdGF0ZSA9PSBHZXN0dXJlUmVjb2duaXpl
ZCk7CisgICAgICAgICAgICBjb25zdCBxcmVhbCBjdXJyZW50U3BhbkRpc3RhbmNlID0gUUxpbmVG
KHBvaW50MS5zY3JlZW5Qb3MoKSwgcG9pbnQyLnNjcmVlblBvcygpKS5sZW5ndGgoKTsKKyAgICAg
ICAgICAgIGNvbnN0IHFyZWFsIGluaXRpYWxTcGFuRGlzdGFuY2UgPSBRTGluZUYobV9wb2ludDEu
aW5pdGlhbFNjcmVlblBvc2l0aW9uLCBtX3BvaW50Mi5pbml0aWFsU2NyZWVuUG9zaXRpb24pLmxl
bmd0aCgpOworICAgICAgICAgICAgY29uc3QgcXJlYWwgdG90YWxTY2FsZUZhY3RvciA9IGN1cnJl
bnRTcGFuRGlzdGFuY2UgLyBpbml0aWFsU3BhbkRpc3RhbmNlOworICAgICAgICAgICAgY29uc3Qg
UVBvaW50RiB0b3VjaENlbnRlckluUGFnZVZpZXdDb29yZGluYXRlID0gY29tcHV0ZVRvdWNoQ2Vu
dGVyKHBvaW50MSwgcG9pbnQyKTsKKyAgICAgICAgICAgIG1fdG91Y2hWaWV3SW50ZXJmYWNlLT5w
aW5jaEdlc3R1cmVSZXF1ZXN0U2NhbGUodG91Y2hDZW50ZXJJblBhZ2VWaWV3Q29vcmRpbmF0ZSwg
dG90YWxTY2FsZUZhY3Rvcik7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUUV2ZW50OjpUb3Vj
aEVuZDoKKyAgICAgICAgaWYgKG1fc3RhdGUgPT0gR2VzdHVyZVJlY29nbml6ZWQpIHsKKyAgICAg
ICAgICAgIG1fdG91Y2hWaWV3SW50ZXJmYWNlLT5waW5jaEdlc3R1cmVFbmRlZCgpOworICAgICAg
ICAgICAgcmVzZXQoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAg
ICAgIHJlc2V0KCk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBR
dFBpbmNoR2VzdHVyZVJlY29nbml6ZXI6OnJlc2V0KCkKK3sKKyAgICBRdEdlc3R1cmVSZWNvZ25p
emVyOjpyZXNldCgpOworICAgIG1fcG9pbnQxID0gVG91Y2hQb2ludEluZm9ybWF0aW9uKCk7Cisg
ICAgbV9wb2ludDIgPSBUb3VjaFBvaW50SW5mb3JtYXRpb24oKTsKK30KKwordm9pZCBRdFBpbmNo
R2VzdHVyZVJlY29nbml6ZXI6OmluaXRpYWxpemVHZXN0dXJlKGNvbnN0IFFMaXN0PFFUb3VjaEV2
ZW50OjpUb3VjaFBvaW50PiYgdG91Y2hQb2ludHMpCit7CisgICAgQVNTRVJUKCFtX3BvaW50MS5p
c1ZhbGlkKCkpOworICAgIEFTU0VSVCghbV9wb2ludDIuaXNWYWxpZCgpKTsKKworICAgIG1fc3Rh
dGUgPSBHZXN0dXJlUmVjb2duaXRpb25TdGFydGVkOworCisgICAgbV9wb2ludDEgPSBUb3VjaFBv
aW50SW5mb3JtYXRpb24odG91Y2hQb2ludHMuYXQoMCkpOworICAgIG1fcG9pbnQyID0gVG91Y2hQ
b2ludEluZm9ybWF0aW9uKHRvdWNoUG9pbnRzLmF0KDEpKTsKKworICAgIEFTU0VSVChtX3BvaW50
MS5pc1ZhbGlkKCkpOworICAgIEFTU0VSVChtX3BvaW50Mi5pc1ZhbGlkKCkpOworfQorCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQaW5jaEdlc3R1cmVSZWNv
Z25pemVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQaW5jaEdlc3R1cmVSZWNv
Z25pemVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOWY4OWIxZWFkNDE5ZDAwZjVhYzVhZTBiY2ExNDkwMzk1MjRj
Y2NiNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFBp
bmNoR2VzdHVyZVJlY29nbml6ZXIuaApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEJlbmphbWluIFBvdWxhaW4gPGJlbmphbWluQHdlYmtpdC5vcmc+CisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgUXRQaW5jaEdlc3R1cmVSZWNvZ25pemVyX2gKKyNkZWZpbmUgUXRQaW5jaEdl
c3R1cmVSZWNvZ25pemVyX2gKKworI2luY2x1ZGUgIlF0R2VzdHVyZVJlY29nbml6ZXIuaCIKKwor
I2luY2x1ZGUgPFFUb3VjaEV2ZW50PgorI2luY2x1ZGUgPFF0Q29yZS9RTGlzdD4KKyNpbmNsdWRl
IDxRdENvcmUvUVBvaW50Rj4KKworUVRfQkVHSU5fTkFNRVNQQUNFCitjbGFzcyBRVG91Y2hFdmVu
dDsKK1FUX0VORF9OQU1FU1BBQ0UKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFRvdWNo
Vmlld0ludGVyZmFjZTsKK2NvbnN0IHFyZWFsIHBpbmNoSW5pdGlhbFRyaWdnZXJEaXN0YW5jZVRo
cmVzaG9sZCA9IDUuOworCitjbGFzcyBRdFBpbmNoR2VzdHVyZVJlY29nbml6ZXIgOiBwcml2YXRl
IFF0R2VzdHVyZVJlY29nbml6ZXIgeworcHVibGljOgorICAgIHN0cnVjdCBUb3VjaFBvaW50SW5m
b3JtYXRpb24geworICAgICAgICBpbmxpbmUgVG91Y2hQb2ludEluZm9ybWF0aW9uKCk7CisgICAg
ICAgIGlubGluZSBUb3VjaFBvaW50SW5mb3JtYXRpb24oY29uc3QgUVRvdWNoRXZlbnQ6OlRvdWNo
UG9pbnQmKTsKKyAgICAgICAgaW5saW5lIGJvb2wgaXNWYWxpZCgpIGNvbnN0OworCisgICAgICAg
IGludCBpZDsKKyAgICAgICAgUVBvaW50RiBpbml0aWFsU2NyZWVuUG9zaXRpb247CisgICAgICAg
IFFQb2ludEYgaW5pdGlhbFBvc2l0aW9uOworICAgIH07CisKKyAgICBRdFBpbmNoR2VzdHVyZVJl
Y29nbml6ZXIoVG91Y2hWaWV3SW50ZXJmYWNlKik7CisgICAgYm9vbCByZWNvZ25pemUoY29uc3Qg
UVRvdWNoRXZlbnQqKTsKKyAgICB2b2lkIHJlc2V0KCk7CisKK3ByaXZhdGU6CisgICAgdm9pZCBp
bml0aWFsaXplR2VzdHVyZShjb25zdCBRTGlzdDxRVG91Y2hFdmVudDo6VG91Y2hQb2ludD4mIHRv
dWNoUG9pbnRzKTsKKworICAgIFRvdWNoUG9pbnRJbmZvcm1hdGlvbiBtX3BvaW50MTsKKyAgICBU
b3VjaFBvaW50SW5mb3JtYXRpb24gbV9wb2ludDI7Cit9OworCitpbmxpbmUgUXRQaW5jaEdlc3R1
cmVSZWNvZ25pemVyOjpUb3VjaFBvaW50SW5mb3JtYXRpb246OlRvdWNoUG9pbnRJbmZvcm1hdGlv
bigpCisgICAgOiBpZCgtMSkKK3sKK30KKworaW5saW5lIFF0UGluY2hHZXN0dXJlUmVjb2duaXpl
cjo6VG91Y2hQb2ludEluZm9ybWF0aW9uOjpUb3VjaFBvaW50SW5mb3JtYXRpb24oY29uc3QgUVRv
dWNoRXZlbnQ6OlRvdWNoUG9pbnQmIHRvdWNoUG9pbnQpCisgICAgOiBpZCh0b3VjaFBvaW50Lmlk
KCkpCisgICAgLCBpbml0aWFsU2NyZWVuUG9zaXRpb24odG91Y2hQb2ludC5zY3JlZW5Qb3MoKSkK
KyAgICAsIGluaXRpYWxQb3NpdGlvbih0b3VjaFBvaW50LnBvcygpKQoreworfQorCitpbmxpbmUg
Ym9vbCBRdFBpbmNoR2VzdHVyZVJlY29nbml6ZXI6OlRvdWNoUG9pbnRJbmZvcm1hdGlvbjo6aXNW
YWxpZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlkID49IDA7Cit9CisKK30KKworI2VuZGlmIC8q
IFF0UGluY2hHZXN0dXJlUmVjb2duaXplcl9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvVG91Y2hWaWV3SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9Ub3VjaFZpZXdJbnRlcmZhY2UuY3BwCmluZGV4IDRjYTc4NTZlMDExZjYxNTQ1
ZGZlZjQ2OTcxMTRlNzkzYWYwZjM2MzkuLjFlZDEwMWQ4ZTZlMWQ0OTM2ODJhMmNmNmVkMzA2MDVk
NTgxNjUzMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9Ub3VjaFZp
ZXdJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9Ub3VjaFZp
ZXdJbnRlcmZhY2UuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiVG91Y2hWaWV3SW50
ZXJmYWNlLmgiCiAKICNpbmNsdWRlICJxdG91Y2h3ZWJwYWdlLmgiCisjaW5jbHVkZSAicXRvdWNo
d2VicGFnZV9wLmgiCiAjaW5jbHVkZSAicXRvdWNod2Vidmlldy5oIgogI2luY2x1ZGUgInF0b3Vj
aHdlYnZpZXdfcC5oIgogCkBAIC0zMCw2ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogVG91
Y2hWaWV3SW50ZXJmYWNlOjpUb3VjaFZpZXdJbnRlcmZhY2UoUVRvdWNoV2ViVmlldyogdmlld3Bv
cnRWaWV3LCBRVG91Y2hXZWJQYWdlKiBwYWdlVmlldykKICAgICA6IG1fdmlld3BvcnRWaWV3KHZp
ZXdwb3J0VmlldykKICAgICAsIG1fcGFnZVZpZXcocGFnZVZpZXcpCisgICAgLCBtX3BpbmNoU3Rh
cnRTY2FsZSgxLmYpCiB7CiAgICAgUV9BU1NFUlQobV92aWV3cG9ydFZpZXcpOwogICAgIFFfQVNT
RVJUKG1fcGFnZVZpZXcpOwpAQCAtNTcsNiArNTksMzEgQEAgdm9pZCBUb3VjaFZpZXdJbnRlcmZh
Y2U6OnBhbkdlc3R1cmVDYW5jZWxsZWQoKQogICAgIC8vIEZJWE1FOiByZXN1bWUgdGhlIFdlYiBl
bmdpbmUuCiB9CiAKK3ZvaWQgVG91Y2hWaWV3SW50ZXJmYWNlOjpwaW5jaEdlc3R1cmVTdGFydGVk
KCkKK3sKKyAgICAvLyBGSVhNRTogc3VzcGVuZCB0aGUgZW5naW5lLgorICAgIG1fcGFnZVZpZXct
PmQtPnByZXBhcmVTY2FsZUNoYW5nZSgpOworICAgIG1fcGluY2hTdGFydFNjYWxlID0gbV9wYWdl
Vmlldy0+c2NhbGUoKTsKK30KKwordm9pZCBUb3VjaFZpZXdJbnRlcmZhY2U6OnBpbmNoR2VzdHVy
ZVJlcXVlc3RTY2FsZShjb25zdCBRUG9pbnRGJiBwaW5jaENlbnRlckluUGFnZVZpZXdDb29yZGlu
YXRlLCBxcmVhbCB0b3RhbFNjYWxlRmFjdG9yKQoreworICAgIC8vIEZJWE1FOiBpdCBpcyBhIGJp
dCBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gdGhhdCwgY2hhbmdlcyBvZiB0aGUgY2VudGVyIHBvc2l0
aW9uIHNob3VsZCBtb3ZlIHRoZSBwYWdlIGV2ZW4KKyAgICAvLyBpZiB0aGUgem9vbSBmYWN0b3Ig
ZG9lcyBub3QgY2hhbmdlLiBCb3RoIHRoZSB6b29tIGFuZCB0aGUgcGFubmluZyBzaG91bGQgYmUg
aGFuZGxlZCB0aHJvdWdoIHRoZSBwaHlzaWNzCisgICAgLy8gZW5naW5lLgorICAgIGNvbnN0IHFy
ZWFsIHNjYWxlID0gbV9waW5jaFN0YXJ0U2NhbGUgKiB0b3RhbFNjYWxlRmFjdG9yOworICAgIG1f
cGFnZVZpZXctPnNldFRyYW5zZm9ybU9yaWdpblBvaW50KHBpbmNoQ2VudGVySW5QYWdlVmlld0Nv
b3JkaW5hdGUpOworICAgIG1fcGFnZVZpZXctPnNldFNjYWxlKHNjYWxlKTsKK30KKwordm9pZCBU
b3VjaFZpZXdJbnRlcmZhY2U6OnBpbmNoR2VzdHVyZUVuZGVkKCkKK3sKKyAgICAvLyBGSVhNRTog
Y29tbWl0IHNjYWxlIHdpdGggdGhlIHNjYWxlIHZhbHVlIGluIHRoZSB2YWxpZCByYW5nZSBpbiBv
cmRlciB0byBnZXQgbmV3IHRpbGVzLgorICAgIC8vIEZJWE1FOiBhbmltYXRlIHRoZSBiYWNrIHpv
b20gaW4gdGhlIHZhbGlkIHJhbmdlLgorICAgIC8vIEZJWE1FOiByZXN1bWUgdGhlIGVuZ2luZSBh
ZnRlciB0aGUgYW5pbWF0aW9uLgorICAgIG1fcGFnZVZpZXctPmQtPmNvbW1pdFNjYWxlQ2hhbmdl
KCk7Cit9CisKIHZvaWQgVG91Y2hWaWV3SW50ZXJmYWNlOjpzZXRWaWV3TmVlZHNEaXNwbGF5KGNv
bnN0IFFSZWN0JiBpbnZhbGlkYXRlZFJlY3QpCiB7CiAgICAgbV9wYWdlVmlldy0+dXBkYXRlKGlu
dmFsaWRhdGVkUmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
VG91Y2hWaWV3SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvVG91Y2hW
aWV3SW50ZXJmYWNlLmgKaW5kZXggODMyYjk2ODQxODRiNDk5ZGMyNWFjNTJiYzQ5ZGE1YjQzMzVm
ZTU4OS4uMjE4OGFjM2MzMDM1NTk0ZWZjM2UyYWYyZThlNzRiM2E3MDQ2ODY4MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1RvdWNoVmlld0ludGVyZmFjZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9Ub3VjaFZpZXdJbnRlcmZhY2UuaApAQCAtMjMs
NiArMjMsNyBAQAogCiAjaW5jbHVkZSAiVmlld0ludGVyZmFjZS5oIgogCitjbGFzcyBRUG9pbnRG
OwogY2xhc3MgUVRvdWNoV2ViUGFnZTsKIGNsYXNzIFFUb3VjaFdlYlZpZXc7CiAKQEAgLTM4LDYg
KzM5LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHBhbkdlc3R1cmVFbmRlZCgpOwogICAgIHZvaWQg
cGFuR2VzdHVyZUNhbmNlbGxlZCgpOwogCisgICAgdm9pZCBwaW5jaEdlc3R1cmVTdGFydGVkKCk7
CisgICAgdm9pZCBwaW5jaEdlc3R1cmVSZXF1ZXN0U2NhbGUoY29uc3QgUVBvaW50RiYsIHFyZWFs
KTsKKyAgICB2b2lkIHBpbmNoR2VzdHVyZUVuZGVkKCk7CisKIHByaXZhdGU6CiAgICAgLyogSW1w
bGVtZW50YXRpb24gb2YgVmlld0ludGVyZmFjZSAqLwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWV3
TmVlZHNEaXNwbGF5KGNvbnN0IFFSZWN0Jik7CkBAIC02OSw2ICs3NCw4IEBAIHByaXZhdGU6CiBw
cml2YXRlOgogICAgIFFUb3VjaFdlYlZpZXcqIGNvbnN0IG1fdmlld3BvcnRWaWV3OwogICAgIFFU
b3VjaFdlYlBhZ2UqIGNvbnN0IG1fcGFnZVZpZXc7CisKKyAgICBxcmVhbCBtX3BpbmNoU3RhcnRT
Y2FsZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9x
dG91Y2h3ZWJwYWdlcHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3F0b3Vj
aHdlYnBhZ2Vwcm94eS5jcHAKaW5kZXggYWRlMTI3ZGYxM2MwYmIzM2FmMTkzMWVmMmM4MzQ3Yzkx
YjRhYmIwMS4uNWM3NmQ0NTU5NDFhNTVhNjc4ODE2ZDM0NGU2MDQ4MGI0YWUyMDU4NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3F0b3VjaHdlYnBhZ2Vwcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L3F0b3VjaHdlYnBhZ2Vwcm94eS5jcHAK
QEAgLTMxLDYgKzMxLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBRVG91Y2hXZWJQYWdl
UHJveHk6OlFUb3VjaFdlYlBhZ2VQcm94eShUb3VjaFZpZXdJbnRlcmZhY2UqIHZpZXdJbnRlcmZh
Y2UsIFFXS0NvbnRleHQqIGNvbnRleHQsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZikKICAg
ICA6IFF0V2ViUGFnZVByb3h5KHZpZXdJbnRlcmZhY2UsIGNvbnRleHQsIHBhZ2VHcm91cFJlZikK
ICAgICAsIG1fcGFuR2VzdHVyZVJlY29nbml6ZXIodmlld0ludGVyZmFjZSkKKyAgICAsIG1fcGlu
Y2hHZXN0dXJlUmVjb2duaXplcih2aWV3SW50ZXJmYWNlKQogewogICAgIGluaXQoKTsKICAgICAv
LyBGSVhNRTogYWRkIHByb3BlciBoYW5kbGluZyBvZiB2aWV3cG9ydC4KQEAgLTQ2LDYgKzQ3LDcg
QEAgdm9pZCBRVG91Y2hXZWJQYWdlUHJveHk6OnByb2Nlc3NEaWRDcmFzaCgpCiB7CiAgICAgUXRX
ZWJQYWdlUHJveHk6OnByb2Nlc3NEaWRDcmFzaCgpOwogICAgIG1fcGFuR2VzdHVyZVJlY29nbml6
ZXIucmVzZXQoKTsKKyAgICBtX3BpbmNoR2VzdHVyZVJlY29nbml6ZXIucmVzZXQoKTsKIH0KIAog
dm9pZCBRVG91Y2hXZWJQYWdlUHJveHk6OnBhaW50Q29udGVudChRUGFpbnRlciogcGFpbnRlciwg
Y29uc3QgUVJlY3QmIGFyZWEpCkBAIC02MiwxMCArNjQsMTMgQEAgdm9pZCBRVG91Y2hXZWJQYWdl
UHJveHk6OnNldFZpZXdwb3J0QXJndW1lbnRzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1l
bnRzJgogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiB2b2lkIFFUb3VjaFdlYlBhZ2VQcm94eTo6
ZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmIGV2ZW50LCBib29s
IHdhc0V2ZW50SGFuZGxlZCkKIHsKLSAgICBpZiAod2FzRXZlbnRIYW5kbGVkKQorICAgIGlmICh3
YXNFdmVudEhhbmRsZWQpIHsKICAgICAgICAgbV9wYW5HZXN0dXJlUmVjb2duaXplci5yZXNldCgp
OwotICAgIGVsc2UKKyAgICAgICAgbV9waW5jaEdlc3R1cmVSZWNvZ25pemVyLnJlc2V0KCk7Cisg
ICAgfSBlbHNlIHsKICAgICAgICAgbV9wYW5HZXN0dXJlUmVjb2duaXplci5yZWNvZ25pemUoZXZl
bnQubmF0aXZlRXZlbnQoKSk7CisgICAgICAgIG1fcGluY2hHZXN0dXJlUmVjb2duaXplci5yZWNv
Z25pemUoZXZlbnQubmF0aXZlRXZlbnQoKSk7CisgICAgfQogfQogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9xdG91Y2h3ZWJwYWdlcHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9xdG91Y2h3ZWJwYWdlcHJveHkuaAppbmRleCAzOTFm
MGY0ZDUyYTRlOTg3ZTNiYTBiYmY1NGIwZmE0NzhmYmY5MTRmLi4zZjE0ZjIwOThiYTU0Y2RjMTEw
YjkwOWNhYWY1ZDgzYjUzNzcwZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvcXRvdWNod2VicGFnZXByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L3F0b3VjaHdlYnBhZ2Vwcm94eS5oCkBAIC0yNCw2ICsyNCw3IEBACiAKICNpbmNsdWRlICJE
cmF3aW5nQXJlYVByb3h5LmgiCiAjaW5jbHVkZSAiUXRQYW5HZXN0dXJlUmVjb2duaXplci5oIgor
I2luY2x1ZGUgIlF0UGluY2hHZXN0dXJlUmVjb2duaXplci5oIgogI2luY2x1ZGUgIlF0V2ViUGFn
ZVByb3h5LmgiCiAjaW5jbHVkZSAiVG91Y2hWaWV3SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KQEAgLTU4LDYgKzU5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHRvdWNo
RXZlbnQoUVRvdWNoRXZlbnQqKTsKIAogICAgIFF0UGFuR2VzdHVyZVJlY29nbml6ZXIgbV9wYW5H
ZXN0dXJlUmVjb2duaXplcjsKKyAgICBRdFBpbmNoR2VzdHVyZVJlY29nbml6ZXIgbV9waW5jaEdl
c3R1cmVSZWNvZ25pemVyOwogICAgIFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzIG1fdmlld3Bv
cnRBcmd1bWVudHM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBy
byBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCmluZGV4IDYzN2FhODNmOWFmMjJlZTllMTk3
Mjg3MmVmNTYwMTQxMmNiNGI5MzEuLjY0NzI1OWQ4M2M2ZmRlYWQ3NTRjZmIwNTZiYjk3YTQ1NTQw
MTdkMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDIucHJvCkBAIC0yMzYsNyArMjM2LDkgQEAgSEVBREVSUyArPSBcCiAg
ICAgVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmggXAogICAgIFVJUHJvY2Vzcy9xdC9DbGllbnRJbXBs
LmggXAogICAgIFVJUHJvY2Vzcy9xdC9Ub3VjaFZpZXdJbnRlcmZhY2UuaCBcCisgICAgVUlQcm9j
ZXNzL3F0L1F0R2VzdHVyZVJlY29nbml6ZXIuaCBcCiAgICAgVUlQcm9jZXNzL3F0L1F0UGFuR2Vz
dHVyZVJlY29nbml6ZXIuaCBcCisgICAgVUlQcm9jZXNzL3F0L1F0UGluY2hHZXN0dXJlUmVjb2du
aXplci5oIFwKICAgICBVSVByb2Nlc3MvcXQvcWRlc2t0b3B3ZWJwYWdlcHJveHkuaCBcCiAgICAg
VUlQcm9jZXNzL3F0L3F0b3VjaHdlYnBhZ2Vwcm94eS5oIFwKICAgICBVSVByb2Nlc3MvcXQvUXRX
ZWJQYWdlUHJveHkuaCBcCkBAIC00NjUsNyArNDY3LDkgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQ
cm9jZXNzL1dlYlVJQ2xpZW50LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L0NsaWVudEltcGwuY3Bw
IFwKICAgICBVSVByb2Nlc3MvcXQvVG91Y2hWaWV3SW50ZXJmYWNlLmNwcCBcCisgICAgVUlQcm9j
ZXNzL3F0L1F0R2VzdHVyZVJlY29nbml6ZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvcXQvUXRQYW5H
ZXN0dXJlUmVjb2duaXplci5jcHAgXAorICAgIFVJUHJvY2Vzcy9xdC9RdFBpbmNoR2VzdHVyZVJl
Y29nbml6ZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvcXQvcWRlc2t0b3B3ZWJwYWdlcHJveHkuY3Bw
IFwKICAgICBVSVByb2Nlc3MvcXQvcXRvdWNod2VicGFnZXByb3h5LmNwcCBcCiAgICAgVUlQcm9j
ZXNzL3F0L1F0V2ViUGFnZVByb3h5LmNwcCBcCg==
</data>
<flag name="review"
          id="95190"
          type_id="1"
          status="+"
          setter="kling"
    />
    <flag name="commit-queue"
          id="95191"
          type_id="3"
          status="-"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>