431:. Flyweight objects are divided into two components: an invariant component that is shared between all flyweight objects; and a variant, decorated component that may be partially shared or completely unshared. This partitioning of the flyweight object is intended to reduce memory consumption. The decorators are typically cached and reused as well. The decorators will all contain a common reference to the shared, invariant object. If the decorated state is only partially variant, then the decorators can also be shared to some degree - though care must be taken not to alter their state while they're being used. iOS's UITableView implements the flyweight pattern in this manner - a tableview's reusable cells are decorators that contains a references to a common tableview row object, and the cells are cached / reused.
477:. A facade is designed to simply interface with the complex system it encapsulates, but it does not add functionality to the system. However, the wrapping of a complex system provides a space that may be used to introduce new functionality based on the coordination of subcomponents in the system. For example, a facade pattern may unify many different languages dictionaries under one multi-language dictionary interface. The new interface may also provide new functions for translating words between languages. This is a hybrid pattern - the unified interface provides a space for augmentation. Think of decorators as not being limited to wrapping individual objects, but capable of wrapping clusters of objects in this hybrid approach as well.
130:
294:
277:, classes cannot be created at runtime, and it is typically not possible to predict, at design time, what combinations of extensions will be needed. This would mean that a new class would have to be made for every possible combination. By contrast, decorators are objects, created at runtime, and can be combined on a per-use basis. The I/O Streams implementations of both
405:. For example, a text editing application might have a button to highlight text. On button press, the individual text glyphs currently selected will all be wrapped in decorators that modify their draw() function, causing them to be drawn in a highlighted manner (a real implementation would probably also use a demarcation system to maximize efficiency).
461:
networks of multiple inheritance, which is memory-inefficient and at a certain point just cannot scale. Likewise, attempting to implement the same functionality with properties bloats each instance of the object with unnecessary properties. For the above reasons decorators are often considered a memory-efficient alternative to subclassing.
460:
rather than a top-down, hierarchical approach to extending functionality. A decorator makes it possible to add or alter behavior of an interface at run-time. They can be used to wrap objects in a multilayered, arbitrary combination of ways. Doing the same with subclasses means implementing complex
8050:
The
Decorator Pattern is a pattern described in the Design Patterns Book. It is a way of apparently modifying an object's behavior, by enclosing it inside a decorating object with a similar interface. This is not to be confused with Python Decorators, which is a language feature for dynamically
412:
can be implemented using decorators instead of subclassed objects encapsulating the changing functionality. The use of decorators in this manner makes the State object's internal state and functionality more compositional and capable of handling arbitrary complexity.
364:
can decorate existing windows. If the functionality needs to be added to all
Windows, the base class can be modified. On the other hand, sometimes (e.g., using external frameworks) it is not possible, legal, or convenient to modify the base class.
439:
Applying combinations of decorators in diverse ways to a collection of objects introduces some problems interfacing with the collection in a way that takes full advantage of the functionality added by the decorators. The use of an
464:
Decorators can also be used to specialize objects which are not subclassable, whose characteristics need to be altered at runtime (as mentioned elsewhere), or generally objects that are lacking in some needed functionality.
54:, by allowing the functionality of a class to be extended without being modified. Decorator use can be more efficient than subclassing, because an object's behavior can be augmented without defining an entirely new object.
551:
2201:
Two options are presented here: first, a dynamic, runtime-composable decorator (has issues with calling decorated functions unless proxied explicitly) and a decorator that uses mixin inheritance.
232:
Note that decorators and the original class object share a common set of features. In the previous diagram, the operation() method was available in both the decorated and undecorated versions.
72:; these describe how to solve recurring design problems and design flexible and reusable object-oriented software—that is, objects which are easier to implement, change, test, and reuse.
448:
patterns can be useful in such cases. Interfacing with multiple layers of decorators poses additional challenges and logic of
Adapters and Visitors must be designed to account for that.
408:
Applying or removing decorators based on changes in state is another common use case. Depending on the scope of the state, decorators can be applied or removed in bulk. Similarly, the
88:
When using subclassing, different subclasses extend a class in different ways. But an extension is bound to the class at compile-time and can't be changed at run-time.
229:
This pattern is designed so that multiple decorators can be stacked on top of each other, each time adding a new functionality to the overridden method(s).
4857:
The next Java example illustrates the use of decorators using coffee making scenario. In this example, the scenario only includes cost and ingredients.
9734:
9689:
9671:
340:
subclass now poses a problem, because it has effectively created a new kind of window. If one wishes to add border support to many but not
3521:
This example demonstrates a static
Decorator implementation, which is possible due to C++ ability to inherit from the template argument.
9886:
207:
8039:
The
Decorator Pattern (or an implementation of this design pattern in Python - as the above example) should not be confused with
4710:
The output of this program is "simple window, including vertical scrollbars, including horizontal scrollbars". Notice how the
9786:
141:
The decorator pattern can be used to extend (decorate) the functionality of a certain object statically, or in some cases at
274:
278:
401:
Adding or removing decorators on command (like a button press) is a common UI pattern, often implemented along with the
10411:
9853:
352:, etc. This problem gets worse with every new feature or window subtype to be added. For the decorator solution, a new
263:
142:
5473:
instance which is fully decorated (with milk and sprinkles), and calculate cost of coffee and prints its ingredients:
243:) or class inheritance which is shared by the decorators and the decorated object. In the previous example, the class
10519:
10436:
9718:
9655:
35:
9586:
Cost: 1.0; Ingredients: Coffee Cost: 1.5; Ingredients: Coffee, Milk Cost: 1.7; Ingredients: Coffee, Milk, Sprinkles
8538:
Cost: 1.0; Ingredients: Coffee Cost: 1.5; Ingredients: Coffee, Milk Cost: 1.7; Ingredients: Coffee, Milk, Sprinkles
8040:
5711:
Cost: 1.0; Ingredients: Coffee Cost: 1.5; Ingredients: Coffee, Milk Cost: 1.7; Ingredients: Coffee, Milk, Sprinkles
20:
10384:
10209:
10008:
490:
47:
9772:
Freeman, Eric; Freeman, Elisabeth; Sierra, Kathy; Bates, Bert (2004). Hendrickson, Mike; Loukides, Mike (eds.).
10102:
4586:
instance which is fully decorated (i.e., with vertical and horizontal scrollbars), and prints its description:
10232:
10192:
9879:
10202:
10197:
457:
240:
235:
The decoration features (e.g., methods, properties, or other members) are usually defined by an interface,
50:, as it allows functionality to be divided between classes with unique areas of concern as well as to the
10477:
10315:
9615:
317:
interface, and assume this class has no functionality for adding scrollbars. One could create a subclass
255:
27:
10092:
9773:
10300:
10295:
10122:
559:
262:, and the change affects all instances of the original class; decorating can provide new behavior at
134:
39:
10340:
10305:
10272:
9922:
9872:
146:
43:
9675:
3964:
The following Java example illustrates the use of decorators using the window/scrolling scenario.
10242:
10214:
10152:
10137:
10117:
10053:
9895:
10219:
10147:
10097:
9932:
9710:
9704:
9647:
9641:
10498:
10401:
10247:
10227:
10172:
51:
10310:
10267:
10262:
10252:
10162:
8:
10350:
10335:
10330:
10187:
10072:
10018:
4823:"simple window, including vertical scrollbars, including horizontal scrollbars"
550:
81:
Responsibilities should be added to (and removed from) an object dynamically at run-time.
9702:
332:
Now, assume one also desires the ability to add borders to windows. Again, the original
157:
the original class. This wrapping could be achieved by the following sequence of steps:
10472:
10451:
10360:
10257:
10107:
10000:
9952:
9914:
9728:
149:, provided some groundwork is done at design time. This is achieved by designing a new
6647:, shows us how to pipeline decorators to dynamically add many behaviors in an object:
10142:
9985:
9970:
9942:
9937:
9859:
9782:
9714:
9651:
9595:
428:
422:
84:
A flexible alternative to subclassing for extending functionality should be provided.
4862:// The interface Coffee defines the functionality of Coffee implemented by decorator
10441:
10182:
10127:
10048:
10038:
10028:
10023:
9620:
9610:
302:
516:
Converts one interface to another so that it matches what the client is expecting
489:
can be used when the wrapper must respect a particular interface and must support
388:
method that are required in this scenario, in order to decorate a window control.
10431:
10377:
10355:
10132:
10087:
10058:
10033:
10013:
9960:
9927:
9903:
9600:
9229:$ "Bike: '{upgraded.GetDetails()}' Cost: {upgraded.GetPrice()}"
511:
486:
445:
441:
402:
154:
68:
9832:
6644:
247:
is inherited by both the
ConcreteComponent and the subclasses that descend from
10416:
10277:
9980:
9965:
9605:
4814:// assert that the description indeed includes horizontal + vertical scrollbars
529:
524:
Dynamically adds responsibility to the interface by wrapping the original code
494:
474:
282:
9808:
9748:
4418:// The second concrete decorator which adds horizontal scrollbar functionality
129:
10513:
10237:
10082:
10043:
9990:
562:
409:
42:, dynamically, without affecting the behavior of other instances of the same
10493:
10456:
10345:
10320:
10112:
9864:
4256:// The first concrete decorator which adds vertical scrollbar functionality
554:
A sample UML class and sequence diagram for the
Decorator design pattern.
259:
681:
This implementation is based on the pre C++98 implementation in the book.
313:
to it, as appropriate. Assume windows are represented by instances of the
119:
objects to extend the functionality of an object dynamically at run-time.
10446:
10421:
10406:
10325:
10157:
293:
497:
when an easier or simpler interface to an underlying object is desired.
5005:// Abstract decorator class - note that it implements Coffee interface
10426:
9749:"The Decorator design pattern - Problem, Solution, and Applicability"
9690:"The Decorator Pattern, Why We Stopped Using It, and the Alternative"
310:
309:
of the window's contents, one may wish to add horizontal or vertical
306:
9246:
Bike: 'Aluminium Bike + Sport
Package + Security Package' Cost: 111
6655:
Demonstrated decorators in a world of a 10x10 grid of values 0-255.
4630:// Create a decorated Window with horizontal and vertical scrollbars
111:
perform additional functionality before/after forwarding a request.
9860:
Decorator pattern description from the
Portland Pattern Repository
2190:
9703:
Erich Gamma, Richard Helm, Ralph
Johnson, John Vlissides (1994).
9706:
Design Patterns: Elements of Reusable Object-Oriented Software
4725:
Below is the JUnit test class for the Test Driven Development
269:
This difference becomes most important when there are several
4910:// Extension of a simple coffee without any extra ingredients
236:
9809:"The Decorator design pattern - Structure and Collaboration"
4097:// abstract decorator class - note that it implements Window
3959:
104:
implement the interface of the extended (decorated) object (
46:. The decorator pattern is often useful for adhering to the
9646:. Reading, MA: Addison-Wesley Publishing Co, Inc. pp.
8043:, a language feature of Python. They are different things.
4011:// Implementation of a simple Window without any scrollbars
610:
The sequence diagram shows the run-time interactions: The
434:
4852:
4714:
method of the two decorators first retrieve the decorated
9771:
5239:// Overriding methods defined in the abstract superclass
5317:// Decorator WithSprinkles mixes sprinkles onto coffee.
3516:
329:
objects. At this point, either solution would be fine.
9781:. Vol. 1. O'Reilly. pp. 243, 252, 258, 260.
5000:
classes, including the decorator classes themselves.
4996:
The following classes contain the decorators for all
4092:
classes, including the decorator classes themselves.
4088:
The following classes contain the decorators for all
66:
design pattern is one of the twenty-three well-known
121:See also the UML class and sequence diagram below.
91:
38:that allows behavior to be added to an individual
545:
10511:
485:As an alternative to the decorator pattern, the
108:) transparently by forwarding all requests to it
145:, independently of other instances of the same
225:method(s) whose behavior needs to be modified.
75:
9880:
5164:// Decorator WithMilk mixes milk into coffee.
4568:", including horizontal scrollbars"
480:
416:
221:In the ConcreteDecorator class, override any
16:Design pattern in object-oriented programming
9894:
9733:: CS1 maint: multiple names: authors list (
5708:The output of this program is given below:
4406:", including vertical scrollbars"
608:(before/after forwarding a request to it).
473:The decorator pattern also can augment the
254:The decorator pattern is an alternative to
9887:
9873:
468:
451:
7915:# Now, build up a pipeline of decorators:
6643:The following Python example, taken from
3960:First example (window/scrolling scenario)
622:objects to extend the functionality of a
325:that adds this functionality to existing
273:ways of extending functionality. In some
5104:// Implementing methods of the interface
4904:// Returns the ingredients of the coffee
549:
435:Obstacles of interfacing with decorators
292:
128:
4853:Second example (coffee making scenario)
10512:
9672:"How to Implement a Decorator Pattern"
4005:// Returns a description of the Window
585:transparent (invisible) to clients of
396:
301:As an example, consider a window in a
9868:
9639:
5469:Here's a test program that creates a
4669:// Print the Window's description
4582:Here's a test program that creates a
427:Decoration is also often used in the
275:object-oriented programming languages
21:the concept of "decorators" in Python
3517:Static Decorator (Mixin Inheritance)
2204:
1247:", with milk of richness "
344:windows, one must create subclasses
5320:// Note it extends CoffeeDecorator.
5167:// Note it extends CoffeeDecorator.
577:) and forwards all requests to it (
285:incorporate the decorator pattern.
115:This allows working with different
13:
9696:
9640:Gamma, Erich; et al. (1995).
391:
297:UML diagram for the window example
14:
10531:
9847:
4889:// Returns the cost of the coffee
3079:"authentification done"
761:// Drinks which can be decorated.
652:after forwarding the request to
600:) implement additional behavior (
9833:"DecoratorPattern - Python Wiki"
4526:// Draw the horizontal scrollbar
2189:Full example can be tested on a
640:, which forwards the request to
534:Provides a simplified interface
321:that provides them, or create a
10385:Enterprise Integration Patterns
8938:" + Security Package"
3619:"A circle of radius "
2376:"A circle of radius "
356:is created. Any combination of
258:. Subclassing adds behavior at
92:What solution does it describe?
48:Single Responsibility Principle
9825:
9801:
9765:
9741:
9682:
9664:
9633:
8092:# Extension of a simple coffee
8051:modifying a function or class.
6645:Python Wiki - DecoratorPattern
4364:// Draw the vertical scrollbar
3784:" which is colored "
2550:" which is colored "
604:) that should be added to the
546:UML class and sequence diagram
195:constructor to initialize the
1:
9626:
4733:org.junit.Assert.assertEquals
4133:// the Window being decorated
3969:// The Window interface class
569:class maintains a reference (
380:interface, which defines the
368:In the previous example, the
288:
9076:" + Sport Package"
6633://Client: 2000
4790:HorizontalScrollBarDecorator
4645:HorizontalScrollBarDecorator
4439:HorizontalScrollBarDecorator
4424:HorizontalScrollBarDecorator
1631:" spoons of sugar"
573:) to the decorated object (
540:
7:
10478:Portland Pattern Repository
9709:. Addison Wesley. pp.
9616:Aspect-oriented programming
9589:
8046:Second to the Python Wiki:
6630://Concrete Decorator 2: 500
6627://Concrete Decorator 1: 500
6288:"Concrete Decorator 2:
6084:"Concrete Decorator 1:
5556:"; Ingredients: "
3238:"authorized done"
2083:The program output is like
818:"Drinking Coffee"
671:
76:What problems can it solve?
57:
28:object-oriented programming
10:
10536:
9775:Head First Design Patterns
8644:"Aluminium Bike"
8055:
7063:# yes: these are all 10x10
6624://Concrete Component: 1000
4799:VerticalScrollBarDecorator
4654:VerticalScrollBarDecorator
4277:VerticalScrollBarDecorator
4262:VerticalScrollBarDecorator
2815:"Basic WEB page"
481:Alternatives to Decorators
420:
417:Usage in Flyweight objects
336:class has no support. The
18:
10486:
10465:
10394:
10369:
10286:
10171:
10071:
9999:
9951:
9913:
9902:
6638:
5844:"Concrete Component:
4074:"simple window"
884:"Drinking Soda"
350:ScrollingWindowWithBorder
124:
10520:Software design patterns
10103:Event-based asynchronous
9896:Software design patterns
9256:
8545:
8059:
6649:
5718:
5475:
5002:
4859:
4727:
4588:
4094:
3966:
3523:
2683:
2208:
2196:
2085:
683:
429:Flyweight design pattern
358:ScrollingWindowDecorator
323:ScrollingWindowDecorator
169:class (see UML diagram);
19:Not to be confused with
10009:Chain of responsibility
9481:", Sprinkles"
9252:
8332:", Sprinkles"
5455:", Sprinkles"
4769:testWindowDecoratorTest
4517:drawHorizontalScrollBar
4502:drawHorizontalScrollBar
3954:
469:Usage in enhancing APIs
452:Architectural relevance
362:BorderedWindowDecorator
354:BorderedWindowDecorator
10148:Scheduled-task pattern
10098:Double-checked locking
9856:implementation in Java
8053:
5714:
1445:" ice cubes"
698:// Beverage interface.
676:
614:object works through
555:
403:Command design pattern
376:classes implement the
298:
266:for selected objects.
161:Subclass the original
138:
10499:Architectural pattern
10402:Christopher Alexander
8541:
8048:
6621:// Result: #quanton81
4355:drawVerticalScrollBar
4340:drawVerticalScrollBar
579:component.operation()
553:
456:Decorators support a
296:
132:
52:Open-Closed Principle
10311:Dependency injection
10268:Inversion of control
10263:Data transfer object
10163:Thread-local storage
8140:# Abstract decorator
3439:AuthenticatedWebPage
2995:AuthenticatedWebPage
2983:AuthenticatedWebPage
410:State design pattern
10316:Intercepting filter
8008:VisibilityDecorator
7714:VisibilityDecorator
4754:WindowDecoratorTest
4718:'s description and
4597:DecoratedWindowTest
4463:windowToBeDecorated
4448:windowToBeDecorated
4301:windowToBeDecorated
4286:windowToBeDecorated
4235:windowToBeDecorated
4196:windowToBeDecorated
4169:windowToBeDecorated
4163:windowToBeDecorated
4148:windowToBeDecorated
4127:windowToBeDecorated
3993:// Draws the Window
1619:", with "
1433:", with "
664:and returns to the
397:Applying decorators
180:pointer as a field;
10473:The Hillside Group
10258:Data access object
10108:Guarded suspension
10093:Binding properties
9412:", Milk"
9343:"Coffee"
8707:"Carbon"
8551:WikiDesignPatterns
8275:", Milk"
8131:"Coffee"
6658:"""
6652:"""
6579:ConcreteDecorator2
6558:ConcreteDecorator1
6174:ConcreteDecorator2
5970:ConcreteDecorator1
5535:"Cost: "
5305:", Milk"
4982:"Coffee"
4722:it with a suffix.
1601:callComponentDrink
1415:callComponentDrink
1229:callComponentDrink
1025:callComponentDrink
556:
493:behavior, and the
299:
139:
10507:
10506:
10301:Business delegate
10233:Publish–subscribe
10067:
10066:
9854:Decorator Pattern
9788:978-0-596-00712-6
9596:Composite pattern
8179:@decorated_coffee
8041:Python Decorators
6423:ConcreteComponent
5787:ConcreteComponent
3394:AuthorizedWebPage
3154:AuthorizedWebPage
3142:AuthorizedWebPage
2205:Dynamic Decorator
1538:BeverageDecorator
1484:BeverageDecorator
1352:BeverageDecorator
1298:BeverageDecorator
1166:BeverageDecorator
1112:BeverageDecorator
935:BeverageDecorator
920:BeverageDecorator
899:BeverageDecorator
660:, which performs
538:
537:
423:Flyweight pattern
32:decorator pattern
10527:
10306:Composite entity
10183:Front controller
9923:Abstract factory
9911:
9910:
9889:
9882:
9875:
9866:
9865:
9841:
9840:
9829:
9823:
9822:
9820:
9819:
9805:
9799:
9798:
9796:
9795:
9780:
9769:
9763:
9762:
9760:
9759:
9745:
9739:
9738:
9732:
9724:
9700:
9694:
9693:
9686:
9680:
9679:
9674:. Archived from
9668:
9662:
9661:
9637:
9621:Immutable object
9611:Abstract factory
9578:
9575:
9572:
9569:
9566:
9563:
9560:
9557:
9554:
9551:
9548:
9545:
9542:
9539:
9536:
9533:
9530:
9527:
9524:
9521:
9518:
9515:
9512:
9509:
9506:
9503:
9500:
9497:
9494:
9491:
9488:
9485:
9482:
9479:
9476:
9473:
9470:
9467:
9464:
9461:
9458:
9455:
9452:
9449:
9446:
9443:
9440:
9437:
9434:
9431:
9428:
9425:
9422:
9419:
9416:
9413:
9410:
9407:
9404:
9401:
9398:
9395:
9392:
9389:
9386:
9383:
9380:
9377:
9374:
9371:
9368:
9365:
9362:
9359:
9356:
9353:
9350:
9347:
9344:
9341:
9338:
9335:
9332:
9329:
9326:
9323:
9320:
9317:
9314:
9311:
9308:
9305:
9302:
9299:
9296:
9293:
9290:
9287:
9284:
9281:
9278:
9275:
9272:
9269:
9266:
9263:
9260:
9239:
9236:
9233:
9230:
9227:
9224:
9221:
9218:
9215:
9212:
9209:
9206:
9203:
9200:
9197:
9194:
9191:
9188:
9185:
9182:
9179:
9176:
9173:
9170:
9167:
9164:
9161:
9158:
9155:
9152:
9149:
9146:
9143:
9140:
9137:
9134:
9131:
9128:
9125:
9122:
9119:
9116:
9113:
9110:
9107:
9104:
9101:
9098:
9095:
9092:
9089:
9086:
9083:
9080:
9077:
9074:
9071:
9068:
9065:
9062:
9059:
9056:
9053:
9050:
9047:
9044:
9041:
9038:
9035:
9032:
9029:
9026:
9023:
9020:
9017:
9014:
9011:
9008:
9005:
9002:
8999:
8996:
8993:
8990:
8987:
8984:
8981:
8978:
8975:
8972:
8969:
8966:
8963:
8960:
8957:
8954:
8951:
8948:
8945:
8942:
8939:
8936:
8933:
8930:
8927:
8924:
8921:
8918:
8915:
8912:
8909:
8906:
8903:
8900:
8897:
8894:
8891:
8888:
8885:
8882:
8879:
8876:
8873:
8870:
8867:
8864:
8861:
8858:
8855:
8852:
8849:
8846:
8843:
8840:
8837:
8834:
8831:
8828:
8825:
8822:
8819:
8816:
8813:
8810:
8807:
8804:
8801:
8798:
8795:
8792:
8789:
8786:
8783:
8780:
8777:
8774:
8771:
8768:
8765:
8762:
8759:
8756:
8753:
8750:
8747:
8744:
8741:
8738:
8735:
8732:
8729:
8726:
8723:
8720:
8717:
8714:
8711:
8708:
8705:
8702:
8699:
8696:
8693:
8690:
8687:
8684:
8681:
8678:
8675:
8672:
8669:
8666:
8663:
8660:
8657:
8654:
8651:
8648:
8645:
8642:
8639:
8636:
8633:
8630:
8627:
8624:
8621:
8618:
8615:
8612:
8609:
8606:
8603:
8600:
8597:
8594:
8591:
8588:
8585:
8582:
8579:
8576:
8573:
8570:
8567:
8564:
8561:
8558:
8555:
8552:
8549:
8531:
8528:
8525:
8522:
8519:
8516:
8513:
8510:
8507:
8504:
8501:
8498:
8495:
8492:
8489:
8486:
8483:
8480:
8477:
8474:
8471:
8468:
8465:
8462:
8459:
8456:
8453:
8450:
8447:
8444:
8441:
8438:
8435:
8432:
8429:
8426:
8423:
8420:
8417:
8414:
8411:
8408:
8405:
8402:
8399:
8396:
8393:
8390:
8387:
8384:
8381:
8378:
8375:
8372:
8369:
8366:
8363:
8360:
8357:
8354:
8351:
8348:
8345:
8342:
8339:
8336:
8333:
8330:
8327:
8324:
8321:
8318:
8315:
8312:
8309:
8306:
8303:
8300:
8297:
8294:
8291:
8288:
8285:
8282:
8279:
8276:
8273:
8270:
8267:
8264:
8261:
8258:
8255:
8252:
8249:
8246:
8243:
8240:
8237:
8234:
8231:
8228:
8225:
8222:
8219:
8216:
8213:
8212:decorated_coffee
8210:
8207:
8204:
8201:
8198:
8195:
8194:decorated_coffee
8192:
8189:
8186:
8183:
8180:
8177:
8174:
8171:
8168:
8165:
8162:
8161:decorated_coffee
8159:
8156:
8153:
8150:
8147:
8144:
8141:
8138:
8135:
8132:
8129:
8126:
8123:
8120:
8117:
8114:
8111:
8108:
8105:
8102:
8099:
8096:
8093:
8090:
8087:
8084:
8081:
8078:
8075:
8072:
8069:
8066:
8063:
8030:
8027:
8024:
8021:
8018:
8015:
8012:
8009:
8006:
8003:
8000:
7997:
7994:
7991:
7988:
7985:
7982:
7979:
7976:
7973:
7970:
7967:
7964:
7961:
7958:
7955:
7952:
7949:
7946:
7943:
7940:
7937:
7934:
7931:
7928:
7925:
7922:
7919:
7916:
7913:
7910:
7907:
7904:
7901:
7898:
7895:
7892:
7889:
7886:
7883:
7880:
7877:
7874:
7871:
7868:
7865:
7862:
7859:
7856:
7853:
7850:
7847:
7844:
7841:
7838:
7835:
7832:
7829:
7826:
7823:
7820:
7817:
7814:
7811:
7808:
7805:
7802:
7799:
7796:
7793:
7790:
7787:
7784:
7781:
7778:
7775:
7772:
7769:
7766:
7763:
7760:
7757:
7754:
7751:
7748:
7745:
7742:
7739:
7736:
7733:
7730:
7727:
7724:
7721:
7718:
7715:
7712:
7709:
7706:
7703:
7700:
7697:
7694:
7691:
7688:
7685:
7682:
7679:
7676:
7673:
7670:
7667:
7664:
7661:
7658:
7655:
7652:
7649:
7646:
7643:
7640:
7637:
7634:
7631:
7628:
7625:
7622:
7619:
7616:
7613:
7610:
7607:
7604:
7601:
7598:
7595:
7592:
7589:
7586:
7583:
7580:
7577:
7574:
7571:
7568:
7565:
7562:
7559:
7556:
7553:
7550:
7547:
7544:
7541:
7538:
7535:
7532:
7529:
7526:
7523:
7520:
7517:
7514:
7511:
7508:
7505:
7502:
7499:
7496:
7493:
7490:
7487:
7484:
7481:
7478:
7475:
7472:
7469:
7466:
7463:
7460:
7457:
7454:
7451:
7448:
7445:
7442:
7439:
7436:
7433:
7430:
7427:
7424:
7421:
7418:
7415:
7412:
7409:
7406:
7403:
7400:
7397:
7394:
7391:
7388:
7385:
7382:
7379:
7376:
7373:
7370:
7367:
7364:
7361:
7358:
7355:
7352:
7349:
7346:
7343:
7340:
7337:
7334:
7331:
7328:
7325:
7322:
7319:
7316:
7313:
7310:
7307:
7304:
7301:
7298:
7295:
7292:
7289:
7286:
7283:
7280:
7277:
7274:
7271:
7268:
7265:
7262:
7259:
7256:
7253:
7250:
7247:
7244:
7241:
7238:
7235:
7232:
7229:
7226:
7223:
7220:
7217:
7214:
7211:
7208:
7205:
7202:
7199:
7196:
7193:
7190:
7187:
7184:
7181:
7178:
7175:
7172:
7169:
7166:
7163:
7160:
7157:
7154:
7151:
7148:
7145:
7142:
7139:
7136:
7133:
7130:
7127:
7124:
7121:
7118:
7115:
7112:
7109:
7106:
7103:
7100:
7097:
7094:
7091:
7088:
7085:
7082:
7079:
7076:
7073:
7070:
7067:
7064:
7061:
7058:
7055:
7052:
7049:
7046:
7043:
7040:
7037:
7034:
7031:
7028:
7025:
7022:
7019:
7016:
7013:
7010:
7007:
7004:
7001:
6998:
6995:
6992:
6989:
6986:
6983:
6980:
6977:
6974:
6971:
6968:
6965:
6962:
6959:
6956:
6953:
6950:
6947:
6944:
6941:
6938:
6935:
6932:
6929:
6926:
6923:
6920:
6917:
6914:
6911:
6908:
6905:
6902:
6899:
6896:
6893:
6890:
6887:
6884:
6881:
6878:
6875:
6872:
6869:
6866:
6863:
6860:
6857:
6854:
6851:
6848:
6845:
6842:
6839:
6836:
6833:
6830:
6827:
6824:
6821:
6818:
6815:
6812:
6809:
6806:
6803:
6800:
6797:
6794:
6791:
6788:
6785:
6782:
6779:
6776:
6773:
6770:
6767:
6764:
6761:
6758:
6755:
6752:
6749:
6746:
6743:
6740:
6737:
6734:
6731:
6728:
6725:
6722:
6719:
6716:
6713:
6710:
6707:
6704:
6701:
6698:
6695:
6692:
6689:
6686:
6683:
6680:
6677:
6674:
6671:
6668:
6665:
6662:
6659:
6656:
6653:
6634:
6631:
6628:
6625:
6622:
6619:
6616:
6613:
6610:
6607:
6604:
6601:
6598:
6595:
6592:
6589:
6586:
6583:
6580:
6577:
6574:
6571:
6568:
6565:
6562:
6559:
6556:
6553:
6550:
6547:
6544:
6541:
6538:
6535:
6532:
6529:
6526:
6523:
6520:
6517:
6514:
6511:
6508:
6505:
6502:
6499:
6496:
6493:
6490:
6487:
6484:
6481:
6478:
6475:
6472:
6469:
6466:
6463:
6460:
6457:
6454:
6451:
6448:
6445:
6442:
6439:
6436:
6433:
6430:
6427:
6424:
6421:
6418:
6415:
6412:
6409:
6406:
6403:
6400:
6397:
6394:
6391:
6388:
6385:
6382:
6379:
6376:
6373:
6370:
6367:
6364:
6361:
6358:
6355:
6352:
6349:
6346:
6343:
6340:
6337:
6334:
6331:
6328:
6325:
6322:
6319:
6316:
6313:
6310:
6307:
6304:
6301:
6298:
6295:
6292:
6289:
6286:
6283:
6280:
6277:
6274:
6271:
6268:
6265:
6262:
6259:
6256:
6253:
6250:
6247:
6244:
6241:
6238:
6235:
6232:
6229:
6226:
6223:
6220:
6217:
6214:
6211:
6208:
6205:
6202:
6199:
6196:
6193:
6190:
6187:
6184:
6181:
6178:
6175:
6172:
6169:
6166:
6163:
6160:
6157:
6154:
6151:
6148:
6145:
6142:
6139:
6136:
6133:
6130:
6127:
6124:
6121:
6118:
6115:
6112:
6109:
6106:
6103:
6100:
6097:
6094:
6091:
6088:
6085:
6082:
6079:
6076:
6073:
6070:
6067:
6064:
6061:
6058:
6055:
6052:
6049:
6046:
6043:
6040:
6037:
6034:
6031:
6028:
6025:
6022:
6019:
6016:
6013:
6010:
6007:
6004:
6001:
5998:
5995:
5992:
5989:
5986:
5983:
5980:
5977:
5974:
5971:
5968:
5965:
5962:
5959:
5956:
5953:
5950:
5947:
5944:
5941:
5938:
5935:
5932:
5929:
5926:
5923:
5920:
5917:
5914:
5911:
5908:
5905:
5902:
5899:
5896:
5893:
5890:
5887:
5884:
5881:
5878:
5875:
5872:
5869:
5866:
5863:
5860:
5857:
5854:
5851:
5848:
5845:
5842:
5839:
5836:
5833:
5830:
5827:
5824:
5821:
5818:
5815:
5812:
5809:
5806:
5803:
5800:
5797:
5794:
5791:
5788:
5785:
5782:
5779:
5776:
5773:
5770:
5767:
5764:
5761:
5758:
5755:
5752:
5749:
5746:
5743:
5740:
5737:
5734:
5731:
5728:
5725:
5722:
5704:
5701:
5698:
5695:
5692:
5689:
5686:
5683:
5680:
5677:
5674:
5671:
5668:
5665:
5662:
5659:
5656:
5653:
5650:
5647:
5644:
5641:
5638:
5635:
5632:
5629:
5626:
5623:
5620:
5617:
5614:
5611:
5608:
5605:
5602:
5599:
5596:
5593:
5590:
5587:
5584:
5581:
5578:
5575:
5572:
5569:
5566:
5563:
5560:
5557:
5554:
5551:
5548:
5545:
5542:
5539:
5536:
5533:
5530:
5527:
5524:
5521:
5518:
5515:
5512:
5509:
5506:
5503:
5500:
5497:
5494:
5491:
5488:
5485:
5482:
5479:
5472:
5465:
5462:
5459:
5456:
5453:
5450:
5447:
5444:
5441:
5438:
5435:
5432:
5429:
5426:
5423:
5420:
5417:
5414:
5411:
5408:
5405:
5402:
5399:
5396:
5393:
5390:
5387:
5384:
5381:
5378:
5375:
5372:
5369:
5366:
5363:
5360:
5357:
5354:
5351:
5348:
5345:
5342:
5339:
5336:
5333:
5330:
5327:
5324:
5321:
5318:
5315:
5312:
5309:
5306:
5303:
5300:
5297:
5294:
5291:
5288:
5285:
5282:
5279:
5276:
5273:
5270:
5267:
5264:
5261:
5258:
5255:
5252:
5249:
5246:
5243:
5240:
5237:
5234:
5231:
5228:
5225:
5222:
5219:
5216:
5213:
5210:
5207:
5204:
5201:
5198:
5195:
5192:
5189:
5186:
5183:
5180:
5177:
5174:
5171:
5168:
5165:
5162:
5159:
5156:
5153:
5150:
5147:
5144:
5141:
5138:
5135:
5132:
5129:
5126:
5123:
5120:
5117:
5114:
5111:
5108:
5105:
5102:
5099:
5096:
5093:
5090:
5087:
5084:
5081:
5078:
5075:
5072:
5069:
5066:
5063:
5060:
5057:
5054:
5051:
5048:
5045:
5042:
5039:
5036:
5033:
5030:
5027:
5024:
5021:
5018:
5015:
5012:
5009:
5006:
4999:
4992:
4989:
4986:
4983:
4980:
4977:
4974:
4971:
4968:
4965:
4962:
4959:
4956:
4953:
4950:
4947:
4944:
4941:
4938:
4935:
4932:
4929:
4926:
4923:
4920:
4917:
4914:
4911:
4908:
4905:
4902:
4899:
4896:
4893:
4890:
4887:
4884:
4881:
4878:
4875:
4872:
4869:
4866:
4863:
4845:
4842:
4839:
4836:
4833:
4830:
4827:
4824:
4821:
4818:
4815:
4812:
4809:
4806:
4803:
4800:
4797:
4794:
4791:
4788:
4785:
4782:
4779:
4776:
4773:
4770:
4767:
4764:
4761:
4758:
4755:
4752:
4749:
4746:
4743:
4740:
4737:
4734:
4731:
4717:
4713:
4706:
4703:
4700:
4697:
4694:
4691:
4688:
4685:
4682:
4679:
4676:
4673:
4670:
4667:
4664:
4661:
4658:
4655:
4652:
4649:
4646:
4643:
4640:
4637:
4634:
4631:
4628:
4625:
4622:
4619:
4616:
4613:
4610:
4607:
4604:
4601:
4598:
4595:
4592:
4585:
4578:
4575:
4572:
4569:
4566:
4563:
4560:
4557:
4554:
4551:
4548:
4545:
4542:
4539:
4536:
4533:
4530:
4527:
4524:
4521:
4518:
4515:
4512:
4509:
4506:
4503:
4500:
4497:
4494:
4491:
4488:
4485:
4482:
4479:
4476:
4473:
4470:
4467:
4464:
4461:
4458:
4455:
4452:
4449:
4446:
4443:
4440:
4437:
4434:
4431:
4428:
4425:
4422:
4419:
4416:
4413:
4410:
4407:
4404:
4401:
4398:
4395:
4392:
4389:
4386:
4383:
4380:
4377:
4374:
4371:
4368:
4365:
4362:
4359:
4356:
4353:
4350:
4347:
4344:
4341:
4338:
4335:
4332:
4329:
4326:
4323:
4320:
4317:
4314:
4311:
4308:
4305:
4302:
4299:
4296:
4293:
4290:
4287:
4284:
4281:
4278:
4275:
4272:
4269:
4266:
4263:
4260:
4257:
4254:
4251:
4248:
4245:
4242:
4239:
4236:
4233:
4230:
4227:
4224:
4221:
4218:
4215:
4212:
4209:
4206:
4203:
4200:
4197:
4194:
4191:
4188:
4185:
4182:
4179:
4176:
4173:
4170:
4167:
4164:
4161:
4158:
4155:
4152:
4149:
4146:
4143:
4140:
4137:
4134:
4131:
4128:
4125:
4122:
4119:
4116:
4113:
4110:
4107:
4104:
4101:
4098:
4091:
4084:
4081:
4078:
4075:
4072:
4069:
4066:
4063:
4060:
4057:
4054:
4051:
4048:
4045:
4042:
4039:
4036:
4033:
4030:
4027:
4024:
4021:
4018:
4015:
4012:
4009:
4006:
4003:
4000:
3997:
3994:
3991:
3988:
3985:
3982:
3979:
3976:
3973:
3970:
3950:
3947:
3944:
3941:
3938:
3935:
3932:
3929:
3926:
3923:
3920:
3917:
3914:
3911:
3908:
3905:
3902:
3899:
3896:
3893:
3890:
3887:
3884:
3881:
3878:
3875:
3872:
3869:
3866:
3863:
3860:
3857:
3854:
3851:
3848:
3845:
3842:
3839:
3836:
3833:
3830:
3827:
3824:
3821:
3818:
3815:
3812:
3809:
3806:
3803:
3800:
3797:
3794:
3791:
3788:
3785:
3782:
3779:
3776:
3773:
3770:
3767:
3764:
3761:
3758:
3755:
3752:
3749:
3746:
3743:
3740:
3737:
3734:
3731:
3728:
3725:
3722:
3719:
3716:
3713:
3710:
3707:
3704:
3701:
3698:
3695:
3692:
3689:
3686:
3683:
3680:
3677:
3674:
3671:
3668:
3665:
3662:
3659:
3656:
3653:
3650:
3647:
3644:
3641:
3638:
3635:
3632:
3629:
3626:
3623:
3620:
3617:
3614:
3611:
3608:
3605:
3602:
3599:
3596:
3593:
3590:
3587:
3584:
3581:
3578:
3575:
3572:
3569:
3566:
3563:
3560:
3557:
3554:
3551:
3548:
3545:
3542:
3539:
3536:
3533:
3530:
3529:<iostream>
3527:
3512:
3509:
3506:
3503:
3500:
3497:
3494:
3491:
3488:
3485:
3482:
3479:
3476:
3473:
3470:
3467:
3464:
3461:
3458:
3455:
3452:
3449:
3446:
3443:
3440:
3437:
3434:
3431:
3428:
3425:
3422:
3419:
3416:
3413:
3410:
3407:
3404:
3401:
3398:
3395:
3392:
3389:
3386:
3383:
3380:
3377:
3374:
3371:
3368:
3365:
3362:
3359:
3356:
3353:
3350:
3347:
3344:
3341:
3338:
3335:
3332:
3329:
3326:
3323:
3320:
3317:
3314:
3311:
3308:
3305:
3302:
3299:
3296:
3293:
3290:
3287:
3284:
3281:
3280:WebPageDecorator
3278:
3275:
3272:
3269:
3266:
3263:
3260:
3257:
3254:
3251:
3248:
3245:
3242:
3239:
3236:
3233:
3230:
3227:
3224:
3221:
3218:
3215:
3212:
3209:
3206:
3203:
3200:
3197:
3194:
3191:
3188:
3187:WebPageDecorator
3185:
3182:
3179:
3176:
3173:
3170:
3167:
3164:
3161:
3158:
3155:
3152:
3149:
3148:WebPageDecorator
3146:
3143:
3140:
3137:
3134:
3131:
3128:
3125:
3122:
3121:WebPageDecorator
3119:
3116:
3115:authenticateUser
3113:
3110:
3107:
3104:
3101:
3098:
3095:
3092:
3089:
3086:
3083:
3080:
3077:
3074:
3071:
3068:
3065:
3062:
3059:
3058:authenticateUser
3056:
3053:
3050:
3047:
3044:
3041:
3038:
3035:
3032:
3029:
3028:WebPageDecorator
3026:
3023:
3020:
3017:
3014:
3011:
3008:
3005:
3002:
2999:
2996:
2993:
2990:
2989:WebPageDecorator
2987:
2984:
2981:
2978:
2975:
2972:
2969:
2966:
2963:
2960:
2957:
2954:
2951:
2948:
2945:
2942:
2939:
2936:
2933:
2930:
2927:
2924:
2921:
2918:
2915:
2912:
2909:
2906:
2903:
2900:
2897:
2894:
2891:
2888:
2885:
2882:
2879:
2876:
2873:
2870:
2867:
2864:
2861:
2858:
2855:
2854:WebPageDecorator
2852:
2849:
2846:
2843:
2842:WebPageDecorator
2840:
2837:
2834:
2831:
2828:
2825:
2822:
2819:
2816:
2813:
2810:
2807:
2804:
2801:
2798:
2795:
2792:
2789:
2786:
2783:
2780:
2777:
2774:
2771:
2768:
2765:
2762:
2759:
2756:
2753:
2750:
2747:
2744:
2741:
2738:
2735:
2732:
2729:
2726:
2723:
2720:
2717:
2714:
2711:
2708:
2705:
2702:
2699:
2696:
2695:<iostream>
2693:
2690:
2687:
2680:
2677:
2674:
2671:
2668:
2665:
2662:
2659:
2656:
2653:
2650:
2647:
2644:
2641:
2638:
2635:
2632:
2629:
2626:
2623:
2620:
2617:
2614:
2611:
2608:
2605:
2602:
2599:
2596:
2593:
2590:
2587:
2584:
2581:
2578:
2575:
2572:
2569:
2566:
2563:
2560:
2557:
2554:
2551:
2548:
2545:
2542:
2539:
2536:
2533:
2530:
2527:
2524:
2521:
2518:
2515:
2512:
2509:
2506:
2503:
2500:
2497:
2494:
2491:
2488:
2485:
2482:
2479:
2476:
2473:
2470:
2467:
2464:
2461:
2458:
2455:
2452:
2449:
2446:
2443:
2440:
2437:
2434:
2431:
2428:
2425:
2422:
2419:
2416:
2413:
2410:
2407:
2404:
2401:
2398:
2395:
2392:
2389:
2386:
2383:
2380:
2377:
2374:
2371:
2368:
2365:
2362:
2359:
2356:
2353:
2350:
2347:
2344:
2341:
2338:
2335:
2332:
2329:
2326:
2323:
2320:
2317:
2314:
2311:
2308:
2305:
2302:
2299:
2296:
2293:
2290:
2287:
2284:
2281:
2278:
2275:
2272:
2269:
2266:
2263:
2260:
2257:
2254:
2251:
2248:
2245:
2242:
2239:
2236:
2233:
2230:
2227:
2224:
2221:
2218:
2215:
2214:<iostream>
2212:
2185:
2182:
2179:
2176:
2173:
2170:
2167:
2164:
2161:
2158:
2155:
2152:
2149:
2146:
2143:
2140:
2137:
2134:
2131:
2128:
2125:
2122:
2119:
2116:
2113:
2110:
2107:
2104:
2101:
2098:
2095:
2092:
2089:
2079:
2076:
2073:
2070:
2067:
2064:
2061:
2058:
2055:
2052:
2049:
2046:
2043:
2040:
2037:
2034:
2031:
2028:
2025:
2022:
2019:
2016:
2013:
2010:
2007:
2004:
2001:
1998:
1995:
1992:
1989:
1986:
1983:
1980:
1977:
1974:
1971:
1968:
1965:
1962:
1959:
1956:
1953:
1950:
1947:
1944:
1941:
1938:
1935:
1932:
1929:
1926:
1923:
1920:
1917:
1914:
1911:
1908:
1905:
1902:
1899:
1896:
1893:
1890:
1887:
1884:
1881:
1878:
1875:
1872:
1869:
1866:
1863:
1860:
1857:
1854:
1851:
1848:
1845:
1842:
1839:
1836:
1833:
1830:
1827:
1824:
1821:
1818:
1815:
1812:
1809:
1806:
1803:
1800:
1797:
1794:
1791:
1788:
1785:
1782:
1779:
1776:
1773:
1770:
1767:
1764:
1761:
1758:
1755:
1752:
1749:
1746:
1743:
1740:
1737:
1734:
1731:
1728:
1725:
1722:
1719:
1716:
1713:
1710:
1707:
1704:
1701:
1698:
1695:
1692:
1689:
1686:
1683:
1680:
1677:
1674:
1671:
1668:
1665:
1662:
1659:
1656:
1653:
1650:
1647:
1644:
1641:
1638:
1635:
1632:
1629:
1626:
1623:
1620:
1617:
1614:
1611:
1608:
1605:
1602:
1599:
1596:
1593:
1590:
1587:
1584:
1581:
1578:
1575:
1572:
1569:
1566:
1563:
1560:
1557:
1554:
1551:
1548:
1545:
1542:
1539:
1536:
1533:
1530:
1527:
1524:
1521:
1518:
1515:
1512:
1509:
1506:
1503:
1500:
1497:
1494:
1491:
1488:
1485:
1482:
1479:
1476:
1473:
1470:
1467:
1464:
1461:
1458:
1455:
1452:
1449:
1446:
1443:
1440:
1437:
1434:
1431:
1428:
1425:
1422:
1419:
1416:
1413:
1410:
1407:
1404:
1401:
1398:
1395:
1392:
1389:
1386:
1383:
1380:
1377:
1374:
1371:
1368:
1365:
1362:
1359:
1356:
1353:
1350:
1347:
1344:
1341:
1338:
1335:
1332:
1329:
1326:
1323:
1320:
1317:
1314:
1311:
1308:
1305:
1302:
1299:
1296:
1293:
1290:
1287:
1284:
1281:
1278:
1275:
1272:
1269:
1266:
1263:
1260:
1257:
1254:
1251:
1248:
1245:
1242:
1239:
1236:
1233:
1230:
1227:
1224:
1221:
1218:
1215:
1212:
1209:
1206:
1203:
1200:
1197:
1194:
1191:
1188:
1185:
1182:
1179:
1176:
1173:
1170:
1167:
1164:
1161:
1158:
1155:
1152:
1149:
1146:
1143:
1140:
1137:
1134:
1131:
1128:
1125:
1122:
1119:
1116:
1113:
1110:
1107:
1104:
1101:
1098:
1095:
1092:
1089:
1086:
1083:
1080:
1077:
1074:
1071:
1068:
1065:
1062:
1059:
1056:
1053:
1050:
1047:
1044:
1041:
1038:
1035:
1032:
1029:
1026:
1023:
1020:
1017:
1014:
1011:
1008:
1005:
1002:
999:
996:
993:
990:
987:
984:
981:
978:
975:
972:
969:
966:
963:
960:
957:
954:
951:
948:
945:
942:
939:
936:
933:
930:
927:
924:
921:
918:
915:
912:
909:
906:
903:
900:
897:
894:
891:
888:
885:
882:
879:
876:
873:
870:
867:
864:
861:
858:
855:
852:
849:
846:
843:
840:
837:
834:
831:
828:
825:
822:
819:
816:
813:
810:
807:
804:
801:
798:
795:
792:
789:
786:
783:
780:
777:
774:
771:
768:
765:
762:
759:
756:
753:
750:
747:
744:
741:
738:
735:
732:
729:
726:
723:
720:
717:
714:
711:
708:
705:
702:
699:
696:
693:
690:
689:<iostream>
687:
667:
663:
659:
655:
651:
647:
643:
639:
635:
631:
625:
621:
617:
613:
607:
603:
599:
595:
588:
584:
580:
576:
572:
568:
565:, the abstract
500:
499:
386:getDescription()
346:WindowWithBorder
303:windowing system
118:
107:
99:
10535:
10534:
10530:
10529:
10528:
10526:
10525:
10524:
10510:
10509:
10508:
10503:
10482:
10461:
10452:Douglas Schmidt
10432:Ward Cunningham
10390:
10378:Design Patterns
10365:
10356:Method chaining
10288:
10282:
10243:Service locator
10174:
10167:
10138:Read–write lock
10074:
10063:
10054:Template method
9995:
9947:
9905:
9898:
9893:
9850:
9845:
9844:
9837:wiki.python.org
9831:
9830:
9826:
9817:
9815:
9807:
9806:
9802:
9793:
9791:
9789:
9778:
9770:
9766:
9757:
9755:
9747:
9746:
9742:
9726:
9725:
9721:
9701:
9697:
9692:. 8 March 2022.
9688:
9687:
9683:
9670:
9669:
9665:
9658:
9643:Design Patterns
9638:
9634:
9629:
9601:Adapter pattern
9592:
9587:
9582:
9580:
9579:
9576:
9573:
9570:
9567:
9564:
9561:
9558:
9555:
9552:
9549:
9546:
9543:
9540:
9537:
9534:
9531:
9528:
9525:
9522:
9519:
9516:
9513:
9510:
9507:
9504:
9501:
9498:
9495:
9492:
9489:
9486:
9483:
9480:
9477:
9474:
9471:
9468:
9465:
9462:
9459:
9456:
9453:
9450:
9447:
9444:
9441:
9438:
9435:
9432:
9430:SimpleDelegator
9429:
9426:
9423:
9420:
9417:
9414:
9411:
9408:
9405:
9402:
9399:
9396:
9393:
9390:
9387:
9384:
9381:
9378:
9375:
9372:
9369:
9366:
9363:
9361:SimpleDelegator
9360:
9357:
9354:
9351:
9348:
9345:
9342:
9339:
9336:
9333:
9330:
9327:
9324:
9321:
9318:
9315:
9312:
9309:
9306:
9303:
9300:
9297:
9294:
9291:
9288:
9286:; Ingredients:
9285:
9282:
9279:
9276:
9273:
9270:
9267:
9264:
9261:
9258:
9255:
9249:
9247:
9241:
9240:
9237:
9234:
9231:
9228:
9225:
9222:
9219:
9216:
9213:
9210:
9207:
9205:SecurityPackage
9204:
9201:
9198:
9195:
9192:
9189:
9186:
9183:
9180:
9177:
9174:
9172:BikeAccessories
9171:
9168:
9165:
9162:
9159:
9156:
9153:
9150:
9147:
9144:
9141:
9138:
9135:
9132:
9129:
9126:
9123:
9120:
9117:
9114:
9111:
9108:
9105:
9102:
9099:
9096:
9093:
9090:
9087:
9084:
9081:
9078:
9075:
9072:
9069:
9066:
9063:
9060:
9057:
9054:
9051:
9048:
9045:
9042:
9039:
9036:
9033:
9030:
9027:
9024:
9021:
9018:
9015:
9012:
9009:
9006:
9003:
9000:
8998:BikeAccessories
8997:
8994:
8991:
8988:
8985:
8982:
8979:
8976:
8973:
8970:
8967:
8964:
8961:
8958:
8955:
8952:
8949:
8946:
8943:
8940:
8937:
8934:
8931:
8928:
8925:
8922:
8919:
8916:
8913:
8910:
8907:
8904:
8901:
8898:
8895:
8892:
8889:
8886:
8883:
8880:
8877:
8874:
8872:SecurityPackage
8871:
8868:
8865:
8863:BikeAccessories
8862:
8859:
8857:SecurityPackage
8856:
8853:
8850:
8847:
8844:
8841:
8838:
8835:
8832:
8829:
8826:
8823:
8820:
8817:
8814:
8811:
8808:
8805:
8802:
8799:
8796:
8793:
8790:
8787:
8784:
8781:
8778:
8775:
8772:
8769:
8766:
8763:
8760:
8757:
8755:BikeAccessories
8754:
8751:
8748:
8745:
8742:
8739:
8736:
8733:
8730:
8727:
8725:BikeAccessories
8724:
8721:
8718:
8715:
8712:
8709:
8706:
8703:
8700:
8697:
8694:
8691:
8688:
8685:
8682:
8679:
8676:
8673:
8670:
8667:
8664:
8661:
8658:
8655:
8652:
8649:
8646:
8643:
8640:
8637:
8634:
8631:
8628:
8625:
8622:
8619:
8616:
8613:
8610:
8607:
8604:
8601:
8598:
8595:
8592:
8589:
8586:
8583:
8580:
8577:
8574:
8571:
8568:
8565:
8562:
8559:
8556:
8553:
8550:
8547:
8544:
8539:
8533:
8532:
8529:
8526:
8523:
8520:
8517:
8514:
8511:
8508:
8505:
8502:
8499:
8496:
8493:
8490:
8487:
8484:
8481:
8478:
8475:
8472:
8469:
8466:
8463:
8460:
8457:
8454:
8451:
8448:
8445:
8442:
8439:
8436:
8433:
8430:
8427:
8424:
8421:
8418:
8415:
8412:
8409:
8406:
8403:
8400:
8397:
8394:
8391:
8389:; Ingredients:
8388:
8385:
8382:
8379:
8376:
8373:
8370:
8367:
8364:
8361:
8358:
8355:
8352:
8349:
8346:
8343:
8340:
8337:
8334:
8331:
8328:
8325:
8322:
8319:
8316:
8313:
8310:
8307:
8304:
8301:
8298:
8295:
8293:CoffeeDecorator
8292:
8289:
8286:
8283:
8280:
8277:
8274:
8271:
8268:
8265:
8262:
8259:
8256:
8253:
8250:
8247:
8244:
8241:
8238:
8236:CoffeeDecorator
8235:
8232:
8229:
8226:
8223:
8220:
8217:
8214:
8211:
8208:
8205:
8202:
8199:
8196:
8193:
8190:
8187:
8184:
8181:
8178:
8175:
8172:
8169:
8166:
8163:
8160:
8157:
8154:
8151:
8148:
8146:CoffeeDecorator
8145:
8142:
8139:
8136:
8133:
8130:
8127:
8124:
8121:
8118:
8115:
8112:
8109:
8106:
8103:
8100:
8097:
8094:
8091:
8088:
8085:
8082:
8079:
8076:
8073:
8070:
8067:
8064:
8061:
8058:
8032:
8031:
8028:
8025:
8022:
8019:
8016:
8013:
8010:
8007:
8004:
8001:
7998:
7995:
7992:
7989:
7986:
7983:
7980:
7977:
7974:
7971:
7968:
7965:
7962:
7959:
7956:
7953:
7950:
7947:
7944:
7941:
7938:
7935:
7932:
7929:
7926:
7923:
7920:
7917:
7914:
7911:
7908:
7905:
7902:
7899:
7896:
7893:
7890:
7887:
7884:
7881:
7878:
7875:
7872:
7869:
7866:
7863:
7860:
7857:
7854:
7851:
7848:
7845:
7842:
7839:
7836:
7833:
7830:
7827:
7824:
7821:
7818:
7815:
7812:
7809:
7806:
7803:
7800:
7797:
7794:
7791:
7788:
7785:
7782:
7779:
7776:
7773:
7770:
7767:
7764:
7761:
7758:
7755:
7752:
7749:
7746:
7743:
7740:
7737:
7734:
7731:
7728:
7725:
7722:
7719:
7716:
7713:
7710:
7707:
7704:
7701:
7698:
7695:
7692:
7689:
7686:
7683:
7680:
7677:
7674:
7671:
7668:
7665:
7662:
7659:
7656:
7653:
7650:
7647:
7644:
7641:
7638:
7635:
7632:
7629:
7626:
7623:
7620:
7617:
7614:
7611:
7608:
7605:
7602:
7599:
7596:
7593:
7590:
7587:
7584:
7581:
7578:
7575:
7572:
7569:
7566:
7563:
7560:
7557:
7554:
7551:
7548:
7545:
7542:
7539:
7536:
7533:
7530:
7527:
7524:
7521:
7518:
7515:
7512:
7509:
7506:
7503:
7500:
7497:
7494:
7491:
7488:
7485:
7482:
7479:
7476:
7473:
7470:
7467:
7464:
7461:
7458:
7455:
7452:
7449:
7446:
7443:
7440:
7437:
7434:
7431:
7428:
7425:
7422:
7419:
7416:
7413:
7410:
7407:
7404:
7401:
7398:
7395:
7392:
7389:
7386:
7383:
7380:
7377:
7374:
7371:
7368:
7365:
7362:
7359:
7356:
7353:
7350:
7347:
7344:
7341:
7338:
7335:
7332:
7329:
7326:
7323:
7320:
7317:
7314:
7311:
7308:
7305:
7302:
7299:
7296:
7293:
7290:
7287:
7284:
7281:
7278:
7275:
7272:
7269:
7266:
7263:
7260:
7257:
7254:
7251:
7248:
7245:
7242:
7239:
7236:
7233:
7230:
7227:
7224:
7221:
7218:
7215:
7212:
7209:
7206:
7203:
7200:
7197:
7194:
7191:
7188:
7185:
7182:
7179:
7176:
7173:
7170:
7167:
7164:
7161:
7158:
7155:
7152:
7149:
7146:
7143:
7140:
7137:
7134:
7131:
7128:
7125:
7122:
7119:
7116:
7113:
7110:
7107:
7104:
7101:
7098:
7095:
7092:
7089:
7086:
7083:
7080:
7077:
7074:
7071:
7068:
7065:
7062:
7059:
7056:
7053:
7050:
7047:
7044:
7041:
7038:
7035:
7032:
7029:
7026:
7023:
7020:
7017:
7014:
7011:
7008:
7005:
7002:
6999:
6996:
6993:
6990:
6987:
6984:
6981:
6978:
6975:
6972:
6969:
6966:
6963:
6960:
6957:
6954:
6951:
6948:
6945:
6942:
6939:
6936:
6933:
6930:
6927:
6924:
6921:
6918:
6915:
6912:
6909:
6906:
6903:
6900:
6897:
6894:
6891:
6888:
6885:
6882:
6879:
6876:
6873:
6870:
6867:
6864:
6861:
6858:
6855:
6852:
6849:
6846:
6843:
6840:
6837:
6834:
6831:
6828:
6825:
6822:
6819:
6816:
6813:
6810:
6807:
6804:
6801:
6798:
6795:
6792:
6789:
6786:
6783:
6780:
6777:
6774:
6771:
6768:
6765:
6762:
6759:
6756:
6753:
6750:
6747:
6744:
6741:
6738:
6735:
6732:
6729:
6726:
6723:
6720:
6717:
6714:
6711:
6708:
6705:
6702:
6699:
6696:
6693:
6690:
6687:
6684:
6681:
6678:
6675:
6672:
6669:
6666:
6663:
6660:
6657:
6654:
6651:
6641:
6636:
6635:
6632:
6629:
6626:
6623:
6620:
6617:
6614:
6611:
6608:
6605:
6602:
6599:
6596:
6593:
6590:
6587:
6584:
6581:
6578:
6575:
6572:
6569:
6566:
6563:
6560:
6557:
6554:
6551:
6548:
6545:
6542:
6539:
6536:
6533:
6530:
6527:
6524:
6521:
6518:
6515:
6512:
6509:
6506:
6503:
6500:
6497:
6494:
6491:
6488:
6485:
6482:
6479:
6476:
6473:
6470:
6467:
6464:
6461:
6458:
6455:
6452:
6449:
6446:
6443:
6440:
6437:
6434:
6431:
6428:
6425:
6422:
6419:
6416:
6413:
6410:
6407:
6404:
6401:
6398:
6395:
6392:
6389:
6386:
6383:
6380:
6377:
6374:
6371:
6368:
6365:
6362:
6359:
6356:
6353:
6350:
6347:
6344:
6341:
6338:
6335:
6332:
6329:
6326:
6323:
6320:
6317:
6314:
6311:
6308:
6305:
6302:
6299:
6296:
6293:
6290:
6287:
6284:
6281:
6278:
6275:
6272:
6269:
6266:
6263:
6260:
6257:
6254:
6251:
6248:
6245:
6242:
6239:
6236:
6233:
6230:
6227:
6224:
6221:
6218:
6215:
6212:
6209:
6206:
6203:
6200:
6197:
6194:
6191:
6188:
6185:
6182:
6179:
6176:
6173:
6170:
6167:
6164:
6161:
6158:
6155:
6152:
6149:
6146:
6143:
6140:
6137:
6134:
6131:
6128:
6125:
6122:
6119:
6116:
6113:
6110:
6107:
6104:
6101:
6098:
6095:
6092:
6089:
6086:
6083:
6080:
6077:
6074:
6071:
6068:
6065:
6062:
6059:
6056:
6053:
6050:
6047:
6044:
6041:
6038:
6035:
6032:
6029:
6026:
6023:
6020:
6017:
6014:
6011:
6008:
6005:
6002:
5999:
5996:
5993:
5990:
5987:
5984:
5981:
5978:
5975:
5972:
5969:
5966:
5963:
5960:
5957:
5954:
5951:
5948:
5945:
5942:
5939:
5936:
5933:
5930:
5927:
5924:
5921:
5918:
5915:
5912:
5909:
5906:
5903:
5900:
5897:
5894:
5891:
5888:
5885:
5882:
5879:
5876:
5873:
5870:
5867:
5864:
5861:
5858:
5855:
5852:
5849:
5846:
5843:
5840:
5837:
5834:
5831:
5828:
5825:
5822:
5819:
5816:
5813:
5810:
5807:
5804:
5801:
5798:
5795:
5792:
5789:
5786:
5783:
5780:
5777:
5774:
5771:
5768:
5765:
5762:
5759:
5756:
5753:
5750:
5747:
5744:
5741:
5738:
5735:
5732:
5729:
5726:
5723:
5720:
5717:
5712:
5706:
5705:
5702:
5699:
5696:
5693:
5690:
5687:
5684:
5681:
5678:
5675:
5672:
5669:
5666:
5663:
5660:
5657:
5654:
5651:
5648:
5645:
5642:
5639:
5636:
5633:
5630:
5627:
5624:
5621:
5618:
5615:
5612:
5609:
5606:
5603:
5600:
5597:
5594:
5591:
5588:
5585:
5582:
5579:
5576:
5573:
5570:
5567:
5564:
5561:
5558:
5555:
5552:
5549:
5546:
5543:
5540:
5537:
5534:
5531:
5528:
5525:
5522:
5519:
5516:
5513:
5510:
5507:
5504:
5501:
5498:
5495:
5492:
5489:
5486:
5483:
5480:
5477:
5470:
5467:
5466:
5463:
5460:
5457:
5454:
5451:
5448:
5445:
5442:
5439:
5436:
5433:
5430:
5427:
5424:
5421:
5418:
5415:
5412:
5409:
5406:
5403:
5400:
5397:
5394:
5391:
5388:
5385:
5382:
5379:
5376:
5373:
5370:
5367:
5364:
5361:
5358:
5355:
5352:
5349:
5346:
5343:
5340:
5337:
5334:
5332:CoffeeDecorator
5331:
5328:
5325:
5322:
5319:
5316:
5313:
5310:
5307:
5304:
5301:
5298:
5295:
5292:
5289:
5286:
5283:
5280:
5277:
5274:
5271:
5268:
5265:
5262:
5259:
5256:
5253:
5250:
5247:
5244:
5241:
5238:
5235:
5232:
5229:
5226:
5223:
5220:
5217:
5214:
5211:
5208:
5205:
5202:
5199:
5196:
5193:
5190:
5187:
5184:
5181:
5179:CoffeeDecorator
5178:
5175:
5172:
5169:
5166:
5163:
5160:
5157:
5154:
5151:
5148:
5146:decoratedCoffee
5145:
5142:
5139:
5136:
5133:
5130:
5127:
5124:
5121:
5118:
5115:
5112:
5110:decoratedCoffee
5109:
5106:
5103:
5100:
5097:
5094:
5091:
5088:
5085:
5082:
5079:
5076:
5073:
5071:decoratedCoffee
5070:
5067:
5064:
5061:
5058:
5055:
5052:
5049:
5047:CoffeeDecorator
5046:
5043:
5040:
5038:decoratedCoffee
5037:
5034:
5031:
5028:
5025:
5022:
5019:
5017:CoffeeDecorator
5016:
5013:
5010:
5007:
5004:
4997:
4994:
4993:
4990:
4987:
4984:
4981:
4978:
4975:
4972:
4969:
4966:
4963:
4960:
4957:
4954:
4951:
4948:
4945:
4942:
4939:
4936:
4933:
4930:
4927:
4924:
4921:
4918:
4915:
4912:
4909:
4906:
4903:
4900:
4897:
4894:
4891:
4888:
4885:
4882:
4879:
4876:
4873:
4870:
4867:
4864:
4861:
4855:
4849:
4847:
4846:
4843:
4840:
4837:
4834:
4831:
4829:decoratedWindow
4828:
4825:
4822:
4819:
4816:
4813:
4810:
4807:
4804:
4801:
4798:
4795:
4792:
4789:
4786:
4783:
4781:decoratedWindow
4780:
4777:
4774:
4771:
4768:
4765:
4762:
4759:
4756:
4753:
4750:
4747:
4744:
4741:
4738:
4735:
4732:
4729:
4715:
4711:
4708:
4707:
4704:
4701:
4698:
4695:
4692:
4690:decoratedWindow
4689:
4686:
4683:
4680:
4677:
4674:
4671:
4668:
4665:
4662:
4659:
4656:
4653:
4650:
4647:
4644:
4641:
4638:
4636:decoratedWindow
4635:
4632:
4629:
4626:
4623:
4620:
4617:
4614:
4611:
4608:
4605:
4602:
4599:
4596:
4593:
4590:
4583:
4580:
4579:
4576:
4573:
4570:
4567:
4564:
4561:
4558:
4555:
4552:
4549:
4546:
4543:
4540:
4537:
4534:
4531:
4528:
4525:
4522:
4519:
4516:
4513:
4510:
4507:
4504:
4501:
4498:
4495:
4492:
4489:
4486:
4483:
4480:
4477:
4474:
4471:
4468:
4465:
4462:
4459:
4456:
4453:
4450:
4447:
4444:
4441:
4438:
4435:
4432:
4430:WindowDecorator
4429:
4426:
4423:
4420:
4417:
4414:
4411:
4408:
4405:
4402:
4399:
4396:
4393:
4390:
4387:
4384:
4381:
4378:
4375:
4372:
4369:
4366:
4363:
4360:
4357:
4354:
4351:
4348:
4345:
4342:
4339:
4336:
4333:
4330:
4327:
4324:
4321:
4318:
4315:
4312:
4309:
4306:
4303:
4300:
4297:
4294:
4291:
4288:
4285:
4282:
4279:
4276:
4273:
4270:
4268:WindowDecorator
4267:
4264:
4261:
4258:
4255:
4252:
4249:
4246:
4243:
4240:
4237:
4234:
4231:
4228:
4225:
4222:
4219:
4216:
4213:
4210:
4207:
4204:
4201:
4198:
4195:
4192:
4189:
4186:
4183:
4180:
4177:
4174:
4171:
4168:
4165:
4162:
4159:
4156:
4153:
4150:
4147:
4144:
4141:
4139:WindowDecorator
4138:
4135:
4132:
4129:
4126:
4123:
4120:
4117:
4114:
4111:
4108:
4106:WindowDecorator
4105:
4102:
4099:
4096:
4089:
4086:
4085:
4082:
4079:
4076:
4073:
4070:
4067:
4064:
4061:
4058:
4055:
4052:
4049:
4046:
4043:
4040:
4037:
4034:
4031:
4028:
4025:
4022:
4019:
4016:
4013:
4010:
4007:
4004:
4001:
3998:
3995:
3992:
3989:
3986:
3983:
3980:
3977:
3974:
3971:
3968:
3962:
3957:
3952:
3951:
3948:
3945:
3942:
3939:
3936:
3933:
3930:
3927:
3924:
3921:
3918:
3915:
3912:
3909:
3906:
3903:
3900:
3897:
3894:
3891:
3888:
3885:
3882:
3879:
3876:
3873:
3870:
3867:
3864:
3861:
3858:
3855:
3852:
3849:
3847:"red"
3846:
3843:
3840:
3837:
3834:
3831:
3828:
3825:
3822:
3819:
3816:
3813:
3810:
3807:
3804:
3801:
3798:
3795:
3792:
3789:
3786:
3783:
3780:
3777:
3774:
3771:
3768:
3765:
3762:
3759:
3756:
3753:
3750:
3747:
3744:
3741:
3738:
3735:
3732:
3729:
3726:
3723:
3720:
3717:
3714:
3711:
3708:
3705:
3702:
3699:
3696:
3693:
3690:
3687:
3684:
3681:
3678:
3675:
3672:
3669:
3666:
3663:
3660:
3657:
3654:
3651:
3648:
3645:
3642:
3639:
3636:
3633:
3630:
3627:
3624:
3621:
3618:
3615:
3612:
3609:
3606:
3603:
3600:
3597:
3594:
3591:
3588:
3585:
3582:
3579:
3576:
3573:
3570:
3567:
3564:
3561:
3558:
3555:
3552:
3549:
3546:
3543:
3540:
3537:
3534:
3531:
3528:
3525:
3519:
3514:
3513:
3510:
3507:
3504:
3501:
3498:
3495:
3492:
3489:
3486:
3483:
3480:
3477:
3474:
3471:
3468:
3465:
3462:
3459:
3456:
3453:
3450:
3447:
3444:
3441:
3438:
3435:
3432:
3429:
3426:
3423:
3420:
3417:
3414:
3411:
3408:
3405:
3402:
3399:
3396:
3393:
3390:
3387:
3384:
3381:
3378:
3375:
3372:
3369:
3366:
3363:
3360:
3357:
3354:
3351:
3348:
3345:
3342:
3339:
3336:
3333:
3330:
3327:
3324:
3321:
3318:
3315:
3312:
3309:
3306:
3303:
3300:
3297:
3294:
3291:
3288:
3285:
3282:
3279:
3276:
3273:
3270:
3267:
3264:
3261:
3258:
3255:
3252:
3249:
3246:
3243:
3240:
3237:
3234:
3231:
3228:
3225:
3222:
3219:
3216:
3213:
3210:
3207:
3204:
3201:
3198:
3195:
3192:
3189:
3186:
3183:
3180:
3177:
3174:
3171:
3168:
3165:
3162:
3159:
3156:
3153:
3150:
3147:
3144:
3141:
3138:
3135:
3132:
3129:
3126:
3123:
3120:
3117:
3114:
3111:
3108:
3105:
3102:
3099:
3096:
3093:
3090:
3087:
3084:
3081:
3078:
3075:
3072:
3069:
3066:
3063:
3060:
3057:
3054:
3051:
3048:
3045:
3042:
3039:
3036:
3033:
3030:
3027:
3024:
3021:
3018:
3015:
3012:
3009:
3006:
3003:
3000:
2997:
2994:
2991:
2988:
2985:
2982:
2979:
2976:
2973:
2970:
2967:
2964:
2961:
2958:
2955:
2952:
2949:
2946:
2943:
2940:
2937:
2934:
2931:
2928:
2925:
2922:
2919:
2916:
2913:
2910:
2907:
2904:
2901:
2898:
2895:
2892:
2889:
2886:
2883:
2880:
2877:
2874:
2871:
2868:
2865:
2862:
2859:
2856:
2853:
2850:
2847:
2844:
2841:
2838:
2835:
2832:
2829:
2826:
2823:
2820:
2817:
2814:
2811:
2808:
2805:
2802:
2799:
2796:
2793:
2790:
2787:
2784:
2781:
2778:
2775:
2772:
2769:
2766:
2763:
2760:
2757:
2754:
2751:
2748:
2745:
2742:
2739:
2736:
2733:
2730:
2727:
2724:
2721:
2718:
2715:
2712:
2709:
2706:
2703:
2700:
2697:
2694:
2691:
2688:
2685:
2682:
2681:
2678:
2675:
2672:
2669:
2666:
2663:
2660:
2657:
2654:
2651:
2648:
2645:
2642:
2639:
2636:
2633:
2630:
2627:
2625:"red"
2624:
2621:
2618:
2615:
2612:
2609:
2606:
2603:
2600:
2597:
2594:
2591:
2588:
2585:
2582:
2579:
2576:
2573:
2570:
2567:
2564:
2561:
2558:
2555:
2552:
2549:
2546:
2543:
2540:
2537:
2534:
2531:
2528:
2525:
2522:
2519:
2516:
2513:
2510:
2507:
2504:
2501:
2498:
2495:
2492:
2489:
2486:
2483:
2480:
2477:
2474:
2471:
2468:
2465:
2462:
2459:
2456:
2453:
2450:
2447:
2444:
2441:
2438:
2435:
2432:
2429:
2426:
2423:
2420:
2417:
2414:
2411:
2408:
2405:
2402:
2399:
2396:
2393:
2390:
2387:
2384:
2381:
2378:
2375:
2372:
2369:
2366:
2363:
2360:
2357:
2354:
2351:
2348:
2345:
2342:
2339:
2336:
2333:
2330:
2327:
2324:
2321:
2318:
2315:
2312:
2309:
2306:
2303:
2300:
2297:
2294:
2291:
2288:
2285:
2282:
2279:
2276:
2273:
2270:
2267:
2264:
2261:
2258:
2255:
2252:
2249:
2246:
2243:
2240:
2237:
2234:
2231:
2228:
2225:
2222:
2219:
2216:
2213:
2210:
2207:
2199:
2187:
2186:
2183:
2180:
2177:
2174:
2171:
2168:
2165:
2162:
2159:
2156:
2153:
2150:
2147:
2144:
2141:
2138:
2135:
2132:
2129:
2126:
2123:
2120:
2117:
2114:
2111:
2108:
2105:
2102:
2099:
2096:
2093:
2090:
2087:
2081:
2080:
2077:
2074:
2071:
2068:
2065:
2062:
2059:
2056:
2053:
2050:
2047:
2044:
2041:
2038:
2035:
2032:
2029:
2026:
2023:
2020:
2017:
2014:
2011:
2008:
2005:
2002:
1999:
1996:
1993:
1990:
1987:
1984:
1981:
1978:
1975:
1972:
1969:
1966:
1963:
1960:
1957:
1954:
1951:
1948:
1945:
1942:
1939:
1936:
1933:
1930:
1927:
1924:
1921:
1918:
1915:
1912:
1909:
1906:
1903:
1900:
1897:
1894:
1891:
1888:
1885:
1882:
1879:
1876:
1873:
1870:
1867:
1864:
1861:
1858:
1855:
1852:
1849:
1846:
1843:
1840:
1837:
1834:
1831:
1828:
1825:
1822:
1819:
1816:
1813:
1810:
1807:
1804:
1801:
1798:
1795:
1792:
1789:
1786:
1783:
1780:
1777:
1774:
1771:
1768:
1765:
1762:
1759:
1756:
1753:
1750:
1747:
1744:
1741:
1738:
1735:
1732:
1729:
1726:
1723:
1720:
1717:
1714:
1711:
1708:
1705:
1702:
1699:
1696:
1693:
1690:
1687:
1684:
1681:
1678:
1675:
1672:
1669:
1666:
1663:
1660:
1657:
1654:
1651:
1648:
1645:
1642:
1639:
1636:
1633:
1630:
1627:
1624:
1621:
1618:
1615:
1612:
1609:
1606:
1603:
1600:
1597:
1594:
1591:
1588:
1585:
1582:
1579:
1576:
1573:
1570:
1567:
1564:
1561:
1558:
1555:
1552:
1549:
1546:
1543:
1540:
1537:
1534:
1531:
1528:
1525:
1522:
1519:
1516:
1513:
1510:
1507:
1504:
1501:
1498:
1495:
1492:
1489:
1486:
1483:
1480:
1477:
1474:
1471:
1468:
1465:
1462:
1459:
1456:
1453:
1450:
1447:
1444:
1441:
1438:
1435:
1432:
1429:
1426:
1423:
1420:
1417:
1414:
1411:
1408:
1405:
1402:
1399:
1396:
1393:
1390:
1387:
1384:
1381:
1378:
1375:
1372:
1369:
1366:
1363:
1360:
1357:
1354:
1351:
1348:
1345:
1342:
1339:
1336:
1333:
1330:
1327:
1324:
1321:
1318:
1315:
1312:
1309:
1306:
1303:
1300:
1297:
1294:
1291:
1288:
1285:
1282:
1279:
1276:
1273:
1270:
1267:
1264:
1261:
1258:
1255:
1252:
1249:
1246:
1243:
1240:
1237:
1234:
1231:
1228:
1225:
1222:
1219:
1216:
1213:
1210:
1207:
1204:
1201:
1198:
1195:
1192:
1189:
1186:
1183:
1180:
1177:
1174:
1171:
1168:
1165:
1162:
1159:
1156:
1153:
1150:
1147:
1144:
1141:
1138:
1135:
1132:
1129:
1126:
1123:
1120:
1117:
1114:
1111:
1108:
1105:
1102:
1099:
1096:
1093:
1090:
1087:
1084:
1081:
1078:
1075:
1072:
1069:
1066:
1063:
1060:
1057:
1054:
1051:
1048:
1045:
1042:
1039:
1036:
1033:
1030:
1027:
1024:
1021:
1018:
1015:
1012:
1009:
1006:
1003:
1000:
997:
994:
991:
988:
985:
982:
979:
976:
973:
970:
967:
964:
961:
958:
955:
952:
949:
946:
943:
940:
937:
934:
931:
928:
925:
922:
919:
916:
913:
910:
907:
904:
901:
898:
895:
892:
889:
886:
883:
880:
877:
874:
871:
868:
865:
862:
859:
856:
853:
850:
847:
844:
841:
838:
835:
832:
829:
826:
823:
820:
817:
814:
811:
808:
805:
802:
799:
796:
793:
790:
787:
784:
781:
778:
775:
772:
769:
766:
763:
760:
757:
754:
751:
748:
745:
742:
739:
736:
733:
730:
727:
724:
721:
718:
715:
712:
709:
706:
703:
700:
697:
694:
691:
688:
685:
679:
674:
665:
661:
657:
656:and returns to
653:
649:
645:
641:
637:
633:
629:
627:
623:
619:
615:
611:
609:
605:
601:
597:
593:
586:
582:
581:). This makes
578:
574:
570:
566:
548:
543:
483:
471:
454:
437:
425:
419:
399:
394:
392:Common usecases
384:method and the
374:WindowDecorator
338:ScrollingWindow
319:ScrollingWindow
291:
214:methods to the
127:
120:
116:
105:
97:
94:
78:
69:design patterns
60:
24:
17:
12:
11:
5:
10533:
10523:
10522:
10505:
10504:
10502:
10501:
10496:
10490:
10488:
10484:
10483:
10481:
10480:
10475:
10469:
10467:
10463:
10462:
10460:
10459:
10454:
10449:
10444:
10439:
10434:
10429:
10424:
10419:
10417:John Vlissides
10414:
10409:
10404:
10398:
10396:
10392:
10391:
10389:
10388:
10381:
10373:
10371:
10367:
10366:
10364:
10363:
10358:
10353:
10348:
10343:
10338:
10333:
10328:
10323:
10318:
10313:
10308:
10303:
10298:
10292:
10290:
10284:
10283:
10281:
10280:
10275:
10270:
10265:
10260:
10255:
10250:
10245:
10240:
10235:
10230:
10225:
10217:
10212:
10207:
10206:
10205:
10200:
10190:
10185:
10179:
10177:
10169:
10168:
10166:
10165:
10160:
10155:
10150:
10145:
10140:
10135:
10130:
10125:
10120:
10115:
10110:
10105:
10100:
10095:
10090:
10085:
10079:
10077:
10069:
10068:
10065:
10064:
10062:
10061:
10056:
10051:
10046:
10041:
10036:
10031:
10026:
10021:
10016:
10011:
10005:
10003:
9997:
9996:
9994:
9993:
9988:
9983:
9978:
9973:
9968:
9963:
9957:
9955:
9949:
9948:
9946:
9945:
9940:
9935:
9933:Factory method
9930:
9925:
9919:
9917:
9908:
9900:
9899:
9892:
9891:
9884:
9877:
9869:
9863:
9862:
9857:
9849:
9848:External links
9846:
9843:
9842:
9824:
9800:
9787:
9764:
9740:
9719:
9695:
9681:
9678:on 2015-07-07.
9663:
9656:
9631:
9630:
9628:
9625:
9624:
9623:
9618:
9613:
9608:
9606:Abstract class
9603:
9598:
9591:
9588:
9585:
9316:AbstractCoffee
9262:AbstractCoffee
9257:
9254:
9251:
9245:
8546:
8543:
8540:
8537:
8060:
8057:
8054:
7942:CacheDecorator
7117:CacheDecorator
6650:
6640:
6637:
5719:
5716:
5713:
5710:
5568:getIngredients
5476:
5446:getIngredients
5428:getIngredients
5296:getIngredients
5278:getIngredients
5152:getIngredients
5134:getIngredients
5003:
4970:getIngredients
4898:getIngredients
4860:
4854:
4851:
4835:getDescription
4742:org.junit.Test
4728:
4712:getDescription
4696:getDescription
4589:
4559:getDescription
4541:getDescription
4397:getDescription
4379:getDescription
4241:getDescription
4223:getDescription
4095:
4062:getDescription
4047:// Draw window
3999:getDescription
3967:
3961:
3958:
3956:
3953:
3535:<string>
3524:
3518:
3515:
3274:authorizedUser
3217:authorizedUser
2701:<string>
2689:<memory>
2684:
2220:<string>
2209:
2206:
2203:
2198:
2195:
2086:
695:<memory>
684:
678:
675:
673:
670:
547:
544:
542:
539:
536:
535:
532:
526:
525:
522:
518:
517:
514:
508:
507:
504:
482:
479:
475:Facade pattern
470:
467:
453:
450:
436:
433:
421:Main article:
418:
415:
398:
395:
393:
390:
290:
287:
283:.NET Framework
227:
226:
219:
200:
187:class, pass a
181:
170:
126:
123:
113:
112:
109:
100:objects that
93:
90:
86:
85:
82:
77:
74:
59:
56:
36:design pattern
15:
9:
6:
4:
3:
2:
10532:
10521:
10518:
10517:
10515:
10500:
10497:
10495:
10492:
10491:
10489:
10485:
10479:
10476:
10474:
10471:
10470:
10468:
10464:
10458:
10455:
10453:
10450:
10448:
10445:
10443:
10442:Robert Martin
10440:
10438:
10437:Martin Fowler
10435:
10433:
10430:
10428:
10425:
10423:
10420:
10418:
10415:
10413:
10412:Ralph Johnson
10410:
10408:
10405:
10403:
10400:
10399:
10397:
10393:
10387:
10386:
10382:
10380:
10379:
10375:
10374:
10372:
10368:
10362:
10359:
10357:
10354:
10352:
10349:
10347:
10344:
10342:
10339:
10337:
10334:
10332:
10329:
10327:
10324:
10322:
10319:
10317:
10314:
10312:
10309:
10307:
10304:
10302:
10299:
10297:
10294:
10293:
10291:
10285:
10279:
10276:
10274:
10271:
10269:
10266:
10264:
10261:
10259:
10256:
10254:
10251:
10249:
10248:Active record
10246:
10244:
10241:
10239:
10238:Naked objects
10236:
10234:
10231:
10229:
10228:Specification
10226:
10224:
10222:
10218:
10216:
10213:
10211:
10208:
10204:
10201:
10199:
10196:
10195:
10194:
10191:
10189:
10186:
10184:
10181:
10180:
10178:
10176:
10173:Architectural
10170:
10164:
10161:
10159:
10156:
10154:
10151:
10149:
10146:
10144:
10141:
10139:
10136:
10134:
10131:
10129:
10126:
10124:
10121:
10119:
10116:
10114:
10111:
10109:
10106:
10104:
10101:
10099:
10096:
10094:
10091:
10089:
10086:
10084:
10083:Active object
10081:
10080:
10078:
10076:
10070:
10060:
10057:
10055:
10052:
10050:
10047:
10045:
10042:
10040:
10037:
10035:
10032:
10030:
10027:
10025:
10022:
10020:
10017:
10015:
10012:
10010:
10007:
10006:
10004:
10002:
9998:
9992:
9989:
9987:
9984:
9982:
9979:
9977:
9974:
9972:
9969:
9967:
9964:
9962:
9959:
9958:
9956:
9954:
9950:
9944:
9941:
9939:
9936:
9934:
9931:
9929:
9926:
9924:
9921:
9920:
9918:
9916:
9912:
9909:
9907:
9901:
9897:
9890:
9885:
9883:
9878:
9876:
9871:
9870:
9867:
9861:
9858:
9855:
9852:
9851:
9838:
9834:
9828:
9814:
9813:w3sDesign.com
9810:
9804:
9790:
9784:
9777:
9776:
9768:
9754:
9753:w3sDesign.com
9750:
9744:
9736:
9730:
9722:
9720:0-201-63361-2
9716:
9712:
9708:
9707:
9699:
9691:
9685:
9677:
9673:
9667:
9659:
9657:0-201-63361-2
9653:
9649:
9645:
9644:
9636:
9632:
9622:
9619:
9617:
9614:
9612:
9609:
9607:
9604:
9602:
9599:
9597:
9594:
9593:
9584:
9553:WithSprinkles
9424:WithSprinkles
9250:
9244:
9166:AluminiumBike
8596:AluminiumBike
8536:
8488:WithSprinkles
8287:WithSprinkles
8052:
8047:
8044:
8042:
8037:
8036:
7948:random_square
7918:random_square
6988:initial_value
6916:seed_modifier
6853:seed_modifier
6847:seed_modifier
6835:seed_modifier
6648:
6646:
6531:wrapComponent
6489:"Client:
6447:wrapComponent
5709:
5676:WithSprinkles
5474:
5341:WithSprinkles
5326:WithSprinkles
5001:
4858:
4850:
4730:import static
4726:
4723:
4721:
4587:
4093:
3965:
3522:
2652:colored_shape
2619:colored_shape
2202:
2194:
2192:
2084:
1259:"%"
682:
669:
662:addBehavior()
650:addBehavior()
602:addBehavior()
590:
564:
563:class diagram
561:
558:In the above
552:
533:
531:
528:
527:
523:
520:
519:
515:
513:
510:
509:
505:
502:
501:
498:
496:
492:
488:
478:
476:
466:
462:
459:
458:compositional
449:
447:
443:
432:
430:
424:
414:
411:
406:
404:
389:
387:
383:
379:
375:
371:
366:
363:
359:
355:
351:
347:
343:
339:
335:
330:
328:
324:
320:
316:
312:
308:
304:
295:
286:
284:
280:
276:
272:
267:
265:
261:
257:
252:
250:
246:
242:
238:
233:
230:
224:
220:
217:
213:
209:
205:
201:
198:
194:
190:
186:
182:
179:
176:class, add a
175:
171:
168:
165:class into a
164:
160:
159:
158:
156:
152:
148:
144:
137:class diagram
136:
131:
122:
110:
103:
102:
101:
89:
83:
80:
79:
73:
71:
70:
65:
55:
53:
49:
45:
41:
37:
33:
29:
22:
10494:Anti-pattern
10457:Linda Rising
10383:
10376:
10321:Lazy loading
10253:Identity map
10220:
9975:
9904:Gang of Four
9836:
9827:
9816:. Retrieved
9812:
9803:
9792:. Retrieved
9774:
9767:
9756:. Retrieved
9752:
9743:
9705:
9698:
9684:
9676:the original
9666:
9642:
9635:
9581:
9496:SimpleCoffee
9310:SimpleCoffee
9274:"Cost:
9248:
9242:
9184:SportPackage
9007:SportPackage
8992:SportPackage
8534:
8425:SimpleCoffee
8371:"Cost:
8098:SimpleCoffee
8049:
8045:
8038:
8034:
8033:
8014:min_filtered
7990:max_filtered
7984:MinDecorator
7978:min_filtered
7966:random_cache
7960:MaxDecorator
7954:max_filtered
7936:random_cache
7924:RandomSquare
7528:MinDecorator
7342:MaxDecorator
6889:seed_from_xy
6814:RandomSquare
6751:seed_from_xy
6642:
6594:$ component2
6585:$ component1
6570:$ component2
6549:$ component1
5707:
5616:SimpleCoffee
5468:
4995:
4919:SimpleCoffee
4856:
4848:
4817:assertEquals
4808:SimpleWindow
4724:
4719:
4709:
4663:SimpleWindow
4581:
4247://Delegation
4208://Delegation
4087:
4017:SimpleWindow
3963:
3829:ColoredShape
3700:ColoredShape
3685:ColoredShape
3520:
3367:BasicWebPage
2761:BasicWebPage
2616:ColoredShape
2439:ColoredShape
2427:ColoredShape
2200:
2191:godbolt page
2188:
2082:
680:
592:Subclasses (
591:
557:
484:
472:
463:
455:
438:
426:
407:
400:
385:
381:
377:
373:
370:SimpleWindow
369:
367:
361:
357:
353:
349:
345:
341:
337:
333:
331:
326:
322:
318:
314:
300:
270:
268:
260:compile time
253:
248:
244:
234:
231:
228:
222:
218:pointer; and
215:
211:
203:
196:
192:
188:
184:
177:
173:
166:
162:
150:
140:
114:
95:
87:
67:
63:
61:
31:
25:
10466:Communities
10447:Jim Coplien
10422:Grady Booch
10407:Erich Gamma
10351:Type tunnel
10336:Object pool
10331:Null object
10326:Mock object
10188:Interceptor
10158:Thread pool
10073:Concurrency
10019:Interpreter
9779:(paperback)
9475:ingredients
9466:ingredients
9406:ingredients
9397:ingredients
9340:ingredients
9292:ingredients
9145:UpgradeBike
8401:ingredients
8323:ingredients
8266:ingredients
8218:ingredients
8209:ingredients
8128:ingredients
8086:ingredients
6564:$ component
6540:$ component
6399:__construct
6387:$ component
6192:__construct
5988:__construct
5805:__construct
3433:make_unique
3388:make_unique
3361:make_unique
2018:make_unique
1967:make_unique
1916:make_unique
1889:make_unique
1784:make_unique
1733:make_unique
1706:make_unique
1199:percentage_
1157:percentage_
634:operation()
491:polymorphic
305:. To allow
271:independent
256:subclassing
153:class that
10361:Delegation
10296:Blackboard
10001:Behavioral
9953:Structural
9915:Creational
9818:2017-08-12
9794:2012-07-02
9758:2017-08-12
9627:References
9469:__getobj__
9439:__getobj__
9400:__getobj__
9370:__getobj__
9067:GetDetails
9052:GetDetails
8929:GetDetails
8914:GetDetails
8842:GetDetails
8827:GetDetails
8698:GetDetails
8659:CarbonBike
8635:GetDetails
8572:GetDetails
8416:initialize
8173:initialize
7171:DataSquare
6967:DataSquare
6790:s32_to_u16
6772:s32_to_u16
6733:0x00007FFF
6670:s32_to_u16
5020:implements
4922:implements
4109:implements
4020:implements
3922:red_circle
3892:red_circle
3865:red_circle
3841:red_circle
3337:unique_ptr
3166:unique_ptr
3007:unique_ptr
2959:unique_ptr
2866:unique_ptr
1865:unique_ptr
1682:unique_ptr
1556:component_
1520:component_
1508:unique_ptr
1370:component_
1334:component_
1322:unique_ptr
1277:percentage
1253:percentage
1193:percentage
1184:component_
1148:component_
1136:unique_ptr
1079:unique_ptr
986:component_
959:component_
947:unique_ptr
658:Decorator1
654:Component1
646:Decorator2
642:Decorator2
638:Decorator1
624:Component1
620:Decorator2
616:Decorator1
598:Decorator2
594:Decorator1
311:scrollbars
289:Motivation
133:Decorator
10427:Kent Beck
10153:Semaphore
10143:Scheduler
9986:Flyweight
9976:Decorator
9971:Composite
9943:Singleton
9938:Prototype
9729:cite book
9223:WriteLine
9190:basicBike
9157:basicBike
8560:interface
8548:namespace
8155:protected
7792:decorated
7753:decorated
7747:decorated
7735:decorated
7687:decorated
7627:decorated
7573:decorated
7567:decorated
7549:decorated
7501:decorated
7441:decorated
7387:decorated
7381:decorated
7363:decorated
7282:decorated
7156:decorated
7150:decorated
7138:decorated
6537:Component
6510:component
6474:component
6459:component
6435:component
6414:component
6198:Component
6180:Decorator
5994:Component
5976:Decorator
5958:Component
5952:Decorator
5793:Component
5742:protected
5733:protected
5727:Component
5688:printInfo
5655:printInfo
5622:printInfo
5499:printInfo
5419:@Override
5374:@Override
5269:@Override
5221:@Override
5125:@Override
5086:@Override
4961:@Override
4931:@Override
4868:interface
4720:decorates
4532:@Override
4472:@Override
4370:@Override
4310:@Override
4214:@Override
4178:@Override
4053:@Override
4029:@Override
3975:interface
3634:to_string
2391:to_string
1091:component
1049:component
1040:component
1016:protected
968:component
648:performs
606:Component
587:Component
583:Decorator
575:Component
571:component
567:Decorator
541:Structure
521:Decorator
307:scrolling
249:Decorator
245:Component
223:Component
216:Component
212:Component
204:Decorator
197:Component
193:Decorator
189:Component
185:Decorator
178:Component
174:Decorator
167:Decorator
163:Component
151:Decorator
117:Decorator
106:Component
98:Decorator
64:decorator
10514:Category
10487:See also
10289:patterns
10175:patterns
10128:Proactor
10075:patterns
10049:Strategy
10039:Observer
10029:Mediator
10024:Iterator
9906:patterns
9590:See also
9583:Output:
9520:WithMilk
9355:WithMilk
9243:Output:
9211:upgraded
9196:upgraded
9175:upgraded
9130:BikeShop
9106:GetPrice
9091:GetPrice
9085:override
9046:override
8968:GetPrice
8953:GetPrice
8947:override
8908:override
8812:GetPrice
8797:GetPrice
8740:readonly
8719:abstract
8677:GetPrice
8614:GetPrice
8581:GetPrice
8535:Output:
8452:WithMilk
8230:WithMilk
8080:abstract
8071:abstract
8062:abstract
7723:__init__
7537:__init__
7351:__init__
7126:__init__
6976:__init__
6823:__init__
6802:<<
6606:$ client
6528:function
6516:getValue
6396:function
6363:getValue
6327:getValue
6324:function
6252:function
6189:function
6159:getValue
6123:getValue
6120:function
6048:function
5985:function
5946:abstract
5916:getValue
5913:function
5880:function
5802:function
5775:getValue
5772:function
5766:abstract
5757:function
5751:abstract
5721:abstract
5643:WithMilk
5188:WithMilk
5173:WithMilk
5011:abstract
4100:abstract
3934:<<
3919:<<
3877:<<
3862:<<
3673:typename
3667:template
3532:#include
3526:#include
3487:<<
3268:override
3241:<<
3235:<<
3109:override
3082:<<
3076:<<
2971:_webPage
2932:_webPage
2926:override
2887:_webPage
2818:<<
2812:<<
2797:override
2698:#include
2692:#include
2686:#include
2664:<<
2649:<<
2526:override
2355:override
2217:#include
2211:#include
2160:richness
2127:Drinking
2088:Drinking
1922:IceCubes
1871:Beverage
1844:<<
1739:IceCubes
1688:Beverage
1628:<<
1622:<<
1616:<<
1595:override
1514:Beverage
1442:<<
1436:<<
1430:<<
1409:override
1328:Beverage
1310:IceCubes
1289:IceCubes
1256:<<
1250:<<
1244:<<
1223:override
1142:Beverage
1085:Beverage
953:Beverage
908:Beverage
881:<<
866:override
842:Beverage
815:<<
800:override
776:Beverage
743:Beverage
704:Beverage
692:#include
686:#include
672:Examples
626:object.
281:and the
264:run-time
239:(a.k.a.
199:pointer;
143:run-time
58:Overview
10341:Servant
10273:Model 2
10133:Reactor
10123:Monitor
10088:Balking
10059:Visitor
10034:Memento
10014:Command
9961:Adapter
9928:Builder
9217:Console
8821:virtual
8791:virtual
8737:private
8524:Program
8344:Program
8056:Crystal
6946:randint
6525:private
6480:getData
6384:private
6279:getData
6255:getData
6177:extends
6075:getData
6051:getData
5973:extends
5955:extends
5883:getData
5790:extends
5760:getData
5745:$ value
5547:getCost
5529:println
5401:getCost
5383:getCost
5329:extends
5251:getCost
5230:getCost
5176:extends
5116:getCost
5095:getCost
5029:private
4940:getCost
4883:getCost
4684:println
4511:private
4427:extends
4349:private
4265:extends
4118:private
3928:GetName
3871:GetName
3775:GetName
3754:GetName
3592:GetName
3472:display
3343:WebPage
3286:display
3262:display
3205:webPage
3178:webPage
3172:WebPage
3127:display
3103:display
3046:webPage
3019:webPage
3013:WebPage
2965:WebPage
2947:private
2938:display
2920:display
2905:webPage
2878:webPage
2872:WebPage
2848:WebPage
2791:display
2767:WebPage
2749:default
2740:WebPage
2734:virtual
2719:display
2713:virtual
2707:WebPage
2658:GetName
2541:GetName
2517:GetName
2346:GetName
2265:GetName
2253:virtual
2247:default
2232:virtual
1640:private
1583:virtual
1571:spoons_
1529:spoons_
1454:private
1397:virtual
1268:private
1211:virtual
1067:private
995:virtual
854:virtual
788:virtual
752:default
737:virtual
716:virtual
512:Adapter
506:Intent
503:Pattern
487:adapter
446:Visitor
442:Adapter
208:forward
206:class,
202:In the
191:to the
183:In the
172:In the
96:Define
10395:People
10278:Broker
9981:Facade
9966:Bridge
9785:
9717:
9654:
9571:coffee
9565:coffee
9547:coffee
9538:coffee
9532:coffee
9514:coffee
9505:coffee
9490:coffee
9298:"
9139:static
9136:public
9124:public
9088:double
9082:public
9049:string
9043:public
9004:public
8986:public
8950:double
8944:public
8911:string
8905:public
8869:public
8851:public
8824:string
8818:public
8794:double
8788:public
8752:public
8716:public
8695:string
8692:public
8686:1000.0
8674:double
8671:public
8653:public
8632:string
8629:public
8611:double
8608:public
8590:public
8578:double
8569:string
8557:public
8512:coffee
8500:coffee
8482:coffee
8476:coffee
8464:coffee
8446:coffee
8440:coffee
8419:coffee
8407:"
8395:coffee
8377:coffee
8362:Coffee
8356:coffee
8167:Coffee
8158:getter
8152:Coffee
8104:Coffee
8068:Coffee
7882:"
7876:"
7783:return
7678:return
7666:return
7492:return
7480:return
7306:return
7051:return
6940:random
6937:return
6919:random
6769:return
6739:bottom
6736:return
6721:bottom
6703:0xF000
6664:random
6661:import
6639:Python
6615:Client
6591:return
6504:$ this
6495:"
6492:\t\t\t
6468:$ this
6453:$ this
6441:$ this
6429:$ this
6408:$ this
6393:public
6378:Client
6351:$ this
6339:$ this
6336:return
6321:public
6312:"
6297:$ this
6267:$ this
6264:return
6249:public
6240:$ data
6228:$ this
6210:$ this
6201:$ data
6186:public
6147:$ this
6135:$ this
6132:return
6117:public
6108:"
6093:$ this
6063:$ this
6060:return
6045:public
6036:$ data
6024:$ this
6006:$ this
5997:$ data
5982:public
5928:$ this
5925:return
5910:public
5895:$ this
5892:return
5877:public
5868:"
5853:$ this
5832:$ this
5814:$ this
5799:public
5769:public
5754:public
5736:$ data
5604:Coffee
5592:String
5580:static
5577:public
5517:System
5505:Coffee
5493:static
5490:public
5478:public
5471:Coffee
5437:return
5425:String
5422:public
5392:return
5380:double
5377:public
5347:Coffee
5338:public
5287:return
5275:String
5272:public
5242:return
5227:double
5224:public
5194:Coffee
5185:public
5143:return
5131:String
5128:public
5107:return
5092:double
5089:public
5053:Coffee
5044:public
5035:Coffee
5023:Coffee
5008:public
4998:Coffee
4979:return
4967:String
4964:public
4949:return
4937:double
4934:public
4925:Coffee
4913:public
4895:String
4892:public
4880:double
4877:public
4871:Coffee
4865:public
4778:Window
4763:public
4748:public
4739:import
4716:Window
4672:System
4633:Window
4618:String
4606:static
4603:public
4591:public
4584:Window
4550:return
4538:String
4535:public
4475:public
4445:Window
4436:public
4388:return
4376:String
4373:public
4313:public
4283:Window
4274:public
4232:return
4220:String
4217:public
4181:public
4145:Window
4136:public
4124:Window
4112:Window
4090:Window
4071:return
4059:String
4056:public
4032:public
4023:Window
3996:String
3978:Window
3972:public
3898:Resize
3835:Circle
3805:string
3766:return
3751:string
3715:string
3691:public
3682:struct
3652:radius
3640:radius
3613:string
3604:return
3589:string
3574:factor
3568:radius
3559:factor
3550:Resize
3541:Circle
3538:struct
3502:return
3466:myPage
3460:myPage
3421:myPage
3415:myPage
3376:myPage
3349:myPage
3139:struct
2980:struct
2839:struct
2779:string
2758:struct
2704:struct
2634:circle
2610:circle
2607:Circle
2571:string
2532:return
2514:string
2454:string
2424:struct
2409:radius
2397:radius
2370:string
2361:return
2343:string
2328:factor
2322:radius
2313:factor
2304:Resize
2289:Circle
2286:struct
2262:string
2223:struct
2178:spoons
2130:Coffee
2118:spoons
2069:return
2057:coffee
2045:coffee
2006:coffee
1994:coffee
1955:coffee
1943:coffee
1904:coffee
1895:Coffee
1877:coffee
1649:spoons
1625:spoons
1565:spoons
1490:public
1481:public
1385:count_
1343:count_
1304:public
1295:public
1118:public
1109:public
929:delete
914:public
905:public
848:public
839:public
782:public
773:public
767:Coffee
710:public
666:Client
632:calls
630:Client
612:Client
530:Facade
495:Facade
382:draw()
378:Window
334:Window
327:Window
315:Window
125:Intent
40:object
30:, the
10370:Books
10287:Other
10223:-tier
10044:State
9991:Proxy
9711:175ff
9648:175ff
9577:print
9544:print
9511:print
9421:class
9352:class
9307:class
9268:print
9259:class
9127:class
9097:=>
9058:=>
9013:IBike
8989:class
8959:=>
8920:=>
8878:IBike
8854:class
8836:_bike
8833:=>
8806:_bike
8803:=>
8773:_bike
8761:IBike
8746:_bike
8743:IBike
8731:IBike
8722:class
8704:=>
8683:=>
8665:IBike
8656:class
8641:=>
8623:100.0
8620:=>
8602:IBike
8593:class
8563:IBike
8506:print
8470:print
8434:print
8350:print
8341:class
8326:super
8302:super
8284:class
8269:super
8245:super
8227:class
8143:class
8095:class
8065:class
8035:Note:
8020:final
8002:final
7912:print
7873:print
7861:range
7840:range
7711:class
7525:class
7339:class
7315:cache
7252:cache
7213:cache
7165:cache
7114:class
6964:class
6811:class
6730:&
6513:->
6507:->
6477:->
6471:->
6456:->
6444:->
6432:->
6411:->
6375:class
6360:->
6354:->
6345:value
6342:->
6303:value
6300:->
6276:->
6270:->
6231:->
6216:value
6213:->
6171:class
6156:->
6150:->
6141:value
6138:->
6099:value
6096:->
6072:->
6066:->
6027:->
6012:value
6009:->
5967:class
5949:class
5934:value
5931:->
5898:->
5859:value
5856:->
5835:->
5820:value
5817:->
5784:class
5724:class
5481:class
5440:super
5395:super
5359:super
5323:class
5290:super
5245:super
5206:super
5170:class
5032:final
5014:class
4916:class
4811:()));
4760:@Test
4751:class
4666:()));
4594:class
4553:super
4490:super
4457:super
4421:class
4391:super
4328:super
4295:super
4259:class
4121:final
4103:class
4014:class
3808:color
3790:color
3760:const
3736:color
3730:color
3721:color
3718:&
3706:const
3658:10.0f
3649:float
3598:const
3556:float
3469:->
2935:->
2631:&
2586:shape
2580:Shape
2574:color
2556:color
2538:->
2535:shape
2523:const
2499:shape
2493:shape
2487:color
2481:color
2472:shape
2466:Shape
2460:color
2457:&
2445:const
2433:Shape
2415:10.0f
2406:float
2352:const
2310:float
2295:Shape
2271:const
2238:Shape
2226:Shape
2184:sugar
2145:cubes
2124:sugar
2106:cubes
2063:drink
2060:->
2024:Sugar
1829:drink
1826:->
1790:Sugar
1589:drink
1496:Sugar
1475:Sugar
1472:class
1463:count
1439:count
1403:drink
1379:count
1286:class
1274:float
1217:drink
1154:float
1100:class
1055:drink
1052:->
1001:drink
896:class
860:drink
830:class
794:drink
764:class
722:drink
701:class
241:trait
237:mixin
155:wraps
147:class
44:class
34:is a
10346:Twin
10203:MVVM
10118:Lock
10113:Join
9783:ISBN
9735:link
9715:ISBN
9652:ISBN
9445:cost
9436:cost
9427:<
9376:cost
9367:cost
9358:<
9322:cost
9313:<
9280:cost
9271:puts
9253:Ruby
9142:void
9100:base
9061:base
9031:bike
9025:base
9016:bike
8962:base
8923:base
8893:bike
8887:base
8881:bike
8779:bike
8764:bike
8383:cost
8368:puts
8299:cost
8290:<
8242:cost
8233:<
8200:cost
8191:cost
8149:<
8110:cost
8101:<
8077:cost
8026:draw
7819:draw
7651:<
7465:>
7240:None
7105:data
7060:data
7006:data
6994:None
6931:seed
6925:seed
6883:seed
6745:sign
6712:sign
6706:else
6697:sign
6688:<
6501:echo
6486:echo
6465:echo
6357:data
6273:data
6234:data
6153:data
6069:data
6030:data
5901:data
5838:data
5826:1000
5595:args
5586:main
5583:void
5571:());
5496:void
5484:Main
5065:this
4838:());
4766:void
4699:());
4621:args
4612:main
4609:void
4514:void
4496:draw
4481:draw
4478:void
4352:void
4334:draw
4319:draw
4316:void
4202:draw
4187:draw
4184:void
4157:this
4038:draw
4035:void
3987:draw
3984:void
3955:Java
3943:endl
3916:cout
3904:1.5f
3886:endl
3859:cout
3838:>
3832:<
3820:main
3679:>
3670:<
3547:void
3496:endl
3484:cout
3454:move
3442:>
3436:<
3409:move
3397:>
3391:<
3370:>
3364:<
3346:>
3340:<
3322:argv
3316:char
3310:argc
3301:main
3259:void
3250:endl
3232:cout
3214:void
3199:move
3175:>
3169:<
3100:void
3091:endl
3073:cout
3055:void
3040:move
3016:>
3010:<
2968:>
2962:<
2917:void
2899:move
2875:>
2869:<
2827:endl
2809:cout
2788:void
2782:html
2716:void
2673:endl
2646:cout
2598:main
2301:void
2172:with
2154:milk
2151:with
2136:with
2112:with
2097:with
2091:Soda
2039:move
2027:>
2021:<
1988:move
1976:>
1973:Milk
1970:<
1937:move
1925:>
1919:<
1898:>
1892:<
1874:>
1868:<
1853:endl
1841:cout
1823:soda
1811:soda
1805:move
1793:>
1787:<
1772:soda
1760:soda
1754:move
1742:>
1736:<
1721:soda
1715:>
1712:Soda
1709:<
1694:soda
1691:>
1685:<
1667:main
1613:cout
1586:void
1550:move
1517:>
1511:<
1427:cout
1400:void
1364:move
1331:>
1325:<
1241:cout
1214:void
1178:move
1145:>
1139:<
1124:Milk
1103:Milk
1088:>
1082:<
1022:void
998:void
980:move
956:>
950:<
878:cout
857:void
833:Soda
812:cout
791:void
719:void
628:The
618:and
372:and
348:and
279:Java
210:all
62:The
10215:ECS
10210:ADR
10198:MVP
10193:MVC
9559:new
9526:new
9502:new
9487:end
9484:end
9463:def
9460:end
9433:def
9418:end
9415:end
9394:def
9391:end
9364:def
9349:end
9346:end
9337:def
9334:end
9319:def
9304:end
9301:end
9265:def
9202:new
9181:new
9169:();
9163:new
9154:var
8845:();
8815:();
8584:();
8575:();
8530:new
8521:end
8518:end
8494:new
8458:new
8431:new
8413:def
8410:end
8347:def
8338:end
8335:end
8320:def
8317:end
8296:def
8281:end
8278:end
8263:def
8260:end
8239:def
8224:end
8221:end
8206:def
8203:end
8188:def
8185:end
8170:def
8137:end
8134:end
8125:def
8122:end
8107:def
8089:end
8083:def
8074:def
7996:100
7972:200
7930:635
7894:get
7879:%3d
7852:for
7831:for
7816:def
7798:get
7759:get
7756:def
7720:def
7693:get
7675:min
7660:min
7633:get
7594:get
7591:def
7588:min
7582:min
7555:min
7534:def
7507:get
7489:max
7474:max
7447:get
7408:get
7405:def
7402:max
7396:max
7369:max
7348:def
7321:get
7288:get
7258:set
7219:get
7180:get
7177:def
7123:def
7069:set
7066:def
7027:get
7024:def
6973:def
6958:255
6859:get
6856:def
6820:def
6748:def
6667:def
6618:();
6612:new
6576:new
6555:new
6519:();
6483:();
6426:();
6420:new
6366:();
6222:500
6162:();
6018:500
5778:();
5763:();
5715:PHP
5673:new
5640:new
5619:();
5613:new
5523:out
5410:0.2
5260:0.5
5155:();
5119:();
4901:();
4886:();
4805:new
4796:new
4787:new
4678:out
4660:new
4651:new
4642:new
4505:();
4499:();
4343:();
4337:();
4244:();
4205:();
4002:();
3990:();
3937:std
3910:std
3880:std
3853:std
3817:int
3799:std
3745:std
3709:std
3628:std
3607:std
3583:std
3490:std
3478:std
3475:();
3463:));
3448:std
3427:std
3418:));
3403:std
3382:std
3373:();
3355:std
3331:std
3307:int
3298:int
3289:();
3277:();
3244:std
3226:std
3193:std
3160:std
3130:();
3118:();
3085:std
3067:std
3034:std
3001:std
2953:std
2941:();
2893:std
2860:std
2821:std
2803:std
2773:std
2667:std
2640:std
2595:int
2565:std
2508:std
2448:std
2385:std
2364:std
2337:std
2256:std
2197:C++
2142:ice
2103:ice
2066:();
2033:std
2012:std
1982:std
1961:std
1931:std
1910:std
1901:();
1883:std
1859:std
1847:std
1835:std
1832:();
1799:std
1778:std
1748:std
1727:std
1718:();
1700:std
1676:std
1664:int
1646:int
1607:std
1604:();
1544:std
1526:int
1502:std
1460:int
1421:std
1418:();
1358:std
1340:int
1316:std
1235:std
1232:();
1172:std
1130:std
1073:std
1058:();
974:std
941:std
872:std
806:std
677:C++
636:on
560:UML
444:or
360:or
342:all
135:UML
26:In
10516::
9835:.
9811:.
9751:.
9731:}}
9727:{{
9713:.
9650:.
9289:#{
9277:#{
9232:);
9214:);
9193:);
9148:()
9115:10
9109:()
9094:()
9070:()
9055:()
8971:()
8956:()
8932:()
8917:()
8884:):
8830:()
8800:()
8701:()
8680:()
8638:()
8617:()
8542:C#
8392:#{
8374:#{
8029:()
7909:),
7870:):
7867:10
7858:in
7849:):
7846:10
7837:in
7828:):
7780:):
7738:):
7618:if
7615:):
7558:):
7432:if
7429:):
7372:):
7303:))
7237:==
7204:if
7201:):
7174:()
7141:):
7096:):
7048:):
7021:10
7015:10
6997:):
6880:):
6838:):
6805:16
6766:):
6682:if
6679:):
6588:);
6567:);
6462:);
6402:()
6330:()
6309:\n
6291:\t
6282:()
6258:()
6126:()
6105:\n
6087:\t
6078:()
6054:()
5919:()
5886:()
5865:\n
5847:\t
5808:()
5697:);
5685:);
5664:);
5652:);
5631:);
5550:()
5449:()
5431:()
5404:()
5386:()
5368:);
5299:()
5281:()
5254:()
5233:()
5215:);
5137:()
5098:()
4973:()
4943:()
4772:()
4562:()
4544:()
4520:()
4484:()
4466:);
4400:()
4382:()
4358:()
4322:()
4304:);
4226:()
4190:()
4065:()
4041:()
3940:::
3931:()
3913:::
3907:);
3883:::
3874:()
3856:::
3850:);
3823:()
3814:};
3802:::
3778:()
3772:::
3757:()
3748:::
3742:{}
3712:::
3664:};
3643:);
3631:::
3610:::
3595:()
3586:::
3571:*=
3493:::
3481:::
3451:::
3430:::
3406:::
3385:::
3358:::
3334:::
3295:};
3283:::
3265:()
3247:::
3229:::
3220:()
3211:{}
3208:))
3196:::
3163:::
3136:};
3124:::
3106:()
3088:::
3070:::
3061:()
3052:{}
3049:))
3037:::
3004:::
2977:};
2956:::
2923:()
2908:))
2896:::
2863:::
2836:};
2824:::
2806:::
2794:()
2776:::
2755:};
2743:()
2722:()
2670:::
2661:()
2643:::
2637:);
2601:()
2592:};
2568:::
2544:()
2520:()
2511:::
2505:{}
2490:),
2451:::
2421:};
2400:);
2388:::
2367:::
2349:()
2340:::
2325:*=
2283:};
2268:()
2259:::
2241:()
2193:.
2181:of
2157:of
2139:16
2121:of
2054:);
2048:),
2036:::
2015:::
2003:);
2000:3.
1997:),
1985:::
1964:::
1952:);
1949:16
1946:),
1934:::
1913:::
1886:::
1862:::
1850:::
1838:::
1820:);
1814:),
1802:::
1781:::
1769:);
1763:),
1751:::
1730:::
1703:::
1679:::
1670:()
1661:};
1610:::
1592:()
1559:))
1547:::
1505:::
1469:};
1424:::
1406:()
1373:))
1361:::
1319:::
1283:};
1238:::
1220:()
1187:))
1175:::
1133:::
1097:};
1076:::
1034:if
1028:()
1004:()
992:{}
989:))
977:::
944:::
923:()
893:};
875:::
863:()
827:};
809:::
797:()
758:};
746:()
725:()
668:.
644:.
589:.
251:.
10221:n
9888:e
9881:t
9874:v
9839:.
9821:.
9797:.
9761:.
9737:)
9723:.
9660:.
9574:.
9568:)
9562:(
9556:.
9550:=
9541:.
9535:)
9529:(
9523:.
9517:=
9508:.
9499:.
9493:=
9478:+
9472:.
9457:2
9454:.
9451:0
9448:+
9442:.
9409:+
9403:.
9388:5
9385:.
9382:0
9379:+
9373:.
9331:0
9328:.
9325:1
9295:}
9283:}
9238:}
9235:}
9226:(
9220:.
9208:(
9199:=
9187:(
9178:=
9160:=
9151:{
9133:{
9121:}
9118:;
9112:+
9103:.
9079:;
9073:+
9064:.
9040:}
9037:{
9034:)
9028:(
9022::
9019:)
9010:(
9001:{
8995::
8983:}
8980:;
8977:1
8974:+
8965:.
8941:;
8935:+
8926:.
8902:}
8899:{
8896:)
8890:(
8875:(
8866:{
8860::
8848:}
8839:.
8809:.
8785:}
8782:;
8776:=
8770:{
8767:)
8758:(
8749:;
8734:{
8728::
8713:}
8710:;
8689:;
8668:{
8662::
8650:}
8647:;
8626:;
8605:{
8599::
8587:}
8566:{
8554:;
8527:.
8515:)
8509:(
8503:)
8497:(
8491:.
8485:=
8479:)
8473:(
8467:)
8461:(
8455:.
8449:=
8443:)
8437:(
8428:.
8422:=
8404:}
8398:.
8386:}
8380:.
8365:)
8359::
8353:(
8329:+
8314:2
8311:.
8308:0
8305:+
8272:+
8257:5
8254:.
8251:0
8248:+
8215:.
8197:.
8182:)
8176:(
8164::
8119:0
8116:.
8113:1
8023:.
8017:)
8011:(
8005:=
7999:)
7993:,
7987:(
7981:=
7975:)
7969:,
7963:(
7957:=
7951:)
7945:(
7939:=
7933:)
7927:(
7921:=
7906:y
7903:,
7900:x
7897:(
7891:.
7888:s
7885:%
7864:(
7855:x
7843:(
7834:y
7825:s
7822:(
7813:)
7810:y
7807:,
7804:x
7801:(
7795:.
7789:.
7786:s
7777:y
7774:,
7771:x
7768:,
7765:s
7762:(
7750:=
7744:.
7741:s
7732:,
7729:s
7726:(
7717::
7708:)
7705:y
7702:,
7699:x
7696:(
7690:.
7684:.
7681:s
7672:.
7669:s
7663::
7657:.
7654:s
7648:)
7645:y
7642:,
7639:x
7636:(
7630:.
7624:.
7621:s
7612:y
7609:,
7606:x
7603:,
7600:s
7597:(
7585:=
7579:.
7576:s
7570:=
7564:.
7561:s
7552:,
7546:,
7543:s
7540:(
7531::
7522:)
7519:y
7516:,
7513:x
7510:(
7504:.
7498:.
7495:s
7486:.
7483:s
7477::
7471:.
7468:s
7462:)
7459:y
7456:,
7453:x
7450:(
7444:.
7438:.
7435:s
7426:y
7423:,
7420:x
7417:,
7414:s
7411:(
7399:=
7393:.
7390:s
7384:=
7378:.
7375:s
7366:,
7360:,
7357:s
7354:(
7345::
7336:)
7333:y
7330:,
7327:x
7324:(
7318:.
7312:.
7309:s
7300:y
7297:,
7294:x
7291:(
7285:.
7279:.
7276:s
7273:,
7270:y
7267:,
7264:x
7261:(
7255:.
7249:.
7246:s
7243::
7234:)
7231:y
7228:,
7225:x
7222:(
7216:.
7210:.
7207:s
7198:y
7195:,
7192:x
7189:,
7186:s
7183:(
7168:=
7162:.
7159:s
7153:=
7147:.
7144:s
7135:,
7132:s
7129:(
7120::
7111:u
7108:=
7102:.
7099:s
7093:u
7090:,
7087:y
7084:,
7081:x
7078:,
7075:s
7072:(
7057:.
7054:s
7045:y
7042:,
7039:x
7036:,
7033:s
7030:(
7018:*
7012:*
7009:=
7003:.
7000:s
6991:=
6985:,
6982:s
6979:(
6970::
6961:)
6955:,
6952:0
6949:(
6943:.
6934:)
6928:(
6922:.
6913:.
6910:s
6907:^
6904:)
6901:y
6898:,
6895:x
6892:(
6886:=
6877:y
6874:,
6871:x
6868:,
6865:s
6862:(
6850:=
6844:.
6841:s
6832:,
6829:s
6826:(
6817::
6808:)
6799:)
6796:y
6793:(
6787:(
6784:|
6781:)
6778:x
6775:(
6763:y
6760:,
6757:x
6754:(
6742:|
6727:x
6724:=
6718:0
6715:=
6709::
6700:=
6694::
6691:0
6685:x
6676:x
6673:(
6609:=
6603:}
6600:}
6597:;
6582:(
6573:=
6561:(
6552:=
6546:{
6543:)
6534:(
6522:}
6498:;
6450:(
6438:=
6417:=
6405:{
6390:;
6381:{
6372:}
6369:}
6348:+
6333:{
6318:}
6315:;
6306:}
6294:{
6285:.
6261:{
6246:}
6243:;
6237:=
6225:;
6219:=
6207:{
6204:)
6195:(
6183:{
6168:}
6165:}
6144:+
6129:{
6114:}
6111:;
6102:}
6090:{
6081:.
6057:{
6042:}
6039:;
6033:=
6021:;
6015:=
6003:{
6000:)
5991:(
5979:{
5964:}
5961:{
5943:}
5940:}
5937:;
5922:{
5907:}
5904:;
5889:{
5874:}
5871:;
5862:}
5850:{
5841:=
5829:;
5823:=
5811:{
5796:{
5781:}
5748:;
5739:;
5730:{
5703:}
5700:}
5694:c
5691:(
5682:c
5679:(
5670:=
5667:c
5661:c
5658:(
5649:c
5646:(
5637:=
5634:c
5628:c
5625:(
5610:=
5607:c
5601:{
5598:)
5589:(
5574:}
5565:.
5562:c
5559:+
5553:+
5544:.
5541:c
5538:+
5532:(
5526:.
5520:.
5514:{
5511:)
5508:c
5502:(
5487:{
5464:}
5461:}
5458:;
5452:+
5443:.
5434:{
5416:}
5413:;
5407:+
5398:.
5389:{
5371:}
5365:c
5362:(
5356:{
5353:)
5350:c
5344:(
5335:{
5314:}
5311:}
5308:;
5302:+
5293:.
5284:{
5266:}
5263:;
5257:+
5248:.
5236:{
5218:}
5212:c
5209:(
5203:{
5200:)
5197:c
5191:(
5182:{
5161:}
5158:}
5149:.
5140:{
5122:}
5113:.
5101:{
5083:}
5080:;
5077:c
5074:=
5068:.
5062:{
5059:)
5056:c
5050:(
5041:;
5026:{
4991:}
4988:}
4985:;
4976:{
4958:}
4955:;
4952:1
4946:{
4928:{
4907:}
4874:{
4844:}
4841:}
4832:.
4826:,
4820:(
4802:(
4793:(
4784:=
4775:{
4757:{
4745:;
4736:;
4705:}
4702:}
4693:.
4687:(
4681:.
4675:.
4657:(
4648:(
4639:=
4627:{
4624:)
4615:(
4600:{
4577:}
4574:}
4571:;
4565:+
4556:.
4547:{
4529:}
4523:{
4508:}
4493:.
4487:{
4469:}
4460:(
4454:{
4451:)
4442:(
4433:{
4415:}
4412:}
4409:;
4403:+
4394:.
4385:{
4367:}
4361:{
4346:}
4331:.
4325:{
4307:}
4298:(
4292:{
4289:)
4280:(
4271:{
4253:}
4250:}
4238:.
4229:{
4211:}
4199:.
4193:{
4175:}
4172:;
4166:=
4160:.
4154:{
4151:)
4142:(
4130:;
4115:{
4083:}
4080:}
4077:;
4068:{
4050:}
4044:{
4026:{
4008:}
3981:{
3949:}
3946:;
3925:.
3901:(
3895:.
3889:;
3868:.
3844:(
3826:{
3811:;
3796:}
3793:;
3787:+
3781:+
3769:T
3763:{
3739:)
3733:(
3727::
3724:)
3703:(
3697:{
3694:T
3688::
3676:T
3661:;
3655:=
3646:}
3637:(
3625:+
3622:)
3616:(
3601:{
3580:}
3577:;
3565:{
3562:)
3553:(
3544:{
3511:}
3508:;
3505:0
3499:;
3457:(
3445:(
3424:=
3412:(
3400:(
3379:=
3352:=
3328:{
3325:)
3319:*
3313:,
3304:(
3292:}
3271:{
3256:}
3253:;
3223:{
3202:(
3190:(
3184::
3181:)
3157:(
3151:{
3145::
3133:}
3112:{
3097:}
3094:;
3064:{
3043:(
3031:(
3025::
3022:)
2998:(
2992:{
2986::
2974:;
2950::
2944:}
2929:{
2914:}
2911:{
2902:(
2890:(
2884::
2881:)
2857:(
2851:{
2845::
2833:}
2830:;
2800:{
2785:;
2770:{
2764::
2752:;
2746:=
2737:~
2731:;
2728:0
2725:=
2710:{
2679:}
2676:;
2655:.
2628:,
2622:(
2613:;
2604:{
2589:;
2583:*
2577:;
2562:}
2559:;
2553:+
2547:+
2529:{
2502:)
2496:(
2484:(
2478::
2475:)
2469:*
2463:,
2442:(
2436:{
2430::
2418:;
2412:=
2403:}
2394:(
2382:+
2379:)
2373:(
2358:{
2334:}
2331:;
2319:{
2316:)
2307:(
2298:{
2292::
2280:;
2277:0
2274:=
2250:;
2244:=
2235:~
2229:{
2175:2
2169:,
2166:%
2163:3
2148:,
2133:,
2115:1
2109:,
2100:3
2094:,
2078:}
2075:;
2072:0
2051:2
2042:(
2030:(
2009:=
1991:(
1979:(
1958:=
1940:(
1928:(
1907:=
1880:=
1856:;
1817:1
1808:(
1796:(
1775:=
1766:3
1757:(
1745:(
1724:=
1697:=
1673:{
1658:;
1655:1
1652:=
1643::
1637:}
1634:;
1598:{
1580:}
1577:{
1574:)
1568:(
1562:,
1553:(
1541:(
1535::
1532:)
1523:,
1499:(
1493::
1487:{
1478::
1466:;
1457::
1451:}
1448:;
1412:{
1394:}
1391:{
1388:)
1382:(
1376:,
1367:(
1355:(
1349::
1346:)
1337:,
1313:(
1307::
1301:{
1292::
1280:;
1271::
1265:}
1262:;
1226:{
1208:}
1205:{
1202:)
1196:(
1190:,
1181:(
1169:(
1163::
1160:)
1151:,
1127:(
1121::
1115:{
1106::
1094:;
1070::
1064:}
1061:}
1046:{
1043:)
1037:(
1031:{
1019::
1013:;
1010:0
1007:=
983:(
971:(
965::
962:)
938:(
932:;
926:=
917::
911:{
902::
890:}
887:;
869:{
851::
845:{
836::
824:}
821:;
803:{
785::
779:{
770::
755:;
749:=
740:~
734:;
731:0
728:=
713::
707:{
596:,
23:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.