var F12;!function(r){!function(r){!function(r){"use strict";class e{static isTrue(r,t){if(!r){t=t?"Internal error. "+t:"Internal error. Unexpectedly false.";e.fail(t)}}static isFalse(r,t){if(r){t=t?"Internal error. "+t:"Internal error. Unexpectedly true.";e.fail(t)}}static isNull(r,t){if(null!==r){t=t?"Internal error. "+t:"Internal error. Unexpectedly not null.";t+=" '"+r+"'";e.fail(t)}}static isUndefined(r,t){0;if(void 0!==r){t=t?"Internal error. "+t:"Internal error. Unexpectedly not undefined.";t+=" '"+r+"'";e.fail(t)}}static hasValue(r,t){if(null===r||void 0===r){t=t?"Internal error. "+t:"Internal error. Unexpectedly "+(null===r?"null":"undefined")+".";e.fail(t)}}static areEqual(r,t,n){if(r!==t){n=n?"Internal error. "+n:"Internal error. Unexpectedly not equal.";n+=" '"+r+"' !== '"+t+"'.";e.fail(n)}}static areNotEqual(r,t,n){if(r===t){n=n?"Internal error. "+n:"Internal error. Unexpectedly equal.";n+=" '"+r+"' === '"+t+"'.";e.fail(n)}}static throws(r,t){try{r();t=t?"Internal error. "+t:"Internal error. Unexpectedly didn't throw.";e.fail(t)}catch(r){return}}static fail(r){e.fail_helper(r,!0)}static reportWatson(r){e.fail_helper(r,!1)}static failDebugOnly(r){isDebugBuild&&e.fail(r)}static fail_helper(r,e){var t=new Error((r||"Assert failed.")+"\n");try{throw t}catch(r){var n="undefined"!=typeof Common&&Common&&Common.ErrorHandling,l="undefined"!=typeof Microsoft&&Microsoft&&Microsoft.Plugin&&Microsoft.Plugin.F12&&Microsoft.Plugin.F12.SelfTest;n&&l&&!Microsoft.Plugin.F12.SelfTest.selfTestEnabled&&Common.ErrorHandling.reportErrorGivenStack(r);if(isDebugBuild||e){r.stack&&(r.description=r.stack);throw r}}}}r.Assert=e}(r.Utility||(r.Utility={}))}(r.Tools||(r.Tools={}))}(F12||(F12={}));
