Επιστροφή στο Forum: Δεν CSS ή εικόνες σε ispy σελίδες plugin
Γεια Michel, κάθε πιθανότητα που θα μπορούσε να έχει μια ματιά και να δούμε αν υπάρχει μια εύκολη αποτύπωση για αυτό?
Χυμός Υπολογιστών - Spy ιστοσελίδας (http://www.computer-juice.com/forums/pt/vaispy.php)
Φαίνεται το σενάριο δεν είναι να πάρει το αρχείο css σωστά και ψάχνει σε λάθος μέρος για τις εικόνες ...
Όπως βλέπετε αυτή η σελίδα δεν έχει μεταφραστεί σε όλα. Πιθανότατα global_complete άγκιστρο δεν χρησιμοποιείται εκεί. Μπορείτε να δοκιμάσετε ένταξης των mods που δεν χρησιμοποιούν το global_complete γάντζο.
Δείτε εδώ για την περιγραφή:
Παρακαλούμε ελέγξτε πρώτα πραγματικά global_complete δεν χρησιμοποιείται εκεί.
Ειλικρινά δεν ξέρω πώς να ακολουθήσετε τις οδηγίες αυτές, πρόκειται για ένα απλό mod, τρέχει από ajax νομίζω, μόνο ένα αρχείο php, κανένα προϊόν ή πρότυπα. Εδώ είναι τα περιεχόμενα του αρχείου.
<? Php
//################################################ ################################//
/ / MOD ΟΝΟΜΑ: VBISpy # / /
//################################################ ################################//
/ / Περιγραφή: Η τροποποίηση αυτή για vBulletin προσθέτει μια "ζωντανή" scrolling # / /
/ / Ενημέρωση για νέες θέσεις στο φόρουμ # / /
//################################################ ################################//
/ / ΑΠΟ: MPDev # / /
/ / DATE: 09/26/06 # / /
/ / Έκδοση 1.0.12 # / /
//################################################ ################################//
/ / ####################### SET PHP ΠΕΡΙΒΑΛΛΟΝ ###################### #####
error_reporting (E_ALL & ~ E_NOTICE)?
/ / #################### DEFINE ΣΗΜΑΝΤΙΚΟ Σταθερές #######################
define ('THIS_SCRIPT »,« vaispy')?
/ / ################### PRE-cache πρότυπα και ΔΕΔΟΜΕΝΑ ######################
/ / Πάρει ειδικές ομάδες φράση
$ Phrasegroups = array ()?
/ / Πάρει ειδικά πρότυπα δεδομένα από το DataStore
$ Specialtemplates = array ()?
/ / Προ-cache πρότυπα που χρησιμοποιούνται από όλες τις ενέργειες
$ Globaltemplates = array ()?
/ / Προ-cache πρότυπα που χρησιμοποιούνται από συγκεκριμένες δράσεις
$ Actiontemplates = array ()?
/ / ######################### ΑΠΑΙΤΟΥΝ back-end ################### #########
require_once ('/ global.php.')?
/ / ######################### CONFIG VARS ##################### #######
/ / Ο αριθμός των ημερών για τη σάρωση του πίνακα για .. (86 400 αντιπροσωπεύει τον αριθμό των δευτερολέπτων σε 24 ώρες)
Daysprune $ = 1?
/ / Μην τον κατάλογο των εν λόγω δικτύων, ακόμα και αν έχετε δικαιώματα (κατηγορίες δοκιμή, κλπ)
$ Blockforums = ""?
/ / ######################### CONFIG VARS ##################### #######
$ Forumperms = array ()?
$ Lastpostid = (int) $ _REQUEST ['τελευταία']?
$ Εγγραφείτε = (int) $ _REQUEST ['subscribe']?
foreach ($ vBulletin-> forumcache όπως $ forum) {
$ ForumID = $ φόρουμ ['ForumID']?
$ Forumperms = & $ vBulletin-> userinfo ['forumpermissions']["$ ForumID "]?
if (! isset ($ vBulletin-> forumcache ["$ ForumID"]) ή! ($ forumperms & $ vBulletin-> bf_ugp_forumpermissions ['canview »]) ή! ($ forumperms & $ vBulletin-> bf_ugp_forumpermissions [' canviewothers '] ) Ή! verify_forum_password ($ ForumID, $ vBulletin-> forumcache ["$ ForumID"] ['password'], ψευδής))
{
$ Blockforums .=','.$ φόρουμ ['ForumID']?
}
}
unset ($ forum)?
$ Datecut = "ΚΑΙ thread.lastpost> =". (TIMENOW - ($ daysprune * 86400))?
$ Prefetched = null?
############################################################################
/ / Get Threads έχω Δημοσιεύτηκε Σε
require_once (. DIR '/ includes / functions_forumdisplay.php')?
$ Result = $ db-> query_read ("
SELECT threadid
ΑΠΟ ". TABLE_PREFIX." Νήμα ως το νήμα
Σε περίπτωση που δεν thread.forumid ΣΕ (0 $ blockforums) και
thread.visible = 1 και
thread.open <> 10 και
thread.lastpostid> $ lastpostid
$ Datecut
")?
$ IdsArray = array ()?
ενώ ($ id = $ db-> fetch_array ($ αποτέλεσμα))
{
$ IdsArray [] = $ id ['threadid']?
}
$ Dotthreads = fetch_dot_threads_array (implode (',', $ idsArray))?
############################################################################
/ / Get Threads
/ / Να μην οριστεί σε πάνω από 20 αν δεν ξέρετε πώς να τροποποιήσετε το HTML στο κάτω μέρος της σελίδας (και στη γραμμή 291)
$ Limitq = (isset ($ _REQUEST ['κάνουν']) "20":; "5,20")?
if ($ εγγραφείτε == 1)
{
$ Getthreads = $ db-> query_read ("
SELECT subscribethread.subscribethreadid,
thread.forumid,
thread.firstpostid,
thread.lastpost,
thread.lastposter,
thread.lastpostid,
thread.replycount,
thread.threadid,
thread.title,
thread.open,
thread.views,
post.pagetext η προεπισκόπηση,
post.userid AS lastpuserid
ΑΠΟ ". TABLE_PREFIX." Subscribethread ΩΣ subscribethread
INNER JOIN ". TABLE_PREFIX." Νήμα ΩΣ νήμα ON (subscribethread.threadid = thread.threadid)
LEFT JOIN ". TABLE_PREFIX." Deletionlog ΩΣ deletionlog ON (thread.threadid = deletionlog.primaryid και τον τύπο = «νήμα»)
LEFT JOIN ". TABLE_PREFIX." Θέση ως θέση ON (post.postid = thread.lastpostid)
ΟΠΟΥ subscribethread.userid = ". $ VBulletin-> userinfo ['userid']."
ΚΑΙ ΟΧΙ ΣΕ thread.forumid (0 $ blockforums)
ΚΑΙ thread.visible = 1
ΚΑΙ subscribethread.canview = 1
ΚΑΙ thread.lastpostid> $ lastpostid
ΚΑΙ deletionlog.primaryid IS NULL
$ Datecut
ORDER BY thread.lastpost DESC LIMIT $ limitq
")?
}
αλλού
{
$ Getthreads = $ db-> query_read ("
SELECT thread.forumid,
thread.firstpostid,
thread.lastpost,
thread.lastposter,
thread.lastpostid,
thread.replycount,
thread.threadid,
thread.title,
thread.open,
thread.views,
post.pagetext η προεπισκόπηση,
post.userid AS lastpuserid
ΑΠΟ ". TABLE_PREFIX." Νήμα ΩΣ νήμα
LEFT JOIN ". TABLE_PREFIX." Deletionlog ΩΣ deletionlog ON (thread.threadid = deletionlog.primaryid και τον τύπο = «νήμα»)
LEFT JOIN ". TABLE_PREFIX." Θέση ως θέση ON (post.postid = thread.lastpostid)
Όταν το άνοιγμα των <> 10
$ Datecut
ΚΑΙ ΟΧΙ ΣΕ thread.forumid (0 $ blockforums)
ΚΑΙ thread.visible = '1 '
ΚΑΙ thread.lastpostid> $ lastpostid
ΚΑΙ post.visible = 1
ΚΑΙ deletionlog.primaryid IS NULL
ORDER BY thread.lastpost DESC LIMIT $ limitq
")?
}
$ Γραμμή = $ highestid = 1?
$ Rowcolor = "alt2"?
ενώ ($ νήμα = $ db-> fetch_array ($ getthreads)) {
$ Color = $ χρώμα == 'alt1 »; «Alt2»: «alt1»?
$ Νήμα ['title'] = htmlspecialchars_uni (fetch_censored_text (fetch_trimmed_title (unhtmlspecialchars ($ νήμα ['title']), 85)))?
$ Νήμα ['date'] = vbdate ($ vBulletin-> επιλογές ['DateFormat'], $ νήμα ['lastpost »], 1)?
$ Νήμα ['χρόνο'] = vbdate ($ vBulletin-> επιλογές ['timeformat'], $ νήμα ['lastpost'])?
/ / Ξεφορτωθείτε HTML και BBCode πρώτη
$ Νήμα ['προεπισκόπηση'] = strip_tags (strip_bbcode ($ νήμα ['προεπισκόπηση'], αλήθεια, αλήθεια))?
$ Νήμα ['προεπισκόπηση'] = htmlspecialchars_uni (fetch_trimmed_title ($ νήμα ['προεπισκόπηση'], 200))?
$ Νήμα ['προεπισκόπηση'] = fetch_censored_text (fetch_word_wrapped_string ($ νήμα ['προεπισκόπηση'], 20))?
$ Νήμα ['replycount'] = vb_number_format ($ νήμα ['replycount'])?
$ Νήμα ['θέα'] = vb_number_format ($ νήμα [«απόψεις»])?
$ Tforumid = $ νήμα ['ForumID']?
$ Νήμα ['φόρουμ'] = htmlspecialchars_uni ($ vBulletin-> forumcache ["$ tforumid"] ['title'])?
if ($ νήμα ['lastpostid'] == $ νήμα ['firstpostid'])
{
$ Etype = "Νέο θέμα"?
}
αλλού
{
$ Etype = "Νέο"?
}
/ / Statusicon
/ / Φάκελο dot δείχνουν;
if ($ vBulletin-> userinfo ['userid'] και $ vBulletin-> επιλογές ['showdots'] και $ dotthreads ["$ νήμα [θέματος]"])
{
$ Νήμα ['statusicon'] .= '_dot »?
$ Νήμα ['dot_count'] = $ dotthreads ["$ νήμα [threadid ]"][' μετράνε ']?
$ Νήμα ['dot_lastpost'] = $ dotthreads ["$ νήμα [threadid ]"][' lastpost ']?
}
/ / Εμφάνιση καυτό φάκελο;
if ($ vBulletin-> επιλογές ['usehotthreads »] και (($ νήμα [' replycount ']> = $ vBulletin-> επιλογές [' hotnumberposts '] και $ vBulletin-> επιλογές [' hotnumberposts ']> 0) ή ( $ νήμα ['θέα']> = $ vBulletin-> επιλογές ['hotnumberviews'] και $ vBulletin-> επιλογές ['hotnumberviews']> 0)))
{
$ Νήμα ['statusicon'] .= '_hot »?
}
/ / Εμφάνιση κλειδωμένο φάκελο;
if (! $ νήμα [«ανοικτή»])
{
$ Νήμα ['statusicon'] .= '_lock »?
}
$ Νήμα ['statusicon'] = "blank.gif"?
if ($ _REQUEST ['κάνουν'] == "xml")
{
Εδώ είναι το δεύτερο μέρος, vbet φόρουμ σταματά μεγάλες θέσεις.
$ Εξόδου .= <<<VAPRINT
<event>
<id> {$ νήμα ['lastpostid']}</ id>
<what> $ etype </ τι>
']}</ φορά <when> {$ νήμα ['date']} {$ νήμα ['όταν>
<title> {$ νήμα τίτλο ['']}</ τίτλος>
<preview> {$ νήμα ['προεπισκόπηση']}</ προεπισκόπηση>
<poster> {$ νήμα ['lastposter αφίσα']}</>
<threadid> {$ νήμα ['threadid']}</ threadid>
<postid> {$ νήμα ['lastpostid']}</ ταυτότητα μηνύματος>
<lastpost> {$ νήμα lastpost ['']}</ lastpost>
<userid> {$ νήμα ['lastpuserid userid']}</>
<forumid> {$ νήμα ['ForumID']}</ ForumID>
<forumname> {$ νήμα [«φόρουμ']}</ forumname>
<views> {$ νήμα ['τις απόψεις']}</ εμφανίσεις>
<replies> {$ νήμα ['replycount']}</ απαντήσεις>
<statusicon> {$ νήμα ['statusicon']}</ statusicon>
</ Εκδήλωση>
VAPRINT?
}
αλλού
{
$ Rowcolor = ($ rowcolor == "alt1" "alt2":; "alt1")?
$ Όπου $ = κλιπ = $ poster_clip = $ αφίσα = null?
αν (stristr ($ etype, "νήμα"))
{
$ Post_url = "showthread.php? T το νήμα = {$ ['threadid']}";
}
αλλού
{
$ Post_url = "showthread.php; p = {$ νήμα ['lastpostid']} # μετά {$ νήμα ['lastpostid']}";
}
if (! $ νήμα ['title'])
{
$ Κλιπ = "<strong> Άγνωστο </ strong>"?
}
αλλού
{
$ Κλιπ = "<strong> <img src=\\"{$thread['statusicon']}\\" alt=\\"\\" /> <a target = \\" _blank \\ "href = \\" {$ post_url} \\ "> {$ νήμα ['title']}</ a> </ strong>"?
}
if ($ νήμα ['προεπισκόπηση'])
{
$ Κλιπ .= "<br /> {$ νήμα ['προεπισκόπηση']}";
}
$ Κλιπ .= "({$ νήμα ['θέα']} θέα, {$ νήμα ['replycount']} απαντήσεις)"?
if ($ νήμα ['lastpuserid'])
{
$ Poster_clip = "<a target=\\"_blank\\" href=\\"member.php?u={$thread['lastpuserid']}\\"> {$ νήμα ['lastposter']}</ a>"?
}
$ Poster_clip .= "ώρα <br /> {$ νήμα ['date']} {$ νήμα ['']}";
if ($ νήμα [«φόρουμ»])
{
$ Όπου .= "<strong> <a target=\\"_blank\\" href=\\"forumdisplay.php?f={$thread['forumid']}\\"> {$ νήμα']}</ ['φόρουμ a> </ strong> "?
}
αλλού
{
Όπου $ = ""?
}
αν (is_browser («όπερα»))
{
$ Prefetched .= <<<VAPRINT
<div id="row{$row}"> <table cellpadding="3" cellspacing="0" border="0" width="100%"> <tr> <πλάτος td = "20" class = "$ rowcolor smallfont "nowrap =" nowrap "align =" center "> $ etype </ td> <td class="$rowcolor smallfont" width="225" nowrap="nowrap" align="left"> $ poster_clip </ td > <td class="$rowcolor smallfont" width="80%"> $ κλιπ </ td> <td class="$rowcolor smallfont" width="200" nowrap="nowrap" align="center"> $ όπου </ td> </ tr> </ table> </ p> \\ n
VAPRINT?
}
αλλού
{
$ Prefetched .= <<<VAPRINT
<tr id="row{$row}"> <td class="$rowcolor smallfont" align="center"> <div class="smallfont"> $ etype </ strong> </ td> <td class = " $ rowcolor smallfont "> <div class="smallfont"> $ poster_clip </ strong> </ td> <td class="$rowcolor smallfont"> <div class="smallfont"> $ κλιπ </ p> </ td > <td class="$rowcolor smallfont" align="center"> <div class="smallfont"> $ όπου </ strong> </ td> </ tr> \\ n
VAPRINT?
}
$ Γραμμή + +?
if ($ νήμα ['lastpostid']> $ highestid)
{
$ Highestid = $ νήμα ['lastpostid']?
}
}
}
if ($ γραμμή <20)
{
για ($ x = $ γραμμή? $ x <21? $ x + +)
{
αν (is_browser («όπερα»))
{
$ Prefetched .= <<<VAPRINT
<div id="row{$x}"> </ p> \\ n
VAPRINT?
}
αλλού
{
$ Prefetched .= <<<VAPRINT
<tr id="row{$x}"> <td class="$rowcolor smallfont" align="center"> </ td> <td class="$rowcolor smallfont"> </ td> < td class = "$ rowcolor smallfont"> </ td> <td class="$rowcolor smallfont" align="center"> </ td> </ tr> \\ n
VAPRINT?
}
}
}
/ / Μνήμη εξοικονόμηση
unset ($ νήμα)?
$ Db-> free_result ($ getthreads)?
if ($ _REQUEST ['κάνουν'] == "xml")
{
header ("Content-Type: text / xml" ($ stylevar ['charset'] ='''? charset =' $ stylevar ['charset']:.!;.''))?
echo "<? xml version =" 1.0 "encoding =" ". $ stylevar ['charset'].'"?>'. "\\ R \\ n"?
if ($ εξόδου)
{
echo "<events> $ εξόδου </ εκδηλώσεις>"?
}
αλλού
{
echo "<events />"?
}
εξόδου?
}
$ Navbits = array ()?
$ Navbits [$ γονέα] = 'Spy Ιστοσελίδας »?
$ Navbits = construct_navbits ($ navbits)?
eval ("$ navbar =" ". fetch_template (« navbar »).'";');
$ Navbar = process_replacement_vars ($ navbar)?
eval ("$ headinclude =" ". fetch_template (« headinclude »).'";');
$ Headinclude = process_replacement_vars ($ headinclude)?
eval ("$ υποσέλιδο =" ". fetch_template (« υποσέλιδου »).'";');
$ = Process_replacement_vars υποσέλιδο (υποσέλιδο $)?
echo <<<VAPRINT
$ Stylevar [htmldoctype]
<HTML dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
<head>
$ Headinclude
<style type="text/css">
. Div spyfade1,. Διάρκεια spyfade1,,. Spyfade1 td,. Spyfade1 {img
αδιαφάνεια: 0.90?
φίλτρο: άλφα (αδιαφάνεια = 90)?
-Moz-αδιαφάνεια: 0.90?
}
. Div spyfade2,. Spyfade2 διάρκεια,. Spyfade2 td,. Spyfade2 {img
αδιαφάνεια: 0.80?
φίλτρο: άλφα (αδιαφάνεια = 80)?
-Moz-αδιαφάνεια: 0.80?
}
. Div spyfade3,. Διάρκεια spyfade3,. Spyfade3 td,. Spyfade3 {img
αδιαφάνεια: 0,70?
φίλτρο: άλφα (αδιαφάνεια = 70)?
-Moz-αδιαφάνεια: 0.70?
}
. Div spyfade4,. Διάρκεια spyfade4,. Spyfade4 td,. Spyfade4 {img
αδιαφάνεια: 0.50?
φίλτρο: άλφα (αδιαφάνεια = 50)?
-Moz-αδιαφάνεια: 0.50?
}
. Div spyfade5,. Διάρκεια spyfade5,. Spyfade5 td,. Spyfade5 {img
αδιαφάνεια: 0.30?
φίλτρο: άλφα (αδιαφάνεια = 30)?
-Moz-αδιαφάνεια: 0.30?
}
</ Style>
<script language="javascript" src="clientscript/va_prototype.js"> </ script>
<script language="javascript" src="clientscript/va_effects.js"> </ script>
<script language="javascript" src="clientscript/va_spy.js"> </ script>
<script type="text/javascript"> language="javascript"
</ Script>
<title> Juice Υπολογιστών - Spy Ιστοσελίδα </ title>
</ Head>
<body onload="spyinit();">
$ Header
$ Navbar
<table width="90%" align="center"> <tr> <td width="50%" align="left"> <input type="checkbox" id="subscribe" value="1"> ? εγγραφεί τα θέματα που μόνο </ td>
<td width="50%" align="right">
<img id="vaplay" src="images/misc/play_down.gif" style="cursor:pointer;" alt="Play" title="Play Comments" onclick="playSpy();" />
<img id="vapause" src="images/misc/pause_up.gif" style="cursor:pointer;" alt="Pause" title="Pause Comments" onclick="pauseSpy();" />
</ Td> </ tr> </ table>
<br />
VAPRINT?
αν (is_browser («όπερα»))
{
$ Εξόδου .= <<<VAPRINT
<table class="tborder" cellpadding="0" cellspacing="0" border="0" width="100%" align="center" id="spy_table">
<tr> <td width="20" class="tcat" nowrap="nowrap" style="height:25px;"> </ td>
<td class="tcat" width="225" nowrap="nowrap" style="height:25px;"> μέλη </ td>
<td class="tcat" width="80%" style="height:25px;"> Θέμα / Δημοσίευση </ td>
<td class="tcat" width="200" nowrap="nowrap" Φόρουμ style="height:25px;">
</ Tr>
<tr> <td colspan="4" class="alt1">
$ Prefetched
<div id="row21" style="display:none;" class="spyfade1"> </ p>
<div id="row22" style="display:none;" class="spyfade2"> </ p>
<div id="row23" style="display:none;" class="spyfade3"> </ p>
<div id="row24" style="display:none;" class="spyfade4"> </ p>
<div id="row25" style="display:none;" class="spyfade5"> </ p>
</ Td> </ tr>
</ Table>
VAPRINT?
}
αλλού
{
$ Εξόδου .= <<<VAPRINT
<table class="tborder" cellpadding="6" cellspacing="1" border="0" width="100%" align="center" id="spy_table">
<thead>
<tr align="center"> <td class="thead" width="100"> Event </ td> <td class="thead" width="100"> μέλη </ td> <td class = "THEAD "> Θέμα / Δημοσίευση </ td> <td class="thead" width="190"> Φόρουμ </ td> </ tr>
</ THEAD>
<tbody class="alt1">
$ Prefetched
<tr id="row21" style="display: none;" class="spyfade1"> <td align="center"> </ td> <td> </ td> <td> < / td> <td align="center"> </ td> </ tr>
<tr id="row22" style="display: none;" class="spyfade2"> <td align="center"> </ td> <td> </ td> <td> < / td> <td align="center"> </ td> </ tr>
<tr id="row23" style="display: none;" class="spyfade3"> <td align="center"> </ td> <td> </ td> <td> < / td> <td align="center"> </ td> </ tr>
<tr id="row24" style="display: none;" class="spyfade4"> <td align="center"> </ td> <td> </ td> <td> < / td> <td align="center"> </ td> </ tr>
<tr id="row25" style="display: none;" class="spyfade5"> <td align="center"> </ td> <td> </ td> <td> < / td> <td align="center"> </ td> </ tr>
</ TBODY>
</ Table>
VAPRINT?
}
$ Εξόδου .= <<<VAPRINT
$ Footer
VAPRINT?
echo $ εξόδου?
;>
Και αυτό είναι το ζήτημα - εξόδου είναι απλά τυπωμένα, έτσι δεν υπάρχει καμία δυνατότητα να το μεταφράσει σε κανονικό τρόπο.
ΑΛΛΑ - έχουμε λύση για αυτό - αυτό που σας επισήμανε. Θα χειριστεί υποθέσεις όπως αυτή. Παρακαλώ πείτε μας ακριβώς με την οποία το βήμα έχετε προβλήματα. Θα σας βοηθήσουμε να αγρανάπαυση οδηγίες ή ακόμα και να το τροποποιήσετε σε πιο κατανοητό:)
PS.
Είστε σίγουροι ότι η άδεια χρήσης αυτού του mod σας επιτρέπει να δημοσιεύσει κώδικα; Αν όχι, τότε παρακαλούμε να το αφαιρέσετε.
Θέλω να είμαι σαφής, θέλω να κάνετε το έργο αυτό, μπορώ να πληρώσω.
Θέλω να είμαι σαφής, θέλω να κάνετε το έργο αυτό, μπορώ να πληρώσω.
Φυσικά προσφέρουμε επίσης καταβληθεί υπηρεσίες όπως η εγκατάσταση, αναβάθμιση. Εμείς δεν σκεφτόμαστε υπηρεσιών ολοκλήρωσης, αλλά μπορείτε να αγοράσετε την αναβάθμιση των υπηρεσιών (http://www.vbenterprisetranslator.com/upgrade-service.php) και εμείς θα το κάνει για σας.
Παρακαλώ σημειώστε ότι θα πρέπει να έχουν πρόσβαση σε FTP και Διαχειριστή CP σας να είναι σε θέση να το κάνει αυτό την ένταξη (Διαχειριστής CP - ίσως όχι, αν η πραγματική ρυθμίσεις είναι ΟΚ? FTP οριστικά ναι).
Automatic Translations (Powered by Google, Microsoft®,
Yandex, SDL Language Cloud, IBM Watson and Apertium):
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.