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

Archivo del Autor: Belen De Leon

The definitive Niantic reading guide

In just a few years, Niantic has evolved from internal side project into an independent industry trailblazer. Having reached tremendous scale in such a short period of time, Niantic acts as a poignant crash course for founders and company builders. As our EC-1 deep-dive into the company shows, lessons from the team’s experience building the Niantic’s product offering remain just as fresh as painful flashbacks to the problems encountered along the way.

As we did for our Patreon EC-1, we’ve poured through every analysis we could find on Niantic and have compiled a supplemental list of resources and readings that are particularly useful for getting up to speed on the company.

Reading time for this article is about 9.5 minutes. It is part of the Extra Crunch EC-1 on Niantic. Feature illustration by Bryce Durbin / TechCrunch.

I. Background: The Story of Niantic

Google-Incubated Niantic, Maker of Ingress, Stepping Out on Its Own | August 2015 | In August of 2015, Niantic announced that it would spin out from Google and become an independent company. As discussed in WSJ’s coverage of the news, Niantic looked at the spin out as a way to accelerate growth and collaborate with the broader entertainment ecosystem.


Source: TechCrunch

Netflix partners with Sirius XM on new comedy channel, ‘Netflix is a Joke’

For the first time, Netflix is making its content available to another subscription media service. The company announced today it will bring segments from its popular stand-up specials, plus other original content, to Sirius XM’s new comedy station called “Netflix is a Joke,” beginning on April 15, 2019.

The station will be offered on Sirius XM’s Channel 93, and will offer highlights from Netflix stand-up specials, comedy talk shows, and other original programming, says Netflix.

This includes content from big names like Adam Sandler, Aziz Ansari, Bill Burr, Chris Rock, Dave Chappelle, Ellen DeGeneres, Gabriel Iglesias, Jerry Seinfeld, John Mulaney, Ken Jeong, Ricky Gervais, Sarah Silverman, Sebastian Maniscalco, Trevor Noah, Wanda Sykes, and others.

The channel will also introduce its own original daily show, filmed at Sirius XM’s new L.A. studios, where famous celebs and comedians will drop by to discuss pop culture and other hot topics of the day.

The deal with Sirius XM represents a notable milestone for Netflix, as it’s hasn’t before partnered with another subscription-based media company to reach a new audience with its content. It likely chose to do so in this case because Sirius XM isn’t a direct competitor. Plus, the radio platform could serve to promote Netflix’s programming to a valuable target demographic – those willing to pay for access to original content.

In addition to the clips and segments from Netflix shows, Sirius XM listeners will also be the first to hear new material from top comics, before their Netflix specials launch on the streaming service.

“Netflix Is A Joke Radio on SiriusXM will be an audio extension of our award-winning stand-up comedy on Netflix,” said Netflix Chief Content Officer Ted Sarandos, in a statement. “We are thrilled to feature some of the greatest and funniest performers in the world with highlights from Netflix shows as well as original programming that further celebrates the art of comedy, and we are excited to do this in partnership with SiriusXM.”

The channel is now one of several comedy stations offered on Sirius XM, along with Kevin Hart’s Laugh Out Loud Radio Channel, Comedy Central Radio, Raw Dog Comedy, Jeff & Larry’s Comedy Roundup, and Sirius XM Comedy Greats, among others.

It also arrives shortly after Sirius XM announced another new station to capitalize on its Pandora merger: Pandora NOW, the first station to stream across both services.

Similarly, the new Netflix station will also stream content that’s available elsewhere. That’s a bit of a shift from Sirius XM’s earlier model where it focused largely on exclusives, to one that acknowledges the power another big-name brand can bring to its service.

“SiriusXM is delighted to become the audio home for Netflix’s blockbuster comedy programming,” said Scott Greenstein, President and Chief Content Officer, SiriusXM, in a release. “Netflix has established itself as the unrivaled video source for stand-up, attracting the biggest names in the industry as well as break-out newcomers, and we’re eager to deliver SiriusXM subscribers access to their star-studded library, new specials, and original live shows,” he added.


