<?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>66590</bug_id>
          
          <creation_ts>2011-08-19 14:19:55 -0700</creation_ts>
          <short_desc>Re-name scrollbar painter types</short_desc>
          <delta_ts>2011-08-19 15:34:36 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>OS X 10.7</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="Beth Dakin">bdakin</reporter>
          <assigned_to name="Beth Dakin">bdakin</assigned_to>
          <cc>bdakin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>454084</commentid>
    <comment_count>0</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2011-08-19 14:19:55 -0700</bug_when>
    <thetext>After committing this change: https://bugs.webkit.org/show_bug.cgi?id=66495 Lion-specific scroller SPIs can use forward declaration instead of WebKitSystemInterface

some re-names are in order. USE(WK_Scrollbar_Painter), WKScrollbarPainterRef, and WKScrollbarPainterControllerRef all need to be re-named to remove references to WebKitSystemInterface since the implementation is now in WebCore, and the type names should sound more Objective-Cish instead of C++ish.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454089</commentid>
    <comment_count>1</comment_count>
      <attachid>104564</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2011-08-19 14:25:44 -0700</bug_when>
    <thetext>Created attachment 104564
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454148</commentid>
    <comment_count>2</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2011-08-19 15:34:36 -0700</bug_when>
    <thetext>Thanks Sam! Committed change with revision 93445.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104564</attachid>
            <date>2011-08-19 14:25:44 -0700</date>
            <delta_ts>2011-08-19 15:28:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review.txt</filename>
            <type>text/plain</type>
            <size>28355</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTM0MzcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTEtMDgtMTkgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjU5MAorICAgICAgICBSZS1u
