tag:blogger.com,1999:blog-79235696354948071192024-02-22T02:02:04.839-08:00SharePoint Tweaks BlogThis blog is about SharePoint, Office365 and Office DevelopmentAmr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.comBlogger97125tag:blogger.com,1999:blog-7923569635494807119.post-75097700333836169832020-09-23T04:12:00.000-07:002020-09-23T04:12:22.324-07:00Microsoft Teams : Config Tab SSO First Time Consent Challenge<p> In this post I'll walk you through a challenge I've faced which might break your Microsoft Teams app acquisition flow specially if you are building an App Source Mutli-tenant application. Microsoft Teams offers a basic SSO which is easy to configure if you follow the guideline and steps explained in the below article:</p><p><a href="https://docs.microsoft.com/en-us/microsoftteams/platform/tabs/how-to/authentication/auth-aad-sso">https://docs.microsoft.com/en-us/microsoftteams/platform/tabs/how-to/authentication/auth-aad-sso</a> </p><p>So where is the problem, I can name a few but I would focus on one specific use case when you add the tab first time, the Azure AD app need to capture user or admin consent so it would:</p><p></p><ol style="text-align: left;"><li>Prompt that you need to trust the app</li><li>When you click continue a consent dialog will popup and you would be able to consent or cancel </li><li>The entire Teams tab will be refreshed and when you try to get authenticate the current user everything works as expected.</li></ol><div>I know so far I didn't list any problems, the corner case if your Tab configuration screen requires some sort of SSO to retrieve some information form your protected APIs and save the tab settings before rendering the tab.</div><div><br /></div><div>In this case the step #3 will force your Microsoft Teams tab to refresh and you would need to restart adding the tab once again, in the second time this would work perfectly, see the screen capture below to get a clear idea of the experience:</div><div><br /></div>
<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/OLPmOHXwuwA" width="560"></iframe>
<div><br /></div><div><br /></div><div>Not a big issue to be honest but If you are building an multi-tenant app people might think there is something wrong with the app. If you dig deeper you can see that Authentication is handled by the Parent windows which is Microsoft Teams app itself</div><div><br />
<script src="https://gist.github.com/ministainer/d081c78ec568471141c83ab77e610e62.js"></script>
</div><div><br /></div><div>So in short we don't have much control of how the parent would handle the authentication, my first thought was to ditch the whole ms-teams.js library and do the authentication on my own ! which is not recommended. I noticed that there is a silent parameter in the AuthRequest, if I pass it getAuthToken will fail and won't prompt the user to consent. </div><div><br /></div><div>The solution I end up using is to implement the consent flow on my own so the built-in authentication mechanism won't refresh the whole tab and won't break the acquisition journey and if the silent authentication is a success that means the user/admin has already consented to the required permissions </div><div><br /></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRydBvWL_2cHlfc8e9A7MjhWI3jL10pNpFEbQEShyyvnNh9fMb3kr8rEG2mUx2vK7fsofDjmekvHHgOiuoAkdpjnB_yagPNLVeuW-m5Y6_M3-8_n3VDISL2_HKw5WRvLpuKyY-eqLEWno/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="1154" data-original-width="1141" height="492" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRydBvWL_2cHlfc8e9A7MjhWI3jL10pNpFEbQEShyyvnNh9fMb3kr8rEG2mUx2vK7fsofDjmekvHHgOiuoAkdpjnB_yagPNLVeuW-m5Y6_M3-8_n3VDISL2_HKw5WRvLpuKyY-eqLEWno/w486-h492/image.png" width="486" /></a></div><br /><br /></div><p></p>
<script src="https://gist.github.com/ministainer/d0edc360aa8ac94c70839d02cdeb75ac.js"></script><br />Amr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.com0tag:blogger.com,1999:blog-7923569635494807119.post-41536846853475173932020-07-22T02:57:00.000-07:002020-07-22T03:00:52.165-07:00SharePoint Online: Use SPO as headless CMS for Public Facing websites<div dir="ltr" style="text-align: left;" trbidi="on">
Yes, the title is correct. It's not a typo. SharePoint online and public facing websites in the same sentence.<br />
<div>
Some of you would wonder, is that an old concept, old post, we are in 2020 and SharePoint online doesn't offer the public facing site collection anymore. Have I gone mad !?<br />
<div>
<br /></div>
<div>
<div>
I was planning to write down this blog post for over four years now and every single time I really pass the buck on that one.</div>
<div>
If you are/were a SharePointer part of your work experience was somehow focused towards customer experience not employee experience. For me it was the main focus as I used to to work more on building public facing solutions/experiences using On-premises versions of SharePoint 2010/2013 rather than intranets and extranets.</div>
</div>
<div>
<br /></div>
<div>
<div>
<i>Note: if you are looking for a rich experience this wouldn't definitely be the right path, also the intention of this post is just to go through a recent personal experience for an idea I had for almost over 5 years ago.</i></div>
<div>
<br /></div>
</div>
<div>
Don't get me wrong , Intranets/extranets were always integral part of our offerings back then but as more spent was poured towards brand identity and public facing experiences we get more public facing websites.</div>
<div>
<br /></div>
<div>
Implementing a complex and innovative designs on top of SharePoint was always challenging , the amount of time spent to make a SharePoint public facing sites using custom Master pages is enormous. Moreover, it was hard to maintain and the most challenging task used to fit the custom UI on top of SharePoint as the poor UI developer tries to get a fully working standalone HTML/CSS works fine within the SharePoint realm !</div>
<div>
<br /></div>
<div style="direction: ltr;">
To avoid some of these complications, we always tried to separate the concerns and use SharePoint site collection for publishing and use cross site publishing features to leverage content from multiple authors. </div>
<div style="direction: ltr;">
But when it comes to the UI concern separations and loose coupling wasn't that obvious. We have always used a customer master page. I remember in rare occasions building ASP.NET web applications that uses SharePoint APIs to get the required content and it had worked very well for us but it comes with the following caveats :</div>
<div>
<ul style="text-align: left;">
<li>Maintenance overhead : Additional Website, where to host, make sure it's redundant and can scale up etc...</li>
<li>losing WYSIWYG aspect or in some cases making WYSIWYG more difficult as content editors need to lunch the standalone web app to view what the site will look like instead of just clikcing on a publish button. </li>
<li>Can't use OTB components, which is very useful specially in search scenarios.</li>
<li>Missing out on some SharePoint features specially around analytics (but most of our public facing websites were using a different analytics solution)</li>
</ul>
<div>
This is not a the first time I blog about the loosely coupled approach. I've shared almost the same approach but for a loosely coupled <b>intranet </b>back in 2016 and I've built it even using NodeJS and present it in Perth Office 365 Saturday back in May 2016.</div>
<div>
If you want to view my previous post at <a href="http://www.sharepointtweaks.com/2016/01/officedev-the-new-intranet-loosely-coupled-approach.html">http://www.sharepointtweaks.com/2016/01/officedev-the-new-intranet-loosely-coupled-approach.html</a> </div>
</div>
<div>
<br /></div>
<div>
So the approach is pretty the same but we would use application permission to allow anonymous users to use the APIs without promot them to be challenged via login page and get id and access token in the same manner that we would do in an intranet scenario, in a nutshell it will look the below:</div>
<div>
<br /></div>
<div>
<img alt="" src="data:image/png;base64,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kAAJkAAJkAAJWJIABYolh42NJgESIAESCJcABUq4BHk9CZAACZAACZAACdiLAAWKvcabvSUBEiABEiglQIHCW4EESIAESIAESIAESCAYAhQowdDiuSRAAiRAAjFDgAIlZoaSHSEBEiABEiABEiCBiBCgQIkIZlZCAiRAAiRgNgIUKGYbEbaHBEiABEiABEiABMxNgALF3OPD1pEACZAACRhEgALFILAslgRIgARIgARIgARilAAFSowOLLtFAiRAAiTgnwAFin8+PEoCJEACJEACJEACJOBJgALFkwffkQAJkAAJ2IQABYpNBprdJAESIAESIAESIAGdCFCg6ASSxZAACZAACViLAAWKtcaLrSUBEiABEiABEiCBaBOgQIn2CLB+EiABEiCBqBCgQIkKdlZKAiRAAiRAAiRAApYlQIFi2aFjw0mABEiABMIhQIESDj1eSwIkQAIkQAIkQAL2I0CBYr8xZ49JgARIgAQAUKDwNiABEiABEiABEiABEgiGAAVKMLR4LgmQAAmQQMwQoECJmaFkR0iABEiABEiABEggIgQoUCKCmZWQAAmQAAmYjQAFitlGhO0hARIgARIgARIgAXMToEAx9/iwdSRAAiRAAgYRoEAxCCyLJQESIAESIAESIIEYJUCBEqMDy26RAAmQAAn4J0CB4p8Pj5IACZAACZAACZAACXgSoEDx5MF3JEACJEACNiFAgWKTgWY3SYAESIAESIAESEAnAhQoOoFkMSRAAiRAAtYiQIFirfFia0mABEiABEiABEgg2gQoUKI9AqyfBEiABEggKgQoUKKCnZWSAAmQAAmQAAmQgGUJUKBYdujYcBIgARIggXAIUKCEQ4/XkgAJkAAJkAAJkID9CFCg2G/M2WMSIAESIAEAFCi8DUiABEiABEiABEiABIIhQIESDC2eSwIkQAIkEDMEKFBiZijZERIgARIgARIgARKICAEKlIhgZiUkQAIkQAJmI0CBYrYRYXtIgARIgARIgARIwNwEKFDMPT5sHQmQAAmQgEEEKFAMAstiSYAESIAESIAESCBGCVCgxOjAslskQAIkQAL+CVCg+OfDoyRAAiRAAiRAAiRAAp4EKFA8efAdCZAACZCATQhQoNhkoNlNEiABEiABEiABEtCJAAWKTiBZDAmQAAmQgLUIUKBYa7zYWhIgARIgARIgARKINgEKlGiPAOsnARIgARKICgEKlKhgZ6UkQAIkQAIkQAIkYFkCFCiWHTo2nARIgARIIBwCFCjh0OO1JEACJEACJEACJGA/AhQo9htz9pgESIAESAAABQpvAxIgARIgARIgARIggWAIUKAEQ4vnkgAJkAAJxAwBCpSYGUp2hARIgARIgARIgAQiQoACJSKYWQkJkAAJkIDZCFCgmG1E2B4SIAESIAESIAESMDcBChRzjw9bRwIkQAIkYBABChSDwLJYEiABEiABEiABEohRAhQoMTqw7BYJkAAJkIB/AhQo/vnwKAmQAAmQAAmQAAmQgCcBChRPHnxHAiRAAiRgEwIUKDYZaHaTBEiABEiABEiABHQiQIGiE0gWQwIkQAIkYC0CFCjWGi+2lgRIgARIgARIgASiTYACJdojwPpJgARIgASiQoACJSrYWSkJkAAJkAAJkAAJWJYABYplh44Ryi25AAAgAElEQVQNJwESIAESCIcABUo49HgtCZAACZAACZAACdiPAAWK/cacPSYBEiABEgBAgcLbgARIgARIgARIgARIIBgCFCjB0OK5JEACJEACMUOAAiVmhpIdIQESIAESIAESIIGIEKBAiQhmVkICJEACJGA2AhQoZhsRtocESIAESIAESIAEzE2AAsXc48PWkQAJkAAJGESAAsUgsCyWBEiABEiABEiABGKUAAVKjA4su0UCJEACJOCfAAWKfz48SgIkQAIkQAIkQAIk4EmAAsWTB9+RAAmQAAnYhAAFik0Gmt0kARIgARIgARIgAZ0IUKDoBJLFkAAJkAAJWIsABYq1xoutJQESIAESIAESIIFoE6BAifYIsH4SIAESIIGoEKBAiQp2VkoCJEACJEACJEACliVAgWLZoWPDSYAESIAEwiFAgRIOPV5LAiRAAiRAAiRAAvYjQIFivzFnj0mABEiABABQoPA2IAESIAESIAESIAESCIYABUowtHguCZAACZBAzBCgQImZoWRHSIAESIAESIAESCAiBChQIoKZlZAACZAACZiNAAWK2UaE7SEBEiABEiABEiABcxOgQDH3+LB1JEACJEACBhGgQDEILIslARIgARIgARIggRglQIESowPLbpEACZAACfgnQIHinw+PkgAJkAAJkAAJkAAJeBKgQPHkwXckQAIkQAI2IUCBYpOBZjdJgARIgARIgARIQCcCFCg6gWQxJEAC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b7t/W/eEcgIECBDoW0CA0nf/az0BAgQIEGgKGGC3B9hs1m3TvCmsIECAAIGuBQQoXXe/xhMgQIAAgbaAkGDdIYH+bfdv+66whgABAgR6FhCg9Nz72k6AAAECBGYEDLDbA2w267aZuS2sIkCAAIGOBQQoHXe+phMgQIAAgTkBIcG6QwL92+7fufvCOgIECBDoV0CA0m/fazkBAgQIEJgVMMBuD7DZrNtm9sawkgABAgS6FRCgdNv1Gk6AAAECBOYFhATrDgn0b7t/5+8MawkQIECgVwEBSq89r90ECBAgQIAAAQIECBAgQIDAzQIClJupbEiAAAECBAgQIECAAAECBAj0KiBA6bXntZsAAQIECBAgQIAAAQIECBC4WUCAcjOVDQkQIECAAAECBAgQIECAAIFeBQQovfa8dhMgQIAAAQIECBAgQIAAAQI3CwhQbqayIQECBAgQIECAAAECBAgQINCrgACl157XbgIECBAgQIAAAQIECBAgQOBmAQHKzVQ2JECAAAECBAgQIECAAAECBHoVEKD02vPaTYAAAQIECBAgQIAAAQIECNwsIEC5mcqGBAgQIECAAAECBAgQIECAQK8CApRee167CRAgQIAAAQIECBAgQIAAgZsFBCg3U9mQAAECBAgQIECAAAECBAgQ6FVAgNJrz2s3AQIECBAgQIAAAQIECBAgcLPA/wL+YqAwcScWPwAAAABJRU5ErkJggg==" /></div>
<div>
<b>Couple of things to note here:</b></div>
<div>
<ol style="text-align: left;">
<li>Application permission is not enabled for every single endpoint</li>
<li>API access to SharePoint would be via Site.Read.All and Site.ReadWrite.All scopes which still in preview and doesn't allow you to limit access to a particular site collection.</li>
<li>Performance is not going to be great that's why I highly recommend using any kind of caching to make it less expensive for the API to return the content required by your client (SPA, web application or mobile native client)</li>
</ol>
<div>
<img alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABoAAAARgCAYAAADJgJQZAAAgAElEQVR4AezdCZhUVZ73+Zqnn563p+fp6Xqft6afXqa7Zrrn7e63+u3p6u5a7K4qtdytkqpCCxUVy6XEEqssBRXEBQQ3UFRccAF3lAJFUFRQVARlU0RkSxKSPdlJtswkkyU58/wO9Q9O3Lw34kZmRCQZ+b3PkxWREfeee87nnIi0zo9z71ccGwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQEUJfKWiWkNjEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEHAEQgwABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQqDABAqAK61CagwACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggQADEGEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIEKEyAAqrAOpTkIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAEQYwABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQqDABAqAK61CagwACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggQADEGEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIEKEyAAqrAOpTkIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAEQYwABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQqDABAqAK61CagwACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggQADEGEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIEKEyAAqrAOpTkIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAEQYwABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQqDABAqAK61CagwACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggQADEGEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIEKEyAAqrAOpTkIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAEQYwABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQqDABAqAK61CagwACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggQADEGEEAAAQQQQAABBBBAAAEEEEAAAQQQ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QjYAlbGxjxEYSwTeeuut6qc/PbBe/XP5vHkDnx82ljKOp7RHQ+FuA9B4qtGJLcto8HFiI2DpjYARMAJGwAgYASNgBIyAETACRsAIDA8CNgCNg7qUEUeHOHOQ8T333N3TlkmKmx5qPg6KtcVFsAFoi1eBBdiKEIhKY/Vlp/3y1OrTTz/dilAYrKgRu14M/7lcbADKoWK3QRAYDT4Okq/jGAEjYASMgBEwAkbACBgBI2AEjIARMAKjj4ANQKOPad8pLl26tNpmm69WGH4mTTq8eumlxT0Zf8jIBqAy3DYAlbGxjxEYbQT+vGlTdeghB9erfnb94S7VHXfcXv3tb38b7WyGMr3RULjbADSU1NgihRoNPm4RwZ2pETACRsAIGAEjYASMgBEwAkbACBgBIzACARuARkBiByNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAhMbARsAJrY9WfpjYARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBIzACARuARkBiByNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAhMbARsAJrY9WfpjYARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBIzACARuARkBiByNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAhMbARsAJrY9WfpjYARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBIzACARuARkBiByNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAhMbARsAJrY9WfpjYARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBIzACARuARkBiByNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAhMbARsAJrY9WfpjYARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBIzACARuARkBiByNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAhMbARsAJrY9WfpjYARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBIzACARuARkBiByNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIAR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IECAAAECBAgQIECAAAECBAgQIECgzwUkgPr8AGkeAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGCsAhJAYxWzPQECBAgQIECAAAECBAgQIECAAAECBAgQIECgzwUkgPr8AGkeAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGCsAhJAYxWzPQECBAgQIECAAAECBAgQIECAAAECBAgQIECgzwUkgPr8AGkeAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGCsAhJAYxWzPQECBAgQIECAAAECBAgQIECAAAECBAgQIECgzwUkgPr8AGkeAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGCsAhJAYxWzPQECBAgQIECAAAECBAgQIECAAAECBAgQIECgzwUkgPr8AGkeAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGCsAhJAYxWzPQECBAgQIECAAAECBAgQIECAAAECBAgQIECgzwUkgPr8AGkeAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGCsAhJAYxWzPQECBAgQIECAAAECBAgQIECAAAECBAgQIECgzwUkgPr8AGkeAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGCsAhJAYxWzPQECBAgQIECAAAECBAgQIECAAAECBAgQIECgzwUkgPr8AGkeAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGCsAhJAYxWzPQECBAgQIECAAAECBAgQIECAAAECBAgQIECgzwUkgPr8AGkeAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGCsAhJAYxWzPQECBAgQIECAAAECBAgQIECAAAECBAgQIECgzwUkgPr8AGkeAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGCsAhJAYxWzPQECBAgQIECAAAECBAgQIECAAAECBAgQIECgzwUkgPr8AGkeAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGCsAhJAYxWzPQECBAgQIECAAAECBAgQIECAAAECBAgQIECgzwUkgPr8AGkeAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGCsAhJAYxWzPQECBAgQIECAAAECBAgQIECAAAECBAgQIECgzwUkgPr8AGkeAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGCsAhJAYxWzPQECBAgQIECA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mkFUbtv0vOxbWMcMpNmzD07hEoP50Ya4x0+0b6QlkkOLFi2q2hxtycmA7aZNS6ecfHJavmzZkFkuubyRkh15uzKZEiZNS+5Tp2RYpzo71RPJnThOu+6y86hiKI7bvffeW5mUsZuPbSRI2iXVOrWv7HeOm7I9YR9x01R23j8ncDo5xbZN28WsoksuubiagRcJwjje8bj3Xnulyy69tErY5bo8EiBAgAABAgQIECBAgAABAgQIECBAoC4gAVQXmXo/jysBNPW6O7VanJMlnZJbU6tHWkuAAAECBAgQIECAAAECBAgQIECAAAECBAj0QkACqBfKXdYhAdQlnN0IECBAgAABAgQIECBAgAABAgQIECBAgMBGLiAB1McBIAHUxwdH0wgQIECAAAECBAgQIECAAAECBAgQIECAQB8LSAD18cGRAOrjg6NpBAgQIECAAAECBAgQIECAAAECBAgQIECgjwUkgPr44EgA9fHB0TQCBAgQIECAAAECBAgQIECAAAECBAgQINDHAhJAfXxwJID6+OBoGgECBAgQIECAAAECBAgQIECAAAECBAgQ6GMBCaA+PjgSQH18cDSNAAECBAgQIECAAAECBAgQIECAAAECBAj0sYAEUB8fHE0jQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECHQjIAHUjZp9CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJ9LCAB1McHR9MIECBAgAABAgQIECBAgAABAgQIECBAgAABAt0ISAB1o2YfAgQIECBAgAABAgQIECBAgAABAgQIECBAgEAfC0gA9fHB0TQCBAgQIECAAAECBAgQIECAAAECBAgQIECAQDcCEkDdqNmHAAECBAgQIECAAAECBAgQIECAAAECBAgQINDHAhJAfXxwNI0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0I2ABFA3avYhQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECPSxgARQHx8cTSNAgAABAgQIECBAgAABAgQIECBAgAABAgQIdCMgAdSNmn0IECBAgAABAgQIECBAgAABAgQIECBAgAABAn0sIAHUxwdH0wgQIECAAAECBAgQIECAAAECBAgQIECAAAEC3QhIAHWjZh8CBAgQIECAAAECBAgQIECAAAECBAgQIECAQB8LSAD18cHRNAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBANwISQN2o2YcAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0McCEkB9fHA0jQABAgQIECBAgADO7B1AAAAgAElEQVQBAgQIECBAgAABAgQIECDQjYAEUDdq9iFAgAABAgQIECBAgAABAgQIECBAgAABAgQI9LGABFAfHxxNI0CAAAECBAgQIECAAAECBAgQIECAAAECBAh0IyAB1I2afQgQIECAAAECBAgQIECAAAECBAgQIECAAAECfSwgAdTHB0fTCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLdCEgAdaNmHwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAHwtIAPXxwdE0AgQIECBAgAABAgQIECBAgAABAgQIECBAgEA3AhJA3ajZhwABAgQIECBAgAABAgQIECBAgAABAgQIECDQxwISQH18cDSNAAECBAgQIECAAAECBAgQIECAAAECBAgQINCNgARQN2r2IUCAAAECBAgQIECAAAECBAgQIECAAAECBAj0sYAEUB8fHE0jQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECHQjIAHUjZp9CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJ9LCAB1McHR9MIECBAgAABAgQIECBAgAABAgQIECBAgAABAt0ISAB1o2YfAgQIECBAgAABAgQIECBAgAABAgQIECBAgEAfC0gA9fHB0TQCBAgQIECAAAECBAgQIECAAAECBAgQIECAQDcCEkDdqNmHAAECBAgQIECAAAECBAgQIECAAAECBAgQINDHAhJAfXxwNI0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0I3AuBJA969en7a96On07378ePrYIYv8YyAGxIAYEANiQAyIATEgBsSAGBADYkAMiAExIAbEgBgQA2JADIiBUcRA5FYixxK5lslYuk4ARYMkfiS9JP7EgBgQA2JADIgBMSAGxIAYEANiQAyIATEgBsSAGBADYkAMiIHuYyByLZORBOo6ARRZqTignz3nqfQ3xyyRzRtFNs8boPs3ADt2YkAMiAExIAbEgBgQA2JADIgBMSAGxIAYEANiQAyIATEwSDEQuZXIsUSfIucy0UvXCaA8+0fyxxtukN5w+iKexYAYEANiQAyIATEgBsSAGBADYkAMiAExIAbEgBgQA2KgVzGQcyyRc5nopesEUL3zE90w5REgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBlVgsvMsEkAdIufvPvHxFP8sBAgQIECAAAECBAgQIECAAAECBAgQIECAAIGJFJAAmkjNMZYlATRGMJsTIECAAAECBAgQIECAAAECBAgQIECAAAECoxKQABoV0+RsJAE0Oa5KJUCAAAECBAgQIECAAAECBAgQIECAAAECG7uABNAGjAAJoA2Ir2oCBAgQIECAAAECBAgQIECAAAECBAgQIDDAAhJAG/DgSgBtQHxVEyBAgAABAgQIECBAgAABAgQIECBAgACBARaQANqAB1cCaAPiq5oAAQIECBAgQIAAAQIECBAgQIAAAQIECAywgATQBjy4EkAbEF/VBAgQIECAAAECBAgQIECAAAECBAgQIEBggAUkgDbgwZUA2oD4qiZAgAABAgQIECBAgAABAgQIECBAgAABAgMsIAG0AQ+uBNAGxFc1AQIECBAgQIAAAQIECBAgQIAAAQIECBAYYAEJoNrBfeONN9Jhhx2apu+wfVq5cmXt1Yn9UQJoYj2VRoAAAQIECBAgQIAAAQIECBAgQIAAAQIECHwkIAFUi4SlS5emL31xixTJmWuuubr26sT+KAE0sZ5KI0CAAAECBAgQIECAAAECBAgQIECAAAECgy5w3zNXpzfffWXEbkoA1Yg6zQB6//330113LUhHHPHjCZkdJAFUw/cjAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0Cjwx+W/Sjtd/LF01I2bNm6TX5AAyhKjeHz77bery8N95ctbpaeeemoUe3TeRAKos49XCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAgY8EcvLnG7/592nFuodGZJEAGpHorxtIAP3VwjMCBAgQIECAAAECBAgQIECAAAECBAgQIECgNwJjTf5EqySAxnBsJIDGgGVTAgQIECBAgAABAgQIECBAgAABAgQIECBAYNwCOfkTl36L+/+MdtloEkAffPBBuvfee9NBBx6YvrDp51Ncfm2LzTdLRx91VFq9enXLq12SJy73Fpd9y5dsqz9ec81w8GeffTadeeYZVR2xfdQ5Z84xafmyZenDDz+s6svltCr3hAABAgQIECBAgAABAgQIECBAgAABAgQIECDwF4Ey+RPPx7JsFAmgt956Kx1z9FFVAicSMbvtukuaMWO3VnLm/vvvb5m1SwA988wz6dszZ1b7xf6f+uTfpx2nT6/KiHJuuvHG1v6R3Lnn7rtbZW83bVq1XTzmRNANN9xQJYEkgFpsnhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQKFwHiSP1HMRpEAuvXWW6qkzY8OPzy9+eabLb6YFbR48eNp5cqVrXXtEkD5xU6v5W2ivC99cYsq6bNo0aLWbJ9IDD3yyCNp2te2TdN32D6tWrWqNaMo7+uRAAECBAgQIECAAAECBAgQIECAAAECBAgQIDDe5E8IbhQJoDNOP71KtrS7VFs9jDoleTq9FuW8++671SXlIgEUiaB2yxWXX1615dJf/1oCqB2QdQQIECBAgAABAgQIECBAgAABAgQIECBAYAAEVqx7KB194xfSm+++MqbeTETyJyrcKBJAkfiJy63VZwC1E++U5On0WpSV7xV02GGHpti23fLoowvT5z77mep+QC4B107IOgIECBAgQIAAAQIECBAgQIAAAQIECBAgMPUFjrpx07TTxR9Ls+d/fNRJoIlK/oTeRpEAWrNmTdp3n72rJNBWW26ZLrzggrR27dq20dMpydPptSgs7iWUkzojPUaSKG/TtiFWEiBAgAABAgQIECBAgAABAgQIECBAgAABAlNWIGb+HDz/v486CTSRyZ9A2ygSQNHR9evXp1+ed176wqafrxIvn/rk36cjjzwirV69akjwdErydHotCskJoC0236y6B9CMGbs1Pp5y8skSQEPk/UCAAAECBAgQIECAAAECBAgQIECAAAECBAZLYLRJoIlO/oTiRpMAyiHzzjvvpD/edlvafcaMKgHzlS9vlZYsXpxfri7dFrNzYn1c0q1cRpsA+slPTk0ffvhhuWvb52YAtWWxkgABAgQIECBAgAABAgQIECBAgAABAgQIDIzASEmgyUj+BN5GlwDKEfPuu++ms886q0oCzZlzTHrvvfeqlzoleTq9FjtHImnzzf4pzdz/W+n111/PVTU+SgA10niBAAECBAgQIECAAAECBAgQIECAAAECBAgMjECZBNrr8v+QVqx7qOrbZCV/ovCNNgEUnV++fHmKewLFjJ9I7sTSKcmTX/vcZz+THn10YbV9+V8kfSL5E5eXu+NPfypfavtcAqgti5UECBAgQIAAAQIECBAgQIAAAQIECBAgQGDgBOpJoCsfOaq6P9BOF38sRSJoopeNIgF03333phdeeH7IZdk++OCDdNVVV1YzgE495ZT0/vvvV7Y5ydPuEnCxzUknnljtc9lllw0pLx+Ym268sUoAxf533nFHinryEpeFi3sOnXfeL9Jrr75alRNJIAsBAgQIECBAgAABAgQIECBAgAABAgQIECAw+AJlEigSP5OV/AnJjSIBdMbpp1fJlq2/+pU0Y8Zu1b94HsmXb3xjz/T888+3oqpTAig2WrBgQZXgiVk+O06fnnbbdZf0+9/Pb+0fSaKfn3tutU2Uv8Xmm7XqjOe5TgmgFpknBAgQIECAAAECBAgQIECAAAECBAgQIEBgoxEok0CTMfMnQ24UCaCFCxemQ2bPrpIxkYCJ5M2ee+yeLr/8N2n9+vXZonocKQEUCZ558+alaV/btkrmRFLnT3+6fUgZMdNn8eLH0+zZB6cvbPr5artNNvl02nuvvdJll16aXnnllWr7aEv8sxAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIbj0Akge575upJ7fBGkQCaVMFxFC4BNA48uxIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQKNAhJAjTST/4IE0OQbq4EAAQIECBAgQIAAAQIECBAgQIAAAQIECGyMAhJAG/CoSwBtQHxVEyBAgAABAgQIECBAgAABAgQIECBAgACBARaQANqAB1cCaAPiq5oAAQIECBAgQIAAAQIECBAgQIAAAQIECAywgATQBjy4EkAbEF/VBAgQIECAAAECBAgQIECAAAECBAgQIEBggAUkgDbgwZUA2oD4qiZAgAABAgQIECBAgAABAgQIECBAgAABAgMsIAG0AQ+uBNAGxFc1AQIECBAgQIAAAQIECBAgQIAAAQIECBAYYAEJoAE+uLpGgAABAgQIECBAgAABAgQIECBAgAABAgQIbJwCEkAb53HXawIECBAgQIAAAQIECBAgQIAAAQIECBAgQGCABSSABvjg6hoBAgQIECBAgAABAgQIECBAgAABAgQIECCwcQpIAG2cx12vCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAgQEW6NsE0L/78eMpGvc3xyypHusN9fMiLocw8D4QA2JADIgBMSAGxIAYEANiQAyIATEgBsSAGBADYkAMiAEx0BQDOccSOZeJXj7WbYHbXvR0leD47DlPSQJJdEh2iQExIAbEgBgQA2JADIgBMSAGxIAYEANiQAyIATEgBsSAGBADY4iBSP5EjiWSQ5Fzmeil6wTQ/avXpzwLqClzZb2sphgQA2JADIgBMSAGxIAYEANiQAyIATEgBsSAGBADYkAMiAExIAaaYyByLZFzmeil6wRQNCQaFFkpiaDmAyeo2YgBMSAGxIAYEANiQAyIATEgBsSAGBADYkAMiAExIAbEgBgQA/UYiNxK5FgmI/kTOZxxJYAmOhulPAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgfELSACN31AJBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG+EpAA6qvDoTEECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgfELSACN31AJBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG+EpAA6qvDoTEECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgfELSACN31AJBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG+EpAA6qvDoTEECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgfELSACN31AJBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG+EpAA6qvDoTEECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgfELSACN31AJBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG+EpAA6qvDoTEECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgfELSACN31AJBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG+EpAA6qvDoTEECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgfELSACN31AJBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG+EpAA6qvDoTEECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgfELSACN31AJBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG+EpAA6qvDoTEECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgfELSACN31AJBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG+EpAA6qvDoTEECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgfELSACN31AJBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG+EpAA6qvDoTEECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgfELSACN31AJ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KY1qBhAoAlNNQAJoqh0x7SVAgAABAgQIECBAgAABAgQIECBAgACBCRUwA2hCORXWJwISQH1yIDSDAAECBAgQIECAAAECBAgQIECAAAECBDaMgATQhnFX6+QKSABNrq/SCRAgQIAAAQIECBAgQIAAAQIECBAgQKDPBSSA+vwAaV5XAhJAXbHZiQABAgQIECBAgAABAgQIECBAgAABAgQGRUACaFCOpH6UAhJApYbnBAgQIECAAAECBAgQIECAAAECBAgQIECAAIEBEJAAGoCDqAsECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgVJAAqjU8JwAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgMAACEkADcBB1gQABAgQIECBAgAABAgQIECBAgAABAgQIECBQCkgAlRqeEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQGQEACaAAOoi4QIECAAAECBAgQIECAAAECBAgQIEDg/2fvXrykKO7///8JyZ+Sz+fkwueTRD1RvMSgLmZRLmtUlMiS+BMwwSQKKHcQATmgXLwk0RBQowQSiOtHAwJKgohABBGFuAvCwgrCLgJHqN95ld93p6a3e6Z3tnend3n2OevMznRXVz+qZsB6UdUIIIAAAqEAAVCowXMEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoB8IEAD1g0bkEhBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBUIAAKNTgOQIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCDQDwQIgPpBI3IJCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEAoQAAUavAcAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEOgHAgRA/aARuQQEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIBQgAAo1eI4AAggggAACCCCAAAIIIIAAAggggAACCCCAAAII9AMBAqB+0IhcAgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCAQChAAhRo8RwABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQT6gQABUD9oRC4BAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEAgFCIBCDZ4jgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAv1AgACoHzQil4AAAggg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BBBAAAEEEEAAAQQQQAABBBBAAAEEaiRw5MinbujQW933v/ddt2PHjk61sPev/+F17uOPP+70Pi8ggMClKUAAVMB2JwAqYKNQJQQQQAABBBBAAAEEEEAAAQQQQAABBGooYDN84vf3CWcIaaaQfmdDAAEEJEAAVMB+QABUwEahSggggAACCCCAAAIIIIAAAggggAACCNRQwO7xo1lAW7dujWqiGT+a+aMZQpoJFG7nzp1zGzZscKNG3e2+/a1v+iXihg8b6lavfsWdOXMm3DV63tLS7OY++qgb9KPr/f4DBnzHNTaOdm9u3BjtwxMEEOgbAgRABWwnAqACNgpVQgABBBBAAAEEEEAAAQQQQAABBBBAoMYC69ev96GMzQLSvX4emzvXv6YxxXBrb293kydN8u9dcfllbsTwYf5Hz//7v77hxo29z7W1tUWHaObQmjVrnAIfhUVD6utdQ8MIN7iuzu//+IIF0b48QQCBviFAAFTAdiIAKmCjUCUEEEAAAQQQQAABBBBAAAEEEEAAAQRqLPD5yZN+No4Cms2bN7s9e95311w90L+m92xTMDRnzmwf5CxburRkto9m/syb95gPdcIl4w4dOuRuGVLv6m660e3bt8+K8o+affT222+XvMYvCCBQfAECoAK2EQFQARuFKiGAAAIIIIAAAggggAACCCCAAAIIIFAAAS3FpgDowd/8xk2bOtU/jy/PtmPHDqel4hQCKQyKb62trX420NBbb3FHjx71b2/bts2HQja7KH4MvyOAQN8TIAAqYJsRABWwUagSAggggAACCCCAAAIIIIAAAggggAACBRA4ffq0GzdurA9rtJTb/ePHu46OjqhmWspt4cLHfTCkUCdpO3/+vJsy5REfEu3atdPvYvcSSpoBlFQGryGAQPEFCIAK2EYEQAVsFKqEAAIIIIAAAggggAACCCCAAAIIIIBAQQS2bt3qwxvN8tHzcPviiy+cZvEoHMryYyGRZgo98cRif4zuA/TIw5PdBx984C5cuBAWz3MEEOhDAgRABWwsAqACNgpVQgABBBBAAAEEEEAAAQQQQAABBBBAoCACJ06ccLc1NPgfPQ83C4C0TNyQ+nrX0DCi7I/NAFIZCns2bdrkj7PwSOd5a8sWgqAQmecI9BEBAqACNhQBUAEbhSohgAACCCCAAAIIIIAAAggggAACCCBQEIEsAdB1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R0u5Zd20r45h6besYuyHAAIIIIAAAggggAACCCCAAAJdESAA6ooW+yKAAAIIIIAAAgkCusePlnBTmPP4gnlu+zudl7m0wxT8LF/21f2DdEyl+wPZcTwigAACCCCAAAIIIIAAAggggAACXREgAOqKFvsigAACCCCAAAIpArp/z7KlXwU7CoL0M3P6NB8IKfDRc5vxY7N+unPvoJRq8DICCCCAAAIIIIAAAggggAACCCDgBQiA6AgIIIAAAggggECOAgqCdD+fGdOnRrOCFPiMH3efWzB/np/xQ/CTIzhFIYAAAggggAACCCCAAAIIIIBAogABUCILLyKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACfVeAAKjvth01RwABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQSBQiAEll4EQEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBDouwIEQH237ag5AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIJAoQACUyMKLCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEDfFSAA6rttR80RQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgUQBAqBEFl5EAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBPquAAFQ3207ao4AAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIJAoQACWy8CICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0HcFCID6bttRcwQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAgUYAAKJGFFxFAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBvitAANR3246aI4AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAKJAgRAiSy8iAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgj0XQECoL7bdtQcAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEgUIABKZOFFBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQKDvChAA9d22o+YIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQKIAAVAiCy8igAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAn1XgACo77YdNUcAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEgUIgBJZeBEBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQ6LsCBEB9t+2oOQIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCQKFB1ALRt2zbHDwb0AfoAfYA+QB+gD9AH6AP0AfoAfYA+QB+gD9AH6AP0AfoAfYA+QB+gD9AHut8HElOcbrxIAESQRZBHH6AP0AfoA/QB+gB9gD5AH6AP0AfoA/QB+gB9gD5AH6AP0AfoA/QB+kCN+0A3sp7EQ6sOgBJL40UEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIGaCxAA1bwJqAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkK8AAVC+npSGAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCNRcgACo5k1ABRBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBfAUIgPL1pDQEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoOYCBEA1bwIqgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgjkK0AAlK8npSGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACNRcgAKp5E1ABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCBfAQKgfD0pDQEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBCouQABUM2bgAoggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAvkKEADl60lpCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEDNBQiAat4EVAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQyFeAAChfT0pDAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBGouQABU8yagAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAvgIEQPl6UhoCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggUHMBAqCaNwEVQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQTyFSAAyteT0hBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBmgsQANW8CagAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIJCvAAFQvp6UhgACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgjUXIAAqOZNQAUQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgXwFCIDy9aQ0BBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQKDmAgRANW8CKpBV4PDhw27UqLvdz8aMcW1tbVkPYz8EchP44osv3K9//St3/Q+vcx9//HFJua+88rL77//6htMjGwIIIIAAAggggAACCCCAAAIIIIAAAgggUGsBAqBat8AlfP4LFy647dvfcQ9PnuwG/eh6P3iuAfQrLr/M3TXyTvfn1avdl19+GQlt3rw52mfbtm3R60V/8viCBVG9169f36XqdnR0uPvHj/fH39bQ4E6cONGl49m5ssCqlSu974jhw1xra2vZAwiAyvLwJgIIIIAAAggggAACCCCAAAIIIIAAAggUSIAAqECNcSlV5eTJk27iQw9GwYiCn/iPZlpowN22cjOA2tvb3YoVK9z8+fNKjrFja/kYBkAKcxTqZN0Uen37W98kAMoK1sX9Pj950v101Kio7zU1NZUtgQCoLA9vIoAAAggggAACCCCAAAIIIIAAAggggECBBAiACtQYl0pVzp0756ZNneoH3Ufeead77733Smb6nD9/3u3YscP99tlnM4c5Wo5Ly3LFQ6MimFoApFlO3//ed93WrVszVUtOmh31v/8zwIdAzADKxNalnSxgmzDhl+66a6/13nJP2wiA0mR4HQEEEEAAAQQQQAABBBBAAAEEEEAAAQSKJkAAVLQWuQTqs3fPHnfVlT9wQ+rr3ZEjn+ZyxX0hAFLopdk8CnXKhQwGohBMgdEv7h/vht56iyMAMpl8HrW84GNz53rjTZs2ucbR97hrrh7o9u3bl3oCAqBUGt5AAAEEEEAAAQQQQAABBBBAAAEEEEAAgYIJEAAVrEEuhero/j1a7i3P2Tp9IQB6+qmn/HJjlUIG9YEwnNC9kG4eXEcAlPOHo7m52dXddKMbN/Y+19HR7uxeQE8tX556JgKgVBreQAABBBBAAAEEEEAAAQQQQAABBBBAAIGCCRAAFaxBLoXqvPvudj8TpqszgE6cOOFDkHAmzCuvvBzdvyV+DyEtCadgKNw082bDhg1u1Ki7o3vrDB821K1e/Yo7c+ZMuGv0vO34cbds2VJ3y5B6fy7N4rn9J7c5BTMKaipttgSc6mr1XbxoUdljNQtFQZHuGbR71y6/vF143XbOixcvupaWZrfkySedrsPuF6Tl5hYvXuRU9/gWd9Q+mgkz8Kor/fUpFHn++efc2bNn44e6as5nhRw6dMgtXPi4U93UVldcfpmbMuURp3s7WSgoq6TtwoULbvv2d/xsqAEDvhPVU8sE6nqq2awtFPxoM3PdE0j3BkraCICSVHgNAQQQQAABBBBAAAEEEEAAAQQQQAABBIooQABUwFaxgel4oNEbv2sgvqc3Da43No72g/i/emBCYkiRVId4cKF9ml591TU0jPDLySn8UKgwYvgw/9qYxkb3ySefREW1t7e7yZMmReGD9tOPjpGtZoK0tbVF++uJ7tdjwcjgurqSc2WdwRQGQK2trf6cClk0AyVpU8iyfPkyH+boHjU2uykpALL3VH8FK7IIr+nuu0a6Y8eOlZwmdPznP/7hZ8HoGnWsrtH62aRJEzvdg6ma88Ud7VxDh97qFOZY4KTzJgVACu0UcKl9tb+OU12tXfT84MEDJddY6ZeOjg4froUhoc6j5fl0HrknbQRASSq8hgACCCCAAAIIIIAAAggggAACCCCAAAJFFCAAKmCr9PcASOT79+/3A/8a9NdA/gurVqXOwLEmCoOL+KwPCybSQhnN1JkzZ7Yf3F+2dGnJuTTzZ968x3zw8czTT/tZLjrn6dOn3c/GjPEB0ZYtm6PX7T2FQ1nu5RMGQAp3dA5dt808seuzRwVD9T++2S8Xp7DMri0pADp48KAvT/dSUtm2Kex68De/8eeJL2lmjgq+brxhkJ+VZDOZVIauVe/p/kO6D1G4VXO+AwcO+LZWeKN2Ds1Uz1kzZ0ahUzwAUn1WrFjh358+bVpJWKhyVq78o29T3V8pLDesc9Jzu79S/H5M69ev9+fSzKTz5893OpQAqBMJLyCAAAIIIIAAAggggAACCCCAAAIIIIBAQQUIgArYMBYAaQB+xozp7oknFvfoj2Z62KyP3pgBZORa+mvcuLHRuSsFQRZcJAUhFpKkBUA24K8QyMIOq4cebWbO0FtvcUePHvVvWZlJ5wuPrfQ8DIC0r9175q6Rd7rjCUu02b1o1A+0VVsPtaVms8RNzFFtHgZedh0KXTQDSe9rqbqsW9L5wrKSzqWyNRtHM8F0vngAZFbqJwrk4pvN5Lnqyh+4vXv2xN9O/F110lJ0Op8Cn3BraWnx91tKm6FFABRq8RwBBBBAAAEEEEAAAQQQQAABBBBAAAEEiixAAFTA1rEAKFyeqierqYF7DYbrpzcDIF2TBuP37Hnf3Xvvz6M6aFbKO++8UzKjRftacJEUyFhIEg877Bwa8FcYknZ9mu2hWR8K3Xbt2um5P/vsM3+vH82Gic8A8jtk/E88AFIApXvuJAUQFkRpGTc912bXlnTd5aqQdpw5lgtN3ty40dcvbSZM0nmTzqcZTHfccbu/h5HeT9vWrl3rzxcPgOyzYGFY0vGa4STLpqampLc7vWbGYdhnO4VtkzRDiwDIpHhEAAEEEEAAAQQQQAABBBBAAAEEEEAAgaILEAAVsIVs0PtSCICMPx4EabmwNWvWlIRAFlwkBSEWPiQFQDZobyFXpUcLiVSn1atf8cGRwiPNQtF7STOI7DqSHuMBkPbZt2+fu+bqgf4+NJrFYpstQRbOlrFrS7puHad6Kqx6+623nMKQ6dOnldwHKH5cOUerh65TTkmeXTmf1b1x9D3u1KlTVnynRztfPAAyu0ptpvfLhUThCc1YIVxSW+r+P2rvpDpbX0r6bNrnNms9wjrxHAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQyFuAAChv0RzKs4HkpEHmHIrvVIQNvmsQXc9ruWlAXjMvNAAfv/5ywVSFHLgAACAASURBVIUFDUmBhQ3aq8wh9fWuoWFE2R+bASQHhR27d+/29+OxEEIzlNatW5f5njMWYoTBgO5Xo/vPqE4KHLRptkxj42h/vxwtfWabXVs8yNH7bW1tfvk0lWP104wlzSBSWZrRFD+unKOd0/pE3LOr57O6x8ux89ijnS8tABpcV1e2zdSmTa++asWlPlpfMKtyj0n3QLLj431TJ7TPbdjOqRXhDQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoIcFCIB6GLia4m0gOWmQuZryKh1jg+8aDK91AKS6Wjii+vzppZei6pcLLsoFDTZof92117r9+/dH5XXliYKglpZmt2D+fKfZSaqbnquulbakAEjH2H2JFASpHJt5Ep+ZYtcWD3LsuhT+TJ82zR08eNBpKTvb0o4r52jHWp8Ig5tqzmd1eGDCBHfmzBkrvtPj1q1bvWlaAKT389hs5lW54Cd8L94WZpD02bTPLQFQHi1FGQgggAACCCCAAAIIIIAAAggggAACCCDQXQECoO4K9sDxNpCcNMjcA6fzoY8NehchANI1WmiyeNGi6JLLBRcWNISBhR2oWUWzZ83yAUPW+8TYsUmPChHqbrqx5H5BSfvZa3Yt8WBAS7/dP368Xwpu965dfkaQloXTPZHCza4tHgBpppJmqSRds45X2KXQK35cOUc7b1IAVM35Wlpa3M2D61zS/XbsXHr8w/PPJwZA9rqWtuvuphBv+fJl/jx61O9pmwVFqruuwTYCIJPgEQEEEEAAAQQQQAABBBBAAAEEEEAAAQSKLkAAVMAW6u8B0JsbN5adiWPBiEKptWvXRi1ULriwkCTpvi0qQMGPytN9fE6fPh2VWc0TBQfz5j3my8sSmKUFQL5er77ql4H76ahRPgiy2UBhveza4kGOhTSqSzzM0O8rVqzwdYwfV87Rzmtlh+GSvdaV81lgIvuXX365Uz11vtbWVnfHHbf7usZnAFnoNHTore7IkU+telU96j5Jt//ktkzBXdgHdc8g2+x6ksJZ+9zGgz47lkcEEEAAAQQQQAABBBBAAAEEEEAAAQQQQKA3BQiAelM747lsIDlpkDljEV3azQb2NUiv5z296fq0jJqWUNOyZZqho02hhQb5Z86c4UOR+KB/ueDi6NGjfpZJ0gwalW3319E1arm0tuPHSy7z7Nmz7vXX/8+99tpr0esKJuQRLqumN1VHBRY6l2aKaNM1LF2yxF17zdUuvlxZuQBI9VL4o3ppNk/8WJWdFgDt3bPHXXXlD/xsJKuH9r9w4YK/loFXXekd8wqAqj2fAj8tU6d7E8lY9bNNluPG3udnCckgHgBpabxpU6d6n3vv/blfhs+O1aPc//mPf7gXVq2KXk5rC1tiT+fr6GiP9k97ouBHddIsLQVC2giA0rR4HQEEEEAAAQQQQAABBBBAAAEEEEAAAQSKJkAAVLQWCW4m318DoE2bNvkwQIPraT833jDIvfvu9pLWKRcAadBf92tReQoaRgwf5oOVAwcORGV89NFHrv7HN/t9FEgMqa93DQ0j/KN+17HhjCMLXhRWKYzSvnrU79r/xRdfiMIrq5vKmDxpUsm9gcoFQKrcqpUr/bnDoCGqdJkASOHIrJkzO12Pgh8tUacAQ30orwCo2vNZIGPGg350fYn7xIcedBs3bvDXEQ+A5HDs2DHX2Djavy/fwXV1JW2h15KWCgzbQnXX7Cq9Ju8smy1fp2BOM5G0EQBlkWMfBBBAAAEEEEAAAQQQQAABBBBAAAEEECiCAAFQEVohVof+PgNIl6vAZOXKP/qBfQUqGphXcHHvz3/m1qxZ486cORNT+eoYhRnxQMN2PHnypHv00TlRuHT3XSPd4cOH7W3/qHKfe+737pYh9VGgoEBC4cD27e+UzE5pb293v//d79zwYUN94GN11L66T0+47JqFHF2dAaRKaaaRwqWmV18tqav9YkFU0nVr5tJLL70YXY/CrylTHvEzZdKOs7AqqTw7p80KC5eA03vVnE/HadbPW1u2lLS3XNetW+fDMjtfUgCk4xXgaF8t4WZBkvqLQrNNb75ZErgltUVzc7MPxcJZW3ataY9hqGj3DCIAStPidQQQQAABBBBAAAEEEEAAAQQQQAABBBAomgABUNFa5BKYAVRAcqpUYwELPZ9avrzGNeH0CCCAAAIIIIAAAggggAACCCCAAAIIIIBA/xAgACpgO9pgeH9dAq6A5FSphgKaaTN71iw/I6upqamGNeHUCCCAAAIIIIAAAggggAACCCCAAAIIIIBA/xEgACpgWxIAFbBRqFKPCWg5PS3NpvsWaak2NgQQQAABBBBAAAEEEEAAAQQQQACBrwT0D2d172PdmmDa1Kkly+AnGekWA1o+P76sf9K+vIYAAv1fgACogG1MAFTARqFKVQu89957btmypf5eR+F9k3RfIN2/RzPd9JeYFStWlNxXqeoTciACCCCAAAIIIIAAAggggAACCCDQjwT0D2brf3yzv+/1zp07U6/s+PHj7q6Rd1bcL7UA3kAAgX4nQABUwCYlACpgo1ClqgW2bdvmAx6FPAOvutI1NIxwI4YP838Z0Wv6VykLFz7uzp49W/U5OBABBBBAAAEEEEAAAQQQQAABBBDorwL6B7XPPP20H195ePLk1FlAq1au9PvMmTPbaeYQGwIIIEAAVMA+QABUwEahSlULKNh5c+NGd//48T4AUuijn8F1dW7uo4+6/R9+yMyfqnU5EAEEEEAAAQQQQAABBBBAAAEELgWBI0c+dUOH3uq+/73vuh07dnS6ZHu/t+4p3qkCvIAAAoUUIAAqYLMQABWwUagSAggggAACCCCAAAIIIIAAAggggAACNRSwGT7x+/uEM4Q0Uyhcgr+G1eXUCCBQAAECoAI0QrwKBEBxEX5HAAEEEEAAAQQQQAABBBBAAAEEEEDg0hawe/xoFtDWrVsjjI8//tjfY1kzhDQTKNzOnTvnNmzY4EaNutsvw69VWYYPG+pWr37FnTlzJtw1et7S0uxXbRn0o+v9Ki4DBnzHNTaO9iu8RDvxBAEE+oQAAVABm4kAqICNQpUQQAABBBBAAAEEEEAAAQQQQAABBBCoscD69et9KGOzgHSvn8fmzvWvaUwx3Nrb293kSZP8e1dcfpm/J3N4X+ZxY+9zbW1t0SGaObRmzRqnwEf3bB5SX+/v5axl/BUcPb5gQbQvTxBAoG8IEAAVsJ0IgArYKFQJAQQQQAABBBBAAAEEEEAAAQQQQACBGgt8fvKkn42jgGbz5s1uz5733TVXD/Sv6T3bFAzNmTPbBznLli4tme2jmT/z5j3mQ51wybhDhw65W4bUu7qbbnT79u2zovyjZh+9/fbbJa/xCwIIFF+AAKiAbUQAVMBGoUoIIIAAAggggAACCCCAAAIIIIAAAggUQODNjRt9sPPgb37jpk2d6p/rtXDbsWOH01JxCoEUBsW31tZWPyNo6K23uKNHj/q3t23b5kMhm10UP4bfEUCg7wkQABWwzQiACtgoVAkBBBBAAAEEEEAAAQQQQAABBBBAAIECCJw+fdqNGzfWhzVamu3+8eNdR0dHVDMt5bZw4eM+GFKok7SdP3/eTZnyiA+Jdu3a6XexewklzQBKKoPXEECg+AIEQAVsIwKgAjYKVUIAAQQQQAABBBBAAAEEEEAAAQQQQKAgAlu3bvXhjWb56Hm4ffHFF06zeBQOZfmxkEgzhZ54YrE/RvcBeuThye6DDz5wFy5cCIvnOQII9CEBAqACNhYBUAEbhSohgAACCCCAAAIIIIAAAggggAACCCBQEIETJ0642xoa/I+eh5sFQLpP0JD6etfQMKLsj80AUhkKezZt2uSPs/BI53lryxaCoBCZ5wj0EQECoAI2FAFQARuFKiGAAAIIIIAAAggggAACCCCAAAIIIFAQgSwB0HXXXuv2799fVY0VBGn2z6RJE/1ScgqTVq78o9PycmwIINB3BAiACthWBEAFbBSqhAACCCCAAAIIIHDJCRw7dsy9+rf1bub0aa7xnlHu9ttG+B8912t6T/uwIYAAAggggAACvS1QLgDSUm6zZ83yS7k1NTV1q2oKfLZs2eyuuPwyd/PgOtfS0tKt8jgYAQR6V4AAqHe9M53NAiCt4TljxnS/9qbW3+ypHyX5NqXT1vzMVFF2uqQE0v5ioRsPal3Z+h/f7A4ePHhJmdjFptnY+915tO8DPXZ3syng1//wOqcbO/bVbePGDe7aa652y5cvc/pLLVsxBar9XKT1+b7W7ocPH3ajRt3tfjZmjGtraytkI5X7TtDfB/R3g8cXLOiRuvcFnx65cOdcOfe0/t9TdelquZfSn/m6ifLyZUuiwGf0PaPcjOlT3bKlS9yC+fP8c71mgZD2JQjqao9ifwQQQAABBBDojkCl/+dS8KO/048bN9bp73Hd2c6cOeMemDDB9fXxhO4YcCwCfVWAAKiALWf/82+hTG8+1iIA0r8kaGlpdkuefNKvW6qbzNk1D66rcw9Pnuy2/fOfDPTWuK+m/cVi37597pqrB/o2yyOkqPFlVnX6NJuqCosdZN8HediWG3SMnbawv2oK+pw5s31/0xrEsmcrpkC1n4ukPt8X233z5s3Rn2W1+LM1S68o953Q0wFQX/DJYljNPuXck/p/NefoqWMulT/z39y4MZrto8Dn3/9O/wcue/a87wMhBUGaFaQZQWwIIIAAAggggEBvCFT6f67PT550jY2j/f+XTJ82zbUdP15SrbNnz7rXX/8/99prr0Wvf/LJJ273rl2dxuD27t3rw58Rw4e51tbWaH+eIIBA8QUIgArYRvY//xaC9OZjbw9SnTx50s2cOcOvJVruOjXDRAMmRd2OHz/uA6xnnnm6qFXsdr3S/mJR7l8Da3aGpglPnPhQv54dlGbTbXTnnH0f6LG7W7lBx2rLbm9vdytWrHDz58/rtc9ouZkgl8Jnsdq26u3jqv1cpPX5cu3elWvrrT7SF2a4lPtO6OkAqJxPf/+zo5x7Wv/vSh/vzr6VvtPL/ZnfnfMW6diX//SSn9Uzftx9ZYOfeJ0VEtmMIM0GYkMAAQQQQAABBHpaIMv/c3300Ud+xRaNuekePkPq611Dwwj/qN/1+tq1a6Oq2v8HaLk3hT3hvnpN/1/GhgACfUuAAKhvtVe/qu3Bgwf8HyT6w+bGGwa51atfcfrXCeF26tQp9/c33nCLFy3qtcHl8PxZn9sfkD21VE7WevTkfln+YhE/f7lBrvi+ffn3amyyXm+eg4E90R5aSk5TwIsS0l4Kn8WsfafW+1X7ucizzycZ0Ef+o1LuO6GWTuXq9Z/a991n5a6vp/t/JbWifadXqm/e72vmj2byPPTgr52WgOvqpmN0rMpQWWwIIIAAAggggEBPCmT9fy4t3/bcc793twypj1YpGPSj6/2KO9u3v+O04oJt+gdzCxc+7rQij/1Dbe0799FH/eo9th+PCCDQdwQIgPpOW/WrmmqN9LvvGun/MJk8aZLTvzjty1stB8p6yy3rXyzC+pQb5Ar36+vPq7HJes15Dgb2RHsUbbDwUvgsZu07td6v2s9Fnn0+yYA+8h+Vct8JtXQqV6//1L7vPit3fT3d/yupFe07vVJ983xf4Y2WcNPMn2rCH6uLjtVMIJXVnXKsPB4RQAABBBBAAAEEEEAAge4IEAB1R49jqxLQ0i6a0aN/STDxoQf7xf8c13KgrKpGqOKgagZzyw1yVVGFwh5SjU3Wi8lzMLAn2qNog4WXwmcxa9+p9X7Vfi7y7PNJBvSR/6iU+06opVO5ev2n9n33Wbnr6+n+X0mtaN/pleqb5/u6149m7uiePuU2zeypNLtHy8GpLJXJhgACCCCAAAIIIIAAAgjUUoAAqJb6l+i5m5ubXd1NN7prrh5Y8X+yk4jiAye6j8Av7h/v1zLVrKJwGTlNY9V0Vr0/YMB3fOikc//22WdTbx6v9e3XrFnjxjQ2Oq1vqqBKjxMm/NLX9+LFi1G1tOSbTYmNPybdoP7cuXNuw4YNbtSou6P7Hg0fNtQvf6cpuXlt1Vy3zq36rVu3zt3+k9t8/bQerOq6detW99lnnzldU/y64u2hcmwAKW5iv2uAqztbV9pI54nXUdbPPP200zRm1WngVVe6xYsXOd2TKm2rxiatrPjrLS3NbuqUKb4e8fpUGgzUILv6s/q1jlU/V3+PT+PWOeMO8Xro96zlWb2sTcNHLQmnPhBuefb9pIHprn4Ws16nXYNdrx51LX9evToyl71+1+vadCPN559/Lnpf/euxuXM73XDTytaNOJctWxpNx9fnTp9BlanAPOvWXz4XoXV47Untbu/L/m9/W+9vcGrf9fp8L5g/P/qu70ofyaNN0gKw+Oewmu8ju+74Y3f7QFheOe9wv/jzLG2hY5J8uvpnR7V/1sXrHP6uP+P3f/ih/062PyPUp3TzXN0cN/6ZtDo8MGFC9B1u+6tP2vdCeI54HwjfS+v/tk9Xv7vsuEOHDpUs5WHfMy+sWuXraOcNv8vtefidXq7udi6ro/5+Y+vKV1o2JOxvaoPdu3e7e+/9uf8zLfy7SPh3MDufHvXnqJYlibdZpaDGytDMdAU2C+bPs5dSH2dMn+r0U2mzQIlZQJWkeB8BBBBAAAEEEEAAAQR6UoAAqCd1KTtRoKmpyQ9UV3vPkHDw4e23346WktNARRhOaNBlyZNP+sEHDcYMHXqrv+eQBmO1r25kp/sQhZuVrffDG97ZgIJeUxhi27PPPuPLsbVRVbbK1Y8Gg8IwSsvcabm7sGzdUM9CpnFj73NtbW1WdNWP1Vy3TqZzqw6qX9xLgy9PLV/ubwD4/7N3Jl5WFfe+/5feeyvJ9d6oyYrzVTSojTIZBe0oRp6C9+EUmXEARHSJMsRZERyQC14QCLkojWIEEYwoAZlaZFRklhVTb30r93dSp7r2PvucPt3ndPen1mr3PnvX8KtP1d4Hf9/zqwoZq5wxCx1Ee/bs8QKa9U/lbaNBsVm5YkXN/bP2Qo6qM2uMYhttztj4yi5zUP22tTU5BrWyqdRJObKWL19emgPqg/piNknQfPrpWX5M5JyL07Zt20qbOcZl1acXX3ihzFlp7MKxCuuspj6NYWir8dQ1iaeaA5bqPfdDR6G1Uc2zWE0/rX5zjkrYmTB+nHf0hv3XfNRYff/99z6y0Z4hvXd0rvup+aX3ib2T9B4J66zmHWlj2xueC2Mdz/nUuGt85LiVc159t3ewvXvCuV50jtRrTFICh+y1sZJttbyPbE7GR6u31jkQi7ZZvON2w89Fx0JlUnyq+e6o9bsutDc+l3ir9c7tOyF+r8bPZPhuE/f4GdY1zU1xCZONVTg/7X7W/Nf9Wt5dEqzeeOP10nvInhF7N9l3etF3ep7t+k778IMPSu+08HvB3nN6H+pHNrGQY/NNoq32hNQYGE8rq2sqGybVo2uqV/ft3xr277KiezO+u3yZF4A2fPxxWH2nzi0KqKgI1anGKAwBCEAAAhCAAAQgAAEIQCCDAAJQBhgudx0B+xX2q6+8UlMjofNBS8hNmTzZHTx4sKwuOQTmz5/vHYK6r19zW5LTaMGC17yjYPKkSWW/zlXdz/7hD+6zLVvKHOf6he+iRYt8mRG33eqOHTtm1fmjOS6yHA1ywEyd+qgvP3fOHBdG++h8xozHvK2KSomdImUNVfhQa7/FRCzkrBLTkJf6vnr1H0sihTmLzJRwPGIHYt49K1/tsZYxMjvOO/fn7qor+3lHvRx9luRUswgaCTJh6gybsJ7U+ebNmz1XObf+tHp12caLGoN77xnjx0TjEjvD9+//xouaciCuff/9srK7d+92N910o69bbVgyDimnYy31qV77xX7sGLU2u2Lu5z1vefdkU639NKesHMKPPPxwad8yPXMf//nPPqJRUY2/u/12z15jYElt2p5nCxcssMtO0RrKLyfpunVtZc++7kmI0PwrknrTc2Gs4zmfNbaKgNMzoqVFQ16ae5s2bXL79+8vQ5hVjzLVc0xSAofasOewlvdRWUeiD52ZA6l3Qh6nqOnSx2rGIouPKjNGKbt0v9bvupKhiRPNlzmzZ/u5JCFWESjh97HeyZqTsk0p/G5QpIoiUMKk/Po+1dwcO/bBUjnlyetf1vyv9d0lcUTCSOq7Qv/+WPTWW2U/Vqn0Ts+z3b7T9E5TP8LnUf+W0Pecvu90X/MrTDbfZKcE3C+++KLEX/XY0sES0sMf1yiySZsZ6ztc3+Vh0gbGElmLJEX0aN+eIqnIEnBWj+osElVk+TlCAAIQgAAEIAABCEAAAhCoNwEEoHoTpb5cAuY4SDm0cwsGN8M6Ro26yzvsgtv+1JaZy7qv5TjuHj3aXXjBr9wXW7fGxZOftQSalmVKOaTMcZElAMkJKWefRCA5meIkAUsOj4HXX+cOHDgQ3y78udZ+m336pXLoWLGG5QSTAKZxa7QAZDaljlljFM6ZWPSzeiT8qH9y2IVOq86wsbpTR7Uxftw475jLiojSvJCQEz8vGo958+b6slm/LG5ra/P3H33kkdKcMw7xHK61PvWrkrPQ+NVz7uc9b3n3OtNPc8rqV/NyxIbJ6tU46TlXn+Nk82vixAnu7Nmz/raxi5+puGxnP/ek50J9NdY6hik1tjanxV73i6RUPVaunmOSJXCENlf7PjI7qz1WmgPxO0H153FKtR/2q8hYZPFR3VZXyi7dr/W7LmW3XZN4IBFXQsL27dvtcubR3m0Sd+MIHyuk71N9r0qA0TvZUl7/UvPf3jGqp5p3vv3bQoJLGL1sdqSO9gxkifpZtoffaYrgkc2ppO879UP/BguXRrP5JlvDHy5YHWIp8UdlP/lko10uzdMse0sZK5xIqCmyrJuqKboEnOW9e9RdFVrnNgQgAAEIQAACEIAABCAAga4jgADUdWypOUHAHAexQzuRNfNSkTpSDpS4Qi1pJju0JF2RFLYbO7fMcZESgOQEsSVl4nLWrhzCcgzLebxlyz8jNux+0WOt/bZf1sbRL2G7u3btclf269fUAlDWGIXXs5xnEgIlCMYRXp1hE/KLz41n/GvmOJ+1HzrDzZkrQVLnqdTe3u6uubp/WX+MQ+xUrbU+tZvnLOyquZ/3vOXd60w/7dlStF7Ksal5pfeJllE8efJEhyGx+RU6Kc0eOTzjCKAOFXTigo17LJKE15vluVA3jXU453U9NbY2x9Q3PSuheJuFLFWP5a3nmGQJHJ3hbnZWewzbVP8t2fX4naD7eZysfHisdiyy+KjOPLt0P2uOhPZU+x1v+cMovbC+8Dzsa973Zmir5qelvP6l+mbzstp3vi25qz3IUj8+MXvCY947XfmybLdylb7TrC/694S+By3ZfMt6h8p+/aAh/nebtZuKALK6ixy1/4/27CmSqhGAbB+gIvWSBwIQgAAEIAABCEAAAhCAQFcQQADqCqrUmUnAhA79D3zs3MssFN0w50OeWGLLzKmdSn8pO9TGX/7yF79UnOpqbb2ltMeM6gsdaDLPHBcpAcjsrWSH3Y/rjrqf+7GWfpt9laKhspx1Vj7lQMy7l9uRAjdVd9ExKmKHOZHCaAwrVyubvG7YnAkjdFL5U85As9XmTN4x1Z94rGqtT/Za2VDYsH4Yvzz7wntF576xSz1veffM1rDNrPOQm/qTGgfrp47WbpZAZG2HnOREtr0u9Kt2RSyqnqKO2rB9O+/pz4X6kcXaGMfjrmgNW8JR+3+IqZZyy0pZ9Sh/Pceklnem2WzzJZ6Hdj/vWK85kMcpq/1qxiKLj+q2d0f8rrJ2a/mus7Kpo7WX9++KsJzlr/TdoDLGMXz2rXyqf6n5b/Mh630VXg/njHEq+kMX2Wtthfam+h7bbv2s9J1mfZfNKmPJysfPt93X0fojRpb0vrS98rQPkPZo+/LLL8uWRbW8eceuEoC0/JvqJkEAAhCAAAQgAAEIQAACEGgUAQSgRpHvw+3ar2wrOQmyEJnzIHY+hPnNSWAbCGs9/6y/cPktORK0ybt+kW8OFTlm5VS89betfv+Y2GmhdvMcF2av1ZNlh13vTARQLf02+/J4qo9Zzrq88nn3wvGq5ryWMSpihzm9QudZkXJ5bPL6lTdnwnJ5zkDNUy0daHMndbxnzJjSsn5Z/bG+V1uf7LSyKWehtVfvuZ/HLu+e2VpLP1PjEI5TXrt5nCQ4aK8R/Wre3jnap2rZsmWFolnMht7yXKg/WazzGGu/FS0zKAewOOqoyEtdj1NePcpbrzGp5Z1pttpcDd9Hdi/rWO85UIlTlh1FxyKLj+q1d0fW91It33VZ9hZpLy5byb4wv41l+I7MK5+a/1ZHte8u46SxLJqsrdDesGyW7dXMl5RdRcpbOTEKk/YXWrt2rf+3mr1H9ex8sG5dYSGoK5eAK7q3UNgnziEAAQhAAAIQgAAEIAABCNSLAAJQvUhST2EC+p98OYRTe2kUqSTL+RCWNSdB0TXvraw5XoYPG+bXyw+XcrJ2axWALrv00kL7CpgttRxr6bf1q5J9R44c8WJD7JC08ilHXd69WvqnMrWMURE7zOkV9s/K1comr4/m7MqKGLGyb735pndohw4vs1XijjbxLpqsP/FY1Vqf2rWyKWehtVeJX1H7LZ+x03yPU949s7VabmrD5l04DmHbee0qn7Wd4qT7Eh20ifzMxx8viRg6L7KkWWhfNe8uG594PoT9Mru767kI+xKzrsRYZRX5owggiWh6V99042/cvn37wi7lCvZhxs6OSZbAUSv30LbUuc3Res2BIrxTdti1SmORxUflKzGq5bvO7Eodrb2i7yrLXyQCSPvV6N884f5yVj717Nk4hvPfnsNq3121cLK2st5VWbbbfKn04x6908RCTFJ7+aTe6zZm1p+Qjd3TUUKQon/Gjn3Q1682Fix4LblsZ1hO51rWbcStrfHl5OdqloBT9I/ykyAAAQhAAAIQgAAEIAABCDSKAAJQo8j3BJXP7wAAIABJREFU4XZtU2Q557Rsh361XE3Kcj6Edbz6yive+adoo6Lp2LFjfr+UlENGdcjRLudLtQKQ+ieHiMpVswxLUbvDfLX0O1yWL2sfELVhe5iEjmBdzxuPvHuh3UXPax2jInaY0yvsX2fZ5PVLkV5abihrvwOVDedO6PA6cOCAG3j9dX6PH+31UzRlcai1PrVr3FLOwtD+es59czSmHIV59zrTz5RTNuSe124lTmE9Otdm9FrSrOhyVL3puVD/s1hXYhxyPHHihHvg/vuT3wPV1GN1VjsmKpclcGQ9h9aWjvZche+j8H583hVzoBZOsV36nDUWWXxUphKjWr7rUrbZtfBdVWlPH5WpJr/N5/DfI3n9s/w6Wqr13WWc5s2bW0gEUXs291LvdN3Pst3+jVB0DyDtURd+fxWZb5UEIOMl8Vb7qiliKm7H8sTHd5cv80u17d79z32J4jz2uagAtOHjj32dqpsEAQhAAAIQgAAEIAABCECgUQQQgBpFvo+3q/8xl3NTv87UhstyphRNWc6HsLw516uJMjJnlJbUUrRLnLZu/dxdcvFFuQLQxIkTnESDONlGzNrjI29virhctZ9r6bfaMIfTvfeMcSdPnuzQrMZHyylJxIodknnjYfeKOrI7NBxdqHWMzI4scU/NmNMr7l9n2ETml320jbDFRs9DKm3/61+dbBb30BkYClPz588v7NjL4lBrfbLZuI247VYnJ3ScumLu5zkK7V7qWexMP20ehOMQ9tXaTYlSIacsp2pYl5yXigxLic1hPjvvTc+F+pTFuhJj42FHRYCKYTwmVk9qjljZ+FjtmKi8jUv8Tsl6DsM27bmKy4Z5wnNrq9rvrzxbjFPML2y36HlqLMzmVB/Nrqzvjlq/6/LsbWtr8/8mueXm4e7QoUN5Wf29IvntBy8SIjZv3lyq0/qX+k5Kzf9a310SLvXvFgnK2p+pSLK5l/VOz7Jd/3a4e/Roz1BReHpmUknL7urffpMnTSqLcCwy34oKQGrXfrSTYpyyS2NedB+gogKQ7f9TZD6lbOIaBCAAAQhAAAIQgAAEIACBehBAAKoHReqomoAEBQk/cgLIQTdy5B3u4z//uUw8kfNATnI5kGc99ZT/1akaynI+hEZoiRE5F6xuLa0UJrX/548+cq8vXFi6rOXeFI0hmxYtWlS2bvzu3budltX5t389J+mUtV++ZglO5gSSPVMmT+6wL8WZM2fc6tV/dKtWrSrZY8ukFHVeqGAt/Va5/fu/8UvyyT45nsNlxWTbc88+6/pdcbn/NW3srMsbD3G26KeUULFr1y53Zb9+rohTXHbWOkZ5Nhpwc3rF/esMG6s7ddT8FhMxl3Pu008/LTnMdO+vf93mbvzNDU77WClPLDzImSinov50T2MfpsOHD7uXX37JibGlPA611Kd67ZfpcjJKJI1TLXM/riP+nOcorPQs1trPlFM2tCvPJuWz+RXO9YMHD/rlyOTcDZPm3E033egdt3LgVkq96blQX7NYpxiLnQRUzbMw6Xl44omZ/tnRd02Y8uZIvcZE7WUJHHnPodlp8yV+H9n9+NgVcyDFO243/FztWGTxUZ2Vvjtq/a4L7Y3PJWBoaTK9b/VvkvjfDZobmpsaPyUdtdSY8uvfDnpuw6S9kKy+ONo5bw5kzf9a3l3iqLZlo/aI035joTCjH6Qseuutsuen0js9z3bNGfteWrp0admPe7Q8259Wr3YXXXhBUpAqMt9SAtCePXvcZ1u2lLWlcfjiiy/8DygkimrsiqS5c2YXigJStHRexLTaUiRRUUGpiG3kgQAEIAABCEAAAhCAAAQgUCsBBKBayVGu0wTkDFj2X//lnQFyTuT9hU7TPOdDaJR+cTlixG2leuVIlwNEIo1tFC5hKUwSYOyeBA/lVzmJQvNffdUpQkZ2ylERJvvlq+7JuaFycgjJwWVpx44druXaa3x51TegpcXn09GEMDlMLJkTJuy73cs71tJv1adfaMt29UEOHDlN9KdzCRQSzOSMjB2SlcbDfiVtfVad77zzj37KgaL25PAqmmoZo0o2qu08h2utbCr1SfNmwvhxnoE42Bw10UeOuzfeeD3JSE68JUuWlOarjZnmnuau6pO4VlQAqqU+9U8OxsemT/ftmQ1aAmjnzp2l7lc790sFM07yHIWVnsVa+5nllDUT82xSHptf4fNs1/TO0XspfD/pedHYi2+R1JueiyzWKcb2bIfPjzjau0y8v//++zKEeXOknmOSJXCYzXnivtkRv2/LOhJ9qPccSPGOmiz7aP0qOhZZfKzSvO8O5an1u87qTx0V/avvbvUh7Id9T4fPr8pXyq86Hn30kQ6RtcYqNQey5n+t7y7Nd9lgfbJ/29i/heI5Vumdnme7bNQSevouUHv2nRA+k+rzxo0bOuAvMt9SApCVC9uy8dK1995b06GtrAtiddutrX4vIJ3XmlRW+wmpLqJ/aqVIOQhAAAIQgAAEIAABCECgXgQQgOpFknpqJqBfoMqRffuIESWngRwHcuCNvON3fgNfRTNYynM+WB476lfCy5Yt85EUJrKoXi1Tsvb99ztETch5IceEfv0rp6zKtLbe4j5Yt847cOT8kW1yOMRJG41LILJyOo+Xe1NkjaIyrhvQUuaMGT9unG9Xopgl2zi6GnHEylbbbyunXzxPmjix5DwVq1mznvIRS1nOukrjIWeSxlciko2rOWQkwKUcYGZP6ljLGFWyUe1UcrjWwiZlf3wtHqtwzmk+ZDkDrZ7YLpUfPGigm/3MM+7rr7+2bP5YhEM19VnlR48eddOmTS09v1pCSc9DmKqZ+2G51Lk5/LKWpiryLFbbz0rjUMkmm1+hA1l7o7z04ot+vML3k94HiqbSXC+aetNzkcU6xVjvl7Vr15Z9f+gdLPH/3XeXd3jHG8+sOVLPMan1nSkbbb7EznmzP3Ws9xxI8U61a9eqHYssPmF9Wd8dlid+f9p3TNZ3vJXLO6rONWvW+DmkuaQ6JZrou1HRwPFzafnDf8Pou1N7BurfE+H3urWb9y7Omv9Wttp3l8rJBtkyZsz/K72nzUZFBcU25r3T82w3G/Xdo2Vj7ccM9r30wvPPl/0wxvLrWGS+pQQg/fswbMvGa/q0aR2iuML2ss5t354HH7i/g3CXVSa8LvFHZRX9w94/IRnOIQABCEAAAhCAAAQgAIFGEUAAahR52oVABQLavLlacaRClU1125YsCh3iTWUgxkAAAhCAAAQg0OcIvPLyS17AURSPlnIrmpRXZVj6rSgx8kEAAhCAAAQgAAEIQAAC3UEAAag7KNMGBKokYBs+92ZxpL293V1zdf+qln+rEiPZIQABCEAAAhCAQNUEtEStlnCTmPPEzBlu44aOy9ZZpRJ+5s39x/5BKlNpfyArxxECEIAABCAAAQhAAAIQgEB3EEAA6g7KtAGBKgnY/j9aCqa3JjlIenOEU28dN/oFAQhAAAIQ6AsEtH/P3Dn/EHYkBOnv4SmTvSAkwUfnFvFjUT+d2TuoLzCljxCAAAQgAAEIQAACEIBA9xNAAOp+5rQIAQhAAAIQgAAEIAABCPQAAhKCtJ/PQ1MmlaKCJPiMHnWnm/n4DB/xg/DTAwYSEyEAAQhAAAIQgAAEINBHCSAA9dGBp9sQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQj0XgIIQL13bOkZBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACfZQAAlAfHXi6DQEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAQO8lgADUe8eWnkEAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEINBHCSAA9dGBp9sQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQj0XgIIQL13bOkZBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACfZQAAlAfHXi6DQEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAQO8lgADUe8eWnkEAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEINBHCSAA9dGBp9sQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQj0XgIIQL13bOkZBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACfZQAAlAfHXi6DQEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAQO8lgADUe8eWnkEAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEINBHCSAA9dGBp9sQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQj0XgIIQL13bOkZBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACfZQAAlAfHXi6DQEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAQO8lgADUe8eWnkEAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEINBHCSAA9dGBp9sQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQj0XgIIQL13bOkZBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACfZQAAlAfHXi6DQEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAQO8lgADUe8eWnkEAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEINBHCdQsAH388ceOPxgwB5gDzAHmAHOAOcAcYA4wB5gDzAHmAHOAOcAcYA4wB5gDzAHmAHOAOcAc6PwcqLdOhQCEkIWQxxxgDjAHmAPMAeYAc4A5wBxgDjAHmAPMAeYAc4A5wBxgDjAHmAPMAeZAg+dA0whA9TaE+iAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABOpDoOYIoPo0Ty0QgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAL1JoAAVG+i1AcBCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEGkwAAajBA0DzEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQKDeBBCA6k2U+iAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIBAgwkgADV4AGgeAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCNSbAAJQvYlSHwQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhBoMAEEoAYPAM1DAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAgXoTQACqN1HqgwAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAINJoAA1OABoHkIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgUG8CCED1Jkp9EIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQKDBBBCAGjwANA8BCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAE6k0AAajeRKkPAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCDSYAAJQgweA5iEAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIBAvQkgANWbKPVBAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAgQYTQABq8ADQPAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCoNwEEoHoTpT4IQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQg0GACCEANHgCahwAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAL1JoAAVG+i1AcBCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEGkwAAajBA0DzEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQKDeBBCA6k2U+iAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIBAgwkgADV4AGi+OIF9+/a51tZb3O9uv90dOXKkeEFy1oXAd999524YOtT/6bw70scff+z+z//+X+6JmTPLmmuELWUG8AECEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAQJMTQABq8gHqzeb9+OOPbuPGDW78uHGu3xWXe0e/nP2//MX57ubhw9x/Ll7s/va3v5UQtLW1lfJIGOgpSeKF+hX//eynP3GDBw10Lzz/vOsuQaUzzOohuhw8eNANGTzIs1i4YEFFcxCAKiIiAwQgAAEIQAACEIAABCAAAQhAAAIQgAAEIACBJAEEoCQWLnY1gaNHj7oHf/9AB1EkFEnuu+9ed/r06ZIpeRFAJ06ccPPnz3ePPz6jrEypcANPsgSgsK8t117jduzY0UArKzddDwFo+fLlpTEfcdut7tixY7kNIwDl4uEmBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIFMAghAmWi40VUEfvjhBzd50iQvBAwfNsx9+umnZZE+Z8+edZs2bfKRMaEAlGfPV1995S7/98tcLBrllemueyYAvf32orImFQG1devn7retrZ7F3aNHu5MnT5blaaYPnRWA1Df1cUBLixs58g533rk/9+Oc10cEoDw63IMABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgkE0AASibDXe6iMAXW7e6Cy/4lRcC9u//pi6t9EQByDputksQ2bJls11uumNnBaBt27a5Sy6+yE2cOMG9885SL3o9Nn16mfgXdxoBKCbCZwhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACxQggABXjRK46EjCnfj2jdUxEqWed9epyVgSQ1X/q1Cl3z5gxXhARm2ZNnRGA/v73v7t58+b6Pr7/3nvO9gK65ur+rr29PbPLNlfEMEydsSWsh3MIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAr2VAAJQbx3ZJu7XJ59sdD/76U+qjgBKOf21rFq4l054riXhJAyFScvPrVmzxrW23uJtUP7Bgwa6xYvfdhJiUunI4cNu7tw57roBLb4t2X7jb25w/7l4cW70itVVSQDSPjjaD0f1ik2ctFTcxo0b3H/cPdqdc86/eBv6//oqv0SemMRJYkt7+143+5lnfN9Ur/rZ74rL3axZTzn1JyuJz7Jly3z/VE5/YrV+/Xr37bffuhuGDvV/qXaz6tR1lRWzIYMHefHnb3/7m1P0j+zSvkBZCQEoiwzXIQABCEAAAhCAAAQgAAEIQAACEIAABCAAAQjkE0AAyufTkLt5okYocHTFeXdEoHx/9KgbMeI27/y/954xuYJEOAApAWjlihVu6NAhXkySWPHLX5zvRQZdu33ECLdnz55SFSdOnHDjxo717Vo+CRI6F8tRd93pjhw5UsqvEwkfF114gb9/df/+ZW0VjTaqJACtW9fm98PRXkBiEyYJMhJy1DeJPwMHXu9tMJvUz127doZFvOgl8Ut9kuijPGE/b7l5uDt06FBZGX1Q38VA5eK21P4f5s3z9UgEqlYAamtr83148sknnAQqJe3zpGXv8vY+QgDqMExcgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCBQiAACUCFM3ZuptwtAorl9+3anKBaJDRIzXl+4MDMCx+inBCC7V2kJOEWcTJ36qBch5s6ZU9aWIn9mzHjM2/Lcs8+WBIrjx4+7391+uxeIJNKYcKE2dU/ikASaSilLADpz5oxbtWqVk1gjEUr1hUntzZ8/39s1ZfLkMqFM7S5Y8Jrvz+RJk8rs2LVrl1M/tL9SaLMEsAfuv9/XJzEnTKpP9Wg8Hvz9A2VtKQJp9eo/loSyagUg1T1+3Dgv9kj0sSSxS6JX3t5HCEBGiyMEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAgeoIIABVx6tbcvcFAUgg9+3b50aNusuLDkWEoM4IQBZtIhFIYlCcbE+agddf5w4cOOBvm6hUreAR120CkPqY+hs+bJj77LPPysQa1bF3714vkomRBKc4nTx50kfPXHjBr9wXW7fGt5OfJagomieOXjI+isyKo5BUkYSkRYv+sdxetTyMYyrCSUKUmGh/oFCsMuMRgIwERwhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAAC1RFAAKqOV7fkNgEotYdNVxhgTnY54nXenUlO/61bP3cjR95REkeuurKf27BhQwdBoFYBSG1o6TEJH1n9O3v2rJs4cUJZNIrtW6PonDgCqBpGeQLQtGlTy6KRwnptHuiYlUxAWblyZVaWsusmxsQizqynnvL88/bjUWTRlf36Vb0H0MIFC3zdr77ySpkt+rBt2zZ3ycUXlfYGijPY3BTDMOXNhTAf5xCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAE+ioBBKAmHHlz/PcFAcjwx0KQ9qBZsmRJmQiU5/Q3YSOObFH9p0+f9hEvqeib1DUTiWTT4sVve+FI4pEicXQvFUFk/UgdTQAyIUf17t69uyR6TZgw3tsYl7VyKRvja1a31aE2JGB9+MEHfu+eKVMml+0DFApAxqdSJFEef2s3PtoybxJ5JPbEyaKY1J+UiIUAFBPjMwQgAAEIQAACEIAABCAAAQhAAAIQgAAEIACBYgQQgIpx6tZc9RaAJAbYXjImHGjfFdtzxpzsumfiR7d2OGhM4ooiRiS4xAJYngBRRABSnQNaWtzQoUNy/7Zs2VyySOy0PJuWLzN2ilBatmxZ2b47pQKJExNyYpHm0KFD7pabh/u+SuyKk5W7un//XHvVn5UrVpSKHzlyxN17zxhfr9msKKYhgwc5LfGmsU8JQDHvUoX/c5LHP85rnzWfxN3syDtqn6B4TyWbm2IRplpsCctzDgEIQAACEIAABCAAAQhAAAIQgAAEIAABCECgtxNAAGrCEa63AKS9ZFquvabMCR86283JLud8owUgDYdEANkne956883SCOU5/YsIQJddeqnbvn17qb5qTiQEtbfvdTMff9wpOkm26TwWLFJ1mpATC0DKu3nzZidxRuOjcQqTlTOhLryXdW7RPBJdpkye7LRsm5a3s2ScUgJQJT4SliQihWWt3tRRYt5j06eXzbs8ASgVJWRzEwEoRZhrEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAASyCSAAZbNp2J16CkASLp579tkyJ7wEBwkPlszJ3iwCkOwy8UN701iqVQCSEPHoI494Bqllxqz+okctZdb/11eV7ReUV9b6khKAZJv2JxL7qVMfLVteTnvm6Lr2+SmaFL2kCJ/UUniqQwKYhJ5QxLH9j9TW+++9l9nUF1u3Oi0TF5bNzOycF7TESX+xuBWWC4WiuK82NxGAQmKcQwACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCoTAABqDKjbs9RTwEoFf0zedKkssgVc7J3lwAkkSEvEifcF2bp0qUl/kUEoBG33eqOHTtWKmMnEn7UP+3jc/z4cbtc01Gi2owZj/n6xK5SyhOAVNbGSMJcWJ+JOQMHXu/27/+mUjP+vo2l7JOdYdJnWwowFnFszmnpOPGPUyhUxWXjvPbZ6pw4cUJZFJLdD49tbW1+qTgttad9gyxZfxCAjAhHCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAALFCCAAFePUrbnMcV5pT5ZKRsnhP2/eXC9USPzQn5bZ2rr187Ki5mTvLgFI/dMyalpCTUuUSVxQkr0SOh5++CEvBsTCR54AdODAATfw+uuS/VPdEhW0/436qKXRjhw+XMbgzJkzbvXqP7pVq1aVrh88eNALMuESaropG2+66UbflqKBlNSHObNnu0svubi0t5JVVEkACoUZ2WgCiJaXk1gnm0eOvMMvQWd1Wpt//ugj9/rChaXLFqWjqBuzTTd//PFH37+LLrzAs41FHPVJvNWWxKNTp06V6hQbRZH1u+Jyv1xdXHbHjh1+CbsJ48eVxKNQxMuLKrJG1GeJP1q6TmKQJZubCEBGhCMEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAgWIEEICKcerWXPUSgBRZIiFATn37i5cZU8fMya48Ou/qtHbtWi8kmE2p41VX9nOffLKxzJQ8AShcRkyRNNqrRoLCzp07S3WYUKH2JDQMaGlxQ4cO8Ud91vUw4sj2y5FYJXFEeXXUZ+V/443XS+KV2aY6xo0dWxZhVUkAkoGhQLVo0aJS9M6hQ4dKwpXqvrp//zI7dC1cJk+i0SMPP+z7EvZRwo/mwvLly52ExVjEkQ3aa0j5VKcxFEedq6zEJpWLy9p8FZdNmzZ53jpqKTqVl5BWJGn5N7UdRgzZ3EQAKkKQPBCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAE/kkAAeifLJrmzBzqnYkAkiAiYUAOdftLRf+o0+ZkV77uEIDUpgSTBQte8+KGhAO1LfFh5B2/c0uWLCmLQLGBMZElFiDs/tGjR920aVNL4tItNw93+/bts9v+qMiWl19+yV03oKXERZEt48eNcxs3bvCRMlbgxIkT7qUXX3SDBw30go/ZqLyKolLkjqXORABZHYqUkWgjsSUUriTqLFu2zN34mxvK7Lh79Gi39v33y8Qm1aWInTfffKPURwk4ElXa2/c6E7WyGCrPpIkTS0KQxmTWrKd8xFQWfxPWLAIojDx7bPr0kkhm/cw6KmJJc1T9tz2DbG4iAGVR4zoEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAgTQBBKA0l4ZerYcAZI5+E390zHLGm5NdebpLAGooYBqHAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCPRyAghATTjAnRWAwuXQTADKiyZCAGrCSYBJEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIFOEEAA6gS8riraWQHIltIy8UdHLQcnYSiVEIBSVLgGAQhAAAIQgAAEIAABCEAAAhCAAAQgAIHGEgi3eZh4r743AAAgAElEQVQ8aVKHrQBi61auWOG3ELjvvnvd6dOn49t8hgAE+hgBBKAmHPDOCED6Upg69dHS/jYSf8I9VVLdRQBKUeEaBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQaT0B7Jbdce43f93rz5s2ZBh0+fNjdPHxYxXyZFXADAhDodQQQgJpwSGMBSKLO00/PKhN1JOxI6ImjerZu/dxdcvFFZXmfe/ZZ9/e//z2zpwhAmWi4AQEIQAACEIAABCAAAQhAAAIQgAAEIACBhhKQX0/+PfkDx48blxkFtHDBAp8n5TNsaAdoHAIQaBgBBKCGoc9uOBaAlPPIkSPut62tZcLOeef+3K1b11aqKBX9o18H6FcCeQkBKI8O9yAAAQhAAAIQgAAEIAABCEAAAhCAAAQg0FgC+/d/4wYOvN7JH7hp06YOxtj9vH3AOxTiAgQg0OsJIAA14RCnBCCZqRDPX/7i/DIRSKKQxKGs+5Wif1QOAcjj4z8QgAAEIAABCEAAAhCAAAQgAAEIQAACEGhaAhbhE+/vE0YIFfEFNm0HMQwCEKg7AQSguiPtfIVZApBe5vPnzy8TgBT6qRf7Dz/84LQRnD7bn34VIPW/UkIAqkSI+xCAAAQgAAEIQAACEIAABCAAAQhAAAIQaCwB2+NHUUDr168vGfPVV185Rf6kfIHyGa5Zs8a1tt7ifvbTn3i/4eBBA93ixW+7U6dOleoIT9rb97rp06a5fldc7vOfc86/uBEjbnPvv/demI1zCECgBxBAAGrCQcoSgGTqyZMn3b33jCmJPBJ7tOfPSy++6ENATfzRUWJR3t4/1nUEICPBEQIQgAAEIAABCEAAAhCAAAQgAAEIQAACzUtg+fLl3i9oUUDaEuKx6dP9NfkUw3TixAk3buxYf0+rCg0ZPMj/2QpDo+66s7SykMrJj7hkyRInwUdi0YCWFjd06BB3df/+vo4nZs4Mq+ccAhDoAQQQgJpwkPIEIJm7fft21//XV/kXbyj4hOd6oR88eLBQ7xCACmEiEwQgAAEIQAACEIAABCAAAQhAAAIQgAAEGkrg+6NHfTSOBJq2tja3devn/sfhitDRPUu2V7jyzZ0zpyzaR5E/M2Y85n2L4ZJxX3/9tbtuQIv3O27bts2q8kdFH3344Ydl1/gAAQg0PwEEoCYco0oCkNR4hWla2GYo/Nh5rPjndRMBKI8O9yAAAQhAAAIQgAAEIAABCEAAAhCAAAQg0DwEtBSb/IIP3H+/3xJC5/HybJs2bfKrBU2d+qiTGBQn/XBcPyAfeP117sCBA/62+Qgtuiguw2cIQKDnEUAAasIxqyQAyeTTp0+7sWMfTEYB3Tx8mJMqXzTZy13ikc5JEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAQHMSOH78uBs16q6SX/Du0aP9thFmrX48/uSTT3iRKMvXd/bsWTdx4gQvEm3ZstkXtb2EtPJQHAFkdXOEAAR6FgEEoCYcryICkMzeu3eva7n2mtLLvpboH9WDANSEkwCTIAABCEAAAhCAAAQgAAEIQAACEIAABCCQQWD9+vVevDnv3J87nYdJPxxXFI/5CisdTSRSpNDTT8/y5bQP0ITx49yXX37pfvzxx7B6ziEAgR5EAAGoCQerqAAk0y3k017kv21tLVvvs0j3EICKUCIPBCAAAQhAAAIQgAAEIAABCEAAAhCAAASag8B3333nbhg61P/pPEwmAGlpuAEtLW7o0CG5fxYBpDok9qxdu9aXM3+j2vlg3TqEoBAy5xDoIQQQgJpwoKoRgOphPgJQPShSBwQgAAEIQAACEIAABCAAAQhAAAIQgAAEuodAEQHosksvddu3b6/JIAlBiv7RFhQSkvS3YMFrTsvLkSAAgZ5DAAGoCccKAagJBwWTIAABCEAAAn2AwKFDh9yKd5e7h6dMdiNubXU33jDE/+lc13RPeUgQgAAEIAABCEAAAhCAQGMJ5AlAWsrt0Uce8Uu5rVy5slOGSvBZt67N/fIX57trru7v2tvbO1UfhSEAge4lgADUvbwLtWYCkNbwfOihKX7tTa2/2VV/UvItpNPW/CxkKJlK+yc9MXNmYRraqE/rsGr/pl27dhUu15sz6h8Try9c6M4/71z3zjtLm7arFi0Xj3feP7rq0ZmewqcefU3V0SjuKVuqvfbee2vcpZdc7ObNm+v0D3BSzyLQl97XJ0+edPPmzi4JPrfd2uoemjLJzZ0z2818fIY/1zUThJQXIahnzWeshQAEIAABCEAAAhDoXQQq+SIk/MjfN2rUXU7/b9OZdOrUKXfPmDHu8n+/zH311VedqYqyEIBANxNAAOpm4EWaMwHIRJnuPHaXACQHeqpfCicdPGige+H5552+yJo9ZTmm8+zetm2bu+Tii3z/NdYk506ePOFGjxrlmUgc01q1zZiyxrvSP7o625eewqez/cwq3yjuWfYUva5w+alTH/XzWusl94R3WtG+hfn0vOqHBP1/fVXNSwuE9TXTeTO+ryUIL178trvwgl912Oi1VnbaT9CifST47N6d/eOErVs/94KQhCCVUUQQCQIQgAAEIAABCEAAAhDofgKVfBHfHz3qRoy4zf8/6ZTJk92Rw4fLjDxz5oxbvfqPbtWqVaXre/bscZ9t2dLhB4xffPGFF3+GDB7kDh48WMrPCQQg0PwEEICacIz6sgAUikKKkNmxY0cTjtA/TcpyTP8zR8ezvF+UK0JAYbUPPvj7PhUd1FMiXLLGu9I/ujrOguquVOKzefNmN27sWPfpp59WV3EPyd0o7kXwVGLf2yOATIzQUgB6d/W2lPe+bmRff/jhBzd50iQfSbp3795OmbLorTd9VM/oUXfmCj9xIxKJLCJI0UAkCEAAAhCAAAQgAAEIQKB7CRTxRcivJv+a/G360fWAlhY3dOgQf9RnXV+69J8rsdj/f+v/8ST2hHl1Tf+PS4IABHoWAQSgnjVevcZaiwCKI2D0i3n9uvi3ra3+S+ju0aOdlqVp1mRfjPGSYLXaq1/SKwKGkNpaCXZtuazxLvKPrq60zJ4n2dcbU7NyF+vezr7SfNq5c6eP/FGkE0vcVaJV3/tadkHfFRKCJAjVkhT5o0ie3z9wX03ftfp+VlnVobpIEIAABCAAAQhAAAIQgED3ESjqi9DybS+//JK7bkCL97VJ9Ol3xeVu/LhxbuPGDU6+OEuHDx92Tz75hLu6f/+yvNOnTXPt7Z378Zm1wRECEOheAghA3cub1v6HgDlNYwHIAJljS/sgbdmy2S433THLMV2roQhAtZLrnnJZ4130H11dZaU9TwhAXUU4u97ezj67584LPo9Nn+6XtNRSaaTuJaDoK+0tpe/JTZs2Vd24xBst4abIn8780EJlFQmkujpTT9UdoAAEIAABCEAAAhCAAAQgAAEIQAACFQkgAFVERIauIGBO0ywByDaX068SmtmpnSUI1MoMAahWct1TLmu8EYC6ln+zclev7V3WzO+prhodLT2mfX/0q7FaI1C6yra+Uq+NgYS4aiOwtNePIncUdZuXFNlTKbpHy8GpLtVJggAEIAABCEAAAhCAAAQgAAEIQKB5CCAANc9Y9ClLzGmaJQAdO3bMjbjtVr8+6SefbOzARs7GNWvWuNbWW3weCUWDBw30G2NLPIqTwlm//PJLp5DVMIxV4a8Kg02VsTq0Sd6sWU/58Fi1ozVPJ06c4Pbt2+fFKV1Tf4qmlMhjEU+qK/UXc1J/FKb7H3ePduec8y++jByxLzz/fHKj+VigUNjuvfeM8WVVXudhKK8297O6tSbsjb+5wa1du7YsLNj6K1vWr1/vRo8a5dnI/osuvMA7hdvb2y1bxaP6qLJxX0Pnv37x/tlnn7mRI+/wtss2zQG1r3vVpFrmRGhL2FbMN7xX6VzcNS8Vfq3+azy0SWPscI35WJup+aJrqTmpMpojmivWlsY5DvmuZHN4X8+ONqQfPmxYaS6qL+rTgQMHwqz+3GzQ82rrDVv+cA6GBWvlXu1zYm3a++X2ESM6zOntf/2rf8ZuGDrUM0zxD9ln2W5tmY33jBnjnxsbF82Bd99dnhRW4neIxuC5Z58tzSE9f3pnHT161JopO6p/qltt2PtDYzDz8ceT74+ywsEHm5PxXFUWm5/ipPP4PSobJ02cWPbesarj/uldq3mq+XLLzcOdNjK1ZPzsfSV+qXehCSWVltd89ZVX/LgqskbvlNgWazc8fv31136JBPVJ7dt3hOZK+F5auGCBv/+HefPC4qXz5cuX+/uPPvJIBzFH4o6ui4HmlCWNpQS4a67u76p53x46dMgLNjMfn2FVZR4fmjLJ6a9SMkGJKKBKpLgPAQhAAAIQgAAEIAABCEAAAhDoPgIIQN3HmpYCApUEIG0mrmVttBdQ6OxTFSdOnPAb3pujTZvS6U9ON10bdded7siRI0FrriTU6L4EIG1iN3Dg9SXn54O/fyC5dI0c43IYqpyce2E5ORlfeeVlfy90+JY1nPiQciju2bPHydls/ZCTzzbmU5srV6wo1SSH3+xnnvGOQDlv1Q/lMeejznft2lnKr5PQGbts2TJ36SUXl+q3curP9u3bvZgilnIIqy4d1X/ZtGTJkrJ65eibMH6cv68ytkGg1Rk6KssKJj6YMzlLAJJzWkKD7LAxtHZStiWaKLtkjvlq5oSVicc75KvzIkmOYfHUGIbjbQJl3EbMR8+FRINw7I2Lrj3//HNlZmiJLtv40cZWc0xt6+/FF17o4HQuqyDxQWKc1Zmai+H4q78ffvBBaZ6m5ovqEJPQaa5ma+Fey3OituREtz3IwnGx50DjUA37LNvVVvguC+ehjYuuSaSRsz5M4Tvkww8/9KKI8QzLqh/xu1B1qU7VredHc8XeO5XEkdCGs2fPeiF84PXXZQp9En/0p/eo2jEbrT2zQQJumFL9U179maCk/NWMsQkoqiN+x1jb9sODSy6+yNmSdqEtEurDFM9pe/7sGVZ/JerYfP5i61Z34QW/8t9RJ0+eCKtyxlP2SXD/9ttvy+6bbSne9m5ICXFllQQf3l2+zAtAGwIxKbhd06lFAVVjR00NUQgCEIAABCAAAQhAAAIQgAAEIACBwgQQgAqjImM9CWQJQGfOnHGrVq3yooucZ7FjUE48bTYux+zcOXPKInf0K/gZMx7zTkL9Gt6cbrJb+wi99OKLHcSk/fu/8c5TOd1WrlxZ1kX9YlzObTmlX1+4sOyX+GFbKhs768sqij7kORTz7qka9Wn+/Pm+j1MmT/a/qrfq5QxdsOA1zybeFNwEColqciDKKW185IRWfvVDv66X81L1qD4l/cJ+0aJFvl45bg8ePGhNutWr/+ivP3D//d6ZbTdURssK7dq1yy5VPJoTM3bOmgNdzmm1r+gks102znrqKW97SizMa7SWOWG2xONtfEPndF7buqeoAUWgSXgzZ7OV0aaLcuyHKYuP8tjzJPtSSfNcQqEYrn3//bJIrt27d7ubbrrRO+c3by6+39bOnTu97alnUeOvdv7yl7+UzFHdeqb1p77Y/FIG5f/T6tVekND9uB/Vcq/1OZFYYuJP/HypTglesXO7Evss29V/e+4U0RZHPyliRsK0nsuxYx/0kSgG094Tep6vurKfe/rpWU7vTkuaT5pXKisBIkyKANN1PTfhGOjdqn1k9u/fH2bPPBcrPY8SIfU+jJM9E5pzEjT0Tg5tVBmx0/y5efgwpzlvyfqnsmKgsQjfO8pXyxi3tbX59u4ePTop+Kv/YhouaRfaEgtAesdJLJK4pblh7yUdP/30Uz8G+g7Rd4mSiTjqV1yXouX0blb7+ov3vjPxKBUdZPc0pkWTInq0b0+RpDkfz/uscqqzSFRRVnmuQwACEIAABCAAAQhAAAIQgAAEIFBfAghA9eVJbQUJmNNUjsjUn5aTCh1qVq056CQCyWEZJzkJ5ZRM/Uo6zmufzbEumyzJgaclgGRbLCZZHkW/aOk05QnL2v2sY55DMe+e6rNljEaNussdP368QxOySc5N/cpcTkFL5oyVrRKQzFFp961e3Q+dn3ZfEQ9yjMeOSRvHWLSxctUcbRziusyBLmEgJVCYbXIkp5YLrMYGy2u2xONqtsTXjW81ApDVdd9995Y5982G+Gg2xXyUz8ZBdcbJ5rL4ZDlxzTGeci7H9emznj3tOaL5IvEh9SyG5SQ0aF7JBkVxxfPP8irSTXliB72xKsrd5nO1z4kt0ZUVEWh2hsc89sqXZbu9yyS6xhE+Vr/mtqJ1xERjZMneE+Ifi72Wx5YTU19M6AnLpeaKlS1ytGUr4zGxsvZMyMYnn3wiOUdCe0IBPryeNYa1jLG9K8IIH7NXc1J2yt6ULbFoY3NadWXtoWPzScvKWdLyb3EbuqdnU+9XReLpGJbRfXv+Q9usThOPwrG2e1lHCTVFlnVT+aJLwFneu0fdldUs1yEAAQhAAAIQgAAEIAABCEAAAhDoZgIIQN0MnOb+QcCcpnKExX/Tpk1N/qLcHHRyhmY5L20ZnVioyONuDtrQES9HoaIi9Ct6ORqz0tKlS739WU7QVDlzbsYOReXNu6f75gRMiQDWVsrBaM7Yyy691C/zZnntqOWItHSexiIlEsjBL3FA90P2Zk8cAWT1VnO0uuK+2fjIvnjZJNUf2pZyjlZjg+W1NsM5oXt2PR5v41uNAGQO9FQEkNkRHrP4KI89T+HYWFktJaUIjNSyUpZHy55pDxHtu6UohUrJ8scRYVnlrK+VorTM1iv79SuLHquWex4rszF+Tiw6IyUOWJnUMY+98qdst3eZnqc4Qiduw/oSRnfYeyLreVUdFhUSjmnYbhwBFLdb6bP1KxYqrJw9E7EYbfftqGdW/VD0puxTCvsXvw+snHHJuq988RirfhP2Jc6EyX48EM9psyV+X9ucjt8RYZ2K4tF3kfaM03eTkrjpOywUW01Q1fOhyDo9q2G99r0W22BtGeusaCzLFx5vvGGI0549RVI1ApDtA1SkXvJAAAIQgAAEIAABCEAAAhCAAAQg0PUEEIC6njEtJAiY09Scd3LMaSkqLYUkZ+CECeM7REWYI073i/zJ0RYmLTOl5Y3++7//2y8fp19Lh/sAhQ43c+5liQ5WrzlBY0HA7qeO1o+UMy/vnuoybkX6b2xVzhyEWQKFtZslEIVth1wVuaAIBtmjslpeKlzKKdX/rGtZDt0ijI1L2OesdsLr1cwJlcuypRLfsE07l9NX0TNip2UGtZfSl19+WbY8m+XVMYuP7ln/w7GxsjaXi8yZrPlhddnROISObbuXOlr+0OmdymfzULaGfbHy8XOWxd14FOmzzRnjFAomKRvja9ZWaG+YJ2W79bOSOKJ6rHz4frLyqXeItW39icdU+3zZ8nDaL0gRWaloQqsn62h2Gb84n42NBJV4H6Iwr4kkqf7lCfnGvZoxVrtaHk8iX/xutyg4CUQmRCl/Fmvrf5H2w76ZyBkKsnbNIqX0nEiQldCqZBE+YT3+xv/8R8vpSfyJxzrME593lQCk5d9UNwkCEIAABCAAAQhAAAIQgAAEIACB5iCAANQc49DnrDDnXew8NEFBv5DWZvBhMkec7slxqX0X8v7CPRR27dpZ2tvDHHa2AfrtI0Z4J3zoXDPnaXgttMXOzQmo/hRN1o+U8zbvnuo3brbZeF7/tZyWJXPGZjkIK7Ubtq0+h0nOR/3SXku0ia3GR3uWxHuahGVS51kCRxHGxiWeT6l27Fq1c0LlsmypxNfajI9+r5y1a/18tnmpMfpg3boOQlAWH9Vp/Y/HRvdsLmt85IzPmzNyIiv6rVLK4pBVrpr8qb5klc/ibnVU85wYp0rPfNxHayvFXnlTthd53qydlF1Fylu51DOv/YW0jKaER807HSU+6HrRZP3KeuayxiauX4KUxOOQe5H+Gfdqxlhtp5bJtCjCVPRXli3Wf/seyXuupk+bVlqGz9oKxS0tBxjufWVRURaNqbb0Xs2KtqpFAOrKJeCK7i0UzwU+QwACEIAABCAAAQhAAAIQgAAEIFB/AghA9WdKjQUImPMu5Ty0zeLDzbNVpTni8qJUUk0rIkWbjMvJOWf2bLd//zdl+1GYIy90QJrztNKSOuvXr/cOVPWnaLJ+dEYAUrvVpErO2DybrB0bM/FKJW3w/t9/+pP/FbqcyupfuA9Rqkx4LUvgsPHJY2y2peZT2Iad1zInVDbLlkp8rd2so4QgRf9IOJOjV38LFrxWFomQxUd1Wv9TY1N0LmfZlrpuHMJlu1L57JrlrxQBpH1VFJmn/of7OVn5eA5kcTce1TwntXKytlLs1f+U7fa8FYkAEgfxCPd3sfKpd4gxt/6kBCDLo8gfRQBddWU//x676cbfuH379tnt3KP1660330zmyxqbOLPVE0aTFemfca9mjK1t2x9JwrWSLWmY2v8syxazu+gzYG3rKGFH70gTdGRHuG+d7W8kUU7RSLqfN1eMdRzVFLYZn2tZtxG3tsaXk5+rWQJO0T/KT4IABCAAAQhAAAIQgAAEIAABCECgOQggADXHOPQ5K8x5l3LY6xfSthm3fqWuz0r2y2k5zqrZ68V+TW3OtBi2iTihAGQOwdApF5fTZznwZI/6UzRlORRVPu9e2J45Lou2aQ7CLGdwpXbVjo2ZHJ95SU587S8iLqFTN6+M7mUJHOZozWNstqXmU6rdWuaE6smypRLflA2pa3L2rlvX5qMBwiWglDeLj+5Z/1NjY8tHxfWl2i96zfaXqbSnj9VXNL8thRXbWi13ey6reU6MU6V9v6xPdsxjrzwp28N3WdE9gMK+FHleiwhA1ocTJ0447eOlZzZsx+6njha5k/Vc2jORJ1KpXhsrE0N0rUj/rFxRe8M+2PvdlvszQSg1Flm22Jy2OsL6K51b+/rOkRgt4SYUR61N1a29iZQvrx2bu+F3WCUb3l2+zC/Vtnv3rkpZvaBTRNTZ8PHHvk7VTYIABCAAAQhAAAIQgAAEIAABCECgOQggADXHOPQ5K8xpmuWw1y+gFQEULosjSOa4HzXqrsL7VpjjPPVLdTliJTLJ8Rk6z8wBp+uLFi0qi8SwwZJj7qabbuwSAShcHsja09H2y9DeRYpkKprMGdsdApBsMudwyLSSrTZO8ZxIOdDjuirNpzi/tVXNnFAdWbZU4hu3n/fZlnOKHedmc8xHdVn/U8KobSCvuTx//vzkXM6zJ3XPltFSZIoiSMI9UzqTX8sWqs7JkyaVlsxSfdVyr+U50bvgsenT/fOsvZn0uUjKY59nu+05oz20tPRlKmk5vhEjbvPvQUVGWrL3UzxH7L6O1QhAym9CuPpTJFUSHeyZyJt39g7Ve/4vf/lLqdki/atljK0BG2u9Zz/6aL1/92t5RNkTpyxbjh075kUZzVdbqi0um/VZIrmijSR0as4ruid+diVw+esrVvh8WT9gUBsmRkl4L5o054ruA1Q0Asj2/8maz0VtIx8EIAABCEAAAhCAAAQgAAEIQAAC9SOAAFQ/ltRUBQFzmqac2apGDmU5q+U8lAPU9iUxh6iuT5k8ucOeFVqGbPXqP7pVq1aVrLHlduRoDUUTOeG0zJacj6ovFitUTs493VedWqbLkurRr7blwFPZok5Tlc9yKOqeHJP6JbjqTDnrZbOc47o/cuQdHfbZUfk/f/SRe33hQjPVH80ZW28BSM5TsQgFAHF6443XvY1yqBd1pGcJHFnO/7CDleZTmFfntc6JLFsq8Y3b1+c9e/a4z7Zs6cDniy++8MvnxQ7pLD6qy6Ihwoi5sE1bVlFzWfVoHoVJUQgvv/yS27WrcjSAlZNgoPpSdWrMxTh06oud5V+6dGlZvzVn/rR6tdN+KorAkYAYpmq51/qcqF21r+d+7pw5TmKcJdkojupXmCqxz7Jd7wEt+adnWe+S8N2k+rUfj5Z90/1YkMp7h5htKQFIYqAizOx9annF64knZvq2Fi5YYJdzj2ZDVpSkPRNiqXH9r/96p+wdqv7de88Y32Y8b63uPIGr1jG2TmlcZNuECeP9e3zevLll7zHLl2eLCZayc+3775f1T+9E7YOmemPeqtueZ/seUVRQmEzgGjPm/3k7ZW9Wsh9GxCJSVn67PnfO7EJRQJrz8by3OuyoSKKigpKV4QgBCEAAAhCAAAQgAAEIQAACEIBA1xNAAOp6xrSQIFDEYR+KPWEUzo4dO3x0kByjcuANaGnxG9vrqM+6LgezJdXzf0eO9Ne1D5CiZ+RclzNaopAckyoTC0ByYmvPIKuz3xWXl7Uj5+x7763xZeslAMlmiwywvsnWd975Z3/062qJYrJZf7YJuvplm7rHvwQ3Z2y9BSAbR2OjjdB1LrsUHfXNN8WjlMwhqmOYshzoYR6zIy4b5gnPa50TWbZU4hu2bedWl+ahxljsbA7rmuZWmLL4KM+2bducNrAP54PmriU5o5csWVKaH2GbNl5X9utXlQCkOrVklupSu2GdcvjrWui0LpJfjvSNGzeY2aWjsYqfszzutTwnalDtyw7Zb++LcF7Hc6wS+yzb1daRI0e8+KO29GfPss0DXXv00UecIq7ClCdKWL6UAGTlwrbUNxsvvQO///57q6LiUeKX3lPhOFuhcGzmv/qqnx9qJ5znskMCiDiEyezME4CUv9YxVlm9A7SE4b/96zlO+8ppHFMpz5b4O8L6FzLVe1BtxSmcN6m9h2w5RDHKEtlUp2zQjwYqsYrb12fNq9tubfV7AcVzLJU/65rKaj8h1UX0TxYlrkMAAhCAAAQgAAEIQAACEIAABBpDAAGoMdz7fKtFHfb61bEcjPpV/s6dO0vc9Mt8RSxcN6DFO07lJJMjW440OXDDaB0V0nI9+iW2ObvlqJs16yn/K3tz0MYCkMqpng/WrfOCi4krgwcNdMuWLfNRFFY2dkyXDE2c5DkUlV0OPTnr1Wf1S7bGYoB+/S4bbvzNDSWBSvnuHj3a/xJd98MUOmN1HqdKNim/jVno7Pnk02YAACAASURBVFVExD1jxpQcyBor2aTIqjB6Im4v9TlL4CjC2GyLnfOpduxaLXMiy5ZKfK3N8KioGy3rJKe/xtnm8PRp0zpEdqlcFh/dk7iiyA7NTdUjMUZO9zgpImHSxIll46Uys595xn399ddx9kKfVU79sGdLz8nwYcO8sKqIvDhZfuu35oxseOH5511qbqp8rdyrfU7MVtkhe+z9YjbqnXP8+HHL5o+V2GfZbpXIxjVr1rjbR4woiWl6lvVcpd5lKlfkeU0JQHq3rF27tqwtjZcE5XffXd4hMsxszDqaiJGK9AufCYkZn332mY9aVHv2nrD3aFx/kf5ZmVrHWOUtekvvzSwBpJItGv+tWz93itQxMdSeAT2DWXP65MkTJfEv9d4yYUfPc7g/kPXbjlouVd8VKRHJ8uQdbd+eBx+4P5NBXnlxU1lF/7D3Tx4p7kEAAhCAAAQgAAEIQAACEIAABBpDAAGoMdxpFQIQgAAEINCjCUh80ZKUqeiTUADKEkF6dOebwHiJT1oqVIKaIkdrTa+8/JIXcBTFo6XciiblVRmWfitKjHwQgAAEIAABCEAAAhCAAAQgAIHuJ4AA1P3MaRECEIAABCDQKwgo+kXLDyoKTFErlhCAjETXHRX903LtNR2WL62lRUXbagk3iTlPzJzhNm7ouBSj1SvhZ97cf+wfpDKV9geychwhAAEIQAACEIAABCAAAQhAAAIQ6H4CCEDdz5wWIQABCEAAAr2CgKJQnnv2Wb/82fr160t9QgAqoeiSE4ltEt20/Nv27dvr0ob275k75x/CjoQg/T08ZbIXhCT46NwifizqJ2vpvLoYRCUQgAAEIAABCEAAAhCAAAQgAAEIdJoAAlCnEVIBBCAAAQhAoO8S8PvA/P4Bd8vNw51EBCUEoK6bDxLdFi9+2/3bv57jj/pcz6Qx1H4+D02ZVIoKkuAzetSdbubjM3zED8JPPYlTFwQgAAEIQAACEIAABCAAAQhAoOsIIAB1HVtqhgAEIAABCPRJAghAfXLY6TQEIAABCEAAAhCAAAQgAAEIQAACTUYAAajJBgRzIAABCEAAAj2dAAJQTx9B7IcABCAAAQhAAAIQgAAEIAABCECgNxBAAOoNo0gfIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgEBAAAEogMEpBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEOgNBBCAesMo0gcIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgEBBAAApgcAoBCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEegMBBKDeMIr0AQIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQgEBBCAAhicQgACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIHeQAABqDeMIn2AAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAgEBBKAABqcQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAoDcQQADqDaNIHyAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIBAQAABKIDBKQQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhDoDQQQgHrDKNIHCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIBAQQAAKYHAKAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABHoDAQSg3jCK9AECEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIBAQQgAIYnEIAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIACB3kAAAag3jCJ9gAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIBAQSgAAanEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQKA3EEAA6g2jSB8gAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAQEAAASiAwSkEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQ6A0EahaAPv74Y8cfDJgDzAHmAHOAOcAcYA4wB5gDzAHmAHOAOcAcYA4wB5gDzAHmAHOAOcAcYA50fg7UW3RCAELIQshjDjAHmAPMAeYAc4A5wBxgDjAHmAPMAeYAc4A5wBxgDjAHmAPMAeYAc6DBc6BpBKB6G0J9EIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAAC9SFQcwRQfZqnFghAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAgXoTQACqN1HqgwAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAINJoAA1OABoHkIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgUG8CCED1Jkp9EIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQKDBBBCAGjwANA8BCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAE6k0AAajeRKkPAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCDSYAAJQgweA5iEAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIBAvQkgANWbKPVBAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAgQYTQABq8ADQPAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCoNwEEoHoTpT4IQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQg0GACCEANHgCahwAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAL1JoAAVG+i1AcBCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEGkwAAajBA0DzEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQKDeBBCA6k2U+iAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIBAgwkgADV4AGgeAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCNSbAAJQvYlSHwQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhBoMAEEoAYPAM1DAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAgXoTQACqN1HqgwAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAINJoAA1OABoHkIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgUG8CCED1Jkp9EIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQKDBBBCAGjwANF+cwL59+1xr6y3ud7ff7o4cOVK8IDnrQuC7775zNwwd6v903kzp73//u3t94UJ3/nnnunfeWdpMptVky8cff+z+z//+X+6JmTPLyjfzGJQZygcIQAACEIAABCAAAQhAAAIQgAAEIAABCECg4QQQgBo+BH3XgB9//NFt3LjBjR83zvW74nLv8JbT+5e/ON/dPHyY+8/Fi93f/va3EqC2trZSHjnIe0qSE1/9iv9+9tOfuMGDBroXnn/eNZugkmKbEh9efeUV36+JEye4s2fPpor5a7qnPGKgMnlp5cqVPt99993rTp8+nZe1dO/kyRNu9KhRVZcrVdDFJwcPHnRDBg/y9i1csKBiawhAFRGRAQIQgAAEIAABCEAAAhCAAAQgAAEIQAACEKhAAAGoAiBudw2Bo0ePugd//4B3iMfCiH2OBYC8CKATJ064+fPnu8cfn1FYNOiannWsNUsAsn7q2HLtNW7Hjh0dCzfRlZQA9MXWre7CC37lBl5/nTtw4ECmtbqnPOprPK5hIQl+jz7yiM9XSSgKy1WKADp8+LCb/cwz7rnnng2Lddv58uXLS3N9xG23umPHjuW2jQCUi4ebEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAQAECCEAFIJGlvgR++OEHN3nSJO8QHz5smPv000/LIn0ULbJp0yYfGVM0AuSrr75yl//7ZbniQn17Ubw2E4DefntRWSFFQG3d+rn7bWurZ3H36NHu5MmTZXma6UNKAJKQIUFD0Ux5UVnvv/deSQC55ur+rr29Pdm1b7/91t34mxvceef+3G3ZsjmZp5aLWYJKLXVVW0ZjqrEd0NLiRo68w/dN8zsvZdmbGoO8ergHAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEI9F0CCEB9d+wb1nOLGpFDfP/+b+piR08UgKzjZnu9RQ+rv17HlPigyJsnn3zCizvz5s11+hwnyyOBbujQIT6vBKFUkugjDhKBJAbVK2UJKvWqP6+ebdu2uUsuvsgvgaf9iRQF9dj06WWiZ1w+y97UGMRl+QwBCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAQAQQgJgH3U7AnNt5S4FVa5SJKPWss1obsvJnRQBZ/lOnTrl7xozxwoDYNGvKEh9ksyKAspY2+/7oUR/lJFHnuWef9f2UaJQSi956801/X8vAhfs/dZaJzTmNRXcm9VHCmEQfiV62F1BeFJTsy7I3awy6s0+0BQEIQAACEIAABCAAAQhAAAIQgAAEIAABCPQMAghAPWOcepWVn3yy0QsG1UYApZzfWlZNzvXUnyJOJAyFScvPrVmzxrW23uJtULnBgwa6xYvfdhJiUunI4cNu7tw57roBLb4diR0SM/5z8eJCIkUlAShcRk1s4qSl4jZu3OD+4+7R7pxz/sXb0P/XV/kl8sQkThId2tv3+j1v1DfZq372u+JyN2vWU079yUris2zZMt8/ldOfWK1fv95H5NwwdKjTX9iu7e+jvYAU3RUni+qRqPPZZ5/5PYNSYpGW/ps4cYK3deXKlWXV2DjreObMGS8k/fIX53setpxamMcKG/vU/Ij7oTLq1wvPP+/EV2XEW9zFX+NQbbIl7YYMHuTFH4laiv5R3doXKCshAGWR4ToEIAABCEAAAhCAAAQgAAEIQAACEIAABCBQlAACUFFS3ZjPHNkpp3VXX5PjuauTIkJGjLjNO8HvvWdMriAR2pISgFauWOGXFZOYJLFCooCc7Vpq7PYRI9yePXtKVZw4ccKNGzvWt2v5lFfn4jrqrjvdkSNHSvl1IuHjogsv8Pev7t+/rK2i0UYmQmhcU2nduja/7Jn2AhKbMEmQmf3MM75vEiMGDrze22A2qZ+7du0Mi3jRS+KX+iTRR3nCft5y83B36NChsjL6oL6LgcrFbYntH+bN8/XEwkko3KT6+Oorr/g6JeqY2JUSi0xIkviyd+/eMvvsmXjjjdfd00/P8vXZs2Bz1vKENjz//HO+/xo75Rc38dCfoq5C3lqqreXaa3w+42bzSv1/8YUXCgl+oeFtbW1+7MKIJwlWWuYub88nBKCQIucQgAAEIAABCEAAAhCAAAQgAAEIQAACEIBALQQQgGqh1sVlzJFtDu7uPJozvYu76LZv316KspBT/vWFCzMjcMyWlABk9yotAafIi6lTH/XO+Llz5pS1pcifGTMe845/LVFmS5MdP37c/e72271AJJHGrqtN3ZM4JIGmUsoSgBTJsmrVKiexRiKU6guT2ps/f763a8rkyWVCmdpdsOA135/JkyaV2bFr1y4fIaP9lUKbJYA9cP/9vj6JOWFSfapHc+3B3z9Q1pYiX1av/mNJKIsFINWjaBaVVQSPBCFLp0+fdhLKLBpL9tieQXGUj+aehJaUsGbPxPhx4/xSc5s3b+4QkWN5QgHI7MgSVOy+WElck51r33+/rO7du3e7m2660fdf7RZNYip7JfZYlJLK2pJ4eXs+Zdmb9wwUtYt8EIAABCAAAQhAAAIQgAAEIAABCEAAAhCAQN8ggADUhONsjuzuFH6sre4SgIR93759btSou7xwoPYrCUF5zu9KApBFXUgESu0tY3uzDLz+OqdIFCWrMyV4VDNtTAAyxvFx+LBhfmm0UKxR/YqCUTSMGElwitPJkyd9FEkqmibOa5+zRBbjo8isMCrGysm2RYv+sdxeioexCvmprF0Po120F44YxPv8SJTSdUUMxcmeiUsuvsht3fp5fNt/tjzVCkDqm/bpkfgk21LJInlim1N57Zr1PRXZZX1Vu/G4qzwCkFHkCAEIQAACEIAABCAAAQhAAAIQgAAEIAABCNRKAAGoVnJdWM4c2RY10YVN+arN2Szne3cKQGpczm859EeOvKMkBF11ZT+3YcOGDo7xWgUgtaGoEzn4s/pny5iFURm2f4uic+IIoGrGJE8AmjZtalk0UlivzYOUoGH5TEiIo2nsfnw0USIWcWY99ZTnn7cvjSKLruzXr8MeQGrj5MkTfvm4mLHsikUdW+pN+yiJcVg+5B/abixS0UGWz/KkeNkc11jEycY5tCfO097e7q65ur+PPtIydkXSwgULOvTdymm5OYlZtjeQXbdjlr15z4CV5QgBCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAQAQQgJpwHpgjuy8IQIY/FoK0B82SJUvKRKA857cJGymBwJYhkxBR5M9EItm0ePHbXjiSsKFIHN1LRRBZP1JHE4BMmFC9WlbMRK8JE8Y72RgnK1fEZqvb6lAbEjY+/OADv3fPlCmTy/YBCgUg41MpkiiPv9q1vX5seTlxUsRMLOqkxDYTl7JEGHsmrG7rZ3i0PDEL5ckSVHTP5k4RziG3sO343JZ5k8gjsSdOFr2lNlPiXZa9lcYgbofPEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAQN8lgADUhGNvjux6CUASA2wvGXNyyylve86Ys1n3dN7IJNFAkRMSXOL+5zm/zYmfJwCpzgEtLW7o0CG5f1u2/HOfF7H77LPPnJbxMnaKUFq2bFnZvjt5zEzIiYWJQ4cOuVtuHu77KrErTlbu6v79c+1Vf1auWFEqfuTIEXfvPWN8vWazopgUbaIl3jT2oZBhAlDMu1Th/5zk8VcWcVPdo+6600cE2bJ6KVHH5rgt95a1LJzZYPljhnZfx7w8NsfFNE42d4xR3vy4Z8yY5BJ5cZ1qT/PN+OcdtU9QvJdUlr2VxiC2g88QgAAEIAABCEAAAhCAAAQgAAEIQAACEIBA3yWAANSEY2+O7EoO+aKmay+ZlmuvKXNGh05nczbLSa3zRic5w2Wf7HnrzTdL5uQ5v82JnycAXXbppW779u2l+qo5kRDU3r7XzXz8cafoJNmm89hxn6rThJyUeLF582Yn4UHjo3EKk5UzoS68l3VuYo7EhymTJztF1ijixpJxSglAlfhIWJKIFJa1enW0pdRs3poIkto354utW50ijjRep06d8kv0iWkqGkZ12zORYmg25OWxOZ4nAEnckS2dTRIxH5s+vex5U9+y/lJRQln25j0DnbWb8hCAAAQgAAEIQAACEIAABCAAAQhAAAIQgEDvIoAA1ITjaY5sc6R3xkQJF889+2yZ81mCg4QHS+ZsloNa582QTPzQ3jSW8pzfJmykBCBbiixPYLA2ihy1pFf/X1/VYWmzrLLWl5R4Idu0P5Fsmzr10bLl5eIl1bLqD69bFE6Kg/JJAJPQE4o4tiSbbFAkTlYy0SYsG+YNhQ8JOXn7E2kfnRG33er31dEeUHauvXZSyZ6JFEPLn5fH5nhKALI9ibTHT1b71kaRo4Q8zQ/9xaJeWD7kFS9tl2Vv3jMQ1s05BCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEEoCacA+bIrocAlIr+mTxpUlnkijmbu0sAksiQF4kT7o+ydOnS0gjlOb9NAJKQIHEhThIk1D/t43P8+PH4dlWfJarNmPGYr6+IYJYnAKlhGyMJc2F9JuYMHHi927//m0I22ljKPtkZJn22pQBjEcfmnJaOE/84hUJVXDbMa0u5jRs71v3fkSO9wJMSVWSLCV9zZs/2olSWaKX6zT4ds1JeHuMyceKEsogo1RUKYOITc8tqL+u62ZFqKy7T1tbml4rTEoPaN8iS2RsLVnnPgJXlCAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEBABBCAmnAemAO5swKQHNnz5s0ti/7RclOKuAiTOZu7SwBS/7SMmpZQ0xJlEheUZK+Ejocffsg7xWPhI8/5bVEcqf6pbjnXtf+N+qil0Y4cPhwicGfOnHGrV//RrVq1qnRde9iITbiEmm7KxptuutGFS3epDxIyLr3k4tLeSlZRJQFI/TZhRjaaEKDl5STWyeaRI+/wS9BZnTqqzT9/9JF7feHC0mWL0lH0iSKVLP3444++fxddeIFnG4s46pN4qy2JR+FSaGKjKLJ+V1zul6uLy1obOkrsUSSN2rcl3rQsXSqZWKRl5dSu7QeUymvPhI5ZKS+PcYnnlNVlS/FJhFM98dJ+hw8fdi+//JKfr1Zmx44dfum+CePHlUSzULzMi6ayOjTWEn+0ZJ/EIEv2TCIAGRGOEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAQLUEEICqJdYN+c2R3VkByJaiknPd/uJlxtQdczYrj867Oq1du9YLCWZT6njVlf3cJ59sLDMlTwCSGGL7rsiJL1FBjvWdO3eW6jCHvdqTw31AS4sbOnSIP+qzrocRRxZVJLFKwoHy6qjPyv/GG6+XxCuzTXUo+iUUECoJQDIwFKgWLVpUikI5dOhQSbhS3Vf3719mh66Fy+Sp3Uceftj3JeyjhB+JMsuXL3eaVykRR3sNKZ/qNIbiqHOVldikcqmyBlnt2/5NqidP1DGxSPnOO/fnThFPWcmeCR2zUl6eUJhRHzWWo+6602nclCTCLVmypLS/k/Vf+SR8ycYr+/UrE4CsPc2HTZs2+Xp0VF/ETQJikWRL5YURQ/ZMIgAVIUgeCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAIEUAAShFpcHXzLHcGQFIgoiEATmu7S8rOsaczcrXHQKQ8MrxvmDBa17ckANdbcsxP/KO33lHfBiBYsNhIkuWAHH06FE3bdrUkrh0y83D3b59+6y4P6peRXJcN6ClxEUOfokWGzducIqUsXTixAn30osvusGDBnrBx2xUXkVRSTSw1JkIIKtDESMSbSS2hMKVRJVly5a5G39zQ5kdd48e7da+/36Z2KS6FLHz5ptvlPooMUPiQnv7XmeiVhZD5Zk0cWJJCNKYzJr1lI+YqsTf+mHzt5KoEy69pr59++23VkWHo9WpY1aqlEdzQUvcmYCn83g5wLj/Gg+N/+xnnnFff/11WdMmKFoEkOaDRdxJjNScKJIUqaVnU+NuewbZM4kAVIQgeSAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIEUAQSgFJUGXzNHdmcEIHP0m/ijY5ZT2pzNytNdAlCDEdM8BCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQKBXE0AAasLh7awAFC6HZgJQnpiEANSEkwCTIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAKdIIAA1Al4XVW0swKQLSll4o+OWg4ua0kqBKCuGknqhQAEIAABCEAAAhCAAAQgAAEIQAACEIBA7QTkz7NtHiZPmtRhK4C45pUrVvgtBO677153+vTp+DafIQCBPkYAAagJB7wzApC+FKZOfbS0v43En3BvkVR3EYBSVLgGAQhAAAIQgAAEIAABCEAAAhCAAAQgAIHGE9CewS3XXuP3vd68eXOmQYcPH3Y3Dx9WMV9mBdyAAAR6HQEEoCYc0lgAkqjz9NOzykQdCTsSeuKonq1bP/cbyofRP889+6zTBvVZCQEoiwzXIQABCEAAAhCAAAQgAAEIQAACEIAABCDQWALy68m/J3/f+HHjMqOAFi5Y4POkfIaN7QGtQwACjSKAANQo8jntxgKQsh45csT9trW1TAQ679yfu3Xr2ko1paJ/9OsA/UogLyEA5dHhHgQgAAEIQAACEIAABCAAAQhAAAIQgAAEGktg//5v3MCB1zv5Azdt2tTBGLuftw94h0JcgAAEej0BBKAmHOKUACQzFeL5y1+cXyYCSRSSOJR1v1L0j8ohAHl8/AcCEIAABCAAAQhAAAIQgAAEIAABCEAAAk1LwCJ84v19wgihIr7Apu0ghkEAAnUngABUd6SdrzBLANLLfP78+WUCkEI/9WL/4YcfnDaCC5d+068CpP5XSghAlQhxHwIQgAAEIAABCEAAAhCAAAQgAAEIQAACjSVge/woCmj9+vUlY7766iunyJ+UL1A+wzVr1rjW1lvcz376E+87HDxooFu8+G136tSpUh3hSXv7Xjd92jTX74rLff5zzvkXN2LEbe79994Ls3EOAQj0AAIIQE04SFkCkEw9efKku/eeMWVCzyUXX+ReevFFHwIaCkASi/L2/rGuIwAZCY4QgAAEIAABCEAAAhCAAAQgAAEIQAACEGheAsuXL/d+QYsC0pYQj02f7q/JpximEydOuHFjx/p7WlVoyOBB/s9WGBp1152llYVUTn7EJUuWOAk+EosGtLS4oUOHuKv79/d1PDFzZlg95xCAQA8ggADUhIOUJwDJ3O3bt7v+v77Kv3hDwSc81wv94MGDhXqHAFQIE5kgAAEIQAACEIAABCAAAQhAAAIQgAAEINBQAt8fPeqjcSTQtLW1ua1bP3f6cbgidHTPku0Vrnxz58wpi/ZR5M+MGY9532K4ZNzXX3/trhvQ4v2O27Zts6r8UdFHH374Ydk1PkAAAs1PAAGoCceokgAkNV5hmha2GQo/dh4r/nndRADKo8M9CEAAAhCAAAQgAAEIQAACEIAABCAAAQg0DwEtxSa/4AP33++3hNB5vDzbpk2b/GpBU6c+6iQGxUk/HNcPyAdef507cOCAv20+QosuisvwGQIQ6HkEEICacMwqCUAy+fTp027s2AeTUUA3Dx/mpMoXTfZyl3ikcxIEIAABCEAAAhCAAAQgLk4AYgAAIABJREFUAAEIQAACEIAABCDQnASOHz/uRo26q+QXvHv0aL9thFmrH48/+eQTXiTK8vWdPXvWTZw4wYtEW7Zs9kVtLyGtPBRHAFndHCEAgZ5FAAGoCceriAAks/fu3etarr2m9LKvJfpH9SAANeEkwCQIQAACEIAABCAAAQhAAAIQgAAEIAABCGQQWL9+vRdvzjv3507nYdIPxxXFY77CSkcTiRQp9PTTs3w57QM0Yfw49+WXX7off/wxrJ5zCECgBxFAAGrCwSoqAMl0C/m0F/lvW1vL1vss0j0EoCKUyAMBCEAAAhCAAAQgAAEIQAACEIAABCAAgeYg8N1337kbhg71fzoPkwlAWhpuQEuLGzp0SO6fRQCpDok9a9eu9eXM36h2Pli3DiEohMw5BHoIAQSgJhyoagSgepiPAFQPitQBAQhAAAIQgAAEIAABCEAAAhCAAAQgAIHuIVBEALrs0kvd9u3bazJIQpCif7QFhYQk/S1Y8JrT8nIkCECg5xBAAGrCsUIAasJBwSQIQAACEIAABCDQQwgcOnTIrXh3uXt4ymQ34tZWd+MNQ/yfznVN95SHBAEIQAACEIAABCDQcwnkCUBayu3RRx7xS7mtXLmyU52U4LNuXZv75S/Od9dc3d+1t7d3qj4KQwAC3UsAAah7eRdqzQQgreH50ENT/NqbWn+zq/6k5FtIp635WchQMpX2T3pi5sweTcNCgy//98ucNvxrxqR/cLy+cKE7/7xz3TvvLG24idpwUevpah+uXbt2NdyeZjCg2cYoi4lFPcbPbVc/Bz2FTxa3zl7P4p73Py2dbbNe5d97b4279JKL3bx5c53+R4rUswj0pff1yZMn3by5s0uCz223trqHpkxyc+fMdjMfn+HPdc0EIeVFCOpZ8xlrIQABCEAAAhCAgBGo9P9SEn7k7xs16i6nfxN3Jp06dcrdM2aMa2a/UWf6R1kI9GYCCEBNOLomAJko053H7hKA5HhN9UvhpIMHDXQvPP+8+//t3fvXJFV97/E/K+iP8XpWgjkmBw1qEi7K0SESnfEEVAQEhhwRREwgXAygggS8EBcYLo6jxBEcD6DcwiWwZhhhRASXl2Et9Zc6613m87CfPbW7q3v6mX6e6XetNav76a7ae9dr76qG77d2FT9km31pBTQ3e7vr9m104Luub56/X331ULdj+/Z+3JB4oc3LXJ5++unuLW9+U98ejlmXrttsfdTqk9Zxu9HHwVbxabkd6ect92n/03Kk9R7p9tz24NOfvrg/1rnv9Vb4bZpnnxn/XBDy9v/5Z3PfImKeeo/GNpvxfE1C+Bvf+LfujW/448Me2DuvCc+FzGwfEj7PPde+OOGJJ/6zTwiRCGIbZgS5KKCAAgoooIACCmwtgWn/L/WrX/6y27btA/3/y1y0c2f3yssvr9vB3/72t93u3d/udu3atfb5gQMHusceffSwC9+efPLJPvnznne/q3vppZfW1veNAgpsfgETQJuwj1Y5AVQmhZhZ8eyzz27CHnqtSa2A5mtrbI13Gx34XoTCtNkTjzzySHfeued2Dz/88CKqm1rGpCvKmSHA9OhzzvnESs0OmtZHU1GP0gqt43ajj4NpPi+//HJ39VVXdddff91Rkji61bTcp/1Py9Fo5bTzx7E+AyjJCG7pwLnrWFsmna+Xua+/+93vup0XXtjPJP3JT35yRE257etf62f17Nj+oYmJn7oSkkSZEcRsIBcFFFBAAQUUUECBrSMw5v+liKsRXyPexkXX7zjhhO6v/uo9/St/8/kdd7x2l5X8fxv/b0Cyp1yXz/h/IxcFFNhaAiaAtlZ/HTOtzQygeuYEV1pzVer/Pu20/kfoIzt2dNzOZLMu+WGsbyW1WdvbatdGB75b9S7y84wp+mTZy7HguWzDjay/ddwuu99a7dpIi6NZdmv/xvxPy0a3czOdPzZ6X4fK37dvXz/zh5lO3uJuSGjjPuO2q9xGg0QQCaF5Fmb+MJPnE2d/bK7/ZuK/s9iWMijLRQEFFFBAAQUUUGBrCIz9fylu33bjjV/q3vmOE/pYG0mf4//0T7pPnnde99BDD3bE4rJwYeI//uPnuj9/+9vXrXvpJZd0zz9/ZBctpQ5fFVDg6AqYADq63tb23wIJttUJoAAlIMJzkB599JF8vOleWwHNTdfQKQ1aduB7SvNGfZ0xRZ8sezkWPJdtuJH1t47bZfdbq10baXE0y27t39j/adnItm6m88dG7udQ2SR8PnPppf0tLblVmsvRFWD2Fc+W4r93fvzjH89cOckbbuHGzJ8juWCGbZkJRFlHUs7MO+AGCiiggAIKKKCAAgoooIACGypgAmhDeS28JZBgWysBlIfLcVXCZgjot/ajFdBsrb9ZP1924HsRLhlTm2G8HAuei+iTzVpG67hddr+12rVZHWdtV2v/TADNKrnY9bn1GM/94eq/eWegLLZFq1da+oBE3KwzsHjWDzN3mD09aWFmz7TZPdwOjrIo00UBBRRQQAEFFFBAAQUUUODYEDABdGz045bbiwTrWwmgX//61922D7y/vz/pj3700GH7R5Dq3nvv7U477X39OiSK3v2uE/sHKpM8qhemsz711FMdU1bLaaxMf2Ua7NA2KYOH5F155RX99Fjq4Z6nF1xwfnfw4ME+OcVn7M8sCw/aIxDDLe7e9MY39NNqjzvuj/qH891/333rpt+mXKyoi1f2Z8+ePd1Jf/PX/f6z7f/5yI6Oh/K1FrahbB4AyPoxu+uuu7o8H4Hb0DD7atqSB2rTR/RVvSSYdeJfvrP72c9+Vn/d7zv1M62Yq5/rwDu27A/3o33fe0/teHAhS2nA3wkcU9bQv6F+eeGFF/p6457+fOa//qtvy2GNbXxQt5nVMnNtqC18Vo93+oTp1uxr+oRA7BduuGHwQfPZ3zyInunXHz3rzH5btud9OSWb8ZCysWS8MG6ot174bO/evd2O7dv7MU57MSIo/Pzzz9erN/+u+ygrlsF/+vyxxx7rzjjjg33baRvHMvXz3SwL7Z712C7bUtY11Kfl95Pe4875hWn02NEfHGt1wHXIJ+fDoXGTvi7rZhwwRhgrqYt+rqful9tMe885kAfSn3rKKWtjkX1hn4aO4bSB827uG531yzFY1ttyr8d1uQ3vZz1Osn1+J07ftu2wMc3xnnqH3PmsPH+02p660sazzjzzsHP63XffNZhYqccbfXD9ddetjSGOP357fvnf57/UlVf2j7LLczp9cPlnPzt4/sh29WvGZD1WWS9GGYf17yFtvPCCC9add1J+vX+t8zrrxy/nK/yHzoX5bZn2W/Xlm27qjw1m1gz9xqSN5evY34Zbb7mlL/tfPv/5cvO19/ym0v6LP/Wpw5I5JHf4nGOGMZWFvuRc+xd//vaZzrc///nP+4TN5Z+9LEU1X//hogs7/k1bklByFtA0Kb9XQAEFFFBAAQUUUEABBbaGgAmgrdFPx1wrE/CsA+LZUR5Cze1QeBZQgv/57tChQ915557bB1jyUDoeTMd7gi7bP/yh7pVXXsnq/WuCd3xPAoiH2J144l+uBTrP+cTZg7c8IaBKoIntCHSV2xGcuummG/vvykDhuoobf2T/CRLTDspNYorAEIHYOhCeIN1Xv/qV7p//+co+gMTD+8p9x6AMKqV6AjkXX/ypvq2Un4f+JVh9ySWf7pNR04Jqr5V3qHd+4xv+uHvyiSfy8drrt771rbW6htpD4AzTBBzLQOEPfvCDPunD9/xL4JHCY5Bxw9gg4Iof/cP66V8+u+GG69fahOcP7r//sPXijh2Bu9p9rYDqTdnmJM0OHDjQEWxOn5TWtOdb99yzVgoBv6uvuqrvx3IcZD9Yf//+fWvr86YMxt55553dW9/y5rW+zHaMy2eeeaZPprBP9DFlpa9p0+23376uXMbH+Z88r/djmzzoMWUO9eG6Aoo/6j7KVzkGCU4zvmlH+ir1DLUt27deU27Z99OO7WxTH7dDfdqqN58zXvCkD8v+zriq6xjyYZzSR9kGD/7mH+O7PAeSfM0DPNO3HM/Uzb8vfuELhwWd09bWK8m4lDk0Fsv+r4+jofFCGZjUx1LLvRzXvC+XeY4TtidpmWfJlf2S44B+mOX80Wo7dZW/SeU4TL/wGUkagvXlUo63nPfiWW7LftS/aZRFmZSd8ZLzztjzOG35/e9/31/Q0ErWl33D7yFjMm1MfWkDCdxyGdo/1uVfeV6fpY+TQKGM/A6UdfI+F5C85c1v6nJLu7ItOV9nu3pM57yU45H9LX8b+M3jt4//1nj11UMppn+NJ+0j4f6LX/xi3fdp25B3zg35XVy3YeOPu++6s08APVgkkxqrjv44s4Bmacfowl1RAQUUUEABBRRQQAEFFFDgqAuYADrq5FaIQBIgdQCHmTG7du3qky4EXeqAEsEfHlJNQO/aa65ZN3OHq6cvu+wzfXCJq6jL4CPPEfrSF7+4LpBKO1588adryQaSFuXClcYERQlmfuXWW9ddwV3WRaCnDvKW5Qy9v/nmm/uZGASLstBeEl/s99BVwAkOEZT629NP77haOQsByLM//vF+3+vb+FAuHrSTQOJzzz2XzXqjhx9+eG0mwSyBwyRx6j5MgO71rzuu76f6KmkCZgTOygBYGZwjGXfRzp3dSy+9tNbOvIlBXSffZ0yVwepsxyu3xyEgSACTgHfGB68xoL/p9zFL2eY6oDjpO8qmTsYAfcK+clV9FoKht9zyr71d/VDwBGNJjuLHvmY/GAOsT5nMmmKcUA7lsXCF/W233daXS+C29N29+9v954whysnCNrjt378/H019bfVRAuiMMepndlLaThuvvOKKtTFaJjymVTjPsZ221MfttH4bagvHITMJSbwl2Jz1eHgmgf1yafmwTqtd2Z7zFcktDPd873vrZnJxXJ988kn9+eORR8Y/N23fvn1924fOqfQ/9Tz++ONpQkfZnKP4x75kfLEC639n9+4+IcH37E+5tPYv47pMCrDdvMcJyZIkf+rjizI5/uvg9rTzR6vt7H+OO2a01bOfOLY5p3FcnnvuOf1sx5hkvHE8/9nbju8T+/wGZmE8Ma7YlgREuTADjM85bso+4PzLc2RefPHFcvXme6w4Hkk08rtWL+kbxhwJDX5LyjayDXaMn/eeekrHmM+S/WPb1nl9nj7+/ve/39fHDNqhWSrsP6blb2HZlvp8PetvQ5I47FddFrPlODdTP//qZxgmeTQ0Oyjf0adjF2b08NyeMQtjvh73re0oc8ysotb2fq6AAgoooIACCiiggAIKKLB5BEwAbZ6+WKmWJNhGAGvoH7chKoP0wUlghyQQga56IahNMKtMLtTr1H8nIFsGgwlKcesY2lYnk7I9gSduucU65bb5fp7XBKkosw6epp2tJEVujfO2449fF7DP563taGdmXA0FtFr7QWCLABe3wysTWQmA0UfcIq6+SpqAGfWU25X7vX37h/tb0g3VGwNe6yVjqnZjPQKkBANJALWek5Db+nDroDFL2jxkNuk7yk6ftPaVsUVws55hlWAs44MEEuO0XFIu35fBz6xDYoXAeB2YjN2Qa7Yd+9rqowTQSQwMJSjSNgLJQ7d9HFt/uV7aUh+faUv9+bR+K8vO+5T1sY99dF1wP9/Xr2nTkHXKqttFGTkn4dMK4iYwPhRcrtvB35xDeeYI44VZhUPn1HK7HEe0YWiWYtZlphvr1AH61v5lXNcJoIznWY+THMutmZ1pZ/maY4A2Di2ttuc3iaRrPcMn5TC2ma2DCX2UJeMN/zrZm3VyOzH2JYmecrtWe7P9tNecj4fGHNumb2gjt+wcGiNle8oLKcrPW304Tx/nXFHO8Ml+cpzQTto71Jb6fJ0xPetvQy6AKOugDRybnF+Zicdr/XuS47/ejm3z21n2dfar9UqiZsxt3dh+7C3gsu5Htn+4Va2fK6CAAgoooIACCiiggAIKbCEBE0BbqLOOpaYm2EaQpv7H7ciGrkROYIcgWivolduv1AHuSXYJ7JUBXAJMXE3P1dcEqFrLHXfcsdAEEPXEpg4QJ3DUCu5mZk2972ljnoUwtC/Z3zo4NrRuPuPWNlwRXifbCHAS5P/xj37UB+LqMgl80efl/pWBwvLz1JXXGAytE7ehsZEgZ9nHKTOvrYRWvq9f0+Z6/1hv0nd8P2k/Us9QgDHB2P/x1rf2t3nLunnNGMB3KElA8Jbxw/elU9pTzwBKubO8pqy6j3Kc1QnBlF22bSg4mvVmeU2ddb/n8zroPa3fhurO2BqaATS0fsuHdVvt4rscb0O3lUo93PaM2YOtZ3Nlvbxm/XpGWL6vX7OvJBE5Z7SWtLVORrf2L+O6TgBNskrd9XGS2RlDyYFsM/Q66fzB+kNtz28Sx1M9Q6euI/tSzu7IeGsdr5SRWSFln5b11jOA6nqn/Z39qhMV2S59Uyej831ec15nFi7tYyn3rz4fZLu4tL5nvbqPKT8XaJDsK5dcBFKP6bSlPl9nTNfniLLMod8G3PhvkfL3mHMYCVWOD2bWcayW5ea/T+o2pK5Yt2ZjZb3y9aS/fk/HM3vGLLMkgPIcoDHluo4CCiiggAIKKKCAAgoooMDmFjABtLn755htXYJtCfoQ0OEWRtxCh2DY+ed/8rCr6RPA4fsx/wjQlAu3J+K2ON/97nf728dxlW35rJAyUJOgUCtYnXITPKsDyfl+0ivBIJ7VwpX0V/zTP3VnfPBv154Bwv7FJmVMC5SVPuW+x3ooIZCys20rMJX1ytcEIcuEXD5LkJo62ZcE9BPkr+tJ/XXyqqyP95MMsp/lvmf79NOYcVOOg2w/9Jo21/vCupO+4/u0dUx7ynGQAGEdKE/7Um8rQVTWXToxc4EZDLSHbbm9VHkrp5Q/5rXVR+mDScdKXMp9HlPnLMc25bXaEr+hPm21gzHN7BnsuF0kz1J66qmn1t2erdy25TOpXXyXc9KYMdMaH2U7yvrK2Xj1OuXfcSuD3uX3eR9H2lqOs2xfj4HWuM54GLPPGTNxKhMmadek19RVtrdcf6jt2c9pyRHKyfbl+SXbTxpv2Z+6T/ntyO3heF4QvyO/+c1vyiaPep92xa/eKH1DQqV+DlG5bpIkQ/s36bwe91n6mHq5PR5Jvvo3OrPg6gseWtbZ/zH1l/uWJGd+62hTPstMKY6T8naumeFTllMacuELyZ+6r8t16vcblQDi9m+U7aKAAgoooIACCiiggAIKKLD1BUwAbf0+3JJ7kKBPHXRKIJqkQv2g+gRw+I6AVx6S3nolIJVl//59a8+ESKAnD84+fdu2PnhbBmUSdCs/S1nla4JH7M/YhSTJPffc3Qfa0xZeeWbLaae9r59Rw9+1DX8PfZ5648M6tCtLrMvP8l1es+2kQGTWLV+T4OEKbZbcmocAGPuZGQYJGCdAVgftxtY/yWDSfqaf0uetMcPnl15yydqtlsp9rd9PavOk7ygnbaXPJ7WF77idVpYEY1sBwmn1lnXX44HgI/3I7C3GEMcZzyypn2mStrReW32UPph0rMSlHvutuvh81mObbVptGeM31Jb+WTl79vTnJez4Rx/df999hyWCWj6T2sV3OSfRPwTjJ40bgsiTZuhkH1oO+b5+nWX99CXbZGlt3xrXKWOW4yRO087daVNeU1fZ3nzH61DbZxkvQ+0as322Gzrmeb4Qt9ok8ciY45Vzb/lMsXIfht5nv1rHXKtv6rJISJE8Lt3H7F/cZ+lj6h66TWYuMBia/dVqS/Z/1t+G1FUmt7gdIMdnxlBmReXiCz7nvNqabTVPAmgjbwE39tlC9VjwbwUUUEABBRRQQAEFFFBAgc0lYAJoc/XHyrQmQZ+hoFMeMl4/syYBnEmzG4YAmcnAw6kJjl1z9dUdD1IneJMlAaAycJWg27Rbsezdu7cPvLE/Yxe2IWjEQ7937/52H6glWZKlZTMpcMy28SEQmAAUn6c86m0tCTzNmgDKFc1J6OQq8AS88nyFXCWd7+sAWNo+rf5JBtnPct+zv+nj8vZE+W7e10ltnvQd9aWtk/pkqF3TgrHT6i3rHnLiex7w/t3vfKdPYDCW6BNuQzV2afVR+oB9by1xGTovDG0zz7FNOa22jPEbakc+IxHE7B8SZwR6+XfLLf+6dkss1mv5TGoX3409J6UtY17jMPa4yPpJ6Lbq4LhnhiX7Xz7PKdvXY6A1rjMeZjlO5nVKXbRxaBlqe8bLmBlAOOBRPt8l208672V/hhJAaSczf5gBxG8Kx+zJJ/1Nd/DgwXw98TX79fWvfW1wvVbf1CunnHI22Zj9i/ssfZy683ykXICQCw6Gnn/WakvaPfYYSN285gKI/J7RjvKWqHm+US6I4PtJYyXW+T0t62q957Zu295/WuvrdZ/Pcgs4Zv+wvosCCiiggAIKKKCAAgoooMDWFzABtPX7cEvuQYI+Q4FekjMETAhkcXVzkjW54pbPc0uxMTufq3AThKm3IfBEmWUCKIGkMphTb8ffBH7Ylv0Zs+QZAAQCCTzVC4kgAlGUWdtMChxTTgJcbFuWTdCJzxKkquvk7yRyJgUih7bL/mQ76qjNaHeuki7fl+Wl7Smn/K58P8kgY6rc92w79ByNfDfv66Q2T/qO+jJuErgc24YECFvB4Gn1Us8kp7IdBPF5vghjpwzqlusMvW/1UQKtk46VtI0yxizzHNuU22rLGL8x7eI4vu++PzwLq7wFFNu2fCa1i+9yjNbljWlPa50cF9Oe6ZPtx66fmX51W1vurXE9z3ESp2nPb8s+5TVjb+j8wTpDbS9/k8Y+A6g85seMtzEJoOzDoUOHOp7jxTFb1pPvh14zc6d1XKZvpp2b01e8Zhmzf9lubHtTNq/5nc7t/pIQGuqLVlsyplNGWf6096mf/3YgGU3ipkyOpk7K5tlErDepnozd8r9FprXh7rvu7G/V9txz+6et2id0xiR1Hnzggb5MynZRQAEFFFBAAQUUUEABBRTY+gImgLZ+H27JPUiwrRXo5cpZZgCVt1NhRxPw3b79w6Ofd5CA69AVzgTwSDIRMCuDLgnc8Pltt9227gr+gBPQOfnkk/ptW8GzrJvXlNuaxcTsJJ5LRL21Tfaj/rwum23LICbvSTjRVtpcLwSr2Ue2mxbkq7fl7wTdbvv61/sAWJ0sSIDt+uuv6xMJmQ1UlhWXafVPMsiYGkoO5sHwOGR2Uln/PO8ntTnfJfFVl5+ZUPQ1fT52STD2aCSAaFOCw+WxMa2trT4aCqDXZaUPW2O8Xj91zXJsU0arLem3aeOwbsfQ361ZdWnz0D6mXfUxRPlJtnKc3nzzzYPnpKF2TPost9HiuGAGSTkTcWi7setz20LK3Hnhhetup5j9q8+XrXE9z3HCOf0zl17an894NhN/j1ky9obOH2zfanueOcMztLiF6dDC7fi2bftA/3vGDNcsY8bbLAkgys0FDbVx6qxfpyUd0jeTxl1+C/m9fvzxx9eqGLN/8/RxKkhfc5794Q/39r/h3B5x6Heu1ZYj+W3IDFcSnYx5ZvfU44cEV//5Pff0zwNqXYjCPuW3ksT72IUxN/Y5QGNnAOX5P63xPLZtrqeAAgoooIACCiiggAIKKLA5BEwAbY5+WLlWJNg2FAQFg0AkQU6CTgTO8jyLBNL4/KKdOw971gG3r+K2art27VozzW1aCNCVwXaCN9yeiaAV5dVBbrYjiMn3lMntnbJQDlf7Evhh27HBNgJWXCHMNgR5aEMWntvwsY+e1b3+dcf139c2kwLHlJEAF2UTrMzC7YFImPH5R886c50Z7bnjjju64//0T7q3vuXNcyWAEqAkwfS2448/LACWABvPN+Kq/KEAWNo+LfA+ySBXkpezxmLAa4LS1LHne99b15+MN551w4PDM9bKbYfeT2pz2c9DwXr6neA4fXLGGR887Dk7bP//fvjD7iu33rqu6gRjF50AInjKmC4TAIz3r371K30bCajTpjFLq49aAfSyzGnnhXJd3s97bLfaMqlP67rz94EDB7rHHn30MJ8nn3yyP57qgHTLh/ISAG4lBnN7TM5JlFOeP9ieWQg33vilbv/+6bMB0n4SBpQ3VCZ9jnEZ1Mcu63PuKMcFY+Y7u3d3PE+FY50EYrm03Fvjet7jhHqpn/P3tddc05GMy0IbcWS/ymXa+aPVdsYMt/zjWOY3ofyNoXzO69z2je/rhNSY8Zbza3nMkwxkhll9rsLrc5+7vK/r1ltuKXev+T5tqGduZoP0DZb067//+zfXnTvZP35X2L/63JuyJ53X5+3jtI9+oW3nn//J/veYc3h5Hst6k9pyJL8NOZ7z3wPMCiqXJLjOPPPv+3bS3taSC1zqJFJr/Xx+7TVXj5oFxJivx33KyCszicYmlLKNrwoooIACCiiggAIKKKCAAptbwATQ5u6fY7Z1YwK9ZbKnnIXz7LPP9rODCDgR+HnHCSf0D0Tnlb/5nMBkFsr5uzPO6D/nOUAEVwnKEsQkKURAi23qBBCBTZ4ZlDJJkvDg9dRDUO8//uPeftuxCSDaRECIQBp18lqWSYDw0ksu6b8jsFQuCTTVn2edBLgotw4ylWYxoF7qx4FnvrD/kwJ1qad+zawA6h267RLBuNzSj3WGAlBp+7T6Jxk8/fTTHQ//po48UJz+y1L3Z+zjwHYkseqgaravX6e1OTMDMkYZc9/85mvjkqurSW5Sb9lmxid9xGf1leAJxpbB4LJd09rEujn2yjGSzzLGMeF9TH760/GzlFp9RH2UN+lYSTtaY7zcV97Pe2y32jLGr25DyuI4oo/L45nPOEeUS8uHdcpjKeOTwDL9zsKxdPvtt6+Nj7LO9BdJ2FkSQJTJLD7Kon/KMmkDn5VjZcz6HMcPPfRgudv9+1jVY2DSuJ7nOKEy6qcdtL8858WpHmPTzh+ttlPXK6+80id/qIt/Of/kt4LPLr74U33/lihjxttQAijblXWV5zHO5b/61a/KqiYenftcAAAOwUlEQVS+J/nFears52xQ9s3NX/5yPz4yNsv9Y5ziUC5p57Tz+rx9TF2cA7iFIRdOMLOWfhxaJrXlSH4bynEz9Oyh3A6Rvmol2WgvbeDikGlWQ/vGeeMD7z+tfxYQ7+dd2JbnCVGWs3/mVXQ7BRRQQAEFFFBAAQUUUGDzCZgA2nx9shItGhvoJVlAYIrEwr59+9ZsuKKbK93f+Y4T+oAbwRUCewRgCPyVs3XYiFkoXBmc4B8BrCuvvKK/OjuBvToBxHaUc/999/WB+gTl3/2uE7s777yzv/o+29YBzbWGNt6QkGG2T4KuZZktm0mBY6pJgAuLoUAeV2qzzzGgbm41xcyXbDtP8Im6c/X8kCHf04+TAmBj659kQGCaq+KxpC72j4BlubDOE0/8Z8fV2LGnX0895ZR+3QTay21a76e1mYAewXrGLu1hzNXJAK5+ZyxxW7wkGlnvIzt29LOU+L5cymDsUFuntYmyMr7KMcKMiLPOPHMtMUlbaBMz5MrZE2VbWu9bfTTmWEnb6uB8qy4+n+fYbrVljF/dFmbdkOAk6E8/849jjEQux1a9tHyy3sGDB/sZFYxL+oHZFcziKxfKvfCCC9b1F+P+6quu6l544YVy1dHv2Y79yPkhxwUJcmZW1kvWz37TVtrwhRtuWEtY1du03KeN61mPk9RLubQnvxNpI78dtem080er7amLNt57773d6du2rZ1bOJY5roZ+k9huzHgbSgBxbtmzZ8+6uugvEsp3333XYTPD0sbWa5IYQzP9yr4hmfHYY4/1sxYzPjlP5PewLn/M/mWbefuY7fP7w3mzlQCZ1pZ5fxteffXQWvJv6LyVxA7nhfL5QNnvvHLbW34rhpJIWWfSa57bc87ZH28aTNoeN7Zl9o/P/pkk5XcKKKCAAgoooIACCiigwNYTMAG09frMFiuggAIKKKCAAgsRIPnCLSmHLgAoE0C8d1m8AMknbhVKgpKZo/MuN934pT6BwywebuU2dmFdtvHWb2PFXE8BBRRQQAEFFFBAAQUU2FoCJoC2Vn/ZWgUUUEABBRRQYKECzIzkFprMAmPWShYTQJHYuFdm/5zwv/7isNvQzlMjs225hRvJnM9dfln30IOH34ox5ZL4+fy1f3h+ENsM3Z416/qqgAIKKKCAAgoooIACCiiwdQVMAG3dvrPlCiiggAIKKKDAEQswC+X6667rb1+3d+/etfJMAK1RbMgbkm0k3bj92zPPPLOQOnh+z7XX/CGxQyKIf//3op19QoiED+8z4yezflq3zltIgyxEAQUUUEABBRRQQAEFFFBgqQImgJbKb+UKKKCAAgoooMDyBfrnwHzi7O597z21I4nAYgJo4/qFpNs3vvFv3etfd1z/yt+LXOhDnufzDxdduDYriITPju0f6i7/7GX9jB8TP4sUtywFFFBAAQUUUEABBRRQYHMKmADanP1iqxRQQAEFFFBAgaUKmABaKr+VK6CAAgoooIACCiiggAIKKHDEAiaAjpjQAhRQQAEFFFBAgWNPwATQsden7pECCiiggAIKKKCAAgoooMBqCZgAWq3+dm8VUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBgBQRMAK1AJ7uLCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoosFoCJoBWq7/dWwUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFgBARNAK9DJ7qICCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgqsloAJoNXqb/dWAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFVkDABNAKdLK7qIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAqslYAJotfrbvVVAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQIEVEDABtAKd7C4qoIACCiiggAIKKKCAAgoooIACCiiggAIKKKDAagmYAFqt/nZvFVBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQYAUETACtQCe7iwoooIACCiiggAIKKKCAAgoooIACCiiggAIKKLBaAiaAVqu/3VsFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRYAQETQCvQye6iAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKrJaACaDV6m/3VgEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBVZAwATQCnSyu6iAAgoooIACCiiggAIKKKCAAgoooIACCiiggAKrJWACaLX6271VQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUECBFRAwAbQCnewuKqCAAgoooIACCiiggAIKKKCAAgoooIACCiigwGoJmABarf52bxVQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUGAFBEwArUAnu4sKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiwWgJzJ4AeeOCBzn8aOAYcA44Bx4BjwDHgGHAMOAYcA44Bx4BjwDHgGHAMOAYcA44Bx4BjwDHgGDjyMbDo9JQJIBNZJvIcA44Bx4BjwDHgGHAMOAYcA44Bx4BjwDHgGHAMOAYcA44Bx4BjwDHgGFjyGNg0CaBFN8TyFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFiMw9wygxVRvKQoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAosWMAG0aFHLU0ABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQWWLGACaMkdYPUKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiigwKIFTAAtWtTyFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQIElC5gAWnIHWL0CCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoosGgBE0CLFrU8BRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUGDJAiaAltwBVq+AAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKLFrABNCiRS1PAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFiygAmgJXeA1SuggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACixYwAbRoUctTQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBZYsYAJoyR1g9QoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKDAogVMAC1a1PIUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAgSULmABacgdYvQIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiwaAETQIsWtTwFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQYMkCJoCW3AFWr4ACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgosWsAE0KJFLU8BBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUWLKACaAld4DVK6CAAgoooIACCiiggAIKKKCAAgoooIACCiiggAKLFjABtGhRy1NAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFlixgAmjJHWD1CiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooMCiBUwALVrU8hRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUECBJQuYAFpyB1i9AgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKLBoARNAixa1PAUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBgyQImgJbcAVavgAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCixawATQokUtTwEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRYsoAJoCV3gNUroIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAosWMAG0aFHLU0ABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQWWLGACaMkdYPUKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiigwKIFTAAtWtTyFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQIElC5gAWnIHWL0CCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoosGgBE0CLFrU8BRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUGDJAiaAltwBVq+AAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKLFrABNCiRS1PAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFiygAmgJXeA1SuggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACixYwAbRoUctTQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBZYsYAJoyR1g9QoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKDAogVMAC1a1PIUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAgSULmABacgdYvQIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiwaAETQIsWtTwFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQYMkCJoCW3AFWr4ACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgosWsAE0KJFLU8BBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUWLKACaAld4DVK6CAAgoooIACCiiggAIKKKCAAgoooIACCiiggAKLFjABtGhRy1NAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFlixgAmjJHWD1CiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooMCiBUwALVrU8hRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUECBJQuYAFpyB1i9AgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKLBoARNAixa1PAUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBgyQImgJbcAVavgAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCixawATQokUtTwEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRYssD/B7CEU2uZz1i9AAAAAElFTkSuQmCC" /></div>
<div>
<br /></div>
<div>
It would be interesting to see if scopes can be limited to specific site collection also you can use this in conjunction with other delegated permission to fulfill different scenarios for your proxy API</div>
</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
</div>
</div>
Amr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.com1tag:blogger.com,1999:blog-7923569635494807119.post-13190623706571266052020-07-02T19:06:00.003-07:002020-07-21T05:16:36.837-07:00Microsoft Teams Development: an ngrok alternative<div dir="ltr" style="text-align: left;" trbidi="on">
<img alt="" src="data:image/png;base64,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" /><br />
If you are building a Microsoft Teams app, and if this app requires some SSO capabilities to access either a Microsoft 365 resource or any other own built API that you choose to protect using Azure AD.<br />
<br />
You will need to define the API using your own domain as a prefix, not an issue right? however when you try to get Microsoft teams authentication token your Tab iframe need to be loaded via the exact same domain.<br />
<br />
one quick tool I've used in the past is ngrok, which provides a subdomain to *.ngrok.io however with the free version you can't have a permanent subdomain so eventually you will have to change the domain while you're developing from now and then and more annoyingly you will have to update the api prefix in Azure AD<br />
<img alt="" height="38" src="data:image/png;base64,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VokAxn+VWoOyQKAmBKyDoCOvdkdO+9A+aAANoAE0gAbQABpAA2gADaABNIAG0AAaQANoAA2gATSABtCA+TpVsqHe//QfYcaqt8OX570SvnTxjvCfM3aF05ftC9ve/LSUYq7d81H49m2vtvxTmDpvGP91bj3KDoEBImAdBDcL3CygATSABtAAGkADaAANoAE0gAbQABpAA2gADaABNIAG0AAaQANooNoaMF9ngGylPtnK9DfDX6Z//Ld4y/t94vT3wH/M2NUnnzhfDT6o84bxX+fWo+wQGCAC1kHQkVe7I6d9aB80gAbQABpAA2gADaABNIAG0AAaQANoAA2gATSABtAAGkADaMB8nQGylZqy9ab//5r3SrBZ9q8e+DxMX/mXhjmv793czOTPSrPd71nxqnQc479KrUFZIFATAtZBcLPAzQIaQANoAA2gATSABtAAGkADaAANoAE0gAbQABpAA2gADaABNIAGqq0B83UG2oaKTX99jzcz/09bui/+qV/f2xn77X7vV+Y9iozx3yPQZAOBwUTAOgg68mp35LQP7YMG0AAaQANoAA2gATSABtAAGkADaAANoAE0gAbQABpAA2gADZivM5BelTf9ZbJrqf80418z/fV70WX3zbgvez+QDNvljfHfjhC/QwACfQhYB8HNAjcLaAANoAE0gAbQABpAA2gADaABNIAG0AAaQANoAA2gATSABtAAGuirgbvuvCOcPnZ027+f/uTHYeuWLaFMhubr9DF8enTAm/5a3l9/rcx/M++LFM/ilL0vUqZeh8X47zVx8oPAICBgHUSZnVCZaT/00EPhiMOHheuuuza88cYbpXamZdaDtPveSMGkHkxefPHFMOqUkcmfPg/Gdnvs0UfD//nfXw5X/PKXta/fq6++Gs772bnhqO8dGf74xz/Wvj5F9FbHuv/5z38Of/j978Ppp40NX/l//zcceshXwurVq2vbbnf8+tfJuaR9kbYjbD36A9qJdkIDaAANoAE0gAbQABpAA2gADaCBwawBM/61b/X307N+FMo2/83XGQiLKjb99V1/Web/gy/8NRkUoN872cz47yRuWpxup5eWR7eOYfz3g+TBgwfDi7t2JQ8h//nPf/YjpXKj1qWc5VIg9W4SsA6ijh3yvn37wowZ0xMTQcZjf0zH5cuXJ6aKBhDIaMnikTdcVnyOc/Nbdw3E50C3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" width="640" /><br />
Which in my honest opinion is too much so how I can update my Teams app and test it without continuously changing the prefix domain Application ID URI, one option is to use ngrok in a non-free capacity.<br />
<br />
The other option is to ditch ngrok all together and use Fiddler, yes fiddler they offer a tool that allows you to map a domain name to a specific IP & Port similar to hosts file with the advantage of specify a port<br />
<img alt="" src="data:image/png;base64,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" /><br />
<br />
using fiddler Host mapping tool, I can point my local dev environment to my actual domain and I don't need to keep changing the Azure AD Application ID URI.<br />
<br />
The drawback of this that you would have fiddler running in a capture mode to enable this, you could also limit the capture to your domain using fiddler filters.<br />
<br />
<img alt="" src="data:image/png;base64,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" /></div><span><a name='more'></a></span><div dir="ltr" style="text-align: left;" trbidi="on"><br /></div>
Amr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.com0tag:blogger.com,1999:blog-7923569635494807119.post-23492280017638132142020-03-30T04:43:00.002-07:002020-07-21T05:17:02.860-07:00Building a Multi-tenant Microsoft 365 App Part 3: Integrate with payment provider<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBCEPzxykp9ZYBvkbFHAhiyx7zNGd5IIIjqZhCyULvWg-UoRBZU0ioALxf-gMlejn09cCbwY1ecfou-iVruydQi6kAF-4nDN_iTUATO2TxTl03q9RAmV3mHOUg0VjCnoTI3Ryg0IAnTJk/s1600/1.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="249" data-original-width="1121" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBCEPzxykp9ZYBvkbFHAhiyx7zNGd5IIIjqZhCyULvWg-UoRBZU0ioALxf-gMlejn09cCbwY1ecfou-iVruydQi6kAF-4nDN_iTUATO2TxTl03q9RAmV3mHOUg0VjCnoTI3Ryg0IAnTJk/s1600/1.PNG" /></a></div>
So this is the final part of the thinking out loud type of a guide to build a multi-tenant Microsoft 365 App, if your app is not free you can provide either a one-off license , per user license or per tenant license, I'm not going to go through all the options in details.<br />
<br />
In the old world when I used to publish apps on Office SellerDashboard now AppSource via developer dashboard then now Partner centre. There is always two types of apps or actually three, from the store perspective 2 types (paid and free). Most ISVs will use the free option on Microsoft store and they implement their own license model which allow them to decouple it from Microsoft's existing model also they can offer different types of licenses etc..<br />
<br />
For me I used to piggyback on Microsoft's licensing model. Why ? firstly I was building mainly free apps and putting it out there for people to use and I only have a single Outlook Add-in I have made paid for just doing a simple market test back in 2015, so I used Microsoft licensing model where I rely on Microsoft licensing etc.<br />
<br />
now with Microsoft changing the model as in my humble opinion most ISVs already using their own license model and the current model is relatively a major overhead or maybe some other reason but this is my opinion. So relying on Microsoft to handle your M365 app is not an option, so you better off listing the app as Free and have your own integration with a payment gateway.<br />
<br />
<br />
My intention was to use a provider that fits both recurring payments (subscription based model) and one off. and most importantly because I'm a very lazy developer something that requires minimum effort.<br />
<br />
so I decided to use Stripe and Stripe checkout for the following reasons:<br />
<br />
<ol style="text-align: left;">
<li>Easy setup , I'm not going through how to setup products and plans, there are heaps of documentation on Stripe website that could provide more detailed and better explanation </li>
<li>Minimum code (JS mostly, you can even copy the code from Stripe dashboard) </li>
</ol>
in less than 10 minutes you can have a stripe checkout integrated to your application, but is it that easy ? the answer is not really when the user click checkout it doesn't guarantee that the payments is correctly processed you have two options here:<br />
<br />
<ol style="text-align: left;">
<li> activate your premium features asap, and when the payment is not confirmed remind the user and try again later (which is great allowing user to test your app and maybe pay later)</li>
<li>Switch off your premium features until a successful payment is being processed.</li>
</ol>
<div>
So how can I link the user M365 tenant to the newly created stripe subscription, maybe i need to know if another user within the same tenant has purchased a tenant wide subscription. Stripe checkout offers minimal functionality to customise the checkout data passed, but you can pass tenant ID or user ID if you are offering per user subscription as clientReferenceId as below</div>
<script src="https://gist.github.com/ministainer/5571c78015801336018fde3b094b60dd.js"></script>
<br />
<div>
<br /></div>
<div>
<br /></div>
<div>
the main question is : how to make sure that you know when Stripe has processed payment or not in this scenario ?</div>
<div>
<br /></div>
<div>
<b>Stripe Web-hooks to the rescue </b></div>
<div>
<b><br /></b></div>
<div>
You can register a set of strip web-hooks to make sure that you listen to Stripe events, in my case I have created an Azure Function (Http triggered) that queue Stripe requests in a queue that have another Azure Function that process the requests, the following is a snapshot listing the events I subscribed to<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBCEPzxykp9ZYBvkbFHAhiyx7zNGd5IIIjqZhCyULvWg-UoRBZU0ioALxf-gMlejn09cCbwY1ecfou-iVruydQi6kAF-4nDN_iTUATO2TxTl03q9RAmV3mHOUg0VjCnoTI3Ryg0IAnTJk/s1600/1.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="249" data-original-width="1121" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBCEPzxykp9ZYBvkbFHAhiyx7zNGd5IIIjqZhCyULvWg-UoRBZU0ioALxf-gMlejn09cCbwY1ecfou-iVruydQi6kAF-4nDN_iTUATO2TxTl03q9RAmV3mHOUg0VjCnoTI3Ryg0IAnTJk/s1600/1.PNG" /></a></div>
<br />
<br />
You might need to subscribe to other set of events, read the documentation carefully but this is what I've selected </div>
<div>
<br /></div>
<div>
<b>Why 2 Azure Functions?</b></div>
<div>
You might need to sequentially process some of the events prior to the others and because you don't control the order that stripe call your registered webhook it's better to pass them all via a single pipeline.<br />
<br />
In my case I was storing stripe events data in a table which lists subscription status and another one for invoices, these two tables are in the "common" storage account , you can decide to move them to specific storage account but you won't be able to completely wipe storage account data without archiving these.<br />
<br />
I got side tracked, so I needed to process the CheckoutCompleted event first as it's the only event has the "ClientReferenceID" that allows me to later locate the Tenant and enable/disable the premium features.<br />
<br />
in this case I rely on a record of the subscription to be created if I can't find it I'll simply throw exception that makes Azure function retry for 5 times, during this time I would be hopeful that the CheckoutCompleted event is processed.<br />
<br />
Is that the best way. <b>Absolutely not </b>but it works and it's super easy the code is below.<br />
<br />
<script src="https://gist.github.com/ministainer/c338282bea64552ee52eb276ca4ebda1.js"></script><br />
<b>Another Thing to Consider </b>if you decided to put these in the common area make sure that you are not breaching any data sovereignty issues.<br />
<br />
as you can see the code above ensure that a subscription record has been created first then when invoice processed successfully you can locate your tenant/user object using the clientReferenceID and update it's subscription tier and payment status.<br />
<br />
Another thing you need to worry about when your user choosing to change tiers and then you will have to cancel their subscription and create another one, you can choose to continue the billing cycle using the old subscription or prorate the fee to the exact day of switching.<br />
<br />
I've been distracted for the past couple of months due to reasons we all know, I hope wherever you are to be safe and I hope we get out of this stronger.<br />
<br />
Be Safe<br />
Amr<br />
<br />
<br /></div><span><a name='more'></a></span>
</div>
Amr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.com0tag:blogger.com,1999:blog-7923569635494807119.post-13767974297540043412020-02-22T03:42:00.002-08:002020-02-22T03:42:36.862-08:00Building a Multi-tenant Microsoft 365 App Part 2: Data Partitioning<div dir="ltr" style="text-align: left;" trbidi="on">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYVJUkiavBiMoLPTCxPh08IQbmprw9Mrf1OZnDmfEEMTlcO_zZ_8SDdHedkAQvTQLpwkiVHLsNzQ5jmlP0S3RPkWhesnqEeCI755p4dNPBrevVa9RXo1ZslCizYOiLizTqvU84bqECL9E/s1600/1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="720" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYVJUkiavBiMoLPTCxPh08IQbmprw9Mrf1OZnDmfEEMTlcO_zZ_8SDdHedkAQvTQLpwkiVHLsNzQ5jmlP0S3RPkWhesnqEeCI755p4dNPBrevVa9RXo1ZslCizYOiLizTqvU84bqECL9E/s1600/1.jpg" /></a><br />
In this part we will discuss how we can partition different tenant data, in general you should have 2 types of data:<br />
<ol style="text-align: left;">
<li>Common Data that should live in a common data storage for this you can use a common database/Azure Storage account, example of this data is Tenant Configuration, admin data like invoicing and subscription status in case you've decided to make your app paid or freemium.</li>
<li>Tenant Specific Data, In this case you can either go with logical segregation (using single azure storage account and use partitioning within the table) However, I'm always in favour of having a physical partitioning. This allows admin to choose data location upon registration. Your tenant registration will not only create some data configuration items in the common data store but it will also attempt to create a separate data store for the newly registered tenant. This can be achieved by adding a message to a storage queue which triggers an Azure Function which will provision the necessary artefact for each tenant.</li>
</ol>
<div style="text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYVJUkiavBiMoLPTCxPh08IQbmprw9Mrf1OZnDmfEEMTlcO_zZ_8SDdHedkAQvTQLpwkiVHLsNzQ5jmlP0S3RPkWhesnqEeCI755p4dNPBrevVa9RXo1ZslCizYOiLizTqvU84bqECL9E/s1600/1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="720" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYVJUkiavBiMoLPTCxPh08IQbmprw9Mrf1OZnDmfEEMTlcO_zZ_8SDdHedkAQvTQLpwkiVHLsNzQ5jmlP0S3RPkWhesnqEeCI755p4dNPBrevVa9RXo1ZslCizYOiLizTqvU84bqECL9E/s1600/1.jpg" /></a></div>
<div>
The main two questions/concerns would be </div>
<div>
<ol style="text-align: left;">
<li>Where shall I store access to these various storage accounts? and </li>
<li>How can i distinguish between tenant requests if I will be using the same services? (physical segregation for the API layer is an overkill and not necessary in my opinion)</li>
</ol>
The answers for the above questions are pretty simple. First you will need to store the keys for each tenant in a key store like Azure key Vault. For the second one we are very fortunate that tenantId is passed as part of the user claims and you can easily extract it from the claims using the below line of code. </div>
<div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitjY0BJmczdQ1UmvJnai_-YR3f4nV0-8zy6BIjTN3ALjenq4ywwTDm2BDh5l2PDu3QOc_j1sKFB_dGjoGzGn8TlWNyD9RwxStyUzPX4W2p6ijY9qBumPgS9QK26wPSJRiYQHe1SLokoEw/s1600/2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="60" data-original-width="1285" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitjY0BJmczdQ1UmvJnai_-YR3f4nV0-8zy6BIjTN3ALjenq4ywwTDm2BDh5l2PDu3QOc_j1sKFB_dGjoGzGn8TlWNyD9RwxStyUzPX4W2p6ijY9qBumPgS9QK26wPSJRiYQHe1SLokoEw/s1600/2.PNG" /></a></div>
<div>
You can use the tenantId to locate your tenant record , get the tenant storage account key from Azure Key Vault then once you get a reference to the tenant storage account you can do the operation you desire.</div>
<div>
<br /></div>
<div>
<b>Very Important: Don't rely on the client app to send the tenant Id , always get it from the user claims </b></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div>
<br /></div>
<div>
In the following parts I'll address some of the concerns that I've faced and how I overcome them, I'm keen to hear your thoughts some of the ideas are pretty basic and I'm open for more sophisticated approaches:</div>
<div>
<ol style="text-align: left;">
<li><b>What you shall do when a user decided to delete the registration?</b> The answer is do you want to keep the organisation data for a while so the admin can restore the data specially if the deletion was by mistake.</li>
<li><b>What shall I do for data backup and storage account tiers?</b> You can include the storage tier in your tenant registration tiers for example if you offer a free/Basic tier you can use LRS for a higher tiers you can GRS option.</li>
<li><b>How can my client App access my tenant blob files?</b> the need for this might arise if you store some static files for each tenant blob and you need you client app to access these files (custom logos/custom images etc..) one easy way is to use a shared access signature another way is to allow your Azure AD to control access to your blob storage.</li>
<li><b>How can I stop users from abusing the shared storage? </b> as far as I know and until the time I've last checked (couple of weeks back) I know that there is no storage quota limit per storage account or per blob container. What I was successful to do is to get used capacity per storage account using Azure monitor client this is of course a delayed result but you can get the updated value then store it in your tenant record and always check if the each tenant still have available quota or not. Of course your decision will be delayed as it rely on Azure monitor metric but better than nothing.</li>
</ol>
<div>
<br /></div>
</div>
<div>
In a nutshell this is a very basic multi-tenant application that uses the simplest form of storage (Azure Storage Account) to segregate each tenant data in a separate physical container if your app is more complex you can use other storage options like cosmos db.</div>
<div>
<br /></div>
<div>
In the Next post I'll go through the simplest method to hook up a payment gateway like stripe to your application.<div class="separator" style="clear: both; text-align: center;">
<br /></div>
</div>
</div>
Amr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.com0tag:blogger.com,1999:blog-7923569635494807119.post-78811252002872706872020-01-13T22:06:00.004-08:002020-01-13T22:06:57.212-08:00Building a Multi-tenant Microsoft 365 App Part 1: Authorisation & Authentication<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc1UgyK59fjXbQdj6_K94uRtx7Xa0hNMZq5SsuqpQXNO6LLoXNFNoPXqKcK3TgJ6yck5p9slEUveswVJx1GKtHqkbGlqFV6uXC3YelHeiLShjjGFR5XVF7JNBXhUf8-klbKomRiVNwmpw/s1600/2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="782" data-original-width="790" height="632" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc1UgyK59fjXbQdj6_K94uRtx7Xa0hNMZq5SsuqpQXNO6LLoXNFNoPXqKcK3TgJ6yck5p9slEUveswVJx1GKtHqkbGlqFV6uXC3YelHeiLShjjGFR5XVF7JNBXhUf8-klbKomRiVNwmpw/s640/2.PNG" width="640" /></a></div>
<br />
In this series , I'll talk about building a standalone web app that connects to some of your Microsoft 365 workloads, as an example we will assume that we are building a Mutli-tenant app that connects to Azure AD, SharePoint and Planner.<br />
<br />
In this post I'll focus on one fundamental part which is authorisation&authentication. From an architectural standpoint we don't have a lot of options to assess specially if we are looking to use some of the existing platform capabilities<br />
<ol>
<li>Use Azure AD as your main Authentication/Authorisation provider , to get more details about how please read my detailed previous post(<a href="http://www.sharepointtweaks.com/2019/11/protecting-your-webapi-using-azure-AD.html">http://www.sharepointtweaks.com/2019/11/protecting-your-webapi-using-azure-AD.html</a>) in which I explained how to use Azure AD to not only connect to existing Microsoft Graph APIs but I also used it to protected a custom API I've built.<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnoF_EnYSgzLq3crEXmOVFilmcndfNpzisiDyf06tJwmHWaxS1IfmileD9VQtf83yzbLLq1jEwsZUPJTkDAFOFSt0YLnXF3ePiti_Us3ULH7wu3suY99UajTfnE_T5UDquRseVuhqwjoA/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="863" data-original-width="1104" height="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnoF_EnYSgzLq3crEXmOVFilmcndfNpzisiDyf06tJwmHWaxS1IfmileD9VQtf83yzbLLq1jEwsZUPJTkDAFOFSt0YLnXF3ePiti_Us3ULH7wu3suY99UajTfnE_T5UDquRseVuhqwjoA/s640/3.png" width="640" /></a></div>
</li>
<li>The second important thing to consider is permission scope elevation. In other words, when requesting permissions you should start with least privileged set. This is not only a good user experience but it will allow you to provide partial functionality to normal users even if your full app functionality requires an admin consent. An example, if your app is trying to get users images, it will require Read.Users.All scope which needs an admin consent. If you try to request this scope the app will keep showing the users that it requires admin consent which will make it not usable at all. <div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFzwGraBUyjVeUsWDbCsk1bD2-2rlZ7ZgiigTBWlhIGu3T7mC2LkwvyzUjXedFx2U4NDxfmTReektOcfYWOn5pGhyUJe3JAFxyhU6pyFVC0uFwrYhLm5ncyPzUbqRK9vBqCxZKtW5RQsw/s1600/2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="782" data-original-width="790" height="632" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFzwGraBUyjVeUsWDbCsk1bD2-2rlZ7ZgiigTBWlhIGu3T7mC2LkwvyzUjXedFx2U4NDxfmTReektOcfYWOn5pGhyUJe3JAFxyhU6pyFVC0uFwrYhLm5ncyPzUbqRK9vBqCxZKtW5RQsw/s640/2.PNG" width="640" /></a></div>
The solution to this problem could be very simply, don't initially request the scopes that requires admin consent until an admin "configures" your app. The trick would be how you can make sure that your app is configured without risking requesting some write permission to the directory which will make the admin very reluctant to try out your app. You can do this by creating a configuration record in your app metadata (you can store this configuration anywhere Cosmos DB or even Azure Storage Table), This configuration record can be created as part of multi-step process in which you can ask the admin manually to consent to the add and maybe throwing a button to ease the process. You can simply assume that the admin has configured the app correctly so when your app loads app it checks if there is configuration record it requests the full set of scopes.</li>
<li>The other challenge is how your app would tell whether the current user is an admin or not. This indeed is a tricky one, if you rely on user claims and given that the user could be a member of a lot of groups. Group associations won't appear as part of the token claims . You will require to query user groups maybe multiple times to just check whether the current user is and admin or not. <br />In my case I used a very simplistic approach. I used Azure AD app Roles, I've created a single App Role called "Admin" and I've asked the Microsoft 365 admin to add himself and maybe other people to this group and by adding the attribute [Authorize(Roles = "Admin")] I can make sure that this endpoint is only available for users with Admin roles. The drawback of this approach is you have to use direct user/role associations unless the organisation has P1 or P2 Azure AD license.</li>
<li>Using Client-Side Authentication Library like MSAL will definitely make your life easier to implement authentication including login, token acquisition and token refresh. If you are using MSAL within a single page app it might be a bit challenging, if you want to read more about some issues with msal and SPA you can get an idea reading this github issue <a href="https://github.com/AzureAD/microsoft-authentication-library-for-js/issues/697">https://github.com/AzureAD/microsoft-authentication-library-for-js/issues/697</a> </li>
</ol>
<div>
<br /></div>
<div>
This would be a wrap for this post, in part 2 we will discuss how to do logically or physically partition tenant data along with some challenges that comes with an easy to provision cloud storage vs. associated consumption cost.</div>
<div>
<br /></div>
</div>
Amr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.com1tag:blogger.com,1999:blog-7923569635494807119.post-40897585675514765542019-11-27T15:12:00.000-08:002019-11-27T15:12:27.287-08:00Retro: Organising a Multi-city Developer Bootcamp<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuXONdwRWVQGFFoj3-jzQyI4LvOvPSE9YACAE3lYrxemNRRFOn00kk5O1FmISRJYPfwXBJ1Q_2ZsThah1WLC5HLXpmls2TStKHo0UwF6dyDEK0qteX6T5kjXNtDBf445xqr7RoHUXXNkI/s1600/Slide1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="734" data-original-width="1306" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuXONdwRWVQGFFoj3-jzQyI4LvOvPSE9YACAE3lYrxemNRRFOn00kk5O1FmISRJYPfwXBJ1Q_2ZsThah1WLC5HLXpmls2TStKHo0UwF6dyDEK0qteX6T5kjXNtDBf445xqr7RoHUXXNkI/s1600/Slide1.JPG" /></a></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;"><br /></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;"><br /></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;">So,
last year was a very special year for me, exactly a year ago I've been thrilled
to share with more than 11 MVPs across APAC region the honor of hosting 6
Office Developer Bootcamp, what made last year special is that we continuously
kept raising the bar.<span style="mso-spacerun: yes;"> </span>Starting in 2017
with the first Global Office 365 Developer Bootcamp we had only three cities:
Sydney, Melbourne and Auckland for the first year. For 2018 we decided to
increase the count by 100% adding Brisbane, Hong Kong and Kuala Lumpur to the
mix. <span style="mso-spacerun: yes;"> </span>You might wonder why HK & KL, I
will let you guys know a bit later.<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;">I
thought - with a little nudge from Shiva to share some of the lesson I've
learnt in organizing Office 365 Developer Bootcamp across such diverse
cities/communities, it goes as below in no particular order:<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 27.0pt; margin-right: 0in; margin-top: 0in; mso-list: l2 level1 lfo1; tab-stops: list .5in; text-indent: -.25in; vertical-align: middle;">
<!--[if !supportLists]--><b><span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;"><span style="mso-list: Ignore;">1.<span style="font: 7.0pt "Times New Roman";">
</span></span></span></b><!--[endif]--><span dir="LTR"></span><b><span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;">Pull an awesome
team together: </span></b><span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>Having
Ashish, Cameron, John, Paul and Chris and many more to support this event was a
key to success in both 2017 & 2018.<b><o:p></o:p></b></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 27.0pt; margin-right: 0in; margin-top: 0in; mso-list: l1 level1 lfo2; tab-stops: list .5in; text-indent: -.25in; vertical-align: middle;">
<!--[if !supportLists]--><span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;"><span style="mso-list: Ignore;">2.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span dir="LTR"></span><b><span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;">Plan your trip right</span></b><span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;">: if you decided to
do a lot of travelling, you got to plan it right, I remember booking a
multi-city trip from Sydney->Auckland->Brisbane then back to Sydney. It
helps with the budget and kept the MRs less annoyed.<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 27.0pt; margin-right: 0in; margin-top: 0in; mso-list: l3 level1 lfo3; tab-stops: list .5in; text-indent: -.25in; vertical-align: middle;">
<!--[if !supportLists]--><b><span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;"><span style="mso-list: Ignore;">3.<span style="font: 7.0pt "Times New Roman";">
</span></span></span></b><!--[endif]--><span dir="LTR"></span><b><span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;">Remote Event
Planning is stressful: </span></b><span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>I think we
could all agree that it's easier to run an event in your city, for last year I
believe the toughest event of all was Kuala Lumpur. The main reason that I had
no co-speakers and I had to arrive to Microsoft Malaysia very early in the
morning having flew in the night before (the people who knows me very well I'm
not a morning person and I can't function properly before 10 am!). I also had
to change the room setup to match the desired setup (classroom). I still feel
bad for the attendees as I ran the whole event from 8am to 3pm.<b><o:p></o:p></b></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 27.0pt; margin-right: 0in; margin-top: 0in;">
<span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;">This year I'm
fortunate to have a whole team in Kuala Lumpur to support the event and almost
200 registrations for the event, I even decided not to travel and do a remote
session, that would keep someone very happy!<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 27.0pt; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo4; tab-stops: list .5in; text-indent: -.25in; vertical-align: middle;">
<!--[if !supportLists]--><b><span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;"><span style="mso-list: Ignore;">4.<span style="font: 7.0pt "Times New Roman";">
</span></span></span></b><!--[endif]--><span dir="LTR"></span><b><span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;">Keep a dynamic
Event Format<span style="mso-spacerun: yes;"> </span></span></b><span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;">This is something
I've done completely wrong in the first year, what might be your typical event
in one place of the world is completely different in another place as the attendees’
expectation might be completely different. You will have to tailor your content
to fit the location, having a local team will definitely point you to the right
direction<b><o:p></o:p></b></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 27.0pt; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo4; tab-stops: list .5in; text-indent: -.25in; vertical-align: middle;">
<!--[if !supportLists]--><b><span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;"><span style="mso-list: Ignore;">5.<span style="font: 7.0pt "Times New Roman";">
</span></span></span></b><!--[endif]--><span dir="LTR"></span><b><span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>Do your best to understand the culture
differences </span></b><span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;">for
almost every city, Friday was our first choice for the event day as we
discovered that a weekend full day training events usually have a very high
dropout rate.<span style="mso-spacerun: yes;"> </span><b><o:p></o:p></b></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 27.0pt; margin-right: 0in; margin-top: 0in;">
<span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;">That wasn't the
case for Kuala Lumpur, although I'm a Muslim with two Mohammeds in my name, I
completely forgot that Malaysia is a Muslim majority country and they either
have Friday off or half working day, I had to move the date to Tuesday and
change my hotel and tickets.<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 27.0pt; margin-right: 0in; margin-top: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 27.0pt; margin-right: 0in; margin-top: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;">So
why Kuala Lumpur and Hong Kong, the reason is very simple, it was easier for me
to travel to these cities visa free as I still hold an Egyptian passport!<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal">
<o:p> I'll leave you guys with some photos from the events</o:p></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijJEuTrWaQrs9NWCxEeY4rv0K_439dd-ovaQa9XgVU7o8Rh2tDS5jupqdYQfGuawGei1WhXTEbLtndP9fX9D6Gq_X4aYTLmwJUdMExwH6LA5ze96y4bWwRQx2QvS4F2A4VT5_YL-Vs2I4/s1600/Auckland.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1200" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijJEuTrWaQrs9NWCxEeY4rv0K_439dd-ovaQa9XgVU7o8Rh2tDS5jupqdYQfGuawGei1WhXTEbLtndP9fX9D6Gq_X4aYTLmwJUdMExwH6LA5ze96y4bWwRQx2QvS4F2A4VT5_YL-Vs2I4/s640/Auckland.jpg" width="640" /></a></div>
<div class="MsoNormal">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjF7LoUmH7klz4rOyJnv_hpGtBsyt4UgmHClRoVdZpLUmsouBYTboS8bzUBnUjyeypyh2jGQe0Jua0QalWKX2ATjbpqNaX71_g5axZAP5pZoQ1Hm40qiRkAGHW2lv-jwf6mZUgHkNZ0ZN0/s1600/KL.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1200" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjF7LoUmH7klz4rOyJnv_hpGtBsyt4UgmHClRoVdZpLUmsouBYTboS8bzUBnUjyeypyh2jGQe0Jua0QalWKX2ATjbpqNaX71_g5axZAP5pZoQ1Hm40qiRkAGHW2lv-jwf6mZUgHkNZ0ZN0/s640/KL.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8vJZy9mL44IwiBFALtgUIBnrif28xgnnUvuhr-Cmv5cELaNMLozxpp0KMO9RjBMKSZJp1gXawk3uO5nOkuBTYLyPixGDlx4Yw20ADDYRQf0tMmhxo0X-pbyFLattXkQhbqZFUThyxif0/s1600/Melbourne.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="768" data-original-width="1024" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8vJZy9mL44IwiBFALtgUIBnrif28xgnnUvuhr-Cmv5cELaNMLozxpp0KMO9RjBMKSZJp1gXawk3uO5nOkuBTYLyPixGDlx4Yw20ADDYRQf0tMmhxo0X-pbyFLattXkQhbqZFUThyxif0/s640/Melbourne.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYcXO67vSloXftfVFqrr8aplZBekM_fKZaGEUw0dYo55OMoHrXmN8dZI1L9wnz6oHmhnNMwcyI87_PJCyYkWv1UmwuuK1BAQZxlXl4FKSu-ZI7V36XYfSTRVP3CuQWxe9V2DaMpBZQk5g/s1600/Sydney.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1200" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYcXO67vSloXftfVFqrr8aplZBekM_fKZaGEUw0dYo55OMoHrXmN8dZI1L9wnz6oHmhnNMwcyI87_PJCyYkWv1UmwuuK1BAQZxlXl4FKSu-ZI7V36XYfSTRVP3CuQWxe9V2DaMpBZQk5g/s640/Sydney.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_9xVt4eAAUEtt7NYKmtjcj6NwuQbFtld6wqOxmISR_aePLaCf3ibnusjOmGqWxsixMh8xs2ZvlBsH5FaJzBh7lKT88_rake6R7W9fE0g2LJgBbIicqOG7zLTloIu27CeCObJs5zDd2rE/s1600/Brisbane.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="900" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_9xVt4eAAUEtt7NYKmtjcj6NwuQbFtld6wqOxmISR_aePLaCf3ibnusjOmGqWxsixMh8xs2ZvlBsH5FaJzBh7lKT88_rake6R7W9fE0g2LJgBbIicqOG7zLTloIu27CeCObJs5zDd2rE/s640/Brisbane.jpg" width="480" /></a></div>
<o:p><br /></o:p></div>
<br /></div>
Amr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.com0tag:blogger.com,1999:blog-7923569635494807119.post-53673820108140137822019-11-08T19:20:00.001-08:002019-11-08T19:21:39.329-08:00Protecting your your WebAPI using Azure AD<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiw-5cTOA0NTzGlCAcjPPrnJo7uqt8ECrp6fjwiKyT_0XuIce9p7HRsqkMXkPNDGzqe2LrbeR6Okm5aaDQQ8On5YvQlb4K9jHMSa7DVT_6iajuhPoCjjYPuuNAJpAkGcnkrTixTdhrFtl8/s1600/Overview.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="863" data-original-width="1104" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiw-5cTOA0NTzGlCAcjPPrnJo7uqt8ECrp6fjwiKyT_0XuIce9p7HRsqkMXkPNDGzqe2LrbeR6Okm5aaDQQ8On5YvQlb4K9jHMSa7DVT_6iajuhPoCjjYPuuNAJpAkGcnkrTixTdhrFtl8/s1600/Overview.png" /></a></div>
<br />
In this post, I will discuss yet another useful feature you can use Azure AD specially if you are building something that uses your Microsoft 365 Identity platform.<br />
let's assume you're building an app that uses some of Microsoft 365 capability and integrates with it via the Graph API also you have your own custom APIs that connects to your custom application, you want to expose your custom application functionality via REST APIs to your app. The trick here is you want to protect your custom build APIs and hopefully manage to have a consistent experience.<br />
<br />
In the past I've used IdentityServer to provide this functionality when I used to build fully custom solutions, but for this time I was thinking I was already using Azure AD to connect to MS Graph APIs, what if I can use it to protect my own custom endpoint.<br />
<br />
The answer is pretty straight forward, you can easily protect your custom built API using Azure AD or event Azure B2C if you are building a consumer type app.<br />
<br />
<ol style="text-align: left;">
<li>You'll need to create an Azure App registration by navigating to your portal.azure.com then going into Azure AD and create a new app.<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8pGp-OngHZUyqHi6d_-J_c5iwfScKubCq18Lls7BTzF-ovld4y8xKsoJ_9ARxxlt1o0gdwJw5qFeT5-20y0yfLSzUXfUVFJPQOw0IHRGy8gqbqzYrF_TUwuhgYu-Thya3MMWFFIsAiQE/s1600/1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="917" data-original-width="503" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8pGp-OngHZUyqHi6d_-J_c5iwfScKubCq18Lls7BTzF-ovld4y8xKsoJ_9ARxxlt1o0gdwJw5qFeT5-20y0yfLSzUXfUVFJPQOw0IHRGy8gqbqzYrF_TUwuhgYu-Thya3MMWFFIsAiQE/s400/1.PNG" width="218" /></a></div>
</li>
<li>In the process of creating your new app you can choose whether it's for a single tenant vs. Multi-Tenant or it could be accessed via a consumer account (Microsoft Personal Accounts), in this case for simplicity I'll choose an single tenant option.<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWUeNVemvQNByh8FiAor38dUpMWlLPb9qXYF_tblCeu8bkbmC1nznUGhuXQcNiMduiP6qq7LV8OzA3ZqllBqd8v4AmYMRb2h9SFq4F1R_ZH6UFw59gb_LUVCzhgtfqGxBc53fcs9HPjpA/s1600/2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1324" data-original-width="1600" height="331" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWUeNVemvQNByh8FiAor38dUpMWlLPb9qXYF_tblCeu8bkbmC1nznUGhuXQcNiMduiP6qq7LV8OzA3ZqllBqd8v4AmYMRb2h9SFq4F1R_ZH6UFw59gb_LUVCzhgtfqGxBc53fcs9HPjpA/s400/2.PNG" width="400" /></a></div>
</li>
<li>After you create the new app, you will find an option called (Expose an API)</li>
<li>In this screen you can define your API scopes and also ensure that your client application which you already have been using to access Microsoft Graph or any other Microsoft cloud endpoints is added as authorised client application.<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2-vQMDCmjKyqr33giGFa0vUopol243iic5mRKTIY4gmZmvDYv_HuV6vaAEVoaivg-cquid5CbowP5RTV0bgQf0mVQMRM3xSGG9ZcvJ7e7NAZadX1yH9B6h6PVt1FeBdd9jL7X5YGdrqs/s1600/3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1279" data-original-width="524" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2-vQMDCmjKyqr33giGFa0vUopol243iic5mRKTIY4gmZmvDYv_HuV6vaAEVoaivg-cquid5CbowP5RTV0bgQf0mVQMRM3xSGG9ZcvJ7e7NAZadX1yH9B6h6PVt1FeBdd9jL7X5YGdrqs/s400/3.PNG" width="163" /></a></div>
</li>
<li>If you have done all of that you have completed the configuration part, now what you need to do to make your API protected by Azure AD is simple and very well explained in this Github repo <a href="https://github.com/Azure-Samples/active-directory-dotnet-native-aspnetcore-v2">https://github.com/Azure-Samples/active-directory-dotnet-native-aspnetcore-v2</a></li>
</ol>
<div>
Now your API will be protected by Azure AD, the other challenging part is to figure out scopes/Roles to provide a more mature endpoint authorization, as I mentioned before you can define scopes for your API in Azure AD and then you can use these scopes to protect either a whole controller or a specific action using the AuthorizeForScopes attribute</div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUj2BLWZJKoTWkkDI9zPIPvup7P5zPziRMc37F8kghc6JaHQLCEz8Ety8tahYuSc01tjlql0YiZxE-rLAPdtGH2Kk5WxwKRNfP0DZ1098IU1Tx-dmWsu8Gw-SgmwYHbBLMqMwgrvGrr-k/s1600/4.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="166" data-original-width="1124" height="94" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUj2BLWZJKoTWkkDI9zPIPvup7P5zPziRMc37F8kghc6JaHQLCEz8Ety8tahYuSc01tjlql0YiZxE-rLAPdtGH2Kk5WxwKRNfP0DZ1098IU1Tx-dmWsu8Gw-SgmwYHbBLMqMwgrvGrr-k/s640/4.PNG" width="640" /></a></div>
<br /></div>
<div>
<br /></div>
<div>
A very easy straight forward approach I found is to define Application Roles within Azure AD app registration and use Authorize Attribute with Roles. you can add users to specific application role<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB0s7iB0F5p2HmzfpZRQV3IH8PL0ZyvNHiJ2K4g5pSqZ1RTAKKzS1kg4ibK7qryOUXz_dnoD1B_X6eU68uqoRkoCI962cXsSku5XbQzCtTTEG0f93HABZDW7tXzki7MVoAEDO0jxoF0QM/s1600/5.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="180" data-original-width="937" height="122" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB0s7iB0F5p2HmzfpZRQV3IH8PL0ZyvNHiJ2K4g5pSqZ1RTAKKzS1kg4ibK7qryOUXz_dnoD1B_X6eU68uqoRkoCI962cXsSku5XbQzCtTTEG0f93HABZDW7tXzki7MVoAEDO0jxoF0QM/s640/5.PNG" width="640" /></a></div>
<br />
using the "Enterprise Applications" section of Azure AD and it could be either a direct assignment or your can assign a security group to a role if you have Azure AD P1 or P2 subscription.</div>
</div>
Amr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.com0tag:blogger.com,1999:blog-7923569635494807119.post-20980413326518568992019-09-27T08:12:00.000-07:002019-09-27T08:12:21.007-07:00Setting up Microsoft Graph Security API Sample<div dir="ltr" style="text-align: left;" trbidi="on">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjW0qV8DOh8O2mss1Ry9bAhwGPjOJYEKKqa4AB6oz45ANg5qFZ-1LxJjUAfaslyjsgJv915ub469_3Uj3_YwnVafe9oZZrAmQitCJ1HWTEbhaI-5qs4sF8jaFriPcplxxZuHouzIdn1zWs/s1600/5.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="614" data-original-width="1600" height="244" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjW0qV8DOh8O2mss1Ry9bAhwGPjOJYEKKqa4AB6oz45ANg5qFZ-1LxJjUAfaslyjsgJv915ub469_3Uj3_YwnVafe9oZZrAmQitCJ1HWTEbhaI-5qs4sF8jaFriPcplxxZuHouzIdn1zWs/s640/5.PNG" width="640" /></a><br />
Following up on my previous post which was a very quick intro to building security apps using Microsoft Graph, to get things up and running there is no easier way than finding an app built by someone else that demonstrate some use cases and see it for yourself. a very good start is <a href="https://github.com/Microsoft/securitydev">https://github.com/Microsoft/securitydev</a> which has a sample app that displays your organisation score and list alerts and actions of these alerts.<br />
<br />
First let's discuss the components of this sample:<br />
<ul style="text-align: left;">
<li>An Angular SPA: represents the front end and it does trigger the authentication flow for the user </li>
<li>A set of APIs: connects to MS Graph security endpoints to collect alert, action and secure score data</li>
<li>notification end point: to set up remote endpoint for MS Graph webhook subscriptions and a SignalR enabled web page to display notifications in an interactive manner.</li>
</ul>
<div>
<br /></div>
<div>
What you need to be able to run this sample?</div>
<div>
<ol style="text-align: left;">
<li>Azure AD application, can be easily registered following the guide <a href="https://docs.microsoft.com/en-us/graph/auth-register-app-v2">https://docs.microsoft.com/en-us/graph/auth-register-app-v2</a> please note that the app need to have permission to MS Graph security endpoints as application permission as the security information (alerts, actions and secure store) is accessed by the API endpoint not as user identity<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjW0qV8DOh8O2mss1Ry9bAhwGPjOJYEKKqa4AB6oz45ANg5qFZ-1LxJjUAfaslyjsgJv915ub469_3Uj3_YwnVafe9oZZrAmQitCJ1HWTEbhaI-5qs4sF8jaFriPcplxxZuHouzIdn1zWs/s1600/5.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="614" data-original-width="1600" height="244" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjW0qV8DOh8O2mss1Ry9bAhwGPjOJYEKKqa4AB6oz45ANg5qFZ-1LxJjUAfaslyjsgJv915ub469_3Uj3_YwnVafe9oZZrAmQitCJ1HWTEbhaI-5qs4sF8jaFriPcplxxZuHouzIdn1zWs/s640/5.PNG" width="640" /></a></div>
</li>
<li>need to replace the client ID and client secret in both appSettings.json and environments.ts files <div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijtnS7R99FvQXzcUlkTmKpwpSekAtxUvsVfoqV0YjxIB0r99WB_CkwDQV7DEUuLLXTu7aQtGuKhSWqaNOGBU09mfGwO1msHwuykbbEVh-8L8anu-eoT60u3qo-zscjduioPfQVPuIBJLo/s1600/2.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: left;"><img border="0" data-original-height="656" data-original-width="584" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijtnS7R99FvQXzcUlkTmKpwpSekAtxUvsVfoqV0YjxIB0r99WB_CkwDQV7DEUuLLXTu7aQtGuKhSWqaNOGBU09mfGwO1msHwuykbbEVh-8L8anu-eoT60u3qo-zscjduioPfQVPuIBJLo/s400/2.PNG" width="354" /></a></div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHuUjWEAN_P9UY0LOj7UdqUVm4EPi4suG-Rl9RMPMU6usrfkg_tlzA9sDvOeNiQVhyeSwYMd0AM9MUo_oB-NurVUdGIcEwJNJAZSsOs7H0NP1IL9K1se0Kd5Ky2FZs7GzQLrwUEeYz2ls/s1600/3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHuUjWEAN_P9UY0LOj7UdqUVm4EPi4suG-Rl9RMPMU6usrfkg_tlzA9sDvOeNiQVhyeSwYMd0AM9MUo_oB-NurVUdGIcEwJNJAZSsOs7H0NP1IL9K1se0Kd5Ky2FZs7GzQLrwUEeYz2ls/s1600/3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="641" data-original-width="596" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHuUjWEAN_P9UY0LOj7UdqUVm4EPi4suG-Rl9RMPMU6usrfkg_tlzA9sDvOeNiQVhyeSwYMd0AM9MUo_oB-NurVUdGIcEwJNJAZSsOs7H0NP1IL9K1se0Kd5Ky2FZs7GzQLrwUEeYz2ls/s400/3.PNG" width="370" /></a></div>
</li>
<li>If you are running this app locally (development environment) you can either run <b>ng build </b> manually or preferably added to your visual studio build pipeline, (note if you don't have angular-cli installed you need to install it by simply<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjI_9M43I24q2RPtc83R8d95N0tzo2K5L64PgMZAZZo51Irmcekhch3UxoCSAhhQRyWKIwKgVoj3E2tVK2beVnPsFBvPXgUCN6SVnG2YSbuciJITWbBfPUC8mKaNWy9X7CyFtzueaMpExs/s1600/1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="80" data-original-width="541" height="46" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjI_9M43I24q2RPtc83R8d95N0tzo2K5L64PgMZAZZo51Irmcekhch3UxoCSAhhQRyWKIwKgVoj3E2tVK2beVnPsFBvPXgUCN6SVnG2YSbuciJITWbBfPUC8mKaNWy9X7CyFtzueaMpExs/s320/1.PNG" width="320" /></a></div>
</li>
<li><div class="separator" style="clear: both; text-align: left;">
Now you can run the app and launch it on the browser, you will be prompted to login in using your Azure AD credentials and you can have a go with the app various pages, there is a security dashboard, alerts, actions, subscriptions and secure scores</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJJsbbidNp5icdTluE0ivT4yv7dmIoUj5HHZSQYIaP7CSvv4UMyV3uhdYRX8_45eyJHag14oGuJ2HF8oaQPPnRZT7CNySKjjxR_-j0Jb2O2eiMM2gaeXwE5CcH1eMOZQpB9gJqnE-JFKY/s1600/4.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="882" data-original-width="1600" height="352" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJJsbbidNp5icdTluE0ivT4yv7dmIoUj5HHZSQYIaP7CSvv4UMyV3uhdYRX8_45eyJHag14oGuJ2HF8oaQPPnRZT7CNySKjjxR_-j0Jb2O2eiMM2gaeXwE5CcH1eMOZQpB9gJqnE-JFKY/s640/4.PNG" width="640" /></a></div>
</li>
</ol>
</div>
</div>
Amr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.com0tag:blogger.com,1999:blog-7923569635494807119.post-8399283201603676022019-08-29T23:53:00.000-07:002019-08-29T23:53:03.709-07:00Introduction to Microsoft Graph Security APIs<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9z3Z55sg_ixYuUZkRPJZ4sNDn3Z0wqNjdukOfMvOmQd-lEPZzQh5mQt5ibPZqhoQSOcmFCAc7ccpl_j1um-uS-9ZT3PQwRqpAMQTrjGG3hrqhyBOne9kMQ5wVRv1NO5VynpySUyYZkI0/s1600/5-6.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="960" data-original-width="1117" height="550" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9z3Z55sg_ixYuUZkRPJZ4sNDn3Z0wqNjdukOfMvOmQd-lEPZzQh5mQt5ibPZqhoQSOcmFCAc7ccpl_j1um-uS-9ZT3PQwRqpAMQTrjGG3hrqhyBOne9kMQ5wVRv1NO5VynpySUyYZkI0/s640/5-6.PNG" width="640" /></a></div>
<br />
I don't remember being so excited about something in the past three months since Liverpool won the Champions League Final apart from the announcement of the Microsoft Graph Security APIs, I'm still trying to figure out what is the potential of the APIs but I think having this APIs would open up possibilities to ISVs and independent developer and partners to start simplifying the way the admins/users deal with security alerts and more importantly streamline the alert process across different providers, whether it comes from Microsoft 365 security centre or cloud app security (Azure) or even via a Microsoft vendor/Partners.<br />
<br />
I decided to take the APIs for a spin and play around with what they currently offer both in GA (v1.0) and beta, I'm not going to go full-blown approach, so I'll just use the Microsoft Graph explorer to play around with these endpoints, steps are pretty simple<br />
<ul style="text-align: left;">
<li>Navigate to Graph explorer <a href="https://developer.microsoft.com/en-us/graph/graph-explorer">https://developer.microsoft.com/en-us/graph/graph-explorer</a> and login</li>
<li>Make sure you edit permissions and add at least SecurityEvents.Read.All , this will prompt you to re-login and consent to the newly added scopes of "Graph Explorer" Azure AD multi-tenant app.<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPNEMvO2hepxCxDvN2lck3cJHVE6JnFxAGR0Nq40lQgibHBd5nIKtRKySRSQsasD9KQCyu4Tl_hDnYrphr1uXLF4ui9hAt9D2puOb-pPDNF3jPjv4DGhESQC7tZZSrXbaJotw6KVgn5vI/s1600/1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="176" data-original-width="1468" height="76" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPNEMvO2hepxCxDvN2lck3cJHVE6JnFxAGR0Nq40lQgibHBd5nIKtRKySRSQsasD9KQCyu4Tl_hDnYrphr1uXLF4ui9hAt9D2puOb-pPDNF3jPjv4DGhESQC7tZZSrXbaJotw6KVgn5vI/s640/1.PNG" width="640" /></a></div>
</li>
<li>The browser will redirect you back to the graph explorer</li>
<li>In the URL textbox type the endpoint under /v1.0/security/alerts , you will get a list of aggregated alerts like the below</li>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEHHij6K1ZKP8u8X4TKCWKTa6s-96UVW-3ldAPg9E-nBSCrLV9-6AO1kmS_zZyhjI65mhx6_SZcSLhCafsxOAuquK2vVR4zuXSIS77R0SwcmENAkIJ9E20ZfO_xB7fmtDSKMXEUkG83-w/s1600/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="914" data-original-width="917" height="636" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEHHij6K1ZKP8u8X4TKCWKTa6s-96UVW-3ldAPg9E-nBSCrLV9-6AO1kmS_zZyhjI65mhx6_SZcSLhCafsxOAuquK2vVR4zuXSIS77R0SwcmENAkIJ9E20ZfO_xB7fmtDSKMXEUkG83-w/s640/4.png" width="640" /></a></div>
<ul>
<li>Unique identifier and also highlight the azure Tenant and subscription, if it's an alert generated by Office 365 security centre </li>
<li>Set of tags based on the configuration of the source system</li>
<li>Vendor information</li>
<li>User information</li>
<li>Severity of the alert (as configured by the originating source)</li>
</ul>
</ul>
<div>
now let's create a new custom alert policy and see for ourselves how long it will take till the graph security API pick it up</div>
<div>
<ul style="text-align: left;">
<li>Login to your M365 admin portal and click on security, you will either land on protection.office.com or security.microsoft.com based on your subscription for example if you have a E3 developer Office 365 account you won't be able to use CloudApp security or even add it to your subscription and you will always get redirected to protection.office.com<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3e-EWi-uX2dAgGHPXeAY9mG80itdmBNAjH0Mqxl_J-X6PNh8F7Z26jJIagRfl3XIpEJBwrf-TA1gVzj0k1TXsbgBzzj4-Q1EPGIgUdVZ7OxQPZBlDqeQZlh2m_T1Dc8IVC0BCLImQKP0/s1600/5-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1309" data-original-width="1544" height="542" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3e-EWi-uX2dAgGHPXeAY9mG80itdmBNAjH0Mqxl_J-X6PNh8F7Z26jJIagRfl3XIpEJBwrf-TA1gVzj0k1TXsbgBzzj4-Q1EPGIgUdVZ7OxQPZBlDqeQZlh2m_T1Dc8IVC0BCLImQKP0/s640/5-1.png" width="640" /></a></div>
</li>
<li>For simplicity we will choose Office 365 alerts if we have landed on security.microsoft.com by clicking on policies then Office 365 alerts </li>
<li>For some other bizarre reason even if you been redirected to protection.office.com via clicking on office 365 alerts you have to choose alerts and alert policies from the left side navigation !<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEishCK3tXLINHYe362BEZRlI5hhchr3AloJ7EXRrBoRqhD1pFMvZZYKzrC23_Gi3t4VddkhS4Zu6j-o1tWHKzsOBd_8L6Jsr8XSprRa7Myu2t32i7tpr0GdeoWtTNvI3cDcvZB39T3yDgE/s1600/5-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="959" data-original-width="1600" height="382" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEishCK3tXLINHYe362BEZRlI5hhchr3AloJ7EXRrBoRqhD1pFMvZZYKzrC23_Gi3t4VddkhS4Zu6j-o1tWHKzsOBd_8L6Jsr8XSprRa7Myu2t32i7tpr0GdeoWtTNvI3cDcvZB39T3yDgE/s640/5-2.png" width="640" /></a></div>
</li>
<li><div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwGgdrjc0oueJ8UqPFbNgEAVnow1zxlODZwID_YqsH3VN0KKT8HH89tHAdYx1ocIBSXsFDkAtrKvUvhNgXz-UTMPxOGKotWxi2et-_XlHb2904sDAFVkd6nSDG8y3wVOx7EmWePE_Ad0k/s1600/5-3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="925" data-original-width="1600" height="368" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwGgdrjc0oueJ8UqPFbNgEAVnow1zxlODZwID_YqsH3VN0KKT8HH89tHAdYx1ocIBSXsFDkAtrKvUvhNgXz-UTMPxOGKotWxi2et-_XlHb2904sDAFVkd6nSDG8y3wVOx7EmWePE_Ad0k/s640/5-3.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
</li>
<li>Now let's create a new alert policy as below<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8pAxuIPUmQcgWw2o1KZXPz2qvEG2cAaKymIvZKp9HNE6errMQ_tTn1phM11lHODiM9fkSjyi0RZjNIhNhB90fb_40hfRGEGPlJKHIreHLQnePM4yntfwC4owe-qDH5MqeZR8GMVN63IE/s1600/5-4.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1089" data-original-width="1600" height="434" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8pAxuIPUmQcgWw2o1KZXPz2qvEG2cAaKymIvZKp9HNE6errMQ_tTn1phM11lHODiM9fkSjyi0RZjNIhNhB90fb_40hfRGEGPlJKHIreHLQnePM4yntfwC4owe-qDH5MqeZR8GMVN63IE/s640/5-4.PNG" width="640" /></a></div>
</li>
<li><div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTuhRtcSjWq0UrtTq4LRnK_wkdwtN8Lx1vWNwMMbNJzcxi9a3cMt44pUZRMt4ZMR6qfDooIF1RcJuZkLGxSKme17_sLpcztjNnfMNkM6NYOiQ_HYxjUOPslSuBCUQsvJdfJNrSbMCsA6w/s1600/5-5.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1299" data-original-width="1600" height="518" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTuhRtcSjWq0UrtTq4LRnK_wkdwtN8Lx1vWNwMMbNJzcxi9a3cMt44pUZRMt4ZMR6qfDooIF1RcJuZkLGxSKme17_sLpcztjNnfMNkM6NYOiQ_HYxjUOPslSuBCUQsvJdfJNrSbMCsA6w/s640/5-5.PNG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
</li>
<li>Now I'll navigate to SharePoint site and share it with an external user </li>
<li>after almost a minute or so I've got email notification that the site has been shared , it took longer for Microsoft Graph API to get the alert but not sure about the actual time limit from the alert origination till the aggregation of all alerts<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9z3Z55sg_ixYuUZkRPJZ4sNDn3Z0wqNjdukOfMvOmQd-lEPZzQh5mQt5ibPZqhoQSOcmFCAc7ccpl_j1um-uS-9ZT3PQwRqpAMQTrjGG3hrqhyBOne9kMQ5wVRv1NO5VynpySUyYZkI0/s1600/5-6.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="960" data-original-width="1117" height="550" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9z3Z55sg_ixYuUZkRPJZ4sNDn3Z0wqNjdukOfMvOmQd-lEPZzQh5mQt5ibPZqhoQSOcmFCAc7ccpl_j1um-uS-9ZT3PQwRqpAMQTrjGG3hrqhyBOne9kMQ5wVRv1NO5VynpySUyYZkI0/s640/5-6.PNG" width="640" /></a></div>
</li>
</ul>
<div>
At the end, I know it's a very simple endpoint but the value that this endpoints represents is priceless as it allows developers to enable cross-product scenarios using same code-base through different use cases like security management, threat detection and information protection</div>
</div>
</div>
Amr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.com0tag:blogger.com,1999:blog-7923569635494807119.post-66611975771451215232019-07-18T21:12:00.002-07:002019-07-23T10:14:38.827-07:00Microsoft Graph: displaying user & contact images<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzwFXi3N6OVy_CZLNDiuLS7QacTAm-4oSJGpRFv9RmdVpLl-ezgqHvNvOcG_S5qxuFeo9x5Ht1g8kPRchTmh9CTi-Qj3nWxXD_c0F0aW-6Z7ot7Nv2MvSNxtRdrTlabXe85vvIYbNcuHI/s1600/1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="590" data-original-width="1600" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzwFXi3N6OVy_CZLNDiuLS7QacTAm-4oSJGpRFv9RmdVpLl-ezgqHvNvOcG_S5qxuFeo9x5Ht1g8kPRchTmh9CTi-Qj3nWxXD_c0F0aW-6Z7ot7Nv2MvSNxtRdrTlabXe85vvIYbNcuHI/s1600/1.PNG" /></a></div>
In this post I'll explain how to get user profile out of Azure AD and render it using a simple React component, if you are not familiar with Microsoft Graph, you can can start getting more familiar with Microsoft Graph using <a href="https://docs.microsoft.com/en-us/graph/">https://docs.microsoft.com/en-us/graph/</a> as starting point and maybe use <a href="https://developer.microsoft.com/en-us/graph/graph-explorer" target="_blank">graph explorer</a> to test some of these endpoints.<br />
<br />
The main endpoint we are going to use here is <u>me/people</u> which lists the people that is relevant to you. a sample of what this endpoint returned by default is shown below<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfYiUCbHuIQZCfTO5F7H1JpXHIh9dpoAuiF66mpVjm6zbGDfO4SnNojbmGzbc85egpcxxF_Ub-OVcc746NlT-XJO8hSV9iAC5kikdR4AJF2KyfW5QJeWP7OZlDeFjd__AsSaksCt92BZk/s1600/2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="963" data-original-width="1600" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfYiUCbHuIQZCfTO5F7H1JpXHIh9dpoAuiF66mpVjm6zbGDfO4SnNojbmGzbc85egpcxxF_Ub-OVcc746NlT-XJO8hSV9iAC5kikdR4AJF2KyfW5QJeWP7OZlDeFjd__AsSaksCt92BZk/s640/2.PNG" width="640" /></a></div>
<br />
If we take a quick look at what me/people endpoint returns , it's not only user information it's a collection of Persons and Groups and within Person includes "OrganizationUser" and Contacts.<br />
<br />
It's easy to render any of these properties however, what we need to display is the user image, which is not retrieved using the People endpoint. for each item we have to create another call to the <u>/user/{id}/photo/$value</u> endpoint if it's an "organization user" otherwise we would use <u>/me/contacts/id/photo/$value</u> the response for this is either 404 if there is no image uploaded or it's a ReadableStream<br />
<br />
The key is to convert what we have which would be an object of type ReadableStream to a blob Url and then render it in an HTML image tag<br />
<br />
<script src="https://gist.github.com/ministainer/b891682128bce2b6766fbc05a0ecffe0.js"></script>
<br />
another mechanism is to build a proxy API that stores the image in an online cache and request user-based images it's somehow similar to a mechanism I've used before in this 3 years old post <a href="http://www.sharepointtweaks.com/2016/01/officedev-the-new-intranet-loosely-coupled-approach.html">http://www.sharepointtweaks.com/2016/01/officedev-the-new-intranet-loosely-coupled-approach.html</a><br />
<br />
<br /></div>
Amr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.com0tag:blogger.com,1999:blog-7923569635494807119.post-5424711242261201102019-06-30T06:13:00.000-07:002019-07-18T21:13:37.667-07:00Modern Experience: optimizing the performance of your SPFx components<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYfHcLXmYys_ZoCtA6ax2FgJlyhvhwQahA32DLOMcgtSqR7eiby23gxMpId5Clv-M_iz8a2uEF2LhC-VaBNLAMvmph4g9qXvZxGuqJjeOfmAIeUUc8oIC0fHSc6svQ8LbxJPHpR6sK6Dk/s1600/3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="549" data-original-width="1520" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYfHcLXmYys_ZoCtA6ax2FgJlyhvhwQahA32DLOMcgtSqR7eiby23gxMpId5Clv-M_iz8a2uEF2LhC-VaBNLAMvmph4g9qXvZxGuqJjeOfmAIeUUc8oIC0fHSc6svQ8LbxJPHpR6sK6Dk/s1600/3.PNG" /></a></div>
<br />
When building custom SharePoint online solution, there is not much you can do to optimise the server performance, your areas of improvement will be around the basic following items:<br />
<br />
<ol style="text-align: left;">
<li>Reduce content size (size of images, media you add to the SharePoint Pages)</li>
<li>Reduce bundle size (SPFx solutions)</li>
<li>Optimise calls to SharePoint APIs or any external APIs</li>
<li>Network and Infrastructure optimisation</li>
<li>Client device Optimisation</li>
</ol>
<div>
In this post I'll focus on #2, which is the things you need to worry about when creating custom SPFx component whether it's an application customizer or single webparts.</div>
<div>
<ul style="text-align: left;">
<li>Measure and monitor your bundle size
</li>
</ul>
<div style="text-align: center;">
<div style="text-align: left;">
Before you try to introduce complexity to your work make sure that you have a problem you need to tackle first, over optimisation is a mistake we all have been guilty of. please revert to my previous post about measuring SharePoint online performance <a href="http://www.sharepointtweaks.com/2019/05/sharepoint-online-measuring-sharepoint-modern-experience-performance.html" target="_blank">here</a>. </div>
<div style="text-align: left;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir5Wlg9MOkYC4xPdf_Dxi11bdbxjjmydWY3hKZQeqzR6Fwqx1SmayLj_vVUTj2YLXukn4-Dqz-DrGtqx4bTXk5IIwwADzN5dunRSOBztGzIKeqTshlOnx7lf-LWGCtAM97TNRkez4SMfo/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="334" data-original-width="500" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir5Wlg9MOkYC4xPdf_Dxi11bdbxjjmydWY3hKZQeqzR6Fwqx1SmayLj_vVUTj2YLXukn4-Dqz-DrGtqx4bTXk5IIwwADzN5dunRSOBztGzIKeqTshlOnx7lf-LWGCtAM97TNRkez4SMfo/s640/1.png" width="640" /></a></div>
<br /></div>
<div style="text-align: left;">
So, let's say that you have identified that you have a problem, and this problem is potentially due to a bigger bundle size, common symptom for that is a very high JavaScript Evaluation time the first step is to try to locate which component is causing your bundle size to balloon up which is pretty straight forward process, one way of doing it is to use <a href="https://www.npmjs.com/package/webpack-bundle-analyzer" style="text-align: center;">https://www.npmjs.com/package/webpack-bundle-analyzer</a> which gives you a nice graphical representation and information for each component size (raw, minified and compressed)</div>
<div style="text-align: left;">
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br /></div>
</div>
<ul style="text-align: left;">
<li>Move common dependencies to be "externals"</li>
</ul>
<div>
If you're using a common component or library indifferent webparts, consider moving this into externals so it won't be packaged for every single webpart JS file</div>
<div>
<br /></div>
<ul style="text-align: left;">
<li>Don't just use libraries, simple solution might perform better</li>
</ul>
<div>
For instance , imagine you want to display a spinner, and because you are a good SharePoint Developer, you'd love to use the office-ui-fabric-react controls and import the spinner and use it while your webpart fetches whatever content you're after. sounds like a good idea, think again just importing the Spinner introduce almost 1.6M of Javascript code which can be substituted by a simple load of gif. Don't get me wrong if you want to use the react controls package use it but you need to make sure that you use it for more than just a spinner and I'd rather move them to externals and serve it as a compressed (Gziped) size ~ around 200KB</div>
<div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8rHv-CloxFOm9auQNt5670_rF_m43A-Tl8oK_WmrgTC7zvzbo45YtQN589txvziJDEPNf9ONIZL5fIyXIikSj0RCcxFMJ7bLLd1bINFWccsf9vOVvi8myLj0Rm_DtDIXeHQV_yrc13WM/s1600/2.png" imageanchor="1" style="margin-left: auto; margin-right: auto; text-align: center;"><img border="0" data-original-height="858" data-original-width="1600" height="342" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8rHv-CloxFOm9auQNt5670_rF_m43A-Tl8oK_WmrgTC7zvzbo45YtQN589txvziJDEPNf9ONIZL5fIyXIikSj0RCcxFMJ7bLLd1bINFWccsf9vOVvi8myLj0Rm_DtDIXeHQV_yrc13WM/s640/2.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Add caption</td></tr>
</tbody></table>
</div>
<ul style="text-align: left;">
<li>Reduce font files to the bare minimum</li>
</ul>
<div>
this one is a very handy one, let's say that you're using font-awesome to display some nice looking icons, including the full font files in your bundle adds more than 900KB of payload to your application and to be honest it's not about hosting fonts as externals or not. it's about do you really need the whole font components or you just need like 4 or 5 icons.</div>
</div>
<div>
<br /></div>
<div>
there is a full post on this topic here <a href="https://blog.webjeda.com/optimize-fontawesome/">https://blog.webjeda.com/optimize-fontawesome/</a> and it helped me reduce my font files to be in total ~ 19KB instead of 931KB</div>
<div>
<br /></div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjivaDKx4punNBNTxMwvdw2n92TfDGs581RY_Myq5Pb8_CnFpEriGAT-C1KAF4lonEvvYRlZRGrNSQxfULQBW3fDHaqfqHzPBw3TUWzOgtwGoOuGS1ixQFV5qaliOWuH66zoKd94WgBaAY/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="449" data-original-width="1390" height="206" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjivaDKx4punNBNTxMwvdw2n92TfDGs581RY_Myq5Pb8_CnFpEriGAT-C1KAF4lonEvvYRlZRGrNSQxfULQBW3fDHaqfqHzPBw3TUWzOgtwGoOuGS1ixQFV5qaliOWuH66zoKd94WgBaAY/s640/3.png" width="640" /></a></div>
<br />
<ul style="text-align: left;">
<li>Use another CDN solution that allows compression </li>
</ul>
<div>
Office 365 public CDN is good but it's not good enough as it doesn't provide compression, you could easily use Azure CDN endpoint and enable compression, you shouldn't pay much as you are not really delivering heavy weight static contents </div>
</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
After all of these modifications which doesn't really contribute to a lot of refactoring , I've managed to get a 90/100 score for the SharePoint modern site, which was a huge performance boost</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
</div>
Amr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.com0tag:blogger.com,1999:blog-7923569635494807119.post-43685047091617865732019-05-09T22:33:00.001-07:002019-05-09T22:36:31.532-07:00SharePoint Online: Measuring SharePoint Modern Experience Performance<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis0lRYPCsNROn_FdGjjum38m0A-mHsrGvF-q5XvPrGmM4Bf6GVeOKNWLHpl-aPg_9MPxo_G1YhZ4G4H3iVXkzJO2y5pXUPv_ramDd-7riuibLB8seXk7OhWLiE3T2FvvfmKF_PUnm1vvk/s1600/3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="549" data-original-width="1520" height="230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis0lRYPCsNROn_FdGjjum38m0A-mHsrGvF-q5XvPrGmM4Bf6GVeOKNWLHpl-aPg_9MPxo_G1YhZ4G4H3iVXkzJO2y5pXUPv_ramDd-7riuibLB8seXk7OhWLiE3T2FvvfmKF_PUnm1vvk/s640/3.PNG" width="640" /></a></div>
<br />
In this post I'll try to share my experience on how to measure performance of SharePoint Online modern experience and most importantly what you should expect and communicate to your client. Specially, a client that is moving form a fully branded customised on-premises intranet to SharePoint Online Modern Experience.<br />
<br />
First, you need to identify what is the metrics you will use to assess the intranet performance and for this post I'll try not to get sidetracked and talk about accessibility and other non-functional aspects of your intranet platform.<br />
<br />
There are many metrics that could be used but as we are putting a SaaS platform to the test I will ignore any server related performance metrics as we can't optimise server performance by any means,.<br />
Of course you can always check the <a href="https://docs.microsoft.com/en-us/openspecs/sharepoint_protocols/ms-wsshp/c60ddeb6-4113-4a73-9e97-26b5c3907d33" target="_blank">x-sharepointhealthscore</a> custom header value and contact Microsoft support if you are not happy with your tenant performance, but for this post I'll focus on client things that is mostly affected by your client machine and browser.<br />
<br />
<br />
There are many tools that you can use to measure the performance of a website, however if you are using Chrome browser (please don't tell me that you are using edge or worse internet explorer , even Microsoft has given up on them). by launching the developer tool you can easily launch an audit tool which allows you to perform a full audit for the current website. The tool is called lighthouse, that why I decided to stick with the metric which google use to score a website performance:<br />
<br />
<ul>
<li>Time to first Contentful Paint</li>
<li>Time to first Meaningful Paint</li>
<li>Time to interactive </li>
<li>Time to CPU Idle</li>
<li>Speed Index</li>
<li>Estimated Input Latency</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0jDfxeeG1rb5cdEmYTBY95IJrx0__7jfsUc2DTJm9J3CwQc83lsTLCVXeoF1hEC3aGOd747Hx0fGIA9it8Gz0JRgBFYDVycva8Ifq8XT6hzKv3aALLrVqbvyrT26XFRBMkwoabdK_nvI/s1600/0.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="992" data-original-width="1564" height="405" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0jDfxeeG1rb5cdEmYTBY95IJrx0__7jfsUc2DTJm9J3CwQc83lsTLCVXeoF1hEC3aGOd747Hx0fGIA9it8Gz0JRgBFYDVycva8Ifq8XT6hzKv3aALLrVqbvyrT26XFRBMkwoabdK_nvI/s640/0.PNG" width="640" /></a></div>
<br />
<br />
That's good , we can easily execute the audit but how can we automate this? the answer is very simple. the good lads at google has built us a CLI for lighthouse than can be installed using npm , please check the <a href="https://github.com/GoogleChrome/lighthouse" target="_blank">GoogleChrome lighthouse repo</a> for more information on how to install and run it.<br />
<br />
In short you will be able to run the following command line which only execute a performance audit<br />
<script src="https://gist.github.com/ministainer/f46682469b451a889819b240102a0e95.js"></script>
<br />
As you can see the script is very simple , I start with getting the URLs of the SharePoint Online pages I want to test from a CSV file which also have the required numbers of runs.<br />
<br />
Then I use the lighthouse command flags to ensure that there is not throttling or emulation (--disable-device-emulation --throttling-method=provided) also I'm exporting the audit run output as JSON file in a specific output folder<br />
<br />
I also passes the --disable-storage-reset switch to ensure that I can use the browser cache , another flag to mention is --only-categories=performance which only execute the performance related audits<br />
<br />
<br />
When I started running the report I get an amazing results, however when I looked at the trace using the <a href="https://googlechrome.github.io/lighthouse/viewer/" target="_blank">lighthouse reoprt viewer </a> I found out that I'm redirected to login page which doesn't have much hence the amazing 100/100 score.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIBvjao4tWXQ5CZWw2DIJpLGsEhjEnIa0mhbgYYOEpPKENVolYW4L44CHl32rRcYDXZWHj_82Qer3t7MF3QYeC5D-sI7Yx_JCwHWvfRkBjmkVBsuB0FyNOyerLbuwkWhPCFsMUbuUwXec/s1600/1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="910" data-original-width="1600" height="361" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIBvjao4tWXQ5CZWw2DIJpLGsEhjEnIa0mhbgYYOEpPKENVolYW4L44CHl32rRcYDXZWHj_82Qer3t7MF3QYeC5D-sI7Yx_JCwHWvfRkBjmkVBsuB0FyNOyerLbuwkWhPCFsMUbuUwXec/s640/1.PNG" width="640" /></a></div>
<br />
<br />
I looked over ways how to pass my login credentials but I found an easy way which is running chrome in debug mode<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaI5WcyetYZUeAodsMSacszOnkcD6f7B5kKVup4Eiyvil-dygZZLLnG6jhiqYA7SSaT6HVgdSovgy1f3mRbj_My0hj4Q6Gp7nGXdtvdRdqdHvqrFClVURgzVmN6-rd9XS1tMu7s-caG5s/s1600/2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="256" data-original-width="1108" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaI5WcyetYZUeAodsMSacszOnkcD6f7B5kKVup4Eiyvil-dygZZLLnG6jhiqYA7SSaT6HVgdSovgy1f3mRbj_My0hj4Q6Gp7nGXdtvdRdqdHvqrFClVURgzVmN6-rd9XS1tMu7s-caG5s/s1600/2.PNG" /></a></div>
<br />
<br />
this will launch a new chrome window , I'll navigate to the SharePoint Online URL and login using my user credentials so this browser session will have my user logged in already. Afterwards, I need to pass the resulted port number when to the lighthouse cli.<br />
<br />
It's kinda lazy solution but it worked OK for me but it is definitely better to run chrome headless.<br />
<br />
<b>The results</b><br />
<br />
After running the PowerShell script I have a number of JSON files and I want to get the average value for the above metrics, do I need to write another PowerShell script. hmm I don't think so, I'm a very lazy person. and I have a mongo db instance installed on my laptop. I imported the files to a collection then run the following script to get the average results<br />
<br />
<script src="https://gist.github.com/ministainer/a4ed9f3c3c6b05aa7f27ba47f5a3614d.js"></script>
<br />
To be honest the results for an empty OOTB team Google gave the OOTB team site a performance score of 86/100 which is a cool score but as you might see, it's all about JS execution time and main thread work.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis0lRYPCsNROn_FdGjjum38m0A-mHsrGvF-q5XvPrGmM4Bf6GVeOKNWLHpl-aPg_9MPxo_G1YhZ4G4H3iVXkzJO2y5pXUPv_ramDd-7riuibLB8seXk7OhWLiE3T2FvvfmKF_PUnm1vvk/s1600/3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="549" data-original-width="1520" height="230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis0lRYPCsNROn_FdGjjum38m0A-mHsrGvF-q5XvPrGmM4Bf6GVeOKNWLHpl-aPg_9MPxo_G1YhZ4G4H3iVXkzJO2y5pXUPv_ramDd-7riuibLB8seXk7OhWLiE3T2FvvfmKF_PUnm1vvk/s640/3.PNG" width="640" /></a></div>
<br />
<br />
If your client is after an intranet solution with speed index is less than 3 seconds, You might need to consider building your intranet as a loosely-coupled intranet which is a concept that we have discussed here more than 3 years ago, you can check more details in the following post:<br />
<a href="http://www.sharepointtweaks.com/2016/01/officedev-the-new-intranet-loosely-coupled-approach.html">http://www.sharepointtweaks.com/2016/01/officedev-the-new-intranet-loosely-coupled-approach.html</a><br />
<br />
If you are happy with the current performance and want to customise SharePoint Online and start building SPFx extensions and webparts. You need to be very careful and very cautious of what you use as every bit of JavaScript will matter and at some point, you will have to tell your client yes I can do this put it will slow your site down.<br />
<br />
In the next post I'll list some techniques that helped me from lifting up a 50/100 scored custom SharePoint Online intranet to be comparable as the OOTB with a score of 86/100.<br />
<br />
Till next time<br />
<br /></div>
Amr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.com0tag:blogger.com,1999:blog-7923569635494807119.post-39044512078227817202019-03-17T23:47:00.001-07:002019-03-17T23:47:04.807-07:00SPFx: Modal Dialog, show classic SharePoint forms<div dir="ltr" style="text-align: left;" trbidi="on">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGOwEk8Kfyz0YBwVYS1jBl_CE9bHFC0eLI7kzSnsvktzyy5HCgrwTRw0d_LRg8FIqQOxQL4x90SwsRxm_lLsCd0lqXmCR2nhKGiENCHvJxy9CSWw4R4eZp5iJAWcGudV4CppPdRFxTmt4/s1600/1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="1163" data-original-width="1467" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGOwEk8Kfyz0YBwVYS1jBl_CE9bHFC0eLI7kzSnsvktzyy5HCgrwTRw0d_LRg8FIqQOxQL4x90SwsRxm_lLsCd0lqXmCR2nhKGiENCHvJxy9CSWw4R4eZp5iJAWcGudV4CppPdRFxTmt4/s1600/1.PNG" /></a><br />
Remember Model Dialog, that's surely brings back some memories , it was easy back in the days a simple way to instantiate a new SP.UI.ModalDialog with the appropriate options and then show the dialog and that's it!<br />
<br />
Of course we had to make sure that we append the isDlg=true to the url querystring when showing a SharePoint form.<br />
<br />
Also we used to make sure that header and footer are adhering to the branding guideline so when we customize the heck out of the SharePoint master page (prior to SharePoint 2013) we didn't get the funny header and footer ruining our Dialog box.<br />
<br />
The other bit which was happening for us is when the SharePoint form (whether it's item display or edit) when we press cancel or OK buttons, the Modal dialog disappear magically.<br />
<br />
So let's take SPFx, how can we replicate the same functionality with the simplest possible approach<br />
<br />
<b>BaseDialog & DialogContent to the rescure</b><br />
<br />
BaseDialog is an abstract class wrapped and delivered to us as part of @microsoft/sp-dialog package, by simply extending this dialog class and implement render method you can construct the content of your dialog (there are heaps of other method to extend and customise the behavior of the dialog but this post is about the simplest Iframe dialog ever)<br />
<br />
In our case, let's implement a new react component called IframeContent , which acts as a container for our iframe. This simple react component contains a single root DialogContent component which is imported from office-ui-fabric-react package. The IframeContent component has a single child element which is the iframe HTML tag.<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGOwEk8Kfyz0YBwVYS1jBl_CE9bHFC0eLI7kzSnsvktzyy5HCgrwTRw0d_LRg8FIqQOxQL4x90SwsRxm_lLsCd0lqXmCR2nhKGiENCHvJxy9CSWw4R4eZp5iJAWcGudV4CppPdRFxTmt4/s1600/1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="1163" data-original-width="1467" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGOwEk8Kfyz0YBwVYS1jBl_CE9bHFC0eLI7kzSnsvktzyy5HCgrwTRw0d_LRg8FIqQOxQL4x90SwsRxm_lLsCd0lqXmCR2nhKGiENCHvJxy9CSWw4R4eZp5iJAWcGudV4CppPdRFxTmt4/s1600/1.PNG" /></a><br />
<br />
The second component is even simpler , which is the Dialog itself which implements the BaseDialog the most significant bit of code is the render method which basically does nothing apart from having a single instance of the previously created dialog content.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKeHhu_dAGvAbSbfpnMDQiWzEMfaQVDzrFzPuQIjwUzTpo22jDfvdAE1_A33hdnYy3PnOzlNT3XSNCyT93hW7VYakTU-MMO4UHysaU0tP2Vk9w4AogZX3vWciZL3kEdnWj2xEinrzUUQw/s1600/2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="968" data-original-width="1052" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKeHhu_dAGvAbSbfpnMDQiWzEMfaQVDzrFzPuQIjwUzTpo22jDfvdAE1_A33hdnYy3PnOzlNT3XSNCyT93hW7VYakTU-MMO4UHysaU0tP2Vk9w4AogZX3vWciZL3kEdnWj2xEinrzUUQw/s1600/2.PNG" /></a></div>
<br />
So far so good, but what if we need to replicate the magic we used to have (hiding the dialog upon clicking ok or cancel of an OTB classic SharePoint form).<br />
<br />
The answer is simply using the same old mechanism , the old forms send an event to the parent window called "CloseDialog" so what we need to do is simple, let our React component listen to the event and call the close method.<br />
<br />
Full code of the IframeDialog component is below<br />
<script src="https://gist.github.com/ministainer/1a5375f36bc388a53a30d8fb7f3ef89c.js"></script>
A more comprehensive implementation with different building blocks can be found at the following github repo <a href="https://github.com/SharePoint/sp-dev-fx-controls-react">https://github.com/SharePoint/sp-dev-fx-controls-react</a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<br /></div>
Amr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.com3tag:blogger.com,1999:blog-7923569635494807119.post-74673755948008733562019-02-11T03:54:00.000-08:002019-02-11T05:04:38.954-08:00SharePoint Online: What really happens when you click unfollow/follow site buttons<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu-wY1pcG_-EVn0TzSrga-0_RJyfG0YRmJjcbmxAPvsywhA0V_3vYXXFyqiJv5epTVAO2L-PlCo7p8RqnHtJwJtmYdoc2maarg7QPKyC9a7IK-7TzOh88eq5a6l_IwLLagRAZKVZnR_co/s1600/header.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="908" data-original-width="1600" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu-wY1pcG_-EVn0TzSrga-0_RJyfG0YRmJjcbmxAPvsywhA0V_3vYXXFyqiJv5epTVAO2L-PlCo7p8RqnHtJwJtmYdoc2maarg7QPKyC9a7IK-7TzOh88eq5a6l_IwLLagRAZKVZnR_co/s1600/header.PNG" /></a></div>
<br />
<br />
So, I'm back for the first post this year after quite a break, I can't believe it's 2019 already and Dubai 2020 Expo is only one year away. I don't live in Dubai anymore but I remember thinking of 2020 as the far future.<br />
without further ado , let deep dive in this blog post topic:<br />
<br />
What happens really when you unstar or star a SharePoint online site on the SharePoint home page . I presumed - naive me- that endpoint call to follow APIs is triggered, but as my naivety has been proven many times before, specially when I thought that modern news webpart using Search Analytics to display view count (turns out to get it from an endpoint https://{your-region}.sphomep.svc.ms), read more about this <a href="http://www.sharepointtweaks.com/2018/08/spfx-how-otb-news-webpart-displays-viewcount.html" target="_blank">here</a><br />
<br />
<br />
Similarly, follow and unfollow website use similar endpoint.<br />
<br />
Firstly, let's see when we unstar an already followed site what happened. A POST request will be fired as below<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFFp3alOkDnTaYvxjsjlNlZzzeS9DXDBRqgvT1M_BJsGtnpvhl-nFHzK-gAqEPsnq11zVYbVkMrzW_ByNcsjik4I7z_bcZzDToM4jGqFaibOy4G9QF4aWAOBVS15SQ8U4VbEKTok0R770/s1600/1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="263" data-original-width="1600" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFFp3alOkDnTaYvxjsjlNlZzzeS9DXDBRqgvT1M_BJsGtnpvhl-nFHzK-gAqEPsnq11zVYbVkMrzW_ByNcsjik4I7z_bcZzDToM4jGqFaibOy4G9QF4aWAOBVS15SQ8U4VbEKTok0R770/s1600/1.PNG" /></a></div>
<br />
<br />
This request has the usual header information in addition to that a Bearer token which looks like the below after decoding the base64 and remove the signing bits at the end.<br />
<script src="https://gist.github.com/ministainer/b1962a68c35fda1b4f1c8c1c955a4e01.js"></script>
<br />
The function is used to update the followed site status is called sendSiteFollowingUpdateRequest, and takes three arguments, the first one is an object contains whether the site is followed or not, and the site card item information.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaIbMiKEOTxLr2GdylIQjoebkurwoRGc9Cu6eZJFQ-tEHEjXq6vEuyxqN0VVZ9UiTfZlae3HO2Oa1WNGElgby19rCHyfOXLTX6J75x2rhB9O51qZnC4WtawgzqHJzJIkx3pCv9EjWp23s/s1600/2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="358" data-original-width="1408" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaIbMiKEOTxLr2GdylIQjoebkurwoRGc9Cu6eZJFQ-tEHEjXq6vEuyxqN0VVZ9UiTfZlae3HO2Oa1WNGElgby19rCHyfOXLTX6J75x2rhB9O51qZnC4WtawgzqHJzJIkx3pCv9EjWp23s/s1600/2.PNG" /></a></div>
<br />
Next, let's try to understand how the aforementioned bearer token has been obtained, by looking at the session storage I can locate that the same token is saved as "ms-oil-datasource-SpHomeApiDataSource" in the session storage as below:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi45_HRZ0_1_Tsm9FzDqFH1vnuXUDmtehFy4bEl9gqpSgikJjrInmbGUTjLSD5d5ZdBCsCqHG0ihfOvx8kZcaEDBUmrejIiRiIkM6rBrylIQs_YUt1TvgABRBE72bZ0jlIiRpmgdlFg2WQ/s1600/3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="215" data-original-width="1600" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi45_HRZ0_1_Tsm9FzDqFH1vnuXUDmtehFy4bEl9gqpSgikJjrInmbGUTjLSD5d5ZdBCsCqHG0ihfOvx8kZcaEDBUmrejIiRiIkM6rBrylIQs_YUt1TvgABRBE72bZ0jlIiRpmgdlFg2WQ/s1600/3.PNG" /></a></div>
<br />
by going through the code I can see that it has been obtained by a simple POST request to the endpoint _api/SP.OAuth.Token/Acquire with the proper digest value.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_BRQ8MBDTWNaOQP1LSgHDyX6byXjYMY1LCLIHs1rSFAR6BRldDemm7uK8rve1p4zsJYzENMwsDbLoaX-KjieGZoX39Y7gNkhwUMsfT8xbKzt_Xa9r242Cy-OT27_tjxydMhyphenhyphen3IQ9KDyQ/s1600/4.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="619" data-original-width="1352" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_BRQ8MBDTWNaOQP1LSgHDyX6byXjYMY1LCLIHs1rSFAR6BRldDemm7uK8rve1p4zsJYzENMwsDbLoaX-KjieGZoX39Y7gNkhwUMsfT8xbKzt_Xa9r242Cy-OT27_tjxydMhyphenhyphen3IQ9KDyQ/s1600/4.PNG" /></a></div>
<br />
<br />
<br />
maybe one day we will have full documentation for the sphome.svc.ms webservices and what kind of first party functionality is been exposed there.<br />
<br />
these finding is only accurate at the time of the writing of this blog as these are not publicly available versioned APIs, use them at your own discretion and preferably not outside of a POV.<br />
<br />
<br />
Ciao</div>
Amr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.com0tag:blogger.com,1999:blog-7923569635494807119.post-47221269499560389902018-12-14T10:48:00.000-08:002018-12-14T22:00:55.898-08:00It's a wrap: Office Development Bootcamp 2018<div dir="ltr" style="text-align: left;" trbidi="on">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgEeRWJb1rMvqeOrvJTVU-f-4s7FKofcvej-WDGVnQFYmgdjiyhKboYfgT_eqwulyZKCIJcvWs5BYAJJaGdI0MzTCutgrs7o8-JBUi7gtbtThrCbUzbGoKCK8_bC6XuMAWbKra3ISDzN8/s1600/Slide1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="734" data-original-width="1306" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgEeRWJb1rMvqeOrvJTVU-f-4s7FKofcvej-WDGVnQFYmgdjiyhKboYfgT_eqwulyZKCIJcvWs5BYAJJaGdI0MzTCutgrs7o8-JBUi7gtbtThrCbUzbGoKCK8_bC6XuMAWbKra3ISDzN8/s640/Slide1.JPG" width="640" /></a><br />
For the second year in a row I had the pleasure to organise Office Development bootcamp along with my good fellow MVPs Ashish Trivedi & John Liu. This year was a bit special for me as we didn't only deliver the usual three bootcamps we had last year (Sydney, Melbourne and Auckland) but we have added three additional cities to the mix:<br />
<ul style="text-align: left;">
<li>Brisbane: Organised by my fellow MVP @ChrisGecks </li>
<li>Hong Kong: my first attempt to remotely organise an event and It was awesome turn out of 66 people , great job by Microsoft HK</li>
<li>Kuala Lumpur: second attempt to organise something remotely and just very close to the perfection of HK event</li>
</ul>
<div>
I personally can't wait for next year's event and potentially add at least three more cities.</div>
<div>
<br /></div>
</div>
Amr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.com0tag:blogger.com,1999:blog-7923569635494807119.post-30871654002897668272018-11-11T23:56:00.003-08:002018-11-11T23:56:37.612-08:00Yo Teams: Running local https server<div dir="ltr" style="text-align: left;" trbidi="on">
<img height="248" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi44tx-Y9vlwlFcdVrxVJzXQNkCz0QT2DR4EdmDN46sPcvM8rPjmLLHCq4nZkGEJtEU2UJE2qoZl1FSF69dOkwyFFhGbdLidjeKv7akDMxWyIiPbZ3Ce9p4Amh8mPoSZJyEfUZ0Er9JeD4/s640/8.PNG" width="640" /><br />
I've been using Teams Yeoman generator for quite a long time , also I've one contribution to this awesome opensource project.<br />
However, I've always wondered why it's running on local http while the manifest is requiring the tabs endpoint to be an https endpoint, so If you are building a Microsoft Teams tab, you won't be able to run it locally without enabling https to your local server.<br />
The method I used to get around this is using ngrok and use the https endpoint, but deep inside I didn't want to expose my local tab code to run externally, maybe someone out there is trying out all the possible ~4.2 billion possible sub-domains 16^8 (nah just kidding). I think I was just determined to run tabs locally using https server.<br />
<br />
So I've updated my fork with the latest updates since my last contribution (almost a year ago), then did the following steps to make the generator creates https local server<br />
<ol style="text-align: left;">
<li>I've create new local branch and called it https (very creative name !)</li>
<li>I've noticed I need to generate certificate and private key using openssl command (you can either install openssl.exe win 32/64 binary or run openssl through Ubuntu on windows 10 if you have a windows machine<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz-g6X0FpW1wqVucSrF4FASnTpYz_9vchHZjHgRGDqwIxYaA-BhC8WhWbXFa4wjJfy-iisOhDCzY0lk3cCHRXoWBNyV0RGyxGdL74cw9t4Jg920zPME64trJKV1VKhZQHsYiMh-YNkdVo/s1600/1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1091" data-original-width="702" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz-g6X0FpW1wqVucSrF4FASnTpYz_9vchHZjHgRGDqwIxYaA-BhC8WhWbXFa4wjJfy-iisOhDCzY0lk3cCHRXoWBNyV0RGyxGdL74cw9t4Jg920zPME64trJKV1VKhZQHsYiMh-YNkdVo/s400/1.PNG" width="256" /></a></div>
</li>
<li>I've placed the two files in a cert folder under the main app template which is common across all Yo Teams artefacts</li>
<li>I've used a webpack plugin "copy-webpack-plugin" to allow me to copy the cert folder<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhli_FfoABQ6kcWa9kteBBYIlJ0IeZ00qmG3s1pS07diMe49hBhCvbaFpMLDz6tFjrmPwJL3Rjuo-e8GmeSvaGSdpKBVnq1wREVyeI3XVq2W1bLib6xYZMXIjxTMhIzyEngSqphX3sEe4E/s1600/3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="301" data-original-width="1031" height="116" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhli_FfoABQ6kcWa9kteBBYIlJ0IeZ00qmG3s1pS07diMe49hBhCvbaFpMLDz6tFjrmPwJL3Rjuo-e8GmeSvaGSdpKBVnq1wREVyeI3XVq2W1bLib6xYZMXIjxTMhIzyEngSqphX3sEe4E/s400/3.PNG" width="400" /></a></li>
<li>To make sure that webpack will spit out my two files I've added the following line to the webpack server entry under plugins, don't forget to install copy-webpack-plugin package <div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiteS2_bTcG45THc-jQgZxBnjpUrB2ahNBkVZfZP4dYuvMk93WHeydY_pKGsgybK6aMVKMUSrPRaF-ytnz19lL-olaQ2CjKywtVHv-a48YisizK7INhn2vD-pSDFJOY7ViPOo3_vgnHg-E/s1600/2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="202" data-original-width="692" height="115" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiteS2_bTcG45THc-jQgZxBnjpUrB2ahNBkVZfZP4dYuvMk93WHeydY_pKGsgybK6aMVKMUSrPRaF-ytnz19lL-olaQ2CjKywtVHv-a48YisizK7INhn2vD-pSDFJOY7ViPOo3_vgnHg-E/s400/2.PNG" width="400" /></a></div>
</li>
<li>Now to the fun and easy part, which is changing the server.ts class, first change import * as http from http to "https" and then replace the server creation with the following lines<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTWlYsRlTrD865kTm1HD4lQ8myLY2Twb-9jsuKqCNHwtSF4GTfYmK6t68n8ZP-5-6Ts2n40MLb3mNv0KAaDQxRTqL7qczIiOu4a_05dausPmoWvZKpnC8kbV6RiIhM94LGmr_gVDBz7O8/s1600/4.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="362" data-original-width="1545" height="147" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTWlYsRlTrD865kTm1HD4lQ8myLY2Twb-9jsuKqCNHwtSF4GTfYmK6t68n8ZP-5-6Ts2n40MLb3mNv0KAaDQxRTqL7qczIiOu4a_05dausPmoWvZKpnC8kbV6RiIhM94LGmr_gVDBz7O8/s640/4.PNG" width="640" /></a></div>
</li>
<li>to run this version of the generator , run npm link<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEid6pP13i90YXKRHlWorSrJkFHrZc0qWA4kUcKHNHaaI3xVcmubbPOhtQGM56D-9hrRcNd0Dw1i0LlrSpGC8ZjYj2Q2pPFmtFuJDmqGyrIzL2TRmEb3GxQy6lFeJraWfJ1vm4vp9aWUB4o/s1600/5.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="77" data-original-width="1600" height="18" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEid6pP13i90YXKRHlWorSrJkFHrZc0qWA4kUcKHNHaaI3xVcmubbPOhtQGM56D-9hrRcNd0Dw1i0LlrSpGC8ZjYj2Q2pPFmtFuJDmqGyrIzL2TRmEb3GxQy6lFeJraWfJ1vm4vp9aWUB4o/s400/5.PNG" width="400" /></a></div>
</li>
<li>now link your folder with the new generator, run it and when you type gulp serve, an https server will be created and you can use local server to run</li>
</ol>
<div>
<br /></div>
<div>
<br /></div>
</div>
Amr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.com0tag:blogger.com,1999:blog-7923569635494807119.post-81828591832968221792018-10-14T03:49:00.000-07:002018-10-14T03:49:16.844-07:00Yo Teams: Azure App services Deployment error<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi44tx-Y9vlwlFcdVrxVJzXQNkCz0QT2DR4EdmDN46sPcvM8rPjmLLHCq4nZkGEJtEU2UJE2qoZl1FSF69dOkwyFFhGbdLidjeKv7akDMxWyIiPbZ3Ce9p4Amh8mPoSZJyEfUZ0Er9JeD4/s1600/8.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="520" data-original-width="1336" height="155" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi44tx-Y9vlwlFcdVrxVJzXQNkCz0QT2DR4EdmDN46sPcvM8rPjmLLHCq4nZkGEJtEU2UJE2qoZl1FSF69dOkwyFFhGbdLidjeKv7akDMxWyIiPbZ3Ce9p4Amh8mPoSZJyEfUZ0Er9JeD4/s400/8.PNG" width="400" /></a></div>
<br />
<br />
It has been a while since I played around with generator-teams (Yeoman generator for Microsoft Teams), it was almost 6 months ago since I demoed the capabilities of this amazing open source project. This time I've created a quick project which includes a simple tab, my intention was to run it locally and also publish it to azure app services.<br />
<br />
I was very straight forward process publishing the Teams tab to Azure app service using local Git repository and push my master branch to it. However, this time it wasn't the easy ride I expected.<br />
<br />
I won't go through the abvious steps which is setting up your environment for nodejs development and installing the latest Yo Teams package (2.5 at the time of writing this post)<br />
long story short, I created a new teams app with only a simple tab and created a new azure app service and added local git as a deployment option so I can push my code to it and achieve a very simple deployment to azure app services.<br />
<br />
After the awesome generator created my artefacts, I've run local npm install and gulp build and it was rocking, everything was working fine locally. I initialised my git rep, added azure git as a remote (I called it azure very creative !), then I've pushed my master branch to azure. I was waiting for the magic successful deployment message but instead I get the following error<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvchiOjbngHZpkXlbZ-b3jp-CgBy3qJqGOrfeCK1CCZQHPN4LakpjngItyH0lhy81r0viZjEpOgp9xP5aiT_qznfYgC1yfQFd6Gtn0EdUELG7zxSpneA49raDO_sX6kWlrLhyphenhyphenCj0PZEcY/s1600/1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="707" data-original-width="1600" height="281" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvchiOjbngHZpkXlbZ-b3jp-CgBy3qJqGOrfeCK1CCZQHPN4LakpjngItyH0lhy81r0viZjEpOgp9xP5aiT_qznfYgC1yfQFd6Gtn0EdUELG7zxSpneA49raDO_sX6kWlrLhyphenhyphenCj0PZEcY/s640/1.PNG" width="640" /></a></div>
<br />
<br />
apparently by default the node and npm version used by app services are v0.10.40 and v1.4.28 which are relatively old and caused some errors in npm.<br />
<br />
Using App settings you can set the nodejs version for the app service instance but I couldn't find a switch for npm which was the one actually causing the error above, so I decided to use another way to specify the node & npm versions by adding them to package.json file as below:
<script src="https://gist.github.com/ministainer/b1745df532cce2e51a9baa6b65234109.js"></script>
<br />
<br />
made a minor update and pushed the new version to azure app service local git repo, and yet I stumble upon another error<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOTLQB2vmjBwTcSJmXbZOnvn3dxs9Pn5zYUd3aEsoJaKg7DTXXqrda5f718pMX659rLbW_x8GVfc0ijAayoPwryUBERRL1n32M-aY0P0BmiXNiHykiCkyJUJR_0rNyRfwQFU8xUdQO_lw/s1600/1.1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="521" data-original-width="1600" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOTLQB2vmjBwTcSJmXbZOnvn3dxs9Pn5zYUd3aEsoJaKg7DTXXqrda5f718pMX659rLbW_x8GVfc0ijAayoPwryUBERRL1n32M-aY0P0BmiXNiHykiCkyJUJR_0rNyRfwQFU8xUdQO_lw/s640/1.1.PNG" width="640" /></a></div>
<br />
<br />
I created a new folder called dist under wwwroot so the script should be able to create the issnode.yml file , I thought that's it however I find another error this time in the gulpfile.js syntax.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB4a_DUrcGfwokfMmFEwZJYzJlz26MK3Kfmc7giRuOpOHemHCTsRtmTf7CFXf4IBn4-OivfYSW_s6UZmjLqZi6ntRB6fvCvUMXxJ_ei2Vx3ye5_6r0xy_CIxYUGE3RArF6q4vQztTw_ys/s1600/4.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="748" data-original-width="1600" height="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB4a_DUrcGfwokfMmFEwZJYzJlz26MK3Kfmc7giRuOpOHemHCTsRtmTf7CFXf4IBn4-OivfYSW_s6UZmjLqZi6ntRB6fvCvUMXxJ_ei2Vx3ye5_6r0xy_CIxYUGE3RArF6q4vQztTw_ys/s640/4.PNG" width="640" /></a></div>
<br />
<br />
so the reason this time is node version is used to run the scripts is the same old version so I had to add a new line to deploy.cmd just before the build command line.<br />
<script src="https://gist.github.com/ministainer/dc60916cd4635634d501e0080cc6d02a.js"></script>
and finally, my deployment is successful<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4UusjyT4Zuv6ZWIKkQsgA19Xlb32B1fBIWpXQpJdbBsnZ2X1MJ69l8EldYD4JFDfw-cy35DtL7Rl7p82OSRsy62kpU5wTdYC_KmsRffQJEBiDGqd9Z58tWWzlT9eb4RAs1r_7uJa4sMA/s1600/7.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="929" data-original-width="1600" height="369" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4UusjyT4Zuv6ZWIKkQsgA19Xlb32B1fBIWpXQpJdbBsnZ2X1MJ69l8EldYD4JFDfw-cy35DtL7Rl7p82OSRsy62kpU5wTdYC_KmsRffQJEBiDGqd9Z58tWWzlT9eb4RAs1r_7uJa4sMA/s640/7.PNG" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjr7Or6t4brJANM7sBtwdhyphenhypheno7_U9eI9Bdq9IV1wBTAzXyvh1YadzMpu_C-n0bpLVl_hTPeBUE1kwxjMrhtBKqpxWYW_OR9D5K5NWE4h8AydGbg3b4BYypckQn8rtU3oHCoVZ12a_Avr_6s/s1600/9.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="469" data-original-width="1600" height="185" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjr7Or6t4brJANM7sBtwdhyphenhypheno7_U9eI9Bdq9IV1wBTAzXyvh1YadzMpu_C-n0bpLVl_hTPeBUE1kwxjMrhtBKqpxWYW_OR9D5K5NWE4h8AydGbg3b4BYypckQn8rtU3oHCoVZ12a_Avr_6s/s640/9.PNG" width="640" /></a></div>
<br />
<br />
and what supposed to be a one minute job turns out to be half an hour job.<br />
<br /></div>
Amr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.com0tag:blogger.com,1999:blog-7923569635494807119.post-82857945231609176592018-08-21T05:36:00.000-07:002018-08-21T05:36:44.960-07:00SPFx: How OTB News Webpart displays ViewCount<div dir="ltr" style="text-align: left;" trbidi="on">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNqqzpDeEvWsSydwhkT02nEfqruYiZS6WOLmE4z7n-MzUsgNxHHTN0IhuLB_28Y1zojOICSBIrE91s-PhBs8FGeNI2JYQDyhbwZcGRNbCGpP8porbG_ZQC6vM3XJMECJ7XTz6EMkxPZrg/s1600/1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="210" data-original-width="1086" height="122" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNqqzpDeEvWsSydwhkT02nEfqruYiZS6WOLmE4z7n-MzUsgNxHHTN0IhuLB_28Y1zojOICSBIrE91s-PhBs8FGeNI2JYQDyhbwZcGRNbCGpP8porbG_ZQC6vM3XJMECJ7XTz6EMkxPZrg/s640/1.PNG" width="640" /></a><br />
In this blog I'll explain how the out of the box news webpart displays the view count for each promoted site page aka "News Pages". At the first glance when a colleague asked me I answered naively by<br />
"Oh Check ViewCountLifeTime managed property" thinking -silly me- that modern pages webpart will somehow uses the same technique that old publishing pages used to embrace, which has viewCountLifeTime, viewsLastNDays managed properties which used to give us a lot of options to choose precisely what we want to display.<br />
<br />
Back then we weren't worried about where SharePoint stores these values as it will all be enriched via search pipeline, which was easy, awesome and just works.<br />
<br />
When my colleague tried out the search with some of the classical ViewCount managed properties, they got nothing which left me scratching my head and honestly questioning my sanity. I was a bit away from hands-on role and by a bit I mean it was almost more than four years since I've been rolling my sleeve and coding stuff as I'm currently doing mainly high-level activities. With no further do I decided to look under the hood of of OTB news webpart<br />
<br />
First thing I noticed after viewing the bundled code using pretty format feature in google chrome in the file sp-news-webpart.bundle_en-us_someguid.js when the component is about to mount a function called "updateRealNewsItems" is called, this method takes a set of items (which is the news items with the view count ) as a parameter.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNqqzpDeEvWsSydwhkT02nEfqruYiZS6WOLmE4z7n-MzUsgNxHHTN0IhuLB_28Y1zojOICSBIrE91s-PhBs8FGeNI2JYQDyhbwZcGRNbCGpP8porbG_ZQC6vM3XJMECJ7XTz6EMkxPZrg/s1600/1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="210" data-original-width="1086" height="122" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNqqzpDeEvWsSydwhkT02nEfqruYiZS6WOLmE4z7n-MzUsgNxHHTN0IhuLB_28Y1zojOICSBIrE91s-PhBs8FGeNI2JYQDyhbwZcGRNbCGpP8porbG_ZQC6vM3XJMECJ7XTz6EMkxPZrg/s640/1.PNG" width="640" /></a></div>
<br />
<br />
With a bit of more digging by searching the "viewCounts" I manage to find an expression that verified whether the view count is needed or not which depends on the display template that you choose. If the view count is needed firstly the code tries to update view count dataprovider information then calls refresh data.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYmFPyKWsoLGv-ziHpsceAD06x-U_NqFaqsGcWzn_j20POFTFTPS9GA7rH_BMFeAO0iKavHJ1-xMb-q1rRztPlGfbsTU0QhqvAnTEzRdfj9iLeFEU5eHk6AAtLBS_M1HhrAD7VnxDIzEQ/s1600/2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="506" data-original-width="1600" height="202" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYmFPyKWsoLGv-ziHpsceAD06x-U_NqFaqsGcWzn_j20POFTFTPS9GA7rH_BMFeAO0iKavHJ1-xMb-q1rRztPlGfbsTU0QhqvAnTEzRdfj9iLeFEU5eHk6AAtLBS_M1HhrAD7VnxDIzEQ/s640/2.PNG" width="640" /></a></div>
<br />
<br />
The code continues with preparing a request , getting the view count , cache it so next time it will try to get it from the cache then add the view count to the news items which is returned by search.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0nls3Tpc7Fc8vO-2NnxqU9mMOtZVziDDZoAPOkPrlShoZvHhgWjM3rNJSs9O0Hsslk6mK6JkNdeVz2lzeJS5Jz1C4he5FZ5q2K63Y4XB4Gj1gMhk30I2YYE5urWBOyHrhyphenhyphenLtEQKCno9E/s1600/3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="626" data-original-width="1600" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0nls3Tpc7Fc8vO-2NnxqU9mMOtZVziDDZoAPOkPrlShoZvHhgWjM3rNJSs9O0Hsslk6mK6JkNdeVz2lzeJS5Jz1C4he5FZ5q2K63Y4XB4Gj1gMhk30I2YYE5urWBOyHrhyphenhyphenLtEQKCno9E/s640/3.PNG" width="640" /></a></div>
<br />
That kept me wondering is it that hard to enable search pipeline to update the ViewsCount to accommodate the Site Page content so we can rely on viewCount managed property. I really have no answer to that maybe it is. Additionally I believe that if modern webparts are available on GitHub it will make SharePoint developer life easier.<br />
<br />
Just my $0.02</div>
Amr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.com0tag:blogger.com,1999:blog-7923569635494807119.post-83120903900460914232018-07-31T04:26:00.002-07:002018-07-31T04:27:49.717-07:00SPFx: A Facebook Feed webpart with custom UI<div dir="ltr" style="text-align: left;" trbidi="on">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS1jGIL_oXCuul3ecq5Wj57c-aBv01ehw7TmM6qdE0A7gvMm3McAcSGqFrDVhm1XU2y7SOwD7dEcc4jyf_mxogAG6E8-tYb6D5e1jRPQQoTUdlo3QD936NUpLi_o7x57t7mMuKTjp058M/s1600/1.PNG" imageanchor="1" style="font-family: calibri; font-size: 14.6667px; margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="414" data-original-width="1600" height="161" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS1jGIL_oXCuul3ecq5Wj57c-aBv01ehw7TmM6qdE0A7gvMm3McAcSGqFrDVhm1XU2y7SOwD7dEcc4jyf_mxogAG6E8-tYb6D5e1jRPQQoTUdlo3QD936NUpLi_o7x57t7mMuKTjp058M/s640/1.PNG" width="640" /></a><br />
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
So , this post might
look trivial or pretty straight forward. However, it's not about how complex it
could be from SPFx point of view I hate to break it to you guys It's really
simple.</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
If you would like to
aggregate social posts from various platforms in one single view using your own
UI elements and design this post could be useful. Otherwise, it will be a
complete waste of time :). So yes you'd better embed your Facebook feed via an iframe
if you don't want to customize the UI or aggregate multiple social posts in one
view.</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
Before we start you
need to have the following artefacts:</div>
<ul style="direction: ltr; margin-bottom: 0in; margin-left: .375in; margin-top: 0in; unicode-bidi: embed;" type="disc">
<li style="margin-bottom: 0; margin-top: 0; vertical-align: middle;"><span style="font-family: "calibri"; font-size: 11.0pt;">A<span style="mso-spacerun: yes;"> </span>Facebook App (go to </span><a href="http://developer.facebook.com/"><span style="font-family: "calibri"; font-size: 11.0pt;">http://developer.facebook.com</span></a><span style="font-family: "calibri"; font-size: 11.0pt;"> ) and follow simple steps to
have your app created</span></li>
<li style="margin-bottom: 0; margin-top: 0; vertical-align: middle;"><span style="font-family: "calibri"; font-size: 11.0pt;">A Facebook page for testing
purpose / or use an existing page that you have access to. </span></li>
</ul>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
To play around with
Facebook graph API and take a look of how the feed JSON object is structured;
you can navigate to graph explorer tool at <a href="https://developers.facebook.com/tools/explorer">https://developers.facebook.com/tools/explorer</a>
and try it out. The endpoint we are after is very simple which is a GET request
to v3.1/{yourPageID}/feed</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
When you start
playing around with the tool you will find out that there are two main
parameters:</div>
<ol style="direction: ltr; font-family: Calibri; font-size: 11.0pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: .375in; margin-top: 0in; unicode-bidi: embed;" type="1">
<li style="margin-bottom: 0; margin-top: 0; vertical-align: middle;" value="1"><span style="font-family: "calibri"; font-size: 11.0pt; font-style: normal; font-weight: normal;">Limit (which limits the
number of posts) it will be added by default for you with value 10</span></li>
<li style="margin-bottom: 0; margin-top: 0; vertical-align: middle;"><span style="font-family: "calibri"; font-size: 11.0pt;">Fields (which dictates which
fields you want to retrieve) if you didn't supply the fields you will have
the default results set returned which is as below:</span></li>
</ol>
<div style="margin-left: .375in; margin: 0in;">
<span style="font-family: "calibri"; font-size: 11.0pt;">"data": </span><span style="background: #f6f7f9; color: #1d2129; font-family: "menlo"; font-size: 7.5pt;">[</span></div>
<div style="color: #1d2129; font-family: Menlo; font-size: 7.5pt; margin-left: .375in; margin: 0in;">
<span style="background: #F6F7F9;"> {</span></div>
<div style="font-family: Menlo; font-size: 7.5pt; margin-left: .375in; margin: 0in;">
<span style="background: #f6f7f9; color: #1d2129;"> "created_time":
</span><span style="background: #f6f7f9; color: green;">"2018-07-23T04:49:18+0000"</span><span style="background: #f6f7f9; color: #1d2129;">,</span></div>
<div style="font-family: Menlo; font-size: 7.5pt; margin-left: .375in; margin: 0in;">
<span style="background: #f6f7f9; color: #1d2129;"> "message":
</span><span style="background: #f6f7f9; color: green;">"Sydney Global Office
365 Developer Bootcamp 2018"</span><span style="background: #f6f7f9; color: #1d2129;">,</span></div>
<div style="font-family: Menlo; font-size: 7.5pt; margin-left: .375in; margin: 0in;">
<span style="background: #f6f7f9; color: #1d2129;"> "id":
</span><span style="background: #f6f7f9; color: green;">"</span><a href="https://developers.facebook.com/tools/explorer/?method=GET&path=O365DevBootcamp%2Ffeed%3Flimit%3D10&version=v3.1#"><span style="background: #F6F7F9;">794403677393135_1025623297604504</span></a><span style="background: #f6f7f9; color: green;">"</span></div>
<div style="color: #1d2129; font-family: Menlo; font-size: 7.5pt; margin-left: .375in; margin: 0in;">
<span style="background: #F6F7F9;"> },</span></div>
<br />
<ol style="direction: ltr; font-family: Calibri; font-size: 11.0pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: .375in; margin-top: 0in; unicode-bidi: embed;" type="1">
<li style="margin-bottom: 0; margin-top: 0; vertical-align: middle;" value="3"><span style="font-family: "calibri"; font-size: 11.0pt; font-style: normal; font-weight: normal;">You will need the access
token which is a bearer token passed part of the header of the request,
for the purpose of this application you might choose one of two options:</span></li>
<ol style="direction: ltr; font-family: Calibri; font-size: 11.0pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: .375in; margin-top: 0in; unicode-bidi: embed;" type="a">
<li style="margin-bottom: 0; margin-top: 0; vertical-align: middle;" value="1"><span style="font-family: "calibri"; font-size: 11.0pt; font-style: normal; font-weight: normal;">Use an
application token --> this will require review of your app , see below
what you get if you tried your app token</span></li>
</ol>
</ol>
<div style="font-family: Calibri; font-size: 11.0pt; margin-left: .75in; margin: 0in;">
{</div>
<div style="color: #1d2129; font-family: Menlo; font-size: 7.5pt; margin-left: .75in; margin: 0in;">
<span style="background: #F6F7F9;"> "error":
{</span></div>
<div style="font-family: Menlo; font-size: 7.5pt; margin-left: .75in; margin: 0in;">
<span style="background: #f6f7f9; color: #1d2129;"> "message":
</span><span style="background: #f6f7f9; color: green;">"(#10) To use 'Page
Public Content Access', your use of this endpoint must be reviewed and approved
by Facebook. To submit this 'Page Public Content Access' feature for review
please read our documentation on reviewable features: </span><a href="https://developers.facebook.com/docs/apps/review"><span style="background: #F6F7F9;">https://developers.facebook.com/docs/apps/review</span></a><span style="background: #f6f7f9; color: green;">."</span><span style="background: #f6f7f9; color: #1d2129;">,</span></div>
<div style="font-family: Menlo; font-size: 7.5pt; margin-left: .75in; margin: 0in;">
<span style="background: #f6f7f9; color: #1d2129;"> "type":
</span><span style="background: #f6f7f9; color: green;">"OAuthException"</span><span style="background: #f6f7f9; color: #1d2129;">,</span></div>
<div style="font-family: Menlo; font-size: 7.5pt; margin-left: .75in; margin: 0in;">
<span style="background: #f6f7f9; color: #1d2129;"> "code":
</span><span style="background: #f6f7f9; color: red;">10</span><span style="background: #f6f7f9; color: #1d2129;">,</span></div>
<div style="font-family: Menlo; font-size: 7.5pt; margin-left: .75in; margin: 0in;">
<span style="background: #f6f7f9; color: #1d2129;"> "fbtrace_id":
</span><span style="background: #f6f7f9; color: green;">"</span></div>
<div style="color: #365899; font-family: Menlo; font-size: 7.5pt; margin-left: .75in; margin: 0in;">
<span style="background: #F6F7F9;">Hl1PW01GfO1</span></div>
<div style="color: green; font-family: Menlo; font-size: 7.5pt; margin-left: .75in; margin: 0in;">
<span style="background: #F6F7F9;">"</span></div>
<div style="color: #1d2129; font-family: Menlo; font-size: 7.5pt; margin-left: .75in; margin: 0in;">
<span style="background: #F6F7F9;"> }</span></div>
<div style="font-family: Calibri; font-size: 11.0pt; margin-left: .75in; margin: 0in;">
}</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin-left: .75in; margin: 0in;">
<br /></div>
<ol style="direction: ltr; font-family: Calibri; font-size: 11.0pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: .75in; margin-top: 0in; unicode-bidi: embed;" type="a">
<li style="margin-bottom: 0; margin-top: 0; vertical-align: middle;" value="2"><span style="font-family: "calibri"; font-size: 11.0pt; font-style: normal; font-weight: normal;">Use a page access token
--> which will need you as an admin of the page to grant the app access
to the page posts</span></li>
</ol>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
The drawback of this
option is that you will have a very short-lived access token and Facebook is no
longer provide token that is never expires (offline access token since 2012 yup
I'm referencing something that is deprecated for more than 6 years ago). </div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
But there is still
hope you can somehow extend your access token using the method documented <a href="https://developers.facebook.com/docs/facebook-login/access-tokens/refreshing/#generate-long-lived-token">here</a>
which will allow you to convert your short lived token (about 2 hours) into a
long lived token which expires in 60 days</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
From SharePoint
perspective we are going to create a simple webpart that has three properties </div>
<ul style="direction: ltr; margin-bottom: 0in; margin-left: .375in; margin-top: 0in; unicode-bidi: embed;" type="disc">
<li style="margin-bottom: 0; margin-top: 0; vertical-align: middle;"><span style="font-family: "calibri"; font-size: 11.0pt;">Limit</span></li>
<li style="margin-bottom: 0; margin-top: 0; vertical-align: middle;"><span style="font-family: "calibri"; font-size: 11.0pt;">Page Id</span></li>
<li style="margin-bottom: 0; margin-top: 0; vertical-align: middle;"><span style="font-family: "calibri"; font-size: 11.0pt;">Access Token</span></li>
</ul>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<script src="https://gist.github.com/ministainer/630faf82aff8d326a477110191ccb8b2.js"></script>
<script src="https://gist.github.com/ministainer/a53dc093851389826aa9cb5c21790466.js"></script>
<script src="https://gist.github.com/ministainer/f1baa46d7555aae6b2612c4baf0fe9aa.js"></script>
</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
The webpart is very
simple and straight forward, I didn't try to include any fancy styles and it's
a single react component called FbPostList which is consists of list of FbPost
components</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS1jGIL_oXCuul3ecq5Wj57c-aBv01ehw7TmM6qdE0A7gvMm3McAcSGqFrDVhm1XU2y7SOwD7dEcc4jyf_mxogAG6E8-tYb6D5e1jRPQQoTUdlo3QD936NUpLi_o7x57t7mMuKTjp058M/s1600/1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="414" data-original-width="1600" height="161" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS1jGIL_oXCuul3ecq5Wj57c-aBv01ehw7TmM6qdE0A7gvMm3McAcSGqFrDVhm1XU2y7SOwD7dEcc4jyf_mxogAG6E8-tYb6D5e1jRPQQoTUdlo3QD936NUpLi_o7x57t7mMuKTjp058M/s640/1.PNG" width="640" /></a></div>
<br /></div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUTJ6De6FXibtuaEbD_Pha9EcaCt5i7mn5aB9W0BkdvdrBRH3MXvNkBszVw9DSVpAR0LeZZjaevPDnXx_a6r9SQ17YsFMizRrEYHtd6a6OGtbNCmeLdv4enzcS4s1kKYbB9mdcxx2aMts/s1600/2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="818" data-original-width="1600" height="326" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUTJ6De6FXibtuaEbD_Pha9EcaCt5i7mn5aB9W0BkdvdrBRH3MXvNkBszVw9DSVpAR0LeZZjaevPDnXx_a6r9SQ17YsFMizRrEYHtd6a6OGtbNCmeLdv4enzcS4s1kKYbB9mdcxx2aMts/s640/2.PNG" width="640" /></a></div>
<br /></div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
The main issue here
is , Do I want the site owner to update the access token every 60 days, it's
sounds very irritating and utterly stupid to be honest :) so I've built an
azure function that runs every 30 days and it is responsible of updating the
access token which I've stored in storage account, the SharePoint webpart now
is responsible to read the access token that is stored in storage table. also make
sure to store your Facebook app secret somewhere safe (Azure key vault)<br />
<br />
Happy Sharepointing !</div>
<br /></div>
Amr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.com0tag:blogger.com,1999:blog-7923569635494807119.post-1816969847921703962018-05-27T22:03:00.000-07:002018-05-27T22:03:50.141-07:00How MS Flow displays SharePoint Online Taxonomy field values<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHFP0jjsk6IsC_FzTtoHlJkZnNClY3PdyeanYbJ4F0wOf6FYRQDPmedezzptzGL8kUjIjCM8JV3PDPfC_IumlNWISNp8A_CBtECk4oX1u4hWxmEPKL4uaxDuaeBWAas74bZyCiAlsz4JM/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="752" data-original-width="1248" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHFP0jjsk6IsC_FzTtoHlJkZnNClY3PdyeanYbJ4F0wOf6FYRQDPmedezzptzGL8kUjIjCM8JV3PDPfC_IumlNWISNp8A_CBtECk4oX1u4hWxmEPKL4uaxDuaeBWAas74bZyCiAlsz4JM/s640/2.png" width="640" /></a></div>
<br />
<div style="direction: ltr;">
If you have Office 365 tenant and didn't play around with MS flow, I believe you're missing out on something big here. You can use Microsoft flow to basically do everything, yes I said it "everything" I might be exaggerating but I know a friend who basically almost doing everything using MS Flow. If you are in doubt just follow @johnnliu on twitter and see for yourselves.</div>
<br />
And it's free, yes for only 2000 runs per month but for a productivity tool , who want more than that :) and If you are looking to do some integration work, I suggest you go for Azure Logic apps , which is the underlying platform of Microsoft Flow. if you want to abuse Microsoft flow you can add more runs as cheap as 8 cents per additional 100 runs.<br />
<br />
let's dive through the topic of this blog, in order to help you review everything in action, we will start by creating a new flow, for simplicity we will use HTTP trigger so we can trigger the flow using simple GET request.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0p3b-U7NL1MHjPKWA8vy1Svrp-EmXCv6WvNorHOunIb9RvGX2EIv_583c4UzL92rmJDT8SdXHPKxN_FQAcS-yRdVdsWCDM8qEaMMR7CzkswMmRzYoM3FaokxPzj6zz1nwMq4qhxGK8zo/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="849" data-original-width="1195" height="452" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0p3b-U7NL1MHjPKWA8vy1Svrp-EmXCv6WvNorHOunIb9RvGX2EIv_583c4UzL92rmJDT8SdXHPKxN_FQAcS-yRdVdsWCDM8qEaMMR7CzkswMmRzYoM3FaokxPzj6zz1nwMq4qhxGK8zo/s640/1.png" width="640" /></a></div>
<br />
<br />
The action we will be performing here is to update SharePoint file properties, to make this work you will have to connect to existing SharePoint online library that has been enriched with a taxonomy field as an attribute of a custom content type driven from the parent "Document" content type.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE-wmnnCB7XD4G9EO10y14jMp4Lp5mt-LYTv0ARkdpMChon4Ua1zVrah610bEndCi_uD7abRVGD9_7022YXENVSPuV3m-EGb58Wi2j2BXJaZ4Xs7sBt1z0OiOJsOsP2aNJie200epifJs/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="752" data-original-width="1248" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE-wmnnCB7XD4G9EO10y14jMp4Lp5mt-LYTv0ARkdpMChon4Ua1zVrah610bEndCi_uD7abRVGD9_7022YXENVSPuV3m-EGb58Wi2j2BXJaZ4Xs7sBt1z0OiOJsOsP2aNJie200epifJs/s640/2.png" width="640" /></a></div>
<br />
The main question I had here is how flow is retrieving the classification values because I wanted to select the value based on a specific parameter and I want to piggyback on what MS flow already knows.<br />
If you trace the XHR requests in the browser developer console, you will be able to find mulitple request to specific endpoint similar to the following URL:<br />
<br />
https://europe-001.azure-apim.net/apim/sharepointonline/shared-sharepointonl-2e00594a-1a29-41fe-91f9-7fd348d1fe86/datasets/https%253A%252F%252FYourSharePointSubdomain.SharePoint.com%252F/tables/49b1fe2f-228d-427e-bfe7-7d3ade765a83<br />
<br />
This request will allow MS flow to load all the selected document library properties and that include all the lookup, taxonomy fields and many other properties<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1Azetvbv8P9y0eqDWxOiF1ODoG1aab_PgS0EPrdjAiuEDtSSgCPLcmMp6lk5ZK82ICOpd-X9UN-glqB_cIZxe_1qbF8WpH93hrsM5PncZ1Czd3CN5MkPH6L8KumcXAZjFyWF6FHfsz7A/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="536" data-original-width="1394" height="246" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1Azetvbv8P9y0eqDWxOiF1ODoG1aab_PgS0EPrdjAiuEDtSSgCPLcmMp6lk5ZK82ICOpd-X9UN-glqB_cIZxe_1qbF8WpH93hrsM5PncZ1Czd3CN5MkPH6L8KumcXAZjFyWF6FHfsz7A/s640/3.png" width="640" /></a></div>
<br />
<br />
One particular property is the URL to the taxonomy field values which is the same url with /entities/{some_guid} added to it as a suffix.<br />
<script src="https://gist.github.com/ministainer/051322b449932c2c633c91aca30b47fb.js"></script>
<br />
<br />
If we trace the request we will be able to extract the Authorization Bearer header which contains typical JWT token properties including:<br />
Audience https://service.flow.microsoft.com/<br />
Issuing Authority https://sts.windwos.net/your_tenant_Id<br />
AppId 6204c1d1-4712-4c46-a7d9-3ed63d992682<br />
<br />
If we navigate to Azure portal and search for this app in the enterprise apps under Azure AD we will find Microsoft Flow Portal app which strangely enough have no permissions visible through azure portal.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-GHaObevog_jugIlhhtC6AZTHdBR_f1bZ4IwRwjh53KL6Hnm_55u_O0yJr5Q1WKtNUlxb3o0M-GDmUOA_w3JYaX1YvJ9xDr3hdiEAGepMeMpJWQSxUWz4fd_ZolCR3-BYq0ZgxJGPruE/s1600/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="416" data-original-width="1600" height="164" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-GHaObevog_jugIlhhtC6AZTHdBR_f1bZ4IwRwjh53KL6Hnm_55u_O0yJr5Q1WKtNUlxb3o0M-GDmUOA_w3JYaX1YvJ9xDr3hdiEAGepMeMpJWQSxUWz4fd_ZolCR3-BYq0ZgxJGPruE/s640/4.png" width="640" /></a></div>
<br />
And that's how Microsoft flow display your SharePoint taxonomy fields values within SharePoint update file properties action.<br />
<br />
<br /></div>
Amr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.com0tag:blogger.com,1999:blog-7923569635494807119.post-5376540034900287092018-04-22T20:19:00.002-07:002018-04-22T20:19:15.196-07:00Thoughts on PowerBI anonymous sharing link<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTJbUBMHs4gGea7Tzu8w4GaNRocKygnAEDcrfeZ9Rp79F6QjekXla_kzVxevFSGiILIgjXM_FS7K47kOP7F3YzE0HDvt2SXtJAnFELVJxGrMfslj1bVHrleK7tj7kov-96wKi6vwTQRl4/s1600/2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="788" data-original-width="1112" height="451" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTJbUBMHs4gGea7Tzu8w4GaNRocKygnAEDcrfeZ9Rp79F6QjekXla_kzVxevFSGiILIgjXM_FS7K47kOP7F3YzE0HDvt2SXtJAnFELVJxGrMfslj1bVHrleK7tj7kov-96wKi6vwTQRl4/s640/2.PNG" width="640" /></a></div>
<br />
So today we will explore in a very brief post how Power Bi generates the anonymous sharing link, It all started when I created an anonymous sharing link which looked like the following:<br />
https://app.powerbi.com/view?r={some key}<br />
<br />
so the part I was curious about is the generated key which looks like a base64 encoded string, I decoded the value and I get this JSON string representation
<script src="https://gist.github.com/ministainer/152ee574f13f4eefcfde3917bdcbba14.js"></script>
<br />
<br />
Just from this JSON string representation, I can somehow understand two values which are the GUID values, k is referring to "key" which is the sharing key of the report which I discovered to be unique per report. The most obvious value was the "t" value which refers to your tenant. to be even more precise it's the azure active directory "Directory ID" value. you can always double check by logging into your azure portal and check your azure Active Directory ID in the properties page<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRRqe8uSGUMmDkwFEiy-fbjwznvKdv1jC-lyKI2I8A9_ND90EYG33HnUC38SxWHQlURXEeU-gWboWqUfvH_KlGZmSDSGh5n6LZTAElqC5Q9n3I0BXZlWKaGOqDNJ4Map0jGmYNdz7WzwA/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1092" data-original-width="1600" height="436" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRRqe8uSGUMmDkwFEiy-fbjwznvKdv1jC-lyKI2I8A9_ND90EYG33HnUC38SxWHQlURXEeU-gWboWqUfvH_KlGZmSDSGh5n6LZTAElqC5Q9n3I0BXZlWKaGOqDNJ4Map0jGmYNdz7WzwA/s640/1.png" width="640" /></a></div>
<br />
<br />
the "c" value doesn't really resonate with anything I thought it's somehow refers to the report Id. although one might argue that the key GUID is enough as it will uniquely identify the report. However, I tried to change it encode the object and open it in the browser. Interestingly enough I had my report opened. Firstly, I thought the browser might cache a certain value so It tried a completely different browser and it worked as well!<br />
<br />
What I did next was even more interesting so I removed the whole "c" property and guess what it also worked, so I have no clue what this "c" value refers to!<br />
<br />
one interesting thought will be whether the sharing key is enough for security reasons, and given that it's the GUID is globally unique as it uses device Id and timestamp in addition to some other things , (algorithm, uniquifier) for more information regarding GUID structure you can refer to <a href="https://blogs.msdn.microsoft.com/oldnewthing/20080627-00/?p=21823" target="_blank">this</a> blog post<br />
<br />
That's bring us to the end of this brief post.<br />
<br /></div>
Amr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.com0tag:blogger.com,1999:blog-7923569635494807119.post-39686508343058554512018-04-17T00:19:00.000-07:002018-04-17T00:19:04.219-07:00Auto classify Documents in SharePoint using Azure Machine learning Studio: Part 2<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_kUVHKmiwCKqBuEF_VZzF624GQ40bN6PB_0tWckfRAt5wcP6hP2Oi6gXCIblfqZNZFt2yE0txbOd5_wqQFlQ5RHqP0ZjsbL024-Dco1ajnueNOEzvmFhqOTvNrb6taCvPd7SKPLN8OxE/s1600/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="940" data-original-width="1600" height="374" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_kUVHKmiwCKqBuEF_VZzF624GQ40bN6PB_0tWckfRAt5wcP6hP2Oi6gXCIblfqZNZFt2yE0txbOd5_wqQFlQ5RHqP0ZjsbL024-Dco1ajnueNOEzvmFhqOTvNrb6taCvPd7SKPLN8OxE/s640/4.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
This is part 2 of a two parts blog series which explains briefly how to use azure machine learning to auto classify SharePoint documents. In part <a href="http://www.sharepointtweaks.com/2018/04/auto-classify-Office365-content-using-azure-machine-learning-studio-part1.html" target="_blank">one</a>, we covered the end to end solution skeleton, which relies on using Microsoft flow. The flow is set to be triggered whenever a new document is uploaded to our target SharePoint library.<br />
<br />
The main challenge we faced is how to extract text representation from the Microsoft office file .docx and as explained in the previous blog post. I end up using the .NET version of Open Source <a href="https://kevm.github.io/tikaondotnet/" target="_blank">Tika </a>to extract the text. In the previous blog post we referred to the Azure Machine learning as web service we call using flow HTTP invoke action. Today we will explore this black box in more details:<br />
<ol style="text-align: left;">
<li><b>The Data </b>
<div>
<br />
This is by far the most important and complicated step of the whole process as it's too specific to the problem you're trying to solve. Also the availability of data that is sufficient to train your model with high probability of correctness is something you will spend most of the time trying to figure out.<br />In my example as it's merely a POC, I did choose an easy path. I used an existing dataset available to everyone has access to Azure ML studio (BBCNews Dataset) and then I tailored the SharePoint content to match the data set.<br /></div>
</li>
<li><b>The Training Experiment</b>
<div>
<br />
Create your first Azure ML training experiment is a relatively easy task compared to data preparation phase. <br />First step is to navigate to <a href="https://studio.azureml.net/">https://studio.azureml.net/</a> and login using your Microsoft Account, you don't need to have an active Microsoft Azure subscription or credit card. LUIS and Bot framework were also free but now you need to have Azure subscription to use these two other services, don't know whether this will change in the future. However, till the time of writing this blog post it's still free.<br />
From the left menu choose experiments and choose new , choose blank experiment as we will build this together from scratch<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5yLnLQUQ5GWfR6SwbZ-HAqELxVJD2Eh9Ij1710GKRvLeSrYONJpiwR2Sv5L7PHq_izjf5Gw3w9CaJuMdavEpQ3n7F773e04U2Q9xyHm-PzMi8x-za1f_mKpJvLenO7zHAhet3cM8dD2E/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1476" data-original-width="1136" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5yLnLQUQ5GWfR6SwbZ-HAqELxVJD2Eh9Ij1710GKRvLeSrYONJpiwR2Sv5L7PHq_izjf5Gw3w9CaJuMdavEpQ3n7F773e04U2Q9xyHm-PzMi8x-za1f_mKpJvLenO7zHAhet3cM8dD2E/s640/1.png" width="491" /></a></div>
<br />
Let's name our experiment (our shiny new experiment) and we will use BBC news data set, you can substitute this with your own prepared set which will have the text representation of Office document with the current category<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiruDBFgG3eQl-JolW_zzHt2M-oJjiRN9zoEKKe__Z8fBRzigMwPu9lDF4aMHfpr_62sTc0Fup3mjjeHsAG02xW-lXfHKoZXRZ06_1sGrJ5PUErw-hGQr5gqXPyk7lfcOc-CX1j8m1-PVg/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="605" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiruDBFgG3eQl-JolW_zzHt2M-oJjiRN9zoEKKe__Z8fBRzigMwPu9lDF4aMHfpr_62sTc0Fup3mjjeHsAG02xW-lXfHKoZXRZ06_1sGrJ5PUErw-hGQr5gqXPyk7lfcOc-CX1j8m1-PVg/s640/2.png" width="640" /></a></div>
<br />
Then we will do some data cleansing, select News and category from the data set and clean up empty rows by removing any rows that does have any missing columns by setting minimum missing values range 0 to 1 ( that means if only single column has a missing value the action "cleaning mode" will be triggered , we will choose to remove the entire row<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmQjmwpXej6sUGysYFWl7CtvtwiLS4wInHs85rb7ib_mIvhtSosADElRt0FsXmFIIbKDX4PyTfxjfDTjb4XSnslgJj48ehThmf4LoyIN3BoAj8Zul4zEy01OKA18bbD6j41fogYI0TOeM/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="889" data-original-width="1406" height="404" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmQjmwpXej6sUGysYFWl7CtvtwiLS4wInHs85rb7ib_mIvhtSosADElRt0FsXmFIIbKDX4PyTfxjfDTjb4XSnslgJj48ehThmf4LoyIN3BoAj8Zul4zEy01OKA18bbD6j41fogYI0TOeM/s640/3.png" width="640" /></a></div>
<br />
Now it's getting more exciting, we will use some text analysis technique called Extract N-Gram features, this will use the News column (text representation of the document) as an input and based on the repetition of a single word or tuple of words it can analyse the tuple effect in the categorization.<br />
First thing we will change the default column selection from any string column to only analyse the News column which represents the text extraction from Office document.<br /><br />
Secondly, we will choose to create a vocabulary mode, the result vocabulary can be used later on in the predictive experiment. the next option is the N-Gram size which dictate to what extend you want the tuple to grow. for example if you keep the default 1 it will only consider a single word. However, if you choose 2 it will consider single word and any couple of consecutive words. In our example we will use three that means the text analysis will consider a single word, two words and three words tuples. <br />In the weighting function there are multiple options, I will choose TF-IDF which means term frequency and inverse document frequency. <br /><br />This technique is give more weight for terms that appears more than others with the consideration of giving a negative score for terms that appears in different documents( news items in our case) with different classification. The final score for the vocabulary is a mixture of both TF and IDF values.<br />
<br />There are lots of other options which can be viewed in more details in this excellent guide for N-Gram module guide <a href="https://docs.microsoft.com/en-us/azure/machine-learning/studio-module-reference/extract-n-gram-features-from-text" target="_blank">here</a><br />
<br />
One important option is the desired output features which is basically how many tuples you want to use to categorize your data, this might be a trial and error for a newbie like me until I can see the top n effective tuples to make it easier and faster for the trained model to compare future text against, in my scenario I used 5000 Features as a result of N-Gram Feature extraction step.<br /><br />
After the data preparation and vocabulary preparation , we will use 4 steps that is common across any training experiment which are (Split, Train, Score and Evaluate)<br />
<br />
The first Step is to split the data randomly with some condition or purely based on a random seed, train the model using part of the data then score the model using the other portion, last step is to evaluate the model and view how accurate your model is.<br /><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidOuysGc2XpVAB3GaOMrJQ0sR9cDUA303IDfR4kC4TdybZWLRdYjHvSOyC35E6UtyIknt87EX5U804V25QT7UCAYAtgmhz0swn4Wol1fz4OXDt6wlhZkkxhzzECjVP3IaT8Mhg4AGU_NY/s1600/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="940" data-original-width="1600" height="374" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidOuysGc2XpVAB3GaOMrJQ0sR9cDUA303IDfR4kC4TdybZWLRdYjHvSOyC35E6UtyIknt87EX5U804V25QT7UCAYAtgmhz0swn4Wol1fz4OXDt6wlhZkkxhzzECjVP3IaT8Mhg4AGU_NY/s640/4.png" width="640" /></a></div>
<br />
Based on the evaluation result you can see overall model accuracy, at this point if the model is not hitting the mark ( you can set target accuracy based on business requirements). One possible solution is to change N-Gram tuple values, output features or even use a complete different training algorithms. Sometimes it's useful to to include additional columns or metadata to help categorize the documents maybe a department name or author not only the document content. <br />In my sample I got overall accuracy of 80% which is accepted to me so relying on the text extraction from the documents is sufficient to me.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhR6GrB7Cnzlqcue1m20O785OVKLERSqj2CTqOfCxPlsLeTMWwTVVbFatdMuHxn_rqec16aMXw1pvzEM2MuZ82JEDWfBgc_cwU5RWFSGucGlsluE5oCho_Ja6sTzRk5wLiwSo09GAonmjM/s1600/5.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1181" data-original-width="866" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhR6GrB7Cnzlqcue1m20O785OVKLERSqj2CTqOfCxPlsLeTMWwTVVbFatdMuHxn_rqec16aMXw1pvzEM2MuZ82JEDWfBgc_cwU5RWFSGucGlsluE5oCho_Ja6sTzRk5wLiwSo09GAonmjM/s640/5.PNG" width="468" /></a></div>
<br />
Now let's run the experiment and confirm that all steps are executed successfully which we can validate with the green check mark on every step<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoppsC4q-3F1sDwaGJl4m8m1YDPEQEMSTefRjkRpy5PIE8VJUMT2Dci2QPz5NGpF0mTqSlcw1ATJ0JhGlZPhh70AxbXTsQC6dPYywOe7uN0jTPO42UyLFu6yMKoJcMgTCUslmDxN8r0pE/s1600/6.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1128" data-original-width="1600" height="450" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoppsC4q-3F1sDwaGJl4m8m1YDPEQEMSTefRjkRpy5PIE8VJUMT2Dci2QPz5NGpF0mTqSlcw1ATJ0JhGlZPhh70AxbXTsQC6dPYywOe7uN0jTPO42UyLFu6yMKoJcMgTCUslmDxN8r0pE/s640/6.PNG" width="640" /></a></div>
<br /></div>
</li>
<li><b>The Predictive Experiment</b>
<div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
After a successful run of the training experiment we can easily hover over setup a web-service in this case we can have retaining web service which will allow use to provide Dataset as an input and spit out the trained model and evaluation results as an output. for the sake of this blog post we will not play around with this option. We will instead generate a predictive experiment which will allow us to predict item classification based on its text representation. So using the same button in the lower toolbar we will choose to create predictive web service this will generate the predictive experiment for us if we run this and publish it, we will cause plenty of errors as the generated steps trying to create new vocabulary too.<br />Let's use the generated vocabulary of the training experiment as an input (we need to save the result vocabulary of the training experiment as Data-set so we ca use it later)<br /><br /><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoLym0QoXXqyCtUw9L1_LJK8eP4O9VpMn5oZkOBfclgolJU9TL1vr0PIGrhZ39jKaRZofFdZ4Ei8OEllU40NCYMyXpKZzPA2ryHlnTVaYd-NXn4RYLrPJS2EaoHEGNi-82zCkvIZyeHAs/s1600/7.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="957" data-original-width="1489" height="410" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoLym0QoXXqyCtUw9L1_LJK8eP4O9VpMn5oZkOBfclgolJU9TL1vr0PIGrhZ39jKaRZofFdZ4Ei8OEllU40NCYMyXpKZzPA2ryHlnTVaYd-NXn4RYLrPJS2EaoHEGNi-82zCkvIZyeHAs/s640/7.png" width="640" /></a></div>
We will also remove any transformation steps , we will only select single column (news text representation) which will be the single input for our web service.<br /><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcWEoHFG1ujROUHyn9fEpCJr_A56qkr7hPbJfLDPH3S1Tyy6vYDEY3SKloK6RtSKr-MHCZ_smYPM4PGTv_ca70U9FUuaWIvDN1piXeUPrZwM3l_FtxwMF3HmCip3ZWVcfLaCYoafpFQ28/s1600/8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="608" data-original-width="1600" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcWEoHFG1ujROUHyn9fEpCJr_A56qkr7hPbJfLDPH3S1Tyy6vYDEY3SKloK6RtSKr-MHCZ_smYPM4PGTv_ca70U9FUuaWIvDN1piXeUPrZwM3l_FtxwMF3HmCip3ZWVcfLaCYoafpFQ28/s640/8.png" width="640" /></a></div>
<div style="direction: ltr;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxYLS_rwtxmwt76LO6HdPkQu7yLIEsSBGKRI4hM5v4QZeK1W7IDQ_TxNJ4gC-SjOM4jc9BAuoXD3G7nQksgyADM3x39L54u6VYo6y12nUPXqMFbEypxLDNTiP142JA6qVYnzKnLJd1o2U/s1600/9.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><span style="color: black;"><br /> For the webservice output we will also select single output which will be scored label </span><br style="color: black;" /><img border="0" data-original-height="518" data-original-width="1600" height="206" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxYLS_rwtxmwt76LO6HdPkQu7yLIEsSBGKRI4hM5v4QZeK1W7IDQ_TxNJ4gC-SjOM4jc9BAuoXD3G7nQksgyADM3x39L54u6VYo6y12nUPXqMFbEypxLDNTiP142JA6qVYnzKnLJd1o2U/s640/9.png" width="640" /></a><br /><br /><br /></div>
</div>
</li>
<li><b>The Webservice
</b><div>
Let's run the predictive experiment now and make sure it's working, then we can deploy the web-service which we can use to classify text representation of documents. This will open a new page which allows us to test our web service by supplying text as "News" input and provide scored Label output as text.<br /><br />P.S. you must pass the API key as authentication header to make it work ;)</div>
</li>
</ol>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ89AYbhDR__VJx9ApuEtbvBlKvSQFWZiouDS0sj6Jbh3KtXGlYLKbjPYjqE4WJ_mwe7QSIXoytSPuszWt5auEF4OYyK0otFglKwpbmLwbIOfu00D6E3Amm1VYJ0u0chFMa-xp7fCMAD4/s1600/10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="687" data-original-width="1600" height="274" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ89AYbhDR__VJx9ApuEtbvBlKvSQFWZiouDS0sj6Jbh3KtXGlYLKbjPYjqE4WJ_mwe7QSIXoytSPuszWt5auEF4OYyK0otFglKwpbmLwbIOfu00D6E3Amm1VYJ0u0chFMa-xp7fCMAD4/s640/10.png" width="640" /></a></div>
<div style="text-align: left;">
<br /></div>
<br />
<div>
<br /></div>
</div>
Amr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.com3tag:blogger.com,1999:blog-7923569635494807119.post-45259382963500911852018-04-04T06:13:00.001-07:002018-04-17T04:54:11.387-07:00Auto Classify Documents in SharePoint using Azure Machine Learning Studio Part 1<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1Y9jDwMN9LoKORn829QlbmckMVrDAaHW1D4uognTXBjDHONg1JIGFh26wGbTG7sFk6pqTI8iFUjqkdMNz7r3lXiBSzFkqguJrkfL6a4rqEegR9dA0Aem0DPwB4-f6kaHbsC74sYiGWY0/s1600/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="393" data-original-width="1600" height="156" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1Y9jDwMN9LoKORn829QlbmckMVrDAaHW1D4uognTXBjDHONg1JIGFh26wGbTG7sFk6pqTI8iFUjqkdMNz7r3lXiBSzFkqguJrkfL6a4rqEegR9dA0Aem0DPwB4-f6kaHbsC74sYiGWY0/s640/4.png" width="640" /></a><br />
I was trying to figure out a way to get the text representation of documents stored either in OneDrive or SharePoint Online to execute some text analysis techniques using Azure machine learning studio. I know for sure (not really just guessing) that SharePoint search index store text representation of the document but I guess this version of the document is not exposed to us<br />
<blockquote class="twitter-tweet" data-lang="en">
<div dir="ltr" lang="en">
Hmm <a href="https://twitter.com/hashtag/CognitiveServices?src=hash&ref_src=twsrc%5Etfw">#CognitiveServices</a> can now tell you if text has profanity or derogatory terms.<a href="https://t.co/2dumIM2dkR">https://t.co/2dumIM2dkR</a><br />
<br />
Waiting on <a href="https://twitter.com/onedrive?ref_src=twsrc%5Etfw">@onedrive</a> <a href="https://twitter.com/hashtag/ContentServices?src=hash&ref_src=twsrc%5Etfw">#ContentServices</a> to return docx as txt then it'd be two <a href="https://twitter.com/MicrosoftFlow?ref_src=twsrc%5Etfw">@MicrosoftFlow</a> actions.<br />
<br />
Make a great O365 scanner that would flag docs to follow up</div>
— John LIU (@johnnliu) <a href="https://twitter.com/johnnliu/status/979120142427742208?ref_src=twsrc%5Etfw">March 28, 2018</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<br />
<div>
<br /></div>
<div>
I also happen to know (this one is not a guess) from the good old days that SharePoint search uses IFilter to get file content as text then store this text in the index. I tried to do it in a different way.</div>
<div>
So I figured how about doing this document to text conversion myself, I found <a href="https://kevm.github.io/tikaondotnet/" target="_blank">Tika text extraction library</a> handy apache open source tool which has been ported as .NET nuget package </div>
<div>
<br /></div>
<div>
I've create a simple Azure function using Visual studio, It has been a while since I used the full fledged Visual studio as I've been using mostly Visual studio code lately, as you guys can see the azure function is pretty straight forward just 4 lines of code to convert the docx files to text representation so we can use any text analysis techniques on our SharePoint documents.<br />
<script src="https://gist.github.com/ministainer/627c0e121b3f4f25e61e2a05508cb936.js"></script>
<br />
Now let's hook this to a simple Flow which been triggered when a new file been uploaded to specific SharePoint library.<br />
The flow will start then it will trigger the azure function which will extract the text representation of the office document and send it to a web-service to do some text analysis and return the document classification value.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizzZG1Ygk9RPxni4YRf-B6gpXOtwo9-jOOwlEBReVE13m1xkMhax2kjpOKIPLPjSFwIrq85PedlltdN0_n_-uULtBhye4_bvB3do0e3PRgG7ZXO8t7vtweT0v6kYEAI-S1SeLVCpMSYIg/s1600/1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1105" data-original-width="1339" height="528" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizzZG1Ygk9RPxni4YRf-B6gpXOtwo9-jOOwlEBReVE13m1xkMhax2kjpOKIPLPjSFwIrq85PedlltdN0_n_-uULtBhye4_bvB3do0e3PRgG7ZXO8t7vtweT0v6kYEAI-S1SeLVCpMSYIg/s640/1.PNG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVaIOHTK96EsxQTg3m3thAqljEThX-8nGOFFcoP9kHkMccWjkZ_rZaszHamLp4TjldlwCvBVPj_8zHcvF_29Ui7qCVBLbKHWoHYy6cXveitZlQ86eMQIcDOH9tdmDaX7uAkgHEEVyWFCI/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1327" data-original-width="1414" height="600" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVaIOHTK96EsxQTg3m3thAqljEThX-8nGOFFcoP9kHkMccWjkZ_rZaszHamLp4TjldlwCvBVPj_8zHcvF_29Ui7qCVBLbKHWoHYy6cXveitZlQ86eMQIcDOH9tdmDaX7uAkgHEEVyWFCI/s640/2.png" width="640" /></a></div>
<br />
<br />
Then within the flow itself we can update the SharePoint document and update the classification as per the text analysis result.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjI9S4d94IR7YiCje90T8NAKFpZuV3fYOCQFNKZm8e2pEorlrrqLz-JxOk9g7IoIwIlkCq5OblESCIVA85JKmN-N2iPFfXZM6wo6YF8LkR8nFyf15D4BhZbNugNgGHbvgOMHKB-Wam3PCs/s1600/3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="672" data-original-width="1598" height="268" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjI9S4d94IR7YiCje90T8NAKFpZuV3fYOCQFNKZm8e2pEorlrrqLz-JxOk9g7IoIwIlkCq5OblESCIVA85JKmN-N2iPFfXZM6wo6YF8LkR8nFyf15D4BhZbNugNgGHbvgOMHKB-Wam3PCs/s640/3.PNG" width="640" /></a></div>
<br />
<div style="direction: ltr;">
Hint: We will consider this web service call used in this flow as HTTP2 as a black box for now. to give you a sneak peak It's based on multi-class neural network classification algorithm built using Azure Machine Learning Studio and we will discuss this particular building block in more details in part 2 of this series.</div>
<div style="direction: ltr;">
<br /></div>
<div style="direction: ltr;">
now let's upload a new word document that have a text represents a business article and let's see the updated category text value<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1Y9jDwMN9LoKORn829QlbmckMVrDAaHW1D4uognTXBjDHONg1JIGFh26wGbTG7sFk6pqTI8iFUjqkdMNz7r3lXiBSzFkqguJrkfL6a4rqEegR9dA0Aem0DPwB4-f6kaHbsC74sYiGWY0/s1600/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="393" data-original-width="1600" height="156" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1Y9jDwMN9LoKORn829QlbmckMVrDAaHW1D4uognTXBjDHONg1JIGFh26wGbTG7sFk6pqTI8iFUjqkdMNz7r3lXiBSzFkqguJrkfL6a4rqEegR9dA0Aem0DPwB4-f6kaHbsC74sYiGWY0/s640/4.png" width="640" /></a></div>
<br /></div>
<div style="direction: ltr;">
Here we go , our smart document categorization flow is able to classify the document as business document.</div>
<div style="direction: ltr;">
In the next <a href="http://www.sharepointtweaks.com/2018/04/auto-classify-Office365-content-using-azure-machine-learning-studio-part2..html" target="_blank">part </a>of this blog series, we will discuss the azure machine learning studio experiment in more details.</div>
</div>
<div>
<br /></div>
</div>
Amr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.com2tag:blogger.com,1999:blog-7923569635494807119.post-74626776329892353282018-02-12T05:05:00.000-08:002018-02-12T05:05:43.093-08:00SharePoint Online: Unexpected behavior while trying to demote a news page<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhg-PVP7JBcWdZNZnwN8NGN_ACw05tUHDt9yfKzEbg_uqyW9T4RRNnmAiXFvGNeX3Y0f-Y2U_XGzeaeqEk8uZF76Ale-9zpN-4TCUbviPwaH57Eu8-fm2Prz0hE6pv0JJBGua9xNYxoDk/s1600/1+0.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="847" data-original-width="1600" height="337" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhg-PVP7JBcWdZNZnwN8NGN_ACw05tUHDt9yfKzEbg_uqyW9T4RRNnmAiXFvGNeX3Y0f-Y2U_XGzeaeqEk8uZF76Ale-9zpN-4TCUbviPwaH57Eu8-fm2Prz0hE6pv0JJBGua9xNYxoDk/s640/1+0.png" width="640" /></a></div>
<br />
In my previous blog <a href="http://www.sharepointtweaks.com/2018/01/promote-page-in-sharepoint.html" target="_blank">post</a> I explained in details how the new communication site differentiate between normal Site page and promoted "News" one. it's all about a newly introduced attribute of the SitePage content type called PromotedState.<br />
<br />
It's fairly easy to promote a normal site page using the UI using a simple button , but once you promote the page there is no button to return the page to a normal site page changing its promotedState back to "1".<br />
<br />
In this post, I'll walk you through an unexpected behavior when we try to update the value of the PromotedState using CSOM to its original value of "1" to hide the page from the OTB news webpart.<br />
<br />
I'm going to use exact code sample I've published before with minimal modifications, you can refer to my previous blog <a href="http://www.sharepointtweaks.com/2016/07/officedev-building-sharepoint-crossplatform-addins.html" target="_blank">post</a> published almost a year and half ago.<br />
<br />
Please note: for the modern experience old fashioned custom actions for the ECB context can not be deployed actually you will get an error message if you try to deploy an EditorControlBlock item based custom action<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg31Vp9xTk4SYf9Zrkz3lsFOK-GYPpZcwRqZzYw_VILyU_XAD2tYDxJ2H0aAij9-GvQgo37nmqBU5c9YrOBm4Lf-dXD1fJ7lu7E477-Li8CK4822tsV5lUxZBLOyczJsJxVj6eJi2v3g_8/s1600/error_custom_Action.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="82" data-original-width="1212" height="41" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg31Vp9xTk4SYf9Zrkz3lsFOK-GYPpZcwRqZzYw_VILyU_XAD2tYDxJ2H0aAij9-GvQgo37nmqBU5c9YrOBm4Lf-dXD1fJ7lu7E477-Li8CK4822tsV5lUxZBLOyczJsJxVj6eJi2v3g_8/s640/error_custom_Action.PNG" width="640" /></a></div>
<br />
For simplicity and because I just want to show the unexpected behavior when we manually update the promotedState from "2" to "1", I'll create a new JavaScript function to update the PromotedState and I'll call it demoteNewsItem which sets the Promoted State back to "1"<br />
<br />
all other helper functions will remain intact, I'll use them to acquire the token and get both digest and e-tag so I'll be able to update the SharePoint item.<br />
<br />
<script src="https://gist.github.com/ministainer/d75fd5a332f98403b89ae1372804c23d.js"></script>
I'm going to call the demote item function from my test.js file which I usually use for debugging purpose, I'm just trying to find a quick and easy way to update the site page "PromotedState" attribute.<br />
<b><br /></b>
If we navigate back to the site we can find that the promote button is enabled however it has no effect on the item once you decided to update PromotedState using the previous mechanism when I inspected the PromoteToNews item action (mentioned in details in the previous blog <a href="http://www.sharepointtweaks.com/2018/01/promote-page-in-sharepoint.html" target="_blank">post</a>) I can still see the result is true which gives you the feeling that the process has been successfully executed!<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8_YtwwyRlK3-hIPNX2wKm_wbjcpz9HX41UT8KprLDolCzO3-89dxidcNOR_7OzyfvhqajKrTOF_B5ELg3oNcJrr3ccebXoJL4e6gtoNP3JGsBopbrYAFjzdiHguXYCh5RU79PQ3VljQo/s1600/response_promote_to_news.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="182" data-original-width="1552" height="74" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8_YtwwyRlK3-hIPNX2wKm_wbjcpz9HX41UT8KprLDolCzO3-89dxidcNOR_7OzyfvhqajKrTOF_B5ELg3oNcJrr3ccebXoJL4e6gtoNP3JGsBopbrYAFjzdiHguXYCh5RU79PQ3VljQo/s640/response_promote_to_news.PNG" width="640" /></a></div>
<br />
A much better and user-friendly approach (which we will explore in our next blog post) is to create a new SPFx CommandSet for the site pages library. However having the page stuck on demoted state is still an issue as you can see below:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDrmCvu1MkHmLPskskxtxfcrMP4vaB8xKANDlZ5E17aXcC8rFqDupeTgxfnRkbVmbc4bHCvQOl-tvNyXQVzPqId7znbcd-yjOdft3Nrg_D34XtbS9zG1Y5VZnQ3fJZDjRgWpTTnI1xpJE/s1600/promote_issue.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="847" data-original-width="1600" height="337" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDrmCvu1MkHmLPskskxtxfcrMP4vaB8xKANDlZ5E17aXcC8rFqDupeTgxfnRkbVmbc4bHCvQOl-tvNyXQVzPqId7znbcd-yjOdft3Nrg_D34XtbS9zG1Y5VZnQ3fJZDjRgWpTTnI1xpJE/s640/promote_issue.gif" width="640" /></a></div>
<br />
<br />
<br /></div>
Amr Fouadhttp://www.blogger.com/profile/10095688472218893126noreply@blogger.com0