• +598 29008192
  • info@servinfo.com.uy

Archivo del Autor: Belen De Leon

Firefox now supports the newest internet security protocol

Last Friday, the Internet Engineering Task Force released the final version of TLS 1.3. This is a major update to TLS 1.2, the security protocol that secures much of the web by, among other things, providing the layer that handles the encryption of every HTTPS connection.

The updated spec promises improved security and a bit more speed, thanks to the reduced need for round trips as the browser and server negotiate the security settings. And the good news is, you can already use it today, because, as Mozilla today announced, Firefox already supports the new standard out of the box. Chrome, too, started supporting the new protocol (based on earlier drafts) in version 65.

TLS 1.3 has been a few years in the making and it’s been 10 years since the last version launched. It’s no secret that TLS 1.2 had its share of problems — though those were mostly due to its implementations, which are obviously a favorite target for hackers thanks to their ubiquity and which opened up bugs like the infamous Heartbleed vulnerability. But in addition to that, some of the algorithms that are part of TLS 1.2 have been successfully attacked.

It’s no surprise, then, that TLS 1.3 focuses on providing access to modern cryptographic methods (the folks over at Cloudflare have a more in-depth look at what exactly that means).

For users, all of this ideally means that they get access to a more secure web, as well as a slightly faster one, as the new protocol allows the browser and server to quickly negotiate which encryption to use without lots of back and forth.

Some of the companies that already support TLS 1.3 include Facebook (which says that it already serves almost half of its traffic over the new protocol), as well as Google and Cloudflare.


Source: TechCrunch

Your Chicken’s Salmonella Problem Is Worse Than You Think

And cooking it to kingdom come won’t necessarily protect you.
Source: Wired

Airbnb shows off new collaboration features that let co-travelers plan trips together

In recent years, Airbnb has been working to expand its business beyond accommodations, by becoming a more robust travel companion with features like guidebooks, suggested experiences, and full-service hospitality for high-end travelers with its still invite-only Airbnb Beyond, for example. Now the company is preparing even more trip-planning features, including support for adding co-travelers to trips and other collaboration features for group travel.

Airbnb offered a sneak peek at these otherwise unannounced features at a recent tech talk given at company headquarters.

“Trip planning is not necessarily complete unless you can share your trip with someone. So now we’re building features that let you add co-travelers – so you can add and share ideas, so you can add comments, so you can collaborate,” said Laura Xu, an Android engineer on Airbnb’s Trip platform, during the presentation. “You can really build out your trip.”

From the screenshots displayed, the co-travelers feature will allow Airbnb users to send invites to people who are joining the trip. This allows everyone to save ideas to a master list, including homes that match their criteria, experiences, food and drink, sights and more. Each item will indicate who added it to the trip. There’s also a way for others to comment on the items, which allows for group conversations about the place or activity.

The company didn’t say how soon the features were arriving.

The focus of this portion of the presentation was to give a look at how a company of Airbnb’s size and scale can change its platform and codebase to support more than just home listings. Over the past couple of years, the company has added support for things like restaurants, concerts, coworking spaces, luxury rentals, and even high-end vacations like castle rentals and even private islands, Xu said.

Now the company is creating a mobile platform that can support its change in focus, as well.

Also offered was a deeper look at of the newer features on mobile, where travelers can add anything to their trip itinerary – like places they want to visit. The feature is integrated with Google Places to pull in photos, directions, open hours, and other details.

Meanwhile, the ‘Organize’ experience under Trips in the Airbnb app is being updated to become a way to plan the entire trip. The company showed off a new trip planner – which hasn’t yet launched – which will include a day-by-day view to see when everything is booked, an embeddable map that shows where everything is booked, and a suggestions feature, so you’re never short on ideas of what to do while in town.

In addition, Airbnb presented a new concept called Trip Platform, which was described as something that powers the end-to-end trip experience on Airbnb, and enables the launch of new tools. It includes easy-to-reuse UI (user interface) components that will make it easier to create and add new features, while maintaining a consistent look and feel across the app.

The tech talk, overall, was focused on what goes into building Airbnb’s iOS and Android apps – something that’s important to the company because over 50% of its incoming traffic is now mobile, and because travelers aren’t generally using a desktop or laptop computer.

Airbnb also hinted towards its longer-term, mobile-first vision – one that has expanded beyond “where I am going to stay” to now include “what am I going to do?” but hasn’t yet addressed the question, “where am I going to go?” It could help with that latter query by introducing more discovery features, but these plans weren’t discussed during the talk.

