localmargs=require('Module:Arguments')localfunction_main(frame,name,mode)localcategories={['Flag icon']='[[Category:Flag icons missing country data templates]]',['Flag decoration']='[[Category:Flag decoration missing country data templates]]',}localyesno=require('Module:Yesno')--Get input argumentslocalargs=margs.getArgs(frame,{frameOnly=((frame.args.frameonlyor'')~=''),valueFunc=function(key,value)ifvaluethenvalue=mw.text.trim(value)--Change empty string to nil for all args except 'image' and 'border'ifkey=="image"orkey=="border"orvalue~=""thenreturnvalueendendreturnnilend})localpreftext,sufftext="",""ifname=='Flag+link'thenargs.pref=args[1]elseifname=='Flag athlete'thenargs.preftext=args[1]args[2]=args.codeorargs[2]or""args.variant=args.variantorargs[3]elseifname=='Flag medalist'thenpreftext=(args[1]or"").."<br/>"args[2]=args.codeorargs[2]or""args.variant=args.variantorargs[3]elseifname=='Flag link'thenargs.suff=args[2]args[2]=args[1]or""args.variant=args.variantorargs[3]elsesports={fb='fb',['fb-rt']='fb',fbicon='fb',ru='ru',fba='fba',fbaicon='fba'}ifsports[name]andargs[1]thenargs.avar=sports[name]ifname=='fb'andyesno(args.align)==truethenargs.align='c'elseifargs.avar=='fba'thenlocallist=require("Module:Fba/list")localold=((args.oldor"")~="")and"_old"or""localfba=list.fbas[args[1]..old]ifnotfbaandstring.len(args[1])==3thenfork,vinpairs(list.codes)doifv==args[1]thenfba=list.fbas[k];breakendendendifargs.name=="code"thenargs.name=list.codes[args[1]]elseifargs.name=="full"thenargs.name=fbaendiffbathenmode=string.gsub(mode,"p","c")args.link=fbaendargs.altlink=args.oldendelseifname=="Flag team"and(args.codeorargs[1])thensufftext=' <span style="font-size:90%;">('..(args.codeorargs[1])..')</span>'endargs.variant=args.variantorargs[2]args[2]=args[1]or""endargs[1]=mode..(args.optsor'')args.missingcategory=categories[name]args.noredlink=args.noredlinkor'notext'ifargs.placeholderandyesno(args.placeholder)~=truethenargs[1]=args[1]..'o'endifmw.title.getCurrentTitle().namespace==0thenlocalunknown='[[Category:Pages using '..mw.ustring.lower(name)..' template with unknown parameters|_VALUE_'..frame:getParent():getTitle()..']]'elselocalunknown=''endcheck=''ifname=='Flag icon'thenlocalopts={unknown=unknown,preview='Page using [[Template:'..name..']] with unknown parameter "_VALUE_"',ignoreblank='y','1','2','variant','image','size','sz','border','align','al','width','w','alt','ilink','noredlink','missingcategory','name','clink','link','pref','suff','plink','the','section','altvar','avar','age','nalign','nal','text','nodata','opts','placeholder','getParent','frameonly'}check=require('Module:Check for unknown parameters')._check(opts,args)endreturnpreftext..require('Module:Flagg').luaMain(frame,args)..sufftext..checkendlocalp={['']=function(frame)return_main(frame,'Flag','unc')end,decoration=function(frame)return_main(frame,'Flag decoration','uxx')end,icon=function(frame)return_main(frame,'Flag icon','cxxl')end,link=function(frame)return_main(frame,'Flag link','unpe')end,['+link']=function(frame)return_main(frame,'Flag+link','unpefo')end,country=function(frame)return_main(frame,'Flag country','unce')end,team=function(frame)return_main(frame,'Flag team','unce')end,athlete=function(frame)return_main(frame,'Flag athlete','unape')end,medalist=function(frame)return_main(frame,'Flag medalist','unce')end,fb=function(frame)return_main(frame,'fb','unpe')end,fba=function(frame)return_main(frame,'fba','unpe')end,['fb-rt']=function(frame)return_main(frame,'fb-rt','unpre')end,fbicon=function(frame)return_main(frame,'fbicon','pxxl')end,fbaicon=function(frame)return_main(frame,'fbaicon','pxxl')end,ru=function(frame)return_main(frame,'ru','unpe')end,IOC=function(frame)returnrequire('Module:Country_alias').flagIOC(frame:newChild{title='Template:Flag IOC'})end,IOC2=function(frame)returnrequire('Module:Country_alias').flagXYZ(frame:newChild{title='Template:Flag IOC 2',args={name=margs.getArgs(frame).nameor'',type='name'}})end,IOCathlete=function(frame)returnrequire('Module:Country_alias').flagXYZ(frame:newChild{title='Template:Flag IOC athlete',args={type='athlete-O'}})end,}p['deco']=p.decorationp['IOC 2']=p.IOC2p['IOC athlete']=p.IOCathletereturnp