Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DO NOT MERGE - DEMO #3187

Closed
wants to merge 160 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
160 commits
Select commit Hold shift + click to select a range
187d652
feat: load chat thread (#2115)
gavinbarron Mar 9, 2023
aff9384
feat: send message (#2116)
gavinbarron Mar 15, 2023
8fc20a0
feat: edit message (#2123)
gavinbarron Mar 17, 2023
97255fa
feat: delete message (#2137)
gavinbarron Mar 21, 2023
8d2c8ef
feat: real-time notifications (#2181)
gavinbarron Apr 19, 2023
8c043ba
merged changes from next/fluentui
gavinbarron May 1, 2023
dbe9856
update from next/fluentui
gavinbarron May 2, 2023
f7f90d6
Merge pull request #2229 from microsoftgraph/merge/next-to-chat
gavinbarron May 3, 2023
5a03007
feat: manage chat members (#2233)
gavinbarron May 8, 2023
b12a9cc
merge from next/fluentui
gavinbarron May 9, 2023
bd322ba
adding copyright headers
gavinbarron May 9, 2023
f22f518
Merge remote-tracking branch 'origin/next/fluentui' into merge/v3-to-…
gavinbarron May 9, 2023
15a0fdb
Merge pull request #2273 from microsoftgraph/merge/v3-to-chat
gavinbarron May 9, 2023
6a93d6b
feat: render graph stored images (#2252)
gavinbarron May 10, 2023
bdfdcb4
feat: create new chat (#2287)
gavinbarron May 18, 2023
c915cc5
feat: rename chat (#2329)
gavinbarron May 22, 2023
698be4d
feat: export notification broker config (#2425)
gavinbarron Jun 9, 2023
7994bf3
chore: update from v3 (#2426)
gavinbarron Jun 12, 2023
14e4f0a
merge from v3
gavinbarron Jun 26, 2023
9128d61
forced semver version
gavinbarron Jun 26, 2023
9dfda04
merging changes from next/fluentui feature branch
gavinbarron Jun 26, 2023
10015ea
Merge remote-tracking branch 'origin/main' into merge/next-to-chat-again
gavinbarron Jun 27, 2023
2f06e01
Merge pull request #2543 from microsoftgraph/merge/next-to-chat-again
gavinbarron Jun 28, 2023
5cf7961
docs: adding the basic mgt-chat docs (#2571)
sebastienlevert Jun 28, 2023
46b0d0f
chore: adding support for chat scenarios in react-contoso (#2620)
sebastienlevert Jul 19, 2023
0d226e7
chore: increment version to 3.0.1 (#2565)
gavinbarron Jun 27, 2023
f2ef405
fix: correct sppkg upload script (#2552)
gavinbarron Jun 28, 2023
6b7a20e
chore: update spfx sample to use spfx@1.17.4 (#2573)
gavinbarron Jun 29, 2023
5ff0da3
chore: update branch protection policy (#2575)
gavinbarron Jun 29, 2023
51779a6
chore: change the custom styling color of mgt-agenda heading (#2562)
gavinbarron Jun 29, 2023
5da8073
fix: people picker default selections (#2579)
gavinbarron Jun 30, 2023
9246255
chore: remove storybook-deployer dependency (#2578)
gavinbarron Jun 30, 2023
b6cb7b6
chore: add a login class to mgt-login styling story (#2586)
musale Jul 4, 2023
11fee45
fix: adds customHosts support for non-graph domain requests (#2592)
techienickb Jul 7, 2023
1417d4a
chore: migrete to GitOps.ResourceManagement because of FabricBot deco…
microsoft-github-policy-service[bot] Jul 7, 2023
1125bb0
fix: add login custom styles, removes style not in use (#2587)
Mnickii Jul 7, 2023
34c1058
fix: files compact view in person card (#2597)
Mnickii Jul 11, 2023
a0ff5dc
fix: aspnet proxy provider sample (#2594)
gavinbarron Jul 11, 2023
dea0468
fix: aspnet proxy provider sample (#2594)
gavinbarron Jul 11, 2023
2f819db
fix(a11y): unset custom color of storybook left chevrons (#2595)
Mnickii Jul 12, 2023
2a5dd6d
fix: use iterator to load events from event-query (#2600)
gavinbarron Jul 13, 2023
aa55260
fix: add font family to tasks (#2603)
Mnickii Jul 13, 2023
a419e3c
fix: add class to people-picker styles story to enable custom css (#2…
Mnickii Jul 14, 2023
7cb616a
docs: remove deprecated providers (#2604)
Mnickii Jul 14, 2023
7e7038a
fix: add `InAConferenceCall` activity when availability is `Busy` (#2…
musale Jul 14, 2023
d9b44b2
fix: announce teams channel results when you type (#2561)
gavinbarron Jul 17, 2023
2fb00dc
chore: update change log with v3 and v3 rc changes (#2608)
gavinbarron Jul 17, 2023
3189c8a
ci: updates workflows to use release-please for release management (#…
gavinbarron Jul 17, 2023
62ed351
chore: bootstrap please-release config for CI (#2606)
gavinbarron Jul 17, 2023
57c0535
Update run-release-please.yml
gavinbarron Jul 17, 2023
0ead1d8
chore: add bootstrap-sha to release-please config
gavinbarron Jul 18, 2023
045f97d
ci: add PAT to release-please automation
gavinbarron Jul 18, 2023
46e9df7
chore: update release-please-config.json
gavinbarron Jul 18, 2023
f1e01b1
ci: make release-please use node 16
gavinbarron Jul 18, 2023
44042cb
ci: update release-please with config options
gavinbarron Jul 18, 2023
380f8c7
ci: correct action config
gavinbarron Jul 18, 2023
a80990f
ci: more typos
gavinbarron Jul 18, 2023
42d85b8
ci: update release-please version
gavinbarron Jul 18, 2023
1a53651
chore(main): release 3.0.1 (#2615)
gavinbarron Jul 18, 2023
e2be047
ci: update spfx uploader script (#2617)
gavinbarron Jul 19, 2023
e7d2dc8
fix(a11y): add distinct name definitions for copy code buttons in sto…
Mnickii Jul 24, 2023
d56d543
chore: remove all samples except react-contoso (#2627)
sebastienlevert Jul 25, 2023
007fb75
ci: move storybook build to webpack 5 (#2633)
gavinbarron Jul 27, 2023
302b3bf
fix: check the file type being uploaded before performing upload (#2584)
musale Jul 27, 2023
d671d3c
fix: add a title text if displaying images only. (#2625)
musale Jul 27, 2023
887c9bf
chore(docs): update README docs for mgt packages (#2626)
musale Jul 27, 2023
9714896
fix: remove agenda tooltip (#2621)
gavinbarron Jul 28, 2023
2b5614d
feat: add canary url to allowed endpoints for graph (#2635)
gavinbarron Jul 28, 2023
e3628e5
chore(main): release 3.1.0 (#2628)
gavinbarron Jul 31, 2023
e9a1d77
chore(docs): fix the order of stories in the playground (#2645)
musale Aug 3, 2023
4e10166
fix: use pointer cursor when person card enabled in mgt-person. (#2652)
agaskelluk Aug 15, 2023
e837b51
feat: use native graph web socket based change notifications
gavinbarron Aug 16, 2023
d73db51
feat: handle switching the active account (#2613)
musale Aug 22, 2023
e5a9bfe
improved message caching
gavinbarron Aug 24, 2023
6e309a4
feat: add support for blocked messages (#2664)
musale Aug 30, 2023
172fff4
merge origin/main to next/chat
gavinbarron Aug 30, 2023
32dcbc0
Merge pull request #2691 from microsoftgraph/merge/main-to-chat
gavinbarron Aug 31, 2023
a88f74f
merge from next/mgt-chat
gavinbarron Sep 1, 2023
6cc861a
making unencrypted web socket notification subscriptions
gavinbarron Sep 5, 2023
41df8a0
ci: add workflow to deploy mgt-chat sample app (#2699)
gavinbarron Sep 6, 2023
86c48fa
ci: fix sample app for folder deployment (#2701)
gavinbarron Sep 7, 2023
d4f6919
ci: use | instead of / as separator for sed commands (#2705)
gavinbarron Sep 7, 2023
4b84b3e
samples: fixing browser router (#2711)
sebastienlevert Sep 8, 2023
e0f42c2
Merge branch 'next/mgt-chat' into feat/native-graph-notifications
gavinbarron Sep 21, 2023
bbbbe41
Wip on pivot to prod services
gavinbarron Sep 22, 2023
755a75e
chore: merge from main and fix linting issues
gavinbarron Sep 25, 2023
c0847e7
fixing invalid scheme issue when connecting to web sockets
gavinbarron Sep 26, 2023
78a536f
correctig sass import paths
gavinbarron Sep 26, 2023
1ef99b5
notification working with prod web sockets (beta)
gavinbarron Sep 27, 2023
ce3cd6a
updates from main
gavinbarron Sep 27, 2023
118a2bb
Fix unknown type access on mgt props
musale Sep 28, 2023
a7f0fe2
fix: add Group entity to IDynamicPerson type and introduce typeguards…
Mnickii Sep 28, 2023
72e5ed3
Merge pull request #2734 from microsoftgraph/merge/update-yarn-change…
gavinbarron Sep 28, 2023
d18c47c
merge from origin/next/mgt-chat
gavinbarron Sep 28, 2023
096be87
updated logging to include timestamps
gavinbarron Sep 29, 2023
5bfd92e
Merge pull request #2741 from microsoftgraph/feat/native-graph-notifi…
gavinbarron Oct 2, 2023
d0f3fa2
chore: use node 18.x to build react-contoso (#2752)
gavinbarron Oct 3, 2023
c2eba02
merge from origin/main
gavinbarron Oct 4, 2023
9becafa
Merge pull request #2758 from microsoftgraph/merge/chat-from-main
gavinbarron Oct 5, 2023
94bd50f
feat: cache messages received via web sockets (#2766)
gavinbarron Oct 11, 2023
74a7608
fix: show the person card of a sender on hover (#2770)
musale Oct 11, 2023
3c00710
feat: render cta for unsupported content (#2663)
musale Oct 12, 2023
7ff602b
feat: add support for `@mentions` in the chat content (#2668)
musale Oct 13, 2023
10991a5
fix: update files included in package for publishing (#2776)
gavinbarron Oct 16, 2023
05610a0
fix: popover positioning for chat component (#2774)
gavinbarron Oct 18, 2023
406ca1e
fix: reduce padding on chat member management dialog (#2779)
gavinbarron Oct 18, 2023
80a6d07
fix: membership management button stacking (#2785)
gavinbarron Oct 18, 2023
112aaba
feat: add chat icons (#2789)
gavinbarron Oct 24, 2023
c854c6a
fix: remove elevation from new chat component (#2791)
gavinbarron Oct 25, 2023
f2a9197
fix: move notificationUrl from wss: to websockets: (#2796)
gavinbarron Oct 25, 2023
cb240cb
feat: add config switch to use cananry graph (#2802)
gavinbarron Oct 30, 2023
e699dbc
merge from origin/main
gavinbarron Oct 30, 2023
d7eced3
fix tests
gavinbarron Oct 30, 2023
2a61bd7
chore: Update license headers (#2815)
musale Oct 31, 2023
d2095d0
merge from origin/next/mgt-chat and fixed storybook build
gavinbarron Oct 31, 2023
b53c0fe
increase node heap for react-contoso build
gavinbarron Oct 31, 2023
e7c3050
feat: support multiple chats (#2804)
gavinbarron Nov 1, 2023
8eedbb5
feat: web worker based timers (#2821)
gavinbarron Nov 2, 2023
989930f
Merge branch 'main' into merge/main-to-chat
musale Nov 2, 2023
71b037e
Merge branch 'next/mgt-chat' into merge/main-to-chat
musale Nov 2, 2023
bcb4dc0
Merge pull request #2805 from microsoftgraph/merge/main-to-chat
gavinbarron Nov 2, 2023
c025c27
Merge remote-tracking branch 'origin/main' into merge/main-to-chat
gavinbarron Nov 3, 2023
3c28c57
Merge pull request #2827 from microsoftgraph/merge/main-to-chat
gavinbarron Nov 3, 2023
a11fc65
feat: Add an ellipsis link that redirects to teams web on click (#2816)
musale Nov 3, 2023
98308a8
fix: display of flyout hidden by dialog (#2832)
gavinbarron Nov 7, 2023
4702515
fix: mgt-chat now has peer deps including react 18 (#2841)
gavinbarron Nov 10, 2023
8833f13
chore: merge from main
gavinbarron Nov 10, 2023
080a733
Merge pull request #2843 from microsoftgraph/merge/main-to-chat
gavinbarron Nov 10, 2023
9c84955
fix: ensure that allChatScopes provides all scopes needed (#2844)
gavinbarron Nov 13, 2023
0eac2c8
Merge remote-tracking branch 'origin/main' into merge/main-to-chat
gavinbarron Nov 13, 2023
63c72dc
fix: ensure that emoji content is correctly rewritten (#2852)
gavinbarron Nov 13, 2023
61da237
Merge branch 'next/mgt-chat' into merge/main-to-chat
sebastienlevert Nov 13, 2023
d50ace9
Merge pull request #2853 from microsoftgraph/merge/main-to-chat
gavinbarron Nov 14, 2023
1c16883
fix: update dimensions of the chat component (#2823)
musale Nov 14, 2023
3c71e91
chore: updating the chat list component for performance and design (#…
sebastienlevert Nov 14, 2023
a168e96
chore: bump heap size for chat test app deployment (#2854)
gavinbarron Nov 14, 2023
965d3a3
fix: chat avatar presence display (#2857)
gavinbarron Nov 14, 2023
f278f22
Add loop component as an unsupported content (#2859)
musale Nov 14, 2023
e8fbbea
fix: sessionId management (#2862)
gavinbarron Nov 17, 2023
7181efd
fix: subscription caching (#2864)
gavinbarron Nov 20, 2023
48d2d55
fix: prevent errors when typing in NewChat component (#2879)
musale Nov 28, 2023
45a649f
fix: set the text size for NewChat to a global default value (#2881)
musale Nov 28, 2023
88f711a
fix: don't display name of user who started conversation in members a…
musale Nov 28, 2023
4d0db50
fix: differentiate between current user and other mentions colors (#2…
musale Nov 28, 2023
c9c4047
fix: move timers to use timeouts (#2923)
gavinbarron Jan 3, 2024
040beb6
feat: add a refresh for presence (#2916)
plasne Jan 19, 2024
7223112
feat: transform emoji tags into standard HTML (#2870)
musale Jan 23, 2024
511f6ea
feat: fullscreen status messages (#2948)
musale Jan 30, 2024
4a285e1
fix: set consistent spacing between mentioned people names (#2970)
musale Jan 30, 2024
ddf3ad2
merge from main
gavinbarron Feb 6, 2024
30265dd
backout self based access to setInterval
gavinbarron Feb 6, 2024
9c1ff30
updating tests to match behavior
gavinbarron Feb 6, 2024
5c44ae9
Change Viewtype values to match string literals
musale Feb 7, 2024
288dbf9
Use CSS classes to style mgt elements with disambiguation
musale Feb 7, 2024
188b1cb
Merge pull request #3026 from microsoftgraph/merge/main-to-chat
gavinbarron Feb 7, 2024
eeea1d6
feat: support multiple chat components sharing a subscription (#2913)
gavinbarron Feb 8, 2024
5c123b0
fix: update contoso app to use migration shims components (#3015)
musale Feb 12, 2024
0610757
fix: force messages to take up all available space (#3063)
plasne Feb 22, 2024
f78d197
fix: add key to mentions (#3102)
gavinbarron Feb 29, 2024
c42aa19
feat: show bot names and avatars in conversation (#3071)
gavinbarron Mar 5, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
29 changes: 26 additions & 3 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,18 @@ module.exports = {
es6: true,
node: true
},
extends: ['@microsoft/eslint-config-msgraph', 'plugin:storybook/recommended'],
extends: [
'@microsoft/eslint-config-msgraph',
'plugin:jsx-a11y/recommended',
'plugin:react-hooks/recommended',
'plugin:storybook/recommended'
],
parser: '@typescript-eslint/parser',
parserOptions: {
project: [
'packages/mgt/tsconfig.json',
'packages/mgt-element/tsconfig.json',
'packages/mgt-chat/tsconfig.json',
'packages/mgt-components/tsconfig.json',
'packages/mgt-react/tsconfig.json',
'packages/mgt-spfx-utils/tsconfig.json',
Expand All @@ -23,12 +29,29 @@ module.exports = {
],
sourceType: 'module'
},
plugins: ['eslint-plugin-jsdoc', 'eslint-plugin-prefer-arrow', 'eslint-plugin-react', '@typescript-eslint'],
plugins: [
'eslint-plugin-jsdoc',
'eslint-plugin-prefer-arrow',
'eslint-plugin-react',
'@typescript-eslint',
'jsx-a11y',
'react-hooks'
],
root: true,
ignorePatterns: ['**/**-css.ts', '.eslintrc.js', '*.cjs', 'rollup.config.mjs'],
rules: {
'@typescript-eslint/no-explicit-any': 'warn',
// prefer-nullish-coalescing requires strictNullChecking to be turned on
'@typescript-eslint/prefer-nullish-coalescing': 'off'
'@typescript-eslint/prefer-nullish-coalescing': 'off',
'react/jsx-curly-spacing': 'off',
'react/jsx-equals-spacing': 'off',
'react/jsx-tag-spacing': [
'off',
{
afterOpening: 'allow',
closingSlash: 'allow'
}
],
'react/jsx-wrap-multilines': 'off'
}
};
53 changes: 53 additions & 0 deletions .github/workflows/pr-chat.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions

name: Deploy mgt-chat sample app

on:
push:
branches: [next/mgt-chat]

jobs:
react-contoso:
runs-on: ubuntu-latest
# increase node heap size to ensure that the build can succeed
env:
NODE_OPTIONS: '--max_old_space_size=9182'

strategy:
matrix:
node-version: [18.x]

steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
registry-url: 'https://registry.npmjs.org'

- name: Install deps 🛠
run: |
echo "installing yarn"
npm install -g yarn
echo "installing deps for packages"
yarn

- name: Setup env file
shell: bash
run: |
cp samples/react-contoso/.env.sample samples/react-contoso/.env
sed -i 's|REACT_APP_CLIENT_ID="ed072e38-e76e-45ae-ab76-073cb95495bb"|REACT_APP_CLIENT_ID="${{secrets.REACT_CONTOSO_CHAT}}"|g' samples/react-contoso/.env
sed -i 's|REACT_APP_BASE_DIR="/"|REACT_APP_BASE_DIR="/next/mgt-chat"|g' samples/react-contoso/.env

- name: Build 🛠
run: |
yarn build
yarn build:react-contoso

- name: Deploy mgt.dev/next/mgt-chat 🚀
uses: JamesIves/github-pages-deploy-action@v4.4.1
with:
branch: gh-pages
folder: samples/react-contoso/build
target-folder: next/mgt-chat
3 changes: 3 additions & 0 deletions .github/workflows/pr-test-app.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ jobs:
react-contoso:
if: "contains(github.event.pull_request.labels.*.name, 'Build: React Contoso')"
runs-on: ubuntu-latest
# increase node heap size to ensure that the build can succeed
env:
NODE_OPTIONS: '--max_old_space_size=9182'

strategy:
matrix:
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/push-preview-release.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.

# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions

Expand Down
15 changes: 12 additions & 3 deletions .storybook/addons/codeEditorAddon/codeAddon.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { CLIENTID, SETPROVIDER_EVENT, AUTH_PAGE } from '../../env';
import { beautifyContent } from '../../utils/beautifyContent';

const mgtScriptName = './mgt.storybook.js';
const mgtPreviewScriptName = './mgt.preview.storybook.js';

// function is used for dragging and moving
const setupEditorResize = (first, separator, last, dragComplete) => {
Expand Down Expand Up @@ -193,21 +194,27 @@ export const withCodeEditor = makeDecorator({
</header>
`;

const resolveScript = () => {
const usingPreview =
editor.files.js.indexOf(`import '@microsoft/mgt-components/dist/es6/components/preview'`) > -1;
return usingPreview ? mgtPreviewScriptName : mgtScriptName;
};

let providerInitCode = `
import {Providers, MockProvider} from "${mgtScriptName}";
import {Providers, MockProvider} from "${resolveScript()}";
Providers.globalProvider = new MockProvider(true);
`;

const channel = addons.getChannel();
channel.on(SETPROVIDER_EVENT, params => {
if (params.state === ProviderState.SignedIn && params.name === 'MgtMockProvider') {
providerInitCode = `
import { Providers, MockProvider } from "${mgtScriptName}";
import { Providers, MockProvider } from "${resolveScript()}";
Providers.globalProvider = new MockProvider(true);
`;
} else if (params.state === ProviderState.SignedIn && params.name === 'MgtMsal2Provider') {
providerInitCode = `
import { Providers, Msal2Provider, LoginType } from "${mgtScriptName}";
import { Providers, Msal2Provider, LoginType } from "${resolveScript()}";
Providers.globalProvider = new Msal2Provider({
clientId: "${CLIENTID}",
loginType: LoginType.Popup,
Expand All @@ -230,6 +237,8 @@ export const withCodeEditor = makeDecorator({
let doc = storyElement.contentDocument;

let { html, css, js } = editor.files;
// strip the preview import, we include it in the resolved script
js = js.replace(/import '@microsoft\/mgt-components\/dist\/es6\/components\/preview'/gm, ``);
js = js.replace(
/import \{([^\}]+)\}\s+from\s+['"]@microsoft\/mgt\x2d.*['"];/gm,
`import {$1} from '${mgtScriptName}';`
Expand Down
4 changes: 2 additions & 2 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@
"less.validate": false,
"scss.validate": false,
"[scss]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
"editor.defaultFormatter": "stylelint.vscode-stylelint"
},
"[css]": {
"editor.defaultFormatter": "stylelint.vscode-stylelint"
},
"stylelint.packageManager": "yarn",
"stylelint.snippet": ["css", "less", "postcss", "scss"],
"stylelint.validate": ["css", "less", "postcss", "scss"],
"cSpell.words": ["mailenabledsecurity"],
"cSpell.words": ["odata", "mailenabledsecurity"],
"liveServer.settings.root": "storybook-static",
"liveServer.settings.port": 6006
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading
Loading