We’ve reached out to Airbnb to get more information on these additions, but the company has not offered an official response.

(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = ‘https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.1’; fjs.parentNode.insertBefore(js, fjs);}(document, ‘script’, ‘facebook-jssdk’));

Airbnb Tech Talk: Native Product Development

Are you curious about what goes into building Airbnb’s iOS and Android apps? Join us to hear Airbnb native engineers cover in-house technologies that facilitate product development, along with learnings from large-scale product launches. RSVP to attend in person: https://airbnbmobile.splashthat.com/

Posted by Airbnb Engineering on Tuesday, August 7, 2018


Source: TechCrunch

White-hat Chinese hackers turn Alexa into a spy, briefly

A team of Chinese researchers revealed this week that they were able to use a cracked Amazon Echo to exploit a series of Alexa interface flaws to take control over an unteuched Echo running on the same network.

The post White-hat Chinese hackers turn Alexa into a spy, briefly appeared first on Digital Trends.


Source: Digital trends

Twitter Lite expands to 21 more countries, adds push notifications

Twitter announced today its Twitter Lite app is expanding to 21 more countries, which makes the data-saving app available to more than 45 countries in total. The app was introduced last year with the goal of bringing in more users from emerging markets to Twitter. Similar to other data-saving apps, like Facebook Lite or YouTube Go, Twitter Lite is designed to load faster on slower network connections, like 2G and 3G, and also has a smaller footprint, so it takes up less space on the phone.

The app was first launched as a test in the Philippines in September, before rolling out to a couple dozen more countries in November.

Twitter’s hope is that by addressing the needs of those low-bandwith users in international markets, the company could help increase its overall user base, which has remained fairly stagnant.

Today, the company is making the app available to 21 countries, including:  Argentina, Belarus, Dominican Republic, Ghana, Guatemala, Honduras, India, Indonesia, Jordan, Kenya, Lebanon, Morocco, Nicaragua, Paraguay, Romania, Turkey, Uganda, Ukraine, Uruguay, Yemen, and Zimbabwe.

These join the other markets where Twitter Lite has been available, such as: Algeria, Bangladesh, Bolivia, Brazil, Chile, Colombia, Costa Rica, Ecuador, Egypt, Israel, Kazakhstan, Mexico, Malaysia, Nigeria, Nepal, Panama, Peru, Serbia, El Salvador, South Africa, Thailand, Tunisia, Tanzania and Venezuela, in addition to the Philippines.

The app offers a variety of features for those on slower or unreliable networks. For example, Lite users can turn on a Data saver mode that allows them to control which images or video load when browsing the network. Once enabled, you can load this content by tapping “Load Image” or “Load video,” as needed.

The app is also under 3MB in size, so it will load more quickly on slower networks.

And like Twitter, the app includes features like Bookmarks, a darker “Night mode” theme, threads, and starting today, push notifications.

The company in November claimed Twitter Lite led to a greater than 50% increase in tweets, and noted that 80% of its then 330 million monthly users were outside the U.S. That percentage remains roughly the same – as of July, Twitter had a total of 335 million users, with 68 million of those in the U.S.

However, the company isn’t growing that quickly outside the U.S., despite Twitter Lite. Also as of July 2018, we noted the company’s international audience had only grown by a modest 3.5% over the past year.

An expansion of the Twitter Lite app will certainly open up Twitter to more people, but it’s not clear there’s much demand.

The app is available as a free download on Google Play.


Source: TechCrunch

How to Stop Google From Tracking Your Location

A new report shows that Google still tracks your location even if you thought you opted out.
Source: Wired

Apple preps production of updated MacBook Air for a 2018 launch

To reach its rumored launch timeline of later this year for its low-cost notebook, Apple is expected to begin production of its updated MacBook Air soon. The sub-$1,000 laptop could launch as early as September or October.

The post Apple preps production of updated MacBook Air for a 2018 launch appeared first on Digital Trends.


Source: Digital trends

Startups should read this checklist before they go “whale hunting” for big partners

A top four tech company recently approached the CEO of one of our B2B portfolio companies with a tremendous offer. This company, with buy-in from its world-famous CEO, believes the startup’s core technology could help them catch up to a rival in an incredibly important space and wanted to discuss a $20M investment on extremely favorable terms. This partnership would allow the startup to grow 10X in a year and would provide invaluable validation.

