Giter Club home page Giter Club logo

ngx-device-detector's Introduction

An Angular 6+ powered AOT compatible device detector that helps to identify browser, os and other useful information regarding the device using the app. The processing is based on user-agent. This library was built at KoderLabs, which is one of the best places I've worked at ❤️

build status npm version license stars

Deprecated package : npm downloads total npm downloads/month

New package : npm downloads total npm downloads/month

If you use Angular 5, you must use v1.5.2 or earlier

DOCS

Ngx Device Detector DOCS

Live DEMO

Regular Demo

Dependencies

Latest version available for each version of Angular

ngx-device-detector Angular
1.3.3 7.x
1.3.5 8.x
1.4.1 9.x
1.4.5 10.x
2.0.5 11.x
2.1.0 12.x
3.x.x 13.x
4.x.x 14.x
5.x.x 15.x
6.x.x 16.x
7.x.x 17.x

Installation

To install this library, run:

$ npm install ngx-device-detector --save

In your component where you want to use the Device Service

  import { Component } from '@angular/core';
  ...
  import { DeviceDetectorService } from 'ngx-device-detector';
  ...
  @Component({
    selector: 'home',  // <home></home>
    styleUrls: [ './home.component.scss' ],
    templateUrl: './home.component.html',
    ...
  })

  export class HomeComponent {
    deviceInfo = null;
    ...
    constructor(..., private http: Http, private deviceService: DeviceDetectorService) {
      this.epicFunction();
    }
    ...
    epicFunction() {
      console.log('hello `Home` component');
      this.deviceInfo = this.deviceService.getDeviceInfo();
      const isMobile = this.deviceService.isMobile();
      const isTablet = this.deviceService.isTablet();
      const isDesktopDevice = this.deviceService.isDesktop();
      console.log(this.deviceInfo);
      console.log(isMobile);  // returns if the device is a mobile device (android / iPhone / windows-phone etc)
      console.log(isTablet);  // returns if the device us a tablet (iPad etc)
      console.log(isDesktopDevice); // returns if the app is running on a Desktop browser.
    }
    ...
  }

For SSR, you have to make sure that the User Agent is available for device detection. I.e. you'll need to provide it manually. If using ExpressJS for example:

express.tokens.ts

import { InjectionToken } from '@angular/core';
import { Request, Response } from 'express';

export const REQUEST = new InjectionToken<Request>('REQUEST');
export const RESPONSE = new InjectionToken<Response>('RESPONSE');

universal-device-detector.service.ts:

import { Inject, Injectable, Optional, PLATFORM_ID } from '@angular/core';
import { REQUEST } from 'path/to/express.tokens';
import { Request } from 'express';
import { DeviceDetectorService } from 'ngx-device-detector';
import { isPlatformServer } from '@angular/common';

@Injectable()
export class UniversalDeviceDetectorService extends DeviceDetectorService {
  constructor(@Inject(PLATFORM_ID) platformId: any, @Optional() @Inject(REQUEST) request: Request) {
    super(platformId);
    if (isPlatformServer(platformId)) {
      super.setDeviceInfo((request.headers['user-agent'] as string) || '');
    }
  }
}

app.server.module.ts:

{
  provide: DeviceDetectorService,
  useClass: UniversalDeviceDetectorService
},

Device service

Holds the following properties

  • browser
  • os
  • device
  • userAgent
  • os_version

Helper Methods

  • isMobile() : returns if the device is a mobile device (android / iPhone/ windows-phone etc)
  • isTablet() : returns if the device us a tablet (iPad etc)
  • isDesktop() : returns if the app is running on a Desktop browser.

Development

To generate all *.js, *.js.map and *.d.ts files:

  $ npm run tsc

To lint all *.ts files:

  $ npm run lint

To run unit tests

  $ npm run test

To build the library

  $ npm run build

Run the DEMO

Make sure you have @angular/cli installed

  $ npm install -g @angular/cli
  $ cd demo
  $ npm install
  $ ng serve

the demo will be up at localhost:4200

Change Log

Please see CHANGE_LOG.MD for the updates.

Credits

The library is inspired by and based on the work from ng-device-detector . Also used a typescript wrapper of the amazing work in ReTree for regex based needs and an Angular2 Library Creator boilerplate to get the work started fast. I.e. Generator Angular2 library.

License

MIT

Sponsorship

If you like the library and want to support, you can do it by buying me a coffee at

ngx-device-detector's People

Contributors

ahsanayaz avatar bizzottoclaudio avatar brendanairvuz avatar brunexx avatar ccd2008 avatar dependabot[bot] avatar gailbear avatar jawaidgadiwala avatar jaxonwright avatar jrodriguez5-lenovo avatar kristinasvobodinasaritasa avatar langfors avatar maciejtreder avatar mattlewis92 avatar mhosman avatar mohsinayaz avatar nabeelhassan avatar pascalhonegger avatar pmcelreavy avatar pritamgb avatar pvds avatar rofunn avatar ruieee avatar slav-pilus avatar staticint avatar sumitgupta0627 avatar sushruth avatar syedsaadqamar avatar tmair avatar yberion avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ngx-device-detector's Issues

Why not export const?

There is no const enum export at index.ts.
I must look the code when comparing the browser.
like,this.device.browser === 'ie'

failed to detect Android tablet

running the deviceservice.isTablet() does not recognise Android tablet (samsung tablet in this case), returns mobile.

Is this a know issue and is there a fix coming?

Error when importing the module

When importing the module in Angular 2 (Webpack), the app build fine, but I got an error in the browser and the screen remains blank.

If I only import the module without adding it in the providers, I get no error.

The error :
Uncaught SyntaxError: Unexpected token import

My app.module.ts file :

`import {NgModule} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';
import {AppComponent} from './component/app.component';
import {routing, appRoutingProviders} from './app.routing';
import {FormsModule} from '@angular/forms';
import {Http, HttpModule} from '@angular/http';
import {Ng2DeviceDetectorModule} from 'ng2-device-detector';

@NgModule({
imports: [
BrowserModule,
FormsModule,
HttpModule,
routing,
appRoutingProviders,
Ng2DeviceDetectorModule.forRoot()
],
declarations: [
AppComponent,

],
providers: [
    {provide: Http, useClass: AuthenticatedHttpService},
    AppService,
],
bootstrap: [AppComponent]

})

export class AppModule {
}`

Device id unknown

image

I need system's device id. But it showing unknown. What i need to change??? help me.

Metadata version mismatch

Hi,

