commit 50590096edece848144b03f765773b45717b6813 Author: erinn Date: Tue Oct 23 11:52:13 2018 -0700 initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..2ac51d58 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.idea +deploy +moc* +rcc* diff --git a/gcd.go b/gcd.go new file mode 100644 index 00000000..4fdd172b --- /dev/null +++ b/gcd.go @@ -0,0 +1,171 @@ +package main + +import ( + "github.com/therecipe/qt/core" + "log" + "fmt" + "strings" + "cwtch.im/cwtch/model" + "encoding/base32" + ) + +type GrandCentralDispatcher struct { + core.QObject + + currentOpenConversation string + + // messages pane stuff + _ func(from, message string) `signal:"AppendMessage"` + _ func() `signal:"ClearMessages"` + _ func() `signal:"ResetMessagePane"` + + // contact list stuff + _ func(onion string, num int) `signal:"SetUnread"` + _ func(onion string, status int) `signal:"SetConnectionStatus"` + _ func(name, onion, image, badge string, trusted bool) `signal:"AddContact"` + _ func(onion string) `signal:"MarkTrusted"` + + // profile-area stuff + _ func(name, onion, image string) `signal:"UpdateMyProfile"` + + // other stuff i can't ontologize atm + _ func(str string) `signal:"InvokePopup"` + + // exfiltrated signals (written in go, below) + _ func(message string) `signal:"sendMessage,auto"` + _ func(onion string) `signal:"loadMessagesPane,auto"` + _ func(signal string) `signal:"broadcast,auto"` // convenience relay signal + _ func(str string) `signal:"importString,auto"` + _ func(str string) `signal:"popup,auto"` + _ func(nick string) `signal:"updateNick,auto"` +} + +func (this *GrandCentralDispatcher) sendMessage(message string) { + if len(message) > 65530 { + gcd.InvokePopup("message is too long") + return + } + + if gcd.currentOpenConversation == "" { + return + } + + // TODO: require explicit invite accept/reject instead of implicitly trusting on send + if !peer.GetContact(gcd.currentOpenConversation).Trusted { + peer.GetContact(gcd.currentOpenConversation).Trusted = true + peer.Save() + gcd.MarkTrusted(gcd.currentOpenConversation) + } + + log.Printf("SENDING MESSAGE %v to %v...\n", message, gcd.currentOpenConversation) + connection := peer.PeerWithOnion(gcd.currentOpenConversation) + + fmt.Printf("sending data, connection state: %v\n", connection.GetState()) + go connection.SendPacket([]byte(message)) + DeliverMessageToUI(gcd.currentOpenConversation, message, true) +} + +func (this *GrandCentralDispatcher) loadMessagesPane(onion string) { + gcd.ClearMessages() + gcd.currentOpenConversation = onion + gcd.SetUnread(onion, 0) + + _, exists := contactMgr[onion] + if exists { // (if not, they haven't been accepted as a contact yet) + contactMgr[onion].Unread = 0 + + messages := contactMgr[onion].Messages + for i := range messages { + from := messages[i].With + if messages[i].FromMe { + from = "me" + } + gcd.AppendMessage(from, messages[i].Message) + } + } +} + +func (this *GrandCentralDispatcher) broadcast(signal string) { + switch signal { + default: + log.Fatalf("unhandled broadcast signal: %v", signal) + case "ResetMessagePane": + gcd.ResetMessagePane() + } +} + +func (this *GrandCentralDispatcher) importString(str string) { + log.Printf("importing: %s\n", str) + onion := str + name := onion + + if strings.Contains(str, "~") { + parts := strings.Split(str, "~") + onion = parts[len(parts) - 1] + name = strings.Join(parts[:len(parts) - 1], " ") + } + + if len(onion) != 56 { + gcd.InvokePopup("invalid format") + return + } + + name = strings.TrimSpace(name) + if name == "" { + gcd.InvokePopup("empty name") + return + } + + if len(name) > 32 { + name = name[:32]//TODO: better strategy for long names? + } + + decodedPub, err := base32.StdEncoding.DecodeString(strings.ToUpper(onion[:56])) + if err != nil { + log.Printf("%v", err) + gcd.InvokePopup("bad format. missing characters?") + return + } + + _, exists := peer.GetProfile().GetCustomAttribute(name + "_onion") + if exists { + gcd.InvokePopup("can't re-use names :(") + return + } + + _, exists = peer.GetProfile().GetCustomAttribute(onion + "_name") + if exists { + gcd.InvokePopup("already have this contact") + return//TODO: bring them to the duplicate + } + + pp := model.PublicProfile{ + name, + decodedPub[:32], + false, + false, + onion} + + if peer == nil { + log.Printf("[!!!] peer is nil?!?!?") + } + + log.Printf("adding %v <%v>", name, onion) + peer.GetProfile().Contacts[onion] = &pp + peer.GetProfile().SetCustomAttribute(onion+"_name", name) + peer.GetProfile().SetCustomAttribute(name+"_onion", onion) + peer.GetProfile().TrustPeer(onion) + peer.Save() + go peer.PeerWithOnion(onion) + //contactMgr[onion] = &Contact{[]Message{}, 0, 0} + //gcd.AddContact(name, onion, randomProfileImage(onion), "0") +} + +func (this *GrandCentralDispatcher) popup(str string) { + gcd.InvokePopup(str) +} + +func (this *GrandCentralDispatcher) updateNick(nick string) { + peer.GetProfile().Name = nick + peer.Save() +} \ No newline at end of file diff --git a/main.go b/main.go new file mode 100644 index 00000000..331ebd19 --- /dev/null +++ b/main.go @@ -0,0 +1,213 @@ +package main + +import ( +"os" + "github.com/therecipe/qt/core" +"github.com/therecipe/qt/quick" +"github.com/therecipe/qt/quickcontrols2" +"github.com/therecipe/qt/widgets" + "time" + "github.com/sethvargo/go-diceware/diceware" + libpeer "cwtch.im/cwtch/peer" + "path" + "os/user" + "fmt" + "encoding/base32" + "strings" + "cwtch.im/cwtch/peer/connections" +) + +var gcd *GrandCentralDispatcher +type ContactManager map[string]*Contact +var contactMgr ContactManager +var peer libpeer.CwtchPeer + +type Contact struct { + Messages []Message + Unread int + Status connections.ConnectionState +} + +func (this *Contact) AddMessage(m Message) { + this.Messages = append(this.Messages, m) +} + +type Message struct { + With, Message string + FromMe bool +} + +func DeliverMessageToUI(from, message string, fromMe bool) { + _, found := contactMgr[from] + if !found { + contactMgr[from] = &Contact{[]Message{}, 0, 0} + } + + contactMgr[from].AddMessage(Message{from, message, fromMe}) + if gcd.currentOpenConversation == from { + if fromMe { + from = "me" + } + gcd.AppendMessage(from, message) + } else { + contactMgr[from].Unread++ + gcd.SetUnread(from, contactMgr[from].Unread) + } +} + +func init() { + GrandCentralDispatcher_QmlRegisterType2("CustomQmlTypes", 1, 0, "GrandCentralDispatcher") +} + +func main() { + contactMgr = make(ContactManager) + + core.QCoreApplication_SetAttribute(core.Qt__AA_EnableHighDpiScaling, true) + widgets.NewQApplication(len(os.Args), os.Args) + quickcontrols2.QQuickStyle_SetStyle("Universe") + view := quick.NewQQuickView(nil) + view.SetResizeMode(quick.QQuickView__SizeRootObjectToView) + view.SetTitle("bounce") + gcd = NewGrandCentralDispatcher(nil) + view.RootContext().SetContextProperty("gcd", gcd) + + if len(os.Args) == 2 && os.Args[1] == "local" { + view.SetSource(core.QUrl_FromLocalFile("./qml/main.qml")) + } else { + view.SetSource(core.NewQUrl3("qrc:/qml/main.qml", 0)) + } + + initialize(view) + view.Show() + go presencePoller() + go ricochetListener() + go alice() + widgets.QApplication_Exec() +} + +func alice() { + i := 0 + + for { + time.Sleep(time.Second * 3) + //words, _ := diceware.Generate(3) + //DeliverMessageToUI("f76b5vtleqx2puhwgkords34gs6crgbjqud6sebfzwtlrq4ngbqgcsyd", strings.Join(words, " "), i % 3 == 0) + i++ + } +} + +func presencePoller() { // TODO: make this subscribe-able in ricochet + time.Sleep(time.Second * 4) + for { + contacts := peer.GetContacts() + for i := range contacts { + _, found := contactMgr[contacts[i]] + if !found { // new contact has attempted to connect with us, treat it as an invite + contactMgr[contacts[i]] = &Contact{[]Message{}, 0, -1} + c, _ := peer.GetProfile().GetContact(contacts[i]) + peer.GetProfile().SetCustomAttribute(contacts[i]+"_name", c.Name) + peer.GetProfile().SetCustomAttribute(c.Name+"_onion", contacts[i]) + peer.Save() + gcd.AddContact(c.Name, contacts[i], randomProfileImage(contacts[i]), "0", c.Trusted) + } + + c, found := peer.GetPeers()[contacts[i]] + if !found && contactMgr[contacts[i]].Status != -2 { + //log.Printf("setting %v to -2", contacts[i]) + contactMgr[contacts[i]].Status = -2 + gcd.SetConnectionStatus(contacts[i], -2) + } else if contactMgr[contacts[i]].Status != c { + //log.Printf("was: %v", contactMgr[contacts[i]].Status) + contactMgr[contacts[i]].Status = c + //log.Printf("setting %v to status %v", contacts[i], c) + gcd.SetConnectionStatus(contacts[i], int(c)) + //log.Printf("now: %v", contactMgr[contacts[i]].Status) + } + } + time.Sleep(time.Second * 4) + } +} + +func ricochetListener() { + processData := func(onion string, data []byte) []byte { + /* _, exists := peer.GetProfile().GetCustomAttribute(onion + "_name") + if !exists { + for peer.GetContact(onion) == nil { + time.Sleep(time.Millisecond * 30) + } + + name := peer.GetContact(onion).Name + + fmt.Printf("adding new untrusted contact %v <%v>\n", name, onion) + peer.GetProfile().SetCustomAttribute(onion+"_name", name) + peer.GetProfile().SetCustomAttribute(name+"_onion", onion) + peer.Save() + + gcd.AddContact(name, onion, randomProfileImage(onion), "0", false) + } */ + + DeliverMessageToUI(onion, string(data), false) + return nil + } + + peer.SetPeerDataHandler(processData) + fmt.Fprintf(os.Stderr, "waiting for messages...\n") + err := peer.Listen() + if err != nil { + fmt.Printf("error listening for connections: %v\n", err) + gcd.InvokePopup("error handling network connection") + } +} + +func initialize(view *quick.QQuickView) { + //TODO: this section is ported over and has a lot of printf errors, need to show them in the ui + var dirname, filename string + if os.Getenv("SENDAFRIEND_FOLDER") != "" { + dirname = os.Getenv("SENDAFRIEND_FOLDER") + filename = path.Join(dirname, "identity.private") + } else { + usr, err := user.Current() + if err != nil { + fmt.Printf("\nerror: could not load current user: %v\n", err) + os.Exit(1) + } + dirname = path.Join(usr.HomeDir, ".sendafriend") + filename = path.Join(dirname, "identity.private") + } + + os.MkdirAll(dirname, 0700) + var err error + peer, err = libpeer.LoadCwtchPeer(filename, "be gay do crime") + if err != nil { + fmt.Println("couldn't load your config file, attempting to create a new one now") + + names, err := diceware.Generate(1) + peer, err = libpeer.NewCwtchPeer(names[0], "be gay do crime", filename) + if err != nil { + fmt.Println("couldn't create one either :( exiting") + os.Exit(1) + } + + peer.Save() + } + + gcd.UpdateMyProfile(peer.GetProfile().Name, peer.GetProfile().Onion, randomProfileImage(peer.GetProfile().Onion)) + + contacts := peer.GetContacts() + for i := range contacts { + attr, _ := peer.GetProfile().GetCustomAttribute(contacts[i] + "_name") + contactMgr[contacts[i]] = &Contact{[]Message{}, 0, 0} + gcd.AddContact(attr, contacts[i], randomProfileImage(contacts[i]), "0", peer.GetContact(contacts[i]).Trusted) + } +} + +// temporary until we do real picture selection +func randomProfileImage(onion string) string { + choices := []string{"001-centaur","002-kraken","003-dinosaur","004-tree-1","005-hand","006-echidna","007-robot","008-mushroom","009-harpy","010-phoenix","011-dragon-1","012-devil","013-troll","014-alien","015-minotaur","016-madre-monte","017-satyr","018-karakasakozou","019-pirate","020-werewolf","021-scarecrow","022-valkyrie","023-curupira","024-loch-ness-monster","025-tree","026-cerberus","027-gryphon","028-mermaid","029-vampire","030-goblin","031-yeti","032-leprechaun","033-medusa","034-chimera","035-elf","036-hydra","037-cyclops","038-pegasus","039-narwhal","040-woodcutter","041-zombie","042-dragon","043-frankenstein","044-witch","045-fairy","046-genie","047-pinocchio","048-ghost","049-wizard","050-unicorn"} + barr, err := base32.StdEncoding.DecodeString(strings.ToUpper(onion)) + if err != nil || len(barr) != 35 { + fmt.Printf("error: %v %v %v\n", onion, err, barr) + return "qrc:/qml/images/extra/openprivacy.png" + } + return "qrc:/qml/images/profiles/" + choices[int(barr[33]) % len(choices)] + ".png" +} \ No newline at end of file diff --git a/qml/images/LICENSE b/qml/images/LICENSE new file mode 100644 index 00000000..69633b6e --- /dev/null +++ b/qml/images/LICENSE @@ -0,0 +1,393 @@ +Attribution 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are +granted the Licensed Rights in consideration of Your acceptance of +these terms and conditions, and the Licensor grants You such rights in +consideration of benefits the Licensor receives from making the +Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public licenses. +Notwithstanding, Creative Commons may elect to apply one of its public +licenses to material it publishes and in those instances will be +considered the "Licensor." Except for the limited purpose of indicating +that material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the public +licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/qml/images/black/add.png b/qml/images/black/add.png new file mode 100644 index 00000000..23bf1192 Binary files /dev/null and b/qml/images/black/add.png differ diff --git a/qml/images/black/add@2x.png b/qml/images/black/add@2x.png new file mode 100644 index 00000000..3191d528 Binary files /dev/null and b/qml/images/black/add@2x.png differ diff --git a/qml/images/black/add@3x.png b/qml/images/black/add@3x.png new file mode 100644 index 00000000..a84106b0 Binary files /dev/null and b/qml/images/black/add@3x.png differ diff --git a/qml/images/black/add@4x.png b/qml/images/black/add@4x.png new file mode 100644 index 00000000..3cb10924 Binary files /dev/null and b/qml/images/black/add@4x.png differ diff --git a/qml/images/black/arrow_back.png b/qml/images/black/arrow_back.png new file mode 100644 index 00000000..ad388309 Binary files /dev/null and b/qml/images/black/arrow_back.png differ diff --git a/qml/images/black/arrow_back@2x.png b/qml/images/black/arrow_back@2x.png new file mode 100644 index 00000000..68427253 Binary files /dev/null and b/qml/images/black/arrow_back@2x.png differ diff --git a/qml/images/black/arrow_back@3x.png b/qml/images/black/arrow_back@3x.png new file mode 100644 index 00000000..2cebb5b2 Binary files /dev/null and b/qml/images/black/arrow_back@3x.png differ diff --git a/qml/images/black/arrow_back@4x.png b/qml/images/black/arrow_back@4x.png new file mode 100644 index 00000000..fb5235fb Binary files /dev/null and b/qml/images/black/arrow_back@4x.png differ diff --git a/qml/images/black/bus.png b/qml/images/black/bus.png new file mode 100644 index 00000000..83cc5554 Binary files /dev/null and b/qml/images/black/bus.png differ diff --git a/qml/images/black/bus@2x.png b/qml/images/black/bus@2x.png new file mode 100644 index 00000000..0a704aff Binary files /dev/null and b/qml/images/black/bus@2x.png differ diff --git a/qml/images/black/bus@3x.png b/qml/images/black/bus@3x.png new file mode 100644 index 00000000..b916d026 Binary files /dev/null and b/qml/images/black/bus@3x.png differ diff --git a/qml/images/black/bus@4x.png b/qml/images/black/bus@4x.png new file mode 100644 index 00000000..171697f4 Binary files /dev/null and b/qml/images/black/bus@4x.png differ diff --git a/qml/images/black/car.png b/qml/images/black/car.png new file mode 100644 index 00000000..016319cc Binary files /dev/null and b/qml/images/black/car.png differ diff --git a/qml/images/black/car@2x.png b/qml/images/black/car@2x.png new file mode 100644 index 00000000..462bf888 Binary files /dev/null and b/qml/images/black/car@2x.png differ diff --git a/qml/images/black/car@3x.png b/qml/images/black/car@3x.png new file mode 100644 index 00000000..b52d2be7 Binary files /dev/null and b/qml/images/black/car@3x.png differ diff --git a/qml/images/black/car@4x.png b/qml/images/black/car@4x.png new file mode 100644 index 00000000..a9964e82 Binary files /dev/null and b/qml/images/black/car@4x.png differ diff --git a/qml/images/black/colors.png b/qml/images/black/colors.png new file mode 100644 index 00000000..f7491eb7 Binary files /dev/null and b/qml/images/black/colors.png differ diff --git a/qml/images/black/colors@2x.png b/qml/images/black/colors@2x.png new file mode 100644 index 00000000..ce3a94c3 Binary files /dev/null and b/qml/images/black/colors@2x.png differ diff --git a/qml/images/black/colors@3x.png b/qml/images/black/colors@3x.png new file mode 100644 index 00000000..d93fe2e0 Binary files /dev/null and b/qml/images/black/colors@3x.png differ diff --git a/qml/images/black/colors@4x.png b/qml/images/black/colors@4x.png new file mode 100644 index 00000000..79360b16 Binary files /dev/null and b/qml/images/black/colors@4x.png differ diff --git a/qml/images/black/directions.png b/qml/images/black/directions.png new file mode 100644 index 00000000..7be13ecd Binary files /dev/null and b/qml/images/black/directions.png differ diff --git a/qml/images/black/directions@2x.png b/qml/images/black/directions@2x.png new file mode 100644 index 00000000..56284b3c Binary files /dev/null and b/qml/images/black/directions@2x.png differ diff --git a/qml/images/black/directions@3x.png b/qml/images/black/directions@3x.png new file mode 100644 index 00000000..6ebfddbe Binary files /dev/null and b/qml/images/black/directions@3x.png differ diff --git a/qml/images/black/directions@4x.png b/qml/images/black/directions@4x.png new file mode 100644 index 00000000..0ad2fbbc Binary files /dev/null and b/qml/images/black/directions@4x.png differ diff --git a/qml/images/black/done.png b/qml/images/black/done.png new file mode 100644 index 00000000..5e5e7cf2 Binary files /dev/null and b/qml/images/black/done.png differ diff --git a/qml/images/black/done@2x.png b/qml/images/black/done@2x.png new file mode 100644 index 00000000..64a4944f Binary files /dev/null and b/qml/images/black/done@2x.png differ diff --git a/qml/images/black/done@3x.png b/qml/images/black/done@3x.png new file mode 100644 index 00000000..c9c01741 Binary files /dev/null and b/qml/images/black/done@3x.png differ diff --git a/qml/images/black/done@4x.png b/qml/images/black/done@4x.png new file mode 100644 index 00000000..2f6d6386 Binary files /dev/null and b/qml/images/black/done@4x.png differ diff --git a/qml/images/black/flight.png b/qml/images/black/flight.png new file mode 100644 index 00000000..a9ee6946 Binary files /dev/null and b/qml/images/black/flight.png differ diff --git a/qml/images/black/flight@2x.png b/qml/images/black/flight@2x.png new file mode 100644 index 00000000..8d5097bc Binary files /dev/null and b/qml/images/black/flight@2x.png differ diff --git a/qml/images/black/flight@3x.png b/qml/images/black/flight@3x.png new file mode 100644 index 00000000..dcc2a5a1 Binary files /dev/null and b/qml/images/black/flight@3x.png differ diff --git a/qml/images/black/flight@4x.png b/qml/images/black/flight@4x.png new file mode 100644 index 00000000..0a55d7da Binary files /dev/null and b/qml/images/black/flight@4x.png differ diff --git a/qml/images/black/home.png b/qml/images/black/home.png new file mode 100644 index 00000000..9f2c3d2f Binary files /dev/null and b/qml/images/black/home.png differ diff --git a/qml/images/black/home@2x.png b/qml/images/black/home@2x.png new file mode 100644 index 00000000..dcdcfc0a Binary files /dev/null and b/qml/images/black/home@2x.png differ diff --git a/qml/images/black/home@3x.png b/qml/images/black/home@3x.png new file mode 100644 index 00000000..2e86cc25 Binary files /dev/null and b/qml/images/black/home@3x.png differ diff --git a/qml/images/black/home@4x.png b/qml/images/black/home@4x.png new file mode 100644 index 00000000..04e2b26f Binary files /dev/null and b/qml/images/black/home@4x.png differ diff --git a/qml/images/black/menu.png b/qml/images/black/menu.png new file mode 100644 index 00000000..ef2a48c7 Binary files /dev/null and b/qml/images/black/menu.png differ diff --git a/qml/images/black/menu@2x.png b/qml/images/black/menu@2x.png new file mode 100644 index 00000000..4e0286b7 Binary files /dev/null and b/qml/images/black/menu@2x.png differ diff --git a/qml/images/black/menu@3x.png b/qml/images/black/menu@3x.png new file mode 100644 index 00000000..7dae60b4 Binary files /dev/null and b/qml/images/black/menu@3x.png differ diff --git a/qml/images/black/menu@4x.png b/qml/images/black/menu@4x.png new file mode 100644 index 00000000..5c747ed0 Binary files /dev/null and b/qml/images/black/menu@4x.png differ diff --git a/qml/images/black/more_vert.png b/qml/images/black/more_vert.png new file mode 100644 index 00000000..0e4f2f6e Binary files /dev/null and b/qml/images/black/more_vert.png differ diff --git a/qml/images/black/more_vert@2x.png b/qml/images/black/more_vert@2x.png new file mode 100644 index 00000000..9f10aa27 Binary files /dev/null and b/qml/images/black/more_vert@2x.png differ diff --git a/qml/images/black/more_vert@3x.png b/qml/images/black/more_vert@3x.png new file mode 100644 index 00000000..87eca302 Binary files /dev/null and b/qml/images/black/more_vert@3x.png differ diff --git a/qml/images/black/more_vert@4x.png b/qml/images/black/more_vert@4x.png new file mode 100644 index 00000000..4642a3b6 Binary files /dev/null and b/qml/images/black/more_vert@4x.png differ diff --git a/qml/images/black/person.png b/qml/images/black/person.png new file mode 100644 index 00000000..57da32af Binary files /dev/null and b/qml/images/black/person.png differ diff --git a/qml/images/black/person@2x.png b/qml/images/black/person@2x.png new file mode 100644 index 00000000..360a32f2 Binary files /dev/null and b/qml/images/black/person@2x.png differ diff --git a/qml/images/black/person@3x.png b/qml/images/black/person@3x.png new file mode 100644 index 00000000..f1e14849 Binary files /dev/null and b/qml/images/black/person@3x.png differ diff --git a/qml/images/black/person@4x.png b/qml/images/black/person@4x.png new file mode 100644 index 00000000..1ebc37be Binary files /dev/null and b/qml/images/black/person@4x.png differ diff --git a/qml/images/black/remove.png b/qml/images/black/remove.png new file mode 100644 index 00000000..262b657c Binary files /dev/null and b/qml/images/black/remove.png differ diff --git a/qml/images/black/remove@2x.png b/qml/images/black/remove@2x.png new file mode 100644 index 00000000..6a899e35 Binary files /dev/null and b/qml/images/black/remove@2x.png differ diff --git a/qml/images/black/remove@3x.png b/qml/images/black/remove@3x.png new file mode 100644 index 00000000..a3a54db3 Binary files /dev/null and b/qml/images/black/remove@3x.png differ diff --git a/qml/images/black/remove@4x.png b/qml/images/black/remove@4x.png new file mode 100644 index 00000000..5d36049b Binary files /dev/null and b/qml/images/black/remove@4x.png differ diff --git a/qml/images/black/settings.png b/qml/images/black/settings.png new file mode 100644 index 00000000..c59419c0 Binary files /dev/null and b/qml/images/black/settings.png differ diff --git a/qml/images/black/settings@2x.png b/qml/images/black/settings@2x.png new file mode 100644 index 00000000..e84e188a Binary files /dev/null and b/qml/images/black/settings@2x.png differ diff --git a/qml/images/black/settings@3x.png b/qml/images/black/settings@3x.png new file mode 100644 index 00000000..3023ff8d Binary files /dev/null and b/qml/images/black/settings@3x.png differ diff --git a/qml/images/black/settings@4x.png b/qml/images/black/settings@4x.png new file mode 100644 index 00000000..476d5c97 Binary files /dev/null and b/qml/images/black/settings@4x.png differ diff --git a/qml/images/black/stars.png b/qml/images/black/stars.png new file mode 100644 index 00000000..365c321d Binary files /dev/null and b/qml/images/black/stars.png differ diff --git a/qml/images/black/stars@2x.png b/qml/images/black/stars@2x.png new file mode 100644 index 00000000..ee380e48 Binary files /dev/null and b/qml/images/black/stars@2x.png differ diff --git a/qml/images/black/stars@3x.png b/qml/images/black/stars@3x.png new file mode 100644 index 00000000..17774599 Binary files /dev/null and b/qml/images/black/stars@3x.png differ diff --git a/qml/images/black/stars@4x.png b/qml/images/black/stars@4x.png new file mode 100644 index 00000000..4746c16e Binary files /dev/null and b/qml/images/black/stars@4x.png differ diff --git a/qml/images/black/subway.png b/qml/images/black/subway.png new file mode 100644 index 00000000..b41d368a Binary files /dev/null and b/qml/images/black/subway.png differ diff --git a/qml/images/black/subway@2x.png b/qml/images/black/subway@2x.png new file mode 100644 index 00000000..aeac1063 Binary files /dev/null and b/qml/images/black/subway@2x.png differ diff --git a/qml/images/black/subway@3x.png b/qml/images/black/subway@3x.png new file mode 100644 index 00000000..431b56fb Binary files /dev/null and b/qml/images/black/subway@3x.png differ diff --git a/qml/images/black/subway@4x.png b/qml/images/black/subway@4x.png new file mode 100644 index 00000000..63e25d5e Binary files /dev/null and b/qml/images/black/subway@4x.png differ diff --git a/qml/images/black/truck.png b/qml/images/black/truck.png new file mode 100644 index 00000000..b4d930fc Binary files /dev/null and b/qml/images/black/truck.png differ diff --git a/qml/images/black/truck@2x.png b/qml/images/black/truck@2x.png new file mode 100644 index 00000000..78f42537 Binary files /dev/null and b/qml/images/black/truck@2x.png differ diff --git a/qml/images/black/truck@3x.png b/qml/images/black/truck@3x.png new file mode 100644 index 00000000..494ca528 Binary files /dev/null and b/qml/images/black/truck@3x.png differ diff --git a/qml/images/black/truck@4x.png b/qml/images/black/truck@4x.png new file mode 100644 index 00000000..ff775d65 Binary files /dev/null and b/qml/images/black/truck@4x.png differ diff --git a/qml/images/black/x18/add.png b/qml/images/black/x18/add.png new file mode 100644 index 00000000..a8be3759 Binary files /dev/null and b/qml/images/black/x18/add.png differ diff --git a/qml/images/black/x18/add@2x.png b/qml/images/black/x18/add@2x.png new file mode 100644 index 00000000..e3a7c0b9 Binary files /dev/null and b/qml/images/black/x18/add@2x.png differ diff --git a/qml/images/black/x18/add@3x.png b/qml/images/black/x18/add@3x.png new file mode 100644 index 00000000..ec83e816 Binary files /dev/null and b/qml/images/black/x18/add@3x.png differ diff --git a/qml/images/black/x18/add@4x.png b/qml/images/black/x18/add@4x.png new file mode 100644 index 00000000..a84106b0 Binary files /dev/null and b/qml/images/black/x18/add@4x.png differ diff --git a/qml/images/black/x18/arrow_back.png b/qml/images/black/x18/arrow_back.png new file mode 100644 index 00000000..7d775121 Binary files /dev/null and b/qml/images/black/x18/arrow_back.png differ diff --git a/qml/images/black/x18/arrow_back@2x.png b/qml/images/black/x18/arrow_back@2x.png new file mode 100644 index 00000000..baaf7d9a Binary files /dev/null and b/qml/images/black/x18/arrow_back@2x.png differ diff --git a/qml/images/black/x18/arrow_back@3x.png b/qml/images/black/x18/arrow_back@3x.png new file mode 100644 index 00000000..9c266c37 Binary files /dev/null and b/qml/images/black/x18/arrow_back@3x.png differ diff --git a/qml/images/black/x18/arrow_back@4x.png b/qml/images/black/x18/arrow_back@4x.png new file mode 100644 index 00000000..1bd4f76b Binary files /dev/null and b/qml/images/black/x18/arrow_back@4x.png differ diff --git a/qml/images/black/x18/bus.png b/qml/images/black/x18/bus.png new file mode 100644 index 00000000..6ceb9c8e Binary files /dev/null and b/qml/images/black/x18/bus.png differ diff --git a/qml/images/black/x18/bus@2x.png b/qml/images/black/x18/bus@2x.png new file mode 100644 index 00000000..8a0bea7c Binary files /dev/null and b/qml/images/black/x18/bus@2x.png differ diff --git a/qml/images/black/x18/bus@3x.png b/qml/images/black/x18/bus@3x.png new file mode 100644 index 00000000..7b6bace1 Binary files /dev/null and b/qml/images/black/x18/bus@3x.png differ diff --git a/qml/images/black/x18/bus@4x.png b/qml/images/black/x18/bus@4x.png new file mode 100644 index 00000000..b916d026 Binary files /dev/null and b/qml/images/black/x18/bus@4x.png differ diff --git a/qml/images/black/x18/car.png b/qml/images/black/x18/car.png new file mode 100644 index 00000000..c377f25d Binary files /dev/null and b/qml/images/black/x18/car.png differ diff --git a/qml/images/black/x18/car@2x.png b/qml/images/black/x18/car@2x.png new file mode 100644 index 00000000..338b36c6 Binary files /dev/null and b/qml/images/black/x18/car@2x.png differ diff --git a/qml/images/black/x18/car@3x.png b/qml/images/black/x18/car@3x.png new file mode 100644 index 00000000..5fdb51c0 Binary files /dev/null and b/qml/images/black/x18/car@3x.png differ diff --git a/qml/images/black/x18/car@4x.png b/qml/images/black/x18/car@4x.png new file mode 100644 index 00000000..b52d2be7 Binary files /dev/null and b/qml/images/black/x18/car@4x.png differ diff --git a/qml/images/black/x18/colors.png b/qml/images/black/x18/colors.png new file mode 100644 index 00000000..bb53832a Binary files /dev/null and b/qml/images/black/x18/colors.png differ diff --git a/qml/images/black/x18/colors@2x.png b/qml/images/black/x18/colors@2x.png new file mode 100644 index 00000000..8362e21a Binary files /dev/null and b/qml/images/black/x18/colors@2x.png differ diff --git a/qml/images/black/x18/colors@3x.png b/qml/images/black/x18/colors@3x.png new file mode 100644 index 00000000..caaeaa1c Binary files /dev/null and b/qml/images/black/x18/colors@3x.png differ diff --git a/qml/images/black/x18/colors@4x.png b/qml/images/black/x18/colors@4x.png new file mode 100644 index 00000000..d93fe2e0 Binary files /dev/null and b/qml/images/black/x18/colors@4x.png differ diff --git a/qml/images/black/x18/directions.png b/qml/images/black/x18/directions.png new file mode 100644 index 00000000..dac12211 Binary files /dev/null and b/qml/images/black/x18/directions.png differ diff --git a/qml/images/black/x18/directions@2x.png b/qml/images/black/x18/directions@2x.png new file mode 100644 index 00000000..4eff21d3 Binary files /dev/null and b/qml/images/black/x18/directions@2x.png differ diff --git a/qml/images/black/x18/directions@3x.png b/qml/images/black/x18/directions@3x.png new file mode 100644 index 00000000..b514b2f0 Binary files /dev/null and b/qml/images/black/x18/directions@3x.png differ diff --git a/qml/images/black/x18/directions@4x.png b/qml/images/black/x18/directions@4x.png new file mode 100644 index 00000000..6ebfddbe Binary files /dev/null and b/qml/images/black/x18/directions@4x.png differ diff --git a/qml/images/black/x18/done.png b/qml/images/black/x18/done.png new file mode 100644 index 00000000..b7ed067b Binary files /dev/null and b/qml/images/black/x18/done.png differ diff --git a/qml/images/black/x18/done@2x.png b/qml/images/black/x18/done@2x.png new file mode 100644 index 00000000..d4c06072 Binary files /dev/null and b/qml/images/black/x18/done@2x.png differ diff --git a/qml/images/black/x18/done@3x.png b/qml/images/black/x18/done@3x.png new file mode 100644 index 00000000..38e19bd3 Binary files /dev/null and b/qml/images/black/x18/done@3x.png differ diff --git a/qml/images/black/x18/done@4x.png b/qml/images/black/x18/done@4x.png new file mode 100644 index 00000000..c9c01741 Binary files /dev/null and b/qml/images/black/x18/done@4x.png differ diff --git a/qml/images/black/x18/flight.png b/qml/images/black/x18/flight.png new file mode 100644 index 00000000..c0b5670f Binary files /dev/null and b/qml/images/black/x18/flight.png differ diff --git a/qml/images/black/x18/flight@2x.png b/qml/images/black/x18/flight@2x.png new file mode 100644 index 00000000..6b95f2c2 Binary files /dev/null and b/qml/images/black/x18/flight@2x.png differ diff --git a/qml/images/black/x18/flight@3x.png b/qml/images/black/x18/flight@3x.png new file mode 100644 index 00000000..a91e633a Binary files /dev/null and b/qml/images/black/x18/flight@3x.png differ diff --git a/qml/images/black/x18/flight@4x.png b/qml/images/black/x18/flight@4x.png new file mode 100644 index 00000000..dcc2a5a1 Binary files /dev/null and b/qml/images/black/x18/flight@4x.png differ diff --git a/qml/images/black/x18/home.png b/qml/images/black/x18/home.png new file mode 100644 index 00000000..8b936223 Binary files /dev/null and b/qml/images/black/x18/home.png differ diff --git a/qml/images/black/x18/home@2x.png b/qml/images/black/x18/home@2x.png new file mode 100644 index 00000000..9f61d7bf Binary files /dev/null and b/qml/images/black/x18/home@2x.png differ diff --git a/qml/images/black/x18/home@3x.png b/qml/images/black/x18/home@3x.png new file mode 100644 index 00000000..979060e3 Binary files /dev/null and b/qml/images/black/x18/home@3x.png differ diff --git a/qml/images/black/x18/home@4x.png b/qml/images/black/x18/home@4x.png new file mode 100644 index 00000000..2e86cc25 Binary files /dev/null and b/qml/images/black/x18/home@4x.png differ diff --git a/qml/images/black/x18/menu.png b/qml/images/black/x18/menu.png new file mode 100644 index 00000000..5d1743bf Binary files /dev/null and b/qml/images/black/x18/menu.png differ diff --git a/qml/images/black/x18/menu@2x.png b/qml/images/black/x18/menu@2x.png new file mode 100644 index 00000000..3f5a86d4 Binary files /dev/null and b/qml/images/black/x18/menu@2x.png differ diff --git a/qml/images/black/x18/menu@3x.png b/qml/images/black/x18/menu@3x.png new file mode 100644 index 00000000..0e6fe8c5 Binary files /dev/null and b/qml/images/black/x18/menu@3x.png differ diff --git a/qml/images/black/x18/menu@4x.png b/qml/images/black/x18/menu@4x.png new file mode 100644 index 00000000..7dae60b4 Binary files /dev/null and b/qml/images/black/x18/menu@4x.png differ diff --git a/qml/images/black/x18/person.png b/qml/images/black/x18/person.png new file mode 100644 index 00000000..599e87b3 Binary files /dev/null and b/qml/images/black/x18/person.png differ diff --git a/qml/images/black/x18/person@2x.png b/qml/images/black/x18/person@2x.png new file mode 100644 index 00000000..6fbcc6d4 Binary files /dev/null and b/qml/images/black/x18/person@2x.png differ diff --git a/qml/images/black/x18/person@3x.png b/qml/images/black/x18/person@3x.png new file mode 100644 index 00000000..5e516bc1 Binary files /dev/null and b/qml/images/black/x18/person@3x.png differ diff --git a/qml/images/black/x18/person@4x.png b/qml/images/black/x18/person@4x.png new file mode 100644 index 00000000..f1e14849 Binary files /dev/null and b/qml/images/black/x18/person@4x.png differ diff --git a/qml/images/black/x18/remove.png b/qml/images/black/x18/remove.png new file mode 100644 index 00000000..1fcbfad7 Binary files /dev/null and b/qml/images/black/x18/remove.png differ diff --git a/qml/images/black/x18/remove@2x.png b/qml/images/black/x18/remove@2x.png new file mode 100644 index 00000000..5dbe79ca Binary files /dev/null and b/qml/images/black/x18/remove@2x.png differ diff --git a/qml/images/black/x18/remove@3x.png b/qml/images/black/x18/remove@3x.png new file mode 100644 index 00000000..cff1056e Binary files /dev/null and b/qml/images/black/x18/remove@3x.png differ diff --git a/qml/images/black/x18/remove@4x.png b/qml/images/black/x18/remove@4x.png new file mode 100644 index 00000000..a3a54db3 Binary files /dev/null and b/qml/images/black/x18/remove@4x.png differ diff --git a/qml/images/black/x18/settings.png b/qml/images/black/x18/settings.png new file mode 100644 index 00000000..4ae5d40a Binary files /dev/null and b/qml/images/black/x18/settings.png differ diff --git a/qml/images/black/x18/settings@2x.png b/qml/images/black/x18/settings@2x.png new file mode 100644 index 00000000..5ea62e60 Binary files /dev/null and b/qml/images/black/x18/settings@2x.png differ diff --git a/qml/images/black/x18/settings@3x.png b/qml/images/black/x18/settings@3x.png new file mode 100644 index 00000000..e3a68c4b Binary files /dev/null and b/qml/images/black/x18/settings@3x.png differ diff --git a/qml/images/black/x18/settings@4x.png b/qml/images/black/x18/settings@4x.png new file mode 100644 index 00000000..3023ff8d Binary files /dev/null and b/qml/images/black/x18/settings@4x.png differ diff --git a/qml/images/black/x18/stars.png b/qml/images/black/x18/stars.png new file mode 100644 index 00000000..651cd677 Binary files /dev/null and b/qml/images/black/x18/stars.png differ diff --git a/qml/images/black/x18/stars@2x.png b/qml/images/black/x18/stars@2x.png new file mode 100644 index 00000000..15933f64 Binary files /dev/null and b/qml/images/black/x18/stars@2x.png differ diff --git a/qml/images/black/x18/stars@3x.png b/qml/images/black/x18/stars@3x.png new file mode 100644 index 00000000..0d4c2cca Binary files /dev/null and b/qml/images/black/x18/stars@3x.png differ diff --git a/qml/images/black/x18/stars@4x.png b/qml/images/black/x18/stars@4x.png new file mode 100644 index 00000000..17774599 Binary files /dev/null and b/qml/images/black/x18/stars@4x.png differ diff --git a/qml/images/black/x18/subway.png b/qml/images/black/x18/subway.png new file mode 100644 index 00000000..7fa54e1d Binary files /dev/null and b/qml/images/black/x18/subway.png differ diff --git a/qml/images/black/x18/subway@2x.png b/qml/images/black/x18/subway@2x.png new file mode 100644 index 00000000..cdb55deb Binary files /dev/null and b/qml/images/black/x18/subway@2x.png differ diff --git a/qml/images/black/x18/subway@3x.png b/qml/images/black/x18/subway@3x.png new file mode 100644 index 00000000..f3503ba6 Binary files /dev/null and b/qml/images/black/x18/subway@3x.png differ diff --git a/qml/images/black/x18/subway@4x.png b/qml/images/black/x18/subway@4x.png new file mode 100644 index 00000000..431b56fb Binary files /dev/null and b/qml/images/black/x18/subway@4x.png differ diff --git a/qml/images/black/x18/truck.png b/qml/images/black/x18/truck.png new file mode 100644 index 00000000..7e9706c4 Binary files /dev/null and b/qml/images/black/x18/truck.png differ diff --git a/qml/images/black/x18/truck@2x.png b/qml/images/black/x18/truck@2x.png new file mode 100644 index 00000000..44ada37d Binary files /dev/null and b/qml/images/black/x18/truck@2x.png differ diff --git a/qml/images/black/x18/truck@3x.png b/qml/images/black/x18/truck@3x.png new file mode 100644 index 00000000..d548306e Binary files /dev/null and b/qml/images/black/x18/truck@3x.png differ diff --git a/qml/images/black/x18/truck@4x.png b/qml/images/black/x18/truck@4x.png new file mode 100644 index 00000000..494ca528 Binary files /dev/null and b/qml/images/black/x18/truck@4x.png differ diff --git a/qml/images/black/x36/add.png b/qml/images/black/x36/add.png new file mode 100644 index 00000000..c04b523c Binary files /dev/null and b/qml/images/black/x36/add.png differ diff --git a/qml/images/black/x36/add@2x.png b/qml/images/black/x36/add@2x.png new file mode 100644 index 00000000..a84106b0 Binary files /dev/null and b/qml/images/black/x36/add@2x.png differ diff --git a/qml/images/black/x36/add@3x.png b/qml/images/black/x36/add@3x.png new file mode 100644 index 00000000..66bad816 Binary files /dev/null and b/qml/images/black/x36/add@3x.png differ diff --git a/qml/images/black/x36/add@4x.png b/qml/images/black/x36/add@4x.png new file mode 100644 index 00000000..60cbd9cb Binary files /dev/null and b/qml/images/black/x36/add@4x.png differ diff --git a/qml/images/black/x36/arrow_back.png b/qml/images/black/x36/arrow_back.png new file mode 100644 index 00000000..da807e99 Binary files /dev/null and b/qml/images/black/x36/arrow_back.png differ diff --git a/qml/images/black/x36/arrow_back@2x.png b/qml/images/black/x36/arrow_back@2x.png new file mode 100644 index 00000000..1bd4f76b Binary files /dev/null and b/qml/images/black/x36/arrow_back@2x.png differ diff --git a/qml/images/black/x36/arrow_back@3x.png b/qml/images/black/x36/arrow_back@3x.png new file mode 100644 index 00000000..714b100e Binary files /dev/null and b/qml/images/black/x36/arrow_back@3x.png differ diff --git a/qml/images/black/x36/arrow_back@4x.png b/qml/images/black/x36/arrow_back@4x.png new file mode 100644 index 00000000..1e88d35a Binary files /dev/null and b/qml/images/black/x36/arrow_back@4x.png differ diff --git a/qml/images/black/x36/bus.png b/qml/images/black/x36/bus.png new file mode 100644 index 00000000..d1f0866b Binary files /dev/null and b/qml/images/black/x36/bus.png differ diff --git a/qml/images/black/x36/bus@2x.png b/qml/images/black/x36/bus@2x.png new file mode 100644 index 00000000..b916d026 Binary files /dev/null and b/qml/images/black/x36/bus@2x.png differ diff --git a/qml/images/black/x36/bus@3x.png b/qml/images/black/x36/bus@3x.png new file mode 100644 index 00000000..d688f291 Binary files /dev/null and b/qml/images/black/x36/bus@3x.png differ diff --git a/qml/images/black/x36/bus@4x.png b/qml/images/black/x36/bus@4x.png new file mode 100644 index 00000000..94097cd7 Binary files /dev/null and b/qml/images/black/x36/bus@4x.png differ diff --git a/qml/images/black/x36/car.png b/qml/images/black/x36/car.png new file mode 100644 index 00000000..62c81c3b Binary files /dev/null and b/qml/images/black/x36/car.png differ diff --git a/qml/images/black/x36/car@2x.png b/qml/images/black/x36/car@2x.png new file mode 100644 index 00000000..b52d2be7 Binary files /dev/null and b/qml/images/black/x36/car@2x.png differ diff --git a/qml/images/black/x36/car@3x.png b/qml/images/black/x36/car@3x.png new file mode 100644 index 00000000..d67b9f34 Binary files /dev/null and b/qml/images/black/x36/car@3x.png differ diff --git a/qml/images/black/x36/car@4x.png b/qml/images/black/x36/car@4x.png new file mode 100644 index 00000000..adece363 Binary files /dev/null and b/qml/images/black/x36/car@4x.png differ diff --git a/qml/images/black/x36/colors.png b/qml/images/black/x36/colors.png new file mode 100644 index 00000000..8362e21a Binary files /dev/null and b/qml/images/black/x36/colors.png differ diff --git a/qml/images/black/x36/colors@2x.png b/qml/images/black/x36/colors@2x.png new file mode 100644 index 00000000..d93fe2e0 Binary files /dev/null and b/qml/images/black/x36/colors@2x.png differ diff --git a/qml/images/black/x36/colors@3x.png b/qml/images/black/x36/colors@3x.png new file mode 100644 index 00000000..7a87c932 Binary files /dev/null and b/qml/images/black/x36/colors@3x.png differ diff --git a/qml/images/black/x36/colors@4x.png b/qml/images/black/x36/colors@4x.png new file mode 100644 index 00000000..96e053b9 Binary files /dev/null and b/qml/images/black/x36/colors@4x.png differ diff --git a/qml/images/black/x36/directions.png b/qml/images/black/x36/directions.png new file mode 100644 index 00000000..1d429c8f Binary files /dev/null and b/qml/images/black/x36/directions.png differ diff --git a/qml/images/black/x36/directions@2x.png b/qml/images/black/x36/directions@2x.png new file mode 100644 index 00000000..6ebfddbe Binary files /dev/null and b/qml/images/black/x36/directions@2x.png differ diff --git a/qml/images/black/x36/directions@3x.png b/qml/images/black/x36/directions@3x.png new file mode 100644 index 00000000..e6abceb3 Binary files /dev/null and b/qml/images/black/x36/directions@3x.png differ diff --git a/qml/images/black/x36/directions@4x.png b/qml/images/black/x36/directions@4x.png new file mode 100644 index 00000000..26ef8745 Binary files /dev/null and b/qml/images/black/x36/directions@4x.png differ diff --git a/qml/images/black/x36/done.png b/qml/images/black/x36/done.png new file mode 100644 index 00000000..d4c06072 Binary files /dev/null and b/qml/images/black/x36/done.png differ diff --git a/qml/images/black/x36/done@2x.png b/qml/images/black/x36/done@2x.png new file mode 100644 index 00000000..c9c01741 Binary files /dev/null and b/qml/images/black/x36/done@2x.png differ diff --git a/qml/images/black/x36/done@3x.png b/qml/images/black/x36/done@3x.png new file mode 100644 index 00000000..1d2fd9cc Binary files /dev/null and b/qml/images/black/x36/done@3x.png differ diff --git a/qml/images/black/x36/done@4x.png b/qml/images/black/x36/done@4x.png new file mode 100644 index 00000000..5697dba9 Binary files /dev/null and b/qml/images/black/x36/done@4x.png differ diff --git a/qml/images/black/x36/flight.png b/qml/images/black/x36/flight.png new file mode 100644 index 00000000..71d5e653 Binary files /dev/null and b/qml/images/black/x36/flight.png differ diff --git a/qml/images/black/x36/flight@2x.png b/qml/images/black/x36/flight@2x.png new file mode 100644 index 00000000..dcc2a5a1 Binary files /dev/null and b/qml/images/black/x36/flight@2x.png differ diff --git a/qml/images/black/x36/flight@3x.png b/qml/images/black/x36/flight@3x.png new file mode 100644 index 00000000..9301d7cb Binary files /dev/null and b/qml/images/black/x36/flight@3x.png differ diff --git a/qml/images/black/x36/flight@4x.png b/qml/images/black/x36/flight@4x.png new file mode 100644 index 00000000..5dfdebc8 Binary files /dev/null and b/qml/images/black/x36/flight@4x.png differ diff --git a/qml/images/black/x36/home.png b/qml/images/black/x36/home.png new file mode 100644 index 00000000..9f61d7bf Binary files /dev/null and b/qml/images/black/x36/home.png differ diff --git a/qml/images/black/x36/home@2x.png b/qml/images/black/x36/home@2x.png new file mode 100644 index 00000000..2e86cc25 Binary files /dev/null and b/qml/images/black/x36/home@2x.png differ diff --git a/qml/images/black/x36/home@3x.png b/qml/images/black/x36/home@3x.png new file mode 100644 index 00000000..4ccd55b4 Binary files /dev/null and b/qml/images/black/x36/home@3x.png differ diff --git a/qml/images/black/x36/home@4x.png b/qml/images/black/x36/home@4x.png new file mode 100644 index 00000000..d66401cc Binary files /dev/null and b/qml/images/black/x36/home@4x.png differ diff --git a/qml/images/black/x36/menu.png b/qml/images/black/x36/menu.png new file mode 100644 index 00000000..3f8ebd62 Binary files /dev/null and b/qml/images/black/x36/menu.png differ diff --git a/qml/images/black/x36/menu@2x.png b/qml/images/black/x36/menu@2x.png new file mode 100644 index 00000000..7dae60b4 Binary files /dev/null and b/qml/images/black/x36/menu@2x.png differ diff --git a/qml/images/black/x36/menu@3x.png b/qml/images/black/x36/menu@3x.png new file mode 100644 index 00000000..550d0cf9 Binary files /dev/null and b/qml/images/black/x36/menu@3x.png differ diff --git a/qml/images/black/x36/menu@4x.png b/qml/images/black/x36/menu@4x.png new file mode 100644 index 00000000..ab83be58 Binary files /dev/null and b/qml/images/black/x36/menu@4x.png differ diff --git a/qml/images/black/x36/person.png b/qml/images/black/x36/person.png new file mode 100644 index 00000000..6fbcc6d4 Binary files /dev/null and b/qml/images/black/x36/person.png differ diff --git a/qml/images/black/x36/person@2x.png b/qml/images/black/x36/person@2x.png new file mode 100644 index 00000000..f1e14849 Binary files /dev/null and b/qml/images/black/x36/person@2x.png differ diff --git a/qml/images/black/x36/person@3x.png b/qml/images/black/x36/person@3x.png new file mode 100644 index 00000000..d4b59c01 Binary files /dev/null and b/qml/images/black/x36/person@3x.png differ diff --git a/qml/images/black/x36/person@4x.png b/qml/images/black/x36/person@4x.png new file mode 100644 index 00000000..77e3a181 Binary files /dev/null and b/qml/images/black/x36/person@4x.png differ diff --git a/qml/images/black/x36/remove.png b/qml/images/black/x36/remove.png new file mode 100644 index 00000000..5dbe79ca Binary files /dev/null and b/qml/images/black/x36/remove.png differ diff --git a/qml/images/black/x36/remove@2x.png b/qml/images/black/x36/remove@2x.png new file mode 100644 index 00000000..a3a54db3 Binary files /dev/null and b/qml/images/black/x36/remove@2x.png differ diff --git a/qml/images/black/x36/remove@3x.png b/qml/images/black/x36/remove@3x.png new file mode 100644 index 00000000..6d326f75 Binary files /dev/null and b/qml/images/black/x36/remove@3x.png differ diff --git a/qml/images/black/x36/remove@4x.png b/qml/images/black/x36/remove@4x.png new file mode 100644 index 00000000..ae1c0f03 Binary files /dev/null and b/qml/images/black/x36/remove@4x.png differ diff --git a/qml/images/black/x36/settings.png b/qml/images/black/x36/settings.png new file mode 100644 index 00000000..acf1ddf8 Binary files /dev/null and b/qml/images/black/x36/settings.png differ diff --git a/qml/images/black/x36/settings@2x.png b/qml/images/black/x36/settings@2x.png new file mode 100644 index 00000000..3023ff8d Binary files /dev/null and b/qml/images/black/x36/settings@2x.png differ diff --git a/qml/images/black/x36/settings@3x.png b/qml/images/black/x36/settings@3x.png new file mode 100644 index 00000000..5754bf2a Binary files /dev/null and b/qml/images/black/x36/settings@3x.png differ diff --git a/qml/images/black/x36/settings@4x.png b/qml/images/black/x36/settings@4x.png new file mode 100644 index 00000000..8f2a8bc2 Binary files /dev/null and b/qml/images/black/x36/settings@4x.png differ diff --git a/qml/images/black/x36/stars.png b/qml/images/black/x36/stars.png new file mode 100644 index 00000000..fba38967 Binary files /dev/null and b/qml/images/black/x36/stars.png differ diff --git a/qml/images/black/x36/stars@2x.png b/qml/images/black/x36/stars@2x.png new file mode 100644 index 00000000..17774599 Binary files /dev/null and b/qml/images/black/x36/stars@2x.png differ diff --git a/qml/images/black/x36/stars@3x.png b/qml/images/black/x36/stars@3x.png new file mode 100644 index 00000000..ca6598fb Binary files /dev/null and b/qml/images/black/x36/stars@3x.png differ diff --git a/qml/images/black/x36/stars@4x.png b/qml/images/black/x36/stars@4x.png new file mode 100644 index 00000000..fd434145 Binary files /dev/null and b/qml/images/black/x36/stars@4x.png differ diff --git a/qml/images/black/x36/subway.png b/qml/images/black/x36/subway.png new file mode 100644 index 00000000..cdb55deb Binary files /dev/null and b/qml/images/black/x36/subway.png differ diff --git a/qml/images/black/x36/subway@2x.png b/qml/images/black/x36/subway@2x.png new file mode 100644 index 00000000..431b56fb Binary files /dev/null and b/qml/images/black/x36/subway@2x.png differ diff --git a/qml/images/black/x36/subway@3x.png b/qml/images/black/x36/subway@3x.png new file mode 100644 index 00000000..36ed0bcd Binary files /dev/null and b/qml/images/black/x36/subway@3x.png differ diff --git a/qml/images/black/x36/subway@4x.png b/qml/images/black/x36/subway@4x.png new file mode 100644 index 00000000..807ac3fd Binary files /dev/null and b/qml/images/black/x36/subway@4x.png differ diff --git a/qml/images/black/x36/truck.png b/qml/images/black/x36/truck.png new file mode 100644 index 00000000..74f23da2 Binary files /dev/null and b/qml/images/black/x36/truck.png differ diff --git a/qml/images/black/x36/truck@2x.png b/qml/images/black/x36/truck@2x.png new file mode 100644 index 00000000..494ca528 Binary files /dev/null and b/qml/images/black/x36/truck@2x.png differ diff --git a/qml/images/black/x36/truck@3x.png b/qml/images/black/x36/truck@3x.png new file mode 100644 index 00000000..8d27f009 Binary files /dev/null and b/qml/images/black/x36/truck@3x.png differ diff --git a/qml/images/black/x36/truck@4x.png b/qml/images/black/x36/truck@4x.png new file mode 100644 index 00000000..f90e5ff3 Binary files /dev/null and b/qml/images/black/x36/truck@4x.png differ diff --git a/qml/images/black/x48/add.png b/qml/images/black/x48/add.png new file mode 100644 index 00000000..3191d528 Binary files /dev/null and b/qml/images/black/x48/add.png differ diff --git a/qml/images/black/x48/add@2x.png b/qml/images/black/x48/add@2x.png new file mode 100644 index 00000000..3cb10924 Binary files /dev/null and b/qml/images/black/x48/add@2x.png differ diff --git a/qml/images/black/x48/add@3x.png b/qml/images/black/x48/add@3x.png new file mode 100644 index 00000000..60cbd9cb Binary files /dev/null and b/qml/images/black/x48/add@3x.png differ diff --git a/qml/images/black/x48/add@4x.png b/qml/images/black/x48/add@4x.png new file mode 100644 index 00000000..1e1e4d60 Binary files /dev/null and b/qml/images/black/x48/add@4x.png differ diff --git a/qml/images/black/x48/arrow_back.png b/qml/images/black/x48/arrow_back.png new file mode 100644 index 00000000..68427253 Binary files /dev/null and b/qml/images/black/x48/arrow_back.png differ diff --git a/qml/images/black/x48/arrow_back@2x.png b/qml/images/black/x48/arrow_back@2x.png new file mode 100644 index 00000000..fb5235fb Binary files /dev/null and b/qml/images/black/x48/arrow_back@2x.png differ diff --git a/qml/images/black/x48/arrow_back@3x.png b/qml/images/black/x48/arrow_back@3x.png new file mode 100644 index 00000000..1e88d35a Binary files /dev/null and b/qml/images/black/x48/arrow_back@3x.png differ diff --git a/qml/images/black/x48/arrow_back@4x.png b/qml/images/black/x48/arrow_back@4x.png new file mode 100644 index 00000000..8ead592d Binary files /dev/null and b/qml/images/black/x48/arrow_back@4x.png differ diff --git a/qml/images/black/x48/bus.png b/qml/images/black/x48/bus.png new file mode 100644 index 00000000..0a704aff Binary files /dev/null and b/qml/images/black/x48/bus.png differ diff --git a/qml/images/black/x48/bus@2x.png b/qml/images/black/x48/bus@2x.png new file mode 100644 index 00000000..171697f4 Binary files /dev/null and b/qml/images/black/x48/bus@2x.png differ diff --git a/qml/images/black/x48/bus@3x.png b/qml/images/black/x48/bus@3x.png new file mode 100644 index 00000000..94097cd7 Binary files /dev/null and b/qml/images/black/x48/bus@3x.png differ diff --git a/qml/images/black/x48/bus@4x.png b/qml/images/black/x48/bus@4x.png new file mode 100644 index 00000000..b73c107b Binary files /dev/null and b/qml/images/black/x48/bus@4x.png differ diff --git a/qml/images/black/x48/car.png b/qml/images/black/x48/car.png new file mode 100644 index 00000000..462bf888 Binary files /dev/null and b/qml/images/black/x48/car.png differ diff --git a/qml/images/black/x48/car@2x.png b/qml/images/black/x48/car@2x.png new file mode 100644 index 00000000..a9964e82 Binary files /dev/null and b/qml/images/black/x48/car@2x.png differ diff --git a/qml/images/black/x48/car@3x.png b/qml/images/black/x48/car@3x.png new file mode 100644 index 00000000..adece363 Binary files /dev/null and b/qml/images/black/x48/car@3x.png differ diff --git a/qml/images/black/x48/car@4x.png b/qml/images/black/x48/car@4x.png new file mode 100644 index 00000000..afc742dc Binary files /dev/null and b/qml/images/black/x48/car@4x.png differ diff --git a/qml/images/black/x48/colors.png b/qml/images/black/x48/colors.png new file mode 100644 index 00000000..ce3a94c3 Binary files /dev/null and b/qml/images/black/x48/colors.png differ diff --git a/qml/images/black/x48/colors@2x.png b/qml/images/black/x48/colors@2x.png new file mode 100644 index 00000000..79360b16 Binary files /dev/null and b/qml/images/black/x48/colors@2x.png differ diff --git a/qml/images/black/x48/colors@3x.png b/qml/images/black/x48/colors@3x.png new file mode 100644 index 00000000..96e053b9 Binary files /dev/null and b/qml/images/black/x48/colors@3x.png differ diff --git a/qml/images/black/x48/colors@4x.png b/qml/images/black/x48/colors@4x.png new file mode 100644 index 00000000..647c699e Binary files /dev/null and b/qml/images/black/x48/colors@4x.png differ diff --git a/qml/images/black/x48/directions.png b/qml/images/black/x48/directions.png new file mode 100644 index 00000000..56284b3c Binary files /dev/null and b/qml/images/black/x48/directions.png differ diff --git a/qml/images/black/x48/directions@2x.png b/qml/images/black/x48/directions@2x.png new file mode 100644 index 00000000..0ad2fbbc Binary files /dev/null and b/qml/images/black/x48/directions@2x.png differ diff --git a/qml/images/black/x48/directions@3x.png b/qml/images/black/x48/directions@3x.png new file mode 100644 index 00000000..26ef8745 Binary files /dev/null and b/qml/images/black/x48/directions@3x.png differ diff --git a/qml/images/black/x48/directions@4.png b/qml/images/black/x48/directions@4.png new file mode 100644 index 00000000..f02aee27 Binary files /dev/null and b/qml/images/black/x48/directions@4.png differ diff --git a/qml/images/black/x48/done.png b/qml/images/black/x48/done.png new file mode 100644 index 00000000..64a4944f Binary files /dev/null and b/qml/images/black/x48/done.png differ diff --git a/qml/images/black/x48/done@2x.png b/qml/images/black/x48/done@2x.png new file mode 100644 index 00000000..2f6d6386 Binary files /dev/null and b/qml/images/black/x48/done@2x.png differ diff --git a/qml/images/black/x48/done@3x.png b/qml/images/black/x48/done@3x.png new file mode 100644 index 00000000..5697dba9 Binary files /dev/null and b/qml/images/black/x48/done@3x.png differ diff --git a/qml/images/black/x48/done@4x.png b/qml/images/black/x48/done@4x.png new file mode 100644 index 00000000..08751363 Binary files /dev/null and b/qml/images/black/x48/done@4x.png differ diff --git a/qml/images/black/x48/flight.png b/qml/images/black/x48/flight.png new file mode 100644 index 00000000..8d5097bc Binary files /dev/null and b/qml/images/black/x48/flight.png differ diff --git a/qml/images/black/x48/flight@2x.png b/qml/images/black/x48/flight@2x.png new file mode 100644 index 00000000..0a55d7da Binary files /dev/null and b/qml/images/black/x48/flight@2x.png differ diff --git a/qml/images/black/x48/flight@3x.png b/qml/images/black/x48/flight@3x.png new file mode 100644 index 00000000..5dfdebc8 Binary files /dev/null and b/qml/images/black/x48/flight@3x.png differ diff --git a/qml/images/black/x48/flight@4x.png b/qml/images/black/x48/flight@4x.png new file mode 100644 index 00000000..6797d671 Binary files /dev/null and b/qml/images/black/x48/flight@4x.png differ diff --git a/qml/images/black/x48/home.png b/qml/images/black/x48/home.png new file mode 100644 index 00000000..dcdcfc0a Binary files /dev/null and b/qml/images/black/x48/home.png differ diff --git a/qml/images/black/x48/home@2x.png b/qml/images/black/x48/home@2x.png new file mode 100644 index 00000000..04e2b26f Binary files /dev/null and b/qml/images/black/x48/home@2x.png differ diff --git a/qml/images/black/x48/home@3x.png b/qml/images/black/x48/home@3x.png new file mode 100644 index 00000000..d66401cc Binary files /dev/null and b/qml/images/black/x48/home@3x.png differ diff --git a/qml/images/black/x48/home@4x.png b/qml/images/black/x48/home@4x.png new file mode 100644 index 00000000..8fac2c3a Binary files /dev/null and b/qml/images/black/x48/home@4x.png differ diff --git a/qml/images/black/x48/menu.png b/qml/images/black/x48/menu.png new file mode 100644 index 00000000..4e0286b7 Binary files /dev/null and b/qml/images/black/x48/menu.png differ diff --git a/qml/images/black/x48/menu@2x.png b/qml/images/black/x48/menu@2x.png new file mode 100644 index 00000000..5c747ed0 Binary files /dev/null and b/qml/images/black/x48/menu@2x.png differ diff --git a/qml/images/black/x48/menu@3x.png b/qml/images/black/x48/menu@3x.png new file mode 100644 index 00000000..ab83be58 Binary files /dev/null and b/qml/images/black/x48/menu@3x.png differ diff --git a/qml/images/black/x48/menu@4x.png b/qml/images/black/x48/menu@4x.png new file mode 100644 index 00000000..e92e6655 Binary files /dev/null and b/qml/images/black/x48/menu@4x.png differ diff --git a/qml/images/black/x48/person.png b/qml/images/black/x48/person.png new file mode 100644 index 00000000..360a32f2 Binary files /dev/null and b/qml/images/black/x48/person.png differ diff --git a/qml/images/black/x48/person@2x.png b/qml/images/black/x48/person@2x.png new file mode 100644 index 00000000..1ebc37be Binary files /dev/null and b/qml/images/black/x48/person@2x.png differ diff --git a/qml/images/black/x48/person@3x.png b/qml/images/black/x48/person@3x.png new file mode 100644 index 00000000..77e3a181 Binary files /dev/null and b/qml/images/black/x48/person@3x.png differ diff --git a/qml/images/black/x48/person@4x.png b/qml/images/black/x48/person@4x.png new file mode 100644 index 00000000..6be3e306 Binary files /dev/null and b/qml/images/black/x48/person@4x.png differ diff --git a/qml/images/black/x48/remove.png b/qml/images/black/x48/remove.png new file mode 100644 index 00000000..6a899e35 Binary files /dev/null and b/qml/images/black/x48/remove.png differ diff --git a/qml/images/black/x48/remove@2x.png b/qml/images/black/x48/remove@2x.png new file mode 100644 index 00000000..5d36049b Binary files /dev/null and b/qml/images/black/x48/remove@2x.png differ diff --git a/qml/images/black/x48/remove@3x.png b/qml/images/black/x48/remove@3x.png new file mode 100644 index 00000000..ae1c0f03 Binary files /dev/null and b/qml/images/black/x48/remove@3x.png differ diff --git a/qml/images/black/x48/remove@4x.png b/qml/images/black/x48/remove@4x.png new file mode 100644 index 00000000..e10d935f Binary files /dev/null and b/qml/images/black/x48/remove@4x.png differ diff --git a/qml/images/black/x48/settings.png b/qml/images/black/x48/settings.png new file mode 100644 index 00000000..e84e188a Binary files /dev/null and b/qml/images/black/x48/settings.png differ diff --git a/qml/images/black/x48/settings@2x.png b/qml/images/black/x48/settings@2x.png new file mode 100644 index 00000000..476d5c97 Binary files /dev/null and b/qml/images/black/x48/settings@2x.png differ diff --git a/qml/images/black/x48/settings@3x.png b/qml/images/black/x48/settings@3x.png new file mode 100644 index 00000000..8f2a8bc2 Binary files /dev/null and b/qml/images/black/x48/settings@3x.png differ diff --git a/qml/images/black/x48/settings@4x.png b/qml/images/black/x48/settings@4x.png new file mode 100644 index 00000000..e4d24ea6 Binary files /dev/null and b/qml/images/black/x48/settings@4x.png differ diff --git a/qml/images/black/x48/stars.png b/qml/images/black/x48/stars.png new file mode 100644 index 00000000..ee380e48 Binary files /dev/null and b/qml/images/black/x48/stars.png differ diff --git a/qml/images/black/x48/stars@2x.png b/qml/images/black/x48/stars@2x.png new file mode 100644 index 00000000..4746c16e Binary files /dev/null and b/qml/images/black/x48/stars@2x.png differ diff --git a/qml/images/black/x48/stars@3x.png b/qml/images/black/x48/stars@3x.png new file mode 100644 index 00000000..fd434145 Binary files /dev/null and b/qml/images/black/x48/stars@3x.png differ diff --git a/qml/images/black/x48/stars@4x.png b/qml/images/black/x48/stars@4x.png new file mode 100644 index 00000000..d8dd09b9 Binary files /dev/null and b/qml/images/black/x48/stars@4x.png differ diff --git a/qml/images/black/x48/subway.png b/qml/images/black/x48/subway.png new file mode 100644 index 00000000..aeac1063 Binary files /dev/null and b/qml/images/black/x48/subway.png differ diff --git a/qml/images/black/x48/subway@2x.png b/qml/images/black/x48/subway@2x.png new file mode 100644 index 00000000..63e25d5e Binary files /dev/null and b/qml/images/black/x48/subway@2x.png differ diff --git a/qml/images/black/x48/subway@3x.png b/qml/images/black/x48/subway@3x.png new file mode 100644 index 00000000..807ac3fd Binary files /dev/null and b/qml/images/black/x48/subway@3x.png differ diff --git a/qml/images/black/x48/subway@4x.png b/qml/images/black/x48/subway@4x.png new file mode 100644 index 00000000..e74fc085 Binary files /dev/null and b/qml/images/black/x48/subway@4x.png differ diff --git a/qml/images/black/x48/truck.png b/qml/images/black/x48/truck.png new file mode 100644 index 00000000..78f42537 Binary files /dev/null and b/qml/images/black/x48/truck.png differ diff --git a/qml/images/black/x48/truck@2x.png b/qml/images/black/x48/truck@2x.png new file mode 100644 index 00000000..ff775d65 Binary files /dev/null and b/qml/images/black/x48/truck@2x.png differ diff --git a/qml/images/black/x48/truck@3x.png b/qml/images/black/x48/truck@3x.png new file mode 100644 index 00000000..f90e5ff3 Binary files /dev/null and b/qml/images/black/x48/truck@3x.png differ diff --git a/qml/images/black/x48/truck@4x.png b/qml/images/black/x48/truck@4x.png new file mode 100644 index 00000000..5fd93e81 Binary files /dev/null and b/qml/images/black/x48/truck@4x.png differ diff --git a/qml/images/extra/mermaid.png b/qml/images/extra/mermaid.png new file mode 100644 index 00000000..4af9b853 Binary files /dev/null and b/qml/images/extra/mermaid.png differ diff --git a/qml/images/extra/openprivacy.png b/qml/images/extra/openprivacy.png new file mode 100644 index 00000000..04fde4a8 Binary files /dev/null and b/qml/images/extra/openprivacy.png differ diff --git a/qml/images/extra/qt-arrow.png b/qml/images/extra/qt-arrow.png new file mode 100644 index 00000000..b8305b89 Binary files /dev/null and b/qml/images/extra/qt-arrow.png differ diff --git a/qml/images/extra/qt-arrow@2x.png b/qml/images/extra/qt-arrow@2x.png new file mode 100644 index 00000000..8de14ff8 Binary files /dev/null and b/qml/images/extra/qt-arrow@2x.png differ diff --git a/qml/images/extra/qt-arrow@3x.png b/qml/images/extra/qt-arrow@3x.png new file mode 100644 index 00000000..310fea27 Binary files /dev/null and b/qml/images/extra/qt-arrow@3x.png differ diff --git a/qml/images/extra/qt-arrow@4x.png b/qml/images/extra/qt-arrow@4x.png new file mode 100644 index 00000000..6fbfee37 Binary files /dev/null and b/qml/images/extra/qt-arrow@4x.png differ diff --git a/qml/images/extra/qt-logo.png b/qml/images/extra/qt-logo.png new file mode 100644 index 00000000..90e6f905 Binary files /dev/null and b/qml/images/extra/qt-logo.png differ diff --git a/qml/images/extra/qt-logo@2x.png b/qml/images/extra/qt-logo@2x.png new file mode 100644 index 00000000..22d111ad Binary files /dev/null and b/qml/images/extra/qt-logo@2x.png differ diff --git a/qml/images/extra/qt-logo@3x.png b/qml/images/extra/qt-logo@3x.png new file mode 100644 index 00000000..627746cd Binary files /dev/null and b/qml/images/extra/qt-logo@3x.png differ diff --git a/qml/images/extra/qt-logo@4x.png b/qml/images/extra/qt-logo@4x.png new file mode 100644 index 00000000..dc62286d Binary files /dev/null and b/qml/images/extra/qt-logo@4x.png differ diff --git a/qml/images/extra/robot.png b/qml/images/extra/robot.png new file mode 100644 index 00000000..1cd46b4e Binary files /dev/null and b/qml/images/extra/robot.png differ diff --git a/qml/images/profiles/001-centaur.png b/qml/images/profiles/001-centaur.png new file mode 100644 index 00000000..3af94683 Binary files /dev/null and b/qml/images/profiles/001-centaur.png differ diff --git a/qml/images/profiles/002-kraken.png b/qml/images/profiles/002-kraken.png new file mode 100644 index 00000000..8d0a09fd Binary files /dev/null and b/qml/images/profiles/002-kraken.png differ diff --git a/qml/images/profiles/003-dinosaur.png b/qml/images/profiles/003-dinosaur.png new file mode 100644 index 00000000..041b0509 Binary files /dev/null and b/qml/images/profiles/003-dinosaur.png differ diff --git a/qml/images/profiles/004-tree-1.png b/qml/images/profiles/004-tree-1.png new file mode 100644 index 00000000..daa4aef0 Binary files /dev/null and b/qml/images/profiles/004-tree-1.png differ diff --git a/qml/images/profiles/005-hand.png b/qml/images/profiles/005-hand.png new file mode 100644 index 00000000..47af0f00 Binary files /dev/null and b/qml/images/profiles/005-hand.png differ diff --git a/qml/images/profiles/006-echidna.png b/qml/images/profiles/006-echidna.png new file mode 100644 index 00000000..8f487067 Binary files /dev/null and b/qml/images/profiles/006-echidna.png differ diff --git a/qml/images/profiles/007-robot.png b/qml/images/profiles/007-robot.png new file mode 100644 index 00000000..1cd46b4e Binary files /dev/null and b/qml/images/profiles/007-robot.png differ diff --git a/qml/images/profiles/008-mushroom.png b/qml/images/profiles/008-mushroom.png new file mode 100644 index 00000000..b63e286d Binary files /dev/null and b/qml/images/profiles/008-mushroom.png differ diff --git a/qml/images/profiles/009-harpy.png b/qml/images/profiles/009-harpy.png new file mode 100644 index 00000000..7e98804a Binary files /dev/null and b/qml/images/profiles/009-harpy.png differ diff --git a/qml/images/profiles/010-phoenix.png b/qml/images/profiles/010-phoenix.png new file mode 100644 index 00000000..71fcad77 Binary files /dev/null and b/qml/images/profiles/010-phoenix.png differ diff --git a/qml/images/profiles/011-dragon-1.png b/qml/images/profiles/011-dragon-1.png new file mode 100644 index 00000000..05272e22 Binary files /dev/null and b/qml/images/profiles/011-dragon-1.png differ diff --git a/qml/images/profiles/012-devil.png b/qml/images/profiles/012-devil.png new file mode 100644 index 00000000..1f105c2f Binary files /dev/null and b/qml/images/profiles/012-devil.png differ diff --git a/qml/images/profiles/013-troll.png b/qml/images/profiles/013-troll.png new file mode 100644 index 00000000..a21f41f3 Binary files /dev/null and b/qml/images/profiles/013-troll.png differ diff --git a/qml/images/profiles/014-alien.png b/qml/images/profiles/014-alien.png new file mode 100644 index 00000000..1701fcc7 Binary files /dev/null and b/qml/images/profiles/014-alien.png differ diff --git a/qml/images/profiles/015-minotaur.png b/qml/images/profiles/015-minotaur.png new file mode 100644 index 00000000..70632837 Binary files /dev/null and b/qml/images/profiles/015-minotaur.png differ diff --git a/qml/images/profiles/016-madre-monte.png b/qml/images/profiles/016-madre-monte.png new file mode 100644 index 00000000..2acef3e5 Binary files /dev/null and b/qml/images/profiles/016-madre-monte.png differ diff --git a/qml/images/profiles/017-satyr.png b/qml/images/profiles/017-satyr.png new file mode 100644 index 00000000..6d518e39 Binary files /dev/null and b/qml/images/profiles/017-satyr.png differ diff --git a/qml/images/profiles/018-karakasakozou.png b/qml/images/profiles/018-karakasakozou.png new file mode 100644 index 00000000..0c11095b Binary files /dev/null and b/qml/images/profiles/018-karakasakozou.png differ diff --git a/qml/images/profiles/019-pirate.png b/qml/images/profiles/019-pirate.png new file mode 100644 index 00000000..02604d08 Binary files /dev/null and b/qml/images/profiles/019-pirate.png differ diff --git a/qml/images/profiles/020-werewolf.png b/qml/images/profiles/020-werewolf.png new file mode 100644 index 00000000..a27f0489 Binary files /dev/null and b/qml/images/profiles/020-werewolf.png differ diff --git a/qml/images/profiles/021-scarecrow.png b/qml/images/profiles/021-scarecrow.png new file mode 100644 index 00000000..a8e7f9e5 Binary files /dev/null and b/qml/images/profiles/021-scarecrow.png differ diff --git a/qml/images/profiles/022-valkyrie.png b/qml/images/profiles/022-valkyrie.png new file mode 100644 index 00000000..e7dd319f Binary files /dev/null and b/qml/images/profiles/022-valkyrie.png differ diff --git a/qml/images/profiles/023-curupira.png b/qml/images/profiles/023-curupira.png new file mode 100644 index 00000000..06895c59 Binary files /dev/null and b/qml/images/profiles/023-curupira.png differ diff --git a/qml/images/profiles/024-loch-ness-monster.png b/qml/images/profiles/024-loch-ness-monster.png new file mode 100644 index 00000000..f7457c1f Binary files /dev/null and b/qml/images/profiles/024-loch-ness-monster.png differ diff --git a/qml/images/profiles/025-tree.png b/qml/images/profiles/025-tree.png new file mode 100644 index 00000000..df1da3cf Binary files /dev/null and b/qml/images/profiles/025-tree.png differ diff --git a/qml/images/profiles/026-cerberus.png b/qml/images/profiles/026-cerberus.png new file mode 100644 index 00000000..052a0bd0 Binary files /dev/null and b/qml/images/profiles/026-cerberus.png differ diff --git a/qml/images/profiles/027-gryphon.png b/qml/images/profiles/027-gryphon.png new file mode 100644 index 00000000..074419f1 Binary files /dev/null and b/qml/images/profiles/027-gryphon.png differ diff --git a/qml/images/profiles/028-mermaid.png b/qml/images/profiles/028-mermaid.png new file mode 100644 index 00000000..4af9b853 Binary files /dev/null and b/qml/images/profiles/028-mermaid.png differ diff --git a/qml/images/profiles/029-vampire.png b/qml/images/profiles/029-vampire.png new file mode 100644 index 00000000..54ca4b25 Binary files /dev/null and b/qml/images/profiles/029-vampire.png differ diff --git a/qml/images/profiles/030-goblin.png b/qml/images/profiles/030-goblin.png new file mode 100644 index 00000000..cf3094c6 Binary files /dev/null and b/qml/images/profiles/030-goblin.png differ diff --git a/qml/images/profiles/031-yeti.png b/qml/images/profiles/031-yeti.png new file mode 100644 index 00000000..5a7f8d25 Binary files /dev/null and b/qml/images/profiles/031-yeti.png differ diff --git a/qml/images/profiles/032-leprechaun.png b/qml/images/profiles/032-leprechaun.png new file mode 100644 index 00000000..05f952d3 Binary files /dev/null and b/qml/images/profiles/032-leprechaun.png differ diff --git a/qml/images/profiles/033-medusa.png b/qml/images/profiles/033-medusa.png new file mode 100644 index 00000000..303f50cd Binary files /dev/null and b/qml/images/profiles/033-medusa.png differ diff --git a/qml/images/profiles/034-chimera.png b/qml/images/profiles/034-chimera.png new file mode 100644 index 00000000..71371e6e Binary files /dev/null and b/qml/images/profiles/034-chimera.png differ diff --git a/qml/images/profiles/035-elf.png b/qml/images/profiles/035-elf.png new file mode 100644 index 00000000..4974dd4f Binary files /dev/null and b/qml/images/profiles/035-elf.png differ diff --git a/qml/images/profiles/036-hydra.png b/qml/images/profiles/036-hydra.png new file mode 100644 index 00000000..da70f42c Binary files /dev/null and b/qml/images/profiles/036-hydra.png differ diff --git a/qml/images/profiles/037-cyclops.png b/qml/images/profiles/037-cyclops.png new file mode 100644 index 00000000..cb14d675 Binary files /dev/null and b/qml/images/profiles/037-cyclops.png differ diff --git a/qml/images/profiles/038-pegasus.png b/qml/images/profiles/038-pegasus.png new file mode 100644 index 00000000..2c444aa3 Binary files /dev/null and b/qml/images/profiles/038-pegasus.png differ diff --git a/qml/images/profiles/039-narwhal.png b/qml/images/profiles/039-narwhal.png new file mode 100644 index 00000000..3c85eb6c Binary files /dev/null and b/qml/images/profiles/039-narwhal.png differ diff --git a/qml/images/profiles/040-woodcutter.png b/qml/images/profiles/040-woodcutter.png new file mode 100644 index 00000000..70577900 Binary files /dev/null and b/qml/images/profiles/040-woodcutter.png differ diff --git a/qml/images/profiles/041-zombie.png b/qml/images/profiles/041-zombie.png new file mode 100644 index 00000000..c027574d Binary files /dev/null and b/qml/images/profiles/041-zombie.png differ diff --git a/qml/images/profiles/042-dragon.png b/qml/images/profiles/042-dragon.png new file mode 100644 index 00000000..34cf17fe Binary files /dev/null and b/qml/images/profiles/042-dragon.png differ diff --git a/qml/images/profiles/043-frankenstein.png b/qml/images/profiles/043-frankenstein.png new file mode 100644 index 00000000..853f6e29 Binary files /dev/null and b/qml/images/profiles/043-frankenstein.png differ diff --git a/qml/images/profiles/044-witch.png b/qml/images/profiles/044-witch.png new file mode 100644 index 00000000..36df432f Binary files /dev/null and b/qml/images/profiles/044-witch.png differ diff --git a/qml/images/profiles/045-fairy.png b/qml/images/profiles/045-fairy.png new file mode 100644 index 00000000..ff4bf604 Binary files /dev/null and b/qml/images/profiles/045-fairy.png differ diff --git a/qml/images/profiles/046-genie.png b/qml/images/profiles/046-genie.png new file mode 100644 index 00000000..d60c1b5a Binary files /dev/null and b/qml/images/profiles/046-genie.png differ diff --git a/qml/images/profiles/047-pinocchio.png b/qml/images/profiles/047-pinocchio.png new file mode 100644 index 00000000..71ffe2b6 Binary files /dev/null and b/qml/images/profiles/047-pinocchio.png differ diff --git a/qml/images/profiles/048-ghost.png b/qml/images/profiles/048-ghost.png new file mode 100644 index 00000000..7ec05f2d Binary files /dev/null and b/qml/images/profiles/048-ghost.png differ diff --git a/qml/images/profiles/049-wizard.png b/qml/images/profiles/049-wizard.png new file mode 100644 index 00000000..a01fdab1 Binary files /dev/null and b/qml/images/profiles/049-wizard.png differ diff --git a/qml/images/profiles/050-unicorn.png b/qml/images/profiles/050-unicorn.png new file mode 100644 index 00000000..068f90cb Binary files /dev/null and b/qml/images/profiles/050-unicorn.png differ diff --git a/qml/images/white/add.png b/qml/images/white/add.png new file mode 100644 index 00000000..3856041d Binary files /dev/null and b/qml/images/white/add.png differ diff --git a/qml/images/white/add@2x.png b/qml/images/white/add@2x.png new file mode 100644 index 00000000..67bb598e Binary files /dev/null and b/qml/images/white/add@2x.png differ diff --git a/qml/images/white/add@3x.png b/qml/images/white/add@3x.png new file mode 100644 index 00000000..0fdced8f Binary files /dev/null and b/qml/images/white/add@3x.png differ diff --git a/qml/images/white/add@4x.png b/qml/images/white/add@4x.png new file mode 100644 index 00000000..d64c22e9 Binary files /dev/null and b/qml/images/white/add@4x.png differ diff --git a/qml/images/white/arrow_back.png b/qml/images/white/arrow_back.png new file mode 100644 index 00000000..d571552f Binary files /dev/null and b/qml/images/white/arrow_back.png differ diff --git a/qml/images/white/arrow_back@2x.png b/qml/images/white/arrow_back@2x.png new file mode 100644 index 00000000..ce5b878b Binary files /dev/null and b/qml/images/white/arrow_back@2x.png differ diff --git a/qml/images/white/arrow_back@3x.png b/qml/images/white/arrow_back@3x.png new file mode 100644 index 00000000..bd15f30f Binary files /dev/null and b/qml/images/white/arrow_back@3x.png differ diff --git a/qml/images/white/arrow_back@4x.png b/qml/images/white/arrow_back@4x.png new file mode 100644 index 00000000..fb06e1d4 Binary files /dev/null and b/qml/images/white/arrow_back@4x.png differ diff --git a/qml/images/white/bus.png b/qml/images/white/bus.png new file mode 100644 index 00000000..c5a95340 Binary files /dev/null and b/qml/images/white/bus.png differ diff --git a/qml/images/white/bus@2x.png b/qml/images/white/bus@2x.png new file mode 100644 index 00000000..3b469148 Binary files /dev/null and b/qml/images/white/bus@2x.png differ diff --git a/qml/images/white/bus@3x.png b/qml/images/white/bus@3x.png new file mode 100644 index 00000000..9eafc45b Binary files /dev/null and b/qml/images/white/bus@3x.png differ diff --git a/qml/images/white/bus@4x.png b/qml/images/white/bus@4x.png new file mode 100644 index 00000000..34e8c9cd Binary files /dev/null and b/qml/images/white/bus@4x.png differ diff --git a/qml/images/white/car.png b/qml/images/white/car.png new file mode 100644 index 00000000..ec59369f Binary files /dev/null and b/qml/images/white/car.png differ diff --git a/qml/images/white/car@2x.png b/qml/images/white/car@2x.png new file mode 100644 index 00000000..77cf9c76 Binary files /dev/null and b/qml/images/white/car@2x.png differ diff --git a/qml/images/white/car@3x.png b/qml/images/white/car@3x.png new file mode 100644 index 00000000..d30ce8ce Binary files /dev/null and b/qml/images/white/car@3x.png differ diff --git a/qml/images/white/car@4x.png b/qml/images/white/car@4x.png new file mode 100644 index 00000000..931eadcb Binary files /dev/null and b/qml/images/white/car@4x.png differ diff --git a/qml/images/white/colors.png b/qml/images/white/colors.png new file mode 100644 index 00000000..6ce59523 Binary files /dev/null and b/qml/images/white/colors.png differ diff --git a/qml/images/white/colors@2x.png b/qml/images/white/colors@2x.png new file mode 100644 index 00000000..4af10a4d Binary files /dev/null and b/qml/images/white/colors@2x.png differ diff --git a/qml/images/white/colors@3x.png b/qml/images/white/colors@3x.png new file mode 100644 index 00000000..119b1fd8 Binary files /dev/null and b/qml/images/white/colors@3x.png differ diff --git a/qml/images/white/colors@4x.png b/qml/images/white/colors@4x.png new file mode 100644 index 00000000..dba40d4e Binary files /dev/null and b/qml/images/white/colors@4x.png differ diff --git a/qml/images/white/directions.png b/qml/images/white/directions.png new file mode 100644 index 00000000..b6326744 Binary files /dev/null and b/qml/images/white/directions.png differ diff --git a/qml/images/white/directions@2x.png b/qml/images/white/directions@2x.png new file mode 100644 index 00000000..8b29cb4a Binary files /dev/null and b/qml/images/white/directions@2x.png differ diff --git a/qml/images/white/directions@3x.png b/qml/images/white/directions@3x.png new file mode 100644 index 00000000..ee364ee8 Binary files /dev/null and b/qml/images/white/directions@3x.png differ diff --git a/qml/images/white/directions@4x.png b/qml/images/white/directions@4x.png new file mode 100644 index 00000000..3e3302fb Binary files /dev/null and b/qml/images/white/directions@4x.png differ diff --git a/qml/images/white/done.png b/qml/images/white/done.png new file mode 100644 index 00000000..6d84e143 Binary files /dev/null and b/qml/images/white/done.png differ diff --git a/qml/images/white/done@2x.png b/qml/images/white/done@2x.png new file mode 100644 index 00000000..3b2b65d2 Binary files /dev/null and b/qml/images/white/done@2x.png differ diff --git a/qml/images/white/done@3x.png b/qml/images/white/done@3x.png new file mode 100644 index 00000000..0ebb5555 Binary files /dev/null and b/qml/images/white/done@3x.png differ diff --git a/qml/images/white/done@4x.png b/qml/images/white/done@4x.png new file mode 100644 index 00000000..d670618c Binary files /dev/null and b/qml/images/white/done@4x.png differ diff --git a/qml/images/white/flight.png b/qml/images/white/flight.png new file mode 100644 index 00000000..aca66b28 Binary files /dev/null and b/qml/images/white/flight.png differ diff --git a/qml/images/white/flight@2x.png b/qml/images/white/flight@2x.png new file mode 100644 index 00000000..13663b22 Binary files /dev/null and b/qml/images/white/flight@2x.png differ diff --git a/qml/images/white/flight@3x.png b/qml/images/white/flight@3x.png new file mode 100644 index 00000000..6defc9a9 Binary files /dev/null and b/qml/images/white/flight@3x.png differ diff --git a/qml/images/white/flight@4x.png b/qml/images/white/flight@4x.png new file mode 100644 index 00000000..5bf41990 Binary files /dev/null and b/qml/images/white/flight@4x.png differ diff --git a/qml/images/white/home.png b/qml/images/white/home.png new file mode 100644 index 00000000..c5441fa2 Binary files /dev/null and b/qml/images/white/home.png differ diff --git a/qml/images/white/home@2x.png b/qml/images/white/home@2x.png new file mode 100644 index 00000000..0a645bef Binary files /dev/null and b/qml/images/white/home@2x.png differ diff --git a/qml/images/white/home@3x.png b/qml/images/white/home@3x.png new file mode 100644 index 00000000..f7dc554c Binary files /dev/null and b/qml/images/white/home@3x.png differ diff --git a/qml/images/white/home@4x.png b/qml/images/white/home@4x.png new file mode 100644 index 00000000..6f8464af Binary files /dev/null and b/qml/images/white/home@4x.png differ diff --git a/qml/images/white/menu.png b/qml/images/white/menu.png new file mode 100644 index 00000000..d3cec056 Binary files /dev/null and b/qml/images/white/menu.png differ diff --git a/qml/images/white/menu@2x.png b/qml/images/white/menu@2x.png new file mode 100644 index 00000000..193185fd Binary files /dev/null and b/qml/images/white/menu@2x.png differ diff --git a/qml/images/white/menu@3x.png b/qml/images/white/menu@3x.png new file mode 100644 index 00000000..9cb03482 Binary files /dev/null and b/qml/images/white/menu@3x.png differ diff --git a/qml/images/white/menu@4x.png b/qml/images/white/menu@4x.png new file mode 100644 index 00000000..623d1471 Binary files /dev/null and b/qml/images/white/menu@4x.png differ diff --git a/qml/images/white/more_vert.png b/qml/images/white/more_vert.png new file mode 100644 index 00000000..017e45ed Binary files /dev/null and b/qml/images/white/more_vert.png differ diff --git a/qml/images/white/more_vert@2x.png b/qml/images/white/more_vert@2x.png new file mode 100644 index 00000000..efab8a74 Binary files /dev/null and b/qml/images/white/more_vert@2x.png differ diff --git a/qml/images/white/more_vert@3x.png b/qml/images/white/more_vert@3x.png new file mode 100644 index 00000000..3af5ffb8 Binary files /dev/null and b/qml/images/white/more_vert@3x.png differ diff --git a/qml/images/white/more_vert@4x.png b/qml/images/white/more_vert@4x.png new file mode 100644 index 00000000..2f2cb3d0 Binary files /dev/null and b/qml/images/white/more_vert@4x.png differ diff --git a/qml/images/white/person.png b/qml/images/white/person.png new file mode 100644 index 00000000..f0b1c725 Binary files /dev/null and b/qml/images/white/person.png differ diff --git a/qml/images/white/person@2x.png b/qml/images/white/person@2x.png new file mode 100644 index 00000000..aea15f0b Binary files /dev/null and b/qml/images/white/person@2x.png differ diff --git a/qml/images/white/person@3x.png b/qml/images/white/person@3x.png new file mode 100644 index 00000000..184f7418 Binary files /dev/null and b/qml/images/white/person@3x.png differ diff --git a/qml/images/white/person@4x.png b/qml/images/white/person@4x.png new file mode 100644 index 00000000..33d40d8b Binary files /dev/null and b/qml/images/white/person@4x.png differ diff --git a/qml/images/white/remove.png b/qml/images/white/remove.png new file mode 100644 index 00000000..23a9f6a7 Binary files /dev/null and b/qml/images/white/remove.png differ diff --git a/qml/images/white/remove@2x.png b/qml/images/white/remove@2x.png new file mode 100644 index 00000000..d28b7118 Binary files /dev/null and b/qml/images/white/remove@2x.png differ diff --git a/qml/images/white/remove@3x.png b/qml/images/white/remove@3x.png new file mode 100644 index 00000000..52cad9d2 Binary files /dev/null and b/qml/images/white/remove@3x.png differ diff --git a/qml/images/white/remove@4x.png b/qml/images/white/remove@4x.png new file mode 100644 index 00000000..b9222f08 Binary files /dev/null and b/qml/images/white/remove@4x.png differ diff --git a/qml/images/white/settings.png b/qml/images/white/settings.png new file mode 100644 index 00000000..8909c355 Binary files /dev/null and b/qml/images/white/settings.png differ diff --git a/qml/images/white/settings@2x.png b/qml/images/white/settings@2x.png new file mode 100644 index 00000000..5caedc8e Binary files /dev/null and b/qml/images/white/settings@2x.png differ diff --git a/qml/images/white/settings@3x.png b/qml/images/white/settings@3x.png new file mode 100644 index 00000000..eabb0a2b Binary files /dev/null and b/qml/images/white/settings@3x.png differ diff --git a/qml/images/white/settings@4x.png b/qml/images/white/settings@4x.png new file mode 100644 index 00000000..507c5edd Binary files /dev/null and b/qml/images/white/settings@4x.png differ diff --git a/qml/images/white/stars.png b/qml/images/white/stars.png new file mode 100644 index 00000000..44f35f21 Binary files /dev/null and b/qml/images/white/stars.png differ diff --git a/qml/images/white/stars@2x.png b/qml/images/white/stars@2x.png new file mode 100644 index 00000000..25914741 Binary files /dev/null and b/qml/images/white/stars@2x.png differ diff --git a/qml/images/white/stars@3x.png b/qml/images/white/stars@3x.png new file mode 100644 index 00000000..f83d58be Binary files /dev/null and b/qml/images/white/stars@3x.png differ diff --git a/qml/images/white/stars@4x.png b/qml/images/white/stars@4x.png new file mode 100644 index 00000000..dd82c9a4 Binary files /dev/null and b/qml/images/white/stars@4x.png differ diff --git a/qml/images/white/subway.png b/qml/images/white/subway.png new file mode 100644 index 00000000..17f1b88d Binary files /dev/null and b/qml/images/white/subway.png differ diff --git a/qml/images/white/subway@2x.png b/qml/images/white/subway@2x.png new file mode 100644 index 00000000..ff037a0c Binary files /dev/null and b/qml/images/white/subway@2x.png differ diff --git a/qml/images/white/subway@3x.png b/qml/images/white/subway@3x.png new file mode 100644 index 00000000..e3a0075f Binary files /dev/null and b/qml/images/white/subway@3x.png differ diff --git a/qml/images/white/subway@4x.png b/qml/images/white/subway@4x.png new file mode 100644 index 00000000..bda1e961 Binary files /dev/null and b/qml/images/white/subway@4x.png differ diff --git a/qml/images/white/truck.png b/qml/images/white/truck.png new file mode 100644 index 00000000..26fae65c Binary files /dev/null and b/qml/images/white/truck.png differ diff --git a/qml/images/white/truck@2x.png b/qml/images/white/truck@2x.png new file mode 100644 index 00000000..86eeb394 Binary files /dev/null and b/qml/images/white/truck@2x.png differ diff --git a/qml/images/white/truck@3x.png b/qml/images/white/truck@3x.png new file mode 100644 index 00000000..c8b5e25c Binary files /dev/null and b/qml/images/white/truck@3x.png differ diff --git a/qml/images/white/truck@4x.png b/qml/images/white/truck@4x.png new file mode 100644 index 00000000..3b972960 Binary files /dev/null and b/qml/images/white/truck@4x.png differ diff --git a/qml/images/white/x18/add.png b/qml/images/white/x18/add.png new file mode 100644 index 00000000..151e2d2d Binary files /dev/null and b/qml/images/white/x18/add.png differ diff --git a/qml/images/white/x18/add@2x.png b/qml/images/white/x18/add@2x.png new file mode 100644 index 00000000..694179bd Binary files /dev/null and b/qml/images/white/x18/add@2x.png differ diff --git a/qml/images/white/x18/add@3x.png b/qml/images/white/x18/add@3x.png new file mode 100644 index 00000000..8630f40d Binary files /dev/null and b/qml/images/white/x18/add@3x.png differ diff --git a/qml/images/white/x18/add@4x.png b/qml/images/white/x18/add@4x.png new file mode 100644 index 00000000..0fdced8f Binary files /dev/null and b/qml/images/white/x18/add@4x.png differ diff --git a/qml/images/white/x18/arrow_back.png b/qml/images/white/x18/arrow_back.png new file mode 100644 index 00000000..da466040 Binary files /dev/null and b/qml/images/white/x18/arrow_back.png differ diff --git a/qml/images/white/x18/arrow_back@2x.png b/qml/images/white/x18/arrow_back@2x.png new file mode 100644 index 00000000..a2051cef Binary files /dev/null and b/qml/images/white/x18/arrow_back@2x.png differ diff --git a/qml/images/white/x18/arrow_back@3x.png b/qml/images/white/x18/arrow_back@3x.png new file mode 100644 index 00000000..18f3ee82 Binary files /dev/null and b/qml/images/white/x18/arrow_back@3x.png differ diff --git a/qml/images/white/x18/arrow_back@4x.png b/qml/images/white/x18/arrow_back@4x.png new file mode 100644 index 00000000..bd15f30f Binary files /dev/null and b/qml/images/white/x18/arrow_back@4x.png differ diff --git a/qml/images/white/x18/bus.png b/qml/images/white/x18/bus.png new file mode 100644 index 00000000..1db41606 Binary files /dev/null and b/qml/images/white/x18/bus.png differ diff --git a/qml/images/white/x18/bus@2x.png b/qml/images/white/x18/bus@2x.png new file mode 100644 index 00000000..a047620d Binary files /dev/null and b/qml/images/white/x18/bus@2x.png differ diff --git a/qml/images/white/x18/bus@3x.png b/qml/images/white/x18/bus@3x.png new file mode 100644 index 00000000..06f0e0f7 Binary files /dev/null and b/qml/images/white/x18/bus@3x.png differ diff --git a/qml/images/white/x18/bus@4x.png b/qml/images/white/x18/bus@4x.png new file mode 100644 index 00000000..9eafc45b Binary files /dev/null and b/qml/images/white/x18/bus@4x.png differ diff --git a/qml/images/white/x18/car.png b/qml/images/white/x18/car.png new file mode 100644 index 00000000..67f2e976 Binary files /dev/null and b/qml/images/white/x18/car.png differ diff --git a/qml/images/white/x18/car@2x.png b/qml/images/white/x18/car@2x.png new file mode 100644 index 00000000..96852f6f Binary files /dev/null and b/qml/images/white/x18/car@2x.png differ diff --git a/qml/images/white/x18/car@3x.png b/qml/images/white/x18/car@3x.png new file mode 100644 index 00000000..925c5df9 Binary files /dev/null and b/qml/images/white/x18/car@3x.png differ diff --git a/qml/images/white/x18/car@4x.png b/qml/images/white/x18/car@4x.png new file mode 100644 index 00000000..d30ce8ce Binary files /dev/null and b/qml/images/white/x18/car@4x.png differ diff --git a/qml/images/white/x18/colors.png b/qml/images/white/x18/colors.png new file mode 100644 index 00000000..44d49b5f Binary files /dev/null and b/qml/images/white/x18/colors.png differ diff --git a/qml/images/white/x18/colors@2x.png b/qml/images/white/x18/colors@2x.png new file mode 100644 index 00000000..9470e79e Binary files /dev/null and b/qml/images/white/x18/colors@2x.png differ diff --git a/qml/images/white/x18/colors@3x.png b/qml/images/white/x18/colors@3x.png new file mode 100644 index 00000000..c128f06a Binary files /dev/null and b/qml/images/white/x18/colors@3x.png differ diff --git a/qml/images/white/x18/colors@4x.png b/qml/images/white/x18/colors@4x.png new file mode 100644 index 00000000..119b1fd8 Binary files /dev/null and b/qml/images/white/x18/colors@4x.png differ diff --git a/qml/images/white/x18/directions.png b/qml/images/white/x18/directions.png new file mode 100644 index 00000000..a25a4431 Binary files /dev/null and b/qml/images/white/x18/directions.png differ diff --git a/qml/images/white/x18/directions@2x.png b/qml/images/white/x18/directions@2x.png new file mode 100644 index 00000000..e33ea561 Binary files /dev/null and b/qml/images/white/x18/directions@2x.png differ diff --git a/qml/images/white/x18/directions@3x.png b/qml/images/white/x18/directions@3x.png new file mode 100644 index 00000000..aee5c5be Binary files /dev/null and b/qml/images/white/x18/directions@3x.png differ diff --git a/qml/images/white/x18/directions@4x.png b/qml/images/white/x18/directions@4x.png new file mode 100644 index 00000000..ee364ee8 Binary files /dev/null and b/qml/images/white/x18/directions@4x.png differ diff --git a/qml/images/white/x18/done.png b/qml/images/white/x18/done.png new file mode 100644 index 00000000..90c92b3d Binary files /dev/null and b/qml/images/white/x18/done.png differ diff --git a/qml/images/white/x18/done@2x.png b/qml/images/white/x18/done@2x.png new file mode 100644 index 00000000..c278b6c2 Binary files /dev/null and b/qml/images/white/x18/done@2x.png differ diff --git a/qml/images/white/x18/done@3x.png b/qml/images/white/x18/done@3x.png new file mode 100644 index 00000000..e389d253 Binary files /dev/null and b/qml/images/white/x18/done@3x.png differ diff --git a/qml/images/white/x18/done@4x.png b/qml/images/white/x18/done@4x.png new file mode 100644 index 00000000..0ebb5555 Binary files /dev/null and b/qml/images/white/x18/done@4x.png differ diff --git a/qml/images/white/x18/flight.png b/qml/images/white/x18/flight.png new file mode 100644 index 00000000..fe1a28d8 Binary files /dev/null and b/qml/images/white/x18/flight.png differ diff --git a/qml/images/white/x18/flight@2x.png b/qml/images/white/x18/flight@2x.png new file mode 100644 index 00000000..4f8165f1 Binary files /dev/null and b/qml/images/white/x18/flight@2x.png differ diff --git a/qml/images/white/x18/flight@3x.png b/qml/images/white/x18/flight@3x.png new file mode 100644 index 00000000..e7b5317b Binary files /dev/null and b/qml/images/white/x18/flight@3x.png differ diff --git a/qml/images/white/x18/flight@4x.png b/qml/images/white/x18/flight@4x.png new file mode 100644 index 00000000..6defc9a9 Binary files /dev/null and b/qml/images/white/x18/flight@4x.png differ diff --git a/qml/images/white/x18/home.png b/qml/images/white/x18/home.png new file mode 100644 index 00000000..0e6f1f72 Binary files /dev/null and b/qml/images/white/x18/home.png differ diff --git a/qml/images/white/x18/home@2x.png b/qml/images/white/x18/home@2x.png new file mode 100644 index 00000000..1e5b80e2 Binary files /dev/null and b/qml/images/white/x18/home@2x.png differ diff --git a/qml/images/white/x18/home@3x.png b/qml/images/white/x18/home@3x.png new file mode 100644 index 00000000..bef070cb Binary files /dev/null and b/qml/images/white/x18/home@3x.png differ diff --git a/qml/images/white/x18/home@4x.png b/qml/images/white/x18/home@4x.png new file mode 100644 index 00000000..f7dc554c Binary files /dev/null and b/qml/images/white/x18/home@4x.png differ diff --git a/qml/images/white/x18/menu.png b/qml/images/white/x18/menu.png new file mode 100644 index 00000000..bdeecd4f Binary files /dev/null and b/qml/images/white/x18/menu.png differ diff --git a/qml/images/white/x18/menu@2x.png b/qml/images/white/x18/menu@2x.png new file mode 100644 index 00000000..238cfd66 Binary files /dev/null and b/qml/images/white/x18/menu@2x.png differ diff --git a/qml/images/white/x18/menu@3x.png b/qml/images/white/x18/menu@3x.png new file mode 100644 index 00000000..59aca7ce Binary files /dev/null and b/qml/images/white/x18/menu@3x.png differ diff --git a/qml/images/white/x18/menu@4x.png b/qml/images/white/x18/menu@4x.png new file mode 100644 index 00000000..9cb03482 Binary files /dev/null and b/qml/images/white/x18/menu@4x.png differ diff --git a/qml/images/white/x18/person.png b/qml/images/white/x18/person.png new file mode 100644 index 00000000..b1c2540a Binary files /dev/null and b/qml/images/white/x18/person.png differ diff --git a/qml/images/white/x18/person@2x.png b/qml/images/white/x18/person@2x.png new file mode 100644 index 00000000..56708b0b Binary files /dev/null and b/qml/images/white/x18/person@2x.png differ diff --git a/qml/images/white/x18/person@3x.png b/qml/images/white/x18/person@3x.png new file mode 100644 index 00000000..a48e9827 Binary files /dev/null and b/qml/images/white/x18/person@3x.png differ diff --git a/qml/images/white/x18/person@4x.png b/qml/images/white/x18/person@4x.png new file mode 100644 index 00000000..184f7418 Binary files /dev/null and b/qml/images/white/x18/person@4x.png differ diff --git a/qml/images/white/x18/remove.png b/qml/images/white/x18/remove.png new file mode 100644 index 00000000..ffda1189 Binary files /dev/null and b/qml/images/white/x18/remove.png differ diff --git a/qml/images/white/x18/remove@2x.png b/qml/images/white/x18/remove@2x.png new file mode 100644 index 00000000..68f65ddb Binary files /dev/null and b/qml/images/white/x18/remove@2x.png differ diff --git a/qml/images/white/x18/remove@3x.png b/qml/images/white/x18/remove@3x.png new file mode 100644 index 00000000..8986f5b9 Binary files /dev/null and b/qml/images/white/x18/remove@3x.png differ diff --git a/qml/images/white/x18/remove@4x.png b/qml/images/white/x18/remove@4x.png new file mode 100644 index 00000000..52cad9d2 Binary files /dev/null and b/qml/images/white/x18/remove@4x.png differ diff --git a/qml/images/white/x18/settings.png b/qml/images/white/x18/settings.png new file mode 100644 index 00000000..400b1010 Binary files /dev/null and b/qml/images/white/x18/settings.png differ diff --git a/qml/images/white/x18/settings@2x.png b/qml/images/white/x18/settings@2x.png new file mode 100644 index 00000000..97ded33b Binary files /dev/null and b/qml/images/white/x18/settings@2x.png differ diff --git a/qml/images/white/x18/settings@3x.png b/qml/images/white/x18/settings@3x.png new file mode 100644 index 00000000..64f77e17 Binary files /dev/null and b/qml/images/white/x18/settings@3x.png differ diff --git a/qml/images/white/x18/settings@4x.png b/qml/images/white/x18/settings@4x.png new file mode 100644 index 00000000..eabb0a2b Binary files /dev/null and b/qml/images/white/x18/settings@4x.png differ diff --git a/qml/images/white/x18/stars.png b/qml/images/white/x18/stars.png new file mode 100644 index 00000000..5e02af86 Binary files /dev/null and b/qml/images/white/x18/stars.png differ diff --git a/qml/images/white/x18/stars@2x.png b/qml/images/white/x18/stars@2x.png new file mode 100644 index 00000000..71f07715 Binary files /dev/null and b/qml/images/white/x18/stars@2x.png differ diff --git a/qml/images/white/x18/stars@3x.png b/qml/images/white/x18/stars@3x.png new file mode 100644 index 00000000..d7426b61 Binary files /dev/null and b/qml/images/white/x18/stars@3x.png differ diff --git a/qml/images/white/x18/stars@4x.png b/qml/images/white/x18/stars@4x.png new file mode 100644 index 00000000..f83d58be Binary files /dev/null and b/qml/images/white/x18/stars@4x.png differ diff --git a/qml/images/white/x18/subway.png b/qml/images/white/x18/subway.png new file mode 100644 index 00000000..713402c0 Binary files /dev/null and b/qml/images/white/x18/subway.png differ diff --git a/qml/images/white/x18/subway@2x.png b/qml/images/white/x18/subway@2x.png new file mode 100644 index 00000000..8abda1c4 Binary files /dev/null and b/qml/images/white/x18/subway@2x.png differ diff --git a/qml/images/white/x18/subway@3x.png b/qml/images/white/x18/subway@3x.png new file mode 100644 index 00000000..bd6818c2 Binary files /dev/null and b/qml/images/white/x18/subway@3x.png differ diff --git a/qml/images/white/x18/subway@4x.png b/qml/images/white/x18/subway@4x.png new file mode 100644 index 00000000..e3a0075f Binary files /dev/null and b/qml/images/white/x18/subway@4x.png differ diff --git a/qml/images/white/x18/truck.png b/qml/images/white/x18/truck.png new file mode 100644 index 00000000..a306756b Binary files /dev/null and b/qml/images/white/x18/truck.png differ diff --git a/qml/images/white/x18/truck@2x.png b/qml/images/white/x18/truck@2x.png new file mode 100644 index 00000000..7b54e24a Binary files /dev/null and b/qml/images/white/x18/truck@2x.png differ diff --git a/qml/images/white/x18/truck@3x.png b/qml/images/white/x18/truck@3x.png new file mode 100644 index 00000000..a76a3a0f Binary files /dev/null and b/qml/images/white/x18/truck@3x.png differ diff --git a/qml/images/white/x18/truck@4x.png b/qml/images/white/x18/truck@4x.png new file mode 100644 index 00000000..c8b5e25c Binary files /dev/null and b/qml/images/white/x18/truck@4x.png differ diff --git a/qml/images/white/x36/add.png b/qml/images/white/x36/add.png new file mode 100644 index 00000000..694179bd Binary files /dev/null and b/qml/images/white/x36/add.png differ diff --git a/qml/images/white/x36/add@2x.png b/qml/images/white/x36/add@2x.png new file mode 100644 index 00000000..0fdced8f Binary files /dev/null and b/qml/images/white/x36/add@2x.png differ diff --git a/qml/images/white/x36/add@3x.png b/qml/images/white/x36/add@3x.png new file mode 100644 index 00000000..75a449f8 Binary files /dev/null and b/qml/images/white/x36/add@3x.png differ diff --git a/qml/images/white/x36/add@4x.png b/qml/images/white/x36/add@4x.png new file mode 100644 index 00000000..7e699137 Binary files /dev/null and b/qml/images/white/x36/add@4x.png differ diff --git a/qml/images/white/x36/arrow_back.png b/qml/images/white/x36/arrow_back.png new file mode 100644 index 00000000..a2051cef Binary files /dev/null and b/qml/images/white/x36/arrow_back.png differ diff --git a/qml/images/white/x36/arrow_back@2x.png b/qml/images/white/x36/arrow_back@2x.png new file mode 100644 index 00000000..bd15f30f Binary files /dev/null and b/qml/images/white/x36/arrow_back@2x.png differ diff --git a/qml/images/white/x36/arrow_back@3x.png b/qml/images/white/x36/arrow_back@3x.png new file mode 100644 index 00000000..d816e8cf Binary files /dev/null and b/qml/images/white/x36/arrow_back@3x.png differ diff --git a/qml/images/white/x36/arrow_back@4x.png b/qml/images/white/x36/arrow_back@4x.png new file mode 100644 index 00000000..5d047209 Binary files /dev/null and b/qml/images/white/x36/arrow_back@4x.png differ diff --git a/qml/images/white/x36/bus.png b/qml/images/white/x36/bus.png new file mode 100644 index 00000000..a047620d Binary files /dev/null and b/qml/images/white/x36/bus.png differ diff --git a/qml/images/white/x36/bus@2x.png b/qml/images/white/x36/bus@2x.png new file mode 100644 index 00000000..9eafc45b Binary files /dev/null and b/qml/images/white/x36/bus@2x.png differ diff --git a/qml/images/white/x36/bus@3x.png b/qml/images/white/x36/bus@3x.png new file mode 100644 index 00000000..19df904b Binary files /dev/null and b/qml/images/white/x36/bus@3x.png differ diff --git a/qml/images/white/x36/bus@4x.png b/qml/images/white/x36/bus@4x.png new file mode 100644 index 00000000..08e26163 Binary files /dev/null and b/qml/images/white/x36/bus@4x.png differ diff --git a/qml/images/white/x36/car.png b/qml/images/white/x36/car.png new file mode 100644 index 00000000..96852f6f Binary files /dev/null and b/qml/images/white/x36/car.png differ diff --git a/qml/images/white/x36/car@2x.png b/qml/images/white/x36/car@2x.png new file mode 100644 index 00000000..d30ce8ce Binary files /dev/null and b/qml/images/white/x36/car@2x.png differ diff --git a/qml/images/white/x36/car@3x.png b/qml/images/white/x36/car@3x.png new file mode 100644 index 00000000..42018ae6 Binary files /dev/null and b/qml/images/white/x36/car@3x.png differ diff --git a/qml/images/white/x36/car@4x.png b/qml/images/white/x36/car@4x.png new file mode 100644 index 00000000..f410d653 Binary files /dev/null and b/qml/images/white/x36/car@4x.png differ diff --git a/qml/images/white/x36/colors.png b/qml/images/white/x36/colors.png new file mode 100644 index 00000000..9470e79e Binary files /dev/null and b/qml/images/white/x36/colors.png differ diff --git a/qml/images/white/x36/colors@2x.png b/qml/images/white/x36/colors@2x.png new file mode 100644 index 00000000..119b1fd8 Binary files /dev/null and b/qml/images/white/x36/colors@2x.png differ diff --git a/qml/images/white/x36/colors@3x.png b/qml/images/white/x36/colors@3x.png new file mode 100644 index 00000000..a2c3b40b Binary files /dev/null and b/qml/images/white/x36/colors@3x.png differ diff --git a/qml/images/white/x36/colors@4x.png b/qml/images/white/x36/colors@4x.png new file mode 100644 index 00000000..ca097263 Binary files /dev/null and b/qml/images/white/x36/colors@4x.png differ diff --git a/qml/images/white/x36/directions.png b/qml/images/white/x36/directions.png new file mode 100644 index 00000000..e33ea561 Binary files /dev/null and b/qml/images/white/x36/directions.png differ diff --git a/qml/images/white/x36/directions@2x.png b/qml/images/white/x36/directions@2x.png new file mode 100644 index 00000000..ee364ee8 Binary files /dev/null and b/qml/images/white/x36/directions@2x.png differ diff --git a/qml/images/white/x36/directions@3x.png b/qml/images/white/x36/directions@3x.png new file mode 100644 index 00000000..29a5b40b Binary files /dev/null and b/qml/images/white/x36/directions@3x.png differ diff --git a/qml/images/white/x36/directions@4x.png b/qml/images/white/x36/directions@4x.png new file mode 100644 index 00000000..7de771c4 Binary files /dev/null and b/qml/images/white/x36/directions@4x.png differ diff --git a/qml/images/white/x36/done.png b/qml/images/white/x36/done.png new file mode 100644 index 00000000..c278b6c2 Binary files /dev/null and b/qml/images/white/x36/done.png differ diff --git a/qml/images/white/x36/done@2x.png b/qml/images/white/x36/done@2x.png new file mode 100644 index 00000000..0ebb5555 Binary files /dev/null and b/qml/images/white/x36/done@2x.png differ diff --git a/qml/images/white/x36/done@3x.png b/qml/images/white/x36/done@3x.png new file mode 100644 index 00000000..67f0f091 Binary files /dev/null and b/qml/images/white/x36/done@3x.png differ diff --git a/qml/images/white/x36/done@4x.png b/qml/images/white/x36/done@4x.png new file mode 100644 index 00000000..bfd7b82a Binary files /dev/null and b/qml/images/white/x36/done@4x.png differ diff --git a/qml/images/white/x36/flight.png b/qml/images/white/x36/flight.png new file mode 100644 index 00000000..4f8165f1 Binary files /dev/null and b/qml/images/white/x36/flight.png differ diff --git a/qml/images/white/x36/flight@2x.png b/qml/images/white/x36/flight@2x.png new file mode 100644 index 00000000..6defc9a9 Binary files /dev/null and b/qml/images/white/x36/flight@2x.png differ diff --git a/qml/images/white/x36/flight@3x.png b/qml/images/white/x36/flight@3x.png new file mode 100644 index 00000000..a783f748 Binary files /dev/null and b/qml/images/white/x36/flight@3x.png differ diff --git a/qml/images/white/x36/flight@4x.png b/qml/images/white/x36/flight@4x.png new file mode 100644 index 00000000..6741d1be Binary files /dev/null and b/qml/images/white/x36/flight@4x.png differ diff --git a/qml/images/white/x36/home.png b/qml/images/white/x36/home.png new file mode 100644 index 00000000..1e5b80e2 Binary files /dev/null and b/qml/images/white/x36/home.png differ diff --git a/qml/images/white/x36/home@2x.png b/qml/images/white/x36/home@2x.png new file mode 100644 index 00000000..f7dc554c Binary files /dev/null and b/qml/images/white/x36/home@2x.png differ diff --git a/qml/images/white/x36/home@3x.png b/qml/images/white/x36/home@3x.png new file mode 100644 index 00000000..8a4d8470 Binary files /dev/null and b/qml/images/white/x36/home@3x.png differ diff --git a/qml/images/white/x36/home@4x.png b/qml/images/white/x36/home@4x.png new file mode 100644 index 00000000..356814b9 Binary files /dev/null and b/qml/images/white/x36/home@4x.png differ diff --git a/qml/images/white/x36/menu.png b/qml/images/white/x36/menu.png new file mode 100644 index 00000000..238cfd66 Binary files /dev/null and b/qml/images/white/x36/menu.png differ diff --git a/qml/images/white/x36/menu@2x.png b/qml/images/white/x36/menu@2x.png new file mode 100644 index 00000000..9cb03482 Binary files /dev/null and b/qml/images/white/x36/menu@2x.png differ diff --git a/qml/images/white/x36/menu@3x.png b/qml/images/white/x36/menu@3x.png new file mode 100644 index 00000000..6d8c5edc Binary files /dev/null and b/qml/images/white/x36/menu@3x.png differ diff --git a/qml/images/white/x36/menu@4x.png b/qml/images/white/x36/menu@4x.png new file mode 100644 index 00000000..48ae2184 Binary files /dev/null and b/qml/images/white/x36/menu@4x.png differ diff --git a/qml/images/white/x36/person.png b/qml/images/white/x36/person.png new file mode 100644 index 00000000..56708b0b Binary files /dev/null and b/qml/images/white/x36/person.png differ diff --git a/qml/images/white/x36/person@2x.png b/qml/images/white/x36/person@2x.png new file mode 100644 index 00000000..184f7418 Binary files /dev/null and b/qml/images/white/x36/person@2x.png differ diff --git a/qml/images/white/x36/person@3x.png b/qml/images/white/x36/person@3x.png new file mode 100644 index 00000000..bc48e515 Binary files /dev/null and b/qml/images/white/x36/person@3x.png differ diff --git a/qml/images/white/x36/person@4x.png b/qml/images/white/x36/person@4x.png new file mode 100644 index 00000000..6a14714b Binary files /dev/null and b/qml/images/white/x36/person@4x.png differ diff --git a/qml/images/white/x36/remove.png b/qml/images/white/x36/remove.png new file mode 100644 index 00000000..68f65ddb Binary files /dev/null and b/qml/images/white/x36/remove.png differ diff --git a/qml/images/white/x36/remove@2x.png b/qml/images/white/x36/remove@2x.png new file mode 100644 index 00000000..52cad9d2 Binary files /dev/null and b/qml/images/white/x36/remove@2x.png differ diff --git a/qml/images/white/x36/remove@3x.png b/qml/images/white/x36/remove@3x.png new file mode 100644 index 00000000..3eceba60 Binary files /dev/null and b/qml/images/white/x36/remove@3x.png differ diff --git a/qml/images/white/x36/remove@4x.png b/qml/images/white/x36/remove@4x.png new file mode 100644 index 00000000..87a65c45 Binary files /dev/null and b/qml/images/white/x36/remove@4x.png differ diff --git a/qml/images/white/x36/settings.png b/qml/images/white/x36/settings.png new file mode 100644 index 00000000..97ded33b Binary files /dev/null and b/qml/images/white/x36/settings.png differ diff --git a/qml/images/white/x36/settings@2x.png b/qml/images/white/x36/settings@2x.png new file mode 100644 index 00000000..eabb0a2b Binary files /dev/null and b/qml/images/white/x36/settings@2x.png differ diff --git a/qml/images/white/x36/settings@3x.png b/qml/images/white/x36/settings@3x.png new file mode 100644 index 00000000..4b40bcdc Binary files /dev/null and b/qml/images/white/x36/settings@3x.png differ diff --git a/qml/images/white/x36/settings@4x.png b/qml/images/white/x36/settings@4x.png new file mode 100644 index 00000000..55492f6c Binary files /dev/null and b/qml/images/white/x36/settings@4x.png differ diff --git a/qml/images/white/x36/stars.png b/qml/images/white/x36/stars.png new file mode 100644 index 00000000..71f07715 Binary files /dev/null and b/qml/images/white/x36/stars.png differ diff --git a/qml/images/white/x36/stars@2x.png b/qml/images/white/x36/stars@2x.png new file mode 100644 index 00000000..f83d58be Binary files /dev/null and b/qml/images/white/x36/stars@2x.png differ diff --git a/qml/images/white/x36/stars@3x.png b/qml/images/white/x36/stars@3x.png new file mode 100644 index 00000000..fa345c14 Binary files /dev/null and b/qml/images/white/x36/stars@3x.png differ diff --git a/qml/images/white/x36/stars@4x.png b/qml/images/white/x36/stars@4x.png new file mode 100644 index 00000000..ec6ef192 Binary files /dev/null and b/qml/images/white/x36/stars@4x.png differ diff --git a/qml/images/white/x36/subway.png b/qml/images/white/x36/subway.png new file mode 100644 index 00000000..8abda1c4 Binary files /dev/null and b/qml/images/white/x36/subway.png differ diff --git a/qml/images/white/x36/subway@2x.png b/qml/images/white/x36/subway@2x.png new file mode 100644 index 00000000..e3a0075f Binary files /dev/null and b/qml/images/white/x36/subway@2x.png differ diff --git a/qml/images/white/x36/subway@3x.png b/qml/images/white/x36/subway@3x.png new file mode 100644 index 00000000..eff56af8 Binary files /dev/null and b/qml/images/white/x36/subway@3x.png differ diff --git a/qml/images/white/x36/subway@4x.png b/qml/images/white/x36/subway@4x.png new file mode 100644 index 00000000..ded71f22 Binary files /dev/null and b/qml/images/white/x36/subway@4x.png differ diff --git a/qml/images/white/x36/truck.png b/qml/images/white/x36/truck.png new file mode 100644 index 00000000..7b54e24a Binary files /dev/null and b/qml/images/white/x36/truck.png differ diff --git a/qml/images/white/x36/truck@2x.png b/qml/images/white/x36/truck@2x.png new file mode 100644 index 00000000..c8b5e25c Binary files /dev/null and b/qml/images/white/x36/truck@2x.png differ diff --git a/qml/images/white/x36/truck@3x.png b/qml/images/white/x36/truck@3x.png new file mode 100644 index 00000000..b617cda4 Binary files /dev/null and b/qml/images/white/x36/truck@3x.png differ diff --git a/qml/images/white/x36/truck@4x.png b/qml/images/white/x36/truck@4x.png new file mode 100644 index 00000000..7b2fc9bc Binary files /dev/null and b/qml/images/white/x36/truck@4x.png differ diff --git a/qml/images/white/x48/add.png b/qml/images/white/x48/add.png new file mode 100644 index 00000000..67bb598e Binary files /dev/null and b/qml/images/white/x48/add.png differ diff --git a/qml/images/white/x48/add@2x.png b/qml/images/white/x48/add@2x.png new file mode 100644 index 00000000..d64c22e9 Binary files /dev/null and b/qml/images/white/x48/add@2x.png differ diff --git a/qml/images/white/x48/add@3x.png b/qml/images/white/x48/add@3x.png new file mode 100644 index 00000000..7e699137 Binary files /dev/null and b/qml/images/white/x48/add@3x.png differ diff --git a/qml/images/white/x48/add@4x.png b/qml/images/white/x48/add@4x.png new file mode 100644 index 00000000..165c907d Binary files /dev/null and b/qml/images/white/x48/add@4x.png differ diff --git a/qml/images/white/x48/arrow_back.png b/qml/images/white/x48/arrow_back.png new file mode 100644 index 00000000..ce5b878b Binary files /dev/null and b/qml/images/white/x48/arrow_back.png differ diff --git a/qml/images/white/x48/arrow_back@2x.png b/qml/images/white/x48/arrow_back@2x.png new file mode 100644 index 00000000..fb06e1d4 Binary files /dev/null and b/qml/images/white/x48/arrow_back@2x.png differ diff --git a/qml/images/white/x48/arrow_back@3x.png b/qml/images/white/x48/arrow_back@3x.png new file mode 100644 index 00000000..5d047209 Binary files /dev/null and b/qml/images/white/x48/arrow_back@3x.png differ diff --git a/qml/images/white/x48/arrow_back@4.png b/qml/images/white/x48/arrow_back@4.png new file mode 100644 index 00000000..a70e6149 Binary files /dev/null and b/qml/images/white/x48/arrow_back@4.png differ diff --git a/qml/images/white/x48/bus.png b/qml/images/white/x48/bus.png new file mode 100644 index 00000000..3b469148 Binary files /dev/null and b/qml/images/white/x48/bus.png differ diff --git a/qml/images/white/x48/bus@2x.png b/qml/images/white/x48/bus@2x.png new file mode 100644 index 00000000..34e8c9cd Binary files /dev/null and b/qml/images/white/x48/bus@2x.png differ diff --git a/qml/images/white/x48/bus@3x.png b/qml/images/white/x48/bus@3x.png new file mode 100644 index 00000000..08e26163 Binary files /dev/null and b/qml/images/white/x48/bus@3x.png differ diff --git a/qml/images/white/x48/bus@4x.png b/qml/images/white/x48/bus@4x.png new file mode 100644 index 00000000..fd36996a Binary files /dev/null and b/qml/images/white/x48/bus@4x.png differ diff --git a/qml/images/white/x48/car.png b/qml/images/white/x48/car.png new file mode 100644 index 00000000..77cf9c76 Binary files /dev/null and b/qml/images/white/x48/car.png differ diff --git a/qml/images/white/x48/car@2x.png b/qml/images/white/x48/car@2x.png new file mode 100644 index 00000000..931eadcb Binary files /dev/null and b/qml/images/white/x48/car@2x.png differ diff --git a/qml/images/white/x48/car@3x.png b/qml/images/white/x48/car@3x.png new file mode 100644 index 00000000..f410d653 Binary files /dev/null and b/qml/images/white/x48/car@3x.png differ diff --git a/qml/images/white/x48/car@4x.png b/qml/images/white/x48/car@4x.png new file mode 100644 index 00000000..da8875c5 Binary files /dev/null and b/qml/images/white/x48/car@4x.png differ diff --git a/qml/images/white/x48/colors.png b/qml/images/white/x48/colors.png new file mode 100644 index 00000000..4af10a4d Binary files /dev/null and b/qml/images/white/x48/colors.png differ diff --git a/qml/images/white/x48/colors@2x.png b/qml/images/white/x48/colors@2x.png new file mode 100644 index 00000000..dba40d4e Binary files /dev/null and b/qml/images/white/x48/colors@2x.png differ diff --git a/qml/images/white/x48/colors@3x.png b/qml/images/white/x48/colors@3x.png new file mode 100644 index 00000000..ca097263 Binary files /dev/null and b/qml/images/white/x48/colors@3x.png differ diff --git a/qml/images/white/x48/colors@4x.png b/qml/images/white/x48/colors@4x.png new file mode 100644 index 00000000..df9f5c24 Binary files /dev/null and b/qml/images/white/x48/colors@4x.png differ diff --git a/qml/images/white/x48/directions.png b/qml/images/white/x48/directions.png new file mode 100644 index 00000000..8b29cb4a Binary files /dev/null and b/qml/images/white/x48/directions.png differ diff --git a/qml/images/white/x48/directions@2x.png b/qml/images/white/x48/directions@2x.png new file mode 100644 index 00000000..3e3302fb Binary files /dev/null and b/qml/images/white/x48/directions@2x.png differ diff --git a/qml/images/white/x48/directions@3x.png b/qml/images/white/x48/directions@3x.png new file mode 100644 index 00000000..7de771c4 Binary files /dev/null and b/qml/images/white/x48/directions@3x.png differ diff --git a/qml/images/white/x48/directions@4x.png b/qml/images/white/x48/directions@4x.png new file mode 100644 index 00000000..a45e41a3 Binary files /dev/null and b/qml/images/white/x48/directions@4x.png differ diff --git a/qml/images/white/x48/done.png b/qml/images/white/x48/done.png new file mode 100644 index 00000000..3b2b65d2 Binary files /dev/null and b/qml/images/white/x48/done.png differ diff --git a/qml/images/white/x48/done@2x.png b/qml/images/white/x48/done@2x.png new file mode 100644 index 00000000..d670618c Binary files /dev/null and b/qml/images/white/x48/done@2x.png differ diff --git a/qml/images/white/x48/done@3x.png b/qml/images/white/x48/done@3x.png new file mode 100644 index 00000000..bfd7b82a Binary files /dev/null and b/qml/images/white/x48/done@3x.png differ diff --git a/qml/images/white/x48/done@4x.png b/qml/images/white/x48/done@4x.png new file mode 100644 index 00000000..23a19708 Binary files /dev/null and b/qml/images/white/x48/done@4x.png differ diff --git a/qml/images/white/x48/flight.png b/qml/images/white/x48/flight.png new file mode 100644 index 00000000..13663b22 Binary files /dev/null and b/qml/images/white/x48/flight.png differ diff --git a/qml/images/white/x48/flight@2x.png b/qml/images/white/x48/flight@2x.png new file mode 100644 index 00000000..5bf41990 Binary files /dev/null and b/qml/images/white/x48/flight@2x.png differ diff --git a/qml/images/white/x48/flight@3x.png b/qml/images/white/x48/flight@3x.png new file mode 100644 index 00000000..6741d1be Binary files /dev/null and b/qml/images/white/x48/flight@3x.png differ diff --git a/qml/images/white/x48/flight@4x.png b/qml/images/white/x48/flight@4x.png new file mode 100644 index 00000000..db4158e5 Binary files /dev/null and b/qml/images/white/x48/flight@4x.png differ diff --git a/qml/images/white/x48/home.png b/qml/images/white/x48/home.png new file mode 100644 index 00000000..0a645bef Binary files /dev/null and b/qml/images/white/x48/home.png differ diff --git a/qml/images/white/x48/home@2x.png b/qml/images/white/x48/home@2x.png new file mode 100644 index 00000000..6f8464af Binary files /dev/null and b/qml/images/white/x48/home@2x.png differ diff --git a/qml/images/white/x48/home@3x.png b/qml/images/white/x48/home@3x.png new file mode 100644 index 00000000..356814b9 Binary files /dev/null and b/qml/images/white/x48/home@3x.png differ diff --git a/qml/images/white/x48/home@4x.png b/qml/images/white/x48/home@4x.png new file mode 100644 index 00000000..d12cf141 Binary files /dev/null and b/qml/images/white/x48/home@4x.png differ diff --git a/qml/images/white/x48/menu.png b/qml/images/white/x48/menu.png new file mode 100644 index 00000000..193185fd Binary files /dev/null and b/qml/images/white/x48/menu.png differ diff --git a/qml/images/white/x48/menu@2x.png b/qml/images/white/x48/menu@2x.png new file mode 100644 index 00000000..623d1471 Binary files /dev/null and b/qml/images/white/x48/menu@2x.png differ diff --git a/qml/images/white/x48/menu@3x.png b/qml/images/white/x48/menu@3x.png new file mode 100644 index 00000000..48ae2184 Binary files /dev/null and b/qml/images/white/x48/menu@3x.png differ diff --git a/qml/images/white/x48/menu@4x.png b/qml/images/white/x48/menu@4x.png new file mode 100644 index 00000000..20729b8f Binary files /dev/null and b/qml/images/white/x48/menu@4x.png differ diff --git a/qml/images/white/x48/person.png b/qml/images/white/x48/person.png new file mode 100644 index 00000000..aea15f0b Binary files /dev/null and b/qml/images/white/x48/person.png differ diff --git a/qml/images/white/x48/person@2x.png b/qml/images/white/x48/person@2x.png new file mode 100644 index 00000000..33d40d8b Binary files /dev/null and b/qml/images/white/x48/person@2x.png differ diff --git a/qml/images/white/x48/person@3x.png b/qml/images/white/x48/person@3x.png new file mode 100644 index 00000000..6a14714b Binary files /dev/null and b/qml/images/white/x48/person@3x.png differ diff --git a/qml/images/white/x48/person@4.png b/qml/images/white/x48/person@4.png new file mode 100644 index 00000000..4242a565 Binary files /dev/null and b/qml/images/white/x48/person@4.png differ diff --git a/qml/images/white/x48/remove.png b/qml/images/white/x48/remove.png new file mode 100644 index 00000000..d28b7118 Binary files /dev/null and b/qml/images/white/x48/remove.png differ diff --git a/qml/images/white/x48/remove@2x.png b/qml/images/white/x48/remove@2x.png new file mode 100644 index 00000000..b9222f08 Binary files /dev/null and b/qml/images/white/x48/remove@2x.png differ diff --git a/qml/images/white/x48/remove@3x.png b/qml/images/white/x48/remove@3x.png new file mode 100644 index 00000000..87a65c45 Binary files /dev/null and b/qml/images/white/x48/remove@3x.png differ diff --git a/qml/images/white/x48/remove@4x.png b/qml/images/white/x48/remove@4x.png new file mode 100644 index 00000000..f775c5e7 Binary files /dev/null and b/qml/images/white/x48/remove@4x.png differ diff --git a/qml/images/white/x48/settings.png b/qml/images/white/x48/settings.png new file mode 100644 index 00000000..5caedc8e Binary files /dev/null and b/qml/images/white/x48/settings.png differ diff --git a/qml/images/white/x48/settings@2x.png b/qml/images/white/x48/settings@2x.png new file mode 100644 index 00000000..507c5edd Binary files /dev/null and b/qml/images/white/x48/settings@2x.png differ diff --git a/qml/images/white/x48/settings@3x.png b/qml/images/white/x48/settings@3x.png new file mode 100644 index 00000000..55492f6c Binary files /dev/null and b/qml/images/white/x48/settings@3x.png differ diff --git a/qml/images/white/x48/settings@4x.png b/qml/images/white/x48/settings@4x.png new file mode 100644 index 00000000..9e242e77 Binary files /dev/null and b/qml/images/white/x48/settings@4x.png differ diff --git a/qml/images/white/x48/stars.png b/qml/images/white/x48/stars.png new file mode 100644 index 00000000..25914741 Binary files /dev/null and b/qml/images/white/x48/stars.png differ diff --git a/qml/images/white/x48/stars@2x.png b/qml/images/white/x48/stars@2x.png new file mode 100644 index 00000000..dd82c9a4 Binary files /dev/null and b/qml/images/white/x48/stars@2x.png differ diff --git a/qml/images/white/x48/stars@3x.png b/qml/images/white/x48/stars@3x.png new file mode 100644 index 00000000..ec6ef192 Binary files /dev/null and b/qml/images/white/x48/stars@3x.png differ diff --git a/qml/images/white/x48/stars@4x.png b/qml/images/white/x48/stars@4x.png new file mode 100644 index 00000000..848e3282 Binary files /dev/null and b/qml/images/white/x48/stars@4x.png differ diff --git a/qml/images/white/x48/subway.png b/qml/images/white/x48/subway.png new file mode 100644 index 00000000..ff037a0c Binary files /dev/null and b/qml/images/white/x48/subway.png differ diff --git a/qml/images/white/x48/subway@2x.png b/qml/images/white/x48/subway@2x.png new file mode 100644 index 00000000..bda1e961 Binary files /dev/null and b/qml/images/white/x48/subway@2x.png differ diff --git a/qml/images/white/x48/subway@3x.png b/qml/images/white/x48/subway@3x.png new file mode 100644 index 00000000..ded71f22 Binary files /dev/null and b/qml/images/white/x48/subway@3x.png differ diff --git a/qml/images/white/x48/subway@4x.png b/qml/images/white/x48/subway@4x.png new file mode 100644 index 00000000..8cb5430c Binary files /dev/null and b/qml/images/white/x48/subway@4x.png differ diff --git a/qml/images/white/x48/truck.png b/qml/images/white/x48/truck.png new file mode 100644 index 00000000..86eeb394 Binary files /dev/null and b/qml/images/white/x48/truck.png differ diff --git a/qml/images/white/x48/truck@2x.png b/qml/images/white/x48/truck@2x.png new file mode 100644 index 00000000..3b972960 Binary files /dev/null and b/qml/images/white/x48/truck@2x.png differ diff --git a/qml/images/white/x48/truck@3x.png b/qml/images/white/x48/truck@3x.png new file mode 100644 index 00000000..7b2fc9bc Binary files /dev/null and b/qml/images/white/x48/truck@3x.png differ diff --git a/qml/images/white/x48/truck@4x.png b/qml/images/white/x48/truck@4x.png new file mode 100644 index 00000000..2903c2d3 Binary files /dev/null and b/qml/images/white/x48/truck@4x.png differ diff --git a/qml/main.qml b/qml/main.qml new file mode 100644 index 00000000..98840343 --- /dev/null +++ b/qml/main.qml @@ -0,0 +1,79 @@ +import QtGraphicalEffects 1.0 +import QtQuick 2.7 +import QtQuick.Controls 2.4 +import QtQuick.Controls.Material 2.0 +import QtQuick.Layouts 1.3 + +import "widgets" + +Item { + width: 525 + height: 500 + id: root + + + RowLayout { + anchors.fill: parent + spacing: 0 + + + Rectangle { // THE LEFT PANE WITH TOOLS AND CONTACTS + color: "#FFEEEE" + Layout.fillHeight: true + Layout.minimumWidth: 200 + Layout.maximumWidth: 200 + + + ContactList{ + anchors.fill: parent + } + } + + Rectangle { // THE RIGHT PANE WHERE THE MESSAGES GO + color: "#EEEEFF" + Layout.fillWidth: true + Layout.fillHeight: true + + + MessageList{ + anchors.fill: parent + } + } + } + + PropertyAnimation { id: anmPopup; easing.type: Easing.InQuart; duration: 7000; target: popup; property: "opacity"; to: 0; } + + Rectangle { + id: popup + anchors.top: parent.top + anchors.horizontalCenter: parent.horizontalCenter + anchors.topMargin: 20 + width: lblPopup.width + 30 + height: lblPopup.height + 8 + color: "#000000" + opacity: 0.5 + radius: 15 + visible: false + + + Label { + id: lblPopup + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + font.pixelSize: 18 + color: "#FFFFFF" + } + } + + + Connections { + target: gcd + + onInvokePopup: function(str) { + lblPopup.text = str + popup.opacity = 0.5 + popup.visible = true + anmPopup.restart() + } + } +} \ No newline at end of file diff --git a/qml/main.qmlc b/qml/main.qmlc new file mode 100644 index 00000000..587d8fab Binary files /dev/null and b/qml/main.qmlc differ diff --git a/qml/widgets/Contact.qml b/qml/widgets/Contact.qml new file mode 100644 index 00000000..e09e353e --- /dev/null +++ b/qml/widgets/Contact.qml @@ -0,0 +1,147 @@ +import QtGraphicalEffects 1.0 +import QtQuick 2.7 +import QtQuick.Controls 2.4 +import QtQuick.Controls.Material 2.0 +import QtQuick.Layouts 1.3 +import CustomQmlTypes 1.0 + +RowLayout { // LOTS OF NESTING TO DEAL WITH QT WEIRDNESS, SORRY + anchors.left: parent.left + anchors.right: parent.right + + property alias nick: cn.text + property alias image: img.source + property string onion + property string badge + property bool isActive + property bool isHover + property bool isTrusted + property int status + + + Rectangle { // CONTACT ENTRY BACKGROUND COLOR + id: root + anchors.left: parent.left + anchors.right: parent.right + height: childrenRect.height + width: parent.width + color: isHover ? "#EEEEFF" : (isActive ? "#EEEEFF" : "#FFEEEE") + + + RowLayout { + width: parent.width + anchors.left: parent.left + anchors.right: parent.right + + + Item { // PROFILE IMAGE + id: imgProfile + implicitWidth: 48 + implicitHeight: 48 + anchors.left: parent.left + + + Image { + id: img + anchors.fill: parent + fillMode: Image.PreserveAspectFit + } + + Rectangle { // PRESENCE INDICATOR + color: "#FFFFFF" + width: 8 + height: 8 + radius: 2 + anchors.right: parent.right + anchors.bottom: parent.bottom + anchors.margins: 4 + + + Rectangle { //-2:WtfCodeError,-1:Untrusted,0:Disconnected,1:Connecting,2:Connected,3:Authenticated,4:Failed,5:Killed + color: status==3?"green":(status==4?"red":(status==-1?"blue":"orange")) + width: 5 + height: 5 + radius: 2 + anchors.right: parent.right + anchors.bottom: parent.bottom + anchors.margins: 1.5 + } + } + } + + Label { // CONTACT NAME + id: cn + leftPadding: 10 + rightPadding: 10 + wrapMode: Text.WordWrap + anchors.left: imgProfile.right + font.pixelSize: 16 + font.italic: !isTrusted + } + + Rectangle { // UNREAD MESSAGES? + anchors.right: parent.right + height: 16 + width: childrenRect.width + 10 + radius: 8 + color: "#4B3557" + visible: badge != "0" + anchors.rightMargin: 3 + + + Label { + anchors.verticalCenter: parent.verticalCenter + anchors.horizontalCenter: parent.horizontalCenter + color: "#FFFFFF" + font.pixelSize: 12 + text: badge + } + } + } + } + + MouseArea { // ONCLICK: LOAD CONVERSATION WITH THIS CONTACT + anchors.fill: parent + hoverEnabled: true + + onClicked: { + gcd.broadcast("ResetMessagePane") + isActive = true + gcd.loadMessagesPane(onion) + } + + onEntered: { + isHover = true + } + + onExited: { + isHover = false + } + } + + Connections { // UPDATE UNREAD MESSAGES COUNTER + target: gcd + + onSetUnread: function(foronion, n) { + if (onion == foronion) { + badge = ""+n + } + } + + onResetMessagePane: function() { + isActive = false + } + + onSetConnectionStatus: function(foronion, x) { + if (onion == foronion) { + status = x + } + } + + onMarkTrusted: function(foronion) { + if (onion == foronion) { + isTrusted = true + } + } + } +} \ No newline at end of file diff --git a/qml/widgets/Contact.qmlc b/qml/widgets/Contact.qmlc new file mode 100644 index 00000000..350de2bd Binary files /dev/null and b/qml/widgets/Contact.qmlc differ diff --git a/qml/widgets/ContactList.qml b/qml/widgets/ContactList.qml new file mode 100644 index 00000000..783ba4a6 --- /dev/null +++ b/qml/widgets/ContactList.qml @@ -0,0 +1,66 @@ +import QtGraphicalEffects 1.0 +import QtQuick 2.7 +import QtQuick.Controls 2.4 +import QtQuick.Controls.Material 2.0 +import QtQuick.Layouts 1.3 + +ColumnLayout { + id: root + + + MyProfile{ + id: myprof + } + + Flickable { // CONTACT LIST + id: sv + //Layout.alignment: Qt.AlignLeft | Qt.AlignTop + clip: true + Layout.minimumHeight: 100 + //Layout.maximumHeight: parent.height - 30 + Layout.fillHeight: true + Layout.minimumWidth: parent.width + Layout.maximumWidth: parent.width + contentWidth: colContacts.width + contentHeight: colContacts.height + boundsBehavior: Flickable.StopAtBounds + + + ColumnLayout { + id: colContacts + width: root.width + spacing: 0 + + + Connections { // ADD/REMOVE CONTACT ENTRIES + target: gcd + + onAddContact: function(name, onion, image, badge, trusted) { + contactsModel.append({ + "n": name, + "o": onion, + "i": image, + "b": badge, + "t": trusted + }) + } + } + + ListModel { // CONTACT OBJECTS ARE STORED HERE ... + id: contactsModel + } + + + Repeater { + model: contactsModel // ... AND DISPLAYED HERE + delegate: Contact{ + nick: n + image: i + onion: o + badge: b + isTrusted: t + } + } + } + } +} \ No newline at end of file diff --git a/qml/widgets/ContactList.qmlc b/qml/widgets/ContactList.qmlc new file mode 100644 index 00000000..a6ddbab0 Binary files /dev/null and b/qml/widgets/ContactList.qmlc differ diff --git a/qml/widgets/InplaceEditText.qml b/qml/widgets/InplaceEditText.qml new file mode 100644 index 00000000..7122603d --- /dev/null +++ b/qml/widgets/InplaceEditText.qml @@ -0,0 +1,61 @@ +import QtGraphicalEffects 1.0 +import QtQuick 2.7 +import QtQuick.Controls 2.4 +import QtQuick.Controls.Material 2.0 +import QtQuick.Layouts 1.3 + + +ColumnLayout { + id: root + width: parent.width + + property alias text: lbl.text + signal updated + + + Text { // DISPLAY THE TEXT IN READONLY MODE + id: lbl + text: root.text + fontSizeMode: Text.HorizontalFit + font.pixelSize: 36 + minimumPixelSize: 8 + Layout.minimumWidth: parent.width + Layout.maximumWidth: parent.width + width: parent.width / 2 + horizontalAlignment: Text.AlignHCenter + textFormat: Text.PlainText + + + MouseArea { + anchors.fill: lbl + + onClicked: { + lbl.visible = false + txt.visible = true + txt.text = lbl.text + txt.selectAll() + txt.focus = true + } + } + } + + TextEdit { // MAKE IT AN EDITOR WHEN EDITING + id: txt + text: root.text + visible: false + selectByMouse: true + Layout.minimumWidth: parent.width + Layout.maximumWidth: parent.width + font.pixelSize: lbl.font.pixelSize + horizontalAlignment: Text.AlignHCenter + + Keys.onReturnPressed: { + if (event.modifiers == Qt.NoModifier) { + root.text = txt.text + txt.visible = false + lbl.visible = true + root.updated(txt.text) + } + } + } +} \ No newline at end of file diff --git a/qml/widgets/InplaceEditText.qmlc b/qml/widgets/InplaceEditText.qmlc new file mode 100644 index 00000000..e70101e0 Binary files /dev/null and b/qml/widgets/InplaceEditText.qmlc differ diff --git a/qml/widgets/Message.qml b/qml/widgets/Message.qml new file mode 100644 index 00000000..bbba290a --- /dev/null +++ b/qml/widgets/Message.qml @@ -0,0 +1,52 @@ +import QtGraphicalEffects 1.0 +import QtQuick 2.7 +import QtQuick.Controls 2.4 +import QtQuick.Controls.Material 2.0 +import QtQuick.Layouts 1.3 + +RowLayout { + id: root + Layout.alignment: from == "me" ? Qt.AlignRight : Qt.AlignLeft + + property alias message: lbl.text + property string from + + + Rectangle { // THIS IS JUST A PRETTY MESSAGE-HOLDING RECTANGLE + height: childrenRect.height + 3 + width: childrenRect.width + 6 + color: from == "me" ? "#B09CBC" : "#4B3557" + radius: 5 + + // the console will complain constantly about me setting these anchors, but qt only allows margins if they've been set to something + // a kludge to fix this would be to have spacers before/after and set the widths according to the side they're on ^ea + anchors.left: from == "me" ? undefined : parent.left + anchors.right: from == "me" ? parent.right : undefined + anchors.margins: 5 + + + Column { // combine these into one element or else childrenRect won't play nicely + TextEdit { + id: dummy + visible: false + padding: 6 + leftPadding: 10 + font.pixelSize: 12 + wrapMode: TextEdit.NoWrap + text: message + } + + TextEdit { + id: lbl + color: "#FFFFFF" + padding: 6 + leftPadding: 10 + font.pixelSize: 12 + selectByMouse: true + readOnly: true + width: dummy.width > root.parent.width - 70 ? root.parent.width - 70 : dummy.width + wrapMode: TextEdit.Wrap + } + } + } +} \ No newline at end of file diff --git a/qml/widgets/Message.qmlc b/qml/widgets/Message.qmlc new file mode 100644 index 00000000..b7237f7e Binary files /dev/null and b/qml/widgets/Message.qmlc differ diff --git a/qml/widgets/MessageList.qml b/qml/widgets/MessageList.qml new file mode 100644 index 00000000..6f24a6ac --- /dev/null +++ b/qml/widgets/MessageList.qml @@ -0,0 +1,149 @@ +import QtGraphicalEffects 1.0 +import QtQuick 2.7 +import QtQuick.Controls 2.4 +import QtQuick.Controls.Material 2.0 +import QtQuick.Layouts 1.3 + +ColumnLayout { + Layout.fillWidth: true + + + Flickable { + id: sv + clip: true + Layout.alignment: Qt.AlignLeft | Qt.AlignTop + Layout.fillHeight: true + Layout.minimumWidth: parent.width + Layout.maximumWidth: parent.width + Layout.fillWidth: true + contentWidth: colMessages.width + contentHeight: colMessages.height + boundsBehavior: Flickable.StopAtBounds + + + Connections { + target: gcd + + onClearMessages: function() { + messagesModel.clear() + } + + onAppendMessage: function(from, message) { + messagesModel.append({ + "f": from, + "m": message + }) + + if (sv.contentY + sv.height >= sv.contentHeight - colMessages.height && sv.contentHeight > sv.height) { + sv.contentY = sv.contentHeight - sv.height + } + } + } + + + ColumnLayout { + id: colMessages + width: sv.width + + + ListModel { // MESSAGE OBJECTS ARE STORED HERE ... + id: messagesModel + } + + Item { height: 6 } + + Repeater { // ... AND DISPLAYED HERE + model: messagesModel + delegate: Message { + from: f + message: m + } + } + } + } + + RowLayout { // THE BOTTOM DRAWER + Rectangle { // MESSAGE ENTRY TEXTFIELD + id: rectMessage + Layout.fillWidth: true + height: 40 + color: "#EDEDED" + border.color: "#AAAAAA" + radius: 10 + + Flickable { + id: flkMessage + anchors.fill: parent + Layout.minimumWidth: parent.width + Layout.maximumWidth: parent.width + Layout.minimumHeight: rectMessage.height + Layout.maximumHeight: rectMessage.height + contentWidth: txtMessage.width + contentHeight: txtMessage.height + boundsBehavior: Flickable.StopAtBounds + clip:true + + TextEdit { + id: txtMessage + font.pixelSize: 10 + text: "" + padding: 6 + wrapMode: TextEdit.Wrap + width: rectMessage.width + //height: parent.height + + Keys.onReturnPressed: { // CTRL+ENTER = LINEBREAK + if (event.modifiers & Qt.ControlModifier) { + txtMessage.insert(txtMessage.cursorPosition, "\n") + } else if (event.modifiers == Qt.NoModifier) { + btnSend.clicked() + } + } + + onTextChanged: { + if (flkMessage.contentY + flkMessage.height >= flkMessage.contentHeight - txtMessage.height && flkMessage.contentHeight > flkMessage.height) { + flkMessage.contentY = flkMessage.contentHeight - flkMessage.height + } + } + } + } + } + + ColumnLayout { + spacing: 0 + + + SimpleButton { // SEND MESSAGE BUTTON + id: btnSend + text: "send" + width: btnEmoji.width + btnAttach.width + + onClicked: { + if (txtMessage.text != "") { + gcd.sendMessage(txtMessage.text) + } + txtMessage.text = "" + } + } + + RowLayout { + spacing: 0 + + + SimpleButton { + id: btnEmoji + text: ":)" + + onClicked: gcd.popup("emoji not yet implemented, sorry") + } + + SimpleButton { + id: btnAttach + text: "@" + + onClicked: gcd.popup("attachments not yet implemented, sorry") + } + } + } + } +} \ No newline at end of file diff --git a/qml/widgets/MessageList.qmlc b/qml/widgets/MessageList.qmlc new file mode 100644 index 00000000..006b8397 Binary files /dev/null and b/qml/widgets/MessageList.qmlc differ diff --git a/qml/widgets/MyProfile.qml b/qml/widgets/MyProfile.qml new file mode 100644 index 00000000..9c59b798 --- /dev/null +++ b/qml/widgets/MyProfile.qml @@ -0,0 +1,140 @@ +import QtGraphicalEffects 1.0 +import QtQuick 2.7 +import QtQuick.Controls 2.4 +import QtQuick.Controls.Material 2.0 +import QtQuick.Layouts 1.3 + + +ColumnLayout { + id: root + anchors.fill: parent + width: parent.width + + property alias image: imgProfileImg.source + property alias nick: lblNick.text + property alias onion: lblOnion.text + + + Item{ height: 6 } + + Item { // PROFILE IMAGE + id: imgProfile + implicitWidth: 96 + implicitHeight: 96 + anchors.horizontalCenter: parent.horizontalCenter + + + Image { + id: imgProfileImg + anchors.fill: parent + fillMode: Image.PreserveAspectFit + source: "qrc:/qml/images/extra/robot.png" + } + } + + InplaceEditText { // USER NICKNAME + id: lblNick + anchors.horizontalCenter: parent.horizontalCenter + width: parent.width + + onUpdated: { + console.log("sending updatenick ["+nick+"]") + gcd.updateNick(lblNick.text) + } + } + + // TODO: this doesnt quite fit everything :{ + Label { // ONION ADDRESS + id: lblOnion + font.pixelSize: 6 + Layout.fillWidth: true + padding: 3 + horizontalAlignment: Text.AlignHCenter + } + + RowLayout { // TOOLS FOR EDITING PROFILE + anchors.horizontalCenter: parent.horizontalCenter + + + TextEdit { // USED TO POWER THE COPY/PASTE BUTTON + id: txtHidden + visible: false + } + + SimpleButton { + text: "copy" + + onClicked: { + gcd.popup("copied to clipboard!") + txtHidden.text = nick.replace(" ", "~") + "~" + onion + txtHidden.selectAll(); + txtHidden.copy(); + } + } + + SimpleButton { + text: "settings" + + onClicked: gcd.popup("not yet implemented, sorry :(") + } + + SimpleButton { + text: "sign out" + + onClicked: gcd.popup("not yet implemented, sorry :(") + } + } + + RowLayout { + anchors.left: parent.left + anchors.right: parent.right + + + Rectangle { // ADD CONTACTS TEXTFIELD + width: parent.width - 4 + height: 20 + color: "#EDEDED" + border.color: "#AAAAAA" + border.width: 1 + radius: 10 + anchors.horizontalCenter: parent.horizontalCenter + + + TextEdit { + property string hint: "... paste an address here to add a contact ..." + anchors.verticalCenter: parent.verticalCenter + anchors.horizontalCenter: parent.horizontalCenter + font.pixelSize: 9 + color: "#888888" + padding: 2 + text: hint + + onTextChanged: { + if (text != hint && text != "") { + console.log("to handle: "+text) + gcd.importString(text) + text = hint + } + } + + onFocusChanged: { + text = focus ? "" : hint + } + + onCursorPositionChanged: { + text = focus ? "" : hint + } + } + } + } + + Connections { + target: gcd + + onUpdateMyProfile: function(_nick, _onion, _image) { + nick = _nick + onion = _onion + image = _image + } + } +} \ No newline at end of file diff --git a/qml/widgets/MyProfile.qmlc b/qml/widgets/MyProfile.qmlc new file mode 100644 index 00000000..3f513073 Binary files /dev/null and b/qml/widgets/MyProfile.qmlc differ diff --git a/qml/widgets/SimpleButton.qml b/qml/widgets/SimpleButton.qml new file mode 100644 index 00000000..c125bc19 --- /dev/null +++ b/qml/widgets/SimpleButton.qml @@ -0,0 +1,44 @@ +import QtQuick 2.0 + +Rectangle { + id: button + Accessible.name: text // TODO: copied this accessibility stuff from an example but damn it's awesome, let's add this everywhere!!! + Accessible.description: "This button " + text + "s" + Accessible.role: Accessible.Button + Accessible.onPressAction: { + button.clicked() + } + width: buttonText.width + 20 + height: 20 + color: "#DDDDDD" + border.color: focus ? "#BBBBBB" : "#AAAAAA" + border.width: 1 + radius: 2 + antialiasing: true + + property bool checked: false + property alias text: buttonText.text + signal clicked + + + + Text { + id: buttonText + text: parent.description + anchors.centerIn: parent + font.pixelSize: parent.height * .5 + color: "#404040" + } + + + MouseArea { + id: mouseArea + anchors.fill: parent + onClicked: { + parent.focus = true + parent.clicked() + } + } + + Keys.onSpacePressed: clicked() +} \ No newline at end of file diff --git a/qml/widgets/SimpleButton.qmlc b/qml/widgets/SimpleButton.qmlc new file mode 100644 index 00000000..a49d9984 Binary files /dev/null and b/qml/widgets/SimpleButton.qmlc differ