The founder was elated. I was terrified. This kind of deal is a classic “whale hunt,” and most of the startups who engage in them are doomed to end up like Captain Ahab.

While it’s immensely gratifying to receive this kind of validation from a market leader, the startup is at an early and important developmental stage. I’ve seen many promising startups blown up by ill-advised business development deals that swelled teams in a bout of euphoria only to see them wither if interest and focus from their partner wanes.

In my experience, arrangements that pair a behemoth megacorp with a Seed/Series A stage startup have a success rate well below 50%. I didn’t tell the founder to decline the offer outright, but I did suggest that the management team consider a few questions before pursuing it.

How much MRR will it add to your business? The project with the large company is in line with the startup’s long-term vision, but it’s a departure from their current focus. A $20M investment is very nice indeed, but once that money is spent, what will the ongoing revenue be? And what is the opportunity cost of not supporting the current business plan? What discount rate will you apply to compensate for the small probability of this deal working out? My advice was that if he couldn’t satisfactorily answer those questions, it was probably the right move to turn the deal down. Even if the deal was structured as $20M in revenue rather than equity I’d hesitate.

How, in detail, will this project help your core business? There’s an argument for entering into an agreement like this even if the immediate revenue contribution is low. If the project will allow the startup to speed up the development of a core technology that is generally applicable to other customers, it would seem far more worthy of consideration but beware our human ability to rationalize (first and foremost to ourselves).

These projects more often end up as bespoke development engagements where despite the initial intention, the startup is producing a custom application for the big co. Founders will rationalize the deviations from their product roadmap, but ultimately sell out their future for a long-shot opportunity to integrate with a worldwide leader.

My advice is to not think magically about product/market fit, and instead, to try pre-selling it to other customers as a form of market development. If you can sell the product, great! If not, you’re probably using venture capital to subsidize the R&D budget of a company worth hundreds of billions of dollars.

What happens if this doesn’t work out? It’s easy to visualize success, but what happens if the deal doesn’t lead anywhere? In this scenario, imagine the big tech company decides to change its priorities and abandons the initiative. SaaS startups face a similar failure mode when they go to great lengths to impress big companies during pilot programs only to see their project die due to lack of interest. When considering a high-risk, high-reward partnership, founders need to spend time envisioning a gruesome demise.

● What will your pitch be for a bridge round of financing when you have no revenue, you just came up short during a prolonged engagement with the best possible customer in your industry?

● How will you reassure your most talented team members that you know what you’re doing when the deal fails, and capital is running short?

● How quickly can you reorient the company to focus on other customers and how quickly will you start generating revenue from them?

Image courtesy of Flickr/Felipe Campos

How well do you understand the Big Company? Founders with little exposure to big companies are susceptible to misreading cues. My partner Eric Paley wrote about how entrepreneurs regularly misread their likelihood of getting funding from VCs, and the pattern is similar with this kind of business development deal.

When I started an ISP in South Africa in the 1990s, I had the chance to pitch the executive team at the country’s equivalent to Walmart . We were talking about the upcoming Olympic Games, which they were sponsoring. I asked if they were bringing their biggest customers to the events. One of the VPs looked at me, bewildered, and said: “Your mother may well be our biggest customer.”

I instantly realized they didn’t have big customers; they were a big customer. Their suppliers took them to the Games and fancy dinners. I felt silly at the moment but learned a valuable lesson about B2B power dynamics. Here are some other dynamics to be cautious of:

Are You Aware of the Work Pace Differential?

Startups measure their survival quarter to quarter while big companies plan in five-year increments. It’s often shocking how slowly big company partners move on everything from email to product roll-outs. Decisions made by gut feel at startups have to navigate a maze of meetings and committees at a big company. Startups often drown in the number of process leviathans require to make the smallest of improvements.

Who are the Internal Champions?

Promising projects can die on the vine because the internal champion gets reassigned or leaves the company. Successful partnerships will involve multiple high-level people from the larger organization. They also typically involve the startup being paid a fair market rate or are paired with a strategic investment to help defray the burden of non-recurring expenses. If not, beware.

Most sponsors will say their project is critical to the company, but it’s the startups CEO’s job to check that out. Founders should reference the opportunity in the same way they would reference an investor. This kind of deal is often an all or nothing bet on your company, don’t make it too blithely.

Is the Project a Priority for the CXO/VP?