Source: TechCrunch

The 6 most important announcements from Google Cloud Next 2019

Google is hosting its annual Cloud Next developer conference in San Francisco this week. While the event is still in full swing, with a mystery concert capping off most of the programming tonight, the flood of news has now subsided, so here is our list of the most important announcements from the event.

Anthos

What is it? Anthos is the new name of the Google Cloud Services Platform, Google’s managed service for allowing enterprises to run applications in their private data center and in Google’s cloud. Google decided to give the service a new name, Anthos, but also expanded support to AWS and Azure, its competitors’ cloud platforms. This will allow enterprises to use a single platform, running on Google’s cloud, to deploy and manage their applications on any cloud. Enterprises will get a single bill and have a single dashboard to manage their applications. All of this, unsurprisingly, is powered by containers and Kubernetes.

Why does it matter? It’s still highly unusual for the big cloud competitors to launch a product that allows users to run applications on other platforms. The money, after all, is in charging fees for compute time and storage allocations. Google argues that this is something its customers want and that it solves a real problem. Google, however, is also chasing its competitors and looking for ways to differentiate its approach from them. I don’t think we’ll see AWS and Azure react with similar tools, but if they do, it’s a good thing for their customers.

Open-source integrations into the Google Cloud Console

What is it? Google announced that it would deeply integrate the products of a number of open-source companies into its cloud and essentially make them first-party services. These partners are Confluent, DataStax, Elastic, InfluxData, MongoDB, Neo4j and Redis Labs, with others likely to follow over time.

Why does it matter? These integrations are a boon for Google Cloud customers who are likely already using some of these services. They’ll get a single bill and access to support from these companies, all while managing the services from a single console. The subtext here, though, is a bit more complicated and reveals Google’s approach to open source and puts it into contrast with AWS. Many of the companies that are participating here are highly critical of AWS’s treatment of open source and quite public about it. Google is working with them while the perception is that AWS simply uses the code and doesn’t give back.

Google’s AI Platform

What is it? Google sees its AI prowess as one of its main differentiators in its fight against AWS, Azure and Co. The company already offered a wide range of AI tools, ranging from developer tools and services for advanced data scientists to AutoML, a service that can automatically train models and doesn’t require a PhD. The new AI Platform offers an end-to-end solution for more advanced developers that allows them to go from ingesting data to training and testing their models, to putting them into production. The platform can also use pre-built models.

Why does it matter? AI (and machine learning) is the major focus for all big cloud providers, but the developer experience leaves lots of room for improvement. Having an end-to-end solution is obviously a major step forward here and opens up the promise of machine learning to a wider range of potential users.

Your Android phone is now a security key

What is it? Instead of using a physical security key to enable two-factor authentication, you’ll now be able to use any Android 7+ phone as a security key, too. You set it up in your Google Account and your phone will then use Bluetooth (but without the hassle of creating a Bluetooth connection) to provide your second factor. For now, this only works with Chrome, but Google hopes to turn this into a standard that other browsers and mobile operating system vendors will also support. Google also recommends you still use a regular key as a backup for that inevitable day when you lose your phone.

Why it matters? Two-factor authentication is inherently safer than just using a login and password. Systems that use SMS and push-notifications are still vulnerable to phishing attacks while security keys — and this new Android-based system uses the same standards as existing keys — prevent this by ensuring that you are on a legitimate site. This new system takes the hassle out of using a physical key and may just convince more people to use two-factor authentication.

Google Cloud Code

What is it? Cloud Code is a set of plugins and extensions for popular IDE’s like IntelliJ and VS Code. The general idea here is to provide developers with all of the necessary tools to build cloud-native applications — all without having to deal with any of the plumbing work and configuration that comes with that. Using Cloud Code, developers can simply write their applications like before, but then package them as cloud-native apps and ship them to a Kubernetes cluster for testing or production.

Why does it matter? Writing cloud-native apps is complicated and usually involves writing complex configuration files. Cloud Code ideally makes all of this so easy that it’ll be far easier for developers — and the companies that employ them — to make this move to a modern infrastructure.

