(function(define) { define(function(require, ex$, module) {
var $$req$ = require; require = (typeof $$ceylon$require == 'undefined') ? $$req$ : function() { return $$ceylon$require('ceylon/language/1.2.2/ceylon.language-1.2.2', $$req$, Array.prototype.slice.call(arguments)); }
var _CTM$;function $CCMM$(){if (_CTM$===undefined)_CTM$=require('ceylon/language/1.2.2/ceylon.language-1.2.2-model').$CCMM$;return _CTM$;}
ex$.$CCMM$=$CCMM$;function getT$name() {return this.constructor.T$name;}
function getT$all() {return this.constructor.T$all;}
function initType(type, typeName) {
var cons = function() {}
type.$$ = cons;
cons.T$name = typeName;
cons.T$all = {}
cons.T$all[typeName] = type;
for (var i=2; i<arguments.length; ++i) {
var superTypes = arguments[i].$$.T$all;
for (var $ in superTypes) {cons.T$all[$] = superTypes[$]}
}
cons.prototype.getT$name = getT$name;
cons.prototype.getT$all = getT$all;
}
function initTypeProto(type, typeName) {
initType.apply(this, arguments);
var args = [].slice.call(arguments, 2);
args.unshift(type);
inheritProto.apply(this, args);
}
function initTypeProtoI(type, typeName) {
initType.apply(this, arguments);
var args = [].slice.call(arguments, 2);
if (type.$$.T$all['ceylon.language::Object']===undefined) {
type.$$.T$all['ceylon.language::Object']=$_Object;
}
args.unshift(type);
inheritProto.apply(this, args);
}
function initExistingType(type, cons, typeName) {
type.$$ = cons;
cons.T$name = typeName;
cons.T$all = {}
cons.T$all[typeName] = type;
for (var i=3; i<arguments.length; ++i) {
var superTypes = arguments[i].$$.T$all;
for (var $ in superTypes) {cons.T$all[$] = superTypes[$]}
}
var proto = cons.prototype;
if (proto !== undefined) {
try {
proto.getT$name = getT$name;
proto.getT$all = getT$all;
} catch (exc) {
}
}
}
function initExistingTypeProto(type, cons, typeName) {
var args = [].slice.call(arguments, 0);
args.push($init$Basic());
initExistingType.apply(this, args);
var proto = cons.prototype;
if ((proto !== undefined) && (proto.getHash === undefined)) {
var origToString = proto.toString;
try {
inheritProto(type, Basic);
proto.toString = origToString;
} catch (exc) {
}
}
}
function inheritProto(type) {
var proto = type.$$.prototype;
for (var i=1; i<arguments.length; ++i) {
var superProto = arguments[i].$$.prototype;
var names = Object.getOwnPropertyNames(superProto);
for (var j=0; j<names.length; ++j) {
var name = names[j];
var desc = Object.getOwnPropertyDescriptor(superProto, name);
if (desc && desc.enumerable) {
if (desc.get) {
Object.defineProperty(proto, name, desc);
} else {
var ow=proto[name]===undefined || desc.value.$fml===undefined;
if (ow && proto[name]) {
var em = getrtmm$$(proto[name]);
em = em && em.$cont && em.$cont.$$ && em.$cont.$$.prototype;
if (em) {
var nm = getrtmm$$(desc.value);
nm = nm && nm.$cont && nm.$cont.$$ && nm.$cont.$$.prototype;
if (nm) {
ow=em.getT$all()[nm.getT$name()]===undefined;
}
}
}
if (ow) proto[name] = desc.value;
}
}
}
}
}
function atr$(obj, name, get, set, metamodel,settermm) {
Object.defineProperty(obj, name, {get: get, set: set, configurable: true, enumerable: true});
obj['$prop$get'+name[0].toUpperCase()+name.substring(1)] = {get:get, set:set, $crtmm$:metamodel};
if (settermm)set.$crtmm$=settermm;
}
function copySuperAttr(obj, name, suffix) {
var desc;
var o = obj;
do {
if ((desc = Object.getOwnPropertyDescriptor(o, name))) {break;}
o = o.__proto__;
} while (o);
if (desc) {
Object.defineProperty(obj, name+suffix, desc);
}
}
function attrGetter(type, name) {
return Object.getOwnPropertyDescriptor(type.$$.prototype, name).get;
}
function attrSetter(type, name, value) {
return Object.getOwnPropertyDescriptor(type.$$.prototype, name).set;
}
ex$.initType=initType;
ex$.initTypeProto=initTypeProto;
ex$.initTypeProtoI=initTypeProtoI;
ex$.initExistingType=initExistingType;
ex$.initExistingTypeProto=initExistingTypeProto;
ex$.inheritProto=inheritProto;
ex$.atr$=atr$;
ex$.copySuperAttr=copySuperAttr;
ex$.attrGetter=attrGetter;
ex$.attrSetter=attrSetter;
function removeSupertypes(list) {
for (var i=0; i < list.length; i++) {
for (var j=i; i < list.length; i++) {
if (i!==j) {
if (extendsType(list[i],list[j])) {
list[j]=list[i];
} else if (extendsType(list[j],list[i])) {
list[i]=list[j];
}
}
}
}
}
function find_type_in_list$(t,l) {
for (var i=0; i < l.length; i++) {
if (l.t==='u' || l.t==='i') {
var _t=find_type_in_list(t,l.l);
if (_t)return _t;
} else if (l.t===t.t) {
return t;
}
}
return undefined;
}
function ut$(a,b){
if (a.t==='u'){
var et=find_type_in_list$(b,a.l);
if (et) {
if (a.a&&b.a) {
} else {
return a;
}
} else {
var na=a.l.slice(0);
na.push(b);
return {t:'u',l:na};
}
} else if (b.t==='u') {
var et=find_type_in_list$(a,b.l);
if (et) {
if (a.a&&b.a) {
} else {
return b;
}
} else {
var na=b.l.slice(0);
na.push(a);
return {t:'u',l:na};
}
} else if (a.t==='i'||b.t==='i') {
} else if (a.t===b.t) {
if (a.a&&b.a) {
return {t:a.t,a:it$(a.a,b.a)};
}
return a;
}
return {t:'u',l:[a,b]};
}
function it$(a,b){
if (a.t==='i') {
var et=find_type_in_list$(b,a.l);
if (et) {
if (a.a&&b.a) {
} else {
return a;
}
} else {
var na=a.l.slice(0);
na.push(b);
return {t:'i',l:na};
}
} else if (b.t==='i') {
var et=find_type_in_list$(a,b.l);
if (et) {
if (a.a&&b.a) {
} else {
return b;
}
} else {
var na=b.l.slice(0);
na.push(a);
return {t:'i',l:na};
}
} else if (a.t==='u'||b.t==='u') {
} else if (a.t===b.t) {
if (a.a&&b.a) {
return {t:a.t,a:ut$(a.a,b.a)};
}
return a;
}
return {t:'i',l:[a,b]};
}
function set_type_args(obj,targs,t) {
if (obj===undefined)return;
if (obj.$$targs$$ === undefined) {
obj.$$targs$$={};
}
for (x in targs) {
var n=targs[x];
if (!n)continue;
var e=obj.$$targs$$[x];
if (e) {
var mm=getrtmm$$(t);
var iance=mm && mm.tp && mm.tp[x] && mm.tp[x].dv;
if (iance === 'out') {
n=it$(e,n);
} else if (iance === 'in') {
n=ut$(e,n);
}
}
obj.$$targs$$[x] = n;
}
}
function add_type_arg(obj, name, type) {
if (obj===undefined)return;
if (obj.$$targs$$ === undefined) {
obj.$$targs$$={};
}
obj.$$targs$$[name]=type;
}
function wrapexc(e,loc,file) {
if (loc !== undefined) e.$loc=loc;
if (file !== undefined) e.$file=file;
return e;
}
function throwexc(e,loc,file) {
if (loc !== undefined) e.$loc=loc;
if (file !== undefined) e.$file=file;
throw e;
}
function eorl$(comp) {
if (comp===equal())return function(a,b){return a.compare(b)===equal();}
return function(a,b){return a.compare(b)!==comp;}
}
function asrt$(cond,msg,loc,file) {
if (!cond)throw wrapexc(AssertionError(msg),loc,file);
}
ex$.set_type_args=set_type_args;
ex$.add_type_arg=add_type_arg;
ex$.throwexc=throwexc;
ex$.wrapexc=wrapexc;
ex$.eorl$=eorl$;
ex$.asrt$=asrt$;
var INIT$={a:1};
ex$.INIT$=INIT$;
function setObjectProperty(object, key, value) {
object[key]=value;
}
ex$.setObjectProperty=setObjectProperty;
function is$(obj,type,containers){
if(type && type.t){
if(type.t==='i'||type.t==='u'){
return isOfTypes(obj, type);
} else if (type.t===Finished) {
return obj===finished();
}
if(obj===null||obj===undefined){
return type.t===Null||type.t===Anything;
}
if(obj.getT$all===undefined || !obj.getT$all()){
if(obj.$crtmm$){
var _mm=getrtmm$$(obj);
if(_mm.d['mt']==='m'){
if(type.t===Callable){
if(type.a&&type.a.Return$Callable&&_mm['$t']){
if(extendsType(_mm['$t'],type.a.Return$Callable)){
if(type.a.Arguments$Callable&&_mm['ps']!==undefined){
var metaparams=_mm['ps'];
if(metaparams.length==0){
return type.a.Arguments$Callable.t === Empty;
}else{
var comptype=type.a.Arguments$Callable;
for(var i=0;i<metaparams.length;i++){
if(comptype.t!==Tuple||!extendsType(metaparams[i]['$t'],comptype.a.First$Tuple)){
return false;
}
comptype=comptype.a.Rest$Tuple;
}
}
}
return true;
}
}
}
}
}
return false;
}
if (obj.$$targs$$===undefined && Array.isArray(obj))return false;
if (type.t==='T') {
if (is$(obj,{t:Tuple})) {
var last_type = type.l[type.l.length-1];
if (type.l.length===obj.size || last_type.seq) {
var lim=type.l.length; if (last_type.seq)lim--;
for (var i=0;i<lim;i++) {
if (!is$(obj.$_get(i),type.l[i]))return false;
}
if (last_type.seq==2 && obj.size<type.l.length) {
return false;
} else if (last_type.seq) {
for (var i=lim;i<obj.size;i++) {
if(!is$(obj.$_get(i),last_type)) {
return false;
}
}
}
return true;
} else {
return false;
}
} else {
return false;
}
}
type=value2type$(type);
if(type.t.$$.T$name in obj.getT$all()){
if(type.t==Callable&&!(obj.$$targs$$ && obj.$$targs$$.Return$Callable && obj.$$targs$$.Arguments$Callable)
&& getrtmm$$(obj)&&obj.$crtmm$.$t && obj.$crtmm$.ps!==undefined){
add_type_arg(obj,'Return$Callable',obj.$crtmm$.$t);
add_type_arg(obj,'Arguments$Callable',{t:'T',l:[]});
for(var i=0;i<obj.$crtmm$.ps.length;i++){
obj.$$targs$$.Arguments$Callable.l.push(obj.$crtmm$.ps[i].$t);
}
if (obj.$$targs$$.Arguments$Callable.l.length===0)obj.$$targs$$.Arguments$Callable={t:Empty};
}
if(type.a && obj.$$targs$$) {
for(var i in type.a) {
var cmptype=type.a[i];
var tmpobj=obj;
var iance=cmptype.uv||null;
var _mm=getrtmm$$(type.t);
if(!iance&&_mm&&_mm.tp&&_mm.tp[i])iance=_mm.tp[i].dv;
if(iance===null) {
while(iance===null&&tmpobj.outer$!==undefined){
tmpobj=tmpobj.outer$;
var _tmpf = tmpobj.constructor.T$all[tmpobj.constructor.T$name];
var _mmf = getrtmm$$(_tmpf);
if(_mmf&&_mmf.tp&&_mmf.tp[i]){
iance=_mmf.tp[i].dv;
}
if(iance===null&&_mmf&&_mmf['super']){
var smm=getrtmm$$(_mmf['super'].t);
if(smm&&smm.tp&&smm.tp[i])iance=smm.tp[i].dv;
}
if(iance===null&&_mmf&&_mmf.sts){
var sats=_mmf.sts;
for(var s=0;iance===null&&s<sats.length;s++){
var smm=getrtmm$$(sats[s].t);
if (smm&&smm.tp&&smm.tp[i])iance=smm.tp[i].dv;
}
}
}
}
if(iance===null) {
var _omm=_mm;
while(iance===null&&_omm) {
if(_omm.tp&&_omm.tp[i]!==undefined){
iance=_omm.tp[i].dv;
tmpobj=obj;
}
if(iance===null)_omm=getrtmm$$(_omm.$cont);
}
}
if (iance === 'out') {
if (!extendsType(tmpobj.$$targs$$[i], cmptype,true)) {
return false;
}
} else if (iance === 'in') {
if (!extendsType(cmptype, tmpobj.$$targs$$[i],true)) {
return false;
}
} else if (iance === undefined) {
var _targ=tmpobj.$$targs$$[i];
if (!(_targ && _targ.t && (_targ.t.$$ || _targ.t==='i' || _targ.t==='u')))return false;
if (_targ.t.$$) {
if (cmptype && cmptype.t && cmptype.t.$$) {
if (!(cmptype.t.$$.T$name && _targ.t.$$.T$name === cmptype.t.$$.T$name))return false;
} else if (cmptype && cmptype.t && cmptype.t==='i') {
if (cmptype.t!==_targ.t || !cmptype.l || cmptype.l.length!==_targ.l.length)return false;
for (var i=0; i<_targ.l.length;i++) {
if (!extendsType(_targ.l[i],cmptype,true))return false;
}
} else if (cmptype && cmptype.t && cmptype.t==='u') {
if (cmptype.t!==_targ.t || !cmptype.l || cmptype.l.length!==_targ.l.length)return false;
for (var i=0; i<_targ.l.length;i++) {
if (!extendsType(_targ.l[i],cmptype,true))return false;
}
}
} else {
if (cmptype.t!==_targ.t || !cmptype.l || cmptype.l.length!==_targ.l.length)return false;
for (var i=0; i<_targ.l.length;i++) {
if (!extendsType(_targ.l[i],cmptype,true))return false;
}
}
} else if (iance === null) {
console.log("Possible missing metamodel for " + type.t.$$.T$name + "<" + i + ">");
} else {
console.log("Don't know what to do about variance '" + iance + "'");
}
}
}
if (containers) {
var cnt=obj.outer$;
if (cnt) {
for (var i=0; i<containers.length; i++) {
if (!is$(cnt,containers[i]))return false;
cnt=cnt.outer$;
}
} else if (obj.$$targs$$) {
for (var t in containers) {
if (obj.$$targs$$[t] && containers[t] && !extendsType(obj.$$targs$$[t], containers[t], true))return false;
}
}
}
return true;
}
}
return false;
}
function isOfTypes(obj, types) {
if (obj===null) {
for (var i=0; i < types.l.length; i++) {
if(types.l[i].t===Null || types.l[i].t===Anything) return true;
else if (types.l[i].t==='u') {
if (isOfTypes(null, types.l[i])) return true;
}
}
return false;
}
if (obj === undefined || obj.getT$all === undefined) { return false; }
var unions = false;
var inters = true;
var _ints=false;
var objTypes = obj.getT$all();
for (var i = 0; i < types.l.length; i++) {
var t = types.l[i];
var partial = is$(obj, t);
if (types.t==='u') {
unions = partial || unions;
} else {
inters = partial && inters;
_ints=true;
}
}
return _ints ? inters||unions : unions;
}
function extendsType(t1, t2,tparm) {
if (t1 === undefined || t1.t === undefined || t1.t === Nothing || t2 === undefined || t2.t === undefined) {
return true;//t2 === undefined;
} else if (t2 && t2.t === Anything) {
return true;
} else if (t1 === null) {
return t2.t === Null || t2.t === Anything;
}
if (t1.t === 'u' || t1.t === 'i') {
if (t1.t==='i')removeSupertypes(t1.l);
var unions = false;
var inters = true;
var _ints = false;
for (var i = 0; i < t1.l.length; i++) {
var partial = extendsType(t1.l[i],t2,tparm);
if (t1.t==='u'&&!tparm) {
unions = partial||unions;
} else {
inters = partial&&inters;
_ints=true;
}
}
return _ints ? inters||unions : unions;
}
if (t2.t === 'u' || t2.t === 'i') {
if (t2.t==='i')removeSupertypes(t2.l);
var unions = false;
var inters = true;
var _ints = false;
for (var i = 0; i < t2.l.length; i++) {
var partial = extendsType(t1, t2.l[i],tparm);
if (t2.t==='u') {
unions = partial||unions;
} else {
inters = partial&&inters;
_ints=true;
}
}
return _ints ? inters||unions : unions;
}
if (t1.t==='T') {
if (t2.t==='T') {
if (t1.l.length>=t2.l.length) {
for (var i=0; i < t2.l.length;i++) {
if (!extendsType(t1.l[i],t2.l[i],tparm))return false;
}
return true;
} else return false;
} else {
t1=retpl$(t1);
}
} else if (t2.t==='T') {
t2=retpl$(t2);
}
t1=value2type$(t1);
for (t in t1.t.$$.T$all) {
if (t === t2.t.$$.T$name || t === 'ceylon.language::Nothing') {
if (t1.a && t2.a) {
for (ta in t1.a) {
if (!extendsType(t1.a[ta], t2.a[ta],tparm)) return false;
}
}
return true;
}
}
return false;
}
ex$.is$=is$;
function ne$(value){
return value!==null&&value!==undefined&&(is$(value,{t:Sequence})||(is$(value,{t:List})&&value.size>0));
}
function nn$(e) {
return e!==null&&e!==undefined&&e!==$_null();
}
ex$.ne$=ne$;
ex$.nn$=nn$;
function flattentype$(l,iu){
var lt=l.slice(0);
for (var i=0;i<lt.length;i++) {
if (lt[i].t===iu) {
var nt=lt[i].l;
lt.splice(i,1);
i--;
for (var j=0;j<nt.length;j++) {
addtype$(nt[j],lt);
}
}
}
return lt;
}
function mut$(l) {
var l=flattentype$(l,'u');
return l.length===1?l[0]:{t:'u',l:l};
}
function mit$(l) {
var l=flattentype$(l,'i');
return l.length===1?l[0]:{t:'i',l:l};
}
function mtt$(l) {
return {t:'T',l:l};
}
function addtype$(t,l) {
for (var i=0;i<l.length;i++) {
if (extendsType(t,l[i]))return;
}
l.push(t);
}
ex$.mut$=mut$;
ex$.mit$=mit$;
ex$.mtt$=mtt$;
function Anything(anything$){
$init$Anything();
if(anything$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class"),'?','?')
return anything$;
}
Anything.$crtmm$=function(){return{mod:$CCMM$,ps:[],of:[{t:$_Object},{t:Null}],pa:257,an:function(){return[doc$($CCMM$,'$:Anything'),by($arr$(["Gavin"],{t:$_String}))];},d:['$','Anything']};};
ex$.Anything=Anything;
function $init$Anything(){
if(Anything.$$===undefined){initTypeProto(Anything,'ceylon.language::Anything');}
return Anything;
}
ex$.$init$Anything=$init$Anything;$init$Anything();
function Nothing(wat) {
throw "Nothing";
}
initType(Nothing, 'ceylon.language::Nothing');
Nothing.$crtmm$=function(){return{ps:[],pa:1,mod:$CCMM$,d:['$','Nothing']};}
ex$.Nothing=Nothing;
function $_Object(object$){$init$$_Object();
if(object$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language::Object"),'?','?')
Anything(object$);return object$;}
$_Object.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Anything},ps:[],pa:257,an:function(){return[doc$($CCMM$,'$:Object'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Basic),$init$openClass$jsint()(lmp$(ex$,'$'),Null)].$sa$({t:ClassWithInitializerDeclaration$meta$declaration})),by(["Gavin"].$sa$({t:$_String})),tagged(["Basic types"].$sa$({t:$_String}))];},d:['$','Object']};};
ex$.$_Object=$_Object;function $init$$_Object(){if($_Object.$$===undefined){initTypeProto($_Object,'ceylon.language::Object',$init$Anything());
(function(object$){object$.equals={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:$_Object,pa:5,an:function(){return[doc$($CCMM$,'$:Object:$m:equals')];},d:['$','Object','$m','equals']};}};object$.$prop$getHash={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$_Object,pa:5,an:function(){return[doc$($CCMM$,'$:Object:$at:hash'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),identityHash)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Object','$at','hash']};}};atr$(object$,'string',function(){var object$=this;return className(object$).plus("@").plus(formatInteger(object$.hash,16))},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$_Object,pa:9,an:function(){return[doc$($CCMM$,'$:Object:$at:string')];},d:['$','Object','$at','string']};});})($_Object.$$.prototype);}
return $_Object;}
ex$.$init$$_Object=$init$$_Object;$init$$_Object();function Null(null$){$init$Null();
if(null$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language::Null"),'?','?')
Anything(null$);return null$;}
Null.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Anything},ps:[],of:[$prop$getNull],pa:257,an:function(){return[doc$($CCMM$,'$:Null'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getNull)].$sa$({t:ValueDeclaration$meta$declaration})),by(["Gavin"].$sa$({t:$_String})),tagged(["Basic types"].$sa$({t:$_String}))];},d:['$','Null']};};
ex$.Null=Null;function $init$Null(){if(Null.$$===undefined){initTypeProto(Null,'ceylon.language::Null',$init$Anything());
}
return Null;}
ex$.$init$Null=$init$Null;$init$Null();function $1(){var null$=new $1.$$;Null(null$);return null$;};$1.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Null},d:['$','null']};};function $init$$_null(){if($1.$$===undefined){initTypeProto($1,'ceylon.language::null',$init$Null());
}
return $1;}
ex$.$init$$_null=$init$$_null;$init$$_null();var $3;function $_null(){if($3===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'null\' before it was set"),'49:0-52:35','Null.ceylon');if($3===undefined){$3=INIT$;$3=$init$$_null()();$3.$crtmm$=$_null.$crtmm$;}
return $3;}
ex$.$_null=$_null;$_null.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},pa:1,an:function(){return[doc$($CCMM$,'$:null'),by(["Gavin"].$sa$({t:$_String})),tagged(["Basic types"].$sa$({t:$_String}))];},d:['$','null']};};$prop$getNull=$_null;ex$.$prop$getNull=$prop$getNull;function Identifiable(identifiable$){}
Identifiable.$crtmm$=function(){return{mod:$CCMM$,pa:1,an:function(){return[doc$($CCMM$,'$:Identifiable'),by(["Gavin"].$sa$({t:$_String})),tagged(["Basic types"].$sa$({t:$_String}))];},d:['$','Identifiable']};};
ex$.Identifiable=Identifiable;function $init$Identifiable(){if(Identifiable.$$===undefined){initTypeProtoI(Identifiable,'ceylon.language::Identifiable');
(function(identifiable$){identifiable$.equals=function($4){var identifiable$=this;return function(){var $5;if(is$(($5=$4),{t:Identifiable}))return (identifiable$===$5);else return false}();};identifiable$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:Identifiable,pa:11,an:function(){return[doc$($CCMM$,'$:Identifiable:$m:equals')];},d:['$','Identifiable','$m','equals']};};atr$(identifiable$,'hash',function(){var identifiable$=this;return identityHash(identifiable$)},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Identifiable,pa:11,an:function(){return[doc$($CCMM$,'$:Identifiable:$at:hash'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),identityHash)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Identifiable','$at','hash']};});})(Identifiable.$$.prototype);}
return Identifiable;}
ex$.$init$Identifiable=$init$Identifiable;$init$Identifiable();function Callable($$targs$$,callable$){set_type_args(callable$,$$targs$$,Callable);}
Callable.$crtmm$=function(){return{mod:$CCMM$,tp:{Return$Callable:{dv:'out'},Arguments$Callable:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:Callable'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Tuple)].$sa$({t:ClassWithInitializerDeclaration$meta$declaration})),tagged(["Functions"].$sa$({t:$_String})),$_native()];},d:['$','Callable']};};
ex$.Callable=Callable;function $init$Callable(){if(Callable.$$===undefined){initTypeProtoI(Callable,'ceylon.language::Callable');
}
return Callable;}
ex$.$init$Callable=$init$Callable;$init$Callable();function $JsCallable(f$,parms,targs) {
if (f$.jsc$)return f$;
if (f$.getT$all === undefined) {
f$.getT$all=Callable.getT$all;
}
var set_meta = getrtmm$$(f$) === undefined;
if (set_meta) {
f$.$crtmm$={ps:parms||[],mod:$CCMM$,d:['$','Callable']};
}
if (targs !== undefined && f$.$$targs$$ === undefined) {
f$.$$targs$$=targs;
if (set_meta) {
f$.$crtmm$.$t=targs.Return$Callable;
}
}
if (f$.$flattened$||f$.$unflattened$)return f$;
var f=function c1(){
return f$.apply(undefined,spread$(arguments,f$,targs,1));
}
f.$crtmm$=f$.$crtmm$;
f.getT$all=f$.getT$all;
f.jsc$=f$;
f.equals=function(o) {
return false;//o===f || o===f$;
}
return f;
}
initExistingTypeProto($JsCallable, Function, 'ceylon.language::JsCallable', $init$Callable());
function jsc$2(f$,parms,targs) {
if (f$.jsc$)return f$;
if (f$.getT$all === undefined) {
f$.getT$all=Callable.getT$all;
}
var set_meta = getrtmm$$(f$) === undefined;
if (set_meta) {
f$.$crtmm$={ps:parms||[],mod:$CCMM$,d:['$','Callable']};
}
if (targs !== undefined && f$.$$targs$$ === undefined) {
f$.$$targs$$=targs;
if (set_meta) {
f$.$crtmm$.$t=targs.Return$Callable;
}
}
if (f$.$flattened$||f$.$unflattened$)return f$;
var f=function c1(){
return f$.apply(undefined,arguments);
}
f.$crtmm$=f$.$crtmm$;
f.getT$all=f$.getT$all;
f.jsc$=f$;
f.equals=function(o) {
return false;//o===f || o===f$;
}
return f;
}
initExistingTypeProto(jsc$2, Function, 'ceylon.language::JsCallable', $init$Callable());
function nop$(){return null;}
function JsCallable(o,f,targs) {
if (o===null || o===undefined) return nop$;
if (f.jsc$)f=f.jsc$;
var f2=function c2() {
var arg=spread$(arguments,f,targs,1);
if (targs)arg.push(targs);
return f.apply(o, arg);
};
f2.c2$=f;
f2.$$targs$$=targs;
f2.equals=function(x){
return false;//f===x || f2===x;
}
f2.$crtmm$=f.$crtmm$||Callable.$crtmm$;
return f2;
}
JsCallable.$crtmm$=function(){return{sts:[{t:Callable,a:{Return$Callable:'Return$Callable',Arguments$Callable:'Arguments$Callable'}}],
tp:{Return$Callable:{dv:'out'}, Arguments$Callable:{dv:'in'}},pa:1,mod:$CCMM$,d:['$','Callable']};}
function jsc$3(o,f,targs) {
if (o===null || o===undefined) return nop$;
if (f.jsc$)f=f.jsc$;
var f2=function c2() {
return f.apply(o, arguments);
};
f2.c2$=f;
f2.$$targs$$=targs;
f2.equals=function(x){
return false;//f===x || f2===x;
}
f2.$crtmm$=f.$crtmm$||Callable.$crtmm$;
return f2;
}
jsc$3.$crtmm$=function(){return{sts:[{t:Callable,a:{Return$Callable:'Return$Callable',Arguments$Callable:'Arguments$Callable'}}],
tp:{Return$Callable:{dv:'out'}, Arguments$Callable:{dv:'in'}},pa:1,mod:$CCMM$,d:['$','Callable']};}
function spread$(a,f,targs,noInvoke) {
if (a.length===undefined||a.getT$all)console.log("NO ES ARREGLO!",a);
var arg=noInvoke?[].slice.call(a,0):a;
var spridx=arg.length-1;
if (arg.length>0 && is$(arg[spridx],{t:Tuple})) {
var tuple0=arg[spridx];
var mm=getrtmm$$(f);
var params = mm && mm.ps || [];
if (params.length===arg.length && params[spridx].seq>0) {
var tcheck=params[spridx].$t;
if ((tcheck.t===Sequential||tcheck.t===Sequence)&&is$(tuple0,tcheck)) {
return arg;
} else if (is$(tuple0,{t:Sequence,a:{Element$Sequence:tcheck}})){
return arg;
}
}
if (params.length===tuple0.size+spridx) {
var all=[];
for (var i=0; i<spridx;i++) {
all.push(arg[i]);
}
var j=0;
for (var i=spridx; i<params.length;i++){
var tet=params[i].$t;
if (typeof(tet)==='string'&&targs)tet=targs[tet];
if ((params[i].def && tuple0.getFromFirst(j)===undefined) || is$(tuple0.$_get(j),tet)) {
all.push(tuple0.getFromFirst(j));
}
j++
}
if (all.length===params.length) {
return all;
}
}
var a1t=params.length===1 && params[spridx].seq===undefined ? params[spridx].$t : undefined;
if (typeof(a1t)==='string')a1t=targs && targs[a1t];
if (!a1t || (is$(tuple0,a1t) && extendsType(a1t,{t:Iterable}))) {
return arg;
}
var typecheck;
if (a1t && targs && targs.Arguments$Callable) {
typecheck=targs.Arguments$Callable;
if (typecheck && typecheck.t && typecheck.t==='T' && typecheck.l
&& typecheck.l.length===1 && typecheck.l[0].seq) {
return arg;
}
} else if (a1t && tuple0.$$targs$$) {
if (tuple0.$$targs$$.First$Tuple) {
typecheck={t:Tuple,a:tuple0.$$targs$$};
} else if (tuple0.$$targs$$.t==='T') {
typecheck=tuple0.$$targs$$;
} else if (tuple0.$$targs$$.Element$Iterable) {
typecheck={t:Iterable,a:tuple0.$$targs$$.Element$Iterable};
}
}
if (params.length>1 || (params.length===1
&& (params[0].seq || !extendsType(a1t, typecheck)))) {
var a=tuple0.nativeArray ? tuple0.nativeArray():undefined;
if (a===undefined) {
a=[];
for (var i=0;i<tuple0.size;i++)a.push(tuple0.$_get(i));
}
arg=a;
}
}
if (noInvoke) {
return arg;
}
if (targs)arg.push(targs);
return f.apply(undefined,arg);
}
ex$.spread$=spread$;
function JsCallableList(list,fun,$mpt,$et) {
return function sprop() {
var len=list.size;
if (len===0)return empty();
var a=arguments;
if ($mpt) {
a=[].slice.call(arguments,0);
a.push($mpt);
}
var rval=Array(len);
var iter=list.iterator(),item,i=0;
while((item=iter.next())!==finished()){
rval[i++] = fun(item,a);
}
return rval.$sa$($et||{t:Anything});
};
}
JsCallableList.$crtmm$={tp:{Return$Callable:{dv:'out'}, Arguments$Callable:{dv:'in'}},pa:1,mod:$CCMM$,d:['$','Callable']};
function mkseq$(t,seq) {
if (seq)t.seq=seq;
return t;
}
ex$.JsCallableList=JsCallableList;
ex$.JsCallable=JsCallable;
ex$.$JsCallable=$JsCallable;
ex$.mkseq$=mkseq$;
ex$.jsc$2=jsc$2;
ex$.jsc$3=jsc$3;
function dre$$(object, type, loc) {
if (is$(object, type))return object;
if (object.$$ !== undefined && object.getT$all()[object.getT$name()].dynmem$===undefined) {
throw new TypeError("Cannot modify the type of an object to "+qname$(type)+" at runtime " + loc);
}
if (typeof(object)==='object' && Object.isFrozen(object)) {
throw new Error("Cannot add Ceylon type information to a frozen object");
}
function memberTypeIsDynamicInterface$(t) {
if (t.t && t.t.dynmem$) {
return t;
}
if (t.t==='u') {
var c=0,st;
for (var i=0; i<t.l.length;i++) {
if (t.l[i].t.dynmem$) {
c++;
st=t.l[i];
}
}
if (c===1) {
return st;
}
}
return undefined;
}
var actual = typeof(object)==='object'?Object.getOwnPropertyNames(object):[];
var sats = type.t.$$.prototype.getT$all();
object.$$=type.t.$$;
object.getT$name=function(){return type.t.$$.T$name};
object.getT$all=function(){return sats;}
if (type.a) {
object.$$targs$$=type.a;
}
for (var sat in sats) {
var expected = sats[sat].dynmem$;
if (expected) {
for (var i=0; i < expected.length; i++) {
var propname="$prop$get"+expected[i][0].uppercased+expected[i].substring(1);
var proptype=type.t.$$.prototype[propname];
if (proptype) {
proptype=getrtmm$$(proptype);
}
if (actual.indexOf(expected[i])<0 && object[expected[i]]===undefined) {
if (extendsType({t:Null},proptype.$t)) {
object[expected[i]]=null;
} else {
throw new Error("Native object is missing property '" + expected[i] + "' " + loc);
}
} else {
var val=object[expected[i]],dynmemberType;
if (val===object) {
if (!is$(val,proptype.$t)) {
var tname=object.getT$name()+"|"+proptype.$t.t.$$.T$name;
object.getT$name=function(){return tname;}
var _ts={};
for (var _tn in object.getT$all()) {
_ts[_tn]=object.getT$all()[_tn];
}
_ts[proptype.$t.t.$$.prototype.getT$name()]=proptype.$t.t;
object.getT$all=function(){return _ts;}
object.$$=$_Object.$$;
}
} else if (proptype && proptype.$t && !is$(val,proptype.$t)) {
if (proptype.$t.t===$_Array) {
object[expected[i]]=natc$(val,proptype.$t.a.Element$Array,loc);
} else if (proptype.$t.t===Integer) {
object[expected[i]]=ndnc$(val,'i',loc);
} else if (proptype.$t.t===Float) {
object[expected[i]]=ndnc$(val,'f',loc);
} else if ((dynmemberType=memberTypeIsDynamicInterface$(proptype.$t))!==undefined) {
dre$$(val,dynmemberType,loc);
} else {
var _t=proptype.$t;
if (typeof(_t)==='string') {
if (object.$$targs$$[_t]) {
_t=object.$$targs$$[_t];
} else {
var mm=getrtmm$$(type.t);
if (mm && mm.sts) {
for (var i=0;i<mm.sts.length;i++) {
if (mm.sts[i].a && mm.sts[i].a[_t]) {
object.$$targs$$[_t]=mm.sts[i].a[_t];
_t=mm.sts[i].a[_t]; break;
}
}
}
}
}
object[expected[i]]=ndtc$(val,_t,loc);
}
}
}
}
}
}
if (typeof(object)==='object') {
if (actual.indexOf('string')<0) {
atr$(object,'string',function(){return object.toString();},undefined,
$_Object.$$.prototype.$prop$getString.$crtmm$);
}
if (actual.indexOf('hash')<0) {
atr$(object,'hash',function(){return identityHash(object);},undefined,
$_Object.$$.prototype.$prop$getHash.$crtmm$);
}
}
return object;
}
ex$.dre$$=dre$$;
function pndo$(o) {
if (o === undefined)print("<undefined>");
else if (o === null)print("<null>");
else if (is$(o,{t:Anything}))print(o);
else if (o.string)print(o.string);
else {
print(o.toString());
}
}
ex$.pndo$=pndo$;
function ndnc$(n,t,loc) {
if (t==='f') {
if (typeof(n)==='number')return Float(n);
if (is$(n,{t:Float}))return n;
} else if (t==='i') {
if (typeof(n)==='number')return Math.floor(n);
if (is$(n,{t:Integer}))return n;
}
throw new TypeError('Expected ' + (t==='f'?'Float':'Integer') + ' (' + loc + ')');
}
ex$.ndnc$=ndnc$;
function ndtc$(o,t,loc) {
if (is$(o,t))return o;
throw new TypeError('Expected ' + qname$(t) + ' (' + loc + ')');
}
ex$.ndtc$=ndtc$;
function natc$(a,t,loc) {
if (a===empty())return $arr$([],t);
if (Array.isArray(a)) {
for (var i=0;i<a.length;i++) {
if (!is$(a[i],t) && (a[i] && a[i].$$)===undefined) {
a[i]=dre$$(a[i],t,loc);
}
}
return $arr$(a,t);
}
throw new TypeError('Expected ' + qname$(t) + ' (' + loc + ')');
}
ex$.natc$=natc$;
function Basic(basic$){$init$Basic();
if(basic$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language::Basic"),'?','?')
$_Object(basic$);Identifiable(basic$);return basic$;}
Basic.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],sts:[{t:Identifiable}],pa:257,an:function(){return[doc$($CCMM$,'$:Basic'),by(["Gavin"].$sa$({t:$_String})),tagged(["Basic types"].$sa$({t:$_String}))];},d:['$','Basic']};};
ex$.Basic=Basic;function $init$Basic(){if(Basic.$$===undefined){initTypeProto(Basic,'ceylon.language::Basic',$init$$_Object(),$init$Identifiable());
}
return Basic;}
ex$.$init$Basic=$init$Basic;$init$Basic();function Throwable($7,cause,throwable$){$init$Throwable();
if(throwable$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language::Throwable"),'?','?')
if($7===undefined){$7=$init$Throwable().$defs$description(throwable$,cause);}
throwable$.$7_=$7;if(cause===undefined){cause=$init$Throwable().$defs$cause(throwable$,$7);}
throwable$.cause_=cause;(function(msg,cause,exc) {
exc.stack_trace=[];
exc.toString=function(){return this.string;}
try {
exc.stack_trace=new Error().stack.split('\n').slice(3);
return;
} catch(e){}
try {
var _caller=arguments.callee.caller.caller;
var ilc=0;
var ilf=null;
var noms=[];
while(_caller) {
exc.stack_trace.push(_caller);
noms.push(_caller.string);
try {
_caller = _caller.caller;
if (!_caller)return;
if (_caller.string===ilf) {
ilc++;
if (ilc>2) {
exc.stack_trace.push("CIRCULAR");
_caller = null;
}
} else if (ilc===0 && noms.contains(_caller.string)) {
ilc=1;
ilf=_caller.string;
}
} catch(e) { _caller = null; }
}
} catch(e) {}
}
)($7,cause,throwable$);return throwable$;}
Throwable.$defs$description=function(throwable$,cause){return null};Throwable.$defs$cause=function(throwable$,$7){return null};Throwable.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'description',mt:'prm',def:1,$t:{t:'u',l:[{t:Null},{t:$_String}]},an:function(){return[doc("A description of the problem.")];}},{nm:'cause',mt:'prm',def:1,$t:{t:'u',l:[{t:Null},{t:Throwable}]},pa:1,an:function(){return[doc$($CCMM$,'$:Throwable:$at:cause')];}}],pa:273,an:function(){return[doc$($CCMM$,'$:Throwable'),by(["Gavin","Tom"].$sa$({t:$_String})),tagged(["Basic types"].$sa$({t:$_String})),$_native()];},d:['$','Throwable']};};
ex$.Throwable=Throwable;function $init$Throwable(){if(Throwable.$$===undefined){initTypeProto(Throwable,'ceylon.language::Throwable',Basic);
(function(throwable$){atr$(throwable$,'$7',function(){return this.$7_;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:$_String}]},$cont:Throwable,an:function(){return[doc("A description of the problem.")];},d:['$','Throwable','$at','description$arbt90']};});atr$(throwable$,'cause',function(){return this.cause_;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Throwable}]},$cont:Throwable,pa:1,an:function(){return[doc$($CCMM$,'$:Throwable:$at:cause')];},d:['$','Throwable','$at','cause']};});atr$(throwable$,'message',function(){var throwable$=this;return ($8=($9=throwable$.$7,nn$($9)?$9:($a=throwable$.cause,nn$($a)?$a.message:null)),nn$($8)?$8:"")},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Throwable,pa:9,an:function(){return[doc$($CCMM$,'$:Throwable:$at:message'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Throwable().$$.prototype.$prop$getCause)].$sa$({t:ValueDeclaration$meta$declaration}))];},d:['$','Throwable','$at','message']};});atr$(throwable$,'string',function(){var throwable$=this;return className(throwable$).plus(" \"".plus(throwable$.message).plus("\""))},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Throwable,pa:11,d:['$','Throwable','$at','string']};});throwable$.printStackTrace=function(){var throwable$=this;return printStackTrace(throwable$);};throwable$.printStackTrace.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:Throwable,pa:1,an:function(){return[doc$($CCMM$,'$:Throwable:$m:printStackTrace'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),printStackTrace)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Throwable','$m','printStackTrace']};};throwable$.addSuppressed=function addSuppressed(sup) {
if (this.$sups$===undefined) {
this.$sups$=[];
}
if (sup.getT$name === undefined) sup = NativeException(sup);
this.$sups$.push(sup);
}
throwable$.addSuppressed.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'suppressed',mt:'prm',$t:{t:Throwable}}],$cont:Throwable,pa:1,an:function(){return[doc$($CCMM$,'$:Throwable:$m:addSuppressed'),$_native()];},d:['$','Throwable','$m','addSuppressed']};};atr$(throwable$,'suppressed',function(){return this.$sups$===undefined||this.$sups$.length===0?empty():this.$sups$.$sa$({t:Throwable});
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Throwable}}},$cont:Throwable,pa:1,an:function(){return[doc$($CCMM$,'$:Throwable:$at:suppressed'),$_native()];},d:['$','Throwable','$at','suppressed']};});})(Throwable.$$.prototype);}
return Throwable;}
ex$.$init$Throwable=$init$Throwable;$init$Throwable();var $8,$9,$a;function Exception($c,$d,exception$){$init$Exception();
if(exception$===undefined)exception$=new Exception.$$;
if($c===undefined){$c=$init$Exception().$defs$description(exception$,$d);}
exception$.$c_=$c;if($d===undefined){$d=$init$Exception().$defs$cause(exception$,$c);}
exception$.$d_=$d;Throwable($c,$d,exception$);return exception$;}
Exception.$defs$description=function(exception$,$d){return null};Exception.$defs$cause=function(exception$,$c){return null};Exception.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Throwable},ps:[{nm:'description',mt:'prm',def:1,$t:{t:'u',l:[{t:Null},{t:$_String}]},an:function(){return[doc("A description of the problem.")];}},{nm:'cause',mt:'prm',def:1,$t:{t:'u',l:[{t:Null},{t:Throwable}]},an:function(){return[doc$($CCMM$,'$:Exception:$at:cause$tn7i4g')];}}],pa:1,an:function(){return[doc$($CCMM$,'$:Exception'),by(["Gavin","Tom"].$sa$({t:$_String})),$_native()];},d:['$','Exception']};};
ex$.Exception=Exception;function $init$Exception(){if(Exception.$$===undefined){initTypeProto(Exception,'ceylon.language::Exception',$init$Throwable());
(function(exception$){atr$(exception$,'$c',function(){return this.$c_;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:$_String}]},$cont:Exception,an:function(){return[doc("A description of the problem.")];},d:['$','Exception','$at','description$etadt1']};});atr$(exception$,'$d',function(){return this.$d_;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Throwable}]},$cont:Exception,an:function(){return[doc$($CCMM$,'$:Exception:$at:cause$tn7i4g')];},d:['$','Exception','$at','cause$tn7i4g']};});})(Exception.$$.prototype);}
return Exception;}
ex$.$init$Exception=$init$Exception;$init$Exception();function Comparison(string,comparison$){$init$Comparison();
if(comparison$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language::Comparison"),'?','?')
comparison$.$e_=string;return comparison$;}
Comparison.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'string',mt:'prm',$t:{t:$_String},pa:3}],of:[$prop$getLarger,$prop$getSmaller,$prop$getEqual],pa:257,an:function(){return[doc$($CCMM$,'$:Comparison'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Comparable)].$sa$({t:InterfaceDeclaration$meta$declaration})),by(["Gavin"].$sa$({t:$_String})),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','Comparison']};};
ex$.Comparison=Comparison;function $init$Comparison(){if(Comparison.$$===undefined){initTypeProto(Comparison,'ceylon.language::Comparison',Basic);
(function(comparison$){atr$(comparison$,'string',function(){return this.$e_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Comparison,pa:3,d:['$','Comparison','$at','string']};});comparison$.$prop$getReversed={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Comparison},$cont:Comparison,pa:5,an:function(){return[doc$($CCMM$,'$:Comparison:$at:reversed')];},d:['$','Comparison','$at','reversed']};}};})(Comparison.$$.prototype);}
return Comparison;}
ex$.$init$Comparison=$init$Comparison;$init$Comparison();function $f(){var equal$=new $f.$$;Comparison("equal",equal$);return equal$;};$f.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Comparison},d:['$','equal']};};function $init$equal(){if($f.$$===undefined){initTypeProto($f,'ceylon.language::equal',$init$Comparison());
(function(equal$){atr$(equal$,'reversed',function(){var equal$=this;return equal$;},undefined,function(){return{mod:$CCMM$,$t:{t:Comparison},$cont:$f,pa:3,d:['$','equal','$at','reversed']};});})($f.$$.prototype);}
return $f;}
ex$.$init$equal=$init$equal;$init$equal();var $h;function equal(){if($h===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'equal\' before it was set"),'12:0-16:0','Comparison.ceylon');if($h===undefined){$h=INIT$;$h=$init$equal()();$h.$crtmm$=equal.$crtmm$;}
return $h;}
ex$.equal=equal;equal.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$equal()},pa:1,an:function(){return[doc$($CCMM$,'$:equal'),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','equal']};};$prop$getEqual=equal;ex$.$prop$getEqual=$prop$getEqual;function $i(){var smaller$=new $i.$$;Comparison("smaller",smaller$);return smaller$;};$i.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Comparison},d:['$','smaller']};};function $init$smaller(){if($i.$$===undefined){initTypeProto($i,'ceylon.language::smaller',$init$Comparison());
(function(smaller$){atr$(smaller$,'reversed',function(){var smaller$=this;return larger();},undefined,function(){return{mod:$CCMM$,$t:{t:Comparison},$cont:$i,pa:3,d:['$','smaller','$at','reversed']};});})($i.$$.prototype);}
return $i;}
ex$.$init$smaller=$init$smaller;$init$smaller();var $k;function smaller(){if($k===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'smaller\' before it was set"),'18:0-22:0','Comparison.ceylon');if($k===undefined){$k=INIT$;$k=$init$smaller()();$k.$crtmm$=smaller.$crtmm$;}
return $k;}
ex$.smaller=smaller;smaller.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$smaller()},pa:1,an:function(){return[doc$($CCMM$,'$:smaller'),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','smaller']};};$prop$getSmaller=smaller;ex$.$prop$getSmaller=$prop$getSmaller;function $l(){var larger$=new $l.$$;Comparison("larger",larger$);return larger$;};$l.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Comparison},d:['$','larger']};};function $init$larger(){if($l.$$===undefined){initTypeProto($l,'ceylon.language::larger',$init$Comparison());
(function(larger$){atr$(larger$,'reversed',function(){var larger$=this;return smaller();},undefined,function(){return{mod:$CCMM$,$t:{t:Comparison},$cont:$l,pa:3,d:['$','larger','$at','reversed']};});})($l.$$.prototype);}
return $l;}
ex$.$init$larger=$init$larger;$init$larger();var $n;function larger(){if($n===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'larger\' before it was set"),'24:0-28:0','Comparison.ceylon');if($n===undefined){$n=INIT$;$n=$init$larger()();$n.$crtmm$=larger.$crtmm$;}
return $n;}
ex$.larger=larger;larger.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$larger()},pa:1,an:function(){return[doc$($CCMM$,'$:larger'),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','larger']};};$prop$getLarger=larger;ex$.$prop$getLarger=$prop$getLarger;function Iterable($$targs$$,iterable$){set_type_args(iterable$,$$targs$$,Iterable);Category({Element$Category:{t:$_Object}},iterable$);}
Iterable.$crtmm$=function(){return{mod:$CCMM$,tp:{Element$Iterable:{dv:'out',def:{t:Anything}},Absent$Iterable:{dv:'out',sts:[{t:Null}],def:{t:Null}}},sts:[{t:Category,a:{Element$Category:{t:$_Object}}}],pa:1,an:function(){return[doc$($CCMM$,'$:Iterable'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Collection),$init$OpenFunction$jsint()(lmp$(ex$,'$'),corresponding)].$sa$(mut$([{t:InterfaceDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}]))),by(["Gavin"].$sa$({t:$_String})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','Iterable']};};
ex$.Iterable=Iterable;function $init$Iterable(){if(Iterable.$$===undefined){initTypeProtoI(Iterable,'ceylon.language::Iterable',$init$Category());
(function(iterable$){iterable$.iterator={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Iterable'}},ps:[],$cont:Iterable,pa:5,an:function(){return[doc$($CCMM$,'$:Iterable:$m:iterator')];},d:['$','Iterable','$m','iterator']};}};iterable$.contains=function($o){var iterable$=this;return iterable$.any($JsCallable((function($p){return function(){var $q;if(nn$(($q=$p)))return $q.equals($o);else return false}();}),[{nm:'e',mt:'prm',$t:iterable$.Element$Iterable}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([iterable$.$$targs$$.Element$Iterable])}));};iterable$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:$_Object}}],$cont:Iterable,pa:11,an:function(){return[doc$($CCMM$,'$:Iterable:$m:contains')];},d:['$','Iterable','$m','contains']};};atr$(iterable$,'empty',function(){var iterable$=this;return is$(iterable$.iterator().next(),{t:Finished})},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$at:empty')];},d:['$','Iterable','$at','empty']};});atr$(iterable$,'size',function(){var iterable$=this;return iterable$.count($JsCallable((function($r){return true;}),[{nm:'e',mt:'prm',$t:iterable$.Element$Iterable}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([iterable$.$$targs$$.Element$Iterable])}))},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$at:size')];},d:['$','Iterable','$at','size']};});iterable$.longerThan=function($s){var iterable$=this;if(($s<0)){return true;}
var $t=(0);var $v;for(var $u=iterable$.iterator();($v=$u.next())!==finished();){if(((($w=$t,$t=$w.successor,$w)).valueOf()==($s).valueOf())){return true;}
var $w;}return false;};iterable$.longerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:longerThan'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$prop$getSize)].$sa$({t:ValueDeclaration$meta$declaration}))];},d:['$','Iterable','$m','longerThan']};};iterable$.shorterThan=function($x){var iterable$=this;if(($x<=0)){return false;}
var $y=(0);var $10;for(var $z=iterable$.iterator();($10=$z.next())!==finished();){if(((($y=$y.successor)).valueOf()==($x).valueOf())){return false;}
}return true;};iterable$.shorterThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:shorterThan'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$prop$getSize)].$sa$({t:ValueDeclaration$meta$declaration}))];},d:['$','Iterable','$m','shorterThan']};};atr$(iterable$,'first',function(){var iterable$=this;var $11;if(!is$(($11=iterable$.iterator().next()),{t:Finished})){return $11;}
else{var $12;asrt$((is$(($12=null),iterable$.$$targs$$.Absent$Iterable)),"iterator for nonempty iterable must produce at \nleast one element: \'is Absent null\' at Iterable.ceylon (210:19-210:34)",'208:12-210:35','Iterable.ceylon');
return null;}
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:['Absent$Iterable','Element$Iterable']},$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$at:first')];},d:['$','Iterable','$at','first']};});atr$(iterable$,'last',function(){var iterable$=this;var $13=iterable$.first;var $15;for(var $14=iterable$.iterator();($15=$14.next())!==finished();){$13=$15;}return $13;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:['Absent$Iterable','Element$Iterable']},$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$at:last')];},d:['$','Iterable','$at','last']};});iterable$.getFromFirst=function($16){var iterable$=this;var $17=(0);var $19;for(var $18=iterable$.iterator();($19=$18.next())!==finished();){if(((($1a=$17,$17=$1a.successor,$1a)).valueOf()==($16).valueOf())){return $19;}
var $1a;}
if(finished()===$19){return null;}
};iterable$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Iterable']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:getFromFirst')];},d:['$','Iterable','$m','getFromFirst']};};iterable$.sequence=function(){var iterable$=this;return function(){var $1b=$_Array(iterable$,{Element$Array:iterable$.$$targs$$.Element$Iterable});return ($1b.empty?empty():ArraySequence($1b,{Element$ArraySequence:iterable$.$$targs$$.Element$Iterable}));}();};iterable$.sequence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Iterable'}},ps:[],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:sequence')];},d:['$','Iterable','$m','sequence']};};iterable$.indexes=function(){var iterable$=this;return measure((0),iterable$.size,{Element$measure:{t:Integer}});};iterable$.indexes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Range,a:{Element$Range:{t:Integer}}},{t:Empty}]},ps:[],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:indexes')];},d:['$','Iterable','$m','indexes']};};atr$(iterable$,'rest',function(){var iterable$=this;return iterable$.skip(1)},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}},$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$at:rest'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$prop$getFirst)].$sa$({t:ValueDeclaration$meta$declaration}))];},d:['$','Iterable','$at','rest']};});atr$(iterable$,'exceptLast',function(){var iterable$=this;return function(){function $1c($$targs$$){var $1c$=new $1c.$$;$1c$.outer$=iterable$;$1c$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:{t:Null},Element$Iterable:iterable$.$$targs$$.Element$Iterable},$1c$);return $1c$;};$1c.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$1c$.$prop$getExceptLast,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$at','exceptLast']};};function $init$$1c(){if($1c.$$===undefined){initTypeProto($1c,'ceylon.language::Iterable.anonymous#2',Basic,$init$Iterable());
(function($1c$){$1c$.iterator=function(){var $1c$=this;return function(){var $1d=iterable$.iterator();return function(){function $1e($$targs$$){var $1e$=new $1e.$$;$1e$.outer$=$1c$;$1e$.$$targs$$=$$targs$$;Iterator({Element$Iterator:iterable$.$$targs$$.Element$Iterable},$1e$);$1e$.$1f_=$1d.next();$1e$.$prop$get$1f={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},$cont:$1c$.$prop$getExceptLast,pa:1024,d:['$','Iterable','$at','exceptLast','$at','current$fkl9s3']};}};$1e$.$prop$get$1f.get=function(){return $1f};return $1e$;};$1e.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$1c$.$prop$getExceptLast,sts:[{t:Iterator,a:{Element$Iterator:'Element$Iterable'}}],d:['$','Iterable','$at','exceptLast']};};function $init$$1e(){if($1e.$$===undefined){initTypeProto($1e,'ceylon.language::Iterable.anonymous#2.anonymous#3',Basic,$init$Iterator());
(function($1e$){atr$($1e$,'$1f',function(){return this.$1f_;},function($1g){return this.$1f_=$1g;},function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},$cont:$1c$.$prop$getExceptLast,pa:1024,d:['$','Iterable','$at','exceptLast','$at','current$fkl9s3']};});$1e$.next=function(){var $1e$=this;var $1h;if(!is$(($1h=$1d.next()),{t:Finished})){var $1i=$1e$.$1f;$1e$.$1f=$1h;return $1i;}
else{return finished();}
};$1e$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},ps:[],$cont:$1c$.$prop$getExceptLast,pa:3,d:['$','Iterable','$at','exceptLast','$m','next']};};})($1e.$$.prototype);}
return $1e;}
$1c$.$init$$1e=$init$$1e;$init$$1e();return $1e();}();}();};})($1c.$$.prototype);}
return $1c;}
iterable$.$init$$1c=$init$$1c;$init$$1c();return $1c();}()},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}},$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$at:exceptLast')];},d:['$','Iterable','$at','exceptLast']};});iterable$.each=function($1l){var iterable$=this;var $1n;for(var $1m=iterable$.iterator();($1n=$1m.next())!==finished();){$1l($1n);}};iterable$.each.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'step',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Anything},Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:{t:Anything},ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:each')];},d:['$','Iterable','$m','each']};};iterable$.$_map=function($1o,$c0dia6$){var iterable$=this;return for$(function(){var $1p=iterable$.iterator(),$1q=finished();var n$1q=function(){return $1q=$1p.next();}
return function(){if(n$1q()!==finished()){var $1r=$1q,$1s=$1o($1r);return $1s;}
return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:$c0dia6$.Result$map/*ORALE!Result inv pero Element var*/});};iterable$.$_map.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:'Result$map'}},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$map',Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:'Result$map',ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,tp:{Result$map:{}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:map'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.collect)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','map']};};iterable$.flatMap=function($1t,$21991j$){var iterable$=this;return expand(iterable$.$_map(JsCallable(iterable$,$1t),{Result$map:{t:Iterable,a:{Absent$Iterable:$21991j$.OtherAbsent$flatMap/*ORALE!OtherAbsent inv pero Absent var*/,Element$Iterable:$21991j$.Result$flatMap/*ORALE!Result inv pero Element var*/}}}),{InnerAbsent$expand:$21991j$.OtherAbsent$flatMap,Element$expand:$21991j$.Result$flatMap,OuterAbsent$expand:iterable$.$$targs$$.Absent$Iterable});};iterable$.flatMap.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:'u',l:['Absent$Iterable','OtherAbsent$flatMap']},Element$Iterable:'Result$flatMap'}},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Iterable,a:{Absent$Iterable:'OtherAbsent$flatMap',Element$Iterable:'Result$flatMap'}},Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:{t:Iterable,a:{Absent$Iterable:'OtherAbsent$flatMap',Element$Iterable:'Result$flatMap'}},ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,tp:{Result$flatMap:{},OtherAbsent$flatMap:{sts:[{t:Null}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:flatMap'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),expand)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','flatMap']};};iterable$.$_filter=function($1u){var iterable$=this;return for$(function(){var $1v=iterable$.iterator(),$1w=finished();var n$1w=function(){while(($1w=$1v.next())!==finished()){if($1u($1w)){return $1w;}
}
return finished();}
return function(){if(n$1w()!==finished()){var $1x=$1w,$1y=$1x;return $1y;}
return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:iterable$.$$targs$$.Element$Iterable});};iterable$.$_filter.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:filter'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.select)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','filter']};};iterable$.narrow=function($jcmhx7$){var iterable$=this;return for$(function(){var $21;var $1z=iterable$.iterator(),$20=finished();var n$20=function(){while(($20=$1z.next())!==finished()){if(is$(($21=$20),$jcmhx7$.Type$narrow,$jcmhx7$)){return $20;}
}
return finished();}
return function(){if(n$20()!==finished()){var $22=$20,$23=$21;return $23;}
return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:mit$([iterable$.$$targs$$.Element$Iterable,$jcmhx7$.Type$narrow])});};iterable$.narrow.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:'i',l:['Element$Iterable','Type$narrow']}}},ps:[],$cont:Iterable,tp:{Type$narrow:{}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:narrow')];},d:['$','Iterable','$m','narrow']};};iterable$.fold=function($24,$h66nf9$){var iterable$=this;var $25=function($26){var $27=$24;var $29;for(var $28=iterable$.iterator();($29=$28.next())!==finished();){$27=$26($27,$29);}return $27;};$25.$crtmm$=function(){return{ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:$h66nf9$.Result$fold,Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([iterable$.$$targs$$.Element$Iterable]),Element$Tuple:mut$([$h66nf9$.Result$fold,iterable$.$$targs$$.Element$Iterable]),First$Tuple:$h66nf9$.Result$fold/*ORALE!Result inv pero First var*/}}}},$rt:$h66nf9$.Result$fold,ps:[{nm:'partial',mt:'prm',$t:$h66nf9$.Result$fold},{nm:'element',mt:'prm',$t:iterable$.Element$Iterable}]}],$t:$h66nf9$.Result$fold};};return JsCallable(0,$25);};iterable$.fold.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:'Result$fold',Arguments$Callable:{t:'T',l:[{t:Callable,a:{Return$Callable:'Result$fold',Arguments$Callable:{t:'T',l:['Result$fold','Element$Iterable']}}}]}}},ps:[{nm:'initial',mt:'prm',$t:'Result$fold'}],$cont:Iterable,tp:{Result$fold:{}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:fold'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_reduce),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.scan)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','fold']};};iterable$.$_reduce=function($2a,$hehpv4$){var iterable$=this;var $2b=iterable$.iterator();var $2c;if(!is$(($2c=$2b.next()),{t:Finished})){var $2d=$2c;var $2e;while(!is$(($2e=$2b.next()),{t:Finished})){$2d=$2a($2d,$2e);}
return $2d;}
else{var $2f;asrt$((is$(($2f=null),iterable$.$$targs$$.Absent$Iterable)),"iterable must be empty: \'is Absent null\' at Iterable.ceylon (521:19-521:34)",'520:12-521:35','Iterable.ceylon');
return null;}
};iterable$.$_reduce.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Result$reduce','Element$Iterable','Absent$Iterable']},ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$reduce',Arguments$Callable:{t:'T',l:[{t:'u',l:['Result$reduce','Element$Iterable']},'Element$Iterable']}}},$rt:'Result$reduce',ps:[{nm:'partial',mt:'prm',$t:{t:'u',l:['Result$reduce','Element$Iterable']}},{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,tp:{Result$reduce:{}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:reduce'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.fold)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','reduce']};};iterable$.scan=function($2g,$h5ylqx$){var iterable$=this;iterable$.$2g_=$2g;var $2h=function($2i){{return function(){function $2j($$targs$$){var $2j$=new $2j.$$;$2j$.outer$=iterable$;$2j$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:{t:Nothing},Element$Iterable:$h5ylqx$.Result$scan/*ORALE!Result inv pero Element var*/},$2j$);return $2j$;};$2j.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$2j$.scan,sts:[{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Result$scan'}}],d:['$','Iterable','$m','scan']};};function $init$$2j(){if($2j.$$===undefined){initTypeProto($2j,'ceylon.language::Iterable.anonymous#4',Basic,$init$Iterable());
(function($2j$){atr$($2j$,'empty',function(){var $2j$=this;return false;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$2j$.scan,pa:3,d:['$','Iterable','$m','scan','$at','empty']};});atr$($2j$,'first',function(){var $2j$=this;return $2g;},undefined,function(){return{mod:$CCMM$,$t:'Result$scan',$cont:$2j$.scan,pa:3,d:['$','Iterable','$m','scan','$at','first']};});atr$($2j$,'size',function(){var $2j$=this;return (1).plus(iterable$.size);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$2j$.scan,pa:3,d:['$','Iterable','$m','scan','$at','size']};});$2j$.iterator=function(){var $2j$=this;return function(){var $2k=iterable$.iterator();return function(){function $2l($$targs$$){var $2l$=new $2l.$$;$2l$.outer$=$2j$;$2l$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$h5ylqx$.Result$scan/*ORALE!Result inv pero Element var*/},$2l$);$2l$.$2m_=true;$2l$.$prop$get$2m={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$2j$.scan,pa:1024,d:['$','Iterable','$m','scan','$at','returnInitial$l5dio2']};}};$2l$.$prop$get$2m.get=function(){return $2m};$2l$.$2n_=$2g;$2l$.$prop$get$2n={$crtmm$:function(){return{mod:$CCMM$,$t:'Result$scan',$cont:$2j$.scan,pa:1024,d:['$','Iterable','$m','scan','$at','partial$s33589']};}};$2l$.$prop$get$2n.get=function(){return $2n};return $2l$;};$2l.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$2j$.scan,sts:[{t:Iterator,a:{Element$Iterator:'Result$scan'}}],d:['$','Iterable','$m','scan']};};function $init$$2l(){if($2l.$$===undefined){initTypeProto($2l,'ceylon.language::Iterable.anonymous#4.anonymous#5',Basic,$init$Iterator());
(function($2l$){atr$($2l$,'$2m',function(){return this.$2m_;},function($2o){return this.$2m_=$2o;},function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$2j$.scan,pa:1024,d:['$','Iterable','$m','scan','$at','returnInitial$l5dio2']};});atr$($2l$,'$2n',function(){return this.$2n_;},function($2p){return this.$2n_=$2p;},function(){return{mod:$CCMM$,$t:'Result$scan',$cont:$2j$.scan,pa:1024,d:['$','Iterable','$m','scan','$at','partial$s33589']};});$2l$.next=function(){var $2l$=this;if($2l$.$2m){$2l$.$2m=false;return $2g;}
else{var $2q;if(!is$(($2q=$2k.next()),{t:Finished})){$2l$.$2n=$2i($2l$.$2n,$2q);return $2l$.$2n;}
else{return finished();}
}
};$2l$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Result$scan',{t:Finished}]},ps:[],$cont:$2j$.scan,pa:3,d:['$','Iterable','$m','scan','$m','next']};};atr$($2l$,'string',function(){var $2l$=this;return $2j$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$2j$.scan,pa:3,d:['$','Iterable','$m','scan','$at','string']};});})($2l.$$.prototype);}
return $2l;}
$2j$.$init$$2l=$init$$2l;$init$$2l();return $2l();}();}();};})($2j.$$.prototype);}
return $2j;}
iterable$.$init$$2j=$init$$2j;$init$$2j();return $2j();}();}};$2h.$crtmm$=function(){return{ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:$h5ylqx$.Result$scan,Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([iterable$.$$targs$$.Element$Iterable]),Element$Tuple:mut$([$h5ylqx$.Result$scan,iterable$.$$targs$$.Element$Iterable]),First$Tuple:$h5ylqx$.Result$scan/*ORALE!Result inv pero First var*/}}}},$rt:$h5ylqx$.Result$scan,ps:[{nm:'partial',mt:'prm',$t:$h5ylqx$.Result$scan},{nm:'element',mt:'prm',$t:iterable$.Element$Iterable}],an:function(){return[doc$($CCMM$,'$:Iterable:$m:scan:$m:accumulating$ll7ghb')];}}],$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:$h5ylqx$.Result$scan/*ORALE!Result inv pero Element var*/}}};};return JsCallable(0,$2h);};iterable$.scan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:Iterable,a:{Element$Iterable:'Result$scan',Absent$Iterable:{t:Nothing}}},Arguments$Callable:{t:'T',l:[{t:Callable,a:{Return$Callable:'Result$scan',Arguments$Callable:{t:'T',l:['Result$scan','Element$Iterable']}}}]}}},ps:[{nm:'initial',mt:'prm',$t:'Result$scan'}],$cont:Iterable,tp:{Result$scan:{}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:scan'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.fold)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','scan']};};iterable$.find=function($2t){var iterable$=this;var $2v;for(var $2u=iterable$.iterator();($2v=$2u.next())!==finished();){var $2w;if(nn$(($2w=$2v))&&$2t($2w)){return $2w;}
}return null;};iterable$.find.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Iterable']},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Iterable',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Iterable',{t:$_Object}]}}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:find'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.findLast),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.locate)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','find']};};iterable$.findLast=function($2x){var iterable$=this;var $2y=null;var $30;for(var $2z=iterable$.iterator();($30=$2z.next())!==finished();){var $31;if(nn$(($31=$30))&&$2x($31)){$2y=$31;}
}return $2y;};iterable$.findLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Iterable']},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Iterable',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Iterable',{t:$_Object}]}}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:findLast'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.find),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.locateLast)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','findLast']};};iterable$.locate=function($32){var iterable$=this;var $33=(0);var $35;for(var $34=iterable$.iterator();($35=$34.next())!==finished();){var $36;if(nn$(($36=$35))&&$32($36)){return Entry($33,$36,{Key$Entry:{t:Integer},Item$Entry:mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])});}
($37=$33,$33=$37.successor,$37);var $37;}return null;};iterable$.locate.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:'i',l:['Element$Iterable',{t:$_Object}]}}}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Iterable',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Iterable',{t:$_Object}]}}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:locate'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.locateLast),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.locations),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.find),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.firstIndexWhere)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','locate']};};iterable$.locateLast=function($38){var iterable$=this;var $39=null;var $3a=(0);var $3c;for(var $3b=iterable$.iterator();($3c=$3b.next())!==finished();){var $3d;if(nn$(($3d=$3c))&&$38($3d)){$39=Entry($3a,$3d,{Key$Entry:{t:Integer},Item$Entry:mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])});}
($3e=$3a,$3a=$3e.successor,$3e);var $3e;}return $39;};iterable$.locateLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:'i',l:['Element$Iterable',{t:$_Object}]}}}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Iterable',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Iterable',{t:$_Object}]}}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:locateLast'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.locate),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.locations),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.findLast),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.lastIndexWhere)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','locateLast']};};iterable$.locations=function($3f){var iterable$=this;return function(){function $3g($$targs$$){var $3g$=new $3g.$$;$3g$.outer$=iterable$;$3g$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])}}},$3g$);return $3g$;};$3g.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$3g$.locations,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:'i',l:['Element$Iterable',{t:$_Object}]}}}}}],d:['$','Iterable','$m','locations']};};function $init$$3g(){if($3g.$$===undefined){initTypeProto($3g,'ceylon.language::Iterable.anonymous#6',Basic,$init$Iterable());
(function($3g$){$3g$.iterator=function(){var $3g$=this;return function(){var $3h=iterable$.iterator();return function(){function $3i($$targs$$){var $3i$=new $3i.$$;$3i$.outer$=$3g$;$3i$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])}}},$3i$);$3i$.$3j_=(0);$3i$.$prop$get$3j={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$3g$.locations,pa:1024,d:['$','Iterable','$m','locations','$at','i$hjr19g']};}};$3i$.$prop$get$3j.get=function(){return $3j};return $3i$;};$3i.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$3g$.locations,sts:[{t:Iterator,a:{Element$Iterator:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:'i',l:['Element$Iterable',{t:$_Object}]}}}}}],d:['$','Iterable','$m','locations']};};function $init$$3i(){if($3i.$$===undefined){initTypeProto($3i,'ceylon.language::Iterable.anonymous#6.anonymous#7',Basic,$init$Iterator());
(function($3i$){atr$($3i$,'$3j',function(){return this.$3j_;},function($3k){return this.$3j_=$3k;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$3g$.locations,pa:1024,d:['$','Iterable','$m','locations','$at','i$hjr19g']};});$3i$.next=function(){var $3i$=this;var $3l;while(!is$(($3l=$3h.next()),{t:Finished})){var $3m;if(nn$(($3m=$3l))&&$3f($3m)){return Entry(($3n=$3i$.$3j,$3i$.$3j=$3n.successor,$3n),$3m,{Key$Entry:{t:Integer},Item$Entry:mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])});var $3n;}
else{($3o=$3i$.$3j,$3i$.$3j=$3o.successor,$3o);var $3o;}
}
return finished();};$3i$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:'i',l:['Element$Iterable',{t:$_Object}]}}},{t:Finished}]},ps:[],$cont:$3g$.locations,pa:3,d:['$','Iterable','$m','locations','$m','next']};};atr$($3i$,'string',function(){var $3i$=this;return $3g$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$3g$.locations,pa:3,d:['$','Iterable','$m','locations','$at','string']};});})($3i.$$.prototype);}
return $3i;}
$3g$.$init$$3i=$init$$3i;$init$$3i();return $3i();}();}();};})($3g.$$.prototype);}
return $3g;}
iterable$.$init$$3g=$init$$3g;$init$$3g();return $3g();}();};iterable$.locations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:'i',l:['Element$Iterable',{t:$_Object}]}}}}},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Iterable',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Iterable',{t:$_Object}]}}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:locations'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.locate),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.locateLast),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.indexesWhere)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','locations']};};iterable$.max=function($3r){var iterable$=this;var $3s=iterable$.iterator();var $3t;if(!is$(($3t=$3s.next()),{t:Finished})){var $3u=$3t;var $3v;while(!is$(($3v=$3s.next()),{t:Finished})){if($3r($3v,$3u).equals(larger())){$3u=$3v;}
}
return $3u;}
else{var $3w;asrt$((is$(($3w=null),iterable$.$$targs$$.Absent$Iterable)),"iterable must be empty: \'is Absent null\' at Iterable.ceylon (771:19-771:34)",'770:12-771:35','Iterable.ceylon');
return null;}
};iterable$.max.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable','Absent$Iterable']},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Element$Iterable','Element$Iterable']}}},$rt:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:'Element$Iterable'},{nm:'y',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:max'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),max),$init$OpenFunction$jsint()(lmp$(ex$,'$'),min)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','max']};};iterable$.spread=function($3x,$gr5r1f$){var iterable$=this;return flatten($JsCallable((function($3y){return for$(function(){var $3z=iterable$.iterator(),$40=finished();var n$40=function(){return $40=$3z.next();}
return function(){if(n$40()!==finished()){var $41=$40,$42=$3x($41)($3y.sequence());return $42;}
return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:$gr5r1f$.Result$spread/*ORALE!Result inv pero Element var*/});}),[{nm:'args',mt:'prm',$t:$gr5r1f$.Args$spread}],{Return$Callable:{t:Iterable,a:{Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:$gr5r1f$.Result$spread/*ORALE!Result inv pero Element var*/}},Arguments$Callable:mtt$([$gr5r1f$.Args$spread])}),{Args$flatten:$gr5r1f$.Args$spread,Return$flatten:{t:Iterable,a:{Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:$gr5r1f$.Result$spread/*ORALE!Result inv pero Element var*/}}});};iterable$.spread.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:'Result$spread'}},Arguments$Callable:'Args$spread'}},ps:[{nm:'method',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Callable,a:{Return$Callable:'Result$spread',Arguments$Callable:'Args$spread'}},Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:{t:Callable,a:{Return$Callable:'Result$spread',Arguments$Callable:'Args$spread'}},ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,tp:{Result$spread:{},Args$spread:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:spread')];},d:['$','Iterable','$m','spread']};};iterable$.$_sort=function($43){var iterable$=this;var $44=$_Array(iterable$,{Element$Array:iterable$.$$targs$$.Element$Iterable});if($44.empty){return empty();}
else{$44.sortInPlace(JsCallable(iterable$,$43));return ArraySequence($44,{Element$ArraySequence:iterable$.$$targs$$.Element$Iterable});}
};iterable$.$_sort.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Iterable'}},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Element$Iterable','Element$Iterable']}}},$rt:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:'Element$Iterable'},{nm:'y',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:sort'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),increasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),decreasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),byIncreasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),byDecreasing)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','sort']};};iterable$.collect=function($45,$qjpxxc$){var iterable$=this;return iterable$.$_map(JsCallable(iterable$,$45),{Result$map:$qjpxxc$.Result$collect}).sequence();};iterable$.collect.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Result$collect'}},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$collect',Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:'Result$collect',ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,tp:{Result$collect:{}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:collect'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_map)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','collect']};};iterable$.select=function($46){var iterable$=this;return iterable$.$_filter(JsCallable(iterable$,$46)).sequence();};iterable$.select.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Iterable'}},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:select'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_filter)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','select']};};iterable$.count=function($47){var iterable$=this;var $48=(0);var $4a;for(var $49=iterable$.iterator();($4a=$49.next())!==finished();){if($47($4a)){($4b=$48,$48=$4b.successor,$4b);var $4b;}
}return $48;};iterable$.count.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:count')];},d:['$','Iterable','$m','count']};};iterable$.any=function($4c){var iterable$=this;var $4e;for(var $4d=iterable$.iterator();($4e=$4d.next())!==finished();){if($4c($4e)){return true;}
}return false;};iterable$.any.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:any'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_every)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','any']};};iterable$.$_every=function($4f){var iterable$=this;var $4h;for(var $4g=iterable$.iterator();($4h=$4g.next())!==finished();){if(!$4f($4h)){return false;}
}return true;};iterable$.$_every.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:every'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.any)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','every']};};iterable$.skip=function($4i){var iterable$=this;if(($4i<=0)){return iterable$;}
else{return function(){function $4j($$targs$$){var $4j$=new $4j.$$;$4j$.outer$=iterable$;$4j$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:{t:Null},Element$Iterable:iterable$.$$targs$$.Element$Iterable},$4j$);return $4j$;};$4j.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$4j$.skip,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$m','skip']};};function $init$$4j(){if($4j.$$===undefined){initTypeProto($4j,'ceylon.language::Iterable.anonymous#9',Basic,$init$Iterable());
(function($4j$){$4j$.iterator=function(){var $4j$=this;var $4k=iterable$.iterator();var $4l=(0);while(((($4m=$4l,$4l=$4m.successor,$4m)<$4i)&&!is$($4k.next(),{t:Finished}))){}
var $4m;return $4k;};$4j$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Iterable'}},ps:[],$cont:$4j$.skip,pa:3,d:['$','Iterable','$m','skip','$m','iterator']};};atr$($4j$,'string',function(){var $4j$=this;return iterable$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$4j$.skip,pa:3,d:['$','Iterable','$m','skip','$at','string']};});})($4j.$$.prototype);}
return $4j;}
iterable$.$init$$4j=$init$$4j;$init$$4j();return $4j();}();}
};iterable$.skip.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}},ps:[{nm:'skipping',mt:'prm',$t:{t:Integer}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:skip'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.sublistFrom),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.skipWhile),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.take)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','skip']};};iterable$.take=function($4o){var iterable$=this;if(($4o<=0)){return empty();}
else{return function(){function $4p($$targs$$){var $4p$=new $4p.$$;$4p$.outer$=iterable$;$4p$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:{t:Null},Element$Iterable:iterable$.$$targs$$.Element$Iterable},$4p$);return $4p$;};$4p.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$4p$.take,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$m','take']};};function $init$$4p(){if($4p.$$===undefined){initTypeProto($4p,'ceylon.language::Iterable.anonymous#10',Basic,$init$Iterable());
(function($4p$){$4p$.iterator=function(){var $4p$=this;var $4q=iterable$.iterator();return function(){function $4r($$targs$$){var $4r$=new $4r.$$;$4r$.outer$=$4p$;$4r$.$$targs$$=$$targs$$;Iterator({Element$Iterator:iterable$.$$targs$$.Element$Iterable},$4r$);$4r$.$4s_=(0);$4r$.$prop$get$4s={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$4p$.iterator,pa:1024,d:['$','Iterable','$m','take','$m','iterator','$at','i$28cecw']};}};$4r$.$prop$get$4s.get=function(){return $4s};return $4r$;};$4r.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$4p$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Iterable'}}],d:['$','Iterable','$m','take','$m','iterator']};};function $init$$4r(){if($4r.$$===undefined){initTypeProto($4r,'ceylon.language::Iterable.anonymous#10.anonymous#11',Basic,$init$Iterator());
(function($4r$){atr$($4r$,'$4s',function(){return this.$4s_;},function($4t){return this.$4s_=$4t;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$4p$.iterator,pa:1024,d:['$','Iterable','$m','take','$m','iterator','$at','i$28cecw']};});$4r$.next=function(){var $4r$=this;return ($4u=((($4r$.$4s=$4r$.$4s.successor)>$4o)?finished():null),nn$($4u)?$4u:$4q.next());};atr$($4r$,'string',function(){var $4r$=this;return $4p$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$4p$.iterator,pa:3,d:['$','Iterable','$m','take','$m','iterator','$at','string']};});})($4r.$$.prototype);}
return $4r;}
$4p$.$init$$4r=$init$$4r;$init$$4r();return $4r();}();var $4u;};$4p$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Iterable'}},ps:[],$cont:$4p$.take,pa:3,d:['$','Iterable','$m','take','$m','iterator']};};atr$($4p$,'first',function(){var $4p$=this;return iterable$.first;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Iterable']},$cont:$4p$.take,pa:3,d:['$','Iterable','$m','take','$at','first']};});})($4p.$$.prototype);}
return $4p;}
iterable$.$init$$4p=$init$$4p;$init$$4p();return $4p();}();}
};iterable$.take.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}},ps:[{nm:'taking',mt:'prm',$t:{t:Integer}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:take'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.sublistTo),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.initial),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.takeWhile),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.skip)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','take']};};iterable$.skipWhile=function($4x){var iterable$=this;return function(){function $4y($$targs$$){var $4y$=new $4y.$$;$4y$.outer$=iterable$;$4y$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:{t:Null},Element$Iterable:iterable$.$$targs$$.Element$Iterable},$4y$);return $4y$;};$4y.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$4y$.skipWhile,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$m','skipWhile']};};function $init$$4y(){if($4y.$$===undefined){initTypeProto($4y,'ceylon.language::Iterable.anonymous#12',Basic,$init$Iterable());
(function($4y$){$4y$.iterator=function(){var $4y$=this;var $4z=iterable$.iterator();var $50;while(!is$(($50=$4z.next()),{t:Finished})){var $51=(function(){var $52=$50;if(!$4x($52)){return function(){function $53($$targs$$){var $53$=new $53.$$;$53$.outer$=$4y$;$53$.$$targs$$=$$targs$$;Iterator({Element$Iterator:iterable$.$$targs$$.Element$Iterable},$53$);$53$.$54_=true;$53$.$prop$get$54={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$4y$.iterator,pa:1024,d:['$','Iterable','$m','skipWhile','$m','iterator','$at','first$1npvlj']};}};$53$.$prop$get$54.get=function(){return $54};return $53$;};$53.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$4y$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Iterable'}}],d:['$','Iterable','$m','skipWhile','$m','iterator']};};function $init$$53(){if($53.$$===undefined){initTypeProto($53,'ceylon.language::Iterable.anonymous#12.anonymous#13',Basic,$init$Iterator());
(function($53$){atr$($53$,'$54',function(){return this.$54_;},function($55){return this.$54_=$55;},function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$4y$.iterator,pa:1024,d:['$','Iterable','$m','skipWhile','$m','iterator','$at','first$1npvlj']};});$53$.next=function(){var $53$=this;if($53$.$54){$53$.$54=false;return $52;}
else{return $4z.next();}
};$53$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},ps:[],$cont:$4y$.iterator,pa:3,d:['$','Iterable','$m','skipWhile','$m','iterator','$m','next']};};atr$($53$,'string',function(){var $53$=this;return $4y$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$4y$.iterator,pa:3,d:['$','Iterable','$m','skipWhile','$m','iterator','$at','string']};});})($53.$$.prototype);}
return $53;}
$4y$.$init$$53=$init$$53;$init$$53();return $53();}();}
}());if($51!==undefined){return $51;}}
return emptyIterator();};$4y$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Iterable'}},ps:[],$cont:$4y$.skipWhile,pa:3,d:['$','Iterable','$m','skipWhile','$m','iterator']};};})($4y.$$.prototype);}
return $4y;}
iterable$.$init$$4y=$init$$4y;$init$$4y();return $4y();}();};iterable$.skipWhile.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}},ps:[{nm:'skipping',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:skipWhile'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.skip),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.takeWhile)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','skipWhile']};};iterable$.takeWhile=function($58){var iterable$=this;return function(){function $59($$targs$$){var $59$=new $59.$$;$59$.outer$=iterable$;$59$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:{t:Null},Element$Iterable:iterable$.$$targs$$.Element$Iterable},$59$);return $59$;};$59.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$59$.takeWhile,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$m','takeWhile']};};function $init$$59(){if($59.$$===undefined){initTypeProto($59,'ceylon.language::Iterable.anonymous#14',Basic,$init$Iterable());
(function($59$){$59$.iterator=function(){var $59$=this;return function(){var $5a=iterable$.iterator();return function(){function $5b($$targs$$){var $5b$=new $5b.$$;$5b$.outer$=$59$;$5b$.$$targs$$=$$targs$$;Iterator({Element$Iterator:iterable$.$$targs$$.Element$Iterable},$5b$);$5b$.$5c_=true;$5b$.$prop$get$5c={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$59$.takeWhile,pa:1024,d:['$','Iterable','$m','takeWhile','$at','alive$876lxa']};}};$5b$.$prop$get$5c.get=function(){return $5c};return $5b$;};$5b.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$59$.takeWhile,sts:[{t:Iterator,a:{Element$Iterator:'Element$Iterable'}}],d:['$','Iterable','$m','takeWhile']};};function $init$$5b(){if($5b.$$===undefined){initTypeProto($5b,'ceylon.language::Iterable.anonymous#14.anonymous#15',Basic,$init$Iterator());
(function($5b$){atr$($5b$,'$5c',function(){return this.$5c_;},function($5d){return this.$5c_=$5d;},function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$59$.takeWhile,pa:1024,d:['$','Iterable','$m','takeWhile','$at','alive$876lxa']};});$5b$.next=function(){var $5b$=this;var $5e;if($5b$.$5c&&!is$(($5e=$5a.next()),{t:Finished})){if($58($5e)){return $5e;}
else{$5b$.$5c=false;}
}
return finished();};$5b$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},ps:[],$cont:$59$.takeWhile,pa:3,d:['$','Iterable','$m','takeWhile','$m','next']};};atr$($5b$,'string',function(){var $5b$=this;return $59$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$59$.takeWhile,pa:3,d:['$','Iterable','$m','takeWhile','$at','string']};});})($5b.$$.prototype);}
return $5b;}
$59$.$init$$5b=$init$$5b;$init$$5b();return $5b();}();}();};})($59.$$.prototype);}
return $59;}
iterable$.$init$$59=$init$$59;$init$$59();return $59();}();};iterable$.takeWhile.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}},ps:[{nm:'taking',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:takeWhile'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.take),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.skipWhile)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','takeWhile']};};iterable$.repeat=function($5h){var iterable$=this;return function(){function $5i($$targs$$){var $5i$=new $5i.$$;$5i$.outer$=iterable$;$5i$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:{t:Null},Element$Iterable:iterable$.$$targs$$.Element$Iterable},$5i$);return $5i$;};$5i.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$5i$.repeat,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$m','repeat']};};function $init$$5i(){if($5i.$$===undefined){initTypeProto($5i,'ceylon.language::Iterable.anonymous#16',Basic,$init$Iterable());
(function($5i$){atr$($5i$,'size',function(){var $5i$=this;return $5h.times(iterable$.size);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$5i$.repeat,pa:3,d:['$','Iterable','$m','repeat','$at','size']};});atr$($5i$,'string',function(){var $5i$=this;return "(".plus(iterable$.string).plus(").repeat(").plus($5h.string).plus(")");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$5i$.repeat,pa:3,d:['$','Iterable','$m','repeat','$at','string']};});$5i$.iterator=function(){var $5i$=this;return CycledIterator(iterable$,$5h,{Element$CycledIterator:iterable$.$$targs$$.Element$Iterable});};})($5i.$$.prototype);}
return $5i;}
iterable$.$init$$5i=$init$$5i;$init$$5i();return $5i();}();};iterable$.repeat.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Iterable'}},ps:[{nm:'times',mt:'prm',$t:{t:Integer}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:repeat'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$prop$getCycled)].$sa$({t:ValueDeclaration$meta$declaration}))];},d:['$','Iterable','$m','repeat']};};iterable$.by=function($5k){var iterable$=this;asrt$((($5k>0)),"step size must be greater than zero: \'step > 0\' at Iterable.ceylon (1102:15-1102:24)",'1101:8-1102:25','Iterable.ceylon');
if((($5k).valueOf()==(1).valueOf())){return iterable$;}
else{return function(){function $5l($$targs$$){var $5l$=new $5l.$$;$5l$.outer$=iterable$;$5l$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:iterable$.$$targs$$.Element$Iterable},$5l$);return $5l$;};$5l.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$5l$.by,sts:[{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$m','by']};};function $init$$5l(){if($5l.$$===undefined){initTypeProto($5l,'ceylon.language::Iterable.anonymous#17',Basic,$init$Iterable());
(function($5l$){atr$($5l$,'string',function(){var $5l$=this;return "(".plus(iterable$.string).plus(").by(").plus($5k.string).plus(")");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$5l$.by,pa:3,d:['$','Iterable','$m','by','$at','string']};});$5l$.iterator=function(){var $5l$=this;return function(){var $5m=iterable$.iterator();return function(){function $5n($$targs$$){var $5n$=new $5n.$$;$5n$.outer$=$5l$;$5n$.$$targs$$=$$targs$$;Iterator({Element$Iterator:iterable$.$$targs$$.Element$Iterable},$5n$);return $5n$;};$5n.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$5l$.by,sts:[{t:Iterator,a:{Element$Iterator:'Element$Iterable'}}],d:['$','Iterable','$m','by']};};function $init$$5n(){if($5n.$$===undefined){initTypeProto($5n,'ceylon.language::Iterable.anonymous#17.anonymous#18',Basic,$init$Iterator());
(function($5n$){$5n$.next=function(){var $5n$=this;var $5o=$5m.next();var $5p=(0);while(((($5p=$5p.successor)<$5k)&&!is$($5m.next(),{t:Finished}))){}
return $5o;};$5n$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},ps:[],$cont:$5l$.by,pa:3,d:['$','Iterable','$m','by','$m','next']};};atr$($5n$,'string',function(){var $5n$=this;return $5l$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$5l$.by,pa:3,d:['$','Iterable','$m','by','$at','string']};});})($5n.$$.prototype);}
return $5n;}
$5l$.$init$$5n=$init$$5n;$init$$5n();return $5n();}();}();};})($5l.$$.prototype);}
return $5l;}
iterable$.$init$$5l=$init$$5l;$init$$5l();return $5l();}();}
};iterable$.by.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:'Element$Iterable'}},ps:[{nm:'step',mt:'prm',$t:{t:Integer}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:by'),$_throws($init$openClass$jsint()(lmp$(ex$,'$'),AssertionError),"if the given step size is nonpositive, \ni.e. `step<1`")];},d:['$','Iterable','$m','by']};};iterable$.defaultNullElements=function($5s,$984cph$){var iterable$=this;return iterable$.$_map($JsCallable((function($5t){return ($5u=$5t,nn$($5u)?$5u:$5s);}),[{nm:'elem',mt:'prm',$t:iterable$.Element$Iterable}],{Return$Callable:mut$([$984cph$.Default$defaultNullElements,mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])]),Arguments$Callable:mtt$([iterable$.$$targs$$.Element$Iterable])}),{Result$map:mut$([$984cph$.Default$defaultNullElements,mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])])});};iterable$.defaultNullElements.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:{t:'u',l:[{t:'i',l:['Element$Iterable',{t:$_Object}]},'Default$defaultNullElements']}}},ps:[{nm:'defaultValue',mt:'prm',$t:'Default$defaultNullElements'}],$cont:Iterable,tp:{Default$defaultNullElements:{sts:[{t:$_Object}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:defaultNullElements'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$prop$getCoalesced)].$sa$({t:ValueDeclaration$meta$declaration}))];},d:['$','Iterable','$m','defaultNullElements']};};atr$(iterable$,'coalesced',function(){var iterable$=this;return for$(function(){var $5x;var $5v=iterable$.iterator(),$5w=finished();var n$5w=function(){while(($5w=$5v.next())!==finished()){if(nn$(($5x=$5w))){return $5w;}
}
return finished();}
return function(){if(n$5w()!==finished()){var $5y=$5w,$5z=$5x;return $5z;}
return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])})},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:'i',l:['Element$Iterable',{t:$_Object}]}}},$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$at:coalesced'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.defaultNullElements)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$at','coalesced']};});atr$(iterable$,'indexed',function(){var iterable$=this;return function(){function $60($$targs$$){var $60$=new $60.$$;$60$.outer$=iterable$;$60$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:iterable$.$$targs$$.Element$Iterable}}},$60$);return $60$;};$60.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$60$.$prop$getIndexed,sts:[{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:'Element$Iterable'}}}}],d:['$','Iterable','$at','indexed']};};function $init$$60(){if($60.$$===undefined){initTypeProto($60,'ceylon.language::Iterable.anonymous#20',Basic,$init$Iterable());
(function($60$){$60$.iterator=function(){var $60$=this;return function(){var $61=iterable$.iterator();return function(){function $62($$targs$$){var $62$=new $62.$$;$62$.outer$=$60$;$62$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:iterable$.$$targs$$.Element$Iterable}}},$62$);$62$.$63_=(0);$62$.$prop$get$63={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$60$.$prop$getIndexed,pa:1024,d:['$','Iterable','$at','indexed','$at','i$wpz7ch']};}};$62$.$prop$get$63.get=function(){return $63};return $62$;};$62.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$60$.$prop$getIndexed,sts:[{t:Iterator,a:{Element$Iterator:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:'Element$Iterable'}}}}],d:['$','Iterable','$at','indexed']};};function $init$$62(){if($62.$$===undefined){initTypeProto($62,'ceylon.language::Iterable.anonymous#20.anonymous#21',Basic,$init$Iterator());
(function($62$){atr$($62$,'$63',function(){return this.$63_;},function($64){return this.$63_=$64;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$60$.$prop$getIndexed,pa:1024,d:['$','Iterable','$at','indexed','$at','i$wpz7ch']};});$62$.next=function(){var $62$=this;return function($65){if($65===finished())return finished();else return Entry(($66=$62$.$63,$62$.$63=$66.successor,$66),$65,{Key$Entry:{t:Integer},Item$Entry:iterable$.$$targs$$.Element$Iterable})}($61.next());};atr$($62$,'string',function(){var $62$=this;return $60$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$60$.$prop$getIndexed,pa:3,d:['$','Iterable','$at','indexed','$at','string']};});})($62.$$.prototype);}
return $62;}
$60$.$init$$62=$init$$62;$init$$62();return $62();}();}();};})($60.$$.prototype);}
return $60;}
iterable$.$init$$60=$init$$60;$init$$60();return $60();}()},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:'Element$Iterable'}}}},$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$at:indexed'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.locations)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$at','indexed']};});atr$(iterable$,'paired',function(){var iterable$=this;return function(){function $69($$targs$$){var $69$=new $69.$$;$69$.outer$=iterable$;$69$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:{t:Null},Element$Iterable:mtt$([iterable$.$$targs$$.Element$Iterable,iterable$.$$targs$$.Element$Iterable])},$69$);return $69$;};$69.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$69$.$prop$getPaired,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:'T',l:['Element$Iterable','Element$Iterable']}}}],d:['$','Iterable','$at','paired']};};function $init$$69(){if($69.$$===undefined){initTypeProto($69,'ceylon.language::Iterable.anonymous#22',Basic,$init$Iterable());
(function($69$){atr$($69$,'size',function(){var $69$=this;return function(){var $6a=iterable$.size.minus(1);return (($6a<0)?(0):$6a);}();},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$69$.$prop$getPaired,pa:3,d:['$','Iterable','$at','paired','$at','size']};});atr$($69$,'empty',function(){var $69$=this;return (iterable$.size<2);},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$69$.$prop$getPaired,pa:3,d:['$','Iterable','$at','paired','$at','empty']};});$69$.iterator=function(){var $69$=this;return function(){var $6b=iterable$.iterator();return function(){function $6c($$targs$$){var $6c$=new $6c.$$;$6c$.outer$=$69$;$6c$.$$targs$$=$$targs$$;Iterator({Element$Iterator:mtt$([iterable$.$$targs$$.Element$Iterable,iterable$.$$targs$$.Element$Iterable])},$6c$);$6c$.$6d_=$6b.next();$6c$.$prop$get$6d={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},$cont:$69$.$prop$getPaired,pa:1024,d:['$','Iterable','$at','paired','$at','previous$bv77d3']};}};$6c$.$prop$get$6d.get=function(){return $6d};return $6c$;};$6c.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$69$.$prop$getPaired,sts:[{t:Iterator,a:{Element$Iterator:{t:'T',l:['Element$Iterable','Element$Iterable']}}}],d:['$','Iterable','$at','paired']};};function $init$$6c(){if($6c.$$===undefined){initTypeProto($6c,'ceylon.language::Iterable.anonymous#22.anonymous#23',Basic,$init$Iterator());
(function($6c$){atr$($6c$,'$6d',function(){return this.$6d_;},function($6e){return this.$6d_=$6e;},function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},$cont:$69$.$prop$getPaired,pa:1024,d:['$','Iterable','$at','paired','$at','previous$bv77d3']};});$6c$.next=function(){var $6c$=this;var $6f,$6g;if(!is$(($6f=$6c$.$6d),{t:Finished})&&!is$(($6g=$6b.next()),{t:Finished})){$6c$.$6d=$6g;return tpl$([$6f,$6g]);}
else{return finished();}
};$6c$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:'T',l:['Element$Iterable','Element$Iterable']},{t:Finished}]},ps:[],$cont:$69$.$prop$getPaired,pa:3,d:['$','Iterable','$at','paired','$m','next']};};})($6c.$$.prototype);}
return $6c;}
$69$.$init$$6c=$init$$6c;$init$$6c();return $6c();}();}();};})($69.$$.prototype);}
return $69;}
iterable$.$init$$69=$init$$69;$init$$69();return $69();}()},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:'T',l:['Element$Iterable','Element$Iterable']}}},$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$at:paired')];},d:['$','Iterable','$at','paired']};});iterable$.partition=function($6j){var iterable$=this;asrt$((($6j>0)),"length must be strictly positive: \'length>0\' at Iterable.ceylon (1254:15-1254:24)",'1253:8-1254:25','Iterable.ceylon');
return function(){function $6k($$targs$$){var $6k$=new $6k.$$;$6k$.outer$=iterable$;$6k$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:{t:Sequence,a:{Element$Sequence:iterable$.$$targs$$.Element$Iterable}}},$6k$);return $6k$;};$6k.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$6k$.partition,sts:[{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:{t:Sequence,a:{Element$Sequence:'Element$Iterable'}}}}],d:['$','Iterable','$m','partition']};};function $init$$6k(){if($6k.$$===undefined){initTypeProto($6k,'ceylon.language::Iterable.anonymous#24',Basic,$init$Iterable());
(function($6k$){atr$($6k$,'size',function(){var $6k$=this;return function(){var $6l=iterable$.size,$6m=$6l.divided($6j);return ($6j.divides($6l)?$6m:$6m.plus(1));}();},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$6k$.partition,pa:3,d:['$','Iterable','$m','partition','$at','size']};});atr$($6k$,'empty',function(){var $6k$=this;return iterable$.empty;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$6k$.partition,pa:3,d:['$','Iterable','$m','partition','$at','empty']};});$6k$.iterator=function(){var $6k$=this;return function(){var $6n=iterable$.iterator();return function(){function $6o($$targs$$){var $6o$=new $6o.$$;$6o$.outer$=$6k$;$6o$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:Sequence,a:{Element$Sequence:iterable$.$$targs$$.Element$Iterable}}},$6o$);return $6o$;};$6o.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$6k$.partition,sts:[{t:Iterator,a:{Element$Iterator:{t:Sequence,a:{Element$Sequence:'Element$Iterable'}}}}],d:['$','Iterable','$m','partition']};};function $init$$6o(){if($6o.$$===undefined){initTypeProto($6o,'ceylon.language::Iterable.anonymous#24.anonymous#25',Basic,$init$Iterator());
(function($6o$){$6o$.next=function(){var $6o$=this;var $6p;if(!is$(($6p=$6n.next()),{t:Finished})){var $6q=$_Array_ofSize($6j,$6p,{Element$Array:iterable$.$$targs$$.Element$Iterable});var $6r=(0);while((($6r=$6r.successor)<$6j)){var $6s;if(!is$(($6s=$6n.next()),{t:Finished})){$6q.set($6r,$6s);}
else{return ArraySequence($6q.spanTo($6r.minus(1)),{Element$ArraySequence:iterable$.$$targs$$.Element$Iterable});}
}
return ArraySequence($6q,{Element$ArraySequence:iterable$.$$targs$$.Element$Iterable});}
else{return finished();}
};$6o$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Sequence,a:{Element$Sequence:'Element$Iterable'}},{t:Finished}]},ps:[],$cont:$6k$.partition,pa:3,d:['$','Iterable','$m','partition','$m','next']};};})($6o.$$.prototype);}
return $6o;}
$6k$.$init$$6o=$init$$6o;$init$$6o();return $6o();}();}();};})($6k.$$.prototype);}
return $6k;}
iterable$.$init$$6k=$init$$6k;$init$$6k();return $6k();}();};iterable$.partition.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:{t:Sequence,a:{Element$Sequence:'Element$Iterable'}}}},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:partition'),$_throws($init$openClass$jsint()(lmp$(ex$,'$'),AssertionError),"if `length<=0`")];},d:['$','Iterable','$m','partition']};};iterable$.follow=function($6v,$mxeb51$){var iterable$=this;return sarg$(function($6w){switch($6w){case 0:return $6v;}return finished();},function(){return iterable$;},{Element$Iterable:mut$([$mxeb51$.Other$follow,iterable$.$$targs$$.Element$Iterable]),Absent$Iterable:{t:Nothing}});};iterable$.follow.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:{t:'u',l:['Element$Iterable','Other$follow']}}},ps:[{nm:'head',mt:'prm',$t:'Other$follow'}],$cont:Iterable,tp:{Other$follow:{}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:follow'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.chain)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','follow']};};iterable$.chain=function($6x,$z5puy1$){var iterable$=this;return function(){function $6y($$targs$$){var $6y$=new $6y.$$;$6y$.outer$=iterable$;$6y$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:mit$([iterable$.$$targs$$.Absent$Iterable,$z5puy1$.OtherAbsent$chain]),Element$Iterable:mut$([iterable$.$$targs$$.Element$Iterable,$z5puy1$.Other$chain])},$6y$);return $6y$;};$6y.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$6y$.chain,sts:[{t:Iterable,a:{Absent$Iterable:{t:'i',l:['Absent$Iterable','OtherAbsent$chain']},Element$Iterable:{t:'u',l:['Element$Iterable','Other$chain']}}}],d:['$','Iterable','$m','chain']};};function $init$$6y(){if($6y.$$===undefined){initTypeProto($6y,'ceylon.language::Iterable.anonymous#26',Basic,$init$Iterable());
(function($6y$){$6y$.iterator=function(){var $6y$=this;return ChainedIterator(iterable$,$6x,{Other$ChainedIterator:$z5puy1$.Other$chain/*ORALE!Other inv pero Other var*/,Element$ChainedIterator:iterable$.$$targs$$.Element$Iterable});};})($6y.$$.prototype);}
return $6y;}
iterable$.$init$$6y=$init$$6y;$init$$6y();return $6y();}();};iterable$.chain.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:'i',l:['Absent$Iterable','OtherAbsent$chain']},Element$Iterable:{t:'u',l:['Element$Iterable','Other$chain']}}},ps:[{nm:'other',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'OtherAbsent$chain',Element$Iterable:'Other$chain'}}}],$cont:Iterable,tp:{Other$chain:{},OtherAbsent$chain:{sts:[{t:Null}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:chain'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),expand)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','chain']};};iterable$.product=function($70,$5q6xtx$){var iterable$=this;return for$(function(){var $71=iterable$.iterator(),$72=finished();var n$72=function(){if(($72=$71.next())!==finished()){$73=$70.iterator();return $72;}
return finished();}
var $73=emptyIterator(),$74=finished();var n$74=function(){return $74=$73.next();}
return function(){do{if(n$74()!==finished()){var $75=$74,$76=tpl$([$72,$75]);return $76;}
}while(n$72()!==finished());return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:{t:Tuple,a:{Rest$Tuple:mtt$([$5q6xtx$.Other$product]),Element$Tuple:mut$([iterable$.$$targs$$.Element$Iterable,$5q6xtx$.Other$product]),First$Tuple:iterable$.$$targs$$.Element$Iterable}}});};iterable$.product.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:'u',l:['Absent$Iterable','OtherAbsent$product']},Element$Iterable:{t:'T',l:['Element$Iterable','Other$product']}}},ps:[{nm:'other',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'OtherAbsent$product',Element$Iterable:'Other$product'}}}],$cont:Iterable,tp:{Other$product:{},OtherAbsent$product:{sts:[{t:Null}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:product')];},d:['$','Iterable','$m','product']};};atr$(iterable$,'cycled',function(){var iterable$=this;return function(){function $77($$targs$$){var $77$=new $77.$$;$77$.outer$=iterable$;$77$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:iterable$.$$targs$$.Element$Iterable},$77$);$77$.$prop$get$78={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:'Element$Iterable'}},$cont:$77$.$prop$getCycled,d:['$','Iterable','$at','cycled','$at','orig$u6r96']};}};$77$.$prop$get$78.get=function(){return $78};return $77$;};$77.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$77$.$prop$getCycled,sts:[{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$at','cycled']};};function $init$$77(){if($77.$$===undefined){initTypeProto($77,'ceylon.language::Iterable.anonymous#27',Basic,$init$Iterable());
(function($77$){atr$($77$,'$78',function(){var $77$=this;return iterable$},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:'Element$Iterable'}},$cont:$77$.$prop$getCycled,d:['$','Iterable','$at','cycled','$at','orig$u6r96']};});atr$($77$,'string',function(){var $77$=this;return "(".plus(iterable$.string).plus(").cycled");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$77$.$prop$getCycled,pa:3,d:['$','Iterable','$at','cycled','$at','string']};});atr$($77$,'size',function(){var $77$=this;asrt$((false),"stream is infinite: \'false\' at Iterable.ceylon (1372:19-1372:25)",'1371:12-1372:26','Iterable.ceylon');
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$77$.$prop$getCycled,pa:3,d:['$','Iterable','$at','cycled','$at','size']};});$77$.iterator=function(){var $77$=this;return function(){function $79($$targs$$){var $79$=new $79.$$;$79$.outer$=$77$;$79$.$$targs$$=$$targs$$;Iterator({Element$Iterator:iterable$.$$targs$$.Element$Iterable},$79$);$79$.$7a_=emptyIterator();$79$.$prop$get$7a={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Iterable'}},$cont:$77$.$prop$getCycled,pa:1024,d:['$','Iterable','$at','cycled','$at','iter$ugmja']};}};$79$.$prop$get$7a.get=function(){return $7a};return $79$;};$79.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$77$.$prop$getCycled,sts:[{t:Iterator,a:{Element$Iterator:'Element$Iterable'}}],d:['$','Iterable','$at','cycled']};};function $init$$79(){if($79.$$===undefined){initTypeProto($79,'ceylon.language::Iterable.anonymous#27.anonymous#28',Basic,$init$Iterator());
(function($79$){atr$($79$,'$7a',function(){return this.$7a_;},function($7b){return this.$7a_=$7b;},function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Iterable'}},$cont:$77$.$prop$getCycled,pa:1024,d:['$','Iterable','$at','cycled','$at','iter$ugmja']};});$79$.next=function(){var $79$=this;var $7c;if(!is$(($7c=$79$.$7a.next()),{t:Finished})){return $7c;}
else{$79$.$7a=$77$.$78.iterator();return $79$.$7a.next();}
};$79$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},ps:[],$cont:$77$.$prop$getCycled,pa:3,d:['$','Iterable','$at','cycled','$m','next']};};atr$($79$,'string',function(){var $79$=this;return $77$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$77$.$prop$getCycled,pa:3,d:['$','Iterable','$at','cycled','$at','string']};});})($79.$$.prototype);}
return $79;}
$77$.$init$$79=$init$$79;$init$$79();return $79();}();};})($77.$$.prototype);}
return $77;}
iterable$.$init$$77=$init$$77;$init$$77();return $77();}()},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:'Element$Iterable'}},$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$at:cycled'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.repeat)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$at','cycled']};});iterable$.interpose$defs$step=function($7f,$7g,$ahv3gd$){return 1;};iterable$.interpose=function($7f,$7g,$ahv3gd$){var iterable$=this;if($7g===undefined){$7g=(1);}
asrt$((($7g>=1)),"step must be strictly positive: \'step>=1\' at Iterable.ceylon (1418:15-1418:23)",'1417:8-1418:24','Iterable.ceylon');
return function(){function $7h($$targs$$){var $7h$=new $7h.$$;$7h$.outer$=iterable$;$7h$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:mut$([iterable$.$$targs$$.Element$Iterable,$ahv3gd$.Other$interpose])},$7h$);return $7h$;};$7h.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$7h$.interpose,sts:[{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:{t:'u',l:['Element$Iterable','Other$interpose']}}}],d:['$','Iterable','$m','interpose']};};function $init$$7h(){if($7h.$$===undefined){initTypeProto($7h,'ceylon.language::Iterable.anonymous#29',Basic,$init$Iterable());
(function($7h$){atr$($7h$,'size',function(){var $7h$=this;var $7i=iterable$.size;return (($7i>0)?$7i.plus($7i.minus(1).divided($7g)):(0));},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$7h$.interpose,pa:3,d:['$','Iterable','$m','interpose','$at','size']};});atr$($7h$,'empty',function(){var $7h$=this;return iterable$.empty;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$7h$.interpose,pa:3,d:['$','Iterable','$m','interpose','$at','empty']};});atr$($7h$,'first',function(){var $7h$=this;return iterable$.first;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:['Absent$Iterable','Element$Iterable','Other$interpose']},$cont:$7h$.interpose,pa:3,d:['$','Iterable','$m','interpose','$at','first']};});atr$($7h$,'last',function(){var $7h$=this;return iterable$.last;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:['Absent$Iterable','Element$Iterable','Other$interpose']},$cont:$7h$.interpose,pa:3,d:['$','Iterable','$m','interpose','$at','last']};});$7h$.iterator=function(){var $7h$=this;return function(){var $7j=iterable$.iterator();return function(){function $7k($$targs$$){var $7k$=new $7k.$$;$7k$.outer$=$7h$;$7k$.$$targs$$=$$targs$$;Iterator({Element$Iterator:mut$([iterable$.$$targs$$.Element$Iterable,$ahv3gd$.Other$interpose])},$7k$);$7k$.$7l_=$7j.next();$7k$.$prop$get$7l={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},$cont:$7h$.interpose,pa:1024,d:['$','Iterable','$m','interpose','$at','current$9m13n7']};}};$7k$.$prop$get$7l.get=function(){return $7l};$7k$.$7m_=(0);$7k$.$prop$get$7m={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$7h$.interpose,pa:1024,d:['$','Iterable','$m','interpose','$at','count$7pnslp']};}};$7k$.$prop$get$7m.get=function(){return $7m};return $7k$;};$7k.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$7h$.interpose,sts:[{t:Iterator,a:{Element$Iterator:{t:'u',l:['Element$Iterable','Other$interpose']}}}],d:['$','Iterable','$m','interpose']};};function $init$$7k(){if($7k.$$===undefined){initTypeProto($7k,'ceylon.language::Iterable.anonymous#29.anonymous#30',Basic,$init$Iterator());
(function($7k$){atr$($7k$,'$7l',function(){return this.$7l_;},function($7n){return this.$7l_=$7n;},function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},$cont:$7h$.interpose,pa:1024,d:['$','Iterable','$m','interpose','$at','current$9m13n7']};});atr$($7k$,'$7m',function(){return this.$7m_;},function($7o){return this.$7m_=$7o;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$7h$.interpose,pa:1024,d:['$','Iterable','$m','interpose','$at','count$7pnslp']};});$7k$.next=function(){var $7k$=this;var $7p;if(!is$(($7p=$7k$.$7l),{t:Finished})){if($7g.plus(1).divides(($7k$.$7m=$7k$.$7m.successor))){return $7f;}
else{$7k$.$7l=$7j.next();return $7p;}
}
else{return finished();}
};$7k$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable','Other$interpose',{t:Finished}]},ps:[],$cont:$7h$.interpose,pa:3,d:['$','Iterable','$m','interpose','$m','next']};};atr$($7k$,'string',function(){var $7k$=this;return $7h$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$7h$.interpose,pa:3,d:['$','Iterable','$m','interpose','$at','string']};});})($7k.$$.prototype);}
return $7k;}
$7h$.$init$$7k=$init$$7k;$init$$7k();return $7k();}();}();};})($7h.$$.prototype);}
return $7h;}
iterable$.$init$$7h=$init$$7h;$init$$7h();return $7h();}();};iterable$.interpose.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:{t:'u',l:['Element$Iterable','Other$interpose']}}},ps:[{nm:'element',mt:'prm',$t:'Other$interpose'},{nm:'step',mt:'prm',def:1,$t:{t:Integer}}],$cont:Iterable,tp:{Other$interpose:{}},pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$m:interpose'),$_throws($init$openClass$jsint()(lmp$(ex$,'$'),AssertionError),"if `step<1`"),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),interleave)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','interpose']};};atr$(iterable$,'distinct',function(){var iterable$=this;return function(){function $7s($$targs$$){var $7s$=new $7s.$$;$7s$.outer$=iterable$;$7s$.$$targs$$=$$targs$$;Iterable.call(iterable$,{Absent$Iterable:iterable$.$$targs$$.Absent$Iterable,Element$Iterable:iterable$.$$targs$$.Element$Iterable},$7s$);return $7s$;};$7s.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$7s$.$prop$getDistinct,sts:[{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:'Element$Iterable'}}],d:['$','Iterable','$at','distinct']};};function $init$$7s(){if($7s.$$===undefined){initTypeProto($7s,'ceylon.language::Iterable.anonymous#31',Basic,$init$Iterable());
(function($7s$){$7s$.iterator=function(){var $7s$=this;return function(){var $7t=iterable$;return function(){function $7u($$targs$$){var $7u$=new $7u.$$;$7u$.outer$=$7s$;$7u$.$$targs$$=$$targs$$;Iterator({Element$Iterator:iterable$.$$targs$$.Element$Iterable},$7u$);$7u$.$7v_=$7t.iterator();$7u$.$prop$get$7v={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Iterable'}},$cont:$7s$.$prop$getDistinct,d:['$','Iterable','$at','distinct','$at','it$y0vfb8']};}};$7u$.$prop$get$7v.get=function(){return $7v};$7u$.$7w_=(0);$7u$.$prop$get$7w={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$7s$.$prop$getDistinct,pa:1024,d:['$','Iterable','$at','distinct','$at','count$ki54zc']};}};$7u$.$prop$get$7w.get=function(){return $7w};$7u$.$7x_=($7y=(16),$7z=null,$_Array_ofSize($7y,$7z,{Element$Array:mut$([{t:Null},{t:ElementEntry,a:{Element$ElementEntry:iterable$.$$targs$$.Element$Iterable}}])}));$7u$.$prop$get$7x={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:{t:'u',l:[{t:Null},{t:ElementEntry,a:{Element$ElementEntry:'Element$Iterable'}}]}}},$cont:$7s$.$prop$getDistinct,pa:1024,d:['$','Iterable','$at','distinct','$at','store$x5wtqi']};}};$7u$.$prop$get$7x.get=function(){return $7x};var $7y,$7z;return $7u$;};$7u.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$7s$.$prop$getDistinct,sts:[{t:Iterator,a:{Element$Iterator:'Element$Iterable'}}],d:['$','Iterable','$at','distinct']};};function $init$$7u(){if($7u.$$===undefined){initTypeProto($7u,'ceylon.language::Iterable.anonymous#31.anonymous#32',Basic,$init$Iterator());
(function($7u$){atr$($7u$,'$7v',function(){return this.$7v_;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Iterable'}},$cont:$7s$.$prop$getDistinct,d:['$','Iterable','$at','distinct','$at','it$y0vfb8']};});atr$($7u$,'$7w',function(){return this.$7w_;},function($80){return this.$7w_=$80;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$7s$.$prop$getDistinct,pa:1024,d:['$','Iterable','$at','distinct','$at','count$ki54zc']};});atr$($7u$,'$7x',function(){return this.$7x_;},function($81){return this.$7x_=$81;},function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:{t:'u',l:[{t:Null},{t:ElementEntry,a:{Element$ElementEntry:'Element$Iterable'}}]}}},$cont:$7s$.$prop$getDistinct,pa:1024,d:['$','Iterable','$at','distinct','$at','store$x5wtqi']};});$7u$.$82=function($83,$84){var $7u$=this;return function(){var $85;if(nn$(($85=$83)))return $85.hash.magnitude.remainder($84);else return (0)}();};$7u$.$82.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'},{nm:'size',mt:'prm',$t:{t:Integer}}],$cont:$7s$.$prop$getDistinct,d:['$','Iterable','$at','distinct','$m','hash$z99w6n']};};$7u$.$86=function($87){var $7u$=this;var $88=($89=$87.size.times(2),$8a=null,$_Array_ofSize($89,$8a,{Element$Array:mut$([{t:Null},{t:ElementEntry,a:{Element$ElementEntry:iterable$.$$targs$$.Element$Iterable}}])}));var $89,$8a;var $8c;for(var $8b=$87.iterator();($8c=$8b.next())!==finished();){var $8d=$8c;var $8e;while(nn$(($8e=$8d))){var $8f=$7u$.$82($8e.element,$88.size);$88.set($8f,($8g=$88.$_get($8f),$8h=$8e.element,ElementEntry($8g,$8h,{Element$ElementEntry:iterable$.$$targs$$.Element$Iterable})));var $8g,$8h;$8d=$8e.next;}
}return $88;};$7u$.$86.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:{t:'u',l:[{t:Null},{t:ElementEntry,a:{Element$ElementEntry:'Element$Iterable'}}]}}},ps:[{nm:'store',mt:'prm',$t:{t:$_Array,a:{Element$Array:{t:'u',l:[{t:Null},{t:ElementEntry,a:{Element$ElementEntry:'Element$Iterable'}}]}}}}],$cont:$7s$.$prop$getDistinct,d:['$','Iterable','$at','distinct','$m','rebuild$m1o5v8']};};$7u$.next=function(){var $7u$=this;while(true){var $8i=$7u$.$7v.next();if(is$($8i,{t:Finished})) {return $8i;}
else{var $8j=$7u$.$82($8i,$7u$.$7x.size);var $8k=$7u$.$7x.$_get($8j);var $8l;if(nn$(($8l=$8k))&&$8l.has($8i)){}
else{$7u$.$7x.set($8j,($8m=$8k,$8n=$8i,ElementEntry($8m,$8n,{Element$ElementEntry:iterable$.$$targs$$.Element$Iterable})));var $8m,$8n;($8o=$7u$.$7w,$7u$.$7w=$8o.successor,$8o);var $8o;if(($7u$.$7w>$7u$.$7x.size.times(2))){$7u$.$7x=$7u$.$86($7u$.$7x);}
return $8i;}
}}
};$7u$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterable',{t:Finished}]},ps:[],$cont:$7s$.$prop$getDistinct,pa:3,d:['$','Iterable','$at','distinct','$m','next']};};})($7u.$$.prototype);}
return $7u;}
$7s$.$init$$7u=$init$$7u;$init$$7u();return $7u();}();}();};})($7s.$$.prototype);}
return $7s;}
iterable$.$init$$7s=$init$$7s;$init$$7s();return $7s();}()},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$Iterable',Element$Iterable:'Element$Iterable'}},$cont:Iterable,pa:9,an:function(){return[doc$($CCMM$,'$:Iterable:$at:distinct'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),set)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$at','distinct']};});iterable$.frequencies=function(){var iterable$=this;return iterable$.coalesced.summarize(JsCallable(iterable$,identity,{Value$identity:mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])}),$JsCallable((function($8r,$8s){return function(){var $8t;if(nn$(($8t=$8r)))return $8t.plus(1);else return (1)}();}),[{nm:'count',mt:'prm',$t:{t:'u',l:[{t:Null},{t:Integer}]}},{nm:'_',mt:'prm',$t:{t:'i',l:[iterable$.Element$Iterable,{t:$_Object}]}}],{Return$Callable:{t:Integer},Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])]),Element$Tuple:mut$([{t:Null},{t:Integer},mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])]),First$Tuple:mut$([{t:Null},{t:Integer}])}}}),{Result$summarize:{t:Integer},Group$summarize:mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])});};iterable$.frequencies.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:'i',l:['Element$Iterable',{t:$_Object}]},Item$Map:{t:Integer}}},ps:[],$cont:Iterable,pa:1,an:function(){return[doc$($CCMM$,'$:Iterable:$m:frequencies')];},d:['$','Iterable','$m','frequencies']};};iterable$.tabulate=function($8u,$xls834$){var iterable$=this;return iterable$.coalesced.summarize(JsCallable(iterable$,identity,{Value$identity:mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])}),$JsCallable((function($8v,$8w){return function(){var $8x;if(nn$(($8x=$8v)))return $8x;else return $8u($8w)}();}),[{nm:'item',mt:'prm',$t:{t:'u',l:[{t:Null},$xls834$.Result$tabulate]}},{nm:'key',mt:'prm',$t:{t:'i',l:[iterable$.Element$Iterable,{t:$_Object}]}}],{Return$Callable:$xls834$.Result$tabulate/*ORALE!Result inv pero Return var*/,Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])]),Element$Tuple:mut$([{t:Null},$xls834$.Result$tabulate,mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])]),First$Tuple:mut$([{t:Null},$xls834$.Result$tabulate])}}}),{Result$summarize:$xls834$.Result$tabulate,Group$summarize:mit$([iterable$.$$targs$$.Element$Iterable,{t:$_Object}])});};iterable$.tabulate.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:'i',l:['Element$Iterable',{t:$_Object}]},Item$Map:'Result$tabulate'}},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$tabulate',Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:'Result$tabulate',ps:[{nm:'key',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,tp:{Result$tabulate:{}},pa:1,an:function(){return[doc$($CCMM$,'$:Iterable:$m:tabulate')];},d:['$','Iterable','$m','tabulate']};};iterable$.group=function($8y,$z3c017$){var iterable$=this;return iterable$.summarize(JsCallable(iterable$,$8y),function($8z$0,$8z$1){return ElementEntry($8z$0,$8z$1,{Element$ElementEntry:iterable$.$$targs$$.Element$Iterable});},{Result$summarize:{t:ElementEntry,a:{Element$ElementEntry:iterable$.$$targs$$.Element$Iterable}},Group$summarize:$z3c017$.Group$group}).mapItems($JsCallable((function($90,$91){return $91.reversed;}),[{nm:'_',mt:'prm',$t:$z3c017$.Group$group},{nm:'item',mt:'prm',$t:{t:ElementEntry,a:{Element$ElementEntry:iterable$.Element$Iterable}}}],{Return$Callable:{t:Sequence,a:{Element$Sequence:iterable$.$$targs$$.Element$Iterable}},Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([{t:ElementEntry,a:{Element$ElementEntry:iterable$.$$targs$$.Element$Iterable}}]),Element$Tuple:mut$([$z3c017$.Group$group,{t:ElementEntry,a:{Element$ElementEntry:iterable$.$$targs$$.Element$Iterable}}]),First$Tuple:$z3c017$.Group$group/*ORALE!Group inv pero First var*/}}}),{Result$mapItems:{t:Sequence,a:{Element$Sequence:iterable$.$$targs$$.Element$Iterable}}});};iterable$.group.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:'Group$group',Item$Map:{t:Sequence,a:{Element$Sequence:'Element$Iterable'}}}},ps:[{nm:'grouping',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Group$group',Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:'Group$group',ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,tp:{Group$group:{sts:[{t:$_Object}]}},pa:1,an:function(){return[doc$($CCMM$,'$:Iterable:$m:group'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.summarize)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','group']};};iterable$.summarize=function($92,$93,$67zt7b$){var iterable$=this;return function(){function $94($$targs$$){var $94$=new $94.$$;$94$.outer$=iterable$;$94$.$$targs$$=$$targs$$;$_Object($94$);Map({Key$Map:$67zt7b$.Group$summarize/*ORALE!Group inv pero Key var*/,Item$Map:$67zt7b$.Result$summarize/*ORALE!Result inv pero Item var*/},$94$);$94$.$95_=($96=(16),$97=null,$_Array_ofSize($96,$97,{Element$Array:mut$([{t:Null},{t:GroupEntry,a:{Result$GroupEntry:$67zt7b$.Result$summarize,Group$GroupEntry:$67zt7b$.Group$summarize}}])}));$94$.$prop$get$95={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:{t:'u',l:[{t:Null},{t:GroupEntry,a:{Result$GroupEntry:'Result$summarize',Group$GroupEntry:'Group$summarize'}}]}}},$cont:$94$.summarize,pa:1024,d:['$','Iterable','$m','summarize','$at','store$qernvl']};}};$94$.$prop$get$95.get=function(){return $95};var $96,$97;$94$.$98_=(0);$94$.$prop$get$98={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$94$.summarize,pa:1024,d:['$','Iterable','$m','summarize','$at','count$91pkmb']};}};$94$.$prop$get$98.get=function(){return $98};var $9a;for(var $99=iterable$.iterator();($9a=$99.next())!==finished();){var $9b=$92($9a);$prop$get$9b={$crtmm$:function(){return{mod:$CCMM$,$t:'Group$summarize',$cont:$94$.summarize,d:['$','Iterable','$m','summarize','$at','group$ajuo4p']};}};$prop$get$9b.get=function(){return $9b};var $9c=$94$.$9d($9b,$94$.$95.size);$prop$get$9c={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$94$.summarize,d:['$','Iterable','$m','summarize','$at','index$llxrb0']};}};$prop$get$9c.get=function(){return $9c};var $9e=$94$.$95.$_get($9c);$prop$get$9e={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:GroupEntry,a:{Result$GroupEntry:'Result$summarize',Group$GroupEntry:'Group$summarize'}}]},$cont:$94$.summarize,d:['$','Iterable','$m','summarize','$at','entries$sqrkb6']};}};$prop$get$9e.get=function(){return $9e};var $9f,$9g;if(nn$(($9f=$9e))&&nn$(($9g=$9f.$_get($9b)))){($9g.elements=$93($9g.elements,$9a));}
else{$94$.$95.set($9c,($9h=$9e,$9i=$9b,$9j=$93(null,$9a),GroupEntry($9h,$9i,$9j,{Group$GroupEntry:$67zt7b$.Group$summarize,Result$GroupEntry:$67zt7b$.Result$summarize})));var $9h,$9i,$9j;($9k=$94$.$98,$94$.$98=$9k.successor,$9k);var $9k;if(($94$.$98>$94$.$95.size.times(2))){$94$.$95=$94$.$9l($94$.$95);}
}
}return $94$;};$94.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},$cont:$94$.summarize,sts:[{t:Map,a:{Key$Map:'Group$summarize',Item$Map:'Result$summarize'}}],d:['$','Iterable','$m','summarize']};};function $init$$94(){if($94.$$===undefined){initTypeProto($94,'ceylon.language::Iterable.anonymous#36',$init$$_Object(),$init$Map());
(function($94$){atr$($94$,'$95',function(){return this.$95_;},function($9m){return this.$95_=$9m;},function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:{t:'u',l:[{t:Null},{t:GroupEntry,a:{Result$GroupEntry:'Result$summarize',Group$GroupEntry:'Group$summarize'}}]}}},$cont:$94$.summarize,pa:1024,d:['$','Iterable','$m','summarize','$at','store$qernvl']};});$94$.$9d=function($9n,$9o){var $94$=this;return $9n.hash.magnitude.remainder($9o);};$94$.$9d.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'group',mt:'prm',$t:{t:$_Object}},{nm:'size',mt:'prm',$t:{t:Integer}}],$cont:$94$.summarize,d:['$','Iterable','$m','summarize','$m','hash$obelfg']};};$94$.$9l=function($9p){var $94$=this;var $9q=($9r=$9p.size.times(2),$9s=null,$_Array_ofSize($9r,$9s,{Element$Array:mut$([{t:Null},{t:GroupEntry,a:{Result$GroupEntry:$67zt7b$.Result$summarize,Group$GroupEntry:$67zt7b$.Group$summarize}}])}));var $9r,$9s;var $9u;for(var $9t=$9p.iterator();($9u=$9t.next())!==finished();){var $9v=$9u;var $9w;while(nn$(($9w=$9v))){var $9x=$94$.$9d($9w.group,$9q.size);$9q.set($9x,($9y=$9q.$_get($9x),$9z=$9w.group,$a0=$9w.elements,GroupEntry($9y,$9z,$a0,{Group$GroupEntry:$67zt7b$.Group$summarize,Result$GroupEntry:$67zt7b$.Result$summarize})));var $9y,$9z,$a0;$9v=$9w.next;}
}return $9q;};$94$.$9l.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:{t:'u',l:[{t:Null},{t:GroupEntry,a:{Result$GroupEntry:'Result$summarize',Group$GroupEntry:'Group$summarize'}}]}}},ps:[{nm:'store',mt:'prm',$t:{t:$_Array,a:{Element$Array:{t:'u',l:[{t:Null},{t:GroupEntry,a:{Result$GroupEntry:'Result$summarize',Group$GroupEntry:'Group$summarize'}}]}}}}],$cont:$94$.summarize,d:['$','Iterable','$m','summarize','$m','rebuild$xi3q89']};};atr$($94$,'$98',function(){return this.$98_;},function($a1){return this.$98_=$a1;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$94$.summarize,pa:1024,d:['$','Iterable','$m','summarize','$at','count$91pkmb']};});atr$($94$,'size',function(){var $94$=this;return $94$.$98;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$94$.summarize,pa:3,d:['$','Iterable','$m','summarize','$at','size']};});$94$.iterator=function(){var $94$=this;return function(){function $a2($$targs$$){var $a2$=new $a2.$$;$a2$.outer$=$94$;$a2$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:Entry,a:{Key$Entry:$67zt7b$.Group$summarize/*ORALE!Group inv pero Key var*/,Item$Entry:$67zt7b$.Result$summarize/*ORALE!Result inv pero Item var*/}}},$a2$);$a2$.$a3_=(0);$a2$.$prop$get$a3={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$94$.summarize,pa:1024,d:['$','Iterable','$m','summarize','$at','index$t4wmt5']};}};$a2$.$prop$get$a3.get=function(){return $a3};$a2$.$a4_=null;$a2$.$prop$get$a4={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:GroupEntry,a:{Result$GroupEntry:'Result$summarize',Group$GroupEntry:'Group$summarize'}}]},$cont:$94$.summarize,pa:1024,d:['$','Iterable','$m','summarize','$at','entry$tn94pz']};}};$a2$.$prop$get$a4.get=function(){return $a4};return $a2$;};$a2.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$94$.summarize,sts:[{t:Iterator,a:{Element$Iterator:{t:Entry,a:{Key$Entry:'Group$summarize',Item$Entry:'Result$summarize'}}}}],d:['$','Iterable','$m','summarize']};};function $init$$a2(){if($a2.$$===undefined){initTypeProto($a2,'ceylon.language::Iterable.anonymous#36.anonymous#37',Basic,$init$Iterator());
(function($a2$){atr$($a2$,'$a3',function(){return this.$a3_;},function($a5){return this.$a3_=$a5;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$94$.summarize,pa:1024,d:['$','Iterable','$m','summarize','$at','index$t4wmt5']};});atr$($a2$,'$a4',function(){return this.$a4_;},function($a6){return this.$a4_=$a6;},function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:GroupEntry,a:{Result$GroupEntry:'Result$summarize',Group$GroupEntry:'Group$summarize'}}]},$cont:$94$.summarize,pa:1024,d:['$','Iterable','$m','summarize','$at','entry$tn94pz']};});$a2$.next=function(){var $a2$=this;var $a7;var $a8;if(nn$(($a8=$a2$.$a4))){$a2$.$a4=$a8.next;$a7=$a8;}
else{while(true){if(($a2$.$a3>=$94$.$95.size)){return finished();}
else{$a2$.$a4=$94$.$95.$_get(($a9=$a2$.$a3,$a2$.$a3=$a9.successor,$a9));var $a9;var $aa;if(nn$(($aa=$a2$.$a4))){$a2$.$a4=$aa.next;$a7=$aa;break;}
}
}
}
return Entry($a7.group,$a7.elements,{Key$Entry:$67zt7b$.Group$summarize/*ORALE!Group inv pero Key var*/,Item$Entry:$67zt7b$.Result$summarize/*ORALE!Result inv pero Item var*/});};$a2$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Entry,a:{Key$Entry:'Group$summarize',Item$Entry:'Result$summarize'}},{t:Finished}]},ps:[],$cont:$94$.summarize,pa:3,d:['$','Iterable','$m','summarize','$m','next']};};})($a2.$$.prototype);}
return $a2;}
$94$.$init$$a2=$init$$a2;$init$$a2();return $a2();}();};$94$.clone=function(){var $94$=this;return $94$;};$94$.$ac=function($ad){var $94$=this;return ($ae=$94$.$95.$_get($94$.$9d($ad,$94$.$95.size)),JsCallable($ae,nn$($ae)?$ae.$_get:null))($ad);};$94$.$ac.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:GroupEntry,a:{Result$GroupEntry:'Result$summarize',Group$GroupEntry:'Group$summarize'}}]},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}}],$cont:$94$.summarize,d:['$','Iterable','$m','summarize','$m','group$5gf80d']};};$94$.defines=function($af){var $94$=this;return nn$($94$.$ac($af));};$94$.$_get=function($ag){var $94$=this;return ($ah=$94$.$ac($ag),nn$($ah)?$ah.elements:null);};$94$.getOrDefault=function($ai,$aj,$os3hnq$){var $94$=this;return function(){var $ak;if(nn$(($ak=$94$.$ac($ai))))return $ak.elements;else return $aj}();};$94$.getOrDefault.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Result$summarize','Default$getOrDefault']},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}},{nm:'default',mt:'prm',$t:'Default$getOrDefault'}],$cont:$94$.summarize,tp:{Default$getOrDefault:{}},pa:3,d:['$','Iterable','$m','summarize','$m','getOrDefault']};};})($94.$$.prototype);}
return $94;}
iterable$.$init$$94=$init$$94;$init$$94();return $94();}();};iterable$.summarize.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:'Group$summarize',Item$Map:'Result$summarize'}},ps:[{nm:'grouping',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Group$summarize',Arguments$Callable:{t:'T',l:['Element$Iterable']}}},$rt:'Group$summarize',ps:[{nm:'element',mt:'prm',$t:'Element$Iterable'}]},{nm:'accumulating',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$summarize',Arguments$Callable:{t:'T',l:[{t:'u',l:[{t:Null},'Result$summarize']},'Element$Iterable']}}},$rt:'Result$summarize',ps:[{nm:'partial',mt:'prm',$t:{t:'u',l:[{t:Null},'Result$summarize']}},{nm:'element',mt:'prm',$t:'Element$Iterable'}]}],$cont:Iterable,tp:{Group$summarize:{sts:[{t:$_Object}]},Result$summarize:{}},pa:1,an:function(){return[doc$($CCMM$,'$:Iterable:$m:summarize'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.group),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.fold)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Iterable','$m','summarize']};};atr$(iterable$,'string',function(){var iterable$=this;return function(){var $an=iterable$.take(31).sequence();return ($an.empty?"{}":((($an.size).valueOf()==(31).valueOf())?"{ ".plus(commaList($an.take(30))).plus(", ... }"):"{ ".plus(commaList($an)).plus(" }")));}()},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Iterable,pa:11,an:function(){return[doc$($CCMM$,'$:Iterable:$at:string')];},d:['$','Iterable','$at','string']};});})(Iterable.$$.prototype);}
return Iterable;}
ex$.$init$Iterable=$init$Iterable;$init$Iterable();var $5u,$66,$ae,$ah;function commaList($ao){return ($ap=for$(function(){var $aq=$ao.iterator(),$ar=finished();var n$ar=function(){return $ar=$aq.next();}
return function(){if(n$ar()!==finished()){var $as=$ar,$at=stringify($as);return $at;}
return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:{t:$_String}}).sequence(),($au=", ",JsCallable($au,$au.$_join))($ap));};commaList.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'elements',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Anything}}}}],d:['$','commaList']};};var $ap,$au;function ElementEntry(next,element,$$targs$$,elementEntry$){$init$ElementEntry();
if(elementEntry$===undefined)elementEntry$=new ElementEntry.$$;
set_type_args(elementEntry$,$$targs$$);
elementEntry$.next_=next;elementEntry$.element_=element;$_Object(elementEntry$);Sequence({Element$Sequence:$$targs$$.Element$ElementEntry/*ORALE!Element inv pero Element var*/},elementEntry$);return elementEntry$;}
ElementEntry.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'next',mt:'prm',$t:{t:'u',l:[{t:Null},{t:ElementEntry,a:{Element$ElementEntry:'Element$ElementEntry'}}]},pa:1},{nm:'element',mt:'prm',$t:'Element$ElementEntry',pa:1}],tp:{Element$ElementEntry:{}},sts:[{t:Sequence,a:{Element$Sequence:'Element$ElementEntry'}}],d:['$','ElementEntry']};};
ex$.ElementEntry=ElementEntry;function $init$ElementEntry(){if(ElementEntry.$$===undefined){initTypeProto(ElementEntry,'ceylon.language::ElementEntry',$init$$_Object(),$init$Sequence());
(function(elementEntry$){atr$(elementEntry$,'next',function(){return this.next_;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ElementEntry,a:{Element$ElementEntry:'Element$ElementEntry'}}]},$cont:ElementEntry,pa:1,d:['$','ElementEntry','$at','next']};});atr$(elementEntry$,'element',function(){return this.element_;},undefined,function(){return{mod:$CCMM$,$t:'Element$ElementEntry',$cont:ElementEntry,pa:1,d:['$','ElementEntry','$at','element']};});atr$(elementEntry$,'first',function(){var elementEntry$=this;return elementEntry$.element;},undefined,function(){return{mod:$CCMM$,$t:'Element$ElementEntry',$cont:ElementEntry,pa:3,d:['$','ElementEntry','$at','first']};});elementEntry$.has=function($av){var elementEntry$=this;var $aw=elementEntry$;var $ax;while(nn$(($ax=$aw))){var $ay;if(nn$(($ay=$av))){var $az;if(nn$(($az=$ax.element))&&$ay.equals($az)){return true;}
}
else{if(!nn$($ax.element)){return true;}
}
$aw=$ax.next;}
return false;};elementEntry$.has.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Anything}}],$cont:ElementEntry,pa:1,d:['$','ElementEntry','$m','has']};};elementEntry$.getFromFirst=function($b0){var elementEntry$=this;if(($b0<0)){return null;}
else{var $b1=elementEntry$;var $b3=(0),$b4=$b0;for(var $b5=0;$b5<$b4;$b5++,($b3=$b3.successor)){var $b6;if(nn$(($b6=$b1.next))){$b1=$b6;}
else{return null;}
}return $b1.element;}
};elementEntry$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$ElementEntry']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:ElementEntry,pa:3,d:['$','ElementEntry','$m','getFromFirst']};};atr$(elementEntry$,'rest',function(){var elementEntry$=this;return ($b7=elementEntry$.next,nn$($b7)?$b7:empty());},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$ElementEntry'}},$cont:ElementEntry,pa:3,d:['$','ElementEntry','$at','rest']};});atr$(elementEntry$,'last',function(){var elementEntry$=this;var $b8=elementEntry$;var $b9;while(nn$(($b9=$b8.next))){$b8=$b9;}
return $b8.element;},undefined,function(){return{mod:$CCMM$,$t:'Element$ElementEntry',$cont:ElementEntry,pa:3,d:['$','ElementEntry','$at','last']};});atr$(elementEntry$,'size',function(){var elementEntry$=this;var $ba=(1);var $bb=elementEntry$;var $bc;while(nn$(($bc=$bb.next))){$bb=$bc;($bd=$ba,$ba=$bd.successor,$bd);var $bd;}
return $ba;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:ElementEntry,pa:3,d:['$','ElementEntry','$at','size']};});elementEntry$.iterator=function(){var elementEntry$=this;return function(){function $be($$targs$$){var $be$=new $be.$$;$be$.outer$=elementEntry$;$be$.$$targs$$=$$targs$$;Iterator({Element$Iterator:elementEntry$.$$targs$$.Element$ElementEntry/*ORALE!Element inv pero Element var*/},$be$);$be$.$bf_=elementEntry$;$be$.$prop$get$bf={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ElementEntry,a:{Element$ElementEntry:'Element$ElementEntry'}}]},$cont:ElementEntry,pa:1024,d:['$','ElementEntry','$at','entry$eey3d5']};}};$be$.$prop$get$bf.get=function(){return $bf};return $be$;};$be.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:ElementEntry,sts:[{t:Iterator,a:{Element$Iterator:'Element$ElementEntry'}}],d:['$','ElementEntry']};};function $init$$be(){if($be.$$===undefined){initTypeProto($be,'ceylon.language::ElementEntry.anonymous#38',Basic,$init$Iterator());
(function($be$){atr$($be$,'$bf',function(){return this.$bf_;},function($bg){return this.$bf_=$bg;},function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ElementEntry,a:{Element$ElementEntry:'Element$ElementEntry'}}]},$cont:ElementEntry,pa:1024,d:['$','ElementEntry','$at','entry$eey3d5']};});$be$.next=function(){var $be$=this;var $bh;if(nn$(($bh=$be$.$bf))){$be$.$bf=$bh.next;return $bh.element;}
else{return finished();}
};$be$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$ElementEntry',{t:Finished}]},ps:[],$cont:ElementEntry,pa:3,d:['$','ElementEntry','$m','next']};};})($be.$$.prototype);}
return $be;}
elementEntry$.$init$$be=$init$$be;$init$$be();return $be();}();};})(ElementEntry.$$.prototype);}
return ElementEntry;}
ex$.$init$ElementEntry=$init$ElementEntry;$init$ElementEntry();var $b7;function GroupEntry(next,group,elements,$$targs$$,groupEntry$){$init$GroupEntry();
if(groupEntry$===undefined)groupEntry$=new GroupEntry.$$;
set_type_args(groupEntry$,$$targs$$);
groupEntry$.next_=next;groupEntry$.group_=group;groupEntry$.elements_=elements;return groupEntry$;}
GroupEntry.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'next',mt:'prm',$t:{t:'u',l:[{t:Null},{t:GroupEntry,a:{Result$GroupEntry:'Result$GroupEntry',Group$GroupEntry:'Group$GroupEntry'}}]},pa:1},{nm:'group',mt:'prm',$t:'Group$GroupEntry',pa:1},{nm:'elements',mt:'prm',$t:'Result$GroupEntry',pa:1025}],tp:{Group$GroupEntry:{sts:[{t:$_Object}]},Result$GroupEntry:{}},d:['$','GroupEntry']};};
ex$.GroupEntry=GroupEntry;function $init$GroupEntry(){if(GroupEntry.$$===undefined){initTypeProto(GroupEntry,'ceylon.language::GroupEntry',Basic);
(function(groupEntry$){atr$(groupEntry$,'next',function(){return this.next_;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:GroupEntry,a:{Result$GroupEntry:'Result$GroupEntry',Group$GroupEntry:'Group$GroupEntry'}}]},$cont:GroupEntry,pa:1,d:['$','GroupEntry','$at','next']};});atr$(groupEntry$,'group',function(){return this.group_;},undefined,function(){return{mod:$CCMM$,$t:'Group$GroupEntry',$cont:GroupEntry,pa:1,d:['$','GroupEntry','$at','group']};});atr$(groupEntry$,'elements',function(){return this.elements_;},function($bj){return this.elements_=$bj;},function(){return{mod:$CCMM$,$t:'Result$GroupEntry',$cont:GroupEntry,pa:1025,d:['$','GroupEntry','$at','elements']};});groupEntry$.$_get=function($bk){var groupEntry$=this;var $bl=groupEntry$;var $bm;while(nn$(($bm=$bl))){if($bk.equals($bm.group)){return $bm;}
$bl=$bm.next;}
return null;};groupEntry$.$_get.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:GroupEntry,a:{Result$GroupEntry:'Result$GroupEntry',Group$GroupEntry:'Group$GroupEntry'}}]},ps:[{nm:'group',mt:'prm',$t:{t:$_Object}}],$cont:GroupEntry,pa:1,d:['$','GroupEntry','$m','get']};};})(GroupEntry.$$.prototype);}
return GroupEntry;}
ex$.$init$GroupEntry=$init$GroupEntry;$init$GroupEntry();function for$(makeNextFunc, $$targs$$, compr) {
$init$for$();
if (compr===undefined) {compr = new for$.$$;}
Basic(compr);
Iterable($$targs$$,compr);
compr.makeNextFunc = makeNextFunc;
return compr;
}
for$.$crtmm$={nm:'Comprehension',pa:1,mod:$CCMM$,d:['$','Iterable']};
function $init$for$() {
if (for$.$$===undefined) {
initTypeProto(for$, 'ceylon.language::Comprehension', $init$Basic(), $init$Iterable());
}
return for$;
}
$init$for$();
var for$$proto = for$.$$.prototype;
for$$proto.iterator = function() {
return for$iter(this.makeNextFunc(), this.$$targs$$);
}
for$$proto.sequence = function() {
return Iterable.$$.prototype.sequence.call(this);
}
for$$proto.sequence.$crtmm$={pa:3,mod:$CCMM$,d:['$','Iterable','$m','sequence']}
ex$.for$=for$;
function for$iter(nextFunc, $$targs$$, it) {
$init$for$iter();
if (it===undefined) {it = new for$iter.$$;}
Basic(it);
Iterator($$targs$$,it);
it.next = nextFunc;
return it;
}
for$iter.$crtmm$={nm:'ComprehensionIterator',pa:1,mod:$CCMM$,d:['$','Iterator']};
function $init$for$iter() {
if (for$iter.$$===undefined) {
initTypeProto(for$iter, 'ceylon.language::ComprehensionIterator',
$init$Basic(), $init$Iterator());
}
return for$iter;
}
$init$for$iter();
function $_Boolean(value) {return Boolean(value)}
initExistingTypeProto($_Boolean, Boolean, 'ceylon.language::Boolean');
$_Boolean.$crtmm$=function(){
return{ps:[],pa:257,of:[getTrue,getFalse],
mod:$CCMM$,d:['$','Boolean']};
};
ex$.$_Boolean=$_Boolean;
function $_true() {return true;}
initType($_true, "ceylon.language::true", $_Boolean);
$_true.$crtmm$=function(){return{'super':{t:$_Boolean},mod:$CCMM$,pa:65,d:['$','true']}};
function $_false() {return false;}
initType($_false, "ceylon.language::false", $_Boolean);
$_false.$crtmm$=function(){return{'super':{t:$_Boolean},mod:$CCMM$,pa:65,d:['$','false']}};
Boolean.prototype.getT$name = function() {
return 'ceylon.language::Boolean';
}
Boolean.prototype.getT$all = function() {
return (this.valueOf()?$_true:$_false).$$.T$all;
}
Boolean.prototype.equals = function(other) {return other.constructor===Boolean && other==this;}
atr$(Boolean.prototype, 'hash', function(){ return this.valueOf()?1231:1237; },
undefined,{$t:{t:Integer},pa:3,mod:$CCMM$,d:['$','Object','$at','hash']});
atr$(Boolean.prototype, 'string', function(){ return this.valueOf()?"true":"false"; },
undefined,{$t:{t:$_String},pa:3,mod:$CCMM$,d:['$','Object','$at','string']});
function getTrue() {return true;}
getTrue.$crtmm$=function(){return{mod:$CCMM$,pa:65,d:['$','true'],$t:{t:$_true}};};
function getFalse() {return false;}
getFalse.$crtmm$=function(){return{mod:$CCMM$,pa:65,d:['$','false'],$t:{t:$_false}};};
ex$.$prop$getTrue=$_true;
ex$.$prop$getFalse=$_false;
ex$.getTrue=getTrue;
ex$.getFalse=getFalse;
function $init$$_true(){return $_true;}
function $init$$_false(){return $_false;}
ex$.$init$$_true=$init$$_true;
ex$.$init$$_false=$init$$_false;
function Tuple(first,rest,$$targs$$,tuple$){$init$Tuple();
if(tuple$===undefined)tuple$=new Tuple.$$;
set_type_args(tuple$,$$targs$$);
tuple$.$bn_=first;tuple$.$bo_=rest;$_Object(tuple$);Sequence({Element$Sequence:$$targs$$.Element$Tuple},tuple$);return tuple$;}
Tuple.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'first',mt:'prm',$t:'First$Tuple',pa:3,an:function(){return[doc$($CCMM$,'$:Tuple:$at:first')];}},{nm:'rest',mt:'prm',$t:'Rest$Tuple',pa:3,an:function(){return[doc$($CCMM$,'$:Tuple:$at:rest')];}}],tp:{Element$Tuple:{dv:'out'},First$Tuple:{dv:'out',sts:['Element$Tuple']},Rest$Tuple:{dv:'out',sts:[{t:Sequential,a:{Element$Sequential:'Element$Tuple'}}],def:{t:Empty}}},sts:[{t:Sequence,a:{Element$Sequence:'Element$Tuple'}}],pa:2081,an:function(){return[doc$($CCMM$,'$:Tuple'),by(["Gavin"].$sa$({t:$_String})),tagged(["Sequences","Basic types","Collections"].$sa$({t:$_String})),$_native()];},d:['$','Tuple']};};
ex$.Tuple=Tuple;function $init$Tuple(){if(Tuple.$$===undefined){initTypeProto(Tuple,'ceylon.language::Tuple',$init$$_Object(),$init$Sequence());
(function(tuple$){atr$(tuple$,'first',function(){return this.$bn_;},undefined,function(){return{mod:$CCMM$,$t:'First$Tuple',$cont:Tuple,pa:3,an:function(){return[doc$($CCMM$,'$:Tuple:$at:first')];},d:['$','Tuple','$at','first']};});atr$(tuple$,'rest',function(){return this.$bo_;},undefined,function(){return{mod:$CCMM$,$t:'Rest$Tuple',$cont:Tuple,pa:3,an:function(){return[doc$($CCMM$,'$:Tuple:$at:rest')];},d:['$','Tuple','$at','rest']};});atr$(tuple$,'lastIndex',function(){var tuple$=this;return tuple$.rest.size},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Tuple,pa:3,an:function(){return[$_native()];},d:['$','Tuple','$at','lastIndex']};});atr$(tuple$,'size',function(){var tuple$=this;return (1).plus(tuple$.rest.size)},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Tuple,pa:3,an:function(){return[$_native()];},d:['$','Tuple','$at','size']};});tuple$.getFromFirst=function($br){var tuple$=this;return function($bs){if($bs===smaller())return null;else if($bs===equal())return tuple$.first;else if($bs===larger())return tuple$.rest.getFromFirst($br.minus(1));}($br.compare(0));};tuple$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Tuple']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Tuple,pa:3,an:function(){return[$_native()];},d:['$','Tuple','$m','getFromFirst']};};atr$(tuple$,'last',function(){var tuple$=this;return function(){var $bu;if(ne$(($bu=tuple$.rest)))return $bu.last;else return tuple$.first}()},undefined,function(){return{mod:$CCMM$,$t:'Element$Tuple',$cont:Tuple,pa:3,an:function(){return[doc$($CCMM$,'$:Tuple:$at:last'),$_native()];},d:['$','Tuple','$at','last']};});tuple$.measure=function($bv,$bw){var tuple$=this;if(($bw<=0)){return empty();}
var $bx=($by=(($bv<0)?0:null),nn$($by)?$by:$bv);var $by;if((($bx).valueOf()==(0).valueOf())){return ($bz=((($bw).valueOf()==(1).valueOf())?tpl$([tuple$.first]):null),nn$($bz)?$bz:tuple$.rest.measure(0,$bw.plus($bx).minus(1)).withLeading(tuple$.first,{Other$withLeading:tuple$.$$targs$$.First$Tuple}));var $bz;}
return tuple$.rest.measure($bx.minus(1),$bw);};tuple$.measure.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Tuple'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Tuple,pa:3,an:function(){return[$_native()];},d:['$','Tuple','$m','measure']};};tuple$.span=function($c0,$c1){var tuple$=this;if((($c0<0)&&($c1<0))){return empty();}
var $c2=($c3=(($c0<0)?0:null),nn$($c3)?$c3:$c0);var $c3;var $c4=($c5=(($c1<0)?0:null),nn$($c5)?$c5:$c1);var $c5;return ($c6=(($c2<=$c4)?tuple$.measure($c0,$c4.minus($c2).plus(1)):null),nn$($c6)?$c6:tuple$.measure($c4,$c2.minus($c4).plus(1)).reversed.sequence());var $c6;};tuple$.span.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Tuple'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'end',mt:'prm',$t:{t:Integer}}],$cont:Tuple,pa:3,an:function(){return[$_native()];},d:['$','Tuple','$m','span']};};tuple$.spanTo=function($c7){var tuple$=this;return ($c8=(($c7<0)?empty():null),nn$($c8)?$c8:tuple$.span(0,$c7));};tuple$.spanTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Tuple'}},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Tuple,pa:3,an:function(){return[$_native()];},d:['$','Tuple','$m','spanTo']};};tuple$.spanFrom=function($c9){var tuple$=this;return tuple$.span($c9,tuple$.size);};tuple$.spanFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Tuple'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:Tuple,pa:3,an:function(){return[$_native()];},d:['$','Tuple','$m','spanFrom']};};tuple$.clone=function(){var tuple$=this;return tuple$;};tuple$.clone.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:['First$Tuple']},ps:[],$cont:Tuple,pa:3,an:function(){return[doc("This tuple."),$_native()];},d:['$','Tuple','$m','clone']};};tuple$.iterator=function(){var tuple$=this;return function(){function $ca($$targs$$){var $ca$=new $ca.$$;$ca$.outer$=tuple$;$ca$.$$targs$$=$$targs$$;Iterator({Element$Iterator:tuple$.$$targs$$.Element$Tuple},$ca$);$ca$.$cb_=tuple$;$ca$.$prop$get$cb={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Tuple'}},$cont:tuple$.iterator,pa:1024,d:['$','Tuple','$m','iterator','$at','current$5go163']};}};$ca$.$prop$get$cb.get=function(){return $cb};return $ca$;};$ca.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:tuple$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Tuple'}}],d:['$','Tuple','$m','iterator']};};function $init$$ca(){if($ca.$$===undefined){initTypeProto($ca,'ceylon.language::Tuple.anonymous#0',Basic,$init$Iterator());
(function($ca$){atr$($ca$,'$cb',function(){return this.$cb_;},function($cc){return this.$cb_=$cc;},function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Tuple'}},$cont:tuple$.iterator,pa:1024,d:['$','Tuple','$m','iterator','$at','current$5go163']};});$ca$.next=function(){var $ca$=this;var $cd;if(ne$(($cd=$ca$.$cb))){$ca$.$cb=$cd.rest;return $cd.first;}
else{return finished();}
};$ca$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Tuple',{t:Finished}]},ps:[],$cont:tuple$.iterator,pa:3,d:['$','Tuple','$m','iterator','$m','next']};};atr$($ca$,'string',function(){var $ca$=this;return tuple$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:tuple$.iterator,pa:3,d:['$','Tuple','$m','iterator','$at','string']};});})($ca.$$.prototype);}
return $ca;}
tuple$.$init$$ca=$init$$ca;$init$$ca();return $ca();}();};tuple$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Tuple'}},ps:[],$cont:Tuple,pa:3,an:function(){return[$_native()];},d:['$','Tuple','$m','iterator']};};tuple$.contains=function($cf){var tuple$=this;return function(){var $cg;if(nn$(($cg=tuple$.first))&&$cg.equals($cf))return true;else return tuple$.rest.contains($cf)}();};tuple$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:$_Object}}],$cont:Tuple,pa:3,an:function(){return[doc$($CCMM$,'$:Tuple:$m:contains'),$_native()];},d:['$','Tuple','$m','contains']};};tuple$.withLeading=function($ch,$bzh8o8$){var tuple$=this;return Tuple($ch,tuple$,{First$Tuple:$bzh8o8$.Other$withLeading/*ORALE!Other inv pero First var*/,Rest$Tuple:{t:Tuple,a:{Rest$Tuple:tuple$.$$targs$$.Rest$Tuple,Element$Tuple:tuple$.$$targs$$.Element$Tuple,First$Tuple:tuple$.$$targs$$.First$Tuple}},Element$Tuple:mut$([$bzh8o8$.Other$withLeading,tuple$.$$targs$$.Element$Tuple])});};tuple$.withLeading.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:['Other$withLeading','First$Tuple']},ps:[{nm:'element',mt:'prm',$t:'Other$withLeading'}],$cont:Tuple,tp:{Other$withLeading:{}},pa:3,an:function(){return[doc$($CCMM$,'$:Tuple:$m:withLeading'),$_native()];},d:['$','Tuple','$m','withLeading']};};tuple$.withTrailing=function($ci,$bok4ze$){var tuple$=this;return Tuple(tuple$.first,tuple$.rest.withTrailing($ci,{Other$withTrailing:$bok4ze$.Other$withTrailing}),{First$Tuple:tuple$.$$targs$$.First$Tuple,Rest$Tuple:{t:Sequence,a:{Element$Sequence:mut$([tuple$.$$targs$$.Element$Tuple,$bok4ze$.Other$withTrailing])}},Element$Tuple:mut$([tuple$.$$targs$$.Element$Tuple,$bok4ze$.Other$withTrailing])});};tuple$.withTrailing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:['First$Tuple',mkseq$({t:'u',l:['Element$Tuple','Other$withTrailing']},2)]},ps:[{nm:'element',mt:'prm',$t:'Other$withTrailing'}],$cont:Tuple,tp:{Other$withTrailing:{}},pa:3,an:function(){return[doc$($CCMM$,'$:Tuple:$m:withTrailing'),$_native()];},d:['$','Tuple','$m','withTrailing']};};tuple$.append=function($cj,$udsx4e$){var tuple$=this;return Tuple(tuple$.first,tuple$.rest.append($cj,{Other$append:$udsx4e$.Other$append}),{First$Tuple:tuple$.$$targs$$.First$Tuple,Rest$Tuple:{t:Sequential,a:{Element$Sequential:mut$([tuple$.$$targs$$.Element$Tuple,$udsx4e$.Other$append])}},Element$Tuple:mut$([tuple$.$$targs$$.Element$Tuple,$udsx4e$.Other$append])});};tuple$.append.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:['First$Tuple',mkseq$({t:'u',l:['Element$Tuple','Other$append']},1)]},ps:[{nm:'elements',mt:'prm',$t:{t:Sequential,a:{Element$Sequential:'Other$append'}}}],$cont:Tuple,tp:{Other$append:{}},pa:3,an:function(){return[doc$($CCMM$,'$:Tuple:$m:append'),$_native()];},d:['$','Tuple','$m','append']};};})(Tuple.$$.prototype);}
return Tuple;}
ex$.$init$Tuple=$init$Tuple;$init$Tuple();Tuple.inst$$=function($ck){var tuple$=new Tuple.$$;
set_type_args(tuple$,{Element$Tuple:$ck.$$targs$$.Type$Class.a.Element$Tuple,First$Tuple:$ck.$$targs$$.Type$Class.a.First$Tuple,Rest$Tuple:$ck.$$targs$$.Type$Class.a.Rest$Tuple});
set_type_args(tuple$,{Element$Sequence:tuple$.$$targs$$.Element$Tuple,Element$Sequential:tuple$.$$targs$$.Element$Tuple,Element$List:tuple$.$$targs$$.Element$Tuple,Element$Collection:tuple$.$$targs$$.Element$Tuple,Element$Iterable:tuple$.$$targs$$.Element$Tuple,Absent$Iterable:{t:Null},Element$Category:{t:$_Object},Key$Correspondence:{t:Integer},Item$Correspondence:tuple$.$$targs$$.Element$Tuple,Element$Ranged:tuple$.$$targs$$.Element$Tuple,Subrange$Ranged:{t:List,a:{Element$List:tuple$.$$targs$$.Element$Tuple}},Index$Ranged:{t:Integer}});
return tuple$;};Tuple.ser$get$=function(ref,o){var n=ref.attribute.qualifiedName;if(n==='ceylon.language::Tuple.first')return o.first_;else if(n==='ceylon.language::Tuple.rest')return o.rest_;else throw new TypeError('unknown attribute');};Tuple.ser$set$=function(ref,o,i){if(!is$(ref,{t:Member$serialization}))throw AssertionError('unexpected reachable reference');var n=ref.attribute.qualifiedName;
if(n==='ceylon.language::Tuple.first')o.first_=i;
else if(n==='ceylon.language::Tuple.rest')o.rest_=i;
else throw new TypeError('unknown attribute');};Tuple.ser$refs$=function(o){return [MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$getFirst)),MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$getRest))];};var $c8;function tpl$(elems,spread){
if (spread!==undefined) {
if (is$(spread,{t:Sequential})) {
if (spread.size===0)spread=undefined;
} else {
var e;
for (var iter=spread.iterator();(e=iter.next())!==finished();) {
elems.push(e);
}
spread=undefined;
}
}
if (elems.length===0&&(spread===undefined||spread.size===0))return empty();
var types=[];
for (var i=0; i < elems.length; i++){
var e=elems[i];
if (e===null) {
types.push({t:Null});
} else if (e===undefined) {
types.push({t:Anything});
} else if (e.getT$all && e.getT$name) {
var _et={t:e.getT$all()[e.getT$name()]};
if (e.$$targs$$)_et.a=e.$$targs$$;
types.push(_et);
} else {
console.log("Tuple: WTF do I use for the type of " + e);
types.push({t:Anything});
}
}
types={t:'T',l:types};
$init$tpl$();
var that=new tpl$.$$;
that.$$targs$$=types;
$_Object(that);
var _t=types.l.length===1?types.l[0]:{t:'u',l:types.l};
Sequence({Element$Sequence:_t},that);
elems.$$targs$$={Element$Tuple:_t,First$Tuple:types.l[0],Element$Iterable:_t,
Element$Sequential:_t,Element$List:_t,Element$Array:_t,Element$Sequence:_t,Absent$Iterable:{t:Nothing},
Element$Collection:_t,Key$Correspondence:{t:Integer},Item$Correspondence:_t};
set_type_args(that,elems.$$targs$$,Tuple);
that.$$targs$$.Element$Tuple=_t;
that.$$targs$$.First$Tuple=types.l[0];
if (spread!==undefined) {
that.$$targs$$.Rest$Tuple={t:Sequence,a:_t};
} else if (types.l.length===1) {
that.$$targs$$.Rest$Tuple={t:Empty};
} else {
that.$$targs$$.Rest$Tuple={t:'T',l:_t.l.slice(1)};
}
that.$bn_=elems[0];
that.elem$=elems;
if (spread!==undefined) {
that.sp$=spread;
}
that.t$=_t;
that.tps$=types;
return that;
}
function $init$tpl$(){
if (tpl$.$$===undefined) {
initTypeProto(tpl$,'ceylon.language::Tuple',$init$Tuple());
(function(tuple) {
tuple.getFromFirst=function(i){
if (this.sp$ && i>=this.elem$.length) {
return this.sp$.getFromFirst(i-this.elem$.length);
}
return this.elem$[i];
};
tuple.getFromFirst.$crtmm$=Tuple.$$.prototype.getFromFirst.$crtmm$;
tuple.iterator=function(){
if (this.sp$) {
return ChainedIterator($arr$(this.elem$,this.t$),this.sp$,{Element$ChainedIterator:this.tps$,Other$ChainedIterator:this.sp$.$$targs$$.Element$Sequential});
}
var i=0,e=this.elem$;
return for$iter(function(){
if (i===e.length)return finished();
var r=e[i++];
return r===undefined?null:r;
},{Element$Iterator:this.t$});
}
tuple.iterator.$crtmm$=Tuple.$$.prototype.iterator.$crtmm$;
tuple.contains=function(i) { return this.elem$.contains(i) || (this.sp$&&this.sp$.contains(i)) || false; }
tuple.contains.$crtmm$=Tuple.$$.prototype.contains.$crtmm$;
tuple.count=function(f){
var c=0;
for (var i=0;i<this.elem$.length;i++) {
if (f(this.elem$[i])) {
c++;
}
}
if (this.sp$)c+=this.sp$.count(f);
return c;
};
tuple.count.$crtmm$=Tuple.$$.prototype.count.$crtmm$;
tuple.select=function(f){
var a=[];
for (var i=0;i<this.elem$.length;i++) {
if (f(this.elem$[i])) {
a.push(this.elem$[i]);
}
}
if (this.sp$)for (i=0;i<this.sp$.size;i++) {
if (f(this.sp$.getFromFirst(i)))a.push(this.sp$.getFromFirst(i));
}
return a.$sa$(this.t$);
};
tuple.select.$crtmm$=Tuple.$$.prototype.select.$crtmm$;
tuple.$_filter=function(f){
var elems=this.elem$;
var spr=this.sp$;
return for$(function(){
var i=0;
return function(){
while (i<elems.length) {
var e=elems[i];
i++;
if (f(e))return e;
}
if (spr) {
while(i<elems.length+spr.size) {
var e=spr.getFromFirst(i-elems.length-1);
i++;
if (f(e))return e;
}
}
return finished();
};
},{Element$Iterable:this.t$,Absent$Iterable:{t:Null}});
};
tuple.$_filter.$crtmm$=Tuple.$$.prototype.$_filter.$crtmm$;
tuple.collect=function(f,$m){
var a=new Array(this.elem$.length+(this.sp$?this.sp$.size:0));
var j=0;
for (var i=0;i<this.elem$.length;i++) {
a[j++]=f(this.elem$[i]);
}
if (this.sp$)for (i=0;i<this.sp$.size;i++) {
a[j++]=f(this.sp$.getFromFirst(i));
}
return a.$sa$($m.Result$collect);
};
tuple.collect.$crtmm$=Tuple.$$.prototype.collect.$crtmm$;
tuple.$_map=function(f,$m){
var elems=this.elem$;
var spr=this.sp$;
return for$(function(){
var i=0;
return function(){
if (i<elems.length) {
i++;
return f(elems[i-1]);
}
if (spr && elems.length+spr.size>i) {
i++;
return f(spr.getFromFirst(i-elems.length-1));
}
return finished();
};
},{Element$Iterable:$m.Result$map,Absent$Iterable:{t:Null}});
};
tuple.$_map.$crtmm$=Tuple.$$.prototype.$_map.$crtmm$;
tuple.withLeading=function(a,b){
var e2 = this.elem$.slice(0); e2.unshift(a);
var t2 = this.tps$.l.slice(0); t2.unshift(b.Other$withLeading);
return tpl$(e2,this.sp$);
}
tuple.withLeading.$crtmm$=Tuple.$$.prototype.withLeading.$crtmm$;
tuple.span=function(a,b){//from,to
if (this.sp$) {
if (a>=this.elem$.length&&b>=this.elem$.length){
return this.sp$.span(a-this.elem$.length,b-this.elem$.length);
}
if (b>=this.elem$.length) {
var s1=this.elem$.slice(a);
var s2=this.sp$.spanTo(b-this.elem$.length);
return $arr$(s1,this.t$).chain(s2,
{Other$chain:this.sp$.$$targs$$.Element$Sequence,OtherAbsent$chain:{t:Nothing}}).sequence();
}
if (a>=this.elem$.length) {
var s1=this.sp$.span(a-this.elem$.length,0);
var s2=$arr$(this.elem$,this.t$).span(this.elem$.length-1,b)
return s1.chain(s2,{Other$chain:this.tps$,OtherAbsent$chain:{t:Nothing}}).sequence();
}
}
return $arr$(this.elem$,this.t$).span(a,b);
}
tuple.span.$crtmm$=Tuple.$$.prototype.span.$crtmm$;
tuple.spanTo=function(x){
if (this.sp$) {
if (x<0)return empty();
return this.span(0,x);
}
return $arr$(this.elem$,this.t$).spanTo(x);
}
tuple.spanTo.$crtmm$=Tuple.$$.prototype.spanTo.$crtmm$;
tuple.spanFrom=function(x){
if (x<=0)return this;
if (this.sp$) {
if (x>=this.elem$.length) {
return this.sp$.spanFrom(x-this.elem$.length);
} else if (x<0) {
return this;
}
return $arr$(this.elem$.slice(x),this.t$).chain(this.sp$,{Other$chain:this.sp$.$$targs$$.Element$Sequence,OtherAbsent$chain:{t:Nothing}}).sequence();
}
var r=this.elem$.slice(x);
return r.size===0?empty():tpl$(r);
}
tuple.spanFrom.$crtmm$=Tuple.$$.prototype.spanFrom.$crtmm$;
tuple.measure=function(a,b){//from,length
if(b===0)return empty();
if (this.sp$) {
if (a>=this.elem$.length) {
var m1=this.sp$.measure(a-this.elem$.length,b);
if (b>0) {
return m1;
} else {
console.log("missing tpl.measure with negative length");
}
}
if (b>0 && a+b-1>=this.elem$.length) {
var m1=$arr$(this.elem$,this.t$).measure(a,this.elem$.length-a);
var m2=this.sp$.measure(0,b-m1.size);
return m1.chain(m2,{Other$chain:this.sp$.$$targs$$.Element$Sequence,OtherAbsent$chain:{t:Nothing}}).sequence();
}
}
return $arr$(this.elem$,this.t$).measure(a,b);
}
tuple.measure.$crtmm$=Tuple.$$.prototype.measure.$crtmm$;
tuple.equals=function(o){
if (this.sp$) {
if (!is$(o,{t:Sequential}))return false;
if (!o.size===this.size)return false;
var oi=o.iterator();
var ot=this.iterator();
var ni=oi.next();
var nt=ot.next();
while (ni!==finished()) {
if (!ni.equals(nt))return false;
ni=oi.next();
nt=ot.next();
}
return true;
}
return $arr$(this.elem$,this.t$).equals(o);
}
tuple.equals.$crtmm$=List.$$.prototype.equals.$crtmm$;
tuple.withTrailing=function(a,b){
if (this.sp$) {
return tpl$(this.elem$,this.sp$.withTrailing(a,b));
}
var e2=this.elem$.slice(0);e2.push(a);
var t2=this.tps$.l.slice(0);t2.push(b.Other$withTrailing);
return tpl$(e2);
}
tuple.withTrailing.$crtmm$=Sequential.$$.prototype.withTrailing.$crtmm$;
tuple.longerThan=function(i){return this.elem$.length>i;}
tuple.longerThan.$crtmm$=Iterable.$$.prototype.longerThan.$crtmm$;
tuple.shorterThan=function(i){return this.elem$.length<i;}
tuple.shorterThan.$crtmm$=Iterable.$$.prototype.shorterThan.$crtmm$;
atr$(tuple,'hash',function(){
return $arr$(this.elem$,this.t$).hash+(this.sp$?this.sp$.hash:0);
},undefined,List.$$.prototype.$prop$getHash.$crtmm$);
atr$(tuple,'rest',function(){
return this.elem$.length===1?this.sp$||empty():tpl$(this.elem$.slice(1),this.sp$);
},undefined,Tuple.$$.prototype.$prop$getRest.$crtmm$);
atr$(tuple,'size',function(){
return this.elem$.length+(this.sp$?this.sp$.size:0);
},undefined,Tuple.$$.prototype.$prop$getSize.$crtmm$);
atr$(tuple,'lastIndex',function(){
return this.elem$.length-1+(this.sp$?this.sp$.size:0);
},undefined,Tuple.$$.prototype.$prop$getLastIndex.$crtmm$);
atr$(tuple,'last',function(){
return this.sp$?this.sp$.last:this.elem$[this.elem$.length-1];
},undefined,Tuple.$$.prototype.$prop$getLast.$crtmm$);
atr$(tuple,'string',function(){
return '['+commaList($arr$(this.elem$,this.t$))+(this.sp$?', '+commaList(this.sp$):'')+']';
},undefined,Tuple.$$.prototype.$prop$getString.$crtmm$);
tuple.nativeArray=function(){
if (this.sp$) {
var e=new Array(this.elem$.length+this.sp$.size);
for (var i=0;i<this.elem$.length;i++) {
e[i]=this.elem$[i];
}
var elem;for(var iter=this.sp$.iterator();(elem=iter.next())!==finished();) {
e[i++]=elem;
}
return e;
}
return this.elem$.slice(0);
};
tuple.append=function(e){
var na=this.nativeArray();
for (var i=0;i<e.size;i++) {
na.push(e.$_get(i));
}
return tpl$(na);
};
})(tpl$.$$.prototype);
}
}
$init$tpl$();
ex$.tpl$=tpl$;
function retpl$(t) { //receives {t:'T',l:[...]}
if (t.t!=='T')return t;
var e;
var r={t:Empty};
for (var i=t.l.length-1;i>=0;i--){
var f=retpl$(t.l[i]);
var e=(r.a&&r.a.Element$Tuple)||f;
if (r.a&&r.a.Element$Tuple){
if (e.l) {
var l2=[];for(var j=0;j<e.l.length;j++)l2.push(e.l[j]);
l2.unshift(f);
e={t:'u',l:l2};
} else {
e = {t:'u',l:[f,e]};
}
}
r={t:Tuple,a:{First$Tuple:f,Element$Tuple:e,Rest$Tuple:r}};
}
return r;
}
function detpl$(t) {
if (t.t==='T')return t;
if (t.t===Empty)return t;
if (t.t==='u') {
for (var i=0;i<t.l.length;i++) {
if (t.l[i].t==='T')return t.l[i];
}
}
function stet(args,count) {
if (t.t==='u') {
if (t.l.length!==2)return null;
var caseA=t.l[0];
var caseB=t.l[1];
if (caseA.t===Empty && caseB.t===Tuple)return stet(caseB,count);
if (caseB.t===Empty && caseA.t===Tuple)return stet(caseA,count);
return null;
}
if (args.t===Tuple) {
var first=args.a.First$Tuple;
var rest=args.a.Rest$Tuple;
var ret=stet(rest,count+1);
if (ret===null)return null;
ret[count]=first;
return ret;
}
if (args.t===Empty) {
var ret=Array(count);
for(var i=0;i<count;i++)ret[i]=null;
return ret;
}
if (args.t===Sequential || args.t===Sequence || args.t===Range) {
var ret=Array(count+1);
for (var i=0;i<count;i++)ret[i]=null;
ret[count]=args;
return ret;
}
return null;
}
var simpleResult=stet(t,0);
if (simpleResult)return {t:'T',l:simpleResult};
if (t.a && t.a.First$Tuple && t.a.Element$Tuple && t.a.Rest$Tuple) {
var result = detpl$(t.a.Rest$Tuple);
if (result.l===undefined)return result;
var arg=t.a.First$Tuple || {t:Anything};
result.l.unshift(arg);
return result;
} else if (t.a && (t.a.Element$Sequential || t.a.Element$Sequence)) {
return t.a.Element$Sequential || t.a.Element$Sequence;
}
throw new TypeError("detpl$ requires a proper Tuple {t:Tuple,a:{First$Tuple:F,Element$Tuple:E,Rest$Tuple:R}}");
}
function ElementImpl$impl(index,elementImpl$){$init$ElementImpl$impl();
if(elementImpl$===undefined)elementImpl$=new ElementImpl$impl.$$;
elementImpl$.$cl_=index;Element$serialization(elementImpl$);return elementImpl$;}
ElementImpl$impl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'index',mt:'prm',$t:{t:Integer},pa:3}],sts:[{t:Element$serialization}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.impl:ElementImpl')];},d:['ceylon.language.impl','ElementImpl']};};
ex$.ElementImpl$impl=ElementImpl$impl;function $init$ElementImpl$impl(){if(ElementImpl$impl.$$===undefined){initTypeProto(ElementImpl$impl,'ceylon.language.impl::ElementImpl',Basic,$init$Element$serialization());
(function(elementImpl$){atr$(elementImpl$,'index',function(){return this.$cl_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:ElementImpl$impl,pa:3,d:['ceylon.language.impl','ElementImpl','$at','index']};});elementImpl$.referred=function($cm){var elementImpl$=this;return reach$impl().getAnything($cm,elementImpl$);};elementImpl$.referred.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instance',mt:'prm',$t:{t:$_Object}}],$cont:ElementImpl$impl,pa:3,d:['ceylon.language.impl','ElementImpl','$m','referred']};};atr$(elementImpl$,'string',function(){var elementImpl$=this;return "Element [index=".plus(elementImpl$.index.string).plus("]")},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:ElementImpl$impl,pa:3,d:['ceylon.language.impl','ElementImpl','$at','string']};});atr$(elementImpl$,'hash',function(){var elementImpl$=this;return elementImpl$.index},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:ElementImpl$impl,pa:3,d:['ceylon.language.impl','ElementImpl','$at','hash']};});elementImpl$.equals=function($cp){var elementImpl$=this;var $cq;if(is$(($cq=$cp),{t:ElementImpl$impl})){return ((elementImpl$===$cq)||((elementImpl$.index).valueOf()==($cq.index).valueOf()));}
else{return false;}
};elementImpl$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:ElementImpl$impl,pa:3,d:['ceylon.language.impl','ElementImpl','$m','equals']};};})(ElementImpl$impl.$$.prototype);}
return ElementImpl$impl;}
ex$.$init$ElementImpl$impl=$init$ElementImpl$impl;$init$ElementImpl$impl();function MemberImpl$impl$$c(memberImpl$){Member$serialization(memberImpl$);}
function MemberImpl$impl(){return MemberImpl$impl_$c$.apply(undefined,arguments);}
function MemberImpl$impl_$c$$$a($cr,memberImpl$){var $cs;asrt$((is$(($cs=$cr),{t:ValueDeclaration$meta$declaration})),"Classes with specified methods cannot be serialized: \'is ValueDeclaration attribute\' at MemberImpl.ceylon (15:14-15:44)",'14:8-15:45','MemberImpl.ceylon');
memberImpl$.$ct_=$cs;atr$(memberImpl$,'attribute',function(){return this.$ct_;},undefined,function(){return{mod:$CCMM$,$t:{t:ValueDeclaration$meta$declaration},$cont:MemberImpl$impl,pa:3,d:['ceylon.language.impl','MemberImpl','$at','attribute']};});return memberImpl$;};function MemberImpl$impl_$c$($cr,memberImpl$){$init$MemberImpl$impl();
if(memberImpl$===undefined)memberImpl$=new MemberImpl$impl.$$;
MemberImpl$impl$$c(memberImpl$);
MemberImpl$impl_$c$$$a($cr,memberImpl$);return memberImpl$;};MemberImpl$impl_$c$.$crtmm$=function(){return{mod:$CCMM$,ps:[{nm:'attribute',mt:'prm',$t:{t:FunctionOrValueDeclaration$meta$declaration}}],$cont:MemberImpl$impl,pa:1,d:['ceylon.language.impl','MemberImpl','$cn','$def']};};MemberImpl$impl.MemberImpl$impl_$c$=MemberImpl$impl_$c$;ex$.MemberImpl$impl_$c$=MemberImpl$impl_$c$;MemberImpl$impl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'attribute',mt:'prm',$t:{t:FunctionOrValueDeclaration$meta$declaration}}],sts:[{t:Member$serialization}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.impl:MemberImpl')];},d:['ceylon.language.impl','MemberImpl']};};
ex$.MemberImpl$impl=MemberImpl$impl;function $init$MemberImpl$impl(){if(MemberImpl$impl.$$===undefined){initTypeProto(MemberImpl$impl,'ceylon.language.impl::MemberImpl',Basic,$init$Member$serialization());
(function(memberImpl$){atr$(memberImpl$,'attribute',function(){return this.$ct_;},undefined,function(){return{mod:$CCMM$,$t:{t:ValueDeclaration$meta$declaration},$cont:MemberImpl$impl,pa:3,d:['ceylon.language.impl','MemberImpl','$at','attribute']};});memberImpl$.referred=function($cu){var memberImpl$=this;return reach$impl().getAnything($cu,memberImpl$);};memberImpl$.referred.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Anything},{t:UninitializedLateValue$serialization}]},ps:[{nm:'instance',mt:'prm',$t:{t:$_Object}}],$cont:MemberImpl$impl,pa:3,d:['ceylon.language.impl','MemberImpl','$m','referred']};};atr$(memberImpl$,'string',function(){var memberImpl$=this;return "Member [attribute=".plus(memberImpl$.attribute.string).plus("]")},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:MemberImpl$impl,pa:3,d:['ceylon.language.impl','MemberImpl','$at','string']};});atr$(memberImpl$,'hash',function(){var memberImpl$=this;return memberImpl$.attribute.hash},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:MemberImpl$impl,pa:3,d:['ceylon.language.impl','MemberImpl','$at','hash']};});memberImpl$.equals=function($cx){var memberImpl$=this;var $cy;if(is$(($cy=$cx),{t:MemberImpl$impl})){return ((memberImpl$===$cy)||memberImpl$.attribute.equals($cy.attribute));}
else{return false;}
};memberImpl$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:MemberImpl$impl,pa:3,d:['ceylon.language.impl','MemberImpl','$m','equals']};};})(MemberImpl$impl.$$.prototype);}
return MemberImpl$impl;}
ex$.$init$MemberImpl$impl=$init$MemberImpl$impl;$init$MemberImpl$impl();function BaseIterable$impl($$targs$$,baseIterable$){$init$BaseIterable$impl();
if(baseIterable$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language.impl::BaseIterable"),'?','?')
set_type_args(baseIterable$,$$targs$$);
$_Object(baseIterable$);Iterable({Absent$Iterable:$$targs$$.Absent$BaseIterable/*ORALE!Absent inv pero Absent var*/,Element$Iterable:$$targs$$.Element$BaseIterable/*ORALE!Element inv pero Element var*/},baseIterable$);return baseIterable$;}
BaseIterable$impl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],tp:{Element$BaseIterable:{},Absent$BaseIterable:{sts:[{t:Null}]}},sts:[{t:Iterable,a:{Absent$Iterable:'Absent$BaseIterable',Element$Iterable:'Element$BaseIterable'}}],pa:257,d:['ceylon.language.impl','BaseIterable']};};
ex$.BaseIterable$impl=BaseIterable$impl;function $init$BaseIterable$impl(){if(BaseIterable$impl.$$===undefined){initTypeProto(BaseIterable$impl,'ceylon.language.impl::BaseIterable',$init$$_Object(),$init$Iterable());
}
return BaseIterable$impl;}
ex$.$init$BaseIterable$impl=$init$BaseIterable$impl;$init$BaseIterable$impl();function BaseIterator$impl($$targs$$,baseIterator$){$init$BaseIterator$impl();
if(baseIterator$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language.impl::BaseIterator"),'?','?')
set_type_args(baseIterator$,$$targs$$);
$_Object(baseIterator$);Iterator({Element$Iterator:$$targs$$.Element$BaseIterator/*ORALE!Element inv pero Element var*/},baseIterator$);return baseIterator$;}
BaseIterator$impl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],tp:{Element$BaseIterator:{}},sts:[{t:Iterator,a:{Element$Iterator:'Element$BaseIterator'}}],pa:257,d:['ceylon.language.impl','BaseIterator']};};
ex$.BaseIterator$impl=BaseIterator$impl;function $init$BaseIterator$impl(){if(BaseIterator$impl.$$===undefined){initTypeProto(BaseIterator$impl,'ceylon.language.impl::BaseIterator',$init$$_Object(),$init$Iterator());
}
return BaseIterator$impl;}
ex$.$init$BaseIterator$impl=$init$BaseIterator$impl;$init$BaseIterator$impl();function BaseMap$impl($$targs$$,baseMap$){$init$BaseMap$impl();
if(baseMap$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language.impl::BaseMap"),'?','?')
set_type_args(baseMap$,$$targs$$);
$_Object(baseMap$);Map({Key$Map:$$targs$$.Key$BaseMap/*ORALE!Key inv pero Key var*/,Item$Map:$$targs$$.Item$BaseMap/*ORALE!Item inv pero Item var*/},baseMap$);return baseMap$;}
BaseMap$impl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],tp:{Key$BaseMap:{sts:[{t:$_Object}]},Item$BaseMap:{}},sts:[{t:Map,a:{Key$Map:'Key$BaseMap',Item$Map:'Item$BaseMap'}}],pa:257,d:['ceylon.language.impl','BaseMap']};};
ex$.BaseMap$impl=BaseMap$impl;function $init$BaseMap$impl(){if(BaseMap$impl.$$===undefined){initTypeProto(BaseMap$impl,'ceylon.language.impl::BaseMap',$init$$_Object(),$init$Map());
}
return BaseMap$impl;}
ex$.$init$BaseMap$impl=$init$BaseMap$impl;$init$BaseMap$impl();function BaseList$impl($$targs$$,baseList$){$init$BaseList$impl();
if(baseList$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language.impl::BaseList"),'?','?')
set_type_args(baseList$,$$targs$$);
$_Object(baseList$);SearchableList({Element$SearchableList:$$targs$$.Element$BaseList},baseList$);return baseList$;}
BaseList$impl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],tp:{Element$BaseList:{}},sts:[{t:SearchableList,a:{Element$SearchableList:'Element$BaseList'}}],pa:2305,d:['ceylon.language.impl','BaseList']};};
ex$.BaseList$impl=BaseList$impl;function $init$BaseList$impl(){if(BaseList$impl.$$===undefined){initTypeProto(BaseList$impl,'ceylon.language.impl::BaseList',$init$$_Object(),$init$SearchableList());
(function(baseList$){})(BaseList$impl.$$.prototype);}
return BaseList$impl;}
ex$.$init$BaseList$impl=$init$BaseList$impl;$init$BaseList$impl();BaseList$impl.inst$$=function($cz){var baseList$=new BaseList$impl.$$;
set_type_args(baseList$,{Element$BaseList:$cz.$$targs$$.Type$Class.a.Element$BaseList});
set_type_args(baseList$,{Element$SearchableList:baseList$.$$targs$$.Element$BaseList,Element$List:baseList$.$$targs$$.Element$BaseList,Element$Collection:baseList$.$$targs$$.Element$BaseList,Element$Iterable:baseList$.$$targs$$.Element$BaseList,Absent$Iterable:{t:Null},Element$Category:{t:$_Object},Key$Correspondence:{t:Integer},Item$Correspondence:baseList$.$$targs$$.Element$BaseList,Element$Ranged:baseList$.$$targs$$.Element$BaseList,Subrange$Ranged:{t:List,a:{Element$List:baseList$.$$targs$$.Element$BaseList/*ORALE!Element inv pero Element var*/}},Index$Ranged:{t:Integer}});
return baseList$;};BaseList$impl.ser$get$=function(ref,o){throw new TypeError('unknown attribute');};BaseList$impl.ser$set$=function(ref,o,i){if(!is$(ref,{t:Member$serialization}))throw AssertionError('unexpected reachable reference');
throw new TypeError('unknown attribute');};BaseList$impl.ser$refs$=function(o){return [];};function BaseCharacterList$impl(baseCharacterList$){$init$BaseCharacterList$impl();
if(baseCharacterList$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language.impl::BaseCharacterList"),'?','?')
baseCharacterList$.$$targs$$={Element$SearchableList:{t:Character}};$_Object(baseCharacterList$);SearchableList({Element$SearchableList:{t:Character}},baseCharacterList$);return baseCharacterList$;}
BaseCharacterList$impl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],sts:[{t:SearchableList,a:{Element$SearchableList:{t:Character}}}],pa:257,d:['ceylon.language.impl','BaseCharacterList']};};
ex$.BaseCharacterList$impl=BaseCharacterList$impl;function $init$BaseCharacterList$impl(){if(BaseCharacterList$impl.$$===undefined){initTypeProto(BaseCharacterList$impl,'ceylon.language.impl::BaseCharacterList',$init$$_Object(),$init$SearchableList());
}
return BaseCharacterList$impl;}
ex$.$init$BaseCharacterList$impl=$init$BaseCharacterList$impl;$init$BaseCharacterList$impl();function BaseSequence$impl($$targs$$,baseSequence$){$init$BaseSequence$impl();
if(baseSequence$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language.impl::BaseSequence"),'?','?')
set_type_args(baseSequence$,$$targs$$);
$_Object(baseSequence$);Sequence({Element$Sequence:$$targs$$.Element$BaseSequence/*ORALE!Element inv pero Element var*/},baseSequence$);return baseSequence$;}
BaseSequence$impl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],tp:{Element$BaseSequence:{}},sts:[{t:Sequence,a:{Element$Sequence:'Element$BaseSequence'}}],pa:2305,d:['ceylon.language.impl','BaseSequence']};};
ex$.BaseSequence$impl=BaseSequence$impl;function $init$BaseSequence$impl(){if(BaseSequence$impl.$$===undefined){initTypeProto(BaseSequence$impl,'ceylon.language.impl::BaseSequence',$init$$_Object(),$init$Sequence());
(function(baseSequence$){})(BaseSequence$impl.$$.prototype);}
return BaseSequence$impl;}
ex$.$init$BaseSequence$impl=$init$BaseSequence$impl;$init$BaseSequence$impl();BaseSequence$impl.inst$$=function($d0){var baseSequence$=new BaseSequence$impl.$$;
set_type_args(baseSequence$,{Element$BaseSequence:$d0.$$targs$$.Type$Class.a.Element$BaseSequence});
set_type_args(baseSequence$,{Element$Sequence:baseSequence$.$$targs$$.Element$BaseSequence,Element$Sequential:baseSequence$.$$targs$$.Element$BaseSequence,Element$List:baseSequence$.$$targs$$.Element$BaseSequence,Element$Collection:baseSequence$.$$targs$$.Element$BaseSequence,Element$Iterable:baseSequence$.$$targs$$.Element$BaseSequence,Absent$Iterable:{t:Null},Element$Category:{t:$_Object},Key$Correspondence:{t:Integer},Item$Correspondence:baseSequence$.$$targs$$.Element$BaseSequence,Element$Ranged:baseSequence$.$$targs$$.Element$BaseSequence,Subrange$Ranged:{t:List,a:{Element$List:baseSequence$.$$targs$$.Element$BaseSequence/*ORALE!Element inv pero Element var*/}},Index$Ranged:{t:Integer}});
return baseSequence$;};BaseSequence$impl.ser$get$=function(ref,o){throw new TypeError('unknown attribute');};BaseSequence$impl.ser$set$=function(ref,o,i){if(!is$(ref,{t:Member$serialization}))throw AssertionError('unexpected reachable reference');
throw new TypeError('unknown attribute');};BaseSequence$impl.ser$refs$=function(o){return [];};function $d1$impl(){var outerImpl$=new $d1$impl.$$;Outer$serialization(outerImpl$);outerImpl$.$prop$getString={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$d1$impl,pa:3,d:['ceylon.language.impl','outerImpl','$at','string']};}};outerImpl$.$prop$getString.get=function(){return string};return outerImpl$;};$d1$impl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},sts:[{t:Outer$serialization}],d:['ceylon.language.impl','outerImpl']};};function $init$outerImpl$impl(){if($d1$impl.$$===undefined){initTypeProto($d1$impl,'ceylon.language.impl::outerImpl',Basic,$init$Outer$serialization());
(function(outerImpl$){outerImpl$.referred=function($d3){var outerImpl$=this;return reach$impl().getObject($d3,outerImpl$);};outerImpl$.referred.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Object},ps:[{nm:'instance',mt:'prm',$t:{t:$_Object}}],$cont:$d1$impl,pa:3,an:function(){return[doc$($CCMM$,'ceylon.language.impl:outerImpl:$m:referred')];},d:['ceylon.language.impl','outerImpl','$m','referred']};};atr$(outerImpl$,'string',function(){return "Outer"},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$d1$impl,pa:3,d:['ceylon.language.impl','outerImpl','$at','string']};});})($d1$impl.$$.prototype);}
return $d1$impl;}
ex$.$init$outerImpl$impl=$init$outerImpl$impl;$init$outerImpl$impl();var $d5;function outerImpl$impl(){if($d5===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'outerImpl\' before it was set"),'5:0-14:0','outerImpl.ceylon');if($d5===undefined){$d5=INIT$;$d5=$init$outerImpl$impl()();$d5.$crtmm$=outerImpl$impl.$crtmm$;}
return $d5;}
ex$.outerImpl$impl=outerImpl$impl;outerImpl$impl.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$outerImpl$impl()},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.impl:outerImpl')];},d:['ceylon.language.impl','outerImpl']};};$prop$getOuterImpl$impl=outerImpl$impl;ex$.$prop$getOuterImpl$impl=$prop$getOuterImpl$impl;ex$.$pkg$ans$ceylon$language$impl=function(){return[doc$($CCMM$,'ceylon.language.impl','$pkg-anns'),by(["Stephane Epardaud"].$sa$({t:$_String}))];};function $d6$impl(){var reach$=new $d6$impl.$$;return reach$;};$d6$impl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},d:['ceylon.language.impl','reach']};};function $init$reach$impl(){if($d6$impl.$$===undefined){initTypeProto($d6$impl,'ceylon.language.impl::reach',Basic);
(function(reach$){reach$.references=function references(o) {
var isarr=is$(o,{t:$_Array});
var idx1=-1,idx2=0;
var refs = o.getT$all()[o.getT$name()].ser$refs$(o);
return for$iter(function(){
idx1++;
if (refs.length>idx1) {
return refs[idx1];
} else if (isarr && idx2<o.size) {
var r=ElementImpl$impl(idx2);
idx2++;
return r;
}
return finished();
},{Element$Iterator:{t:ReachableReference$serialization}});
}
reach$.references.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:ReachableReference$serialization}}},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}}],$cont:$d6$impl,pa:1,an:function(){return[$_native()];},d:['ceylon.language.impl','reach','$m','references']};};reach$.getAnything=function getAnything(o,ref) {
return o.getT$all()[o.getT$name()].ser$get$(ref,o);
}
reach$.getAnything.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}},{nm:'ref',mt:'prm',$t:{t:ReachableReference$serialization}}],$cont:$d6$impl,pa:1,an:function(){return[$_native()];},d:['ceylon.language.impl','reach','$m','getAnything']};};reach$.getObject=function getObject(o,ref) {
return o.getT$all()[o.getT$name()].ser$get$(ref,o);
}
reach$.getObject.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Object},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}},{nm:'ref',mt:'prm',$t:{t:ReachableReference$serialization}}],$cont:$d6$impl,pa:1,an:function(){return[$_native()];},d:['ceylon.language.impl','reach','$m','getObject']};};atr$(reach$,'string',function(){var reach$=this;return "reach";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$d6$impl,pa:3,d:['ceylon.language.impl','reach','$at','string']};});})($d6$impl.$$.prototype);}
return $d6$impl;}
ex$.$init$reach$impl=$init$reach$impl;$init$reach$impl();var $d8;function reach$impl(){if($d8===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'reach\' before it was set"),'3:0-10:0','reach.ceylon');if($d8===undefined){$d8=INIT$;$d8=$init$reach$impl()();$d8.$crtmm$=reach$impl.$crtmm$;}
return $d8;}
ex$.reach$impl=reach$impl;reach$impl.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$reach$impl()},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.impl:reach'),$_native()];},d:['ceylon.language.impl','reach']};};$prop$getReach$impl=reach$impl;ex$.$prop$getReach$impl=$prop$getReach$impl;function rethrow$impl($d9){throw wrapexc($d9,'5:4-5:11','ceylon/language/impl/rethrow.ceylon');}
ex$.rethrow$impl=rethrow$impl;rethrow$impl.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'x',mt:'prm',$t:{t:Throwable}}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.impl:rethrow'),by(["Stephane Epardaud"].$sa$({t:$_String}))];},d:['ceylon.language.impl','rethrow']};};
function Numeric($$targs$$,numeric$){set_type_args(numeric$,$$targs$$,Numeric);Invertible({Other$Invertible:$$targs$$.Other$Numeric},numeric$);}
Numeric.$crtmm$=function(){return{mod:$CCMM$,tp:{Other$Numeric:{sts:[{t:Numeric,a:{Other$Numeric:'Other$Numeric'}}]}},sts:[{t:Invertible,a:{Other$Invertible:'Other$Numeric'}}],of:['Other$Numeric'],pa:1,an:function(){return[doc$($CCMM$,'$:Numeric'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),$_Number)].$sa$({t:InterfaceDeclaration$meta$declaration})),by(["Gavin"].$sa$({t:$_String})),tagged(["Numbers"].$sa$({t:$_String}))];},d:['$','Numeric']};};
ex$.Numeric=Numeric;function $init$Numeric(){if(Numeric.$$===undefined){initTypeProtoI(Numeric,'ceylon.language::Numeric',$init$Invertible());
(function(numeric$){numeric$.times={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Numeric',ps:[{nm:'other',mt:'prm',$t:'Other$Numeric'}],$cont:Numeric,pa:5,an:function(){return[doc$($CCMM$,'$:Numeric:$m:times')];},d:['$','Numeric','$m','times']};}};numeric$.divided={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Numeric',ps:[{nm:'other',mt:'prm',$t:'Other$Numeric'}],$cont:Numeric,pa:5,an:function(){return[doc$($CCMM$,'$:Numeric:$m:divided'),see("Integral.remainder","infinity")];},d:['$','Numeric','$m','divided']};}};})(Numeric.$$.prototype);}
return Numeric;}
ex$.$init$Numeric=$init$Numeric;$init$Numeric();function Integral($$targs$$,integral$){set_type_args(integral$,$$targs$$,Integral);$_Number({Other$Number:$$targs$$.Other$Integral},integral$);Enumerable({Other$Enumerable:$$targs$$.Other$Integral},integral$);}
Integral.$crtmm$=function(){return{mod:$CCMM$,tp:{Other$Integral:{sts:[{t:Integral,a:{Other$Integral:'Other$Integral'}}]}},sts:[{t:$_Number,a:{Other$Number:'Other$Integral'}},{t:Enumerable,a:{Other$Enumerable:'Other$Integral'}}],of:['Other$Integral'],pa:1,an:function(){return[doc$($CCMM$,'$:Integral'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Integer)].$sa$({t:ClassWithInitializerDeclaration$meta$declaration})),by(["Gavin"].$sa$({t:$_String})),tagged(["Numbers"].$sa$({t:$_String}))];},d:['$','Integral']};};
ex$.Integral=Integral;function $init$Integral(){if(Integral.$$===undefined){initTypeProtoI(Integral,'ceylon.language::Integral',$init$$_Number(),$init$Enumerable());
(function(integral$){integral$.remainder={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Integral',ps:[{nm:'other',mt:'prm',$t:'Other$Integral'}],$cont:Integral,pa:5,an:function(){return[doc$($CCMM$,'$:Integral:$m:remainder'),see("Numeric.divided","modulo")];},d:['$','Integral','$m','remainder']};}};integral$.modulo=function($da){var integral$=this;if(!$da.positive){throw wrapexc(AssertionError("modulus must be positive: ".plus($da.string)),'54:12-54:73','ceylon/language/Integral.ceylon');}
var $db=integral$.remainder($da);if($db.negative){return $db.plus($da);}
return $db;};integral$.modulo.$crtmm$=function(){return{mod:$CCMM$,$t:'Other$Integral',ps:[{nm:'modulus',mt:'prm',$t:'Other$Integral'}],$cont:Integral,pa:9,an:function(){return[doc$($CCMM$,'$:Integral:$m:modulo'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Numeric().$$.prototype.divided),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Integral().$$.prototype.remainder)].$sa$({t:FunctionDeclaration$meta$declaration})),$_throws($init$openClass$jsint()(lmp$(ex$,'$'),AssertionError),"If the modulus is not strictly positive")];},d:['$','Integral','$m','modulo']};};integral$.$prop$getZero={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Integral,pa:5,an:function(){return[doc$($CCMM$,'$:Integral:$at:zero')];},d:['$','Integral','$at','zero']};}};integral$.$prop$getUnit={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Integral,pa:5,an:function(){return[doc$($CCMM$,'$:Integral:$at:unit')];},d:['$','Integral','$at','unit']};}};integral$.divides=function($dc){var integral$=this;return $dc.remainder(integral$).zero;};integral$.divides.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:'Other$Integral'}],$cont:Integral,pa:9,an:function(){return[doc$($CCMM$,'$:Integral:$m:divides')];},d:['$','Integral','$m','divides']};};})(Integral.$$.prototype);}
return Integral;}
ex$.$init$Integral=$init$Integral;$init$Integral();function Scalable($$targs$$,scalable$){set_type_args(scalable$,$$targs$$,Scalable);}
Scalable.$crtmm$=function(){return{mod:$CCMM$,tp:{Scale$Scalable:{dv:'in',sts:[{t:Numeric,a:{Other$Numeric:'Scale$Scalable'}}]},Value$Scalable:{dv:'out',sts:[{t:Scalable,a:{Scale$Scalable:'Scale$Scalable',Value$Scalable:'Value$Scalable'}}]}},of:['Value$Scalable'],pa:1,an:function(){return[doc$($CCMM$,'$:Scalable'),by(["Gavin"].$sa$({t:$_String})),tagged(["Numbers"].$sa$({t:$_String}))];},d:['$','Scalable']};};
ex$.Scalable=Scalable;function $init$Scalable(){if(Scalable.$$===undefined){initTypeProtoI(Scalable,'ceylon.language::Scalable');
(function(scalable$){scalable$.scale={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Value$Scalable',ps:[{nm:'scalar',mt:'prm',$t:'Scale$Scalable'}],$cont:Scalable,pa:5,an:function(){return[doc$($CCMM$,'$:Scalable:$m:scale')];},d:['$','Scalable','$m','scale']};}};})(Scalable.$$.prototype);}
return Scalable;}
ex$.$init$Scalable=$init$Scalable;$init$Scalable();function $_Number($$targs$$,number$){set_type_args(number$,$$targs$$,$_Number);Numeric({Other$Numeric:$$targs$$.Other$Number},number$);Comparable({Other$Comparable:$$targs$$.Other$Number/*ORALE!Other inv pero Other var*/},number$);}
$_Number.$crtmm$=function(){return{mod:$CCMM$,tp:{Other$Number:{sts:[{t:$_Number,a:{Other$Number:'Other$Number'}}]}},sts:[{t:Numeric,a:{Other$Numeric:'Other$Number'}},{t:Comparable,a:{Other$Comparable:'Other$Number'}}],of:['Other$Number'],pa:1,an:function(){return[doc$($CCMM$,'$:Number'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Integer),$init$openClass$jsint()(lmp$(ex$,'$'),Float)].$sa$({t:ClassWithInitializerDeclaration$meta$declaration})),by(["Gavin"].$sa$({t:$_String})),tagged(["Numbers"].$sa$({t:$_String}))];},d:['$','Number']};};
ex$.$_Number=$_Number;function $init$$_Number(){if($_Number.$$===undefined){initTypeProtoI($_Number,'ceylon.language::Number',$init$Numeric(),$init$Comparable());
(function(number$){atr$(number$,'magnitude',function(){var number$=this;return ($dd=(number$.negative?number$.negated:null),nn$($dd)?$dd:number$)},undefined,function(){return{mod:$CCMM$,$t:'Other$Number',$cont:$_Number,pa:9,an:function(){return[doc$($CCMM$,'$:Number:$at:magnitude'),aliased(["absolute"].$sa$({t:$_String}))];},d:['$','Number','$at','magnitude']};});atr$(number$,'sign',function(){var number$=this;if(number$.positive){return 1;}
else{if(number$.negative){return (-1);}
else{return 0;}
}
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$_Number,pa:9,an:function(){return[doc$($CCMM$,'$:Number:$at:sign')];},d:['$','Number','$at','sign']};});number$.$prop$getPositive={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$_Number,pa:5,an:function(){return[doc$($CCMM$,'$:Number:$at:positive')];},d:['$','Number','$at','positive']};}};number$.$prop$getNegative={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$_Number,pa:5,an:function(){return[doc$($CCMM$,'$:Number:$at:negative')];},d:['$','Number','$at','negative']};}};number$.$prop$getFractionalPart={$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Number',$cont:$_Number,pa:5,an:function(){return[doc$($CCMM$,'$:Number:$at:fractionalPart')];},d:['$','Number','$at','fractionalPart']};}};number$.$prop$getWholePart={$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Number',$cont:$_Number,pa:5,an:function(){return[doc$($CCMM$,'$:Number:$at:wholePart')];},d:['$','Number','$at','wholePart']};}};number$.timesInteger={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Number',ps:[{nm:'integer',mt:'prm',$t:{t:Integer}}],$cont:$_Number,pa:5,an:function(){return[doc$($CCMM$,'$:Number:$m:timesInteger')];},d:['$','Number','$m','timesInteger']};}};number$.plusInteger={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Number',ps:[{nm:'integer',mt:'prm',$t:{t:Integer}}],$cont:$_Number,pa:5,an:function(){return[doc$($CCMM$,'$:Number:$m:plusInteger')];},d:['$','Number','$m','plusInteger']};}};number$.powerOfInteger={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Number',ps:[{nm:'integer',mt:'prm',$t:{t:Integer}}],$cont:$_Number,pa:5,an:function(){return[doc$($CCMM$,'$:Number:$m:powerOfInteger'),$_throws("AssertionError","if the exponent is a negative power and this is \nan integral numeric type")];},d:['$','Number','$m','powerOfInteger']};}};})($_Number.$$.prototype);}
return $_Number;}
ex$.$init$$_Number=$init$$_Number;$init$$_Number();var $dd;function toInt(f) {
return (f >= 0) ? Math.floor(f) : Math.ceil(f);
}
function nflt$(n) {
if (n.float$)return true;
return Math.round(n)!=n;
}
function JSNumber(value) {
if (value===parseInt(value)) {
return Integer(value);
}
return Float(value);
}
initExistingType(JSNumber, Number, 'ceylon.language::JSNumber');
JSNumber.$crtmm$=function(){return{nm:'JSNumber',mt:'c',pa:1,
mod:$CCMM$,d:['$','Number']};}
ex$.JSNumber=JSNumber;
var origNumToString = Number.prototype.toString;
inheritProto(JSNumber, $_Object, $_Number, $init$Integral(), $init$Exponentiable());
function Integer(value) {
if (value && value.getT$name && value.getT$name() === 'ceylon.language::Integer') {
return value;
}
var that=Number(value);
that.float$=false;
return that;
}
initTypeProto(Integer, 'ceylon.language::Integer', $_Object,$_Number, JSNumber,
$init$Integral(), $init$Exponentiable(), $init$Binary());
Integer.$crtmm$=function(){return{an:function(){return[shared(),$_native(),$_final()];},mod:$CCMM$,d:['$','Integer']};}
atr$(Integer.$$.prototype,'integer',function(){ return this; },undefined,
function(){return {mod:$CCMM$,$t:{t:Integer},pa:0,$cont:Integer,d:['$','Integer','$at','integer$woput0']};});
function Float(value) {
if (value!==null && value!==undefined && value.getT$name && value.getT$name() === 'ceylon.language::Float') {
return value;
}
var that = new Number(value);
that.float$ = true;
return that;
}
initTypeProto(Float, 'ceylon.language::Float', $_Object,$_Number,$init$Exponentiable(), JSNumber);
Float.$crtmm$=function(){return{pa:97,mod:$CCMM$,d:['$','Float']};}
atr$(Float.$$.prototype,'integer',function(){ return Integer(Math.floor(this)); },undefined,
function(){return {mod:$CCMM$,$t:{t:Integer},pa:65,$cont:Float,d:['$','Float','$at','integer']};});
var JSNum$proto = Number.prototype;
JSNum$proto.getT$all = function() {
return (nflt$(this) ? Float : Integer).$$.T$all;
}
JSNum$proto.getT$name = function() {
return (nflt$(this) ? Float : Integer).$$.T$name;
}
function $specialiseForNumber$(tipo,name,rtmm){
var propname = '$prop$get'+name[0].toUpperCase()+name.substring(1);
if(JSNum$proto[propname]){
var prop = JSNum$proto[propname];
Object.defineProperty(tipo.$$.prototype, name, {get: prop.get, set: prop.set, configurable: true, enumerable: true});
tipo.$$.prototype[propname] = {get: prop.get, set: prop.set, $crtmm$:rtmm};
tipo.$$.prototype[propname].$crtmm$ = rtmm;
}else{
tipo.$$.prototype[name] = function(){ return JSNum$proto[name].call(this, arguments); };
tipo.$$.prototype[name].$crtmm$ = rtmm;
}
}
var mock$flt={},mock$int={};
$_Number({Other$Number:{t:Float}},mock$flt);
$_Number({Other$Number:{t:Integer}},mock$int);
atr$(JSNum$proto,'$$targs$$',function(){
if (!this.$targs$)this.$targs$=(nflt$(this)?mock$flt:mock$int).$$targs$$;
return this.$targs$;
});
JSNum$proto.toString = origNumToString;
atr$(JSNum$proto, 'string', function(){
if (this.fmz$)return "-0.0";
var s=this.toString();
if (s.indexOf('.')<0 && nflt$(this)
&& this != Infinity
&& this != -Infinity
&& !isNaN(this))
s+='.0';
return s;
},undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:$_Object,d:['$','Object','$at','string']};});
$specialiseForNumber$(Integer, 'string', function(){return {mod:$CCMM$,$t:{t:$_String},pa:67,$cont:Integer,d:['$','Integer','$at','string']};})
$specialiseForNumber$(Float, 'string', function(){return {mod:$CCMM$,$t:{t:$_String},pa:67,$cont:Float,d:['$','Float','$at','string']};})
function $addnm$(nm,s) {
var t={t:JSNumber};
if (s===undefined)s=$_Number.$$.prototype[nm];
var d=JSNum$proto[nm];
d.$crtmm$=getrtmm$$(s);
d=d.$crtmm$;
if (typeof(d.$t)==='string')d.$t=t;
if (d.ps) for (var i=0; i < d.ps.length; i++) {
if (typeof(d.ps[i].$t)==='string')d.ps[i].$t=t;
}
}
JSNum$proto.plus = function(other) {
if (typeof(other)!=='number'&&other.constructor!==Number)throw new TypeError("Number expected");
return (nflt$(this)||nflt$(other)) ? Float(this+other) : (this+other);
}
$addnm$('plus');
$specialiseForNumber$(Integer, 'plus', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','plus']};})
$specialiseForNumber$(Float, 'plus', function(){return {mod:$CCMM$,$t:{t:Float},pa:67,$cont:Float,ps:[{$t:{t:Float},nm:'other'}],d:['$','Float','$m','plus']};})
JSNum$proto.plusInteger = function(other) {
return nflt$(this) ? Float(this+other) : (this+other);
}
$addnm$('plusInteger');
$specialiseForNumber$(Integer, 'plusInteger', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'integer'}],d:['$','Integer','$m','plusInteger']};})
$specialiseForNumber$(Float, 'plusInteger', function(){return {mod:$CCMM$,$t:{t:Float},pa:67,$cont:Float,ps:[{$t:{t:Integer},nm:'integer'}],d:['$','Float','$m','plusInteger']};})
JSNum$proto.minus = function(other) {
if (typeof(other)!=='number'&&other.constructor!==Number)throw new TypeError("Number expected");
return (nflt$(this)||nflt$(other)) ? Float(this-other) : (this-other);
}
$addnm$('minus');
$specialiseForNumber$(Integer, 'minus', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','minus']};})
$specialiseForNumber$(Float, 'minus', function(){return {mod:$CCMM$,$t:{t:Float},pa:67,$cont:Float,ps:[{$t:{t:Float},nm:'other'}],d:['$','Float','$m','minus']};})
JSNum$proto.times = function(other) {
if (typeof(other)!=='number'&&other.constructor!==Number)throw new TypeError("Number expected");
if (this.fmz$)return other.negative?Float(0.0):this;
var fls=nflt$(this)||nflt$(other);
if (fls && this.valueOf()==0 && other.negative) {
var f=Float(0.0);f.fmz$=true;
return f;
}
return fls ? Float(this*other) : (this*other);
}
$addnm$('times');
$specialiseForNumber$(Integer, 'times', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','times']};})
$specialiseForNumber$(Float, 'times', function(){return {mod:$CCMM$,$t:{t:Float},pa:67,$cont:Float,ps:[{$t:{t:Float},nm:'other'}],d:['$','Float','$m','times']};})
JSNum$proto.timesInteger = function(other) {
return nflt$(this) ? Float(this*other) : (this*other);
}
$addnm$('timesInteger');
$specialiseForNumber$(Integer, 'timesInteger', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'integer'}],d:['$','Integer','$m','timesInteger']};})
$specialiseForNumber$(Float, 'timesInteger', function(){return {mod:$CCMM$,$t:{t:Float},pa:67,$cont:Float,ps:[{$t:{t:Integer},nm:'integer'}],d:['$','Float','$m','timesInteger']};})
JSNum$proto.divided=function(other) {
if (typeof(other)!=='number'&&other.constructor!==Number)throw new TypeError("Number expected");
if (this.fmz$) {
if (other == 0 || other.$_undefined) {
return NaN;
}
return this;
}
var otherFloat=nflt$(other);
if (nflt$(this)||otherFloat) {
var ret = Float(this/other);
if((!this.negative && other.fmz$ && !ret.negative)
||(!otherFloat&&ret==-Infinity&&!this.negative)){ ret = ret.negated; }
return ret;
}
if (other == 0) {
throw Exception("Division by Zero");
}
return toInt(this/other);
}
$addnm$('divided');
$specialiseForNumber$(Integer, 'divided', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','divided']};})
$specialiseForNumber$(Float, 'divided', function(){return {mod:$CCMM$,$t:{t:Float},pa:67,$cont:Float,ps:[{$t:{t:Float},nm:'other'}],d:['$','Float','$m','divided']};})
JSNum$proto.remainder = function(other) {
if (other == 0) {
throw Exception("Division by Zero");
}
if (typeof(other)!=='number'&&other.constructor!==Number)throw new TypeError("Number expected");
return this%other;
}
$addnm$('remainder',Integral.$$.prototype.remainder);
$specialiseForNumber$(Integer, 'remainder', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','remainder']};})
JSNum$proto.modulo = function(modulus) {
if (typeof(modulus)!=='number'&&modulus.constructor!==Number)throw new TypeError("Number expected");
if (modulus < 0) {
throw AssertionError("modulus must be positive: "+modulus);
}
var ret = this.remainder(modulus);
if(ret < 0){
return ret + modulus;
}
return ret;
}
$addnm$('modulo',Integral.$$.prototype.modulo);
$specialiseForNumber$(Integer, 'modulo', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','modulo']};})
JSNum$proto.divides=function(o){return o%this===0;}
$specialiseForNumber$(Integer, 'divides', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','divides']};})
JSNum$proto.power = function(exp) {
if (typeof(exp)!=='number'&&exp.constructor!==Number)throw new TypeError("Number expected");
if (nflt$(this)||nflt$(exp)) {
if(this == 1.0)
return this;
if(this == -1.0 && (exp == Infinity || exp == -Infinity))
return Float(1.0);
var ret = Float(Math.pow(this, exp));
if(this == 0.0 && this.fmz$ && exp.fractionalPart == 0 && !exp.wholePart.even)
ret = ret.negated;
return ret;
}
if (exp<0 && this!=1 && this!=-1) {
throw AssertionError("Negative exponent");
}
return toInt(Math.pow(this, exp));
}
$addnm$('power',Exponentiable.$$.prototype.power);
$specialiseForNumber$(Integer, 'power', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','power']};})
$specialiseForNumber$(Float, 'power', function(){return {mod:$CCMM$,$t:{t:Float},pa:67,$cont:Float,ps:[{$t:{t:Float},nm:'other'}],d:['$','Float','$m','power']};})
JSNum$proto.powerOfInteger = function(exp) {
if (nflt$(this)) {
if(this == 1.0)
return this;
var ret = Float(Math.pow(this, exp));
if(this == 0.0 && this.fmz$ && exp.fractionalPart == 0 && !exp.wholePart.even)
ret = ret.negated;
return ret;
}
if (exp<0 && this!=1 && this!=-1) {
throw AssertionError("Negative exponent");
}
return toInt(Math.pow(this, exp));
}
$addnm$('powerOfInteger');
$specialiseForNumber$(Integer, 'powerOfInteger', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'integer'}],d:['$','Integer','$m','powerOfInteger']};})
$specialiseForNumber$(Float, 'powerOfInteger', function(){return {mod:$CCMM$,$t:{t:Float},pa:67,$cont:Float,ps:[{$t:{t:Integer},nm:'integer'}],d:['$','Float','$m','powerOfInteger']};})
atr$(JSNum$proto, 'negated', function() {
if (this.valueOf()==0 && this.float$) {
var f=Float(0.0);
if (!this.fmz$)f.fmz$=true;
return f;
}
return nflt$(this) ? Float(-this) : -this;
},undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:Invertible,d:['$','Invertible','$at','negated']};});
$specialiseForNumber$(Integer, 'negated', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,d:['$','Integer','$at','negated']};})
$specialiseForNumber$(Float, 'negated', function(){return {mod:$CCMM$,$t:{t:Float},pa:67,$cont:Float,d:['$','Float','$at','negated']};})
atr$(JSNum$proto, 'negative', function(){
return nflt$(this) ? this < 0.0 || this == -Infinity : this.valueOf() < 0;
},undefined,function(){return{$t:{t:$_Boolean},an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:$_Number,d:['$','Number','$at','negative']};});
$specialiseForNumber$(Integer, 'negative', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Integer,d:['$','Integer','$at','negative']};})
$specialiseForNumber$(Float, 'negative', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Float,d:['$','Float','$at','negative']};})
atr$(JSNum$proto, 'positive', function(){
return nflt$(this) ? this > 0.0 : this.valueOf() > 0;
},undefined,function(){return{$t:{t:$_Boolean},an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:$_Number,d:['$','Number','$at','positive']};});
$specialiseForNumber$(Integer, 'positive', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Integer,d:['$','Integer','$at','positive']};})
$specialiseForNumber$(Float, 'positive', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Float,d:['$','Float','$at','positive']};})
JSNum$proto.equals=function(other){
if(typeof(other)==='number' || other.constructor===Number){
if (this>runtime().maxIntegerValue||this<runtime().minIntegerValue
||other>runtime().maxIntegerValue||other<runtime.minIntegerValue) {
return other==this.valueOf() && other.float$===this.float$;
}
return other==this.valueOf();
}
return false;
}
$addnm$('equals',$_Object.$$.prototype.equals);
$specialiseForNumber$(Integer, 'equals', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Integer,ps:[{$t:{t:$_Object},nm:'that'}],d:['$','Integer','$m','equals']};})
$specialiseForNumber$(Float, 'equals', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Float,ps:[{$t:{t:$_Object},nm:'that'}],d:['$','Float','$m','equals']};})
JSNum$proto.compare = function(other) {
if (typeof(other)!=='number'&&other.constructor!==Number)throw new TypeError("Number expected");
var value = this.valueOf();
return value==other ? equal() : (value<other ? smaller():larger());
}
$addnm$('compare',Comparable.$$.prototype.compare);
$specialiseForNumber$(Integer, 'compare', function(){return {mod:$CCMM$,$t:{t:Comparison},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','compare']};})
$specialiseForNumber$(Float, 'compare', function(){return {mod:$CCMM$,$t:{t:Comparison},pa:67,$cont:Float,ps:[{$t:{t:Float},nm:'other'}],d:['$','Float','$m','compare']};})
JSNum$proto.smallerThan=function(o) {
if (typeof(o)!=='number'&&o.constructor!==Number)throw new TypeError("Number expected");
return Comparable.$$.prototype.smallerThan.call(this,o);
}
$addnm$('smallerThan',Comparable.$$.prototype.smallerThan);
$specialiseForNumber$(Integer, 'smallerThan', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','smallerThan']};})
$specialiseForNumber$(Float, 'smallerThan', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Float,ps:[{$t:{t:Float},nm:'other'}],d:['$','Float','$m','smallerThan']};})
JSNum$proto.largerThan=function(o) {
if (typeof(o)!=='number'&&o.constructor!==Number)throw new TypeError("Number expected");
return Comparable.$$.prototype.largerThan.call(this,o);
}
$addnm$('largerThan',Comparable.$$.prototype.largerThan);
$specialiseForNumber$(Integer, 'largerThan', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','largerThan']};})
$specialiseForNumber$(Float, 'largerThan', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Float,ps:[{$t:{t:Float},nm:'other'}],d:['$','Float','$m','largerThan']};})
JSNum$proto.notSmallerThan=function(o) {
if (typeof(o)!=='number'&&o.constructor!==Number)throw new TypeError("Number expected");
return Comparable.$$.prototype.notSmallerThan.call(this,o);
}
$addnm$('notSmallerThan',Comparable.$$.prototype.notSmallerThan);
$specialiseForNumber$(Integer, 'notSmallerThan', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','notSmallerThan']};})
$specialiseForNumber$(Float, 'notSmallerThan', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Float,ps:[{$t:{t:Float},nm:'other'}],d:['$','Float','$m','notSmallerThan']};})
JSNum$proto.notLargerThan=function(o) {
if (typeof(o)!=='number'&&o.constructor!==Number)throw new TypeError("Number expected");
return Comparable.$$.prototype.notLargerThan.call(this,o);
}
$addnm$('notLargerThan',Comparable.$$.prototype.notLargerThan);
$specialiseForNumber$(Integer, 'notSmallerThan', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'other'}],d:['$','Integer','$m','notSmallerThan']};})
$specialiseForNumber$(Float, 'notLargerThan', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Float,ps:[{$t:{t:Float},nm:'other'}],d:['$','Float','$m','notLargerThan']};})
atr$(JSNum$proto, '$_float', function(){
if (this.magnitude>runtime().maxExactIntegralFloat) {
throw OverflowException(this+' cannot be coerced into a 64 bit floating point value');
}
return Float(this.valueOf());
},undefined,function(){return{pa:65,mod:$CCMM$,$t:{t:Float},$cont:Integer,d:['$','Integer','$at','float']};});
$specialiseForNumber$(Integer, '$_float', function(){return {mod:$CCMM$,$t:{t:Float},pa:67,$cont:Integer,d:['$','Integer','$at','float']};})
$specialiseForNumber$(Float, '$_float', function(){return {mod:$CCMM$,$t:{t:Float},pa:0,$cont:Float,d:['$','Float','$at','float$oirx2o']};})
atr$(JSNum$proto, 'integer', function(){ return toInt(this); },
undefined,function(){return{pa:65,mod:$CCMM$,$t:{t:Integer},$cont:$_Number,d:['$','Float','$at','integer']};});
atr$(JSNum$proto, '$_byte', function(){ return Byte(this); },
undefined,function(){return{pa:65,mod:$CCMM$,$t:{t:Byte},$cont:Integer,d:['$','Integer','$at','byte']};});
$specialiseForNumber$(Integer, '$_byte', function(){return {mod:$CCMM$,$t:{t:Byte},pa:67,$cont:Integer,d:['$','Integer','$at','byte']};})
atr$(JSNum$proto, 'character', function(){
var c=this.valueOf();
if (c < 0 || c > 1114111) {
throw OverflowException(c + ' is not a possible Unicode code point');
}
return Character(c);
},undefined,function(){return{pa:65,mod:$CCMM$,$t:{t:Character},$cont:Integer,d:['$','Integer','$at','character']};});
$specialiseForNumber$(Integer, 'character', function(){return {mod:$CCMM$,$t:{t:Character},pa:67,$cont:Integer,d:['$','Integer','$at','character']};})
atr$(JSNum$proto, 'successor', function(){ return this+1; },
undefined,function(){return{pa:67,mod:$CCMM$,$t:{t:Integer},$cont:Integer,d:['$','Integer','$at','successor']};});
$specialiseForNumber$(Integer, 'successor', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,d:['$','Integer','$at','successor']};})
atr$(JSNum$proto, 'predecessor', function(){ return this-1; },
undefined,function(){return{pa:67,mod:$CCMM$,$t:{t:Integer},$cont:Integer,d:['$','Integer','$at','predecessor']};});
$specialiseForNumber$(Integer, 'predecessor', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,d:['$','Integer','$at','predecessor']};})
atr$(JSNum$proto, 'unit', function(){ return this == 1; },
undefined,function(){return{pa:67,mod:$CCMM$,$t:{t:$_Boolean},$cont:Integer,d:['$','Integer','$at','unit']};});
$specialiseForNumber$(Integer, 'unit', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Integer,d:['$','Integer','$at','unit']};})
atr$(JSNum$proto, 'zero', function(){ return this == 0; },
undefined,function(){return{pa:67,mod:$CCMM$,$t:{t:$_Boolean},$cont:Integer,d:['$','Integer','$at','zero']};});
$specialiseForNumber$(Integer, 'zero', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Integer,d:['$','Integer','$at','zero']};})
atr$(JSNum$proto, 'even', function(){ return this%2 == 0; },
undefined,function(){return{pa:65,mod:$CCMM$,$t:{t:$_Boolean},$cont:Integer,d:['$','Integer','$at','even']};});
$specialiseForNumber$(Integer, 'even', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:65,$cont:Integer,d:['$','Integer','$at','even']};})
atr$(JSNum$proto, 'fractionalPart', function() {
if (!nflt$(this)) { return 0; }
return Float(this - toInt(this));
},undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:$_Number,d:['$','Number','$at','fractionalPart']};});
$specialiseForNumber$(Integer, 'fractionalPart', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,d:['$','Integer','$at','fractionalPart']};})
$specialiseForNumber$(Float, 'fractionalPart', function(){return {mod:$CCMM$,$t:{t:Float},pa:67,$cont:Float,d:['$','Float','$at','fractionalPart']};})
atr$(JSNum$proto, 'wholePart', function() {
if (!nflt$(this)) { return this.valueOf(); }
var ret = this >= 0 ? Math.floor(this) : Math.ceil(this);
var wret = Float(ret);
if(ret == 0 && (this < 0 || this.fmz$)){ wret.fmz$ = true; }
return wret;
},undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:$_Number,d:['$','Number','$at','wholePart']};});
$specialiseForNumber$(Integer, 'wholePart', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,d:['$','Integer','$at','wholePart']};})
$specialiseForNumber$(Float, 'wholePart', function(){return {mod:$CCMM$,$t:{t:Float},pa:67,$cont:Float,d:['$','Float','$at','wholePart']};})
atr$(JSNum$proto, 'sign', function(){ return this > 0 ? 1 : this < 0 ? -1 : 0; },
undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:$_Number,d:['$','Number','$at','sign']};});
$specialiseForNumber$(Integer, 'sign', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,d:['$','Integer','$at','sign']};})
$specialiseForNumber$(Float, 'sign', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Float,d:['$','Float','$at','sign']};})
atr$(JSNum$proto, 'hash', function() {
return nflt$(this) ? $_String(this.toPrecision()).hash : this.valueOf();
},undefined,function(){return{mod:$CCMM$,pa:64,$cont:Integer,d:['$','Number','$at','hash']};});
$specialiseForNumber$(Integer, 'hash', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,d:['$','Integer','$at','hash']};})
$specialiseForNumber$(Float, 'hash', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Float,d:['$','Float','$at','hash']};})
JSNum$proto.distanceFrom = function(other) {
return (nflt$(this) ? this.wholePart : this) - other;
}
atr$(JSNum$proto, 'not', function(){ return ~this; },
undefined,function(){return{pa:64,mod:$CCMM$,$cont:Binary,d:['$','Integer','$at','not']};});
$specialiseForNumber$(Integer, 'not', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,d:['$','Integer','$at','not']};})
JSNum$proto.leftLogicalShift = function(i) { return this << i; }
$addnm$('leftLogicalShift',Binary.$$.prototype.leftLogicalShift);
$specialiseForNumber$(Integer, 'leftLogicalShift', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'shift'}],d:['$','Integer','$m','leftLogicalShift']};})
JSNum$proto.rightLogicalShift = function(i) { return this >>> i; }
$addnm$('rightLogicalShift',Binary.$$.prototype.rightLogicalShift);
$specialiseForNumber$(Integer, 'rightLogicalShift', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'shift'}],d:['$','Integer','$m','rightLogicalShift']};})
JSNum$proto.rightArithmeticShift = function(i) { return this >> i; }
$addnm$('rightArithmeticShift',Binary.$$.prototype.rightArithmeticShift);
$specialiseForNumber$(Integer, 'rightArithmeticShift', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'shift'}],d:['$','Integer','$m','rightArithmeticShift']};})
JSNum$proto.and = function(x) { return this & x; }
$addnm$('and',Binary.$$.prototype.and);
$specialiseForNumber$(Integer, 'and', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'index'}],d:['$','Integer','$m','and']};})
JSNum$proto.or = function(x) { return this | x; }
$addnm$('or',Binary.$$.prototype.or);
$specialiseForNumber$(Integer, 'or', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'index'}],d:['$','Integer','$m','or']};})
JSNum$proto.xor = function(x) { return this ^ x; }
$addnm$('xor',Binary.$$.prototype.xor);
$specialiseForNumber$(Integer, 'xor', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'index'}],d:['$','Integer','$m','xor']};})
JSNum$proto.$_get = function(idx) {
if (idx < 0 || idx >31) {
return false;
}
var mask = 1 << idx;
return (this & mask) != 0 ? true : false;
}
$addnm$('$_get',Binary.$$.prototype.$_get);
$specialiseForNumber$(Integer, 'get', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'index'}],d:['$','Integer','$m','get']};})
JSNum$proto.set=function(idx,bit) {
if (idx<0 || idx>31) {
return this;
}
if (bit === undefined) { bit = true; }
var mask = 1 << idx;
return (bit === true) ? this|mask : this & ~mask;
}
$addnm$('set',Binary.$$.prototype.set);
$specialiseForNumber$(Integer, 'set', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'index'},{$t:{t:$_Boolean},nm:'bit'}],d:['$','Integer','$m','set']};})
JSNum$proto.flip = function(idx) {
if (idx < 0 || idx >31) {
return this;
}
var mask = 1 << idx;
return this ^ mask;
}
$addnm$('flip',Binary.$$.prototype.flip);
$specialiseForNumber$(Integer, 'flip', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'index'}],d:['$','Integer','$m','flip']};})
JSNum$proto.clear = function(index) {
return this.set(index, false);
}
$addnm$('clear',Binary.$$.prototype.clear);
$specialiseForNumber$(Integer, 'clear', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'index'}],d:['$','Integer','$m','clear']};})
function checkintoverflow$(a){
if(a>runtime().maxIntegerValue || a<runtime().minIntegerValue)throw OverflowException();
return a;
}
JSNum$proto.neighbour=function(offset) {
return checkintoverflow$(this+offset);
}
$addnm$('neighbour',Enumerable.$$.prototype.neighbour);
$specialiseForNumber$(Integer, 'neighbour', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'offset'}],d:['$','Integer','$m','neighbour']};})
JSNum$proto.offset=function(other) {
return checkintoverflow$(this-other);
}
$addnm$('offset',Enumerable.$$.prototype.offset);
$specialiseForNumber$(Integer, 'offset', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'offset'}],d:['$','Integer','$m','offset']};})
JSNum$proto.offsetSign=function(other) {
var v = this.valueOf();
var o = other.valueOf();
if (v>o)return 1;
if (v<o)return -1;
return 0;
}
$addnm$('offsetSign',Enumerable.$$.prototype.offsetSign);
$specialiseForNumber$(Integer, 'offsetSign', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,ps:[{$t:{t:Integer},nm:'offset'}],d:['$','Integer','$m','offsetSign']};})
atr$(JSNum$proto,'magnitude',function(){
var m=Math.abs(this);
if (nflt$(this))m=Float(m);
return m;
},undefined,function(){return{an:function(){return[shared(),actual()]},mod:$CCMM$,$cont:$_Number,d:['$','Number','$at','magnitude']};});
$specialiseForNumber$(Integer, 'magnitude', function(){return {mod:$CCMM$,$t:{t:Integer},pa:67,$cont:Integer,d:['$','Integer','$at','magnitude']};})
atr$(JSNum$proto, '$_undefined', function(){ return isNaN(this); },
undefined,function(){return{pa:1,mod:$CCMM$,$cont:Float,d:['$','Float','$at','undefined']};});
$specialiseForNumber$(Float, '$_undefined', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Float,d:['$','Float','$at','undefined']};})
atr$(JSNum$proto, 'finite', function(){ return this!=Infinity && this!=-Infinity && !isNaN(this); },
undefined,function(){return{pa:1,mod:$CCMM$,$t:{t:$_Boolean},$cont:Float,d:['$','Float','$at','finite']};});
$specialiseForNumber$(Float, 'finite', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Float,d:['$','Float','$at','finite']};})
atr$(JSNum$proto, 'infinite', function(){ return this==Infinity || this==-Infinity; },
undefined,function(){return{pa:67,mod:$CCMM$,$cont:Float,d:['$','Float','$at','infinite']};});
$specialiseForNumber$(Float, 'infinite', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:67,$cont:Float,d:['$','Float','$at','infinite']};})
atr$(JSNum$proto, 'strictlyPositive', function(){ return this>0 || (this==0 && !this.fmz$ && (1/this==Infinity)); },
undefined,function(){return{pa:65,mod:$CCMM$,$cont:Float,d:['$','Float','$at','strictlyPositive']};});
$specialiseForNumber$(Float, 'strictlyPositive', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:65,$cont:Float,d:['$','Float','$at','strictlyPositive']};})
atr$(JSNum$proto, 'strictlyNegative', function() { return this<0 || this.fmz$ || (this==0 && (1/this==-Infinity)); },
undefined,function(){return{pa:65,mod:$CCMM$,$cont:Float,d:['$','Float','$at','strictlyNegative']};});
$specialiseForNumber$(Float, 'strictlyNegative', function(){return {mod:$CCMM$,$t:{t:$_Boolean},pa:65,$cont:Float,d:['$','Float','$at','strictlyNegative']};})
atr$(JSNum$proto, 'nearestFloat', function(){ return Float(this.valueOf()); },
undefined,function(){return{pa:65,mod:$CCMM$,$cont:Integer,d:['$','Integer','$at','nearestFloat']};});
$specialiseForNumber$(Integer, 'nearestFloat', function(){return {mod:$CCMM$,$t:{t:Float},pa:65,$cont:Integer,d:['$','Integer','$at','nearestFloat']};})
ex$.Integer=Integer;
ex$.Float=Float;
function $_Array$$c(a$,t$){
var a=new $_Array.$$;
SearchableList({Element$SearchableList:t$.Element$Array}, a);
set_type_args(a,t$,$_Array);
a.arr$=a$;
return a;
}
function $_Array(e$,t$){return $_Array_$c$(e$,t$);}
$_Array.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'elements',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Array'}}}],tp:{Element$Array:{}},sts:[{t:SearchableList,a:{Element$SearchableList:'Element$Array'}},{t:Ranged,a:{Subrange$Ranged:{t:$_Array,a:{Element$Array:'Element$Array'}},Element$Ranged:'Element$Array',Index$Ranged:{t:Integer}}}],pa:2081,an:function(){return[doc$($CCMM$,'$:Array'),tagged(["Collections"].$sa$({t:$_String})),$_native()];},d:['$','Array']};};
ex$.$_Array=$_Array;function $init$$_Array(){if($_Array.$$===undefined){initTypeProto($_Array,'ceylon.language::Array',Basic,$init$SearchableList(),$init$Ranged());
(function(array$){array$.getFromLast=function getFromLast(i){
var e=this.arr$[this.arr$.length-1-i];
if (e===undefined)
return null;
return e;
}
array$.getFromLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Array']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[doc$($CCMM$,'$:Array:$m:getFromLast'),$_native()];},d:['$','Array','$m','getFromLast']};};array$.getFromFirst=function getFromFirst(i){
var e=this.arr$[i];
if (e===undefined)
return null;
return e;
}
array$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Array']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[doc$($CCMM$,'$:Array:$m:getFromFirst'),$_native()];},d:['$','Array','$m','getFromFirst']};};atr$(array$,'lastIndex',function(){return this.arr$.length>0 ? (this.arr$.length-1) : null;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$at','lastIndex']};});atr$(array$,'first',function(){return this.arr$.length>0 ? this.arr$[0] : null;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Array']},$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$at','first']};});atr$(array$,'last',function(){return this.arr$.length>0 ? this.arr$[this.arr$.length-1] : null;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Array']},$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$at','last']};});atr$(array$,'empty',function(){return this.arr$.length==0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$at','empty']};});atr$(array$,'size',function(){return this.arr$.length;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$at','size']};});array$.defines=function(i){return List.$$.prototype.defines.call(this,i);}
array$.defines.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','defines']};};array$.iterator=function() {
var $idx$=0;
var $arr$=this.arr$;
return for$iter(function() {
return ($idx$===$arr$.length) ? finished() : $arr$[$idx$++];
},{Element$Iterable:this.$$targs$$.Element$Array,Absent$Iterable:{t:Null}});
}
array$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Array'}},ps:[],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','iterator']};};array$.contains=function(elem) {
if (!nn$(elem))return false;
for (var i=0; i<this.arr$.length; i++) {
if (nn$(this.arr$[i]) && elem.equals(this.arr$[i])) {
return true;
}
}
return false;
}
array$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:$_Object}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','contains']};};array$.sequence=function() {
if(this.arr$.length===0)return empty();
return ArraySequence(this,{Element$ArraySequence:this.$$targs$$.Element$Array});
}
array$.sequence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Array'}},ps:[],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','sequence']};};atr$(array$,'coalesced',function(){var a=[];
for (var i=0;i<this.arr$.length;i++){
if (nn$(this.arr$[i]))a.push(this.arr$[i]);
}
return $arr$(a,this.$$targs$$.Element$Array);
},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:'i',l:['Element$Array',{t:$_Object}]}}},$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$at','coalesced']};});array$.clone=function(){
return $arr$(this.arr$.slice(0),this.$$targs$$.Element$Array);
}
array$.clone.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:'Element$Array'}},ps:[],$cont:$_Array,pa:3,an:function(){return[doc$($CCMM$,'$:Array:$m:clone'),$_native()];},d:['$','Array','$m','clone']};};array$.set=function(idx,elem) {
if (idx >= 0 && idx < this.arr$.length) {
this.arr$[idx] = elem;
}
}
array$.set.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'index',mt:'prm',$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:Array:$m:set:$at:index$zhv6vc')];}},{nm:'element',mt:'prm',$t:'Element$Array',an:function(){return[doc("The new element.")];}}],$cont:$_Array,pa:1,an:function(){return[doc$($CCMM$,'$:Array:$m:set'),$_throws($init$openClass$jsint()(lmp$(ex$,'$'),AssertionError),"if the given index is out of bounds, that is, if \n`index<0` or if `index>lastIndex`"),$_native()];},d:['$','Array','$m','set']};};array$.copyTo=function(other,srcpos,dstpos,length){
if(srcpos===undefined)srcpos=0;
if(dstpos===undefined)dstpos=0;
if(length===undefined)length=Math.min(this.size-srcpos,other.size-dstpos);
if (length<=0)return;
var endpos=srcpos+length-1;
if (srcpos<0||srcpos>=this.size||length<1||dstpos+length>other.size||endpos>=this.size)throw Exception("Array index out of bounds");
if (other===this && dstpos>srcpos) {
dstpos+=length-1;
for (var i=endpos; i>=srcpos; i--) {
other.arr$[dstpos--]=this.arr$[i];
}
} else {
for (var i=srcpos;i<=endpos;i++) {
other.arr$[dstpos++]=this.arr$[i];
}
}
}
array$.copyTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'destination',mt:'prm',$t:{t:$_Array,a:{Element$Array:'Element$Array'}},an:function(){return[doc$($CCMM$,'$:Array:$m:copyTo:$at:destination$2u1dc2')];}},{nm:'sourcePosition',mt:'prm',def:1,$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:Array:$m:copyTo:$at:sourcePosition$wdwbbs')];}},{nm:'destinationPosition',mt:'prm',def:1,$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:Array:$m:copyTo:$at:destinationPosition$rctixv')];}},{nm:'length',mt:'prm',def:1,$t:{t:Integer},an:function(){return[doc("The number of elements to copy.")];}}],$cont:$_Array,pa:1,an:function(){return[doc$($CCMM$,'$:Array:$m:copyTo'),$_native()];},d:['$','Array','$m','copyTo']};};array$.span=function(from, to) {
if (from > to) {
var arr = this.measure(to, from-to+1);
arr.reverseInPlace();
return arr.sequence();
}
return this.measure(from, to-from+1).sequence();
}
array$.span.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:'Element$Array'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','span']};};array$.spanFrom=function(from) {
return this.span(from, 0x7fffffff);
}
array$.spanFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:'Element$Array'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','spanFrom']};};array$.spanTo=function(to) {
return to < 0 ? empty() : this.span(0, to);
}
array$.spanTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:'Element$Array'}},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','spanTo']};};array$.measure=function(from, len) {
if (len <= 0) { return empty(); }
var stop = from + len;
var seq = this.arr$.slice((from>=0)?from:0, (stop>=0)?stop:0);
return $arr$(seq,this.$$targs$$.Element$Array);
}
array$.measure.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:'Element$Array'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','measure']};};array$.skip=function(c){
if (c<=0)return this;
var r=this.arr$.slice(c);
return $arr$(r,this.$$targs$$.Element$Array);
}
array$.skip.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Array'}},ps:[{nm:'skipping',mt:'prm',$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','skip']};};array$.take=function(c) {
if (c<=0)return $arr$([],this.$$targs$$.Element$Array);
var r=this.arr$.slice(0,c);
return $arr$(r,this.$$targs$$.Element$Array);
}
array$.take.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Array'}},ps:[{nm:'taking',mt:'prm',$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','take']};};array$.by=function(c){
if (c<=0)throw AssertionError("Step must be > 0");
if (c===1)return this;
var r=[],idx=0;
while (idx<this.arr$.length) {
r.push(this.arr$[idx]);
idx+=c;
}
return $arr$(r,this.$$targs$$.Element$Array);
}
array$.by.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Array'}},ps:[{nm:'step',mt:'prm',$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','by']};};array$.count=function(){return List.$$.prototype.count.apply(this,arguments);}
array$.count.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Array']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Array'}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','count']};};array$.each=function(f){
for (var i=0;i<this.arr$.length;i++){
f(this.arr$[i]);
}
}
array$.each.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'step',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Anything},Arguments$Callable:{t:'T',l:['Element$Array']}}},$rt:{t:Anything},ps:[{nm:'element',mt:'prm',$t:'Element$Array'}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','each']};};array$.any=function(f) {
for (var i=0;i<this.arr$.length;i++) {
if (f(this.arr$[i]))return true;
}
return false;
}
array$.any.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Array']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Array'}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','any']};};array$.$_every=function(f) {
for (var i=0;i<this.arr$.length;i++){
if (!f(this.arr$[i]))return false;
}
return true;
}
array$.$_every.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Array']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Array'}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','every']};};array$.$_filter=function(f){
var a=this.arr$;
return for$(function(){
var i=0,l=a.length;
return function() {
var r=i<l?a[i++]:finished();
while (r!==finished() && !f(r)) {
r=i<l?a[i++]:finished();
}
return r;
};
},{Element$Iterable:this.$$targs$$.Element$Array,Absent$Iterable:{t:Null}});
}
array$.$_filter.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Array'}},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Array']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Array'}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','filter']};};array$.find=function(f){
for (var i=0;i<this.arr$.length;i++){
if (f(this.arr$[i]))return this.arr$[i];
}
return null;
}
array$.find.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Array']},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Array',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Array',{t:$_Object}]}}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','find']};};array$.findLast=function(f){
for (var i=this.arr$.length-1;i>=0;i--){
if (f(this.arr$[i]))return this.arr$[i];
}
return null;
}
array$.findLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Array']},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Array',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Array',{t:$_Object}]}}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','findLast']};};array$.firstIndexWhere=function(f){
for(var i=0;i<this.arr$.length;i++){
var e=this.arr$[i];
if (nn$(e)&&f(e))return i;
}
return null;
}
array$.firstIndexWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Array',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Array',{t:$_Object}]}}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','firstIndexWhere']};};array$.lastIndexWhere=function(f){
for(var i=this.arr$.length-1;i>=0;i--){
var e=this.arr$[i];
if (nn$(e)&&f(e))return i;
}
return null;
}
array$.lastIndexWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Array',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Array',{t:$_Object}]}}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','lastIndexWhere']};};array$.indexesWhere=function(f){
var r=[];
for(var i=0;i<this.arr$.length;i++){
var e=this.arr$[i];
if (nn$(e)&&f(e))r.push(i);
}
return r.length?$arr$(r,{t:Integer}):empty();
}
array$.indexesWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}}},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Array',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Array',{t:$_Object}]}}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','indexesWhere']};};array$.locate=function(f){
for (var i=0;i<this.arr$.length;i++){
if (this.arr$[i]!==null && f(this.arr$[i]))return Entry(i,this.arr$[i],{Key$Entry:{t:Integer},Item$Entry:this.$$targs$$.Element$Array});
}
return null;
}
array$.locate.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:'i',l:['Element$Array',{t:$_Object}]}}}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Array',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Array',{t:$_Object}]}}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','locate']};};array$.locateLast=function(f){
for (var i=this.arr$.length-1;i>=0;i--){
if (this.arr$[i]!==null && f(this.arr$[i]))return Entry(i,this.arr$[i],{Key$Entry:{t:Integer},Item$Entry:this.$$targs$$.Element$Array});
}
return null;
}
array$.locateLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:'i',l:['Element$Array',{t:$_Object}]}}}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Array',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Array',{t:$_Object}]}}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','locateLast']};};array$.locations=function(f){
var r=[];
var _t={t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:'i',l:[this.$$targs$$.Element$Array, {t:$_Object}]}}};
for (var i=0;i<this.arr$.length;i++) {
var c=this.$_get(i);
if (nn$(c)&&f(c))r.push(Entry(i,c,_t.a));
}
return r.length>0?$arr$(r,_t):empty();
}
array$.locations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:'i',l:['Element$Array',{t:$_Object}]}}}}},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Array',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Array',{t:$_Object}]}}]}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','locations']};};array$.$_reduce=function(f){
if (this.arr$.length===0)return null;
var r=this.arr$[0];
for (var i=1;i<this.arr$.length;i++) {
r=f(r,this.arr$[i]);
}
return r;
}
array$.$_reduce.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Result$reduce','Element$Array',{t:Null}]},ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$reduce',Arguments$Callable:{t:'T',l:[{t:'u',l:['Result$reduce','Element$Array']},'Element$Array']}}},$rt:'Result$reduce',ps:[{nm:'partial',mt:'prm',$t:{t:'u',l:['Result$reduce','Element$Array']}},{nm:'element',mt:'prm',$t:'Element$Array'}]}],$cont:$_Array,tp:{Result$reduce:{}},pa:3,an:function(){return[$_native()];},d:['$','Array','$m','reduce']};};array$.occursAt=function(i,e){
if (i<0||i>=this.arr$.length)return false;
if (e===null)return this.arr$[i]===null;
return this.arr$[i]!==null && this.arr$[i].equals(e);
}
array$.occursAt.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'element',mt:'prm',$t:'Element$Array'}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','occursAt']};};array$.firstOccurrence=function(e,from,len){
if (from===undefined || from<0)from=0;
else if (from>=this.arr$.length)return null;
if (len===undefined)len=this.arr$.length-from;
var lim=len+from;
if(lim>this.arr$.length)lim=this.arr$.length;
if (e===null) {
for (var i=from;i<lim;i++) {
if (this.arr$[i]===null)return i;
}
} else {
for (var i=from;i<lim;i++) {
if (this.arr$[i]!==null && e.equals(this.arr$[i]))return i;
}
}
return null;
}
array$.firstOccurrence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'element',mt:'prm',$t:'Element$Array'},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','firstOccurrence']};};array$.lastOccurrence=function(e,from,len){
if (from===undefined||from<0)from=0;
else if (from>this.arr$.length)return null;
if (len===undefined)len=this.arr$.length-from;
var end=this.arr$.length-len-from;
var start=this.arr$.length-from-1;
if (e===null) {
for (var i=start;i>=end;i--) {
if (this.arr$[i]===null)return i;
}
} else {
for (var i=start;i>=end;i--) {
if (this.arr$[i]!==null && e.equals(this.arr$[i]))return i;
}
}
return null;
}
array$.lastOccurrence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'element',mt:'prm',$t:'Element$Array'},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','lastOccurrence']};};array$.occurs=function(e,from,len){
if (from===undefined||from<0)from=0;
else if (from>this.arr$.length)return false;
if (len===undefined)len=this.arr$.length-from;
var lim=len+from;
if (lim>this.arr$.length)lim=this.arr$.length;
if (e===null) {
for (var i=from;i<lim;i++) {
if (this.arr$[i]===null)return true;
}
} else {
for (var i=from;i<lim;i++) {
if (this.arr$[i]!==null && e.equals(this.arr$[i]))return true;
}
}
return false;
}
array$.occurs.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Array'},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','occurs']};};array$.occurrences=function(e,from,len){
if (from===undefined||from<0)from=0;
if (len===undefined)len=this.arr$.length;
var r=[];
if (e===null) {
for (var i=from;i<len;i++) {
if (this.arr$[i]===null)r.push(i);
}
} else {
for (var i=from;i<len;i++) {
if (this.arr$[i]!==null && this.arr$[i].equals(e))r.push(i);
}
}
return r.length>0?$arr$(r,{t:Integer}):empty();
}
array$.occurrences.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}}},ps:[{nm:'element',mt:'prm',$t:'Element$Array'},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:$_Array,pa:3,an:function(){return[$_native()];},d:['$','Array','$m','occurrences']};};array$.swap=function(a,b){
asrt$(a>=0&&b>=0,'array index may not be negative','0:0','Array.ceylon');
asrt$(a<this.arr$.length&&b<this.arr$.length,'array index must be less than size of array ' + this.arr$.length,'0:0','Array.ceylon');
var c=this.arr$[a];
this.arr$[a]=this.arr$[b];
this.arr$[b]=c;
}
array$.swap.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'i',mt:'prm',$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:Array:$m:swap:$at:i$ugyp34')];}},{nm:'j',mt:'prm',$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:Array:$m:swap:$at:j$ugyq55')];}}],$cont:$_Array,pa:1,an:function(){return[doc$($CCMM$,'$:Array:$m:swap'),$_throws($init$openClass$jsint()(lmp$(ex$,'$'),AssertionError),"if either of the given indices is out of bounds"),$_native()];},d:['$','Array','$m','swap']};};array$.move=function(f,t){
asrt$(f>=0&&t>=0,"array index may not be negative",'Array.move','Array.ceylon');
asrt$(f<this.arr$.length&&t<this.arr$.length,"array index must be less than size of array " + this.arr$.length,'Array.move','Array.ceylon');
if (f===t)return;
var x=this.arr$[f];
if (f>t) {
for (var i=f;i>t;i--) {
this.arr$[i]=this.arr$[i-1];
}
} else {
for (var i=f;i<t;i++) {
this.arr$[i]=this.arr$[i+1];
}
}
this.arr$[t] = x;
}
array$.move.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'from',mt:'prm',$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:Array:$m:move:$at:from$9obs55')];}},{nm:'to',mt:'prm',$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:Array:$m:move:$at:to$9x3zio')];}}],$cont:$_Array,pa:1,an:function(){return[doc$($CCMM$,'$:Array:$m:move'),$_throws($init$openClass$jsint()(lmp$(ex$,'$'),AssertionError),"if either of the given indices is out of bounds"),$_native()];},d:['$','Array','$m','move']};};array$.reverseInPlace=function() {
var len = this.arr$.length;
for (i=0; i<Math.floor(len/2); i++) {
var swap = this.arr$[i];
this.arr$[i]=this.arr$[len-i-1];
this.arr$[len-i-1]=swap;
}
}
array$.reverseInPlace.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:$_Array,pa:1,an:function(){return[doc$($CCMM$,'$:Array:$m:reverseInPlace'),$_native()];},d:['$','Array','$m','reverseInPlace']};};array$.sortInPlace=function(f) {
this.arr$.sort(function(a,b) {
var r = f(a,b);
return r===larger()?1:r===smaller()?-1:0;
});
}
array$.sortInPlace.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Element$Array','Element$Array']}}},$rt:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:'Element$Array'},{nm:'y',mt:'prm',$t:'Element$Array'}],an:function(){return[doc$($CCMM$,'$:Array:$m:sortInPlace:$m:comparing$awkb12')];}}],$cont:$_Array,pa:1,an:function(){return[doc$($CCMM$,'$:Array:$m:sortInPlace'),$_native()];},d:['$','Array','$m','sortInPlace']};};array$.$_sort=function(f) {
var clone = this.clone();
clone.sortInPlace(f);
return ArraySequence(clone,{Element$ArraySequence:{t:this.$$targs$$.Element$Array}});
}
array$.$_sort.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Array'}},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Element$Array','Element$Array']}}},$rt:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:'Element$Array'},{nm:'y',mt:'prm',$t:'Element$Array'}],an:function(){return[doc$($CCMM$,'$:Array:$m:sort:$m:comparing$m978ss')];}}],$cont:$_Array,pa:3,an:function(){return[doc$($CCMM$,'$:Array:$m:sort'),$_native()];},d:['$','Array','$m','sort']};};array$.equals=function($dk){var array$=this;return array$.getT$all()['ceylon.language::List'].$$.prototype.equals.call(array$,$dk);};array$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:$_Array,pa:3,d:['$','Array','$m','equals']};};atr$(array$,'hash',function(){var array$=this;return attrGetter(array$.getT$all()['ceylon.language::List'],'hash').call(this)},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$_Array,pa:3,d:['$','Array','$at','hash']};});atr$(array$,'string',function(){var array$=this;return attrGetter(array$.getT$all()['ceylon.language::Collection'],'string').call(this)},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$_Array,pa:3,d:['$','Array','$at','string']};});})($_Array.$$.prototype);}
return $_Array;}
ex$.$init$$_Array=$init$$_Array;$init$$_Array();function $_Array_$c$(elems,$$targs$$) {
$init$$_Array();
var e=[];
if (!(elems === null || elems === undefined)) {
var item;for(var iter=elems.iterator();(item=iter.next())!==finished();) {
e.push(item);
}
}
return $_Array$$c(e,$$targs$$);
}
$_Array.inst$$=function(cm){
return $_Array(undefined,cm.$$targs$$.Type$Class.a);
}
$_Array.ser$set$=function(ref,o,i){
if (typeof(ref)==='number') {
o.arr$[ref]=i;
}
}
$_Array.ser$get$=function(ref,o){
if (is$(ref,{t:Element$serialization})) {
return o.$_get(ref.index);
}
return o.size;
}
$_Array.ser$refs$=function(o){
return [MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$getSize))];
}
$_Array_$c$.$crtmm$=function(){return{mod:$CCMM$,ps:[{nm:'elements',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Array'}}}],$cont:$_Array,pa:1,an:function(){return[doc$($CCMM$,'$:Array:$cn:$def'),$_native()];},d:['$','Array','$cn','$def']};};$_Array.$_Array_$c$=$_Array_$c$;ex$.$_Array_$c$=$_Array_$c$;function $_Array_ofSize(s,e,t$) {
asrt$(s<=runtime().maxArraySize,
"Invalid array size","0:0","Array.ceylon");
$init$$_Array();
if (s>0) {
var a=new Array(s);
for (var i=0;i<s;i++) {
a[i]=e;
}
} else {
var a=[];
}
return $_Array$$c(a,t$);
}
$_Array_ofSize.$crtmm$=function(){return{mod:$CCMM$,ps:[{nm:'size',mt:'prm',$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:Array:$cn:ofSize:$at:size$xs793g')];}},{nm:'element',mt:'prm',$t:'Element$Array',an:function(){return[doc$($CCMM$,'$:Array:$cn:ofSize:$at:element$qtxp4n')];}}],$cont:$_Array,pa:1,an:function(){return[doc$($CCMM$,'$:Array:$cn:ofSize'),$_throws($init$openClass$jsint()(lmp$(ex$,'$'),AssertionError),"if `size>runtime.maxArraySize`"),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),runtime$$N().$prop$getMaxArraySize)].$sa$({t:ValueDeclaration$meta$declaration})),$_native()];},d:['$','Array','$cn','ofSize']};};$_Array.$_Array_ofSize=$_Array_ofSize;ex$.$_Array_ofSize=$_Array_ofSize;function Empty(empty$){Sequential({Element$Sequential:{t:Nothing}},empty$);Ranged({Subrange$Ranged:{t:Empty},Element$Ranged:{t:Nothing},Index$Ranged:{t:Integer}},empty$);}
Empty.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:Sequential,a:{Element$Sequential:{t:Nothing}}},{t:Ranged,a:{Subrange$Ranged:{t:Empty},Element$Ranged:{t:Nothing},Index$Ranged:{t:Integer}}}],of:[$prop$getEmpty],pa:1,an:function(){return[doc$($CCMM$,'$:Empty'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Sequence)].$sa$({t:InterfaceDeclaration$meta$declaration})),tagged(["Sequences"].$sa$({t:$_String}))];},d:['$','Empty']};};
ex$.Empty=Empty;function $init$Empty(){if(Empty.$$===undefined){initTypeProtoI(Empty,'ceylon.language::Empty',$init$Sequential(),$init$Ranged());
(function(empty$){empty$.getFromLast=function($dn){var empty$=this;return null;};empty$.getFromLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$m:getFromLast')];},d:['$','Empty','$m','getFromLast']};};empty$.getFromFirst=function($do){var empty$=this;return null;};empty$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$m:getFromFirst')];},d:['$','Empty','$m','getFromFirst']};};empty$.contains=function($dp){var empty$=this;return false;};empty$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:$_Object}}],$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$m:contains')];},d:['$','Empty','$m','contains']};};empty$.defines=function($dq){var empty$=this;return false;};empty$.defines.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$m:defines')];},d:['$','Empty','$m','defines']};};atr$(empty$,'keys',function(){var empty$=this;return empty$},undefined,function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Empty,pa:3,an:function(){return[doc("Returns `[]`.")];},d:['$','Empty','$at','keys']};});empty$.indexes=function(){var empty$=this;return empty$;};empty$.indexes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[],$cont:Empty,pa:3,an:function(){return[doc("Returns `[]`.")];},d:['$','Empty','$m','indexes']};};atr$(empty$,'empty',function(){var empty$=this;return true},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Empty,pa:3,an:function(){return[doc("Returns `true`.")];},d:['$','Empty','$at','empty']};});atr$(empty$,'size',function(){var empty$=this;return 0},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Empty,pa:3,an:function(){return[doc("Returns 0.")];},d:['$','Empty','$at','size']};});atr$(empty$,'reversed',function(){var empty$=this;return empty$},undefined,function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Empty,pa:3,an:function(){return[doc("Returns `[]`.")];},d:['$','Empty','$at','reversed']};});empty$.sequence=function(){var empty$=this;return empty$;};empty$.sequence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[],$cont:Empty,pa:3,an:function(){return[doc("Returns `[]`.")];},d:['$','Empty','$m','sequence']};};atr$(empty$,'string',function(){var empty$=this;return "[]"},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$at:string')];},d:['$','Empty','$at','string']};});atr$(empty$,'lastIndex',function(){var empty$=this;return null},undefined,function(){return{mod:$CCMM$,$t:{t:Null},$cont:Empty,pa:3,an:function(){return[doc("Returns `null`.")];},d:['$','Empty','$at','lastIndex']};});atr$(empty$,'first',function(){var empty$=this;return null},undefined,function(){return{mod:$CCMM$,$t:{t:Null},$cont:Empty,pa:3,an:function(){return[doc("Returns `null`.")];},d:['$','Empty','$at','first']};});atr$(empty$,'last',function(){var empty$=this;return null},undefined,function(){return{mod:$CCMM$,$t:{t:Null},$cont:Empty,pa:3,an:function(){return[doc("Returns `null`.")];},d:['$','Empty','$at','last']};});atr$(empty$,'rest',function(){var empty$=this;return empty$},undefined,function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Empty,pa:3,an:function(){return[doc("Returns `[]`.")];},d:['$','Empty','$at','rest']};});empty$.clone=function(){var empty$=this;return empty$;};empty$.clone.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[],$cont:Empty,pa:3,an:function(){return[doc("Returns `[]`.")];},d:['$','Empty','$m','clone']};};atr$(empty$,'coalesced',function(){var empty$=this;return empty$},undefined,function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Empty,pa:3,an:function(){return[doc("Returns `[]`.")];},d:['$','Empty','$at','coalesced']};});atr$(empty$,'indexed',function(){var empty$=this;return empty$},undefined,function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Empty,pa:3,an:function(){return[doc("Returns `[]`.")];},d:['$','Empty','$at','indexed']};});empty$.repeat=function($e2){var empty$=this;return empty$;};empty$.repeat.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'times',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,an:function(){return[doc("Returns `[]`.")];},d:['$','Empty','$m','repeat']};};atr$(empty$,'cycled',function(){var empty$=this;return empty$},undefined,function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Empty,pa:3,an:function(){return[doc("Returns `[]`.")];},d:['$','Empty','$at','cycled']};});atr$(empty$,'paired',function(){var empty$=this;return empty$},undefined,function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Empty,pa:3,an:function(){return[doc("Returns `[]`.")];},d:['$','Empty','$at','paired']};});empty$.iterator=function(){var empty$=this;return emptyIterator();};empty$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:Nothing}}},ps:[],$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$m:iterator')];},d:['$','Empty','$m','iterator']};};empty$.measure=function($e5,$e6){var empty$=this;return empty$;};empty$.measure.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$m:measure')];},d:['$','Empty','$m','measure']};};empty$.span=function($e7,$e8){var empty$=this;return empty$;};empty$.span.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$m:span')];},d:['$','Empty','$m','span']};};empty$.spanTo=function($e9){var empty$=this;return empty$;};empty$.spanTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$m:spanTo')];},d:['$','Empty','$m','spanTo']};};empty$.spanFrom=function($ea){var empty$=this;return empty$;};empty$.spanFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$m:spanFrom')];},d:['$','Empty','$m','spanFrom']};};empty$.chain=function($eb,$2tdhse$){var empty$=this;return $eb;};empty$.chain.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'OtherAbsent$chain',Element$Iterable:'Other$chain'}},ps:[{nm:'other',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'OtherAbsent$chain',Element$Iterable:'Other$chain'}}}],$cont:Empty,tp:{Other$chain:{},OtherAbsent$chain:{sts:[{t:Null}]}},pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$m:chain')];},d:['$','Empty','$m','chain']};};empty$.defaultNullElements=function($ec,$1kzr90$){var empty$=this;return empty$;};empty$.defaultNullElements.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'defaultValue',mt:'prm',$t:'Default$defaultNullElements'}],$cont:Empty,tp:{Default$defaultNullElements:{sts:[{t:$_Object}]}},pa:3,d:['$','Empty','$m','defaultNullElements']};};empty$.count=function($ed){return 0;};empty$.count.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,an:function(){return[doc$($CCMM$,'$:Empty:$m:count')];},d:['$','Empty','$m','count']};};empty$.$_map=function($ee,$c4hvl5$){var empty$=this;return empty$;};empty$.$_map.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$map',Arguments$Callable:{t:'T',l:[]}}},$rt:'Result$map',ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,tp:{Result$map:{}},pa:3,d:['$','Empty','$m','map']};};empty$.flatMap=function($ef,$i4mj68$){var empty$=this;return empty$;};empty$.flatMap.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Iterable,a:{Absent$Iterable:'OtherAbsent$flatMap',Element$Iterable:'Result$flatMap'}},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:Iterable,a:{Absent$Iterable:'OtherAbsent$flatMap',Element$Iterable:'Result$flatMap'}},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,tp:{Result$flatMap:{},OtherAbsent$flatMap:{sts:[{t:Null}]}},pa:3,d:['$','Empty','$m','flatMap']};};empty$.spread=function($eg,$nyxc3q$){var empty$=this;return flatten($JsCallable((function($eh){return empty$;}),[{nm:'args',mt:'prm',$t:$nyxc3q$.Args$spread}],{Return$Callable:{t:Empty},Arguments$Callable:mtt$([$nyxc3q$.Args$spread])}),{Args$flatten:$nyxc3q$.Args$spread,Return$flatten:{t:Empty}});};empty$.spread.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:Empty},Arguments$Callable:'Args$spread'}},ps:[{nm:'method',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Callable,a:{Return$Callable:'Result$spread',Arguments$Callable:'Args$spread'}},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:Callable,a:{Return$Callable:'Result$spread',Arguments$Callable:'Args$spread'}},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,tp:{Result$spread:{},Args$spread:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:3,d:['$','Empty','$m','spread']};};empty$.$_filter=function($ei){var empty$=this;return empty$;};empty$.$_filter.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','filter']};};empty$.fold=function($ej,$kppqs4$){var empty$=this;empty$.$ej_=$ej;var $ek=function($el){{return $ej;}};$ek.$crtmm$=function(){return{ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:$kppqs4$.Result$fold,Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([{t:Nothing}]),Element$Tuple:$kppqs4$.Result$fold/*ORALE!Result inv pero Element var*/,First$Tuple:$kppqs4$.Result$fold/*ORALE!Result inv pero First var*/}}}},$rt:$kppqs4$.Result$fold,ps:[{nm:'partial',mt:'prm',$t:$kppqs4$.Result$fold},{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$t:$kppqs4$.Result$fold};};return JsCallable(0,$ek);};empty$.fold.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:'Result$fold',Arguments$Callable:{t:'T',l:[{t:Callable,a:{Return$Callable:'Result$fold',Arguments$Callable:{t:'T',l:[]}}}]}}},ps:[{nm:'initial',mt:'prm',$t:'Result$fold'}],$cont:Empty,tp:{Result$fold:{}},pa:3,d:['$','Empty','$m','fold']};};empty$.$_reduce=function($em,$nblda1$){var empty$=this;return null;};empty$.$_reduce.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$reduce',Arguments$Callable:{t:'T',l:[]}}},$rt:'Result$reduce',ps:[{nm:'partial',mt:'prm',$t:'Result$reduce'},{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,tp:{Result$reduce:{}},pa:3,d:['$','Empty','$m','reduce']};};empty$.find=function($en){var empty$=this;return null;};empty$.find.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','find']};};empty$.$_sort=function($eo){var empty$=this;return empty$;};empty$.$_sort.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:Comparison},ps:[{nm:'a',mt:'prm',$t:{t:Nothing}},{nm:'b',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','sort']};};empty$.collect=function($ep,$agcnsn$){var empty$=this;return empty$;};empty$.collect.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$collect',Arguments$Callable:{t:'T',l:[]}}},$rt:'Result$collect',ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,tp:{Result$collect:{}},pa:3,d:['$','Empty','$m','collect']};};empty$.select=function($eq){var empty$=this;return empty$;};empty$.select.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','select']};};empty$.any=function($er){var empty$=this;return false;};empty$.any.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','any']};};empty$.$_every=function($es){var empty$=this;return true;};empty$.$_every.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','every']};};empty$.skip=function($et){var empty$=this;return empty$;};empty$.skip.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'skipping',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,d:['$','Empty','$m','skip']};};empty$.take=function($eu){var empty$=this;return empty$;};empty$.take.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'taking',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,d:['$','Empty','$m','take']};};empty$.skipWhile=function($ev){var empty$=this;return empty$;};empty$.skipWhile.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'skipping',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'elem',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','skipWhile']};};empty$.takeWhile=function($ew){var empty$=this;return empty$;};empty$.takeWhile.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'taking',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'elem',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','takeWhile']};};empty$.by=function($ex){var empty$=this;return empty$;};empty$.by.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'step',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,d:['$','Empty','$m','by']};};empty$.withLeading=function($ey,$629yy5$){var empty$=this;return tpl$([$ey]);};empty$.withLeading.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:['Other$withLeading']},ps:[{nm:'element',mt:'prm',$t:'Other$withLeading'}],$cont:Empty,tp:{Other$withLeading:{}},pa:3,d:['$','Empty','$m','withLeading']};};empty$.withTrailing=function($ez,$tuh4iz$){var empty$=this;return tpl$([$ez]);};empty$.withTrailing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:['Other$withTrailing']},ps:[{nm:'element',mt:'prm',$t:'Other$withTrailing'}],$cont:Empty,tp:{Other$withTrailing:{}},pa:3,d:['$','Empty','$m','withTrailing']};};empty$.append=function($f0,$fg2vcd$){var empty$=this;return $f0;};empty$.append.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Other$append'}},ps:[{nm:'elements',mt:'prm',$t:{t:Sequential,a:{Element$Sequential:'Other$append'}}}],$cont:Empty,tp:{Other$append:{}},pa:3,d:['$','Empty','$m','append']};};empty$.prepend=function($f1,$aigy05$){var empty$=this;return $f1;};empty$.prepend.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Other$prepend'}},ps:[{nm:'elements',mt:'prm',$t:{t:Sequential,a:{Element$Sequential:'Other$prepend'}}}],$cont:Empty,tp:{Other$prepend:{}},pa:3,d:['$','Empty','$m','prepend']};};empty$.follow=function($f2,$hsos04$){var empty$=this;return sarg$(function($f3){switch($f3){case 0:return $f2;}return finished();},undefined,{Element$Iterable:$hsos04$.Other$follow/*ORALE!Other inv pero Element var*/,Absent$Iterable:{t:Nothing}});};empty$.follow.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Other$follow'}},ps:[{nm:'head',mt:'prm',$t:'Other$follow'}],$cont:Empty,tp:{Other$follow:{}},pa:3,d:['$','Empty','$m','follow']};};empty$.sublist=function($f4,$f5){var empty$=this;return empty$;};empty$.sublist.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,d:['$','Empty','$m','sublist']};};empty$.sublistFrom=function($f6){var empty$=this;return empty$;};empty$.sublistFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,d:['$','Empty','$m','sublistFrom']};};empty$.sublistTo=function($f7){var empty$=this;return empty$;};empty$.sublistTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,d:['$','Empty','$m','sublistTo']};};empty$.initial=function($f8){var empty$=this;return empty$;};empty$.initial.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,d:['$','Empty','$m','initial']};};empty$.terminal=function($f9){var empty$=this;return empty$;};empty$.terminal.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,d:['$','Empty','$m','terminal']};};empty$.indexesWhere=function($fa){var empty$=this;return empty$;};empty$.indexesWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','indexesWhere']};};empty$.firstIndexWhere=function($fb){var empty$=this;return null;};empty$.firstIndexWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','firstIndexWhere']};};empty$.lastIndexWhere=function($fc){var empty$=this;return null;};empty$.lastIndexWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','lastIndexWhere']};};empty$.$_trim=function($fd){var empty$=this;return empty$;};empty$.$_trim.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'elem',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','trim']};};empty$.trimLeading=function($fe){var empty$=this;return empty$;};empty$.trimLeading.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'elem',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','trimLeading']};};empty$.trimTrailing=function($ff){var empty$=this;return empty$;};empty$.trimTrailing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Empty},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'elem',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','trimTrailing']};};empty$.$_slice=function($fg){var empty$=this;return tpl$([empty$,empty$]);};empty$.$_slice.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{t:Empty},{t:Empty}]},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Empty,pa:3,d:['$','Empty','$m','slice']};};empty$.each=function($fh){var empty$=this;};empty$.each.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'step',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Anything},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:Anything},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:Empty,pa:3,d:['$','Empty','$m','each']};};})(Empty.$$.prototype);}
return Empty;}
ex$.$init$Empty=$init$Empty;$init$Empty();function $fi(){var empty$=new $fi.$$;$_Object(empty$);Empty(empty$);return empty$;};$fi.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},sts:[{t:Empty}],d:['$','empty']};};function $init$empty(){if($fi.$$===undefined){initTypeProto($fi,'ceylon.language::empty',$init$$_Object(),$init$Empty());
}
return $fi;}
ex$.$init$empty=$init$empty;$init$empty();var $fk;function empty(){if($fk===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'empty\' before it was set"),'254:0-260:16','Empty.ceylon');if($fk===undefined){$fk=INIT$;$fk=$init$empty()();$fk.$crtmm$=empty.$crtmm$;}
return $fk;}
ex$.empty=empty;empty.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$empty()},pa:1,an:function(){return[doc$($CCMM$,'$:empty'),by(["Tako Schotanus"].$sa$({t:$_String})),tagged(["Sequences"].$sa$({t:$_String}))];},d:['$','empty']};};$prop$getEmpty=empty;ex$.$prop$getEmpty=$prop$getEmpty;function $fl($$targs$$){var emptyIterator$=new $fl.$$;emptyIterator$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:Nothing}},emptyIterator$);return emptyIterator$;};$fl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},sts:[{t:Iterator,a:{Element$Iterator:{t:Nothing}}}],d:['$','emptyIterator']};};function $init$emptyIterator(){if($fl.$$===undefined){initTypeProto($fl,'ceylon.language::emptyIterator',Basic,$init$Iterator());
(function(emptyIterator$){emptyIterator$.next=function(){var emptyIterator$=this;return finished();};atr$(emptyIterator$,'string',function(){var emptyIterator$=this;return "empty.iterator()";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$fl,pa:3,d:['$','emptyIterator','$at','string']};});})($fl.$$.prototype);}
return $fl;}
ex$.$init$emptyIterator=$init$emptyIterator;$init$emptyIterator();var $fn;function emptyIterator(){if($fn===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'emptyIterator\' before it was set"),'262:0-268:0','Empty.ceylon');if($fn===undefined){$fn=INIT$;$fn=$init$emptyIterator()({Element$Iterator:{t:Nothing}});$fn.$crtmm$=emptyIterator.$crtmm$;}
return $fn;}
ex$.emptyIterator=emptyIterator;emptyIterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$emptyIterator()},pa:1,an:function(){return[doc$($CCMM$,'$:emptyIterator'),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','emptyIterator']};};$prop$getEmptyIterator=emptyIterator;ex$.$prop$getEmptyIterator=$prop$getEmptyIterator;var arrprot$=$_Array.$$.prototype;
function $arr$(a,t,seq) {
if (t===null || t===undefined)t={t:Anything};
var a=$_Array$$c(a,{Element$Array:t});
if (seq)a.$$targs$$.Absent$Iterable={t:Nothing};
return a;
}
ex$.$arr$=$arr$;
Array.prototype.$sa$=function $sa$(t,ne) {
if (this.length===0)return empty();
if (t===null || t===undefined)t={t:Anything};
return ArraySequence($arr$(this,t,ne),{Element$ArraySequence:t});
}
Array.prototype.equals=function arrayEquals(o) {
if (o===undefined||o===null||typeof(o.length)!='number')return false;
if (o.length===this.length) {
for (var i=0;i<this.length;i++) {
if (this[i]===undefined) {
if (o[i]!==undefined)return false;
} else if (this[i]===null) {
if (o[i]!==null)return false;
} else if (!this[i].equals(o[i]))return false;
}
}
return false;
}
function $ci2na$(ci){
if (ci===undefined||ci===empty())return [];
var a=Array(ci.size),i=0,iter=ci.iterator(),next;
while ((next=iter.next())!==finished()) {
a[i++]=next;
}
return a;
}
Array.prototype.contains=function arrayContains(o){
for (var i=0;i<this.length;i++) {
if (o===null) {
if (this[i]===null)return true;
} else if (o===undefined) {
if (this[i]===undefined)return true;
} else if (this[i].equals(o)) return true;
}
return false;
}
empty().nativeArray=function(){return [];}
atr$(arrprot$,'string', function() {
if (this.size===0)return '{}';
var s="{ ";
for (var i=0; i<this.size;i++) {
var e=this.arr$[i];
if (i>0)s+=", ";
if (e===null)s+="<null>";
else if (e===undefined)s+="<undefined>";
else s+= e===this?"<CIRCULAR>":e.string;
}
s+=" }";
return s;
},undefined,$_Object.$$.prototype.$prop$getString.$crtmm$);
atr$(arrprot$,'reversed', function() {
return this.Reversed$List();
},undefined,List.$$.prototype.$prop$getReversed.$crtmm$);
atr$(arrprot$,'rest', function() {
return this.Rest$List(1);
},undefined,List.$$.prototype.$prop$getRest.$crtmm$);
function sarg$(elems,spread,$$targs$$){
$init$sarg();
var that=new sarg$.$$;
Iterable($$targs$$,that);
that.e=elems;
that.s=spread;
return that;
}
sarg$.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{T$LazyIterable:{dv:'out'}},sts:[{t:Iterable,a:{Element$Iterable:'T$LazyIterable',Absent$Iterable:{t:Null}}}],pa:1,d:['$','LazyIterable']};};
ex$.sarg$=sarg$;
function $init$sarg(){if(sarg$.$$===undefined){
initTypeProto(sarg$,'ceylon.language::LazyIterable',Basic,Iterable);
(function(that){
function iter(sarg){
var $$4=new iter.$$;
$$4.outer$=sarg;
$$4.$$targs$$={Element$Iterator:sarg.$$targs$$.Element$Iterable};
Iterator($$4.$$targs$$,$$4);
$$4.i=0;
return $$4;
};
iter.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:iterator,sts:[{t:Iterator,a:{Element$Iterator:'T$LazyIterable'}}],d:['$','LazyIterable','$m','iterator','$o','it']};};
if(iter.$$===undefined){
initTypeProto(iter,'LazyIterable.iterator',Basic,Iterator);
iter.$$.prototype.next=function(){
if (this.sp)return this.sp.next();
var e=this.outer$.e(this.i);
if (e===finished() && this.outer$.s) {
var a=this.outer$.s();
this.sp=(Array.isArray(a)?$arr$(a,{t:Anything}):a).iterator();
e=this.sp.next();
} else {
this.i++;
}
return e;
};
iter.$$.prototype.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['T$LazyIterable',{t:Finished}]},ps:[],$cont:iter,an:function(){return[shared(),actual()];},d:['$','LazyIterable','$m','iterator','$o','it','$m','next']};};
}
that.iterator=function(){
return iter(this);
};
that.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'T$LazyIterable'}},ps:[],$cont:$sarg,an:function(){return[shared(),actual()];},d:['$','LazyIterable','$m','iterator']};};
})(sarg$.$$.prototype);
}
return sarg$;
}
$init$sarg();
ex$.$init$sarg=$init$sarg;
$init$sarg();
function nfor$(c) {
var a = [];
var item;
for (var iter = c.iterator();(item=iter.next())!==finished();){
a.push(item);
}
return a;
}
ex$.nfor$=nfor$;
function variadicness(t) {
if (extendsType(t,{t:Tuple})) {
if (t.t==='T' && t.l.length>0) {
return t.l[t.l.length-1].seq || 0;
}
} else if (extendsType(t,{t:Sequence})) {
return 2;
} else if (extendsType(t,{t:Sequential})) {
return 1;
}
return 0;
}
function $_String(/*{Character*}*/value) {
if (value && value.getT$name && value.getT$name() == 'ceylon.language::String') {
//if it's already a String just return it
return value;
}
else if (typeof(value) === 'string') {
return new String(value);
}
var that = '';
var _iter = value.iterator();
var _c; while ((_c = _iter.next()) !== finished()) {
that += _c.string;
}
return that;
}
$_String.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'characters',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Character}}},an:function(){return[doc$($CCMM$,'$:String:$at:characters$s4g2uj')];}}],sts:[{t:SearchableList,a:{Element$SearchableList:{t:Character}}},{t:Comparable,a:{Other$Comparable:{t:$_String}}},{t:Summable,a:{Other$Summable:{t:$_String}}},{t:Ranged,a:{Subrange$Ranged:{t:$_String},Element$Ranged:{t:Character},Index$Ranged:{t:Integer}}}],pa:33,an:function(){return[doc$($CCMM$,'$:String'),by(["Gavin"].$sa$({t:$_String})),tagged(["Basic types","Strings"].$sa$({t:$_String})),$_native()];},d:['$','String']};};
ex$.$_String=$_String;function $init$$_String(){if($_String.$$===undefined){initExistingType($_String, String, 'ceylon.language::String', $_Object, $init$SearchableList(), $init$Comparable(),
$init$Ranged(), $init$Summable());
inheritProto($_String, $_Object, SearchableList, Comparable, Ranged, Summable);
var origStrToString = String.prototype.toString;
var str$proto = $_String.$$.prototype;
str$proto.$$targs$$={Element$Iterable:{t:Character}, Absent$Iterable:{t:Null},
Element$List:{t:Character}, Other$Summable:{t:$_String}, Other$Comparable:{t:$_String},
Index$Ranged:{t:Integer}, Element$Ranged:{t:Character}, Subrange$Ranged:{t:$_String},
Element$Collection:{t:Character}, Key$Correspondence:{t:Integer}, Item$Correspondence:{t:Character}};
str$proto.getT$name = function() {
return $_String.$$.T$name;
}
str$proto.getT$all = function() {
return $_String.$$.T$all;
}
str$proto.toString = origStrToString;
(function(string$){atr$(string$,'$fo',function(){return this.$fo_;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Character}}},$cont:$_String,an:function(){return[doc$($CCMM$,'$:String:$at:characters$s4g2uj')];},d:['$','String','$at','characters$s4g2uj']};});atr$(string$,'lowercased',function(){return this.toLowerCase();
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$at:lowercased'),$_native()];},d:['$','String','$at','lowercased']};});atr$(string$,'uppercased',function(){return this.toUpperCase();
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$at:uppercased'),$_native()];},d:['$','String','$at','uppercased']};});string$.$_split=function(sep, discard, group) {
//TODO: return a stream
var tokens = [];
// shortcut for empty input
if (this.length === 0) {
tokens.push(this);
return $arr$(tokens,{t:$_String});
}
if (sep === undefined) {sep = function(c){return c.value in Character.WS$;}}
if (discard === undefined) {discard = true}
if (group === undefined) {group = true}
var tokenBegin = 0;
var tokenBeginCount = 0;
var count = 0;
var value = this;
var separator = true;
function pushToken(tokenEnd) {
tokens.push($_String(value.substring(tokenBegin, tokenEnd)));
}
for (var i=0; i<this.length; ++count) {
var j = i;
var cp = this.charCodeAt(i++);
if ((cp&0xfc00)===0xd800 && i<this.length) {
cp = (cp<<10) + this.charCodeAt(i++) - 0x35fdc00;
}
if (sep(Character(cp))) {
if (!group) {
// ungrouped separator: store preceding token
pushToken(j);
if (!discard) {
// store separator as token
tokens.push($_String(this.substring(j, i)));
}
// next token begins after this character
tokenBegin = i;
tokenBeginCount = count + 1;
} else if (!separator || (j == 0)) {
// begin of grouped separator: store preceding token
pushToken(j);
// separator token begins at this character
tokenBegin = j;
tokenBeginCount = count;
}
separator = true;
} else if (separator) {
// first non-separator after separators or at beginning
if (!discard && (tokenBegin != j)) {
// store preceding grouped separator (if group=false then tokenBegin=j)
pushToken(j);
}
// non-separator token begins at this character
tokenBegin = j;
tokenBeginCount = count;
separator = false;
}
}
if ((tokenBegin != i) && !(separator && discard)) {
// store preceding token (may be a grouped separator)
pushToken(i);
}
if (separator) {
// if last character was a separator then there's another empty token
tokens.push("");
}
return $arr$(tokens,{t:$_String});
}
string$.$_split.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:{t:$_String}}},ps:[{nm:'splitting',mt:'prm',$pt:'f',def:1,$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'ch',mt:'prm',$t:{t:Character}}],an:function(){return[doc$($CCMM$,'$:String:$m:split:$m:splitting$5m47i6')];}},{nm:'discardSeparators',mt:'prm',def:1,$t:{t:$_Boolean},an:function(){return[doc$($CCMM$,'$:String:$m:split:$at:discardSeparators$2xsqte')];}},{nm:'groupSeparators',mt:'prm',def:1,$t:{t:$_Boolean},an:function(){return[doc$($CCMM$,'$:String:$m:split:$at:groupSeparators$5fnjcr')];}}],$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$m:split'),$_native()];},d:['$','String','$m','split']};};atr$(string$,'first',function(){return this.$_get(0);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Character}]},$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$at:first'),$_native()];},d:['$','String','$at','first']};});atr$(string$,'last',function(){return this.$_get(this.size-1);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Character}]},$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$at:last'),$_native()];},d:['$','String','$at','last']};});atr$(string$,'rest',function(){return $_String(this.Rest$List(1));
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$at:rest'),$_native()];},d:['$','String','$at','rest']};});string$.getFromLast=function getFromLast(i){
return this.getFromFirst(this.size-1-i);
}
string$.getFromLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Character}]},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:getFromLast'),$_native()];},d:['$','String','$m','getFromLast']};};atr$(string$,'keys',function(){var string$=this;return measure((0),string$.size,{Element$measure:{t:Integer}})},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Integer}}},$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$at:keys'),$_native()];},d:['$','String','$at','keys']};});string$.$_join=function(objects) {
var it = objects.iterator();
var obj = it.next();
if (obj === finished()) {return "";}
var str = obj.string;
var result = str;
while ((obj = it.next()) !== finished()) {
result += this;
str = obj.string;
result += str;
}
return $_String(result);
}
string$.$_join.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'objects',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:$_Object}}}}],$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$m:join'),$_native()];},d:['$','String','$m','join']};};atr$(string$,'lines',function(){var string$=this;return string$.$_split($JsCallable(($ft=Character(10,true),JsCallable($ft,$ft.equals)),[{nm:'that',mt:'prm',$t:{t:$_Object}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:$_Object}])}),true,false).spread($JsCallable(function(x){return JsCallable(x,x.trimTrailing);},[{nm:'_0',mt:'prm',$t:{t:$_String}}],{Return$Callable:{t:Callable,a:{Return$Callable:{t:$_String},Arguments$Callable:mtt$([{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:Character}])}}])}},Arguments$Callable:mtt$([{t:$_String}])}),{Result$spread:{t:$_String},Args$spread:mtt$([{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:Character}])}}])})($JsCallable(($fu=Character(13,true),JsCallable($fu,$fu.equals)),[{nm:'that',mt:'prm',$t:{t:$_Object}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:$_Object}])}))},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:$_String}}},$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$at:lines'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$$_String().$$.prototype.$prop$getLinesWithBreaks)].$sa$({t:ValueDeclaration$meta$declaration})),$_native()];},d:['$','String','$at','lines']};});atr$(string$,'linesWithBreaks',function(){var string$=this;return string$.$_split($JsCallable(($fv=Character(10,true),JsCallable($fv,$fv.equals)),[{nm:'that',mt:'prm',$t:{t:$_Object}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:$_Object}])}),false,false).partition(2).$_map($JsCallable((function($fw){return function(){var $fx=$fw.$_get(0),$fy=$fw.$_get(1);return function(){var $fz;if(nn$(($fz=$fy)))return $fx.plus($fz);else return $fx}();}();}),[{nm:'lineWithBreak',mt:'prm',$t:{t:Sequence,a:{Element$Sequence:{t:$_String}}}}],{Return$Callable:{t:$_String},Arguments$Callable:mtt$([{t:'u',l:[{t:Sequence,a:{Element$Sequence:{t:$_String}}},{t:$_String}],seq:2}])}),{Result$map:{t:$_String}})},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:$_String}}},$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$at:linesWithBreaks'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$$_String().$$.prototype.$prop$getLines)].$sa$({t:ValueDeclaration$meta$declaration})),$_native()];},d:['$','String','$at','linesWithBreaks']};});atr$(string$,'trimmed',function(){var string$=this;return string$.$_trim($JsCallable(function($O$){return $O$.whitespace;},[{nm:'_0',mt:'prm',$t:{t:Character}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:Character}])}))},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$at:trimmed'),$_native()];},d:['$','String','$at','trimmed']};});string$.$_trim=function(/*Category*/chars) {
var from = 0;
var size=this.size;
while (from<size && chars(this.$_get(from))) {++from}
var to = size;
if (from < to) {
do {--to} while (from<to && chars(this.$_get(to)));
++to;
}
if (from===0 && to===size) {return this;}
var result = this.substring(from, to);
return result;
}
string$.$_trim.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}],an:function(){return[doc$($CCMM$,'$:String:$m:trim:$m:trimming$kmx737')];}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:trim'),$_native()];},d:['$','String','$m','trim']};};string$.trimLeading=function(/*Category*/chars) {
var from = 0;
while (from<this.length && chars(this.$_get(from))) {++from}
if (from===0) {return this;}
var result = this.substring(from, this.length);
return result;
}
string$.trimLeading.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}],an:function(){return[doc$($CCMM$,'$:String:$m:trimLeading:$m:trimming$9a2hu7')];}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:trimLeading'),$_native()];},d:['$','String','$m','trimLeading']};};string$.trimTrailing=function(/*Boolean(Character)*/chars) {
var to = this.size;
if (to > 0) {
do {--to} while (to>=0 && chars(this.$_get(to)));
++to;
}
if (to===this.size) {return this;}
else if (to===0) { return ""; }
var result = this.substring(0, to);
return result;
}
string$.trimTrailing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}],an:function(){return[doc$($CCMM$,'$:String:$m:trimTrailing:$m:trimming$dvg0e1')];}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:trimTrailing'),$_native()];},d:['$','String','$m','trimTrailing']};};atr$(string$,'normalized',function(){// make use of the fact that all WS characters are single UTF-16 code units
var result = "";
var len = 0;
var first = true;
var i1 = 0;
while (i1 < this.length) {
while (this.charCodeAt(i1) in Character.WS$) {
if (++i1 >= this.length) {return result;}
}
var i2 = i1;
var cc = this.charCodeAt(i2);
do {
++i2;
if ((cc&0xfc00) === 0xd800) {++i2}
++len;
cc = this.charCodeAt(i2);
} while (i2<this.length && !(cc in Character.WS$));
if (!first) {
result += " ";
++len;
}
first = false;
result += this.substring(i1, i2);
i1 = i2+1;
}
return $_String(result, len);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$at:normalized'),$_native()];},d:['$','String','$at','normalized']};});atr$(string$,'reversed',function(){var result = "";
for (var i=this.length; i>0;) {
var cc = this.charCodeAt(--i);
if ((cc&0xfc00)!==0xdc00 || i===0) {
result += this.charAt(i);
} else {
result += this.substr(--i, 2);
}
}
return result;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$at:reversed'),$_native()];},d:['$','String','$at','reversed']};});string$.defines=function(i) {
return i>=0 && i<this.size;
}
string$.defines.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:defines'),$_native()];},d:['$','String','$m','defines']};};string$.span=function(from, to) {
if (from > to) {
return this.measure(to, from-to+1).reversed;
}
return this.measure(from, to-from+1);
}
string$.span.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:span'),$_native()];},d:['$','String','$m','span']};};string$.spanFrom=function($g1){var string$=this;return ($g2=(($g1<string$.size)?string$.span($g1,string$.size):null),nn$($g2)?$g2:"");};string$.spanFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:spanFrom'),$_native()];},d:['$','String','$m','spanFrom']};};string$.spanTo=function($g3){var string$=this;return ($g4=(($g3>=0)?string$.span(0,$g3):null),nn$($g4)?$g4:"");};string$.spanTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:spanTo'),$_native()];},d:['$','String','$m','spanTo']};};string$.measure=function(from, len) {
var fromIndex = from;
var maxCount = len + fromIndex;
if (fromIndex < 0) {fromIndex = 0;}
var i1 = 0;
var count = 0;
for (; i1<this.length && count<fromIndex; ++i1, ++count) {
if ((this.charCodeAt(i1)&0xfc00) === 0xd800) {++i1}
}
var i2 = i1;
for (; i2<this.length && count<maxCount; ++i2, ++count) {
if ((this.charCodeAt(i2)&0xfc00) === 0xd800) {++i2}
}
if (i2 >= this.length) {
if (fromIndex === 0) {return this;}
}
return $_String(this.substring(i1, i2));
}
string$.measure.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:measure'),$_native()];},d:['$','String','$m','measure']};};string$.initial=function(length) {
if (length >= this.size) {return this}
var count = 0;
var i = 0;
for (; i<this.length && count<length; ++i, ++count) {
if ((this.charCodeAt(i)&0xfc00) === 0xd800) {++i}
}
if (i >= this.length) {
return this;
}
return $_String(this.substr(0, i));
}
string$.initial.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:initial'),$_native()];},d:['$','String','$m','initial']};};string$.terminal=function(length) {
if (length >= this.size) {return this}
var count = 0;
var i = this.length;
for (; i>0 && count<length; ++count) {
if ((this.charCodeAt(--i)&0xfc00) === 0xdc00) {--i}
}
if (i <= 0) {
return this;
}
return $_String(this.substr(i));
}
string$.terminal.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:terminal'),$_native()];},d:['$','String','$m','terminal']};};string$.$_slice=function(idx) {
var s1 = idx>0 ? this.measure(0,idx) : '';
if (idx<0)idx=0;
var s2 = idx<this.size ? this.measure(idx,this.size) : '';
return tpl$([s1,s2]);
}
string$.$_slice.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{t:$_String},{t:$_String}]},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:slice'),$_native()];},d:['$','String','$m','slice']};};atr$(string$,'size',function(){if (this.$codept$===undefined) {
this.$codept$=countCodepoints(this);
}
return this.$codept$;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$at:size'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$$_String().$$.prototype.longerThan),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$$_String().$$.prototype.shorterThan)].$sa$({t:FunctionDeclaration$meta$declaration})),$_native()];},d:['$','String','$at','size']};});atr$(string$,'lastIndex',function(){var string$=this;return (((string$.size).valueOf()==(0).valueOf())?null:string$.size.minus(1))},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$at:lastIndex')];},d:['$','String','$at','lastIndex']};});string$.iterator=function(){
return this.length === 0 ? emptyIterator() : StringIterator(this);
}
string$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:Character}}},ps:[],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:iterator'),$_native()];},d:['$','String','$m','iterator']};};string$.getFromFirst=function(index){
if (index<0 || index>=this.length)
return null;
if (this._bumps===undefined)
this._bumps=[];
var cnt=0;
var mb=0;
for (var i=0;i<this._bumps.length;i++) {
mb=this._bumps[i];
if (mb<index)cnt++;
}
if (index<=this._maxidx) {
index+=cnt;
return Character(codepointFromString(this, index));
}
if (this._maxidx>mb)
mb=this._maxidx;
for (cnt=mb; cnt<index; cnt++) {
if ((this.charCodeAt(mb)&0xfc00) === 0xd800) {
this._bumps.push(mb);
++mb;
}
if (++mb >= this.length)
return null;
}
if (this._maxidx===undefined || mb>this._maxidx)
this._maxidx=mb;
return Character(codepointFromString(this, mb));
}
string$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Character}]},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:getFromFirst'),$_native()];},d:['$','String','$m','getFromFirst']};};string$.contains=function(sub) {
var str;
if (sub.constructor === String) {str = sub}
else if (sub.constructor !== Character.$$) {return false}
else {str = codepointToString(sub.value)}
return this.indexOf(str) >= 0;
}
string$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:$_Object}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:contains'),$_native()];},d:['$','String','$m','contains']};};string$.startsWith=function(str) {
if (str.size > this.size) {return false}
return cmpSubString(this, str, 0);
}
string$.startsWith.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'substring',mt:'prm',$t:{t:List,a:{Element$List:{t:Anything}}}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','startsWith']};};string$.endsWith=function(str) {
var start = this.length - str.length
if (start < 0) {return false}
return cmpSubString(this, str, start);
}
string$.endsWith.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'substring',mt:'prm',$t:{t:List,a:{Element$List:{t:Anything}}}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','endsWith']};};string$.plus=function(other) {
if (!is$(other,{t:$_String}))throw new TypeError("Expected String");
return $_String(this+other);
}
string$.plus.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'other',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:plus'),$_native()];},d:['$','String','$m','plus']};};string$.repeat=function(times) {
var x = this;
var s = "";
while (true) {
if (times & 1) { s += x; }
times >>= 1;
if (times) { x += x; }
else { break; }
}
return s;
}
string$.repeat.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'times',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:repeat'),$_native()];},d:['$','String','$m','repeat']};};string$.$_replace=function(sub, repl) {
var result = this;
var index = -1;
var from = 0;
while ((index = result.indexOf(sub,from)) >= 0) {
result = result.substring(0, index) + repl +
result.substring(index + sub.length);
from = index + repl.length;
}
return result;
}
string$.$_replace.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'substring',mt:'prm',$t:{t:$_String}},{nm:'replacement',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$m:replace'),$_native()];},d:['$','String','$m','replace']};};string$.replaceFirst=function(sub, repl) {
var index = this.indexOf(sub);
if (index >= 0) {
return this.substring(0, index) + repl +
this.substring(index + sub.length);
}
return this;
}
string$.replaceFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'substring',mt:'prm',$t:{t:$_String}},{nm:'replacement',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$m:replaceFirst'),$_native()];},d:['$','String','$m','replaceFirst']};};string$.replaceLast=function(sub, repl) {
var index = this.lastIndexOf(sub);
if (index >= 0) {
return this.substring(0, index) + repl +
this.substring(index + sub.length);
}
return this;
}
string$.replaceLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'substring',mt:'prm',$t:{t:$_String}},{nm:'replacement',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$m:replaceLast'),$_native()];},d:['$','String','$m','replaceLast']};};string$.compare=function(other) {
if (!is$(other,{t:$_String}))throw new TypeError("String expected");
return this==other ?
equal() :
(this<other ? smaller():larger());
}
string$.compare.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'other',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:compare'),$_native()];},d:['$','String','$m','compare']};};string$.compare.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'other',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:compare'),$_native()];},d:['$','String','$m','compare']};};string$.compareIgnoringCase=function($g7){var string$=this;var $g8=smallest(string$.size,$g7.size,{Element$smallest:{t:Integer}});var $ga=(0),$gb=$g8;for(var $gc=0;$gc<$gb;$gc++,($ga=$ga.successor)){var $gd,$ge;asrt$((nn$(($gd=string$.getFromFirst($ga)))&&nn$(($ge=$g7.getFromFirst($ga)))),"Assertion failed: \'exists thisChar = this.getFromFirst(i),\n                    exists thatChar = other.getFromFirst(i)\' at String.ceylon (408:19-409:59)",'408:12-409:60','String.ceylon');
if((((!$gd.equals($ge))&&(!$gd.uppercased.equals($ge.uppercased)))&&(!$gd.lowercased.equals($ge.lowercased)))){return $gd.lowercased.compare($ge.lowercased);}
}return string$.size.compare($g7.size);};string$.compareIgnoringCase.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'other',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$m:compareIgnoringCase'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Character().$$.prototype.$prop$getLowercased),$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Character().$$.prototype.$prop$getUppercased)].$sa$({t:ValueDeclaration$meta$declaration})),$_native()];},d:['$','String','$m','compareIgnoringCase']};};string$.longerThan=function(length) {
//TODO: OPTIMIZE THIS!
if (this.size <= length) {return false}
if (this.size<<1 > length) {return true}
return this.size>length;
}
string$.longerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:longerThan'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$$_String().$$.prototype.$prop$getSize)].$sa$({t:ValueDeclaration$meta$declaration})),$_native()];},d:['$','String','$m','longerThan']};};string$.shorterThan=function(length) {
//TODO: OPTIMIZE THIS!
if (this.size < length) {return true}
if (this.size<<1 >= length) {return false}
return this.size<length;
}
string$.shorterThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:shorterThan'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$$_String().$$.prototype.$prop$getSize)].$sa$({t:ValueDeclaration$meta$declaration})),$_native()];},d:['$','String','$m','shorterThan']};};string$.equals=function(other) {
if (other.constructor===String) {
return other.valueOf()===this.valueOf();
} else if (is$(other, {t:$_String})) {
if (other.size===this.size) {
var oi=other.iterator();
var ti=this.iterator();
var oc=oi.next(); var tc;
while((tc=ti.next())!=finished()){
if (!tc.equals(oc))return false;
oc=oi.next();
}
return true;
}
}
return false;
}
string$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:equals'),$_native()];},d:['$','String','$m','equals']};};string$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$m:equals'),$_native()];},d:['$','String','$m','equals']};};string$.equalsIgnoringCase=function($gf){var string$=this;if(!(string$.size==$gf.size)){return false;}
var $gg=smallest(string$.size,$gf.size,{Element$smallest:{t:Integer}});var $gi=(0),$gj=$gg;for(var $gk=0;$gk<$gj;$gk++,($gi=$gi.successor)){var $gl,$gm;asrt$((nn$(($gl=string$.getFromFirst($gi)))&&nn$(($gm=$gf.getFromFirst($gi)))),"Assertion failed: \'exists thisChar = this.getFromFirst(i),\n                    exists thatChar = that.getFromFirst(i)\' at String.ceylon (470:19-471:58)",'470:12-471:59','String.ceylon');
if((((!$gl.equals($gm))&&(!$gl.uppercased.equals($gm.uppercased)))&&(!$gl.lowercased.equals($gm.lowercased)))){return false;}
}return true;};string$.equalsIgnoringCase.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$m:equalsIgnoringCase'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Character().$$.prototype.$prop$getLowercased),$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Character().$$.prototype.$prop$getUppercased)].$sa$({t:ValueDeclaration$meta$declaration})),$_native()];},d:['$','String','$m','equalsIgnoringCase']};};atr$(string$,'hash',function(){if (this._hash === undefined) {
var h=0;
for (var i = 0; i < this.length; i++) {
var c = this.charCodeAt(i);
h=(31*h+c)&0xffffffff;
}
this._hash=h;
}
return this._hash;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$at:hash'),$_native()];},d:['$','String','$at','hash']};});atr$(string$,'string',function(){var string$=this;return string$},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$_String,pa:3,an:function(){return[doc("This string.")];},d:['$','String','$at','string']};});atr$(string$,'empty',function(){return this.length===0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$_String,pa:3,an:function(){return[doc$($CCMM$,'$:String:$at:empty'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$$_String().$$.prototype.$prop$getSize)].$sa$({t:ValueDeclaration$meta$declaration})),$_native()];},d:['$','String','$at','empty']};});atr$(string$,'coalesced',function(){var string$=this;return string$},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$_String,pa:3,an:function(){return[doc("This string.")];},d:['$','String','$at','coalesced']};});string$.clone=function(){var string$=this;return string$;};string$.clone.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[],$cont:$_String,pa:3,an:function(){return[doc("This string.")];},d:['$','String','$m','clone']};};string$.pad=function(size, character) {
var total = size - this.size;
if (total<=0) return this;
var right = Math.ceil(total / 2);
var left = total - right;
var c = (character || ' ').string;
return Array(left+1).join(c) + this +
Array(right+1).join(c);
}
string$.pad.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'size',mt:'prm',$t:{t:Integer}},{nm:'character',mt:'prm',def:1,$t:{t:Character},an:function(){return[doc("The padding character")];}}],$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$m:pad'),$_native()];},d:['$','String','$m','pad']};};string$.padLeading=function(size, character) {
var total = size - this.size;
if (total<=0) return this;
var c = (character || ' ').string;
return Array(total+1).join(c) + this;
}
string$.padLeading.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'size',mt:'prm',$t:{t:Integer}},{nm:'character',mt:'prm',def:1,$t:{t:Character},an:function(){return[doc("The padding character")];}}],$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$m:padLeading'),$_native()];},d:['$','String','$m','padLeading']};};string$.padTrailing=function(size, character) {
var total = size - this.size;
if (total<=0) return this;
var c = (character || ' ').string;
return this + Array(total+1).join(c);
}
string$.padTrailing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'size',mt:'prm',$t:{t:Integer}},{nm:'character',mt:'prm',def:1,$t:{t:Character},an:function(){return[doc("The padding character")];}}],$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$m:padTrailing'),$_native()];},d:['$','String','$m','padTrailing']};};string$.copyTo=function(d,sp,dp,l){
if (sp===undefined)sp=0;
if (dp===undefined)dp=0;
if (l===undefined)l=Math.min(this.size-sp,d.size-dp);
if (l===0)return;
for (var i=sp;i<sp+l;i++){
d.set(dp++,this.$_get(i));
}
}
string$.copyTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'destination',mt:'prm',$t:{t:$_Array,a:{Element$Array:{t:Character}}},an:function(){return[doc("The array into which to copy the elements.")];}},{nm:'sourcePosition',mt:'prm',def:1,$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:String:$m:copyTo:$at:sourcePosition$t0pcyo')];}},{nm:'destinationPosition',mt:'prm',def:1,$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:String:$m:copyTo:$at:destinationPosition$hqb597')];}},{nm:'length',mt:'prm',def:1,$t:{t:Integer},an:function(){return[doc("The number of elements to copy.")];}}],$cont:$_String,pa:1,an:function(){return[doc$($CCMM$,'$:String:$m:copyTo'),$_native()];},d:['$','String','$m','copyTo']};};string$.sublistFrom=function(from){
return this.spanFrom(from);
}
string$.sublistFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:Character}}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','sublistFrom']};};string$.sublistTo=function(to){
return this.spanTo(to);
}
string$.sublistTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:Character}}},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','sublistTo']};};string$.indexesWhere=function(f){
var r=[];
for (var i=0;i<this.size;i++) {
if (f(this.$_get(i)))r.push(i);
}
return r.length>0?$arr$(r,{t:Integer}):empty();
}
string$.indexesWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}}},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','indexesWhere']};};string$.firstIndexWhere=function(f){
for (var i=0;i<this.size;i++) {
if (f(this.$_get(i)))return i;
}
return null
}
string$.firstIndexWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','firstIndexWhere']};};string$.lastIndexWhere=function(f){
for (var i=this.size-1; i>=0;i--) {
var c = this.$_get(i);
if (f(c))return i;
}
return null;
}
string$.lastIndexWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','lastIndexWhere']};};string$.occurrences=function(e,from,len){
if (from===undefined||from<0)from=0;
if (len===undefined)len=this.size;
var r=[];
for (var i=from;i<len;i++) {
if (this.$_get(i).equals(e))r.push(i);
}
return r.length>0?$arr$(r,{t:Integer}):empty();
}
string$.occurrences.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}}},ps:[{nm:'element',mt:'prm',$t:{t:Character}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','occurrences']};};string$.inclusions=function (e,from) {
if (e.size===0) return span(0,this.size,{t:Integer});
if (from===undefined||from<0)from=0;
else if (from>=this.size)return empty();
if (is$(e, {t:$_String})) {
var indexes = [];
for (var i=from; i < this.size-e.size + 1; i++) {
if (cmpSubString(this, e, i))indexes.push(i);
}
return $arr$(indexes,{t:Integer});
}
else {
return SearchableList.$$.prototype.inclusions.call(this,e,from);
}
}
string$.inclusions.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}}},ps:[{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:{t:Character}}}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','inclusions']};};string$.occurs=function (e,from,len) {
var fo=this.firstOccurrence(e,from,len);
return fo!==null && fo>=0;
}
string$.occurs.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','occurs']};};string$.occursAt=function (i,e) {
return e.equals(this.getFromFirst(i));
}
string$.occursAt.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'element',mt:'prm',$t:{t:Character}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','occursAt']};};string$.includes=function (e,from) {
if (e.size===0)return true;
if (from===undefined||from<0)from=0;
else if (from>=this.size)return false;
if (is$(e, {t:$_String})) {
var fi=this.firstInclusion(e,from);
return fi!==null && fi>=0;
}
else {
return SearchableList.$$.prototype.includes.call(this,e,from);
}
}
string$.includes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:{t:Character}}}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','includes']};};string$.includesAt=function (i,e) {
if (e.size===0)return true;
if (is$(e, {t:$_String})) {
if (i<0 || i>this.size-e.size)return false;
return cmpSubString(this,e,i);
}
else {
return SearchableList.$$.prototype.includesAt.call(this,i,e);
}
}
string$.includesAt.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:{t:Character}}}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','includesAt']};};string$.firstOccurrence=function(subc,from,len) {
if (!is$(subc, {t:Character})) return null;
if (from===undefined || from<0)from=0;
else if (from>=this.size)return null;
if (len===undefined)len=this.size-from;
var lim=len+from;
if (lim>this.size)lim=this.size;
for (var i=from, count=0; i<lim; count++) {
var cp = this.charCodeAt(i++);
if (((cp&0xfc00) === 0xd800) && i<this.length) {
cp = (cp<<10) + this.charCodeAt(i++) - 0x35fdc00;
}
if (cp === subc.value) {return count+from;}
}
return null;
}
string$.firstOccurrence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'element',mt:'prm',$t:{t:Character}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','firstOccurrence']};};string$.lastOccurrence=function(subc,from,len) {
if (from===undefined||from<0)from=0;
else if (from>this.size)return null;
if (len===undefined)len=this.size-from;
var end=this.size-len-from;
for (var i=this.size-from-1, count=0; i>=end; count++) {
var cp = this.charCodeAt(i--);
if (((cp%0xfc00) === 0xdc00) && i>=0) {
cp = (this.charCodeAt(i--)<<10) + cp - 0x35fdc00;
}
if (cp === subc.value) {
return this.size-from-count-1;
}
}
return null;
}
string$.lastOccurrence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'element',mt:'prm',$t:{t:Character}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','lastOccurrence']};};string$.firstInclusion=function (e,from) {
if (from===undefined || from<0)from=0;
else if (from>this.size)return null;
if (e.size===0)return from;
if (is$(e, {t:$_String})) {
for (var i=from; i < this.size-e.size+1; i++) {
if (cmpSubString(this,e,i))return i;
}
return null;
}
else {
return SearchableList.$$.prototype.firstInclusion.call(this,e,from);
}
}
string$.firstInclusion.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:{t:Character}}}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','firstInclusion']};};string$.lastInclusion=function (e,from) {
if (from===undefined)from=0;
if (e.size===0) return this.size-from;
if (is$(e, {t:$_String})) {
for (var i=this.size-from-e.size; i>=0; i--) {
if (cmpSubString(this,e,i))return i;
}
return null;
}
else {
return SearchableList.$$.prototype.lastInclusion.call(this,e,from);
}
}
string$.lastInclusion.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:{t:Character}}}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','lastInclusion']};};string$.largerThan=function(o){
return Comparable.$$.prototype.largerThan.call(this,o);
}
string$.largerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','largerThan']};};string$.smallerThan=function(o){
return Comparable.$$.prototype.smallerThan.call(this,o);
}
string$.smallerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','smallerThan']};};string$.notSmallerThan=function(o){
return Comparable.$$.prototype.notSmallerThan.call(this,o);
}
string$.notSmallerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','notSmallerThan']};};string$.notLargerThan=function(o){
return Comparable.$$.prototype.notLargerThan.call(this,o);
}
string$.notLargerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_String}}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','notLargerThan']};};string$.each=function(f){
for (var i=0;i<this.size;i++) {
f(this.$_get(i));
}
}
string$.each.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'step',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Anything},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:Anything},ps:[{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','each']};};string$.count=function(f){
var c=0;
for (var i=0;i<this.size;i++){
if (f(this.$_get(i)))c++;
}
return c;
}
string$.count.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','count']};};string$.$_every=function(f) {
for (var i=0;i<this.size;i++){
if (!f(this.$_get(i)))return false;
}
return true;
}
string$.$_every.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','every']};};string$.any=function(f) {
for (var i=0;i<this.size;i++) {
if (f(this.$_get(i)))return true;
}
return false;
}
string$.any.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','any']};};string$.$_reduce=function(f){
if (this.length===0)return null;
var r=this.$_get(0);
for (var i=1;i<this.size;i++) {
r=f(r,this.$_get(i));
}
return r;
}
string$.$_reduce.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Result$reduce',{t:Character},{t:Null}]},ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$reduce',Arguments$Callable:{t:'T',l:[{t:'u',l:['Result$reduce',{t:Character}]},{t:Character}]}}},$rt:'Result$reduce',ps:[{nm:'partial',mt:'prm',$t:{t:'u',l:['Result$reduce',{t:Character}]}},{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,tp:{Result$reduce:{}},pa:3,an:function(){return[$_native()];},d:['$','String','$m','reduce']};};string$.find=function(f){
for (var i=0;i<this.size;i++){
if (f(this.$_get(i)))return this.$_get(i);
}
return null;
}
string$.find.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Character}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','find']};};string$.findLast=function(f){
for (var i=this.size-1;i>=0;i--){
if (f(this.$_get(i)))return this.$_get(i);
}
return null;
}
string$.findLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Character}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','findLast']};};string$.locate=function(f){
for (var i=0;i<this.size;i++){
if (f(this.$_get(i)))return Entry(i,this.$_get(i),{Key$Entry:{t:Integer},Item$Entry:{t:Character}});
}
return null;
}
string$.locate.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:Character}}}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','locate']};};string$.locateLast=function(f){
for (var i=this.size-1;i>=0;i--){
if (f(this.$_get(i)))return Entry(i,this.$_get(i),{Key$Entry:{t:Integer},Item$Entry:{t:Character}});
}
return null;
}
string$.locateLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:Character}}}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','locateLast']};};string$.locations=function(f){
var r=[];
var _t={t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:Character}}};
for (var i=0;i<this.size;i++) {
var c=this.$_get(i);
if (f(c))r.push(Entry(i,c,_t.a));
}
return r.length>0?$arr$(r,_t):empty();
}
string$.locations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:Character}}}}},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Character}}]}],$cont:$_String,pa:3,an:function(){return[$_native()];},d:['$','String','$m','locations']};};})($_String.$$.prototype);}
return $_String;}
ex$.$init$$_String=$init$$_String;$init$$_String();var $ft,$fu,$fv,$g2,$g4;function cmpSubString(str, subStr, offset) {
for (var i=0; i<subStr.length; ++i) {
if (str.charCodeAt(offset+i)!==subStr.charCodeAt(i)) {return false}
}
return true;
}
function StringIterator(string) {
var that = new StringIterator.$$;
that.str = string;
that.index = 0;
return that;
}
StringIterator.$crtmm$=function(){return{nm:'StringIterator',mt:'c',ps:[{nm:'string',$t:{t:$_String}}],pa:1,mod:$CCMM$,d:['$','Iterator']}};
initTypeProto(StringIterator, 'ceylon.language::StringIterator', $init$Basic(), Iterator);
var StringIterator$proto = StringIterator.$$.prototype;
StringIterator$proto.$$targs$$={Element$Iterator:{t:Character}, Absent$Iterator:{t:Null}};
StringIterator$proto.next = function() {
if (this.index >= this.str.length) { return finished(); }
var first = this.str.charCodeAt(this.index++);
if ((first&0xfc00) !== 0xd800 || this.index >= this.str.length) {
return Character(first);
}
return Character((first<<10) + this.str.charCodeAt(this.index++) - 0x35fdc00);
}
function countCodepoints(str) {
var count = 0;
for (var i=0; i<str.length; ++i) {
++count;
if ((str.charCodeAt(i)&0xfc00) === 0xd800) {++i}
}
return count;
}
function codepointToString(cp) {
if (cp <= 0xffff) {
return String.fromCharCode(cp);
}
return String.fromCharCode((cp>>10)+0xd7c0, (cp&0x3ff)+0xdc00);
}
function codepointFromString(str, index) {
var first = str.charCodeAt(index);
if ((first&0xfc00) !== 0xd800) {return first}
var second = str.charCodeAt(index+1);
return isNaN(second) ? first : ((first<<10) + second - 0x35fdc00);
}
ex$.codepointFromString=codepointFromString;
var properties = {};
if (typeof navigator !== "undefined") {
if (navigator.language !== undefined) {
properties["user.language"] = $_String(navigator.language);
}
if (navigator.platform !== undefined) {
properties["os.name"] = $_String(navigator.platform);
}
if (navigator.languages||navigator.userLanguage||navigator.browserLanguage||navigator.language) {
properties["user.locale"]=$_String((navigator.languages || [navigator.userLanguage||navigator.browserLanguage||navigator.language])[0]);
}
if (navigator.appVersion !== undefined) {
properties["browser.version"] = $_String(navigator.appVersion);
}
}
if (typeof process !== "undefined") {
if (process.platform !== undefined) {
properties["os.name"] = $_String(process.platform);
}
if (process.arch !== undefined) {
properties["os.arch"] = $_String(process.arch);
}
if (process.versions !== undefined && process.versions.node != undefined) {
properties["node.version"] = $_String(process.versions.node);
}
}
if (typeof document !== "undefined") {
if (document.defaultCharset !== undefined) {
properties["file.encoding"] = $_String(document.defaultCharset);
}
}
var linesep = '\n';
var filesep = '/';
var pathsep = ':';
var osname = properties["os.name"];
if ((osname !== undefined) && (osname.search(/win/i) >= 0 && osname.search(/darwin/i)<0)) {
linesep = "\r\n";
filesep = '\\';
pathsep = ';';
}
properties["line.separator"] = linesep;
properties["file.separator"] = filesep;
properties["path.separator"] = pathsep;
function _process_pick_writeLine() {
if ((typeof process !== "undefined") && (process.stdout !== undefined)) {
return function(line) {
if(line)this.write(line.valueOf());
this.write(linesep.valueOf());
}
} else if ((typeof console !== "undefined") && (console.log !== undefined)) {
return function(line) {
console.log(line?line.valueOf():'');
}
}
return function(){};
}
function _process_pick_writeErrorLine() {
if ((typeof process !== "undefined") && (process.stderr !== undefined)) {
return function(line) {
if(line)this.writeError(line.valueOf());
this.writeError(linesep.valueOf());
}
} else if ((typeof console !== "undefined") && (console.error !== undefined)) {
return function(line) {
console.error(line?line.valueOf():'');
}
}
return function(x){this.writeLine(x);}
}
function Annotated(annotated$){}
Annotated.$crtmm$=function(){return{mod:$CCMM$,pa:1,an:function(){return[doc$($CCMM$,'$:Annotated'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Annotation)].$sa$({t:InterfaceDeclaration$meta$declaration}))];},d:['$','Annotated']};};
ex$.Annotated=Annotated;function $init$Annotated(){if(Annotated.$$===undefined){initTypeProtoI(Annotated,'ceylon.language::Annotated');
(function(annotated$){annotated$.annotated={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:Annotated,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:5,an:function(){return[doc$($CCMM$,'$:Annotated:$m:annotated')];},d:['$','Annotated','$m','annotated']};}};})(Annotated.$$.prototype);}
return Annotated;}
ex$.$init$Annotated=$init$Annotated;$init$Annotated();function Annotation(annotation$){}
Annotation.$crtmm$=function(){return{mod:$CCMM$,of:[{t:ConstrainedAnnotation,a:{Values$ConstrainedAnnotation:{t:Anything},ProgramElement$ConstrainedAnnotation:{t:Nothing},Value$ConstrainedAnnotation:{t:Annotation},Type$ConstrainedAnnotation:{t:Anything}}}],pa:1,an:function(){return[doc$($CCMM$,'$:Annotation'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),OptionalAnnotation),$init$OpenInterface$jsint()(lmp$(ex$,'$'),SequencedAnnotation),$init$OpenFunction$jsint()(lmp$(ex$,'ceylon.language.meta'),annotations$meta),$init$OpenFunction$jsint()(lmp$(ex$,'ceylon.language.meta'),optionalAnnotation$meta),$init$OpenFunction$jsint()(lmp$(ex$,'ceylon.language.meta'),sequencedAnnotations$meta)].$sa$(mut$([{t:InterfaceDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}])))];},d:['$','Annotation']};};
ex$.Annotation=Annotation;function $init$Annotation(){if(Annotation.$$===undefined){initTypeProtoI(Annotation,'ceylon.language::Annotation');
}
return Annotation;}
ex$.$init$Annotation=$init$Annotation;$init$Annotation();function ArraySequence($gr,$$targs$$,arraySequence$){$init$ArraySequence();
if(arraySequence$===undefined)arraySequence$=new ArraySequence.$$;
set_type_args(arraySequence$,$$targs$$);
arraySequence$.$gr_=$gr;$_Object(arraySequence$);Sequence({Element$Sequence:$$targs$$.Element$ArraySequence},arraySequence$);asrt$((!arraySequence$.$gr.empty),"Assertion failed: \'!array.empty\' at ArraySequence.ceylon (20:11-20:24)",'20:4-20:25','ArraySequence.ceylon');
arraySequence$.getFromFirst=function($gs){return arraySequence$.$gr.getFromFirst($gs);};arraySequence$.contains=function($gt){return arraySequence$.$gr.contains($gt);};atr$(arraySequence$,'size',function(){return arraySequence$.$gr.size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:ArraySequence,pa:3,d:['$','ArraySequence','$at','size']};});arraySequence$.iterator=function(){return arraySequence$.$gr.iterator();};atr$(arraySequence$,'rest',function(){return ($gu=(((arraySequence$.size).valueOf()==(1).valueOf())?empty():null),nn$($gu)?$gu:ArraySequence(arraySequence$.$gr.spanFrom(1),{Element$ArraySequence:arraySequence$.$$targs$$.Element$ArraySequence}));},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$ArraySequence'}},$cont:ArraySequence,pa:3,d:['$','ArraySequence','$at','rest']};});var $gu;arraySequence$.clone=function(){return ArraySequence(arraySequence$.$gr.clone(),{Element$ArraySequence:arraySequence$.$$targs$$.Element$ArraySequence});};arraySequence$.each=function($gv){return arraySequence$.$gr.each(JsCallable(arraySequence$,$gv));};arraySequence$.count=function($gw){return arraySequence$.$gr.count(JsCallable(arraySequence$,$gw));};arraySequence$.$_every=function($gx){return arraySequence$.$gr.$_every(JsCallable(arraySequence$,$gx));};arraySequence$.any=function($gy){return arraySequence$.$gr.any(JsCallable(arraySequence$,$gy));};arraySequence$.find=function($gz){return arraySequence$.$gr.find(JsCallable(arraySequence$,$gz));};arraySequence$.findLast=function($h0){return arraySequence$.$gr.findLast(JsCallable(arraySequence$,$h0));};return arraySequence$;}
ArraySequence.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'array',mt:'prm',$t:{t:$_Array,a:{Element$Array:'Element$ArraySequence'}}}],tp:{Element$ArraySequence:{dv:'out'}},sts:[{t:Sequence,a:{Element$Sequence:'Element$ArraySequence'}}],pa:2097,an:function(){return[doc$($CCMM$,'$:ArraySequence'),by(["Tom"].$sa$({t:$_String})),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),sequence)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Collections","Sequences"].$sa$({t:$_String}))];},d:['$','ArraySequence']};};
ex$.ArraySequence=ArraySequence;function $init$ArraySequence(){if(ArraySequence.$$===undefined){initTypeProto(ArraySequence,'ceylon.language::ArraySequence',$init$$_Object(),$init$Sequence());
(function(arraySequence$){atr$(arraySequence$,'$gr',function(){return this.$gr_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:'Element$ArraySequence'}},$cont:ArraySequence,d:['$','ArraySequence','$at','array$sfdy8d']};});arraySequence$.getFromFirst=function($gs){var arraySequence$=this;return arraySequence$.$gr.getFromFirst($gs);};arraySequence$.contains=function($gt){var arraySequence$=this;return arraySequence$.$gr.contains($gt);};atr$(arraySequence$,'size',function(){var arraySequence$=this;return arraySequence$.$gr.size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:ArraySequence,pa:3,d:['$','ArraySequence','$at','size']};});arraySequence$.iterator=function(){var arraySequence$=this;return arraySequence$.$gr.iterator();};atr$(arraySequence$,'first',function(){var arraySequence$=this;var $h1;if(nn$(($h1=arraySequence$.$gr.first))){return $h1;}
else{var $h2;asrt$((is$(($h2=null),arraySequence$.$$targs$$.Element$ArraySequence)),"Assertion failed: \'is Element null\' at ArraySequence.ceylon (37:19-37:35)",'37:12-37:36','ArraySequence.ceylon');
return null;}
},undefined,function(){return{mod:$CCMM$,$t:'Element$ArraySequence',$cont:ArraySequence,pa:3,d:['$','ArraySequence','$at','first']};});atr$(arraySequence$,'last',function(){var arraySequence$=this;var $h3;if(nn$(($h3=arraySequence$.$gr.last))){return $h3;}
else{var $h4;asrt$((is$(($h4=null),arraySequence$.$$targs$$.Element$ArraySequence)),"Assertion failed: \'is Element null\' at ArraySequence.ceylon (47:19-47:35)",'47:12-47:36','ArraySequence.ceylon');
return null;}
},undefined,function(){return{mod:$CCMM$,$t:'Element$ArraySequence',$cont:ArraySequence,pa:3,d:['$','ArraySequence','$at','last']};});atr$(arraySequence$,'rest',function(){var arraySequence$=this;return ($h5=(((arraySequence$.size).valueOf()==(1).valueOf())?empty():null),nn$($h5)?$h5:ArraySequence(arraySequence$.$gr.spanFrom(1),{Element$ArraySequence:arraySequence$.$$targs$$.Element$ArraySequence}));},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$ArraySequence'}},$cont:ArraySequence,pa:3,d:['$','ArraySequence','$at','rest']};});arraySequence$.clone=function(){var arraySequence$=this;return ArraySequence(arraySequence$.$gr.clone(),{Element$ArraySequence:arraySequence$.$$targs$$.Element$ArraySequence});};arraySequence$.each=function($gv){var arraySequence$=this;return arraySequence$.$gr.each(JsCallable(arraySequence$,$gv));};arraySequence$.count=function($gw){var arraySequence$=this;return arraySequence$.$gr.count(JsCallable(arraySequence$,$gw));};arraySequence$.$_every=function($gx){var arraySequence$=this;return arraySequence$.$gr.$_every(JsCallable(arraySequence$,$gx));};arraySequence$.any=function($gy){var arraySequence$=this;return arraySequence$.$gr.any(JsCallable(arraySequence$,$gy));};arraySequence$.find=function($gz){var arraySequence$=this;return arraySequence$.$gr.find(JsCallable(arraySequence$,$gz));};arraySequence$.findLast=function($h0){var arraySequence$=this;return arraySequence$.$gr.findLast(JsCallable(arraySequence$,$h0));};arraySequence$.$_reduce=function($h6,$tr81lg$){var arraySequence$=this;var $h7;asrt$((nn$(($h7=arraySequence$.$gr.$_reduce(JsCallable(arraySequence$,$h6),{Result$reduce:$tr81lg$.Result$reduce})))),"Assertion failed: \'exists result \n            = array.reduce(accumulating)\' at ArraySequence.ceylon (79:15-80:40)",'79:8-80:41','ArraySequence.ceylon');
return $h7;};arraySequence$.$_reduce.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Result$reduce','Element$ArraySequence']},ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$reduce',Arguments$Callable:{t:'T',l:[{t:'u',l:['Result$reduce','Element$ArraySequence']},'Element$ArraySequence']}}},$rt:'Result$reduce',ps:[{nm:'partial',mt:'prm',$t:{t:'u',l:['Result$reduce','Element$ArraySequence']}},{nm:'element',mt:'prm',$t:'Element$ArraySequence'}]}],$cont:ArraySequence,tp:{Result$reduce:{}},pa:3,d:['$','ArraySequence','$m','reduce']};};arraySequence$.collect=function($h8,$19dvvg$){var arraySequence$=this;var $h9;asrt$((ne$(($h9=arraySequence$.$gr.collect(JsCallable(arraySequence$,$h8),{Result$collect:$19dvvg$.Result$collect})))),"Assertion failed: \'nonempty sequence \n            = array.collect(collecting)\' at ArraySequence.ceylon (87:15-88:39)",'87:8-88:40','ArraySequence.ceylon');
return $h9;};arraySequence$.collect.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Result$collect'}},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$collect',Arguments$Callable:{t:'T',l:['Element$ArraySequence']}}},$rt:'Result$collect',ps:[{nm:'element',mt:'prm',$t:'Element$ArraySequence'}]}],$cont:ArraySequence,tp:{Result$collect:{}},pa:3,d:['$','ArraySequence','$m','collect']};};arraySequence$.$_sort=function($ha){var arraySequence$=this;var $hb;asrt$((ne$(($hb=arraySequence$.$gr.$_sort(JsCallable(arraySequence$,$ha))))),"Assertion failed: \'nonempty sequence \n            = array.sort(comparing)\' at ArraySequence.ceylon (95:15-96:35)",'95:8-96:36','ArraySequence.ceylon');
return $hb;};arraySequence$.$_sort.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Element$ArraySequence'}},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Element$ArraySequence','Element$ArraySequence']}}},$rt:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:'Element$ArraySequence'},{nm:'y',mt:'prm',$t:'Element$ArraySequence'}]}],$cont:ArraySequence,pa:3,d:['$','ArraySequence','$m','sort']};};arraySequence$.measure=function($hc,$hd){var arraySequence$=this;if(((($hc>arraySequence$.lastIndex)||($hd<=0))||($hc.plus($hd)<=0))){return empty();}
else{return ArraySequence(arraySequence$.$gr.measure($hc,$hd),{Element$ArraySequence:arraySequence$.$$targs$$.Element$ArraySequence});}
};arraySequence$.measure.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$ArraySequence'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:ArraySequence,pa:3,d:['$','ArraySequence','$m','measure']};};arraySequence$.span=function($he,$hf){var arraySequence$=this;if(($he<=$hf)){return ((($hf<0)||($he>arraySequence$.lastIndex))?empty():ArraySequence(arraySequence$.$gr.span($he,$hf),{Element$ArraySequence:arraySequence$.$$targs$$.Element$ArraySequence}));}
else{return ((($he<0)||($hf>arraySequence$.lastIndex))?empty():ArraySequence(arraySequence$.$gr.span($he,$hf),{Element$ArraySequence:arraySequence$.$$targs$$.Element$ArraySequence}));}
};arraySequence$.span.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$ArraySequence'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:ArraySequence,pa:3,d:['$','ArraySequence','$m','span']};};arraySequence$.spanFrom=function($hg){var arraySequence$=this;if(($hg<=0)){return arraySequence$;}
else{if(($hg<arraySequence$.size)){return ArraySequence(arraySequence$.$gr.spanFrom($hg),{Element$ArraySequence:arraySequence$.$$targs$$.Element$ArraySequence});}
else{return empty();}
}
};arraySequence$.spanFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:ArraySequence,a:{Element$ArraySequence:'Element$ArraySequence'}},{t:Empty}]},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:ArraySequence,pa:3,d:['$','ArraySequence','$m','spanFrom']};};arraySequence$.spanTo=function($hh){var arraySequence$=this;if(($hh>=arraySequence$.lastIndex)){return arraySequence$;}
else{if(($hh>=0)){return ArraySequence(arraySequence$.$gr.spanTo($hh),{Element$ArraySequence:arraySequence$.$$targs$$.Element$ArraySequence});}
else{return empty();}
}
};arraySequence$.spanTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:ArraySequence,a:{Element$ArraySequence:'Element$ArraySequence'}},{t:Empty}]},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:ArraySequence,pa:3,d:['$','ArraySequence','$m','spanTo']};};})(ArraySequence.$$.prototype);}
return ArraySequence;}
ex$.$init$ArraySequence=$init$ArraySequence;$init$ArraySequence();ArraySequence.inst$$=function($hi){var arraySequence$=new ArraySequence.$$;
set_type_args(arraySequence$,{Element$ArraySequence:$hi.$$targs$$.Type$Class.a.Element$ArraySequence});
set_type_args(arraySequence$,{Element$Sequence:arraySequence$.$$targs$$.Element$ArraySequence,Element$Sequential:arraySequence$.$$targs$$.Element$ArraySequence,Element$List:arraySequence$.$$targs$$.Element$ArraySequence,Element$Collection:arraySequence$.$$targs$$.Element$ArraySequence,Element$Iterable:arraySequence$.$$targs$$.Element$ArraySequence,Absent$Iterable:{t:Null},Element$Category:{t:$_Object},Key$Correspondence:{t:Integer},Item$Correspondence:arraySequence$.$$targs$$.Element$ArraySequence,Element$Ranged:arraySequence$.$$targs$$.Element$ArraySequence,Subrange$Ranged:{t:List,a:{Element$List:arraySequence$.$$targs$$.Element$ArraySequence}},Index$Ranged:{t:Integer}});
return arraySequence$;};ArraySequence.ser$get$=function(ref,o){var n=ref.attribute.qualifiedName;if(n==='ceylon.language::ArraySequence.array')return o.$gr_;else throw new TypeError('unknown attribute');};ArraySequence.ser$set$=function(ref,o,i){if(!is$(ref,{t:Member$serialization}))throw AssertionError('unexpected reachable reference');var n=ref.attribute.qualifiedName;
if(n==='ceylon.language::ArraySequence.array')o.$gr_=i;
else throw new TypeError('unknown attribute');};ArraySequence.ser$refs$=function(o){return [MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$get$gr))];};var $h5;function AssertionError(msg,that){
$init$AssertionError();
if(that===undefined) {
that=new Error(msg);
that.getT$name=function(){return AssertionError.$$.prototype.constructor.T$name; };
that.getT$all=function(){return AssertionError.$$.prototype.constructor.T$all; };
that.equals=function(o){return this===o;};
that.description=msg;
that.message=msg;
that.string='ceylon.language::AssertionError "'+msg+'"';
that.printStackTrace=function(){printStackTrace(that);}
that.addSuppressed=Throwable.$$.prototype.addSuppressed;
that.suppressed=$arr$([],{t:Throwable});
}
that.$sm_=msg;
Throwable(msg,undefined,that);
return that;
}
AssertionError.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Throwable},ps:[{nm:'message',mt:'prm',$t:{t:$_String},an:function(){return[doc$($CCMM$,'$:AssertionError:$at:message$9g6fel')];}}],pa:1,an:function(){return[doc$($CCMM$,'$:AssertionError'),$_native()];},d:['$','AssertionError']};};
ex$.AssertionError=AssertionError;function $init$AssertionError(){if(AssertionError.$$===undefined){initTypeProto(AssertionError,'ceylon.language::AssertionError',$init$Throwable());
(function(assertionError$){atr$(assertionError$,'$hj',function(){return this.$hj_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AssertionError,an:function(){return[doc$($CCMM$,'$:AssertionError:$at:message$9g6fel')];},d:['$','AssertionError','$at','message$9g6fel']};});})(AssertionError.$$.prototype);}
return AssertionError;}
ex$.$init$AssertionError=$init$AssertionError;$init$AssertionError();function Binary($$targs$$,binary$){set_type_args(binary$,$$targs$$,Binary);binary$.set$defs$bit=function($hk,$hl){return true;};}
Binary.$crtmm$=function(){return{mod:$CCMM$,tp:{Other$Binary:{sts:[{t:Binary,a:{Other$Binary:'Other$Binary'}}]}},of:['Other$Binary'],pa:1,an:function(){return[doc$($CCMM$,'$:Binary'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Integer)].$sa$({t:ClassWithInitializerDeclaration$meta$declaration})),by(["Stef"].$sa$({t:$_String}))];},d:['$','Binary']};};
ex$.Binary=Binary;function $init$Binary(){if(Binary.$$===undefined){initTypeProtoI(Binary,'ceylon.language::Binary');
(function(binary$){binary$.$prop$getNot={$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Binary',$cont:Binary,pa:5,an:function(){return[doc$($CCMM$,'$:Binary:$at:not')];},d:['$','Binary','$at','not']};}};binary$.leftLogicalShift={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Binary',ps:[{nm:'shift',mt:'prm',$t:{t:Integer}}],$cont:Binary,pa:5,an:function(){return[doc$($CCMM$,'$:Binary:$m:leftLogicalShift')];},d:['$','Binary','$m','leftLogicalShift']};}};binary$.rightLogicalShift={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Binary',ps:[{nm:'shift',mt:'prm',$t:{t:Integer}}],$cont:Binary,pa:5,an:function(){return[doc$($CCMM$,'$:Binary:$m:rightLogicalShift')];},d:['$','Binary','$m','rightLogicalShift']};}};binary$.rightArithmeticShift={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Binary',ps:[{nm:'shift',mt:'prm',$t:{t:Integer}}],$cont:Binary,pa:5,an:function(){return[doc$($CCMM$,'$:Binary:$m:rightArithmeticShift')];},d:['$','Binary','$m','rightArithmeticShift']};}};binary$.and={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Binary',ps:[{nm:'other',mt:'prm',$t:'Other$Binary'}],$cont:Binary,pa:5,an:function(){return[doc$($CCMM$,'$:Binary:$m:and')];},d:['$','Binary','$m','and']};}};binary$.or={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Binary',ps:[{nm:'other',mt:'prm',$t:'Other$Binary'}],$cont:Binary,pa:5,an:function(){return[doc$($CCMM$,'$:Binary:$m:or')];},d:['$','Binary','$m','or']};}};binary$.xor={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Binary',ps:[{nm:'other',mt:'prm',$t:'Other$Binary'}],$cont:Binary,pa:5,an:function(){return[doc$($CCMM$,'$:Binary:$m:xor')];},d:['$','Binary','$m','xor']};}};binary$.$_get={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Binary,pa:5,an:function(){return[doc$($CCMM$,'$:Binary:$m:get')];},d:['$','Binary','$m','get']};}};binary$.set={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Binary',ps:[{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'bit',mt:'prm',def:1,$t:{t:$_Boolean}}],$cont:Binary,pa:5,an:function(){return[doc$($CCMM$,'$:Binary:$m:set')];},d:['$','Binary','$m','set']};}};binary$.clear=function($hm){var binary$=this;return binary$.set($hm,false);};binary$.clear.$crtmm$=function(){return{mod:$CCMM$,$t:'Other$Binary',ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Binary,pa:9,an:function(){return[doc$($CCMM$,'$:Binary:$m:clear')];},d:['$','Binary','$m','clear']};};binary$.flip={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Binary',ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Binary,pa:5,an:function(){return[doc$($CCMM$,'$:Binary:$m:flip')];},d:['$','Binary','$m','flip']};}};})(Binary.$$.prototype);}
return Binary;}
ex$.$init$Binary=$init$Binary;$init$Binary();function Byte(bits,that) {
$init$Byte();
if (that===undefined)that=new Byte.$$;
$_Object(that);
Binary({Other$Binary:{t:Byte}},that);
Invertible({Other$Invertible:{t:Byte}},that);
Enumerable({Other$Enumerable:{t:Byte}},that);
var remainder = bits%256;
that.val$ = remainder>=0 ? remainder : 256+remainder;
return that;
}
Byte.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'congruent',mt:'prm',$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:Byte:$at:congruent$4ssbsl')];}}],sts:[{t:Binary,a:{Other$Binary:{t:Byte}}},{t:Invertible,a:{Other$Invertible:{t:Byte}}},{t:Enumerable,a:{Other$Enumerable:{t:Byte}}}],pa:33,an:function(){return[doc$($CCMM$,'$:Byte'),tagged(["Basic types"].$sa$({t:$_String})),$_native()];},d:['$','Byte']};};
ex$.Byte=Byte;function $init$Byte(){if(Byte.$$===undefined){initTypeProto(Byte,'ceylon.language::Byte',$init$$_Object(),$init$Binary(),$init$Invertible(),$init$Enumerable());
(function(byte$){atr$(byte$,'$hn',function(){return this.$hn_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Byte,an:function(){return[doc$($CCMM$,'$:Byte:$at:congruent$4ssbsl')];},d:['$','Byte','$at','congruent$4ssbsl']};});atr$(byte$,'even',function(){return (this.val$ & 1) == 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Byte,pa:1,an:function(){return[doc$($CCMM$,'$:Byte:$at:even'),$_native()];},d:['$','Byte','$at','even']};});atr$(byte$,'zero',function(){return this.val$ == 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Byte,pa:1,an:function(){return[doc$($CCMM$,'$:Byte:$at:zero'),$_native()];},d:['$','Byte','$at','zero']};});atr$(byte$,'unit',function(){return this.val$ == 1;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Byte,pa:1,an:function(){return[doc$($CCMM$,'$:Byte:$at:unit'),$_native()];},d:['$','Byte','$at','unit']};});atr$(byte$,'unsigned',function(){return this.val$;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Byte,pa:1,an:function(){return[doc$($CCMM$,'$:Byte:$at:unsigned'),$_native()];},d:['$','Byte','$at','unsigned']};});atr$(byte$,'signed',function(){return this.val$<=127 ? this.val$ : this.val$-256;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Byte,pa:1,an:function(){return[doc$($CCMM$,'$:Byte:$at:signed'),$_native()];},d:['$','Byte','$at','signed']};});atr$(byte$,'negated',function(){return this.val$==0 ? this : Byte(256-this.val$);
},undefined,function(){return{mod:$CCMM$,$t:{t:Byte},$cont:Byte,pa:3,an:function(){return[doc$($CCMM$,'$:Byte:$at:negated'),$_native()];},d:['$','Byte','$at','negated']};});byte$.plus=function(b) {
return Byte(this.val$+b.val$);
}
byte$.plus.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Byte},ps:[{nm:'other',mt:'prm',$t:{t:Byte}}],$cont:Byte,pa:3,an:function(){return[doc$($CCMM$,'$:Byte:$m:plus'),$_native()];},d:['$','Byte','$m','plus']};};byte$.and=function(b) {
return Byte(this.val$ & b.val$);
}
byte$.and.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Byte},ps:[{nm:'other',mt:'prm',$t:{t:Byte}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','and']};};byte$.flip=function(i) {
if (i<0||i>7)return this;
var bit = this.val$&(1<<i);
if (bit>0) {
return Byte(this.val$&(0xff^(1<<i)));
} else {
return Byte(this.val$|(1<<i));
}
}
byte$.flip.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Byte},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','flip']};};byte$.$_get=function(idx) {
if (idx>0 && idx<8) {
return (this.val$&(1<<idx))>0;
}
return false;
}
byte$.$_get.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','get']};};byte$.leftLogicalShift=function(bits) {
return Byte(this.val$<<bits);
}
byte$.leftLogicalShift.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Byte},ps:[{nm:'shift',mt:'prm',$t:{t:Integer}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','leftLogicalShift']};};atr$(byte$,'not',function(){return Byte(this.val$^0xff);
},undefined,function(){return{mod:$CCMM$,$t:{t:Byte},$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$at','not']};});byte$.or=function(b) {
return Byte(this.val$|b.val$);
}
byte$.or.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Byte},ps:[{nm:'other',mt:'prm',$t:{t:Byte}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','or']};};byte$.rightArithmeticShift=function(bits) {
return Byte(this.signed>>bits);
}
byte$.rightArithmeticShift.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Byte},ps:[{nm:'shift',mt:'prm',$t:{t:Integer}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','rightArithmeticShift']};};byte$.rightLogicalShift=function(bits) {
return Byte(this.val$>>>bits);
}
byte$.rightLogicalShift.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Byte},ps:[{nm:'shift',mt:'prm',$t:{t:Integer}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','rightLogicalShift']};};byte$.set=function(i,b) {
if (i<0 || i>7)return this;
if (b)return Byte(this.val$|(1<<i));
return Byte(this.val$&(0xff^(1<<i)));
}
byte$.set.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Byte},ps:[{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'bit',mt:'prm',def:1,$t:{t:$_Boolean}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','set']};};byte$.xor=function(b) {
return Byte(this.val$^b.val$);
}
byte$.xor.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Byte},ps:[{nm:'other',mt:'prm',$t:{t:Byte}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','xor']};};atr$(byte$,'predecessor',function(){return Byte(this.val$-1);
},undefined,function(){return{mod:$CCMM$,$t:{t:Byte},$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$at','predecessor']};});atr$(byte$,'successor',function(){return Byte(this.val$+1);
},undefined,function(){return{mod:$CCMM$,$t:{t:Byte},$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$at','successor']};});byte$.neighbour=function(offset) {
return offset==0 ? this : Byte(this.val$+offset);
}
byte$.neighbour.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Byte},ps:[{nm:'offset',mt:'prm',$t:{t:Integer}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','neighbour']};};byte$.offset=function(other) {
return Byte(this.val$-other.val$).val$;
}
byte$.offset.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'other',mt:'prm',$t:{t:Byte}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','offset']};};byte$.offsetSign=function(other) {
return this.val$==other.val$ ? 0 : 1;
}
byte$.offsetSign.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'other',mt:'prm',$t:{t:Byte}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','offsetSign']};};byte$.equals=function(o) {
if (is$(o,{t:Byte})) {
return o.val$===this.val$;
}
return false;
}
byte$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$m','equals']};};atr$(byte$,'hash',function(){if (this.val$<128)return this.val$;
return -1-(this.val$^0xff);
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Byte,pa:3,an:function(){return[$_native()];},d:['$','Byte','$at','hash']};});atr$(byte$,'string',function(){return this.val$.string;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Byte,pa:3,an:function(){return[doc$($CCMM$,'$:Byte:$at:string'),$_native()];},d:['$','Byte','$at','string']};});})(Byte.$$.prototype);}
return Byte;}
ex$.$init$Byte=$init$Byte;$init$Byte();function Category($$targs$$,category$){set_type_args(category$,$$targs$$,Category);}
Category.$crtmm$=function(){return{mod:$CCMM$,tp:{Element$Category:{dv:'in',sts:[{t:$_Object}],def:{t:$_Object}}},pa:1,an:function(){return[doc$($CCMM$,'$:Category'),by(["Gavin"].$sa$({t:$_String})),tagged(["Collections"].$sa$({t:$_String}))];},d:['$','Category']};};
ex$.Category=Category;function $init$Category(){if(Category.$$===undefined){initTypeProtoI(Category,'ceylon.language::Category');
(function(category$){category$.contains={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Category'}],$cont:Category,pa:5,an:function(){return[doc$($CCMM$,'$:Category:$m:contains'),see("containsEvery","containsAny")];},d:['$','Category','$m','contains']};}};category$.containsEvery=function($hu){var category$=this;var $hw;for(var $hv=$hu.iterator();($hw=$hv.next())!==finished();){if(!category$.contains($hw)){return false;}
}
if(finished()===$hw){return true;}
};category$.containsEvery.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'elements',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Category'}}}],$cont:Category,pa:9,an:function(){return[doc$($CCMM$,'$:Category:$m:containsEvery'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Category().$$.prototype.contains),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Category().$$.prototype.containsAny)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Category','$m','containsEvery']};};category$.containsAny=function($hx){var category$=this;var $hz;for(var $hy=$hx.iterator();($hz=$hy.next())!==finished();){if(category$.contains($hz)){return true;}
}
if(finished()===$hz){return false;}
};category$.containsAny.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'elements',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Category'}}}],$cont:Category,pa:9,an:function(){return[doc$($CCMM$,'$:Category:$m:containsAny'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Category().$$.prototype.contains),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Category().$$.prototype.containsEvery)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Category','$m','containsAny']};};})(Category.$$.prototype);}
return Category;}
ex$.$init$Category=$init$Category;$init$Category();function ChainedIterator($i0,$i1,$$targs$$,chainedIterator$){$init$ChainedIterator();
if(chainedIterator$===undefined)chainedIterator$=new ChainedIterator.$$;
set_type_args(chainedIterator$,$$targs$$);
chainedIterator$.$i0_=$i0;chainedIterator$.$i1_=$i1;Iterator({Element$Iterator:mut$([$$targs$$.Element$ChainedIterator,$$targs$$.Other$ChainedIterator])},chainedIterator$);chainedIterator$.$i2_=chainedIterator$.$i0.iterator();chainedIterator$.$i3_=true;return chainedIterator$;}
ChainedIterator.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'first',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$ChainedIterator'}}},{nm:'second',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Other$ChainedIterator'}}}],tp:{Element$ChainedIterator:{dv:'out'},Other$ChainedIterator:{dv:'out'}},sts:[{t:Iterator,a:{Element$Iterator:{t:'u',l:['Element$ChainedIterator','Other$ChainedIterator']}}}],an:function(){return[doc$($CCMM$,'$:ChainedIterator'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.chain)].$sa$({t:FunctionDeclaration$meta$declaration})),by(["Enrique Zamudio"].$sa$({t:$_String})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','ChainedIterator']};};
ex$.ChainedIterator=ChainedIterator;function $init$ChainedIterator(){if(ChainedIterator.$$===undefined){initTypeProto(ChainedIterator,'ceylon.language::ChainedIterator',Basic,$init$Iterator());
(function(chainedIterator$){atr$(chainedIterator$,'$i0',function(){return this.$i0_;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$ChainedIterator'}},$cont:ChainedIterator,d:['$','ChainedIterator','$at','first$4h62ti']};});atr$(chainedIterator$,'$i1',function(){return this.$i1_;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Other$ChainedIterator'}},$cont:ChainedIterator,d:['$','ChainedIterator','$at','second$9dpb6y']};});atr$(chainedIterator$,'$i2',function(){return this.$i2_;},function($i4){return this.$i2_=$i4;},function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:'u',l:['Element$ChainedIterator','Other$ChainedIterator']}}},$cont:ChainedIterator,pa:1027,d:['$','ChainedIterator','$at','iter$2p4fla']};});atr$(chainedIterator$,'$i3',function(){return this.$i3_;},function($i5){return this.$i3_=$i5;},function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ChainedIterator,pa:1027,d:['$','ChainedIterator','$at','more$5ang2r']};});chainedIterator$.next=function(){var chainedIterator$=this;var $i6=chainedIterator$.$i2.next();if((chainedIterator$.$i3&&is$($i6,{t:Finished}))){chainedIterator$.$i2=chainedIterator$.$i1.iterator();chainedIterator$.$i3=false;return chainedIterator$.$i2.next();}
else{return $i6;}
};chainedIterator$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$ChainedIterator','Other$ChainedIterator',{t:Finished}]},ps:[],$cont:ChainedIterator,pa:3,d:['$','ChainedIterator','$m','next']};};atr$(chainedIterator$,'string',function(){var chainedIterator$=this;return chainedIterator$.$i0.string.plus(".chain(").plus(chainedIterator$.$i1.string).plus(").iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:ChainedIterator,pa:3,d:['$','ChainedIterator','$at','string']};});})(ChainedIterator.$$.prototype);}
return ChainedIterator;}
ex$.$init$ChainedIterator=$init$ChainedIterator;$init$ChainedIterator();var _cacheChr={};
function Character(value,cache) {
if (cache) {
var that = _cacheChr[value];
if (that === undefined) {
that = new Character.$$;
that.value = value;
_cacheChr[value] = that;
}
return that;
}
if (value && value.getT$name && value.getT$name() === 'ceylon.language::Character') {
return value;
}
var that = new Character.$$;
Comparable({Other$Comparable:{t:Character}},that);
Enumerable({Other$Enumerable:{t:Character}},that);
that.value = value;
return that;
}
Character.WS$={0x9:true, 0xa:true, 0xb:true, 0xc:true, 0xd:true, 0x20:true, 0x85:true,
0x1680:true, 0x180e:true, 0x2028:true, 0x2029:true, 0x205f:true, 0x3000:true,
0x1c:true, 0x1d:true, 0x1e:true, 0x1f:true};
for (var i=0x2000; i<0x2007; i++) { Character.WS$[i]=true; }
for (var i=0x2008; i<=0x200a; i++) { Character.WS$[i]=true; }
Character.dig$={0x30:true, 0x660:true, 0x6f0:true, 0x7c0:true, 0x966:true, 0x9e6:true, 0xa66:true,
0xae6:true, 0xb66:true, 0xbe6:true, 0xc66:true, 0xce6:true, 0xd66:true, 0xe50:true,
0xed0:true, 0xf20:true, 0x1040:true, 0x1090:true, 0x17e0:true, 0x1810:true, 0x1946:true,
0x19d0:true, 0x1a80:true, 0x1a90:true, 0x1b50:true, 0x1bb0:true, 0x1c40:true, 0x1c50:true,
0xa620:true, 0xa8d0:true, 0xa900:true, 0xa9d0:true, 0xaa50:true, 0xabf0:true, 0xff10:true,
0x104a0:true, 0x11066:true, 0x110f0:true, 0x11136:true, 0x111d0:true, 0x116c0:true}
Character.titlecase$={
0x1c5: [0x1c4, 0x1c6], 0x1c8: [0x1c7, 0x1c9], 0x1cb: [0x1ca, 0x1cc], 0x1f2: [0x1f1, 0x1f3],
0x1f88: [undefined, 0x1f80], 0x1f89: [undefined, 0x1f81], 0x1f8a: [undefined, 0x1f82],
0x1f8b: [undefined, 0x1f83], 0x1f8c: [undefined, 0x1f84], 0x1f8d: [undefined, 0x1f85],
0x1f8e: [undefined, 0x1f86], 0x1f8f: [undefined, 0x1f87], 0x1f98: [undefined, 0x1f90],
0x1f99: [undefined, 0x1f91], 0x1f9a: [undefined, 0x1f92], 0x1f9b: [undefined, 0x1f93],
0x1f9c: [undefined, 0x1f94], 0x1f9d: [undefined, 0x1f95], 0x1f9e: [undefined, 0x1f96],
0x1f9f: [undefined, 0x1f97], 0x1fa8: [undefined, 0x1fa0], 0x1fa9: [undefined, 0x1fa1],
0x1faa: [undefined, 0x1fa2], 0x1fab: [undefined, 0x1fa3], 0x1fac: [undefined, 0x1fa4],
0x1fad: [undefined, 0x1fa5], 0x1fae: [undefined, 0x1fa6], 0x1faf: [undefined, 0x1fa7],
0x1fbc: [undefined, 0x1fb3], 0x1fcc: [undefined, 0x1fc3], 0x1ffc: [undefined, 0x1ff3]
}
Character.toTitlecase$={
0x1c6:0x1c5, 0x1c7:0x1c8, 0x1ca:0x1cb, 0x1f1:0x1f2,
0x1c4:0x1c5, 0x1c9:0x1c8, 0x1cc:0x1cb, 0x1f3:0x1f2, 0x1f80:0x1f88, 0x1f81:0x1f89, 0x1f82:0x1f8a,
0x1f83:0x1f8b, 0x1f84:0x1f8c, 0x1f85:0x1f8d, 0x1f86:0x1f8e, 0x1f87:0x1f8f, 0x1f90:0x1f98,
0x1f91:0x1f99, 0x1f92:0x1f9a, 0x1f93:0x1f9b, 0x1f94:0x1f9c, 0x1f95:0x1f9d, 0x1f96:0x1f9e,
0x1f97:0x1f9f, 0x1fa0:0x1fa8, 0x1fa1:0x1fa9, 0x1fa2:0x1faa, 0x1fa3:0x1fab, 0x1fa4:0x1fac,
0x1fa5:0x1fad, 0x1fa6:0x1fae, 0x1fa7:0x1faf, 0x1fb3:0x1fbc, 0x1fc3:0x1fcc, 0x1ff3:0x1ffc
}
Character.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'character',mt:'prm',$t:{t:Character}}],sts:[{t:Comparable,a:{Other$Comparable:{t:Character}}},{t:Enumerable,a:{Other$Enumerable:{t:Character}}}],pa:33,an:function(){return[doc$($CCMM$,'$:Character'),see([$init$openClass$jsint()(lmp$(ex$,'$'),$_String)].$sa$({t:ClassWithInitializerDeclaration$meta$declaration})),by(["Gavin"].$sa$({t:$_String})),tagged(["Basic types","Strings"].$sa$({t:$_String})),$_native()];},d:['$','Character']};};
ex$.Character=Character;function $init$Character(){if(Character.$$===undefined){initTypeProto(Character,'ceylon.language::Character',$init$$_Object(),$init$Comparable(),$init$Enumerable());
(function(character$){atr$(character$,'$i7',function(){return this.$i7_;},undefined,function(){return{mod:$CCMM$,$t:{t:Character},$cont:Character,d:['$','Character','$at','character$f3csq2']};});atr$(character$,'string',function(){return codepointToString(this.value);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Character,pa:3,an:function(){return[doc$($CCMM$,'$:Character:$at:string'),$_native()];},d:['$','Character','$at','string']};});atr$(character$,'lowercased',function(){if (this.value==304) return Character(105); //lowercase dotted I to i
var lcstr = codepointToString(this.value).toLowerCase();
return countCodepoints(lcstr)==1 ? Character(codepointFromString(lcstr, 0)) : this;
},undefined,function(){return{mod:$CCMM$,$t:{t:Character},$cont:Character,pa:1,an:function(){return[doc$($CCMM$,'$:Character:$at:lowercased'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$$_String().$$.prototype.$prop$getLowercased)].$sa$({t:ValueDeclaration$meta$declaration})),$_native()];},d:['$','Character','$at','lowercased']};});atr$(character$,'uppercased',function(){var ucstr = codepointToString(this.value).toUpperCase();
return countCodepoints(ucstr)==1 ? Character(codepointFromString(ucstr, 0)) : this;
},undefined,function(){return{mod:$CCMM$,$t:{t:Character},$cont:Character,pa:1,an:function(){return[doc$($CCMM$,'$:Character:$at:uppercased'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$$_String().$$.prototype.$prop$getUppercased)].$sa$({t:ValueDeclaration$meta$declaration})),$_native()];},d:['$','Character','$at','uppercased']};});atr$(character$,'titlecased',function(){var tc = Character.toTitlecase$[this.value];
return tc===undefined ? this.uppercased : Character(tc);
},undefined,function(){return{mod:$CCMM$,$t:{t:Character},$cont:Character,pa:1,an:function(){return[doc$($CCMM$,'$:Character:$at:titlecased'),$_native()];},d:['$','Character','$at','titlecased']};});atr$(character$,'lowercase',function(){if (Character.unicat$===undefined) {
this.letter;
}
return Character.unicat$.Ll.test(this.string);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Character,pa:1,an:function(){return[doc$($CCMM$,'$:Character:$at:lowercase'),$_native()];},d:['$','Character','$at','lowercase']};});atr$(character$,'uppercase',function(){if (Character.unicat$===undefined) {
this.letter;
}
return Character.unicat$.Lu.test(this.string);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Character,pa:1,an:function(){return[doc$($CCMM$,'$:Character:$at:uppercase'),$_native()];},d:['$','Character','$at','uppercase']};});atr$(character$,'titlecase',function(){if (Character.unicat$===undefined) {
this.letter;
}
return Character.unicat$.Lt.test(this.string);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Character,pa:1,an:function(){return[doc$($CCMM$,'$:Character:$at:titlecase'),$_native()];},d:['$','Character','$at','titlecase']};});atr$(character$,'digit',function(){var check = this.value & 0xfffffff0;
if (check in Character.dig$) {
return (this.value&0xf) <= 9;
}
if ((check|6) in Character.dig$) {
return (this.value&0xf) >= 6;
}
return this.value>=0x1d7ce && this.value<=0x1d7ff;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Character,pa:1,an:function(){return[doc$($CCMM$,'$:Character:$at:digit'),$_native()];},d:['$','Character','$at','digit']};});atr$(character$,'letter',function(){if (Character.unicat$===undefined) {
var unicode = {};
// Upper case.
unicode.Lu = /\u0041\u0042\u0043\u0044\u0045\u0046\u0047\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057\u0058\u0059\u005A\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF\u00D0\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6\u00D8\u00D9\u00DA\u00DB\u00DC\u00DD\u00DE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178\u0179\u017B\u017D\u0181\u0182\u0184\u0186\u0187\u0189\u018A\u018B\u018E\u018F\u0190\u0191\u0193\u0194\u0196\u0197\u0198\u019C\u019D\u019F\u01A0\u01A2\u01A4\u01A6\u01A7\u01A9\u01AC\u01AE\u01AF\u01B1\u01B2\u01B3\u01B5\u01B7\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6\u01F7\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A\u023B\u023D\u023E\u0241\u0243\u0244\u0245\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u0386\u0388\u0389\u038A\u038C\u038E\u038F\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03CF\u03D2\u03D3\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9\u03FA\u03FD\u03FE\u03FF\u0400\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\u040D\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0531\u0532\u0533\u0534\u0535\u0536\u0537\u0538\u0539\u053A\u053B\u053C\u053D\u053E\u053F\u0540\u0541\u0542\u0543\u0544\u0545\u0546\u0547\u0548\u0549\u054A\u054B\u054C\u054D\u054E\u054F\u0550\u0551\u0552\u0553\u0554\u0555\u0556\u10A0\u10A1\u10A2\u10A3\u10A4\u10A5\u10A6\u10A7\u10A8\u10A9\u10AA\u10AB\u10AC\u10AD\u10AE\u10AF\u10B0\u10B1\u10B2\u10B3\u10B4\u10B5\u10B6\u10B7\u10B8\u10B9\u10BA\u10BB\u10BC\u10BD\u10BE\u10BF\u10C0\u10C1\u10C2\u10C3\u10C4\u10C5\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08\u1F09\u1F0A\u1F0B\u1F0C\u1F0D\u1F0E\u1F0F\u1F18\u1F19\u1F1A\u1F1B\u1F1C\u1F1D\u1F28\u1F29\u1F2A\u1F2B\u1F2C\u1F2D\u1F2E\u1F2F\u1F38\u1F39\u1F3A\u1F3B\u1F3C\u1F3D\u1F3E\u1F3F\u1F48\u1F49\u1F4A\u1F4B\u1F4C\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68\u1F69\u1F6A\u1F6B\u1F6C\u1F6D\u1F6E\u1F6F\u1FB8\u1FB9\u1FBA\u1FBB\u1FC8\u1FC9\u1FCA\u1FCB\u1FD8\u1FD9\u1FDA\u1FDB\u1FE8\u1FE9\u1FEA\u1FEB\u1FEC\u1FF8\u1FF9\u1FFA\u1FFB\u2102\u2107\u210B\u210C\u210D\u2110\u2111\u2112\u2115\u2119\u211A\u211B\u211C\u211D\u2124\u2126\u2128\u212A\u212B\u212C\u212D\u2130\u2131\u2132\u2133\u213E\u213F\u2145\u2183\u2C00\u2C01\u2C02\u2C03\u2C04\u2C05\u2C06\u2C07\u2C08\u2C09\u2C0A\u2C0B\u2C0C\u2C0D\u2C0E\u2C0F\u2C10\u2C11\u2C12\u2C13\u2C14\u2C15\u2C16\u2C17\u2C18\u2C19\u2C1A\u2C1B\u2C1C\u2C1D\u2C1E\u2C1F\u2C20\u2C21\u2C22\u2C23\u2C24\u2C25\u2C26\u2C27\u2C28\u2C29\u2C2A\u2C2B\u2C2C\u2C2D\u2C2E\u2C60\u2C62\u2C63\u2C64\u2C67\u2C69\u2C6B\u2C6D\u2C6E\u2C6F\u2C72\u2C75\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D\uA77E\uA780\uA782\uA784\uA786\uA78B\uFF21\uFF22\uFF23\uFF24\uFF25\uFF26\uFF27\uFF28\uFF29\uFF2A\uFF2B\uFF2C\uFF2D\uFF2E\uFF2F\uFF30\uFF31\uFF32\uFF33\uFF34\uFF35\uFF36\uFF37\uFF38\uFF39\uFF3A/;
// Lower case.
unicode.Ll = /\u0061\u0062\u0063\u0064\u0065\u0066\u0067\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077\u0078\u0079\u007A\u00AA\u00B5\u00BA\u00DF\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F8\u00F9\u00FA\u00FB\u00FC\u00FD\u00FE\u00FF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E\u017F\u0180\u0183\u0185\u0188\u018C\u018D\u0192\u0195\u0199\u019A\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9\u01BA\u01BD\u01BE\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233\u0234\u0235\u0236\u0237\u0238\u0239\u023C\u023F\u0240\u0242\u0247\u0249\u024B\u024D\u024F\u0250\u0251\u0252\u0253\u0254\u0255\u0256\u0257\u0258\u0259\u025A\u025B\u025C\u025D\u025E\u025F\u0260\u0261\u0262\u0263\u0264\u0265\u0266\u0267\u0268\u0269\u026A\u026B\u026C\u026D\u026E\u026F\u0270\u0271\u0272\u0273\u0274\u0275\u0276\u0277\u0278\u0279\u027A\u027B\u027C\u027D\u027E\u027F\u0280\u0281\u0282\u0283\u0284\u0285\u0286\u0287\u0288\u0289\u028A\u028B\u028C\u028D\u028E\u028F\u0290\u0291\u0292\u0293\u0295\u0296\u0297\u0298\u0299\u029A\u029B\u029C\u029D\u029E\u029F\u02A0\u02A1\u02A2\u02A3\u02A4\u02A5\u02A6\u02A7\u02A8\u02A9\u02AA\u02AB\u02AC\u02AD\u02AE\u02AF\u0371\u0373\u0377\u037B\u037C\u037D\u0390\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\u03D0\u03D1\u03D5\u03D6\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF\u03F0\u03F1\u03F2\u03F3\u03F5\u03F8\u03FB\u03FC\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0450\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\u045D\u045E\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0561\u0562\u0563\u0564\u0565\u0566\u0567\u0568\u0569\u056A\u056B\u056C\u056D\u056E\u056F\u0570\u0571\u0572\u0573\u0574\u0575\u0576\u0577\u0578\u0579\u057A\u057B\u057C\u057D\u057E\u057F\u0580\u0581\u0582\u0583\u0584\u0585\u0586\u0587\u1D00\u1D01\u1D02\u1D03\u1D04\u1D05\u1D06\u1D07\u1D08\u1D09\u1D0A\u1D0B\u1D0C\u1D0D\u1D0E\u1D0F\u1D10\u1D11\u1D12\u1D13\u1D14\u1D15\u1D16\u1D17\u1D18\u1D19\u1D1A\u1D1B\u1D1C\u1D1D\u1D1E\u1D1F\u1D20\u1D21\u1D22\u1D23\u1D24\u1D25\u1D26\u1D27\u1D28\u1D29\u1D2A\u1D2B\u1D62\u1D63\u1D64\u1D65\u1D66\u1D67\u1D68\u1D69\u1D6A\u1D6B\u1D6C\u1D6D\u1D6E\u1D6F\u1D70\u1D71\u1D72\u1D73\u1D74\u1D75\u1D76\u1D77\u1D79\u1D7A\u1D7B\u1D7C\u1D7D\u1D7E\u1D7F\u1D80\u1D81\u1D82\u1D83\u1D84\u1D85\u1D86\u1D87\u1D88\u1D89\u1D8A\u1D8B\u1D8C\u1D8D\u1D8E\u1D8F\u1D90\u1D91\u1D92\u1D93\u1D94\u1D95\u1D96\u1D97\u1D98\u1D99\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95\u1E96\u1E97\u1E98\u1E99\u1E9A\u1E9B\u1E9C\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF\u1F00\u1F01\u1F02\u1F03\u1F04\u1F05\u1F06\u1F07\u1F10\u1F11\u1F12\u1F13\u1F14\u1F15\u1F20\u1F21\u1F22\u1F23\u1F24\u1F25\u1F26\u1F27\u1F30\u1F31\u1F32\u1F33\u1F34\u1F35\u1F36\u1F37\u1F40\u1F41\u1F42\u1F43\u1F44\u1F45\u1F50\u1F51\u1F52\u1F53\u1F54\u1F55\u1F56\u1F57\u1F60\u1F61\u1F62\u1F63\u1F64\u1F65\u1F66\u1F67\u1F70\u1F71\u1F72\u1F73\u1F74\u1F75\u1F76\u1F77\u1F78\u1F79\u1F7A\u1F7B\u1F7C\u1F7D\u1F80\u1F81\u1F82\u1F83\u1F84\u1F85\u1F86\u1F87\u1F90\u1F91\u1F92\u1F93\u1F94\u1F95\u1F96\u1F97\u1FA0\u1FA1\u1FA2\u1FA3\u1FA4\u1FA5\u1FA6\u1FA7\u1FB0\u1FB1\u1FB2\u1FB3\u1FB4\u1FB6\u1FB7\u1FBE\u1FC2\u1FC3\u1FC4\u1FC6\u1FC7\u1FD0\u1FD1\u1FD2\u1FD3\u1FD6\u1FD7\u1FE0\u1FE1\u1FE2\u1FE3\u1FE4\u1FE5\u1FE6\u1FE7\u1FF2\u1FF3\u1FF4\u1FF6\u1FF7\u2071\u207F\u210A\u210E\u210F\u2113\u212F\u2134\u2139\u213C\u213D\u2146\u2147\u2148\u2149\u214E\u2184\u2C30\u2C31\u2C32\u2C33\u2C34\u2C35\u2C36\u2C37\u2C38\u2C39\u2C3A\u2C3B\u2C3C\u2C3D\u2C3E\u2C3F\u2C40\u2C41\u2C42\u2C43\u2C44\u2C45\u2C46\u2C47\u2C48\u2C49\u2C4A\u2C4B\u2C4C\u2C4D\u2C4E\u2C4F\u2C50\u2C51\u2C52\u2C53\u2C54\u2C55\u2C56\u2C57\u2C58\u2C59\u2C5A\u2C5B\u2C5C\u2C5D\u2C5E\u2C61\u2C65\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73\u2C74\u2C76\u2C77\u2C78\u2C79\u2C7A\u2C7B\u2C7C\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3\u2CE4\u2D00\u2D01\u2D02\u2D03\u2D04\u2D05\u2D06\u2D07\u2D08\u2D09\u2D0A\u2D0B\u2D0C\u2D0D\u2D0E\u2D0F\u2D10\u2D11\u2D12\u2D13\u2D14\u2D15\u2D16\u2D17\u2D18\u2D19\u2D1A\u2D1B\u2D1C\u2D1D\u2D1E\u2D1F\u2D20\u2D21\u2D22\u2D23\u2D24\u2D25\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F\uA730\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771\uA772\uA773\uA774\uA775\uA776\uA777\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uFB00\uFB01\uFB02\uFB03\uFB04\uFB05\uFB06\uFB13\uFB14\uFB15\uFB16\uFB17\uFF41\uFF42\uFF43\uFF44\uFF45\uFF46\uFF47\uFF48\uFF49\uFF4A\uFF4B\uFF4C\uFF4D\uFF4E\uFF4F\uFF50\uFF51\uFF52\uFF53\uFF54\uFF55\uFF56\uFF57\uFF58\uFF59\uFF5A/;
// Title case.
unicode.Lt = /\u01C5\u01C8\u01CB\u01F2\u1F88\u1F89\u1F8A\u1F8B\u1F8C\u1F8D\u1F8E\u1F8F\u1F98\u1F99\u1F9A\u1F9B\u1F9C\u1F9D\u1F9E\u1F9F\u1FA8\u1FA9\u1FAA\u1FAB\u1FAC\u1FAD\u1FAE\u1FAF\u1FBC\u1FCC/;
// Modifier letter.
unicode.Lm = /\u02B0\u02B1\u02B2\u02B3\u02B4\u02B5\u02B6\u02B7\u02B8\u02B9\u02BA\u02BB\u02BC\u02BD\u02BE\u02BF\u02C0\u02C1\u02C6\u02C7\u02C8\u02C9\u02CA\u02CB\u02CC\u02CD\u02CE\u02CF\u02D0\u02D1\u02E0\u02E1\u02E2\u02E3\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5\u06E6\u07F4\u07F5\u07FA\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1C78\u1C79\u1C7A\u1C7B\u1C7C\u1C7D\u1D2C\u1D2D\u1D2E\u1D2F\u1D30\u1D31\u1D32\u1D33\u1D34\u1D35\u1D36\u1D37\u1D38\u1D39\u1D3A\u1D3B\u1D3C\u1D3D\u1D3E\u1D3F\u1D40\u1D41\u1D42\u1D43\u1D44\u1D45\u1D46\u1D47\u1D48\u1D49\u1D4A\u1D4B\u1D4C\u1D4D\u1D4E\u1D4F\u1D50\u1D51\u1D52\u1D53\u1D54\u1D55\u1D56\u1D57\u1D58\u1D59\u1D5A\u1D5B\u1D5C\u1D5D\u1D5E\u1D5F\u1D60\u1D61\u1D78\u1D9B\u1D9C\u1D9D\u1D9E\u1D9F\u1DA0\u1DA1\u1DA2\u1DA3\u1DA4\u1DA5\u1DA6\u1DA7\u1DA8\u1DA9\u1DAA\u1DAB\u1DAC\u1DAD\u1DAE\u1DAF\u1DB0\u1DB1\u1DB2\u1DB3\u1DB4\u1DB5\u1DB6\u1DB7\u1DB8\u1DB9\u1DBA\u1DBB\u1DBC\u1DBD\u1DBE\u1DBF\u2090\u2091\u2092\u2093\u2094\u2C7D\u2D6F\u2E2F\u3005\u3031\u3032\u3033\u3034\u3035\u303B\u309D\u309E\u30FC\u30FD\u30FE\uA015\uA60C\uA67F\uA717\uA718\uA719\uA71A\uA71B\uA71C\uA71D\uA71E\uA71F\uA770\uA788\uFF70\uFF9E\uFF9F/;
// Other letter.
unicode.Lo = /\u01BB\u01C0\u01C1\u01C2\u01C3\u0294\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\u05F0\u05F1\u05F2\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\u063B\u063C\u063D\u063E\u063F\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u066E\u066F\u0671\u0672\u0673\u0674\u0675\u0676\u0677\u0678\u0679\u067A\u067B\u067C\u067D\u067E\u067F\u0680\u0681\u0682\u0683\u0684\u0685\u0686\u0687\u0688\u0689\u068A\u068B\u068C\u068D\u068E\u068F\u0690\u0691\u0692\u0693\u0694\u0695\u0696\u0697\u0698\u0699\u069A\u069B\u069C\u069D\u069E\u069F\u06A0\u06A1\u06A2\u06A3\u06A4\u06A5\u06A6\u06A7\u06A8\u06A9\u06AA\u06AB\u06AC\u06AD\u06AE\u06AF\u06B0\u06B1\u06B2\u06B3\u06B4\u06B5\u06B6\u06B7\u06B8\u06B9\u06BA\u06BB\u06BC\u06BD\u06BE\u06BF\u06C0\u06C1\u06C2\u06C3\u06C4\u06C5\u06C6\u06C7\u06C8\u06C9\u06CA\u06CB\u06CC\u06CD\u06CE\u06CF\u06D0\u06D1\u06D2\u06D3\u06D5\u06EE\u06EF\u06FA\u06FB\u06FC\u06FF\u0710\u0712\u0713\u0714\u0715\u0716\u0717\u0718\u0719\u071A\u071B\u071C\u071D\u071E\u071F\u0720\u0721\u0722\u0723\u0724\u0725\u0726\u0727\u0728\u0729\u072A\u072B\u072C\u072D\u072E\u072F\u074D\u074E\u074F\u0750\u0751\u0752\u0753\u0754\u0755\u0756\u0757\u0758\u0759\u075A\u075B\u075C\u075D\u075E\u075F\u0760\u0761\u0762\u0763\u0764\u0765\u0766\u0767\u0768\u0769\u076A\u076B\u076C\u076D\u076E\u076F\u0770\u0771\u0772\u0773\u0774\u0775\u0776\u0777\u0778\u0779\u077A\u077B\u077C\u077D\u077E\u077F\u0780\u0781\u0782\u0783\u0784\u0785\u0786\u0787\u0788\u0789\u078A\u078B\u078C\u078D\u078E\u078F\u0790\u0791\u0792\u0793\u0794\u0795\u0796\u0797\u0798\u0799\u079A\u079B\u079C\u079D\u079E\u079F\u07A0\u07A1\u07A2\u07A3\u07A4\u07A5\u07B1\u07CA\u07CB\u07CC\u07CD\u07CE\u07CF\u07D0\u07D1\u07D2\u07D3\u07D4\u07D5\u07D6\u07D7\u07D8\u07D9\u07DA\u07DB\u07DC\u07DD\u07DE\u07DF\u07E0\u07E1\u07E2\u07E3\u07E4\u07E5\u07E6\u07E7\u07E8\u07E9\u07EA\u0904\u0905\u0906\u0907\u0908\u0909\u090A\u090B\u090C\u090D\u090E\u090F\u0910\u0911\u0912\u0913\u0914\u0915\u0916\u0917\u0918\u0919\u091A\u091B\u091C\u091D\u091E\u091F\u0920\u0921\u0922\u0923\u0924\u0925\u0926\u0927\u0928\u0929\u092A\u092B\u092C\u092D\u092E\u092F\u0930\u0931\u0932\u0933\u0934\u0935\u0936\u0937\u0938\u0939\u093D\u0950\u0958\u0959\u095A\u095B\u095C\u095D\u095E\u095F\u0960\u0961\u0972\u097B\u097C\u097D\u097E\u097F\u0985\u0986\u0987\u0988\u0989\u098A\u098B\u098C\u098F\u0990\u0993\u0994\u0995\u0996\u0997\u0998\u0999\u099A\u099B\u099C\u099D\u099E\u099F\u09A0\u09A1\u09A2\u09A3\u09A4\u09A5\u09A6\u09A7\u09A8\u09AA\u09AB\u09AC\u09AD\u09AE\u09AF\u09B0\u09B2\u09B6\u09B7\u09B8\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF\u09E0\u09E1\u09F0\u09F1\u0A05\u0A06\u0A07\u0A08\u0A09\u0A0A\u0A0F\u0A10\u0A13\u0A14\u0A15\u0A16\u0A17\u0A18\u0A19\u0A1A\u0A1B\u0A1C\u0A1D\u0A1E\u0A1F\u0A20\u0A21\u0A22\u0A23\u0A24\u0A25\u0A26\u0A27\u0A28\u0A2A\u0A2B\u0A2C\u0A2D\u0A2E\u0A2F\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5A\u0A5B\u0A5C\u0A5E\u0A72\u0A73\u0A74\u0A85\u0A86\u0A87\u0A88\u0A89\u0A8A\u0A8B\u0A8C\u0A8D\u0A8F\u0A90\u0A91\u0A93\u0A94\u0A95\u0A96\u0A97\u0A98\u0A99\u0A9A\u0A9B\u0A9C\u0A9D\u0A9E\u0A9F\u0AA0\u0AA1\u0AA2\u0AA3\u0AA4\u0AA5\u0AA6\u0AA7\u0AA8\u0AAA\u0AAB\u0AAC\u0AAD\u0AAE\u0AAF\u0AB0\u0AB2\u0AB3\u0AB5\u0AB6\u0AB7\u0AB8\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05\u0B06\u0B07\u0B08\u0B09\u0B0A\u0B0B\u0B0C\u0B0F\u0B10\u0B13\u0B14\u0B15\u0B16\u0B17\u0B18\u0B19\u0B1A\u0B1B\u0B1C\u0B1D\u0B1E\u0B1F\u0B20\u0B21\u0B22\u0B23\u0B24\u0B25\u0B26\u0B27\u0B28\u0B2A\u0B2B\u0B2C\u0B2D\u0B2E\u0B2F\u0B30\u0B32\u0B33\u0B35\u0B36\u0B37\u0B38\u0B39\u0B3D\u0B5C\u0B5D\u0B5F\u0B60\u0B61\u0B71\u0B83\u0B85\u0B86\u0B87\u0B88\u0B89\u0B8A\u0B8E\u0B8F\u0B90\u0B92\u0B93\u0B94\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BA9\u0BAA\u0BAE\u0BAF\u0BB0\u0BB1\u0BB2\u0BB3\u0BB4\u0BB5\u0BB6\u0BB7\u0BB8\u0BB9\u0BD0\u0C05\u0C06\u0C07\u0C08\u0C09\u0C0A\u0C0B\u0C0C\u0C0E\u0C0F\u0C10\u0C12\u0C13\u0C14\u0C15\u0C16\u0C17\u0C18\u0C19\u0C1A\u0C1B\u0C1C\u0C1D\u0C1E\u0C1F\u0C20\u0C21\u0C22\u0C23\u0C24\u0C25\u0C26\u0C27\u0C28\u0C2A\u0C2B\u0C2C\u0C2D\u0C2E\u0C2F\u0C30\u0C31\u0C32\u0C33\u0C35\u0C36\u0C37\u0C38\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85\u0C86\u0C87\u0C88\u0C89\u0C8A\u0C8B\u0C8C\u0C8E\u0C8F\u0C90\u0C92\u0C93\u0C94\u0C95\u0C96\u0C97\u0C98\u0C99\u0C9A\u0C9B\u0C9C\u0C9D\u0C9E\u0C9F\u0CA0\u0CA1\u0CA2\u0CA3\u0CA4\u0CA5\u0CA6\u0CA7\u0CA8\u0CAA\u0CAB\u0CAC\u0CAD\u0CAE\u0CAF\u0CB0\u0CB1\u0CB2\u0CB3\u0CB5\u0CB6\u0CB7\u0CB8\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0D05\u0D06\u0D07\u0D08\u0D09\u0D0A\u0D0B\u0D0C\u0D0E\u0D0F\u0D10\u0D12\u0D13\u0D14\u0D15\u0D16\u0D17\u0D18\u0D19\u0D1A\u0D1B\u0D1C\u0D1D\u0D1E\u0D1F\u0D20\u0D21\u0D22\u0D23\u0D24\u0D25\u0D26\u0D27\u0D28\u0D2A\u0D2B\u0D2C\u0D2D\u0D2E\u0D2F\u0D30\u0D31\u0D32\u0D33\u0D34\u0D35\u0D36\u0D37\u0D38\u0D39\u0D3D\u0D60\u0D61\u0D7A\u0D7B\u0D7C\u0D7D\u0D7E\u0D7F\u0D85\u0D86\u0D87\u0D88\u0D89\u0D8A\u0D8B\u0D8C\u0D8D\u0D8E\u0D8F\u0D90\u0D91\u0D92\u0D93\u0D94\u0D95\u0D96\u0D9A\u0D9B\u0D9C\u0D9D\u0D9E\u0D9F\u0DA0\u0DA1\u0DA2\u0DA3\u0DA4\u0DA5\u0DA6\u0DA7\u0DA8\u0DA9\u0DAA\u0DAB\u0DAC\u0DAD\u0DAE\u0DAF\u0DB0\u0DB1\u0DB3\u0DB4\u0DB5\u0DB6\u0DB7\u0DB8\u0DB9\u0DBA\u0DBB\u0DBD\u0DC0\u0DC1\u0DC2\u0DC3\u0DC4\u0DC5\u0DC6\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E32\u0E33\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94\u0E95\u0E96\u0E97\u0E99\u0E9A\u0E9B\u0E9C\u0E9D\u0E9E\u0E9F\u0EA1\u0EA2\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EAF\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EDC\u0EDD\u0F00\u0F40\u0F41\u0F42\u0F43\u0F44\u0F45\u0F46\u0F47\u0F49\u0F4A\u0F4B\u0F4C\u0F4D\u0F4E\u0F4F\u0F50\u0F51\u0F52\u0F53\u0F54\u0F55\u0F56\u0F57\u0F58\u0F59\u0F5A\u0F5B\u0F5C\u0F5D\u0F5E\u0F5F\u0F60\u0F61\u0F62\u0F63\u0F64\u0F65\u0F66\u0F67\u0F68\u0F69\u0F6A\u0F6B\u0F6C\u0F88\u0F89\u0F8A\u0F8B\u1000\u1001\u1002\u1003\u1004\u1005\u1006\u1007\u1008\u1009\u100A\u100B\u100C\u100D\u100E\u100F\u1010\u1011\u1012\u1013\u1014\u1015\u1016\u1017\u1018\u1019\u101A\u101B\u101C\u101D\u101E\u101F\u1020\u1021\u1022\u1023\u1024\u1025\u1026\u1027\u1028\u1029\u102A\u103F\u1050\u1051\u1052\u1053\u1054\u1055\u105A\u105B\u105C\u105D\u1061\u1065\u1066\u106E\u106F\u1070\u1075\u1076\u1077\u1078\u1079\u107A\u107B\u107C\u107D\u107E\u107F\u1080\u1081\u108E\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\u10F7\u10F8\u10F9\u10FA\u1100\u1101\u1102\u1103\u1104\u1105\u1106\u1107\u1108\u1109\u110A\u110B\u110C\u110D\u110E\u110F\u1110\u1111\u1112\u1113\u1114\u1115\u1116\u1117\u1118\u1119\u111A\u111B\u111C\u111D\u111E\u111F\u1120\u1121\u1122\u1123\u1124\u1125\u1126\u1127\u1128\u1129\u112A\u112B\u112C\u112D\u112E\u112F\u1130\u1131\u1132\u1133\u1134\u1135\u1136\u1137\u1138\u1139\u113A\u113B\u113C\u113D\u113E\u113F\u1140\u1141\u1142\u1143\u1144\u1145\u1146\u1147\u1148\u1149\u114A\u114B\u114C\u114D\u114E\u114F\u1150\u1151\u1152\u1153\u1154\u1155\u1156\u1157\u1158\u1159\u115F\u1160\u1161\u1162\u1163\u1164\u1165\u1166\u1167\u1168\u1169\u116A\u116B\u116C\u116D\u116E\u116F\u1170\u1171\u1172\u1173\u1174\u1175\u1176\u1177\u1178\u1179\u117A\u117B\u117C\u117D\u117E\u117F\u1180\u1181\u1182\u1183\u1184\u1185\u1186\u1187\u1188\u1189\u118A\u118B\u118C\u118D\u118E\u118F\u1190\u1191\u1192\u1193\u1194\u1195\u1196\u1197\u1198\u1199\u119A\u119B\u119C\u119D\u119E\u119F\u11A0\u11A1\u11A2\u11A8\u11A9\u11AA\u11AB\u11AC\u11AD\u11AE\u11AF\u11B0\u11B1\u11B2\u11B3\u11B4\u11B5\u11B6\u11B7\u11B8\u11B9\u11BA\u11BB\u11BC\u11BD\u11BE\u11BF\u11C0\u11C1\u11C2\u11C3\u11C4\u11C5\u11C6\u11C7\u11C8\u11C9\u11CA\u11CB\u11CC\u11CD\u11CE\u11CF\u11D0\u11D1\u11D2\u11D3\u11D4\u11D5\u11D6\u11D7\u11D8\u11D9\u11DA\u11DB\u11DC\u11DD\u11DE\u11DF\u11E0\u11E1\u11E2\u11E3\u11E4\u11E5\u11E6\u11E7\u11E8\u11E9\u11EA\u11EB\u11EC\u11ED\u11EE\u11EF\u11F0\u11F1\u11F2\u11F3\u11F4\u11F5\u11F6\u11F7\u11F8\u11F9\u1200\u1201\u1202\u1203\u1204\u1205\u1206\u1207\u1208\u1209\u120A\u120B\u120C\u120D\u120E\u120F\u1210\u1211\u1212\u1213\u1214\u1215\u1216\u1217\u1218\u1219\u121A\u121B\u121C\u121D\u121E\u121F\u1220\u1221\u1222\u1223\u1224\u1225\u1226\u1227\u1228\u1229\u122A\u122B\u122C\u122D\u122E\u122F\u1230\u1231\u1232\u1233\u1234\u1235\u1236\u1237\u1238\u1239\u123A\u123B\u123C\u123D\u123E\u123F\u1240\u1241\u1242\u1243\u1244\u1245\u1246\u1247\u1248\u124A\u124B\u124C\u124D\u1250\u1251\u1252\u1253\u1254\u1255\u1256\u1258\u125A\u125B\u125C\u125D\u1260\u1261\u1262\u1263\u1264\u1265\u1266\u1267\u1268\u1269\u126A\u126B\u126C\u126D\u126E\u126F\u1270\u1271\u1272\u1273\u1274\u1275\u1276\u1277\u1278\u1279\u127A\u127B\u127C\u127D\u127E\u127F\u1280\u1281\u1282\u1283\u1284\u1285\u1286\u1287\u1288\u128A\u128B\u128C\u128D\u1290\u1291\u1292\u1293\u1294\u1295\u1296\u1297\u1298\u1299\u129A\u129B\u129C\u129D\u129E\u129F\u12A0\u12A1\u12A2\u12A3\u12A4\u12A5\u12A6\u12A7\u12A8\u12A9\u12AA\u12AB\u12AC\u12AD\u12AE\u12AF\u12B0\u12B2\u12B3\u12B4\u12B5\u12B8\u12B9\u12BA\u12BB\u12BC\u12BD\u12BE\u12C0\u12C2\u12C3\u12C4\u12C5\u12C8\u12C9\u12CA\u12CB\u12CC\u12CD\u12CE\u12CF\u12D0\u12D1\u12D2\u12D3\u12D4\u12D5\u12D6\u12D8\u12D9\u12DA\u12DB\u12DC\u12DD\u12DE\u12DF\u12E0\u12E1\u12E2\u12E3\u12E4\u12E5\u12E6\u12E7\u12E8\u12E9\u12EA\u12EB\u12EC\u12ED\u12EE\u12EF\u12F0\u12F1\u12F2\u12F3\u12F4\u12F5\u12F6\u12F7\u12F8\u12F9\u12FA\u12FB\u12FC\u12FD\u12FE\u12FF\u1300\u1301\u1302\u1303\u1304\u1305\u1306\u1307\u1308\u1309\u130A\u130B\u130C\u130D\u130E\u130F\u1310\u1312\u1313\u1314\u1315\u1318\u1319\u131A\u131B\u131C\u131D\u131E\u131F\u1320\u1321\u1322\u1323\u1324\u1325\u1326\u1327\u1328\u1329\u132A\u132B\u132C\u132D\u132E\u132F\u1330\u1331\u1332\u1333\u1334\u1335\u1336\u1337\u1338\u1339\u133A\u133B\u133C\u133D\u133E\u133F\u1340\u1341\u1342\u1343\u1344\u1345\u1346\u1347\u1348\u1349\u134A\u134B\u134C\u134D\u134E\u134F\u1350\u1351\u1352\u1353\u1354\u1355\u1356\u1357\u1358\u1359\u135A\u1380\u1381\u1382\u1383\u1384\u1385\u1386\u1387\u1388\u1389\u138A\u138B\u138C\u138D\u138E\u138F\u13A0\u13A1\u13A2\u13A3\u13A4\u13A5\u13A6\u13A7\u13A8\u13A9\u13AA\u13AB\u13AC\u13AD\u13AE\u13AF\u13B0\u13B1\u13B2\u13B3\u13B4\u13B5\u13B6\u13B7\u13B8\u13B9\u13BA\u13BB\u13BC\u13BD\u13BE\u13BF\u13C0\u13C1\u13C2\u13C3\u13C4\u13C5\u13C6\u13C7\u13C8\u13C9\u13CA\u13CB\u13CC\u13CD\u13CE\u13CF\u13D0\u13D1\u13D2\u13D3\u13D4\u13D5\u13D6\u13D7\u13D8\u13D9\u13DA\u13DB\u13DC\u13DD\u13DE\u13DF\u13E0\u13E1\u13E2\u13E3\u13E4\u13E5\u13E6\u13E7\u13E8\u13E9\u13EA\u13EB\u13EC\u13ED\u13EE\u13EF\u13F0\u13F1\u13F2\u13F3\u13F4\u1401\u1402\u1403\u1404\u1405\u1406\u1407\u1408\u1409\u140A\u140B\u140C\u140D\u140E\u140F\u1410\u1411\u1412\u1413\u1414\u1415\u1416\u1417\u1418\u1419\u141A\u141B\u141C\u141D\u141E\u141F\u1420\u1421\u1422\u1423\u1424\u1425\u1426\u1427\u1428\u1429\u142A\u142B\u142C\u142D\u142E\u142F\u1430\u1431\u1432\u1433\u1434\u1435\u1436\u1437\u1438\u1439\u143A\u143B\u143C\u143D\u143E\u143F\u1440\u1441\u1442\u1443\u1444\u1445\u1446\u1447\u1448\u1449\u144A\u144B\u144C\u144D\u144E\u144F\u1450\u1451\u1452\u1453\u1454\u1455\u1456\u1457\u1458\u1459\u145A\u145B\u145C\u145D\u145E\u145F\u1460\u1461\u1462\u1463\u1464\u1465\u1466\u1467\u1468\u1469\u146A\u146B\u146C\u146D\u146E\u146F\u1470\u1471\u1472\u1473\u1474\u1475\u1476\u1477\u1478\u1479\u147A\u147B\u147C\u147D\u147E\u147F\u1480\u1481\u1482\u1483\u1484\u1485\u1486\u1487\u1488\u1489\u148A\u148B\u148C\u148D\u148E\u148F\u1490\u1491\u1492\u1493\u1494\u1495\u1496\u1497\u1498\u1499\u149A\u149B\u149C\u149D\u149E\u149F\u14A0\u14A1\u14A2\u14A3\u14A4\u14A5\u14A6\u14A7\u14A8\u14A9\u14AA\u14AB\u14AC\u14AD\u14AE\u14AF\u14B0\u14B1\u14B2\u14B3\u14B4\u14B5\u14B6\u14B7\u14B8\u14B9\u14BA\u14BB\u14BC\u14BD\u14BE\u14BF\u14C0\u14C1\u14C2\u14C3\u14C4\u14C5\u14C6\u14C7\u14C8\u14C9\u14CA\u14CB\u14CC\u14CD\u14CE\u14CF\u14D0\u14D1\u14D2\u14D3\u14D4\u14D5\u14D6\u14D7\u14D8\u14D9\u14DA\u14DB\u14DC\u14DD\u14DE\u14DF\u14E0\u14E1\u14E2\u14E3\u14E4\u14E5\u14E6\u14E7\u14E8\u14E9\u14EA\u14EB\u14EC\u14ED\u14EE\u14EF\u14F0\u14F1\u14F2\u14F3\u14F4\u14F5\u14F6\u14F7\u14F8\u14F9\u14FA\u14FB\u14FC\u14FD\u14FE\u14FF\u1500\u1501\u1502\u1503\u1504\u1505\u1506\u1507\u1508\u1509\u150A\u150B\u150C\u150D\u150E\u150F\u1510\u1511\u1512\u1513\u1514\u1515\u1516\u1517\u1518\u1519\u151A\u151B\u151C\u151D\u151E\u151F\u1520\u1521\u1522\u1523\u1524\u1525\u1526\u1527\u1528\u1529\u152A\u152B\u152C\u152D\u152E\u152F\u1530\u1531\u1532\u1533\u1534\u1535\u1536\u1537\u1538\u1539\u153A\u153B\u153C\u153D\u153E\u153F\u1540\u1541\u1542\u1543\u1544\u1545\u1546\u1547\u1548\u1549\u154A\u154B\u154C\u154D\u154E\u154F\u1550\u1551\u1552\u1553\u1554\u1555\u1556\u1557\u1558\u1559\u155A\u155B\u155C\u155D\u155E\u155F\u1560\u1561\u1562\u1563\u1564\u1565\u1566\u1567\u1568\u1569\u156A\u156B\u156C\u156D\u156E\u156F\u1570\u1571\u1572\u1573\u1574\u1575\u1576\u1577\u1578\u1579\u157A\u157B\u157C\u157D\u157E\u157F\u1580\u1581\u1582\u1583\u1584\u1585\u1586\u1587\u1588\u1589\u158A\u158B\u158C\u158D\u158E\u158F\u1590\u1591\u1592\u1593\u1594\u1595\u1596\u1597\u1598\u1599\u159A\u159B\u159C\u159D\u159E\u159F\u15A0\u15A1\u15A2\u15A3\u15A4\u15A5\u15A6\u15A7\u15A8\u15A9\u15AA\u15AB\u15AC\u15AD\u15AE\u15AF\u15B0\u15B1\u15B2\u15B3\u15B4\u15B5\u15B6\u15B7\u15B8\u15B9\u15BA\u15BB\u15BC\u15BD\u15BE\u15BF\u15C0\u15C1\u15C2\u15C3\u15C4\u15C5\u15C6\u15C7\u15C8\u15C9\u15CA\u15CB\u15CC\u15CD\u15CE\u15CF\u15D0\u15D1\u15D2\u15D3\u15D4\u15D5\u15D6\u15D7\u15D8\u15D9\u15DA\u15DB\u15DC\u15DD\u15DE\u15DF\u15E0\u15E1\u15E2\u15E3\u15E4\u15E5\u15E6\u15E7\u15E8\u15E9\u15EA\u15EB\u15EC\u15ED\u15EE\u15EF\u15F0\u15F1\u15F2\u15F3\u15F4\u15F5\u15F6\u15F7\u15F8\u15F9\u15FA\u15FB\u15FC\u15FD\u15FE\u15FF\u1600\u1601\u1602\u1603\u1604\u1605\u1606\u1607\u1608\u1609\u160A\u160B\u160C\u160D\u160E\u160F\u1610\u1611\u1612\u1613\u1614\u1615\u1616\u1617\u1618\u1619\u161A\u161B\u161C\u161D\u161E\u161F\u1620\u1621\u1622\u1623\u1624\u1625\u1626\u1627\u1628\u1629\u162A\u162B\u162C\u162D\u162E\u162F\u1630\u1631\u1632\u1633\u1634\u1635\u1636\u1637\u1638\u1639\u163A\u163B\u163C\u163D\u163E\u163F\u1640\u1641\u1642\u1643\u1644\u1645\u1646\u1647\u1648\u1649\u164A\u164B\u164C\u164D\u164E\u164F\u1650\u1651\u1652\u1653\u1654\u1655\u1656\u1657\u1658\u1659\u165A\u165B\u165C\u165D\u165E\u165F\u1660\u1661\u1662\u1663\u1664\u1665\u1666\u1667\u1668\u1669\u166A\u166B\u166C\u166F\u1670\u1671\u1672\u1673\u1674\u1675\u1676\u1681\u1682\u1683\u1684\u1685\u1686\u1687\u1688\u1689\u168A\u168B\u168C\u168D\u168E\u168F\u1690\u1691\u1692\u1693\u1694\u1695\u1696\u1697\u1698\u1699\u169A\u16A0\u16A1\u16A2\u16A3\u16A4\u16A5\u16A6\u16A7\u16A8\u16A9\u16AA\u16AB\u16AC\u16AD\u16AE\u16AF\u16B0\u16B1\u16B2\u16B3\u16B4\u16B5\u16B6\u16B7\u16B8\u16B9\u16BA\u16BB\u16BC\u16BD\u16BE\u16BF\u16C0\u16C1\u16C2\u16C3\u16C4\u16C5\u16C6\u16C7\u16C8\u16C9\u16CA\u16CB\u16CC\u16CD\u16CE\u16CF\u16D0\u16D1\u16D2\u16D3\u16D4\u16D5\u16D6\u16D7\u16D8\u16D9\u16DA\u16DB\u16DC\u16DD\u16DE\u16DF\u16E0\u16E1\u16E2\u16E3\u16E4\u16E5\u16E6\u16E7\u16E8\u16E9\u16EA\u1700\u1701\u1702\u1703\u1704\u1705\u1706\u1707\u1708\u1709\u170A\u170B\u170C\u170E\u170F\u1710\u1711\u1720\u1721\u1722\u1723\u1724\u1725\u1726\u1727\u1728\u1729\u172A\u172B\u172C\u172D\u172E\u172F\u1730\u1731\u1740\u1741\u1742\u1743\u1744\u1745\u1746\u1747\u1748\u1749\u174A\u174B\u174C\u174D\u174E\u174F\u1750\u1751\u1760\u1761\u1762\u1763\u1764\u1765\u1766\u1767\u1768\u1769\u176A\u176B\u176C\u176E\u176F\u1770\u1780\u1781\u1782\u1783\u1784\u1785\u1786\u1787\u1788\u1789\u178A\u178B\u178C\u178D\u178E\u178F\u1790\u1791\u1792\u1793\u1794\u1795\u1796\u1797\u1798\u1799\u179A\u179B\u179C\u179D\u179E\u179F\u17A0\u17A1\u17A2\u17A3\u17A4\u17A5\u17A6\u17A7\u17A8\u17A9\u17AA\u17AB\u17AC\u17AD\u17AE\u17AF\u17B0\u17B1\u17B2\u17B3\u17DC\u1820\u1821\u1822\u1823\u1824\u1825\u1826\u1827\u1828\u1829\u182A\u182B\u182C\u182D\u182E\u182F\u1830\u1831\u1832\u1833\u1834\u1835\u1836\u1837\u1838\u1839\u183A\u183B\u183C\u183D\u183E\u183F\u1840\u1841\u1842\u1844\u1845\u1846\u1847\u1848\u1849\u184A\u184B\u184C\u184D\u184E\u184F\u1850\u1851\u1852\u1853\u1854\u1855\u1856\u1857\u1858\u1859\u185A\u185B\u185C\u185D\u185E\u185F\u1860\u1861\u1862\u1863\u1864\u1865\u1866\u1867\u1868\u1869\u186A\u186B\u186C\u186D\u186E\u186F\u1870\u1871\u1872\u1873\u1874\u1875\u1876\u1877\u1880\u1881\u1882\u1883\u1884\u1885\u1886\u1887\u1888\u1889\u188A\u188B\u188C\u188D\u188E\u188F\u1890\u1891\u1892\u1893\u1894\u1895\u1896\u1897\u1898\u1899\u189A\u189B\u189C\u189D\u189E\u189F\u18A0\u18A1\u18A2\u18A3\u18A4\u18A5\u18A6\u18A7\u18A8\u18AA\u1900\u1901\u1902\u1903\u1904\u1905\u1906\u1907\u1908\u1909\u190A\u190B\u190C\u190D\u190E\u190F\u1910\u1911\u1912\u1913\u1914\u1915\u1916\u1917\u1918\u1919\u191A\u191B\u191C\u1950\u1951\u1952\u1953\u1954\u1955\u1956\u1957\u1958\u1959\u195A\u195B\u195C\u195D\u195E\u195F\u1960\u1961\u1962\u1963\u1964\u1965\u1966\u1967\u1968\u1969\u196A\u196B\u196C\u196D\u1970\u1971\u1972\u1973\u1974\u1980\u1981\u1982\u1983\u1984\u1985\u1986\u1987\u1988\u1989\u198A\u198B\u198C\u198D\u198E\u198F\u1990\u1991\u1992\u1993\u1994\u1995\u1996\u1997\u1998\u1999\u199A\u199B\u199C\u199D\u199E\u199F\u19A0\u19A1\u19A2\u19A3\u19A4\u19A5\u19A6\u19A7\u19A8\u19A9\u19C1\u19C2\u19C3\u19C4\u19C5\u19C6\u19C7\u1A00\u1A01\u1A02\u1A03\u1A04\u1A05\u1A06\u1A07\u1A08\u1A09\u1A0A\u1A0B\u1A0C\u1A0D\u1A0E\u1A0F\u1A10\u1A11\u1A12\u1A13\u1A14\u1A15\u1A16\u1B05\u1B06\u1B07\u1B08\u1B09\u1B0A\u1B0B\u1B0C\u1B0D\u1B0E\u1B0F\u1B10\u1B11\u1B12\u1B13\u1B14\u1B15\u1B16\u1B17\u1B18\u1B19\u1B1A\u1B1B\u1B1C\u1B1D\u1B1E\u1B1F\u1B20\u1B21\u1B22\u1B23\u1B24\u1B25\u1B26\u1B27\u1B28\u1B29\u1B2A\u1B2B\u1B2C\u1B2D\u1B2E\u1B2F\u1B30\u1B31\u1B32\u1B33\u1B45\u1B46\u1B47\u1B48\u1B49\u1B4A\u1B4B\u1B83\u1B84\u1B85\u1B86\u1B87\u1B88\u1B89\u1B8A\u1B8B\u1B8C\u1B8D\u1B8E\u1B8F\u1B90\u1B91\u1B92\u1B93\u1B94\u1B95\u1B96\u1B97\u1B98\u1B99\u1B9A\u1B9B\u1B9C\u1B9D\u1B9E\u1B9F\u1BA0\u1BAE\u1BAF\u1C00\u1C01\u1C02\u1C03\u1C04\u1C05\u1C06\u1C07\u1C08\u1C09\u1C0A\u1C0B\u1C0C\u1C0D\u1C0E\u1C0F\u1C10\u1C11\u1C12\u1C13\u1C14\u1C15\u1C16\u1C17\u1C18\u1C19\u1C1A\u1C1B\u1C1C\u1C1D\u1C1E\u1C1F\u1C20\u1C21\u1C22\u1C23\u1C4D\u1C4E\u1C4F\u1C5A\u1C5B\u1C5C\u1C5D\u1C5E\u1C5F\u1C60\u1C61\u1C62\u1C63\u1C64\u1C65\u1C66\u1C67\u1C68\u1C69\u1C6A\u1C6B\u1C6C\u1C6D\u1C6E\u1C6F\u1C70\u1C71\u1C72\u1C73\u1C74\u1C75\u1C76\u1C77\u2135\u2136\u2137\u2138\u2D30\u2D31\u2D32\u2D33\u2D34\u2D35\u2D36\u2D37\u2D38\u2D39\u2D3A\u2D3B\u2D3C\u2D3D\u2D3E\u2D3F\u2D40\u2D41\u2D42\u2D43\u2D44\u2D45\u2D46\u2D47\u2D48\u2D49\u2D4A\u2D4B\u2D4C\u2D4D\u2D4E\u2D4F\u2D50\u2D51\u2D52\u2D53\u2D54\u2D55\u2D56\u2D57\u2D58\u2D59\u2D5A\u2D5B\u2D5C\u2D5D\u2D5E\u2D5F\u2D60\u2D61\u2D62\u2D63\u2D64\u2D65\u2D80\u2D81\u2D82\u2D83\u2D84\u2D85\u2D86\u2D87\u2D88\u2D89\u2D8A\u2D8B\u2D8C\u2D8D\u2D8E\u2D8F\u2D90\u2D91\u2D92\u2D93\u2D94\u2D95\u2D96\u2DA0\u2DA1\u2DA2\u2DA3\u2DA4\u2DA5\u2DA6\u2DA8\u2DA9\u2DAA\u2DAB\u2DAC\u2DAD\u2DAE\u2DB0\u2DB1\u2DB2\u2DB3\u2DB4\u2DB5\u2DB6\u2DB8\u2DB9\u2DBA\u2DBB\u2DBC\u2DBD\u2DBE\u2DC0\u2DC1\u2DC2\u2DC3\u2DC4\u2DC5\u2DC6\u2DC8\u2DC9\u2DCA\u2DCB\u2DCC\u2DCD\u2DCE\u2DD0\u2DD1\u2DD2\u2DD3\u2DD4\u2DD5\u2DD6\u2DD8\u2DD9\u2DDA\u2DDB\u2DDC\u2DDD\u2DDE\u3006\u303C\u3041\u3042\u3043\u3044\u3045\u3046\u3047\u3048\u3049\u304A\u304B\u304C\u304D\u304E\u304F\u3050\u3051\u3052\u3053\u3054\u3055\u3056\u3057\u3058\u3059\u305A\u305B\u305C\u305D\u305E\u305F\u3060\u3061\u3062\u3063\u3064\u3065\u3066\u3067\u3068\u3069\u306A\u306B\u306C\u306D\u306E\u306F\u3070\u3071\u3072\u3073\u3074\u3075\u3076\u3077\u3078\u3079\u307A\u307B\u307C\u307D\u307E\u307F\u3080\u3081\u3082\u3083\u3084\u3085\u3086\u3087\u3088\u3089\u308A\u308B\u308C\u308D\u308E\u308F\u3090\u3091\u3092\u3093\u3094\u3095\u3096\u309F\u30A1\u30A2\u30A3\u30A4\u30A5\u30A6\u30A7\u30A8\u30A9\u30AA\u30AB\u30AC\u30AD\u30AE\u30AF\u30B0\u30B1\u30B2\u30B3\u30B4\u30B5\u30B6\u30B7\u30B8\u30B9\u30BA\u30BB\u30BC\u30BD\u30BE\u30BF\u30C0\u30C1\u30C2\u30C3\u30C4\u30C5\u30C6\u30C7\u30C8\u30C9\u30CA\u30CB\u30CC\u30CD\u30CE\u30CF\u30D0\u30D1\u30D2\u30D3\u30D4\u30D5\u30D6\u30D7\u30D8\u30D9\u30DA\u30DB\u30DC\u30DD\u30DE\u30DF\u30E0\u30E1\u30E2\u30E3\u30E4\u30E5\u30E6\u30E7\u30E8\u30E9\u30EA\u30EB\u30EC\u30ED\u30EE\u30EF\u30F0\u30F1\u30F2\u30F3\u30F4\u30F5\u30F6\u30F7\u30F8\u30F9\u30FA\u30FF\u3105\u3106\u3107\u3108\u3109\u310A\u310B\u310C\u310D\u310E\u310F\u3110\u3111\u3112\u3113\u3114\u3115\u3116\u3117\u3118\u3119\u311A\u311B\u311C\u311D\u311E\u311F\u3120\u3121\u3122\u3123\u3124\u3125\u3126\u3127\u3128\u3129\u312A\u312B\u312C\u312D\u3131\u3132\u3133\u3134\u3135\u3136\u3137\u3138\u3139\u313A\u313B\u313C\u313D\u313E\u313F\u3140\u3141\u3142\u3143\u3144\u3145\u3146\u3147\u3148\u3149\u314A\u314B\u314C\u314D\u314E\u314F\u3150\u3151\u3152\u3153\u3154\u3155\u3156\u3157\u3158\u3159\u315A\u315B\u315C\u315D\u315E\u315F\u3160\u3161\u3162\u3163\u3164\u3165\u3166\u3167\u3168\u3169\u316A\u316B\u316C\u316D\u316E\u316F\u3170\u3171\u3172\u3173\u3174\u3175\u3176\u3177\u3178\u3179\u317A\u317B\u317C\u317D\u317E\u317F\u3180\u3181\u3182\u3183\u3184\u3185\u3186\u3187\u3188\u3189\u318A\u318B\u318C\u318D\u318E\u31A0\u31A1\u31A2\u31A3\u31A4\u31A5\u31A6\u31A7\u31A8\u31A9\u31AA\u31AB\u31AC\u31AD\u31AE\u31AF\u31B0\u31B1\u31B2\u31B3\u31B4\u31B5\u31B6\u31B7\u31F0\u31F1\u31F2\u31F3\u31F4\u31F5\u31F6\u31F7\u31F8\u31F9\u31FA\u31FB\u31FC\u31FD\u31FE\u31FF\u3400\u4DB5\u4E00\u9FC3\uA000\uA001\uA002\uA003\uA004\uA005\uA006\uA007\uA008\uA009\uA00A\uA00B\uA00C\uA00D\uA00E\uA00F\uA010\uA011\uA012\uA013\uA014\uA016\uA017\uA018\uA019\uA01A\uA01B\uA01C\uA01D\uA01E\uA01F\uA020\uA021\uA022\uA023\uA024\uA025\uA026\uA027\uA028\uA029\uA02A\uA02B\uA02C\uA02D\uA02E\uA02F\uA030\uA031\uA032\uA033\uA034\uA035\uA036\uA037\uA038\uA039\uA03A\uA03B\uA03C\uA03D\uA03E\uA03F\uA040\uA041\uA042\uA043\uA044\uA045\uA046\uA047\uA048\uA049\uA04A\uA04B\uA04C\uA04D\uA04E\uA04F\uA050\uA051\uA052\uA053\uA054\uA055\uA056\uA057\uA058\uA059\uA05A\uA05B\uA05C\uA05D\uA05E\uA05F\uA060\uA061\uA062\uA063\uA064\uA065\uA066\uA067\uA068\uA069\uA06A\uA06B\uA06C\uA06D\uA06E\uA06F\uA070\uA071\uA072\uA073\uA074\uA075\uA076\uA077\uA078\uA079\uA07A\uA07B\uA07C\uA07D\uA07E\uA07F\uA080\uA081\uA082\uA083\uA084\uA085\uA086\uA087\uA088\uA089\uA08A\uA08B\uA08C\uA08D\uA08E\uA08F\uA090\uA091\uA092\uA093\uA094\uA095\uA096\uA097\uA098\uA099\uA09A\uA09B\uA09C\uA09D\uA09E\uA09F\uA0A0\uA0A1\uA0A2\uA0A3\uA0A4\uA0A5\uA0A6\uA0A7\uA0A8\uA0A9\uA0AA\uA0AB\uA0AC\uA0AD\uA0AE\uA0AF\uA0B0\uA0B1\uA0B2\uA0B3\uA0B4\uA0B5\uA0B6\uA0B7\uA0B8\uA0B9\uA0BA\uA0BB\uA0BC\uA0BD\uA0BE\uA0BF\uA0C0\uA0C1\uA0C2\uA0C3\uA0C4\uA0C5\uA0C6\uA0C7\uA0C8\uA0C9\uA0CA\uA0CB\uA0CC\uA0CD\uA0CE\uA0CF\uA0D0\uA0D1\uA0D2\uA0D3\uA0D4\uA0D5\uA0D6\uA0D7\uA0D8\uA0D9\uA0DA\uA0DB\uA0DC\uA0DD\uA0DE\uA0DF\uA0E0\uA0E1\uA0E2\uA0E3\uA0E4\uA0E5\uA0E6\uA0E7\uA0E8\uA0E9\uA0EA\uA0EB\uA0EC\uA0ED\uA0EE\uA0EF\uA0F0\uA0F1\uA0F2\uA0F3\uA0F4\uA0F5\uA0F6\uA0F7\uA0F8\uA0F9\uA0FA\uA0FB\uA0FC\uA0FD\uA0FE\uA0FF\uA100\uA101\uA102\uA103\uA104\uA105\uA106\uA107\uA108\uA109\uA10A\uA10B\uA10C\uA10D\uA10E\uA10F\uA110\uA111\uA112\uA113\uA114\uA115\uA116\uA117\uA118\uA119\uA11A\uA11B\uA11C\uA11D\uA11E\uA11F\uA120\uA121\uA122\uA123\uA124\uA125\uA126\uA127\uA128\uA129\uA12A\uA12B\uA12C\uA12D\uA12E\uA12F\uA130\uA131\uA132\uA133\uA134\uA135\uA136\uA137\uA138\uA139\uA13A\uA13B\uA13C\uA13D\uA13E\uA13F\uA140\uA141\uA142\uA143\uA144\uA145\uA146\uA147\uA148\uA149\uA14A\uA14B\uA14C\uA14D\uA14E\uA14F\uA150\uA151\uA152\uA153\uA154\uA155\uA156\uA157\uA158\uA159\uA15A\uA15B\uA15C\uA15D\uA15E\uA15F\uA160\uA161\uA162\uA163\uA164\uA165\uA166\uA167\uA168\uA169\uA16A\uA16B\uA16C\uA16D\uA16E\uA16F\uA170\uA171\uA172\uA173\uA174\uA175\uA176\uA177\uA178\uA179\uA17A\uA17B\uA17C\uA17D\uA17E\uA17F\uA180\uA181\uA182\uA183\uA184\uA185\uA186\uA187\uA188\uA189\uA18A\uA18B\uA18C\uA18D\uA18E\uA18F\uA190\uA191\uA192\uA193\uA194\uA195\uA196\uA197\uA198\uA199\uA19A\uA19B\uA19C\uA19D\uA19E\uA19F\uA1A0\uA1A1\uA1A2\uA1A3\uA1A4\uA1A5\uA1A6\uA1A7\uA1A8\uA1A9\uA1AA\uA1AB\uA1AC\uA1AD\uA1AE\uA1AF/;
// Number letter.
unicode.Nl = /\u16EE\u16EF\u16F0\u2160\u2161\u2162\u2163\u2164\u2165\u2166\u2167\u2168\u2169\u216A\u216B\u216C\u216D\u216E\u216F\u2170\u2171\u2172\u2173\u2174\u2175\u2176\u2177\u2178\u2179\u217A\u217B\u217C\u217D\u217E\u217F\u2180\u2181\u2182\u2185\u2186\u2187\u2188\u3007\u3021\u3022\u3023\u3024\u3025\u3026\u3027\u3028\u3029\u3038\u3039\u303A/;
// Non-spacing mark.
unicode.Mn = /\u0300\u0301\u0302\u0303\u0304\u0305\u0306\u0307\u0308\u0309\u030A\u030B\u030C\u030D\u030E\u030F\u0310\u0311\u0312\u0313\u0314\u0315\u0316\u0317\u0318\u0319\u031A\u031B\u031C\u031D\u031E\u031F\u0320\u0321\u0322\u0323\u0324\u0325\u0326\u0327\u0328\u0329\u032A\u032B\u032C\u032D\u032E\u032F\u0330\u0331\u0332\u0333\u0334\u0335\u0336\u0337\u0338\u0339\u033A\u033B\u033C\u033D\u033E\u033F\u0340\u0341\u0342\u0343\u0344\u0345\u0346\u0347\u0348\u0349\u034A\u034B\u034C\u034D\u034E\u034F\u0350\u0351\u0352\u0353\u0354\u0355\u0356\u0357\u0358\u0359\u035A\u035B\u035C\u035D\u035E\u035F\u0360\u0361\u0362\u0363\u0364\u0365\u0366\u0367\u0368\u0369\u036A\u036B\u036C\u036D\u036E\u036F\u0483\u0484\u0485\u0486\u0487\u0591\u0592\u0593\u0594\u0595\u0596\u0597\u0598\u0599\u059A\u059B\u059C\u059D\u059E\u059F\u05A0\u05A1\u05A2\u05A3\u05A4\u05A5\u05A6\u05A7\u05A8\u05A9\u05AA\u05AB\u05AC\u05AD\u05AE\u05AF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610\u0611\u0612\u0613\u0614\u0615\u0616\u0617\u0618\u0619\u061A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\u0653\u0654\u0655\u0656\u0657\u0658\u0659\u065A\u065B\u065C\u065D\u065E\u0670\u06D6\u06D7\u06D8\u06D9\u06DA\u06DB\u06DC\u06DF\u06E0\u06E1\u06E2\u06E3\u06E4\u06E7\u06E8\u06EA\u06EB\u06EC\u06ED\u0711\u0730\u0731\u0732\u0733\u0734\u0735\u0736\u0737\u0738\u0739\u073A\u073B\u073C\u073D\u073E\u073F\u0740\u0741\u0742\u0743\u0744\u0745\u0746\u0747\u0748\u0749\u074A\u07A6\u07A7\u07A8\u07A9\u07AA\u07AB\u07AC\u07AD\u07AE\u07AF\u07B0\u07EB\u07EC\u07ED\u07EE\u07EF\u07F0\u07F1\u07F2\u07F3\u0901\u0902\u093C\u0941\u0942\u0943\u0944\u0945\u0946\u0947\u0948\u094D\u0951\u0952\u0953\u0954\u0962\u0963\u0981\u09BC\u09C1\u09C2\u09C3\u09C4\u09CD\u09E2\u09E3\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B\u0A4C\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1\u0AC2\u0AC3\u0AC4\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0B01\u0B3C\u0B3F\u0B41\u0B42\u0B43\u0B44\u0B4D\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C3E\u0C3F\u0C40\u0C46\u0C47\u0C48\u0C4A\u0C4B\u0C4C\u0C4D\u0C55\u0C56\u0C62\u0C63\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D41\u0D42\u0D43\u0D44\u0D4D\u0D62\u0D63\u0DCA\u0DD2\u0DD3\u0DD4\u0DD6\u0E31\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0EB1\u0EB4\u0EB5\u0EB6\u0EB7\u0EB8\u0EB9\u0EBB\u0EBC\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71\u0F72\u0F73\u0F74\u0F75\u0F76\u0F77\u0F78\u0F79\u0F7A\u0F7B\u0F7C\u0F7D\u0F7E\u0F80\u0F81\u0F82\u0F83\u0F84\u0F86\u0F87\u0F90\u0F91\u0F92\u0F93\u0F94\u0F95\u0F96\u0F97\u0F99\u0F9A\u0F9B\u0F9C\u0F9D\u0F9E\u0F9F\u0FA0\u0FA1\u0FA2\u0FA3\u0FA4\u0FA5\u0FA6\u0FA7\u0FA8\u0FA9\u0FAA\u0FAB\u0FAC\u0FAD\u0FAE\u0FAF\u0FB0\u0FB1\u0FB2\u0FB3\u0FB4\u0FB5\u0FB6\u0FB7\u0FB8\u0FB9\u0FBA\u0FBB\u0FBC\u0FC6\u102D\u102E\u102F\u1030\u1032\u1033\u1034\u1035\u1036\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E\u105F\u1060\u1071\u1072\u1073\u1074\u1082\u1085\u1086\u108D\u135F\u1712\u1713\u1714\u1732\u1733\u1734\u1752\u1753\u1772\u1773\u17B7\u17B8\u17B9\u17BA\u17BB\u17BC\u17BD\u17C6\u17C9\u17CA\u17CB\u17CC\u17CD\u17CE\u17CF\u17D0\u17D1\u17D2\u17D3\u17DD\u180B\u180C\u180D\u18A9\u1920\u1921\u1922\u1927\u1928\u1932\u1939\u193A\u193B\u1A17\u1A18\u1B00\u1B01\u1B02\u1B03\u1B34\u1B36\u1B37\u1B38\u1B39\u1B3A\u1B3C\u1B42\u1B6B\u1B6C\u1B6D\u1B6E\u1B6F\u1B70\u1B71\u1B72\u1B73\u1B80\u1B81\u1BA2\u1BA3\u1BA4\u1BA5\u1BA8\u1BA9\u1C2C\u1C2D\u1C2E\u1C2F\u1C30\u1C31\u1C32\u1C33\u1C36\u1C37\u1DC0\u1DC1\u1DC2\u1DC3\u1DC4\u1DC5\u1DC6\u1DC7\u1DC8\u1DC9\u1DCA\u1DCB\u1DCC\u1DCD\u1DCE\u1DCF\u1DD0\u1DD1\u1DD2\u1DD3\u1DD4\u1DD5\u1DD6\u1DD7\u1DD8\u1DD9\u1DDA\u1DDB\u1DDC\u1DDD\u1DDE\u1DDF\u1DE0\u1DE1\u1DE2\u1DE3\u1DE4\u1DE5\u1DE6\u1DFE\u1DFF\u20D0\u20D1\u20D2\u20D3\u20D4\u20D5\u20D6\u20D7\u20D8\u20D9\u20DA\u20DB\u20DC\u20E1\u20E5\u20E6\u20E7\u20E8\u20E9\u20EA\u20EB\u20EC\u20ED\u20EE\u20EF\u20F0\u2DE0\u2DE1\u2DE2\u2DE3\u2DE4\u2DE5\u2DE6\u2DE7\u2DE8\u2DE9\u2DEA\u2DEB\u2DEC\u2DED\u2DEE\u2DEF\u2DF0\u2DF1\u2DF2\u2DF3\u2DF4\u2DF5\u2DF6\u2DF7\u2DF8\u2DF9\u2DFA\u2DFB\u2DFC\u2DFD\u2DFE\u2DFF\u302A\u302B\u302C\u302D\u302E\u302F\u3099\u309A\uA66F\uA67C\uA67D\uA802\uA806\uA80B\uA825\uA826\uA8C4\uA926\uA927\uA928\uA929\uA92A\uA92B\uA92C\uA92D\uA947\uA948\uA949\uA94A\uA94B\uA94C\uA94D\uA94E\uA94F\uA950\uA951\uAA29\uAA2A\uAA2B\uAA2C\uAA2D\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uFB1E\uFE00\uFE01\uFE02\uFE03\uFE04\uFE05\uFE06\uFE07\uFE08\uFE09\uFE0A\uFE0B\uFE0C\uFE0D\uFE0E\uFE0F\uFE20\uFE21\uFE22\uFE23\uFE24\uFE25\uFE26/;
// Combining space mark.
unicode.Mc = /\u0903\u093E\u093F\u0940\u0949\u094A\u094B\u094C\u0982\u0983\u09BE\u09BF\u09C0\u09C7\u09C8\u09CB\u09CC\u09D7\u0A03\u0A3E\u0A3F\u0A40\u0A83\u0ABE\u0ABF\u0AC0\u0AC9\u0ACB\u0ACC\u0B02\u0B03\u0B3E\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0B57\u0BBE\u0BBF\u0BC1\u0BC2\u0BC6\u0BC7\u0BC8\u0BCA\u0BCB\u0BCC\u0BD7\u0C01\u0C02\u0C03\u0C41\u0C42\u0C43\u0C44\u0C82\u0C83\u0CBE\u0CC0\u0CC1\u0CC2\u0CC3\u0CC4\u0CC7\u0CC8\u0CCA\u0CCB\u0CD5\u0CD6\u0D02\u0D03\u0D3E\u0D3F\u0D40\u0D46\u0D47\u0D48\u0D4A\u0D4B\u0D4C\u0D57\u0D82\u0D83\u0DCF\u0DD0\u0DD1\u0DD8\u0DD9\u0DDA\u0DDB\u0DDC\u0DDD\u0DDE\u0DDF\u0DF2\u0DF3\u0F3E\u0F3F\u0F7F\u102B\u102C\u1031\u1038\u103B\u103C\u1056\u1057\u1062\u1063\u1064\u1067\u1068\u1069\u106A\u106B\u106C\u106D\u1083\u1084\u1087\u1088\u1089\u108A\u108B\u108C\u108F\u17B6\u17BE\u17BF\u17C0\u17C1\u17C2\u17C3\u17C4\u17C5\u17C7\u17C8\u1923\u1924\u1925\u1926\u1929\u192A\u192B\u1930\u1931\u1933\u1934\u1935\u1936\u1937\u1938\u19B0\u19B1\u19B2\u19B3\u19B4\u19B5\u19B6\u19B7\u19B8\u19B9\u19BA\u19BB\u19BC\u19BD\u19BE\u19BF\u19C0\u19C8\u19C9\u1A19\u1A1A\u1A1B\u1B04\u1B35\u1B3B\u1B3D\u1B3E\u1B3F\u1B40\u1B41\u1B43\u1B44\u1B82\u1BA1\u1BA6\u1BA7\u1BAA\u1C24\u1C25\u1C26\u1C27\u1C28\u1C29\u1C2A\u1C2B\u1C34\u1C35\uA823\uA824\uA827\uA880\uA881\uA8B4\uA8B5\uA8B6\uA8B7\uA8B8\uA8B9\uA8BA\uA8BB\uA8BC\uA8BD\uA8BE\uA8BF\uA8C0\uA8C1\uA8C2\uA8C3\uA952\uA953\uAA2F\uAA30\uAA33\uAA34\uAA4D/;
// Decimal number.
unicode.Nd = /\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037\u0038\u0039\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u06F0\u06F1\u06F2\u06F3\u06F4\u06F5\u06F6\u06F7\u06F8\u06F9\u07C0\u07C1\u07C2\u07C3\u07C4\u07C5\u07C6\u07C7\u07C8\u07C9\u0966\u0967\u0968\u0969\u096A\u096B\u096C\u096D\u096E\u096F\u09E6\u09E7\u09E8\u09E9\u09EA\u09EB\u09EC\u09ED\u09EE\u09EF\u0A66\u0A67\u0A68\u0A69\u0A6A\u0A6B\u0A6C\u0A6D\u0A6E\u0A6F\u0AE6\u0AE7\u0AE8\u0AE9\u0AEA\u0AEB\u0AEC\u0AED\u0AEE\u0AEF\u0B66\u0B67\u0B68\u0B69\u0B6A\u0B6B\u0B6C\u0B6D\u0B6E\u0B6F\u0BE6\u0BE7\u0BE8\u0BE9\u0BEA\u0BEB\u0BEC\u0BED\u0BEE\u0BEF\u0C66\u0C67\u0C68\u0C69\u0C6A\u0C6B\u0C6C\u0C6D\u0C6E\u0C6F\u0CE6\u0CE7\u0CE8\u0CE9\u0CEA\u0CEB\u0CEC\u0CED\u0CEE\u0CEF\u0D66\u0D67\u0D68\u0D69\u0D6A\u0D6B\u0D6C\u0D6D\u0D6E\u0D6F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5\u0ED6\u0ED7\u0ED8\u0ED9\u0F20\u0F21\u0F22\u0F23\u0F24\u0F25\u0F26\u0F27\u0F28\u0F29\u1040\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u1090\u1091\u1092\u1093\u1094\u1095\u1096\u1097\u1098\u1099\u17E0\u17E1\u17E2\u17E3\u17E4\u17E5\u17E6\u17E7\u17E8\u17E9\u1810\u1811\u1812\u1813\u1814\u1815\u1816\u1817\u1818\u1819\u1946\u1947\u1948\u1949\u194A\u194B\u194C\u194D\u194E\u194F\u19D0\u19D1\u19D2\u19D3\u19D4\u19D5\u19D6\u19D7\u19D8\u19D9\u1B50\u1B51\u1B52\u1B53\u1B54\u1B55\u1B56\u1B57\u1B58\u1B59\u1BB0\u1BB1\u1BB2\u1BB3\u1BB4\u1BB5\u1BB6\u1BB7\u1BB8\u1BB9\u1C40\u1C41\u1C42\u1C43\u1C44\u1C45\u1C46\u1C47\u1C48\u1C49\u1C50\u1C51\u1C52\u1C53\u1C54\u1C55\u1C56\u1C57\u1C58\u1C59\uA620\uA621\uA622\uA623\uA624\uA625\uA626\uA627\uA628\uA629\uA8D0\uA8D1\uA8D2\uA8D3\uA8D4\uA8D5\uA8D6\uA8D7\uA8D8\uA8D9\uA900\uA901\uA902\uA903\uA904\uA905\uA906\uA907\uA908\uA909\uAA50\uAA51\uAA52\uAA53\uAA54\uAA55\uAA56\uAA57\uAA58\uAA59\uFF10\uFF11\uFF12\uFF13\uFF14\uFF15\uFF16\uFF17\uFF18\uFF19/;
// Punctuation connector.
unicode.Pc = /\u005F\u203F\u2040\u2054\uFE33\uFE34\uFE4D\uFE4E\uFE4F\uFF3F/;
function getSource(regExp) {
return regExp.source;
};
var ECMA={};
var startArray = [
/$_/, unicode.Lu,
unicode.Ll, unicode.Lt,
unicode.Lm, unicode.Lo, unicode.Nl
];
var partArray = startArray.concat([
unicode.Nd, unicode.Mc, unicode.Mn, unicode.Pc
]);
var start = '[' + startArray.map(getSource).join('') + ']';
var part = '[' + partArray.map(getSource).join('') + ']';
ECMA.start = new RegExp(start);
ECMA.part = new RegExp(part);
ECMA.identifier = new RegExp('^' + start + part + '*');
var categories = ['Lu', 'Ll', 'Lt', 'Lm', 'Lo', 'Mn', 'Mc', 'Nl', 'Nd', 'Pc'];
Character.unicat$={};
for (var categoryName in unicode) {
var source = unicode[categoryName].source
Character.unicat$[categoryName] = new RegExp('[' + source + ']');
}
Character.unicat$.ECMA=ECMA;
}
var str = this.string;
return Character.unicat$.Lu.test(str) || Character.unicat$.Ll.test(str) || Character.unicat$.Lt.test(str)
|| Character.unicat$.Lm.test(str) || Character.unicat$.Lo.test(str);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Character,pa:1,an:function(){return[doc$($CCMM$,'$:Character:$at:letter'),$_native()];},d:['$','Character','$at','letter']};});atr$(character$,'whitespace',function(){return this.value in Character.WS$;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Character,pa:1,an:function(){return[doc$($CCMM$,'$:Character:$at:whitespace'),$_native()];},d:['$','Character','$at','whitespace']};});atr$(character$,'control',function(){return this.value<32 || this.value===127;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Character,pa:1,an:function(){return[doc$($CCMM$,'$:Character:$at:control'),$_native()];},d:['$','Character','$at','control']};});atr$(character$,'integer',function(){return this.value;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Character,pa:1,an:function(){return[doc$($CCMM$,'$:Character:$at:integer'),aliased(["codePoint"].$sa$({t:$_String})),$_native()];},d:['$','Character','$at','integer']};});character$.compare=function($i9){var character$=this;return character$.integer.compare($i9.integer);};character$.compare.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'other',mt:'prm',$t:{t:Character}}],$cont:Character,pa:3,an:function(){return[doc$($CCMM$,'$:Character:$m:compare'),$_native()];},d:['$','Character','$m','compare']};};character$.equals=function($ia){var character$=this;return function(){var $ib;if(is$(($ib=$ia),{t:Character}))return (($ib.integer).valueOf()==(character$.integer).valueOf());else return false}();};character$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:Character,pa:3,an:function(){return[doc$($CCMM$,'$:Character:$m:equals'),$_native()];},d:['$','Character','$m','equals']};};atr$(character$,'hash',function(){var character$=this;return this.value;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Character,pa:3,an:function(){return[doc$($CCMM$,'$:Character:$at:hash'),$_native()];},d:['$','Character','$at','hash']};});atr$(character$,'predecessor',function(){var succ = this.value-1;
if ((succ&0xf800) === 0xd800) {return Character(0xd7ff)}
return Character((succ>=0) ? succ:0x10ffff);
},undefined,function(){return{mod:$CCMM$,$t:{t:Character},$cont:Character,pa:3,an:function(){return[doc$($CCMM$,'$:Character:$at:predecessor'),$_native()];},d:['$','Character','$at','predecessor']};});atr$(character$,'successor',function(){var succ = this.value+1;
if ((succ&0xf800) === 0xd800) {return Character(0xe000)}
return Character((succ<=0x10ffff) ? succ:0);
},undefined,function(){return{mod:$CCMM$,$t:{t:Character},$cont:Character,pa:3,an:function(){return[doc$($CCMM$,'$:Character:$at:successor'),$_native()];},d:['$','Character','$at','successor']};});character$.neighbour=function(offset) {
return Character(this.value+offset);
}
character$.neighbour.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Character},ps:[{nm:'offset',mt:'prm',$t:{t:Integer}}],$cont:Character,pa:3,an:function(){return[$_native()];},d:['$','Character','$m','neighbour']};};character$.offset=function offset(other) {
return this.value - other.value;
}
character$.offset.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'other',mt:'prm',$t:{t:Character}}],$cont:Character,pa:3,an:function(){return[$_native()];},d:['$','Character','$m','offset']};};character$.offsetSign=function offset(other) {
return this.value - other.value;
}
character$.offsetSign.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'other',mt:'prm',$t:{t:Character}}],$cont:Character,pa:3,an:function(){return[$_native()];},d:['$','Character','$m','offsetSign']};};character$.largerThan=function largerThan(other) {
return this.value>other.value;
}
character$.largerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:Character}}],$cont:Character,pa:3,an:function(){return[$_native()];},d:['$','Character','$m','largerThan']};};character$.smallerThan=function smallerThan(other) {
return other.value>this.value;
}
character$.smallerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:Character}}],$cont:Character,pa:3,an:function(){return[$_native()];},d:['$','Character','$m','smallerThan']};};character$.notSmallerThan=function notSmallerThan(other) {
return !this.smallerThan(other);
}
character$.notSmallerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:Character}}],$cont:Character,pa:3,an:function(){return[$_native()];},d:['$','Character','$m','notSmallerThan']};};character$.notLargerThan=function notLargerThan(other) {
return !this.largerThan(other);
}
character$.notLargerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:Character}}],$cont:Character,pa:3,an:function(){return[$_native()];},d:['$','Character','$m','notLargerThan']};};})(Character.$$.prototype);}
return Character;}
ex$.$init$Character=$init$Character;$init$Character();function Collection($$targs$$,collection$){set_type_args(collection$,$$targs$$,Collection);Iterable({Absent$Iterable:{t:Null},Element$Iterable:$$targs$$.Element$Collection},collection$);}
Collection.$crtmm$=function(){return{mod:$CCMM$,tp:{Element$Collection:{dv:'out',def:{t:Anything}}},sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Collection'}}],pa:1,an:function(){return[doc$($CCMM$,'$:Collection'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),List),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Map),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Set)].$sa$({t:InterfaceDeclaration$meta$declaration})),tagged(["Collections"].$sa$({t:$_String}))];},d:['$','Collection']};};
ex$.Collection=Collection;function $init$Collection(){if(Collection.$$===undefined){initTypeProtoI(Collection,'ceylon.language::Collection',$init$Iterable());
(function(collection$){collection$.clone={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Collection,a:{Element$Collection:'Element$Collection'}},ps:[],$cont:Collection,pa:5,an:function(){return[doc$($CCMM$,'$:Collection:$m:clone')];},d:['$','Collection','$m','clone']};}};atr$(collection$,'empty',function(){var collection$=this;return ((collection$.size).valueOf()==(0).valueOf())},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Collection,pa:11,an:function(){return[doc$($CCMM$,'$:Collection:$at:empty')];},d:['$','Collection','$at','empty']};});collection$.contains=function($ig){var collection$=this;var $ii;for(var $ih=collection$.iterator();($ii=$ih.next())!==finished();){var $ij;if(nn$(($ij=$ii))&&$ij.equals($ig)){return true;}
}
if(finished()===$ii){return false;}
};collection$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:$_Object}}],$cont:Collection,pa:11,an:function(){return[doc$($CCMM$,'$:Collection:$m:contains')];},d:['$','Collection','$m','contains']};};atr$(collection$,'string',function(){var collection$=this;return ($il=(collection$.empty?"{}":null),nn$($il)?$il:"{ ".plus(commaList(collection$)).plus(" }"))},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Collection,pa:11,an:function(){return[doc$($CCMM$,'$:Collection:$at:string')];},d:['$','Collection','$at','string']};});atr$(collection$,'permutations',function(){var collection$=this;return function(){function $im($$targs$$){var $im$=new $im.$$;$im$.outer$=collection$;$im$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:{t:Null},Element$Iterable:{t:Sequence,a:{Element$Sequence:collection$.$$targs$$.Element$Collection}}},$im$);$im$.$in_=collection$.indexed.group($JsCallable((function($io){return ($ip=$io.item,nn$($ip)?$ip:nullElement());}),[{nm:'entry',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.Element$Collection}}}],{Return$Callable:mut$([{t:Basic},mit$([collection$.$$targs$$.Element$Collection,{t:$_Object}])]),Arguments$Callable:mtt$([{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}])}),{Group$group:mut$([{t:Basic},mit$([collection$.$$targs$$.Element$Collection,{t:$_Object}])])}).items.$_sort($JsCallable((function($iq,$ir){return $iq.first.key.compare($ir.first.key);}),[{nm:'x',mt:'prm',$t:{t:Sequence,a:{Element$Sequence:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.Element$Collection}}}}},{nm:'y',mt:'prm',$t:{t:Sequence,a:{Element$Sequence:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.Element$Collection}}}}}],{Return$Callable:{t:Comparison},Arguments$Callable:mtt$([{t:Sequence,a:{Element$Sequence:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}}},{t:'u',l:[{t:Sequence,a:{Element$Sequence:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}}},{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}],seq:2}])})).indexed.flatMap($JsCallable((function($is){return function(){var $it=$is,$iu=$it.key,$iv=$it.item;return $iv.$_map($JsCallable((function($iw){return Entry($iu,$iw.item,{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection});}),[{nm:'entry',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.Element$Collection}}}],{Return$Callable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}},Arguments$Callable:mtt$([{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}])}),{Result$map:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}});}();}),[{nm:'entry',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:Sequence,a:{Element$Sequence:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.Element$Collection}}}}}}}],{Return$Callable:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}}},Arguments$Callable:mtt$([{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:{t:Sequence,a:{Element$Sequence:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}}}}}])}),{OtherAbsent$flatMap:{t:Nothing},Result$flatMap:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}});$im$.$prop$get$in={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:'Element$Collection'}}}},$cont:collection$.$prop$getPermutations,d:['$','Collection','$at','permutations','$at','multiset$e71tjc']};}};$im$.$prop$get$in.get=function(){return $in};var $ip;return $im$;};$im.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:collection$.$prop$getPermutations,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Sequence,a:{Element$Sequence:'Element$Collection'}}}}],d:['$','Collection','$at','permutations']};};function $init$$im(){if($im.$$===undefined){initTypeProto($im,'ceylon.language::Collection.anonymous#0',Basic,$init$Iterable());
(function($im$){atr$($im$,'$in',function(){return this.$in_;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:'Element$Collection'}}}},$cont:collection$.$prop$getPermutations,d:['$','Collection','$at','permutations','$at','multiset$e71tjc']};});atr$($im$,'empty',function(){var $im$=this;return $im$.$in.empty;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:collection$.$prop$getPermutations,pa:3,d:['$','Collection','$at','permutations','$at','empty']};});$im$.iterator=function(){var $im$=this;return function(){function $ix($$targs$$){var $ix$=new $ix.$$;$ix$.outer$=$im$;$ix$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:Sequence,a:{Element$Sequence:collection$.$$targs$$.Element$Collection}}},$ix$);$ix$.$iy_=$_Array($im$.$in,{Element$Array:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}});$ix$.$prop$get$iy={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:'Element$Collection'}}}},$cont:collection$.$prop$getPermutations,d:['$','Collection','$at','permutations','$at','elements$oti03l']};}};$ix$.$prop$get$iy.get=function(){return $iy};$ix$.$iz_=$ix$.$iy.size;$ix$.$prop$get$iz={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:collection$.$prop$getPermutations,d:['$','Collection','$at','permutations','$at','size$utz989']};}};$ix$.$prop$get$iz.get=function(){return $iz};$ix$.$j0_=true;$ix$.$prop$get$j0={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:collection$.$prop$getPermutations,pa:1024,d:['$','Collection','$at','permutations','$at','initial$no6bic']};}};$ix$.$prop$get$j0.get=function(){return $j0};return $ix$;};$ix.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:collection$.$prop$getPermutations,sts:[{t:Iterator,a:{Element$Iterator:{t:Sequence,a:{Element$Sequence:'Element$Collection'}}}}],d:['$','Collection','$at','permutations']};};function $init$$ix(){if($ix.$$===undefined){initTypeProto($ix,'ceylon.language::Collection.anonymous#0.anonymous#5',Basic,$init$Iterator());
(function($ix$){atr$($ix$,'$iy',function(){return this.$iy_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:'Element$Collection'}}}},$cont:collection$.$prop$getPermutations,d:['$','Collection','$at','permutations','$at','elements$oti03l']};});atr$($ix$,'$iz',function(){return this.$iz_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:collection$.$prop$getPermutations,d:['$','Collection','$at','permutations','$at','size$utz989']};});atr$($ix$,'$j0',function(){return this.$j0_;},function($j1){return this.$j0_=$j1;},function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:collection$.$prop$getPermutations,pa:1024,d:['$','Collection','$at','permutations','$at','initial$no6bic']};});$ix$.next=function(){var $ix$=this;if($ix$.$j0){$ix$.$j0=false;}
else{var $j2,$j3,$j4,$j5;if(function($j6){if(!nn$($j6))return false;return($j3=$j6.key,$j4=$j6.item.$_get(0).key,$j2=$j6.item.$_get(0).item,$j5=$j6.item.$_get(1),true);}($ix$.$iy.paired.locateLast($JsCallable((function($j7){return ($j7.$_get(0).key<$j7.$_get(1).key);}),[{nm:'pair',mt:'prm',$t:{t:Tuple,a:{Rest$Tuple:mtt$([{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}]),Element$Tuple:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}},First$Tuple:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}}}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([mtt$([{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}},{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}])])})))){var $j8=(function(){var $j9;asrt$((nn$(($j9=$ix$.$iy.lastIndexWhere($JsCallable((function($ja){return ($ja.key>$j4);}),[{nm:'elem',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.Element$Collection}}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:collection$.$$targs$$.Element$Collection}}])}))))),"Assertion failed: \'exists j\n                            = elements.lastIndexWhere((elem) \n                                => elem.key > key)\' at Collection.ceylon (126:27-128:50)",'126:20-128:51','Collection.ceylon');
$ix$.$iy.swap($j3,$j9);var $jc=(0),$jd=$ix$.$iz.minus($j3).minus(1).divided(2);for(var $je=0;$je<$jd;$je++,($jc=$jc.successor)){$ix$.$iy.swap($j3.plus(1).plus($jc),$ix$.$iz.minus(1).minus($jc));}}());if($j8!==undefined){return $j8;}}
else{return finished();}
}
return function(){var $jf;if(ne$(($jf=$ix$.$iy.collect(function(e){return e.item;},{Result$collect:collection$.$$targs$$.Element$Collection}))))return $jf;else return finished()}();};$ix$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Sequence,a:{Element$Sequence:'Element$Collection'}},{t:Finished}]},ps:[],$cont:collection$.$prop$getPermutations,pa:3,d:['$','Collection','$at','permutations','$m','next']};};})($ix.$$.prototype);}
return $ix;}
$im$.$init$$ix=$init$$ix;$init$$ix();return $ix();}();};})($im.$$.prototype);}
return $im;}
collection$.$init$$im=$init$$im;$init$$im();return $im();}()},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Sequence,a:{Element$Sequence:'Element$Collection'}}}},$cont:Collection,pa:1,an:function(){return[doc$($CCMM$,'$:Collection:$at:permutations')];},d:['$','Collection','$at','permutations']};});})(Collection.$$.prototype);}
return Collection;}
ex$.$init$Collection=$init$Collection;$init$Collection();var $il;function $ji(){var nullElement$=new $ji.$$;return nullElement$;};$ji.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},d:['$','nullElement']};};function $init$nullElement(){if($ji.$$===undefined){initTypeProto($ji,'ceylon.language::nullElement',Basic);
}
return $ji;}
ex$.$init$nullElement=$init$nullElement;$init$nullElement();var $jk;function nullElement(){if($jk===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'nullElement\' before it was set"),'148:0-149:20','Collection.ceylon');if($jk===undefined){$jk=INIT$;$jk=$init$nullElement()();$jk.$crtmm$=nullElement.$crtmm$;}
return $jk;}
nullElement.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$nullElement()},an:function(){return[doc$($CCMM$,'$:nullElement')];},d:['$','nullElement']};};$prop$getNullElement=nullElement;ex$.$prop$getNullElement=$prop$getNullElement;function Comparable($$targs$$,comparable$){set_type_args(comparable$,$$targs$$,Comparable);}
Comparable.$crtmm$=function(){return{mod:$CCMM$,tp:{Other$Comparable:{dv:'in',sts:[{t:Comparable,a:{Other$Comparable:'Other$Comparable'}}]}},of:['Other$Comparable'],pa:1,an:function(){return[doc$($CCMM$,'$:Comparable'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Comparison),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$_sort),$init$OpenFunction$jsint()(lmp$(ex$,'$'),max),$init$OpenFunction$jsint()(lmp$(ex$,'$'),min),$init$OpenFunction$jsint()(lmp$(ex$,'$'),largest),$init$OpenFunction$jsint()(lmp$(ex$,'$'),smallest)].$sa$(mut$([{t:ClassWithInitializerDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}]))),by(["Gavin"].$sa$({t:$_String})),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','Comparable']};};
ex$.Comparable=Comparable;function $init$Comparable(){if(Comparable.$$===undefined){initTypeProtoI(Comparable,'ceylon.language::Comparable');
(function(comparable$){comparable$.compare={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'other',mt:'prm',$t:'Other$Comparable'}],$cont:Comparable,pa:5,an:function(){return[doc$($CCMM$,'$:Comparable:$m:compare'),see("equals")];},d:['$','Comparable','$m','compare']};}};comparable$.largerThan=function($jl){var comparable$=this;return (comparable$.compare($jl)===larger());};comparable$.largerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:'Other$Comparable'}],$cont:Comparable,pa:9,an:function(){return[doc$($CCMM$,'$:Comparable:$m:largerThan')];},d:['$','Comparable','$m','largerThan']};};comparable$.smallerThan=function($jm){var comparable$=this;return (comparable$.compare($jm)===smaller());};comparable$.smallerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:'Other$Comparable'}],$cont:Comparable,pa:9,an:function(){return[doc$($CCMM$,'$:Comparable:$m:smallerThan')];},d:['$','Comparable','$m','smallerThan']};};comparable$.notSmallerThan=function($jn){var comparable$=this;return !(comparable$.compare($jn)===smaller());};comparable$.notSmallerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:'Other$Comparable'}],$cont:Comparable,pa:9,an:function(){return[doc$($CCMM$,'$:Comparable:$m:notSmallerThan')];},d:['$','Comparable','$m','notSmallerThan']};};comparable$.notLargerThan=function($jo){var comparable$=this;return !(comparable$.compare($jo)===larger());};comparable$.notLargerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:'Other$Comparable'}],$cont:Comparable,pa:9,an:function(){return[doc$($CCMM$,'$:Comparable:$m:notLargerThan')];},d:['$','Comparable','$m','notLargerThan']};};})(Comparable.$$.prototype);}
return Comparable;}
ex$.$init$Comparable=$init$Comparable;$init$Comparable();function ConstrainedAnnotation($$targs$$,constrainedAnnotation$){set_type_args(constrainedAnnotation$,$$targs$$,ConstrainedAnnotation);Annotation(constrainedAnnotation$);}
ConstrainedAnnotation.$crtmm$=function(){return{mod:$CCMM$,tp:{Value$ConstrainedAnnotation:{dv:'out',sts:[{t:Annotation}],def:{t:Annotation}},Values$ConstrainedAnnotation:{dv:'out',def:{t:Anything}},ProgramElement$ConstrainedAnnotation:{dv:'in',sts:[{t:Annotated}],def:{t:Nothing}},Type$ConstrainedAnnotation:{dv:'out',def:{t:Anything}}},sts:[{t:Annotation}],of:['Value$ConstrainedAnnotation'],pa:1,an:function(){return[doc$($CCMM$,'$:ConstrainedAnnotation'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Annotation),$init$OpenInterface$jsint()(lmp$(ex$,'$'),OptionalAnnotation),$init$OpenInterface$jsint()(lmp$(ex$,'$'),SequencedAnnotation)].$sa$({t:InterfaceDeclaration$meta$declaration}))];},d:['$','ConstrainedAnnotation']};};
ex$.ConstrainedAnnotation=ConstrainedAnnotation;function $init$ConstrainedAnnotation(){if(ConstrainedAnnotation.$$===undefined){initTypeProtoI(ConstrainedAnnotation,'ceylon.language::ConstrainedAnnotation',$init$Annotation());
}
return ConstrainedAnnotation;}
ex$.$init$ConstrainedAnnotation=$init$ConstrainedAnnotation;$init$ConstrainedAnnotation();function Contextual($$targs$$,contextual$){$init$Contextual();
if(contextual$===undefined)contextual$=new Contextual.$$;
set_type_args(contextual$,$$targs$$);
contextual$.$jp_=null;return contextual$;}
Contextual.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Element$Contextual:{}},pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','Contextual']};};
ex$.Contextual=Contextual;function $init$Contextual(){if(Contextual.$$===undefined){initTypeProto(Contextual,'ceylon.language::Contextual',Basic);
(function(contextual$){atr$(contextual$,'$jp',function(){return this.$jp_;},function($jq){return this.$jp_=$jq;},function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Contextual']},$cont:Contextual,pa:1024,d:['$','Contextual','$at','val$vz9pvu']};});contextual$.$_get=function(){var contextual$=this;var $jr;asrt$((nn$(($jr=contextual$.$jp))),"Assertion failed: \'exists result = val\' at Contextual.ceylon (97:15-97:35)",'97:8-97:36','Contextual.ceylon');
return $jr;};contextual$.$_get.$crtmm$=function(){return{mod:$CCMM$,$t:'Element$Contextual',ps:[],$cont:Contextual,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','Contextual','$m','get']};};function Using$Contextual($js,using$Contextual$){$init$Using$Contextual();
if(using$Contextual$===undefined)using$Contextual$=new this.Using$Contextual.$$;
using$Contextual$.outer$=this;using$Contextual$.$js_=$js;Obtainable(using$Contextual$);using$Contextual$.$jt_=null;return using$Contextual$;}
Using$Contextual.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'newValue',mt:'prm',$t:{t:'u',l:['Element$Contextual',{t:Callable,a:{Return$Callable:'Element$Contextual',Arguments$Callable:{t:Empty}}}]}}],$cont:Contextual,sts:[{t:Obtainable}],pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','Contextual','$c','Using']};};function $init$Using$Contextual(){if(Using$Contextual.$$===undefined){initTypeProto(Using$Contextual,'ceylon.language::Contextual.Using',Basic,$init$Obtainable());
Contextual.Using$Contextual=Using$Contextual;
(function(using$Contextual$){atr$(using$Contextual$,'$js',function(){return this.$js_;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Contextual',{t:Callable,a:{Return$Callable:'Element$Contextual',Arguments$Callable:{t:Empty}}}]},$cont:contextual$.Using$Contextual,d:['$','Contextual','$c','Using','$at','newValue$n3vsh3']};});atr$(using$Contextual$,'$jt',function(){return this.$jt_;},function($ju){return this.$jt_=$ju;},function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Contextual']},$cont:contextual$.Using$Contextual,pa:1024,d:['$','Contextual','$c','Using','$at','previous$xtplyn']};});using$Contextual$.obtain=function(){var using$Contextual$=this;using$Contextual$.$jt=using$Contextual$.outer$.$jp;var $jv;if(is$(($jv=using$Contextual$.$js),{t:Callable,a:{Return$Callable:using$Contextual$.outer$.$$targs$$.Element$Contextual/*ORALE!Element inv pero Return var*/,Arguments$Callable:{t:Empty}}})){using$Contextual$.outer$.$jp=$jv();}
else{using$Contextual$.outer$.$jp=$jv;}
};using$Contextual$.obtain.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:contextual$.Using$Contextual,pa:3,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','Contextual','$c','Using','$m','obtain']};};using$Contextual$.release=function($jw){var using$Contextual$=this;var $jx;if(nn$(($jx=using$Contextual$.$jt))){using$Contextual$.outer$.$jp=$jx;}
else{using$Contextual$.outer$.$jp=null;}
};using$Contextual$.release.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'error',mt:'prm',$t:{t:'u',l:[{t:Null},{t:Throwable}]}}],$cont:contextual$.Using$Contextual,pa:3,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','Contextual','$c','Using','$m','release']};};})(Using$Contextual.$$.prototype);}
return Using$Contextual;}
contextual$.$init$Using$Contextual=$init$Using$Contextual;contextual$.Using$Contextual=Using$Contextual;$init$Using$Contextual();
})(Contextual.$$.prototype);}
return Contextual;}
ex$.$init$Contextual=$init$Contextual;$init$Contextual();function Correspondence($$targs$$,correspondence$){set_type_args(correspondence$,$$targs$$,Correspondence);}
Correspondence.$crtmm$=function(){return{mod:$CCMM$,tp:{Key$Correspondence:{dv:'in',sts:[{t:$_Object}]},Item$Correspondence:{dv:'out',def:{t:Anything}}},pa:1,an:function(){return[doc$($CCMM$,'$:Correspondence'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Map),$init$OpenInterface$jsint()(lmp$(ex$,'$'),List),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Category)].$sa$({t:InterfaceDeclaration$meta$declaration})),by(["Gavin"].$sa$({t:$_String})),tagged(["Collections"].$sa$({t:$_String}))];},d:['$','Correspondence']};};
ex$.Correspondence=Correspondence;function $init$Correspondence(){if(Correspondence.$$===undefined){initTypeProtoI(Correspondence,'ceylon.language::Correspondence');
(function(correspondence$){correspondence$.$_get={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Item$Correspondence']},ps:[{nm:'key',mt:'prm',$t:'Key$Correspondence'}],$cont:Correspondence,pa:5,an:function(){return[doc$($CCMM$,'$:Correspondence:$m:get'),see("Correspondence.getAll")];},d:['$','Correspondence','$m','get']};}};correspondence$.defines={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'key',mt:'prm',$t:'Key$Correspondence'}],$cont:Correspondence,pa:5,an:function(){return[doc$($CCMM$,'$:Correspondence:$m:defines'),see("Correspondence.definesAny","Correspondence.definesEvery","Correspondence.keys")];},d:['$','Correspondence','$m','defines']};}};atr$(correspondence$,'keys',function(){var correspondence$=this;return function(){function $jy($$targs$$){var $jy$=new $jy.$$;$jy$.outer$=correspondence$;$jy$.$$targs$$=$$targs$$;Category({Element$Category:correspondence$.$$targs$$.Key$Correspondence},$jy$);return $jy$;};$jy.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:correspondence$.$prop$getKeys,sts:[{t:Category,a:{Element$Category:'Key$Correspondence'}}],d:['$','Correspondence','$at','keys']};};function $init$$jy(){if($jy.$$===undefined){initTypeProto($jy,'ceylon.language::Correspondence.anonymous#0',Basic,$init$Category());
(function($jy$){$jy$.contains=function($jz){var $jy$=this;return correspondence$.defines($jz);};})($jy.$$.prototype);}
return $jy;}
correspondence$.$init$$jy=$init$$jy;$init$$jy();return $jy();}()},undefined,function(){return{mod:$CCMM$,$t:{t:Category,a:{Element$Category:'Key$Correspondence'}},$cont:Correspondence,pa:9,an:function(){return[doc$($CCMM$,'$:Correspondence:$at:keys'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Correspondence().$$.prototype.defines)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Correspondence','$at','keys']};});correspondence$.definesEvery=function($k1){var correspondence$=this;var $k3;for(var $k2=$k1.iterator();($k3=$k2.next())!==finished();){if(!correspondence$.defines($k3)){return false;}
}
if(finished()===$k3){return true;}
};correspondence$.definesEvery.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'keys',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Key$Correspondence'}}}],$cont:Correspondence,pa:9,an:function(){return[doc$($CCMM$,'$:Correspondence:$m:definesEvery'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Correspondence().$$.prototype.defines)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Correspondence','$m','definesEvery']};};correspondence$.definesAny=function($k4){var correspondence$=this;var $k6;for(var $k5=$k4.iterator();($k6=$k5.next())!==finished();){if(correspondence$.defines($k6)){return true;}
}
if(finished()===$k6){return false;}
};correspondence$.definesAny.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'keys',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Key$Correspondence'}}}],$cont:Correspondence,pa:9,an:function(){return[doc$($CCMM$,'$:Correspondence:$m:definesAny'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Correspondence().$$.prototype.defines)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Correspondence','$m','definesAny']};};correspondence$.getAll=function($k7,$jg4ox9$){var correspondence$=this;return for$(function(){var $k8=$k7.iterator(),$k9=finished();var n$k9=function(){return $k9=$k8.next();}
return function(){if(n$k9()!==finished()){var $ka=$k9,$kb=correspondence$.$_get($ka);return $kb;}
return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:mut$([{t:Null},correspondence$.$$targs$$.Item$Correspondence])});};correspondence$.getAll.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$getAll',Element$Iterable:{t:'u',l:[{t:Null},'Item$Correspondence']}}},ps:[{nm:'keys',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'Absent$getAll',Element$Iterable:'Key$Correspondence'}}}],$cont:Correspondence,tp:{Absent$getAll:{sts:[{t:Null}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Correspondence:$m:getAll'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Correspondence().$$.prototype.$_get)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Correspondence','$m','getAll']};};})(Correspondence.$$.prototype);}
return Correspondence;}
ex$.$init$Correspondence=$init$Correspondence;$init$Correspondence();function CycledIterator($kc,$kd,$$targs$$,cycledIterator$){$init$CycledIterator();
if(cycledIterator$===undefined)cycledIterator$=new CycledIterator.$$;
set_type_args(cycledIterator$,$$targs$$);
cycledIterator$.$kc_=$kc;cycledIterator$.$kd_=$kd;Iterator({Element$Iterator:$$targs$$.Element$CycledIterator/*ORALE!Element inv pero Element var*/},cycledIterator$);cycledIterator$.$ke_=emptyIterator();cycledIterator$.$kf_=(0);return cycledIterator$;}
CycledIterator.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'iterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$CycledIterator'}}},{nm:'times',mt:'prm',$t:{t:Integer}}],tp:{Element$CycledIterator:{}},sts:[{t:Iterator,a:{Element$Iterator:'Element$CycledIterator'}}],d:['$','CycledIterator']};};
ex$.CycledIterator=CycledIterator;function $init$CycledIterator(){if(CycledIterator.$$===undefined){initTypeProto(CycledIterator,'ceylon.language::CycledIterator',Basic,$init$Iterator());
(function(cycledIterator$){atr$(cycledIterator$,'$kc',function(){return this.$kc_;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$CycledIterator'}},$cont:CycledIterator,d:['$','CycledIterator','$at','iterable$oksliy']};});atr$(cycledIterator$,'$kd',function(){return this.$kd_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:CycledIterator,d:['$','CycledIterator','$at','times$6c4zeu']};});atr$(cycledIterator$,'$ke',function(){return this.$ke_;},function($kg){return this.$ke_=$kg;},function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$CycledIterator'}},$cont:CycledIterator,pa:1027,d:['$','CycledIterator','$at','iter$glpg04']};});atr$(cycledIterator$,'$kf',function(){return this.$kf_;},function($kh){return this.$kf_=$kh;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:CycledIterator,pa:1024,d:['$','CycledIterator','$at','count$2etvtx']};});cycledIterator$.next=function(){var cycledIterator$=this;var $ki;if(!is$(($ki=cycledIterator$.$ke.next()),{t:Finished})){return $ki;}
else{if((cycledIterator$.$kf<cycledIterator$.$kd)){($kj=cycledIterator$.$kf,cycledIterator$.$kf=$kj.successor,$kj);var $kj;cycledIterator$.$ke=cycledIterator$.$kc.iterator();}
else{cycledIterator$.$ke=emptyIterator();}
return cycledIterator$.$ke.next();}
};cycledIterator$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$CycledIterator',{t:Finished}]},ps:[],$cont:CycledIterator,pa:3,d:['$','CycledIterator','$m','next']};};atr$(cycledIterator$,'string',function(){var cycledIterator$=this;return cycledIterator$.$kc.string.plus(".repeat(").plus(cycledIterator$.$kd.string).plus(").iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:CycledIterator,pa:3,d:['$','CycledIterator','$at','string']};});})(CycledIterator.$$.prototype);}
return CycledIterator;}
ex$.$init$CycledIterator=$init$CycledIterator;$init$CycledIterator();function Destroyable(destroyable$){Usable(destroyable$);}
Destroyable.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:Usable}],pa:1,an:function(){return[doc$($CCMM$,'$:Destroyable'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Obtainable)].$sa$({t:InterfaceDeclaration$meta$declaration})),tagged(["Basic types"].$sa$({t:$_String}))];},d:['$','Destroyable']};};
ex$.Destroyable=Destroyable;function $init$Destroyable(){if(Destroyable.$$===undefined){initTypeProtoI(Destroyable,'ceylon.language::Destroyable',$init$Usable());
(function(destroyable$){destroyable$.destroy={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'error',mt:'prm',$t:{t:'u',l:[{t:Null},{t:Throwable}]}}],$cont:Destroyable,pa:5,an:function(){return[doc$($CCMM$,'$:Destroyable:$m:destroy')];},d:['$','Destroyable','$m','destroy']};}};})(Destroyable.$$.prototype);}
return Destroyable;}
ex$.$init$Destroyable=$init$Destroyable;$init$Destroyable();function Entry(key,item,$$targs$$,entry$){$init$Entry();
if(entry$===undefined)entry$=new Entry.$$;
set_type_args(entry$,$$targs$$);
entry$.key_=key;entry$.item_=item;$_Object(entry$);return entry$;}
Entry.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'key',mt:'prm',$t:'Key$Entry',pa:1,an:function(){return[doc$($CCMM$,'$:Entry:$at:key')];}},{nm:'item',mt:'prm',$t:'Item$Entry',pa:1,an:function(){return[doc$($CCMM$,'$:Entry:$at:item')];}}],tp:{Key$Entry:{dv:'out',sts:[{t:$_Object}]},Item$Entry:{dv:'out'}},pa:2081,an:function(){return[doc$($CCMM$,'$:Entry'),by(["Gavin"].$sa$({t:$_String})),tagged(["Collections"].$sa$({t:$_String}))];},d:['$','Entry']};};
ex$.Entry=Entry;function $init$Entry(){if(Entry.$$===undefined){initTypeProto(Entry,'ceylon.language::Entry',$init$$_Object());
(function(entry$){atr$(entry$,'key',function(){return this.key_;},undefined,function(){return{mod:$CCMM$,$t:'Key$Entry',$cont:Entry,pa:1,an:function(){return[doc$($CCMM$,'$:Entry:$at:key')];},d:['$','Entry','$at','key']};});atr$(entry$,'item',function(){return this.item_;},undefined,function(){return{mod:$CCMM$,$t:'Item$Entry',$cont:Entry,pa:1,an:function(){return[doc$($CCMM$,'$:Entry:$at:item')];},d:['$','Entry','$at','item']};});atr$(entry$,'pair',function(){var entry$=this;return tpl$([entry$.key,entry$.item])},undefined,function(){return{mod:$CCMM$,$t:{t:'T',l:['Key$Entry','Item$Entry']},$cont:Entry,pa:1,an:function(){return[doc$($CCMM$,'$:Entry:$at:pair')];},d:['$','Entry','$at','pair']};});atr$(entry$,'coalesced',function(){var entry$=this;return function(){var $kk;if(nn$(($kk=entry$.item)))return Entry(entry$.key,$kk,{Key$Entry:entry$.$$targs$$.Key$Entry,Item$Entry:mit$([entry$.$$targs$$.Item$Entry,{t:$_Object}])});else return null}()},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Entry,a:{Key$Entry:'Key$Entry',Item$Entry:{t:'i',l:['Item$Entry',{t:$_Object}]}}}]},$cont:Entry,pa:1,an:function(){return[doc$($CCMM$,'$:Entry:$at:coalesced')];},d:['$','Entry','$at','coalesced']};});entry$.equals=function($kl){var entry$=this;var $km;if(is$(($km=$kl),{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:{t:Anything}}})){if((!entry$.key.equals($km.key))){return false;}
var $kn,$ko;if(nn$(($kn=entry$.item))&&nn$(($ko=$km.item))){return $kn.equals($ko);}
else{return (!nn$(entry$.item)&&!nn$($km.item));}
}
else{return false;}
};entry$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:Entry,pa:3,an:function(){return[doc$($CCMM$,'$:Entry:$m:equals')];},d:['$','Entry','$m','equals']};};atr$(entry$,'hash',function(){var entry$=this;return (31).plus(entry$.key.hash).times(31).plus(($kq=($kr=entry$.item,nn$($kr)?$kr.hash:null),nn$($kq)?$kq:(0)))},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Entry,pa:3,d:['$','Entry','$at','hash']};});atr$(entry$,'string',function(){var entry$=this;return entry$.key.string.plus("->").plus(stringify(entry$.item))},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Entry,pa:3,an:function(){return[doc$($CCMM$,'$:Entry:$at:string')];},d:['$','Entry','$at','string']};});})(Entry.$$.prototype);}
return Entry;}
ex$.$init$Entry=$init$Entry;$init$Entry();Entry.inst$$=function($kt){var entry$=new Entry.$$;
set_type_args(entry$,{Key$Entry:$kt.$$targs$$.Type$Class.a.Key$Entry,Item$Entry:$kt.$$targs$$.Type$Class.a.Item$Entry});
return entry$;};Entry.ser$get$=function(ref,o){var n=ref.attribute.qualifiedName;if(n==='ceylon.language::Entry.key')return o.key_;else if(n==='ceylon.language::Entry.item')return o.item_;else throw new TypeError('unknown attribute');};Entry.ser$set$=function(ref,o,i){if(!is$(ref,{t:Member$serialization}))throw AssertionError('unexpected reachable reference');var n=ref.attribute.qualifiedName;
if(n==='ceylon.language::Entry.key')o.key_=i;
else if(n==='ceylon.language::Entry.item')o.item_=i;
else throw new TypeError('unknown attribute');};Entry.ser$refs$=function(o){return [MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$getKey)),MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$getItem))];};var $kq,$kr;function Enumerable($$targs$$,enumerable$){set_type_args(enumerable$,$$targs$$,Enumerable);Ordinal({Other$Ordinal:$$targs$$.Other$Enumerable/*ORALE!Other inv pero Other var*/},enumerable$);}
Enumerable.$crtmm$=function(){return{mod:$CCMM$,tp:{Other$Enumerable:{sts:[{t:Enumerable,a:{Other$Enumerable:'Other$Enumerable'}}]}},sts:[{t:Ordinal,a:{Other$Ordinal:'Other$Enumerable'}}],of:['Other$Enumerable'],pa:1,an:function(){return[doc$($CCMM$,'$:Enumerable'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Range),$init$OpenFunction$jsint()(lmp$(ex$,'$'),span),$init$OpenFunction$jsint()(lmp$(ex$,'$'),measure)].$sa$(mut$([{t:ClassWithInitializerDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}])))];},d:['$','Enumerable']};};
ex$.Enumerable=Enumerable;function $init$Enumerable(){if(Enumerable.$$===undefined){initTypeProtoI(Enumerable,'ceylon.language::Enumerable',$init$Ordinal());
(function(enumerable$){enumerable$.neighbour={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Enumerable',ps:[{nm:'offset',mt:'prm',$t:{t:Integer}}],$cont:Enumerable,pa:5,an:function(){return[doc$($CCMM$,'$:Enumerable:$m:neighbour'),$_throws("OverflowException","if the neighbour cannot be represented as an \ninstance of the type")];},d:['$','Enumerable','$m','neighbour']};}};atr$(enumerable$,'successor',function(){var enumerable$=this;return enumerable$.neighbour(1)},undefined,function(){return{mod:$CCMM$,$t:'Other$Enumerable',$cont:Enumerable,pa:11,d:['$','Enumerable','$at','successor']};});atr$(enumerable$,'predecessor',function(){var enumerable$=this;return enumerable$.neighbour((-1))},undefined,function(){return{mod:$CCMM$,$t:'Other$Enumerable',$cont:Enumerable,pa:11,d:['$','Enumerable','$at','predecessor']};});enumerable$.offset={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'other',mt:'prm',$t:'Other$Enumerable'}],$cont:Enumerable,pa:5,an:function(){return[doc$($CCMM$,'$:Enumerable:$m:offset'),$_throws("OverflowException","if the offset cannot be represented as an \ninteger")];},d:['$','Enumerable','$m','offset']};}};enumerable$.offsetSign=function($kw){var enumerable$=this;return enumerable$.offset($kw).sign;};enumerable$.offsetSign.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'other',mt:'prm',$t:'Other$Enumerable'}],$cont:Enumerable,pa:9,an:function(){return[doc$($CCMM$,'$:Enumerable:$m:offsetSign')];},d:['$','Enumerable','$m','offsetSign']};};})(Enumerable.$$.prototype);}
return Enumerable;}
ex$.$init$Enumerable=$init$Enumerable;$init$Enumerable();function Exponentiable($$targs$$,exponentiable$){set_type_args(exponentiable$,$$targs$$,Exponentiable);Numeric({Other$Numeric:$$targs$$.This$Exponentiable},exponentiable$);}
Exponentiable.$crtmm$=function(){return{mod:$CCMM$,tp:{This$Exponentiable:{sts:[{t:Exponentiable,a:{Other$Exponentiable:'Other$Exponentiable',This$Exponentiable:'This$Exponentiable'}}]},Other$Exponentiable:{sts:[{t:Numeric,a:{Other$Numeric:'Other$Exponentiable'}}]}},sts:[{t:Numeric,a:{Other$Numeric:'This$Exponentiable'}}],of:['This$Exponentiable'],pa:1,an:function(){return[doc$($CCMM$,'$:Exponentiable'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Integer),$init$openClass$jsint()(lmp$(ex$,'$'),Float)].$sa$({t:ClassWithInitializerDeclaration$meta$declaration})),tagged(["Numbers"].$sa$({t:$_String}))];},d:['$','Exponentiable']};};
ex$.Exponentiable=Exponentiable;function $init$Exponentiable(){if(Exponentiable.$$===undefined){initTypeProtoI(Exponentiable,'ceylon.language::Exponentiable',$init$Numeric());
(function(exponentiable$){exponentiable$.power={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'This$Exponentiable',ps:[{nm:'other',mt:'prm',$t:'Other$Exponentiable'}],$cont:Exponentiable,pa:5,an:function(){return[doc$($CCMM$,'$:Exponentiable:$m:power')];},d:['$','Exponentiable','$m','power']};}};})(Exponentiable.$$.prototype);}
return Exponentiable;}
ex$.$init$Exponentiable=$init$Exponentiable;$init$Exponentiable();function Finished(finished$){$init$Finished();
if(finished$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language::Finished"),'?','?')
return finished$;}
Finished.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],of:[$prop$getFinished],pa:257,an:function(){return[doc$($CCMM$,'$:Finished'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Iterator)].$sa$({t:InterfaceDeclaration$meta$declaration})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','Finished']};};
ex$.Finished=Finished;function $init$Finished(){if(Finished.$$===undefined){initTypeProto(Finished,'ceylon.language::Finished',Basic);
}
return Finished;}
ex$.$init$Finished=$init$Finished;$init$Finished();function $kx(){var finished$=new $kx.$$;Finished(finished$);return finished$;};$kx.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Finished},d:['$','finished']};};function $init$finished(){if($kx.$$===undefined){initTypeProto($kx,'ceylon.language::finished',$init$Finished());
(function(finished$){atr$(finished$,'string',function(){var finished$=this;return "finished";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$kx,pa:3,d:['$','finished','$at','string']};});})($kx.$$.prototype);}
return $kx;}
ex$.$init$finished=$init$finished;$init$finished();var $kz;function finished(){if($kz===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'finished\' before it was set"),'7:0-13:0','Finished.ceylon');if($kz===undefined){$kz=INIT$;$kz=$init$finished()();$kz.$crtmm$=finished.$crtmm$;}
return $kz;}
ex$.finished=finished;finished.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$finished()},pa:1,an:function(){return[doc$($CCMM$,'$:finished'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Iterator)].$sa$({t:InterfaceDeclaration$meta$declaration})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','finished']};};$prop$getFinished=finished;ex$.$prop$getFinished=$prop$getFinished;function InitializationError($l0,initializationError$){$init$InitializationError();
if(initializationError$===undefined)initializationError$=new InitializationError.$$;
initializationError$.$l0_=$l0;AssertionError($l0,initializationError$);return initializationError$;}
InitializationError.$crtmm$=function(){return{mod:$CCMM$,'super':{t:AssertionError},ps:[{nm:'description',mt:'prm',$t:{t:$_String}}],pa:1,an:function(){return[doc$($CCMM$,'$:InitializationError'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),late)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','InitializationError']};};
ex$.InitializationError=InitializationError;function $init$InitializationError(){if(InitializationError.$$===undefined){initTypeProto(InitializationError,'ceylon.language::InitializationError',$init$AssertionError());
(function(initializationError$){atr$(initializationError$,'$l0',function(){return this.$l0_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:InitializationError,d:['$','InitializationError','$at','description$lsghss']};});})(InitializationError.$$.prototype);}
return InitializationError;}
ex$.$init$InitializationError=$init$InitializationError;$init$InitializationError();function Invertible($$targs$$,invertible$){set_type_args(invertible$,$$targs$$,Invertible);Summable({Other$Summable:$$targs$$.Other$Invertible},invertible$);}
Invertible.$crtmm$=function(){return{mod:$CCMM$,tp:{Other$Invertible:{sts:[{t:Invertible,a:{Other$Invertible:'Other$Invertible'}}]}},sts:[{t:Summable,a:{Other$Summable:'Other$Invertible'}}],of:['Other$Invertible'],pa:1,an:function(){return[doc$($CCMM$,'$:Invertible'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Integer),$init$openClass$jsint()(lmp$(ex$,'$'),Float)].$sa$({t:ClassWithInitializerDeclaration$meta$declaration})),by(["Gavin"].$sa$({t:$_String})),tagged(["Numbers"].$sa$({t:$_String}))];},d:['$','Invertible']};};
ex$.Invertible=Invertible;function $init$Invertible(){if(Invertible.$$===undefined){initTypeProtoI(Invertible,'ceylon.language::Invertible',$init$Summable());
(function(invertible$){invertible$.$prop$getNegated={$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Invertible',$cont:Invertible,pa:5,an:function(){return[doc$($CCMM$,'$:Invertible:$at:negated')];},d:['$','Invertible','$at','negated']};}};invertible$.minus=function($l1){var invertible$=this;return invertible$.plus($l1.negated);};invertible$.minus.$crtmm$=function(){return{mod:$CCMM$,$t:'Other$Invertible',ps:[{nm:'other',mt:'prm',$t:'Other$Invertible'}],$cont:Invertible,pa:9,an:function(){return[doc$($CCMM$,'$:Invertible:$m:minus')];},d:['$','Invertible','$m','minus']};};})(Invertible.$$.prototype);}
return Invertible;}
ex$.$init$Invertible=$init$Invertible;$init$Invertible();function Iterator($$targs$$,iterator$){set_type_args(iterator$,$$targs$$,Iterator);}
Iterator.$crtmm$=function(){return{mod:$CCMM$,tp:{Element$Iterator:{dv:'out'}},pa:1,an:function(){return[doc$($CCMM$,'$:Iterator'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Iterable)].$sa$({t:InterfaceDeclaration$meta$declaration})),by(["Gavin"].$sa$({t:$_String})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','Iterator']};};
ex$.Iterator=Iterator;function $init$Iterator(){if(Iterator.$$===undefined){initTypeProtoI(Iterator,'ceylon.language::Iterator');
(function(iterator$){iterator$.next={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Iterator',{t:Finished}]},ps:[],$cont:Iterator,pa:5,an:function(){return[doc$($CCMM$,'$:Iterator:$m:next')];},d:['$','Iterator','$m','next']};}};})(Iterator.$$.prototype);}
return Iterator;}
ex$.$init$Iterator=$init$Iterator;$init$Iterator();function List($$targs$$,list$){set_type_args(list$,$$targs$$,List);Correspondence({Item$Correspondence:$$targs$$.Element$List,Key$Correspondence:{t:Integer}},list$);Ranged({Subrange$Ranged:{t:List,a:{Element$List:$$targs$$.Element$List}},Element$Ranged:$$targs$$.Element$List,Index$Ranged:{t:Integer}},list$);Collection({Element$Collection:$$targs$$.Element$List},list$);}
List.$crtmm$=function(){return{mod:$CCMM$,tp:{Element$List:{dv:'out',def:{t:Anything}}},sts:[{t:Collection,a:{Element$Collection:'Element$List'}},{t:Correspondence,a:{Item$Correspondence:'Element$List',Key$Correspondence:{t:Integer}}},{t:Ranged,a:{Subrange$Ranged:{t:List,a:{Element$List:'Element$List'}},Element$Ranged:'Element$List',Index$Ranged:{t:Integer}}}],pa:1,an:function(){return[doc$($CCMM$,'$:List'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Sequence),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Empty),$init$openClass$jsint()(lmp$(ex$,'$'),$_Array)].$sa$(mut$([{t:InterfaceDeclaration$meta$declaration},{t:ClassWithConstructorsDeclaration$meta$declaration}]))),tagged(["Collections"].$sa$({t:$_String}))];},d:['$','List']};};
ex$.List=List;function $init$List(){if(List.$$===undefined){initTypeProtoI(List,'ceylon.language::List',$init$Correspondence(),$init$Ranged(),$init$Collection());
(function(list$){atr$(list$,'first',function(){var list$=this;return list$.getFromFirst(0)},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$List']},$cont:List,pa:11,an:function(){return[doc$($CCMM$,'$:List:$at:first')];},d:['$','List','$at','first']};});atr$(list$,'last',function(){var list$=this;return list$.getFromLast(0)},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$List']},$cont:List,pa:11,an:function(){return[doc$($CCMM$,'$:List:$at:last')];},d:['$','List','$at','last']};});list$.$_get=function($l4){var list$=this;return list$.getFromFirst($l4);};list$.$_get.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$List']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:List,pa:3,an:function(){return[doc$($CCMM$,'$:List:$m:get')];},d:['$','List','$m','get']};};list$.getFromFirst={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$List']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:List,pa:7,an:function(){return[doc$($CCMM$,'$:List:$m:getFromFirst'),see("getFromLast")];},d:['$','List','$m','getFromFirst']};}};list$.getFromLast=function($l5){var list$=this;return list$.getFromFirst(list$.size.minus(1).minus($l5));};list$.getFromLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$List']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:getFromLast')];},d:['$','List','$m','getFromLast']};};list$.$l6=function($l7){var list$=this;var $l8;if(nn$(($l8=list$.getFromFirst($l7)))){return $l8;}
else{var $l9;asrt$((is$(($l9=null),list$.$$targs$$.Element$List)),"Assertion failed: \'is Element null\' at List.ceylon (97:19-97:35)",'97:12-97:36','List.ceylon');
return null;}
};list$.$l6.$crtmm$=function(){return{mod:$CCMM$,$t:'Element$List',ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:List,d:['$','List','$m','getElement$v2oaho']};};list$.$prop$getLastIndex={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:List,pa:5,an:function(){return[doc$($CCMM$,'$:List:$at:lastIndex'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.$prop$getSize)].$sa$({t:ValueDeclaration$meta$declaration}))];},d:['$','List','$at','lastIndex']};}};atr$(list$,'size',function(){var list$=this;return (1).plus(($lb=list$.lastIndex,nn$($lb)?$lb:(-1)))},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:List,pa:11,an:function(){return[doc$($CCMM$,'$:List:$at:size'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.$prop$getLastIndex)].$sa$({t:ValueDeclaration$meta$declaration}))];},d:['$','List','$at','size']};});list$.defines=function($lc){var list$=this;return ($ld=$lc,$ld.compare((0))!==smaller()&&$ld.compare(list$.size)===smaller());};list$.defines.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:List,pa:11,an:function(){return[doc$($CCMM$,'$:List:$m:defines')];},d:['$','List','$m','defines']};};list$.contains=function($le){var list$=this;var $lg;for(var $lf=measure((0),list$.size,{Element$measure:{t:Integer}}).iterator();($lg=$lf.next())!==finished();){var $lh;if(nn$(($lh=list$.getFromFirst($lg)))&&$lh.equals($le)){return true;}
}
if(finished()===$lg){return false;}
};list$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:$_Object}}],$cont:List,pa:11,an:function(){return[doc$($CCMM$,'$:List:$m:contains')];},d:['$','List','$m','contains']};};atr$(list$,'rest',function(){var list$=this;return list$.Rest$List(1)},undefined,function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},$cont:List,pa:11,an:function(){return[doc$($CCMM$,'$:List:$at:rest')];},d:['$','List','$at','rest']};});atr$(list$,'keys',function(){var list$=this;return list$.Indexes$List()},undefined,function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:Integer}}},$cont:List,pa:11,an:function(){return[doc$($CCMM$,'$:List:$at:keys'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.indexes)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$at','keys']};});atr$(list$,'reversed',function(){var list$=this;return list$.Reversed$List()},undefined,function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$at:reversed')];},d:['$','List','$at','reversed']};});list$.clone=function(){var list$=this;return list$.sequence();};list$.clone.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[],$cont:List,pa:11,an:function(){return[doc$($CCMM$,'$:List:$m:clone')];},d:['$','List','$m','clone']};};list$.iterator=function(){var list$=this;if((list$.size>0)){return function(){function $lk($$targs$$){var $lk$=new $lk.$$;$lk$.outer$=list$;$lk$.$$targs$$=$$targs$$;Iterator({Element$Iterator:list$.$$targs$$.Element$List},$lk$);$lk$.$ll_=(0);$lk$.$prop$get$ll={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:list$.iterator,pa:1024,d:['$','List','$m','iterator','$at','index$dvr23n']};}};$lk$.$prop$get$ll.get=function(){return $ll};$lk$.$lm_=list$.size;$lk$.$prop$get$lm={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:list$.iterator,d:['$','List','$m','iterator','$at','size$nv92nu']};}};$lk$.$prop$get$lm.get=function(){return $lm};return $lk$;};$lk.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:list$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$List'}}],d:['$','List','$m','iterator']};};function $init$$lk(){if($lk.$$===undefined){initTypeProto($lk,'ceylon.language::List.anonymous#0',Basic,$init$Iterator());
(function($lk$){atr$($lk$,'$ll',function(){return this.$ll_;},function($ln){return this.$ll_=$ln;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:list$.iterator,pa:1024,d:['$','List','$m','iterator','$at','index$dvr23n']};});atr$($lk$,'$lm',function(){return this.$lm_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:list$.iterator,d:['$','List','$m','iterator','$at','size$nv92nu']};});$lk$.next=function(){var $lk$=this;return ($lo=(($lk$.$ll>=$lk$.$lm)?finished():null),nn$($lo)?$lo:list$.$l6(($lp=$lk$.$ll,$lk$.$ll=$lp.successor,$lp)));};atr$($lk$,'string',function(){var $lk$=this;return list$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:list$.iterator,pa:3,d:['$','List','$m','iterator','$at','string']};});})($lk.$$.prototype);}
return $lk;}
list$.$init$$lk=$init$$lk;$init$$lk();return $lk();}();var $lo,$lp;}
else{return emptyIterator();}
};list$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$List'}},ps:[],$cont:List,pa:11,d:['$','List','$m','iterator']};};list$.equals=function($lr){var list$=this;var $ls;if(is$(($ls=$lr),{t:$_String})){return false;}
function $lt(){return $lr;}
var $lu;if(is$(($lu=$lt()),{t:List,a:{Element$List:{t:Anything}}})){if((($lu.size).valueOf()==(list$.size).valueOf())){var $lw;for(var $lv=measure((0),list$.size,{Element$measure:{t:Integer}}).iterator();($lw=$lv.next())!==finished();){var $lx=list$.getFromFirst($lw);var $ly=$lu.getFromFirst($lw);var $lz;if(nn$(($lz=$lx))){var $m0;if(nn$(($m0=$ly))){if((!$lz.equals($m0))){return false;}
}
else{return false;}
}
else{var $m1;if(nn$(($m1=$ly))){return false;}
}
}
if(finished()===$lw){return true;}
}
else{return false;}
}
else{return false;}
};list$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:List,pa:11,an:function(){return[doc$($CCMM$,'$:List:$m:equals')];},d:['$','List','$m','equals']};};atr$(list$,'hash',function(){var list$=this;var $m2=(1);var $m4;for(var $m3=list$.iterator();($m4=$m3.next())!==finished();){($m2=$m2.times(31));var $m5;if(nn$(($m5=$m4))){($m2=$m2.plus($m5.hash));}
}return $m2;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:List,pa:11,d:['$','List','$at','hash']};});list$.shorterThan=function($m6){var list$=this;return (list$.size<$m6);};list$.shorterThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:List,pa:11,d:['$','List','$m','shorterThan']};};list$.longerThan=function($m7){var list$=this;return (list$.size>$m7);};list$.longerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:List,pa:11,d:['$','List','$m','longerThan']};};list$.repeat=function($m8){var list$=this;return list$.Repeat$List($m8);};list$.repeat.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'times',mt:'prm',$t:{t:Integer}}],$cont:List,pa:11,an:function(){return[doc$($CCMM$,'$:List:$m:repeat')];},d:['$','List','$m','repeat']};};list$.find=function($m9){var list$=this;var $ma=(0);while(($ma<list$.size)){var $mb;if(nn$(($mb=list$.getFromFirst(($mc=$ma,$ma=$mc.successor,$mc))))){if($m9($mb)){return $mb;}
}
var $mc;}
return null;};list$.find.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$List']},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$List',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'elem',mt:'prm',$t:{t:'i',l:['Element$List',{t:$_Object}]}}]}],$cont:List,pa:11,d:['$','List','$m','find']};};list$.findLast=function($md){var list$=this;var $me=list$.size.minus(1);while(($me>=0)){var $mf;if(nn$(($mf=list$.getFromFirst(($mg=$me,$me=$mg.predecessor,$mg))))&&$md($mf)){return $mf;}
var $mg;}
return null;};list$.findLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$List']},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$List',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'elem',mt:'prm',$t:{t:'i',l:['Element$List',{t:$_Object}]}}]}],$cont:List,pa:11,d:['$','List','$m','findLast']};};list$.sublistFrom=function($mh){var list$=this;return ($mi=(($mh<=0)?list$:null),nn$($mi)?$mi:list$.Rest$List($mh));};list$.sublistFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:sublistFrom'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.skip)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$m','sublistFrom']};};list$.sublistTo=function($mj){var list$=this;return ($mk=(($mj<0)?empty():null),nn$($mk)?$mk:list$.Sublist$List($mj));};list$.sublistTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:sublistTo'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.take),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.initial)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$m','sublistTo']};};list$.sublist=function($ml,$mm){var list$=this;return list$.sublistTo($mm).sublistFrom($ml);};list$.sublist.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:sublist')];},d:['$','List','$m','sublist']};};list$.patch$defs$from=function($mn,$mo,$mp,$rfn1sa$){var list$=this;return list$.size;};list$.patch$defs$length=function($mn,$mo,$mp,$rfn1sa$){return 0;};list$.patch=function($mn,$mo,$mp,$rfn1sa$){var list$=this;if($mo===undefined){$mo=list$.size;}
if($mp===undefined){$mp=(0);}
return ($mq=((($mp>=0)&&($mr=$mo,$mr.compare((0))!==smaller()&&$mr.compare(list$.size)!==larger()))?list$.Patch$List($mn,$mo,$mp,{Other$Patch:$rfn1sa$.Other$patch}):null),nn$($mq)?$mq:list$);};list$.patch.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:'u',l:['Element$List','Other$patch']}}},ps:[{nm:'list',mt:'prm',$t:{t:List,a:{Element$List:'Other$patch'}}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:List,tp:{Other$patch:{}},pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:patch')];},d:['$','List','$m','patch']};};list$.startsWith=function($ms){var list$=this;if(($ms.size>list$.size)){return false;}
return everyPair($JsCallable((function($mt,$mu){return function(){var $mv,$mw;if(nn$(($mv=$mt))&&nn$(($mw=$mu)))return $mv.equals($mw);else return ((nn$($mt)).valueOf()==(nn$($mu)).valueOf())}();}),[{nm:'first',mt:'prm',$t:list$.Element$List},{nm:'second',mt:'prm',$t:{t:Anything}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([{t:Anything}]),Element$Tuple:{t:Anything},First$Tuple:list$.$$targs$$.Element$List}}}),list$,$ms,{First$everyPair:list$.$$targs$$.Element$List,Second$everyPair:{t:Anything}});};list$.startsWith.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:{t:Anything}}}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:startsWith'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.endsWith)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$m','startsWith']};};list$.endsWith=function($mx){var list$=this;if(($mx.size>list$.size)){return false;}
return everyPair($JsCallable((function($my,$mz){return function(){var $n0,$n1;if(nn$(($n0=$my))&&nn$(($n1=$mz)))return $n0.equals($n1);else return ((nn$($my)).valueOf()==(nn$($mz)).valueOf())}();}),[{nm:'first',mt:'prm',$t:list$.Element$List},{nm:'second',mt:'prm',$t:{t:Anything}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([{t:Anything}]),Element$Tuple:{t:Anything},First$Tuple:list$.$$targs$$.Element$List}}}),list$.skip(list$.size.minus($mx.size)),$mx,{First$everyPair:list$.$$targs$$.Element$List,Second$everyPair:{t:Anything}});};list$.endsWith.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:{t:Anything}}}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:endsWith'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.startsWith)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$m','endsWith']};};list$.indexesWhere=function($n2){var list$=this;return for$(function(){var $n5;var $n3=measure((0),list$.size,{Element$measure:{t:Integer}}).iterator(),$n4=finished();var n$n4=function(){while(($n4=$n3.next())!==finished()){if(nn$(($n5=list$.getFromFirst($n4)))&&$n2($n5)){return $n4;}
}
return finished();}
return function(){if(n$n4()!==finished()){var $n6=$n4,$n7=$n6;return $n7;}
return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}});};list$.indexesWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}}},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$List',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$List',{t:$_Object}]}}]}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:indexesWhere'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.locations)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$m','indexesWhere']};};list$.firstIndexWhere=function($n8){var list$=this;var $n9=(0);while(($n9<list$.size)){var $na;if(nn$(($na=list$.getFromFirst($n9)))&&$n8($na)){return $n9;}
($nb=$n9,$n9=$nb.successor,$nb);var $nb;}
return null;};list$.firstIndexWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$List',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$List',{t:$_Object}]}}]}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:firstIndexWhere'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.locate)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$m','firstIndexWhere']};};list$.lastIndexWhere=function($nc){var list$=this;var $nd=list$.size;while(($nd>0)){($ne=$nd,$nd=$ne.predecessor,$ne);var $ne;var $nf;if(nn$(($nf=list$.getFromFirst($nd)))&&$nc($nf)){return $nd;}
}
return null;};list$.lastIndexWhere.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$List',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$List',{t:$_Object}]}}]}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:lastIndexWhere'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.locateLast)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$m','lastIndexWhere']};};list$.$_trim=function($ng){var list$=this;if((list$.size>0)){var $nh=list$.size.minus(1);var $ni=(-1);var $nj=(-1);var $nl;for(var $nk=span((0),$nh,{Element$span:{t:Integer}}).iterator();($nl=$nk.next())!==finished();){var $nm;if(nn$(($nm=list$.getFromFirst($nl)))&&!$ng($nm)){$ni=$nl;break;}
}
if(finished()===$nl){return empty();}
var $no;for(var $nn=span($nh,(0),{Element$span:{t:Integer}}).iterator();($no=$nn.next())!==finished();){var $np;if(nn$(($np=list$.getFromFirst($no)))&&!$ng($np)){$nj=$no;break;}
}
if(finished()===$no){return empty();}
return list$.span($ni,$nj);}
else{return empty();}
};list$.$_trim.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$List',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'elem',mt:'prm',$t:{t:'i',l:['Element$List',{t:$_Object}]}}]}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:trim')];},d:['$','List','$m','trim']};};list$.trimLeading=function($nq){var list$=this;if((list$.size>0)){var $nr=list$.size.minus(1);var $nt=(0),$ns=$nr,$nu=$nt.compare($ns),$nv=$nu===smaller()?'successor':'predecessor';for(var $nw=eorl$($nu);$nw($ns,$nt);$nt=$nt[$nv]){var $nx;if(nn$(($nx=list$.getFromFirst($nt)))&&!$nq($nx)){return list$.span($nt,$nr);}
}}
return empty();};list$.trimLeading.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$List',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'elem',mt:'prm',$t:{t:'i',l:['Element$List',{t:$_Object}]}}]}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:trimLeading')];},d:['$','List','$m','trimLeading']};};list$.trimTrailing=function($ny){var list$=this;if((list$.size>0)){var $nz=list$.size.minus(1);var $o1=$nz,$o0=(0),$o2=$o1.compare($o0),$o3=$o2===smaller()?'successor':'predecessor';for(var $o4=eorl$($o2);$o4($o0,$o1);$o1=$o1[$o3]){var $o5;if(nn$(($o5=list$.getFromFirst($o1)))&&!$ny($o5)){return list$.span(0,$o1);}
}}
return empty();};list$.trimTrailing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$List',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'elem',mt:'prm',$t:{t:'i',l:['Element$List',{t:$_Object}]}}]}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:trimTrailing')];},d:['$','List','$m','trimTrailing']};};list$.$_slice=function($o6){var list$=this;return tpl$([list$.spanTo($o6.minus(1)),list$.spanFrom($o6)]);};list$.$_slice.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{t:List,a:{Element$List:'Element$List'}},{t:List,a:{Element$List:'Element$List'}}]},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:slice')];},d:['$','List','$m','slice']};};list$.initial=function($o7){var list$=this;return list$.spanTo($o7.minus(1));};list$.initial.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:initial'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.terminal),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.sublistTo),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.take)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$m','initial']};};list$.terminal=function($o8){var list$=this;return list$.spanFrom(list$.size.minus($o8));};list$.terminal.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:List,pa:9,an:function(){return[doc$($CCMM$,'$:List:$m:terminal'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$List().$$.prototype.initial)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','List','$m','terminal']};};list$.span=function($o9,$oa){var list$=this;if((list$.size>0)){var $ob=list$.size.minus(1);if(($o9<=$oa)){return ((($oa>=0)&&($o9<=$ob))?ArraySequence($_Array(list$.sublist($o9,$oa),{Element$Array:list$.$$targs$$.Element$List}),{Element$ArraySequence:list$.$$targs$$.Element$List}):empty());}
else{return ((($o9>=0)&&($oa<=$ob))?ArraySequence($_Array(list$.sublist($oa,$o9).reversed,{Element$Array:list$.$$targs$$.Element$List}),{Element$ArraySequence:list$.$$targs$$.Element$List}):empty());}
}
else{return empty();}
};list$.span.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:List,pa:11,d:['$','List','$m','span']};};list$.spanFrom=function($oc){var list$=this;if(($oc<=0)){return list$.clone();}
else{if(($oc<list$.size)){return ArraySequence($_Array(list$.sublistFrom($oc),{Element$Array:list$.$$targs$$.Element$List}),{Element$ArraySequence:list$.$$targs$$.Element$List});}
else{return empty();}
}
};list$.spanFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:List,pa:11,d:['$','List','$m','spanFrom']};};list$.spanTo=function($od){var list$=this;if(($od>=list$.size.minus(1))){return list$.clone();}
else{if(($od>=0)){return ArraySequence($_Array(list$.sublistTo($od),{Element$Array:list$.$$targs$$.Element$List}),{Element$ArraySequence:list$.$$targs$$.Element$List});}
else{return empty();}
}
};list$.spanTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:List,pa:11,d:['$','List','$m','spanTo']};};list$.measure=function($oe,$of){var list$=this;return (($of>0)?list$.span($oe,$oe.plus($of).minus(1)):empty());};list$.measure.$crtmm$=function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:List,pa:11,d:['$','List','$m','measure']};};list$.collect=function($og,$u7161g$){var list$=this;if(list$.empty){return empty();}
else{var $oh=(function(){function $oi($$targs$$){var $oi$=new $oi.$$;$oi$.outer$=list$;$oi$.$$targs$$=$$targs$$;$_Object($oi$);List.call(list$,{Element$List:$u7161g$.Result$collect/*ORALE!Result inv pero Element var*/},$oi$);$oi$.$ok_=list$.size;return $oi$;};$oi.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},$cont:$oi$.collect,sts:[{t:List,a:{Element$List:'Result$collect'}}],d:['$','List','$m','collect','$o','list$98kifc']};};function $init$$oi(){if($oi.$$===undefined){initTypeProto($oi,'ceylon.language::List.list',$init$$_Object(),$init$List());
(function($oi$){atr$($oi$,'lastIndex',function(){var $oi$=this;return list$.lastIndex;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$oi,pa:3,d:['$','List','$m','collect','$o','list$98kifc','$at','lastIndex']};});atr$($oi$,'size',function(){return this.$ok_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$oi,pa:3,d:['$','List','$m','collect','$o','list$98kifc','$at','size']};});$oi$.getFromFirst=function($ol){var $oi$=this;return (($om=$ol,$om.compare((0))!==smaller()&&$om.compare($oi$.size)===smaller())?$og(list$.$l6($ol)):null);};})($oi.$$.prototype);}
return $oi;}
list$.$init$$oi=$init$$oi;$init$$oi();var $on;function $oj(){if($on===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'list\' before it was set"),'640:12-649:12','List.ceylon');if($on===undefined){$on=INIT$;$on=$init$$oi()({Element$List:$u7161g$.Result$collect/*ORALE!Result inv pero Element var*/});$on.$crtmm$=$oj.$crtmm$;}
return $on;}
$oj.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$$oi()},$cont:$oi$.collect,d:['$','List','$m','collect','$o','list$98kifd']};};$prop$get$oi=$oj;$oj();return ArraySequence($_Array($oj(),{Element$Array:$u7161g$.Result$collect}),{Element$ArraySequence:$u7161g$.Result$collect/*ORALE!Result inv pero Element var*/});}());if($oh!==undefined){return $oh;}}
};list$.collect.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Result$collect'}},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$collect',Arguments$Callable:{t:'T',l:['Element$List']}}},$rt:'Result$collect',ps:[{nm:'element',mt:'prm',$t:'Element$List'}]}],$cont:List,tp:{Result$collect:{}},pa:11,an:function(){return[doc$($CCMM$,'$:List:$m:collect')];},d:['$','List','$m','collect']};};function Indexes$List($oo$){$init$Indexes$List();
if($oo$===undefined)$oo$=new this.Indexes$List.$$;
$oo$.outer$=this;$oo$.$$targs$$={Element$List:{t:Integer}};$_Object($oo$);List({Element$List:{t:Integer}},$oo$);return $oo$;}
Indexes$List.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],$cont:List,sts:[{t:List,a:{Element$List:{t:Integer}}}],d:['$','List','$c','Indexes$1g59zu']};};function $init$Indexes$List(){if(Indexes$List.$$===undefined){initTypeProto(Indexes$List,'ceylon.language::List.Indexes',$init$$_Object(),$init$List());
List.Indexes$List=Indexes$List;
(function($oo$){atr$($oo$,'lastIndex',function(){var $oo$=this;return $oo$.outer$.lastIndex;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$oo$.Indexes$List,pa:3,d:['$','List','$c','Indexes$1g59zu','$at','lastIndex']};});$oo$.getFromFirst=function($op){var $oo$=this;return ($oo$.defines($op)?$op:null);};$oo$.clone=function(){var $oo$=this;return measure((0),$oo$.size,{Element$measure:{t:Integer}});};$oo$.measure=function($oq,$or){var $oo$=this;return $oo$.clone().measure($oq,$or);};$oo$.span=function($os,$ot){var $oo$=this;return $oo$.clone().span($os,$ot);};$oo$.spanFrom=function($ou){var $oo$=this;return $oo$.clone().spanFrom($ou);};$oo$.spanTo=function($ov){var $oo$=this;return $oo$.clone().spanTo($ov);};atr$($oo$,'string',function(){var $oo$=this;return function(){var $ow;if(nn$(($ow=$oo$.lastIndex)))return "{ 0, ... , ".plus($ow.string).plus(" }");else return "{}"}();},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$oo$.Indexes$List,pa:3,d:['$','List','$c','Indexes$1g59zu','$at','string']};});$oo$.iterator=function(){var $oo$=this;return function(){function $ox($$targs$$){var $ox$=new $ox.$$;$ox$.outer$=$oo$;$ox$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:Integer}},$ox$);$ox$.$oy_=(0);$ox$.$prop$get$oy={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$oo$.Indexes$List,pa:1024,d:['$','List','$c','Indexes$1g59zu','$at','i$unshle']};}};$ox$.$prop$get$oy.get=function(){return $oy};return $ox$;};$ox.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$oo$.Indexes$List,sts:[{t:Iterator,a:{Element$Iterator:{t:Integer}}}],d:['$','List','$c','Indexes$1g59zu']};};function $init$$ox(){if($ox.$$===undefined){initTypeProto($ox,'ceylon.language::List.Indexes.anonymous#3',Basic,$init$Iterator());
(function($ox$){atr$($ox$,'$oy',function(){return this.$oy_;},function($oz){return this.$oy_=$oz;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$oo$.Indexes$List,pa:1024,d:['$','List','$c','Indexes$1g59zu','$at','i$unshle']};});$ox$.next=function(){var $ox$=this;return ($p0=(($ox$.$oy<$oo$.size)?($p1=$ox$.$oy,$ox$.$oy=$p1.successor,$p1):null),nn$($p0)?$p0:finished());};atr$($ox$,'string',function(){var $ox$=this;return $oo$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$oo$.Indexes$List,pa:3,d:['$','List','$c','Indexes$1g59zu','$at','string']};});})($ox.$$.prototype);}
return $ox;}
$oo$.$init$$ox=$init$$ox;$init$$ox();return $ox();}();};$oo$.Indexes$List=Indexes$List;})(Indexes$List.$$.prototype);}
return Indexes$List;}
list$.$init$Indexes$List=$init$Indexes$List;list$.Indexes$List=Indexes$List;function Rest$List($p3,$p4$){$init$Rest$List();
if($p4$===undefined)$p4$=new this.Rest$List.$$;
$p4$.outer$=this;$p4$.$$targs$$={Element$List:$p4$.outer$.$$targs$$.Element$List};$p4$.$p3_=$p3;$_Object($p4$);List({Element$List:$p4$.outer$.$$targs$$.Element$List},$p4$);asrt$((($p4$.$p3>=0)),"Assertion failed: \'from>=0\' at List.ceylon (694:15-694:23)",'694:8-694:24','List.ceylon');
$p4$.sublistFrom=function($p5){var list$=this;return (($p5>0)?$p4$.outer$.Rest$List($p5.plus($p4$.$p3)):$p4$);};$p4$.getFromFirst=function($p6){var list$=this;return (($p6<0)?null:$p4$.outer$.getFromFirst($p6.plus($p4$.$p3)));};atr$($p4$,'lastIndex',function(){return function(){var $p7=$p4$.outer$.size.minus($p4$.$p3);return (($p7>0)?$p7.minus(1):null);}();},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$p4$.Rest$List,pa:3,d:['$','List','$c','Rest$fyp886','$at','lastIndex']};});$p4$.measure=function($p8,$p9){var list$=this;return $p4$.outer$.measure($p8.plus($p4$.$p3),$p9);};$p4$.span=function($pa,$pb){var list$=this;return $p4$.outer$.span($pa.plus($p4$.$p3),$pb.plus($p4$.$p3));};$p4$.spanFrom=function($pc){var list$=this;return $p4$.outer$.spanFrom($pc.plus($p4$.$p3));};$p4$.spanTo=function($pd){var list$=this;return $p4$.outer$.span($p4$.$p3,$pd.plus($p4$.$p3));};$p4$.clone=function(){var list$=this;return $p4$.outer$.clone().Rest$List($p4$.$p3);};$p4$.iterator=function(){var list$=this;return function(){var $pe=$p4$.outer$;return function(){function $pf($$targs$$){var $pf$=new $pf.$$;$pf$.outer$=$p4$;$pf$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$p4$.outer$.$$targs$$.Element$List},$pf$);$pf$.$pg_=(0);$pf$.$prop$get$pg={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$p4$.Rest$List,pa:1024,d:['$','List','$c','Rest$fyp886','$at','i$bkngyv']};}};$pf$.$prop$get$pg.get=function(){return $pg};return $pf$;};$pf.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$p4$.Rest$List,sts:[{t:Iterator,a:{Element$Iterator:'Element$List'}}],d:['$','List','$c','Rest$fyp886']};};function $init$$pf(){if($pf.$$===undefined){initTypeProto($pf,'ceylon.language::List.Rest.anonymous#4',Basic,$init$Iterator());
(function($pf$){atr$($pf$,'$pg',function(){return this.$pg_;},function($ph){return this.$pg_=$ph;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$p4$.Rest$List,pa:1024,d:['$','List','$c','Rest$fyp886','$at','i$bkngyv']};});$pf$.next=function(){var $pf$=this;return (($pf$.$pg<$p4$.size)?$pe.$l6($p4$.$p3.plus(($pi=$pf$.$pg,$pf$.$pg=$pi.successor,$pi))):finished());};atr$($pf$,'string',function(){var $pf$=this;return $p4$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$p4$.Rest$List,pa:3,d:['$','List','$c','Rest$fyp886','$at','string']};});})($pf.$$.prototype);}
return $pf;}
$p4$.$init$$pf=$init$$pf;$init$$pf();return $pf();}();}();};var $pi;return $p4$;}
Rest$List.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:List,sts:[{t:List,a:{Element$List:'Element$List'}}],d:['$','List','$c','Rest$fyp886']};};function $init$Rest$List(){if(Rest$List.$$===undefined){initTypeProto(Rest$List,'ceylon.language::List.Rest',$init$$_Object(),$init$List());
List.Rest$List=Rest$List;
(function($p4$){atr$($p4$,'$p3',function(){return this.$p3_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$p4$.Rest$List,d:['$','List','$c','Rest$fyp886','$at','from$8r4afz']};});$p4$.sublistFrom=function($p5){var $p4$=this;return (($p5>0)?$p4$.outer$.Rest$List($p5.plus($p4$.$p3)):$p4$);};$p4$.getFromFirst=function($p6){var $p4$=this;return (($p6<0)?null:$p4$.outer$.getFromFirst($p6.plus($p4$.$p3)));};atr$($p4$,'lastIndex',function(){var $p4$=this;return function(){var $p7=$p4$.outer$.size.minus($p4$.$p3);return (($p7>0)?$p7.minus(1):null);}();},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$p4$.Rest$List,pa:3,d:['$','List','$c','Rest$fyp886','$at','lastIndex']};});$p4$.measure=function($p8,$p9){var $p4$=this;return $p4$.outer$.measure($p8.plus($p4$.$p3),$p9);};$p4$.span=function($pa,$pb){var $p4$=this;return $p4$.outer$.span($pa.plus($p4$.$p3),$pb.plus($p4$.$p3));};$p4$.spanFrom=function($pc){var $p4$=this;return $p4$.outer$.spanFrom($pc.plus($p4$.$p3));};$p4$.spanTo=function($pd){var $p4$=this;return $p4$.outer$.span($p4$.$p3,$pd.plus($p4$.$p3));};$p4$.clone=function(){var $p4$=this;return $p4$.outer$.clone().Rest$List($p4$.$p3);};$p4$.iterator=function(){var $p4$=this;return function(){var $pe=$p4$.outer$;return function(){function $pf($$targs$$){var $pf$=new $pf.$$;$pf$.outer$=$p4$;$pf$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$p4$.outer$.$$targs$$.Element$List},$pf$);$pf$.$pg_=(0);$pf$.$prop$get$pg.get=function(){return $pg};return $pf$;};$pf.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$p4$.Rest$List,sts:[{t:Iterator,a:{Element$Iterator:'Element$List'}}],d:['$','List','$c','Rest$fyp886']};};function $init$$pf(){if($pf.$$===undefined){initTypeProto($pf,'ceylon.language::List.Rest.anonymous#4',Basic,$init$Iterator());
(function($pf$){atr$($pf$,'$pg',function(){return this.$pg_;},function($pk){return this.$pg_=$pk;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$p4$.Rest$List,pa:1024,d:['$','List','$c','Rest$fyp886','$at','i$bkngyv']};});$pf$.next=function(){var $pf$=this;return (($pf$.$pg<$p4$.size)?$pe.$l6($p4$.$p3.plus(($pl=$pf$.$pg,$pf$.$pg=$pl.successor,$pl))):finished());};atr$($pf$,'string',function(){var $pf$=this;return $p4$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$p4$.Rest$List,pa:3,d:['$','List','$c','Rest$fyp886','$at','string']};});})($pf.$$.prototype);}
return $pf;}
$p4$.$init$$pf=$init$$pf;$init$$pf();return $pf();}();}();};$p4$.Rest$List=Rest$List;})(Rest$List.$$.prototype);}
return Rest$List;}
list$.$init$Rest$List=$init$Rest$List;list$.Rest$List=Rest$List;function Sublist$List($pn,$po$){$init$Sublist$List();
if($po$===undefined)$po$=new this.Sublist$List.$$;
$po$.outer$=this;$po$.$$targs$$={Element$List:$po$.outer$.$$targs$$.Element$List};$po$.$pn_=$pn;$_Object($po$);List({Element$List:$po$.outer$.$$targs$$.Element$List},$po$);asrt$((($po$.$pn>=0)),"Assertion failed: \'to>=0\' at List.ceylon (740:15-740:21)",'740:8-740:22','List.ceylon');
$po$.sublistTo=function($pp){var list$=this;return (($pp<0)?empty():(($pp<$po$.$pn)?$po$.outer$.Sublist$List($pp):$po$));};$po$.getFromFirst=function($pq){var list$=this;return (($pr=$pq,$pr.compare((0))!==smaller()&&$pr.compare($po$.$pn)!==larger())?$po$.outer$.getFromFirst($pq):null);};atr$($po$,'lastIndex',function(){return function(){var $ps=$po$.outer$.size.minus(1);return (($ps>=0)?($pt=(($ps<$po$.$pn)?$ps:null),nn$($pt)?$pt:$po$.$pn):null);}();},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$po$.Sublist$List,pa:3,d:['$','List','$c','Sublist$elvxw4','$at','lastIndex']};});var $pt;$po$.measure=function($pu,$pv){var list$=this;return ($pw=(($pu.plus($pv).minus(1)>$po$.$pn)?$po$.outer$.measure($pu,$po$.$pn):null),nn$($pw)?$pw:$po$.outer$.measure($pu,$pv));};var $pw;$po$.span=function($px,$py){var list$=this;return ($pz=(($py>$po$.$pn)?$po$.outer$.span($px,$po$.$pn):null),nn$($pz)?$pz:$po$.outer$.span($px,$py));};var $pz;$po$.spanFrom=function($q0){var list$=this;return $po$.outer$.span($q0,$po$.$pn);};$po$.spanTo=function($q1){var list$=this;return ($q2=(($q1>$po$.$pn)?$po$.outer$.spanTo($po$.$pn):null),nn$($q2)?$q2:$po$.outer$.spanTo($q1));};var $q2;$po$.clone=function(){var list$=this;return $po$.outer$.clone().Sublist$List($po$.$pn);};$po$.iterator=function(){var list$=this;return function(){var $q3=$po$.outer$.iterator();return function(){function $q4($$targs$$){var $q4$=new $q4.$$;$q4$.outer$=$po$;$q4$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$po$.outer$.$$targs$$.Element$List},$q4$);$q4$.$q5_=(0);$q4$.$prop$get$q5={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$po$.Sublist$List,pa:1024,d:['$','List','$c','Sublist$elvxw4','$at','i$p2o0ug']};}};$q4$.$prop$get$q5.get=function(){return $q5};return $q4$;};$q4.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$po$.Sublist$List,sts:[{t:Iterator,a:{Element$Iterator:'Element$List'}}],d:['$','List','$c','Sublist$elvxw4']};};function $init$$q4(){if($q4.$$===undefined){initTypeProto($q4,'ceylon.language::List.Sublist.anonymous#5',Basic,$init$Iterator());
(function($q4$){atr$($q4$,'$q5',function(){return this.$q5_;},function($q6){return this.$q5_=$q6;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$po$.Sublist$List,pa:1024,d:['$','List','$c','Sublist$elvxw4','$at','i$p2o0ug']};});$q4$.next=function(){var $q4$=this;return ($q7=((($q8=$q4$.$q5,$q4$.$q5=$q8.successor,$q8)>$po$.$pn)?finished():null),nn$($q7)?$q7:$q3.next());};atr$($q4$,'string',function(){var $q4$=this;return $po$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$po$.Sublist$List,pa:3,d:['$','List','$c','Sublist$elvxw4','$at','string']};});})($q4.$$.prototype);}
return $q4;}
$po$.$init$$q4=$init$$q4;$init$$q4();return $q4();}();}();};var $q7,$q8;return $po$;}
Sublist$List.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:List,sts:[{t:List,a:{Element$List:'Element$List'}}],d:['$','List','$c','Sublist$elvxw4']};};function $init$Sublist$List(){if(Sublist$List.$$===undefined){initTypeProto(Sublist$List,'ceylon.language::List.Sublist',$init$$_Object(),$init$List());
List.Sublist$List=Sublist$List;
(function($po$){atr$($po$,'$pn',function(){return this.$pn_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$po$.Sublist$List,d:['$','List','$c','Sublist$elvxw4','$at','to$1d4wke']};});$po$.sublistTo=function($pp){var $po$=this;return (($pp<0)?empty():(($pp<$po$.$pn)?$po$.outer$.Sublist$List($pp):$po$));};$po$.getFromFirst=function($pq){var $po$=this;return (($qa=$pq,$qa.compare((0))!==smaller()&&$qa.compare($po$.$pn)!==larger())?$po$.outer$.getFromFirst($pq):null);};atr$($po$,'lastIndex',function(){var $po$=this;return function(){var $ps=$po$.outer$.size.minus(1);return (($ps>=0)?($qb=(($ps<$po$.$pn)?$ps:null),nn$($qb)?$qb:$po$.$pn):null);}();},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$po$.Sublist$List,pa:3,d:['$','List','$c','Sublist$elvxw4','$at','lastIndex']};});$po$.measure=function($pu,$pv){var $po$=this;return ($qc=(($pu.plus($pv).minus(1)>$po$.$pn)?$po$.outer$.measure($pu,$po$.$pn):null),nn$($qc)?$qc:$po$.outer$.measure($pu,$pv));};$po$.span=function($px,$py){var $po$=this;return ($qd=(($py>$po$.$pn)?$po$.outer$.span($px,$po$.$pn):null),nn$($qd)?$qd:$po$.outer$.span($px,$py));};$po$.spanFrom=function($q0){var $po$=this;return $po$.outer$.span($q0,$po$.$pn);};$po$.spanTo=function($q1){var $po$=this;return ($qe=(($q1>$po$.$pn)?$po$.outer$.spanTo($po$.$pn):null),nn$($qe)?$qe:$po$.outer$.spanTo($q1));};$po$.clone=function(){var $po$=this;return $po$.outer$.clone().Sublist$List($po$.$pn);};$po$.iterator=function(){var $po$=this;return function(){var $q3=$po$.outer$.iterator();return function(){function $q4($$targs$$){var $q4$=new $q4.$$;$q4$.outer$=$po$;$q4$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$po$.outer$.$$targs$$.Element$List},$q4$);$q4$.$q5_=(0);$q4$.$prop$get$q5.get=function(){return $q5};return $q4$;};$q4.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$po$.Sublist$List,sts:[{t:Iterator,a:{Element$Iterator:'Element$List'}}],d:['$','List','$c','Sublist$elvxw4']};};function $init$$q4(){if($q4.$$===undefined){initTypeProto($q4,'ceylon.language::List.Sublist.anonymous#5',Basic,$init$Iterator());
(function($q4$){atr$($q4$,'$q5',function(){return this.$q5_;},function($qf){return this.$q5_=$qf;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$po$.Sublist$List,pa:1024,d:['$','List','$c','Sublist$elvxw4','$at','i$p2o0ug']};});$q4$.next=function(){var $q4$=this;return ($qg=((($qh=$q4$.$q5,$q4$.$q5=$qh.successor,$qh)>$po$.$pn)?finished():null),nn$($qg)?$qg:$q3.next());};atr$($q4$,'string',function(){var $q4$=this;return $po$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$po$.Sublist$List,pa:3,d:['$','List','$c','Sublist$elvxw4','$at','string']};});})($q4.$$.prototype);}
return $q4;}
$po$.$init$$q4=$init$$q4;$init$$q4();return $q4();}();}();};$po$.Sublist$List=Sublist$List;})(Sublist$List.$$.prototype);}
return Sublist$List;}
list$.$init$Sublist$List=$init$Sublist$List;list$.Sublist$List=Sublist$List;function Repeat$List($qj,$qk$){$init$Repeat$List();
if($qk$===undefined)$qk$=new this.Repeat$List.$$;
$qk$.outer$=this;$qk$.$$targs$$={Element$List:$qk$.outer$.$$targs$$.Element$List};$qk$.$qj_=$qj;$_Object($qk$);List({Element$List:$qk$.outer$.$$targs$$.Element$List},$qk$);return $qk$;}
Repeat$List.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'times',mt:'prm',$t:{t:Integer}}],$cont:List,sts:[{t:List,a:{Element$List:'Element$List'}}],d:['$','List','$c','Repeat$59m2x5']};};function $init$Repeat$List(){if(Repeat$List.$$===undefined){initTypeProto(Repeat$List,'ceylon.language::List.Repeat',$init$$_Object(),$init$List());
List.Repeat$List=Repeat$List;
(function($qk$){atr$($qk$,'$qj',function(){return this.$qj_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$qk$.Repeat$List,d:['$','List','$c','Repeat$59m2x5','$at','times$219c9m']};});atr$($qk$,'size',function(){var $qk$=this;return $qk$.outer$.size.times($qk$.$qj);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$qk$.Repeat$List,pa:3,d:['$','List','$c','Repeat$59m2x5','$at','size']};});atr$($qk$,'lastIndex',function(){var $qk$=this;return function(){var $ql=$qk$.size;return (($ql>0)?$ql.minus(1):null);}();},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$qk$.Repeat$List,pa:3,d:['$','List','$c','Repeat$59m2x5','$at','lastIndex']};});$qk$.getFromFirst=function($qm){var $qk$=this;return function(){var $qn=$qk$.outer$.size;return (($qm<$qn.times($qk$.$qj))?$qk$.outer$.getFromFirst($qm.remainder($qn)):null);}();};$qk$.clone=function(){var $qk$=this;return $qk$.outer$.clone().Repeat$List($qk$.$qj);};$qk$.iterator=function(){var $qk$=this;return CycledIterator($qk$.outer$,$qk$.$qj,{Element$CycledIterator:$qk$.outer$.$$targs$$.Element$List});};atr$($qk$,'string',function(){var $qk$=this;return "(".plus($qk$.outer$.string).plus(").repeat(").plus($qk$.$qj.string).plus(")");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$qk$.Repeat$List,pa:3,d:['$','List','$c','Repeat$59m2x5','$at','string']};});$qk$.Repeat$List=Repeat$List;})(Repeat$List.$$.prototype);}
return Repeat$List;}
list$.$init$Repeat$List=$init$Repeat$List;list$.Repeat$List=Repeat$List;function Patch$List($qo,$qp,$qq,$$targs$$,$qr$){$init$Patch$List();
if($qr$===undefined)$qr$=new this.Patch$List.$$;
$qr$.outer$=this;set_type_args($qr$,$$targs$$);
$qr$.$qo_=$qo;$qr$.$qp_=$qp;$qr$.$qq_=$qq;$_Object($qr$);List({Element$List:mut$([$qr$.outer$.$$targs$$.Element$List,$qr$.$$targs$$.Other$Patch])},$qr$);asrt$((($qr$.$qq>=0)),"Assertion failed: \'length>=0\' at List.ceylon (818:15-818:25)",'818:8-818:26','List.ceylon');
asrt$((($qs=$qr$.$qp,$qs.compare((0))!==smaller()&&$qs.compare($qr$.outer$.size)!==larger())),"Assertion failed: \'0<=from<=outer.size\' at List.ceylon (819:15-819:35)",'819:8-819:36','List.ceylon');
atr$($qr$,'size',function(){return $qr$.outer$.size.plus($qr$.$qo.size).minus($qr$.$qq);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$qr$.Patch$List,pa:3,d:['$','List','$c','Patch$xht1ke','$at','size']};});atr$($qr$,'lastIndex',function(){return function(){var $qt=$qr$.size;return (($qt>0)?$qt.minus(1):null);}();},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$qr$.Patch$List,pa:3,d:['$','List','$c','Patch$xht1ke','$at','lastIndex']};});$qr$.getFromFirst=function($qu){var list$=this;return (($qu<$qr$.$qp)?$qr$.outer$.getFromFirst($qu):(($qu.minus($qr$.$qp)<$qr$.$qo.size)?$qr$.$qo.getFromFirst($qu.minus($qr$.$qp)):$qr$.outer$.getFromFirst($qu.minus($qr$.$qo.size).plus($qr$.$qq))));};$qr$.clone=function(){var list$=this;return $qr$.outer$.clone().Patch$List($qr$.$qo.clone(),$qr$.$qp,$qr$.$qq,{Other$Patch:$qr$.$$targs$$.Other$Patch});};$qr$.iterator=function(){var list$=this;return function(){var $qv=$qr$.outer$.iterator(),$qw=$qr$.$qo.iterator();return function(){function $qx($$targs$$){var $qx$=new $qx.$$;$qx$.outer$=$qr$;$qx$.$$targs$$=$$targs$$;Iterator({Element$Iterator:mut$([$qr$.outer$.$$targs$$.Element$List,$qr$.$$targs$$.Other$Patch])},$qx$);$qx$.$qy_=(-1);$qx$.$prop$get$qy={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$qr$.Patch$List,pa:1024,d:['$','List','$c','Patch$xht1ke','$at','index$ada7l0']};}};$qx$.$prop$get$qy.get=function(){return $qy};return $qx$;};$qx.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$qr$.Patch$List,sts:[{t:Iterator,a:{Element$Iterator:{t:'u',l:['Element$List','Other$Patch']}}}],d:['$','List','$c','Patch$xht1ke']};};function $init$$qx(){if($qx.$$===undefined){initTypeProto($qx,'ceylon.language::List.Patch.anonymous#6',Basic,$init$Iterator());
(function($qx$){atr$($qx$,'$qy',function(){return this.$qy_;},function($qz){return this.$qy_=$qz;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$qr$.Patch$List,pa:1024,d:['$','List','$c','Patch$xht1ke','$at','index$ada7l0']};});$qx$.next=function(){var $qx$=this;if(((($qx$.$qy=$qx$.$qy.successor)).valueOf()==($qr$.$qp).valueOf())){var $r1=(0),$r2=$qr$.$qq;for(var $r3=0;$r3<$r2;$r3++,($r1=$r1.successor)){$qv.next();}}
return (($r4=$qx$.$qy.minus($qr$.$qp),$r4.compare((0))!==smaller()&&$r4.compare($qr$.$qo.size)===smaller())?$qw.next():$qv.next());};$qx$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$List','Other$Patch',{t:Finished}]},ps:[],$cont:$qr$.Patch$List,pa:3,d:['$','List','$c','Patch$xht1ke','$m','next']};};atr$($qx$,'string',function(){var $qx$=this;return $qr$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$qr$.Patch$List,pa:3,d:['$','List','$c','Patch$xht1ke','$at','string']};});})($qx.$$.prototype);}
return $qx;}
$qr$.$init$$qx=$init$$qx;$init$$qx();return $qx();}();}();};return $qr$;}
Patch$List.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'list',mt:'prm',$t:{t:List,a:{Element$List:'Other$Patch'}}},{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:List,tp:{Other$Patch:{}},sts:[{t:List,a:{Element$List:{t:'u',l:['Element$List','Other$Patch']}}}],d:['$','List','$c','Patch$xht1ke']};};function $init$Patch$List(){if(Patch$List.$$===undefined){initTypeProto(Patch$List,'ceylon.language::List.Patch',$init$$_Object(),$init$List());
List.Patch$List=Patch$List;
(function($qr$){atr$($qr$,'$qo',function(){return this.$qo_;},undefined,function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Other$Patch'}},$cont:$qr$.Patch$List,d:['$','List','$c','Patch$xht1ke','$at','list$cbomfb']};});atr$($qr$,'$qp',function(){return this.$qp_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$qr$.Patch$List,d:['$','List','$c','Patch$xht1ke','$at','from$8gxpyr']};});atr$($qr$,'$qq',function(){return this.$qq_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$qr$.Patch$List,d:['$','List','$c','Patch$xht1ke','$at','length$x539u7']};});atr$($qr$,'size',function(){var $qr$=this;return $qr$.outer$.size.plus($qr$.$qo.size).minus($qr$.$qq);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$qr$.Patch$List,pa:3,d:['$','List','$c','Patch$xht1ke','$at','size']};});atr$($qr$,'lastIndex',function(){var $qr$=this;return function(){var $qt=$qr$.size;return (($qt>0)?$qt.minus(1):null);}();},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$qr$.Patch$List,pa:3,d:['$','List','$c','Patch$xht1ke','$at','lastIndex']};});$qr$.getFromFirst=function($qu){var $qr$=this;return (($qu<$qr$.$qp)?$qr$.outer$.getFromFirst($qu):(($qu.minus($qr$.$qp)<$qr$.$qo.size)?$qr$.$qo.getFromFirst($qu.minus($qr$.$qp)):$qr$.outer$.getFromFirst($qu.minus($qr$.$qo.size).plus($qr$.$qq))));};$qr$.clone=function(){var $qr$=this;return $qr$.outer$.clone().Patch$List($qr$.$qo.clone(),$qr$.$qp,$qr$.$qq,{Other$Patch:$qr$.$$targs$$.Other$Patch});};$qr$.iterator=function(){var $qr$=this;return function(){var $qv=$qr$.outer$.iterator(),$qw=$qr$.$qo.iterator();return function(){function $qx($$targs$$){var $qx$=new $qx.$$;$qx$.outer$=$qr$;$qx$.$$targs$$=$$targs$$;Iterator({Element$Iterator:mut$([$qr$.outer$.$$targs$$.Element$List,$qr$.$$targs$$.Other$Patch])},$qx$);$qx$.$qy_=(-1);$qx$.$prop$get$qy.get=function(){return $qy};return $qx$;};$qx.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$qr$.Patch$List,sts:[{t:Iterator,a:{Element$Iterator:{t:'u',l:['Element$List','Other$Patch']}}}],d:['$','List','$c','Patch$xht1ke']};};function $init$$qx(){if($qx.$$===undefined){initTypeProto($qx,'ceylon.language::List.Patch.anonymous#6',Basic,$init$Iterator());
(function($qx$){atr$($qx$,'$qy',function(){return this.$qy_;},function($r6){return this.$qy_=$r6;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$qr$.Patch$List,pa:1024,d:['$','List','$c','Patch$xht1ke','$at','index$ada7l0']};});$qx$.next=function(){var $qx$=this;if(((($qx$.$qy=$qx$.$qy.successor)).valueOf()==($qr$.$qp).valueOf())){var $r1=(0),$r8=$qr$.$qq;for(var $r9=0;$r9<$r8;$r9++,($r1=$r1.successor)){$qv.next();}}
return (($ra=$qx$.$qy.minus($qr$.$qp),$ra.compare((0))!==smaller()&&$ra.compare($qr$.$qo.size)===smaller())?$qw.next():$qv.next());};$qx$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$List','Other$Patch',{t:Finished}]},ps:[],$cont:$qr$.Patch$List,pa:3,d:['$','List','$c','Patch$xht1ke','$m','next']};};atr$($qx$,'string',function(){var $qx$=this;return $qr$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$qr$.Patch$List,pa:3,d:['$','List','$c','Patch$xht1ke','$at','string']};});})($qx.$$.prototype);}
return $qx;}
$qr$.$init$$qx=$init$$qx;$init$$qx();return $qx();}();}();};$qr$.Patch$List=Patch$List;})(Patch$List.$$.prototype);}
return Patch$List;}
list$.$init$Patch$List=$init$Patch$List;list$.Patch$List=Patch$List;function Reversed$List($rc$){$init$Reversed$List();
if($rc$===undefined)$rc$=new this.Reversed$List.$$;
$rc$.outer$=this;$rc$.$$targs$$={Element$List:$rc$.outer$.$$targs$$.Element$List};$_Object($rc$);List({Element$List:$rc$.outer$.$$targs$$.Element$List},$rc$);return $rc$;}
Reversed$List.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],$cont:List,sts:[{t:List,a:{Element$List:'Element$List'}}],d:['$','List','$c','Reversed$ijs9g8']};};function $init$Reversed$List(){if(Reversed$List.$$===undefined){initTypeProto(Reversed$List,'ceylon.language::List.Reversed',$init$$_Object(),$init$List());
List.Reversed$List=Reversed$List;
(function($rc$){atr$($rc$,'lastIndex',function(){var $rc$=this;return $rc$.outer$.lastIndex;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$rc$.Reversed$List,pa:3,d:['$','List','$c','Reversed$ijs9g8','$at','lastIndex']};});atr$($rc$,'size',function(){var $rc$=this;return $rc$.outer$.size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$rc$.Reversed$List,pa:3,d:['$','List','$c','Reversed$ijs9g8','$at','size']};});atr$($rc$,'first',function(){var $rc$=this;return $rc$.outer$.last;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$List']},$cont:$rc$.Reversed$List,pa:3,d:['$','List','$c','Reversed$ijs9g8','$at','first']};});atr$($rc$,'last',function(){var $rc$=this;return $rc$.outer$.first;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$List']},$cont:$rc$.Reversed$List,pa:3,d:['$','List','$c','Reversed$ijs9g8','$at','last']};});atr$($rc$,'reversed',function(){var $rc$=this;return $rc$.outer$;},undefined,function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:'Element$List'}},$cont:$rc$.Reversed$List,pa:3,d:['$','List','$c','Reversed$ijs9g8','$at','reversed']};});$rc$.getFromFirst=function($rd){var $rc$=this;return (($rc$.size>0)?$rc$.outer$.getFromFirst($rc$.size.minus(1).minus($rd)):null);};$rc$.measure=function($re,$rf){var $rc$=this;return ((($rc$.size>0)&&($rf>0))?function(){var $rg=$rc$.size.minus(1).minus($re);return $rc$.outer$.span($rg,$rg.minus($rf).plus(1));}():empty());};$rc$.span=function($rh,$ri){var $rc$=this;return $rc$.outer$.span($ri,$rh);};$rc$.spanFrom=function($rj){var $rc$=this;return function(){var $rk=$rc$.size.minus(1);return (($rk>=0)&&($rj<=$rk)?$rc$.outer$.span($rk.minus($rj),0):empty());}();};$rc$.spanTo=function($rl){var $rc$=this;return function(){var $rm=$rc$.size.minus(1);return ((($rm>=0)&&($rl>=0))?$rc$.outer$.span($rm,$rm.minus($rl)):empty());}();};$rc$.clone=function(){var $rc$=this;return $rc$.outer$.clone().reversed;};$rc$.iterator=function(){var $rc$=this;return function(){var $rn=$rc$.outer$;return function(){function $ro($$targs$$){var $ro$=new $ro.$$;$ro$.outer$=$rc$;$ro$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$rc$.outer$.$$targs$$.Element$List},$ro$);$ro$.$rp_=$rn.size.minus(1);$ro$.$prop$get$rp={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$rc$.Reversed$List,pa:1024,d:['$','List','$c','Reversed$ijs9g8','$at','index$3vxcly']};}};$ro$.$prop$get$rp.get=function(){return $rp};return $ro$;};$ro.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$rc$.Reversed$List,sts:[{t:Iterator,a:{Element$Iterator:'Element$List'}}],d:['$','List','$c','Reversed$ijs9g8']};};function $init$$ro(){if($ro.$$===undefined){initTypeProto($ro,'ceylon.language::List.Reversed.anonymous#7',Basic,$init$Iterator());
(function($ro$){atr$($ro$,'$rp',function(){return this.$rp_;},function($rq){return this.$rp_=$rq;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$rc$.Reversed$List,pa:1024,d:['$','List','$c','Reversed$ijs9g8','$at','index$3vxcly']};});$ro$.next=function(){var $ro$=this;return ($rr=(($ro$.$rp<0)?finished():null),nn$($rr)?$rr:$rn.$l6(($rs=$ro$.$rp,$ro$.$rp=$rs.predecessor,$rs)));};atr$($ro$,'string',function(){var $ro$=this;return $rc$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$rc$.Reversed$List,pa:3,d:['$','List','$c','Reversed$ijs9g8','$at','string']};});})($ro.$$.prototype);}
return $ro;}
$rc$.$init$$ro=$init$$ro;$init$$ro();return $ro();}();}();};$rc$.Reversed$List=Reversed$List;})(Reversed$List.$$.prototype);}
return Reversed$List;}
list$.$init$Reversed$List=$init$Reversed$List;list$.Reversed$List=Reversed$List;$init$Indexes$List();
$init$Rest$List();
$init$Sublist$List();
$init$Repeat$List();
$init$Patch$List();
$init$Reversed$List();
})(List.$$.prototype);}
return List;}
ex$.$init$List=$init$List;$init$List();var $lb,$mi,$mk,$mq,$p0,$p1,$pl,$qb,$qc,$qd,$qe,$qg,$qh,$rr,$rs;function Map($$targs$$,map$){set_type_args(map$,$$targs$$,Map);Correspondence({Item$Correspondence:$$targs$$.Item$Map,Key$Correspondence:{t:$_Object}},map$);Collection({Element$Collection:{t:Entry,a:{Key$Entry:$$targs$$.Key$Map,Item$Entry:$$targs$$.Item$Map}}},map$);}
Map.$crtmm$=function(){return{mod:$CCMM$,tp:{Key$Map:{dv:'out',sts:[{t:$_Object}],def:{t:$_Object}},Item$Map:{dv:'out',def:{t:Anything}}},sts:[{t:Collection,a:{Element$Collection:{t:Entry,a:{Key$Entry:'Key$Map',Item$Entry:'Item$Map'}}}},{t:Correspondence,a:{Item$Correspondence:'Item$Map',Key$Correspondence:{t:$_Object}}}],pa:1,an:function(){return[doc$($CCMM$,'$:Map'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Entry),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$_map),$init$OpenFunction$jsint()(lmp$(ex$,'$'),forKey),$init$OpenFunction$jsint()(lmp$(ex$,'$'),forItem),$init$OpenFunction$jsint()(lmp$(ex$,'$'),byItem),$init$OpenFunction$jsint()(lmp$(ex$,'$'),byKey),$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getEmptyMap)].$sa$(mut$([{t:ClassWithInitializerDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration}]))),tagged(["Collections"].$sa$({t:$_String}))];},d:['$','Map']};};
ex$.Map=Map;function $init$Map(){if(Map.$$===undefined){initTypeProtoI(Map,'ceylon.language::Map',$init$Correspondence(),$init$Collection());
(function(map$){map$.$_get={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Item$Map']},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}}],$cont:Map,pa:7,an:function(){return[doc$($CCMM$,'$:Map:$m:get'),see("getOrDefault")];},d:['$','Map','$m','get']};}};map$.defines={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}}],$cont:Map,pa:7,an:function(){return[doc$($CCMM$,'$:Map:$m:defines'),see("contains")];},d:['$','Map','$m','defines']};}};map$.getOrDefault=function($ru,$rv,$yctp9w$){var map$=this;if(map$.defines($ru)){var $rw;if(nn$(($rw=map$.$_get($ru)))){return $rw;}
else{var $rx;asrt$((is$(($rx=null),map$.$$targs$$.Item$Map)),"Assertion failed: \'is Item null\' at Map.ceylon (81:23-81:36)",'81:16-81:37','Map.ceylon');
return null;}
}
else{return $rv;}
};map$.getOrDefault.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Item$Map','Default$getOrDefault']},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}},{nm:'default',mt:'prm',$t:'Default$getOrDefault'}],$cont:Map,tp:{Default$getOrDefault:{}},pa:9,an:function(){return[doc$($CCMM$,'$:Map:$m:getOrDefault'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Map().$$.prototype.$_get)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Map','$m','getOrDefault']};};map$.$ry=function($rz){var map$=this;return map$.getOrDefault($rz,Missing_instance(),{Default$getOrDefault:{t:Missing}});};map$.$ry.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Item$Map',{t:Missing}]},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}}],$cont:Map,d:['$','Map','$m','lookup$h6x2fy']};};map$.contains=function($s0){var map$=this;var $s1;if(is$(($s1=$s0),{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:{t:Anything}}})&&map$.defines($s1.key)){var $s2=map$.$_get($s1.key);var $s3=$s1.item;return function(){var $s4,$s5;if(nn$(($s4=$s2))&&nn$(($s5=$s3)))return $s4.equals($s5);else return ((nn$($s3)).valueOf()==(nn$($s2)).valueOf())}();}
else{return false;}
};map$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'entry',mt:'prm',$t:{t:$_Object}}],$cont:Map,pa:11,an:function(){return[doc$($CCMM$,'$:Map:$m:contains'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Map().$$.prototype.defines)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Map','$m','contains']};};atr$(map$,'distinct',function(){var map$=this;return map$;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Element$Iterable:{t:Entry,a:{Key$Entry:'Key$Map',Item$Entry:'Item$Map'}},Absent$Iterable:{t:Null}}},$cont:Map,pa:3,d:['$','Map','$at','distinct']};});map$.defaultNullElements=function($s6,$9z3fq3$){var map$=this;return map$;};map$.defaultNullElements.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:'Key$Map',Item$Entry:'Item$Map'}}}},ps:[{nm:'defaultValue',mt:'prm',$t:'Default$defaultNullElements'}],$cont:Map,tp:{Default$defaultNullElements:{sts:[{t:$_Object}]}},pa:3,d:['$','Map','$m','defaultNullElements']};};map$.clone={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:'Key$Map',Item$Map:'Item$Map'}},ps:[],$cont:Map,pa:7,an:function(){return[doc$($CCMM$,'$:Map:$m:clone')];},d:['$','Map','$m','clone']};}};atr$(map$,'keys',function(){var map$=this;return function(){function $s8($$targs$$){var $s8$=new $s8.$$;$s8$.outer$=map$;$s8$.$$targs$$=$$targs$$;$_Object($s8$);Set({Element$Set:map$.$$targs$$.Key$Map},$s8$);return $s8$;};$s8.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},$cont:map$.$prop$getKeys,sts:[{t:Set,a:{Element$Set:'Key$Map'}}],d:['$','Map','$at','keys']};};function $init$$s8(){if($s8.$$===undefined){initTypeProto($s8,'ceylon.language::Map.anonymous#0',$init$$_Object(),$init$Set());
(function($s8$){$s8$.contains=function($s9){var $s8$=this;return map$.defines($s9);};$s8$.iterator=function(){var $s8$=this;return map$.$_map($JsCallable(function($O$){return $O$.key;},[{nm:'_0',mt:'prm',$t:{t:Entry,a:{Key$Entry:map$.Key$Map,Item$Entry:map$.Item$Map}}}],{Return$Callable:map$.$$targs$$.Key$Map,Arguments$Callable:mtt$([{t:Entry,a:{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:map$.$$targs$$.Item$Map}}])}),{Result$map:map$.$$targs$$.Key$Map}).iterator();};atr$($s8$,'size',function(){var $s8$=this;return map$.size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:map$.$prop$getKeys,pa:3,d:['$','Map','$at','keys','$at','size']};});atr$($s8$,'empty',function(){var $s8$=this;return map$.empty;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:map$.$prop$getKeys,pa:3,d:['$','Map','$at','keys','$at','empty']};});$s8$.clone=function(){var $s8$=this;return set($s8$,undefined,{Element$set:map$.$$targs$$.Key$Map});};})($s8.$$.prototype);}
return $s8;}
map$.$init$$s8=$init$$s8;$init$$s8();return $s8();}()},undefined,function(){return{mod:$CCMM$,$t:{t:Collection,a:{Element$Collection:'Key$Map'}},$cont:Map,pa:11,an:function(){return[doc$($CCMM$,'$:Map:$at:keys')];},d:['$','Map','$at','keys']};});atr$(map$,'items',function(){var map$=this;return map$.Items$Map()},undefined,function(){return{mod:$CCMM$,$t:{t:Collection,a:{Element$Collection:'Item$Map'}},$cont:Map,pa:9,an:function(){return[doc$($CCMM$,'$:Map:$at:items')];},d:['$','Map','$at','items']};});map$.inverse=function(){var map$=this;return map$.coalescedMap.summarize($JsCallable(function($O$){return $O$.item;},[{nm:'_0',mt:'prm',$t:{t:Entry,a:{Key$Entry:map$.Key$Map,Item$Entry:{t:'i',l:[map$.Item$Map,{t:$_Object}]}}}}],{Return$Callable:mit$([map$.$$targs$$.Item$Map,{t:$_Object}]),Arguments$Callable:mtt$([{t:Entry,a:{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:mit$([map$.$$targs$$.Item$Map,{t:$_Object}])}}])}),$JsCallable((function($sb,$sc){return ElementEntry($sb,$sc.key,{Element$ElementEntry:map$.$$targs$$.Key$Map});}),[{nm:'keys',mt:'prm',$t:{t:'u',l:[{t:Null},{t:ElementEntry,a:{Element$ElementEntry:map$.Key$Map}}]}},{nm:'entry',mt:'prm',$t:{t:Entry,a:{Key$Entry:map$.Key$Map,Item$Entry:map$.Item$Map}}}],{Return$Callable:{t:ElementEntry,a:{Element$ElementEntry:map$.$$targs$$.Key$Map}},Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([{t:Entry,a:{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:map$.$$targs$$.Item$Map}}]),Element$Tuple:mut$([{t:Null},{t:ElementEntry,a:{Element$ElementEntry:map$.$$targs$$.Key$Map}},{t:Entry,a:{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:map$.$$targs$$.Item$Map}}]),First$Tuple:mut$([{t:Null},{t:ElementEntry,a:{Element$ElementEntry:map$.$$targs$$.Key$Map}}])}}}),{Result$summarize:{t:ElementEntry,a:{Element$ElementEntry:map$.$$targs$$.Key$Map}},Group$summarize:mit$([map$.$$targs$$.Item$Map,{t:$_Object}])});};map$.inverse.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:'i',l:['Item$Map',{t:$_Object}]},Item$Map:{t:Sequence,a:{Element$Sequence:'Key$Map'}}}},ps:[],$cont:Map,pa:9,an:function(){return[doc$($CCMM$,'$:Map:$m:inverse')];},d:['$','Map','$m','inverse']};};map$.equals=function($sd){var map$=this;var $se;if(is$(($se=$sd),{t:Map,a:{Key$Map:{t:$_Object},Item$Map:{t:Anything}}})&&(($se.size).valueOf()==(map$.size).valueOf())){var $sg;for(var $sf=map$.iterator();($sg=$sf.next())!==finished();){var $sh=$se.$_get($sg.key);var $si;if(nn$(($si=$sg.item))){var $sj;if(nn$(($sj=$sh))){if((!$sj.equals($si))){return false;}
}
else{return false;}
}
else{if(nn$($sh)){return false;}
}
}
if(finished()===$sg){return true;}
}
else{return false;}
};map$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:Map,pa:11,an:function(){return[doc$($CCMM$,'$:Map:$m:equals')];},d:['$','Map','$m','equals']};};atr$(map$,'hash',function(){var map$=this;var $sk=(0);var $sm;for(var $sl=map$.iterator();($sm=$sl.next())!==finished();){($sk=$sk.plus($sm.hash));}return $sk;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Map,pa:11,d:['$','Map','$at','hash']};});map$.mapItems=function($sn,$lhjrmg$){var map$=this;return function(){function $so($$targs$$){var $so$=new $so.$$;$so$.outer$=map$;$so$.$$targs$$=$$targs$$;$_Object($so$);Map.call(map$,{Key$Map:map$.$$targs$$.Key$Map,Item$Map:$lhjrmg$.Result$mapItems/*ORALE!Result inv pero Item var*/},$so$);return $so$;};$so.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},$cont:$so$.mapItems,sts:[{t:Map,a:{Key$Map:'Key$Map',Item$Map:'Result$mapItems'}}],d:['$','Map','$m','mapItems']};};function $init$$so(){if($so.$$===undefined){initTypeProto($so,'ceylon.language::Map.anonymous#3',$init$$_Object(),$init$Map());
(function($so$){$so$.defines=function($sp){var $so$=this;return map$.defines($sp);};$so$.$_get=function($sq){var $so$=this;var $sr;if(is$(($sr=$sq),map$.$$targs$$.Key$Map)){return function($ss){if($ss===Missing_instance())return null;else return $sn($sr,$ss)}(map$.$ry($sr));}
else{return null;}
};$so$.$_get.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Result$mapItems']},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}}],$cont:$so$.mapItems,pa:3,d:['$','Map','$m','mapItems','$m','get']};};$so$.getOrDefault=function($st,$su,$2c9t9d$){var $so$=this;var $sv;if(is$(($sv=$st),map$.$$targs$$.Key$Map)){return function($sw){if($sw===Missing_instance())return $su;else return $sn($sv,$sw)}(map$.$ry($sv));}
else{return $su;}
};$so$.getOrDefault.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Result$mapItems','Default$getOrDefault']},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}},{nm:'default',mt:'prm',$t:'Default$getOrDefault'}],$cont:$so$.mapItems,tp:{Default$getOrDefault:{}},pa:3,d:['$','Map','$m','mapItems','$m','getOrDefault']};};$so$.$sx=function($sy){var $so$=this;return Entry($sy.key,$sn($sy.key,$sy.item),{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:$lhjrmg$.Result$mapItems/*ORALE!Result inv pero Item var*/});};$so$.$sx.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Entry,a:{Key$Entry:'Key$Map',Item$Entry:'Result$mapItems'}},ps:[{nm:'entry',mt:'prm',$t:{t:Entry,a:{Key$Entry:'Key$Map',Item$Entry:'Item$Map'}}}],$cont:$so$.mapItems,d:['$','Map','$m','mapItems','$m','mapEntry$4qdslx']};};$so$.iterator=function(){var $so$=this;return map$.$_map($JsCallable(JsCallable($so$,$so$.$sx),[{nm:'entry',mt:'prm',$t:{t:Entry,a:{Key$Entry:map$.Key$Map,Item$Entry:map$.Item$Map}}}],{Return$Callable:{t:Entry,a:{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:$lhjrmg$.Result$mapItems/*ORALE!Result inv pero Item var*/}},Arguments$Callable:mtt$([{t:Entry,a:{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:map$.$$targs$$.Item$Map}}])}),{Result$map:{t:Entry,a:{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:$lhjrmg$.Result$mapItems/*ORALE!Result inv pero Item var*/}}}).iterator();};atr$($so$,'size',function(){var $so$=this;return map$.size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$so$.mapItems,pa:3,d:['$','Map','$m','mapItems','$at','size']};});$so$.clone=function(){var $so$=this;return map$.clone().mapItems(JsCallable($so$,$sn),{Result$mapItems:$lhjrmg$.Result$mapItems});};})($so.$$.prototype);}
return $so;}
map$.$init$$so=$init$$so;$init$$so();return $so();}();};map$.mapItems.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:'Key$Map',Item$Map:'Result$mapItems'}},ps:[{nm:'mapping',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$mapItems',Arguments$Callable:{t:'T',l:['Key$Map','Item$Map']}}},$rt:'Result$mapItems',ps:[{nm:'key',mt:'prm',$t:'Key$Map'},{nm:'item',mt:'prm',$t:'Item$Map'}]}],$cont:Map,tp:{Result$mapItems:{sts:[{t:$_Object}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Map:$m:mapItems')];},d:['$','Map','$m','mapItems']};};map$.defaultNullItems=function($t0,$a3ay3o$){var map$=this;return map$.mapItems($JsCallable((function($t1,$t2){return ($t3=$t2,nn$($t3)?$t3:$t0);}),[{nm:'key',mt:'prm',$t:map$.Key$Map},{nm:'elem',mt:'prm',$t:map$.Item$Map}],{Return$Callable:mut$([$a3ay3o$.Default$defaultNullItems,mit$([map$.$$targs$$.Item$Map,{t:$_Object}])]),Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([map$.$$targs$$.Item$Map]),Element$Tuple:mut$([map$.$$targs$$.Key$Map,map$.$$targs$$.Item$Map]),First$Tuple:map$.$$targs$$.Key$Map}}}),{Result$mapItems:mut$([$a3ay3o$.Default$defaultNullItems,mit$([map$.$$targs$$.Item$Map,{t:$_Object}])])});};map$.defaultNullItems.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:'Key$Map',Item$Map:{t:'u',l:[{t:'i',l:['Item$Map',{t:$_Object}]},'Default$defaultNullItems']}}},ps:[{nm:'defaultValue',mt:'prm',$t:'Default$defaultNullItems'}],$cont:Map,tp:{Default$defaultNullItems:{sts:[{t:$_Object}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Map:$m:defaultNullItems'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Map().$$.prototype.$prop$getCoalescedMap)].$sa$({t:ValueDeclaration$meta$declaration}))];},d:['$','Map','$m','defaultNullItems']};};map$.filterKeys=function($t4){var map$=this;return function(){function $t5($$targs$$){var $t5$=new $t5.$$;$t5$.outer$=map$;$t5$.$$targs$$=$$targs$$;$_Object($t5$);Map.call(map$,{Key$Map:map$.$$targs$$.Key$Map,Item$Map:map$.$$targs$$.Item$Map},$t5$);return $t5$;};$t5.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},$cont:$t5$.filterKeys,sts:[{t:Map,a:{Key$Map:'Key$Map',Item$Map:'Item$Map'}}],d:['$','Map','$m','filterKeys']};};function $init$$t5(){if($t5.$$===undefined){initTypeProto($t5,'ceylon.language::Map.anonymous#5',$init$$_Object(),$init$Map());
(function($t5$){$t5$.$_get=function($t6){var $t5$=this;return function(){var $t7;if(is$(($t7=$t6),map$.$$targs$$.Key$Map)&&$t4($t7))return map$.$_get($t7);else return null}();};$t5$.defines=function($t8){var $t5$=this;return function(){var $t9;if(is$(($t9=$t8),map$.$$targs$$.Key$Map)&&$t4($t9))return map$.defines($t9);else return false}();};$t5$.getOrDefault=function($ta,$tb,$7gy4tn$){var $t5$=this;return function(){var $tc;if(is$(($tc=$ta),map$.$$targs$$.Key$Map)&&$t4($tc))return map$.getOrDefault($tc,$tb,{Default$getOrDefault:$7gy4tn$.Default$getOrDefault});else return $tb}();};$t5$.getOrDefault.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Item$Map','Default$getOrDefault']},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}},{nm:'default',mt:'prm',$t:'Default$getOrDefault'}],$cont:$t5$.filterKeys,tp:{Default$getOrDefault:{}},pa:3,d:['$','Map','$m','filterKeys','$m','getOrDefault']};};$t5$.iterator=function(){var $t5$=this;return map$.$_filter(forKey(JsCallable($t5$,$t4),{Key$forKey:map$.$$targs$$.Key$Map,Result$forKey:{t:$_Boolean}})).iterator();};$t5$.clone=function(){var $t5$=this;return map$.clone().filterKeys(JsCallable($t5$,$t4));};})($t5.$$.prototype);}
return $t5;}
map$.$init$$t5=$init$$t5;$init$$t5();return $t5();}();};map$.filterKeys.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:'Key$Map',Item$Map:'Item$Map'}},ps:[{nm:'filtering',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Key$Map']}}},$rt:{t:$_Boolean},ps:[{nm:'key',mt:'prm',$t:'Key$Map'}]}],$cont:Map,pa:9,an:function(){return[doc$($CCMM$,'$:Map:$m:filterKeys')];},d:['$','Map','$m','filterKeys']};};map$.patch=function($te,$x4xixw$){var map$=this;return function(){function $tf($$targs$$){var $tf$=new $tf.$$;$tf$.outer$=map$;$tf$.$$targs$$=$$targs$$;$_Object($tf$);Map.call(map$,{Key$Map:mut$([map$.$$targs$$.Key$Map,$x4xixw$.OtherKey$patch]),Item$Map:mut$([map$.$$targs$$.Item$Map,$x4xixw$.OtherItem$patch])},$tf$);return $tf$;};$tf.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},$cont:$tf$.patch,sts:[{t:Map,a:{Key$Map:{t:'u',l:['Key$Map','OtherKey$patch']},Item$Map:{t:'u',l:['Item$Map','OtherItem$patch']}}}],d:['$','Map','$m','patch']};};function $init$$tf(){if($tf.$$===undefined){initTypeProto($tf,'ceylon.language::Map.anonymous#6',$init$$_Object(),$init$Map());
(function($tf$){$tf$.defines=function($tg){var $tf$=this;return ($te.defines($tg)||map$.defines($tg));};$tf$.$_get=function($th){var $tf$=this;return function($ti){if($ti===Missing_instance())return map$.$_get($th);else return $ti}($te.$ry($th));};$tf$.getOrDefault=function($tj,$tk,$gnf48w$){var $tf$=this;return function($tl){if($tl===Missing_instance())return map$.getOrDefault($tj,$tk,{Default$getOrDefault:$gnf48w$.Default$getOrDefault});else return $tl}($te.$ry($tj));};$tf$.getOrDefault.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['OtherItem$patch','Item$Map','Default$getOrDefault']},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}},{nm:'default',mt:'prm',$t:'Default$getOrDefault'}],$cont:$tf$.patch,tp:{Default$getOrDefault:{}},pa:3,d:['$','Map','$m','patch','$m','getOrDefault']};};$tf$.clone=function(){var $tf$=this;return map$.clone().patch($te.clone(),{OtherKey$patch:$x4xixw$.OtherKey$patch,OtherItem$patch:$x4xixw$.OtherItem$patch});};$tf$.contains=function($tm){var $tf$=this;return function(){var $tn;if(is$(($tn=$tm),{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:{t:Anything}}}))return ($te.contains($tn)||(!$te.defines($tn.key)&&map$.contains($tn)));else return false}();};atr$($tf$,'size',function(){var $tf$=this;return map$.size.plus($te.keys.count(not($JsCallable(($to=map$,JsCallable($to,$to.defines)),[{nm:'key',mt:'prm',$t:{t:$_Object}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:$_Object}])}),{Value$not:{t:$_Object}})));},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$tf$.patch,pa:3,d:['$','Map','$m','patch','$at','size']};});$tf$.iterator=function(){var $tf$=this;return ChainedIterator($te,map$.$_filter(not($JsCallable(($tp=$te,JsCallable($tp,$tp.contains)),[{nm:'entry',mt:'prm',$t:{t:$_Object}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:$_Object}])}),{Value$not:{t:$_Object}})),{Other$ChainedIterator:{t:Entry,a:{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:map$.$$targs$$.Item$Map}},Element$ChainedIterator:{t:Entry,a:{Key$Entry:$x4xixw$.OtherKey$patch/*ORALE!OtherKey inv pero Key var*/,Item$Entry:$x4xixw$.OtherItem$patch/*ORALE!OtherItem inv pero Item var*/}}});};})($tf.$$.prototype);}
return $tf;}
map$.$init$$tf=$init$$tf;$init$$tf();return $tf();}();};map$.patch.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:'u',l:['Key$Map','OtherKey$patch']},Item$Map:{t:'u',l:['Item$Map','OtherItem$patch']}}},ps:[{nm:'other',mt:'prm',$t:{t:Map,a:{Key$Map:'OtherKey$patch',Item$Map:'OtherItem$patch'}}}],$cont:Map,tp:{OtherKey$patch:{sts:[{t:$_Object}]},OtherItem$patch:{}},pa:9,an:function(){return[doc$($CCMM$,'$:Map:$m:patch')];},d:['$','Map','$m','patch']};};atr$(map$,'coalescedMap',function(){var map$=this;return function(){function $tr($$targs$$){var $tr$=new $tr.$$;$tr$.outer$=map$;$tr$.$$targs$$=$$targs$$;$_Object($tr$);Map.call(map$,{Key$Map:map$.$$targs$$.Key$Map,Item$Map:mit$([map$.$$targs$$.Item$Map,{t:$_Object}])},$tr$);return $tr$;};$tr.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},$cont:$tr$.$prop$getCoalescedMap,sts:[{t:Map,a:{Key$Map:'Key$Map',Item$Map:{t:'i',l:['Item$Map',{t:$_Object}]}}}],d:['$','Map','$at','coalescedMap']};};function $init$$tr(){if($tr.$$===undefined){initTypeProto($tr,'ceylon.language::Map.anonymous#7',$init$$_Object(),$init$Map());
(function($tr$){$tr$.defines=function($ts){var $tr$=this;return nn$(map$.$_get($ts));};$tr$.$_get=function($tt){var $tr$=this;return map$.$_get($tt);};$tr$.getOrDefault=function($tu,$tv,$wprzk0$){var $tr$=this;return ($tw=map$.getOrDefault($tu,$tv,{Default$getOrDefault:$wprzk0$.Default$getOrDefault}),nn$($tw)?$tw:$tv);};$tr$.getOrDefault.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Default$getOrDefault',{t:'i',l:['Item$Map',{t:$_Object}]}]},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}},{nm:'default',mt:'prm',$t:'Default$getOrDefault'}],$cont:$tr$.$prop$getCoalescedMap,tp:{Default$getOrDefault:{}},pa:3,d:['$','Map','$at','coalescedMap','$m','getOrDefault']};};$tr$.iterator=function(){var $tr$=this;return for$(function(){var $tz;var $tx=map$.iterator(),$ty=finished();var n$ty=function(){while(($ty=$tx.next())!==finished()){if(nn$(($tz=$ty.item))){return $ty;}
}
return finished();}
return function(){if(n$ty()!==finished()){var $u0=$ty,$u1=Entry($u0.key,$tz,{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:mit$([map$.$$targs$$.Item$Map,{t:$_Object}])});return $u1;}
return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:map$.$$targs$$.Key$Map,Item$Entry:mit$([map$.$$targs$$.Item$Map,{t:$_Object}])}}}).iterator();};$tr$.clone=function(){var $tr$=this;return map$.clone().coalescedMap;};})($tr.$$.prototype);}
return $tr;}
map$.$init$$tr=$init$$tr;$init$$tr();return $tr();}()},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:'Key$Map',Item$Map:{t:'i',l:['Item$Map',{t:$_Object}]}}},$cont:Map,pa:9,an:function(){return[doc$($CCMM$,'$:Map:$at:coalescedMap'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Map().$$.prototype.defaultNullItems)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Map','$at','coalescedMap']};});function Items$Map($u3$){$init$Items$Map();
if($u3$===undefined)$u3$=new this.Items$Map.$$;
$u3$.outer$=this;$u3$.$$targs$$={Element$Collection:$u3$.outer$.$$targs$$.Item$Map};$_Object($u3$);Collection({Element$Collection:$u3$.outer$.$$targs$$.Item$Map},$u3$);return $u3$;}
Items$Map.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],$cont:Map,sts:[{t:Collection,a:{Element$Collection:'Item$Map'}}],an:function(){return[doc("A bag of items.")];},d:['$','Map','$c','Items$ve0b3g']};};function $init$Items$Map(){if(Items$Map.$$===undefined){initTypeProto(Items$Map,'ceylon.language::Map.Items',$init$$_Object(),$init$Collection());
Map.Items$Map=Items$Map;
(function($u3$){$u3$.contains=function($u4){var $u3$=this;return $u3$.outer$.any($JsCallable((function($u5){return function(){var $u6;if(nn$(($u6=$u5.item)))return $u6.equals($u4);else return false}();}),[{nm:'entry',mt:'prm',$t:{t:Entry,a:{Key$Entry:map$.Key$Map,Item$Entry:map$.Item$Map}}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:Entry,a:{Key$Entry:$u3$.outer$.$$targs$$.Key$Map,Item$Entry:$u3$.outer$.$$targs$$.Item$Map}}])}));};$u3$.iterator=function(){var $u3$=this;return $u3$.outer$.$_map($JsCallable(function($O$){return $O$.item;},[{nm:'_0',mt:'prm',$t:{t:Entry,a:{Key$Entry:map$.Key$Map,Item$Entry:map$.Item$Map}}}],{Return$Callable:$u3$.outer$.$$targs$$.Item$Map,Arguments$Callable:mtt$([{t:Entry,a:{Key$Entry:$u3$.outer$.$$targs$$.Key$Map,Item$Entry:$u3$.outer$.$$targs$$.Item$Map}}])}),{Result$map:$u3$.outer$.$$targs$$.Item$Map}).iterator();};atr$($u3$,'size',function(){var $u3$=this;return $u3$.outer$.size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:map$.Items$Map,pa:3,d:['$','Map','$c','Items$ve0b3g','$at','size']};});atr$($u3$,'empty',function(){var $u3$=this;return $u3$.outer$.empty;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:map$.Items$Map,pa:3,d:['$','Map','$c','Items$ve0b3g','$at','empty']};});$u3$.clone=function(){var $u3$=this;return tpl$([],$u3$);};atr$($u3$,'hash',function(){var $u3$=this;return $u3$.frequencies().hash;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:map$.Items$Map,pa:3,d:['$','Map','$c','Items$ve0b3g','$at','hash']};});$u3$.equals=function($u7){var $u3$=this;return function(){var $u8;if(is$(($u8=$u7),{t:Map.$$.prototype.Items$Map},[{t:Map,a:{Item$Map:$u3$.outer$.$$targs$$.Item$Map,Key$Map:$u3$.outer$.$$targs$$.Key$Map}}]))return $u3$.frequencies().equals($u8.frequencies());else return false}();};})(Items$Map.$$.prototype);}
return Items$Map;}
map$.$init$Items$Map=$init$Items$Map;map$.Items$Map=Items$Map;$init$Items$Map();
})(Map.$$.prototype);}
return Map;}
ex$.$init$Map=$init$Map;$init$Map();var $t3,$to,$tp,$tw;function $_map$defs$choosing($u9,$ua,$vlujh2$){return function($ub,$uc){return $ub;};};function $_map($u9,$ua,$vlujh2$){if($ua===undefined){$ua=function($ub,$uc){return $ub;};}
return $u9.summarize($JsCallable(function($O$){return $O$.key;},[{nm:'_0',mt:'prm',$t:{t:Entry,a:{Key$Entry:$vlujh2$.Key$map,Item$Entry:$vlujh2$.Item$map}}}],{Return$Callable:$vlujh2$.Key$map/*ORALE!Key inv pero Return var*/,Arguments$Callable:mtt$([{t:Entry,a:{Key$Entry:$vlujh2$.Key$map/*ORALE!Key inv pero Key var*/,Item$Entry:$vlujh2$.Item$map/*ORALE!Item inv pero Item var*/}}])}),$JsCallable((function($ud,$ue){return function(){var $uf;if(nn$(($uf=$ud)))return $ua($uf,$ue.item);else return $ue.item}();}),[{nm:'item',mt:'prm',$t:{t:'u',l:[{t:Null},$vlujh2$.Item$map]}},{nm:'entry',mt:'prm',$t:{t:Entry,a:{Key$Entry:$vlujh2$.Key$map,Item$Entry:$vlujh2$.Item$map}}}],{Return$Callable:$vlujh2$.Item$map/*ORALE!Item inv pero Return var*/,Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([{t:Entry,a:{Key$Entry:$vlujh2$.Key$map/*ORALE!Key inv pero Key var*/,Item$Entry:$vlujh2$.Item$map/*ORALE!Item inv pero Item var*/}}]),Element$Tuple:mut$([{t:Null},$vlujh2$.Item$map,{t:Entry,a:{Key$Entry:$vlujh2$.Key$map/*ORALE!Key inv pero Key var*/,Item$Entry:$vlujh2$.Item$map/*ORALE!Item inv pero Item var*/}}]),First$Tuple:mut$([{t:Null},$vlujh2$.Item$map])}}}),{Result$summarize:$vlujh2$.Item$map,Group$summarize:$vlujh2$.Key$map});};$_map.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:'Key$map',Item$Map:'Item$map'}},ps:[{nm:'stream',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:'Key$map',Item$Entry:'Item$map'}}}}},{nm:'choosing',mt:'prm',$pt:'f',def:1,$t:{t:Callable,a:{Return$Callable:'Item$map',Arguments$Callable:{t:'T',l:['Item$map','Item$map']}}},$rt:'Item$map',ps:[{nm:'earlier',mt:'prm',$t:'Item$map'},{nm:'later',mt:'prm',$t:'Item$map'}]}],tp:{Key$map:{sts:[{t:$_Object}]},Item$map:{}},pa:1,an:function(){return[doc$($CCMM$,'$:map')];},d:['$','map']};};
ex$.$_map=$_map;function $ug($$targs$$){var emptyMap$=new $ug.$$;emptyMap$.$$targs$$=$$targs$$;$_Object(emptyMap$);Map({Key$Map:{t:Nothing},Item$Map:{t:Nothing}},emptyMap$);return emptyMap$;};$ug.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},sts:[{t:Map,a:{Key$Map:{t:Nothing},Item$Map:{t:Nothing}}}],d:['$','emptyMap']};};function $init$emptyMap(){if($ug.$$===undefined){initTypeProto($ug,'ceylon.language::emptyMap',$init$$_Object(),$init$Map());
(function(emptyMap$){emptyMap$.$_get=function($ui){var emptyMap$=this;return null;};emptyMap$.getOrDefault=function($uj,$uk,$62msqz$){var emptyMap$=this;return $uk;};emptyMap$.getOrDefault.$crtmm$=function(){return{mod:$CCMM$,$t:'Default$getOrDefault',ps:[{nm:'key',mt:'prm',$t:{t:$_Object}},{nm:'default',mt:'prm',$t:'Default$getOrDefault'}],$cont:$ug,tp:{Default$getOrDefault:{}},pa:3,d:['$','emptyMap','$m','getOrDefault']};};atr$(emptyMap$,'keys',function(){var emptyMap$=this;return emptySet();},undefined,function(){return{mod:$CCMM$,$t:{t:Collection,a:{Element$Collection:{t:Nothing}}},$cont:$ug,pa:3,d:['$','emptyMap','$at','keys']};});atr$(emptyMap$,'items',function(){var emptyMap$=this;return emptySet();},undefined,function(){return{mod:$CCMM$,$t:{t:Collection,a:{Element$Collection:{t:Nothing}}},$cont:$ug,pa:3,d:['$','emptyMap','$at','items']};});emptyMap$.clone=function(){var emptyMap$=this;return emptyMap$;};emptyMap$.iterator=function(){var emptyMap$=this;return emptyIterator();};atr$(emptyMap$,'size',function(){var emptyMap$=this;return 0;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$ug,pa:3,d:['$','emptyMap','$at','size']};});atr$(emptyMap$,'empty',function(){var emptyMap$=this;return true;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$ug,pa:3,d:['$','emptyMap','$at','empty']};});emptyMap$.defines=function($ul){var emptyMap$=this;return false;};emptyMap$.contains=function($um){var emptyMap$=this;return false;};emptyMap$.containsAny=function($un){var emptyMap$=this;return false;};emptyMap$.containsEvery=function($uo){var emptyMap$=this;return false;};emptyMap$.mapItems=function($up,$8lmu3z$){var emptyMap$=this;return emptyMap();};emptyMap$.mapItems.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:Nothing},Item$Map:{t:Nothing}}},ps:[{nm:'mapping',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$mapItems',Arguments$Callable:{t:'T',l:[]}}},$rt:'Result$mapItems',ps:[{nm:'key',mt:'prm',$t:{t:Nothing}},{nm:'item',mt:'prm',$t:{t:Nothing}}]}],$cont:$ug,tp:{Result$mapItems:{sts:[{t:$_Object}]}},pa:3,d:['$','emptyMap','$m','mapItems']};};emptyMap$.count=function($uq){return 0;};emptyMap$.any=function($ur){var emptyMap$=this;return false;};emptyMap$.$_every=function($us){var emptyMap$=this;return true;};emptyMap$.find=function($ut){var emptyMap$=this;return null;};emptyMap$.find.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Entry,a:{Key$Entry:{t:Nothing},Item$Entry:{t:Nothing}}}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:Nothing},Item$Entry:{t:Nothing}}}}]}],$cont:$ug,pa:3,d:['$','emptyMap','$m','find']};};emptyMap$.findLast=function($uu){var emptyMap$=this;return null;};emptyMap$.findLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Entry,a:{Key$Entry:{t:Nothing},Item$Entry:{t:Nothing}}}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:Nothing},Item$Entry:{t:Nothing}}}}]}],$cont:$ug,pa:3,d:['$','emptyMap','$m','findLast']};};emptyMap$.skip=function($uv){var emptyMap$=this;return emptyMap$;};emptyMap$.take=function($uw){var emptyMap$=this;return emptyMap$;};emptyMap$.by=function($ux){var emptyMap$=this;return emptyMap$;};emptyMap$.each=function($uy){var emptyMap$=this;};emptyMap$.each.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'step',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Anything},Arguments$Callable:{t:'T',l:[{t:Entry,a:{Key$Entry:{t:Nothing},Item$Entry:{t:Nothing}}}]}}},$rt:{t:Anything},ps:[{nm:'element',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:Nothing},Item$Entry:{t:Nothing}}}}]}],$cont:$ug,pa:3,d:['$','emptyMap','$m','each']};};})($ug.$$.prototype);}
return $ug;}
ex$.$init$emptyMap=$init$emptyMap;$init$emptyMap();var $uz;function emptyMap(){if($uz===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'emptyMap\' before it was set"),'452:0-502:0','Map.ceylon');if($uz===undefined){$uz=INIT$;$uz=$init$emptyMap()({Item$Map:{t:Nothing},Key$Map:{t:Nothing}});$uz.$crtmm$=emptyMap.$crtmm$;}
return $uz;}
ex$.emptyMap=emptyMap;emptyMap.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$emptyMap()},pa:1,an:function(){return[doc$($CCMM$,'$:emptyMap'),tagged(["Collections"].$sa$({t:$_String}))];},d:['$','emptyMap']};};$prop$getEmptyMap=emptyMap;ex$.$prop$getEmptyMap=$prop$getEmptyMap;function Missing(){throwexc(Exception("ceylon.language::Missing has no default constructor."),'504:0-506:0','Map.ceylon');}
function Missing$$c(missing$){$init$Missing();
if(missing$===undefined)missing$=new Missing.$$;
return missing$;}
var $v0=undefined;function Missing_instance(){if($v0===undefined){$init$Missing();$v0=new Missing.$$;var missing$=$v0;}return $v0;};Missing_instance.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Missing},$cont:Missing,pa:1,d:['$','Missing','$cn','instance']};};Missing.Missing_instance=Missing_instance;Missing.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},of:[Missing.Missing_instance],d:['$','Missing']};};
ex$.Missing=Missing;function $init$Missing(){if(Missing.$$===undefined){initTypeProto(Missing,'ceylon.language::Missing',Basic);
(function(missing$){atr$(missing$,'instance',function(){return Missing_instance();},undefined,function(){return{mod:$CCMM$,$t:{t:Missing},$cont:Missing,pa:1,d:['$','Missing','$cn','instance']};});})(Missing.$$.prototype);}
return Missing;}
ex$.$init$Missing=$init$Missing;$init$Missing();function Measure(first,size,$$targs$$,measure$){$init$Measure();
if(measure$===undefined)measure$=new Measure.$$;
set_type_args(measure$,$$targs$$);
measure$.$v1_=first;measure$.$v2_=size;Range({Element$Range:measure$.$$targs$$.Element$Measure},measure$);asrt$(((measure$.size>0)),"must be nonempty: \'size > 0\' at Measure.ceylon (19:11-19:20)",'18:4-19:21','Measure.ceylon');
atr$(measure$,'string',function(){return measure$.first.string.plus(":").plus(measure$.size.string);},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Measure,pa:3,d:['$','Measure','$at','string']};});atr$(measure$,'last',function(){return measure$.first.neighbour(measure$.size.minus(1));},undefined,function(){return{mod:$CCMM$,$t:'Element$Measure',$cont:Measure,pa:3,d:['$','Measure','$at','last']};});measure$.longerThan=function($v3){return (measure$.size>$v3);};measure$.shorterThan=function($v4){return (measure$.size<$v4);};atr$(measure$,'lastIndex',function(){return measure$.size.minus(1);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Measure,pa:3,d:['$','Measure','$at','lastIndex']};});atr$(measure$,'rest',function(){return ($v5=((measure$.size>1)?Measure(measure$.first.successor,measure$.size.minus(1),{Element$Measure:measure$.$$targs$$.Element$Measure}):null),nn$($v5)?$v5:empty());},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Measure'}},$cont:Measure,pa:3,d:['$','Measure','$at','rest']};});var $v5;measure$.getFromFirst=function($v6){return ($v7=((($v6>=0)&&($v6<measure$.size))?measure$.first.neighbour($v6):null),nn$($v7)?$v7:null);};var $v7;atr$(measure$,'increasing',function(){return true;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Measure,pa:3,d:['$','Measure','$at','increasing']};});atr$(measure$,'decreasing',function(){return false;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Measure,pa:3,d:['$','Measure','$at','decreasing']};});measure$.iterator=function(){return function(){function $v8($$targs$$){var $v8$=new $v8.$$;$v8$.outer$=measure$;$v8$.$$targs$$=$$targs$$;Iterator({Element$Iterator:measure$.$$targs$$.Element$Measure/*ORALE!Element inv pero Element var*/},$v8$);$v8$.$v9_=(0);$v8$.$prop$get$v9={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Measure,pa:1024,d:['$','Measure','$at','count$qsn720']};}};$v8$.$prop$get$v9.get=function(){return $v9};$v8$.$va_=measure$.first;$v8$.$prop$get$va={$crtmm$:function(){return{mod:$CCMM$,$t:'Element$Measure',$cont:Measure,pa:1024,d:['$','Measure','$at','current$sp0i3i']};}};$v8$.$prop$get$va.get=function(){return $va};return $v8$;};$v8.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:Measure,sts:[{t:Iterator,a:{Element$Iterator:'Element$Measure'}}],d:['$','Measure']};};function $init$$v8(){if($v8.$$===undefined){initTypeProto($v8,'ceylon.language::Measure.anonymous#0',Basic,$init$Iterator());
(function($v8$){atr$($v8$,'$v9',function(){return this.$v9_;},function($vb){return this.$v9_=$vb;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Measure,pa:1024,d:['$','Measure','$at','count$qsn720']};});atr$($v8$,'$va',function(){return this.$va_;},function($vc){return this.$va_=$vc;},function(){return{mod:$CCMM$,$t:'Element$Measure',$cont:Measure,pa:1024,d:['$','Measure','$at','current$sp0i3i']};});$v8$.next=function(){var $v8$=this;if(($v8$.$v9>=measure$.size)){return finished();}
else{if(((($vd=$v8$.$v9,$v8$.$v9=$vd.successor,$vd)).valueOf()==(0).valueOf())){return $v8$.$va;}
else{return ($v8$.$va=$v8$.$va.successor);}
var $vd;}
};$v8$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Measure',{t:Finished}]},ps:[],$cont:Measure,pa:3,d:['$','Measure','$m','next']};};atr$($v8$,'string',function(){var $v8$=this;return "(".plus(measure$.string).plus(").iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Measure,pa:3,d:['$','Measure','$at','string']};});})($v8.$$.prototype);}
return $v8;}
measure$.$init$$v8=$init$$v8;$init$$v8();return $v8();}();};measure$.shifted=function($vf){return ($vg=((($vf).valueOf()==(0).valueOf())?measure$:null),nn$($vg)?$vg:Measure(measure$.first.neighbour($vf),measure$.size,{Element$Measure:measure$.$$targs$$.Element$Measure}));};var $vg;measure$.containsElement=function($vh){return ($vi=$vh.offset(measure$.first),$vi.compare((0))!==smaller()&&$vi.compare(measure$.size)===smaller());};return measure$;}
Measure.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Range,a:{Element$Range:'Element$Measure'}},ps:[{nm:'first',mt:'prm',$t:'Element$Measure',pa:3,an:function(){return[doc$($CCMM$,'$:Measure:$at:first')];}},{nm:'size',mt:'prm',$t:{t:Integer},pa:3,an:function(){return[doc$($CCMM$,'$:Measure:$at:size')];}}],tp:{Element$Measure:{sts:[{t:Enumerable,a:{Other$Enumerable:'Element$Measure'}}]}},pa:2080,an:function(){return[doc$($CCMM$,'$:Measure'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Span),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Enumerable)].$sa$(mut$([{t:ClassWithInitializerDeclaration$meta$declaration},{t:InterfaceDeclaration$meta$declaration}])))];},d:['$','Measure']};};
ex$.Measure=Measure;function $init$Measure(){if(Measure.$$===undefined){initTypeProto(Measure,'ceylon.language::Measure',$init$Range());
(function(measure$){atr$(measure$,'first',function(){return this.$v1_;},undefined,function(){return{mod:$CCMM$,$t:'Element$Measure',$cont:Measure,pa:3,an:function(){return[doc$($CCMM$,'$:Measure:$at:first')];},d:['$','Measure','$at','first']};});atr$(measure$,'size',function(){return this.$v2_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Measure,pa:3,an:function(){return[doc$($CCMM$,'$:Measure:$at:size')];},d:['$','Measure','$at','size']};});atr$(measure$,'string',function(){var measure$=this;return measure$.first.string.plus(":").plus(measure$.size.string);},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Measure,pa:3,d:['$','Measure','$at','string']};});atr$(measure$,'last',function(){var measure$=this;return measure$.first.neighbour(measure$.size.minus(1));},undefined,function(){return{mod:$CCMM$,$t:'Element$Measure',$cont:Measure,pa:3,d:['$','Measure','$at','last']};});measure$.longerThan=function($v3){var measure$=this;return (measure$.size>$v3);};measure$.shorterThan=function($v4){var measure$=this;return (measure$.size<$v4);};atr$(measure$,'lastIndex',function(){var measure$=this;return measure$.size.minus(1);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Measure,pa:3,d:['$','Measure','$at','lastIndex']};});atr$(measure$,'rest',function(){var measure$=this;return ($vj=((measure$.size>1)?Measure(measure$.first.successor,measure$.size.minus(1),{Element$Measure:measure$.$$targs$$.Element$Measure}):null),nn$($vj)?$vj:empty());},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Measure'}},$cont:Measure,pa:3,d:['$','Measure','$at','rest']};});measure$.getFromFirst=function($v6){var measure$=this;return ($vk=((($v6>=0)&&($v6<measure$.size))?measure$.first.neighbour($v6):null),nn$($vk)?$vk:null);};atr$(measure$,'increasing',function(){var measure$=this;return true;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Measure,pa:3,d:['$','Measure','$at','increasing']};});atr$(measure$,'decreasing',function(){var measure$=this;return false;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Measure,pa:3,d:['$','Measure','$at','decreasing']};});measure$.iterator=function(){var measure$=this;return function(){function $v8($$targs$$){var $v8$=new $v8.$$;$v8$.outer$=measure$;$v8$.$$targs$$=$$targs$$;Iterator({Element$Iterator:measure$.$$targs$$.Element$Measure/*ORALE!Element inv pero Element var*/},$v8$);$v8$.$v9_=(0);$v8$.$prop$get$v9.get=function(){return $v9};$v8$.$va_=measure$.first;$v8$.$prop$get$va.get=function(){return $va};return $v8$;};$v8.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:Measure,sts:[{t:Iterator,a:{Element$Iterator:'Element$Measure'}}],d:['$','Measure']};};function $init$$v8(){if($v8.$$===undefined){initTypeProto($v8,'ceylon.language::Measure.anonymous#0',Basic,$init$Iterator());
(function($v8$){atr$($v8$,'$v9',function(){return this.$v9_;},function($vl){return this.$v9_=$vl;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Measure,pa:1024,d:['$','Measure','$at','count$qsn720']};});atr$($v8$,'$va',function(){return this.$va_;},function($vm){return this.$va_=$vm;},function(){return{mod:$CCMM$,$t:'Element$Measure',$cont:Measure,pa:1024,d:['$','Measure','$at','current$sp0i3i']};});$v8$.next=function(){var $v8$=this;if(($v8$.$v9>=measure$.size)){return finished();}
else{if(((($vn=$v8$.$v9,$v8$.$v9=$vn.successor,$vn)).valueOf()==(0).valueOf())){return $v8$.$va;}
else{return ($v8$.$va=$v8$.$va.successor);}
var $vn;}
};$v8$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Measure',{t:Finished}]},ps:[],$cont:Measure,pa:3,d:['$','Measure','$m','next']};};atr$($v8$,'string',function(){var $v8$=this;return "(".plus(measure$.string).plus(").iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Measure,pa:3,d:['$','Measure','$at','string']};});})($v8.$$.prototype);}
return $v8;}
measure$.$init$$v8=$init$$v8;$init$$v8();return $v8();}();};measure$.by=function($vp){var measure$=this;asrt$((($vp>0)),"step size must be greater than zero: \'step > 0\' at Measure.ceylon (64:15-64:24)",'63:8-64:25','Measure.ceylon');
return ($vq=((($vp).valueOf()==(1).valueOf())?measure$:null),nn$($vq)?$vq:measure$.By$Measure($vp));var $vq;};measure$.by.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Element$Measure'}},ps:[{nm:'step',mt:'prm',$t:{t:Integer}}],$cont:Measure,pa:3,d:['$','Measure','$m','by']};};measure$.shifted=function($vf){var measure$=this;return ($vr=((($vf).valueOf()==(0).valueOf())?measure$:null),nn$($vr)?$vr:Measure(measure$.first.neighbour($vf),measure$.size,{Element$Measure:measure$.$$targs$$.Element$Measure}));};measure$.containsElement=function($vh){var measure$=this;return ($vs=$vh.offset(measure$.first),$vs.compare((0))!==smaller()&&$vs.compare(measure$.size)===smaller());};measure$.includesRange=function($vt){var measure$=this;var $vu=$vt;if(is$($vu,{t:Measure,a:{Element$Measure:measure$.$$targs$$.Element$Measure}})) {var $vv=$vu.first.offset(measure$.first);return ($vw=$vv,$vw.compare((0))!==smaller()&&$vw.compare(measure$.size.minus($vu.size))!==larger());}
else if(is$($vu,{t:Span,a:{Element$Span:measure$.$$targs$$.Element$Measure}})) {if($vu.decreasing){return false;}
else{var $vx=$vu.first.offset(measure$.first);return ($vy=$vx,$vy.compare((0))!==smaller()&&$vy.compare(measure$.size.minus($vu.size))!==larger());}
}
};measure$.includesRange.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'range',mt:'prm',$t:{t:Range,a:{Element$Range:'Element$Measure'}}}],$cont:Measure,pa:3,d:['$','Measure','$m','includesRange']};};measure$.equals=function($vz){var measure$=this;var $w0;if(is$(($w0=$vz),{t:Measure,a:{Element$Measure:{t:$_Object,uv:'out'}}})){return ((($w0.size).valueOf()==(measure$.size).valueOf())&&$w0.first.equals(measure$.first));}
else{var $w1;if(is$(($w1=$w0),{t:Span,a:{Element$Span:{t:$_Object,uv:'out'}}})){return (($w1.increasing&&$w1.first.equals(measure$.first))&&(($w1.size).valueOf()==(measure$.size).valueOf()));}
else{return measure$.getT$all()['ceylon.language::List'].$$.prototype.equals.call(measure$,$w1);}
}
};measure$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:Measure,pa:3,d:['$','Measure','$m','equals']};};measure$.measure=function($w2,$w3){var measure$=this;if(($w3<=0)){return empty();}
else{var $w4=($w5=(($w2.plus($w3)<measure$.size)?$w3:null),nn$($w5)?$w5:measure$.size.minus($w2));var $w5;return Measure(measure$.first.neighbour($w2),$w4,{Element$Measure:measure$.$$targs$$.Element$Measure});}
};measure$.measure.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Measure'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Measure,pa:3,d:['$','Measure','$m','measure']};};measure$.span=function($w6,$w7){var measure$=this;if(($w6<=$w7)){if((($w7<0)||($w6>=measure$.size))){return empty();}
else{var $w8=($w9=(($w7<measure$.size)?$w7.minus($w6).plus(1):null),nn$($w9)?$w9:measure$.size.minus($w6));var $w9;return Measure(measure$.first.neighbour($w6),$w8,{Element$Measure:measure$.$$targs$$.Element$Measure});}
}
else{if((($w6<0)||($w7>=measure$.size))){return empty();}
else{var $wa=($wb=(($w6<measure$.size)?$w6.minus($w7).plus(1):null),nn$($wb)?$wb:measure$.size.minus($w7));var $wb;return Measure(measure$.first.neighbour($w7),$wa,{Element$Measure:measure$.$$targs$$.Element$Measure}).reversed;}
}
};measure$.span.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Measure'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Measure,pa:3,d:['$','Measure','$m','span']};};measure$.spanFrom=function($wc){var measure$=this;if(($wc<=0)){return measure$;}
else{if(($wc<measure$.size)){return Measure(measure$.first.neighbour($wc),measure$.size.minus($wc),{Element$Measure:measure$.$$targs$$.Element$Measure});}
else{return empty();}
}
};measure$.spanFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Measure'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:Measure,pa:3,d:['$','Measure','$m','spanFrom']};};measure$.spanTo=function($wd){var measure$=this;if(($wd<0)){return empty();}
else{if(($wd<measure$.size.minus(1))){return Measure(measure$.first,$wd,{Element$Measure:measure$.$$targs$$.Element$Measure});}
else{return measure$;}
}
};measure$.spanTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Measure'}},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Measure,pa:3,d:['$','Measure','$m','spanTo']};};measure$.each=function($we){var measure$=this;var $wf=measure$.first;var $wg=(0);while((($wh=$wg,$wg=$wh.successor,$wh)<measure$.size)){$we(($wi=$wf,$wf=$wi.successor,$wi));var $wi;}
var $wh;};measure$.each.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'step',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Anything},Arguments$Callable:{t:'T',l:['Element$Measure']}}},$rt:{t:Anything},ps:[{nm:'element',mt:'prm',$t:'Element$Measure'}]}],$cont:Measure,pa:3,d:['$','Measure','$m','each']};};function By$Measure($wj,$wk$){$init$By$Measure();
if($wk$===undefined)$wk$=new this.By$Measure.$$;
$wk$.outer$=this;$wk$.$$targs$$={Absent$Iterable:{t:Nothing},Element$Iterable:$wk$.outer$.$$targs$$.Element$Measure/*ORALE!Element inv pero Element var*/};$wk$.$wj_=$wj;Iterable({Absent$Iterable:{t:Nothing},Element$Iterable:$wk$.outer$.$$targs$$.Element$Measure/*ORALE!Element inv pero Element var*/},$wk$);return $wk$;}
By$Measure.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'step',mt:'prm',$t:{t:Integer}}],$cont:Measure,sts:[{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Element$Measure'}}],d:['$','Measure','$c','By$d85sth']};};function $init$By$Measure(){if(By$Measure.$$===undefined){initTypeProto(By$Measure,'ceylon.language::Measure.By',Basic,$init$Iterable());
Measure.By$Measure=By$Measure;
(function($wk$){atr$($wk$,'$wj',function(){return this.$wj_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:measure$.By$Measure,d:['$','Measure','$c','By$d85sth','$at','step$ezo16c']};});atr$($wk$,'size',function(){var $wk$=this;return (1).plus($wk$.outer$.size.minus(1).divided($wk$.$wj));},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:measure$.By$Measure,pa:3,d:['$','Measure','$c','By$d85sth','$at','size']};});atr$($wk$,'first',function(){var $wk$=this;return $wk$.outer$.first;},undefined,function(){return{mod:$CCMM$,$t:'Element$Measure',$cont:measure$.By$Measure,pa:3,d:['$','Measure','$c','By$d85sth','$at','first']};});atr$($wk$,'string',function(){var $wk$=this;return "(".plus($wk$.outer$.string).plus(").by(").plus($wk$.$wj.string).plus(")");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:measure$.By$Measure,pa:3,d:['$','Measure','$c','By$d85sth','$at','string']};});$wk$.iterator=function(){var $wk$=this;return function(){function $wl($$targs$$){var $wl$=new $wl.$$;$wl$.outer$=$wk$;$wl$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$wk$.outer$.$$targs$$.Element$Measure/*ORALE!Element inv pero Element var*/},$wl$);$wl$.$wm_=(0);$wl$.$prop$get$wm={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:measure$.By$Measure,pa:1024,d:['$','Measure','$c','By$d85sth','$at','count$rebtit']};}};$wl$.$prop$get$wm.get=function(){return $wm};$wl$.$wn_=$wk$.first;$wl$.$prop$get$wn={$crtmm$:function(){return{mod:$CCMM$,$t:'Element$Measure',$cont:measure$.By$Measure,pa:1024,d:['$','Measure','$c','By$d85sth','$at','current$tap4kb']};}};$wl$.$prop$get$wn.get=function(){return $wn};return $wl$;};$wl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:measure$.By$Measure,sts:[{t:Iterator,a:{Element$Iterator:'Element$Measure'}}],d:['$','Measure','$c','By$d85sth']};};function $init$$wl(){if($wl.$$===undefined){initTypeProto($wl,'ceylon.language::Measure.By.anonymous#1',Basic,$init$Iterator());
(function($wl$){atr$($wl$,'$wm',function(){return this.$wm_;},function($wo){return this.$wm_=$wo;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:measure$.By$Measure,pa:1024,d:['$','Measure','$c','By$d85sth','$at','count$rebtit']};});atr$($wl$,'$wn',function(){return this.$wn_;},function($wp){return this.$wn_=$wp;},function(){return{mod:$CCMM$,$t:'Element$Measure',$cont:measure$.By$Measure,pa:1024,d:['$','Measure','$c','By$d85sth','$at','current$tap4kb']};});$wl$.next=function(){var $wl$=this;if(($wl$.$wm>=$wk$.size)){return finished();}
else{if(((($wq=$wl$.$wm,$wl$.$wm=$wq.successor,$wq)).valueOf()==(0).valueOf())){return $wl$.$wn;}
else{$wl$.$wn=$wl$.$wn.neighbour($wk$.$wj);return $wl$.$wn;}
var $wq;}
};$wl$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Measure',{t:Finished}]},ps:[],$cont:measure$.By$Measure,pa:3,d:['$','Measure','$c','By$d85sth','$m','next']};};atr$($wl$,'string',function(){var $wl$=this;return $wk$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:measure$.By$Measure,pa:3,d:['$','Measure','$c','By$d85sth','$at','string']};});})($wl.$$.prototype);}
return $wl;}
$wk$.$init$$wl=$init$$wl;$init$$wl();return $wl();}();};})(By$Measure.$$.prototype);}
return By$Measure;}
measure$.$init$By$Measure=$init$By$Measure;measure$.By$Measure=By$Measure;$init$By$Measure();
})(Measure.$$.prototype);}
return Measure;}
ex$.$init$Measure=$init$Measure;$init$Measure();Measure.inst$$=function($ws){var measure$=new Measure.$$;
set_type_args(measure$,{Element$Measure:$ws.$$targs$$.Type$Class.a.Element$Measure});
set_type_args(measure$,{Element$Range:measure$.$$targs$$.Element$Measure,Element$Sequence:measure$.$$targs$$.Element$Measure,Element$Sequential:measure$.$$targs$$.Element$Measure,Element$List:measure$.$$targs$$.Element$Measure,Element$Collection:measure$.$$targs$$.Element$Measure,Element$Iterable:measure$.$$targs$$.Element$Measure,Absent$Iterable:{t:Null},Element$Category:{t:$_Object},Key$Correspondence:{t:Integer},Item$Correspondence:measure$.$$targs$$.Element$Measure,Element$Ranged:measure$.$$targs$$.Element$Measure,Subrange$Ranged:{t:List,a:{Element$List:measure$.$$targs$$.Element$Measure/*ORALE!Element inv pero Element var*/}},Index$Ranged:{t:Integer}});
return measure$;};Measure.ser$get$=function(ref,o){var n=ref.attribute.qualifiedName;if(n==='ceylon.language::Measure.first')return o.first_;else if(n==='ceylon.language::Measure.size')return o.size_;else return Range.ser$get$(ref,o);};Measure.ser$set$=function(ref,o,i){if(!is$(ref,{t:Member$serialization}))throw AssertionError('unexpected reachable reference');var n=ref.attribute.qualifiedName;
if(n==='ceylon.language::Measure.first')o.first_=i;
else if(n==='ceylon.language::Measure.size')o.size_=i;
else Range.ser$get$(ref,o,i);};Measure.ser$refs$=function(o){var a=Range.ser$refs$(o);a.push(MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$getFirst)),MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$getSize)));return a;};var $vj,$vk,$vr;function measure($wt,$wu,$kp09nw$){return ($wv=(($wu<=0)?empty():null),nn$($wv)?$wv:Measure($wt,$wu,{Element$Measure:$kp09nw$.Element$measure}));};measure.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Range,a:{Element$Range:'Element$measure'}},{t:Empty}]},ps:[{nm:'first',mt:'prm',$t:'Element$measure'},{nm:'size',mt:'prm',$t:{t:Integer}}],tp:{Element$measure:{sts:[{t:Enumerable,a:{Other$Enumerable:'Element$measure'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:measure')];},d:['$','measure']};};
ex$.measure=measure;var $wv;function Obtainable(obtainable$){Usable(obtainable$);}
Obtainable.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:Usable}],pa:1,an:function(){return[doc$($CCMM$,'$:Obtainable'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Destroyable)].$sa$({t:InterfaceDeclaration$meta$declaration})),tagged(["Basic types"].$sa$({t:$_String}))];},d:['$','Obtainable']};};
ex$.Obtainable=Obtainable;function $init$Obtainable(){if(Obtainable.$$===undefined){initTypeProtoI(Obtainable,'ceylon.language::Obtainable',$init$Usable());
(function(obtainable$){obtainable$.obtain={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:Obtainable,pa:5,an:function(){return[doc$($CCMM$,'$:Obtainable:$m:obtain'),$_throws("AssertionError","if an illegal state is detected")];},d:['$','Obtainable','$m','obtain']};}};obtainable$.release={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'error',mt:'prm',$t:{t:'u',l:[{t:Null},{t:Throwable}]}}],$cont:Obtainable,pa:5,an:function(){return[doc$($CCMM$,'$:Obtainable:$m:release'),$_throws("AssertionError","if an illegal state is detected")];},d:['$','Obtainable','$m','release']};}};})(Obtainable.$$.prototype);}
return Obtainable;}
ex$.$init$Obtainable=$init$Obtainable;$init$Obtainable();function OptionalAnnotation($$targs$$,optionalAnnotation$){set_type_args(optionalAnnotation$,$$targs$$,OptionalAnnotation);ConstrainedAnnotation({Values$ConstrainedAnnotation:mut$([{t:Null},$$targs$$.Value$OptionalAnnotation]),ProgramElement$ConstrainedAnnotation:$$targs$$.ProgramElement$OptionalAnnotation,Value$ConstrainedAnnotation:$$targs$$.Value$OptionalAnnotation,Type$ConstrainedAnnotation:$$targs$$.Type$OptionalAnnotation},optionalAnnotation$);}
OptionalAnnotation.$crtmm$=function(){return{mod:$CCMM$,tp:{Value$OptionalAnnotation:{dv:'out',sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:'Type$OptionalAnnotation',Value$OptionalAnnotation:'Value$OptionalAnnotation',ProgramElement$OptionalAnnotation:'ProgramElement$OptionalAnnotation'}}]},ProgramElement$OptionalAnnotation:{dv:'in',sts:[{t:Annotated}],def:{t:Annotated}},Type$OptionalAnnotation:{dv:'out',def:{t:Anything}}},sts:[{t:ConstrainedAnnotation,a:{Values$ConstrainedAnnotation:{t:'u',l:[{t:Null},'Value$OptionalAnnotation']},ProgramElement$ConstrainedAnnotation:'ProgramElement$OptionalAnnotation',Value$ConstrainedAnnotation:'Value$OptionalAnnotation',Type$ConstrainedAnnotation:'Type$OptionalAnnotation'}}],of:['Value$OptionalAnnotation'],pa:1,an:function(){return[doc$($CCMM$,'$:OptionalAnnotation'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Annotation)].$sa$({t:InterfaceDeclaration$meta$declaration}))];},d:['$','OptionalAnnotation']};};
ex$.OptionalAnnotation=OptionalAnnotation;function $init$OptionalAnnotation(){if(OptionalAnnotation.$$===undefined){initTypeProtoI(OptionalAnnotation,'ceylon.language::OptionalAnnotation',$init$ConstrainedAnnotation());
}
return OptionalAnnotation;}
ex$.$init$OptionalAnnotation=$init$OptionalAnnotation;$init$OptionalAnnotation();function Ordinal($$targs$$,ordinal$){set_type_args(ordinal$,$$targs$$,Ordinal);}
Ordinal.$crtmm$=function(){return{mod:$CCMM$,tp:{Other$Ordinal:{dv:'out',sts:[{t:Ordinal,a:{Other$Ordinal:'Other$Ordinal'}}]}},of:['Other$Ordinal'],pa:1,an:function(){return[doc$($CCMM$,'$:Ordinal'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Character),$init$openClass$jsint()(lmp$(ex$,'$'),Integer),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Integral),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Comparable),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Enumerable)].$sa$(mut$([{t:ClassWithInitializerDeclaration$meta$declaration},{t:InterfaceDeclaration$meta$declaration}]))),by(["Gavin"].$sa$({t:$_String})),tagged(["Numbers"].$sa$({t:$_String}))];},d:['$','Ordinal']};};
ex$.Ordinal=Ordinal;function $init$Ordinal(){if(Ordinal.$$===undefined){initTypeProtoI(Ordinal,'ceylon.language::Ordinal');
(function(ordinal$){ordinal$.$prop$getSuccessor={$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Ordinal',$cont:Ordinal,pa:5,an:function(){return[doc$($CCMM$,'$:Ordinal:$at:successor')];},d:['$','Ordinal','$at','successor']};}};ordinal$.$prop$getPredecessor={$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Ordinal',$cont:Ordinal,pa:5,an:function(){return[doc$($CCMM$,'$:Ordinal:$at:predecessor')];},d:['$','Ordinal','$at','predecessor']};}};})(Ordinal.$$.prototype);}
return Ordinal;}
ex$.$init$Ordinal=$init$Ordinal;$init$Ordinal();function OverflowException($ww,overflowException$){$init$OverflowException();
if(overflowException$===undefined)overflowException$=new OverflowException.$$;
if($ww===undefined){$ww=$init$OverflowException().$defs$message(overflowException$);}
overflowException$.$ww_=$ww;Exception($ww,undefined,overflowException$);return overflowException$;}
OverflowException.$defs$message=function(overflowException$){return "Numeric overflow"};OverflowException.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Exception},ps:[{nm:'message',mt:'prm',def:1,$t:{t:$_String}}],pa:1,an:function(){return[doc$($CCMM$,'$:OverflowException')];},d:['$','OverflowException']};};
ex$.OverflowException=OverflowException;function $init$OverflowException(){if(OverflowException.$$===undefined){initTypeProto(OverflowException,'ceylon.language::OverflowException',$init$Exception());
(function(overflowException$){atr$(overflowException$,'$ww',function(){return this.$ww_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OverflowException,d:['$','OverflowException','$at','message$zh6xok']};});})(OverflowException.$$.prototype);}
return OverflowException;}
ex$.$init$OverflowException=$init$OverflowException;$init$OverflowException();function Range($$targs$$,range$){$init$Range();
if(range$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language::Range"),'?','?')
set_type_args(range$,$$targs$$);
$_Object(range$);Sequence({Element$Sequence:$$targs$$.Element$Range/*ORALE!Element inv pero Element var*/},range$);return range$;}
Range.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],tp:{Element$Range:{sts:[{t:Enumerable,a:{Other$Enumerable:'Element$Range'}}]}},sts:[{t:Sequence,a:{Element$Sequence:'Element$Range'}}],of:[{t:Span,a:{Element$Span:'Element$Range'}},{t:Measure,a:{Element$Measure:'Element$Range'}}],pa:2321,an:function(){return[doc$($CCMM$,'$:Range'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),span),$init$OpenFunction$jsint()(lmp$(ex$,'$'),measure)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Sequences"].$sa$({t:$_String}))];},d:['$','Range']};};
ex$.Range=Range;function $init$Range(){if(Range.$$===undefined){initTypeProto(Range,'ceylon.language::Range',$init$$_Object(),$init$Sequence());
(function(range$){range$.containsElement={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Range'}],$cont:Range,pa:5,an:function(){return[doc$($CCMM$,'$:Range:$m:containsElement')];},d:['$','Range','$m','containsElement']};}};range$.includesRange={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'range',mt:'prm',$t:{t:Range,a:{Element$Range:'Element$Range'}}}],$cont:Range,pa:5,an:function(){return[doc$($CCMM$,'$:Range:$m:includesRange')];},d:['$','Range','$m','includesRange']};}};range$.contains=function($wx){var range$=this;return function(){var $wy;if(is$(($wy=$wx),range$.$$targs$$.Element$Range))return range$.containsElement($wy);else return false}();};range$.shifted={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Range,a:{Element$Range:'Element$Range'}},ps:[{nm:'shift',mt:'prm',$t:{t:Integer}}],$cont:Range,pa:5,an:function(){return[doc$($CCMM$,'$:Range:$m:shifted')];},d:['$','Range','$m','shifted']};}};range$.$prop$getIncreasing={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Range,pa:5,an:function(){return[doc$($CCMM$,'$:Range:$at:increasing')];},d:['$','Range','$at','increasing']};}};range$.$prop$getDecreasing={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Range,pa:5,an:function(){return[doc$($CCMM$,'$:Range:$at:decreasing')];},d:['$','Range','$at','decreasing']};}};atr$(range$,'coalesced',function(){var range$=this;return range$},undefined,function(){return{mod:$CCMM$,$t:{t:Range,a:{Element$Range:'Element$Range'}},$cont:Range,pa:3,an:function(){return[doc$($CCMM$,'$:Range:$at:coalesced')];},d:['$','Range','$at','coalesced']};});})(Range.$$.prototype);}
return Range;}
ex$.$init$Range=$init$Range;$init$Range();Range.inst$$=function($x0){var range$=new Range.$$;
set_type_args(range$,{Element$Range:$x0.$$targs$$.Type$Class.a.Element$Range});
set_type_args(range$,{Element$Sequence:range$.$$targs$$.Element$Range,Element$Sequential:range$.$$targs$$.Element$Range,Element$List:range$.$$targs$$.Element$Range,Element$Collection:range$.$$targs$$.Element$Range,Element$Iterable:range$.$$targs$$.Element$Range,Absent$Iterable:{t:Null},Element$Category:{t:$_Object},Key$Correspondence:{t:Integer},Item$Correspondence:range$.$$targs$$.Element$Range,Element$Ranged:range$.$$targs$$.Element$Range,Subrange$Ranged:{t:List,a:{Element$List:range$.$$targs$$.Element$Range/*ORALE!Element inv pero Element var*/}},Index$Ranged:{t:Integer}});
return range$;};Range.ser$get$=function(ref,o){throw new TypeError('unknown attribute');};Range.ser$set$=function(ref,o,i){if(!is$(ref,{t:Member$serialization}))throw AssertionError('unexpected reachable reference');
throw new TypeError('unknown attribute');};Range.ser$refs$=function(o){return [];};function Ranged($$targs$$,ranged$){set_type_args(ranged$,$$targs$$,Ranged);Iterable({Absent$Iterable:{t:Null},Element$Iterable:$$targs$$.Element$Ranged},ranged$);}
Ranged.$crtmm$=function(){return{mod:$CCMM$,tp:{Index$Ranged:{dv:'in'},Element$Ranged:{dv:'out'},Subrange$Ranged:{dv:'out',sts:[{t:Ranged,a:{Subrange$Ranged:'Subrange$Ranged',Element$Ranged:'Element$Ranged',Index$Ranged:'Index$Ranged'}}]}},sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Ranged'}}],of:['Subrange$Ranged'],pa:1,an:function(){return[doc$($CCMM$,'$:Ranged'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),List),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Sequence),$init$openClass$jsint()(lmp$(ex$,'$'),$_String)].$sa$(mut$([{t:InterfaceDeclaration$meta$declaration},{t:ClassWithInitializerDeclaration$meta$declaration}])))];},d:['$','Ranged']};};
ex$.Ranged=Ranged;function $init$Ranged(){if(Ranged.$$===undefined){initTypeProtoI(Ranged,'ceylon.language::Ranged',$init$Iterable());
(function(ranged$){ranged$.span={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Subrange$Ranged',ps:[{nm:'from',mt:'prm',$t:'Index$Ranged'},{nm:'to',mt:'prm',$t:'Index$Ranged'}],$cont:Ranged,pa:5,an:function(){return[doc$($CCMM$,'$:Ranged:$m:span')];},d:['$','Ranged','$m','span']};}};ranged$.spanFrom={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Subrange$Ranged',ps:[{nm:'from',mt:'prm',$t:'Index$Ranged'}],$cont:Ranged,pa:5,an:function(){return[doc$($CCMM$,'$:Ranged:$m:spanFrom')];},d:['$','Ranged','$m','spanFrom']};}};ranged$.spanTo={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Subrange$Ranged',ps:[{nm:'to',mt:'prm',$t:'Index$Ranged'}],$cont:Ranged,pa:5,an:function(){return[doc$($CCMM$,'$:Ranged:$m:spanTo')];},d:['$','Ranged','$m','spanTo']};}};ranged$.measure={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Subrange$Ranged',ps:[{nm:'from',mt:'prm',$t:'Index$Ranged'},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Ranged,pa:5,an:function(){return[doc$($CCMM$,'$:Ranged:$m:measure')];},d:['$','Ranged','$m','measure']};}};})(Ranged.$$.prototype);}
return Ranged;}
ex$.$init$Ranged=$init$Ranged;$init$Ranged();function Resource(resource$){resource$.textContent$defs$encoding=function($x1){return "UTF-8";};}
Resource.$crtmm$=function(){return{mod:$CCMM$,pa:1,an:function(){return[doc$($CCMM$,'$:Resource'),by(["Enrique Zamudio"].$sa$({t:$_String})),see([$init$OpenFunction$jsint()(lmp$(ex$,'ceylon.language.meta.declaration'),$init$Module$meta$declaration().$$.prototype.resourceByPath)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Environment"].$sa$({t:$_String}))];},d:['$','Resource']};};
ex$.Resource=Resource;function $init$Resource(){if(Resource.$$===undefined){initTypeProtoI(Resource,'ceylon.language::Resource');
(function(resource$){atr$(resource$,'name',function(){var resource$=this;var $x2=resource$.uri.lastOccurrence(Character(47,true));var $x3;if(nn$(($x3=$x2))){return resource$.uri.spanFrom($x3.plus(1));}
function $x4(){return $x2;}
return resource$.uri;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Resource,pa:9,an:function(){return[doc$($CCMM$,'$:Resource:$at:name')];},d:['$','Resource','$at','name']};});resource$.$prop$getSize={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Resource,pa:5,an:function(){return[doc$($CCMM$,'$:Resource:$at:size')];},d:['$','Resource','$at','size']};}};resource$.$prop$getUri={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Resource,pa:5,an:function(){return[doc$($CCMM$,'$:Resource:$at:uri')];},d:['$','Resource','$at','uri']};}};resource$.textContent={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'encoding',mt:'prm',def:1,$t:{t:$_String}}],$cont:Resource,pa:5,an:function(){return[doc$($CCMM$,'$:Resource:$m:textContent')];},d:['$','Resource','$m','textContent']};}};atr$(resource$,'string',function(){var resource$=this;return className(resource$).plus("[").plus(resource$.uri).plus("]");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Resource,pa:3,d:['$','Resource','$at','string']};});})(Resource.$$.prototype);}
return Resource;}
ex$.$init$Resource=$init$Resource;$init$Resource();function SearchableList($$targs$$,searchableList$){set_type_args(searchableList$,$$targs$$,SearchableList);List({Element$List:$$targs$$.Element$SearchableList/*ORALE!Element inv pero Element var*/},searchableList$);}
SearchableList.$crtmm$=function(){return{mod:$CCMM$,tp:{Element$SearchableList:{}},sts:[{t:List,a:{Element$List:'Element$SearchableList'}}],pa:1,an:function(){return[doc$($CCMM$,'$:SearchableList'),see([$init$openClass$jsint()(lmp$(ex$,'$'),$_String),$init$openClass$jsint()(lmp$(ex$,'$'),$_Array)].$sa$(mut$([{t:ClassWithInitializerDeclaration$meta$declaration},{t:ClassWithConstructorsDeclaration$meta$declaration}])))];},d:['$','SearchableList']};};
ex$.SearchableList=SearchableList;function $init$SearchableList(){if(SearchableList.$$===undefined){initTypeProtoI(SearchableList,'ceylon.language::SearchableList',$init$List());
(function(searchableList$){searchableList$.occursAt=function($x5,$x6){var searchableList$=this;return function(){var $x7=searchableList$.getFromFirst($x5);return function(){var $x8,$x9;if(nn$(($x8=$x6))&&nn$(($x9=$x7)))return $x9.equals($x8);else return ((nn$($x6)).valueOf()==(nn$($x7)).valueOf())}();}();};searchableList$.occursAt.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'element',mt:'prm',$t:'Element$SearchableList'}],$cont:SearchableList,pa:9,an:function(){return[doc$($CCMM$,'$:SearchableList:$m:occursAt')];},d:['$','SearchableList','$m','occursAt']};};searchableList$.occurrences$defs$from=function($xa,$xb,$xc){return 0;};searchableList$.occurrences$defs$length=function($xa,$xb,$xc){var searchableList$=this;return searchableList$.size.minus($xb);};searchableList$.occurrences=function($xa,$xb,$xc){var searchableList$=this;if($xb===undefined){$xb=(0);}
if($xc===undefined){$xc=searchableList$.size.minus($xb);}
return function(){function $xd($$targs$$){var $xd$=new $xd.$$;$xd$.outer$=searchableList$;$xd$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}},$xd$);$xd$.$xe_=searchableList$.size;$xd$.$prop$get$xe={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.occurrences,d:['$','SearchableList','$m','occurrences','$at','len$wigr3h']};}};$xd$.$prop$get$xe.get=function(){return $xe};$xd$.$xf_=($xg=(($xb.plus($xc)>$xd$.$xe)?$xd$.$xe:null),nn$($xg)?$xg:$xb.plus($xc));$xd$.$prop$get$xf={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.occurrences,d:['$','SearchableList','$m','occurrences','$at','max$whrwdy']};}};$xd$.$prop$get$xf.get=function(){return $xf};var $xg;return $xd$;};$xd.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:searchableList$.occurrences,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}}}],d:['$','SearchableList','$m','occurrences']};};function $init$$xd(){if($xd.$$===undefined){initTypeProto($xd,'ceylon.language::SearchableList.anonymous#0',Basic,$init$Iterable());
(function($xd$){atr$($xd$,'$xe',function(){return this.$xe_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.occurrences,d:['$','SearchableList','$m','occurrences','$at','len$wigr3h']};});atr$($xd$,'$xf',function(){return this.$xf_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.occurrences,d:['$','SearchableList','$m','occurrences','$at','max$whrwdy']};});$xd$.iterator=function(){var $xd$=this;return function(){function $xh($$targs$$){var $xh$=new $xh.$$;$xh$.outer$=$xd$;$xh$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:Integer}},$xh$);$xh$.$xi_=$xb;$xh$.$prop$get$xi={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.occurrences,pa:1024,d:['$','SearchableList','$m','occurrences','$at','index$1r6deb']};}};$xh$.$prop$get$xi.get=function(){return $xi};return $xh$;};$xh.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:searchableList$.occurrences,sts:[{t:Iterator,a:{Element$Iterator:{t:Integer}}}],d:['$','SearchableList','$m','occurrences']};};function $init$$xh(){if($xh.$$===undefined){initTypeProto($xh,'ceylon.language::SearchableList.anonymous#0.anonymous#1',Basic,$init$Iterator());
(function($xh$){atr$($xh$,'$xi',function(){return this.$xi_;},function($xj){return this.$xi_=$xj;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.occurrences,pa:1024,d:['$','SearchableList','$m','occurrences','$at','index$1r6deb']};});$xh$.next=function(){var $xh$=this;while(($xh$.$xi<$xd$.$xf)){if(searchableList$.occursAt($xh$.$xi,$xa)){return ($xk=$xh$.$xi,$xh$.$xi=$xk.successor,$xk);var $xk;}
else{($xl=$xh$.$xi,$xh$.$xi=$xl.successor,$xl);var $xl;}
}
return finished();};$xh$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Integer},{t:Finished}]},ps:[],$cont:searchableList$.occurrences,pa:3,d:['$','SearchableList','$m','occurrences','$m','next']};};})($xh.$$.prototype);}
return $xh;}
$xd$.$init$$xh=$init$$xh;$init$$xh();return $xh();}();};atr$($xd$,'size',function(){var $xd$=this;var $xn=(0);var $xp=$xb,$xq=$xd$.$xf.minus($xb);for(var $xr=0;$xr<$xq;$xr++,($xp=$xp.successor)){if(searchableList$.occursAt($xp,$xa)){($xs=$xn,$xn=$xs.successor,$xs);var $xs;}
}return $xn;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.occurrences,pa:3,d:['$','SearchableList','$m','occurrences','$at','size']};});atr$($xd$,'empty',function(){var $xd$=this;return searchableList$.occurs($xa,$xb,$xc);},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:searchableList$.occurrences,pa:3,d:['$','SearchableList','$m','occurrences','$at','empty']};});atr$($xd$,'first',function(){var $xd$=this;return searchableList$.firstOccurrence($xa,$xb,$xc);},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:searchableList$.occurrences,pa:3,d:['$','SearchableList','$m','occurrences','$at','first']};});atr$($xd$,'last',function(){var $xd$=this;return searchableList$.lastOccurrence($xa,$xb,$xc);},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:searchableList$.occurrences,pa:3,d:['$','SearchableList','$m','occurrences','$at','last']};});})($xd.$$.prototype);}
return $xd;}
searchableList$.$init$$xd=$init$$xd;$init$$xd();return $xd();}();};searchableList$.occurrences.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}}},ps:[{nm:'element',mt:'prm',$t:'Element$SearchableList'},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:SearchableList,pa:9,an:function(){return[doc$($CCMM$,'$:SearchableList:$m:occurrences')];},d:['$','SearchableList','$m','occurrences']};};searchableList$.occurs$defs$from=function($xu,$xv,$xw){return 0;};searchableList$.occurs$defs$length=function($xu,$xv,$xw){var searchableList$=this;return searchableList$.size.minus($xv);};searchableList$.occurs=function($xu,$xv,$xw){var searchableList$=this;if($xv===undefined){$xv=(0);}
if($xw===undefined){$xw=searchableList$.size.minus($xv);}
return nn$(searchableList$.firstOccurrence($xu,$xv,$xw));};searchableList$.occurs.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$SearchableList'},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:SearchableList,pa:9,an:function(){return[doc$($CCMM$,'$:SearchableList:$m:occurs')];},d:['$','SearchableList','$m','occurs']};};searchableList$.firstOccurrence$defs$from=function($xx,$xy,$xz){return 0;};searchableList$.firstOccurrence$defs$length=function($xx,$xy,$xz){var searchableList$=this;return searchableList$.size.minus($xy);};searchableList$.firstOccurrence=function($xx,$xy,$xz){var searchableList$=this;if($xy===undefined){$xy=(0);}
if($xz===undefined){$xz=searchableList$.size.minus($xy);}
var $y1;for(var $y0=measure($xy,$xz,{Element$measure:{t:Integer}}).iterator();($y1=$y0.next())!==finished();){if(searchableList$.occursAt($y1,$xx)){return $y1;}
}
if(finished()===$y1){return null;}
};searchableList$.firstOccurrence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'element',mt:'prm',$t:'Element$SearchableList'},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:SearchableList,pa:9,an:function(){return[doc$($CCMM$,'$:SearchableList:$m:firstOccurrence')];},d:['$','SearchableList','$m','firstOccurrence']};};searchableList$.lastOccurrence$defs$from=function($y2,$y3,$y4){return 0;};searchableList$.lastOccurrence$defs$length=function($y2,$y3,$y4){var searchableList$=this;return searchableList$.size.minus($y3);};searchableList$.lastOccurrence=function($y2,$y3,$y4){var searchableList$=this;if($y3===undefined){$y3=(0);}
if($y4===undefined){$y4=searchableList$.size.minus($y3);}
var $y6;for(var $y5=measure(searchableList$.size.minus($y4).minus($y3),$y4,{Element$measure:{t:Integer}}).reversed.iterator();($y6=$y5.next())!==finished();){if(searchableList$.occursAt($y6,$y2)){return $y6;}
}
if(finished()===$y6){return null;}
};searchableList$.lastOccurrence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'element',mt:'prm',$t:'Element$SearchableList'},{nm:'from',mt:'prm',def:1,$t:{t:Integer}},{nm:'length',mt:'prm',def:1,$t:{t:Integer}}],$cont:SearchableList,pa:9,an:function(){return[doc$($CCMM$,'$:SearchableList:$m:lastOccurrence')];},d:['$','SearchableList','$m','lastOccurrence']};};searchableList$.includesAt=function($y7,$y8){var searchableList$=this;if(($y9=$y7,$y9.compare((0))!==smaller()&&$y9.compare(searchableList$.size.minus($y8.size))!==larger())){var $ya=$y7;var $yc;for(var $yb=$y8.iterator();($yc=$yb.next())!==finished();){var $yd;if(nn$(($yd=$yc))){if(!searchableList$.occursAt($ya,$yd)){return false;}
}
else{var $ye;asrt$((is$(($ye=null),searchableList$.$$targs$$.Element$SearchableList)),"Assertion failed: \'is Element null\' at SearchableList.ceylon (183:27-183:43)",'183:20-183:44','SearchableList.ceylon');
if(!searchableList$.occursAt($ya,null)){return false;}
}
($yf=$ya,$ya=$yf.successor,$yf);var $yf;}
if(finished()===$yc){return true;}
}
else{return false;}
};searchableList$.includesAt.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:'Element$SearchableList'}}}],$cont:SearchableList,pa:9,an:function(){return[doc$($CCMM$,'$:SearchableList:$m:includesAt')];},d:['$','SearchableList','$m','includesAt']};};searchableList$.inclusions$defs$from=function($yg,$yh){return 0;};searchableList$.inclusions=function($yg,$yh){var searchableList$=this;if($yh===undefined){$yh=(0);}
return function(){function $yi($$targs$$){var $yi$=new $yi.$$;$yi$.outer$=searchableList$;$yi$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}},$yi$);$yi$.$yj_=searchableList$.size;$yi$.$prop$get$yj={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.inclusions,d:['$','SearchableList','$m','inclusions','$at','len$cmsvse']};}};$yi$.$prop$get$yj.get=function(){return $yj};return $yi$;};$yi.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:searchableList$.inclusions,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}}}],d:['$','SearchableList','$m','inclusions']};};function $init$$yi(){if($yi.$$===undefined){initTypeProto($yi,'ceylon.language::SearchableList.anonymous#2',Basic,$init$Iterable());
(function($yi$){atr$($yi$,'$yj',function(){return this.$yj_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.inclusions,d:['$','SearchableList','$m','inclusions','$at','len$cmsvse']};});$yi$.iterator=function(){var $yi$=this;return function(){function $yk($$targs$$){var $yk$=new $yk.$$;$yk$.outer$=$yi$;$yk$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:Integer}},$yk$);$yk$.$yl_=$yi$.$yj.plus(1).minus($yg.size);$yk$.$prop$get$yl={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.inclusions,d:['$','SearchableList','$m','inclusions','$at','max$dhhm6q']};}};$yk$.$prop$get$yl.get=function(){return $yl};$yk$.$ym_=$yh;$yk$.$prop$get$ym={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.inclusions,pa:1024,d:['$','SearchableList','$m','inclusions','$at','index$9yr1lc']};}};$yk$.$prop$get$ym.get=function(){return $ym};return $yk$;};$yk.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:searchableList$.inclusions,sts:[{t:Iterator,a:{Element$Iterator:{t:Integer}}}],d:['$','SearchableList','$m','inclusions']};};function $init$$yk(){if($yk.$$===undefined){initTypeProto($yk,'ceylon.language::SearchableList.anonymous#2.anonymous#3',Basic,$init$Iterator());
(function($yk$){atr$($yk$,'$yl',function(){return this.$yl_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.inclusions,d:['$','SearchableList','$m','inclusions','$at','max$dhhm6q']};});atr$($yk$,'$ym',function(){return this.$ym_;},function($yn){return this.$ym_=$yn;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.inclusions,pa:1024,d:['$','SearchableList','$m','inclusions','$at','index$9yr1lc']};});$yk$.next=function(){var $yk$=this;while(($yk$.$ym<$yk$.$yl)){if(searchableList$.includesAt($yk$.$ym,$yg)){return ($yo=$yk$.$ym,$yk$.$ym=$yo.successor,$yo);var $yo;}
else{($yp=$yk$.$ym,$yk$.$ym=$yp.successor,$yp);var $yp;}
}
return finished();};$yk$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Integer},{t:Finished}]},ps:[],$cont:searchableList$.inclusions,pa:3,d:['$','SearchableList','$m','inclusions','$m','next']};};})($yk.$$.prototype);}
return $yk;}
$yi$.$init$$yk=$init$$yk;$init$$yk();return $yk();}();};atr$($yi$,'size',function(){var $yi$=this;var $yr=(0);var $yt=$yh,$yu=$yi$.$yj.minus($yh).plus(1).minus($yg.size);for(var $yv=0;$yv<$yu;$yv++,($yt=$yt.successor)){if(searchableList$.includesAt($yt,$yg)){($yw=$yr,$yr=$yw.successor,$yw);var $yw;}
}return $yr;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:searchableList$.inclusions,pa:3,d:['$','SearchableList','$m','inclusions','$at','size']};});atr$($yi$,'empty',function(){var $yi$=this;return searchableList$.includes($yg,$yh);},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:searchableList$.inclusions,pa:3,d:['$','SearchableList','$m','inclusions','$at','empty']};});atr$($yi$,'first',function(){var $yi$=this;return searchableList$.firstInclusion($yg,$yh);},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:searchableList$.inclusions,pa:3,d:['$','SearchableList','$m','inclusions','$at','first']};});atr$($yi$,'last',function(){var $yi$=this;return searchableList$.lastInclusion($yg,$yh);},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:searchableList$.inclusions,pa:3,d:['$','SearchableList','$m','inclusions','$at','last']};});})($yi.$$.prototype);}
return $yi;}
searchableList$.$init$$yi=$init$$yi;$init$$yi();return $yi();}();};searchableList$.inclusions.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}}},ps:[{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:'Element$SearchableList'}}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}}],$cont:SearchableList,pa:9,an:function(){return[doc$($CCMM$,'$:SearchableList:$m:inclusions')];},d:['$','SearchableList','$m','inclusions']};};searchableList$.includes$defs$from=function($yy,$yz){return 0;};searchableList$.includes=function($yy,$yz){var searchableList$=this;if($yz===undefined){$yz=(0);}
return nn$(searchableList$.firstInclusion($yy,$yz));};searchableList$.includes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:'Element$SearchableList'}}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}}],$cont:SearchableList,pa:9,an:function(){return[doc$($CCMM$,'$:SearchableList:$m:includes')];},d:['$','SearchableList','$m','includes']};};searchableList$.firstInclusion$defs$from=function($z0,$z1){return 0;};searchableList$.firstInclusion=function($z0,$z1){var searchableList$=this;if($z1===undefined){$z1=(0);}
var $z3;for(var $z2=measure($z1,searchableList$.size.minus($z1).plus(1).minus($z0.size),{Element$measure:{t:Integer}}).iterator();($z3=$z2.next())!==finished();){if(searchableList$.includesAt($z3,$z0)){return $z3;}
}
if(finished()===$z3){return null;}
};searchableList$.firstInclusion.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:'Element$SearchableList'}}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}}],$cont:SearchableList,pa:9,an:function(){return[doc$($CCMM$,'$:SearchableList:$m:firstInclusion')];},d:['$','SearchableList','$m','firstInclusion']};};searchableList$.lastInclusion$defs$from=function($z4,$z5){return 0;};searchableList$.lastInclusion=function($z4,$z5){var searchableList$=this;if($z5===undefined){$z5=(0);}
var $z7;for(var $z6=measure((0),searchableList$.size.minus($z5).plus(1).minus($z4.size),{Element$measure:{t:Integer}}).reversed.iterator();($z7=$z6.next())!==finished();){if(searchableList$.includesAt($z7,$z4)){return $z7;}
}
if(finished()===$z7){return null;}
};searchableList$.lastInclusion.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'sublist',mt:'prm',$t:{t:List,a:{Element$List:'Element$SearchableList'}}},{nm:'from',mt:'prm',def:1,$t:{t:Integer}}],$cont:SearchableList,pa:9,an:function(){return[doc$($CCMM$,'$:SearchableList:$m:lastInclusion')];},d:['$','SearchableList','$m','lastInclusion']};};})(SearchableList.$$.prototype);}
return SearchableList;}
ex$.$init$SearchableList=$init$SearchableList;$init$SearchableList();function Sequence($$targs$$,sequence$){set_type_args(sequence$,$$targs$$,Sequence);Sequential({Element$Sequential:$$targs$$.Element$Sequence},sequence$);Iterable({Absent$Iterable:{t:Nothing},Element$Iterable:$$targs$$.Element$Sequence},sequence$);}
Sequence.$crtmm$=function(){return{mod:$CCMM$,tp:{Element$Sequence:{dv:'out',def:{t:Anything}}},sts:[{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Element$Sequence'}}],pa:17,an:function(){return[doc$($CCMM$,'$:Sequence'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Empty),$init$openClass$jsint()(lmp$(ex$,'$'),ArraySequence),$init$openClass$jsint()(lmp$(ex$,'$'),Range),$init$openClass$jsint()(lmp$(ex$,'$'),Tuple),$init$openClass$jsint()(lmp$(ex$,'$'),Singleton)].$sa$(mut$([{t:InterfaceDeclaration$meta$declaration},{t:ClassWithInitializerDeclaration$meta$declaration}]))),by(["Gavin"].$sa$({t:$_String})),tagged(["Sequences"].$sa$({t:$_String}))];},d:['$','Sequence']};};
ex$.Sequence=Sequence;function $init$Sequence(){if(Sequence.$$===undefined){initTypeProtoI(Sequence,'ceylon.language::Sequence',$init$Sequential(),$init$Iterable());
(function(sequence$){sequence$.$prop$getFirst={$crtmm$:function(){return{mod:$CCMM$,$t:'Element$Sequence',$cont:Sequence,pa:7,an:function(){return[doc$($CCMM$,'$:Sequence:$at:first')];},d:['$','Sequence','$at','first']};}};sequence$.$prop$getLast={$crtmm$:function(){return{mod:$CCMM$,$t:'Element$Sequence',$cont:Sequence,pa:7,an:function(){return[doc$($CCMM$,'$:Sequence:$at:last')];},d:['$','Sequence','$at','last']};}};atr$(sequence$,'empty',function(){var sequence$=this;return false},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Sequence,pa:3,an:function(){return[doc$($CCMM$,'$:Sequence:$at:empty')];},d:['$','Sequence','$at','empty']};});sequence$.$prop$getSize={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Sequence,pa:7,an:function(){return[doc$($CCMM$,'$:Sequence:$at:size')];},d:['$','Sequence','$at','size']};}};atr$(sequence$,'lastIndex',function(){var sequence$=this;return sequence$.size.minus(1)},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Sequence,pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$at:lastIndex'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Sequence().$$.prototype.$prop$getSize)].$sa$({t:ValueDeclaration$meta$declaration}))];},d:['$','Sequence','$at','lastIndex']};});atr$(sequence$,'keys',function(){var sequence$=this;return sequence$.indexes()},undefined,function(){return{mod:$CCMM$,$t:{t:Range,a:{Element$Range:{t:Integer}}},$cont:Sequence,pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$at:keys')];},d:['$','Sequence','$at','keys']};});sequence$.indexes=function(){var sequence$=this;return span((0),sequence$.lastIndex,{Element$span:{t:Integer}});};sequence$.indexes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Range,a:{Element$Range:{t:Integer}}},ps:[],$cont:Sequence,pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$m:indexes')];},d:['$','Sequence','$m','indexes']};};sequence$.sequence=function(){var sequence$=this;return sequence$;};sequence$.sequence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Element$Sequence'}},ps:[],$cont:Sequence,pa:11,an:function(){return[doc("This nonempty sequence.")];},d:['$','Sequence','$m','sequence']};};sequence$.$prop$getRest={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},$cont:Sequence,pa:7,an:function(){return[doc$($CCMM$,'$:Sequence:$at:rest')];},d:['$','Sequence','$at','rest']};}};atr$(sequence$,'reversed',function(){var sequence$=this;return sequence$.Reverse$Sequence()},undefined,function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Element$Sequence'}},$cont:Sequence,pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$at:reversed')];},d:['$','Sequence','$at','reversed']};});sequence$.repeat=function($zg){var sequence$=this;return ($zh=(($zg>0)?sequence$.Repeat$Sequence($zg):null),nn$($zh)?$zh:empty());};sequence$.repeat.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},ps:[{nm:'times',mt:'prm',$t:{t:Integer}}],$cont:Sequence,pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$m:repeat')];},d:['$','Sequence','$m','repeat']};};sequence$.clone=function(){var sequence$=this;return sequence$;};sequence$.clone.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Element$Sequence'}},ps:[],$cont:Sequence,pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$m:clone')];},d:['$','Sequence','$m','clone']};};sequence$.$_sort=function($zi){var sequence$=this;var $zj=$_Array(sequence$,{Element$Array:sequence$.$$targs$$.Element$Sequence});$zj.sortInPlace(JsCallable(sequence$,$zi));return ArraySequence($zj,{Element$ArraySequence:sequence$.$$targs$$.Element$Sequence});};sequence$.$_sort.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Element$Sequence'}},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Element$Sequence','Element$Sequence']}}},$rt:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:'Element$Sequence'},{nm:'y',mt:'prm',$t:'Element$Sequence'}]}],$cont:Sequence,pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$m:sort')];},d:['$','Sequence','$m','sort']};};sequence$.collect=function($zk,$d7sfjl$){var sequence$=this;function $zl($$targs$$){var $zl$=new $zl.$$;$zl$.outer$=sequence$;$zl$.$$targs$$=$$targs$$;$_Object($zl$);List({Element$List:$d7sfjl$.Result$collect/*ORALE!Result inv pero Element var*/},$zl$);$zl$.$zn_=sequence$.size;return $zl$;};$zl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},$cont:sequence$.collect,sts:[{t:List,a:{Element$List:'Result$collect'}}],d:['$','Sequence','$m','collect','$o','list$ap4q1c']};};function $init$$zl(){if($zl.$$===undefined){initTypeProto($zl,'ceylon.language::Sequence.list',$init$$_Object(),$init$List());
(function($zl$){atr$($zl$,'lastIndex',function(){var $zl$=this;return sequence$.lastIndex;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:$zl,pa:3,d:['$','Sequence','$m','collect','$o','list$ap4q1c','$at','lastIndex']};});atr$($zl$,'size',function(){return this.$zn_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$zl,pa:3,d:['$','Sequence','$m','collect','$o','list$ap4q1c','$at','size']};});$zl$.getFromFirst=function($zo){var $zl$=this;return (($zp=$zo,$zp.compare((0))!==smaller()&&$zp.compare($zl$.size)===smaller())?$zk(sequence$.$zq($zo)):null);};})($zl.$$.prototype);}
return $zl;}
sequence$.$init$$zl=$init$$zl;$init$$zl();var $zr;function $zm(){if($zr===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'list\' before it was set"),'117:8-126:8','Sequence.ceylon');if($zr===undefined){$zr=INIT$;$zr=$init$$zl()({Element$List:$d7sfjl$.Result$collect/*ORALE!Result inv pero Element var*/});$zr.$crtmm$=$zm.$crtmm$;}
return $zr;}
$zm.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$$zl()},$cont:sequence$.collect,d:['$','Sequence','$m','collect','$o','list$ap4q1b']};};$prop$get$zl=$zm;$zm();return ArraySequence($_Array($zm(),{Element$Array:$d7sfjl$.Result$collect}),{Element$ArraySequence:$d7sfjl$.Result$collect/*ORALE!Result inv pero Element var*/});};sequence$.collect.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Result$collect'}},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$collect',Arguments$Callable:{t:'T',l:['Element$Sequence']}}},$rt:'Result$collect',ps:[{nm:'element',mt:'prm',$t:'Element$Sequence'}]}],$cont:Sequence,tp:{Result$collect:{}},pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$m:collect')];},d:['$','Sequence','$m','collect']};};sequence$.withLeading=function($zs,$ryy22j$){var sequence$=this;return tpl$([$zs],sequence$);};sequence$.withLeading.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:['Other$withLeading',mkseq$('Element$Sequence',2)]},ps:[{nm:'element',mt:'prm',$t:'Other$withLeading'}],$cont:Sequence,tp:{Other$withLeading:{}},pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$m:withLeading')];},d:['$','Sequence','$m','withLeading']};};sequence$.withTrailing=function($zt,$jfp6gz$){var sequence$=this;return JoinedSequence(sequence$,Singleton($zt,{Element$Singleton:$jfp6gz$.Other$withTrailing/*ORALE!Other inv pero Element var*/}),{Element$JoinedSequence:mut$([sequence$.$$targs$$.Element$Sequence,$jfp6gz$.Other$withTrailing])});};sequence$.withTrailing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:{t:'u',l:['Element$Sequence','Other$withTrailing']}}},ps:[{nm:'element',mt:'prm',$t:'Other$withTrailing'}],$cont:Sequence,tp:{Other$withTrailing:{}},pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$m:withTrailing')];},d:['$','Sequence','$m','withTrailing']};};sequence$.append=function($zu,$he8ey3$){var sequence$=this;return function(){var $zv;if(ne$(($zv=$zu)))return JoinedSequence(sequence$,$zv,{Element$JoinedSequence:mut$([sequence$.$$targs$$.Element$Sequence,$he8ey3$.Other$append])});else return sequence$}();};sequence$.append.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:{t:'u',l:['Element$Sequence','Other$append']}}},ps:[{nm:'elements',mt:'prm',$t:{t:Sequential,a:{Element$Sequential:'Other$append'}}}],$cont:Sequence,tp:{Other$append:{}},pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$m:append')];},d:['$','Sequence','$m','append']};};sequence$.prepend=function($zw,$y6m1cd$){var sequence$=this;return function(){var $zx;if(ne$(($zx=$zw)))return JoinedSequence($zx,sequence$,{Element$JoinedSequence:mut$([$y6m1cd$.Other$prepend,sequence$.$$targs$$.Element$Sequence])});else return sequence$}();};sequence$.prepend.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:{t:'u',l:['Element$Sequence','Other$prepend']}}},ps:[{nm:'elements',mt:'prm',$t:{t:Sequential,a:{Element$Sequential:'Other$prepend'}}}],$cont:Sequence,tp:{Other$prepend:{}},pa:11,an:function(){return[doc$($CCMM$,'$:Sequence:$m:prepend')];},d:['$','Sequence','$m','prepend']};};sequence$.contains=function($zy){var sequence$=this;return sequence$.getT$all()['ceylon.language::List'].$$.prototype.contains.call(sequence$,$zy);};sequence$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:$_Object}}],$cont:Sequence,pa:11,d:['$','Sequence','$m','contains']};};sequence$.shorterThan=function($zz){var sequence$=this;return sequence$.getT$all()['ceylon.language::List'].$$.prototype.shorterThan.call(sequence$,$zz);};sequence$.shorterThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Sequence,pa:11,d:['$','Sequence','$m','shorterThan']};};sequence$.longerThan=function($100){var sequence$=this;return sequence$.getT$all()['ceylon.language::List'].$$.prototype.longerThan.call(sequence$,$100);};sequence$.longerThan.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Sequence,pa:11,d:['$','Sequence','$m','longerThan']};};sequence$.find=function($101){var sequence$=this;return sequence$.getT$all()['ceylon.language::List'].$$.prototype.find.call(sequence$,JsCallable(sequence$,$101));};sequence$.find.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Sequence']},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Sequence',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'elem',mt:'prm',$t:{t:'i',l:['Element$Sequence',{t:$_Object}]}}]}],$cont:Sequence,pa:11,d:['$','Sequence','$m','find']};};sequence$.findLast=function($102){var sequence$=this;return sequence$.getT$all()['ceylon.language::List'].$$.prototype.findLast.call(sequence$,JsCallable(sequence$,$102));};sequence$.findLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Sequence']},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Sequence',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'elem',mt:'prm',$t:{t:'i',l:['Element$Sequence',{t:$_Object}]}}]}],$cont:Sequence,pa:11,d:['$','Sequence','$m','findLast']};};sequence$.$_slice=function($103){var sequence$=this;return tpl$([sequence$.spanTo($103.minus(1)),sequence$.spanFrom($103)]);};sequence$.$_slice.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},{t:Sequential,a:{Element$Sequential:'Element$Sequence'}}]},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Sequence,pa:11,d:['$','Sequence','$m','slice']};};sequence$.measure=function($104,$105){var sequence$=this;return (($105>0)?sequence$.span($104,$104.plus($105).minus(1)):empty());};sequence$.measure.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Sequence,pa:11,d:['$','Sequence','$m','measure']};};sequence$.span=function($106,$107){var sequence$=this;if(($106<=$107)){return ((($107>=0)&&($106<=sequence$.lastIndex))?ArraySequence($_Array(sequence$.sublist($106,$107),{Element$Array:sequence$.$$targs$$.Element$Sequence}),{Element$ArraySequence:sequence$.$$targs$$.Element$Sequence}):empty());}
else{return ((($106>=0)&&($107<=sequence$.lastIndex))?ArraySequence($_Array(sequence$.sublist($107,$106).reversed,{Element$Array:sequence$.$$targs$$.Element$Sequence}),{Element$ArraySequence:sequence$.$$targs$$.Element$Sequence}):empty());}
};sequence$.span.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Sequence,pa:11,d:['$','Sequence','$m','span']};};sequence$.spanFrom=function($108){var sequence$=this;if(($108<=0)){return sequence$;}
else{if(($108<sequence$.size)){return ArraySequence($_Array(sequence$.sublistFrom($108),{Element$Array:sequence$.$$targs$$.Element$Sequence}),{Element$ArraySequence:sequence$.$$targs$$.Element$Sequence});}
else{return empty();}
}
};sequence$.spanFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:Sequence,pa:11,d:['$','Sequence','$m','spanFrom']};};sequence$.spanTo=function($109){var sequence$=this;if(($109>=sequence$.lastIndex)){return sequence$;}
else{if(($109>=0)){return ArraySequence($_Array(sequence$.sublistTo($109),{Element$Array:sequence$.$$targs$$.Element$Sequence}),{Element$ArraySequence:sequence$.$$targs$$.Element$Sequence});}
else{return empty();}
}
};sequence$.spanTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Sequence,pa:11,d:['$','Sequence','$m','spanTo']};};atr$(sequence$,'string',function(){var sequence$=this;return attrGetter(sequence$.getT$all()['ceylon.language::Sequential'],'string').call(this)},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Sequence,pa:11,d:['$','Sequence','$at','string']};});sequence$.$zq=function($10b){var sequence$=this;var $10c;if(nn$(($10c=sequence$.getFromFirst($10b)))){return $10c;}
else{var $10d;asrt$((is$(($10d=null),sequence$.$$targs$$.Element$Sequence)),"Assertion failed: \'is Element null\' at Sequence.ceylon (240:19-240:35)",'240:12-240:36','Sequence.ceylon');
return null;}
};sequence$.$zq.$crtmm$=function(){return{mod:$CCMM$,$t:'Element$Sequence',ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Sequence,d:['$','Sequence','$m','getElement$kis5ex']};};function Reverse$Sequence($10e$){$init$Reverse$Sequence();
if($10e$===undefined)$10e$=new this.Reverse$Sequence.$$;
$10e$.outer$=this;$10e$.$$targs$$={Element$Sequence:$10e$.outer$.$$targs$$.Element$Sequence};$_Object($10e$);Sequence({Element$Sequence:$10e$.outer$.$$targs$$.Element$Sequence},$10e$);return $10e$;}
Reverse$Sequence.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[],$cont:Sequence,sts:[{t:Sequence,a:{Element$Sequence:'Element$Sequence'}}],d:['$','Sequence','$c','Reverse$t1rj1v']};};function $init$Reverse$Sequence(){if(Reverse$Sequence.$$===undefined){initTypeProto(Reverse$Sequence,'ceylon.language::Sequence.Reverse',$init$$_Object(),$init$Sequence());
Sequence.Reverse$Sequence=Reverse$Sequence;
(function($10e$){atr$($10e$,'size',function(){var $10e$=this;return $10e$.outer$.size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$10e$.Reverse$Sequence,pa:3,d:['$','Sequence','$c','Reverse$t1rj1v','$at','size']};});atr$($10e$,'first',function(){var $10e$=this;return $10e$.outer$.last;},undefined,function(){return{mod:$CCMM$,$t:'Element$Sequence',$cont:$10e$.Reverse$Sequence,pa:3,d:['$','Sequence','$c','Reverse$t1rj1v','$at','first']};});atr$($10e$,'last',function(){var $10e$=this;return $10e$.outer$.first;},undefined,function(){return{mod:$CCMM$,$t:'Element$Sequence',$cont:$10e$.Reverse$Sequence,pa:3,d:['$','Sequence','$c','Reverse$t1rj1v','$at','last']};});atr$($10e$,'rest',function(){var $10e$=this;return ($10f=((($10e$.size).valueOf()==(1).valueOf())?empty():null),nn$($10f)?$10f:$10e$.outer$.span($10e$.size.minus(2),0));},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},$cont:$10e$.Reverse$Sequence,pa:3,d:['$','Sequence','$c','Reverse$t1rj1v','$at','rest']};});atr$($10e$,'reversed',function(){var $10e$=this;return $10e$.outer$;},undefined,function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Element$Sequence'}},$cont:$10e$.Reverse$Sequence,pa:3,d:['$','Sequence','$c','Reverse$t1rj1v','$at','reversed']};});$10e$.getFromFirst=function($10g){var $10e$=this;return $10e$.outer$.getFromFirst($10e$.size.minus(1).minus($10g));};$10e$.measure=function($10h,$10i){var $10e$=this;return (($10i>0)?function(){var $10j=$10e$.size.minus(1).minus($10h);return $10e$.outer$.span($10j,$10j.minus($10i).plus(1));}():empty());};$10e$.span=function($10k,$10l){var $10e$=this;return $10e$.outer$.span($10l,$10k);};$10e$.spanFrom=function($10m){var $10e$=this;return function(){var $10n=$10e$.size.minus(1);return (($10m<=$10n)?$10e$.outer$.span($10n.minus($10m),0):empty());}();};$10e$.spanTo=function($10o){var $10e$=this;return (($10o>=0)?function(){var $10p=$10e$.size.minus(1);return $10e$.outer$.span($10p,$10p.minus($10o));}():empty());};$10e$.iterator=function(){var $10e$=this;return function(){var $10q=$10e$.outer$;return function(){function $10r($$targs$$){var $10r$=new $10r.$$;$10r$.outer$=$10e$;$10r$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$10e$.outer$.$$targs$$.Element$Sequence},$10r$);$10r$.$10s_=$10q.size.minus(1);$10r$.$prop$get$10s={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$10e$.Reverse$Sequence,pa:1024,d:['$','Sequence','$c','Reverse$t1rj1v','$at','index$ad7j66']};}};$10r$.$prop$get$10s.get=function(){return $10s};return $10r$;};$10r.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$10e$.Reverse$Sequence,sts:[{t:Iterator,a:{Element$Iterator:'Element$Sequence'}}],d:['$','Sequence','$c','Reverse$t1rj1v']};};function $init$$10r(){if($10r.$$===undefined){initTypeProto($10r,'ceylon.language::Sequence.Reverse.anonymous#0',Basic,$init$Iterator());
(function($10r$){atr$($10r$,'$10s',function(){return this.$10s_;},function($10t){return this.$10s_=$10t;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$10e$.Reverse$Sequence,pa:1024,d:['$','Sequence','$c','Reverse$t1rj1v','$at','index$ad7j66']};});$10r$.next=function(){var $10r$=this;return ($10u=(($10r$.$10s<0)?finished():null),nn$($10u)?$10u:$10q.$zq(($10v=$10r$.$10s,$10r$.$10s=$10v.predecessor,$10v)));};atr$($10r$,'string',function(){var $10r$=this;return $10e$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$10e$.Reverse$Sequence,pa:3,d:['$','Sequence','$c','Reverse$t1rj1v','$at','string']};});})($10r.$$.prototype);}
return $10r;}
$10e$.$init$$10r=$init$$10r;$init$$10r();return $10r();}();}();};$10e$.Reverse$Sequence=Reverse$Sequence;})(Reverse$Sequence.$$.prototype);}
return Reverse$Sequence;}
sequence$.$init$Reverse$Sequence=$init$Reverse$Sequence;sequence$.Reverse$Sequence=Reverse$Sequence;function Repeat$Sequence($10x,$10y$){$init$Repeat$Sequence();
if($10y$===undefined)$10y$=new this.Repeat$Sequence.$$;
$10y$.outer$=this;$10y$.$$targs$$={Element$Sequence:$10y$.outer$.$$targs$$.Element$Sequence};$10y$.$10x_=$10x;$_Object($10y$);Sequence({Element$Sequence:$10y$.outer$.$$targs$$.Element$Sequence},$10y$);asrt$((($10y$.$10x>0)),"Assertion failed: \'times>0\' at Sequence.ceylon (296:15-296:23)",'296:8-296:24','Sequence.ceylon');
atr$($10y$,'last',function(){return $10y$.outer$.last;},undefined,function(){return{mod:$CCMM$,$t:'Element$Sequence',$cont:$10y$.Repeat$Sequence,pa:3,d:['$','Sequence','$c','Repeat$op9ozo','$at','last']};});atr$($10y$,'first',function(){return $10y$.outer$.first;},undefined,function(){return{mod:$CCMM$,$t:'Element$Sequence',$cont:$10y$.Repeat$Sequence,pa:3,d:['$','Sequence','$c','Repeat$op9ozo','$at','first']};});atr$($10y$,'size',function(){return $10y$.outer$.size.times($10y$.$10x);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$10y$.Repeat$Sequence,pa:3,d:['$','Sequence','$c','Repeat$op9ozo','$at','size']};});atr$($10y$,'rest',function(){return $10y$.sublistFrom(1).sequence();},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},$cont:$10y$.Repeat$Sequence,pa:3,d:['$','Sequence','$c','Repeat$op9ozo','$at','rest']};});$10y$.getFromFirst=function($10z){var sequence$=this;return function(){var $110=$10y$.outer$.size;return (($10z<$110.times($10y$.$10x))?$10y$.outer$.getFromFirst($10z.remainder($110)):null);}();};$10y$.iterator=function(){var sequence$=this;return CycledIterator($10y$.outer$,$10y$.$10x,{Element$CycledIterator:$10y$.outer$.$$targs$$.Element$Sequence});};return $10y$;}
Repeat$Sequence.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'times',mt:'prm',$t:{t:Integer}}],$cont:Sequence,sts:[{t:Sequence,a:{Element$Sequence:'Element$Sequence'}}],d:['$','Sequence','$c','Repeat$op9ozo']};};function $init$Repeat$Sequence(){if(Repeat$Sequence.$$===undefined){initTypeProto(Repeat$Sequence,'ceylon.language::Sequence.Repeat',$init$$_Object(),$init$Sequence());
Sequence.Repeat$Sequence=Repeat$Sequence;
(function($10y$){atr$($10y$,'$10x',function(){return this.$10x_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$10y$.Repeat$Sequence,d:['$','Sequence','$c','Repeat$op9ozo','$at','times$ryfnz9']};});atr$($10y$,'last',function(){var $10y$=this;return $10y$.outer$.last;},undefined,function(){return{mod:$CCMM$,$t:'Element$Sequence',$cont:$10y$.Repeat$Sequence,pa:3,d:['$','Sequence','$c','Repeat$op9ozo','$at','last']};});atr$($10y$,'first',function(){var $10y$=this;return $10y$.outer$.first;},undefined,function(){return{mod:$CCMM$,$t:'Element$Sequence',$cont:$10y$.Repeat$Sequence,pa:3,d:['$','Sequence','$c','Repeat$op9ozo','$at','first']};});atr$($10y$,'size',function(){var $10y$=this;return $10y$.outer$.size.times($10y$.$10x);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$10y$.Repeat$Sequence,pa:3,d:['$','Sequence','$c','Repeat$op9ozo','$at','size']};});atr$($10y$,'rest',function(){var $10y$=this;return $10y$.sublistFrom(1).sequence();},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequence'}},$cont:$10y$.Repeat$Sequence,pa:3,d:['$','Sequence','$c','Repeat$op9ozo','$at','rest']};});$10y$.getFromFirst=function($10z){var $10y$=this;return function(){var $110=$10y$.outer$.size;return (($10z<$110.times($10y$.$10x))?$10y$.outer$.getFromFirst($10z.remainder($110)):null);}();};$10y$.iterator=function(){var $10y$=this;return CycledIterator($10y$.outer$,$10y$.$10x,{Element$CycledIterator:$10y$.outer$.$$targs$$.Element$Sequence});};$10y$.Repeat$Sequence=Repeat$Sequence;})(Repeat$Sequence.$$.prototype);}
return Repeat$Sequence;}
sequence$.$init$Repeat$Sequence=$init$Repeat$Sequence;sequence$.Repeat$Sequence=Repeat$Sequence;$init$Reverse$Sequence();
$init$Repeat$Sequence();
})(Sequence.$$.prototype);}
return Sequence;}
ex$.$init$Sequence=$init$Sequence;$init$Sequence();var $zh,$10f,$10u,$10v;function sequence($111,$uau8zx$){var $112;if(ne$(($112=$111.sequence()))){return $112;}
else{var $113;asrt$((is$(($113=null),$uau8zx$.Absent$sequence,$uau8zx$)),"Assertion failed: \'is Absent null\' at Sequence.ceylon (332:15-332:30)",'332:8-332:31','Sequence.ceylon');
return null;}
}
ex$.sequence=sequence;sequence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Sequence,a:{Element$Sequence:'Element$sequence'}},'Absent$sequence']},ps:[{nm:'elements',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'Absent$sequence',Element$Iterable:'Element$sequence'}}}],tp:{Element$sequence:{},Absent$sequence:{sts:[{t:Null}],def:{t:Null}}},pa:1,an:function(){return[doc$($CCMM$,'$:sequence'),by(["Gavin"].$sa$({t:$_String})),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.sequence)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Sequences"].$sa$({t:$_String}))];},d:['$','sequence']};};function JoinedSequence($114,$115,$$targs$$,joinedSequence$){$init$JoinedSequence();
if(joinedSequence$===undefined)joinedSequence$=new JoinedSequence.$$;
set_type_args(joinedSequence$,$$targs$$);
joinedSequence$.$114_=$114;joinedSequence$.$115_=$115;$_Object(joinedSequence$);Sequence({Element$Sequence:$$targs$$.Element$JoinedSequence/*ORALE!Element inv pero Element var*/},joinedSequence$);return joinedSequence$;}
JoinedSequence.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'firstSeq',mt:'prm',$t:{t:Sequence,a:{Element$Sequence:'Element$JoinedSequence'}}},{nm:'secondSeq',mt:'prm',$t:{t:Sequence,a:{Element$Sequence:'Element$JoinedSequence'}}}],tp:{Element$JoinedSequence:{}},sts:[{t:Sequence,a:{Element$Sequence:'Element$JoinedSequence'}}],d:['$','JoinedSequence']};};
ex$.JoinedSequence=JoinedSequence;function $init$JoinedSequence(){if(JoinedSequence.$$===undefined){initTypeProto(JoinedSequence,'ceylon.language::JoinedSequence',$init$$_Object(),$init$Sequence());
(function(joinedSequence$){atr$(joinedSequence$,'$114',function(){return this.$114_;},undefined,function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Element$JoinedSequence'}},$cont:JoinedSequence,d:['$','JoinedSequence','$at','firstSeq$vc5yc7']};});atr$(joinedSequence$,'$115',function(){return this.$115_;},undefined,function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Element$JoinedSequence'}},$cont:JoinedSequence,d:['$','JoinedSequence','$at','secondSeq$g3ri2t']};});atr$(joinedSequence$,'size',function(){var joinedSequence$=this;return joinedSequence$.$114.size.plus(joinedSequence$.$115.size);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:JoinedSequence,pa:3,d:['$','JoinedSequence','$at','size']};});atr$(joinedSequence$,'first',function(){var joinedSequence$=this;return joinedSequence$.$114.first;},undefined,function(){return{mod:$CCMM$,$t:'Element$JoinedSequence',$cont:JoinedSequence,pa:3,d:['$','JoinedSequence','$at','first']};});atr$(joinedSequence$,'last',function(){var joinedSequence$=this;return joinedSequence$.$115.last;},undefined,function(){return{mod:$CCMM$,$t:'Element$JoinedSequence',$cont:JoinedSequence,pa:3,d:['$','JoinedSequence','$at','last']};});atr$(joinedSequence$,'rest',function(){var joinedSequence$=this;return joinedSequence$.$114.rest.append(joinedSequence$.$115,{Other$append:joinedSequence$.$$targs$$.Element$JoinedSequence});},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$JoinedSequence'}},$cont:JoinedSequence,pa:3,d:['$','JoinedSequence','$at','rest']};});joinedSequence$.getFromFirst=function($116){var joinedSequence$=this;return function(){var $117=joinedSequence$.$114.size;return (($116<$117)?joinedSequence$.$114.getFromFirst($116):joinedSequence$.$115.getFromFirst($116.minus($117)));}();};joinedSequence$.$_slice=function($118){var joinedSequence$=this;return ((($118).valueOf()==(joinedSequence$.$114.size).valueOf())?tpl$([joinedSequence$.$114,joinedSequence$.$115]):joinedSequence$.getT$all()['ceylon.language::Sequence'].$$.prototype.$_slice.call(joinedSequence$,$118));};joinedSequence$.spanTo=function($119){var joinedSequence$=this;return ((($119).valueOf()==(joinedSequence$.$114.size.minus(1)).valueOf())?joinedSequence$.$114:joinedSequence$.getT$all()['ceylon.language::Sequence'].$$.prototype.spanTo.call(joinedSequence$,$119));};joinedSequence$.spanFrom=function($11a){var joinedSequence$=this;return ((($11a).valueOf()==(joinedSequence$.$114.size).valueOf())?joinedSequence$.$115:joinedSequence$.getT$all()['ceylon.language::Sequence'].$$.prototype.spanFrom.call(joinedSequence$,$11a));};joinedSequence$.measure=function($11b,$11c){var joinedSequence$=this;if(((($11b).valueOf()==(0).valueOf())&&(($11c).valueOf()==(joinedSequence$.$114.size).valueOf()))){return joinedSequence$.$114;}
else{if(((($11b).valueOf()==(joinedSequence$.$114.size).valueOf())&&($11c>=joinedSequence$.$115.size))){return joinedSequence$.$115;}
else{return joinedSequence$.getT$all()['ceylon.language::Sequence'].$$.prototype.measure.call(joinedSequence$,$11b,$11c);}
}
};joinedSequence$.measure.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$JoinedSequence'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:JoinedSequence,pa:3,d:['$','JoinedSequence','$m','measure']};};joinedSequence$.span=function($11d,$11e){var joinedSequence$=this;if((($11d<=0)&&(($11e).valueOf()==(joinedSequence$.$114.size.minus(1)).valueOf()))){return joinedSequence$.$114;}
else{if(((($11d).valueOf()==(joinedSequence$.$114.size).valueOf())&&($11e>=joinedSequence$.size.minus(1)))){return joinedSequence$.$115;}
else{return joinedSequence$.getT$all()['ceylon.language::Sequence'].$$.prototype.span.call(joinedSequence$,$11d,$11e);}
}
};joinedSequence$.span.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$JoinedSequence'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:JoinedSequence,pa:3,d:['$','JoinedSequence','$m','span']};};joinedSequence$.iterator=function(){var joinedSequence$=this;return ChainedIterator(joinedSequence$.$114,joinedSequence$.$115,{Other$ChainedIterator:joinedSequence$.$$targs$$.Element$JoinedSequence/*ORALE!Element inv pero Other var*/,Element$ChainedIterator:joinedSequence$.$$targs$$.Element$JoinedSequence/*ORALE!Element inv pero Element var*/});};})(JoinedSequence.$$.prototype);}
return JoinedSequence;}
ex$.$init$JoinedSequence=$init$JoinedSequence;$init$JoinedSequence();function SequencedAnnotation($$targs$$,sequencedAnnotation$){set_type_args(sequencedAnnotation$,$$targs$$,SequencedAnnotation);ConstrainedAnnotation({Values$ConstrainedAnnotation:{t:Sequential,a:{Element$Sequential:$$targs$$.Value$SequencedAnnotation}},ProgramElement$ConstrainedAnnotation:$$targs$$.ProgramElement$SequencedAnnotation,Value$ConstrainedAnnotation:$$targs$$.Value$SequencedAnnotation,Type$ConstrainedAnnotation:$$targs$$.Type$SequencedAnnotation},sequencedAnnotation$);}
SequencedAnnotation.$crtmm$=function(){return{mod:$CCMM$,tp:{Value$SequencedAnnotation:{dv:'out',sts:[{t:SequencedAnnotation,a:{Value$SequencedAnnotation:'Value$SequencedAnnotation',Type$SequencedAnnotation:'Type$SequencedAnnotation',ProgramElement$SequencedAnnotation:'ProgramElement$SequencedAnnotation'}}]},ProgramElement$SequencedAnnotation:{dv:'in',sts:[{t:Annotated}],def:{t:Annotated}},Type$SequencedAnnotation:{dv:'out',def:{t:Anything}}},sts:[{t:ConstrainedAnnotation,a:{Values$ConstrainedAnnotation:{t:Sequential,a:{Element$Sequential:'Value$SequencedAnnotation'}},ProgramElement$ConstrainedAnnotation:'ProgramElement$SequencedAnnotation',Value$ConstrainedAnnotation:'Value$SequencedAnnotation',Type$ConstrainedAnnotation:'Type$SequencedAnnotation'}}],of:['Value$SequencedAnnotation'],pa:1,an:function(){return[doc$($CCMM$,'$:SequencedAnnotation'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Annotation)].$sa$({t:InterfaceDeclaration$meta$declaration}))];},d:['$','SequencedAnnotation']};};
ex$.SequencedAnnotation=SequencedAnnotation;function $init$SequencedAnnotation(){if(SequencedAnnotation.$$===undefined){initTypeProtoI(SequencedAnnotation,'ceylon.language::SequencedAnnotation',$init$ConstrainedAnnotation());
}
return SequencedAnnotation;}
ex$.$init$SequencedAnnotation=$init$SequencedAnnotation;$init$SequencedAnnotation();function Sequential($$targs$$,sequential$){set_type_args(sequential$,$$targs$$,Sequential);Ranged({Subrange$Ranged:{t:Sequential,a:{Element$Sequential:$$targs$$.Element$Sequential}},Element$Ranged:$$targs$$.Element$Sequential,Index$Ranged:{t:Integer}},sequential$);List({Element$List:$$targs$$.Element$Sequential},sequential$);}
Sequential.$crtmm$=function(){return{mod:$CCMM$,tp:{Element$Sequential:{dv:'out',def:{t:Anything}}},sts:[{t:List,a:{Element$List:'Element$Sequential'}},{t:Ranged,a:{Subrange$Ranged:{t:Sequential,a:{Element$Sequential:'Element$Sequential'}},Element$Ranged:'Element$Sequential',Index$Ranged:{t:Integer}}}],of:[{t:Empty},{t:Sequence,a:{Element$Sequence:'Element$Sequential'}}],pa:1,an:function(){return[doc$($CCMM$,'$:Sequential'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Tuple)].$sa$({t:ClassWithInitializerDeclaration$meta$declaration})),tagged(["Sequences"].$sa$({t:$_String}))];},d:['$','Sequential']};};
ex$.Sequential=Sequential;function $init$Sequential(){if(Sequential.$$===undefined){initTypeProtoI(Sequential,'ceylon.language::Sequential',$init$Ranged(),$init$List());
(function(sequential$){sequential$.$prop$getSize={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Sequential,pa:7,an:function(){return[doc$($CCMM$,'$:Sequential:$at:size')];},d:['$','Sequential','$at','size']};}};atr$(sequential$,'keys',function(){var sequential$=this;return measure((0),sequential$.size,{Element$measure:{t:Integer}})},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Integer}}},$cont:Sequential,pa:11,an:function(){return[doc$($CCMM$,'$:Sequential:$at:keys')];},d:['$','Sequential','$at','keys']};});sequential$.sequence=function(){var sequential$=this;return sequential$;};sequential$.sequence.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequential'}},ps:[],$cont:Sequential,pa:11,an:function(){return[doc("This sequence.")];},d:['$','Sequential','$m','sequence']};};sequential$.$prop$getRest={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequential'}},$cont:Sequential,pa:7,an:function(){return[doc$($CCMM$,'$:Sequential:$at:rest')];},d:['$','Sequential','$at','rest']};}};sequential$.$prop$getReversed={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequential'}},$cont:Sequential,pa:7,an:function(){return[doc$($CCMM$,'$:Sequential:$at:reversed')];},d:['$','Sequential','$at','reversed']};}};sequential$.repeat={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequential'}},ps:[{nm:'times',mt:'prm',$t:{t:Integer}}],$cont:Sequential,pa:7,an:function(){return[doc$($CCMM$,'$:Sequential:$m:repeat')];},d:['$','Sequential','$m','repeat']};}};sequential$.initial=function($11j){var sequential$=this;return sequential$.spanTo($11j.minus(1));};sequential$.initial.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequential'}},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Sequential,pa:11,an:function(){return[doc$($CCMM$,'$:Sequential:$m:initial')];},d:['$','Sequential','$m','initial']};};sequential$.terminal=function($11k){var sequential$=this;return sequential$.spanFrom(sequential$.size.minus($11k));};sequential$.terminal.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequential'}},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Sequential,pa:11,an:function(){return[doc$($CCMM$,'$:Sequential:$m:terminal')];},d:['$','Sequential','$m','terminal']};};sequential$.clone=function(){var sequential$=this;return sequential$;};sequential$.clone.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequential'}},ps:[],$cont:Sequential,pa:11,an:function(){return[doc("This sequence.")];},d:['$','Sequential','$m','clone']};};sequential$.$_trim=function($11l){var sequential$=this;return sequential$.getT$all()['ceylon.language::List'].$$.prototype.$_trim.call(sequential$,JsCallable(sequential$,$11l)).sequence();};sequential$.$_trim.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequential'}},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Sequential',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Sequential',{t:$_Object}]}}]}],$cont:Sequential,pa:11,an:function(){return[doc$($CCMM$,'$:Sequential:$m:trim')];},d:['$','Sequential','$m','trim']};};sequential$.trimLeading=function($11m){var sequential$=this;return sequential$.getT$all()['ceylon.language::List'].$$.prototype.trimLeading.call(sequential$,JsCallable(sequential$,$11m)).sequence();};sequential$.trimLeading.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequential'}},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Sequential',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Sequential',{t:$_Object}]}}]}],$cont:Sequential,pa:11,an:function(){return[doc$($CCMM$,'$:Sequential:$m:trimLeading')];},d:['$','Sequential','$m','trimLeading']};};sequential$.trimTrailing=function($11n){var sequential$=this;return sequential$.getT$all()['ceylon.language::List'].$$.prototype.trimTrailing.call(sequential$,JsCallable(sequential$,$11n)).sequence();};sequential$.trimTrailing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Sequential'}},ps:[{nm:'trimming',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Sequential',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:'i',l:['Element$Sequential',{t:$_Object}]}}]}],$cont:Sequential,pa:11,an:function(){return[doc$($CCMM$,'$:Sequential:$m:trimTrailing')];},d:['$','Sequential','$m','trimTrailing']};};sequential$.$_slice=function($11o){var sequential$=this;return tpl$([sequential$.spanTo($11o.minus(1)),sequential$.spanFrom($11o)]);};sequential$.$_slice.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{t:Sequential,a:{Element$Sequential:'Element$Sequential'}},{t:Sequential,a:{Element$Sequential:'Element$Sequential'}}]},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Sequential,pa:11,an:function(){return[doc$($CCMM$,'$:Sequential:$m:slice')];},d:['$','Sequential','$m','slice']};};sequential$.withLeading={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'T',l:['Other$withLeading',mkseq$('Element$Sequential',1)]},ps:[{nm:'element',mt:'prm',$t:'Other$withLeading'}],$cont:Sequential,tp:{Other$withLeading:{}},pa:5,an:function(){return[doc$($CCMM$,'$:Sequential:$m:withLeading'),see("prepend","withTrailing","follow")];},d:['$','Sequential','$m','withLeading']};}};sequential$.withTrailing={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:{t:'u',l:['Element$Sequential','Other$withTrailing']}}},ps:[{nm:'element',mt:'prm',$t:'Other$withTrailing'}],$cont:Sequential,tp:{Other$withTrailing:{}},pa:5,an:function(){return[doc$($CCMM$,'$:Sequential:$m:withTrailing'),see("append","withLeading")];},d:['$','Sequential','$m','withTrailing']};}};sequential$.append={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:'u',l:['Element$Sequential','Other$append']}}},ps:[{nm:'elements',mt:'prm',$t:{t:Sequential,a:{Element$Sequential:'Other$append'}}}],$cont:Sequential,tp:{Other$append:{}},pa:5,an:function(){return[doc$($CCMM$,'$:Sequential:$m:append'),see("prepend","withTrailing","concatenate","chain")];},d:['$','Sequential','$m','append']};}};sequential$.prepend={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:'u',l:['Element$Sequential','Other$prepend']}}},ps:[{nm:'elements',mt:'prm',$t:{t:Sequential,a:{Element$Sequential:'Other$prepend'}}}],$cont:Sequential,tp:{Other$prepend:{}},pa:5,an:function(){return[doc$($CCMM$,'$:Sequential:$m:prepend'),see("append","withLeading","concatenate")];},d:['$','Sequential','$m','prepend']};}};atr$(sequential$,'string',function(){var sequential$=this;return ($11q=(sequential$.empty?"[]":null),nn$($11q)?$11q:"[".plus(commaList(sequential$)).plus("]"))},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Sequential,pa:11,an:function(){return[doc$($CCMM$,'$:Sequential:$at:string')];},d:['$','Sequential','$at','string']};});})(Sequential.$$.prototype);}
return Sequential;}
ex$.$init$Sequential=$init$Sequential;$init$Sequential();var $11q;function Set($$targs$$,set$){set_type_args(set$,$$targs$$,Set);Collection({Element$Collection:$$targs$$.Element$Set},set$);}
Set.$crtmm$=function(){return{mod:$CCMM$,tp:{Element$Set:{dv:'out',sts:[{t:$_Object}],def:{t:$_Object}}},sts:[{t:Collection,a:{Element$Collection:'Element$Set'}}],pa:1,an:function(){return[doc$($CCMM$,'$:Set'),tagged(["Collections"].$sa$({t:$_String})),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),set),$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getEmptySet)].$sa$(mut$([{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration}])))];},d:['$','Set']};};
ex$.Set=Set;function $init$Set(){if(Set.$$===undefined){initTypeProtoI(Set,'ceylon.language::Set',$init$Collection());
(function(set$){set$.contains=function($11r){var set$=this;return set$.getT$all()['ceylon.language::Collection'].$$.prototype.contains.call(set$,$11r);};set$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:$_Object}}],$cont:Set,pa:11,an:function(){return[doc$($CCMM$,'$:Set:$m:contains')];},d:['$','Set','$m','contains']};};set$.clone={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Set,a:{Element$Set:'Element$Set'}},ps:[],$cont:Set,pa:7,an:function(){return[doc$($CCMM$,'$:Set:$m:clone')];},d:['$','Set','$m','clone']};}};set$.superset=function($11s){var set$=this;var $11u;for(var $11t=$11s.iterator();($11u=$11t.next())!==finished();){if(!set$.contains($11u)){return false;}
}
if(finished()===$11u){return true;}
};set$.superset.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'set',mt:'prm',$t:{t:Set,a:{Element$Set:{t:$_Object}}}}],$cont:Set,pa:9,an:function(){return[doc$($CCMM$,'$:Set:$m:superset')];},d:['$','Set','$m','superset']};};set$.subset=function($11v){var set$=this;var $11x;for(var $11w=set$.iterator();($11x=$11w.next())!==finished();){if(!$11v.contains($11x)){return false;}
}
if(finished()===$11x){return true;}
};set$.subset.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'set',mt:'prm',$t:{t:Set,a:{Element$Set:{t:$_Object}}}}],$cont:Set,pa:9,an:function(){return[doc$($CCMM$,'$:Set:$m:subset')];},d:['$','Set','$m','subset']};};atr$(set$,'distinct',function(){var set$=this;return set$;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Element$Iterable:'Element$Set',Absent$Iterable:{t:Null}}},$cont:Set,pa:3,d:['$','Set','$at','distinct']};});set$.defaultNullElements=function($11y,$cnemox$){var set$=this;return set$;};set$.defaultNullElements.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$Set'}},ps:[{nm:'defaultValue',mt:'prm',$t:'Default$defaultNullElements'}],$cont:Set,tp:{Default$defaultNullElements:{sts:[{t:$_Object}]}},pa:3,d:['$','Set','$m','defaultNullElements']};};set$.union=function($11z,$rvbh9t$){var set$=this;return set(set$.chain($11z,{OtherAbsent$chain:{t:Null},Other$chain:$rvbh9t$.Other$union}),undefined,{Element$set:mut$([set$.$$targs$$.Element$Set,$rvbh9t$.Other$union])});};set$.union.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Set,a:{Element$Set:{t:'u',l:['Element$Set','Other$union']}}},ps:[{nm:'set',mt:'prm',$t:{t:Set,a:{Element$Set:'Other$union'}}}],$cont:Set,tp:{Other$union:{sts:[{t:$_Object}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Set:$m:union')];},d:['$','Set','$m','union']};};set$.intersection=function($120,$ydys4n$){var set$=this;return set(set$.$_filter($JsCallable((function($121){return $120.contains($121);}),[{nm:'e',mt:'prm',$t:set$.Element$Set}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([set$.$$targs$$.Element$Set])})).narrow({Type$narrow:$ydys4n$.Other$intersection}),undefined,{Element$set:mit$([set$.$$targs$$.Element$Set,$ydys4n$.Other$intersection])});};set$.intersection.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Set,a:{Element$Set:{t:'i',l:['Element$Set','Other$intersection']}}},ps:[{nm:'set',mt:'prm',$t:{t:Set,a:{Element$Set:'Other$intersection'}}}],$cont:Set,tp:{Other$intersection:{sts:[{t:$_Object}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Set:$m:intersection')];},d:['$','Set','$m','intersection']};};set$.complement=function($122,$fcnqbg$){var set$=this;return set(set$.$_filter($JsCallable((function($123){return !$122.contains($123);}),[{nm:'e',mt:'prm',$t:set$.Element$Set}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([set$.$$targs$$.Element$Set])})),undefined,{Element$set:set$.$$targs$$.Element$Set});};set$.complement.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Set,a:{Element$Set:'Element$Set'}},ps:[{nm:'set',mt:'prm',$t:{t:Set,a:{Element$Set:'Other$complement'}}}],$cont:Set,tp:{Other$complement:{sts:[{t:$_Object}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Set:$m:complement')];},d:['$','Set','$m','complement']};};set$.exclusiveUnion=function($124,$7058pd$){var set$=this;return set(set$.$_filter($JsCallable((function($125){return !$124.contains($125);}),[{nm:'e',mt:'prm',$t:set$.Element$Set}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([set$.$$targs$$.Element$Set])})).chain($124.$_filter($JsCallable((function($126){return !set$.contains($126);}),[{nm:'e',mt:'prm',$t:$7058pd$.Other$exclusiveUnion}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([$7058pd$.Other$exclusiveUnion])})),{OtherAbsent$chain:{t:Null},Other$chain:$7058pd$.Other$exclusiveUnion}),undefined,{Element$set:mut$([set$.$$targs$$.Element$Set,$7058pd$.Other$exclusiveUnion])});};set$.exclusiveUnion.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Set,a:{Element$Set:{t:'u',l:['Element$Set','Other$exclusiveUnion']}}},ps:[{nm:'set',mt:'prm',$t:{t:Set,a:{Element$Set:'Other$exclusiveUnion'}}}],$cont:Set,tp:{Other$exclusiveUnion:{sts:[{t:$_Object}]}},pa:9,an:function(){return[doc$($CCMM$,'$:Set:$m:exclusiveUnion')];},d:['$','Set','$m','exclusiveUnion']};};set$.equals=function($127){var set$=this;var $128;if(is$(($128=$127),{t:Set,a:{Element$Set:{t:$_Object}}})&&(($128.size).valueOf()==(set$.size).valueOf())){var $12a;for(var $129=set$.iterator();($12a=$129.next())!==finished();){if(!$128.contains($12a)){return false;}
}
if(finished()===$12a){return true;}
}
return false;};set$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:Set,pa:11,an:function(){return[doc$($CCMM$,'$:Set:$m:equals')];},d:['$','Set','$m','equals']};};atr$(set$,'hash',function(){var set$=this;var $12b=(0);var $12d;for(var $12c=set$.iterator();($12d=$12c.next())!==finished();){($12b=$12b.plus($12d.hash));}return $12b;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Set,pa:11,d:['$','Set','$at','hash']};});})(Set.$$.prototype);}
return Set;}
ex$.$init$Set=$init$Set;$init$Set();function set$defs$choosing($12e,$12f,$vluexc$){return function($12g,$12h){return $12g;};};function set($12e,$12f,$vluexc$){if($12f===undefined){$12f=function($12g,$12h){return $12g;};}
return function(){function $12i($$targs$$){var $12i$=new $12i.$$;$12i$.$$targs$$=$$targs$$;$_Object($12i$);Set({Element$Set:$vluexc$.Element$set/*ORALE!Element inv pero Element var*/},$12i$);$12i$.$12j_=$12e.summarize(JsCallable($12i$,identity,{Value$identity:$vluexc$.Element$set}),$JsCallable((function($12k,$12l){return function(){var $12m;if(nn$(($12m=$12k)))return $12f($12m,$12l);else return $12l}();}),[{nm:'current',mt:'prm',$t:{t:'u',l:[{t:Null},$vluexc$.Element$set]}},{nm:'element',mt:'prm',$t:$vluexc$.Element$set}],{Return$Callable:$vluexc$.Element$set/*ORALE!Element inv pero Return var*/,Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([$vluexc$.Element$set]),Element$Tuple:mut$([{t:Null},$vluexc$.Element$set]),First$Tuple:mut$([{t:Null},$vluexc$.Element$set])}}}),{Result$summarize:$vluexc$.Element$set,Group$summarize:$vluexc$.Element$set});$12i$.$prop$get$12j={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:'Element$set',Item$Map:'Element$set'}},$cont:set,d:['$','set','$at','elements$ff16i6']};}};$12i$.$prop$get$12j.get=function(){return $12j};return $12i$;};$12i.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},$cont:set,sts:[{t:Set,a:{Element$Set:{t:'i',l:['Element$set',{t:$_Object}]}}}],d:['$','set']};};function $init$$12i(){if($12i.$$===undefined){initTypeProto($12i,'ceylon.language::anonymous#4',$init$$_Object(),$init$Set());
(function($12i$){atr$($12i$,'$12j',function(){return this.$12j_;},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:'Element$set',Item$Map:'Element$set'}},$cont:set,d:['$','set','$at','elements$ff16i6']};});$12i$.contains=function($12n){var $12i$=this;return $12i$.$12j.defines($12n);};$12i$.iterator=function(){var $12i$=this;return $12i$.$12j.keys.iterator();};atr$($12i$,'size',function(){var $12i$=this;return $12i$.$12j.size;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:set,pa:3,d:['$','set','$at','size']};});atr$($12i$,'empty',function(){var $12i$=this;return $12i$.$12j.empty;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:set,pa:3,d:['$','set','$at','empty']};});$12i$.clone=function(){var $12i$=this;return $12i$;};})($12i.$$.prototype);}
return $12i;}
$init$$12i();return $12i();}();};set.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Set,a:{Element$Set:'Element$set'}},ps:[{nm:'stream',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$set'}}},{nm:'choosing',mt:'prm',$pt:'f',def:1,$t:{t:Callable,a:{Return$Callable:'Element$set',Arguments$Callable:{t:'T',l:['Element$set','Element$set']}}},$rt:'Element$set',ps:[{nm:'earlier',mt:'prm',$t:'Element$set'},{nm:'later',mt:'prm',$t:'Element$set'}]}],tp:{Element$set:{sts:[{t:$_Object}]}},pa:1,an:function(){return[doc$($CCMM$,'$:set'),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$prop$getDistinct)].$sa$({t:ValueDeclaration$meta$declaration}))];},d:['$','set']};};
ex$.set=set;function $12p($$targs$$){var emptySet$=new $12p.$$;emptySet$.$$targs$$=$$targs$$;$_Object(emptySet$);Set({Element$Set:{t:Nothing}},emptySet$);return emptySet$;};$12p.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},sts:[{t:Set,a:{Element$Set:{t:Nothing}}}],d:['$','emptySet']};};function $init$emptySet(){if($12p.$$===undefined){initTypeProto($12p,'ceylon.language::emptySet',$init$$_Object(),$init$Set());
(function(emptySet$){emptySet$.union=function($12r,$o93tg8$){var emptySet$=this;return $12r;};emptySet$.union.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Set,a:{Element$Set:'Other$union'}},ps:[{nm:'set',mt:'prm',$t:{t:Set,a:{Element$Set:'Other$union'}}}],$cont:$12p,tp:{Other$union:{sts:[{t:$_Object}]}},pa:3,d:['$','emptySet','$m','union']};};emptySet$.intersection=function($12s,$8cydbk$){var emptySet$=this;return emptySet$;};emptySet$.intersection.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Set,a:{Element$Set:{t:Nothing}}},ps:[{nm:'set',mt:'prm',$t:{t:Set,a:{Element$Set:'Other$intersection'}}}],$cont:$12p,tp:{Other$intersection:{sts:[{t:$_Object}]}},pa:3,d:['$','emptySet','$m','intersection']};};emptySet$.exclusiveUnion=function($12t,$vs00a0$){var emptySet$=this;return $12t;};emptySet$.exclusiveUnion.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Set,a:{Element$Set:'Other$exclusiveUnion'}},ps:[{nm:'set',mt:'prm',$t:{t:Set,a:{Element$Set:'Other$exclusiveUnion'}}}],$cont:$12p,tp:{Other$exclusiveUnion:{sts:[{t:$_Object}]}},pa:3,d:['$','emptySet','$m','exclusiveUnion']};};emptySet$.complement=function($12u,$97tc31$){var emptySet$=this;return emptySet$;};emptySet$.complement.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Set,a:{Element$Set:{t:Nothing}}},ps:[{nm:'set',mt:'prm',$t:{t:Set,a:{Element$Set:'Other$complement'}}}],$cont:$12p,tp:{Other$complement:{sts:[{t:$_Object}]}},pa:3,d:['$','emptySet','$m','complement']};};emptySet$.subset=function($12v){var emptySet$=this;return true;};emptySet$.superset=function($12w){var emptySet$=this;return $12w.empty;};emptySet$.clone=function(){var emptySet$=this;return emptySet$;};emptySet$.iterator=function(){var emptySet$=this;return emptyIterator();};atr$(emptySet$,'size',function(){var emptySet$=this;return 0;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$12p,pa:3,d:['$','emptySet','$at','size']};});atr$(emptySet$,'empty',function(){var emptySet$=this;return true;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$12p,pa:3,d:['$','emptySet','$at','empty']};});emptySet$.contains=function($12x){var emptySet$=this;return false;};emptySet$.containsAny=function($12y){var emptySet$=this;return false;};emptySet$.containsEvery=function($12z){var emptySet$=this;return false;};emptySet$.count=function($130){return 0;};emptySet$.any=function($131){var emptySet$=this;return false;};emptySet$.$_every=function($132){var emptySet$=this;return true;};emptySet$.find=function($133){var emptySet$=this;return null;};emptySet$.find.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:$12p,pa:3,d:['$','emptySet','$m','find']};};emptySet$.findLast=function($134){var emptySet$=this;return null;};emptySet$.findLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Null},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:$12p,pa:3,d:['$','emptySet','$m','findLast']};};emptySet$.skip=function($135){var emptySet$=this;return emptySet$;};emptySet$.take=function($136){var emptySet$=this;return emptySet$;};emptySet$.by=function($137){var emptySet$=this;return emptySet$;};emptySet$.each=function($138){var emptySet$=this;};emptySet$.each.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'step',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Anything},Arguments$Callable:{t:'T',l:[]}}},$rt:{t:Anything},ps:[{nm:'element',mt:'prm',$t:{t:Nothing}}]}],$cont:$12p,pa:3,d:['$','emptySet','$m','each']};};})($12p.$$.prototype);}
return $12p;}
ex$.$init$emptySet=$init$emptySet;$init$emptySet();var $139;function emptySet(){if($139===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'emptySet\' before it was set"),'221:0-278:0','Set.ceylon');if($139===undefined){$139=INIT$;$139=$init$emptySet()({Element$Set:{t:Nothing}});$139.$crtmm$=emptySet.$crtmm$;}
return $139;}
ex$.emptySet=emptySet;emptySet.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$emptySet()},pa:1,an:function(){return[doc$($CCMM$,'$:emptySet'),tagged(["Collections"].$sa$({t:$_String}))];},d:['$','emptySet']};};$prop$getEmptySet=emptySet;ex$.$prop$getEmptySet=$prop$getEmptySet;function Singleton($13a,$$targs$$,singleton$){$init$Singleton();
if(singleton$===undefined)singleton$=new Singleton.$$;
set_type_args(singleton$,$$targs$$);
singleton$.$13a_=$13a;$_Object(singleton$);Sequence({Element$Sequence:$$targs$$.Element$Singleton},singleton$);return singleton$;}
Singleton.$crtmm$=function(){return{mod:$CCMM$,'super':{t:$_Object},ps:[{nm:'element',mt:'prm',$t:'Element$Singleton'}],tp:{Element$Singleton:{dv:'out'}},sts:[{t:Sequence,a:{Element$Sequence:'Element$Singleton'}}],pa:2081,an:function(){return[doc$($CCMM$,'$:Singleton'),tagged(["Sequences"].$sa$({t:$_String}))];},d:['$','Singleton']};};
ex$.Singleton=Singleton;function $init$Singleton(){if(Singleton.$$===undefined){initTypeProto(Singleton,'ceylon.language::Singleton',$init$$_Object(),$init$Sequence());
(function(singleton$){atr$(singleton$,'$13a',function(){return this.$13a_;},undefined,function(){return{mod:$CCMM$,$t:'Element$Singleton',$cont:Singleton,d:['$','Singleton','$at','element$kjdnp3']};});atr$(singleton$,'first',function(){var singleton$=this;return singleton$.$13a},undefined,function(){return{mod:$CCMM$,$t:'Element$Singleton',$cont:Singleton,pa:3,an:function(){return[doc$($CCMM$,'$:Singleton:$at:first')];},d:['$','Singleton','$at','first']};});atr$(singleton$,'last',function(){var singleton$=this;return singleton$.$13a},undefined,function(){return{mod:$CCMM$,$t:'Element$Singleton',$cont:Singleton,pa:3,an:function(){return[doc$($CCMM$,'$:Singleton:$at:last')];},d:['$','Singleton','$at','last']};});atr$(singleton$,'lastIndex',function(){var singleton$=this;return 0},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Singleton,pa:3,an:function(){return[doc("Returns `0`.")];},d:['$','Singleton','$at','lastIndex']};});atr$(singleton$,'size',function(){var singleton$=this;return 1},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Singleton,pa:3,an:function(){return[doc("Returns `1`.")];},d:['$','Singleton','$at','size']};});atr$(singleton$,'rest',function(){var singleton$=this;return empty()},undefined,function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Singleton,pa:3,an:function(){return[doc("Returns `Empty`.")];},d:['$','Singleton','$at','rest']};});singleton$.getFromFirst=function($13g){var singleton$=this;return ((($13g).valueOf()==(0).valueOf())?singleton$.$13a:null);};singleton$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Singleton']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Singleton,pa:3,an:function(){return[doc$($CCMM$,'$:Singleton:$m:getFromFirst')];},d:['$','Singleton','$m','getFromFirst']};};atr$(singleton$,'reversed',function(){var singleton$=this;return singleton$},undefined,function(){return{mod:$CCMM$,$t:{t:Singleton,a:{Element$Singleton:'Element$Singleton'}},$cont:Singleton,pa:3,an:function(){return[doc("Return this singleton.")];},d:['$','Singleton','$at','reversed']};});singleton$.clone=function(){var singleton$=this;return singleton$;};singleton$.clone.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Singleton,a:{Element$Singleton:'Element$Singleton'}},ps:[],$cont:Singleton,pa:3,an:function(){return[doc$($CCMM$,'$:Singleton:$m:clone')];},d:['$','Singleton','$m','clone']};};singleton$.contains=function($13i){var singleton$=this;return function(){var $13j;if(nn$(($13j=singleton$.$13a)))return $13j.equals($13i);else return false}();};singleton$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:{t:$_Object}}],$cont:Singleton,pa:3,an:function(){return[doc$($CCMM$,'$:Singleton:$m:contains')];},d:['$','Singleton','$m','contains']};};atr$(singleton$,'string',function(){var singleton$=this;return "[".plus(stringify(singleton$.$13a)).plus("]");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Singleton,pa:3,d:['$','Singleton','$at','string']};});singleton$.iterator=function(){var singleton$=this;return function(){function $13k($$targs$$){var $13k$=new $13k.$$;$13k$.outer$=singleton$;$13k$.$$targs$$=$$targs$$;Iterator({Element$Iterator:singleton$.$$targs$$.Element$Singleton},$13k$);$13k$.$13l_=false;$13k$.$prop$get$13l={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:singleton$.iterator,pa:1024,d:['$','Singleton','$m','iterator','$at','done$ie2n5l']};}};$13k$.$prop$get$13l.get=function(){return $13l};return $13k$;};$13k.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:singleton$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Singleton'}}],d:['$','Singleton','$m','iterator']};};function $init$$13k(){if($13k.$$===undefined){initTypeProto($13k,'ceylon.language::Singleton.anonymous#0',Basic,$init$Iterator());
(function($13k$){atr$($13k$,'$13l',function(){return this.$13l_;},function($13m){return this.$13l_=$13m;},function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:singleton$.iterator,pa:1024,d:['$','Singleton','$m','iterator','$at','done$ie2n5l']};});$13k$.next=function(){var $13k$=this;if($13k$.$13l){return finished();}
else{$13k$.$13l=true;return singleton$.$13a;}
};$13k$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Singleton',{t:Finished}]},ps:[],$cont:singleton$.iterator,pa:3,d:['$','Singleton','$m','iterator','$m','next']};};atr$($13k$,'string',function(){var $13k$=this;return singleton$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:singleton$.iterator,pa:3,d:['$','Singleton','$m','iterator','$at','string']};});})($13k.$$.prototype);}
return $13k;}
singleton$.$init$$13k=$init$$13k;$init$$13k();return $13k();}();};singleton$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Singleton'}},ps:[],$cont:Singleton,pa:3,d:['$','Singleton','$m','iterator']};};singleton$.equals=function($13o){var singleton$=this;var $13p;if(is$(($13p=$13o),{t:List,a:{Element$List:{t:Anything}}})&&(($13p.size).valueOf()==(1).valueOf())){var $13q=$13p.first;return function(){var $13r,$13s;if(nn$(($13r=singleton$.$13a))&&nn$(($13s=$13q)))return $13s.equals($13r);else return (!nn$(singleton$.$13a)&&!nn$($13q))}();}
else{return false;}
};singleton$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:Singleton,pa:3,an:function(){return[doc$($CCMM$,'$:Singleton:$m:equals')];},d:['$','Singleton','$m','equals']};};atr$(singleton$,'hash',function(){var singleton$=this;return (31).plus(($13u=($13v=singleton$.$13a,nn$($13v)?$13v.hash:null),nn$($13u)?$13u:(0)))},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Singleton,pa:3,d:['$','Singleton','$at','hash']};});singleton$.measure=function($13w,$13x){var singleton$=this;return ($13y=((($13w<=0)&&($13w.plus($13x)>0))?singleton$:null),nn$($13y)?$13y:empty());};singleton$.measure.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Empty},{t:Singleton,a:{Element$Singleton:'Element$Singleton'}}]},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Singleton,pa:3,an:function(){return[doc$($CCMM$,'$:Singleton:$m:measure')];},d:['$','Singleton','$m','measure']};};singleton$.span=function($13z,$140){var singleton$=this;return ($141=(((($13z<=0)&&($140>=0))||(($13z>=0)&&($140<=0)))?singleton$:null),nn$($141)?$141:empty());};singleton$.span.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Empty},{t:Singleton,a:{Element$Singleton:'Element$Singleton'}}]},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Singleton,pa:3,an:function(){return[doc$($CCMM$,'$:Singleton:$m:span')];},d:['$','Singleton','$m','span']};};singleton$.spanTo=function($142){var singleton$=this;return ($143=(($142<0)?empty():null),nn$($143)?$143:singleton$);};singleton$.spanTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Empty},{t:Singleton,a:{Element$Singleton:'Element$Singleton'}}]},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Singleton,pa:3,d:['$','Singleton','$m','spanTo']};};singleton$.spanFrom=function($144){var singleton$=this;return ($145=(($144>0)?empty():null),nn$($145)?$145:singleton$);};singleton$.spanFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Empty},{t:Singleton,a:{Element$Singleton:'Element$Singleton'}}]},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:Singleton,pa:3,d:['$','Singleton','$m','spanFrom']};};singleton$.count=function($146){var singleton$=this;return ($147=($146(singleton$.$13a)?1:null),nn$($147)?$147:(0));};singleton$.count.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Singleton']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Singleton'}]}],$cont:Singleton,pa:3,an:function(){return[doc$($CCMM$,'$:Singleton:$m:count')];},d:['$','Singleton','$m','count']};};singleton$.$_map=function($148,$dy0655$){var singleton$=this;return Singleton($148(singleton$.$13a),{Element$Singleton:$dy0655$.Result$map/*ORALE!Result inv pero Element var*/});};singleton$.$_map.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Singleton,a:{Element$Singleton:'Result$map'}},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$map',Arguments$Callable:{t:'T',l:['Element$Singleton']}}},$rt:'Result$map',ps:[{nm:'e',mt:'prm',$t:'Element$Singleton'}]}],$cont:Singleton,tp:{Result$map:{}},pa:3,d:['$','Singleton','$m','map']};};singleton$.$_filter=function($149){var singleton$=this;return ($14a=($149(singleton$.$13a)?singleton$:null),nn$($14a)?$14a:empty());};singleton$.$_filter.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Singleton,a:{Element$Singleton:'Element$Singleton'}},{t:Empty}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Singleton']}}},$rt:{t:$_Boolean},ps:[{nm:'e',mt:'prm',$t:'Element$Singleton'}]}],$cont:Singleton,pa:3,d:['$','Singleton','$m','filter']};};singleton$.fold=function($14b,$63l54a$){var singleton$=this;singleton$.$14b_=$14b;var $14c=function($14d){{return $14d($14b,singleton$.$13a);}};$14c.$crtmm$=function(){return{ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:$63l54a$.Result$fold,Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([singleton$.$$targs$$.Element$Singleton]),Element$Tuple:mut$([$63l54a$.Result$fold,singleton$.$$targs$$.Element$Singleton]),First$Tuple:$63l54a$.Result$fold/*ORALE!Result inv pero First var*/}}}},$rt:$63l54a$.Result$fold,ps:[{nm:'partial',mt:'prm',$t:$63l54a$.Result$fold},{nm:'e',mt:'prm',$t:singleton$.Element$Singleton}]}],$t:$63l54a$.Result$fold};};return JsCallable(0,$14c);};singleton$.fold.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:'Result$fold',Arguments$Callable:{t:'T',l:[{t:Callable,a:{Return$Callable:'Result$fold',Arguments$Callable:{t:'T',l:['Result$fold','Element$Singleton']}}}]}}},ps:[{nm:'initial',mt:'prm',$t:'Result$fold'}],$cont:Singleton,tp:{Result$fold:{}},pa:3,d:['$','Singleton','$m','fold']};};singleton$.$_reduce=function($14e,$vp8b9h$){var singleton$=this;return singleton$.$13a;};singleton$.$_reduce.$crtmm$=function(){return{mod:$CCMM$,$t:'Element$Singleton',ps:[{nm:'accumulating',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$reduce',Arguments$Callable:{t:'T',l:[{t:'u',l:['Result$reduce','Element$Singleton']},'Element$Singleton']}}},$rt:'Result$reduce',ps:[{nm:'partial',mt:'prm',$t:{t:'u',l:['Result$reduce','Element$Singleton']}},{nm:'e',mt:'prm',$t:'Element$Singleton'}]}],$cont:Singleton,tp:{Result$reduce:{}},pa:3,d:['$','Singleton','$m','reduce']};};singleton$.collect=function($14f,$9hhuet$){var singleton$=this;return Singleton($14f(singleton$.$13a),{Element$Singleton:$9hhuet$.Result$collect/*ORALE!Result inv pero Element var*/});};singleton$.collect.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Singleton,a:{Element$Singleton:'Result$collect'}},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$collect',Arguments$Callable:{t:'T',l:['Element$Singleton']}}},$rt:'Result$collect',ps:[{nm:'element',mt:'prm',$t:'Element$Singleton'}]}],$cont:Singleton,tp:{Result$collect:{}},pa:3,d:['$','Singleton','$m','collect']};};singleton$.select=function($14g){var singleton$=this;return ($14h=($14g(singleton$.$13a)?singleton$:null),nn$($14h)?$14h:empty());};singleton$.select.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Singleton,a:{Element$Singleton:'Element$Singleton'}},{t:Empty}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Singleton']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Singleton'}]}],$cont:Singleton,pa:3,d:['$','Singleton','$m','select']};};singleton$.find=function($14i){var singleton$=this;return function(){var $14j;if(nn$(($14j=singleton$.$13a))&&$14i($14j))return $14j;else return null}();};singleton$.find.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Singleton']},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Singleton',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'e',mt:'prm',$t:{t:'i',l:['Element$Singleton',{t:$_Object}]}}]}],$cont:Singleton,pa:3,d:['$','Singleton','$m','find']};};singleton$.findLast=function($14k){var singleton$=this;return singleton$.find(JsCallable(singleton$,$14k));};singleton$.findLast.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Singleton']},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:'i',l:['Element$Singleton',{t:$_Object}]}]}}},$rt:{t:$_Boolean},ps:[{nm:'e',mt:'prm',$t:{t:'i',l:['Element$Singleton',{t:$_Object}]}}]}],$cont:Singleton,pa:3,d:['$','Singleton','$m','findLast']};};singleton$.$_sort=function($14l){var singleton$=this;return singleton$;};singleton$.$_sort.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Singleton,a:{Element$Singleton:'Element$Singleton'}},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Element$Singleton','Element$Singleton']}}},$rt:{t:Comparison},ps:[{nm:'a',mt:'prm',$t:'Element$Singleton'},{nm:'b',mt:'prm',$t:'Element$Singleton'}]}],$cont:Singleton,pa:3,d:['$','Singleton','$m','sort']};};singleton$.any=function($14m){var singleton$=this;return $14m(singleton$.$13a);};singleton$.any.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Singleton']}}},$rt:{t:$_Boolean},ps:[{nm:'e',mt:'prm',$t:'Element$Singleton'}]}],$cont:Singleton,pa:3,d:['$','Singleton','$m','any']};};singleton$.$_every=function($14n){var singleton$=this;return $14n(singleton$.$13a);};singleton$.$_every.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Singleton']}}},$rt:{t:$_Boolean},ps:[{nm:'e',mt:'prm',$t:'Element$Singleton'}]}],$cont:Singleton,pa:3,d:['$','Singleton','$m','every']};};singleton$.skip=function($14o){var singleton$=this;return ($14p=(($14o<1)?singleton$:null),nn$($14p)?$14p:empty());};singleton$.skip.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Singleton,a:{Element$Singleton:'Element$Singleton'}},{t:Empty}]},ps:[{nm:'skipping',mt:'prm',$t:{t:Integer}}],$cont:Singleton,pa:3,d:['$','Singleton','$m','skip']};};singleton$.take=function($14q){var singleton$=this;return ($14r=(($14q>0)?singleton$:null),nn$($14r)?$14r:empty());};singleton$.take.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Singleton,a:{Element$Singleton:'Element$Singleton'}},{t:Empty}]},ps:[{nm:'taking',mt:'prm',$t:{t:Integer}}],$cont:Singleton,pa:3,d:['$','Singleton','$m','take']};};atr$(singleton$,'coalesced',function(){var singleton$=this;return function(){var $14t;if(nn$(($14t=singleton$.$13a)))return Singleton($14t,{Element$Singleton:mit$([singleton$.$$targs$$.Element$Singleton,{t:$_Object}])});else return empty()}()},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Singleton,a:{Element$Singleton:{t:'i',l:['Element$Singleton',{t:$_Object}]}}},{t:Empty}]},$cont:Singleton,pa:3,d:['$','Singleton','$at','coalesced']};});singleton$.chain=function($14u,$nycolo$){var singleton$=this;return $14u.follow(singleton$.$13a,{Other$follow:singleton$.$$targs$$.Element$Singleton});};singleton$.chain.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:{t:'u',l:['Element$Singleton','Other$chain']}}},ps:[{nm:'other',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'OtherAbsent$chain',Element$Iterable:'Other$chain'}}}],$cont:Singleton,tp:{Other$chain:{},OtherAbsent$chain:{sts:[{t:Null}]}},pa:3,d:['$','Singleton','$m','chain']};};singleton$.each=function($14v){var singleton$=this;return $14v(singleton$.$13a);};atr$(singleton$,'indexed',function(){var singleton$=this;return sarg$(function($14w){switch($14w){case 0:return Entry(0,singleton$.$13a,{Key$Entry:{t:Integer},Item$Entry:singleton$.$$targs$$.Element$Singleton});}return finished();},undefined,{Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:singleton$.$$targs$$.Element$Singleton}},Absent$Iterable:{t:Nothing}});},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Element$Iterable:{t:Entry,a:{Key$Entry:{t:Integer},Item$Entry:'Element$Singleton'}},Absent$Iterable:{t:Nothing}}},$cont:Singleton,pa:3,d:['$','Singleton','$at','indexed']};});singleton$.follow=function($14x,$xsz5fq$){var singleton$=this;return sarg$(function($14y){switch($14y){case 0:return $14x;case 1:return singleton$.$13a;}return finished();},undefined,{Element$Iterable:mut$([$xsz5fq$.Other$follow,singleton$.$$targs$$.Element$Singleton]),Absent$Iterable:{t:Nothing}});};singleton$.follow.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:{t:'u',l:['Other$follow','Element$Singleton']}}},ps:[{nm:'head',mt:'prm',$t:'Other$follow'}],$cont:Singleton,tp:{Other$follow:{}},pa:3,an:function(){return[doc$($CCMM$,'$:Singleton:$m:follow')];},d:['$','Singleton','$m','follow']};};atr$(singleton$,'cycled',function(){var singleton$=this;return function(){function $150($$targs$$){var $150$=new $150.$$;$150$.outer$=singleton$;$150$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:{t:Nothing},Element$Iterable:singleton$.$$targs$$.Element$Singleton},$150$);return $150$;};$150.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:singleton$.$prop$getCycled,sts:[{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Element$Singleton'}}],d:['$','Singleton','$at','cycled']};};function $init$$150(){if($150.$$===undefined){initTypeProto($150,'ceylon.language::Singleton.anonymous#1',Basic,$init$Iterable());
(function($150$){atr$($150$,'string',function(){var $150$=this;return singleton$.string.plus(".cycled");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:singleton$.$prop$getCycled,pa:3,d:['$','Singleton','$at','cycled','$at','string']};});atr$($150$,'size',function(){var $150$=this;asrt$((false),"stream is infinite: \'false\' at Singleton.ceylon (214:19-214:25)",'213:12-214:26','Singleton.ceylon');
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:singleton$.$prop$getCycled,pa:3,d:['$','Singleton','$at','cycled','$at','size']};});$150$.iterator=function(){var $150$=this;return function(){function $151($$targs$$){var $151$=new $151.$$;$151$.outer$=$150$;$151$.$$targs$$=$$targs$$;Iterator({Element$Iterator:singleton$.$$targs$$.Element$Singleton},$151$);return $151$;};$151.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:singleton$.$prop$getCycled,sts:[{t:Iterator,a:{Element$Iterator:'Element$Singleton'}}],d:['$','Singleton','$at','cycled']};};function $init$$151(){if($151.$$===undefined){initTypeProto($151,'ceylon.language::Singleton.anonymous#1.anonymous#2',Basic,$init$Iterator());
(function($151$){$151$.next=function(){var $151$=this;return singleton$.$13a;};atr$($151$,'string',function(){var $151$=this;return $150$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:singleton$.$prop$getCycled,pa:3,d:['$','Singleton','$at','cycled','$at','string']};});})($151.$$.prototype);}
return $151;}
$150$.$init$$151=$init$$151;$init$$151();return $151();}();};})($150.$$.prototype);}
return $150;}
singleton$.$init$$150=$init$$150;$init$$150();return $150();}()},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Element$Singleton'}},$cont:Singleton,pa:3,an:function(){return[doc$($CCMM$,'$:Singleton:$at:cycled'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Sequence().$$.prototype.repeat)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','Singleton','$at','cycled']};});singleton$.interpose=function($154,$155,$18zr94$){var singleton$=this;if($155===undefined){$155=singleton$.interpose$defs$step($154,$155);}
asrt$((($155>=1)),"step must be strictly positive: \'step>=1\' at Singleton.ceylon (229:15-229:23)",'228:8-229:24','Singleton.ceylon');
return singleton$;};singleton$.interpose.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Singleton,a:{Element$Singleton:'Element$Singleton'}},ps:[{nm:'element',mt:'prm',$t:'Other$interpose'},{nm:'step',mt:'prm',def:1,$t:{t:Integer}}],$cont:Singleton,tp:{Other$interpose:{}},pa:3,an:function(){return[doc("This singleton.")];},d:['$','Singleton','$m','interpose']};};atr$(singleton$,'distinct',function(){var singleton$=this;return singleton$},undefined,function(){return{mod:$CCMM$,$t:{t:Singleton,a:{Element$Singleton:'Element$Singleton'}},$cont:Singleton,pa:3,an:function(){return[doc("This singleton.")];},d:['$','Singleton','$at','distinct']};});atr$(singleton$,'paired',function(){var singleton$=this;return empty()},undefined,function(){return{mod:$CCMM$,$t:{t:Empty},$cont:Singleton,pa:3,an:function(){return[doc("An empty stream.")];},d:['$','Singleton','$at','paired']};});})(Singleton.$$.prototype);}
return Singleton;}
ex$.$init$Singleton=$init$Singleton;$init$Singleton();Singleton.inst$$=function($158){var singleton$=new Singleton.$$;
set_type_args(singleton$,{Element$Singleton:$158.$$targs$$.Type$Class.a.Element$Singleton});
set_type_args(singleton$,{Element$Sequence:singleton$.$$targs$$.Element$Singleton,Element$Sequential:singleton$.$$targs$$.Element$Singleton,Element$List:singleton$.$$targs$$.Element$Singleton,Element$Collection:singleton$.$$targs$$.Element$Singleton,Element$Iterable:singleton$.$$targs$$.Element$Singleton,Absent$Iterable:{t:Null},Element$Category:{t:$_Object},Key$Correspondence:{t:Integer},Item$Correspondence:singleton$.$$targs$$.Element$Singleton,Element$Ranged:singleton$.$$targs$$.Element$Singleton,Subrange$Ranged:{t:List,a:{Element$List:singleton$.$$targs$$.Element$Singleton}},Index$Ranged:{t:Integer}});
return singleton$;};Singleton.ser$get$=function(ref,o){var n=ref.attribute.qualifiedName;if(n==='ceylon.language::Singleton.element')return o.$13a_;else throw new TypeError('unknown attribute');};Singleton.ser$set$=function(ref,o,i){if(!is$(ref,{t:Member$serialization}))throw AssertionError('unexpected reachable reference');var n=ref.attribute.qualifiedName;
if(n==='ceylon.language::Singleton.element')o.$13a_=i;
else throw new TypeError('unknown attribute');};Singleton.ser$refs$=function(o){return [MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$get$13a))];};var $13u,$13v,$13y,$141,$143,$145,$147,$14a,$14h,$14p,$14r;function Span(first,last,$$targs$$,span$){$init$Span();
if(span$===undefined)span$=new Span.$$;
set_type_args(span$,$$targs$$);
span$.$159_=first;span$.$15a_=last;Range({Element$Range:span$.$$targs$$.Element$Span},span$);span$.$15b_=(span$.last.offsetSign(span$.first)>=0);span$.$15c_=((span$.first.offsetSign(span$.first.successor)>0)&&(span$.last.predecessor.offsetSign(span$.last)>0));return span$;}
Span.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Range,a:{Element$Range:'Element$Span'}},ps:[{nm:'first',mt:'prm',$t:'Element$Span',pa:3,an:function(){return[doc$($CCMM$,'$:Span:$at:first')];}},{nm:'last',mt:'prm',$t:'Element$Span',pa:3,an:function(){return[doc$($CCMM$,'$:Span:$at:last')];}}],tp:{Element$Span:{sts:[{t:Enumerable,a:{Other$Enumerable:'Element$Span'}}]}},pa:2080,an:function(){return[doc$($CCMM$,'$:Span'),by(["Gavin"].$sa$({t:$_String})),see([$init$openClass$jsint()(lmp$(ex$,'$'),Measure),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Enumerable)].$sa$(mut$([{t:ClassWithInitializerDeclaration$meta$declaration},{t:InterfaceDeclaration$meta$declaration}])))];},d:['$','Span']};};
ex$.Span=Span;function $init$Span(){if(Span.$$===undefined){initTypeProto(Span,'ceylon.language::Span',$init$Range());
(function(span$){atr$(span$,'first',function(){return this.$159_;},undefined,function(){return{mod:$CCMM$,$t:'Element$Span',$cont:Span,pa:3,an:function(){return[doc$($CCMM$,'$:Span:$at:first')];},d:['$','Span','$at','first']};});atr$(span$,'last',function(){return this.$15a_;},undefined,function(){return{mod:$CCMM$,$t:'Element$Span',$cont:Span,pa:3,an:function(){return[doc$($CCMM$,'$:Span:$at:last')];},d:['$','Span','$at','last']};});atr$(span$,'string',function(){var span$=this;return span$.first.string.plus("..").plus(span$.last.string);},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Span,pa:3,d:['$','Span','$at','string']};});atr$(span$,'increasing',function(){return this.$15b_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Span,pa:3,d:['$','Span','$at','increasing']};});atr$(span$,'decreasing',function(){var span$=this;return !span$.increasing;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Span,pa:3,d:['$','Span','$at','decreasing']};});atr$(span$,'$15c',function(){return this.$15c_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Span,an:function(){return[doc$($CCMM$,'$:Span:$at:recursive$1gdd1o')];},d:['$','Span','$at','recursive$1gdd1o']};});span$.$15d=function($15e){var span$=this;return ($15f=(span$.increasing?$15e.successor:null),nn$($15f)?$15f:$15e.predecessor);};span$.$15d.$crtmm$=function(){return{mod:$CCMM$,$t:'Element$Span',ps:[{nm:'x',mt:'prm',$t:'Element$Span'}],$cont:Span,d:['$','Span','$m','next$xciqj1']};};span$.$15g=function($15h,$15i){var span$=this;return ($15j=(span$.increasing?$15h.neighbour($15i):null),nn$($15j)?$15j:$15h.neighbour((-$15i)));};span$.$15g.$crtmm$=function(){return{mod:$CCMM$,$t:'Element$Span',ps:[{nm:'x',mt:'prm',$t:'Element$Span'},{nm:'step',mt:'prm',$t:{t:Integer}}],$cont:Span,d:['$','Span','$m','nextStep$sxlqah']};};span$.$15k=function($15l){var span$=this;return ($15m=(span$.increasing?span$.first.neighbour($15l):null),nn$($15m)?$15m:span$.first.neighbour((-$15l)));};span$.$15k.$crtmm$=function(){return{mod:$CCMM$,$t:'Element$Span',ps:[{nm:'offset',mt:'prm',$t:{t:Integer}}],$cont:Span,d:['$','Span','$m','fromFirst$otuqgo']};};span$.$15n=function($15o){var span$=this;return ($15p=(span$.increasing?($15o.offsetSign(span$.last)>0):null),nn$($15p)?$15p:($15o.offsetSign(span$.last)<0));};span$.$15n.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'x',mt:'prm',$t:'Element$Span'}],$cont:Span,d:['$','Span','$m','afterLast$dudvro']};};span$.$15q=function($15r){var span$=this;return ($15s=(span$.increasing?($15r.offsetSign(span$.last)<0):null),nn$($15s)?$15s:($15r.offsetSign(span$.last)>0));};span$.$15q.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'x',mt:'prm',$t:'Element$Span'}],$cont:Span,d:['$','Span','$m','beforeLast$sti0n5']};};span$.$15t=function($15u){var span$=this;return ($15v=(span$.increasing?($15u.offsetSign(span$.first)<0):null),nn$($15v)?$15v:($15u.offsetSign(span$.first)>0));};span$.$15t.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'x',mt:'prm',$t:'Element$Span'}],$cont:Span,d:['$','Span','$m','beforeFirst$3osfad']};};span$.$15w=function($15x){var span$=this;return ($15y=(span$.increasing?($15x.offsetSign(span$.first)>0):null),nn$($15y)?$15y:($15x.offsetSign(span$.first)<0));};span$.$15w.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'x',mt:'prm',$t:'Element$Span'}],$cont:Span,d:['$','Span','$m','afterFirst$upgk2i']};};atr$(span$,'size',function(){var span$=this;var $15z=span$.last.offset(span$.first).magnitude;if(($15z<runtime().maxIntegerValue)){return $15z.plus(1);}
else{throw wrapexc(OverflowException("size of range"),'73:12-73:52','ceylon/language/Span.ceylon');}
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Span,pa:3,d:['$','Span','$at','size']};});span$.longerThan=function($160){var span$=this;return (($160<1)?true:(span$.$15c?(span$.size>$160):span$.$15q(span$.$15k($160.minus(1)))));};span$.shorterThan=function($161){var span$=this;return (($161<1)?true:(span$.$15c?(span$.size<$161):span$.$15n(span$.$15k($161.minus(1)))));};atr$(span$,'lastIndex',function(){var span$=this;return span$.size.minus(1);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Span,pa:3,d:['$','Span','$at','lastIndex']};});atr$(span$,'rest',function(){var span$=this;return ($162=(span$.first.equals(span$.last)?empty():null),nn$($162)?$162:span(span$.$15d(span$.first),span$.last,{Element$span:span$.$$targs$$.Element$Span}));},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Span'}},$cont:Span,pa:3,d:['$','Span','$at','rest']};});atr$(span$,'reversed',function(){var span$=this;return ($164=(span$.$15c?attrGetter(span$.getT$all()['ceylon.language::Sequence'],'reversed').call(this):null),nn$($164)?$164:span(span$.last,span$.first,{Element$span:span$.$$targs$$.Element$Span}))},undefined,function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:'Element$Span'}},$cont:Span,pa:3,an:function(){return[doc$($CCMM$,'$:Span:$at:reversed')];},d:['$','Span','$at','reversed']};});span$.getFromFirst=function($165){var span$=this;if(($165<0)){return null;}
else{if(span$.$15c){return (($165<span$.size)?span$.$15k($165):null);}
else{var $166=span$.$15k($165);return (!span$.$15n($166)?$166:null);}
}
};span$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$Span']},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:Span,pa:3,an:function(){return[doc$($CCMM$,'$:Span:$m:getFromFirst')];},d:['$','Span','$m','getFromFirst']};};span$.iterator=function(){var span$=this;return function(){function $167($$targs$$){var $167$=new $167.$$;$167$.outer$=span$;$167$.$$targs$$=$$targs$$;Iterator({Element$Iterator:span$.$$targs$$.Element$Span/*ORALE!Element inv pero Element var*/},$167$);$167$.$168_=true;$167$.$prop$get$168={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:span$.iterator,pa:1024,d:['$','Span','$m','iterator','$at','firstTime$p8bgch']};}};$167$.$prop$get$168.get=function(){return $168};$167$.$169_=span$.first;$167$.$prop$get$169={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Span',{t:Finished}]},$cont:span$.iterator,pa:1024,d:['$','Span','$m','iterator','$at','element$4p7at4']};}};$167$.$prop$get$169.get=function(){return $169};return $167$;};$167.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:span$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Span'}}],d:['$','Span','$m','iterator']};};function $init$$167(){if($167.$$===undefined){initTypeProto($167,'ceylon.language::Span.anonymous#0',Basic,$init$Iterator());
(function($167$){atr$($167$,'$168',function(){return this.$168_;},function($16a){return this.$168_=$16a;},function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:span$.iterator,pa:1024,d:['$','Span','$m','iterator','$at','firstTime$p8bgch']};});atr$($167$,'$169',function(){return this.$169_;},function($16b){return this.$169_=$16b;},function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Span',{t:Finished}]},$cont:span$.iterator,pa:1024,d:['$','Span','$m','iterator','$at','element$4p7at4']};});$167$.next=function(){var $167$=this;var $16c;if(!is$(($16c=$167$.$169),{t:Finished})){var $16d;if($167$.$168){$167$.$168=false;$16d=$16c;}
else{$16d=span$.$15d($16c);}
if((($16d.offset(span$.last)).valueOf()==(0).valueOf())){$167$.$169=finished();}
else{$167$.$169=$16d;}
return $16d;}
else{return $167$.$169;}
};$167$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Span',{t:Finished}]},ps:[],$cont:span$.iterator,pa:3,d:['$','Span','$m','iterator','$m','next']};};atr$($167$,'string',function(){var $167$=this;return "(".plus(span$.string).plus(").iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:span$.iterator,pa:3,d:['$','Span','$m','iterator','$at','string']};});})($167.$$.prototype);}
return $167;}
span$.$init$$167=$init$$167;$init$$167();return $167();}();};span$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Span'}},ps:[],$cont:Span,pa:3,an:function(){return[doc$($CCMM$,'$:Span:$m:iterator')];},d:['$','Span','$m','iterator']};};span$.by=function($16f){var span$=this;asrt$((($16f>0)),"step size must be greater than zero: \'step > 0\' at Span.ceylon (157:15-157:24)",'156:8-157:25','Span.ceylon');
return ($16g=((($16f).valueOf()==(1).valueOf())?span$:null),nn$($16g)?$16g:span$.By$Span($16f));var $16g;};span$.by.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Element$Span'}},ps:[{nm:'step',mt:'prm',$t:{t:Integer}}],$cont:Span,pa:3,d:['$','Span','$m','by']};};span$.shifted=function($16h){var span$=this;return ($16i=((($16h).valueOf()==(0).valueOf())?span$:null),nn$($16i)?$16i:Span(span$.first.neighbour($16h),span$.last.neighbour($16h),{Element$Span:span$.$$targs$$.Element$Span}));};span$.containsElement=function($16j){var span$=this;return ($16k=(span$.$15c?($16j.offset(span$.first)<=span$.last.offset(span$.first)):null),nn$($16k)?$16k:(!span$.$15n($16j)&&!span$.$15t($16j)));};span$.count=function($16l){var span$=this;var $16m=span$.first;var $16n=(0);while(span$.containsElement($16m)){if($16l($16m)){($16o=$16n,$16n=$16o.successor,$16o);var $16o;}
$16m=span$.$15d($16m);}
return $16n;};span$.count.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Element$Span']}}},$rt:{t:$_Boolean},ps:[{nm:'element',mt:'prm',$t:'Element$Span'}]}],$cont:Span,pa:3,d:['$','Span','$m','count']};};span$.includesRange=function($16p){var span$=this;var $16q=$16p;if(is$($16q,{t:Span,a:{Element$Span:span$.$$targs$$.Element$Span}})) {if(span$.$15c){return (($16q.first.offset(span$.first)<span$.size)&&($16q.last.offset(span$.first)<span$.size));}
else{return ((((span$.increasing).valueOf()==($16q.increasing).valueOf())&&!$16q.$15w(span$.first))&&!$16q.$15q(span$.last));}
}
else if(is$($16q,{t:Measure,a:{Element$Measure:span$.$$targs$$.Element$Span}})) {if(span$.decreasing){return false;}
else{var $16r=$16q.first.offset(span$.first);return ($16s=$16r,$16s.compare((0))!==smaller()&&$16s.compare(span$.size.minus($16q.size))!==larger());}
}
};span$.includesRange.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'range',mt:'prm',$t:{t:Range,a:{Element$Range:'Element$Span'}}}],$cont:Span,pa:3,d:['$','Span','$m','includesRange']};};span$.equals=function($16t){var span$=this;var $16u;if(is$(($16u=$16t),{t:Span,a:{Element$Span:{t:$_Object,uv:'out'}}})){return ($16u.first.equals(span$.first)&&$16u.last.equals(span$.last));}
else{var $16v;if(is$(($16v=$16u),{t:Measure,a:{Element$Measure:{t:$_Object,uv:'out'}}})){return ((span$.increasing&&$16v.first.equals(span$.first))&&(($16v.size).valueOf()==(span$.size).valueOf()));}
else{return span$.getT$all()['ceylon.language::List'].$$.prototype.equals.call(span$,$16v);}
}
};span$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:Span,pa:3,d:['$','Span','$m','equals']};};span$.measure=function($16w,$16x){var span$=this;return ($16y=(($16x<=0)?empty():null),nn$($16y)?$16y:span$.span($16w,$16w.plus($16x).minus(1)));};span$.measure.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Span'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:Span,pa:3,d:['$','Span','$m','measure']};};span$.span=function($16z,$170){var span$=this;if(($16z<=$170)){if((($170<0)||!span$.longerThan($16z))){return empty();}
else{return span(($171=span$.$_get($16z),nn$($171)?$171:span$.first),($172=span$.$_get($170),nn$($172)?$172:span$.last),{Element$span:span$.$$targs$$.Element$Span});var $171,$172;}
}
else{if((($16z<0)||!span$.longerThan($170))){return empty();}
else{var $173=span(($174=span$.$_get($170),nn$($174)?$174:span$.first),($175=span$.$_get($16z),nn$($175)?$175:span$.last),{Element$span:span$.$$targs$$.Element$Span});var $174,$175;return $173.reversed;}
}
};span$.span.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Span'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}},{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Span,pa:3,d:['$','Span','$m','span']};};span$.spanFrom=function($176){var span$=this;if(($176<=0)){return span$;}
else{if(span$.longerThan($176)){var $177;asrt$((nn$(($177=span$.$_get($176)))),"Assertion failed: \'exists first = this[from]\' at Span.ceylon (305:19-305:45)",'305:12-305:46','Span.ceylon');
return span($177,span$.last,{Element$span:span$.$$targs$$.Element$Span});}
else{return empty();}
}
};span$.spanFrom.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Span'}},ps:[{nm:'from',mt:'prm',$t:{t:Integer}}],$cont:Span,pa:3,d:['$','Span','$m','spanFrom']};};span$.spanTo=function($178){var span$=this;if(($178<0)){return empty();}
else{if(span$.longerThan($178.plus(1))){var $179;asrt$((nn$(($179=span$.$_get($178)))),"Assertion failed: \'exists last = this[to]\' at Span.ceylon (317:19-317:42)",'317:12-317:43','Span.ceylon');
return span(span$.first,$179,{Element$span:span$.$$targs$$.Element$Span});}
else{return span$;}
}
};span$.spanTo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$Span'}},ps:[{nm:'to',mt:'prm',$t:{t:Integer}}],$cont:Span,pa:3,d:['$','Span','$m','spanTo']};};span$.each=function($17a){var span$=this;var $17b=span$.first;while(true){$17a($17b);if((($17b.offset(span$.last)).valueOf()==(0).valueOf())){break;}
else{$17b=span$.$15d($17b);}
}
};span$.each.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'step',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Anything},Arguments$Callable:{t:'T',l:['Element$Span']}}},$rt:{t:Anything},ps:[{nm:'element',mt:'prm',$t:'Element$Span'}]}],$cont:Span,pa:3,d:['$','Span','$m','each']};};function By$Span($17c,$17d$){$init$By$Span();
if($17d$===undefined)$17d$=new this.By$Span.$$;
$17d$.outer$=this;$17d$.$$targs$$={Absent$Iterable:{t:Nothing},Element$Iterable:$17d$.outer$.$$targs$$.Element$Span/*ORALE!Element inv pero Element var*/};$17d$.$17c_=$17c;Iterable({Absent$Iterable:{t:Nothing},Element$Iterable:$17d$.outer$.$$targs$$.Element$Span/*ORALE!Element inv pero Element var*/},$17d$);return $17d$;}
By$Span.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'step',mt:'prm',$t:{t:Integer}}],$cont:Span,sts:[{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Element$Span'}}],d:['$','Span','$c','By$ry6enl']};};function $init$By$Span(){if(By$Span.$$===undefined){initTypeProto(By$Span,'ceylon.language::Span.By',Basic,$init$Iterable());
Span.By$Span=By$Span;
(function($17d$){atr$($17d$,'$17c',function(){return this.$17c_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:span$.By$Span,d:['$','Span','$c','By$ry6enl','$at','step$axxwpk']};});atr$($17d$,'size',function(){var $17d$=this;return (1).plus($17d$.outer$.size.minus(1).divided($17d$.$17c));},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:span$.By$Span,pa:3,d:['$','Span','$c','By$ry6enl','$at','size']};});atr$($17d$,'first',function(){var $17d$=this;return $17d$.outer$.first;},undefined,function(){return{mod:$CCMM$,$t:'Element$Span',$cont:span$.By$Span,pa:3,d:['$','Span','$c','By$ry6enl','$at','first']};});atr$($17d$,'string',function(){var $17d$=this;return "(".plus($17d$.outer$.string).plus(").by(").plus($17d$.$17c.string).plus(")");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:span$.By$Span,pa:3,d:['$','Span','$c','By$ry6enl','$at','string']};});$17d$.iterator=function(){var $17d$=this;if($17d$.outer$.$15c){return function(){function $17e($$targs$$){var $17e$=new $17e.$$;$17e$.outer$=$17d$;$17e$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$17d$.outer$.$$targs$$.Element$Span/*ORALE!Element inv pero Element var*/},$17e$);$17e$.$17f_=(0);$17e$.$prop$get$17f={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$17d$.iterator,pa:1024,d:['$','Span','$c','By$ry6enl','$m','iterator','$at','count$zhc9mv']};}};$17e$.$prop$get$17f.get=function(){return $17f};$17e$.$17g_=$17d$.first;$17e$.$prop$get$17g={$crtmm$:function(){return{mod:$CCMM$,$t:'Element$Span',$cont:$17d$.iterator,pa:1027,d:['$','Span','$c','By$ry6enl','$m','iterator','$at','current$xkyyld']};}};$17e$.$prop$get$17g.get=function(){return $17g};return $17e$;};$17e.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$17d$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Span'}}],d:['$','Span','$c','By$ry6enl','$m','iterator']};};function $init$$17e(){if($17e.$$===undefined){initTypeProto($17e,'ceylon.language::Span.By.anonymous#1',Basic,$init$Iterator());
(function($17e$){atr$($17e$,'$17f',function(){return this.$17f_;},function($17h){return this.$17f_=$17h;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$17d$.iterator,pa:1024,d:['$','Span','$c','By$ry6enl','$m','iterator','$at','count$zhc9mv']};});atr$($17e$,'$17g',function(){return this.$17g_;},function($17i){return this.$17g_=$17i;},function(){return{mod:$CCMM$,$t:'Element$Span',$cont:$17d$.iterator,pa:1027,d:['$','Span','$c','By$ry6enl','$m','iterator','$at','current$xkyyld']};});$17e$.next=function(){var $17e$=this;if((($17e$.$17f=$17e$.$17f.successor)>$17d$.size)){return finished();}
else{var $17j=$17e$.$17g;$17e$.$17g=$17e$.$17g.neighbour($17d$.$17c);return $17j;}
};$17e$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Span',{t:Finished}]},ps:[],$cont:$17d$.iterator,pa:3,d:['$','Span','$c','By$ry6enl','$m','iterator','$m','next']};};atr$($17e$,'string',function(){var $17e$=this;return $17d$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$17d$.iterator,pa:3,d:['$','Span','$c','By$ry6enl','$m','iterator','$at','string']};});})($17e.$$.prototype);}
return $17e;}
$17d$.$init$$17e=$init$$17e;$init$$17e();return $17e();}();}
else{return function(){function $17l($$targs$$){var $17l$=new $17l.$$;$17l$.outer$=$17d$;$17l$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$17d$.outer$.$$targs$$.Element$Span/*ORALE!Element inv pero Element var*/},$17l$);$17l$.$17m_=$17d$.first;$17l$.$prop$get$17m={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Span',{t:Finished}]},$cont:$17d$.iterator,pa:1027,d:['$','Span','$c','By$ry6enl','$m','iterator','$at','current$nxhyw']};}};$17l$.$prop$get$17m.get=function(){return $17m};$17l$.$17n_=true;$17l$.$prop$get$17n={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$17d$.iterator,pa:1027,d:['$','Span','$c','By$ry6enl','$m','iterator','$at','firstTime$d2tu8c']};}};$17l$.$prop$get$17n.get=function(){return $17n};return $17l$;};$17l.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$17d$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Element$Span'}}],d:['$','Span','$c','By$ry6enl','$m','iterator']};};function $init$$17l(){if($17l.$$===undefined){initTypeProto($17l,'ceylon.language::Span.By.anonymous#2',Basic,$init$Iterator());
(function($17l$){atr$($17l$,'$17m',function(){return this.$17m_;},function($17o){return this.$17m_=$17o;},function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Span',{t:Finished}]},$cont:$17d$.iterator,pa:1027,d:['$','Span','$c','By$ry6enl','$m','iterator','$at','current$nxhyw']};});atr$($17l$,'$17n',function(){return this.$17n_;},function($17p){return this.$17n_=$17p;},function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:$17d$.iterator,pa:1027,d:['$','Span','$c','By$ry6enl','$m','iterator','$at','firstTime$d2tu8c']};});$17l$.next=function(){var $17l$=this;if($17l$.$17n){$17l$.$17n=false;return $17l$.$17m;}
else{var $17q;if(is$(($17q=$17l$.$17m),$17d$.outer$.$$targs$$.Element$Span)){var $17r=$17d$.outer$.$15g($17q,$17d$.$17c);if(!$17d$.outer$.containsElement($17r)){$17l$.$17m=finished();}
else{$17l$.$17m=$17r;}
}
return $17l$.$17m;}
};$17l$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$Span',{t:Finished}]},ps:[],$cont:$17d$.iterator,pa:3,d:['$','Span','$c','By$ry6enl','$m','iterator','$m','next']};};atr$($17l$,'string',function(){var $17l$=this;return $17d$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$17d$.iterator,pa:3,d:['$','Span','$c','By$ry6enl','$m','iterator','$at','string']};});})($17l.$$.prototype);}
return $17l;}
$17d$.$init$$17l=$init$$17l;$init$$17l();return $17l();}();}
};$17d$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$Span'}},ps:[],$cont:span$.By$Span,pa:3,d:['$','Span','$c','By$ry6enl','$m','iterator']};};})(By$Span.$$.prototype);}
return By$Span;}
span$.$init$By$Span=$init$By$Span;span$.By$Span=By$Span;$init$By$Span();
})(Span.$$.prototype);}
return Span;}
ex$.$init$Span=$init$Span;$init$Span();Span.inst$$=function($17t){var span$=new Span.$$;
set_type_args(span$,{Element$Span:$17t.$$targs$$.Type$Class.a.Element$Span});
set_type_args(span$,{Element$Range:span$.$$targs$$.Element$Span,Element$Sequence:span$.$$targs$$.Element$Span,Element$Sequential:span$.$$targs$$.Element$Span,Element$List:span$.$$targs$$.Element$Span,Element$Collection:span$.$$targs$$.Element$Span,Element$Iterable:span$.$$targs$$.Element$Span,Absent$Iterable:{t:Null},Element$Category:{t:$_Object},Key$Correspondence:{t:Integer},Item$Correspondence:span$.$$targs$$.Element$Span,Element$Ranged:span$.$$targs$$.Element$Span,Subrange$Ranged:{t:List,a:{Element$List:span$.$$targs$$.Element$Span/*ORALE!Element inv pero Element var*/}},Index$Ranged:{t:Integer}});
return span$;};Span.ser$get$=function(ref,o){var n=ref.attribute.qualifiedName;if(n==='ceylon.language::Span.first')return o.first_;else if(n==='ceylon.language::Span.last')return o.last_;else if(n==='ceylon.language::Span.recursive')return o.$15c_;else if(n==='ceylon.language::Span.increasing')return o.increasing_;else return Range.ser$get$(ref,o);};Span.ser$set$=function(ref,o,i){if(!is$(ref,{t:Member$serialization}))throw AssertionError('unexpected reachable reference');var n=ref.attribute.qualifiedName;
if(n==='ceylon.language::Span.first')o.first_=i;
else if(n==='ceylon.language::Span.last')o.last_=i;
else if(n==='ceylon.language::Span.recursive')o.$15c_=i;
else if(n==='ceylon.language::Span.increasing')o.increasing_=i;
else Range.ser$get$(ref,o,i);};Span.ser$refs$=function(o){var a=Range.ser$refs$(o);a.push(MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$getFirst)),MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$getLast)),MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$get$15c)),MemberImpl$impl(OpenValue$jsint(lmp$(ex$,'$'),o.$prop$getIncreasing)));return a;};var $15f,$15j,$15m,$15p,$15s,$15v,$15y,$162,$164,$16i,$16k,$16y;function span($17u,$17v,$eme4qk$){return Span($17u,$17v,{Element$Span:$eme4qk$.Element$span});};span.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Range,a:{Element$Range:'Element$span'}},ps:[{nm:'first',mt:'prm',$t:'Element$span'},{nm:'last',mt:'prm',$t:'Element$span'}],tp:{Element$span:{sts:[{t:Enumerable,a:{Other$Enumerable:'Element$span'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:span')];},d:['$','span']};};
ex$.span=span;function StringBuilder(stringBuilder$){$init$StringBuilder();
if(stringBuilder$===undefined)stringBuilder$=new StringBuilder.$$;
stringBuilder$.$$targs$$={Element$List:{t:Character}};List({Element$List:{t:Character}},stringBuilder$);stringBuilder$.$17w_="";return stringBuilder$;}
StringBuilder.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:List,a:{Element$List:{t:Character}}}],pa:33,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder']};};
ex$.StringBuilder=StringBuilder;function $init$StringBuilder(){if(StringBuilder.$$===undefined){initTypeProto(StringBuilder,'ceylon.language::StringBuilder',Basic,$init$List());
(function(stringBuilder$){atr$(stringBuilder$,'$17w',function(){return this.$17w_;},function($17x){return this.$17w_=$17x;},function(){return{mod:$CCMM$,$t:{t:$_String},$cont:StringBuilder,pa:1024,d:['$','StringBuilder','$at','str$xxmaxx']};});atr$(stringBuilder$,'size',function(){var stringBuilder$=this;return stringBuilder$.$17w.size},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:StringBuilder,pa:3,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$at','size']};});atr$(stringBuilder$,'lastIndex',function(){var stringBuilder$=this;return (((stringBuilder$.$17w.size).valueOf()==(0).valueOf())?null:stringBuilder$.$17w.size.minus(1))},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},$cont:StringBuilder,pa:3,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$at','lastIndex']};});atr$(stringBuilder$,'string',function(){var stringBuilder$=this;return stringBuilder$.$17w},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:StringBuilder,pa:3,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$at','string']};});stringBuilder$.iterator=function(){var stringBuilder$=this;return stringBuilder$.$17w.iterator();};stringBuilder$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:Character}}},ps:[],$cont:StringBuilder,pa:3,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','iterator']};};stringBuilder$.$_substring=function($181,$182){var stringBuilder$=this;asrt$((($181>=0)),"index must not be negative: \'index>=0\' at StringBuilder.ceylon (339:15-339:24)",'338:8-339:25','StringBuilder.ceylon');
asrt$((($181<=stringBuilder$.size)),"index must not be greater than size: \'index<=size\' at StringBuilder.ceylon (341:14-341:26)",'340:8-341:27','StringBuilder.ceylon');
asrt$((($181.plus($182)<=stringBuilder$.size)),"index+length must not be greater than size: \'index+length<=size\' at StringBuilder.ceylon (343:15-343:34)",'342:8-343:35','StringBuilder.ceylon');
return (($182>0)?stringBuilder$.$17w.span($181,$182):"");};stringBuilder$.$_substring.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','substring']};};stringBuilder$.getFromFirst=function($183){var stringBuilder$=this;return ((($183<0)||($183>stringBuilder$.size))?null:stringBuilder$.$17w.getFromFirst($183));};stringBuilder$.getFromFirst.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Character}]},ps:[{nm:'index',mt:'prm',$t:{t:Integer}}],$cont:StringBuilder,pa:3,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','getFromFirst']};};stringBuilder$.append=function($184){var stringBuilder$=this;stringBuilder$.$17w=stringBuilder$.$17w.plus($184);return stringBuilder$;};stringBuilder$.append.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'string',mt:'prm',$t:{t:$_String}}],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','append']};};stringBuilder$.prepend=function($185){var stringBuilder$=this;stringBuilder$.$17w=$185.plus(stringBuilder$.$17w);return stringBuilder$;};stringBuilder$.prepend.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'string',mt:'prm',$t:{t:$_String}}],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','prepend']};};stringBuilder$.appendCharacter=function($186){var stringBuilder$=this;stringBuilder$.$17w=stringBuilder$.$17w.plus($186.string);return stringBuilder$;};stringBuilder$.appendCharacter.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'character',mt:'prm',$t:{t:Character}}],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','appendCharacter']};};stringBuilder$.prependCharacter=function($187){var stringBuilder$=this;stringBuilder$.$17w=$187.string.plus(stringBuilder$.$17w);return stringBuilder$;};stringBuilder$.prependCharacter.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'character',mt:'prm',$t:{t:Character}}],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','prependCharacter']};};stringBuilder$.clear=function(){var stringBuilder$=this;stringBuilder$.$17w="";return stringBuilder$;};stringBuilder$.clear.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','clear']};};stringBuilder$.insert=function($188,$189){var stringBuilder$=this;asrt$((($188>=0)),"index must not be negative: \'index>=0\' at StringBuilder.ceylon (386:15-386:24)",'385:8-386:25','StringBuilder.ceylon');
asrt$((($188<=stringBuilder$.size)),"index must not be greater than size: \'index<=size\' at StringBuilder.ceylon (388:14-388:26)",'387:8-388:27','StringBuilder.ceylon');
stringBuilder$.$17w=stringBuilder$.$17w.measure(0,$188).plus($189).plus(stringBuilder$.$17w.spanFrom($188));return stringBuilder$;};stringBuilder$.insert.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'string',mt:'prm',$t:{t:$_String}}],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','insert']};};stringBuilder$.insertCharacter=function($18a,$18b){var stringBuilder$=this;return stringBuilder$.insert($18a,$18b.string);};stringBuilder$.insertCharacter.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'character',mt:'prm',$t:{t:Character}}],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','insertCharacter']};};stringBuilder$.$_replace=function($18c,$18d,$18e){var stringBuilder$=this;asrt$((($18c>=0)),"index must not be negative: \'index>=0\' at StringBuilder.ceylon (402:15-402:24)",'401:8-402:25','StringBuilder.ceylon');
asrt$((($18c<=stringBuilder$.size)),"index must not be greater than size: \'index<=size\' at StringBuilder.ceylon (404:14-404:26)",'403:8-404:27','StringBuilder.ceylon');
asrt$((($18c.plus($18d)<=stringBuilder$.size)),"index+length must not be greater than size: \'index+length<=size\' at StringBuilder.ceylon (406:15-406:34)",'405:8-406:35','StringBuilder.ceylon');
if(!$18e.empty){stringBuilder$.$17w=stringBuilder$.$17w.measure(0,$18c).plus($18e).plus(stringBuilder$.$17w.spanFrom($18c.plus($18d)));}
return stringBuilder$;};stringBuilder$.$_replace.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}},{nm:'string',mt:'prm',$t:{t:$_String}}],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','replace']};};stringBuilder$.$_delete=function($18f,$18g){var stringBuilder$=this;asrt$((($18f>=0)),"index must not be negative: \'index>=0\' at StringBuilder.ceylon (416:15-416:24)",'415:8-416:25','StringBuilder.ceylon');
asrt$((($18f<=stringBuilder$.size)),"index must not be greater than size: \'index<=size\' at StringBuilder.ceylon (418:14-418:26)",'417:8-418:27','StringBuilder.ceylon');
asrt$((($18f.plus($18g)<=stringBuilder$.size)),"index+length must not be greater than size: \'index+length<=size\' at StringBuilder.ceylon (420:15-420:34)",'419:8-420:35','StringBuilder.ceylon');
if(($18g>0)){stringBuilder$.$17w=stringBuilder$.$17w.measure(0,$18f).plus(stringBuilder$.$17w.spanFrom($18f.plus($18g)));}
return stringBuilder$;};stringBuilder$.$_delete.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','delete']};};stringBuilder$.deleteInitial=function($18h){var stringBuilder$=this;asrt$((($18h<=stringBuilder$.size)),"length must not be greater than size: \'length<=size\' at StringBuilder.ceylon (430:15-430:28)",'429:8-430:29','StringBuilder.ceylon');
if(($18h>0)){stringBuilder$.$17w=stringBuilder$.$17w.spanFrom($18h);}
return stringBuilder$;};stringBuilder$.deleteInitial.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','deleteInitial']};};stringBuilder$.deleteTerminal=function($18i){var stringBuilder$=this;asrt$((($18i<=stringBuilder$.size)),"length must not be greater than size: \'length<=size\' at StringBuilder.ceylon (440:15-440:28)",'439:8-440:29','StringBuilder.ceylon');
if(($18i>0)){stringBuilder$.$17w=stringBuilder$.$17w.measure(0,stringBuilder$.size.minus($18i));}
return stringBuilder$;};stringBuilder$.deleteTerminal.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'length',mt:'prm',$t:{t:Integer}}],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','deleteTerminal']};};stringBuilder$.reverseInPlace=function(){var stringBuilder$=this;stringBuilder$.$17w=stringBuilder$.$17w.reversed;return stringBuilder$;};stringBuilder$.reverseInPlace.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[],$cont:StringBuilder,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','reverseInPlace']};};stringBuilder$.equals=function($18j){var stringBuilder$=this;return stringBuilder$.$17w.equals($18j);};stringBuilder$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'that',mt:'prm',$t:{t:$_Object}}],$cont:StringBuilder,pa:3,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$m','equals']};};atr$(stringBuilder$,'hash',function(){var stringBuilder$=this;return stringBuilder$.$17w.hash},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:StringBuilder,pa:3,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','StringBuilder','$at','hash']};});stringBuilder$.appendAll=function($18l){var stringBuilder$=this;var $18n;for(var $18m=$18l.iterator();($18n=$18m.next())!==finished();){stringBuilder$.append($18n);}return stringBuilder$;};stringBuilder$.appendAll.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'strings',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:$_String}}}}],$cont:StringBuilder$$N,pa:1,an:function(){return[doc$($CCMM$,'$:StringBuilder:$m:appendAll'),$_native()];},d:['$','StringBuilder','$m','appendAll']};};stringBuilder$.prependAll=function($18o){var stringBuilder$=this;var $18q;for(var $18p=$18o.iterator();($18q=$18p.next())!==finished();){stringBuilder$.prepend($18q);}return stringBuilder$;};stringBuilder$.prependAll.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[{nm:'strings',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:$_String}}}}],$cont:StringBuilder$$N,pa:1,an:function(){return[doc$($CCMM$,'$:StringBuilder:$m:prependAll'),$_native()];},d:['$','StringBuilder','$m','prependAll']};};stringBuilder$.appendNewline=function(){var stringBuilder$=this;return stringBuilder$.appendCharacter(Character(10,true));};stringBuilder$.appendNewline.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[],$cont:StringBuilder$$N,pa:1,an:function(){return[doc("Append a newline character."),$_native()];},d:['$','StringBuilder','$m','appendNewline']};};stringBuilder$.appendSpace=function(){var stringBuilder$=this;return stringBuilder$.appendCharacter(Character(32,true));};stringBuilder$.appendSpace.$crtmm$=function(){return{mod:$CCMM$,$t:{t:StringBuilder},ps:[],$cont:StringBuilder$$N,pa:1,an:function(){return[doc("Append a space character."),$_native()];},d:['$','StringBuilder','$m','appendSpace']};};})(StringBuilder.$$.prototype);}
return StringBuilder;}
ex$.$init$StringBuilder=$init$StringBuilder;$init$StringBuilder();function Summable($$targs$$,summable$){set_type_args(summable$,$$targs$$,Summable);}
Summable.$crtmm$=function(){return{mod:$CCMM$,tp:{Other$Summable:{sts:[{t:Summable,a:{Other$Summable:'Other$Summable'}}]}},of:['Other$Summable'],pa:1,an:function(){return[doc$($CCMM$,'$:Summable'),see([$init$openClass$jsint()(lmp$(ex$,'$'),$_String),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Numeric)].$sa$(mut$([{t:ClassWithInitializerDeclaration$meta$declaration},{t:InterfaceDeclaration$meta$declaration}]))),by(["Gavin"].$sa$({t:$_String})),tagged(["Numbers","Strings"].$sa$({t:$_String}))];},d:['$','Summable']};};
ex$.Summable=Summable;function $init$Summable(){if(Summable.$$===undefined){initTypeProtoI(Summable,'ceylon.language::Summable');
(function(summable$){summable$.plus={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Other$Summable',ps:[{nm:'other',mt:'prm',$t:'Other$Summable'}],$cont:Summable,pa:5,an:function(){return[doc$($CCMM$,'$:Summable:$m:plus')];},d:['$','Summable','$m','plus']};}};})(Summable.$$.prototype);}
return Summable;}
ex$.$init$Summable=$init$Summable;$init$Summable();function Usable(usable$){}
Usable.$crtmm$=function(){return{mod:$CCMM$,of:[{t:Destroyable},{t:Obtainable}],pa:1,an:function(){return[doc$($CCMM$,'$:Usable'),tagged(["Basic types"].$sa$({t:$_String}))];},d:['$','Usable']};};
ex$.Usable=Usable;function $init$Usable(){if(Usable.$$===undefined){initTypeProtoI(Usable,'ceylon.language::Usable');
}
return Usable;}
ex$.$init$Usable=$init$Usable;$init$Usable();function and($18r,$18s,$vlus2j$){var $18t=function($18u){{return ($18r($18u)&&$18s($18u));}};$18t.$crtmm$=function(){return{ps:[{nm:'val',mt:'prm',$t:$vlus2j$.Value$and}],$t:{t:$_Boolean}};};return JsCallable(0,$18t);};and.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Value$and']}}},ps:[{nm:'p',mt:'prm',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Value$and']}}}},{nm:'q',mt:'prm',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Value$and']}}}}],tp:{Value$and:{dv:'in'}},pa:1,an:function(){return[doc$($CCMM$,'$:and'),tagged(["Functions"].$sa$({t:$_String}))];},d:['$','and']};};
ex$.and=and;function AnnotationAnnotation(annotationAnnotation$){$init$AnnotationAnnotation();
if(annotationAnnotation$===undefined)annotationAnnotation$=new AnnotationAnnotation.$$;
annotationAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:AnnotationAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:ClassDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}])};OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:AnnotationAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:ClassDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}])},annotationAnnotation$);return annotationAnnotation$;}
AnnotationAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:AnnotationAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:ClassDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}]}}}],pa:561,an:function(){return[doc$($CCMM$,'$:AnnotationAnnotation')];},d:['$','AnnotationAnnotation']};};
ex$.AnnotationAnnotation=AnnotationAnnotation;function $init$AnnotationAnnotation(){if(AnnotationAnnotation.$$===undefined){initTypeProto(AnnotationAnnotation,'ceylon.language::AnnotationAnnotation',Basic,$init$OptionalAnnotation());
}
return AnnotationAnnotation;}
ex$.$init$AnnotationAnnotation=$init$AnnotationAnnotation;$init$AnnotationAnnotation();function annotation(){return AnnotationAnnotation();};annotation.$crtmm$=function(){return{mod:$CCMM$,$t:{t:AnnotationAnnotation},ps:[],pa:513,an:function(){return[doc$($CCMM$,'$:annotation'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Annotation)].$sa$({t:InterfaceDeclaration$meta$declaration}))];},d:['$','annotation']};};
ex$.annotation=annotation;function SharedAnnotation(sharedAnnotation$){$init$SharedAnnotation();
if(sharedAnnotation$===undefined)sharedAnnotation$=new SharedAnnotation.$$;
sharedAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:SharedAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration},{t:Package$meta$declaration},{t:Import$meta$declaration}])};OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:SharedAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration},{t:Package$meta$declaration},{t:Import$meta$declaration}])},sharedAnnotation$);return sharedAnnotation$;}
SharedAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:SharedAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration},{t:Package$meta$declaration},{t:Import$meta$declaration}]}}}],pa:561,an:function(){return[doc$($CCMM$,'$:SharedAnnotation')];},d:['$','SharedAnnotation']};};
ex$.SharedAnnotation=SharedAnnotation;function $init$SharedAnnotation(){if(SharedAnnotation.$$===undefined){initTypeProto(SharedAnnotation,'ceylon.language::SharedAnnotation',Basic,$init$OptionalAnnotation());
}
return SharedAnnotation;}
ex$.$init$SharedAnnotation=$init$SharedAnnotation;$init$SharedAnnotation();function shared(){return SharedAnnotation();};shared.$crtmm$=function(){return{mod:$CCMM$,$t:{t:SharedAnnotation},ps:[],pa:513,an:function(){return[doc$($CCMM$,'$:shared')];},d:['$','shared']};};
ex$.shared=shared;function VariableAnnotation(variableAnnotation$){$init$VariableAnnotation();
if(variableAnnotation$===undefined)variableAnnotation$=new VariableAnnotation.$$;
variableAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:VariableAnnotation},ProgramElement$OptionalAnnotation:{t:ValueDeclaration$meta$declaration}};OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:VariableAnnotation},ProgramElement$OptionalAnnotation:{t:ValueDeclaration$meta$declaration}},variableAnnotation$);return variableAnnotation$;}
VariableAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:VariableAnnotation},ProgramElement$OptionalAnnotation:{t:ValueDeclaration$meta$declaration}}}],pa:561,an:function(){return[doc$($CCMM$,'$:VariableAnnotation')];},d:['$','VariableAnnotation']};};
ex$.VariableAnnotation=VariableAnnotation;function $init$VariableAnnotation(){if(VariableAnnotation.$$===undefined){initTypeProto(VariableAnnotation,'ceylon.language::VariableAnnotation',Basic,$init$OptionalAnnotation());
}
return VariableAnnotation;}
ex$.$init$VariableAnnotation=$init$VariableAnnotation;$init$VariableAnnotation();function variable(){return VariableAnnotation();};variable.$crtmm$=function(){return{mod:$CCMM$,$t:{t:VariableAnnotation},ps:[],pa:513,an:function(){return[doc$($CCMM$,'$:variable')];},d:['$','variable']};};
ex$.variable=variable;function AbstractAnnotation(abstractAnnotation$){$init$AbstractAnnotation();
if(abstractAnnotation$===undefined)abstractAnnotation$=new AbstractAnnotation.$$;
abstractAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:AbstractAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:ClassDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration}])};OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:AbstractAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:ClassDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration}])},abstractAnnotation$);return abstractAnnotation$;}
AbstractAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:AbstractAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:ClassDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration}]}}}],pa:561,an:function(){return[doc$($CCMM$,'$:AbstractAnnotation')];},d:['$','AbstractAnnotation']};};
ex$.AbstractAnnotation=AbstractAnnotation;function $init$AbstractAnnotation(){if(AbstractAnnotation.$$===undefined){initTypeProto(AbstractAnnotation,'ceylon.language::AbstractAnnotation',Basic,$init$OptionalAnnotation());
}
return AbstractAnnotation;}
ex$.$init$AbstractAnnotation=$init$AbstractAnnotation;$init$AbstractAnnotation();function $_abstract(){return AbstractAnnotation();};$_abstract.$crtmm$=function(){return{mod:$CCMM$,$t:{t:AbstractAnnotation},ps:[],pa:513,an:function(){return[doc$($CCMM$,'$:abstract')];},d:['$','abstract']};};
ex$.$_abstract=$_abstract;function FinalAnnotation(finalAnnotation$){$init$FinalAnnotation();
if(finalAnnotation$===undefined)finalAnnotation$=new FinalAnnotation.$$;
finalAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:FinalAnnotation},ProgramElement$OptionalAnnotation:{t:ClassDeclaration$meta$declaration}};OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:FinalAnnotation},ProgramElement$OptionalAnnotation:{t:ClassDeclaration$meta$declaration}},finalAnnotation$);return finalAnnotation$;}
FinalAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:FinalAnnotation},ProgramElement$OptionalAnnotation:{t:ClassDeclaration$meta$declaration}}}],pa:561,an:function(){return[doc$($CCMM$,'$:FinalAnnotation')];},d:['$','FinalAnnotation']};};
ex$.FinalAnnotation=FinalAnnotation;function $init$FinalAnnotation(){if(FinalAnnotation.$$===undefined){initTypeProto(FinalAnnotation,'ceylon.language::FinalAnnotation',Basic,$init$OptionalAnnotation());
}
return FinalAnnotation;}
ex$.$init$FinalAnnotation=$init$FinalAnnotation;$init$FinalAnnotation();function $_final(){return FinalAnnotation();};$_final.$crtmm$=function(){return{mod:$CCMM$,$t:{t:FinalAnnotation},ps:[],pa:513,an:function(){return[doc$($CCMM$,'$:final')];},d:['$','final']};};
ex$.$_final=$_final;function SealedAnnotation(sealedAnnotation$){$init$SealedAnnotation();
if(sealedAnnotation$===undefined)sealedAnnotation$=new SealedAnnotation.$$;
sealedAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:SealedAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:ClassOrInterfaceDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration}])};OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:SealedAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:ClassOrInterfaceDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration}])},sealedAnnotation$);return sealedAnnotation$;}
SealedAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:SealedAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:ClassOrInterfaceDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration}]}}}],pa:561,an:function(){return[doc$($CCMM$,'$:SealedAnnotation')];},d:['$','SealedAnnotation']};};
ex$.SealedAnnotation=SealedAnnotation;function $init$SealedAnnotation(){if(SealedAnnotation.$$===undefined){initTypeProto(SealedAnnotation,'ceylon.language::SealedAnnotation',Basic,$init$OptionalAnnotation());
}
return SealedAnnotation;}
ex$.$init$SealedAnnotation=$init$SealedAnnotation;$init$SealedAnnotation();function sealed(){return SealedAnnotation();};sealed.$crtmm$=function(){return{mod:$CCMM$,$t:{t:SealedAnnotation},ps:[],pa:513,an:function(){return[doc$($CCMM$,'$:sealed')];},d:['$','sealed']};};
ex$.sealed=sealed;function ActualAnnotation(actualAnnotation$){$init$ActualAnnotation();
if(actualAnnotation$===undefined)actualAnnotation$=new ActualAnnotation.$$;
actualAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:ActualAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}])};OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:ActualAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}])},actualAnnotation$);return actualAnnotation$;}
ActualAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:ActualAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}]}}}],pa:561,an:function(){return[doc$($CCMM$,'$:ActualAnnotation')];},d:['$','ActualAnnotation']};};
ex$.ActualAnnotation=ActualAnnotation;function $init$ActualAnnotation(){if(ActualAnnotation.$$===undefined){initTypeProto(ActualAnnotation,'ceylon.language::ActualAnnotation',Basic,$init$OptionalAnnotation());
}
return ActualAnnotation;}
ex$.$init$ActualAnnotation=$init$ActualAnnotation;$init$ActualAnnotation();function actual(){return ActualAnnotation();};actual.$crtmm$=function(){return{mod:$CCMM$,$t:{t:ActualAnnotation},ps:[],pa:513,an:function(){return[doc$($CCMM$,'$:actual')];},d:['$','actual']};};
ex$.actual=actual;function FormalAnnotation(formalAnnotation$){$init$FormalAnnotation();
if(formalAnnotation$===undefined)formalAnnotation$=new FormalAnnotation.$$;
formalAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:FormalAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}])};OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:FormalAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}])},formalAnnotation$);return formalAnnotation$;}
FormalAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:FormalAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}]}}}],pa:561,an:function(){return[doc$($CCMM$,'$:FormalAnnotation')];},d:['$','FormalAnnotation']};};
ex$.FormalAnnotation=FormalAnnotation;function $init$FormalAnnotation(){if(FormalAnnotation.$$===undefined){initTypeProto(FormalAnnotation,'ceylon.language::FormalAnnotation',Basic,$init$OptionalAnnotation());
}
return FormalAnnotation;}
ex$.$init$FormalAnnotation=$init$FormalAnnotation;$init$FormalAnnotation();function formal(){return FormalAnnotation();};formal.$crtmm$=function(){return{mod:$CCMM$,$t:{t:FormalAnnotation},ps:[],pa:513,an:function(){return[doc$($CCMM$,'$:formal')];},d:['$','formal']};};
ex$.formal=formal;function DefaultAnnotation(defaultAnnotation$){$init$DefaultAnnotation();
if(defaultAnnotation$===undefined)defaultAnnotation$=new DefaultAnnotation.$$;
defaultAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:DefaultAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}])};OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:DefaultAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}])},defaultAnnotation$);return defaultAnnotation$;}
DefaultAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:DefaultAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration}]}}}],pa:561,an:function(){return[doc$($CCMM$,'$:DefaultAnnotation')];},d:['$','DefaultAnnotation']};};
ex$.DefaultAnnotation=DefaultAnnotation;function $init$DefaultAnnotation(){if(DefaultAnnotation.$$===undefined){initTypeProto(DefaultAnnotation,'ceylon.language::DefaultAnnotation',Basic,$init$OptionalAnnotation());
}
return DefaultAnnotation;}
ex$.$init$DefaultAnnotation=$init$DefaultAnnotation;$init$DefaultAnnotation();function $_default(){return DefaultAnnotation();};$_default.$crtmm$=function(){return{mod:$CCMM$,$t:{t:DefaultAnnotation},ps:[],pa:513,an:function(){return[doc$($CCMM$,'$:default')];},d:['$','default']};};
ex$.$_default=$_default;function LateAnnotation(lateAnnotation$){$init$LateAnnotation();
if(lateAnnotation$===undefined)lateAnnotation$=new LateAnnotation.$$;
lateAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:LateAnnotation},ProgramElement$OptionalAnnotation:{t:ValueDeclaration$meta$declaration}};OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:LateAnnotation},ProgramElement$OptionalAnnotation:{t:ValueDeclaration$meta$declaration}},lateAnnotation$);return lateAnnotation$;}
LateAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:LateAnnotation},ProgramElement$OptionalAnnotation:{t:ValueDeclaration$meta$declaration}}}],pa:561,an:function(){return[doc$($CCMM$,'$:LateAnnotation')];},d:['$','LateAnnotation']};};
ex$.LateAnnotation=LateAnnotation;function $init$LateAnnotation(){if(LateAnnotation.$$===undefined){initTypeProto(LateAnnotation,'ceylon.language::LateAnnotation',Basic,$init$OptionalAnnotation());
}
return LateAnnotation;}
ex$.$init$LateAnnotation=$init$LateAnnotation;$init$LateAnnotation();function late(){return LateAnnotation();};late.$crtmm$=function(){return{mod:$CCMM$,$t:{t:LateAnnotation},ps:[],pa:513,an:function(){return[doc$($CCMM$,'$:late')];},d:['$','late']};};
ex$.late=late;function NativeAnnotation(backends,nativeAnnotation$){$init$NativeAnnotation();
if(nativeAnnotation$===undefined)nativeAnnotation$=new NativeAnnotation.$$;
nativeAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:NativeAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}};if(backends===undefined){backends=empty();}
nativeAnnotation$.backends_=backends;OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:NativeAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}},nativeAnnotation$);return nativeAnnotation$;}
NativeAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'backends',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},pa:1,an:function(){return[doc$($CCMM$,'$:NativeAnnotation:$at:backends')];}}],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:NativeAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}}}],pa:561,an:function(){return[doc$($CCMM$,'$:NativeAnnotation')];},d:['$','NativeAnnotation']};};
ex$.NativeAnnotation=NativeAnnotation;function $init$NativeAnnotation(){if(NativeAnnotation.$$===undefined){initTypeProto(NativeAnnotation,'ceylon.language::NativeAnnotation',Basic,$init$OptionalAnnotation());
(function(nativeAnnotation$){atr$(nativeAnnotation$,'backends',function(){return this.backends_;},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},$cont:NativeAnnotation,pa:1,an:function(){return[doc$($CCMM$,'$:NativeAnnotation:$at:backends')];},d:['$','NativeAnnotation','$at','backends']};});})(NativeAnnotation.$$.prototype);}
return NativeAnnotation;}
ex$.$init$NativeAnnotation=$init$NativeAnnotation;$init$NativeAnnotation();function $_native($18v){if($18v===undefined){$18v=empty();}
return NativeAnnotation($18v);};$_native.$crtmm$=function(){return{mod:$CCMM$,$t:{t:NativeAnnotation},ps:[{nm:'backends',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}}}],pa:513,an:function(){return[doc$($CCMM$,'$:native')];},d:['$','native']};};
ex$.$_native=$_native;function DocAnnotation(description,docAnnotation$){$init$DocAnnotation();
if(docAnnotation$===undefined)docAnnotation$=new DocAnnotation.$$;
docAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:DocAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}};docAnnotation$.description_=description;OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:DocAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}},docAnnotation$);return docAnnotation$;}
DocAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'description',mt:'prm',$t:{t:$_String},pa:1,an:function(){return[doc$($CCMM$,'$:DocAnnotation:$at:description')];}}],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:DocAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}}}],pa:561,an:function(){return[doc$($CCMM$,'$:DocAnnotation')];},d:['$','DocAnnotation']};};
ex$.DocAnnotation=DocAnnotation;function $init$DocAnnotation(){if(DocAnnotation.$$===undefined){initTypeProto(DocAnnotation,'ceylon.language::DocAnnotation',Basic,$init$OptionalAnnotation());
(function(docAnnotation$){atr$(docAnnotation$,'description',function(){return this.description_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:DocAnnotation,pa:1,an:function(){return[doc$($CCMM$,'$:DocAnnotation:$at:description')];},d:['$','DocAnnotation','$at','description']};});})(DocAnnotation.$$.prototype);}
return DocAnnotation;}
ex$.$init$DocAnnotation=$init$DocAnnotation;$init$DocAnnotation();function doc($18w){return DocAnnotation($18w);};doc.$crtmm$=function(){return{mod:$CCMM$,$t:{t:DocAnnotation},ps:[{nm:'description',mt:'prm',$t:{t:$_String}}],pa:513,an:function(){return[doc$($CCMM$,'$:doc')];},d:['$','doc']};};
ex$.doc=doc;function SeeAnnotation(programElements,seeAnnotation$){$init$SeeAnnotation();
if(seeAnnotation$===undefined)seeAnnotation$=new SeeAnnotation.$$;
seeAnnotation$.$$targs$$={Value$SequencedAnnotation:{t:SeeAnnotation},Type$SequencedAnnotation:{t:Anything},ProgramElement$SequencedAnnotation:{t:Annotated}};if(programElements===undefined){programElements=empty();}
seeAnnotation$.programElements_=programElements;SequencedAnnotation({Value$SequencedAnnotation:{t:SeeAnnotation},Type$SequencedAnnotation:{t:Anything},ProgramElement$SequencedAnnotation:{t:Annotated}},seeAnnotation$);return seeAnnotation$;}
SeeAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'programElements',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Declaration$meta$declaration}}},pa:1,an:function(){return[doc$($CCMM$,'$:SeeAnnotation:$at:programElements')];}}],sts:[{t:SequencedAnnotation,a:{Value$SequencedAnnotation:{t:SeeAnnotation},Type$SequencedAnnotation:{t:Anything},ProgramElement$SequencedAnnotation:{t:Annotated}}}],pa:561,an:function(){return[doc$($CCMM$,'$:SeeAnnotation')];},d:['$','SeeAnnotation']};};
ex$.SeeAnnotation=SeeAnnotation;function $init$SeeAnnotation(){if(SeeAnnotation.$$===undefined){initTypeProto(SeeAnnotation,'ceylon.language::SeeAnnotation',Basic,$init$SequencedAnnotation());
(function(seeAnnotation$){atr$(seeAnnotation$,'programElements',function(){return this.programElements_;},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Declaration$meta$declaration}}},$cont:SeeAnnotation,pa:1,an:function(){return[doc$($CCMM$,'$:SeeAnnotation:$at:programElements')];},d:['$','SeeAnnotation','$at','programElements']};});})(SeeAnnotation.$$.prototype);}
return SeeAnnotation;}
ex$.$init$SeeAnnotation=$init$SeeAnnotation;$init$SeeAnnotation();function see($18x){if($18x===undefined){$18x=empty();}
return SeeAnnotation($18x);};see.$crtmm$=function(){return{mod:$CCMM$,$t:{t:SeeAnnotation},ps:[{nm:'programElements',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Declaration$meta$declaration}}}}],pa:513,an:function(){return[doc$($CCMM$,'$:see')];},d:['$','see']};};
ex$.see=see;function AuthorsAnnotation(authors,authorsAnnotation$){$init$AuthorsAnnotation();
if(authorsAnnotation$===undefined)authorsAnnotation$=new AuthorsAnnotation.$$;
authorsAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:AuthorsAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}};if(authors===undefined){authors=empty();}
authorsAnnotation$.authors_=authors;OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:AuthorsAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}},authorsAnnotation$);return authorsAnnotation$;}
AuthorsAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'authors',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},pa:1,an:function(){return[doc$($CCMM$,'$:AuthorsAnnotation:$at:authors')];}}],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:AuthorsAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}}}],pa:561,an:function(){return[doc$($CCMM$,'$:AuthorsAnnotation')];},d:['$','AuthorsAnnotation']};};
ex$.AuthorsAnnotation=AuthorsAnnotation;function $init$AuthorsAnnotation(){if(AuthorsAnnotation.$$===undefined){initTypeProto(AuthorsAnnotation,'ceylon.language::AuthorsAnnotation',Basic,$init$OptionalAnnotation());
(function(authorsAnnotation$){atr$(authorsAnnotation$,'authors',function(){return this.authors_;},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},$cont:AuthorsAnnotation,pa:1,an:function(){return[doc$($CCMM$,'$:AuthorsAnnotation:$at:authors')];},d:['$','AuthorsAnnotation','$at','authors']};});})(AuthorsAnnotation.$$.prototype);}
return AuthorsAnnotation;}
ex$.$init$AuthorsAnnotation=$init$AuthorsAnnotation;$init$AuthorsAnnotation();function by($18y){if($18y===undefined){$18y=empty();}
return AuthorsAnnotation($18y);};by.$crtmm$=function(){return{mod:$CCMM$,$t:{t:AuthorsAnnotation},ps:[{nm:'authors',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}}}],pa:513,an:function(){return[doc$($CCMM$,'$:by')];},d:['$','by']};};
ex$.by=by;function ThrownExceptionAnnotation(type,when,thrownExceptionAnnotation$){$init$ThrownExceptionAnnotation();
if(thrownExceptionAnnotation$===undefined)thrownExceptionAnnotation$=new ThrownExceptionAnnotation.$$;
thrownExceptionAnnotation$.$$targs$$={Value$SequencedAnnotation:{t:ThrownExceptionAnnotation},Type$SequencedAnnotation:{t:Anything},ProgramElement$SequencedAnnotation:mut$([{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration}])};thrownExceptionAnnotation$.type_=type;thrownExceptionAnnotation$.when_=when;SequencedAnnotation({Value$SequencedAnnotation:{t:ThrownExceptionAnnotation},Type$SequencedAnnotation:{t:Anything},ProgramElement$SequencedAnnotation:mut$([{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration}])},thrownExceptionAnnotation$);return thrownExceptionAnnotation$;}
ThrownExceptionAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'type',mt:'prm',$t:{t:Declaration$meta$declaration},pa:1,an:function(){return[doc("The [[Exception]] type that is thrown.")];}},{nm:'when',mt:'prm',$t:{t:$_String},pa:1,an:function(){return[doc$($CCMM$,'$:ThrownExceptionAnnotation:$at:when')];}}],sts:[{t:SequencedAnnotation,a:{Value$SequencedAnnotation:{t:ThrownExceptionAnnotation},Type$SequencedAnnotation:{t:Anything},ProgramElement$SequencedAnnotation:{t:'u',l:[{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration}]}}}],pa:561,an:function(){return[doc$($CCMM$,'$:ThrownExceptionAnnotation')];},d:['$','ThrownExceptionAnnotation']};};
ex$.ThrownExceptionAnnotation=ThrownExceptionAnnotation;function $init$ThrownExceptionAnnotation(){if(ThrownExceptionAnnotation.$$===undefined){initTypeProto(ThrownExceptionAnnotation,'ceylon.language::ThrownExceptionAnnotation',Basic,$init$SequencedAnnotation());
(function(thrownExceptionAnnotation$){atr$(thrownExceptionAnnotation$,'type',function(){return this.type_;},undefined,function(){return{mod:$CCMM$,$t:{t:Declaration$meta$declaration},$cont:ThrownExceptionAnnotation,pa:1,an:function(){return[doc("The [[Exception]] type that is thrown.")];},d:['$','ThrownExceptionAnnotation','$at','type']};});atr$(thrownExceptionAnnotation$,'when',function(){return this.when_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:ThrownExceptionAnnotation,pa:1,an:function(){return[doc$($CCMM$,'$:ThrownExceptionAnnotation:$at:when')];},d:['$','ThrownExceptionAnnotation','$at','when']};});})(ThrownExceptionAnnotation.$$.prototype);}
return ThrownExceptionAnnotation;}
ex$.$init$ThrownExceptionAnnotation=$init$ThrownExceptionAnnotation;$init$ThrownExceptionAnnotation();function $_throws$defs$when($18z,$190){return "";};function $_throws($18z,$190){if($190===undefined){$190="";}
return ThrownExceptionAnnotation($18z,$190);};$_throws.$crtmm$=function(){return{mod:$CCMM$,$t:{t:ThrownExceptionAnnotation},ps:[{nm:'type',mt:'prm',$t:{t:Declaration$meta$declaration}},{nm:'when',mt:'prm',def:1,$t:{t:$_String}}],pa:513,an:function(){return[doc$($CCMM$,'$:throws')];},d:['$','throws']};};
ex$.$_throws=$_throws;function DeprecationAnnotation(description,deprecationAnnotation$){$init$DeprecationAnnotation();
if(deprecationAnnotation$===undefined)deprecationAnnotation$=new DeprecationAnnotation.$$;
deprecationAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:DeprecationAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}};deprecationAnnotation$.description_=description;OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:DeprecationAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}},deprecationAnnotation$);return deprecationAnnotation$;}
DeprecationAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'description',mt:'prm',$t:{t:$_String},pa:1,an:function(){return[doc$($CCMM$,'$:DeprecationAnnotation:$at:description')];}}],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:DeprecationAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}}}],pa:561,an:function(){return[doc$($CCMM$,'$:DeprecationAnnotation')];},d:['$','DeprecationAnnotation']};};
ex$.DeprecationAnnotation=DeprecationAnnotation;function $init$DeprecationAnnotation(){if(DeprecationAnnotation.$$===undefined){initTypeProto(DeprecationAnnotation,'ceylon.language::DeprecationAnnotation',Basic,$init$OptionalAnnotation());
(function(deprecationAnnotation$){atr$(deprecationAnnotation$,'description',function(){return this.description_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:DeprecationAnnotation,pa:1,an:function(){return[doc$($CCMM$,'$:DeprecationAnnotation:$at:description')];},d:['$','DeprecationAnnotation','$at','description']};});atr$(deprecationAnnotation$,'reason',function(){var deprecationAnnotation$=this;return (!deprecationAnnotation$.description.empty?deprecationAnnotation$.description:null)},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:$_String}]},$cont:DeprecationAnnotation,pa:1,an:function(){return[doc$($CCMM$,'$:DeprecationAnnotation:$at:reason')];},d:['$','DeprecationAnnotation','$at','reason']};});})(DeprecationAnnotation.$$.prototype);}
return DeprecationAnnotation;}
ex$.$init$DeprecationAnnotation=$init$DeprecationAnnotation;$init$DeprecationAnnotation();function deprecated$defs$reason($191){return "";};function deprecated($191){if($191===undefined){$191="";}
return DeprecationAnnotation($191);};deprecated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:DeprecationAnnotation},ps:[{nm:'reason',mt:'prm',def:1,$t:{t:$_String}}],pa:513,an:function(){return[doc$($CCMM$,'$:deprecated')];},d:['$','deprecated']};};
ex$.deprecated=deprecated;function TagsAnnotation(tags,tagsAnnotation$){$init$TagsAnnotation();
if(tagsAnnotation$===undefined)tagsAnnotation$=new TagsAnnotation.$$;
tagsAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:TagsAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}};if(tags===undefined){tags=empty();}
tagsAnnotation$.tags_=tags;OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:TagsAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}},tagsAnnotation$);return tagsAnnotation$;}
TagsAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'tags',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},pa:1,an:function(){return[doc("The tags, in plain text.")];}}],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:TagsAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}}}],pa:561,an:function(){return[doc$($CCMM$,'$:TagsAnnotation')];},d:['$','TagsAnnotation']};};
ex$.TagsAnnotation=TagsAnnotation;function $init$TagsAnnotation(){if(TagsAnnotation.$$===undefined){initTypeProto(TagsAnnotation,'ceylon.language::TagsAnnotation',Basic,$init$OptionalAnnotation());
(function(tagsAnnotation$){atr$(tagsAnnotation$,'tags',function(){return this.tags_;},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},$cont:TagsAnnotation,pa:1,an:function(){return[doc("The tags, in plain text.")];},d:['$','TagsAnnotation','$at','tags']};});})(TagsAnnotation.$$.prototype);}
return TagsAnnotation;}
ex$.$init$TagsAnnotation=$init$TagsAnnotation;$init$TagsAnnotation();function tagged($192){if($192===undefined){$192=empty();}
return TagsAnnotation($192);};tagged.$crtmm$=function(){return{mod:$CCMM$,$t:{t:TagsAnnotation},ps:[{nm:'tags',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}}}],pa:513,an:function(){return[doc$($CCMM$,'$:tagged')];},d:['$','tagged']};};
ex$.tagged=tagged;function AliasesAnnotation(aliases,aliasesAnnotation$){$init$AliasesAnnotation();
if(aliasesAnnotation$===undefined)aliasesAnnotation$=new AliasesAnnotation.$$;
aliasesAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:AliasesAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}};if(aliases===undefined){aliases=empty();}
aliasesAnnotation$.aliases_=aliases;OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:AliasesAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}},aliasesAnnotation$);return aliasesAnnotation$;}
AliasesAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'aliases',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},pa:1,an:function(){return[doc("The aliases, in plain text.")];}}],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:AliasesAnnotation},ProgramElement$OptionalAnnotation:{t:Annotated}}}],pa:561,an:function(){return[doc$($CCMM$,'$:AliasesAnnotation')];},d:['$','AliasesAnnotation']};};
ex$.AliasesAnnotation=AliasesAnnotation;function $init$AliasesAnnotation(){if(AliasesAnnotation.$$===undefined){initTypeProto(AliasesAnnotation,'ceylon.language::AliasesAnnotation',Basic,$init$OptionalAnnotation());
(function(aliasesAnnotation$){atr$(aliasesAnnotation$,'aliases',function(){return this.aliases_;},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},$cont:AliasesAnnotation,pa:1,an:function(){return[doc("The aliases, in plain text.")];},d:['$','AliasesAnnotation','$at','aliases']};});})(AliasesAnnotation.$$.prototype);}
return AliasesAnnotation;}
ex$.$init$AliasesAnnotation=$init$AliasesAnnotation;$init$AliasesAnnotation();function aliased($193){if($193===undefined){$193=empty();}
return AliasesAnnotation($193);};aliased.$crtmm$=function(){return{mod:$CCMM$,$t:{t:AliasesAnnotation},ps:[{nm:'aliases',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}}}],pa:513,an:function(){return[doc$($CCMM$,'$:aliased')];},d:['$','aliased']};};
ex$.aliased=aliased;function LicenseAnnotation(description,licenseAnnotation$){$init$LicenseAnnotation();
if(licenseAnnotation$===undefined)licenseAnnotation$=new LicenseAnnotation.$$;
licenseAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:LicenseAnnotation},ProgramElement$OptionalAnnotation:{t:Module$meta$declaration}};licenseAnnotation$.description_=description;OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:LicenseAnnotation},ProgramElement$OptionalAnnotation:{t:Module$meta$declaration}},licenseAnnotation$);return licenseAnnotation$;}
LicenseAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'description',mt:'prm',$t:{t:$_String},pa:1,an:function(){return[doc$($CCMM$,'$:LicenseAnnotation:$at:description')];}}],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:LicenseAnnotation},ProgramElement$OptionalAnnotation:{t:Module$meta$declaration}}}],pa:561,an:function(){return[doc$($CCMM$,'$:LicenseAnnotation')];},d:['$','LicenseAnnotation']};};
ex$.LicenseAnnotation=LicenseAnnotation;function $init$LicenseAnnotation(){if(LicenseAnnotation.$$===undefined){initTypeProto(LicenseAnnotation,'ceylon.language::LicenseAnnotation',Basic,$init$OptionalAnnotation());
(function(licenseAnnotation$){atr$(licenseAnnotation$,'description',function(){return this.description_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:LicenseAnnotation,pa:1,an:function(){return[doc$($CCMM$,'$:LicenseAnnotation:$at:description')];},d:['$','LicenseAnnotation','$at','description']};});})(LicenseAnnotation.$$.prototype);}
return LicenseAnnotation;}
ex$.$init$LicenseAnnotation=$init$LicenseAnnotation;$init$LicenseAnnotation();function license($194){return LicenseAnnotation($194);};license.$crtmm$=function(){return{mod:$CCMM$,$t:{t:LicenseAnnotation},ps:[{nm:'description',mt:'prm',$t:{t:$_String}}],pa:513,an:function(){return[doc$($CCMM$,'$:license')];},d:['$','license']};};
ex$.license=license;function OptionalImportAnnotation(optionalImportAnnotation$){$init$OptionalImportAnnotation();
if(optionalImportAnnotation$===undefined)optionalImportAnnotation$=new OptionalImportAnnotation.$$;
optionalImportAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:OptionalImportAnnotation},ProgramElement$OptionalAnnotation:{t:Import$meta$declaration}};OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:OptionalImportAnnotation},ProgramElement$OptionalAnnotation:{t:Import$meta$declaration}},optionalImportAnnotation$);return optionalImportAnnotation$;}
OptionalImportAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:OptionalImportAnnotation},ProgramElement$OptionalAnnotation:{t:Import$meta$declaration}}}],pa:561,an:function(){return[doc$($CCMM$,'$:OptionalImportAnnotation')];},d:['$','OptionalImportAnnotation']};};
ex$.OptionalImportAnnotation=OptionalImportAnnotation;function $init$OptionalImportAnnotation(){if(OptionalImportAnnotation.$$===undefined){initTypeProto(OptionalImportAnnotation,'ceylon.language::OptionalImportAnnotation',Basic,$init$OptionalAnnotation());
}
return OptionalImportAnnotation;}
ex$.$init$OptionalImportAnnotation=$init$OptionalImportAnnotation;$init$OptionalImportAnnotation();function optional(){return OptionalImportAnnotation();};optional.$crtmm$=function(){return{mod:$CCMM$,$t:{t:OptionalImportAnnotation},ps:[],pa:513,an:function(){return[doc$($CCMM$,'$:optional')];},d:['$','optional']};};
ex$.optional=optional;function SuppressWarningsAnnotation(warnings,suppressWarningsAnnotation$){$init$SuppressWarningsAnnotation();
if(suppressWarningsAnnotation$===undefined)suppressWarningsAnnotation$=new SuppressWarningsAnnotation.$$;
suppressWarningsAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:SuppressWarningsAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration},{t:Module$meta$declaration},{t:Package$meta$declaration},{t:Import$meta$declaration}])};if(warnings===undefined){warnings=empty();}
suppressWarningsAnnotation$.warnings_=warnings;OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:SuppressWarningsAnnotation},ProgramElement$OptionalAnnotation:mut$([{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration},{t:Module$meta$declaration},{t:Package$meta$declaration},{t:Import$meta$declaration}])},suppressWarningsAnnotation$);return suppressWarningsAnnotation$;}
SuppressWarningsAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'warnings',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},pa:1,an:function(){return[doc("The warning types to suppress.")];}}],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:SuppressWarningsAnnotation},ProgramElement$OptionalAnnotation:{t:'u',l:[{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration},{t:Module$meta$declaration},{t:Package$meta$declaration},{t:Import$meta$declaration}]}}}],pa:561,an:function(){return[doc$($CCMM$,'$:SuppressWarningsAnnotation')];},d:['$','SuppressWarningsAnnotation']};};
ex$.SuppressWarningsAnnotation=SuppressWarningsAnnotation;function $init$SuppressWarningsAnnotation(){if(SuppressWarningsAnnotation.$$===undefined){initTypeProto(SuppressWarningsAnnotation,'ceylon.language::SuppressWarningsAnnotation',Basic,$init$OptionalAnnotation());
(function(suppressWarningsAnnotation$){atr$(suppressWarningsAnnotation$,'warnings',function(){return this.warnings_;},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},$cont:SuppressWarningsAnnotation,pa:1,an:function(){return[doc("The warning types to suppress.")];},d:['$','SuppressWarningsAnnotation','$at','warnings']};});})(SuppressWarningsAnnotation.$$.prototype);}
return SuppressWarningsAnnotation;}
ex$.$init$SuppressWarningsAnnotation=$init$SuppressWarningsAnnotation;$init$SuppressWarningsAnnotation();function suppressWarnings($195){if($195===undefined){$195=empty();}
return SuppressWarningsAnnotation($195);};suppressWarnings.$crtmm$=function(){return{mod:$CCMM$,$t:{t:SuppressWarningsAnnotation},ps:[{nm:'warnings',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}}}],pa:513,an:function(){return[doc$($CCMM$,'$:suppressWarnings')];},d:['$','suppressWarnings']};};
ex$.suppressWarnings=suppressWarnings;function SerializableAnnotation(serializableAnnotation$){$init$SerializableAnnotation();
if(serializableAnnotation$===undefined)serializableAnnotation$=new SerializableAnnotation.$$;
serializableAnnotation$.$$targs$$={Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:SerializableAnnotation},ProgramElement$OptionalAnnotation:{t:ClassDeclaration$meta$declaration}};OptionalAnnotation({Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:SerializableAnnotation},ProgramElement$OptionalAnnotation:{t:ClassDeclaration$meta$declaration}},serializableAnnotation$);return serializableAnnotation$;}
SerializableAnnotation.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:{t:SerializableAnnotation},ProgramElement$OptionalAnnotation:{t:ClassDeclaration$meta$declaration}}}],pa:545,an:function(){return[doc$($CCMM$,'$:SerializableAnnotation')];},d:['$','SerializableAnnotation']};};
ex$.SerializableAnnotation=SerializableAnnotation;function $init$SerializableAnnotation(){if(SerializableAnnotation.$$===undefined){initTypeProto(SerializableAnnotation,'ceylon.language::SerializableAnnotation',Basic,$init$OptionalAnnotation());
}
return SerializableAnnotation;}
ex$.$init$SerializableAnnotation=$init$SerializableAnnotation;$init$SerializableAnnotation();function serializable(){return SerializableAnnotation();};serializable.$crtmm$=function(){return{mod:$CCMM$,$t:{t:SerializableAnnotation},ps:[],pa:513,an:function(){return[doc$($CCMM$,'$:serializable')];},d:['$','serializable']};};
ex$.serializable=serializable;function any($196){var $198;for(var $197=$196.iterator();($198=$197.next())!==finished();){if($198){return true;}
}return false;}
ex$.any=any;any.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'values',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:$_Boolean}}}}],pa:1,an:function(){return[doc$($CCMM$,'$:any'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$_every),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.any)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','any']};};function $_apply($199,$19a,$qtlri4$){return $199($19a.sequence());};$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:'Return$apply',ps:[{nm:'f',mt:'prm',$t:{t:Callable,a:{Return$Callable:'Return$apply',Arguments$Callable:'Args$apply'}}},{nm:'args',mt:'prm',$t:'Args$apply'}],tp:{Return$apply:{},Args$apply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:apply'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),unflatten)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Functions"].$sa$({t:$_String}))];},d:['$','apply']};};
ex$.$_apply=$_apply;function arrayOfSize($19b,$19c,$gopx6p$){return $_Array_ofSize($19b,$19c,{Element$Array:$gopx6p$.Element$arrayOfSize});};arrayOfSize.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Array,a:{Element$Array:'Element$arrayOfSize'}},ps:[{nm:'size',mt:'prm',$t:{t:Integer}},{nm:'element',mt:'prm',$t:'Element$arrayOfSize'}],tp:{Element$arrayOfSize:{}},pa:1,an:function(){return[doc$($CCMM$,'$:arrayOfSize'),$_throws($init$openClass$jsint()(lmp$(ex$,'$'),AssertionError),"if `size>runtime.maxArraySize`"),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),runtime().$prop$getMaxArraySize)].$sa$({t:ValueDeclaration$meta$declaration})),deprecated("Use [[Array.ofSize]]"),tagged(["Collections"].$sa$({t:$_String}))];},d:['$','arrayOfSize']};};
ex$.arrayOfSize=arrayOfSize;function byDecreasing($19d,$wjr6t8$){var $19e=function($19f,$19g){{return $19d($19g).compare($19d($19f));}};$19e.$crtmm$=function(){return{ps:[{nm:'x',mt:'prm',$t:$wjr6t8$.Element$byDecreasing},{nm:'y',mt:'prm',$t:$wjr6t8$.Element$byDecreasing}],$t:{t:Comparison}};};return JsCallable(0,$19e);};byDecreasing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Element$byDecreasing','Element$byDecreasing']}}},ps:[{nm:'comparable',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Value$byDecreasing',Arguments$Callable:{t:'T',l:['Element$byDecreasing']}}},$rt:'Value$byDecreasing',ps:[{nm:'e',mt:'prm',$t:'Element$byDecreasing'}]}],tp:{Element$byDecreasing:{},Value$byDecreasing:{sts:[{t:Comparable,a:{Other$Comparable:'Value$byDecreasing'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:byDecreasing'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),byIncreasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),decreasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.max),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_sort)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Functions","Comparisons"].$sa$({t:$_String}))];},d:['$','byDecreasing']};};
ex$.byDecreasing=byDecreasing;function decreasing($19h,$19i,$uhjp1p$){return $19i.compare($19h);};decreasing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:'Element$decreasing'},{nm:'y',mt:'prm',$t:'Element$decreasing'}],tp:{Element$decreasing:{sts:[{t:Comparable,a:{Other$Comparable:'Element$decreasing'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:decreasing'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),increasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),byDecreasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.max),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_sort)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','decreasing']};};
ex$.decreasing=decreasing;function decreasingKey($19j,$19k,$lhfuy6$){return $19k.key.compare($19j.key);};decreasingKey.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:{t:Entry,a:{Key$Entry:'Key$decreasingKey',Item$Entry:{t:Anything}}}},{nm:'y',mt:'prm',$t:{t:Entry,a:{Key$Entry:'Key$decreasingKey',Item$Entry:{t:Anything}}}}],tp:{Key$decreasingKey:{sts:[{t:Comparable,a:{Other$Comparable:'Key$decreasingKey'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:decreasingKey'),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','decreasingKey']};};
ex$.decreasingKey=decreasingKey;function decreasingItem($19l,$19m,$qqo4w0$){return $19m.item.compare($19l.item);};decreasingItem.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:'Item$decreasingItem'}}},{nm:'y',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:'Item$decreasingItem'}}}],tp:{Item$decreasingItem:{sts:[{t:Comparable,a:{Other$Comparable:'Item$decreasingItem'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:decreasingItem'),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','decreasingItem']};};
ex$.decreasingItem=decreasingItem;function byIncreasing($19n,$xpazyw$){var $19o=function($19p,$19q){{return $19n($19p).compare($19n($19q));}};$19o.$crtmm$=function(){return{ps:[{nm:'x',mt:'prm',$t:$xpazyw$.Element$byIncreasing},{nm:'y',mt:'prm',$t:$xpazyw$.Element$byIncreasing}],$t:{t:Comparison}};};return JsCallable(0,$19o);};byIncreasing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Element$byIncreasing','Element$byIncreasing']}}},ps:[{nm:'comparable',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Value$byIncreasing',Arguments$Callable:{t:'T',l:['Element$byIncreasing']}}},$rt:'Value$byIncreasing',ps:[{nm:'e',mt:'prm',$t:'Element$byIncreasing'}]}],tp:{Element$byIncreasing:{},Value$byIncreasing:{sts:[{t:Comparable,a:{Other$Comparable:'Value$byIncreasing'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:byIncreasing'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),byDecreasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),increasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.max),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_sort)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Functions","Comparisons"].$sa$({t:$_String}))];},d:['$','byIncreasing']};};
ex$.byIncreasing=byIncreasing;function increasing($19r,$19s,$tbzvw1$){return $19r.compare($19s);};increasing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:'Element$increasing'},{nm:'y',mt:'prm',$t:'Element$increasing'}],tp:{Element$increasing:{sts:[{t:Comparable,a:{Other$Comparable:'Element$increasing'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:increasing'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),decreasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),byIncreasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.max),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_sort)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','increasing']};};
ex$.increasing=increasing;function increasingKey($19t,$19u,$qj6v82$){return $19t.key.compare($19u.key);};increasingKey.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:{t:Entry,a:{Key$Entry:'Key$increasingKey',Item$Entry:{t:Anything}}}},{nm:'y',mt:'prm',$t:{t:Entry,a:{Key$Entry:'Key$increasingKey',Item$Entry:{t:Anything}}}}],tp:{Key$increasingKey:{sts:[{t:Comparable,a:{Other$Comparable:'Key$increasingKey'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:increasingKey'),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','increasingKey']};};
ex$.increasingKey=increasingKey;function increasingItem($19v,$19w,$tuesis$){return $19v.item.compare($19w.item);};increasingItem.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:'Item$increasingItem'}}},{nm:'y',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:'Item$increasingItem'}}}],tp:{Item$increasingItem:{sts:[{t:Comparable,a:{Other$Comparable:'Item$increasingItem'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:increasingItem'),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','increasingItem']};};
ex$.increasingItem=increasingItem;function byItem($19x,$kaaybo$){var $19y=function($19z,$1a0){{return $19x($19z.item,$1a0.item);}};$19y.$crtmm$=function(){return{ps:[{nm:'x',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:$kaaybo$.Item$byItem}}},{nm:'y',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:$kaaybo$.Item$byItem}}}],$t:{t:Comparison}};};return JsCallable(0,$19y);};byItem.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:[{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:'Item$byItem'}},{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:'Item$byItem'}}]}}},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Item$byItem','Item$byItem']}}},$rt:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:'Item$byItem'},{nm:'y',mt:'prm',$t:'Item$byItem'}]}],tp:{Item$byItem:{sts:[{t:$_Object}]}},pa:1,an:function(){return[doc$($CCMM$,'$:byItem'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),byKey)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','byItem']};};
ex$.byItem=byItem;function byKey($1a1,$quajdi$){var $1a2=function($1a3,$1a4){{return $1a1($1a3.key,$1a4.key);}};$1a2.$crtmm$=function(){return{ps:[{nm:'x',mt:'prm',$t:{t:Entry,a:{Key$Entry:$quajdi$.Key$byKey,Item$Entry:{t:$_Object}}}},{nm:'y',mt:'prm',$t:{t:Entry,a:{Key$Entry:$quajdi$.Key$byKey,Item$Entry:{t:$_Object}}}}],$t:{t:Comparison}};};return JsCallable(0,$1a2);};byKey.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:[{t:Entry,a:{Key$Entry:'Key$byKey',Item$Entry:{t:$_Object}}},{t:Entry,a:{Key$Entry:'Key$byKey',Item$Entry:{t:$_Object}}}]}}},ps:[{nm:'comparing',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Key$byKey','Key$byKey']}}},$rt:{t:Comparison},ps:[{nm:'x',mt:'prm',$t:'Key$byKey'},{nm:'y',mt:'prm',$t:'Key$byKey'}]}],tp:{Key$byKey:{sts:[{t:$_Object}]}},pa:1,an:function(){return[doc$($CCMM$,'$:byKey'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),byItem)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','byKey']};};
ex$.byKey=byKey;function className(obj) {
if (obj===null) return 'ceylon.language::null';
if (obj===undefined) return "JavaScript UNDEFINED";
if (obj===true) return 'ceylon.language::true';
if (obj===false) return 'ceylon.language::false';
function _typename(t) {
if (t.t==='i' || t.t==='u') {
var _sep = t.t==='i'?'&':'|';
var ct = '';
for (var i=0; i < t.l.length; i++) {
if (i>0) { ct+=_sep; }
ct += _typename(t.l[i]);
}
return ct;
} else {
var tn = t.t.$$.T$name;
if (t.a) {
tn += '<';
for (var i = 0; i < t.a.length; i++) {
if (i>0) { tn += ','; }
tn += _typename(t.a[i]);
}
tn += '>';
}
return tn;
}
}
var tn = obj.getT$name && obj.getT$name();
if (!tn) {
if (typeof obj === 'function') {
tn = 'ceylon.language::Callable';
} else {
tn = 'UNKNOWN';
}
}
/*else if (obj.$$targs$$) {
tn += '<';
for (var i=0; i < obj.$$targs$$.length; i++) {
if (i>0) { tn += ','; }
tn += _typename(obj.$$targs$$[i]);
}
tn += '>';
}*/
return tn;
}
className.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'obj',mt:'prm',$t:{t:Anything}}],pa:1,an:function(){return[doc$($CCMM$,'$:className'),tagged(["Metamodel"].$sa$({t:$_String})),see([$init$OpenFunction$jsint()(lmp$(ex$,'ceylon.language.meta'),type$meta)].$sa$({t:FunctionDeclaration$meta$declaration})),$_native()];},d:['$','className']};};
ex$.className=className;function comparing($1a5,$kvm8b4$){if($1a5===undefined){$1a5=empty();}
var $1a6=function($1a7,$1a8){var $1aa;for(var $1a9=$1a5.iterator();($1aa=$1a9.next())!==finished();){var $1ab=$1aa($1a7,$1a8);if((!$1ab.equals(equal()))){return $1ab;}
}
if(finished()===$1aa){return equal();}
};$1a6.$crtmm$=function(){return{ps:[{nm:'x',mt:'prm',$t:$kvm8b4$.Value$comparing},{nm:'y',mt:'prm',$t:$kvm8b4$.Value$comparing}],$t:{t:Comparison}};};return JsCallable(0,$1a6);}
ex$.comparing=comparing;comparing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Value$comparing','Value$comparing']}}},ps:[{nm:'comparators',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Callable,a:{Return$Callable:{t:Comparison},Arguments$Callable:{t:'T',l:['Value$comparing','Value$comparing']}}}}}}],tp:{Value$comparing:{dv:'in'}},pa:1,an:function(){return[doc$($CCMM$,'$:comparing'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),byDecreasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),byIncreasing),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.max),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_sort)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','comparing']};};function compose($1ac,$1ad,$kw9928$){return flatten($JsCallable((function($1ae){return $1ac($1ad($1ae.sequence()));}),[{nm:'args',mt:'prm',$t:$kw9928$.Args$compose}],{Return$Callable:$kw9928$.X$compose/*ORALE!X inv pero Return var*/,Arguments$Callable:mtt$([$kw9928$.Args$compose])}),{Args$flatten:$kw9928$.Args$compose,Return$flatten:$kw9928$.X$compose});};compose.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:'X$compose',Arguments$Callable:'Args$compose'}},ps:[{nm:'x',mt:'prm',$t:{t:Callable,a:{Return$Callable:'X$compose',Arguments$Callable:{t:'T',l:['Y$compose']}}}},{nm:'y',mt:'prm',$t:{t:Callable,a:{Return$Callable:'Y$compose',Arguments$Callable:'Args$compose'}}}],tp:{X$compose:{},Y$compose:{},Args$compose:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:compose'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),curry),$init$OpenFunction$jsint()(lmp$(ex$,'$'),uncurry)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Functions"].$sa$({t:$_String}))];},d:['$','compose']};};
ex$.compose=compose;function concatenate($1af,$atc5h9$){if($1af===undefined){$1af=empty();}
return tpl$([],for$(function(){var $1ag=$1af.iterator(),$1ah=finished();var n$1ah=function(){if(($1ah=$1ag.next())!==finished()){$1ai=$1ah.iterator();return $1ah;}
return finished();}
var $1ai=emptyIterator(),$1aj=finished();var n$1aj=function(){return $1aj=$1ai.next();}
return function(){do{if(n$1aj()!==finished()){var $1ak=$1aj,$1al=$1ak;return $1al;}
}while(n$1ah()!==finished());return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:$atc5h9$.Element$concatenate/*ORALE!Element inv pero Element var*/}));};concatenate.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$concatenate'}},ps:[{nm:'iterables',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$concatenate'}}}}}],tp:{Element$concatenate:{}},pa:1,an:function(){return[doc$($CCMM$,'$:concatenate'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),expand),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.chain),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Sequential().$$.prototype.append)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','concatenate']};};
ex$.concatenate=concatenate;function corresponding($1am,$1an,$1ao,$ygxsxr$){if($1ao===undefined){$1ao=function($1ap,$1aq){return function(){var $1ar,$1as;if(nn$(($1ar=$1ap))&&nn$(($1as=$1aq)))return $1ar.equals($1as);else return (!nn$($1ap)&&!nn$($1aq))}();};}
var $1at=$1am.iterator();var $1au=$1an.iterator();while(true){var $1av=$1at.next();var $1aw=$1au.next();var $1ax,$1ay;if(!is$(($1ax=$1av),{t:Finished})&&!is$(($1ay=$1aw),{t:Finished})){if(!$1ao($1ax,$1ay)){return false;}
}
else{return (is$($1av,{t:Finished})&&is$($1aw,{t:Finished}));}
}
}
ex$.corresponding=corresponding;corresponding.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'firstIterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'First$corresponding'}}},{nm:'secondIterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Second$corresponding'}}},{nm:'comparing',mt:'prm',$pt:'f',def:1,$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['First$corresponding','Second$corresponding']}}},$rt:{t:$_Boolean},ps:[{nm:'first',mt:'prm',$t:'First$corresponding'},{nm:'second',mt:'prm',$t:'Second$corresponding'}]}],tp:{First$corresponding:{},Second$corresponding:{}},pa:1,an:function(){return[doc$($CCMM$,'$:corresponding'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),everyPair)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Comparisons","Streams"].$sa$({t:$_String}))];},d:['$','corresponding']};};function count($1az){var $1b0=(0);var $1b2;for(var $1b1=$1az.iterator();($1b2=$1b1.next())!==finished();){if($1b2){($1b3=$1b0,$1b0=$1b3.successor,$1b3);var $1b3;}
}return $1b0;}
ex$.count=count;count.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'values',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:$_Boolean}}}}],pa:1,an:function(){return[doc$($CCMM$,'$:count'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.count)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','count']};};function curry($1b4,$qusl91$){var $1b5=function($1b6){{return flatten($JsCallable((function($1b7){return unflatten(JsCallable(0,$1b4),{Return$unflatten:$qusl91$.Return$curry,Args$unflatten:{t:Tuple,a:{Rest$Tuple:$qusl91$.Rest$curry/*ORALE!Rest inv pero Rest var*/,Element$Tuple:$qusl91$.Argument$curry/*ORALE!Argument inv pero Element var*/,First$Tuple:$qusl91$.First$curry/*ORALE!First inv pero First var*/}}})(Tuple($1b6,$1b7,{First$Tuple:$qusl91$.First$curry/*ORALE!First inv pero First var*/,Rest$Tuple:$qusl91$.Rest$curry/*ORALE!Rest inv pero Rest var*/,Element$Tuple:$qusl91$.Argument$curry/*ORALE!Argument inv pero Element var*/}));}),[{nm:'args',mt:'prm',$t:$qusl91$.Rest$curry}],{Return$Callable:$qusl91$.Return$curry/*ORALE!Return inv pero Return var*/,Arguments$Callable:mtt$([$qusl91$.Rest$curry])}),{Args$flatten:$qusl91$.Rest$curry,Return$flatten:$qusl91$.Return$curry});}};$1b5.$crtmm$=function(){return{ps:[{nm:'first',mt:'prm',$t:$qusl91$.First$curry}],$t:{t:Callable,a:{Return$Callable:$qusl91$.Return$curry/*ORALE!Return inv pero Return var*/,Arguments$Callable:$qusl91$.Rest$curry/*ORALE!Rest inv pero Arguments var*/}}};};return JsCallable(0,$1b5);};curry.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:Callable,a:{Return$Callable:'Return$curry',Arguments$Callable:'Rest$curry'}},Arguments$Callable:{t:'T',l:['First$curry']}}},ps:[{nm:'f',mt:'prm',$t:{t:Callable,a:{Return$Callable:'Return$curry',Arguments$Callable:{t:'T',l:['First$curry']}}}}],tp:{Return$curry:{},Argument$curry:{},First$curry:{sts:['Argument$curry']},Rest$curry:{sts:[{t:Sequential,a:{Element$Sequential:'Argument$curry'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:curry'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),uncurry),$init$OpenFunction$jsint()(lmp$(ex$,'$'),compose)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Functions"].$sa$({t:$_String}))];},d:['$','curry']};};
ex$.curry=curry;function uncurry($1b8,$chtzw$){return flatten($JsCallable((function($1b9){return unflatten($1b8($1b9.first),{Return$unflatten:$chtzw$.Return$uncurry,Args$unflatten:$chtzw$.Rest$uncurry})($1b9.rest);}),[{nm:'args',mt:'prm',$t:{t:Tuple,a:{Rest$Tuple:$chtzw$.Rest$uncurry/*ORALE!Rest inv pero Rest var*/,Element$Tuple:$chtzw$.Argument$uncurry/*ORALE!Argument inv pero Element var*/,First$Tuple:$chtzw$.First$uncurry/*ORALE!First inv pero First var*/}}}],{Return$Callable:$chtzw$.Return$uncurry/*ORALE!Return inv pero Return var*/,Arguments$Callable:mtt$([{t:Tuple,a:{Rest$Tuple:$chtzw$.Rest$uncurry/*ORALE!Rest inv pero Rest var*/,Element$Tuple:$chtzw$.Argument$uncurry/*ORALE!Argument inv pero Element var*/,First$Tuple:$chtzw$.First$uncurry/*ORALE!First inv pero First var*/}}])}),{Args$flatten:{t:Tuple,a:{Rest$Tuple:$chtzw$.Rest$uncurry/*ORALE!Rest inv pero Rest var*/,Element$Tuple:$chtzw$.Argument$uncurry/*ORALE!Argument inv pero Element var*/,First$Tuple:$chtzw$.First$uncurry/*ORALE!First inv pero First var*/}},Return$flatten:$chtzw$.Return$uncurry});};uncurry.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:'Return$uncurry',Arguments$Callable:{t:'T',l:['First$uncurry']}}},ps:[{nm:'f',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:Callable,a:{Return$Callable:'Return$uncurry',Arguments$Callable:'Rest$uncurry'}},Arguments$Callable:{t:'T',l:['First$uncurry']}}},$rt:{t:Callable,a:{Return$Callable:'Return$uncurry',Arguments$Callable:'Rest$uncurry'}},ps:[{nm:'first',mt:'prm',$t:'First$uncurry'}]}],tp:{Return$uncurry:{},Argument$uncurry:{},First$uncurry:{sts:['Argument$uncurry']},Rest$uncurry:{sts:[{t:Sequential,a:{Element$Sequential:'Argument$uncurry'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:uncurry'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),curry),$init$OpenFunction$jsint()(lmp$(ex$,'$'),compose)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Functions"].$sa$({t:$_String}))];},d:['$','uncurry']};};
ex$.uncurry=uncurry;function emptyOrSingleton($1ba,$ki7e31$){return function(){var $1bb;if(nn$(($1bb=$1ba)))return tpl$([$1bb]);else return empty()}();};emptyOrSingleton.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{t:'i',l:['Element$emptyOrSingleton',{t:$_Object}]}]},ps:[{nm:'element',mt:'prm',$t:'Element$emptyOrSingleton'}],tp:{Element$emptyOrSingleton:{}},pa:1,an:function(){return[doc$($CCMM$,'$:emptyOrSingleton'),see([$init$openClass$jsint()(lmp$(ex$,'$'),Tuple),$init$OpenInterface$jsint()(lmp$(ex$,'$'),Empty)].$sa$(mut$([{t:ClassWithInitializerDeclaration$meta$declaration},{t:InterfaceDeclaration$meta$declaration}]))),tagged(["Sequences"].$sa$({t:$_String}))];},d:['$','emptyOrSingleton']};};
ex$.emptyOrSingleton=emptyOrSingleton;function $_every($1bc){var $1be;for(var $1bd=$1bc.iterator();($1be=$1bd.next())!==finished();){if(!$1be){return false;}
}return true;}
ex$.$_every=$_every;$_every.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'values',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:$_Boolean}}}}],pa:1,an:function(){return[doc$($CCMM$,'$:every'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),any),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_every)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','every']};};function expand($1bf,$iv1d4k$){return for$(function(){var $1bg=$1bf.iterator(),$1bh=finished();var n$1bh=function(){if(($1bh=$1bg.next())!==finished()){$1bi=$1bh.iterator();return $1bh;}
return finished();}
var $1bi=emptyIterator(),$1bj=finished();var n$1bj=function(){return $1bj=$1bi.next();}
return function(){do{if(n$1bj()!==finished()){var $1bk=$1bj,$1bl=$1bk;return $1bl;}
}while(n$1bh()!==finished());return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:$iv1d4k$.Element$expand/*ORALE!Element inv pero Element var*/});};expand.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:'u',l:['OuterAbsent$expand','InnerAbsent$expand']},Element$Iterable:'Element$expand'}},ps:[{nm:'iterables',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'OuterAbsent$expand',Element$Iterable:{t:Iterable,a:{Absent$Iterable:'InnerAbsent$expand',Element$Iterable:'Element$expand'}}}}}],tp:{Element$expand:{},OuterAbsent$expand:{sts:[{t:Null}]},InnerAbsent$expand:{sts:[{t:Null}]}},pa:1,an:function(){return[doc$($CCMM$,'$:expand'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.flatMap),$init$OpenFunction$jsint()(lmp$(ex$,'$'),concatenate),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.chain)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','expand']};};
ex$.expand=expand;function flatten(tf, $$$mptypes) {
if (tf.$unflattened$)return tf.$unflattened$;
var tf_targs;
if (tf.jsc$) {
tf_targs=tf.$$targs$$;
tf=tf.jsc$;
} else if (tf.c2$) {
tf_targs=tf.$$targs$$;
tf=tf.c2$;
}
var mm=getrtmm$$(tf);
var t0,iadic,argx;
if (mm && mm.ps) {
if (mm.ps.length===1) {
t0=mm.ps[0].$t;
if (!(t0.t===Sequential || t0.t===Sequence)) {
var ps0t=mm.ps[0].$t;
if (typeof(ps0t)==='string') {
ps0t=tf_targs[ps0t];
}
t0=detpl$(ps0t);
}
iadic=variadicness(t0);
argx = t0.t==='T' ? t0.l.length : 1;
} else {
throw new TypeError("Invalid argument to flatten: " +tf);
}
} else {
throw new TypeError("Missing metamodel for " + tf);
}
var rf;
if (t0.t==='T') {
//Tuple
if (iadic) {
rf=function fftv(){
var t = [];
for (var i=0;i<argx-1;i++) {
t.push(arguments[i]);
}
var seqarg=arguments[argx-1];
if (seqarg===undefined || seqarg.length===0) {
seqarg=empty();
} else if (seqarg !== null && !is$(seqarg,{t:Sequence})) {
seqarg=seqarg.$sa$(seqarg._elemTarg());
}
if (argx===1&&t.length==0)return tf(seqarg);
return tf(tpl$(t,seqarg));
}
} else {
rf=function fft1(){
var t=[];
if (arguments.length===1 && is$(arguments[0],t0)) {
//Spread tuple
return tf(arguments[0]);
} else if (arguments.length===1 && argx===1 && is$(arguments[0],{t:Sequential,a:{Element$Sequential:t0.l[0]}})) {
//This definitely stinks
return tf(arguments[0]);
} else if (arguments.length>0){
for (var i=0;i<argx;i++) {
t.push(arguments[i]);
}
}
if (t.length===1 && t0.l && t0.l.length===1 && is$(t[0],{t:Sequential}) && (t0.l[0].t===Sequence||t0.l[0].t===Sequential||t0.l[0].t===Tuple||t0.l[0].t==='T')) {
//special case: 1-arg with tuple against 1-param 1x tuple with 1 Sequential element
return tf(t[0]);
}
return tf(tpl$(t));
}
}
rf.$crtmm$={$t:mm.$t,ps:[]};
for(var i=0;i<t0.l.length;i++){
rf.$crtmm$.ps.push({$t:t0.l[i],mt:'prm',nm:'flat'+i});
if (t0.l[i].seq)rf.$crtmm$.ps[i].$t.seq=t0.l[i].seq;
}
} else {
//Single variadic argument
rf=function ffs(s,$mpt){
if (s===empty()||is$(s,{t:Tuple}))return tf(s,$mpt);
if (is$(s,{t:ArraySequence})){
//This is awful but it's the only way to get the array directly out of its sequence
//Don't forget to update the property name when it changes
return tf(tpl$(s.$gr.arr$),$mpt);
}
if (is$(s,{t:$_Array}))return tf(tpl$(s.arr$),$mpt);
return tf(s?tpl$(s):empty(),$mpt);
};
rf.$crtmm$={$t:mm.$t,ps:[{$t:{t:t0.t},nm:'flat#0',seq:iadic}]};
if (t0.a)rf.$crtmm$.ps[0].$t.a=t0.a;
if (extendsType(t0,{t:Empty}))rf.$crtmm$.ps=[];
}
rf.$$targs$$={Return$Callable:$$$mptypes.Return$flatten,Arguments$Callable:$$$mptypes.Args$flatten};
rf.$flattened$=tf;
return rf;
}
flatten.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:'Return$flatten',Arguments$Callable:'Args$flatten'}},ps:[{nm:'tupleFunction',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Return$flatten',Arguments$Callable:{t:'T',l:['Args$flatten']}}},$rt:'Return$flatten',ps:[{nm:'tuple',mt:'prm',$t:'Args$flatten'}]}],tp:{Return$flatten:{},Args$flatten:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:flatten'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),unflatten)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Functions"].$sa$({t:$_String})),$_native()];},d:['$','flatten']};};
ex$.flatten=flatten;function forItem($1bm,$61lsdy$){var $1bn=function($1bo){{return $1bm($1bo.item);}};$1bn.$crtmm$=function(){return{ps:[{nm:'entry',mt:'prm',$t:{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:$61lsdy$.Item$forItem}}}],$t:$61lsdy$.Result$forItem};};return JsCallable(0,$1bn);};forItem.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:'Result$forItem',Arguments$Callable:{t:'T',l:[{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:'Item$forItem'}}]}}},ps:[{nm:'resulting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$forItem',Arguments$Callable:{t:'T',l:['Item$forItem']}}},$rt:'Result$forItem',ps:[{nm:'item',mt:'prm',$t:'Item$forItem'}]}],tp:{Item$forItem:{},Result$forItem:{}},pa:1,an:function(){return[doc$($CCMM$,'$:forItem'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),forKey)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Functions"].$sa$({t:$_String}))];},d:['$','forItem']};};
ex$.forItem=forItem;function forKey($1bp,$iix2m0$){var $1bq=function($1br){{return $1bp($1br.key);}};$1bq.$crtmm$=function(){return{ps:[{nm:'entry',mt:'prm',$t:{t:Entry,a:{Key$Entry:$iix2m0$.Key$forKey,Item$Entry:{t:Anything}}}}],$t:$iix2m0$.Result$forKey};};return JsCallable(0,$1bq);};forKey.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:'Result$forKey',Arguments$Callable:{t:'T',l:[{t:Entry,a:{Key$Entry:'Key$forKey',Item$Entry:{t:Anything}}}]}}},ps:[{nm:'resulting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$forKey',Arguments$Callable:{t:'T',l:['Key$forKey']}}},$rt:'Result$forKey',ps:[{nm:'key',mt:'prm',$t:'Key$forKey'}]}],tp:{Key$forKey:{sts:[{t:$_Object}]},Result$forKey:{}},pa:1,an:function(){return[doc$($CCMM$,'$:forKey'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),forItem)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Functions"].$sa$({t:$_String}))];},d:['$','forKey']};};
ex$.forKey=forKey;function formatFloat($1bs,$1bt,$1bu){if($1bt===undefined){$1bt=(1);}
if($1bu===undefined){$1bu=(9);}
if(($1bs.$_undefined||$1bs.infinite)){return $1bs.string;}
var $1bv=$1bs.magnitude;var $1bw=$1bu;var $1bx=runtime().maxExactIntegralFloat.$_float;while((($1bw>0)&&$1bv.compare($1bx.divided((10).power($1bw))).equals(larger()))){($1by=$1bw,$1bw=$1by.predecessor,$1by);var $1by;}
var $1bz=$1bw;var $1c0=false;var $1c1=empty();while(true){var $1c2=scaleByPowerOfTen($1bv,$1bw);var $1c3=$1c2.fractionalPart;var $1c4=$1c2.wholePart;var $1c5=$1c3.times(10).integer;var $1c6;if($1c0){$1c6=($1c7=(($1c3.times(100).integer>$1c5.times(10))?($1c8=((($1c5).valueOf()==(9).valueOf())?0:null),nn$($1c8)?$1c8:$1c5.plus(1)):null),nn$($1c7)?$1c7:$1c5);var $1c7,$1c8;}
else{$1c6=$1c5;}
var $1c9=$1c6.plus(zeroInt()).character;$1c1=$1c1.follow($1c9,{Other$follow:{t:Character}});if($1c4.equals(Float(0.0))){break;}
$1c0=(($1c6).valueOf()==(0).valueOf());($1ca=$1bw,$1bw=$1ca.predecessor,$1ca);var $1ca;}
var $1cb=$_String($1c1.exceptLast);var $1cc=$1cb.size.minus($1bz);var $1cd;var $1ce;if(($1cc>0)){$1cd=$1cb.measure(0,$1cc);$1ce=$1cb.spanFrom($1cc);}
else{$1cd="0";$1ce=$1cb.padLeading($1bu,Character(48,true));}
var $1cf=$1ce.trimTrailing($JsCallable(($1cg=Character(48,true),JsCallable($1cg,$1cg.equals)),[{nm:'that',mt:'prm',$t:{t:$_Object}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:$_Object}])})).padTrailing($1bt,Character(48,true));var $1cg;var $1ch=($1ci=($1bs.negative?"-".plus($1cd):null),nn$($1ci)?$1ci:$1cd);var $1ci;return ($1cj=($1cf.empty?$1ch:null),nn$($1cj)?$1cj:$1ch.plus(".").plus($1cf));var $1cj;}
ex$.formatFloat=formatFloat;formatFloat.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'float',mt:'prm',$t:{t:Float}},{nm:'minDecimalPlaces',mt:'prm',def:1,$t:{t:Integer}},{nm:'maxDecimalPlaces',mt:'prm',def:1,$t:{t:Integer}}],pa:1,an:function(){return[doc$($CCMM$,'$:formatFloat'),tagged(["Numbers"].$sa$({t:$_String})),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),formatInteger),$init$OpenFunction$jsint()(lmp$(ex$,'$'),parseFloat)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','formatFloat']};};function scaleByPowerOfTen($1ck,$1cl){var $1cm=function(){var $1cn=$1cl.magnitude;return (($1cn<=15)?(10).power($1cn).nearestFloat:Float(10.0).powerOfInteger($1cn));}();return (($1cl<0)?$1ck.divided($1cm):$1ck.times($1cm));};scaleByPowerOfTen.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Float},ps:[{nm:'float',mt:'prm',$t:{t:Float}},{nm:'power',mt:'prm',$t:{t:Integer}}],d:['$','scaleByPowerOfTen']};};function formatInteger($1co,$1cp){if($1cp===undefined){$1cp=(10);}
asrt$((($1cq=$1cp,$1cq.compare(minRadix())!==smaller()&&$1cq.compare(maxRadix())!==larger())),"Assertion failed: \'minRadix <= radix <= maxRadix\' at formatInteger.ceylon (27:11-27:41)",'27:4-27:42','formatInteger.ceylon');
if((($1co).valueOf()==(0).valueOf())){return "0";}
var $1cr=empty();var $1cs=($1ct=(($1co<0)?$1co:null),nn$($1ct)?$1ct:(-$1co));var $1ct;while(!($1cs==0)){var $1cu=(-$1cs.remainder($1cp));var $1cv;if(($1cw=$1cu,$1cw.compare((0))!==smaller()&&$1cw.compare((10))===smaller())){$1cv=$1cu.plus(zeroInt()).character;}
else{if(($1cx=$1cu,$1cx.compare((10))!==smaller()&&$1cx.compare((36))===smaller())){$1cv=$1cu.minus(10).plus(aIntLower()).character;}
else{asrt$((false),"Assertion failed: \'false\' at formatInteger.ceylon (45:19-45:25)",'45:12-45:26','formatInteger.ceylon');
}
}
$1cr=$1cr.follow($1cv,{Other$follow:{t:Character}});$1cs=$1cs.plus($1cu).divided($1cp);}
if(($1co<0)){$1cr=$1cr.follow(Character(45,true),{Other$follow:{t:Character}});}
return $_String($1cr);}
ex$.formatInteger=formatInteger;formatInteger.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'integer',mt:'prm',$t:{t:Integer}},{nm:'radix',mt:'prm',def:1,$t:{t:Integer}}],pa:1,an:function(){return[doc$($CCMM$,'$:formatInteger'),$_throws($init$openClass$jsint()(lmp$(ex$,'$'),AssertionError),"if [[radix]] is not between [[minRadix]] and \n[[maxRadix]]"),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),formatFloat),$init$OpenFunction$jsint()(lmp$(ex$,'$'),parseInteger)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Numbers"].$sa$({t:$_String}))];},d:['$','formatInteger']};};function identity($1cy,$g5ygog$){return $1cy;};identity.$crtmm$=function(){return{mod:$CCMM$,$t:'Value$identity',ps:[{nm:'argument',mt:'prm',$t:'Value$identity'}],tp:{Value$identity:{}},pa:1,an:function(){return[doc$($CCMM$,'$:identity'),tagged(["Functions"].$sa$({t:$_String}))];},d:['$','identity']};};
ex$.identity=identity;function noop($1cz){if($1cz===undefined){$1cz=empty();}
}
ex$.noop=noop;noop.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],pa:1,an:function(){return[doc$($CCMM$,'$:noop'),tagged(["Functions"].$sa$({t:$_String}))];},d:['$','noop']};};function identical($1d0,$1d1){return ($1d0===$1d1);};identical.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'x',mt:'prm',$t:{t:Identifiable}},{nm:'y',mt:'prm',$t:{t:Identifiable}}],pa:1,an:function(){return[doc$($CCMM$,'$:identical'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),identityHash)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','identical']};};
ex$.identical=identical;var $1d2;function $valinit$$1d2(){if($1d2===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'_BasicId\' before it was set"),'13:0-14:29','identityHash.ceylon');if($1d2===undefined){$1d2=INIT$;$1d2=(0)};return $1d2;};function _BasicId(){return $valinit$$1d2();}
function set_BasicId($1d3){if($1d2===undefined||$1d2===INIT$)$valinit$$1d2();return $1d2=$1d3;};var $prop$get_BasicId={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},pa:1024,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','_BasicId']};}};ex$.$prop$get_BasicId=$prop$get_BasicId;$prop$get_BasicId.get=_BasicId;$prop$get_BasicId.set=set_BasicId;if(set_BasicId.$crtmm$===undefined)set_BasicId.$crtmm$=$prop$get_BasicId.$crtmm$;function identityHash($1d4){var $1d5=$1d4;var $1d6;if(nn$(($1d6=$1d5._BasicId))){return ndnc$($1d6,'i','identityHash.ceylon 21:19-21:22');}
else{var $1d7=($1d8=_BasicId(),set_BasicId($1d8.successor),$1d8);var $1d8;$1d5._BasicId=$1d7;return $1d7;}
}
ex$.identityHash=identityHash;identityHash.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'identifiable',mt:'prm',$t:{t:Identifiable}}],pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','identityHash']};};function infinity(){return ndnc$((typeof Infinity==='undefined'||Infinity===null?throwexc(Exception("Undefined or null reference: Infinity"),'19:54-19:61','infinity.ceylon'):Infinity),'f','infinity.ceylon 19:54-19:61');}
infinity.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Float},pa:1,d:['$','infinity']};}
ex$.infinity=infinity;var $prop$getInfinity={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Float},pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','infinity']};}};ex$.$prop$getInfinity=$prop$getInfinity;$prop$getInfinity.get=infinity;infinity.$crtmm$=$prop$getInfinity.$crtmm$;function interleave($1d9,$kbqar7$){if($1d9===undefined){$1d9=empty();}
return function(){function $1da($$targs$$){var $1da$=new $1da.$$;$1da$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:$kbqar7$.Absent$interleave/*ORALE!Absent inv pero Absent var*/,Element$Iterable:$kbqar7$.Element$interleave/*ORALE!Element inv pero Element var*/},$1da$);return $1da$;};$1da.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:interleave,sts:[{t:Iterable,a:{Absent$Iterable:'Absent$interleave',Element$Iterable:'Element$interleave'}}],d:['$','interleave']};};function $init$$1da(){if($1da.$$===undefined){initTypeProto($1da,'ceylon.language::anonymous#0',Basic,$init$Iterable());
(function($1da$){atr$($1da$,'size',function(){var $1da$=this;return ($1db=for$(function(){var $1dc=$1d9.iterator(),$1dd=finished();var n$1dd=function(){return $1dd=$1dc.next();}
return function(){if(n$1dd()!==finished()){var $1de=$1dd,$1df=$1de.size;return $1df;}
return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:{t:Integer}}).sequence(),min($1db,{Value$min:{t:Integer},Absent$min:{t:Nothing}})).times($1d9.size);},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:interleave,pa:3,d:['$','interleave','$at','size']};});atr$($1da$,'empty',function(){var $1da$=this;return ($1dg=for$(function(){var $1dh=$1d9.iterator(),$1di=finished();var n$1di=function(){return $1di=$1dh.next();}
return function(){if(n$1di()!==finished()){var $1dj=$1di,$1dk=$1dj.empty;return $1dk;}
return finished();}
},{Absent$Iterable:{t:Null},Element$Iterable:{t:$_Boolean}}).sequence(),any($1dg));},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:interleave,pa:3,d:['$','interleave','$at','empty']};});$1da$.iterator=function(){var $1da$=this;return function(){function $1dl($$targs$$){var $1dl$=new $1dl.$$;$1dl$.outer$=$1da$;$1dl$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$kbqar7$.Element$interleave/*ORALE!Element inv pero Element var*/},$1dl$);$1dl$.$1dm_=$1d9.collect($JsCallable((function($1dn){return $1dn.iterator();}),[{nm:'it',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:$kbqar7$.Element$interleave}}}],{Return$Callable:{t:Iterator,a:{Element$Iterator:$kbqar7$.Element$interleave/*ORALE!Element inv pero Element var*/}},Arguments$Callable:mtt$([{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:$kbqar7$.Element$interleave/*ORALE!Element inv pero Element var*/}}])}),{Result$collect:{t:Iterator,a:{Element$Iterator:$kbqar7$.Element$interleave/*ORALE!Element inv pero Element var*/}}});$1dl$.$prop$get$1dm={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:{t:Iterator,a:{Element$Iterator:'Element$interleave'}}}},$cont:interleave,d:['$','interleave','$at','iterators$7cx7wa']};}};$1dl$.$prop$get$1dm.get=function(){return $1dm};$1dl$.$1do_=(0);$1dl$.$prop$get$1do={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:interleave,pa:1024,d:['$','interleave','$at','which$tupl1u']};}};$1dl$.$prop$get$1do.get=function(){return $1do};return $1dl$;};$1dl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:interleave,sts:[{t:Iterator,a:{Element$Iterator:'Element$interleave'}}],d:['$','interleave']};};function $init$$1dl(){if($1dl.$$===undefined){initTypeProto($1dl,'ceylon.language::anonymous#0.anonymous#1',Basic,$init$Iterator());
(function($1dl$){atr$($1dl$,'$1dm',function(){return this.$1dm_;},undefined,function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:{t:Iterator,a:{Element$Iterator:'Element$interleave'}}}},$cont:interleave,d:['$','interleave','$at','iterators$7cx7wa']};});atr$($1dl$,'$1do',function(){return this.$1do_;},function($1dp){return this.$1do_=$1dp;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:interleave,pa:1024,d:['$','interleave','$at','which$tupl1u']};});$1dl$.next=function(){var $1dl$=this;var $1dq;asrt$((nn$(($1dq=$1dl$.$1dm.$_get($1dl$.$1do)))),"Assertion failed: \'exists iter = iterators[which]\' at interleave.ceylon (32:19-32:50)",'32:12-32:51','interleave.ceylon');
var $1dr;if(!is$(($1dr=$1dq.next()),{t:Finished})){if((($1dl$.$1do=$1dl$.$1do.successor)>=$1dl$.$1dm.size)){$1dl$.$1do=(0);}
return $1dr;}
else{return finished();}
};$1dl$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$interleave',{t:Finished}]},ps:[],$cont:interleave,pa:3,d:['$','interleave','$m','next']};};})($1dl.$$.prototype);}
return $1dl;}
$1da$.$init$$1dl=$init$$1dl;$init$$1dl();return $1dl();}();};})($1da.$$.prototype);}
return $1da;}
$init$$1da();return $1da();}();};interleave.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:'Absent$interleave',Element$Iterable:'Element$interleave'}},ps:[{nm:'iterables',mt:'prm',seq:2,$t:{t:Sequence,a:{Element$Sequence:{t:Iterable,a:{Absent$Iterable:'Absent$interleave',Element$Iterable:'Element$interleave'}}}}}],tp:{Element$interleave:{},Absent$interleave:{sts:[{t:Null}]}},pa:1,an:function(){return[doc$($CCMM$,'$:interleave'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.interpose)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','interleave']};};
ex$.interleave=interleave;var $1db,$1dg;function $1du(){var language$=new $1du.$$;language$.$prop$getMajorVersionBinary={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1du,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','language','$at','majorVersionBinary']};}};language$.$prop$getMajorVersionBinary.get=function(){return majorVersionBinary};language$.$prop$getMinorVersionBinary={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1du,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','language','$at','minorVersionBinary']};}};language$.$prop$getMinorVersionBinary.get=function(){return minorVersionBinary};language$.$prop$getVersion={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1du$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:language:$at:version')];},d:['$','language','$at','version']};}};language$.$prop$getVersion.get=function(){return version};language$.$prop$getMajorVersion={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1du$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:language:$at:majorVersion')];},d:['$','language','$at','majorVersion']};}};language$.$prop$getMajorVersion.get=function(){return majorVersion};language$.$prop$getMinorVersion={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1du$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:language:$at:minorVersion')];},d:['$','language','$at','minorVersion']};}};language$.$prop$getMinorVersion.get=function(){return minorVersion};language$.$prop$getReleaseVersion={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1du$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:language:$at:releaseVersion')];},d:['$','language','$at','releaseVersion']};}};language$.$prop$getReleaseVersion.get=function(){return releaseVersion};language$.$prop$getVersionName={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1du$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:language:$at:versionName')];},d:['$','language','$at','versionName']};}};language$.$prop$getVersionName.get=function(){return versionName};language$.$prop$getString={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1du$$N$$N,pa:3,d:['$','language','$at','string']};}};language$.$prop$getString.get=function(){return string};return language$;};$1du.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},d:['$','language']};};function $init$language(){if($1du.$$===undefined){initTypeProto($1du,'ceylon.language::language',Basic);
(function(language$){atr$(language$,'majorVersionBinary',function(){var language$=this;return 8},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1du,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','language','$at','majorVersionBinary']};});atr$(language$,'minorVersionBinary',function(){var language$=this;return 0},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1du,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','language','$at','minorVersionBinary']};});atr$(language$,'version',function(){var language$=this;return "1.2.2"},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1du$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:language:$at:version')];},d:['$','language','$at','version']};});atr$(language$,'majorVersion',function(){var language$=this;return 1},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1du$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:language:$at:majorVersion')];},d:['$','language','$at','majorVersion']};});atr$(language$,'minorVersion',function(){var language$=this;return 2},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1du$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:language:$at:minorVersion')];},d:['$','language','$at','minorVersion']};});atr$(language$,'releaseVersion',function(){var language$=this;return 2},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1du$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:language:$at:releaseVersion')];},d:['$','language','$at','releaseVersion']};});atr$(language$,'versionName',function(){var language$=this;return "Charming But Irrational"},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1du$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:language:$at:versionName')];},d:['$','language','$at','versionName']};});atr$(language$,'string',function(){var language$=this;return "language"},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1du$$N$$N,pa:3,d:['$','language','$at','string']};});})($1du.$$.prototype);}
return $1du;}
ex$.$init$language=$init$language;$init$language();var $1dx;function language(){if($1dx===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'language\' before it was set"),'43:0-49:0','language.ceylon');if($1dx===undefined){$1dx=INIT$;$1dx=$init$language()();$1dx.$crtmm$=language.$crtmm$;}
return $1dx;}
ex$.language=language;language.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$language()},pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','language']};};$prop$getLanguage=language;ex$.$prop$getLanguage=$prop$getLanguage;function largest($1dy,$1dz,$4dk0a2$){return ($1e0=($1dy.compare($1dz).equals(larger())?$1dy:null),nn$($1e0)?$1e0:$1dz);};largest.$crtmm$=function(){return{mod:$CCMM$,$t:'Element$largest',ps:[{nm:'x',mt:'prm',$t:'Element$largest'},{nm:'y',mt:'prm',$t:'Element$largest'}],tp:{Element$largest:{sts:[{t:Comparable,a:{Other$Comparable:'Element$largest'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:largest'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Comparable),$init$OpenFunction$jsint()(lmp$(ex$,'$'),smallest),$init$OpenFunction$jsint()(lmp$(ex$,'$'),max)].$sa$(mut$([{t:InterfaceDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}]))),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','largest']};};
ex$.largest=largest;var $1e0;function loop($1e1,$em9nfa$){var $1e2=function($1e3){{return function(){var $1e4=$1e1;return function(){function $1e5($$targs$$){var $1e5$=new $1e5.$$;$1e5$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:{t:Nothing},Element$Iterable:$em9nfa$.Element$loop/*ORALE!Element inv pero Element var*/},$1e5$);return $1e5$;};$1e5.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:loop,sts:[{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Element$loop'}}],d:['$','loop']};};function $init$$1e5(){if($1e5.$$===undefined){initTypeProto($1e5,'ceylon.language::anonymous#0',Basic,$init$Iterable());
(function($1e5$){atr$($1e5$,'first',function(){var $1e5$=this;return $1e4;},undefined,function(){return{mod:$CCMM$,$t:'Element$loop',$cont:loop,pa:3,d:['$','loop','$at','first']};});atr$($1e5$,'empty',function(){var $1e5$=this;return false;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:loop,pa:3,d:['$','loop','$at','empty']};});$1e5$.$1e6=function($1e7){var $1e5$=this;return $1e3($1e7);};$1e5$.$1e6.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$loop',{t:Finished}]},ps:[{nm:'element',mt:'prm',$t:'Element$loop'}],$cont:loop,d:['$','loop','$m','nextElement$wmoaer']};};$1e5$.iterator=function(){var $1e5$=this;return function(){function $1e8($$targs$$){var $1e8$=new $1e8.$$;$1e8$.outer$=$1e5$;$1e8$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$em9nfa$.Element$loop/*ORALE!Element inv pero Element var*/},$1e8$);$1e8$.$1e9_=$1e4;$1e8$.$prop$get$1e9={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$loop',{t:Finished}]},$cont:loop,pa:1024,d:['$','loop','$at','current$92k87c']};}};$1e8$.$prop$get$1e9.get=function(){return $1e9};return $1e8$;};$1e8.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:loop,sts:[{t:Iterator,a:{Element$Iterator:'Element$loop'}}],d:['$','loop']};};function $init$$1e8(){if($1e8.$$===undefined){initTypeProto($1e8,'ceylon.language::anonymous#0.anonymous#1',Basic,$init$Iterator());
(function($1e8$){atr$($1e8$,'$1e9',function(){return this.$1e9_;},function($1ea){return this.$1e9_=$1ea;},function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$loop',{t:Finished}]},$cont:loop,pa:1024,d:['$','loop','$at','current$92k87c']};});$1e8$.next=function(){var $1e8$=this;var $1eb;if(!is$(($1eb=$1e8$.$1e9),{t:Finished})){$1e8$.$1e9=$1e5$.$1e6($1eb);return $1eb;}
else{return finished();}
};$1e8$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$loop',{t:Finished}]},ps:[],$cont:loop,pa:3,d:['$','loop','$m','next']};};})($1e8.$$.prototype);}
return $1e8;}
$1e5$.$init$$1e8=$init$$1e8;$init$$1e8();return $1e8();}();};})($1e5.$$.prototype);}
return $1e5;}
$init$$1e5();return $1e5();}();}();}};$1e2.$crtmm$=function(){return{ps:[{nm:'next',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:'u',l:[$em9nfa$.Element$loop,{t:Finished}]},Arguments$Callable:{t:Tuple,a:{Rest$Tuple:{t:Empty},Element$Tuple:$em9nfa$.Element$loop/*ORALE!Element inv pero Element var*/,First$Tuple:$em9nfa$.Element$loop/*ORALE!Element inv pero First var*/}}}},$rt:{t:'u',l:[$em9nfa$.Element$loop,{t:Finished}]},ps:[{nm:'element',mt:'prm',$t:$em9nfa$.Element$loop}],an:function(){return[doc$($CCMM$,'$:loop:$m:next$nr9e8n')];}}],$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:$em9nfa$.Element$loop/*ORALE!Element inv pero Element var*/}}};};return JsCallable(0,$1e2);};loop.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:Iterable,a:{Element$Iterable:'Element$loop',Absent$Iterable:{t:Nothing}}},Arguments$Callable:{t:'T',l:[{t:Callable,a:{Return$Callable:{t:'u',l:['Element$loop',{t:Finished}]},Arguments$Callable:{t:'T',l:['Element$loop']}}}]}}},ps:[{nm:'first',mt:'prm',$t:'Element$loop'}],tp:{Element$loop:{}},pa:1,an:function(){return[doc$($CCMM$,'$:loop'),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','loop']};};
ex$.loop=loop;function max($1ee,$vlujgu$){var $1ef=$1ee.iterator();var $1eg;if(!is$(($1eg=$1ef.next()),{t:Finished})){var $1eh=$1eg;var $1ei;while(!is$(($1ei=$1ef.next()),{t:Finished})){if($1ei.compare($1eh).equals(larger())){$1eh=$1ei;}
}
return $1eh;}
else{var $1ej;asrt$((is$(($1ej=null),$vlujgu$.Absent$max,$vlujgu$)),"iterable must be empty: \'is Absent null\' at max.ceylon (37:15-37:30)",'36:8-37:31','max.ceylon');
return null;}
}
ex$.max=max;max.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Absent$max','Value$max']},ps:[{nm:'values',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'Absent$max',Element$Iterable:'Value$max'}}}],tp:{Value$max:{sts:[{t:Comparable,a:{Other$Comparable:'Value$max'}}]},Absent$max:{sts:[{t:Null}]}},pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','max']};};function min($1ek,$vluja8$){var $1el=$1ek.iterator();var $1em;if(!is$(($1em=$1el.next()),{t:Finished})){var $1en=$1em;var $1eo;while(!is$(($1eo=$1el.next()),{t:Finished})){if($1eo.compare($1en).equals(smaller())){$1en=$1eo;}
}
return $1en;}
else{var $1ep;asrt$((is$(($1ep=null),$vluja8$.Absent$min,$vluja8$)),"iterable must be empty: \'is Absent null\' at min.ceylon (33:15-33:30)",'32:8-33:31','min.ceylon');
return null;}
}
ex$.min=min;min.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Absent$min','Value$min']},ps:[{nm:'values',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'Absent$min',Element$Iterable:'Value$min'}}}],tp:{Value$min:{sts:[{t:Comparable,a:{Other$Comparable:'Value$min'}}]},Absent$min:{sts:[{t:Null}]}},pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','min']};};ex$.$mod$ans$=function(){return[doc$($CCMM$,'','$mod-anns'),by(["Gavin King","Tom Bentley","Tako Schotanus","Stephane Epardaud","Enrique Zamudio"].$sa$({t:$_String})),license("http://www.apache.org/licenses/LICENSE-2.0.html")];};ex$.$mod$imps=function(){return{'java.base/7':function(){return[$_native(["jvm"].$sa$({t:$_String}))];}};};function not($1eq,$vluie7$){var $1er=function($1es){{return !$1eq($1es);}};$1er.$crtmm$=function(){return{ps:[{nm:'val',mt:'prm',$t:$vluie7$.Value$not}],$t:{t:$_Boolean}};};return JsCallable(0,$1er);};not.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Value$not']}}},ps:[{nm:'p',mt:'prm',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Value$not']}}}}],tp:{Value$not:{dv:'in'}},pa:1,an:function(){return[doc$($CCMM$,'$:not'),tagged(["Functions"].$sa$({t:$_String}))];},d:['$','not']};};
ex$.not=not;function nothing(){asrt$((false),"nothing may not be evaluated: \'false\' at nothing.ceylon (12:11-12:17)",'11:4-12:18','nothing.ceylon');
}
nothing.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Nothing},pa:1,an:function(){return[doc$($CCMM$,'$:nothing'),$_throws("AssertionError","when evaluated"),tagged("Basic types")];},d:['$','nothing']};}
ex$.nothing=nothing;var $prop$getNothing={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Nothing},pa:1,an:function(){return[doc$($CCMM$,'$:nothing'),$_throws($init$openClass$jsint()(lmp$(ex$,'$'),AssertionError),"when evaluated"),tagged(["Basic types"].$sa$({t:$_String}))];},d:['$','nothing']};}};ex$.$prop$getNothing=$prop$getNothing;$prop$getNothing.get=nothing;nothing.$crtmm$=$prop$getNothing.$crtmm$;function $1et(){var operatingSystem$=new $1et.$$;operatingSystem$.$prop$getVersion={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1et$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:operatingSystem:$at:version'),$_native()];},d:['$','operatingSystem','$at','version']};}};operatingSystem$.$prop$getVersion.get=function(){return version};return operatingSystem$;};$1et.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},d:['$','operatingSystem']};};function $init$operatingSystem(){if($1et.$$===undefined){initTypeProto($1et,'ceylon.language::operatingSystem',Basic);
(function(operatingSystem$){atr$(operatingSystem$,'newline',function(){var operatingSystem$=this;var $1ev;asrt$((nn$(($1ev=$_process().propertyValue("line.separator")))),"Assertion failed: \'exists result = process.propertyValue(\"line.separator\")\' at operatingSystem.ceylon (71:15-71:71)",'71:8-71:72','operatingSystem.ceylon');
return $1ev;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1et,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','operatingSystem','$at','newline']};});atr$(operatingSystem$,'name',function(){var operatingSystem$=this;var $1ew=($1ex=$_process().propertyValue("os.name"),nn$($1ex)?$1ex.lowercased:null);var $1ex;var $1ey;if(nn$(($1ey=$1ew))){if($1ey.contains("win")){return "windows";}
else{if($1ey.contains("mac")){return "mac";}
else{if($1ey.contains("linux")){return "linux";}
else{if((((($1ey.contains("nix")||$1ey.contains("freebsd"))||$1ey.contains("openbsd"))||$1ey.contains("netbsd"))||$1ey.contains("sunos"))){return "unix";}
}
}
}
}
return "other";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1et$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:operatingSystem:$at:name'),$_native()];},d:['$','operatingSystem','$at','name']};});atr$(operatingSystem$,'version',function(){var operatingSystem$=this;return "Unknown"},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1et$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:operatingSystem:$at:version'),$_native()];},d:['$','operatingSystem','$at','version']};});atr$(operatingSystem$,'fileSeparator',function(){var operatingSystem$=this;var $1ez;asrt$((nn$(($1ez=$_process().propertyValue("file.separator")))),"Assertion failed: \'exists result = process.propertyValue(\"file.separator\")\' at operatingSystem.ceylon (44:15-44:71)",'44:8-44:72','operatingSystem.ceylon');
return $1ez;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1et$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:operatingSystem:$at:fileSeparator'),$_native()];},d:['$','operatingSystem','$at','fileSeparator']};});atr$(operatingSystem$,'pathSeparator',function(){var operatingSystem$=this;var $1f0;asrt$((nn$(($1f0=$_process().propertyValue("path.separator")))),"Assertion failed: \'exists result = process.propertyValue(\"path.separator\")\' at operatingSystem.ceylon (51:15-51:71)",'51:8-51:72','operatingSystem.ceylon');
return $1f0;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1et$$N$$N,pa:1,an:function(){return[doc$($CCMM$,'$:operatingSystem:$at:pathSeparator'),$_native()];},d:['$','operatingSystem','$at','pathSeparator']};});})($1et.$$.prototype);}
return $1et;}
ex$.$init$operatingSystem=$init$operatingSystem;$init$operatingSystem();var $1f1;function operatingSystem(){if($1f1===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'operatingSystem\' before it was set"),'68:0-75:0','operatingSystem.ceylon');if($1f1===undefined){$1f1=INIT$;$1f1=$init$operatingSystem()();$1f1.$crtmm$=operatingSystem.$crtmm$;}
return $1f1;}
ex$.operatingSystem=operatingSystem;operatingSystem.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$operatingSystem()},pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','operatingSystem']};};$prop$getOperatingSystem=operatingSystem;ex$.$prop$getOperatingSystem=$prop$getOperatingSystem;function or($1f2,$1f3,$h247zf$){var $1f4=function($1f5){{return ($1f2($1f5)||$1f3($1f5));}};$1f4.$crtmm$=function(){return{ps:[{nm:'val',mt:'prm',$t:$h247zf$.Value$or}],$t:{t:$_Boolean}};};return JsCallable(0,$1f4);};or.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Value$or']}}},ps:[{nm:'p',mt:'prm',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Value$or']}}}},{nm:'q',mt:'prm',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['Value$or']}}}}],tp:{Value$or:{dv:'in'}},pa:1,an:function(){return[doc$($CCMM$,'$:or'),tagged(["Functions"].$sa$({t:$_String}))];},d:['$','or']};};
ex$.or=or;ex$.$pkg$ans$ceylon$language=function(){return[doc$($CCMM$,'ceylon.language','$pkg-anns'),by(["Gavin King","Tom Bentley","Tako Schotanus","Stephane Epardaud","Enrique Zamudio"].$sa$({t:$_String})),shared()];};function mapPairs($1f6,$1f7,$1f8,$l4tc0f$){function $1f9($$targs$$){var $1f9$=new $1f9.$$;$1f9$.$$targs$$=$$targs$$;Iterable({Absent$Iterable:mut$([$l4tc0f$.FirstAbsent$mapPairs,$l4tc0f$.SecondAbsent$mapPairs]),Element$Iterable:$l4tc0f$.Result$mapPairs/*ORALE!Result inv pero Element var*/},$1f9$);return $1f9$;};$1f9.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:mapPairs,sts:[{t:Iterable,a:{Absent$Iterable:{t:'u',l:['FirstAbsent$mapPairs','SecondAbsent$mapPairs']},Element$Iterable:'Result$mapPairs'}}],d:['$','mapPairs','$o','iterable$x16jqt']};};function $init$$1f9(){if($1f9.$$===undefined){initTypeProto($1f9,'ceylon.language::iterable',Basic,$init$Iterable());
(function($1f9$){$1f9$.iterator=function(){var $1f9$=this;function $1fb($$targs$$){var $1fb$=new $1fb.$$;$1fb$.outer$=$1f9$;$1fb$.$$targs$$=$$targs$$;Iterator({Element$Iterator:$l4tc0f$.Result$mapPairs/*ORALE!Result inv pero Element var*/},$1fb$);$1fb$.$1fd_=$1f7.iterator();$1fb$.$prop$get$1fd={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'First$mapPairs'}},$cont:$1fb,d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator','$o','iterator$5i9ypz','$at','firstIter$ruc02k']};}};$1fb$.$prop$get$1fd.get=function(){return $1fd};$1fb$.$1fe_=$1f8.iterator();$1fb$.$prop$get$1fe={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Second$mapPairs'}},$cont:$1fb,d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator','$o','iterator$5i9ypz','$at','secondIter$6wrzi8']};}};$1fb$.$prop$get$1fe.get=function(){return $1fe};return $1fb$;};$1fb.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:$1f9$.iterator,sts:[{t:Iterator,a:{Element$Iterator:'Result$mapPairs'}}],d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator','$o','iterator$5i9ypz']};};function $init$$1fb(){if($1fb.$$===undefined){initTypeProto($1fb,'ceylon.language::iterable.iterator',Basic,$init$Iterator());
(function($1fb$){atr$($1fb$,'$1fd',function(){return this.$1fd_;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'First$mapPairs'}},$cont:$1fb,d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator','$o','iterator$5i9ypz','$at','firstIter$ruc02k']};});atr$($1fb$,'$1fe',function(){return this.$1fe_;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Second$mapPairs'}},$cont:$1fb,d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator','$o','iterator$5i9ypz','$at','secondIter$6wrzi8']};});$1fb$.next=function(){var $1fb$=this;var $1ff,$1fg;if(!is$(($1ff=$1fb$.$1fd.next()),{t:Finished})&&!is$(($1fg=$1fb$.$1fe.next()),{t:Finished})){return $1f6($1ff,$1fg);}
else{return finished();}
};$1fb$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Result$mapPairs',{t:Finished}]},ps:[],$cont:$1fb,pa:3,d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator','$o','iterator$5i9ypz','$m','next']};};atr$($1fb$,'string',function(){var $1fb$=this;return $1f9$.string.plus(".iterator()");},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1fb,pa:3,d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator','$o','iterator$5i9ypz','$at','string']};});})($1fb.$$.prototype);}
return $1fb;}
$1f9$.$init$$1fb=$init$$1fb;$init$$1fb();var $1fh;function $1fc(){if($1fh===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterator\' before it was set"),'33:12-47:12','pairs.ceylon');if($1fh===undefined){$1fh=INIT$;$1fh=$init$$1fb()({Element$Iterator:$l4tc0f$.Result$mapPairs/*ORALE!Result inv pero Element var*/});$1fh.$crtmm$=$1fc.$crtmm$;}
return $1fh;}
$1fc.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$$1fb()},$cont:$1f9$.iterator,d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator','$o','iterator$5i9ypy']};};$prop$get$1fb=$1fc;$1fc();return $1fc();};$1f9$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Result$mapPairs'}},ps:[],$cont:$1f9,pa:3,d:['$','mapPairs','$o','iterable$x16jqt','$m','iterator']};};})($1f9.$$.prototype);}
return $1f9;}
$init$$1f9();var $1fi;function $1fa(){if($1fi===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'iterable\' before it was set"),'30:4-50:4','pairs.ceylon');if($1fi===undefined){$1fi=INIT$;$1fi=$init$$1f9()({Absent$Iterable:mut$([$l4tc0f$.FirstAbsent$mapPairs,$l4tc0f$.SecondAbsent$mapPairs]),Element$Iterable:$l4tc0f$.Result$mapPairs/*ORALE!Result inv pero Element var*/});$1fi.$crtmm$=$1fa.$crtmm$;}
return $1fi;}
$1fa.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$$1f9()},$cont:mapPairs,d:['$','mapPairs','$o','iterable$x16jqs']};};$prop$get$1f9=$1fa;$1fa();return $1fa();}
ex$.mapPairs=mapPairs;mapPairs.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:'u',l:['FirstAbsent$mapPairs','SecondAbsent$mapPairs']},Element$Iterable:'Result$mapPairs'}},ps:[{nm:'collecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$mapPairs',Arguments$Callable:{t:'T',l:['First$mapPairs','Second$mapPairs']}}},$rt:'Result$mapPairs',ps:[{nm:'first',mt:'prm',$t:'First$mapPairs'},{nm:'second',mt:'prm',$t:'Second$mapPairs'}]},{nm:'firstIterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'FirstAbsent$mapPairs',Element$Iterable:'First$mapPairs'}}},{nm:'secondIterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'SecondAbsent$mapPairs',Element$Iterable:'Second$mapPairs'}}}],tp:{Result$mapPairs:{},First$mapPairs:{},Second$mapPairs:{},FirstAbsent$mapPairs:{sts:[{t:Null}]},SecondAbsent$mapPairs:{sts:[{t:Null}]}},pa:1,an:function(){return[doc$($CCMM$,'$:mapPairs'),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','mapPairs']};};function findPair($1fj,$1fk,$1fl,$76byhx$){var $1fm=$1fk.iterator();var $1fn=$1fl.iterator();var $1fo,$1fp;while(!is$(($1fo=$1fm.next()),{t:Finished})&&!is$(($1fp=$1fn.next()),{t:Finished})){if($1fj($1fo,$1fp)){return tpl$([$1fo,$1fp]);}
}
return null;}
ex$.findPair=findPair;findPair.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:'T',l:['First$findPair','Second$findPair']}]},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['First$findPair','Second$findPair']}}},$rt:{t:$_Boolean},ps:[{nm:'first',mt:'prm',$t:'First$findPair'},{nm:'second',mt:'prm',$t:'Second$findPair'}]},{nm:'firstIterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'First$findPair'}}},{nm:'secondIterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Second$findPair'}}}],tp:{First$findPair:{},Second$findPair:{}},pa:1,an:function(){return[doc$($CCMM$,'$:findPair'),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','findPair']};};function everyPair($1fq,$1fr,$1fs,$4z176r$){var $1ft=$1fr.iterator();var $1fu=$1fs.iterator();var $1fv,$1fw;while(!is$(($1fv=$1ft.next()),{t:Finished})&&!is$(($1fw=$1fu.next()),{t:Finished})){if(!$1fq($1fv,$1fw)){return false;}
}
return true;}
ex$.everyPair=everyPair;everyPair.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['First$everyPair','Second$everyPair']}}},$rt:{t:$_Boolean},ps:[{nm:'first',mt:'prm',$t:'First$everyPair'},{nm:'second',mt:'prm',$t:'Second$everyPair'}]},{nm:'firstIterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'First$everyPair'}}},{nm:'secondIterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Second$everyPair'}}}],tp:{First$everyPair:{},Second$everyPair:{}},pa:1,an:function(){return[doc$($CCMM$,'$:everyPair'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),corresponding),$init$OpenFunction$jsint()(lmp$(ex$,'$'),anyPair)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','everyPair']};};function anyPair($1fx,$1fy,$1fz,$8rk4uk$){var $1g0=$1fy.iterator();var $1g1=$1fz.iterator();var $1g2,$1g3;while(!is$(($1g2=$1g0.next()),{t:Finished})&&!is$(($1g3=$1g1.next()),{t:Finished})){if($1fx($1g2,$1g3)){return true;}
}
return false;}
ex$.anyPair=anyPair;anyPair.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'selecting',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:['First$anyPair','Second$anyPair']}}},$rt:{t:$_Boolean},ps:[{nm:'first',mt:'prm',$t:'First$anyPair'},{nm:'second',mt:'prm',$t:'Second$anyPair'}]},{nm:'firstIterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'First$anyPair'}}},{nm:'secondIterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Second$anyPair'}}}],tp:{First$anyPair:{},Second$anyPair:{}},pa:1,an:function(){return[doc$($CCMM$,'$:anyPair'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),everyPair)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','anyPair']};};function foldPairs($1g4,$1g5,$1g6,$1g7,$avopk6$){var $1g8=$1g6.iterator();var $1g9=$1g7.iterator();var $1ga=$1g4;var $1gb,$1gc;while(!is$(($1gb=$1g8.next()),{t:Finished})&&!is$(($1gc=$1g9.next()),{t:Finished})){$1ga=$1g5($1ga,$1gb,$1gc);}
return $1ga;}
ex$.foldPairs=foldPairs;foldPairs.$crtmm$=function(){return{mod:$CCMM$,$t:'Result$foldPairs',ps:[{nm:'initial',mt:'prm',$t:'Result$foldPairs'},{nm:'accumulating',mt:'prm',$pt:'f',$t:{t:Callable,a:{Return$Callable:'Result$foldPairs',Arguments$Callable:{t:'T',l:['Result$foldPairs','First$foldPairs','Second$foldPairs']}}},$rt:'Result$foldPairs',ps:[{nm:'partial',mt:'prm',$t:'Result$foldPairs'},{nm:'first',mt:'prm',$t:'First$foldPairs'},{nm:'second',mt:'prm',$t:'Second$foldPairs'}]},{nm:'firstIterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'First$foldPairs'}}},{nm:'secondIterable',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Second$foldPairs'}}}],tp:{Result$foldPairs:{},First$foldPairs:{},Second$foldPairs:{}},pa:1,an:function(){return[doc$($CCMM$,'$:foldPairs'),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','foldPairs']};};function parseBoolean($1gd){var $1ge=$1gd;if("true".equals($1ge)) {return true;}
else if("false".equals($1ge)) {return false;}
else{return null;}}
ex$.parseBoolean=parseBoolean;parseBoolean.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:$_Boolean}]},ps:[{nm:'string',mt:'prm',$t:{t:$_String}}],pa:1,an:function(){return[doc$($CCMM$,'$:parseBoolean'),tagged(["Basic types"].$sa$({t:$_String}))];},d:['$','parseBoolean']};};function parseFloat($1gf){var $1gg;var $1gh;if($1gf.startsWith("-")){$1gg=(-1);$1gh=$1gf.spanFrom(1);}
else{if($1gf.startsWith("+")){$1gg=(+1);$1gh=$1gf.spanFrom(1);}
else{$1gg=(+1);$1gh=$1gf;}
}
var $1gi;var $1gj;var $1gk;var $1gl;if(nn$(($1gl=$1gh.firstOccurrence(Character(46,true))))){$1gi=$1gh.spanTo($1gl.minus(1));var $1gm=$1gh.spanFrom($1gl.plus(1));var $1gn;if(nn$(($1gn=$1gm.firstIndexWhere($JsCallable(function($O$){return $O$.letter;},[{nm:'_0',mt:'prm',$t:{t:Character}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:Character}])}))))){$1gj=$1gm.spanTo($1gn.minus(1));$1gk=$1gm.spanFrom($1gn);}
else{$1gj=$1gm;$1gk=null;}
}
else{var $1go;if(nn$(($1go=$1gh.firstIndexWhere($JsCallable(function($O$){return $O$.letter;},[{nm:'_0',mt:'prm',$t:{t:Character}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:Character}])}))))){$1gi=$1gh.spanTo($1go.minus(1));$1gk=$1gh.spanFrom($1go);}
else{$1gi=$1gh;$1gk=null;}
$1gj="0";}
if((!$1gi.$_every($JsCallable(function($O$){return $O$.digit;},[{nm:'_0',mt:'prm',$t:{t:Character}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:Character}])}))||!$1gj.$_every($JsCallable(function($O$){return $O$.digit;},[{nm:'_0',mt:'prm',$t:{t:Character}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:Character}])})))){return null;}
var $1gp=$1gi.measure(0,maximumIntegerExponent());var $1gq=$1gj.measure(0,maximumIntegerExponent().minus($1gp.size));var $1gr=$1gp.plus($1gq);var $1gs=($1gt=($1gq.empty?$1gp.size.minus($1gi.size):null),nn$($1gt)?$1gt:$1gq.size);var $1gt;var $1gu;var $1gv;if(nn$(($1gv=$1gk))){var $1gw;if(nn$(($1gw=parseFloatExponent($1gv)))){$1gu=$1gw.minus($1gs);}
else{return null;}
}
else{$1gu=(-$1gs);}
var $1gx;if(nn$(($1gx=parseInteger($1gr)))){var $1gy=($1gz=((($1gx).valueOf()==(0).valueOf())?(0).times($1gg.$_float):null),nn$($1gz)?$1gz:$1gg.times($1gx).nearestFloat);var $1gz;var $1h0=$1gu.magnitude;if((($1h0).valueOf()==(0).valueOf())){return $1gy;}
else{if(($1h0<=maximumIntegerExponent())){var $1h1=(10).power($1h0);return ($1h2=(($1gu<0)?$1gy.divided($1h1):null),nn$($1h2)?$1h2:$1gy.times($1h1));var $1h2;}
else{return $1gy.times(Float(10.0).power($1gu));}
}
}
return null;}
ex$.parseFloat=parseFloat;parseFloat.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Float}]},ps:[{nm:'string',mt:'prm',$t:{t:$_String}}],pa:1,an:function(){return[doc$($CCMM$,'$:parseFloat'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),formatFloat),$init$OpenFunction$jsint()(lmp$(ex$,'$'),parseInteger)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Numbers","Basic types"].$sa$({t:$_String}))];},d:['$','parseFloat']};};var $1h3;function $valinit$$1h3(){if($1h3===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'maximumIntegerExponent\' before it was set"),'125:0-130:15','parseFloat.ceylon');if($1h3===undefined){$1h3=INIT$;$1h3=smallest(runtime().maxIntegerValue.string.size,runtime().minIntegerValue.string.size.minus(1),{Element$smallest:{t:Integer}}).minus(1)};return $1h3;};function maximumIntegerExponent(){return $valinit$$1h3();}
var $prop$getMaximumIntegerExponent={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},an:function(){return[doc$($CCMM$,'$:maximumIntegerExponent')];},d:['$','maximumIntegerExponent']};}};ex$.$prop$getMaximumIntegerExponent=$prop$getMaximumIntegerExponent;$prop$getMaximumIntegerExponent.get=maximumIntegerExponent;function parseFloatExponent($1h4){var $1h5=$1h4;if("k".equals($1h5)) {return 3;}
else if("M".equals($1h5)) {return 6;}
else if("G".equals($1h5)) {return 9;}
else if("T".equals($1h5)) {return 12;}
else if("P".equals($1h5)) {return 15;}
else if("m".equals($1h5)) {return (-3);}
else if("u".equals($1h5)) {return (-6);}
else if("n".equals($1h5)) {return (-9);}
else if("p".equals($1h5)) {return (-12);}
else if("f".equals($1h5)) {return (-15);}
else{if(($1h4.lowercased.startsWith("e")&&$1h4.rest.$_every(JsCallable(0,digitOrSign())))){return parseInteger($1h4.rest);}
else{return null;}
}};parseFloatExponent.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'string',mt:'prm',$t:{t:$_String}}],d:['$','parseFloatExponent']};};var $1h6;function $valinit$$1h6(){if($1h6===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'digitOrSign\' before it was set"),'175:0-176:44','parseFloat.ceylon');if($1h6===undefined){$1h6=INIT$;$1h6=or($JsCallable(function($O$){return $O$.digit;},[{nm:'_0',mt:'prm',$t:{t:Character}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:Character}])}),$JsCallable(($1h7="+-",JsCallable($1h7,$1h7.contains)),[{nm:'element',mt:'prm',$t:{t:$_Object}}],{Return$Callable:{t:$_Boolean},Arguments$Callable:mtt$([{t:$_Object}])}),{Value$or:{t:Character}})};return $1h6;};function digitOrSign(){return $valinit$$1h6();}
var $prop$getDigitOrSign={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:$_Boolean},Arguments$Callable:{t:'T',l:[{t:Character}]}}},d:['$','digitOrSign']};}};ex$.$prop$getDigitOrSign=$prop$getDigitOrSign;$prop$getDigitOrSign.get=digitOrSign;var $1h7;var $1h8;function $valinit$$1h8(){if($1h8===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'minRadix\' before it was set"),'1:0-1:20','parseInteger.ceylon');if($1h8===undefined){$1h8=INIT$;$1h8=(2)};return $1h8;};function minRadix(){return $valinit$$1h8();}
var $prop$getMinRadix={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},d:['$','minRadix']};}};ex$.$prop$getMinRadix=$prop$getMinRadix;$prop$getMinRadix.get=minRadix;var $1h9;function $valinit$$1h9(){if($1h9===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'maxRadix\' before it was set"),'2:0-2:21','parseInteger.ceylon');if($1h9===undefined){$1h9=INIT$;$1h9=(36)};return $1h9;};function maxRadix(){return $valinit$$1h9();}
var $prop$getMaxRadix={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},d:['$','maxRadix']};}};ex$.$prop$getMaxRadix=$prop$getMaxRadix;$prop$getMaxRadix.get=maxRadix;function parseInteger($1ha,$1hb){if($1hb===undefined){$1hb=(10);}
asrt$((($1hc=$1hb,$1hc.compare(minRadix())!==smaller()&&$1hc.compare(maxRadix())!==larger())),"Assertion failed: \'minRadix <= radix <= maxRadix\' at parseInteger.ceylon (37:11-37:41)",'37:4-37:42','parseInteger.ceylon');
var $1hd;var $1he=runtime().minIntegerValue.divided($1hb);var $1hf;var $1hg;if(nn$(($1hg=$1ha.first))){if($1hg.equals(Character(45,true))){$1hf=true;$1hd=(1);}
else{if($1hg.equals(Character(43,true))){$1hf=false;$1hd=(1);}
else{$1hf=false;$1hd=(0);}
}
}
else{return null;}
var $1hh=($1hi=($1hf?runtime().minIntegerValue:null),nn$($1hi)?$1hi:(-runtime().maxIntegerValue));var $1hi;var $1hj=$1ha.size;var $1hk=(0);var $1hl=(0);var $1hm=$1hd;while(($1hm<$1hj)){var $1hn;asrt$((nn$(($1hn=$1ha.getFromFirst($1hm)))),"Assertion failed: \'exists ch = string.getFromFirst(index)\' at parseInteger.ceylon (71:15-71:54)",'71:8-71:55','parseInteger.ceylon');
if((((($1hm.plus(1)).valueOf()==($1hj).valueOf())&&(($1hb).valueOf()==(10).valueOf()))&&"kMGTP".contains($1hn))){var $1ho;if(nn$(($1ho=parseIntegerExponent($1hn)))){var $1hp=(10).power($1ho);if(($1hh.divided($1hp)<$1hk)){($1hk=$1hk.times($1hp));break;}
else{return null;}
}
else{return null;}
}
else{var $1hq;if(nn$(($1hq=parseDigit($1hn,$1hb)))){if(($1hk<$1he)){return null;}
($1hk=$1hk.times($1hb));if(($1hk<$1hh.plus($1hq))){return null;}
($1hk=$1hk.minus($1hq));}
else{return null;}
}
($1hr=$1hm,$1hm=$1hr.successor,$1hr);var $1hr;($1hs=$1hl,$1hl=$1hs.successor,$1hs);var $1hs;}
if((($1hl).valueOf()==(0).valueOf())){return null;}
else{return ($1ht=($1hf?$1hk:null),nn$($1ht)?$1ht:(-$1hk));var $1ht;}
}
ex$.parseInteger=parseInteger;parseInteger.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'string',mt:'prm',$t:{t:$_String}},{nm:'radix',mt:'prm',def:1,$t:{t:Integer}}],pa:1,an:function(){return[doc$($CCMM$,'$:parseInteger'),$_throws($init$openClass$jsint()(lmp$(ex$,'$'),AssertionError),"if [[radix]] is not between [[minRadix]] and \n[[maxRadix]]"),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),formatInteger),$init$OpenFunction$jsint()(lmp$(ex$,'$'),parseFloat)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Numbers","Basic types"].$sa$({t:$_String}))];},d:['$','parseInteger']};};function parseIntegerExponent($1hu){var $1hv=$1hu;if($1hv.equals(Character(80,true))) {return 15;}
else if($1hv.equals(Character(84,true))) {return 12;}
else if($1hv.equals(Character(71,true))) {return 9;}
else if($1hv.equals(Character(77,true))) {return 6;}
else if($1hv.equals(Character(107,true))) {return 3;}
else{return null;}};parseIntegerExponent.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'char',mt:'prm',$t:{t:Character}}],d:['$','parseIntegerExponent']};};var $1hw;function $valinit$$1hw(){if($1hw===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'aIntLower\' before it was set"),'145:0-145:31','parseInteger.ceylon');if($1hw===undefined){$1hw=INIT$;$1hw=Character(97,true).integer};return $1hw;};function aIntLower(){return $valinit$$1hw();}
var $prop$getAIntLower={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},d:['$','aIntLower']};}};ex$.$prop$getAIntLower=$prop$getAIntLower;$prop$getAIntLower.get=aIntLower;var $1hx;function $valinit$$1hx(){if($1hx===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'aIntUpper\' before it was set"),'146:0-146:31','parseInteger.ceylon');if($1hx===undefined){$1hx=INIT$;$1hx=Character(65,true).integer};return $1hx;};function aIntUpper(){return $valinit$$1hx();}
var $prop$getAIntUpper={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},d:['$','aIntUpper']};}};ex$.$prop$getAIntUpper=$prop$getAIntUpper;$prop$getAIntUpper.get=aIntUpper;var $1hy;function $valinit$$1hy(){if($1hy===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'zeroInt\' before it was set"),'147:0-147:29','parseInteger.ceylon');if($1hy===undefined){$1hy=INIT$;$1hy=Character(48,true).integer};return $1hy;};function zeroInt(){return $valinit$$1hy();}
var $prop$getZeroInt={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},d:['$','zeroInt']};}};ex$.$prop$getZeroInt=$prop$getZeroInt;$prop$getZeroInt.get=zeroInt;function parseDigit($1hz,$1i0){var $1i1;var $1i2=$1hz.integer;if(($1i3=$1i2.minus(zeroInt()),$1i3.compare((0))!==smaller()&&$1i3.compare((10))===smaller())){$1i1=$1i2.minus(zeroInt());}
else{if(($1i4=$1i2.minus(aIntLower()),$1i4.compare((0))!==smaller()&&$1i4.compare((26))===smaller())){$1i1=$1i2.minus(aIntLower()).plus(10);}
else{if(($1i5=$1i2.minus(aIntUpper()),$1i5.compare((0))!==smaller()&&$1i5.compare((26))===smaller())){$1i1=$1i2.minus(aIntUpper()).plus(10);}
else{return null;}
}
}
return (($1i1<$1i0)?$1i1:null);};parseDigit.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Integer}]},ps:[{nm:'digit',mt:'prm',$t:{t:Character}},{nm:'radix',mt:'prm',$t:{t:Integer}}],d:['$','parseDigit']};};function plus($1i6,$1i7,$emc5ak$){return $1i6.plus($1i7);};plus.$crtmm$=function(){return{mod:$CCMM$,$t:'Value$plus',ps:[{nm:'x',mt:'prm',$t:'Value$plus'},{nm:'y',mt:'prm',$t:'Value$plus'}],tp:{Value$plus:{sts:[{t:Summable,a:{Other$Summable:'Value$plus'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:plus'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),times),$init$OpenFunction$jsint()(lmp$(ex$,'$'),sum)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Numbers"].$sa$({t:$_String}))];},d:['$','plus']};};
ex$.plus=plus;function print($1i8){return $_process().writeLine(stringify($1i8));};print.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'val',mt:'prm',$t:{t:Anything}}],pa:1,an:function(){return[doc$($CCMM$,'$:print'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$_process().writeLine)].$sa$({t:FunctionDeclaration$meta$declaration})),by(["Gavin"].$sa$({t:$_String})),tagged(["Environment"].$sa$({t:$_String}))];},d:['$','print']};};
ex$.print=print;function printAll($1i9,$1ia){if($1ia===undefined){$1ia=", ";}
var $1ib=true;$1i9.each($JsCallable((function($1ic){if($1ib){$1ib=false;}
else{$_process().write($1ia);}
$_process().write(stringify($1ic));}),[{nm:'element',mt:'prm',$t:{t:Anything}}],{Return$Callable:{t:Anything},Arguments$Callable:mtt$([{t:Anything}])}));$_process().write(operatingSystem().newline);}
ex$.printAll=printAll;printAll.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'values',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Anything}}}},{nm:'separator',mt:'prm',def:1,$t:{t:$_String}}],pa:1,an:function(){return[doc$($CCMM$,'$:printAll'),by(["Gavin"].$sa$({t:$_String})),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),$_process().write)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Environment"].$sa$({t:$_String}))];},d:['$','printAll']};};function stringify($1id){return ($1ie=($1if=$1id,nn$($1if)?$1if.string:null),nn$($1ie)?$1ie:"<null>");};stringify.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'val',mt:'prm',$t:{t:Anything}}],d:['$','stringify']};};var $1ie,$1if;function printStackTrace$defs$write($1ig,$1ih){return function($1ii){return $_process().writeError($1ii);};};function printStackTrace(exc, _write) {
if (_write===undefined)_write=$_process().writeError;
var _c = className(exc);
if (exc.message.size > 0) {
_c += ' "' + exc.message + '"';
}
_write(_c);_write(operatingSystem().newline);
for (var i=0; i<exc.stack_trace.length; i++) {
var f = exc.stack_trace[i];
if (f == "CIRCULAR") {
_write("    (Infinite loop detected)");
_write(operatingSystem().newline);
return;
}
if (typeof(f)==='string') {
_write(f);
_write(operatingSystem().newline);
f=null;
}
var mm = getrtmm$$(f);
if (mm && mm.d) {
var _src = '';
if (i==0) {
if (exc.$loc && exc.$file) _src = ' (' + exc.$file + " " + exc.$loc + ')';
}
var pkn=mm.d[0];
if (pkn==='$')pkn='ceylon.language';
_write("    at " + pkn + "::" + mm.d[mm.d.length-1] + _src);_write(operatingSystem().newline);
}
}
}
printStackTrace.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'exception',mt:'prm',$t:{t:Throwable}},{nm:'write',mt:'prm',$pt:'f',def:1,$t:{t:Callable,a:{Return$Callable:{t:Anything},Arguments$Callable:{t:'T',l:[{t:$_String}]}}},$rt:{t:Anything},ps:[{nm:'string',mt:'prm',$t:{t:$_String}}],an:function(){return[doc$($CCMM$,'$:printStackTrace:$m:write$yuvcdj')];}}],pa:1,an:function(){return[doc$($CCMM$,'$:printStackTrace'),tagged(["Environment"].$sa$({t:$_String})),$_native()];},d:['$','printStackTrace']};};
ex$.printStackTrace=printStackTrace;function $1ij(){var process$=new $1ij.$$;process$.$prop$getArguments={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},$cont:$1ij,pa:1,an:function(){return[doc$($CCMM$,'$:process:$at:arguments'),$_native()];},d:['$','process','$at','arguments']};}};return process$;};$1ij.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},d:['$','process']};};function $init$$_process(){if($1ij.$$===undefined){initTypeProto($1ij,'ceylon.language::process',Basic);
(function(process$){atr$(process$,'$_arguments',function(){if (this.argv!==undefined)return this.argv;
this.argv = empty();
this.namedArgs = {};
if ((typeof process !== "undefined") && (process.argv !== undefined)) {
// parse command line arguments
if (process.argv.length > 2) {
// Ignore the first two arguments (see https://github.com/ceylon/ceylon.language/issues/503)
var args = process.argv.slice(2);
for (var i=0; i<args.length; ++i) {
var arg = args[i];
if (arg.charAt(0) == '-') {
var pos = 1;
if (arg.charAt(1) == '-') { pos = 2; }
arg = arg.substr(pos);
pos = arg.indexOf('=');
if (pos >= 0) {
this.namedArgs[arg.substr(0, pos)] = arg.substr(pos+1);
} else {
var value = args[i+1];
if ((value !== undefined) && (value.charAt(0) != '-')) {
this.namedArgs[arg] = value;
++i;
} else {
this.namedArgs[arg] = null;
}
}
}
args[i] = $_String(args[i]);
}
this.argv = args.$sa$({t:$_String});
}
} else if (typeof window !== "undefined") {
// parse URL parameters
var parts = window.location.search.substr(1).replace('+', ' ').split('&');
if ((parts.length > 1) || ((parts.length > 0) && (parts[0].length > 0))) {
var argStrings = new Array(parts.length);
//can't do "for (i in parts)" anymore because of the added stuff to arrays
var i;
for (i=0; i<parts.length; i++) { argStrings[i] = parts[i]; }
this.argv = parts.$sa$({t:$_String});
for (i=0; i < parts.length; i++) {
var part = parts[i];
var pos = part.indexOf('=');
if (pos >= 0) {
var value = decodeURIComponent(part.substr(pos+1));
this.namedArgs[part.substr(0, pos)] = value;
} else {
this.namedArgs[part] = null;
}
}
}
}
return this.argv;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:$_String}}},$cont:$1ij,pa:1,an:function(){return[doc$($CCMM$,'$:process:$at:arguments'),$_native()];},d:['$','process','$at','arguments']};});process$.namedArgumentPresent=function(name) {
if (this.namedArgs===undefined)this.$_arguments;
return (name in this.namedArgs);
}
process$.namedArgumentPresent.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:$1ij,pa:1,an:function(){return[doc$($CCMM$,'$:process:$m:namedArgumentPresent'),$_native()];},d:['$','process','$m','namedArgumentPresent']};};process$.namedArgumentValue=function(name) {
if (this.namedArgs===undefined)this.$_arguments;
return this.namedArgs[name]||null;
}
process$.namedArgumentValue.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:$_String}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:$1ij,pa:1,an:function(){return[doc$($CCMM$,'$:process:$m:namedArgumentValue'),$_native()];},d:['$','process','$m','namedArgumentValue']};};process$.propertyValue=function(name) {
return properties[name]||null;
}
process$.propertyValue.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:$_String}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:$1ij,pa:1,an:function(){return[doc$($CCMM$,'$:process:$m:propertyValue'),$_native()];},d:['$','process','$m','propertyValue']};};process$.environmentVariableValue=function(name) {
if ((typeof process !== "undefined") && (process.env !== undefined)) {
return process.env[name];
}
return null;
}
process$.environmentVariableValue.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:$_String}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:$1ij,pa:1,an:function(){return[doc$($CCMM$,'$:process:$m:environmentVariableValue'),$_native()];},d:['$','process','$m','environmentVariableValue']};};process$.write=(function() {
if ((typeof process !== "undefined") && (process.stdout !== undefined)) {
return function(string) {
if(string)process.stdout.write(string.valueOf());
}
} else if ((typeof console !== "undefined") && (console.log !== undefined)) {
return function(line) {
if (line==operatingSystem().newline) {
console.log(ex$.p$w$stdout||'');
ex$.p$w$stdout='';
} else {
ex$.p$w$stdout=(ex$.p$w$stdout||'')+line;
}
}
}
return function(){};
})()
process$.write.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'string',mt:'prm',$t:{t:$_String}}],$cont:$1ij,pa:1,an:function(){return[doc$($CCMM$,'$:process:$m:write'),$_native()];},d:['$','process','$m','write']};};process$.writeLine$defs$line=function($1il){return "";};process$.writeLine=function($1il){var process$=this;if($1il===undefined){$1il="";}
process$.write($1il);process$.write(operatingSystem().newline);};process$.writeLine.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'line',mt:'prm',def:1,$t:{t:$_String}}],$cont:$1ij,pa:1,an:function(){return[doc$($CCMM$,'$:process:$m:writeLine'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),print)].$sa$({t:FunctionDeclaration$meta$declaration}))];},d:['$','process','$m','writeLine']};};process$.flush=function(){}
process$.flush.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:$1ij,pa:1,an:function(){return[doc$($CCMM$,'$:process:$m:flush'),$_native()];},d:['$','process','$m','flush']};};process$.writeError=(function(){
if ((typeof process !== "undefined") && (process.stderr !== undefined)) {
return function(string) {
if(string)process.stderr.write(string.valueOf());
}
} else if ((typeof console !== "undefined") && (console.error !== undefined)) {
return function(line) {
console.error(line?line.valueOf():'');
}
}
return function(x){this.write(x);}
})()
process$.writeError.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'string',mt:'prm',$t:{t:$_String}}],$cont:$1ij,pa:1,an:function(){return[doc$($CCMM$,'$:process:$m:writeError'),$_native()];},d:['$','process','$m','writeError']};};process$.writeErrorLine$defs$line=function($1im){return "";};process$.writeErrorLine=function($1im){var process$=this;if($1im===undefined){$1im="";}
process$.writeError($1im);process$.writeError(operatingSystem().newline);};process$.writeErrorLine.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'line',mt:'prm',def:1,$t:{t:$_String}}],$cont:$1ij,pa:1,an:function(){return[doc$($CCMM$,'$:process:$m:writeErrorLine')];},d:['$','process','$m','writeErrorLine']};};process$.flushError=function(){}
process$.flushError.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:$1ij,pa:1,an:function(){return[doc$($CCMM$,'$:process:$m:flushError'),$_native()];},d:['$','process','$m','flushError']};};process$.readLine=function() {
this.writeLine("process.readLine not supported on this platform.");
return "";
}
process$.readLine.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:$_String}]},ps:[],$cont:$1ij,pa:1,an:function(){return[doc$($CCMM$,'$:process:$m:readLine'),$_native()];},d:['$','process','$m','readLine']};};process$.exit=(function(){
if ((typeof process !== "undefined") && (process.exit !== undefined)) {
return function(code) {
process.exit(code);
}
}
return function() {}
})()
process$.exit.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Nothing},ps:[{nm:'code',mt:'prm',$t:{t:Integer}}],$cont:$1ij,pa:1,an:function(){return[doc$($CCMM$,'$:process:$m:exit'),$_native()];},d:['$','process','$m','exit']};};atr$(process$,'string',function(){var process$=this;return "process";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1ij,pa:3,d:['$','process','$at','string']};});})($1ij.$$.prototype);}
return $1ij;}
ex$.$init$$_process=$init$$_process;$init$$_process();var $1in;function $_process(){if($1in===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'process\' before it was set"),'1:0-74:0','process.ceylon');if($1in===undefined){$1in=INIT$;$1in=$init$$_process()();$1in.$crtmm$=$_process.$crtmm$;}
return $1in;}
ex$.$_process=$_process;$_process.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$$_process()},pa:1,an:function(){return[doc$($CCMM$,'$:process'),by(["Gavin","Tako"].$sa$({t:$_String})),see([$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getLanguage),$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getRuntime),$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getSystem),$init$OpenValue$jsint()(lmp$(ex$,'$'),$prop$getOperatingSystem)].$sa$({t:ValueDeclaration$meta$declaration})),tagged(["Environment"].$sa$({t:$_String})),$_native()];},d:['$','process']};};$prop$getProcess=$_process;ex$.$prop$getProcess=$prop$getProcess;function product($1io,$23on1$){var $1ip=$1io.iterator();var $1iq;asrt$((!is$(($1iq=$1ip.next()),{t:Finished})),"Assertion failed: \'!is Finished first = it.next()\' at product.ceylon (21:11-21:42)",'21:4-21:43','product.ceylon');
var $1ir=$1iq;var $1is;while(!is$(($1is=$1ip.next()),{t:Finished})){($1ir=$1ir.times($1is));}
return $1ir;}
ex$.product=product;product.$crtmm$=function(){return{mod:$CCMM$,$t:'Value$product',ps:[{nm:'values',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Value$product'}}}],tp:{Value$product:{sts:[{t:Numeric,a:{Other$Numeric:'Value$product'}}]}},pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','product']};};function $1it(){var runtime$=new $1it.$$;runtime$.$prop$getIntegerSize={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1it,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','integerSize']};}};runtime$.$prop$getIntegerSize.get=function(){return integerSize};runtime$.$prop$getIntegerAddressableSize={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1it,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','integerAddressableSize']};}};runtime$.$prop$getIntegerAddressableSize.get=function(){return integerAddressableSize};runtime$.$1iv_=(-(2).power(53).minus(1));runtime$.$prop$getMinIntegerValue={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1it,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','minIntegerValue']};}};runtime$.$prop$getMinIntegerValue.get=function(){return minIntegerValue};runtime$.$1iw_=(2).power(53).minus(1);runtime$.$prop$getMaxIntegerValue={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1it,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','maxIntegerValue']};}};runtime$.$prop$getMaxIntegerValue.get=function(){return maxIntegerValue};runtime$.$1ix_=(2).power(32).minus(1);runtime$.$prop$getMaxArraySize={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1it,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','maxArraySize']};}};runtime$.$prop$getMaxArraySize.get=function(){return maxArraySize};runtime$.$1iy_=Float(2.0).power((-52));runtime$.$prop$getEpsilon={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Float},$cont:$1it,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','epsilon']};}};runtime$.$prop$getEpsilon.get=function(){return epsilon};runtime$.$prop$getMaxExactIntegralFloat={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1it,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','maxExactIntegralFloat']};}};runtime$.$prop$getMaxExactIntegralFloat.get=function(){return maxExactIntegralFloat};return runtime$;};$1it.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},d:['$','runtime']};};function $init$runtime(){if($1it.$$===undefined){initTypeProto($1it,'ceylon.language::runtime',Basic);
(function(runtime$){atr$(runtime$,'name',function(){var runtime$=this;var $1iz;if(is$(($1iz=$_process().propertyValue("node.version")),{t:$_String})){return "node.js";}
else{var $1j0;if(nn$(($1j0=(typeof window==='undefined'||window===null?throwexc(Exception("Undefined or null reference: window"),'116:28-116:33','runtime.ceylon'):window)))){return "Browser";}
else{return "Unknown JavaScript environment";}
}
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1it,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','name']};});atr$(runtime$,'version',function(){var runtime$=this;var $1j1;if(is$(($1j1=$_process().propertyValue("node.version")),{t:$_String})){return $1j1;}
else{var $1j2;if(is$(($1j2=$_process().propertyValue("browser.version")),{t:$_String})){return $1j2;}
else{return "Unknown";}
}
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1it,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','version']};});atr$(runtime$,'integerSize',function(){var runtime$=this;return 53},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1it,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','integerSize']};});atr$(runtime$,'integerAddressableSize',function(){var runtime$=this;return 32},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1it,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','integerAddressableSize']};});atr$(runtime$,'minIntegerValue',function(){return this.$1iv_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1it,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','minIntegerValue']};});atr$(runtime$,'maxIntegerValue',function(){return this.$1iw_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1it,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','maxIntegerValue']};});atr$(runtime$,'maxArraySize',function(){return this.$1ix_;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1it,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','maxArraySize']};});atr$(runtime$,'epsilon',function(){return this.$1iy_;},undefined,function(){return{mod:$CCMM$,$t:{t:Float},$cont:$1it,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','epsilon']};});atr$(runtime$,'maxExactIntegralFloat',function(){var runtime$=this;return runtime$.maxIntegerValue},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1it,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','maxExactIntegralFloat']};});atr$(runtime$,'maxFloatValue',function(){var runtime$=this;return ndnc$((typeof Number==='undefined'||Number===null?throwexc(Exception("Undefined or null reference: Number"),'149:19-149:24','runtime.ceylon'):Number).MAX_VALUE,'f','runtime.ceylon 149:19-149:36');},undefined,function(){return{mod:$CCMM$,$t:{t:Float},$cont:$1it,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','maxFloatValue']};});atr$(runtime$,'minFloatValue',function(){var runtime$=this;return ndnc$((typeof Number==='undefined'||Number===null?throwexc(Exception("Undefined or null reference: Number"),'154:19-154:24','runtime.ceylon'):Number).MIN_VALUE,'f','runtime.ceylon 154:19-154:36');},undefined,function(){return{mod:$CCMM$,$t:{t:Float},$cont:$1it,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime','$at','minFloatValue']};});})($1it.$$.prototype);}
return $1it;}
ex$.$init$runtime=$init$runtime;$init$runtime();var $1j3;function runtime(){if($1j3===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'runtime\' before it was set"),'109:0-157:0','runtime.ceylon');if($1j3===undefined){$1j3=INIT$;$1j3=$init$runtime()();$1j3.$crtmm$=runtime.$crtmm$;}
return $1j3;}
ex$.runtime=runtime;runtime.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$runtime()},pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','runtime']};};$prop$getRuntime=runtime;ex$.$prop$getRuntime=$prop$getRuntime;function shuffle($1j4,$vkxzzt$){return flatten($JsCallable((function($1j5){return flatten($JsCallable((function($1j6){return unflatten($JsCallable(unflatten(JsCallable(0,$1j4),{Return$unflatten:{t:Callable,a:{Return$Callable:$vkxzzt$.Result$shuffle/*ORALE!Result inv pero Return var*/,Arguments$Callable:$vkxzzt$.SecondArgs$shuffle/*ORALE!SecondArgs inv pero Arguments var*/}},Args$unflatten:$vkxzzt$.FirstArgs$shuffle})($1j6),[],{Return$Callable:$vkxzzt$.Result$shuffle/*ORALE!Result inv pero Return var*/,Arguments$Callable:$vkxzzt$.SecondArgs$shuffle/*ORALE!SecondArgs inv pero Arguments var*/}),{Return$unflatten:$vkxzzt$.Result$shuffle,Args$unflatten:$vkxzzt$.SecondArgs$shuffle})($1j5);}),[{nm:'firstArgs',mt:'prm',$t:$vkxzzt$.FirstArgs$shuffle}],{Return$Callable:$vkxzzt$.Result$shuffle/*ORALE!Result inv pero Return var*/,Arguments$Callable:mtt$([$vkxzzt$.FirstArgs$shuffle])}),{Args$flatten:$vkxzzt$.FirstArgs$shuffle,Return$flatten:$vkxzzt$.Result$shuffle});}),[{nm:'secondArgs',mt:'prm',$t:$vkxzzt$.SecondArgs$shuffle}],{Return$Callable:{t:Callable,a:{Return$Callable:$vkxzzt$.Result$shuffle/*ORALE!Result inv pero Return var*/,Arguments$Callable:$vkxzzt$.FirstArgs$shuffle/*ORALE!FirstArgs inv pero Arguments var*/}},Arguments$Callable:mtt$([$vkxzzt$.SecondArgs$shuffle])}),{Args$flatten:$vkxzzt$.SecondArgs$shuffle,Return$flatten:{t:Callable,a:{Return$Callable:$vkxzzt$.Result$shuffle/*ORALE!Result inv pero Return var*/,Arguments$Callable:$vkxzzt$.FirstArgs$shuffle/*ORALE!FirstArgs inv pero Arguments var*/}}});};shuffle.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:{t:Callable,a:{Return$Callable:'Result$shuffle',Arguments$Callable:'FirstArgs$shuffle'}},Arguments$Callable:'SecondArgs$shuffle'}},ps:[{nm:'f',mt:'prm',$t:{t:Callable,a:{Return$Callable:{t:Callable,a:{Return$Callable:'Result$shuffle',Arguments$Callable:'SecondArgs$shuffle'}},Arguments$Callable:'FirstArgs$shuffle'}}}],tp:{Result$shuffle:{},FirstArgs$shuffle:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]},SecondArgs$shuffle:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:shuffle'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),curry)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Functions"].$sa$({t:$_String}))];},d:['$','shuffle']};};
ex$.shuffle=shuffle;function smallest($1j7,$1j8,$8do5sh$){return ($1j9=($1j7.compare($1j8).equals(smaller())?$1j7:null),nn$($1j9)?$1j9:$1j8);};smallest.$crtmm$=function(){return{mod:$CCMM$,$t:'Element$smallest',ps:[{nm:'x',mt:'prm',$t:'Element$smallest'},{nm:'y',mt:'prm',$t:'Element$smallest'}],tp:{Element$smallest:{sts:[{t:Comparable,a:{Other$Comparable:'Element$smallest'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:smallest'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Comparable),$init$OpenFunction$jsint()(lmp$(ex$,'$'),largest),$init$OpenFunction$jsint()(lmp$(ex$,'$'),min)].$sa$(mut$([{t:InterfaceDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}]))),tagged(["Comparisons"].$sa$({t:$_String}))];},d:['$','smallest']};};
ex$.smallest=smallest;var $1j9;function $_sort($1ja,$eme4eo$){var $1jb=$_Array($1ja,{Element$Array:$eme4eo$.Element$sort});if($1jb.empty){return empty();}
else{$1jb.sortInPlace(byIncreasing(JsCallable(0,identity,{Value$identity:$eme4eo$.Element$sort}),{Value$byIncreasing:$eme4eo$.Element$sort,Element$byIncreasing:$eme4eo$.Element$sort}));return ArraySequence($1jb,{Element$ArraySequence:$eme4eo$.Element$sort/*ORALE!Element inv pero Element var*/});}
}
ex$.$_sort=$_sort;$_sort.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Element$sort'}},ps:[{nm:'elements',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$sort'}}}],tp:{Element$sort:{sts:[{t:Comparable,a:{Other$Comparable:'Element$sort'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:sort'),see([$init$OpenInterface$jsint()(lmp$(ex$,'$'),Comparable),$init$OpenFunction$jsint()(lmp$(ex$,'$'),$init$Iterable().$$.prototype.$_sort)].$sa$(mut$([{t:InterfaceDeclaration$meta$declaration},{t:FunctionDeclaration$meta$declaration}]))),tagged(["Streams","Comparisons"].$sa$({t:$_String}))];},d:['$','sort']};};function sum($1jc,$vluejr$){var $1jd=$1jc.iterator();var $1je;asrt$((!is$(($1je=$1jd.next()),{t:Finished})),"Assertion failed: \'!is Finished first = it.next()\' at sum.ceylon (21:11-21:42)",'21:4-21:43','sum.ceylon');
var $1jf=$1je;var $1jg;while(!is$(($1jg=$1jd.next()),{t:Finished})){($1jf=$1jf.plus($1jg));}
return $1jf;}
ex$.sum=sum;sum.$crtmm$=function(){return{mod:$CCMM$,$t:'Value$sum',ps:[{nm:'values',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Nothing},Element$Iterable:'Value$sum'}}}],tp:{Value$sum:{sts:[{t:Summable,a:{Other$Summable:'Value$sum'}}]}},pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','sum']};};function $1jh(){var system$=new $1jh.$$;system$.$prop$getCharacterEncoding={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1jh,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','system','$at','characterEncoding']};}};system$.$prop$getCharacterEncoding.get=function(){return characterEncoding};return system$;};$1jh.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},d:['$','system']};};function $init$system(){if($1jh.$$===undefined){initTypeProto($1jh,'ceylon.language::system',Basic);
(function(system$){atr$(system$,'milliseconds',function(){var system$=this;return ndnc$((typeof Date==='undefined'||Date===null?throwexc(Exception("Undefined or null reference: Date"),'67:19-67:22','system.ceylon'):Date).now(),'i','system.ceylon 67:19-67:30');},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1jh,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','system','$at','milliseconds']};});atr$(system$,'nanoseconds',function(){var system$=this;return ndnc$(($1jj=(typeof Date==='undefined'||Date===null?throwexc(Exception("Undefined or null reference: Date"),'73:19-73:22','system.ceylon'):Date).now(),$1jk=(1000000),(nn$($1jj)&&$1jj.times&&$1jj.times($1jk))||$1jj*$1jk),'i','system.ceylon 73:19-73:40');},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1jh,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','system','$at','nanoseconds']};});atr$(system$,'timezoneOffset',function(){var system$=this;return ndnc$(($1jl=($1jn=(typeof Date==='undefined'?throwexc(Exception("Undefined type Date"),'79:19-79:22','system.ceylon'):Date),$1jn.$$===undefined?new $1jn():$1jn()).getTimezoneOffset(),$1jm=(-60000),(nn$($1jl)&&$1jl.times&&$1jl.times($1jm))||$1jl*$1jm),'i','system.ceylon 79:19-79:53');},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1jh,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','system','$at','timezoneOffset']};});atr$(system$,'locale',function(){var system$=this;return ($1jo=($1jp=$_process().propertyValue("user.locale"),nn$($1jp)?$1jp:system$.$1jq($_process().environmentVariableValue("LANG"))),nn$($1jo)?$1jo:"en");var $1jo,$1jp;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1jh,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','system','$at','locale']};});system$.$1jq=function($1jr){var system$=this;var $1js;if(nn$(($1js=$1jr))&&!$1js.empty){var $1jt=$1js.firstOccurrence(Character(46,true));var $1ju=function(){var $1jv;if(nn$(($1jv=$1jt)))return $1js.measure(0,$1jv);else return $1js}();return $1ju.$_replace("_","-");}
else{return null;}
};system$.$1jq.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:$_String}]},ps:[{nm:'tag',mt:'prm',$t:{t:'u',l:[{t:Null},{t:$_String}]}}],$cont:$1jh,d:['$','system','$m','normalizeLocaleTag$wqlmg9']};};atr$(system$,'characterEncoding',function(){var system$=this;return "UTF-16"},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1jh,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','system','$at','characterEncoding']};});})($1jh.$$.prototype);}
return $1jh;}
ex$.$init$system=$init$system;$init$system();var $1jw;function system(){if($1jw===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'system\' before it was set"),'63:0-102:0','system.ceylon');if($1jw===undefined){$1jw=INIT$;$1jw=$init$system()();$1jw.$crtmm$=system.$crtmm$;}
return $1jw;}
ex$.system=system;system.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$system()},pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['$','system']};};$prop$getSystem=system;ex$.$prop$getSystem=$prop$getSystem;function times($1jx,$1jy,$r3xbh0$){return $1jx.times($1jy);};times.$crtmm$=function(){return{mod:$CCMM$,$t:'Value$times',ps:[{nm:'x',mt:'prm',$t:'Value$times'},{nm:'y',mt:'prm',$t:'Value$times'}],tp:{Value$times:{sts:[{t:Numeric,a:{Other$Numeric:'Value$times'}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:times'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),plus),$init$OpenFunction$jsint()(lmp$(ex$,'$'),product)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Numbers"].$sa$({t:$_String}))];},d:['$','times']};};
ex$.times=times;function unflatten(ff, $$$mptypes) {
if (ff.$flattened$)return ff.$flattened$;
if (ff.jsc$)ff=ff.jsc$;
var mm=getrtmm$$(ff);
if (mm && mm.ps) {
if (mm.ps.length===0)return ff;
var last=mm.ps[mm.ps.length-1];
var iadic=variadicness(last.$t);
if (is$(last,{t:Tuple}))iadic=0;
var ru;
if (iadic && mm.ps.length===1) {
//Single variadic parm, passed as sequence
ru=function rus(seq,$mptypes) {
if (seq===undefined || seq.size === 0)seq=empty();
return ff(seq,$mptypes);
}
ru.$crtmm$={$t:mm.$t,ps:[{$t:{t:last.$t.t,a:last.$t.a},nm:'unf0',mt:'prm'}]};
} else if (iadic) {
//Args and variadic, gets unfinished Tuple
var cut=mm.ps.length-1;
ru=function ruv(seq,$mptypes) {
var a=[];
for (var i=0;i<Math.min(seq.size,cut);i++) {
a.push(seq.$_get(i));
}
if (seq.size<=cut) {
//Fill positions of defaulted args
for (var i=seq.size;i<cut;i++)a.push(undefined);
a.push(empty());
} else {
var s=[];
for (var i=cut;i<seq.size;i++)s.push(seq.$_get(i));
a.push(s.$sa$(last.$t));
}
if ($mptypes)a.push($mptypes);
return ff.apply(0,a);
}
} else {
ru=function rut(tup,$mptypes) {
var a=[];
if (tup.size>mm.ps.length) {
var _t=tup;
for (var i=0;i<mm.ps.length-1;i++) {
a.push(_t.head);
_t=_t.rest;
}
a.push(_t);
} else {
for (var i=0;i<tup.size;i++) {
a.push(tup.$_get(i));
}
//Fill positions of defaulted args
for (var i=tup.size;i<mm.ps.length;i++)a.push(undefined);
if ($mptypes)a.push($mptypes);
}
return ff.apply(0,a);
}
}
if (!ru.$crtmm$) {
ru.$crtmm$={$t:mm.$t,ps:[{$t:{t:'T',l:[]},nm:'unf'}]};
for (var i=0;i<mm.ps.length;i++){
ru.$crtmm$.ps[0].$t.l.push(mm.ps[i].$t);
}
if (iadic)ru.$crtmm$.ps[0].$t.l[mm.ps.length-1].seq=iadic;
}
} else {
var ru=function runomm(seq) {
if (seq===undefined || seq.size === 0) { return ff(); }
var a = [];
for (var i = 0; i < seq.size; i++) {
a[i] = seq.$_get(i);
}
a[i]=ru.$$targs$$;
return ff.apply(ru, a);
}
}
ru.$unflattened$=ff;
ru.$$targs$$={Return$Callable:$$$mptypes.Return$unflatten,Arguments$Callable:{t:'T',l:[$$$mptypes.Args$unflatten]}};
return ru;
}
unflatten.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Callable,a:{Return$Callable:'Return$unflatten',Arguments$Callable:{t:'T',l:['Args$unflatten']}}},ps:[{nm:'flatFunction',mt:'prm',$t:{t:Callable,a:{Return$Callable:'Return$unflatten',Arguments$Callable:'Args$unflatten'}}}],tp:{Return$unflatten:{},Args$unflatten:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:1,an:function(){return[doc$($CCMM$,'$:unflatten'),see([$init$OpenFunction$jsint()(lmp$(ex$,'$'),flatten)].$sa$({t:FunctionDeclaration$meta$declaration})),tagged(["Functions"].$sa$({t:$_String})),$_native()];},d:['$','unflatten']};};
ex$.unflatten=unflatten;function unzip($1jz,$r4kkqe$){return tpl$([$1jz.$_map($JsCallable((function($1k0){return $1k0.first;}),[{nm:'tuple',mt:'prm',$t:{t:Tuple,a:{Rest$Tuple:$r4kkqe$.Tail$unzip/*ORALE!Tail inv pero Rest var*/,Element$Tuple:mut$([$r4kkqe$.Element$unzip,$r4kkqe$.Head$unzip]),First$Tuple:$r4kkqe$.Head$unzip/*ORALE!Head inv pero First var*/}}}],{Return$Callable:$r4kkqe$.Head$unzip/*ORALE!Head inv pero Return var*/,Arguments$Callable:mtt$([{t:Tuple,a:{Rest$Tuple:$r4kkqe$.Tail$unzip/*ORALE!Tail inv pero Rest var*/,Element$Tuple:mut$([$r4kkqe$.Element$unzip,$r4kkqe$.Head$unzip]),First$Tuple:$r4kkqe$.Head$unzip/*ORALE!Head inv pero First var*/}}])}),{Result$map:$r4kkqe$.Head$unzip}),$1jz.$_map($JsCallable((function($1k1){return $1k1.rest;}),[{nm:'tuple',mt:'prm',$t:{t:Tuple,a:{Rest$Tuple:$r4kkqe$.Tail$unzip/*ORALE!Tail inv pero Rest var*/,Element$Tuple:mut$([$r4kkqe$.Element$unzip,$r4kkqe$.Head$unzip]),First$Tuple:$r4kkqe$.Head$unzip/*ORALE!Head inv pero First var*/}}}],{Return$Callable:$r4kkqe$.Tail$unzip/*ORALE!Tail inv pero Return var*/,Arguments$Callable:mtt$([{t:Tuple,a:{Rest$Tuple:$r4kkqe$.Tail$unzip/*ORALE!Tail inv pero Rest var*/,Element$Tuple:mut$([$r4kkqe$.Element$unzip,$r4kkqe$.Head$unzip]),First$Tuple:$r4kkqe$.Head$unzip/*ORALE!Head inv pero First var*/}}])}),{Result$map:$r4kkqe$.Tail$unzip})]);};unzip.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{t:Iterable,a:{Absent$Iterable:'Absent$unzip',Element$Iterable:'Head$unzip'}},{t:Iterable,a:{Absent$Iterable:'Absent$unzip',Element$Iterable:'Tail$unzip'}}]},ps:[{nm:'tuples',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'Absent$unzip',Element$Iterable:{t:'T',l:['Head$unzip']}}}}],tp:{Element$unzip:{},Head$unzip:{},Tail$unzip:{sts:[{t:Sequential,a:{Element$Sequential:'Element$unzip'}}]},Absent$unzip:{sts:[{t:Null}]}},pa:1,an:function(){return[doc$($CCMM$,'$:unzip'),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','unzip']};};
ex$.unzip=unzip;function unzipPairs($1k2,$svu3k3$){return tpl$([$1k2.$_map($JsCallable((function($1k3){return $1k3.$_get(0);}),[{nm:'pair',mt:'prm',$t:{t:Tuple,a:{Rest$Tuple:mtt$([$svu3k3$.Second$unzipPairs]),Element$Tuple:mut$([$svu3k3$.First$unzipPairs,$svu3k3$.Second$unzipPairs]),First$Tuple:$svu3k3$.First$unzipPairs/*ORALE!First inv pero First var*/}}}],{Return$Callable:$svu3k3$.First$unzipPairs/*ORALE!First inv pero Return var*/,Arguments$Callable:mtt$([{t:Tuple,a:{Rest$Tuple:mtt$([$svu3k3$.Second$unzipPairs]),Element$Tuple:mut$([$svu3k3$.First$unzipPairs,$svu3k3$.Second$unzipPairs]),First$Tuple:$svu3k3$.First$unzipPairs/*ORALE!First inv pero First var*/}}])}),{Result$map:$svu3k3$.First$unzipPairs}),$1k2.$_map($JsCallable((function($1k4){return $1k4.$_get(1);}),[{nm:'pair',mt:'prm',$t:{t:Tuple,a:{Rest$Tuple:mtt$([$svu3k3$.Second$unzipPairs]),Element$Tuple:mut$([$svu3k3$.First$unzipPairs,$svu3k3$.Second$unzipPairs]),First$Tuple:$svu3k3$.First$unzipPairs/*ORALE!First inv pero First var*/}}}],{Return$Callable:$svu3k3$.Second$unzipPairs/*ORALE!Second inv pero Return var*/,Arguments$Callable:mtt$([{t:Tuple,a:{Rest$Tuple:mtt$([$svu3k3$.Second$unzipPairs]),Element$Tuple:mut$([$svu3k3$.First$unzipPairs,$svu3k3$.Second$unzipPairs]),First$Tuple:$svu3k3$.First$unzipPairs/*ORALE!First inv pero First var*/}}])}),{Result$map:$svu3k3$.Second$unzipPairs})]);};unzipPairs.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{t:Iterable,a:{Absent$Iterable:'Absent$unzipPairs',Element$Iterable:'First$unzipPairs'}},{t:Iterable,a:{Absent$Iterable:'Absent$unzipPairs',Element$Iterable:'Second$unzipPairs'}}]},ps:[{nm:'pairs',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'Absent$unzipPairs',Element$Iterable:{t:'T',l:['First$unzipPairs','Second$unzipPairs']}}}}],tp:{First$unzipPairs:{},Second$unzipPairs:{},Absent$unzipPairs:{sts:[{t:Null}]}},pa:1,an:function(){return[doc$($CCMM$,'$:unzipPairs'),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','unzipPairs']};};
ex$.unzipPairs=unzipPairs;function unzipEntries($1k5,$sb2szq$){return tpl$([$1k5.$_map($JsCallable(function($O$){return $O$.key;},[{nm:'_0',mt:'prm',$t:{t:Entry,a:{Key$Entry:$sb2szq$.Key$unzipEntries,Item$Entry:$sb2szq$.Item$unzipEntries}}}],{Return$Callable:$sb2szq$.Key$unzipEntries/*ORALE!Key inv pero Return var*/,Arguments$Callable:mtt$([{t:Entry,a:{Key$Entry:$sb2szq$.Key$unzipEntries/*ORALE!Key inv pero Key var*/,Item$Entry:$sb2szq$.Item$unzipEntries/*ORALE!Item inv pero Item var*/}}])}),{Result$map:$sb2szq$.Key$unzipEntries}),$1k5.$_map($JsCallable(function($O$){return $O$.item;},[{nm:'_0',mt:'prm',$t:{t:Entry,a:{Key$Entry:$sb2szq$.Key$unzipEntries,Item$Entry:$sb2szq$.Item$unzipEntries}}}],{Return$Callable:$sb2szq$.Item$unzipEntries/*ORALE!Item inv pero Return var*/,Arguments$Callable:mtt$([{t:Entry,a:{Key$Entry:$sb2szq$.Key$unzipEntries/*ORALE!Key inv pero Key var*/,Item$Entry:$sb2szq$.Item$unzipEntries/*ORALE!Item inv pero Item var*/}}])}),{Result$map:$sb2szq$.Item$unzipEntries})]);};unzipEntries.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'T',l:[{t:Iterable,a:{Absent$Iterable:'Absent$unzipEntries',Element$Iterable:'Key$unzipEntries'}},{t:Iterable,a:{Absent$Iterable:'Absent$unzipEntries',Element$Iterable:'Item$unzipEntries'}}]},ps:[{nm:'entries',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'Absent$unzipEntries',Element$Iterable:{t:Entry,a:{Key$Entry:'Key$unzipEntries',Item$Entry:'Item$unzipEntries'}}}}}],tp:{Key$unzipEntries:{sts:[{t:$_Object}]},Item$unzipEntries:{},Absent$unzipEntries:{sts:[{t:Null}]}},pa:1,an:function(){return[doc$($CCMM$,'$:unzipEntries'),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','unzipEntries']};};
ex$.unzipEntries=unzipEntries;function zipEntries($1k6,$1k7,$fn3w9r$){return mapPairs(function($1k8$0,$1k8$1){return Entry($1k8$0,$1k8$1,{Key$Entry:$fn3w9r$.Key$zipEntries/*ORALE!Key inv pero Key var*/,Item$Entry:$fn3w9r$.Item$zipEntries/*ORALE!Item inv pero Item var*/});},$1k6,$1k7,{Result$mapPairs:{t:Entry,a:{Key$Entry:$fn3w9r$.Key$zipEntries/*ORALE!Key inv pero Key var*/,Item$Entry:$fn3w9r$.Item$zipEntries/*ORALE!Item inv pero Item var*/}},FirstAbsent$mapPairs:$fn3w9r$.KeyAbsent$zipEntries,Second$mapPairs:$fn3w9r$.Item$zipEntries,First$mapPairs:$fn3w9r$.Key$zipEntries,SecondAbsent$mapPairs:$fn3w9r$.ItemAbsent$zipEntries});};zipEntries.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:'u',l:['KeyAbsent$zipEntries','ItemAbsent$zipEntries']},Element$Iterable:{t:Entry,a:{Key$Entry:'Key$zipEntries',Item$Entry:'Item$zipEntries'}}}},ps:[{nm:'keys',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'KeyAbsent$zipEntries',Element$Iterable:'Key$zipEntries'}}},{nm:'items',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'ItemAbsent$zipEntries',Element$Iterable:'Item$zipEntries'}}}],tp:{Key$zipEntries:{sts:[{t:$_Object}]},Item$zipEntries:{},KeyAbsent$zipEntries:{sts:[{t:Null}]},ItemAbsent$zipEntries:{sts:[{t:Null}]}},pa:1,an:function(){return[doc$($CCMM$,'$:zipEntries'),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','zipEntries']};};
ex$.zipEntries=zipEntries;function zipPairs($1k9,$1ka,$g1bdre$){return mapPairs($JsCallable((function($1kb,$1kc){return tpl$([$1kb,$1kc]);}),[{nm:'first',mt:'prm',$t:$g1bdre$.First$zipPairs},{nm:'second',mt:'prm',$t:$g1bdre$.Second$zipPairs}],{Return$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([$g1bdre$.Second$zipPairs]),Element$Tuple:mut$([$g1bdre$.First$zipPairs,$g1bdre$.Second$zipPairs]),First$Tuple:$g1bdre$.First$zipPairs/*ORALE!First inv pero First var*/}},Arguments$Callable:{t:Tuple,a:{Rest$Tuple:mtt$([$g1bdre$.Second$zipPairs]),Element$Tuple:mut$([$g1bdre$.First$zipPairs,$g1bdre$.Second$zipPairs]),First$Tuple:$g1bdre$.First$zipPairs/*ORALE!First inv pero First var*/}}}),$1k9,$1ka,{Result$mapPairs:{t:Tuple,a:{Rest$Tuple:mtt$([$g1bdre$.Second$zipPairs]),Element$Tuple:mut$([$g1bdre$.First$zipPairs,$g1bdre$.Second$zipPairs]),First$Tuple:$g1bdre$.First$zipPairs/*ORALE!First inv pero First var*/}},FirstAbsent$mapPairs:$g1bdre$.FirstAbsent$zipPairs,Second$mapPairs:$g1bdre$.Second$zipPairs,First$mapPairs:$g1bdre$.First$zipPairs,SecondAbsent$mapPairs:$g1bdre$.SecondAbsent$zipPairs});};zipPairs.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:'u',l:['FirstAbsent$zipPairs','SecondAbsent$zipPairs']},Element$Iterable:{t:'T',l:['First$zipPairs','Second$zipPairs']}}},ps:[{nm:'firstElements',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'FirstAbsent$zipPairs',Element$Iterable:'First$zipPairs'}}},{nm:'secondElements',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'SecondAbsent$zipPairs',Element$Iterable:'Second$zipPairs'}}}],tp:{First$zipPairs:{},Second$zipPairs:{},FirstAbsent$zipPairs:{sts:[{t:Null}]},SecondAbsent$zipPairs:{sts:[{t:Null}]}},pa:1,an:function(){return[doc$($CCMM$,'$:zipPairs'),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','zipPairs']};};
ex$.zipPairs=zipPairs;function zip($1kd,$1ke,$vlu9n5$){return mapPairs(function($1kf$0,$1kf$1){return Tuple($1kf$0,$1kf$1,{First$Tuple:$vlu9n5$.Head$zip/*ORALE!Head inv pero First var*/,Rest$Tuple:$vlu9n5$.Tail$zip/*ORALE!Tail inv pero Rest var*/,Element$Tuple:mut$([$vlu9n5$.Element$zip,$vlu9n5$.Head$zip])});},$1kd,$1ke,{Result$mapPairs:{t:Tuple,a:{Rest$Tuple:$vlu9n5$.Tail$zip/*ORALE!Tail inv pero Rest var*/,Element$Tuple:mut$([$vlu9n5$.Element$zip,$vlu9n5$.Head$zip]),First$Tuple:$vlu9n5$.Head$zip/*ORALE!Head inv pero First var*/}},FirstAbsent$mapPairs:$vlu9n5$.HeadAbsent$zip,Second$mapPairs:$vlu9n5$.Tail$zip,First$mapPairs:$vlu9n5$.Head$zip,SecondAbsent$mapPairs:$vlu9n5$.TailAbsent$zip});};zip.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:'u',l:['HeadAbsent$zip','TailAbsent$zip']},Element$Iterable:{t:'T',l:['Head$zip']}}},ps:[{nm:'heads',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'HeadAbsent$zip',Element$Iterable:'Head$zip'}}},{nm:'tails',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:'TailAbsent$zip',Element$Iterable:'Tail$zip'}}}],tp:{Element$zip:{},Head$zip:{},Tail$zip:{sts:[{t:Sequential,a:{Element$Sequential:'Element$zip'}}]},HeadAbsent$zip:{sts:[{t:Null}]},TailAbsent$zip:{sts:[{t:Null}]}},pa:1,an:function(){return[doc$($CCMM$,'$:zip'),tagged(["Streams"].$sa$({t:$_String}))];},d:['$','zip']};};
ex$.zip=zip;
/* Metamodel module and package objects */
var $loadedModules$={};
ex$.$loadedModules$=$loadedModules$;
function $addmod$(mod, modname) {
$loadedModules$[modname] = mod;
}
ex$.$addmod$=$addmod$;
/*Native Implementation of annotations() */
function annotations$meta(anntype, progelem, $$$mptypes) {
if (progelem.tipo)
progelem=progelem.tipo;
else if (progelem._alias)
progelem=progelem._alias;
var mm = getrtmm$$(progelem);
if (progelem.$anns)mm={an:typeof(progelem.$anns)==='function'?progelem.$anns():progelem.$anns};
else if (progelem._anns)mm={an:typeof(progelem._anns)==='function'?progelem._anns():progelem._anns};
if (!mm)return null;
//get the bitset annotations
var anns=allann$(mm);
if (anns) {
if (anntype.tipo.$$.T$all['ceylon.language::OptionalAnnotation'] !== undefined) {
//find the first one and return it
for (var i=0; i < anns.length; i++) {
if (is$(anns[i], {t:anntype.tipo}))return anns[i];
}
return null;
}
//gather all annotations of the required type and return them
var r=[];
for (var i=0; i < anns.length; i++) {
if (is$(anns[i], {t:anntype.tipo}))r.push(anns[i]);
}
var targ={t:ConstrainedAnnotation,a:{Value$ConstrainedAnnotation:$$$mptypes.Value$annotations,
Values$ConstrainedAnnotation:$$$mptypes.Values$annotations,
ProgramElement$ConstrainedAnnotation:$$$mptypes.ProgramElement$annotations}};
return r.$sa$(targ);
}
return null;
}
annotations$meta.$crtmm$=function(){return{mod:$CCMM$,$t:'Values$annotations',ps:[{nm:'annotationType',mt:'prm',$t:{t:Class$meta$model,a:{Type$Class:{t:ConstrainedAnnotation,a:{Values$ConstrainedAnnotation:'Values$annotations',ProgramElement$ConstrainedAnnotation:'ProgramElement$annotations',Value$ConstrainedAnnotation:'Value$annotations',Type$ConstrainedAnnotation:{t:Anything}}},Arguments$Class:{t:Nothing}}}},{nm:'programElement',mt:'prm',$t:'ProgramElement$annotations'}],tp:{Value$annotations:{sts:[{t:ConstrainedAnnotation,a:{Values$ConstrainedAnnotation:'Values$annotations',ProgramElement$ConstrainedAnnotation:'ProgramElement$annotations',Value$ConstrainedAnnotation:'Value$annotations',Type$ConstrainedAnnotation:{t:Anything}}}]},Values$annotations:{},ProgramElement$annotations:{dv:'in',sts:[{t:Annotated}]}},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta:annotations'),$_native()];},d:['ceylon.language.meta','annotations']};};
ex$.annotations$meta=annotations$meta;function classDeclaration$meta(o) {
if (o==null) {
return openClass$jsint(m$1.lmp$(ex$,'$'),Null);
}
var pkn=o.getT$name();
var meta=o.getT$all()[pkn];
var mm=getrtmm$$(meta);
var mod=mm.mod;
if (typeof(mod)==='function')mod=mod();
mod=modules$meta().find(mod['$mod-name'],mod['$mod-version']);
if (pkn.indexOf('::')) {
pkn = pkn.substring(0,pkn.indexOf('::'));
} else {
pkn = '';
}
var pkg=mod.findPackage(pkn);
return openClass$jsint(pkg,meta);
}
classDeclaration$meta.$crtmm$=function(){return{mod:$CCMM$,$t:{t:ClassDeclaration$meta$declaration},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta:classDeclaration'),$_native()];},d:['ceylon.language.meta','classDeclaration']};};
ex$.classDeclaration$meta=classDeclaration$meta;function $1kg$meta(){var modules$=new $1kg$meta.$$;modules$.$prop$getList={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Module$meta$declaration}}},$cont:$1kg$meta,pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta:modules:$at:list'),$_native()];},d:['ceylon.language.meta','modules','$at','list']};}};modules$.$prop$getDefault={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Module$meta$declaration}]},$cont:$1kg$meta,pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta:modules:$at:default'),$_native()];},d:['ceylon.language.meta','modules','$at','default']};}};return modules$;};$1kg$meta.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},d:['ceylon.language.meta','modules']};};function $init$modules$meta(){if($1kg$meta.$$===undefined){initTypeProto($1kg$meta,'ceylon.language.meta::modules',Basic);
(function(modules$){atr$(modules$,'list',function(){var mods=[];
for (var m in $loadedModules$) {
var slashPos = m.lastIndexOf('/');
mods.push(this.find(m.substring(0,slashPos), m.substring(slashPos+1)));
}
return mods.$sa$({t:Module$meta$declaration});
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Module$meta$declaration}}},$cont:$1kg$meta,pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta:modules:$at:list'),$_native()];},d:['ceylon.language.meta','modules','$at','list']};});modules$.find=function find(name,version){
var modname = name + "/" + (version?version:"unversioned");
var lm = $loadedModules$[modname];
if (!lm) {
var mpath;
if (name === 'default' && version=='unversioned') {
mpath = name + "/" + name;
} else {
mpath = name.replace(/\./g,'/') + '/' + version + "/" + name + "-" + version;
}
try {lm = require(mpath);}catch(e){return null;}
}
if (lm && lm.$CCMM$) {
lm = Modulo$jsint(lm);
$loadedModules$[modname] = lm;
}
return lm === undefined ? null : lm;
}
modules$.find.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Module$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'version',mt:'prm',$t:{t:$_String}}],$cont:$1kg$meta,pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta:modules:$m:find'),$_native()];},d:['ceylon.language.meta','modules','$m','find']};};atr$(modules$,'$_default',function(){if (this.defmod$===undefined) {
this.defmod$=this.find('default',"unversioned");
}
return this.defmod$;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Module$meta$declaration}]},$cont:$1kg$meta,pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta:modules:$at:default'),$_native()];},d:['ceylon.language.meta','modules','$at','default']};});})($1kg$meta.$$.prototype);}
return $1kg$meta;}
ex$.$init$modules$meta=$init$modules$meta;$init$modules$meta();var $1ki;function modules$meta(){if($1ki===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'modules\' before it was set"),'3:0-37:0','modules.ceylon');if($1ki===undefined){$1ki=INIT$;$1ki=$init$modules$meta()();$1ki.$crtmm$=modules$meta.$crtmm$;}
return $1ki;}
ex$.modules$meta=modules$meta;modules$meta.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$modules$meta()},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta:modules'),$_native()];},d:['ceylon.language.meta','modules']};};$prop$getModules$meta=modules$meta;ex$.$prop$getModules$meta=$prop$getModules$meta;function optionalAnnotation$meta($1kj,$1kk,$lg0eq8$){return annotations$meta($1kj,$1kk,{ProgramElement$annotations:$lg0eq8$.ProgramElement$optionalAnnotation,Values$annotations:mut$([{t:Null},$lg0eq8$.Value$optionalAnnotation]),Value$annotations:$lg0eq8$.Value$optionalAnnotation});}
ex$.optionalAnnotation$meta=optionalAnnotation$meta;optionalAnnotation$meta.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Value$optionalAnnotation']},ps:[{nm:'annotationType',mt:'prm',$t:{t:Class$meta$model,a:{Type$Class:{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:'Value$optionalAnnotation',ProgramElement$OptionalAnnotation:'ProgramElement$optionalAnnotation'}},Arguments$Class:{t:Nothing}}}},{nm:'programElement',mt:'prm',$t:'ProgramElement$optionalAnnotation'}],tp:{Value$optionalAnnotation:{sts:[{t:OptionalAnnotation,a:{Type$OptionalAnnotation:{t:Anything},Value$OptionalAnnotation:'Value$optionalAnnotation',ProgramElement$OptionalAnnotation:'ProgramElement$optionalAnnotation'}}]},ProgramElement$optionalAnnotation:{dv:'in',sts:[{t:Annotated}]}},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta:optionalAnnotation')];},d:['ceylon.language.meta','optionalAnnotation']};};ex$.$pkg$ans$ceylon$language$meta=function(){return[doc$($CCMM$,'ceylon.language.meta','$pkg-anns'),by(["Gavin King","Stephane Epardaud","Tom Bentley"].$sa$({t:$_String})),tagged(["Metamodel"].$sa$({t:$_String})),shared()];};function sequencedAnnotations$meta($1kl,$1km,$q7mpsu$){return annotations$meta($1kl,$1km,{ProgramElement$annotations:$q7mpsu$.ProgramElement$sequencedAnnotations,Values$annotations:{t:Sequential,a:{Element$Sequential:$q7mpsu$.Value$sequencedAnnotations/*ORALE!Value inv pero Element var*/}},Value$annotations:$q7mpsu$.Value$sequencedAnnotations});}
ex$.sequencedAnnotations$meta=sequencedAnnotations$meta;sequencedAnnotations$meta.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Value$sequencedAnnotations'}},ps:[{nm:'annotationType',mt:'prm',$t:{t:Class$meta$model,a:{Type$Class:{t:SequencedAnnotation,a:{Value$SequencedAnnotation:'Value$sequencedAnnotations',Type$SequencedAnnotation:{t:Anything},ProgramElement$SequencedAnnotation:'ProgramElement$sequencedAnnotations'}},Arguments$Class:{t:Nothing}}}},{nm:'programElement',mt:'prm',$t:'ProgramElement$sequencedAnnotations'}],tp:{Value$sequencedAnnotations:{sts:[{t:SequencedAnnotation,a:{Value$SequencedAnnotation:'Value$sequencedAnnotations',Type$SequencedAnnotation:{t:Anything},ProgramElement$SequencedAnnotation:'ProgramElement$sequencedAnnotations'}}]},ProgramElement$sequencedAnnotations:{dv:'in',sts:[{t:Annotated}]}},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta:sequencedAnnotations')];},d:['ceylon.language.meta','sequencedAnnotations']};};function type$meta(x,$$targs$$) {
if (x===null){
return AppliedClass$jsint($_null(),{Type$AppliedClass:{t:Null},Arguments$AppliedClass:{t:Empty}});
}
if ($$targs$$.Type$type.t===Nothing) {
return nothingType$meta$model();
}
if (x===true||x===false) {
var cls=x?$_true:$_false;
return AppliedClass$jsint(cls,{Type$AppliedClass:{t:cls},Arguments$AppliedClass:{t:Empty}});
}
var mm=getrtmm$$(x);
var _t=$$targs$$.Type$type.t;
if (mm===undefined) {
if (x.getT$name && x.getT$all) {
var mmm=x.getT$all()[x.getT$name()];
if (mmm){mm=mmm.$crtmm$;_t=mmm;}
if (typeof(mm)==='function') {
mm=mm(); mmm.$crtmm$=mm;
}
}
}
if (mm===undefined&&x.rt$)mm=$_Array.$crtmm$;
if (mm===undefined)throw new Error("Cannot retrieve metamodel for " + x);
var _cntr=mm.$cont && !is$(x,{t:'u',l:[{t:AppliedCallableConstructor$jsint},{t:AppliedMemberClassCallableConstructor$jsint}]}) ? get_model(getrtmm$$(mm.$cont)) : undefined;
var _classOrInterfaceMember = _cntr && (_cntr.mt==='c' || _cntr.mt==='i' || _cntr.mt==='o');
if (mm.$t) { //it's a value
if (typeof(x)==='function') { //It's a callable
if (_classOrInterfaceMember) {
return AppliedMethod$jsint(x,undefined,{Type$AppliedMethod:mm.$t,Arguments$AppliedMethod:{t:Nothing},Container$AppliedMethod:{t:mm.$cont}},x.$$targs$$);
}
return AppliedFunction$jsint(x,{Type$Function:mm.$t,Arguments$Function:{t:Nothing}},undefined,x.$$targs$$);
}
var rv=_classOrInterfaceMember?AppliedMemberClass$jsint(mm.$t.t, {Type$AppliedMemberClass:mm.$t,Arguments$AppliedMemberClass:{t:Nothing},Container$AppliedMemberClass:{t:mm.$cont}})
: AppliedClass$jsint(mm.$t.t, {Type$AppliedClass:mm.$t,Arguments$AppliedClass:{t:Nothing}});
rv.src$=x;
return rv;
}
var c;
if ($$targs$$.Type$type.t==='T') {
var rt=x.$$targs$$.l ? x.$$targs$$ : $$targs$$.Type$type;
c=AppliedClass$jsint(Tuple,{Type$AppliedClass:rt, Arguments$AppliedClass:{t:'T',l:[x.$$targs$$.First$Tuple,x.$$targs$$.Rest$Tuple]}});
} else {
var _ta={T:{t:x.getT$all()[x.getT$name()]}, A:{t:Sequential,a:{Element$Iterable:{t:Anything}}}};
var mytargs;
if (x.$$targs$$) {
//Tuple with tuple targs
if (_ta.T.t===Tuple && x.$$targs$$.t==='T')return type$meta(x,{Type$type:x.$$targs$$});
_ta.T.a=x.$$targs$$;
}
if (x.outer$) {
_ta.C={t:x.outer$.getT$all()[x.outer$.getT$name()]};
if (x.outer$.$$targs$$)_ta.C.a=x.outer$.$$targs$$;
mytargs={};
for (ta in x.$$targs$$)mytargs[ta]=x.$$targs$$[ta];
var ou=x.outer$;
while (ou) {
if (ou.$$targs$$) {
for (ta in ou.$$targs$$)mytargs[ta]=ou.$$targs$$[ta];
}
ou=ou.outer$;
}
}
if (_classOrInterfaceMember) {
c=AppliedMemberClass$jsint(_t, {Type$AppliedMemberClass:_ta.T,Arguments$AppliedMemberClass:_ta.A,Container$AppliedMemberClass:_ta.C},undefined,mytargs);
} else {
c=AppliedClass$jsint(_t, {Type$AppliedClass:_ta.T,Arguments$AppliedClass:_ta.A},undefined,x.$$targs$$);
}
}
if ($$targs$$.Type$type.a)c.$targs=$$targs$$.Type$type.a;
c.src$=x;
return c;
}
type$meta.$crtmm$=function(){return{mod:$CCMM$,$t:{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:'Type$type'}},ps:[{nm:'instance',mt:'prm',$t:'Type$type'}],tp:{Type$type:{dv:'out',sts:[{t:Anything}]}},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta:type'),see([$init$OpenFunction$jsint()(lmp$(ex$,'ceylon.language.meta'),classDeclaration$meta)].$sa$({t:FunctionDeclaration$meta$declaration})),$_native()];},d:['ceylon.language.meta','type']};};
ex$.type$meta=type$meta;function typeLiteral$meta($$targs$$,targ$2) {
if ($$targs$$ === undefined || $$targs$$.Type$typeLiteral === undefined) {
throw new Error("Missing type argument 'Type' " + /*require('util').inspect(*/$$targs$$);
} else if ($$targs$$.Type$typeLiteral.$crtmm$ == undefined) {
//closed type
var t = $$targs$$.Type$typeLiteral.t
if (t === undefined) {
t = $$targs$$.Type$typeLiteral.setter;
if (t && t.$crtmm$) {
var mm = getrtmm$$(t);
var _m=typeof(mm.mod)==='function'?mm.mod():mm.mod;
var _mod = modules$meta().find(_m['$mod-name'],_m['$mod-version']);
return OpenSetter(OpenValue$jsint(_mod.findPackage(mm.d[0]), t));
}
throw new Error("'Type' argument should be an open or closed type");
} else if (t==='u' || t==='i') {
return (t==='u'?applyUnionType:applyIntersectionType)($$targs$$.Type$typeLiteral,targ$2);
} else if (t==='T') {
//TODO arguments
var _tt=retpl$($$targs$$.Type$typeLiteral);
if (_tt.t===Empty) {
return AppliedClass$jsint(Tuple,{Type$AppliedClass:$$targs$$.Type$typeLiteral,Arguments$AppliedClass:{t:Empty}});
}
return AppliedClass$jsint(Tuple,{Type$AppliedClass:$$targs$$.Type$typeLiteral,Arguments$AppliedClass:{t:'T',l:[_tt.a.First$Tuple,_tt.a.Rest$Tuple]}});
} else if (t.$crtmm$ === undefined) {
throw new Error("JS Interop not supported / incomplete metamodel for " + /*require('util').inspect(*/t);
} else {
var mm = getrtmm$$(t);
var mdl = get_model(mm);
var mtype=mdl.mt;
if (mtype==='c' || mtype==='o') {
//TODO tupleize Arguments
var acargs={t:Sequential,a:{Element$Iterable:{t:Anything}}};
var r=mm.$cont?AppliedMemberClass$jsint(t,{Container$AppliedMemberClass:{t:mm.$cont},Type$AppliedMemberClass:$$targs$$.Type$typeLiteral,Arguments$AppliedMemberClass:acargs})
: AppliedClass$jsint(t,{Type$AppliedClass:$$targs$$.Type$typeLiteral,Arguments$AppliedClass:acargs});
if ($$targs$$.Type$typeLiteral.a)r.$targs=$$targs$$.Type$typeLiteral.a;
return r;
} else if (mtype==='i') {
var r=AppliedInterface$jsint(t,{Type$Interface:$$targs$$.Type$typeLiteral});
if ($$targs$$.Type$typeLiteral.a)r.$targs=$$targs$$.Type$typeLiteral.a;
return r;
} else if (mtype==='m') {
return AppliedFunction$jsint(t,{Type$AppliedFunction:$$targs$$.Type$typeLiteral,
Arguments$AppliedFunction:{t:Sequential,a:{Element$Iterable:{t:Anything}}}});
} else if (mtype==='a' || type==='g' || mtype==='s') {
return AppliedValue$jsint(undefined,t,{Container$Value:{t:mm.$cont},Get$Value:mm.$t,Set$Value:mdl['var']?mm.$t:{t:Nothing}});
} else {
console.log("WTF is a metatype " + mtype + " on a closed type???????");
}
console.log("typeLiteral<" + t.getT$name() + "> (closed type)");
}
} else {
//open type
var t = $$targs$$.Type$typeLiteral;
var mm = getrtmm$$(t);
var mdl = get_model(mm);
var mtype=mdl.mt;
if (mtype==='als') {
//resolve type alias
t=t.t;
mm=getrtmm$$(t);
mdl=get_model(mm);
}
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
//We need the module
var _mod = modules$meta().find(_m['$mod-name'],_m['$mod-version']);
var _pkg = _mod.findPackage(mm.d[0]);
if (mdl.mt==='c' || mdl.mt==='o') {
return openClass$jsint(_pkg, t);
} else if (mtype==='i') {
return OpenInterface$jsint(_pkg, t);
} else if (mtype==='m') {
return OpenFunction$jsint(_pkg, t);
} else if (mtype==='a' || mtype==='g') {
return OpenValue$jsint(_pkg, t);
} else if (mtype==='s') {
return OpenSetter(OpenValue$jsint(_pkg, t));
} else {
console.log("WTF is a metatype " + mtype + " on an open type???????");
}
console.log("typeLiteral<" + t.getT$name() + "> (open type)");
}
throw new Error("typeLiteral UNIMPLEMENTED for " + /*require('util').inspect(*/$$targs$$);
}
typeLiteral$meta.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:'Type$typeLiteral'}},ps:[],tp:{Type$typeLiteral:{dv:'out',sts:[{t:Anything}]}},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta:typeLiteral'),$_native()];},d:['ceylon.language.meta','typeLiteral']};};
ex$.typeLiteral$meta=typeLiteral$meta;function ClassOrInterface$meta$model($$targs$$,classOrInterface$){set_type_args(classOrInterface$,$$targs$$,ClassOrInterface$meta$model);Model$meta$model(classOrInterface$);Generic$meta$model(classOrInterface$);Type$meta$model({Target$Type:$$targs$$.Type$ClassOrInterface},classOrInterface$);}
ClassOrInterface$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Type$ClassOrInterface:{dv:'out',def:{t:Anything}}},sts:[{t:Model$meta$model},{t:Generic$meta$model},{t:Type$meta$model,a:{Target$Type:'Type$ClassOrInterface'}}],of:[{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:'Type$ClassOrInterface'}},{t:InterfaceModel$meta$model,a:{Type$InterfaceModel:'Type$ClassOrInterface'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface')];},d:['ceylon.language.meta.model','ClassOrInterface']};};
ex$.ClassOrInterface$meta$model=ClassOrInterface$meta$model;function $init$ClassOrInterface$meta$model(){if(ClassOrInterface$meta$model.$$===undefined){initTypeProtoI(ClassOrInterface$meta$model,'ceylon.language.meta.model::ClassOrInterface',$init$Model$meta$model(),$init$Generic$meta$model(),$init$Type$meta$model());
(function(classOrInterface$){classOrInterface$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ClassOrInterfaceDeclaration$meta$declaration},$cont:ClassOrInterface$meta$model,pa:7,an:function(){return[doc("The declaration for this class or interface.")];},d:['ceylon.language.meta.model','ClassOrInterface','$at','declaration']};}};classOrInterface$.$prop$getExtendedType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:{t:Anything}}}]},$cont:ClassOrInterface$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$at:extendedType')];},d:['ceylon.language.meta.model','ClassOrInterface','$at','extendedType']};}};classOrInterface$.$prop$getSatisfiedTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:InterfaceModel$meta$model,a:{Type$InterfaceModel:{t:Anything}}}}},$cont:ClassOrInterface$meta$model,pa:5,an:function(){return[doc("The list of closed types that this class or interface satisfies.")];},d:['ceylon.language.meta.model','ClassOrInterface','$at','satisfiedTypes']};}};classOrInterface$.$prop$getCaseValues={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Type$ClassOrInterface'}},$cont:ClassOrInterface$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$at:caseValues')];},d:['ceylon.language.meta.model','ClassOrInterface','$at','caseValues']};}};classOrInterface$.getClassOrInterface={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Member$meta$model,a:{Kind$Member:'Kind$getClassOrInterface',Container$Member:'Container$getClassOrInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getClassOrInterface:{def:{t:Nothing}},Kind$getClassOrInterface:{sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}],def:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getClassOrInterface'),$_throws("IncompatibleTypeException","If the specified `Kind` type argument is not compatible with the actual result."),$_throws("TypeApplicationException","If the specified closed type argument values are not compatible with the actual result\'s type parameters.")];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getClassOrInterface']};}};classOrInterface$.getDeclaredClassOrInterface={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Member$meta$model,a:{Kind$Member:'Kind$getDeclaredClassOrInterface',Container$Member:'Container$getDeclaredClassOrInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getDeclaredClassOrInterface:{def:{t:Nothing}},Kind$getDeclaredClassOrInterface:{sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}],def:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getDeclaredClassOrInterface'),$_throws("IncompatibleTypeException","If the specified `Container` or `Kind` type arguments are not compatible with the actual result."),$_throws("TypeApplicationException","If the specified closed type argument values are not compatible with the actual result\'s type parameters.")];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredClassOrInterface']};}};classOrInterface$.getClass={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getClass',Container$MemberClass:'Container$getClass',Type$MemberClass:'Type$getClass'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getClass:{def:{t:Nothing}},Type$getClass:{def:{t:Anything}},Arguments$getClass:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getClass'),$_throws("IncompatibleTypeException","If the specified `Type` or `Arguments` type arguments are not compatible with the actual result, \nor if the corresponding member is not a `MemberClass`."),$_throws("TypeApplicationException","If the specified closed type argument values are not compatible with the actual result\'s type parameters.")];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getClass']};}};classOrInterface$.getDeclaredClass={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getDeclaredClass',Container$MemberClass:'Container$getDeclaredClass',Type$MemberClass:'Type$getDeclaredClass'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getDeclaredClass:{def:{t:Nothing}},Type$getDeclaredClass:{def:{t:Anything}},Arguments$getDeclaredClass:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getDeclaredClass'),$_throws("IncompatibleTypeException","If the specified `Container`, `Type` or `Arguments` type arguments are not compatible with the actual result, \nor if the corresponding member is not a `MemberClass`."),$_throws("TypeApplicationException","If the specified closed type argument values are not compatible with the actual result\'s type parameters.")];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredClass']};}};classOrInterface$.getInterface={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getInterface',Type$MemberInterface:'Type$getInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getInterface:{def:{t:Nothing}},Type$getInterface:{def:{t:Anything}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getInterface'),$_throws("IncompatibleTypeException","If the specified `Type` type argument is not compatible with the actual result, \nor if the corresponding member is not a `MemberInterface`."),$_throws("TypeApplicationException","If the specified closed type argument values are not compatible with the actual result\'s type parameters.")];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getInterface']};}};classOrInterface$.getDeclaredInterface={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getDeclaredInterface',Type$MemberInterface:'Type$getDeclaredInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getDeclaredInterface:{def:{t:Nothing}},Type$getDeclaredInterface:{def:{t:Anything}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getDeclaredInterface'),$_throws("IncompatibleTypeException","If the specified `Container` or `Type` type arguments are not compatible with the actual result, \nor if the corresponding member is not a `MemberInterface`."),$_throws("TypeApplicationException","If the specified closed type argument values are not compatible with the actual result\'s type parameters.")];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredInterface']};}};classOrInterface$.getMethod={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Method$meta$model,a:{Container$Method:'Container$getMethod',Arguments$Method:'Arguments$getMethod',Type$Method:'Type$getMethod'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getMethod:{def:{t:Nothing}},Type$getMethod:{def:{t:Anything}},Arguments$getMethod:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getMethod'),$_throws("IncompatibleTypeException","If the specified `Type` or `Arguments` type arguments are not compatible with the actual result."),$_throws("TypeApplicationException","If the specified closed type argument values are not compatible with the actual result\'s type parameters.")];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getMethod']};}};classOrInterface$.getDeclaredMethod={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Method$meta$model,a:{Container$Method:'Container$getDeclaredMethod',Arguments$Method:'Arguments$getDeclaredMethod',Type$Method:'Type$getDeclaredMethod'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getDeclaredMethod:{def:{t:Nothing}},Type$getDeclaredMethod:{def:{t:Anything}},Arguments$getDeclaredMethod:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getDeclaredMethod'),$_throws("IncompatibleTypeException","If the specified `Container`, `Type` or `Arguments` type arguments are not compatible with the actual result."),$_throws("TypeApplicationException","If the specified closed type argument values are not compatible with the actual result\'s type parameters.")];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredMethod']};}};classOrInterface$.getAttribute={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Attribute$meta$model,a:{Set$Attribute:'Set$getAttribute',Container$Attribute:'Container$getAttribute',Get$Attribute:'Get$getAttribute'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:ClassOrInterface$meta$model,tp:{Container$getAttribute:{def:{t:Nothing}},Get$getAttribute:{def:{t:Anything}},Set$getAttribute:{def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getAttribute'),$_throws("IncompatibleTypeException","If the specified `Get` or `Set` type arguments are not compatible with the actual result.")];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getAttribute']};}};classOrInterface$.getDeclaredAttribute={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Attribute$meta$model,a:{Set$Attribute:'Set$getDeclaredAttribute',Container$Attribute:'Container$getDeclaredAttribute',Get$Attribute:'Get$getDeclaredAttribute'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:ClassOrInterface$meta$model,tp:{Container$getDeclaredAttribute:{def:{t:Nothing}},Get$getDeclaredAttribute:{def:{t:Anything}},Set$getDeclaredAttribute:{def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getDeclaredAttribute'),$_throws("IncompatibleTypeException","If the specified `Container`, `Get` or `Set` type arguments are not compatible with the actual result.")];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredAttribute']};}};classOrInterface$.getDeclaredAttributes={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Attribute$meta$model,a:{Set$Attribute:'Set$getDeclaredAttributes',Container$Attribute:'Container$getDeclaredAttributes',Get$Attribute:'Get$getDeclaredAttributes'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getDeclaredAttributes:{def:{t:Nothing}},Get$getDeclaredAttributes:{def:{t:Anything}},Set$getDeclaredAttributes:{def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getDeclaredAttributes')];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredAttributes']};}};classOrInterface$.getAttributes={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Attribute$meta$model,a:{Set$Attribute:'Set$getAttributes',Container$Attribute:'Container$getAttributes',Get$Attribute:'Get$getAttributes'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getAttributes:{def:{t:Nothing}},Get$getAttributes:{def:{t:Anything}},Set$getAttributes:{def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getAttributes')];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getAttributes']};}};classOrInterface$.getDeclaredMethods={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Method$meta$model,a:{Container$Method:'Container$getDeclaredMethods',Arguments$Method:'Arguments$getDeclaredMethods',Type$Method:'Type$getDeclaredMethods'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getDeclaredMethods:{def:{t:Nothing}},Type$getDeclaredMethods:{def:{t:Anything}},Arguments$getDeclaredMethods:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getDeclaredMethods')];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredMethods']};}};classOrInterface$.getMethods={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Method$meta$model,a:{Container$Method:'Container$getMethods',Arguments$Method:'Arguments$getMethods',Type$Method:'Type$getMethods'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getMethods:{def:{t:Nothing}},Type$getMethods:{def:{t:Anything}},Arguments$getMethods:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getMethods')];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getMethods']};}};classOrInterface$.getDeclaredClasses={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getDeclaredClasses',Container$MemberClass:'Container$getDeclaredClasses',Type$MemberClass:'Type$getDeclaredClasses'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getDeclaredClasses:{def:{t:Nothing}},Type$getDeclaredClasses:{def:{t:Anything}},Arguments$getDeclaredClasses:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getDeclaredClasses')];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredClasses']};}};classOrInterface$.getClasses={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getClasses',Container$MemberClass:'Container$getClasses',Type$MemberClass:'Type$getClasses'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getClasses:{def:{t:Nothing}},Type$getClasses:{def:{t:Anything}},Arguments$getClasses:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getClasses')];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getClasses']};}};classOrInterface$.getDeclaredInterfaces={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getDeclaredInterfaces',Type$MemberInterface:'Type$getDeclaredInterfaces'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getDeclaredInterfaces:{def:{t:Nothing}},Type$getDeclaredInterfaces:{def:{t:Anything}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getDeclaredInterfaces')];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getDeclaredInterfaces']};}};classOrInterface$.getInterfaces={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getInterfaces',Type$MemberInterface:'Type$getInterfaces'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:ClassOrInterface$meta$model,tp:{Container$getInterfaces:{def:{t:Nothing}},Type$getInterfaces:{def:{t:Anything}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassOrInterface:$m:getInterfaces')];},d:['ceylon.language.meta.model','ClassOrInterface','$m','getInterfaces']};}};})(ClassOrInterface$meta$model.$$.prototype);}
return ClassOrInterface$meta$model;}
ex$.$init$ClassOrInterface$meta$model=$init$ClassOrInterface$meta$model;$init$ClassOrInterface$meta$model();ClassOrInterface$meta$model.$$.prototype.typeOf=function typeOf(instance$8){
var _t={t:this.tipo};
if (this.$targs)_t.a=this.$targs;
return is$(instance$8,_t);
};
ClassOrInterface$meta$model.$$.prototype.typeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'instance',mt:'prm',$t:{t:Anything},an:function(){return[];}}],$cont:ClassOrInterface$meta$model,an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','Type','$m','typeOf']};};
ClassOrInterface$meta$model.$$.prototype.supertypeOf=function supertypeOf(t){
if (is$(t,{t:AppliedUnionType$jsint}) || is$(t,{t:AppliedIntersectionType$jsint})) {
return extendsType(t.tipo, this.$$targs$$.Type$ClassOrInterface);
}
return extendsType(t.$$targs$$.Target$Type,this.$$targs$$.Type$ClassOrInterface);
};
ClassOrInterface$meta$model.$$.prototype.supertypeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Type:{t:Anything}}},an:function(){return[];}}],$cont:ClassOrInterface$meta$model,an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','Type','$m','supertypeOf']};};
ClassOrInterface$meta$model.$$.prototype.exactly=function exactly(type$10){
return type$10.tipo && this.tipo === type$10.tipo;
};
ClassOrInterface$meta$model.$$.prototype.exactly.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Type:{t:Anything}}},an:function(){return[];}}],$cont:ClassOrInterface$meta$model,an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','Type','$m','exactly']};};
function Member$meta$model($$targs$$,member$){set_type_args(member$,$$targs$$,Member$meta$model);Qualified$meta$model({Container$Qualified:$$targs$$.Container$Member,Kind$Qualified:$$targs$$.Kind$Member},member$);}
Member$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Container$Member:{dv:'in',def:{t:Nothing}},Kind$Member:{dv:'out',sts:[{t:Model$meta$model}],def:{t:Model$meta$model}}},sts:[{t:Qualified$meta$model,a:{Container$Qualified:'Container$Member',Kind$Qualified:'Kind$Member'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Member')];},d:['ceylon.language.meta.model','Member']};};
ex$.Member$meta$model=Member$meta$model;function $init$Member$meta$model(){if(Member$meta$model.$$===undefined){initTypeProtoI(Member$meta$model,'ceylon.language.meta.model::Member',$init$Qualified$meta$model());
(function(member$){member$.$prop$getDeclaringType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}},$cont:Member$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Member:$at:declaringType')];},d:['ceylon.language.meta.model','Member','$at','declaringType']};}};})(Member$meta$model.$$.prototype);}
return Member$meta$model;}
ex$.$init$Member$meta$model=$init$Member$meta$model;$init$Member$meta$model();atr$(Member$meta$model.$$.prototype,'container',function(){
return this.declaringClassOrInterface;
},undefined,function(){return{mod:$CCMM$,$t:{ t:'u', l:[{t:Null},{t:Type$meta$model,a:{Type:{t:Anything}}}]},$cont:Member$meta$model,an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','Member','$at','container']};});
function Applicable$meta$model($$targs$$,applicable$){set_type_args(applicable$,$$targs$$,Applicable$meta$model);Callable({Return$Callable:$$targs$$.Type$Applicable,Arguments$Callable:$$targs$$.Arguments$Applicable},applicable$);}
Applicable$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Type$Applicable:{dv:'out',def:{t:Anything}},Arguments$Applicable:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:Callable,a:{Return$Callable:'Type$Applicable',Arguments$Callable:'Arguments$Applicable'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Applicable')];},d:['ceylon.language.meta.model','Applicable']};};
ex$.Applicable$meta$model=Applicable$meta$model;function $init$Applicable$meta$model(){if(Applicable$meta$model.$$===undefined){initTypeProtoI(Applicable$meta$model,'ceylon.language.meta.model::Applicable',$init$Callable());
(function(applicable$){applicable$.$_apply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Type$Applicable',ps:[{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:Applicable$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Applicable:$m:apply'),$_throws("IncompatibleTypeException","If any argument is not assignable to this applicable\'s corresponding parameter"),$_throws("InvocationException","If there are not enough or too many provided arguments")];},d:['ceylon.language.meta.model','Applicable','$m','apply']};}};applicable$.namedApply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Type$Applicable',ps:[{nm:'arguments',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:$_String},Item$Entry:{t:Anything}}}}}}],$cont:Applicable$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Applicable:$m:namedApply'),$_throws("IncompatibleTypeException","If any argument is not assignable to this applicable\'s corresponding parameter"),$_throws("InvocationException","If there are not enough or too many provided arguments, \nor if the target does not support named invocation")];},d:['ceylon.language.meta.model','Applicable','$m','namedApply']};}};})(Applicable$meta$model.$$.prototype);}
return Applicable$meta$model;}
ex$.$init$Applicable$meta$model=$init$Applicable$meta$model;$init$Applicable$meta$model();function Attribute$meta$model($$targs$$,attribute$){set_type_args(attribute$,$$targs$$,Attribute$meta$model);ValueModel$meta$model({Get$ValueModel:$$targs$$.Get$Attribute,Set$ValueModel:$$targs$$.Set$Attribute},attribute$);Member$meta$model({Kind$Member:{t:Value$meta$model,a:{Get$Value:$$targs$$.Get$Attribute,Set$Value:$$targs$$.Set$Attribute}},Container$Member:$$targs$$.Container$Attribute},attribute$);}
Attribute$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Container$Attribute:{dv:'in',def:{t:Nothing}},Get$Attribute:{dv:'out',def:{t:Anything}},Set$Attribute:{dv:'in',def:{t:Nothing}}},sts:[{t:ValueModel$meta$model,a:{Get$ValueModel:'Get$Attribute',Set$ValueModel:'Set$Attribute'}},{t:Member$meta$model,a:{Kind$Member:{t:Value$meta$model,a:{Get$Value:'Get$Attribute',Set$Value:'Set$Attribute'}},Container$Member:'Container$Attribute'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Attribute')];},d:['ceylon.language.meta.model','Attribute']};};
ex$.Attribute$meta$model=Attribute$meta$model;function $init$Attribute$meta$model(){if(Attribute$meta$model.$$===undefined){initTypeProtoI(Attribute$meta$model,'ceylon.language.meta.model::Attribute',$init$ValueModel$meta$model(),$init$Member$meta$model());
(function(attribute$){attribute$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ValueDeclaration$meta$declaration},$cont:Attribute$meta$model,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Attribute:$at:declaration')];},d:['ceylon.language.meta.model','Attribute','$at','declaration']};}};attribute$.$_bind={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Value$meta$model,a:{Get$Value:'Get$Attribute',Set$Value:'Set$Attribute'}},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:Attribute$meta$model,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Attribute:$m:bind'),$_throws("StorageException","If this attribute is not stored at runtime, for example if it is neither shared nor captured.")];},d:['ceylon.language.meta.model','Attribute','$m','bind']};}};})(Attribute$meta$model.$$.prototype);}
return Attribute$meta$model;}
ex$.$init$Attribute$meta$model=$init$Attribute$meta$model;$init$Attribute$meta$model();function CallableConstructor$meta$model($$targs$$,callableConstructor$){set_type_args(callableConstructor$,$$targs$$,CallableConstructor$meta$model);FunctionModel$meta$model({Arguments$FunctionModel:$$targs$$.Arguments$CallableConstructor,Type$FunctionModel:$$targs$$.Type$CallableConstructor},callableConstructor$);Applicable$meta$model({Arguments$Applicable:$$targs$$.Arguments$CallableConstructor,Type$Applicable:$$targs$$.Type$CallableConstructor},callableConstructor$);}
CallableConstructor$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Type$CallableConstructor:{dv:'out',def:{t:$_Object}},Arguments$CallableConstructor:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:'Arguments$CallableConstructor',Type$FunctionModel:'Type$CallableConstructor'}},{t:Applicable$meta$model,a:{Arguments$Applicable:'Arguments$CallableConstructor',Type$Applicable:'Type$CallableConstructor'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:CallableConstructor')];},d:['ceylon.language.meta.model','CallableConstructor']};};
ex$.CallableConstructor$meta$model=CallableConstructor$meta$model;function $init$CallableConstructor$meta$model(){if(CallableConstructor$meta$model.$$===undefined){initTypeProtoI(CallableConstructor$meta$model,'ceylon.language.meta.model::CallableConstructor',$init$FunctionModel$meta$model(),$init$Applicable$meta$model());
(function(callableConstructor$){callableConstructor$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:CallableConstructorDeclaration$meta$declaration},$cont:CallableConstructor$meta$model,pa:7,an:function(){return[doc("This constructor\'s declaration.")];},d:['ceylon.language.meta.model','CallableConstructor','$at','declaration']};}};callableConstructor$.$prop$getType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:'Type$CallableConstructor'}},$cont:CallableConstructor$meta$model,pa:7,d:['ceylon.language.meta.model','CallableConstructor','$at','type']};}};callableConstructor$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:'Type$CallableConstructor'}}]},$cont:CallableConstructor$meta$model,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:CallableConstructor:$at:container')];},d:['ceylon.language.meta.model','CallableConstructor','$at','container']};}};})(CallableConstructor$meta$model.$$.prototype);}
return CallableConstructor$meta$model;}
ex$.$init$CallableConstructor$meta$model=$init$CallableConstructor$meta$model;$init$CallableConstructor$meta$model();function Class$meta$model($$targs$$,class$){set_type_args(class$,$$targs$$,Class$meta$model);ClassModel$meta$model({Arguments$ClassModel:$$targs$$.Arguments$Class,Type$ClassModel:$$targs$$.Type$Class},class$);Applicable$meta$model({Arguments$Applicable:$$targs$$.Arguments$Class,Type$Applicable:$$targs$$.Type$Class},class$);}
Class$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Type$Class:{dv:'out',def:{t:Anything}},Arguments$Class:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:ClassModel$meta$model,a:{Arguments$ClassModel:'Arguments$Class',Type$ClassModel:'Type$Class'}},{t:Applicable$meta$model,a:{Arguments$Applicable:'Arguments$Class',Type$Applicable:'Type$Class'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Class')];},d:['ceylon.language.meta.model','Class']};};
ex$.Class$meta$model=Class$meta$model;function $init$Class$meta$model(){if(Class$meta$model.$$===undefined){initTypeProtoI(Class$meta$model,'ceylon.language.meta.model::Class',$init$ClassModel$meta$model(),$init$Applicable$meta$model());
(function(class$){class$.$prop$getDefaultConstructor={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$Class',Type$CallableConstructor:'Type$Class'}}]},$cont:Class$meta$model,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Class:$at:defaultConstructor')];},d:['ceylon.language.meta.model','Class','$at','defaultConstructor']};}};class$.getConstructor={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$getConstructor',Type$CallableConstructor:'Type$Class'}},{t:'u',l:[{t:Null},{t:ValueConstructor$meta$model,a:{Type$ValueConstructor:'Type$Class'}}]}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Class$meta$model,tp:{Arguments$getConstructor:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Class:$m:getConstructor')];},d:['ceylon.language.meta.model','Class','$m','getConstructor']};}};})(Class$meta$model.$$.prototype);}
return Class$meta$model;}
ex$.$init$Class$meta$model=$init$Class$meta$model;$init$Class$meta$model();function ClassModel$meta$model($$targs$$,classModel$){set_type_args(classModel$,$$targs$$,ClassModel$meta$model);ClassOrInterface$meta$model({Type$ClassOrInterface:$$targs$$.Type$ClassModel},classModel$);}
ClassModel$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Type$ClassModel:{dv:'out',def:{t:Anything}},Arguments$ClassModel:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$ClassModel'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassModel')];},d:['ceylon.language.meta.model','ClassModel']};};
ex$.ClassModel$meta$model=ClassModel$meta$model;function $init$ClassModel$meta$model(){if(ClassModel$meta$model.$$===undefined){initTypeProtoI(ClassModel$meta$model,'ceylon.language.meta.model::ClassModel',$init$ClassOrInterface$meta$model());
(function(classModel$){classModel$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ClassDeclaration$meta$declaration},$cont:ClassModel$meta$model,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassModel:$at:declaration')];},d:['ceylon.language.meta.model','ClassModel','$at','declaration']};}};classModel$.$prop$getDefaultConstructor={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:'Arguments$ClassModel',Type$FunctionModel:'Type$ClassModel'}}]},$cont:ClassModel$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassModel:$at:defaultConstructor')];},d:['ceylon.language.meta.model','ClassModel','$at','defaultConstructor']};}};classModel$.getConstructor={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:'Arguments$getConstructor',Type$FunctionModel:'Type$ClassModel'}},{t:'u',l:[{t:Null},{t:ValueModel$meta$model,a:{Get$ValueModel:'Type$ClassModel',Set$ValueModel:{t:Nothing}}}]}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:ClassModel$meta$model,tp:{Arguments$getConstructor:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassModel:$m:getConstructor'),$_throws("IncompatibleTypeException","If the specified type arguments are not \ncompatible with the actual result.")];},d:['ceylon.language.meta.model','ClassModel','$m','getConstructor']};}};classModel$.getDeclaredConstructor={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:'Arguments$getDeclaredConstructor',Type$FunctionModel:'Type$ClassModel'}},{t:'u',l:[{t:Null},{t:ValueModel$meta$model,a:{Get$ValueModel:'Type$ClassModel',Set$ValueModel:{t:Nothing}}}]}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:ClassModel$meta$model,tp:{Arguments$getDeclaredConstructor:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassModel:$m:getDeclaredConstructor'),$_throws("IncompatibleTypeException","If the specified type arguments are not \ncompatible with the actual result.")];},d:['ceylon.language.meta.model','ClassModel','$m','getDeclaredConstructor']};}};classModel$.getDeclaredCallableConstructors={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:'Arguments$getDeclaredCallableConstructors',Type$FunctionModel:'Type$ClassModel'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:ClassModel$meta$model,tp:{Arguments$getDeclaredCallableConstructors:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassModel:$m:getDeclaredCallableConstructors')];},d:['ceylon.language.meta.model','ClassModel','$m','getDeclaredCallableConstructors']};}};classModel$.getCallableConstructors={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:'Arguments$getCallableConstructors',Type$FunctionModel:'Type$ClassModel'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:ClassModel$meta$model,tp:{Arguments$getCallableConstructors:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassModel:$m:getCallableConstructors')];},d:['ceylon.language.meta.model','ClassModel','$m','getCallableConstructors']};}};classModel$.getDeclaredValueConstructors={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:ValueModel$meta$model,a:{Get$ValueModel:'Type$ClassModel',Set$ValueModel:{t:Nothing}}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:ClassModel$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassModel:$m:getDeclaredValueConstructors')];},d:['ceylon.language.meta.model','ClassModel','$m','getDeclaredValueConstructors']};}};classModel$.getValueConstructors={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:ValueModel$meta$model,a:{Get$ValueModel:'Type$ClassModel',Set$ValueModel:{t:Nothing}}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:ClassModel$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ClassModel:$m:getValueConstructors')];},d:['ceylon.language.meta.model','ClassModel','$m','getValueConstructors']};}};})(ClassModel$meta$model.$$.prototype);}
return ClassModel$meta$model;}
ex$.$init$ClassModel$meta$model=$init$ClassModel$meta$model;$init$ClassModel$meta$model();function Declared$meta$model(declared$){}
Declared$meta$model.$crtmm$=function(){return{mod:$CCMM$,pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Declared')];},d:['ceylon.language.meta.model','Declared']};};
ex$.Declared$meta$model=Declared$meta$model;function $init$Declared$meta$model(){if(Declared$meta$model.$$===undefined){initTypeProtoI(Declared$meta$model,'ceylon.language.meta.model::Declared');
(function(declared$){declared$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Declaration$meta$declaration},$cont:Declared$meta$model,pa:5,an:function(){return[doc("The declaration model of this model.")];},d:['ceylon.language.meta.model','Declared','$at','declaration']};}};declared$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Type$meta$model,a:{Target$Type:{t:Anything}}},{t:'u',l:[{t:Null},{t:Package$meta$declaration}]}]},$cont:Declared$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Declared:$at:container')];},d:['ceylon.language.meta.model','Declared','$at','container']};}};})(Declared$meta$model.$$.prototype);}
return Declared$meta$model;}
ex$.$init$Declared$meta$model=$init$Declared$meta$model;$init$Declared$meta$model();function $_Function$meta$model($$targs$$,function$){set_type_args(function$,$$targs$$,$_Function$meta$model);FunctionModel$meta$model({Arguments$FunctionModel:$$targs$$.Arguments$Function,Type$FunctionModel:$$targs$$.Type$Function},function$);Applicable$meta$model({Arguments$Applicable:$$targs$$.Arguments$Function,Type$Applicable:$$targs$$.Type$Function},function$);}
$_Function$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Type$Function:{dv:'out',def:{t:Anything}},Arguments$Function:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:'Arguments$Function',Type$FunctionModel:'Type$Function'}},{t:Applicable$meta$model,a:{Arguments$Applicable:'Arguments$Function',Type$Applicable:'Type$Function'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Function')];},d:['ceylon.language.meta.model','Function']};};
ex$.$_Function$meta$model=$_Function$meta$model;function $init$$_Function$meta$model(){if($_Function$meta$model.$$===undefined){initTypeProtoI($_Function$meta$model,'ceylon.language.meta.model::Function',$init$FunctionModel$meta$model(),$init$Applicable$meta$model());
(function(function$){function$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:FunctionDeclaration$meta$declaration},$cont:$_Function$meta$model,pa:7,an:function(){return[doc("This function\'s declaration.")];},d:['ceylon.language.meta.model','Function','$at','declaration']};}};})($_Function$meta$model.$$.prototype);}
return $_Function$meta$model;}
ex$.$init$$_Function$meta$model=$init$$_Function$meta$model;$init$$_Function$meta$model();function FunctionModel$meta$model($$targs$$,functionModel$){set_type_args(functionModel$,$$targs$$,FunctionModel$meta$model);Model$meta$model(functionModel$);Generic$meta$model(functionModel$);Functional$meta$model(functionModel$);}
FunctionModel$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Type$FunctionModel:{dv:'out',def:{t:Anything}},Arguments$FunctionModel:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:Model$meta$model},{t:Generic$meta$model},{t:Functional$meta$model}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:FunctionModel')];},d:['ceylon.language.meta.model','FunctionModel']};};
ex$.FunctionModel$meta$model=FunctionModel$meta$model;function $init$FunctionModel$meta$model(){if(FunctionModel$meta$model.$$===undefined){initTypeProtoI(FunctionModel$meta$model,'ceylon.language.meta.model::FunctionModel',$init$Model$meta$model(),$init$Generic$meta$model(),$init$Functional$meta$model());
(function(functionModel$){functionModel$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'i',l:[{t:NestableDeclaration$meta$declaration},{t:FunctionalDeclaration$meta$declaration}]},$cont:FunctionModel$meta$model,pa:7,an:function(){return[doc("This function\'s declaration.")];},d:['ceylon.language.meta.model','FunctionModel','$at','declaration']};}};functionModel$.$prop$getType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:'Type$FunctionModel'}},$cont:FunctionModel$meta$model,pa:5,an:function(){return[doc("This function\'s return closed type.")];},d:['ceylon.language.meta.model','FunctionModel','$at','type']};}};})(FunctionModel$meta$model.$$.prototype);}
return FunctionModel$meta$model;}
ex$.$init$FunctionModel$meta$model=$init$FunctionModel$meta$model;$init$FunctionModel$meta$model();function Functional$meta$model(functional$){}
Functional$meta$model.$crtmm$=function(){return{mod:$CCMM$,pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Functional')];},d:['ceylon.language.meta.model','Functional']};};
ex$.Functional$meta$model=Functional$meta$model;function $init$Functional$meta$model(){if(Functional$meta$model.$$===undefined){initTypeProtoI(Functional$meta$model,'ceylon.language.meta.model::Functional');
(function(functional$){functional$.$prop$getParameterTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:Functional$meta$model,pa:5,an:function(){return[doc("The parameter types")];},d:['ceylon.language.meta.model','Functional','$at','parameterTypes']};}};})(Functional$meta$model.$$.prototype);}
return Functional$meta$model;}
ex$.$init$Functional$meta$model=$init$Functional$meta$model;$init$Functional$meta$model();function Generic$meta$model(generic$){}
Generic$meta$model.$crtmm$=function(){return{mod:$CCMM$,pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Generic')];},d:['ceylon.language.meta.model','Generic']};};
ex$.Generic$meta$model=Generic$meta$model;function $init$Generic$meta$model(){if(Generic$meta$model.$$===undefined){initTypeProtoI(Generic$meta$model,'ceylon.language.meta.model::Generic');
(function(generic$){generic$.$prop$getTypeArguments={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:Generic$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Generic:$at:typeArguments')];},d:['ceylon.language.meta.model','Generic','$at','typeArguments']};}};generic$.$prop$getTypeArgumentList={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:Generic$meta$model,pa:5,an:function(){return[doc("The list of type arguments for this generic model.")];},d:['ceylon.language.meta.model','Generic','$at','typeArgumentList']};}};generic$.$prop$getTypeArgumentWithVariances={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:TypeArgument$meta$model()}},$cont:Generic$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Generic:$at:typeArgumentWithVariances')];},d:['ceylon.language.meta.model','Generic','$at','typeArgumentWithVariances']};}};generic$.$prop$getTypeArgumentWithVarianceList={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:TypeArgument$meta$model()}},$cont:Generic$meta$model,pa:5,an:function(){return[doc("The list of type arguments for this generic model.")];},d:['ceylon.language.meta.model','Generic','$at','typeArgumentWithVarianceList']};}};})(Generic$meta$model.$$.prototype);}
return Generic$meta$model;}
ex$.$init$Generic$meta$model=$init$Generic$meta$model;$init$Generic$meta$model();function Gettable$meta$model($$targs$$,gettable$){set_type_args(gettable$,$$targs$$,Gettable$meta$model);}
Gettable$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Get$Gettable:{dv:'out',def:{t:Anything}},Set$Gettable:{dv:'in',def:{t:Nothing}}},pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Gettable')];},d:['ceylon.language.meta.model','Gettable']};};
ex$.Gettable$meta$model=Gettable$meta$model;function $init$Gettable$meta$model(){if(Gettable$meta$model.$$===undefined){initTypeProtoI(Gettable$meta$model,'ceylon.language.meta.model::Gettable');
(function(gettable$){gettable$.$_get={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Get$Gettable',ps:[],$cont:Gettable$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Gettable:$m:get'),$_throws("StorageException","If this attribute is not stored at runtime, for example if it is neither shared nor captured.")];},d:['ceylon.language.meta.model','Gettable','$m','get']};}};gettable$.set={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'newValue',mt:'prm',$t:'Set$Gettable'}],$cont:Gettable$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Gettable:$m:set'),$_throws("StorageException","If this attribute is not stored at runtime, for example if it is neither shared nor captured.")];},d:['ceylon.language.meta.model','Gettable','$m','set']};}};gettable$.setIfAssignable={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'newValue',mt:'prm',$t:{t:Anything}}],$cont:Gettable$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Gettable:$m:setIfAssignable'),$_throws("IncompatibleTypeException","If the specified new value is not of a subtype of this variable\'s type"),$_throws("MutationException","If this value is not variable"),$_throws("StorageException","If this attribute is not stored at runtime, for example if it is neither shared nor captured.")];},d:['ceylon.language.meta.model','Gettable','$m','setIfAssignable']};}};})(Gettable$meta$model.$$.prototype);}
return Gettable$meta$model;}
ex$.$init$Gettable$meta$model=$init$Gettable$meta$model;$init$Gettable$meta$model();function IncompatibleTypeException$meta$model($1kw,incompatibleTypeException$){$init$IncompatibleTypeException$meta$model();
if(incompatibleTypeException$===undefined)incompatibleTypeException$=new IncompatibleTypeException$meta$model.$$;
incompatibleTypeException$.$1kw_=$1kw;Exception($1kw,undefined,incompatibleTypeException$);return incompatibleTypeException$;}
IncompatibleTypeException$meta$model.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Exception},ps:[{nm:'message',mt:'prm',$t:{t:$_String}}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:IncompatibleTypeException')];},d:['ceylon.language.meta.model','IncompatibleTypeException']};};
ex$.IncompatibleTypeException$meta$model=IncompatibleTypeException$meta$model;function $init$IncompatibleTypeException$meta$model(){if(IncompatibleTypeException$meta$model.$$===undefined){initTypeProto(IncompatibleTypeException$meta$model,'ceylon.language.meta.model::IncompatibleTypeException',$init$Exception());
(function(incompatibleTypeException$){atr$(incompatibleTypeException$,'$1kw',function(){return this.$1kw_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:IncompatibleTypeException$meta$model,d:['ceylon.language.meta.model','IncompatibleTypeException','$at','message$kubtzh']};});})(IncompatibleTypeException$meta$model.$$.prototype);}
return IncompatibleTypeException$meta$model;}
ex$.$init$IncompatibleTypeException$meta$model=$init$IncompatibleTypeException$meta$model;$init$IncompatibleTypeException$meta$model();function Interface$meta$model($$targs$$,interface$){set_type_args(interface$,$$targs$$,Interface$meta$model);InterfaceModel$meta$model({Type$InterfaceModel:$$targs$$.Type$Interface},interface$);}
Interface$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Type$Interface:{dv:'out',def:{t:Anything}}},sts:[{t:InterfaceModel$meta$model,a:{Type$InterfaceModel:'Type$Interface'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Interface')];},d:['ceylon.language.meta.model','Interface']};};
ex$.Interface$meta$model=Interface$meta$model;function $init$Interface$meta$model(){if(Interface$meta$model.$$===undefined){initTypeProtoI(Interface$meta$model,'ceylon.language.meta.model::Interface',$init$InterfaceModel$meta$model());
}
return Interface$meta$model;}
ex$.$init$Interface$meta$model=$init$Interface$meta$model;$init$Interface$meta$model();function InterfaceModel$meta$model($$targs$$,interfaceModel$){set_type_args(interfaceModel$,$$targs$$,InterfaceModel$meta$model);ClassOrInterface$meta$model({Type$ClassOrInterface:$$targs$$.Type$InterfaceModel},interfaceModel$);}
InterfaceModel$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Type$InterfaceModel:{dv:'out',def:{t:Anything}}},sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$InterfaceModel'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:InterfaceModel')];},d:['ceylon.language.meta.model','InterfaceModel']};};
ex$.InterfaceModel$meta$model=InterfaceModel$meta$model;function $init$InterfaceModel$meta$model(){if(InterfaceModel$meta$model.$$===undefined){initTypeProtoI(InterfaceModel$meta$model,'ceylon.language.meta.model::InterfaceModel',$init$ClassOrInterface$meta$model());
(function(interfaceModel$){interfaceModel$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:InterfaceDeclaration$meta$declaration},$cont:InterfaceModel$meta$model,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:InterfaceModel:$at:declaration')];},d:['ceylon.language.meta.model','InterfaceModel','$at','declaration']};}};})(InterfaceModel$meta$model.$$.prototype);}
return InterfaceModel$meta$model;}
ex$.$init$InterfaceModel$meta$model=$init$InterfaceModel$meta$model;$init$InterfaceModel$meta$model();function IntersectionType$meta$model($$targs$$,intersectionType$){set_type_args(intersectionType$,$$targs$$,IntersectionType$meta$model);Type$meta$model({Target$Type:$$targs$$.Intersection$IntersectionType},intersectionType$);}
IntersectionType$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Intersection$IntersectionType:{dv:'out',def:{t:Anything}}},sts:[{t:Type$meta$model,a:{Target$Type:'Intersection$IntersectionType'}}],pa:17,an:function(){return[doc("A closed intersection type.")];},d:['ceylon.language.meta.model','IntersectionType']};};
ex$.IntersectionType$meta$model=IntersectionType$meta$model;function $init$IntersectionType$meta$model(){if(IntersectionType$meta$model.$$===undefined){initTypeProtoI(IntersectionType$meta$model,'ceylon.language.meta.model::IntersectionType',$init$Type$meta$model());
(function(intersectionType$){intersectionType$.$prop$getSatisfiedTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:IntersectionType$meta$model,pa:5,an:function(){return[doc("The list of closed satisfied types of this intersection.")];},d:['ceylon.language.meta.model','IntersectionType','$at','satisfiedTypes']};}};})(IntersectionType$meta$model.$$.prototype);}
return IntersectionType$meta$model;}
ex$.$init$IntersectionType$meta$model=$init$IntersectionType$meta$model;$init$IntersectionType$meta$model();function InvocationException$meta$model($1ky,invocationException$){$init$InvocationException$meta$model();
if(invocationException$===undefined)invocationException$=new InvocationException$meta$model.$$;
invocationException$.$1ky_=$1ky;Exception($1ky,undefined,invocationException$);return invocationException$;}
InvocationException$meta$model.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Exception},ps:[{nm:'message',mt:'prm',$t:{t:$_String}}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:InvocationException')];},d:['ceylon.language.meta.model','InvocationException']};};
ex$.InvocationException$meta$model=InvocationException$meta$model;function $init$InvocationException$meta$model(){if(InvocationException$meta$model.$$===undefined){initTypeProto(InvocationException$meta$model,'ceylon.language.meta.model::InvocationException',$init$Exception());
(function(invocationException$){atr$(invocationException$,'$1ky',function(){return this.$1ky_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:InvocationException$meta$model,d:['ceylon.language.meta.model','InvocationException','$at','message$g4ihko']};});})(InvocationException$meta$model.$$.prototype);}
return InvocationException$meta$model;}
ex$.$init$InvocationException$meta$model=$init$InvocationException$meta$model;$init$InvocationException$meta$model();function MemberClass$meta$model($$targs$$,memberClass$){set_type_args(memberClass$,$$targs$$,MemberClass$meta$model);ClassModel$meta$model({Arguments$ClassModel:$$targs$$.Arguments$MemberClass,Type$ClassModel:$$targs$$.Type$MemberClass},memberClass$);Member$meta$model({Kind$Member:{t:Class$meta$model,a:{Type$Class:$$targs$$.Type$MemberClass,Arguments$Class:$$targs$$.Arguments$MemberClass}},Container$Member:$$targs$$.Container$MemberClass},memberClass$);}
MemberClass$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Container$MemberClass:{dv:'in',def:{t:Nothing}},Type$MemberClass:{dv:'out',def:{t:Anything}},Arguments$MemberClass:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:ClassModel$meta$model,a:{Arguments$ClassModel:'Arguments$MemberClass',Type$ClassModel:'Type$MemberClass'}},{t:Member$meta$model,a:{Kind$Member:{t:Class$meta$model,a:{Type$Class:'Type$MemberClass',Arguments$Class:'Arguments$MemberClass'}},Container$Member:'Container$MemberClass'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:MemberClass')];},d:['ceylon.language.meta.model','MemberClass']};};
ex$.MemberClass$meta$model=MemberClass$meta$model;function $init$MemberClass$meta$model(){if(MemberClass$meta$model.$$===undefined){initTypeProtoI(MemberClass$meta$model,'ceylon.language.meta.model::MemberClass',$init$ClassModel$meta$model(),$init$Member$meta$model());
(function(memberClass$){memberClass$.$_bind={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Class$meta$model,a:{Type$Class:'Type$MemberClass',Arguments$Class:'Arguments$MemberClass'}},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:MemberClass$meta$model,pa:7,d:['ceylon.language.meta.model','MemberClass','$m','bind']};}};memberClass$.$prop$getDefaultConstructor={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberClassCallableConstructor$meta$model,a:{Type$MemberClassCallableConstructor:'Type$MemberClass',Arguments$MemberClassCallableConstructor:'Arguments$MemberClass',Container$MemberClassCallableConstructor:'Container$MemberClass'}}]},$cont:MemberClass$meta$model,pa:7,d:['ceylon.language.meta.model','MemberClass','$at','defaultConstructor']};}};memberClass$.getConstructor={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:MemberClassCallableConstructor$meta$model,a:{Type$MemberClassCallableConstructor:'Type$MemberClass',Arguments$MemberClassCallableConstructor:'Arguments$getConstructor',Container$MemberClassCallableConstructor:'Container$MemberClass'}},{t:'u',l:[{t:Null},{t:MemberClassValueConstructor$meta$model,a:{Container$MemberClassValueConstructor:'Container$MemberClass',Type$MemberClassValueConstructor:'Type$MemberClass'}}]}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:MemberClass$meta$model,tp:{Arguments$getConstructor:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:MemberClass:$m:getConstructor')];},d:['ceylon.language.meta.model','MemberClass','$m','getConstructor']};}};})(MemberClass$meta$model.$$.prototype);}
return MemberClass$meta$model;}
ex$.$init$MemberClass$meta$model=$init$MemberClass$meta$model;$init$MemberClass$meta$model();function MemberClassCallableConstructor$meta$model($$targs$$,memberClassCallableConstructor$){set_type_args(memberClassCallableConstructor$,$$targs$$,MemberClassCallableConstructor$meta$model);FunctionModel$meta$model({Arguments$FunctionModel:$$targs$$.Arguments$MemberClassCallableConstructor,Type$FunctionModel:$$targs$$.Type$MemberClassCallableConstructor},memberClassCallableConstructor$);Qualified$meta$model({Container$Qualified:$$targs$$.Container$MemberClassCallableConstructor,Kind$Qualified:{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:$$targs$$.Arguments$MemberClassCallableConstructor,Type$CallableConstructor:$$targs$$.Type$MemberClassCallableConstructor}}},memberClassCallableConstructor$);}
MemberClassCallableConstructor$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Container$MemberClassCallableConstructor:{dv:'in',def:{t:Nothing}},Type$MemberClassCallableConstructor:{dv:'out',def:{t:$_Object}},Arguments$MemberClassCallableConstructor:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:'Arguments$MemberClassCallableConstructor',Type$FunctionModel:'Type$MemberClassCallableConstructor'}},{t:Qualified$meta$model,a:{Container$Qualified:'Container$MemberClassCallableConstructor',Kind$Qualified:{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$MemberClassCallableConstructor',Type$CallableConstructor:'Type$MemberClassCallableConstructor'}}}}],pa:17,an:function(){return[doc("A model for a callable constructor of a member class."),see([$init$OpenInterface$jsint()(lmp$(ex$,'ceylon.language.meta.model'),MemberClassValueConstructor$meta$model)].$sa$({t:InterfaceDeclaration$meta$declaration}))];},d:['ceylon.language.meta.model','MemberClassCallableConstructor']};};
ex$.MemberClassCallableConstructor$meta$model=MemberClassCallableConstructor$meta$model;function $init$MemberClassCallableConstructor$meta$model(){if(MemberClassCallableConstructor$meta$model.$$===undefined){initTypeProtoI(MemberClassCallableConstructor$meta$model,'ceylon.language.meta.model::MemberClassCallableConstructor',$init$FunctionModel$meta$model(),$init$Qualified$meta$model());
(function(memberClassCallableConstructor$){memberClassCallableConstructor$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:CallableConstructorDeclaration$meta$declaration},$cont:MemberClassCallableConstructor$meta$model,pa:7,an:function(){return[doc("This constructor\'s declaration.")];},d:['ceylon.language.meta.model','MemberClassCallableConstructor','$at','declaration']};}};memberClassCallableConstructor$.$prop$getType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:MemberClass$meta$model,a:{Arguments$MemberClass:{t:Nothing},Container$MemberClass:'Container$MemberClassCallableConstructor',Type$MemberClass:'Type$MemberClassCallableConstructor'}},$cont:MemberClassCallableConstructor$meta$model,pa:7,d:['ceylon.language.meta.model','MemberClassCallableConstructor','$at','type']};}};memberClassCallableConstructor$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:'Type$MemberClassCallableConstructor'}},$cont:MemberClassCallableConstructor$meta$model,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:MemberClassCallableConstructor:$at:container')];},d:['ceylon.language.meta.model','MemberClassCallableConstructor','$at','container']};}};memberClassCallableConstructor$.$_bind={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$MemberClassCallableConstructor',Type$CallableConstructor:'Type$MemberClassCallableConstructor'}},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:MemberClassCallableConstructor$meta$model,pa:7,d:['ceylon.language.meta.model','MemberClassCallableConstructor','$m','bind']};}};})(MemberClassCallableConstructor$meta$model.$$.prototype);}
return MemberClassCallableConstructor$meta$model;}
ex$.$init$MemberClassCallableConstructor$meta$model=$init$MemberClassCallableConstructor$meta$model;$init$MemberClassCallableConstructor$meta$model();function MemberClassValueConstructor$meta$model($$targs$$,memberClassValueConstructor$){set_type_args(memberClassValueConstructor$,$$targs$$,MemberClassValueConstructor$meta$model);ValueModel$meta$model({Get$ValueModel:$$targs$$.Type$MemberClassValueConstructor,Set$ValueModel:{t:Nothing}},memberClassValueConstructor$);Qualified$meta$model({Container$Qualified:$$targs$$.Container$MemberClassValueConstructor,Kind$Qualified:{t:ValueConstructor$meta$model,a:{Type$ValueConstructor:$$targs$$.Type$MemberClassValueConstructor}}},memberClassValueConstructor$);}
MemberClassValueConstructor$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Container$MemberClassValueConstructor:{dv:'in',def:{t:Nothing}},Type$MemberClassValueConstructor:{dv:'out',def:{t:$_Object}}},sts:[{t:ValueModel$meta$model,a:{Get$ValueModel:'Type$MemberClassValueConstructor',Set$ValueModel:{t:Nothing}}},{t:Qualified$meta$model,a:{Container$Qualified:'Container$MemberClassValueConstructor',Kind$Qualified:{t:ValueConstructor$meta$model,a:{Type$ValueConstructor:'Type$MemberClassValueConstructor'}}}}],pa:17,an:function(){return[doc("A model for a value constructor of a member class.")];},d:['ceylon.language.meta.model','MemberClassValueConstructor']};};
ex$.MemberClassValueConstructor$meta$model=MemberClassValueConstructor$meta$model;function $init$MemberClassValueConstructor$meta$model(){if(MemberClassValueConstructor$meta$model.$$===undefined){initTypeProtoI(MemberClassValueConstructor$meta$model,'ceylon.language.meta.model::MemberClassValueConstructor',$init$ValueModel$meta$model(),$init$Qualified$meta$model());
(function(memberClassValueConstructor$){memberClassValueConstructor$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ValueConstructorDeclaration$meta$declaration},$cont:MemberClassValueConstructor$meta$model,pa:7,an:function(){return[doc("This value\'s declaration.")];},d:['ceylon.language.meta.model','MemberClassValueConstructor','$at','declaration']};}};memberClassValueConstructor$.$prop$getType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:MemberClass$meta$model,a:{Arguments$MemberClass:{t:Nothing},Container$MemberClass:'Container$MemberClassValueConstructor',Type$MemberClass:'Type$MemberClassValueConstructor'}},$cont:MemberClassValueConstructor$meta$model,pa:7,an:function(){return[doc("This value\'s closed type.")];},d:['ceylon.language.meta.model','MemberClassValueConstructor','$at','type']};}};memberClassValueConstructor$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:'Type$MemberClassValueConstructor'}},$cont:MemberClassValueConstructor$meta$model,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:MemberClassValueConstructor:$at:container')];},d:['ceylon.language.meta.model','MemberClassValueConstructor','$at','container']};}};memberClassValueConstructor$.$_bind={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:ValueConstructor$meta$model,a:{Type$ValueConstructor:'Type$MemberClassValueConstructor'}},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:MemberClassValueConstructor$meta$model,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:MemberClassValueConstructor:$m:bind'),$_throws("StorageException","If this attribute is not stored at runtime, for example if it is neither shared nor captured.")];},d:['ceylon.language.meta.model','MemberClassValueConstructor','$m','bind']};}};})(MemberClassValueConstructor$meta$model.$$.prototype);}
return MemberClassValueConstructor$meta$model;}
ex$.$init$MemberClassValueConstructor$meta$model=$init$MemberClassValueConstructor$meta$model;$init$MemberClassValueConstructor$meta$model();function MemberInterface$meta$model($$targs$$,memberInterface$){set_type_args(memberInterface$,$$targs$$,MemberInterface$meta$model);InterfaceModel$meta$model({Type$InterfaceModel:$$targs$$.Type$MemberInterface},memberInterface$);Member$meta$model({Kind$Member:{t:Interface$meta$model,a:{Type$Interface:$$targs$$.Type$MemberInterface}},Container$Member:$$targs$$.Container$MemberInterface},memberInterface$);}
MemberInterface$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Container$MemberInterface:{dv:'in',def:{t:Nothing}},Type$MemberInterface:{dv:'out',def:{t:Anything}}},sts:[{t:InterfaceModel$meta$model,a:{Type$InterfaceModel:'Type$MemberInterface'}},{t:Member$meta$model,a:{Kind$Member:{t:Interface$meta$model,a:{Type$Interface:'Type$MemberInterface'}},Container$Member:'Container$MemberInterface'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:MemberInterface')];},d:['ceylon.language.meta.model','MemberInterface']};};
ex$.MemberInterface$meta$model=MemberInterface$meta$model;function $init$MemberInterface$meta$model(){if(MemberInterface$meta$model.$$===undefined){initTypeProtoI(MemberInterface$meta$model,'ceylon.language.meta.model::MemberInterface',$init$InterfaceModel$meta$model(),$init$Member$meta$model());
(function(memberInterface$){memberInterface$.$_bind={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Interface$meta$model,a:{Type$Interface:'Type$MemberInterface'}},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:MemberInterface$meta$model,pa:7,d:['ceylon.language.meta.model','MemberInterface','$m','bind']};}};})(MemberInterface$meta$model.$$.prototype);}
return MemberInterface$meta$model;}
ex$.$init$MemberInterface$meta$model=$init$MemberInterface$meta$model;$init$MemberInterface$meta$model();function Method$meta$model($$targs$$,method$){set_type_args(method$,$$targs$$,Method$meta$model);FunctionModel$meta$model({Arguments$FunctionModel:$$targs$$.Arguments$Method,Type$FunctionModel:$$targs$$.Type$Method},method$);Member$meta$model({Kind$Member:{t:$_Function$meta$model,a:{Arguments$Function:$$targs$$.Arguments$Method,Type$Function:$$targs$$.Type$Method}},Container$Member:$$targs$$.Container$Method},method$);}
Method$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Container$Method:{dv:'in',def:{t:Nothing}},Type$Method:{dv:'out',def:{t:Anything}},Arguments$Method:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:'Arguments$Method',Type$FunctionModel:'Type$Method'}},{t:Member$meta$model,a:{Kind$Member:{t:$_Function$meta$model,a:{Arguments$Function:'Arguments$Method',Type$Function:'Type$Method'}},Container$Member:'Container$Method'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Method')];},d:['ceylon.language.meta.model','Method']};};
ex$.Method$meta$model=Method$meta$model;function $init$Method$meta$model(){if(Method$meta$model.$$===undefined){initTypeProtoI(Method$meta$model,'ceylon.language.meta.model::Method',$init$FunctionModel$meta$model(),$init$Member$meta$model());
(function(method$){method$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:FunctionDeclaration$meta$declaration},$cont:Method$meta$model,pa:7,an:function(){return[doc("This function\'s declaration.")];},d:['ceylon.language.meta.model','Method','$at','declaration']};}};method$.$_bind={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Function$meta$model,a:{Arguments$Function:'Arguments$Method',Type$Function:'Type$Method'}},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:Method$meta$model,pa:7,d:['ceylon.language.meta.model','Method','$m','bind']};}};})(Method$meta$model.$$.prototype);}
return Method$meta$model;}
ex$.$init$Method$meta$model=$init$Method$meta$model;$init$Method$meta$model();function Model$meta$model(model$){Declared$meta$model(model$);}
Model$meta$model.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:Declared$meta$model}],of:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}},{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:{t:Nothing},Type$FunctionModel:{t:Anything}}},{t:ValueModel$meta$model,a:{Get$ValueModel:{t:Anything},Set$ValueModel:{t:Nothing}}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Model')];},d:['ceylon.language.meta.model','Model']};};
ex$.Model$meta$model=Model$meta$model;function $init$Model$meta$model(){if(Model$meta$model.$$===undefined){initTypeProtoI(Model$meta$model,'ceylon.language.meta.model::Model',$init$Declared$meta$model());
(function(model$){model$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Type$meta$model,a:{Target$Type:{t:Anything}}}]},$cont:Model$meta$model,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Model:$at:container')];},d:['ceylon.language.meta.model','Model','$at','container']};}};model$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:NestableDeclaration$meta$declaration},$cont:Model$meta$model,pa:7,an:function(){return[doc("The declaration for this model.")];},d:['ceylon.language.meta.model','Model','$at','declaration']};}};})(Model$meta$model.$$.prototype);}
return Model$meta$model;}
ex$.$init$Model$meta$model=$init$Model$meta$model;$init$Model$meta$model();function MutationException$meta$model($1l9,mutationException$){$init$MutationException$meta$model();
if(mutationException$===undefined)mutationException$=new MutationException$meta$model.$$;
mutationException$.$1l9_=$1l9;Exception($1l9,undefined,mutationException$);return mutationException$;}
MutationException$meta$model.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Exception},ps:[{nm:'message',mt:'prm',$t:{t:$_String}}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:MutationException')];},d:['ceylon.language.meta.model','MutationException']};};
ex$.MutationException$meta$model=MutationException$meta$model;function $init$MutationException$meta$model(){if(MutationException$meta$model.$$===undefined){initTypeProto(MutationException$meta$model,'ceylon.language.meta.model::MutationException',$init$Exception());
(function(mutationException$){atr$(mutationException$,'$1l9',function(){return this.$1l9_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:MutationException$meta$model,d:['ceylon.language.meta.model','MutationException','$at','message$l7zqwp']};});})(MutationException$meta$model.$$.prototype);}
return MutationException$meta$model;}
ex$.$init$MutationException$meta$model=$init$MutationException$meta$model;$init$MutationException$meta$model();function Qualified$meta$model($$targs$$,qualified$){set_type_args(qualified$,$$targs$$,Qualified$meta$model);Callable({Return$Callable:$$targs$$.Kind$Qualified,Arguments$Callable:mtt$([$$targs$$.Container$Qualified])},qualified$);}
Qualified$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Kind$Qualified:{dv:'out',def:{t:Anything}},Container$Qualified:{dv:'in',def:{t:Nothing}}},sts:[{t:Callable,a:{Return$Callable:'Kind$Qualified',Arguments$Callable:{t:'T',l:['Container$Qualified']}}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Qualified')];},d:['ceylon.language.meta.model','Qualified']};};
ex$.Qualified$meta$model=Qualified$meta$model;function $init$Qualified$meta$model(){if(Qualified$meta$model.$$===undefined){initTypeProtoI(Qualified$meta$model,'ceylon.language.meta.model::Qualified',$init$Callable());
(function(qualified$){qualified$.$_bind={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Kind$Qualified',ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:Qualified$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Qualified:$m:bind'),$_throws("IncompatibleTypeException","If the container is not assignable to this member\'s container")];},d:['ceylon.language.meta.model','Qualified','$m','bind']};}};})(Qualified$meta$model.$$.prototype);}
return Qualified$meta$model;}
ex$.$init$Qualified$meta$model=$init$Qualified$meta$model;$init$Qualified$meta$model();function StorageException$meta$model($1la,storageException$){$init$StorageException$meta$model();
if(storageException$===undefined)storageException$=new StorageException$meta$model.$$;
storageException$.$1la_=$1la;Exception($1la,undefined,storageException$);return storageException$;}
StorageException$meta$model.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Exception},ps:[{nm:'message',mt:'prm',$t:{t:$_String}}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:StorageException')];},d:['ceylon.language.meta.model','StorageException']};};
ex$.StorageException$meta$model=StorageException$meta$model;function $init$StorageException$meta$model(){if(StorageException$meta$model.$$===undefined){initTypeProto(StorageException$meta$model,'ceylon.language.meta.model::StorageException',$init$Exception());
(function(storageException$){atr$(storageException$,'$1la',function(){return this.$1la_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:StorageException$meta$model,d:['ceylon.language.meta.model','StorageException','$at','message$hbm0f9']};});})(StorageException$meta$model.$$.prototype);}
return StorageException$meta$model;}
ex$.$init$StorageException$meta$model=$init$StorageException$meta$model;$init$StorageException$meta$model();function Type$meta$model($$targs$$,type$){set_type_args(type$,$$targs$$,Type$meta$model);}
Type$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Target$Type:{dv:'out',def:{t:Anything}}},pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Type')];},d:['ceylon.language.meta.model','Type']};};
ex$.Type$meta$model=Type$meta$model;function $init$Type$meta$model(){if(Type$meta$model.$$===undefined){initTypeProtoI(Type$meta$model,'ceylon.language.meta.model::Type');
(function(type$){type$.typeOf={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}}],$cont:Type$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Type:$m:typeOf')];},d:['ceylon.language.meta.model','Type','$m','typeOf']};}};type$.supertypeOf={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:Type$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Type:$m:supertypeOf')];},d:['ceylon.language.meta.model','Type','$m','supertypeOf']};}};type$.subtypeOf=function($1lb){var type$=this;return $1lb.supertypeOf(type$);};type$.subtypeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:Type$meta$model,pa:9,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Type:$m:subtypeOf')];},d:['ceylon.language.meta.model','Type','$m','subtypeOf']};};type$.exactly={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:Type$meta$model,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Type:$m:exactly')];},d:['ceylon.language.meta.model','Type','$m','exactly']};}};type$.union={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'u',l:['Target$Type','Other$union']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$union'}}}],$cont:Type$meta$model,tp:{Other$union:{}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Type:$m:union')];},d:['ceylon.language.meta.model','Type','$m','union']};}};type$.intersection={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'i',l:['Target$Type','Other$intersection']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$intersection'}}}],$cont:Type$meta$model,tp:{Other$intersection:{}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Type:$m:intersection')];},d:['ceylon.language.meta.model','Type','$m','intersection']};}};})(Type$meta$model.$$.prototype);}
return Type$meta$model;}
ex$.$init$Type$meta$model=$init$Type$meta$model;$init$Type$meta$model();function TypeApplicationException$meta$model($1lc,typeApplicationException$){$init$TypeApplicationException$meta$model();
if(typeApplicationException$===undefined)typeApplicationException$=new TypeApplicationException$meta$model.$$;
typeApplicationException$.$1lc_=$1lc;Exception($1lc,undefined,typeApplicationException$);return typeApplicationException$;}
TypeApplicationException$meta$model.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Exception},ps:[{nm:'message',mt:'prm',$t:{t:$_String}}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:TypeApplicationException')];},d:['ceylon.language.meta.model','TypeApplicationException']};};
ex$.TypeApplicationException$meta$model=TypeApplicationException$meta$model;function $init$TypeApplicationException$meta$model(){if(TypeApplicationException$meta$model.$$===undefined){initTypeProto(TypeApplicationException$meta$model,'ceylon.language.meta.model::TypeApplicationException',$init$Exception());
(function(typeApplicationException$){atr$(typeApplicationException$,'$1lc',function(){return this.$1lc_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:TypeApplicationException$meta$model,d:['ceylon.language.meta.model','TypeApplicationException','$at','message$9tu43y']};});})(TypeApplicationException$meta$model.$$.prototype);}
return TypeApplicationException$meta$model;}
ex$.$init$TypeApplicationException$meta$model=$init$TypeApplicationException$meta$model;$init$TypeApplicationException$meta$model();function TypeArgument$meta$model(){var $1ld=mtt$([{t:Type$meta$model,a:{Target$Type:{t:Anything}}},{t:Variance$meta$declaration}]);$1ld.$crtmm$=function(){return{mod:$CCMM$,pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:TypeArgument')];},d:['ceylon.language.meta.model','TypeArgument']};};return $1ld;}
ex$.TypeArgument$meta$model=TypeArgument$meta$model;function UnionType$meta$model($$targs$$,unionType$){set_type_args(unionType$,$$targs$$,UnionType$meta$model);Type$meta$model({Target$Type:$$targs$$.Union$UnionType},unionType$);}
UnionType$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Union$UnionType:{dv:'out',def:{t:Anything}}},sts:[{t:Type$meta$model,a:{Target$Type:'Union$UnionType'}}],pa:17,an:function(){return[doc("A closed union type.")];},d:['ceylon.language.meta.model','UnionType']};};
ex$.UnionType$meta$model=UnionType$meta$model;function $init$UnionType$meta$model(){if(UnionType$meta$model.$$===undefined){initTypeProtoI(UnionType$meta$model,'ceylon.language.meta.model::UnionType',$init$Type$meta$model());
(function(unionType$){unionType$.$prop$getCaseTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:UnionType$meta$model,pa:5,an:function(){return[doc("The list of closed case types of this union.")];},d:['ceylon.language.meta.model','UnionType','$at','caseTypes']};}};})(UnionType$meta$model.$$.prototype);}
return UnionType$meta$model;}
ex$.$init$UnionType$meta$model=$init$UnionType$meta$model;$init$UnionType$meta$model();function Value$meta$model($$targs$$,value$){set_type_args(value$,$$targs$$,Value$meta$model);ValueModel$meta$model({Get$ValueModel:$$targs$$.Get$Value,Set$ValueModel:$$targs$$.Set$Value},value$);Gettable$meta$model({Get$Gettable:$$targs$$.Get$Value,Set$Gettable:$$targs$$.Set$Value},value$);}
Value$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Get$Value:{dv:'out',def:{t:Anything}},Set$Value:{dv:'in',def:{t:Nothing}}},sts:[{t:ValueModel$meta$model,a:{Get$ValueModel:'Get$Value',Set$ValueModel:'Set$Value'}},{t:Gettable$meta$model,a:{Get$Gettable:'Get$Value',Set$Gettable:'Set$Value'}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:Value')];},d:['ceylon.language.meta.model','Value']};};
ex$.Value$meta$model=Value$meta$model;function $init$Value$meta$model(){if(Value$meta$model.$$===undefined){initTypeProtoI(Value$meta$model,'ceylon.language.meta.model::Value',$init$ValueModel$meta$model(),$init$Gettable$meta$model());
(function(value$){value$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ValueDeclaration$meta$declaration},$cont:Value$meta$model,pa:7,an:function(){return[doc("This value\'s declaration.")];},d:['ceylon.language.meta.model','Value','$at','declaration']};}};})(Value$meta$model.$$.prototype);}
return Value$meta$model;}
ex$.$init$Value$meta$model=$init$Value$meta$model;$init$Value$meta$model();function ValueConstructor$meta$model($$targs$$,valueConstructor$){set_type_args(valueConstructor$,$$targs$$,ValueConstructor$meta$model);ValueModel$meta$model({Get$ValueModel:$$targs$$.Type$ValueConstructor,Set$ValueModel:{t:Nothing}},valueConstructor$);Gettable$meta$model({Get$Gettable:$$targs$$.Type$ValueConstructor,Set$Gettable:{t:Nothing}},valueConstructor$);}
ValueConstructor$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Type$ValueConstructor:{dv:'out',def:{t:$_Object}}},sts:[{t:ValueModel$meta$model,a:{Get$ValueModel:'Type$ValueConstructor',Set$ValueModel:{t:Nothing}}},{t:Gettable$meta$model,a:{Get$Gettable:'Type$ValueConstructor',Set$Gettable:{t:Nothing}}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ValueConstructor')];},d:['ceylon.language.meta.model','ValueConstructor']};};
ex$.ValueConstructor$meta$model=ValueConstructor$meta$model;function $init$ValueConstructor$meta$model(){if(ValueConstructor$meta$model.$$===undefined){initTypeProtoI(ValueConstructor$meta$model,'ceylon.language.meta.model::ValueConstructor',$init$ValueModel$meta$model(),$init$Gettable$meta$model());
(function(valueConstructor$){valueConstructor$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ValueConstructorDeclaration$meta$declaration},$cont:ValueConstructor$meta$model,pa:7,an:function(){return[doc("This value\'s declaration.")];},d:['ceylon.language.meta.model','ValueConstructor','$at','declaration']};}};valueConstructor$.$prop$getType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Class$meta$model,a:{Type$Class:'Type$ValueConstructor',Arguments$Class:{t:Nothing}}},$cont:ValueConstructor$meta$model,pa:7,an:function(){return[doc("This value\'s closed type.")];},d:['ceylon.language.meta.model','ValueConstructor','$at','type']};}};valueConstructor$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Class$meta$model,a:{Type$Class:'Type$ValueConstructor',Arguments$Class:{t:Nothing}}}]},$cont:ValueConstructor$meta$model,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ValueConstructor:$at:container')];},d:['ceylon.language.meta.model','ValueConstructor','$at','container']};}};})(ValueConstructor$meta$model.$$.prototype);}
return ValueConstructor$meta$model;}
ex$.$init$ValueConstructor$meta$model=$init$ValueConstructor$meta$model;$init$ValueConstructor$meta$model();function ValueModel$meta$model($$targs$$,valueModel$){set_type_args(valueModel$,$$targs$$,ValueModel$meta$model);Model$meta$model(valueModel$);}
ValueModel$meta$model.$crtmm$=function(){return{mod:$CCMM$,tp:{Get$ValueModel:{dv:'out',def:{t:Anything}},Set$ValueModel:{dv:'in',def:{t:Nothing}}},sts:[{t:Model$meta$model}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:ValueModel')];},d:['ceylon.language.meta.model','ValueModel']};};
ex$.ValueModel$meta$model=ValueModel$meta$model;function $init$ValueModel$meta$model(){if(ValueModel$meta$model.$$===undefined){initTypeProtoI(ValueModel$meta$model,'ceylon.language.meta.model::ValueModel',$init$Model$meta$model());
(function(valueModel$){valueModel$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'i',l:[{t:NestableDeclaration$meta$declaration},{t:GettableDeclaration$meta$declaration}]},$cont:ValueModel$meta$model,pa:7,an:function(){return[doc("This value\'s declaration.")];},d:['ceylon.language.meta.model','ValueModel','$at','declaration']};}};valueModel$.$prop$getType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:'Get$ValueModel'}},$cont:ValueModel$meta$model,pa:5,an:function(){return[doc("This value\'s closed type.")];},d:['ceylon.language.meta.model','ValueModel','$at','type']};}};})(ValueModel$meta$model.$$.prototype);}
return ValueModel$meta$model;}
ex$.$init$ValueModel$meta$model=$init$ValueModel$meta$model;$init$ValueModel$meta$model();function $1lj$meta$model($$targs$$){var nothingType$=new $1lj$meta$model.$$;nothingType$.$$targs$$=$$targs$$;Type$meta$model({Target$Type:{t:Nothing}},nothingType$);return nothingType$;};$1lj$meta$model.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},sts:[{t:Type$meta$model,a:{Target$Type:{t:Nothing}}}],d:['ceylon.language.meta.model','nothingType']};};function $init$nothingType$meta$model(){if($1lj$meta$model.$$===undefined){initTypeProto($1lj$meta$model,'ceylon.language.meta.model::nothingType',Basic,$init$Type$meta$model());
(function(nothingType$){atr$(nothingType$,'string',function(){var nothingType$=this;return "Nothing";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1lj$meta$model,pa:3,d:['ceylon.language.meta.model','nothingType','$at','string']};});nothingType$.typeOf=function($1ll){return false;};nothingType$.exactly=function($1lm){var nothingType$=this;return $1lm.equals(nothingType$meta$model());};nothingType$.supertypeOf=function($1ln){var nothingType$=this;return nothingType$.exactly($1ln);};nothingType$.subtypeOf=function($1lo){return true;};nothingType$.union=function($1lp,$3ry7f0$){var nothingType$=this;return $1lp;};nothingType$.union.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:'Other$union'}},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$union'}}}],$cont:$1lj$meta$model,tp:{Other$union:{}},pa:3,d:['ceylon.language.meta.model','nothingType','$m','union']};};nothingType$.intersection=function($1lq,$9p33jg$){var nothingType$=this;return nothingType$;};nothingType$.intersection.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:Nothing}}},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$intersection'}}}],$cont:$1lj$meta$model,tp:{Other$intersection:{}},pa:3,d:['ceylon.language.meta.model','nothingType','$m','intersection']};};})($1lj$meta$model.$$.prototype);}
return $1lj$meta$model;}
ex$.$init$nothingType$meta$model=$init$nothingType$meta$model;$init$nothingType$meta$model();var $1lr;function nothingType$meta$model(){if($1lr===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'nothingType\' before it was set"),'1:0-17:0','nothingType.ceylon');if($1lr===undefined){$1lr=INIT$;$1lr=$init$nothingType$meta$model()({Target$Type:{t:Nothing}});$1lr.$crtmm$=nothingType$meta$model.$crtmm$;}
return $1lr;}
ex$.nothingType$meta$model=nothingType$meta$model;nothingType$meta$model.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$nothingType$meta$model()},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.model:nothingType')];},d:['ceylon.language.meta.model','nothingType']};};$prop$getNothingType$meta$model=nothingType$meta$model;ex$.$prop$getNothingType$meta$model=$prop$getNothingType$meta$model;ex$.$pkg$ans$ceylon$language$meta$model=function(){return[doc$($CCMM$,'ceylon.language.meta.model','$pkg-anns'),by(["Gavin King","Stephane Epardaud","Tom Bentley"].$sa$({t:$_String})),tagged(["Metamodel"].$sa$({t:$_String})),shared()];};function AppliedAttribute(pname, atr,$$targs$$,that){
if (!$$targs$$.Get$AppliedAttribute)$$targs$$.Get$AppliedAttribute=$$targs$$.Get$Attribute;
if (!$$targs$$.Set$AppliedAttribute)$$targs$$.Set$AppliedAttribute=$$targs$$.Set$Attribute;
if (!$$targs$$.Container$AppliedAttribute)$$targs$$.Container$AppliedAttribute=$$targs$$.Container$Attribute;
$init$AppliedAttribute();
if (that===undefined) {
that=function(x){return AppliedValue$jsint(x,atr,
{Get$AppliedValue:$$targs$$.Get$AppliedAttribute,Set$AppliedValue:$$targs$$.Set$AppliedAttribute,
Container$AppliedValue:$$targs$$.Container$AppliedAttribute});};
that.$$=AppliedAttribute.$$;
var dummy=new AppliedAttribute.$$;
that.getT$all=function(){return dummy.getT$all();};
that.getT$name=function(){return dummy.getT$name();};
}
Attribute$meta$model(that.$$targs$$===undefined?$$targs$$:{Get$Attribute:that.$$targs$$.Get$AppliedAttribute,
Set$Attribute:that.$$targs$$.Set$AppliedAttribute,
Container$Attribute:that.$$targs$$.Container$AppliedAttribute},that);
set_type_args(that,$$targs$$,AppliedAttribute);
that.tipo=atr;
that.pname=pname;
atr$(that,'declaringType',function(){return memberDeclaringType$(that);
},undefined,Member$meta$model.$$.prototype.$prop$getDeclaringType.$crtmm$);
atr$(that,'type',function(){
var t = getrtmm$$(atr);
if (t===undefined)throw Exception("Attribute reference not found. Metamodel doesn't work in modules compiled in lexical scope style.");
return typeLiteral$meta({Type$typeLiteral:restype$($$targs$$.Container$Attribute,t.$t)});
},undefined,function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Type$Type:'Get$Attribute'}},$cont:AppliedAttribute,an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','Attribute','$at','type']};});
atr$(that,'declaration',function(){
var mm = getrtmm$$(atr);
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
var pkg = modules$meta().find(_m['$mod-name'],_m['$mod-version']).findPackage(mm.d[0]);
return OpenValue$jsint(pkg, atr);
},undefined,function(){return{mod:$CCMM$,$t:{t:ValueDeclaration$meta$declaration},$cont:AppliedAttribute,an:function(){return[shared(),actual()];},d:['ceylon.language.meta.model','Attribute','$at','declaration']};});
that.$_bind=function(cont){
return AppliedValue$jsint(cont,atr,{Get$AppliedValue:$$targs$$.Get$AppliedAttribute,
Set$AppliedValue:$$targs$$.Set$AppliedAttribute,
Container$AppliedValue:$$targs$$.Container$AppliedAttribute});
}
atr$(that,'string',function(){
var c=getrtmm$$(atr).$cont;
if (typeof(c.$crtmm$)==='function')c.$crtmm$=c.$crtmm$();
if (!c)return qname$(atr);
c=c.$crtmm$;
var qn=qname$(c);
if (c.tp) {
qn+="<"; var first=true;
var cnt=$$targs$$&&$$targs$$.Container$AppliedAttribute&&$$targs$$.Container$AppliedAttribute.a;
for (var tp in c.tp) {
if (first)first=false;else qn+=",";
var _ta=cnt&&cnt[tp];
if (_ta) {
qn+=qname$(_ta);
} else qn+=qname$(Anything);
}
qn+=">";
}
qn+="."+pname;
return qn;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},d:['$','Object','$at','string']};});
atr$(that,'container',function(){
return AppliedValue$jsint.$$.prototype.$prop$getContainer.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Type$Type:{t:Anything}}},$cont:AppliedAttribute,pa:67,d:['ceylon.language.jsint','Member','$at','container']};});
that.equals=function(o) {
return is$(o,{t:AppliedAttribute}) && o.tipo===atr;
}
return that;
}
AppliedAttribute.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},tp:{Get:{dv:'out','def':{t:Anything}},Set:{dv:'in','def':{t:Nothing}},Container:{dv:'in'}},sts:[{t:Attribute$meta$model,a:{Get:'Get',Set:'Set',Container:'Container'}}],pa:1,d:['ceylon.language.meta.model','Attribute']};};
ex$.AppliedAttribute=AppliedAttribute;
function $init$AppliedAttribute(){
if (AppliedAttribute.$$===undefined){
initTypeProto(AppliedAttribute,'ceylon.language.meta.model::AppliedAttribute',Basic,Attribute$meta$model);
(function($$appliedAttribute){
})(AppliedAttribute.$$.prototype);
}
return AppliedAttribute;
}
ex$.$init$AppliedAttribute$meta$model=$init$AppliedAttribute;
$init$AppliedAttribute();
function NestableDeclaration$meta$declaration(nestableDeclaration$){AnnotatedDeclaration$meta$declaration(nestableDeclaration$);TypedDeclaration$meta$declaration(nestableDeclaration$);}
NestableDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:AnnotatedDeclaration$meta$declaration},{t:TypedDeclaration$meta$declaration}],of:[{t:FunctionOrValueDeclaration$meta$declaration},{t:ClassOrInterfaceDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration},{t:SetterDeclaration$meta$declaration},{t:AliasDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:NestableDeclaration')];},d:['ceylon.language.meta.declaration','NestableDeclaration']};};
ex$.NestableDeclaration$meta$declaration=NestableDeclaration$meta$declaration;function $init$NestableDeclaration$meta$declaration(){if(NestableDeclaration$meta$declaration.$$===undefined){initTypeProtoI(NestableDeclaration$meta$declaration,'ceylon.language.meta.declaration::NestableDeclaration',$init$AnnotatedDeclaration$meta$declaration(),$init$TypedDeclaration$meta$declaration());
(function(nestableDeclaration$){nestableDeclaration$.$prop$getActual={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:NestableDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:NestableDeclaration:$at:actual')];},d:['ceylon.language.meta.declaration','NestableDeclaration','$at','actual']};}};nestableDeclaration$.$prop$getFormal={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:NestableDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:NestableDeclaration:$at:formal')];},d:['ceylon.language.meta.declaration','NestableDeclaration','$at','formal']};}};nestableDeclaration$.$prop$getDefault={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:NestableDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:NestableDeclaration:$at:default')];},d:['ceylon.language.meta.declaration','NestableDeclaration','$at','default']};}};nestableDeclaration$.$prop$getShared={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:NestableDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:NestableDeclaration:$at:shared')];},d:['ceylon.language.meta.declaration','NestableDeclaration','$at','shared']};}};nestableDeclaration$.$prop$getContainingPackage={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:NestableDeclaration$meta$declaration,pa:5,an:function(){return[doc("This declaration\'s package container.")];},d:['ceylon.language.meta.declaration','NestableDeclaration','$at','containingPackage']};}};nestableDeclaration$.$prop$getContainingModule={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:NestableDeclaration$meta$declaration,pa:5,an:function(){return[doc("This declaration\'s module container.")];},d:['ceylon.language.meta.declaration','NestableDeclaration','$at','containingModule']};}};nestableDeclaration$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:NestableDeclaration$meta$declaration},{t:Package$meta$declaration}]},$cont:NestableDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:NestableDeclaration:$at:container')];},d:['ceylon.language.meta.declaration','NestableDeclaration','$at','container']};}};nestableDeclaration$.$prop$getToplevel={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:NestableDeclaration$meta$declaration,pa:5,an:function(){return[doc("True if this declaration is a toplevel declaration.")];},d:['ceylon.language.meta.declaration','NestableDeclaration','$at','toplevel']};}};})(NestableDeclaration$meta$declaration.$$.prototype);}
return NestableDeclaration$meta$declaration;}
ex$.$init$NestableDeclaration$meta$declaration=$init$NestableDeclaration$meta$declaration;$init$NestableDeclaration$meta$declaration();atr$(NestableDeclaration$meta$declaration.$$.prototype,'shared',function(){
return (getrtmm$$(this.tipo).pa&1) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:NestableDeclaration$meta$declaration,d:['ceylon.language.meta.declaration','NestableDeclaration','$at','shared']};});
atr$(NestableDeclaration$meta$declaration.$$.prototype,'actual',function(){
return (getrtmm$$(this.tipo).pa&2) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:NestableDeclaration$meta$declaration,d:['ceylon.language.meta.declaration','NestableDeclaration','$at','actual']};});
atr$(NestableDeclaration$meta$declaration.$$.prototype,'formal',function(){
return (getrtmm$$(this.tipo).pa&4) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:NestableDeclaration$meta$declaration,d:['ceylon.language.meta.declaration','NestableDeclaration','$at','formal']};});
atr$(NestableDeclaration$meta$declaration.$$.prototype,'$_default',function(){
return (getrtmm$$(this.tipo).pa&8) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:NestableDeclaration$meta$declaration,d:['ceylon.language.meta.declaration','NestableDeclaration','$at','default']};});
function GenericDeclaration$meta$declaration(genericDeclaration$){}
GenericDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,pa:17,an:function(){return[doc("A declaration that can have type parameters.")];},d:['ceylon.language.meta.declaration','GenericDeclaration']};};
ex$.GenericDeclaration$meta$declaration=GenericDeclaration$meta$declaration;function $init$GenericDeclaration$meta$declaration(){if(GenericDeclaration$meta$declaration.$$===undefined){initTypeProtoI(GenericDeclaration$meta$declaration,'ceylon.language.meta.declaration::GenericDeclaration');
(function(genericDeclaration$){genericDeclaration$.$prop$getTypeParameterDeclarations={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:TypeParameter$meta$declaration}}},$cont:GenericDeclaration$meta$declaration,pa:5,an:function(){return[doc("The list of type parameters declared on this generic declaration.")];},d:['ceylon.language.meta.declaration','GenericDeclaration','$at','typeParameterDeclarations']};}};genericDeclaration$.getTypeParameterDeclaration={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:TypeParameter$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:GenericDeclaration$meta$declaration,pa:5,an:function(){return[doc("Finds a type parameter by name. Returns `null` if not found.")];},d:['ceylon.language.meta.declaration','GenericDeclaration','$m','getTypeParameterDeclaration']};}};})(GenericDeclaration$meta$declaration.$$.prototype);}
return GenericDeclaration$meta$declaration;}
ex$.$init$GenericDeclaration$meta$declaration=$init$GenericDeclaration$meta$declaration;$init$GenericDeclaration$meta$declaration();atr$(GenericDeclaration$meta$declaration.$$.prototype,'typeParameterDeclarations',function(){
if (this.tipo) {
var mm=getrtmm$$(this.tipo);
var tps=mm.tp;
if (tps) {
var rv=[];
for (var tp in tps) {
rv.push(OpenTypeParam$jsint(this.tipo,tp));
}
return rv.$sa$({t:TypeParameter$meta$declaration});
}
return empty();
}
console.log("TODO GenericDeclaration.typeParameterDeclarations without a type");
return empty();
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:TypeParameter$meta$declaration}}},$cont:GenericDeclaration,an:function(){return[shared(),actual()];},d:['ceylon.language.meta.declaration','GenericDeclaration','$at','typeParameterDeclarations']};});
GenericDeclaration$meta$declaration.$$.prototype.getTypeParameterDeclaration=function (name$14){
if (this.tipo) {
var mm=getrtmm$$(this.tipo);
var tps=mm.tp;
if (tps) {
for (var tp in tps) {
var tpnm = tp;
if (tp.indexOf('$')>0)tpnm=tp.substring(0,tp.indexOf('$'));
if (name$14==tpnm) {
return OpenTypeParam$jsint(this.tipo,tp);
}
}
}
return null;
}
console.log("TODO GenericDeclaration.getTypeParameterDeclaration(" + name$14 + ") without a type");
return null;
};
GenericDeclaration$meta$declaration.$$.prototype.getTypeParameterDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{ t:'u', l:[{t:Null},{t:TypeParameter$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:GenericDeclaration,an:function(){return[shared(),actual()];},d:['ceylon.language.meta.declaration','GenericDeclaration','$m','getTypeParameterDeclaration']};};
function ClassOrInterfaceDeclaration$meta$declaration(classOrInterfaceDeclaration$){NestableDeclaration$meta$declaration(classOrInterfaceDeclaration$);GenericDeclaration$meta$declaration(classOrInterfaceDeclaration$);}
ClassOrInterfaceDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:NestableDeclaration$meta$declaration},{t:GenericDeclaration$meta$declaration}],of:[{t:ClassDeclaration$meta$declaration},{t:InterfaceDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassOrInterfaceDeclaration')];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration']};};
ex$.ClassOrInterfaceDeclaration$meta$declaration=ClassOrInterfaceDeclaration$meta$declaration;function $init$ClassOrInterfaceDeclaration$meta$declaration(){if(ClassOrInterfaceDeclaration$meta$declaration.$$===undefined){initTypeProtoI(ClassOrInterfaceDeclaration$meta$declaration,'ceylon.language.meta.declaration::ClassOrInterfaceDeclaration',$init$NestableDeclaration$meta$declaration(),$init$GenericDeclaration$meta$declaration());
(function(classOrInterfaceDeclaration$){classOrInterfaceDeclaration$.$prop$getExtendedType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:OpenClassType$meta$declaration}]},$cont:ClassOrInterfaceDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassOrInterfaceDeclaration:$at:extendedType')];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$at','extendedType']};}};classOrInterfaceDeclaration$.$prop$getSatisfiedTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenInterfaceType$meta$declaration}}},$cont:ClassOrInterfaceDeclaration$meta$declaration,pa:5,an:function(){return[doc("The list of types satisfied by this type.")];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$at','satisfiedTypes']};}};classOrInterfaceDeclaration$.$prop$getCaseTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:ClassOrInterfaceDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassOrInterfaceDeclaration:$at:caseTypes')];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$at','caseTypes']};}};classOrInterfaceDeclaration$.$prop$getIsAlias={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ClassOrInterfaceDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassOrInterfaceDeclaration:$at:isAlias')];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$at','isAlias']};}};classOrInterfaceDeclaration$.memberDeclarations={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$memberDeclarations'}},ps:[],$cont:ClassOrInterfaceDeclaration$meta$declaration,tp:{Kind$memberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassOrInterfaceDeclaration:$m:memberDeclarations')];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','memberDeclarations']};}};classOrInterfaceDeclaration$.declaredMemberDeclarations={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$declaredMemberDeclarations'}},ps:[],$cont:ClassOrInterfaceDeclaration$meta$declaration,tp:{Kind$declaredMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassOrInterfaceDeclaration:$m:declaredMemberDeclarations')];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','declaredMemberDeclarations']};}};classOrInterfaceDeclaration$.annotatedMemberDeclarations={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$annotatedMemberDeclarations'}},ps:[],$cont:ClassOrInterfaceDeclaration$meta$declaration,tp:{Kind$annotatedMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation$annotatedMemberDeclarations:{sts:[{t:Annotation}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassOrInterfaceDeclaration:$m:annotatedMemberDeclarations')];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','annotatedMemberDeclarations']};}};classOrInterfaceDeclaration$.annotatedDeclaredMemberDeclarations={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$annotatedDeclaredMemberDeclarations'}},ps:[],$cont:ClassOrInterfaceDeclaration$meta$declaration,tp:{Kind$annotatedDeclaredMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation$annotatedDeclaredMemberDeclarations:{sts:[{t:Annotation}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassOrInterfaceDeclaration:$m:annotatedDeclaredMemberDeclarations')];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','annotatedDeclaredMemberDeclarations']};}};classOrInterfaceDeclaration$.getMemberDeclaration={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Kind$getMemberDeclaration']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:ClassOrInterfaceDeclaration$meta$declaration,tp:{Kind$getMemberDeclaration:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassOrInterfaceDeclaration:$m:getMemberDeclaration')];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','getMemberDeclaration']};}};classOrInterfaceDeclaration$.getDeclaredMemberDeclaration={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Kind$getDeclaredMemberDeclaration']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:ClassOrInterfaceDeclaration$meta$declaration,tp:{Kind$getDeclaredMemberDeclaration:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassOrInterfaceDeclaration:$m:getDeclaredMemberDeclaration')];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','getDeclaredMemberDeclaration']};}};classOrInterfaceDeclaration$.$_apply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$apply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:ClassOrInterfaceDeclaration$meta$declaration,tp:{Type$apply:{def:{t:Anything}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassOrInterfaceDeclaration:$m:apply'),$_throws("IncompatibleTypeException","If the specified `Type` type argument is not compatible with the actual result."),$_throws("TypeApplicationException","If the specified closed type argument values are not compatible \nwith the actual result\'s type parameters.")];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','apply']};}};classOrInterfaceDeclaration$.memberApply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'i',l:[{t:Member$meta$model,a:{Kind$Member:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$memberApply'}},Container$Member:'Container$memberApply'}},{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$memberApply'}}]},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:ClassOrInterfaceDeclaration$meta$declaration,tp:{Container$memberApply:{def:{t:Nothing}},Type$memberApply:{def:{t:Anything}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassOrInterfaceDeclaration:$m:memberApply'),$_throws("IncompatibleTypeException","If the specified `Container` or `Type` type arguments are not \ncompatible with the actual result."),$_throws("TypeApplicationException","If the specified closed container type or type argument values \nare not compatible with the actual result\'s container type or \ntype parameters.")];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','memberApply']};}};})(ClassOrInterfaceDeclaration$meta$declaration.$$.prototype);}
return ClassOrInterfaceDeclaration$meta$declaration;}
ex$.$init$ClassOrInterfaceDeclaration$meta$declaration=$init$ClassOrInterfaceDeclaration$meta$declaration;$init$ClassOrInterfaceDeclaration$meta$declaration();function FunctionalDeclaration$meta$declaration(functionalDeclaration$){GenericDeclaration$meta$declaration(functionalDeclaration$);functionalDeclaration$.memberInvoke$defs$typeArguments=function($1ls,$1lt,$1lu){return empty();};}
FunctionalDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:GenericDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:FunctionalDeclaration')];},d:['ceylon.language.meta.declaration','FunctionalDeclaration']};};
ex$.FunctionalDeclaration$meta$declaration=FunctionalDeclaration$meta$declaration;function $init$FunctionalDeclaration$meta$declaration(){if(FunctionalDeclaration$meta$declaration.$$===undefined){initTypeProtoI(FunctionalDeclaration$meta$declaration,'ceylon.language.meta.declaration::FunctionalDeclaration',$init$GenericDeclaration$meta$declaration());
(function(functionalDeclaration$){functionalDeclaration$.$prop$getAnnotation={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunctionalDeclaration$meta$declaration,pa:5,an:function(){return[doc("True if the current declaration is an annotation class or function.")];},d:['ceylon.language.meta.declaration','FunctionalDeclaration','$at','annotation']};}};functionalDeclaration$.$prop$getParameterDeclarations={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:FunctionOrValueDeclaration$meta$declaration}}},$cont:FunctionalDeclaration$meta$declaration,pa:5,an:function(){return[doc("The list of parameter declarations for this functional declaration.")];},d:['ceylon.language.meta.declaration','FunctionalDeclaration','$at','parameterDeclarations']};}};functionalDeclaration$.getParameterDeclaration={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:FunctionOrValueDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:FunctionalDeclaration$meta$declaration,pa:5,an:function(){return[doc("Gets a parameter declaration by name. Returns `null` if no such parameter exists.")];},d:['ceylon.language.meta.declaration','FunctionalDeclaration','$m','getParameterDeclaration']};}};functionalDeclaration$.$_apply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'i',l:[{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:'Arguments$apply',Type$FunctionModel:'Return$apply'}},{t:Applicable$meta$model,a:{Arguments$Applicable:'Arguments$apply',Type$Applicable:'Return$apply'}}]},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:FunctionalDeclaration$meta$declaration,tp:{Return$apply:{def:{t:Anything}},Arguments$apply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:FunctionalDeclaration:$m:apply'),$_throws("IncompatibleTypeException","If the specified `Return` or `Arguments` type arguments are not compatible with the actual result."),$_throws("TypeApplicationException","If the specified closed type argument values are not compatible with the actual result\'s type parameters.")];},d:['ceylon.language.meta.declaration','FunctionalDeclaration','$m','apply']};}};functionalDeclaration$.memberApply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'i',l:[{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:'Arguments$memberApply',Type$FunctionModel:'Return$memberApply'}},{t:Qualified$meta$model,a:{Container$Qualified:'Container$memberApply',Kind$Qualified:{t:FunctionModel$meta$model,a:{Arguments$FunctionModel:'Arguments$memberApply',Type$FunctionModel:'Return$memberApply'}}}}]},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:FunctionalDeclaration$meta$declaration,tp:{Container$memberApply:{def:{t:Nothing}},Return$memberApply:{def:{t:Anything}},Arguments$memberApply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:FunctionalDeclaration:$m:memberApply'),$_throws("IncompatibleTypeException","If the specified `Container`, `Return` or `Arguments` type arguments are not compatible with the actual result."),$_throws("TypeApplicationException","If the specified closed container type or type argument values are not compatible with the actual result\'s container type or type parameters.")];},d:['ceylon.language.meta.declaration','FunctionalDeclaration','$m','memberApply']};}};functionalDeclaration$.invoke$defs$typeArguments=function($1lv,$1lw){return empty();};functionalDeclaration$.invoke=function($1lv,$1lw){var functionalDeclaration$=this;if($1lv===undefined){$1lv=empty();}
if($1lw===undefined){$1lw=empty();}
return functionalDeclaration$.$_apply($1lv,{Arguments$apply:{t:Nothing},Return$apply:{t:Anything}}).$_apply($1lw);};functionalDeclaration$.invoke.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'typeArguments',mt:'prm',def:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}},{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:FunctionalDeclaration$meta$declaration,pa:9,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:FunctionalDeclaration:$m:invoke'),$_throws($init$openClass$jsint()(lmp$(ex$,'ceylon.language.meta.model'),IncompatibleTypeException$meta$model),"If the specified type or value arguments are not compatible with this toplevel function.")];},d:['ceylon.language.meta.declaration','FunctionalDeclaration','$m','invoke']};};functionalDeclaration$.memberInvoke={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}},{nm:'typeArguments',mt:'prm',def:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}},{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:FunctionalDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:FunctionalDeclaration:$m:memberInvoke'),$_throws("IncompatibleTypeException","If the specified container, type or value arguments are not compatible with this method.")];},d:['ceylon.language.meta.declaration','FunctionalDeclaration','$m','memberInvoke']};}};})(FunctionalDeclaration$meta$declaration.$$.prototype);}
return FunctionalDeclaration$meta$declaration;}
ex$.$init$FunctionalDeclaration$meta$declaration=$init$FunctionalDeclaration$meta$declaration;$init$FunctionalDeclaration$meta$declaration();function openClass$jsint(pkg,meta,that) {
if (meta===undefined)throw new Error("Class reference not found. Metamodel doesn't work with modules compiled in lexical scope style");
var _mm=getrtmm$$(meta);
var meta_,tipo;
if (_mm === undefined) {
meta_=meta;
tipo=_findTypeFromModel(pkg,meta);
_mm = getrtmm$$(tipo);
} else {
tipo=meta;
meta_=get_model(_mm);
}
return (meta_&&meta_.$cn?OpenClassWithConstructors$jsint:OpenClassWithInitializer$jsint)(pkg,meta,that);
}
ex$.openClass$jsint=openClass$jsint;
function $init$openClass$jsint(){
$init$OpenClassWithInitializer$jsint();
$init$OpenClassWithConstructors$jsint();
return openClass$jsint;
}
ex$.$init$openClass$jsint=$init$openClass$jsint;
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.getMemberDeclaration=function(name$20,$$$mptypes,noInherit){
var _m=undefined;
var raiz;
if (this.tipo.$$ && this.tipo.$$.prototype) {
raiz=this.tipo.$$.prototype;
} else {
raiz = this.tipo();
}
var kind=$$$mptypes.Kind$getMemberDeclaration;
if (extendsType({t:ValueDeclaration$meta$declaration}, kind)
|| extendsType({t:SetterDeclaration$meta$declaration}, kind)) {
var wantsSetter = !extendsType({t:ValueDeclaration$meta$declaration}, kind)
&& extendsType({t:SetterDeclaration$meta$declaration}, kind);
var escapedName = escapePropertyName$(name$20);
var propname=getValuePropertyName$(escapedName);
var _d = raiz[propname];
if (_d===undefined && noInherit) {
for (nsats in raiz) if (nsats.substring(0,10)==='$prop$get$') {
var atmm=getrtmm$$(raiz[nsats]);
if (atmm.d && atmm.d[atmm.d.length-1].substring(0,name$20.length+1)===name$20+'$') {
_d=raiz[nsats];
break;
}
}
}
if(_d){
var mm=getrtmm$$(_d);
if(rejectInheritedOrPrivate$(mm, this.tipo, noInherit))
_d = undefined;
}
if(_d) {
var _$m = getrtmm$$(_d);
var _mdl=get_model(_$m);
if (!_mdl) {
console.log("ClassOrInterfaceDeclaration.getMemberDeclaration: no model for",_d,"metamodel",_$m);
} else {
if(wantsSetter && _mdl.$set === undefined) {
_d = undefined; // we have no setter to return
}
var isval=_mdl.mt==='g'||_mdl.mt==='o';
if (!wantsSetter && isval && !extendsType({t:ValueDeclaration$meta$declaration}, kind))
_d = undefined;
if(_d){
_m=OpenValue$jsint(this.containingPackage, _d);
if(wantsSetter)
_m=_m.setter;
}
}
}
}
if (!_m && extendsType({t:FunctionDeclaration$meta$declaration}, kind)) {
var _d = findMethodByNameFromPrototype$(raiz, name$20);
if(_d){
var mm=getrtmm$$(_d);
if(rejectInheritedOrPrivate$(mm, this.tipo, noInherit))
_d = undefined;
if(_d)
_m=OpenFunction$jsint(this.containingPackage, _d);
}
}
if (!_m
&& (extendsType({t:InterfaceDeclaration$meta$declaration}, kind)
|| extendsType({t:ClassWithConstructorsDeclaration$meta$declaration}, kind)
|| extendsType({t:ClassWithInitializerDeclaration$meta$declaration}, kind))) {
var nom=name$20+'$'+this.name;
var _d = raiz[nom];
if (_d===undefined) {
for (var $k in raiz) {
var propname='$prop$get'+$k[0].toUpperCase()+$k.substring(1);
var m$ = raiz[propname] ? undefined: raiz[$k];
_d = typeof(m$)==='function' && m$.$$ ? getrtmm$$(m$) : undefined;
if (_d && _d.d && _d.d[_d.d.length-1]===nom){
_d = raiz[$k];
break;
}else _d=undefined;
}
}
if (!_d) {
if (noInherit)return null;
var pere=this.tipo.$crtmm$['super'];
while (!_d && pere) {
var mm=getrtmm$$(pere.t);
nom=mm&&mm.d?name$20+'$'+mm.d[mm.d.length-1]:undefined;
if(nom)_d=raiz[nom];
if (!_d)pere=mm['super'];
}
}
if(_d){
var wantsClass=extendsType({t:ClassWithConstructorsDeclaration$meta$declaration}, kind)
|| extendsType({t:ClassWithInitializerDeclaration$meta$declaration}, kind);
var wantsIface=extendsType({t:InterfaceDeclaration$meta$declaration},kind);
var _$m = getrtmm$$(_d);
var _mdl=get_model(_$m);
if (wantsClass && _mdl.mt==='c') {
var hasConstructor = _mdl.$cn;
if (hasConstructor && !extendsType({t:ClassWithConstructorsDeclaration$meta$declaration},kind)) {
return null;
}
if (!hasConstructor && !extendsType({t:ClassWithInitializerDeclaration$meta$declaration},kind)) {
return null;
}
_m=openClass$jsint(this.containingPackage, _d);
}else if(wantsIface && _mdl.mt=='i'){
_m=OpenInterface$jsint(this.containingPackage, _d);
}else{
return null;
}
}
}
if (_m) {
_m.$parent=this;
return _m;
}
return null;
};
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.getMemberDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{ t:'u', l:[{t:Null},'Kind']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:ClassOrInterfaceDeclaration,tp:{Kind:{sts:[{t:NestableDeclaration$meta$declaration}]}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','getMemberDeclaration']};};
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.getDeclaredMemberDeclaration=function(nm,$mptypes){
return this.getMemberDeclaration(nm,{Kind$getMemberDeclaration:$mptypes.Kind$getDeclaredMemberDeclaration},1);
}
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.getDeclaredMemberDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{ t:'u', l:[{t:Null},'Kind']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:ClassOrInterfaceDeclaration,tp:{Kind:{sts:[{t:NestableDeclaration$meta$declaration}]}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','getDeclaredMemberDeclaration']};};
atr$(FunctionalDeclaration$meta$declaration.$$.prototype,'parameterDeclarations',function(){
if (this.params$$!==undefined)return this.params$$;
var that=this;
var parms = that.tipo.$crtmm$.ps;
if (!parms || parms.length === 0)return empty();
var rv = [];
for (var i=0; i<parms.length;i++) {
var p = parms[i];
if (p.$pt === 'f') {
rv.push(FunParamDecl(this,p));
} else {
rv.push(ValParamDecl$jsint(this,p));
}
}
this.params$$=rv.$sa$({t:FunctionOrValueDeclaration$meta$declaration});
return this.params$$;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:FunctionOrValueDeclaration$meta$declaration}}},$cont:FunctionalDeclaration$meta$declaration,an:function(){return[shared(),formal()];},d:['ceylon.language.meta.declaration','FunctionalDeclaration','$at','parameterDeclarations']};});
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.memberDeclarations=function memberDeclarations($$$mptypes,inherited){
var defs=[];
var _prot=this.tipo && this.tipo.$$ && this.tipo.$$.prototype;
if (_prot) {
var props = Object.getOwnPropertyNames(_prot);
function isProp(mem) {
return _prot['$prop$get' + mem[0].toUpperCase() + mem.substring(1)]!==undefined;
}
var cdec={t:'u',l:[{t:ClassWithInitializerDeclaration$meta$declaration},{t:ClassWithConstructorsDeclaration$meta$declaration}]};
var kind=$$$mptypes.Kind$memberDeclarations;
for (var mem in _prot) {
if (isProp(mem))continue;
var _d = undefined;
var _d2 = undefined;
var mm=getrtmm$$(_prot[mem]);
if (mm && inherited && mm.$cont!==this.tipo)continue;
if (mem.substring(0,9)==='$prop$get'
&& (extendsType({t:ValueDeclaration$meta$declaration}, kind)
|| extendsType({t:SetterDeclaration$meta$declaration}, kind))) {
var wantsValue = extendsType({t:ValueDeclaration$meta$declaration}, kind);
var wantsSetter = extendsType({t:SetterDeclaration$meta$declaration}, kind);
var _nom=mm.d[mm.d.length-1];
var _idx=_nom.indexOf('$');
if (_idx>0)_nom=_nom.substring(0,_idx);
_d=this.getMemberDeclaration(_nom,{Kind$getMemberDeclaration:kind},inherited);
if(_d && wantsValue && wantsSetter){
_d2 = _d.setter;
}
} else if (_prot[mem].$$
&& (extendsType({t:ClassWithInitializerDeclaration$meta$declaration},kind)
|| extendsType({t:ClassWithConstructorsDeclaration$meta$declaration},kind)
|| extendsType({t:InterfaceDeclaration$meta$declaration},kind))) {
var mt=mm.d[mm.d.length-2];
if ((mt==='$c' && !extendsType(cdec,kind))
||(mt==='$i' && !extendsType({t:InterfaceDeclaration$meta$declaration},kind)))continue;
var _nom=mm.d[mm.d.length-1];
if(_nom.indexOf("$") > -1)
_nom = _nom.substring(0, _nom.indexOf("$"));
_d=this.getMemberDeclaration(_nom,{Kind$getMemberDeclaration:kind},inherited);
} else if(mm && mm.d) {
var mt=mm.d[mm.d.length-2];
if (mt === '$m' && extendsType({t:FunctionDeclaration$meta$declaration},kind)) {
_d=this.getMemberDeclaration(mm.d[mm.d.length-1],{Kind$getMemberDeclaration:kind},inherited);
}
}
if (_d){_d.parent$=this;defs.push(_d);};
if (_d2){_d2.parent$=this;defs.push(_d2);};
}
return defs.$sa$(kind);
}
var funorvals=extendsType({t:FunctionOrValueDeclaration$meta$declaration},kind);
var funs=funorvals||extendsType({t:FunctionDeclaration$meta$declaration},kind);
var vals=funorvals||extendsType({t:ValueDeclaration$meta$declaration},kind);
if (funs) {
for (var df in this.meta['$m']) {
defs.push(this.meta['$m'][df]);
}
}
if (vals) {
for (var df in this.meta['$at']) {
defs.push(this.meta['$at'][df]);
}
}
if (extendsType({t:InterfaceDeclaration$meta$declaration},kind)) {
for (var df in this.meta['$i']) {
defs.push(this.meta['$i'][df]);
}
}
if (extendsType(cdec,kind)) {
for (var df in this.meta['$c']) {
defs.push(this.meta['$c'][df]);
}
}
var pkg = this.containingPackage;
var r=[];
for (var i=0; i<defs.length; i++) {
var m=defs[i];
var mt = m['mt'];
var _d;
if (mt === 'm') {
_d=this.getMemberDeclaration(m.nm, {Kind$getMemberDeclaration:{t:FunctionDeclaration$meta$declaration}});
} else if (mt==='c') {
_d=this.getMemberDeclaration(m.nm, {Kind$getMemberDeclaration:{t:ClassDeclaration$meta$declaration}});
if (!is$(_d,kind))_d=null;
} else if (mt==='i') {
_d=this.getMemberDeclaration(m.nm, {Kind$getMemberDeclaration:{t:InterfaceDeclaration$meta$declaration}});
} else if (mt==='g'||mt==='o'||mt==='a'||mt==='s') {
_d=this.getMemberDeclaration(m.nm, {Kind$getMemberDeclaration:{t:ValueDeclaration$meta$declaration}});
}
if (_d) {
_d.$parent=this;
r.push(_d);
}
}
return r.$sa$(kind);
};
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.memberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind'}},ps:[],$cont:ClassOrInterfaceDeclaration,tp:{Kind:{sts:[{t:NestableDeclaration$meta$declaration}]}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','memberDeclarations']};};
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.declaredMemberDeclarations=function(m) {
return this.memberDeclarations({Kind$memberDeclarations:m.Kind$declaredMemberDeclarations},1);
}
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.declaredMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind'}},ps:[],$cont:ClassOrInterfaceDeclaration,tp:{Kind:{sts:[{t:NestableDeclaration$meta$declaration}]}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','declaredMemberDeclarations']};};
atr$(ClassOrInterfaceDeclaration$meta$declaration.$$.prototype,'caseTypes',function(){
var casos = this.tipo.$crtmm$.of;
if (casos && casos.length > 0) {
var ct=[]; var ta=[];
for (var i=0; i < casos.length; i++) {
if (typeof(casos[i])==='string') {
ct.push(OpenTvar$jsint(OpenTypeParam$jsint(this, casos[i])));
if (!ta.contains(OpenTypeVariable$meta$declaration))ta.push(OpenTypeVariable$meta$declaration);
} else {
var _t=casos[i];
if (typeof(_t)==='function')_t=getrtmm$$(_t).$t;
var ot=_openTypeFromTarg(_t);
ct.push(ot);
if (is$(ot,{t:OpenClassType$meta$declaration}) && !ta.contains(OpenClassType$meta$declaration))ta.push(OpenClassType$meta$declaration);
else if (is$(ot,{t:OpenInterfaceType$meta$declaration})&&!ta.contains(OpenInterfaceType$meta$declaration))ta.push(OpenInterfaceType$meta$declaration);
}
}
if (ta.length===0)ta={t:OpenType$meta$declaration};
else if (ta.length===1)ta={t:ta[0]};
else {
for (var i=0;i<ta.length;i++)ta[i]={t:ta[i]};
ta={t:'u',l:ta};
}
return ct.$sa$(ta);
}
return empty();
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:ClassOrInterfaceDeclaration$meta$declaration,an:function(){return[shared(),formal()];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$at','caseTypes']};});
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.$_apply=function(types,$mptypes){
var _t = {t:this.tipo};
var _m = getrtmm$$(this.tipo);
validate$typeparams(_t,_m.tp,types);
if (!extendsType(_t, $mptypes.Type$apply))
throw IncompatibleTypeException$meta$model("ClassOrInterface<"+this.name+"> is not compatible with expected type: ClassOrInterface<" + qname$($mptypes.Type$apply)+">. Try passing the type argument explicitly with: apply<" + this.name+">");
if ($mptypes.Type$apply.a)_t.a=$mptypes.Type$apply.a;
var rv=this.meta.mt==='i'?AppliedInterface$jsint(_t.t, {Type$AppliedInterface:_t}):
AppliedClass$jsint(_t.t, {Type$AppliedClass:_t,Arguments$AppliedClass:$mptypes.Arguments$apply});
if (_t.a)rv.$targs=_t.a;
return rv;
}
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.$_apply.$crtmm$=function(){return{mod:$CCMM$,d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','apply']};};
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.memberApply=function(cont, types,$mptypes) {
var mm=getrtmm$$(this.tipo);
if (!extendsType({t:cont.tipo},{t:mm.$cont}))throw IncompatibleTypeException$meta$model("Incompatible Container type");
var _t = {t:this.tipo};
if ($mptypes.Type$memberApply.a)_t.a=$mptypes.Type$memberApply.a;
validate$typeparams(_t,mm.tp,types);
if (!extendsType(_t, $mptypes.Type$memberApply))
throw IncompatibleTypeException$meta$model("Type argument for 'Type' must be a supertype of " + this.string);
var rv=this.meta.mt==='i'?AppliedMemberInterface$jsint(_t.t, {Container$AppliedMemberInterface:$mptypes.Container$memberApply, Type$AppliedMemberInterface:_t})
:AppliedMemberClass$jsint(_t.t, {Container$AppliedMemberClass:$mptypes.Container$memberApply, Type$AppliedMemberClass:_t, Arguments$AppliedMemberClass:$mptypes.Arguments$memberApply});
if (_t.a)rv.$targs=_t.a;
return rv;
};ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.memberApply.$crtmm$=function(){return{mod:$CCMM$,d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','memberApply']};};
atr$(ClassOrInterfaceDeclaration$meta$declaration.$$.prototype,'container',function(){
if (this.$parent)return this.$parent;
var mm=getrtmm$$(this.tipo);
var _c=mm.$cont;
if (_c===0)return this.containingPackage;
if (_c) {
if (_c.t === undefined && _c.get && _c.$crtmm$) {
return OpenValue$jsint(this.containingPackage, _c);
}
return typeLiteral$meta({Type$typeLiteral:_c});
}
return this.containingPackage;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:NestableDeclaration$meta$declaration},{t:Package$meta$declaration}]},d:['ceylon.language.meta.declaration.NestableDeclaration','$at','container']};});
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.annotatedMemberDeclarations=function($$$mptypes,inherited){
var list=this.memberDeclarations({Kind$memberDeclarations:$$$mptypes.Kind$annotatedMemberDeclarations},inherited);
if (list.size>0) {
var rv=[];
var bits = getAnnotationBitmask($$$mptypes.Annotation$annotatedMemberDeclarations);
for (var i=0; i < list.size; i++) {
var mm = getrtmm$$(list.$_get(i).tipo);
if (mm.pa&bits) {
rv.push(list.$_get(i));
continue;
}
var anns = mm&&mm.an;
if (typeof(anns)==='function'){anns=anns();mm.an=anns;}
if (anns) for (var j=0; j<anns.length; j++) {
if (is$(anns[j],$$$mptypes.Annotation$annotatedMemberDeclarations)) {
rv.push(list.$_get(i));
break;
}
}
}
if (rv.length)return rv.$sa$($$$mptypes.Kind$annotatedMemberDeclarations);
}
return empty();
};
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.annotatedMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind'}},ps:[],$cont:ClassOrInterfaceDeclaration$meta$declarationl,tp:{Kind:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation:{}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','annotatedMemberDeclarations']};};
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.annotatedDeclaredMemberDeclarations=function ($$$mptypes){
return this.annotatedMemberDeclarations({Kind$annotatedMemberDeclarations:$$$mptypes.Kind$annotatedDeclaredMemberDeclarations,
Annotation$annotatedMemberDeclarations:$$$mptypes.Annotation$annotatedDeclaredMemberDeclarations},1);
};
ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.annotatedDeclaredMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind'}},ps:[],$cont:ClassOrInterfaceDeclaration$meta$declarationl,tp:{Kind:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation:{}},an:function(){return[shared(),actual()];},d:['ceylon.language.meta.declaration','ClassOrInterfaceDeclaration','$m','annotatedDeclaredMemberDeclarations']};};
function annd$annotations(that,$$$mptypes) {
var mdl = getrtmm$$(that.tipo)||that.meta;
var _ans = allann$(mdl);
var ans=[];
for (var i=0; i<_ans.length;i++) {
if (is$(_ans[i], $$$mptypes.Annotation$annotations)) {
ans.push(_ans[i]);
}
}
return ans.$sa$($$$mptypes.Annotation$annotations);
}
function AliasDeclaration$meta$declaration(aliasDeclaration$){NestableDeclaration$meta$declaration(aliasDeclaration$);GenericDeclaration$meta$declaration(aliasDeclaration$);}
AliasDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:NestableDeclaration$meta$declaration},{t:GenericDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:AliasDeclaration')];},d:['ceylon.language.meta.declaration','AliasDeclaration']};};
ex$.AliasDeclaration$meta$declaration=AliasDeclaration$meta$declaration;function $init$AliasDeclaration$meta$declaration(){if(AliasDeclaration$meta$declaration.$$===undefined){initTypeProtoI(AliasDeclaration$meta$declaration,'ceylon.language.meta.declaration::AliasDeclaration',$init$NestableDeclaration$meta$declaration(),$init$GenericDeclaration$meta$declaration());
(function(aliasDeclaration$){aliasDeclaration$.$prop$getExtendedType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:AliasDeclaration$meta$declaration,pa:5,an:function(){return[doc("The open type that is substituted by this type alias.")];},d:['ceylon.language.meta.declaration','AliasDeclaration','$at','extendedType']};}};})(AliasDeclaration$meta$declaration.$$.prototype);}
return AliasDeclaration$meta$declaration;}
ex$.$init$AliasDeclaration$meta$declaration=$init$AliasDeclaration$meta$declaration;$init$AliasDeclaration$meta$declaration();function AnnotatedDeclaration$meta$declaration(annotatedDeclaration$){Declaration$meta$declaration(annotatedDeclaration$);Annotated(annotatedDeclaration$);}
AnnotatedDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:Declaration$meta$declaration},{t:Annotated}],of:[{t:NestableDeclaration$meta$declaration},{t:Module$meta$declaration},{t:Package$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:AnnotatedDeclaration')];},d:['ceylon.language.meta.declaration','AnnotatedDeclaration']};};
ex$.AnnotatedDeclaration$meta$declaration=AnnotatedDeclaration$meta$declaration;function $init$AnnotatedDeclaration$meta$declaration(){if(AnnotatedDeclaration$meta$declaration.$$===undefined){initTypeProtoI(AnnotatedDeclaration$meta$declaration,'ceylon.language.meta.declaration::AnnotatedDeclaration',$init$Declaration$meta$declaration(),$init$Annotated());
(function(annotatedDeclaration$){annotatedDeclaration$.annotations={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Annotation$annotations'}},ps:[],$cont:AnnotatedDeclaration$meta$declaration,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:AnnotatedDeclaration:$m:annotations')];},d:['ceylon.language.meta.declaration','AnnotatedDeclaration','$m','annotations']};}};})(AnnotatedDeclaration$meta$declaration.$$.prototype);}
return AnnotatedDeclaration$meta$declaration;}
ex$.$init$AnnotatedDeclaration$meta$declaration=$init$AnnotatedDeclaration$meta$declaration;$init$AnnotatedDeclaration$meta$declaration();function CallableConstructorDeclaration$meta$declaration(callableConstructorDeclaration$){FunctionalDeclaration$meta$declaration(callableConstructorDeclaration$);ConstructorDeclaration$meta$declaration(callableConstructorDeclaration$);}
CallableConstructorDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:FunctionalDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:CallableConstructorDeclaration'),see([$init$OpenInterface$jsint()(lmp$(ex$,'ceylon.language.meta.declaration'),ValueConstructorDeclaration$meta$declaration)].$sa$({t:InterfaceDeclaration$meta$declaration}))];},d:['ceylon.language.meta.declaration','CallableConstructorDeclaration']};};
ex$.CallableConstructorDeclaration$meta$declaration=CallableConstructorDeclaration$meta$declaration;function $init$CallableConstructorDeclaration$meta$declaration(){if(CallableConstructorDeclaration$meta$declaration.$$===undefined){initTypeProtoI(CallableConstructorDeclaration$meta$declaration,'ceylon.language.meta.declaration::CallableConstructorDeclaration',$init$FunctionalDeclaration$meta$declaration(),$init$ConstructorDeclaration$meta$declaration());
(function(callableConstructorDeclaration$){callableConstructorDeclaration$.$prop$getAbstract={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:CallableConstructorDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:CallableConstructorDeclaration:$at:abstract')];},d:['ceylon.language.meta.declaration','CallableConstructorDeclaration','$at','abstract']};}};callableConstructorDeclaration$.$prop$getDefaultConstructor={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:CallableConstructorDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:CallableConstructorDeclaration:$at:defaultConstructor')];},d:['ceylon.language.meta.declaration','CallableConstructorDeclaration','$at','defaultConstructor']};}};callableConstructorDeclaration$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ClassDeclaration$meta$declaration},$cont:CallableConstructorDeclaration$meta$declaration,pa:7,an:function(){return[doc("The class this constructor constructs")];},d:['ceylon.language.meta.declaration','CallableConstructorDeclaration','$at','container']};}};callableConstructorDeclaration$.invoke={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Object},ps:[{nm:'typeArguments',mt:'prm',def:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}},{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:CallableConstructorDeclaration$meta$declaration,pa:7,d:['ceylon.language.meta.declaration','CallableConstructorDeclaration','$m','invoke']};}};callableConstructorDeclaration$.memberInvoke={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Object},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}},{nm:'typeArguments',mt:'prm',def:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}},{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:CallableConstructorDeclaration$meta$declaration,pa:7,d:['ceylon.language.meta.declaration','CallableConstructorDeclaration','$m','memberInvoke']};}};callableConstructorDeclaration$.$_apply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$apply',Type$CallableConstructor:'Result$apply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:CallableConstructorDeclaration$meta$declaration,tp:{Result$apply:{def:{t:$_Object}},Arguments$apply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:CallableConstructorDeclaration:$m:apply')];},d:['ceylon.language.meta.declaration','CallableConstructorDeclaration','$m','apply']};}};callableConstructorDeclaration$.memberApply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:MemberClassCallableConstructor$meta$model,a:{Type$MemberClassCallableConstructor:'Result$memberApply',Arguments$MemberClassCallableConstructor:'Arguments$memberApply',Container$MemberClassCallableConstructor:'Container$memberApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:CallableConstructorDeclaration$meta$declaration,tp:{Container$memberApply:{def:{t:Nothing}},Result$memberApply:{def:{t:$_Object}},Arguments$memberApply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:CallableConstructorDeclaration:$m:memberApply')];},d:['ceylon.language.meta.declaration','CallableConstructorDeclaration','$m','memberApply']};}};})(CallableConstructorDeclaration$meta$declaration.$$.prototype);}
return CallableConstructorDeclaration$meta$declaration;}
ex$.$init$CallableConstructorDeclaration$meta$declaration=$init$CallableConstructorDeclaration$meta$declaration;$init$CallableConstructorDeclaration$meta$declaration();function ClassDeclaration$meta$declaration(classDeclaration$){ClassOrInterfaceDeclaration$meta$declaration(classDeclaration$);}
ClassDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:ClassOrInterfaceDeclaration$meta$declaration}],of:[{t:ClassWithInitializerDeclaration$meta$declaration},{t:ClassWithConstructorsDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration')];},d:['ceylon.language.meta.declaration','ClassDeclaration']};};
ex$.ClassDeclaration$meta$declaration=ClassDeclaration$meta$declaration;function $init$ClassDeclaration$meta$declaration(){if(ClassDeclaration$meta$declaration.$$===undefined){initTypeProtoI(ClassDeclaration$meta$declaration,'ceylon.language.meta.declaration::ClassDeclaration',$init$ClassOrInterfaceDeclaration$meta$declaration());
(function(classDeclaration$){classDeclaration$.$prop$getDefaultConstructor={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:CallableConstructorDeclaration$meta$declaration}]},$cont:ClassDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$at:defaultConstructor')];},d:['ceylon.language.meta.declaration','ClassDeclaration','$at','defaultConstructor']};}};classDeclaration$.$prop$getParameterDeclarations={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Sequential,a:{Element$Sequential:{t:FunctionOrValueDeclaration$meta$declaration}}}]},$cont:ClassDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$at:parameterDeclarations')];},d:['ceylon.language.meta.declaration','ClassDeclaration','$at','parameterDeclarations']};}};classDeclaration$.getParameterDeclaration={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:FunctionOrValueDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:ClassDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$m:getParameterDeclaration')];},d:['ceylon.language.meta.declaration','ClassDeclaration','$m','getParameterDeclaration']};}};classDeclaration$.$prop$getAnnotation={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ClassDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$at:annotation')];},d:['ceylon.language.meta.declaration','ClassDeclaration','$at','annotation']};}};classDeclaration$.$prop$getAbstract={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ClassDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$at:abstract')];},d:['ceylon.language.meta.declaration','ClassDeclaration','$at','abstract']};}};classDeclaration$.$prop$getSerializable={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ClassDeclaration$meta$declaration,pa:5,an:function(){return[doc("True if the class is serializable class.")];},d:['ceylon.language.meta.declaration','ClassDeclaration','$at','serializable']};}};classDeclaration$.$prop$getAnonymous={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ClassDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$at:anonymous')];},d:['ceylon.language.meta.declaration','ClassDeclaration','$at','anonymous']};}};classDeclaration$.$prop$getObjectValue={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ValueDeclaration$meta$declaration}]},$cont:ClassDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$at:objectValue')];},d:['ceylon.language.meta.declaration','ClassDeclaration','$at','objectValue']};}};classDeclaration$.$prop$getFinal={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ClassDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$at:final')];},d:['ceylon.language.meta.declaration','ClassDeclaration','$at','final']};}};classDeclaration$.classApply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Class$meta$model,a:{Type$Class:'Type$classApply',Arguments$Class:'Arguments$classApply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:ClassDeclaration$meta$declaration,tp:{Type$classApply:{def:{t:Anything}},Arguments$classApply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$m:classApply'),$_throws("IncompatibleTypeException","If the specified `Type` or `Arguments` type arguments are not \ncompatible with the actual result."),$_throws("TypeApplicationException","If the specified closed type argument values are not compatible \nwith the actual result\'s type parameters.")];},d:['ceylon.language.meta.declaration','ClassDeclaration','$m','classApply']};}};classDeclaration$.memberClassApply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$memberClassApply',Container$MemberClass:'Container$memberClassApply',Type$MemberClass:'Type$memberClassApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:ClassDeclaration$meta$declaration,tp:{Container$memberClassApply:{def:{t:Nothing}},Type$memberClassApply:{def:{t:Anything}},Arguments$memberClassApply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$m:memberClassApply'),$_throws("IncompatibleTypeException","If the specified `Container`, `Type` or `Arguments` type arguments \nare not compatible with the actual result."),$_throws("TypeApplicationException","If the specified closed container type or type argument values \nare not compatible with the actual result\'s container type or \ntype parameters.")];},d:['ceylon.language.meta.declaration','ClassDeclaration','$m','memberClassApply']};}};classDeclaration$.instantiate$defs$typeArguments=function($1ly,$1lz){return empty();};classDeclaration$.instantiate=function($1ly,$1lz){var classDeclaration$=this;if($1ly===undefined){$1ly=empty();}
if($1lz===undefined){$1lz=empty();}
return classDeclaration$.classApply($1ly,{Arguments$classApply:{t:Nothing},Type$classApply:{t:$_Object}}).$_apply($1lz);};classDeclaration$.instantiate.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Object},ps:[{nm:'typeArguments',mt:'prm',def:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}},{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:ClassDeclaration$meta$declaration,pa:9,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$m:instantiate'),$_throws($init$openClass$jsint()(lmp$(ex$,'ceylon.language.meta.model'),IncompatibleTypeException$meta$model),"If the specified type or value arguments are not compatible with \nthis toplevel class, or if the class lacks both a parameter list\nand a default constructor.")];},d:['ceylon.language.meta.declaration','ClassDeclaration','$m','instantiate']};};classDeclaration$.memberInstantiate$defs$typeArguments=function($1m0,$1m1,$1m2){return empty();};classDeclaration$.memberInstantiate=function($1m0,$1m1,$1m2){var classDeclaration$=this;if($1m1===undefined){$1m1=empty();}
if($1m2===undefined){$1m2=empty();}
return classDeclaration$.memberClassApply(nothingType$meta$model(),$1m1,{Type$memberClassApply:{t:$_Object},Container$memberClassApply:{t:Nothing},Arguments$memberClassApply:{t:Nothing}}).$_bind($1m0).$_apply($1m2);};classDeclaration$.memberInstantiate.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Object},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}},{nm:'typeArguments',mt:'prm',def:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}},{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:ClassDeclaration$meta$declaration,pa:9,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$m:memberInstantiate'),$_throws($init$openClass$jsint()(lmp$(ex$,'ceylon.language.meta.model'),IncompatibleTypeException$meta$model),"If the specified container, type or value arguments are not \ncompatible with this method, or if the class lacks both a parameter list\nand a default constructor.")];},d:['ceylon.language.meta.declaration','ClassDeclaration','$m','memberInstantiate']};};classDeclaration$.getConstructorDeclaration={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:'u',l:[{t:CallableConstructorDeclaration$meta$declaration},{t:ValueConstructorDeclaration$meta$declaration}]}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:ClassDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$m:getConstructorDeclaration')];},d:['ceylon.language.meta.declaration','ClassDeclaration','$m','getConstructorDeclaration']};}};classDeclaration$.constructorDeclarations={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:ConstructorDeclaration$meta$declaration}}},ps:[],$cont:ClassDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$m:constructorDeclarations')];},d:['ceylon.language.meta.declaration','ClassDeclaration','$m','constructorDeclarations']};}};classDeclaration$.annotatedConstructorDeclarations={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:ConstructorDeclaration$meta$declaration}}},ps:[],$cont:ClassDeclaration$meta$declaration,tp:{Annotation$annotatedConstructorDeclarations:{sts:[{t:Annotation}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassDeclaration:$m:annotatedConstructorDeclarations')];},d:['ceylon.language.meta.declaration','ClassDeclaration','$m','annotatedConstructorDeclarations']};}};})(ClassDeclaration$meta$declaration.$$.prototype);}
return ClassDeclaration$meta$declaration;}
ex$.$init$ClassDeclaration$meta$declaration=$init$ClassDeclaration$meta$declaration;$init$ClassDeclaration$meta$declaration();function ClassWithConstructorsDeclaration$meta$declaration(classWithConstructorsDeclaration$){ClassDeclaration$meta$declaration(classWithConstructorsDeclaration$);}
ClassWithConstructorsDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:ClassDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassWithConstructorsDeclaration'),see([$init$OpenInterface$jsint()(lmp$(ex$,'ceylon.language.meta.declaration'),ClassWithInitializerDeclaration$meta$declaration)].$sa$({t:InterfaceDeclaration$meta$declaration}))];},d:['ceylon.language.meta.declaration','ClassWithConstructorsDeclaration']};};
ex$.ClassWithConstructorsDeclaration$meta$declaration=ClassWithConstructorsDeclaration$meta$declaration;function $init$ClassWithConstructorsDeclaration$meta$declaration(){if(ClassWithConstructorsDeclaration$meta$declaration.$$===undefined){initTypeProtoI(ClassWithConstructorsDeclaration$meta$declaration,'ceylon.language.meta.declaration::ClassWithConstructorsDeclaration',$init$ClassDeclaration$meta$declaration());
}
return ClassWithConstructorsDeclaration$meta$declaration;}
ex$.$init$ClassWithConstructorsDeclaration$meta$declaration=$init$ClassWithConstructorsDeclaration$meta$declaration;$init$ClassWithConstructorsDeclaration$meta$declaration();function ClassWithInitializerDeclaration$meta$declaration(classWithInitializerDeclaration$){ClassDeclaration$meta$declaration(classWithInitializerDeclaration$);}
ClassWithInitializerDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:ClassDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ClassWithInitializerDeclaration'),see([$init$OpenInterface$jsint()(lmp$(ex$,'ceylon.language.meta.declaration'),ClassWithConstructorsDeclaration$meta$declaration)].$sa$({t:InterfaceDeclaration$meta$declaration}))];},d:['ceylon.language.meta.declaration','ClassWithInitializerDeclaration']};};
ex$.ClassWithInitializerDeclaration$meta$declaration=ClassWithInitializerDeclaration$meta$declaration;function $init$ClassWithInitializerDeclaration$meta$declaration(){if(ClassWithInitializerDeclaration$meta$declaration.$$===undefined){initTypeProtoI(ClassWithInitializerDeclaration$meta$declaration,'ceylon.language.meta.declaration::ClassWithInitializerDeclaration',$init$ClassDeclaration$meta$declaration());
(function(classWithInitializerDeclaration$){classWithInitializerDeclaration$.$prop$getDefaultConstructor={$crtmm$:function(){return{mod:$CCMM$,$t:{t:CallableConstructorDeclaration$meta$declaration},$cont:ClassWithInitializerDeclaration$meta$declaration,pa:7,an:function(){return[doc("A CallableConstructorDeclaration representing the class initializer.")];},d:['ceylon.language.meta.declaration','ClassWithInitializerDeclaration','$at','defaultConstructor']};}};classWithInitializerDeclaration$.$prop$getParameterDeclarations={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:FunctionOrValueDeclaration$meta$declaration}}},$cont:ClassWithInitializerDeclaration$meta$declaration,pa:7,an:function(){return[doc("The list of parameter declarations for this class.")];},d:['ceylon.language.meta.declaration','ClassWithInitializerDeclaration','$at','parameterDeclarations']};}};classWithInitializerDeclaration$.constructorDeclarations=function(){var classWithInitializerDeclaration$=this;return Singleton(classWithInitializerDeclaration$.defaultConstructor,{Element$Singleton:{t:CallableConstructorDeclaration$meta$declaration}});};classWithInitializerDeclaration$.constructorDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequence,a:{Element$Sequence:{t:CallableConstructorDeclaration$meta$declaration}}},ps:[],$cont:ClassWithInitializerDeclaration$meta$declaration,pa:11,an:function(){return[doc("A singleton sequence containing the [[defaultConstructor]].")];},d:['ceylon.language.meta.declaration','ClassWithInitializerDeclaration','$m','constructorDeclarations']};};classWithInitializerDeclaration$.getConstructorDeclaration=function($1m5){var classWithInitializerDeclaration$=this;return ($1m5.empty?classWithInitializerDeclaration$.defaultConstructor:null);};classWithInitializerDeclaration$.getConstructorDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:CallableConstructorDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:ClassWithInitializerDeclaration$meta$declaration,pa:11,d:['ceylon.language.meta.declaration','ClassWithInitializerDeclaration','$m','getConstructorDeclaration']};};classWithInitializerDeclaration$.annotatedConstructorDeclarations={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:CallableConstructorDeclaration$meta$declaration}}},ps:[],$cont:ClassWithInitializerDeclaration$meta$declaration,tp:{Annotation$annotatedConstructorDeclarations:{sts:[{t:Annotation}]}},pa:7,d:['ceylon.language.meta.declaration','ClassWithInitializerDeclaration','$m','annotatedConstructorDeclarations']};}};})(ClassWithInitializerDeclaration$meta$declaration.$$.prototype);}
return ClassWithInitializerDeclaration$meta$declaration;}
ex$.$init$ClassWithInitializerDeclaration$meta$declaration=$init$ClassWithInitializerDeclaration$meta$declaration;$init$ClassWithInitializerDeclaration$meta$declaration();function ConstructorDeclaration$meta$declaration(constructorDeclaration$){NestableDeclaration$meta$declaration(constructorDeclaration$);}
ConstructorDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:NestableDeclaration$meta$declaration}],of:[{t:CallableConstructorDeclaration$meta$declaration},{t:ValueConstructorDeclaration$meta$declaration}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ConstructorDeclaration')];},d:['ceylon.language.meta.declaration','ConstructorDeclaration']};};
ex$.ConstructorDeclaration$meta$declaration=ConstructorDeclaration$meta$declaration;function $init$ConstructorDeclaration$meta$declaration(){if(ConstructorDeclaration$meta$declaration.$$===undefined){initTypeProtoI(ConstructorDeclaration$meta$declaration,'ceylon.language.meta.declaration::ConstructorDeclaration',$init$NestableDeclaration$meta$declaration());
}
return ConstructorDeclaration$meta$declaration;}
ex$.$init$ConstructorDeclaration$meta$declaration=$init$ConstructorDeclaration$meta$declaration;$init$ConstructorDeclaration$meta$declaration();function Declaration$meta$declaration(declaration$){}
Declaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,of:[{t:AnnotatedDeclaration$meta$declaration},{t:TypeParameter$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Declaration')];},d:['ceylon.language.meta.declaration','Declaration']};};
ex$.Declaration$meta$declaration=Declaration$meta$declaration;function $init$Declaration$meta$declaration(){if(Declaration$meta$declaration.$$===undefined){initTypeProtoI(Declaration$meta$declaration,'ceylon.language.meta.declaration::Declaration');
(function(declaration$){declaration$.$prop$getName={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Declaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Declaration:$at:name')];},d:['ceylon.language.meta.declaration','Declaration','$at','name']};}};declaration$.$prop$getQualifiedName={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Declaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Declaration:$at:qualifiedName')];},d:['ceylon.language.meta.declaration','Declaration','$at','qualifiedName']};}};})(Declaration$meta$declaration.$$.prototype);}
return Declaration$meta$declaration;}
ex$.$init$Declaration$meta$declaration=$init$Declaration$meta$declaration;$init$Declaration$meta$declaration();function FunctionDeclaration$meta$declaration(functionDeclaration$){FunctionOrValueDeclaration$meta$declaration(functionDeclaration$);FunctionalDeclaration$meta$declaration(functionDeclaration$);}
FunctionDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:FunctionOrValueDeclaration$meta$declaration},{t:FunctionalDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:FunctionDeclaration')];},d:['ceylon.language.meta.declaration','FunctionDeclaration']};};
ex$.FunctionDeclaration$meta$declaration=FunctionDeclaration$meta$declaration;function $init$FunctionDeclaration$meta$declaration(){if(FunctionDeclaration$meta$declaration.$$===undefined){initTypeProtoI(FunctionDeclaration$meta$declaration,'ceylon.language.meta.declaration::FunctionDeclaration',$init$FunctionOrValueDeclaration$meta$declaration(),$init$FunctionalDeclaration$meta$declaration());
(function(functionDeclaration$){functionDeclaration$.$_apply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Function$meta$model,a:{Arguments$Function:'Arguments$apply',Type$Function:'Return$apply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:FunctionDeclaration$meta$declaration,tp:{Return$apply:{def:{t:Anything}},Arguments$apply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:7,d:['ceylon.language.meta.declaration','FunctionDeclaration','$m','apply']};}};functionDeclaration$.memberApply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Method$meta$model,a:{Container$Method:'Container$memberApply',Arguments$Method:'Arguments$memberApply',Type$Method:'Return$memberApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:FunctionDeclaration$meta$declaration,tp:{Container$memberApply:{def:{t:Nothing}},Return$memberApply:{def:{t:Anything}},Arguments$memberApply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:7,d:['ceylon.language.meta.declaration','FunctionDeclaration','$m','memberApply']};}};})(FunctionDeclaration$meta$declaration.$$.prototype);}
return FunctionDeclaration$meta$declaration;}
ex$.$init$FunctionDeclaration$meta$declaration=$init$FunctionDeclaration$meta$declaration;$init$FunctionDeclaration$meta$declaration();function FunctionOrValueDeclaration$meta$declaration(functionOrValueDeclaration$){NestableDeclaration$meta$declaration(functionOrValueDeclaration$);}
FunctionOrValueDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:NestableDeclaration$meta$declaration}],of:[{t:FunctionDeclaration$meta$declaration},{t:ValueDeclaration$meta$declaration}],pa:17,an:function(){return[doc("A function or value declaration.")];},d:['ceylon.language.meta.declaration','FunctionOrValueDeclaration']};};
ex$.FunctionOrValueDeclaration$meta$declaration=FunctionOrValueDeclaration$meta$declaration;function $init$FunctionOrValueDeclaration$meta$declaration(){if(FunctionOrValueDeclaration$meta$declaration.$$===undefined){initTypeProtoI(FunctionOrValueDeclaration$meta$declaration,'ceylon.language.meta.declaration::FunctionOrValueDeclaration',$init$NestableDeclaration$meta$declaration());
(function(functionOrValueDeclaration$){functionOrValueDeclaration$.$prop$getParameter={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunctionOrValueDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:FunctionOrValueDeclaration:$at:parameter')];},d:['ceylon.language.meta.declaration','FunctionOrValueDeclaration','$at','parameter']};}};functionOrValueDeclaration$.$prop$getDefaulted={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunctionOrValueDeclaration$meta$declaration,pa:5,an:function(){return[doc("True if this function or value is a parameter and has a default value.")];},d:['ceylon.language.meta.declaration','FunctionOrValueDeclaration','$at','defaulted']};}};functionOrValueDeclaration$.$prop$getVariadic={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunctionOrValueDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:FunctionOrValueDeclaration:$at:variadic')];},d:['ceylon.language.meta.declaration','FunctionOrValueDeclaration','$at','variadic']};}};})(FunctionOrValueDeclaration$meta$declaration.$$.prototype);}
return FunctionOrValueDeclaration$meta$declaration;}
ex$.$init$FunctionOrValueDeclaration$meta$declaration=$init$FunctionOrValueDeclaration$meta$declaration;$init$FunctionOrValueDeclaration$meta$declaration();function GettableDeclaration$meta$declaration(gettableDeclaration$){}
GettableDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:GettableDeclaration')];},d:['ceylon.language.meta.declaration','GettableDeclaration']};};
ex$.GettableDeclaration$meta$declaration=GettableDeclaration$meta$declaration;function $init$GettableDeclaration$meta$declaration(){if(GettableDeclaration$meta$declaration.$$===undefined){initTypeProtoI(GettableDeclaration$meta$declaration,'ceylon.language.meta.declaration::GettableDeclaration');
(function(gettableDeclaration$){gettableDeclaration$.$_get={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:GettableDeclaration$meta$declaration,pa:5,an:function(){return[doc("Reads the current value of this toplevel value.")];},d:['ceylon.language.meta.declaration','GettableDeclaration','$m','get']};}};gettableDeclaration$.memberGet={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:GettableDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:GettableDeclaration:$m:memberGet'),$_throws("IncompatibleTypeException","If the specified container is not compatible with this attribute."),$_throws("StorageException","If this attribute is not stored at runtime, for example if it is neither shared nor captured.")];},d:['ceylon.language.meta.declaration','GettableDeclaration','$m','memberGet']};}};})(GettableDeclaration$meta$declaration.$$.prototype);}
return GettableDeclaration$meta$declaration;}
ex$.$init$GettableDeclaration$meta$declaration=$init$GettableDeclaration$meta$declaration;$init$GettableDeclaration$meta$declaration();function InterfaceDeclaration$meta$declaration(interfaceDeclaration$){ClassOrInterfaceDeclaration$meta$declaration(interfaceDeclaration$);}
InterfaceDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:ClassOrInterfaceDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:InterfaceDeclaration')];},d:['ceylon.language.meta.declaration','InterfaceDeclaration']};};
ex$.InterfaceDeclaration$meta$declaration=InterfaceDeclaration$meta$declaration;function $init$InterfaceDeclaration$meta$declaration(){if(InterfaceDeclaration$meta$declaration.$$===undefined){initTypeProtoI(InterfaceDeclaration$meta$declaration,'ceylon.language.meta.declaration::InterfaceDeclaration',$init$ClassOrInterfaceDeclaration$meta$declaration());
(function(interfaceDeclaration$){interfaceDeclaration$.interfaceApply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Interface$meta$model,a:{Type$Interface:'Type$interfaceApply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:InterfaceDeclaration$meta$declaration,tp:{Type$interfaceApply:{def:{t:Anything}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:InterfaceDeclaration:$m:interfaceApply'),$_throws("IncompatibleTypeException","If the specified `Type` type argument is not compatible with the \nactual result."),$_throws("TypeApplicationException","If the specified closed type argument values are not compatible \nwith the actual result\'s type parameters.")];},d:['ceylon.language.meta.declaration','InterfaceDeclaration','$m','interfaceApply']};}};interfaceDeclaration$.memberInterfaceApply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$memberInterfaceApply',Type$MemberInterface:'Type$memberInterfaceApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:InterfaceDeclaration$meta$declaration,tp:{Container$memberInterfaceApply:{def:{t:Nothing}},Type$memberInterfaceApply:{def:{t:Anything}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:InterfaceDeclaration:$m:memberInterfaceApply'),$_throws("IncompatibleTypeException","If the specified `Container` or `Type` type arguments are not \ncompatible with the actual result."),$_throws("TypeApplicationException","If the specified closed container type or type argument values \nare not compatible with the actual result\'s container type or \ntype parameters.")];},d:['ceylon.language.meta.declaration','InterfaceDeclaration','$m','memberInterfaceApply']};}};})(InterfaceDeclaration$meta$declaration.$$.prototype);}
return InterfaceDeclaration$meta$declaration;}
ex$.$init$InterfaceDeclaration$meta$declaration=$init$InterfaceDeclaration$meta$declaration;$init$InterfaceDeclaration$meta$declaration();function Module$meta$declaration(module$){AnnotatedDeclaration$meta$declaration(module$);Identifiable(module$);}
Module$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:Identifiable},{t:AnnotatedDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Module')];},d:['ceylon.language.meta.declaration','Module']};};
ex$.Module$meta$declaration=Module$meta$declaration;function $init$Module$meta$declaration(){if(Module$meta$declaration.$$===undefined){initTypeProtoI(Module$meta$declaration,'ceylon.language.meta.declaration::Module',$init$AnnotatedDeclaration$meta$declaration(),$init$Identifiable());
(function(module$){module$.$prop$getVersion={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Module$meta$declaration,pa:5,an:function(){return[doc("The module version.")];},d:['ceylon.language.meta.declaration','Module','$at','version']};}};module$.$prop$getMembers={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Package$meta$declaration}}},$cont:Module$meta$declaration,pa:5,an:function(){return[doc("The package members of the module.")];},d:['ceylon.language.meta.declaration','Module','$at','members']};}};module$.$prop$getDependencies={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Import$meta$declaration}}},$cont:Module$meta$declaration,pa:5,an:function(){return[doc("The modules this module depends on.")];},d:['ceylon.language.meta.declaration','Module','$at','dependencies']};}};module$.findPackage={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Package$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Module$meta$declaration,pa:5,an:function(){return[doc("Finds a package by name. Returns `null` if not found.")];},d:['ceylon.language.meta.declaration','Module','$m','findPackage']};}};module$.findImportedPackage={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Package$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Module$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Module:$m:findImportedPackage')];},d:['ceylon.language.meta.declaration','Module','$m','findImportedPackage']};}};module$.resourceByPath={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Resource}]},ps:[{nm:'path',mt:'prm',$t:{t:$_String}}],$cont:Module$meta$declaration,pa:5,an:function(){return[doc("Searches for a resource by its path inside the module.")];},d:['ceylon.language.meta.declaration','Module','$m','resourceByPath']};}};})(Module$meta$declaration.$$.prototype);}
return Module$meta$declaration;}
ex$.$init$Module$meta$declaration=$init$Module$meta$declaration;$init$Module$meta$declaration();function Import$meta$declaration(import$){Annotated(import$);Identifiable(import$);}
Import$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:Identifiable},{t:Annotated}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Import')];},d:['ceylon.language.meta.declaration','Import']};};
ex$.Import$meta$declaration=Import$meta$declaration;function $init$Import$meta$declaration(){if(Import$meta$declaration.$$===undefined){initTypeProtoI(Import$meta$declaration,'ceylon.language.meta.declaration::Import',$init$Annotated(),$init$Identifiable());
(function(import$){import$.$prop$getName={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Import$meta$declaration,pa:5,an:function(){return[doc("The name of the imported module.")];},d:['ceylon.language.meta.declaration','Import','$at','name']};}};import$.$prop$getVersion={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Import$meta$declaration,pa:5,an:function(){return[doc("The compile-time version of the imported module.")];},d:['ceylon.language.meta.declaration','Import','$at','version']};}};import$.$prop$getShared={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Import$meta$declaration,pa:5,an:function(){return[doc("True if this imported module is shared.")];},d:['ceylon.language.meta.declaration','Import','$at','shared']};}};import$.$prop$getOptional={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Import$meta$declaration,pa:5,an:function(){return[doc("True if this imported module is optional.")];},d:['ceylon.language.meta.declaration','Import','$at','optional']};}};import$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:Import$meta$declaration,pa:5,an:function(){return[doc("The containing module.")];},d:['ceylon.language.meta.declaration','Import','$at','container']};}};})(Import$meta$declaration.$$.prototype);}
return Import$meta$declaration;}
ex$.$init$Import$meta$declaration=$init$Import$meta$declaration;$init$Import$meta$declaration();function Package$meta$declaration(package$){AnnotatedDeclaration$meta$declaration(package$);Identifiable(package$);}
Package$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:Identifiable},{t:AnnotatedDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Package')];},d:['ceylon.language.meta.declaration','Package']};};
ex$.Package$meta$declaration=Package$meta$declaration;function $init$Package$meta$declaration(){if(Package$meta$declaration.$$===undefined){initTypeProtoI(Package$meta$declaration,'ceylon.language.meta.declaration::Package',$init$AnnotatedDeclaration$meta$declaration(),$init$Identifiable());
(function(package$){package$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:Package$meta$declaration,pa:5,an:function(){return[doc("The module this package belongs to.")];},d:['ceylon.language.meta.declaration','Package','$at','container']};}};package$.$prop$getShared={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Package$meta$declaration,pa:5,an:function(){return[doc("True if this package is shared.")];},d:['ceylon.language.meta.declaration','Package','$at','shared']};}};package$.members={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$members'}},ps:[],$cont:Package$meta$declaration,tp:{Kind$members:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Package:$m:members')];},d:['ceylon.language.meta.declaration','Package','$m','members']};}};package$.annotatedMembers={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$annotatedMembers'}},ps:[],$cont:Package$meta$declaration,tp:{Kind$annotatedMembers:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation$annotatedMembers:{sts:[{t:Annotation}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Package:$m:annotatedMembers')];},d:['ceylon.language.meta.declaration','Package','$m','annotatedMembers']};}};package$.getMember={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Kind$getMember']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Package$meta$declaration,tp:{Kind$getMember:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Package:$m:getMember')];},d:['ceylon.language.meta.declaration','Package','$m','getMember']};}};package$.getValue={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ValueDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Package$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Package:$m:getValue')];},d:['ceylon.language.meta.declaration','Package','$m','getValue']};}};package$.getClassOrInterface={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ClassOrInterfaceDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Package$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Package:$m:getClassOrInterface')];},d:['ceylon.language.meta.declaration','Package','$m','getClassOrInterface']};}};package$.getFunction={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:FunctionDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Package$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Package:$m:getFunction')];},d:['ceylon.language.meta.declaration','Package','$m','getFunction']};}};package$.getAlias={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:AliasDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Package$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:Package:$m:getAlias')];},d:['ceylon.language.meta.declaration','Package','$m','getAlias']};}};})(Package$meta$declaration.$$.prototype);}
return Package$meta$declaration;}
ex$.$init$Package$meta$declaration=$init$Package$meta$declaration;$init$Package$meta$declaration();function OpenClassOrInterfaceType$meta$declaration(openClassOrInterfaceType$){OpenType$meta$declaration(openClassOrInterfaceType$);}
OpenClassOrInterfaceType$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:OpenType$meta$declaration}],of:[{t:OpenClassType$meta$declaration},{t:OpenInterfaceType$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:OpenClassOrInterfaceType')];},d:['ceylon.language.meta.declaration','OpenClassOrInterfaceType']};};
ex$.OpenClassOrInterfaceType$meta$declaration=OpenClassOrInterfaceType$meta$declaration;function $init$OpenClassOrInterfaceType$meta$declaration(){if(OpenClassOrInterfaceType$meta$declaration.$$===undefined){initTypeProtoI(OpenClassOrInterfaceType$meta$declaration,'ceylon.language.meta.declaration::OpenClassOrInterfaceType',$init$OpenType$meta$declaration());
(function(openClassOrInterfaceType$){openClassOrInterfaceType$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ClassOrInterfaceDeclaration$meta$declaration},$cont:OpenClassOrInterfaceType$meta$declaration,pa:5,an:function(){return[doc("The class or interface declaration for this open type.")];},d:['ceylon.language.meta.declaration','OpenClassOrInterfaceType','$at','declaration']};}};openClassOrInterfaceType$.$prop$getExtendedType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:OpenClassType$meta$declaration}]},$cont:OpenClassOrInterfaceType$meta$declaration,pa:5,an:function(){return[doc("The extended type of this open type.")];},d:['ceylon.language.meta.declaration','OpenClassOrInterfaceType','$at','extendedType']};}};openClassOrInterfaceType$.$prop$getSatisfiedTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenInterfaceType$meta$declaration}}},$cont:OpenClassOrInterfaceType$meta$declaration,pa:5,an:function(){return[doc("The satisfied types of this open type.")];},d:['ceylon.language.meta.declaration','OpenClassOrInterfaceType','$at','satisfiedTypes']};}};openClassOrInterfaceType$.$prop$getTypeArguments={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:OpenType$meta$declaration}}},$cont:OpenClassOrInterfaceType$meta$declaration,pa:5,an:function(){return[doc("The map of open type arguments.")];},d:['ceylon.language.meta.declaration','OpenClassOrInterfaceType','$at','typeArguments']};}};openClassOrInterfaceType$.$prop$getTypeArgumentList={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:OpenClassOrInterfaceType$meta$declaration,pa:5,an:function(){return[doc("The list of open type arguments.")];},d:['ceylon.language.meta.declaration','OpenClassOrInterfaceType','$at','typeArgumentList']};}};openClassOrInterfaceType$.$prop$getTypeArgumentWithVariances={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:OpenTypeArgument$meta$declaration()}},$cont:OpenClassOrInterfaceType$meta$declaration,pa:5,an:function(){return[doc("The map of type parameter declaration to open type arguments and use-site variance.")];},d:['ceylon.language.meta.declaration','OpenClassOrInterfaceType','$at','typeArgumentWithVariances']};}};openClassOrInterfaceType$.$prop$getTypeArgumentWithVarianceList={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:OpenTypeArgument$meta$declaration()}},$cont:OpenClassOrInterfaceType$meta$declaration,pa:5,an:function(){return[doc("The list of open type arguments with use-site variance.")];},d:['ceylon.language.meta.declaration','OpenClassOrInterfaceType','$at','typeArgumentWithVarianceList']};}};})(OpenClassOrInterfaceType$meta$declaration.$$.prototype);}
return OpenClassOrInterfaceType$meta$declaration;}
ex$.$init$OpenClassOrInterfaceType$meta$declaration=$init$OpenClassOrInterfaceType$meta$declaration;$init$OpenClassOrInterfaceType$meta$declaration();function OpenClassType$meta$declaration(openClassType$){OpenClassOrInterfaceType$meta$declaration(openClassType$);}
OpenClassType$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:OpenClassOrInterfaceType$meta$declaration}],pa:17,an:function(){return[doc("An open class type.")];},d:['ceylon.language.meta.declaration','OpenClassType']};};
ex$.OpenClassType$meta$declaration=OpenClassType$meta$declaration;function $init$OpenClassType$meta$declaration(){if(OpenClassType$meta$declaration.$$===undefined){initTypeProtoI(OpenClassType$meta$declaration,'ceylon.language.meta.declaration::OpenClassType',$init$OpenClassOrInterfaceType$meta$declaration());
(function(openClassType$){openClassType$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ClassDeclaration$meta$declaration},$cont:OpenClassType$meta$declaration,pa:7,an:function(){return[doc("This class declaration.")];},d:['ceylon.language.meta.declaration','OpenClassType','$at','declaration']};}};})(OpenClassType$meta$declaration.$$.prototype);}
return OpenClassType$meta$declaration;}
ex$.$init$OpenClassType$meta$declaration=$init$OpenClassType$meta$declaration;$init$OpenClassType$meta$declaration();function OpenInterfaceType$meta$declaration(openInterfaceType$){OpenClassOrInterfaceType$meta$declaration(openInterfaceType$);}
OpenInterfaceType$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:OpenClassOrInterfaceType$meta$declaration}],pa:17,an:function(){return[doc("An open interface type.")];},d:['ceylon.language.meta.declaration','OpenInterfaceType']};};
ex$.OpenInterfaceType$meta$declaration=OpenInterfaceType$meta$declaration;function $init$OpenInterfaceType$meta$declaration(){if(OpenInterfaceType$meta$declaration.$$===undefined){initTypeProtoI(OpenInterfaceType$meta$declaration,'ceylon.language.meta.declaration::OpenInterfaceType',$init$OpenClassOrInterfaceType$meta$declaration());
(function(openInterfaceType$){openInterfaceType$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:InterfaceDeclaration$meta$declaration},$cont:OpenInterfaceType$meta$declaration,pa:7,an:function(){return[doc("This declaration\'s package container.")];},d:['ceylon.language.meta.declaration','OpenInterfaceType','$at','declaration']};}};})(OpenInterfaceType$meta$declaration.$$.prototype);}
return OpenInterfaceType$meta$declaration;}
ex$.$init$OpenInterfaceType$meta$declaration=$init$OpenInterfaceType$meta$declaration;$init$OpenInterfaceType$meta$declaration();function OpenIntersection$meta$declaration(openIntersection$){OpenType$meta$declaration(openIntersection$);}
OpenIntersection$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:OpenType$meta$declaration}],pa:17,an:function(){return[doc("An open intersection type.")];},d:['ceylon.language.meta.declaration','OpenIntersection']};};
ex$.OpenIntersection$meta$declaration=OpenIntersection$meta$declaration;function $init$OpenIntersection$meta$declaration(){if(OpenIntersection$meta$declaration.$$===undefined){initTypeProtoI(OpenIntersection$meta$declaration,'ceylon.language.meta.declaration::OpenIntersection',$init$OpenType$meta$declaration());
(function(openIntersection$){openIntersection$.$prop$getSatisfiedTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:OpenType$meta$declaration}}},$cont:OpenIntersection$meta$declaration,pa:5,an:function(){return[doc("This intersection\'s list of satisfied open types.")];},d:['ceylon.language.meta.declaration','OpenIntersection','$at','satisfiedTypes']};}};})(OpenIntersection$meta$declaration.$$.prototype);}
return OpenIntersection$meta$declaration;}
ex$.$init$OpenIntersection$meta$declaration=$init$OpenIntersection$meta$declaration;$init$OpenIntersection$meta$declaration();function OpenType$meta$declaration(openType$){}
OpenType$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,of:[$prop$getNothingType$meta$declaration,{t:OpenClassOrInterfaceType$meta$declaration},{t:OpenTypeVariable$meta$declaration},{t:OpenUnion$meta$declaration},{t:OpenIntersection$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:OpenType')];},d:['ceylon.language.meta.declaration','OpenType']};};
ex$.OpenType$meta$declaration=OpenType$meta$declaration;function $init$OpenType$meta$declaration(){if(OpenType$meta$declaration.$$===undefined){initTypeProtoI(OpenType$meta$declaration,'ceylon.language.meta.declaration::OpenType');
}
return OpenType$meta$declaration;}
ex$.$init$OpenType$meta$declaration=$init$OpenType$meta$declaration;$init$OpenType$meta$declaration();function OpenTypeArgument$meta$declaration(){var $1m8=mtt$([{t:OpenType$meta$declaration},{t:Variance$meta$declaration}]);$1m8.$crtmm$=function(){return{mod:$CCMM$,pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:OpenTypeArgument')];},d:['ceylon.language.meta.declaration','OpenTypeArgument']};};return $1m8;}
ex$.OpenTypeArgument$meta$declaration=OpenTypeArgument$meta$declaration;function OpenTypeVariable$meta$declaration(openTypeVariable$){OpenType$meta$declaration(openTypeVariable$);}
OpenTypeVariable$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:OpenType$meta$declaration}],pa:17,an:function(){return[doc("An open type variable.")];},d:['ceylon.language.meta.declaration','OpenTypeVariable']};};
ex$.OpenTypeVariable$meta$declaration=OpenTypeVariable$meta$declaration;function $init$OpenTypeVariable$meta$declaration(){if(OpenTypeVariable$meta$declaration.$$===undefined){initTypeProtoI(OpenTypeVariable$meta$declaration,'ceylon.language.meta.declaration::OpenTypeVariable',$init$OpenType$meta$declaration());
(function(openTypeVariable$){openTypeVariable$.$prop$getDeclaration={$crtmm$:function(){return{mod:$CCMM$,$t:{t:TypeParameter$meta$declaration},$cont:OpenTypeVariable$meta$declaration,pa:5,an:function(){return[doc("This type variable\'s type parameter declaration.")];},d:['ceylon.language.meta.declaration','OpenTypeVariable','$at','declaration']};}};})(OpenTypeVariable$meta$declaration.$$.prototype);}
return OpenTypeVariable$meta$declaration;}
ex$.$init$OpenTypeVariable$meta$declaration=$init$OpenTypeVariable$meta$declaration;$init$OpenTypeVariable$meta$declaration();function OpenUnion$meta$declaration(openUnion$){OpenType$meta$declaration(openUnion$);}
OpenUnion$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:OpenType$meta$declaration}],pa:17,an:function(){return[doc("An open union type.")];},d:['ceylon.language.meta.declaration','OpenUnion']};};
ex$.OpenUnion$meta$declaration=OpenUnion$meta$declaration;function $init$OpenUnion$meta$declaration(){if(OpenUnion$meta$declaration.$$===undefined){initTypeProtoI(OpenUnion$meta$declaration,'ceylon.language.meta.declaration::OpenUnion',$init$OpenType$meta$declaration());
(function(openUnion$){openUnion$.$prop$getCaseTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:OpenType$meta$declaration}}},$cont:OpenUnion$meta$declaration,pa:5,an:function(){return[doc("The list of case types for this open union type.")];},d:['ceylon.language.meta.declaration','OpenUnion','$at','caseTypes']};}};})(OpenUnion$meta$declaration.$$.prototype);}
return OpenUnion$meta$declaration;}
ex$.$init$OpenUnion$meta$declaration=$init$OpenUnion$meta$declaration;$init$OpenUnion$meta$declaration();function SetterDeclaration$meta$declaration(setterDeclaration$){NestableDeclaration$meta$declaration(setterDeclaration$);}
SetterDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:NestableDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:SetterDeclaration')];},d:['ceylon.language.meta.declaration','SetterDeclaration']};};
ex$.SetterDeclaration$meta$declaration=SetterDeclaration$meta$declaration;function $init$SetterDeclaration$meta$declaration(){if(SetterDeclaration$meta$declaration.$$===undefined){initTypeProtoI(SetterDeclaration$meta$declaration,'ceylon.language.meta.declaration::SetterDeclaration',$init$NestableDeclaration$meta$declaration());
(function(setterDeclaration$){setterDeclaration$.$prop$getVariable={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ValueDeclaration$meta$declaration},$cont:SetterDeclaration$meta$declaration,pa:5,an:function(){return[doc("The variable value this setter is for.")];},d:['ceylon.language.meta.declaration','SetterDeclaration','$at','variable']};}};atr$(setterDeclaration$,'actual',function(){var setterDeclaration$=this;return setterDeclaration$.variable.actual;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:SetterDeclaration$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','SetterDeclaration','$at','actual']};});atr$(setterDeclaration$,'formal',function(){var setterDeclaration$=this;return setterDeclaration$.variable.formal;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:SetterDeclaration$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','SetterDeclaration','$at','formal']};});atr$(setterDeclaration$,'$_default',function(){var setterDeclaration$=this;return setterDeclaration$.variable.$_default;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:SetterDeclaration$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','SetterDeclaration','$at','default']};});atr$(setterDeclaration$,'shared',function(){var setterDeclaration$=this;return setterDeclaration$.variable.shared;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:SetterDeclaration$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','SetterDeclaration','$at','shared']};});atr$(setterDeclaration$,'containingPackage',function(){var setterDeclaration$=this;return setterDeclaration$.variable.containingPackage;},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:SetterDeclaration$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','SetterDeclaration','$at','containingPackage']};});atr$(setterDeclaration$,'containingModule',function(){var setterDeclaration$=this;return setterDeclaration$.variable.containingModule;},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:SetterDeclaration$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','SetterDeclaration','$at','containingModule']};});atr$(setterDeclaration$,'container',function(){var setterDeclaration$=this;return setterDeclaration$.variable.container;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:NestableDeclaration$meta$declaration},{t:Package$meta$declaration}]},$cont:SetterDeclaration$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','SetterDeclaration','$at','container']};});atr$(setterDeclaration$,'toplevel',function(){var setterDeclaration$=this;return setterDeclaration$.variable.toplevel;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:SetterDeclaration$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','SetterDeclaration','$at','toplevel']};});})(SetterDeclaration$meta$declaration.$$.prototype);}
return SetterDeclaration$meta$declaration;}
ex$.$init$SetterDeclaration$meta$declaration=$init$SetterDeclaration$meta$declaration;$init$SetterDeclaration$meta$declaration();function TypeParameter$meta$declaration(typeParameter$){Declaration$meta$declaration(typeParameter$);}
TypeParameter$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:Declaration$meta$declaration}],pa:17,an:function(){return[doc("A type parameter declaration.")];},d:['ceylon.language.meta.declaration','TypeParameter']};};
ex$.TypeParameter$meta$declaration=TypeParameter$meta$declaration;function $init$TypeParameter$meta$declaration(){if(TypeParameter$meta$declaration.$$===undefined){initTypeProtoI(TypeParameter$meta$declaration,'ceylon.language.meta.declaration::TypeParameter',$init$Declaration$meta$declaration());
(function(typeParameter$){typeParameter$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:NestableDeclaration$meta$declaration},$cont:TypeParameter$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:TypeParameter:$at:container')];},d:['ceylon.language.meta.declaration','TypeParameter','$at','container']};}};typeParameter$.$prop$getDefaulted={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:TypeParameter$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:TypeParameter:$at:defaulted')];},d:['ceylon.language.meta.declaration','TypeParameter','$at','defaulted']};}};typeParameter$.$prop$getDefaultTypeArgument={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:OpenType$meta$declaration}]},$cont:TypeParameter$meta$declaration,pa:5,an:function(){return[doc("This type parameter\'s default type argument, if it has one.")];},d:['ceylon.language.meta.declaration','TypeParameter','$at','defaultTypeArgument']};}};typeParameter$.$prop$getVariance={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Variance$meta$declaration},$cont:TypeParameter$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:TypeParameter:$at:variance')];},d:['ceylon.language.meta.declaration','TypeParameter','$at','variance']};}};typeParameter$.$prop$getSatisfiedTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:TypeParameter$meta$declaration,pa:5,an:function(){return[doc("The `satisfies` upper bounds for this type parameter.")];},d:['ceylon.language.meta.declaration','TypeParameter','$at','satisfiedTypes']};}};typeParameter$.$prop$getCaseTypes={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:TypeParameter$meta$declaration,pa:5,an:function(){return[doc("The `of` enumerated bounds for this type parameter.")];},d:['ceylon.language.meta.declaration','TypeParameter','$at','caseTypes']};}};})(TypeParameter$meta$declaration.$$.prototype);}
return TypeParameter$meta$declaration;}
ex$.$init$TypeParameter$meta$declaration=$init$TypeParameter$meta$declaration;$init$TypeParameter$meta$declaration();function TypedDeclaration$meta$declaration(typedDeclaration$){}
TypedDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,pa:17,an:function(){return[doc("Declaration which has an open type.")];},d:['ceylon.language.meta.declaration','TypedDeclaration']};};
ex$.TypedDeclaration$meta$declaration=TypedDeclaration$meta$declaration;function $init$TypedDeclaration$meta$declaration(){if(TypedDeclaration$meta$declaration.$$===undefined){initTypeProtoI(TypedDeclaration$meta$declaration,'ceylon.language.meta.declaration::TypedDeclaration');
(function(typedDeclaration$){typedDeclaration$.$prop$getOpenType={$crtmm$:function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:TypedDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:TypedDeclaration:$at:openType')];},d:['ceylon.language.meta.declaration','TypedDeclaration','$at','openType']};}};})(TypedDeclaration$meta$declaration.$$.prototype);}
return TypedDeclaration$meta$declaration;}
ex$.$init$TypedDeclaration$meta$declaration=$init$TypedDeclaration$meta$declaration;$init$TypedDeclaration$meta$declaration();function ValueConstructorDeclaration$meta$declaration(valueConstructorDeclaration$){GettableDeclaration$meta$declaration(valueConstructorDeclaration$);ConstructorDeclaration$meta$declaration(valueConstructorDeclaration$);}
ValueConstructorDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:GettableDeclaration$meta$declaration},{t:ConstructorDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueConstructorDeclaration'),see([$init$OpenInterface$jsint()(lmp$(ex$,'ceylon.language.meta.declaration'),CallableConstructorDeclaration$meta$declaration)].$sa$({t:InterfaceDeclaration$meta$declaration}))];},d:['ceylon.language.meta.declaration','ValueConstructorDeclaration']};};
ex$.ValueConstructorDeclaration$meta$declaration=ValueConstructorDeclaration$meta$declaration;function $init$ValueConstructorDeclaration$meta$declaration(){if(ValueConstructorDeclaration$meta$declaration.$$===undefined){initTypeProtoI(ValueConstructorDeclaration$meta$declaration,'ceylon.language.meta.declaration::ValueConstructorDeclaration',$init$GettableDeclaration$meta$declaration(),$init$ConstructorDeclaration$meta$declaration());
(function(valueConstructorDeclaration$){valueConstructorDeclaration$.$prop$getContainer={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ClassDeclaration$meta$declaration},$cont:ValueConstructorDeclaration$meta$declaration,pa:7,an:function(){return[doc("The class this constructor constructs")];},d:['ceylon.language.meta.declaration','ValueConstructorDeclaration','$at','container']};}};valueConstructorDeclaration$.$_apply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:ValueConstructor$meta$model,a:{Type$ValueConstructor:'Result$apply'}},ps:[],$cont:ValueConstructorDeclaration$meta$declaration,tp:{Result$apply:{def:{t:Anything}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueConstructorDeclaration:$m:apply')];},d:['ceylon.language.meta.declaration','ValueConstructorDeclaration','$m','apply']};}};valueConstructorDeclaration$.memberApply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:MemberClassValueConstructor$meta$model,a:{Container$MemberClassValueConstructor:'Container$memberApply',Type$MemberClassValueConstructor:'Result$memberApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}}],$cont:ValueConstructorDeclaration$meta$declaration,tp:{Container$memberApply:{def:{t:Nothing}},Result$memberApply:{def:{t:Anything}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueConstructorDeclaration:$m:memberApply')];},d:['ceylon.language.meta.declaration','ValueConstructorDeclaration','$m','memberApply']};}};valueConstructorDeclaration$.$_get=function(){var valueConstructorDeclaration$=this;return valueConstructorDeclaration$.$_apply({Result$apply:{t:$_Object}}).$_get();};valueConstructorDeclaration$.$_get.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Object},ps:[],$cont:ValueConstructorDeclaration$meta$declaration,pa:11,an:function(){return[doc("Reads the current value of this toplevel value.")];},d:['ceylon.language.meta.declaration','ValueConstructorDeclaration','$m','get']};};valueConstructorDeclaration$.memberGet=function($1ma){var valueConstructorDeclaration$=this;return valueConstructorDeclaration$.memberApply(nothingType$meta$model(),{Result$memberApply:{t:$_Object},Container$memberApply:{t:Nothing}}).$_bind($1ma).$_get();};valueConstructorDeclaration$.memberGet.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Object},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:ValueConstructorDeclaration$meta$declaration,pa:11,an:function(){return[doc("Reads the current value of this attribute on the given container instance."),$_throws($init$openClass$jsint()(lmp$(ex$,'ceylon.language.meta.model'),IncompatibleTypeException$meta$model),"If the specified container is not compatible with this attribute."),$_throws($init$openClass$jsint()(lmp$(ex$,'ceylon.language.meta.model'),StorageException$meta$model),"If this attribute is not stored at runtime, for example if it is \nneither shared nor captured.")];},d:['ceylon.language.meta.declaration','ValueConstructorDeclaration','$m','memberGet']};};})(ValueConstructorDeclaration$meta$declaration.$$.prototype);}
return ValueConstructorDeclaration$meta$declaration;}
ex$.$init$ValueConstructorDeclaration$meta$declaration=$init$ValueConstructorDeclaration$meta$declaration;$init$ValueConstructorDeclaration$meta$declaration();function ValueDeclaration$meta$declaration(valueDeclaration$){NestableDeclaration$meta$declaration(valueDeclaration$);FunctionOrValueDeclaration$meta$declaration(valueDeclaration$);GettableDeclaration$meta$declaration(valueDeclaration$);}
ValueDeclaration$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:FunctionOrValueDeclaration$meta$declaration},{t:NestableDeclaration$meta$declaration},{t:GettableDeclaration$meta$declaration}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueDeclaration')];},d:['ceylon.language.meta.declaration','ValueDeclaration']};};
ex$.ValueDeclaration$meta$declaration=ValueDeclaration$meta$declaration;function $init$ValueDeclaration$meta$declaration(){if(ValueDeclaration$meta$declaration.$$===undefined){initTypeProtoI(ValueDeclaration$meta$declaration,'ceylon.language.meta.declaration::ValueDeclaration',$init$NestableDeclaration$meta$declaration(),$init$FunctionOrValueDeclaration$meta$declaration(),$init$GettableDeclaration$meta$declaration());
(function(valueDeclaration$){valueDeclaration$.$prop$getLate={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValueDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueDeclaration:$at:late')];},d:['ceylon.language.meta.declaration','ValueDeclaration','$at','late']};}};valueDeclaration$.$prop$getVariable={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValueDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueDeclaration:$at:variable')];},d:['ceylon.language.meta.declaration','ValueDeclaration','$at','variable']};}};valueDeclaration$.$prop$getObjectValue={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValueDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueDeclaration:$at:objectValue')];},d:['ceylon.language.meta.declaration','ValueDeclaration','$at','objectValue']};}};valueDeclaration$.$prop$getObjectClass={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ClassDeclaration$meta$declaration}]},$cont:ValueDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueDeclaration:$at:objectClass')];},d:['ceylon.language.meta.declaration','ValueDeclaration','$at','objectClass']};}};valueDeclaration$.$_apply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Value$meta$model,a:{Get$Value:'Get$apply',Set$Value:'Set$apply'}},ps:[],$cont:ValueDeclaration$meta$declaration,tp:{Get$apply:{def:{t:Anything}},Set$apply:{def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueDeclaration:$m:apply'),$_throws("IncompatibleTypeException","If the specified `Get` or `Set` type arguments are not compatible with the actual result.")];},d:['ceylon.language.meta.declaration','ValueDeclaration','$m','apply']};}};valueDeclaration$.memberApply={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Attribute$meta$model,a:{Set$Attribute:'Set$memberApply',Container$Attribute:'Container$memberApply',Get$Attribute:'Get$memberApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}}],$cont:ValueDeclaration$meta$declaration,tp:{Container$memberApply:{def:{t:Nothing}},Get$memberApply:{def:{t:Anything}},Set$memberApply:{def:{t:Nothing}}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueDeclaration:$m:memberApply'),$_throws("IncompatibleTypeException","If the specified `Container`, `Get` or `Set` type arguments are not compatible with the actual result.")];},d:['ceylon.language.meta.declaration','ValueDeclaration','$m','memberApply']};}};valueDeclaration$.$_get=function(){var valueDeclaration$=this;return valueDeclaration$.$_apply({Get$apply:{t:Anything},Set$apply:{t:Nothing}}).$_get();};valueDeclaration$.$_get.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:ValueDeclaration$meta$declaration,pa:11,an:function(){return[doc("Reads the current value of this toplevel value.")];},d:['ceylon.language.meta.declaration','ValueDeclaration','$m','get']};};valueDeclaration$.memberGet=function($1mb){var valueDeclaration$=this;return valueDeclaration$.memberApply(nothingType$meta$model(),{Set$memberApply:{t:Nothing},Container$memberApply:{t:Nothing},Get$memberApply:{t:Anything}}).$_bind($1mb).$_get();};valueDeclaration$.memberGet.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:ValueDeclaration$meta$declaration,pa:11,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueDeclaration:$m:memberGet'),$_throws($init$openClass$jsint()(lmp$(ex$,'ceylon.language.meta.model'),IncompatibleTypeException$meta$model),"If the specified container is not compatible with this attribute."),$_throws($init$openClass$jsint()(lmp$(ex$,'ceylon.language.meta.model'),StorageException$meta$model),"If this attribute is not stored at runtime, for example if it is neither shared nor captured.")];},d:['ceylon.language.meta.declaration','ValueDeclaration','$m','memberGet']};};valueDeclaration$.set=function($1mc){var valueDeclaration$=this;return valueDeclaration$.$_apply({Get$apply:{t:Anything},Set$apply:{t:Nothing}}).setIfAssignable($1mc);};valueDeclaration$.set.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'newValue',mt:'prm',$t:{t:Anything}}],$cont:ValueDeclaration$meta$declaration,pa:9,an:function(){return[doc("Sets the current value of this toplevel value.")];},d:['ceylon.language.meta.declaration','ValueDeclaration','$m','set']};};valueDeclaration$.memberSet={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}},{nm:'newValue',mt:'prm',$t:{t:Anything}}],$cont:ValueDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueDeclaration:$m:memberSet'),$_throws("IncompatibleTypeException","If the specified container or new value type is not compatible with this attribute."),$_throws("StorageException","If this attribute is not stored at runtime, for example if it is neither shared nor captured.")];},d:['ceylon.language.meta.declaration','ValueDeclaration','$m','memberSet']};}};valueDeclaration$.$prop$getSetter={$crtmm$:function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:SetterDeclaration$meta$declaration}]},$cont:ValueDeclaration$meta$declaration,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:ValueDeclaration:$at:setter')];},d:['ceylon.language.meta.declaration','ValueDeclaration','$at','setter']};}};})(ValueDeclaration$meta$declaration.$$.prototype);}
return ValueDeclaration$meta$declaration;}
ex$.$init$ValueDeclaration$meta$declaration=$init$ValueDeclaration$meta$declaration;$init$ValueDeclaration$meta$declaration();function Variance$meta$declaration(variance$){}
Variance$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,of:[$prop$getInvariant$meta$declaration,$prop$getCovariant$meta$declaration,$prop$getContravariant$meta$declaration],pa:1,an:function(){return[doc("Variance information.")];},d:['ceylon.language.meta.declaration','Variance']};};
ex$.Variance$meta$declaration=Variance$meta$declaration;function $init$Variance$meta$declaration(){if(Variance$meta$declaration.$$===undefined){initTypeProtoI(Variance$meta$declaration,'ceylon.language.meta.declaration::Variance');
}
return Variance$meta$declaration;}
ex$.$init$Variance$meta$declaration=$init$Variance$meta$declaration;$init$Variance$meta$declaration();function $1md$meta$declaration(){var invariant$=new $1md$meta$declaration.$$;Variance$meta$declaration(invariant$);return invariant$;};$1md$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},sts:[{t:Variance$meta$declaration}],d:['ceylon.language.meta.declaration','invariant']};};function $init$invariant$meta$declaration(){if($1md$meta$declaration.$$===undefined){initTypeProto($1md$meta$declaration,'ceylon.language.meta.declaration::invariant',Basic,$init$Variance$meta$declaration());
(function(invariant$){atr$(invariant$,'string',function(){var invariant$=this;return "Invariant";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1md$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','invariant','$at','string']};});})($1md$meta$declaration.$$.prototype);}
return $1md$meta$declaration;}
ex$.$init$invariant$meta$declaration=$init$invariant$meta$declaration;$init$invariant$meta$declaration();var $1mf;function invariant$meta$declaration(){if($1mf===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'invariant\' before it was set"),'4:0-8:0','Variance.ceylon');if($1mf===undefined){$1mf=INIT$;$1mf=$init$invariant$meta$declaration()();$1mf.$crtmm$=invariant$meta$declaration.$crtmm$;}
return $1mf;}
ex$.invariant$meta$declaration=invariant$meta$declaration;invariant$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$invariant$meta$declaration()},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:invariant')];},d:['ceylon.language.meta.declaration','invariant']};};$prop$getInvariant$meta$declaration=invariant$meta$declaration;ex$.$prop$getInvariant$meta$declaration=$prop$getInvariant$meta$declaration;function $1mg$meta$declaration(){var covariant$=new $1mg$meta$declaration.$$;Variance$meta$declaration(covariant$);return covariant$;};$1mg$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},sts:[{t:Variance$meta$declaration}],d:['ceylon.language.meta.declaration','covariant']};};function $init$covariant$meta$declaration(){if($1mg$meta$declaration.$$===undefined){initTypeProto($1mg$meta$declaration,'ceylon.language.meta.declaration::covariant',Basic,$init$Variance$meta$declaration());
(function(covariant$){atr$(covariant$,'string',function(){var covariant$=this;return "Covariant";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1mg$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','covariant','$at','string']};});})($1mg$meta$declaration.$$.prototype);}
return $1mg$meta$declaration;}
ex$.$init$covariant$meta$declaration=$init$covariant$meta$declaration;$init$covariant$meta$declaration();var $1mi;function covariant$meta$declaration(){if($1mi===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'covariant\' before it was set"),'10:0-13:0','Variance.ceylon');if($1mi===undefined){$1mi=INIT$;$1mi=$init$covariant$meta$declaration()();$1mi.$crtmm$=covariant$meta$declaration.$crtmm$;}
return $1mi;}
ex$.covariant$meta$declaration=covariant$meta$declaration;covariant$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$covariant$meta$declaration()},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:covariant')];},d:['ceylon.language.meta.declaration','covariant']};};$prop$getCovariant$meta$declaration=covariant$meta$declaration;ex$.$prop$getCovariant$meta$declaration=$prop$getCovariant$meta$declaration;function $1mj$meta$declaration(){var contravariant$=new $1mj$meta$declaration.$$;Variance$meta$declaration(contravariant$);return contravariant$;};$1mj$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},sts:[{t:Variance$meta$declaration}],d:['ceylon.language.meta.declaration','contravariant']};};function $init$contravariant$meta$declaration(){if($1mj$meta$declaration.$$===undefined){initTypeProto($1mj$meta$declaration,'ceylon.language.meta.declaration::contravariant',Basic,$init$Variance$meta$declaration());
(function(contravariant$){atr$(contravariant$,'string',function(){var contravariant$=this;return "Contravariant";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1mj$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','contravariant','$at','string']};});})($1mj$meta$declaration.$$.prototype);}
return $1mj$meta$declaration;}
ex$.$init$contravariant$meta$declaration=$init$contravariant$meta$declaration;$init$contravariant$meta$declaration();var $1ml;function contravariant$meta$declaration(){if($1ml===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'contravariant\' before it was set"),'15:0-18:0','Variance.ceylon');if($1ml===undefined){$1ml=INIT$;$1ml=$init$contravariant$meta$declaration()();$1ml.$crtmm$=contravariant$meta$declaration.$crtmm$;}
return $1ml;}
ex$.contravariant$meta$declaration=contravariant$meta$declaration;contravariant$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$contravariant$meta$declaration()},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:contravariant')];},d:['ceylon.language.meta.declaration','contravariant']};};$prop$getContravariant$meta$declaration=contravariant$meta$declaration;ex$.$prop$getContravariant$meta$declaration=$prop$getContravariant$meta$declaration;function $1mm$meta$declaration(){var nothingType$=new $1mm$meta$declaration.$$;OpenType$meta$declaration(nothingType$);return nothingType$;};$1mm$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},sts:[{t:OpenType$meta$declaration}],d:['ceylon.language.meta.declaration','nothingType']};};function $init$nothingType$meta$declaration(){if($1mm$meta$declaration.$$===undefined){initTypeProto($1mm$meta$declaration,'ceylon.language.meta.declaration::nothingType',Basic,$init$OpenType$meta$declaration());
(function(nothingType$){atr$(nothingType$,'string',function(){var nothingType$=this;return "Nothing";},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:$1mm$meta$declaration,pa:3,d:['ceylon.language.meta.declaration','nothingType','$at','string']};});})($1mm$meta$declaration.$$.prototype);}
return $1mm$meta$declaration;}
ex$.$init$nothingType$meta$declaration=$init$nothingType$meta$declaration;$init$nothingType$meta$declaration();var $1mo;function nothingType$meta$declaration(){if($1mo===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'nothingType\' before it was set"),'1:0-4:0','nothingType.ceylon');if($1mo===undefined){$1mo=INIT$;$1mo=$init$nothingType$meta$declaration()();$1mo.$crtmm$=nothingType$meta$declaration.$crtmm$;}
return $1mo;}
ex$.nothingType$meta$declaration=nothingType$meta$declaration;nothingType$meta$declaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$nothingType$meta$declaration()},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.meta.declaration:nothingType')];},d:['ceylon.language.meta.declaration','nothingType']};};$prop$getNothingType$meta$declaration=nothingType$meta$declaration;ex$.$prop$getNothingType$meta$declaration=$prop$getNothingType$meta$declaration;ex$.$pkg$ans$ceylon$language$meta$declaration=function(){return[doc$($CCMM$,'ceylon.language.meta.declaration','$pkg-anns'),by(["Gavin King","Stephane Epardaud","Tom Bentley"].$sa$({t:$_String})),tagged(["Metamodel"].$sa$({t:$_String})),shared()];};function OpenSetter(v, $$openSetter){
$init$OpenSetter();
if ($$openSetter===undefined)$$openSetter=new OpenSetter.$$;
$$openSetter.variable_=v;
SetterDeclaration$meta$declaration($$openSetter);
$$openSetter.tipo=v.tipo.set;
if (v.tipo.set && getrtmm$$(v.tipo.set)) {
var mm=getrtmm$$(v.tipo.set)
if (typeof(mm.an)==='function')mm.an=mm.an();
v.tipo.set.$crtmm$=mm;
}
return $$openSetter;
}
OpenSetter.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},sts:[{t:SetterDeclaration$meta$declaration}],d:['ceylon.language.meta.declaration','SetterDeclaration']};};
function $init$OpenSetter(){
if (OpenSetter.$$===undefined){
initTypeProto(OpenSetter,'ceylon.language.meta.declaration::OpenSetter',Basic,SetterDeclaration$meta$declaration);
(function($$openSetter){
atr$($$openSetter,'variable',function(){return this.variable_;},undefined,function(){return{mod:$CCMM$,$t:{t:ValueDeclaration$meta$declaration},$cont:OpenSetter,pa:3,d:['ceylon.language.meta.declaration','SetterDeclaration','$at','variable']};});
atr$($$openSetter,'name',function(){return this.variable_.name;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenSetter,pa:3,d:['ceylon.language.meta.declaration','SetterDeclaration','$at','name']};});
atr$($$openSetter,'name',function(){return this.variable.name;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenSetter,pa:3,d:['ceylon.language.meta.declaration','ValueDeclaration','$at','name']};});
atr$($$openSetter,'string',function(){return "setter " + this.qualifiedName;},undefined,function(){return{$t:{t:$_String},$cont:OpenSetter,an:function(){return[shared(),actual()]},mod:$CCMM$,d:['$','Object','$at','string']};});
atr$($$openSetter,'qualifiedName',function(){return this.variable.qualifiedName;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenSetter,pa:3,d:['ceylon.language.meta.declaration','Declaration','$at','qualifiedName']};});
$$openSetter.equals=function(o) {
return is$(o,{t:OpenSetter}) && o.variable.equals(this.variable);
}
})(OpenSetter.$$.prototype);
}
return OpenSetter;
}
ex$.OpenSetter=OpenSetter;
$init$OpenSetter();
function FunParamDecl(cont,param,$$funParamDecl){
$init$FunParamDecl();
if ($$funParamDecl===undefined)$$funParamDecl=new FunParamDecl.$$;
FunctionDeclaration$meta$declaration($$funParamDecl);
$$funParamDecl.cont=cont;
$$funParamDecl.param=param;
$$funParamDecl.tipo={$crtmm$:{$cont:cont.tipo,$t:param.$rt,ps:param.ps,mt:'prm',d:cont.tipo.$crtmm$.d,an:param.an,pa:param.pa}};
$$funParamDecl.$prop$getParameter={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','parameter']};}};
$$funParamDecl.$prop$getParameter.get=function(){return true;};
$$funParamDecl.$prop$getAnnotation={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','annotation']};}};
$$funParamDecl.$prop$getAnnotation.get=function(){return false;};
$$funParamDecl.$prop$getShared={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','shared']};}};
$$funParamDecl.$prop$getShared.get=function(){return false;};
$$funParamDecl.$prop$getToplevel={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','toplevel']};}};
$$funParamDecl.$prop$getToplevel.get=function(){return false;};
$$funParamDecl.$prop$getFormal={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','formal']};}};
$$funParamDecl.$prop$getFormal.get=function(){return false;};
$$funParamDecl.$prop$getDefault={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','default']};}};
$$funParamDecl.$prop$getDefault.get=function(){return false};
$$funParamDecl.$prop$getActual={$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','actual']};}};
$$funParamDecl.$prop$getActual.get=function(){return false;};
return $$funParamDecl;
}
FunParamDecl.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:FunctionDeclaration$meta$declaration}],d:['ceylon.language.meta.declaration','FunParamDecl']};};
function $init$FunParamDecl(){
if (FunParamDecl.$$===undefined){
initTypeProto(FunParamDecl,'ceylon.language.meta.declaration::FunParamDecl',Basic,FunctionDeclaration$meta$declaration);
(function($$funParamDecl){
atr$($$funParamDecl,'parameter',function(){return true;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','parameter']};});
atr$($$funParamDecl,'defaulted',function(){
return this.param.def!==undefined;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','defaulted']};});
atr$($$funParamDecl,'variadic',function(){
return this.param.seq!==undefined;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','variadic']};});
atr$($$funParamDecl,'container',function(){
return this.cont;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u', l:[{t:Package$meta$declaration},{t:NestableDeclaration$meta$declaration}]},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','container']};});
atr$($$funParamDecl,'containingPackage',function(){
return this.cont.containingPackage;
},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','containingPackage']};});
atr$($$funParamDecl,'containingModule',function(){
return this.cont.containingModule;
},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','containingModule']};});
atr$($$funParamDecl,'openType',function(){
var t = this.param.$rt;
if (typeof(t)==='string')return OpenTvar$jsint(OpenTypeParam$jsint(this.cont,t));
return _openTypeFromTarg(t);
},undefined,function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','openType']};});
atr$($$funParamDecl,'annotation',function(){return false;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','annotation']};});
atr$($$funParamDecl,'shared',function(){return (this.param.pa&1)>0;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','shared']};});
atr$($$funParamDecl,'toplevel',function(){return false;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','toplevel']};});
atr$($$funParamDecl,'formal',function(){return (this.param.pa&4)>0;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','formal']};});
atr$($$funParamDecl,'$_default',function(){return (this.param.pa&8)>0;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','default']};});
atr$($$funParamDecl,'actual',function(){return (this.param.pa&2)>0;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','actual']};});
atr$($$funParamDecl,'qualifiedName',function(){
return qname$(this.tipo.$crtmm$)+"."+this.param.nm;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','qualifiedName']};});
atr$($$funParamDecl,'string',function(){return "function " + this.qualifiedName;
},undefined,$_Object.$$.prototype.$prop$getString.$crtmm$);
atr$($$funParamDecl,'name',function(){
return this.param.nm;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$at','name']};});
$$funParamDecl.getParameterDeclaration=function getParameterDeclaration(name$10){
var pd=this.parameterDeclarations;
for (var i=0; i < pd.size; i++) {
if (name$6.equals(pd[i].name))return pd[i];
}
return null;
};$$funParamDecl.getParameterDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u', l:[{t:Null},{t:FunctionOrValueDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String},an:function(){return[];}}],$cont:FunParamDecl,pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$m','getParameterDeclaration']};};
$$funParamDecl.$_apply=function $_apply(typeArguments$11,$$$mptypes){
if(typeArguments$11===undefined){typeArguments$11=empty();}
throw Exception("IMPL FunParamDecl.apply");
};$$funParamDecl.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Function$meta$model,a:{Arguments:'Arguments',Type:'Return'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Type:{t:Anything}}}}},an:function(){return[];}}],$cont:FunParamDecl,tp:{Return:{'def':{t:Anything}},Arguments:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],'def':{t:Nothing}}},pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$m','apply']};};
$$funParamDecl.memberApply=function memberApply(containerType$12,typeArguments$13,$$$mptypes){
if(typeArguments$13===undefined){typeArguments$13=empty();}
throw Exception("IMPL FunParamDecl.memberApply");
};$$funParamDecl.memberApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Method$meta$model,a:{Arguments:'Arguments',Type:'Return',Container:'Container'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Type:'Container'}},an:function(){return[];}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Type:{t:Anything}}}}},an:function(){return[];}}],$cont:FunParamDecl,tp:{Container:{'def':{t:Nothing}},Return:{'def':{t:Anything}},Arguments:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],'def':{t:Nothing}}},pa:3,d:['ceylon.language.meta.declaration','FunctionDeclaration','$m','memberApply']};};
$$funParamDecl.annotated=function($mpt){
var x=annd$annotations(this,{Annotation$annotations:$mpt.Annotation$annotated});
return x&&x.size>0;
}
$$funParamDecl.annotated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:FunParamDecl,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:67,d:['ceylon.language.meta.declaration','FunctionDeclaration','$m','annotated']};};
$$funParamDecl.annotations=function($mpt){return annd$annotations(this,$mpt);};
$$funParamDecl.annotations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Annotation$annotations'}},ps:[],$cont:FunParamDecl,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation}]}},pa:67,d:['ceylon.language.jsint','FunctionDeclaration','$m','annotations']};};
})(FunParamDecl.$$.prototype);
}
return FunParamDecl;
}
ex$.$init$FunParamDecl=$init$FunParamDecl;
$init$FunParamDecl();
function getrtmm$$(x) {
if (x===undefined||x===null)return undefined;
if (typeof(x.$crtmm$)==='function')x.$crtmm$=x.$crtmm$();
return x.$crtmm$;
}
ex$.getrtmm$$=getrtmm$$;
function get_model(mm) {
var map=typeof(mm.mod)==='function'?mm.mod():mm.mod;
var path=mm.d;
for (var i=0; i < path.length; i++) {
var _p=path[i];
if (i===0 && _p==='$')_p='ceylon.language';
else if (i===path.length-1&&_p==='$set' && map.nm && map.$set)return map;
if (map===undefined)console.log("WRONG MODEL PATH " + path + " index " + i);
map = map[_p];
}
return map;
}
function pushTypes(list, types,targ$2) {
for (var i=0; i<types.length; i++) {
var t = types[i];
var nt;
if (t.t === 'u') {
nt=applyUnionType(t, targ$2);
} else if (t.t === 'i') {
nt=applyIntersectionType(t, targ$2);
} else if (typeof(t)==='string') {
nt=typeLiteral$meta({Type$typeLiteral:targ$2[t]},targ$2);
} else {
nt=typeLiteral$meta({Type$typeLiteral:t},targ$2);
}
if (nt && !list.contains(nt))list.push(nt);
}
return list;
}
function applyUnionType(ut,targ$2) { //return AppliedUnionType
var cases = pushTypes([], flattentype$(ut.l,'u'),targ$2);
return AppliedUnionType$jsint(ut, $arr$(cases,ut), {Union$AppliedUnionType:ut});
}
function applyIntersectionType(it,targ$2) { //return AppliedIntersectionType
var sats = pushTypes([], flattentype$(it.l,'i'),targ$2);
return AppliedIntersectionType$jsint(it, $arr$(sats,it), {Union$AppliedIntersectionType:it});
}
function fmp$(m,v,p) {
return modules$meta().find(m,v).findPackage(p);
}
ex$.fmp$=fmp$;
function lmp$(x,p) {
return Modulo$jsint(x).findPackage(p);
}
ex$.lmp$=lmp$;
function mmfca$(rt, ta) {
if (!ta.t.$$)return rt;
ta=ta.t;
if (extendsType({t:rt},{t:ta}))return ta;
if (extendsType({t:ta},{t:rt}))return rt;
var mm=getrtmm$$(ta);
if (mm) {
var st;while((st=mm['super'])) {
if (extendsType({t:rt},st)){
return st.t;
}
mm=getrtmm$$(st.t);
}
mm=getrtmm$$(ta);
var sts=mm['sts'];
if (sts) for(var i=0;i<sts.length;i++) {
st=sts[i];
if (st.t.$$ && extendsType({t:rt},st))return st.t;
}
}
return rt;
}
ex$.mmfca$=mmfca$;
function getnpmem$(proto,n) {
if (n.substring(0,6)==='$prop$')return undefined;
if (proto['$prop$get'+n[0].toUpperCase()+n.substring(1)])return undefined;
return proto[n];
}
function _findTypeFromModel(pkg,mdl,cont) {
var mod = pkg.container;
var nm = mdl.nm;
var mt = mdl['mt'];
if (mt === 'a' || mt === 'g' || mt === 'o' || mt === 's') {
nm = '$prop$get' + nm[0].toUpperCase() + nm.substring(1);
}
if (cont) {
var imm=getrtmm$$(cont);
if (mt==='c'||mt==='i')nm=nm+'$'+imm.d[imm.d.length-1];
}else if (pkg.suffix) {
nm+=pkg.suffix;
}
var out=cont?cont.$$.prototype:mod.meta;
var rv=out[nm];
if (rv===undefined)rv=out['$_'+nm];
if (rv===undefined){
rv=out['$init$'+nm];
if (typeof(rv)==='function')rv=rv();
}
if(rv === undefined){
var unsh=out['$pkgunsh$'+pkg.name.$_replace('.','$')];
rv = unsh[nm];
}
return rv;
}
function qname$(mm) {
if (mm.t==='u' || mm.t==='i') {
var qn='';
for (var i=0; i < mm.l.length; i++) {
if (i>0) {
qn+= mm.t==='u' ? '|' : '&';
}
qn+=qname$(mm.l[i]);
}
return qn;
}
if (mm.t) {
mm=mm.t;
}
if (mm.$crtmm$)mm=getrtmm$$(mm);
if (!mm.d && mm._alias)mm=getrtmm$$(mm._alias);
if (!mm.d)return "[unnamed type]";
var qn=mm.d[0];
if (qn==='$')qn='ceylon.language';
for (var i=1; i<mm.d.length; i++){
var n=mm.d[i];
var p=n.indexOf('$');
if(p!==0)qn+=(i==1?"::":".")+(p>0?n.substring(0,p):n);
}
return qn;
}
function tparms2targs$(c,t){
var mm=getrtmm$$(c).tp;
if (mm) {
if (Object.keys(mm).length == t.size) {
var r={},i=0;
for (var k in mm) {
r[k]=t.$_get(i++).$$targs$$.Target$Type;
}
return r;
}
}
return undefined;
}
var reservedWords$ = [
"undefined", "boolean", "byte", "char", "const",
"debugger", "default", "delete", "do", "double", "enum", "export", "false",
"final", "float", "goto", "implements", "instanceof", "int", "long",
"native", "new", "null", "private", "protected", "public", "short", "static",
"synchronized", "throws", "transient", "true", "typeof", "var", "volatile",
"with", "abstract", "process", "require",
"Date", "Object", "Boolean", "Error", "Number", "RegExp",
"hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable",
"Function",
"call", "arguments", "caller", "apply", "bind", "eval",
"toFixed", "valueOf", "toPrecision", "toExponential",
"String",
"charAt", "strike", "fixed", "sub", "charCodeAt",
"trimLeft", "toLocaleUpperCase", "toUpperCase", "fontsize", "search",
"toLocaleLowerCase", "small", "big", "fontcolor", "blink", "trim",
"bold", "match", "substr", "trimRight", "replace", "split", "sup", "link",
"localeCompare", "valueOf", "substring", "toLowerCase", "italics", "anchor",
"Array",
"toLocaleString", "splice", "map", "forEach", "reverse",
"join", "push", "shift", "pop", "sort", "unshift", "reduceRight", "reduce",
"every", "filter",
"length", "toString", "constructor", "prototype",
"concat", "indexOf", "lastIndexOf", "slice", "get"
];
function escapePropertyName$(name){
if (reservedWords$.indexOf(name)>=0)
return '$_'+name;
return name;
}
function getValuePropertyName$(propertyName){
return '$prop$get'+propertyName[0].toUpperCase()+propertyName.substring(1);
}
function findMethodByNameFromPrototype$(proto, name){
var escapedName = escapePropertyName$(name);
var propname = getValuePropertyName$(name);
if(proto[propname] !== undefined)
return undefined;
var decl = proto[escapedName];
if (decl===undefined) {
for (var key in proto) {
propname=getValuePropertyName$(key);
if (!key.startsWith("$prop$get") && proto[propname]===undefined && typeof(proto[key])==='function') {
var mm = getrtmm$$(proto[key]);
var mod = mm && get_model(mm);
if (mod && mod.nm === name) {
return proto[key];
}
}
var m$ = proto[propname] ? undefined : proto[key];
decl = typeof(m$)==='function' && m$.$$===undefined ? getrtmm$$(m$) : undefined;
if (decl && decl.d && decl.d[decl.d.length-1]===name){
return proto[key];
}else{
decl = undefined;
}
}
}
return decl;
}
function rejectInheritedOrPrivate$(mm, tipo, noInherit){
if (noInherit) {
return (mm&&mm.$cont!==tipo);
}else{
return ((mm.pa & 1) == 0);
}
}
function findModuleOrThrow$(name, version){
var mod = modules$meta().find(name, version);
if(!mod)
throw AssertionError("Module "+name+"/"+version+" is not available");
return mod;
}
ex$.findModuleOrThrow$=findModuleOrThrow$;
function validate$params(ps,t,msg,nothrow) {
if (t.t===Nothing)return true;
if (!ps || ps.length==0) {
if (t.t===Empty)return true;
} else if (t.t==='T') {
if (ps.length==t.l.length) {
for (var i=0;i<ps.length;i++) {
if (!extendsType(t.l[i],ps[i].$t)) {
if (nothrow)return false;else throw IncompatibleTypeException$meta$model(msg);
}
}
return true;
}
} else if (t.t===Empty) {
if (!ps || ps.length===0)return true;
var countDefs=0;
for (var i=0;i<ps.length;i++)if (ps[i].def)countDefs++;
if (countDefs===ps.length)return true;
} else if (t.t==='u' && ps.length===1) {
if (extendsType(ps[0].$t,t))return true;
} else if (t.t===Sequential || t.t===Sequence) {
if (extendsType(ps[0].$t,t.a.Element$Sequential||t.a.Element$Sequence))return true;
} else { //it's already a tuple, navigate it
console.trace("TODO!!!! validate$params with Tuple type");
}
if (nothrow)return false;
throw IncompatibleTypeException$meta$model(msg);
}
function validate$typeparams(t,tparms,types) {
if (tparms) {
if (types===undefined||types.size<1)
throw TypeApplicationException$meta$model("Missing type arguments");
if (!types.$_get)types=types.sequence();
var i=0;
t.a={};
for (var tp in tparms) {
var _type=types.$_get(i);
if (_type===undefined)
throw TypeApplicationException$meta$model("Missing type argument for " + tp);
var _tp = tparms[tp];
var _ta = _type===nothingType$meta$model()?{t:Nothing}:_type.tipo;
t.a[tp]= _ta.t ? _ta : {t:_type.tipo};
if ((_tp.sts && _tp.sts.length>0) || (_tp.of && _tp.of.length > 0)) {
var restraints=(_tp.sts && _tp.sts.length>0)?_tp.sts:_tp.of;
for (var j=0; j<restraints.length;j++) {
var _r=restraints[j];if(typeof(_r)==='function')_r=getrtmm$$(_r).$t;
if (!extendsType(t.a[tp],_r))
throw TypeApplicationException$meta$model("Type argument for " + tp + " violates type parameter constraints");
}
}
i++;
}
}
}
function tupleize$params(ps,aux) {
if (!ps || ps.length==0)return {t:Empty};
var tupa={t:'T',l:[]};
for (var i=ps.length-1; i>=ps.length;i--) {
var e=ps[i].$t;
if (typeof(e)==='string'&&aux&&aux[e])e=aux[e];
if (tupa.t==='T') {//tuple
tupa.l.unshift(e);
} else { //union
tupa={t:'T',l:[e,tupa]};
}
if (ps[i].def) {
tupa={t:'u',l:[{t:Empty},tupa]};
}
}
return tupa;
}
function resolve$typearg(ta,mm,$$targs$$) {
var r;
if ($$targs$$ && $$targs$$[ta]) {
r=$$targs$$[ta];
if (typeof(r)!=='string')return r;
}
r=mm.tp?mm.tp[ta]:undefined;
while (!r && mm.$cont) {
mm=mm.$cont;
if (mm.tp)r=mm.tp[ta];
}
if (r) {
if (r.sts)
return r.sts.length==1?r.sts[0]:{t:'i',l:r.sts};
return {t:Anything};
}
console.log("MISSING definition of type argument " + ta + " in " + qname$(mm));
return {t:Anything};
}
function convert$params(mm,a,$$targs$$) {
function sequenceToArray(as) {
if (is$(as,{t:Sequential})) {
var _a=[];
for (var i=0;i<as.size;i++)_a.push(as.$_get(i));
return _a;
}
return as;
}
var ps=mm.ps;
if (ps===undefined || ps.length===0){
if (a && a.size>0)
throw InvocationException$meta$model("Passing parameters to no-args callable");
return [];
}
if (a===undefined) {
a=[];
} else if (a.nativeArray) {
a=a.nativeArray();
} else if (a.arr$) {
a=a.arr$;
} else {
a=sequenceToArray(a);
}
var type0;
if (a.length===1 && (Array.isArray(a[0]) || is$(a[0],{t:Sequential}))
&& (ps.length!=1 || (!extendsType((type0=restype2$(ps[0].$t,$$targs$$)),{t:Sequential}) && !is$(a[0],type0)))) {
a=sequenceToArray(a[0]);
}
var fa=[],sarg;
for (var i=0; i<ps.length;i++) { //check def/seq params
var p=ps[i];
var val_t=restype2$(sarg?sarg.$$targs$$.a.Element$Iterable:p.$t,$$targs$$);
if (typeof(val_t)==='string')val_t=resolve$typearg(val_t,mm,$$targs$$);
if (a[i]===undefined) {
if (p.def||p.seq) {
if (p.seq && p.$t.t===Sequence)
throw InvocationException$meta$model("Not enough arguments to function. Expected 1 but got only 0");
fa.push(undefined);
} else {
throw InvocationException$meta$model("Wrong number of arguments (should be " + ps.length + ")");
}
} else if (sarg) {
sarg.push(a[i]);
} else if (p.seq) {
for (var eta in p.$t.a)if(eta.startsWith("Element$"))val_t=p.$t.a[eta];
if (typeof(val_t)==='string')val_t=resolve$typearg(val_t,mm,$$targs$$);
if (is$(a[i],{t:Iterable,a:{Element$Iterable:val_t}})) {
fa.push(a[i]);
val_t={t:Iterable,a:{Element$Iterable:val_t}};
} else {
sarg=[];
for (var j=i; j<a.length;j++){
if (!is$(a[j],val_t))throw IncompatibleTypeException$meta$model("Wrong type for argument " + j + ", expected " + typeLiteral$meta({Type$typeLiteral:val_t},$$targs$$).string + " got " + className(a[j]));
sarg.push(a[j]);
}
fa.push(sarg.$sa$(val_t));
i=j;
}
} else {
fa.push(a[i]);
}
if (a[i]!==undefined && !is$(a[i],val_t))throw IncompatibleTypeException$meta$model("Wrong type for argument " + i + ", expected " + typeLiteral$meta({Type$typeLiteral:val_t},$$targs$$).string + " got " + className(a[i]));
}
if (a.length>i)throw InvocationException$meta$model("Too many arguments");
a = fa;
return a;
}
function _openTypeFromTarg(targ,o) {
var lit = undefined;
var mm = undefined;
if (targ.t==='u' || targ.t==='i') {
var tl=[];
for (var i=0; i < targ.l.length; i++) {
var _ct=targ.l[i];
if (typeof(_ct)==='string') {
tl.push(OpenTvar$jsint(OpenTypeParam$jsint(o,_ct)));
} else {
tl.push(_ct.t?_openTypeFromTarg(_ct,o):_ct);
}
}
return (targ.t==='u'?FreeUnion$jsint:FreeIntersection$jsint)($arr$(tl,{t:OpenType$meta$declaration}));
} else if (targ.t==='T') {
mm=getrtmm$$(Tuple);
var _m = typeof($CCMM$)==='function'?$CCMM$():$CCMM$;
var _mod = modules$meta().find(_m['$mod-name'],_m['$mod-version']);
var pkg_ = _mod.findPackage("ceylon.language");
if(targ.l.length == 0){
lit = openClass$jsint(pkg_, Empty);
return FreeClass$jsint(lit);
}
var targ2 = {t: Empty};
var elementTypes = [];
for (var i=targ.l.length-1; i >= 0 ; i--) {
var ct = targ.l[i];
elementTypes.push(ct);
var elementUnion = elementTypes.length == 1
? ct : {t:'u', l:elementTypes.slice()};
targ2 = {t:Tuple, a:{'Element$Tuple':elementUnion, 'First$Tuple':ct, 'Rest$Tuple':targ2}};
}
lit = openClass$jsint(pkg_, Tuple);
lit._targs = targ2.a;
return FreeClass$jsint(lit);
} else {
mm=getrtmm$$(targ.t);
lit = typeLiteral$meta({Type$typeLiteral:targ.t});
}
if (targ.a && lit)lit._targs=targ.a;
var mdl = get_model(mm);
if (mdl.mt==='i') {
return FreeInterface$jsint(lit);
} else if (mdl.mt==='c' || mdl.mt==='o') {
return FreeClass$jsint(lit);
}
console.log("Don't know WTF to return for " + lit + " metatype " + mdl.mt);
}
function memberDeclaringType$($$member){
var mm = getrtmm$$($$member.tipo);
var m2 = get_model(mm);
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
return (m2['mt']==='c'?openClass$jsint:OpenInterface$jsint)(fmp$(_m['$mod-name'],_m['$mod-version'],mm.d[0]), $$member.tipo);
}
function _ocoitarg_$(coi,makeItem,maptarg) {
var tps=coi.declaration.tipo.$crtmm$.tp;
if (tps) {
var rtps = coi.declaration._targs;
var targs={};
var ord=[];
for (var tpn in tps) {
var rtp=rtps&&rtps[tpn];
var otp=OpenTypeParam$jsint(coi.declaration.tipo,tpn);
var targ;
if (rtp===undefined) {
targ = OpenTvar$jsint(otp);
} else if (typeof(rtp)==='string') {
targ = OpenTvar$jsint(OpenTypeParam$jsint(coi.declaration.tipo,rtp));
} else {
if (rtp.t==='i'||rtp.t==='u') {
var nrtp={t:rtp.t,l:[]};
for (var i=0;i<rtp.l.length;i++) {
var _ct=rtp.l[i];
nrtp.l.push(typeof(_ct)==='string'?OpenTvar$jsint(OpenTypeParam$jsint(coi.declaration.tipo,_ct)):_ct);
}
rtp=nrtp;
}
targ = _openTypeFromTarg(rtp,coi.declaration);
}
targs[otp.qualifiedName]=[otp,makeItem(coi,rtp||0,targ)];
ord.push(otp.qualifiedName);
}
return TpMap$jsint(targs,ord,{V$TpMap:maptarg});
}
return empty();
}
function ocoitarg$(coi) {
return _ocoitarg_$(coi,function(c,t,a){return a;},
{t:OpenType$meta$declaration});
}
function ocoitargv$(coi) {
return _ocoitarg_$(coi,function(c,t,a){
var iance;
if (t.uv==='out'){
iance=covariant$meta$declaration();
} else if (t.uv==='in'){
iance=contravariant$meta$declaration();
} else {
iance=invariant$meta$declaration();
}
return tpl$([a,iance]);
},{t:'T',l:[{t:OpenType$meta$declaration},{t:Variance$meta$declaration}]});
}
function _ocoitargl_$(coi,makeItem,listarg){
var tps=coi.declaration.tipo.$crtmm$.tp;
if (tps) {
var rtps = coi.declaration._targs;
var ord=[];
for (var tpn in tps) {
var rtp=rtps&&rtps[tpn];
var otp=OpenTypeParam$jsint(coi.declaration.tipo,tpn);
var targ;
if (rtp===undefined) {
targ = OpenTvar$jsint(otp);
} else if (typeof(rtp)==='string') {
targ = OpenTvar$jsint(OpenTypeParam$jsint(coi.declaration.tipo,rtp));
} else {
if (rtp.t==='i'||rtp.t==='u') {
var nrtp={t:rtp.t,l:[]};
for (var i=0;i<rtp.l.length;i++) {
var _ct=rtp.l[i];
nrtp.l.push(typeof(_ct)==='string'?OpenTvar$jsint(OpenTypeParam$jsint(coi.declaration.tipo,_ct)):_ct);
}
rtp=nrtp;
}
targ = _openTypeFromTarg(rtp,coi.declaration);
}
ord.push(makeItem(coi,rtp||0,targ));
}
return ord.$sa$(listarg);
}
return empty();
}
function ocoitargl$(coi) {
return _ocoitargl_$(coi,function(c,t,a){return a;},
{t:OpenType$meta$declaration});
}
function ocoitargvl$(coi) {
return _ocoitargl_$(coi,function(c,t,a){
var iance;
if (t.uv==='out'){
iance=covariant$meta$declaration();
} else if (t.uv==='in'){
iance=contravariant$meta$declaration();
} else {
iance=invariant$meta$declaration();
}
return tpl$([a,iance]);
},{t:'T',l:[{t:OpenType$meta$declaration},{t:Variance$meta$declaration}]});
}
function ocoistr$(coi){
var s=coi.declaration.qualifiedName;
var tps=coi.declaration.tipo.$crtmm$.tp;
if (tps) {
var rtps=coi.declaration._targs;
s+="<";
var first=true;
for (var t in tps) {
var rtp=rtps&&rtps[t];
if (first)first=false;else s+=",";
if (rtp.uv)s+=rtp.uv+' ';
if (rtp===undefined||typeof(rtp)==='string') {
if(typeof(rtp)==='string')t=rtp;
if (t.indexOf('$')>0)t=t.substring(0,t.indexOf('$'));
s+=t;
} else {
s+=_openTypeFromTarg(rtp).string;
}
}
s+=">";
}
return s;
}
function thutarg$(t) {
if (typeof t === 'string')return true;
if (t.t === 'u' || t.t === 'i') {
for (var i=0; i < t.l.length; i++){
if (thutarg$(t.l[i]))return true;
}
} else if (t.a){
for (var i in t.a){
if (thutarg$(t.a[i]))return true;
}
}
return false;
}
function restype$(root,t) {
if (!thutarg$(t))return t;
if (typeof t === 'string'){
function ft$(rt) {
if (rt.a && rt.a[t]) {
t=rt.a[t];
return (typeof(t)==='string')?restype$(root,t):t;
}
var mm=getrtmm$$(rt.t?rt.t:rt);
if (mm && mm.sts) {
for (var i=0;i<mm.sts.length;i++){
var st=mm.sts[i];
if (st.a && st.a[t]){
return st.a[t];
}
}
for (i=0;i<mm.sts.length;i++){
st=ft$(mm.sts[i]);
if (st)return st;
}
}
}
return restype$(root,ft$(root));
}
var r={t:t.t};
if (t.t === 'u' || t.t === 'i'){
r.l=[];
for (var i=0;i<t.l.length;i++){
r.l.push(restype$(root,t.l[i]));
}
} else if (t.a){
r.a={};
for (var i in t.a){
r.a[i]=restype$(root,t.a[i]);
}
}
return r;
}
function restype2$(t,targs) {
if (t===undefined)return undefined;
if (!thutarg$(t))return t;
if (typeof t === 'string'){
return restype2$(targs[t])||t;
}
var r={t:t.t};
if (t.t === 'u' || t.t === 'i'){
r.l=[];
for (var i=0;i<t.l.length;i++){
r.l.push(restype2$(t.l[i],targs));
}
} else if (t.a){
r.a={};
for (var i in t.a){
r.a[i]=restype2$(t.a[i],targs);
}
}
return r;
}
function ser$et$(t) {
if (t===nothingType$meta$model())return{t:Nothing};
if (t.tipo.t)return t.tipo;
var r={t:t.tipo};
if (t.$targs)r.a=t.$targs;
return r;
}
ex$.ser$et$=ser$et$;
function value2type$(t){
if (t.t.$$ || t.t==='u' || t.t==='i' || t.t==='T')return t;
while (t.t.$$===undefined){
t=getrtmm$$(t.t);
t=t.sts?t.sts[0]:t['super'];
}
var mm=getrtmm$$(t.t);
if (mm) {
var mod=get_model(mm);
if (mod.mt==='o') {
var nt={t:mm.$t.t};
if (t.a)nt.a=t.a;
return nt;
}
}
return t;
}
function coigetcoi$(coi,name$2,types$3,$$$mptypes,noInherit){
if (noInherit && !extendsType($$$mptypes.Container$getClassOrInterface,{t:coi.tipo})) {
throw IncompatibleTypeException$meta$model("Incompatible container");
}
if (!extendsType($$$mptypes.Kind$getClassOrInterface, {t:ClassOrInterface$meta$model})) {
throw IncompatibleTypeException$meta$model("Kind must be ClassOrInterface");
}
var _tipo=mmfca$(coi.tipo,$$$mptypes.Container$getClassOrInterface);
if(types$3===undefined){types$3=empty();}
var mm = getrtmm$$(_tipo);
var nom = name$2 + '$' + mm.d[mm.d.length-1];
var ic = _tipo.$$.prototype[nom];
if (!ic) {
if (noInherit)return null;
var pere=mm['super'];
while (!ic && pere) {
mm=getrtmm$$(pere.t);
nom=mm&&mm.d?name$2+'$'+mm.d[mm.d.length-1]:undefined;
if (nom)ic=_tipo.$$.prototype[nom];
if (!ic)pere=mm['super'];
}
}
if (ic) {
mm = getrtmm$$(ic);
var md = get_model(mm);
var rv;
var ict={t:ic};
var _cont={t:_tipo};
if (coi.$targs)_cont.a=coi.$targs;
if (md.mt==='i') {
if (!extendsType({t:Interface$meta$model},{t:$$$mptypes.Kind$getClassOrInterface.t}))throw IncompatibleTypeException$meta$model("Member " + name$2 + " is an interface");
validate$typeparams(ict,ic.$crtmm$.tp,types$3);
rv=AppliedMemberInterface$jsint(ic, {Container$AppliedMemberInterface:_cont,Type$AppliedMemberInterface:ict});
} else if (md.mt==='c'){
if (!extendsType({t:Class$meta$model},{t:$$$mptypes.Kind$getClassOrInterface.t}))throw IncompatibleTypeException$meta$model("Member " + name$2 + " is a class");
validate$typeparams(ict,ic.$crtmm$.tp,types$3);
rv=AppliedMemberClass$jsint(ic, {Container$AppliedMemberClass:_cont,Type$AppliedMemberClass:ict, Arguments$AppliedMemberClass:$$$mptypes.Arguments$getClassOrInterface});
} else {
throw IncompatibleTypeException$meta$model("Member " + name$2 + " is not a class or interface");
}
if (ict.a)rv.$targs=ict.a;
rv.$parent=coi;
return rv;
}
return null;
}
function coiclasse$(coi,anntypes,$$$mptypes,noInherit){
var mems=[];
if (anntypes===undefined)anntypes=empty();
var ats=coi$get$anns(anntypes);
var _tipo=mmfca$(coi.tipo,$$$mptypes.Container$getClasses);
for (m in _tipo.$$.prototype) {
var mem=getnpmem$(_tipo.$$.prototype,m);
if (mem && mem.$$) {
var mm=getrtmm$$(mem);
if (mm && mm.d && mm.d[mm.d.length-2]==='$c') {
if (noInherit && mm.$cont!==coi.tipo)continue;
if (!extendsType({t:mem},$$$mptypes.Type$getClasses))continue;
var anns=allann$(mm);
if (anns && coi$is$anns(anns,ats) && validate$params(mm.ps,$$$mptypes.Arguments$getClasses,'',1)) {
mems.push(AppliedMemberClass$jsint(mem, {Container$AppliedMemberClass:_tipo,Type$AppliedMemberClass:{t:mem}, Arguments$AppliedMemberClass:$$$mptypes.Arguments$getClasses}));
}
}
}
}
return mems.$sa$({t:MemberClass$meta$model,a:{Arguments$MemberClass:$$$mptypes.Arguments$getClasses,Container$MemberClass:$$$mptypes.Container$getClasses,Type$MemberClass:$$$mptypes.Type$getClasses}});
}
function coicla$(coi,name,types,cont,noInherit) {
var rv=coigetcoi$(coi,name,types,{Container$getClassOrInterface:cont,
Kind$getClassOrInterface:Class$meta$model},noInherit);
if (rv && !is$(rv, {t:AppliedMemberClass$jsint})) {
throw IncompatibleTypeException$meta$model("Member " + name + " is not a class");
}
return rv;
}
function coimoddcl$(ifc) {
if (ifc._decl)return ifc._decl;
var mm = getrtmm$$(ifc.tipo);
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
var cls = is$(ifc,{t:ClassModel$meta$model});
ifc._decl = (cls?openClass$jsint:OpenInterface$jsint)(fmp$(_m['$mod-name'],_m['$mod-version'],mm.d[0]), ifc.tipo);
return ifc._decl;
}
function clsparamtypes(cls) {
var ps=cls.tipo.$crtmm$.ps;
if (!ps || ps.length==0)return empty();
var r=[];
for (var i=0; i < ps.length; i++) {
var pt=ps[i].$t;
if (typeof(pt)==='string'){
if (!cls.$targs)throw TypeApplicationException$meta$model("This class model needs type parameters " + cls.string);
pt=cls.$targs[pt];
if (!pt)throw TypeApplicationException$meta$model("Class model is missing type argument for "
+ cls.string + "<" + ps[i].$t + ">");
}
r.push(typeLiteral$meta({Type$typeLiteral:pt},cls.$targs));
}
return r.$sa$({t:Type$meta$model,a:{t:Anything}});
}
function coigetifc$(coi,anntypes,$$$mptypes,noInherit){
var mems=[];
if (anntypes===undefined)anntypes=empty();
var ats=coi$get$anns(anntypes);
var _tipo=mmfca$(coi.tipo,$$$mptypes.Container$getInterfaces);
for (m in _tipo.$$.prototype) {
var mem=getnpmem$(_tipo.$$.prototype,m);
if (mem && mem.$$) {
var mm=getrtmm$$(mem);
if (mm && mm.d && mm.d[mm.d.length-2]==='$i') {
if (noInherit && mm.$cont!==coi.tipo)continue;
if (!extendsType({t:mem},$$$mptypes.Type$getInterfaces))continue;
var anns=allann$(mm);
if (anns && coi$is$anns(anns,ats)) {
mems.push(AppliedMemberInterface$jsint(mem, {Container$AppliedMemberInterface:_tipo,Type$AppliedMemberInterface:{t:mem}}));
}
}
}
}
return mems.$sa$({t:MemberInterface$meta$model,a:{Container$MemberInterface:$$$mptypes.Container$getInterfaces,Type$MemberInterface:$$$mptypes.Type$getInterfaces}});
}
function coiifc$(coi,name,types,cont,noInherit){
var rv=coigetcoi$(coi,name,types,{Container$getClassOrInterface:cont,
Kind$getClassOrInterface:Interface$meta$model},noInherit);
if (rv && !is$(rv, {t:AppliedMemberInterface$jsint})) {
throw IncompatibleTypeException$meta$model("Member " + name + " is not an interface");
}
return rv;
}
function coiatr$(coi,name,m,noInherit){
if (noInherit && !extendsType(m.Container$getAttribute,{t:coi.tipo})) {
throw IncompatibleTypeException$meta$model("Incompatible Container type argument");
}
var _tipo=mmfca$(coi.tipo,m.Container$getAttribute);
var nom = '$prop$get' + name[0].toUpperCase() + name.substring(1);
var at = _tipo.$$.prototype[nom];
if (!at) {
nom = '$prop$get$_' + name;
at = _tipo.$$.prototype[nom];
if (!at) {
for (nom in _tipo.$$.prototype) {
if (nom.startsWith("$prop$get$")) {
var mm=getrtmm$$(_tipo.$$.prototype[nom]);
if (mm && mm.d && mm.d[mm.d.length-1].startsWith(name+"$")) {
at=_tipo.$$.prototype[nom];break;
}
}
}
}
}
if (!at)return null;
var mm=getrtmm$$(at);
var _t=m.Get$getAttribute;
if (mm && mm.$t) {
if (!extendsType(mm.$t,_t))throw IncompatibleTypeException$meta$model("Incompatible Get type argument");
if (!extendsType(m.Set$getAttribute,at.set?mm.$t:{t:Nothing}))throw IncompatibleTypeException$meta$model("Incompatible Set type argument");
_t=mm.$t;
}
if(rejectInheritedOrPrivate$(mm, coi.tipo, noInherit))
return null;
var rv=AppliedAttribute(name, at, {Get$Attribute:_t,Set$Attribute:at.set?_t:{t:Nothing}, Container$Attribute:{t:_tipo}});
if (coi.$targs)rv.$$targs$$.Container$Attribute.a=coi.$targs;
rv.$parent=coi;
return rv;
}
function coigetatr$(coi,anntypes,$$$mptypes,noInherit){
var mems=[];
if (anntypes===undefined)anntypes=empty();
var ats=coi$get$anns(anntypes);
var _tipo=mmfca$(coi.tipo,$$$mptypes.Container$getAttributes);
for (m in _tipo.$$.prototype) {
if (m.substring(0,6)==='$prop$') {
var mm=getrtmm$$(_tipo.$$.prototype[m]);
if (mm) {
if(rejectInheritedOrPrivate$(mm, coi.tipo, noInherit))
continue;
if (!extendsType(mm.$t,$$$mptypes.Get$getAttributes))continue;
var setter=_tipo.$$.prototype[m].set && extendsType($$$mptypes.Set$getAttributes,mm.$t);
if ($$$mptypes.Set$getAttributes.t!==Nothing && !setter)continue;
var anns=allann$(mm);
if (anns && coi$is$anns(anns,ats)) {
var atname=mm.d[mm.d.length-1];
if (atname.indexOf('$')>0)atname=atname.substring(0,atname.indexOf('$'));
mems.push(AppliedAttribute(atname,_tipo.$$.prototype[m],{Container$Attribute:{t:coi.tipo},Get$Attribute:mm.$t,Set$Attribute:setter?mm.$t:{t:Nothing}}));
}
}
}
}
return mems.$sa$({t:Attribute$meta$model,a:{Set$Attribute:$$$mptypes.Set$getAttributes,Container$Attribute:$$$mptypes.Container$getAttributes,Get$Attribute:$$$mptypes.Get$getAttributes}});
}
function coimtd$(coi,name,types,$$$mptypes,noInherit){
if (noInherit && !extendsType($$$mptypes.Container$getMethod,{t:coi.tipo})) {
throw IncompatibleTypeException$meta$model("Incompatible Container type argument");
}
if (types===undefined)types=empty();
var _tipo=mmfca$(coi.tipo,$$$mptypes.Container$getMethod);
var fun = findMethodByNameFromPrototype$(_tipo.$$.prototype, name);
if(!fun)
return null;
var mm=getrtmm$$(fun);
var _t=$$$mptypes.Type$getMethod;
var _a=$$$mptypes.Arguments$getMethod;
if (mm) {
if (mm.$t){
_t=mm.$t;
if (typeof(_t)==='string') {
var _ta;
if (coi.$targs && coi.$targs[_t])_t=coi.$targs[_t];
else if ($$$mptypes.Container$getMethod && $$$mptypes.Container$getMethod.a && $$$mptypes.Container$getMethod.a[_t])_t=$$$mptypes.Container$getMethod.a[_t];
else if (mm.tp && mm.tp[_t])_ta=mm.tp[_t];
else if (_tipo.$crtmm$.tp && _tipo.$crtmm$.tp[_t])_ta=_tipo.$crtmm$.tp[_t];
if (_ta && _ta.sts)_t=_ta.sts.length===1?_ta.sts[0]:{t:'i',l:_ta.sts};
if (typeof(_t)==='string')_t={t:Anything};
}
if (!extendsType(_t,$$$mptypes.Type$getMethod))throw IncompatibleTypeException$meta$model("Incompatible Type argument");
}
validate$params(mm.ps,_a,"Wrong number of Arguments for getMethod");
_a=tupleize$params(mm.ps);
}
if(rejectInheritedOrPrivate$(mm, coi.tipo, noInherit)){
return null;
}
return AppliedMethod$jsint(fun,$ci2na$(types),{Container$AppliedMethod:{t:_tipo},Type$AppliedMethod:_t,Arguments$AppliedMethod:_a});
}
function coigetmtd$(coi,anntypes,$$$mptypes,noInherit){
var mems=[];
if (anntypes===undefined)anntypes=empty();
var ats=coi$get$anns(anntypes);
var _tipo=mmfca$(coi.tipo,$$$mptypes.Container$getMethods);
for (m in _tipo.$$.prototype) {
var mem=getnpmem$(_tipo.$$.prototype,m);
if (mem && mem.$$===undefined) {
var mm=getrtmm$$(mem);
if (mm && mm.d && mm.d[mm.d.length-2]=='$m') {
if(rejectInheritedOrPrivate$(mm, coi.tipo, noInherit))
continue;
if (!extendsType(mm.$t,$$$mptypes.Type$getMethods))continue;
var anns=allann$(mm);
if (!mm.tp && anns && coi$is$anns(anns,ats) && validate$params(mm.ps,$$$mptypes.Arguments$getMethods,'',1)) {
var types=[];
if (mm.ps) for (var i=0; i<mm.ps.length;i++) {
types.push(typeLiteral$meta({Type$typeLiteral:mm.ps[i].$t}));
}
mems.push(AppliedMethod$jsint(mem,undefined,{Container$AppliedMethod:{t:_tipo},
Type$AppliedMethod:mm.$t,Arguments$AppliedMethod:types.length?{t:'T',l:types}:{t:Empty}}));
}
}
}
}
return mems.$sa$({t:Method$meta$model,a:{Container$Method:$$$mptypes.Container$getMethods,Arguments$Method:$$$mptypes.Arguments$getMethods,Type$Method:$$$mptypes.Type$getMethods}});
}
function coisattype$(coi){
var ints = coi.tipo.$crtmm$.sts;
if (ints && ints.length) {
var rv = [];
for (var i=0; i < ints.length; i++) {
var ifc = coirestarg$(coi,ints[i]);
var mm=getrtmm$$(ifc.t);
if (mm.$cont) {
rv.push(AppliedMemberInterface$jsint(ifc.t, {Type$AppliedMemberInterface:ifc,Container$AppliedMemberInterface:{t:mm.$cont}}));
} else {
rv.push(AppliedInterface$jsint(ifc.t, {Type$AppliedInterface:ifc}));
}
}
return $arr$(rv,{t:InterfaceModel$meta$model,a:{Type$InterfaceModel:{t:Anything}}});
}
return empty();
}
function coiexttype$(coi){
var mm = getrtmm$$(coi.tipo);
var sc = mm['super'];
if (sc === undefined)return null;
var scmm = getrtmm$$(sc.t);
var _t=coirestarg$(coi,sc);
var ac;
if (scmm.$cont) {
ac=AppliedMemberClass$jsint(sc.t, {Type$AppliedMemberClass:_t,Arguments$AppliedMemberClass:{t:Sequential,a:{Element$Iterable:{t:Anything}}},Container$AppliedMemberClass:{t:scmm.$cont}});
} else {
ac=AppliedClass$jsint(sc.t, {Type$AppliedClass:_t,Arguments$AppliedClass:{t:Sequential,a:{Element$Iterable:{t:Anything}}}});
}
if (_t.a)ac.$targs=_t.a;
return ac;
}
function coicase$(coi){
var cts = coi.tipo.$crtmm$.of;
if (cts && cts.length > 0) {
var rv=[];
for (var i=0; i < cts.length; i++) {
if (typeof(cts[i])==='function') {
rv.push(cts[i]());
}
}
return rv.$sa$({t:coi.tipo});
}
return empty();
}
function coistr$(coi) {
if (coi.tipo===Tuple && coi.$$targs$$.Target$Type.t==='T' && coi.$$targs$$.Target$Type.l){
var tn='[';
var ttl=coi.$$targs$$.Target$Type.l;
for (var i=0; i<ttl.length;i++) {
if (i>0)tn+=',';
if (ttl[i].t==='u' && ttl[i].l.length===2 && ttl[i].seq) {
if (ttl[i].l[0].t===Sequential || ttl[i].l[0].t===Sequence) {
tn+=qname$(ttl[i].l[1])+(ttl[i].seq===2?'+':'*');
continue;
} else if (ttl[i].l[1].t===Sequential || ttl[i].l[1].t===Sequence) {
tn+=qname$(ttl[i].l[0])+(ttl[i].seq===2?'+':'*');
continue;
}
}
tn+=qname$(ttl[i]);
if (ttl[i].seq)tn+=ttl[i].seq===2?'+':'*';
}
tn+=']';
return tn;
}
var mm=getrtmm$$(coi.tipo);
var cc=[coi];
var src=coicont$(coi);
while(src) {
cc.unshift(src);
src=coicont$(src);
}
mm=getrtmm$$(cc[0].tipo);
var qn=mm.d[0];
if (qn==='$')qn='ceylon.language';
qn+='::' + mm.d[mm.d.length-1];
if (qn.indexOf('$')>0)qn=qn.substring(0,qn.indexOf('$'));
function simplename(t) {
var s='';
if (t.t==='i'||t.t==='u') {
for (var i=0;i<t.l.length;i++) {
if (s.length)s+= t.t==='i'?'&':'|';
s+=simplename(t.l[i]);
}
} else if (t.t==='T') {
s+= '[';
for (var tttt=0; tttt<t.l.length;tttt++) {
if (tttt>0)s+=',';
s+=qname$(t.l[tttt]);
}
s+=']';
} else {
if (t.uv) {
s+=t.uv+' ';
}
s+=qname$(getrtmm$$(t.t));
if (t.a)s+=addtargs(t);
}
return s;
}
function addtargs(x) {
var mmm=getrtmm$$(x.t);
var s='',tparms=mmm&&mmm.tp;
if (tparms===undefined)return s;
var tsrc=x.a || coi.$targs;
for (var ta in tparms) {
var t2=tsrc[ta];
if (t2) {
if (s.length>1)s+=',';else s='<';
s+=simplename(t2);
}
}
if (s.length)s+='>';
return s;
}
if (cc[0].tipo===Callable) {
qn+=addtargs({t:Callable});
} else {
qn+=addtargs(cc[0].$$targs$$.Target$Type);
}
for (var i=1;i<cc.length;i++) {
mm=getrtmm$$(cc[i].tipo)
var nm=mm.d[mm.d.length-1];
if (nm.indexOf('$')>0)nm=nm.substring(0,nm.indexOf('$'));
qn+='.'+nm+addtargs(cc[i].$$targs$$.Target$Type);
}
return qn;
}
function coihash$(coi) {
var mm = getrtmm$$(coi.tipo);
var h=qname$(mm).hash;
if (mm.tp) {
for (var tp in mm.tp) {
var targ;
if (coi.$$targs$$ && coi.$$targs$$.Type$ClassOrInterface && coi.$$targs$$.Type$ClassOrInterface.a && coi.$$targs$$.Type$ClassOrInterface.a[tp]) {
var _targ=coi.$$targs$$.Type$ClassOrInterface.a[tp];
if (typeof(_targ)==='string') {
console.log("TODO buscar " + tp + "->" + _targ + " para " + coi.declaration.qualifiedName);
_targ={t:Anything};
}
targ=typeLiteral$meta({Type$typeLiteral:_targ});
if (_targ.uv==='out')h+=1;
else if (_targ.uv==='in')h+=2;
} else {
targ=typeLiteral$meta({Type$typeLiteral:{t:Anything}});
}
h+=targ.hash;
}
}
if (coi.$bound)h+=coi.$bound.hash;
return h;
}
function coicont$(coi) {
if (coi.$parent)return coi.$parent;
var cont = getrtmm$$(coi.tipo).$cont;
if (cont===undefined)return null;
if (cont===0)return coi.containingPackage;
var cmm=getrtmm$$(cont);
var mod=get_model(cmm);
while (cont && !(mod.mt==='i' || mod.mt==='c')) {
cont=getrtmm$$(cmm);
if (cont) {
cmm=getrtmm$$(cont);
mod=get_model(cmm);
}
}
if (!cont)return null;
var _t={t:cont};
var rv;
var ttargs=coi.$$targs$$ && (coi.$$targs$$.Container$Member||coi.$$targs$$.Container$AppliedMemberClass||coi.$$targs$$.Container$AppliedMemberInterface);
if (ttargs) {
ttargs=ttargs.a;
} else {
ttargs=coi.$targs;
}
if (ttargs)_t.a=ttargs;
if (coi.src$ && coi.src$.outer$) {
var _out=coi.src$.outer$;
if (_out.$$targs$$) {
_t.a=_out.$$targs$$;
}
rv=AppliedClass$jsint(cont,{Type$AppliedClass:_t,Arguments$AppliedClass:{t:Sequential,a:{Element$Iterable:{t:Anything}}}});
rv.src$=_out;
} else {
if (get_model(cmm).mt === 'i') {
rv=AppliedInterface$jsint(cont,{Type$Interface:_t});
} else {
rv=AppliedClass$jsint(cont,{Type$AppliedClass:_t,Arguments$AppliedClass:{t:Sequential,a:{Element$Iterable:{t:Anything}}}});
}
}
coi.$parent=rv;
return rv;
}
function _coitarg_$(coi,makeItem,maptarg){
var mm = getrtmm$$(coi.tipo);
if (mm) {
if (mm.tp) {
var typeTargs=coi.$$targs$$ && coi.$$targs$$.Type$ClassOrInterface;
if (typeTargs) {
if (coi.tipo===Tuple && typeTargs.t==='T') {
typeTargs=retpl$(typeTargs);
coi.$$targs$$.Type$ClassOrInterface=typeTargs;
}
typeTargs=typeTargs.a;
}
var targs={};
var ord=[];
for (var tp in mm.tp) {
var param = OpenTypeParam$jsint(coi.tipo,tp);
var targ,_targ=typeTargs && typeTargs[tp];
if (_targ) {
if (typeof(_targ)==='string') {
console.log("TODO buscar " + tp + "->" + _targ + " para " + coi.declaration.qualifiedName);
_targ={t:Anything};
}
targ=typeLiteral$meta({Type$typeLiteral:_targ});
} else {
targ=typeLiteral$meta({Type$typeLiteral:{t:Anything}});
}
targs[param.qualifiedName]=[param,makeItem(coi,_targ||0,targ)];
ord.push(param.qualifiedName);
}
return TpMap$jsint(targs,ord,{V$TpMap:maptarg});
}
return empty();
}
throw new Error("ClassOrInterface.typeArguments: missing metamodel!");
}
function coitarg$(coi){
return _coitarg_$(coi,function(c,t,a){return a;},
{t:Type$meta$model,a:{Type$Type:{t:Anything}}});
}
function coitargv$(coi){
return _coitarg_$(coi,function(c,t,a){
var iance;
if (t.uv==='out'){
iance=covariant$meta$declaration();
} else if (t.uv==='in'){
iance=contravariant$meta$declaration();
} else {
iance=invariant$meta$declaration();
}
return tpl$([a,iance]);
}, {t:'T', l:[{t:Type$meta$model,a:{t:Anything}},{t:Variance$meta$declaration}]});
}
function _coitargl_$(coi,makeItem,listarg){
var mm = getrtmm$$(coi.tipo);
if (mm) {
if (mm.tp) {
var typeTargs=coi.$$targs$$ && coi.$$targs$$.Type$ClassOrInterface;
if (typeTargs) {
if (coi.tipo===Tuple && typeTargs.t==='T') {
typeTargs=retpl$(typeTargs);
coi.$$targs$$.Type$ClassOrInterface=typeTargs;
}
typeTargs=typeTargs.a;
}
var ord=[];
for (var tp in mm.tp) {
var targ;
var _targ=typeTargs && typeTargs[tp];
if (_targ) {
if (typeof(_targ)==='string') {
console.log("TODO buscar " + tp + "->" + _targ + " para " + coi.declaration.qualifiedName);
_targ={t:Anything};
}
targ=typeLiteral$meta({Type$typeLiteral:_targ});
} else {
targ=typeLiteral$meta({Type$typeLiteral:{t:Anything}});
}
ord.push(makeItem(coi,_targ||0,targ));
}
return ord.$sa$(listarg);
}
return empty();
}
throw new Error("ClassOrInterface.typeArgumentList: missing metamodel!");
}
function coitargl$(coi) {
return _coitargl_$(coi,function(c,t,a){return a;},
{t:Type$meta$model,a:{Target$Type:Anything}});
}
function coitargvl$(coi){
return _coitargl_$(coi,function(c,t,a){
var iance;
if (t.uv==='out'){
iance=covariant$meta$declaration();
} else if (t.uv==='in'){
iance=contravariant$meta$declaration();
} else {
iance=invariant$meta$declaration();
}
return tpl$([a,iance]);
},{t:'T', l:[{t:Type$meta$model,a:{t:Anything}},{t:Variance$meta$declaration}]});
}
function coirestarg$(root,type) {
if (type.a) {
var t2 = {t:type.t, a:{}};
for (var targ in type.a) {
if (typeof(type.a[targ])==='string') {
var ttt=root.$$targs$$.Type$ClassOrInterface;
if (ttt.t==='T') {
t2.a[targ]=ttt;
} else {
t2.a[targ]=ttt.a[type.a[targ]]
}
} else {
t2.a[targ]=type.a[targ];
}
if (t2.a[targ] && t2.a[targ].a) {
t2.a[targ]=coirestarg$(root,t2.a[targ]);
}
}
type=t2;
}
return type;
}
function coiTypeOf(coi,instance$8){
var _t={t:coi.tipo};
if (coi.$targs)_t.a=coi.$targs;
return is$(instance$8,_t);
}
function coiut$(coi,t,ot){
if (is$(t,{t:AppliedUnionType$jsint})) {
return t.union(coi,{Other$union:ot});
}
var _ut={t:'u',l:[coi.$$targs$$.Type$ClassOrInterface,t.$$targs$$.Target$Type]};
return AppliedUnionType$jsint(_ut,$arr$([coi,t],_ut,1),{Union$AppliedUnionType:_ut});
}
function coiit$(coi,t,ot){
if (is$(t,{t:AppliedIntersectionType$jsint})) {
return t.intersection(coi,{Other$intersection:ot});
}
var _ut={t:'i',l:[coi.$$targs$$.Type$ClassOrInterface,t.$$targs$$.Target$Type]};
return AppliedIntersectionType$jsint(_ut,$arr$([coi,t],_ut,1),{Union$AppliedIntersectionType:_ut});
}
function coi$get$anns(anntypes) {
var ats=[];
if (!anntypes)return ats;
var iter=anntypes.iterator();
var a;while((a=iter.next())!==finished()){
ats.push({t:a.tipo});
}
return ats;
}
function coi$is$anns(anns,ats) {
for (var i=0;i<ats.length;i++) {
var f=false;
for (var j=0;j<anns.length;j++) {
f|=(is$(anns[j],ats[i]));
}
if (!f)return false;
}
return true;
}
function cmp$targ$uv$(a,ta) {
if (a===undefined&&ta===undefined) {
return true;
}
if (a&&ta) {
for (var _t in a) {
if (!ta[_t] || a[_t].uv!==ta[_t].uv)return false;
}
return true;
}
return false;
}
function coiclsannconstrs$(coi,anntypes,prefix,tipo,arg$) {
var ats=coi$get$anns(anntypes);
var cs=[];
for (var cn in coi.tipo) {
if (cn.startsWith(prefix)) {
var mm=getrtmm$$(coi.tipo[cn]);
if (mm.d[mm.d.length-2]==='$cn' && coi$is$anns(allann$(mm),ats)) {
var parms=mm.ps && mm.ps.slice(0);
if (parms && arg$ && arg$.t!==Nothing && tipo.a) {
for (var i=0;i<parms.length;i++) {
parms[i] = {$t:restype$(tipo,parms[i].$t)};
}
}
if ((arg$===undefined&&mm.ps===undefined) || (arg$!==undefined&&mm.ps!==undefined && validate$params(parms,arg$,"",1))) {
var args=parms?tupleize$params(parms,coi.$targs):empty();
cs.push({tipo:coi.tipo[cn],args:args});
}
}
}
}
if (cs.length===0 && coi.defaultConstructor && coi.defaultConstructor.fakeConstr$) {
mm=getrtmm$$(coi.tipo);
for (var i=0;i<ats.length;i++) {
if (ats[i].t===DocAnnotation) {
return cs;
}
}
if (coi$is$anns(allann$(mm),ats)) {
var parms=mm.ps && mm.ps.slice(0);
if (parms && arg$&&arg$.t!==Nothing && tipo.a) {
for (var i=0;i<parms.length;i++) {
parms[i] = {$t:restype$(tipo,parms[i].$t)};
}
}
if ((mm.ps===undefined&&arg$===undefined) || (arg$!==undefined&&mm.ps!==undefined&&validate$params(parms,arg$,"",1))) {
var args=parms?tupleize$params(parms,coi.$targs):empty();
cs.push({tipo:coi.tipo,args:args,fakeConstr:true});
}
}
}
return cs;
}
function funparamtypes(fun) {
var ps=fun.tipo.$crtmm$.ps;
if (!ps || ps.length==0)return empty();
var r=[];
for (var i=0; i < ps.length; i++) {
var pt=ps[i].$t;
if (typeof(pt)==='string'){
if (!fun.$targs)throw TypeApplicationException$meta$model("This function model needs type parameters: " +fun.string);
pt=fun.$targs[pt];
if (!pt)throw TypeApplicationException$meta$model("Function model is missing type argument for "
+ fun.string + "<" + ps[i].$t + ">");
}
r.push(typeLiteral$meta({Type$typeLiteral:pt},fun.$targs));
}
return r.$sa$({t:Type$meta$model,a:{t:Anything}});
}
function funmodstr$(fun) {
var mm=fun.tipo.$crtmm$;
var qn;
if (mm.$cont) {
qn=qname$(mm.$cont);
if (mm.$cont.$crtmm$.tp) {
var cnt=fun.$$targs$$&&fun.$$targs$$.Container$Function&&fun.$$targs$$.Container$Function.a;
if (!cnt)cnt=fun.$$targs$$&&fun.$$targs$$.Container$Method&&fun.$$targs$$.Container$Method.a;
qn+="<";var first=true;
for (var tp in mm.$cont.$crtmm$.tp) {
if (first)first=false;else qn+=",";
var _ta=cnt&&cnt[tp];
if (_ta && _ta.dv)qn+=_ta.dv+' ';
qn+=qname$(_ta||Anything);
}
qn+=">";
}
qn+="."+mm.d[mm.d.length-1];
} else {
qn=qname$(mm);
}
if (mm.tp) {
qn+="<";
var first=true;
for (var tp in mm.tp) {
if (first)first=false; else qn+=",";
var targ=fun.$targs[tp];
if (targ.t) {
var _m=getrtmm$$(targ.t);
qn+=qname$(_m);
} else {
qn+=tp;
}
}
qn+=">";
}
return qn;
}
function _funtypearg_$(fun,makeItem,maptarg){
var mm = fun.tipo.$crtmm$;
if (mm) {
if (mm.tp) {
if (fun.$targs===undefined)throw TypeApplicationException$meta$model("Missing type arguments for "+fun.string);
var targs={};
var ord=[];
for (var tp in mm.tp) {
var param = OpenTypeParam$jsint(fun.tipo,tp);
var targ = fun.$targs[tp];
if (targ) {
targ=typeLiteral$meta({Type$typeLiteral:targ});
} else {
targ=typeLiteral$meta({Type$typeLiteral:{t:Anything}});
}
targs[param.qualifiedName]=[param,makeItem(fun,tp,targ)];
ord.push(param.qualifiedName);
}
return TpMap$jsint(targs,ord,{V$TpMap:maptarg});
}
return empty();
}
throw Exception("FunctionModel.typeArguments-we don't have a metamodel!");
}
function funtypearg$(fun) {
return _funtypearg_$(fun,function(c,t,a){return a;},
{t:Type$meta$model,a:{Type$Type:{t:Anything}}});
}
function funtypeargv$(fun) {
return _funtypearg_$(fun,function(c,t,a){
var iance,usv=fun.tipo.$crtmm$.tp[t].uv;
if (usv==='out'){
iance=covariant$meta$declaration();
} else if (usv==='in'){
iance=contravariant$meta$declaration();
} else {
iance=invariant$meta$declaration();
}
return tpl$([a,iance]);
},{t:'T',l:[{t:Type$meta$model,a:{Type$Type:{t:Anything}}},{t:Variance$meta$declaration}]});
}
function _funtypeargl_$(fun,makeItem,listarg){
var mm = fun.tipo.$crtmm$;
if (mm) {
if (mm.tp) {
if (fun.$targs===undefined)throw TypeApplicationException$meta$model("Missing type arguments for "+fun.string);
var ord=[];
for (var tp in mm.tp) {
var targ,_targ = fun.$targs[tp];
if (_targ) {
targ=typeLiteral$meta({Type$typeLiteral:_targ});
} else {
targ=typeLiteral$meta({Type$typeLiteral:{t:Anything}});
}
ord.push(makeItem(fun,_targ||0,targ));
}
return ord.$sa$(listarg);
}
return empty();
}
throw Exception("FunctionModel.typeArguments-we don't have a metamodel!");
}
function funtypeargl$(fun) {
return _funtypeargl_$(fun,function(c,t,a){return a;},
{t:Type$meta$model,a:{Target$Type:Anything}});
}
function funtypeargvl$(fun) {
return _funtypeargl_$(fun,function(c,t,a){
var iance;
if (t.uv==='out')iance=covariant$meta$declaration();
else if (t.uv==='in')iance=contravariant$meta$declaration();
else iance=invariant$meta$declaration();
return tpl$([a,iance]);
},{t:'T',l:[{t:Type$meta$model,a:{Target$Type:Anything}},{t:Variance$meta$declaration}]});
}
function find$ann(cont,ant) {
var _m=getrtmm$$(cont);
if (!(_m && _m.an))return null;
if (typeof(_m.an)==='function')_m.an=_m.an();
for (var i=0; i < _m.an.length; i++) {
if (is$(_m.an[i],{t:ant}))return _m.an[i];
}
return null;
}
function allann$(mm) {
if (typeof(mm.an)==='function')mm.an=mm.an();
var a=getAnnotationsForBitmask(mm.pa);
if (a) {
if (mm.an) {
for (var i=0;i<mm.an.length;i++)a.push(mm.an[i]);
}
} else {
a=mm.an;
}
return a||[];
}
function getAnnotationBitmask(t) {
var mask = 0;
mask |= extendsType({t:SharedAnnotation},t)?1:0;
mask |= extendsType({t:ActualAnnotation},t)?2:0;
mask |= extendsType({t:FormalAnnotation},t)?4:0;
mask |= extendsType({t:DefaultAnnotation},t)?8:0;
mask |= extendsType({t:SealedAnnotation},t)?16:0;
mask |= extendsType({t:FinalAnnotation},t)?32:0;
mask |= extendsType({t:NativeAnnotation},t)?64:0;
mask |= extendsType({t:LateAnnotation},t)?128:0;
mask |= extendsType({t:AbstractAnnotation},t)?256:0;
mask |= extendsType({t:AnnotationAnnotation},t)?512:0;
mask |= extendsType({t:VariableAnnotation},t)?1024:0;
return mask;
}
function getAnnotationsForBitmask(bits) {
var ans=[];
if (bits&1)ans.push(shared());
if (bits&2)ans.push(actual());
if (bits&4)ans.push(formal());
if (bits&8)ans.push($_default());
if (bits&16)ans.push(sealed());
if (bits&32)ans.push($_final());
if (bits&64)ans.push($_native());
if (bits&128)ans.push(late());
if (bits&256)ans.push($_abstract());
if (bits&512)ans.push(annotation());
if (bits&1024)ans.push(variable());
return ans;
}
function doc$(root, path, anPath) {
path = path?path.split(':'):[];
path.push(anPath||'an', 'doc',0);
if (path[0]==='$')path[0]='ceylon.language';
var e = typeof(root)==='function'?root():root;
for (var i=0; i < path.length; i++) {
var k = path[i];
e = e[path[i]];
if (e===undefined)return doc('<missing>');
}
return doc(e);
}
ex$.doc$=doc$;
function DeserializationContext$serialization($$targs$$,deserializationContext$){set_type_args(deserializationContext$,$$targs$$,DeserializationContext$serialization);}
DeserializationContext$serialization.$crtmm$=function(){return{mod:$CCMM$,tp:{Id$DeserializationContext:{}},pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:DeserializationContext')];},d:['ceylon.language.serialization','DeserializationContext']};};
ex$.DeserializationContext$serialization=DeserializationContext$serialization;function $init$DeserializationContext$serialization(){if(DeserializationContext$serialization.$$===undefined){initTypeProtoI(DeserializationContext$serialization,'ceylon.language.serialization::DeserializationContext');
(function(deserializationContext$){deserializationContext$.instance={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContext'},{nm:'clazz',mt:'prm',$t:{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:{t:Anything}}}}],$cont:DeserializationContext$serialization,pa:5,an:function(){return[doc("The given [[instanceId]] refers to an instance of the given class."),$_throws("DeserializationException","the given instance was specified by [[instanceValue]] or has already been reconstructed.")];},d:['ceylon.language.serialization','DeserializationContext','$m','instance']};}};deserializationContext$.memberInstance={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'containerId',mt:'prm',$t:'Id$DeserializationContext'},{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContext'}],$cont:DeserializationContext$serialization,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:DeserializationContext:$m:memberInstance'),$_throws("DeserializationException","the given instance was specified by [[instanceValue]] or has already been reconstructed.")];},d:['ceylon.language.serialization','DeserializationContext','$m','memberInstance']};}};deserializationContext$.attribute={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContext'},{nm:'attribute',mt:'prm',$t:{t:ValueDeclaration$meta$declaration}},{nm:'attributeValueId',mt:'prm',$t:'Id$DeserializationContext'}],$cont:DeserializationContext$serialization,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:DeserializationContext:$m:attribute'),$_throws("DeserializationException","the given instance was specified by [[instanceValue]] or has already been reconstructed.")];},d:['ceylon.language.serialization','DeserializationContext','$m','attribute']};}};deserializationContext$.element={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContext'},{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'elementValueId',mt:'prm',$t:'Id$DeserializationContext'}],$cont:DeserializationContext$serialization,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:DeserializationContext:$m:element'),$_throws("DeserializationException","the given instance was specified by [[instanceValue]] or has already been reconstructed.")];},d:['ceylon.language.serialization','DeserializationContext','$m','element']};}};deserializationContext$.instanceValue={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContext'},{nm:'instanceValue',mt:'prm',$t:{t:Anything}}],$cont:DeserializationContext$serialization,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:DeserializationContext:$m:instanceValue')];},d:['ceylon.language.serialization','DeserializationContext','$m','instanceValue']};}};deserializationContext$.reconstruct={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:'Instance$reconstruct',ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContext'}],$cont:DeserializationContext$serialization,tp:{Instance$reconstruct:{}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:DeserializationContext:$m:reconstruct'),$_throws("DeserializationException","the instance, or an instance reachable from it, \ncould not be reconstructed")];},d:['ceylon.language.serialization','DeserializationContext','$m','reconstruct']};}};})(DeserializationContext$serialization.$$.prototype);}
return DeserializationContext$serialization;}
ex$.$init$DeserializationContext$serialization=$init$DeserializationContext$serialization;$init$DeserializationContext$serialization();function DeserializationContextImpl$serialization($$targs$$,deserializationContextImpl$){$init$DeserializationContextImpl$serialization();
if(deserializationContextImpl$===undefined)deserializationContextImpl$=new DeserializationContextImpl$serialization.$$;
set_type_args(deserializationContextImpl$,$$targs$$);
DeserializationContext$serialization({Id$DeserializationContext:$$targs$$.Id$DeserializationContextImpl},deserializationContextImpl$);deserializationContextImpl$.$1mp_=NativeMap$serialization({Key$NativeMap:deserializationContextImpl$.$$targs$$.Id$DeserializationContextImpl,Element$NativeMap:{t:Anything}});deserializationContextImpl$.$1mq_=NativeMap$serialization({Key$NativeMap:{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:{t:$_String}}},Element$NativeMap:{t:$_Object}});return deserializationContextImpl$;}
DeserializationContextImpl$serialization.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Id$DeserializationContextImpl:{sts:[{t:$_Object}]}},sts:[{t:DeserializationContext$serialization,a:{Id$DeserializationContext:'Id$DeserializationContextImpl'}}],an:function(){return[doc$($CCMM$,'ceylon.language.serialization:DeserializationContextImpl')];},d:['ceylon.language.serialization','DeserializationContextImpl']};};
ex$.DeserializationContextImpl$serialization=DeserializationContextImpl$serialization;function $init$DeserializationContextImpl$serialization(){if(DeserializationContextImpl$serialization.$$===undefined){initTypeProto(DeserializationContextImpl$serialization,'ceylon.language.serialization::DeserializationContextImpl',Basic,$init$DeserializationContext$serialization());
(function(deserializationContextImpl$){atr$(deserializationContextImpl$,'$1mp',function(){return this.$1mp_;},undefined,function(){return{mod:$CCMM$,$t:{t:NativeMap$serialization,a:{Element$NativeMap:{t:Anything},Key$NativeMap:'Id$DeserializationContextImpl'}},$cont:DeserializationContextImpl$serialization,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:DeserializationContextImpl:$at:instances$t0uhew')];},d:['ceylon.language.serialization','DeserializationContextImpl','$at','instances$t0uhew']};});atr$(deserializationContextImpl$,'memberTypeCache',function(){return this.$1mq_;},undefined,function(){return{mod:$CCMM$,$t:{t:NativeMap$serialization,a:{Element$NativeMap:{t:$_Object},Key$NativeMap:{t:Entry,a:{Key$Entry:{t:$_Object},Item$Entry:{t:$_String}}}}},$cont:DeserializationContextImpl$serialization,pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:DeserializationContextImpl:$at:memberTypeCache')];},d:['ceylon.language.serialization','DeserializationContextImpl','$at','memberTypeCache']};});deserializationContextImpl$.leakInstance=function($1mr){var deserializationContextImpl$=this;return deserializationContextImpl$.$1mp.$_get($1mr);};deserializationContextImpl$.leakInstance.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'id',mt:'prm',$t:'Id$DeserializationContextImpl'}],$cont:DeserializationContextImpl$serialization,pa:1,an:function(){return[doc("Get the [[Partial]] or instance with the given id")];},d:['ceylon.language.serialization','DeserializationContextImpl','$m','leakInstance']};};deserializationContextImpl$.attribute=function($1ms,$1mt,$1mu){var deserializationContextImpl$=this;deserializationContextImpl$.$1mv($1ms,MemberImpl$impl($1mt),$1mu);};deserializationContextImpl$.attribute.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContextImpl'},{nm:'attribute',mt:'prm',$t:{t:ValueDeclaration$meta$declaration}},{nm:'attributeValueId',mt:'prm',$t:'Id$DeserializationContextImpl'}],$cont:DeserializationContextImpl$serialization,pa:3,d:['ceylon.language.serialization','DeserializationContextImpl','$m','attribute']};};deserializationContextImpl$.alreadyComplete=function($1mw){var deserializationContextImpl$=this;return DeserializationException$serialization("instance referred to by id ".plus($1mw.string).plus(" already complete."));};deserializationContextImpl$.alreadyComplete.$crtmm$=function(){return{mod:$CCMM$,$t:{t:DeserializationException$serialization},ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContextImpl'}],$cont:DeserializationContextImpl$serialization,pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:DeserializationContextImpl:$m:alreadyComplete')];},d:['ceylon.language.serialization','DeserializationContextImpl','$m','alreadyComplete']};};deserializationContextImpl$.$1mv=function($1mx,$1my,$1mz){var deserializationContextImpl$=this;var $1n0;var $1n1=deserializationContextImpl$.$1mp.$_get($1mx);if(is$($1n1,{t:Null})) {var $1n2=PartialImpl$serialization($1mx);deserializationContextImpl$.$1mp.put($1mx,$1n2);$1n0=$1n2;}
else if(is$($1n1,{t:Partial$serialization})) {$1n0=$1n1;if($1n0.instantiated){throw wrapexc(deserializationContextImpl$.alreadyComplete($1mx),'59:16-59:49','ceylon/language/serialization/DeserializationContextImpl.ceylon');}
}
else{throw wrapexc(deserializationContextImpl$.alreadyComplete($1mx),'63:12-63:45','ceylon/language/serialization/DeserializationContextImpl.ceylon');}$1n0.addState($1my,$1mz);};deserializationContextImpl$.$1mv.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContextImpl'},{nm:'attributeOrIndex',mt:'prm',$t:{t:ReachableReference$serialization}},{nm:'attributeValueId',mt:'prm',$t:'Id$DeserializationContextImpl'}],$cont:DeserializationContextImpl$serialization,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:DeserializationContextImpl:$m:attributeOrElement$7cs20f'),$_throws($init$openClass$jsint()(lmp$(ex$,'ceylon.language.serialization'),DeserializationException$serialization),"If the `instanceId` corresponds to a reconstructed \ninstance or to a partial that\'s already been instantiated")];},d:['ceylon.language.serialization','DeserializationContextImpl','$m','attributeOrElement$7cs20f']};};deserializationContextImpl$.element=function($1n3,$1n4,$1n5){var deserializationContextImpl$=this;deserializationContextImpl$.$1mv($1n3,ElementImpl$impl($1n4),$1n5);};deserializationContextImpl$.element.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContextImpl'},{nm:'index',mt:'prm',$t:{t:Integer}},{nm:'elementValueId',mt:'prm',$t:'Id$DeserializationContextImpl'}],$cont:DeserializationContextImpl$serialization,pa:3,d:['ceylon.language.serialization','DeserializationContextImpl','$m','element']};};deserializationContextImpl$.instance=function($1n6,$1n7){var deserializationContextImpl$=this;if(!$1n7.declaration.serializable){throw wrapexc(DeserializationException$serialization("not serializable: ".plus($1n7.string)),'74:12-74:73','ceylon/language/serialization/DeserializationContextImpl.ceylon');}
(deserializationContextImpl$.$1n8($1n6).clazz=$1n7);};deserializationContextImpl$.instance.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContextImpl'},{nm:'clazz',mt:'prm',$t:{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:{t:Anything}}}}],$cont:DeserializationContextImpl$serialization,pa:3,d:['ceylon.language.serialization','DeserializationContextImpl','$m','instance']};};deserializationContextImpl$.$1n8=function($1n9){var deserializationContextImpl$=this;var $1na;var $1nb=deserializationContextImpl$.$1mp.$_get($1n9);if(is$($1nb,{t:Null})) {var $1nc=PartialImpl$serialization($1n9);deserializationContextImpl$.$1mp.put($1n9,$1nc);$1na=$1nc;}
else if(is$($1nb,{t:Partial$serialization})) {$1na=$1nb;}
else{throw wrapexc(deserializationContextImpl$.alreadyComplete($1n9),'92:12-92:45','ceylon/language/serialization/DeserializationContextImpl.ceylon');}return $1na;};deserializationContextImpl$.$1n8.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Partial$serialization},ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContextImpl'}],$cont:DeserializationContextImpl$serialization,an:function(){return[doc("Get or create a [[Partial]] for the given `instanceId`.")];},d:['ceylon.language.serialization','DeserializationContextImpl','$m','getOrCreatePartial$gbff5y']};};deserializationContextImpl$.memberInstance=function($1nd,$1ne){var deserializationContextImpl$=this;var $1nf;var $1ng=deserializationContextImpl$.$1mp.$_get($1nd);if(is$($1ng,{t:Null})) {var $1nh=PartialImpl$serialization($1nd);deserializationContextImpl$.$1mp.put($1nd,$1nh);$1nf=$1nh;}
else{$1nf=$1ng;}(deserializationContextImpl$.$1n8($1ne).container=$1nf);};deserializationContextImpl$.memberInstance.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'containerId',mt:'prm',$t:'Id$DeserializationContextImpl'},{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContextImpl'}],$cont:DeserializationContextImpl$serialization,pa:3,d:['ceylon.language.serialization','DeserializationContextImpl','$m','memberInstance']};};deserializationContextImpl$.instanceValue=function($1ni,$1nj){var deserializationContextImpl$=this;deserializationContextImpl$.$1mp.put($1ni,$1nj);};deserializationContextImpl$.instanceValue.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContextImpl'},{nm:'instanceValue',mt:'prm',$t:{t:Anything}}],$cont:DeserializationContextImpl$serialization,pa:3,d:['ceylon.language.serialization','DeserializationContextImpl','$m','instanceValue']};};deserializationContextImpl$.reconstruct=function($1nk,$rg9e0m$){var deserializationContextImpl$=this;var $1nl=NativeDeque$serialization();var $1nm=deserializationContextImpl$.$1mp.$_get($1nk);if(!nn$($1nm)){if(deserializationContextImpl$.$1mp.contains($1nk)){var $1nn;asrt$((is$(($1nn=null),$rg9e0m$.Instance$reconstruct,$rg9e0m$)),"Assertion failed: \'is Instance r=null\' at DeserializationContextImpl.ceylon (120:22-120:41)",'120:16-120:42','DeserializationContextImpl.ceylon');
return $1nn;}
else{throw wrapexc(DeserializationException$serialization("unknown id: ".plus($1nk.string).plus(".")),'123:16-123:77','ceylon/language/serialization/DeserializationContextImpl.ceylon');}
}
$1nl.pushFront(deserializationContextImpl$.$1mp.$_get($1nk));while(!$1nl.empty){var $1no=$1nl.popFront();var $1np=$1no;if(is$($1np,{t:Null})) {asrt$((false),"Assertion failed: \'false\' at DeserializationContextImpl.ceylon (131:22-131:28)",'131:16-131:29','DeserializationContextImpl.ceylon');
}
else if(is$($1np,{t:Partial$serialization})) {var $1nq;if($1np.member&&is$(($1nq=$1np.container),{t:Partial$serialization})&&!$1nq.instantiated){$1nl.pushFront($1np);$1nl.pushFront($1nq);continue;}
if(!$1np.instantiated){$1np.instantiate();}
var $1ns;for(var $1nr=$1np.refersTo.iterator();($1ns=$1nr.next())!==finished();){var $1nt;asrt$((is$(($1nt=$1ns),deserializationContextImpl$.$$targs$$.Id$DeserializationContextImpl)),"Assertion failed: \'is Id referredId\' at DeserializationContextImpl.ceylon (149:26-149:43)",'149:20-149:44','DeserializationContextImpl.ceylon');
var $1nu=deserializationContextImpl$.$1mp.$_get($1nt);var $1nv;if(is$(($1nv=$1nu),{t:Partial$serialization})&&!$1nv.instantiated){$1nl.pushFront($1nv);}
}}
else{}}
$1nl.pushFront(deserializationContextImpl$.$1mp.$_get($1nk));while(!$1nl.empty){var $1nw=$1nl.popFront();if(is$($1nw,{t:Partial$serialization})) {if($1nw.member){var $1nx;if(is$(($1nx=$1nw.container),{t:Partial$serialization})&&!$1nx.initialized){$1nl.pushFront($1nw);$1nl.pushFront($1nx);continue;}
}
if(!$1nw.initialized){var $1nz;for(var $1ny=$1nw.refersTo.iterator();($1nz=$1ny.next())!==finished();){var $1o0;asrt$((is$(($1o0=$1nz),deserializationContextImpl$.$$targs$$.Id$DeserializationContextImpl)),"Assertion failed: \'is Id referredId\' at DeserializationContextImpl.ceylon (178:30-178:47)",'178:24-178:48','DeserializationContextImpl.ceylon');
var $1o1=deserializationContextImpl$.$1mp.$_get($1o0);var $1o2;if(is$(($1o2=$1o1),{t:Partial$serialization})&&!$1o2.initialized){$1nl.pushFront($1o2);}
}var $1o3;if($1nw.member&&is$(($1o3=$1nw.container),{t:Partial$serialization})&&!$1o3.initialized){$1nl.pushFront($1o3);}
$1nw.initialize(deserializationContextImpl$,{Id$initialize:deserializationContextImpl$.$$targs$$.Id$DeserializationContextImpl});}
}
else{}}
var $1o4=deserializationContextImpl$.$1mp.$_get($1nk);if(is$($1o4,{t:Partial$serialization})) {var $1o5=$1o4.instance();var $1o6;if(is$(($1o6=$1o5),$rg9e0m$.Instance$reconstruct,$rg9e0m$)){deserializationContextImpl$.$1mp.put($1nk,$1o6);return $1o6;}
else{throw wrapexc(DeserializationException$serialization("instance with id ".plus($1nk.string).plus(" has class ").plus(type$meta($1o6,{Type$type:{t:Anything}}).string).plus(" not assignable to given type ").plus(typeLiteral$meta({Type$typeLiteral:$rg9e0m$.Instance$reconstruct/*ORALE!Instance inv pero Type var*/}).string)),'204:16-204:165','ceylon/language/serialization/DeserializationContextImpl.ceylon');}
}
else{var $1o7;if(is$(($1o7=$1o4),$rg9e0m$.Instance$reconstruct,$rg9e0m$)){return $1o7;}
else{throw wrapexc(DeserializationException$serialization("instance with id ".plus($1nk.string).plus(" has class ").plus(type$meta($1o7,{Type$type:{t:Anything}}).string).plus(" not assignable to given type ").plus(typeLiteral$meta({Type$typeLiteral:$rg9e0m$.Instance$reconstruct/*ORALE!Instance inv pero Type var*/}).string)),'211:16-211:160','ceylon/language/serialization/DeserializationContextImpl.ceylon');}
}};deserializationContextImpl$.reconstruct.$crtmm$=function(){return{mod:$CCMM$,$t:'Instance$reconstruct',ps:[{nm:'instanceId',mt:'prm',$t:'Id$DeserializationContextImpl'}],$cont:DeserializationContextImpl$serialization,tp:{Instance$reconstruct:{}},pa:3,d:['ceylon.language.serialization','DeserializationContextImpl','$m','reconstruct']};};})(DeserializationContextImpl$serialization.$$.prototype);}
return DeserializationContextImpl$serialization;}
ex$.$init$DeserializationContextImpl$serialization=$init$DeserializationContextImpl$serialization;$init$DeserializationContextImpl$serialization();function DeserializationException$serialization($1o8,$1o9,deserializationException$){$init$DeserializationException$serialization();
if(deserializationException$===undefined)deserializationException$=new DeserializationException$serialization.$$;
deserializationException$.$1o8_=$1o8;if($1o9===undefined){$1o9=$init$DeserializationException$serialization().$defs$cause(deserializationException$,$1o8);}
deserializationException$.$1o9_=$1o9;Exception($1o8,$1o9,deserializationException$);return deserializationException$;}
DeserializationException$serialization.$defs$cause=function(deserializationException$,$1o8){return null};DeserializationException$serialization.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Exception},ps:[{nm:'message',mt:'prm',$t:{t:$_String}},{nm:'cause',mt:'prm',def:1,$t:{t:'u',l:[{t:Null},{t:Throwable}]}}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:DeserializationException')];},d:['ceylon.language.serialization','DeserializationException']};};
ex$.DeserializationException$serialization=DeserializationException$serialization;function $init$DeserializationException$serialization(){if(DeserializationException$serialization.$$===undefined){initTypeProto(DeserializationException$serialization,'ceylon.language.serialization::DeserializationException',$init$Exception());
(function(deserializationException$){atr$(deserializationException$,'$1o8',function(){return this.$1o8_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:DeserializationException$serialization,d:['ceylon.language.serialization','DeserializationException','$at','message$r756zb']};});atr$(deserializationException$,'$1o9',function(){return this.$1o9_;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Throwable}]},$cont:DeserializationException$serialization,d:['ceylon.language.serialization','DeserializationException','$at','cause$o52r23']};});})(DeserializationException$serialization.$$.prototype);}
return DeserializationException$serialization;}
ex$.$init$DeserializationException$serialization=$init$DeserializationException$serialization;$init$DeserializationException$serialization();function Element$serialization(element$){ReachableReference$serialization(element$);}
Element$serialization.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:ReachableReference$serialization}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Element')];},d:['ceylon.language.serialization','Element']};};
ex$.Element$serialization=Element$serialization;function $init$Element$serialization(){if(Element$serialization.$$===undefined){initTypeProtoI(Element$serialization,'ceylon.language.serialization::Element',$init$ReachableReference$serialization());
(function(element$){element$.$prop$getIndex={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:Element$serialization,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Element:$at:index')];},d:['ceylon.language.serialization','Element','$at','index']};}};})(Element$serialization.$$.prototype);}
return Element$serialization;}
ex$.$init$Element$serialization=$init$Element$serialization;$init$Element$serialization();function Member$serialization(member$){ReachableReference$serialization(member$);}
Member$serialization.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:ReachableReference$serialization}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Member')];},d:['ceylon.language.serialization','Member']};};
ex$.Member$serialization=Member$serialization;function $init$Member$serialization(){if(Member$serialization.$$===undefined){initTypeProtoI(Member$serialization,'ceylon.language.serialization::Member',$init$ReachableReference$serialization());
(function(member$){member$.$prop$getAttribute={$crtmm$:function(){return{mod:$CCMM$,$t:{t:ValueDeclaration$meta$declaration},$cont:Member$serialization,pa:5,an:function(){return[doc("The attribute making the reference.")];},d:['ceylon.language.serialization','Member','$at','attribute']};}};member$.referred={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instance',mt:'prm',$t:{t:$_Object}}],$cont:Member$serialization,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Member:$m:referred')];},d:['ceylon.language.serialization','Member','$m','referred']};}};})(Member$serialization.$$.prototype);}
return Member$serialization;}
ex$.$init$Member$serialization=$init$Member$serialization;$init$Member$serialization();function UninitializedLateValue$serialization(uninitializedLateValue$){$init$UninitializedLateValue$serialization();
if(uninitializedLateValue$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language.serialization::UninitializedLateValue"),'?','?')
return uninitializedLateValue$;}
UninitializedLateValue$serialization.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],of:[$prop$getUninitializedLateValue$serialization],pa:257,an:function(){return[doc("The type of [[uninitializedLateValue]].")];},d:['ceylon.language.serialization','UninitializedLateValue']};};
ex$.UninitializedLateValue$serialization=UninitializedLateValue$serialization;function $init$UninitializedLateValue$serialization(){if(UninitializedLateValue$serialization.$$===undefined){initTypeProto(UninitializedLateValue$serialization,'ceylon.language.serialization::UninitializedLateValue',Basic);
}
return UninitializedLateValue$serialization;}
ex$.$init$UninitializedLateValue$serialization=$init$UninitializedLateValue$serialization;$init$UninitializedLateValue$serialization();function $1oa$serialization(){var uninitializedLateValue$=new $1oa$serialization.$$;UninitializedLateValue$serialization(uninitializedLateValue$);return uninitializedLateValue$;};$1oa$serialization.$crtmm$=function(){return{mod:$CCMM$,'super':{t:UninitializedLateValue$serialization},d:['ceylon.language.serialization','uninitializedLateValue']};};function $init$uninitializedLateValue$serialization(){if($1oa$serialization.$$===undefined){initTypeProto($1oa$serialization,'ceylon.language.serialization::uninitializedLateValue',$init$UninitializedLateValue$serialization());
}
return $1oa$serialization;}
ex$.$init$uninitializedLateValue$serialization=$init$uninitializedLateValue$serialization;$init$uninitializedLateValue$serialization();var $1oc;function uninitializedLateValue$serialization(){if($1oc===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'uninitializedLateValue\' before it was set"),'23:0-43:71','Member.ceylon');if($1oc===undefined){$1oc=INIT$;$1oc=$init$uninitializedLateValue$serialization()();$1oc.$crtmm$=uninitializedLateValue$serialization.$crtmm$;}
return $1oc;}
ex$.uninitializedLateValue$serialization=uninitializedLateValue$serialization;uninitializedLateValue$serialization.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$uninitializedLateValue$serialization()},pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:uninitializedLateValue')];},d:['ceylon.language.serialization','uninitializedLateValue']};};$prop$getUninitializedLateValue$serialization=uninitializedLateValue$serialization;ex$.$prop$getUninitializedLateValue$serialization=$prop$getUninitializedLateValue$serialization;function NativeDeque$serialization(nativeDeque$){$init$NativeDeque$serialization();
if(nativeDeque$===undefined)nativeDeque$=new NativeDeque$serialization.$$;
nativeDeque$.$1od=[null];nativeDeque$.$1od.shift();return nativeDeque$;}
NativeDeque$serialization.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeDeque']};};
ex$.NativeDeque$serialization=NativeDeque$serialization;function $init$NativeDeque$serialization(){if(NativeDeque$serialization.$$===undefined){initTypeProto(NativeDeque$serialization,'ceylon.language.serialization::NativeDeque',Basic);
(function(nativeDeque$){nativeDeque$.pushFront=function($1oe){var nativeDeque$=this;nativeDeque$.$1od.unshift($1oe);};nativeDeque$.pushFront.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'element',mt:'prm',$t:{t:Anything}}],$cont:NativeDeque$serialization,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeDeque','$m','pushFront']};};nativeDeque$.pushBack=function($1of){var nativeDeque$=this;nativeDeque$.$1od.push($1of);};nativeDeque$.pushBack.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'element',mt:'prm',$t:{t:Anything}}],$cont:NativeDeque$serialization,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeDeque','$m','pushBack']};};nativeDeque$.popFront=function(){var nativeDeque$=this;if(($1og=nativeDeque$.$1od.length,$1oh=(0),(nn$($1og)&&$1og.equals&&$1og.equals($1oh))||$1og===$1oh)){return null;}
return ndtc$(nativeDeque$.$1od.shift(),{t:Anything},'NativeDeque.ceylon 52:19-52:31');};nativeDeque$.popFront.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:NativeDeque$serialization,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeDeque','$m','popFront']};};atr$(nativeDeque$,'empty',function(){var nativeDeque$=this;return ($1oi=nativeDeque$.$1od.length,$1oj=(0),(nn$($1oi)&&$1oi.equals&&$1oi.equals($1oj))||$1oi===$1oj);},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:NativeDeque$serialization,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeDeque','$at','empty']};});atr$(nativeDeque$,'string',function(){var nativeDeque$=this;var $1ok=StringBuilder();$1ok.append("[");var $1om=(0),$1on=nativeDeque$.$1od.length;for(var $1oo=0;$1oo<$1on;$1oo++,($1om=$1om.successor)){if(($1ok.size>1)){$1ok.append(", ");}
$1ok.append(ndtc$(nativeDeque$.$1od[$1om],{t:$_String},'NativeDeque.ceylon 68:26-68:33'));}$1ok.append("]");return $1ok.string;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:NativeDeque$serialization,pa:3,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeDeque','$at','string']};});})(NativeDeque$serialization.$$.prototype);}
return NativeDeque$serialization;}
ex$.$init$NativeDeque$serialization=$init$NativeDeque$serialization;$init$NativeDeque$serialization();function NativeMap$serialization($$targs$$,nativeMap$){$init$NativeMap$serialization();
if(nativeMap$===undefined)nativeMap$=new NativeMap$serialization.$$;
set_type_args(nativeMap$,$$targs$$);
nativeMap$.$1op=[null];nativeMap$.$1oq=[null];return nativeMap$;}
NativeMap$serialization.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Key$NativeMap:{},Element$NativeMap:{}},an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeMap']};};
ex$.NativeMap$serialization=NativeMap$serialization;function $init$NativeMap$serialization(){if(NativeMap$serialization.$$===undefined){initTypeProto(NativeMap$serialization,'ceylon.language.serialization::NativeMap',Basic);
(function(nativeMap$){nativeMap$.$1or=function($1os){var nativeMap$=this;if(nn$($1os)){var $1ot=ndnc$(nativeMap$.$1op.length,'i','NativeMap.ceylon 95:28-95:36');if(($1ot<2)){return (-1);}
var $1ov=(1),$1ow=$1ot.minus(1);for(var $1ox=0;$1ox<$1ow;$1ox++,($1ov=$1ov.successor)){if($1os.equals(nativeMap$.$1op[$1ov])){return $1ov;}
}return (-1);}
return 0;};nativeMap$.$1or.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Integer},ps:[{nm:'id',mt:'prm',$t:'Key$NativeMap'}],$cont:NativeMap$serialization,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:NativeMap:$m:find$slx4qw')];},d:['ceylon.language.serialization','NativeMap','$m','find$slx4qw']};};nativeMap$.put=function($1oy,$1oz){var nativeMap$=this;var $1p0=nativeMap$.$1or($1oy);if(($1p0>=0)){(typeof setObjectProperty==='undefined'||setObjectProperty===null?throwexc(Exception("Undefined or null reference: setObjectProperty"),'115:16-115:32','NativeMap.ceylon'):setObjectProperty)(nativeMap$.$1oq,$1p0,$1oz);}
else{if(($1p0<0)){nativeMap$.$1op.push($1oy);nativeMap$.$1oq.push($1oz);}
}
};nativeMap$.put.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'id',mt:'prm',$t:'Key$NativeMap'},{nm:'instanceOrPartial',mt:'prm',$t:'Element$NativeMap'}],$cont:NativeMap$serialization,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeMap','$m','put']};};nativeMap$.$_get=function($1p1){var nativeMap$=this;var $1p2=nativeMap$.$1or($1p1);return ndtc$(($1p3=(($1p2>=0)?nativeMap$.$1oq[$1p2]:null),nn$($1p3)?$1p3:null),mut$([{t:Null},nativeMap$.$$targs$$.Element$NativeMap]),'NativeMap.ceylon 129:19-129:45');var $1p3;};nativeMap$.$_get.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Element$NativeMap']},ps:[{nm:'id',mt:'prm',$t:'Key$NativeMap'}],$cont:NativeMap$serialization,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeMap','$m','get']};};nativeMap$.contains=function($1p4){var nativeMap$=this;return (nativeMap$.$1or($1p4)>=0);};nativeMap$.contains.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'id',mt:'prm',$t:'Key$NativeMap'}],$cont:NativeMap$serialization,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeMap','$m','contains']};};atr$(nativeMap$,'size',function(){var nativeMap$=this;return ndnc$(($1p5=nativeMap$.$1op.length,$1p6=(1),(nn$($1p5)&&$1p5.minus&&$1p5.minus($1p6))||$1p5-$1p6),'i','NativeMap.ceylon 138:19-138:29');},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:NativeMap$serialization,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeMap','$at','size']};});atr$(nativeMap$,'items',function(){var nativeMap$=this;return function(){function $1p7(){var $1p7$=new $1p7.$$;$1p7$.outer$=nativeMap$;BaseIterable$impl({Absent$BaseIterable:{t:Null},Element$BaseIterable:nativeMap$.$$targs$$.Element$NativeMap},$1p7$);Identifiable($1p7$);return $1p7$;};$1p7.$crtmm$=function(){return{mod:$CCMM$,'super':{t:BaseIterable$impl,a:{Absent$BaseIterable:{t:Null},Element$BaseIterable:'Element$NativeMap'}},$cont:nativeMap$.$prop$getItems,sts:[{t:Identifiable}],d:['ceylon.language.serialization','NativeMap','$at','items']};};function $init$$1p7(){if($1p7.$$===undefined){initTypeProto($1p7,'ceylon.language.serialization::NativeMap.anonymous#4',$init$BaseIterable$impl(),$init$Identifiable());
(function($1p7$){$1p7$.iterator=function(){var $1p7$=this;var $1p8=(1);return function(){function $1p9(){var $1p9$=new $1p9.$$;$1p9$.outer$=$1p7$;BaseIterator$impl({Element$BaseIterator:nativeMap$.$$targs$$.Element$NativeMap},$1p9$);Identifiable($1p9$);return $1p9$;};$1p9.$crtmm$=function(){return{mod:$CCMM$,'super':{t:BaseIterator$impl,a:{Element$BaseIterator:'Element$NativeMap'}},$cont:$1p7$.iterator,sts:[{t:Identifiable}],d:['ceylon.language.serialization','NativeMap','$at','items','$m','iterator']};};function $init$$1p9(){if($1p9.$$===undefined){initTypeProto($1p9,'ceylon.language.serialization::NativeMap.anonymous#4.anonymous#5',$init$BaseIterator$impl(),$init$Identifiable());
(function($1p9$){$1p9$.next=function(){var $1p9$=this;if(($1p8.compare(nativeMap$.$1oq.length)!==smaller())){return finished();}
var $1pa=ndtc$(nativeMap$.$1oq[$1p8],nativeMap$.$$targs$$.Element$NativeMap,'NativeMap.ceylon 154:40-154:44');($1pb=$1p8,$1p8=$1pb.successor,$1pb);return $1pa;var $1pb;};$1p9$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Element$NativeMap',{t:Finished}]},ps:[],$cont:$1p7$.iterator,pa:3,d:['ceylon.language.serialization','NativeMap','$at','items','$m','iterator','$m','next']};};})($1p9.$$.prototype);}
return $1p9;}
$1p7$.$init$$1p9=$init$$1p9;$init$$1p9();return $1p9();}();};$1p7$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Element$NativeMap'}},ps:[],$cont:nativeMap$.$prop$getItems,pa:3,d:['ceylon.language.serialization','NativeMap','$at','items','$m','iterator']};};})($1p7.$$.prototype);}
return $1p7;}
nativeMap$.$init$$1p7=$init$$1p7;$init$$1p7();return $1p7();}();},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Element$NativeMap'}},$cont:NativeMap$serialization,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeMap','$at','items']};});atr$(nativeMap$,'keys',function(){var nativeMap$=this;return function(){function $1pe(){var $1pe$=new $1pe.$$;$1pe$.outer$=nativeMap$;BaseIterable$impl({Absent$BaseIterable:{t:Null},Element$BaseIterable:nativeMap$.$$targs$$.Key$NativeMap},$1pe$);Identifiable($1pe$);return $1pe$;};$1pe.$crtmm$=function(){return{mod:$CCMM$,'super':{t:BaseIterable$impl,a:{Absent$BaseIterable:{t:Null},Element$BaseIterable:'Key$NativeMap'}},$cont:nativeMap$.$prop$getKeys,sts:[{t:Identifiable}],d:['ceylon.language.serialization','NativeMap','$at','keys']};};function $init$$1pe(){if($1pe.$$===undefined){initTypeProto($1pe,'ceylon.language.serialization::NativeMap.anonymous#6',$init$BaseIterable$impl(),$init$Identifiable());
(function($1pe$){$1pe$.iterator=function(){var $1pe$=this;var $1pf=(1);return function(){function $1pg(){var $1pg$=new $1pg.$$;$1pg$.outer$=$1pe$;BaseIterator$impl({Element$BaseIterator:nativeMap$.$$targs$$.Key$NativeMap},$1pg$);Identifiable($1pg$);return $1pg$;};$1pg.$crtmm$=function(){return{mod:$CCMM$,'super':{t:BaseIterator$impl,a:{Element$BaseIterator:'Key$NativeMap'}},$cont:$1pe$.iterator,sts:[{t:Identifiable}],d:['ceylon.language.serialization','NativeMap','$at','keys','$m','iterator']};};function $init$$1pg(){if($1pg.$$===undefined){initTypeProto($1pg,'ceylon.language.serialization::NativeMap.anonymous#6.anonymous#7',$init$BaseIterator$impl(),$init$Identifiable());
(function($1pg$){$1pg$.next=function(){var $1pg$=this;if(($1pf.compare(nativeMap$.$1op.length)!==smaller())){return finished();}
var $1ph=ndtc$(nativeMap$.$1op[$1pf],nativeMap$.$$targs$$.Key$NativeMap,'NativeMap.ceylon 177:36-177:40');($1pi=$1pf,$1pf=$1pi.successor,$1pi);return $1ph;var $1pi;};$1pg$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:['Key$NativeMap',{t:Finished}]},ps:[],$cont:$1pe$.iterator,pa:3,d:['ceylon.language.serialization','NativeMap','$at','keys','$m','iterator','$m','next']};};})($1pg.$$.prototype);}
return $1pg;}
$1pe$.$init$$1pg=$init$$1pg;$init$$1pg();return $1pg();}();};$1pe$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:'Key$NativeMap'}},ps:[],$cont:nativeMap$.$prop$getKeys,pa:3,d:['ceylon.language.serialization','NativeMap','$at','keys','$m','iterator']};};})($1pe.$$.prototype);}
return $1pe;}
nativeMap$.$init$$1pe=$init$$1pe;$init$$1pe();return $1pe();}();},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:'Key$NativeMap'}},$cont:NativeMap$serialization,pa:1,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeMap','$at','keys']};});atr$(nativeMap$,'string',function(){var nativeMap$=this;var $1pl=StringBuilder();$1pl.append("{");if(nn$(nativeMap$.$1oq[0])){$1pl.append("<null> ->").append(ndtc$(nativeMap$.$1oq[0].string,{t:$_String},'NativeMap.ceylon 192:46-192:57'));}
if(($1pm=nativeMap$.$1op.length,$1pn=(1),(nn$($1pm)&&$1pm.compare&&$1pm.compare($1pn)===larger())||$1pm>$1pn)){var $1pp=(1),$1pq=($1pr=nativeMap$.$1op.length,$1ps=(1),(nn$($1pr)&&$1pr.minus&&$1pr.minus($1ps))||$1pr-$1ps);for(var $1pt=0;$1pt<$1pq;$1pt++,($1pp=$1pp.successor)){if(($1pl.size>1)){$1pl.append(", ");}
$1pl.append(ndtc$(nativeMap$.$1op[$1pp],{t:$_String},'NativeMap.ceylon 199:30-199:34')).append("->");if(nn$(nativeMap$.$1oq[$1pp])){$1pl.append(ndtc$(nativeMap$.$1oq[$1pp].string,{t:$_String},'NativeMap.ceylon 201:34-201:45'));}
else{$1pl.append("[null]");}
}}
$1pl.append("}");return $1pl.string;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:NativeMap$serialization,pa:3,an:function(){return[$_native(["js"].$sa$({t:$_String}))];},d:['ceylon.language.serialization','NativeMap','$at','string']};});})(NativeMap$serialization.$$.prototype);}
return NativeMap$serialization;}
ex$.$init$NativeMap$serialization=$init$NativeMap$serialization;$init$NativeMap$serialization();function Outer$serialization(outer$){ReachableReference$serialization(outer$);}
Outer$serialization.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:ReachableReference$serialization}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Outer')];},d:['ceylon.language.serialization','Outer']};};
ex$.Outer$serialization=Outer$serialization;function $init$Outer$serialization(){if(Outer$serialization.$$===undefined){initTypeProtoI(Outer$serialization,'ceylon.language.serialization::Outer',$init$ReachableReference$serialization());
(function(outer$){outer$.referred={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:$_Object},ps:[{nm:'instance',mt:'prm',$t:{t:$_Object}}],$cont:Outer$serialization,pa:7,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Outer:$m:referred')];},d:['ceylon.language.serialization','Outer','$m','referred']};}};})(Outer$serialization.$$.prototype);}
return Outer$serialization;}
ex$.$init$Outer$serialization=$init$Outer$serialization;$init$Outer$serialization();function Partial$serialization(id,partial$){$init$Partial$serialization();
if(partial$===undefined)throwexc(InvocationException$meta$model("Cannot instantiate abstract class ceylon.language.serialization::Partial"),'?','?')
partial$.id_=id;partial$.$1pu_=null;partial$.$1pv_=null;partial$.$1pw_=null;partial$.$1px_=NativeMap$serialization({Key$NativeMap:{t:ReachableReference$serialization},Element$NativeMap:{t:$_Object}});return partial$;}
Partial$serialization.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'id',mt:'prm',$t:{t:$_Object},pa:1,an:function(){return[doc("The id")];}}],pa:256,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Partial')];},d:['ceylon.language.serialization','Partial']};};
ex$.Partial$serialization=Partial$serialization;function $init$Partial$serialization(){if(Partial$serialization.$$===undefined){initTypeProto(Partial$serialization,'ceylon.language.serialization::Partial',Basic);
(function(partial$){atr$(partial$,'id',function(){return this.id_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Object},$cont:Partial$serialization,pa:1,an:function(){return[doc("The id")];},d:['ceylon.language.serialization','Partial','$at','id']};});atr$(partial$,'clazz',function(){return this.$1pu_;},function($1py){return this.$1pu_=$1py;},function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:{t:Anything}}}]},$cont:Partial$serialization,pa:1025,an:function(){return[doc("The class, if we know it yet")];},d:['ceylon.language.serialization','Partial','$at','clazz']};});atr$(partial$,'container',function(){return this.$1pv_;},function($1pz){return this.$1pv_=$1pz;},function(){return{mod:$CCMM$,$t:{t:Anything},$cont:Partial$serialization,pa:1025,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Partial:$at:container')];},d:['ceylon.language.serialization','Partial','$at','container']};});atr$(partial$,'instance_',function(){return this.$1pw_;},function($1q0){return this.$1pw_=$1q0;},function(){return{mod:$CCMM$,$t:{t:Anything},$cont:Partial$serialization,pa:1025,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Partial:$at:instance_')];},d:['ceylon.language.serialization','Partial','$at','instance_']};});atr$(partial$,'state',function(){return this.$1px_;},function($1q1){return this.$1px_=$1q1;},function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:NativeMap$serialization,a:{Element$NativeMap:{t:$_Object},Key$NativeMap:{t:ReachableReference$serialization}}}]},$cont:Partial$serialization,pa:1025,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Partial:$at:state')];},d:['ceylon.language.serialization','Partial','$at','state']};});partial$.addState=function($1q2,$1q3){var partial$=this;var $1q4;asrt$((nn$(($1q4=partial$.state))),"Assertion failed: \'exists s=state\' at Partial.ceylon (31:14-31:29)",'31:8-31:30','Partial.ceylon');
$1q4.put($1q2,$1q3);};partial$.addState.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'attrOrIndex',mt:'prm',$t:{t:ReachableReference$serialization}},{nm:'partialOrComplete',mt:'prm',$t:{t:$_Object}}],$cont:Partial$serialization,pa:1,an:function(){return[doc("Add some state.")];},d:['ceylon.language.serialization','Partial','$m','addState']};};partial$.instantiate={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:Partial$serialization,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Partial:$m:instantiate'),$_throws("DeserializationException","* the class of the instance has already been specified\n* instance is a member instance and the container has not been specified")];},d:['ceylon.language.serialization','Partial','$m','instantiate']};}};partial$.initialize={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'context',mt:'prm',$t:{t:DeserializationContextImpl$serialization,a:{Id$DeserializationContextImpl:'Id$initialize'}}}],$cont:Partial$serialization,tp:{Id$initialize:{sts:[{t:$_Object}]}},pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Partial:$m:initialize'),$_throws("DeserializationException","the partial contains insufficient state")];},d:['ceylon.language.serialization','Partial','$m','initialize']};}};atr$(partial$,'instantiated',function(){var partial$=this;return nn$(partial$.instance_)},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Partial$serialization,pa:1,an:function(){return[doc("Whether the partial has been instantiated")];},d:['ceylon.language.serialization','Partial','$at','instantiated']};});atr$(partial$,'initialized',function(){var partial$=this;return !nn$(partial$.state)},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Partial$serialization,pa:1,an:function(){return[doc("Whether the partial has been initialized")];},d:['ceylon.language.serialization','Partial','$at','initialized']};});atr$(partial$,'member',function(){var partial$=this;return nn$(partial$.container)},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Partial$serialization,pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Partial:$at:member')];},d:['ceylon.language.serialization','Partial','$at','member']};});partial$.instance=function(){var partial$=this;asrt$(((partial$.instantiated&&partial$.initialized)),"Assertion failed: \'instantiated && initialized\' at Partial.ceylon (59:14-59:42)",'59:8-59:43','Partial.ceylon');
return partial$.instance_;};partial$.instance.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:Partial$serialization,pa:1,an:function(){return[doc("Gets the fully initialized instance, or throws")];},d:['ceylon.language.serialization','Partial','$m','instance']};};atr$(partial$,'refersTo',function(){var partial$=this;var $1q5;if(nn$(($1q5=partial$.state))){return $1q5.items;}
else{return empty();}
},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:$_Object}}},$cont:Partial$serialization,pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:Partial:$at:refersTo')];},d:['ceylon.language.serialization','Partial','$at','refersTo']};});})(Partial$serialization.$$.prototype);}
return Partial$serialization;}
ex$.$init$Partial$serialization=$init$Partial$serialization;$init$Partial$serialization();function PartialImpl$serialization($1q6,partialImpl$){$init$PartialImpl$serialization();
if(partialImpl$===undefined)partialImpl$=new PartialImpl$serialization.$$;
partialImpl$.$1q6_=$1q6;Partial$serialization($1q6,partialImpl$);return partialImpl$;}
PartialImpl$serialization.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Partial$serialization},ps:[{nm:'id',mt:'prm',$t:{t:$_Object}}],an:function(){return[$_native()];},d:['ceylon.language.serialization','PartialImpl']};};
ex$.PartialImpl$serialization=PartialImpl$serialization;function $init$PartialImpl$serialization(){if(PartialImpl$serialization.$$===undefined){initTypeProto(PartialImpl$serialization,'ceylon.language.serialization::PartialImpl',$init$Partial$serialization());
(function(partialImpl$){atr$(partialImpl$,'$1q6',function(){return this.$1q6_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Object},$cont:PartialImpl$serialization,d:['ceylon.language.serialization','PartialImpl','$at','id$qh77bu']};});partialImpl$.instantiate=function instantiate(){
var classModel=this.clazz;
if (!classModel) {
throw DeserializationException("no class specified for instance with id " + this.id);
}
var outer,outerClass;
if (is$(classModel,{t:AppliedClass$jsint})) {
outer=null;
outerClass=null;
} else if (is$(classModel,{t:AppliedMemberClass$jsint})) {
outer=this.container;
if (is$(outer,{t:Partial$serialization}))outer=outer.instance_;
outerClass=type$meta(outer,{Type$type:classModel.$$targs$$.Container$AppliedMemberClass});
} else {
throw AssertionError("unexpected class model " + (classModel&&classModel.string||"NULL"));
}
this.instance_=classModel.tipo.inst$$(classModel);
if (outer) {
this.instance_.outer$=outer;
}
}
partialImpl$.instantiate.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[],$cont:PartialImpl$serialization,pa:3,an:function(){return[$_native()];},d:['ceylon.language.serialization','PartialImpl','$m','instantiate']};};partialImpl$.initialize=function initialize(context,$mpt){
var me=this;
function getReferredInstance2(ctxt, refid) {
var referred = ctxt.leakInstance(refid);
if (is$(referred,{t:Partial$serialization})) {
referred = referred.instance_;
}
return referred;
}
function getReferredInstance(ctxt, st, rc) {
var x=st.$_get(rc);
return getReferredInstance2(ctxt, x);
}
function initializeObject(inst) {
var reachables = inst.getT$all()[inst.getT$name()].ser$refs$(inst);
var numLate = 0;
for (var i=0;i<reachables.length;i++) {
var r=reachables[i];
if (is$(r,{t:Member$serialization}) && r.attribute.late) {
numLate++;
} else if (is$(r,{t:Outer$serialization})) {
numLate++;
}
}
if (me.state.size < reachables.length-numLate) {
var missingNames=[];
for (var i=0;i<reachables.length;i++) {
if (!missingNames.contains(reachables[i])) {
missingNames.push(reachables[i]);
}
}
var next;for(var iter=me.state.keys.iterator;(next=iter.next())!==finished();) {
for (var i=0;i<missingNames.length;i++) {
if (missingNames[i].equals(next)) {
missingNames.splice(i,1);
break;
}
}
}
throw DeserializationException$serialization("lacking sufficient state for instance with id " + me.id + ": " + missingNames.string);
}
for (var i=0;i<reachables.length;i++) {
var ref=reachables[i];
if (is$(ref,{t:Member$serialization})) {
if (ref.attribute.late && !me.state.contains(ref)
|| me.state.$_get(ref) === uninitializedLateValue$serialization()) {
continue;
}
//TODO membertypecache
var referredInstance = getReferredInstance(context, me.state, ref);
inst.getT$all()[inst.getT$name()].ser$set$(ref, inst, referredInstance);
} else if (is$(ref,{t:Outer$serialization})) {
continue;
} else {
throw AssertionError("unexpected ReachableReference " + ref.string);
}
}
}
function initializeArray(inst) {
var sizeAttr = $_Array.ser$refs$(inst)[0];
var size = getReferredInstance(context, me.state, sizeAttr);
if (size === null || size === undefined) {
throw DeserializationException$serialization("lacking sufficient state for array with id " + me.id + ": " + sizeAttr.string);
}
var type=inst.getT$all()[inst.getT$name()];
type.ser$set$(sizeAttr,inst,size);
for (var i=0;i<size;i++) {
var index=ElementImpl$impl(i);
var id=me.state.$_get(index);
if (id===null||id===undefined) {
throw DeserializationException$serialization("lacking sufficient state for array with id " + me.id + " element " + i);
}
var elem=getReferredInstance2(context,id);
type.ser$set$(i,inst,elem);
}
if (me.state.size != size+1) {
throw DeserializationException$serialization("lacking sufficient state for array with id " + me.id);
}
}
var inst=me.instance_;
if (is$(inst,{t:$_Array})) {
initializeArray(inst);
} else if (is$(inst,{t:Tuple})) {
console.log("TODO! initialize tuple");
} else {
initializeObject(inst);
}
me.state=null;
}
partialImpl$.initialize.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'context',mt:'prm',$t:{t:DeserializationContextImpl$serialization,a:{Id$DeserializationContextImpl:'Id$initialize'}}}],$cont:PartialImpl$serialization,tp:{Id$initialize:{sts:[{t:$_Object}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.serialization','PartialImpl','$m','initialize']};};})(PartialImpl$serialization.$$.prototype);}
return PartialImpl$serialization;}
ex$.$init$PartialImpl$serialization=$init$PartialImpl$serialization;$init$PartialImpl$serialization();function ReachableReference$serialization(reachableReference$){}
ReachableReference$serialization.$crtmm$=function(){return{mod:$CCMM$,of:[{t:Member$serialization},{t:Element$serialization},{t:Outer$serialization}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:ReachableReference')];},d:['ceylon.language.serialization','ReachableReference']};};
ex$.ReachableReference$serialization=ReachableReference$serialization;function $init$ReachableReference$serialization(){if(ReachableReference$serialization.$$===undefined){initTypeProtoI(ReachableReference$serialization,'ceylon.language.serialization::ReachableReference');
(function(reachableReference$){reachableReference$.referred={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'instance',mt:'prm',$t:{t:$_Object}}],$cont:ReachableReference$serialization,pa:5,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:ReachableReference:$m:referred')];},d:['ceylon.language.serialization','ReachableReference','$m','referred']};}};})(ReachableReference$serialization.$$.prototype);}
return ReachableReference$serialization;}
ex$.$init$ReachableReference$serialization=$init$ReachableReference$serialization;$init$ReachableReference$serialization();function References$serialization(references$){Iterable({Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:ReachableReference$serialization},Item$Entry:{t:Anything}}}},references$);}
References$serialization.$crtmm$=function(){return{mod:$CCMM$,sts:[{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:ReachableReference$serialization},Item$Entry:{t:Anything}}}}}],pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:References')];},d:['ceylon.language.serialization','References']};};
ex$.References$serialization=References$serialization;function $init$References$serialization(){if(References$serialization.$$===undefined){initTypeProtoI(References$serialization,'ceylon.language.serialization::References',$init$Iterable());
(function(references$){references$.$prop$getInstance={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Anything},$cont:References$serialization,pa:5,an:function(){return[doc("The instance")];},d:['ceylon.language.serialization','References','$at','instance']};}};references$.$prop$getReferences={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:ReachableReference$serialization}}},$cont:References$serialization,pa:5,an:function(){return[doc("The references that are reachable from the [[instance]].")];},d:['ceylon.language.serialization','References','$at','references']};}};})(References$serialization.$$.prototype);}
return References$serialization;}
ex$.$init$References$serialization=$init$References$serialization;$init$References$serialization();function ReferencesImpl$serialization(instance,referencesImpl$){$init$ReferencesImpl$serialization();
if(referencesImpl$===undefined)referencesImpl$=new ReferencesImpl$serialization.$$;
referencesImpl$.$1q7_=instance;References$serialization(referencesImpl$);BaseIterable$impl({Absent$BaseIterable:{t:Null},Element$BaseIterable:{t:Entry,a:{Key$Entry:{t:ReachableReference$serialization},Item$Entry:{t:Anything}}}},referencesImpl$);Identifiable(referencesImpl$);return referencesImpl$;}
ReferencesImpl$serialization.$crtmm$=function(){return{mod:$CCMM$,'super':{t:BaseIterable$impl,a:{Absent$BaseIterable:{t:Null},Element$BaseIterable:{t:Entry,a:{Key$Entry:{t:ReachableReference$serialization},Item$Entry:{t:Anything}}}}},ps:[{nm:'instance',mt:'prm',$t:{t:Anything},pa:3}],sts:[{t:References$serialization},{t:Identifiable}],d:['ceylon.language.serialization','ReferencesImpl']};};
ex$.ReferencesImpl$serialization=ReferencesImpl$serialization;function $init$ReferencesImpl$serialization(){if(ReferencesImpl$serialization.$$===undefined){initTypeProto(ReferencesImpl$serialization,'ceylon.language.serialization::ReferencesImpl',$init$BaseIterable$impl(),$init$References$serialization(),$init$Identifiable());
(function(referencesImpl$){atr$(referencesImpl$,'instance',function(){return this.$1q7_;},undefined,function(){return{mod:$CCMM$,$t:{t:Anything},$cont:ReferencesImpl$serialization,pa:3,d:['ceylon.language.serialization','ReferencesImpl','$at','instance']};});referencesImpl$.iterator=function(){var referencesImpl$=this;var $1q8;if(nn$(($1q8=referencesImpl$.instance))){var $1q9=(function(){var $1qa=$1q8;return function(){function $1qb(){var $1qb$=new $1qb.$$;$1qb$.outer$=referencesImpl$;BaseIterator$impl({Element$BaseIterator:{t:Entry,a:{Key$Entry:{t:ReachableReference$serialization},Item$Entry:{t:Anything}}}},$1qb$);Identifiable($1qb$);$1qb$.$1qc_=referencesImpl$.references.iterator();$1qb$.$prop$get$1qc={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:ReachableReference$serialization}}},$cont:referencesImpl$.iterator,d:['ceylon.language.serialization','ReferencesImpl','$m','iterator','$at','it$86cdjk']};}};$1qb$.$prop$get$1qc.get=function(){return $1qc};return $1qb$;};$1qb.$crtmm$=function(){return{mod:$CCMM$,'super':{t:BaseIterator$impl,a:{Element$BaseIterator:{t:Entry,a:{Key$Entry:{t:ReachableReference$serialization},Item$Entry:{t:Anything}}}}},$cont:referencesImpl$.iterator,sts:[{t:Identifiable}],d:['ceylon.language.serialization','ReferencesImpl','$m','iterator']};};function $init$$1qb(){if($1qb.$$===undefined){initTypeProto($1qb,'ceylon.language.serialization::ReferencesImpl.anonymous#0',$init$BaseIterator$impl(),$init$Identifiable());
(function($1qb$){atr$($1qb$,'$1qc',function(){return this.$1qc_;},undefined,function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:ReachableReference$serialization}}},$cont:referencesImpl$.iterator,d:['ceylon.language.serialization','ReferencesImpl','$m','iterator','$at','it$86cdjk']};});$1qb$.next=function(){var $1qb$=this;var $1qd=$1qb$.$1qc.next();var $1qe;if(is$(($1qe=$1qd),{t:Finished})){return finished();}
else{return Entry($1qe,$1qe.referred($1qa),{Key$Entry:mut$([{t:Member$serialization},{t:Element$serialization},{t:Outer$serialization}]),Item$Entry:{t:Anything}});}
};$1qb$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Entry,a:{Key$Entry:{t:ReachableReference$serialization},Item$Entry:{t:Anything}}},{t:Finished}]},ps:[],$cont:referencesImpl$.iterator,pa:3,d:['ceylon.language.serialization','ReferencesImpl','$m','iterator','$m','next']};};})($1qb.$$.prototype);}
return $1qb;}
referencesImpl$.$init$$1qb=$init$$1qb;$init$$1qb();return $1qb();}();}());if($1q9!==undefined){return $1q9;}}
else{return emptyIterator();}
};referencesImpl$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:Entry,a:{Key$Entry:{t:ReachableReference$serialization},Item$Entry:{t:Anything}}}}},ps:[],$cont:ReferencesImpl$serialization,pa:3,d:['ceylon.language.serialization','ReferencesImpl','$m','iterator']};};atr$(referencesImpl$,'references',function(){var referencesImpl$=this;return function(){function $1qg(){var $1qg$=new $1qg.$$;$1qg$.outer$=referencesImpl$;BaseIterable$impl({Absent$BaseIterable:{t:Null},Element$BaseIterable:{t:ReachableReference$serialization}},$1qg$);Identifiable($1qg$);return $1qg$;};$1qg.$crtmm$=function(){return{mod:$CCMM$,'super':{t:BaseIterable$impl,a:{Absent$BaseIterable:{t:Null},Element$BaseIterable:{t:ReachableReference$serialization}}},$cont:referencesImpl$.$prop$getReferences,sts:[{t:Identifiable}],d:['ceylon.language.serialization','ReferencesImpl','$at','references']};};function $init$$1qg(){if($1qg.$$===undefined){initTypeProto($1qg,'ceylon.language.serialization::ReferencesImpl.anonymous#1',$init$BaseIterable$impl(),$init$Identifiable());
(function($1qg$){$1qg$.iterator=function(){var $1qg$=this;return reach$impl().references(referencesImpl$.instance);};$1qg$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:ReachableReference$serialization}}},ps:[],$cont:referencesImpl$.$prop$getReferences,pa:3,d:['ceylon.language.serialization','ReferencesImpl','$at','references','$m','iterator']};};})($1qg.$$.prototype);}
return $1qg;}
referencesImpl$.$init$$1qg=$init$$1qg;$init$$1qg();return $1qg();}();},undefined,function(){return{mod:$CCMM$,$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:ReachableReference$serialization}}},$cont:ReferencesImpl$serialization,pa:3,d:['ceylon.language.serialization','ReferencesImpl','$at','references']};});})(ReferencesImpl$serialization.$$.prototype);}
return ReferencesImpl$serialization;}
ex$.$init$ReferencesImpl$serialization=$init$ReferencesImpl$serialization;$init$ReferencesImpl$serialization();function SerializationContext$serialization(serializationContext$){}
SerializationContext$serialization.$crtmm$=function(){return{mod:$CCMM$,pa:17,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:SerializationContext')];},d:['ceylon.language.serialization','SerializationContext']};};
ex$.SerializationContext$serialization=SerializationContext$serialization;function $init$SerializationContext$serialization(){if(SerializationContext$serialization.$$===undefined){initTypeProtoI(SerializationContext$serialization,'ceylon.language.serialization::SerializationContext');
(function(serializationContext$){serializationContext$.references={$fml:1,$crtmm$:function(){return{mod:$CCMM$,$t:{t:References$serialization},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}}],$cont:SerializationContext$serialization,pa:5,an:function(){return[doc("Obtain the references of the given instance."),$_throws("SerializationException","If the class is not serializable")];},d:['ceylon.language.serialization','SerializationContext','$m','references']};}};})(SerializationContext$serialization.$$.prototype);}
return SerializationContext$serialization;}
ex$.$init$SerializationContext$serialization=$init$SerializationContext$serialization;$init$SerializationContext$serialization();function SerializationContextImpl$serialization(serializationContextImpl$){$init$SerializationContextImpl$serialization();
if(serializationContextImpl$===undefined)serializationContextImpl$=new SerializationContextImpl$serialization.$$;
SerializationContext$serialization(serializationContextImpl$);return serializationContextImpl$;}
SerializationContextImpl$serialization.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],sts:[{t:SerializationContext$serialization}],d:['ceylon.language.serialization','SerializationContextImpl']};};
ex$.SerializationContextImpl$serialization=SerializationContextImpl$serialization;function $init$SerializationContextImpl$serialization(){if(SerializationContextImpl$serialization.$$===undefined){initTypeProto(SerializationContextImpl$serialization,'ceylon.language.serialization::SerializationContextImpl',Basic,$init$SerializationContext$serialization());
(function(serializationContextImpl$){serializationContextImpl$.references=function($1qi){var serializationContextImpl$=this;if(classDeclaration$meta($1qi).serializable){return ReferencesImpl$serialization($1qi);}
else{throw wrapexc(SerializationException$serialization("instance of non-serializable class: ".plus(type$meta($1qi,{Type$type:{t:Anything}}).string)),'35:12-35:98','ceylon/language/serialization/SerializationContext.ceylon');}
};serializationContextImpl$.references.$crtmm$=function(){return{mod:$CCMM$,$t:{t:References$serialization},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}}],$cont:SerializationContextImpl$serialization,pa:3,d:['ceylon.language.serialization','SerializationContextImpl','$m','references']};};})(SerializationContextImpl$serialization.$$.prototype);}
return SerializationContextImpl$serialization;}
ex$.$init$SerializationContextImpl$serialization=$init$SerializationContextImpl$serialization;$init$SerializationContextImpl$serialization();function SerializationException$serialization($1qj,$1qk,serializationException$){$init$SerializationException$serialization();
if(serializationException$===undefined)serializationException$=new SerializationException$serialization.$$;
serializationException$.$1qj_=$1qj;if($1qk===undefined){$1qk=$init$SerializationException$serialization().$defs$cause(serializationException$,$1qj);}
serializationException$.$1qk_=$1qk;Exception($1qj,$1qk,serializationException$);return serializationException$;}
SerializationException$serialization.$defs$cause=function(serializationException$,$1qj){return null};SerializationException$serialization.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Exception},ps:[{nm:'message',mt:'prm',$t:{t:$_String}},{nm:'cause',mt:'prm',def:1,$t:{t:'u',l:[{t:Null},{t:Throwable}]}}],pa:1,an:function(){return[doc$($CCMM$,'ceylon.language.serialization:SerializationException')];},d:['ceylon.language.serialization','SerializationException']};};
ex$.SerializationException$serialization=SerializationException$serialization;function $init$SerializationException$serialization(){if(SerializationException$serialization.$$===undefined){initTypeProto(SerializationException$serialization,'ceylon.language.serialization::SerializationException',$init$Exception());
(function(serializationException$){atr$(serializationException$,'$1qj',function(){return this.$1qj_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:SerializationException$serialization,d:['ceylon.language.serialization','SerializationException','$at','message$lnvdpc']};});atr$(serializationException$,'$1qk',function(){return this.$1qk_;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Throwable}]},$cont:SerializationException$serialization,d:['ceylon.language.serialization','SerializationException','$at','cause$tockc2']};});})(SerializationException$serialization.$$.prototype);}
return SerializationException$serialization;}
ex$.$init$SerializationException$serialization=$init$SerializationException$serialization;$init$SerializationException$serialization();function deserialization$serialization($kr7let$){return DeserializationContextImpl$serialization({Id$DeserializationContextImpl:$kr7let$.Id$deserialization});};deserialization$serialization.$crtmm$=function(){return{mod:$CCMM$,$t:{t:DeserializationContext$serialization,a:{Id$DeserializationContext:'Id$deserialization'}},ps:[],tp:{Id$deserialization:{sts:[{t:$_Object}]}},pa:1,an:function(){return[doc("A new [[DeserializationContext]].")];},d:['ceylon.language.serialization','deserialization']};};
ex$.deserialization$serialization=deserialization$serialization;ex$.$pkg$ans$ceylon$language$serialization=function(){return[doc$($CCMM$,'ceylon.language.serialization','$pkg-anns'),by(["Gavin","Tom"].$sa$({t:$_String})),tagged(["Serialization"].$sa$({t:$_String})),shared()];};function serialization$serialization(){return SerializationContextImpl$serialization();};serialization$serialization.$crtmm$=function(){return{mod:$CCMM$,$t:{t:SerializationContext$serialization},ps:[],pa:1,an:function(){return[doc("A new [[SerializationContext]].")];},d:['ceylon.language.serialization','serialization']};};
ex$.serialization$serialization=serialization$serialization;function AppliedCallableConstructor$jsint(tipo,$$targs$$,that,myTargs) {
if ($$targs$$.Type$AppliedCallableConstructor===undefined)$$targs$$.Type$AppliedCallableConstructor=$$targs$$.Type$CallableConstructor;
if ($$targs$$.Arguments$AppliedCallableConstructor===undefined)$$targs$$.Arguments$AppliedCallableConstructor=$$targs$$.Type$CallableConstructor;
$init$AppliedCallableConstructor$jsint();
if (that===undefined){
var mm=getrtmm$$(tipo);
if (mm) {
that=function AppliedCallableConstr1(){
var _a=[].slice.call(arguments,0);
_a=convert$params(mm,_a,that.$targs);
if (that.$targs) {
_a.push(that.$targs);
}
return tipo.apply(undefined,_a);
}
that.$crtmm$=mm;
var dummy=new AppliedCallableConstructor$jsint.$$;
that.$$=dummy.$$;
that.getT$all=function(){return dummy.getT$all();}
that.getT$name=function(){return dummy.getT$name();}
that.equals=AppliedCallableConstructor$jsint.$$.prototype.equals;
that.$_apply=AppliedCallableConstructor$jsint.$$.prototype.$_apply;
that.namedApply=AppliedCallableConstructor$jsint.$$.prototype.namedApply;
atr$(that,'declaration',function(){
return AppliedCallableConstructor$jsint.$$.prototype.$prop$getDeclaration.get.call(this);
},undefined,AppliedCallableConstructor$jsint.$$.prototype.$prop$getDeclaration.$crtmm$);
atr$(that,'container',function(){
return AppliedCallableConstructor$jsint.$$.prototype.$prop$getContainer.get.call(this);
},undefined,AppliedCallableConstructor$jsint.$$.prototype.$prop$getContainer.$crtmm$);
atr$(that,'type',function(){
return AppliedCallableConstructor$jsint.$$.prototype.$prop$getType.get.call(this);
},undefined,AppliedCallableConstructor$jsint.$$.prototype.$prop$getType.$crtmm$);
atr$(that,'typeArguments',function(){
return AppliedCallableConstructor$jsint.$$.prototype.$prop$getTypeArguments.get.call(this);
},undefined,AppliedCallableConstructor$jsint.$$.prototype.$prop$getTypeArguments.$crtmm$);
atr$(that,'typeArgumentList',function(){
return AppliedCallableConstructor$jsint.$$.prototype.$prop$getTypeArgumentList.get.call(this);
},undefined,AppliedCallableConstructor$jsint.$$.prototype.$prop$getTypeArgumentList.$crtmm$);
atr$(that,'typeArgumentWithVariances',function(){
return AppliedCallableConstructor$jsint.$$.prototype.$prop$getTypeArgumentWithVariances.get.call(this);
},undefined,AppliedCallableConstructor$jsint.$$.prototype.$prop$getTypeArgumentWithVariances.$crtmm$);
atr$(that,'typeArgumentWithVarianceList',function(){
return AppliedCallableConstructor$jsint.$$.prototype.$prop$getTypeArgumentWithVarianceList.get.call(this);
},undefined,AppliedCallableConstructor$jsint.$$.prototype.$prop$getTypeArgumentWithVarianceList.$crtmm$);
atr$(that,'parameterTypes',function(){
return AppliedCallableConstructor$jsint.$$.prototype.$prop$getParameterTypes.get.call(this);
},undefined,AppliedCallableConstructor$jsint.$$.prototype.$prop$getParameterTypes.$crtmm$);
atr$(that,'string',function(){
return AppliedCallableConstructor$jsint.$$.prototype.$prop$getString.get.call(this);
},undefined,AppliedCallableConstructor$jsint.$$.prototype.$prop$getString.$crtmm$);
}
}
$_Function$meta$model({Arguments$Function:$$targs$$.Arguments$AppliedCallableConstructor,
Type$Function:$$targs$$.Type$AppliedCallableConstructor},that);
CallableConstructor$meta$model({Type$CallableConstructor:$$targs$$.Type$AppliedCallableConstructor,Arguments$CallableConstructor:$$targs$$.Arguments$AppliedCallableConstructor},that);
set_type_args(that,$$targs$$,AppliedCallableConstructor$jsint);
that.$targs=myTargs;
that.tipo=tipo;
return that;
}
AppliedCallableConstructor$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'_tipo',mt:'prm',$t:{t:Anything}}],tp:{Type$AppliedCallableConstructor:{dv:'out',def:{t:Anything}},Arguments$AppliedCallableConstructor:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$AppliedCallableConstructor',Type$CallableConstructor:'Type$AppliedCallableConstructor'}}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor']};};
ex$.AppliedCallableConstructor$jsint=AppliedCallableConstructor$jsint;function $init$AppliedCallableConstructor$jsint(){if(AppliedCallableConstructor$jsint.$$===undefined){initTypeProto(AppliedCallableConstructor$jsint,'ceylon.language.jsint::AppliedCallableConstructor',
Basic,$init$CallableConstructor$meta$model(),$init$$_Function$meta$model());
(function(appliedCallableConstructor$){atr$(appliedCallableConstructor$,'$1ql',function(){return this.$1ql_;},undefined,function(){return{mod:$CCMM$,$t:{t:Anything},$cont:AppliedCallableConstructor$jsint,d:['ceylon.language.jsint','AppliedCallableConstructor','$at','_tipo$35cy4o']};});atr$(appliedCallableConstructor$,'declaration',function(){if (this.dec$===undefined) {
this.dec$=OpenCallableConstructor$jsint(lmp$(ex$,getrtmm$$(this.tipo).d[0]),this.tipo);
}
return this.dec$;
},undefined,function(){return{mod:$CCMM$,$t:{t:CallableConstructorDeclaration$meta$declaration},$cont:AppliedCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor','$at','declaration']};});atr$(appliedCallableConstructor$,'container',function(){return this.fakeConstr$?this.type:null;
},undefined,function(){return{mod:$CCMM$,$t:{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:'Type$AppliedCallableConstructor'}},$cont:AppliedCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor','$at','container']};});atr$(appliedCallableConstructor$,'type',function(){if (this.cont$===undefined) {
var cc=this.fakeConstr$?this.tipo:getrtmm$$(this.tipo).$cont;
this.cont$=AppliedClass$jsint(cc,{Type$AppliedClass:this.$$targs$$.Type$AppliedCallableConstructor,Arguments$AppliedClass:{t:Nothing}},undefined,this.$targs);
}
return this.cont$;
},undefined,function(){return{mod:$CCMM$,$t:{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:'Type$AppliedCallableConstructor'}},$cont:AppliedCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor','$at','type']};});atr$(appliedCallableConstructor$,'parameterTypes',function(){if (this.ptypes$===undefined) {
this.ptypes$=clsparamtypes(this);
}
return this.ptypes$;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor','$at','parameterTypes']};});appliedCallableConstructor$.$_apply=function(a){
var mm=getrtmm$$(this.tipo);
var mdl=get_model(mm);
a=convert$params(mm,a,this.$targs);
if (this.$targs)a.push(this.$targs);
return this.tipo.apply(undefined,a);
}
appliedCallableConstructor$.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:'Type$AppliedCallableConstructor',ps:[{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:AppliedCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor','$m','apply']};};appliedCallableConstructor$.namedApply=function(args){
var mm=getrtmm$$(this.tipo);
var mdl=get_model(mm);
if (mm.ps===undefined)throw InvocationException$meta$model("Applied constructor does not have metamodel parameter info for named args call");
var mapped={};
var iter=args.iterator();var a;while((a=iter.next())!==finished()) {
mapped[a.key]=a.item;
}
var ordered=[];
for (var i=0; i<mm.ps.length; i++) {
var p=mm.ps[i];
var v=mapped[p.nm];
if (v===undefined && p.def===undefined) {
throw InvocationException$meta$model("Required argument " + p.nm + " missing in named-argument invocation");
} else if (v!==undefined) {
var t=restype2$(p.$t,this.$targs);
if (t&&!is$(v,t))throw IncompatibleTypeException$meta$model("Argument " + p.nm + "="+v+" is not of the expected type.");
}
delete mapped[p.nm];
ordered.push(v);
}
if (Object.keys(mapped).length>0)throw new InvocationException$meta$model("No arguments with names " + Object.keys(mapped));
if (this.$targs) {
ordered.push(this.$targs);
}
return this.tipo.apply(undefined,ordered);
}
appliedCallableConstructor$.namedApply.$crtmm$=function(){return{mod:$CCMM$,$t:'Type$AppliedCallableConstructor',ps:[{nm:'arguments',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:$_String},Item$Entry:{t:Anything}}}}}}],$cont:AppliedCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor','$m','namedApply']};};atr$(appliedCallableConstructor$,'string',function(){return qname$(getrtmm$$(this.tipo));
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor','$at','string']};});atr$(appliedCallableConstructor$,'typeArguments',function(){return this.type.typeArguments;
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor','$at','typeArguments']};});atr$(appliedCallableConstructor$,'typeArgumentList',function(){return this.type.typeArgumentList;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor','$at','typeArgumentList']};});atr$(appliedCallableConstructor$,'typeArgumentWithVariances',function(){return this.type.typeArgumentWithVariances;
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:TypeArgument$meta$model()}},$cont:AppliedCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor','$at','typeArgumentWithVariances']};});atr$(appliedCallableConstructor$,'typeArgumentWithVarianceList',function(){return this.type.typeArgumentWithVarianceList;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:TypeArgument$meta$model()}},$cont:AppliedCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor','$at','typeArgumentWithVarianceList']};});appliedCallableConstructor$.equals=function equals(o) {
if (is$(o,{t:AppliedCallableConstructor$jsint}) && this.tipo===o.tipo) {
return this.typeArguments.equals(o.typeArguments);
}
return false;
}
appliedCallableConstructor$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedCallableConstructor','$m','equals']};};})(AppliedCallableConstructor$jsint.$$.prototype);}
return AppliedCallableConstructor$jsint;}
ex$.$init$AppliedCallableConstructor$jsint=$init$AppliedCallableConstructor$jsint;$init$AppliedCallableConstructor$jsint();function AppliedClass$jsint(tipo,$$targs$$,that,classTargs){
if (!$$targs$$.Type$AppliedClass)$$targs$$.Type$AppliedClass=$$targs$$.Type$Class;
if (!$$targs$$.Arguments$AppliedClass)$$targs$$.Arguments$AppliedClass=$$targs$$.Arguments$Class;
$init$AppliedClass$jsint();
var _proto=AppliedClass$jsint.$$.prototype;
if (that===undefined){
var mm = getrtmm$$(tipo);
if (mm && mm.$cont) {
that=function AppliedClass1(x){/*Class*/
if (that.$targs) {
var _a=[];
for (var i=0;i<arguments.length;i++)_a.push(arguments[i]);
_a.push(that.$targs);
return tipo.apply(x,_a);
}
return tipo.apply(x,arguments);
}
} else {
that=function AppliedClass2(){
if (that.$targs) {
var _a=[];
for (var i=0;i<arguments.length;i++)_a.push(arguments[i]);
_a.push(that.$targs);
return tipo.apply(undefined,_a);
}
return tipo.apply(undefined,arguments);
}
}
that.$crtmm$=mm;
var dummy = new AppliedClass$jsint.$$;
that.$$=AppliedClass$jsint.$$;
that.getT$all=function(){return dummy.getT$all();};
that.getT$name=function(){return dummy.getT$name();};
that.$_apply=_proto.$_apply;
that.namedApply=_proto.namedApply;
}
//AppliedMemberClass also gets these
atr$(that,'satisfiedTypes',function(){return coisattype$(that);
},undefined,_proto.$prop$getExtendedType.$crtmm$);
atr$(that,'container',function(){ return coicont$(that);
},undefined,_proto.$prop$getContainer.$crtmm$);
atr$(that,'string',function(){return coistr$(that);},undefined,_proto.$prop$getString.$crtmm$);
atr$(that,'hash',function(){return coihash$(that);},undefined,_proto.$prop$getHash.$crtmm$);
atr$(that,'typeArguments',function(){return coitarg$(that);
},undefined,_proto.$prop$getTypeArguments.$crtmm$);
atr$(that,'typeArgumentList',function(){return coitargl$(that);
},undefined,_proto.$prop$getTypeArgumentList.$crtmm$);
atr$(that,'typeArgumentWithVariances',function(){return coitargv$(that);
},undefined,_proto.$prop$getTypeArgumentWithVariances.$crtmm$);
atr$(that,'typeArgumentWithVarianceList',function(){return coitargvl$(that);
},undefined,_proto.$prop$getTypeArgumentWithVarianceList.$crtmm$);
atr$(that,'extendedType',function(){return coiexttype$(that);
},undefined,_proto.$prop$getExtendedType.$crtmm$);
atr$(that,'declaration',function(){return coimoddcl$(that);
},undefined,_proto.$prop$getDeclaration.$crtmm$);
atr$(that,'caseValues',function(){return coicase$(that);
},undefined,_proto.$prop$getCaseValues.$crtmm$);
atr$(that,'defaultConstructor',function(){
return _proto.$prop$getDefaultConstructor.get.call(that);
},undefined,_proto.$prop$getDefaultConstructor.$crtmm$);
that.getMethod=_proto.getMethod;
that.getDeclaredMethod=_proto.getDeclaredMethod;
that.getMethods=_proto.getMethods;
that.getDeclaredMethods=_proto.getDeclaredMethods;
that.getAttribute=_proto.getAttribute;
that.getDeclaredAttribute=_proto.getDeclaredAttribute;
that.getAttributes=_proto.getAttributes;
that.getDeclaredAttributes=_proto.getDeclaredAttributes;
that.getClassOrInterface=_proto.getClassOrInterface;
that.getDeclaredClassOrInterface=_proto.getDeclaredClassOrInterface;
that.getClass=_proto.getClass;
that.getDeclaredClass=_proto.getDeclaredClass;
that.getClasses=_proto.getClasses;
that.getDeclaredClasses=_proto.getDeclaredClasses;
that.getInterface=_proto.getInterface;
that.getDeclaredInterface=_proto.getDeclaredInterface;
that.getInterfaces=_proto.getInterfaces;
that.getDeclaredInterfaces=_proto.getDeclaredInterfaces;
that.getConstructor=_proto.getConstructor;
that.getCallableConstructors=_proto.getCallableConstructors;
that.getDeclaredCallableConstructors=_proto.getDeclaredCallableConstructors;
that.getDeclaredConstructor=_proto.getDeclaredConstructor;
that.getDeclaredValueConstructors=_proto.getDeclaredValueConstructors;
that.getValueConstructors=_proto.getValueConstructors;
that.equals=_proto.equals;
that.typeOf=_proto.typeOf;
that.supertypeOf=_proto.supertypeOf;
that.subtypeOf=_proto.subtypeOf;
that.exactly=_proto.exactly;
that.union=_proto.union;
that.intersection=_proto.intersection;
that.$targs=classTargs;
set_type_args(that,$$targs$$,AppliedClass$jsint);
Class$meta$model({Arguments$Class:that.$$targs$$.Arguments$AppliedClass,
Type$Class:that.$$targs$$.Type$AppliedClass},that);
//This is for serialization
if (tipo===Tuple && classTargs)that.$$targs$$.Type$Class={t:Tuple,a:classTargs};
that.tipo=tipo;
return that;
}
AppliedClass$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Type$AppliedClass:{dv:'out',def:{t:Anything}},Arguments$AppliedClass:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:Class$meta$model,a:{Type$Class:'Type$AppliedClass',Arguments$Class:'Arguments$AppliedClass'}}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass']};};
ex$.AppliedClass$jsint=AppliedClass$jsint;function $init$AppliedClass$jsint(){if(AppliedClass$jsint.$$===undefined){initTypeProto(AppliedClass$jsint,'ceylon.language.jsint::AppliedClass',Basic,$init$Class$meta$model());
(function(appliedClass$){atr$(appliedClass$,'defaultConstructor',function(){if (this.$defcons$===undefined) {
var mm=getrtmm$$(this.tipo);
var fn=mm.d[mm.d.length-1]+'_$c$';
var cn=this.tipo[fn];
var fc=false;
if (!cn) {
var m2=get_model(mm);
if (m2 && m2.$cn===undefined) {
cn=this.tipo;
fc=true;
} else if (m2 && m2.$cn) {
//The class has constructors, but it's a local class or something
for (var mem in this.tipo) {
if (mem.endsWith("_$c$")) {
cn=this.tipo[mem];
break;
}
}
}
}
if (cn) {
mm=getrtmm$$(cn).ps;
var args=tupleize$params(getrtmm$$(cn).ps,this.$$targs$$.Target$Type.a);
var r=AppliedCallableConstructor$jsint(cn,{Type$AppliedCallableConstructor:this.$$targs$$.Type$AppliedClass,
Arguments$AppliedCallableConstructor:args},undefined,this.$targs);
r.cont$=this;
this.$defcons$=r;
if(fc)r.fakeConstr$=true;
return r;
}
this.$defcons$=null;
}
return this.$defcons$;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$AppliedClass',Type$CallableConstructor:'Type$AppliedClass'}}]},$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$at','defaultConstructor']};});appliedClass$.getConstructor=function(nm,$mpt){
var r=this.getDeclaredConstructor(nm,{Arguments$getDeclaredConstructor:$mpt.Arguments$getConstructor});
return r && (getrtmm$$(r.tipo).pa&1)>0?r:null;
}
appliedClass$.getConstructor.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$getConstructor',Type$CallableConstructor:'Type$AppliedClass'}},{t:'u',l:[{t:Null},{t:ValueConstructor$meta$model,a:{Type$ValueConstructor:'Type$AppliedClass'}}]}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:AppliedClass$jsint,tp:{Arguments$getConstructor:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getConstructor']};};appliedClass$.getDeclaredConstructor=function(nm,$mpt){
var mm=getrtmm$$(this.tipo);
var fn=mm.d[mm.d.length-1]+"_"+(nm===''?'$c$':nm);
var cn=this.tipo[fn];
if (cn) {
mm=getrtmm$$(cn);
if (mm.d[mm.d.length-2]==='$cn' && mm.ps!==undefined) {
validate$params(mm.ps,$mpt.Arguments$getDeclaredConstructor,"Wrong number of Arguments for getConstructor");
var args=mm.ps?tupleize$params(mm.ps,this.$targs):empty();
var r=AppliedCallableConstructor$jsint(cn,{Type$AppliedCallableConstructor:this.$$targs$$.Type$AppliedClass,
Arguments$AppliedCallableConstructor:args},undefined,this.$targs);
r.cont$=this;
return r;
}
}
return null;
}
appliedClass$.getDeclaredConstructor.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$getDeclaredConstructor',Type$CallableConstructor:'Type$AppliedClass'}},{t:'u',l:[{t:Null},{t:ValueConstructor$meta$model,a:{Type$ValueConstructor:'Type$AppliedClass'}}]}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:AppliedClass$jsint,tp:{Arguments$getDeclaredConstructor:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getDeclaredConstructor']};};appliedClass$.getDeclaredCallableConstructors=function(anntypes,$m) {
var mm=getrtmm$$(this.tipo);
var pref=mm.d[mm.d.length-1]+"_";
var cs=coiclsannconstrs$(this,anntypes,pref,this.$$targs$$.Type$AppliedClass,$m.Arguments$getDeclaredCallableConstructors);
for (var i=0;i<cs.length;i++) {
var r=AppliedCallableConstructor$jsint(cs[i].tipo,{Type$AppliedCallableConstructor:this.$$targs$$.Type$AppliedClass,
Arguments$AppliedCallableConstructor:cs[i].args},undefined,this.$targs);
r.cont$=this;
if (cs[i].fakeConstr)r.fakeConstr$=true;
cs[i]=r;
}
return cs.$sa$({t:CallableConstructor$meta$model,
a:{Type$CallableConstructor:this.$$targs$$.Type$AppliedClass,Arguments$CallableConstructor:{t:Nothing}}});
}
appliedClass$.getDeclaredCallableConstructors.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$getDeclaredCallableConstructors',Type$CallableConstructor:'Type$AppliedClass'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedClass$jsint,tp:{Arguments$getDeclaredCallableConstructors:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getDeclaredCallableConstructors']};};appliedClass$.getCallableConstructors=function(anntypes,$m){
return this.getDeclaredCallableConstructors(anntypes,{Arguments$getDeclaredCallableConstructors:$m.Arguments$getCallableConstructors}
).select(function(e){return (getrtmm$$(e.tipo).pa&1)>0||e.fakeConstr$;});
}
appliedClass$.getCallableConstructors.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$getCallableConstructors',Type$CallableConstructor:'Type$AppliedClass'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedClass$jsint,tp:{Arguments$getCallableConstructors:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getCallableConstructors']};};appliedClass$.getDeclaredValueConstructors=function(anntypes){
var mm=getrtmm$$(this.tipo);
var pref=mm.d[mm.d.length-1]+"_";
var cs=coiclsannconstrs$(this,anntypes,pref,this.$$targs$$.Type$AppliedClass);
for (var i=0;i<cs.length;i++) {
var r=AppliedValueConstructor$jsint(cs[i].tipo,{Type$AppliedValueConstructor:this.$$targs$$.Type$AppliedClass});
r.cont$=this;
cs[i]=r;
}
return cs.$sa$({t:ValueConstructor$meta$model,
a:{Type$ValueConstructor:this.$$targs$$.Type$AppliedClass}});
}
appliedClass$.getDeclaredValueConstructors.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:ValueConstructor$meta$model,a:{Type$ValueConstructor:'Type$AppliedClass'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getDeclaredValueConstructors']};};appliedClass$.getValueConstructors=function(anntypes){
return this.getDeclaredValueConstructors(anntypes)
.select(function(e){return (getrtmm$$(e.tipo).pa&1)>0;});
}
appliedClass$.getValueConstructors.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:ValueConstructor$meta$model,a:{Type$ValueConstructor:'Type$AppliedClass'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getValueConstructors']};};appliedClass$.$_apply=function(a){
var mm=getrtmm$$(this.tipo);
var mdl=get_model(mm);
if (mdl&&mdl.mt==='o')throw InvocationException$meta$model("Cannot instantiate anonymous class");
a=convert$params(mm,a,this.$targs);
if (this.$targs)a.push(this.$targs);
return this.tipo.apply(undefined,a);
}
appliedClass$.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:'Type$AppliedClass',ps:[{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','apply']};};appliedClass$.namedApply=function(args){
var mm=getrtmm$$(this.tipo);
var mdl=get_model(mm);
if (mdl&&mdl.mt==='o')throw InvocationException$meta$model("Cannot instantiate anonymous class");
if (mm.ps===undefined)throw InvocationException$meta$model("Applied function does not have metamodel parameter info for named args call");
var mapped={};
var iter=args.iterator();var a;while((a=iter.next())!==finished()) {
mapped[a.key]=a.item;
}
var ordered=[];
for (var i=0; i<mm.ps.length; i++) {
var p=mm.ps[i];
var v=mapped[p.nm];
if (v===undefined && p.def===undefined) {
throw InvocationException$meta$model("Required argument " + p.nm + " missing in named-argument invocation");
} else if (v!==undefined) {
var t=p.$t;
if(typeof(t)==='string'&&this.$targs)t=this.$targs[t];
if (t&&!is$(v,t))throw IncompatibleTypeException$meta$model("Argument " + p.nm + "="+v+" is not of the expected type.");
}
delete mapped[p.nm];
ordered.push(v);
}
if (Object.keys(mapped).length>0)throw new InvocationException$meta$model("No arguments with names " + Object.keys(mapped));
if (this.$targs) {
ordered.push(this.$targs);
}
return this.tipo.apply(undefined,ordered);
}
appliedClass$.namedApply.$crtmm$=function(){return{mod:$CCMM$,$t:'Type$AppliedClass',ps:[{nm:'arguments',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:$_String},Item$Entry:{t:Anything}}}}}}],$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','namedApply']};};atr$(appliedClass$,'declaration',function(){return coimoddcl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:ClassDeclaration$meta$declaration},$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$at','declaration']};});atr$(appliedClass$,'typeArguments',function(){return coitarg$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$at','typeArguments']};});atr$(appliedClass$,'typeArgumentList',function(){return coitargl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$at','typeArgumentList']};});atr$(appliedClass$,'typeArgumentWithVariances',function(){return coitargv$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:TypeArgument$meta$model()}},$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$at','typeArgumentWithVariances']};});atr$(appliedClass$,'typeArgumentWithVarianceList',function(){return coitargvl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:TypeArgument$meta$model()}},$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$at','typeArgumentWithVarianceList']};});atr$(appliedClass$,'extendedType',function(){return coiexttype$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:{t:Anything}}}]},$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$at','extendedType']};});atr$(appliedClass$,'satisfiedTypes',function(){return coisattype$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:InterfaceModel$meta$model,a:{Type$InterfaceModel:{t:Anything}}}}},$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$at','satisfiedTypes']};});appliedClass$.getClassOrInterface=function(a,b,c){return coigetcoi$(this,a,b,c);}
appliedClass$.getClassOrInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Member$meta$model,a:{Kind$Member:'Kind$getClassOrInterface',Container$Member:'SubType$getClassOrInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedClass$jsint,tp:{SubType$getClassOrInterface:{},Kind$getClassOrInterface:{sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getClassOrInterface']};};appliedClass$.typeOf=ClassOrInterface$meta$model.$$.prototype.typeOf
appliedClass$.typeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}}],$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','typeOf']};};appliedClass$.supertypeOf=ClassOrInterface$meta$model.$$.prototype.supertypeOf
appliedClass$.supertypeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','supertypeOf']};};appliedClass$.exactly=ClassOrInterface$meta$model.$$.prototype.exactly
appliedClass$.exactly.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','exactly']};};atr$(appliedClass$,'container',function(){return coicont$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Type$meta$model,a:{Target$Type:{t:Anything}}}]},$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$at','container']};});appliedClass$.getClasses=function(a,b){return coiclasse$(this,a,b);}
appliedClass$.getClasses.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getClasses',Container$MemberClass:'Container$getClasses',Type$MemberClass:'Type$getClasses'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getClasses:{def:{t:Nothing}},Type$getClasses:{def:{t:Anything}},Arguments$getClasses:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getClasses']};};appliedClass$.getDeclaredClasses=function(anntypes,$$$mptypes) {
return coiclasse$(this,anntypes,{Container$getClasses:$$$mptypes.Container$getDeclaredClasses,Type$getClasses:$$$mptypes.Type$getDeclaredClasses,Arguments$getClasses:$$$mptypes.Arguments$getDeclaredClasses},1);
}
appliedClass$.getDeclaredClasses.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getDeclaredClasses',Container$MemberClass:'Container$getDeclaredClasses',Type$MemberClass:'Type$getDeclaredClasses'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getDeclaredClasses:{def:{t:Nothing}},Type$getDeclaredClasses:{def:{t:Anything}},Arguments$getDeclaredClasses:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getDeclaredClasses']};};appliedClass$.getClass=function(name,types,$mptypes) {return coicla$(this,name,types,$mptypes.Container$getClass);}
appliedClass$.getClass.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getClass',Container$MemberClass:'Container$getClass',Type$MemberClass:'Type$getClass'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getClass:{def:{t:Nothing}},Type$getClass:{def:{t:Anything}},Arguments$getClass:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getClass']};};appliedClass$.getDeclaredClass=function(name,types,$mptypes) {return coicla$(this,name,types,$mptypes.Container$getDeclaredClass,1);}
appliedClass$.getDeclaredClass.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getDeclaredClass',Container$MemberClass:'Container$getDeclaredClass',Type$MemberClass:'Type$getDeclaredClass'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getDeclaredClass:{def:{t:Nothing}},Type$getDeclaredClass:{def:{t:Anything}},Arguments$getDeclaredClass:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getDeclaredClass']};};appliedClass$.getInterfaces=function(anntypes,$$$mptypes){return coigetifc$(this,anntypes,$$$mptypes);}
appliedClass$.getInterfaces.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getInterfaces',Type$MemberInterface:'Type$getInterfaces'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getInterfaces:{def:{t:Nothing}},Type$getInterfaces:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getInterfaces']};};appliedClass$.getDeclaredInterfaces=function(anntypes,$$$mptypes){
return coigetifc$(this,anntypes,{Container$getInterfaces:$$$mptypes.Container$getDeclaredInterfaces,Type$getInterfaces:$$$mptypes.Type$getDeclaredInterfaces},1);
}
appliedClass$.getDeclaredInterfaces.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getDeclaredInterfaces',Type$MemberInterface:'Type$getDeclaredInterfaces'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getDeclaredInterfaces:{def:{t:Nothing}},Type$getDeclaredInterfaces:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getDeclaredInterfaces']};};appliedClass$.getInterface=function(name,types,$mptypes) {return coiifc$(this,name,types,$mptypes.Container$getInterface);}
appliedClass$.getInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getInterface',Type$MemberInterface:'Type$getInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getInterface:{def:{t:Nothing}},Type$getInterface:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getInterface']};};appliedClass$.getDeclaredInterface=function(name,types,$mptypes) {
return coiifc$(this,name,types,$mptypes.Container$getDeclaredInterface,1);
}
appliedClass$.getDeclaredInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getDeclaredInterface',Type$MemberInterface:'Type$getDeclaredInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getDeclaredInterface:{def:{t:Nothing}},Type$getDeclaredInterface:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getDeclaredInterface']};};appliedClass$.getAttributes=function(a,m){return coigetatr$(this,a,m);}
appliedClass$.getAttributes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Attribute$meta$model,a:{Set$Attribute:'Set$getAttributes',Container$Attribute:'Container$getAttributes',Get$Attribute:'Get$getAttributes'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getAttributes:{def:{t:Nothing}},Get$getAttributes:{def:{t:Anything}},Set$getAttributes:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getAttributes']};};appliedClass$.getDeclaredAttributes=function(anntypes,$$$mptypes) {
return coigetatr$(this,anntypes,{Container$getAttributes:$$$mptypes.Container$getDeclaredAttributes,Get$getAttributes:$$$mptypes.Get$getDeclaredAttributes,Set$getAttributes:$$$mptypes.Set$getDeclaredAttributes},1);
}
appliedClass$.getDeclaredAttributes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Attribute$meta$model,a:{Set$Attribute:'Set$getDeclaredAttributes',Container$Attribute:'Container$getDeclaredAttributes',Get$Attribute:'Get$getDeclaredAttributes'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getDeclaredAttributes:{def:{t:Nothing}},Get$getDeclaredAttributes:{def:{t:Anything}},Set$getDeclaredAttributes:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getDeclaredAttributes']};};appliedClass$.getAttribute=function getAttribute(name,m){return coiatr$(this,name,m);}
appliedClass$.getAttribute.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Attribute$meta$model,a:{Set$Attribute:'Set$getAttribute',Container$Attribute:'Container$getAttribute',Get$Attribute:'Get$getAttribute'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:AppliedClass$jsint,tp:{Container$getAttribute:{def:{t:Nothing}},Get$getAttribute:{def:{t:Anything}},Set$getAttribute:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getAttribute']};};appliedClass$.getDeclaredAttribute=function getDeclaredAttribute(name,$$$mptypes){
return coiatr$(this,name,{Get$getAttribute:$$$mptypes.Get$getDeclaredAttribute,Set$getAttribute:$$$mptypes.Set$getDeclaredAttribute,
Container$getAttribute:$$$mptypes.Container$getDeclaredAttribute},1);
}
appliedClass$.getDeclaredAttribute.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Attribute$meta$model,a:{Set$Attribute:'Set$getDeclaredAttribute',Container$Attribute:'Container$getDeclaredAttribute',Get$Attribute:'Get$getDeclaredAttribute'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:AppliedClass$jsint,tp:{Container$getDeclaredAttribute:{def:{t:Nothing}},Get$getDeclaredAttribute:{def:{t:Anything}},Set$getDeclaredAttribute:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getDeclaredAttribute']};};appliedClass$.getMethods=function(anntypes,$$$mptypes) {return coigetmtd$(this,anntypes,$$$mptypes);}
appliedClass$.getMethods.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Method$meta$model,a:{Container$Method:'Container$getMethods',Arguments$Method:'Arguments$getMethods',Type$Method:'Type$getMethods'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getMethods:{def:{t:Nothing}},Type$getMethods:{def:{t:Anything}},Arguments$getMethods:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getMethods']};};appliedClass$.getDeclaredMethods=function(anntypes,$$$mptypes){
return coigetmtd$(this,anntypes,{Container$getMethods:$$$mptypes.Container$getDeclaredMethods,Type$getMethods:$$$mptypes.Type$getDeclaredMethods,Arguments$getMethods:$$$mptypes.Arguments$getDeclaredMethods},1);
}
appliedClass$.getDeclaredMethods.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Method$meta$model,a:{Container$Method:'Container$getDeclaredMethods',Arguments$Method:'Arguments$getDeclaredMethods',Type$Method:'Type$getDeclaredMethods'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getDeclaredMethods:{def:{t:Nothing}},Type$getDeclaredMethods:{def:{t:Anything}},Arguments$getDeclaredMethods:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getDeclaredMethods']};};appliedClass$.getMethod=function(name,types,$$$mptypes){
return coimtd$(this,name,types,$$$mptypes);
}
appliedClass$.getMethod.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Method$meta$model,a:{Container$Method:'Container$getMethod',Arguments$Method:'Arguments$getMethod',Type$Method:'Type$getMethod'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getMethod:{def:{t:Nothing}},Type$getMethod:{def:{t:Anything}},Arguments$getMethod:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getMethod']};};appliedClass$.getDeclaredMethod=function(name,types,$$$mptypes) {
return coimtd$(this,name,types,{Type$getMethod:$$$mptypes.Type$getDeclaredMethod,Arguments$getMethod:$$$mptypes.Arguments$getDeclaredMethod,
Container$getMethod:$$$mptypes.Container$getDeclaredMethod},1);
}
appliedClass$.getDeclaredMethod.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Method$meta$model,a:{Container$Method:'Container$getDeclaredMethod',Arguments$Method:'Arguments$getDeclaredMethod',Type$Method:'Type$getDeclaredMethod'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getDeclaredMethod:{def:{t:Nothing}},Type$getDeclaredMethod:{def:{t:Anything}},Arguments$getDeclaredMethod:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getDeclaredMethod']};};appliedClass$.getDeclaredClassOrInterface=function(name,types,$$$mptypes){
return coigetcoi$(this,name,types,{Kind$getClassOrInterface:$$$mptypes.Kind$getDeclaredClassOrInterface,
Arguments$getClassOrInterface:$$$mptypes.Arguments$getDeclaredClassOrInterface,
Container$getClassOrInterface:$$$mptypes.Container$getDeclaredClassOrInterface},1);
}
appliedClass$.getDeclaredClassOrInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Member$meta$model,a:{Kind$Member:'Kind$getDeclaredClassOrInterface',Container$Member:'Container$getDeclaredClassOrInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedClass$jsint,tp:{Container$getDeclaredClassOrInterface:{def:{t:Nothing}},Kind$getDeclaredClassOrInterface:{sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}],def:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','getDeclaredClassOrInterface']};};atr$(appliedClass$,'caseValues',function(){return coicase$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Type$AppliedClass'}},$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$at','caseValues']};});appliedClass$.union=function(t,$mpt){
return coiut$(this,t,$mpt.Other$union);
}
appliedClass$.union.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'u',l:['Type$AppliedClass','Other$union']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$union'}}}],$cont:AppliedClass$jsint,tp:{Other$union:{}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','union']};};appliedClass$.intersection=function(t,$mpt){
return coiit$(this,t,$mpt.Other$intersection);
}
appliedClass$.intersection.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'i',l:['Type$AppliedClass','Other$intersection']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$intersection'}}}],$cont:AppliedClass$jsint,tp:{Other$intersection:{}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','intersection']};};atr$(appliedClass$,'string',function(){return coistr$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$at','string']};});atr$(appliedClass$,'hash',function(){return coihash$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$at','hash']};});appliedClass$.equals=function(o) {
return is$(o,{t:AppliedClass$jsint}) && o.tipo===this.tipo &&
this.typeArgumentWithVariances.equals(o.typeArgumentWithVariances);
};
appliedClass$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedClass','$m','equals']};};})(AppliedClass$jsint.$$.prototype);}
return AppliedClass$jsint;}
ex$.$init$AppliedClass$jsint=$init$AppliedClass$jsint;$init$AppliedClass$jsint();function AppliedFunction$jsint(m,$$targs$$,o,mptypes) {
if (!$$targs$$.Type$AppliedFunction)$$targs$$.Type$AppliedFunction=$$targs$$.Type$Function;
if (!$$targs$$.Arguments$AppliedFunction)$$targs$$.Arguments$AppliedFunction=$$targs$$.Arguments$Function;
var mm=getrtmm$$(m);
var ttargs;
if (mm.tp) {
if (!mptypes || mptypes.length<1)throw TypeApplicationException$meta$model("Missing type arguments for AppliedFunction");
var i=0;ttargs={};
for (var tp in mm.tp) {
var _ta=mptypes[i];
if(_ta&&_ta.tipo)ttargs[tp]={t:_ta.tipo};
else if (_ta) console.log("TODO assign type arg " + _ta + " to " + tp);
else if (mptypes[tp])ttargs[tp]=mptypes[tp];
else throw new Error("No more type arguments in AppliedFunction!");
i++;
}
}
var f = o===undefined&&mm.$cont?function AppliedFun1(x){
return AppliedFunction$jsint(m,$$targs$$,x,mptypes);
}:function AppliedFun2(){
var _fu=(o&&o[mm.d[mm.d.length-1]])||m;//Get the object's method if possible
if (mm.tp) {
var _a=[];
for (var i=0;i<arguments.length;i++)_a.push(arguments[i]);
_a.push(ttargs);
return _fu.apply(o,_a);
}
return _fu.apply(o,arguments);
}
f.$crtmm$={mod:$CCMM$,d:['ceylon.language.meta.model','Function'],$t:mm.$t,ps:mm.ps,an:mm.an};
var dummy=new AppliedFunction$jsint.$$;
f.$$=AppliedFunction$jsint.$$;
f.getT$all=function(){return dummy.getT$all();}
f.getT$name=function(){return dummy.getT$name();}
if ($$targs$$===undefined) {
throw TypeApplicationException$meta$model("Missing type arguments for AppliedFunction");
}
$_Function$meta$model($$targs$$,f);
f.tipo=m;
f.$targs=ttargs;
if (o)f.$bound=o;
var _proto=AppliedFunction$jsint.$$.prototype;
atr$(f,'typeArguments',function(){
return funtypearg$(f);
},undefined,_proto.$prop$getTypeArguments.$crtmm$);
atr$(f,'typeArgumentList',function(){
return funtypeargl$(f);
},undefined,_proto.$prop$getTypeArgumentList.$crtmm$);
atr$(f,'typeArgumentWithVariances',function(){
return funtypeargv$(f);
},undefined,_proto.$prop$getTypeArgumentWithVariances.$crtmm$);
atr$(f,'typeArgumentWithVarianceList',function(){
return funtypeargvl$(f);
},undefined,_proto.$prop$getTypeArgumentWithVarianceList.$crtmm$);
f.equals=_proto.equals;
atr$(f,'string',function(){
return _proto.$prop$getString.get.call(f);
},undefined,_proto.$prop$getString.$crtmm$);
atr$(f,'hash',function(){
return _proto.$prop$getHash.get.call(f);
},undefined,_proto.$prop$getHash.$crtmm$);
atr$(f,'parameterTypes',function(){
return _proto.$prop$getParameterTypes.get.call(f);
},undefined,_proto.$prop$getParameterTypes.$crtmm$);
atr$(f,'declaration',function(){
return _proto.$prop$getDeclaration.get.call(f);
},undefined,_proto.$prop$getDeclaration.$crtmm$);
atr$(f,'container',function(){
return _proto.$prop$getContainer.get.call(f);
},undefined,_proto.$prop$getContainer.$crtmm$);
atr$(f,'type',function(){
return _proto.$prop$getType.get.call(f);
},undefined,_proto.$prop$getType.$crtmm$);
f.$_apply=_proto.$_apply;
f.namedApply=_proto.namedApply;
return f;
}
AppliedFunction$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Type$AppliedFunction:{dv:'out'},Arguments$AppliedFunction:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},sts:[{t:$_Function$meta$model,a:{Arguments$Function:'Arguments$AppliedFunction',Type$Function:'Type$AppliedFunction'}}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction']};};
ex$.AppliedFunction$jsint=AppliedFunction$jsint;function $init$AppliedFunction$jsint(){if(AppliedFunction$jsint.$$===undefined){initTypeProto(AppliedFunction$jsint,'ceylon.language.jsint::AppliedFunction',Basic,$init$$_Function$meta$model());
(function(appliedFunction$){atr$(appliedFunction$,'parameterTypes',function(){return funparamtypes(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$at','parameterTypes']};});appliedFunction$.$_apply=function(a){
a=convert$params(getrtmm$$(this.tipo),a,this.$targs);
if (this.$targs) {
a.push(this.$targs);
}
var thefun=this.tipo;
if (thefun.$fml===1) {
//formal member, get the concrete impl from the bound object
var mm=getrtmm$$(thefun);
thefun=this.$bound[mm.d[mm.d.length-1]];
}
return thefun.apply(this.$bound,a);
}
appliedFunction$.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:'Type$AppliedFunction',ps:[{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$m','apply']};};appliedFunction$.namedApply=function(args) {
var mm=getrtmm$$(this.tipo);
if (mm.ps===undefined)throw InvocationException$meta$model("Applied function does not have metamodel parameter info for named args call");
var mapped={};
var iter=args.iterator();var a;while((a=iter.next())!==finished()) {
mapped[a.key]=a.item;
}
var ordered=[];
for (var i=0; i<mm.ps.length; i++) {
var p=mm.ps[i];
var v=mapped[p.nm];
if (v===undefined && p.def===undefined) {
throw InvocationException$meta$model("Required argument " + p.nm + " missing in named-argument invocation");
} else if (v!==undefined) {
var t=p.$t;
if (this.$targs) {
if (typeof(t)==='string') {
t=this.$targs[t];
} else if (t.a) {
var _t2={t:t.t,a:{}};
for (var k in t.a) {
if (typeof(t.a[k])==='string') {
_t2.a[k]=this.$targs[t.a[k]];
} else {
_t2.a[k]=t.a[k];
}
}
t=_t2;
}
}
if (t&&!is$(v,t))throw IncompatibleTypeException$meta$model("Argument " + p.nm + "="+v+" is not of the expected type.");
}
delete mapped[p.nm];
ordered.push(v);
}
if (Object.keys(mapped).length>0)throw new InvocationException$meta$model("No arguments with names " + Object.keys(mapped));
if (this.$targs) {
ordered.push(this.$targs);
}
return this.tipo.apply(this.$bound,ordered);
}
appliedFunction$.namedApply.$crtmm$=function(){return{mod:$CCMM$,$t:'Type$AppliedFunction',ps:[{nm:'arguments',mt:'prm',$t:{t:Iterable,a:{Absent$Iterable:{t:Null},Element$Iterable:{t:Entry,a:{Key$Entry:{t:$_String},Item$Entry:{t:Anything}}}}}}],$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$m','namedApply']};};atr$(appliedFunction$,'declaration',function(){if (this._decl)return this._decl;
var mm=getrtmm$$(this.tipo);
var _m=typeof(mm.mod)==='function'?mm.mod():mm.mod;
this._decl = OpenFunction$jsint(modules$meta().find(_m['$mod-name'],_m['$mod-version']).findPackage(mm.d[0]), this.tipo);
return this._decl;
},undefined,function(){return{mod:$CCMM$,$t:{t:FunctionDeclaration$meta$declaration},$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$at','declaration']};});atr$(appliedFunction$,'type',function(){var mm=getrtmm$$(this.tipo);
if (this.$$targs$$.Container$Method) {
return typeLiteral$meta({Type$typeLiteral:restype$(this.$$targs$$.Container$Method,this.$$targs$$.Type$Method||mm.$t)});
}
return typeLiteral$meta({Type$typeLiteral:this.$$targs$$.Type$Function||mm.$t});
},undefined,function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:'Type$AppliedFunction'}},$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$at','type']};});atr$(appliedFunction$,'container',function(){if (this.$bound===undefined)return this.containingPackage;
if (this.$parent===undefined) {
var mm=getrtmm$$(this.tipo);
if (mm.$cont===0) {
this.$parent=this.containingPackage;
} else {
this.$parent=type$meta(this.$bound,{Type$type:mm.$cont});
}
}
return this.$parent;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Type$meta$model,a:{Target$Type:{t:Anything}}}]},$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$at','container']};});atr$(appliedFunction$,'typeArguments',function(){return funtypearg$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$at','typeArguments']};});atr$(appliedFunction$,'typeArgumentList',function(){return funtypeargl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$at','typeArgumentList']};});atr$(appliedFunction$,'typeArgumentWithVariances',function(){return funtypeargv$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:TypeArgument$meta$model()}},$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$at','typeArgumentWithVariances']};});atr$(appliedFunction$,'typeArgumentWithVarianceList',function(){return funtypeargvl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:TypeArgument$meta$model()}},$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$at','typeArgumentWithVarianceList']};});atr$(appliedFunction$,'string',function(){if (this.str$===undefined){
this.str$=funmodstr$(this);
}
return this.str$;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$at','string']};});atr$(appliedFunction$,'hash',function(){return this.string.hash+(this.$bound?this.$bound.hash:0);
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$at','hash']};});appliedFunction$.equals=function(oo){
return is$(oo,{t:AppliedFunction$jsint}) &&
oo.tipo===this.tipo && oo.typeArguments.equals(this.typeArguments)
&& (this.$bound?this.$bound.equals(oo.$bound):oo.$bound===this.$bound);
}
appliedFunction$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedFunction','$m','equals']};};})(AppliedFunction$jsint.$$.prototype);}
return AppliedFunction$jsint;}
ex$.$init$AppliedFunction$jsint=$init$AppliedFunction$jsint;$init$AppliedFunction$jsint();function AppliedInterface$jsint(tipo,$$targs$$,that,myTargs) {
if (!$$targs$$.Type$AppliedInterface)$$targs$$.Type$AppliedInterface=$$targs$$.Type$Interface;
$init$AppliedInterface$jsint();
if (that===undefined){
var mm = getrtmm$$(tipo);
if (mm && mm.$cont) {
that=function AppliedIface1(x){
that.tipo=function(){return tipo.apply(x,arguments);};
that.$bound=x;
return that;
}
that.tipo$2=tipo;
var dummy = new AppliedInterface$jsint.$$;
that.getClassOrInterface=dummy.getClassOrInterface;
that.getDeclaredClassOrInterface=dummy.getDeclaredClassOrInterface;
that.typeOf=dummy.typeOf;
that.supertypeOf=dummy.supertypeOf;
that.exactly=dummy.exactly;
that.getClasses=dummy.getClasses;
that.getDeclaredClasses=dummy.getDeclaredClasses;
that.getClass=dummy.getClass;
that.getDeclaredClass=dummy.getDeclaredClass;
that.getInterfaces=dummy.getInterfaces;
that.getDeclaredInterfaces=dummy.getDeclaredInterfaces;
that.getInterface=dummy.getInterface;
that.getDeclaredInterface=dummy.getDeclaredInterface;
that.getAttributes=dummy.getAttributes;
that.getDeclaredAttributes=dummy.getDeclaredAttributes;
that.getAttribute=dummy.getAttribute;
that.getDeclaredAttribute=dummy.getDeclaredAttribute;
that.getMethods=dummy.getMethods;
that.getDeclaredMethods=dummy.getDeclaredMethods;
that.getMethod=dummy.getMethod;
that.getDeclaredMethod=dummy.getDeclaredMethod;
that.equals=dummy.equals;
that.$$=AppliedInterface$jsint.$$;
that.getT$all=function(){return dummy.getT$all();};
that.getT$name=function(){return dummy.getT$name();};
atr$(that,'string',function(){return coistr$(that); },undefined,dummy.$prop$getString.$crtmm$);
atr$(that,'hash',function(){return coihash$(that);},undefined,dummy.$prop$getHash.$crtmm$);
atr$(that,'declaration',function(){return coimoddcl$(that);},undefined,dummy.$prop$getDeclaration.$crtmm$);
atr$(that,'container',function(){return coicont$(that); },undefined,dummy.$prop$getContainer.$crtmm$);
atr$(that,'typeArguments',function(){return coitarg$(that);},undefined,dummy.$prop$getTypeArguments.$crtmm$);
atr$(that,'typeArgumentList',function(){return coitargl$(that);},undefined,dummy.$prop$getTypeArgumentList.$crtmm$);
atr$(that,'typeArgumentWithVariances',function(){return coitargv$(that);},undefined,dummy.$prop$getTypeArgumentWithVariances.$crtmm$);
atr$(that,'typeArgumentWithVarianceList',function(){return coitargvl$(that);},undefined,dummy.$prop$getTypeArgumentWithVarianceList.$crtmm$);
atr$(that,'extendedType',function(){return coiexttype$(that); },undefined,dummy.$prop$getExtendedType.$crtmm$);
atr$(that,'satisfiedTypes',function(){return coisattype$(that); },undefined,dummy.$prop$getSatisfiedTypes.$crtmm$);
atr$(that,'caseValues',function(){return coicase$(that); },undefined,dummy.$prop$getCaseValues.$crtmm$);
} else {
that=new AppliedInterface$jsint.$$;
}
}
Interface$meta$model({Type$Interface:$$targs$$.Type$AppliedInterface},that);
set_type_args(that,$$targs$$,AppliedInterface$jsint);
that.$targs=myTargs;
that.tipo=tipo;
return that;
}
AppliedInterface$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Type$AppliedInterface:{dv:'out',sts:[{t:$_Object}]}},sts:[{t:Interface$meta$model,a:{Type$Interface:'Type$AppliedInterface'}}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface']};};
ex$.AppliedInterface$jsint=AppliedInterface$jsint;function $init$AppliedInterface$jsint(){if(AppliedInterface$jsint.$$===undefined){initTypeProto(AppliedInterface$jsint,'ceylon.language.jsint::AppliedInterface',Basic,$init$Interface$meta$model());
(function(appliedInterface$){atr$(appliedInterface$,'string',function(){return coistr$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$at','string']};});atr$(appliedInterface$,'hash',function(){return coihash$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$at','hash']};});atr$(appliedInterface$,'declaration',function(){return coimoddcl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:InterfaceDeclaration$meta$declaration},$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$at','declaration']};});atr$(appliedInterface$,'container',function(){return coicont$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Type$meta$model,a:{Target$Type:{t:Anything}}}]},$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$at','container']};});appliedInterface$.equals=function(o) {
var eq=is$(o,{t:AppliedInterface$jsint}) && (o.tipo$2||o.tipo)==this.tipo;
if (this.$bound)eq=eq && o.$bound && o.$bound.equals(this.$bound);else eq=eq && o.$bound===undefined;
return eq && this.typeArgumentWithVariances.equals(o.typeArgumentWithVariances);
}
appliedInterface$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','equals']};};atr$(appliedInterface$,'typeArguments',function(){return coitarg$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$at','typeArguments']};});atr$(appliedInterface$,'typeArgumentList',function(){return coitargl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$at','typeArgumentList']};});atr$(appliedInterface$,'typeArgumentWithVariances',function(){return coitargv$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:TypeArgument$meta$model()}},$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$at','typeArgumentWithVariances']};});atr$(appliedInterface$,'typeArgumentWithVarianceList',function(){return coitargvl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:TypeArgument$meta$model()}},$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$at','typeArgumentWithVarianceList']};});atr$(appliedInterface$,'extendedType',function(){return coiexttype$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:{t:Anything}}}]},$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$at','extendedType']};});atr$(appliedInterface$,'satisfiedTypes',function(){return coisattype$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:InterfaceModel$meta$model,a:{Type$InterfaceModel:{t:Anything}}}}},$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$at','satisfiedTypes']};});appliedInterface$.getClassOrInterface=function(name,types,mptypes) {
return coigetcoi$(this,name,types,mptypes);
}
appliedInterface$.getClassOrInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Member$meta$model,a:{Kind$Member:'Kind$getClassOrInterface',Container$Member:'SubType$getClassOrInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedInterface$jsint,tp:{SubType$getClassOrInterface:{},Kind$getClassOrInterface:{sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getClassOrInterface']};};appliedInterface$.typeOf=function(i){return coiTypeOf(this,i);}
appliedInterface$.typeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}}],$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','typeOf']};};appliedInterface$.supertypeOf=ClassOrInterface$meta$model.$$.prototype.supertypeOf;
appliedInterface$.supertypeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','supertypeOf']};};appliedInterface$.exactly=function(t){return t.tipo && this.tipo === t.tipo;}
appliedInterface$.exactly.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','exactly']};};appliedInterface$.getClasses=function(a,b){return coiclasse$(this,a,b);}
appliedInterface$.getClasses.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getClasses',Container$MemberClass:'Container$getClasses',Type$MemberClass:'Type$getClasses'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getClasses:{def:{t:Nothing}},Type$getClasses:{def:{t:Anything}},Arguments$getClasses:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getClasses']};};appliedInterface$.getDeclaredClasses=function(a,m){
return coiclasse$(this,anntypes,{Container$getClasses:m.Container$getDeclaredClasses,
Type$getClasses:m.Type$getDeclaredClasses,Arguments$getClasses:m.Arguments$getDeclaredClasses},1);
}
appliedInterface$.getDeclaredClasses.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getDeclaredClasses',Container$MemberClass:'Container$getDeclaredClasses',Type$MemberClass:'Type$getDeclaredClasses'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getDeclaredClasses:{def:{t:Nothing}},Type$getDeclaredClasses:{def:{t:Anything}},Arguments$getDeclaredClasses:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getDeclaredClasses']};};appliedInterface$.getClass=function(a,b,m){return coicla$(this,a,b,m.Container$getClass);}
appliedInterface$.getClass.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getClass',Container$MemberClass:'Container$getClass',Type$MemberClass:'Type$getClass'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getClass:{def:{t:Nothing}},Type$getClass:{def:{t:Anything}},Arguments$getClass:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getClass']};};appliedInterface$.getDeclaredClass=function(a,b,m){return coicla$(this,a,b,m.Container$getDeclaredClass,1);}
appliedInterface$.getDeclaredClass.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getDeclaredClass',Container$MemberClass:'Container$getDeclaredClass',Type$MemberClass:'Type$getDeclaredClass'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getDeclaredClass:{def:{t:Nothing}},Type$getDeclaredClass:{def:{t:Anything}},Arguments$getDeclaredClass:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getDeclaredClass']};};appliedInterface$.getInterfaces=function(a,b){return coiifc$(this,a,b);}
appliedInterface$.getInterfaces.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getInterfaces',Type$MemberInterface:'Type$getInterfaces'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getInterfaces:{def:{t:Nothing}},Type$getInterfaces:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getInterfaces']};};appliedInterface$.getDeclaredInterfaces=function(a,$$$mptypes){
return coigetifc$(this,a,{Container$getInterfaces:$$$mptypes.Container$getDeclaredInterfaces,Type$getInterfaces:$$$mptypes.Type$getDeclaredInterfaces},1);
}
appliedInterface$.getDeclaredInterfaces.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getDeclaredInterfaces',Type$MemberInterface:'Type$getDeclaredInterfaces'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getDeclaredInterfaces:{def:{t:Nothing}},Type$getDeclaredInterfaces:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getDeclaredInterfaces']};};appliedInterface$.getInterface=function(a,b,m){return coiifc$(this,a,b,m.Container$getInterface);}
appliedInterface$.getInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getInterface',Type$MemberInterface:'Type$getInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getInterface:{def:{t:Nothing}},Type$getInterface:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getInterface']};};appliedInterface$.getDeclaredInterface=function(name,types,m){
return coiifc$(this,name,types,m.Container$getDeclaredInterface,1);
}
appliedInterface$.getDeclaredInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getDeclaredInterface',Type$MemberInterface:'Type$getDeclaredInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getDeclaredInterface:{def:{t:Nothing}},Type$getDeclaredInterface:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getDeclaredInterface']};};appliedInterface$.getAttributes=function(a,m){return coigetatr$(this,a,m);}
appliedInterface$.getAttributes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Attribute$meta$model,a:{Set$Attribute:'Set$getAttributes',Container$Attribute:'Container$getAttributes',Get$Attribute:'Get$getAttributes'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getAttributes:{def:{t:Nothing}},Get$getAttributes:{def:{t:Anything}},Set$getAttributes:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getAttributes']};};appliedInterface$.getDeclaredAttributes=function(a,m){
return coigetatr$(this,anntypes,{Container$getAttributes:$$$mptypes.Container$getDeclaredAttributes,Get$getAttributes:$$$mptypes.Get$getDeclaredAttributes,Set$getAttributes:$$$mptypes.Set$getDeclaredAttributes},1);
}
appliedInterface$.getDeclaredAttributes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Attribute$meta$model,a:{Set$Attribute:'Set$getDeclaredAttributes',Container$Attribute:'Container$getDeclaredAttributes',Get$Attribute:'Get$getDeclaredAttributes'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getDeclaredAttributes:{def:{t:Nothing}},Get$getDeclaredAttributes:{def:{t:Anything}},Set$getDeclaredAttributes:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getDeclaredAttributes']};};appliedInterface$.getAttribute=function(a,m){return coiatr$(this,a,m);}
appliedInterface$.getAttribute.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Attribute$meta$model,a:{Set$Attribute:'Set$getAttribute',Container$Attribute:'Container$getAttribute',Get$Attribute:'Get$getAttribute'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:AppliedInterface$jsint,tp:{Container$getAttribute:{def:{t:Nothing}},Get$getAttribute:{def:{t:Anything}},Set$getAttribute:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getAttribute']};};appliedInterface$.getDeclaredAttribute=function(a,m){
return coiatr$(this,a,{Get$getAttribute:$$$mptypes.Get$getDeclaredAttribute,Set$getAttribute:$$$mptypes.Set$getDeclaredAttribute,
Container$getAttribute:$$$mptypes.Container$getDeclaredAttribute},1);
}
appliedInterface$.getDeclaredAttribute.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Attribute$meta$model,a:{Set$Attribute:'Set$getDeclaredAttribute',Container$Attribute:'Container$getDeclaredAttribute',Get$Attribute:'Get$getDeclaredAttribute'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:AppliedInterface$jsint,tp:{Container$getDeclaredAttribute:{def:{t:Nothing}},Get$getDeclaredAttribute:{def:{t:Anything}},Set$getDeclaredAttribute:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getDeclaredAttribute']};};appliedInterface$.getMethods=function(a,b){return coigetmtd$(this,a,b);}
appliedInterface$.getMethods.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Method$meta$model,a:{Container$Method:'Container$getMethods',Arguments$Method:'Arguments$getMethods',Type$Method:'Type$getMethods'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getMethods:{def:{t:Nothing}},Type$getMethods:{def:{t:Anything}},Arguments$getMethods:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getMethods']};};appliedInterface$.getDeclaredMethods=function(anntypes,$$$mptypes){
return coigetmtd$(this,anntypes,{Container$getMethods:$$$mptypes.Container$getDeclaredMethods,Type$getMethods:$$$mptypes.Type$getDeclaredMethods,Arguments$getMethods:$$$mptypes.Arguments$getDeclaredMethods},1);
}
appliedInterface$.getDeclaredMethods.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Method$meta$model,a:{Container$Method:'Container$getDeclaredMethods',Arguments$Method:'Arguments$getDeclaredMethods',Type$Method:'Type$getDeclaredMethods'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getDeclaredMethods:{def:{t:Nothing}},Type$getDeclaredMethods:{def:{t:Anything}},Arguments$getDeclaredMethods:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getDeclaredMethods']};};appliedInterface$.getMethod=function(a,b,c){return coimtd$(this,a,b,c);}
appliedInterface$.getMethod.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Method$meta$model,a:{Container$Method:'Container$getMethod',Arguments$Method:'Arguments$getMethod',Type$Method:'Type$getMethod'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getMethod:{def:{t:Nothing}},Type$getMethod:{def:{t:Anything}},Arguments$getMethod:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getMethod']};};appliedInterface$.getDeclaredMethod=function(name,types,$$$mptypes){
return coimtd$(this,name,types,{Type$getMethod:$$$mptypes.Type$getDeclaredMethod,Arguments$getMethod:$$$mptypes.Arguments$getDeclaredMethod,
Container$getMethod:$$$mptypes.Container$getDeclaredMethod},1);
}
appliedInterface$.getDeclaredMethod.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Method$meta$model,a:{Container$Method:'Container$getDeclaredMethod',Arguments$Method:'Arguments$getDeclaredMethod',Type$Method:'Type$getDeclaredMethod'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getDeclaredMethod:{def:{t:Nothing}},Type$getDeclaredMethod:{def:{t:Anything}},Arguments$getDeclaredMethod:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getDeclaredMethod']};};appliedInterface$.getDeclaredClassOrInterface=function(name,types,m){
return coigetcoi$(this,name,types,{Kind$getClassOrInterface:m.Kind$getDeclaredClassOrInterface,
Arguments$getClassOrInterface:m.Arguments$getDeclaredClassOrInterface,
Container$getClassOrInterface:m.Container$getDeclaredClassOrInterface},1);
}
appliedInterface$.getDeclaredClassOrInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Member$meta$model,a:{Kind$Member:'Kind$getDeclaredClassOrInterface',Container$Member:'Container$getDeclaredClassOrInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedInterface$jsint,tp:{Container$getDeclaredClassOrInterface:{def:{t:Nothing}},Kind$getDeclaredClassOrInterface:{sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}],def:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','getDeclaredClassOrInterface']};};atr$(appliedInterface$,'caseValues',function(){return coicase$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Type$AppliedInterface'}},$cont:AppliedInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$at','caseValues']};});appliedInterface$.union=function(t,$mpt){return coiut$(this,t,$mpt.Other$union);}
appliedInterface$.union.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'u',l:['Type$AppliedInterface','Other$union']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$union'}}}],$cont:AppliedInterface$jsint,tp:{Other$union:{}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','union']};};appliedInterface$.intersection=function(t,$mpt){return coiit$(this,t,$mpt.Other$intersection);}
appliedInterface$.intersection.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'i',l:['Type$AppliedInterface','Other$intersection']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$intersection'}}}],$cont:AppliedInterface$jsint,tp:{Other$intersection:{}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedInterface','$m','intersection']};};})(AppliedInterface$jsint.$$.prototype);}
return AppliedInterface$jsint;}
ex$.$init$AppliedInterface$jsint=$init$AppliedInterface$jsint;$init$AppliedInterface$jsint();function AppliedIntersectionType$jsint(tipo,satisfiedTypes,$$targs$$,appliedIntersectionType$){$init$AppliedIntersectionType$jsint();
if(appliedIntersectionType$===undefined)appliedIntersectionType$=new AppliedIntersectionType$jsint.$$;
set_type_args(appliedIntersectionType$,$$targs$$);
appliedIntersectionType$.tipo_=tipo;appliedIntersectionType$.$1rs_=satisfiedTypes;IntersectionType$meta$model({Intersection$IntersectionType:$$targs$$.Union$AppliedIntersectionType},appliedIntersectionType$);return appliedIntersectionType$;}
AppliedIntersectionType$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'tipo',mt:'prm',$t:{t:Anything},pa:1},{nm:'satisfiedTypes',mt:'prm',$t:{t:List,a:{Element$List:{t:Type$meta$model,a:{Target$Type:'Union$AppliedIntersectionType'}}}},pa:3}],tp:{Union$AppliedIntersectionType:{dv:'out',def:{t:Anything}}},sts:[{t:IntersectionType$meta$model,a:{Intersection$IntersectionType:'Union$AppliedIntersectionType'}}],an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedIntersectionType']};};
ex$.AppliedIntersectionType$jsint=AppliedIntersectionType$jsint;function $init$AppliedIntersectionType$jsint(){if(AppliedIntersectionType$jsint.$$===undefined){initTypeProto(AppliedIntersectionType$jsint,'ceylon.language.jsint::AppliedIntersectionType',Basic,$init$IntersectionType$meta$model());
(function(appliedIntersectionType$){atr$(appliedIntersectionType$,'tipo',function(){return this.tipo_;},undefined,function(){return{mod:$CCMM$,$t:{t:Anything},$cont:AppliedIntersectionType$jsint,pa:1,d:['ceylon.language.jsint','AppliedIntersectionType','$at','tipo']};});atr$(appliedIntersectionType$,'satisfiedTypes',function(){return this.$1rs_;},undefined,function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:Type$meta$model,a:{Target$Type:'Union$AppliedIntersectionType'}}}},$cont:AppliedIntersectionType$jsint,pa:3,d:['ceylon.language.jsint','AppliedIntersectionType','$at','satisfiedTypes']};});appliedIntersectionType$.typeOf=function typeOf(instance$23){
var tipos=[];
for (var i=0; i < this.satisfiedTypes.size;i++) {
var _t = this.satisfiedTypes.$_get(i);
if (_t.tipo) {
_t={t:_t.tipo};
} else if (_t.t===undefined) {
_t={t:_t};
}
tipos.push(_t);
}
return is$(instance$23,{t:'i',l:tipos});
}
appliedIntersectionType$.typeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}}],$cont:AppliedIntersectionType$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedIntersectionType','$m','typeOf']};};appliedIntersectionType$.supertypeOf=function supertypeOf(t){
for (var i=0; i<this.satisfiedTypes.size; i++) {
if (!this.satisfiedTypes.$_get(i).supertypeOf(t))return false;
}
return true;
}
appliedIntersectionType$.supertypeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:AppliedIntersectionType$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedIntersectionType','$m','supertypeOf']};};appliedIntersectionType$.exactly=function exactly(type$25){
if (is$(type$25, {t:AppliedIntersectionType$jsint})) {
for (var i=0; i<this.satisfiedTypes.size;i++) {
var myt = this.satisfiedTypes.$_get(i);;
var was=false;
for (var j=0; j<type$25.satisfiedTypes.size;j++) {
was |= myt.exactly(type$25.satisfiedTypes.$_get(j));
}
if (!was)return false;
}
//Now the other way around
for (var i=0; i<type$25.satisfiedTypes.size;i++) {
var myt = type$25.satisfiedTypes.$_get(i);
var was=false;
for (var j=0; j<this.satisfiedTypes.size;j++) {
was |= myt.exactly(this.satisfiedTypes.$_get(j));
}
if (!was)return false;
}
return true;
}
return false;
}
appliedIntersectionType$.exactly.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:AppliedIntersectionType$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedIntersectionType','$m','exactly']};};atr$(appliedIntersectionType$,'string',function(){var qn="";
var first=true;
for (var i=0;i<this.satisfiedTypes.size;i++) {
if (first)first=false;else qn+="&";
qn+=this.satisfiedTypes.$_get(i).string;
}
return qn;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedIntersectionType$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedIntersectionType','$at','string']};});atr$(appliedIntersectionType$,'hash',function(){var h=this.satisfiedTypes.size;
for (var i=0; i<this.satisfiedTypes.size;i++) {
h+=this.satisfiedTypes.$_get(i).hash;
}
return h;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:AppliedIntersectionType$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedIntersectionType','$at','hash']};});appliedIntersectionType$.equals=function(u) {
if(is$(u,{t:AppliedIntersectionType$jsint})) {
var mine=this.satisfiedTypes;
var his=u.satisfiedTypes;
if (mine.size==his.size) {
for (var i=0;i<mine.size;i++) {
if (!his.contains(mine.$_get(i)))return false;
}
return true;
}
}
return false;
}
appliedIntersectionType$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedIntersectionType$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedIntersectionType','$m','equals']};};appliedIntersectionType$.union=function(t,$mpt){
var ut={t:'u',l:[this.tipo,t.$$targs$$.Target$Type]};
return AppliedUnionType$jsint(ut,$arr$([this,t],ut,1),{Union$AppliedUnionType:ut});
}
appliedIntersectionType$.union.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'u',l:['Union$AppliedIntersectionType','Other$union']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$union'}}}],$cont:AppliedIntersectionType$jsint,tp:{Other$union:{}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedIntersectionType','$m','union']};};appliedIntersectionType$.intersection=function(t,$mpt){
if (t.supertypeOf(this))return this;
var _t={t:'i',l:this.tipo.l.slice(0)};
_t.l.push(t.$$targs$$.Target$Type);
return AppliedIntersectionType$jsint(_t,this.satisfiedTypes.sequence().withTrailing(t,{Other$withTrailing:t.$$targs$$.Target$Type}),
{Union$AppliedIntersectionType:_t});
}
appliedIntersectionType$.intersection.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'i',l:['Union$AppliedIntersectionType','Other$intersection']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$intersection'}}}],$cont:AppliedIntersectionType$jsint,tp:{Other$intersection:{}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedIntersectionType','$m','intersection']};};})(AppliedIntersectionType$jsint.$$.prototype);}
return AppliedIntersectionType$jsint;}
ex$.$init$AppliedIntersectionType$jsint=$init$AppliedIntersectionType$jsint;$init$AppliedIntersectionType$jsint();function AppliedMemberClass$jsint(tipo,$$targs$$,that,myTargs){
if (!$$targs$$.Type$AppliedMemberClass)$$targs$$.Type$AppliedMemberClass=$$targs$$.Type$MemberClass;
if (!$$targs$$.Arguments$AppliedMemberClass)$$targs$$.Arguments$AppliedMemberClass=$$targs$$.Arguments$MemberClass;
if (!$$targs$$.Container$AppliedMemberClass)$$targs$$.Container$AppliedMemberClass=$$targs$$.Container$MemberClass;
$init$AppliedMemberClass$jsint();
if (that===undefined) {
var mm = getrtmm$$(tipo);
if (mm && mm.$cont) {
that=function AppliedMemClass1(x){
var rv=tipo.bind(x);
rv.$crtmm$=tipo.$crtmm$;
var nt={t:tipo};
if (x.$$targs$$) {
nt.a={};
for (var nta in x.$$targs$$)nt.a[nta]=x.$$targs$$[nta];
}
if (that.$targs) {
if (!nt.a)nt.a={};
for (var nta in that.$targs)nt.a[nta]=that.$targs[nta];
}
rv=AppliedClass$jsint(rv,{Type$AppliedClass:nt,Arguments$AppliedClass:{t:Sequential,a:{Element$Iterable:{t:Anything},Absent$Iterable:{t:Null}}}});//TODO generate metamodel for Arguments
if (nt.a)rv.$targs=nt.a;
rv.$bound=x;
return rv;
}
} else {
throw IncompatibleTypeException$meta$model("Invalid metamodel data for MemberClass");
}
}
AppliedClass$jsint(tipo,{Type$AppliedClass:$$targs$$.Type$AppliedMemberClass,Arguments$AppliedClass:$$targs$$.Arguments$AppliedMemberClass},that);
var dummy = new AppliedMemberClass$jsint.$$;
that.$$=AppliedMemberClass$jsint.$$;
that.getT$all=function(){return dummy.getT$all();};
that.getT$name=function(){return dummy.getT$name();};
var _proto=AppliedMemberClass$jsint.$$.prototype;
that.$targs=myTargs;
atr$(that,'extendedType',function(){
return coiexttype$(that);
},undefined,_proto.$prop$getExtendedType.$crtmm$);
atr$(that,'satisfiedTypes',function(){
return coisattype$(that);
},undefined,_proto.$prop$getExtendedType.$crtmm$);
atr$(that,'caseValues',function(){
return coicase$(that);
},undefined,_proto.$prop$getCaseValues.$crtmm$);
atr$(that,'declaration',function(){
return coimoddcl$(that);
},undefined,_proto.$prop$getDeclaration.$crtmm$);
atr$(that,'typeArguments',function(){
return coitarg$(that);
},undefined,_proto.$prop$getTypeArguments.$crtmm$);
atr$(that,'typeArgumentList',function(){
return coitargl$(that);
},undefined,_proto.$prop$getTypeArgumentList.$crtmm$);
atr$(that,'typeArgumentWithVariances',function(){
return coitargv$(that);
},undefined,_proto.$prop$getTypeArgumentWithVariances.$crtmm$);
atr$(that,'typeArgumentWithVarianceList',function(){
return coitargvl$(that);
},undefined,_proto.$prop$getTypeArgumentWithVarianceList.$crtmm$);
atr$(that,'defaultConstructor',function(){
return _proto.$prop$getDefaultConstructor.get.call(that);
},undefined,_proto.$prop$getDefaultConstructor.$crtmm$);
that.$_bind=_proto.$_bind;
that.equals=_proto.equals;
that.getAttribute=_proto.getAttribute;
that.getAttributes=_proto.getAttributes;
that.getClass=_proto.getClass;
that.getClassOrInterface=_proto.getClassOrInterface;
that.getClasses=_proto.getClasses;
that.getDeclaredAttribute=_proto.getDeclaredAttribute;
that.getDeclaredAttributes=_proto.getDeclaredAttributes;
that.getDeclaredClass=_proto.getDeclaredClass;
that.getDeclaredClassOrInterface=_proto.getDeclaredClassOrInterface;
that.getDeclaredClasses=_proto.getDeclaredClasses;
that.getDeclaredInterface=_proto.getDeclaredInterface;
that.getDeclaredInterfaces=_proto.getDeclaredInterfaces;
that.getDeclaredMethod=_proto.getDeclaredMethod;
that.getDeclaredMethods=_proto.getDeclaredMethods;
that.getInterface=_proto.getInterface;
that.getInterfaces=_proto.getInterfaces;
that.getConstructor=_proto.getConstructor;
that.getCallableConstructors=_proto.getCallableConstructors;
that.getDeclaredCallableConstructors=_proto.getDeclaredCallableConstructors;
that.getDeclaredConstructor=_proto.getDeclaredConstructor;
that.getDeclaredValueConstructors=_proto.getDeclaredValueConstructors;
that.getValueConstructors=_proto.getValueConstructors;
that.getMethod=_proto.getMethod;
that.getMethods=_proto.getMethods;
that.typeOf=_proto.typeOf;
that.supertypeOf=_proto.supertypeOf;
that.union=_proto.union;
that.intersection=_proto.intersection;
that.exactly=_proto.exactly;
atr$(that,'string',function(){return coistr$(that); },undefined,_proto.$prop$getString.$crtmm$);
atr$(that,'hash',function(){return coihash$(that);},undefined,_proto.$prop$getHash.$crtmm$);
atr$(that,'container',function(){return coicont$(that); },undefined,_proto.$prop$getContainer.$crtmm$);
atr$(that,'declaringType',function(){return coicont$(that); },undefined,_proto.$prop$getDeclaringType.$crtmm$);
MemberClass$meta$model(that.$$targs$$===undefined?$$targs$$:{Arguments$MemberClass:that.$$targs$$.Arguments$AppliedMemberClass,
Type$MemberClass:that.$$targs$$.Type$AppliedMemberClass,
Container$MemberClass:that.$$targs$$.Container$AppliedMemberClass},that);
set_type_args(that,$$targs$$,AppliedMemberClass$jsint);
that.tipo=tipo;
return that;
}
AppliedMemberClass$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Container$AppliedMemberClass:{dv:'in'},Type$AppliedMemberClass:{dv:'out',def:{t:Anything}},Arguments$AppliedMemberClass:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$AppliedMemberClass',Container$MemberClass:'Container$AppliedMemberClass',Type$MemberClass:'Type$AppliedMemberClass'}}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass']};};
ex$.AppliedMemberClass$jsint=AppliedMemberClass$jsint;function $init$AppliedMemberClass$jsint(){if(AppliedMemberClass$jsint.$$===undefined){initTypeProto(AppliedMemberClass$jsint,'ceylon.language.jsint::AppliedMemberClass',Basic,$init$MemberClass$meta$model());
(function(appliedMemberClass$){appliedMemberClass$.$_bind=function $_bind(cont){
var ot=cont.getT$name ? cont.getT$all()[cont.getT$name()]:throwexc(IncompatibleTypeException$meta$model("Container does not appear to be a Ceylon object"));
if (!ot)throw IncompatibleTypeException$meta$model("Incompatible Container (has no metamodel information");
var omm=getrtmm$$(ot);
var mm=getrtmm$$(this.tipo);
if (!extendsType({t:ot},{t:mm.$cont}))throw IncompatibleTypeException$meta$model("Incompatible container type");
return this(cont);
}
appliedMemberClass$.$_bind.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Class$meta$model,a:{Type$Class:'Type$AppliedMemberClass',Arguments$Class:'Arguments$AppliedMemberClass'}},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','bind']};};atr$(appliedMemberClass$,'defaultConstructor',function(){if (this.$defcons$===undefined) {
var mm=getrtmm$$(this.tipo);
//Member Type Name
var mtn=mm.d[mm.d.length-1];
if (mtn.indexOf('$')>0)mtn=mtn.substring(0,mtn.indexOf('$'));
var startingType=this.container;
while (is$(startingType,{t:Class$meta$model})) {
var pn=startingType.declaration.name;
mtn+='$'+startingType.declaration.name;
startingType=startingType.container;
}
var fn=mtn+'_$c$';
var cn=this.tipo[fn];
var fc=false;
if (!cn) {
var m2=get_model(mm);
if (m2 && m2.$cn===undefined) {
cn=this.tipo;
fc=true;
}
}
if (cn) {
mm=getrtmm$$(cn).ps;
var args=tupleize$params(getrtmm$$(cn).ps,this.$$targs$$.Type$AppliedMemberClass.a);
var r=AppliedMemberClassCallableConstructor$jsint(cn,
{Type$AppliedMemberClassCallableConstructor:this.$$targs$$.Type$AppliedMemberClass,
Container$AppliedMemberClassCallableConstructor:this.$$targs$$.Container$AppliedMemberClass,
Arguments$AppliedMemberClassCallableConstructor:args},undefined,this.$targs);
r.cont$=this;
this.$defcons$=r;
if(fc)r.fakeConstr$=true;
return r;
}
this.$defcons$=null;
}
return this.$defcons$;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberClassCallableConstructor$meta$model,a:{Type$MemberClassCallableConstructor:'Type$AppliedMemberClass',Arguments$MemberClassCallableConstructor:'Arguments$AppliedMemberClass',Container$MemberClassCallableConstructor:'Container$AppliedMemberClass'}}]},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','defaultConstructor']};});appliedMemberClass$.getConstructor=function(nm,$m){
var r=this.getDeclaredConstructor(nm,{Arguments$getDeclaredConstructor:$m.Arguments$getConstructor});
return r && (getrtmm$$(r.tipo).pa&1)>0 ? r : null;
}
appliedMemberClass$.getConstructor.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:MemberClassCallableConstructor$meta$model,a:{Type$MemberClassCallableConstructor:'Type$AppliedMemberClass',Arguments$MemberClassCallableConstructor:'Arguments$getConstructor',Container$MemberClassCallableConstructor:'Container$AppliedMemberClass'}},{t:'u',l:[{t:Null},{t:MemberClassValueConstructor$meta$model,a:{Container$MemberClassValueConstructor:'Container$AppliedMemberClass',Type$MemberClassValueConstructor:'Type$AppliedMemberClass'}}]}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:AppliedMemberClass$jsint,tp:{Arguments$getConstructor:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getConstructor']};};appliedMemberClass$.getDeclaredConstructor=function(nm,$m){
var mm=getrtmm$$(this.tipo);
//Member Type Name
var mtn=mm.d[mm.d.length-1];
if (mtn.indexOf('$')>0)mtn=mtn.substring(0,mtn.indexOf('$'));
if (nm==='')nm='$c$';
var startingType=this.container;
while (is$(startingType,{t:ClassOrInterface$meta$model})) {
var pn=startingType.declaration.name;
mtn+='$'+startingType.declaration.name;
startingType=startingType.container;
}
var fn=mtn+"_"+nm;
var cn=this.tipo[fn];
if (cn) {
mm=getrtmm$$(cn);
if (mm.d[mm.d.length-2]==='$cn' && mm.ps!==undefined) {
var args=mm.ps?tupleize$params(mm.ps,this.$targs):empty();
return AppliedMemberClassCallableConstructor$jsint(cn,
{Type$AppliedMemberClassCallableConstructor:this.$$targs$$.Type$AppliedMemberClass,
Container$AppliedMemberClassCallableConstructor:this.$$targs$$.Container$AppliedMemberClass,
Arguments$AppliedMemberClassCallableConstructor:args},undefined,this.$targs);
}
}
return null;
}
appliedMemberClass$.getDeclaredConstructor.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:MemberClassCallableConstructor$meta$model,a:{Type$MemberClassCallableConstructor:'Type$AppliedMemberClass',Arguments$MemberClassCallableConstructor:'Arguments$getDeclaredConstructor',Container$MemberClassCallableConstructor:'Container$AppliedMemberClass'}},{t:'u',l:[{t:Null},{t:MemberClassValueConstructor$meta$model,a:{Container$MemberClassValueConstructor:'Container$AppliedMemberClass',Type$MemberClassValueConstructor:'Type$AppliedMemberClass'}}]}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:AppliedMemberClass$jsint,tp:{Arguments$getDeclaredConstructor:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getDeclaredConstructor']};};appliedMemberClass$.getDeclaredCallableConstructors=function(anntypes,$m) {
var mm=getrtmm$$(this.tipo);
//Member Type Name
var mtn=mm.d[mm.d.length-1];
if (mtn.indexOf('$')>0)mtn=mtn.substring(0,mtn.indexOf('$'));
var startingType=this.container;
while (is$(startingType,{t:ClassOrInterface$meta$model})) {
var pn=startingType.declaration.name;
mtn+='$'+startingType.declaration.name;
startingType=startingType.container;
}
var pref=mtn+"_";
var cs=coiclsannconstrs$(this,anntypes,pref,this.$$targs$$.Type$AppliedMemberClass,$m.Arguments$getDeclaredCallableConstructors);
for (var i=0;i<cs.length;i++) {
var r=AppliedMemberClassCallableConstructor$jsint(cs[i].tipo,
{Type$AppliedMemberClassCallableConstructor:this.$$targs$$.Type$AppliedMemberClass,
Container$AppliedMemberClassCallableConstructor:this.$$targs$$.Container$AppliedMemberClass,
Arguments$AppliedMemberClassCallableConstructor:cs[i].args},undefined,this.$targs);
r.$cont=this;
if (cs[i].fakeConstr)r.fakeConstr$=true;
cs[i]=r;
}
var targ={t:MemberClassCallableConstructor$meta$model,
a:{Type$MemberClassCallableConstructor:this.$$targs$$.Type$AppliedClass,Arguments$MemberClassCallableConstructor:{t:Nothing},
Container$MemberClassCallableConstructor:this.$$targs$$.Container$AppliedMemberClass}};
return cs.$sa$(targ);
}
appliedMemberClass$.getDeclaredCallableConstructors.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClassCallableConstructor$meta$model,a:{Type$MemberClassCallableConstructor:'Type$AppliedMemberClass',Arguments$MemberClassCallableConstructor:'Arguments$getDeclaredCallableConstructors',Container$MemberClassCallableConstructor:'Container$AppliedMemberClass'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Arguments$getDeclaredCallableConstructors:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getDeclaredCallableConstructors']};};appliedMemberClass$.getCallableConstructors=function(anntypes,$m){
return this.getDeclaredCallableConstructors(anntypes,{Arguments$getDeclaredCallableConstructors:$m.Arguments$getCallableConstructors}
).select(function(e){return (getrtmm$$(e.tipo).pa&1)>0||e.fakeConstr$;});
}
appliedMemberClass$.getCallableConstructors.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClassCallableConstructor$meta$model,a:{Type$MemberClassCallableConstructor:'Type$AppliedMemberClass',Arguments$MemberClassCallableConstructor:'Arguments$getCallableConstructors',Container$MemberClassCallableConstructor:'Container$AppliedMemberClass'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Arguments$getCallableConstructors:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getCallableConstructors']};};appliedMemberClass$.getDeclaredValueConstructors=function(anntypes){
var mm=getrtmm$$(this.tipo);
//Member Type Name
var mtn=mm.d[mm.d.length-1];
if (mtn.indexOf('$')>0)mtn=mtn.substring(0,mtn.indexOf('$'));
var startingType=this.container;
while (is$(startingType,{t:ClassOrInterface$meta$model})) {
var pn=startingType.declaration.name;
mtn+='$'+startingType.declaration.name;
startingType=startingType.container;
}
var pref=mtn+"_";
var cs=coiclsannconstrs$(this,anntypes,pref,this.$$targs$$.Type$AppliedMemberClass);
for (var i=0;i<cs.length;i++) {
var r=AppliedMemberClassValueConstructor$jsint(cs[i].tipo,
{Type$AppliedMemberClassValueConstructor:this.$$targs$$.Type$AppliedMemberClass,
Container$AppliedMemberClassValueConstructor:this.$$targs$$.Container$AppliedMemberClass});
r.$cont=this;
cs[i]=r;
}
return cs.$sa$({t:MemberClassValueConstructor$meta$model,
a:{Type$MemberClassValueConstructor:this.$$targs$$.Type$AppliedClass,
Container$MemberClassValueConstructor:this.$$targs$$.Container$AppliedMemberClass}});
}
appliedMemberClass$.getDeclaredValueConstructors.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClassValueConstructor$meta$model,a:{Container$MemberClassValueConstructor:'Container$AppliedMemberClass',Type$MemberClassValueConstructor:'Type$AppliedMemberClass'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getDeclaredValueConstructors']};};appliedMemberClass$.getValueConstructors=function(anntypes){
return this.getDeclaredValueConstructors(anntypes)
.select(function(e){return (getrtmm$$(e.tipo).pa&1)>0;});
}
appliedMemberClass$.getValueConstructors.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClassValueConstructor$meta$model,a:{Container$MemberClassValueConstructor:'Container$AppliedMemberClass',Type$MemberClassValueConstructor:'Type$AppliedMemberClass'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getValueConstructors']};};atr$(appliedMemberClass$,'declaringType',function(){if (this.declaringType$===undefined) {
this.declaringType$=coicont$(this);
}
return this.declaringType$;
},undefined,function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','declaringType']};});atr$(appliedMemberClass$,'declaration',function(){return coimoddcl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:ClassDeclaration$meta$declaration},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','declaration']};});atr$(appliedMemberClass$,'typeArguments',function(){return coitarg$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','typeArguments']};});atr$(appliedMemberClass$,'typeArgumentList',function(){return coitargl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','typeArgumentList']};});atr$(appliedMemberClass$,'typeArgumentWithVariances',function(){return coitargv$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:TypeArgument$meta$model()}},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','typeArgumentWithVariances']};});atr$(appliedMemberClass$,'typeArgumentWithVarianceList',function(){return coitargvl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:TypeArgument$meta$model()}},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','typeArgumentWithVarianceList']};});atr$(appliedMemberClass$,'extendedType',function(){return coiexttype$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:{t:Anything}}}]},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','extendedType']};});atr$(appliedMemberClass$,'satisfiedTypes',function(){return coisattype$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:InterfaceModel$meta$model,a:{Type$InterfaceModel:{t:Anything}}}}},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','satisfiedTypes']};});appliedMemberClass$.getClassOrInterface=function(a,b,c){return coigetcoi$(this,a,b,c);}
appliedMemberClass$.getClassOrInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Member$meta$model,a:{Kind$Member:'Kind$getClassOrInterface',Container$Member:'SubType$getClassOrInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberClass$jsint,tp:{SubType$getClassOrInterface:{},Kind$getClassOrInterface:{sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getClassOrInterface']};};appliedMemberClass$.typeOf=ClassOrInterface$meta$model.$$.prototype.typeOf
appliedMemberClass$.typeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}}],$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','typeOf']};};appliedMemberClass$.supertypeOf=ClassOrInterface$meta$model.$$.prototype.supertypeOf
appliedMemberClass$.supertypeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','supertypeOf']};};appliedMemberClass$.exactly=ClassOrInterface$meta$model.$$.prototype.exactly
appliedMemberClass$.exactly.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','exactly']};};atr$(appliedMemberClass$,'container',function(){return coicont$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Type$meta$model,a:{Target$Type:{t:Anything}}}]},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','container']};});appliedMemberClass$.getClasses=function(a,b){return coiclasse$(this,a,b);}
appliedMemberClass$.getClasses.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getClasses',Container$MemberClass:'Container$getClasses',Type$MemberClass:'Type$getClasses'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getClasses:{def:{t:Nothing}},Type$getClasses:{def:{t:Anything}},Arguments$getClasses:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getClasses']};};appliedMemberClass$.getDeclaredClasses=function(anntypes,$$$mptypes) {
return coiclasse$(this,anntypes,{Container$getClasses:$$$mptypes.Container$getDeclaredClasses,Type$getClasses:$$$mptypes.Type$getDeclaredClasses,Arguments$getClasses:$$$mptypes.Arguments$getDeclaredClasses},1);
}
appliedMemberClass$.getDeclaredClasses.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getDeclaredClasses',Container$MemberClass:'Container$getDeclaredClasses',Type$MemberClass:'Type$getDeclaredClasses'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getDeclaredClasses:{def:{t:Nothing}},Type$getDeclaredClasses:{def:{t:Anything}},Arguments$getDeclaredClasses:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getDeclaredClasses']};};appliedMemberClass$.getClass=function(name,types,$mptypes) {return coicla$(this,name,types,$mptypes.Container$getClass);}
appliedMemberClass$.getClass.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getClass',Container$MemberClass:'Container$getClass',Type$MemberClass:'Type$getClass'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getClass:{def:{t:Nothing}},Type$getClass:{def:{t:Anything}},Arguments$getClass:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getClass']};};appliedMemberClass$.getDeclaredClass=function(name,types,$mptypes) {return coicla$(this,name,types,$mptypes.Container$getDeclaredClass,1);}
appliedMemberClass$.getDeclaredClass.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getDeclaredClass',Container$MemberClass:'Container$getDeclaredClass',Type$MemberClass:'Type$getDeclaredClass'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getDeclaredClass:{def:{t:Nothing}},Type$getDeclaredClass:{def:{t:Anything}},Arguments$getDeclaredClass:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getDeclaredClass']};};appliedMemberClass$.getInterfaces=function(anntypes,$$$mptypes){return coigetifc$(this,anntypes,$$$mptypes);}
appliedMemberClass$.getInterfaces.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getInterfaces',Type$MemberInterface:'Type$getInterfaces'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getInterfaces:{def:{t:Nothing}},Type$getInterfaces:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getInterfaces']};};appliedMemberClass$.getDeclaredInterfaces=function(anntypes,$$$mptypes){
return coigetifc$(this,anntypes,{Container$getInterfaces:$$$mptypes.Container$getDeclaredInterfaces,Type$getInterfaces:$$$mptypes.Type$getDeclaredInterfaces},1);
}
appliedMemberClass$.getDeclaredInterfaces.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getDeclaredInterfaces',Type$MemberInterface:'Type$getDeclaredInterfaces'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getDeclaredInterfaces:{def:{t:Nothing}},Type$getDeclaredInterfaces:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getDeclaredInterfaces']};};appliedMemberClass$.getInterface=function(name,types,$mptypes) {return coiifc$(this,name,types,$mptypes.Container$getInterface);}
appliedMemberClass$.getInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getInterface',Type$MemberInterface:'Type$getInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getInterface:{def:{t:Nothing}},Type$getInterface:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getInterface']};};appliedMemberClass$.getDeclaredInterface=function(name,types,$mptypes) {
return coiifc$(this,name,types,$mptypes.Container$getDeclaredInterface,1);
}
appliedMemberClass$.getDeclaredInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getDeclaredInterface',Type$MemberInterface:'Type$getDeclaredInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getDeclaredInterface:{def:{t:Nothing}},Type$getDeclaredInterface:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getDeclaredInterface']};};appliedMemberClass$.getAttributes=function(a,m){return coigetatr$(this,a,m);}
appliedMemberClass$.getAttributes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Attribute$meta$model,a:{Set$Attribute:'Set$getAttributes',Container$Attribute:'Container$getAttributes',Get$Attribute:'Get$getAttributes'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getAttributes:{def:{t:Nothing}},Get$getAttributes:{def:{t:Anything}},Set$getAttributes:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getAttributes']};};appliedMemberClass$.getDeclaredAttributes=function(anntypes,$$$mptypes) {
return coigetatr$(this,anntypes,{Container$getAttributes:$$$mptypes.Container$getDeclaredAttributes,Get$getAttributes:$$$mptypes.Get$getDeclaredAttributes,Set$getAttributes:$$$mptypes.Set$getDeclaredAttributes},1);
}
appliedMemberClass$.getDeclaredAttributes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Attribute$meta$model,a:{Set$Attribute:'Set$getDeclaredAttributes',Container$Attribute:'Container$getDeclaredAttributes',Get$Attribute:'Get$getDeclaredAttributes'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getDeclaredAttributes:{def:{t:Nothing}},Get$getDeclaredAttributes:{def:{t:Anything}},Set$getDeclaredAttributes:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getDeclaredAttributes']};};appliedMemberClass$.getAttribute=function getAttribute(name,m){return coiatr$(this,name,m);}
appliedMemberClass$.getAttribute.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Attribute$meta$model,a:{Set$Attribute:'Set$getAttribute',Container$Attribute:'Container$getAttribute',Get$Attribute:'Get$getAttribute'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:AppliedMemberClass$jsint,tp:{Container$getAttribute:{def:{t:Nothing}},Get$getAttribute:{def:{t:Anything}},Set$getAttribute:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getAttribute']};};appliedMemberClass$.getDeclaredAttribute=function getDeclaredAttribute(name,$$$mptypes){
return coiatr$(this,name,{Get$getAttribute:$$$mptypes.Get$getDeclaredAttribute,Set$getAttribute:$$$mptypes.Set$getDeclaredAttribute,
Container$getAttribute:$$$mptypes.Container$getDeclaredAttribute},1);
}
appliedMemberClass$.getDeclaredAttribute.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Attribute$meta$model,a:{Set$Attribute:'Set$getDeclaredAttribute',Container$Attribute:'Container$getDeclaredAttribute',Get$Attribute:'Get$getDeclaredAttribute'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:AppliedMemberClass$jsint,tp:{Container$getDeclaredAttribute:{def:{t:Nothing}},Get$getDeclaredAttribute:{def:{t:Anything}},Set$getDeclaredAttribute:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getDeclaredAttribute']};};appliedMemberClass$.getMethods=function(anntypes,$$$mptypes) {return coigetmtd$(this,anntypes,$$$mptypes);}
appliedMemberClass$.getMethods.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Method$meta$model,a:{Container$Method:'Container$getMethods',Arguments$Method:'Arguments$getMethods',Type$Method:'Type$getMethods'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getMethods:{def:{t:Nothing}},Type$getMethods:{def:{t:Anything}},Arguments$getMethods:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getMethods']};};appliedMemberClass$.getDeclaredMethods=function(anntypes,$$$mptypes){
return coigetmtd$(this,anntypes,{Container$getMethods:$$$mptypes.Container$getDeclaredMethods,Type$getMethods:$$$mptypes.Type$getDeclaredMethods,Arguments$getMethods:$$$mptypes.Arguments$getDeclaredMethods},1);
}
appliedMemberClass$.getDeclaredMethods.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Method$meta$model,a:{Container$Method:'Container$getDeclaredMethods',Arguments$Method:'Arguments$getDeclaredMethods',Type$Method:'Type$getDeclaredMethods'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getDeclaredMethods:{def:{t:Nothing}},Type$getDeclaredMethods:{def:{t:Anything}},Arguments$getDeclaredMethods:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getDeclaredMethods']};};appliedMemberClass$.getMethod=function(name,types,$$$mptypes){
return coimtd$(this,name,types,$$$mptypes);
}
appliedMemberClass$.getMethod.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Method$meta$model,a:{Container$Method:'Container$getMethod',Arguments$Method:'Arguments$getMethod',Type$Method:'Type$getMethod'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getMethod:{def:{t:Nothing}},Type$getMethod:{def:{t:Anything}},Arguments$getMethod:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getMethod']};};appliedMemberClass$.getDeclaredMethod=function(name,types,$$$mptypes) {
return coimtd$(this,name,types,{Type$getMethod:$$$mptypes.Type$getDeclaredMethod,Arguments$getMethod:$$$mptypes.Arguments$getDeclaredMethod,
Container$getMethod:$$$mptypes.Container$getDeclaredMethod},1);
}
appliedMemberClass$.getDeclaredMethod.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Method$meta$model,a:{Container$Method:'Container$getDeclaredMethod',Arguments$Method:'Arguments$getDeclaredMethod',Type$Method:'Type$getDeclaredMethod'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getDeclaredMethod:{def:{t:Nothing}},Type$getDeclaredMethod:{def:{t:Anything}},Arguments$getDeclaredMethod:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getDeclaredMethod']};};appliedMemberClass$.getDeclaredClassOrInterface=function(name,types,$$$mptypes){
return coigetcoi$(this,name,types,{Kind$getClassOrInterface:$$$mptypes.Kind$getDeclaredClassOrInterface,
Arguments$getClassOrInterface:$$$mptypes.Arguments$getDeclaredClassOrInterface,
Container$getClassOrInterface:$$$mptypes.Container$getDeclaredClassOrInterface},1);
}
appliedMemberClass$.getDeclaredClassOrInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Member$meta$model,a:{Kind$Member:'Kind$getDeclaredClassOrInterface',Container$Member:'Container$getDeclaredClassOrInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberClass$jsint,tp:{Container$getDeclaredClassOrInterface:{def:{t:Nothing}},Kind$getDeclaredClassOrInterface:{sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}],def:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','getDeclaredClassOrInterface']};};atr$(appliedMemberClass$,'caseValues',function(){return coicase$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Type$AppliedMemberClass'}},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','caseValues']};});appliedMemberClass$.union=function(t,$mpt){
return coiut$(this,t,$mpt.Other$union);
}
appliedMemberClass$.union.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'u',l:['Type$AppliedMemberClass','Other$union']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$union'}}}],$cont:AppliedMemberClass$jsint,tp:{Other$union:{}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','union']};};appliedMemberClass$.intersection=function(t,$mpt){
return coiit$(this,t,$mpt.Other$intersection);
}
appliedMemberClass$.intersection.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'i',l:['Type$AppliedMemberClass','Other$intersection']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$intersection'}}}],$cont:AppliedMemberClass$jsint,tp:{Other$intersection:{}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','intersection']};};atr$(appliedMemberClass$,'string',function(){return coistr$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','string']};});atr$(appliedMemberClass$,'hash',function(){return coihash$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$at','hash']};});appliedMemberClass$.equals=function(o){
if (is$(o,{t:AppliedMemberClass$jsint}) && o.tipo===this.tipo) {
var eq;
if (this.$bound) {
eq= o.$bound && o.$bound.equals(this.$bound);
} else {
eq= o.$bound===undefined;
}
if (eq && this.typeArgumentWithVariances.equals(o.typeArgumentWithVariances)) {
if (this.container.tipo===o.container.tipo) {
//This will check for type arguments etc
return this.container.equals(o.container);
} else {
//Can't compare different parent types
return true;
}
}
}
return false;
}
appliedMemberClass$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedMemberClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClass','$m','equals']};};})(AppliedMemberClass$jsint.$$.prototype);}
return AppliedMemberClass$jsint;}
ex$.$init$AppliedMemberClass$jsint=$init$AppliedMemberClass$jsint;$init$AppliedMemberClass$jsint();function AppliedMemberClassCallableConstructor$jsint(tipo,$$targs$$,that,myTargs) {
if ($$targs$$.Type$AppliedMemberClassCallableConstructor===undefined)$$targs$$.Type$AppliedMemberClassCallableConstructor=$$targs$$.Type$MemberClassCallableConstructor;
if ($$targs$$.Container$AppliedMemberClassCallableConstructor===undefined)$$targs$$.Container$AppliedMemberClassCallableConstructor=$$targs$$.Container$MemberClassCallableConstructor;
if ($$targs$$.Arguments$AppliedMemberClassCallableConstructor===undefined)$$targs$$.Arguments$AppliedMemberClassCallableConstructor=$$targs$$.Arguments$MemberClassCallableConstructor;
$init$AppliedMemberClassCallableConstructor$jsint();
if (that===undefined){
var mm = getrtmm$$(tipo);
that=function AppliedMemConstr1(x){
var rv=tipo.bind(x);
rv.$crtmm$=tipo.$crtmm$;
var nt={t:tipo};
if (x.$$targs$$) {
nt.a={};
for (var nta in x.$$targs$$)nt.a[nta]=x.$$targs$$[nta];
}
if (that.$targs) {
if (!nt.a)nt.a={};
for (var nta in that.$targs)nt.a[nta]=that.$targs[nta];
}
rv=AppliedCallableConstructor$jsint(rv,{Type$AppliedCallableConstructor:nt,Arguments$AppliedCallableConstructor:{t:Sequential,a:{Element$Iterable:{t:Anything},Absent$Iterable:{t:Null}}}});//TODO generate metamodel for Arguments
if (nt.a)rv.$targs=nt.a;
rv.$bound=x;
return rv;
}
var dummy=new AppliedMemberClassCallableConstructor$jsint.$$;
that.$$=AppliedMemberClassCallableConstructor$jsint.$$;
that.getT$all=function(){return dummy.getT$all();};
that.getT$name=function(){return dummy.getT$name();};
that.equals=AppliedMemberClassCallableConstructor$jsint.$$.prototype.equals;
that.$_bind=AppliedMemberClassCallableConstructor$jsint.$$.prototype.$_bind;
atr$(that,'declaration',function(){
return AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getDeclaration.get.call(that);
},undefined,AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getDeclaration.$crtmm$);
atr$(that,'container',function(){
return AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getContainer.get.call(that);
},undefined,AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getContainer.$crtmm$);
atr$(that,'type',function(){
return AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getType.get.call(that);
},undefined,AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getType.$crtmm$);
atr$(that,'typeArguments',function(){
return AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getTypeArguments.get.call(that);
},undefined,AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getTypeArguments.$crtmm$);
atr$(that,'typeArgumentList',function(){
return AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getTypeArgumentList.get.call(that);
},undefined,AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getTypeArgumentList.$crtmm$);
atr$(that,'typeArgumentWithVariances',function(){
return AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getTypeArgumentWithVariances.get.call(that);
},undefined,AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getTypeArgumentWithVariances.$crtmm$);
atr$(that,'typeArgumentWithVarianceList',function(){
return AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getTypeArgumentWithVarianceList.get.call(that);
},undefined,AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getTypeArgumentWithVarianceList.$crtmm$);
atr$(that,'parameterTypes',function(){
return AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getParameterTypes.get.call(that);
},undefined,AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getParameterTypes.$crtmm$);
atr$(that,'string',function(){
return AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getString.get.call(that);
},undefined,AppliedMemberClassCallableConstructor$jsint.$$.prototype.$prop$getString.$crtmm$);
}
MemberClassCallableConstructor$meta$model({Type$MemberClassCallableConstructor:$$targs$$.Type$AppliedMemberClassCallableConstructor,
Arguments$MemberClassCallableConstructor:$$targs$$.Arguments$AppliedMemberClassCallableConstructor,
Container$MemberClassCallableConstructor:$$targs$$.Container$AppliedMemberClassCallableConstructor},that);
set_type_args(that,$$targs$$,AppliedMemberClassCallableConstructor$jsint);
that.$targs=myTargs;
that.tipo=tipo;
return that;
}
AppliedMemberClassCallableConstructor$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Container$AppliedMemberClassCallableConstructor:{dv:'in',def:{t:Nothing}},Type$AppliedMemberClassCallableConstructor:{dv:'out',def:{t:$_Object}},Arguments$AppliedMemberClassCallableConstructor:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:MemberClassCallableConstructor$meta$model,a:{Type$MemberClassCallableConstructor:'Type$AppliedMemberClassCallableConstructor',Arguments$MemberClassCallableConstructor:'Arguments$AppliedMemberClassCallableConstructor',Container$MemberClassCallableConstructor:'Container$AppliedMemberClassCallableConstructor'}}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassCallableConstructor']};};
ex$.AppliedMemberClassCallableConstructor$jsint=AppliedMemberClassCallableConstructor$jsint;function $init$AppliedMemberClassCallableConstructor$jsint(){if(AppliedMemberClassCallableConstructor$jsint.$$===undefined){initTypeProto(AppliedMemberClassCallableConstructor$jsint,'ceylon.language.jsint::AppliedMemberClassCallableConstructor',Basic,$init$MemberClassCallableConstructor$meta$model());
(function(appliedMemberClassCallableConstructor$){atr$(appliedMemberClassCallableConstructor$,'declaration',function(){if (this.dec$===undefined) {
this.dec$=OpenCallableConstructor$jsint(lmp$(ex$,getrtmm$$(this.tipo).d[0]),this.tipo);
}
return this.dec$;
},undefined,function(){return{mod:$CCMM$,$t:{t:CallableConstructorDeclaration$meta$declaration},$cont:AppliedMemberClassCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassCallableConstructor','$at','declaration']};});atr$(appliedMemberClassCallableConstructor$,'type',function(){if (this.cont$===undefined) {
var cc=this.fakeConstr$?this.tipo:getrtmm$$(this.tipo).$cont;
this.cont$=AppliedMemberClass$jsint(cc,{Type$AppliedMemberClass:this.$$targs$$.Type$AppliedMemberClassCallableConstructor,
Container$AppliedMemberClass:this.$$targs$$.Container$AppliedMemberClassCallableConstructor,
Arguments$AppliedMemberClass:{t:Nothing}},undefined,this.$targs);
}
return this.cont$;
},undefined,function(){return{mod:$CCMM$,$t:{t:MemberClass$meta$model,a:{Arguments$MemberClass:{t:Nothing},Container$MemberClass:'Container$AppliedMemberClassCallableConstructor',Type$MemberClass:'Type$AppliedMemberClassCallableConstructor'}},$cont:AppliedMemberClassCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassCallableConstructor','$at','type']};});atr$(appliedMemberClassCallableConstructor$,'container',function(){return this.fakeConstr$?this.type:this.type.container;
},undefined,function(){return{mod:$CCMM$,$t:{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:'Type$AppliedMemberClassCallableConstructor'}},$cont:AppliedMemberClassCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassCallableConstructor','$at','container']};});appliedMemberClassCallableConstructor$.$_bind=function(cont){
var ot=cont.getT$name ? cont.getT$all()[cont.getT$name()]:throwexc(IncompatibleTypeException$meta$model("Container does not appear to be a Ceylon object"));
if (!ot)throw IncompatibleTypeException$meta$model("Incompatible Container (has no metamodel information)");
var omm=getrtmm$$(ot);
var mm=getrtmm$$(getrtmm$$(this.tipo).$cont);
if (!extendsType({t:ot},{t:mm.$cont}))throw IncompatibleTypeException$meta$model("Incompatible container type");
return this(cont);
}
appliedMemberClassCallableConstructor$.$_bind.$crtmm$=function(){return{mod:$CCMM$,$t:{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$AppliedMemberClassCallableConstructor',Type$CallableConstructor:'Type$AppliedMemberClassCallableConstructor'}},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:AppliedMemberClassCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassCallableConstructor','$m','bind']};};atr$(appliedMemberClassCallableConstructor$,'typeArguments',function(){return this.type.typeArguments;
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedMemberClassCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassCallableConstructor','$at','typeArguments']};});atr$(appliedMemberClassCallableConstructor$,'typeArgumentList',function(){return this.type.typeArgumentList;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedMemberClassCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassCallableConstructor','$at','typeArgumentList']};});atr$(appliedMemberClassCallableConstructor$,'typeArgumentWithVariances',function(){return this.type.typeArgumentWithVariances;
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:TypeArgument$meta$model()}},$cont:AppliedMemberClassCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassCallableConstructor','$at','typeArgumentWithVariances']};});atr$(appliedMemberClassCallableConstructor$,'typeArgumentWithVarianceList',function(){return this.type.typeArgumentWithVarianceList;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:TypeArgument$meta$model()}},$cont:AppliedMemberClassCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassCallableConstructor','$at','typeArgumentWithVarianceList']};});atr$(appliedMemberClassCallableConstructor$,'parameterTypes',function(){if (this.ptypes$===undefined) {
this.ptypes$=clsparamtypes(this);
}
return this.ptypes$;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedMemberClassCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassCallableConstructor','$at','parameterTypes']};});atr$(appliedMemberClassCallableConstructor$,'string',function(){return qname$(getrtmm$$(this.tipo));
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedMemberClassCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassCallableConstructor','$at','string']};});appliedMemberClassCallableConstructor$.equals=function equals(o) {
if (is$(o,{t:AppliedMemberClassCallableConstructor$jsint}) && this.tipo===o.tipo) {
return this.container.equals(o.container) && this.typeArguments.equals(o.typeArguments);
}
return false;
}
appliedMemberClassCallableConstructor$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedMemberClassCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassCallableConstructor','$m','equals']};};})(AppliedMemberClassCallableConstructor$jsint.$$.prototype);}
return AppliedMemberClassCallableConstructor$jsint;}
ex$.$init$AppliedMemberClassCallableConstructor$jsint=$init$AppliedMemberClassCallableConstructor$jsint;$init$AppliedMemberClassCallableConstructor$jsint();function AppliedMemberClassValueConstructor$jsint(tipo,$$targs$$,that) {
if (!$$targs$$.Type$AppliedMemberClassValueConstructor)$$targs$$.Type$AppliedValueConstructor=$$targs$$.Type$MemberClassValueConstructor;
if (!$$targs$$.Container$AppliedMemberClassValueConstructor)$$targs$$.Container$AppliedValueConstructor=$$targs$$.Container$MemberClassValueConstructor;
$init$AppliedMemberClassValueConstructor$jsint();
if (that===undefined)that=new AppliedMemberClassValueConstructor$jsint.$$;
set_type_args(that,$$targs$$);
MemberClassValueConstructor$meta$model(
{Type$MemberClassValueConstructor:$$targs$$.Type$AppliedMemberClassValueConstructor,
Container$MemberClassValueConstructor:$$targs$$.Container$AppliedMemberClassValueConstructor},that);
that.tipo=tipo;
return that;
}
AppliedMemberClassValueConstructor$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Container$AppliedMemberClassValueConstructor:{dv:'in',def:{t:Nothing}},Type$AppliedMemberClassValueConstructor:{dv:'out',def:{t:$_Object}}},sts:[{t:MemberClassValueConstructor$meta$model,a:{Container$MemberClassValueConstructor:'Container$AppliedMemberClassValueConstructor',Type$MemberClassValueConstructor:'Type$AppliedMemberClassValueConstructor'}}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassValueConstructor']};};
ex$.AppliedMemberClassValueConstructor$jsint=AppliedMemberClassValueConstructor$jsint;function $init$AppliedMemberClassValueConstructor$jsint(){if(AppliedMemberClassValueConstructor$jsint.$$===undefined){initTypeProto(AppliedMemberClassValueConstructor$jsint,'ceylon.language.jsint::AppliedMemberClassValueConstructor',Basic,$init$MemberClassValueConstructor$meta$model());
(function(appliedMemberClassValueConstructor$){atr$(appliedMemberClassValueConstructor$,'declaration',function(){if (this.dec$===undefined) {
var mm=getrtmm$$(this.tipo);
var m2=typeof(mm.mod)==='function'?mm.mod():mm.mod;
this.dec$=OpenValueConstructor$jsint(fmp$(m2['$mod-name'],m2['$mod-version'],mm.d[0]),this.tipo);
}
return this.dec$;
},undefined,function(){return{mod:$CCMM$,$t:{t:ValueConstructorDeclaration$meta$declaration},$cont:AppliedMemberClassValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassValueConstructor','$at','declaration']};});atr$(appliedMemberClassValueConstructor$,'type',function(){if (this.cont$===undefined) {
var cc=getrtmm$$(this.tipo).$cont;
var mm=getrtmm$$(cc);
var _t={t:cc};
if (this.$targs)_t.a=this.$targs;
this.cont$=AppliedMemberClass$jsint(cc,{Type$AppliedMemberClass:_t,Arguments$AppliedMemberClass:{t:Nothing},
Container$AppliedMemberClass:this.$$targs$$.Container$AppliedMemberClassValueConstructor},undefined,this.$targs);
}
return this.cont$;
},undefined,function(){return{mod:$CCMM$,$t:{t:MemberClass$meta$model,a:{Arguments$MemberClass:{t:Nothing},Container$MemberClass:'Container$AppliedMemberClassValueConstructor',Type$MemberClass:'Type$AppliedMemberClassValueConstructor'}},$cont:AppliedMemberClassValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassValueConstructor','$at','type']};});atr$(appliedMemberClassValueConstructor$,'container',function(){return this.type.container;
},undefined,function(){return{mod:$CCMM$,$t:{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:'Type$AppliedMemberClassValueConstructor'}},$cont:AppliedMemberClassValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassValueConstructor','$at','container']};});appliedMemberClassValueConstructor$.$_bind=function(cont){
var ot=cont.getT$name ? cont.getT$all()[cont.getT$name()]:throwexc(IncompatibleTypeException$meta$model("Container does not appear to be a Ceylon object"));
if (!ot)throw IncompatibleTypeException$meta$model("Incompatible Container (has no metamodel information)");
var omm=getrtmm$$(ot);
var mm=getrtmm$$(getrtmm$$(this.tipo).$cont);
if (!extendsType({t:ot},{t:mm.$cont}))throw IncompatibleTypeException$meta$model("Incompatible container type");
return this(cont);
}
appliedMemberClassValueConstructor$.$_bind.$crtmm$=function(){return{mod:$CCMM$,$t:{t:ValueConstructor$meta$model,a:{Type$ValueConstructor:'Type$AppliedMemberClassValueConstructor'}},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:AppliedMemberClassValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassValueConstructor','$m','bind']};};atr$(appliedMemberClassValueConstructor$,'string',function(){return qname$(this.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedMemberClassValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassValueConstructor','$at','string']};});appliedMemberClassValueConstructor$.equals=function equals(o){
if (is$(o,{t:AppliedMemberClassValueConstructor$jsint})) {
return this.tipo===o.tipo;
}
return false;
}
appliedMemberClassValueConstructor$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedMemberClassValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberClassValueConstructor','$m','equals']};};})(AppliedMemberClassValueConstructor$jsint.$$.prototype);}
return AppliedMemberClassValueConstructor$jsint;}
ex$.$init$AppliedMemberClassValueConstructor$jsint=$init$AppliedMemberClassValueConstructor$jsint;$init$AppliedMemberClassValueConstructor$jsint();function AppliedMemberInterface$jsint(tipo,$$targs$$,that,myTargs){
if (!$$targs$$.Type$AppliedMemberInterface)$$targs$$.Type$AppliedMemberInterface=$$targs$$.Type$MemberInterface;
if (!$$targs$$.Container$AppliedMemberInterface)$$targs$$.Container$AppliedMemberInterface=$$targs$$.Container$MemberInterface;
$init$AppliedMemberInterface$jsint();
if (that===undefined){
var mm = getrtmm$$(tipo);
if (mm && mm.$cont) {
that=function AppliedMemIface1(x){
var rv=tipo.bind(x);
rv.$crtmm$=tipo.$crtmm$;
var nt={t:tipo};
if (x.$$targs$$) {
nt.a={};
for (var nta in x.$$targs$$)nt.a[nta]=x.$$targs$$[nta];
}
if (that.$targs) {
if (!nt.a)nt.a={};
for (var nta in that.$targs)nt.a[nta]=that.$targs[nta];
}
rv=AppliedInterface$jsint(rv,{Type$AppliedInterface:nt});
if (nt.a)rv.$targs=nt.a;
rv.$bound=x;
return rv;
}
that.tipo$2=tipo;
} else {
that=new AppliedMemberInterface$jsint.$$;
}
}
MemberInterface$meta$model(that.$$targs$$===undefined?$$targs$$:{Type$MemberInterface:that.$$targs$$.Type$AppliedMemberInterface,
Container$MemberInterface:that.$$targs$$.Container$AppliedMemberInterface},that);
set_type_args(that,$$targs$$,AppliedMemberInterface$jsint);
that.$targs=myTargs;
var _proto=AppliedMemberInterface$jsint.$$.prototype;
that.getMethod=_proto.getMethod;
that.getDeclaredMethod=_proto.getDeclaredMethod;
that.getAttribute=_proto.getAttribute;
that.getDeclaredAttribute=_proto.getDeclaredAttribute;
that.getClassOrInterface=_proto.getClassOrInterface;
that.getDeclaredClassOrInterface=_proto.getDeclaredClassOrInterface;
that.getClass=_proto.getClass;
that.getDeclaredClass=_proto.getDeclaredClass;
that.getInterface=_proto.getInterface;
that.getDeclaredInterface=_proto.getDeclaredInterface;
that.typeOf=_proto.typeOf;
that.supertypeOf=_proto.supertypeOf;
that.subtypeOf=_proto.subtypeOf;
that.exactly=_proto.exactly;
that.union=_proto.union;
that.intersection=_proto.intersection;
that.tipo=tipo;
var dummy = new AppliedMemberInterface$jsint.$$;
that.$$=AppliedMemberInterface$jsint.$$;
that.getT$all=function(){return dummy.getT$all();};
that.getT$name=function(){return dummy.getT$name();};
that.equals=_proto.equals;
atr$(that,'string',function(){return coistr$(that); },undefined,$_Object.$$.prototype.$prop$getString.$crtmm$);
atr$(that,'hash',function(){return coihash$(that);},undefined,Identifiable.$$.prototype.$prop$getHash.$crtmm$);
atr$(that,'declaration',function(){
return coimoddcl$(that);
},undefined,_proto.$prop$getDeclaration.$crtmm$);
atr$(that,'typeArguments',function(){
return coitarg$(that);
},undefined,_proto.$prop$getTypeArguments.$crtmm$);
atr$(that,'typeArgumentList',function(){
return coitargl$(that);
},undefined,_proto.$prop$getTypeArgumentList.$crtmm$);
atr$(that,'typeArgumentWithVariances',function(){
return coitargv$(that);
},undefined,_proto.$prop$getTypeArgumentWithVariances.$crtmm$);
atr$(that,'typeArgumentWithVarianceList',function(){
return coitargvl$(that);
},undefined,_proto.$prop$getTypeArgumentWithVarianceList.$crtmm$);
atr$(that,'container',function(){
return coicont$(that);
},undefined,_proto.$prop$getContainer.$crtmm$);
atr$(that,'declaringType',function(){return memberDeclaringType$(that);
},undefined,_proto.$prop$getDeclaringType.$crtmm$);
atr$(that,'extendedType',function(){return coiexttype$(that);
},undefined,_proto.$prop$getExtendedType.$crtmm$);
atr$(that,'satisfiedTypes',function(){return coisattype$(that);
},undefined,_proto.$prop$getSatisfiedTypes.$crtmm$);
atr$(that,'caseValues',function(){
return _proto.$prop$getCaseValues.get.call(that);
},undefined,_proto.$prop$getCaseValues.$crtmm$);
that.$_bind=_proto.$_bind;
return that;
}
AppliedMemberInterface$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Container$AppliedMemberInterface:{dv:'in'},Type$AppliedMemberInterface:{dv:'out',def:{t:Anything}}},sts:[{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$AppliedMemberInterface',Type$MemberInterface:'Type$AppliedMemberInterface'}}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface']};};
ex$.AppliedMemberInterface$jsint=AppliedMemberInterface$jsint;function $init$AppliedMemberInterface$jsint(){if(AppliedMemberInterface$jsint.$$===undefined){initTypeProto(AppliedMemberInterface$jsint,'ceylon.language.jsint::AppliedMemberInterface',Basic,$init$MemberInterface$meta$model());
(function(appliedMemberInterface$){appliedMemberInterface$.$_bind=function $_bind(cont){
var ot=cont.getT$name ? cont.getT$all()[cont.getT$name()]:throwexc(IncompatibleTypeException$meta$model("Container does not appear to be a Ceylon object"));
if (!ot)throw IncompatibleTypeException$meta$model("Incompatible Container (has no metamodel information)");
var omm=getrtmm$$(ot);
var mm=getrtmm$$(this.tipo);
if (!extendsType({t:ot},{t:mm.$cont}))throw IncompatibleTypeException$meta$model("Incompatible container type");
return this(cont);
}
appliedMemberInterface$.$_bind.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Interface$meta$model,a:{Type$Interface:'Type$AppliedMemberInterface'}},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','bind']};};atr$(appliedMemberInterface$,'declaringType',function(){return memberDeclaringType$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}},$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$at','declaringType']};});atr$(appliedMemberInterface$,'declaration',function(){return coimoddcl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:InterfaceDeclaration$meta$declaration},$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$at','declaration']};});atr$(appliedMemberInterface$,'typeArguments',function(){return coitarg$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$at','typeArguments']};});atr$(appliedMemberInterface$,'typeArgumentList',function(){return coitargl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$at','typeArgumentList']};});atr$(appliedMemberInterface$,'typeArgumentWithVariances',function(){return coitargv$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:TypeArgument$meta$model()}},$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$at','typeArgumentWithVariances']};});atr$(appliedMemberInterface$,'typeArgumentWithVarianceList',function(){return coitargvl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:TypeArgument$meta$model()}},$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$at','typeArgumentWithVarianceList']};});atr$(appliedMemberInterface$,'extendedType',function(){return coiexttype$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ClassModel$meta$model,a:{Arguments$ClassModel:{t:Nothing},Type$ClassModel:{t:Anything}}}]},$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$at','extendedType']};});atr$(appliedMemberInterface$,'satisfiedTypes',function(){return coisattype$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:InterfaceModel$meta$model,a:{Type$InterfaceModel:{t:Anything}}}}},$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$at','satisfiedTypes']};});appliedMemberInterface$.typeOf=ClassOrInterface$meta$model.$$.prototype.typeOf
appliedMemberInterface$.typeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}}],$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','typeOf']};};appliedMemberInterface$.supertypeOf=ClassOrInterface$meta$model.$$.prototype.supertypeOf
appliedMemberInterface$.supertypeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','supertypeOf']};};appliedMemberInterface$.exactly=ClassOrInterface$meta$model.$$.prototype.exactly
appliedMemberInterface$.exactly.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','exactly']};};atr$(appliedMemberInterface$,'container',function(){return coicont$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Type$meta$model,a:{Target$Type:{t:Anything}}}]},$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$at','container']};});appliedMemberInterface$.getClassOrInterface=function(a,b,c){return coigetcoi$(this,a,b,c);}
appliedMemberInterface$.getClassOrInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Member$meta$model,a:{Kind$Member:'Kind$getClassOrInterface',Container$Member:'SubType$getClassOrInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{SubType$getClassOrInterface:{},Kind$getClassOrInterface:{sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getClassOrInterface']};};appliedMemberInterface$.getClasses=function(a,b){return coiclasse$(this,a,b);}
appliedMemberInterface$.getClasses.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getClasses',Container$MemberClass:'Container$getClasses',Type$MemberClass:'Type$getClasses'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getClasses:{def:{t:Nothing}},Type$getClasses:{def:{t:Anything}},Arguments$getClasses:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getClasses']};};appliedMemberInterface$.getDeclaredClasses=function(anntypes,$$$mptypes) {
return coiclasse$(this,anntypes,{Container$getClasses:$$$mptypes.Container$getDeclaredClasses,Type$getClasses:$$$mptypes.Type$getDeclaredClasses,Arguments$getClasses:$$$mptypes.Arguments$getDeclaredClasses},1);
}
appliedMemberInterface$.getDeclaredClasses.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getDeclaredClasses',Container$MemberClass:'Container$getDeclaredClasses',Type$MemberClass:'Type$getDeclaredClasses'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getDeclaredClasses:{def:{t:Nothing}},Type$getDeclaredClasses:{def:{t:Anything}},Arguments$getDeclaredClasses:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getDeclaredClasses']};};appliedMemberInterface$.getClass=function(name,types,$mptypes) {return coicla$(this,name,types,$mptypes.Container$getClass);}
appliedMemberInterface$.getClass.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getClass',Container$MemberClass:'Container$getClass',Type$MemberClass:'Type$getClass'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getClass:{def:{t:Nothing}},Type$getClass:{def:{t:Anything}},Arguments$getClass:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getClass']};};appliedMemberInterface$.getDeclaredClass=function(name,types,$mptypes) {return coicla$(this,name,types,$mptypes.Container$getDeclaredClass,1);}
appliedMemberInterface$.getDeclaredClass.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$getDeclaredClass',Container$MemberClass:'Container$getDeclaredClass',Type$MemberClass:'Type$getDeclaredClass'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getDeclaredClass:{def:{t:Nothing}},Type$getDeclaredClass:{def:{t:Anything}},Arguments$getDeclaredClass:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getDeclaredClass']};};appliedMemberInterface$.getInterfaces=function(anntypes,$$$mptypes){return coigetifc$(this,anntypes,$$$mptypes);}
appliedMemberInterface$.getInterfaces.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getInterfaces',Type$MemberInterface:'Type$getInterfaces'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getInterfaces:{def:{t:Nothing}},Type$getInterfaces:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getInterfaces']};};appliedMemberInterface$.getDeclaredInterfaces=function(anntypes,$$$mptypes){
return coigetifc$(this,anntypes,{Container$getInterfaces:$$$mptypes.Container$getDeclaredInterfaces,Type$getInterfaces:$$$mptypes.Type$getDeclaredInterfaces},1);
}
appliedMemberInterface$.getDeclaredInterfaces.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getDeclaredInterfaces',Type$MemberInterface:'Type$getDeclaredInterfaces'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getDeclaredInterfaces:{def:{t:Nothing}},Type$getDeclaredInterfaces:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getDeclaredInterfaces']};};appliedMemberInterface$.getInterface=function(name,types,$mptypes) {return coiifc$(this,name,types,$mptypes.Container$getInterface);}
appliedMemberInterface$.getInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getInterface',Type$MemberInterface:'Type$getInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getInterface:{def:{t:Nothing}},Type$getInterface:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getInterface']};};appliedMemberInterface$.getDeclaredInterface=function(name,types,$mptypes) {
return coiifc$(this,name,types,$mptypes.Container$getDeclaredInterface,1);
}
appliedMemberInterface$.getDeclaredInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$getDeclaredInterface',Type$MemberInterface:'Type$getDeclaredInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getDeclaredInterface:{def:{t:Nothing}},Type$getDeclaredInterface:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getDeclaredInterface']};};appliedMemberInterface$.getAttributes=function(a,m){return coigetatr$(this,a,m);}
appliedMemberInterface$.getAttributes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Attribute$meta$model,a:{Set$Attribute:'Set$getAttributes',Container$Attribute:'Container$getAttributes',Get$Attribute:'Get$getAttributes'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getAttributes:{def:{t:Nothing}},Get$getAttributes:{def:{t:Anything}},Set$getAttributes:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getAttributes']};};appliedMemberInterface$.getDeclaredAttributes=function(anntypes,$$$mptypes) {
return coigetatr$(this,anntypes,{Container$getAttributes:$$$mptypes.Container$getDeclaredAttributes,Get$getAttributes:$$$mptypes.Get$getDeclaredAttributes,Set$getAttributes:$$$mptypes.Set$getDeclaredAttributes},1);
}
appliedMemberInterface$.getDeclaredAttributes.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Attribute$meta$model,a:{Set$Attribute:'Set$getDeclaredAttributes',Container$Attribute:'Container$getDeclaredAttributes',Get$Attribute:'Get$getDeclaredAttributes'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getDeclaredAttributes:{def:{t:Nothing}},Get$getDeclaredAttributes:{def:{t:Anything}},Set$getDeclaredAttributes:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getDeclaredAttributes']};};appliedMemberInterface$.getAttribute=function getAttribute(name,m){return coiatr$(this,name,m);}
appliedMemberInterface$.getAttribute.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Attribute$meta$model,a:{Set$Attribute:'Set$getAttribute',Container$Attribute:'Container$getAttribute',Get$Attribute:'Get$getAttribute'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getAttribute:{def:{t:Nothing}},Get$getAttribute:{def:{t:Anything}},Set$getAttribute:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getAttribute']};};appliedMemberInterface$.getDeclaredAttribute=function getDeclaredAttribute(name,$$$mptypes){
return coiatr$(this,name,{Get$getAttribute:$$$mptypes.Get$getDeclaredAttribute,Set$getAttribute:$$$mptypes.Set$getDeclaredAttribute,
Container$getAttribute:$$$mptypes.Container$getDeclaredAttribute},1);
}
appliedMemberInterface$.getDeclaredAttribute.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Attribute$meta$model,a:{Set$Attribute:'Set$getDeclaredAttribute',Container$Attribute:'Container$getDeclaredAttribute',Get$Attribute:'Get$getDeclaredAttribute'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getDeclaredAttribute:{def:{t:Nothing}},Get$getDeclaredAttribute:{def:{t:Anything}},Set$getDeclaredAttribute:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getDeclaredAttribute']};};appliedMemberInterface$.getMethods=function(anntypes,$$$mptypes) {return coigetmtd$(this,anntypes,$$$mptypes);}
appliedMemberInterface$.getMethods.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Method$meta$model,a:{Container$Method:'Container$getMethods',Arguments$Method:'Arguments$getMethods',Type$Method:'Type$getMethods'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getMethods:{def:{t:Nothing}},Type$getMethods:{def:{t:Anything}},Arguments$getMethods:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getMethods']};};appliedMemberInterface$.getDeclaredMethods=function(anntypes,$$$mptypes){
return coigetmtd$(this,anntypes,{Container$getMethods:$$$mptypes.Container$getDeclaredMethods,Type$getMethods:$$$mptypes.Type$getDeclaredMethods,Arguments$getMethods:$$$mptypes.Arguments$getDeclaredMethods},1);
}
appliedMemberInterface$.getDeclaredMethods.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Method$meta$model,a:{Container$Method:'Container$getDeclaredMethods',Arguments$Method:'Arguments$getDeclaredMethods',Type$Method:'Type$getDeclaredMethods'}}}},ps:[{nm:'annotationTypes',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Annotation}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getDeclaredMethods:{def:{t:Nothing}},Type$getDeclaredMethods:{def:{t:Anything}},Arguments$getDeclaredMethods:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getDeclaredMethods']};};appliedMemberInterface$.getMethod=function(name,types,$$$mptypes){
return coimtd$(this,name,types,$$$mptypes);
}
appliedMemberInterface$.getMethod.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Method$meta$model,a:{Container$Method:'Container$getMethod',Arguments$Method:'Arguments$getMethod',Type$Method:'Type$getMethod'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getMethod:{def:{t:Nothing}},Type$getMethod:{def:{t:Anything}},Arguments$getMethod:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getMethod']};};appliedMemberInterface$.getDeclaredMethod=function(name,types,$$$mptypes) {
return coimtd$(this,name,types,{Type$getMethod:$$$mptypes.Type$getDeclaredMethod,Arguments$getMethod:$$$mptypes.Arguments$getDeclaredMethod,
Container$getMethod:$$$mptypes.Container$getDeclaredMethod},1);
}
appliedMemberInterface$.getDeclaredMethod.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Method$meta$model,a:{Container$Method:'Container$getDeclaredMethod',Arguments$Method:'Arguments$getDeclaredMethod',Type$Method:'Type$getDeclaredMethod'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getDeclaredMethod:{def:{t:Nothing}},Type$getDeclaredMethod:{def:{t:Anything}},Arguments$getDeclaredMethod:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getDeclaredMethod']};};appliedMemberInterface$.getDeclaredClassOrInterface=function(name,types,$$$mptypes){
return coigetcoi$(this,name,types,{Kind$getClassOrInterface:$$$mptypes.Kind$getDeclaredClassOrInterface,
Arguments$getClassOrInterface:$$$mptypes.Arguments$getDeclaredClassOrInterface,
Container$getClassOrInterface:$$$mptypes.Container$getDeclaredClassOrInterface},1);
}
appliedMemberInterface$.getDeclaredClassOrInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Member$meta$model,a:{Kind$Member:'Kind$getDeclaredClassOrInterface',Container$Member:'Container$getDeclaredClassOrInterface'}}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}},{nm:'types',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:AppliedMemberInterface$jsint,tp:{Container$getDeclaredClassOrInterface:{def:{t:Nothing}},Kind$getDeclaredClassOrInterface:{sts:[{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}],def:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','getDeclaredClassOrInterface']};};atr$(appliedMemberInterface$,'caseValues',function(){return coicase$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Type$AppliedMemberInterface'}},$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$at','caseValues']};});appliedMemberInterface$.union=function(t,$mpt){
return coiut$(this,t,$mpt.Other$union);
}
appliedMemberInterface$.union.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'u',l:['Type$AppliedMemberInterface','Other$union']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$union'}}}],$cont:AppliedMemberInterface$jsint,tp:{Other$union:{}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','union']};};appliedMemberInterface$.intersection=function(t,$mpt){
return coiit$(this,t,$mpt.Other$intersection);
}
appliedMemberInterface$.intersection.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'i',l:['Type$AppliedMemberInterface','Other$intersection']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$intersection'}}}],$cont:AppliedMemberInterface$jsint,tp:{Other$intersection:{}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','intersection']};};atr$(appliedMemberInterface$,'string',function(){return coistr$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$at','string']};});atr$(appliedMemberInterface$,'hash',function(){return coihash$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$at','hash']};});appliedMemberInterface$.equals=function(o){
var eq=is$(o,{t:AppliedMemberInterface$jsint}) && (o.tipo$2||o.tipo)==this.tipo;
if (this.$bound)eq=eq && o.$bound && o.$bound.equals(this.$bound);else eq=eq && o.$bound===undefined;
return eq && this.typeArgumentWithVariances.equals(o.typeArgumentWithVariances);
}
appliedMemberInterface$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedMemberInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMemberInterface','$m','equals']};};})(AppliedMemberInterface$jsint.$$.prototype);}
return AppliedMemberInterface$jsint;}
ex$.$init$AppliedMemberInterface$jsint=$init$AppliedMemberInterface$jsint;$init$AppliedMemberInterface$jsint();function AppliedMethod$jsint(tipo,typeArgs,$$targs$$,$$appliedMethod){
if (!$$targs$$.Type$AppliedMethod)$$targs$$.Type$AppliedMethod=$$targs$$.Type$Method;
if (!$$targs$$.Arguments$AppliedMethod)$$targs$$.Arguments$AppliedMethod=$$targs$$.Arguments$Method;
if (!$$targs$$.Container$AppliedMethod)$$targs$$.Container$AppliedMethod=$$targs$$.Container$Method;
$init$AppliedMethod$jsint();
var mm = getrtmm$$(tipo);
if (mm.tp) {
if (typeArgs===undefined || typeArgs.length<1) {
throw TypeApplicationException$meta$model("Missing type arguments in call to FunctionDeclaration.apply");
}
var _ta={}; var i=0;
for (var tp in mm.tp) {
if (typeArgs[i]===undefined)
throw TypeApplicationException$meta$model("Missing type argument for "+tp);
var _tp = mm.tp[tp];
var _t = typeArgs[i].tipo;
_ta[tp]={t:_t};
if (_tp.sts) {
//Must satisty all specified types
if (!extendsType(_ta[tp],{t:'i',l:_tp.sts})){
throw TypeApplicationException$meta$model("Type argument for " + mm.d[mm.d.length-1] + "." + tp.substring(0,tp.indexOf('$')) + " violates type parameter constraints (satisfied)");
}
} else if (_tp.of) {
//Must be one of these
if (!extendsType(_ta[tp],{t:'u',l:_tp.of})){
throw TypeApplicationException$meta$model("Type argument for " + mm.d[mm.d.length-1] + "." + tp.substring(0,tp.indexOf('$')) + " violates type parameter constraints (enumerated)");
}
}
i++;
}
}
if ($$appliedMethod===undefined){
$$appliedMethod=function AppliedMtd1(x){
return AppliedFunction$jsint(tipo,{Type$Function:$$targs$$.Type$Method,Arguments$Function:$$targs$$.Arguments$Method,
Container$Function:$$targs$$.Container$Method},x,typeArgs);
}
var dummy=new AppliedMethod$jsint.$$;
$$appliedMethod.getT$all=function(){return dummy.getT$all();};
$$appliedMethod.getT$name=function(){return dummy.getT$name();};
$$appliedMethod.$$=AppliedMethod$jsint.$$;
}
if (_ta)$$appliedMethod.$targs=_ta;
Method$meta$model($$appliedMethod.$$targs$$===undefined?$$targs$$:{Arguments$Method:$$appliedMethod.$$targs$$.Arguments$Method,
Type$Method:$$appliedMethod.$$targs$$.Type$Method,Container$Method:$$appliedMethod.$$targs$$.Container$Method},$$appliedMethod);
set_type_args($$appliedMethod,$$targs$$,AppliedMethod$jsint);
$$appliedMethod.tipo=tipo;
var _proto=AppliedMethod$jsint.$$.prototype;
atr$($$appliedMethod,'declaration',function(){
return _proto.$prop$getDeclaration.get.call($$appliedMethod);
},undefined,_proto.$prop$getDeclaration.$crtmm$);
atr$($$appliedMethod,'type',function(){
return _proto.$prop$getType.get.call($$appliedMethod);
},undefined,_proto.$prop$getType.$crtmm$);
atr$($$appliedMethod,'typeArguments',function(){
return funtypearg$($$appliedMethod);
},undefined,_proto.$prop$getTypeArguments.$crtmm$);
atr$($$appliedMethod,'typeArgumentList',function(){
return funtypeargl$($$appliedMethod);
},undefined,_proto.$prop$getTypeArgumentList.$crtmm$);
atr$($$appliedMethod,'typeArgumentWithVariances',function(){
return funtypeargv$($$appliedMethod);
},undefined,_proto.$prop$getTypeArgumentWithVariances.$crtmm$);
atr$($$appliedMethod,'typeArgumentWithVarianceList',function(){
return funtypeargvl$($$appliedMethod);
},undefined,_proto.$prop$getTypeArgumentWithVarianceList.$crtmm$);
atr$($$appliedMethod,'parameterTypes',function(){
return funparamtypes($$appliedMethod);
},undefined,_proto.$prop$getParameterTypes.$crtmm$);
$$appliedMethod.equals=_proto.equals;
$$appliedMethod.$_bind=_proto.$_bind;
atr$($$appliedMethod,'string',function(){
return funmodstr$($$appliedMethod);
},undefined,_proto.$prop$getString.$crtmm$);
atr$($$appliedMethod,'hash',function(){
return _proto.$prop$getHash.get.call($$appliedMethod);
},undefined,_proto.$prop$getHash.$crtmm$);
atr$($$appliedMethod,'declaringType',function(){
return _proto.$prop$getDeclaringType.get.call($$appliedMethod);
},undefined,_proto.$prop$getDeclaringType.$crtmm$);
atr$($$appliedMethod,'container',function(){
return _proto.$prop$getContainer.get.call($$appliedMethod);
},undefined,_proto.$prop$getContainer.$crtmm$);
return $$appliedMethod;
}
AppliedMethod$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Container$AppliedMethod:{dv:'in'},Type$AppliedMethod:{dv:'out',def:{t:Anything}},Arguments$AppliedMethod:{dv:'in',sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},sts:[{t:Method$meta$model,a:{Container$Method:'Container$AppliedMethod',Arguments$Method:'Arguments$AppliedMethod',Type$Method:'Type$AppliedMethod'}}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod']};};
ex$.AppliedMethod$jsint=AppliedMethod$jsint;function $init$AppliedMethod$jsint(){if(AppliedMethod$jsint.$$===undefined){initTypeProto(AppliedMethod$jsint,'ceylon.language.jsint::AppliedMethod',Basic,$init$Method$meta$model());
(function(appliedMethod$){atr$(appliedMethod$,'parameterTypes',function(){return funparamtypes(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$at','parameterTypes']};});appliedMethod$.$_bind=function(o){
var mm=getrtmm$$(this.tipo);
if (!is$(o,{t:mm.$cont}))throw IncompatibleTypeException$meta$model("Cannot bind " + this.string + " to "+o);
return this(o);
}
appliedMethod$.$_bind.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Function$meta$model,a:{Arguments$Function:'Arguments$AppliedMethod',Type$Function:'Type$AppliedMethod'}},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$m','bind']};};atr$(appliedMethod$,'declaration',function(){var mm = getrtmm$$(this.tipo);
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
var _pkg = modules$meta().find(_m['$mod-name'],_m['$mod-version']).findPackage(mm.d[0]);
return OpenFunction$jsint(_pkg, this.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:FunctionDeclaration$meta$declaration},$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$at','declaration']};});atr$(appliedMethod$,'type',function(){var mm=getrtmm$$(this.tipo);
return typeLiteral$meta({Type$typeLiteral:restype$(this.$$targs$$.Container$Method,this.$$targs$$.Type$Method||mm.$t)});
},undefined,function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:'Type$AppliedMethod'}},$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$at','type']};});atr$(appliedMethod$,'declaringType',function(){var _cont=getrtmm$$(this.tipo).$cont;
var mmc=getrtmm$$(_cont);
var mod=get_model(mmc);
return typeLiteral$meta({Type$typeLiteral:this.$$targs$$.Container$AppliedMethod});
},undefined,function(){return{mod:$CCMM$,$t:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}},$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$at','declaringType']};});atr$(appliedMethod$,'container',function(){if (this.cont$===undefined) {
if (this.toplevel || getrtmm$$(this.tipo).$cont===0){
this.cont$=this.containingPackage;
} else if (this.$parent===undefined) {
this.$parent=typeLiteral$meta({Type$typeLiteral:{t:getrtmm$$(this.tipo).$cont}});
this.cont$=this.$parent;
}
}
return this.cont$;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:{t:Anything}}}]},$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$at','container']};});atr$(appliedMethod$,'typeArguments',function(){return funtypearg$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$at','typeArguments']};});atr$(appliedMethod$,'typeArgumentList',function(){return funtypeargl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}},$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$at','typeArgumentList']};});atr$(appliedMethod$,'typeArgumentWithVariances',function(){return funtypeargv$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:TypeArgument$meta$model()}},$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$at','typeArgumentWithVariances']};});atr$(appliedMethod$,'typeArgumentWithVarianceList',function(){return funtypeargvl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:TypeArgument$meta$model()}},$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$at','typeArgumentWithVarianceList']};});atr$(appliedMethod$,'string',function(){return funmodstr$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$at','string']};});atr$(appliedMethod$,'hash',function(){return funmodstr$(this).hash;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$at','hash']};});appliedMethod$.equals=function(o){
return is$(o,{t:AppliedMethod$jsint}) && o.tipo===this.tipo && o.typeArguments.equals(this.typeArguments);
}
appliedMethod$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedMethod$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedMethod','$m','equals']};};})(AppliedMethod$jsint.$$.prototype);}
return AppliedMethod$jsint;}
ex$.$init$AppliedMethod$jsint=$init$AppliedMethod$jsint;$init$AppliedMethod$jsint();function AppliedUnionType$jsint(tipo,caseTypes,$$targs$$,appliedUnionType$){$init$AppliedUnionType$jsint();
if(appliedUnionType$===undefined)appliedUnionType$=new AppliedUnionType$jsint.$$;
set_type_args(appliedUnionType$,$$targs$$);
appliedUnionType$.tipo_=tipo;appliedUnionType$.$1t8_=caseTypes;UnionType$meta$model({Union$UnionType:$$targs$$.Union$AppliedUnionType},appliedUnionType$);return appliedUnionType$;}
AppliedUnionType$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'tipo',mt:'prm',$t:{t:Anything},pa:1},{nm:'caseTypes',mt:'prm',$t:{t:List,a:{Element$List:{t:Type$meta$model,a:{Target$Type:'Union$AppliedUnionType'}}}},pa:3}],tp:{Union$AppliedUnionType:{dv:'out',def:{t:Anything}}},sts:[{t:UnionType$meta$model,a:{Union$UnionType:'Union$AppliedUnionType'}}],an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedUnionType']};};
ex$.AppliedUnionType$jsint=AppliedUnionType$jsint;function $init$AppliedUnionType$jsint(){if(AppliedUnionType$jsint.$$===undefined){initTypeProto(AppliedUnionType$jsint,'ceylon.language.jsint::AppliedUnionType',Basic,$init$UnionType$meta$model());
(function(appliedUnionType$){atr$(appliedUnionType$,'tipo',function(){return this.tipo_;},undefined,function(){return{mod:$CCMM$,$t:{t:Anything},$cont:AppliedUnionType$jsint,pa:1,d:['ceylon.language.jsint','AppliedUnionType','$at','tipo']};});atr$(appliedUnionType$,'caseTypes',function(){return this.$1t8_;},undefined,function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:Type$meta$model,a:{Target$Type:'Union$AppliedUnionType'}}}},$cont:AppliedUnionType$jsint,pa:3,d:['ceylon.language.jsint','AppliedUnionType','$at','caseTypes']};});appliedUnionType$.typeOf=function typeOf(instance$20){
var tipos=[];
for (var i=0; i < this.caseTypes.size;i++) {
var _t = this.caseTypes.$_get(i);
if (_t.tipo) {
_t={t:_t.tipo};
} else if (_t.t===undefined) {
_t={t:_t};
}
tipos.push(_t);
}
return is$(instance$20,{t:'u',l:tipos});
}
appliedUnionType$.typeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'instance',mt:'prm',$t:{t:Anything}}],$cont:AppliedUnionType$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedUnionType','$m','typeOf']};};appliedUnionType$.supertypeOf=function(t){
for (var i=0; i<this.caseTypes.size; i++) {
if (this.caseTypes.$_get(i).supertypeOf(t))return true;
}
return false;
}
appliedUnionType$.supertypeOf.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:AppliedUnionType$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedUnionType','$m','supertypeOf']};};appliedUnionType$.exactly=function exactly(type$22){
if (is$(type$25, {t:AppliedUnionType$jsint})) {
for (var i=0; i<this.caseTypes.size;i++) {
var myt = this.caseTypes.$_get(i);
var was=false;
for (var j=0; j<type$25.caseTypes.size;j++) {
was |= myt.exactly(type$25.caseTypes.$_get(j));
}
if (!was)return false;
}
//Now the other way around
for (var i=0; i<type$25.caseTypes.size;i++) {
var myt = type$25.caseTypes.$_get(i);
var was=false;
for (var j=0; j<this.caseTypes.size;j++) {
was |= myt.exactly(this.caseTypes.$_get(j));
}
if (!was)return false;
}
return true;
}
return false;
}
appliedUnionType$.exactly.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'type',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}],$cont:AppliedUnionType$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedUnionType','$m','exactly']};};atr$(appliedUnionType$,'string',function(){var qn="";
var first=true;
for (var i=0;i<this.caseTypes.size;i++) {
if (first)first=false;else qn+="|";
qn+=this.caseTypes.$_get(i).string;
}
return qn;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedUnionType$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedUnionType','$at','string']};});atr$(appliedUnionType$,'hash',function(){var h=this.caseTypes.size;
for (var i=0; i<this.caseTypes.size;i++) {
h+=this.caseTypes.$_get(i).hash;
}
return h;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:AppliedUnionType$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedUnionType','$at','hash']};});appliedUnionType$.equals=function(u) {
if(is$(u,{t:AppliedUnionType$jsint})) {
var mine=this.caseTypes;
var his=u.caseTypes;
if (mine.size==his.size) {
for (var i=0;i<mine.size;i++) {
if (!his.contains(mine.$_get(i)))return false;
}
return true;
}
}
return false;
}
appliedUnionType$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedUnionType$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedUnionType','$m','equals']};};appliedUnionType$.union=function(t,$mpt){
if (this.supertypeOf(t))return this;
var _t={t:'u',l:this.tipo.l.slice(0)};
_t.l.push(t.$$targs$$.Target$Type);
return AppliedUnionType$jsint(_t,this.caseTypes.sequence().withTrailing(t,{Other$withTrailing:t.$$targs$$.Target$Type}),
{Union$AppliedUnionType:_t});
}
appliedUnionType$.union.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'u',l:['Union$AppliedUnionType','Other$union']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$union'}}}],$cont:AppliedUnionType$jsint,tp:{Other$union:{}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedUnionType','$m','union']};};appliedUnionType$.intersection=function(t,$mpt){
var it={t:'i',l:[this.tipo,t.$$targs$$.Target$Type]};
return AppliedIntersectionType$jsint(it,$arr$([this,t],it,1),{Union$AppliedIntersectionType:it});
}
appliedUnionType$.intersection.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:{t:'i',l:['Union$AppliedUnionType','Other$intersection']}}},ps:[{nm:'other',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:'Other$intersection'}}}],$cont:AppliedUnionType$jsint,tp:{Other$intersection:{}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedUnionType','$m','intersection']};};})(AppliedUnionType$jsint.$$.prototype);}
return AppliedUnionType$jsint;}
ex$.$init$AppliedUnionType$jsint=$init$AppliedUnionType$jsint;$init$AppliedUnionType$jsint();function AppliedValue$jsint(obj,attr,$$targs$$,$$appliedValue){
if (attr===undefined)throw Exception("Value reference not found. Metamodel doesn't work with modules compiled in lexical scope style.");
if (!$$targs$$.Get$AppliedValue)$$targs$$.Get$AppliedValue=$$targs$$.Get$Value;
if (!$$targs$$.Set$AppliedValue)$$targs$$.Set$AppliedValue=$$targs$$.Set$Value;
if (!$$targs$$.Container$AppliedValue && $$targs$$.Container$Value)$$targs$$.Container$AppliedValue=$$targs$$.Container$Value;
var mm = getrtmm$$(attr);
$init$AppliedValue$jsint();
if ($$appliedValue===undefined){
if (obj||mm.$cont===undefined)$$appliedValue=new AppliedValue$jsint.$$;
else {
$$appliedValue=function AppliedVal1(x){return AppliedValue$jsint(x,attr,$$targs$$);};
$$appliedValue.$$=AppliedValue$jsint.$$;
var dummy=new AppliedValue$jsint.$$;
$$appliedValue.getT$all=function(){return dummy.getT$all();};
$$appliedValue.getT$name=function(){return dummy.getT$name();};
atr$($$appliedValue,'string',function(){
var qn;
if ($$targs$$ && $$targs$$.Container$AppliedValue) {
qn = typeLiteral$meta({Type$typeLiteral:$$targs$$.Container$AppliedValue}).string + "." + mm.d[mm.d.length-1];
} else if (mm.$cont) {
qn = typeLiteral$meta({Type$typeLiteral:{t:mm.$cont}}).string + "." + mm.d[mm.d.length-1];
} else {
qn=qname$(mm);
}
return qn;
},undefined,dummy.$prop$getString.$crtmm$);
}
}
Value$meta$model({Get$Value:$$targs$$.Get$AppliedValue,
Set$Value:$$targs$$.Set$AppliedValue},$$appliedValue);
if($$targs$$.Container$AppliedValue)Attribute$meta$model({Get$Attribute:$$targs$$.Get$AppliedValue,
Set$Attribute:$$targs$$.Set$AppliedValue,Container$Attribute:$$targs$$.Container$AppliedValue},$$appliedValue);//TODO checar si no es if Container$Attribute
set_type_args($$appliedValue,$$targs$$,AppliedValue$jsint);
$$appliedValue.obj=obj;
$$appliedValue.tipo=attr;
return $$appliedValue;
}
AppliedValue$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Get$AppliedValue:{dv:'out',def:{t:Anything}},Set$AppliedValue:{dv:'in',def:{t:Nothing}}},sts:[{t:Value$meta$model,a:{Get$Value:'Get$AppliedValue',Set$Value:'Set$AppliedValue'}}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValue']};};
ex$.AppliedValue$jsint=AppliedValue$jsint;function $init$AppliedValue$jsint(){if(AppliedValue$jsint.$$===undefined){initTypeProto(AppliedValue$jsint,'ceylon.language.jsint::AppliedValue',Basic,$init$Value$meta$model());
(function(appliedValue$){appliedValue$.$_get=function(){
if (this.obj) {
var mm=this.tipo.$crtmm$;
return (mm&&mm.d&&this.obj[mm.d[mm.d.length-1]])||this.tipo.get.call(this.obj);
}
//this.tipo() is for anonymous classes that are treated as values
return this.tipo.get?this.tipo.get():this.tipo();
}
appliedValue$.$_get.$crtmm$=function(){return{mod:$CCMM$,$t:'Get$AppliedValue',ps:[],$cont:AppliedValue$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValue','$m','get']};};appliedValue$.set=function(newValue$26){
if (!this.tipo.set)throw MutationException$meta$model("Value is not writable");
return this.obj?this.tipo.set.call(this.obj,newValue$26):this.tipo.set(newValue$26);
}
appliedValue$.set.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'newValue',mt:'prm',$t:'Set$AppliedValue'}],$cont:AppliedValue$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValue','$m','set']};};appliedValue$.setIfAssignable=function(v) {
var mm = this.tipo.$crtmm$;
if (!is$(v,mm.$t))throw IncompatibleTypeException$meta$model("The specified value has the wrong type");
var mdl=get_model(mm);
if (!mdl || (mdl.pa & 1024)===0)throw MutationException$meta$model("Attempt to modify a value that is not variable");
this.obj?this.tipo.set.call(this.obj,v):this.tipo.set(v);
}
appliedValue$.setIfAssignable.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'newValue',mt:'prm',$t:{t:Anything}}],$cont:AppliedValue$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValue','$m','setIfAssignable']};};atr$(appliedValue$,'declaration',function(){var $$av=this;
var mm = $$av.tipo.$crtmm$;
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
var _pkg = modules$meta().find(_m['$mod-name'],_m['$mod-version']).findPackage(mm.d[0]);
var mdl = get_model(mm);
return OpenValue$jsint(_pkg, $$av.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:ValueDeclaration$meta$declaration},$cont:AppliedValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValue','$at','declaration']};});atr$(appliedValue$,'type',function(){var t = getrtmm$$(this.tipo);
return typeLiteral$meta({Type$typeLiteral:t.$t});
},undefined,function(){return{mod:$CCMM$,$t:{t:Type$meta$model,a:{Target$Type:'Get$AppliedValue'}},$cont:AppliedValue$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValue','$at','type']};});atr$(appliedValue$,'container',function(){if (this.obj) {
var mm=getrtmm$$(this.tipo);
if (mm.$cont)return type$meta(this.obj,{Type$type:{t:mm.$cont}});
}
if (this.$$targs$$.Container$Value) {
return typeLiteral$meta({Type$typeLiteral:this.$$targs$$.Container$Value});
} else if (this.$$targs$$.Container$Attribute) {
return typeLiteral$meta({Type$typeLiteral:this.$$targs$$.Container$Attribute});
}
return null;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Type$meta$model,a:{Target$Type:{t:Anything}}}]},$cont:AppliedValue$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValue','$at','container']};});atr$(appliedValue$,'string',function(){return qname$(this.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedValue$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValue','$at','string']};});atr$(appliedValue$,'hash',function(){return this.string.hash+(this.obj?this.obj.hash:0);
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:AppliedValue$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValue','$at','hash']};});appliedValue$.equals=function(o) {
if (is$(o,{t:AppliedValue$jsint}) && this.tipo===o.tipo) {
if (this.obj)return this.obj.equals(o.obj);
if (this.container)return this.container.equals(o.container);
return true;
}
return false;
}
appliedValue$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedValue$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValue','$m','equals']};};})(AppliedValue$jsint.$$.prototype);}
return AppliedValue$jsint;}
ex$.$init$AppliedValue$jsint=$init$AppliedValue$jsint;$init$AppliedValue$jsint();function AppliedValueConstructor$jsint(tipo,$$targs$$,that) {
if (!$$targs$$.Type$AppliedValueConstructor)$$targs$$.Type$AppliedValueConstructor=$$targs$$.Type$ValueConstructor;
$init$AppliedValueConstructor$jsint();
if (that===undefined)that=new AppliedValueConstructor$jsint.$$;
set_type_args(that,$$targs$$);
ValueConstructor$meta$model({Type$ValueConstructor:$$targs$$.Type$AppliedValueConstructor},that);
that.tipo=tipo;
return that;
}
AppliedValueConstructor$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[],tp:{Type$AppliedValueConstructor:{dv:'out',def:{t:$_Object}}},sts:[{t:ValueConstructor$meta$model,a:{Type$ValueConstructor:'Type$AppliedValueConstructor'}}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValueConstructor']};};
ex$.AppliedValueConstructor$jsint=AppliedValueConstructor$jsint;function $init$AppliedValueConstructor$jsint(){if(AppliedValueConstructor$jsint.$$===undefined){initTypeProto(AppliedValueConstructor$jsint,'ceylon.language.jsint::AppliedValueConstructor',Basic,$init$ValueConstructor$meta$model());
(function(appliedValueConstructor$){appliedValueConstructor$.$_get=function $_get(){
return this.tipo();
}
appliedValueConstructor$.$_get.$crtmm$=function(){return{mod:$CCMM$,$t:'Type$AppliedValueConstructor',ps:[],$cont:AppliedValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValueConstructor','$m','get']};};appliedValueConstructor$.set=function $_set(x){
throw MutationException("ValueConstructor is not mutable");
}
appliedValueConstructor$.set.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'newValue',mt:'prm',$t:{t:Nothing}}],$cont:AppliedValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValueConstructor','$m','set']};};appliedValueConstructor$.setIfAssignable=function setIfAssignable(x){
throw MutationException("ValueConstructor is not mutable");
}
appliedValueConstructor$.setIfAssignable.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'newValue',mt:'prm',$t:{t:Anything}}],$cont:AppliedValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValueConstructor','$m','setIfAssignable']};};atr$(appliedValueConstructor$,'declaration',function(){if (this.dec$===undefined) {
var mm=getrtmm$$(this.tipo);
var m2=typeof(mm.mod)==='function'?mm.mod():mm.mod;
this.dec$=OpenValueConstructor$jsint(fmp$(m2['$mod-name'],m2['$mod-version'],mm.d[0]),this.tipo);
}
return this.dec$;
},undefined,function(){return{mod:$CCMM$,$t:{t:ValueConstructorDeclaration$meta$declaration},$cont:AppliedValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValueConstructor','$at','declaration']};});atr$(appliedValueConstructor$,'type',function(){if (this.cont$===undefined) {
var cc=getrtmm$$(this.tipo).$cont;
var mm=getrtmm$$(cc);
var _t={t:cc};
if (this.$targs)_t.a=this.$targs;
this.cont$=AppliedClass$jsint(cc,{Type$AppliedClass:_t,Arguments$AppliedClass:{t:Nothing}},undefined,this.$targs);
}
return this.cont$;
},undefined,function(){return{mod:$CCMM$,$t:{t:Class$meta$model,a:{Type$Class:'Type$AppliedValueConstructor',Arguments$Class:{t:Nothing}}},$cont:AppliedValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValueConstructor','$at','type']};});atr$(appliedValueConstructor$,'container',function(){return null;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Class$meta$model,a:{Type$Class:'Type$AppliedValueConstructor',Arguments$Class:{t:Nothing}}}]},$cont:AppliedValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValueConstructor','$at','container']};});appliedValueConstructor$.equals=function equals(o) {
if (is$(o,{t:AppliedValueConstructor$jsint})) {
return o.tipo===this.tipo;
}
return false;
}
appliedValueConstructor$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:AppliedValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValueConstructor','$m','equals']};};atr$(appliedValueConstructor$,'string',function(){return qname$(this.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:AppliedValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','AppliedValueConstructor','$at','string']};});})(AppliedValueConstructor$jsint.$$.prototype);}
return AppliedValueConstructor$jsint;}
ex$.$init$AppliedValueConstructor$jsint=$init$AppliedValueConstructor$jsint;$init$AppliedValueConstructor$jsint();function FreeClass$jsint(declaration,freeClass$){$init$FreeClass$jsint();
if(freeClass$===undefined)freeClass$=new FreeClass$jsint.$$;
freeClass$.$1tk_=declaration;OpenClassType$meta$declaration(freeClass$);return freeClass$;}
FreeClass$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'declaration',mt:'prm',$t:{t:ClassDeclaration$meta$declaration},pa:3}],sts:[{t:OpenClassType$meta$declaration}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeClass']};};
ex$.FreeClass$jsint=FreeClass$jsint;function $init$FreeClass$jsint(){if(FreeClass$jsint.$$===undefined){initTypeProto(FreeClass$jsint,'ceylon.language.jsint::FreeClass',Basic,$init$OpenClassType$meta$declaration());
(function(freeClass$){atr$(freeClass$,'declaration',function(){return this.$1tk_;},undefined,function(){return{mod:$CCMM$,$t:{t:ClassDeclaration$meta$declaration},$cont:FreeClass$jsint,pa:3,d:['ceylon.language.jsint','FreeClass','$at','declaration']};});atr$(freeClass$,'extendedType',function(){return this.declaration.extendedType;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:OpenClassType$meta$declaration}]},$cont:FreeClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeClass','$at','extendedType']};});atr$(freeClass$,'satisfiedTypes',function(){return this.declaration.satisfiedTypes;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenInterfaceType$meta$declaration}}},$cont:FreeClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeClass','$at','satisfiedTypes']};});atr$(freeClass$,'typeArguments',function(){return ocoitarg$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:OpenType$meta$declaration}}},$cont:FreeClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeClass','$at','typeArguments']};});atr$(freeClass$,'typeArgumentList',function(){return ocoitargl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:FreeClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeClass','$at','typeArgumentList']};});atr$(freeClass$,'typeArgumentWithVariances',function(){return ocoitargv$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:OpenTypeArgument$meta$declaration()}},$cont:FreeClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeClass','$at','typeArgumentWithVariances']};});atr$(freeClass$,'typeArgumentWithVarianceList',function(){return ocoitargvl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:OpenTypeArgument$meta$declaration()}},$cont:FreeClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeClass','$at','typeArgumentWithVarianceList']};});freeClass$.equals=function(other) {
return is$(other,{t:FreeClass$jsint}) &&
other.declaration.equals(this.declaration) &&
this.typeArgumentWithVariances.equals(other.typeArgumentWithVariances);
}
freeClass$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:FreeClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeClass','$m','equals']};};atr$(freeClass$,'string',function(){return ocoistr$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:FreeClass$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeClass','$at','string']};});atr$(freeClass$,'hash',function(){var freeClass$=this;return freeClass$.string.hash},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:FreeClass$jsint,pa:3,d:['ceylon.language.jsint','FreeClass','$at','hash']};});})(FreeClass$jsint.$$.prototype);}
return FreeClass$jsint;}
ex$.$init$FreeClass$jsint=$init$FreeClass$jsint;$init$FreeClass$jsint();function FreeInterface$jsint(declaration,freeInterface$){$init$FreeInterface$jsint();
if(freeInterface$===undefined)freeInterface$=new FreeInterface$jsint.$$;
freeInterface$.$1tt_=declaration;OpenInterfaceType$meta$declaration(freeInterface$);return freeInterface$;}
FreeInterface$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'declaration',mt:'prm',$t:{t:InterfaceDeclaration$meta$declaration},pa:3}],sts:[{t:OpenInterfaceType$meta$declaration}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeInterface']};};
ex$.FreeInterface$jsint=FreeInterface$jsint;function $init$FreeInterface$jsint(){if(FreeInterface$jsint.$$===undefined){initTypeProto(FreeInterface$jsint,'ceylon.language.jsint::FreeInterface',Basic,$init$OpenInterfaceType$meta$declaration());
(function(freeInterface$){atr$(freeInterface$,'declaration',function(){return this.$1tt_;},undefined,function(){return{mod:$CCMM$,$t:{t:InterfaceDeclaration$meta$declaration},$cont:FreeInterface$jsint,pa:3,d:['ceylon.language.jsint','FreeInterface','$at','declaration']};});atr$(freeInterface$,'extendedType',function(){return this.declaration.extendedType;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:OpenClassType$meta$declaration}]},$cont:FreeInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeInterface','$at','extendedType']};});atr$(freeInterface$,'satisfiedTypes',function(){return this.declaration.satisfiedTypes;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenInterfaceType$meta$declaration}}},$cont:FreeInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeInterface','$at','satisfiedTypes']};});atr$(freeInterface$,'typeArguments',function(){return ocoitarg$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:{t:OpenType$meta$declaration}}},$cont:FreeInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeInterface','$at','typeArguments']};});atr$(freeInterface$,'typeArgumentList',function(){return ocoitargl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:FreeInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeInterface','$at','typeArgumentList']};});atr$(freeInterface$,'typeArgumentWithVariances',function(){return ocoitargv$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:OpenTypeArgument$meta$declaration()}},$cont:FreeInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeInterface','$at','typeArgumentWithVariances']};});atr$(freeInterface$,'typeArgumentWithVarianceList',function(){return ocoitargvl$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:OpenTypeArgument$meta$declaration()}},$cont:FreeInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeInterface','$at','typeArgumentWithVarianceList']};});freeInterface$.equals=function(other) {
return is$(other,{t:FreeInterface$jsint}) &&
other.declaration.equals(this.declaration) &&
this.typeArgumentWithVariances.equals(other.typeArgumentWithVariances);
}
freeInterface$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:FreeInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeInterface','$m','equals']};};atr$(freeInterface$,'string',function(){return ocoistr$(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:FreeInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeInterface','$at','string']};});atr$(freeInterface$,'hash',function(){var freeInterface$=this;return freeInterface$.string.hash},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:FreeInterface$jsint,pa:3,d:['ceylon.language.jsint','FreeInterface','$at','hash']};});})(FreeInterface$jsint.$$.prototype);}
return FreeInterface$jsint;}
ex$.$init$FreeInterface$jsint=$init$FreeInterface$jsint;$init$FreeInterface$jsint();function FreeIntersection$jsint(satisfiedTypes,freeIntersection$){$init$FreeIntersection$jsint();
if(freeIntersection$===undefined)freeIntersection$=new FreeIntersection$jsint.$$;
freeIntersection$.$1u2_=satisfiedTypes;OpenIntersection$meta$declaration(freeIntersection$);return freeIntersection$;}
FreeIntersection$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'satisfiedTypes',mt:'prm',$t:{t:List,a:{Element$List:{t:OpenType$meta$declaration}}},pa:3}],sts:[{t:OpenIntersection$meta$declaration}],an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeIntersection']};};
ex$.FreeIntersection$jsint=FreeIntersection$jsint;function $init$FreeIntersection$jsint(){if(FreeIntersection$jsint.$$===undefined){initTypeProto(FreeIntersection$jsint,'ceylon.language.jsint::FreeIntersection',Basic,$init$OpenIntersection$meta$declaration());
(function(freeIntersection$){atr$(freeIntersection$,'satisfiedTypes',function(){return this.$1u2_;},undefined,function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:OpenType$meta$declaration}}},$cont:FreeIntersection$jsint,pa:3,d:['ceylon.language.jsint','FreeIntersection','$at','satisfiedTypes']};});freeIntersection$.equals=function(u) {
if(is$(u,{t:FreeIntersection$jsint})) {
var mine=this.satisfiedTypes;
var his=u.satisfiedTypes;
if (mine.size==his.size) {
for (var i=0;i<mine.size;i++) {
if (!his.contains(mine.$_get(i))){
return false;
}
}
return true;
}
}
return false;
}
freeIntersection$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:FreeIntersection$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeIntersection','$m','equals']};};atr$(freeIntersection$,'string',function(){var s="";
var first=true;
for (var i=0;i<this.satisfiedTypes.size;i++) {
if (first)first=false;else s+="&";
s+=this.satisfiedTypes.$_get(i).string;
}
return s;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:FreeIntersection$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeIntersection','$at','string']};});atr$(freeIntersection$,'hash',function(){var s=this.satisfiedTypes.size;
for (var i=0;i<this.satisfiedTypes.size;i++) {
s+=this.satisfiedTypes.$_get(i).string.hash;
}
return s;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:FreeIntersection$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeIntersection','$at','hash']};});})(FreeIntersection$jsint.$$.prototype);}
return FreeIntersection$jsint;}
ex$.$init$FreeIntersection$jsint=$init$FreeIntersection$jsint;$init$FreeIntersection$jsint();function FreeUnion$jsint(caseTypes,freeUnion$){$init$FreeUnion$jsint();
if(freeUnion$===undefined)freeUnion$=new FreeUnion$jsint.$$;
freeUnion$.$1u5_=caseTypes;OpenUnion$meta$declaration(freeUnion$);return freeUnion$;}
FreeUnion$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'caseTypes',mt:'prm',$t:{t:List,a:{Element$List:{t:OpenType$meta$declaration}}},pa:3}],sts:[{t:OpenUnion$meta$declaration}],an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeUnion']};};
ex$.FreeUnion$jsint=FreeUnion$jsint;function $init$FreeUnion$jsint(){if(FreeUnion$jsint.$$===undefined){initTypeProto(FreeUnion$jsint,'ceylon.language.jsint::FreeUnion',Basic,$init$OpenUnion$meta$declaration());
(function(freeUnion$){atr$(freeUnion$,'caseTypes',function(){return this.$1u5_;},undefined,function(){return{mod:$CCMM$,$t:{t:List,a:{Element$List:{t:OpenType$meta$declaration}}},$cont:FreeUnion$jsint,pa:3,d:['ceylon.language.jsint','FreeUnion','$at','caseTypes']};});freeUnion$.equals=function(u) {
if(is$(u,{t:FreeUnion$jsint})) {
var mine=this.caseTypes;
var his=u.caseTypes;
if (mine.size==his.size) {
for (var i=0;i<mine.size;i++) {
if (!his.contains(mine.$_get(i)))return false;
}
return true;
}
}
return false;
}
freeUnion$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:FreeUnion$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeUnion','$m','equals']};};atr$(freeUnion$,'string',function(){var s="";
var first=true;
for (var i=0;i<this.caseTypes.size;i++) {
if (first)first=false;else s+="|";
s+=this.caseTypes.$_get(i).string;
}
return s;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:FreeUnion$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeUnion','$at','string']};});atr$(freeUnion$,'hash',function(){var s=this.caseTypes.size;
for (var i=0;i<this.caseTypes.size;i++) {
s+=this.caseTypes.$_get(i).string.hash;
}
return s;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:FreeUnion$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','FreeUnion','$at','hash']};});})(FreeUnion$jsint.$$.prototype);}
return FreeUnion$jsint;}
ex$.$init$FreeUnion$jsint=$init$FreeUnion$jsint;$init$FreeUnion$jsint();function Importa$jsint(name,version,_cont,_anns,importa$){$init$Importa$jsint();
if(importa$===undefined)importa$=new Importa$jsint.$$;
importa$.$1u8_=name;importa$.$1u9_=version;importa$._cont_=_cont;importa$._anns_=_anns;Import$meta$declaration(importa$);return importa$;}
Importa$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'name',mt:'prm',$t:{t:$_String},pa:3},{nm:'version',mt:'prm',$t:{t:$_String},pa:3},{nm:'_cont',mt:'prm',$t:{t:Module$meta$declaration},pa:1},{nm:'_anns',mt:'prm',$t:{t:Anything},pa:1}],sts:[{t:Import$meta$declaration}],an:function(){return[$_native()];},d:['ceylon.language.jsint','Importa']};};
ex$.Importa$jsint=Importa$jsint;function $init$Importa$jsint(){if(Importa$jsint.$$===undefined){initTypeProto(Importa$jsint,'ceylon.language.jsint::Importa',Basic,$init$Import$meta$declaration());
(function(importa$){atr$(importa$,'name',function(){return this.$1u8_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Importa$jsint,pa:3,d:['ceylon.language.jsint','Importa','$at','name']};});atr$(importa$,'version',function(){return this.$1u9_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Importa$jsint,pa:3,d:['ceylon.language.jsint','Importa','$at','version']};});atr$(importa$,'_cont',function(){return this._cont_;},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:Importa$jsint,pa:1,d:['ceylon.language.jsint','Importa','$at','_cont']};});atr$(importa$,'_anns',function(){return this._anns_;},undefined,function(){return{mod:$CCMM$,$t:{t:Anything},$cont:Importa$jsint,pa:1,d:['ceylon.language.jsint','Importa','$at','_anns']};});atr$(importa$,'shared',function(){if (typeof(this._anns)==='function')this._anns_=this._anns();
if (this._anns)for (var i=0;i<this._anns.length;i++) {
if (this._anns[i]===shared)return true;
}
return false;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Importa$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Importa','$at','shared']};});atr$(importa$,'optional',function(){if (typeof(this._anns)==='function')this._anns_=this._anns();
if (this._anns)for (var i=0;i<this._anns.length;i++) {
if (this._anns[i]===optional)return true;
}
return false;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Importa$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Importa','$at','optional']};});atr$(importa$,'container',function(){if (this._cont===undefined) {
this._cont = modules$meta().find(this.name,this.version);
}
return this._cont;
},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:Importa$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Importa','$at','container']};});importa$.annotated=function($mpt){
if (typeof(this._anns)==='function')this._anns_=this._anns();
if (this._anns)for (var i=0;i<this._anns.length;i++) {
if (is$(this._anns[i],$mpt.Annotation$annotated))return true;
}
return false;
}
importa$.annotated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:Importa$jsint,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Importa','$m','annotated']};};atr$(importa$,'string',function(){var importa$=this;return "import ".plus(importa$.name).plus("/").plus(importa$.version)},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Importa$jsint,pa:3,d:['ceylon.language.jsint','Importa','$at','string']};});})(Importa$jsint.$$.prototype);}
return Importa$jsint;}
ex$.$init$Importa$jsint=$init$Importa$jsint;$init$Importa$jsint();function JsResource$jsint(uri,jsResource$){$init$JsResource$jsint();
if(jsResource$===undefined)jsResource$=new JsResource$jsint.$$;
jsResource$.$1ue_=uri;Resource(jsResource$);return jsResource$;}
JsResource$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'uri',mt:'prm',$t:{t:$_String},pa:3}],sts:[{t:Resource}],an:function(){return[$_native()];},d:['ceylon.language.jsint','JsResource']};};
ex$.JsResource$jsint=JsResource$jsint;function $init$JsResource$jsint(){if(JsResource$jsint.$$===undefined){initTypeProto(JsResource$jsint,'ceylon.language.jsint::JsResource',Basic,$init$Resource());
(function(jsResource$){atr$(jsResource$,'uri',function(){return this.$1ue_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:JsResource$jsint,pa:3,d:['ceylon.language.jsint','JsResource','$at','uri']};});atr$(jsResource$,'size',function(){var $elf=this;
if (runtime().name === 'node.js') {
var _fr=require;
var _fp=$elf.uri;
if (_fp.substring(0,5)==='file:')_fp=_fp.substring(_fp.indexOf(':')+1);
return _fr('fs').statSync(_fp).size;
} else if (runtime().name === 'Browser') {
alert('Resource.size not implemented yet');
} else {
print("Resource handling unsupported in this JS platform.");
}
return -1;
},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:JsResource$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','JsResource','$at','size']};});jsResource$.textContent=function(encoding$2){
var $elf=this;
if(encoding$2===undefined){encoding$2=$elf.textContent$defs$encoding(encoding$2);}
if (runtime().name === 'node.js') {
var _fr=require;
var fs=_fr('fs');
encoding$2=encoding$2.toLowerCase();
if(encoding$2.initial(4)==="utf-")encoding$2='utf'+encoding$2.substring(4);
var _fp=$elf.uri;
if (_fp.substring(0,5)==='file:')_fp=_fp.substring(_fp.indexOf(':')+1);
var t = fs.readFileSync(_fp, encoding$2);
return $_String(t);
} else if (runtime().name === 'Browser') {
alert("Resource.textContent() not implemented yet");
} else {
throw Error("Resource handling unsupported in this JS platform");
}
}
jsResource$.textContent.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_String},ps:[{nm:'encoding',mt:'prm',def:1,$t:{t:$_String}}],$cont:JsResource$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','JsResource','$m','textContent']};};})(JsResource$jsint.$$.prototype);}
return JsResource$jsint;}
ex$.$init$JsResource$jsint=$init$JsResource$jsint;$init$JsResource$jsint();function Modulo$jsint(meta,modulo$){$init$Modulo$jsint();
if(modulo$===undefined)modulo$=new Modulo$jsint.$$;
modulo$.meta_=meta;Module$meta$declaration(modulo$);(function(meta,mod$) {
mod$.$anns=mod$.meta.$mod$ans$;
var mm = mod$.meta.$CCMM$;
if (typeof(mm)==='function') {
mm=mm();
}
mod$.m$=mm;
mod$.nm$=mm['$mod-name'];
mod$.ver$=mm['$mod-version'];
}
)(meta,modulo$);modulo$.$1ug_=modulo$.name;modulo$.$1uh_="module ".plus(modulo$.name).plus("/").plus(modulo$.version);return modulo$;}
Modulo$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'meta',mt:'prm',$t:{t:Anything},pa:1}],sts:[{t:Module$meta$declaration}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','Modulo']};};
ex$.Modulo$jsint=Modulo$jsint;function $init$Modulo$jsint(){if(Modulo$jsint.$$===undefined){initTypeProto(Modulo$jsint,'ceylon.language.jsint::Modulo',Basic,$init$Module$meta$declaration());
(function(modulo$){atr$(modulo$,'meta',function(){return this.meta_;},undefined,function(){return{mod:$CCMM$,$t:{t:Anything},$cont:Modulo$jsint,pa:1,d:['ceylon.language.jsint','Modulo','$at','meta']};});atr$(modulo$,'name',function(){return this.nm$;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Modulo$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Modulo','$at','name']};});atr$(modulo$,'qualifiedName',function(){return this.$1ug_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Modulo$jsint,pa:3,d:['ceylon.language.jsint','Modulo','$at','qualifiedName']};});atr$(modulo$,'version',function(){return this.ver$;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Modulo$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Modulo','$at','version']};});atr$(modulo$,'members',function(){if (this.m$['$pks$'] === undefined) {
this.m$['$pks$'] = {};
for (mem in this.meta.$CCMM$()) {
if (typeof(mem) === 'string' && mem[0]!=='$') {
this.m$['$pks$'][mem] = Paquete$jsint(mem, this, this.m$[mem]);
}
}
}
var m = [];
for (mem in this.m$['$pks$']) {
if (typeof(mem) === 'string') {
m.push(this.m$['$pks$'][mem]);
}
}
return m.$sa$({t:Package$meta$declaration});
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Package$meta$declaration}}},$cont:Modulo$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Modulo','$at','members']};});atr$(modulo$,'dependencies',function(){if (typeof(this.meta.$mod$imps)==='function')this.meta.$mod$imps=this.meta.$mod$imps();
var deps=this.m$.$mdep$;
if (deps===undefined){
var _d=[];
var hasLangMod=false;
for (var d in this.meta.$mod$imps) {
var spos = d.lastIndexOf('/');
if (!hasLangMod && d.startsWith('ceylon.language/'))hasLangMod=true;
_d.push(Importa$jsint(d.substring(0,spos), d.substring(spos+1),this,this.meta.$mod$imps[d]));
}
if (!hasLangMod) {
_d.push(Importa$jsint('ceylon.language',$CCMM$()['$mod-version'],this,[]));
}
deps = _d.$sa$({t:Import$meta$declaration});
this.m$.$mdep$=deps;
}
return deps;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:Import$meta$declaration}}},$cont:Modulo$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Modulo','$at','dependencies']};});modulo$.findPackage=function findPackage(pknm){
if (this.m$['$pks$'] === undefined) this.members;
if (pknm==='$')pknm='ceylon.language';
var pk = this.m$['$pks$'][pknm];
return pk===undefined ? null : pk;
}
modulo$.findPackage.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Package$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Modulo$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Modulo','$m','findPackage']};};modulo$.findImportedPackage=function findImportedPackage(pknm){
var pk = this.findPackage(pknm);
if (pk) return pk;
if (pknm.match('^ceylon\\.language')) {
var clmod=modules$meta().find('ceylon.language', $CCMM$()['$mod-version']);
var deps=clmod.dependencies;
return clmod.findPackage(pknm);
}
var deps=this.dependencies;
for (var i=0; i < deps.length; i++) {
pk = deps[i].container.findImportedPackage(pknm);
if (pk)return pk;
}
return null;
}
modulo$.findImportedPackage.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Package$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Modulo$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Modulo','$m','findImportedPackage']};};modulo$.resourceByPath=function(_path) {
var isdefmod=this.name==='default' && this.version==='unversioned';
var mpath;
if (isdefmod) {
mpath = this.name;
} else {
mpath = this.name.replace(/\./g, '/');
}
var path = 'module-resources';
if (_path[0]==='/') {
path += _path;
} else {
if (isdefmod) {
path += '';
} else {
path += '/';
path += mpath;
}
path += '/' + _path;
}
if (runtime().name==='node.js') {
var sep = operatingSystem().fileSeparator;
path = mpath + (isdefmod?'/':'/'+this.version+'/') + path;
path = path.replace(/\\/g,sep);
var _fr=require;//this is so that requirejs leaves us alone
var pm=_fr('path');
var mods=process.env.NODE_PATH.split(operatingSystem().pathSeparator);
var fs=_fr('fs');
for (var i=0; i<mods.length; i++) {
var fp = pm.resolve(mods[i], path);
if (fs.existsSync(fp)) {
var f = fs.statSync(fp);
if (f && f.isFile()) {
return JsResource$jsint('file:'+fp);
}
}
}
return null;
} else if (runtime().name==='Browser') {
return JsResource$jsint(require.toUrl(mpath));
} else {
throw AssertionError("resources loading not yet supported in this environment: " + runtime().name);
}
}
modulo$.resourceByPath.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:Resource}]},ps:[{nm:'path',mt:'prm',$t:{t:$_String}}],$cont:Modulo$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Modulo','$m','resourceByPath']};};modulo$.annotations=function annotations($$$mptypes){
var anns = this.meta.$mod$ans$;
if (typeof(anns) === 'function') {
anns = anns();
this.meta.$mod$ans$=anns;
} else if (anns === undefined) {
anns = [];
}
var r = [];
for (var i=0; i < anns.length; i++) {
var an = anns[i];
if (is$(an, $$$mptypes.Annotation$annotations)) r.push(an);
}
return r.$sa$($$$mptypes.Annotation$annotations);
}
modulo$.annotations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Annotation$annotations'}},ps:[],$cont:Modulo$jsint,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Modulo','$m','annotations']};};modulo$.annotated=function($mpt){
var anns = this.meta.$mod$ans$;
if (typeof(anns) === 'function') {
anns = anns();
this.meta.$mod$ans$=anns;
}
if (anns) for (var i=0; i < anns.length; i++) {
if (is$(anns[i],$mpt.Annotation$annotated))return true;
}
return false;
}
modulo$.annotated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:Modulo$jsint,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Modulo','$m','annotated']};};atr$(modulo$,'string',function(){return this.$1uh_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Modulo$jsint,pa:3,d:['ceylon.language.jsint','Modulo','$at','string']};});})(Modulo$jsint.$$.prototype);}
return Modulo$jsint;}
ex$.$init$Modulo$jsint=$init$Modulo$jsint;$init$Modulo$jsint();function OpenAlias$jsint(_alias,openAlias$){$init$OpenAlias$jsint();
if(openAlias$===undefined)openAlias$=new OpenAlias$jsint.$$;
openAlias$._alias_=_alias;AliasDeclaration$meta$declaration(openAlias$);(function(a, that){
if (typeof(a)==='function')a=a();
that._alias_ = a;
//Get model from path
var mm=getrtmm$$(a);
that.meta=get_model(mm);
}
)(_alias,openAlias$);return openAlias$;}
OpenAlias$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'_alias',mt:'prm',$t:{t:$_Object},pa:1}],sts:[{t:AliasDeclaration$meta$declaration}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias']};};
ex$.OpenAlias$jsint=OpenAlias$jsint;function $init$OpenAlias$jsint(){if(OpenAlias$jsint.$$===undefined){initTypeProto(OpenAlias$jsint,'ceylon.language.jsint::OpenAlias',Basic,$init$AliasDeclaration$meta$declaration());
(function(openAlias$){atr$(openAlias$,'_alias',function(){return this._alias_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Object},$cont:OpenAlias$jsint,pa:1,d:['ceylon.language.jsint','OpenAlias','$at','_alias']};});atr$(openAlias$,'extendedType',function(){return _openTypeFromTarg(this._alias);
},undefined,function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:OpenAlias$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$at','extendedType']};});atr$(openAlias$,'openType',function(){var openAlias$=this;return openAlias$.extendedType},undefined,function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:OpenAlias$jsint,pa:3,d:['ceylon.language.jsint','OpenAlias','$at','openType']};});atr$(openAlias$,'qualifiedName',function(){return qname$(this._alias.$crtmm$);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenAlias$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$at','qualifiedName']};});atr$(openAlias$,'toplevel',function(){return this._alias.$cont===undefined;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenAlias$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$at','toplevel']};});atr$(openAlias$,'containingModule',function(){throw wrapexc(Exception("OpenAlias.containingModule"),'14:42-14:87','ceylon/language/jsint/OpenAlias.ceylon');},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:OpenAlias$jsint,pa:3,d:['ceylon.language.jsint','OpenAlias','$at','containingModule']};});atr$(openAlias$,'container',function(){var cont=this.$$targs$$.Container;
if (cont===undefined) {
cont=this._alias.$crtmm$.$cont;
if (cont)cont={t:cont};
}
if (cont) {
return typeLiteral$meta({Type$typeLiteral:cont});
}
return null;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:NestableDeclaration$meta$declaration},{t:Package$meta$declaration}]},$cont:OpenAlias$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$at','container']};});atr$(openAlias$,'containingPackage',function(){throw wrapexc(Exception("OpenAlias.containingPackage"),'16:44-16:90','ceylon/language/jsint/OpenAlias.ceylon');},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenAlias$jsint,pa:3,d:['ceylon.language.jsint','OpenAlias','$at','containingPackage']};});openAlias$.annotations=function($$$mptypes){
return annd$annotations(this,$$$mptypes);
}
openAlias$.annotations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Annotation$annotations'}},ps:[],$cont:OpenAlias$jsint,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$m','annotations']};};openAlias$.annotated=function($mpt){
var x=annd$annotations(this,{Annotation$annotations:$mpt.Annotation$annotated});
return x&&x.size>0;
}
openAlias$.annotated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:OpenAlias$jsint,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$m','annotated']};};atr$(openAlias$,'typeParameterDeclarations',function(){var tps=this._alias.$crtmm$.tp;
if (tps) {
var rv=[];
for (var tp in tps) {
rv.push(OpenTypeParam$jsint(this, tp));
}
return rv.$sa$({t:TypeParameter$meta$declaration});
}
return empty();
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:TypeParameter$meta$declaration}}},$cont:OpenAlias$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$at','typeParameterDeclarations']};});openAlias$.getTypeParameterDeclaration=function(name$2){
var tp=this._alias.$crtmm$;
var tpn=undefined;
if (tp.tp) {
for (var ftn in tp.tp) {
if (ftn.substring(0,name$2.size+1)==name$2+'$') {
tpn=ftn;
}
}
}
return tpn?OpenTypeParam$jsint(this, tpn):null;
}
openAlias$.getTypeParameterDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:TypeParameter$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenAlias$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$m','getTypeParameterDeclaration']};};openAlias$.equals=function(o) {
if (is$(o, {t:OpenAlias$jsint}) && o._alias.t === this._alias.t) {
var ot=o.typeParameterDeclarations,mt=this.typeParameterDeclarations;
if (ot.size!=mt.size)return false;
for (var i=0; i<ot.size;i++) {
if (!ot.getFromFirst(i).equals(mt.getFromFirst(i),1))return false;
}
return true;
}
return false;
}
openAlias$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:OpenAlias$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$m','equals']};};atr$(openAlias$,'name',function(){return this._alias.$crtmm$.d[this._alias.$crtmm$.d.length-1];
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenAlias$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$at','name']};});atr$(openAlias$,'shared',function(){return (getrtmm$$(this.tipo).pa&1) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenAlias$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$at','shared']};});atr$(openAlias$,'actual',function(){return (getrtmm$$(this.tipo).pa&2) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenAlias$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$at','actual']};});atr$(openAlias$,'formal',function(){return (getrtmm$$(this.tipo).pa&4) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenAlias$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$at','formal']};});atr$(openAlias$,'$_default',function(){return (getrtmm$$(this.tipo).pa&8) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenAlias$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenAlias','$at','default']};});atr$(openAlias$,'string',function(){var openAlias$=this;return "alias ".plus(openAlias$.qualifiedName)},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenAlias$jsint,pa:3,d:['ceylon.language.jsint','OpenAlias','$at','string']};});atr$(openAlias$,'hash',function(){var openAlias$=this;return openAlias$.string.hash},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:OpenAlias$jsint,pa:3,d:['ceylon.language.jsint','OpenAlias','$at','hash']};});})(OpenAlias$jsint.$$.prototype);}
return OpenAlias$jsint;}
ex$.$init$OpenAlias$jsint=$init$OpenAlias$jsint;$init$OpenAlias$jsint();function OpenCallableConstructor$jsint(pkg, meta, that){
if (meta===undefined)throw new Error("Constructor reference not found. Metamodel doesn't work with modules compiled in lexical scope style");
$init$OpenCallableConstructor$jsint();
if (that===undefined)that=new OpenCallableConstructor$jsint.$$;
that.containingPackage_=pkg;
var _mm=getrtmm$$(meta);
if (_mm === undefined) {
//it's a metamodel
that.meta_=meta;
that.tipo=_findTypeFromModel(pkg,meta);
_mm = getrtmm$$(that.tipo);
} else {
//it's a type
that.tipo = meta;
that.meta_ = get_model(_mm);
}
that.name_=(that.meta&&that.meta.nm)||_mm.d[_mm.d.length-1];
if (that.name_==='$def' || _mm.d[_mm.d.length-2]!=='$cn') {
that.name_='';
} else if (that.name_.indexOf('$')>0) {
that.name_=that.name_.substring(0,that.name_.indexOf('$'));
}
CallableConstructorDeclaration$meta$declaration(that);
return that;
}
OpenCallableConstructor$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'containingPackage',mt:'prm',$t:{t:Package$meta$declaration},pa:3},{nm:'meta',mt:'prm',$t:{t:Anything},pa:1}],sts:[{t:CallableConstructorDeclaration$meta$declaration}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor']};};
ex$.OpenCallableConstructor$jsint=OpenCallableConstructor$jsint;function $init$OpenCallableConstructor$jsint(){if(OpenCallableConstructor$jsint.$$===undefined){initTypeProto(OpenCallableConstructor$jsint,'ceylon.language.jsint::OpenCallableConstructor',Basic,$init$CallableConstructorDeclaration$meta$declaration());
(function(openCallableConstructor$){atr$(openCallableConstructor$,'containingPackage',function(){return this.$1uz_;},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenCallableConstructor$jsint,pa:3,d:['ceylon.language.jsint','OpenCallableConstructor','$at','containingPackage']};});atr$(openCallableConstructor$,'meta',function(){return this.meta_;},undefined,function(){return{mod:$CCMM$,$t:{t:Anything},$cont:OpenCallableConstructor$jsint,pa:1,d:['ceylon.language.jsint','OpenCallableConstructor','$at','meta']};});atr$(openCallableConstructor$,'$_abstract',function(){return (getrtmm$$(this.tipo).pa & 256) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','abstract']};});atr$(openCallableConstructor$,'defaultConstructor',function(){if (this.isdef$===undefined) {
//Just by checking the path we can determine this
var mm=getrtmm$$(this.tipo);
this.isdef$ = this.name==='';
}
return this.isdef$;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','defaultConstructor']};});atr$(openCallableConstructor$,'container',function(){if (this.cont$===undefined) {
var cc=getrtmm$$(this.tipo);
if (this.defaultConstructor && cc.d[cc.d.length-2]!=='$cn') {
//fake constructor
this.cont$=openClass$jsint(this.containingPackage,this.tipo);
} else {
cc=cc.$cont;
this.cont$=openClass$jsint(this.containingPackage,cc);
}
}
return this.cont$;
},undefined,function(){return{mod:$CCMM$,$t:{t:ClassDeclaration$meta$declaration},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','container']};});openCallableConstructor$.invoke=function invoke(targs,args) {
var mm=getrtmm$$(this.tipo);
var fc=mm.d[mm.d.length-2]!=='$cn';
if (mm.d[mm.d.length-(fc?2:4)]==='$c') {
throw TypeApplicationException$meta$model("Use memberInvoke with member constructors");
}
var a$=[];
for (var i=0;i<args.size;i++) {
a$.push(args.$_get(i));
}
if (targs.size) {
a$.push(tparms2targs$(fc?this.tipo:mm.$cont,targs));
}
return this.tipo.apply(undefined,a$);
}
openCallableConstructor$.invoke.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Object},ps:[{nm:'typeArguments',mt:'prm',def:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}},{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$m','invoke']};};openCallableConstructor$.memberInvoke=function memberInvoke(o,targs,args) {
var mm=getrtmm$$(this.tipo);
var fc=mm.d[mm.d.length-2]!=='$cn';
if (mm.d[mm.d.length-(fc?2:4)]!=='$c') {
throw TypeApplicationException$meta$model("Not a member constructor");
}
var a$=[];
for (var i=0;i<args.size;i++) {
a$.push(args.$_get(i));
}
if (targs.size) {
a$.push(tparms2targs$(fc?this.tipo:mm.$cont,targs));
}
return this.tipo.apply(o,a$);
}
openCallableConstructor$.memberInvoke.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Object},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}},{nm:'typeArguments',mt:'prm',def:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}},{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$m','memberInvoke']};};openCallableConstructor$.$_apply=function $_apply(targs,mt) {
var cc=this.container;
var mm=getrtmm$$(this.tipo);
if (is$(cc.container,{t:ClassOrInterfaceDeclaration$meta$declaration})) {
throw TypeApplicationException$meta$model("Not a member constructor");
} else {
var fakeConstructor=mm.d[mm.d.length-2]!=='$cn';
var _t=tparms2targs$(fakeConstructor?this.tipo:mm.$cont,targs);
cc=AppliedCallableConstructor$jsint(this.tipo,
{Type$AppliedCallableConstructor:mt.Result$apply,
Arguments$AppliedCallableConstructor:mt.Arguments$apply});
if (fakeConstructor)cc.fakeConstr$=true;
return cc;
}
}
openCallableConstructor$.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:CallableConstructor$meta$model,a:{Arguments$CallableConstructor:'Arguments$apply',Type$CallableConstructor:'Result$apply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenCallableConstructor$jsint,tp:{Result$apply:{def:{t:$_Object}},Arguments$apply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$m','apply']};};openCallableConstructor$.memberApply=function memberApply(ctype,targs,$mpt) {
var fakeConstructor=false;
if (this.defaultConstructor) {
var mm=getrtmm$$(this.tipo);
fakeConstructor=mm.d[mm.d.length-2]!=='$cn';
if (fakeConstructor && mm.d[mm.d.length-2]!=='$c') {
throw TypeApplicationException$meta$model("Not a member constructor");
}
}
var c=AppliedMemberClassCallableConstructor$jsint(this.tipo,
{Type$AppliedMemberClassCallableConstructor:$mpt.Result$memberApply,
Container$AppliedMemberClassCallableConstructor:$mpt.Container$memberApply,
Arguments$AppliedMemberClassCallableConstructor:$mpt.Arguments$memberApply});
if (fakeConstructor)c.fakeConstr$=true;
return c;
}
openCallableConstructor$.memberApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:MemberClassCallableConstructor$meta$model,a:{Type$MemberClassCallableConstructor:'Result$memberApply',Arguments$MemberClassCallableConstructor:'Arguments$memberApply',Container$MemberClassCallableConstructor:'Container$memberApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenCallableConstructor$jsint,tp:{Container$memberApply:{def:{t:Nothing}},Result$memberApply:{def:{t:$_Object}},Arguments$memberApply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$m','memberApply']};};atr$(openCallableConstructor$,'shared',function(){return (getrtmm$$(this.tipo).pa&1) > 0 || this.defaultConstructor;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','shared']};});atr$(openCallableConstructor$,'formal',function(){return (getrtmm$$(this.tipo).pa&4) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','formal']};});atr$(openCallableConstructor$,'$_default',function(){return (getrtmm$$(this.tipo).pa&8) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','default']};});atr$(openCallableConstructor$,'actual',function(){return (getrtmm$$(this.tipo).pa&2) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','actual']};});atr$(openCallableConstructor$,'annotation',function(){return this.$1v7_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenCallableConstructor$jsint,pa:3,d:['ceylon.language.jsint','OpenCallableConstructor','$at','annotation']};});atr$(openCallableConstructor$,'parameterDeclarations',function(){return FunctionalDeclaration$meta$declaration.$$.prototype.$prop$getParameterDeclarations.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:FunctionOrValueDeclaration$meta$declaration}}},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','parameterDeclarations']};});openCallableConstructor$.getParameterDeclaration=function(name){
var pd=this.parameterDeclarations;
for (var i=0; i < pd.size; i++) {
if (name.equals(pd.$_get(i).name))return pd.$_get(i);
}
return null;
}
openCallableConstructor$.getParameterDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:FunctionOrValueDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$m','getParameterDeclaration']};};atr$(openCallableConstructor$,'toplevel',function(){return this.$1v9_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenCallableConstructor$jsint,pa:3,d:['ceylon.language.jsint','OpenCallableConstructor','$at','toplevel']};});atr$(openCallableConstructor$,'containingModule',function(){var openCallableConstructor$=this;return openCallableConstructor$.containingPackage.container},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','containingModule']};});atr$(openCallableConstructor$,'openType',function(){return FreeClass$jsint(this.container);
},undefined,function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','openType']};});openCallableConstructor$.annotations=function(m){
return annd$annotations(this,m);
}
openCallableConstructor$.annotations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Annotation$annotations'}},ps:[],$cont:OpenCallableConstructor$jsint,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$m','annotations']};};openCallableConstructor$.annotated=function($mpt){
if (this.defaultConstructor) {
var mm=getrtmm$$(this.tipo);
if (mm.d[mm.d.length-1] !== '$def') {
//fake constructor
if (extendsType($mpt.Annotation$annotated,{t:SharedAnnotation}))return true;
if (extendsType($mpt.Annotation$annotated,{t:DocAnnotation}))return false;
}
}
var x=annd$annotations(this,{Annotation$annotations:$mpt.Annotation$annotated});
return x&&x.size>0;
}
openCallableConstructor$.annotated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:OpenCallableConstructor$jsint,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$m','annotated']};};atr$(openCallableConstructor$,'name',function(){return this.name_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','name']};});atr$(openCallableConstructor$,'qualifiedName',function(){if (this.qn$===undefined) {
this.qn$=qname$(getrtmm$$(this.tipo));
}
return this.qn$;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','qualifiedName']};});atr$(openCallableConstructor$,'string',function(){var openCallableConstructor$=this;return "new ".plus(openCallableConstructor$.qualifiedName)},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenCallableConstructor$jsint,pa:3,d:['ceylon.language.jsint','OpenCallableConstructor','$at','string']};});openCallableConstructor$.equals=function(other) {
if (is$(other, {t:OpenCallableConstructor$jsint})) {
if (other.tipo===this.tipo)return true;
return this.container.equals(other.container) &&
this.name.equals(other.name);
}
return false;
}
openCallableConstructor$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$m','equals']};};atr$(openCallableConstructor$,'typeParameterDeclarations',function(){return this.container.typeParameterDeclarations;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:TypeParameter$meta$declaration}}},$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$at','typeParameterDeclarations']};});openCallableConstructor$.getTypeParameterDeclaration=function getTypeParameterDeclaration(nm) {
return this.container.getTypeParameterDeclaration(nm);
}
openCallableConstructor$.getTypeParameterDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:TypeParameter$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenCallableConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenCallableConstructor','$m','getTypeParameterDeclaration']};};})(OpenCallableConstructor$jsint.$$.prototype);}
return OpenCallableConstructor$jsint;}
ex$.$init$OpenCallableConstructor$jsint=$init$OpenCallableConstructor$jsint;$init$OpenCallableConstructor$jsint();function OpenClassWithConstructors$jsint(pkg, meta, that){
if (meta===undefined)throw new Error("Class reference not found. Metamodel doesn't work with modules compiled in lexical scope style");
$init$OpenClassWithConstructors$jsint();
if (that===undefined)that=new OpenClassWithConstructors$jsint.$$;
that.pkg_ = pkg;
var _mm=getrtmm$$(meta);
if (_mm === undefined) {
//it's a metamodel
that.meta_=meta;
that.tipo=_findTypeFromModel(pkg,meta);
_mm = getrtmm$$(that.tipo);
} else {
//it's a type
that.tipo = meta;
that.meta_ = get_model(_mm);
}
var nm=(that.meta&&that.meta.nm)||_mm.d[_mm.d.length-1];
if (nm && nm.indexOf('$')>0) {
nm=nm.substring(0,nm.indexOf('$'));
}
that.name_=nm;
that.toplevel_=_mm.$cont===undefined;
ClassWithConstructorsDeclaration$meta$declaration(that);
return that;
}
OpenClassWithConstructors$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'pkg',mt:'prm',$t:{t:Package$meta$declaration},pa:1},{nm:'meta',mt:'prm',$t:{t:$_Object},pa:1}],sts:[{t:ClassWithConstructorsDeclaration$meta$declaration}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors']};};
ex$.OpenClassWithConstructors$jsint=OpenClassWithConstructors$jsint;function $init$OpenClassWithConstructors$jsint(){if(OpenClassWithConstructors$jsint.$$===undefined){initTypeProto(OpenClassWithConstructors$jsint,'ceylon.language.jsint::OpenClassWithConstructors',Basic,$init$ClassWithConstructorsDeclaration$meta$declaration());
(function(openClassWithConstructors$){atr$(openClassWithConstructors$,'pkg',function(){return this.pkg_;},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenClassWithConstructors$jsint,pa:1,d:['ceylon.language.jsint','OpenClassWithConstructors','$at','pkg']};});atr$(openClassWithConstructors$,'meta',function(){return this.meta_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Object},$cont:OpenClassWithConstructors$jsint,pa:1,d:['ceylon.language.jsint','OpenClassWithConstructors','$at','meta']};});openClassWithConstructors$.classApply=function(targs,$mptypes) {
var mm=this.tipo.$crtmm$;
if (mm.tp) {
if (!targs)throw TypeApplicationException$meta$model("This class requires type arguments");
//TODO generate targs
}
validate$params(mm.ps,$mptypes.Arguments$classApply,"Wrong number of Arguments for classApply");
return this.$_apply(targs,{Type$apply:$mptypes.Type$classApply});
}
openClassWithConstructors$.classApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Class$meta$model,a:{Type$Class:'Type$classApply',Arguments$Class:'Arguments$classApply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenClassWithConstructors$jsint,tp:{Type$classApply:{def:{t:Anything}},Arguments$classApply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','classApply']};};openClassWithConstructors$.memberClassApply=function(cont,targs,$mptypes){
var mm=this.tipo.$crtmm$;
if (cont!==nothingType$meta$model() && !extendsType({t:cont.tipo},{t:mm.$cont}))
throw IncompatibleTypeException$meta$model("Incompatible Container specified");
if (!extendsType({t:this.tipo},$mptypes.Type$memberClassApply))
throw IncompatibleTypeException$meta$model("Incompatible Type specified");
var _t={t:this.tipo};
if ($mptypes.Type$memberClassApply.a)_t.a=$mptypes.Type$memberClassApply.a;
validate$typeparams(_t,mm.tp,targs);
validate$params(mm.ps,$mptypes.Arguments$memberClassApply,"Wrong number of Arguments for memberClassApply");
var rv=AppliedMemberClass$jsint(this.tipo,{Container$AppliedMemberClass:$mptypes.Container$memberClassApply,
Type$AppliedMemberClass:_t,Arguments$AppliedMemberClass:tupleize$params(mm.ps)});
if (_t.a)rv.$targs=_t.a;
return rv;
}
openClassWithConstructors$.memberClassApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$memberClassApply',Container$MemberClass:'Container$memberClassApply',Type$MemberClass:'Type$memberClassApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenClassWithConstructors$jsint,tp:{Container$memberClassApply:{def:{t:Nothing}},Type$memberClassApply:{def:{t:Anything}},Arguments$memberClassApply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','memberClassApply']};};atr$(openClassWithConstructors$,'anonymous',function(){return this.meta.mt==='o';
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','anonymous']};});atr$(openClassWithConstructors$,'$_abstract',function(){return (getrtmm$$(this.tipo).pa & 256) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','abstract']};});atr$(openClassWithConstructors$,'$_final',function(){return (getrtmm$$(this.tipo).pa & 32) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','final']};});atr$(openClassWithConstructors$,'annotation',function(){return (getrtmm$$(this.tipo).pa & 512) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','annotation']};});atr$(openClassWithConstructors$,'serializable',function(){return (getrtmm$$(this.tipo).pa&2048) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','serializable']};});atr$(openClassWithConstructors$,'openType',function(){return FreeClass$jsint(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','openType']};});openClassWithConstructors$.getParameterDeclaration=function(name){
var pd=this.parameterDeclarations;
if (!pd)return null;
for (var i=0; i < pd.size; i++) {
if (name.equals(pd.$_get(i).name))return pd.$_get(i);
}
return null;
}
openClassWithConstructors$.getParameterDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:FunctionOrValueDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','getParameterDeclaration']};};atr$(openClassWithConstructors$,'extendedType',function(){var sc = this.tipo.$crtmm$['super'];
if (sc === undefined)return null;
var mm = getrtmm$$(sc.t);
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
var fc=FreeClass$jsint(openClass$jsint(modules$meta().find(_m['$mod-name'],_m['$mod-version']).findPackage(mm.d[0]), sc.t));
if (sc.a)fc.declaration._targs=sc.a;
return fc;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:OpenClassType$meta$declaration}]},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','extendedType']};});atr$(openClassWithConstructors$,'satisfiedTypes',function(){var ints = this.tipo.$crtmm$.sts;
if (ints && ints.length) {
var rv = [];
for (var i=0; i < ints.length; i++) {
var ifc = ints[i];
var mm = getrtmm$$(ifc.t);
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
var fi=FreeInterface$jsint(OpenInterface$jsint(modules$meta().find(_m['$mod-name'],_m['$mod-version']).findPackage(mm.d[0]), ifc.t));
if (ifc.a)fi.declaration._targs=ifc.a;
rv.push(fi);
}
return rv.$sa$({t:OpenInterfaceType$meta$declaration});
}
return empty();
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenInterfaceType$meta$declaration}}},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','satisfiedTypes']};});atr$(openClassWithConstructors$,'name',function(){return this.name_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','name']};});atr$(openClassWithConstructors$,'containingPackage',function(){var openClassWithConstructors$=this;return openClassWithConstructors$.pkg},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenClassWithConstructors$jsint,pa:3,d:['ceylon.language.jsint','OpenClassWithConstructors','$at','containingPackage']};});atr$(openClassWithConstructors$,'containingModule',function(){var openClassWithConstructors$=this;return openClassWithConstructors$.pkg.container},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:OpenClassWithConstructors$jsint,pa:3,d:['ceylon.language.jsint','OpenClassWithConstructors','$at','containingModule']};});atr$(openClassWithConstructors$,'toplevel',function(){return this.toplevel_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','toplevel']};});atr$(openClassWithConstructors$,'qualifiedName',function(){return qname$(this.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','qualifiedName']};});openClassWithConstructors$.equals=function(other) {
if (is$(other, {t:OpenClassWithConstructors$jsint})) {
if (other.tipo===this.tipo)return true;
if (this.anonymous && other.anonymous) {
//Anonymous classes sometimes have a ref to the class constructor
//and sometimes to the value getter, depending on how it was obtained
return this.qualifiedName.equals(other.qualifiedName);
}
}
return false;
}
openClassWithConstructors$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','equals']};};atr$(openClassWithConstructors$,'shared',function(){return (getrtmm$$(this.tipo).pa&1) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','shared']};});atr$(openClassWithConstructors$,'formal',function(){return (getrtmm$$(this.tipo).pa&4) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','formal']};});atr$(openClassWithConstructors$,'$_default',function(){return (getrtmm$$(this.tipo).pa&8) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','default']};});atr$(openClassWithConstructors$,'actual',function(){return (getrtmm$$(this.tipo).pa&2) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','actual']};});atr$(openClassWithConstructors$,'isAlias',function(){return false},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','isAlias']};});openClassWithConstructors$.getMemberDeclaration=function(a,b,c){
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.getMemberDeclaration.call(this,a,b,c);
}
openClassWithConstructors$.getMemberDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Kind$getMemberDeclaration']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenClassWithConstructors$jsint,tp:{Kind$getMemberDeclaration:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','getMemberDeclaration']};};openClassWithConstructors$.getDeclaredMemberDeclaration=function(nm,$mptypes){
return this.getMemberDeclaration(nm,{Kind$getMemberDeclaration:$mptypes.Kind$getDeclaredMemberDeclaration},1);
}
openClassWithConstructors$.getDeclaredMemberDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Kind$getDeclaredMemberDeclaration']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenClassWithConstructors$jsint,tp:{Kind$getDeclaredMemberDeclaration:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','getDeclaredMemberDeclaration']};};atr$(openClassWithConstructors$,'parameterDeclarations',function(){var dc=this.defaultConstructor;
return dc?dc.parameterDeclarations:null;
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:FunctionOrValueDeclaration$meta$declaration}}},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','parameterDeclarations']};});openClassWithConstructors$.memberDeclarations=function(a,b){
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.memberDeclarations.call(this,a,b);
}
openClassWithConstructors$.memberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$memberDeclarations'}},ps:[],$cont:OpenClassWithConstructors$jsint,tp:{Kind$memberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','memberDeclarations']};};atr$(openClassWithConstructors$,'caseTypes',function(){return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.$prop$getCaseTypes.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','caseTypes']};});openClassWithConstructors$.$_apply=function(a,b){
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.$_apply.call(this,a,b);
}
openClassWithConstructors$.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$apply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenClassWithConstructors$jsint,tp:{Type$apply:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','apply']};};openClassWithConstructors$.memberApply=function(a,b,c) {
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.memberApply.call(this,a,b,c);
}
openClassWithConstructors$.memberApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'i',l:[{t:Member$meta$model,a:{Kind$Member:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$memberApply'}},Container$Member:'Container$memberApply'}},{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$memberApply'}}]},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenClassWithConstructors$jsint,tp:{Container$memberApply:{def:{t:Nothing}},Type$memberApply:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','memberApply']};};atr$(openClassWithConstructors$,'container',function(){return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.$prop$getContainer.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:NestableDeclaration$meta$declaration},{t:Package$meta$declaration}]},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','container']};});openClassWithConstructors$.annotatedMemberDeclarations=function(m,i) {
var r=ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.annotatedMemberDeclarations.call(this,m,i);
if (extendsType(m.Kind$annotatedMemberDeclarations,{t:ConstructorDeclaration$meta$declaration})) {
var callablesOnly=extendsType(m.Kind$annotatedMemberDeclarations,{t:CallableConstructorDeclaration$meta$declaration});
var valuesOnly=extendsType(m.Kind$annotatedMemberDeclarations,{t:ValueConstructorDeclaration$meta$declaration});
var mm=getrtmm$$(this.tipo);
var prefix=mm.d[mm.d.length-1]+'_';
var ccc=[];
for (k in this.tipo) {
if (k.startsWith(prefix)) {
mm=getrtmm$$(this.tipo[k]);
if (mm.ps===undefined) {
if (!callablesOnly) {
ccc.push(OpenValueConstructor$jsint(this.package, this.tipo[k]));
}
} else if (!valuesOnly) {
ccc.push(OpenCallableConstructor$jsint(this.package,this.tipo[k]));
}
}
}
return r.append(ccc.$sa$(m.Kind$annotatedMemberDeclarations),{Other$append:m.Kind$annotatedMemberDeclarations});
}
return r;
}
openClassWithConstructors$.annotatedMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$annotatedMemberDeclarations'}},ps:[],$cont:OpenClassWithConstructors$jsint,tp:{Kind$annotatedMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation$annotatedMemberDeclarations:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','annotatedMemberDeclarations']};};openClassWithConstructors$.annotatedDeclaredMemberDeclarations=function($$$mptypes){
return this.annotatedMemberDeclarations({Kind$annotatedMemberDeclarations:$$$mptypes.Kind$annotatedDeclaredMemberDeclarations,
Annotation$annotatedMemberDeclarations:$$$mptypes.Annotation$annotatedDeclaredMemberDeclarations},1);
}
openClassWithConstructors$.annotatedDeclaredMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$annotatedDeclaredMemberDeclarations'}},ps:[],$cont:OpenClassWithConstructors$jsint,tp:{Kind$annotatedDeclaredMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation$annotatedDeclaredMemberDeclarations:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','annotatedDeclaredMemberDeclarations']};};atr$(openClassWithConstructors$,'typeParameterDeclarations',function(){return GenericDeclaration$meta$declaration.$$.prototype.$prop$getTypeParameterDeclarations.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:TypeParameter$meta$declaration}}},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','typeParameterDeclarations']};});openClassWithConstructors$.getTypeParameterDeclaration=function(n){
return GenericDeclaration$meta$declaration.$$.prototype.getTypeParameterDeclaration.call(this,n);
}
openClassWithConstructors$.getTypeParameterDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:TypeParameter$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','getTypeParameterDeclaration']};};openClassWithConstructors$.annotations=function(m){
return annd$annotations(this,m);
}
openClassWithConstructors$.annotations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Annotation$annotations'}},ps:[],$cont:OpenClassWithConstructors$jsint,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','annotations']};};openClassWithConstructors$.annotated=function($mpt){
var x=annd$annotations(this,{Annotation$annotations:$mpt.Annotation$annotated});
return x&&x.size>0;
}
openClassWithConstructors$.annotated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:OpenClassWithConstructors$jsint,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','annotated']};};openClassWithConstructors$.declaredMemberDeclarations=function(m) {
return this.memberDeclarations({Kind$memberDeclarations:m.Kind$declaredMemberDeclarations},1);
}
openClassWithConstructors$.declaredMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$declaredMemberDeclarations'}},ps:[],$cont:OpenClassWithConstructors$jsint,tp:{Kind$declaredMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','declaredMemberDeclarations']};};atr$(openClassWithConstructors$,'objectValue',function(){if (!this.anonymous)return null;
if (this.container && this.container.getMember) {
var m=this.container.getMember(this.name,{getMember$Kind:{t:ValueDeclaration$meta$declaration}});
if (m)return m;
}
return null
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ValueDeclaration$meta$declaration}]},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','objectValue']};});atr$(openClassWithConstructors$,'string',function(){var openClassWithConstructors$=this;return "class ".plus(openClassWithConstructors$.qualifiedName)},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenClassWithConstructors$jsint,pa:3,d:['ceylon.language.jsint','OpenClassWithConstructors','$at','string']};});atr$(openClassWithConstructors$,'hash',function(){var openClassWithConstructors$=this;return openClassWithConstructors$.string.hash},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:OpenClassWithConstructors$jsint,pa:3,d:['ceylon.language.jsint','OpenClassWithConstructors','$at','hash']};});atr$(openClassWithConstructors$,'defaultConstructor',function(){if (this.declcn$===undefined)this.constructorDeclarations();
if (this.defcn$===undefined) {
for (var i=0;i<this.declcn$.size;i++) {
if (this.declcn$.$_get(i).name==='') {
this.defcn$=this.declcn$.$_get(i);
return this.defcn$;
}
}
this.defcn$=null;
}
return this.defcn$;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:CallableConstructorDeclaration$meta$declaration}]},$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$at','defaultConstructor']};});openClassWithConstructors$.getConstructorDeclaration=function(nom) {
if (this.declcn$===undefined)this.constructorDeclarations();
for (var i=0; i < this.declcn$.size; i++) {
if (this.declcn$.$_get(i).name===nom)return this.declcn$.$_get(i);
}
return null;
}
openClassWithConstructors$.getConstructorDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:'u',l:[{t:CallableConstructorDeclaration$meta$declaration},{t:ValueConstructorDeclaration$meta$declaration}]}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','getConstructorDeclaration']};};openClassWithConstructors$.constructorDeclarations=function() {
if (this.declcn$===undefined) {
var mm=getrtmm$$(this.tipo),mdl=get_model(mm);
if (mdl.$cn) {
var c=[];
for (var m in this.tipo) {
if (m.indexOf('_')>0) {
m=getnpmem$(this.tipo,m);
mm=m&&getrtmm$$(m);
if (mm && mm.d[mm.d.length-2]==='$cn') {
c.push((mm.ps===undefined?OpenValueConstructor$jsint:OpenCallableConstructor$jsint)(this.pkg_,m));
}
}
}
this.declcn$=c.$sa$({t:ConstructorDeclaration$meta$declaration});
} else {
this.declcn$=empty();
}
}
return this.declcn$;
}
openClassWithConstructors$.constructorDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:ConstructorDeclaration$meta$declaration}}},ps:[],$cont:OpenClassWithConstructors$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','constructorDeclarations']};};openClassWithConstructors$.annotatedConstructorDeclarations=function($mpt) {
return this.annotatedMemberDeclarations(
{Kind$annotatedMemberDeclarations:{t:ConstructorDeclaration$meta$declaration},
Annotation$annotatedMemberDeclarations:$mpt.Annotation$annotatedConstructorDeclarations});
}
openClassWithConstructors$.annotatedConstructorDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:ConstructorDeclaration$meta$declaration}}},ps:[],$cont:OpenClassWithConstructors$jsint,tp:{Annotation$annotatedConstructorDeclarations:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithConstructors','$m','annotatedConstructorDeclarations']};};})(OpenClassWithConstructors$jsint.$$.prototype);}
return OpenClassWithConstructors$jsint;}
ex$.$init$OpenClassWithConstructors$jsint=$init$OpenClassWithConstructors$jsint;$init$OpenClassWithConstructors$jsint();function OpenClassWithInitializer$jsint(pkg, meta, that){
if (meta===undefined)throw new Error("Class reference not found. Metamodel doesn't work with modules compiled in lexical scope style");
$init$OpenClassWithInitializer$jsint();
if (that===undefined)that=new OpenClassWithInitializer$jsint.$$;
that.pkg_ = pkg;
var _mm=getrtmm$$(meta);
if (_mm === undefined) {
//it's a metamodel
that.meta_=meta;
that.tipo=_findTypeFromModel(pkg,meta);
_mm = getrtmm$$(that.tipo);
} else {
//it's a type
that.tipo = meta;
that.meta_ = get_model(_mm);
}
var nm=(that.meta&&that.meta.nm)||_mm.d[_mm.d.length-1];
if (nm && nm.indexOf('$')>0) {
nm=nm.substring(0,nm.indexOf('$'));
}
that.name_=nm;
that.toplevel_=_mm.$cont===undefined;
ClassWithInitializerDeclaration$meta$declaration(that);
return that;
}
OpenClassWithInitializer$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'pkg',mt:'prm',$t:{t:Package$meta$declaration},pa:1},{nm:'meta',mt:'prm',$t:{t:$_Object},pa:1}],sts:[{t:ClassWithInitializerDeclaration$meta$declaration}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer']};};
ex$.OpenClassWithInitializer$jsint=OpenClassWithInitializer$jsint;function $init$OpenClassWithInitializer$jsint(){if(OpenClassWithInitializer$jsint.$$===undefined){initTypeProto(OpenClassWithInitializer$jsint,'ceylon.language.jsint::OpenClassWithInitializer',Basic,$init$ClassWithInitializerDeclaration$meta$declaration());
(function(openClassWithInitializer$){atr$(openClassWithInitializer$,'pkg',function(){return this.pkg_;},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenClassWithInitializer$jsint,pa:1,d:['ceylon.language.jsint','OpenClassWithInitializer','$at','pkg']};});atr$(openClassWithInitializer$,'meta',function(){return this.meta_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Object},$cont:OpenClassWithInitializer$jsint,pa:1,d:['ceylon.language.jsint','OpenClassWithInitializer','$at','meta']};});openClassWithInitializer$.classApply=function(targs,$mptypes) {
var mm=this.tipo.$crtmm$;
if (mm.tp) {
if (!targs)throw TypeApplicationException$meta$model("This class requires type arguments");
//TODO generate targs
}
validate$params(mm.ps,$mptypes.Arguments$classApply,"Wrong number of Arguments for classApply");
return this.$_apply(targs,{Type$apply:$mptypes.Type$classApply});
}
openClassWithInitializer$.classApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Class$meta$model,a:{Type$Class:'Type$classApply',Arguments$Class:'Arguments$classApply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenClassWithInitializer$jsint,tp:{Type$classApply:{def:{t:Anything}},Arguments$classApply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','classApply']};};openClassWithInitializer$.memberClassApply=function(cont,targs,$mptypes){
var mm=this.tipo.$crtmm$;
if (cont!==nothingType$meta$model() && !extendsType({t:cont.tipo},{t:mm.$cont}))
throw IncompatibleTypeException$meta$model("Incompatible Container specified");
if (!extendsType({t:this.tipo},$mptypes.Type$memberClassApply))
throw IncompatibleTypeException$meta$model("Incompatible Type specified");
var _t={t:this.tipo};
if ($mptypes.Type$memberClassApply.a)_t.a=$mptypes.Type$memberClassApply.a;
validate$typeparams(_t,mm.tp,targs);
validate$params(mm.ps,$mptypes.Arguments$memberClassApply,"Wrong number of Arguments for memberClassApply");
var rv=AppliedMemberClass$jsint(this.tipo,{Container$AppliedMemberClass:$mptypes.Container$memberClassApply,
Type$AppliedMemberClass:_t,Arguments$AppliedMemberClass:tupleize$params(mm.ps)});
if (_t.a)rv.$targs=_t.a;
return rv;
}
openClassWithInitializer$.memberClassApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:MemberClass$meta$model,a:{Arguments$MemberClass:'Arguments$memberClassApply',Container$MemberClass:'Container$memberClassApply',Type$MemberClass:'Type$memberClassApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenClassWithInitializer$jsint,tp:{Container$memberClassApply:{def:{t:Nothing}},Type$memberClassApply:{def:{t:Anything}},Arguments$memberClassApply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','memberClassApply']};};atr$(openClassWithInitializer$,'anonymous',function(){return this.meta.mt==='o';
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','anonymous']};});atr$(openClassWithInitializer$,'$_abstract',function(){return (getrtmm$$(this.tipo).pa & 256) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','abstract']};});atr$(openClassWithInitializer$,'$_final',function(){return (getrtmm$$(this.tipo).pa & 32) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','final']};});atr$(openClassWithInitializer$,'annotation',function(){return (getrtmm$$(this.tipo).pa & 512) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','annotation']};});atr$(openClassWithInitializer$,'serializable',function(){return (getrtmm$$(this.tipo).pa&2048) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','serializable']};});atr$(openClassWithInitializer$,'openType',function(){return FreeClass$jsint(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','openType']};});openClassWithInitializer$.getParameterDeclaration=function(name){
var pd=this.parameterDeclarations;
for (var i=0; i < pd.size; i++) {
if (name.equals(pd.$_get(i).name))return pd.$_get(i);
}
return null;
}
openClassWithInitializer$.getParameterDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:FunctionOrValueDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','getParameterDeclaration']};};atr$(openClassWithInitializer$,'extendedType',function(){var sc = this.tipo.$crtmm$['super'];
if (sc === undefined)return null;
var mm = getrtmm$$(sc.t);
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
var fc=FreeClass$jsint(openClass$jsint(modules$meta().find(_m['$mod-name'],_m['$mod-version']).findPackage(mm.d[0]), sc.t));
if (sc.a)fc.declaration._targs=sc.a;
return fc;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:OpenClassType$meta$declaration}]},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','extendedType']};});atr$(openClassWithInitializer$,'satisfiedTypes',function(){var ints = this.tipo.$crtmm$.sts;
if (ints && ints.length) {
var rv = [];
for (var i=0; i < ints.length; i++) {
var ifc = ints[i];
var mm = getrtmm$$(ifc.t);
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
var fi=FreeInterface$jsint(OpenInterface$jsint(modules$meta().find(_m['$mod-name'],_m['$mod-version']).findPackage(mm.d[0]), ifc.t));
if (ifc.a)fi.declaration._targs=ifc.a;
rv.push(fi);
}
return rv.$sa$({t:OpenInterfaceType$meta$declaration});
}
return empty();
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenInterfaceType$meta$declaration}}},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','satisfiedTypes']};});atr$(openClassWithInitializer$,'name',function(){return this.name_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','name']};});atr$(openClassWithInitializer$,'containingPackage',function(){var openClassWithInitializer$=this;return openClassWithInitializer$.pkg},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenClassWithInitializer$jsint,pa:3,d:['ceylon.language.jsint','OpenClassWithInitializer','$at','containingPackage']};});atr$(openClassWithInitializer$,'containingModule',function(){var openClassWithInitializer$=this;return openClassWithInitializer$.pkg.container},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:OpenClassWithInitializer$jsint,pa:3,d:['ceylon.language.jsint','OpenClassWithInitializer','$at','containingModule']};});atr$(openClassWithInitializer$,'toplevel',function(){return this.toplevel_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','toplevel']};});atr$(openClassWithInitializer$,'qualifiedName',function(){return qname$(this.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','qualifiedName']};});openClassWithInitializer$.equals=function(other) {
if (is$(other, {t:OpenClassWithInitializer$jsint})) {
if (other.tipo===this.tipo)return true;
if (this.anonymous && other.anonymous) {
//Anonymous classes sometimes have a ref to the class constructor
//and sometimes to the value getter, depending on how it was obtained
return this.qualifiedName.equals(other.qualifiedName);
}
}
return false;
}
openClassWithInitializer$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','equals']};};atr$(openClassWithInitializer$,'shared',function(){return (getrtmm$$(this.tipo).pa&1) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','shared']};});atr$(openClassWithInitializer$,'formal',function(){return (getrtmm$$(this.tipo).pa&4) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','formal']};});atr$(openClassWithInitializer$,'$_default',function(){return (getrtmm$$(this.tipo).pa&8) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','default']};});atr$(openClassWithInitializer$,'actual',function(){return (getrtmm$$(this.tipo).pa&2) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','actual']};});atr$(openClassWithInitializer$,'isAlias',function(){return false},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','isAlias']};});openClassWithInitializer$.getMemberDeclaration=function(a,b,c){
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.getMemberDeclaration.call(this,a,b,c);
}
openClassWithInitializer$.getMemberDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Kind$getMemberDeclaration']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenClassWithInitializer$jsint,tp:{Kind$getMemberDeclaration:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','getMemberDeclaration']};};openClassWithInitializer$.getDeclaredMemberDeclaration=function(nm,$mptypes){
return this.getMemberDeclaration(nm,{Kind$getMemberDeclaration:$mptypes.Kind$getDeclaredMemberDeclaration},1);
}
openClassWithInitializer$.getDeclaredMemberDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Kind$getDeclaredMemberDeclaration']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenClassWithInitializer$jsint,tp:{Kind$getDeclaredMemberDeclaration:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','getDeclaredMemberDeclaration']};};atr$(openClassWithInitializer$,'parameterDeclarations',function(){return FunctionalDeclaration$meta$declaration.$$.prototype.$prop$getParameterDeclarations.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:FunctionOrValueDeclaration$meta$declaration}}},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','parameterDeclarations']};});openClassWithInitializer$.memberDeclarations=function(a,b){
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.memberDeclarations.call(this,a,b);
}
openClassWithInitializer$.memberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$memberDeclarations'}},ps:[],$cont:OpenClassWithInitializer$jsint,tp:{Kind$memberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','memberDeclarations']};};atr$(openClassWithInitializer$,'caseTypes',function(){return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.$prop$getCaseTypes.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','caseTypes']};});openClassWithInitializer$.$_apply=function(a,b){
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.$_apply.call(this,a,b);
}
openClassWithInitializer$.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$apply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenClassWithInitializer$jsint,tp:{Type$apply:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','apply']};};openClassWithInitializer$.memberApply=function(a,b,c) {
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.memberApply.call(this,a,b,c);
}
openClassWithInitializer$.memberApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'i',l:[{t:Member$meta$model,a:{Kind$Member:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$memberApply'}},Container$Member:'Container$memberApply'}},{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$memberApply'}}]},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenClassWithInitializer$jsint,tp:{Container$memberApply:{def:{t:Nothing}},Type$memberApply:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','memberApply']};};atr$(openClassWithInitializer$,'container',function(){return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.$prop$getContainer.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:NestableDeclaration$meta$declaration},{t:Package$meta$declaration}]},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','container']};});openClassWithInitializer$.annotatedMemberDeclarations=function(m,i) {
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.annotatedMemberDeclarations.call(this,m,i);
}
openClassWithInitializer$.annotatedMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$annotatedMemberDeclarations'}},ps:[],$cont:OpenClassWithInitializer$jsint,tp:{Kind$annotatedMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation$annotatedMemberDeclarations:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','annotatedMemberDeclarations']};};openClassWithInitializer$.annotatedDeclaredMemberDeclarations=function($$$mptypes){
return this.annotatedMemberDeclarations({Kind$annotatedMemberDeclarations:$$$mptypes.Kind$annotatedDeclaredMemberDeclarations,
Annotation$annotatedMemberDeclarations:$$$mptypes.Annotation$annotatedDeclaredMemberDeclarations},1);
}
openClassWithInitializer$.annotatedDeclaredMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$annotatedDeclaredMemberDeclarations'}},ps:[],$cont:OpenClassWithInitializer$jsint,tp:{Kind$annotatedDeclaredMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation$annotatedDeclaredMemberDeclarations:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','annotatedDeclaredMemberDeclarations']};};atr$(openClassWithInitializer$,'typeParameterDeclarations',function(){return GenericDeclaration$meta$declaration.$$.prototype.$prop$getTypeParameterDeclarations.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:TypeParameter$meta$declaration}}},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','typeParameterDeclarations']};});openClassWithInitializer$.getTypeParameterDeclaration=function(n){
return GenericDeclaration$meta$declaration.$$.prototype.getTypeParameterDeclaration.call(this,n);
}
openClassWithInitializer$.getTypeParameterDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:TypeParameter$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','getTypeParameterDeclaration']};};openClassWithInitializer$.annotations=function(m){
return annd$annotations(this,m);
}
openClassWithInitializer$.annotations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Annotation$annotations'}},ps:[],$cont:OpenClassWithInitializer$jsint,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','annotations']};};openClassWithInitializer$.annotated=function($mpt){
var x=annd$annotations(this,{Annotation$annotations:$mpt.Annotation$annotated});
return x&&x.size>0;
}
openClassWithInitializer$.annotated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:OpenClassWithInitializer$jsint,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','annotated']};};openClassWithInitializer$.declaredMemberDeclarations=function(m) {
return this.memberDeclarations({Kind$memberDeclarations:m.Kind$declaredMemberDeclarations},1);
}
openClassWithInitializer$.declaredMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$declaredMemberDeclarations'}},ps:[],$cont:OpenClassWithInitializer$jsint,tp:{Kind$declaredMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','declaredMemberDeclarations']};};atr$(openClassWithInitializer$,'defaultConstructor',function(){if (this.$defc$===undefined) {
this.$defc$=OpenCallableConstructor$jsint(this.pkg_,this.tipo);
}
return this.$defc$;
},undefined,function(){return{mod:$CCMM$,$t:{t:CallableConstructorDeclaration$meta$declaration},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','defaultConstructor']};});openClassWithInitializer$.annotatedConstructorDeclarations=function($mpt) {
var dc=this.defaultConstructor;
return dc.annotated({Annotation$annotated:$mpt.Annotation$annotatedConstructorDeclarations})?
Singleton(dc,{t:CallableConstructorDeclaration$meta$declaration}):empty();
}
openClassWithInitializer$.annotatedConstructorDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:CallableConstructorDeclaration$meta$declaration}}},ps:[],$cont:OpenClassWithInitializer$jsint,tp:{Annotation$annotatedConstructorDeclarations:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$m','annotatedConstructorDeclarations']};};atr$(openClassWithInitializer$,'objectValue',function(){if (!this.anonymous)return null;
if (this.container && this.container.getMember) {
var m=this.container.getMember(this.name,{getMember$Kind:{t:ValueDeclaration$meta$declaration}});
if (m)return m;
}
return null
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ValueDeclaration$meta$declaration}]},$cont:OpenClassWithInitializer$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenClassWithInitializer','$at','objectValue']};});atr$(openClassWithInitializer$,'string',function(){var openClassWithInitializer$=this;return "class ".plus(openClassWithInitializer$.qualifiedName)},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenClassWithInitializer$jsint,pa:3,d:['ceylon.language.jsint','OpenClassWithInitializer','$at','string']};});atr$(openClassWithInitializer$,'hash',function(){var openClassWithInitializer$=this;return openClassWithInitializer$.string.hash},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:OpenClassWithInitializer$jsint,pa:3,d:['ceylon.language.jsint','OpenClassWithInitializer','$at','hash']};});})(OpenClassWithInitializer$jsint.$$.prototype);}
return OpenClassWithInitializer$jsint;}
ex$.$init$OpenClassWithInitializer$jsint=$init$OpenClassWithInitializer$jsint;$init$OpenClassWithInitializer$jsint();function OpenFunction$jsint(pkg,meta,that){
if (meta===undefined)throw Exception("Function reference not found. Metamodel doesn't work with modules compiled in lexical scope style");
$init$OpenFunction$jsint();
if (that===undefined)that=new OpenFunction$jsint.$$;
that.pkg_=pkg;
var _mm=getrtmm$$(meta);
if (_mm === undefined) {
//it's a metamodel
that.meta_=meta;
that.tipo=_findTypeFromModel(pkg,meta);
_mm=getrtmm$$(that.tipo);
} else {
//it's a type
that.tipo = meta;
that.meta_ = get_model(_mm);
}
var nm=(that.meta&&that.meta.nm)||'?';
if (nm.indexOf('$')>0)nm=nm.substring(0,nm.indexOf('$'));
that.name_=nm;
that.toplevel_=_mm===undefined||_mm.$cont===undefined;
FunctionDeclaration$meta$declaration(that);
return that;
}
OpenFunction$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'pkg',mt:'prm',$t:{t:Package$meta$declaration},pa:1},{nm:'meta',mt:'prm',$t:{t:$_Object},pa:1}],sts:[{t:FunctionDeclaration$meta$declaration}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction']};};
ex$.OpenFunction$jsint=OpenFunction$jsint;function $init$OpenFunction$jsint(){if(OpenFunction$jsint.$$===undefined){initTypeProto(OpenFunction$jsint,'ceylon.language.jsint::OpenFunction',Basic,$init$FunctionDeclaration$meta$declaration());
(function(openFunction$){atr$(openFunction$,'pkg',function(){return this.pkg_;},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenFunction$jsint,pa:1,d:['ceylon.language.jsint','OpenFunction','$at','pkg']};});atr$(openFunction$,'meta',function(){return this.meta_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Object},$cont:OpenFunction$jsint,pa:1,d:['ceylon.language.jsint','OpenFunction','$at','meta']};});atr$(openFunction$,'containingPackage',function(){var openFunction$=this;return openFunction$.pkg},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenFunction$jsint,pa:3,d:['ceylon.language.jsint','OpenFunction','$at','containingPackage']};});atr$(openFunction$,'openType',function(){var t = this.tipo.$crtmm$.$t;
if (typeof(t)==='string')return OpenTvar$jsint(OpenTypeParam$jsint(this.tipo,t));
return _openTypeFromTarg(t, this.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','openType']};});atr$(openFunction$,'defaulted',function(){if (this.parameter) {
return this.param$$.defaulted;
}
return false;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','defaulted']};});atr$(openFunction$,'variadic',function(){return false;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','variadic']};});atr$(openFunction$,'parameter',function(){if (this.param$$!==undefined)return this.param$$!==null;
if (is$(this.container,{t:FunctionalDeclaration$meta$declaration})) {
var param;
for (var iter=this.container.parameterDeclarations.iterator();(param=iter.next())!==finished();) {
if (param.name.equals(this.name)) {
this.param$$=param;
return true;
}
}
}
this.param$$=null;
return false;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','parameter']};});atr$(openFunction$,'annotation',function(){return (getrtmm$$(this.tipo).pa & 512) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','annotation']};});atr$(openFunction$,'container',function(){if (this.$parent)return this.$parent;
if (this.toplevel || this.tipo.$crtmm$.$cont===0)return this.containingPackage;
return typeLiteral$meta({Type$typeLiteral:this.tipo.$crtmm$.$cont});
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:NestableDeclaration$meta$declaration},{t:Package$meta$declaration}]},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','container']};});atr$(openFunction$,'parameterDeclarations',function(){return FunctionalDeclaration$meta$declaration.$$.prototype.$prop$getParameterDeclarations.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:FunctionOrValueDeclaration$meta$declaration}}},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','parameterDeclarations']};});atr$(openFunction$,'actual',function(){return (getrtmm$$(this.tipo).pa&2) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','actual']};});atr$(openFunction$,'formal',function(){return (getrtmm$$(this.tipo).pa&4) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','formal']};});atr$(openFunction$,'$_default',function(){return (getrtmm$$(this.tipo).pa&8) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','default']};});atr$(openFunction$,'shared',function(){return (getrtmm$$(this.tipo).pa&1) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','shared']};});atr$(openFunction$,'toplevel',function(){return this.toplevel_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','toplevel']};});atr$(openFunction$,'qualifiedName',function(){return qname$(this.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','qualifiedName']};});atr$(openFunction$,'name',function(){return this.name_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','name']};});atr$(openFunction$,'typeParameterDeclarations',function(){return GenericDeclaration$meta$declaration.$$.prototype.$prop$getTypeParameterDeclarations.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:TypeParameter$meta$declaration}}},$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$at','typeParameterDeclarations']};});atr$(openFunction$,'containingModule',function(){var openFunction$=this;return openFunction$.pkg.container},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:OpenFunction$jsint,pa:3,d:['ceylon.language.jsint','OpenFunction','$at','containingModule']};});openFunction$.$_apply=function(types,$mptypes){
var mm=this.tipo.$crtmm$;
var ta={t:this.tipo};
validate$typeparams(ta,mm.tp,types);
if (!extendsType(mm.$t,$mptypes.Return$apply)){
throw IncompatibleTypeException$meta$model("actual type of applied declaration is not compatible with expected type");
}
validate$params(mm.ps,$mptypes.Arguments$apply,"Wrong number of arguments when applying function");
return ta.a?AppliedFunction$jsint(this.tipo,{Type$AppliedFunction:mm.$t,Arguments$AppliedFunction:tupleize$params(mm.ps,ta.a)},undefined,ta.a):
AppliedFunction$jsint(this.tipo,{Type$AppliedFunction:mm.$t,Arguments$AppliedFunction:tupleize$params(mm.ps)});
}
openFunction$.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Function$meta$model,a:{Arguments$Function:'Arguments$apply',Type$Function:'Return$apply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenFunction$jsint,tp:{Return$apply:{def:{t:Anything}},Arguments$apply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$m','apply']};};openFunction$.memberApply=function memberApply(cont,types,$mptypes){
var mm=this.tipo.$crtmm$;
if (!(cont.tipo && extendsType({t:cont.tipo},{t:mm.$cont}))&&cont!==nothingType$meta$model())
throw IncompatibleTypeException$meta$model("Incompatible Container type argument");
if (!extendsType(mm.$t,$mptypes.Return$memberApply))throw IncompatibleTypeException$meta$model("Incompatible Return type argument");
validate$params(mm.ps,$mptypes.Arguments$memberApply,"Wrong number of Arguments for memberApply");
var ta={t:this.tipo};
validate$typeparams(ta,mm.tp,types);
return AppliedMethod$jsint(this.tipo,$ci2na$(types),{Container$AppliedMethod:$mptypes.Container$memberApply,
Type$AppliedMethod:mm.$t,Arguments$AppliedMethod:tupleize$params(mm.ps,ta.a)});
}
openFunction$.memberApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Method$meta$model,a:{Container$Method:'Container$memberApply',Arguments$Method:'Arguments$memberApply',Type$Method:'Return$memberApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenFunction$jsint,tp:{Container$memberApply:{def:{t:Nothing}},Return$memberApply:{def:{t:Anything}},Arguments$memberApply:{sts:[{t:Sequential,a:{Element$Sequential:{t:Anything}}}],def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$m','memberApply']};};openFunction$.getParameterDeclaration=function (nm){
var pd=this.parameterDeclarations;
for (var i=0; i < pd.size; i++) {
if (nm.equals(pd[i].name))return pd[i];
}
return null;
}
openFunction$.getParameterDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:FunctionOrValueDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$m','getParameterDeclaration']};};openFunction$.getTypeParameterDeclaration=function(n){
return GenericDeclaration$meta$declaration.$$.prototype.getTypeParameterDeclaration.call(this,n);
}
openFunction$.getTypeParameterDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:TypeParameter$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$m','getTypeParameterDeclaration']};};openFunction$.annotations=function(m){
return annd$annotations(this,m);
}
openFunction$.annotations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Annotation$annotations'}},ps:[],$cont:OpenFunction$jsint,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$m','annotations']};};openFunction$.annotated=function($mpt){
var x=annd$annotations(this,{Annotation$annotations:$mpt.Annotation$annotated});
return x&&x.size>0;
}
openFunction$.annotated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:OpenFunction$jsint,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$m','annotated']};};openFunction$.equals=function(o) {
if (is$(o,{t:OpenFunction$jsint})) {
return o.tipo === this.tipo;
}
return false;
}
openFunction$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$m','equals']};};atr$(openFunction$,'string',function(){var openFunction$=this;return "function ".plus(openFunction$.qualifiedName)},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenFunction$jsint,pa:3,d:['ceylon.language.jsint','OpenFunction','$at','string']};});atr$(openFunction$,'hash',function(){var openFunction$=this;return openFunction$.string.hash},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:OpenFunction$jsint,pa:3,d:['ceylon.language.jsint','OpenFunction','$at','hash']};});openFunction$.memberInvoke=function memberInvoke(cont,targs,args) {
if (targs===undefined)targs=empty();
if (args===undefined)args=empty();
var a=[];
for (var i=0;i<args.size;i++)a.push(args.$_get(i));
if (targs.size) {
var mm=getrtmm$$(this.tipo);
mm=get_model(mm);
var oname=mm.nm;
mm=mm.tp;
if (mm.length !== targs.size)throw IncompatibleTypeException$meta$model("Expected " + mm.length + " type arguments");
var ta={};
for (i=0;i<mm.length;i++) {
var k=mm[i].nm + '$' + oname;
ta[k] = {t:targs.$_get(i).tipo};
if (targs.$_get(i).$$targs$$.Target$Type.a)ta[k].a=targs.$_get(i).$$targs$$.Target$Type.a;
}
a.push(ta);
}
if (this.tipo.apply===undefined) {
//Formal method?
var n=this.name;
n=cont[n] || (cont.$$ && cont.$$.prototype && cont.$$.prototype[n]) || (cont.prototype && cont.prototype[n]);
if (typeof(n)==='function')return n.apply(cont,a);
}
return this.tipo.apply(cont,a);
}
openFunction$.memberInvoke.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}},{nm:'typeArguments',mt:'prm',def:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}},{nm:'arguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Anything}}}}],$cont:OpenFunction$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenFunction','$m','memberInvoke']};};})(OpenFunction$jsint.$$.prototype);}
return OpenFunction$jsint;}
ex$.$init$OpenFunction$jsint=$init$OpenFunction$jsint;$init$OpenFunction$jsint();function OpenInterface$jsint(pkg, meta, that) {
if (meta===undefined)throw Exception("Interface reference not found. Metamodel doesn't work with modules compiled in lexical scope style");
$init$OpenInterface$jsint();
if (that===undefined)that=new OpenInterface$jsint.$$;
that.pkg_ = pkg;
var _mm=getrtmm$$(meta);
if (_mm === undefined) {
//it's a metamodel
that.meta_=meta;
that.tipo=_findTypeFromModel(pkg,meta);
_mm = getrtmm$$(that.tipo);
} else {
//it's a type
that.tipo = meta;
that.meta_ = get_model(_mm);
}
var nm=(that.meta&&that.meta.nm)||_mm.d[_mm.d.length-1];
if (nm && nm.indexOf('$')>0) {
nm=nm.substring(0,nm.indexOf('$'));
}
that.name_=nm;
that.toplevel_=_mm.$cont === undefined;
InterfaceDeclaration$meta$declaration(that);
return that;
}
OpenInterface$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'pkg',mt:'prm',$t:{t:Package$meta$declaration},pa:1},{nm:'meta',mt:'prm',$t:{t:$_Object},pa:1}],sts:[{t:InterfaceDeclaration$meta$declaration}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface']};};
ex$.OpenInterface$jsint=OpenInterface$jsint;function $init$OpenInterface$jsint(){if(OpenInterface$jsint.$$===undefined){initTypeProto(OpenInterface$jsint,'ceylon.language.jsint::OpenInterface',Basic,$init$InterfaceDeclaration$meta$declaration());
(function(openInterface$){atr$(openInterface$,'pkg',function(){return this.pkg_;},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenInterface$jsint,pa:1,d:['ceylon.language.jsint','OpenInterface','$at','pkg']};});atr$(openInterface$,'meta',function(){return this.meta_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Object},$cont:OpenInterface$jsint,pa:1,d:['ceylon.language.jsint','OpenInterface','$at','meta']};});openInterface$.interfaceApply=function(targs,$mptypes) {
return this.$_apply(targs,$mptypes);
}
openInterface$.interfaceApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Interface$meta$model,a:{Type$Interface:'Type$interfaceApply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenInterface$jsint,tp:{Type$interfaceApply:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','interfaceApply']};};openInterface$.memberInterfaceApply=function(cont,targs,$mptypes){
var mm=this.tipo.$crtmm$;
if (cont!==nothingType$meta$model() && !extendsType({t:cont.tipo},{t:mm.$cont}))
throw IncompatibleTypeException$meta$model("Incompatible Container specified");
var _t={t:this.tipo};
if ($mptypes.Type$memberInterfaceApply.a)_t.a=$mptypes.Type$memberInterfaceApply.a;
validate$typeparams(_t,mm.tp,targs);
var rv=AppliedMemberInterface$jsint(this.tipo,
{Container$AppliedMemberInterface:$mptypes.Container$memberInterfaceApply,Type$AppliedMemberInterface:_t});
if (_t.a)rv.$targs=_t.a;
return rv;
}
openInterface$.memberInterfaceApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:MemberInterface$meta$model,a:{Container$MemberInterface:'Container$memberInterfaceApply',Type$MemberInterface:'Type$memberInterfaceApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenInterface$jsint,tp:{Container$memberInterfaceApply:{def:{t:Nothing}},Type$memberInterfaceApply:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','memberInterfaceApply']};};openInterface$.$_apply=function(a,b){
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.$_apply.call(this,a,b);
}
openInterface$.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Interface$meta$model,a:{Type$Interface:'Type$apply'}},ps:[{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenInterface$jsint,tp:{Type$apply:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','apply']};};openInterface$.memberApply=function(a,b,c) {
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.memberApply.call(this,a,b,c);
}
openInterface$.memberApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'i',l:[{t:Member$meta$model,a:{Kind$Member:{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$memberApply'}},Container$Member:'Container$memberApply'}},{t:ClassOrInterface$meta$model,a:{Type$ClassOrInterface:'Type$memberApply'}}]},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}},{nm:'typeArguments',mt:'prm',seq:1,$t:{t:Sequential,a:{Element$Sequential:{t:Type$meta$model,a:{Target$Type:{t:Anything}}}}}}],$cont:OpenInterface$jsint,tp:{Container$memberApply:{def:{t:Nothing}},Type$memberApply:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','memberApply']};};openInterface$.memberDeclarations=function(a,b){
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.memberDeclarations.call(this,a,b);
}
openInterface$.memberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$memberDeclarations'}},ps:[],$cont:OpenInterface$jsint,tp:{Kind$memberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','memberDeclarations']};};openInterface$.annotatedMemberDeclarations=function(m,i) {
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.annotatedMemberDeclarations.call(this,m,i);
}
openInterface$.annotatedMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$annotatedMemberDeclarations'}},ps:[],$cont:OpenInterface$jsint,tp:{Kind$annotatedMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation$annotatedMemberDeclarations:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','annotatedMemberDeclarations']};};openInterface$.annotations=function(m){
return annd$annotations(this,m);
}
openInterface$.annotations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Annotation$annotations'}},ps:[],$cont:OpenInterface$jsint,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','annotations']};};openInterface$.annotated=function($mpt){
var x=annd$annotations(this,{Annotation$annotations:$mpt.Annotation$annotated});
return x&&x.size>0;
}
openInterface$.annotated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:OpenInterface$jsint,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','annotated']};};openInterface$.getMemberDeclaration=function(a,b,c){
return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.getMemberDeclaration.call(this,a,b,c);
}
openInterface$.getMemberDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Kind$getMemberDeclaration']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenInterface$jsint,tp:{Kind$getMemberDeclaration:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','getMemberDeclaration']};};atr$(openInterface$,'openType',function(){return FreeInterface$jsint(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','openType']};});atr$(openInterface$,'typeParameterDeclarations',function(){return GenericDeclaration$meta$declaration.$$.prototype.$prop$getTypeParameterDeclarations.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:TypeParameter$meta$declaration}}},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','typeParameterDeclarations']};});openInterface$.getTypeParameterDeclaration=function(n){
return GenericDeclaration$meta$declaration.$$.prototype.getTypeParameterDeclaration.call(this,n);
}
openInterface$.getTypeParameterDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:TypeParameter$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','getTypeParameterDeclaration']};};atr$(openInterface$,'extendedType',function(){var sc = this.tipo.$crtmm$['super'];
if (sc === undefined)return null;
var mm = getrtmm$$(sc.t);
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
return FreeClass$jsint(openClass$jsint(modules$meta().find(_m['$mod-name'],_m['$mod-version']).findPackage(mm.d[0]), sc.t));
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:OpenClassType$meta$declaration}]},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','extendedType']};});atr$(openInterface$,'satisfiedTypes',function(){var ints = this.tipo.$crtmm$.sts;
if (ints && ints.length) {
var rv = [];
for (var i=0; i < ints.length; i++) {
var ifc = ints[i].t;
var mm = getrtmm$$(ifc);
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
rv.push(FreeInterface$jsint(OpenInterface$jsint(modules$meta().find(_m['$mod-name'],_m['$mod-version']).findPackage(mm.d[0]), ifc)));
}
return rv.$sa$({t:OpenInterfaceType$meta$declaration});
}
return empty();
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenInterfaceType$meta$declaration}}},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','satisfiedTypes']};});atr$(openInterface$,'name',function(){return this.name_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','name']};});atr$(openInterface$,'actual',function(){return (getrtmm$$(this.tipo).pa&2) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','actual']};});atr$(openInterface$,'formal',function(){return (getrtmm$$(this.tipo).pa&4) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','formal']};});atr$(openInterface$,'$_default',function(){return (getrtmm$$(this.tipo).pa&8) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','default']};});atr$(openInterface$,'shared',function(){return (getrtmm$$(this.tipo).pa&1) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','shared']};});atr$(openInterface$,'toplevel',function(){return this.toplevel_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','toplevel']};});atr$(openInterface$,'qualifiedName',function(){return qname$(this.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','qualifiedName']};});atr$(openInterface$,'container',function(){return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.$prop$getContainer.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:NestableDeclaration$meta$declaration},{t:Package$meta$declaration}]},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','container']};});atr$(openInterface$,'caseTypes',function(){return ClassOrInterfaceDeclaration$meta$declaration.$$.prototype.$prop$getCaseTypes.get.call(this);
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$at','caseTypes']};});openInterface$.declaredMemberDeclarations=function(m) {
return this.memberDeclarations({Kind$memberDeclarations:m.Kind$declaredMemberDeclarations},1);
}
openInterface$.declaredMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$declaredMemberDeclarations'}},ps:[],$cont:OpenInterface$jsint,tp:{Kind$declaredMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','declaredMemberDeclarations']};};openInterface$.annotatedDeclaredMemberDeclarations=function($$$mptypes){
return this.annotatedMemberDeclarations({Kind$annotatedMemberDeclarations:$$$mptypes.Kind$annotatedDeclaredMemberDeclarations,
Annotation$annotatedMemberDeclarations:$$$mptypes.Annotation$annotatedDeclaredMemberDeclarations},1);
}
openInterface$.annotatedDeclaredMemberDeclarations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$annotatedDeclaredMemberDeclarations'}},ps:[],$cont:OpenInterface$jsint,tp:{Kind$annotatedDeclaredMemberDeclarations:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation$annotatedDeclaredMemberDeclarations:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','annotatedDeclaredMemberDeclarations']};};openInterface$.getDeclaredMemberDeclaration=function(nm,$mptypes){
return this.getMemberDeclaration(nm,{Kind$getMemberDeclaration:$mptypes.Kind$getDeclaredMemberDeclaration},1);
}
openInterface$.getDeclaredMemberDeclaration.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Kind$getDeclaredMemberDeclaration']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:OpenInterface$jsint,tp:{Kind$getDeclaredMemberDeclaration:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','getDeclaredMemberDeclaration']};};openInterface$.equals=function(other) {
return is$(other, {t:OpenInterface$jsint}) && other.tipo==this.tipo;
}
openInterface$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:OpenInterface$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenInterface','$m','equals']};};atr$(openInterface$,'isAlias',function(){return false},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenInterface$jsint,pa:3,d:['ceylon.language.jsint','OpenInterface','$at','isAlias']};});atr$(openInterface$,'string',function(){var openInterface$=this;return "interface ".plus(openInterface$.qualifiedName)},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenInterface$jsint,pa:3,d:['ceylon.language.jsint','OpenInterface','$at','string']};});atr$(openInterface$,'hash',function(){var openInterface$=this;return openInterface$.string.hash},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:OpenInterface$jsint,pa:3,d:['ceylon.language.jsint','OpenInterface','$at','hash']};});atr$(openInterface$,'containingPackage',function(){var openInterface$=this;return openInterface$.pkg},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenInterface$jsint,pa:3,d:['ceylon.language.jsint','OpenInterface','$at','containingPackage']};});atr$(openInterface$,'containingModule',function(){var openInterface$=this;return openInterface$.pkg.container},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:OpenInterface$jsint,pa:3,d:['ceylon.language.jsint','OpenInterface','$at','containingModule']};});})(OpenInterface$jsint.$$.prototype);}
return OpenInterface$jsint;}
ex$.$init$OpenInterface$jsint=$init$OpenInterface$jsint;$init$OpenInterface$jsint();function OpenTvar$jsint(declaration,openTvar$){$init$OpenTvar$jsint();
if(openTvar$===undefined)openTvar$=new OpenTvar$jsint.$$;
openTvar$.$1xx_=declaration;OpenTypeVariable$meta$declaration(openTvar$);return openTvar$;}
OpenTvar$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'declaration',mt:'prm',$t:{t:TypeParameter$meta$declaration},pa:3}],sts:[{t:OpenTypeVariable$meta$declaration}],an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenTvar']};};
ex$.OpenTvar$jsint=OpenTvar$jsint;function $init$OpenTvar$jsint(){if(OpenTvar$jsint.$$===undefined){initTypeProto(OpenTvar$jsint,'ceylon.language.jsint::OpenTvar',Basic,$init$OpenTypeVariable$meta$declaration());
(function(openTvar$){atr$(openTvar$,'declaration',function(){return this.$1xx_;},undefined,function(){return{mod:$CCMM$,$t:{t:TypeParameter$meta$declaration},$cont:OpenTvar$jsint,pa:3,d:['ceylon.language.jsint','OpenTvar','$at','declaration']};});openTvar$.equals=function(o) {
return is$(o, {t:OpenTvar$jsint}) && this.declaration.equals(o.declaration);
}
openTvar$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:OpenTvar$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenTvar','$m','equals']};};atr$(openTvar$,'string',function(){var openTvar$=this;return openTvar$.declaration.qualifiedName;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenTvar$jsint,pa:3,d:['ceylon.language.jsint','OpenTvar','$at','string']};});atr$(openTvar$,'hash',function(){var openTvar$=this;return openTvar$.string.hash;},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:OpenTvar$jsint,pa:3,d:['ceylon.language.jsint','OpenTvar','$at','hash']};});})(OpenTvar$jsint.$$.prototype);}
return OpenTvar$jsint;}
ex$.$init$OpenTvar$jsint=$init$OpenTvar$jsint;$init$OpenTvar$jsint();function OpenTypeParam$jsint(cntnr,_fname,openTypeParam$){$init$OpenTypeParam$jsint();
if(openTypeParam$===undefined)openTypeParam$=new OpenTypeParam$jsint.$$;
openTypeParam$.cntnr_=cntnr;openTypeParam$._fname_=_fname;TypeParameter$meta$declaration(openTypeParam$);openTypeParam$.$1xy_=_fname.measure(0,($1xz=_fname.firstOccurrence(Character(36,true)),nn$($1xz)?$1xz:_fname.size));var $1xz;return openTypeParam$;}
OpenTypeParam$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'cntnr',mt:'prm',$t:{t:$_Object},pa:1},{nm:'_fname',mt:'prm',$t:{t:$_String},pa:1}],sts:[{t:TypeParameter$meta$declaration}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenTypeParam']};};
ex$.OpenTypeParam$jsint=OpenTypeParam$jsint;function $init$OpenTypeParam$jsint(){if(OpenTypeParam$jsint.$$===undefined){initTypeProto(OpenTypeParam$jsint,'ceylon.language.jsint::OpenTypeParam',Basic,$init$TypeParameter$meta$declaration());
(function(openTypeParam$){atr$(openTypeParam$,'cntnr',function(){return this.cntnr_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Object},$cont:OpenTypeParam$jsint,pa:1,d:['ceylon.language.jsint','OpenTypeParam','$at','cntnr']};});atr$(openTypeParam$,'_fname',function(){return this._fname_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenTypeParam$jsint,pa:1,d:['ceylon.language.jsint','OpenTypeParam','$at','_fname']};});atr$(openTypeParam$,'container',function(){if (is$(this.cntnr,{t:NestableDeclaration$meta$declaration}))return this.cntnr;
var mm=getrtmm$$(this.cntnr);
if (mm && mm.d) {
var mdl=get_model(mm);
if (mdl && mdl.mt) {
var _m = typeof(mm.mod)==='function'?mm.mod():mm.mod;
var _mod = modules$meta().find(_m['$mod-name'],_m['$mod-version']);
var pkg=_mod.findPackage(mm.d[0]);
if (mdl.mt==='i')return OpenInterface$jsint(pkg,this.cntnr);
if (mdl.mt==='c')return openClass$jsint(pkg,this.cntnr);
if (mdl.mt==='m')return OpenFunction$jsint(pkg,this.cntnr);
}
}
throw new TypeError("Invalid container for " + this.string);
},undefined,function(){return{mod:$CCMM$,$t:{t:NestableDeclaration$meta$declaration},$cont:OpenTypeParam$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenTypeParam','$at','container']};});atr$(openTypeParam$,'defaulted',function(){var tp=getrtmm$$(this.container.tipo).tp[this._fname];
if (tp) {
return tp['def'] !== undefined;
}
throw new Error("Invalid Type Parameter");
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenTypeParam$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenTypeParam','$at','defaulted']};});atr$(openTypeParam$,'defaultTypeArgument',function(){var tp=getrtmm$$(this.container.tipo).tp[this._fname];
if (typeof(tp.def)==='string') {
return OpenTvar$jsint(OpenTypeParam$jsint(this.container.tipo, tp.def));
}
return tp.def?_openTypeFromTarg(tp.def,this.container.tipo):null;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:OpenType$meta$declaration}]},$cont:OpenTypeParam$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenTypeParam','$at','defaultTypeArgument']};});atr$(openTypeParam$,'variance',function(){var tp=getrtmm$$(this.container.tipo).tp[this._fname];
if (tp) {
if (tp.dv==='out')return covariant$meta$declaration();
if (tp.dv=== 'in')return contravariant$meta$declaration();
return invariant$meta$declaration();
}
throw new Error("Invalid Type Parameter");
},undefined,function(){return{mod:$CCMM$,$t:{t:Variance$meta$declaration},$cont:OpenTypeParam$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenTypeParam','$at','variance']};});atr$(openTypeParam$,'satisfiedTypes',function(){var tp=getrtmm$$(this.container.tipo).tp[this._fname];
if (tp.sts) {
var a=[];
for (var i=0;i<tp.sts.length;i++) {
a.push(_openTypeFromTarg(tp.sts[i],this.container.tipo));
}
return a.$sa$({t:OpenType$meta$declaration});
}
return empty();
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:OpenTypeParam$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenTypeParam','$at','satisfiedTypes']};});atr$(openTypeParam$,'caseTypes',function(){var tp=getrtmm$$(this.container.tipo).tp[this._fname];
if (tp.of) {
var a=[];
for (var i=0;i<tp.of.length;i++) {
var _ct=tp.of[i];if (typeof(_ct)==='function')_ct=getrtmm$$(_ct).$t;
a.push(_openTypeFromTarg(_ct,this.container.tipo));
}
return a.$sa$({t:OpenType$meta$declaration});
}
return empty();
},undefined,function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:{t:OpenType$meta$declaration}}},$cont:OpenTypeParam$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenTypeParam','$at','caseTypes']};});openTypeParam$.equals=function(o,skip) {
if (is$(o,{t:OpenTypeParam$jsint}) && o._fname===this._fname) {
if (!skip) {
var mc=this.container,oc=o.container;
return mc.equals(oc);
}
return true;
}
return false;
}
openTypeParam$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:OpenTypeParam$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenTypeParam','$m','equals']};};atr$(openTypeParam$,'qualifiedName',function(){return qname$(this.container.tipo)+"."+this.name;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenTypeParam$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenTypeParam','$at','qualifiedName']};});atr$(openTypeParam$,'name',function(){return this.$1xy_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenTypeParam$jsint,pa:3,d:['ceylon.language.jsint','OpenTypeParam','$at','name']};});atr$(openTypeParam$,'string',function(){var openTypeParam$=this;return "given ".plus(openTypeParam$.qualifiedName)},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenTypeParam$jsint,pa:3,d:['ceylon.language.jsint','OpenTypeParam','$at','string']};});atr$(openTypeParam$,'hash',function(){var openTypeParam$=this;return openTypeParam$.string.hash},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:OpenTypeParam$jsint,pa:3,d:['ceylon.language.jsint','OpenTypeParam','$at','hash']};});})(OpenTypeParam$jsint.$$.prototype);}
return OpenTypeParam$jsint;}
ex$.$init$OpenTypeParam$jsint=$init$OpenTypeParam$jsint;$init$OpenTypeParam$jsint();function OpenValue$jsint(pkg, meta, that){
if (meta===undefined)throw Exception("Value reference not found. Metamodel doesn't work with modules compiled in lexical scope style");
$init$OpenValue$jsint();
if (that===undefined)that=new OpenValue$jsint.$$;
that.pkg_ = pkg;
var _mm=getrtmm$$(meta);
if (_mm === undefined) {
//it's a metamodel
that.meta_=meta;
if (meta['mt']==='prm') {
that.tipo={$crtmm$:meta};
//TODO I think we need to do something else here
} else {
that.tipo=_findTypeFromModel(pkg,meta);
}
_mm = getrtmm$$(that.tipo);
} else {
//it's a type
that.tipo = meta;
that.meta_ = get_model(_mm);
}
var nm=that.meta?that.meta.nm:_mm&&_mm.d&&_mm.d[_mm.d.length-1];
if (nm && nm.indexOf('$')>0) {
nm=nm.substring(0,nm.indexOf('$'));
}
that.name_=nm;
that.toplevel_=_mm.$cont === undefined;
ValueDeclaration$meta$declaration(that);
return that;
}
OpenValue$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'pkg',mt:'prm',$t:{t:Package$meta$declaration},pa:1},{nm:'meta',mt:'prm',$t:{t:$_Object},pa:1}],sts:[{t:ValueDeclaration$meta$declaration}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue']};};
ex$.OpenValue$jsint=OpenValue$jsint;function $init$OpenValue$jsint(){if(OpenValue$jsint.$$===undefined){initTypeProto(OpenValue$jsint,'ceylon.language.jsint::OpenValue',Basic,$init$ValueDeclaration$meta$declaration());
(function(openValue$){atr$(openValue$,'pkg',function(){return this.pkg_;},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenValue$jsint,pa:1,d:['ceylon.language.jsint','OpenValue','$at','pkg']};});atr$(openValue$,'meta',function(){return this.meta_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Object},$cont:OpenValue$jsint,pa:1,d:['ceylon.language.jsint','OpenValue','$at','meta']};});atr$(openValue$,'name',function(){return this.name_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','name']};});openValue$.$_apply=function($$$mptypes){
var mm=getrtmm$$(this.tipo);
if (!extendsType(mm.$t,$$$mptypes.Get$apply))throw IncompatibleTypeException$meta$model("Incompatible Get type argument");
if (!extendsType($$$mptypes.Set$apply,this.tipo.set?mm.$t:{t:Nothing}))throw IncompatibleTypeException$meta$model("Incompatible Set type argument");
return AppliedValue$jsint(undefined,this.tipo,{Get$Value:$$$mptypes.Get$apply,Set$Value:$$$mptypes.Set$apply});
}
openValue$.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Value$meta$model,a:{Get$Value:'Get$apply',Set$Value:'Set$apply'}},ps:[],$cont:OpenValue$jsint,tp:{Get$apply:{def:{t:Anything}},Set$apply:{def:{t:Nothing}}},pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$m','apply']};};openValue$.memberApply=function(cont,$mptypes) {
var mm=getrtmm$$(this.tipo);
if (!(cont.tipo && extendsType({t:cont.tipo},{t:mm.$cont}))&&cont!==nothingType$meta$model())
throw IncompatibleTypeException$meta$model("Incompatible Container type argument");
if (!extendsType(mm.$t,$mptypes.Get$memberApply))throw IncompatibleTypeException$meta$model("Incompatible Get type argument");
if (!extendsType($mptypes.Set$memberApply,this.tipo.set?mm.$t:{t:Nothing}))throw IncompatibleTypeException$meta$model("Incompatible Set type argument");
return AppliedAttribute(this.meta.nm,this.tipo,{Get$Attribute:$mptypes.Get$apply,Set$Attribute:$mptypes.Set$apply,
Container$Attribute:$mptypes.Container$memberApply});
}
openValue$.memberApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Attribute$meta$model,a:{Set$Attribute:'Set$memberApply',Container$Attribute:'Container$memberApply',Get$Attribute:'Get$memberApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}}],$cont:OpenValue$jsint,tp:{Container$memberApply:{def:{t:Nothing}},Get$memberApply:{def:{t:Anything}},Set$memberApply:{def:{t:Nothing}}},pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$m','memberApply']};};openValue$.memberSet=function(c,v) {
if (!is$(c,{t:this.tipo.$crtmm$.$cont}))throw IncompatibleTypeException$meta$model("Incompatible container type");
if (!is$(v,this.tipo.$crtmm$.$t))throw IncompatibleTypeException$meta$model("Incompatible value type");
if (!this.tipo.set)throw MutationException$meta$model(qname$(this.tipo.$crtmm$)+" is not writable");
c[this.name]=v;
}
openValue$.memberSet.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}},{nm:'newValue',mt:'prm',$t:{t:Anything}}],$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$m','memberSet']};};atr$(openValue$,'variable',function(){return (getrtmm$$(this.tipo).pa & 1024) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','variable']};});atr$(openValue$,'late',function(){return (getrtmm$$(this.tipo).pa&4) > 128;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','late']};});atr$(openValue$,'objectValue',function(){return this.meta&&this.meta.mt==='o';
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','objectValue']};});atr$(openValue$,'objectClass',function(){if (this.objectValue) {
var _m=getrtmm$$(this.tipo);
if (_m && _m.$t && typeof(_m.$t.t)==='function')return openClass$jsint(this._pkg,_m.$t.t);
}
return null;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ClassDeclaration$meta$declaration}]},$cont:OpenValue$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','objectClass']};});atr$(openValue$,'defaulted',function(){if (this.parameter) {
return this.param$$.defaulted;
}
return false;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','defaulted']};});atr$(openValue$,'variadic',function(){if (this.parameter) {
return this.param$$.variadic;
}
return false;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','variadic']};});atr$(openValue$,'parameter',function(){if (this.param$$!==undefined)return this.param$$!==null;
if (is$(this.container,{t:'u',l:[{t:FunctionalDeclaration$meta$declaration},{t:ClassWithInitializerDeclaration$meta$declaration}]})) {
var param;
for (var iter=this.container.parameterDeclarations.iterator();(param=iter.next())!==finished();) {
if (param.name.equals(this.name)) {
this.param$$=param;
return true;
}
}
}
this.param$$=null;
return false;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','parameter']};});openValue$.annotations=function(m){
return annd$annotations(this,m);
}
openValue$.annotations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Annotation$annotations'}},ps:[],$cont:OpenValue$jsint,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$m','annotations']};};openValue$.annotated=function($mpt){
var x=annd$annotations(this,{Annotation$annotations:$mpt.Annotation$annotated});
return x&&x.size>0;
}
openValue$.annotated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:OpenValue$jsint,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$m','annotated']};};atr$(openValue$,'openType',function(){if (this.tipo) {
var mm = getrtmm$$(this.tipo);
if (typeof(mm.$t)==='string') {
return OpenTvar$jsint(OpenTypeParam$jsint(mm.$cont,mm.$t));
}
return _openTypeFromTarg(mm.$t, this.tipo);
}
throw Error("OpenValue.openType-we don't have a metamodel!");
},undefined,function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','openType']};});atr$(openValue$,'setter',function(){if (getrtmm$$(this.tipo) && get_model(getrtmm$$(this.tipo)) && get_model(getrtmm$$(this.tipo)).$set) {
return OpenSetter(this);
}
return null;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:SetterDeclaration$meta$declaration}]},$cont:OpenValue$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','setter']};});atr$(openValue$,'actual',function(){return (getrtmm$$(this.tipo).pa&2) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','actual']};});atr$(openValue$,'formal',function(){return (getrtmm$$(this.tipo).pa&4) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','formal']};});atr$(openValue$,'$_default',function(){return (getrtmm$$(this.tipo).pa&8) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','default']};});atr$(openValue$,'shared',function(){return (getrtmm$$(this.tipo).pa&1) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','shared']};});atr$(openValue$,'toplevel',function(){return this.toplevel_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','toplevel']};});atr$(openValue$,'container',function(){if (this.$parent)return this.$parent;
if (this.toplevel || this.tipo.$crtmm$.$cont===0)return this.containingPackage;
this.$parent=typeLiteral$meta({Type$typeLiteral:this.tipo.$crtmm$.$cont});
return this.$parent;
},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Package$meta$declaration},{t:NestableDeclaration$meta$declaration}]},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','container']};});atr$(openValue$,'qualifiedName',function(){return qname$(this.tipo);
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$at','qualifiedName']};});openValue$.equals=function(o) {
if (is$(o,{t:OpenValue$jsint}))return this.meta===o.meta;
if (is$(o,{t:ValueDeclaration$meta$declaration})&&o.qualifiedName.equals(this.qualifiedName)&&
o.shared==this.shared&&o.actual==this.actual&&o.formal==this.formal&&o.$_default==this.$_default&&
o.variable==this.variable&&o.toplevel==this.toplevel&&o.openType.equals(this.openType)) {
var _mc=this.container,_oc=o.container;
return _mc===null?_oc===null:_mc.equals(_oc);
}
return false;
}
openValue$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:OpenValue$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValue','$m','equals']};};atr$(openValue$,'string',function(){var openValue$=this;return "value ".plus(openValue$.qualifiedName)},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenValue$jsint,pa:3,d:['ceylon.language.jsint','OpenValue','$at','string']};});atr$(openValue$,'hash',function(){var openValue$=this;return openValue$.string.hash},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:OpenValue$jsint,pa:3,d:['ceylon.language.jsint','OpenValue','$at','hash']};});atr$(openValue$,'containingModule',function(){var openValue$=this;return openValue$.containingPackage.container},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:OpenValue$jsint,pa:3,d:['ceylon.language.jsint','OpenValue','$at','containingModule']};});atr$(openValue$,'containingPackage',function(){var openValue$=this;return openValue$.pkg},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenValue$jsint,pa:3,d:['ceylon.language.jsint','OpenValue','$at','containingPackage']};});})(OpenValue$jsint.$$.prototype);}
return OpenValue$jsint;}
ex$.$init$OpenValue$jsint=$init$OpenValue$jsint;$init$OpenValue$jsint();function ValParamDecl$jsint(cont,param,vpd$){
$init$ValParamDecl$jsint();
if (vpd$===undefined)vpd$=new ValParamDecl$jsint.$$;
vpd$.cont_=cont;
vpd$.param_=param;
OpenValue$jsint(cont.containingPackage,param,vpd$);
if (is$(cont,{t:ClassDeclaration$meta$declaration})) {
vpd$.at$=cont.getMemberDeclaration(vpd$.tipo.$crtmm$.nm,{Kind$getMemberDeclaration:{t:ValueDeclaration$meta$declaration}});
}
return vpd$;
}
ValParamDecl$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:OpenValue$jsint},ps:[{nm:'cont',mt:'prm',$t:{t:'i',l:[{t:NestableDeclaration$meta$declaration},{t:FunctionalDeclaration$meta$declaration}]},pa:1},{nm:'param',mt:'prm',$t:{t:$_Object},pa:1}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl']};};
ex$.ValParamDecl$jsint=ValParamDecl$jsint;function $init$ValParamDecl$jsint(){if(ValParamDecl$jsint.$$===undefined){initTypeProto(ValParamDecl$jsint,'ceylon.language.jsint::ValParamDecl',$init$OpenValue$jsint());
(function(valParamDecl$){atr$(valParamDecl$,'cont',function(){return this.cont_;},undefined,function(){return{mod:$CCMM$,$t:{t:'i',l:[{t:NestableDeclaration$meta$declaration},{t:FunctionalDeclaration$meta$declaration}]},$cont:ValParamDecl$jsint,pa:1,d:['ceylon.language.jsint','ValParamDecl','$at','cont']};});atr$(valParamDecl$,'param',function(){return this.param_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Object},$cont:ValParamDecl$jsint,pa:1,d:['ceylon.language.jsint','ValParamDecl','$at','param']};});atr$(valParamDecl$,'actual',function(){return (this.param.pa & 2) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$at','actual']};});atr$(valParamDecl$,'formal',function(){return (this.param.pa & 4) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$at','formal']};});atr$(valParamDecl$,'$_default',function(){return (this.param.pa & 8) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$at','default']};});atr$(valParamDecl$,'shared',function(){return (this.param.pa & 1) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$at','shared']};});atr$(valParamDecl$,'variadic',function(){return this.param.seq!==undefined;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$at','variadic']};});atr$(valParamDecl$,'variable',function(){return (this.param.pa & 1024) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$at','variable']};});atr$(valParamDecl$,'defaulted',function(){return this.param.def!==undefined;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$at','defaulted']};});atr$(valParamDecl$,'openType',function(){var t = this.param.$t;
if (typeof(t)==='string')return OpenTvar$jsint(OpenTypeParam$jsint(this.cont,t));
return _openTypeFromTarg(t);
},undefined,function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:ValParamDecl$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$at','openType']};});atr$(valParamDecl$,'name',function(){return this.param.nm;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:ValParamDecl$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$at','name']};});atr$(valParamDecl$,'qualifiedName',function(){return qname$(this.cont.tipo.$crtmm$)+"."+this.param.nm;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:ValParamDecl$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$at','qualifiedName']};});valParamDecl$.$_apply=function($$$mptypes){
var mm=getrtmm$$(this.tipo);
if (!extendsType(mm.$t,$$$mptypes.Get$apply))throw IncompatibleTypeException$meta$model("Incompatible Get type argument");
if (!extendsType($$$mptypes.Set$apply,this.tipo.set?mm.$t:{t:Nothing}))throw IncompatibleTypeException$meta$model("Incompatible Set type argument");
return AppliedValue$jsint(undefined,this.tipo,{Get$Value:$$$mptypes.Get$apply,Set$Value:$$$mptypes.Set$apply});
}
valParamDecl$.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Value$meta$model,a:{Get$Value:'Get$apply',Set$Value:'Set$apply'}},ps:[],$cont:ValParamDecl$jsint,tp:{Get$apply:{def:{t:Anything}},Set$apply:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$m','apply']};};valParamDecl$.memberApply=function memberApply(c,$mpt){
var r=OpenValue$jsint.$$.prototype.memberApply.call(this,c,$mpt);
if (!(this.at$ && this.at$.shared)) {
var n=this.name;
var nono=function(){
throw StorageException$meta$model("Attribute " + n + " is neither captured nor shared so it has no physical storage allocated and cannot be read by the metamodel");
}
nono.$crtmm$=r.$crtmm$;
r=nono;
}
return r;
}
valParamDecl$.memberApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Attribute$meta$model,a:{Set$Attribute:'Set$memberApply',Container$Attribute:'Container$memberApply',Get$Attribute:'Get$memberApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}}],$cont:ValParamDecl$jsint,tp:{Container$memberApply:{def:{t:Nothing}},Get$memberApply:{def:{t:Anything}},Set$memberApply:{def:{t:Nothing}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$m','memberApply']};};valParamDecl$.memberSet=function(a,b){
if (this.shared && this.variable && this.at$) {
return this.at$.memberSet(a,b);
}
throw StorageException$meta$model("Attribute " + this.name + " is neither captured nor shared so it has no physical storage allocated and cannot be read by the metamodel");
}
valParamDecl$.memberSet.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}},{nm:'newValue',mt:'prm',$t:{t:Anything}}],$cont:ValParamDecl$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$m','memberSet']};};valParamDecl$.memberGet=function(a){
if (this.shared && this.at$) {
return this.at$.memberGet(a);
}
throw StorageException$meta$model("Attribute " + this.name + " is neither captured nor shared so it has no physical storage allocated and cannot be read by the metamodel");
}
valParamDecl$.memberGet.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Anything},ps:[{nm:'container',mt:'prm',$t:{t:$_Object}}],$cont:ValParamDecl$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$m','memberGet']};};valParamDecl$.equals=function(o){
if (is$(o,{t:ValParamDecl$jsint}))return o.param===this.param;
var eq=is$(o,{t:ValueDeclaration$meta$declaration})&&o.qualifiedName.equals(this.qualifiedName)&&o.shared==this.shared&&o.actual==this.actual&&o.formal==this.formal&&o.$_default==this.$_default&&o.variable==this.variable&&!o.toplevel&&o.openType.equals(this.openType)&&this.container.equals(o.container);
if (eq && o.parameter) {
return o.variadic==this.variadic&&o.defaulted==this.defaulted;
}
return eq;
}
valParamDecl$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:ValParamDecl$jsint,pa:11,an:function(){return[$_native()];},d:['ceylon.language.jsint','ValParamDecl','$m','equals']};};atr$(valParamDecl$,'container',function(){var valParamDecl$=this;return valParamDecl$.cont;},undefined,function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Package$meta$declaration},{t:NestableDeclaration$meta$declaration}]},$cont:ValParamDecl$jsint,pa:3,d:['ceylon.language.jsint','ValParamDecl','$at','container']};});atr$(valParamDecl$,'parameter',function(){var valParamDecl$=this;return true;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl$jsint,pa:3,d:['ceylon.language.jsint','ValParamDecl','$at','parameter']};});atr$(valParamDecl$,'toplevel',function(){var valParamDecl$=this;return false;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:ValParamDecl$jsint,pa:3,d:['ceylon.language.jsint','ValParamDecl','$at','toplevel']};});})(ValParamDecl$jsint.$$.prototype);}
return ValParamDecl$jsint;}
ex$.$init$ValParamDecl$jsint=$init$ValParamDecl$jsint;$init$ValParamDecl$jsint();function OpenValueConstructor$jsint(containingPackage,meta,openValueConstructor$){$init$OpenValueConstructor$jsint();
if(openValueConstructor$===undefined)openValueConstructor$=new OpenValueConstructor$jsint.$$;
openValueConstructor$.$1z4_=containingPackage;openValueConstructor$.meta_=meta;ValueConstructorDeclaration$meta$declaration(openValueConstructor$);openValueConstructor$.$1z5_=false;return openValueConstructor$;}
OpenValueConstructor$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'containingPackage',mt:'prm',$t:{t:Package$meta$declaration},pa:3},{nm:'meta',mt:'prm',$t:{t:Anything},pa:1}],sts:[{t:ValueConstructorDeclaration$meta$declaration}],pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor']};};
ex$.OpenValueConstructor$jsint=OpenValueConstructor$jsint;function $init$OpenValueConstructor$jsint(){if(OpenValueConstructor$jsint.$$===undefined){initTypeProto(OpenValueConstructor$jsint,'ceylon.language.jsint::OpenValueConstructor',Basic,$init$ValueConstructorDeclaration$meta$declaration());
(function(openValueConstructor$){atr$(openValueConstructor$,'containingPackage',function(){return this.$1z4_;},undefined,function(){return{mod:$CCMM$,$t:{t:Package$meta$declaration},$cont:OpenValueConstructor$jsint,pa:3,d:['ceylon.language.jsint','OpenValueConstructor','$at','containingPackage']};});atr$(openValueConstructor$,'meta',function(){return this.meta_;},undefined,function(){return{mod:$CCMM$,$t:{t:Anything},$cont:OpenValueConstructor$jsint,pa:1,d:['ceylon.language.jsint','OpenValueConstructor','$at','meta']};});atr$(openValueConstructor$,'container',function(){if (this.cont$===undefined) {
var cc=getrtmm$$(this.meta).$cont;
this.cont$=openClass$jsint(this.containingPackage,cc);
}
return this.cont$;
},undefined,function(){return{mod:$CCMM$,$t:{t:ClassDeclaration$meta$declaration},$cont:OpenValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$at','container']};});openValueConstructor$.$_apply=function $_apply($m) {
return AppliedValueConstructor$jsint(this.meta,
{Type$AppliedValueConstructor:$m.Result$apply});
}
openValueConstructor$.$_apply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:ValueConstructor$meta$model,a:{Type$ValueConstructor:'Result$apply'}},ps:[],$cont:OpenValueConstructor$jsint,tp:{Result$apply:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$m','apply']};};openValueConstructor$.memberApply=function memberApply($m) {
return AppliedMemberClassValueConstructor$jsint(this.meta,
{Type$AppliedMemberClassValueConstructor:$m.Result$memberApply,
Container$AppliedMemberClassValueConstructor:$m.Container$memberApply});
}
openValueConstructor$.memberApply.$crtmm$=function(){return{mod:$CCMM$,$t:{t:MemberClassValueConstructor$meta$model,a:{Container$MemberClassValueConstructor:'Container$memberApply',Type$MemberClassValueConstructor:'Result$memberApply'}},ps:[{nm:'containerType',mt:'prm',$t:{t:Type$meta$model,a:{Target$Type:{t:$_Object}}}}],$cont:OpenValueConstructor$jsint,tp:{Container$memberApply:{def:{t:Nothing}},Result$memberApply:{def:{t:Anything}}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$m','memberApply']};};atr$(openValueConstructor$,'shared',function(){return (getrtmm$$(this.meta).pa&1) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$at','shared']};});atr$(openValueConstructor$,'formal',function(){return (getrtmm$$(this.meta).pa&4) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$at','formal']};});atr$(openValueConstructor$,'$_default',function(){return (getrtmm$$(this.meta).pa&8) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$at','default']};});atr$(openValueConstructor$,'actual',function(){return (getrtmm$$(this.meta).pa&2) > 0;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$at','actual']};});atr$(openValueConstructor$,'toplevel',function(){return this.$1z5_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:OpenValueConstructor$jsint,pa:3,d:['ceylon.language.jsint','OpenValueConstructor','$at','toplevel']};});atr$(openValueConstructor$,'containingModule',function(){var openValueConstructor$=this;return openValueConstructor$.containingPackage.container},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:OpenValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$at','containingModule']};});atr$(openValueConstructor$,'openType',function(){return FreeClass$jsint(this.container);
},undefined,function(){return{mod:$CCMM$,$t:{t:OpenType$meta$declaration},$cont:OpenValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$at','openType']};});openValueConstructor$.annotations=function(m){
return annd$annotations(this,m);
}
openValueConstructor$.annotations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Annotation$annotations'}},ps:[],$cont:OpenValueConstructor$jsint,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$m','annotations']};};openValueConstructor$.annotated=function($mpt){
var x=annd$annotations(this,{Annotation$annotations:$mpt.Annotation$annotated});
return x&&x.size>0;
}
openValueConstructor$.annotated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:OpenValueConstructor$jsint,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$m','annotated']};};atr$(openValueConstructor$,'name',function(){if (this.name_===undefined) {
var mm=getrtmm$$(this.meta);
var n=mm.d[mm.d.length-1];
if (n.indexOf('$')>0) {
n=n.substring(0,n.indexOf('$'));
}
this.name_=n;
}
return this.name_;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$at','name']};});atr$(openValueConstructor$,'qualifiedName',function(){if (this.qn$===undefined) {
this.qn$=qname$(getrtmm$$(this.meta));
}
return this.qn$;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$at','qualifiedName']};});atr$(openValueConstructor$,'string',function(){var openValueConstructor$=this;return "new ".plus(openValueConstructor$.qualifiedName)},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:OpenValueConstructor$jsint,pa:3,d:['ceylon.language.jsint','OpenValueConstructor','$at','string']};});openValueConstructor$.equals=function(other) {
if (is$(other, {t:OpenValueConstructor$jsint})) {
if (other.meta===this.meta)return true;
return this.container.equals(other.container) &&
this.name.equals(other.name);
}
return false;
}
openValueConstructor$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:OpenValueConstructor$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','OpenValueConstructor','$m','equals']};};})(OpenValueConstructor$jsint.$$.prototype);}
return OpenValueConstructor$jsint;}
ex$.$init$OpenValueConstructor$jsint=$init$OpenValueConstructor$jsint;$init$OpenValueConstructor$jsint();function Paquete$jsint(name,container,_pkg,paquete$){$init$Paquete$jsint();
if(paquete$===undefined)paquete$=new Paquete$jsint.$$;
paquete$.$1zg_=name;paquete$.$1zh_=container;paquete$._pkg_=_pkg;Package$meta$declaration(paquete$);paquete$.$1zi_="package ".plus(paquete$.name);return paquete$;}
Paquete$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'name',mt:'prm',$t:{t:$_String},pa:3},{nm:'container',mt:'prm',$t:{t:Module$meta$declaration},pa:3},{nm:'_pkg',mt:'prm',$t:{t:Anything},pa:1}],sts:[{t:Package$meta$declaration}],an:function(){return[$_native()];},d:['ceylon.language.jsint','Paquete']};};
ex$.Paquete$jsint=Paquete$jsint;function $init$Paquete$jsint(){if(Paquete$jsint.$$===undefined){initTypeProto(Paquete$jsint,'ceylon.language.jsint::Paquete',Basic,$init$Package$meta$declaration());
(function(paquete$){atr$(paquete$,'name',function(){return this.$1zg_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Paquete$jsint,pa:3,d:['ceylon.language.jsint','Paquete','$at','name']};});atr$(paquete$,'container',function(){return this.$1zh_;},undefined,function(){return{mod:$CCMM$,$t:{t:Module$meta$declaration},$cont:Paquete$jsint,pa:3,d:['ceylon.language.jsint','Paquete','$at','container']};});atr$(paquete$,'_pkg',function(){return this._pkg_;},undefined,function(){return{mod:$CCMM$,$t:{t:Anything},$cont:Paquete$jsint,pa:1,d:['ceylon.language.jsint','Paquete','$at','_pkg']};});atr$(paquete$,'qualifiedName',function(){var paquete$=this;return paquete$.name},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Paquete$jsint,pa:3,d:['ceylon.language.jsint','Paquete','$at','qualifiedName']};});atr$(paquete$,'shared',function(){//TODO
throw new Error("Paquete.shared not implemented");
},undefined,function(){return{mod:$CCMM$,$t:{t:$_Boolean},$cont:Paquete$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Paquete','$at','shared']};});paquete$.members=function members($$$mptypes){
var filter=[];
var isValue=false;
var kind=$$$mptypes.Kind$members;
if (extendsType({t:FunctionDeclaration$meta$declaration},kind))filter.push('m');
if (extendsType({t:ValueDeclaration$meta$declaration},kind)) {
filter.push('a','g','s','o');
isValue=true;
}
if (extendsType({t:'u',l:[{t:ClassWithConstructorsDeclaration$meta$declaration},
{t:ClassWithInitializerDeclaration$meta$declaration}]},kind))filter.push('c','o');
if (extendsType({t:InterfaceDeclaration$meta$declaration},kind))filter.push('i');
if (extendsType({t:AliasDeclaration$meta$declaration},kind))filter.push('als');
var r=[];
var unsh=this.container.meta['$pkgunsh$'+this.name.$_replace('.','$')];
for (var mn in this._pkg) {
var m = this._pkg[mn];
var mt = m.mt;
if (filter.indexOf(mt)>=0) {
if ((m.pa&1)===0) {
var priv=unsh && unsh[mn];
if (priv) {
m=priv;
} else {
mt='';
}
}
if (mt === 'm') {
r.push(OpenFunction$jsint(this, m));
} else if (mt==='c'||(mt==='o'&&!isValue)) {
if (extendsType(kind,{t:ClassWithConstructorsDeclaration$meta$declaration})) {
if (m.$cn===undefined)m=null;
} else if (extendsType(kind,{t:ClassWithInitializerDeclaration$meta$declaration})) {
if (m.$cn)m=null;
}
if(m)r.push(openClass$jsint(this, m));
} else if (mt==='i') {
r.push(OpenInterface$jsint(this, m));
} else if (mt==='a'||mt==='g'||(mt==='o'&&isValue)) {
r.push(OpenValue$jsint(this, m));
} else if (mt==='s') {
r.push(OpenSetter(OpenValue$jsint(this, m)));
} else if (mt==='als') {
r.push(OpenAlias$jsint(m.$crtmm$?m:_findTypeFromModel(this,m)));
}
}
}
return r.$sa$(kind);
}
paquete$.members.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$members'}},ps:[],$cont:Paquete$jsint,tp:{Kind$members:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Paquete','$m','members']};};paquete$.annotatedMembers=function annotatedMembers($$$mptypes){
var ms=this.members({Kind$members:$$$mptypes.Kind$annotatedMembers});
if (ms.size>0) {
var rv=[];
var mask = getAnnotationBitmask($$$mptypes.Annotation$annotatedMembers);
for (var i=0; i < ms.size; i++) {
var _mem=ms.$_get(i);
if (_mem.tipo && _mem.tipo.$crtmm$) {
var mm=getrtmm$$(_mem.tipo);
if (mm.pa&mask) {
rv.push(_mem);
continue;
}
var ans=mm.an;
if (typeof(ans)==='function'){ans=ans();mm.an=ans;}
if (ans) for (var j=0; j<ans.length;j++) {
if (is$(ans[j],$$$mptypes.Annotation$annotatedMembers)) {
rv.push(_mem);
break;
}
}
}
}
return rv.$sa$($$$mptypes.Kind$annotatedMembers);
}
return empty();
}
paquete$.annotatedMembers.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Kind$annotatedMembers'}},ps:[],$cont:Paquete$jsint,tp:{Kind$annotatedMembers:{sts:[{t:NestableDeclaration$meta$declaration}]},Annotation$annotatedMembers:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Paquete','$m','annotatedMembers']};};paquete$.getMember=function getMember(name$3,$$$mptypes){
var m = this._pkg[name$3];
if (m) {
var mt = m['mt'];
var kind=$$$mptypes.Kind$getMember;
//There's a member alright, but check its type
if ((mt==='a'||mt==='g'||mt==='s')&&extendsType(kind,{t:FunctionOrValueDeclaration$meta$declaration})) {
return mt==='s'?OpenSetter(OpenValue$jsint(this, m)):OpenValue$jsint(this, m);
} else if (mt==='m'&&extendsType(kind,{t:FunctionOrValueDeclaration$meta$declaration})){
return OpenFunction$jsint(this, m);
} else if (mt==='c'&&(extendsType(kind,{t:NestableDeclaration$meta$declaration}))){
return openClass$jsint(this, m);
} else if (mt==='i'&&extendsType(kind,{t:NestableDeclaration$meta$declaration})){
return OpenInterface$jsint(this, m);
} else if (mt==='als'&&extendsType(kind,{t:AliasDeclaration$meta$declaration})){
return OpenAlias$jsint(_findTypeFromModel(this,m));
} else if (mt==='o') {
if (extendsType(kind,{t:ValueDeclaration$meta$declaration})) {
return OpenValue$jsint(this, m);
} else if (extendsType(kind,{t:NestableDeclaration$meta$declaration})) {
return openClass$jsint(this, m);
}
}
console.log("WTF do I do with this " + name$3 + " metatype " + mt + " Kind " + kind);
}
return null;
}
paquete$.getMember.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},'Kind$getMember']},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Paquete$jsint,tp:{Kind$getMember:{sts:[{t:NestableDeclaration$meta$declaration}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Paquete','$m','getMember']};};paquete$.getValue=function getValue(name$4) {
var m = this._pkg[name$4];
if (m && (m['mt']==='g' || m['mt'] === 'o'||m['mt']==='a'||m['mt']==='s')) {
return OpenValue$jsint(this, m);
}
return null;
}
paquete$.getValue.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ValueDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Paquete$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Paquete','$m','getValue']};};paquete$.getClassOrInterface=function getClassOrInterface(name$5){
if (name$5==='Nothing' && this.name==='ceylon.language')return null;
var ci = this._pkg[name$5];
if (ci && ci['mt']==='c') {
return openClass$jsint(this, ci);
} else if (ci && ci['mt']==='i') {
return OpenInterface$jsint(this, ci);
}
return null;
}
paquete$.getClassOrInterface.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:ClassOrInterfaceDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Paquete$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Paquete','$m','getClassOrInterface']};};paquete$.getFunction=function getFunction(name$6){
var f = this._pkg[name$6];
if (f && f['mt']==='m') {
return OpenFunction$jsint(this, f);
}
return null;
}
paquete$.getFunction.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:FunctionDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Paquete$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Paquete','$m','getFunction']};};paquete$.getAlias=function getAlias(an) {
var al=this._pkg[an];
if (al && al.mt==='als') {
var rta = _findTypeFromModel(this, al);
return OpenAlias$jsint(rta);
}
return null;
}
paquete$.getAlias.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Null},{t:AliasDeclaration$meta$declaration}]},ps:[{nm:'name',mt:'prm',$t:{t:$_String}}],$cont:Paquete$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Paquete','$m','getAlias']};};paquete$.annotations=function annotations($$$mptypes){
var _k = '$pkg$ans$' + this.name.replace(/\./g,'$');
var anns = this.container.meta[_k];
if (typeof(anns) === 'function') {
anns = anns();
this.container.meta[_k]=anns;
} else if (anns === undefined) {
anns = [];
}
var r = [];
for (var i=0; i < anns.length; i++) {
var an = anns[i];
if (is$(an, $$$mptypes.Annotation$annotations)) r.push(an);
}
return r.$sa$($$$mptypes.Annotation$annotations);
}
paquete$.annotations.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Sequential,a:{Element$Sequential:'Annotation$annotations'}},ps:[],$cont:Paquete$jsint,tp:{Annotation$annotations:{dv:'out',sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Paquete','$m','annotations']};};paquete$.annotated=function($mpt){
var _k = '$pkg$ans$' + this.name.replace(/\./g,'$');
var anns = this.container.meta[_k];
if (typeof(anns) === 'function') {
anns = anns();
this.container.meta[_k]=anns;
} else if (anns === undefined) {
return false;
}
for (var i=0; i<anns.length; i++) {
var an = anns[i];
if (is$(an, $mpt.Annotation$annotated))return true;
}
return false;
}
paquete$.annotated.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[],$cont:Paquete$jsint,tp:{Annotation$annotated:{sts:[{t:Annotation}]}},pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','Paquete','$m','annotated']};};atr$(paquete$,'suffix',function(){if (this.$suff!==undefined)return this.$suff;
var suffix = '';
if (this.name!==this.container.name) {
var _s = this.name.substring(this.container.name.size);
suffix = _s.replace(/\./g, '$');
}
this.$suff=suffix;
return suffix;
},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Paquete$jsint,pa:1,an:function(){return[$_native()];},d:['ceylon.language.jsint','Paquete','$at','suffix']};});atr$(paquete$,'string',function(){return this.$1zi_;},undefined,function(){return{mod:$CCMM$,$t:{t:$_String},$cont:Paquete$jsint,pa:3,d:['ceylon.language.jsint','Paquete','$at','string']};});})(Paquete$jsint.$$.prototype);}
return Paquete$jsint;}
ex$.$init$Paquete$jsint=$init$Paquete$jsint;$init$Paquete$jsint();function TpMap$jsint(m,ord,$$targs$$,tpMap$){$init$TpMap$jsint();
if(tpMap$===undefined)tpMap$=new TpMap$jsint.$$;
set_type_args(tpMap$,$$targs$$);
tpMap$.m_=m;tpMap$.ord_=ord;Map({Key$Map:{t:TypeParameter$meta$declaration},Item$Map:$$targs$$.V$TpMap},tpMap$);return tpMap$;}
TpMap$jsint.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},ps:[{nm:'m',mt:'prm',$t:{t:Anything},pa:1},{nm:'ord',mt:'prm',$t:{t:Anything},pa:1}],tp:{V$TpMap:{dv:'out',sts:[{t:$_Object}]}},sts:[{t:Map,a:{Key$Map:{t:TypeParameter$meta$declaration},Item$Map:'V$TpMap'}}],an:function(){return[$_native()];},d:['ceylon.language.jsint','TpMap']};};
ex$.TpMap$jsint=TpMap$jsint;function $init$TpMap$jsint(){if(TpMap$jsint.$$===undefined){initTypeProto(TpMap$jsint,'ceylon.language.jsint::TpMap',Basic,$init$Map());
(function(tpMap$){atr$(tpMap$,'m',function(){return this.m_;},undefined,function(){return{mod:$CCMM$,$t:{t:Anything},$cont:TpMap$jsint,pa:1,d:['ceylon.language.jsint','TpMap','$at','m']};});atr$(tpMap$,'ord',function(){return this.ord_;},undefined,function(){return{mod:$CCMM$,$t:{t:Anything},$cont:TpMap$jsint,pa:1,d:['ceylon.language.jsint','TpMap','$at','ord']};});tpMap$.equals=function($1zl){var tpMap$=this;return tpMap$.getT$all()['ceylon.language::Map'].$$.prototype.equals.call(tpMap$,$1zl);};tpMap$.equals.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'other',mt:'prm',$t:{t:$_Object}}],$cont:TpMap$jsint,pa:3,d:['ceylon.language.jsint','TpMap','$m','equals']};};atr$(tpMap$,'hash',function(){var tpMap$=this;return attrGetter(tpMap$.getT$all()['ceylon.language::Map'],'hash').call(this)},undefined,function(){return{mod:$CCMM$,$t:{t:Integer},$cont:TpMap$jsint,pa:3,d:['ceylon.language.jsint','TpMap','$at','hash']};});tpMap$.clone=function(){var tpMap$=this;return tpMap$;};tpMap$.clone.$crtmm$=function(){return{mod:$CCMM$,$t:{t:TpMap$jsint,a:{V$TpMap:'V$TpMap'}},ps:[],$cont:TpMap$jsint,pa:3,d:['ceylon.language.jsint','TpMap','$m','clone']};};tpMap$.iterator=function(){var tpMap$=this;function $1zn($$targs$$){var $1zn$=new $1zn.$$;$1zn$.outer$=tpMap$;$1zn$.$$targs$$=$$targs$$;Iterator({Element$Iterator:{t:Entry,a:{Key$Entry:{t:TypeParameter$meta$declaration},Item$Entry:tpMap$.$$targs$$.V$TpMap}}},$1zn$);$1zn$.$1zp_=(-1);$1zn$.$prop$getIdx={$crtmm$:function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1zn,pa:1025,d:['ceylon.language.jsint','TpMap','$m','iterator','$o','miter$wdhxc2','$at','idx']};}};$1zn$.$prop$getIdx.get=function(){return idx};return $1zn$;};$1zn.$crtmm$=function(){return{mod:$CCMM$,'super':{t:Basic},$cont:tpMap$.iterator,sts:[{t:Iterator,a:{Element$Iterator:{t:Entry,a:{Key$Entry:{t:TypeParameter$meta$declaration},Item$Entry:'V$TpMap'}}}}],d:['ceylon.language.jsint','TpMap','$m','iterator','$o','miter$wdhxc2']};};function $init$$1zn(){if($1zn.$$===undefined){initTypeProto($1zn,'ceylon.language.jsint::TpMap.miter',Basic,$init$Iterator());
(function($1zn$){atr$($1zn$,'idx',function(){return this.$1zp_;},function($1zq){return this.$1zp_=$1zq;},function(){return{mod:$CCMM$,$t:{t:Integer},$cont:$1zn,pa:1025,d:['ceylon.language.jsint','TpMap','$m','iterator','$o','miter$wdhxc2','$at','idx']};});$1zn$.next=function(){
var keys=tpMap$.ord||Object.keys(tpMap$.m);
this.idx++;
if (this.idx>=keys.length)return finished();
var k=keys[this.idx];
var v=tpMap$.m[k]||null;
return Entry(v[0],v[1],{Key$Entry:{t:TypeParameter$meta$declaration},Item$Entry:tpMap$.$$targs$$.V$TpMap});
}
$1zn$.next.$crtmm$=function(){return{mod:$CCMM$,$t:{t:'u',l:[{t:Entry,a:{Key$Entry:{t:TypeParameter$meta$declaration},Item$Entry:'V$TpMap'}},{t:Finished}]},ps:[],$cont:$1zn,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','TpMap','$m','iterator','$o','miter$wdhxc2','$m','next']};};})($1zn.$$.prototype);}
return $1zn;}
tpMap$.$init$$1zn=$init$$1zn;$init$$1zn();var $1zr;function $1zo(){if($1zr===INIT$)throwexc(InitializationError("Cyclic initialization trying to read the value of \'miter\' before it was set"),'11:8-14:8','TpMap.ceylon');if($1zr===undefined){$1zr=INIT$;$1zr=$init$$1zn()({Element$Iterator:{t:Entry,a:{Key$Entry:{t:TypeParameter$meta$declaration},Item$Entry:tpMap$.$$targs$$.V$TpMap}}});$1zr.$crtmm$=$1zo.$crtmm$;}
return $1zr;}
$1zo.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$init$$1zn()},$cont:tpMap$.iterator,an:function(){return[$_native()];},d:['ceylon.language.jsint','TpMap','$m','iterator','$o','miter$wdhxc3']};};$prop$get$1zn=$1zo;$1zo();return $1zo();};tpMap$.iterator.$crtmm$=function(){return{mod:$CCMM$,$t:{t:Iterator,a:{Element$Iterator:{t:Entry,a:{Key$Entry:{t:TypeParameter$meta$declaration},Item$Entry:'V$TpMap'}}}},ps:[],$cont:TpMap$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','TpMap','$m','iterator']};};tpMap$.$_get=function(k){
var v=this.m[k.qualifiedName];
return v===undefined?null:v[1];
}
tpMap$.$_get.$crtmm$=function(){return{mod:$CCMM$,$t:'V$TpMap',ps:[{nm:'k',mt:'prm',$t:{t:$_Object}}],$cont:TpMap$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','TpMap','$m','get']};};tpMap$.defines=function(k){
var v=this.m[k.qualifiedName];
return !(v===undefined);
}
tpMap$.defines.$crtmm$=function(){return{mod:$CCMM$,$t:{t:$_Boolean},ps:[{nm:'key',mt:'prm',$t:{t:$_Object}}],$cont:TpMap$jsint,pa:3,an:function(){return[$_native()];},d:['ceylon.language.jsint','TpMap','$m','defines']};};})(TpMap$jsint.$$.prototype);}
return TpMap$jsint;}
ex$.$init$TpMap$jsint=$init$TpMap$jsint;$init$TpMap$jsint();ex$.$pkg$ans$ceylon$language$jsint=[];
function NatErr(e) {
var that = new NatErr.$$;
var msg;
if (typeof e === 'string') {
msg = e;
} else if (e) {
msg = e.toString();
} else {
msg = "Native JavaScript Error";
}
Throwable(msg,null,that);
return that;
}
initTypeProto(NatErr, 'ceylon.language::NativeError', $init$Throwable());
NatErr.$crtmm$=function(){return{nm:'NativeError',mt:'c',ps:[{$t:{t:Throwable},nm:'src',mt:'prm'}],pa:1,mod:$CCMM$,d:['$','Throwable']};}
ex$.NatErr=NatErr;
ex$.$pkgunsh$ceylon$language={'ChainedIterator':ChainedIterator,'nullElement':$prop$getNullElement,'CycledIterator':CycledIterator,'commaList':commaList,'ElementEntry':ElementEntry,'GroupEntry':GroupEntry,'Missing':Missing,'Measure':Measure,'JoinedSequence':JoinedSequence,'Span':Span,'scaleByPowerOfTen':scaleByPowerOfTen,'_BasicId':$prop$get_BasicId,'maximumIntegerExponent':$prop$getMaximumIntegerExponent,'parseFloatExponent':parseFloatExponent,'digitOrSign':$prop$getDigitOrSign,'minRadix':$prop$getMinRadix,'maxRadix':$prop$getMaxRadix,'parseIntegerExponent':parseIntegerExponent,'aIntLower':$prop$getAIntLower,'aIntUpper':$prop$getAIntUpper,'zeroInt':$prop$getZeroInt,'parseDigit':parseDigit,'stringify':stringify};
ex$.$pkgunsh$ceylon$language$serialization={'DeserializationContextImpl':DeserializationContextImpl$serialization,'NativeDeque':NativeDeque$serialization,'NativeMap':NativeMap$serialization,'Partial':Partial$serialization,'ReferencesImpl':ReferencesImpl$serialization,'SerializationContextImpl':SerializationContextImpl$serialization};
});
}(typeof define==='function' && define.amd ? define : function (factory) {
if (typeof exports!=='undefined') { factory(require, exports, module);
} else { throw 'no module loader'; }
}));
