FlyerTalk Forums

FlyerTalk Forums (https://www.flyertalk.com/forum/index.php)
-   Travel Tools (https://www.flyertalk.com/forum/travel-tools-701/)
-   -   KVS Availability Tool (https://www.flyertalk.com/forum/travel-tools/319244-kvs-availability-tool.html)

josephstern Nov 4, 2014 12:43 pm


Originally Posted by KVS (Post 23791100)
...
We do make it clear that the KVS Tool is a Specialized Web Browser application. We do not have "a tool that scrapes the data" and we have no intention of creating one.

Delusional or (im)plausible deniability?

angatol Nov 4, 2014 1:08 pm

I used my Specialized Web Browser(tm) to browse the KVS code and find this interesting string in the flightstats scraper code:
Code:

Scraping Policy
This appears to be when KVS scraping tripped flightstats scraper detection and diverted it to this page:
http://www.flightstats.com/fserror/t...violation.html
Code:

Scraping Policy
Thank you for your interest in FlightStats.

Pursuant to the Terms of Use, scraping our site is forbidden.

The KVS special browser seems to translate that page to this:
Code:

[Engine Error] User Request Limit Has Been Reached.
I would have thought a web browser would show what was on that page?

KVS Nov 4, 2014 1:31 pm


Originally Posted by angatol (Post 23791367)
This appears to be when KVS scraping tripped flightstats scraper detection and diverted it to this page:

Actually, it only appears when a particular user exceeds the website's usage limits.


Originally Posted by angatol (Post 23791367)
I would have thought a web browser would show what was on that page?

Not since the introduction of "Friendly Error Messages" in Internet Explorer 5 back in 1998:
http://Wiki.MetaWerx.net/wiki/FriendlyHTTPErrorMessage

KVS Nov 4, 2014 1:34 pm


Originally Posted by paulwuk (Post 23791177)
What user agent does the web browser present? Or does KVS Availability* Tool pass itself off as a different browser?

We follow the conventional web browser industry practices in that regard:
http://WebAim.org/blog/user-agent-string-history/

paulwuk Nov 4, 2014 1:59 pm


Originally Posted by KVS (Post 23791118)
The term "KVS Availability Tool" dates back to 2004 (and the beginning of this Thread).

The current name, which has been in use for many years now, is KVS Tool, which better reflects the diversity of the Tool's current functionality, including an unsurpassed Award/Upgrade Availability coverage.

http://www.flyertalk.com/forum/membe...ility-tool.png

LatusElAl Nov 4, 2014 3:01 pm


Originally Posted by KVS (Post 23791171)
As noted on the KVS Tool Homepage, Diamond-tier Members can currently access Regular Availability via the KVS Tool Mobile Companion.

What happened to the "Time" field on the mobile companion?

miffSC Nov 4, 2014 3:28 pm


Originally Posted by KVS (Post 23791124)
The [Fares] tab has been restored in the latest version (V7.7.0).

I just upgraded to 7.7.0 and I still don't see the Fares (fare types with the number of seats?) in my KVS tool.

Edit to add:
Nevermind... I just went back and read five pages of the thread. Sad that the main thing I used the tool for (availability) is no longer there.

paulwuk Nov 4, 2014 4:00 pm


Originally Posted by KVS (Post 23791520)
We follow the conventional web browser industry practices in that regard:
http://WebAim.org/blog/user-agent-string-history/

I believe KVSTool sends the following

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Rather than the conventional web browser standard shown on that page linked above, which would be something like


Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.1) KVSTool/7.7.0
If this is indeed the case (and please feel free to provide the actual string you use), surely the tool is fraudulently (done to trick someone for the purpose of getting something valuable) pretending to be a different web browser? It seems the company that provides the KVSTool web browser claims it's a special custom web browser, and it isn't MSIE 6.

If KVSTool isn't trying to hide itself from the servers your clients are using, why wouldn't it identify itself using the standard HTTP UserAgent string?

seawolf Nov 4, 2014 4:32 pm


Originally Posted by paulwuk (Post 23792359)
I believe KVSTool sends the following


Rather than the conventional web browser standard shown on that page linked above, which would be something like



If this is indeed the case (and please feel free to provide the actual string you use), surely the tool is fraudulently (done to trick someone for the purpose of getting something valuable) pretending to be a different web browser? It seems the company that provides the KVSTool web browser claims it's a special custom web browser, and it isn't MSIE 6.

If KVSTool isn't trying to hide itself from the servers your clients are using, why wouldn't it identify itself using the standard HTTP UserAgent string?

To be fair, according to Fiddler, I do believe KVS is sending a KVS specific user agent when I used it to monitor traffic to British Airways.

JIMCHI Nov 4, 2014 4:35 pm


Originally Posted by nux (Post 23779951)
ExpertFlyer does..

Then use it rather than KVS for this purpose.

paulwuk Nov 4, 2014 4:41 pm


Originally Posted by seawolf (Post 23792521)
To be fair, according to Fiddler, I do believe KVS is sending a KVS specific user agent when I used it to monitor traffic to British Airways.

Wasn't the case on the POSTs I was looking at in wireshark, but in that case then I apologise, and then wonder why the whackamole sources can't just block KVSTool.


....
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Accept-Language: en-us
....

zozeppelin Nov 4, 2014 5:51 pm


Originally Posted by paulwuk (Post 23792556)
Wasn't the case on the POSTs I was looking at in wireshark, but in that case then I apologise, and then wonder why the whackamole sources can't just block KVSTool.

Which brings up an interesting observation, a web browser is not a web browser anymore if it is generating its own unique http post requests that are not otherwise available in the accessible http source when accessing the site. At which point you are not passively browsing, you are actively generating server requests.

Such was the case with our Russian fare friends with the "TARIFF" modification in the post string that does not exist anywhere on their website.

But to answer your question, the browser http header can be filled with whatever you want. Could be nothing or could be "User-Agent: KVS 7.5 (Scrapping your sh!t)". The sites have no idea about KVS because the web requests are coming from your computer (IP) and with your unique session information (cookies) at times with your credentials (login id, password). But you do hit on a good point, automatic agents such as this are supposed to follow the robot.txt rules.

I'm guessing if someone was able to put together the evidence for flight stats that the heavy traffic without ad image opening was due to solely to KVS Tool and not a widespread user group (as what it would appear from their server end with all the IPs) then maybe they would reconsider their business decision.

tomh009 Nov 4, 2014 7:43 pm


Originally Posted by zozeppelin (Post 23792816)
But you do hit on a good point, automatic agents such as this are supposed to follow the robot.txt rules.

Except KVS Tool isn't a web robot (which crawls web sites without human intervention). It doesn't do anything at all until a user clicks the "search" button.

javabytes Nov 4, 2014 8:30 pm


Originally Posted by KVS (Post 23791100)
We do make it clear that the KVS Tool is a Specialized Web Browser application. We do not have "a tool that scrapes the data" and we have no intention of creating one.

Nonsense. You are taking the response from the websites and extracting data from it, discarding the site's markup and displaying only the desired data in your own format. That is the very definition of web scraping. Granted, this only occurs every time a user hits the search button, unlike plenty of other scraping applications that collect far more data in a more automated/repetitive fashion. But it is most certainly scraping nonetheless.

Xyzzy Nov 4, 2014 8:53 pm


Originally Posted by javabytes (Post 23793397)
Nonsense. You are taking the response from the websites and extracting data from it, discarding the site's markup and displaying only the desired data in your own format. That is the very definition of web scraping. Granted, this only occurs every time a user hits the search button, unlike plenty of other scraping applications that collect far more data in a more automated/repetitive fashion. But it is most certainly scraping nonetheless.

KVS can protest all he wants but this is at best a grey area of law. There have been quite a number of screen scraping legal cases over the last few years. Some are detailed here. Note that in every one of the airline-data-related cases the :rolleyes:ffending party agreed to stop or was forced to do so. KVS knows this, which is why he hides. It's harder to be served a cease and desist order when nobody knows where you are.

zozeppelin Nov 4, 2014 9:14 pm


Originally Posted by tomh009 (Post 23793220)
Except KVS Tool isn't a web robot (which crawls web sites without human intervention). It doesn't do anything at all until a user clicks the "search" button.

This is semantics. The robots don't crawl until someone instructs them to following your logic. KVS is performing multiple user actions per search and dozens in the case of "power search" with the click of one button. One could call it a glorified macro, but the end result it the same, one human click is doing well above and beyond with http requests regarding what one human click could do otherwise.

zozeppelin Nov 4, 2014 9:21 pm


Originally Posted by Xyzzy (Post 23793477)
KVS can protest all he wants but this is at best a very grey area of law. There have been quite a number of screen scraping legal cases over the last few years. Some are detailed here. Note that in every one of the airline-data-related cases the :rolleyes:ffending party agreed to stop or was forced to do so. KVS knows this, which is why he hides. It's harder to be served a cease and desist order when nobody knows where you are.

Winner. Potential legal ramifications if it is ever admitted publicly, so it won't be. Which results in canned / spotty responses to the softballs and blatantly ignoring the hardballs.

What is really genius about the who operation is that you(!) are the guilty party because it is coming from your IP with your webrequests (as compared to EF or other bloggers apps). The win-win is it doesn't require hosting and bandwidth.

KVS Nov 4, 2014 10:07 pm


Originally Posted by paulwuk (Post 23792359)
Rather than the conventional web browser standard shown on that page linked above

A User Agent string is chosen by the the creator(s) of a web browser, taking into consideration compatibility and other factors, described in the previously-linked article.


Originally Posted by zozeppelin (Post 23792816)
At which point you are not passively browsing, you are actively generating server requests.

Users, who are actively web browsing are "actively generating [web] server requests", by definition.


Originally Posted by tomh009 (Post 23793220)

Originally Posted by zozeppelin (Post 23792816)
But you do hit on a good point, automatic agents such as this are supposed to follow the robot.txt rules.

Except KVS Tool isn't a web robot (which crawls web sites without human intervention). It doesn't do anything at all until a user clicks the "search" button.

Indeed, so far no robots have applied for a KVS Tool Membership, so we do believe that all current KVS Tool users are, in fact, humans.

From http://en.Wikipedia.org/wiki/Robots_exclusion_standard:
"The Robot Exclusion Standard, also known as the Robots Exclusion Protocol or robots.txt protocol, is a convention to advising cooperating web crawlers and other web robots about accessing all or part of a website which is otherwise publicly viewable. Robots are often used by search engines to categorize and archive web sites, or by webmasters to proofread source code."

Originally Posted by zozeppelin (Post 23793555)
One could call it a glorified macro

One could also call it Greasemonkey, Tampermonkey, Scriptify, etc., but this won't turn a browser into a scraper, or a human into a robot.


Originally Posted by javabytes (Post 23793397)
You are taking the response from the websites and extracting data from it, discarding the site's markup and displaying only the desired data in your own format. That is the very definition of web scraping.

Actually, that is the very definition of a web browser, which renders the HTML markup in accordance with its technical capabilities (e.g. graphical or text-only), installed extensions (e.g. ......., NoScript) and user preferences (e.g. images/style sheets/fonts/colors).


Originally Posted by javabytes (Post 23793397)
Granted, this only occurs every time a user hits the search button, unlike plenty of other scraping applications that collect far more data in a more automated/repetitive fashion. But it is most certainly scraping nonetheless.

A web browser does not "collect" any data -- it renders the web page from the HTML format and displays it in a human-readable form (as described above).


Originally Posted by LatusElAl (Post 23792002)
What happened to the "Time" field on the mobile companion?

The current Engine does not support time input, so that field is currently not being displayed to avoid confusion.


Originally Posted by miffSC (Post 23792164)
I just upgraded to 7.7.0 and I still don't see the Fares (fare types with the number of seats?) in my KVS tool.

Regular Availability is currently accessible via the KVS Tool Mobile Companion.

zozeppelin Nov 4, 2014 11:11 pm


Originally Posted by KVS (Post 23793854)
Users, who are actively web browsing are "actively generating [web] server requests", by definition.

Excellent point evasion.

Web browsers are generating requests made available by the sites they are browsing (clicking on links). My point is KVS was generating post requests that were not available to any user browsing p0soshok. Clearly generating custom post requests is something a web browser can't do by definition, because it is browsing what is available, not constructing custom requests of which it should have no knowledge of based on available public information on the website / html - this is a program.

zozeppelin Nov 4, 2014 11:13 pm


Originally Posted by KVS (Post 23793875)
One could also call it Greasemonkey, Tampermonkey, Scriptify, etc., but this won't turn a browser into a scraper, or a human into a robot.

Those are not browsers. Those are scripts/applications that can be used to scrape, amongst other things, which is identical to what KVS is doing.

lingua101 Nov 5, 2014 12:57 am

I am rather disappointed with KVS Tools.

I just renew my Diamond for another year. And there is no warning that I will not get the same services that I have enjoyed for the past 3 years!!!

My requirement is very simple, I just need to check flight availability and timetable. This is the main reason I DO pay for the service.

Now I cannot do this anymore. Well, KVS may argue that I can do it via mobile apps, but this is very hard to read and use.

Should I know that I can no longer get the information needed, why I need to spend USD75 for it.

It seems to me all along the information provided were not from the legitimate sources but I was made to believe that it was, hence I need to pay for it....

fuyao Nov 5, 2014 3:42 am

I think the pages from the last days (or week(s)?) are all about one topic, whether its an appropiate business model (or not) from the creator of KVS to "scrape" / send specific http requests / transform the user inputs into http code / or whatever you want to call it into code and get the exact responses from certain free data providers.
Most users here have realized that it might be a grey area and that by a legal standpoint its not so easy to answer. Unless we have a lawyer here among the FT folks its more like "I'm saying this, you are saying that" back and forth.

In short,
I think we can end the debate whether its legitimite or not how KVS gets the data, users clearly stated their points here and KVS responded, so unless someone wants to press charges, we are good :D

But @KVS, let me be clear, if it is the case (I'm not saying it is) you are creating a product that allows users to break the terms and conditions of web / data / ... providers you MUST inform the users that they are breaking the law by using your tool, otherwise you are breaking the law!

IMH Nov 5, 2014 5:39 am


Originally Posted by fuyao (Post 23794587)
Unless we have a lawyer here among the FT folks

We have quite a few, working in many different fields and jurisdictions. But there's no reason to expect any of them to bring their professional expertise to this thread.


Originally Posted by fuyao (Post 23794587)
I think we can end the debate whether its legitimite or not how KVS gets the data, users clearly stated their points here and KVS responded

Did he? Where?


Originally Posted by fuyao (Post 23794587)
creating a product that allows users to break the terms and conditions of web / data / ... providers [...]

Many products allow me to break the law or circumvent commercial T&Cs. We all own equipment that could be used to break into homes or cause bodily harm.

What's pernicious about the KVS 'tool' is that it does dodgy things behind the scenes without its paying customers knowing (unless they follow this thread, or other similar discussions).

YXSflyer Nov 5, 2014 11:38 am

Is anyone else getting basically useless fare information? When I search it does show a bunch of fares, but it doesn't show the fare bases. You have to click on one randomly and look up the fare rules, after which it'll display the fare code. In other words, it's impossible to know what kind of fare you're looking at before clicking on it, but in two searches (one Canada - Mexico, one Canada - Germany) all it shows were Y fares anyway.

kanada99 Nov 5, 2014 12:35 pm


Originally Posted by KVS (Post 23791171)
As noted on the KVS Tool Homepage, Diamond-tier Members can currently access Regular Availability via the KVS Tool Mobile Companion.

I am Diamond however availibility i am una to search....

andymo99 Nov 5, 2014 6:00 pm


Originally Posted by KVS (Post 23791118)
The term "KVS Availability Tool" dates back to 2004 (and the beginning of this Thread).

The current name, which has been in use for many years now, is KVS Tool, which better reflects the diversity of the Tool's current functionality, including an unsurpassed Award/Upgrade Availability coverage.


Originally Posted by paulwuk (Post 23791671)


Interestingly, my version of the tool (downloaded the latest earlier today) seems to say that it is "KVS Availability Tool."

http://www.flyertalk.com/forum/membe...re9271-kvs.jpg

dshafiee Nov 5, 2014 6:11 pm

So ....
 
Mr. KVS,

I have been a Diamond member for many years and now find this tool to be completely useless.

I am not going to use the Mobile Companion as it is clunky at best.

I have not seen one post from you offering a gesture and/or solution to your PAYING customers.

It appears this tool is up a creek without a certain implement.

Please advise me if I am wrong.

zozeppelin Nov 5, 2014 6:30 pm


Originally Posted by YXSflyer (Post 23796747)
Is anyone else getting basically useless fare information? When I search it does show a bunch of fares, but it doesn't show the fare bases. You have to click on one randomly and look up the fare rules, after which it'll display the fare code. In other words, it's impossible to know what kind of fare you're looking at before clicking on it, but in two searches (one Canada - Mexico, one Canada - Germany) all it shows were Y fares anyway.

Yep, it's garbage. At first I thought it was validating (enforcing adv purchase, min/max duration, fare class availability) but I've ruled that out.

Next mole up?

_____

Corrections:
I messed up assuming rubles but is dinari - fares seem ok.
Does not appear to be validating fares.
As you mention you can send the additional query to get the fare basis. Why this isn't done automatically is interesting, maybe a web browser has limitations?
Appears the routing rules is now not going to KVS but to [redacted], which ironically also isn't working.

qmacker Nov 5, 2014 9:35 pm

No Timetable / only early flights?
 
Sorry if I'm re-posting an earlier question. When i try to do a simple "Timetable" search, for example SFO-ORD, the KVS Tool only shows me the earlier flights in the day, nothing later. Doesn't matter if I change the "Time" field, I still get only the earlier flights in the day.

There are plenty of flights from San Francisco to Chicago departing after 6-10 AM Pacific. Why are they not showing up?

lingua101 Nov 5, 2014 9:39 pm


Originally Posted by dshafiee (Post 23798703)
Mr. KVS,

I have been a Diamond member for many years and now find this tool to be completely useless.

I am not going to use the Mobile Companion as it is clunky at best.

I have not seen one post from you offering a gesture and/or solution to your PAYING customers.

It appears this tool is up a creek without a certain implement.

Please advise me if I am wrong.


I am with you on this. Same feeling.

lingua101 Nov 5, 2014 9:42 pm


Originally Posted by fuyao (Post 23794587)

But @KVS, let me be clear, if it is the case (I'm not saying it is) you are creating a product that allows users to break the terms and conditions of web / data / ... providers you MUST inform the users that they are breaking the law by using your tool, otherwise you are breaking the law!

I am very shock on this. I have been paying KVS for the past 3 years not knowingly that I have "crack" something, until he sent me the instruction on how to get GTC account.

I was so shock that I have to "crack" something to gain access for some tools that I have been paying for it.

This is like paying for a software and later on the creator tells me that I need to hack something so I can properly use for it :(

KVS Nov 5, 2014 10:18 pm


Originally Posted by fuyao (Post 23794587)
I think we can end the debate

We think so too.


Originally Posted by lingua101 (Post 23794199)
I just renew my Diamond for another year. And there is no warning that I will not get the same services that I have enjoyed for the past 3 years!!!

My requirement is very simple, I just need to check flight availability and timetable. This is the main reason I DO pay for the service.

Now I cannot do this anymore. Well, KVS may argue that I can do it via mobile apps, but this is very hard to read and use.


Originally Posted by dshafiee (Post 23798703)
I am not going to use the Mobile Companion as it is clunky at best.

Could you please clarify what exactly do you mean by "hard to read and use" / "clunky"?


Originally Posted by zozeppelin (Post 23798765)
fares seem ok.

Indeed.


Originally Posted by zozeppelin (Post 23798765)
Does not appear to be validating fares.

Which Rule(s) do you believe are not being validated?


Originally Posted by zozeppelin (Post 23798765)
which ironically also isn't working.

All Fare & Routing Rules options continue to function normally.


Originally Posted by YXSflyer (Post 23796747)
When I search it does show a bunch of fares, but it doesn't show the fare bases. You have to click on one randomly and look up the fare rules, after which it'll display the fare code. In other words, it's impossible to know what kind of fare you're looking at before clicking on it, but in two searches (one Canada - Mexico, one Canada - Germany) all it shows were Y fares anyway.

The [Fares/GOL] Engine (which is currently in Beta) lists the ~40 lowest published Fares for the requested route (and carrier, if specified).

To retrieve the Fare Basis Code for a Fare you need to double-click the desired Fare Item(s).


Originally Posted by qmacker (Post 23799441)
Sorry if I'm re-posting an earlier question. When i try to do a simple "Timetable" search, for example SFO-ORD, the KVS Tool only shows me the earlier flights in the day, nothing later. Doesn't matter if I change the "Time" field, I still get only the earlier flights in the day.

It is a known issue with the [Timetable] Engine, which we are currently looking into.

In the meantime, please specify carrier preference(s) to narrow the results.


Originally Posted by kanada99 (Post 23797099)
I am Diamond however availibility i am una to search....

Please contact us via http://Contact.KVSTool.com/

zozeppelin Nov 5, 2014 10:56 pm


Originally Posted by KVS (Post 23799573)
Indeed.


Which Rule(s) do you believe are not being validated?


All Fare & Routing Rules options continue to function normally.

Fare Method: Not working for domestic fares. It also is not finding the lowest available fare.

Routing Rules: "The system was unable to locate a matching fare" for every fare I would describe as not working.

Validated as in ensuring departure date fits within effective window, duration is longer than minimum stay require yet shorter than maximum, and that the fare class of the fare basis is available on the given day and today's date would meet advance purchase requirements. Doing that is actually undesirable as it filters results.

javabytes Nov 5, 2014 11:56 pm


Originally Posted by KVS (Post 23791118)
The term "KVS Availability Tool" dates back to 2004 (and the beginning of this Thread).

The current name, which has been in use for many years now, is KVS Tool, which better reflects the diversity of the Tool's current functionality, including an unsurpassed Award/Upgrade Availability coverage.

http://i.imgur.com/kNT5uHR.jpg

mmff Nov 6, 2014 2:08 am

Can anyone tell me the current loads on DL123 in Nov, 10 2014?

If this is not the right place to ask, please move my question to the right place. I know there is a specific thread for these requests on LH but I could not find one for DL.

Thanks!

KVS Nov 6, 2014 5:44 am


Originally Posted by mmff (Post 23800052)
Can anyone tell me the current loads on DL123 in Nov, 10 2014?

If this is not the right place to ask, please move my question to the right place. I know there is a specific thread for these requests on LH but I could not find one for DL.

It is currently J1 C1 D1 I0 Z0 Y9 B9 M9 S9 H9 Q9 K9 L9 U9 T9 X9 V9 E9

paulwuk Nov 6, 2014 6:29 am


Originally Posted by KVS (Post 23800514)
It is currently J1 C1 D1 I0 Z0 Y9 B9 M9 S9 H9 Q9 K9 L9 U9 T9 X9 V9 E9

Which version of KVS allows you to get that information?

IMH Nov 6, 2014 6:44 am


Originally Posted by fuyao (Post 23794587)
I think we can end the debate whether its legitimite or not how KVS gets the data


Originally Posted by KVS (Post 23799561)
We think so too.

Yes. Let's draw a line under that one.

The "KVS Availability Tool" only works properly on a sporadic basis, and only to the extent that KVS can find new ways* for it to steal data.

----------------------------------------------------------
* Ways to steal data are also known as "Engines" and "Methods", with upper case initials because this helps the "Tool" sound important.

jerry_greece Nov 6, 2014 6:49 am


Originally Posted by paulwuk (Post 23800674)
Which version of KVS allows you to get that information?

Mobile companion ofcourse!

nux Nov 6, 2014 7:09 am


Originally Posted by KVS (Post 2804833)
[*]The purpose of this thread is serve as a place where the Tool users can post questions about the Tool's functionality, issues, suggestions, etc.

Suggestion
As the KVS Availability Tool purports to be a "Specialized Web Browser application", can the URL/domain used for each type of search be clearly shown before users are required to click 'Go' rather than an obfuscated/truncated code such as 'Availability/FS'?

That way users know the website(s) they will access and have a chance to confirm (if they wish) that they are meeting any 'User Agreement' or T&C's of that website.

Alternatively, a popup of the terms of the website(s) they are accessing through their 'Specialized Web Browser application'. Just as you request users to "Please review the terms of the KVS Tool User Agreement that you have accepted when installing the KVS Tool."


All times are GMT -6. The time now is 7:24 am.


This site is owned, operated, and maintained by MH Sub I, LLC dba Internet Brands. Copyright © 2026 MH Sub I, LLC dba Internet Brands. All rights reserved. Designated trademarks are the property of their respective owners.