From 54b73b572b038f0e3d81d965cdf123535b47a2cc Mon Sep 17 00:00:00 2001 From: KHeo Date: Mon, 1 Aug 2022 11:15:49 +0900 Subject: [PATCH 01/12] chore: Intregrate runner packages. --- packages/runner-shared/src/studio/index.js | 4 ++++ packages/runner-shared/src/styles.module.scss.d.ts | 7 ------- 2 files changed, 4 insertions(+), 7 deletions(-) delete mode 100644 packages/runner-shared/src/styles.module.scss.d.ts diff --git a/packages/runner-shared/src/studio/index.js b/packages/runner-shared/src/studio/index.js index 64b5c1b00107..62caf44b6f26 100644 --- a/packages/runner-shared/src/studio/index.js +++ b/packages/runner-shared/src/studio/index.js @@ -1,3 +1,7 @@ +// Studio tests have been removed with v10 update. +// You can find the tests in the PR below. +// @see https://github.com/cypress-io/cypress/pull/9542 + export * from './studio' export * from './studio-modals' diff --git a/packages/runner-shared/src/styles.module.scss.d.ts b/packages/runner-shared/src/styles.module.scss.d.ts deleted file mode 100644 index fd8bc08458a3..000000000000 --- a/packages/runner-shared/src/styles.module.scss.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -// This file is automatically generated. -// Please do not change this file! -interface CssExports { - 'specsList': string; -} -export const cssExports: CssExports; -export default cssExports; From e836b145843c741324ed4366886e94367cdcfe3d Mon Sep 17 00:00:00 2001 From: KHeo Date: Mon, 1 Aug 2022 11:27:14 +0900 Subject: [PATCH 02/12] Remove unnecessary Studio react files. --- packages/runner-shared/src/studio/index.js | 4 - .../src/studio/studio-modals.jsx | 186 ------------------ .../src/studio/studio-modals.scss | 141 ------------- .../src/studio/studio-modals.scss.d.ts | 7 - .../src/studio/studio-modals.spec.jsx | 157 --------------- packages/runner-shared/src/studio/studio.jsx | 139 ------------- .../runner-shared/src/studio/studio.spec.jsx | 156 --------------- 7 files changed, 790 deletions(-) delete mode 100644 packages/runner-shared/src/studio/studio-modals.jsx delete mode 100644 packages/runner-shared/src/studio/studio-modals.scss delete mode 100644 packages/runner-shared/src/studio/studio-modals.scss.d.ts delete mode 100644 packages/runner-shared/src/studio/studio-modals.spec.jsx delete mode 100644 packages/runner-shared/src/studio/studio.jsx delete mode 100644 packages/runner-shared/src/studio/studio.spec.jsx diff --git a/packages/runner-shared/src/studio/index.js b/packages/runner-shared/src/studio/index.js index 62caf44b6f26..22cd071dbb77 100644 --- a/packages/runner-shared/src/studio/index.js +++ b/packages/runner-shared/src/studio/index.js @@ -2,8 +2,4 @@ // You can find the tests in the PR below. // @see https://github.com/cypress-io/cypress/pull/9542 -export * from './studio' - -export * from './studio-modals' - export * from './studio-recorder' diff --git a/packages/runner-shared/src/studio/studio-modals.jsx b/packages/runner-shared/src/studio/studio-modals.jsx deleted file mode 100644 index 26a361651a3e..000000000000 --- a/packages/runner-shared/src/studio/studio-modals.jsx +++ /dev/null @@ -1,186 +0,0 @@ -import { observer } from 'mobx-react' -import React, { Component } from 'react' -import { Dialog } from '@reach/dialog' -import VisuallyHidden from '@reach/visually-hidden' - -import './studio-modals.scss' - -@observer -export class StudioInstructionsModal extends Component { - render () { - return ( - -
-

- - {' '} - Studio - {' '} - BETA -

-
-
- Generate and save commands directly to your test suite by interacting with your app as an end user would. Right click on an element to add an assertion. Studio will track events that generate the following commands: -
-
-
    -
  • -
    .check()
    -
  • -
  • -
    .click()
    -
  • -
  • -
    .select()
    -
  • -
  • -
    .type()
    -
  • -
  • -
    .uncheck()
    -
  • -
-
-
- This feature is currently in Beta and we will be adding more commands and abilities in the future. Your - {' '} - feedback - {' '} - will be highly influential to our team. -
-
-
- -
-
- -
- ) - } -} - -@observer -export class StudioInitModal extends Component { - render () { - return ( - -
-

- - {' '} - Studio - {' '} - BETA -

-
- Studio -
-
-
- Generate Cypress commands by interacting with your site as an end user would. Then, save these commands directly to your test file. -
- -
-
- -
- ) - } - - _close = () => { - this.props.eventManager.studioRecorder.closeInitModal() - this.props.eventManager.studioRecorder.clearRunnableIds() - } - - _start = () => this.props.eventManager.emit('studio:start') -} - -@observer -export class StudioSaveModal extends Component { - state = { - name: '', - } - - render () { - const { name } = this.state - - return ( - -
-

- - {' '} - Save New Test -

-
-
-
- - -
-
- -
-
-
-
- -
- ) - } - - _onInputChange = (e) => { - this.setState({ name: e.target.value }) - } - - _save = (e) => { - e.preventDefault() - - const { name } = this.state - - if (!name) return - - this.props.eventManager.studioRecorder.save(name) - } -} - -export const StudioModals = (props) => ( - <> - - - -) diff --git a/packages/runner-shared/src/studio/studio-modals.scss b/packages/runner-shared/src/studio/studio-modals.scss deleted file mode 100644 index 2339f876e513..000000000000 --- a/packages/runner-shared/src/studio/studio-modals.scss +++ /dev/null @@ -1,141 +0,0 @@ -$font-sans: 'Mulish', 'Helvetica Neue', 'Arial', sans-serif; -$open-sans: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; - -.studio-modal { - max-width: 35em; - - .body { - font-family: $font-sans; - margin-bottom: 2em; - margin-top: -0.8em; - - .title { - color: #565554; - font-family: $open-sans; - font-weight: 600; - padding: 0 1em; - - .icon { - color: #3386d4; - margin-right: 5px; - } - - .beta { - color: #959595; - font-weight: 400; - } - } - - .gif { - margin: 15px 0; - width: 100%; - - img { - width: 100%; - } - } - - .content { - .text { - color: #6c6c6c; - padding: 0.5em 1em; - - .text-strong { - color: #565554; - } - - input { - border: 1px solid #9d9ea9; - border-radius: 2px; - box-sizing: border-box; - color: #6c6c6c; - display: block; - font-size: 16px; - font-family: $font-sans; - margin-top: 8px; - padding: 4px; - width: 100%; - - &:focus { - outline: none; - } - } - - ul { - font-size: 16px; - line-height: 22px; - text-align: left; - } - } - - .center-box { - display: flex; - justify-content: center; - } - - .btn-main { - background-color: #3386d4; - border-radius: 0.25em; - color: #fff; - font-family: $font-sans; - padding: 0.8em 4em; - margin-top: 1em; - - &:hover { - background: darken(#3386d4, 10%); - } - - &:focus { - outline: none; - } - - &[disabled], - &[disabled]:hover, - &[disabled]:active { - background-color: #3386d4; - opacity: 0.5; - } - } - } - - .center { - text-align: center; - } - } - - .close-button { - color: #959595; - } - - &.studio-save-modal { - max-width: 25em; - min-width: 20em; - - .body { - margin-bottom: 1em; - - .content .text { - border-top: 1px solid #e1e2e4; - font-size: 16px; - margin-top: 0.8em; - padding-top: 1em; - } - } - } - - &.studio-instructions-modal { - .body { - margin-bottom: 0; - - .content { - padding-top: 0.5em; - padding-bottom: 0.2em; - } - - button { - font-family: $font-sans; - font-size: 12px; - } - } - } -} diff --git a/packages/runner-shared/src/studio/studio-modals.scss.d.ts b/packages/runner-shared/src/studio/studio-modals.scss.d.ts deleted file mode 100644 index 132b232e8959..000000000000 --- a/packages/runner-shared/src/studio/studio-modals.scss.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -// This file is automatically generated. -// Please do not change this file! -interface CssExports { - -} -export const cssExports: CssExports; -export default cssExports; diff --git a/packages/runner-shared/src/studio/studio-modals.spec.jsx b/packages/runner-shared/src/studio/studio-modals.spec.jsx deleted file mode 100644 index 3bae264f022b..000000000000 --- a/packages/runner-shared/src/studio/studio-modals.spec.jsx +++ /dev/null @@ -1,157 +0,0 @@ -import React from 'react' -import { shallow } from 'enzyme' -import sinon from 'sinon' -import { Dialog } from '@reach/dialog' - -import { createEventManager } from '../../test/utils' -import { StudioModals, StudioInstructionsModal, StudioInitModal, StudioSaveModal } from './studio-modals' - -describe('', () => { - let eventManager - - beforeEach(() => { - eventManager = createEventManager() - sinon.stub(eventManager, 'emit') - }) - - afterEach(() => { - eventManager.studioRecorder.cancel() - - sinon.restore() - }) - - it('renders init and save modals', () => { - const component = shallow() - - expect(component.find(StudioInitModal)).to.exist - expect(component.find(StudioSaveModal)).to.exist - }) - - describe('', () => { - it('passes open prop to dialog', () => { - const component = shallow() - - expect(component.find(Dialog)).to.have.prop('isOpen', false) - - component.setProps({ open: true }) - - expect(component.find(Dialog)).to.have.prop('isOpen', true) - }) - - it('calls close prop on close', () => { - const close = sinon.stub() - const component = shallow() - - component.find('.close-button').simulate('click') - - expect(close).to.be.called - }) - }) - - describe('', () => { - it('is not open by default', () => { - const component = shallow() - - expect(component.find(Dialog)).to.have.prop('isOpen', false) - }) - - it('is open and closes with studio recorder variable', () => { - eventManager.studioRecorder.initModalIsOpen = true - const component = shallow() - - expect(component.find(Dialog)).to.have.prop('isOpen', true) - - eventManager.studioRecorder.closeInitModal() - - expect(component.find(Dialog)).to.have.prop('isOpen', false) - }) - - it('closes and clears studio runnable ids when close is clicked', () => { - sinon.stub(eventManager.studioRecorder, 'clearRunnableIds') - eventManager.studioRecorder.initModalIsOpen = true - const component = shallow() - - component.find('.close-button').simulate('click') - - expect(component.find(Dialog)).to.have.prop('isOpen', false) - expect(eventManager.studioRecorder.initModalIsOpen).to.equal(false) - expect(eventManager.studioRecorder.clearRunnableIds).to.be.called - }) - - it('emits studio:start when start button is clicked', () => { - eventManager.studioRecorder.initModalIsOpen = true - const component = shallow() - - component.find('.btn-main').simulate('click') - - expect(eventManager.emit).to.be.calledWith('studio:start') - }) - }) - - describe('', () => { - it('is not open by default', () => { - const component = shallow() - - expect(component.find(Dialog)).to.have.prop('isOpen', false) - }) - - it('is open and closes with studio recorder variable', () => { - eventManager.studioRecorder.saveModalIsOpen = true - const component = shallow() - - expect(component.find(Dialog)).to.have.prop('isOpen', true) - - eventManager.studioRecorder.closeSaveModal() - - expect(component.find(Dialog)).to.have.prop('isOpen', false) - }) - - it('closes when close is clicked', () => { - eventManager.studioRecorder.saveModalIsOpen = true - const component = shallow() - - component.find('.close-button').simulate('click') - - expect(component.find(Dialog)).to.have.prop('isOpen', false) - expect(eventManager.studioRecorder.saveModalIsOpen).to.equal(false) - }) - - context('form', () => { - beforeEach(() => { - sinon.stub(eventManager.studioRecorder, 'save') - - eventManager.studioRecorder.saveModalIsOpen = true - }) - - it('updates input when typed into', () => { - const component = shallow() - - component.find('input').simulate('change', { target: { value: 'my test name' } }) - - expect(component.find('input')).to.have.prop('value', 'my test name') - }) - - it('calls studio recorder save with inputted text on submit', () => { - const component = shallow() - - component.find('input').simulate('change', { target: { value: 'my test name' } }) - - expect(component.find('.btn-main')).to.have.prop('disabled', false) - - component.find('form').simulate('submit', { preventDefault: () => {} }) - - expect(eventManager.studioRecorder.save).to.be.calledWith('my test name') - }) - - it('disables form when there is no input', () => { - const component = shallow() - - expect(component.find('.btn-main')).to.have.prop('disabled', true) - - component.find('form').simulate('submit', { preventDefault: () => {} }) - - expect(eventManager.studioRecorder.save).not.to.be.called - }) - }) - }) -}) diff --git a/packages/runner-shared/src/studio/studio.jsx b/packages/runner-shared/src/studio/studio.jsx deleted file mode 100644 index 5c8939a63f51..000000000000 --- a/packages/runner-shared/src/studio/studio.jsx +++ /dev/null @@ -1,139 +0,0 @@ -import React, { Component } from 'react' -import { observer } from 'mobx-react' -import Tooltip from '@cypress/react-tooltip' -import cs from 'classnames' - -import { StudioInstructionsModal } from './studio-modals' - -@observer -class Studio extends Component { - state = { - modalOpen: false, - copySuccess: false, - } - - render () { - const { model, hasUrl } = this.props - const { modalOpen, copySuccess } = this.state - - return ( -
- -
- - - - {' '} - Studio - {' '} - Beta -
- - -
- - - - - - - - - - - - -
-
- ) - } - - _showModal = (e) => { - e.preventDefault() - - if (this.props.model.isLoading) return - - this.setState({ modalOpen: true }) - } - - _closeModal = () => { - this.setState({ modalOpen: false }) - } - - _close = () => { - this.props.eventManager.emit('studio:cancel') - } - - _restart = () => { - this.props.model.reset() - this.props.eventManager.emit('restart') - } - - _copy = () => { - if (this.state.copySuccess) return - - this.props.eventManager.emit('studio:copy:to:clipboard', () => { - this.setState({ copySuccess: true }) - }) - } - - _save = () => { - this.props.model.startSave() - } - - _endCopySuccess = () => { - if (this.state.copySuccess) { - this.setState({ copySuccess: false }) - } - } -} - -export { Studio } diff --git a/packages/runner-shared/src/studio/studio.spec.jsx b/packages/runner-shared/src/studio/studio.spec.jsx deleted file mode 100644 index 3e668ce77d3d..000000000000 --- a/packages/runner-shared/src/studio/studio.spec.jsx +++ /dev/null @@ -1,156 +0,0 @@ -import React from 'react' -import { shallow } from 'enzyme' -import sinon from 'sinon' -import Tooltip from '@cypress/react-tooltip' - -import { Studio } from './studio' -import { StudioInstructionsModal } from './studio-modals' -import { createEventManager } from '../../test/utils' - -const createModel = (props) => { - return { - isActive: false, - isLoading: false, - reset: sinon.stub(), - startSave: sinon.stub(), - ...props, - } -} - -describe('', () => { - let eventManager - - beforeEach(() => { - eventManager = createEventManager() - }) - - context('icon', () => { - it('is not active when studio is not active', () => { - const component = shallow() - - expect(component.find('.icon')).not.to.have.className('is-active') - }) - - it('is not active when there is no url', () => { - const component = shallow() - - expect(component.find('.icon')).not.to.have.className('is-active') - }) - - it('is active when studio is active and there is a url', () => { - const component = shallow() - - expect(component.find('.icon')).to.have.className('is-active') - }) - - it('is not active when test has failed', () => { - const component = shallow() - - expect(component.find('.icon')).not.to.have.className('is-active') - }) - }) - - context('header links', () => { - it('does not show modal by default', () => { - const component = shallow() - - expect(component.find(StudioInstructionsModal)).to.have.prop('open', false) - }) - - it('shows model when available commands is clicked', () => { - const component = shallow() - - component.find('.available-commands').simulate('click', { preventDefault: () => {} }) - - expect(component.find(StudioInstructionsModal)).to.have.prop('open', true) - }) - - it('disables available commands link while loading', () => { - const component = shallow() - - expect(component.find('.available-commands')).to.have.className('link-disabled') - - component.find('.available-commands').simulate('click', { preventDefault: () => {} }) - - expect(component.find(StudioInstructionsModal)).to.have.prop('open', false) - }) - - it('disables feedback link while loading', () => { - const component = shallow() - - expect(component.find('.give-feedback')).to.have.className('link-disabled') - expect(component.find('.give-feedback')).not.to.have.prop('href') - }) - }) - - context('controls', () => { - beforeEach(() => { - sinon.stub(eventManager, 'emit') - }) - - afterEach(() => { - sinon.restore() - }) - - it('disables all controls while studio is loading', () => { - const component = shallow() - - expect(component.find('.button-studio-close')).to.have.prop('disabled', true) - expect(component.find('.button-studio-restart')).to.have.prop('disabled', true) - expect(component.find('.button-studio-save')).to.have.prop('disabled', true) - }) - - it('renders tooltips', () => { - const component = shallow() - - expect(component.find(Tooltip).at(0)).to.have.prop('title', 'Close Studio') - expect(component.find(Tooltip).at(1)).to.have.prop('title', 'Restart') - expect(component.find(Tooltip).at(2)).to.have.prop('title', 'Copy Commands to Clipboard') - expect(component.find(Tooltip).at(3)).to.have.prop('title', 'Save Commands') - }) - - it('hides all tooltips while studio is loading', () => { - const component = shallow() - - expect(component.find(Tooltip).at(0)).to.have.prop('visible', false) - expect(component.find(Tooltip).at(1)).to.have.prop('visible', false) - expect(component.find(Tooltip).at(2)).to.have.prop('visible', false) - expect(component.find(Tooltip).at(3)).to.have.prop('visible', false) - }) - - it('emits studio:cancel when close button is clicked', () => { - const component = shallow() - - component.find('.button-studio-close').simulate('click') - - expect(eventManager.emit).to.be.calledWith('studio:cancel') - }) - - it('resets studio recorder and emits restart when restart button is clicked', () => { - const model = createModel({ isActive: true }) - const component = shallow() - - component.find('.button-studio-restart').simulate('click') - - expect(model.reset).to.be.called - expect(eventManager.emit).to.be.calledWith('restart') - }) - - it('starts copy to clipboard process when copy button is clicked', () => { - const component = shallow() - - component.find('.button-studio-copy').simulate('click') - - expect(eventManager.emit).to.be.calledWith('studio:copy:to:clipboard') - }) - - it('starts studio recorder saving when save button is clicked', () => { - const model = createModel({ isActive: true }) - const component = shallow() - - component.find('.button-studio-save').simulate('click') - - expect(model.startSave).to.be.called - }) - }) -}) From 1c4e85e4af9198737a2a53da0e70292d587ed1d6 Mon Sep 17 00:00:00 2001 From: KHeo Date: Mon, 1 Aug 2022 11:34:03 +0900 Subject: [PATCH 03/12] Remove unnecessary gif --- packages/runner-shared/src/static/studio.gif | Bin 395863 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 packages/runner-shared/src/static/studio.gif diff --git a/packages/runner-shared/src/static/studio.gif b/packages/runner-shared/src/static/studio.gif deleted file mode 100644 index d0f7c47cc516efb825215f5fb688594a31148f5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 395863 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