YW1lIHNjcm9sbGJhciBwYWludGVyIHR5cGVzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV1RGX1VTRV9XS19TQ1JPTExCQVJfUEFJTlRFUiBpcyBub3cg
V1RGX1VTRV9TQ1JPTExCQVJfUEFJTlRFUiBzaW5jZSBXSyBubyBsb25nZXIgCisgICAgICAgIGFw
cGxpZXMuCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisKIDIwMTEtMDgtMTggIE1hcmsgSGFo
bmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIGFsbG9jYXRp
b24gaW4gY29uc3RydWN0b3JzIGludG8gc2VwYXJhdGUgY29uc3RydWN0b3JCb2R5KCkgbWV0aG9k
cwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAkocmV2aXNpb24gOTM0MTgp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkK
QEAgLTU1NSw3ICs1NTUsNyBAQAogI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKICNkZWZpbmUgRU5BQkxFX0dFU1RV
UkVfRVZFTlRTIDEKICNkZWZpbmUgRU5BQkxFX1JVQkJFUl9CQU5ESU5HIDEKLSNkZWZpbmUgV1RG
X1VTRV9XS19TQ1JPTExCQVJfUEFJTlRFUiAxCisjZGVmaW5lIFdURl9VU0VfU0NST0xMQkFSX1BB
SU5URVIgMQogI2VuZGlmCiAjaWYgIWRlZmluZWQoRU5BQkxFX0pBVkFfQlJJREdFKQogI2RlZmlu
ZSBFTkFCTEVfSkFWQV9CUklER0UgMQpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTM0MzcpCisr
KyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw2MyBA
QAorMjAxMS0wOC0xOSAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2NTkwCisgICAgICAgIFJl
LW5hbWUgc2Nyb2xsYmFyIHBhaW50ZXIgdHlwZXMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBOYW1lcyBjaGFuZ2VkIHRvIHJlbW92ZSByZWZlcmVuY2Vz
IHRvIFdlYktpdFN5c3RlbUludGVyZmFjZSBzaW5jZSB0aGUgCisgICAgICAgIGltcGxlbWVudGF0
aW9uIGlzIG5vdyBpbiBXZWJDb3JlLiBBbmQgdGhlIHR5cGUgbmFtZXMgY2hhbmdlZCB0byBiZSBt
b3JlIE9iamVjdGl2ZS0KKyAgICAgICAgQ2lzaCBpbnN0ZWFkIG9mIEMrK2lzaAorICAgICAgICBX
VEZfVVNFX1dLX1NDUk9MTEJBUl9QQUlOVEVSIC0+IFdURl9VU0VfU0NST0xMQkFSX1BBSU5URVIK
KyAgICAgICAgV0tTY3JvbGxiYXJQYWludGVyUmVmIC0+IFNjcm9sbGJhclBhaW50ZXIKKyAgICAg
ICAgV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZiAtPiBTY3JvbGxiYXJQYWludGVyQ29u
dHJvbGxlcgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL05TU2Nyb2xsZXJJbXBEZXRhaWxzLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmg6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tOgorICAgICAgICAoLVtTY3JvbGxiYXJQ
YXJ0QW5pbWF0aW9uIGluaXRXaXRoU2Nyb2xsYmFyUGFpbnRlcjpwYXJ0OldlYkNvcmU6OnNjcm9s
bEFuaW1hdG9yOldlYkNvcmU6OmFuaW1hdGVBbHBoYVRvOmR1cmF0aW9uOl0pOgorICAgICAgICAo
LVtTY3JvbGxiYXJQYWludGVyRGVsZWdhdGUgc2V0VXBBbmltYXRpb246c2Nyb2xsZXJQYWludGVy
OnBhcnQ6V2ViQ29yZTo6YW5pbWF0ZUFscGhhVG86ZHVyYXRpb246XSk6CisgICAgICAgICgtW1Nj
cm9sbGJhclBhaW50ZXJEZWxlZ2F0ZSBzY3JvbGxlckltcDphbmltYXRlS25vYkFscGhhVG86ZHVy
YXRpb246XSk6CisgICAgICAgICgtW1Njcm9sbGJhclBhaW50ZXJEZWxlZ2F0ZSBzY3JvbGxlcklt
cDphbmltYXRlVHJhY2tBbHBoYVRvOmR1cmF0aW9uOl0pOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsQW5pbWF0b3JNYWM6OlNjcm9sbEFuaW1hdG9yTWFjKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbEFuaW1hdG9yTWFjOjp+U2Nyb2xsQW5pbWF0b3JNYWMpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQW5pbWF0b3JNYWM6Om5vdGlmeVBvc2l0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxBbmltYXRvck1hYzo6Y29udGVudEFyZWFXaWxsUGFpbnQpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6Om1vdXNlRW50ZXJlZENvbnRlbnRBcmVhKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjptb3VzZUV4aXRlZENvbnRlbnRBcmVh
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjptb3VzZU1vdmVkSW5Db250
ZW50QXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6d2lsbFN0YXJ0
TGl2ZVJlc2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6Y29udGVu
dHNSZXNpemVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjp3aWxsRW5k
TGl2ZVJlc2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6Y29udGVu
dEFyZWFEaWRTaG93KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpjb250
ZW50QXJlYURpZEhpZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OmRp
ZEJlZ2luU2Nyb2xsR2VzdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1h
Yzo6ZGlkRW5kU2Nyb2xsR2VzdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRv
ck1hYzo6ZGlkQWRkVmVydGljYWxTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
QW5pbWF0b3JNYWM6OndpbGxSZW1vdmVWZXJ0aWNhbFNjcm9sbGJhcik6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxBbmltYXRvck1hYzo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcik6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6d2lsbFJlbW92ZUhvcml6b250YWxTY3Jv
bGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OmNhbmNlbEFuaW1h
dGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OnNldElzQWN0aXZl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjp1cGRhdGVTY3JvbGxlclN0
eWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsVmlld01hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3JtU2V0U2Nyb2xsYmFyT3ZlcmxheVN0eWxlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW06CisgICAgICAgICgrW1Njcm9sbGJhclBy
ZWZzT2JzZXJ2ZXIgYXBwZWFyYW5jZVByZWZzQ2hhbmdlZDpdKToKKyAgICAgICAgKFdlYkNvcmU6
OnVwZGF0ZUFycm93UGxhY2VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1l
TWFjOjpyZWdpc3RlclNjcm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVt
ZU1hYzo6c2V0TmV3UGFpbnRlckZvclNjcm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxiYXJUaGVtZU1hYzo6cGFpbnRlckZvclNjcm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxiYXJUaGVtZU1hYzo6c2Nyb2xsYmFyVGhpY2tuZXNzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGJhclRoZW1lTWFjOjp1c2VzT3ZlcmxheVNjcm9sbGJhcnMpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsYmFyVGhlbWVNYWM6OnVwZGF0ZVNjcm9sbGJhck92ZXJsYXlTdHlsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYzo6aGFzVGh1bWIpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVNYWM6Om1pbmltdW1UaHVtYkxlbmd0aCk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYzo6dXBkYXRlRW5hYmxlZFN0YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNjcm9sbGJhclBhaW50ZXJQYWludCk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxiYXJUaGVtZU1hYzo6cGFpbnQpOgorCiAyMDExLTA4LTE5ICBWaWN0b3JpYSBLaXJzdCAg
PHZya0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVGVsbCBtZWRpYSBwbGF5ZXIgdG8gcHJlcGFy
ZVRvUGxheSgpIGF0IGVuZCBvZiBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkKCkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9OU1Njcm9sbGVySW1wRGV0YWlscy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9OU1Njcm9sbGVySW1wRGV0YWlscy5oCShy
ZXZpc2lvbiA5MzQxOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9OU1Njcm9sbGVy
SW1wRGV0YWlscy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRl
ICJjb25maWcuaCIKIAotI2lmIFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikKKyNpZiBVU0UoU0NS
T0xMQkFSX1BBSU5URVIpCiBAaW50ZXJmYWNlIE5TT2JqZWN0IChTY3JvbGxiYXJQYWludGVyKQog
KyAoaWQpc2Nyb2xsZXJJbXBXaXRoU3R5bGU6KE5TU2Nyb2xsZXJTdHlsZSluZXdTY3JvbGxlclN0
eWxlIGNvbnRyb2xTaXplOihOU0NvbnRyb2xTaXplKW5ld0NvbnRyb2xTaXplIGhvcml6b250YWw6
KEJPT0wpaG9yaXpvbnRhbCByZXBsYWNpbmdTY3JvbGxlckltcDooaWQpcHJldmlvdXM7CiAtIChD
R0Zsb2F0KWtub2JBbHBoYTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3Jv
bGxBbmltYXRvck1hYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TY3JvbGxBbmltYXRvck1hYy5oCShyZXZpc2lvbiA5MzQxOCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw4
ICs0Nyw4IEBAIGNsYXNzIFNjcm9sbGJhclBhaW50ZXJDb250cm9sbGVyRGVsZWdhdGUKIGNsYXNz
IFNjcm9sbGJhclBhaW50ZXJEZWxlZ2F0ZTsKICNlbmRpZgogCi0jaWYgVVNFKFdLX1NDUk9MTEJB
Ul9QQUlOVEVSKQotdHlwZWRlZiBpZCBXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmOwor
I2lmIFVTRShTQ1JPTExCQVJfUEFJTlRFUikKK3R5cGVkZWYgaWQgU2Nyb2xsYmFyUGFpbnRlckNv
bnRyb2xsZXI7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODUsNyArODUsNyBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0SXNBY3RpdmUoKTsKIAotI2lmIFVTRShX
S19TQ1JPTExCQVJfUEFJTlRFUikKKyNpZiBVU0UoU0NST0xMQkFSX1BBSU5URVIpCiAgICAgdm9p
ZCB1cGRhdGVTY3JvbGxlclN0eWxlKCk7CiAKICAgICBib29sIHNjcm9sbGJhclBhaW50VGltZXJJ
c0FjdGl2ZSgpIGNvbnN0OwpAQCAtOTksOCArOTksOCBAQCBwcml2YXRlOgogICAgIFJldGFpblB0
cjxpZD4gbV9zY3JvbGxBbmltYXRpb25IZWxwZXI7CiAgICAgUmV0YWluUHRyPFNjcm9sbEFuaW1h
dGlvbkhlbHBlckRlbGVnYXRlPiBtX3Njcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlOwogCi0j
aWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQotICAgIFJldGFpblB0cjxXS1Njcm9sbGJhclBh
aW50ZXJDb250cm9sbGVyUmVmPiBtX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyOworI2lmIFVT
RShTQ1JPTExCQVJfUEFJTlRFUikKKyAgICBSZXRhaW5QdHI8U2Nyb2xsYmFyUGFpbnRlckNvbnRy
b2xsZXI+IG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXI7CiAgICAgUmV0YWluUHRyPFNjcm9s
bGJhclBhaW50ZXJDb250cm9sbGVyRGVsZWdhdGU+IG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xs
ZXJEZWxlZ2F0ZTsKICAgICBSZXRhaW5QdHI8aWQ+IG1fc2Nyb2xsYmFyUGFpbnRlckRlbGVnYXRl
OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1h
dG9yTWFjLm1tCShyZXZpc2lvbiA5MzQxOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TY3JvbGxBbmltYXRvck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTQ4LDcgKzE0OCw3IEBA
IC0gKHZvaWQpX3JlY3Vyc2l2ZVJlY29tcHV0ZVRvb2xUaXBzCiAKIEBlbmQKIAotI2lmIFVTRShX
S19TQ1JPTExCQVJfUEFJTlRFUikKKyNpZiBVU0UoU0NST0xMQkFSX1BBSU5URVIpCiAKIEBpbnRl
cmZhY2UgU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJEZWxlZ2F0ZSA6IE5TT2JqZWN0CiB7CkBA
IC0yNDQsMTggKzI0NCwxOCBAQCAtICh2b2lkKXNjcm9sbGVySW1wUGFpcjooaWQpc2Nyb2xsZXJJ
bXBQCiAKIEBpbnRlcmZhY2UgU2Nyb2xsYmFyUGFydEFuaW1hdGlvbiA6IE5TQW5pbWF0aW9uCiB7
Ci0gICAgUmV0YWluUHRyPFdLU2Nyb2xsYmFyUGFpbnRlclJlZj4gX3Njcm9sbGVyUGFpbnRlcjsK
KyAgICBSZXRhaW5QdHI8U2Nyb2xsYmFyUGFpbnRlcj4gX3Njcm9sbGVyUGFpbnRlcjsKICAgICBX
ZWJDb3JlOjpTY3JvbGxiYXJQYXJ0IF9wYXJ0OwogICAgIFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9y
TWFjKiBfYW5pbWF0b3I7CiAgICAgQ0dGbG9hdCBfaW5pdGlhbEFscGhhOwogICAgIENHRmxvYXQg
X25ld0FscGhhOwogfQotLSAoaWQpaW5pdFdpdGhTY3JvbGxiYXJQYWludGVyOihXS1Njcm9sbGJh
clBhaW50ZXJSZWYpc2Nyb2xsZXJQYWludGVyIHBhcnQ6KFdlYkNvcmU6OlNjcm9sbGJhclBhcnQp
cGFydCBzY3JvbGxBbmltYXRvcjooV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWMqKXNjcm9sbEFu
aW1hdG9yIGFuaW1hdGVBbHBoYVRvOihDR0Zsb2F0KW5ld0FscGhhIGR1cmF0aW9uOihOU1RpbWVJ
bnRlcnZhbClkdXJhdGlvbjsKKy0gKGlkKWluaXRXaXRoU2Nyb2xsYmFyUGFpbnRlcjooU2Nyb2xs
YmFyUGFpbnRlcilzY3JvbGxlclBhaW50ZXIgcGFydDooV2ViQ29yZTo6U2Nyb2xsYmFyUGFydClw
YXJ0IHNjcm9sbEFuaW1hdG9yOihXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYyopc2Nyb2xsQW5p
bWF0b3IgYW5pbWF0ZUFscGhhVG86KENHRmxvYXQpbmV3QWxwaGEgZHVyYXRpb246KE5TVGltZUlu
dGVydmFsKWR1cmF0aW9uOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gU2Nyb2xsYmFyUGFydEFu
aW1hdGlvbgogCi0tIChpZClpbml0V2l0aFNjcm9sbGJhclBhaW50ZXI6KFdLU2Nyb2xsYmFyUGFp
bnRlclJlZilzY3JvbGxlclBhaW50ZXIgcGFydDooV2ViQ29yZTo6U2Nyb2xsYmFyUGFydClwYXJ0
IHNjcm9sbEFuaW1hdG9yOihXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYyopc2Nyb2xsQW5pbWF0
b3IgYW5pbWF0ZUFscGhhVG86KENHRmxvYXQpbmV3QWxwaGEgZHVyYXRpb246KE5TVGltZUludGVy
dmFsKWR1cmF0aW9uCistIChpZClpbml0V2l0aFNjcm9sbGJhclBhaW50ZXI6KFNjcm9sbGJhclBh
aW50ZXIpc2Nyb2xsZXJQYWludGVyIHBhcnQ6KFdlYkNvcmU6OlNjcm9sbGJhclBhcnQpcGFydCBz
Y3JvbGxBbmltYXRvcjooV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWMqKXNjcm9sbEFuaW1hdG9y
IGFuaW1hdGVBbHBoYVRvOihDR0Zsb2F0KW5ld0FscGhhIGR1cmF0aW9uOihOU1RpbWVJbnRlcnZh
bClkdXJhdGlvbgogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhEdXJhdGlvbjpkdXJhdGlv
biBhbmltYXRpb25DdXJ2ZTpOU0FuaW1hdGlvbkVhc2VJbk91dF07CiAgICAgaWYgKCFzZWxmKQpA
QCAtMzU5LDcgKzM1OSw3IEBAIC0gKENBTGF5ZXIgKilsYXllcgogICAgIHJldHVybiBkdW1teUxh
eWVyOwogfQogCi0tICh2b2lkKXNldFVwQW5pbWF0aW9uOihSZXRhaW5QdHI8U2Nyb2xsYmFyUGFy
dEFuaW1hdGlvbj4mKXNjcm9sbGJhclBhcnRBbmltYXRpb24gc2Nyb2xsZXJQYWludGVyOihXS1Nj
cm9sbGJhclBhaW50ZXJSZWYpc2Nyb2xsZXJQYWludGVyIHBhcnQ6KFdlYkNvcmU6OlNjcm9sbGJh
clBhcnQpcGFydCBhbmltYXRlQWxwaGFUbzooQ0dGbG9hdCluZXdBbHBoYSBkdXJhdGlvbjooTlNU
aW1lSW50ZXJ2YWwpZHVyYXRpb24KKy0gKHZvaWQpc2V0VXBBbmltYXRpb246KFJldGFpblB0cjxT
Y3JvbGxiYXJQYXJ0QW5pbWF0aW9uPiYpc2Nyb2xsYmFyUGFydEFuaW1hdGlvbiBzY3JvbGxlclBh
aW50ZXI6KFNjcm9sbGJhclBhaW50ZXIpc2Nyb2xsZXJQYWludGVyIHBhcnQ6KFdlYkNvcmU6OlNj
cm9sbGJhclBhcnQpcGFydCBhbmltYXRlQWxwaGFUbzooQ0dGbG9hdCluZXdBbHBoYSBkdXJhdGlv
bjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRpb24KIHsKICAgICAvLyBJZiB0aGUgdXNlciBoYXMgc2Ny
b2xsZWQgdGhlIHBhZ2UsIHRoZW4gdGhlIHNjcm9sbGJhcnMgbXVzdCBiZSBhbmltYXRlZCBoZXJl
LiAKICAgICAvLyBUaGlzIG92ZXJyaWRlcyB0aGUgZWFybHkgcmV0dXJucy4KQEAgLTQwNyw3ICs0
MDcsNyBAQCAtICh2b2lkKXNjcm9sbGVySW1wOihpZClzY3JvbGxlckltcCBhbmltCiAgICAgaWYg
KCFfYW5pbWF0b3IpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdLU2Nyb2xsYmFyUGFpbnRlclJl
ZiBzY3JvbGxlclBhaW50ZXIgPSAoV0tTY3JvbGxiYXJQYWludGVyUmVmKXNjcm9sbGVySW1wOwor
ICAgIFNjcm9sbGJhclBhaW50ZXIgc2Nyb2xsZXJQYWludGVyID0gKFNjcm9sbGJhclBhaW50ZXIp
c2Nyb2xsZXJJbXA7CiAgICAgaWYgKFtzY3JvbGxlckltcCBpc0hvcml6b250YWxdKQogICAgICAg
ICBbc2VsZiBzZXRVcEFuaW1hdGlvbjpfaG9yaXpvbnRhbEtub2JBbmltYXRpb24gc2Nyb2xsZXJQ
YWludGVyOnNjcm9sbGVyUGFpbnRlciBwYXJ0OldlYkNvcmU6OlRodW1iUGFydCBhbmltYXRlQWxw
aGFUbzpuZXdLbm9iQWxwaGEgZHVyYXRpb246ZHVyYXRpb25dOwogICAgIGVsc2UKQEAgLTQxOSw3
ICs0MTksNyBAQCAtICh2b2lkKXNjcm9sbGVySW1wOihpZClzY3JvbGxlckltcCBhbmltCiAgICAg
aWYgKCFfYW5pbWF0b3IpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdLU2Nyb2xsYmFyUGFpbnRl
clJlZiBzY3JvbGxlclBhaW50ZXIgPSAoV0tTY3JvbGxiYXJQYWludGVyUmVmKXNjcm9sbGVySW1w
OworICAgIFNjcm9sbGJhclBhaW50ZXIgc2Nyb2xsZXJQYWludGVyID0gKFNjcm9sbGJhclBhaW50
ZXIpc2Nyb2xsZXJJbXA7CiAgICAgaWYgKFtzY3JvbGxlckltcCBpc0hvcml6b250YWxdKQogICAg
ICAgICBbc2VsZiBzZXRVcEFuaW1hdGlvbjpfaG9yaXpvbnRhbFRyYWNrQW5pbWF0aW9uIHNjcm9s
bGVyUGFpbnRlcjpzY3JvbGxlclBhaW50ZXIgcGFydDpXZWJDb3JlOjpCYWNrVHJhY2tQYXJ0IGFu
aW1hdGVBbHBoYVRvOm5ld1RyYWNrQWxwaGEgZHVyYXRpb246ZHVyYXRpb25dOwogICAgIGVsc2UK
QEAgLTQ0Myw3ICs0NDMsNyBAQCAtICh2b2lkKXNjcm9sbEFuaW1hdG9yRGVzdHJveWVkCiAKIEBl
bmQKIAotI2VuZGlmIC8vIFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikKKyNlbmRpZiAvLyBVU0Uo
U0NST0xMQkFSX1BBSU5URVIpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDU0LDcgKzQ1
NCw3IEBAIFBhc3NPd25QdHI8U2Nyb2xsQW5pbWF0b3I+IFNjcm9sbEFuaW1hdG8KIAogU2Nyb2xs
QW5pbWF0b3JNYWM6OlNjcm9sbEFuaW1hdG9yTWFjKFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxl
QXJlYSkKICAgICA6IFNjcm9sbEFuaW1hdG9yKHNjcm9sbGFibGVBcmVhKQotI2lmIFVTRShXS19T
Q1JPTExCQVJfUEFJTlRFUikKKyNpZiBVU0UoU0NST0xMQkFSX1BBSU5URVIpCiAgICAgLCBtX2lu
aXRpYWxTY3JvbGxiYXJQYWludFRpbWVyKHRoaXMsICZTY3JvbGxBbmltYXRvck1hYzo6aW5pdGlh
bFNjcm9sbGJhclBhaW50VGltZXJGaXJlZCkKICNlbmRpZgogI2lmIEVOQUJMRShSVUJCRVJfQkFO
RElORykKQEAgLTQ3Miw3ICs0NzIsNyBAQCBTY3JvbGxBbmltYXRvck1hYzo6U2Nyb2xsQW5pbWF0
b3JNYWMoU2NyCiAgICAgbV9zY3JvbGxBbmltYXRpb25IZWxwZXJEZWxlZ2F0ZS5hZG9wdE5TKFtb
U2Nyb2xsQW5pbWF0aW9uSGVscGVyRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoU2Nyb2xsQW5pbWF0
b3I6dGhpc10pOwogICAgIG1fc2Nyb2xsQW5pbWF0aW9uSGVscGVyLmFkb3B0TlMoW1tOU0NsYXNz
RnJvbVN0cmluZyhAIk5TU2Nyb2xsQW5pbWF0aW9uSGVscGVyIikgYWxsb2NdIGluaXRXaXRoRGVs
ZWdhdGU6bV9zY3JvbGxBbmltYXRpb25IZWxwZXJEZWxlZ2F0ZS5nZXQoKV0pOwogCi0jaWYgVVNF
KFdLX1NDUk9MTEJBUl9QQUlOVEVSKQorI2lmIFVTRShTQ1JPTExCQVJfUEFJTlRFUikKICAgICBt
X3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyRGVsZWdhdGUuYWRvcHROUyhbW1Njcm9sbGJhclBh
aW50ZXJDb250cm9sbGVyRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoU2Nyb2xsQW5pbWF0b3I6dGhp
c10pOwogICAgIG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgPSBbW1tOU0NsYXNzRnJvbVN0
cmluZyhAIk5TU2Nyb2xsZXJJbXBQYWlyIikgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKICAg
ICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSBzZXREZWxlZ2F0ZTptX3Njcm9s
bGJhclBhaW50ZXJDb250cm9sbGVyRGVsZWdhdGUuZ2V0KCldOwpAQCAtNDg0LDcgKzQ4NCw3IEBA
IFNjcm9sbEFuaW1hdG9yTWFjOjpTY3JvbGxBbmltYXRvck1hYyhTY3IKIAogU2Nyb2xsQW5pbWF0
b3JNYWM6On5TY3JvbGxBbmltYXRvck1hYygpCiB7Ci0jaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlO
VEVSKQorI2lmIFVTRShTQ1JPTExCQVJfUEFJTlRFUikKICAgICBbbV9zY3JvbGxiYXJQYWludGVy
Q29udHJvbGxlckRlbGVnYXRlLmdldCgpIHNjcm9sbEFuaW1hdG9yRGVzdHJveWVkXTsKICAgICBb
bV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSBzZXREZWxlZ2F0ZTpuaWxdOwogICAg
IFttX3Njcm9sbGJhclBhaW50ZXJEZWxlZ2F0ZS5nZXQoKSBzY3JvbGxBbmltYXRvckRlc3Ryb3ll
ZF07CkBAIC02MDAsNyArNjAwLDcgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6aW1tZWRpYXRl
U2Nyb2xsVAogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpub3RpZnlQb3NpdGlvbkNoYW5nZWQo
KQogewotI2lmIFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikKKyNpZiBVU0UoU0NST0xMQkFSX1BB
SU5URVIpCiAgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgY29udGVudEFy
ZWFTY3JvbGxlZF07CiAjZW5kaWYKICAgICBTY3JvbGxBbmltYXRvcjo6bm90aWZ5UG9zaXRpb25D
aGFuZ2VkKCk7CkBAIC02MDgsODUgKzYwOCw4NSBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpu
b3RpZnlQb3NpdGlvbkNoCiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmNvbnRlbnRBcmVhV2ls
bFBhaW50KCkgY29uc3QKIHsKLSNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCisjaWYgVVNF
KFNDUk9MTEJBUl9QQUlOVEVSKQogICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdl
dCgpIGNvbnRlbnRBcmVhV2lsbERyYXddOwogI2VuZGlmCiB9CiAKIHZvaWQgU2Nyb2xsQW5pbWF0
b3JNYWM6Om1vdXNlRW50ZXJlZENvbnRlbnRBcmVhKCkgY29uc3QKIHsKLSNpZiBVU0UoV0tfU0NS
T0xMQkFSX1BBSU5URVIpCisjaWYgVVNFKFNDUk9MTEJBUl9QQUlOVEVSKQogICAgIFttX3Njcm9s
bGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIG1vdXNlRW50ZXJlZENvbnRlbnRBcmVhXTsKICNl
bmRpZgogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjptb3VzZUV4aXRlZENvbnRlbnRBcmVh
KCkgY29uc3QKIHsKLSNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCisjaWYgVVNFKFNDUk9M
TEJBUl9QQUlOVEVSKQogICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIG1v
dXNlRXhpdGVkQ29udGVudEFyZWFdOwogI2VuZGlmCiB9CiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JN
YWM6Om1vdXNlTW92ZWRJbkNvbnRlbnRBcmVhKCkgY29uc3QKIHsKLSNpZiBVU0UoV0tfU0NST0xM
QkFSX1BBSU5URVIpCisjaWYgVVNFKFNDUk9MTEJBUl9QQUlOVEVSKQogICAgIFttX3Njcm9sbGJh
clBhaW50ZXJDb250cm9sbGVyLmdldCgpIG1vdXNlTW92ZWRJbkNvbnRlbnRBcmVhXTsKICNlbmRp
ZgogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjp3aWxsU3RhcnRMaXZlUmVzaXplKCkKIHsK
LSNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCisjaWYgVVNFKFNDUk9MTEJBUl9QQUlOVEVS
KQogICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIHN0YXJ0TGl2ZVJlc2l6
ZV07CiAjZW5kaWYKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6Y29udGVudHNSZXNpemVk
KCkgY29uc3QKIHsKLSNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCisjaWYgVVNFKFNDUk9M
TEJBUl9QQUlOVEVSKQogICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIGNv
bnRlbnRBcmVhRGlkUmVzaXplXTsKICNlbmRpZgogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFj
Ojp3aWxsRW5kTGl2ZVJlc2l6ZSgpCiB7Ci0jaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQor
I2lmIFVTRShTQ1JPTExCQVJfUEFJTlRFUikKICAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJv
bGxlci5nZXQoKSBlbmRMaXZlUmVzaXplXTsKICNlbmRpZgogfQogCiB2b2lkIFNjcm9sbEFuaW1h
dG9yTWFjOjpjb250ZW50QXJlYURpZFNob3coKSBjb25zdAogewotI2lmIFVTRShXS19TQ1JPTExC
QVJfUEFJTlRFUikKKyNpZiBVU0UoU0NST0xMQkFSX1BBSU5URVIpCiAgICAgW21fc2Nyb2xsYmFy
UGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgd2luZG93T3JkZXJlZEluXTsKICNlbmRpZgogfQogCiB2
b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpjb250ZW50QXJlYURpZEhpZGUoKSBjb25zdAogewotI2lm
IFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikKKyNpZiBVU0UoU0NST0xMQkFSX1BBSU5URVIpCiAg
ICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgd2luZG93T3JkZXJlZE91dF07
CiAjZW5kaWYKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6ZGlkQmVnaW5TY3JvbGxHZXN0
dXJlKCkgY29uc3QKIHsKLSNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCisjaWYgVVNFKFND
Uk9MTEJBUl9QQUlOVEVSKQogICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgp
IGJlZ2luU2Nyb2xsR2VzdHVyZV07CiAjZW5kaWYKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRvck1h
Yzo6ZGlkRW5kU2Nyb2xsR2VzdHVyZSgpIGNvbnN0CiB7Ci0jaWYgVVNFKFdLX1NDUk9MTEJBUl9Q
QUlOVEVSKQorI2lmIFVTRShTQ1JPTExCQVJfUEFJTlRFUikKICAgICBbbV9zY3JvbGxiYXJQYWlu
dGVyQ29udHJvbGxlci5nZXQoKSBlbmRTY3JvbGxHZXN0dXJlXTsKICNlbmRpZgogfQogCiB2b2lk
IFNjcm9sbEFuaW1hdG9yTWFjOjpkaWRBZGRWZXJ0aWNhbFNjcm9sbGJhcihTY3JvbGxiYXIqIHNj
cm9sbGJhcikKIHsKLSNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCi0gICAgV0tTY3JvbGxi
YXJQYWludGVyUmVmIHBhaW50ZXIgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpTY3JvbGxiYXJUaGVt
ZU1hYyo+KFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lOjpuYXRpdmVUaGVtZSgpKS0+cGFpbnRlckZv
clNjcm9sbGJhcihzY3JvbGxiYXIpOworI2lmIFVTRShTQ1JPTExCQVJfUEFJTlRFUikKKyAgICBT
Y3JvbGxiYXJQYWludGVyIHBhaW50ZXIgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpTY3JvbGxiYXJU
aGVtZU1hYyo+KFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lOjpuYXRpdmVUaGVtZSgpKS0+cGFpbnRl
ckZvclNjcm9sbGJhcihzY3JvbGxiYXIpOwogICAgIFtwYWludGVyIHNldERlbGVnYXRlOm1fc2Ny
b2xsYmFyUGFpbnRlckRlbGVnYXRlLmdldCgpXTsKICAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29u
dHJvbGxlci5nZXQoKSBzZXRWZXJ0aWNhbFNjcm9sbGVySW1wOnBhaW50ZXJdOwogICAgIGlmIChz
Y3JvbGxhYmxlQXJlYSgpLT5pbkxpdmVSZXNpemUoKSkKQEAgLTY5OCw4ICs2OTgsOCBAQCB2b2lk
IFNjcm9sbEFuaW1hdG9yTWFjOjpkaWRBZGRWZXJ0aWNhbFNjCiAKIHZvaWQgU2Nyb2xsQW5pbWF0
b3JNYWM6OndpbGxSZW1vdmVWZXJ0aWNhbFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhcikK
IHsKLSNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCi0gICAgV0tTY3JvbGxiYXJQYWludGVy
UmVmIHBhaW50ZXIgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYyo+KFdl
YkNvcmU6OlNjcm9sbGJhclRoZW1lOjpuYXRpdmVUaGVtZSgpKS0+cGFpbnRlckZvclNjcm9sbGJh
cihzY3JvbGxiYXIpOworI2lmIFVTRShTQ1JPTExCQVJfUEFJTlRFUikKKyAgICBTY3JvbGxiYXJQ
YWludGVyIHBhaW50ZXIgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYyo+
KFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lOjpuYXRpdmVUaGVtZSgpKS0+cGFpbnRlckZvclNjcm9s
bGJhcihzY3JvbGxiYXIpOwogICAgIFtwYWludGVyIHNldERlbGVnYXRlOm5pbF07CiAgICAgW21f
c2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgc2V0VmVydGljYWxTY3JvbGxlckltcDpu
aWxdOwogI2Vsc2UKQEAgLTcwOSw4ICs3MDksOCBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjp3
aWxsUmVtb3ZlVmVydGljCiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmRpZEFkZEhvcml6b250
YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCiB7Ci0jaWYgVVNFKFdLX1NDUk9MTEJB
Ul9QQUlOVEVSKQotICAgIFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBwYWludGVyID0gc3RhdGljX2Nh
c3Q8V2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVNYWMqPihXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZTo6
bmF0aXZlVGhlbWUoKSktPnBhaW50ZXJGb3JTY3JvbGxiYXIoc2Nyb2xsYmFyKTsKKyNpZiBVU0Uo
U0NST0xMQkFSX1BBSU5URVIpCisgICAgU2Nyb2xsYmFyUGFpbnRlciBwYWludGVyID0gc3RhdGlj
X2Nhc3Q8V2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVNYWMqPihXZWJDb3JlOjpTY3JvbGxiYXJUaGVt
ZTo6bmF0aXZlVGhlbWUoKSktPnBhaW50ZXJGb3JTY3JvbGxiYXIoc2Nyb2xsYmFyKTsKICAgICBb
cGFpbnRlciBzZXREZWxlZ2F0ZTptX3Njcm9sbGJhclBhaW50ZXJEZWxlZ2F0ZS5nZXQoKV07CiAg
ICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgc2V0SG9yaXpvbnRhbFNjcm9s
bGVySW1wOnBhaW50ZXJdOwogICAgIGlmIChzY3JvbGxhYmxlQXJlYSgpLT5pbkxpdmVSZXNpemUo
KSkKQEAgLTcyMiw4ICs3MjIsOCBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpkaWRBZGRIb3Jp
em9udGFsCiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OndpbGxSZW1vdmVIb3Jpem9udGFsU2Ny
b2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyKQogewotI2lmIFVTRShXS19TQ1JPTExCQVJfUEFJ
TlRFUikKLSAgICBXS1Njcm9sbGJhclBhaW50ZXJSZWYgcGFpbnRlciA9IHN0YXRpY19jYXN0PFdl
YkNvcmU6OlNjcm9sbGJhclRoZW1lTWFjKj4oV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWU6Om5hdGl2
ZVRoZW1lKCkpLT5wYWludGVyRm9yU2Nyb2xsYmFyKHNjcm9sbGJhcik7CisjaWYgVVNFKFNDUk9M
TEJBUl9QQUlOVEVSKQorICAgIFNjcm9sbGJhclBhaW50ZXIgcGFpbnRlciA9IHN0YXRpY19jYXN0
PFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lTWFjKj4oV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWU6Om5h
dGl2ZVRoZW1lKCkpLT5wYWludGVyRm9yU2Nyb2xsYmFyKHNjcm9sbGJhcik7CiAgICAgW3BhaW50
ZXIgc2V0RGVsZWdhdGU6bmlsXTsKICAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5n
ZXQoKSBzZXRIb3Jpem9udGFsU2Nyb2xsZXJJbXA6bmlsXTsKICNlbHNlCkBAIC03MzUsNyArNzM1
LDcgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6Y2FuY2VsQW5pbWF0aW9ucwogewogICAgIG1f
aGF2ZVNjcm9sbGVkU2luY2VQYWdlTG9hZCA9IGZhbHNlOwogCi0jaWYgVVNFKFdLX1NDUk9MTEJB
Ul9QQUlOVEVSKQorI2lmIFVTRShTQ1JPTExCQVJfUEFJTlRFUikKICAgICBpZiAoc2Nyb2xsYmFy
UGFpbnRUaW1lcklzQWN0aXZlKCkpCiAgICAgICAgIHN0b3BTY3JvbGxiYXJQYWludFRpbWVyKCk7
CiAgICAgW21fc2Nyb2xsYmFyUGFpbnRlckRlbGVnYXRlLmdldCgpIGNhbmNlbEFuaW1hdGlvbnNd
OwpAQCAtMTIyMiwxMyArMTIyMiwxMyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpzbmFwUnVi
YmVyQmFuZFRpCiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OnNldElzQWN0aXZlKCkKIHsKLSNp
ZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCisjaWYgVVNFKFNDUk9MTEJBUl9QQUlOVEVSKQog
ICAgIGlmIChuZWVkc1Njcm9sbGVyU3R5bGVVcGRhdGUoKSkKICAgICAgICAgdXBkYXRlU2Nyb2xs
ZXJTdHlsZSgpOwogI2VuZGlmCiB9CiAKLSNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCisj
aWYgVVNFKFNDUk9MTEJBUl9QQUlOVEVSKQogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6dXBkYXRl
U2Nyb2xsZXJTdHlsZSgpCiB7CiAgICAgaWYgKCFzY3JvbGxhYmxlQXJlYSgpLT5pc09uQWN0aXZl
UGFnZSgpKSB7CkBAIC0xMjQyLDggKzEyNDIsOCBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjp1
cGRhdGVTY3JvbGxlclN0CiAgICAgaWYgKFNjcm9sbGJhciogdmVydGljYWxTY3JvbGxiYXIgPSBz
Y3JvbGxhYmxlQXJlYSgpLT52ZXJ0aWNhbFNjcm9sbGJhcigpKSB7CiAgICAgICAgIHZlcnRpY2Fs
U2Nyb2xsYmFyLT5pbnZhbGlkYXRlKCk7CiAKLSAgICAgICAgV0tTY3JvbGxiYXJQYWludGVyUmVm
IG9sZFZlcnRpY2FsUGFpbnRlciA9IFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgp
IHZlcnRpY2FsU2Nyb2xsZXJJbXBdOwotICAgICAgICBXS1Njcm9sbGJhclBhaW50ZXJSZWYgbmV3
VmVydGljYWxQYWludGVyID0gW05TQ2xhc3NGcm9tU3RyaW5nKEAiTlNTY3JvbGxlckltcCIpIHNj
cm9sbGVySW1wV2l0aFN0eWxlOm5ld1N0eWxlIAorICAgICAgICBTY3JvbGxiYXJQYWludGVyIG9s
ZFZlcnRpY2FsUGFpbnRlciA9IFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIHZl
cnRpY2FsU2Nyb2xsZXJJbXBdOworICAgICAgICBTY3JvbGxiYXJQYWludGVyIG5ld1ZlcnRpY2Fs
UGFpbnRlciA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIk5TU2Nyb2xsZXJJbXAiKSBzY3JvbGxlcklt
cFdpdGhTdHlsZTpuZXdTdHlsZSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xT
aXplOihOU0NvbnRyb2xTaXplKXZlcnRpY2FsU2Nyb2xsYmFyLT5jb250cm9sU2l6ZSgpIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaG9yaXpvbnRhbDpOTyAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcGxhY2luZ1Njcm9sbGVySW1wOm9sZFZlcnRpY2FsUGFpbnRlcl07CkBAIC0x
MjYwLDggKzEyNjAsOCBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjp1cGRhdGVTY3JvbGxlclN0
CiAgICAgaWYgKFNjcm9sbGJhciogaG9yaXpvbnRhbFNjcm9sbGJhciA9IHNjcm9sbGFibGVBcmVh
KCktPmhvcml6b250YWxTY3JvbGxiYXIoKSkgewogICAgICAgICBob3Jpem9udGFsU2Nyb2xsYmFy
LT5pbnZhbGlkYXRlKCk7CiAKLSAgICAgICAgV0tTY3JvbGxiYXJQYWludGVyUmVmIG9sZEhvcml6
b250YWxQYWludGVyID0gW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgaG9yaXpv
bnRhbFNjcm9sbGVySW1wXTsKLSAgICAgICAgV0tTY3JvbGxiYXJQYWludGVyUmVmIG5ld0hvcml6
b250YWxQYWludGVyID0gW05TQ2xhc3NGcm9tU3RyaW5nKEAiTlNTY3JvbGxlckltcCIpIHNjcm9s
bGVySW1wV2l0aFN0eWxlOm5ld1N0eWxlIAorICAgICAgICBTY3JvbGxiYXJQYWludGVyIG9sZEhv
cml6b250YWxQYWludGVyID0gW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgaG9y
aXpvbnRhbFNjcm9sbGVySW1wXTsKKyAgICAgICAgU2Nyb2xsYmFyUGFpbnRlciBuZXdIb3Jpem9u
dGFsUGFpbnRlciA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIk5TU2Nyb2xsZXJJbXAiKSBzY3JvbGxl
ckltcFdpdGhTdHlsZTpuZXdTdHlsZSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRy
b2xTaXplOihOU0NvbnRyb2xTaXplKWhvcml6b250YWxTY3JvbGxiYXItPmNvbnRyb2xTaXplKCkg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3Jpem9udGFsOllFUyAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcGxhY2luZ1Njcm9sbGVySW1wOm9sZEhvcml6b250YWxQYWludGVy
XTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxWaWV3TWFjLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxWaWV3TWFjLm1t
CShyZXZpc2lvbiA5MzQxOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxW
aWV3TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMDQsNyArMjA0LDcgQEAgYm9vbCBTY3JvbGxW
aWV3OjpwbGF0Zm9ybUlzT2Zmc2NyZWVuKCkgYwogICAgIHJldHVybiAhW3BsYXRmb3JtV2lkZ2V0
KCkgd2luZG93XSB8fCAhW1twbGF0Zm9ybVdpZGdldCgpIHdpbmRvd10gaXNWaXNpYmxlXTsKIH0K
IAotI2lmIFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikKKyNpZiBVU0UoU0NST0xMQkFSX1BBSU5U
RVIpCiBzdGF0aWMgaW5saW5lIE5TU2Nyb2xsZXJLbm9iU3R5bGUgdG9OU1Njcm9sbGVyS25vYlN0
eWxlKFNjcm9sbGJhck92ZXJsYXlTdHlsZSBzdHlsZSkKIHsKICAgICBzd2l0Y2ggKHN0eWxlKSB7
CkBAIC0yMjAsNyArMjIwLDcgQEAgc3RhdGljIGlubGluZSBOU1Njcm9sbGVyS25vYlN0eWxlIHRv
TlNTYwogCiB2b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtU2V0U2Nyb2xsYmFyT3ZlcmxheVN0eWxl
KFNjcm9sbGJhck92ZXJsYXlTdHlsZSBvdmVybGF5U3R5bGUpCiB7Ci0jaWYgVVNFKFdLX1NDUk9M
TEJBUl9QQUlOVEVSKQorI2lmIFVTRShTQ1JPTExCQVJfUEFJTlRFUikKICAgICBbc2Nyb2xsVmll
dygpIHNldFNjcm9sbGVyS25vYlN0eWxlOnRvTlNTY3JvbGxlcktub2JTdHlsZShvdmVybGF5U3R5
bGUpXTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG92ZXJsYXlTdHlsZSk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaAkocmV2aXNp
b24gOTM0MTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVN
YWMuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsOCArMjgsOCBAQAogCiAjaW5jbHVkZSAiU2Nyb2xs
YmFyVGhlbWVDb21wb3NpdGUuaCIKIAotI2lmIFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikKLXR5
cGVkZWYgaWQgV0tTY3JvbGxiYXJQYWludGVyUmVmOworI2lmIFVTRShTQ1JPTExCQVJfUEFJTlRF
UikKK3R5cGVkZWYgaWQgU2Nyb2xsYmFyUGFpbnRlcjsKICNlbmRpZgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC01OSw5ICs1OSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0
ZXJTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJTY3Jv
bGxiYXIoU2Nyb2xsYmFyKik7CiAKLSNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCi0gICAg
dm9pZCBzZXROZXdQYWludGVyRm9yU2Nyb2xsYmFyKFNjcm9sbGJhciosIFdLU2Nyb2xsYmFyUGFp
bnRlclJlZik7Ci0gICAgV0tTY3JvbGxiYXJQYWludGVyUmVmIHBhaW50ZXJGb3JTY3JvbGxiYXIo
U2Nyb2xsYmFyKik7CisjaWYgVVNFKFNDUk9MTEJBUl9QQUlOVEVSKQorICAgIHZvaWQgc2V0TmV3
UGFpbnRlckZvclNjcm9sbGJhcihTY3JvbGxiYXIqLCBTY3JvbGxiYXJQYWludGVyKTsKKyAgICBT
Y3JvbGxiYXJQYWludGVyIHBhaW50ZXJGb3JTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAjZW5kaWYK
IAogcHJvdGVjdGVkOgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJh
clRoZW1lTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
Y3JvbGxiYXJUaGVtZU1hYy5tbQkocmV2aXNpb24gOTM0MTgpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ1LDgg
KzQ1LDggQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotI2lmIFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikKLXR5cGVkZWYgSGFzaE1hcDxTY3JvbGxi
YXIqLCBSZXRhaW5QdHI8V0tTY3JvbGxiYXJQYWludGVyUmVmPiA+IFNjcm9sbGJhclBhaW50ZXJN
YXA7CisjaWYgVVNFKFNDUk9MTEJBUl9QQUlOVEVSKQordHlwZWRlZiBIYXNoTWFwPFNjcm9sbGJh
ciosIFJldGFpblB0cjxTY3JvbGxiYXJQYWludGVyPiA+IFNjcm9sbGJhclBhaW50ZXJNYXA7CiAj
ZWxzZQogdHlwZWRlZiBIYXNoU2V0PFNjcm9sbGJhcio+IFNjcm9sbGJhclBhaW50ZXJNYXA7CiAj
ZW5kaWYKQEAgLTgwLDcgKzgwLDcgQEAgKyAodm9pZClhcHBlYXJhbmNlUHJlZnNDaGFuZ2VkOihO
U05vdGlmaQogICAgICAgICByZXR1cm47CiAgICAgU2Nyb2xsYmFyUGFpbnRlck1hcDo6aXRlcmF0
b3IgZW5kID0gc2Nyb2xsYmFyTWFwKCktPmVuZCgpOwogICAgIGZvciAoU2Nyb2xsYmFyUGFpbnRl
ck1hcDo6aXRlcmF0b3IgaXQgPSBzY3JvbGxiYXJNYXAoKS0+YmVnaW4oKTsgaXQgIT0gZW5kOyAr
K2l0KSB7Ci0jaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQorI2lmIFVTRShTQ1JPTExCQVJf
UEFJTlRFUikKICAgICAgICAgaXQtPmZpcnN0LT5zdHlsZUNoYW5nZWQoKTsKICAgICAgICAgaXQt
PmZpcnN0LT5pbnZhbGlkYXRlKCk7CiAjZWxzZQpAQCAtMTE4LDcgKzExOCw3IEBAIHN0YXRpYyBp
bnQgY1JlYWxCdXR0b25MZW5ndGhbXSA9IHsgMjgsIDIKIHN0YXRpYyBpbnQgY0J1dHRvbkhpdElu
c2V0W10gPSB7IDMsIDIgfTsKIC8vIGNSZWFsQnV0dG9uTGVuZ3RoIC0gY0J1dHRvbkluc2V0CiBz
dGF0aWMgaW50IGNCdXR0b25MZW5ndGhbXSA9IHsgMTQsIDEwIH07Ci0jaWYgIVVTRShXS19TQ1JP
TExCQVJfUEFJTlRFUikKKyNpZiAhVVNFKFNDUk9MTEJBUl9QQUlOVEVSKQogc3RhdGljIGludCBj
U2Nyb2xsYmFyVGhpY2tuZXNzW10gPSB7IDE1LCAxMSB9Owogc3RhdGljIGludCBjQnV0dG9uSW5z
ZXRbXSA9IHsgMTQsIDExIH07CiBzdGF0aWMgaW50IGNUaHVtYk1pbkxlbmd0aFtdID0geyAyNiwg
MjAgfTsKQEAgLTEzMSw3ICsxMzEsNyBAQCBzdGF0aWMgZmxvYXQgZ0luaXRpYWxCdXR0b25EZWxh
eSA9IDAuNWY7CiBzdGF0aWMgZmxvYXQgZ0F1dG9zY3JvbGxCdXR0b25EZWxheSA9IDAuMDVmOwog
c3RhdGljIGJvb2wgZ0p1bXBPblRyYWNrQ2xpY2sgPSBmYWxzZTsKIAotI2lmIFVTRShXS19TQ1JP
TExCQVJfUEFJTlRFUikKKyNpZiBVU0UoU0NST0xMQkFSX1BBSU5URVIpCiBzdGF0aWMgU2Nyb2xs
YmFyQnV0dG9uc1BsYWNlbWVudCBnQnV0dG9uUGxhY2VtZW50ID0gU2Nyb2xsYmFyQnV0dG9uc05v
bmU7CiAjZWxzZQogc3RhdGljIFNjcm9sbGJhckJ1dHRvbnNQbGFjZW1lbnQgZ0J1dHRvblBsYWNl
bWVudCA9IFNjcm9sbGJhckJ1dHRvbnNEb3VibGVFbmQ7CkBAIC0xMzksNyArMTM5LDcgQEAgc3Rh
dGljIFNjcm9sbGJhckJ1dHRvbnNQbGFjZW1lbnQgZ0J1dHRvbgogCiBzdGF0aWMgdm9pZCB1cGRh
dGVBcnJvd1BsYWNlbWVudCgpCiB7Ci0jaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQorI2lm
IFVTRShTQ1JPTExCQVJfUEFJTlRFUikKICAgICByZXR1cm47CiAjZW5kaWYKICAgICBOU1N0cmlu
ZyAqYnV0dG9uUGxhY2VtZW50ID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0
c10gb2JqZWN0Rm9yS2V5OkAiQXBwbGVTY3JvbGxCYXJWYXJpYW50Il07CkBAIC0xNTcsOSArMTU3
LDkgQEAgc3RhdGljIHZvaWQgdXBkYXRlQXJyb3dQbGFjZW1lbnQoKQogCiB2b2lkIFNjcm9sbGJh
clRoZW1lTWFjOjpyZWdpc3RlclNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhcikKIHsKLSNp
ZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCisjaWYgVVNFKFNDUk9MTEJBUl9QQUlOVEVSKQog
ICAgIGJvb2wgaXNIb3Jpem9udGFsID0gc2Nyb2xsYmFyLT5vcmllbnRhdGlvbigpID09IEhvcml6
b250YWxTY3JvbGxiYXI7Ci0gICAgV0tTY3JvbGxiYXJQYWludGVyUmVmIHNjcm9sbGJhclBhaW50
ZXIgPSBbTlNDbGFzc0Zyb21TdHJpbmcoQCJOU1Njcm9sbGVySW1wIikgc2Nyb2xsZXJJbXBXaXRo
U3R5bGU6d2tSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSBjb250cm9sU2l6ZTooTlNDb250cm9s
U2l6ZSlzY3JvbGxiYXItPmNvbnRyb2xTaXplKCkgaG9yaXpvbnRhbDppc0hvcml6b250YWwgcmVw
bGFjaW5nU2Nyb2xsZXJJbXA6bmlsXTsKKyAgICBTY3JvbGxiYXJQYWludGVyIHNjcm9sbGJhclBh
aW50ZXIgPSBbTlNDbGFzc0Zyb21TdHJpbmcoQCJOU1Njcm9sbGVySW1wIikgc2Nyb2xsZXJJbXBX
aXRoU3R5bGU6d2tSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSBjb250cm9sU2l6ZTooTlNDb250
cm9sU2l6ZSlzY3JvbGxiYXItPmNvbnRyb2xTaXplKCkgaG9yaXpvbnRhbDppc0hvcml6b250YWwg
cmVwbGFjaW5nU2Nyb2xsZXJJbXA6bmlsXTsKICAgICBzY3JvbGxiYXJNYXAoKS0+YWRkKHNjcm9s
bGJhciwgc2Nyb2xsYmFyUGFpbnRlcik7CiAgICAgdXBkYXRlRW5hYmxlZFN0YXRlKHNjcm9sbGJh
cik7CiAgICAgdXBkYXRlU2Nyb2xsYmFyT3ZlcmxheVN0eWxlKHNjcm9sbGJhcik7CkBAIC0xNzMs
MTUgKzE3MywxNSBAQCB2b2lkIFNjcm9sbGJhclRoZW1lTWFjOjp1bnJlZ2lzdGVyU2Nyb2xsCiAg
ICAgc2Nyb2xsYmFyTWFwKCktPnJlbW92ZShzY3JvbGxiYXIpOwogfQogCi0jaWYgVVNFKFdLX1ND
Uk9MTEJBUl9QQUlOVEVSKQotdm9pZCBTY3JvbGxiYXJUaGVtZU1hYzo6c2V0TmV3UGFpbnRlckZv
clNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhciwgV0tTY3JvbGxiYXJQYWludGVyUmVmIG5l
d1BhaW50ZXIpCisjaWYgVVNFKFNDUk9MTEJBUl9QQUlOVEVSKQordm9pZCBTY3JvbGxiYXJUaGVt
ZU1hYzo6c2V0TmV3UGFpbnRlckZvclNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhciwgU2Ny
b2xsYmFyUGFpbnRlciBuZXdQYWludGVyKQogewogICAgIHNjcm9sbGJhck1hcCgpLT5zZXQoc2Ny
b2xsYmFyLCBuZXdQYWludGVyKTsKICAgICB1cGRhdGVFbmFibGVkU3RhdGUoc2Nyb2xsYmFyKTsK
ICAgICB1cGRhdGVTY3JvbGxiYXJPdmVybGF5U3R5bGUoc2Nyb2xsYmFyKTsKIH0KIAotV0tTY3Jv
bGxiYXJQYWludGVyUmVmIFNjcm9sbGJhclRoZW1lTWFjOjpwYWludGVyRm9yU2Nyb2xsYmFyKFNj
cm9sbGJhciogc2Nyb2xsYmFyKQorU2Nyb2xsYmFyUGFpbnRlciBTY3JvbGxiYXJUaGVtZU1hYzo6
cGFpbnRlckZvclNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhcikKIHsKICAgICByZXR1cm4g
c2Nyb2xsYmFyTWFwKCktPmdldChzY3JvbGxiYXIpLmdldCgpOwogfQpAQCAtMjEzLDggKzIxMyw4
IEBAIHZvaWQgU2Nyb2xsYmFyVGhlbWVNYWM6OnByZWZlcmVuY2VzQ2hhbmcKIAogaW50IFNjcm9s
bGJhclRoZW1lTWFjOjpzY3JvbGxiYXJUaGlja25lc3MoU2Nyb2xsYmFyQ29udHJvbFNpemUgY29u
dHJvbFNpemUpCiB7Ci0jaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQotICAgIFdLU2Nyb2xs
YmFyUGFpbnRlclJlZiBzY3JvbGxiYXJQYWludGVyID0gKFdLU2Nyb2xsYmFyUGFpbnRlclJlZilb
TlNDbGFzc0Zyb21TdHJpbmcoQCJOU1Njcm9sbGVySW1wIikgc2Nyb2xsZXJJbXBXaXRoU3R5bGU6
d2tSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSBjb250cm9sU2l6ZTpjb250cm9sU2l6ZSBob3Jp
em9udGFsOk5PIHJlcGxhY2luZ1Njcm9sbGVySW1wOm5pbF07CisjaWYgVVNFKFNDUk9MTEJBUl9Q
QUlOVEVSKQorICAgIFNjcm9sbGJhclBhaW50ZXIgc2Nyb2xsYmFyUGFpbnRlciA9IFtOU0NsYXNz
RnJvbVN0cmluZyhAIk5TU2Nyb2xsZXJJbXAiKSBzY3JvbGxlckltcFdpdGhTdHlsZTp3a1JlY29t
bWVuZGVkU2Nyb2xsZXJTdHlsZSgpIGNvbnRyb2xTaXplOmNvbnRyb2xTaXplIGhvcml6b250YWw6
Tk8gcmVwbGFjaW5nU2Nyb2xsZXJJbXA6bmlsXTsKICAgICByZXR1cm4gW3Njcm9sbGJhclBhaW50
ZXIgdHJhY2tCb3hXaWR0aF07CiAjZWxzZQogICAgIHJldHVybiBjU2Nyb2xsYmFyVGhpY2tuZXNz
W2NvbnRyb2xTaXplXTsKQEAgLTIyMyw3ICsyMjMsNyBAQCBpbnQgU2Nyb2xsYmFyVGhlbWVNYWM6
OnNjcm9sbGJhclRoaWNrbmVzCiAKIGJvb2wgU2Nyb2xsYmFyVGhlbWVNYWM6OnVzZXNPdmVybGF5
U2Nyb2xsYmFycygpIGNvbnN0CiB7Ci0jaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQorI2lm
IFVTRShTQ1JPTExCQVJfUEFJTlRFUikKICAgICByZXR1cm4gd2tSZWNvbW1lbmRlZFNjcm9sbGVy
U3R5bGUoKSA9PSBOU1Njcm9sbGVyU3R5bGVPdmVybGF5OwogI2Vsc2UKICAgICByZXR1cm4gZmFs
c2U7CkBAIC0yMzIsOCArMjMyLDggQEAgYm9vbCBTY3JvbGxiYXJUaGVtZU1hYzo6dXNlc092ZXJs
YXlTY3JvbAogCiB2b2lkIFNjcm9sbGJhclRoZW1lTWFjOjp1cGRhdGVTY3JvbGxiYXJPdmVybGF5
U3R5bGUoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCiB7Ci0jaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlO
VEVSKQotICAgIFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBwYWludGVyID0gcGFpbnRlckZvclNjcm9s
bGJhcihzY3JvbGxiYXIpOworI2lmIFVTRShTQ1JPTExCQVJfUEFJTlRFUikKKyAgICBTY3JvbGxi
YXJQYWludGVyIHBhaW50ZXIgPSBwYWludGVyRm9yU2Nyb2xsYmFyKHNjcm9sbGJhcik7CiAgICAg
c3dpdGNoIChzY3JvbGxiYXItPnNjcm9sbGFibGVBcmVhKCktPnNjcm9sbGJhck92ZXJsYXlTdHls
ZSgpKSB7CiAgICAgY2FzZSBTY3JvbGxiYXJPdmVybGF5U3R5bGVEZWZhdWx0OgogICAgICAgICBb
cGFpbnRlciBzZXRLbm9iU3R5bGU6TlNTY3JvbGxlcktub2JTdHlsZURlZmF1bHRdOwpAQCAtMjc2
LDggKzI3Niw4IEBAIGJvb2wgU2Nyb2xsYmFyVGhlbWVNYWM6Omhhc0J1dHRvbnMoU2Nyb2wKIGJv
b2wgU2Nyb2xsYmFyVGhlbWVNYWM6Omhhc1RodW1iKFNjcm9sbGJhciogc2Nyb2xsYmFyKQogewog
ICAgIGludCBtaW5MZW5ndGhGb3JUaHVtYjsKLSNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIp
Ci0gICAgV0tTY3JvbGxiYXJQYWludGVyUmVmIHBhaW50ZXIgPSBzY3JvbGxiYXJNYXAoKS0+Z2V0
KHNjcm9sbGJhcikuZ2V0KCk7CisjaWYgVVNFKFNDUk9MTEJBUl9QQUlOVEVSKQorICAgIFNjcm9s
bGJhclBhaW50ZXIgcGFpbnRlciA9IHNjcm9sbGJhck1hcCgpLT5nZXQoc2Nyb2xsYmFyKS5nZXQo
KTsKICAgICBtaW5MZW5ndGhGb3JUaHVtYiA9IFtwYWludGVyIGtub2JNaW5MZW5ndGhdICsgW3Bh
aW50ZXIgdHJhY2tPdmVybGFwRW5kSW5zZXRdICsgW3BhaW50ZXIga25vYk92ZXJsYXBFbmRJbnNl
dF0KICAgICAgICAgKyAyICogKFtwYWludGVyIHRyYWNrRW5kSW5zZXRdICsgW3BhaW50ZXIga25v
YkVuZEluc2V0XSk7CiAjZWxzZQpAQCAtNDE5LDcgKzQxOSw3IEBAIEludFJlY3QgU2Nyb2xsYmFy
VGhlbWVNYWM6OnRyYWNrUmVjdChTY3IKIAogaW50IFNjcm9sbGJhclRoZW1lTWFjOjptaW5pbXVt
VGh1bWJMZW5ndGgoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCiB7Ci0jaWYgVVNFKFdLX1NDUk9MTEJB
Ul9QQUlOVEVSKQorI2lmIFVTRShTQ1JPTExCQVJfUEFJTlRFUikKICAgICByZXR1cm4gW3Njcm9s
bGJhck1hcCgpLT5nZXQoc2Nyb2xsYmFyKS5nZXQoKSBrbm9iTWluTGVuZ3RoXTsKICNlbHNlCiAg
ICAgcmV0dXJuIGNUaHVtYk1pbkxlbmd0aFtzY3JvbGxiYXItPmNvbnRyb2xTaXplKCldOwpAQCAt
NDYwLDE1ICs0NjAsMTUgQEAgc3RhdGljIGludCBzY3JvbGxiYXJQYXJ0VG9ISVByZXNzZWRTdGF0
ZQogCiB2b2lkIFNjcm9sbGJhclRoZW1lTWFjOjp1cGRhdGVFbmFibGVkU3RhdGUoU2Nyb2xsYmFy
KiBzY3JvbGxiYXIpCiB7Ci0jaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQorI2lmIFVTRShT
Q1JPTExCQVJfUEFJTlRFUikKICAgICBbc2Nyb2xsYmFyTWFwKCktPmdldChzY3JvbGxiYXIpLmdl
dCgpIHNldEVuYWJsZWQ6c2Nyb2xsYmFyLT5lbmFibGVkKCldOwogI2Vsc2UKICAgICBVTlVTRURf
UEFSQU0oc2Nyb2xsYmFyKTsKICNlbmRpZgogfQogCi0jaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlO
VEVSKQotc3RhdGljIHZvaWQgc2Nyb2xsYmFyUGFpbnRlclBhaW50KFdLU2Nyb2xsYmFyUGFpbnRl
clJlZiBzY3JvbGxiYXJQYWludGVyLCBib29sIGVuYWJsZWQsIGRvdWJsZSB2YWx1ZSwgQ0dGbG9h
dCBwcm9wb3J0aW9uLCBDR1JlY3QgZnJhbWVSZWN0KQorI2lmIFVTRShTQ1JPTExCQVJfUEFJTlRF
UikKK3N0YXRpYyB2b2lkIHNjcm9sbGJhclBhaW50ZXJQYWludChTY3JvbGxiYXJQYWludGVyIHNj
cm9sbGJhclBhaW50ZXIsIGJvb2wgZW5hYmxlZCwgZG91YmxlIHZhbHVlLCBDR0Zsb2F0IHByb3Bv
cnRpb24sIENHUmVjdCBmcmFtZVJlY3QpCiB7CiAgICAgW3Njcm9sbGJhclBhaW50ZXIgc2V0RW5h
YmxlZDplbmFibGVkXTsKICAgICBbc2Nyb2xsYmFyUGFpbnRlciBzZXRCb3VuZHNTaXplOiBOU1Np
emVGcm9tQ0dTaXplKGZyYW1lUmVjdC5zaXplKV07CkBAIC00OTMsNyArNDkzLDcgQEAgc3RhdGlj
IHZvaWQgc2Nyb2xsYmFyUGFpbnRlclBhaW50KFdLU2NybwogCiBib29sIFNjcm9sbGJhclRoZW1l
TWFjOjpwYWludChTY3JvbGxiYXIqIHNjcm9sbGJhciwgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
LCBjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0KQogewotI2lmIFVTRShXS19TQ1JPTExCQVJfUEFJ
TlRFUikKKyNpZiBVU0UoU0NST0xMQkFSX1BBSU5URVIpCiAgICAgZmxvYXQgdmFsdWUgPSAwOwog
ICAgIGZsb2F0IG92ZXJoYW5nID0gMDsKIAo=
</data>
<flag name="review"
          id="100448"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>