I am using Angular 4.2.4, and ngx 1.3.0. But I facing issue of ERROR in Error: Metadata version mismatch for module ../node_modules/ngx-device-detector/ngx-device-detector.d.ts, found version 4, expected 3, resolving symbol AppModule in

Could you please let me know what is the solution for this and I have tried with different version also.

Update PeerDependency to Angular 6

Angular 6 was released today and I would like to use this package without install warnings. This also includes updating the rxjs peerDependency (even though I don't see how rxjs is required by this package). I tested this component in an angular 6 app without any problem.

Demo doesn't work on IE

Hi,
Interested by this project, I would like to test it on IE. And I stay on "Loading..." label..
https://koderlabs.github.io/ng2-device-detector/

Dev console told me "Edge" mode.
I got the following error:
SCRIPT5007: Impossible d’obtenir la propriété « apply » d’une référence null ou non définie
Fichier : vendor.9453f49b2080b3bef38d.bundle.js, ligne : 8, colonne : 770

polyfills error?

Warning in Build

Hello,

i am using your npm package in a angular 7 project and i get the following warning in the build process of angular:

No name was provided for external module 'ngx-device-detector' in output.globals – guessing 'ngxDeviceDetector'

Can you fix it?

Thanks

Error: Unable to dynamically transpile ES module

Hello

When I try to launch my project, I've got the following error :

localhost/:46 Error: Unable to dynamically transpile ES module
   A loader plugin needs to be configured via `SystemJS.config({ transpiler: 'transpiler-module' })`.
  Instantiating http://localhost:3000/node_modules/ng2-device-detector/index.js
  Loading http://localhost:3000/app/app.module.js

This is the first module that causes me this error.
I've try to add :
transpiler: 'typescript'
To the systemJS file, but when I launch the app it doesn't load any view, It doesn't throw an error in the console neither.

I'm using angular 4

Any other solution would be welcome,

Anis

Not detecting firefox on desktop

Firefox running on macos is not getting detected using isDesktop().

MacOS: 10.13.5 (17F77)
Firefox: 62.0b4 (64-bit)
Angular: 6.0.0

Compatibility with Webpack

Hi, is this module compatible with Webpack? It seems that the @nguniversal/express-engine module requires 'fs' which is not available on browsers.

Metadata version missmatch error

Metadata version mismatch for module d:/a/1/s/node_modules/ngx-device-detector/ngx-device-detector.d.ts, found version 4, expected 3�

I am getting this error while building my app.

Missing support for Edge on Android

The user agent for android edge is "EdgA" as opposed to "Edge". About to open a pull with the fix.

(The pull also adds support for the samsung browser.)

ERROR in Metadata version mismatch for module "ngx-device-detector" found version 4, expected 3

Hi @AhsanAyaz,
In your repo you mentioned that this repo can be run on Angular 2 (4) and up...
but when you try to compile it on AOT mode it breaks.

you wrote in your package json dev dependencies for: @angular/compiler and @angular/core to be at least 5.
please change them to bellow:
"angular/compiler": "^4.0.0"
"angular/core": "^4.0.0"
so that this repo could actually work in angular 4 too and not only angular 5.

  • If you see other issue causing this error please fix it so All users that use Angular 4 (with meta version 3) could use this awesome repo for mobile detection.

throw the error while install the ng2-device-dector package

I am using node v7.2.0, npm 3.10.9, Ubuntu OS. I have tried to install the ng2-device-detector. it is throwing the error. Please find below npm-debug log for your reference.

0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/nodejs',
1 verbose cli '/usr/bin/npm',
1 verbose cli 'install',
1 verbose cli 'ng2-device-detector',
1 verbose cli '--save' ]
2 info using [email protected]
3 info using [email protected]
4 silly loadCurrentTree Starting
5 silly install loadCurrentTree
6 silly install readLocalPackageData
7 silly fetchPackageMetaData ng2-device-detector
8 silly fetchNamedPackageData ng2-device-detector
9 silly mapToRegistry name ng2-device-detector
10 silly mapToRegistry using default registry
11 silly mapToRegistry registry https://registry.npmjs.org/
12 silly mapToRegistry data Result {
12 silly mapToRegistry raw: 'ng2-device-detector',
12 silly mapToRegistry scope: null,
12 silly mapToRegistry escapedName: 'ng2-device-detector',
12 silly mapToRegistry name: 'ng2-device-detector',
12 silly mapToRegistry rawSpec: '',
12 silly mapToRegistry spec: 'latest',
12 silly mapToRegistry type: 'tag' }
13 silly mapToRegistry uri https://registry.npmjs.org/ng2-device-detector
14 verbose request uri https://registry.npmjs.org/ng2-device-detector
15 verbose request no auth needed
16 info attempt registry request try #1 at 11:55:55 AM
17 verbose request id 2c89253ba863cdee
18 verbose etag W/"583f6297-115e"
19 verbose lastModified Wed, 30 Nov 2016 23:36:55 GMT
20 http request GET https://registry.npmjs.org/ng2-device-detector
21 http 304 https://registry.npmjs.org/ng2-device-detector
22 verbose headers { date: 'Wed, 15 Feb 2017 06:25:56 GMT',
22 verbose headers via: '1.1 varnish',
22 verbose headers 'cache-control': 'max-age=300',
22 verbose headers etag: 'W/"583f6297-115e"',
22 verbose headers age: '84',
22 verbose headers connection: 'keep-alive',
22 verbose headers 'x-served-by': 'cache-cdg8722-CDG',
22 verbose headers 'x-cache': 'HIT',
22 verbose headers 'x-cache-hits': '1',
22 verbose headers 'x-timer': 'S1487139956.294424,VS0,VE0',
22 verbose headers vary: 'Accept-Encoding' }
23 silly get cb [ 304,
23 silly get { date: 'Wed, 15 Feb 2017 06:25:56 GMT',
23 silly get via: '1.1 varnish',
23 silly get 'cache-control': 'max-age=300',
23 silly get etag: 'W/"583f6297-115e"',
23 silly get age: '84',
23 silly get connection: 'keep-alive',
23 silly get 'x-served-by': 'cache-cdg8722-CDG',
23 silly get 'x-cache': 'HIT',
23 silly get 'x-cache-hits': '1',
23 silly get 'x-timer': 'S1487139956.294424,VS0,VE0',
23 silly get vary: 'Accept-Encoding' } ]
24 verbose etag https://registry.npmjs.org/ng2-device-detector from cache
25 verbose get saving ng2-device-detector to /home/manisankar/.npm/registry.npmjs.org/ng2-device-detector/.cache.json
26 verbose correctMkdir /home/manisankar/.npm correctMkdir not in flight; initializing
27 silly install normalizeTree
28 silly loadCurrentTree Finishing
29 silly loadIdealTree Starting
30 silly install loadIdealTree
31 silly cloneCurrentTree Starting
32 silly install cloneCurrentTreeToIdealTree
33 silly cloneCurrentTree Finishing
34 silly loadShrinkwrap Starting
35 silly install loadShrinkwrap
36 silly loadShrinkwrap Finishing
37 silly loadAllDepsIntoIdealTree Starting
38 silly install loadAllDepsIntoIdealTree
39 silly resolveWithNewModule [email protected] checking installable status
40 silly cache add args [ 'ng2-device-detector', null ]
41 verbose cache add spec ng2-device-detector
42 silly cache add parsed spec Result {
42 silly cache add raw: 'ng2-device-detector',
42 silly cache add scope: null,
42 silly cache add escapedName: 'ng2-device-detector',
42 silly cache add name: 'ng2-device-detector',
42 silly cache add rawSpec: '',
42 silly cache add spec: 'latest',
42 silly cache add type: 'tag' }
43 silly addNamed ng2-device-detector@latest
44 verbose addNamed "latest" is being treated as a dist-tag for ng2-device-detector
45 info addNameTag [ 'ng2-device-detector', 'latest' ]
46 silly mapToRegistry name ng2-device-detector
47 silly mapToRegistry using default registry
48 silly mapToRegistry registry https://registry.npmjs.org/
49 silly mapToRegistry data Result {
49 silly mapToRegistry raw: 'ng2-device-detector',
49 silly mapToRegistry scope: null,
49 silly mapToRegistry escapedName: 'ng2-device-detector',
49 silly mapToRegistry name: 'ng2-device-detector',
49 silly mapToRegistry rawSpec: '',
49 silly mapToRegistry spec: 'latest',
49 silly mapToRegistry type: 'tag' }
50 silly mapToRegistry uri https://registry.npmjs.org/ng2-device-detector
51 verbose addNameTag registry:https://registry.npmjs.org/ng2-device-detector not in flight; fetching
52 verbose get https://registry.npmjs.org/ng2-device-detector not expired, no request
53 silly addNameTag next cb for ng2-device-detector with tag latest
54 silly addNamed [email protected]
55 verbose addNamed "0.1.0" is a plain semver version for ng2-device-detector
56 silly cache afterAdd [email protected]
57 verbose afterAdd /home/manisankar/.npm/ng2-device-detector/0.1.0/package/package.json not in flight; writing
58 verbose correctMkdir /home/manisankar/.npm correctMkdir not in flight; initializing
59 verbose afterAdd /home/manisankar/.npm/ng2-device-detector/0.1.0/package/package.json written
60 silly fetchNamedPackageData fsevents
61 silly mapToRegistry name fsevents
62 silly mapToRegistry using default registry
63 silly mapToRegistry registry https://registry.npmjs.org/
64 silly mapToRegistry data Result {
64 silly mapToRegistry raw: 'fsevents',
64 silly mapToRegistry scope: null,
64 silly mapToRegistry escapedName: 'fsevents',
64 silly mapToRegistry name: 'fsevents',
64 silly mapToRegistry rawSpec: '',
64 silly mapToRegistry spec: 'latest',
64 silly mapToRegistry type: 'tag' }
65 silly mapToRegistry uri https://registry.npmjs.org/fsevents
66 verbose request uri https://registry.npmjs.org/fsevents
67 verbose request no auth needed
68 info attempt registry request try #1 at 11:55:59 AM
69 verbose etag W/"5896f7ec-c263"
70 verbose lastModified Sun, 05 Feb 2017 10:01:16 GMT
71 http request GET https://registry.npmjs.org/fsevents
72 http 304 https://registry.npmjs.org/fsevents
73 verbose headers { date: 'Wed, 15 Feb 2017 06:25:59 GMT',
73 verbose headers via: '1.1 varnish',
73 verbose headers 'cache-control': 'max-age=300',
73 verbose headers etag: 'W/"5896f7ec-c263"',
73 verbose headers age: '154',
73 verbose headers connection: 'keep-alive',
73 verbose headers 'x-served-by': 'cache-cdg8722-CDG',
73 verbose headers 'x-cache': 'HIT',
73 verbose headers 'x-cache-hits': '11',
73 verbose headers 'x-timer': 'S1487139959.383979,VS0,VE0',
73 verbose headers vary: 'Accept-Encoding' }
74 silly get cb [ 304,
74 silly get { date: 'Wed, 15 Feb 2017 06:25:59 GMT',
74 silly get via: '1.1 varnish',
74 silly get 'cache-control': 'max-age=300',
74 silly get etag: 'W/"5896f7ec-c263"',
74 silly get age: '154',
74 silly get connection: 'keep-alive',
74 silly get 'x-served-by': 'cache-cdg8722-CDG',
74 silly get 'x-cache': 'HIT',
74 silly get 'x-cache-hits': '11',
74 silly get 'x-timer': 'S1487139959.383979,VS0,VE0',
74 silly get vary: 'Accept-Encoding' } ]
75 verbose etag https://registry.npmjs.org/fsevents from cache
76 verbose get saving fsevents to /home/manisankar/.npm/registry.npmjs.org/fsevents/.cache.json
77 verbose correctMkdir /home/manisankar/.npm correctMkdir not in flight; initializing
78 silly resolveWithNewModule [email protected] checking installable status
79 silly loadAllDepsIntoIdealTree Finishing
80 silly loadIdealTree Finishing
81 silly currentTree [email protected]
81 silly currentTree +-- @angular-cli/[email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | | -- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- @angular-cli/[email protected]
81 silly currentTree +-- @angular/[email protected]
81 silly currentTree +-- @angular/[email protected]
81 silly currentTree +-- @angular/[email protected]
81 silly currentTree +-- @angular/[email protected]
81 silly currentTree +-- @angular/[email protected]
81 silly currentTree +-- @angular/[email protected]
81 silly currentTree +-- @angular/[email protected]
81 silly currentTree +-- @angular/[email protected]
81 silly currentTree +-- @angular/[email protected]
81 silly currentTree +-- @angular/[email protected]
81 silly currentTree +-- @ngtools/[email protected]
81 silly currentTree +-- @types/[email protected]
81 silly currentTree +-- @types/[email protected]
81 silly currentTree +-- @types/[email protected]
81 silly currentTree +-- @types/[email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree | +-- [email protected] 81 silly currentTree | -- [email protected]
81 silly currentTree +-- [email protected]
81 silly currentTree | +-- [email protected]
81 silly currentTree | -- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree +-- [email protected] 81 silly currentTree -- [email protected]
82 silly idealTree [email protected]
82 silly idealTree +-- @angular-cli/[email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | | -- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- @angular-cli/[email protected]
82 silly idealTree +-- @angular/[email protected]
82 silly idealTree +-- @angular/[email protected]
82 silly idealTree +-- @angular/[email protected]
82 silly idealTree +-- @angular/[email protected]
82 silly idealTree +-- @angular/[email protected]
82 silly idealTree +-- @angular/[email protected]
82 silly idealTree +-- @angular/[email protected]
82 silly idealTree +-- @angular/[email protected]
82 silly idealTree +-- @angular/[email protected]
82 silly idealTree +-- @angular/[email protected]
82 silly idealTree +-- @ngtools/[email protected]
82 silly idealTree +-- @types/[email protected]
82 silly idealTree +-- @types/[email protected]
82 silly idealTree +-- @types/[email protected]
82 silly idealTree +-- @types/[email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree | +-- [email protected] 82 silly idealTree | -- [email protected]
82 silly idealTree +-- [email protected]
82 silly idealTree | +-- [email protected]
82 silly idealTree | -- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree +-- [email protected] 82 silly idealTree -- [email protected]
83 silly generateActionsToTake Starting
84 silly install generateActionsToTake
85 silly generateActionsToTake Finishing
86 silly diffTrees action count 1
87 silly diffTrees add [email protected]
88 silly decomposeActions action count 8
89 silly decomposeActions fetch [email protected]
90 silly decomposeActions extract [email protected]
91 silly decomposeActions test [email protected]
92 silly decomposeActions preinstall [email protected]
93 silly decomposeActions build [email protected]
94 silly decomposeActions install [email protected]
95 silly decomposeActions postinstall [email protected]
96 silly decomposeActions finalize [email protected]
97 silly runTopLevelLifecycles Starting
98 silly executeActions Starting
99 silly install executeActions
100 silly doSerial global-install 0
101 silly doParallel fetch 1
102 verbose correctMkdir /home/manisankar/.npm/_locks correctMkdir not in flight; initializing
103 verbose lock using /home/manisankar/.npm/_locks/staging-6fd9f7c10a5f9a31.lock for /home/manisankar/mani/Project_Folder/moleculesui/quiz-angular-2/node_modules/.staging
104 silly doParallel extract 1
105 silly extract [email protected]
106 verbose unbuild node_modules/.staging/ng2-device-detector-1198a441
107 silly gentlyRm /home/manisankar/mani/Project_Folder/moleculesui/quiz-angular-2/node_modules/.staging/ng2-device-detector-1198a441 is being purged from base /home/manisankar/mani/Project_Folder/moleculesui/quiz-angular-2
108 verbose gentlyRm don't care about contents; nuking /home/manisankar/mani/Project_Folder/moleculesui/quiz-angular-2/node_modules/.staging/ng2-device-detector-1198a441
109 verbose tar unpack /home/manisankar/.npm/ng2-device-detector/0.1.0/package.tgz
110 verbose tar unpacking to /home/manisankar/mani/Project_Folder/moleculesui/quiz-angular-2/node_modules/.staging/ng2-device-detector-1198a441
111 silly gentlyRm /home/manisankar/mani/Project_Folder/moleculesui/quiz-angular-2/node_modules/.staging/ng2-device-detector-1198a441 is being purged
112 verbose gentlyRm don't care about contents; nuking /home/manisankar/mani/Project_Folder/moleculesui/quiz-angular-2/node_modules/.staging/ng2-device-detector-1198a441
113 silly gunzTarPerm modes [ '775', '664' ]
114 silly gunzTarPerm extractEntry package.json
115 silly gunzTarPerm modified mode [ 'package.json', 420, 436 ]
116 silly gunzTarPerm extractEntry .npmignore
117 silly gunzTarPerm modified mode [ '.npmignore', 420, 436 ]
118 silly gunzTarPerm extractEntry LICENSE
119 silly gunzTarPerm modified mode [ 'LICENSE', 420, 436 ]
120 silly gunzTarPerm extractEntry dist/index.js
121 silly gunzTarPerm modified mode [ 'dist/index.js', 420, 436 ]
122 silly gunzTarPerm extractEntry dist/services.js
123 silly gunzTarPerm modified mode [ 'dist/services.js', 420, 436 ]
124 silly gunzTarPerm extractEntry dist/constants/ng2-device.constants.js
125 silly gunzTarPerm modified mode [ 'dist/constants/ng2-device.constants.js', 420, 436 ]
126 silly gunzTarPerm extractEntry dist/constants/ng2-device.constants.d.ts
127 silly gunzTarPerm modified mode [ 'dist/constants/ng2-device.constants.d.ts', 420, 436 ]
128 silly gunzTarPerm extractEntry dist/constants/ng2-device.constants.js.map
129 silly gunzTarPerm modified mode [ 'dist/constants/ng2-device.constants.js.map', 420, 436 ]
130 silly gunzTarPerm extractEntry dist/index.d.ts
131 silly gunzTarPerm modified mode [ 'dist/index.d.ts', 420, 436 ]
132 silly gunzTarPerm extractEntry dist/index.js.map
133 silly gunzTarPerm modified mode [ 'dist/index.js.map', 420, 436 ]
134 silly gunzTarPerm extractEntry dist/services/ng2-device.service.js
135 silly gunzTarPerm modified mode [ 'dist/services/ng2-device.service.js', 420, 436 ]
136 silly gunzTarPerm extractEntry dist/services/retree.service.js
137 silly gunzTarPerm modified mode [ 'dist/services/retree.service.js', 420, 436 ]
138 silly gunzTarPerm extractEntry dist/services/ng2-device.service.d.ts
139 silly gunzTarPerm modified mode [ 'dist/services/ng2-device.service.d.ts', 420, 436 ]
140 silly gunzTarPerm extractEntry dist/services/ng2-device.service.js.map
141 silly gunzTarPerm modified mode [ 'dist/services/ng2-device.service.js.map', 420, 436 ]
142 silly gunzTarPerm extractEntry dist/services/retree.service.d.ts
143 silly gunzTarPerm modified mode [ 'dist/services/retree.service.d.ts', 420, 436 ]
144 silly gunzTarPerm extractEntry dist/services/retree.service.js.map
145 silly gunzTarPerm modified mode [ 'dist/services/retree.service.js.map', 420, 436 ]
146 silly gunzTarPerm extractEntry dist/services.d.ts
147 silly gunzTarPerm modified mode [ 'dist/services.d.ts', 420, 436 ]
148 silly gunzTarPerm extractEntry dist/services.js.map
149 silly gunzTarPerm modified mode [ 'dist/services.js.map', 420, 436 ]
150 silly gunzTarPerm extractEntry .travis.yml
151 silly gunzTarPerm modified mode [ '.travis.yml', 420, 436 ]
152 silly gunzTarPerm extractEntry README.MD
153 silly gunzTarPerm modified mode [ 'README.MD', 420, 436 ]
154 silly gunzTarPerm extractEntry typings/globals/angular-protractor/index.d.ts
155 silly gunzTarPerm modified mode [ 'typings/globals/angular-protractor/index.d.ts', 420, 436 ]
156 silly gunzTarPerm extractEntry typings/globals/angular-protractor/typings.json
157 silly gunzTarPerm modified mode [ 'typings/globals/angular-protractor/typings.json', 420, 436 ]
158 silly gunzTarPerm extractEntry typings/globals/es6-shim/index.d.ts
159 silly gunzTarPerm modified mode [ 'typings/globals/es6-shim/index.d.ts', 420, 436 ]
160 silly gunzTarPerm extractEntry typings/globals/es6-shim/typings.json
161 silly gunzTarPerm modified mode [ 'typings/globals/es6-shim/typings.json', 420, 436 ]
162 silly gunzTarPerm extractEntry typings/globals/jasmine/index.d.ts
163 silly gunzTarPerm modified mode [ 'typings/globals/jasmine/index.d.ts', 420, 436 ]
164 silly gunzTarPerm extractEntry typings/globals/jasmine/typings.json
165 silly gunzTarPerm modified mode [ 'typings/globals/jasmine/typings.json', 420, 436 ]
166 silly gunzTarPerm extractEntry typings/globals/selenium-webdriver/index.d.ts
167 silly gunzTarPerm modified mode [ 'typings/globals/selenium-webdriver/index.d.ts', 420, 436 ]
168 silly gunzTarPerm extractEntry typings/globals/selenium-webdriver/typings.json
169 silly gunzTarPerm modified mode [ 'typings/globals/selenium-webdriver/typings.json', 420, 436 ]
170 silly gunzTarPerm extractEntry typings/index.d.ts
171 silly gunzTarPerm modified mode [ 'typings/index.d.ts', 420, 436 ]
172 silly gunzTarPerm extractEntry src/constants/ng2-device.constants.ts
173 silly gunzTarPerm modified mode [ 'src/constants/ng2-device.constants.ts', 420, 436 ]
174 silly gunzTarPerm extractEntry src/index.ts
175 silly gunzTarPerm modified mode [ 'src/index.ts', 420, 436 ]
176 silly gunzTarPerm extractEntry src/services/ng2-device.service.ts
177 silly gunzTarPerm modified mode [ 'src/services/ng2-device.service.ts', 420, 436 ]
178 silly gunzTarPerm extractEntry src/services/retree.service.ts
179 silly gunzTarPerm modified mode [ 'src/services/retree.service.ts', 420, 436 ]
180 silly gunzTarPerm extractEntry src/services.ts
181 silly gunzTarPerm modified mode [ 'src/services.ts', 420, 436 ]
182 silly gunzTarPerm extractEntry tsconfig.json
183 silly gunzTarPerm modified mode [ 'tsconfig.json', 420, 436 ]
184 silly gunzTarPerm extractEntry tslint.json
185 silly gunzTarPerm modified mode [ 'tslint.json', 420, 436 ]
186 silly gunzTarPerm extractEntry typings.json
187 silly gunzTarPerm modified mode [ 'typings.json', 420, 436 ]
188 silly gentlyRm /home/manisankar/mani/Project_Folder/moleculesui/quiz-angular-2/node_modules/.staging/ng2-device-detector-1198a441/node_modules is being purged
189 verbose gentlyRm don't care about contents; nuking /home/manisankar/mani/Project_Folder/moleculesui/quiz-angular-2/node_modules/.staging/ng2-device-detector-1198a441/node_modules
190 silly doParallel preinstall 1
191 silly preinstall [email protected] /home/manisankar/mani/Project_Folder/moleculesui/quiz-angular-2/node_modules/.staging/ng2-device-detector-1198a441
192 info lifecycle [email protected]preinstall: [email protected]
193 silly lifecycle [email protected]
preinstall: no script for preinstall, continuing
194 silly doReverseSerial remove 0
195 silly doSerial move 0
196 silly doSerial finalize 1
197 silly finalize /home/manisankar/mani/Project_Folder/moleculesui/quiz-angular-2/node_modules/ng2-device-detector
198 silly doSerial build 1
199 silly build [email protected]
200 info linkStuff [email protected]
201 silly linkStuff [email protected] has /home/manisankar/mani/Project_Folder/moleculesui/quiz-angular-2/node_modules as its parent node_modules
202 verbose linkBins [email protected]
203 verbose linkMans [email protected]
204 silly doSerial global-link 0
205 silly doParallel update-linked 0
206 silly doSerial install 1
207 silly install [email protected] /home/manisankar/mani/Project_Folder/moleculesui/quiz-angular-2/node_modules/.staging/ng2-device-detector-1198a441
208 info lifecycle [email protected]install: [email protected]
209 silly lifecycle [email protected]
install: no script for install, continuing
210 silly doSerial postinstall 1
211 silly postinstall [email protected] /home/manisankar/mani/Project_Folder/moleculesui/quiz-angular-2/node_modules/.staging/ng2-device-detector-1198a441
212 info lifecycle [email protected]postinstall: [email protected]
213 verbose lifecycle [email protected]
postinstall: unsafe-perm in lifecycle true
214 verbose lifecycle [email protected]postinstall: PATH: /usr/lib/node_modules/npm/bin/node-gyp-bin:/home/manisankar/mani/Project_Folder/moleculesui/quiz-angular-2/node_modules/ng2-device-detector/node_modules/.bin:/home/manisankar/mani/Project_Folder/moleculesui/quiz-angular-2/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
215 verbose lifecycle [email protected]
postinstall: CWD: /home/manisankar/mani/Project_Folder/moleculesui/quiz-angular-2/node_modules/ng2-device-detector
216 silly lifecycle [email protected]postinstall: Args: [ '-c', 'typings install' ]
217 info lifecycle [email protected]
postinstall: Failed to exec postinstall script
218 verbose unlock done using /home/manisankar/.npm/_locks/staging-6fd9f7c10a5f9a31.lock for /home/manisankar/mani/Project_Folder/moleculesui/quiz-angular-2/node_modules/.staging
219 silly rollbackFailedOptional Starting
220 silly rollbackFailedOptional Finishing
221 silly runTopLevelLifecycles Finishing
222 silly install printInstalled
223 warn optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules/chokidar/node_modules/fsevents):
224 warn notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
225 verbose notsup SKIPPING OPTIONAL DEPENDENCY: Valid OS: darwin
225 verbose notsup SKIPPING OPTIONAL DEPENDENCY: Valid Arch: any
225 verbose notsup SKIPPING OPTIONAL DEPENDENCY: Actual OS: linux
225 verbose notsup SKIPPING OPTIONAL DEPENDENCY: Actual Arch: x64
226 warn @ngtools/[email protected] requires a peer of webpack@^2.2.0 but none was installed.
227 verbose If you need help, you may report this error at:
227 verbose https://github.com/npm/npm/issues
228 warn [email protected] requires a peer of webpack@^2.2.0 but none was installed.
229 verbose If you need help, you may report this error at:
229 verbose https://github.com/npm/npm/issues
230 verbose stack Error: [email protected] postinstall: typings install
230 verbose stack spawn ENOENT
230 verbose stack at ChildProcess. (/usr/lib/node_modules/npm/lib/utils/spawn.js:33:16)
230 verbose stack at emitTwo (events.js:106:13)
230 verbose stack at ChildProcess.emit (events.js:191:7)
230 verbose stack at maybeClose (internal/child_process.js:885:16)
230 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
231 verbose pkgid [email protected]
232 verbose cwd /home/manisankar/mani/Project_Folder/moleculesui/quiz-angular-2
233 error Linux 3.13.0-101-generic
234 error argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "ng2-device-detector" "--save"
235 error node v7.2.0
236 error npm v3.10.9
237 error file sh
238 error code ELIFECYCLE
239 error errno ENOENT
240 error syscall spawn
241 error [email protected] postinstall: typings install
241 error spawn ENOENT
242 error Failed at the [email protected] postinstall script 'typings install'.
242 error Make sure you have the latest version of node.js and npm installed.
242 error If you do, this is most likely a problem with the ng2-device-detector package,
242 error not with npm itself.
242 error Tell the author that this fails on your system:
242 error typings install
242 error You can get information on how to open an issue for this project with:
242 error npm bugs ng2-device-detector
242 error Or if that isn't available, you can get their info via:
242 error npm owner ls ng2-device-detector
242 error There is likely additional logging output above.
243 verbose exit [ 1, true ]

AOT compiler - Unexpected value 'Ng2DeviceDetector in ng2-device-detector/dist/index.d.ts

I'm getting
Unexpected value 'Ng2DeviceDetector in [...]/node_modules/ng2-device-detector/dist/index.d.ts' imported by the module 'AppModule in [...]/app/app.module.ts'. Please add a @NgModule annotation.

while compiling with aot compiler using:
./node_modules/.bin/ngc -p tsconfig-aot.json
everything works just fine with regular ts compiler. It this a bug or am I missing something?

my component:

import {Component} from "@angular/core";
import {Device} from "ng2-device-detector";

@Component({
    selector: "device-info",
    template: `
        <div id="deviceInfo">
        </div>
    `
})
export class DeviceInfoComponent{

    constructor(private device: Device) {
        this.test();
    }

    test() {
        console.log(this.device.browser);
        console.log(this.device.browser_version);
        console.log(this.device.device);
        console.log(this.device.isDesktop());
        console.log(this.device.isMobile());
        console.log(this.device.isDesktop());
    }
}

my app.module.ts

[...]
import {Device, Ng2DeviceDetector} from "ng2-device-detector";

@NgModule({
  imports:      [
      [...]
      Ng2DeviceDetector
  ],
  declarations: [
     [...]
      DeviceInfoComponent,
  ],
  providers: [
      [...]
      Device,
  ],
  bootstrap:    [
      CheckoutComponent
  ]
})
export class AppModule {
    constructor(ngCartRedux: NgRedux<ICartState>) {
        ngCartRedux.provideStore(cartStore)
    }
}
  bootstrap:    [
      CheckoutComponent
  ]
})
export class AppModule {
    constructor(ngCartRedux: NgRedux<ICartState>) {
        ngCartRedux.provideStore(cartStore)
    }
}

Can't resolve '@nguniversal/express-engine/tokens'

Might be related to #22

I've upgraded from ng2-device-detector to ngx-device-detector. I've also updated both the module name and the service name in my code.

However, when I try to run the app with ng serve I get a huge exception on the console. Below I'm pasting the first few lines of the error:

** NG Live Development Server is listening on 0.0.0.0:4200, open your browser on http://localhost:4200/ **
 10% building modules 3/3 modules 0 active[HPM] Proxy created: /api  ->  http://localhost:3000
[HPM] Subscribed to http-proxy events:  [ 'error', 'close' ]
Date: 2018-01-09T23:00:49.145Z                                                          
Hash: 113a0438fd6f8bb8e3bb
Time: 10682ms
chunk {inline} inline.bundle.js (inline) 5.79 kB [entry] [rendered]
chunk {main} main.bundle.js (main) 268 kB [initial] [rendered]
chunk {polyfills} polyfills.bundle.js (polyfills) 1.13 MB [initial] [rendered]
chunk {scripts} scripts.bundle.js (scripts) 268 kB [initial] [rendered]
chunk {styles} styles.bundle.js (styles) 69.7 kB [initial] [rendered]
chunk {vendor} vendor.bundle.js (vendor) 12.2 MB [initial] [rendered]

ERROR in ./node_modules/ngx-device-detector/ngx-device-detector.umd.js
Module not found: Error: Can't resolve '@nguniversal/express-engine/tokens' in '/home/USER/project/node_modules/ngx-device-detector'
resolve '@nguniversal/express-engine/tokens' in '/home/USER/project/node_modules/ngx-device-detector'
  Parsed request is a module
  using description file: /home/USER/project/node_modules/ngx-device-detector/package.json (relative path: .)
    Field 'browser' doesn't contain a valid alias configuration
  after using description file: /home/USER/project/node_modules/ngx-device-detector/package.json (relative path: .)
    resolve as module
      /home/USER/project/node_modules/ngx-device-detector/node_modules doesn't exist or is not a directory
      /home/USER/project/node_modules/node_modules doesn't exist or is not a directory
      /home/USER/node_modules doesn't exist or is not a directory
      /home/node_modules doesn't exist or is not a directory

I don't use nguniversal, is it possible to run ngx-device-detector without it? I didn't have this problem with ng2-device-detector.

In any case, many thanks for maitaining this package!

Aot Compatible

First off excellent. Thanks for sharing @AhsanAyaz .

Feature Request:
Could you add the necessary mechanisms/configuration to allow this module to be used with Angular Ahead of time compiler?

Unnecessary big dependency

I see that the library requires @nguniversal/express-engine, which is a pretty big dependency. Wouldn't it be easier for AoT apps to just be not dependent on it? I created the services on my app and removed the dependency, and they work fine because they can get the user agent from the current browser window. Apparently the express-engine is only for apps that run on servers and it's not useful for an app that is statically-served.

Thoughts?

_setDeviceInfo() method not called in production when using AOT in version 1.3.6 - works fine on 1.3.5

ngx-device-detector - 1.3.6
angular-cli - 7.2.2

When I build on localhost - everything is alright, when I use the same build commands (tried 3 of them) and enable sourcemaps to set up breakpoints, the _setDeviceInfo() method is not called. And because the DevieDetectorService variables are not set when the function doesn't run, all calls to getUserInfo(), isMobile() etc return either empty information or false, even when on mobile.

This is the code excerpt from my angular.json file:
I tried the top 3 configs both on local and in prod and can't detect device on prod.

The last command: dev-source-maps-jit sets two params to false:

aot: false,
buildOptimizer: false

and then the DeviceDetectorService._setDeviceInfo() method properly executes on application load.

"configurations": {
            "production": {
              "fileReplacements": [{
                "replace": "src/environments/environment.ts",
                "with": "src/environments/environment.prod.ts"
              }],
              "optimization": true,
              "outputHashing": "all",
              "sourceMap": false,
              "extractCss": true,
              "namedChunks": false,
              "aot": true,
              "extractLicenses": true,
              "vendorChunk": false,
              "buildOptimizer": true,
              "budgets": [{
                "type": "initial",
                "maximumWarning": "2mb",
                "maximumError": "5mb"
              }]
            },
            "dev": {
              "fileReplacements": [{
                "replace": "src/environments/environment.ts",
                "with": "src/environments/environment.dev.ts"
              }],
              "optimization": true,
              "outputHashing": "all",
              "sourceMap": false,
              "extractCss": true,
              "namedChunks": false,
              "aot": true,
              "extractLicenses": true,
              "vendorChunk": false,
              "buildOptimizer": true,
              "budgets": [{
                "type": "initial",
                "maximumWarning": "2mb",
                "maximumError": "5mb"
              }]
            },
            "dev-source-maps": {
              "fileReplacements": [{
                "replace": "src/environments/environment.ts",
                "with": "src/environments/environment.dev.ts"
              }],
              "optimization": true,
              "outputHashing": "all",
              "sourceMap": true,
              "extractCss": true,
              "namedChunks": false,
              "aot": true,
              "extractLicenses": true,
              "vendorChunk": false,
              "buildOptimizer": true,
              "budgets": [{
                "type": "initial",
                "maximumWarning": "2mb",
                "maximumError": "5mb"
              }]
            },
            "dev-source-maps-jit": {
              "fileReplacements": [{
                "replace": "src/environments/environment.ts",
                "with": "src/environments/environment.dev.ts"
              }],
              "optimization": true,
              "outputHashing": "all",
              "sourceMap": true,
              "extractCss": true,
              "namedChunks": false,
              "aot": false,
              "extractLicenses": true,
              "vendorChunk": false,
              "buildOptimizer": false,
              "budgets": [{
                "type": "initial",
                "maximumWarning": "2mb",
                "maximumError": "5mb"
              }]
            }
          }

Error with @nguniversal/express-engine version 5.0.0-beta.6

Error Message
ERROR in ./node_modules/ngx-device-detector/ngx-device-detector.umd.js
Module not found: Error: Can't resolve 'nguniversal/express-engine/tokens' in 'C:....\node_modules\ngx-device-detector'

Possible Reason
"nguniversal/express-engine" version "5.0.0-beta.6" no longer contains "tokens.js" which ngx-device-detector version "1.1.7" demands to work.

ng build --prod not working

I got this error while building with ng build --prod

ERROR in ./src/$$_gendir/app/app.module.ngfactory.ts
Module not found: Error: Can't resolve 'ng2-device-detector/ng2-device-detector' in '\src$$_gendir\app'
@ ./src/$$_gendir/app/app.module.ngfactory.ts 27:0-68
@ ./src/main.ts
@ multi ./src/main.ts

Can't resolve all parameters for DeviceDetectorService: ([object Object], ?)

Hi, I use a CoreModule to import this service with an own wrapper service, to can manage its options.

Here is my core.module.ts

@NgModule({
  imports: [CommonModule, HttpClientModule, ApolloModule, HttpLinkModule, DeviceDetectorModule.forRoot()],
  declarations: [],
  providers: [
    DeviceService,
    AuthService,
    HttpClient
	....
  ]
})
export class CoreModule {
  static forRoot(): ModuleWithProviders {
    return {
      ngModule: CoreModule,
      providers: [
        AuthService,
        DeviceService,
        ....
	]
    };
  }

  constructor(
    @Optional()
    @SkipSelf()
    parentModule: CoreModule,
    apollo: Apollo,
    httpLink: HttpLink
  ) {
    if (parentModule) {
      throw new Error(
        'CoreModule is already loaded. Import it in the AppModule only'
      );
    }
  }

This is my custom service:

import { Subject } from 'rxjs/Subject';
import { Injectable, Inject } from '@angular/core';
import 'rxjs/add/operator/toPromise';
import 'rxjs/add/operator/filter';
import 'rxjs/add/operator/map';
import { DeviceDetectorService } from 'ngx-device-detector';


@Injectable()
export class DeviceService {

	constructor(private deviceDetectorService: DeviceDetectorService) { }

	isMobile() {
		.......
		return this.deviceDetectorService.isMobile();
	}

	isTablet() {
		......
		return this.deviceDetectorService.isTablet();
	}

	isDesktop() {
		.......
		return this.deviceDetectorService.isDesktop();
	}

	deviceInfo() {
		......
		return this.deviceDetectorService.getDeviceInfo();
	}
}

And then I import the coreModule in my app.module.ts

@NgModule({
  declarations: [
	AppComponent,
            .............
  ],
  imports: [
	BrowserModule,
	CoreModule.forRoot(),
            ..................
  ],
  bootstrap: [AppComponent]

And without call and inject it in any component constructor, it compiles well but I get this error in console chrome dev tools:

compiler.js:485 Uncaught Error: Can't resolve all parameters for DeviceDetectorService: ([object Object], ?).
	at syntaxError (compiler.js:485)
	at CompileMetadataResolver._getDependenciesMetadata (compiler.js:15700)
	at CompileMetadataResolver._getTypeMetadata (compiler.js:15535)
	at CompileMetadataResolver._getInjectableMetadata (compiler.js:15515)
	at CompileMetadataResolver.getProviderMetadata (compiler.js:15875)
	at eval (compiler.js:15786)
	at Array.forEach (<anonymous>)
	at CompileMetadataResolver._getProvidersMetadata (compiler.js:15746)
	at eval (compiler.js:15218)
	at Array.forEach (<anonymous>

Someone has idea what can be happening?

I am using:

Angular CLI: 1.7.0
Node: 8.9.4
OS: win32 x64
Angular: 5.2.6
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, platform-server, router

@angular/cli: 1.7.0
@angular-devkit/build-optimizer: 0.3.1
@angular-devkit/core: 0.3.1
@angular-devkit/schematics: 0.3.1
@ngtools/json-schema: 1.2.0
@ngtools/webpack: 1.10.0
@schematics/angular: 0.3.1
@schematics/package-update: 0.3.1
typescript: 2.5.3
webpack: 3.11.0

Many thanks!

How much @nguniversal/express-engine adds to the bundle

This is not an issue, but rather just a question which I don't know where else to ask.

Since nguniversal/express-engine is required, how much it adds to the final bundle, assuming the AOT (tree-shaking) is done?

I wouldn't use this module if it uses a lot of code from nguniversal/express-engine. If it's the case, I would go with something smaller since I only need to detect a browser. The only way is for me to compile it twice and compare the stats.json output file, but my production compile times are pretty long, so it's easier for me to jusk ask. Thanks for understanding.

Update to ngx and support Angular 5

Hello,
this library still works on Angular 5, but produces a warning that no peer of Angular 4 is installed. Would be nice if you would officially support Angular 5.
Also the package should be named ngx-device-detector, since Angular 4 is supported.

'typings' not explicit dependency

The 'typings' command is used as a post build step for this package, yet it is not listed in package.json as a dependency. It is assumed global. This causes my CI build to fail b/c my CI environment does not have (nor should have) typings as a globally installed dependency.

iPad Pro is not detectable

isTable() is not working for iPad Pro. It is showing as "Desktop" only. Please advice to fix this issue.

Headless Chrome not detected as Chrome browser

Headless Chrome is not detected as Chrome Browser.

The userAgent string is similar to "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/71.0.3578.98 Safari/537.36"

Can't compile, remove dependency on @nguniversal/express-engine

When I run the dev server I am getting the following error

using description file: D:\Source\app\src\package.json (relative path: ./src/@nguniversal/express-engine)
            no extension
              Field 'browser' doesn't contain a valid alias configuration
              D:\Source\app\src\@nguniversal\express-engine doesn't exist
            .ts
              Field 'browser' doesn't contain a valid alias configuration
              D:\Source\app\src\@nguniversal\express-engine.ts doesn't exist
            .js
              Field 'browser' doesn't contain a valid alias configuration
              D:\Source\app\src\@nguniversal\express-engine.js doesn't exist
            as directory
              D:\Source\app\src\@nguniversal\express-engine doesn't exist

I'm using Angular CLI with ASP.NET backend for SSR.

One possible solution is to provide an InjectionToken for userAgent instead and we can setup the provider in main.ts and main.server.ts

Extend peer dependencies to Angular 8

Issue description

running npm install throws the following warning:

npm WARN [email protected] requires a peer of @angular/core@^5.0.0 || ^6.0.0 || ^7.0.0 but none is installed. You must install peer dependencies yourself.

Steps to reproduce and a minimal demo of the problem

npm install with Angular 8

Current behavior

npm install shows a couple of warning due to peer dependencies.

Expected/desired behavior

No warnings should be shown

OS unknown for iOS

os_version is derived as "Unknown" for iPhone and iPads, though it is displaying user agent properly. Any idea fixing this or do we need get the OS version from the user agent.

fail to detect chrome browser v1.3.5

the function getDeviceInfo() on DeviceDetectorService returns an incorrect browser when using chrome.

happened on version 1.3.5, but works until v1.3.4

Device Unknow

Hi, I'm Angular 6 and I installed the Library to detect the user device and User Agent. The last one works fine, but device type is 'unknow'.. why? I'm using a Desktop MAC, running windows 8 in virtual machine. I'm doing the test with Chrome 67.0.3396.99 and IE 11, both of them return same result:
device

problems with installation

I'm trying to use the ng2-device-detector with angular cli in my angular2.3.1 app. But as soon as i type the npm command to install it I get this console error:
error Failed at the [email protected] postinstall script 'typings install'.

Full message:
error Darwin 15.6.0
error argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "ng2-device-detector" "--save"
error node v6.9.4
error npm v3.10.10
error file sh
error code ELIFECYCLE
error errno ENOENT
error syscall spawn
error [email protected] postinstall: typings install
error spawn ENOENT
error Failed at the [email protected] postinstall script 'typings install'.
error Make sure you have the latest version of node.js and npm installed.
error If you do, this is most likely a problem with the ng2-device-detector package,
error not with npm itself.
error Tell the author that this fails on your system:
error typings install
error You can get information on how to open an issue for this project with:
error npm bugs ng2-device-detector
error Or if that isn't available, you can get their info via:
error npm owner ls ng2-device-detector
error There is likely additional logging output above.

I am quite junior in frontend, but I remember that actually angular uses before that command, but in version I am it doesn't anymore. So, what can I do?

Errro While installing the plugin(Angular 4)

[email protected] postinstall D:\GitWork\web-ui\node_modules\ng2-device-detector
typings install

'typings' is not recognized as an internal or external command,
operable program or batch file.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm ERR! Windows_NT 10.0.10240
npm ERR! argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "install" "ng2-device-detector" "--save"
npm ERR! node v7.7.4
npm ERR! npm v4.1.2
npm ERR! code ELIFECYCLE

npm ERR! [email protected] postinstall: typings install
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] postinstall script 'typings install'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the ng2-device-detector package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! typings install
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs ng2-device-detector
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls ng2-device-detector
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR! D:\GitWork\web-ui\npm-debug.log

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.