Partnerships between startups and big companies work best when it solves the problem of a VP or CXO level executive. Below that level, we’ve seen startups spend large sums and risk their future on what amounts to a proof of concept project for a mid-level director with no real juice.

This is especially common with startups who sell to retailers. Theoretically, the brick and mortar shops need a bulwark against Amazon, but in reality, we’ve seen many of them default to more focused on protecting their physical retail turf rather than truly investing in online sales. They’ll run pilots to assure investors that they have their eye on the future when in reality the efforts are more PR than a business plan.

Do you Understand Big Company Logic?

A $20M investment to a small startup is a massive deal. For a big company, it’s essentially the size of an acquihire and can be shut down with no repercussions. In the context of a half-billion dollar company, $20M bets actually fail far more than a startup may appreciate.

Are you competing with another startup?

Is this project a “bake-off” where multiple companies are competing? The most dangerous kind of whale hunting is when a startup is competing with one or more competitors to win a large book of business. Founders considering this kind of arrangement should give serious thought to skipping the process and building out a less concentrated revenue base with fewer impediments while your competitors fight to the death.

Do you have a deep bench of vetted candidates ready to be hired? Founders often underestimate the challenge of growing 3-5X in short order. Every successful startup has to do this, but it usually happens more organically over time. The kind of business development deal our portfolio CEO is considering will change the company overnight.

Entrepreneurs need to ask if they have a long list of former co-workers, peers, vetted candidates eager to join their company? If not, massively scaling the company to meet the demands of a major partner will likely lead to sub-par hires to fill an urgent need while slowly poisoning the company’s culture. Money is rarely the most challenging part of hiring. Hiring fast when you control your destiny is hard enough, doing so in an uncertain arrangement can be very detrimental.

Beyond hiring, it’s important to view a partnership through the lens of Activity Based Costing.

How much time will this take up? 50%? 80%? More? Will you have to drop existing customers or products to make the project work? Are you still able to grow the business outside of this partnership or is it genuinely all-consuming?

Are You Ready for the Hunt?

If you can answer these questions confidently, then you may be ready to go whale hunting. When these projects work, they can be the first domino in a cascade that leads to growth and good places. More often, it results in a startup spending a year and a large chunk of its capital on a high-risk business development deal that more often fails to pan out. Chart your course accordingly.


Source: TechCrunch

Messenger Kids rolls out passphrases so kids can initiate friend requests themselves

Facebook is making it easier for kids to add their friends on its under-13 chat app, Messenger Kids. Starting today, the company is rolling out a new feature that will allow kids to request parents’ approval of new contacts. To use the feature, parents will turn on a setting that creates a four-word passphrase that’s used generate these contact requests, the company says.

Parents can opt to use this feature, which is not on by default.

Once enabled, Facebook will randomly generate a four-word phrase that’s uniquely assigned to each child. When the child wants to add a friend to their app’s contacts list in the future, they will show this phrase to the friend to enter in their own app.

Both parents will then receive a contact request from their child – and both have to approve the request before the kids can start chatting. In other words, this doesn’t represent a loosening of the rules around parental approvals – all contact requests still require parents’ explicit attention and confirmation, as before.

However, it does make it easier for kids to friend one another when their parents aren’t Facebook friends themselves. That’s been an issue with the app for some time, and one Facebook first started to address in May when it made a change that finally no longer required parents to be friends, too.

While most parents will at least want to know who their child is texting with, there are plenty of times when parents are friendly with someone on a more casual basis – like through the child’s school or their extracurricular activities. But just because two people are neighbors or fellow soccer moms and dads, that doesn’t necessarily mean they’re also Facebook friends.

The change introduced in May allowed parents to do a search for the child’s friend’s parents, then invite them to the app so the kids could connect. But this still required parents to take the initial steps (at the urging of the child, of course). It was also confusing at times, we found when we tried it for ourselves – some parents we connected with couldn’t figure out how the approval process worked, for example.

That being said, it may have helped to give the app’s install base a big boost, along with its expansion outside the U.S. According to data from Sensor Tower, Messenger Kids saw a sizable increase in installs in the beginning of early June and it has just now passed 1.4 million downloads across both iOS and Android. In addition, its daily downloads are around 3x what they were at the end of May.

The passphrase solution will make things a bit easier on parents, because contact requests will be initiated by the kids. Parents will only have to tap a big “Approve” button to confirm the request (or deny it, if the request is inappropriate for some reason.)

