From e8ceb1c317192582ad0d534bc18b1950b8045357 Mon Sep 17 00:00:00 2001 From: JustinAJ Date: Thu, 12 Jun 2014 16:35:20 -0400 Subject: [PATCH] Changed many CStrings to Strings --- Jupiter/IRC_Client.cpp | 223 +++++++++++++++++++++-------------------- Release/Jupiter.lib | Bin 218500 -> 230104 bytes 2 files changed, 113 insertions(+), 110 deletions(-) diff --git a/Jupiter/IRC_Client.cpp b/Jupiter/IRC_Client.cpp index ae98896..e0f0e06 100644 --- a/Jupiter/IRC_Client.cpp +++ b/Jupiter/IRC_Client.cpp @@ -31,6 +31,8 @@ Jupiter::INIFile _Config; Jupiter::INIFile *Jupiter::IRC::Client::Config = &_Config; +template class JUPITER_API Jupiter::Reference_String; +template class JUPITER_API Jupiter::String_Strict; template class JUPITER_API Jupiter::CString_Type; template class JUPITER_API Jupiter::ArrayList; template class JUPITER_API Jupiter::ArrayList; @@ -40,33 +42,33 @@ struct JUPITER_API Jupiter::IRC::Client::Data Jupiter::IRC::Client *iFace; Jupiter::Socket *sock; bool ssl; - Jupiter::CStringS SSLCertificate; - Jupiter::CStringS SSLKey; - Jupiter::CStringS saslAccount; - Jupiter::CStringS saslPass; + Jupiter::StringS SSLCertificate; + Jupiter::StringS SSLKey; + Jupiter::StringS saslAccount; + Jupiter::StringS saslPass; int connectionStatus; - Jupiter::CStringS configSectionName; + Jupiter::StringS configSectionName; Jupiter::CStringS logFileName; - Jupiter::CStringS buffer; + Jupiter::ReferenceString buffer; unsigned short serverPort; Jupiter::CStringS serverHostname; - Jupiter::CStringS serverName; - Jupiter::CStringS nickname; - Jupiter::CStringS realName; - Jupiter::CStringS prefixModes = "ov"; - Jupiter::CStringS prefixes = "@+"; - Jupiter::CStringS chanTypes = "#"; - Jupiter::CStringS modeA = "b"; - Jupiter::CStringS modeB = "k"; - Jupiter::CStringS modeC = "l"; - Jupiter::CStringS modeD = "psitnm"; + Jupiter::StringS serverName; + Jupiter::StringS nickname; + Jupiter::StringS realName; + Jupiter::StringS prefixModes = "ov"; + Jupiter::StringS prefixes = "@+"; + Jupiter::StringS chanTypes = "#"; + Jupiter::StringS modeA = "b"; + Jupiter::StringS modeB = "k"; + Jupiter::StringS modeC = "l"; + Jupiter::StringS modeD = "psitnm"; Jupiter::ArrayList channels; void delChannel(unsigned int index); void delChannel(const Jupiter::ReadableString &chan); void addNamesToChannel(unsigned int channelIndex, Jupiter::ReadableString &names); size_t addChannel(const Jupiter::ReadableString &chan); bool joinOnKick; - Jupiter::CStringS autoPartMessage; + Jupiter::StringS autoPartMessage; time_t reconnectDelay; time_t reconnectTime; int maxReconnectAttempts; @@ -92,20 +94,20 @@ Jupiter::IRC::Client::Data::Data(Jupiter::IRC::Client *interFace) struct Jupiter::IRC::Client::User::Data { unsigned int channelCount = 0; - Jupiter::CStringS nickname; - Jupiter::CStringS username; - Jupiter::CStringS hostname; + Jupiter::StringS nickname; + Jupiter::StringS username; + Jupiter::StringS hostname; }; struct Jupiter::IRC::Client::Channel::User::Data { Jupiter::IRC::Client::User *user; - Jupiter::CStringS prefixes; + Jupiter::StringS prefixes; }; struct Jupiter::IRC::Client::Channel::Data { - Jupiter::CStringS channel; + Jupiter::StringS channel; Jupiter::ArrayList users; Jupiter::ReferenceString serverPrefixSetPtr; int type; @@ -159,7 +161,8 @@ Jupiter::IRC::Client::Client(const Jupiter::ReadableString &configSection) if (Jupiter::IRC::Client::readConfigBool(STRING_LITERAL_AS_REFERENCE("PrintOutput"), true)) Jupiter::IRC::Client::data_->printOutput = stdout; else Jupiter::IRC::Client::data_->printOutput = nullptr; - if (Jupiter::IRC::Client::data_->logFileName.size() != 0) Jupiter::IRC::Client::data_->logFile = fopen(Jupiter::IRC::Client::data_->logFileName.c_str(), "a+b"); + if (Jupiter::IRC::Client::data_->logFileName.size() != 0) + Jupiter::IRC::Client::data_->logFile = fopen(Jupiter::IRC::Client::data_->logFileName.c_str(), "a+b"); else Jupiter::IRC::Client::data_->logFile = nullptr; if (Jupiter::IRC::Client::data_->ssl) @@ -354,9 +357,9 @@ void Jupiter::IRC::Client::setPrintOutput(FILE *f) Jupiter::IRC::Client::data_->printOutput = f; } -inline Jupiter::CStringS getSender(Jupiter::CStringS &line) +inline Jupiter::ReferenceString getSender(const Jupiter::ReadableString &line) { - return line.getWord(0, ":! "); + return Jupiter::ReferenceString::getWord(line, 0, ":! "); } int Jupiter::IRC::Client::getAccessLevel(const Jupiter::ReadableString &chan, const Jupiter::ReadableString &nick) const @@ -380,7 +383,7 @@ int Jupiter::IRC::Client::getAccessLevel(const Jupiter::ReadableString &chan, co void Jupiter::IRC::Client::send(const Jupiter::ReadableString &rawMessage) { - Jupiter::CStringS out = rawMessage; + Jupiter::StringS out = rawMessage; out += ENDL; Jupiter::IRC::Client::data_->sock->send(out); } @@ -533,7 +536,7 @@ int Jupiter::IRC::Client::primaryHandler() unsigned int totalLines = Jupiter::IRC::Client::data_->buffer.wordCount(ENDL); for (unsigned int currentLine = 0; currentLine < totalLines; currentLine++) { - Jupiter::CStringS buff = Jupiter::IRC::Client::data_->buffer.getWord(currentLine, ENDL); + Jupiter::ReferenceString buff = Jupiter::IRC::Client::data_->buffer.getWord(currentLine, ENDL); if (buff.size() != 0) { Jupiter::IRC::Client::writeToLogs(buff); @@ -684,11 +687,11 @@ int Jupiter::IRC::Client::primaryHandler() Jupiter::ReferenceString w4 = Jupiter::ReferenceString::getWord(buff, 3, WHITESPACE); if (w4.equals("LS")) { - Jupiter::CStringS listParams = buff.gotoWord(4, WHITESPACE); + Jupiter::ReferenceString listParams = buff.gotoWord(4, WHITESPACE); if (listParams[0] == ':') listParams.shiftRight(1); unsigned int len = listParams.wordCount(WHITESPACE); - Jupiter::CStringS curr; - Jupiter::CStringL req = "CAP REQ :"; + Jupiter::ReferenceString curr; + Jupiter::StringL req = "CAP REQ :"; bool sasl = false; for (unsigned int i = 0; i < len; i++) { @@ -709,11 +712,9 @@ int Jupiter::IRC::Client::primaryHandler() { req -= 1; // Trim off the extra space byte. req += ENDL; - Jupiter::IRC::Client::data_->sock->send(req.c_str()); + Jupiter::IRC::Client::data_->sock->send(req); if (sasl) - { Jupiter::IRC::Client::data_->sock->send("AUTHENTICATE PLAIN" ENDL); - } } if (!sasl) { @@ -807,52 +808,50 @@ int Jupiter::IRC::Client::primaryHandler() { case IRC_RPL_ISUPPORT: // 005 { - const char *ptr = strstr(buff.c_str(), "PREFIX=("); - if (ptr != nullptr) + size_t pos = buff.find(STRING_LITERAL_AS_REFERENCE("PREFIX=(")); + if (pos != Jupiter::INVALID_INDEX) { - ptr += 8; - int poff = findSymbol(ptr, ')', 0); - Jupiter::IRC::Client::data_->prefixModes = Jupiter::ReferenceString::getWord(ptr, 0, ")"); - ptr += poff + 1; - Jupiter::IRC::Client::data_->prefixes = Jupiter::ReferenceString::getWord(ptr, 0, " " ENDL); - ptr = nullptr; + Jupiter::ReferenceString ref = Jupiter::ReferenceString::substring(buff, pos + 8); + Jupiter::IRC::Client::data_->prefixModes = Jupiter::ReferenceString::getWord(ref, 0, ")"); + ref.shiftRight(ref.find(')')); + Jupiter::IRC::Client::data_->prefixes = Jupiter::ReferenceString::getWord(ref, 0, " " ENDL); } - ptr = strstr(buff.c_str(), "CHANMODES="); - if (ptr != nullptr) + pos = buff.find(STRING_LITERAL_AS_REFERENCE("CHANMODES=")); + if (pos != Jupiter::INVALID_INDEX) { - ptr += 10; - int pos = findSymbol(ptr, ',', 0); - if (pos >= 0) + Jupiter::ReferenceString ref = Jupiter::ReferenceString::substring(buff, pos + 10); + ref = ref.getWord(0, " "); + size_t pos2 = ref.find(',', 0); + if (pos != INVALID_INDEX) { - Jupiter::IRC::Client::data_->modeA = Jupiter::ReferenceString::getWord(ptr, 0, ", "); - ptr += pos + 1; - pos = findSymbol(ptr, ',', 0); - if (pos >= 0) + Jupiter::IRC::Client::data_->modeA = ref.getWord(0, ", "); + ref.shiftRight(pos + 1); + pos2 = ref.find(',', 0); + if (pos != INVALID_INDEX) { - Jupiter::IRC::Client::data_->modeB = Jupiter::ReferenceString::getWord(ptr, 0, ", "); - ptr += pos + 1; - pos = findSymbol(ptr, ',', 0); - if (pos >= 0) + Jupiter::IRC::Client::data_->modeB = ref.getWord(0, ", "); + ref.shiftRight(pos + 1); + pos2 = ref.find(',', 0); + if (pos != INVALID_INDEX) { - Jupiter::IRC::Client::data_->modeC = Jupiter::ReferenceString::getWord(ptr, 0, ", "); - ptr += pos + 1; - pos = strcspn(ptr, " "); - if (pos >= 0) Jupiter::IRC::Client::data_->modeD = Jupiter::ReferenceString::getWord(ptr, 0, ", "); + Jupiter::IRC::Client::data_->modeC = ref.getWord(0, ", "); + ref.shiftRight(pos + 1); + Jupiter::IRC::Client::data_->modeD = ref.getWord(0, ", "); } } } } - ptr = strstr(buff.c_str(), "CHANTYPES="); - if (ptr != nullptr) + pos = buff.find(STRING_LITERAL_AS_REFERENCE("CHANTYPES=")); + if (pos != Jupiter::INVALID_INDEX) { - ptr += 10; - Jupiter::IRC::Client::data_->chanTypes = Jupiter::ReferenceString::getWord(ptr, 0, " "); + Jupiter::ReferenceString ref = Jupiter::ReferenceString::substring(buff, pos + 10); + Jupiter::IRC::Client::data_->chanTypes = ref.getWord(0, " "); } } break; case IRC_RPL_LUSERCLIENT: // 251 { - Jupiter::CStringL key = "RawData."; + Jupiter::StringL key = "RawData."; size_t offset; unsigned int i = 1; @@ -893,10 +892,10 @@ int Jupiter::IRC::Client::primaryHandler() Jupiter::ReferenceString chan = Jupiter::ReferenceString::getWord(buff, 2, WHITESPACE); if (chan.size() != 0) { - Jupiter::CStringS nick = getSender(buff); + Jupiter::ReferenceString nick = getSender(buff); if (nick.size() != 0) { - Jupiter::ReferenceString premessage = buff.c_str() + findSymbol(buff.c_str(), ':', 1) + 1; + Jupiter::ReferenceString premessage = Jupiter::ReferenceString::substring(buff, buff.find(':', 1) + 1); if (premessage[0] == '\001') //CTCP (ACTIONs are included) { Jupiter::ReferenceString rawmessage(premessage.ptr() + 1, premessage.size() - 1); @@ -913,7 +912,7 @@ int Jupiter::IRC::Client::primaryHandler() } else { - Jupiter::CStringL response = "NOTICE "; + Jupiter::StringL response = "NOTICE "; response += nick; response += " :" IRCCTCP; response += command; @@ -943,7 +942,7 @@ int Jupiter::IRC::Client::primaryHandler() } else { - Jupiter::CStringS message = premessage; + Jupiter::ReferenceString message = premessage; this->OnChat(chan, nick, message); for (size_t i = 0; i < Jupiter::plugins->size(); i++) Jupiter::plugins->get(i)->OnChat(this, chan, nick, message); @@ -956,11 +955,11 @@ int Jupiter::IRC::Client::primaryHandler() Jupiter::ReferenceString chan = Jupiter::ReferenceString::getWord(buff, 2, WHITESPACE); if (chan.size() != 0) { - int pos = findSymbol(buff.c_str(), '!', 0); - auto message = buff.substring(findSymbol(buff.c_str(), ':', 1) + 1, buff.size()); - if (pos >= 0 && strcspn(buff.c_str(), "!") < strcspn(buff.c_str(), " ")) + size_t pos = buff.find('!', 0); + auto message = Jupiter::ReferenceString::substring(buff, buff.find(':', 1) + 1, buff.size()); + if (pos < buff.find(' ')) { - auto nick = buff.substring(1, pos); + auto nick = Jupiter::ReferenceString::substring(buff, 1, pos); this->OnNotice(chan, nick, message); for (size_t i = 0; i < Jupiter::plugins->size(); i++) Jupiter::plugins->get(i)->OnNotice(this, chan, nick, message); @@ -980,9 +979,8 @@ int Jupiter::IRC::Client::primaryHandler() else if (w2.equalsi("NICK")) { auto nick = getSender(buff); - const char *tnewnick = buff.c_str() + findSymbol(buff.c_str(), ' ', 1) + 1; - if (*tnewnick == ':') tnewnick++; - Jupiter::CStringS newnick = tnewnick; + Jupiter::ReferenceString newnick = Jupiter::ReferenceString::substring(buff, buff.find(' ', 1) + 1); + if (newnick.size() != 0 && newnick[0] == ':') newnick.shiftRight(1); if (nick.equalsi(Jupiter::IRC::Client::data_->nickname)) { Jupiter::IRC::Client::data_->nickname = newnick; @@ -1035,8 +1033,10 @@ int Jupiter::IRC::Client::primaryHandler() { Jupiter::IRC::Client::User *user = Jupiter::IRC::Client::data_->users.get(userIndex); Jupiter::IRC::Client::data_->channels.get(i)->delUser(nick); - int pos = findSymbol(buff.c_str(), ':', 1); - Jupiter::CStringS reason = buff.c_str() + pos + 1; + Jupiter::ReferenceString reason; + size_t pos = buff.find(':', 1); + if (pos != Jupiter::INVALID_INDEX) + reason = Jupiter::ReferenceString::substring(buff, pos + 1); this->OnPart(chan, nick, reason); for (i = Jupiter::plugins->size() - 1; i >= 0; i--) Jupiter::plugins->get(i)->OnPart(this, chan, nick, reason); if (nick.equalsi(Jupiter::IRC::Client::data_->nickname)) Jupiter::IRC::Client::data_->delChannel(chan); @@ -1051,7 +1051,7 @@ int Jupiter::IRC::Client::primaryHandler() Jupiter::ReferenceString chan = Jupiter::ReferenceString::getWord(buff, 2, WHITESPACE); if (chan.size() != 0) { - Jupiter::CStringS kicker = getSender(buff); + Jupiter::ReferenceString kicker = getSender(buff); if (kicker.size() != 0) { Jupiter::ReferenceString kicked = Jupiter::ReferenceString::getWord(buff, 3, WHITESPACE); @@ -1065,9 +1065,10 @@ int Jupiter::IRC::Client::primaryHandler() { Jupiter::IRC::Client::User *user = Jupiter::IRC::Client::data_->users.get(userIndex); Jupiter::IRC::Client::data_->channels.get(i)->delUser(kicked); - int pos = findSymbol(buff.c_str(), ':', 1); - Jupiter::CStringS reason; - if (pos >= 0) reason += buff.c_str() + pos + 1; + size_t pos = buff.find(':', 1); + Jupiter::ReferenceString reason; + if (pos != Jupiter::INVALID_INDEX) + reason = Jupiter::ReferenceString::substring(buff, pos + 1); this->OnKick(chan, kicker, kicked, reason); for (i = Jupiter::plugins->size() - 1; i >= 0; i--) Jupiter::plugins->get(i)->OnKick(this, chan, kicker, kicked, reason); if (kicked.equalsi(Jupiter::IRC::Client::data_->nickname)) @@ -1084,8 +1085,8 @@ int Jupiter::IRC::Client::primaryHandler() } else if (w2.equalsi("QUIT")) { - Jupiter::CStringS nick = getSender(buff); - Jupiter::CStringS message = buff.substring(findSymbol(buff.c_str(), ':', 1) + 1, buff.size()); + Jupiter::ReferenceString nick = getSender(buff); + Jupiter::ReferenceString message = Jupiter::ReferenceString::substring(buff, buff.find(':', 1) + 1); int userIndex = Jupiter::IRC::Client::getUserIndex(nick); if (userIndex >= 0) { @@ -1100,9 +1101,9 @@ int Jupiter::IRC::Client::primaryHandler() } else if (w2.equalsi("INVITE")) { - Jupiter::CStringS inviter = getSender(buff); + Jupiter::ReferenceString inviter = getSender(buff); Jupiter::ReferenceString invited = Jupiter::ReferenceString::getWord(buff, 2, WHITESPACE); - Jupiter::CStringS chan = buff.c_str() + findSymbol(buff.c_str(), ':', 1) + 1; + Jupiter::ReferenceString chan = Jupiter::ReferenceString::substring(buff, buff.find(':', 1) + 1); this->OnInvite(chan, inviter, invited); for (size_t i = 0; i < Jupiter::plugins->size(); i++) Jupiter::plugins->get(i)->OnInvite(this, chan, inviter, invited); @@ -1117,24 +1118,25 @@ int Jupiter::IRC::Client::primaryHandler() auto nick = getSender(buff); if (nick.size() != 0) { - const char *modestring = buff.c_str() + findSymbol(buff.c_str(), ' ', 2) + 1; - if (wordCount(modestring) > 1) + Jupiter::ReferenceString modestring = Jupiter::ReferenceString::substring(buff, buff.find(' ', 2) + 1); + if (modestring.wordCount(" ") > 1) { - char *modes = getWord(modestring, 0); - if (modes != nullptr) + Jupiter::ReferenceString modes = modestring.getWord(0, " "); + if (modes.isEmpty() == false) { - const char *params = modestring + findSymbol(modestring, ' ', 0) + 1; - char *tword; + modestring.shiftRight(modestring.find(' ') + 1); + Jupiter::ReferenceString tword; unsigned char g = 0; char symb = 0; for (uint8_t z = 0; modes[z] != 0; z++) { - if (modes[z] == '+' || modes[z] == '-') symb = modes[z]; - else if (Jupiter::IRC::Client::data_->prefixModes.contains(modes[z])) + if (modes[z] == '+' || modes[z] == '-') + symb = modes[z]; + else if (Jupiter::IRC::Client::data_->prefixModes.contains(modes[z])) // user prefix mode { - tword = getWord(params, g); - if (tword != nullptr) + tword = modestring.getWord(g, " "); + if (tword.isEmpty() == false) { Jupiter::IRC::Client::Channel *channel; for (unsigned int channelIndex = 0; channelIndex < Jupiter::IRC::Client::data_->channels.size(); channelIndex++) @@ -1142,7 +1144,8 @@ int Jupiter::IRC::Client::primaryHandler() channel = Jupiter::IRC::Client::data_->channels.get(channelIndex); if (channel->getName().equalsi(chan)) { - if (symb == '+') channel->addUserPrefix(Jupiter::ReferenceString(tword), Jupiter::IRC::Client::data_->prefixes[Jupiter::IRC::Client::data_->prefixModes.find(modes[z])]); + if (symb == '+') + channel->addUserPrefix(Jupiter::ReferenceString(tword), Jupiter::IRC::Client::data_->prefixes[Jupiter::IRC::Client::data_->prefixModes.find(modes[z])]); else channel->delUserPrefix(Jupiter::ReferenceString(tword), Jupiter::IRC::Client::data_->prefixes[Jupiter::IRC::Client::data_->prefixModes.find(modes[z])]); break; } @@ -1150,20 +1153,19 @@ int Jupiter::IRC::Client::primaryHandler() } g++; } - else - { - if (Jupiter::IRC::Client::data_->modeA.contains(modes[z])) g++; - else if (Jupiter::IRC::Client::data_->modeB.contains(modes[z])) g++; - else if (Jupiter::IRC::Client::data_->modeC.contains(modes[z]) && symb == '+') g++; - } + else if (Jupiter::IRC::Client::data_->modeA.contains(modes[z])) // mode type A + g++; + else if (Jupiter::IRC::Client::data_->modeB.contains(modes[z])) // mode type B + g++; + else if (Jupiter::IRC::Client::data_->modeC.contains(modes[z]) && symb == '+') // mode type C (with parameter) + g++; + // else; // mode type D } - free(modes); } } - Jupiter::CStringS modeString = modestring; - this->OnMode(chan, nick, modeString); + this->OnMode(chan, nick, modestring); for (size_t i = 0; i < Jupiter::plugins->size(); i++) - Jupiter::plugins->get(i)->OnMode(this, chan, nick, modeString); + Jupiter::plugins->get(i)->OnMode(this, chan, nick, modestring); } } } @@ -1203,11 +1205,12 @@ int Jupiter::IRC::Client::primaryHandler() } else if (w1.equals("NICK")) { - if (w2.size() != 0) Jupiter::IRC::Client::data_->nickname = w2; + if (w2.isEmpty() == false) + Jupiter::IRC::Client::data_->nickname = w2; } else if (w1.equals("ERROR")) { - Jupiter::CStringS reason = buff.c_str() + strcspn(buff.c_str(), ":") + 1; + Jupiter::ReferenceString reason = Jupiter::ReferenceString::substring(buff, buff.find(':') + 1); this->OnError(reason); for (size_t i = 0; i < Jupiter::plugins->size(); i++) Jupiter::plugins->get(i)->OnError(this, reason); @@ -1442,7 +1445,7 @@ void Jupiter::IRC::Client::Data::addNamesToChannel(unsigned int index, Jupiter:: t = Jupiter::ReferenceString::getWord(names, i, " "); if (t.size() != 0) { - offset = t.span(Jupiter::IRC::Client::Data::prefixes.c_str()); + offset = t.span(Jupiter::IRC::Client::Data::prefixes); t.shiftRight(offset); Jupiter::IRC::Client::User *user = Jupiter::IRC::Client::Data::findUserOrAdd(t); t.shiftLeft(offset); @@ -1565,7 +1568,7 @@ Jupiter::IRC::Client::Channel::Channel(const Jupiter::ReadableString &channelNam Jupiter::IRC::Client::Channel::~Channel() { - while (Jupiter::IRC::Client::Channel::data_->users.size() != 0) delete Jupiter::IRC::Client::Channel::data_->users.remove(0); + Jupiter::IRC::Client::Channel::data_->users.emptyAndDelete(); delete Jupiter::IRC::Client::Channel::data_; } @@ -1673,7 +1676,7 @@ char Jupiter::IRC::Client::Channel::getUserPrefix(unsigned int index) const { if (index < Jupiter::IRC::Client::Channel::data_->users.size()) for (unsigned char i = 0; Jupiter::IRC::Client::Channel::data_->serverPrefixSetPtr[i]; i++) - if (containsSymbol(Jupiter::IRC::Client::Channel::data_->users.get(index)->data_->prefixes.c_str(), Jupiter::IRC::Client::Channel::data_->serverPrefixSetPtr[i])) + if (Jupiter::IRC::Client::Channel::data_->users.get(index)->data_->prefixes.contains(Jupiter::IRC::Client::Channel::data_->serverPrefixSetPtr[i])) return Jupiter::IRC::Client::Channel::data_->serverPrefixSetPtr[i]; return 0; } diff --git a/Release/Jupiter.lib b/Release/Jupiter.lib index 8a2191c1fa6fbe9920afb57b90f6adaf27d41dae..bc401302c45143a267d8ba4a70a760f1c30c16dd 100644 GIT binary patch literal 230104 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 delta 30820 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 Nn#X3!{Vy0*{uhij&_DnH