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

Archivo del Autor: Belen De Leon

Digital Trends Live: Google I/O Conference preview, Android Q, and more

On this episode of DT Live, we discuss midrange Pixel devices, a Microsoft Build ’19 recap, Alexa’s rollout into 60,000 devices, Samsung’s cancellation of the Fold, and a preview of the live Google I/O watch party.

The post Digital Trends Live: Google I/O Conference preview, Android Q, and more appeared first on Digital Trends.


Source: Digital trends

China's Scientists Are the New Kids on the Arctic Block

Secretary of State Mike Pompeo berated China this week for using its growing Arctic research program as a Trojan horse for its military and commercial goals.
Source: Wired

Waymo and Lyft partner to scale self-driving robotaxi service in Phoenix

Waymo is partnering with Lyft to bring self-driving vehicles onto the ride-hailing network in Phoenix as the company ramps up its commercial robotaxi service.

Waymo will add 10 of its self-driving vehicles onto Lyft platform over the next few months, according to CEO John Krafcik. Once Waymo vehicles are on the platform, Lyft users in the area will have the option to select a Waymo directly from the Lyft app for eligible rides.

“This first step in our partnership will allow us to introduce the Waymo Driver to Lyft users, enabling them to take what for many will be their first ride in a self-driving vehicle,” Krafcik said in a blog posted Tuesday.

The companies didn’t provide further details about the partnership, but it appears to be similar to Lyft’s relationship with Aptiv, the U.S. auto supplier and self-driving software company. Under that partnership, Aptiv’s self-driving vehicles operate on Lyft’s ride-hailing platform in Las Vegas. As of April 2019, the vehicles had provided more than 40,000 paid autonomous rides in Las Vegas via the Lyft app.
Waymo has been ramping up its autonomous ride-hailing network in Phoenix for months now. In April, the company made its ride-hailing service, and accompanying app, Waymo One more widely available by putting it on the Google Play store.

The company, which spun out to become a business under Alphabet, launched Waymo One in the Phoenix area in December. The Waymo One self-driving car service, and accompanying app, was only available to Phoenix residents who were part of its early rider program, which aimed to bring vetted regular folks into its self-driving minivans.


Source: TechCrunch

Google’s big VR news is that there is no VR news

Google seems to be waking up from its VR daydream. The company’s ambitious plans to leverage the smartphones that people already own to power VR experiences went unmentioned at its I/O developer conference.

After spending 2016 and 2017 making big promises for how the company would shape the mobile VR market and ensure that its Daydream platform would dominate, Google has largely abandoned its plans letting the headsets gather dust and its VR content in the Play Store.

The only virtual reality news to emerge is that the company’s newest Pixel smartphones won’t support the company’s own VR platform, The Verge reports.

The company released two generations of Daydream View headsets for its mobile platform in 2016 and 2017 but there were no updates last year and not a single onstage mention of the platform or headset this year.

Google detailed plans during a dedicated VR I/O 2017 keynote to bring standalone devices to market via partnerships with HTC and Lenovo. HTC ended up bailing on the program, and after Lenovo released its Mirage Solo device long after estimated, Google failed to bring updates and prioritize bringing content that leveraged the new WorldSense tracking tech. The company is now largely pitching the device as a developer kit, though one wonders what exactly they’re developing for.

Facebook’s VR arm Oculus has announced and released two standalone VR headsets since Google last announced new VR hardware onstage at an event.

“On the VR front, our focus right now is much more on services and the bright spots where we see VR being really useful,” Google VR/AR head Clay Bavor told CNET in an interview, noting that they are still experimenting with hardware.


Source: TechCrunch

Lyft lost $1.14B in Q1 2019 on $776M in revenue

In its first-ever earnings report as a public company, Lyft (NASDAQ: LYFT) failed to display progress toward profitability.

The ride-hailing business, which raised $2 billion in a March initial public offering, posted first-quarter revenues of $776 million on losses of $1.14 billion, including $894 million of stock-based compensation and related payroll tax expenses. The company’s earnings surpassed Wall Street estimates of $740 million in revenue on $274.1 million, or $3.77 a share, in losses.

Lyft began rising in after-hours trading as a result.

“The first quarter was a strong start to an important year, our first as a public company,” Lyft co-founder and chief executive officer Logan Green said in a statement.  “Our performance was driven by the increased demand for our network and multi-modal platform, as Active Riders grew 46 percent and revenue grew 95 percent year-over-year. Transportation is one of the largest segments of our economy and we are still in the very early stages of an enormous secular shift from personal car ownership to Transportation-as-a-Service.”

The company said adjusted net losses came in at $211.5 million compared to $228.4 million in the first quarter of 2018. Next quarter, Lyft expects revenue of more than $800 million on adjusted EBITDA losses of between $270 million and $280 million. For the entire year, Lyft projects roughly $3.3 billion in total revenue on EBITDA losses of about $1.2 billion.

Lyft was the first of a cohort of venture-backed ‘unicorns,’ including Pinterest, Zoom and soon, Uber — which will make its long-overdue debut on the New York Stock Exchange later this week — to complete a public offering in 2019. Despite a sizeable IPO pop, Lyft shares have only sunk since its first appearance on the Nasdaq. Lyft hit a share price of $87 on its first day of trading, up from a $74 IPO price. However, in the weeks post-IPO its floated closer to the $60 mark, closing Tuesday down 2 percent at $59.41.

Lyft has never posted a profit and its founders John Zimmer and Green have made it clear they expect to invest in the company’s growth for the next several years as it expands its multimodal offerings and ultimately launches operations overseas.