Google Cloud aims at retailers

What is it? The news here is that Google is launching a vertical solution that’s squarely aimed at retailers. That doesn’t sound all that earth-shattering, does it? But Google Cloud plans to offer more of these specialized solutions over time.

Why does it matter? Google Cloud CEO Thomas Kurian told us that customers are asking for these kinds of integrated solutions that package some of the companies existing tools into integrated solutions that these enterprises can deploy. This is essentially the first time it is doing so (with maybe the exception of healthcare), but it’ll likely offer more of these over time and they could become a major factor in growing the platform’s user base.

Bonus

We also got a chance to sit down with Google Cloud’s new CEO Thomas Kurian to put some of the announcements into context and talk about his vision for Google Cloud going forward.

 


Source: TechCrunch

Apple to break apart iTunes in MacOS, introduces music, podcasts, and TV apps

With the next release of MacOS, Apple is rumored to distribute iTunes’ multitude of tasks and features across separate apps including music, podcasts, and TV. The new applications will likely be based on Apple’s Marzipan technology.

The post Apple to break apart iTunes in MacOS, introduces music, podcasts, and TV apps appeared first on Digital Trends.


Source: Digital trends

Acer Chromebook 514 review

Acer’s Chromebook 514 is a workhorse laptop that doesn’t even try to show off. It’s well-built, adequately equipped, and lasts a long time on a charge – making it worth its $500 price.

The post Acer Chromebook 514 review appeared first on Digital Trends.


Source: Digital trends

How to stop robocalls spamming your phone

No matter what your politics, beliefs, or even your sports team, we can all agree on one thing: robocalls are the scourge of modern times.

These unsolicited auto-dialed spam calls bug you dozens of times a week — sometimes more — demanding you “pay the IRS” or pretend to be “Apple technical support.” Even the now-infamous Chinese embassy scam, recently warned about by the FBI, has gained notoriety. These robocallers spoof their phone number to peddle scams and tricks — but the calls are real. Some 26 billion calls in 2018 were robocalls — up by close to half on the previous year. And yet there’s little the government agency in charge — the Federal Communications Commission — can do to deter robocallers, even though it’s illegal. Although the FCC has fined robocallers more than $200 million in recent years but collected just $6,790 because the agency lacks the authority to enforce the fines.

So, tough luck — it’s up to you to battle the robocallers — but it doesn’t have to be a losing battle. These are the best solutions to help keep the spammers at bay.

YOUR CARRIER IS YOUR FIRST CALL

Any winds of change will come from the big four cell giants: AT&T, Sprint, T-Mobile, and Verizon (which owns TechCrunch).

Spoofing happens because the carriers don’t verify that a phone number is real before a call crosses their networks. While the networks are figuring out how to fix the problem — more on that later — each carrier has an offering to help prevent spam calls.

Here are what they have:

AT&T‘s Call Protect app, which requires AT&T postpaid service, provides fraud warnings, and spam call screening and blocking. Call Protect is free for iOS and Android. AT&T also offers Call Protect Plus for $3.99 a month which offers enhanced caller ID services and reverse number lookups.

Sprint lets customers block or restrict calls through its Premium Caller ID service. It costs $2.99 per month and can be added to your Sprint account. You can then download the app for iOS. A Sprint spokesperson told TechCrunch that Android users should have an app preinstalled on their devices.

T-Mobile doesn’t offer an app, but provides a call screening to alert customers to potentially scammy or robocalled incoming calls. (Image: Farknot_Architect/Getty Images)

T-Mobile already lets you know when an incoming call is fishy by displaying “scam likely” as the caller ID. Better yet, you can ask T-Mobile to block those calls before your phone even rings using Scam Block. Customers can get it for free by dialing #662# from your device.

Verizon‘s Call Filter is an app that works on both iOS — though most Android devices sold through the carrier already have the app preinstalled. The free version detect and filter spam calls, while its $2.99 a month version gives you a few additional features like its proprietary “risk meter” to help you know more about the caller.

