From 7ed2a7802bbc075842c890bd15b5d5e2c289b2a2 Mon Sep 17 00:00:00 2001 From: Vincent Coubard Date: Mon, 30 Jul 2018 18:05:19 +0100 Subject: [PATCH] NFC: Amend ndef parsing design. * Decouple Message parsing from Record parsing * Decouple record parsing from Common objects * Provide an easy to use parser that parse the most common objects. --- features/nfc/doc/nfc_design.md | 233 ++++++++++++------ features/nfc/doc/uml_diagram_ndef.png | Bin 53466 -> 0 bytes features/nfc/doc/uml_diagram_ndef.txt | 86 ------- .../doc/uml_diagram_ndef_common_parsers.png | Bin 0 -> 34848 bytes .../doc/uml_diagram_ndef_common_parsers.txt | 58 +++++ .../doc/uml_diagram_ndef_message_parser.png | Bin 0 -> 32580 bytes .../doc/uml_diagram_ndef_message_parser.txt | 46 ++++ .../doc/uml_diagram_ndef_record_parser.png | Bin 0 -> 59354 bytes .../doc/uml_diagram_ndef_record_parser.txt | 73 ++++++ .../doc/uml_diagram_ndef_simple_parser.png | Bin 0 -> 95751 bytes .../doc/uml_diagram_ndef_simple_parser.txt | 105 ++++++++ 11 files changed, 442 insertions(+), 159 deletions(-) delete mode 100644 features/nfc/doc/uml_diagram_ndef.png delete mode 100644 features/nfc/doc/uml_diagram_ndef.txt create mode 100644 features/nfc/doc/uml_diagram_ndef_common_parsers.png create mode 100644 features/nfc/doc/uml_diagram_ndef_common_parsers.txt create mode 100644 features/nfc/doc/uml_diagram_ndef_message_parser.png create mode 100644 features/nfc/doc/uml_diagram_ndef_message_parser.txt create mode 100644 features/nfc/doc/uml_diagram_ndef_record_parser.png create mode 100644 features/nfc/doc/uml_diagram_ndef_record_parser.txt create mode 100644 features/nfc/doc/uml_diagram_ndef_simple_parser.png create mode 100644 features/nfc/doc/uml_diagram_ndef_simple_parser.txt diff --git a/features/nfc/doc/nfc_design.md b/features/nfc/doc/nfc_design.md index 4b3d1b3276..23b0c2fb98 100644 --- a/features/nfc/doc/nfc_design.md +++ b/features/nfc/doc/nfc_design.md @@ -7,7 +7,7 @@ NFC offers three modes; 2. NFC reader/writer 3. NFC peer to peer -To support new use cases such as commissioning, BLE pairing and identification/authentication of NFC enabled IoT endpoints, Mbed OS should support the card emulation mode. +To support new use cases such as commissioning, BLE pairing and identification/authentication of NFC enabled IoT endpoints, Mbed OS should support the card emulation mode. However the architecture should be future-proofed and should also be extendable to support other NFC modes in the future. @@ -114,7 +114,7 @@ nfc_rf_protocols_bitmask_t get_supported_rf_protocols() const; Retrieve the list of supported RF protocols. These are mapped against NFC Forum-defined protocols. -* T1T is based on ISO/IEC 14443A-3 and commonly known as Topaz (Innovision). +* T1T is based on ISO/IEC 14443A-3 and commonly known as Topaz (Innovision). * T2T is based on ISO/IEC 14443A-3 and commonly known as Mifare Ultralight/NTAG (NXP). * T3T is based on JIS X6319-4, also known as Felica (Sony). * ISO-DEP is based on ISO/IEC 14443-4 and is the common interface for contactless smartcards. The underlying radio protocol can either be ISO/IEC 14443A or ISO/IEC 14443B. @@ -261,72 +261,13 @@ The `NFCRemoteTarget` class derives from `NFCTarget` and additionally from `NFCE ## NDEF API -![ndef_diagram] - The NDEF API is constructed with these requirements in mind: * Minimizing memory allocation/copies * NFC Forum compliance * Ease of use +* Extensibility -#### NDEF Message - -A NDEF Message is made of multiple NDEF Records which is reflected by the API: - -```cpp -bool parse(const uint8_t* buffer, size_t sz) -size_t count() -NDEFRecord operator[](size_t n) -``` - -The message can be mapped with a byte array and individual records are decoded/populated on the fly. - -#### NDEF Message builder - -We're using a builder pattern to encode an NDEF message over a byte array. - -```cpp -NDEFMessageBuilder(uint8_t* buffer, size_t max_sz) -bool add_record(const NDEFRecord& record) -NDEFMessage build() -``` - -A reference to the array is provided in the constructor and records can be appended by the user (within memory limits). - -Once done a NDEFMessage instance mapped to a subset of the byte array can be generated. - -#### NDEF Record - -The NDEF Record class is closely mapped with the NFC NDEF specification. - -Each record holds: -* A Type Name Format indicator - indicates which namespace the type field belongs to ('Well-known NDEF types', MIME, Absolute URI, etc.) -* A type field -* An optional ID field -* The record's value - -All arrays are passed by reference (no copy made). - -```cpp -static bool parse(const uint8_t* buffer, size_t max_sz) -ssize_t build(const uint8_t* buffer, size_t max_sz) - -uint8_t tnf() -void set_tnf(uint8_t tnf) - -const uint8_t* type() const -size_t type_size() const -void set_type(const uint8_t* type, size_t type_size) - -const uint8_t* id() const -size_t id_size() const -void set_id(const uint8_t* id, size_t id_size) - -const uint8_t* value() const -size_t value_size() const -void set_value(const uint8_t* type, size_t type_size) -``` - -**Helpers** +### Common objects We will provide multiple helpers to make it easy to create/parse common record types: * URI @@ -334,11 +275,8 @@ We will provide multiple helpers to make it easy to create/parse common record t * Smart Poster * MIME data -For instance, the `URIRecord`'s class API is as follows: +For instance, the `URI`'s class API is as follows: ```cpp -static bool is_uri_record(const NDEFRecord& record) -static URIRecord as_uri_record(const NDEFRecord& record) - uri_prefix_t uri_prefix() const void set_uri_prefix(uri_prefix_t prefix) @@ -351,9 +289,154 @@ size_t full_uri_size() const void set_full_uri(const char* uri) ``` -This includes some helper classes to check whether a record is an URI record, and if so to construct an `URIRecord` instance from a `NDEFRecord`. +**Note:** These types can be replaced by user defined ones if parsing and serialization logic is provided. -In this case buffers are copied to account for the NULL-terminator character that is not present in the underlying byte buffer. +### Parsing + +#### ndef::MessageParser + +![ndef_message_parser_diagram] + +Messages incoming from the peer are parsed by a `MessageParser` which produce +`Record` instances to its client. The parsing operation is event-driven: a +message parser client register a delegate inside the message parser. This delegate +get notified whenever an interesting event happen during the parsing. + +```cpp +void set_delegate(Delegate* delegate); +void parse(const ac_buffer_t& data_buffer); +``` + +It is important to note that the data_buffer in entry of the parse function must +contain the entire NDEF message. + +##### ndef::MessageParser::Delegate + +```cpp +virtual void on_parsing_started() { } +virtual void on_record_parsed(const Record& record) { } +virtual void on_parsing_terminated() { } +virtual void on_parsing_error(error_t error) { } +``` + +The delegate is notified by the parser when the parsing start or end; when an error +is encountered or when an ndef `Record` has been parsed. + +To reduce memory consumption `Record` instances generated by the parser are short +lived. They are only valid during the callback invocation. If a client is interested +by the content of a message parsed and wants to use it after the parsing callback +then it must make a copy of the record object. + +#### NDEF Record parsing + +![ndef_record_parser_diagram] + +NDEF records can contain any type of content. Therefore parsing of records is +specific to the application. To help the developer; an optional ndef record +parsing framework is included. It follows the _chain-of-responsibility_ design +pattern that facilitate the integration of record parsers defined by client code. + +##### ndef::RecordParser + +Is is the base building block of the record parsing frame working. It parses a +record then return true if the record has been parsed or false otherwise. + +```cpp +virtual bool parse(const Record&); +``` + +##### ndef::RecordParserChain + +It aggregate `RecordParser` instances and defer parsing to the instances it contains. + +```cpp +bool parse(const Record& record); +void set_next_parser(RecordParser* parser); +``` + +##### ndef::GenericRecordParser + +This is a partial implementation of the `RecordParser` interface. It exposes a +delegate type that can be implemented and registered by clients of this parser. +This delegate expects objects of the parsing result type. + +```cpp +bool parse(const Record&) +void set_delegate(Delegate* delegate) +``` + +Implementation of this class must expose the following non virtual function: + +```c++ +bool do_parse(const Record& record, ParsingResult& parsing_result); +``` + +If the parsing is successful then it should return true and fill `parsing_result` +otherwise it should return false and leave `parsing_result` untouched. + +**Note:** The Curiously recurring template pattern (CRTP) is used to implement +the delegation mechanism in a type-safe fashion. This is not achievable with +_regular_ polymorphism. + +###### ndef::GenericRecordParser::Delegate + +This delegate must be implemented by clients of this class. It receives the objects +parsed. + +```cpp +virtual void on_record_parsed(const ParsingResult& record, const RecordID* id); +``` + +**Note:** Usually clients are client of an implementation of an +ndef::GenericRecordParser . They can refer +to the delegate as `ImplementationName::Delegate`. + +#### Common parsers + +![ndef_common_parsers_diagram] + +Parsers for each common record type exists. They inherit from the +`GenericRecordParser` to exposes a common delegate interface: + +```cpp +virtual void on_record_parsed(const & result, const ndef::RecordID* id) +``` + +#### Simple parser + +The API provide a class named `SimpleMessageParser` that glues together a +`MessageParser` and a chain `RecordParser`'s containing the parsers for the common +types. + +![ndef_simple_parser_diagram] + +Clients of the class can register a delegate, parse a message or add a new +`RecordParser` in the parsing chain. + +```cpp +void set_delegate(Delegate* delegate); +void parse(const ac_buffer_t& data_buffer); +void add_record_parser(ndef::RecordParser* parser); +``` + +##### Delegate + +This delegate must be implemented by clients of this class. It receives events +from the parsing process: + +```cpp +virtual void on_parsing_error(ndef::MessageParser::error_t error); +virtual void on_parsing_started(); +virtual void on_text_parsed(const Text& text, const ndef::RecordID* id); +virtual void on_mime_parsed(const Mime& text, const ndef::RecordID* id); +virtual void on_uri_parsed(const URI& uri, const ndef::RecordID* id); +virtual void on_unknown_record_parsed(const ndef::Record& record); +virtual void on_parsing_terminated(); +``` + +### Serialization + +**TBD** ## HAL APIs @@ -363,7 +446,7 @@ The one HAL API that will have to be implemented by vendors to make use of the ` From the upper layer's point of view, the EEPROM is a byte array that can be read from/written to. Long operations (reads, writes, erasures) must happen asynchronously. Booleans indicate whether a particular operation was succesful. Encoding is handled by the upper layer. -Address 0 means the start of the NDEF buffer (not necessarily at address 0 in the EEPROM). +Address 0 means the start of the NDEF buffer (not necessarily at address 0 in the EEPROM). When a buffer is passed to the backend, the reference remains valid till the corresponding event is called. @@ -376,7 +459,7 @@ void backend_read_bytes(uint32_t address, size_t count) void backend_write_bytes(uint32_t address, const uint8_t* bytes, size_t count) void backend_set_size(size_t count) void backend_get_size() -void backend_erase_bytes(uint32_t address, size_t size) +void backend_erase_bytes(uint32_t address, size_t size) ``` The following events must be called to signal completion of long operations: @@ -415,10 +498,14 @@ GreenTea tests will be provided to partners to ensure compliance with the NFC EE * Event Queue There are currently at least four event queues (Plaftorm, BLE, USB, IP) in mbed OS and NFC will also require an event queing mechanism. We should aim at reusing one of these existing queues with the long term goal of unifying these code bases. - + [phase_1_architecture]: phase_1_architecture.png [phase_2_architecture]: phase_2_architecture.png [nfc_controller_diagram]: uml_diagram_controller.png [nfc_endpoints_diagram]: uml_diagram_endpoints.png [ndef_diagram]: uml_diagram_ndef.png -[interop_test_rig]: interop_test_rig.png \ No newline at end of file +[interop_test_rig]: interop_test_rig.png +[ndef_message_parser_diagram]: uml_diagram_ndef_message_parser.png +[ndef_record_parser_diagram]: uml_diagram_ndef_record_parser.png +[ndef_common_parsers_diagram]: uml_diagram_ndef_common_parsers.png +[ndef_simple_parser_diagram]: uml_diagram_ndef_simple_parser.png \ No newline at end of file diff --git a/features/nfc/doc/uml_diagram_ndef.png b/features/nfc/doc/uml_diagram_ndef.png deleted file mode 100644 index ef8d565728bff58fd66cdfc37354c280987f9715..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53466 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 z z(wQaYdNzwykxMI2x>@xu>CTo5*dE@J_xKdNuv%p)-<%-E2 zQf=Cm7$&!0{{l~x29yhyt&jOgk$lFZ{kFZ*GsUX);nl0l6@&R*@>+Syltr-2u4&vLb{}#{=ic>CJ`FZW-RV#U3 zLTiJ+qo^nQ%3T1r82x+P{A2K%!T;7x3Q7m3CRa}=uGX7hc=O}mAnA;KimN~a9x0Uq z*h_0<0wBEC?jT9NazSKlk{PY^(Xsk<8kpuMdN4>#D$wFd zs2+P>cU-hM=hfdC!Vk*|P>ldtFLghx*O8-QGU}#`FO3f)E$z>v7Z*+e-P+ImF5ar` z{~Y8tSQ`X4(7An%>t7ul9P}VT(S((aIsa-*eXgx-g~4;y$E1lji$8yUff2c~9~U}e zOGkd=IHCeN5E>jiNPx^E`TbCt!^bQv^3Wcm5^5D6nTh_YDlJwj(vLUguWDd3iR6pN zovo`eqJ9^J=JI{*XH)0xMPcZ7=fLAG10!RE>W}X3ijh^aT;UAN^5`fNY1sLu`P~mo z$Ng@sbHOSW#CZw#>8v>NV3Zt%FsKI0ZzKBn!$(X^jP(IAA>qBef9`q{B)Be=^o-lH9gw>{ zcE8jt=6dmw*p?>1jvxzsd3ZJO!|r97fcY|z{(-ElaU1V1lGW=U2|LZe^&m#PSt5JP zJbd>tUF;yZ9-A)qa=p|prFp5yUI?xSY1HKmtHw&Wd}A717hI3cGG!*bZ2s>?{$Fxr zy=yxmJY4An39)|mcag1s-98yIPHJm`ZF=u(oPjD+ST#x)5d@3;Ch+e{|DNUYOtj93)Jf3I4w*oM#^yc?3bxV0s{iV3@OJ|8qNP9#kHjEBo4EI&-zV$ zo^v^%VhifCZJTV}{3W0uprKylusZq0r~ihC->n2e_v%r4PR{b*&IUsCWDOPD9@K82Xo-|FGDFihzJPt9p%$J~rd7ETY*vF|qx{+UZeq6TJ4z zS-99DpQ@nyq1{2RBOIPpPKVUaBA(?ERagIrzxME@>fhIT%c_T;Z^K9MAtdB>=9Lzr z(Q$fi?q93BuZ^0hyQ%~=$eILOpRd~*dmK|<%^mZ11rO2x!U6?VjqBvb8!v%6ciK?`c6*!pr-9+ zLkXPh-yLm)+yvyN|NnKY|Erm=DUQ{nP6 z(UjGZz8tSnwHXZEt}!6uod${16vz@2ibd*8n2#%Tj;E2*wF}MpS*GjLwd2n@v)n~8 z$|S){e-|qW#i|BQO_Ufogw;qppDXk;HrO-ZNh=8Ex9_roXu17fe3O=uZb(ug!VFX_ zC%fUIY>LW}9advfO^Olnxy5xd=TTRTG`H_^oyYLSnz6*BB$g5jef=p=5Y8RSVTXx1 z*BuY!vonevl+urMoCjEih$1Q3pMOf0BlDnS`BqC=S-Dd+9qbi7S8=}AOqC(sN9U=% zx;;qPSXgIHITow>rv&bpl`3FxwfnPdjgs_hlt}cdKkMufDAqG`2(uiaX90HV>r;-g z-rCy2#l^*L;q{I*^u@6CSmUo*z8ae2Oo4DKO#IHQwTYIA?wG{$gDUL)%!vYg)A%^Ad24 zB`-bVWGWFzcTRt2Pf0V^y{T2v^Er|U8kM80QXc&t3o}?niIO@yJf?@zMksVRj1T*l zY67JagV zdry>3>9Ar%JEJ};6XpDoQRpf4)~2t-X$0Yat6?r<4inEphel(?*jbe&Q}a#ET12}? zw!Y8|N}Ps<=R@dHLQ#MGViYtuMry6jhj02-rno0_e@}t7cG@b(h6rdgs$X zl?Lax-M@--36M7xd$fCAsaVRJSWJ|G3MPB~1Muv4Rz#CxGs~ZQ)dvFl8&>CeWoc%q zg`Sjl=kGLm7vdL8EDjchON>vPzTsOlT`tv}))5etcC9$pX_e2+`$zeb$t(fN;W1D= zM-HkBKTkes)B{b)79o|s8z-nbw<}YZsir?)j3}p^4f1;(Ze%xnjXX!102!!MZ>gT` zx@N*@+@-$Sur-e~>(8mu+^uyUBSz-A5+FZ4fG%n9`8Jfge3R~aV|-*9Q#O{!$&(+$ zj#%-fk%(ycu$da_FmHI9qh%-V(i|&@HFH6 zn!SzOiHh~!>%2z4!V%BWql(6(@z>i9%%Vo_CjK?tvZ|bTPe=$<`{yuUo8ZcbRchV` z4+f(flVhaI3O>GtNqIFbh>^zyo`op-pzrO~=V;W@Y7y={u{2 zvC-^a%xOhXSpKHm|9p;-q5H% zUzIkuGnxxNnT8&iN)H71i$VX0G7;a}!l~Kibhe&F4&Y%ao z2j-`fMN)(BX|Uj$nDoAWeN;UjK>q+rnsLY5eLOKIo)=Xn>#!;nF%V8+0_0vDaEs$P zRw+E->O&EBommQ(44k(Y-vG6+B}0k_`d2yG#JzpE)FK(~D~);1+;h6At{R!fBjt{mv6||5omOwoRfo0Xqk4C~ zHiLX!*H859+m9@G7*|LNDpI8U#eM07N;By*AK8yQ0!#&Qzh-0RY{l*_ukyr0C~4;L z){z}3{|)40A`B&2Y8Wzf>u<{QcB0FlY3PW<&|2qC!6j@Vl{^Nq6{<>=H5bR{s9 z5wU;yG8ozL!HX#+RG9wD-fDJx_Lb4{wt@VPw79Oslh&n2|D^*eEPeT|9YwFnO#5>* zrVH+pAAMg%q*n)u?`r+AB~Sn=)ZiR6@vf)aHsVR^Rqf2Prk4*&N*YL$KBxhp=)YBI zX~GM4CvM2sYF5o1C7A63v5+c=56OGm) z;kW88{pQFTCota@6tCH65%;ZmH?qt9WT%09?Cq`o3V-otIwAJF<#&sVepm692XfW? z!sx|PrR+(OD;0l4>2T9?sg9(XSN5mC)txYr!w*^_XS`@DV0N=%LrYsD{Kqvec%E~m zMm?=XlsDZ9j&%%-Sr&)OboBM37%6#*b&a;-GGL%tVuU<7 zQtD2cpf@(RRI?mEE(fLX;>m5OS!Azjfm_o~?>eoDD9lHBErdizXuW-FS6j%zZG1Av z?OB3Z-193|zF{PypO_Kap? z%{l_{|E&5}4f|m9X{&a3J6(28)yiKqoaVoOfA*8vF_zZwQRH2g7;kBQfAKph2I2)u z3s(=QryS-+M=Ob$Eb(vE%RMsVu!+`oT^6EWzECCVkX9EJdoY|0{4SkIH(_)k`Btp} z+gV`+&8o(9&&2|Zo-#AO9TMaY+Sn0IOovWz8MCRv_Y%uJ$v(xIGn`Fbl}X$jdv z&K%?u;}$4jA!%t9A;%XDMs{FN?%vxRSj!J(mkMPl0Wox@;xJQI-jI5O!-v_7Fe+zjh3>6dpd#CFX zF$n?*?T#7gWoI*f^8C3+t#o?WD-AsnqQjWOj9HiAM3Vy(GKzz60pH!5{$PLkaP=J1 z-^6(WXyMw>p%fN0@GD%vx&Aovawb3RGjCpci3Rm+Onh+++f_Qdzi-O_QX2MYAJ>{f!{aE-j%_}6it1PW>fp2RkykvEnP5VI1*9~ z?_ek_uo{coz1axJEeGT(o|9{kSM6qVRFp>qVrqoFp562g0U|HW;A%G+fAM2m(xjxj z*TAyosKf{*;E1)^8RwkO_XL1x09;hTh%SXdOe6K2WZHIhG4>SN5<--JN}j^GyCXEr zdk9sC(7;|gKnt+Np=j!*-puyYkQCa%VIhkgp;Q6@rd62#1x#a6xyJ`_LNS$+V^Sn- zz@`oX(ps#-7Q#`$Y51#Tv z(X9~6h<#lc9DD_^zS^k6UOMdx)_{t!e#zWw^0n2?Jj#&FCg{f1Bk zVofgH!(q7HkRxvmu)@p61(p+Lw7E(RCA8qSMU#4L(R}77U&yJ;N z36OqFu2x}=X0+Rw=G2Jt1jQHiIlmCfwdmhF`9X_XoczMUq&5BkZ+9*lJ$vV%LN+dn z6|b$qP-nW&1EG%|aFj9|GH2^kDd4gh>DMY}%mLsEpx2CnwoYWYVU@~Qbw!qtPAjif zgMj#O_UtevayAE?r+#fBGd5-kk-mXjGF(=p#vJjbqb@}H^mH$|u;G-X%)P1{gebGV z{g@vllpd97d3>xk)1Q6u&?dbFy}GmW1)c)-b&+TSYx1}m%2#E0)y&WH!P%b2iPo6q zwp1ww?Y<$}XCXbPP(AT}p%k3m_J8B{?e&U=3493f#f z4IY%gM;fL5io{?Irg{QIVFTRaka&Lk$;Os=4_d=9@|J%38rcdwv$t^3ik^I4hg@wz zlOF3G#+c)y<1Kk!iiZbk6xWMeK)~xTG887a9xPIEY8bW5yy3brV5JM}j+7dTB;!&i zPWw{rU_pbMz(}q22=;t-#b$#_h!ooGMk~S=FAm#rGT1ch_|C%UK44 z$d4jMRgH*;5E_oNom@%b_GvNceq(Fj?Nt$fST`ceW2ppF%3K*+73Z&28Wy%C|Hxar z*&$-d93G8+Tsm?H#}v5QofM9wPEGCWaHS(9YE&txmfzv@$A8Mri-(H}^#t?orlLb_ z#tH+Ky4>gbWMdbPFt+gnduaj;|BYRz2MbHf93h)la$T=7;SnGA@il~9Bsg=)ttPkW*Zj>oQnm$?&8!CU#>J%7vY5AVgZGe zKq6!*=|Itgj_Pmr2(?0o$f`E`V%w4HmX2f9I|;0XhK8Ldpl=|kF0=n|r^IkKI$N)- zU}bJ)DEOY*x;4VlRie}|v#v5>G$CpXOJ~(s1X^XnqoztBRj&=hQ$d!!l7Jvr2hE** zxo!O=2i-zv1{$#K@8deTz%QASXM3KFFgG!v;mW4R!xUqu{^>U3o|~AYQwo0unhU506N6RdCprp2 zF>^i4jPh4X9d`|AYFHjdk}c#e6m~SgOo!}QfFOD7E7AGd!CvTJ+QC{HBM~u{!=)r+ zmTAR~?e;I3G)D_`yI-h(q}I|ZUnwj0o%&E$qiVM;vfR~P_=W)X>eZ{1c3x;=pkAGa z&cmpi8S!u`{IDn{OxEdT9m6?M*kPzgUlFCiP+`1F`}_SwfwsNTUYP_16QPJrOi;Nd zPzu%GI$@U^G?v3GgfMUij*{CW$m}5byFHdyQev$lljqNWSogt7VFN^i`1e_f&&{`-XG7Su?`T_2xuRUkg za(?)n{91uTqrLf@%tN`62vVt&a@(=zhL{L+qu>FRq{o$Za`T?FH^;=JoOzBKj-4c~ zj_&KN!MbaCD`HZ_v(fGv5>4S7xg@-U1v+NqwKjk~&LM#m0-q1>+C@g5J-N9JJIPWL zaw(nwmb@c}{`Spt8#D2J!%y*a45gae$Jt@34ikk{M_Tq5X_cL|NA)YoB)%mcEOK^g zpeI6(p5Ct8iHip1OkaO-UeyE7@;puVqt$sJ4eKLzX2X!pwLK%{z)8YEV6)rhn~tAmc^6w7b*mtwG;QZJ>0R}vt5r{HDR+|%%) z&((FFBX!5QkB{F{*k+s8_+ES)mM-;sm0#d5JBIZ3{V`2B=Z$kSzQ_PT(guSy7QfV8 zqyc}FeE^6FV3$CUO$D%mTF*H!0u_~ifjO!2>{x8be}gUn!L)SCQydl>nv$daPaL;& z7obA=hGSyzBgg1~4XQvmSMv}$6>ye{`i|*#D{=PA+36*wl65j0(xU<8Mk;)X0Q$mH zPU4Zbz}?ZaHd!kVY-Kwk}vawquD2}72HDVQL^y$t@8IQ4cTWe zX>p@l&g-|H5-^F)=V2}3{5i94K3-FXHy?lV_qbj*OwCUbSLu{Jp1Q#!6mO0SY; zepx>r%74@Ud5eU`!JTtzp+S28q%pVQB7_nK74C)`RE$_~YPq=`-)Vep^I9+1YCs@) z*QX=V$+E5XiVJ>AMH*k4M4Hl#8#i)5Wj0k(lD)_E+PeQlHOEt^!&3Y~M-6`X3qnsv zO!~}3pDXvZ`-$7z|jy zyMd*rf_7wQeo0>Wi}Wluvu4-z@ul0m$6s#}F{B@%JEZ^ZhlM8jdpb`dk|F-ilY?Zs04JvsrS|V%~Q8QLgkQJMUXQt<3 ztD@ew?0<@0VC;8gAE$DEF!n&;VFKcCd+EO~ZPb(#bF7x2s3}R2jwN~Qx3Bc;2j`)=?e=`{)%nek_mK3E_rQAS7P^xPu@&e?)Trl} z2cKS@uBhg6tkj=WSux6-$PRAT9IdIBi-S%7{Lf8a7`I;Q*(0el${?OuK)KwXQnnJ;GfXdt~fcLp%XBiuS1rUJJmdSs7~fRXZpYPNjp}`!I=@TW=L!iiRIhY${;_qvj55$_ zz59yTqeYsbz`?BOgEum?*+uYm9#K^uYCvuW)MCE1k^f-bF zLEB&=h>|hOiEAH64^42xty~$?=kA`HB;z&sIi-{L%|zxam*`|&rSg+l^-gp5ydYzL z7PI<&v{mmO4=Xq`)|u3roH4KkQ!>*}sdrcE}r3 zbEIdH)MY-P^-Mu>gBma$0&3_N`R&(!wIy`RN?ZL}ZQPDL9wR&zX7|>upEx-<(h)Cc zsF|2DjCuPIa={yZS-ES;{mSmgXtubW)9Eq0x|WM*81&1T+#Kcp`oZTuwbP-9d{2_tbGv*XmQ>rRcD9-6y=z zNCd7Di|*3le(Y`td;lPShOK^zNEEjJ^&mxwGB}1QnbvBZs=f#h0uGrPJE#cTc>FG> z$v1bx?kC6ki?0_$@k#?0)Tr(+?j;}3=YT*rs#)yR+|vxn*i(P` zN)+ZKExD2It`wC!c(N%&0I38dxh(?Ma@N1QWbe33C(}I@Zmn=d6sDXcBj^`xC`H@8 zBpARYa`7n-ShCx_%yj0k=E%bTFXf05X-rY0fxmcG28)_eI@ijhWPi+G5U(4cOIGLr zh(zmz8R3m^(R(xg`i;qLc`5}FhvkA9xz^W23+3P%)2D%zJj&( zleuTi+&O#JFE4@}ym^~~bgQzqq|I6MEO#hh}Kmk%yb%z1Q2~+sMh}yF+}4>fm!l=>rZvpz7vm8_998oM=JM_rraj`YO3aF-^_q;6ULWr)`@n4c84acdd?#O?=LaX*B9$?rY7 zK}85Qb6_|9Fp=&e#OeX`LbKw>#PFfKJ)qtm4M(n8-r$=Mbdjl<2PFzDguw-3iN zu0h6um~LjK?e`>KF(E~|&f_J1QyawL2Iajw0SnMJcfU+Bseb0rKL&cO@Y=exvdmVzr-% zA;(}S>Z9*2QxS;2T{t^eucatJ=ml*Z_VyhWMJPe2QPCB|ft-r6(?=#G2pNciI=;D4gATLQtMOy$4~O2U=2o%gw&Odt{B`Ozt<%&;=tg ziK*xnG-fRtK%1}I_r__jL42RF(}QDYUfX#YYwOP|j$QFQVL>Ynt{^xZY%QGdTvhJ| z-n8nZ8L;HQ&GLqxw}FEwjDfCwXa~?_%)WNepMwOB_woG{1v;IS(8Zt0J}VV^4IbC8 zU&qw#jVB7YI?0mPP6J0$!GDK=M*lLE66if_+Q8ES&_(fZW4&1B83E)kVpNv0eM;yd zyyk|QRo6pNl^$DHLT4x*=3pKSN;60eF z)upL|k0rQsir$<~eIpBio^IwIkvaLkDKJ``jKbMEPsqy~fZ+wG=T{Qb($X?yg@Cg3{|?xx?fiW@u2ogco#We_MY{NCn=#-$4;}~uyN)Cd3@xzmc>h6OTZ)| ziIBX2d)nH0f`&Dq`D!`Gb*)O`l#Gmwp<}b~^{~lcK>}l;R)t&?Xhmb}0PT1|WOifr zmX-zDx|wnb)Y4I{K~z#i#Kec2^$&mQfSE&pl+#B0rhuR2c4gyE3Dv-c5&#Oz4|N0+ zD*g8eFL+53oIkk!^w6y3EXQ!?{fI;`MdVyz{bBnC{d;*i`P=4-Y}GplAHSN~>RRa8W-70T+fQ z(V0ILg~4ioslHiaPy*hEa~An0FncXOghu8lvj_P5hs=Q%wzf^M7I`5!u#IFa1oE&a znG;Rj-nOe+j&3-n25U2ec;%=x8v+94!8vgMB7Ykhm<{}KJzYmHnM21a*C~MHSkTkR z2V@MY1YqvkTRSWF&Ye5)%)tQxh#Fyug|38}jb^gB;Xz$jWbnGLE)|I(C;9{!SkjNN z{5|!HT_E0vdGoXAR;H6&7xN=dGh|b-i&42mwrT8moPOLv#l}B9FiDwIv<%YD&5Re4{CLTofRNcx z|3iZ)1aX8sbNr%E=XaO3Ub9T0tBOHe77==Ecl?-wTX7;Te#~Yc7`?L^1w@?)c+WM| z;;*9D%RU&;2KwD>`Q>E*boN2~yZ*dJH~xzs!O@$0>wQ1{n) z3kbQckcH0p9m}|E_mW_{)l5;MlzY%97@|EhJ+d<@8P_ZLF&*;|a_utEFL8hIyEJkU zPexrabzn(x7)``~`oI911%KeALvHsSF7nn;HXBjDTjBv;Rjum=fVq=Omvd!Og7_H) z4xUzpSJhB^OVNfUT}!?OxrhVECP+bnK173?*fITuZh2YRvXRwy@80nS;aG11P%%XA z2Yjl=l&cPi^2HBcy=a#ucdBqP1R%*D67g&6ZTa!3>QMc@Ts0P6-fGXYQK+Kk5v9-I8awMky3sXea9mcOa7A!I>=PrkH35Ia0NfGVL_ zLGR|okRNt7+!4a-JV?O-9IH^;`z0L&ra=iBq%BnPSIoAlR|uFk`#5P zlvI#LhT@Wv+;}jNmQF=j<)K30RXj>**CFJy=E9SuQSxb6POa_T-qo?Rs8nyugu8Z* zb)S-s+`WwYsTO@TgqeJNPLt3oO5R^R$?Q_k{0tnXgt?fnRjW}HEjNhxKqYw!?gz_P zi4H80Dzi{6@(MIxgRIAH^g9v#h05w{d~<2;g*ccC|JlDj)ns^+^{=`u&KE`3JzeLL z60R~gOznMuI(nRRcjw|}ik~?vq)L#h#Sw74JV35Ks(&mV{3KRU8-B!<7+_y*-Q%x- z$eR0zW~JH+gJmbO^f24FO~a?RQWqxrUw=OPNlaA$tUA#Pt`~WgCZJI4=Hp z?%wPOWC;M~p+`4KOs7kY$MH7SnF7JqFGf&YVyEQM=1Yp3Z+k~O0ide0fkzc<$I>P+ z%ag}0=9Uc`i2Qr%6fuyOc*|~rppO_7i?Xs7K?)ps^6(xo0x%0mzRXsyc2aBML7Isf z@vSWa>XR;b%J(wiVCA`{I!$J%)$R>ulm5mp$Fc9`3!hs-qo5kAdv!vMySbg3<~ z{{rO4vxIJ;ojxUiNpSEfBD|D`SiU}hMgrW}zm4%uEx#HZxn+?CvMXxxjcmO{bw^{$ z7W}>NlH+aPv3+yiZt{uG{i|DIvB9U@$;ZJtm%s}(c#|-_ncdAuvaQWcDsq+G57s~j z{KcPg%NwY5~7TSh>|W4 zH1iIfwGuflLKqYlw!j+#uyr-Nh@>RF|JtNNM2VTmw@){c2514iRGPgFKqCJIMZwI% z$Mg#wL6d2Ddn8rE0B%QOl z{9;=CVn;)EGJcH*1#dhkOFh8JIo>1Dsd7*@B)`4|JS(VEsXLFhr>apPPf3AQf;S83 zf{Z9ij^x{! zpC%ahS6>4ID6CyO6%)>%b+RPiUj_xFaWcDJGWqXP<%90W{d&8z`qv>*T#4{mrl1BR zh|{~bNg$U5*oJBe4&p7yv$2{ENCzGh<6_ecc<07z6H1k}DKyv>Xu!JB?l8O9wh{Vr zDKcLp(g49D1&r%a+c7A4QO8K%kgA^&zCI2df2qK{Vbw7Jp^_NY6S%0Az&NCF<(wzp z%*=_0QvhW)W`j~&Q^%kuuZ_)kZ@7??+mGsXL4+d1&d`d%Sj+r(DA|#>8U+QYqqThr z^{gxAkPd51rFaH{LCEEL*JHjgZ&0UjeoD^nVSB;r8T%$^U$A?SiCX>^RIKQ{!RMd1 z7ZK|S>I85sP!GNcd3j9~R`>uaOhOM`O%mJzEf$6`P%=K{BZ7s61)LKJYinzD^r5K>KzEiPG1ZnorjVnfqjNvn&7UVe+}Ubz zqy^BerhQN~O33qa0XU6zc6Qbss@V+>d;Q%N33>Ve>I`z`YEY#sZVo=fxFTndRk~i4 zo$1!QX(a4g^Eu>!i4CyjvP=S(?ZqdqyXIBa6ZP)6B+L;U*m(w>qj6VEnfVYa z6;&D-3qaTo#?`KW#VyX$sW)f~Yi(@>gtvQ-mWzELE*|#9BkOx?2?h~BveLl}l3nNwE!FsG2pO)_x}VneG>LDxKj0V!!M<^xr0Z$fX{yPYnDQ4U-6-&NsE-n z9tkmVA{gz+^MOF#c%7T;BA9JQ@#dWP&yA|_MGCoWXT=Y<#}qJDSd2IvZ072rx0f=L z269x;?Vh@~xPbV|isPSB3VCQ3M3xvFU_er#U8q~PH{q!ll_?W*hlps-J&Lv8*hR%GdGwFDNl{S~CERY|h#7YW)BNvc?m+SHaZhfGgyvEOwU^D^V;)Rsw;3qTHJ4?| zO^V=E)pOf;$JkMLmXh+YLIS*Z2)rW3jGhd6anW3lohzqIh-B6q^|%k4 zs{8Uf91|d!wZXT;e5O*d*SfOTQy+M_N)>bSX%*e7M(XtRtM|7-tM?r-aHh!Xu%ce| zLT9Iw3ycWV@(2p*CR_%fT(v8+tVO)Sa%^^6P3}{_=bWh9)Yo^W8gk$I+3G@2ef>gSDhtfIgEBDHEVqR$ai2#0h`UOqY(+)bm8yR50-wHO zO|}OQ^g%W|`~bmwYq)IKsjoz3ILgq+&|;|Ud+k2#XY-81piYeg^1}xuvy8N~ESikI z*kM~RE!0QKY5vj0vSoD&F}4JNxw3i9^txL#=N@9q)Hg*wQ>$N4r6D(>7Jpz&~dys_o|?ULUeC9X$- zF_G4L;fVaaRM$J7;-y?MEm%8Hx-2)_r_uEh`|6}&PK)82_qbm$Yu7pzxp0br>^U}y zNlPwCP$z0mnY;B(+WpKpw{4U}v2a;@Y%IOaGp5YU%v@vpK7^A~C1a}xKBZtDa|D~c z{a2=i0aIMdJ(VfWv2l7ZaJlwLQ|XyM)m@FniG~LA{Jfb@I!9k{D6?q%4U|A4qeK=; zl_8FH=qUIPCb2$eij(}N$k*>dd*`*m%#$ZihCw?3R(GZ%Kc_K+5lqvPVR(?$@ju+P4;P@?|GU>nX>&{P|yshHE~q+ZN!y|QLYZ^*PfGJ{+7?h zaQCkVXmlbDZGNdSa&|?v4&Ev0a}}>IH@`sJ^?iiYMTA3QNXRE<;CFmoP8Yzdx0cg1 z1XQNKZ9D=A(SRIU&wZ!AV%$ZVNgm87)o4d0InR@7WP#3s@=#JXqgK-0NHYvV!K`{r z?cIo-D+6idF2OaxP$)Y*r1}Wa(2muQ;(AVs)$a&UWl&N0vKpoHAFiZq=iQ1;djy@D z$Dv3Sf+^G#(}8fU)OO^x9IXV|o~#ZZ(CQu7PY=aqbv#nmG*e^nwxTD$Nk<5zrspZN za8WP*g``@@L%KYga+IgGJW8w8PFoH?xxVU`CbUn}6B?ScT_+B5cTjXF5ZVL%oft(l_)Sz(2rtH0yRIHXdO` zvv8r6ZXYyNml?Kn%&C3HCM%hRwVMI)?>s>w0UDW(wtM9Zx!ttijJQWO0Pi}-P0s@@ zp2ynN7nv)N!I?>?dxw0*nQf>cZwFjH>uaNoJ?9}eD?2A0w4 zawlQYWyD1Uxy}t|KF+;sx6!YrS7y@th>D7epI^J~y&kg(NF%j-z^kuzrY^{Fnf(0p z1-!l_H403=m8yM`{C|4;>Y%E=^>0yWl?FMKlr$(I4brKAbax{tNS7!f;Gw&_yBi7V z?(XjHc-PVIz4v$LH}A~**Xx{d^vv0NKWnWgKTqtVLB`0{<@P`()si$2LY0_TOMnS# zWv>S69BryA^8URYs(e7{r(sktZ!z!|v^O29?N&@hteS`$QJZ&z1=qw6C!hVZ9VA>| z#K*!;#eO~~otE3|`}~fQj7%`aR28-zTOXyYgO-<;RM~Pm%rrt-aAMf_0I<=MCsq>>P{}+W$na1&suUBWgx%C!3da(Yx zZnyIBIteG2(^2Ky<5^jVV;u(c>#r4uD+p3IF)?~dFy3<(2q-GP1$`&^{Q-SdmG(pK zeDOVYVwHgj5Sqy2O@jtH9B9O?tu;Vd%*=B3`EENmJt+8x!MKUfuI_TTFYP%R^qn^d ztZH26gJ&YdyfC^BouN;%BtlyPs=zP?@PROJH3XAv-ZZ&v8?VK+(BRRc>Z|$&pmmg`Bw$i_5OLO*Q!aBQX;8U zuR|l~RmnCxU@UR+Hl#K7VtTHiI8$IagBJUCXPv)LHFsT~hUfa{X+{p-k;wpqHH zFC}3{yfz6A5$E&H^$M(#g#3yra^bbPC}NBl6 z{m5+;WPPL6n@#x4YfOS^`++3O5G;esrQaXj@2_Pq3;EHEtdB-OmxSp(Kue?3u;+Iz zSG(9p_97VLsn0cQT|l)s-)x~i{*5ZR%Fn_?Hm;^fMcFX9?uEknGsXnABf4c_@=i_y z5~8@3!_3h1FN7t?+Y!wSKc*10VZQ^mwf@d$i%kI(~a@)w06mv-5DqQ!K3e!NU1eGy9SxsP^n3P+Xng zcCtXl=BjrI-tHw`dp?88fnS~~D8`#A$C-1@Z0|4cG%%6qq&i~iroT4f%urfplV9Vx zyI5{;D;z|Io#an7xYN8~Di8(e$C;eC%{Njg9u0SX;Cj;OxTHF}>=`ZzHt3V9@FpFV z=GGyGd$7+2&-Iw+cb~gVyWNOJtM$9ot#4}FbHSFgWR;e-$C%vNnzfkQqu28c>IH84 zJD|-757e90)VW^Y`vrF|q@Wlnwos=uh#`m-)gN1*98dkfd z);3<}5X$MSTu^w`-3yiP1}!a3b&ksv_Tg*~#uK0r-JDT!*hnc2v3_0 z%E3sfuG{d`G&?F?(QY{~P$yONX;9G1Zdk$ArqrzLUedN}aGA}{1VXjanfe$@z6@wcB+?QhCd9?906s)c`Augi6#+_ftvUZGOSxv21 zr`YQ>7gfpmS;Sen2=DuH+7vIpl#KQ|9W{_MMOY4s+o`q5aF%KDw#(>MF>*L8p2b^g z$)69Kq?JJF^R#Xw?52PG_*5-?)c*~>Fl*F+=u|p@-qTa#9+YaDadKSL_~TVpYqEgu z9Dm$ObG#fP3FgmE{DD(R72805pTEhg^eiYrSg7$L=Dj=Et97@Zi5Z^L*Gs`=h)IfA zwN@2S3f1ji7=6DQlJSlJR*>pcAbl6U0VWOU{Pydlz2UHY2TcZSLy3`nujFt}({&Fk zHqTkv+OBNR*|y< zl=g-hCnb3NIVntw@|Mft0IfySXH;9ylK6ftpLwcObUA_%&HC`fJe1C5Onk{>SQA#- zXPmI9YR$mLX_*gP3(E01q>+qwQso(*h!WU_`81}&yvXF?p`|Lk(d6a{{EefZ?LqTe zaPWD!1}cshhF_d4}EG8Sk72Lu+N^?m)w#h#cj!d7NZd<4VwYZ-_$$K>Y0hBJME| z^0?hzO|fwDI-NxEI#*~^S9-?l5pc6)5JAp8d#NHeGcN&f$K zMg@h0<^hTdL(@^L7g3q&UJ!hVV>ehf6Hqb-GfKt9#X+&R!K*F7@pvvv-H|LgGgX8a zx8Bubbb>oWGhhH)FQcOSb6Wvx5sdX)s6V4P{ z9eAfzFM4|(A6U`pzVDI*-FAi!#on#di-vqGJ8#R{ns4;KO3uyHj@tst$Am=lmCc&T zsmD{x@i5t9Pz3^W{!Pv#h^T&Yj^guSGK%Z z&a6ZZKL1^R!L-%D3yb?Zg>rg0Q_#Z~SD}>J);}`lcCq*<{2OiEHTLQ~8H6+Zs=$92 zSkk)d#(CS~wX?l5IHm(lyf7~*?$6;DFfSx~HB~H7vL>jA6i8-;qBiaAzhcC4HDubY5WC$eiHE^n|BmY}01jxa?yC+^JL_rS(Is-)h?2E%U4Jt0cF$LZ6hP$j}WO`t3o0)1wMg-+Zr})ZV zR^+JTks&Q`L|+TC=B#Cg=3j01zS<}!hjw$Em};;XDiZ?w)#P3E1f-?I&IaKJ z2hp<8SM7TH;@u19+?E}3LE9qGaHW$*S>rpLA7yVh%GuefVJAWHOFE7tZ)J)_Fgcms z6|`Dr*2AW~?XCG@5r7nvO06A3IT3!HMe8XQoxS$AD_GyCA?Mev&6n-@rnTygZWT^L zdCh-0Jy@S8z`cDeOKOX#UOq9(GWMYGq^bp<4wWUsz1(OhVpOJ2!t~5w%BqGiV4a|t z1~tNL2qfkf78dU7ym``0hhcLh!cj*R!TgHewcc3Zxhg&bZcM%~B)_TFcKao=F!Rr= z!WEM6Z=M#gjMSFkWP?Qx&=H?Me>Uq43&TEb4O1Il3_rF7v0H}L@ykv#5VlT5lxK#- z**PsX!{baBaPZ8hLn;2oq1L{w`6!LjUck8k$%)bXFU*<7Pc-Nr@YCg)r7N>?o!w7! z;~miEIPa=6`iLgU`FG%PvWlWpTcgXFVbCDZlRQOwK7d4x&8Z-K@PQ^Ow1weE*fr%> zNjL%V2aiZ21wDsMQUw@s{HQw+MK-YB%G0O7KPGI5yp25l$x>=>wBIww;=JyfI3H@v z?A)tnqv>4lJa$#soBO70Z+pKynOSg+O|VHbFlL^xFXmJbcy^!KJ`pV{{8oFQ(E!SS ze>u6(>LRnwOW`;?Dc8_ynADckz#E0W`{*@I&ex!2W`<{LdV-H~z+)XvU&^+g6jE+E zi>*Aban%=}8zl5$sF&lz4DAQPy(|{vIW}!oY|oFM-5FJx;ZU{RHH|u+{$3mlS)zy& zO81cwUrA=eWK5Wqd!wVErMG{Bhgvv6%D<9n)pIK`A2KJy5<}x#fx5grxpZ5i{9yf~Z*0~)T+#S#D5bvYV;j?`wJ5O}dCso&jgdZZD(9kn6^4x% zf;o@ML}U8#>O+}X8)vb+3U|>K{2TNq7ia8b>TTx>Hv`1!N%f&RuU<+=>9{!nQ%puQ z$9V0O?c4NKK&{@XJTFf^^Vv<0p*9o8Ap=M`;VqZxG(E%_hokd(f}bLTmfQ+P9!N>n zkAExnPz*JE&T_03joRDM5e0OPOH4unpUqkiSh;uzL%>6t;s-54=GdH$%@9ta_?`#) zUX!35JMGfRdu4u%&Xd~fk^w(GC}`_pJ_a?xE0hMLgiLE~iaeeO=XH7aJ+`4!UaD4_ zw8bef-MYD1@VLbp0D}8-_19oFwSL=A0RrF|H8gbr*}%WCnOu)-4XryJQ$Nz8W?*9N)2rHMU2m}kjo)Ivp`L;T4}~36k+|;7 za5|*H=Bn@_(;x1;-xHX(N={~Pn?MOesq%t{2RomO7cVb|#9!oazw(l>+OCDV7WZpG5b&YBzz1Kob4{uNEIPa>}7V zLQc%fANqrt*t0hMykOFCcV z-tZIlJVZo6t4Q>&4dO-k&nak{e>vO0AS?-qCa+u{Kcus!FYU$vb%-)rxRNP@ovOb!-RHxq!&dpF+Xd?SJncfw8qCMwQDd zNCZ1&O>oLHgB2d+i?;sCYX}D-R{4E&SEh+2WtkiPNZCpXHs)XSj&p8sZ+j{-C6?FL z-sAe-Pc{e9pI3OaqbN<$m~@69Uufk5xX#6;em#L8>FOPaI6xru^u9F)j>st_UcMQT zOErl*8%#x1jA>9UeW}RAPOfj#8ZanOQ2o-H;qvC@1{9OD{r){#s12eHT>v(UwEE#5 z=F17M!kZg#76#vL7=-tkx2ou#eV&CNCmJ;>jj*O~G+tS{9-jZ+_P6H0dyMC_+teZ= zqJGD!d)9VldJ(n^sP_icpNwa^SAHIlE@k_MTA~jfLsPl1o7#|+0>SE?koUd;d{^EKsUKhdRza(av91>4yY3za>3Ge2teF5lUJScoHqNGQ<@!;^YA2Ee*(y z&DEQKKKrz#^U%<<^z!Yes3E$3ZJJhwZ~1@3SS%0YLh4@5eBYHUYr|l>hDY@Z3DAR_ zk3rhn4P(jGRmWc{sNpK9aYvH*!43rUVC<%R{fD67Nu_V_SMQ5Yrb~QVzQdi-()p!*C z?1zkJ{vcJUagwkgQgNq;Doai&o8K=LatDGI4y>{SLk+)GR!mh@eZ`G$U~aMaFKyO-3kY=~X=3nJIx~+v@1{l1Vka@VkLBPI2UYEPn~F~ zQT;%kYAC=Jl3&j@y4x4y#w40joDA#hRM)wbHilgxQ;jICO)~4bH9Td5hNuOlDz(Jv zoTce&eH{*9rFw61c)pn|f3AF^ z+bm$ekcME2tt7y>Wun4pe?(>g;!y&ZdNj=oSE)aam;XQQw&#TBSO=Sz5%jqVy^^oW z2~~duCwS-@MSd_-%r-ZTP+?UnCE{)!Q`g7y5%u%inAe)fzGQ#pRNiFlN9!Ay3|I-8 zQ~X*Fd-^;)a)SF_WVwpG^oJvG8(JQ=2w)}z1Cig_uXsKr*$Vq?4?~F!zq@r;Ga~tF znLstL@-YUnbj|7XcJKo#H zHFz zlOoQ=82Z7x1<&>L+&WvP#&+B8XhkC19lZZyyxPW?-oye!xxxn_k&-LGe~( zJ7yd;^7d9o=#PY7flJEw`y}oJwL1F#K7$JvpKi=wiF;3zH;-jynP`FT(@&4ue~(Vq zoGNBcX>|O?x$Sc*g+H5o|S?F2^&b^p0fD8#4 zQ4gv#e*fFI(Isgs6u407nVIVv!*|nGjkhf%cd(bCs50#b^u=Ff8ZxvN0}<%A4$+6s zV75arcq0Or#P)Y5_+3{srb%W8vaS*P`*NsfQ#I=h9G!)SAWba4Fnn#kN@Z&|?g0da zcq}xvQaU|dih%9vbCjPfe0UhWAT%`8T>JPt80rT~SX~Z(j=N=67Hd z{ruLl-4_FldY#}pJCtZc6n-$m^UCgrFzQ?9D zcDJhWT=#G`WEoOcP(Ob>R!f&qL#4H+fyA>T$wCBaP1^JXel0O)yH-BsbktGiMWWVG z7quU!{VG1H>s0Hu5JWKbv#z|b>Ngw98?3RFugaE0`vlY@QzMTgj)!61=i52*)@L8Y zi24{SRPPDr6)G+Z1m0|?C*{xx0_F#H(--J~%RM=1*O%7;J~jpQR_|)X*x$vtFSG<& z%n=8ukYA+4X7I9px!ve=PqRa1uA zARgy!2+0$GgtH8#W%7HleWC|&c*-W%h(HnVC$R|CX!f1CTP+6``UR^>OMZ6j@myu& zOYFN=9Vo~e&t~*~RC&ucq<`?sqYhXuZ$h1x)@hx{kPyp)lLx`;?IeZD#!tFG$rj8z zdrmA$5}kfe)V$fs>%BsxvDvUMj1JS{I@yRsr3 z9=?{>Ly*IE;cqDPd21LI&u*(7BH-(be1w~olJfYBh9RGTCqy#U+F>>Pr}tB<=dYI* zU9YWgcfR2PlyzPuJ}oU) zSDC&PMF*`5lVPWFICAaSl8eABkjClsxP#5puniRsh5QrYQpq&Ab;m8`B_ zAzDIwy3uQ9^Kz`Qtb@09%_j}_@#ox!BFMw?4DAq8<#}w0#Midr_lJRcQE(2vWBIXN zKOm*M#i1E>F2K~BBOV#R_(gXUbJ#dQv=*1m07lbpU?|QuE>wK1X zXbi<=lrB_fXXI;`t8>)vF$IF@QSzxWcL3W14ZXm$FK%#4n?4YqW#ZI15S=@&%ug0C z=}rz~OAwtZ_l0K_{5oKTJ~eVyv*~)S6)}0@n?kSe^D~vrac}4O^e^<$^h}{6!>5I_ zi93$EmRjGnn_niEAD#v;dr!AufS}Yet->EcJ9aYlvJNhS9WxuHN_o1h`km9vq7?v* z^d^uF`KSu}%)gZEScQ-Ad#tnN=&^|)kuH*da_*rA7Gfodt?T*%de6eE=(dx1bXJx& zX}TtwKL>ezQ;b-ANquKC?K6!iqh_xexx|e?tXB5kks>n>1DPF!T=;x-B)A9mAhIpk zMyB;$|yEzEB64T`Xyq%+_B^BsgSTy zSf54sX%uNM8yDfpHK0K9;q&g6*nMOhd^u8b8w#Zk`@SeJWn-w?YQbO9IS^)U zJ#k!#%B=@B$`8-)tJiH-z0&a-x%^KroL%H6D?FA_A?LsrrT1?AfZf;pFRgN74CT`cQDg?+SyENxW%7;OhNQA^L6RhyFL9 znMAU+nTvJq-Vt--*i@D%9j1T8$Z}KM?n`EF(9pU#O{=1yW1k6Lpa3F6GAu;x<6EwQ ztiiy;9q}7XhKh${p&Mjpd4s-K>IPqPK^t^yQJZ{Kx$~8^aj%o^OqK34qlDnsBSmWi z$%2Z#DTnB4RgmM~Pami;=d@N;aV@vsXV8jyreI-VJ@N78BIHc{D6dvCa)@f6su%SN zZ*ga`RCv~dT8g2g^3&~=tyqAxye9Nhi%J5Cy9}3F9j3K3%sF2QD@?}7T?{mZ<^=E+ z)yhZNbL)LRfTO*Agn0BdXHTC-hu4>}P9I7epGRgeR+xBsvD_A1GuM zM)0<^JchU>3he;p-deap+Vu6-5cUL4{ zR`#U4Xmr{3nmZgAAcEw!|~ zUH)-e5L1D-qZX{L_ti;sG&v>~)<|o)_Xh=G^p=F&)uOhhaTg+`Vkw}Bo1^8t+N6Iu zVQMpN48rIW_)L5G&u1R+1Ul%XKZN^^$WJZc3$%)uCaZDZ2Ec=|Ux|Ek zq(g>;1$|nMVQZ}9kz4P#5=#Z}tZ^_^1RfKykK}{RLldcoJf|ikk4_OLWc^5e9@J7L zRWu!v;j5)@Jv{~}GAJATW})r0Y1&=i{4&d8R4(d#Se9`r>0J!#hei=4C+vvzF4+R7 z=_LNRyW86JwLaN3OY zM|Kc=OR@wuUEEM#{65N-C33a!qs3aSvwp47eHTSs+@M&4Z`PDouM1wZNV2HSDn$ zdb!;8R0!(*I7DLfd)@Y<+UX}kfwa#}7yK1GMTKZ0te|1d5Jc_w@Ma$^0x|-pJfe_Q zWKvKARmizR6(6t`JtLxR6|_E@1$8bCm#cCP4+g8+TME|5#N-K{y7Dw%Anm>?D?8ZO ztR=meMu~mFJLTe?CGrq6)%E2^%N0%+helxiyGrvebC7uMOoEc1(lVj@_<`+eL*%3LSdat%g8_?W(u>iEIzw#r#d zk3_PVRX7vfi-BA>?O<|u zh3gmg@C^fUac)~u+%h#)V>u(XWugHv@9*#%Ta9az{?!}AnZbORM^w9JMsJJLKTEhc z%e+=giZvn|!+4|%+wW971Ojg@N!G}vLLtq^OAAce36sUkL>F8F)6eY0m)Ol-V;3a| z;}I8&+P%yjaB0L!jXs@oF6@@UF>%PAf48zJ{~Z@V2{a_hgGSGTbmkXdH+Vag#vJGN@rX;~?=QPo zEag;dx2%!=yz_OA!D*E?e>j+N=G!7sm2e5p@Ah$mH#?-CnFNReYO2;;Wv_j66iYt% z7IOwjjdrft=rJOxcB;QnL~rP5Ma~jxkr28A4sGBS&qOU{8D_8NzSAVXvtr}%=_BY! zElsttjvGCiM(&P8yK?pAb=ZHH_E4U9q>}TkhLImRyQ2o3N#Ri0NYBchDE8iO){Sdzj#C`BhTdT$n5nprP@dw5;>}gs6BKQ~4*Cc*HS`X-*vwc2F0TMEHz zbs|s)O^l!HcM+Odzudsa;PV|NCP5l~J?q2DsloEZQ$#iX8xMkmPSF+WJerWY|;Dtxx7go-daV*|{Vhq4# zX0;|oCkx6}(3pM#o%i0?73!6VsrA4LmB}Ptv*jY~d+0ZGH%^?D_E&)6LIl2%DyJ{@ zuYT<{c_&92+R$XxKI$pK8RNLP$O*c010hy$>=r)}3*5HEmqiS71LG2uUUo}#nV_q9 zKAKIVG9TIcU-V6ErZtO*$jIzVr131qUx3r*9n2G<-uVhyLEbx~nv8Ol@6-<75f{6M z*R=*)(UYf{+H$@@BTv|7SexdG@ZnCvi{zRC3XykSeuk4JzA^o6Np`=zRf6`au6UN0 zw>uw*vrZZ+)UUchx<=XUb_u;MHSoK_Ny)qug9eP)NQ{bnQb~gKCJ=Y1-Uz?6?zn2z z=}%w-c;})0ZV!Bu;4kr{=x6q{(Mg}thEw=iRmkzXQP95A86ufME-aDrg<1ZsLvIZg zI~QhTJ?qrUC=NpTtPNsR-oduE6URJFiypz>X&7QjhW?y2#N#DfZcu!{WB(_raF%J! zk0znUC(g|7^izc7C|a#0hOx^K?dJ%r+@D@ly=MK_o@d4C_<&e6+Tg=~?Kq}nQ_;E^ zXWr)nz>TP-KJiV;FSaa4yZMb^-bFL{n0V=HRj;+{zGfSW7Cg3jtCkCtVdV?6frmL8 zZBQ#(My*e`r~J%6SCETva8FovHiI!%N;E!{R7r%20^B{*?VT74299QTL}iv%?b?SE z&c_qHa5yxyj}>AkB&*9$PN-x@Pqxn=sFfWp2k^<@Kk%)ApO+u{z`mbZt-;3Jz9tvd zAD%n|baINUPzQH+R%sJ)K!ZsO-!J7Cp#ZJcRbCaTmn2Uj7NxXseBT3~{H9G+aGS8# zvh%Sv+=bf+38arSqWHduuu26}xNB_|Q_Xj+@7aI$oH*wtVO<$3=?%t$MEf|S-CG39 zO<3sm*I#FZ+@wYlThxD&{i>63rJN{$apWz45&bJE_z7#as@KjJ3KfHn5-gnasUBj6 zb+j*UXba$MW;Jb3JZAO7RZw7dXq+lKR#sab;LaDF6pLDP%-B*E`O6Wn>NwajLjpRRV+-)unx5t#Rp=? z5FGLkNMcz7Kj0Cd21ydVv<8{vO=Ln5VpD``QLh4$9@e(g7XMMzWugcNn%|wI1L-K2 z=%ht?ya{j+c%1}Reb?Zo7&<%c+qcl9`+0`>r-&>J01h6tWu*5N=sr#pXiTrG0zds} zdPsIe%Llf3e~}4aa1fRguhh9ZqQ6tAd4CBT2%=5=*>Ja_Yx84?!ydC2ODG!b)JBzo)^+Jf&I8!c-Z z8DX*@Io2QXxc%p3^kToGV?NX>6`hYeCJ6NdIK21Yg{@h|W}+EgCAvNIPc}`6b780N z9ZZd#s`yAs%GcY3)oV_{n$|@n{l9Jq1CczxX66m9CoNRQC8cPCt+7uu zOTErqZn)Z%zen2iO=V-_^Ctjh^MIO893ZexDh|&O@(k9A3JT@8G-K1UGJ6P+_T{d3dlRjTQ6;$8X zz@c97_bZLrr;}jpGy6D9RDG9~Bl$fLnUomjY>DiL73!kkKpuGr>@Fx2bp)-BL9qp6 zTh?AKzIp&x!E3wq@%b7kGZ>{3(nn30)DESScK(*}yvOA$f~sf#lRk-DrOKrn&p6IQ zW?<--{NEGreY&(B_e%|&_#(E)mvi+$9#zPOBA+$z9O;P~%`*g`l02-^;_ABr>zn|g z@GT`)J@c^rp89bbm-*ZFKytGv)C~-8E=Uz)x7`@Xu-jF;ptCwi3x5$BH&&=!nWR&Y zJS(ffina+XBn<8H_0-a8sFu&Qr0LDA?^0LL}~GnBwqz z@qQ1YUwF1Y0dA?2Hig1gzzR-%ZD3Br(7;6$`qD=bb;_Tpkz+oq(}B*-RNjcrCb7{M zP8=iJlz_ZYc;O{JOG0G!YK?s(JB!U@+yiBP0{cR(cthSPIE2ve5uU8i0NN-1wvo?u z&qsU6MR%A|T4Vw5rFY!zM@y~5m?@D8FZpoRPuCaNs6{S^ho>hZvFujEYj1F}28w(z z=CCx7D2CaqXLwm27$fuwC?~uCaBU@EWjcnq=ra3mB7huSOV#Su^U=1%ai%UWZ6(=p zxz@1q-XizziYaQFnz%?K9fF+1AN&tyo5R^;Nw(1Us7>u+IHPaA=3Fktf^pM1 zk$7V7I=I$*nvBXYt&TB`RTz(74cFtbDPgft!!}e<$JRyPXLfd5DH`ur>SpF(9v1xi zq$k>57y60a$PhX@`V65 zqWrvNP@&6c^Djs*dwA&NIyN5D+v$f-QIXd?S}}hKVN5{qt^ZJ09sVdYGL*&kcufQZ zi_DeQPhzi2MROwGx1P0{8;k11GAV(r7;4xLpmz;kBk0#xS>8)EyJLWfPJ$OqJ6J;b z?oSjESfE+FA>b*HNNV{L^v+v$dofZwW>hy*>@I8GotzKFz?=_VEW0m9xu^LAt; z2mR4!xq2Na3Yr0X^yNWT%9Ci0=iPS?n-aNB->4zbLVTXw!Wxg-1MI~Yj?4?5iM7S7 z^8bbW3RlXF@WDW&*tz$zU2t>SpA8`F4Mra{|6i-&*f&etX4)`V5p> z`N(HD_ut@|0i9x*qYbN57}bbD!>Q;dP6^2xRer1IzLY$MP}WGUAm#d@1%1IE z?JytUy()Pxf-AW04J?@kZPCxyFiKunR$U|86*%L&NN0 zg_C`iz#)Zmju^|N%G`9C`a-wae2hATL&fyqHEHWI%p(Bd!@W*Mr`@+`+NQH#M5an| zV#NrXOqx^hxx*!^3^9q~y%Un6*)jTvbmnEcEf$+PAMwu=R&`kNN+n4MKFgW@Nu6@3 z19N)n0psxVF_R3MsLk8os`(ZOEWGY+&SqwjadFup^lt|~cp0V{g|`uQiW!0zQoXS9 zpl?aYA++$eRoc`iXQcfnhx)f>tDtkRSd_)KNt(eW8244wX12T)sJ);U+IsYufvxbh zu$fXKL=TamZQdNNB>_di%QgUZgbBR8#En zSd4i1&Bst<6h{Vuf7cn4udW^b%=V6q4Rvjz$;jN`nRAYeK2=^RpQ}Zy$Y}uE)y?oY zK70bY-ixELjbC~A)M4m?WXNX3YUK9V-i}Zs1cDv~25peHh!8!-Dl4;DuLT`9V6;g- zw|&9TjhGp3Px1HOu@1sBg~Yb^D#or?6F>Z&h6u)x8j$v!v^)EEoh<~u886hd{vHkX zFbL3Ta2#>+PN1R)5zY(v0ANG_@a6}jTF*dCN6SeRU^IPW!_@wAbZ`sjWTf`6|A81q z9~@)4+ieYI&nuT#Cp@GWFGI#Qnl}si+^-7-JHO!&Wc2i3&YRM;H3%b-2J2p?jLVK2 z8XMzbV~2%@6LDI%YP*VtcQjl7DaH!EQ$i3DmV|lQI4IDQlhx89o}%ui@k=429O2Azl)X>F z1^sU4%3^~M&X;QBDWC}I3meLfW(M`a?o+u1Hhzx<2DC2bt*if}enb~Kc0x)yzwrq5 zV`1vfl!#L6f$2ijxk*Vn3?gz0X`Wn&Y-n2~BZ4?MICopr0Dp!h+#DA2gB|x4oQv05 zlP|r)fTBU|DmDoh(L|$#l1eYJJ>iuRH~8EQ36G3S4FgH!$nfxw>C}FHVY2H5-%lrWy zI8NgNG9ia;hzklQQN|#fzjZQR)5ik3a1rwzq0fzoyaZt8#8Ee>#h+ny;psGMp@>7M4E;f zk)OntLhbhf_P8?9ux(m8IxrKnqp!~`9&B1gGuJr;a0<5XSjX!@h+Kg`mH{}Myk_42 z{(AcbRYwXnt+`twt8L5d_Ox$f=jW2C00rlaGw zUJ;iK01=R2Q55Jx=g5Rf?w{NG5hp(ljNq9%21CRcnV8VJ;0GY8CO{53Vh>`>|JSd; zn2WruETlibLR!aQEX~Wap!#la9U=Z3nv8z5v){{HF?GxMk;m>ltc-RnRE z%r5=&z`v^je}hB(*V_KaKQ%L8Oz`(p18}f^{RaNlef+1H=hY{X`3K;Sgvfj00zsW` F{|7(pSc3on literal 0 HcmV?d00001 diff --git a/features/nfc/doc/uml_diagram_ndef_common_parsers.txt b/features/nfc/doc/uml_diagram_ndef_common_parsers.txt new file mode 100644 index 0000000000..7e9418d2c2 --- /dev/null +++ b/features/nfc/doc/uml_diagram_ndef_common_parsers.txt @@ -0,0 +1,58 @@ +@startuml + +package ndef { + +abstract RecordParser { + +RecordParser() + +{abstract} bool parse(const Record&) + #~RecordParser() +} + +abstract GenericRecordParser { + +GenericRecordParser() + +bool parse(const Record&) + +void set_delegate(Delegate* delegate) + #~GenericRecordParser() +} + +interface GenericRecordParser::Delegate { + +{abstract} void on_record_parsed(const ParsingResult& result, const RecordID* id) + #~Delegate() +} + +RecordParser <|- GenericRecordParser +GenericRecordParser +- "0..1" GenericRecordParser::Delegate + +} + +package common { +class URI { +} +class Mime { +} +class Text { +} + +class URIParser { + bool do_parse(const ndef::Record& record, URI& uri) +} + +class TextParser { + bool do_parse(const ndef::Record& record, Text& text) +} + +class MimeParser { + bool do_parse(const ndef::Record& record, Mime& mime) +} + +URI -- URIParser: Produce < +Text -- TextParser: Produce < +Mime -- MimeParser: Produce < + +URIParser --|> GenericRecordParser +TextParser --|> GenericRecordParser +MimeParser --|> GenericRecordParser +} + + +@enduml \ No newline at end of file diff --git a/features/nfc/doc/uml_diagram_ndef_message_parser.png b/features/nfc/doc/uml_diagram_ndef_message_parser.png new file mode 100644 index 0000000000000000000000000000000000000000..ab27b9147423e407127add4cb30f14b56b7ae18c GIT binary patch literal 32580 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 literal 0 HcmV?d00001 diff --git a/features/nfc/doc/uml_diagram_ndef_message_parser.txt b/features/nfc/doc/uml_diagram_ndef_message_parser.txt new file mode 100644 index 0000000000..c5761290fa --- /dev/null +++ b/features/nfc/doc/uml_diagram_ndef_message_parser.txt @@ -0,0 +1,46 @@ +@startuml + +package ndef { + +class MessageParser { + +MessageParser() + +void set_delegate(Delegate* delegate) + +void parse(const ac_buffer_t& data_buffer) +} + +interface MessageParser::Delegate { + +{abstract} void on_parsing_started() + +{abstract} void on_record_parsed(const Record& record) + +{abstract} void on_parsing_terminated() + +{abstract} void on_parsing_error(error_t error) + # ~Delegate() +} + +enum MessageParser::error_t { +} + +MessageParser +-- "0..1" MessageParser::Delegate +MessageParser +-- MessageParser::error_t + +note top of "MessageParser::Delegate" +Implemented by the client of the parsing operation. +end note + +class Record { +} +class RecordType { +} +class RecordPayload { +} +class RecordID { +} + +Record *-- RecordType +Record *-- "0..1" RecordPayload +Record *-- "0..1" RecordID + +MessageParser - Record: Produce > + +} + +@enduml \ No newline at end of file diff --git a/features/nfc/doc/uml_diagram_ndef_record_parser.png b/features/nfc/doc/uml_diagram_ndef_record_parser.png new file mode 100644 index 0000000000000000000000000000000000000000..ffc3ed530d8f7623a9ff0c90df2f182c2bb8b2ed GIT binary patch literal 59354 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 OWT&UApUXO@geCy@@U5u; literal 0 HcmV?d00001 diff --git a/features/nfc/doc/uml_diagram_ndef_record_parser.txt b/features/nfc/doc/uml_diagram_ndef_record_parser.txt new file mode 100644 index 0000000000..d9f1fae5a9 --- /dev/null +++ b/features/nfc/doc/uml_diagram_ndef_record_parser.txt @@ -0,0 +1,73 @@ +@startuml + +package ndef { + +class Record { +} +class RecordType { +} +class RecordPayload { +} +class RecordID { +} + +Record *-- RecordType +Record *-- "0..1" RecordPayload +Record *-- "0..1" RecordID + +abstract RecordParser { + +RecordParser() + +{abstract} bool parse(const Record&) + #~RecordParser() +} + +abstract GenericRecordParser { + +GenericRecordParser() + +bool parse(const Record&) + +void set_delegate(Delegate* delegate) + #~GenericRecordParser() +} + +interface GenericRecordParserConcept { + +bool do_parse(const Record& record, ParsingResult& parsing_result) +} + +interface GenericRecordParser::Delegate { + +{abstract} void on_record_parsed(const ParsingResult& record, const RecordID* id) + #~Delegate() +} + +RecordParser <|-- GenericRecordParser +GenericRecordParser <|-- GenericRecordParserConcept +GenericRecordParser +-- "0..1" GenericRecordParser::Delegate + +note as N1 + GenericRecordParserConcept model the concept that must + be implemented by GenericRecordParser childs. + It doesn't exist in the hierarchy. +end note + +N1 - GenericRecordParser +N1 - GenericRecordParserConcept + +note bottom of "GenericRecordParser::Delegate" +Implemented by the client of the parsing operation. +end note + +class RecordParserChain { + +RecordParserChain() + +~RecordParserChain() + +bool parse(const Record& record) + +void set_next_parser(RecordParser* parser) +} + +note bottom of "RecordParserChain" +Chain of responsibility pattern. +end note + +Record - RecordParserChain: Parse > +RecordParserChain o- "*" RecordParser + +} + +@enduml \ No newline at end of file diff --git a/features/nfc/doc/uml_diagram_ndef_simple_parser.png b/features/nfc/doc/uml_diagram_ndef_simple_parser.png new file mode 100644 index 0000000000000000000000000000000000000000..02a77eb11455917242428ccf4a97490b08bd9d86 GIT binary patch literal 95751 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 k<)%s=|IHrmqy3H#-+FN=m$YX&sW+0KpHr`1 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 { + +} + +interface GenericRecordParser::Delegate { + +{abstract} void on_record_parsed(const ParsingResult& record, const RecordID* id) + #~Delegate() +} + +class MessageParser { + +} + +interface MessageParser::Delegate { + +{abstract} void on_parsing_started() + +{abstract} void on_record_parsed(const Record& record) + +{abstract} void on_parsing_terminated() + +{abstract} void on_parsing_error(error_t error) + # ~Delegate() +} + + +MessageParser +-- "0..1" MessageParser::Delegate + + +RecordParserChain -o RecordParser +GenericRecordParser --|> RecordParser +GenericRecordParser +- "0..1" GenericRecordParser::Delegate + +RecordParserChain -[hidden]- MessageParser + +} + +package common { + +class SimpleMessageParser { + + SimpleMessageParser() + + ~SimpleMessageParser() + + void set_delegate(Delegate* delegate) + + void parse(const ac_buffer_t& data_buffer) + + void add_record_parser(ndef::RecordParser* parser) + - void on_parsing_error(ndef::MessageParser::error_t error) + - void on_parsing_started() + - void on_record_parsed(const ndef::Record& record) + - void on_parsing_terminated() + - void on_record_parsed(const URI& uri, const ndef::RecordID* id) + - void on_record_parsed(const Text& uri, const ndef::RecordID* id) + - void on_record_parsed(const Mime& uri, const ndef::RecordID* id) +} + +interface SimpleMessageParser::Delegate { + + {abstract} void on_parsing_error(ndef::MessageParser::error_t error) + + {abstract} void on_parsing_started() + + {abstract} void on_text_parsed(const Text& text, const ndef::RecordID* id) + + {abstract} void on_mime_parsed(const Mime& text, const ndef::RecordID* id) + + {abstract} void on_uri_parsed(const URI& uri, const ndef::RecordID* id) + + {abstract} void on_unknown_record_parsed(const ndef::Record& record) + + {abstract} void on_parsing_terminated() + # ~Delegate() +} + +SimpleMessageParser::Delegate +- SimpleMessageParser + +class URIParser { + +} + +class TextParser { + +} + +class MimeParser { + +} + +URIParser --|> GenericRecordParser +TextParser --|> GenericRecordParser +MimeParser --|> GenericRecordParser + +SimpleMessageParser o-- URIParser +SimpleMessageParser o-- TextParser +SimpleMessageParser o-- MimeParser +SimpleMessageParser o-- RecordParserChain +SimpleMessageParser o-- MessageParser +SimpleMessageParser <|-- MessageParser::Delegate + +SimpleMessageParser <|-- GenericRecordParser::Delegate +SimpleMessageParser <|-- GenericRecordParser::Delegate +SimpleMessageParser <|-- GenericRecordParser::Delegate + +} + +@enduml \ No newline at end of file