“The road ahead represents a massive opportunity to serve our communities and drive value for our stockholders, Lyft’s co-founders wrote in the company’s IPO prospectus. “We take this responsibility to serve our communities and stockholders seriously, and we look forward to proving that with actions and results. If we told you we were building the world’s best canal, railroad or highway infrastructure, you’d understand that this would take time. In that same light, the opportunity ahead requires continued long-term thinking, focus and execution.”

This story is updating.


Source: TechCrunch

At Google I/O 2019, Google Announces Pixel 3a, Android Q, and More

The company rolled out an improved Assistant, some new phones, and updated Android OS, among other things, at its annual developers conference.
Source: Wired

Kotlin is now Google’s preferred language for Android app development

Google today announced that the Kotlin programming language is now its preferred language for Android app developers.

“Android development will become increasingly Kotlin-first,” Google writes in today’s announcement. “Many new Jetpack APIs and features will be offered first in Kotlin. If you’re starting a new project, you should write it in Kotlin; code written in Kotlin often mean much less code for you–less code to type, test, and maintain.”

It was only two years ago at I/O 2017 that Google announced support for Kotlin in its Android Studio IDE. That came as a bit of a surprise, given that Java had long been the preferred language for Android app development, but few announcements at that year’s I/O got more applause. Over the course of the last two years, Kotlin’s popularity has only increased. More than 50% of professional Android developers now use the language to develop their apps, Google says, and in the latest Stack Overflow developer survey, it ranks as the fourth-most loved programming language.

With that, it makes sense for Google to increase its Kotlin support. “We’re announcing that the next big step that we’re taking is that we’re going Kotlin-first,” Chet Haase, Chief Advocate for Android, said.

“We understand that not everybody is on Kotlin right now, but we believe that you should get there,” Haase said. “There may be valid reasons for you to still be using the C++ and Java programming languages and that’s totally fine. These are not going away.”


Source: TechCrunch

Google now lets developers build games for its smart displays

At its I/O developer conference, Google today announced that it is opening up its Smart Display platform to developers. Until now, there was no real way for developers to target devices like the newly-renamed Nest Hub. Only Google’s own first-party services got full access to the display. Now, however, Developers will be able to start developing Google Assistant actions for these displays, starting with games.

I wouldn’t expect that we’ll see very complex and highly-graphical games on smart displays, but this is a good surface for word games or similar casual games. We are talking about relatively low-end hardware, after all. The fact that the games are based on HTML, CSS and JavaScript also enforces some limits to what developers can do with this platform. Given that Google itself is now using its Flutter multi-platform framework to build some of its own smart display experiences, chances are that developers, too, will be able to bring their games to these devices in the same way, too.

To enable this, Google is launching Interactive Canvas, a new API that allows developers to create full-screen experiences. This will actually work across Android and smart displays.

Over time, the company plans to open up the smart display platform to other third-party experiences as well. When exactly that will happen remains to be seen, though. The only timeline Google is committing to is ‘soon.’


Source: TechCrunch

Google launches new Assistant developer tools

At its I/O conference, Google today announced a slew of new tools for developers who want to build experiences for the company’s Assistant platform. These range from the ability to build games for smart displays like the Google Home Hub and the launch of App Actions for taking users from an Assistant answer to their native apps, to a new Local Home SDK that allows developers to run their smart home code locally on Google Home Speakers and Nest Displays.

This Local Home SDK, may actually be the most important announcement in this list, given that it turns these devices into a real hardware hub for these smart home devices and provides local compute capacity without the round-trip to the cloud. The first set of partners include Philips, Wemo, TP-Link and LIFX, but the SDK will become available to all developers next month.

In addition, this SDK will make it easier for new users to set up their smart devices in the Google Home app. Google tested this feature with GE last October and is now ready to roll it out to additional partners.

Developers who want to take people from the Assistant to the right spot inside of their native apps, Google announced a preview of App Actions last year. Health and fitness, finance, banking, ridesharing and food ordering apps can now make use of these built-in intents. “If I wanted to track my run with Nike Run Club, I could just say ‘Hey Google, start my run in Nike Run Club’ and the app will automatically start tracking my run,” Google explains in today’s announcement.

For how-to sites, Google also announced extended markup support that allows them to prepare their content for inclusion in Google Assistant answers on smart displays and in Google Search using standard schema.org markup.

You can read more about the new ability to write games for smart displays here, but this is clearly just a first step and Google plans to open up the platform to more third-party experiences over time.


Source: TechCrunch

Google launches Jetpack Compose, an open-source, Kotlin-based UI development toolkit

Google today announced the first preview of Jetpack Compose, a new open-source UI toolkit for Kotlin developers who want to use a reactive programming model similar to what React Native and Vue.js.

Jetpack Compose is an unbundled toolkit that is part of Google’s overall Android Jetpack set of software components for Android developers, but there is no requirement to use any other Jetpack components. With Jetpack Compose, Google is essentially bringing the UI-as-code philosophy to Android development. Compose’s UI components are fully declarative and allow developers to create layouts by simply describing what the UI should look like in their code. The Compose framework will handle all the gory details of UI optimization for the developer.

Developers can mix and match the Jetpack Compose APIs and view with those based on Android’s native APIs. Out of the box, Jetpack Compose also natively supports Google’s Material Design.

As part of today’s overall Jetpack update, Google is also launching a number of new Jetpack components and features. These range from support for building apps for Android for Cars and Android Auto to an Enterprise library for making it easier to integrate apps with Enterprise Mobility Management solutions and built-in benchmarking tools

The standout feature, though, is probably CameraX, a new library that allows developers to build camera-centric features and applications that gives developers access to essentially the same features as the native Android camera app.


Source: TechCrunch

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458