There are a few caveats you should consider:

  • These apps and services won’t be a death blow to spam calls, but they’re meant to help more than they hurt. Your mileage may vary.
  • Many of the premium app features — such as call blocking — are already options on your mobile device. (You can read more about that later.) You may not need to pay even more money on top of your already expensive cellular bill if you don’t need those features.
  • You may get false positives. These apps and services won’t affect your ability to make outbound or emergency calls, but there’s a risk that by using a screening app or service you may miss important phone calls.

WHAT YOU CAN DO

You don’t have to just rely on your carrier. There’s a lot you can do to help yourself.

There are some semi-obvious things like signing up for free to the National Do Not Call Register, but robocallers are not marketers and do not follow the same rules. You should forget about changing your phone number — it won’t help. Within days of setting up my work phone — nobody had my number — it was barraged with spam calls. The robocallers aren’t dialing you from a preexisting list; they’re dialing phones at random using computer-generated numbers. Often the spammers will reel off a list of numbers based off your own area code to make the number look more local and convincing. Sometimes the spoofing is done so badly that there are extra digits in the phone numbers.

Another option for the most annoying of robocalls is to use a third-party app, one that screens and manages your calls on your device.

There are, however, privacy tradeoffs with third-party apps. Firstly, you’re giving information about who calls you — and sometimes who you call — to another company that isn’t your cell carrier. That additional exposure puts your data at risk — we’ve all seen cases of cell data leaking. But the small monthly cost of the apps are worth if it means the apps don’t make money off your data, like serving you ads. Some apps will ask you for access to your phone contacts — be extremely mindful of this.

The three apps we’ve selected balance privacy, cost and their features.

  • Nomorobo has a constantly updated database of more than 800,000 phone numbers which lets the app proactively block against spammy incoming calls while still allowing legal robocalls through, like school closures and emergency alerts. It doesn’t ask for access to your contacts unlike other apps, and can also protect against spam texts. It’s $1.99 per month but comes with a 14-day free trial. Available for iOS and Android.
  • Hiya is an ad-free spam and robocall blocker that powers Samsung’s Smart Call service. Hiya pulls in caller profile information to tell you who’s calling. The app doesn’t automatically ask for access to your contacts but it’s an option for some of the enhanced features, though its privacy policy says it may upload them to its servers. The app has a premium feature set at $2.99 per month after a seven-day trial. Available for iOS and Android.
  • RoboKiller is another spam call blocker with a twist: it has the option to answer spam calls with prerecorded audio that aims to waste the bot’s time. Better yet, you can listen back to the recording for your own peace of mind. The app has more than 1.1 million numbers in its database. The app was awarded $25,000  by the Federal Trade Commission following a contest at security conference Def Con in 2015. RoboKiller’s full feature set can be found on iOS but is slowly rolling out to Android users. The app starts at $0.99 per month. Available for iOS and Android

You may find one app better than another. It’s worth experimenting with each app one at a time, which you can do with their free trials.

WHAT YOUR PHONE CAN DO FOR YOU

There are some more drastic but necessary options at your disposal.

Both iOS and Android devices have the ability to block callers. On one hand it helps against repeat offenders, but on the other it’s like a constant game of Whac-a-Mole. Using your in-built phone’s feature to block numbers prevents audio calls, video calls and text messages from coming through. But you have to block each number as they come in.

How to block spam calls on an iPhone (left) and filter spam calls on Android (right).

Some Android versions are different, but for most versions you can go to Settings > Caller ID & Spam and switch on the feature. You should be aware that incoming and outgoing call data will be sent to Google. You can also block individual numbers by going to Phone > Recents and tapping on each spam number to Block and Report call as spam, which helps improve Google spam busting efforts.

iPhones don’t come with an in-built spam filter, but you can block calls nonetheless. Go to Phone > Recents and tap on the information button next to each call record. Press Block this caller and that number will not be able to contact you again.

