gitextract_yuiyff9g/ ├── .editorconfig ├── .firebaserc ├── .flooignore ├── .gitattributes ├── .gitignore ├── .nvmrc ├── .prettierignore ├── .prettierrc ├── .travis.yml ├── .vscode/ │ └── extensions.json ├── LICENSE ├── README.md ├── angular.json ├── apps/ │ ├── angular-thirty-seconds/ │ │ ├── browserslist │ │ ├── karma.conf.js │ │ ├── src/ │ │ │ ├── app/ │ │ │ │ ├── app.component.ts │ │ │ │ ├── app.module.ts │ │ │ │ ├── create-snippet/ │ │ │ │ │ ├── create-snippet.component.html │ │ │ │ │ ├── create-snippet.component.scss │ │ │ │ │ ├── create-snippet.component.spec.ts │ │ │ │ │ ├── create-snippet.component.ts │ │ │ │ │ ├── create-snippet.module.ts │ │ │ │ │ ├── snippet-info/ │ │ │ │ │ │ ├── snippet-info.component.html │ │ │ │ │ │ ├── snippet-info.component.scss │ │ │ │ │ │ └── snippet-info.component.ts │ │ │ │ │ ├── snippet-modal/ │ │ │ │ │ │ ├── snippet-overview.component.html │ │ │ │ │ │ ├── snippet-overview.component.scss │ │ │ │ │ │ └── snippet-overview.component.ts │ │ │ │ │ └── snippet-spinner/ │ │ │ │ │ ├── snippet-spinner.component.html │ │ │ │ │ ├── snippet-spinner.component.scss │ │ │ │ │ └── snippet-spinner.component.ts │ │ │ │ ├── pull-requests-list/ │ │ │ │ │ ├── pull-requests-list.component.html │ │ │ │ │ ├── pull-requests-list.component.scss │ │ │ │ │ └── pull-requests-list.component.ts │ │ │ │ └── shared/ │ │ │ │ ├── angular-sample.ts │ │ │ │ ├── constants.ts │ │ │ │ ├── consts.ts │ │ │ │ ├── functions/ │ │ │ │ │ ├── generate-snippet.spec.ts │ │ │ │ │ ├── generate-snippet.ts │ │ │ │ │ ├── parse-snippet.spec.ts │ │ │ │ │ ├── parse-snippet.ts │ │ │ │ │ ├── test-data/ │ │ │ │ │ │ └── snippet.ts │ │ │ │ │ └── validation/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── validation.ts │ │ │ │ ├── index.ts │ │ │ │ ├── interfaces/ │ │ │ │ │ ├── branch.interface.ts │ │ │ │ │ ├── commit-info.interface.ts │ │ │ │ │ ├── github-auth.interface.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── pull-request.intreface.ts │ │ │ │ │ ├── repo.interface.ts │ │ │ │ │ ├── snippet.ts │ │ │ │ │ └── user.interface.ts │ │ │ │ └── services/ │ │ │ │ ├── github.service.ts │ │ │ │ ├── snippet.service.spec.ts │ │ │ │ └── snippet.service.ts │ │ │ ├── assets/ │ │ │ │ └── .gitkeep │ │ │ ├── environments/ │ │ │ │ ├── environment.prod.ts │ │ │ │ └── environment.ts │ │ │ ├── index.html │ │ │ ├── main.ts │ │ │ ├── polyfills.ts │ │ │ ├── styles.scss │ │ │ └── test.ts │ │ ├── tsconfig.app.json │ │ ├── tsconfig.json │ │ ├── tsconfig.spec.json │ │ └── tslint.json │ ├── blog/ │ │ ├── browserslist │ │ ├── jest.config.js │ │ ├── src/ │ │ │ ├── app/ │ │ │ │ ├── app.component.html │ │ │ │ ├── app.component.scss │ │ │ │ ├── app.component.spec.ts │ │ │ │ ├── app.component.ts │ │ │ │ ├── app.module.ts │ │ │ │ ├── common.ts │ │ │ │ ├── feed/ │ │ │ │ │ ├── feed.component.html │ │ │ │ │ ├── feed.component.scss │ │ │ │ │ ├── feed.component.spec.ts │ │ │ │ │ └── feed.component.ts │ │ │ │ ├── form/ │ │ │ │ │ ├── form.component.html │ │ │ │ │ ├── form.component.scss │ │ │ │ │ ├── form.component.spec.ts │ │ │ │ │ └── form.component.ts │ │ │ │ ├── post/ │ │ │ │ │ ├── post.component.html │ │ │ │ │ ├── post.component.scss │ │ │ │ │ ├── post.component.spec.ts │ │ │ │ │ └── post.component.ts │ │ │ │ ├── post.service.ts │ │ │ │ └── single-post/ │ │ │ │ ├── single-post.component.html │ │ │ │ ├── single-post.component.scss │ │ │ │ └── single-post.component.ts │ │ │ ├── assets/ │ │ │ │ ├── .gitkeep │ │ │ │ └── fonts/ │ │ │ │ └── droid-sans/ │ │ │ │ └── Apache License.txt │ │ │ ├── environments/ │ │ │ │ ├── environment.prod.ts │ │ │ │ └── environment.ts │ │ │ ├── index.html │ │ │ ├── main.ts │ │ │ ├── polyfills.ts │ │ │ ├── styles.scss │ │ │ └── test-setup.ts │ │ ├── tsconfig.app.json │ │ ├── tsconfig.json │ │ ├── tsconfig.spec.json │ │ └── tslint.json │ ├── codelab/ │ │ ├── browserslist │ │ ├── extra-webpack.config.js │ │ ├── karma.conf.js │ │ ├── src/ │ │ │ ├── app/ │ │ │ │ ├── admin/ │ │ │ │ │ ├── admin-routing.module.ts │ │ │ │ │ ├── admin.component.css │ │ │ │ │ ├── admin.component.html │ │ │ │ │ ├── admin.component.spec.ts │ │ │ │ │ ├── admin.component.ts │ │ │ │ │ ├── admin.module.ts │ │ │ │ │ ├── feedback/ │ │ │ │ │ │ ├── feedback-message-table/ │ │ │ │ │ │ │ ├── feedback-message-table.component.ts │ │ │ │ │ │ │ ├── feedback-message-table.css │ │ │ │ │ │ │ └── feedback-message-table.html │ │ │ │ │ │ ├── feedback.component.css │ │ │ │ │ │ ├── feedback.component.html │ │ │ │ │ │ ├── feedback.component.spec.ts │ │ │ │ │ │ ├── feedback.component.ts │ │ │ │ │ │ ├── feedback.module.ts │ │ │ │ │ │ └── github.service.ts │ │ │ │ │ └── users/ │ │ │ │ │ ├── users.component.css │ │ │ │ │ ├── users.component.html │ │ │ │ │ ├── users.component.spec.ts │ │ │ │ │ ├── users.component.ts │ │ │ │ │ └── users.module.ts │ │ │ │ ├── app-routing.module.ts │ │ │ │ ├── app.component.ts │ │ │ │ ├── app.module.ts │ │ │ │ ├── codelabs/ │ │ │ │ │ ├── about/ │ │ │ │ │ │ ├── about.component.html │ │ │ │ │ │ ├── about.component.scss │ │ │ │ │ │ ├── about.component.spec.ts │ │ │ │ │ │ ├── about.component.ts │ │ │ │ │ │ ├── about.module.ts │ │ │ │ │ │ └── samples/ │ │ │ │ │ │ ├── fake-types.d.ts.not-really │ │ │ │ │ │ ├── slides/ │ │ │ │ │ │ │ ├── ng-template.html │ │ │ │ │ │ │ ├── slide-component.html │ │ │ │ │ │ │ └── structural-directive.html │ │ │ │ │ │ └── storing-code/ │ │ │ │ │ │ ├── backticks.html │ │ │ │ │ │ ├── interpolations.ts │ │ │ │ │ │ └── plain.html │ │ │ │ │ ├── angular/ │ │ │ │ │ │ ├── angular-cli/ │ │ │ │ │ │ │ ├── angular-cli.component.css │ │ │ │ │ │ │ ├── angular-cli.component.html │ │ │ │ │ │ │ ├── angular-cli.component.ts │ │ │ │ │ │ │ └── angular-cli.module.ts │ │ │ │ │ │ ├── angular-routing.module.ts │ │ │ │ │ │ ├── angular.module.ts │ │ │ │ │ │ ├── component-tree/ │ │ │ │ │ │ │ ├── component-tree.component.css │ │ │ │ │ │ │ ├── component-tree.component.html │ │ │ │ │ │ │ ├── component-tree.component.ts │ │ │ │ │ │ │ ├── component-tree.module.ts │ │ │ │ │ │ │ ├── components-hierarchy-svg/ │ │ │ │ │ │ │ │ ├── components-hierarchy-svg.component.html │ │ │ │ │ │ │ │ ├── components-hierarchy-svg.component.spec.ts │ │ │ │ │ │ │ │ ├── components-hierarchy-svg.component.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── samples/ │ │ │ │ │ │ │ └── module/ │ │ │ │ │ │ │ ├── app.module.ts │ │ │ │ │ │ │ ├── box.component.ts │ │ │ │ │ │ │ ├── circle.component.ts │ │ │ │ │ │ │ └── index.html │ │ │ │ │ │ ├── create-first-app/ │ │ │ │ │ │ │ ├── create-first-app.component.css │ │ │ │ │ │ │ ├── create-first-app.component.html │ │ │ │ │ │ │ ├── create-first-app.component.ts │ │ │ │ │ │ │ ├── create-first-app.module.ts │ │ │ │ │ │ │ ├── mode/ │ │ │ │ │ │ │ │ ├── mode.component.css │ │ │ │ │ │ │ │ ├── mode.component.html │ │ │ │ │ │ │ │ ├── mode.component.spec.ts │ │ │ │ │ │ │ │ └── mode.component.ts │ │ │ │ │ │ │ └── samples/ │ │ │ │ │ │ │ ├── app-component/ │ │ │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ │ │ ├── app.module.ts │ │ │ │ │ │ │ │ ├── bootstrap.ts │ │ │ │ │ │ │ │ └── index.html │ │ │ │ │ │ │ └── index-html/ │ │ │ │ │ │ │ ├── bootstrap.ts │ │ │ │ │ │ │ └── index.html │ │ │ │ │ │ ├── custom-events/ │ │ │ │ │ │ │ ├── custom-events.component.css │ │ │ │ │ │ │ ├── custom-events.component.html │ │ │ │ │ │ │ ├── custom-events.component.ts │ │ │ │ │ │ │ └── custom-events.module.ts │ │ │ │ │ │ ├── dependency-injection/ │ │ │ │ │ │ │ ├── dependency-injection.component.css │ │ │ │ │ │ │ ├── dependency-injection.component.html │ │ │ │ │ │ │ ├── dependency-injection.component.ts │ │ │ │ │ │ │ └── dependency-injection.module.ts │ │ │ │ │ │ ├── forms/ │ │ │ │ │ │ │ ├── forms.component.css │ │ │ │ │ │ │ ├── forms.component.html │ │ │ │ │ │ │ ├── forms.component.ts │ │ │ │ │ │ │ ├── forms.module.ts │ │ │ │ │ │ │ └── samples/ │ │ │ │ │ │ │ └── basic/ │ │ │ │ │ │ │ ├── app.1.html │ │ │ │ │ │ │ ├── app.2.html │ │ │ │ │ │ │ ├── app.3.html │ │ │ │ │ │ │ ├── app.4.html │ │ │ │ │ │ │ ├── app.5.html │ │ │ │ │ │ │ ├── app.6.html │ │ │ │ │ │ │ ├── app.component.5.ts │ │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ │ ├── app.module.6.ts │ │ │ │ │ │ │ ├── app.module.ts │ │ │ │ │ │ │ ├── code.ts │ │ │ │ │ │ │ ├── main.ts │ │ │ │ │ │ │ └── styles.css │ │ │ │ │ │ ├── material/ │ │ │ │ │ │ │ ├── material.component.css │ │ │ │ │ │ │ ├── material.component.html │ │ │ │ │ │ │ ├── material.component.ts │ │ │ │ │ │ │ ├── material.module.ts │ │ │ │ │ │ │ └── samples/ │ │ │ │ │ │ │ ├── basic/ │ │ │ │ │ │ │ │ ├── app.1.html │ │ │ │ │ │ │ │ ├── app.2.html │ │ │ │ │ │ │ │ ├── app.3.html │ │ │ │ │ │ │ │ ├── app.4.html │ │ │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ │ │ ├── app.module.ts │ │ │ │ │ │ │ │ ├── code.ts │ │ │ │ │ │ │ │ └── main.ts │ │ │ │ │ │ │ ├── step1/ │ │ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ │ │ └── app.module.ts │ │ │ │ │ │ │ ├── step2/ │ │ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ │ │ └── app.module.ts │ │ │ │ │ │ │ ├── step3/ │ │ │ │ │ │ │ │ └── app.html │ │ │ │ │ │ │ └── step4/ │ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ │ └── app.module.ts │ │ │ │ │ │ ├── pipes/ │ │ │ │ │ │ │ ├── pipes.component.css │ │ │ │ │ │ │ ├── pipes.component.html │ │ │ │ │ │ │ ├── pipes.component.ts │ │ │ │ │ │ │ ├── pipes.module.ts │ │ │ │ │ │ │ └── samples/ │ │ │ │ │ │ │ └── pipes/ │ │ │ │ │ │ │ ├── app.component.html │ │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ │ └── app.module.ts │ │ │ │ │ │ ├── playground/ │ │ │ │ │ │ │ ├── angular-sample.ts │ │ │ │ │ │ │ ├── playground.component.css │ │ │ │ │ │ │ ├── playground.component.html │ │ │ │ │ │ │ ├── playground.component.spec.ts │ │ │ │ │ │ │ ├── playground.component.ts │ │ │ │ │ │ │ └── playground.module.ts │ │ │ │ │ │ ├── router/ │ │ │ │ │ │ │ ├── router.component.css │ │ │ │ │ │ │ ├── router.component.html │ │ │ │ │ │ │ ├── router.component.ts │ │ │ │ │ │ │ ├── router.module.ts │ │ │ │ │ │ │ └── samples/ │ │ │ │ │ │ │ └── simple-router/ │ │ │ │ │ │ │ ├── app.component.html │ │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ │ ├── app.module.ts │ │ │ │ │ │ │ ├── code.ts │ │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ │ ├── kitten.ts │ │ │ │ │ │ │ │ └── puppy.ts │ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ │ └── main.ts │ │ │ │ │ │ ├── structural-directives/ │ │ │ │ │ │ │ ├── bsod.css │ │ │ │ │ │ │ ├── samples/ │ │ │ │ │ │ │ │ ├── mat-tab-nav-bar/ │ │ │ │ │ │ │ │ │ ├── alert.component.ts │ │ │ │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ │ │ │ ├── app.module.ts │ │ │ │ │ │ │ │ │ └── tab.component.ts │ │ │ │ │ │ │ │ ├── material-tabs/ │ │ │ │ │ │ │ │ │ ├── alert.component.ts │ │ │ │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ │ │ │ ├── app.module.ts │ │ │ │ │ │ │ │ │ ├── app.solved.html │ │ │ │ │ │ │ │ │ ├── break-my-computer.component.ts │ │ │ │ │ │ │ │ │ ├── style.css │ │ │ │ │ │ │ │ │ └── taet-led.component.ts │ │ │ │ │ │ │ │ ├── material-tabs-structural-directive/ │ │ │ │ │ │ │ │ │ ├── alert.component.ts │ │ │ │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ │ │ │ ├── app.html │ │ │ │ │ │ │ │ │ ├── app.module.ts │ │ │ │ │ │ │ │ │ ├── app.solved.html │ │ │ │ │ │ │ │ │ ├── hideme.directive.solved.ts │ │ │ │ │ │ │ │ │ ├── hideme.directive.ts │ │ │ │ │ │ │ │ │ └── ignored.module.ts │ │ │ │ │ │ │ │ ├── micro-syntax/ │ │ │ │ │ │ │ │ │ ├── code.ts │ │ │ │ │ │ │ │ │ ├── ms.spec.ts │ │ │ │ │ │ │ │ │ └── ms.ts │ │ │ │ │ │ │ │ └── structural-directives/ │ │ │ │ │ │ │ │ ├── microsyntax.html │ │ │ │ │ │ │ │ ├── ng-for-after.html │ │ │ │ │ │ │ │ ├── ng-for-before.html │ │ │ │ │ │ │ │ ├── ng-if-after.html │ │ │ │ │ │ │ │ └── ng-if-before.html │ │ │ │ │ │ │ ├── structural-directives.component.css │ │ │ │ │ │ │ ├── structural-directives.component.html │ │ │ │ │ │ │ ├── structural-directives.component.ts │ │ │ │ │ │ │ └── structural-directives.module.ts │ │ │ │ │ │ ├── templates/ │ │ │ │ │ │ │ ├── samples/ │ │ │ │ │ │ │ │ ├── data-binding-extra/ │ │ │ │ │ │ │ │ │ ├── app.component.html │ │ │ │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ │ │ │ ├── app.module.ts │ │ │ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ │ │ │ └── number-praiser.ts │ │ │ │ │ │ │ │ ├── event-binding/ │ │ │ │ │ │ │ │ │ ├── app.component.html │ │ │ │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ │ │ │ └── app.module.ts │ │ │ │ │ │ │ │ ├── event-binding-shortcuts/ │ │ │ │ │ │ │ │ │ └── app.component.html │ │ │ │ │ │ │ │ └── reference-binding/ │ │ │ │ │ │ │ │ ├── app.component.html │ │ │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ │ │ └── app.module.ts │ │ │ │ │ │ │ ├── templates.component.css │ │ │ │ │ │ │ ├── templates.component.html │ │ │ │ │ │ │ ├── templates.component.ts │ │ │ │ │ │ │ └── templates.module.ts │ │ │ │ │ │ └── typescript/ │ │ │ │ │ │ ├── typescript/ │ │ │ │ │ │ │ ├── code/ │ │ │ │ │ │ │ │ ├── app.ts │ │ │ │ │ │ │ │ ├── code.ts │ │ │ │ │ │ │ │ └── mini-exercise-test.ts │ │ │ │ │ │ │ ├── typescript-svg/ │ │ │ │ │ │ │ │ ├── typescript-svg.component.html │ │ │ │ │ │ │ │ ├── typescript-svg.component.spec.ts │ │ │ │ │ │ │ │ └── typescript-svg.component.ts │ │ │ │ │ │ │ ├── typescript.component.css │ │ │ │ │ │ │ ├── typescript.component.html │ │ │ │ │ │ │ └── typescript.component.ts │ │ │ │ │ │ ├── typescript-routing.module.ts │ │ │ │ │ │ └── typescript.module.ts │ │ │ │ │ ├── codelabs-routing.module.ts │ │ │ │ │ ├── codelabs.module.ts │ │ │ │ │ └── extra/ │ │ │ │ │ ├── code-playground/ │ │ │ │ │ │ ├── code-playground.component.css │ │ │ │ │ │ ├── code-playground.component.html │ │ │ │ │ │ ├── code-playground.component.ts │ │ │ │ │ │ └── code-playground.module.ts │ │ │ │ │ ├── extra-routing.module.ts │ │ │ │ │ ├── extra.module.ts │ │ │ │ │ ├── rating-summary/ │ │ │ │ │ │ ├── rating-summary.component.css │ │ │ │ │ │ ├── rating-summary.component.html │ │ │ │ │ │ ├── rating-summary.component.ts │ │ │ │ │ │ └── rating-summary.module.ts │ │ │ │ │ └── visual-studio-code/ │ │ │ │ │ ├── visual-studio-code.component.css │ │ │ │ │ ├── visual-studio-code.component.html │ │ │ │ │ ├── visual-studio-code.component.ts │ │ │ │ │ └── visual-studio-code.module.ts │ │ │ │ ├── common.ts │ │ │ │ ├── components/ │ │ │ │ │ ├── angular-routes/ │ │ │ │ │ │ ├── angular-routes.component.html │ │ │ │ │ │ ├── angular-routes.component.scss │ │ │ │ │ │ ├── angular-routes.component.ts │ │ │ │ │ │ └── angular-routes.module.ts │ │ │ │ │ ├── angular-test-runner/ │ │ │ │ │ │ ├── angular-test-runner.component.css │ │ │ │ │ │ ├── angular-test-runner.component.html │ │ │ │ │ │ ├── angular-test-runner.component.ts │ │ │ │ │ │ └── tests.ts │ │ │ │ │ ├── babel-test-runner/ │ │ │ │ │ │ ├── babel-helpers.ts │ │ │ │ │ │ ├── babel-test-runner.component.css │ │ │ │ │ │ ├── babel-test-runner.component.html │ │ │ │ │ │ └── babel-test-runner.component.ts │ │ │ │ │ ├── breadcrumb/ │ │ │ │ │ │ ├── breadcrumb.component.css │ │ │ │ │ │ ├── breadcrumb.component.html │ │ │ │ │ │ ├── breadcrumb.component.spec.ts │ │ │ │ │ │ └── breadcrumb.component.ts │ │ │ │ │ ├── buttons-nav-bar/ │ │ │ │ │ │ ├── buttons-nav-bar.component.html │ │ │ │ │ │ ├── buttons-nav-bar.component.scss │ │ │ │ │ │ ├── buttons-nav-bar.component.ts │ │ │ │ │ │ ├── buttons-nav-bar.module.ts │ │ │ │ │ │ ├── menu-fullscreen-widget/ │ │ │ │ │ │ │ ├── menu-fullscreen-widget.component.html │ │ │ │ │ │ │ ├── menu-fullscreen-widget.component.scss │ │ │ │ │ │ │ ├── menu-fullscreen-widget.component.spec.ts │ │ │ │ │ │ │ └── menu-fullscreen-widget.component.ts │ │ │ │ │ │ ├── menu-github-widget/ │ │ │ │ │ │ │ ├── menu-github-widget.component.css │ │ │ │ │ │ │ ├── menu-github-widget.component.html │ │ │ │ │ │ │ ├── menu-github-widget.component.ts │ │ │ │ │ │ │ └── menu-github-widget.module.ts │ │ │ │ │ │ └── menu-shortcut-widget/ │ │ │ │ │ │ ├── menu-shortcut-widget.component.css │ │ │ │ │ │ ├── menu-shortcut-widget.component.html │ │ │ │ │ │ ├── menu-shortcut-widget.component.ts │ │ │ │ │ │ └── menu-shortcut-widget.module.ts │ │ │ │ │ ├── codelab-components.module.ts │ │ │ │ │ ├── codelab-progress-bar/ │ │ │ │ │ │ ├── codelab-progress-bar.component.css │ │ │ │ │ │ ├── codelab-progress-bar.component.html │ │ │ │ │ │ └── codelab-progress-bar.component.ts │ │ │ │ │ ├── css/ │ │ │ │ │ │ └── codelab-styles.scss │ │ │ │ │ ├── exercise/ │ │ │ │ │ │ ├── exercise.component.css │ │ │ │ │ │ ├── exercise.component.html │ │ │ │ │ │ └── exercise.component.ts │ │ │ │ │ ├── exercise-playground/ │ │ │ │ │ │ ├── codelab-exercise-playground.component.css │ │ │ │ │ │ ├── codelab-exercise-playground.component.html │ │ │ │ │ │ └── codelab-exercise-playground.component.ts │ │ │ │ │ ├── exercise-preview/ │ │ │ │ │ │ ├── exercise-preview.component.html │ │ │ │ │ │ └── exercise-preview.component.ts │ │ │ │ │ ├── external-link-directive/ │ │ │ │ │ │ ├── external-link-directive.directive.spec.ts │ │ │ │ │ │ └── external-link-directive.directive.ts │ │ │ │ │ ├── index/ │ │ │ │ │ │ ├── index.component.html │ │ │ │ │ │ ├── index.component.scss │ │ │ │ │ │ ├── index.component.ts │ │ │ │ │ │ └── index.module.ts │ │ │ │ │ ├── login/ │ │ │ │ │ │ ├── login.component.css │ │ │ │ │ │ ├── login.component.html │ │ │ │ │ │ ├── login.component.spec.ts │ │ │ │ │ │ ├── login.component.ts │ │ │ │ │ │ └── login.module.ts │ │ │ │ │ ├── not-found/ │ │ │ │ │ │ ├── not-found.component.html │ │ │ │ │ │ ├── not-found.component.scss │ │ │ │ │ │ ├── not-found.component.ts │ │ │ │ │ │ └── not-found.module.ts │ │ │ │ │ ├── slides/ │ │ │ │ │ │ ├── closing-slide/ │ │ │ │ │ │ │ ├── codelab-closing-slide.component.css │ │ │ │ │ │ │ ├── codelab-closing-slide.component.html │ │ │ │ │ │ │ ├── codelab-closing-slide.component.spec.ts │ │ │ │ │ │ │ └── codelab-closing-slide.component.ts │ │ │ │ │ │ └── title-slide/ │ │ │ │ │ │ ├── ripple-animation/ │ │ │ │ │ │ │ ├── codelab-ripple-animation.component.css │ │ │ │ │ │ │ ├── codelab-ripple-animation.component.html │ │ │ │ │ │ │ ├── codelab-ripple-animation.component.spec.ts │ │ │ │ │ │ │ └── codelab-ripple-animation.component.ts │ │ │ │ │ │ ├── title-slide.component.css │ │ │ │ │ │ ├── title-slide.component.html │ │ │ │ │ │ ├── title-slide.component.spec.ts │ │ │ │ │ │ └── title-slide.component.ts │ │ │ │ │ └── slides-preview/ │ │ │ │ │ ├── codelab-preview.component.html │ │ │ │ │ ├── codelab-preview.component.scss │ │ │ │ │ └── codelab-preview.component.ts │ │ │ │ ├── containers/ │ │ │ │ │ ├── full-layout/ │ │ │ │ │ │ ├── full-layout.component.html │ │ │ │ │ │ ├── full-layout.component.scss │ │ │ │ │ │ ├── full-layout.component.ts │ │ │ │ │ │ ├── full-layout.module.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── directives/ │ │ │ │ │ ├── directives.module.ts │ │ │ │ │ ├── nextSlide.directive.ts │ │ │ │ │ ├── permissions/ │ │ │ │ │ │ ├── abstract-permission.ts │ │ │ │ │ │ ├── can-load-admin/ │ │ │ │ │ │ │ └── can-load-admin.directive.ts │ │ │ │ │ │ └── is-logged-in/ │ │ │ │ │ │ └── is-loggef-in.directive.ts │ │ │ │ │ └── previousSlide.directive.ts │ │ │ │ ├── shared/ │ │ │ │ │ ├── angular-code/ │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ ├── app.module.ts │ │ │ │ │ │ ├── bootstrap.ts │ │ │ │ │ │ ├── code.ts │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── helpers/ │ │ │ │ │ │ ├── codelabFile.ts │ │ │ │ │ │ └── helpers.ts │ │ │ │ │ ├── interfaces/ │ │ │ │ │ │ ├── exercise-config.ts │ │ │ │ │ │ ├── file-config.ts │ │ │ │ │ │ └── test-info.ts │ │ │ │ │ ├── services/ │ │ │ │ │ │ ├── access.service.ts │ │ │ │ │ │ └── guards/ │ │ │ │ │ │ ├── admin-guard.ts │ │ │ │ │ │ └── login-guard.ts │ │ │ │ │ └── shared.module.ts │ │ │ │ └── sync/ │ │ │ │ ├── sync.component.css │ │ │ │ ├── sync.component.html │ │ │ │ ├── sync.component.spec.ts │ │ │ │ ├── sync.component.ts │ │ │ │ └── sync.module.ts │ │ │ ├── assets/ │ │ │ │ └── .gitkeep │ │ │ ├── environments/ │ │ │ │ ├── environment.prod.ts │ │ │ │ └── environment.ts │ │ │ ├── index.html │ │ │ ├── locale/ │ │ │ │ ├── codelab.ru.xtb │ │ │ │ └── messages.xmb │ │ │ ├── main.ts │ │ │ ├── manifest.webmanifest │ │ │ ├── polyfills.ts │ │ │ ├── service-worker.js │ │ │ ├── styles.scss │ │ │ ├── test.ts │ │ │ └── typings.d.ts │ │ ├── tsconfig.app.json │ │ ├── tsconfig.json │ │ ├── tsconfig.spec.json │ │ └── tslint.json │ ├── kirjs/ │ │ ├── browserslist │ │ ├── karma.conf.js │ │ ├── src/ │ │ │ ├── app/ │ │ │ │ ├── app.component.css │ │ │ │ ├── app.component.html │ │ │ │ ├── app.component.spec.ts │ │ │ │ ├── app.component.ts │ │ │ │ ├── cv/ │ │ │ │ │ ├── resume.css │ │ │ │ │ ├── resume.html │ │ │ │ │ └── resume.scss │ │ │ │ ├── kirjs.module.ts │ │ │ │ └── modules/ │ │ │ │ ├── ast/ │ │ │ │ │ ├── ast-preview-runner/ │ │ │ │ │ │ ├── ast-preview-runner.component.css │ │ │ │ │ │ ├── ast-preview-runner.component.html │ │ │ │ │ │ ├── ast-preview-runner.component.ts │ │ │ │ │ │ └── ast-preview-runner.module.ts │ │ │ │ │ ├── ast.component.css │ │ │ │ │ ├── ast.component.html │ │ │ │ │ ├── ast.component.ts │ │ │ │ │ ├── ast.module.ts │ │ │ │ │ ├── babel-highlight/ │ │ │ │ │ │ └── babel-highlight-match.directive.ts │ │ │ │ │ ├── debugger/ │ │ │ │ │ │ ├── debugger.component.css │ │ │ │ │ │ ├── debugger.component.html │ │ │ │ │ │ ├── debugger.component.spec.ts │ │ │ │ │ │ ├── debugger.component.ts │ │ │ │ │ │ └── debugger.ts │ │ │ │ │ ├── new-progress-bar/ │ │ │ │ │ │ ├── new-progress-bar.component.css │ │ │ │ │ │ ├── new-progress-bar.component.html │ │ │ │ │ │ ├── new-progress-bar.component.ts │ │ │ │ │ │ └── new-progress-bar.module.ts │ │ │ │ │ ├── parse-hello-world-ast.ts │ │ │ │ │ ├── samples/ │ │ │ │ │ │ ├── dec-to-bin-with-semicolons.js │ │ │ │ │ │ ├── dec-to-bin.js │ │ │ │ │ │ ├── eslint/ │ │ │ │ │ │ │ ├── eslint.js │ │ │ │ │ │ │ └── eslint.test.js │ │ │ │ │ │ ├── find-console-log/ │ │ │ │ │ │ │ ├── find-console-log-babel.solved.ts │ │ │ │ │ │ │ ├── find-console-log-babel.ts │ │ │ │ │ │ │ ├── find-console-log-regex.solved.js │ │ │ │ │ │ │ ├── find-console-log.js │ │ │ │ │ │ │ ├── find-console-log.test.js │ │ │ │ │ │ │ ├── remove-console-log.solved.ts │ │ │ │ │ │ │ ├── remove-console-log.test.js │ │ │ │ │ │ │ ├── remove-console-log.ts │ │ │ │ │ │ │ ├── traverse-console-log-babel.solved.ts │ │ │ │ │ │ │ ├── traverse-console-log-babel.solved2.ts │ │ │ │ │ │ │ └── traverse-console-log-babel.ts │ │ │ │ │ │ ├── find-debugger/ │ │ │ │ │ │ │ ├── find-debugger-babel.solved.ts │ │ │ │ │ │ │ ├── find-debugger-babel.ts │ │ │ │ │ │ │ ├── find-debugger-regex.solved.js │ │ │ │ │ │ │ ├── find-debugger.js │ │ │ │ │ │ │ ├── find-debugger.test.js │ │ │ │ │ │ │ ├── hint.js │ │ │ │ │ │ │ ├── remove-debugger.solved.ts │ │ │ │ │ │ │ ├── remove-debugger.test.js │ │ │ │ │ │ │ ├── remove-debugger.ts │ │ │ │ │ │ │ ├── traverse-debugger-babel.solved.ts │ │ │ │ │ │ │ └── traverse-debugger-babel.ts │ │ │ │ │ │ ├── find-fit/ │ │ │ │ │ │ │ ├── find-fit.js │ │ │ │ │ │ │ ├── find-fit.solved.js │ │ │ │ │ │ │ └── find-fit.test.js │ │ │ │ │ │ ├── hello-world.json │ │ │ │ │ │ ├── it-lines/ │ │ │ │ │ │ │ ├── it-lines.js │ │ │ │ │ │ │ ├── it-lines.solved.js │ │ │ │ │ │ │ └── it-lines.test.js │ │ │ │ │ │ └── tricky.js │ │ │ │ │ ├── size-picker/ │ │ │ │ │ │ ├── size-picker.component.css │ │ │ │ │ │ ├── size-picker.component.html │ │ │ │ │ │ ├── size-picker.component.spec.ts │ │ │ │ │ │ ├── size-picker.component.ts │ │ │ │ │ │ └── size-picker.module.ts │ │ │ │ │ └── test-set/ │ │ │ │ │ ├── babel-test-runner/ │ │ │ │ │ │ ├── babel-test-runner.component.css │ │ │ │ │ │ ├── babel-test-runner.component.html │ │ │ │ │ │ └── babel-test-runner.component.ts │ │ │ │ │ ├── test-set.component.css │ │ │ │ │ ├── test-set.component.html │ │ │ │ │ ├── test-set.component.spec.ts │ │ │ │ │ └── test-set.component.ts │ │ │ │ ├── binary/ │ │ │ │ │ ├── angular-flags/ │ │ │ │ │ │ ├── angular-flags.component.css │ │ │ │ │ │ ├── angular-flags.component.html │ │ │ │ │ │ ├── angular-flags.component.spec.ts │ │ │ │ │ │ └── angular-flags.component.ts │ │ │ │ │ ├── ascii/ │ │ │ │ │ │ ├── ascii.component.css │ │ │ │ │ │ ├── ascii.component.html │ │ │ │ │ │ ├── ascii.component.spec.ts │ │ │ │ │ │ └── ascii.component.ts │ │ │ │ │ ├── binary-flat/ │ │ │ │ │ │ ├── binary-flat.component.css │ │ │ │ │ │ ├── binary-flat.component.html │ │ │ │ │ │ ├── binary-flat.component.spec.ts │ │ │ │ │ │ └── binary-flat.component.ts │ │ │ │ │ ├── binary-gif/ │ │ │ │ │ │ ├── binary-gif.component.css │ │ │ │ │ │ ├── binary-gif.component.html │ │ │ │ │ │ ├── binary-gif.component.spec.ts │ │ │ │ │ │ └── binary-gif.component.ts │ │ │ │ │ ├── binary-inline/ │ │ │ │ │ │ ├── binary-display/ │ │ │ │ │ │ │ ├── binary-display.component.css │ │ │ │ │ │ │ ├── binary-display.component.html │ │ │ │ │ │ │ ├── binary-display.component.spec.ts │ │ │ │ │ │ │ └── binary-display.component.ts │ │ │ │ │ │ ├── binary-inline.component.css │ │ │ │ │ │ ├── binary-inline.component.html │ │ │ │ │ │ ├── binary-inline.component.spec.ts │ │ │ │ │ │ ├── binary-inline.component.ts │ │ │ │ │ │ └── binary-inline.module.ts │ │ │ │ │ ├── binary-parser-demo/ │ │ │ │ │ │ ├── binary-parser-demo.component.css │ │ │ │ │ │ ├── binary-parser-demo.component.html │ │ │ │ │ │ ├── binary-parser-demo.component.spec.ts │ │ │ │ │ │ └── binary-parser-demo.component.ts │ │ │ │ │ ├── binary-plain/ │ │ │ │ │ │ ├── binary-plain.component.css │ │ │ │ │ │ ├── binary-plain.component.html │ │ │ │ │ │ ├── binary-plain.component.spec.ts │ │ │ │ │ │ └── binary-plain.component.ts │ │ │ │ │ ├── binary-view/ │ │ │ │ │ │ ├── array/ │ │ │ │ │ │ │ ├── array.component.css │ │ │ │ │ │ │ ├── array.component.html │ │ │ │ │ │ │ ├── array.component.spec.ts │ │ │ │ │ │ │ └── array.component.ts │ │ │ │ │ │ ├── binary-parent/ │ │ │ │ │ │ │ ├── binary-parent.component.html │ │ │ │ │ │ │ ├── binary-parent.component.scss │ │ │ │ │ │ │ ├── binary-parent.component.spec.ts │ │ │ │ │ │ │ └── binary-parent.component.ts │ │ │ │ │ │ ├── binary-view.module.ts │ │ │ │ │ │ ├── bits/ │ │ │ │ │ │ │ ├── bits.component.css │ │ │ │ │ │ │ ├── bits.component.html │ │ │ │ │ │ │ ├── bits.component.spec.ts │ │ │ │ │ │ │ └── bits.component.ts │ │ │ │ │ │ ├── block/ │ │ │ │ │ │ │ ├── block.component.css │ │ │ │ │ │ │ ├── block.component.html │ │ │ │ │ │ │ ├── block.component.spec.ts │ │ │ │ │ │ │ └── block.component.ts │ │ │ │ │ │ ├── color/ │ │ │ │ │ │ │ ├── color.component.css │ │ │ │ │ │ │ ├── color.component.html │ │ │ │ │ │ │ ├── color.component.spec.ts │ │ │ │ │ │ │ └── color.component.ts │ │ │ │ │ │ ├── hex/ │ │ │ │ │ │ │ ├── hex.component.css │ │ │ │ │ │ │ ├── hex.component.html │ │ │ │ │ │ │ ├── hex.component.spec.ts │ │ │ │ │ │ │ └── hex.component.ts │ │ │ │ │ │ ├── inline/ │ │ │ │ │ │ │ ├── inline.component.css │ │ │ │ │ │ │ ├── inline.component.html │ │ │ │ │ │ │ ├── inline.component.spec.ts │ │ │ │ │ │ │ └── inline.component.ts │ │ │ │ │ │ ├── inline-root/ │ │ │ │ │ │ │ ├── inline-root.component.css │ │ │ │ │ │ │ ├── inline-root.component.html │ │ │ │ │ │ │ ├── inline-root.component.spec.ts │ │ │ │ │ │ │ └── inline-root.component.ts │ │ │ │ │ │ ├── number/ │ │ │ │ │ │ │ ├── number.component.css │ │ │ │ │ │ │ ├── number.component.html │ │ │ │ │ │ │ ├── number.component.spec.ts │ │ │ │ │ │ │ └── number.component.ts │ │ │ │ │ │ ├── object/ │ │ │ │ │ │ │ ├── object.component.css │ │ │ │ │ │ │ ├── object.component.html │ │ │ │ │ │ │ ├── object.component.spec.ts │ │ │ │ │ │ │ └── object.component.ts │ │ │ │ │ │ └── string/ │ │ │ │ │ │ ├── string.component.css │ │ │ │ │ │ ├── string.component.html │ │ │ │ │ │ ├── string.component.spec.ts │ │ │ │ │ │ └── string.component.ts │ │ │ │ │ ├── binary.component.html │ │ │ │ │ ├── binary.component.scss │ │ │ │ │ ├── binary.component.ts │ │ │ │ │ ├── binary.module.ts │ │ │ │ │ ├── bindec/ │ │ │ │ │ │ ├── bindec.component.css │ │ │ │ │ │ ├── bindec.component.html │ │ │ │ │ │ ├── bindec.component.spec.ts │ │ │ │ │ │ └── bindec.component.ts │ │ │ │ │ ├── bit/ │ │ │ │ │ │ ├── bit.component.css │ │ │ │ │ │ ├── bit.component.html │ │ │ │ │ │ ├── bit.component.spec.ts │ │ │ │ │ │ └── bit.component.ts │ │ │ │ │ ├── bitwise/ │ │ │ │ │ │ ├── bitwise.component.css │ │ │ │ │ │ ├── bitwise.component.html │ │ │ │ │ │ ├── bitwise.component.spec.ts │ │ │ │ │ │ └── bitwise.component.ts │ │ │ │ │ ├── color-indexing/ │ │ │ │ │ │ ├── color-indexing.component.css │ │ │ │ │ │ ├── color-indexing.component.html │ │ │ │ │ │ ├── color-indexing.component.spec.ts │ │ │ │ │ │ └── color-indexing.component.ts │ │ │ │ │ ├── compare/ │ │ │ │ │ │ ├── compare.component.css │ │ │ │ │ │ ├── compare.component.html │ │ │ │ │ │ ├── compare.component.spec.ts │ │ │ │ │ │ └── compare.component.ts │ │ │ │ │ ├── fake-gif/ │ │ │ │ │ │ ├── fake-gif.component.css │ │ │ │ │ │ ├── fake-gif.component.html │ │ │ │ │ │ ├── fake-gif.component.spec.ts │ │ │ │ │ │ ├── fake-gif.component.ts │ │ │ │ │ │ ├── gif-parser.ts │ │ │ │ │ │ └── gif.ts │ │ │ │ │ ├── gif-palette/ │ │ │ │ │ │ ├── gif-palette.component.css │ │ │ │ │ │ ├── gif-palette.component.html │ │ │ │ │ │ ├── gif-palette.component.spec.ts │ │ │ │ │ │ └── gif-palette.component.ts │ │ │ │ │ ├── hexdec/ │ │ │ │ │ │ ├── hexdec.component.css │ │ │ │ │ │ ├── hexdec.component.html │ │ │ │ │ │ ├── hexdec.component.spec.ts │ │ │ │ │ │ └── hexdec.component.ts │ │ │ │ │ ├── html-post/ │ │ │ │ │ │ ├── html-post.component.css │ │ │ │ │ │ ├── html-post.component.html │ │ │ │ │ │ ├── html-post.component.spec.ts │ │ │ │ │ │ └── html-post.component.ts │ │ │ │ │ ├── json/ │ │ │ │ │ │ ├── json.component.html │ │ │ │ │ │ ├── json.component.scss │ │ │ │ │ │ ├── json.component.spec.ts │ │ │ │ │ │ └── json.component.ts │ │ │ │ │ ├── memory/ │ │ │ │ │ │ ├── memory.component.css │ │ │ │ │ │ ├── memory.component.html │ │ │ │ │ │ ├── memory.component.spec.ts │ │ │ │ │ │ └── memory.component.ts │ │ │ │ │ ├── message/ │ │ │ │ │ │ ├── message.component.css │ │ │ │ │ │ ├── message.component.html │ │ │ │ │ │ ├── message.component.spec.ts │ │ │ │ │ │ └── message.component.ts │ │ │ │ │ ├── midi/ │ │ │ │ │ │ ├── midi.component.css │ │ │ │ │ │ ├── midi.component.html │ │ │ │ │ │ ├── midi.component.spec.ts │ │ │ │ │ │ └── midi.component.ts │ │ │ │ │ ├── parser/ │ │ │ │ │ │ ├── binary-parser.spec.ts │ │ │ │ │ │ ├── binary-parser.ts │ │ │ │ │ │ ├── parsers/ │ │ │ │ │ │ │ ├── abstract-parser.ts │ │ │ │ │ │ │ ├── array-parser.spec.ts │ │ │ │ │ │ │ ├── array-parser.ts │ │ │ │ │ │ │ ├── bit-parser.spec.ts │ │ │ │ │ │ │ ├── bit-parser.ts │ │ │ │ │ │ │ ├── choice-parser.spec.ts │ │ │ │ │ │ │ ├── choice-parser.ts │ │ │ │ │ │ │ ├── common.ts │ │ │ │ │ │ │ ├── debugger-parser.ts │ │ │ │ │ │ │ ├── first-bit-parser.spec.ts │ │ │ │ │ │ │ ├── object-parser.spec.ts │ │ │ │ │ │ │ ├── object-parser.ts │ │ │ │ │ │ │ ├── string-parser.spec.ts │ │ │ │ │ │ │ ├── string-parser.ts │ │ │ │ │ │ │ └── var-uint-parser.ts │ │ │ │ │ │ ├── readers/ │ │ │ │ │ │ │ ├── abstract-reader.ts │ │ │ │ │ │ │ └── string-reader.ts │ │ │ │ │ │ └── utils.ts │ │ │ │ │ ├── shared.ts │ │ │ │ │ └── to-read/ │ │ │ │ │ ├── to-read.component.css │ │ │ │ │ ├── to-read.component.html │ │ │ │ │ ├── to-read.component.spec.ts │ │ │ │ │ └── to-read.component.ts │ │ │ │ ├── cellular-automation/ │ │ │ │ │ ├── board/ │ │ │ │ │ │ ├── board.component.css │ │ │ │ │ │ ├── board.component.html │ │ │ │ │ │ ├── board.component.spec.ts │ │ │ │ │ │ └── board.component.ts │ │ │ │ │ ├── cellular-automation-routing.module.ts │ │ │ │ │ ├── cellular-automation.component.css │ │ │ │ │ ├── cellular-automation.component.html │ │ │ │ │ ├── cellular-automation.component.ts │ │ │ │ │ ├── cellular-automation.module.ts │ │ │ │ │ ├── oscilators/ │ │ │ │ │ │ ├── oscilators.component.css │ │ │ │ │ │ ├── oscilators.component.html │ │ │ │ │ │ ├── oscilators.component.spec.ts │ │ │ │ │ │ └── oscilators.component.ts │ │ │ │ │ ├── rule/ │ │ │ │ │ │ ├── rule.component.css │ │ │ │ │ │ ├── rule.component.html │ │ │ │ │ │ ├── rule.component.spec.ts │ │ │ │ │ │ └── rule.component.ts │ │ │ │ │ ├── rule3/ │ │ │ │ │ │ ├── rule3.component.css │ │ │ │ │ │ ├── rule3.component.html │ │ │ │ │ │ ├── rule3.component.ts │ │ │ │ │ │ └── rule4/ │ │ │ │ │ │ ├── rule4.component.css │ │ │ │ │ │ ├── rule4.component.html │ │ │ │ │ │ ├── rule4.component.spec.ts │ │ │ │ │ │ └── rule4.component.ts │ │ │ │ │ └── rule8/ │ │ │ │ │ ├── rule8.component.css │ │ │ │ │ ├── rule8.component.html │ │ │ │ │ └── rule8.component.ts │ │ │ │ ├── gomoku/ │ │ │ │ │ ├── board/ │ │ │ │ │ │ ├── board.component.html │ │ │ │ │ │ ├── board.component.scss │ │ │ │ │ │ ├── board.component.spec.ts │ │ │ │ │ │ ├── board.component.ts │ │ │ │ │ │ └── board.module.ts │ │ │ │ │ ├── gomoku.component.css │ │ │ │ │ ├── gomoku.component.html │ │ │ │ │ ├── gomoku.component.ts │ │ │ │ │ ├── gomoku.module.ts │ │ │ │ │ ├── highlights.spec.ts │ │ │ │ │ ├── highlights.ts │ │ │ │ │ ├── renlib/ │ │ │ │ │ │ ├── I7.lib │ │ │ │ │ │ ├── lines.lib │ │ │ │ │ │ ├── moves.json │ │ │ │ │ │ ├── parse.js │ │ │ │ │ │ ├── ss.lib │ │ │ │ │ │ └── test.lib │ │ │ │ │ └── tools/ │ │ │ │ │ ├── tools.component.css │ │ │ │ │ ├── tools.component.html │ │ │ │ │ ├── tools.component.spec.ts │ │ │ │ │ └── tools.component.ts │ │ │ │ ├── gomoku-print/ │ │ │ │ │ ├── gomoku-print.component.css │ │ │ │ │ ├── gomoku-print.component.html │ │ │ │ │ ├── gomoku-print.component.ts │ │ │ │ │ ├── gomoku-print.module.ts │ │ │ │ │ ├── o/ │ │ │ │ │ │ ├── o.component.css │ │ │ │ │ │ ├── o.component.html │ │ │ │ │ │ ├── o.component.spec.ts │ │ │ │ │ │ └── o.component.ts │ │ │ │ │ └── x/ │ │ │ │ │ ├── x.component.css │ │ │ │ │ ├── x.component.html │ │ │ │ │ ├── x.component.spec.ts │ │ │ │ │ └── x.component.ts │ │ │ │ ├── home/ │ │ │ │ │ ├── home.component.css │ │ │ │ │ ├── home.component.html │ │ │ │ │ ├── home.component.spec.ts │ │ │ │ │ ├── home.component.ts │ │ │ │ │ ├── home.module.spec.ts │ │ │ │ │ ├── home.module.ts │ │ │ │ │ └── polaroid/ │ │ │ │ │ ├── polaroid.component.css │ │ │ │ │ ├── polaroid.component.html │ │ │ │ │ ├── polaroid.component.spec.ts │ │ │ │ │ └── polaroid.component.ts │ │ │ │ ├── msk/ │ │ │ │ │ ├── msk.component.css │ │ │ │ │ ├── msk.component.html │ │ │ │ │ ├── msk.component.spec.ts │ │ │ │ │ ├── msk.component.ts │ │ │ │ │ └── msk.module.ts │ │ │ │ ├── music/ │ │ │ │ │ ├── music.component.css │ │ │ │ │ ├── music.component.html │ │ │ │ │ ├── music.component.spec.ts │ │ │ │ │ ├── music.component.ts │ │ │ │ │ └── music.module.ts │ │ │ │ ├── qna/ │ │ │ │ │ ├── qna.component.css │ │ │ │ │ ├── qna.component.html │ │ │ │ │ ├── qna.component.spec.ts │ │ │ │ │ ├── qna.component.ts │ │ │ │ │ └── qna.module.ts │ │ │ │ ├── regex/ │ │ │ │ │ ├── live/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── live-mock/ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── live-mock.component.css │ │ │ │ │ │ │ ├── live-mock.component.html │ │ │ │ │ │ │ ├── live-mock.component.spec.ts │ │ │ │ │ │ │ ├── live-mock.component.ts │ │ │ │ │ │ │ └── live-mock.module.ts │ │ │ │ │ │ ├── live.module.ts │ │ │ │ │ │ ├── live.service.spec.ts │ │ │ │ │ │ ├── live.service.ts │ │ │ │ │ │ └── poll/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── poll.component.css │ │ │ │ │ │ ├── poll.component.html │ │ │ │ │ │ ├── poll.component.spec.ts │ │ │ │ │ │ ├── poll.component.ts │ │ │ │ │ │ └── poll.module.ts │ │ │ │ │ ├── regex.component.css │ │ │ │ │ ├── regex.component.html │ │ │ │ │ ├── regex.component.spec.ts │ │ │ │ │ ├── regex.component.ts │ │ │ │ │ └── regex.module.ts │ │ │ │ ├── stack/ │ │ │ │ │ ├── simple-stack/ │ │ │ │ │ │ ├── simple-stack.component.css │ │ │ │ │ │ ├── simple-stack.component.html │ │ │ │ │ │ ├── simple-stack.component.spec.ts │ │ │ │ │ │ └── simple-stack.component.ts │ │ │ │ │ ├── stack-game/ │ │ │ │ │ │ ├── stack-function/ │ │ │ │ │ │ │ ├── stack-function.component.css │ │ │ │ │ │ │ ├── stack-function.component.html │ │ │ │ │ │ │ ├── stack-function.component.spec.ts │ │ │ │ │ │ │ └── stack-function.component.ts │ │ │ │ │ │ ├── stack-function-button/ │ │ │ │ │ │ │ ├── stack-function-button.component.css │ │ │ │ │ │ │ ├── stack-function-button.component.html │ │ │ │ │ │ │ ├── stack-function-button.component.spec.ts │ │ │ │ │ │ │ └── stack-function-button.component.ts │ │ │ │ │ │ ├── stack-game.component.css │ │ │ │ │ │ ├── stack-game.component.html │ │ │ │ │ │ ├── stack-game.component.spec.ts │ │ │ │ │ │ └── stack-game.component.ts │ │ │ │ │ ├── stack-routing.module.ts │ │ │ │ │ ├── stack-test/ │ │ │ │ │ │ ├── stack-test.component.html │ │ │ │ │ │ ├── stack-test.component.scss │ │ │ │ │ │ ├── stack-test.component.spec.ts │ │ │ │ │ │ └── stack-test.component.ts │ │ │ │ │ ├── stack.component.css │ │ │ │ │ ├── stack.component.html │ │ │ │ │ ├── stack.component.spec.ts │ │ │ │ │ ├── stack.component.ts │ │ │ │ │ └── stack.module.ts │ │ │ │ ├── streaming/ │ │ │ │ │ ├── common.ts │ │ │ │ │ ├── overlay/ │ │ │ │ │ │ ├── overlay.component.html │ │ │ │ │ │ ├── overlay.component.scss │ │ │ │ │ │ ├── overlay.component.spec.ts │ │ │ │ │ │ └── overlay.component.ts │ │ │ │ │ └── streaming.module.ts │ │ │ │ ├── svg/ │ │ │ │ │ ├── samples/ │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ ├── app.module.ts │ │ │ │ │ │ ├── attr/ │ │ │ │ │ │ │ └── app.component.ts │ │ │ │ │ │ ├── bs.module.ts │ │ │ │ │ │ ├── chart/ │ │ │ │ │ │ │ └── app.component.ts │ │ │ │ │ │ ├── chart2/ │ │ │ │ │ │ │ ├── app.component.solved.ts │ │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ │ ├── app.module.ts │ │ │ │ │ │ │ └── ticks.component.ts │ │ │ │ │ │ ├── chart3/ │ │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ │ ├── app.module.ts │ │ │ │ │ │ │ └── ticks.component.ts │ │ │ │ │ │ ├── chart4/ │ │ │ │ │ │ │ ├── app.component.solved.ts │ │ │ │ │ │ │ ├── app.component.ts │ │ │ │ │ │ │ ├── app.module.ts │ │ │ │ │ │ │ └── ticks.component.ts │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── style.css │ │ │ │ │ │ ├── sub.component.ts │ │ │ │ │ │ └── svg/ │ │ │ │ │ │ └── app.component.ts │ │ │ │ │ ├── svg-demo/ │ │ │ │ │ │ ├── svg-demo.component.css │ │ │ │ │ │ ├── svg-demo.component.html │ │ │ │ │ │ ├── svg-demo.component.spec.ts │ │ │ │ │ │ └── svg-demo.component.ts │ │ │ │ │ ├── svg-playground/ │ │ │ │ │ │ ├── svg-playground.component.css │ │ │ │ │ │ ├── svg-playground.component.html │ │ │ │ │ │ ├── svg-playground.component.spec.ts │ │ │ │ │ │ └── svg-playground.component.ts │ │ │ │ │ ├── svg-together/ │ │ │ │ │ │ ├── svg-together.component.css │ │ │ │ │ │ ├── svg-together.component.html │ │ │ │ │ │ ├── svg-together.component.spec.ts │ │ │ │ │ │ └── svg-together.component.ts │ │ │ │ │ ├── svg-together-result/ │ │ │ │ │ │ ├── svg-together-result.component.css │ │ │ │ │ │ ├── svg-together-result.component.html │ │ │ │ │ │ ├── svg-together-result.component.spec.ts │ │ │ │ │ │ └── svg-together-result.component.ts │ │ │ │ │ ├── svg.component.css │ │ │ │ │ ├── svg.component.html │ │ │ │ │ ├── svg.component.ts │ │ │ │ │ ├── svg.module.ts │ │ │ │ │ └── timer/ │ │ │ │ │ ├── timer.component.css │ │ │ │ │ ├── timer.component.html │ │ │ │ │ ├── timer.component.spec.ts │ │ │ │ │ └── timer.component.ts │ │ │ │ ├── svg-race/ │ │ │ │ │ ├── finish/ │ │ │ │ │ │ ├── finish.component.css │ │ │ │ │ │ ├── finish.component.html │ │ │ │ │ │ ├── finish.component.spec.ts │ │ │ │ │ │ └── finish.component.ts │ │ │ │ │ ├── little-car/ │ │ │ │ │ │ ├── little-car.component.css │ │ │ │ │ │ ├── little-car.component.html │ │ │ │ │ │ ├── little-car.component.spec.ts │ │ │ │ │ │ └── little-car.component.ts │ │ │ │ │ ├── player/ │ │ │ │ │ │ ├── player.component.css │ │ │ │ │ │ ├── player.component.html │ │ │ │ │ │ ├── player.component.spec.ts │ │ │ │ │ │ └── player.component.ts │ │ │ │ │ ├── race/ │ │ │ │ │ │ ├── race.component.css │ │ │ │ │ │ ├── race.component.html │ │ │ │ │ │ ├── race.component.spec.ts │ │ │ │ │ │ └── race.component.ts │ │ │ │ │ ├── svg-race.component.css │ │ │ │ │ ├── svg-race.component.html │ │ │ │ │ ├── svg-race.component.ts │ │ │ │ │ ├── svg-race.module.ts │ │ │ │ │ └── timer/ │ │ │ │ │ ├── timer.component.css │ │ │ │ │ ├── timer.component.html │ │ │ │ │ ├── timer.component.spec.ts │ │ │ │ │ └── timer.component.ts │ │ │ │ ├── sync/ │ │ │ │ │ ├── sync.component.css │ │ │ │ │ ├── sync.component.html │ │ │ │ │ ├── sync.component.spec.ts │ │ │ │ │ ├── sync.component.ts │ │ │ │ │ └── sync.module.ts │ │ │ │ ├── test/ │ │ │ │ │ ├── test.component.css │ │ │ │ │ ├── test.component.html │ │ │ │ │ ├── test.component.spec.ts │ │ │ │ │ ├── test.component.ts │ │ │ │ │ └── test.module.ts │ │ │ │ └── webassembly/ │ │ │ │ ├── ca/ │ │ │ │ │ ├── ca.module.ts │ │ │ │ │ ├── single-cell/ │ │ │ │ │ │ ├── single-cell.component.css │ │ │ │ │ │ ├── single-cell.component.html │ │ │ │ │ │ ├── single-cell.component.spec.ts │ │ │ │ │ │ └── single-cell.component.ts │ │ │ │ │ └── single-grid/ │ │ │ │ │ ├── single-grid.component.css │ │ │ │ │ ├── single-grid.component.html │ │ │ │ │ ├── single-grid.component.spec.ts │ │ │ │ │ └── single-grid.component.ts │ │ │ │ ├── full-screen-runner/ │ │ │ │ │ ├── full-screen-runner.component.css │ │ │ │ │ ├── full-screen-runner.component.html │ │ │ │ │ ├── full-screen-runner.component.spec.ts │ │ │ │ │ ├── full-screen-runner.component.ts │ │ │ │ │ └── full-screen-runner.module.ts │ │ │ │ ├── monaco-wat.ts │ │ │ │ ├── samples/ │ │ │ │ │ ├── answer.wat │ │ │ │ │ ├── base.js │ │ │ │ │ ├── base.wat │ │ │ │ │ └── old.wat │ │ │ │ ├── tests/ │ │ │ │ │ ├── add-tests.ts │ │ │ │ │ ├── common.ts │ │ │ │ │ ├── disable-tests.ts │ │ │ │ │ ├── enable-tests.ts │ │ │ │ │ ├── evolve-cell.ts │ │ │ │ │ ├── evolve-row.ts │ │ │ │ │ ├── evolve.ts │ │ │ │ │ ├── get-cell-score.ts │ │ │ │ │ ├── get-index.ts │ │ │ │ │ ├── load-cell.ts │ │ │ │ │ ├── load-previous-cell.ts │ │ │ │ │ ├── rotate.ts │ │ │ │ │ ├── shift-tests.ts │ │ │ │ │ └── store-cell-tests.ts │ │ │ │ ├── utils.spec.ts │ │ │ │ ├── utils.ts │ │ │ │ ├── wasm-binary/ │ │ │ │ │ ├── test._wasm │ │ │ │ │ ├── wasm-binary.component.css │ │ │ │ │ ├── wasm-binary.component.html │ │ │ │ │ ├── wasm-binary.component.spec.ts │ │ │ │ │ ├── wasm-binary.component.ts │ │ │ │ │ └── wasm-parser.ts │ │ │ │ ├── webassembly-playground/ │ │ │ │ │ ├── error-message/ │ │ │ │ │ │ ├── error-message.component.css │ │ │ │ │ │ ├── error-message.component.html │ │ │ │ │ │ ├── error-message.component.spec.ts │ │ │ │ │ │ └── error-message.component.ts │ │ │ │ │ ├── monaco-directives/ │ │ │ │ │ │ ├── common.ts │ │ │ │ │ │ ├── monaco-js-position.directive.ts │ │ │ │ │ │ ├── monaco-load-answer.directive.ts │ │ │ │ │ │ ├── monaco-scrolling.directive.ts │ │ │ │ │ │ ├── monaco-wat-position.directive.spec.ts │ │ │ │ │ │ └── monaco-wat-position.directive.ts │ │ │ │ │ ├── runners/ │ │ │ │ │ │ └── wasm-test-runner/ │ │ │ │ │ │ ├── runner.js │ │ │ │ │ │ ├── wasm-test-runner.component.html │ │ │ │ │ │ ├── wasm-test-runner.component.scss │ │ │ │ │ │ ├── wasm-test-runner.component.spec.ts │ │ │ │ │ │ └── wasm-test-runner.component.ts │ │ │ │ │ ├── viz/ │ │ │ │ │ │ ├── grid/ │ │ │ │ │ │ │ ├── grid.component.css │ │ │ │ │ │ │ ├── grid.component.html │ │ │ │ │ │ │ ├── grid.component.spec.ts │ │ │ │ │ │ │ └── grid.component.ts │ │ │ │ │ │ ├── viz.component.css │ │ │ │ │ │ ├── viz.component.html │ │ │ │ │ │ ├── viz.component.spec.ts │ │ │ │ │ │ ├── viz.component.ts │ │ │ │ │ │ └── viz.module.ts │ │ │ │ │ ├── wasm-contents/ │ │ │ │ │ │ ├── wasm-contents.component.css │ │ │ │ │ │ ├── wasm-contents.component.html │ │ │ │ │ │ ├── wasm-contents.component.spec.ts │ │ │ │ │ │ └── wasm-contents.component.ts │ │ │ │ │ ├── web-assembly.service.spec.ts │ │ │ │ │ ├── web-assembly.service.ts │ │ │ │ │ ├── webassembly-code-mode/ │ │ │ │ │ │ ├── webassembly-code-mode.component.css │ │ │ │ │ │ ├── webassembly-code-mode.component.html │ │ │ │ │ │ ├── webassembly-code-mode.component.spec.ts │ │ │ │ │ │ └── webassembly-code-mode.component.ts │ │ │ │ │ ├── webassembly-playground.component.html │ │ │ │ │ ├── webassembly-playground.component.scss │ │ │ │ │ ├── webassembly-playground.component.spec.ts │ │ │ │ │ ├── webassembly-playground.component.ts │ │ │ │ │ └── webassembly-runner/ │ │ │ │ │ ├── webassembly-runner.component.css │ │ │ │ │ ├── webassembly-runner.component.html │ │ │ │ │ ├── webassembly-runner.component.spec.ts │ │ │ │ │ ├── webassembly-runner.component.ts │ │ │ │ │ └── webassembly-runner.module.ts │ │ │ │ ├── webassembly.component.html │ │ │ │ ├── webassembly.component.scss │ │ │ │ ├── webassembly.component.spec.ts │ │ │ │ ├── webassembly.component.ts │ │ │ │ └── webassembly.module.ts │ │ │ ├── assets/ │ │ │ │ ├── .gitkeep │ │ │ │ └── runner/ │ │ │ │ └── index.html │ │ │ ├── environments/ │ │ │ │ ├── environment.prod.ts │ │ │ │ └── environment.ts │ │ │ ├── index.html │ │ │ ├── locale/ │ │ │ │ ├── kirjs.ru.xtb │ │ │ │ └── messages.xmb │ │ │ ├── main.ts │ │ │ ├── polyfills.ts │ │ │ ├── styles.css │ │ │ └── test.ts │ │ ├── tsconfig.app.json │ │ ├── tsconfig.json │ │ ├── tsconfig.spec.json │ │ └── tslint.json │ ├── lis/ │ │ ├── browserslist │ │ ├── jest.config.js │ │ ├── src/ │ │ │ ├── app/ │ │ │ │ ├── app.component.css │ │ │ │ ├── app.component.html │ │ │ │ ├── app.component.spec.ts │ │ │ │ ├── app.component.ts │ │ │ │ ├── app.module.ts │ │ │ │ └── modules/ │ │ │ │ └── rxjs/ │ │ │ │ ├── rxjs.component.css │ │ │ │ ├── rxjs.component.html │ │ │ │ ├── rxjs.component.spec.ts │ │ │ │ ├── rxjs.component.ts │ │ │ │ └── rxjs.module.ts │ │ │ ├── assets/ │ │ │ │ └── .gitkeep │ │ │ ├── environments/ │ │ │ │ ├── environment.prod.ts │ │ │ │ └── environment.ts │ │ │ ├── index.html │ │ │ ├── main.ts │ │ │ ├── polyfills.ts │ │ │ ├── styles.css │ │ │ └── test-setup.ts │ │ ├── tsconfig.app.json │ │ ├── tsconfig.json │ │ ├── tsconfig.spec.json │ │ └── tslint.json │ └── playground/ │ ├── browserslist │ ├── jest.config.js │ ├── src/ │ │ ├── app/ │ │ │ ├── app.component.html │ │ │ ├── app.component.scss │ │ │ ├── app.component.spec.ts │ │ │ ├── app.component.ts │ │ │ ├── app.module.ts │ │ │ ├── code-sync/ │ │ │ │ ├── code-sync.component.css │ │ │ │ ├── code-sync.component.html │ │ │ │ ├── code-sync.component.spec.ts │ │ │ │ ├── code-sync.component.ts │ │ │ │ └── code-sync.module.ts │ │ │ └── playground/ │ │ │ ├── angular-sample.ts │ │ │ ├── playground.component.css │ │ │ ├── playground.component.html │ │ │ ├── playground.component.spec.ts │ │ │ ├── playground.component.ts │ │ │ └── playground.module.ts │ │ ├── assets/ │ │ │ └── .gitkeep │ │ ├── environments/ │ │ │ ├── environment.prod.ts │ │ │ └── environment.ts │ │ ├── index.html │ │ ├── main.ts │ │ ├── polyfills.ts │ │ ├── styles.scss │ │ └── test-setup.ts │ ├── tsconfig.app.json │ ├── tsconfig.json │ ├── tsconfig.spec.json │ └── tslint.json ├── create-issue.js ├── cypress/ │ ├── fixtures/ │ │ └── example.json │ ├── integration/ │ │ └── codelab/ │ │ └── home.spec.js │ ├── plugins/ │ │ ├── cy-ts-preprocessor.js │ │ └── index.js │ ├── support/ │ │ ├── commands.js │ │ └── index.js │ └── tsconfig.json ├── cypress.json ├── docs/ │ ├── CONTRIBUTING.md │ ├── HOSTING.md │ └── TRANSLATING.md ├── firebase.json ├── jest.config.js ├── libs/ │ ├── angular-ast-viz/ │ │ ├── karma.conf.js │ │ ├── ng-package.json │ │ ├── ng-package.prod.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── lib/ │ │ │ │ ├── angular-ast-viz.module.spec.ts │ │ │ │ ├── angular-ast-viz.module.ts │ │ │ │ ├── app.component.css │ │ │ │ ├── app.component.html │ │ │ │ ├── app.component.spec.ts │ │ │ │ ├── app.component.ts │ │ │ │ └── ast-tree/ │ │ │ │ ├── ast-tree.component.css │ │ │ │ ├── ast-tree.component.html │ │ │ │ ├── ast-tree.component.spec.ts │ │ │ │ ├── ast-tree.component.ts │ │ │ │ ├── ast-tree.module.ts │ │ │ │ ├── short-name-babel.pipe.spec.ts │ │ │ │ └── short-name-babel.pipe.ts │ │ │ └── test.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ ├── tsconfig.spec.json │ │ └── tslint.json │ ├── angular-slides-to-pdf/ │ │ ├── karma.conf.js │ │ ├── ng-package.json │ │ ├── ng-package.prod.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── lib/ │ │ │ │ ├── angular-slides-to-pdf.component.ts │ │ │ │ ├── angular-slides-to-pdf.module.spec.ts │ │ │ │ └── angular-slides-to-pdf.module.ts │ │ │ └── test.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ ├── tsconfig.spec.json │ │ └── tslint.json │ ├── browser/ │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── lib/ │ │ │ │ ├── browser-window/ │ │ │ │ │ ├── browser-window.component.css │ │ │ │ │ ├── browser-window.component.html │ │ │ │ │ └── browser-window.component.ts │ │ │ │ ├── browser.module.ts │ │ │ │ ├── preview-window/ │ │ │ │ │ ├── preview-window.component.html │ │ │ │ │ ├── preview-window.component.scss │ │ │ │ │ └── preview-window.component.ts │ │ │ │ └── terminal-window/ │ │ │ │ ├── terminal-window.component.css │ │ │ │ ├── terminal-window.component.html │ │ │ │ └── terminal-window.component.ts │ │ │ └── test.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ ├── tsconfig.spec.json │ │ └── tslint.json │ ├── code-demos/ │ │ ├── assets/ │ │ │ └── runner/ │ │ │ ├── README.md │ │ │ ├── index.html │ │ │ ├── js/ │ │ │ │ ├── mocha.js │ │ │ │ ├── system-config.js │ │ │ │ └── test-bootstrap.js │ │ │ ├── ng-dts/ │ │ │ │ ├── bundler.ts │ │ │ │ └── files.txt │ │ │ ├── ng2/ │ │ │ │ ├── basic.ts │ │ │ │ ├── ng-bundle.js │ │ │ │ ├── ng2-runner.js │ │ │ │ └── rxjs.operators.ts │ │ │ ├── package.json │ │ │ └── tsconfig.json │ │ ├── index.ts │ │ ├── jest.config.js │ │ ├── ng-package.json │ │ ├── ng-package.prod.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── lib/ │ │ │ │ ├── code-demo/ │ │ │ │ │ ├── code-demo.component.css │ │ │ │ │ ├── code-demo.component.html │ │ │ │ │ └── code-demo.component.ts │ │ │ │ ├── code-demo-editor/ │ │ │ │ │ ├── code-demo-editor.component.ts │ │ │ │ │ ├── code-demo-editor.injector.ts │ │ │ │ │ ├── directives/ │ │ │ │ │ │ ├── code-demo-editor.auto-folding.directive.spec.ts │ │ │ │ │ │ ├── code-demo-editor.auto-folding.directive.ts │ │ │ │ │ │ ├── code-demo-editor.highlight.directive.ts │ │ │ │ │ │ └── code-demo-editor.line-change.directive.ts │ │ │ │ │ ├── editor.component.css │ │ │ │ │ ├── themes/ │ │ │ │ │ │ └── devtools.json │ │ │ │ │ └── utils/ │ │ │ │ │ ├── utils.spec.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── code-demo-runner/ │ │ │ │ │ ├── code-demo-runner.component.css │ │ │ │ │ ├── code-demo-runner.component.html │ │ │ │ │ ├── code-demo-runner.component.spec.ts │ │ │ │ │ └── code-demo-runner.component.ts │ │ │ │ ├── code-demo.module.ts │ │ │ │ ├── code-demos.module.spec.ts │ │ │ │ ├── file-path/ │ │ │ │ │ ├── file-path.component.css │ │ │ │ │ ├── file-path.component.html │ │ │ │ │ ├── file-path.component.spec.ts │ │ │ │ │ └── file-path.component.ts │ │ │ │ ├── index.ts │ │ │ │ ├── multitab-editor/ │ │ │ │ │ ├── editor-from-model/ │ │ │ │ │ │ ├── editor-from-model.component.css │ │ │ │ │ │ ├── editor-from-model.component.html │ │ │ │ │ │ ├── editor-from-model.component.spec.ts │ │ │ │ │ │ └── editor-from-model.component.ts │ │ │ │ │ ├── multitab-editor.component.css │ │ │ │ │ ├── multitab-editor.component.html │ │ │ │ │ ├── multitab-editor.component.spec.ts │ │ │ │ │ └── multitab-editor.component.ts │ │ │ │ ├── realtime-eval/ │ │ │ │ │ ├── realtime-eval.component.css │ │ │ │ │ ├── realtime-eval.component.html │ │ │ │ │ ├── realtime-eval.component.spec.ts │ │ │ │ │ └── realtime-eval.component.ts │ │ │ │ ├── runner/ │ │ │ │ │ ├── compile-ts-files.ts │ │ │ │ │ └── prepare-templates.ts │ │ │ │ └── shared/ │ │ │ │ ├── deps-order.service.spec.ts │ │ │ │ ├── deps-order.service.ts │ │ │ │ ├── helpers.ts │ │ │ │ ├── index.ts │ │ │ │ ├── loop-protection.service.spec.ts │ │ │ │ ├── loop-protection.service.ts │ │ │ │ ├── monaco-config.service.spec.ts │ │ │ │ ├── monaco-config.service.ts │ │ │ │ ├── monaco-replay.ts │ │ │ │ ├── sandbox.ts │ │ │ │ ├── script-loader.service.ts │ │ │ │ ├── types-not-really.d.ts │ │ │ │ ├── types.ts │ │ │ │ ├── utils.ts │ │ │ │ └── visitor.ts │ │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ ├── tsconfig.spec.json │ │ └── tslint.json │ ├── console/ │ │ ├── karma.conf.js │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── lib/ │ │ │ │ ├── console.component.css │ │ │ │ ├── console.component.html │ │ │ │ ├── console.component.spec.ts │ │ │ │ ├── console.component.ts │ │ │ │ ├── console.module.ts │ │ │ │ └── display-dynamic.component/ │ │ │ │ ├── display-dynamic-component.component.css │ │ │ │ ├── display-dynamic-component.component.html │ │ │ │ ├── display-dynamic-component.component.spec.ts │ │ │ │ └── display-dynamic-component.component.ts │ │ │ └── test.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ ├── tsconfig.spec.json │ │ └── tslint.json │ ├── feedback/ │ │ ├── karma.conf.js │ │ ├── ng-package.json │ │ ├── ng-package.prod.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── lib/ │ │ │ │ ├── feedback-issue-dropdown/ │ │ │ │ │ ├── feedback-issue-dropdown.component.html │ │ │ │ │ ├── feedback-issue-dropdown.component.scss │ │ │ │ │ └── feedback-issue-dropdown.component.ts │ │ │ │ ├── feedback-rating/ │ │ │ │ │ ├── feedback-rating.component.css │ │ │ │ │ ├── feedback-rating.component.html │ │ │ │ │ └── feedback-rating.component.ts │ │ │ │ ├── feedback-widget/ │ │ │ │ │ ├── feedback-widget.component.html │ │ │ │ │ ├── feedback-widget.component.scss │ │ │ │ │ └── feedback-widget.component.ts │ │ │ │ ├── feedback.module.spec.ts │ │ │ │ ├── feedback.module.ts │ │ │ │ ├── feedback.service.spec.ts │ │ │ │ ├── feedback.service.ts │ │ │ │ └── message.ts │ │ │ └── test.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ ├── tsconfig.spec.json │ │ └── tslint.json │ ├── firebase/ │ │ ├── README.md │ │ ├── jest.config.js │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── lib/ │ │ │ │ ├── firebase.module.spec.ts │ │ │ │ ├── firebase.module.ts │ │ │ │ ├── sync-fire-store.directive.spec.ts │ │ │ │ └── sync-fire-store.directive.ts │ │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ ├── tsconfig.spec.json │ │ └── tslint.json │ ├── firebase-login/ │ │ ├── index.ts │ │ ├── karma.conf.js │ │ ├── ng-package.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── lib/ │ │ │ │ ├── firebase-login.module.spec.ts │ │ │ │ ├── firebase-login.module.ts │ │ │ │ ├── index.ts │ │ │ │ ├── login-widget/ │ │ │ │ │ ├── login-widget.component.css │ │ │ │ │ ├── login-widget.component.html │ │ │ │ │ ├── login-widget.component.spec.ts │ │ │ │ │ └── login-widget.component.ts │ │ │ │ ├── login.service.spec.ts │ │ │ │ └── login.service.ts │ │ │ └── test.ts │ │ ├── tsconfig.lib.json │ │ ├── tsconfig.spec.json │ │ └── tslint.json │ ├── intro/ │ │ ├── README.md │ │ ├── generate/ │ │ │ ├── generate-thumbnails.ts │ │ │ ├── helpers/ │ │ │ │ ├── const.ts │ │ │ │ ├── slides.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── slides.json │ │ │ └── tsconfig.json │ │ ├── jest.config.js │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── lib/ │ │ │ │ ├── intro.component.css │ │ │ │ ├── intro.component.html │ │ │ │ ├── intro.component.ts │ │ │ │ └── intro.module.ts │ │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ ├── tsconfig.lib.prod.json │ │ ├── tsconfig.spec.json │ │ └── tslint.json │ ├── live/ │ │ ├── README.md │ │ ├── jest.config.js │ │ ├── ng-package.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── lib/ │ │ │ ├── live-service.service.spec.ts │ │ │ └── live-service.service.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ ├── tsconfig.spec.json │ │ └── tslint.json │ ├── slides/ │ │ ├── README.md │ │ ├── jest.config.js │ │ ├── ng-package.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── lib/ │ │ │ │ ├── arrows/ │ │ │ │ │ ├── slides-arrows.component.css │ │ │ │ │ ├── slides-arrows.component.html │ │ │ │ │ └── slides-arrows.component.ts │ │ │ │ ├── deck/ │ │ │ │ │ ├── deck.component.html │ │ │ │ │ ├── deck.component.scss │ │ │ │ │ ├── deck.component.spec.ts │ │ │ │ │ └── deck.component.ts │ │ │ │ ├── full-screen-mode/ │ │ │ │ │ ├── full-screen-mode.service.spec.ts │ │ │ │ │ ├── full-screen-mode.service.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── routing/ │ │ │ │ │ ├── slide-routes.ts │ │ │ │ │ ├── slides-routing.directive.spec.ts │ │ │ │ │ └── slides-routing.directive.ts │ │ │ │ ├── shortcuts/ │ │ │ │ │ ├── shortcuts.directive.spec.ts │ │ │ │ │ └── shortcuts.directive.ts │ │ │ │ ├── slide/ │ │ │ │ │ ├── slide.directive.spec.ts │ │ │ │ │ └── slide.directive.ts │ │ │ │ ├── slides.module.spec.ts │ │ │ │ └── slides.module.ts │ │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ ├── tsconfig.lib.prod.json │ │ ├── tsconfig.spec.json │ │ └── tslint.json │ └── utils/ │ ├── karma.conf.js │ ├── src/ │ │ ├── index.ts │ │ ├── lib/ │ │ │ ├── analytics/ │ │ │ │ ├── analytics.service.spec.ts │ │ │ │ └── analytics.service.ts │ │ │ ├── differ/ │ │ │ │ ├── diffFilesResolver.ts │ │ │ │ ├── differ.spec.ts │ │ │ │ ├── differ.ts │ │ │ │ └── fileHelpers.ts │ │ │ ├── github-PR-service/ │ │ │ │ ├── github.module.ts │ │ │ │ ├── github.service.ts │ │ │ │ └── index.ts │ │ │ ├── i18n/ │ │ │ │ └── i18n-tools.ts │ │ │ ├── index.ts │ │ │ ├── loaders/ │ │ │ │ └── loaders.ts │ │ │ ├── loading-indicator/ │ │ │ │ ├── loading-indicator/ │ │ │ │ │ ├── loading-indicator.component.css │ │ │ │ │ ├── loading-indicator.component.html │ │ │ │ │ ├── loading-indicator.component.spec.ts │ │ │ │ │ └── loading-indicator.component.ts │ │ │ │ └── loading-indicator.module.ts │ │ │ ├── pipes/ │ │ │ │ ├── pipes.module.ts │ │ │ │ └── safeHtml.pipe.ts │ │ │ ├── sandbox-runner/ │ │ │ │ ├── common.spec.ts │ │ │ │ ├── common.ts │ │ │ │ ├── runners/ │ │ │ │ │ ├── runner.ts │ │ │ │ │ ├── webworker.spec.ts │ │ │ │ │ └── webworker.ts │ │ │ │ ├── sandbox-runner.module.ts │ │ │ │ ├── test-runner-service.service.spec.ts │ │ │ │ ├── test-runner.component.html │ │ │ │ ├── test-runner.component.scss │ │ │ │ ├── test-runner.component.spec.ts │ │ │ │ ├── test-runner.component.ts │ │ │ │ ├── test-runner.service.ts │ │ │ │ ├── test-runner.spec.ts │ │ │ │ ├── test-runner.ts │ │ │ │ ├── typescript-checker-runner/ │ │ │ │ │ ├── typescript-checker-runner.component.css │ │ │ │ │ ├── typescript-checker-runner.component.html │ │ │ │ │ ├── typescript-checker-runner.component.spec.ts │ │ │ │ │ ├── typescript-checker-runner.component.ts │ │ │ │ │ └── typescript-checker-runner.module.ts │ │ │ │ └── typescript-test-runner/ │ │ │ │ ├── typescript-test-runner.component.css │ │ │ │ ├── typescript-test-runner.component.html │ │ │ │ ├── typescript-test-runner.component.spec.ts │ │ │ │ └── typescript-test-runner.component.ts │ │ │ ├── sync/ │ │ │ │ ├── common.ts │ │ │ │ ├── components/ │ │ │ │ │ ├── configure-sync/ │ │ │ │ │ │ ├── configure-sync.component.css │ │ │ │ │ │ ├── configure-sync.component.html │ │ │ │ │ │ ├── configure-sync.component.spec.ts │ │ │ │ │ │ ├── configure-sync.component.ts │ │ │ │ │ │ └── configure-sync.module.ts │ │ │ │ │ ├── online-indicator/ │ │ │ │ │ │ ├── online-indicator.component.css │ │ │ │ │ │ ├── online-indicator.component.html │ │ │ │ │ │ ├── online-indicator.component.spec.ts │ │ │ │ │ │ ├── online-indicator.component.ts │ │ │ │ │ │ └── online-indicator.module.ts │ │ │ │ │ ├── poll/ │ │ │ │ │ │ ├── common/ │ │ │ │ │ │ │ ├── bar-chart/ │ │ │ │ │ │ │ │ ├── bar-chart.component.html │ │ │ │ │ │ │ │ ├── bar-chart.component.scss │ │ │ │ │ │ │ │ ├── bar-chart.component.spec.ts │ │ │ │ │ │ │ │ ├── bar-chart.component.ts │ │ │ │ │ │ │ │ └── bar-chart.module.ts │ │ │ │ │ │ │ ├── common.ts │ │ │ │ │ │ │ ├── stars/ │ │ │ │ │ │ │ │ ├── stars.component.css │ │ │ │ │ │ │ │ ├── stars.component.html │ │ │ │ │ │ │ │ ├── stars.component.spec.ts │ │ │ │ │ │ │ │ ├── stars.component.ts │ │ │ │ │ │ │ │ └── stars.module.ts │ │ │ │ │ │ │ ├── sync-poll.service.spec.ts │ │ │ │ │ │ │ └── sync-poll.service.ts │ │ │ │ │ │ ├── sync-poll-admin/ │ │ │ │ │ │ │ ├── sync-poll-admin.component.css │ │ │ │ │ │ │ ├── sync-poll-admin.component.html │ │ │ │ │ │ │ ├── sync-poll-admin.component.spec.ts │ │ │ │ │ │ │ └── sync-poll-admin.component.ts │ │ │ │ │ │ ├── sync-poll-presenter/ │ │ │ │ │ │ │ ├── choice-presenter/ │ │ │ │ │ │ │ │ ├── choice-presenter.component.css │ │ │ │ │ │ │ │ ├── choice-presenter.component.html │ │ │ │ │ │ │ │ ├── choice-presenter.component.spec.ts │ │ │ │ │ │ │ │ └── choice-presenter.component.ts │ │ │ │ │ │ │ ├── leaderboard/ │ │ │ │ │ │ │ │ ├── leaderboard-presenter/ │ │ │ │ │ │ │ │ │ ├── leaderboard-presenter.component.css │ │ │ │ │ │ │ │ │ ├── leaderboard-presenter.component.html │ │ │ │ │ │ │ │ │ ├── leaderboard-presenter.component.spec.ts │ │ │ │ │ │ │ │ │ └── leaderboard-presenter.component.ts │ │ │ │ │ │ │ │ ├── leaderboard-viewer/ │ │ │ │ │ │ │ │ │ ├── leaderboard-viewer.component.css │ │ │ │ │ │ │ │ │ ├── leaderboard-viewer.component.html │ │ │ │ │ │ │ │ │ ├── leaderboard-viewer.component.spec.ts │ │ │ │ │ │ │ │ │ └── leaderboard-viewer.component.ts │ │ │ │ │ │ │ │ ├── leaderboard.component.css │ │ │ │ │ │ │ │ ├── leaderboard.component.html │ │ │ │ │ │ │ │ ├── leaderboard.component.spec.ts │ │ │ │ │ │ │ │ ├── leaderboard.component.ts │ │ │ │ │ │ │ │ └── leaderboard.module.ts │ │ │ │ │ │ │ ├── stars-presenter/ │ │ │ │ │ │ │ │ ├── stars-presenter.component.css │ │ │ │ │ │ │ │ ├── stars-presenter.component.html │ │ │ │ │ │ │ │ ├── stars-presenter.component.spec.ts │ │ │ │ │ │ │ │ └── stars-presenter.component.ts │ │ │ │ │ │ │ ├── sync-poll-presenter.component.css │ │ │ │ │ │ │ ├── sync-poll-presenter.component.html │ │ │ │ │ │ │ ├── sync-poll-presenter.component.spec.ts │ │ │ │ │ │ │ └── sync-poll-presenter.component.ts │ │ │ │ │ │ ├── sync-poll-viewer/ │ │ │ │ │ │ │ ├── sync-poll-viewer-choice/ │ │ │ │ │ │ │ │ ├── sync-poll-viewer-choice.component.css │ │ │ │ │ │ │ │ ├── sync-poll-viewer-choice.component.html │ │ │ │ │ │ │ │ ├── sync-poll-viewer-choice.component.spec.ts │ │ │ │ │ │ │ │ └── sync-poll-viewer-choice.component.ts │ │ │ │ │ │ │ ├── sync-poll-viewer.component.css │ │ │ │ │ │ │ ├── sync-poll-viewer.component.html │ │ │ │ │ │ │ ├── sync-poll-viewer.component.spec.ts │ │ │ │ │ │ │ └── sync-poll-viewer.component.ts │ │ │ │ │ │ ├── sync-poll.component.css │ │ │ │ │ │ ├── sync-poll.component.html │ │ │ │ │ │ ├── sync-poll.component.spec.ts │ │ │ │ │ │ ├── sync-poll.component.ts │ │ │ │ │ │ └── sync-poll.module.ts │ │ │ │ │ ├── questions/ │ │ │ │ │ │ ├── common/ │ │ │ │ │ │ │ ├── common.ts │ │ │ │ │ │ │ ├── question/ │ │ │ │ │ │ │ │ ├── question.component.html │ │ │ │ │ │ │ │ ├── question.component.scss │ │ │ │ │ │ │ │ ├── question.component.spec.ts │ │ │ │ │ │ │ │ └── question.component.ts │ │ │ │ │ │ │ ├── question-list/ │ │ │ │ │ │ │ │ ├── question-list.component.css │ │ │ │ │ │ │ │ ├── question-list.component.html │ │ │ │ │ │ │ │ ├── question-list.component.spec.ts │ │ │ │ │ │ │ │ └── question-list.component.ts │ │ │ │ │ │ │ ├── questions.service.spec.ts │ │ │ │ │ │ │ └── questions.service.ts │ │ │ │ │ │ ├── questions-admin/ │ │ │ │ │ │ │ ├── questions-admin.component.css │ │ │ │ │ │ │ ├── questions-admin.component.html │ │ │ │ │ │ │ ├── questions-admin.component.spec.ts │ │ │ │ │ │ │ └── questions-admin.component.ts │ │ │ │ │ │ ├── questions-presenter/ │ │ │ │ │ │ │ ├── questions-presenter.component.css │ │ │ │ │ │ │ ├── questions-presenter.component.html │ │ │ │ │ │ │ ├── questions-presenter.component.spec.ts │ │ │ │ │ │ │ └── questions-presenter.component.ts │ │ │ │ │ │ ├── questions-viewer/ │ │ │ │ │ │ │ ├── questions-viewer.component.css │ │ │ │ │ │ │ ├── questions-viewer.component.html │ │ │ │ │ │ │ ├── questions-viewer.component.spec.ts │ │ │ │ │ │ │ └── questions-viewer.component.ts │ │ │ │ │ │ ├── questions.component.css │ │ │ │ │ │ ├── questions.component.html │ │ │ │ │ │ ├── questions.component.spec.ts │ │ │ │ │ │ ├── questions.component.ts │ │ │ │ │ │ └── questions.module.ts │ │ │ │ │ ├── registration/ │ │ │ │ │ │ ├── registration-admin/ │ │ │ │ │ │ │ ├── registration-admin.component.css │ │ │ │ │ │ │ ├── registration-admin.component.html │ │ │ │ │ │ │ ├── registration-admin.component.spec.ts │ │ │ │ │ │ │ └── registration-admin.component.ts │ │ │ │ │ │ ├── registration-presenter/ │ │ │ │ │ │ │ ├── registration-presenter.component.css │ │ │ │ │ │ │ ├── registration-presenter.component.html │ │ │ │ │ │ │ ├── registration-presenter.component.spec.ts │ │ │ │ │ │ │ └── registration-presenter.component.ts │ │ │ │ │ │ ├── registration-viewer/ │ │ │ │ │ │ │ ├── registration-viewer.component.css │ │ │ │ │ │ │ ├── registration-viewer.component.html │ │ │ │ │ │ │ ├── registration-viewer.component.spec.ts │ │ │ │ │ │ │ └── registration-viewer.component.ts │ │ │ │ │ │ ├── registration.component.css │ │ │ │ │ │ ├── registration.component.html │ │ │ │ │ │ ├── registration.component.spec.ts │ │ │ │ │ │ ├── registration.component.ts │ │ │ │ │ │ ├── sync-registration.module.ts │ │ │ │ │ │ ├── sync-registration.service.spec.ts │ │ │ │ │ │ └── sync-registration.service.ts │ │ │ │ │ ├── sync-code-game/ │ │ │ │ │ │ ├── sync-code-game-admin/ │ │ │ │ │ │ │ ├── sync-code-game-admin.component.css │ │ │ │ │ │ │ ├── sync-code-game-admin.component.html │ │ │ │ │ │ │ ├── sync-code-game-admin.component.spec.ts │ │ │ │ │ │ │ └── sync-code-game-admin.component.ts │ │ │ │ │ │ ├── sync-code-game-presenter/ │ │ │ │ │ │ │ ├── sync-code-game-presenter.component.css │ │ │ │ │ │ │ ├── sync-code-game-presenter.component.html │ │ │ │ │ │ │ ├── sync-code-game-presenter.component.spec.ts │ │ │ │ │ │ │ └── sync-code-game-presenter.component.ts │ │ │ │ │ │ ├── sync-code-game-viewer/ │ │ │ │ │ │ │ ├── sync-code-game-viewer.component.css │ │ │ │ │ │ │ ├── sync-code-game-viewer.component.html │ │ │ │ │ │ │ ├── sync-code-game-viewer.component.spec.ts │ │ │ │ │ │ │ └── sync-code-game-viewer.component.ts │ │ │ │ │ │ ├── sync-code-game.component.css │ │ │ │ │ │ ├── sync-code-game.component.html │ │ │ │ │ │ ├── sync-code-game.component.spec.ts │ │ │ │ │ │ ├── sync-code-game.component.ts │ │ │ │ │ │ ├── sync-code-game.module.ts │ │ │ │ │ │ ├── sync-code-game.service.spec.ts │ │ │ │ │ │ ├── sync-code-game.service.ts │ │ │ │ │ │ └── tests.ts │ │ │ │ │ ├── sync-join-instructions/ │ │ │ │ │ │ ├── sync-join-instructions.component.css │ │ │ │ │ │ ├── sync-join-instructions.component.html │ │ │ │ │ │ ├── sync-join-instructions.component.spec.ts │ │ │ │ │ │ ├── sync-join-instructions.component.ts │ │ │ │ │ │ └── sync-join-instructions.module.ts │ │ │ │ │ └── sync-sessions/ │ │ │ │ │ ├── sync-sessions.component.css │ │ │ │ │ ├── sync-sessions.component.html │ │ │ │ │ ├── sync-sessions.component.spec.ts │ │ │ │ │ ├── sync-sessions.component.ts │ │ │ │ │ └── sync-sessions.module.ts │ │ │ │ ├── directives/ │ │ │ │ │ ├── all-viewer-values.directive.ts │ │ │ │ │ ├── is-status.directive.ts │ │ │ │ │ ├── sync-directives.module.ts │ │ │ │ │ ├── sync-is-presenting.directive.spec.ts │ │ │ │ │ ├── sync-presenter-value.directive.ts │ │ │ │ │ ├── sync-user-value.directive.ts │ │ │ │ │ └── sync-viewer-value.directive.ts │ │ │ │ ├── services/ │ │ │ │ │ ├── common.ts │ │ │ │ │ ├── firebase-info.service.ts │ │ │ │ │ ├── sync-data.service.ts │ │ │ │ │ ├── sync-db-wrapper.service.spec.ts │ │ │ │ │ ├── sync-db.service.ts │ │ │ │ │ ├── sync-session.service.spec.ts │ │ │ │ │ └── sync-session.service.ts │ │ │ │ ├── sync-button/ │ │ │ │ │ ├── sync-button.component.css │ │ │ │ │ ├── sync-button.component.html │ │ │ │ │ ├── sync-button.component.spec.ts │ │ │ │ │ ├── sync-button.component.ts │ │ │ │ │ └── sync-button.module.ts │ │ │ │ ├── sync-playground/ │ │ │ │ │ ├── sync-playground-presenter/ │ │ │ │ │ │ ├── sync-playground-presenter.component.css │ │ │ │ │ │ ├── sync-playground-presenter.component.html │ │ │ │ │ │ ├── sync-playground-presenter.component.spec.ts │ │ │ │ │ │ └── sync-playground-presenter.component.ts │ │ │ │ │ ├── sync-playground-test/ │ │ │ │ │ │ ├── sync-playground-test.component.css │ │ │ │ │ │ ├── sync-playground-test.component.html │ │ │ │ │ │ ├── sync-playground-test.component.spec.ts │ │ │ │ │ │ └── sync-playground-test.component.ts │ │ │ │ │ ├── sync-playground.component.html │ │ │ │ │ ├── sync-playground.component.scss │ │ │ │ │ ├── sync-playground.component.spec.ts │ │ │ │ │ └── sync-playground.component.ts │ │ │ │ └── sync.module.ts │ │ │ ├── test-results/ │ │ │ │ ├── common.ts │ │ │ │ ├── file-aware-description/ │ │ │ │ │ ├── file-aware-description.component.css │ │ │ │ │ ├── file-aware-description.component.html │ │ │ │ │ ├── file-aware-description.component.spec.ts │ │ │ │ │ └── file-aware-description.component.ts │ │ │ │ ├── simple-tests-progress/ │ │ │ │ │ ├── simple-tests-progress.component.css │ │ │ │ │ ├── simple-tests-progress.component.html │ │ │ │ │ ├── simple-tests-progress.component.spec.ts │ │ │ │ │ ├── simple-tests-progress.component.ts │ │ │ │ │ └── simple-tests-progress.module.ts │ │ │ │ ├── test-results/ │ │ │ │ │ ├── test-results.component.html │ │ │ │ │ ├── test-results.component.scss │ │ │ │ │ ├── test-results.component.spec.ts │ │ │ │ │ └── test-results.component.ts │ │ │ │ ├── test-results.module.ts │ │ │ │ └── test-run-results/ │ │ │ │ ├── test-run-results.component.html │ │ │ │ ├── test-run-results.component.scss │ │ │ │ ├── test-run-results.component.spec.ts │ │ │ │ └── test-run-results.component.ts │ │ │ ├── testing/ │ │ │ │ └── mocks/ │ │ │ │ ├── angular-fire.ts │ │ │ │ └── sync-db-service.ts │ │ │ └── tracking/ │ │ │ ├── tracking.directive.ts │ │ │ └── tracking.module.ts │ │ └── test.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ ├── tsconfig.spec.json │ └── tslint.json ├── ng2ts/ │ ├── .prettierignore │ ├── api.service.ts │ ├── app.component.ts │ ├── app.html │ ├── app.module.ts │ ├── code.ts │ ├── context/ │ │ ├── context.component.ts │ │ ├── context.html │ │ └── context.service.ts │ ├── data-binding/ │ │ ├── DataBinding.ts │ │ └── DataBindingModule.ts │ ├── fuzzy-pipe/ │ │ └── fuzzy.pipe.ts │ ├── main.ts │ ├── ng2ts.ts │ ├── search/ │ │ ├── search.component.html │ │ └── search.component.ts │ ├── style.css │ ├── tests/ │ │ ├── ThumbsComponentCreateTest.ts │ │ ├── ThumbsComponentUseTest.ts │ │ ├── bootstrapTest.ts │ │ ├── codelabTest.ts │ │ ├── contextComponentUseTest.ts │ │ ├── createComponentTest.ts │ │ ├── createModuleTest.ts │ │ ├── diInjectServiceTest.ts │ │ ├── diInjectServiceTestBabel.ts │ │ ├── formsTest.ts │ │ ├── fuzzyPipeCreateTest.ts │ │ ├── fuzzyPipeUseTest.ts │ │ ├── materialTest.ts │ │ ├── routerTest.ts │ │ ├── templateAddActionTest.ts │ │ ├── templateAllVideosTest.ts │ │ ├── templatePageSetupTest.ts │ │ ├── test.ts │ │ ├── togglePanelComponentCreateTest.ts │ │ ├── togglePanelComponentUseTest.ts │ │ ├── videoComponentCreateTest.ts │ │ └── videoComponentUseTest.ts │ ├── thumbs/ │ │ ├── thumbs.component.ts │ │ └── thumbs.html │ ├── thumbs.app.module.ts │ ├── toggle-panel/ │ │ ├── toggle-panel.component.ts │ │ └── toggle-panel.html │ ├── toggle-panel.app.module.ts │ ├── typescript-intro/ │ │ ├── Codelab.ts │ │ ├── Guest.ts │ │ └── Main.ts │ ├── upload/ │ │ ├── upload.component.html │ │ └── upload.component.ts │ ├── video/ │ │ ├── video-item.ts │ │ ├── video-materialized.component.html │ │ ├── video-wrapper.component.ts │ │ ├── video.component.html │ │ ├── video.component.ts │ │ ├── video.index.html │ │ └── video.service.ts │ ├── video.app.module.ts │ └── wrapper.component.ts ├── nx.json ├── package.json ├── tools/ │ ├── schematics/ │ │ └── slide/ │ │ ├── README.md │ │ ├── files/ │ │ │ ├── code.bs │ │ │ └── template.component.html │ │ ├── index.ts │ │ └── schema.json │ └── tsconfig.tools.json ├── tsconfig.json └── tslint.json