The four-word passphrase will only be visible to the child in the Messenger Kids app, and to the parent in their Parent’s Portal.

It’s worth noting that Facebook opted for a passphrase instead of a scannable QR code, as is common in other messaging apps including Facebook Messenger, Snapchat and Twitter, for instance. Facebook says this is so kids can exchange the passphrase without the device being present.

Messenger Kids is a controversial app, but its adoption is growing, the data indicates. Parents have been starved for an app like this – one allowing for conversation monitoring (you just install your own copy) and contact approvals. Whether this will actually indoctrinate a new generation of Facebook or Messenger users is more questionable. It’s likely that when kids outgrow Messenger Kids, they’ll still be switching over to Facebook’s Instagram and Snapchat instead.

The passphrase feature is rolling out starting today on the Messenger Kids mobile app.


Source: TechCrunch

Observe.AI raises $8M to use artificial intelligence to improve call centers

Being stuck on the phone with call centers is painful. We all know this. Observe.AI is one company that wants to make the experience more bearable, and it’s raised $8 million to develop an artificial intelligence system that it believes will do just that.

The funding round was led by Nexus Venture Partners, with participation from MGV, Liquid 2 Ventures and Hack VC. Existing investors Emergent Ventures and Y Combinator also took part — Observe.AI was part of the YC’s winter 2018 batch.

The India-U.S. startup was founded last year with the goal of solving a very personal problem for founders Swapnil Jain (CEO), Akash Singh (CTO) and Sharath Keshava (CRO): making call centers better. But, unlike most AI products that offer the potential to fully replace human workforces, Observe.AI is setting out to help the humble customer service agent.

The company’s first product is an AI that assists call center workers by automating a range of tasks, from auto-completing forms for customers to guiding them on next steps in-call and helping find information quickly. Jain told TechCrunch in an interview that the product was developed following months of consultation with call center companies and their staff, both senior and junior. That included a stint in Manila, one of the world’s capitals for offshoring customer services and a city well known to Keshava, who helped healthcare startup Practo launch its business in the Philippines’ capital.

That effort to know call center operates directly has also shaped how Observe.AI is pitching its services. Rather than going to companies, it is tapping the root of the tree by offering its services to the call centers who manage customer support for well-known businesses behind the curtain. Uber, for example, is one of many to use Philippines-based support centers, but the Observe.AI thesis is that going directly to the source is easier than navigating large companies for business.

One such partner is Concentrix, one of the world’s largest customer support providers with over 100,000 staff and offices dotted around the globe, while the startup said it has tapped Philippines telco PLDT for infrastructure.

In addition to helping understand the problems and generating business, working directly with these companies also gives Observe.AI access to and use of data, which is essential for developing any AI and natural language processing-based systems.

Beyond improving its customer service assistant — which Jain likens to an ‘Alexa for call centers’ — Observe.AI is working to develop a virtual assistant of its own that can handle the more basic and repetitive calls from customers to help free up agents for callers who need a human on the other end of the line.

“We aim to eventually automate a large part of the call center experience,” Jain explained in an interview. “A good set [of customer calls] are complex but a large set can be fairly automated as they are simple in nature.”

The startup is aiming to introduce ‘voicebots’ before March 2020, with a beta launch targeted at the end of 2019.

“The kind of company that will disrupt call centers will come from the east — we truly understand the call center life,” Jain told TechCrunch.

He explained that, while Silicon Valley is a hotbed for tech development, understanding the problems that need to be solved requires spending time in markets like India and the Philippines.

“That knowledge is super, super valuable… someone in the U.S. can’t even think about it,” he added.

That said, Observe.AI is headquartered in the U.S., in Santa Clara. That’s where Keshava, the company CRO, is based with a growing team that is dedicated pre- and post-sales and to building relationships with major software platforms used by call center companies. The idea with the latter is that they can provide an avenue into new business by working with Observe.AI to add AI smarts to their product.

In one such example, Talkdesk, a U.S. startup that offers cloud-based contact center services, has added Observe.AI’s services to what it offers to its customers. Talkdesk CEO Tiago Paiva called the addition “a huge opportunity for call center efficiency and improving the caller experience.”

The startup’s India-based team is Bangalore and it handles technology, which includes the machine learning component. Total headcount is 16 people right now but the founding team expects that will at least double before the end of this year.


Source: TechCrunch

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427