You can also use each device’s Do Not Disturb feature, a more drastic technique that blocks calls and notifications from bugging you when you’re busy. This feature for both iOS and Android block calls by default unless you whitelist each number.

How to enable Do Not Disturb on an iPhone (left) and Android (right).

In Android, swipe down from the notifications area and hit the Do Not Disturb icon, a bubble with a line through it. To change its settings, long tap on the button. From here, go to Exceptions > Calls. If you want to only allow calls from your contacts, select From contacts only or From starred contacts only for a more granular list. Your phone will only ring if a contact in your phone book calls you.

It’s almost the same in iOS. You can swipe up from your notifications area and hit the Do Not Disturb icon, shaped as a moon. To configure your notifications, go to Settings > Do Not Disturb and scroll down to Phone. From here you can set it so you only Allow Calls From your contacts or your favorites.

WHAT THE REGULATORS CAN DO

Robocalls aren’t going away unless they’re stamped out at the source. That requires an industry-wide effort — and the U.S. just isn’t quite there yet.

You might be surprised to learn that robocalls aren’t nearly as frequent or as common in the Europe. In the U.K., the carriers and the communications regulator Ofcom worked together in recent years to pool their technical and data sharing resources to find ways to prevent misuse on the cell networks.

Collectively, more than a billion calls have been stopped in the past year. Vodafone, one of the largest networks in Europe, said the carrier prevents around two million automated calls from reaching customers each day alone.

“In the U.K., the problem has been reduced by every major operator implementing techniques to reject nuisance calls,” said Vodafone’s Laura Hind in an email to TechCrunch. “These are generally based on evidence from customer complaints and network heuristics.”

Though collaboration and sharing spam numbers is important, technology is vital to crushing the spammers. Because most calls nowadays rely in some way on voice-over-the-internet, it’s easier than ever to prevent spoofed calls. Ofcom, with help from privacy regulator the Information Commissioner’s Office, plans to bring in technical solutions this year to bring into effect caller authentication to weed out spoofed spam calls.

The reality is that there are solutions to fix the robocall and spammer problem. The downside is that it’s up to the cell carriers to act.

Federal regulators are as sick of the problem as everyone else, ramping up the pressure on the big four to take the situation more seriously. Earlier this year, the Federal Communications Commission chairman Ajit Pai threatened “regulatory intervention” if carriers don’t roll out a system that properly identifies real callers.

One authentication system would make call spoofing nearly impossible, known as Secure Telephone Identity Revisited and Signature-based Handling of Asserted Information Using Tokens — or STIR/SHAKEN. The system relies on every phone number having a unique digital signature which, when checked against the cell networks will prove you are a real caller. The carrier then approves the call and patches it through to the recipient. This happens near-instantly.

The carriers have so far promised to implement the protocol, though the system isn’t expected to go into effect across the board for months — if not another year. So far only AT&T and Comcast have tested the protocol — with success. But there is still a way to go.

Until then, don’t let the spammers win.

Cybersecurity 101 - TechCrunch


Source: TechCrunch

How to upgrade your PS4 hard drive

SSDs are much faster than mechanical hard drives, which is what the PlayStation 4 and PlayStation 4 Pro come with. Here, we show you how to replace it with an SSD, which will allow you to boot to the OS faster and load games quicker.

The post How to upgrade your PS4 hard drive appeared first on Digital Trends.


Source: Digital trends

House Endorses Net Neutrality, but the Outlook Remains Dim

The House voted largely along party lines to restore the FCC’s net neutrality rules, but the measure faces opposition in the Senate and a likely veto by President Trump.
Source: Wired

The first research book written by an AI could lead to on-demand papers

The amount of research that gets published is more than any scholar can hope to keep up with, but soon they may rely on an AI companion to read thousands of articles and distill a summary from them — which is exactly what this team at Goethe University did. You can read the first published work by “Beta Writer” here… though unless you really like lithium-ion battery chemistry, you might find it a little dry.

The paper itself is called, in creative fashion, “Lithium-Ion Batteries: A Machine-Generated Summary of Current Research.” And it is exactly what it sounds like, some 250 pages of this:

