org.el 972 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598185991860018601186021860318604186051860618607186081860918610186111861218613186141861518616186171861818619186201862118622186231862418625186261862718628186291863018631186321863318634186351863618637186381863918640186411864218643186441864518646186471864818649186501865118652186531865418655186561865718658186591866018661186621866318664186651866618667186681866918670186711867218673186741867518676186771867818679186801868118682186831868418685186861868718688186891869018691186921869318694186951869618697186981869918700187011870218703187041870518706187071870818709187101871118712187131871418715187161871718718187191872018721187221872318724187251872618727187281872918730187311873218733187341873518736187371873818739187401874118742187431874418745187461874718748187491875018751187521875318754187551875618757187581875918760187611876218763187641876518766187671876818769187701877118772187731877418775187761877718778187791878018781187821878318784187851878618787187881878918790187911879218793187941879518796187971879818799188001880118802188031880418805188061880718808188091881018811188121881318814188151881618817188181881918820188211882218823188241882518826188271882818829188301883118832188331883418835188361883718838188391884018841188421884318844188451884618847188481884918850188511885218853188541885518856188571885818859188601886118862188631886418865188661886718868188691887018871188721887318874188751887618877188781887918880188811888218883188841888518886188871888818889188901889118892188931889418895188961889718898188991890018901189021890318904189051890618907189081890918910189111891218913189141891518916189171891818919189201892118922189231892418925189261892718928189291893018931189321893318934189351893618937189381893918940189411894218943189441894518946189471894818949189501895118952189531895418955189561895718958189591896018961189621896318964189651896618967189681896918970189711897218973189741897518976189771897818979189801898118982189831898418985189861898718988189891899018991189921899318994189951899618997189981899919000190011900219003190041900519006190071900819009190101901119012190131901419015190161901719018190191902019021190221902319024190251902619027190281902919030190311903219033190341903519036190371903819039190401904119042190431904419045190461904719048190491905019051190521905319054190551905619057190581905919060190611906219063190641906519066190671906819069190701907119072190731907419075190761907719078190791908019081190821908319084190851908619087190881908919090190911909219093190941909519096190971909819099191001910119102191031910419105191061910719108191091911019111191121911319114191151911619117191181911919120191211912219123191241912519126191271912819129191301913119132191331913419135191361913719138191391914019141191421914319144191451914619147191481914919150191511915219153191541915519156191571915819159191601916119162191631916419165191661916719168191691917019171191721917319174191751917619177191781917919180191811918219183191841918519186191871918819189191901919119192191931919419195191961919719198191991920019201192021920319204192051920619207192081920919210192111921219213192141921519216192171921819219192201922119222192231922419225192261922719228192291923019231192321923319234192351923619237192381923919240192411924219243192441924519246192471924819249192501925119252192531925419255192561925719258192591926019261192621926319264192651926619267192681926919270192711927219273192741927519276192771927819279192801928119282192831928419285192861928719288192891929019291192921929319294192951929619297192981929919300193011930219303193041930519306193071930819309193101931119312193131931419315193161931719318193191932019321193221932319324193251932619327193281932919330193311933219333193341933519336193371933819339193401934119342193431934419345193461934719348193491935019351193521935319354193551935619357193581935919360193611936219363193641936519366193671936819369193701937119372193731937419375193761937719378193791938019381193821938319384193851938619387193881938919390193911939219393193941939519396193971939819399194001940119402194031940419405194061940719408194091941019411194121941319414194151941619417194181941919420194211942219423194241942519426194271942819429194301943119432194331943419435194361943719438194391944019441194421944319444194451944619447194481944919450194511945219453194541945519456194571945819459194601946119462194631946419465194661946719468194691947019471194721947319474194751947619477194781947919480194811948219483194841948519486194871948819489194901949119492194931949419495194961949719498194991950019501195021950319504195051950619507195081950919510195111951219513195141951519516195171951819519195201952119522195231952419525195261952719528195291953019531195321953319534195351953619537195381953919540195411954219543195441954519546195471954819549195501955119552195531955419555195561955719558195591956019561195621956319564195651956619567195681956919570195711957219573195741957519576195771957819579195801958119582195831958419585195861958719588195891959019591195921959319594195951959619597195981959919600196011960219603196041960519606196071960819609196101961119612196131961419615196161961719618196191962019621196221962319624196251962619627196281962919630196311963219633196341963519636196371963819639196401964119642196431964419645196461964719648196491965019651196521965319654196551965619657196581965919660196611966219663196641966519666196671966819669196701967119672196731967419675196761967719678196791968019681196821968319684196851968619687196881968919690196911969219693196941969519696196971969819699197001970119702197031970419705197061970719708197091971019711197121971319714197151971619717197181971919720197211972219723197241972519726197271972819729197301973119732197331973419735197361973719738197391974019741197421974319744197451974619747197481974919750197511975219753197541975519756197571975819759197601976119762197631976419765197661976719768197691977019771197721977319774197751977619777197781977919780197811978219783197841978519786197871978819789197901979119792197931979419795197961979719798197991980019801198021980319804198051980619807198081980919810198111981219813198141981519816198171981819819198201982119822198231982419825198261982719828198291983019831198321983319834198351983619837198381983919840198411984219843198441984519846198471984819849198501985119852198531985419855198561985719858198591986019861198621986319864198651986619867198681986919870198711987219873198741987519876198771987819879198801988119882198831988419885198861988719888198891989019891198921989319894198951989619897198981989919900199011990219903199041990519906199071990819909199101991119912199131991419915199161991719918199191992019921199221992319924199251992619927199281992919930199311993219933199341993519936199371993819939199401994119942199431994419945199461994719948199491995019951199521995319954199551995619957199581995919960199611996219963199641996519966199671996819969199701997119972199731997419975199761997719978199791998019981199821998319984199851998619987199881998919990199911999219993199941999519996199971999819999200002000120002200032000420005200062000720008200092001020011200122001320014200152001620017200182001920020200212002220023200242002520026200272002820029200302003120032200332003420035200362003720038200392004020041200422004320044200452004620047200482004920050200512005220053200542005520056200572005820059200602006120062200632006420065200662006720068200692007020071200722007320074200752007620077200782007920080200812008220083200842008520086200872008820089200902009120092200932009420095200962009720098200992010020101201022010320104201052010620107201082010920110201112011220113201142011520116201172011820119201202012120122201232012420125201262012720128201292013020131201322013320134201352013620137201382013920140201412014220143201442014520146201472014820149201502015120152201532015420155201562015720158201592016020161201622016320164201652016620167201682016920170201712017220173201742017520176201772017820179201802018120182201832018420185201862018720188201892019020191201922019320194201952019620197201982019920200202012020220203202042020520206202072020820209202102021120212202132021420215202162021720218202192022020221202222022320224202252022620227202282022920230202312023220233202342023520236202372023820239202402024120242202432024420245202462024720248202492025020251202522025320254202552025620257202582025920260202612026220263202642026520266202672026820269202702027120272202732027420275202762027720278202792028020281202822028320284202852028620287202882028920290202912029220293202942029520296202972029820299203002030120302203032030420305203062030720308203092031020311203122031320314203152031620317203182031920320203212032220323203242032520326203272032820329203302033120332203332033420335203362033720338203392034020341203422034320344203452034620347203482034920350203512035220353203542035520356203572035820359203602036120362203632036420365203662036720368203692037020371203722037320374203752037620377203782037920380203812038220383203842038520386203872038820389203902039120392203932039420395203962039720398203992040020401204022040320404204052040620407204082040920410204112041220413204142041520416204172041820419204202042120422204232042420425204262042720428204292043020431204322043320434204352043620437204382043920440204412044220443204442044520446204472044820449204502045120452204532045420455204562045720458204592046020461204622046320464204652046620467204682046920470204712047220473204742047520476204772047820479204802048120482204832048420485204862048720488204892049020491204922049320494204952049620497204982049920500205012050220503205042050520506205072050820509205102051120512205132051420515205162051720518205192052020521205222052320524205252052620527205282052920530205312053220533205342053520536205372053820539205402054120542205432054420545205462054720548205492055020551205522055320554205552055620557205582055920560205612056220563205642056520566205672056820569205702057120572205732057420575205762057720578205792058020581205822058320584205852058620587205882058920590205912059220593205942059520596205972059820599206002060120602206032060420605206062060720608206092061020611206122061320614206152061620617206182061920620206212062220623206242062520626206272062820629206302063120632206332063420635206362063720638206392064020641206422064320644206452064620647206482064920650206512065220653206542065520656206572065820659206602066120662206632066420665206662066720668206692067020671206722067320674206752067620677206782067920680206812068220683206842068520686206872068820689206902069120692206932069420695206962069720698206992070020701207022070320704207052070620707207082070920710207112071220713207142071520716207172071820719207202072120722207232072420725207262072720728207292073020731207322073320734207352073620737207382073920740207412074220743207442074520746207472074820749207502075120752207532075420755207562075720758207592076020761207622076320764207652076620767207682076920770207712077220773207742077520776207772077820779207802078120782207832078420785207862078720788207892079020791207922079320794207952079620797207982079920800208012080220803208042080520806208072080820809208102081120812208132081420815208162081720818208192082020821208222082320824208252082620827208282082920830208312083220833208342083520836208372083820839208402084120842208432084420845208462084720848208492085020851208522085320854208552085620857208582085920860208612086220863208642086520866208672086820869208702087120872208732087420875208762087720878208792088020881208822088320884208852088620887208882088920890208912089220893208942089520896208972089820899209002090120902209032090420905209062090720908209092091020911209122091320914209152091620917209182091920920209212092220923209242092520926209272092820929209302093120932209332093420935209362093720938209392094020941209422094320944209452094620947209482094920950209512095220953209542095520956209572095820959209602096120962209632096420965209662096720968209692097020971209722097320974209752097620977209782097920980209812098220983209842098520986209872098820989209902099120992209932099420995209962099720998209992100021001210022100321004210052100621007210082100921010210112101221013210142101521016210172101821019210202102121022210232102421025210262102721028210292103021031210322103321034210352103621037210382103921040210412104221043210442104521046210472104821049210502105121052210532105421055210562105721058210592106021061210622106321064210652106621067210682106921070210712107221073210742107521076210772107821079210802108121082210832108421085210862108721088210892109021091210922109321094210952109621097210982109921100211012110221103211042110521106211072110821109211102111121112211132111421115211162111721118211192112021121211222112321124211252112621127211282112921130211312113221133211342113521136211372113821139211402114121142211432114421145211462114721148211492115021151211522115321154211552115621157211582115921160211612116221163211642116521166211672116821169211702117121172211732117421175211762117721178211792118021181211822118321184211852118621187211882118921190211912119221193211942119521196211972119821199212002120121202212032120421205212062120721208212092121021211212122121321214212152121621217212182121921220212212122221223212242122521226212272122821229212302123121232212332123421235212362123721238212392124021241212422124321244212452124621247212482124921250212512125221253212542125521256212572125821259212602126121262212632126421265212662126721268212692127021271212722127321274212752127621277212782127921280212812128221283212842128521286212872128821289212902129121292212932129421295212962129721298212992130021301213022130321304213052130621307213082130921310213112131221313213142131521316213172131821319213202132121322213232132421325213262132721328213292133021331213322133321334213352133621337213382133921340213412134221343213442134521346213472134821349213502135121352213532135421355213562135721358213592136021361213622136321364213652136621367213682136921370213712137221373213742137521376213772137821379213802138121382213832138421385213862138721388213892139021391213922139321394213952139621397213982139921400214012140221403214042140521406214072140821409214102141121412214132141421415214162141721418214192142021421214222142321424214252142621427214282142921430214312143221433214342143521436214372143821439214402144121442214432144421445214462144721448214492145021451214522145321454214552145621457214582145921460214612146221463214642146521466214672146821469214702147121472214732147421475214762147721478214792148021481214822148321484214852148621487214882148921490214912149221493214942149521496214972149821499215002150121502215032150421505215062150721508215092151021511215122151321514215152151621517215182151921520215212152221523215242152521526215272152821529215302153121532215332153421535215362153721538215392154021541215422154321544215452154621547215482154921550215512155221553215542155521556215572155821559215602156121562215632156421565215662156721568215692157021571215722157321574215752157621577215782157921580215812158221583215842158521586215872158821589215902159121592215932159421595215962159721598215992160021601216022160321604216052160621607216082160921610216112161221613216142161521616216172161821619216202162121622216232162421625216262162721628216292163021631216322163321634216352163621637216382163921640216412164221643216442164521646216472164821649216502165121652216532165421655216562165721658216592166021661216622166321664216652166621667216682166921670216712167221673216742167521676216772167821679216802168121682216832168421685216862168721688216892169021691216922169321694216952169621697216982169921700217012170221703217042170521706217072170821709217102171121712217132171421715217162171721718217192172021721217222172321724217252172621727217282172921730217312173221733217342173521736217372173821739217402174121742217432174421745217462174721748217492175021751217522175321754217552175621757217582175921760217612176221763217642176521766217672176821769217702177121772217732177421775217762177721778217792178021781217822178321784217852178621787217882178921790217912179221793217942179521796217972179821799218002180121802218032180421805218062180721808218092181021811218122181321814218152181621817218182181921820218212182221823218242182521826218272182821829218302183121832218332183421835218362183721838218392184021841218422184321844218452184621847218482184921850218512185221853218542185521856218572185821859218602186121862218632186421865218662186721868218692187021871218722187321874218752187621877218782187921880218812188221883218842188521886218872188821889218902189121892218932189421895218962189721898218992190021901219022190321904219052190621907219082190921910219112191221913219142191521916219172191821919219202192121922219232192421925219262192721928219292193021931219322193321934219352193621937219382193921940219412194221943219442194521946219472194821949219502195121952219532195421955219562195721958219592196021961219622196321964219652196621967219682196921970219712197221973219742197521976219772197821979219802198121982219832198421985219862198721988219892199021991219922199321994219952199621997219982199922000220012200222003220042200522006220072200822009220102201122012220132201422015220162201722018220192202022021220222202322024220252202622027220282202922030220312203222033220342203522036220372203822039220402204122042220432204422045220462204722048220492205022051220522205322054220552205622057220582205922060220612206222063220642206522066220672206822069220702207122072220732207422075220762207722078220792208022081220822208322084220852208622087220882208922090220912209222093220942209522096220972209822099221002210122102221032210422105221062210722108221092211022111221122211322114221152211622117221182211922120221212212222123221242212522126221272212822129221302213122132221332213422135221362213722138221392214022141221422214322144221452214622147221482214922150221512215222153221542215522156221572215822159221602216122162221632216422165221662216722168221692217022171221722217322174221752217622177221782217922180221812218222183221842218522186221872218822189221902219122192221932219422195221962219722198221992220022201222022220322204222052220622207222082220922210222112221222213222142221522216222172221822219222202222122222222232222422225222262222722228222292223022231222322223322234222352223622237222382223922240222412224222243222442224522246222472224822249222502225122252222532225422255222562225722258222592226022261222622226322264222652226622267222682226922270222712227222273222742227522276222772227822279222802228122282222832228422285222862228722288222892229022291222922229322294222952229622297222982229922300223012230222303223042230522306223072230822309223102231122312223132231422315223162231722318223192232022321223222232322324223252232622327223282232922330223312233222333223342233522336223372233822339223402234122342223432234422345223462234722348223492235022351223522235322354223552235622357223582235922360223612236222363223642236522366223672236822369223702237122372223732237422375223762237722378223792238022381223822238322384223852238622387223882238922390223912239222393223942239522396223972239822399224002240122402224032240422405224062240722408224092241022411224122241322414224152241622417224182241922420224212242222423224242242522426224272242822429224302243122432224332243422435224362243722438224392244022441224422244322444224452244622447224482244922450224512245222453224542245522456224572245822459224602246122462224632246422465224662246722468224692247022471224722247322474224752247622477224782247922480224812248222483224842248522486224872248822489224902249122492224932249422495224962249722498224992250022501225022250322504225052250622507225082250922510225112251222513225142251522516225172251822519225202252122522225232252422525225262252722528225292253022531225322253322534225352253622537225382253922540225412254222543225442254522546225472254822549225502255122552225532255422555225562255722558225592256022561225622256322564225652256622567225682256922570225712257222573225742257522576225772257822579225802258122582225832258422585225862258722588225892259022591225922259322594225952259622597225982259922600226012260222603226042260522606226072260822609226102261122612226132261422615226162261722618226192262022621226222262322624226252262622627226282262922630226312263222633226342263522636226372263822639226402264122642226432264422645226462264722648226492265022651226522265322654226552265622657226582265922660226612266222663226642266522666226672266822669226702267122672226732267422675226762267722678226792268022681226822268322684226852268622687226882268922690226912269222693226942269522696226972269822699227002270122702227032270422705227062270722708227092271022711227122271322714227152271622717227182271922720227212272222723227242272522726227272272822729227302273122732227332273422735227362273722738227392274022741227422274322744227452274622747227482274922750227512275222753227542275522756227572275822759227602276122762227632276422765227662276722768227692277022771227722277322774227752277622777227782277922780227812278222783227842278522786227872278822789227902279122792227932279422795227962279722798227992280022801228022280322804228052280622807228082280922810228112281222813228142281522816228172281822819228202282122822228232282422825228262282722828228292283022831228322283322834228352283622837228382283922840228412284222843228442284522846228472284822849228502285122852228532285422855228562285722858228592286022861228622286322864228652286622867228682286922870228712287222873228742287522876228772287822879228802288122882228832288422885228862288722888228892289022891228922289322894228952289622897228982289922900229012290222903229042290522906229072290822909229102291122912229132291422915229162291722918229192292022921229222292322924229252292622927229282292922930229312293222933229342293522936229372293822939229402294122942229432294422945229462294722948229492295022951229522295322954229552295622957229582295922960229612296222963229642296522966229672296822969229702297122972229732297422975229762297722978229792298022981229822298322984229852298622987229882298922990229912299222993229942299522996229972299822999230002300123002230032300423005230062300723008230092301023011230122301323014230152301623017230182301923020230212302223023230242302523026230272302823029230302303123032230332303423035230362303723038230392304023041230422304323044230452304623047230482304923050230512305223053230542305523056230572305823059230602306123062230632306423065230662306723068230692307023071230722307323074230752307623077230782307923080230812308223083230842308523086230872308823089230902309123092230932309423095230962309723098230992310023101231022310323104231052310623107231082310923110231112311223113231142311523116231172311823119231202312123122231232312423125231262312723128231292313023131231322313323134231352313623137231382313923140231412314223143231442314523146231472314823149231502315123152231532315423155231562315723158231592316023161231622316323164231652316623167231682316923170231712317223173231742317523176231772317823179231802318123182231832318423185231862318723188231892319023191231922319323194231952319623197231982319923200232012320223203232042320523206232072320823209232102321123212232132321423215232162321723218232192322023221232222322323224232252322623227232282322923230232312323223233232342323523236232372323823239232402324123242232432324423245232462324723248232492325023251232522325323254232552325623257232582325923260232612326223263232642326523266232672326823269232702327123272232732327423275232762327723278232792328023281232822328323284232852328623287232882328923290232912329223293232942329523296232972329823299233002330123302233032330423305233062330723308233092331023311233122331323314233152331623317233182331923320233212332223323233242332523326233272332823329233302333123332233332333423335233362333723338233392334023341233422334323344233452334623347233482334923350233512335223353233542335523356233572335823359233602336123362233632336423365233662336723368233692337023371233722337323374233752337623377233782337923380233812338223383233842338523386233872338823389233902339123392233932339423395233962339723398233992340023401234022340323404234052340623407234082340923410234112341223413234142341523416234172341823419234202342123422234232342423425234262342723428234292343023431234322343323434234352343623437234382343923440234412344223443234442344523446234472344823449234502345123452234532345423455234562345723458234592346023461234622346323464234652346623467234682346923470234712347223473234742347523476234772347823479234802348123482234832348423485234862348723488234892349023491234922349323494234952349623497234982349923500235012350223503235042350523506235072350823509235102351123512235132351423515235162351723518235192352023521235222352323524235252352623527235282352923530235312353223533235342353523536235372353823539235402354123542235432354423545235462354723548235492355023551235522355323554235552355623557235582355923560235612356223563235642356523566235672356823569235702357123572235732357423575235762357723578235792358023581235822358323584235852358623587235882358923590235912359223593235942359523596235972359823599236002360123602236032360423605236062360723608236092361023611236122361323614236152361623617236182361923620236212362223623236242362523626236272362823629236302363123632236332363423635236362363723638236392364023641236422364323644236452364623647236482364923650236512365223653236542365523656236572365823659236602366123662236632366423665236662366723668236692367023671236722367323674236752367623677236782367923680236812368223683236842368523686236872368823689236902369123692236932369423695236962369723698236992370023701237022370323704237052370623707237082370923710237112371223713237142371523716237172371823719237202372123722237232372423725237262372723728237292373023731237322373323734237352373623737237382373923740237412374223743237442374523746237472374823749237502375123752237532375423755237562375723758237592376023761237622376323764237652376623767237682376923770237712377223773237742377523776237772377823779237802378123782237832378423785237862378723788237892379023791237922379323794237952379623797237982379923800238012380223803238042380523806238072380823809238102381123812238132381423815238162381723818238192382023821238222382323824238252382623827238282382923830238312383223833238342383523836238372383823839238402384123842238432384423845238462384723848238492385023851238522385323854238552385623857238582385923860238612386223863238642386523866238672386823869238702387123872238732387423875238762387723878238792388023881238822388323884238852388623887238882388923890238912389223893238942389523896238972389823899239002390123902239032390423905239062390723908239092391023911239122391323914239152391623917239182391923920239212392223923239242392523926239272392823929239302393123932239332393423935239362393723938239392394023941239422394323944239452394623947239482394923950239512395223953239542395523956239572395823959239602396123962239632396423965239662396723968239692397023971239722397323974239752397623977239782397923980239812398223983239842398523986239872398823989239902399123992239932399423995239962399723998239992400024001240022400324004240052400624007240082400924010240112401224013240142401524016240172401824019240202402124022240232402424025240262402724028240292403024031240322403324034240352403624037240382403924040240412404224043240442404524046240472404824049240502405124052240532405424055240562405724058240592406024061240622406324064240652406624067240682406924070240712407224073240742407524076240772407824079240802408124082240832408424085240862408724088240892409024091240922409324094240952409624097240982409924100241012410224103241042410524106241072410824109241102411124112241132411424115241162411724118241192412024121241222412324124241252412624127241282412924130241312413224133241342413524136241372413824139241402414124142241432414424145241462414724148241492415024151241522415324154241552415624157241582415924160241612416224163241642416524166241672416824169241702417124172241732417424175241762417724178241792418024181241822418324184241852418624187241882418924190241912419224193241942419524196241972419824199242002420124202242032420424205242062420724208242092421024211242122421324214242152421624217242182421924220242212422224223242242422524226242272422824229242302423124232242332423424235242362423724238242392424024241242422424324244242452424624247242482424924250242512425224253242542425524256242572425824259242602426124262242632426424265242662426724268242692427024271242722427324274242752427624277242782427924280242812428224283242842428524286242872428824289242902429124292242932429424295242962429724298242992430024301243022430324304243052430624307243082430924310243112431224313243142431524316243172431824319243202432124322243232432424325243262432724328243292433024331243322433324334243352433624337243382433924340243412434224343243442434524346243472434824349243502435124352243532435424355243562435724358243592436024361243622436324364243652436624367243682436924370243712437224373243742437524376243772437824379243802438124382243832438424385243862438724388243892439024391243922439324394243952439624397243982439924400244012440224403244042440524406244072440824409244102441124412244132441424415244162441724418244192442024421244222442324424244252442624427244282442924430244312443224433244342443524436244372443824439244402444124442244432444424445244462444724448244492445024451244522445324454244552445624457244582445924460244612446224463244642446524466244672446824469244702447124472244732447424475244762447724478244792448024481244822448324484244852448624487244882448924490244912449224493244942449524496244972449824499245002450124502245032450424505245062450724508245092451024511245122451324514245152451624517245182451924520245212452224523245242452524526245272452824529245302453124532245332453424535245362453724538245392454024541245422454324544245452454624547245482454924550245512455224553245542455524556245572455824559245602456124562245632456424565245662456724568245692457024571245722457324574245752457624577245782457924580245812458224583245842458524586245872458824589245902459124592245932459424595245962459724598245992460024601246022460324604246052460624607246082460924610246112461224613246142461524616246172461824619246202462124622246232462424625246262462724628246292463024631246322463324634246352463624637246382463924640246412464224643246442464524646246472464824649246502465124652246532465424655246562465724658246592466024661246622466324664246652466624667246682466924670246712467224673246742467524676246772467824679246802468124682246832468424685246862468724688246892469024691246922469324694246952469624697246982469924700247012470224703247042470524706247072470824709247102471124712247132471424715247162471724718247192472024721247222472324724247252472624727247282472924730247312473224733247342473524736247372473824739247402474124742247432474424745247462474724748247492475024751247522475324754247552475624757247582475924760247612476224763247642476524766247672476824769247702477124772247732477424775247762477724778247792478024781247822478324784247852478624787247882478924790247912479224793247942479524796247972479824799248002480124802248032480424805248062480724808248092481024811248122481324814248152481624817248182481924820248212482224823248242482524826248272482824829248302483124832248332483424835248362483724838248392484024841248422484324844248452484624847248482484924850248512485224853248542485524856248572485824859248602486124862248632486424865248662486724868248692487024871248722487324874248752487624877248782487924880248812488224883248842488524886248872488824889248902489124892248932489424895248962489724898248992490024901249022490324904249052490624907249082490924910249112491224913249142491524916249172491824919249202492124922249232492424925249262492724928249292493024931249322493324934249352493624937249382493924940249412494224943249442494524946249472494824949249502495124952249532495424955249562495724958249592496024961249622496324964249652496624967249682496924970249712497224973249742497524976249772497824979249802498124982249832498424985249862498724988249892499024991249922499324994249952499624997249982499925000250012500225003250042500525006250072500825009250102501125012250132501425015250162501725018250192502025021250222502325024250252502625027250282502925030250312503225033250342503525036250372503825039250402504125042250432504425045250462504725048250492505025051250522505325054250552505625057250582505925060250612506225063250642506525066250672506825069250702507125072250732507425075250762507725078250792508025081250822508325084250852508625087250882508925090250912509225093250942509525096250972509825099251002510125102251032510425105251062510725108251092511025111251122511325114251152511625117251182511925120251212512225123251242512525126251272512825129251302513125132251332513425135251362513725138251392514025141251422514325144251452514625147251482514925150251512515225153251542515525156251572515825159251602516125162251632516425165251662516725168251692517025171251722517325174251752517625177251782517925180251812518225183251842518525186251872518825189251902519125192251932519425195251962519725198251992520025201252022520325204252052520625207252082520925210252112521225213252142521525216252172521825219252202522125222252232522425225252262522725228252292523025231252322523325234252352523625237252382523925240252412524225243252442524525246252472524825249252502525125252252532525425255252562525725258252592526025261252622526325264252652526625267252682526925270252712527225273252742527525276252772527825279252802528125282252832528425285252862528725288252892529025291252922529325294252952529625297252982529925300253012530225303253042530525306253072530825309253102531125312253132531425315253162531725318253192532025321253222532325324253252532625327253282532925330253312533225333253342533525336253372533825339253402534125342253432534425345253462534725348253492535025351253522535325354253552535625357253582535925360253612536225363253642536525366253672536825369253702537125372253732537425375253762537725378253792538025381253822538325384253852538625387253882538925390253912539225393253942539525396253972539825399254002540125402254032540425405254062540725408254092541025411254122541325414254152541625417254182541925420254212542225423254242542525426254272542825429254302543125432254332543425435254362543725438254392544025441254422544325444254452544625447254482544925450254512545225453254542545525456254572545825459254602546125462254632546425465254662546725468254692547025471254722547325474254752547625477254782547925480254812548225483254842548525486254872548825489254902549125492254932549425495254962549725498254992550025501255022550325504255052550625507255082550925510255112551225513255142551525516255172551825519255202552125522255232552425525255262552725528255292553025531255322553325534255352553625537255382553925540255412554225543255442554525546255472554825549255502555125552255532555425555255562555725558255592556025561255622556325564255652556625567255682556925570255712557225573255742557525576255772557825579255802558125582255832558425585255862558725588255892559025591255922559325594255952559625597255982559925600256012560225603256042560525606256072560825609256102561125612256132561425615256162561725618256192562025621256222562325624256252562625627256282562925630256312563225633256342563525636256372563825639256402564125642256432564425645256462564725648256492565025651256522565325654256552565625657256582565925660256612566225663256642566525666256672566825669256702567125672256732567425675256762567725678256792568025681256822568325684256852568625687256882568925690256912569225693256942569525696256972569825699257002570125702257032570425705257062570725708257092571025711257122571325714257152571625717257182571925720257212572225723257242572525726257272572825729257302573125732257332573425735257362573725738257392574025741257422574325744257452574625747257482574925750257512575225753257542575525756257572575825759257602576125762257632576425765257662576725768257692577025771257722577325774257752577625777257782577925780257812578225783257842578525786257872578825789257902579125792257932579425795257962579725798257992580025801258022580325804258052580625807258082580925810258112581225813258142581525816258172581825819258202582125822258232582425825258262582725828258292583025831258322583325834258352583625837258382583925840258412584225843258442584525846258472584825849258502585125852258532585425855258562585725858258592586025861258622586325864258652586625867258682586925870258712587225873258742587525876258772587825879258802588125882258832588425885258862588725888258892589025891258922589325894258952589625897258982589925900259012590225903259042590525906259072590825909259102591125912259132591425915259162591725918259192592025921259222592325924259252592625927259282592925930259312593225933259342593525936259372593825939259402594125942259432594425945259462594725948259492595025951259522595325954259552595625957259582595925960259612596225963259642596525966259672596825969259702597125972259732597425975259762597725978259792598025981259822598325984259852598625987259882598925990259912599225993259942599525996259972599825999260002600126002260032600426005260062600726008260092601026011260122601326014260152601626017260182601926020260212602226023260242602526026260272602826029260302603126032260332603426035260362603726038260392604026041260422604326044260452604626047260482604926050260512605226053260542605526056260572605826059260602606126062260632606426065260662606726068260692607026071260722607326074260752607626077260782607926080260812608226083260842608526086260872608826089260902609126092260932609426095260962609726098260992610026101261022610326104261052610626107261082610926110261112611226113261142611526116261172611826119261202612126122261232612426125261262612726128261292613026131261322613326134261352613626137261382613926140261412614226143261442614526146261472614826149261502615126152261532615426155261562615726158261592616026161261622616326164261652616626167261682616926170261712617226173261742617526176261772617826179261802618126182261832618426185261862618726188261892619026191261922619326194261952619626197261982619926200262012620226203262042620526206262072620826209262102621126212262132621426215262162621726218262192622026221262222622326224262252622626227262282622926230262312623226233262342623526236262372623826239262402624126242262432624426245262462624726248262492625026251262522625326254262552625626257262582625926260262612626226263262642626526266262672626826269262702627126272262732627426275262762627726278262792628026281262822628326284262852628626287262882628926290262912629226293262942629526296262972629826299263002630126302263032630426305263062630726308263092631026311263122631326314263152631626317263182631926320263212632226323263242632526326263272632826329263302633126332263332633426335263362633726338263392634026341263422634326344263452634626347263482634926350263512635226353263542635526356263572635826359263602636126362263632636426365263662636726368263692637026371263722637326374263752637626377263782637926380263812638226383263842638526386263872638826389263902639126392263932639426395263962639726398263992640026401264022640326404264052640626407264082640926410264112641226413264142641526416264172641826419264202642126422264232642426425264262642726428264292643026431264322643326434264352643626437264382643926440264412644226443264442644526446264472644826449264502645126452264532645426455264562645726458264592646026461264622646326464264652646626467264682646926470264712647226473264742647526476
  1. ;;; org.el --- Outline-based notes management and organizer
  2. ;; Carstens outline-mode for keeping track of everything.
  3. ;; Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
  4. ;;
  5. ;; Author: Carsten Dominik <carsten at orgmode dot org>
  6. ;; Keywords: outlines, hypermedia, calendar, wp
  7. ;; Homepage: http://orgmode.org
  8. ;; Version: 5.13e
  9. ;;
  10. ;; This file is part of GNU Emacs.
  11. ;;
  12. ;; GNU Emacs is free software; you can redistribute it and/or modify
  13. ;; it under the terms of the GNU General Public License as published by
  14. ;; the Free Software Foundation; either version 3, or (at your option)
  15. ;; any later version.
  16. ;; GNU Emacs is distributed in the hope that it will be useful,
  17. ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  19. ;; GNU General Public License for more details.
  20. ;; You should have received a copy of the GNU General Public License
  21. ;; along with GNU Emacs; see the file COPYING. If not, write to the
  22. ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  23. ;; Boston, MA 02110-1301, USA.
  24. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  25. ;;
  26. ;;; Commentary:
  27. ;;
  28. ;; Org-mode is a mode for keeping notes, maintaining ToDo lists, and doing
  29. ;; project planning with a fast and effective plain-text system.
  30. ;;
  31. ;; Org-mode develops organizational tasks around NOTES files that contain
  32. ;; information about projects as plain text. Org-mode is implemented on
  33. ;; top of outline-mode, which makes it possible to keep the content of
  34. ;; large files well structured. Visibility cycling and structure editing
  35. ;; help to work with the tree. Tables are easily created with a built-in
  36. ;; table editor. Org-mode supports ToDo items, deadlines, time stamps,
  37. ;; and scheduling. It dynamically compiles entries into an agenda that
  38. ;; utilizes and smoothly integrates much of the Emacs calendar and diary.
  39. ;; Plain text URL-like links connect to websites, emails, Usenet
  40. ;; messages, BBDB entries, and any files related to the projects. For
  41. ;; printing and sharing of notes, an Org-mode file can be exported as a
  42. ;; structured ASCII file, as HTML, or (todo and agenda items only) as an
  43. ;; iCalendar file. It can also serve as a publishing tool for a set of
  44. ;; linked webpages.
  45. ;;
  46. ;; Installation and Activation
  47. ;; ---------------------------
  48. ;; See the corresponding sections in the manual at
  49. ;;
  50. ;; http://orgmode.org/org.html#Installation
  51. ;;
  52. ;; Documentation
  53. ;; -------------
  54. ;; The documentation of Org-mode can be found in the TeXInfo file. The
  55. ;; distribution also contains a PDF version of it. At the homepage of
  56. ;; Org-mode, you can read the same text online as HTML. There is also an
  57. ;; excellent reference card made by Philip Rooke. This card can be found
  58. ;; in the etc/ directory of Emacs 22.
  59. ;;
  60. ;; A list of recent changes can be found at
  61. ;; http://orgmode.org/Changes.html
  62. ;;
  63. ;;; Code:
  64. ;;;; Require other packages
  65. (eval-when-compile
  66. (require 'cl)
  67. (require 'gnus-sum)
  68. (require 'calendar))
  69. ;; For XEmacs, noutline is not yet provided by outline.el, so arrange for
  70. ;; the file noutline.el being loaded.
  71. (if (featurep 'xemacs) (condition-case nil (require 'noutline)))
  72. ;; We require noutline, which might be provided in outline.el
  73. (require 'outline) (require 'noutline)
  74. ;; Other stuff we need.
  75. (require 'time-date)
  76. (require 'easymenu)
  77. ;;;; Customization variables
  78. ;;; Version
  79. (defconst org-version "5.13e"
  80. "The version number of the file org.el.")
  81. (defun org-version ()
  82. (interactive)
  83. (message "Org-mode version %s" org-version))
  84. ;;; Compatibility constants
  85. (defconst org-xemacs-p (featurep 'xemacs)) ; not used by org.el itself
  86. (defconst org-format-transports-properties-p
  87. (let ((x "a"))
  88. (add-text-properties 0 1 '(test t) x)
  89. (get-text-property 0 'test (format "%s" x)))
  90. "Does format transport text properties?")
  91. (defmacro org-unmodified (&rest body)
  92. "Execute body without changing buffer-modified-p."
  93. `(set-buffer-modified-p
  94. (prog1 (buffer-modified-p) ,@body)))
  95. (defmacro org-re (s)
  96. "Replace posix classes in regular expression."
  97. (if (featurep 'xemacs)
  98. (let ((ss s))
  99. (save-match-data
  100. (while (string-match "\\[:alnum:\\]" ss)
  101. (setq ss (replace-match "a-zA-Z0-9" t t ss)))
  102. (while (string-match "\\[:alpha:\\]" ss)
  103. (setq ss (replace-match "a-zA-Z" t t ss)))
  104. ss))
  105. s))
  106. (defmacro org-preserve-lc (&rest body)
  107. `(let ((_line (org-current-line))
  108. (_col (current-column)))
  109. (unwind-protect
  110. (progn ,@body)
  111. (goto-line _line)
  112. (move-to-column _col))))
  113. (defmacro org-without-partial-completion (&rest body)
  114. `(let ((pc-mode (and (boundp 'partial-completion-mode)
  115. partial-completion-mode)))
  116. (unwind-protect
  117. (progn
  118. (if pc-mode (partial-completion-mode -1))
  119. ,@body)
  120. (if pc-mode (partial-completion-mode 1)))))
  121. ;;; The custom variables
  122. (defgroup org nil
  123. "Outline-based notes management and organizer."
  124. :tag "Org"
  125. :group 'outlines
  126. :group 'hypermedia
  127. :group 'calendar)
  128. ;; FIXME: Needs a separate group...
  129. (defcustom org-completion-fallback-command 'hippie-expand
  130. "The expansion command called by \\[org-complete] in normal context.
  131. Normal means, no org-mode-specific context."
  132. :group 'org
  133. :type 'function)
  134. (defgroup org-startup nil
  135. "Options concerning startup of Org-mode."
  136. :tag "Org Startup"
  137. :group 'org)
  138. (defcustom org-startup-folded t
  139. "Non-nil means, entering Org-mode will switch to OVERVIEW.
  140. This can also be configured on a per-file basis by adding one of
  141. the following lines anywhere in the buffer:
  142. #+STARTUP: fold
  143. #+STARTUP: nofold
  144. #+STARTUP: content"
  145. :group 'org-startup
  146. :type '(choice
  147. (const :tag "nofold: show all" nil)
  148. (const :tag "fold: overview" t)
  149. (const :tag "content: all headlines" content)))
  150. (defcustom org-startup-truncated t
  151. "Non-nil means, entering Org-mode will set `truncate-lines'.
  152. This is useful since some lines containing links can be very long and
  153. uninteresting. Also tables look terrible when wrapped."
  154. :group 'org-startup
  155. :type 'boolean)
  156. (defcustom org-startup-align-all-tables nil
  157. "Non-nil means, align all tables when visiting a file.
  158. This is useful when the column width in tables is forced with <N> cookies
  159. in table fields. Such tables will look correct only after the first re-align.
  160. This can also be configured on a per-file basis by adding one of
  161. the following lines anywhere in the buffer:
  162. #+STARTUP: align
  163. #+STARTUP: noalign"
  164. :group 'org-startup
  165. :type 'boolean)
  166. (defcustom org-insert-mode-line-in-empty-file nil
  167. "Non-nil means insert the first line setting Org-mode in empty files.
  168. When the function `org-mode' is called interactively in an empty file, this
  169. normally means that the file name does not automatically trigger Org-mode.
  170. To ensure that the file will always be in Org-mode in the future, a
  171. line enforcing Org-mode will be inserted into the buffer, if this option
  172. has been set."
  173. :group 'org-startup
  174. :type 'boolean)
  175. (defcustom org-replace-disputed-keys nil
  176. "Non-nil means use alternative key bindings for some keys.
  177. Org-mode uses S-<cursor> keys for changing timestamps and priorities.
  178. These keys are also used by other packages like `CUA-mode' or `windmove.el'.
  179. If you want to use Org-mode together with one of these other modes,
  180. or more generally if you would like to move some Org-mode commands to
  181. other keys, set this variable and configure the keys with the variable
  182. `org-disputed-keys'.
  183. This option is only relevant at load-time of Org-mode, and must be set
  184. *before* org.el is loaded. Changing it requires a restart of Emacs to
  185. become effective."
  186. :group 'org-startup
  187. :type 'boolean)
  188. (if (fboundp 'defvaralias)
  189. (defvaralias 'org-CUA-compatible 'org-replace-disputed-keys))
  190. (defcustom org-disputed-keys
  191. '(([(shift up)] . [(meta p)])
  192. ([(shift down)] . [(meta n)])
  193. ([(shift left)] . [(meta -)])
  194. ([(shift right)] . [(meta +)])
  195. ([(control shift right)] . [(meta shift +)])
  196. ([(control shift left)] . [(meta shift -)]))
  197. "Keys for which Org-mode and other modes compete.
  198. This is an alist, cars are the default keys, second element specifies
  199. the alternative to use when `org-replace-disputed-keys' is t.
  200. Keys can be specified in any syntax supported by `define-key'.
  201. The value of this option takes effect only at Org-mode's startup,
  202. therefore you'll have to restart Emacs to apply it after changing."
  203. :group 'org-startup
  204. :type 'alist)
  205. (defun org-key (key)
  206. "Select key according to `org-replace-disputed-keys' and `org-disputed-keys'.
  207. Or return the original if not disputed."
  208. (if org-replace-disputed-keys
  209. (let* ((nkey (key-description key))
  210. (x (org-find-if (lambda (x)
  211. (equal (key-description (car x)) nkey))
  212. org-disputed-keys)))
  213. (if x (cdr x) key))
  214. key))
  215. (defun org-find-if (predicate seq)
  216. (catch 'exit
  217. (while seq
  218. (if (funcall predicate (car seq))
  219. (throw 'exit (car seq))
  220. (pop seq)))))
  221. (defun org-defkey (keymap key def)
  222. "Define a key, possibly translated, as returned by `org-key'."
  223. (define-key keymap (org-key key) def))
  224. (defcustom org-ellipsis 'org-ellipsis
  225. "The ellipsis to use in the Org-mode outline.
  226. When nil, just use the standard three dots. When a string, use that instead,
  227. When a face, use the standart 3 dots, but with the specified face.
  228. The change affects only Org-mode (which will then use its own display table).
  229. Changing this requires executing `M-x org-mode' in a buffer to become
  230. effective."
  231. :group 'org-startup
  232. :type '(choice (const :tag "Default" nil)
  233. (face :tag "Face" :value org-warning)
  234. (string :tag "String" :value "...#")))
  235. (defvar org-display-table nil
  236. "The display table for org-mode, in case `org-ellipsis' is non-nil.")
  237. (defgroup org-keywords nil
  238. "Keywords in Org-mode."
  239. :tag "Org Keywords"
  240. :group 'org)
  241. (defcustom org-deadline-string "DEADLINE:"
  242. "String to mark deadline entries.
  243. A deadline is this string, followed by a time stamp. Should be a word,
  244. terminated by a colon. You can insert a schedule keyword and
  245. a timestamp with \\[org-deadline].
  246. Changes become only effective after restarting Emacs."
  247. :group 'org-keywords
  248. :type 'string)
  249. (defcustom org-scheduled-string "SCHEDULED:"
  250. "String to mark scheduled TODO entries.
  251. A schedule is this string, followed by a time stamp. Should be a word,
  252. terminated by a colon. You can insert a schedule keyword and
  253. a timestamp with \\[org-schedule].
  254. Changes become only effective after restarting Emacs."
  255. :group 'org-keywords
  256. :type 'string)
  257. (defcustom org-closed-string "CLOSED:"
  258. "String used as the prefix for timestamps logging closing a TODO entry."
  259. :group 'org-keywords
  260. :type 'string)
  261. (defcustom org-clock-string "CLOCK:"
  262. "String used as prefix for timestamps clocking work hours on an item."
  263. :group 'org-keywords
  264. :type 'string)
  265. (defcustom org-comment-string "COMMENT"
  266. "Entries starting with this keyword will never be exported.
  267. An entry can be toggled between COMMENT and normal with
  268. \\[org-toggle-comment].
  269. Changes become only effective after restarting Emacs."
  270. :group 'org-keywords
  271. :type 'string)
  272. (defcustom org-quote-string "QUOTE"
  273. "Entries starting with this keyword will be exported in fixed-width font.
  274. Quoting applies only to the text in the entry following the headline, and does
  275. not extend beyond the next headline, even if that is lower level.
  276. An entry can be toggled between QUOTE and normal with
  277. \\[org-toggle-fixed-width-section]."
  278. :group 'org-keywords
  279. :type 'string)
  280. (defconst org-repeat-re
  281. (concat "\\(?:\\<\\(?:" org-scheduled-string "\\|" org-deadline-string "\\)"
  282. " +<[0-9]\\{4\\}-[0-9][0-9]-[0-9][0-9] [^>\n]*\\)\\(\\+[0-9]+[dwmy]\\)")
  283. "Regular expression for specifying repeated events.
  284. After a match, group 1 contains the repeat expression.")
  285. (defgroup org-structure nil
  286. "Options concerning the general structure of Org-mode files."
  287. :tag "Org Structure"
  288. :group 'org)
  289. (defgroup org-reveal-location nil
  290. "Options about how to make context of a location visible."
  291. :tag "Org Reveal Location"
  292. :group 'org-structure)
  293. (defcustom org-show-hierarchy-above '((default . t))
  294. "Non-nil means, show full hierarchy when revealing a location.
  295. Org-mode often shows locations in an org-mode file which might have
  296. been invisible before. When this is set, the hierarchy of headings
  297. above the exposed location is shown.
  298. Turning this off for example for sparse trees makes them very compact.
  299. Instead of t, this can also be an alist specifying this option for different
  300. contexts. Valid contexts are
  301. agenda when exposing an entry from the agenda
  302. org-goto when using the command `org-goto' on key C-c C-j
  303. occur-tree when using the command `org-occur' on key C-c /
  304. tags-tree when constructing a sparse tree based on tags matches
  305. link-search when exposing search matches associated with a link
  306. mark-goto when exposing the jump goal of a mark
  307. bookmark-jump when exposing a bookmark location
  308. isearch when exiting from an incremental search
  309. default default for all contexts not set explicitly"
  310. :group 'org-reveal-location
  311. :type '(choice
  312. (const :tag "Always" t)
  313. (const :tag "Never" nil)
  314. (repeat :greedy t :tag "Individual contexts"
  315. (cons
  316. (choice :tag "Context"
  317. (const agenda)
  318. (const org-goto)
  319. (const occur-tree)
  320. (const tags-tree)
  321. (const link-search)
  322. (const mark-goto)
  323. (const bookmark-jump)
  324. (const isearch)
  325. (const default))
  326. (boolean)))))
  327. (defcustom org-show-following-heading '((default . nil))
  328. "Non-nil means, show following heading when revealing a location.
  329. Org-mode often shows locations in an org-mode file which might have
  330. been invisible before. When this is set, the heading following the
  331. match is shown.
  332. Turning this off for example for sparse trees makes them very compact,
  333. but makes it harder to edit the location of the match. In such a case,
  334. use the command \\[org-reveal] to show more context.
  335. Instead of t, this can also be an alist specifying this option for different
  336. contexts. See `org-show-hierarchy-above' for valid contexts."
  337. :group 'org-reveal-location
  338. :type '(choice
  339. (const :tag "Always" t)
  340. (const :tag "Never" nil)
  341. (repeat :greedy t :tag "Individual contexts"
  342. (cons
  343. (choice :tag "Context"
  344. (const agenda)
  345. (const org-goto)
  346. (const occur-tree)
  347. (const tags-tree)
  348. (const link-search)
  349. (const mark-goto)
  350. (const bookmark-jump)
  351. (const isearch)
  352. (const default))
  353. (boolean)))))
  354. (defcustom org-show-siblings '((default . nil) (isearch t))
  355. "Non-nil means, show all sibling heading when revealing a location.
  356. Org-mode often shows locations in an org-mode file which might have
  357. been invisible before. When this is set, the sibling of the current entry
  358. heading are all made visible. If `org-show-hierarchy-above' is t,
  359. the same happens on each level of the hierarchy above the current entry.
  360. By default this is on for the isearch context, off for all other contexts.
  361. Turning this off for example for sparse trees makes them very compact,
  362. but makes it harder to edit the location of the match. In such a case,
  363. use the command \\[org-reveal] to show more context.
  364. Instead of t, this can also be an alist specifying this option for different
  365. contexts. See `org-show-hierarchy-above' for valid contexts."
  366. :group 'org-reveal-location
  367. :type '(choice
  368. (const :tag "Always" t)
  369. (const :tag "Never" nil)
  370. (repeat :greedy t :tag "Individual contexts"
  371. (cons
  372. (choice :tag "Context"
  373. (const agenda)
  374. (const org-goto)
  375. (const occur-tree)
  376. (const tags-tree)
  377. (const link-search)
  378. (const mark-goto)
  379. (const bookmark-jump)
  380. (const isearch)
  381. (const default))
  382. (boolean)))))
  383. (defgroup org-cycle nil
  384. "Options concerning visibility cycling in Org-mode."
  385. :tag "Org Cycle"
  386. :group 'org-structure)
  387. (defcustom org-drawers '("PROPERTIES" "CLOCK")
  388. "Names of drawers. Drawers are not opened by cycling on the headline above.
  389. Drawers only open with a TAB on the drawer line itself. A drawer looks like
  390. this:
  391. :DRAWERNAME:
  392. .....
  393. :END:
  394. The drawer \"PROPERTIES\" is special for capturing properties through
  395. the property API.
  396. Drawers can be defined on the per-file basis with a line like:
  397. #+DRAWERS: HIDDEN STATE PROPERTIES"
  398. :group 'org-structure
  399. :type '(repeat (string :tag "Drawer Name")))
  400. (defcustom org-cycle-global-at-bob nil
  401. "Cycle globally if cursor is at beginning of buffer and not at a headline.
  402. This makes it possible to do global cycling without having to use S-TAB or
  403. C-u TAB. For this special case to work, the first line of the buffer
  404. must not be a headline - it may be empty ot some other text. When used in
  405. this way, `org-cycle-hook' is disables temporarily, to make sure the
  406. cursor stays at the beginning of the buffer.
  407. When this option is nil, don't do anything special at the beginning
  408. of the buffer."
  409. :group 'org-cycle
  410. :type 'boolean)
  411. (defcustom org-cycle-emulate-tab t
  412. "Where should `org-cycle' emulate TAB.
  413. nil Never
  414. white Only in completely white lines
  415. whitestart Only at the beginning of lines, before the first non-white char.
  416. t Everywhere except in headlines
  417. exc-hl-bol Everywhere except at the start of a headline
  418. If TAB is used in a place where it does not emulate TAB, the current subtree
  419. visibility is cycled."
  420. :group 'org-cycle
  421. :type '(choice (const :tag "Never" nil)
  422. (const :tag "Only in completely white lines" white)
  423. (const :tag "Before first char in a line" whitestart)
  424. (const :tag "Everywhere except in headlines" t)
  425. (const :tag "Everywhere except at bol in headlines" exc-hl-bol)
  426. ))
  427. (defcustom org-cycle-separator-lines 2
  428. "Number of empty lines needed to keep an empty line between collapsed trees.
  429. If you leave an empty line between the end of a subtree and the following
  430. headline, this empty line is hidden when the subtree is folded.
  431. Org-mode will leave (exactly) one empty line visible if the number of
  432. empty lines is equal or larger to the number given in this variable.
  433. So the default 2 means, at least 2 empty lines after the end of a subtree
  434. are needed to produce free space between a collapsed subtree and the
  435. following headline.
  436. Special case: when 0, never leave empty lines in collapsed view."
  437. :group 'org-cycle
  438. :type 'integer)
  439. (defcustom org-cycle-hook '(org-cycle-hide-archived-subtrees
  440. org-cycle-hide-drawers
  441. org-cycle-show-empty-lines
  442. org-optimize-window-after-visibility-change)
  443. "Hook that is run after `org-cycle' has changed the buffer visibility.
  444. The function(s) in this hook must accept a single argument which indicates
  445. the new state that was set by the most recent `org-cycle' command. The
  446. argument is a symbol. After a global state change, it can have the values
  447. `overview', `content', or `all'. After a local state change, it can have
  448. the values `folded', `children', or `subtree'."
  449. :group 'org-cycle
  450. :type 'hook)
  451. (defgroup org-edit-structure nil
  452. "Options concerning structure editing in Org-mode."
  453. :tag "Org Edit Structure"
  454. :group 'org-structure)
  455. (defcustom org-special-ctrl-a/e nil
  456. "Non-nil means `C-a' and `C-e' behave specially in headlines and items.
  457. When t, `C-a' will bring back the cursor to the beginning of the
  458. headline text, i.e. after the stars and after a possible TODO keyword.
  459. In an item, this will be the position after the bullet.
  460. When the cursor is already at that position, another `C-a' will bring
  461. it to the beginning of the line.
  462. `C-e' will jump to the end of the headline, ignoring the presence of tags
  463. in the headline. A second `C-e' will then jump to the true end of the
  464. line, after any tags.
  465. When set to the symbol `reversed', the first `C-a' or `C-e' works normally,
  466. and only a directly following, identical keypress will bring the cursor
  467. to the special positions."
  468. :group 'org-edit-structure
  469. :type '(choice
  470. (const :tag "off" nil)
  471. (const :tag "after bullet first" t)
  472. (const :tag "border first" reversed)))
  473. (if (fboundp 'defvaralias)
  474. (defvaralias 'org-special-ctrl-a 'org-special-ctrl-a/e))
  475. (defcustom org-odd-levels-only nil
  476. "Non-nil means, skip even levels and only use odd levels for the outline.
  477. This has the effect that two stars are being added/taken away in
  478. promotion/demotion commands. It also influences how levels are
  479. handled by the exporters.
  480. Changing it requires restart of `font-lock-mode' to become effective
  481. for fontification also in regions already fontified.
  482. You may also set this on a per-file basis by adding one of the following
  483. lines to the buffer:
  484. #+STARTUP: odd
  485. #+STARTUP: oddeven"
  486. :group 'org-edit-structure
  487. :group 'org-font-lock
  488. :type 'boolean)
  489. (defcustom org-adapt-indentation t
  490. "Non-nil means, adapt indentation when promoting and demoting.
  491. When this is set and the *entire* text in an entry is indented, the
  492. indentation is increased by one space in a demotion command, and
  493. decreased by one in a promotion command. If any line in the entry
  494. body starts at column 0, indentation is not changed at all."
  495. :group 'org-edit-structure
  496. :type 'boolean)
  497. (defcustom org-blank-before-new-entry '((heading . nil)
  498. (plain-list-item . nil))
  499. "Should `org-insert-heading' leave a blank line before new heading/item?
  500. The value is an alist, with `heading' and `plain-list-item' as car,
  501. and a boolean flag as cdr."
  502. :group 'org-edit-structure
  503. :type '(list
  504. (cons (const heading) (boolean))
  505. (cons (const plain-list-item) (boolean))))
  506. (defcustom org-insert-heading-hook nil
  507. "Hook being run after inserting a new heading."
  508. :group 'org-edit-structure
  509. :type 'boolean)
  510. (defcustom org-enable-fixed-width-editor t
  511. "Non-nil means, lines starting with \":\" are treated as fixed-width.
  512. This currently only means, they are never auto-wrapped.
  513. When nil, such lines will be treated like ordinary lines.
  514. See also the QUOTE keyword."
  515. :group 'org-edit-structure
  516. :type 'boolean)
  517. (defgroup org-sparse-trees nil
  518. "Options concerning sparse trees in Org-mode."
  519. :tag "Org Sparse Trees"
  520. :group 'org-structure)
  521. (defcustom org-highlight-sparse-tree-matches t
  522. "Non-nil means, highlight all matches that define a sparse tree.
  523. The highlights will automatically disappear the next time the buffer is
  524. changed by an edit command."
  525. :group 'org-sparse-trees
  526. :type 'boolean)
  527. (defcustom org-remove-highlights-with-change t
  528. "Non-nil means, any change to the buffer will remove temporary highlights.
  529. Such highlights are created by `org-occur' and `org-clock-display'.
  530. When nil, `C-c C-c needs to be used to get rid of the highlights.
  531. The highlights created by `org-preview-latex-fragment' always need
  532. `C-c C-c' to be removed."
  533. :group 'org-sparse-trees
  534. :group 'org-time
  535. :type 'boolean)
  536. (defcustom org-occur-hook '(org-first-headline-recenter)
  537. "Hook that is run after `org-occur' has constructed a sparse tree.
  538. This can be used to recenter the window to show as much of the structure
  539. as possible."
  540. :group 'org-sparse-trees
  541. :type 'hook)
  542. (defgroup org-plain-lists nil
  543. "Options concerning plain lists in Org-mode."
  544. :tag "Org Plain lists"
  545. :group 'org-structure)
  546. (defcustom org-cycle-include-plain-lists nil
  547. "Non-nil means, include plain lists into visibility cycling.
  548. This means that during cycling, plain list items will *temporarily* be
  549. interpreted as outline headlines with a level given by 1000+i where i is the
  550. indentation of the bullet. In all other operations, plain list items are
  551. not seen as headlines. For example, you cannot assign a TODO keyword to
  552. such an item."
  553. :group 'org-plain-lists
  554. :type 'boolean)
  555. (defcustom org-plain-list-ordered-item-terminator t
  556. "The character that makes a line with leading number an ordered list item.
  557. Valid values are ?. and ?\). To get both terminators, use t. While
  558. ?. may look nicer, it creates the danger that a line with leading
  559. number may be incorrectly interpreted as an item. ?\) therefore is
  560. the safe choice."
  561. :group 'org-plain-lists
  562. :type '(choice (const :tag "dot like in \"2.\"" ?.)
  563. (const :tag "paren like in \"2)\"" ?\))
  564. (const :tab "both" t)))
  565. (defcustom org-auto-renumber-ordered-lists t
  566. "Non-nil means, automatically renumber ordered plain lists.
  567. Renumbering happens when the sequence have been changed with
  568. \\[org-shiftmetaup] or \\[org-shiftmetadown]. After other editing commands,
  569. use \\[org-ctrl-c-ctrl-c] to trigger renumbering."
  570. :group 'org-plain-lists
  571. :type 'boolean)
  572. (defcustom org-provide-checkbox-statistics t
  573. "Non-nil means, update checkbox statistics after insert and toggle.
  574. When this is set, checkbox statistics is updated each time you either insert
  575. a new checkbox with \\[org-insert-todo-heading] or toggle a checkbox
  576. with \\[org-ctrl-c-ctrl-c\\]."
  577. :group 'org-plain-lists
  578. :type 'boolean)
  579. (defgroup org-archive nil
  580. "Options concerning archiving in Org-mode."
  581. :tag "Org Archive"
  582. :group 'org-structure)
  583. (defcustom org-archive-tag "ARCHIVE"
  584. "The tag that marks a subtree as archived.
  585. An archived subtree does not open during visibility cycling, and does
  586. not contribute to the agenda listings."
  587. :group 'org-archive
  588. :group 'org-keywords
  589. :type 'string)
  590. (defcustom org-agenda-skip-archived-trees t
  591. "Non-nil means, the agenda will skip any items located in archived trees.
  592. An archived tree is a tree marked with the tag ARCHIVE."
  593. :group 'org-archive
  594. :group 'org-agenda-skip
  595. :type 'boolean)
  596. (defcustom org-cycle-open-archived-trees nil
  597. "Non-nil means, `org-cycle' will open archived trees.
  598. An archived tree is a tree marked with the tag ARCHIVE.
  599. When nil, archived trees will stay folded. You can still open them with
  600. normal outline commands like `show-all', but not with the cycling commands."
  601. :group 'org-archive
  602. :group 'org-cycle
  603. :type 'boolean)
  604. (defcustom org-sparse-tree-open-archived-trees nil
  605. "Non-nil means sparse tree construction shows matches in archived trees.
  606. When nil, matches in these trees are highlighted, but the trees are kept in
  607. collapsed state."
  608. :group 'org-archive
  609. :group 'org-sparse-trees
  610. :type 'boolean)
  611. (defcustom org-archive-location "%s_archive::"
  612. "The location where subtrees should be archived.
  613. This string consists of two parts, separated by a double-colon.
  614. The first part is a file name - when omitted, archiving happens in the same
  615. file. %s will be replaced by the current file name (without directory part).
  616. Archiving to a different file is useful to keep archived entries from
  617. contributing to the Org-mode Agenda.
  618. The part after the double colon is a headline. The archived entries will be
  619. filed under that headline. When omitted, the subtrees are simply filed away
  620. at the end of the file, as top-level entries.
  621. Here are a few examples:
  622. \"%s_archive::\"
  623. If the current file is Projects.org, archive in file
  624. Projects.org_archive, as top-level trees. This is the default.
  625. \"::* Archived Tasks\"
  626. Archive in the current file, under the top-level headline
  627. \"* Archived Tasks\".
  628. \"~/org/archive.org::\"
  629. Archive in file ~/org/archive.org (absolute path), as top-level trees.
  630. \"basement::** Finished Tasks\"
  631. Archive in file ./basement (relative path), as level 3 trees
  632. below the level 2 heading \"** Finished Tasks\".
  633. You may set this option on a per-file basis by adding to the buffer a
  634. line like
  635. #+ARCHIVE: basement::** Finished Tasks"
  636. :group 'org-archive
  637. :type 'string)
  638. (defcustom org-archive-mark-done t
  639. "Non-nil means, mark entries as DONE when they are moved to the archive file.
  640. This can be a string to set the keyword to use. When t, Org-mode will
  641. use the first keyword in its list that means done."
  642. :group 'org-archive
  643. :type '(choice
  644. (const :tag "No" nil)
  645. (const :tag "Yes" t)
  646. (string :tag "Use this keyword")))
  647. (defcustom org-archive-stamp-time t
  648. "Non-nil means, add a time stamp to entries moved to an archive file.
  649. This variable is obsolete and has no effect anymore, instead add ot remove
  650. `time' from the variablle `org-archive-save-context-info'."
  651. :group 'org-archive
  652. :type 'boolean)
  653. (defcustom org-archive-save-context-info '(time file category todo itags)
  654. "Parts of context info that should be stored as properties when archiving.
  655. When a subtree is moved to an archive file, it looses information given by
  656. context, like inherited tags, the category, and possibly also the TODO
  657. state (depending on the variable `org-archive-mark-done').
  658. This variable can be a list of any of the following symbols:
  659. time The time of archiving.
  660. file The file where the entry originates.
  661. itags The local tags, in the headline of the subtree.
  662. ltags The tags the subtree inherits from further up the hierarchy.
  663. todo The pre-archive TODO state.
  664. category The category, taken from file name or #+CATEGORY lines.
  665. For each symbol present in the list, a property will be created in
  666. the archived entry, with a prefix \"PRE_ARCHIVE_\", to remember this
  667. information."
  668. :group 'org-archive
  669. :type '(set :greedy t
  670. (const :tag "Time" time)
  671. (const :tag "File" file)
  672. (const :tag "Category" category)
  673. (const :tag "TODO state" todo)
  674. (const :tag "TODO state" priority)
  675. (const :tag "Inherited tags" itags)
  676. (const :tag "Local tags" ltags)))
  677. (defgroup org-table nil
  678. "Options concerning tables in Org-mode."
  679. :tag "Org Table"
  680. :group 'org)
  681. (defcustom org-enable-table-editor 'optimized
  682. "Non-nil means, lines starting with \"|\" are handled by the table editor.
  683. When nil, such lines will be treated like ordinary lines.
  684. When equal to the symbol `optimized', the table editor will be optimized to
  685. do the following:
  686. - Automatic overwrite mode in front of whitespace in table fields.
  687. This makes the structure of the table stay in tact as long as the edited
  688. field does not exceed the column width.
  689. - Minimize the number of realigns. Normally, the table is aligned each time
  690. TAB or RET are pressed to move to another field. With optimization this
  691. happens only if changes to a field might have changed the column width.
  692. Optimization requires replacing the functions `self-insert-command',
  693. `delete-char', and `backward-delete-char' in Org-mode buffers, with a
  694. slight (in fact: unnoticeable) speed impact for normal typing. Org-mode is
  695. very good at guessing when a re-align will be necessary, but you can always
  696. force one with \\[org-ctrl-c-ctrl-c].
  697. If you would like to use the optimized version in Org-mode, but the
  698. un-optimized version in OrgTbl-mode, see the variable `orgtbl-optimized'.
  699. This variable can be used to turn on and off the table editor during a session,
  700. but in order to toggle optimization, a restart is required.
  701. See also the variable `org-table-auto-blank-field'."
  702. :group 'org-table
  703. :type '(choice
  704. (const :tag "off" nil)
  705. (const :tag "on" t)
  706. (const :tag "on, optimized" optimized)))
  707. (defcustom orgtbl-optimized (eq org-enable-table-editor 'optimized)
  708. "Non-nil means, use the optimized table editor version for `orgtbl-mode'.
  709. In the optimized version, the table editor takes over all simple keys that
  710. normally just insert a character. In tables, the characters are inserted
  711. in a way to minimize disturbing the table structure (i.e. in overwrite mode
  712. for empty fields). Outside tables, the correct binding of the keys is
  713. restored.
  714. The default for this option is t if the optimized version is also used in
  715. Org-mode. See the variable `org-enable-table-editor' for details. Changing
  716. this variable requires a restart of Emacs to become effective."
  717. :group 'org-table
  718. :type 'boolean)
  719. (defcustom orgtbl-radio-table-templates
  720. '((latex-mode "% BEGIN RECEIVE ORGTBL %n
  721. % END RECEIVE ORGTBL %n
  722. \\begin{comment}
  723. #+ORGTBL: SEND %n orgtbl-to-latex :splice nil :skip 0
  724. | | |
  725. \\end{comment}\n")
  726. (texinfo-mode "@c BEGIN RECEIVE ORGTBL %n
  727. @c END RECEIVE ORGTBL %n
  728. @ignore
  729. #+ORGTBL: SEND %n orgtbl-to-html :splice nil :skip 0
  730. | | |
  731. @end ignore\n")
  732. (html-mode "<!-- BEGIN RECEIVE ORGTBL %n -->
  733. <!-- END RECEIVE ORGTBL %n -->
  734. <!--
  735. #+ORGTBL: SEND %n orgtbl-to-html :splice nil :skip 0
  736. | | |
  737. -->\n"))
  738. "Templates for radio tables in different major modes.
  739. All occurrences of %n in a template will be replaced with the name of the
  740. table, obtained by prompting the user."
  741. :group 'org-table
  742. :type '(repeat
  743. (list (symbol :tag "Major mode")
  744. (string :tag "Format"))))
  745. (defgroup org-table-settings nil
  746. "Settings for tables in Org-mode."
  747. :tag "Org Table Settings"
  748. :group 'org-table)
  749. (defcustom org-table-default-size "5x2"
  750. "The default size for newly created tables, Columns x Rows."
  751. :group 'org-table-settings
  752. :type 'string)
  753. (defcustom org-table-number-regexp
  754. "^\\([<>]?[-+^.0-9]*[0-9][-+^.0-9eEdDx()%:]*\\|\\(0[xX]\\)[0-9a-fA-F]+\\|nan\\)$"
  755. "Regular expression for recognizing numbers in table columns.
  756. If a table column contains mostly numbers, it will be aligned to the
  757. right. If not, it will be aligned to the left.
  758. The default value of this option is a regular expression which allows
  759. anything which looks remotely like a number as used in scientific
  760. context. For example, all of the following will be considered a
  761. number:
  762. 12 12.2 2.4e-08 2x10^12 4.034+-0.02 2.7(10) >3.5
  763. Other options offered by the customize interface are more restrictive."
  764. :group 'org-table-settings
  765. :type '(choice
  766. (const :tag "Positive Integers"
  767. "^[0-9]+$")
  768. (const :tag "Integers"
  769. "^[-+]?[0-9]+$")
  770. (const :tag "Floating Point Numbers"
  771. "^[-+]?\\([0-9]*\\.[0-9]+\\|[0-9]+\\.[0-9]*\\)$")
  772. (const :tag "Floating Point Number or Integer"
  773. "^[-+]?\\([0-9]*\\.[0-9]+\\|[0-9]+\\.?[0-9]*\\)$")
  774. (const :tag "Exponential, Floating point, Integer"
  775. "^[-+]?[0-9.]+\\([eEdD][-+0-9]+\\)?$")
  776. (const :tag "Very General Number-Like, including hex"
  777. "^\\([<>]?[-+^.0-9]*[0-9][-+^.0-9eEdDx()%]*\\|\\(0[xX]\\)[0-9a-fA-F]+\\|nan\\)$")
  778. (string :tag "Regexp:")))
  779. (defcustom org-table-number-fraction 0.5
  780. "Fraction of numbers in a column required to make the column align right.
  781. In a column all non-white fields are considered. If at least this
  782. fraction of fields is matched by `org-table-number-fraction',
  783. alignment to the right border applies."
  784. :group 'org-table-settings
  785. :type 'number)
  786. (defgroup org-table-editing nil
  787. "Bahavior of tables during editing in Org-mode."
  788. :tag "Org Table Editing"
  789. :group 'org-table)
  790. (defcustom org-table-automatic-realign t
  791. "Non-nil means, automatically re-align table when pressing TAB or RETURN.
  792. When nil, aligning is only done with \\[org-table-align], or after column
  793. removal/insertion."
  794. :group 'org-table-editing
  795. :type 'boolean)
  796. (defcustom org-table-auto-blank-field t
  797. "Non-nil means, automatically blank table field when starting to type into it.
  798. This only happens when typing immediately after a field motion
  799. command (TAB, S-TAB or RET).
  800. Only relevant when `org-enable-table-editor' is equal to `optimized'."
  801. :group 'org-table-editing
  802. :type 'boolean)
  803. (defcustom org-table-tab-jumps-over-hlines t
  804. "Non-nil means, tab in the last column of a table with jump over a hline.
  805. If a horizontal separator line is following the current line,
  806. `org-table-next-field' can either create a new row before that line, or jump
  807. over the line. When this option is nil, a new line will be created before
  808. this line."
  809. :group 'org-table-editing
  810. :type 'boolean)
  811. (defcustom org-table-tab-recognizes-table.el t
  812. "Non-nil means, TAB will automatically notice a table.el table.
  813. When it sees such a table, it moves point into it and - if necessary -
  814. calls `table-recognize-table'."
  815. :group 'org-table-editing
  816. :type 'boolean)
  817. (defgroup org-table-calculation nil
  818. "Options concerning tables in Org-mode."
  819. :tag "Org Table Calculation"
  820. :group 'org-table)
  821. (defcustom org-table-use-standard-references t
  822. "Should org-mode work with table refrences like B3 instead of @3$2?
  823. Possible values are:
  824. nil never use them
  825. from accept as input, do not present for editing
  826. t: accept as input and present for editing"
  827. :group 'org-table-calculation
  828. :type '(choice
  829. (const :tag "Never, don't even check unser input for them" nil)
  830. (const :tag "Always, both as user input, and when editing" t)
  831. (const :tag "Convert user input, don't offer during editing" 'from)))
  832. (defcustom org-table-copy-increment t
  833. "Non-nil means, increment when copying current field with \\[org-table-copy-down]."
  834. :group 'org-table-calculation
  835. :type 'boolean)
  836. (defcustom org-calc-default-modes
  837. '(calc-internal-prec 12
  838. calc-float-format (float 5)
  839. calc-angle-mode deg
  840. calc-prefer-frac nil
  841. calc-symbolic-mode nil
  842. calc-date-format (YYYY "-" MM "-" DD " " Www (" " HH ":" mm))
  843. calc-display-working-message t
  844. )
  845. "List with Calc mode settings for use in calc-eval for table formulas.
  846. The list must contain alternating symbols (Calc modes variables and values).
  847. Don't remove any of the default settings, just change the values. Org-mode
  848. relies on the variables to be present in the list."
  849. :group 'org-table-calculation
  850. :type 'plist)
  851. (defcustom org-table-formula-evaluate-inline t
  852. "Non-nil means, TAB and RET evaluate a formula in current table field.
  853. If the current field starts with an equal sign, it is assumed to be a formula
  854. which should be evaluated as described in the manual and in the documentation
  855. string of the command `org-table-eval-formula'. This feature requires the
  856. Emacs calc package.
  857. When this variable is nil, formula calculation is only available through
  858. the command \\[org-table-eval-formula]."
  859. :group 'org-table-calculation
  860. :type 'boolean)
  861. (defcustom org-table-formula-use-constants t
  862. "Non-nil means, interpret constants in formulas in tables.
  863. A constant looks like `$c' or `$Grav' and will be replaced before evaluation
  864. by the value given in `org-table-formula-constants', or by a value obtained
  865. from the `constants.el' package."
  866. :group 'org-table-calculation
  867. :type 'boolean)
  868. (defcustom org-table-formula-constants nil
  869. "Alist with constant names and values, for use in table formulas.
  870. The car of each element is a name of a constant, without the `$' before it.
  871. The cdr is the value as a string. For example, if you'd like to use the
  872. speed of light in a formula, you would configure
  873. (setq org-table-formula-constants '((\"c\" . \"299792458.\")))
  874. and then use it in an equation like `$1*$c'.
  875. Constants can also be defined on a per-file basis using a line like
  876. #+CONSTANTS: c=299792458. pi=3.14 eps=2.4e-6"
  877. :group 'org-table-calculation
  878. :type '(repeat
  879. (cons (string :tag "name")
  880. (string :tag "value"))))
  881. (defvar org-table-formula-constants-local nil
  882. "Local version of `org-table-formula-constants'.")
  883. (make-variable-buffer-local 'org-table-formula-constants-local)
  884. (defcustom org-table-allow-automatic-line-recalculation t
  885. "Non-nil means, lines marked with |#| or |*| will be recomputed automatically.
  886. Automatically means, when TAB or RET or C-c C-c are pressed in the line."
  887. :group 'org-table-calculation
  888. :type 'boolean)
  889. (defgroup org-link nil
  890. "Options concerning links in Org-mode."
  891. :tag "Org Link"
  892. :group 'org)
  893. (defvar org-link-abbrev-alist-local nil
  894. "Buffer-local version of `org-link-abbrev-alist', which see.
  895. The value of this is taken from the #+LINK lines.")
  896. (make-variable-buffer-local 'org-link-abbrev-alist-local)
  897. (defcustom org-link-abbrev-alist nil
  898. "Alist of link abbreviations.
  899. The car of each element is a string, to be replaced at the start of a link.
  900. The cdrs are replacement values, like (\"linkkey\" . REPLACE). Abbreviated
  901. links in Org-mode buffers can have an optional tag after a double colon, e.g.
  902. [[linkkey:tag][description]]
  903. If REPLACE is a string, the tag will simply be appended to create the link.
  904. If the string contains \"%s\", the tag will be inserted there. REPLACE may
  905. also be a function that will be called with the tag as the only argument to
  906. create the link. See the manual for examples."
  907. :group 'org-link
  908. :type 'alist)
  909. (defcustom org-descriptive-links t
  910. "Non-nil means, hide link part and only show description of bracket links.
  911. Bracket links are like [[link][descritpion]]. This variable sets the initial
  912. state in new org-mode buffers. The setting can then be toggled on a
  913. per-buffer basis from the Org->Hyperlinks menu."
  914. :group 'org-link
  915. :type 'boolean)
  916. (defcustom org-link-file-path-type 'adaptive
  917. "How the path name in file links should be stored.
  918. Valid values are:
  919. relative relative to the current directory, i.e. the directory of the file
  920. into which the link is being inserted.
  921. absolute absolute path, if possible with ~ for home directory.
  922. noabbrev absolute path, no abbreviation of home directory.
  923. adaptive Use relative path for files in the current directory and sub-
  924. directories of it. For other files, use an absolute path."
  925. :group 'org-link
  926. :type '(choice
  927. (const relative)
  928. (const absolute)
  929. (const noabbrev)
  930. (const adaptive)))
  931. (defcustom org-activate-links '(bracket angle plain radio tag date)
  932. "Types of links that should be activated in Org-mode files.
  933. This is a list of symbols, each leading to the activation of a certain link
  934. type. In principle, it does not hurt to turn on most link types - there may
  935. be a small gain when turning off unused link types. The types are:
  936. bracket The recommended [[link][description]] or [[link]] links with hiding.
  937. angular Links in angular brackes that may contain whitespace like
  938. <bbdb:Carsten Dominik>.
  939. plain Plain links in normal text, no whitespace, like http://google.com.
  940. radio Text that is matched by a radio target, see manual for details.
  941. tag Tag settings in a headline (link to tag search).
  942. date Time stamps (link to calendar).
  943. Changing this variable requires a restart of Emacs to become effective."
  944. :group 'org-link
  945. :type '(set (const :tag "Double bracket links (new style)" bracket)
  946. (const :tag "Angular bracket links (old style)" angular)
  947. (const :tag "plain text links" plain)
  948. (const :tag "Radio target matches" radio)
  949. (const :tag "Tags" tag)
  950. (const :tag "Tags" target)
  951. (const :tag "Timestamps" date)))
  952. (defgroup org-link-store nil
  953. "Options concerning storing links in Org-mode"
  954. :tag "Org Store Link"
  955. :group 'org-link)
  956. (defcustom org-email-link-description-format "Email %c: %.30s"
  957. "Format of the description part of a link to an email or usenet message.
  958. The following %-excapes will be replaced by corresponding information:
  959. %F full \"From\" field
  960. %f name, taken from \"From\" field, address if no name
  961. %T full \"To\" field
  962. %t first name in \"To\" field, address if no name
  963. %c correspondent. Unually \"from NAME\", but if you sent it yourself, it
  964. will be \"to NAME\". See also the variable `org-from-is-user-regexp'.
  965. %s subject
  966. %m message-id.
  967. You may use normal field width specification between the % and the letter.
  968. This is for example useful to limit the length of the subject.
  969. Examples: \"%f on: %.30s\", \"Email from %f\", \"Email %c\""
  970. :group 'org-link-store
  971. :type 'string)
  972. (defcustom org-from-is-user-regexp
  973. (let (r1 r2)
  974. (when (and user-mail-address (not (string= user-mail-address "")))
  975. (setq r1 (concat "\\<" (regexp-quote user-mail-address) "\\>")))
  976. (when (and user-full-name (not (string= user-full-name "")))
  977. (setq r2 (concat "\\<" (regexp-quote user-full-name) "\\>")))
  978. (if (and r1 r2) (concat r1 "\\|" r2) (or r1 r2)))
  979. "Regexp mached against the \"From:\" header of an email or usenet message.
  980. It should match if the message is from the user him/herself."
  981. :group 'org-link-store
  982. :type 'regexp)
  983. (defcustom org-context-in-file-links t
  984. "Non-nil means, file links from `org-store-link' contain context.
  985. A search string will be added to the file name with :: as separator and
  986. used to find the context when the link is activated by the command
  987. `org-open-at-point'.
  988. Using a prefix arg to the command \\[org-store-link] (`org-store-link')
  989. negates this setting for the duration of the command."
  990. :group 'org-link-store
  991. :type 'boolean)
  992. (defcustom org-keep-stored-link-after-insertion nil
  993. "Non-nil means, keep link in list for entire session.
  994. The command `org-store-link' adds a link pointing to the current
  995. location to an internal list. These links accumulate during a session.
  996. The command `org-insert-link' can be used to insert links into any
  997. Org-mode file (offering completion for all stored links). When this
  998. option is nil, every link which has been inserted once using \\[org-insert-link]
  999. will be removed from the list, to make completing the unused links
  1000. more efficient."
  1001. :group 'org-link-store
  1002. :type 'boolean)
  1003. (defcustom org-usenet-links-prefer-google nil
  1004. "Non-nil means, `org-store-link' will create web links to Google groups.
  1005. When nil, Gnus will be used for such links.
  1006. Using a prefix arg to the command \\[org-store-link] (`org-store-link')
  1007. negates this setting for the duration of the command."
  1008. :group 'org-link-store
  1009. :type 'boolean)
  1010. (defgroup org-link-follow nil
  1011. "Options concerning following links in Org-mode"
  1012. :tag "Org Follow Link"
  1013. :group 'org-link)
  1014. (defcustom org-tab-follows-link nil
  1015. "Non-nil means, on links TAB will follow the link.
  1016. Needs to be set before org.el is loaded."
  1017. :group 'org-link-follow
  1018. :type 'boolean)
  1019. (defcustom org-return-follows-link nil
  1020. "Non-nil means, on links RET will follow the link.
  1021. Needs to be set before org.el is loaded."
  1022. :group 'org-link-follow
  1023. :type 'boolean)
  1024. (defcustom org-mouse-1-follows-link t
  1025. "Non-nil means, mouse-1 on a link will follow the link.
  1026. A longer mouse click will still set point. Does not wortk on XEmacs.
  1027. Needs to be set before org.el is loaded."
  1028. :group 'org-link-follow
  1029. :type 'boolean)
  1030. (defcustom org-mark-ring-length 4
  1031. "Number of different positions to be recorded in the ring
  1032. Changing this requires a restart of Emacs to work correctly."
  1033. :group 'org-link-follow
  1034. :type 'interger)
  1035. (defcustom org-link-frame-setup
  1036. '((vm . vm-visit-folder-other-frame)
  1037. (gnus . gnus-other-frame)
  1038. (file . find-file-other-window))
  1039. "Setup the frame configuration for following links.
  1040. When following a link with Emacs, it may often be useful to display
  1041. this link in another window or frame. This variable can be used to
  1042. set this up for the different types of links.
  1043. For VM, use any of
  1044. `vm-visit-folder'
  1045. `vm-visit-folder-other-frame'
  1046. For Gnus, use any of
  1047. `gnus'
  1048. `gnus-other-frame'
  1049. For FILE, use any of
  1050. `find-file'
  1051. `find-file-other-window'
  1052. `find-file-other-frame'
  1053. For the calendar, use the variable `calendar-setup'.
  1054. For BBDB, it is currently only possible to display the matches in
  1055. another window."
  1056. :group 'org-link-follow
  1057. :type '(list
  1058. (cons (const vm)
  1059. (choice
  1060. (const vm-visit-folder)
  1061. (const vm-visit-folder-other-window)
  1062. (const vm-visit-folder-other-frame)))
  1063. (cons (const gnus)
  1064. (choice
  1065. (const gnus)
  1066. (const gnus-other-frame)))
  1067. (cons (const file)
  1068. (choice
  1069. (const find-file)
  1070. (const find-file-other-window)
  1071. (const find-file-other-frame)))))
  1072. (defcustom org-display-internal-link-with-indirect-buffer nil
  1073. "Non-nil means, use indirect buffer to display infile links.
  1074. Activating internal links (from one location in a file to another location
  1075. in the same file) normally just jumps to the location. When the link is
  1076. activated with a C-u prefix (or with mouse-3), the link is displayed in
  1077. another window. When this option is set, the other window actually displays
  1078. an indirect buffer clone of the current buffer, to avoid any visibility
  1079. changes to the current buffer."
  1080. :group 'org-link-follow
  1081. :type 'boolean)
  1082. (defcustom org-open-non-existing-files nil
  1083. "Non-nil means, `org-open-file' will open non-existing files.
  1084. When nil, an error will be generated."
  1085. :group 'org-link-follow
  1086. :type 'boolean)
  1087. (defcustom org-link-mailto-program '(browse-url "mailto:%a?subject=%s")
  1088. "Function and arguments to call for following mailto links.
  1089. This is a list with the first element being a lisp function, and the
  1090. remaining elements being arguments to the function. In string arguments,
  1091. %a will be replaced by the address, and %s will be replaced by the subject
  1092. if one was given like in <mailto:arthur@galaxy.org::this subject>."
  1093. :group 'org-link-follow
  1094. :type '(choice
  1095. (const :tag "browse-url" (browse-url-mail "mailto:%a?subject=%s"))
  1096. (const :tag "compose-mail" (compose-mail "%a" "%s"))
  1097. (const :tag "message-mail" (message-mail "%a" "%s"))
  1098. (cons :tag "other" (function) (repeat :tag "argument" sexp))))
  1099. (defcustom org-confirm-shell-link-function 'yes-or-no-p
  1100. "Non-nil means, ask for confirmation before executing shell links.
  1101. Shell links can be dangerous: just think about a link
  1102. [[shell:rm -rf ~/*][Google Search]]
  1103. This link would show up in your Org-mode document as \"Google Search\",
  1104. but really it would remove your entire home directory.
  1105. Therefore we advise against setting this variable to nil.
  1106. Just change it to `y-or-n-p' of you want to confirm with a
  1107. single keystroke rather than having to type \"yes\"."
  1108. :group 'org-link-follow
  1109. :type '(choice
  1110. (const :tag "with yes-or-no (safer)" yes-or-no-p)
  1111. (const :tag "with y-or-n (faster)" y-or-n-p)
  1112. (const :tag "no confirmation (dangerous)" nil)))
  1113. (defcustom org-confirm-elisp-link-function 'yes-or-no-p
  1114. "Non-nil means, ask for confirmation before executing Emacs Lisp links.
  1115. Elisp links can be dangerous: just think about a link
  1116. [[elisp:(shell-command \"rm -rf ~/*\")][Google Search]]
  1117. This link would show up in your Org-mode document as \"Google Search\",
  1118. but really it would remove your entire home directory.
  1119. Therefore we advise against setting this variable to nil.
  1120. Just change it to `y-or-n-p' of you want to confirm with a
  1121. single keystroke rather than having to type \"yes\"."
  1122. :group 'org-link-follow
  1123. :type '(choice
  1124. (const :tag "with yes-or-no (safer)" yes-or-no-p)
  1125. (const :tag "with y-or-n (faster)" y-or-n-p)
  1126. (const :tag "no confirmation (dangerous)" nil)))
  1127. (defconst org-file-apps-defaults-gnu
  1128. '((remote . emacs)
  1129. (t . mailcap))
  1130. "Default file applications on a UNIX or GNU/Linux system.
  1131. See `org-file-apps'.")
  1132. (defconst org-file-apps-defaults-macosx
  1133. '((remote . emacs)
  1134. (t . "open %s")
  1135. ("ps" . "gv %s")
  1136. ("ps.gz" . "gv %s")
  1137. ("eps" . "gv %s")
  1138. ("eps.gz" . "gv %s")
  1139. ("dvi" . "xdvi %s")
  1140. ("fig" . "xfig %s"))
  1141. "Default file applications on a MacOS X system.
  1142. The system \"open\" is known as a default, but we use X11 applications
  1143. for some files for which the OS does not have a good default.
  1144. See `org-file-apps'.")
  1145. (defconst org-file-apps-defaults-windowsnt
  1146. (list
  1147. '(remote . emacs)
  1148. (cons t
  1149. (list (if (featurep 'xemacs)
  1150. 'mswindows-shell-execute
  1151. 'w32-shell-execute)
  1152. "open" 'file)))
  1153. "Default file applications on a Windows NT system.
  1154. The system \"open\" is used for most files.
  1155. See `org-file-apps'.")
  1156. (defcustom org-file-apps
  1157. '(
  1158. ("txt" . emacs)
  1159. ("tex" . emacs)
  1160. ("ltx" . emacs)
  1161. ("org" . emacs)
  1162. ("el" . emacs)
  1163. ("bib" . emacs)
  1164. )
  1165. "External applications for opening `file:path' items in a document.
  1166. Org-mode uses system defaults for different file types, but
  1167. you can use this variable to set the application for a given file
  1168. extension. The entries in this list are cons cells where the car identifies
  1169. files and the cdr the corresponding command. Possible values for the
  1170. file identifier are
  1171. \"ext\" A string identifying an extension
  1172. `directory' Matches a directory
  1173. `remote' Matches a remote file, accessible through tramp or efs.
  1174. Remote files most likely should be visited through Emacs
  1175. because external applications cannot handle such paths.
  1176. t Default for all remaining files
  1177. Possible values for the command are:
  1178. `emacs' The file will be visited by the current Emacs process.
  1179. `default' Use the default application for this file type.
  1180. string A command to be executed by a shell; %s will be replaced
  1181. by the path to the file.
  1182. sexp A Lisp form which will be evaluated. The file path will
  1183. be available in the Lisp variable `file'.
  1184. For more examples, see the system specific constants
  1185. `org-file-apps-defaults-macosx'
  1186. `org-file-apps-defaults-windowsnt'
  1187. `org-file-apps-defaults-gnu'."
  1188. :group 'org-link-follow
  1189. :type '(repeat
  1190. (cons (choice :value ""
  1191. (string :tag "Extension")
  1192. (const :tag "Default for unrecognized files" t)
  1193. (const :tag "Remote file" remote)
  1194. (const :tag "Links to a directory" directory))
  1195. (choice :value ""
  1196. (const :tag "Visit with Emacs" emacs)
  1197. (const :tag "Use system default" default)
  1198. (string :tag "Command")
  1199. (sexp :tag "Lisp form")))))
  1200. (defcustom org-mhe-search-all-folders nil
  1201. "Non-nil means, that the search for the mh-message will be extended to
  1202. all folders if the message cannot be found in the folder given in the link.
  1203. Searching all folders is very efficient with one of the search engines
  1204. supported by MH-E, but will be slow with pick."
  1205. :group 'org-link-follow
  1206. :type 'boolean)
  1207. (defgroup org-remember nil
  1208. "Options concerning interaction with remember.el."
  1209. :tag "Org Remember"
  1210. :group 'org)
  1211. (defcustom org-directory "~/org"
  1212. "Directory with org files.
  1213. This directory will be used as default to prompt for org files.
  1214. Used by the hooks for remember.el."
  1215. :group 'org-remember
  1216. :type 'directory)
  1217. (defcustom org-default-notes-file "~/.notes"
  1218. "Default target for storing notes.
  1219. Used by the hooks for remember.el. This can be a string, or nil to mean
  1220. the value of `remember-data-file'.
  1221. You can set this on a per-template basis with the variable
  1222. `org-remember-templates'."
  1223. :group 'org-remember
  1224. :type '(choice
  1225. (const :tag "Default from remember-data-file" nil)
  1226. file))
  1227. (defcustom org-remember-store-without-prompt t
  1228. "Non-nil means, `C-c C-c' stores remember note without further promts.
  1229. In this case, you need `C-u C-c C-c' to get the prompts for
  1230. note file and headline.
  1231. When this variable is nil, `C-c C-c' give you the prompts, and
  1232. `C-u C-c C-c' trigger the fasttrack."
  1233. :group 'org-remember
  1234. :type 'boolean)
  1235. (defcustom org-remember-default-headline ""
  1236. "The headline that should be the default location in the notes file.
  1237. When filing remember notes, the cursor will start at that position.
  1238. You can set this on a per-template basis with the variable
  1239. `org-remember-templates'."
  1240. :group 'org-remember
  1241. :type 'string)
  1242. (defcustom org-remember-templates nil
  1243. "Templates for the creation of remember buffers.
  1244. When nil, just let remember make the buffer.
  1245. When not nil, this is a list of 5-element lists. In each entry, the first
  1246. element is a the name of the template, It should be a single short word.
  1247. The second element is a character, a unique key to select this template.
  1248. The third element is the template. The forth element is optional and can
  1249. specify a destination file for remember items created with this template.
  1250. The default file is given by `org-default-notes-file'. An optional fifth
  1251. element can specify the headline in that file that should be offered
  1252. first when the user is asked to file the entry. The default headline is
  1253. given in the variable `org-remember-default-headline'.
  1254. The template specifies the structure of the remember buffer. It should have
  1255. a first line starting with a star, to act as the org-mode headline.
  1256. Furthermore, the following %-escapes will be replaced with content:
  1257. %^{prompt} prompt the user for a string and replace this sequence with it.
  1258. %t time stamp, date only
  1259. %T time stamp with date and time
  1260. %u, %U like the above, but inactive time stamps
  1261. %^t like %t, but prompt for date. Similarly %^T, %^u, %^U
  1262. You may define a prompt like %^{Please specify birthday}t
  1263. %n user name (taken from `user-full-name')
  1264. %a annotation, normally the link created with org-store-link
  1265. %i initial content, the region when remember is called with C-u.
  1266. If %i is indented, the entire inserted text will be indented
  1267. as well.
  1268. %? After completing the template, position cursor here.
  1269. Apart from these general escapes, you can access information specific to the
  1270. link type that is created. For example, calling `remember' in emails or gnus
  1271. will record the author and the subject of the message, which you can access
  1272. with %:author and %:subject, respectively. Here is a complete list of what
  1273. is recorded for each link type.
  1274. Link type | Available information
  1275. -------------------+------------------------------------------------------
  1276. bbdb | %:type %:name %:company
  1277. vm, wl, mh, rmail | %:type %:subject %:message-id
  1278. | %:from %:fromname %:fromaddress
  1279. | %:to %:toname %:toaddress
  1280. | %:fromto (either \"to NAME\" or \"from NAME\")
  1281. gnus | %:group, for messages also all email fields
  1282. w3, w3m | %:type %:url
  1283. info | %:type %:file %:node
  1284. calendar | %:type %:date"
  1285. :group 'org-remember
  1286. :get (lambda (var) ; Make sure all entries have 5 elements
  1287. (mapcar (lambda (x)
  1288. (if (not (stringp (car x))) (setq x (cons "" x)))
  1289. (cond ((= (length x) 4) (append x '("")))
  1290. ((= (length x) 3) (append x '("" "")))
  1291. (t x)))
  1292. (default-value var)))
  1293. :type '(repeat
  1294. :tag "enabled"
  1295. (list :value ("" ?a "\n" nil nil)
  1296. (string :tag "Name")
  1297. (character :tag "Selection Key")
  1298. (string :tag "Template")
  1299. (choice
  1300. (file :tag "Destination file")
  1301. (const :tag "Prompt for file" nil))
  1302. (choice
  1303. (string :tag "Destination headline")
  1304. (const :tag "Selection interface for heading")))))
  1305. (defcustom org-reverse-note-order nil
  1306. "Non-nil means, store new notes at the beginning of a file or entry.
  1307. When nil, new notes will be filed to the end of a file or entry."
  1308. :group 'org-remember
  1309. :type '(choice
  1310. (const :tag "Reverse always" t)
  1311. (const :tag "Reverse never" nil)
  1312. (repeat :tag "By file name regexp"
  1313. (cons regexp boolean))))
  1314. (defgroup org-todo nil
  1315. "Options concerning TODO items in Org-mode."
  1316. :tag "Org TODO"
  1317. :group 'org)
  1318. (defgroup org-progress nil
  1319. "Options concerning Progress logging in Org-mode."
  1320. :tag "Org Progress"
  1321. :group 'org-time)
  1322. (defcustom org-todo-keywords '((sequence "TODO" "DONE"))
  1323. "List of TODO entry keyword sequences and their interpretation.
  1324. \\<org-mode-map>This is a list of sequences.
  1325. Each sequence starts with a symbol, either `sequence' or `type',
  1326. indicating if the keywords should be interpreted as a sequence of
  1327. action steps, or as different types of TODO items. The first
  1328. keywords are states requiring action - these states will select a headline
  1329. for inclusion into the global TODO list Org-mode produces. If one of
  1330. the \"keywords\" is the vertical bat \"|\" the remaining keywords
  1331. signify that no further action is necessary. If \"|\" is not found,
  1332. the last keyword is treated as the only DONE state of the sequence.
  1333. The command \\[org-todo] cycles an entry through these states, and one
  1334. additional state where no keyword is present. For details about this
  1335. cycling, see the manual.
  1336. TODO keywords and interpretation can also be set on a per-file basis with
  1337. the special #+SEQ_TODO and #+TYP_TODO lines.
  1338. For backward compatibility, this variable may also be just a list
  1339. of keywords - in this case the interptetation (sequence or type) will be
  1340. taken from the (otherwise obsolete) variable `org-todo-interpretation'."
  1341. :group 'org-todo
  1342. :group 'org-keywords
  1343. :type '(choice
  1344. (repeat :tag "Old syntax, just keywords"
  1345. (string :tag "Keyword"))
  1346. (repeat :tag "New syntax"
  1347. (cons
  1348. (choice
  1349. :tag "Interpretation"
  1350. (const :tag "Sequence (cycling hits every state)" sequence)
  1351. (const :tag "Type (cycling directly to DONE)" type))
  1352. (repeat
  1353. (string :tag "Keyword"))))))
  1354. (defvar org-todo-keywords-1 nil)
  1355. (make-variable-buffer-local 'org-todo-keywords-1)
  1356. (defvar org-todo-keywords-for-agenda nil)
  1357. (defvar org-done-keywords-for-agenda nil)
  1358. (defvar org-not-done-keywords nil)
  1359. (make-variable-buffer-local 'org-not-done-keywords)
  1360. (defvar org-done-keywords nil)
  1361. (make-variable-buffer-local 'org-done-keywords)
  1362. (defvar org-todo-heads nil)
  1363. (make-variable-buffer-local 'org-todo-heads)
  1364. (defvar org-todo-sets nil)
  1365. (make-variable-buffer-local 'org-todo-sets)
  1366. (defvar org-todo-log-states nil)
  1367. (make-variable-buffer-local 'org-todo-log-states)
  1368. (defvar org-todo-kwd-alist nil)
  1369. (make-variable-buffer-local 'org-todo-kwd-alist)
  1370. (defvar org-todo-key-alist nil)
  1371. (make-variable-buffer-local 'org-todo-key-alist)
  1372. (defvar org-todo-key-trigger nil)
  1373. (make-variable-buffer-local 'org-todo-key-trigger)
  1374. (defcustom org-todo-interpretation 'sequence
  1375. "Controls how TODO keywords are interpreted.
  1376. This variable is in principle obsolete and is only used for
  1377. backward compatibility, if the interpretation of todo keywords is
  1378. not given already in `org-todo-keywords'. See that variable for
  1379. more information."
  1380. :group 'org-todo
  1381. :group 'org-keywords
  1382. :type '(choice (const sequence)
  1383. (const type)))
  1384. (defcustom org-use-fast-todo-selection 'prefix
  1385. "Non-nil means, use the fast todo selection scheme with C-c C-t.
  1386. This variable describes if and under what circumstances the cycling
  1387. mechanism for TODO keywords will be replaced by a single-key, direct
  1388. selection scheme.
  1389. When nil, fast selection is never used.
  1390. When the symbol `prefix', it will be used when `org-todo' is called with
  1391. a prefix argument, i.e. `C-u C-c C-t' in an Org-mode buffer, and `C-u t'
  1392. in an agenda buffer.
  1393. When t, fast selection is used by default. In this case, the prefix
  1394. argument forces cycling instead.
  1395. In all cases, the special interface is only used if access keys have actually
  1396. been assigned by the user, i.e. if keywords in the configuration are followed
  1397. by a letter in parenthesis, like TODO(t)."
  1398. :group 'org-todo
  1399. :type '(choice
  1400. (const :tag "Never" nil)
  1401. (const :tag "By default" t)
  1402. (const :tag "Only with C-u C-c C-t" prefix)))
  1403. (defcustom org-after-todo-state-change-hook nil
  1404. "Hook which is run after the state of a TODO item was changed.
  1405. The new state (a string with a TODO keyword, or nil) is available in the
  1406. Lisp variable `state'."
  1407. :group 'org-todo
  1408. :type 'hook)
  1409. (defcustom org-log-done nil
  1410. "When set, insert a (non-active) time stamp when TODO entry is marked DONE.
  1411. When the state of an entry is changed from nothing or a DONE state to
  1412. a not-done TODO state, remove a previous closing date.
  1413. This can also be a list of symbols indicating under which conditions
  1414. the time stamp recording the action should be annotated with a short note.
  1415. Valid members of this list are
  1416. done Offer to record a note when marking entries done
  1417. state Offer to record a note whenever changing the TODO state
  1418. of an item. This is only relevant if TODO keywords are
  1419. interpreted as sequence, see variable `org-todo-interpretation'.
  1420. When `state' is set, this includes tracking `done'.
  1421. clock-out Offer to record a note when clocking out of an item.
  1422. A separate window will then pop up and allow you to type a note.
  1423. After finishing with C-c C-c, the note will be added directly after the
  1424. timestamp, as a plain list item. See also the variable
  1425. `org-log-note-headings'.
  1426. Logging can also be configured on a per-file basis by adding one of
  1427. the following lines anywhere in the buffer:
  1428. #+STARTUP: logdone
  1429. #+STARTUP: nologging
  1430. #+STARTUP: lognotedone
  1431. #+STARTUP: lognotestate
  1432. #+STARTUP: lognoteclock-out
  1433. You can have local logging settings for a subtree by setting the LOGGING
  1434. property to one or more of these keywords."
  1435. :group 'org-todo
  1436. :group 'org-progress
  1437. :type '(choice
  1438. (const :tag "off" nil)
  1439. (const :tag "on" t)
  1440. (set :tag "on, with notes, detailed control" :greedy t :value (done)
  1441. (const :tag "when item is marked DONE" done)
  1442. (const :tag "when TODO state changes" state)
  1443. (const :tag "when clocking out" clock-out))))
  1444. (defcustom org-log-done-with-time t
  1445. "Non-nil means, the CLOSED time stamp will contain date and time.
  1446. When nil, only the date will be recorded."
  1447. :group 'org-progress
  1448. :type 'boolean)
  1449. (defcustom org-log-note-headings
  1450. '((done . "CLOSING NOTE %t")
  1451. (state . "State %-12s %t")
  1452. (clock-out . ""))
  1453. "Headings for notes added when clocking out or closing TODO items.
  1454. The value is an alist, with the car being a symbol indicating the note
  1455. context, and the cdr is the heading to be used. The heading may also be the
  1456. empty string.
  1457. %t in the heading will be replaced by a time stamp.
  1458. %s will be replaced by the new TODO state, in double quotes.
  1459. %u will be replaced by the user name.
  1460. %U will be replaced by the full user name."
  1461. :group 'org-todo
  1462. :group 'org-progress
  1463. :type '(list :greedy t
  1464. (cons (const :tag "Heading when closing an item" done) string)
  1465. (cons (const :tag
  1466. "Heading when changing todo state (todo sequence only)"
  1467. state) string)
  1468. (cons (const :tag "Heading when clocking out" clock-out) string)))
  1469. (defcustom org-log-states-order-reversed t
  1470. "Non-nil means, the latest state change note will be directly after heading.
  1471. When nil, the notes will be orderer according to time."
  1472. :group 'org-todo
  1473. :group 'org-progress
  1474. :type 'boolean)
  1475. (defcustom org-log-repeat t
  1476. "Non-nil means, prompt for a note when REPEAT is resetting a TODO entry.
  1477. When nil, no note will be taken.
  1478. This option can also be set with on a per-file-basis with
  1479. #+STARTUP: logrepeat
  1480. #+STARTUP: nologrepeat
  1481. You can have local logging settings for a subtree by setting the LOGGING
  1482. property to one or more of these keywords."
  1483. :group 'org-todo
  1484. :group 'org-progress
  1485. :type 'boolean)
  1486. (defcustom org-clock-into-drawer 2
  1487. "Should clocking info be wrapped into a drawer?
  1488. When t, clocking info will always be inserted into a :CLOCK: drawer.
  1489. If necessary, the drawer will be created.
  1490. When nil, the drawer will not be created, but used when present.
  1491. When an integer and the number of clocking entries in an item
  1492. reaches or exceeds this number, a drawer will be created."
  1493. :group 'org-todo
  1494. :group 'org-progress
  1495. :type '(choice
  1496. (const :tag "Always" t)
  1497. (const :tag "Only when drawer exists" nil)
  1498. (integer :tag "When at least N clock entries")))
  1499. (defcustom org-clock-out-when-done t
  1500. "When t, the clock will be stopped when the relevant entry is marked DONE.
  1501. Nil means, clock will keep running until stopped explicitly with
  1502. `C-c C-x C-o', or until the clock is started in a different item."
  1503. :group 'org-progress
  1504. :type 'boolean)
  1505. (defgroup org-priorities nil
  1506. "Priorities in Org-mode."
  1507. :tag "Org Priorities"
  1508. :group 'org-todo)
  1509. (defcustom org-highest-priority ?A
  1510. "The highest priority of TODO items. A character like ?A, ?B etc.
  1511. Must have a smaller ASCII number than `org-lowest-priority'."
  1512. :group 'org-priorities
  1513. :type 'character)
  1514. (defcustom org-lowest-priority ?C
  1515. "The lowest priority of TODO items. A character like ?A, ?B etc.
  1516. Must have a larger ASCII number than `org-highest-priority'."
  1517. :group 'org-priorities
  1518. :type 'character)
  1519. (defcustom org-default-priority ?B
  1520. "The default priority of TODO items.
  1521. This is the priority an item get if no explicit priority is given."
  1522. :group 'org-priorities
  1523. :type 'character)
  1524. (defcustom org-priority-start-cycle-with-default t
  1525. "Non-nil means, start with default priority when starting to cycle.
  1526. When this is nil, the first step in the cycle will be (depending on the
  1527. command used) one higher or lower that the default priority."
  1528. :group 'org-priorities
  1529. :type 'boolean)
  1530. (defgroup org-time nil
  1531. "Options concerning time stamps and deadlines in Org-mode."
  1532. :tag "Org Time"
  1533. :group 'org)
  1534. (defcustom org-insert-labeled-timestamps-at-point nil
  1535. "Non-nil means, SCHEDULED and DEADLINE timestamps are inserted at point.
  1536. When nil, these labeled time stamps are forces into the second line of an
  1537. entry, just after the headline. When scheduling from the global TODO list,
  1538. the time stamp will always be forced into the second line."
  1539. :group 'org-time
  1540. :type 'boolean)
  1541. (defconst org-time-stamp-formats '("<%Y-%m-%d %a>" . "<%Y-%m-%d %a %H:%M>")
  1542. "Formats for `format-time-string' which are used for time stamps.
  1543. It is not recommended to change this constant.")
  1544. (defcustom org-time-stamp-rounding-minutes 0
  1545. "Number of minutes to round time stamps to upon insertion.
  1546. When zero, insert the time unmodified. Useful rounding numbers
  1547. should be factors of 60, so for example 5, 10, 15.
  1548. When this is not zero, you can still force an exact time-stamp by using
  1549. a double prefix argument to a time-stamp command like `C-c .' or `C-c !'."
  1550. :group 'org-time
  1551. :type 'integer)
  1552. (defcustom org-display-custom-times nil
  1553. "Non-nil means, overlay custom formats over all time stamps.
  1554. The formats are defined through the variable `org-time-stamp-custom-formats'.
  1555. To turn this on on a per-file basis, insert anywhere in the file:
  1556. #+STARTUP: customtime"
  1557. :group 'org-time
  1558. :set 'set-default
  1559. :type 'sexp)
  1560. (make-variable-buffer-local 'org-display-custom-times)
  1561. (defcustom org-time-stamp-custom-formats
  1562. '("<%m/%d/%y %a>" . "<%m/%d/%y %a %H:%M>") ; american
  1563. "Custom formats for time stamps. See `format-time-string' for the syntax.
  1564. These are overlayed over the default ISO format if the variable
  1565. `org-display-custom-times' is set. Time like %H:%M should be at the
  1566. end of the second format."
  1567. :group 'org-time
  1568. :type 'sexp)
  1569. (defun org-time-stamp-format (&optional long inactive)
  1570. "Get the right format for a time string."
  1571. (let ((f (if long (cdr org-time-stamp-formats)
  1572. (car org-time-stamp-formats))))
  1573. (if inactive
  1574. (concat "[" (substring f 1 -1) "]")
  1575. f)))
  1576. (defcustom org-popup-calendar-for-date-prompt t
  1577. "Non-nil means, pop up a calendar when prompting for a date.
  1578. In the calendar, the date can be selected with mouse-1. However, the
  1579. minibuffer will also be active, and you can simply enter the date as well.
  1580. When nil, only the minibuffer will be available."
  1581. :group 'org-time
  1582. :type 'boolean)
  1583. (defcustom org-edit-timestamp-down-means-later nil
  1584. "Non-nil means, S-down will increase the time in a time stamp.
  1585. When nil, S-up will increase."
  1586. :group 'org-time
  1587. :type 'boolean)
  1588. (defcustom org-calendar-follow-timestamp-change t
  1589. "Non-nil means, make the calendar window follow timestamp changes.
  1590. When a timestamp is modified and the calendar window is visible, it will be
  1591. moved to the new date."
  1592. :group 'org-time
  1593. :type 'boolean)
  1594. (defgroup org-tags nil
  1595. "Options concerning tags in Org-mode."
  1596. :tag "Org Tags"
  1597. :group 'org)
  1598. (defcustom org-tag-alist nil
  1599. "List of tags allowed in Org-mode files.
  1600. When this list is nil, Org-mode will base TAG input on what is already in the
  1601. buffer.
  1602. The value of this variable is an alist, the car of each entry must be a
  1603. keyword as a string, the cdr may be a character that is used to select
  1604. that tag through the fast-tag-selection interface.
  1605. See the manual for details."
  1606. :group 'org-tags
  1607. :type '(repeat
  1608. (choice
  1609. (cons (string :tag "Tag name")
  1610. (character :tag "Access char"))
  1611. (const :tag "Start radio group" (:startgroup))
  1612. (const :tag "End radio group" (:endgroup)))))
  1613. (defcustom org-use-fast-tag-selection 'auto
  1614. "Non-nil means, use fast tag selection scheme.
  1615. This is a special interface to select and deselect tags with single keys.
  1616. When nil, fast selection is never used.
  1617. When the symbol `auto', fast selection is used if and only if selection
  1618. characters for tags have been configured, either through the variable
  1619. `org-tag-alist' or through a #+TAGS line in the buffer.
  1620. When t, fast selection is always used and selection keys are assigned
  1621. automatically if necessary."
  1622. :group 'org-tags
  1623. :type '(choice
  1624. (const :tag "Always" t)
  1625. (const :tag "Never" nil)
  1626. (const :tag "When selection characters are configured" 'auto)))
  1627. (defcustom org-fast-tag-selection-single-key nil
  1628. "Non-nil means, fast tag selection exits after first change.
  1629. When nil, you have to press RET to exit it.
  1630. During fast tag selection, you can toggle this flag with `C-c'.
  1631. This variable can also have the value `expert'. In this case, the window
  1632. displaying the tags menu is not even shown, until you press C-c again."
  1633. :group 'org-tags
  1634. :type '(choice
  1635. (const :tag "No" nil)
  1636. (const :tag "Yes" t)
  1637. (const :tag "Expert" expert)))
  1638. (defvar org-fast-tag-selection-include-todo nil
  1639. "Non-nil means, fast tags selection interface will also offer TODO states.
  1640. This is an undocumented feature, you should not rely on it.")
  1641. (defcustom org-tags-column -80
  1642. "The column to which tags should be indented in a headline.
  1643. If this number is positive, it specifies the column. If it is negative,
  1644. it means that the tags should be flushright to that column. For example,
  1645. -80 works well for a normal 80 character screen."
  1646. :group 'org-tags
  1647. :type 'integer)
  1648. (defcustom org-auto-align-tags t
  1649. "Non-nil means, realign tags after pro/demotion of TODO state change.
  1650. These operations change the length of a headline and therefore shift
  1651. the tags around. With this options turned on, after each such operation
  1652. the tags are again aligned to `org-tags-column'."
  1653. :group 'org-tags
  1654. :type 'boolean)
  1655. (defcustom org-use-tag-inheritance t
  1656. "Non-nil means, tags in levels apply also for sublevels.
  1657. When nil, only the tags directly given in a specific line apply there.
  1658. If you turn off this option, you very likely want to turn on the
  1659. companion option `org-tags-match-list-sublevels'."
  1660. :group 'org-tags
  1661. :type 'boolean)
  1662. (defcustom org-tags-match-list-sublevels nil
  1663. "Non-nil means list also sublevels of headlines matching tag search.
  1664. Because of tag inheritance (see variable `org-use-tag-inheritance'),
  1665. the sublevels of a headline matching a tag search often also match
  1666. the same search. Listing all of them can create very long lists.
  1667. Setting this variable to nil causes subtrees of a match to be skipped.
  1668. This option is off by default, because inheritance in on. If you turn
  1669. inheritance off, you very likely want to turn this option on.
  1670. As a special case, if the tag search is restricted to TODO items, the
  1671. value of this variable is ignored and sublevels are always checked, to
  1672. make sure all corresponding TODO items find their way into the list."
  1673. :group 'org-tags
  1674. :type 'boolean)
  1675. (defvar org-tags-history nil
  1676. "History of minibuffer reads for tags.")
  1677. (defvar org-last-tags-completion-table nil
  1678. "The last used completion table for tags.")
  1679. (defvar org-after-tags-change-hook nil
  1680. "Hook that is run after the tags in a line have changed.")
  1681. (defgroup org-properties nil
  1682. "Options concerning properties in Org-mode."
  1683. :tag "Org Properties"
  1684. :group 'org)
  1685. (defcustom org-property-format "%-10s %s"
  1686. "How property key/value pairs should be formatted by `indent-line'.
  1687. When `indent-line' hits a property definition, it will format the line
  1688. according to this format, mainly to make sure that the values are
  1689. lined-up with respect to each other."
  1690. :group 'org-properties
  1691. :type 'string)
  1692. (defcustom org-use-property-inheritance nil
  1693. "Non-nil means, properties apply also for sublevels.
  1694. This can cause significant overhead when doing a search, so this is turned
  1695. off by default.
  1696. When nil, only the properties directly given in the current entry count.
  1697. However, note that some special properties use inheritance under special
  1698. circumstances (not in searches). Examples are CATEGORY, ARCHIVE, COLUMNS,
  1699. and the properties ending in \"_ALL\" when they are used as descriptor
  1700. for valid values of a property."
  1701. :group 'org-properties
  1702. :type 'boolean)
  1703. (defcustom org-columns-default-format "%25ITEM %TODO %3PRIORITY %TAGS"
  1704. "The default column format, if no other format has been defined.
  1705. This variable can be set on the per-file basis by inserting a line
  1706. #+COLUMNS: %25ITEM ....."
  1707. :group 'org-properties
  1708. :type 'string)
  1709. (defcustom org-global-properties nil
  1710. "List of property/value pairs that can be inherited by any entry.
  1711. You can set buffer-local values for this by adding lines like
  1712. #+PROPERTY: NAME VALUE"
  1713. :group 'org-properties
  1714. :type '(repeat
  1715. (cons (string :tag "Property")
  1716. (string :tag "Value"))))
  1717. (defvar org-local-properties nil
  1718. "List of property/value pairs that can be inherited by any entry.
  1719. Valid for the current buffer.
  1720. This variable is populated from #+PROPERTY lines.")
  1721. (defgroup org-agenda nil
  1722. "Options concerning agenda views in Org-mode."
  1723. :tag "Org Agenda"
  1724. :group 'org)
  1725. (defvar org-category nil
  1726. "Variable used by org files to set a category for agenda display.
  1727. Such files should use a file variable to set it, for example
  1728. # -*- mode: org; org-category: \"ELisp\"
  1729. or contain a special line
  1730. #+CATEGORY: ELisp
  1731. If the file does not specify a category, then file's base name
  1732. is used instead.")
  1733. (make-variable-buffer-local 'org-category)
  1734. (defcustom org-agenda-files nil
  1735. "The files to be used for agenda display.
  1736. Entries may be added to this list with \\[org-agenda-file-to-front] and removed with
  1737. \\[org-remove-file]. You can also use customize to edit the list.
  1738. If an entry is a directory, all files in that directory that are matched by
  1739. `org-agenda-file-regexp' will be part of the file list.
  1740. If the value of the variable is not a list but a single file name, then
  1741. the list of agenda files is actually stored and maintained in that file, one
  1742. agenda file per line."
  1743. :group 'org-agenda
  1744. :type '(choice
  1745. (repeat :tag "List of files and directories" file)
  1746. (file :tag "Store list in a file\n" :value "~/.agenda_files")))
  1747. (defcustom org-agenda-file-regexp "\\.org\\'"
  1748. "Regular expression to match files for `org-agenda-files'.
  1749. If any element in the list in that variable contains a directory instead
  1750. of a normal file, all files in that directory that are matched by this
  1751. regular expression will be included."
  1752. :group 'org-agenda
  1753. :type 'regexp)
  1754. (defcustom org-agenda-skip-unavailable-files nil
  1755. "t means to just skip non-reachable files in `org-agenda-files'.
  1756. Nil means to remove them, after a query, from the list."
  1757. :group 'org-agenda
  1758. :type 'boolean)
  1759. (defcustom org-agenda-multi-occur-extra-files nil
  1760. "List of extra files to be searched by `org-occur-in-agenda-files'.
  1761. The files in `org-agenda-files' are always searched."
  1762. :group 'org-agenda
  1763. :type '(repeat file))
  1764. (defcustom org-agenda-confirm-kill 1
  1765. "When set, remote killing from the agenda buffer needs confirmation.
  1766. When t, a confirmation is always needed. When a number N, confirmation is
  1767. only needed when the text to be killed contains more than N non-white lines."
  1768. :group 'org-agenda
  1769. :type '(choice
  1770. (const :tag "Never" nil)
  1771. (const :tag "Always" t)
  1772. (number :tag "When more than N lines")))
  1773. (defcustom org-calendar-to-agenda-key [?c]
  1774. "The key to be installed in `calendar-mode-map' for switching to the agenda.
  1775. The command `org-calendar-goto-agenda' will be bound to this key. The
  1776. default is the character `c' because then `c' can be used to switch back and
  1777. forth between agenda and calendar."
  1778. :group 'org-agenda
  1779. :type 'sexp)
  1780. (defcustom org-agenda-compact-blocks nil
  1781. "Non-nil means, make the block agenda more compact.
  1782. This is done by leaving out unnecessary lines."
  1783. :group 'org-agenda
  1784. :type nil)
  1785. (defgroup org-agenda-export nil
  1786. "Options concerning exporting agenda views in Org-mode."
  1787. :tag "Org Agenda Export"
  1788. :group 'org-agenda)
  1789. (defcustom org-agenda-with-colors t
  1790. "Non-nil means, use colors in agenda views."
  1791. :group 'org-agenda-export
  1792. :type 'boolean)
  1793. (defcustom org-agenda-exporter-settings nil
  1794. "Alist of variable/value pairs that should be active during agenda export.
  1795. This is a good place to set uptions for ps-print and for htmlize."
  1796. :group 'org-agenda-export
  1797. :type '(repeat
  1798. (list
  1799. (variable)
  1800. (sexp :tag "Value"))))
  1801. (defcustom org-agenda-export-html-style ""
  1802. "The style specification for exported HTML Agenda files.
  1803. If this variable contains a string, it will replace the default <style>
  1804. section as produced by `htmlize'.
  1805. Since there are different ways of setting style information, this variable
  1806. needs to contain the full HTML structure to provide a style, including the
  1807. surrounding HTML tags. The style specifications should include definitions
  1808. the fonts used by the agenda, here is an example:
  1809. <style type=\"text/css\">
  1810. p { font-weight: normal; color: gray; }
  1811. .org-agenda-structure {
  1812. font-size: 110%;
  1813. color: #003399;
  1814. font-weight: 600;
  1815. }
  1816. .org-todo {
  1817. color: #cc6666;Week-agenda:
  1818. font-weight: bold;
  1819. }
  1820. .org-done {
  1821. color: #339933;
  1822. }
  1823. .title { text-align: center; }
  1824. .todo, .deadline { color: red; }
  1825. .done { color: green; }
  1826. </style>
  1827. or, if you want to keep the style in a file,
  1828. <link rel=\"stylesheet\" type=\"text/css\" href=\"mystyles.css\">
  1829. As the value of this option simply gets inserted into the HTML <head> header,
  1830. you can \"misuse\" it to also add other text to the header. However,
  1831. <style>...</style> is required, if not present the variable will be ignored."
  1832. :group 'org-agenda-export
  1833. :group 'org-export-html
  1834. :type 'string)
  1835. (defgroup org-agenda-custom-commands nil
  1836. "Options concerning agenda views in Org-mode."
  1837. :tag "Org Agenda Custom Commands"
  1838. :group 'org-agenda)
  1839. (defcustom org-agenda-custom-commands nil
  1840. "Custom commands for the agenda.
  1841. These commands will be offered on the splash screen displayed by the
  1842. agenda dispatcher \\[org-agenda]. Each entry is a list like this:
  1843. (key desc type match options files)
  1844. key The key (one or more characters as a string) to be associated
  1845. with the command.
  1846. desc A description of the commend, when omitted or nil, a default
  1847. description is built using MATCH.
  1848. type The command type, any of the following symbols:
  1849. todo Entries with a specific TODO keyword, in all agenda files.
  1850. tags Tags match in all agenda files.
  1851. tags-todo Tags match in all agenda files, TODO entries only.
  1852. todo-tree Sparse tree of specific TODO keyword in *current* file.
  1853. tags-tree Sparse tree with all tags matches in *current* file.
  1854. occur-tree Occur sparse tree for *current* file.
  1855. ... A user-defined function.
  1856. match What to search for:
  1857. - a single keyword for TODO keyword searches
  1858. - a tags match expression for tags searches
  1859. - a regular expression for occur searches
  1860. options A list of option settings, similar to that in a let form, so like
  1861. this: ((opt1 val1) (opt2 val2) ...)
  1862. files A list of files file to write the produced agenda buffer to
  1863. with the command `org-store-agenda-views'.
  1864. If a file name ends in \".html\", an HTML version of the buffer
  1865. is written out. If it ends in \".ps\", a postscript version is
  1866. produced. Otherwide, only the plain text is written to the file.
  1867. You can also define a set of commands, to create a composite agenda buffer.
  1868. In this case, an entry looks like this:
  1869. (key desc (cmd1 cmd2 ...) general-options file)
  1870. where
  1871. desc A description string to be displayed in the dispatcher menu.
  1872. cmd An agenda command, similar to the above. However, tree commands
  1873. are no allowed, but instead you can get agenda and global todo list.
  1874. So valid commands for a set are:
  1875. (agenda)
  1876. (alltodo)
  1877. (stuck)
  1878. (todo \"match\" options files)
  1879. (tags \"match\" options files)
  1880. (tags-todo \"match\" options files)
  1881. Each command can carry a list of options, and another set of options can be
  1882. given for the whole set of commands. Individual command options take
  1883. precedence over the general options.
  1884. When using several characters as key to a command, the first characters
  1885. are prefix commands. For the dispatcher to display useful information, you
  1886. should provide a description for the prefix, like
  1887. (setq org-agenda-custom-commands
  1888. '((\"h\" . \"HOME + Name tag searches\") ; describe prefix \"h\"
  1889. (\"hl\" tags \"+HOME+Lisa\")
  1890. (\"hp\" tags \"+HOME+Peter\")
  1891. (\"hk\" tags \"+HOME+Kim\")))"
  1892. :group 'org-agenda-custom-commands
  1893. :type '(repeat
  1894. (choice :value ("a" "" tags "" nil)
  1895. (list :tag "Single command"
  1896. (string :tag "Access Key(s) ")
  1897. (option (string :tag "Description"))
  1898. (choice
  1899. (const :tag "Agenda" agenda)
  1900. (const :tag "TODO list" alltodo)
  1901. (const :tag "Stuck projects" stuck)
  1902. (const :tag "Tags search (all agenda files)" tags)
  1903. (const :tag "Tags search of TODO entries (all agenda files)" tags-todo)
  1904. (const :tag "TODO keyword search (all agenda files)" todo)
  1905. (const :tag "Tags sparse tree (current buffer)" tags-tree)
  1906. (const :tag "TODO keyword tree (current buffer)" todo-tree)
  1907. (const :tag "Occur tree (current buffer)" occur-tree)
  1908. (sexp :tag "Other, user-defined function"))
  1909. (string :tag "Match")
  1910. (repeat :tag "Local options"
  1911. (list (variable :tag "Option") (sexp :tag "Value")))
  1912. (option (repeat :tag "Export" (file :tag "Export to"))))
  1913. (list :tag "Command series, all agenda files"
  1914. (string :tag "Access Key(s)")
  1915. (string :tag "Description ")
  1916. (repeat
  1917. (choice
  1918. (const :tag "Agenda" (agenda))
  1919. (const :tag "TODO list" (alltodo))
  1920. (const :tag "Stuck projects" (stuck))
  1921. (list :tag "Tags search"
  1922. (const :format "" tags)
  1923. (string :tag "Match")
  1924. (repeat :tag "Local options"
  1925. (list (variable :tag "Option")
  1926. (sexp :tag "Value"))))
  1927. (list :tag "Tags search, TODO entries only"
  1928. (const :format "" tags-todo)
  1929. (string :tag "Match")
  1930. (repeat :tag "Local options"
  1931. (list (variable :tag "Option")
  1932. (sexp :tag "Value"))))
  1933. (list :tag "TODO keyword search"
  1934. (const :format "" todo)
  1935. (string :tag "Match")
  1936. (repeat :tag "Local options"
  1937. (list (variable :tag "Option")
  1938. (sexp :tag "Value"))))
  1939. (list :tag "Other, user-defined function"
  1940. (symbol :tag "function")
  1941. (string :tag "Match")
  1942. (repeat :tag "Local options"
  1943. (list (variable :tag "Option")
  1944. (sexp :tag "Value"))))))
  1945. (repeat :tag "General options"
  1946. (list (variable :tag "Option")
  1947. (sexp :tag "Value")))
  1948. (option (repeat :tag "Export" (file :tag "Export to"))))
  1949. (cons :tag "Prefix key documentation"
  1950. (string :tag "Access Key(s)")
  1951. (string :tag "Description ")))))
  1952. (defcustom org-stuck-projects
  1953. '("+LEVEL=2/-DONE" ("TODO" "NEXT" "NEXTACTION") nil "")
  1954. "How to identify stuck projects.
  1955. This is a list of four items:
  1956. 1. A tags/todo matcher string that is used to identify a project.
  1957. The entire tree below a headline matched by this is considered one project.
  1958. 2. A list of TODO keywords identifying non-stuck projects.
  1959. If the project subtree contains any headline with one of these todo
  1960. keywords, the project is considered to be not stuck. If you specify
  1961. \"*\" as a keyword, any TODO keyword will mark the project unstuck.
  1962. 3. A list of tags identifying non-stuck projects.
  1963. If the project subtree contains any headline with one of these tags,
  1964. the project is considered to be not stuck. If you specify \"*\" as
  1965. a tag, any tag will mark the project unstuck.
  1966. 4. An arbitrary regular expression matching non-stuck projects.
  1967. After defining this variable, you may use \\[org-agenda-list-stuck-projects]
  1968. or `C-c a #' to produce the list."
  1969. :group 'org-agenda-custom-commands
  1970. :type '(list
  1971. (string :tag "Tags/TODO match to identify a project")
  1972. (repeat :tag "Projects are *not* stuck if they have an entry with TODO keyword any of" (string))
  1973. (repeat :tag "Projects are *not* stuck if they have an entry with TAG being any of" (string))
  1974. (regexp :tag "Projects are *not* stuck if this regexp matches\ninside the subtree")))
  1975. (defgroup org-agenda-skip nil
  1976. "Options concerning skipping parts of agenda files."
  1977. :tag "Org Agenda Skip"
  1978. :group 'org-agenda)
  1979. (defcustom org-agenda-todo-list-sublevels t
  1980. "Non-nil means, check also the sublevels of a TODO entry for TODO entries.
  1981. When nil, the sublevels of a TODO entry are not checked, resulting in
  1982. potentially much shorter TODO lists."
  1983. :group 'org-agenda-skip
  1984. :group 'org-todo
  1985. :type 'boolean)
  1986. (defcustom org-agenda-todo-ignore-with-date nil
  1987. "Non-nil means, don't show entries with a date in the global todo list.
  1988. You can use this if you prefer to mark mere appointments with a TODO keyword,
  1989. but don't want them to show up in the TODO list.
  1990. When this is set, it also covers deadlines and scheduled items, the settings
  1991. of `org-agenda-todo-ignore-scheduled' and `org-agenda-todo-ignore-deadlines'
  1992. will be ignored."
  1993. :group 'org-agenda-skip
  1994. :group 'org-todo
  1995. :type 'boolean)
  1996. (defcustom org-agenda-todo-ignore-scheduled nil
  1997. "Non-nil means, don't show scheduled entries in the global todo list.
  1998. The idea behind this is that by scheduling it, you have already taken care
  1999. of this item.
  2000. See also `org-agenda-todo-ignore-with-date'."
  2001. :group 'org-agenda-skip
  2002. :group 'org-todo
  2003. :type 'boolean)
  2004. (defcustom org-agenda-todo-ignore-deadlines nil
  2005. "Non-nil means, don't show near deadline entries in the global todo list.
  2006. Near means closer than `org-deadline-warning-days' days.
  2007. The idea behind this is that such items will appear in the agenda anyway.
  2008. See also `org-agenda-todo-ignore-with-date'."
  2009. :group 'org-agenda-skip
  2010. :group 'org-todo
  2011. :type 'boolean)
  2012. (defcustom org-agenda-skip-scheduled-if-done nil
  2013. "Non-nil means don't show scheduled items in agenda when they are done.
  2014. This is relevant for the daily/weekly agenda, not for the TODO list. And
  2015. it applies only to the actual date of the scheduling. Warnings about
  2016. an item with a past scheduling dates are always turned off when the item
  2017. is DONE."
  2018. :group 'org-agenda-skip
  2019. :type 'boolean)
  2020. (defcustom org-agenda-skip-deadline-if-done nil
  2021. "Non-nil means don't show deadines when the corresponding item is done.
  2022. When nil, the deadline is still shown and should give you a happy feeling.
  2023. This is relevant for the daily/weekly agenda. And it applied only to the
  2024. actualy date of the deadline. Warnings about approching and past-due
  2025. deadlines are always turned off when the item is DONE."
  2026. :group 'org-agenda-skip
  2027. :type 'boolean)
  2028. (defcustom org-timeline-show-empty-dates 3
  2029. "Non-nil means, `org-timeline' also shows dates without an entry.
  2030. When nil, only the days which actually have entries are shown.
  2031. When t, all days between the first and the last date are shown.
  2032. When an integer, show also empty dates, but if there is a gap of more than
  2033. N days, just insert a special line indicating the size of the gap."
  2034. :group 'org-agenda-skip
  2035. :type '(choice
  2036. (const :tag "None" nil)
  2037. (const :tag "All" t)
  2038. (number :tag "at most")))
  2039. (defgroup org-agenda-startup nil
  2040. "Options concerning initial settings in the Agenda in Org Mode."
  2041. :tag "Org Agenda Startup"
  2042. :group 'org-agenda)
  2043. (defcustom org-finalize-agenda-hook nil
  2044. "Hook run just before displaying an agenda buffer."
  2045. :group 'org-agenda-startup
  2046. :type 'hook)
  2047. (defcustom org-agenda-mouse-1-follows-link nil
  2048. "Non-nil means, mouse-1 on a link will follow the link in the agenda.
  2049. A longer mouse click will still set point. Does not wortk on XEmacs.
  2050. Needs to be set before org.el is loaded."
  2051. :group 'org-agenda-startup
  2052. :type 'boolean)
  2053. (defcustom org-agenda-start-with-follow-mode nil
  2054. "The initial value of follow-mode in a newly created agenda window."
  2055. :group 'org-agenda-startup
  2056. :type 'boolean)
  2057. (defgroup org-agenda-windows nil
  2058. "Options concerning the windows used by the Agenda in Org Mode."
  2059. :tag "Org Agenda Windows"
  2060. :group 'org-agenda)
  2061. (defcustom org-agenda-window-setup 'reorganize-frame
  2062. "How the agenda buffer should be displayed.
  2063. Possible values for this option are:
  2064. current-window Show agenda in the current window, keeping all other windows.
  2065. other-frame Use `switch-to-buffer-other-frame' to display agenda.
  2066. other-window Use `switch-to-buffer-other-window' to display agenda.
  2067. reorganize-frame Show only two windows on the current frame, the current
  2068. window and the agenda.
  2069. See also the variable `org-agenda-restore-windows-after-quit'."
  2070. :group 'org-agenda-windows
  2071. :type '(choice
  2072. (const current-window)
  2073. (const other-frame)
  2074. (const other-window)
  2075. (const reorganize-frame)))
  2076. (defcustom org-agenda-window-frame-fractions '(0.5 . 0.75)
  2077. "The min and max height of the agenda window as a fraction of frame height.
  2078. The value of the variable is a cons cell with two numbers between 0 and 1.
  2079. It only matters if `org-agenda-window-setup' is `reorganize-frame'."
  2080. :group 'org-agenda-windows
  2081. :type '(cons (number :tag "Minimum") (number :tag "Maximum")))
  2082. (defcustom org-agenda-restore-windows-after-quit nil
  2083. "Non-nil means, restore window configuration open exiting agenda.
  2084. Before the window configuration is changed for displaying the agenda,
  2085. the current status is recorded. When the agenda is exited with
  2086. `q' or `x' and this option is set, the old state is restored. If
  2087. `org-agenda-window-setup' is `other-frame', the value of this
  2088. option will be ignored.."
  2089. :group 'org-agenda-windows
  2090. :type 'boolean)
  2091. (defcustom org-indirect-buffer-display 'other-window
  2092. "How should indirect tree buffers be displayed?
  2093. This applies to indirect buffers created with the commands
  2094. \\[org-tree-to-indirect-buffer] and \\[org-agenda-tree-to-indirect-buffer].
  2095. Valid values are:
  2096. current-window Display in the current window
  2097. other-window Just display in another window.
  2098. dedicated-frame Create one new frame, and re-use it each time.
  2099. new-frame Make a new frame each time."
  2100. :group 'org-structure
  2101. :group 'org-agenda-windows
  2102. :type '(choice
  2103. (const :tag "In current window" current-window)
  2104. (const :tag "In current frame, other window" other-window)
  2105. (const :tag "Each time a new frame" new-frame)
  2106. (const :tag "One dedicated frame" dedicated-frame)))
  2107. (defgroup org-agenda-daily/weekly nil
  2108. "Options concerning the daily/weekly agenda."
  2109. :tag "Org Agenda Daily/Weekly"
  2110. :group 'org-agenda)
  2111. (defcustom org-agenda-ndays 7
  2112. "Number of days to include in overview display.
  2113. Should be 1 or 7."
  2114. :group 'org-agenda-daily/weekly
  2115. :type 'number)
  2116. (defcustom org-agenda-start-on-weekday 1
  2117. "Non-nil means, start the overview always on the specified weekday.
  2118. 0 denotes Sunday, 1 denotes Monday etc.
  2119. When nil, always start on the current day."
  2120. :group 'org-agenda-daily/weekly
  2121. :type '(choice (const :tag "Today" nil)
  2122. (number :tag "Weekday No.")))
  2123. (defcustom org-agenda-show-all-dates t
  2124. "Non-nil means, `org-agenda' shows every day in the selected range.
  2125. When nil, only the days which actually have entries are shown."
  2126. :group 'org-agenda-daily/weekly
  2127. :type 'boolean)
  2128. (defcustom org-agenda-format-date 'org-agenda-format-date-aligned
  2129. "Format string for displaying dates in the agenda.
  2130. Used by the daily/weekly agenda and by the timeline. This should be
  2131. a format string understood by `format-time-string', or a function returning
  2132. the formatted date as a string. The function must take a single argument,
  2133. a calendar-style date list like (month day year)."
  2134. :group 'org-agenda-daily/weekly
  2135. :type '(choice
  2136. (string :tag "Format string")
  2137. (function :tag "Function")))
  2138. (defun org-agenda-format-date-aligned (date)
  2139. "Format a date string for display in the daily/weekly agenda, or timeline.
  2140. This function makes sure that dates are aligned for easy reading."
  2141. (format "%-9s %2d %s %4d"
  2142. (calendar-day-name date)
  2143. (extract-calendar-day date)
  2144. (calendar-month-name (extract-calendar-month date))
  2145. (extract-calendar-year date)))
  2146. (defcustom org-agenda-include-diary nil
  2147. "If non-nil, include in the agenda entries from the Emacs Calendar's diary."
  2148. :group 'org-agenda-daily/weekly
  2149. :type 'boolean)
  2150. (defcustom org-agenda-include-all-todo nil
  2151. "Set means weekly/daily agenda will always contain all TODO entries.
  2152. The TODO entries will be listed at the top of the agenda, before
  2153. the entries for specific days."
  2154. :group 'org-agenda-daily/weekly
  2155. :type 'boolean)
  2156. (defcustom org-agenda-repeating-timestamp-show-all t
  2157. "Non-nil means, show all occurences of a repeating stamp in the agenda.
  2158. When nil, only one occurence is shown, either today or the
  2159. nearest into the future."
  2160. :group 'org-agenda-daily/weekly
  2161. :type 'boolean)
  2162. (defcustom org-deadline-warning-days 14
  2163. "No. of days before expiration during which a deadline becomes active.
  2164. This variable governs the display in sparse trees and in the agenda.
  2165. When negative, it means use this number (the absolute value of it)
  2166. even if a deadline has a different individual lead time specified."
  2167. :group 'org-time
  2168. :group 'org-agenda-daily/weekly
  2169. :type 'number)
  2170. (defcustom org-scheduled-past-days 10000
  2171. "No. of days to continue listing scheduled items that are not marked DONE.
  2172. When an item is scheduled on a date, it shows up in the agenda on this
  2173. day and will be listed until it is marked done for the number of days
  2174. given here."
  2175. :group 'org-agenda-daily/weekly
  2176. :type 'number)
  2177. (defgroup org-agenda-time-grid nil
  2178. "Options concerning the time grid in the Org-mode Agenda."
  2179. :tag "Org Agenda Time Grid"
  2180. :group 'org-agenda)
  2181. (defcustom org-agenda-use-time-grid t
  2182. "Non-nil means, show a time grid in the agenda schedule.
  2183. A time grid is a set of lines for specific times (like every two hours between
  2184. 8:00 and 20:00). The items scheduled for a day at specific times are
  2185. sorted in between these lines.
  2186. For details about when the grid will be shown, and what it will look like, see
  2187. the variable `org-agenda-time-grid'."
  2188. :group 'org-agenda-time-grid
  2189. :type 'boolean)
  2190. (defcustom org-agenda-time-grid
  2191. '((daily today require-timed)
  2192. "----------------"
  2193. (800 1000 1200 1400 1600 1800 2000))
  2194. "The settings for time grid for agenda display.
  2195. This is a list of three items. The first item is again a list. It contains
  2196. symbols specifying conditions when the grid should be displayed:
  2197. daily if the agenda shows a single day
  2198. weekly if the agenda shows an entire week
  2199. today show grid on current date, independent of daily/weekly display
  2200. require-timed show grid only if at least one item has a time specification
  2201. The second item is a string which will be places behing the grid time.
  2202. The third item is a list of integers, indicating the times that should have
  2203. a grid line."
  2204. :group 'org-agenda-time-grid
  2205. :type
  2206. '(list
  2207. (set :greedy t :tag "Grid Display Options"
  2208. (const :tag "Show grid in single day agenda display" daily)
  2209. (const :tag "Show grid in weekly agenda display" weekly)
  2210. (const :tag "Always show grid for today" today)
  2211. (const :tag "Show grid only if any timed entries are present"
  2212. require-timed)
  2213. (const :tag "Skip grid times already present in an entry"
  2214. remove-match))
  2215. (string :tag "Grid String")
  2216. (repeat :tag "Grid Times" (integer :tag "Time"))))
  2217. (defgroup org-agenda-sorting nil
  2218. "Options concerning sorting in the Org-mode Agenda."
  2219. :tag "Org Agenda Sorting"
  2220. :group 'org-agenda)
  2221. (let ((sorting-choice
  2222. '(choice
  2223. (const time-up) (const time-down)
  2224. (const category-keep) (const category-up) (const category-down)
  2225. (const tag-down) (const tag-up)
  2226. (const priority-up) (const priority-down))))
  2227. (defcustom org-agenda-sorting-strategy
  2228. '((agenda time-up category-keep priority-down)
  2229. (todo category-keep priority-down)
  2230. (tags category-keep priority-down))
  2231. "Sorting structure for the agenda items of a single day.
  2232. This is a list of symbols which will be used in sequence to determine
  2233. if an entry should be listed before another entry. The following
  2234. symbols are recognized:
  2235. time-up Put entries with time-of-day indications first, early first
  2236. time-down Put entries with time-of-day indications first, late first
  2237. category-keep Keep the default order of categories, corresponding to the
  2238. sequence in `org-agenda-files'.
  2239. category-up Sort alphabetically by category, A-Z.
  2240. category-down Sort alphabetically by category, Z-A.
  2241. tag-up Sort alphabetically by last tag, A-Z.
  2242. tag-down Sort alphabetically by last tag, Z-A.
  2243. priority-up Sort numerically by priority, high priority last.
  2244. priority-down Sort numerically by priority, high priority first.
  2245. The different possibilities will be tried in sequence, and testing stops
  2246. if one comparison returns a \"not-equal\". For example, the default
  2247. '(time-up category-keep priority-down)
  2248. means: Pull out all entries having a specified time of day and sort them,
  2249. in order to make a time schedule for the current day the first thing in the
  2250. agenda listing for the day. Of the entries without a time indication, keep
  2251. the grouped in categories, don't sort the categories, but keep them in
  2252. the sequence given in `org-agenda-files'. Within each category sort by
  2253. priority.
  2254. Leaving out `category-keep' would mean that items will be sorted across
  2255. categories by priority."
  2256. :group 'org-agenda-sorting
  2257. :type `(choice
  2258. (repeat :tag "General" ,sorting-choice)
  2259. (list :tag "Individually"
  2260. (cons (const :tag "Strategy for Weekly/Daily agenda" agenda)
  2261. (repeat ,sorting-choice))
  2262. (cons (const :tag "Strategy for TODO lists" todo)
  2263. (repeat ,sorting-choice))
  2264. (cons (const :tag "Strategy for Tags matches" tags)
  2265. (repeat ,sorting-choice))))))
  2266. (defcustom org-sort-agenda-notime-is-late t
  2267. "Non-nil means, items without time are considered late.
  2268. This is only relevant for sorting. When t, items which have no explicit
  2269. time like 15:30 will be considered as 99:01, i.e. later than any items which
  2270. do have a time. When nil, the default time is before 0:00. You can use this
  2271. option to decide if the schedule for today should come before or after timeless
  2272. agenda entries."
  2273. :group 'org-agenda-sorting
  2274. :type 'boolean)
  2275. (defgroup org-agenda-line-format nil
  2276. "Options concerning the entry prefix in the Org-mode agenda display."
  2277. :tag "Org Agenda Line Format"
  2278. :group 'org-agenda)
  2279. (defcustom org-agenda-prefix-format
  2280. '((agenda . " %-12:c%?-12t% s")
  2281. (timeline . " % s")
  2282. (todo . " %-12:c")
  2283. (tags . " %-12:c"))
  2284. "Format specifications for the prefix of items in the agenda views.
  2285. An alist with four entries, for the different agenda types. The keys to the
  2286. sublists are `agenda', `timeline', `todo', and `tags'. The values
  2287. are format strings.
  2288. This format works similar to a printf format, with the following meaning:
  2289. %c the category of the item, \"Diary\" for entries from the diary, or
  2290. as given by the CATEGORY keyword or derived from the file name.
  2291. %T the *last* tag of the item. Last because inherited tags come
  2292. first in the list.
  2293. %t the time-of-day specification if one applies to the entry, in the
  2294. format HH:MM
  2295. %s Scheduling/Deadline information, a short string
  2296. All specifiers work basically like the standard `%s' of printf, but may
  2297. contain two additional characters: A question mark just after the `%' and
  2298. a whitespace/punctuation character just before the final letter.
  2299. If the first character after `%' is a question mark, the entire field
  2300. will only be included if the corresponding value applies to the
  2301. current entry. This is useful for fields which should have fixed
  2302. width when present, but zero width when absent. For example,
  2303. \"%?-12t\" will result in a 12 character time field if a time of the
  2304. day is specified, but will completely disappear in entries which do
  2305. not contain a time.
  2306. If there is punctuation or whitespace character just before the final
  2307. format letter, this character will be appended to the field value if
  2308. the value is not empty. For example, the format \"%-12:c\" leads to
  2309. \"Diary: \" if the category is \"Diary\". If the category were be
  2310. empty, no additional colon would be interted.
  2311. The default value of this option is \" %-12:c%?-12t% s\", meaning:
  2312. - Indent the line with two space characters
  2313. - Give the category in a 12 chars wide field, padded with whitespace on
  2314. the right (because of `-'). Append a colon if there is a category
  2315. (because of `:').
  2316. - If there is a time-of-day, put it into a 12 chars wide field. If no
  2317. time, don't put in an empty field, just skip it (because of '?').
  2318. - Finally, put the scheduling information and append a whitespace.
  2319. As another example, if you don't want the time-of-day of entries in
  2320. the prefix, you could use:
  2321. (setq org-agenda-prefix-format \" %-11:c% s\")
  2322. See also the variables `org-agenda-remove-times-when-in-prefix' and
  2323. `org-agenda-remove-tags'."
  2324. :type '(choice
  2325. (string :tag "General format")
  2326. (list :greedy t :tag "View dependent"
  2327. (cons (const agenda) (string :tag "Format"))
  2328. (cons (const timeline) (string :tag "Format"))
  2329. (cons (const todo) (string :tag "Format"))
  2330. (cons (const tags) (string :tag "Format"))))
  2331. :group 'org-agenda-line-format)
  2332. (defvar org-prefix-format-compiled nil
  2333. "The compiled version of the most recently used prefix format.
  2334. See the variable `org-agenda-prefix-format'.")
  2335. (defcustom org-agenda-scheduled-leaders '("Scheduled: " "Sched.%2dx: ")
  2336. "Text preceeding scheduled items in the agenda view.
  2337. THis is a list with two strings. The first applies when the item is
  2338. scheduled on the current day. The second applies when it has been scheduled
  2339. previously, it may contain a %d to capture how many days ago the item was
  2340. scheduled."
  2341. :group 'org-agenda-line-format
  2342. :type '(list
  2343. (string :tag "Scheduled today ")
  2344. (string :tag "Scheduled previously")))
  2345. (defcustom org-agenda-deadline-leaders '("Deadline: " "In %3d d.: ")
  2346. "Text preceeding deadline items in the agenda view.
  2347. This is a list with two strings. The first applies when the item has its
  2348. deadline on the current day. The second applies when it is in the past or
  2349. in the future, it may contain %d to capture how many days away the deadline
  2350. is (was)."
  2351. :group 'org-agenda-line-format
  2352. :type '(list
  2353. (string :tag "Deadline today ")
  2354. (string :tag "Deadline relative")))
  2355. (defcustom org-agenda-remove-times-when-in-prefix t
  2356. "Non-nil means, remove duplicate time specifications in agenda items.
  2357. When the format `org-agenda-prefix-format' contains a `%t' specifier, a
  2358. time-of-day specification in a headline or diary entry is extracted and
  2359. placed into the prefix. If this option is non-nil, the original specification
  2360. \(a timestamp or -range, or just a plain time(range) specification like
  2361. 11:30-4pm) will be removed for agenda display. This makes the agenda less
  2362. cluttered.
  2363. The option can be t or nil. It may also be the symbol `beg', indicating
  2364. that the time should only be removed what it is located at the beginning of
  2365. the headline/diary entry."
  2366. :group 'org-agenda-line-format
  2367. :type '(choice
  2368. (const :tag "Always" t)
  2369. (const :tag "Never" nil)
  2370. (const :tag "When at beginning of entry" beg)))
  2371. (defcustom org-agenda-default-appointment-duration nil
  2372. "Default duration for appointments that only have a starting time.
  2373. When nil, no duration is specified in such cases.
  2374. When non-nil, this must be the number of minutes, e.g. 60 for one hour."
  2375. :group 'org-agenda-line-format
  2376. :type '(choice
  2377. (integer :tag "Minutes")
  2378. (const :tag "No default duration")))
  2379. (defcustom org-agenda-remove-tags nil
  2380. "Non-nil means, remove the tags from the headline copy in the agenda.
  2381. When this is the symbol `prefix', only remove tags when
  2382. `org-agenda-prefix-format' contains a `%T' specifier."
  2383. :group 'org-agenda-line-format
  2384. :type '(choice
  2385. (const :tag "Always" t)
  2386. (const :tag "Never" nil)
  2387. (const :tag "When prefix format contains %T" prefix)))
  2388. (if (fboundp 'defvaralias)
  2389. (defvaralias 'org-agenda-remove-tags-when-in-prefix
  2390. 'org-agenda-remove-tags))
  2391. (defcustom org-agenda-tags-column -80
  2392. "Shift tags in agenda items to this column.
  2393. If this number is positive, it specifies the column. If it is negative,
  2394. it means that the tags should be flushright to that column. For example,
  2395. -80 works well for a normal 80 character screen."
  2396. :group 'org-agenda-line-format
  2397. :type 'integer)
  2398. (if (fboundp 'defvaralias)
  2399. (defvaralias 'org-agenda-align-tags-to-column 'org-agenda-tags-column))
  2400. (defcustom org-agenda-fontify-priorities t
  2401. "Non-nil means, highlight low and high priorities in agenda.
  2402. When t, the highest priority entries are bold, lowest priority italic.
  2403. This may also be an association list of priority faces. The face may be
  2404. a names face, or a list like `(:background \"Red\")'."
  2405. :group 'org-agenda-line-format
  2406. :type '(choice
  2407. (const :tag "Never" nil)
  2408. (const :tag "Defaults" t)
  2409. (repeat :tag "Specify"
  2410. (list (character :tag "Priority" :value ?A)
  2411. (sexp :tag "face")))))
  2412. (defgroup org-latex nil
  2413. "Options for embedding LaTeX code into Org-mode"
  2414. :tag "Org LaTeX"
  2415. :group 'org)
  2416. (defcustom org-format-latex-options
  2417. '(:foreground default :background default :scale 1.0
  2418. :html-foreground "Black" :html-background "Transparent" :html-scale 1.0
  2419. :matchers ("begin" "$" "$$" "\\(" "\\["))
  2420. "Options for creating images from LaTeX fragments.
  2421. This is a property list with the following properties:
  2422. :foreground the foreground color for images embedded in emacs, e.g. \"Black\".
  2423. `default' means use the forground of the default face.
  2424. :background the background color, or \"Transparent\".
  2425. `default' means use the background of the default face.
  2426. :scale a scaling factor for the size of the images
  2427. :html-foreground, :html-background, :html-scale
  2428. The same numbers for HTML export.
  2429. :matchers a list indicating which matchers should be used to
  2430. find LaTeX fragments. Valid members of this list are:
  2431. \"begin\" find environments
  2432. \"$\" find math expressions surrounded by $...$
  2433. \"$$\" find math expressions surrounded by $$....$$
  2434. \"\\(\" find math expressions surrounded by \\(...\\)
  2435. \"\\ [\" find math expressions surrounded by \\ [...\\]"
  2436. :group 'org-latex
  2437. :type 'plist)
  2438. (defcustom org-format-latex-header "\\documentclass{article}
  2439. \\usepackage{fullpage} % do not remove
  2440. \\usepackage{amssymb}
  2441. \\usepackage[usenames]{color}
  2442. \\usepackage{amsmath}
  2443. \\usepackage{latexsym}
  2444. \\usepackage[mathscr]{eucal}
  2445. \\pagestyle{empty} % do not remove"
  2446. "The document header used for processing LaTeX fragments."
  2447. :group 'org-latex
  2448. :type 'string)
  2449. (defgroup org-export nil
  2450. "Options for exporting org-listings."
  2451. :tag "Org Export"
  2452. :group 'org)
  2453. (defgroup org-export-general nil
  2454. "General options for exporting Org-mode files."
  2455. :tag "Org Export General"
  2456. :group 'org-export)
  2457. (defcustom org-export-publishing-directory "."
  2458. "Path to the location where exported files should be located.
  2459. This path may be relative to the directory where the Org-mode file lives.
  2460. The default is to put them into the same directory as the Org-mode file.
  2461. The variable may also be an alist with export types `:html', `:ascii',
  2462. `:ical', `:LaTeX', or `:xoxo' and the corresponding directories.
  2463. If a directory path is relative, it is interpreted relative to the
  2464. directory where the exported Org-mode files lives."
  2465. :group 'org-export-general
  2466. :type '(choice
  2467. (directory)
  2468. (repeat
  2469. (cons
  2470. (choice :tag "Type"
  2471. (const :html) (const :LaTeX)
  2472. (const :ascii) (const :ical) (const :xoxo))
  2473. (directory)))))
  2474. (defcustom org-export-language-setup
  2475. '(("en" "Author" "Date" "Table of Contents")
  2476. ("cs" "Autor" "Datum" "Obsah")
  2477. ("da" "Ophavsmand" "Dato" "Indhold")
  2478. ("de" "Autor" "Datum" "Inhaltsverzeichnis")
  2479. ("es" "Autor" "Fecha" "\xcdndice")
  2480. ("fr" "Auteur" "Date" "Table des mati\xe8res")
  2481. ("it" "Autore" "Data" "Indice")
  2482. ("nl" "Auteur" "Datum" "Inhoudsopgave")
  2483. ("nn" "Forfattar" "Dato" "Innhold") ;; nn = Norsk (nynorsk)
  2484. ("sv" "F\xf6rfattarens" "Datum" "Inneh\xe5ll"))
  2485. "Terms used in export text, translated to different languages.
  2486. Use the variable `org-export-default-language' to set the language,
  2487. or use the +OPTION lines for a per-file setting."
  2488. :group 'org-export-general
  2489. :type '(repeat
  2490. (list
  2491. (string :tag "HTML language tag")
  2492. (string :tag "Author")
  2493. (string :tag "Date")
  2494. (string :tag "Table of Contents"))))
  2495. (defcustom org-export-default-language "en"
  2496. "The default language of HTML export, as a string.
  2497. This should have an association in `org-export-language-setup'."
  2498. :group 'org-export-general
  2499. :type 'string)
  2500. (defcustom org-export-skip-text-before-1st-heading t
  2501. "Non-nil means, skip all text before the first headline when exporting.
  2502. When nil, that text is exported as well."
  2503. :group 'org-export-general
  2504. :type 'boolean)
  2505. (defcustom org-export-headline-levels 3
  2506. "The last level which is still exported as a headline.
  2507. Inferior levels will produce itemize lists when exported.
  2508. Note that a numeric prefix argument to an exporter function overrides
  2509. this setting.
  2510. This option can also be set with the +OPTIONS line, e.g. \"H:2\"."
  2511. :group 'org-export-general
  2512. :type 'number)
  2513. (defcustom org-export-with-section-numbers t
  2514. "Non-nil means, add section numbers to headlines when exporting.
  2515. This option can also be set with the +OPTIONS line, e.g. \"num:t\"."
  2516. :group 'org-export-general
  2517. :type 'boolean)
  2518. (defcustom org-export-with-toc t
  2519. "Non-nil means, create a table of contents in exported files.
  2520. The TOC contains headlines with levels up to`org-export-headline-levels'.
  2521. When an integer, include levels up to N in the toc, this may then be
  2522. different from `org-export-headline-levels', but it will not be allowed
  2523. to be larger than the number of headline levels.
  2524. When nil, no table of contents is made.
  2525. Headlines which contain any TODO items will be marked with \"(*)\" in
  2526. ASCII export, and with red color in HTML output, if the option
  2527. `org-export-mark-todo-in-toc' is set.
  2528. In HTML output, the TOC will be clickable.
  2529. This option can also be set with the +OPTIONS line, e.g. \"toc:nil\"
  2530. or \"toc:3\"."
  2531. :group 'org-export-general
  2532. :type '(choice
  2533. (const :tag "No Table of Contents" nil)
  2534. (const :tag "Full Table of Contents" t)
  2535. (integer :tag "TOC to level")))
  2536. (defcustom org-export-mark-todo-in-toc nil
  2537. "Non-nil means, mark TOC lines that contain any open TODO items."
  2538. :group 'org-export-general
  2539. :type 'boolean)
  2540. (defcustom org-export-preserve-breaks nil
  2541. "Non-nil means, preserve all line breaks when exporting.
  2542. Normally, in HTML output paragraphs will be reformatted. In ASCII
  2543. export, line breaks will always be preserved, regardless of this variable.
  2544. This option can also be set with the +OPTIONS line, e.g. \"\\n:t\"."
  2545. :group 'org-export-general
  2546. :type 'boolean)
  2547. (defcustom org-export-with-archived-trees 'headline
  2548. "Whether subtrees with the ARCHIVE tag should be exported.
  2549. This can have three different values
  2550. nil Do not export, pretend this tree is not present
  2551. t Do export the entire tree
  2552. headline Only export the headline, but skip the tree below it."
  2553. :group 'org-export-general
  2554. :group 'org-archive
  2555. :type '(choice
  2556. (const :tag "not at all" nil)
  2557. (const :tag "headline only" 'headline)
  2558. (const :tag "entirely" t)))
  2559. (defcustom org-export-author-info t
  2560. "Non-nil means, insert author name and email into the exported file.
  2561. This option can also be set with the +OPTIONS line,
  2562. e.g. \"author-info:nil\"."
  2563. :group 'org-export-general
  2564. :type 'boolean)
  2565. (defcustom org-export-time-stamp-file t
  2566. "Non-nil means, insert a time stamp into the exported file.
  2567. The time stamp shows when the file was created.
  2568. This option can also be set with the +OPTIONS line,
  2569. e.g. \"timestamp:nil\"."
  2570. :group 'org-export-general
  2571. :type 'boolean)
  2572. (defcustom org-export-with-timestamps t
  2573. "If nil, do not export time stamps and associated keywords."
  2574. :group 'org-export-general
  2575. :type 'boolean)
  2576. (defcustom org-export-remove-timestamps-from-toc t
  2577. "If nil, remove timestamps from the table of contents entries."
  2578. :group 'org-export-general
  2579. :type 'boolean)
  2580. (defcustom org-export-with-tags 'not-in-toc
  2581. "If nil, do not export tags, just remove them from headlines.
  2582. If this is the symbol `not-in-toc', tags will be removed from table of
  2583. contents entries, but still be shown in the headlines of the document.
  2584. This option can also be set with the +OPTIONS line, e.g. \"tags:nil\"."
  2585. :group 'org-export-general
  2586. :type '(choice
  2587. (const :tag "Off" nil)
  2588. (const :tag "Not in TOC" not-in-toc)
  2589. (const :tag "On" t)))
  2590. (defcustom org-export-with-drawers nil
  2591. "Non-nil means, export with drawers like the property drawer.
  2592. When t, all drawers are exported. This may also be a list of
  2593. drawer names to export."
  2594. :group 'org-export-general
  2595. :type '(choice
  2596. (const :tag "All drawers" t)
  2597. (const :tag "None" nil)
  2598. (repeat :tag "Selected drawers"
  2599. (string :tag "Drawer name"))))
  2600. (defgroup org-export-translation nil
  2601. "Options for translating special ascii sequences for the export backends."
  2602. :tag "Org Export Translation"
  2603. :group 'org-export)
  2604. (defcustom org-export-with-emphasize t
  2605. "Non-nil means, interpret *word*, /word/, and _word_ as emphasized text.
  2606. If the export target supports emphasizing text, the word will be
  2607. typeset in bold, italic, or underlined, respectively. Works only for
  2608. single words, but you can say: I *really* *mean* *this*.
  2609. Not all export backends support this.
  2610. This option can also be set with the +OPTIONS line, e.g. \"*:nil\"."
  2611. :group 'org-export-translation
  2612. :type 'boolean)
  2613. (defcustom org-export-with-footnotes t
  2614. "If nil, export [1] as a footnote marker.