DIRECTORY AdobeOps USING [ARNumber, ARSystemHandle, DependsOnIndex, FieldType, SetOfARs, ToolType, QueryList], AdobeServer USING [StringArray], AdobeToolContext USING [UserContext], AdobeP75V2 USING [Relation], BasicTime USING [GMT], IO USING [STREAM, Value], PFS USING [OpenFile], Rope USING [ROPE], ViewerTools USING [SelPos]; AdobeCommon: CEDAR DEFINITIONS = { Selection: TYPE = RECORD [ num: CARDINAL, ropes: LIST OF Rope.ROPE ]; Selections: TYPE = REF SelectionsSequence; SelectionsSequence: TYPE = MACHINE DEPENDENT RECORD [ seq: PACKED SEQUENCE length: CARDINAL OF Selection ]; ButtonType: TYPE = {string, bounded, number, enumerated}; ARState: TYPE = {Normal, CheckedOut}; DependentsSequence: TYPE = REF DependentsSequenceRec; DependentsSequenceRec: TYPE = MACHINE DEPENDENT RECORD [ seq: PACKED SEQUENCE length: CARDINAL OF EnumeratedTypes ]; EnumeratedTypes: TYPE = REF EnumeratedTypesRec ¬ NIL; EnumeratedTypesRec: TYPE = RECORD [ dependentsSequence: DependentsSequence ¬ NIL, button: REF ANY ¬ NIL, adjButton: REF ANY ¬ NIL, currentHeight: CARD ¬ 1, mainViewer: Handle ¬ NIL, dependentOn: EnumeratedTypes ¬ NIL, controllerOf: REF ANY ¬ NIL, currentMenu: CARDINAL ¬ 0, currentSelection: CARDINAL ¬ 0, allSelections: Selections ¬ NIL, type: AdobeOps.FieldType, stream: IO.STREAM ¬ NIL, boolVal: BOOL ¬ FALSE, maxLength: CARD ¬ 0, defaults: ARRAY AdobeOps.ToolType OF Rope.ROPE, fieldNum: CARD ¬ 0]; ButtonsSeq: TYPE ~ REF ButtonSeqObject; ButtonSeqObject: TYPE ~ MACHINE DEPENDENT RECORD [ seq: PACKED SEQUENCE length: CARDINAL OF EnumeratedTypes ]; SystemType: TYPE = Rope.ROPE; SystemsList: TYPE = LIST OF SystemType; ButtonViewer: TYPE = RECORD [ outer: REF ANY ¬ NIL ]; FieldViewer: TYPE = RECORD [ outer: REF ANY ¬ NIL, buttons: ButtonsSeq ¬ NIL ]; MessageViewer: TYPE = RECORD [ outer: REF ANY ¬ NIL, reportStream: IO.STREAM ¬ NIL ]; Box: TYPE = REF ANY; ReportProc: TYPE = PROCEDURE [h: Handle, format: Rope.ROPE, v1, v2, v3: IO.Value ¬ [null[]]]; AnotherToolProc: TYPE = PROCEDURE [parent: Handle ¬ NIL]; GetContentsProc: TYPE = PROCEDURE [box: Box] RETURNS [r: Rope.ROPE]; GetSelectionContentsProc: TYPE = PROCEDURE [box: Box ¬ NIL] RETURNS [r: Rope.ROPE]; SetContentsProc: TYPE = PROCEDURE [box: Box, r: Rope.ROPE]; SetSelectionProc: TYPE = PROCEDURE [box: Box, selection: ViewerTools.SelPos ¬ NIL]; SetDisplayStyleProc: TYPE = PROCEDURE [box: Box, style: ATOM]; SetIconProc: TYPE = PROCEDURE [h: Handle, function: ATOM]; AddButtonsProc: TYPE = PROCEDURE [h: Handle]; PaintBoxProc: TYPE = PROCEDURE [box: Box, which: ATOM]; ReLabelBoxProc: TYPE = PROCEDURE [box: Box, newLabel: Rope.ROPE]; NewMenuEntryProc: TYPE = PROCEDURE [entryName: Rope.ROPE] RETURNS [REF ANY]; FindMenuEntryProc: TYPE = PROCEDURE [h: Handle, entryName: Rope.ROPE] RETURNS [REF ANY]; ReplaceMenuEntryProc: TYPE = PROCEDURE [h: Handle, menu: REF ANY, oldEntry, newEntry: REF ANY]; InhibitEditsProc: TYPE = PROCEDURE [box: Box]; EnableEditsProc: TYPE = PROCEDURE [box: Box]; PopUpRequestProc: TYPE = PROCEDURE [title: Rope.ROPE, selections: LIST OF Rope.ROPE] RETURNS [INT]; DestroyBoxProc: TYPE = PROCEDURE [h: Handle, box: Box, draw: BOOLEAN ¬ TRUE]; GetBoxGeometryProc: TYPE = PROCEDURE [box: Box] RETURNS [x, y, w, h: INT]; SetBoxGeometryProc: TYPE = PROCEDURE [box: Box, x, y, w, h: INT, draw: BOOL ¬ TRUE]; NewFieldBoxProc: TYPE = PROCEDURE [parent: Box, x, y, w, h: INT, scrollable: BOOL ¬ TRUE, border: BOOL ¬ FALSE] RETURNS [b: Box]; NewLabelBoxProc: TYPE = PROCEDURE [parent: Box, x, y: CARD, name: Rope.ROPE, border: BOOL ¬ FALSE] RETURNS [b: Box]; SetContainerNameProc: TYPE = PROCEDURE [box: Box, name: Rope.ROPE]; SetMainNameProc: TYPE = PROCEDURE [box: Box, name: Rope.ROPE]; GetMainNameProc: TYPE = PROCEDURE [box: Box] RETURNS [name: Rope.ROPE]; MakeButtonProc: TYPE = PROCEDURE [parent: Box, x, y: CARD, name: Rope.ROPE, data: REF ANY , scrollable: BOOLEAN ¬ TRUE, proc: ATOM, cData: REF ANY, paint: BOOL ¬ FALSE] RETURNS [b: Box]; AssistLoginProc: TYPE = PROCEDURE; GetBoxNameProc: TYPE = PROCEDURE [box: Box] RETURNS [name: Rope.ROPE]; XBoundBoxProc: TYPE = PROCEDURE [parent, box: Box]; SetBoxScrollableProc: TYPE = PROCEDURE [box: Box]; Handle: TYPE = REF AdobeViewerDataRec; AdobeViewerDataRec: TYPE = RECORD [ isBusy: BOOL ¬ FALSE, outer: REF ANY ¬ NIL, buttonViewer: ButtonViewer, messageViewer: MessageViewer, fieldViewer: FieldViewer, menu: REF ANY, tool, oldtool: AdobeOps.ToolType ¬ edit, knownSystems: SystemsHandle, --SystemsList ¬ NIL, system, oldsystem: CARDINAL ¬ LAST[CARDINAL], systemName: Rope.ROPE ¬ NIL, unboundFieldHeight: CARD ¬ 3, systemHandle: AdobeOps.ARSystemHandle ¬ NIL, systemMenuItem: REF ANY, currentAR, oldCurrentAR: CARDINAL ¬ 0, currentARState: ARState ¬ Normal, useQLButton, overwriteButton, formatButton: REF ANY ¬ NIL, controlButtons: ControlSeq ¬ NIL, editors: ARRAY[1..4] OF REF ANY ¬ ALL[NIL], context: AdobeToolContext.UserContext ¬ NIL, ARFile: PFS.OpenFile ¬ NIL, instanceData: REF ANY ¬ NIL, report: ReportProc, getContents: GetContentsProc, getSelectionContents: GetSelectionContentsProc, setContents: SetContentsProc, setSelection: SetSelectionProc, setDisplayStyle: SetDisplayStyleProc, setIcon: SetIconProc, addButtons: AddButtonsProc, paintBox: PaintBoxProc, popUpRequest: PopUpRequestProc, reLabelBox: ReLabelBoxProc, newMenuEntry: NewMenuEntryProc, findMenuEntry: FindMenuEntryProc, replaceMenuEntry: ReplaceMenuEntryProc, makeAnotherTool: AnotherToolProc, inhibitEdits: InhibitEditsProc, enableEdits: EnableEditsProc, getBoxGeometry: GetBoxGeometryProc, setBoxGeometry: SetBoxGeometryProc, getBoxName: GetBoxNameProc, destroyBox: DestroyBoxProc, setBoxScrollable: SetBoxScrollableProc, xBoundBox: XBoundBoxProc, newFieldBox: NewFieldBoxProc, newLabelBox: NewLabelBoxProc, setContainerName: SetContainerNameProc, setMainName: SetMainNameProc, getMainName: GetMainNameProc, makeButton: MakeButtonProc, assistLogin: AssistLoginProc, extraData: REF ANY ¬ NIL ]; ControlSeq: TYPE ~ REF ControlSeqRec ¬ NIL; ControlSeqRec: TYPE = RECORD[ SEQUENCE len: CARD OF REF ANY]; SystemsHandle: TYPE = REF Systems ¬ NIL; Systems: TYPE = RECORD[ next: CARDINAL ¬ 0, system: REF SysList]; SysList: TYPE = RECORD[SEQUENCE maxLength: CARDINAL OF Rope.ROPE]; SysDescPtr: TYPE = REF SysDesc; SysDesc: TYPE = RECORD[ arSH: AdobeOps.ARSystemHandle ¬ NIL, nextNode: SysDescPtr ¬ NIL]; LockedSysDescPtr: TYPE = REF LockedPtr; LockedPtr: TYPE = MONITORED RECORD[ nodePtr: SysDescPtr]; StringArray: TYPE = AdobeServer.StringArray; DataHandle: TYPE = REF Data; Data: TYPE = RECORD [ window: REF ANY ¬ NIL, msgSW: REF ANY ¬ NIL, cmdSW: REF ANY ¬ NIL, tool: AdobeOps.ToolType ¬ submit, knownSystems: SystemsHandle ¬ NIL, system: CARDINAL ¬ LAST[CARDINAL], newSystem: Rope.ROPE ¬ NIL, changingSystem: BOOLEAN ¬ FALSE, isBusy: BOOLEAN ¬ FALSE, dontCleanUp: BOOLEAN ¬ FALSE, heap: UNCOUNTED ZONE ¬ NIL, context: AdobeToolContext.UserContext ¬ NIL, instanceData: REF ANY ¬ NIL]; ReportFields: TYPE = REF ReportFieldsSeq; ReportFieldsSeq: TYPE = RECORD [ seq: SEQUENCE length: CARDINAL OF BOOLEAN]; OrderInfo: TYPE = REF OrderInfoObject; OrderInfoObject: TYPE = RECORD [ widths: SEQUENCE length: CARDINAL OF OrderItem]; OrderItem: TYPE = RECORD [ flName: Rope.ROPE ¬ NIL, flIndex: CARDINAL ¬ 0, colWidth: CARDINAL ¬ 0, colIndex: CARDINAL ¬ 0]; RowBuffer: TYPE = REF RowBufferRec; RowBufferRec: TYPE = RECORD [s: Rope.ROPE ¬ NIL, next: RowBuffer ¬ NIL]; TemplateEntry: TYPE = {fixed, variable, string}; Template: TYPE = REF TemplateObject; TemplateObject: TYPE = RECORD [ next: Template ¬ NIL, body: SELECT type: TemplateEntry FROM fixed => [width: CARDINAL ¬ 0], variable => NULL, string => [ s: Rope.ROPE ¬ NIL, suppressFieldName: BOOLEAN ¬ FALSE, nameStart, nameLength: CARDINAL ¬ 0], ENDCASE]; FormatType: TYPE = {plain, columns, template}; SetStatus: TYPE = RECORD [runOffset, setIndex: CARDINAL]; InitialSetStatus: SetStatus = [LAST[CARDINAL], LAST[CARDINAL]]; ColSpace: CARDINAL = 2; ValidRelations: TYPE = ARRAY AdobeOps.FieldType OF Operations; Operations: TYPE = PACKED ARRAY AdobeP75V2.Relation OF BOOLEAN; validRelations: ValidRelations = [ arId: [equal: TRUE, notEqual: TRUE, lessThan: TRUE, lessThanOrEqual: TRUE, greaterThan: TRUE, greaterThanOrEqual: TRUE, in: FALSE, notIn: FALSE], dateTime: [equal: TRUE, notEqual: TRUE, lessThan: TRUE, lessThanOrEqual: TRUE, greaterThan: TRUE, greaterThanOrEqual: TRUE, in: FALSE, notIn: FALSE], numeric: [equal: TRUE, notEqual: TRUE, lessThan: TRUE, lessThanOrEqual: TRUE, greaterThan: TRUE, greaterThanOrEqual: TRUE, in: FALSE, notIn: FALSE], fixedLengthString: [equal: TRUE, notEqual: TRUE, lessThan: FALSE, lessThanOrEqual: FALSE, greaterThan: FALSE, greaterThanOrEqual: FALSE, in: TRUE, notIn: TRUE], enumerated: [equal: TRUE, notEqual: TRUE, lessThan: FALSE, lessThanOrEqual: FALSE, greaterThan: FALSE, greaterThanOrEqual: FALSE, in: FALSE, notIn: FALSE], string: ALL[FALSE]]; --procedures NoCredentials: ERROR; CatchErrors: PROCEDURE[ h: Handle, --item: FormSW.ItemHandle, index: CARDINAL, --windowData: DataHandle, --proc: PROC[h: Handle]]; EnableAdobeAborts: PROCEDURE[w: REF ANY]; DisableAdobeAborts: PROCEDURE[w: REF ANY]; SetFSWOrderAndDefaultFromUserFile: PROCEDURE[systemName: Rope.ROPE, arSH: AdobeOps.ARSystemHandle, server: Rope.ROPE]; GetFullLoginName: PROCEDURE [h: Handle ¬ NIL] RETURNS [loginName: Rope.ROPE]; GetData: PROCEDURE[w: REF ANY] RETURNS [Handle]; GetDataSW: PROCEDURE[sw: REF ANY] RETURNS [Handle]; CreateOtherSWs: PROCEDURE[w: Handle, makeCmdSW: BOOLEAN ¬ TRUE]; DestroyOtherSWs: PROCEDURE[data: Handle, killCmdSW: BOOLEAN ¬ TRUE]; ChangeFormSW: PROCEDURE[w: REF ANY]; PostMessage: PROCEDURE [handle: Handle, postCR: BOOL, message: Rope.ROPE]; PostNumber: PROCEDURE[sw: Handle, postCR: BOOLEAN, number: CARD]; SearchKnownSysDescList: PROCEDURE[head: LockedSysDescPtr, systemName: Rope.ROPE] RETURNS[arSH: AdobeOps.ARSystemHandle ¬ NIL]; AddToKnownSysDescList: PROCEDURE[head: LockedSysDescPtr, arSH: AdobeOps.ARSystemHandle]; DeleteSysDescList: PROCEDURE[head: LockedSysDescPtr] RETURNS[nilHead: LockedSysDescPtr ¬ NIL]; GetDescList: PROCEDURE RETURNS [LockedSysDescPtr]; FindSystem: PROCEDURE[head: LockedSysDescPtr, toolData: Handle, systemName: Rope.ROPE, useDescList: BOOLEAN] RETURNS [arSH: AdobeOps.ARSystemHandle]; AdobeTimeRope: PROCEDURE [time: BasicTime.GMT] RETURNS [timeRope: Rope.ROPE]; ChangeSystem: PROCEDURE [toolData: Handle, systemIndex: CARDINAL, useDescList: BOOLEAN]; LocateSystemInKnownSystems: PROCEDURE[name: Rope.ROPE,systems: SystemsHandle] RETURNS[system: CARDINAL]; AddSystemToKnownSystems: PROCEDURE[name: Rope.ROPE, systems: SystemsHandle]; RemoveSystemFromKnownSystems: PROCEDURE[name: Rope.ROPE, systems: SystemsHandle]; AllocateKnownSystems: PROCEDURE[oldSeq: SystemsHandle] RETURNS[newSeq: SystemsHandle]; --Procedures for QueryLists FreeHintStrings: PROCEDURE; --should work for any hint menu. CountARs: PROCEDURE [set: AdobeOps.SetOfARs] RETURNS [n: CARDINAL]; --counts the number of ars in a query list. GetNextAR: PROCEDURE[set: AdobeOps.SetOfARs, current: SetStatus] RETURNS[nextAR: AdobeOps.ARNumber, newStatus: SetStatus];--get next ar in query list/SetOfARs GetPreviousAR: PROCEDURE[set: AdobeOps.SetOfARs, current: SetStatus] RETURNS[nextAR: AdobeOps.ARNumber, newStatus: SetStatus];--get previous ar in query list/SetOfARs FindThisQL: PROCEDURE[qlName: Rope.ROPE, arSH: Handle] RETURNS [qlHandle: AdobeOps.QueryList];--get queryList given name AndSets: PROCEDURE[set1, set2: AdobeOps.SetOfARs] RETURNS [resultSet: AdobeOps.SetOfARs];--ANDs set1 and set2 and returns the resulting set OrSets: PROCEDURE[set1, set2: AdobeOps.SetOfARs] RETURNS[resultSet: AdobeOps.SetOfARs];--ORs set1 and set2 and returns the resulting set AddToSet: PROCEDURE[arNum: AdobeOps.ARNumber, set: REF AdobeOps.SetOfARs, lastRef: CARDINAL] RETURNS[thisRef: CARDINAL];--adds arNum to set GrowSet: PROCEDURE [oldSet: REF AdobeOps.SetOfARs]; AddToOtherQLList: PROCEDURE [arSH: AdobeOps.ARSystemHandle, ql: AdobeOps.QueryList];--adds ql to otherQLs of the arSH --Procedure to reset dependent enumerated item after item it depends on has been changed SetChoicesForEnumerated: PROCEDURE[--sw: Window.Handle, --windowData: Handle, itemIndex: CARDINAL, fli: AdobeOps.DependsOnIndex, displayIndex: CARDINAL, reset: BOOLEAN]; }. n AdobeCommonInternal.mesa Copyright Σ 1990, 1991, 1992 by Xerox Corporation. All rights reserved. Philip James, March 10, 1992 2:23 pm PST Menus.Menu _ NIL, newSystem: LONG STRING _ NIL, system, oldsystem: SystemType _ NIL, Menus.MenuEntry _ NIL, lastButton: ViewerClasses.Viewer _ NIL, deacAgent: Supervisor.SubsystemHandle, logonAgent: Supervisor.SubsystemHandle, swapAgent: Supervisor.SubsystemHandle, processID: PROCESS, systemMenu: Menu.Handle _ NIL, accessSession: ARAccess.Session _ NIL, non-specific pointer to allow other tools implemented on Adobe's interfaces to define their own instanceData constants , v1, v2, v3: IO.Value _ [null[]]]; Routine to change systems Routines to manage known systems QLNameHints: Buttons.ButtonProc; --provides list of available query lists FindSystem: PROCEDURE[systemName: Rope.ROPE] RETURNS [arSH: AdobeOps.ARSystemHandle]; ΚΥ–(cedarcode) style•NewlineDelimiter ™šœ™Jšœ Οeœ<™GJ™(—Icode˜šΟk œ˜ Kšœ žœV˜dKšœ žœ˜ Kšœžœ˜%Kšœ žœ ˜Kšœ žœžœ˜Kšžœžœžœ ˜Kšžœžœ ˜Kšœžœžœ˜Kšœ žœ ˜K˜—šΟn œžœž œ˜"K˜šœ žœžœ˜Kšœžœ˜Kšœžœžœž˜K˜—Kšœ žœžœ˜*š œžœžœž œžœ˜5Kš œžœžœ žœžœ ˜2K˜—K˜Kšœ žœ)˜9Kšœ žœ˜%K˜Kšœžœžœ˜5š œžœžœž œžœ˜8Kš œžœžœ žœžœ˜8K˜K˜—Kšœžœžœžœ˜5šœžœžœ˜#Kšœ)žœ˜-Kšœžœžœžœ˜Kšœ žœžœžœ˜Kšœžœ˜Kšœžœ˜Kšœžœ˜#Kšœžœžœžœ˜Kšœ žœ˜Kšœžœ˜Kšœžœ˜ K˜Kšœžœžœž˜Kšœ žœž˜Kšœ žœ˜Kšœ žœžœžœ˜/Kšœ žœ˜K˜—Kšœ žœžœ˜'š œžœžœž œžœ˜2Kš œžœžœ žœžœ˜8K˜—K˜Kšœ žœžœ˜Kšœ žœžœžœ ˜'K˜šœžœžœ˜Kšœžœžœž˜K˜—K˜šœ žœžœ˜Kšœžœžœžœ˜Kšœž˜K˜—K˜šœžœžœ˜Kšœžœžœžœ˜Kšœžœžœž˜K˜—K˜Kšœžœžœžœ˜K˜Kš œ žœž œžœžœ˜]Kšœžœž œžœ˜9Kš œžœž œ žœ žœ˜DKš œžœž œ žœžœ žœ˜SKšœžœž œžœ˜;Kšœžœž œ,žœ˜SKšœžœž œžœ˜>Kšœ žœž œžœ˜:Kšœžœž œ ˜-Kšœžœž œžœ˜7Kšœžœž œžœ˜AKš œžœž œžœžœžœžœ˜LKš œžœž œžœžœžœžœ˜XKš œžœž œžœžœžœžœ˜_Kšœžœž œ ˜.Kšœžœž œ ˜-Kšœžœž œžœžœžœžœžœžœ˜cKš œžœž œžœžœ˜MKš œžœž œ žœžœ˜JKš œžœž œžœžœžœ˜TKšœžœž œžœžœžœ žœžœžœ ˜Kšœžœž œžœ žœ žœžœžœ ˜tKšœžœž œžœ˜CKšœžœž œžœ˜>Kš œžœž œ žœ žœ˜GKšœžœž œžœ žœžœžœžœžœžœ žœžœ žœžœžœ ˜ΊKšœžœž œ˜"Kš œžœž œ žœ žœ˜FKšœžœž œ˜3Kšœžœž œ ˜2K˜Kšœžœžœ˜&šœžœžœ˜#Kšœžœžœ˜Kšœžœžœžœ˜K˜K˜K˜šœžœžœ˜Jšœ™—K˜(KšΟrΠcrœ‘˜1Kšœžœžœžœ˜-Kšœžœžœ˜Kšœžœ˜Jšœ™Jšœ žœ™$Kšœ(žœ˜,šœžœžœ˜Jšœ™—Kšœžœ˜&K˜!Jšœ#žœ™'Kšœ,žœžœžœ˜:Kšœžœ˜!Kš œ žœžœžœžœžœžœ˜+Kšœ(žœ˜,Kšœžœ žœ˜Kšœžœžœž˜K˜K˜K˜/K˜K˜K˜%Kšœ˜Kšœ˜Kšœ˜Kšœ˜Kšœ˜Kšœ˜Kšœ!˜!Kšœ'˜'K˜!K˜K˜Kšœ#˜#Kšœ#˜#Kšœ˜Kšœ˜Kšœ'˜'Kšœ˜Kšœ˜Kšœ˜Kšœ'˜'Kšœ˜Kšœ˜K˜K˜Kšœ žœžœž˜K˜—K˜Kšœ žœžœžœ˜+šœžœžœ˜Kš žœžœžœžœžœ˜—Kšœžœžœ žœ˜(šœ žœžœ˜Kšœžœ˜Kšœžœ ˜—Kš œ žœžœžœ žœžœžœ˜BK˜Kšœ žœžœ ˜šœ žœžœ˜Kšœ žœ˜$Kšœžœ˜—Kšœžœžœ ˜'šœ žœž œžœ˜#K˜—K˜Kšœ žœ˜,K˜Kšœ žœžœ˜šœžœžœ˜Kšœžœžœžœ˜Kšœžœžœžœ˜Kšœžœžœžœ˜Jšœ&™&Jšœ'™'Jšœ&™&Jšœ™K˜!Kšœžœ˜"Kšœžœžœžœ˜"Kšœžœžœ˜Jšœ™Kšœžœžœ˜ Kšœžœžœ˜Kšœ žœžœ˜Kšœž œžœžœ˜K˜,Jšœ&™&Jšœ@™@Jšœ+™+Kšœžœžœžœ˜—K˜Kšœžœžœ˜)šœžœžœ˜ Kš œžœ žœžœžœ˜+—Kšœ žœžœ˜&šœžœžœ˜ Kšœžœ žœžœ ˜0—šœ žœžœ˜Kšœ žœžœ˜Kšœ žœ˜Kšœ žœ˜Kšœ žœ˜—Kšœ žœžœ˜#Kš œžœžœ žœžœžœ˜HKšœžœ˜0Kšœ žœžœ˜$šœžœžœ˜Kšœžœ˜Kšœžœž˜%Kšœžœ˜Kšœ žœ˜Kš œžœžœžœžœžœ˜kKšžœ˜ —Kšœ žœ˜.Kšœ žœžœžœ˜9K˜Jšœ ™ Kš Ÿœžœžœžœžœ˜?KšŸœžœ˜K˜Kšœžœžœžœ ˜>Kš œ žœžœžœžœžœ˜?K˜˜"Kšœžœ žœ žœžœžœžœžœ žœ˜‘Kšœžœ žœ žœžœžœžœžœ žœ˜•Kšœžœ žœ žœžœžœžœžœ žœ˜”Kšœžœ žœ žœžœžœžœžœ žœ˜ Kšœžœ žœ žœžœžœžœžœ žœ˜›Kšœžœžœ˜—K˜K˜ K˜KšŸ œžœ˜K˜Kš Ÿ œž œ Οc+œ’œžœ ˜‚K˜KšŸœž œžœžœ˜)KšŸœž œžœžœ˜*K˜KšŸ!œž œžœ.žœ˜vK˜Kš Ÿœž œžœžœžœ˜MKš Ÿœž œžœžœžœ ˜0Kš Ÿ œž œžœžœžœ ˜3K˜KšŸœž œžœžœ˜@KšŸœž œžœžœ˜DKšŸ œž œžœžœ˜$K˜KšŸ œž œžœžœ˜JJšœžœ™#KšŸ œž œžœ žœ˜AK˜Kš Ÿœž œ*žœžœ!žœ˜~KšŸœž œ8˜XKšŸœž œžœžœ˜^KšŸ œž œžœ˜2Kš Ÿ œž œ<žœžœžœ!˜•Kš Ÿ œž œžœžœžœ˜MJšœ™KšŸ œž œ!žœžœ˜YK˜Jšœ"™"Kš Ÿœž œ žœžœ žœ˜hKšŸœž œ žœ˜LKšŸœž œ žœ˜RKšŸœž œžœ˜WK˜K˜JšŸ œ’(™IKšŸœž œ’ ˜