The pore structure and thickness of the separator should be carefully controlled, as a satisfactory balance between mechanical strength and ionic electrical conductivity should be kept (Arora and Zhang [40]; Lee and others [33]; Zhang [50]) in order to satisfy these two functions [5]. The pore structure and porosity of the material are clearly quite crucial to the performance of the separator in a battery in addition to the separator material [5].

But as interesting as battery research is, it is only tangential to the actual purpose of this project. The creators of the AI, in an extensive and interesting preface to the book, explain that their intent is more to start a discussion of machine-generated scientific literature, from authorship questions to technical and ethical ones.

In other words, they aim to produce questions, not answers. And questions they have in abundance:

Who is the originator of machine-generated content? Can developers of the algorithms be seen as authors? Or is it the person who starts with the initial input (such as “Lithium-Ion Batteries” as a term) and tunes the various parameters? Is there a designated originator at all? Who decides what a machine is supposed to generate in the first place? Who is accountable for machine-generated content from an ethical point of view?

Having had robust debate already among themselves, their peers, and the experts with whom they collaborated to produce the book, the researchers are clear that this is only a beginning. But as Henning Schoenenberger writes in the preface, we have to begin somewhere, and this is as good a place as any.

Truly, we have succeeded in developing a first prototype which also shows that there is still a long way to go: the extractive summarization of large text corpora is still imperfect, and paraphrased texts, syntax and phrase association still seem clunky at times. However, we clearly decided not to manually polish or copy-edit any of the texts due to the fact that we want to highlight the current status and remaining boundaries of machine-generated content.

The book itself is, as they say, imperfect and clunky. But natural-sounding language is only one of the tasks the AI attempted, and it would be wrong to let it distract from the overall success.

This AI sorted through thousands upon 1,086 papers on this highly technical topic, analyzing them to find keywords, references, takeaways, ” pronominal anaphora,” and so on. The papers were then clustered and organized according to their findings in order to be presented in a logical, chapter-based way.

Representative sentences and summaries had to be pulled from the papers and then reformulated for the review, both for copyright reasons and because the syntax of the originals may not work in the new context. (Experts the team talked to said they should stay as close to the meaning of the original as possible, avoiding “creative” interpretations.)

Imagine that the best sentence from a paper starts with “Therefore, it produces a 24 percent higher insulation coefficient, as suggested by our 2014 paper.”

The AI must understand the paper well enough that it knows what “it” is, and in recasting the sentence, replace “it” with that item, and know that it can do away with “therefore” and the side note at the end.

This has to be done thousands of times and many edge cases pop up where the model doesn’t handle it right or produces some of that admittedly clunky diction. For instance: “That sort of research’s principal aim is to attain the materials with superior properties such as high capacity, fast Li-ion diffusion rate, easy to operate, and stable structure.” Henry James it isn’t, but the meaning is clear.

Ultimately the book is readable and conceivably useful, having boiled down probably ten thousand pages of research to a much more palatable 250. But as the researchers say, the promise is much greater.

The goal here, which doesn’t seem far fetched at all, is to be able to tell a service “give me a 50-page summary of the last 4 years of bioengineering.” A few minutes later, boom, there it is. The flexibility of text means you could also request it in Spanish or Korean. Parameterization means you could easily tweak the output, emphasizing regions and authors or excluding keywords or irrelevent topics.

These and a boatload of other conveniences are inherent to such a platform, assuming you don’t mind a rather stilted voice.

If you’re at all interested in scientific publishing or natural language processing, the preface by the authors is well worth a read.


Source: TechCrunch

The future of MacBook displays? Mini-LED, says a new report

Apple’s next iMacs and MacBooks could ditch LCD retina screens in favor of much more vibrant mini LED panels which offer wider-color gamuts, higher contrast ratios, as well as high-dynamic ranges.

The post The future of MacBook displays? Mini-LED, says a new report appeared first on Digital Trends.


Source: Digital trends

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458