LLr!m4WktU%d|3e9APfEFA zBBAANK6}}o+?R&Q4A|R35ypL`*oLWmL5^bO<{kJco$Lk)fDS*gGd!N%g%C>-0@2X0 z@$g;|5|R@W)4qB|_xG|1{{CNO(`yn2($`FH$XMRIVI_aVMo!ND_l<&rosyD`ijIqh zng6f2iTa<36Z|7R6F)N}FB=mdC$j(_>pP*h!lK+_QoNGVypsRcItfXOiz$jqeh`&X zk(Jj_Ro4BeZDML*WoTljYhPO8To;`upqSuAdiwlBLUE7k{dy z%j=8F>&t&^H~&q$^gpVW{_YO__5N=i)AjYu%?+Fjf)hdi7cvmMQTo4yiQr9>04lL$ zWoElC>T^1szRIl5Kpb-EG|8&$?oa}Di>1D*oZd)Mkq~03>fHWV8s%c0{_4EJL>8lg zG^v{W;Z*J~`%C>b1*6}Ee9>P?*A|ZFNXF9X4%8M+7AWSB`2Dv{Q_1&wPoe)unn|y&^^X)({znSh$bPOs0UV%E z&_ErCRDerC|RjrNb!vj}(;lCos(DTT0Bk=djAQM~`Wg%$A@D+#XJwc^i_?D#^hUd4M6h6b95XT+poqS4B)h`}-|Fospx83B45 zgYi`akJrua%f38D*X^K}wphQAGM9kjscKWiosc{IapQi4$j_cL6)fhlwfIFo@LtMn z@NuWR67TKxg1yDDASa15Jnl^ml?TlL#_gi+<+7_~_9O*lL9F!dw zFZ;N*j?G)DC<3c8r=Y=%trh#0wqJt=4pK-_#2iJA(I>tYY+ZeHyNN^aOFgV1=@XmE z*3vW_`kTd%C)a@RP3Q?7XJtA9Z6enzP9{&-m! z*i{ZOTHCmC`ESnz)qb_z+6Ca`5n9{o`}JTTIz^!h=Q#ONp(gnDEf7NRu zdhC4|nYpPzN{$weU~z^lGNk!lYpg>IJ<{2PIB5E|pr@p^0u(2@PJy<={b2pUEfFJ6 zPp3=5fap1Yj$aN{ogwPWXDnepU8_Qu>U@3kIJRogPfV6HQG~|IfvpUNERj+p_Q%x8 zF*=_voF(zJVkY8MgUMbtqG8FPvu0qxRC0x!xqE?XVyWw!o7}@vV?OyP=?zxz@$ehQ zfK<%L8qS?B8+H+h)Ib^2FH!NwyaMRbs?rgQd|p+qaZ7ZtIbm6m2_X`d%M<;|W0AuW zmT}?wfO=@X;u!+BzG$q&WlY62cn>S)_E}J+oWs;{5*6ra%Mnlnk1KUgPunb9it_SS!R8+Cl_(``$uNHoOD7UaN^`IuZ>Sc8%rRkef zeWW)8Sv7^-O4w?th;JbOdnxGlvc3(g+%8aNY2zPKkgl8G6fc)(sr8Y4fz0yXnWYYZHKE{<{>k zj;?*(K`>Go!1Yfl=(9hDtl>2&cl#Upe{Y&FH=Zpz^Hb+nMf^(&I*+iG-Q3^&FDZym zvr{ah`g6qn<{v2t-Zb$rY%yU34ro70LGY&OZf?*l0SlHi43~l)naon&{}+yg6hhhh7VM=fzRvuWD7(dr6BFz#C9<%*WtteYMQK7 zz5rh&5?)r-KQ>KsY>-OPy54^@O$lJiN?k&0x4Y%j2q$00n!~S)e>F`x!@;8D8Y_S& zkTx>8WUa%ywa2FEX-0_SZ?`p^NJu@sZ?M1iW7FhZaVJOUBy<0Rl=-U(j4tae1}+6r z7a+0l!cL>$Qczeq<{v5O;3XczJC-4*k)Hx^C`t(4G-Y9h=qogAePa6XhUF~8jr-rE zAdS(6nfj57a<_*A{YNQC-m#z+_&ncUIiJ>OKkHEn3gn;^^8T4~z`y5e<~o1%x2CD} zLbR}XIKIef>BXpXy*d#0i%Dp2>LE{u_CK2@m*V>V;dm*r9})_#DW<|qvB~!_-xWhf z8vkmVK7I`8jGbpoqiH^NYPFLQ>N%#tWylOeoTGd`0ZhOu-nYikI!<>URO&+c|A8(up3vskqr#(@fo#ss){Ov&0ZU3XD ziA50TM7}*rte%Z>E@6X+K-wt&xDL!iBDG=ll1jNe$wo&VrtSqGy-@|FXA; zhJ4{;)8wvxi6n!HsQ%BU$&Mh9yU_nbFS^dPZ;CfYz7V}3nIXJU;r*a0HoO!;>_xr$w7XC*H%D4_D*FaS+c&{rNoKJ(FuxpgW z;-Cr$DZdV>BnVZy4*Fn<7ULWO>BB3UGb&|qu%LlAO<^6}VPwugz#AuW|98LqRX!uWSgv@eBj75d>g2PvnBK9E>Oau|mk`Z%B zUJ3ybhZ>QWW|7AblT+@9ZAqhF&XEAZsL7;AEpX%+caZ93BoG>fNf?ThY=R68d*C)g zpO3B=lvWwOGq{=G2T6cd?$&kCp3*eK#K`@8a|R#&}K5Q(QA%3~B=l zi2BLxpfDe=7wn_7XZ-6^ys>5+apIRxW+t*X@mBM(2K}ZW^#ps(SggPVEpUQ$a^jnt z1X=OVUv3fs&IxT!i8^S$VL})|$w?v5q}n!A*PEpFzC;;LdoRu8@dA6tWD{p8pTPd4 zjNqgQwB+oYkeDLlcc#gOP&a}(d|EW4RGyT|{)oI}GMV3zkajnU7F54Yyi%uh&es;c_bJH8&}MyG7$S^1Y`ZZ{A(L=a=Yoi}4g@_>f_XXau4hkhIUof!qhee0qZH_xa!McfP4C z_LI{9)n8|CTMW)Dpeho#LZv%Xi6420! z8EA?-&5Ob4{)G!hsab*UeZ>^N0=;*OzS5P{Yn5gumGC>pKnnAiz=b`xrB*?uBKf8H zeWi@srDG{&Dl}z%;$?AWWefpj3%unDePwUA%T`kgrK!p{7s}t7m9qzw$D)?g_mm&I zRwNLmZ_rdki&xNns<8l9ZuAoJ(1U6PuqE@hds*DM!e3M^^sa-|7Tgi%C z^-x?cC0>O;SV@3kMC4XU9BNE*R|R}o&CFRHNCm4RbF6;12Y90hr1ApNR|0ADfs~{` zY_Do&smj~FYLD$|Qsf$@8vuoV4Oe5WY$K5J6d-uuM|WVz)}LeJS~q%W*?wExNa&Ea z51<&UHC(Kv7^|VA0Wu3Aa#Vt}0mwEO$X42j?3KVb0Dl4@Ahlf$FGgK9PaR`|)oE~@ z&!8;|O{s-c>Bd>0vnrd_W)&g zO@`WthKk6>ILK3ct?`W@<}sfqZ7uX(2(Ek00pf&sTrI$+&xLnIy9enDC9Se|Ky5{2 zY#n4nq1I=IU~R8v8V%s>U~@Z0El7%xf~$=*%`(ZnrOLIfD!CPXsP_1-?FmEcbJ0Er41{405SI(tgx;p#H}(6?Hpb{3Qg@t(28h-I@P6~!hm#&(k88?)Hh?@ zI)EO@(k>(ZRxLZ9w@VNh6`^7y5m-^L?9ZQ}2{^4`ou@ zh&IqCEXQIAKijD<)7=8AxKAb+5_QvCu8kNS25*=8pUEOp1|i(OL`c2QO<%%?z8J7^ z&&Cev?i}dLE~-5&87LX*FkTyY#?VO-)St1~tke`8UzO9K(=CLKKC?5p!`E9?)W&?; z(mmAChuMjb>9c>(*yh#=*EJK!@+OHp)CN3rhtl)!lhBtyt6^R1vaKGnKIwem?*~J^ z#I-UIbad%5LH#^M` zx=5(HFoOr=?qI-6;&JSyf#-6~I+f%3A)RCiMWl?f=|rO;yrZsrec^6h3`cFT_Y>g7 zF0k|@M}9HagG9Ln1Ov+fU#qu#ariyslql9D+i;=egF$0Mpo}$dTT0xO=0F=}GWOb- zA;!3>E;5t*biL(NUc>Y%Rqa>tiC3Q{F#Ct(8YkWhOxfr*ODvBIOU;^pnk5dH#UMlo z=R>p{p7|!%%xP6%zii+qU>eYD5Y!yydem)sG#hCRtt6iHVT_Lt|CCr}kjxmh#Q=7H zHEwu6U*8B~7g#XVT+nk|AWT>Q5+c042dX|SRC+Z2xX+FqHUTf2K*9|g7^6xDYb}lz ztY0mGVQ#Hja*K8@OG*h#FThKU%MD%bqiu}K;Fk-m*8q-#+Ni~t?q-8IMw10=gQc>C z1-NR%fIQB)QfJxEat*)^2kr^P9AKFo=^CHt8l0uiQQGyE$Rb~cul}T8WZj)~JxG{Y zPDGS9hA&J)8Hv&+ee9cz*V>F(kV!mOv27Z0uzig}fw&}NuiV!;6V{)D*D+i+o-_KI zdDJkD^!s7{K%)BbO#BDX{KpN0Z}Vbp%3%ybhJmW(Sa(Ss56{fG&J45k<~oD#)3Mds z(oHbLZ^uAzyC`&rv42(eV3lKc=bK==w_dKVr@@-#E}u>dy2p;fPVBQ5 zptr0q2hN^M>8j7lRz6x=5=nn@kyPG5=DT-mi2^o=6fGdNu*!)~QuYK@iOE0j;Qk~sc>(c3ORQ^gcxkx_Fb=vybh zZ@_|lVZ9F>`2l1k3>Z4mNbUPAxP`EqM=i8($a2!nk4R3sFnl~7d-nfPcUMtyt?9z= zakmgONC@r(cXxL$+=CM|NU*})J&*t)1PJbhy9al7cc=0dE3130?!9;K?~F6f#i{XL z%v(u&5uW?uEFt>@Nsq7ra2_}~$OkGDc>2ul zw9Wi$n4`R!E%xM%@ND9nVV;jQQ$E8xIlFs?B?N8f7^DcqMk_4k)iDm27{At&+DGJt z3r-X~_*W_fPc9@#FS`M-ibVTeiWlVX2p?uX!joK|hmX0c)+cCJidi0^@?O!9A}}t& z>#kJq9A>WxnZACSDt))pL3&m0RTtS*M@gKKK9k=O229e9P+Bzjj@;P6AkoVk8r3d{0~;p^zZtJ=j4At9ql3===$DB8znU6Me= z*NZnpPfNe9rIqK`jEpya8E>&feOex(;@NLke3WU1hpG^Rm?j35w<7;$nobP5Jb(88 zE(H;)ZOSB&W@;8-xXiskWQs}od%ON`TnzMV%CUwu?J{$3;0JV2x6KRU1)zc0@1yryw8qId!k=_ zmPD;U&>2VuMbPPAGj0Zu6GKcBi02H{S)j;|oTc}>6x70hdwKZfi}*?pdOZ777(3&y zLSpI*9i}EkslIH$UFXm0?AJgNgL~KgsnUg{C%}XB!XPLp=baC5K8&p%N_te2QJ0mo z>j&+bLCg8}!qLa(9HU=;;HLn~R>!8}ZHhQ1?Bz&h@)wnIn4q_P1h$d*%i_=tFf4W@ zEl{wRKg2PG;Z%j8xLqAY(3JC$f^HbIcHt3-suiNHmtXd=<2VB3#j)#9E2Lk4gk$^h z!b4zKf;iTEw{1zrS`O~jNYD#LW=q6*s_Qn z;)8IAIoR#pv<(?xY}jBak#-&&JB2FcZESY+CRRkM>M`&DS~WArQ}a(~s&C|L!!=4p zYm%$AxogEh@*-@umpbMglfm^0)g0o=lAM~;SWLLzBqaso)nCH#1;Fv+zcc|7($}~~ zGQG=PgBK!+Fot`14p@VGDHVsKWhHB0^H%d~LGAn}o#@&k?d)gMFpQf8LQK=IC2SSnqeh5nLLK&4jk$%dHwh(4(Kd<4 zD6C&6dzmte9P)a*e#4Psgh04OMsyOU$LThNZDf+0CUO=cPWV20xquU>o(ykPq zkYc5?xBUa?ewSZpu-t$mq*K{xj+qlPzdrpo#nUYI7ecdgoH&;aOI5Vg;x19HY_szh zx^H4$Y&b`rPfjCK6(y&wmBt}hCYIgNL&ek#wYv*a)-1Am>FNEn_Fw1qmSz`jE zW!*8ia~5}}l-c0it<|&*_7lS#1rR{mBoU`>FHr?P>`9U=dQD!BgCgj|Vqr5*X<>b1z)~MyOQd_?&mf5GD0GV)fcV_==3gD5QKQ`jL)4L;ncEFGL&~?^Ip#-jf%?7-PfOYhX92TSRPMb#gCgT3-QHQs-}Z)DuX?TCBkX+MTVMen8U(13VwQiLeI*3 zj0&j+6pyo%WTi5g@hX4dGf#Q55lL>BTEDWV7MWUYLKg5%mLBZ%5mRDESlyJL20Ro; z|ALw`l5Plv^fCo`so=<`w$Jd@1T0uwS0Yq;APH(B;L+|Y{}qg~TYps!OX-dv`!v4X zB$F4?AqA{$eYYIOd3cBIYrL3nY{|ofL`s8jrcq?{_?#1mWpP4kdtQ$2C-sb^++cF0 z>ETg}5qEu(Z5iPVYytYo!tgJjPCq1w?M_vhnEQkkp=0V7^MgE@gfO$G{p0b3^ZfxmNA*0=$l3QD<(td-oA#nK)6W)l-$dGrP6 zg)~a}IA)@Td=>BXV!5Q_u$xmEU+=D-6N7B-MCF;Lk7D_@ zF-NrQ-%S51xuGTT2NUY6w(PlK4>fUeBSB->yJPiqI?){TF@NCX9hR47IV@i7J^!o) zi+?i*+{Ca4Y3*{hRqytDTj-J4q}0G@gW* z3d|)th4fW`oC&6uJMtNydI7R%-WoO&$xCWgVIgmg-Va%4L%+I4;vMYC?YC)}&ajU% zTUO%{WLiv?{wWj5&8NWr(dqrjCSBs}Nf+4xP za?%>rC;Bc#nX{IbD)&b!+*Rb;?c&r%MLMv?=`Y{@FA^`ZQOqAHg?9;IMM& zv%&b`!Io{as@8Hi@$w*E<2D4>HpJjIq@*_F{5F*8KT1Im)3n)!aoL6m*Nzq3CP)jX zej9nk@M0gfC4vW9>a-OZ#7U7Pn~|EcL6kV1tdyN>9G&bO9fHPU zoG(!dgT#W%p&61odGkB(24R>MJE|r`Sr#K-OLPjub&23~i86MGUm(+DMRS`&NfdQT zxpomy!U>r3Fi#>04WX)&btz0fnVne^u#=9k7WMCv z0e=?_D3O^Y5}2Am6*ljSr|b{j43Zh+)Sv8)Q|*GhJ5ob^X<4nJeSwUdeLe4c0~aIZ zY5Q|7WgRtwWx|4el4Q7S`!k1F&uyDyaax2P`@aScC<(~sQ4XkZ$VEK9%#Y$NutPdJ zz;0224~`nBpp<8?4wA$gkSmho?vl%zlylpV3pte|-$PYc4XW%KY-SV_5|PjA3a(-7 ztv!^3@sZb#l&^m)LUa(R5e6r@3R^Kb*q5Y$S`8~C0+-h{qz5$=9u+CTsPK+o0hl&O za)zqZHZ&nI44%{&o-!Yvb{(GivlKKuUp>6gHM}^fxDebIRz0BkQlWuzXw;`_Y*L`m zwWXyEC^tL&Y?^{cc9TZ-@<;Y1hUKh#hMNaQvLx2CxHcrhep1G_w!u$Sk6cKMUTTb9 znJe#Z1|Lo;t!|EJT#lH*DkETxq9aG?wZU!MjsAiggTfty1}Vy|!uf1Q>T^VYDH%;| z9DUr3yG&HsQyCjK9z!Vjil{i$m@$Uo8;v5ExGJH5#yPY`tgtB{f~omaQ?Ea&K?NH~ zg)XVu4fy#=upRG+=moCgOCaPgmFfkoED`Rw^W(7TgzE6Y&-G2!t}Imyl5v`7bYc>4 z9tFB`T-7*3_c-I!IFn#~)}j<7IRQaTffs6?XcOGs7<9fA^xdOW zisNWC6B}^jg~1a-1>vkrQTU*Vm-jyfUDbspHQM7Qv_4Nf5Nq(#PihLZN)%|MKxs(Y zObYl;@=Q$f*^k#2PpVKQN=AQGSkjn^m^8`KP(`1TFF+L)oZ6M0@&IUR6=-N@qv}L! zUhiulfiU%PH34q8>PwohkEYP!HH}L(OiIyBnY0iErj-5>aP=7FdLSw6IH4c4w?;t ztV&zbiN4Z_LDvl-n2XU=^VymRNS+Cl{1N1a^g<+v+bM|48kXA=mV*EzxdhNW0*uzE*5D$) zmzeKz3t~_SV+>nv%3j_FE!Ph(2bUYJ9vKGT8cv}bArKht6&Ri@8P+qcTy!sA;;vkg z=-qM}-7V?fPXSUnwYPEAcF>U}iI-b6!=Nx0p%IolI9Fl)g5bCe5&R4gdjLo=0A#$? zU@~JkrGd?YsjV#|+^ZGe7fZl;a~|ztJpop!31mYT5AX~Ylt~(NM&ot zBgRjPKQSB($0X~pw89w5SGejsgR$0OnN5RvOji|65p=+&Q}*jLN{h6lru0(lWM!s| zEv6JB>%`Q3RaKunXv9E;GTXv&zFVVby7SaG-hkF9yV<@sGI{fejg4)g`xV+%mf zyz#Pyam$t|f}SaO%Uo#N!cxz|aDI|)LCf9ZGH8n^(PDBK=B_dDl@0*X3v%>BBAngk z-raU|SaK2Can`bOc1Lo-uyRdVa!;{ZD1exz7%LwxD-Q&7t&o{_$1S$YNFSeO{L;5S zB3SRf+~s1}2w>dxzOuqlvIbtSc@1ud9;XGR?1odf0I98`9Pp$4bYr%KVq2`^LI}|D zbP_OjBMR#irEL6P>^)iR?Xd5K9QUQ=5s&UkoP7!P_ip0hLax{HWazBekiBd6$d8#|Prh z2RuxjT(_g**W%?;)n?aOC>1o&X3ITRnhD(mF`D8(2TWN%G81M%%K+clbrZcrw7Hmeu2Ey>&dje)1Jk3W}w>;yQ*oX@HeJ^%{3%F*!x}anjXvf{2-g^fem! ztJ5znd#GNgedd{*ZKtsJr&v3a&>laqg&STJ&KaNK{csv=I>p~fBM^=zjOD@a zJ)2TDIIz#lX@xp^-`|xQr;sVqls6L##u<3lc^O6zy4B{=1PtG zN?rO&L;Fhe_2mnZ#=c{FWh*X~Rz$73EB)Rpz|56_uv;Uko$fDJ9^n>+tt(URYcuI< za~e0JI(y?(9+OW(Sg#cSpy^3i9^wWC``ul)H_Dl!AJ%qfRQKV?8ln3q~N`C28N8;otF6c*UgN z;v~7R0q!#D?f{N=I^JGf`?r~pQc&w!+q^lD@;%q`q1(51_=uaO$6SPba>wb1W1TEnJTWqDGrPG})#7ECK=n6lmpvP{g-q)Mw=5Of=ZX zr~O`H^8P2HpL;0O#E&O2DE}sWSA89LXov?=fs-eL<0yKX?DZdB31P;3Tykt$?(I&O z9$H2Gv?=Dr%O&ORqbz2bH`{B4@J#TabPDF>41wJYuZDg|9o zk7V&dOjCa);ut9f#5D1plaG6&r9etSNdb~5e=7z3!!()pCNSAf+Xf@Tyv_ZfgA_y+ z=CXwic@q3RAI4ac!5}7_SJ3Ky@g8B`^paMjoLNOOUGkbP- zyW&UM*}p$};8$H*?@eTJ1PdrGug-YDG5g$tw$67TrJzrC^H3bc;sQHm%ut0df_vVT z>UNO^lIGR@VVZK4_o@1Fyia%~7kvre)xQb-B-#cA6@1E#^+pp-0u~BiWoP6KTh`}D zkC#eFZ=yNpJt=~~*aNo)Ks+rxqfk*4Udnjgtx%GW5s+^Z$*~T0n>E~&SO=}ANwrxZ z&$|YyR0D)Uij<10T?!2mJV+_XW*R@h8fE|(;m@8wJBIZBH;2|pc9qEWHUsehTdXPGY60F1cU`@(-wa#zF*BN zye=pLMv3t;l-9i36M@R_-|EOZp7i?4?+x`e`xt64mk+ zn(w7^?=rXH)kRO+pnvvXnJ1-w;ENN1CFGA_VpV(4t3DgxcT}Ee;ZLgRFll0HeR8>l zN|I*|rvyv1@?G{MM2K*Np%>^h9D-tgKAWaGbH}bXTk>-);17=#E^tt*VsGr})L;>S z&B$AR#~N>z#L@T<9eR9peb`4{ngOb$i8>M4#zZM*wgD)EK&P-GR&v-TjthXsh^jnj ze?-}F^Fsa0B75MNfp>N~)Tfx+F|^ z{_PX@Y5=Mb&l-@(k7qrcp@nB7njg%w8807GZ*83`cx}Vn9B@s>0a*#!A@!k3&r&7K26ixT6E# z?-t4n`+61Wm)`ID*i{MMEP4MDyj_bF7P{NY{3vw4_q|o<;i&1C&|ULlpd57~V5fJh z2Q#=mA1W>mfm-NBU>6wt0YMx5tvnE~nGAtFtsNH27)qsB z3>?+l3XNp^B8>oE5}{rM{!KZMnK(5#mv3N?2W(ra>)9wtDvq-;33Nl!_zJAxZU}&VYYz_}z4GnO+5-dR* zG{LGrZ*h6dt9}Y<_Vffn%aYijM@m|8Iyp3#)A<N+<)a8+w|{76S`Tx^CrI%19PD^GSicky=&8G>$o99*(~> zHd(?z5*0h|`H*wV+l-TpZO(~rBW~McNlTlvY@IgJF5`(Gw)64$=Dv;ko?iqIUs4OS z(~U+=R^^U2(Nvw!jRM)K^U$pQTh@71<_M}kyNDNk$Jrl?c5%&XOQ#iOq8~3Znbdf7 zL@THMZa6m3HJ=%zEBnGtEqT1UFxPxf!l+n1o9=BEdkv%%G%uNj;R-QL(b@{XF4glO zr66v~Vu4tCO)Dx+1$j4mttvUuqLBB+hLW0^6|S14kW$c0g0*UE@w5ogP1=kTQVJT- zv@EMB1HAhlwft%Z^v}8^{gGn#fKt$rye(R$itd>?+e?++X&f4@YT}~@skIRCu|++N8qpz zbcrz$N}3hCU%5QSV+I^ceFuS^(=b_yNwN%&D!Artn0CZ;kwbkK)n2(7E%7?8Fjgla zdqueFA^~nyeUBBcwVp|d31RDgCl|Pa%z&7c#4)Yc2QnI-2%siTOzXqsIya0f*?f(9 zXQ&kNHtGA;2Hkt!NKL<)3}CjJ4!|noFUvtoKlUK$MNQ6w)L{ua_AG`d zOUs`PBW7h3ITt0Xf=$JvcQx!Si;TOHj+!H`oYmehd~qb%8^@X4FOA+P8p=jej-@EE zHDgGjifao|6@#rGe*wl$vUpR`*o^UjOg-^|a-8f-Qm<|kBcjZD6#!HU{s`%xP9hjOqU5>n@YnPE4xm&)2+I%k-%E6YHZMvB!QCQ8Z-hw>2 z*rfBo6~$$Y9kwoIs04HKYa_g4Ppi?SQg1?a@@7yl|O z%WeD1meUYnf%TU^ZoAoA&SE|aY*Mh?^{cm>r?d)ev;Vjoe&2GD6Y4GU-!U;16ijSv zLWmS2ARs3qqWL#0_D?1Txq#HK$jRSQQL<4}anjK6{qxY$^8fSD(eX3V^RY1Uu`=^GFEsNQm)DO7lrUyqFySUusNFSYGXVcz%Y0?Oa{ zCb)Wsc=-SWgCc<;F_FNS+<@q^k5TphG5=Eot0ywOCN?uAB_}>P>$eyCX86Xwnah96#K{)LJ8 z{f&wBgp>cp#KQm1#L{ro{$yeVG~xdp6XX1^OpN@$FfoMi|B;E2|7K#${}U6V{(r&5 zIRBN2ZHYWHu|p&>*4`*dO|M-iF=U$EIBDvkKbV*WTQvsnW|nh=mSeVxIKrhX64Q ztHNjS*eQDd6BDb3FtOC% zOe~rBHxo;Z<6-B5FfsCHCMG9>xRdPfl0N&)#IRod8xynni;1cI3lnqwi-|$CM?Et! z-oG)i_qjQ6H6Fa!*IQ<*2mivvqHgj3&cy8Bcxro@tlE8rC38X^n1~a{^7#CZ)VevIdXR$1F;6cJ{7??9Spz3>U7hOwGz~gRfA!5Edp)-X3iAn`c~Pp~$Up(98|( zpT*HvC2cZ%S5qvmu7FzwH|LAAr3nu(#nFr6$UuMZ7%5BWEAE# zG4{>C;rF<8ynRzzVtAsXD{M)*84rhRrI5|3p2>Ih?XqzQ6|qR&(j3M%G%=t2%p)$M z_HBSTCq8-8vQT2EJHGQ?J>45#2Z0VdUta0tH^wlZ6BX*jI;l(_@$ZqsM z(^pU!4%kVM)vU`mZRgN|fdNjCnWq1gzLHijMWeXwI@Ns}B>ykzt5*x2U9=--o*F(I zqz|{fA{do%p$g`&4{rOW)|})2Okb(QxP->yFlMrTeNJChW$h4~a4pPnIut_ES3^5O;&&td(+W9H3cF%N_hXD0)t{NzttBAo ztGJj;czi{heh$6yw2|t<9l)N_kFD`cjG7|p=&hl8a-8(s;Qx@mdbpn{o0gz)i6>M^ zyr1n;a*t){L{)}*m>Y}voxak4nE#Fe&%$hGXW{*@u!>P(;hBeQ_ec7wu5re|UeT_J zZ3&~Uc}LL^Nxx_A@Hu@oeB!6hj}v9+1VU6g4OGrxYdEdzz#lmcVOhjI#j9_pQ95(d zE_{grNnde~I2*%ev7MFG_kpEjb_bH0HfWU_2GnDaP5c4tl(7v%uMN_Z7aq5HPPn^h zUY@5vJnmSQd5wfBU4B+>!s)8z7@7d&OSuN(ZHE1)^i}55q3Tyj8ig%tC3Wg4so18) z9iapHq(EE&qsDYWM7QdHrmt>0h?Wnct@*PUf*c$9!Dr4h5_E?HDLKM(??eAgUwMNs zv>ny67&cJ)GQpSJH^G4OvQ>6@QQX|;^p*0%{GcIjgm9IGSit@A!}40Df7H0X(e}&& z7?QqfIZyrJw%F>mn05=g{5pCpA1uaPZ2S}f0^9j)L(*5Pm>;*ZW48y(Oh<`uV9CTZ9mni0E;^e?05;)lEgx^@l-w`ybO+o%Z=UG$^K+wRADe$ zh^Ws@%o?}p)=c{!OiUZX#OkAlcmKh}JpW{3bF*d(x6!*0CPomn78bg38?)tUwo@N- zsS|rO8)JAKb6Vt~!xejd8wBi&D zg<&*UV1-8`5?bJR#gh>xIHbkv)y5Cd#&cfBlQ$$V@&YN-Eeb=x@8Ee7ISB1Kwd_cc zE$HVG1m+SsZW9W)9HO-oC3KVKd+d4d%=z~c73PxYk&@K79B8zYG-Q*G@tlH+Eadl+ z0R71-gcdhi$)>VNuWwv*(=GJplHbiG8r@kTai=)RCh~iP=%=LEdZm)jr6{{QJI|%U z>ZFkLS-9H-#`>c|(pL~BR)31*IhWR1l&WOu;>VjlIpbnU_tDzMjYB6bVlF+TKP`qZ z1Kq}Lx*jjdD`T8H6)i1Ei7V~%UB)F+x+1k}k#1&TsH^L@9OVT zMCE}k$XV^_Sp(^5ow`|vG8yXxgicnOlXM>Ly#e+C2^`?F*Pyy*~A1DE4G8(Ix2n=VUj))75`^B+Sj(`}CGJQ$gy( zS$Zz-*AE48nd!Q2nf;$~(?3o0r9%)Iopm05W8TaCK!ir~rmwl=87}R09|Ck!o9KdG zHD-~><&D+ng{23+<@-`!o})37^R6BBC--N8eW&SAUyS)!y8X`v4WFUsKT}%gbG*ut zX$*X=XTBZkC&*XuH0}33AUoOWlS0TR3B7oz#yq$Wfkut_yM%?LDA~t4gpm3bj7)*U z2M5G7f7c5Cxo-vXJp~4haob*b`{9A!a)o=cIaUKX;GevNrn8~j!3DY>Qp8a5yylZz zzU8;iW%V?`C!iF4lFeef&6hw3kqj&93l2`5vjBYfmOYmrn^COV_f0&7&;+UYi$+Lb zSbDUa+lz>tqT=Gl4?!jL=3e!o<#J*l3Btb6r-?Uy@8in|&M2g|iJ0d#^UNq2=S#58 zh#meAF-mXtldp6!0thO$oY^mN*E3(3FWufxn39WIlMA1FWw!O9>@*{21;zYepln0V z{N&Y-`}@Sb`?#xpn`}%;_ObmNsb8+~;Z)OF0bv zDm3vb6oWjF$<~bJyEW~gDf>bK<|;Jr_bR1_YL-=KOswkfuPUg*3BPh>J2uu#QrmU$ zeb4_;BC!ue3RPo?T0;s|P1^^}<^;<#25(4);KG1lI0nyS49nUEtwsQ?@V!cqAA-fI zIeY9*`fEZS99>`KBhl63+(Xej)y5rE(?iu$6v1#~)xFPb$l$Lt^oOPQ4>Ct>up!C_ zls8lJsxR`k*G8`G*)K9cfsQ3=sQeBCx#i5|-;kNv)NlaLmRrZZ3sr&IK%ZOdsoTho zm+~#M`BzACbz^8(!f_yKf`O*30z;edY2L}AAF z{-P1v?`A~J|ZFifBhV?s;hB67WI(Q*QjIo{Nv4g8EknRzN%jXMl z0FPgwyDlV?rZ`jdF#}_)OKAaKYN+Efvx_APl6>z{7I5QB#Gc z20X%GJa$Vn_OSSb(aLnjKQw^52irw?34xGD;{u0<`4Nx3!Aft~Gsd9{f%a~nKzX7j!GqR-??c8me(ezo5qh8YQM;NK zvkQjWPMgOtO9s$=TMePW(0y_v%-i1xndCmpjd{Eqv-KKM*6*TxYLoF9zi#Sk8W?BV zE)KmPr=3Ac`WOyOrhrUn=bnecGBodNdUB(Oy|1rz& zV@lBo%xF`y2NT6|Q&d{j0q)gQDb=_(6D)7Xc|jA_zK|us6L?1{4)#_~il#2ZakM_Q zTq@I+*)un&ecuMADX(Wd@MbBvX3@NcVtr;Jd|OMKr+q=Gal@7gOr}YoxK+DachHzg z*4%8fty7`eoyu5dBoE^fs;>ycKc+NB!%S;%7 zxfP@96`9)Q*IcW3d+_EW2o}Z&n05#jDaejVbHB&i;yhYytz=GjM2o@3+h3wa()So5$SqPH{g0qkuGOpG=?wc>J?u zB!Tm|i<=g^6Oz74Vcuz4JYeYGQ$E<^f~2p&9iXGn1ws}{d52_n-Fpw6 zhNXLC>AQSQyWB-PF+vE$$7>fv>sJdqelZ)`{DihcM@0`kO{B*ohC5a*Fg7_s<)jB@ zDhOwS`_;@RBno}k7(0nH6Pt1qWF!aXZO84+pq`j5sb##Z=F@Me19yf?>)@hYrS-WI z@UU@i6$#cJl5k&QyEpO2`ufAuTa>dU8(43{^LZawCGVr9^dn*fUzX9DF~;GQoV|y# zVyw64LxKo6uUFV|cRfckg<4Ivi7z!WMm%UP(Bv;TUvKfe9^x6>L;QI7807?BEYy1a z2}ba%9!nKqG*gyk!%Sq{`1DeRVdReY>QzX9?vpf8DW1THi4Zv2XQBFIW*{fohEePQ zpJOfE$wJNYw^Y$!Uu8+wr!yteb6c-b%gj;gG`{pQ9umV>ijU*AFI@7o&h@v5ebmK!rxl3h!yR=oqm!OAPB zB-il^1x1dgd@UQ$$5G`*JE#gjsR>SpNJhtnpW<522YsGs@NS8?ZpZ5%l@=apkoJeN zAEXxH$0OIbl&^n8gAohCuX?~x?IO?VD|AwcXC{U~ZzvEYSWhEys` z=M2KcNQ6Uts=v>4Br|QG5nr5Gj`&=pfC1KK$Gi1rhk-+9gzG^gr3T-J6^_sC=2gj8 zdb0Iz9F{?t%4H-1c84?F(XU;L?%}(EoXv3|IcH`vY&=P=r%r%}>!1qYN6Z8LN6+)E z;ZLC`#EV-bbNH!l}0o#c-b zyg|r6EkP|3>1h30Xd$mFiCDiz5|= z!)keFbaOd05X)#cSBl~%AFI?gz`RnH=92=N6qRk}nG6H63mI>%hSMq)2G=Dk1=$;{ zupnFweUmPR83nq2y4D~zCElHUa3U?;N^^-ESE=i2PlCWMHWRMXt}_RVgKgkR3;k0!HX*pw#tHGS`Hn`{NeI5DzQVHsA4ebDjASH zRX!j{M0hKijGH%`N!=urN~=yW0C#Z0@Hu_O`BAdA()5{$mBd6}Gg$n=#A<@L7TW({ zVu=tYmh+p52{HiO+W*1CvVSwND>pS?^d<-sV}&rW%s-e|Q?j;6&MSEfbP^@nfDqzy zqzHsqVTAM$h1yes$h=M32D3Q(F%wkDuzQ`DJe>Bx5Nx?}lSqXWHA=)xW$@UW*leJh zMChlW5M8q`cBeeF2{umoMFIjbABq$NYV&B5@^bDra(%#Q7K~7=^s$lhPW%+(26l37J)kdeOu9hmq z+hHw~rNW^pKrhOTvAjGR!%}3L$h;jBlip?MN~nDURE05cmb=|XiaO{h1nu!z2l3u6 zG2O%far=uE@fr48qipwaaA6i@SBMpc;rd72ME70KZ zYA^*h++}wJri!wqII|PwubQgm)iG`Upp{X`MusjDy9;m%pJ|%g2qvh{8w>DpASOAC z5#w7%xA5_tG<`~tX(3Kgp)FcidCcIEfKgI)PBbUpcQtNdIi`++CHg`r$vcpmd*&I{ zzm98gEhUYhmJr9kh!~39k6m&aN{5p_b-68>mtPqoRk6eZ1Y`HVoW-_}%3NCpc(Kn^ zFvr|CCXmNJor%v!KSuz@sr#N__Qj_P5X zKprn7CU%+sjq2*{@Xpp5Z4oRv2f9v|{nSg6uAl;s)xrx=r#Z7SX6j-;Vow`=i+kzwF;z%XIS% z#LF?VNm&%4Z}6&T5hmnNdD89G?+EHOR+LG`ACN)Qf=6q6R3aGx`MC0{RS3-0+5Y+~ z>gny1t(vZBA2#UqCL;kV5G&r&H~)E^f;bK;sSRg<-oUZdvryywS~+2kWHb<^ zflyr;*98+Tj$%H+!YXKK%(ZX2J)thUnKkArnV0{mtYZVfa?GQ+_DcYUYuobmKq7)Z z84I_xx51%OT+l*8{vFAm zcTQIA7E?EEEsdfd!u3M%1>E4L;o6V+zF=nat6l zFi553M?JF>0mO?%T{)Hb)~`t9y63%M7(H2WDLZpULQG{Ps0lvvGcfOYHg<7J@TRLT zFCg2MBXFY}mvihor@Tm9vbM(``s6<2adnlZL5mxw%<5(;H>_Du@`|pEdb(J-bdT2F zYsm3}t;kJKKy@^7x)tF%$WG8w`DA`}aKEN85M*a54V>tszpf}y0R|W~gTum5{UdSD4ke-)d|4b(~^;-LEF0P?7ZogrfT|Y?g^allH|Ur639D zk%TrB3dej^>DgST>Akb$5{c2M7TB1M@fu^`zu=zABIcF8Cyb3bYqKV%5exl56D~yc zg=T5r=O@}k|GMj@+Sn~!xjF*z)@&(dHZ6r(VUAHZm z^fc)8#g3-(*8w8y%lw240ZKqrID z-oZ{eYTcpWh#1VAO@?3lL#aup4Wz!u?AG^e^H19WqjBhV&@bvmKHg8Y`u#0^b;(YS zIIWC&jlS+9AZYnAqA!RKs|}j64Tj@?PG51f3Cjd)dPbeRjM--hd+7;xPtlIe(f*R7 zU782_k-h2crSQ@F#-4I`$+osv)$MED83Uw3sd{!U*lwhJS5U~iy&We^MK3!swd|GkdQM+yNTMBzf4>!{M{b=^M^?`7*6V^-k!YgL0@11BTDIT`6LFp`J| zPG10JAN&xk+-#5HffNdg1OisOPq56Ldb=-&v}#t*8bej!WM4F;j7Tn=*86UtKu!op zr)X4PqC%_qEDTM4-`qj36d+1*wJ$xt-_{jQE*H*gs7s%sKLx=0WGgWLp0%f_GlOH` zOO`}zmuxm=r;e-aCjs7EGy+4)=I(N!zr;Yvq#W~5kaU}@qOsfu*MaQ`$)ZKhZ^TGo z@5G)}IFZ?bx?p({IJh5O{Ypskip27=tn!KC@&PJ?bT(+(xp2}@a3xWLoe~NNU9cj? za9OTHfO`3yp}{AHLC|A$i@ATR26itJeDCGZDBSS>oW8OfhA=s=uE91HiNP$cp~)cv zXEehxxH+7WHOi57j*;K#tISVWV=dt$=}^&KVtB<=1hto{keuYW@|PR=<_Avx|# zp-Ou7lNy)n6>x+M9o#}$Fiu|sVPa}N`r`zy>v2T+q)K}viZnc>3 zq$pQ|Y$OvdE?Q1yx-DtpqcYyBUOuWx zY1{|_Dl}G2jgx(KA^Wks;7LUi6j>59xl)Y=6OFXZNwup<^Eve)G)=TuQ_xJBVuDj^ zGE?#fQ>gDWrF}K|qczK+ru6L7^l>Kvpb3Mi6x}P$3K%VBTrC|7byl`%GjtUZ`$=Pi zX%4FC3QsL-gE9FdMVxP1mYfS97(1v;R~Fpv{l(=3?;NVL0X^4`jP6P znaF-H6$J!?%e8%yVSTq|yoYCeCBytkX8o_U{h4$Ep0oo6k%H`Xf(2)RiaMd3NMV{f zZ@p)VqqJ=`XPiy7fv5hQaX~!(usmU~ygEU|gkkYabBT&`$(%^3oVrPxx+%Cw8Nj*B zY~6&?xwLLwgfZRBtKT z^mtU})ZT=ZJ?WJjz*dkTRYErVFd@}k>D7|x^U~^9N$LkUEhGXLs*@KghxMD57HR|+ zYM&PB&=>2o7h1N;qPs`FAB}sJl1Y@xgcJp|8!Ql!h4p9aH`go%v@H%L2MyzfjR*q9 zETF(YxAez3mj*z90bl(|3xi>Ur6G9zndGI>Vb$W{$!qh)o?*T6`T3yPz>Mq#o-vp} zB*Qr>!wuZ!O2y>>p5-BX!vN3aH73IygXJI5h6rhf+ogtkAj2QS%SYYI$5YEEK;3gi zz@nhK#gf5mH$V80Cf$376QO*>%$r@EG&(` zw>P>uG8noy2%25_HD&a;wSsbO1earkhGC3BYK+Njj3s3JLdh6=*%((HfM~x;>bsJS zB*FA{CDFb!z~AIC+a#dKWDaD4(6=_Uv__h<@H)nX2g{U*8i|Z~fqZ(6f^?lk3A_Ry zGJ_lQ6Hkh@FS$FZ9{MgBHgb4nNISffB=p;Ibvu{I?)KHijNpRatloUw}V^f&fTvBOM6v2F((>y@LT*mU* zh)Kqny)iICC^UOnuzuaP@s$Mdl?o{p9#H6}ujVkPkutAIx}`Out0lFiowKE`q^FN( z0m#v#-JVrC9#ig#QsD}F1;xrc218u55J+Zu&bMvevS{kC9js$%CS_?8vi(jf%qC{r zuEo-7d(olR(z0heXl&bg*@D+y(}-Ec_?V5sZ@~RYUC~eVo#xK5nN=ouSJTrW6=!<# zL&%tSS-8)%mE)S#($x+kyfxsxRVA^thvtfx#E&I z@KosX&#-0dU3u#O1RKl#T@L!aa13qo$K9ms)MTN8l6!nsZ2v9;^qUf!}*JcdSs(7P$vca?pLg*lm@xxN=sw|rxcOg83DseTtK3SDx| zSlS|3mV%rj6CB^vP!3K-SK$>|-RkDF{Xf**Wo%pPy5Mn#(@@hkNy7~^%t@1m8*G@F z(=anLGcz+YGcz+YGc&s5cJH(Ap?lAaM)P5$M@yFBi)C3}uh;+m6^a}AEX()~PqpqH zx7{7%*ETfDZ#DthYvkonkQ>|Oe`jJyA+mx#b!pN8dpccd?A>{C_21`;bPb2^*hl6} zfVVp*Np~m1ZN?GH(-TOAW@3?3OsDa8eIN$QTI&?T@^pS}kTmybajtfWDPlQ}ePYj4 z^7@nr?5yj<+2-8BdQ!sGV7z_t}BE>>kt6k$UrS-`ObnnegV>8K-Gd z^yxWq_62nKC9(N}-oW*DbNSh`620?+>$3;-(?{y#C%>lWKJ%qH^NX!>AoY2c_xaDd znZvUauyB^2-!H5XFQl|DGORCP>HcW3S#gPFe;zq=iE|#0`!?(oNdr0w@T!6C zYKhCry4$i+#MD-Wxxem;qW|ji>sQh*m#1!4-oaP(!^h;~SHChb^M;P^`l_#1;qcaN z%QBI}-XA(Ve$iL`*X;Ax9Q)Ut_t)QGZn%EYSO1lXVGKZ6HTYz#_KJmVF=;Rn?N4J! z-iXfMi0$8q-`_~U+)CD8f53xLv(O@oxlzx%(X75nK)zM*zg3LCRm#5=4-aHlw02Uz zr8Ks+D!A2vxzqf3_hbGhVZvM0|442B_NzpT649N$|D8eno$^;ZopKZ1cow~ScK!4_ zv-@9}7+1NSBkrMbzuo)eTMLDITYY=OPxph=_d?(7ZGiK3^V@fJ{r4{O_mb}RYsXek zY4^Hst$w!LyMBG}7I5G`zyBy|+l2IREPU@1{}7n(fS~9gn{VRi{tz1U5CqD^^zVbi zZ$cDqL-!w?=36uJL?iScW#wj2}9ooeFs!cPJjRK$)1pO?LfQ&iQ_>{*x!nWPbcp*}c=Z{HKfI{+uKu~q{TU9&`AzzBhPl(x_EYmmm+)`^j02#4-O+gd zq0PLx9p+o?+o8_*m+(&>U=d)jplYn+I`}OB2)K9w-~n3eoxJs4ybGTP1zuh90pK1U z@(=#*6<}Z)9&G3KkN^)=3+z{CsdJd}ze z1YiPOU;>g)(fb4xw1Pso4rol608((6_ml<~cwIi=iF76h7x+DYM_>Jwi3vod!0voT z_WhNK8Af1_B+z0^lo(zULnNTvU7Z|WlT2j%qOXi@NT+gy<3X9&&7l+=gw9K`GHNgY z4heFg0togabhhHhEG4TmZ{GpLn}p}f*65l3ps(62>uxV-%=hQS z#F?LNj^?ZNFqc+dF&F3=_BRKi!=D{N@1$r}*CCCD0y=Wp}ei#rZdV6=KM> z0s%p*k7{*Oo8=1^J9rU5y>Ot97YLE$KoCR*RKN?I#V^%Y*Gjd0u8*BFS)SzNjh{g~-}Vwj6|}-?|JYx3Ac|8e699t*;B{%s1!zjmA_B1W zX9*Z9tmKuYg7!bBSPrr5^GY^7&d12^>Ey<_K0WGd^@u^`5pqfA1p)v)3Ubt>IrM7D z_VNNGxv|RR8L3fqu_Uqd;7?=)nb5as5owhKIf!}$`A`6Govs7u93S+;yaF{Rin7MK zIKxsSOStU(EI784^xiiSKNQPs91XHAm7qNk z3FSekg%jmX9&x5}rAz?Nag+NQLTqBtCwGK?T8!ov0HFWul|snO6%n9c`q`;l?!7{- z^*GL_)Ay6Q$)`D!+5(X^j^fR)chYKcnDS$3t1r6N5i=e^<2wbVbBmtvW?DoKq_jw2ah$ED5xnu)bO z1KBR>1OOeF@gi#}a8{~r1Bj&+i@?Txia<_|+vY43SDw6OA8>M5r+>}F_O!D_$b$;dVCO(N%chU1r%@AXcfZ~|=uT1Q!!XJceA$ybd;J>d7_|8u7 z-aWyey#NdzYk&vl6ov;JdE;HGV6TCA08f2IMX-8L06YgYFGpl$h#os3=5#?HC~OHe zb0LgHmh=Ei5OTZ^(6T=Bgat$B06;79Q&?THADGhlYOsGMIJRl!K?3T8Sh#%tOh`5; zBwZC15u**JNesZ!{DJ6h(SyTb{Z^nLLk>Dah{masi-+C{FVKaEpj(huK)EWeu7!x& zx=^GGJp%xV?g0P?RLc{MJCt;Q1HidF!0|l5kQ8^vl^c;2rK5eTc0N+s7mk`*RVS}u zBY-;{4(kHxrL>#+F}+v-;3-wYGm&`|#bo1P>K{}WUx+!cL77<7J22plHcg>m3w3EV z;M9ghd1J8GkzUs3wr7sxk!&(hx+aVHP&W&*LKNZ)!}oeA19mKO=}wLsg?F`}Osr_i z6fGkcTW(2!J1Hr0YQ}`9bXG{AXgc)@C2aGARCK*?BI&&?(BSK=thjU0OfG$_FcO!N zD7W%Vq1Q=4l(3OZb3YjK2AD0({Eno zIG1k^=DDm=VBFzA1}(C!Ul)D!IBhLgTf@S=9;*?1#j)0t*X>&Gjt`LQ>?3%9Mr_h;PZJA0k(+QoNOY0HZbl%Tg1O5VoDVDn?3|+^o+Ua$a2N*sZdSZuCP|-Z8i$f@ z$xSm=b;z~{`{jXE!pW-iRNoSZ-7@JDrcJ)nIfsm>_|d{mmh7=Wzz-MLR)>wQd;}?2 z<9msxsh2NW9OgsAZk#tvi=wpL`w0^!n+#cROAXxUoF*)w@p1@P_l3NRr>O02l<7+k zS*$Tt(unB_Ty+nms*|E}&t?k+QjC^Mnr7>OZac-ssK*H7O+;C3wz1Zwg=*Rj^P5GC z715>Ne~1JvATiwuyOo}NVt5uGGo!7MBRDmjZdfvFy7Q=3qt&r)Ua^I~G4Bl3u+$G< z*>k&3{}7~LyB@y^yU5f+a&k&K*}N9thud}?y5UM#xPDq&Ke$45;qsw{A6lQLtN%lS zuMGQ|*6>w#DVAjiY0K8GnL{AG+iECb={9aU(?IlRtI(fpPGH|0?PbQ&W2;|2U%0T0 z_fzw_lK9vnz|onbasx4yE1tkC|BbeJfYyKV)M4(0dHwk9F-T*Gcv4 z2fQ>-le}$^dEYpWWXhjrtJ`kN+&NCPX`UCS+wSVxInJ!hpI5Kj?%RHHTzJ#GY<_5e z==;Wb6gonvW~jCp^}1@_&2dX0WnrVKIZQrSd5X9m5hji0H5X)E)}Rn`#a5y91DvSRIPo& zr63@nBKk~AO#Fq6^eZ_z3kB#UG@$1BDC_vWq{0v-8XAv#Z;`ug(6reSUrS*Zfm<29nA^^Ea#vbmO;I z_OIsHKiu*XYw#0qfF8Nv(;>6&%eZHLR(sX0X_t8KA`zs5q_Y>tP8;R zhTPiu7o$v%B>+G8LQy+RC(e*q-y+a42}h8cJ4clpGx1NOOzlsjY(LINwP4RsAI*sL zw^0^Isg&i?zJ+ipW#FsNNq}^q>{%Cp5eH9aoJ6V;0Wz5deMtxEqa~lQp!{VZ{QYc-^ZI&m0$}9B%(mnoLmhD z-dtV{%gE;XgMCTi@&N=B#Z^Sr>Hx4_yUdQjpiA--$cjx~f#s^& zat%Z4q*k_K<-5f97hoP*Xmq8O)b$JmaVY9Slgb9*!eVgAtw1AAAOP23QR!`X7-i(( z)*%r$800+Sd4$GD1b?7nK;VNgUBf0Z^u;3OErJgy%FTECKc!6?HDi@lueiQ6u-|h* z*Q`0Aj&e~)fXQsQ@Qmg$P)Qz9J)5EuLGZWUaJ5NvI-NoshCZC-SFa&p^~gZAaCu6o zn=fQ*tM51JpEHsjZ0I*19^_~KB|bhcWsVh;~_u!PDsQ) zkyvzJiQ};d%i>!(e;5E%<*{`ugdY_ctPXFZbV| z^!V+eJ2d1415lqgCG1@d{4VG0QOQQkJffPH5kKy89=z$X2foeuct^QkSv{L+?W-gm z%{svM&9%@JA94itKE7?WvCNjP=Ep@5pyyFaisH_A6%2j90WxjFRnD^e%tDbrRjSvY z)mj4?{~(d{PFG`fI0NT?AdM^y;L5}cI~5RDPtD}*>&_Mck(|lK1uczdQX>2bS{k*h z(mZSnQ|peiuV4JCKRnC?8c=Qkz*{T9`yz=?;Qo=F4#~&piEUeMM!;Jz4mrw8d*zkZ zv31B%nuhvljm94&9@kw)DU>~kPWJ+A{_`BPYg3O z6_=NnkyWBX2C$C}V(NB-7RtS`@fUtvm5C%D*?UuzIHgxQlPf4zR5fzntAg2M7E__T z$-}}`R7GztCz%Q6DC}Lr^uZQd(|f*wWhSc#B|})OSow_{POp?!Nup)3(muIFP1$Xk zgDC>R!H|L;4r93o;)&|P#C+G%QMs4ci8AUt$Zpm<$pE<$9krqW{4aNv2~;w_j513C zFQhme9zB8JY|Ml@Xl}t$BZc9mxu*YUl;y?2=7^aEhzBcgv)(sOgqGR-%_u`HLypT> zIb#ZFTtqB)=oeYL`el^$mLZ39sGT=`IBDn=ztZk_-~D}AFvP)-4__No@}C9?~@;TNdIP(IdtQNT{`f+Y+)`x^f8b9GRm~E zh9CN8GcCjYMRy3W9tQ-)t$aO4bhcrY1|`F)V)8|I$u$}V7173`OF{9O^W(7Qm}Oi) zWiplj08(d`xT#^J25nW@WHic{uQ6mB+=Jb)OY-f&)%w{9?aFZgW@w21?UgZ z;SD_`;+Cr0$@GV2p!f{wV92I<3-4{?0Fak6P*YQN6B`tty;Vz$1Q}(tjA}QH1j^HThtpg44o(m60JuH<4<$NYbahnt8`hxo|cx^HsU-& zCPdbEr<;NI9dFw%{Ap|#(jAwh8(Od8CCr3uc&PL6UIR)`oVQedJ}r#9?Sul~?hU7O zy&rko{*Y)IxIYYa)|}26TU`En*ZlMKBAxZ#+ALAUhv!3VM9;(h_)i6quJ;L&ANSEP z!sfN@klkSuJm3mk?ItwT{4fe8l&F2(4h3AL1Yl)40Pib2u@^jXA3X8Uy$G29eSC(+ z43MUMBP9UI&*dKX4j~WE6G9h`n8a1y4^~0}P6p3gFu_N-!AEq#=a*4t;3Xpomsqd% zHUOg&*^`r0ya3sUr@@V%86d^%r=#en=iq0M;Kv~7D>e_uo8g_137;jB3d zZ_)Bq*Y?6jpuo=qJ-~}Oz(>(f=E4SO1MrWl3(%JGVEyhR_VtY~b6|{OV4OoBt{|+q zJ-5O@KpHw)Sb}!KhK;mGV4g!zK|+v-Lx7n6o1llliUQQk0PWHZ8?Az%hJ@gzhG6Ug zfcQLIIeKuHB8aQjmgo;2NC+8X4wU#9(oGuDYoOiV5Hh0}I`;tDCpK`rA#_qvd)gs% z13hdj!E13qciACqbRv}IE_8b#?CcCOiH#B#n4*Z4qL~K0NEZ#48O3*)_VWD|yP^#o;!<)?UPWU?g}c!3QJ9`!xnz8|vWN$A=8M z5Z%WfeT)zL@>2rIV%M(B{-SeV?!lHxI#+$I#3S_nF`vnyXrG1|97SwO>Y z)XG;%COQQ3=SqnOI>PopdM*^EZWN}j1g41XCmMD}k0qwj?NW#MYv!qXG8D1OxS1K zk!Fz?#eQzez<6pz^+I3LUW0LCYRb8lce8$%8hW3`kCx7H6!9pO`TFRoz?!p} zm`m)C!)}Lh=kNa1pQHC=`tzfQ4V}jnSuWrATsh&0b(YNSH(u65xm$~=8c8X84j9Uc z{@akbQgCrVwxkS8qu7qdjMm5GhQRzT!xVDZJT^aH4%mWCNS_ELU0L#+cqP#0f`vk) zg{*NHN(P19GrmsfiM~TNaF}Una77hQURmUNN%;OY21WQb{*DQS&V$*NPsJ%pX+w{Z zaZIV?(D@xnCD?=cSAr#J1|?*EB}1&GlFY@-dnMyXdA!7>GfSl;gC(FZrC``n(!SC) zr!qQ&(yzp2+eM`udSwTg<;-u&UXnE3l@sTczbID-3YC9& zQxQU3LG-->`ndw^0amsaSw)u{vlA0BlA+h&w{+ z0MLn43pXdS4r}%JrO7nc-}mLQIz=iiXCUL%tE)874FhbOJrOJbdck#J&kY97P|z8k zG!3=B@OA!<^%Qk6F3XMM(6I{3#eT}USX>Q$#tjG+U~fAbB9@!VlIu)|z1~d#@|OXD z@bO8-TFQrwEzagrg+(50O(d)h`6?~2nt;&frlIEs1q*s(E&A_+!p2x1?%C3jMql@4Dd^ACXGt@Y|7m%X$TBVhh1w%Bj9fi_3{IQ+^qoLrj?Wc3i zjz|Y&NE>WPn*tYr2)!*|q_F|MQ&iaR0rel(%=aK+qrficQ>4RM9 zHcM$!9O?MU)@mu#PKuV{gguxgpW%v-?rxG`<@CeOG&c4E+jMJdyVy6;dl#O!q2)_RlX-&NI z=mNrsz7mFZlKaX^vmv?1#!KE7LVQ)p;GW6wK}lQFizn7bmH#o|%DDbQG~O+!c=L0? z*VsUxaC#*U5C@X;1lL>wxL(>|$=RN!^p4^8mH)jCwX3{R92f5CT96pN;Jjvv`T;Is6}9D zHo$nyLX^xJpEi-Z6bP>VusqeXPW@r47D2H(^|NHo6|s@tbw+(O$(uvZH}r?USj4PL zjlt`<+{!}v@>~Yy0yfiP%xfi^-6Et?6Ch+Z^>nfPc-WGBiT3-FqWt1VzokN)HpkS- z($l4~<+g~|xlQ3^QN3j}KhO@>H42EMt*6VS&kGc=U^KvDK%GilBw|L7+Dcxj_CV<3 zWOLud3Y5#~N@?=IUjSVO`&b7zWrsq;G^=1Gg#s)gm24veRi`@ni%O=>W zmmE$thTAH}&?cSy1`6~R6xr6nir1@Y%}=!`OgCML=BV3~MmenL3)8`?)ofboQK|;8 z1F<1M*p^^ZG+S6Z*JHCH)(#2lPQ!^87FRPv@Qx7m%B?WQ%G?eLLKE9+4~JOP6k_!( zqW7T4E}`nCoYOX1U9;xdjwE%HZds(PY0Y8j9?-Z6AfQn*n>*J}r_# zy@qkk3wmOo(`2o(bmxaK2C~2bN=p2SNVin#0kY#Jtpgx}vuomYFNU))hORRqto38c z$XfFVqtX`dix({I5iG)rhwD-HQCG40fi`fc!YnG76XYg>)wy-RuVi?N|0rENUTp43 z4m;>nkNRG=uYBfZytc1ev4LpTh8))Bj&#r@UL1YdJGR!SeRA}H<8&r$7t!LBn)E1Q z3`$*cSPkzmdTjR%8-}CHnapti(c0k&QV{~+P;KJ0RuoWSdh~Qw6Fun&9BYojzPLO+ zv`jkv034Y}fud`^AZa@JkeB&xyuQQ*ICY*hbwzegTXs2N0^mQsyn1u>-p_^bTWw#+ z$fVgm#M`2`9+z#SP_X9bu#z>-V;8C>Ju#QAjOKZ3FLuOlt4PzYDAFgXCAJ^kZY&Tj z?ghq0Xfp0w@+91sq|8$}zHO>TOe)dd2o$dsl3l-p_7pu8LM}z4xLdpw4_aczuqMegk*>S)SA2%8bfq&COT|motbM81>pzPMgvM#2@^1f(W%JpB=-enl z-N=qk(kTaGvevZzc0{RuYq-_*Cp50=!$n`B{U@5E$2+S%RGa}cq2_Fu*^<)Yoh#iv zRLBWbO4t?E7l)w6$aE56)mNvx)7AEIBkWff@1enUl9vu=hj7>;4UJOxg_aLOBrixc zqwG&;l(3vIpL}R}-tbKjis(srk(QHZfdurqIb186jDc|gO;cJLx9_=s@BA12d& z$I#EY?1a-`N8&}Z-+=|6+A{)xr?X#}_rwXiXcEAnMVNv?IQmSHe6(aQ|4vcfLqFVa zmJ`K*lMNY70L%Pk5DZ^{fvaa$SZ5;(aiFIV4A=#V&$7vySHwg(?suxk^BQ`ptGkar z%X)p4ko5qAiNX#UfS5wL45C0_27sZ`vBnJYVbNAgN-#7rOpLyKu9cM`f|Ql5X?v-W zQ_y(*A}jZStyW&e9Ey5YDO?LxUc(*gj!Vg&171NpoL`<&Es&^aUNha7X{pmscdkIE zyq8I(Fs{@NUq2V>tE%PKth!~t8vd`V#*K_0GtK*bzp5J!n<``u3gdSJFvZci;5cG1 z@iaYQa6O{P!PC6Rn2@0zHUx@EbI3dwHH#w1pqV#)Ac{cy-0&%c?thl~`GkLR#EraDk_ z%+FhrbIKGauS#LqW7UR8I%GWwAxrEs&Ksb`GO1)p%ZkZuAl4?U>Ak}!lFm_lKGqYa z(>(QBA7kDMYLqWJ`A}p5xBUT9W9Z^T2q)Widn~!nh2GO$vraDUTW62Fd1p-H!eZjq z8`AQ=rp^KEbS=1%RRcZEG8keu)7-teWMfS5GbjDr4f!C%)%*@NZOkv`Lza=z;td%6 zh!(DP^|PGZ=Y3RPQ~VBNr@W2(k{6fmmK*O{6NebqRvgxBX&ldv)Yj`C$Nk}PjwZ$W zzq!9iO1QomYyiefBlxikJA{+@RjV@qE$*8`pd#L%1!LWA$;0&u{UF;E$r$v=M{%(| zaUluNWO(XeT#!14OrpTMV@hc2;4d>?w_e{Q)n^$QlyER)nJKTK(?OgvWhX<6d7LiSL2+jD zR@Q(W5z~S!=ve($RgmX;GQ!l_CV30Nqvg|kl7Lgptanf>g7tXsjH3qe=MeyvBu#W7 zRxv6|fPon1G!IWa*$i~cKE_YfM3HDNaC=;hG0amNQNq?(P|bG(A>3n@Qafunbo~wJ zdX(=z>14ii=yz=CnrN>dYnKfHr@r|?Mn&}VC+JArr3h^xh`8 zKwdy01!u5R@(J4FK^M76M2?Q7+^1-V?nMJH@m2THA(lYqaFe5t7faN6$T%F;RNf2U zqt~N{Vx73c_DkSTL?DWoYdp1;3A&6S!7L@^83rqdOHvgk$U7W!xLE4(ex{&bRj-vg zdrDs2BI)C70!FE$S0Lt?eMfQ5hw3Ag;xH+fnUEq#+l3CsHDsN0<9&wSxt2sGh`b-o zBxH@yvUzD4KHRM%lErc$qwKCWK*%&+=cz-WjN2@p9q~|trJw;voZdmz827@Cyt~&; zj!dN|XK>|?yPK!dN0q`?EWExi+E(nXUog7fyd8LbEn{VIkD&lrz5tkb4Mrd~i8@)f zg5Kq9c{?MH<|t8O8&wpd$p$uDK8Erj&euqimYwV<;>IXbqp*#z5IGqBX zb%KFLvV%-Gx>W2Ubmcc5B(4$ow-kLc7$h+yxC!el3 zL+F4eDWlC9N5%M-=vA%{S`O!=?CrGar^{P-7kV12-!Ey*98nd4@I^j1wE4R?L_}wx zj?6KDYh-)iB2JMT*D51ZPDf8J4}}_vP#*a;ffvG-JTwe0$9(pH?^=o8Z4EU8s?|{A zU6NuPv~7X!(e@_+Q^}O?jEC&46jJp|vnT|%h4C4Ovh$$dLus?cwynmcnojaHb+#3m zKE`sFOAGzPA|)a?lF-OmC~2S#9&$NMjTDxb=0WjUZL6u7{qpiU+7Rwi%?GVuxW)bN z_2qK9qR>Egtd+lu&lahB8xXZ6l}I30e=^lI@#~Io6lfz#ytnJ(?)G3T@J8O*vv044 zwg{?M-teT~Y-HaYPE$Gf!aYBfGMb*~Xkk4@?ZJPoaJPMz}{vJR*8NrJwA4 zYDlf^8m-c0oiM%e$b|Dob1Oxdb>DHy9sD{Sp6Gyw#Azm3&juS`?NA}SaUd0F^HXT` z_%Q1!xFpQBDtdT-DCTjbz3tA#ca`T?d`8t}Qv>mOXwuJCwK9hH%P6xs7i@%xweMOt zI)^`MUf)J?V9QP2@%3*hM3PAFp-4Lk`P#hdjq5meZ+LZG*s@z5<`@bK#Fa=DXpQ4^ z&y+b=xd|fSD8Qz*Kt003^UI;K4JhblLm54*E`Y zyUG3LdZe)aH2lp6#ZF_O8piGJwJd}PArpoS`(((Yl9Kw7a)*lI&pS7ac??5opf-ZcXGA+eM_q zvsVm`u@kt~9I&4Key{?_h4*KC#)I_5M}(paijC(Dvkx)IC=>1A^5B8Z=`3w#8=&>2 z{%w@8rtpg3bpcN5>G--iZ@Ldvx=W0C-?()5<3Y0V_3+8|@UOJf_=LP)LF9bt7Ru@2 zO6kla>>2eA!Pe;!zv+><;p3R_6+r0r#^l}2?vZ8h=B?mE!R8CtXex6?kOakNHT={k zkkT`}N?6_GlD!%_Jg3IJeZgFcDO>{$y*jdex;tEglD<@A{92g2ZzZ`kYraFN`uwaGyk!PpvJ&W(XE(SC!IPj=XYFcgD989dmLA#wnLxSPTB8*UCs z$gmQ~@EL@t?7<|+vSiAFz#NXj21ri8P+^WR(vElLj-V**P@;%%?hQp=NaIH%_2`_?#HN#WEf-NgwT6aXCGZEAZdE7`X+!JNox8W5-X}hU;mnfQA_IX@~eq6MM z`!+}79(iEYV*H-3Xg8*HpKtI9QgY&l#N<1P=$Y}c9f{qW@fCy#Xs9f(+H~;VK}e2? z>>vs476F)9Np~+v{HO`9q6w~MNoT%sL`JFiCz4!G6BRA>Xtt9deJ9alC(XCN+XnQ0 z=$$-g7hY5i#!Q|31T}?+I)z_bhuJ!b%|EpzDCMC%*_tzfj8pKg7AR#dIz@gP^sE~4 z;v-EEHAPrEMY9S=i5i28+C!x_M3OoI^-4#pJN=+2on<85`bCEDNSfSqnoW%9;!7_x z|1=9u4(q5SJF09R@^sIH^fxLTE~-gx-5EX7nHpwUzEVv7)ba1SGXiR;oUt=)S+YSj zGa|0jty42%j78$ELlQW$q8!13M6(WbatC~J+;Va`nzQma@d~fwioMfHyRlNWat|jm zXmZm~({f6Pvujtg8mkh7wbNR!(&}=-I&yR05amg5=De-u*nH=9BILt101z2ojEdgm zc!1D{ISZV5tI+^!R0S*08lpRr3RG8 zD%QmU>UWpYb?3NnmawUov{;vd@jR-DR3Hih+E$n9p;UvAS31?ayHW$X)l_<80e!E_ z9kUuNXJ3O*d{_H*Qnco785W87E(C<6m=O z$vxBqUAqv^HoiP;1a53x;QV+)x;etJiGsU=iuB_n(`Jz7W~uKF)VR%$NNS=z6L58! zh`pM4(;I=bfO9nncbu(pMlAwyt*niT0s_DwZ2-EW1CHE6sa0OL4ufwW?*r>EPero!a#HQ!G>WlnmD3o?8o z`~6Jp(gp|fOgyVj9y?BeBWqGSD+gm}lYP_&6T~geOsCW0IuY`xvtcG7+b46xIpg2M z7vfAu&BmANOu4&G$tO))v`^RVDmK1{Z4#d?%CoF9nNjnf2Fst7Q=IJshYtKs5AT|e z>dgAwP7~+M3b)VB%1ln6&o79ZK;_vulX=Pa^BcXh6zj8F+@o{5^ZPoM+r0DF8gsp_ z^UUe<*StBPe9_Ob^9RnRM>GpZ?z3&$3y6JFaH>-%fjsE(Xqaz}fP9MsV$kxxMfCIq z;`k@{`Ovp8mXPJFP#-TX@GZw^FN5GOQRfelK9zlhX+V#^6f!mcS$Ao}Ygs9CiT%wG zGrj`%{t`BP;>|uVK+pPXyWJIu{}l#mJ?Y9N_*W~P?n^t9E7JWd>U%4PXyeJ;64^_WRqIpr@`iEe5d%yV+N187IFtxV*4-p?7b><&{KDYk&4v-L! zk)Zgj{5DEqBKq3`h%EEUZ}GN&Oqq9-_IC`}d639{Os;mE=zdK7`jl;cllFBmUB5P? z+%Zr=Dkz>KC;zEv-8xr7Cb3>4|7}rh{Zl!NGgJRl-i%ZK-jmzaQ-#8F(I@90RL?V< z&skVbbJ0$_s?W{#j~_1pNE;p~7T0z4bM^6O4d>Z4{m@W>vB4S=@>)_yP^ zgXu5uc+URmj$P@Wx&>ZW} z_@>KvzpJqX7y!>_vK(4&0RZdZ$vE!sGT_aU;R0&c)<3<@+dnUUeO^j$Y8-FP8h<^8 zxnDhZT_=GATzE|P`^teBtqd=|0!SV_h`n+@Sqqmp1ODXq7Kin&M>L$r{lI5|yN{AC zV3O`+w66Uy0Z@=kDTR8V_{_){Ab5~_hRZI3XN}AP|V6{C7rK z-XIREy$vWn)9(*>M}!QD&kB6}X@41IH)Jyf|7?^U&!XT0PPhwuGlr=pQ$DKa!YuiQ<$()(|Hp=3iQQN}{QRsgu5S=Q8&MK=`xp+B z4sXaCKyU7r?3(9(ZvL9o$)G*HAIK<6RQ!letH!e|Ta5{r!ujH7yTE~hA6(7yKoCMV zlz`_$1!Tha1x6QEE(3WNcXCY41?IJ;g21ieX1?b4h3_^|L)C57~HZbYN?-@3dq`N+my^nXKztasv zOL8R53Y6bV3A8BGA^;PW=jBh1L9Y=8q#*?4XSBaQg5onKbc1}Scfy&OK}AjE#gely zols(9haSlmLy2(8kmx>dAhJxFv6(kqIn>Sh>WcFcL zbQ(y_FIG*+)gfukBl011V=Vf5p8ycZ^vVR#CXzZlg*A^q7^P2~CkDv~*%>5hML22; z=y}B^d%9Ok80OW?8FjK@V-e;-XCt++VA%yB^Rp{buS_dS%ByyBQL$M_i0a3!_VP4b zcomT_?`Wxb2-JtTJ{1QH+bwhSzB2F7jJevbM!w4m!-W{AVA)S~2C^Jv26M6=<|ezb z9u*e1vHp(F4rxR9{Wd+b`#LcF;HA09rRmq01tQ_Uxj01gsxJ0M_r zNxR-fRrnCIs zINu>Z4O)E_^H612+KZ0h*+3aPW>ricI}y1|;gB5M6gWC8K|iZs^HL@coM{sPnjFs) z*5E22B?p$&`%y?LDmbQuotQqla735BniSPym%GxU9mh8|zSS_&au zwC;#rRCUT8I|*y3w5M&+WbE{32xYGTFcG6`x)sr_uh)*97SP5ihc6^t5ag1)P4APh zXLNl}93_GesxvRQ^$TBECVs_dXpF)HZ-udasZkP;UJZ8emdFCtYjTJ=4(ZbaCqmou zvT>ovMAwO>xg$|>nOe!j;S<41EoXA+UJqyVlJb-GYJdgbIf_2jA5H}VY74197{vz! z%@j)47O@%~N~adh`f|q#OV^Ssb{om$>e&|SG0H2L-pEx})s{jK6-$hh&ljEMWE;6Zz+vrR3u9JY-`GNB@Gd6lxL^vs$+KdjIE0^7K97*YG0`=ZXK32 zj_MkEi;sEqu~v4QY#UO(P}?+jt6Y=DH_ky7TW_PUo^I(iEf=2Ib_dU#5JWcb<%ZhV zLa1L>eazp<-EiC%Nw`@Xs0YPo`s>G>k5?aQfj76KPL~uLK}R1QUO{nCg!4GyZ9^v* zmBltP<&UHn1ttVLTEFo(n{{Fh-L!=j@h8cf@3cSG1m4mHofc@CsVDSMf8X;fkK4k? zhU}>@ybQKZ8A9g`?c*d448`)+#`&-q!Jf7l9*q!%_g1)v-|dP&e1x8eB5^PngFdEu zMSx5oWJsv)O1+|Fm(D$|HuIJ~w9|x~B)V~QZ^x=@;zXNqpMS)x&6;P_MT;drVT=p( z7YhWUzTKr`pPT%g8hGh}9#WF3@7Z;b`v;g*>a9QuP#*d2Wp4QmbTg5(%@|Kr+UXKuTloN#!n(CRS#hx~;ZfI1dY~?OC8a z(LIk`P@})|j7*KxWN_{o%X?q*Oko-#*}R0_Ru@_|x^6l>GP}lk-`ufEU^yJW5+=pe zwB4$lNf}#s!dc!-F=gtwuCPi8GRg=?2VJj|TY+K79iz$SC7sP12b>PE@7q>=C44rJ z+NpaGKVJsIvxlLzGg~vbrG*N_Z;3oG4|r2paYU{(5DPdCxi?>()~xK}2oQ{Di!Ub{ z=kN8pI(FNp8K*f9?KeU-HTnWAJ}Ar`l=C-9#!#DQ!4Dsn`94YJwApa1GoY*gWL@~f zC_B;n_IE~^=YJVxG|pNv8UJ9E?Pr5LhL*WW*N5)6e;8%YZeIUvl>Pi8K8tR<`9F`( zT*hD^|4m{B5C4{ooQ;`9nuS%CnN@+6Ri2GafsO6gk)1<5)< z><^1fh*f}>nU9^3hl!q>n(iCR|Bx!!Dct;y2CYKl8;U5DhK!ADSk*x)$aZPWJYmLC$_P?*HJG^#;cG z2PJ@}H#ngvBrYr@Ixr|IJTfjSCNVA{^=}q$g<@Nt9 z9~;ceA4)8rjjCNqX<8_4o2+jgXlm(dZs}@i1r=m}L}cBa-2>gdL%n^&{exq}qf^tf zi}MTrMV9@OT?YEQV0mR@Wp#7)ubOOQcXMlRd;4H#=WuuTk2(6stn8nfveTpAh}rL^ z?DG8l^5Wv^;_~_rvg}{Wvh%Au&_fqjzbLco>-(FV``g=xU-P>u`@5{{cT@I9S@!$* zA3!ruYxdhQ1GQivk?iR=O7*4Io>nJ`jdrp+O6Na$MQ`H;GxIz$cH32bEumS)K|gF;m9o?GVgS zwQ30XOhQA9f&SUqrf@&azn&30^-_?;Jb7EDHh zUeRG*5?qskVSpcbk#~^WP{Jp>A&l&z!Y5m@d|*W%`EiNF*^eWG?7boi*W9(Dg^Z#y zOhZkN38RzBfisM}^7PZAlj^P8p%X2du7b@9&)dk8x)r-;oln!8(5DSM?@3G>{N;>G zYfFK%IrSHPSjD&pW%6gO4^4Jvt=@&rXGPwF6c-%{SIvrTup}mnZO}h=&znxc@2ERb z6heqv5ef4y`ml?8E&7}}M#@y(0q_ZRX!#}dF&kbcin^ktc-JFeesaT%e)%eeiYWwJ z;Rz7Rm>i&^+g81n3q?~Fk_2y7?mc;WzPRE2SDo}`! z)4an+P8DJ1%c5>R%hw-<<#0lNypp7fX%_L+G=0hN@{4oyZ$Ed8IJ}MNIjJ_b6x{_U zn&cbDIv8=90dJ+g-jHXckC>Hw%jfc;>YQ_8JrriW>7+j)lU=S4UWa+_At}{q->wMj zQa!T8=;?9r=$+7!4JbDID8JhZcB28W<1DAAV>FiFvZ_YKB{_Ei12fOO2 zKIp1G9o1uu_kJ!3KVnR=8&1boNvmGx0PG0p4)~5iC)Q6NjSY>!aP@8XfrxRG@((jo zqB`fszC@_<7N{P=NEUD&G5{kDtq9y-P?#Pr-0(jR+;M6590I}VyK5K}mO}6JE`v7a z^pKw@8zOo|Tx3mDkjfCtSx4<7{k69NyZHR8lPuwa{JD4$?zlu)EbcN!!h5v%y=d#T zZ%h!$FkA26S7@<%+=@}c3j|Aa-P`)apA?a=6b+*Fe6&Qg)|q{l9D*Zz#|UPOfQyIf zkZM*Y|5Sxc3a^qn@Kq^(|C;Qnf}=|$(^(+2ks7)a2>b53iX1wjfH2yT)Tar zn3W+w-oP0~9ZF&kj4(!Rah2jVs?3l$I&o2)6qh$YM&<_Wd9nY%$XSJaLEF;bsa=xQ zHD4f1a5ecF?}tI5T`BL)kp`*EvB^oxC+!+)`+9RK&C~c(jr&$~w z&dJYeWj3|rGnjz_0+LkCrQCA74gLtD<*1|{YEV`pX?5~JghLurXdaNY7*TK34`r8b zKO8#68rfQ0Aun}p#ud1tRT&W`t927;XgZTtnc%jE_49ISM(S6Y9U>!=@!vK?M4g#& zd8-QF_cQ>}>@(QMS7tfCV0^r{!w?_WAsO6idb#N@#d` zFzCGhvv0P8Wy#%3ABGW3Y`25gem}?-S07_3zxz8eqgJes8~$QK@=xDvkMfttuyl=L zeC)&?E#JeR#7rQ2?+vl#sOnThTFdXmjBr2${flGW^ZvW6zY?>A!3m3%1ntQ`zL~rw zQp>|sjpwJF-@e%s&zJ{#qs7hh;cwq8!l6DN-=0vE?zeB&Sj;nWBr7-cS7N4MDd+9Q z3_NK3otQCMhT&vb!BT2Wo@lf`F4V;}Raq*W>a0C3f~J~k+$T>BAii0T-%l#~x6uh~m$T#*x3ox@mL+iH=AzlrV=DfoO?bL7Wy*j z3h~W|b5^tIZ%a&TEGS1su&N@$=gSm-R_MN*Xic{*woLu3@qRfq!f0O}R=jP1_-0n= zyo}To2sr1h?0VI7aj4;O_Q{hm%UsDV03IDC_#KP@RebDfAOAPhR@Q= z_k{FzD((W!=6jN{0h%$r4^l%XOHz9}DWrP(XIgDdhxEI|CrH(T?& zEzt7GWKNEpe*)iO_`{l|U3k6k2jBkj&8DBL56PzXEMTw7lwRBzDY2cABu=%#&-=Sv zzkRdrdyZev8@iG>2Q^)fOG@WbMuse&bddY3vzPC`eY0tyrEyl5@rfYpv@OJ_9zR&E z08koYzXtvl9$~trnN$8B-;CSON!jqllCa1~ha1=bddXL(3_(#DiuHfvo0S9P>kxGg zVeqspfW0UM`GM%T$gC~ChO`J;2*`^6$v0C3AQws*SfmklKzy@u#UhArChf0K4)_ng znMN71pkpA=7^UzE$&_0#iv4UZ7 zXIk;MR`D12=2ryq2i)d29`OLeggIcmL38{PeLVMVJalUUDq%G2iaC6145Ftg@=5}p zXJYJqf*xMt7E27j?qt+Bjz@vX&yXD4oKz%bm@LF z0TwHP`flm8h={e0zkRc)2jqZ+^f;av?*}uwyYv)oUl#YYAL(hDQo&)Zz+6vY>;tgy zI6>1g*7`$6IghW)Xn^d4SqM*NopyZUv6)zUX0xZ4jApuSYeqd!CV4(w&O=5t5~2q9>!ntqQE66&%gCUrp zE&H`i!N77sWJb_Coub;FT=m0TD`S*d%|gLP$E9>%Os_ab)`J_7ebcm($nYkt>LCQL2kY$fh+yUy3rAJ`_ zDft0nC-D*|C5lMUzB2`>@)@P!aq&?O@YTr>WECipl5au zQu)|%_B-ivG0qSOZZ;Vb0z5X?Z!69_E{^xA_)z}YmNO*$bPQO=9WfP zfV_e$h|IDI!hMb^7;eG?2`Yj;%UZpv>OhskZb=|e4*O!s2vPON@+zsJs?wvX_wW!X zsajjQdcvYQC8GKrdV}0xAPbFS z)Esx(h_lr~B@HEe)$HWm3M6h(%7?`X2sS+hSuth?5SyxMgG!_AwH}%VA!`D7p<|yw zb#hQtEt#X!56jKw=wjmTpZHCI%a+T4i?RBRhTiaF; zUnj7=wH=HSZ1&WFcLnT!GD$6P9479XYtF1Xu75+=T))yjjnXbF45wiPrz+fe?cJ)h z1z?kgKCS#hxdq%fHSuNW0z5laWPv77idM3^mDd1DS6!EKa6g`U9G_s9+Jg|PI-mI( ziDd}s@q0+tZPT^O4#(R%BfAk%o6g63P)WKm`MZ^R0L(`n_1?Yb3^_?(dpRd;_u9+H zi2LBG@^JO~6a)I`&w3c2dt`fpXr2M@vWwVB2)UjIKxtVFZCRA4S=8AB7?=a1F@10J z2Clsa-T(*W|EuUxCk>cmfWB`uj^9`wL4w)C^2W5{&Y~_cZWrm*ty-?fb zdPYRgM&ji=jqHLb1A3^0M^!9G&A)nQW)IOl=Bttv2&`u*WOd65kLmi1VVw2R(T`e= zclwber}h?oK^+tsLt1qo|03(krqhSE)zuZ#*E7+F%^ws)+@2Jj{!(dmD3v-+(xZv& zpA(apmz_?73b({Gu)^Q%p%)~F()JB?YM3eI8%hAQ*3>X#nG5pdIO8N<+xXej)D_9} zHRA*wH?;Q?K%l+bKWkdWldu}Os%oGy)5i;gXYNHwRwQ;$ZF8%d+UbF=q(lm)^ODS6undn6J7XW4F zJh#GP#uKcCKtDp(qFwVM&Eg_H4|M!Ez?gZ_MWNHjr{aTviI=aXkAjJxZ{mR69HPKd zXlyHAY+0m$Lv-iTTRF3M`@{{sW+#DJQ~ed!oLS44v@BAKSOJqf`^1{8o?yt?rJUCN z$d%8N>6MeKIRa+2Xlqj_i^ckD^S0d)IcrI+YZ{BIl(%a==Z!`D>jPkc&UDgXYGo)M zU8uXN^bv)uF@5t1Qj;mP)fL8-7mn@B#P$1KpV@mY2CFZ zo{WXujs?j#yDNIZR7Nw{Gh^^IJCwXBf@D3?868G)du%p)J$AuVY+KmMQ1Y959;Edt z9~?eR^?sI{2g%O}cy6qaetSpXsnylz=DTie&=8<^KuQ9Hp6mzPY$jctH(tdCD`FlR zkZeh2?vmbidN}m+RQ0Pn%u{ObDtYg6fM7!m2F?@?<+GO(6P==`dcA6L$S-2vbtVwT z1!MOM$bRN%s!1jIU&}_sz>jMt-)itFlIxK zO1fxFQ4FT&ImPIh48Pd>AWPUk)vKb{#iw`bJC!5@-ZXRwc2qpVWZBjb-gb^&byaMf z^E}^aA8M>wXeLY2?fPO+6a3ll81rIWt>>g#@!ZDi@WQVngyd38@X|mQD&66tcmmLJ zUeZ%zjKq62JU$9vJEh@Jyz8)yIz6JC|K)Z5vDx}SA_aIHM+ww~I(M#f@|bb?Zu5JL zT?_Bi6&}%dy0i%auWQHEiRr5I_|0?B8)#ysbydeXG{BJqSr%u!v5M>z?`6?pjQbnI zdZusJtU|MLM!TTS3&M_R`^Otp&$3;7uDG!^zO zFm5~_7J1t{>F)35VrPOrHe<5hWsU7HxSf%voy~zg2B)KEX^yT-U#7G%+J}Xn9;==a zhn`6eo@bAq6j7e(q+ddPCl#+chz#ztSPs_X4L7@uw_eARqdmRRdPwzs(71vsur|Mtz|N&om}VQ8d+Ap{?G{(WNRq9tY)8$_d!E1scZKIXx!-|X{B^*}!J-+VKB zK>(53(F_7lsoh|Wv(Pn1 z>d^+*^EkNE*;9iq-#Z;Rz4>z0zR+~Vj5kd-Mg>&Qf?*`BmYZqr%!Z1Dnm;V2as>Rr z@V;&=7PILL!^zn?KMjy$LRFSWw<3*K6$@lb3I|-3Q7V0ZZF;xeT#XmRzLv_>dvJ~} ziWD;RB)WGwdCzaGb01`p zNN6;>6C|29%2$CHf+26;A#%-Qh!KArcstz4UYrO*H-%N9!_q;CfyM$M2MXh)t9%Fn z3ImN=kO)v4WNR$Wz6y}G>@~=-;_keaoAqmKkk61tOr%GNGn*8LQ4fhNeKp$%u7HM` z98jfW8l=9E6Z!?)*v0nH7&E~?o}Da>%;bpGfJvrof<&k2(-%pT;s}7vkpvV3(Z9~m z55idHZ=BD%rA}!S)--Qgn1WYmVi8j)`JI?aaA=I{?Kf!}3I(ZacF?ysX_>||zt=QA zeQeUU%=4vRHdoKY)wZo2)Zj2LBSq2q*ln+&JvWp$ zT>9RZ3hry3A8bysS&}e~VBmnlyX0`_lHA5{L|=EdXtCb)8wX=skRvhQDkB=d$675y zg5z8cfMO1bLuxa-=pMXk93Esx-B16F4dJGe97-qajkKlnYcwrMm1?_bBdW);tad)Vjg#>>3t0+#BJYHGts4+L ziuah`jzLLvPYZ_E4w%8M;5RRSEm(R@ZL`#Q0pdc;zMdk+7k&z!A@II79k|%ItB)26 z`;;K@(eHjsdok;26{d9aMpG&%N5@1L!3glp zKY^z1)zAL5+bj5}k+)D3N6|*(aqgJ@i4(rWBU^8e*qYbuKf)B)Zrw>D3Jn;?*&S5o z?Q$-)PVY~nnxc@v2;Xvt0DCPTcTrDnOL(C;zedhe82ws=j;gm7@j;0!*dqgWAvv%H zvcr;%Ts4a}(TJl?wo~rDTS^#8Wucfr*~RRn>pzH`2}Fz}c>r08;WfvHf7&(OpiB=r zr1<(?HX9#14OOoOU7aGlDn*v~H;(a)iDsrxdXpg*qPRBL)&|wgu^vRn15#7WJMZ(Ho*~<- z-T9d#uqgazEChb8V9Fr>Ab43f=+S$4YippAM9N4kpt}+w`AlI1n%BiPBWx0i!=X?s zK9rGK>JY_BVTRww6UA>+3*~e%bPBX)7Al{N3pHw z2a8pallp@KlUL$%7v+h6I(wmJ6;9?=k?4LXY6A!25iKxF=cK7*@GeX8x*FIOh*1o? zwHm|!EEcCR-irXq?8U}<4Z~ERQ^_p`C%j5wu3SSR%o@atL&M>U)xl#ue%DY?;6(7F zYMoQLrB%=^Ef;3*0RD4N44GKc$<3(_pq;4~YZ0Wt4$*K$xuY|BQHz2LIF+(^4rQ-H z^Qs8u-wijs(nzhIYO-L!e#cAeD1s6)zIBut0MERx_9;4R<5t7FZ?+S!#ZE%Z@5d8Q z$HFba=FdG}+=LKnt-H20wE(dw+}AqV=ydIuHDMF@2f)sVv@2)xv#MR9?W=YL7ORgk0rK$@`ABYoCHlmbx? zRy!s&xfwgumzb9C8+_!;#^goiupmb_z?yIzB+Q*}V<5H?74C(zMb1ZpY((l0;%W$a zej8UgNjGY+#+^KyfWo`UfEGLqV9|53cT^9E43A0MMn)Nxm1J)N@>jR`1eID>jTFu8 z92JU&%%ZotRMMjzi(HnENYaiJU<;hsGJ9#~NV-;B{;*ayweKqq<2aRPW>Q~TUBqW- ztPv-*HJGzmY-@9^3nj(UXn{BblFg@!3n$5_Yb(=Ju2m^IPyzuv?EjjW!MlS71st5y z*Vc^+#NY~B?JU5-=PQ?8u8pdpGss#`>vu!$T|YZN`rWO4+ky{m>+ZX78%EzmP-^Nx z3RUJEfI-WYbsO+kg<>BN!_aJIhX3yfp(JTWa!06MkV7RZ=UjWDtc|+9sQA5xR+zpRB}w2 z&9Nqe=A8A-O}V@827?gqELwzX1E1U}@lM;)LRWGYF)5RYrRU22X5|+-`g7Z1KC!YX zx71pn3;&Pm8&ocL9r%K@_GMn*P|!VwhAWrzX*;%m#CddulOD$occjDC=8eetou@1% z@2ur`&Yps;emop^9Co5VW~=2WmxOo5D*noyuM|9~8jd`D!13PHw7Mnn;`nC&(PKSN z_GaS3_xkvU_tAV8E%}TnnZesXiP_Sy-)&R3?}hufr@2cQ?6B$dozsnLUjK2b+kmjQ zjo)4_!~LK4h5Y}Sn05Pu@4o%|h0p`Q>A4pR=En?eG3q*W?8+zy2;X-hg!CY$^dQ2* zCK7ko_P4eKw>Jxi3J~;Q!1iL|^uD70dGS-}3THU>Af@yY7K=cB64Bn1 z0>g)f!`CbfcPrLQj?+g$-ABnTiX|S5>%*2f(~9o{MO)rWpVG%rEXX_p7D07suUqbE zy6U02>0^cMXTuT0LVX`EE&Lj(YvwdkFu#w}r5|x3m~p-rb-s^GEn1nNpMSnzU{6fI zCxoUrI_Og$7sNMP7vv!UkyiDOt48x5^-F~eKzuVOCb2l~{%rzrvH1Z7adFoV;^_hH z^>QfW*#j!~(NWpn+LO(c`rNEth`5qk(~^fwASjM&UvIy+H$I7CZ8=Q*IXg-cCrFd|>III+K)UIlDy?_Se1Tr%Y7L5Y71ehJC zQ<}znma!Uil<1|~n7Sr{ z#V`qV1;pj3)a4N275~BIz??<#o#i#FPwtZL7=sg}0y zKAfMx+9!pz3S6BZBwwo*q;fH#XdHvybHgwj0kX^2+9%gKJ0rUWbvyTU+e!6$nvi;5 z*7|#q;n>kU*R4Z5xmgszY0C}uJ%hf1J))L(@>jqwo(13RT^=~%7J{?wi? z(P=?TsWgu)+=#?jhJFtSX1#}IV+&^Xc$Jy2zc#49vA>adzp*yCu>m2@={L6|40fvZ zA<)@gYUIAa=JwBxLvw>ub%QgAZx)Mm5^Hb>w|SAHG8L*^D}kboxF$;ur^*Ir_H(6i zU(^3Z^TAcWl5{mVNk6AtfBok-*5wV!#7OXqAz%|4Dh>%6{0&fw1b1r)pNoVrq>o5u z^q$@bMsf>3!3fpC2!+K6SAA3k80A_hj`&4Q0k&>#M6_2;0Ud^NoO5W9OXh zC$x@dg^HI!BzVki42__St8J9rE%LNT3R;u*Y&$?<6Kn(U4!)HMIo{4|gDtwaoj18A zl<-E3r8@`*Cd?W;lM*^ca7YFO+TNr}cQpDD)rLuzZdsNy`M2z7YNRn*@rY` z8TaPQ=m$Uo3rdy)eC`7j#RGGeEsM>4)&L8m+kLBC3lqFur>favG!0eqP^A%A@um3og!wLo6loB{y;Qpe5rLOs*cFn$et2t7#ZWj0q$rAj{R`S56)WW#g!hgsj0BmWB zZWTmk70hB~E_j42XUuPoqQiC=X|Ug5zvwn}v?vf3Gj!xxddN##!`F;NcV)KTB$`2f ztS@*Bl(uFzIL5cKrt~`oc5P*_9JAJ0r{*GMvTS9$9p`i%r=#z`r8S3KCZck!Vh^l5 zEh0+NOyh5py*QER)Ph)YjmD~N*oJH>;kT+6PclYMsBdlR;caU;gX=ks8^K0R21a9~ zHumsy%?Vb;xjNxmHW47(@={Zf?}s{oLJnpi+NORc;u#CsSq8lw_9k>6-r1n!*^q@@ zznfi#^chC(8L<59Rh-@6rrkJ;VWH$VaI^Gc5!r?|Xt~tkF!IQ%bJG?-ls~aK@*An~ zr7zTqpV4`a0fNKk>C5)U=H}+m`Q^g-R?Yc#sr_26(T=18jG)6V*bbzjx_F@US@7L* z7gA!cE}e1^DxL}R$i?}E@ueWl`N0Jh-p6b7%S)Dzw1OY6x-M=FKGKI>-jIE~YeqV& zxxC+0{-F4^FzwMKv?wOzF7wVPT>B>*y;LA zvrA9^O*-Hv8+L_A>8G61O?>d2M)*=D?sqNA4)rAzUBhY3C1-ujpW5-QI(I)a27lt> z-*)f*6cV@%Nm@eGzBP9LPU8Q=lCH|CHqkn--C|n9u58XM+|_}V4+5QG!@0esb8mQm z_vxFS6UMD;cbgm7-923KjwAiflg=&w{jC?qym$8xA46WRJNMn$+hj1`?0Kx^d3^YJ zV(EGE&<9Lo1&aRh^culO4f~l}9ePUYWnS}T!SZF%{becKcfc?px#$MwwXZJYOIpOs z#^KB6-OD!wzr~M8T#i8~(jB0dhqd9ChL(04H1J_K_$VEGtn{+&9?Z@Lo)H6=Xo7Xd zUp(@`SNOla)BW0N@#Dg@`O$tad+9f83GV#_zE1!3Q1OIScX4_Up5G-T!Of43d}$ z+bUN({dluj#ifZZ4?cD^?npElPGYvbWm;`Cm&<+jN~jdBhWKWwHg_zW9bR|W=cjj< z(-j)WSS+a64k9f`gcbH@_iy(`l13XiJ`*r$_GfZoL!CXmKbk3&N^WKZzCWpoV5KtS zf8aPmF^Tx}jH|MUE=cDm*z#5em=f2iU5Kx+9q=yzgf za8C$Y@tY6DB@e~bDPIgQ#J$gVK=rz(h@iOMBM%RiSl$d}r~vJVA+67d$q6o#e+Vieh<*aB`w%sf)u5uRR$`O-O}lUx|`z!=Up3D8w<~xNnMOFJxqwi>lkktcois z-RV5jEFiuaA*phJoYXTW3@VD9Z~%rBaCI+$4p7GgpzkQDsB-S)Wo{A}BC3{4S+%mQ z+3uI1X9EW> zL02)StoyZJRU@F112DwzD|*R}4NS-2xe%3mpy0W8V~C8Yoq8M4w6a;c!8NdT8nErp z4LerJ!+3OtVq=JO9b2f4 zOy6K3i5UXjr$%E@VSH}lX0P04dAFo>_V|RyYb?qbg@yi!E!@a3y zLrh@+9XG{K!d~xMalF!$DXeSuxBh~Ul02*oHwKEo{Gt|gje5^t8(l=qmv{&@VdG@W zkHLb4QL502eGcSaLt}Fn_7Sq_MkHfCQ%Y0hl-T?I6zj#hb$@54XX*i9>mLQ>!+lSz z4P^U3j*JZwlxV_W!t$X=Lfrx(&t5`=!(e#6kq{RKC;%0C=-}fF;KNOI04={Ua`H$A z?&9ZA&man%oG+D)AHG6UIR?PL)G@K^?YTj~VgID?-(W7$lE66Jr?@PlSEU!D#~?jdk)V{*+1GA9v2= z{g|A|z$6?r=J^V+Rzw7lcSDm=&c_ao8K=-K98q_UO;mBFrZ#=ZW+(*2sF()8z1fli z0IrFw00D3T%Lwo;qIj?|Qg75p$IQ_uQiX#`n2H`UVJE&D!wYHL}5Y5{_ zz#8ME`jBulTHeq5@+2avnHN5&s};>m=Eko+YS;B3U6pYG?nP`ov_$F0BF5B8zvNfz zSVpcsOoir_0Pwj3VXj@#gqSE`xd)070r?>=Zz;0qo-BnYJtc#aa5PZa3q&Cc-s-gg z0FM+Mq3^eHfISM20IME4*r*A!w8pZJqV(Z9h*2I)M&J@jQW+@do&b{EDyZg00)&2U zC|=+Wa8$fl=}Q|`zF>K%R|EoSN~-`)Z2Zt)H>T#$%8mLh1LUmW~4fRFRhafe($q)nGSj8GA4=9gAp?lVByuaped~a zjF>r*X_-*qXtjD#WR3O%yR^pRz-Z~UyZbC3+Gf+b*h}A6A1i!no6EhpK~^z>#)bvX z)57_5haqxODA< zH2b~G`Aaw&k)%@J?+`67c5ya;sXn(il$@{PbV0@xXx8FlTRpgqsUG|x?C_<1bUae0+VqMP_cZEWGseF z73IFhtNDI8u^fO=#yuj&;v6U?vq&t&qe@hh6(8TR&*INhCuiW0GRM#GW@)<3xaLRB z552W_!|s#81}RxZVfzA*N219!?-Fe^j}*hzhQ}>kN>n>fsD45E`I?`(m^trNTOf&< zqH{Ng@2Q25YTN(XoBM{P*;nf~8Sk&Y|Ly*v{`%$ToY2;J zI%LlZ*{{lpZZO#Y?u9`X%)Aa>k$HT14c)8{SR4hs(SuqQ|3#AzYp@30ECX}02D2y* zt4NM;s{>~<3U{CjPc{VwcFRY)UPq9XLCjr4oEm`7B}c_0Tgg~Qp4CAa8$cP#N7vCo zhL%B-Ttl0ZMYZaiJ2|0ORIQb9(173VgUL1C$ciHCe)ka{7J2_?OACanPi z9W9WqMx4IXq%5}3HHFeWhf<`xkja9Gkt~976_3enkm-W5WTDV$os#8(Vw{_jbvBRn z0-kMAg9TaqEvG5iTYPhyrpScZ)P%c;!-it+Yd-re4u?Sz7pE@g)H>&*8kb)Y7nx~z z3>6RZZm(7$PZ%X{X&7(KZX@Zdw_Qb7gH$#XR9p?a6Cf%BB~(;otB9efkqeIon=qe4RClY(QL{bM1(URzMYU-Qo@ zawr;D9S=-TNl!^hPfh_Qrep!L3bS%cAd{V2lABldN7VZ_SFgAf^shZ+aoHHKc0RRv zrKoMT^-l@;&ls|^s~^JY^$m>n4^0e=ejS`#p8mQrJG(MBw>rPD_E!eEy1Myqv-a(G z1Nm)dYin<3=U{ISayxi(czF8v9GxBh!_xa3()$xVo}K-%^e!RY6{sW}< zCwIL4ehq0IZy~MY&Ch?AJN_Z`{$uF)H>dY6>EnO<&E3Q8zn{M&$v-9JUp?giU!VUB zApfc>AD^C|AOk5TAwb{%BC&)tkbM6a8_55e*<%E@7_t06+CVl-le&EUE*&a0^BrNqFWqCMMd5c=F#MmGJ-5&MWPUh(rm;L} z)(08cy&MPDuGC0oF`{Ije=~cx5w8vYX7=dPef2;G)>e2nR==4&0xape2;;C%tqjXl zzR%VWX3rwZIzKAS?WioD7id)$1EpdaEnA3eZIo*BhuIrKE_q!Xhj&s9n&q;ojzX$9 zsc=Eoh^QLCv#rWCxqj5Hnc!sHtQlju-Hj%MXC%lSwx~RBR+=TMHk}G%WO17D^ImS8 zSMh#h3`U(iicNSeLFe*bJ@Z~c8C6)721FZs zwjPM45&1S@);PMFc0D8m^8bs4Qe?ZyJ{;ZgH4s~a5VFnv25Q0;!=?YUR_SZZ9`pug z=oIOCOxqlEHTd1{{BdSp0Rz?tr{B zD3-3~>@*fF3z$gb)D2R$=_cU@P1mpmjgoHlpQO~AsA$liFT-Edj13XyXFAZ8YhI}W z^}fMk1y_GZcUu0kt~-Gb^y8^w2>>J&(JoYc_r%ojBPWD=3F-n@#|LU}Z=l_z;{q(; z{2zC7NHYUFZuJM@n;6OWuhaU6dX>L zK82zt;maQ+4tQ$`_W(c{B;XFjjQ5AGCt_NnAK`w384dk;jFu$5TOQphD1SaWnxAmO z#7!y%G*GPZtlST^I31!BXsm99&`Pv3`DQU?Z$U3|lH{?$Ad9_}d-yZ?L`0(RSn($M zXXtV9hIbw?Uk!<^XHaF4VPo#WMeEF2UnMOyXtKV|Q@N#=&b-hNfhN zSLN;}Y+DW_)Y#8a@BM}|0I8g_6LVl9MTtwdxFyjqT|3P7IAsWx1EJ^g*_q&1AU8f)^Xx*}(`PBM1v!?)QAlo-6 z*tXlZV_5@+#y9_B_Gz&=YXkPb1Vdl;1pQCU-Zr}TeLpr?UBtHO7EJKJ zFnfO*$Z#q7-R~({e=~c#WRM1ur=~uk@{=j~A7-y1DSg5W72{!ah`~AeH?ybvFs8N0 zmeRsR!e9wu_RzlohbK%~va~r3Xn!+%69=5_8NHTqUuU%YZ z4q^5bE}XN7SL5p3%H)SySYZIl1*ApO^v)2y(S@%(Z4w=;d|@>0e!7b9em?y8^YX{~yGoEaHBqn6kEdV1>YEWe zHSkaH2on*^T!sCSK>?`CzODcxqcFm}EA6*UerN8!YQqRB0BE$C{|{#G9d|G(Jq%|L zqS_&>qN9IWJxaE4Alx7lgQl-GJfcbql8SKfzcG6Rp(+tUDs@QNhx)G~2;12Lh3OUZ z*h0jQ{G{k%RR6*3*?_`0tU{H!ki~m~f!oNr`AGUlQkhps;=_*JmgX+xt}-KGf0(_9 zFpn^>3c2ei^6-qs2ves30gDjjVZ`u1%pMRJNj`$`K@%b7C?fv|H(|sy0n?Q;KN7<1 zRe+)tfDy`vh8RU*02AYm8$1HlpE)#@K14F+q$4;`va%;q{aL4Uw#W8|n4G&^B5#!#`#vR

6Ijm#Ov1!) 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

elKZG8343PS+>SQG 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

)X?fSRw|XzNLPb7Ydgg7VMMy= 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

7ZU(U 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 From 73fdfb409281b0063d3534d79a94111e1d0231ab Mon Sep 17 00:00:00 2001 From: KHeo Date: Mon, 1 Aug 2022 11:47:32 +0900 Subject: [PATCH 04/12] runner-shared to runner-ct. --- CONTRIBUTING.md | 1 - packages/driver/package.json | 2 +- packages/driver/src/dom/blackout.ts | 2 +- .../src => runner-ct/src/dom}/dimensions.js | 0 .../src => runner-ct/src/dom}/dom.js | 0 packages/runner-ct/src/dom/index.ts | 1 + .../src/selector-playground/highlight.jsx | 0 .../selector-playground.scss | 0 .../selector-playground.scss.d.ts | 0 .../src/studio/assertions-menu.jsx | 0 .../src/studio/assertions-menu.scss | 0 .../src/studio/assertions-menu.scss.d.ts | 0 .../src/studio/index.js | 0 .../src/studio/studio-recorder.js | 0 .../src/studio/studio-recorder.spec.js | 0 packages/runner-ct/unified-runner.tsx | 7 +- packages/runner-shared/.eslintrc.json | 137 ------------------ packages/runner-shared/README.md | 6 - packages/runner-shared/package.json | 34 ----- packages/runner-shared/src/index.ts | 3 - packages/runner-shared/test/.mocharc.json | 5 - packages/runner-shared/test/helper.js | 48 ------ packages/runner-shared/test/utils.ts | 21 --- packages/runner-shared/tsconfig.json | 7 - scripts/gulp/monorepoPaths.ts | 1 - 25 files changed, 6 insertions(+), 269 deletions(-) rename packages/{runner-shared/src => runner-ct/src/dom}/dimensions.js (100%) rename packages/{runner-shared/src => runner-ct/src/dom}/dom.js (100%) create mode 100644 packages/runner-ct/src/dom/index.ts rename packages/{runner-shared => runner-ct}/src/selector-playground/highlight.jsx (100%) rename packages/{runner-shared => runner-ct}/src/selector-playground/selector-playground.scss (100%) rename packages/{runner-shared => runner-ct}/src/selector-playground/selector-playground.scss.d.ts (100%) rename packages/{runner-shared => runner-ct}/src/studio/assertions-menu.jsx (100%) rename packages/{runner-shared => runner-ct}/src/studio/assertions-menu.scss (100%) rename packages/{runner-shared => runner-ct}/src/studio/assertions-menu.scss.d.ts (100%) rename packages/{runner-shared => runner-ct}/src/studio/index.js (100%) rename packages/{runner-shared => runner-ct}/src/studio/studio-recorder.js (100%) rename packages/{runner-shared => runner-ct}/src/studio/studio-recorder.spec.js (100%) delete mode 100644 packages/runner-shared/.eslintrc.json delete mode 100644 packages/runner-shared/README.md delete mode 100644 packages/runner-shared/package.json delete mode 100644 packages/runner-shared/src/index.ts delete mode 100644 packages/runner-shared/test/.mocharc.json delete mode 100644 packages/runner-shared/test/helper.js delete mode 100644 packages/runner-shared/test/utils.ts delete mode 100644 packages/runner-shared/tsconfig.json diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 96f80861f45a..5814529ef89a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -272,7 +272,6 @@ Here is a list of the core packages in this repository with a short description, | [root](./packages/root) | `@packages/root` | Dummy package pointing at the root of the repository. | | [runner](./packages/runner) | `@packages/runner` | The runner is the minimal "chrome" around the user's application under test. | | [runner-ct](./packages/runner-ct) | `@packages/runner-ct` | The runner for component testing | - | [runner-shared](./packages/runner-shared) | `@packages/runner-shared` | The shared components between the `runner` and the `runner-ct` packages | | [server](./packages/server) | `@packages/server` | The <3 of Cypress. This orchestrates everything. The backend node process. | | [server-ct](./packages/server-ct) | `@packages/server-ct` | Some Component Testing specific overrides. Mostly extends functionality from `@packages/server` | | [socket](./packages/socket) | `@packages/socket` | A wrapper around socket.io to provide common libraries. | diff --git a/packages/driver/package.json b/packages/driver/package.json index 80b664d16fba..4e6a4048cb1b 100644 --- a/packages/driver/package.json +++ b/packages/driver/package.json @@ -22,7 +22,7 @@ "@packages/network": "0.0.0-development", "@packages/rewriter": "0.0.0-development", "@packages/runner": "0.0.0-development", - "@packages/runner-shared": "0.0.0-development", + "@packages/runner-ct": "0.0.0-development", "@packages/server": "0.0.0-development", "@packages/socket": "0.0.0-development", "@packages/ts": "0.0.0-development", diff --git a/packages/driver/src/dom/blackout.ts b/packages/driver/src/dom/blackout.ts index 00744496c32a..9e7a7e77c82a 100644 --- a/packages/driver/src/dom/blackout.ts +++ b/packages/driver/src/dom/blackout.ts @@ -1,5 +1,5 @@ import $ from 'jquery' -import $dimensions from '@packages/runner-shared/src/dimensions' +import $dimensions from '@packages/runner-ct/src/dom/dimensions' const resetStyles = ` border: none !important; diff --git a/packages/runner-shared/src/dimensions.js b/packages/runner-ct/src/dom/dimensions.js similarity index 100% rename from packages/runner-shared/src/dimensions.js rename to packages/runner-ct/src/dom/dimensions.js diff --git a/packages/runner-shared/src/dom.js b/packages/runner-ct/src/dom/dom.js similarity index 100% rename from packages/runner-shared/src/dom.js rename to packages/runner-ct/src/dom/dom.js diff --git a/packages/runner-ct/src/dom/index.ts b/packages/runner-ct/src/dom/index.ts new file mode 100644 index 000000000000..436c9b729f80 --- /dev/null +++ b/packages/runner-ct/src/dom/index.ts @@ -0,0 +1 @@ +export * from './dom' diff --git a/packages/runner-shared/src/selector-playground/highlight.jsx b/packages/runner-ct/src/selector-playground/highlight.jsx similarity index 100% rename from packages/runner-shared/src/selector-playground/highlight.jsx rename to packages/runner-ct/src/selector-playground/highlight.jsx diff --git a/packages/runner-shared/src/selector-playground/selector-playground.scss b/packages/runner-ct/src/selector-playground/selector-playground.scss similarity index 100% rename from packages/runner-shared/src/selector-playground/selector-playground.scss rename to packages/runner-ct/src/selector-playground/selector-playground.scss diff --git a/packages/runner-shared/src/selector-playground/selector-playground.scss.d.ts b/packages/runner-ct/src/selector-playground/selector-playground.scss.d.ts similarity index 100% rename from packages/runner-shared/src/selector-playground/selector-playground.scss.d.ts rename to packages/runner-ct/src/selector-playground/selector-playground.scss.d.ts diff --git a/packages/runner-shared/src/studio/assertions-menu.jsx b/packages/runner-ct/src/studio/assertions-menu.jsx similarity index 100% rename from packages/runner-shared/src/studio/assertions-menu.jsx rename to packages/runner-ct/src/studio/assertions-menu.jsx diff --git a/packages/runner-shared/src/studio/assertions-menu.scss b/packages/runner-ct/src/studio/assertions-menu.scss similarity index 100% rename from packages/runner-shared/src/studio/assertions-menu.scss rename to packages/runner-ct/src/studio/assertions-menu.scss diff --git a/packages/runner-shared/src/studio/assertions-menu.scss.d.ts b/packages/runner-ct/src/studio/assertions-menu.scss.d.ts similarity index 100% rename from packages/runner-shared/src/studio/assertions-menu.scss.d.ts rename to packages/runner-ct/src/studio/assertions-menu.scss.d.ts diff --git a/packages/runner-shared/src/studio/index.js b/packages/runner-ct/src/studio/index.js similarity index 100% rename from packages/runner-shared/src/studio/index.js rename to packages/runner-ct/src/studio/index.js diff --git a/packages/runner-shared/src/studio/studio-recorder.js b/packages/runner-ct/src/studio/studio-recorder.js similarity index 100% rename from packages/runner-shared/src/studio/studio-recorder.js rename to packages/runner-ct/src/studio/studio-recorder.js diff --git a/packages/runner-shared/src/studio/studio-recorder.spec.js b/packages/runner-ct/src/studio/studio-recorder.spec.js similarity index 100% rename from packages/runner-shared/src/studio/studio-recorder.spec.js rename to packages/runner-ct/src/studio/studio-recorder.spec.js diff --git a/packages/runner-ct/unified-runner.tsx b/packages/runner-ct/unified-runner.tsx index f7967c6d5504..0b1da15c9f92 100644 --- a/packages/runner-ct/unified-runner.tsx +++ b/packages/runner-ct/unified-runner.tsx @@ -1,14 +1,13 @@ import React from 'react' import ReactDOM from 'react-dom' import $Cypress from '@packages/driver' -import { - StudioRecorder, - dom, -} from '@packages/runner-shared' import { Reporter } from '@packages/reporter/src/main' import shortcuts from '@packages/reporter/src/lib/shortcuts' import * as MobX from 'mobx' +import { StudioRecorder } from './src/studio' +import { dom } from './src/dom' + export const UnifiedRunner = { CypressJQuery: $Cypress.$, diff --git a/packages/runner-shared/.eslintrc.json b/packages/runner-shared/.eslintrc.json deleted file mode 100644 index e9a3358d11c1..000000000000 --- a/packages/runner-shared/.eslintrc.json +++ /dev/null @@ -1,137 +0,0 @@ -{ - "plugins": [ - "cypress", - "@cypress/dev" - ], - "extends": [ - "plugin:@cypress/dev/general", - "plugin:@cypress/dev/tests", - "plugin:@cypress/dev/react", - "plugin:react/recommended", - "plugin:react-hooks/recommended", - "../reporter/src/.eslintrc.json" - ], - "parser": "@typescript-eslint/parser", - "env": { - "cypress/globals": true - }, - "rules": { - "react/display-name": "off", - "react/function-component-definition": [ - "error", - { - "namedComponents": "arrow-function", - "unnamedComponents": "arrow-function" - } - ], - "react/jsx-boolean-value": [ - "error", - "always" - ], - "react/jsx-closing-bracket-location": [ - "error", - "line-aligned" - ], - "react/jsx-closing-tag-location": "error", - "react/jsx-curly-brace-presence": [ - "error", - { - "props": "never", - "children": "never" - } - ], - "react/jsx-curly-newline": "error", - "react/jsx-filename-extension": [ - "warn", - { - "extensions": [ - ".js", - ".jsx", - ".tsx" - ] - } - ], - "react/jsx-first-prop-new-line": "error", - "react/jsx-max-props-per-line": [ - "error", - { - "maximum": 1, - "when": "multiline" - } - ], - "react/jsx-no-bind": [ - "error", - { - "ignoreDOMComponents": true - } - ], - "react/jsx-no-useless-fragment": "error", - "react/jsx-one-expression-per-line": [ - "error", - { - "allow": "literal" - } - ], - "react/jsx-sort-props": [ - "error", - { - "callbacksLast": true, - "ignoreCase": true, - "noSortAlphabetically": true, - "reservedFirst": true - } - ], - "react/jsx-tag-spacing": [ - "error", - { - "closingSlash": "never", - "beforeSelfClosing": "always" - } - ], - "react/jsx-wrap-multilines": [ - "error", - { - "declaration": "parens-new-line", - "assignment": "parens-new-line", - "return": "parens-new-line", - "arrow": "parens-new-line", - "condition": "parens-new-line", - "logical": "parens-new-line", - "prop": "parens-new-line" - } - ], - "react/no-array-index-key": "error", - "react/no-unescaped-entities": "off", - "react/prop-types": "off", - "quote-props": [ - "error", - "as-needed" - ] - }, - "overrides": [ - { - "files": [ - "lib/*" - ], - "rules": { - "no-console": 1 - } - }, - { - "files": [ - "**/*.json" - ], - "rules": { - "quotes": "off", - "comma-dangle": "off" - } - }, - { - "files": "*.tsx", - "rules": { - "no-unused-vars": "off", - "react/jsx-no-bind": "off" - } - } - ] -} diff --git a/packages/runner-shared/README.md b/packages/runner-shared/README.md deleted file mode 100644 index e98383a64c39..000000000000 --- a/packages/runner-shared/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# Runner Shared - -This is an old package, deprecated in favor of `@packages/app`. It has two remaining responsibilities before it can be entirely removed: - -1. Contains `dom.js`, which uses proprietary webpack loaders and cannot easily be imported with Vite (dev server in `@packages/app`). This is bundled via webpack in either `@packages/runner` or `@packages/runner-ct`. Once `dom.js` is free of webpack-specific loader code, we should move it to `@packages/app`. -2. Contains UI code for Cypress Studio, which was marked as experimental in Cypress 9.x and won't be part of Cypress 10.x initially. It will return at a later date. Until then, the code will be here. It's not currently used in the app. \ No newline at end of file diff --git a/packages/runner-shared/package.json b/packages/runner-shared/package.json deleted file mode 100644 index 08b6bf328910..000000000000 --- a/packages/runner-shared/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "@packages/runner-shared", - "version": "0.0.0-development", - "private": true, - "main": "src/index.ts", - "scripts": { - "test": "yarn test-unit", - "test-unit": "mocha --config test/.mocharc.json src/*.spec.* src/**/*.spec.* --exit" - }, - "dependencies": {}, - "devDependencies": { - "@cypress/react-tooltip": "0.5.3", - "@packages/driver": "0.0.0-development", - "@packages/socket": "0.0.0-development", - "@packages/web-config": "0.0.0-development", - "@popperjs/core": "2.9.2", - "ansi-to-html": "0.6.14", - "chai": "4.2.0", - "chai-enzyme": "1.0.0-beta.1", - "classnames": "2.3.1", - "enzyme": "3.11.0", - "enzyme-adapter-react-16": "1.15.2", - "lodash": "^4.17.21", - "mobx": "5.15.4", - "mobx-react": "6.1.8", - "mocha": "7.0.1", - "nanoid": "3.1.31", - "react": "16.8.6", - "react-dom": "16.8.6", - "react-popper": "2.2.5", - "react-shadow-dom-retarget-events": "1.0.11", - "sinon": "7.5.0" - } -} diff --git a/packages/runner-shared/src/index.ts b/packages/runner-shared/src/index.ts deleted file mode 100644 index d5f626c6c679..000000000000 --- a/packages/runner-shared/src/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './dom' - -export * from './studio' diff --git a/packages/runner-shared/test/.mocharc.json b/packages/runner-shared/test/.mocharc.json deleted file mode 100644 index 741f9e0f780d..000000000000 --- a/packages/runner-shared/test/.mocharc.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "file": "test/helper.js", - "require": "../web-config/node-register", - "extension": "ts,jsx,tsx,js" -} diff --git a/packages/runner-shared/test/helper.js b/packages/runner-shared/test/helper.js deleted file mode 100644 index 383df48c510b..000000000000 --- a/packages/runner-shared/test/helper.js +++ /dev/null @@ -1,48 +0,0 @@ -import { returnMockRequire, register } from '@packages/web-config/node-jsdom-setup' -import 'regenerator-runtime/runtime' -import sinon from 'sinon' - -const driverMock = {} - -register({ - enzyme: require('enzyme'), - EnzymeAdapter: require('enzyme-adapter-react-16'), - chaiEnzyme: require('chai-enzyme'), - requireOverride (depPath) { - if (depPath === '@packages/driver') { - return driverMock - } - - // TODO: refactor w/ regex - if (depPath.includes('.gif')) { - return '' - } - }, -}) - -returnMockRequire('@packages/socket/lib/browser', { - client () { - return { emit: () => {}, on: () => {} } - }, -}) - -const _useFakeTimers = sinon.useFakeTimers -let timers = [] - -sinon.useFakeTimers = function (...args) { - const ret = _useFakeTimers.apply(this, args) - - timers.push(ret) -} - -beforeEach(() => { - driverMock.$ = sinon.stub().throws('$ called without being stubbed') -}) - -afterEach(() => { - timers.forEach((clock) => { - return clock.restore() - }) - - timers = [] -}) diff --git a/packages/runner-shared/test/utils.ts b/packages/runner-shared/test/utils.ts deleted file mode 100644 index 6fd5d6fd0ca8..000000000000 --- a/packages/runner-shared/test/utils.ts +++ /dev/null @@ -1,21 +0,0 @@ -import $Cypress from '@packages/driver' -import { EventManager } from '@packages/app/src/runner/event-manager' -import type { Socket } from '@packages/socket/lib/browser' -import { StudioRecorder } from '../src/studio' -import * as MobX from 'mobx' - -export const StubWebsocket = new Proxy(Object.create(null), { - get: (obj, prop) => { - throw Error(`Cannot access ${String(prop)} on StubWebsocket!`) - }, -}) - -export const createEventManager = () => { - return new EventManager( - $Cypress, - MobX, - {}, // TODO: Bring back "Cypress Studio" and integrate with 10.x runner // selectorPlaygroundModel - StudioRecorder, - StubWebsocket, - ) -} diff --git a/packages/runner-shared/tsconfig.json b/packages/runner-shared/tsconfig.json deleted file mode 100644 index dedbeae405f3..000000000000 --- a/packages/runner-shared/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../ts/tsconfig.dom.json", - "compilerOptions": { - "jsx": "react", - "experimentalDecorators": true - } -} \ No newline at end of file diff --git a/scripts/gulp/monorepoPaths.ts b/scripts/gulp/monorepoPaths.ts index dc3f5c3d5373..eee3a373e1eb 100644 --- a/scripts/gulp/monorepoPaths.ts +++ b/scripts/gulp/monorepoPaths.ts @@ -28,7 +28,6 @@ export const monorepoPaths = { pkgRoot: path.join(__dirname, '../../packages/root'), pkgRunner: path.join(__dirname, '../../packages/runner'), pkgRunnerCt: path.join(__dirname, '../../packages/runner-ct'), - pkgRunnerShared: path.join(__dirname, '../../packages/runner-shared'), pkgScaffoldConfig: path.join(__dirname, '../../packages/scaffold-config'), pkgServer: path.join(__dirname, '../../packages/server'), pkgSocket: path.join(__dirname, '../../packages/socket'), From 8fab51151408f48ccf7ddb3c2be782479957227c Mon Sep 17 00:00:00 2001 From: KHeo Date: Mon, 1 Aug 2022 11:51:13 +0900 Subject: [PATCH 05/12] fix path. --- packages/runner-ct/src/dom/dom.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/runner-ct/src/dom/dom.js b/packages/runner-ct/src/dom/dom.js index 547ae45a93e5..d8a5b42b433b 100644 --- a/packages/runner-ct/src/dom/dom.js +++ b/packages/runner-ct/src/dom/dom.js @@ -3,12 +3,12 @@ import retargetEvents from 'react-shadow-dom-retarget-events' import $Cypress from '@packages/driver' import $dimensions from './dimensions' -import { selectorPlaygroundHighlight } from './selector-playground/highlight' -import { studioAssertionsMenu } from './studio/assertions-menu' +import { selectorPlaygroundHighlight } from '../selector-playground/highlight' +import { studioAssertionsMenu } from '../studio/assertions-menu' // The '!' tells webpack to disable normal loaders, and keep loaders with `enforce: 'pre'` and `enforce: 'post'` // This disables the CSSExtractWebpackPlugin and allows us to get the CSS as a raw string instead of saving it to a separate file. -import selectorPlaygroundCSS from '!./selector-playground/selector-playground.scss' -import studioAssertionsMenuCSS from '!./studio/assertions-menu.scss' +import selectorPlaygroundCSS from '!../selector-playground/selector-playground.scss' +import studioAssertionsMenuCSS from '!../studio/assertions-menu.scss' const $ = $Cypress.$ const styles = (styleString) => { From a00e2aa9003b770d730ccadc193f18359cf76d26 Mon Sep 17 00:00:00 2001 From: KHeo Date: Mon, 1 Aug 2022 12:09:13 +0900 Subject: [PATCH 06/12] fix package.json --- packages/runner-ct/package.json | 3 + yarn.lock | 156 ++------------------------------ 2 files changed, 12 insertions(+), 147 deletions(-) diff --git a/packages/runner-ct/package.json b/packages/runner-ct/package.json index 70bfa8c43729..f78ca7515e50 100644 --- a/packages/runner-ct/package.json +++ b/packages/runner-ct/package.json @@ -23,6 +23,7 @@ "@fortawesome/react-fontawesome": "^0.1.17", "@packages/driver": "0.0.0-development", "@packages/icons": "0.0.0-development", + "@popperjs/core": "2.9.2", "@types/http-proxy": "1.17.4", "@types/node": "14.14.31", "@types/sockjs-client": "1.1.0", @@ -48,6 +49,8 @@ "react": "16.8.6", "react-devtools-inline": "^4.10.1", "react-dom": "16.8.6", + "react-popper": "2.2.5", + "react-shadow-dom-retarget-events": "1.0.11", "react-split-pane": "^0.1.92", "rimraf": "3.0.2", "sass": "1.44.0", diff --git a/yarn.lock b/yarn.lock index 2eee9914570a..2fceeffbd9ab 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9153,7 +9153,7 @@ array.prototype.find@^2.1.1: define-properties "^1.1.3" es-abstract "^1.17.4" -array.prototype.flat@^1.2.3, array.prototype.flat@^1.2.5: +array.prototype.flat@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13" integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg== @@ -11758,13 +11758,6 @@ chai-as-promised@7.1.1: dependencies: check-error "^1.0.2" -chai-enzyme@1.0.0-beta.1: - version "1.0.0-beta.1" - resolved "https://registry.yarnpkg.com/chai-enzyme/-/chai-enzyme-1.0.0-beta.1.tgz#a2ba3f23b99b0c3f67e3485e32b35e797255acda" - integrity sha512-vWT101M7qjq6kM/29G4vHrgLM4Mj1gCnKuvOSF03s8pFVsqol4B6USoGM/aYRKqaaIHs8/AxmHjWGFplQWhIQw== - dependencies: - html "^1.0.0" - chai-string@1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/chai-string/-/chai-string-1.5.0.tgz#0bdb2d8a5f1dbe90bc78ec493c1c1c180dd4d3d2" @@ -12874,7 +12867,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@1.6.2, concat-stream@^1.4.4, concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@^1.5.2, concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@^1.6.2, concat-stream@~1.6.0: +concat-stream@1.6.2, concat-stream@^1.4.4, concat-stream@^1.5.0, concat-stream@^1.5.2, concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@^1.6.2, concat-stream@~1.6.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -14672,11 +14665,6 @@ dir-glob@^3.0.0, dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -discontinuous-range@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" - integrity sha1-44Mx8IRLukm5qctxx3FYWqsbxlo= - disparity@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/disparity/-/disparity-3.0.0.tgz#605288e8ebf38c5ccfe1e0dbc49ca6f724096500" @@ -15402,22 +15390,7 @@ enzyme-adapter-react-16@1.12.1: react-test-renderer "^16.0.0-0" semver "^5.6.0" -enzyme-adapter-react-16@1.15.2: - version "1.15.2" - resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.2.tgz#b16db2f0ea424d58a808f9df86ab6212895a4501" - integrity sha512-SkvDrb8xU3lSxID8Qic9rB8pvevDbLybxPK6D/vW7PrT0s2Cl/zJYuXvsd1EBTz0q4o3iqG3FJhpYz3nUNpM2Q== - dependencies: - enzyme-adapter-utils "^1.13.0" - enzyme-shallow-equal "^1.0.1" - has "^1.0.3" - object.assign "^4.1.0" - object.values "^1.1.1" - prop-types "^15.7.2" - react-is "^16.12.0" - react-test-renderer "^16.0.0-0" - semver "^5.7.0" - -enzyme-adapter-utils@^1.11.0, enzyme-adapter-utils@^1.13.0: +enzyme-adapter-utils@^1.11.0: version "1.14.0" resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.0.tgz#afbb0485e8033aa50c744efb5f5711e64fbf1ad0" integrity sha512-F/z/7SeLt+reKFcb7597IThpDp0bmzcH1E9Oabqv+o01cID2/YInlqHbFl7HzWBl4h3OdZYedtwNDOmSKkk0bg== @@ -15430,42 +15403,6 @@ enzyme-adapter-utils@^1.11.0, enzyme-adapter-utils@^1.13.0: prop-types "^15.7.2" semver "^5.7.1" -enzyme-shallow-equal@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.4.tgz#b9256cb25a5f430f9bfe073a84808c1d74fced2e" - integrity sha512-MttIwB8kKxypwHvRynuC3ahyNc+cFbR8mjVIltnmzQ0uKGqmsfO4bfBuLxb0beLNPhjblUEYvEbsg+VSygvF1Q== - dependencies: - has "^1.0.3" - object-is "^1.1.2" - -enzyme@3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.11.0.tgz#71d680c580fe9349f6f5ac6c775bc3e6b7a79c28" - integrity sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw== - dependencies: - array.prototype.flat "^1.2.3" - cheerio "^1.0.0-rc.3" - enzyme-shallow-equal "^1.0.1" - function.prototype.name "^1.1.2" - has "^1.0.3" - html-element-map "^1.2.0" - is-boolean-object "^1.0.1" - is-callable "^1.1.5" - is-number-object "^1.0.4" - is-regex "^1.0.5" - is-string "^1.0.5" - is-subset "^0.1.1" - lodash.escape "^4.0.1" - lodash.isequal "^4.5.0" - object-inspect "^1.7.0" - object-is "^1.0.2" - object.assign "^4.1.0" - object.entries "^1.1.1" - object.values "^1.1.1" - raf "^3.4.1" - rst-selector-parser "^2.2.3" - string.prototype.trim "^1.2.1" - eol@0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/eol/-/eol-0.9.1.tgz#f701912f504074be35c6117a5c4ade49cd547acd" @@ -19290,14 +19227,6 @@ hsla-regex@^1.0.0: resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= -html-element-map@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.3.0.tgz#fcf226985d7111e6c2b958169312ec750d02f0d3" - integrity sha512-AqCt/m9YaiMwaaAyOPdq4Ga0cM+jdDWWGueUMkdROZcTeClaGpN0AQeyGchZhTegQoABmc6+IqH7oCR/8vhQYg== - dependencies: - array-filter "^1.0.0" - call-bind "^1.0.2" - html-encoding-sniffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" @@ -19402,13 +19331,6 @@ html-webpack-plugin@4.0.0-beta.5: tapable "^1.1.0" util.promisify "1.0.0" -html@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/html/-/html-1.0.0.tgz#a544fa9ea5492bfb3a2cca8210a10be7b5af1f61" - integrity sha1-pUT6nqVJK/s6LMqCEKEL57WvH2E= - dependencies: - concat-stream "^1.4.7" - htmlescape@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" @@ -20303,7 +20225,7 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-boolean-object@^1.0.1, is-boolean-object@^1.1.0: +is-boolean-object@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== @@ -20320,7 +20242,7 @@ is-buffer@~2.0.3: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-callable@^1.1.4, is-callable@^1.1.5, is-callable@^1.2.4: +is-callable@^1.1.4, is-callable@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== @@ -20765,7 +20687,7 @@ is-reference@^1.2.1: dependencies: "@types/estree" "*" -is-regex@^1.0.3, is-regex@^1.0.5, is-regex@^1.1.0, is-regex@^1.1.1, is-regex@^1.1.4: +is-regex@^1.0.3, is-regex@^1.1.0, is-regex@^1.1.1, is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -20841,11 +20763,6 @@ is-string@^1.0.5, is-string@^1.0.7: dependencies: has-tostringtag "^1.0.0" -is-subset@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" - integrity sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY= - is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" @@ -23197,11 +23114,6 @@ lodash.difference@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw= -lodash.escape@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz#c9044690c21e04294beaa517712fded1fa88de98" - integrity sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg= - lodash.escaperegexp@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" @@ -23242,11 +23154,6 @@ lodash.isboolean@^3.0.3: resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= -lodash.isequal@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= - lodash.isfunction@^3.0.8: version "3.0.9" resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" @@ -24956,11 +24863,6 @@ moment@^2.9.0: resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== -moo@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.1.tgz#7aae7f384b9b09f620b6abf6f74ebbcd1b65dbc4" - integrity sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w== - morgan@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.9.1.tgz#0a8d16734a1d9afbc824b99df87e738e58e2da59" @@ -25173,16 +25075,6 @@ ncp@^1.0.1: resolved "https://registry.yarnpkg.com/ncp/-/ncp-1.0.1.tgz#d15367e5cb87432ba117d2bf80fdf45aecfb4246" integrity sha1-0VNn5cuHQyuhF9K/gP30Wuz7QkY= -nearley@^2.7.10: - version "2.20.1" - resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.20.1.tgz#246cd33eff0d012faf197ff6774d7ac78acdd474" - integrity sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ== - dependencies: - commander "^2.19.0" - moo "^0.5.0" - railroad-diagrams "^1.0.0" - randexp "0.4.6" - negotiator@0.6.3, negotiator@^0.6.2, negotiator@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" @@ -26114,12 +26006,12 @@ object-hash@^1.3.1: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== -object-inspect@^1.11.0, object-inspect@^1.7.0, object-inspect@^1.9.0: +object-inspect@^1.11.0, object-inspect@^1.9.0: version "1.12.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== -object-is@^1.0.2, object-is@^1.1.2, object-is@^1.1.4: +object-is@^1.1.2, object-is@^1.1.4: version "1.1.5" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== @@ -26188,7 +26080,7 @@ object.defaults@^1.0.0, object.defaults@^1.1.0: for-own "^1.0.0" isobject "^3.0.0" -object.entries@^1.1.0, object.entries@^1.1.1, object.entries@^1.1.2, object.entries@^1.1.5: +object.entries@^1.1.0, object.entries@^1.1.2, object.entries@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861" integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g== @@ -28930,11 +28822,6 @@ raf@^3.4.1: dependencies: performance-now "^2.1.0" -railroad-diagrams@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" - integrity sha1-635iZ1SN3t+4mcG5Dlc3RVnN234= - ramda@0.25.0, ramda@^0.25.0: version "0.25.0" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.25.0.tgz#8fdf68231cffa90bc2f9460390a0cb74a29b29a9" @@ -28955,14 +28842,6 @@ ramda@0.27.1, ramda@^0.27.1: resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.27.1.tgz#66fc2df3ef873874ffc2da6aa8984658abacf5c9" integrity sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw== -randexp@0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" - integrity sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ== - dependencies: - discontinuous-range "1.0.0" - ret "~0.1.10" - randexp@0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.5.3.tgz#f31c2de3148b30bdeb84b7c3f59b0ebb9fec3738" @@ -30596,14 +30475,6 @@ rollup@^2.38.5, rollup@^2.75.6: optionalDependencies: fsevents "~2.3.2" -rst-selector-parser@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz#81b230ea2fcc6066c89e3472de794285d9b03d91" - integrity sha1-gbIw6i/MYGbInjRy3nlChdmwPZE= - dependencies: - lodash.flattendeep "^4.4.0" - nearley "^2.7.10" - rsvp@^4.8.4: version "4.8.5" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" @@ -32580,15 +32451,6 @@ string.prototype.padend@^3.0.0: define-properties "^1.1.3" es-abstract "^1.18.0-next.2" -string.prototype.trim@^1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.4.tgz#6014689baf5efaf106ad031a5fa45157666ed1bd" - integrity sha512-hWCk/iqf7lp0/AgTF7/ddO1IWtSNPASjlzCicV5irAVdE1grjsneK26YG6xACMBEdCvO8fUST0UzDMh/2Qy+9Q== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - string.prototype.trimend@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" From e636e9547644338225bf0e933d8001b84c18302c Mon Sep 17 00:00:00 2001 From: KHeo Date: Mon, 1 Aug 2022 12:51:50 +0900 Subject: [PATCH 07/12] Remove scss files from runner-ct --- .../src/SpecList/components/SearchSpec.scss | 36 ----- .../runner-ct/src/app/KeyboardHelper.scss | 43 ------ .../src/app/KeyboardHelper.scss.d.ts | 7 - packages/runner-ct/src/app/NoSpec.scss | 36 ----- packages/runner-ct/src/app/NoSpec.scss.d.ts | 7 - .../src/app/ReporterHeader.module.scss | 5 - .../src/app/ReporterHeader.module.scss.d.ts | 8 - .../runner-ct/src/app/RunnerCt.module.scss | 134 ----------------- .../src/app/RunnerCt.module.scss.d.ts | 27 ---- packages/runner-ct/src/app/RunnerCt.scss | 102 ------------- packages/runner-ct/src/app/RunnerCt.scss.d.ts | 7 - packages/runner-ct/src/iframe/iframes.scss | 20 --- .../runner-ct/src/iframe/iframes.scss.d.ts | 7 - packages/runner-ct/src/index.js | 2 - .../CypressLogo/CypressLogo.module.scss | 3 - .../src/components/Nav/LeftNav.module.scss | 76 ---------- .../CollapsibleGroup.module.scss | 54 ------- .../components/fileTree/FileTree.module.scss | 72 --------- .../VirtualizedTree.module.scss | 23 --- .../src/core/button/Button.module.scss | 69 --------- .../src/core/icon/Icon.module.scss | 27 ---- .../src/core/icon/Icon.stories.module.scss | 9 -- .../src/core/input/IconInput.module.scss | 100 ------------- .../src/core/input/InputBase.module.scss | 20 --- .../text/placeholder/Placeholder.module.scss | 5 - .../src/legacy-styles/src/css/baseColors.scss | 139 ------------------ .../src/legacy-styles/src/css/css-util.scss | 9 -- .../legacy-styles/src/css/derived/export.scss | 78 ---------- .../src/css/derived/jsColors.scss | 8 - .../src/css/derived/jsSpacing.scss | 8 - .../src/css/derived/jsSurfaces.scss | 8 - .../src/css/derived/jsTypography.scss | 18 --- .../src/legacy-styles/src/css/func.scss | 24 --- .../src/legacy-styles/src/css/index.scss | 5 - .../legacy-styles/src/css/semanticColors.scss | 36 ----- .../src/legacy-styles/src/css/spacing.scss | 26 ---- .../src/legacy-styles/src/css/surfaces.scss | 53 ------- .../src/legacy-styles/src/css/typography.scss | 121 --------------- .../src/legacy-styles/src/global.scss | 11 -- .../src/legacy-styles/src/index.scss | 6 - .../src/measure/baseline/Baseline.module.scss | 31 ---- .../src/stories/colors.module.scss | 9 -- .../src/stories/spacing.module.scss | 6 - .../src/stories/surfaces.module.scss | 9 -- .../storyHighlightWrapper.module.scss | 5 - .../src/plugins/devtools-fallback.scss | 8 - .../src/plugins/devtools-fallback.scss.d.ts | 7 - .../runner-ct/src/runner-ct-variables.scss | 4 - packages/runner-ct/src/variables.scss | 23 --- 49 files changed, 1551 deletions(-) delete mode 100644 packages/runner-ct/src/SpecList/components/SearchSpec.scss delete mode 100644 packages/runner-ct/src/app/KeyboardHelper.scss delete mode 100644 packages/runner-ct/src/app/KeyboardHelper.scss.d.ts delete mode 100644 packages/runner-ct/src/app/NoSpec.scss delete mode 100644 packages/runner-ct/src/app/NoSpec.scss.d.ts delete mode 100644 packages/runner-ct/src/app/ReporterHeader.module.scss delete mode 100644 packages/runner-ct/src/app/ReporterHeader.module.scss.d.ts delete mode 100644 packages/runner-ct/src/app/RunnerCt.module.scss delete mode 100644 packages/runner-ct/src/app/RunnerCt.module.scss.d.ts delete mode 100644 packages/runner-ct/src/app/RunnerCt.scss delete mode 100644 packages/runner-ct/src/app/RunnerCt.scss.d.ts delete mode 100644 packages/runner-ct/src/iframe/iframes.scss delete mode 100644 packages/runner-ct/src/iframe/iframes.scss.d.ts delete mode 100644 packages/runner-ct/src/legacy-styles/src/components/CypressLogo/CypressLogo.module.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/components/Nav/LeftNav.module.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/components/collapsibleGroup/CollapsibleGroup.module.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/components/fileTree/FileTree.module.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/components/virtualizedTree/VirtualizedTree.module.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/core/button/Button.module.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/core/icon/Icon.module.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/core/icon/Icon.stories.module.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/core/input/IconInput.module.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/core/input/InputBase.module.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/core/text/placeholder/Placeholder.module.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/css/baseColors.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/css/css-util.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/css/derived/export.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/css/derived/jsColors.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/css/derived/jsSpacing.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/css/derived/jsSurfaces.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/css/derived/jsTypography.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/css/func.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/css/index.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/css/semanticColors.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/css/spacing.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/css/surfaces.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/css/typography.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/global.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/index.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/measure/baseline/Baseline.module.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/stories/colors.module.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/stories/spacing.module.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/stories/surfaces.module.scss delete mode 100644 packages/runner-ct/src/legacy-styles/src/util/storybook/storyHighlightWrapper/storyHighlightWrapper.module.scss delete mode 100644 packages/runner-ct/src/plugins/devtools-fallback.scss delete mode 100644 packages/runner-ct/src/plugins/devtools-fallback.scss.d.ts delete mode 100644 packages/runner-ct/src/runner-ct-variables.scss delete mode 100644 packages/runner-ct/src/variables.scss diff --git a/packages/runner-ct/src/SpecList/components/SearchSpec.scss b/packages/runner-ct/src/SpecList/components/SearchSpec.scss deleted file mode 100644 index f04827947966..000000000000 --- a/packages/runner-ct/src/SpecList/components/SearchSpec.scss +++ /dev/null @@ -1,36 +0,0 @@ -@use '../../variables.scss' as *; - -.specs-list-search-input-container { - display: flex; - justify-content: flex-start; - align-items: center; - position: sticky; - top: 0; - width: 100%; - padding: 8px; - box-sizing: border-box; - background-color: white; - box-shadow: $shadow-xs; - z-index: 1; - - input { - width: 100%; - font-size: 18px; - height: 32px; - color: #848484; - border-radius: 6px; - border: 1px solid #E8E8EC; - padding: 0 8px 0 16px; - - - &::placeholder { - color: #B4B5BC; - } - - // avoid default focus outline because of input border radius - &:focus { - outline: none; - box-shadow: 0px 0px 2px #0012ff; - } - } -} diff --git a/packages/runner-ct/src/app/KeyboardHelper.scss b/packages/runner-ct/src/app/KeyboardHelper.scss deleted file mode 100644 index a2a154293cf6..000000000000 --- a/packages/runner-ct/src/app/KeyboardHelper.scss +++ /dev/null @@ -1,43 +0,0 @@ -.keyboard-helper-container { - display: flex; - align-items: center; - justify-content: center; - height: 100%; - background-color: white; - - .keyboard-helper { - padding: 8px 32px; - color: #555; - // background: white; - font-family: "Mulish", "Helvetica Neue", "Arial", sans-serif; - font-size: 13px; - width: 224px; - - .keyboard-shortcut { - display: flex; - margin-top: 8px; - height: 23px; - justify-content: space-between; - - .shortcut { - display: flex; - - .key { - display: flex; - font-family: sans-serif; // display keys symbols correctly - justify-content: center; - align-items: center; - border: 1px solid rgba(255, 255, 255, 0.4); - height: 23px; - min-width: 23px; - margin-right: 4px; - padding: 0px 4px; - font-size: 0.8125rem; - border-radius: 4px; - pointer-events: none; - background-color: #ddd; - } - } - } - } -} \ No newline at end of file diff --git a/packages/runner-ct/src/app/KeyboardHelper.scss.d.ts b/packages/runner-ct/src/app/KeyboardHelper.scss.d.ts deleted file mode 100644 index 132b232e8959..000000000000 --- a/packages/runner-ct/src/app/KeyboardHelper.scss.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -// This file is automatically generated. -// Please do not change this file! -interface CssExports { - -} -export const cssExports: CssExports; -export default cssExports; diff --git a/packages/runner-ct/src/app/NoSpec.scss b/packages/runner-ct/src/app/NoSpec.scss deleted file mode 100644 index c38a90a5589b..000000000000 --- a/packages/runner-ct/src/app/NoSpec.scss +++ /dev/null @@ -1,36 +0,0 @@ -.no-spec { - display: flex; - justify-content: space-around; - align-items: center; - height: 100%; - flex-direction: column; - color: #555; - background: white; - font-family: "Mulish", "Helvetica Neue", "Arial", sans-serif; - font-size: 13px; - - .no-spec-content-container { - display: flex; - flex-basis: 45%; - flex-direction: column; - align-items: center; - - a { - color: #3386D4; - cursor: pointer; - - &:hover { - text-decoration: underline; - } - } - - .no-spec-title { - margin-top: 16px; - margin-bottom: 8px; - } - - .no-spec-custom-children { - margin-top: 32px; - } - } -} diff --git a/packages/runner-ct/src/app/NoSpec.scss.d.ts b/packages/runner-ct/src/app/NoSpec.scss.d.ts deleted file mode 100644 index 132b232e8959..000000000000 --- a/packages/runner-ct/src/app/NoSpec.scss.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -// This file is automatically generated. -// Please do not change this file! -interface CssExports { - -} -export const cssExports: CssExports; -export default cssExports; diff --git a/packages/runner-ct/src/app/ReporterHeader.module.scss b/packages/runner-ct/src/app/ReporterHeader.module.scss deleted file mode 100644 index b285a9f58959..000000000000 --- a/packages/runner-ct/src/app/ReporterHeader.module.scss +++ /dev/null @@ -1,5 +0,0 @@ -@use '../variables' as *; - -.ctReporterHeader { - min-height: $runner-ct-header-height; -} \ No newline at end of file diff --git a/packages/runner-ct/src/app/ReporterHeader.module.scss.d.ts b/packages/runner-ct/src/app/ReporterHeader.module.scss.d.ts deleted file mode 100644 index c353b869f4b7..000000000000 --- a/packages/runner-ct/src/app/ReporterHeader.module.scss.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -// This file is automatically generated. -// Please do not change this file! -interface CssExports { - 'ctReporterHeader': string; - 'display-none': string; -} -export const cssExports: CssExports; -export default cssExports; diff --git a/packages/runner-ct/src/app/RunnerCt.module.scss b/packages/runner-ct/src/app/RunnerCt.module.scss deleted file mode 100644 index 6a20da3239d4..000000000000 --- a/packages/runner-ct/src/app/RunnerCt.module.scss +++ /dev/null @@ -1,134 +0,0 @@ -@use '../variables' as *; - -$box-shadow-closest: 0px 0px 5px rgba(0, 0, 0, 0.4); - -.app { - display: flex; - background: white; -} - -.appWrapper { - position: relative; - height: 100vh; - width: 100%; -} - -.appWrapperScreenshotting { - margin-inline: 0; -} - -.runnerCt { - left: 0; - - header { - position: static; - top: unset; - left: unset; - right: unset; - bottom: unset; - min-height: $runner-ct-header-height; - } - - .size-container { - transform-origin: 0 0; - } -} - -.noSpecAut { - background: white; -} - -.screenshotting { - box-shadow: none; -} - -.leftNav { - background: $left-nav-background-color; - z-index: 4; - border-right: 1px solid $border-color; - height: 100vh; -} - -.runner { - box-shadow: shadow(s); - left: 0 !important; -} - -.reporter { - box-shadow: shadow(l); - background: $reporter-background-color; - // border-right: 1px solid $border-color; - z-index: 2; -} - -.ctPlugins { - height: 100%; - width: 100%; - - .ctPluginsHeader { - height: 40px; // make sure this is hardcoded in as well RunnerCt.tsx - display: flex; - border-top: 1px solid $metal-20; - - .ctTogglePluginsSectionButton { - margin-left: auto; - margin-right: 4px; - border: none; - background-color: transparent; - transition: transform .3s ease-in-out; - - &.ctTogglePluginsSectionButtonOpen { - will-change: transform; - transform: rotate(180deg); - } - } - - .ctPluginToggleButton { - font-family: $font-stack-sans; - cursor: pointer; - height: 100%; - width: 100%; - border: none; - background-color: transparent; - display: flex; - justify-content: space-between; - align-items: center; - padding: 0 16px; - transition: border-bottom-color .3s ease-in-out; - - :focus { - outline: none; - } - - .ctPluginsName { - padding: 2px 4px; - border-bottom: 2px solid transparent; - - &:hover { - border-bottom: 2px solid $chill-40; - } - } - } - } - - .ctDevtoolsContainer { - height: 100%; - width: 100%; - } -} - -.largerIcon { - font-size: 1.75rem !important; -} - -.noSpecsDescription { - text-align: center; - margin: 0 1rem; - line-height: 1.5; - - .folder { - border-radius: 4px; - padding: 1px 4px; - background-color: #ddd; - } -} diff --git a/packages/runner-ct/src/app/RunnerCt.module.scss.d.ts b/packages/runner-ct/src/app/RunnerCt.module.scss.d.ts deleted file mode 100644 index 04a5f2212d01..000000000000 --- a/packages/runner-ct/src/app/RunnerCt.module.scss.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -// This file is automatically generated. -// Please do not change this file! -interface CssExports { - 'app': string; - 'appWrapper': string; - 'appWrapperScreenshotting': string; - 'ctDevtoolsContainer': string; - 'ctPluginToggleButton': string; - 'ctPlugins': string; - 'ctPluginsHeader': string; - 'ctPluginsName': string; - 'ctTogglePluginsSectionButton': string; - 'ctTogglePluginsSectionButtonOpen': string; - 'display-none': string; - 'folder': string; - 'largerIcon': string; - 'leftNav': string; - 'noSpecAut': string; - 'noSpecsDescription': string; - 'reporter': string; - 'runner': string; - 'runnerCt': string; - 'screenshotting': string; - 'size-container': string; -} -export const cssExports: CssExports; -export default cssExports; diff --git a/packages/runner-ct/src/app/RunnerCt.scss b/packages/runner-ct/src/app/RunnerCt.scss deleted file mode 100644 index b1127d262f41..000000000000 --- a/packages/runner-ct/src/app/RunnerCt.scss +++ /dev/null @@ -1,102 +0,0 @@ -@use "../variables.scss" as *; -@import "../runner-ct-variables.scss"; -@import "../../../reporter/src/lib/variables.scss"; - -/** - * Styles that cannot be transformed by scoped modules should live here. Examples are: - * - override Runner globals (in a pinch) - * - publicly interface with 3rd party libs (Resizer) - */ - -body, html { - font-size: 1rem !important; - font-family: $font-stack-sans; - font-size: text(m); - - * :focus { - outline-offset: 1px; - outline-width: 1px; - outline-color: $chill-20; - outline-style: auto; - } -} - -.reporter { - .runnable-header { - box-shadow: shadow(m); - } -} - -.runner { - // @include checkerboard(); - background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1IiBoZWlnaHQ9IjUiPgo8cmVjdCB3aWR0aD0iNSIgaGVpZ2h0PSI1IiBmaWxsPSIjZGJkYmRiIj48L3JlY3Q+CjxwYXRoIGQ9Ik0wIDVMNSAwWk02IDRMNCA2Wk0tMSAxTDEgLTFaIiBzdHJva2U9IiNjNGM0YzQiIHN0cm9rZS13aWR0aD0iMSI+PC9wYXRoPgo8L3N2Zz4="); -} - -.aut-iframe-screenshotting { - height: min(100vh, 100%) !important; - overflow: scroll !important; -} - -// Prevent left-most Resizer from showing up when the pane is hidden. -.isSpecsListClosed { - > .Resizer { - display: none; - } -} - -// Must be globally scoped. Bummer. -$resizerLineSize: 4px; - -.Resizer { - $resize-thickness: 12px; - background: none; - transition: background-color 200ms ease-in-out; - z-index: 10; - box-sizing: border-box; - background-clip: padding-box; - &:after { - content: ''; - position: relative; - display: block; - background: transparent; - transition: background 200ms ease; - position: fixed; - } - &:hover { - &:after { - background: $chill-30; - } - } - - &.horizontal { - margin: -($resize-thickness * 0.5) 0; - height: $resize-thickness; - width: 100%; - cursor: row-resize; - border-top: 5px solid rgba(255, 255, 255, 0); - border-bottom: 5px solid rgba(255, 255, 255, 0); - - &:after { - height: $resizerLineSize; - width: 100%; - } - } - - &.vertical { - margin: 0 -($resize-thickness * 0.5); - width: $resize-thickness; - height: 100%; - cursor: col-resize; - border-left: 5px solid rgba(255, 255, 255, 0); - border-right: 5px solid rgba(255, 255, 255, 0); - - &:after { - width: $resizerLineSize; - height: 100%; - } - } - - &.disabled { - display: none; - } -} \ No newline at end of file diff --git a/packages/runner-ct/src/app/RunnerCt.scss.d.ts b/packages/runner-ct/src/app/RunnerCt.scss.d.ts deleted file mode 100644 index 132b232e8959..000000000000 --- a/packages/runner-ct/src/app/RunnerCt.scss.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -// This file is automatically generated. -// Please do not change this file! -interface CssExports { - -} -export const cssExports: CssExports; -export default cssExports; diff --git a/packages/runner-ct/src/iframe/iframes.scss b/packages/runner-ct/src/iframe/iframes.scss deleted file mode 100644 index 76b8b66e92fb..000000000000 --- a/packages/runner-ct/src/iframe/iframes.scss +++ /dev/null @@ -1,20 +0,0 @@ -@use '../variables.scss' as *; - -.iframes-ct-container { - margin: 0 8px; - padding: 16px 0; - display: flex; - justify-content: center; - align-items: center; -} - -.iframes-ct-container-screenshotting { - margin: 0; - padding: 0; -} - -.size-container { - overflow: auto; - box-shadow: shadow(m); - max-width: 100%; -} diff --git a/packages/runner-ct/src/iframe/iframes.scss.d.ts b/packages/runner-ct/src/iframe/iframes.scss.d.ts deleted file mode 100644 index 132b232e8959..000000000000 --- a/packages/runner-ct/src/iframe/iframes.scss.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -// This file is automatically generated. -// Please do not change this file! -interface CssExports { - -} -export const cssExports: CssExports; -export default cssExports; diff --git a/packages/runner-ct/src/index.js b/packages/runner-ct/src/index.js index 2b8b55b989d1..431ef7e70904 100644 --- a/packages/runner-ct/src/index.js +++ b/packages/runner-ct/src/index.js @@ -1,3 +1 @@ -import '@packages/runner/src/main.scss' - import './main' diff --git a/packages/runner-ct/src/legacy-styles/src/components/CypressLogo/CypressLogo.module.scss b/packages/runner-ct/src/legacy-styles/src/components/CypressLogo/CypressLogo.module.scss deleted file mode 100644 index db1b27fc49a2..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/components/CypressLogo/CypressLogo.module.scss +++ /dev/null @@ -1,3 +0,0 @@ -.logo { - max-width: 100%; -} diff --git a/packages/runner-ct/src/legacy-styles/src/components/Nav/LeftNav.module.scss b/packages/runner-ct/src/legacy-styles/src/components/Nav/LeftNav.module.scss deleted file mode 100644 index 290d6ff71d9e..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/components/Nav/LeftNav.module.scss +++ /dev/null @@ -1,76 +0,0 @@ -@use 'baseColors' as *; -@use 'semanticColors' as *; -@use 'typography' as *; - -$left-nav-width: 48px; -$icon-color: $metal-20; -$active-color: $brand-01; - -.leftNav { - display: grid; - grid-template-columns: $left-nav-width; - grid-template-rows: auto auto; - width: $left-nav-width; - margin: 0; - row-gap: 0.5rem; - padding: 0; -} - -.top, .bottom { - display: grid; - list-style-type: none; - row-gap: 0.5rem; - grid-template-rows: repeat(auto-fit, 48px) -} - -.top { - padding-top: 1.5rem; -} - -.bottom { - display: grid; - align-content: flex-end; - padding-bottom: 2rem; -} - -.item { - height: 100%; - font-size: text(ml); - cursor: pointer; - color: $icon-color; - - &:before { - content: ''; - width: 4px; - position: absolute; - height: $left-nav-width; - display: block; - background: transparent; - } - -} - -.active { - color: $active-color; - - &:before { - background: $brand-01; - } -} - -.inactive { - :hover { - - color: $active-color; - } -} - -.itemAnchor { - text-decoration: none; -} - -.icon { - display: block; - margin: auto; - height: 100%; -} diff --git a/packages/runner-ct/src/legacy-styles/src/components/collapsibleGroup/CollapsibleGroup.module.scss b/packages/runner-ct/src/legacy-styles/src/components/collapsibleGroup/CollapsibleGroup.module.scss deleted file mode 100644 index 91d6c469b06f..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/components/collapsibleGroup/CollapsibleGroup.module.scss +++ /dev/null @@ -1,54 +0,0 @@ -@use 'spacing' as *; -@use 'semanticColors' as *; -@use 'css-util' as *; - -.group { - display: flex; - flex-direction: column; - - overflow: hidden; -} - -.header { - width: 100%; - - cursor: pointer; - @include no-selection; - - &:hover { - background-color: $button-white-hover-color; - } - - &:active { - background-color: $button-white-push-color; - } -} - -.disabled { - color: grey; - - .title { - cursor: unset; - - &::before { - content: ''; - } - } -} - -.title { - display: inline-block; -} - -.content { - // TODO: Add transition - height: 0; -} - -.expanded { - .content { - flex-grow: 1; - - height: 100%; - } -} diff --git a/packages/runner-ct/src/legacy-styles/src/components/fileTree/FileTree.module.scss b/packages/runner-ct/src/legacy-styles/src/components/fileTree/FileTree.module.scss deleted file mode 100644 index dea5d61367b3..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/components/fileTree/FileTree.module.scss +++ /dev/null @@ -1,72 +0,0 @@ -@use 'semanticColors' as *; -@use 'spacing' as *; -@use 'typography' as *; -@use 'css-util' as *; - -.tree { - > div { - // Container div for nodes - padding-bottom: spacing(l); - } -} - -.node { - display: grid; - grid-template-columns: spacing(m) 1fr; - - column-gap: spacing(xs); - align-items: center; - - background: repeating-linear-gradient(90deg, $control-slight-color, $control-slight-color 1px, transparent 1px, transparent spacing(m), ); - background-repeat: no-repeat; - background-size: 0 100%; - // Start background at 1/2 indent spacing (m = 1rem) - background-position-x: spacing(s); - - @include text(ms); - - :global(.svg-inline--fa) { - bottom: 0; - } - - > :first-child { - justify-self: center; - } -} - -.file { - cursor: pointer; - @include no-selection; - - &:hover { - background-color: $button-white-hover-color; - } - - &:active { - background-color: $button-white-push-color; - } -} - -.active { - color: $control-text-color-white; - background: none; - background-color: $button-blue-color; - - &:hover { - background-color: $button-blue-color; - } - - &:active { - background-color: $button-blue-hover-color; - } -} - -.highlight { - > span { - font-weight: $highlight-weight; - } -} - -.placeholder { - text-align: center; -} diff --git a/packages/runner-ct/src/legacy-styles/src/components/virtualizedTree/VirtualizedTree.module.scss b/packages/runner-ct/src/legacy-styles/src/components/virtualizedTree/VirtualizedTree.module.scss deleted file mode 100644 index 4bae1b26eff1..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/components/virtualizedTree/VirtualizedTree.module.scss +++ /dev/null @@ -1,23 +0,0 @@ -@use 'surfaces' as *; - -.focusWrapper { - &:focus { - outline: none; - } -} - -.child { - display: grid; - grid-template-rows: 1fr; - height: 100%; -} - -.focus { - @include focused; - - &::after { - // TODO: Improve this - border-radius: 0; - // border-width: 1px; - } -} diff --git a/packages/runner-ct/src/legacy-styles/src/core/button/Button.module.scss b/packages/runner-ct/src/legacy-styles/src/core/button/Button.module.scss deleted file mode 100644 index 6328bc33ca26..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/core/button/Button.module.scss +++ /dev/null @@ -1,69 +0,0 @@ -@use 'semanticColors' as *; -@use 'typography' as *; -@use 'spacing' as *; -@use 'surfaces' as *; -@use 'func' as *; -@use 'css-util' as util; - -$button-vertical-padding: change-rem-unit-to-em(spacing(xs)); -$button-horizontal-padding: change-rem-unit-to-em(spacing(s)); - -.button { - position: relative; - display: inline-block; - // Reset - @include util.no-selection; - border: 0; - text-decoration: none; - cursor: pointer; - - // Style - padding: $button-vertical-padding $button-horizontal-padding; - border-radius: $button-radius; - - color: $control-text-color-white; - background-color: $button-blue-color; - - &:hover { - background-color: $button-blue-hover-color; - } - - &:active { - background-color: $button-blue-push-color; - } - - &:focus { - outline: none; - } - - &.white { - color: $control-text-color-black; - background-color: $button-white-color; - - border: 1px solid $control-border-color; - - &:hover { - background-color: $button-white-hover-color; - } - - &:active { - background-color: $button-white-push-color; - } - } - - &.disableBorder { - border: 0; - } -} - -:global { - :local(.button.white:not(.disableBorder)) { - &.focused::after { - // White buttons have a border that needs to be compensated for - top: -1px; - left: -1px; - right: -1px; - bottom: -1px; - } - } -} diff --git a/packages/runner-ct/src/legacy-styles/src/core/icon/Icon.module.scss b/packages/runner-ct/src/legacy-styles/src/core/icon/Icon.module.scss deleted file mode 100644 index d1c923f79b35..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/core/icon/Icon.module.scss +++ /dev/null @@ -1,27 +0,0 @@ -$icon-margin: 0.15em; -$icon-bottom-offset: 0.125em; - -$icon-size: 1em - $icon-margin * 2; - -:global(.svg-inline--fa) { - // TODO: Is there ever a need for the icon to not take a square space as long as it's properly centered? - &.icon { - position: relative; - - width: $icon-size; - height: $icon-size; - - bottom: $icon-bottom-offset; - } - - &.ignoreTextCenter { - width: 1em; - height: 1em; - - bottom: auto; - } - - &.sizeWithoutCenter { - bottom: auto; - } -} diff --git a/packages/runner-ct/src/legacy-styles/src/core/icon/Icon.stories.module.scss b/packages/runner-ct/src/legacy-styles/src/core/icon/Icon.stories.module.scss deleted file mode 100644 index a1dcac37bc6f..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/core/icon/Icon.stories.module.scss +++ /dev/null @@ -1,9 +0,0 @@ -.icon { - background-color: orange; - - border: 1px solid black; -} - -.textIcon { - border: 1px solid black; -} diff --git a/packages/runner-ct/src/legacy-styles/src/core/input/IconInput.module.scss b/packages/runner-ct/src/legacy-styles/src/core/input/IconInput.module.scss deleted file mode 100644 index 4458d92824c8..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/core/input/IconInput.module.scss +++ /dev/null @@ -1,100 +0,0 @@ -@use 'spacing' as *; -@use 'semanticColors' as *; -@use '../icon/Icon.module.scss' as *; -@use 'surfaces' as *; - -$icon-overall-size: 1.5em; -$input-icon-margin: 0.25em; - -.iconInput { - position: relative; - display: flex; - align-items: center; - - // No actual border drawn. This provides the mask for the rounded corners to clip child elements - border-radius: $button-radius; - overflow: hidden; - - z-index: 0; - - &::after { - content: ""; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - - border: 1px solid $control-border-color; - border-radius: $button-radius; - - pointer-events: none; - } - - .wrapper { - display: flex; - flex-grow: 1; - - &:first-child { - // If first child, apply border padding - padding-left: spacing(s); - } - - &:last-child { - // If last child, apply border padding - padding-right: spacing(s); - } - } - - .input { - flex-grow: 1; - // Required to allow input to shrink in certain size scenarios - width: 0; - padding: 0; - - background-color: transparent; - border: 0; - border-radius: 0; - - &:focus { - outline: none; - } - } - - .icon { - flex-grow: 0; - flex-shrink: 0; - - // Icon - margin: 0 $input-icon-margin; - bottom: 0; - - color: $control-text-color-black; - } - - .iconButton { - // See global expression below - // Make sure button fills entire height, to enable the button focus ring to cover the IconInput border - align-self: stretch; - - padding: 0 $input-icon-margin; - line-height: 1; - - border-radius: 0; - - &::after { - z-index: 1; - } - } -} - -:global { - :local(.iconButton) { - &.focused { - // Set overflow and border radius to clip corners when focused - overflow: hidden; - - border-radius: $button-radius; - } - } -} diff --git a/packages/runner-ct/src/legacy-styles/src/core/input/InputBase.module.scss b/packages/runner-ct/src/legacy-styles/src/core/input/InputBase.module.scss deleted file mode 100644 index 63fb1cbd67f9..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/core/input/InputBase.module.scss +++ /dev/null @@ -1,20 +0,0 @@ -@use 'semanticColors' as *; -@use 'surfaces' as *; -@use 'spacing' as *; - -input.input { - padding: 0 spacing(s); - - font-weight: normal; - - border: 1px solid $control-border-color; - border-radius: $button-radius; -} - -/** - * Wrapper for standalone inputs to allow for a proper focus ring - */ -.wrapper { - display: inline-block; - position: relative; -} diff --git a/packages/runner-ct/src/legacy-styles/src/core/text/placeholder/Placeholder.module.scss b/packages/runner-ct/src/legacy-styles/src/core/text/placeholder/Placeholder.module.scss deleted file mode 100644 index 27b8c85801d3..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/core/text/placeholder/Placeholder.module.scss +++ /dev/null @@ -1,5 +0,0 @@ -@use 'semanticColors' as *; - -.placeholder { - color: $control-text-color-dim; -} diff --git a/packages/runner-ct/src/legacy-styles/src/css/baseColors.scss b/packages/runner-ct/src/legacy-styles/src/css/baseColors.scss deleted file mode 100644 index bff02172072b..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/baseColors.scss +++ /dev/null @@ -1,139 +0,0 @@ -@import './func.scss'; - -$colors: ( - metal-100: rgba(0, 0, 0, 1), // #000000; - metal-90: rgba(33, 36, 38, 1), // #212426; - metal-80: rgba(45, 49, 52, 1), // #2d3134; - metal-70: rgba(62, 67, 71, 1), // #3e4347; - metal-60: rgba(83, 90, 95, 1), // #535a5f; - metal-50: rgba(107, 116, 123, 1), // #6b747b; - metal-40: rgba(135, 144, 151, 1), // #879097; - metal-30: rgba(160, 167, 172, 1), // #a0a7ac; - metal-20: rgba(190, 194, 198, 1), // #bec2c6; - metal-10: rgba(230, 232, 234, 1), // #e6e8ea; - metal-05: rgba(244, 245, 246, 1), // #f4f5f6; - metal-00: rgba(255, 255, 255, 1), // #ffffff; - red-70: rgba(153, 11, 18, 1), // #990b12; - red-60: rgba(191, 13, 22, 1), // #bf0d16; - red-50: rgba(224, 16, 26, 1), // #e0101a; - red-40: rgba(241, 55, 64, 1), // #f13740; - chill-90: rgba(8, 33, 68, 1), // #082144; - chill-80: rgba(12, 49, 100, 1), // #0c3164; - chill-70: rgba(16, 66, 137, 1), // #104289; - chill-60: rgba(21, 86, 178, 1), // #1556b2; - chill-50: rgba(27, 111, 228, 1), // #1b6fe4; - chill-40: rgba(73, 142, 238, 1), // #498eee; - chill-30: rgba(118, 168, 239, 1), // #76a8ef; - chill-20: rgba(164, 197, 244, 1), // #a4c5f4; - chill-10: rgba(222, 235, 252, 1), // #deebfc; - chill-05: rgba(237, 243, 253, 1), // #edf3fd; - olive-60: rgba(93, 100, 12, 1), // #5d640c; - olive-50: rgba(114, 123, 15, 1), // #727b0f; - olive-40: rgba(143, 154, 25, 1), // #8f9a19; - olive-30: rgba(211, 228, 27, 1), // #d3e41b; - olive-20: rgba(225, 237, 100, 1), // #e1ed64; - olive-10: rgba(238, 245, 168, 1), // #eef5a8; - olive-05: rgba(246, 250, 209, 1), // #f6fad1; - papaya-60: rgba(143, 68, 10, 1), // #8f440a; - papaya-50: rgba(190, 90, 14, 1), // #be5a0e; - papaya-40: rgba(235, 107, 10, 1), // #eb6b0a; - papaya-30: rgba(242, 141, 64, 1), // #f28d40; - papaya-20: rgba(246, 175, 121, 1), // #f6af79; - papaya-10: rgba(252, 229, 212, 1), // #fce5d4; - papaya-05: rgba(253, 241, 231, 1), // #fdf1e7; - green-60: rgba(41, 102, 10, 1), // #29660a; - green-50: rgba(54, 133, 15, 1), // #36850f; - green-40: rgba(68, 164, 20, 1), // #44a414; - green-30: rgba(79, 191, 23, 1), // #4fbf17; - green-20: rgba(107, 219, 51, 1), // #6bdb33; - green-10: rgba(204, 244, 185, 1), // #ccf4b9; - green-05: rgba(236, 251, 228, 1), // #ecfbe4; - cran-50: rgba(228, 28, 95, 1), // #e41c5f; - brand-00: rgba(28, 228, 150, 1), // #1ce496; - // TODO: Rewrite these names - brand-01: rgba(8, 41, 63, 1), // #08293f; - accent-00: rgba(177, 99, 255, 1), // #b163ff; - accent-01: rgba(54, 197, 255, 1), // #36c5ff; - accent-02: rgba(230, 255, 30, 1), // #e6ff1e; -); - -// TODO: Is this needed? -// :root { -// @each $name, $color in $colors { -// .text-#{"" + $name} { -// color: $color; -// } -// .bg-#{"" + $name} { -// background-color: $color; -// } -// } -// } - -// --- Color Variables - -@function color($name: string) { - @return var(--#{"" + $name}); -} - -// Must be manually written out as SASS does not support dynamic variable creation -// Exposes SASS variables as references to CSS variables -$metal-100: color('metal-100'); -$metal-90: color('metal-90'); -$metal-80: color('metal-80'); -$metal-70: color('metal-70'); -$metal-60: color('metal-60'); -$metal-50: color('metal-50'); -$metal-40: color('metal-40'); -$metal-30: color('metal-30'); -$metal-20: color('metal-20'); -$metal-10: color('metal-10'); -$metal-05: color('metal-05'); -$metal-00: color('metal-00'); - -$red-70: color('red-70'); -$red-60: color('red-60'); -$red-50: color('red-50'); -$red-40: color('red-40'); - -$chill-90: color('chill-90'); -$chill-80: color('chill-80'); -$chill-70: color('chill-70'); -$chill-60: color('chill-60'); -$chill-50: color('chill-50'); -$chill-40: color('chill-40'); -$chill-30: color('chill-30'); -$chill-20: color('chill-20'); -$chill-10: color('chill-10'); -$chill-05: color('chill-05'); - -$olive-60: color('olive-60'); -$olive-50: color('olive-50'); -$olive-40: color('olive-40'); -$olive-30: color('olive-30'); -$olive-20: color('olive-20'); -$olive-10: color('olive-10'); -$olive-05: color('olive-05'); - -$papaya-60: color('papaya-60'); -$papaya-50: color('papaya-50'); -$papaya-40: color('papaya-40'); -$papaya-30: color('papaya-30'); -$papaya-20: color('papaya-20'); -$papaya-10: color('papaya-10'); -$papaya-05: color('papaya-05'); - -$green-60: color('green-60'); -$green-50: color('green-50'); -$green-40: color('green-40'); -$green-30: color('green-30'); -$green-20: color('green-20'); -$green-10: color('green-10'); -$green-05: color('green-05'); - -$cran-50: color('cran-50'); - -$brand-00: color('brand-00'); -$brand-01: color('brand-01'); -$accent-00: color('accent-00'); -$accent-01: color('accent-01'); -$accent-02: color('accent-02'); diff --git a/packages/runner-ct/src/legacy-styles/src/css/css-util.scss b/packages/runner-ct/src/legacy-styles/src/css/css-util.scss deleted file mode 100644 index 2dde473abbc3..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/css-util.scss +++ /dev/null @@ -1,9 +0,0 @@ -@mixin no-selection { - -webkit-touch-callout: none; /* iOS Safari */ - -webkit-user-select: none; /* Safari */ - -khtml-user-select: none; /* Konqueror HTML */ - -moz-user-select: none; /* Old versions of Firefox */ - -ms-user-select: none; /* Internet Explorer/Edge */ - user-select: none; /* Non-prefixed version, currently - supported by Chrome, Edge, Opera and Firefox */ -} \ No newline at end of file diff --git a/packages/runner-ct/src/legacy-styles/src/css/derived/export.scss b/packages/runner-ct/src/legacy-styles/src/css/derived/export.scss deleted file mode 100644 index 19071a6af4d2..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/derived/export.scss +++ /dev/null @@ -1,78 +0,0 @@ -@use 'baseColors' as *; -@use 'semanticColors' as *; -@use 'spacing' as *; -@use 'surfaces' as *; -@use 'spacing' as *; -@use 'typography' as *; - -// BaseColors -:root { - @each $name, $color in $colors { - --#{"" + $name}: #{$color}; - } -} - -// SemanticColors -// Write semantic CSS color variables to root -// **NOTE**: Most variables do not need to be exposed as a CSS variable -:root { - // See def in semanticColors.scss - --black-rgb-color: #{extract-rgb('metal-100')}; -} - -// Spacing -@each $name, $text-def in $spacing { - $suffix: str-replace('' + $name, 'space-', ''); - - .#{'padding-' + $suffix} { - @include padding($suffix) - } -} - -// Surfaces -@each $name, $def in $shadow { - $suffix: str-replace('' + $name, 'shadow-', ''); - - .#{'depth-' + $suffix} { - @include depth($suffix) - } -} - -body { - .focused { - @include focused; - } -} - -// Typography -// See typography.scss -:root { - --font-stack-sans: #{$internal-font-stack-sans}; - --font-stack-mono: #{$internal-font-stack-mono}; -} - -@each $name, $text-def in $text { - .#{$name} { - @include text(str-replace($name, 'text-', '')) - } -} - -.text-mono-m { - @include text-mono-m; -} - -.text-mono-s { - @include text-mono-s; -} - -.line-height-normal { - @include line-height-normal; -} - -.line-height-condensed { - @include line-height-condensed; -} - -.line-height-tight { - @include line-height-tight; -} diff --git a/packages/runner-ct/src/legacy-styles/src/css/derived/jsColors.scss b/packages/runner-ct/src/legacy-styles/src/css/derived/jsColors.scss deleted file mode 100644 index e48614cf3818..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/derived/jsColors.scss +++ /dev/null @@ -1,8 +0,0 @@ -@use '../baseColors' as *; - -// Exposes $color, stripped of hyphens, as a JS variable when directly imported -:export { - @each $name, $color in $colors { - #{str-replace("" + $name, '-', '')}: #{$color}; - } -} diff --git a/packages/runner-ct/src/legacy-styles/src/css/derived/jsSpacing.scss b/packages/runner-ct/src/legacy-styles/src/css/derived/jsSpacing.scss deleted file mode 100644 index 01eba51e002a..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/derived/jsSpacing.scss +++ /dev/null @@ -1,8 +0,0 @@ -@use '../spacing.scss' as *; - -// Exposes $spacing, as a JS variable when directly imported -:export { - @each $name, $size in $spacing { - #{$name}: #{$size}; - } -} diff --git a/packages/runner-ct/src/legacy-styles/src/css/derived/jsSurfaces.scss b/packages/runner-ct/src/legacy-styles/src/css/derived/jsSurfaces.scss deleted file mode 100644 index ae704cf136d1..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/derived/jsSurfaces.scss +++ /dev/null @@ -1,8 +0,0 @@ -@use '../surfaces.scss' as *; - -// Exposes $shadow as a JS variable when directly imported -:export { - @each $name, $shadow in $shadow { - #{$name}: #{$shadow}; - } -} diff --git a/packages/runner-ct/src/legacy-styles/src/css/derived/jsTypography.scss b/packages/runner-ct/src/legacy-styles/src/css/derived/jsTypography.scss deleted file mode 100644 index 43ca79350802..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/derived/jsTypography.scss +++ /dev/null @@ -1,18 +0,0 @@ -@use '../typography.scss' as *; -@use '../func.scss' as *; - -// Exposes $text, as a JS variable when directly imported -// This is the only way for JS to directly receive the exposed `.text-*` classes -:export { - @each $name, $text-def in $text { - #{$name}: text(#{str-replace("" + $name, 'text-', '')}) - } - - // TODO: Can this be improved? - text-mono-m: text-mono-m; - text-mono-s: text-mono-s; - - line-height-normal: line-height-normal; - line-height-condensed: line-height-condensed; - line-height-tight: line-height-tight; -} diff --git a/packages/runner-ct/src/legacy-styles/src/css/func.scss b/packages/runner-ct/src/legacy-styles/src/css/func.scss deleted file mode 100644 index 1a570db164ef..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/func.scss +++ /dev/null @@ -1,24 +0,0 @@ -/** -* Replace `$search` with `$replace` in `$string` -* @author Hugo Giraudel -* @param {String} $string - Initial string -* @param {String} $search - Substring to replace -* @param {String} $replace ('') - New value -* @return {String} - Updated string -*/ -// Taken from https://gist.github.com/PuddingNL/51866d4b9f1151963fbd973bf1d66116 -@use "sass:math"; - -@function str-replace($string, $search, $replace: '') { - $index: str-index($string, $search); - - @if $index { - @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace); - } - - @return $string; -} - -@function change-rem-unit-to-em($number) { - @return math.div($number, 1rem) + 0em; -} \ No newline at end of file diff --git a/packages/runner-ct/src/legacy-styles/src/css/index.scss b/packages/runner-ct/src/legacy-styles/src/css/index.scss deleted file mode 100644 index fd15ebbdfe01..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/index.scss +++ /dev/null @@ -1,5 +0,0 @@ -@forward 'baseColors'; -@forward 'semanticColors'; -@forward 'surfaces'; -@forward 'typography'; -@forward 'spacing'; diff --git a/packages/runner-ct/src/legacy-styles/src/css/semanticColors.scss b/packages/runner-ct/src/legacy-styles/src/css/semanticColors.scss deleted file mode 100644 index 8b408b78f880..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/semanticColors.scss +++ /dev/null @@ -1,36 +0,0 @@ -@use 'baseColors' as *; -@use 'func'; - -/** -* Extracts RGB color channels from a named color definition -*/ -@function extract-rgb($color-name: string) { - $color: map-get($colors, $color-name); - - @if $color { - @return red($color), green($color), blue($color); - } - - @return null; -} - -// Provides raw black as a RGB number tuple for substitution into alpha modifying situations (shadows) -// See exposed variable in export.scss -$black-rgb-color: var(--black-rgb-color); - -$control-border-color: $metal-30; -// TODO: Find a better name -$control-slight-color: $metal-10; -$control-focus-color: $chill-40; - -$button-blue-color: $chill-50; -$button-blue-hover-color: $chill-60; -$button-blue-push-color: $chill-70; - -$button-white-color: $metal-00; -$button-white-hover-color: $metal-05; -$button-white-push-color: $metal-10; - -$control-text-color-white: $metal-05; -$control-text-color-dim: $metal-50; -$control-text-color-black: $metal-90; diff --git a/packages/runner-ct/src/legacy-styles/src/css/spacing.scss b/packages/runner-ct/src/legacy-styles/src/css/spacing.scss deleted file mode 100644 index 89c62fdf8807..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/spacing.scss +++ /dev/null @@ -1,26 +0,0 @@ -@use 'func' as *; - -$_base-space: 1rem; - -$spacing: ( - space-xs: 0.25 * $_base-space, // 4px - space-s: 0.5 * $_base-space, // 8px - - space-ms: 0.75 * $_base-space, // 12px - space-m: 1 * $_base-space, // 16px - space-ml: 1.25 * $_base-space, // 20px - - space-l: 1.5 * $_base-space, // 24px - space-xl: 2 * $_base-space, // 32px - space-2xl: 2.5 * $_base-space, // 40px - space-3xl: 3 * $_base-space, // 48px - space-4xl: 4 * $_base-space, // 64px -); - -@function spacing($name: string) { - @return map-get($spacing, "space-" + $name); -} - -@mixin padding($name: string) { - padding: spacing($name); -} diff --git a/packages/runner-ct/src/legacy-styles/src/css/surfaces.scss b/packages/runner-ct/src/legacy-styles/src/css/surfaces.scss deleted file mode 100644 index 8d1d0af52ed2..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/surfaces.scss +++ /dev/null @@ -1,53 +0,0 @@ -@use 'semanticColors' as *; -@use 'func' as *; - -// --- Shadows - -// TODO: Need better semantic names -$shadow: ( - shadow-flat: none, - shadow-slight: 0 1px 2px 0 rgba($black-rgb-color, 0.05), - shadow-bordered: (0 1px 3px 0 rgba($black-rgb-color, 0.1), 0 1px 2px 0 rgba($black-rgb-color, 0.06)), - shadow-3: (0 4px 6px -1px rgba($black-rgb-color, 0.1), 0 2px 4px -1px rgba($black-rgb-color, 0.06)), - shadow-4: (0 10px 15px -3px rgba($black-rgb-color, 0.1), 0 4px 6px -2px rgba($black-rgb-color, 0.05)), - shadow-popup: (0 20px 25px -5px rgba($black-rgb-color, 0.1), 0 10px 10px -5px rgba($black-rgb-color, 0.04)), - shadow-6: (0 25px 50px -12px rgba($black-rgb-color, 0.25)), - shadow-inset-slight: inset 0 2px 4px 0 rgba($black-rgb-color, 0.06), - shadow-inset-well: inset 0 3px 5px 0 rgba($black-rgb-color, 0.1), -); - -// $shadow-outline: 0 0 0 3px rgba(66, 153, 225, 0.5); - -$button-radius: 0.5rem; // 8px - -@function shadow($name: string) { - @return map-get($shadow, "shadow-" + $name); -} - -@mixin depth($name: string) { - box-shadow: shadow($name); -} - -@mixin focused { - &::after { - content: ""; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - - border: 2px solid $control-focus-color; - border-radius: $button-radius; - - pointer-events: none; - } - - &:focus { - outline: none; - } - - input:focus { - outline: none; - } -} diff --git a/packages/runner-ct/src/legacy-styles/src/css/typography.scss b/packages/runner-ct/src/legacy-styles/src/css/typography.scss deleted file mode 100644 index aa47b1d357ed..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/typography.scss +++ /dev/null @@ -1,121 +0,0 @@ -@use 'func' as *; - -// --- Font Families - -/** - * Do not directly reference. Use the $font-stack-sans and $font-stack-mono variables instead - */ -$internal-font-stack-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, - "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; -$internal-font-stack-mono: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - -// See export.scss -$font-stack-sans: var(--font-stack-sans); -$font-stack-mono: var(--font-stack-mono); - -// --- Text Sizes/Scale -// Chosen to produce integer sizes from a base font size of 16px - -$text: ( - text-xs: ( - size: 0.5rem, // 8px - ), - text-s: ( - size: 0.75rem, // 12px - ), - text-ms: ( - size: 0.875rem, // 14px - ), - text-m: ( - size: 1rem, // 16px - weight: bolder, - ), - text-ml: ( - size: 1.25rem, // 18px - weight: bolder, - ), - text-l: ( - size: 1.5rem, // 24px - weight: bolder, - ), - text-xl: ( - size: 2rem, // 32px - weight: bolder, - ), - text-2xl: ( - size: 2.5rem, // 40px - weight: bolder, - ), - text-3xl: ( - size: 3rem, // 48px - weight: bolder, - ), - text-4xl: ( - size: 4rem, // 64px - weight: bolder, - ) -); - -$highlight-weight: 600; - -@function text($name: string) { - @return map-get(map-get($text, "text-" + #{$name}), size); -} - -// --- Line heights - -$lh-tight: 1; -$lh-condensed: 1.25; -$lh-normal: 1.5; - -// --- Mixins - -@mixin _text-base { - font-family: $font-stack-sans; - font-weight: normal; - font-style: normal; -} - -// General text - -@mixin text($name: string) { - $text-def: map-get($text, "text-" + $name); - $size: map-get($text-def, size); - $weight: map-get($text-def, weight); - - @include _text-base; - @if $size { - font-size: $size; - } - @if $weight { - font-weight: $weight; - } -} - -@mixin text-mono-m { - font-size: text(m); - font-family: $font-stack-mono; - font-weight: bold; - font-style: normal; -} - -@mixin text-mono-s { - font-size: text(s); - font-family: $font-stack-mono; - font-weight: bold; - font-style: normal; -} - -// Line heights - -@mixin line-height-normal { - line-height: $lh-normal; -} - -@mixin line-height-condensed { - line-height: $lh-condensed; -} - -@mixin line-height-tight { - line-height: $lh-tight; -} diff --git a/packages/runner-ct/src/legacy-styles/src/global.scss b/packages/runner-ct/src/legacy-styles/src/global.scss deleted file mode 100644 index cffe798d9f12..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/global.scss +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Global CSS values to wrap into the bundle. Should not be imported by dependants - */ -@use 'derived/export.scss'; -@use 'typography'; - -// probably should leave this for the consumer to set? -body, html { - font-size: typography.text(m); - font-family: typography.$font-stack-sans; -} diff --git a/packages/runner-ct/src/legacy-styles/src/index.scss b/packages/runner-ct/src/legacy-styles/src/index.scss deleted file mode 100644 index 3e7e8d505320..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/index.scss +++ /dev/null @@ -1,6 +0,0 @@ -/* - * Base SCSS file for external SASS imports (all dependants should import from this file to use the SASS vars) - */ - -// css prefix for clarity -@forward 'css/index'; diff --git a/packages/runner-ct/src/legacy-styles/src/measure/baseline/Baseline.module.scss b/packages/runner-ct/src/legacy-styles/src/measure/baseline/Baseline.module.scss deleted file mode 100644 index 068e61dd2726..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/measure/baseline/Baseline.module.scss +++ /dev/null @@ -1,31 +0,0 @@ -/** -* Draws the baseline and toplines for a DOM element -*/ -.baseline { - position: relative; - - &:before { - content: ""; - - position: absolute; - - width: 100%; - height: 1px; - - top: 0.2em; - background-color: rgba(red, 0.2); - } - - &:after { - content: ""; - - position: absolute; - - width: 100%; - height: 1px; - - bottom: 0.2em; - left: 0; - background-color: rgba(red, 0.2); - } -} \ No newline at end of file diff --git a/packages/runner-ct/src/legacy-styles/src/stories/colors.module.scss b/packages/runner-ct/src/legacy-styles/src/stories/colors.module.scss deleted file mode 100644 index 0bd82996383a..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/stories/colors.module.scss +++ /dev/null @@ -1,9 +0,0 @@ -.colorBlock { - display: inline-block; - height: 7rem; - width: 7rem; - - padding: 1.5rem; - margin-right: 1rem; - margin-bottom: 1rem; -} \ No newline at end of file diff --git a/packages/runner-ct/src/legacy-styles/src/stories/spacing.module.scss b/packages/runner-ct/src/legacy-styles/src/stories/spacing.module.scss deleted file mode 100644 index c17746d802e3..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/stories/spacing.module.scss +++ /dev/null @@ -1,6 +0,0 @@ -@use 'baseColors' as *; - -.cube { - margin: 1rem; - background-color: $brand-00; -} diff --git a/packages/runner-ct/src/legacy-styles/src/stories/surfaces.module.scss b/packages/runner-ct/src/legacy-styles/src/stories/surfaces.module.scss deleted file mode 100644 index 534ec7ebef75..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/stories/surfaces.module.scss +++ /dev/null @@ -1,9 +0,0 @@ -.surface { - display: inline-block; - height: 12rem; - width: 12rem; - - padding: 1.5rem; - margin-right: 4rem; - margin-bottom: 4rem; -} \ No newline at end of file diff --git a/packages/runner-ct/src/legacy-styles/src/util/storybook/storyHighlightWrapper/storyHighlightWrapper.module.scss b/packages/runner-ct/src/legacy-styles/src/util/storybook/storyHighlightWrapper/storyHighlightWrapper.module.scss deleted file mode 100644 index 01a3066ca15a..000000000000 --- a/packages/runner-ct/src/legacy-styles/src/util/storybook/storyHighlightWrapper/storyHighlightWrapper.module.scss +++ /dev/null @@ -1,5 +0,0 @@ -@use 'baseColors' as *; - -.wrapper { - background-color: $brand-00; -} diff --git a/packages/runner-ct/src/plugins/devtools-fallback.scss b/packages/runner-ct/src/plugins/devtools-fallback.scss deleted file mode 100644 index fd2017a6be56..000000000000 --- a/packages/runner-ct/src/plugins/devtools-fallback.scss +++ /dev/null @@ -1,8 +0,0 @@ -.react-devtools-fallback { - width: 100%; - text-align: center; - display: flex; - justify-content: center; - align-items: center; - height: 70%; -} \ No newline at end of file diff --git a/packages/runner-ct/src/plugins/devtools-fallback.scss.d.ts b/packages/runner-ct/src/plugins/devtools-fallback.scss.d.ts deleted file mode 100644 index 132b232e8959..000000000000 --- a/packages/runner-ct/src/plugins/devtools-fallback.scss.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -// This file is automatically generated. -// Please do not change this file! -interface CssExports { - -} -export const cssExports: CssExports; -export default cssExports; diff --git a/packages/runner-ct/src/runner-ct-variables.scss b/packages/runner-ct/src/runner-ct-variables.scss deleted file mode 100644 index 0c951c73176b..000000000000 --- a/packages/runner-ct/src/runner-ct-variables.scss +++ /dev/null @@ -1,4 +0,0 @@ -$cypress-blue: #3380FF; -$cypress-gray: #f6f6f6; - -$ct-accent-blue: #4299e1; \ No newline at end of file diff --git a/packages/runner-ct/src/variables.scss b/packages/runner-ct/src/variables.scss deleted file mode 100644 index cc6429c3cc4c..000000000000 --- a/packages/runner-ct/src/variables.scss +++ /dev/null @@ -1,23 +0,0 @@ -@forward './legacy-styles'; -@use './legacy-styles' as *; - -$border-color: $metal-20; - -$reporter-background-color: white; -$spec-list-background-color: white; -$left-nav-background-color: $metal-05; - -$resizer-hover-color: $chill-40; - -$aut-background-color: white; -$aut-drop-shadow: shadow(bordered); - -$runner-ct-header-height: 46px; - -/** - * Utility classes - */ - -.display-none { - display: none !important; -} From d1c77542e88187188a240d61d1575d356ab6339a Mon Sep 17 00:00:00 2001 From: KHeo Date: Mon, 1 Aug 2022 13:18:54 +0900 Subject: [PATCH 08/12] Remove runner-ct --- CONTRIBUTING.md | 1 - packages/app/src/runner/index.ts | 2 +- packages/driver/package.json | 1 - packages/driver/src/dom/blackout.ts | 2 +- packages/resolve-dist/lib/index.ts | 2 +- packages/runner-ct/.eslintrc.json | 137 ---------- packages/runner-ct/.gitignore | 1 - packages/runner-ct/README.md | 6 - packages/runner-ct/package.json | 72 ------ packages/runner-ct/src/index.js | 1 - packages/runner-ct/src/main.tsx | 4 - packages/runner-ct/tsconfig.json | 69 ----- packages/runner-ct/webpack.config.ts | 101 -------- packages/runner/package.json | 3 + .../src/dom/dimensions.js | 0 packages/{runner-ct => runner}/src/dom/dom.js | 0 .../{runner-ct => runner}/src/dom/index.ts | 0 packages/runner/src/main.jsx | 2 +- .../src/selector-playground/highlight.jsx | 0 .../selector-playground.scss | 0 .../selector-playground.scss.d.ts | 0 .../src/studio/assertions-menu.jsx | 0 .../src/studio/assertions-menu.scss | 0 .../src/studio/assertions-menu.scss.d.ts | 0 .../{runner-ct => runner}/src/studio/index.js | 0 .../src/studio/studio-recorder.js | 0 .../src/studio/studio-recorder.spec.js | 0 .../{runner-ct => runner}/unified-runner.tsx | 0 packages/server/lib/controllers/runner.ts | 3 +- packages/server/lib/routes-ct.ts | 4 +- packages/server/lib/runner-ct.ts | 4 +- scripts/gulp/monorepoPaths.ts | 1 - scripts/unit/binary/util/packages-spec.js | 6 - yarn.lock | 241 ++---------------- 34 files changed, 33 insertions(+), 630 deletions(-) delete mode 100644 packages/runner-ct/.eslintrc.json delete mode 100644 packages/runner-ct/.gitignore delete mode 100644 packages/runner-ct/README.md delete mode 100644 packages/runner-ct/package.json delete mode 100644 packages/runner-ct/src/index.js delete mode 100644 packages/runner-ct/src/main.tsx delete mode 100644 packages/runner-ct/tsconfig.json delete mode 100644 packages/runner-ct/webpack.config.ts rename packages/{runner-ct => runner}/src/dom/dimensions.js (100%) rename packages/{runner-ct => runner}/src/dom/dom.js (100%) rename packages/{runner-ct => runner}/src/dom/index.ts (100%) rename packages/{runner-ct => runner}/src/selector-playground/highlight.jsx (100%) rename packages/{runner-ct => runner}/src/selector-playground/selector-playground.scss (100%) rename packages/{runner-ct => runner}/src/selector-playground/selector-playground.scss.d.ts (100%) rename packages/{runner-ct => runner}/src/studio/assertions-menu.jsx (100%) rename packages/{runner-ct => runner}/src/studio/assertions-menu.scss (100%) rename packages/{runner-ct => runner}/src/studio/assertions-menu.scss.d.ts (100%) rename packages/{runner-ct => runner}/src/studio/index.js (100%) rename packages/{runner-ct => runner}/src/studio/studio-recorder.js (100%) rename packages/{runner-ct => runner}/src/studio/studio-recorder.spec.js (100%) rename packages/{runner-ct => runner}/unified-runner.tsx (100%) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5814529ef89a..c81b48eb6235 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -271,7 +271,6 @@ Here is a list of the core packages in this repository with a short description, | [reporter](./packages/reporter) | `@packages/reporter` | The reporter shows the running results of the tests (The Command Log UI). | | [root](./packages/root) | `@packages/root` | Dummy package pointing at the root of the repository. | | [runner](./packages/runner) | `@packages/runner` | The runner is the minimal "chrome" around the user's application under test. | - | [runner-ct](./packages/runner-ct) | `@packages/runner-ct` | The runner for component testing | | [server](./packages/server) | `@packages/server` | The <3 of Cypress. This orchestrates everything. The backend node process. | | [server-ct](./packages/server-ct) | `@packages/server-ct` | Some Component Testing specific overrides. Mostly extends functionality from `@packages/server` | | [socket](./packages/socket) | `@packages/socket` | A wrapper around socket.io to provide common libraries. | diff --git a/packages/app/src/runner/index.ts b/packages/app/src/runner/index.ts index c32c12cca4d8..ea12263ae6ba 100644 --- a/packages/app/src/runner/index.ts +++ b/packages/app/src/runner/index.ts @@ -8,7 +8,7 @@ * - reporter * which are built with React and bundle with webpack. * - * The entry point for the webpack bundle is `runner-ct/main.tsx`. + * The entry point for the webpack bundle is `runner/main.tsx`. * Any time you need to consume some existing code, add it to the `window.UnifiedRunner` * namespace there, and access it with `window.UnifiedRunner`. * diff --git a/packages/driver/package.json b/packages/driver/package.json index 4e6a4048cb1b..b3b6bb6fd527 100644 --- a/packages/driver/package.json +++ b/packages/driver/package.json @@ -22,7 +22,6 @@ "@packages/network": "0.0.0-development", "@packages/rewriter": "0.0.0-development", "@packages/runner": "0.0.0-development", - "@packages/runner-ct": "0.0.0-development", "@packages/server": "0.0.0-development", "@packages/socket": "0.0.0-development", "@packages/ts": "0.0.0-development", diff --git a/packages/driver/src/dom/blackout.ts b/packages/driver/src/dom/blackout.ts index 9e7a7e77c82a..e6e07263a10e 100644 --- a/packages/driver/src/dom/blackout.ts +++ b/packages/driver/src/dom/blackout.ts @@ -1,5 +1,5 @@ import $ from 'jquery' -import $dimensions from '@packages/runner-ct/src/dom/dimensions' +import $dimensions from '@packages/runner/src/dom/dimensions' const resetStyles = ` border: none !important; diff --git a/packages/resolve-dist/lib/index.ts b/packages/resolve-dist/lib/index.ts index dff058906d03..32840ce388cb 100644 --- a/packages/resolve-dist/lib/index.ts +++ b/packages/resolve-dist/lib/index.ts @@ -2,7 +2,7 @@ import path from 'path' let fs: typeof import('fs-extra') -export type RunnerPkg = 'app' | 'runner' | 'runner-ct' +export type RunnerPkg = 'app' | 'runner' type FoldersWithDist = 'static' | 'driver' | RunnerPkg | 'launchpad' diff --git a/packages/runner-ct/.eslintrc.json b/packages/runner-ct/.eslintrc.json deleted file mode 100644 index e9a3358d11c1..000000000000 --- a/packages/runner-ct/.eslintrc.json +++ /dev/null @@ -1,137 +0,0 @@ -{ - "plugins": [ - "cypress", - "@cypress/dev" - ], - "extends": [ - "plugin:@cypress/dev/general", - "plugin:@cypress/dev/tests", - "plugin:@cypress/dev/react", - "plugin:react/recommended", - "plugin:react-hooks/recommended", - "../reporter/src/.eslintrc.json" - ], - "parser": "@typescript-eslint/parser", - "env": { - "cypress/globals": true - }, - "rules": { - "react/display-name": "off", - "react/function-component-definition": [ - "error", - { - "namedComponents": "arrow-function", - "unnamedComponents": "arrow-function" - } - ], - "react/jsx-boolean-value": [ - "error", - "always" - ], - "react/jsx-closing-bracket-location": [ - "error", - "line-aligned" - ], - "react/jsx-closing-tag-location": "error", - "react/jsx-curly-brace-presence": [ - "error", - { - "props": "never", - "children": "never" - } - ], - "react/jsx-curly-newline": "error", - "react/jsx-filename-extension": [ - "warn", - { - "extensions": [ - ".js", - ".jsx", - ".tsx" - ] - } - ], - "react/jsx-first-prop-new-line": "error", - "react/jsx-max-props-per-line": [ - "error", - { - "maximum": 1, - "when": "multiline" - } - ], - "react/jsx-no-bind": [ - "error", - { - "ignoreDOMComponents": true - } - ], - "react/jsx-no-useless-fragment": "error", - "react/jsx-one-expression-per-line": [ - "error", - { - "allow": "literal" - } - ], - "react/jsx-sort-props": [ - "error", - { - "callbacksLast": true, - "ignoreCase": true, - "noSortAlphabetically": true, - "reservedFirst": true - } - ], - "react/jsx-tag-spacing": [ - "error", - { - "closingSlash": "never", - "beforeSelfClosing": "always" - } - ], - "react/jsx-wrap-multilines": [ - "error", - { - "declaration": "parens-new-line", - "assignment": "parens-new-line", - "return": "parens-new-line", - "arrow": "parens-new-line", - "condition": "parens-new-line", - "logical": "parens-new-line", - "prop": "parens-new-line" - } - ], - "react/no-array-index-key": "error", - "react/no-unescaped-entities": "off", - "react/prop-types": "off", - "quote-props": [ - "error", - "as-needed" - ] - }, - "overrides": [ - { - "files": [ - "lib/*" - ], - "rules": { - "no-console": 1 - } - }, - { - "files": [ - "**/*.json" - ], - "rules": { - "quotes": "off", - "comma-dangle": "off" - } - }, - { - "files": "*.tsx", - "rules": { - "no-unused-vars": "off", - "react/jsx-no-bind": "off" - } - } - ] -} diff --git a/packages/runner-ct/.gitignore b/packages/runner-ct/.gitignore deleted file mode 100644 index 4068db97ef64..000000000000 --- a/packages/runner-ct/.gitignore +++ /dev/null @@ -1 +0,0 @@ -cypress/videos/* \ No newline at end of file diff --git a/packages/runner-ct/README.md b/packages/runner-ct/README.md deleted file mode 100644 index 1bd7c8f7aa43..000000000000 --- a/packages/runner-ct/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# Runner CT - -This is an old package, deprecated in favor of `@packages/app`. It has two remaining responsibilities before it can be entirely removed: - -1. Bundles `@packages/reporter` and `@packages/driver` via webpack. Once those can be directly imported to `@packages/app`, we can remove this. -2. Bundles styles for `@packages/reporter`, loaded in `main.scss`. Ideally, reporter should import its own styles. \ No newline at end of file diff --git a/packages/runner-ct/package.json b/packages/runner-ct/package.json deleted file mode 100644 index f78ca7515e50..000000000000 --- a/packages/runner-ct/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "name": "@packages/runner-ct", - "version": "0.0.0-development", - "private": true, - "browser": "src/index.js", - "scripts": { - "build": "node ../../scripts/run-webpack", - "build-prod": "cross-env NODE_ENV=production yarn build && tsc", - "clean-deps": "rimraf node_modules", - "cypress:open": "ts-node ../../scripts/cypress.js open --component --project .", - "cypress:run": "ts-node ../../scripts/cypress.js run --component --project .", - "postinstall": "echo '@packages/runner needs: yarn build'", - "lint": "eslint --ext .js,.jsx,.ts,.tsx,.json src", - "test": "ts-node ../../scripts/cypress.js run --component --project .", - "watch": "node ../../scripts/run-webpack --watch --progress --config webpack.config.ts" - }, - "dependencies": {}, - "devDependencies": { - "@babel/core": "^7.12.3", - "@babel/preset-env": "^7.12.1", - "@cypress/react-tooltip": "0.5.3", - "@fortawesome/free-regular-svg-icons": "5.15.2", - "@fortawesome/react-fontawesome": "^0.1.17", - "@packages/driver": "0.0.0-development", - "@packages/icons": "0.0.0-development", - "@popperjs/core": "2.9.2", - "@types/http-proxy": "1.17.4", - "@types/node": "14.14.31", - "@types/sockjs-client": "1.1.0", - "babel-loader": "8.1.0", - "bluebird": "3.5.3", - "cash-dom": "^8.1.0", - "chai": "^4.2.0", - "classnames": "2.3.1", - "clean-webpack-plugin": "^3.0.0", - "cypress-real-events": "1.6.0", - "eslint-plugin-mocha": "^8.0.0", - "eslint-plugin-react": "^7.22.0", - "eslint-plugin-react-hooks": "^4.2.0", - "express": "^4.17.1", - "fuzzysort": "^1.1.4", - "hotkeys-js": "3.8.2", - "html-webpack-plugin": "^4.5.0", - "koa": "^2.13.0", - "mobx": "5.15.4", - "mobx-react": "6.1.8", - "mocha": "^8.1.3", - "nanoid": "3.1.31", - "react": "16.8.6", - "react-devtools-inline": "^4.10.1", - "react-dom": "16.8.6", - "react-popper": "2.2.5", - "react-shadow-dom-retarget-events": "1.0.11", - "react-split-pane": "^0.1.92", - "rimraf": "3.0.2", - "sass": "1.44.0", - "sass-loader": "^10.0.3", - "sockjs-client": "^1.5.0", - "strip-ansi": "6.0.0", - "ts-loader": "^8.0.5", - "ts-node": "^10.2.1", - "watch": "^1.0.2", - "webpack": "^4.44.2" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0", - "webpack-dev-middleware": "*" - }, - "files": [ - "dist" - ] -} diff --git a/packages/runner-ct/src/index.js b/packages/runner-ct/src/index.js deleted file mode 100644 index 431ef7e70904..000000000000 --- a/packages/runner-ct/src/index.js +++ /dev/null @@ -1 +0,0 @@ -import './main' diff --git a/packages/runner-ct/src/main.tsx b/packages/runner-ct/src/main.tsx deleted file mode 100644 index 6b006f09fee8..000000000000 --- a/packages/runner-ct/src/main.tsx +++ /dev/null @@ -1,4 +0,0 @@ -import { UnifiedRunner } from '../unified-runner' - -// @ts-ignore -window.UnifiedRunner = UnifiedRunner diff --git a/packages/runner-ct/tsconfig.json b/packages/runner-ct/tsconfig.json deleted file mode 100644 index b45f3e028969..000000000000 --- a/packages/runner-ct/tsconfig.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "extends": "../ts/tsconfig.json", - "compilerOptions": { - /* Basic Options */ - "target": "es2015", - "module": "commonjs", - /* - * Allow javascript files to be compiled. - * Override this in modules that need JS - */ - "allowJs": true, - "jsx": "react", - "noImplicitAny": false, - "noImplicitThis": false, - "preserveWatchOutput": true, - // "checkJs": true, /* Report errors in .js files. */ - // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ - /* Generates corresponding '.d.ts' file. */ - // "declaration": true, - // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ - /* Generates corresponding '.map' file. */ - "sourceMap": true, - /* Import emit helpers from 'tslib'. */ - "importHelpers": true, - "strictNullChecks": true, - // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ - // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ - /* Strict Type-Checking Options */ - // "traceResolution": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - /** - * Skip type checking of all declaration files (*.d.ts). - * TODO: Look into changing this in the future - */ - /* Additional Checks */ - /* Report errors on unused locals. */ - // "noEmit": true, - "noUnusedLocals": false, - // "noUnusedParameters": true, /* Report errors on unused parameters. */ - /* Report error when not all code paths in function return a value. */ - "noImplicitReturns": true, - // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ - /* Module Resolution Options */ - // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ - // "baseUrl": "../", /* Base directory to resolve non-absolute module names. */ - // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ - // "rootDirs": ["../driver/src"], /* List of root folders whose combined content represents the structure of the project at runtime. */ - "types": [], /* Type declaration files to be included in compilation. */ - "allowSyntheticDefaultImports": true, - "esModuleInterop": true, - "skipLibCheck": true, - "noErrorTruncation": true, - "experimentalDecorators": true - // "noResolve": true - }, - "include": [ - "./lib/*.ts", - "./src*.ts", - "./src*.tsx", - "./index.ts", - "./index.d.ts", - "./../ts/index.d.ts" - ], - "exclude": [ - "dist", - "test" - ] -} diff --git a/packages/runner-ct/webpack.config.ts b/packages/runner-ct/webpack.config.ts deleted file mode 100644 index 3932e46125bb..000000000000 --- a/packages/runner-ct/webpack.config.ts +++ /dev/null @@ -1,101 +0,0 @@ -process.env.NO_LIVERELOAD = '1' - -import _ from 'lodash' -import path from 'path' -import type webpack from 'webpack' -import { getCommonConfig, getCopyWebpackPlugin } from '@packages/web-config/webpack.config.base' -import * as cyIcons from '@packages/icons' - -const commonConfig = getCommonConfig() -const CopyWebpackPlugin = getCopyWebpackPlugin() - -// @ts-ignore -const babelLoader = _.find(commonConfig.module.rules, (rule) => { - // @ts-ignore - return _.includes(rule.use.loader, 'babel-loader') -}) - -// @ts-ignore -babelLoader.use.options.plugins.push([require.resolve('babel-plugin-prismjs'), { - languages: ['javascript', 'coffeescript', 'typescript', 'jsx', 'tsx'], - plugins: ['line-numbers', 'line-highlight'], - theme: 'default', - css: false, -}]) - -const { pngRule, nonPngRules } = commonConfig!.module!.rules!.reduce<{ - nonPngRules: webpack.RuleSetRule[] - pngRule: webpack.RuleSetRule | undefined -}>((acc, rule) => { - if (rule?.test?.toString().includes('png')) { - return { - ...acc, - pngRule: rule, - } - } - - return { - ...acc, - nonPngRules: [...acc.nonPngRules, rule], - } -}, { - nonPngRules: [], - pngRule: undefined, -}) - -if (!pngRule || !pngRule.use) { - throw Error('Could not find png loader') -} - -(pngRule.use as webpack.RuleSetLoader[])[0].options = { - name: '[name].[ext]', - outputPath: 'img', - publicPath: '/__cypress/runner/img/', -} - -// @ts-ignore -const config: webpack.Configuration = { - ...commonConfig, - module: { - rules: [ - ...nonPngRules, - pngRule, - { - test: /index\.js/, - exclude: /node_modules/, - }, - ], - }, - entry: { - cypress_runner: [path.resolve(__dirname, 'src/index.js')], - }, - output: { - path: path.resolve(__dirname, 'dist'), - filename: '[name].js', - chunkFilename: '[name].[chunkhash].js', - }, -} - -// @ts-ignore -config.plugins = [ - // @ts-ignore - ...config.plugins, - new CopyWebpackPlugin([{ - // @ts-ignore // There's a race condition in how these types are generated. - from: cyIcons.getPathToFavicon('favicon.ico'), - }]), -] - -config.resolve = { - ...config.resolve, - alias: { - bluebird: require.resolve('bluebird'), - lodash: require.resolve('lodash'), - mobx: require.resolve('mobx'), - 'mobx-react': require.resolve('mobx-react'), - react: require.resolve('react'), - 'react-dom': require.resolve('react-dom'), - }, -} - -export default config diff --git a/packages/runner/package.json b/packages/runner/package.json index 5d7182edbc34..e11cb066c2dd 100644 --- a/packages/runner/package.json +++ b/packages/runner/package.json @@ -24,6 +24,7 @@ "@packages/rewriter": "0.0.0-development", "@packages/socket": "0.0.0-development", "@packages/web-config": "0.0.0-development", + "@popperjs/core": "2.9.2", "babel-plugin-prismjs": "1.0.2", "bluebird": "3.5.3", "classnames": "2.3.1", @@ -36,6 +37,8 @@ "prop-types": "15.7.2", "react": "16.8.6", "react-dom": "16.8.6", + "react-popper": "2.2.5", + "react-shadow-dom-retarget-events": "1.0.11", "rimraf": "3.0.2", "webpack": "^4.44.2", "webpack-cli": "3.3.2" diff --git a/packages/runner-ct/src/dom/dimensions.js b/packages/runner/src/dom/dimensions.js similarity index 100% rename from packages/runner-ct/src/dom/dimensions.js rename to packages/runner/src/dom/dimensions.js diff --git a/packages/runner-ct/src/dom/dom.js b/packages/runner/src/dom/dom.js similarity index 100% rename from packages/runner-ct/src/dom/dom.js rename to packages/runner/src/dom/dom.js diff --git a/packages/runner-ct/src/dom/index.ts b/packages/runner/src/dom/index.ts similarity index 100% rename from packages/runner-ct/src/dom/index.ts rename to packages/runner/src/dom/index.ts diff --git a/packages/runner/src/main.jsx b/packages/runner/src/main.jsx index 584695d7ff7f..f84214f9205c 100644 --- a/packages/runner/src/main.jsx +++ b/packages/runner/src/main.jsx @@ -1,3 +1,3 @@ -import { UnifiedRunner } from '@packages/runner-ct/unified-runner' +import { UnifiedRunner } from '../unified-runner' window.UnifiedRunner = UnifiedRunner diff --git a/packages/runner-ct/src/selector-playground/highlight.jsx b/packages/runner/src/selector-playground/highlight.jsx similarity index 100% rename from packages/runner-ct/src/selector-playground/highlight.jsx rename to packages/runner/src/selector-playground/highlight.jsx diff --git a/packages/runner-ct/src/selector-playground/selector-playground.scss b/packages/runner/src/selector-playground/selector-playground.scss similarity index 100% rename from packages/runner-ct/src/selector-playground/selector-playground.scss rename to packages/runner/src/selector-playground/selector-playground.scss diff --git a/packages/runner-ct/src/selector-playground/selector-playground.scss.d.ts b/packages/runner/src/selector-playground/selector-playground.scss.d.ts similarity index 100% rename from packages/runner-ct/src/selector-playground/selector-playground.scss.d.ts rename to packages/runner/src/selector-playground/selector-playground.scss.d.ts diff --git a/packages/runner-ct/src/studio/assertions-menu.jsx b/packages/runner/src/studio/assertions-menu.jsx similarity index 100% rename from packages/runner-ct/src/studio/assertions-menu.jsx rename to packages/runner/src/studio/assertions-menu.jsx diff --git a/packages/runner-ct/src/studio/assertions-menu.scss b/packages/runner/src/studio/assertions-menu.scss similarity index 100% rename from packages/runner-ct/src/studio/assertions-menu.scss rename to packages/runner/src/studio/assertions-menu.scss diff --git a/packages/runner-ct/src/studio/assertions-menu.scss.d.ts b/packages/runner/src/studio/assertions-menu.scss.d.ts similarity index 100% rename from packages/runner-ct/src/studio/assertions-menu.scss.d.ts rename to packages/runner/src/studio/assertions-menu.scss.d.ts diff --git a/packages/runner-ct/src/studio/index.js b/packages/runner/src/studio/index.js similarity index 100% rename from packages/runner-ct/src/studio/index.js rename to packages/runner/src/studio/index.js diff --git a/packages/runner-ct/src/studio/studio-recorder.js b/packages/runner/src/studio/studio-recorder.js similarity index 100% rename from packages/runner-ct/src/studio/studio-recorder.js rename to packages/runner/src/studio/studio-recorder.js diff --git a/packages/runner-ct/src/studio/studio-recorder.spec.js b/packages/runner/src/studio/studio-recorder.spec.js similarity index 100% rename from packages/runner-ct/src/studio/studio-recorder.spec.js rename to packages/runner/src/studio/studio-recorder.spec.js diff --git a/packages/runner-ct/unified-runner.tsx b/packages/runner/unified-runner.tsx similarity index 100% rename from packages/runner-ct/unified-runner.tsx rename to packages/runner/unified-runner.tsx diff --git a/packages/server/lib/controllers/runner.ts b/packages/server/lib/controllers/runner.ts index 43bf3a1758bd..ffa8f1e4176c 100644 --- a/packages/server/lib/controllers/runner.ts +++ b/packages/server/lib/controllers/runner.ts @@ -92,8 +92,7 @@ export const runner = { }, handle (testingType, req: Request, res: Response) { - // FIXME: Why is runner-ct being used for all injections? Can anyone comment here as to why this changed? - const pathToFile = getPathToDist(testingType === 'e2e' ? 'runner' : 'runner-ct', req.params[0]) + const pathToFile = getPathToDist('runner', req.params[0]) return send(req, pathToFile) .pipe(res) diff --git a/packages/server/lib/routes-ct.ts b/packages/server/lib/routes-ct.ts index 8d9bd6769bda..36f99a6c1970 100644 --- a/packages/server/lib/routes-ct.ts +++ b/packages/server/lib/routes-ct.ts @@ -7,7 +7,7 @@ import { getPathToDist } from '@packages/resolve-dist' const debug = Debug('cypress:server:routes-ct') const serveChunk = (req: Request, res: Response, clientRoute: string) => { - let pathToFile = getPathToDist('runner-ct', req.originalUrl.replace(clientRoute, '')) + let pathToFile = getPathToDist('runner', req.originalUrl.replace(clientRoute, '')) return send(req, pathToFile).pipe(res) } @@ -47,7 +47,7 @@ export const createRoutesCT = ({ throw Error(`clientRoute is required. Received ${clientRoute}`) } - // enables runner-ct to make a dynamic import + // enables runner to make a dynamic import routesCt.get([ `${clientRoute}ctChunk-*`, `${clientRoute}vendors~ctChunk-*`, diff --git a/packages/server/lib/runner-ct.ts b/packages/server/lib/runner-ct.ts index 9cf202695415..bc6e192e5af2 100644 --- a/packages/server/lib/runner-ct.ts +++ b/packages/server/lib/runner-ct.ts @@ -13,7 +13,7 @@ interface ServeOptions { const debug = Debug('cypress:server:runner-ct') export const handle = (req, res) => { - const pathToFile = getPathToDist('runner-ct', req.params[0]) + const pathToFile = getPathToDist('runner', req.params[0]) return send(req, pathToFile) .pipe(res) @@ -47,7 +47,7 @@ export const makeServeConfig = (options) => { export const serve = (req, res, options: ServeOptions) => { const config = makeServeConfig(options) - const runnerPath = process.env.CYPRESS_INTERNAL_RUNNER_PATH || getPathToIndex('runner-ct') + const runnerPath = process.env.CYPRESS_INTERNAL_RUNNER_PATH || getPathToIndex('runner') return res.render(runnerPath, config) } diff --git a/scripts/gulp/monorepoPaths.ts b/scripts/gulp/monorepoPaths.ts index eee3a373e1eb..0328cb681bb7 100644 --- a/scripts/gulp/monorepoPaths.ts +++ b/scripts/gulp/monorepoPaths.ts @@ -27,7 +27,6 @@ export const monorepoPaths = { pkgRewriter: path.join(__dirname, '../../packages/rewriter'), pkgRoot: path.join(__dirname, '../../packages/root'), pkgRunner: path.join(__dirname, '../../packages/runner'), - pkgRunnerCt: path.join(__dirname, '../../packages/runner-ct'), pkgScaffoldConfig: path.join(__dirname, '../../packages/scaffold-config'), pkgServer: path.join(__dirname, '../../packages/server'), pkgSocket: path.join(__dirname, '../../packages/socket'), diff --git a/scripts/unit/binary/util/packages-spec.js b/scripts/unit/binary/util/packages-spec.js index 6bb51f7ae8d7..5572e21df4c7 100644 --- a/scripts/unit/binary/util/packages-spec.js +++ b/scripts/unit/binary/util/packages-spec.js @@ -55,8 +55,6 @@ describe('rewritePackageNames', () => { it('renames requires', () => { const fileStr = ` const a = require('@packages/server') - const b = require('@packages/runner-ct/') - const c = require("@packages/runner-ct/lib/quux.js") ` const stub = sinon.stub() @@ -65,13 +63,9 @@ describe('rewritePackageNames', () => { expect(newStr).to.eq(` const a = require('../../build/packages/server') - const b = require('../../build/packages/runner-ct/') - const c = require("../../build/packages/runner-ct/lib/quux.js") `) expect(stub.getCall(0).args[0]).to.eq(`require('../../build/packages/server'`) - expect(stub.getCall(1).args[0]).to.eq(`require('../../build/packages/runner-ct/`) - expect(stub.getCall(2).args[0]).to.eq(`require("../../build/packages/runner-ct/`) }) }) diff --git a/yarn.lock b/yarn.lock index 2fceeffbd9ab..2b89bd23b226 100644 --- a/yarn.lock +++ b/yarn.lock @@ -896,7 +896,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7", "@babel/core@^7.0.0", "@babel/core@^7.0.1", "@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.11.1", "@babel/core@^7.12.3", "@babel/core@^7.17.2", "@babel/core@^7.17.9", "@babel/core@^7.4.5", "@babel/core@^7.5.4", "@babel/core@^7.7.5": +"@babel/core@^7", "@babel/core@^7.0.0", "@babel/core@^7.0.1", "@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.11.1", "@babel/core@^7.17.2", "@babel/core@^7.17.9", "@babel/core@^7.4.5", "@babel/core@^7.5.4", "@babel/core@^7.7.5": version "7.17.9" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.9.tgz#6bae81a06d95f4d0dec5bb9d74bbc1f58babdcfe" integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw== @@ -2076,7 +2076,7 @@ levenary "^1.1.1" semver "^5.5.0" -"@babel/preset-env@^7.0.0", "@babel/preset-env@^7.1.6", "@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.4.5": +"@babel/preset-env@^7.0.0", "@babel/preset-env@^7.1.6", "@babel/preset-env@^7.11.0", "@babel/preset-env@^7.4.5": version "7.16.11" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982" integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== @@ -2977,30 +2977,11 @@ resolved "https://registry.yarnpkg.com/@fontsource/open-sans/-/open-sans-4.3.0.tgz#960c3d9df5e841369e47d775dbb1a80212ff08d1" integrity sha512-U4mz+KC0WT0AbjR5BanmfXbtkirFU3puOCOblJ3dm8ekV+SfZ4QSjpEryNCaY16gqNgKtwMWMOtVvlNPmc9gfw== -"@fortawesome/fontawesome-common-types@^0.2.34": - version "0.2.35" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.35.tgz#01dd3d054da07a00b764d78748df20daf2b317e9" - integrity sha512-IHUfxSEDS9dDGqYwIW7wTN6tn/O8E0n5PcAHz9cAaBoZw6UpG20IG/YM3NNLaGPwPqgjBAFjIURzqoQs3rrtuw== - "@fortawesome/fontawesome-free@6.0.0": version "6.0.0" resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.0.0.tgz#6f3bd8e42997c7d536a1246877ed8bcd4f005a54" integrity sha512-6LB4PYBST1Rx40klypw1SmSDArjFOcfBf2LeX9Zg5EKJT2eXiyiJq+CyBYKeXyK0sXS2FsCJWSPr/luyhuvh0Q== -"@fortawesome/free-regular-svg-icons@5.15.2": - version "5.15.2" - resolved "https://registry.yarnpkg.com/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-5.15.2.tgz#61eeb8c206e792c530eaa58279cc32c55332fe8f" - integrity sha512-Uv5NQCYjyisNVTu/1Xjs+z8vwQjbfT6hiqYvQNfF0n8qdgfWLM581bAfVMQ3BCs1SPy+eEUKNcGkK4n0FihFHg== - dependencies: - "@fortawesome/fontawesome-common-types" "^0.2.34" - -"@fortawesome/react-fontawesome@^0.1.17": - version "0.1.17" - resolved "https://registry.yarnpkg.com/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.17.tgz#06fc06cb1a721e38e5b50b4a1cb851e9b9c77d7a" - integrity sha512-dX43Z5IvMaW7fwzU8farosYjKNGfRb2HB/DgjVBHeJZ/NSnuuaujPPx0YOdcAq+n3mqn70tyCde2HM1mqbhiuw== - dependencies: - prop-types "^15.8.1" - "@gar/promisify@^1.0.1", "@gar/promisify@^1.1.3": version "1.1.3" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" @@ -7142,11 +7123,6 @@ resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.2.tgz#a811b8c18e2babab7d542b3365887ae2e4d9de47" integrity sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg== -"@types/sockjs-client@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@types/sockjs-client/-/sockjs-client-1.1.0.tgz#978e7ae2a0a54af366c2cb0cdb73fdbf0d7a9c8f" - integrity sha512-F3gD7AakaPGzzdTmvN8HYxlNL+vTnMykYSUoukRTRGUntH4lwjxG5wx3ZwdYBTA3sTo4duxHY+rRZMbIEBxhRQ== - "@types/sockjs@^0.3.33": version "0.3.33" resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f" @@ -7360,7 +7336,7 @@ "@types/webpack-sources" "*" source-map "^0.6.0" -"@types/webpack@^4", "@types/webpack@^4.4.31", "@types/webpack@^4.41.12", "@types/webpack@^4.41.21", "@types/webpack@^4.41.8": +"@types/webpack@^4", "@types/webpack@^4.41.12", "@types/webpack@^4.41.21", "@types/webpack@^4.41.8": version "4.41.32" resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.32.tgz#a7bab03b72904070162b2f169415492209e94212" integrity sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg== @@ -8324,7 +8300,7 @@ abstract-leveldown@~0.12.0, abstract-leveldown@~0.12.1: dependencies: xtend "~3.0.0" -accepts@^1.3.5, accepts@^1.3.7, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7, accepts@~1.3.8: +accepts@^1.3.7, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7, accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== @@ -8781,7 +8757,7 @@ any-observable@^0.3.0: resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== -any-promise@^1.0.0, any-promise@^1.1.0: +any-promise@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= @@ -11498,14 +11474,6 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -cache-content-type@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c" - integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA== - dependencies: - mime-types "^2.1.18" - ylru "^1.2.0" - cacheable-lookup@^5.0.3: version "5.0.4" resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" @@ -11738,11 +11706,6 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -cash-dom@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/cash-dom/-/cash-dom-8.1.0.tgz#ed8e278231c071b6596618131bd4320c57d32a31" - integrity sha512-QTa50rFuPaX8klEDEbwLr+jVutwpvZEBQ0NpMMyng+je7gNe9Bz/JsOLHIG24tvNSSSIN/Q1QD0bnF6PQzWKHA== - center-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" @@ -12229,14 +12192,6 @@ clean-webpack-plugin@2.0.2: dependencies: del "^4.0.0" -clean-webpack-plugin@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz#a99d8ec34c1c628a4541567aa7b457446460c62b" - integrity sha512-MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A== - dependencies: - "@types/webpack" "^4.4.31" - del "^4.1.1" - cli-boxes@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" @@ -13008,7 +12963,7 @@ content-disposition@0.5.3: dependencies: safe-buffer "5.1.2" -content-disposition@0.5.4, content-disposition@^0.5.4, content-disposition@~0.5.2: +content-disposition@0.5.4, content-disposition@^0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== @@ -13193,14 +13148,6 @@ cookiejar@^2.1.0, cookiejar@^2.1.2: resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c" integrity sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA== -cookies@~0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90" - integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow== - dependencies: - depd "~2.0.0" - keygrip "~1.1.0" - copy-concurrently@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" @@ -14162,7 +14109,7 @@ deep-eql@^3.0.0, deep-eql@^3.0.1: dependencies: type-detect "^4.0.0" -deep-equal@^1.0.1, deep-equal@~1.0.1: +deep-equal@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= @@ -14390,7 +14337,7 @@ depd@^1.1.2, depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= -depd@^2.0.0, depd@~2.0.0: +depd@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== @@ -14464,7 +14411,7 @@ des.js@^1.0.0: inherits "^2.0.1" minimalistic-assert "^1.0.0" -destroy@^1.0.4, destroy@~1.0.4: +destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= @@ -15702,7 +15649,7 @@ escape-goat@^2.0.0: resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== -escape-html@1.0.3, escape-html@^1.0.3, escape-html@~1.0.3: +escape-html@1.0.3, escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= @@ -15874,7 +15821,7 @@ eslint-plugin-jsx-a11y@6.2.3: has "^1.0.3" jsx-ast-utils "^2.2.1" -eslint-plugin-mocha@8.1.0, eslint-plugin-mocha@^8.0.0, eslint-plugin-mocha@^8.1.0: +eslint-plugin-mocha@8.1.0, eslint-plugin-mocha@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/eslint-plugin-mocha/-/eslint-plugin-mocha-8.1.0.tgz#b9aebbede46a808e46e622c8fd99d2a2f353e725" integrity sha512-1EgHvXKRl7W3mq3sntZAi5T24agRMyiTPL4bSXe+B4GksYOjAPEWYx+J3eJg4It1l2NMNZJtk0gQyQ6mfiPhQg== @@ -15897,11 +15844,6 @@ eslint-plugin-react-hooks@^1.6.1: resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz#6210b6d5a37205f0b92858f895a4e827020a7d04" integrity sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA== -eslint-plugin-react-hooks@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz#318dbf312e06fab1c835a4abef00121751ac1172" - integrity sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA== - eslint-plugin-react@7.14.3: version "7.14.3" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.14.3.tgz#911030dd7e98ba49e1b2208599571846a66bdf13" @@ -16277,13 +16219,6 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -exec-sh@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.2.tgz#2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36" - integrity sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw== - dependencies: - merge "^1.2.0" - exec-sh@^0.3.2: version "0.3.4" resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" @@ -17563,7 +17498,7 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" -fresh@0.5.2, fresh@~0.5.2: +fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= @@ -19202,11 +19137,6 @@ hosted-git-info@^5.0.0: dependencies: lru-cache "^7.5.1" -hotkeys-js@3.8.2: - version "3.8.2" - resolved "https://registry.yarnpkg.com/hotkeys-js/-/hotkeys-js-3.8.2.tgz#177c3e7dc19279c881e69983177849bed76e4747" - integrity sha512-HZZ9RVNr3nBbs2nW968o4rp3xXSdPjJ4B7GTXE375WwboltDJMsP9mcHfAAv+igsTeVxetr10mEbnoac/1U+oQ== - hpack.js@^2.1.6: version "2.1.6" resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" @@ -19293,7 +19223,7 @@ html-tags@^3.0.0, html-tags@^3.1.0: resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140" integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg== -"html-webpack-plugin-4@npm:html-webpack-plugin@^4", html-webpack-plugin@4.5.2, html-webpack-plugin@^4.5.0: +"html-webpack-plugin-4@npm:html-webpack-plugin@^4", html-webpack-plugin@4.5.2: version "4.5.2" resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz#76fc83fa1a0f12dd5f7da0404a54e2699666bc12" integrity sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A== @@ -19358,14 +19288,6 @@ htmlparser2@^6.0.0, htmlparser2@^6.1.0: domutils "^2.5.2" entities "^2.0.0" -http-assert@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878" - integrity sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw== - dependencies: - deep-equal "~1.0.1" - http-errors "~1.7.2" - http-cache-semantics@3.8.1, http-cache-semantics@^3.8.1: version "3.8.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" @@ -19403,7 +19325,7 @@ http-errors@1.8.0: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" -http-errors@1.8.1, http-errors@^1.6.3: +http-errors@1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== @@ -22229,13 +22151,6 @@ jws@^3.2.2: jwa "^1.4.1" safe-buffer "^5.0.1" -keygrip@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226" - integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ== - dependencies: - tsscmp "1.0.6" - keyv@3.0.0, keyv@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" @@ -22308,55 +22223,6 @@ klona@^2.0.4: resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== -koa-compose@^3.0.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7" - integrity sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec= - dependencies: - any-promise "^1.1.0" - -koa-compose@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877" - integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw== - -koa-convert@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0" - integrity sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA= - dependencies: - co "^4.6.0" - koa-compose "^3.0.0" - -koa@^2.13.0: - version "2.13.1" - resolved "https://registry.yarnpkg.com/koa/-/koa-2.13.1.tgz#6275172875b27bcfe1d454356a5b6b9f5a9b1051" - integrity sha512-Lb2Dloc72auj5vK4X4qqL7B5jyDPQaZucc9sR/71byg7ryoD1NCaCm63CShk9ID9quQvDEi1bGR/iGjCG7As3w== - dependencies: - accepts "^1.3.5" - cache-content-type "^1.0.0" - content-disposition "~0.5.2" - content-type "^1.0.4" - cookies "~0.8.0" - debug "~3.1.0" - delegates "^1.0.0" - depd "^2.0.0" - destroy "^1.0.4" - encodeurl "^1.0.2" - escape-html "^1.0.3" - fresh "~0.5.2" - http-assert "^1.3.0" - http-errors "^1.6.3" - is-generator-function "^1.0.7" - koa-compose "^4.1.0" - koa-convert "^1.2.0" - on-finished "^2.3.0" - only "~0.0.2" - parseurl "^1.3.2" - statuses "^1.5.0" - type-is "^1.6.16" - vary "^1.1.2" - kolorist@^1.5.0, kolorist@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/kolorist/-/kolorist-1.5.1.tgz#c3d66dc4fabde4f6b7faa6efda84c00491f9e52b" @@ -24039,7 +23905,7 @@ mime-types@2.1.27: dependencies: mime-db "1.44.0" -mime-types@^2.1.12, mime-types@^2.1.18, mime-types@^2.1.21, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@^2.1.34, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.12, mime-types@^2.1.21, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@^2.1.34, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -25018,11 +24884,6 @@ nanoid@3.1.20: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== -nanoid@3.1.31: - version "3.1.31" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.31.tgz#f5b58a1ce1b7604da5f0605757840598d8974dc6" - integrity sha512-ZivnJm0o9bb13p2Ot5CpgC2rQdzB9Uxm/mFZweqm5eMViqOJe3PV6LU2E30SiLgheesmcPrjquqraoolONSA0A== - nanoid@3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" @@ -26220,11 +26081,6 @@ onigasm@^2.2.5: dependencies: lru-cache "^5.1.1" -only@~0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" - integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q= - open@8.2.1: version "8.2.1" resolved "https://registry.yarnpkg.com/open/-/open-8.2.1.tgz#82de42da0ccbf429bc12d099dad2e0975e14e8af" @@ -26994,7 +26850,7 @@ parseuri@0.0.6: resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== -parseurl@^1.3.2, parseurl@~1.3.2, parseurl@~1.3.3: +parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== @@ -28432,7 +28288,7 @@ prop-types@15.7.2: object-assign "^4.1.1" react-is "^16.8.1" -prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: +prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -29012,11 +28868,6 @@ react-dev-utils@^9.1.0: strip-ansi "5.2.0" text-table "0.2.0" -react-devtools-inline@^4.10.1: - version "4.10.1" - resolved "https://registry.yarnpkg.com/react-devtools-inline/-/react-devtools-inline-4.10.1.tgz#7eed62ae7d42b025a6da40f8b5ca7878f3546493" - integrity sha512-Ngar+Fl0LVC5JilIoVFma5Mh31KM3vp7/jFGc7QpbCSZs8H0yI3VUVApzEyqVVUcOIRIc31cGbX79UzDSF6CVQ== - "react-dom-15.6.1@npm:react-dom@15.6.1": version "15.6.1" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.1.tgz#2cb0ed4191038e53c209eb3a79a23e2a4cf99470" @@ -29104,11 +28955,6 @@ react-is@^16.12.0, react-is@^16.13.1, react-is@^16.8.1, react-is@^16.8.6: resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -react-lifecycles-compat@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" - integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== - react-popper@2.2.5: version "2.2.5" resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-2.2.5.tgz#1214ef3cec86330a171671a4fbcbeeb65ee58e96" @@ -29223,22 +29069,6 @@ react-shadow-dom-retarget-events@1.0.11: resolved "https://registry.yarnpkg.com/react-shadow-dom-retarget-events/-/react-shadow-dom-retarget-events-1.0.11.tgz#e57ce3ba0bc8159fec4861778daf02161440f156" integrity sha512-4ExKxKEWUCEmVBZmtly5lgHd9vz/NDKv5H7KmFZZxHZW/W6EmmzyOA928OqeWPxcfXUjfNG8q3hpwCD9O7CRRg== -react-split-pane@^0.1.92: - version "0.1.92" - resolved "https://registry.yarnpkg.com/react-split-pane/-/react-split-pane-0.1.92.tgz#68242f72138aed95dd5910eeb9d99822c4fc3a41" - integrity sha512-GfXP1xSzLMcLJI5BM36Vh7GgZBpy+U/X0no+VM3fxayv+p1Jly5HpMofZJraeaMl73b3hvlr+N9zJKvLB/uz9w== - dependencies: - prop-types "^15.7.2" - react-lifecycles-compat "^3.0.4" - react-style-proptype "^3.2.2" - -react-style-proptype@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/react-style-proptype/-/react-style-proptype-3.2.2.tgz#d8e998e62ce79ec35b087252b90f19f1c33968a0" - integrity sha512-ywYLSjNkxKHiZOqNlso9PZByNEY+FTyh3C+7uuziK0xFXu9xzdyfHwg4S9iyiRRoPCR4k2LqaBBsWVmSBwCWYQ== - dependencies: - prop-types "^15.5.4" - react-style-singleton@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.1.1.tgz#ce7f90b67618be2b6b94902a30aaea152ce52e66" @@ -30620,17 +30450,6 @@ sass-loader@7.2.0: pify "^4.0.1" semver "^5.5.0" -sass-loader@^10.0.3: - version "10.1.1" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.1.1.tgz#4ddd5a3d7638e7949065dd6e9c7c04037f7e663d" - integrity sha512-W6gVDXAd5hR/WHsPicvZdjAWHBcEJ44UahgxcIE196fW2ong0ZHMPO1kZuI5q0VlvMQZh32gpv69PLWQm70qrw== - dependencies: - klona "^2.0.4" - loader-utils "^2.0.0" - neo-async "^2.6.2" - schema-utils "^3.0.0" - semver "^7.3.2" - sass@1.44.0: version "1.44.0" resolved "https://registry.yarnpkg.com/sass/-/sass-1.44.0.tgz#619aa0a2275c097f9af5e6b8fe8a95e3056430fb" @@ -32239,7 +32058,7 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@^1.5.0, statuses@~1.5.0: +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= @@ -33683,7 +33502,7 @@ ts-loader@8.0.13: micromatch "^4.0.0" semver "^6.0.0" -ts-loader@^8.0.2, ts-loader@^8.0.5: +ts-loader@^8.0.2: version "8.1.0" resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-8.1.0.tgz#d6292487df279c7cc79b6d3b70bb9d31682b693e" integrity sha512-YiQipGGAFj2zBfqLhp28yUvPP9jUGqHxRzrGYuc82Z2wM27YIHbElXiaZDc93c3x0mz4zvBmS6q/DgExpdj37A== @@ -33851,11 +33670,6 @@ tslint@^6.1.3: tslib "^1.13.0" tsutils "^2.29.0" -tsscmp@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" - integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== - tsutils@^2.29.0: version "2.29.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" @@ -33981,7 +33795,7 @@ type-fest@^2.3.4: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.3.4.tgz#59bd28c5715a7ea39f8fb0d7e424355ae231a24e" integrity sha512-2UdQc7cx8F4Ky81Xj7NYQKPhZVtDFbtorrkairIW66rW7xQj5msAhioXa04HqEdP4MD4K2G6QAF7Zyiw/Hju1Q== -type-is@^1.6.16, type-is@^1.6.4, type-is@~1.6.17, type-is@~1.6.18: +type-is@^1.6.4, type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== @@ -34738,7 +34552,7 @@ variable-diff@1.1.0: chalk "^1.1.1" object-assign "^4.0.1" -vary@^1, vary@^1.1.2, vary@~1.1.2: +vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= @@ -35212,14 +35026,6 @@ warning@^4.0.2, warning@^4.0.3: dependencies: loose-envify "^1.0.0" -watch@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/watch/-/watch-1.0.2.tgz#340a717bde765726fa0aa07d721e0147a551df0c" - integrity sha1-NApxe952Vyb6CqB9ch4BR6VR3ww= - dependencies: - exec-sh "^0.2.0" - minimist "^1.2.0" - watchify@3.11.1: version "3.11.1" resolved "https://registry.yarnpkg.com/watchify/-/watchify-3.11.1.tgz#8e4665871fff1ef64c0430d1a2c9d084d9721881" @@ -36754,11 +36560,6 @@ yeast@0.1.2: resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= -ylru@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f" - integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ== - yn@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" From e1b887f1f716eced781ff966d1dbe36779de8f7f Mon Sep 17 00:00:00 2001 From: KHeo Date: Tue, 2 Aug 2022 10:34:23 +0900 Subject: [PATCH 09/12] Remove runner-shared and runner-ct comments. --- .github/CODEOWNERS | 2 -- .gitignore | 4 ++-- .vscode/terminals.json | 7 ------- packages/app/README.md | 4 ++-- packages/app/index.d.ts | 4 ++-- 5 files changed, 6 insertions(+), 15 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 2d66311bf198..c28820cc7b64 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -40,8 +40,6 @@ /packages/rewriter/ @cypress-io/end-to-end /packages/root/ @cypress-io/end-to-end /packages/runner/ @cypress-io/end-to-end -/packages/runner-ct/ @cypress-io/component-testing -/packages/runner-shared/ @cypress-io/end-to-end /packages/server/ @cypress-io/end-to-end /packages/socket/ @cypress-io/end-to-end /packages/static/ @cypress-io/end-to-end diff --git a/.gitignore b/.gitignore index 04ed01aea4b3..610ab6af5aa2 100644 --- a/.gitignore +++ b/.gitignore @@ -78,8 +78,8 @@ system-tests/lib/fixtureDirs.ts # from npm/webpack-dev-server /npm/webpack-dev-server/cypress/videos -# from runner-ct -/packages/runner-ct/cypress/screenshots +# from runner +/packages/runner/cypress/screenshots # from errors /packages/errors/__snapshot-images__ diff --git a/.vscode/terminals.json b/.vscode/terminals.json index e154b4233b49..126e4974c2b7 100644 --- a/.vscode/terminals.json +++ b/.vscode/terminals.json @@ -83,13 +83,6 @@ "cwd": "[cwd]/packages/runner", "command": "yarn watch" }, - { - "name": "packages/runner-ct watch", - "focus": true, - "onlySingle": true, - "cwd": "[cwd]/packages/runner-ct", - "command": "yarn watch" - }, { "name": "packages/driver cypress open", "focus": true, diff --git a/packages/app/README.md b/packages/app/README.md index d853a4e339cf..cca5801ce754 100644 --- a/packages/app/README.md +++ b/packages/app/README.md @@ -91,13 +91,13 @@ The terminology can get a bit confusing as Vue Router's `params` are not the que ## Using existing, Vite-incompatible modules -Some of our modules, like `@packages/reporter`, `@packages/driver` and `@packages/runner-shared` cannot be easily +Some of our modules, like `@packages/reporter`, `@packages/driver` and `@packages/runner` cannot be easily used with Vite due to circular dependencies and modules that do not have compatible ESM builds. To work around this, when consuming existing code, it is bundled with webpack and made available under the `window.UnifiedRunner` namespace. It is injected via [`injectBundle`](./src/runner/injectBundle.ts). -To add more code to the bundle, add it in the bundle root, `@packages/runner-ct/src/main.tsx` and attach it to +To add more code to the bundle, add it in the bundle root, `@packages/runner/src/main.tsx` and attach it to `window.UnifiedRunner`. As a rule of thumb, avoid importing from the older, webpack based modules into this package. Instead, if you want to consume code from those older, webpack bundled modules, you should add them to the webpack root and consume them via `window.UnifiedRunner`. Ideally, update [`index.d.ts`](./index.d.ts) to add the types, as well. diff --git a/packages/app/index.d.ts b/packages/app/index.d.ts index 74a41b5d1f88..f3090246d1ea 100644 --- a/packages/app/index.d.ts +++ b/packages/app/index.d.ts @@ -51,11 +51,11 @@ declare global { /** * Any React components or general code needed from - * runner-shared, reporter or driver are also bundled with + * runner, reporter or driver are also bundled with * webpack and made available via the window.UnifedRunner namespace. * * We cannot import the correct types, because this causes the linter and type - * checker to run on runner-shared and reporter, and it blows up. + * checker to run on runner and reporter, and it blows up. */ Reporter: any shortcuts: { From 166cc8a4933dd92705756c9bc966e6f7c188353e Mon Sep 17 00:00:00 2001 From: KHeo Date: Wed, 3 Aug 2022 10:03:28 +0900 Subject: [PATCH 10/12] Feedback --- .gitignore | 3 --- packages/runner/README.md | 4 +++- packages/runner/package.json | 3 --- packages/runner/webpack.config.ts | 14 +++++++++++++- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 610ab6af5aa2..5f8a277767c8 100644 --- a/.gitignore +++ b/.gitignore @@ -78,9 +78,6 @@ system-tests/lib/fixtureDirs.ts # from npm/webpack-dev-server /npm/webpack-dev-server/cypress/videos -# from runner -/packages/runner/cypress/screenshots - # from errors /packages/errors/__snapshot-images__ /packages/errors/__snapshot-md__ diff --git a/packages/runner/README.md b/packages/runner/README.md index f3c6b7b99d2d..5c0c56cf956a 100644 --- a/packages/runner/README.md +++ b/packages/runner/README.md @@ -4,4 +4,6 @@ This is an old package, deprecated in favor of `@packages/app`. It has two remai 1. Bundles `@packages/reporter` and `@packages/driver` via webpack. Once those can be directly imported to `@packages/app`, we can remove this. 2. Bundles styles for `@packages/reporter`, loaded in `main.scss`. Ideally, reporter should import its own styles. -3. Some existing tests in `cypress/e2e` should be migrated to `@packages/app/cypress/e2e/runner`. +3. Contains `dom.js`, which uses proprietary webpack loaders and cannot easily be imported with Vite (dev server in `@packages/app`). Once `dom.js` is free of webpack-specific loader code, we should move it to `@packages/app`. +4. Contains Cypress Studio Recorder code, which was marked as experimental in Cypress 9.x and won't be part of Cypress 10.x initially. It will return at a later date. Until then, the code will be here. It's not currently used in the app. @see https://github.com/cypress-io/cypress/issues/22870 +5. Contains Legacy Cypress styles, most of these can likely be removed. diff --git a/packages/runner/package.json b/packages/runner/package.json index e11cb066c2dd..73c2531d5474 100644 --- a/packages/runner/package.json +++ b/packages/runner/package.json @@ -19,10 +19,7 @@ "@fortawesome/fontawesome-free": "6.0.0", "@packages/driver": "0.0.0-development", "@packages/icons": "0.0.0-development", - "@packages/network": "0.0.0-development", "@packages/reporter": "0.0.0-development", - "@packages/rewriter": "0.0.0-development", - "@packages/socket": "0.0.0-development", "@packages/web-config": "0.0.0-development", "@popperjs/core": "2.9.2", "babel-plugin-prismjs": "1.0.2", diff --git a/packages/runner/webpack.config.ts b/packages/runner/webpack.config.ts index 5bfa67431e84..edb882efc9d2 100644 --- a/packages/runner/webpack.config.ts +++ b/packages/runner/webpack.config.ts @@ -1,9 +1,11 @@ import _ from 'lodash' -import { getCommonConfig, getSimpleConfig } from '@packages/web-config/webpack.config.base' +import { getCommonConfig, getSimpleConfig, getCopyWebpackPlugin } from '@packages/web-config/webpack.config.base' +import * as cyIcons from '@packages/icons' import path from 'path' import webpack from 'webpack' const commonConfig = getCommonConfig() +const CopyWebpackPlugin = getCopyWebpackPlugin() // @ts-ignore const babelLoader = _.find(commonConfig.module.rules, (rule) => { @@ -56,6 +58,16 @@ const mainConfig: webpack.Configuration = { }, } +// @ts-ignore +mainConfig.plugins = [ + // @ts-ignore + ...mainConfig.plugins, + new CopyWebpackPlugin([{ + // @ts-ignore // There's a race condition in how these types are generated. + from: cyIcons.getPathToFavicon('favicon.ico'), + }]), +] + mainConfig.resolve = { ...mainConfig.resolve, alias: { From a4b4f7f5e4e2f642f16ddd3b4c068e9bd6126318 Mon Sep 17 00:00:00 2001 From: Lachlan Miller Date: Thu, 11 Aug 2022 13:39:27 +1000 Subject: [PATCH 11/12] chore: reduce parallelism for reporter-componen-tests --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index d85965114f34..e308326a096b 100644 --- a/circle.yml +++ b/circle.yml @@ -1607,7 +1607,7 @@ jobs: percy: type: boolean default: false - parallelism: 7 + parallelism: 4 steps: - run-new-ui-tests: browser: chrome From cccd76e5083d63a9a3f203356b303583b214f027 Mon Sep 17 00:00:00 2001 From: Lachlan Miller Date: Thu, 11 Aug 2022 13:41:42 +1000 Subject: [PATCH 12/12] chore: reduce paralelleism --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index e308326a096b..1aeef1b9fa9e 100644 --- a/circle.yml +++ b/circle.yml @@ -1607,7 +1607,7 @@ jobs: percy: type: boolean default: false - parallelism: 4 + parallelism: 2 steps: - run-new-ui-tests: browser: chrome